From e5ee047bfc7249dc1393e2f9df5d1370a363c604 Mon Sep 17 00:00:00 2001 From: Tony Cook Date: Wed, 25 Aug 2010 10:13:14 +0000 Subject: [PATCH] move TIFF into its own module --- Changes | 2 +- Imager.pm | 70 +------ Imager.xs | 138 ------------ MANIFEST | 58 ++--- Makefile.PL | 162 +++++++------- TIFF/Makefile.PL | 136 ++++++++++++ TIFF/TIFF.pm | 141 +++++++++++++ TIFF/TIFF.xs | 145 +++++++++++++ tiff.c => TIFF/imtiff.c | 45 ++-- TIFF/imtiff.h | 15 ++ t/t106tiff.t => TIFF/t/t10tiff.t | 34 +-- {testimg => TIFF/testimg}/alpha.tif | Bin TIFF/testimg/comp4.bmp | Bin 0 -> 2418 bytes {testimg => TIFF/testimg}/comp4.tif | Bin {testimg => TIFF/testimg}/comp4bad.tif | Bin {testimg => TIFF/testimg}/comp4t.tif | Bin TIFF/testimg/comp8.bmp | Bin 0 -> 5378 bytes {testimg => TIFF/testimg}/comp8.tif | Bin {testimg => TIFF/testimg}/gralpha.tif | Bin {testimg => TIFF/testimg}/grey16.tif | Bin {testimg => TIFF/testimg}/grey32.tif | Bin TIFF/testimg/imager.pbm | Bin 0 -> 145 bytes {testimg => TIFF/testimg}/imager.tif | Bin {testimg => TIFF/testimg}/pengtile.tif | Bin TIFF/testimg/penguin-base.ppm | 279 +++++++++++++++++++++++++ {testimg => TIFF/testimg}/rgb16.tif | Bin {testimg => TIFF/testimg}/rgb16t.tif | Bin {testimg => TIFF/testimg}/rgbatsep.tif | Bin {testimg => TIFF/testimg}/scmyk.tif | Bin {testimg => TIFF/testimg}/scmyka.tif | Bin {testimg => TIFF/testimg}/scmyka16.tif | Bin {testimg => TIFF/testimg}/scmykaa.tif | Bin {testimg => TIFF/testimg}/slab.tif | Bin {testimg => TIFF/testimg}/srgb.tif | Bin {testimg => TIFF/testimg}/srgba.tif | Bin {testimg => TIFF/testimg}/srgba16.tif | Bin {testimg => TIFF/testimg}/srgba32.tif | Bin {testimg => TIFF/testimg}/srgbaa.tif | Bin {testimg => TIFF/testimg}/tiffwarn.tif | Bin image.c | 11 +- imager.h | 33 --- imext.c | 3 + imext.h | 7 + imexttypes.h | 6 +- lib/Imager/APIRef.pod | 30 +++ t/t106notiff.t | 2 +- t/t50basicoo.t | 2 +- t/x11rubthru.t | 2 +- 48 files changed, 927 insertions(+), 394 deletions(-) create mode 100644 TIFF/Makefile.PL create mode 100644 TIFF/TIFF.pm create mode 100644 TIFF/TIFF.xs rename tiff.c => TIFF/imtiff.c (98%) create mode 100644 TIFF/imtiff.h rename t/t106tiff.t => TIFF/t/t10tiff.t (95%) rename {testimg => TIFF/testimg}/alpha.tif (100%) create mode 100644 TIFF/testimg/comp4.bmp rename {testimg => TIFF/testimg}/comp4.tif (100%) rename {testimg => TIFF/testimg}/comp4bad.tif (100%) rename {testimg => TIFF/testimg}/comp4t.tif (100%) create mode 100644 TIFF/testimg/comp8.bmp rename {testimg => TIFF/testimg}/comp8.tif (100%) rename {testimg => TIFF/testimg}/gralpha.tif (100%) rename {testimg => TIFF/testimg}/grey16.tif (100%) rename {testimg => TIFF/testimg}/grey32.tif (100%) create mode 100644 TIFF/testimg/imager.pbm rename {testimg => TIFF/testimg}/imager.tif (100%) rename {testimg => TIFF/testimg}/pengtile.tif (100%) create mode 100644 TIFF/testimg/penguin-base.ppm rename {testimg => TIFF/testimg}/rgb16.tif (100%) rename {testimg => TIFF/testimg}/rgb16t.tif (100%) rename {testimg => TIFF/testimg}/rgbatsep.tif (100%) rename {testimg => TIFF/testimg}/scmyk.tif (100%) rename {testimg => TIFF/testimg}/scmyka.tif (100%) rename {testimg => TIFF/testimg}/scmyka16.tif (100%) rename {testimg => TIFF/testimg}/scmykaa.tif (100%) rename {testimg => TIFF/testimg}/slab.tif (100%) rename {testimg => TIFF/testimg}/srgb.tif (100%) rename {testimg => TIFF/testimg}/srgba.tif (100%) rename {testimg => TIFF/testimg}/srgba16.tif (100%) rename {testimg => TIFF/testimg}/srgba32.tif (100%) rename {testimg => TIFF/testimg}/srgbaa.tif (100%) rename {testimg => TIFF/testimg}/tiffwarn.tif (100%) diff --git a/Changes b/Changes index cf4b9188..c377f0d1 100644 --- a/Changes +++ b/Changes @@ -8,7 +8,7 @@ Imager 0.78 - unreleased Thanks to Justin Davis. https://rt.cpan.org/Ticket/Display.html?id=60491 - - moved the GIF file handling code into a sub-module in preparation + - moved GIF, TIFF file handling code into sub-modules in preparation for separate distribution. https://rt.cpan.org/Ticket/Display.html?id=49616 (partial) diff --git a/Imager.pm b/Imager.pm index d817cb8a..89bbf443 100644 --- a/Imager.pm +++ b/Imager.pm @@ -77,10 +77,6 @@ use Imager::Font; i_readjpeg_wiol i_writejpeg_wiol - i_readtiff_wiol - i_writetiff_wiol - i_writetiff_wiol_faxable - i_readpnm_wiol i_writeppm_wiol @@ -1385,17 +1381,6 @@ sub read { my $allow_incomplete = $input{allow_incomplete}; defined $allow_incomplete or $allow_incomplete = 0; - if ( $input{'type'} eq 'tiff' ) { - my $page = $input{'page'}; - defined $page or $page = 0; - $self->{IMG}=i_readtiff_wiol( $IO, $allow_incomplete, $page ); - if ( !defined($self->{IMG}) ) { - $self->{ERRSTR}=$self->_error_as_msg(); return undef; - } - $self->{DEBUG} && print "loading a tiff file\n"; - return $self; - } - if ( $input{'type'} eq 'pnm' ) { $self->{IMG}=i_readpnm_wiol( $IO, $allow_incomplete ); if ( !defined($self->{IMG}) ) { @@ -1758,24 +1743,7 @@ sub write { ($IO, $fh) = $self->_get_writer_io(\%input, $input{'type'}) or return undef; - if ($input{'type'} eq 'tiff') { - $self->_set_opts(\%input, "tiff_", $self) - or return undef; - $self->_set_opts(\%input, "exif_", $self) - or return undef; - - if (defined $input{class} && $input{class} eq 'fax') { - if (!i_writetiff_wiol_faxable($self->{IMG}, $IO, $input{fax_fine})) { - $self->{ERRSTR} = $self->_error_as_msg(); - return undef; - } - } else { - if (!i_writetiff_wiol($self->{IMG}, $IO)) { - $self->{ERRSTR} = $self->_error_as_msg(); - return undef; - } - } - } elsif ( $input{'type'} eq 'pnm' ) { + if ( $input{'type'} eq 'pnm' ) { $self->_set_opts(\%input, "pnm_", $self) or return undef; if ( ! i_writeppm_wiol($self->{IMG},$IO) ) { @@ -1791,14 +1759,6 @@ sub write { return undef; } $self->{DEBUG} && print "writing a raw file\n"; - } elsif ( $input{'type'} eq 'png' ) { - $self->_set_opts(\%input, "png_", $self) - or return undef; - if ( !i_writepng_wiol($self->{IMG}, $IO) ) { - $self->{ERRSTR}='unable to write png image'; - return undef; - } - $self->{DEBUG} && print "writing a png file\n"; } elsif ( $input{'type'} eq 'jpeg' ) { $self->_set_opts(\%input, "jpeg_", $self) or return undef; @@ -1899,23 +1859,7 @@ sub write_multi { ($IO, $file) = $class->_get_writer_io($opts, $type) or return undef; - if ($type eq 'tiff') { - $class->_set_opts($opts, "tiff_", @images) - or return; - $class->_set_opts($opts, "exif_", @images) - or return; - my $res; - $opts->{fax_fine} = 1 unless exists $opts->{fax_fine}; - if ($opts->{'class'} && $opts->{'class'} eq 'fax') { - $res = i_writetiff_multi_wiol_faxable($IO, $opts->{fax_fine}, @work); - } - else { - $res = i_writetiff_multi_wiol($IO, @work); - } - unless ($res) { - $class->_set_error($class->_error_as_msg()); - return undef; - } + if (0) { # eventually PNM in here, now that TIFF/GIF are elsewhere } else { if (@images == 1) { @@ -1975,14 +1919,8 @@ sub read_multi { return; } - my @imgs; - if ($type eq 'gif') { - @imgs = i_readgif_multi_wiol($IO); - } - elsif ($type eq 'tiff') { - @imgs = i_readtiff_multi_wiol($IO, -1); - } - elsif ($type eq 'pnm') { + my @imgs; + if ($type eq 'pnm') { @imgs = i_readpnm_multi_wiol($IO, $opts{allow_incomplete}||0); } else { diff --git a/Imager.xs b/Imager.xs index 821b1a1f..a4f11c70 100644 --- a/Imager.xs +++ b/Imager.xs @@ -559,9 +559,7 @@ static struct value_name make_color_names[] = static struct value_name translate_names[] = { -#ifdef HAVE_LIBGIF { "giflib", pt_giflib, }, -#endif { "closest", pt_closest, }, { "perturb", pt_perturb, }, { "errdiff", pt_errdiff, }, @@ -2383,142 +2381,6 @@ i_test_format_probe(ig, length) -#ifdef HAVE_LIBTIFF - -Imager::ImgRaw -i_readtiff_wiol(ig, allow_incomplete, page=0) - Imager::IO ig - int allow_incomplete - int page - -void -i_readtiff_multi_wiol(ig, length) - Imager::IO ig - int length - PREINIT: - i_img **imgs; - int count; - int i; - PPCODE: - imgs = i_readtiff_multi_wiol(ig, length, &count); - if (imgs) { - EXTEND(SP, count); - for (i = 0; i < count; ++i) { - SV *sv = sv_newmortal(); - sv_setref_pv(sv, "Imager::ImgRaw", (void *)imgs[i]); - PUSHs(sv); - } - myfree(imgs); - } - - -undef_int -i_writetiff_wiol(im, ig) - Imager::ImgRaw im - Imager::IO ig - -undef_int -i_writetiff_multi_wiol(ig, ...) - Imager::IO ig - PREINIT: - int i; - int img_count; - i_img **imgs; - CODE: - if (items < 2) - croak("Usage: i_writetiff_multi_wiol(ig, images...)"); - img_count = items - 1; - RETVAL = 1; - if (img_count < 1) { - RETVAL = 0; - i_clear_error(); - i_push_error(0, "You need to specify images to save"); - } - else { - imgs = mymalloc(sizeof(i_img *) * img_count); - for (i = 0; i < img_count; ++i) { - SV *sv = ST(1+i); - imgs[i] = NULL; - if (SvROK(sv) && sv_derived_from(sv, "Imager::ImgRaw")) { - imgs[i] = INT2PTR(i_img *, SvIV((SV*)SvRV(sv))); - } - else { - i_clear_error(); - i_push_error(0, "Only images can be saved"); - myfree(imgs); - RETVAL = 0; - break; - } - } - if (RETVAL) { - RETVAL = i_writetiff_multi_wiol(ig, imgs, img_count); - } - myfree(imgs); - } - OUTPUT: - RETVAL - -undef_int -i_writetiff_wiol_faxable(im, ig, fine) - Imager::ImgRaw im - Imager::IO ig - int fine - -undef_int -i_writetiff_multi_wiol_faxable(ig, fine, ...) - Imager::IO ig - int fine - PREINIT: - int i; - int img_count; - i_img **imgs; - CODE: - if (items < 3) - croak("Usage: i_writetiff_multi_wiol_faxable(ig, fine, images...)"); - img_count = items - 2; - RETVAL = 1; - if (img_count < 1) { - RETVAL = 0; - i_clear_error(); - i_push_error(0, "You need to specify images to save"); - } - else { - imgs = mymalloc(sizeof(i_img *) * img_count); - for (i = 0; i < img_count; ++i) { - SV *sv = ST(2+i); - imgs[i] = NULL; - if (SvROK(sv) && sv_derived_from(sv, "Imager::ImgRaw")) { - imgs[i] = INT2PTR(i_img *, SvIV((SV*)SvRV(sv))); - } - else { - i_clear_error(); - i_push_error(0, "Only images can be saved"); - myfree(imgs); - RETVAL = 0; - break; - } - } - if (RETVAL) { - RETVAL = i_writetiff_multi_wiol_faxable(ig, imgs, img_count, fine); - } - myfree(imgs); - } - OUTPUT: - RETVAL - -const char * -i_tiff_libversion() - -bool -i_tiff_has_compression(name) - const char *name - -#endif /* HAVE_LIBTIFF */ - - -#ifdef HAVE_LIBPNG - -#endif diff --git a/MANIFEST b/MANIFEST index 08408e94..eac2b5a6 100644 --- a/MANIFEST +++ b/MANIFEST @@ -98,6 +98,39 @@ SGI/testimg/verb.rgb SGI/testimg/verb12.rgb SGI/testimg/verb16.rgb SGI/testimg/verb6.rgb +TIFF/Makefile.PL +TIFF/TIFF.pm +TIFF/TIFF.xs +TIFF/imtiff.c +TIFF/imtiff.h +TIFF/testimg/alpha.tif Alpha scaling test image +TIFF/testimg/comp4.bmp Compressed 4-bit/pixel BMP +TIFF/testimg/comp4.tif 4-bit/pixel paletted TIFF +TIFF/testimg/comp4bad.tif corrupted 4-bit/pixel paletted TIFF +TIFF/testimg/comp4t.tif 4-bit/pixel paletted TIFF (tiled) +TIFF/testimg/comp8.bmp Compressed 8-bit/pixel BMP +TIFF/testimg/comp8.tif 8-bit/pixel paletted TIFF +TIFF/testimg/gralpha.tif Grey alpha test image +TIFF/testimg/grey16.tif 16-bit/sample greyscale TIFF +TIFF/testimg/grey32.tif 32-bit/sample greyscale+alpha TIFF +TIFF/testimg/imager.pbm Test bi-level +TIFF/testimg/imager.tif Test bi-level +TIFF/testimg/penguin-base.ppm +TIFF/testimg/pengtile.tif Tiled tiff image, same as penguin-base.ppm +TIFF/testimg/rgb16.tif 16-bit/sample RGB image - strips +TIFF/testimg/rgb16t.tif 16-bit/sample RGB image - tiled +TIFF/testimg/rgbatsep.tif Tiled/separated for testing RGBA codepath +TIFF/testimg/scmyk.tif Simple CMYK TIFF image +TIFF/testimg/scmyka.tif CMYK with one alpha channel +TIFF/testimg/scmyka16.tif CMYK with one alpha channel (16-bit) +TIFF/testimg/scmykaa.tif CMYK with 2 alpha channels +TIFF/testimg/slab.tif Lab color image +TIFF/testimg/srgb.tif Simple RGB image +TIFF/testimg/srgba.tif RGB with one alpha +TIFF/testimg/srgba16.tif +TIFF/testimg/srgba32.tif +TIFF/testimg/srgbaa.tif RGB with 2 alpha +TIFF/testimg/tiffwarn.tif Generates a warning while being read apidocs.perl Build lib/Imager/APIRef.pm bigtest.perl Library selection tester bmp.c Reading and writing Windows BMP files @@ -311,7 +344,6 @@ t/tr18561.t Regression tests t/tr18561b.t tags.c testimg/209_yonge.jpg Regression test: #17981 -testimg/alpha.tif Alpha scaling test image testimg/alpha16.tga 16-bit/pixel TGA with alpha "channel" RT 32926 testimg/bad1oflow.bmp 1-bit/pixel, overflow integer on 32-bit machines testimg/bad1wid0.bmp 1-bit/pixel, zero width @@ -337,18 +369,10 @@ testimg/bad_asc.pgm ASCII PGM with invalid image data testimg/bad_asc.ppm ASCII PPM with invalid image data testimg/base.jpg Base JPEG test image testimg/comp4.bmp Compressed 4-bit/pixel BMP -testimg/comp4.tif 4-bit/pixel paletted TIFF -testimg/comp4bad.tif corrupted 4-bit/pixel paletted TIFF -testimg/comp4t.tif 4-bit/pixel paletted TIFF (tiled) testimg/comp8.bmp Compressed 8-bit/pixel BMP -testimg/comp8.tif 8-bit/pixel paletted TIFF testimg/exiftest.jpg Test image for EXIF parsing testimg/gimpgrad A GIMP gradient file -testimg/gralpha.tif Grey alpha test image -testimg/grey16.tif 16-bit/sample greyscale TIFF -testimg/grey32.tif 32-bit/sample greyscale+alpha TIFF testimg/imager.pbm Test bi-level -testimg/imager.tif Test bi-level testimg/junk.ppm testimg/longid.tga Test TGA with a long id string testimg/maxval.ppm For ppm file maxval handling @@ -360,17 +384,9 @@ testimg/maxval_asc.ppm testimg/multiple.ppm Test multiple PPM reading testimg/newgimpgrad.ggr Test GIMP Gradient file (newer type) testimg/penguin-base.ppm -testimg/pengtile.tif Tiled tiff image, same as penguin-base.ppm testimg/pgm.pgm Simple pgm for testing the right sample is in the right place -testimg/rgb16.tif 16-bit/sample RGB image - strips -testimg/rgb16t.tif 16-bit/sample RGB image - tiled -testimg/rgbatsep.tif Tiled/separated for testing RGBA codepath testimg/scale.ppm -testimg/scmyk.tif Simple CMYK TIFF image testimg/scmyk.jpg Simple CMYK JPEG image -testimg/scmyka.tif CMYK with one alpha channel -testimg/scmyka16.tif CMYK with one alpha channel (16-bit) -testimg/scmykaa.tif CMYK with 2 alpha channels testimg/short1.bmp 1-bit/pixel, data missing from EOF testimg/short24.bmp 24-bit/pixel, data missing from EOF testimg/short4.bmp truncated 4bit/pixel uncompressed BMP @@ -386,17 +402,10 @@ testimg/short_bin.ppm Bin PPM with short image section testimg/short_bin16.pgm 16-bit Bin PGM with short image section testimg/short_bin16.ppm 16-bit Bin PPM with short image section testimg/simple.pbm -testimg/slab.tif Lab color image -testimg/srgb.tif Simple RGB image -testimg/srgba.tif RGB with one alpha -testimg/srgba16.tif -testimg/srgba32.tif -testimg/srgbaa.tif RGB with 2 alpha testimg/test.png Standard test image as PNG testimg/test.raw Standard test image as RAW testimg/test.tga Standard test image as TGA testimg/test_gimp_pal A simple GIMP palette file -testimg/tiffwarn.tif Generates a warning while being read testimg/winrgb2.bmp 1-bit bmp base testimg/winrgb24.bmp 24-bit bmp base testimg/winrgb24off.bmp 24-bit bmp with image data offset from header @@ -407,7 +416,6 @@ testimg/winrgb8.bmp 8-bit bmp base testimg/winrgb8off.bmp 8-bit bmp with image data offset from header testimg/zerotype.jpg Image with a zero type entry in the EXIF data tga.c Reading and writing Targa files -tiff.c trans2.c transform.perl Shell interface to Imager::Transform typemap diff --git a/Makefile.PL b/Makefile.PL index 3a1da3c5..bd144e1a 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -545,18 +545,18 @@ sub init { installed on your computer} }; - $formats{'tiff'}={ - order=>'23', - def=>'HAVE_LIBTIFF', - inccheck=>sub { -e catfile($_[0], 'tiffio.h') }, - libcheck=>sub { $_[0] eq "libtiff$aext" or $_ eq "libtiff.$lext" }, - libfiles=>'-ltiff', - objfiles=>'tiff.o', - docs=>q{ - In order to use tiff with this module you need to have libtiff - installed on your computer}, - postcheck => \&postcheck_tiff, - }; +# $formats{'tiff'}={ +# order=>'23', +# def=>'HAVE_LIBTIFF', +# inccheck=>sub { -e catfile($_[0], 'tiffio.h') }, +# libcheck=>sub { $_[0] eq "libtiff$aext" or $_ eq "libtiff.$lext" }, +# libfiles=>'-ltiff', +# objfiles=>'tiff.o', +# docs=>q{ +# In order to use tiff with this module you need to have libtiff +# installed on your computer}, +# postcheck => \&postcheck_tiff, +# }; # $formats{'png'}={ # order=>'22', @@ -966,7 +966,7 @@ Usage: $0 [--enable feature1,feature2,...] [other options] $0 [--disable feature1,feature2,...] [other options] $0 --help Possible feature names are: - jpeg tiff T1-fonts TT-fonts freetype2 + jpeg T1-fonts TT-fonts freetype2 Other options: --verbose | -v Verbose library probing (or set IM_VERBOSE in the environment) @@ -1043,84 +1043,84 @@ sub _tilde_expand { $path; } -sub postcheck_tiff { - my ($format, $frm) = @_; - - -d "probe" or mkdir "probe"; +# sub postcheck_tiff { +# my ($format, $frm) = @_; - my $tiffver_name = "probe/tiffver.txt"; +# -d "probe" or mkdir "probe"; - my $lib; - if ($Config{cc} =~ /\b(cl|bcc)\b/) { - $lib = "libtiff"; - } - else { - $lib = "tiff"; - } +# my $tiffver_name = "probe/tiffver.txt"; - # setup LD_RUN_PATH to match link time - my $lopts = join " " , map("-L$_", @{$format->{libdir}}), " -ltiff"; - my ($extra, $bs_load, $ld_load, $ld_run_path) = - ExtUtils::Liblist->ext($lopts, $VERBOSE); - local $ENV{LD_RUN_PATH}; +# my $lib; +# if ($Config{cc} =~ /\b(cl|bcc)\b/) { +# $lib = "libtiff"; +# } +# else { +# $lib = "tiff"; +# } - if ($ld_run_path) { - print "Setting LD_RUN_PATH=$ld_run_path for TIFF probe\n" if $VERBOSE; - $ENV{LD_RUN_PATH} = $ld_run_path; - } +# # setup LD_RUN_PATH to match link time +# my $lopts = join " " , map("-L$_", @{$format->{libdir}}), " -ltiff"; +# my ($extra, $bs_load, $ld_load, $ld_run_path) = +# ExtUtils::Liblist->ext($lopts, $VERBOSE); +# local $ENV{LD_RUN_PATH}; - my $good = - eval { - assert_lib - ( - debug => $VERBOSE, - incpath => $format->{incdir}, - libpath => $format->{libdir}, - lib => $lib, - header => [ qw(stdio.h tiffio.h) ], - function => < $VERBOSE, +# incpath => $format->{incdir}, +# libpath => $format->{libdir}, +# lib => $lib, +# header => [ qw(stdio.h tiffio.h) ], +# function => < }; - close VERS; - unlink $tiffver_name unless $KEEP_FILES; +# # version file seems to be there, load it up +# my $ver_str = do { local $/; }; +# close VERS; +# unlink $tiffver_name unless $KEEP_FILES; - my ($version) = $ver_str =~ /(\d+\.\d+\.\d+)/; +# my ($version) = $ver_str =~ /(\d+\.\d+\.\d+)/; - if ($version eq '3.9.0') { - print < \@libpaths, + "verbose|v" => \$verbose); + +our $BUILDING_IMAGER; + +my $MM_ver = eval $ExtUtils::MakeMaker::VERSION; + +my %opts = + ( + NAME => 'Imager::File::TIFF', + VERSION_FROM => 'TIFF.pm', + OBJECT => 'TIFF.o imtiff.o', + ); + +my @inc; +if ($BUILDING_IMAGER) { + push @inc, "-I.."; + unshift @INC, "../lib"; +} +else { + unshift @INC, "inc"; + print "TIFF: building independently\n"; + require Imager::ExtUtils; + push @inc, Imager::ExtUtils->includes; + $opts{TYPEMAPS} = [ Imager::ExtUtils->typemap ]; + + # Imager required configure through use + my @Imager_req = ( Imager => "0.77" ); + if ($MM_ver >= 6.46) { + $opts{META_MERGE} = + { + configure_requires => + { + @Imager_req, + }, + build_requires => + { + @Imager_req, + "Test::More" => "0.47", + }, + resources => + { + homepage => "http://imager.perl.org/", + repository => + { + url => "http://imager.perl.org/svn/trunk/Imager-File-TIFF", + web => "http://imager.perl.org/svnweb/public/browse/trunk/Imager-File-TIFF", + type => "svn", + }, + }, + }; + $opts{PREREQ_PM} = + { + @Imager_req, + }; + } +} + +require Imager::Probe; + +my %probe = + ( + name => "TIFF", + inccheck => sub { -e File::Spec->catfile($_[0], "tiffio.h") }, + libbase => "tiff", + testcode => _tiff_test_code(), + testcodeheaders => [ "tiffio.h", "stdio.h", "string.h" ], + incpath => join($Config{path_sep}, @incpaths), + libpath => join($Config{path_sep}, @libpaths), + ); + +my $probe_res = Imager::Probe->probe(\%probe); +if ($probe_res) { + push @inc, $probe_res->{INC}; + $opts{LIBS} = $probe_res->{LIBS}; + + $opts{INC} = "@inc"; + + if ($MM_ver > 6.06) { + $opts{AUTHOR} = 'Tony Cook '; + $opts{ABSTRACT} = 'TIFF image file support for Imager'; + } + + WriteMakefile(%opts); +} +else { + if ($BUILDING_IMAGER) { + WriteEmptyMakefile(%opts); + } + else { + # fail in good way + die "OS unsupported: TIFF libraries or headers not found\n"; + } +} + +sub _tiff_test_code { + return <<'CODE'; +static const char ver_base[] = ", Version "; +static const size_t ver_base_len = sizeof(ver_base) - 1; +const char *ver_str = TIFFGetVersion(); +const char *ver_start = strstr(ver_str, ver_base); +const char *ver_end; +int ver_len; + +if (ver_start && ver_start[ver_base_len] >= '3' && ver_start[ver_base_len] < '9') { + ver_start += ver_base_len; + ver_end = ver_start; + while (*ver_end && (*ver_end == '.' || *ver_end >= '0' && *ver_end <= '9')) + ++ver_end; + ver_len = ver_end - ver_start; +} +else { + ver_start = "(unknown)"; + ver_len = strlen(ver_start); +} + +fprintf(stderr, "TIFF: library version %.*s, header version %ld\n", ver_len, ver_start, TIFFLIB_VERSION); +if (TIFFLIB_VERSION == 20090820) { + fprintf(stderr, "TIFF: this appears to be libtiff 3.9.0 which introduced a serious bug\n"); + fprintf(stderr, "TIFF: please install 3.9.1\n"); + return 1; +} +return 0; +CODE +} diff --git a/TIFF/TIFF.pm b/TIFF/TIFF.pm new file mode 100644 index 00000000..cbc42e3f --- /dev/null +++ b/TIFF/TIFF.pm @@ -0,0 +1,141 @@ +package Imager::File::TIFF; +use strict; +use Imager; +use vars qw($VERSION @ISA); + +BEGIN { + $VERSION = "0.77"; + + eval { + require XSLoader; + XSLoader::load('Imager::File::TIFF', $VERSION); + 1; + } or do { +print STDERR "Falling back to DynaLoader ($@)\n"; + require DynaLoader; + push @ISA, 'DynaLoader'; + bootstrap Imager::File::TIFF $VERSION; + }; +} + +Imager->register_reader + ( + type=>'tiff', + single => + sub { + my ($im, $io, %hsh) = @_; + + my $allow_incomplete = $hsh{allow_incomplete}; + defined $allow_incomplete or $allow_incomplete = 0; + + my $page = $hsh{page}; + defined $page or $page = 0; + $im->{IMG} = i_readtiff_wiol($io, $allow_incomplete, $page); + + unless ($im->{IMG}) { + $im->_set_error(Imager->_error_as_msg); + return; + } + + return $im; + }, + multiple => + sub { + my ($io, %hsh) = @_; + + my @imgs = i_readtiff_multi_wiol($io); + unless (@imgs) { + Imager->_set_error(Imager->_error_as_msg); + return; + } + + return map bless({ IMG => $_, ERRSTR => undef }, "Imager"), @imgs; + }, + ); + +Imager->register_writer + ( + type=>'tiff', + single => + sub { + my ($im, $io, %hsh) = @_; + + $im->_set_opts(\%hsh, "i_", $im); + $im->_set_opts(\%hsh, "tiff_", $im); + $im->_set_opts(\%hsh, "exif_", $im); + + if (defined $hsh{class} && $hsh{class} eq "fax") { + my $fax_fine = $hsh{fax_fine}; + defined $fax_fine or $fax_fine = 1; + if (!i_writetiff_wiol_faxable($im->{IMG}, $io, $fax_fine)) { + $im->{ERRSTR} = Imager->_error_as_msg(); + return undef; + } + } + else { + unless (i_writetiff_wiol($im->{IMG}, $io)) { + $im->_set_error(Imager->_error_as_msg); + return; + } + } + return $im; + }, + multiple => + sub { + my ($class, $io, $opts, @ims) = @_; + + Imager->_set_opts($opts, "tiff_", @ims); + Imager->_set_opts($opts, "exif_", @ims); + + my @work = map $_->{IMG}, @ims; + my $tiff_class = $opts->{class}; + defined $tiff_class or $tiff_class = ""; + + my $result; + if ($tiff_class eq "fax") { + my $fax_fine = $opts->{fax_fine}; + defined $fax_fine or $fax_fine = 1; + $result = i_writetiff_multi_wiol_faxable($io, $fax_fine, @work); + } + else { + $result = i_writetiff_multi_wiol($io, @work); + } + unless ($result) { + $class->_set_error($class->_error_as_msg); + return; + } + + return 1; + }, + ); + +__END__ + +=head1 NAME + +Imager::File::TIFF - read and write TIFF files + +=head1 SYNOPSIS + + use Imager; + + my $img = Imager->new; + $img->read(file=>"foo.tiff") + or die $img->errstr; + + $img->write(file => "foo.tif") + or die $img->errstr; + +=head1 DESCRIPTION + +Imager's TIFF support is documented in L. + +=head1 AUTHOR + +Tony Cook + +=head1 SEE ALSO + +Imager, Imager::Files. + +=cut diff --git a/TIFF/TIFF.xs b/TIFF/TIFF.xs new file mode 100644 index 00000000..3765d4f6 --- /dev/null +++ b/TIFF/TIFF.xs @@ -0,0 +1,145 @@ +#define PERL_NO_GET_CONTEXT +#ifdef __cplusplus +extern "C" { +#endif +#include "EXTERN.h" +#include "perl.h" +#include "XSUB.h" +#include "imext.h" +#include "imperl.h" +#include "imtiff.h" + +DEFINE_IMAGER_CALLBACKS; + +MODULE = Imager::File::TIFF PACKAGE = Imager::File::TIFF + +Imager::ImgRaw +i_readtiff_wiol(ig, allow_incomplete=0, page=0) + Imager::IO ig + int allow_incomplete + int page + +void +i_readtiff_multi_wiol(ig) + Imager::IO ig + PREINIT: + i_img **imgs; + int count; + int i; + PPCODE: + imgs = i_readtiff_multi_wiol(ig, &count); + if (imgs) { + EXTEND(SP, count); + for (i = 0; i < count; ++i) { + SV *sv = sv_newmortal(); + sv_setref_pv(sv, "Imager::ImgRaw", (void *)imgs[i]); + PUSHs(sv); + } + myfree(imgs); + } + + +undef_int +i_writetiff_wiol(im, ig) + Imager::ImgRaw im + Imager::IO ig + +undef_int +i_writetiff_multi_wiol(ig, ...) + Imager::IO ig + PREINIT: + int i; + int img_count; + i_img **imgs; + CODE: + if (items < 2) + croak("Usage: i_writetiff_multi_wiol(ig, images...)"); + img_count = items - 1; + RETVAL = 1; + if (img_count < 1) { + RETVAL = 0; + i_clear_error(); + i_push_error(0, "You need to specify images to save"); + } + else { + imgs = mymalloc(sizeof(i_img *) * img_count); + for (i = 0; i < img_count; ++i) { + SV *sv = ST(1+i); + imgs[i] = NULL; + if (SvROK(sv) && sv_derived_from(sv, "Imager::ImgRaw")) { + imgs[i] = INT2PTR(i_img *, SvIV((SV*)SvRV(sv))); + } + else { + i_clear_error(); + i_push_error(0, "Only images can be saved"); + myfree(imgs); + RETVAL = 0; + break; + } + } + if (RETVAL) { + RETVAL = i_writetiff_multi_wiol(ig, imgs, img_count); + } + myfree(imgs); + } + OUTPUT: + RETVAL + +undef_int +i_writetiff_wiol_faxable(im, ig, fine) + Imager::ImgRaw im + Imager::IO ig + int fine + +undef_int +i_writetiff_multi_wiol_faxable(ig, fine, ...) + Imager::IO ig + int fine + PREINIT: + int i; + int img_count; + i_img **imgs; + CODE: + if (items < 3) + croak("Usage: i_writetiff_multi_wiol_faxable(ig, fine, images...)"); + img_count = items - 2; + RETVAL = 1; + if (img_count < 1) { + RETVAL = 0; + i_clear_error(); + i_push_error(0, "You need to specify images to save"); + } + else { + imgs = mymalloc(sizeof(i_img *) * img_count); + for (i = 0; i < img_count; ++i) { + SV *sv = ST(2+i); + imgs[i] = NULL; + if (SvROK(sv) && sv_derived_from(sv, "Imager::ImgRaw")) { + imgs[i] = INT2PTR(i_img *, SvIV((SV*)SvRV(sv))); + } + else { + i_clear_error(); + i_push_error(0, "Only images can be saved"); + myfree(imgs); + RETVAL = 0; + break; + } + } + if (RETVAL) { + RETVAL = i_writetiff_multi_wiol_faxable(ig, imgs, img_count, fine); + } + myfree(imgs); + } + OUTPUT: + RETVAL + +const char * +i_tiff_libversion() + +bool +i_tiff_has_compression(name) + const char *name + + +BOOT: + PERL_INITIALIZE_IMAGER_CALLBACKS; diff --git a/tiff.c b/TIFF/imtiff.c similarity index 98% rename from tiff.c rename to TIFF/imtiff.c index 23a0e822..814823b3 100644 --- a/tiff.c +++ b/TIFF/imtiff.c @@ -1,7 +1,7 @@ -#include "imager.h" #include -#include "iolayer.h" -#include "imageri.h" +#include +#include "imtiff.h" +#include "imext.h" /* needed to implement our substitute TIFFIsCODECConfigured */ #if TIFFLIB_VERSION < 20031121 @@ -43,6 +43,8 @@ Some of these functions are internal. #define CLAMP8(x) ((x) < 0 ? 0 : (x) > 255 ? 255 : (x)) #define CLAMP16(x) ((x) < 0 ? 0 : (x) > 65535 ? 65535 : (x)) +#define Sample16To8(num) ((num) / 257) + struct tag_name { char *name; uint32 tag; @@ -412,8 +414,8 @@ static i_img *read_one_tiff(TIFF *tif, int allow_incomplete) { return NULL; /* general metadata */ - i_tags_addn(&im->tags, "tiff_bitspersample", 0, bits_per_sample); - i_tags_addn(&im->tags, "tiff_photometric", 0, photometric); + i_tags_setn(&im->tags, "tiff_bitspersample", bits_per_sample); + i_tags_setn(&im->tags, "tiff_photometric", photometric); TIFFGetFieldDefaulted(tif, TIFFTAG_COMPRESSION, &compress); /* resolution tags */ @@ -425,22 +427,22 @@ static i_img *read_one_tiff(TIFF *tif, int allow_incomplete) { xres = yres; else if (!gotYres) yres = xres; - i_tags_addn(&im->tags, "tiff_resolutionunit", 0, resunit); + i_tags_setn(&im->tags, "tiff_resolutionunit", resunit); if (resunit == RESUNIT_CENTIMETER) { /* from dots per cm to dpi */ xres *= 2.54; yres *= 2.54; - i_tags_add(&im->tags, "tiff_resolutionunit_name", 0, "centimeter", -1, 0); + i_tags_set(&im->tags, "tiff_resolutionunit_name", "centimeter", -1); } else if (resunit == RESUNIT_NONE) { - i_tags_addn(&im->tags, "i_aspect_only", 0, 1); - i_tags_add(&im->tags, "tiff_resolutionunit_name", 0, "none", -1, 0); + i_tags_setn(&im->tags, "i_aspect_only", 1); + i_tags_set(&im->tags, "tiff_resolutionunit_name", "none", -1); } else if (resunit == RESUNIT_INCH) { - i_tags_add(&im->tags, "tiff_resolutionunit_name", 0, "inch", -1, 0); + i_tags_set(&im->tags, "tiff_resolutionunit_name", "inch", -1); } else { - i_tags_add(&im->tags, "tiff_resolutionunit_name", 0, "unknown", -1, 0); + i_tags_set(&im->tags, "tiff_resolutionunit_name", "unknown", -1); } /* tifflib doesn't seem to provide a way to get to the original rational value of these, which would let me provide a more reasonable @@ -455,20 +457,19 @@ static i_img *read_one_tiff(TIFF *tif, int allow_incomplete) { if (TIFFGetField(tif, text_tag_names[i].tag, &data)) { mm_log((1, "i_readtiff_wiol: tag %d has value %s\n", text_tag_names[i].tag, data)); - i_tags_add(&im->tags, text_tag_names[i].name, 0, data, - strlen(data), 0); + i_tags_set(&im->tags, text_tag_names[i].name, data, -1); } } - i_tags_add(&im->tags, "i_format", 0, "tiff", -1, 0); + i_tags_set(&im->tags, "i_format", "tiff", 4); if (warn_buffer && *warn_buffer) { - i_tags_add(&im->tags, "i_warning", 0, warn_buffer, -1, 0); + i_tags_set(&im->tags, "i_warning", warn_buffer, -1); *warn_buffer = '\0'; } for (i = 0; i < compress_value_count; ++i) { if (compress_values[i].tag == compress) { - i_tags_add(&im->tags, "tiff_compression", 0, compress_values[i].name, -1, 0); + i_tags_set(&im->tags, "tiff_compression", compress_values[i].name, -1); break; } } @@ -497,7 +498,6 @@ i_readtiff_wiol(io_glue *ig, int allow_incomplete, int page) { /* Add code to get the filename info from the iolayer */ /* Also add code to check for mmapped code */ - io_glue_commit_types(ig); mm_log((1, "i_readtiff_wiol(ig %p, allow_incomplete %d, page %d)\n", ig, allow_incomplete, page)); tif = TIFFClientOpen("(Iolayer)", @@ -540,14 +540,14 @@ i_readtiff_wiol(io_glue *ig, int allow_incomplete, int page) { } /* -=item i_readtiff_multi_wiol(ig, length, *count) +=item i_readtiff_multi_wiol(ig, *count) Reads multiple images from a TIFF. =cut */ i_img** -i_readtiff_multi_wiol(io_glue *ig, int length, int *count) { +i_readtiff_multi_wiol(io_glue *ig, int *count) { TIFF* tif; TIFFErrorHandler old_handler; TIFFErrorHandler old_warn_handler; @@ -564,8 +564,7 @@ i_readtiff_multi_wiol(io_glue *ig, int length, int *count) { /* Add code to get the filename info from the iolayer */ /* Also add code to check for mmapped code */ - io_glue_commit_types(ig); - mm_log((1, "i_readtiff_wiol(ig %p, length %d)\n", ig, length)); + mm_log((1, "i_readtiff_wiol(ig %p, length %d)\n", ig)); tif = TIFFClientOpen("(Iolayer)", "rm", @@ -1268,7 +1267,6 @@ i_writetiff_multi_wiol(io_glue *ig, i_img **imgs, int count) { old_handler = TIFFSetErrorHandler(error_handler); - io_glue_commit_types(ig); i_clear_error(); mm_log((1, "i_writetiff_multi_wiol(ig 0x%p, imgs 0x%p, count %d)\n", ig, imgs, count)); @@ -1337,7 +1335,6 @@ i_writetiff_multi_wiol_faxable(io_glue *ig, i_img **imgs, int count, int fine) { old_handler = TIFFSetErrorHandler(error_handler); - io_glue_commit_types(ig); i_clear_error(); mm_log((1, "i_writetiff_multi_wiol(ig 0x%p, imgs 0x%p, count %d)\n", ig, imgs, count)); @@ -1402,7 +1399,6 @@ i_writetiff_wiol(i_img *img, io_glue *ig) { old_handler = TIFFSetErrorHandler(error_handler); - io_glue_commit_types(ig); i_clear_error(); mm_log((1, "i_writetiff_wiol(img %p, ig 0x%p)\n", img, ig)); @@ -1464,7 +1460,6 @@ i_writetiff_wiol_faxable(i_img *im, io_glue *ig, int fine) { old_handler = TIFFSetErrorHandler(error_handler); - io_glue_commit_types(ig); i_clear_error(); mm_log((1, "i_writetiff_wiol(img %p, ig 0x%p)\n", im, ig)); diff --git a/TIFF/imtiff.h b/TIFF/imtiff.h new file mode 100644 index 00000000..84222b6e --- /dev/null +++ b/TIFF/imtiff.h @@ -0,0 +1,15 @@ +#ifndef IMAGER_IMTIFF_H +#define IMAGER_IMTIFF_H + +#include "imdatatypes.h" + +i_img * i_readtiff_wiol(io_glue *ig, int allow_incomplete, int page); +i_img ** i_readtiff_multi_wiol(io_glue *ig, int *count); +undef_int i_writetiff_wiol(i_img *im, io_glue *ig); +undef_int i_writetiff_multi_wiol(io_glue *ig, i_img **imgs, int count); +undef_int i_writetiff_wiol_faxable(i_img *im, io_glue *ig, int fine); +undef_int i_writetiff_multi_wiol_faxable(io_glue *ig, i_img **imgs, int count, int fine); +char const * i_tiff_libversion(void); +int i_tiff_has_compression(char const *name); + +#endif diff --git a/t/t106tiff.t b/TIFF/t/t10tiff.t similarity index 95% rename from t/t106tiff.t rename to TIFF/t/t10tiff.t index 62f3f727..77f16de3 100644 --- a/t/t106tiff.t +++ b/TIFF/t/t10tiff.t @@ -1,13 +1,13 @@ #!perl -w use strict; -use Test::More; +use Test::More tests => 216; use Imager qw(:all); use Imager::Test qw(is_image is_image_similar test_image test_image_16 test_image_double test_image_raw); -i_has_format("tiff") - or plan skip_all => "no tiff support"; +BEGIN { use_ok("Imager::File::TIFF"); } -plan tests => 215; +-d "testout" + or mkdir "testout"; $|=1; # give us some progress in the test harness init_log("testout/t106tiff.log",1); @@ -18,7 +18,7 @@ my $red=i_color_new(255,0,0,255); my $img=test_image_raw(); -my $ver_string = Imager::i_tiff_libversion(); +my $ver_string = Imager::File::TIFF::i_tiff_libversion(); ok(my ($full, $major, $minor, $point) = $ver_string =~ /Version +((\d+)\.(\d+).(\d+))/, "extract library version") @@ -38,14 +38,14 @@ Imager::i_tags_add($img, "tiff_software", 0, "t106tiff.t", 0); open(FH,">testout/t106.tiff") || die "cannot open testout/t106.tiff for writing\n"; binmode(FH); my $IO = Imager::io_new_fd(fileno(FH)); -ok(i_writetiff_wiol($img, $IO), "write low level") +ok(Imager::File::TIFF::i_writetiff_wiol($img, $IO), "write low level") or print "# ", Imager->_error_as_msg, "\n"; close(FH); open(FH,"testout/t106.tiff") or die "cannot open testout/t106.tiff\n"; binmode(FH); $IO = Imager::io_new_fd(fileno(FH)); -my $cmpimg = i_readtiff_wiol($IO, -1); +my $cmpimg = Imager::File::TIFF::i_readtiff_wiol($IO); ok($cmpimg, "read low-level"); close(FH); @@ -66,7 +66,7 @@ is($tags{tiff_bitspersample}, 8, "tiff_bitspersample"); $IO = Imager::io_new_bufchain(); -ok(Imager::i_writetiff_wiol($img, $IO), "write to buffer chain"); +ok(Imager::File::TIFF::i_writetiff_wiol($img, $IO), "write to buffer chain"); my $tiffdata = Imager::io_slurp($IO); open(FH,"testout/t106.tiff"); @@ -97,7 +97,7 @@ open FH, "> testout/t106tiff_fax.tiff" or die "Cannot create testout/t106tiff_fax.tiff: $!"; binmode FH; $IO = Imager::io_new_fd(fileno(FH)); -ok(i_writetiff_wiol_faxable($faximg, $IO, 1), "write faxable, low level"); +ok(Imager::File::TIFF::i_writetiff_wiol_faxable($faximg, $IO, 1), "write faxable, low level"); close FH; # test the OO interface @@ -242,7 +242,7 @@ $work = $tiffdata; $seekpos = 0; my $IO2 = Imager::io_new_cb(undef, \&io_reader, \&io_seeker, undef); ok($IO2, "new readcb obj"); -my $img5 = i_readtiff_wiol($IO2, -1); +my $img5 = Imager::File::TIFF::i_readtiff_wiol($IO2); ok($img5, "read via cb"); ok(i_img_diff($img5, $img) == 0, "read from cb diff"); @@ -251,7 +251,7 @@ $work = $tiffdata; $seekpos = 0; my $IO3 = Imager::io_new_cb(undef, \&io_reader2, \&io_seeker, undef); ok($IO3, "new readcb2 obj"); -my $img6 = i_readtiff_wiol($IO3, -1); +my $img6 = Imager::File::TIFF::i_readtiff_wiol($IO3); ok($img6, "read via cb2"); ok(i_img_diff($img6, $img) == 0, "read from cb2 diff"); @@ -261,7 +261,7 @@ $seekpos = 0; my $IO4 = Imager::io_new_cb(\&io_writer, \&io_reader, \&io_seeker, \&io_closer); ok($IO4, "new writecb obj"); -ok(i_writetiff_wiol($img, $IO4), "write to cb"); +ok(Imager::File::TIFF::i_writetiff_wiol($img, $IO4), "write to cb"); is($work, $odata, "write cb match"); ok($did_close, "write cb did close"); open D1, ">testout/d1.tiff" or die; @@ -278,7 +278,7 @@ $did_close = 0; my $IO5 = Imager::io_new_cb(\&io_writer, \&io_reader, \&io_seeker, \&io_closer, 1); ok($IO5, "new writecb obj 2"); -ok(i_writetiff_wiol($img, $IO5), "write to cb2"); +ok(Imager::File::TIFF::i_writetiff_wiol($img, $IO5), "write to cb2"); is($work, $odata, "write cb2 match"); ok($did_close, "write cb2 did close"); @@ -397,7 +397,7 @@ ok(defined $warning && $warning =~ /unknown field with tag 28712/, { # test reading returns an error correctly - use test script as an # invalid TIFF file my $im = Imager->new; - ok(!$im->read(file=>'t/t106tiff.t', type=>'tiff'), + ok(!$im->read(file=>'t/t10tiff.t', type=>'tiff'), "fail to read script as image"); # we get different magic number values depending on the platform # byte ordering @@ -656,7 +656,7 @@ SKIP: { # 8-bit writes # and check compression - my $compress = Imager::i_tiff_has_compression('lzw') ? 'lzw' : 'packbits'; + my $compress = Imager::File::TIFF::i_tiff_has_compression('lzw') ? 'lzw' : 'packbits'; my $orig = test_image()->convert(preset=>'grey') ->convert(preset => 'addalpha'); my $data; @@ -723,8 +723,8 @@ SKIP: } { # fallback handling of tiff - is(Imager::i_tiff_has_compression('none'), 1, "can always do uncompresed"); - is(Imager::i_tiff_has_compression('xxx'), '', "can't do xxx compression"); + is(Imager::File::TIFF::i_tiff_has_compression('none'), 1, "can always do uncompresed"); + is(Imager::File::TIFF::i_tiff_has_compression('xxx'), '', "can't do xxx compression"); } diff --git a/testimg/alpha.tif b/TIFF/testimg/alpha.tif similarity index 100% rename from testimg/alpha.tif rename to TIFF/testimg/alpha.tif diff --git a/TIFF/testimg/comp4.bmp b/TIFF/testimg/comp4.bmp new file mode 100644 index 0000000000000000000000000000000000000000..9af4da497c61483c40c185db8955224983a32b17 GIT binary patch literal 2418 zcmeHJ!AiqG5S=ceXa#ADEG3pwN(n_uDJn(8i?Rn75jsNk$Fv~IL{y1#gx5whwQ$L z`dibZ7xvr@*l;#tPlqA%x_j(qHKx_E*P|O2`rvqe$5^9w2u{CW5Riw!hql4ALU0Ft zA!HOqV^QKh>=>*U!rDLyS&Sf0T+85^A>@$*j@$@2FU~nixO1jyFb#@C)FN<>xrx_F zO-QICQwkc!8^}0HHc)Gfv(ycyhRi^C_{Jzm;!3s<=YGxbuWJ7t^0#m$2_N&gKT{n< zOMcZ*akUEJBMVoO@G+13GqoGB7*^35yIR9Fv^6f%aV7UrCGO2sFBPMhD~2xD^Y!$6 zOXD)be}?mi}NM(l5#sehpE!+oUfvWT_IFw>Geb^cKuNur`2m#eP?%s>@Jekcd(0PbgD)D hZBbub+)=YTaa!MA{p%L}>&=sad1m;lbIDvc_XCAvOW6Pb literal 0 HcmV?d00001 diff --git a/testimg/comp4.tif b/TIFF/testimg/comp4.tif similarity index 100% rename from testimg/comp4.tif rename to TIFF/testimg/comp4.tif diff --git a/testimg/comp4bad.tif b/TIFF/testimg/comp4bad.tif similarity index 100% rename from testimg/comp4bad.tif rename to TIFF/testimg/comp4bad.tif diff --git a/testimg/comp4t.tif b/TIFF/testimg/comp4t.tif similarity index 100% rename from testimg/comp4t.tif rename to TIFF/testimg/comp4t.tif diff --git a/TIFF/testimg/comp8.bmp b/TIFF/testimg/comp8.bmp new file mode 100644 index 0000000000000000000000000000000000000000..14ddaccec932e215742fd4437dce59b5b1ae7a53 GIT binary patch literal 5378 zcmeI0!EzHv5QclbyD~PWAhH8%V+@YBTyjw^oc0uN70$(vq4h!3 zRPh+{g=d&|ntVMgxg18eBNc~G6-|9>*SPg}?@Z71jQhVWeJTFaOGI*h8%>DhibVWw zZ-{iSw)hV11}r$xK`o#H0~Q=0L_8Xa@y+sd zpo3pP1qLiQ&n@I++DjV8DU{zCb)WDjJFP&GFPp zFQ5Vg7940I6i|Ty3l20n3aG$<1qYfi1yo?bf&(7JLq8a>;DA36kIs;eibmpm!T;5G5Y^!GHw^I3gbU!GHw^IL8J3V8DWd|N3XTM||p^Y(;g%CbMXh z&b)1%pMcd=4xHu`V0To40QZU8eNYzp6x{4Xidigk|;`&m#HMHtDBoocO=QOPUrt`eEP9k zzZ;J3_o-Y<9O4;6R-Whk`F?$H+_w7l?`2tL zeR&)x?xwPxV7*`0P2DtO--gY*(c#fxP?r5X$byHdtf+o{e9$ySet?r*%-3zp^(!iRBV@Wjndx6fKiA6rK*alO{hdJLHX4t1>*k5K zD6{QAW7~Uayv1-dDDMOsTa!4RPU5&7Xy7Hri9DNlxgBV1PQ0ka2fSvQ}fL7Q^?0a&wkOjD-9!mUwhjN~m!Qjby(*!6F$QzA3XnW9sEc)fkkr8N_iD zjYqiY`AEy`)+~*9_qdVPqSw!6X~fLFyihNrfrN1oDHe_VG>PLJ4c-$ zhM#xhz{2Nnm>HL6Xq!8=ki*I7eQ!pVv)ZOBMRTVgW_j!7cvuj}p5QD!&0Ad7jGEJZ)QYeM3IO(`n3^d2+Wnd&-trPyTwA zo^j6pOui%WQj*Be>?Q5#^dIkZsJEF#FEh#N%Enw*nVl@_`dbUP$G6ea!uPi%zH)7@ y`&-tX-r&6FXu&J1UUZk2=en}$1-H#C?&yCmdOz3i&3i-Fe@}ku|1+G?i~a`Hl=s~L literal 0 HcmV?d00001 diff --git a/testimg/comp8.tif b/TIFF/testimg/comp8.tif similarity index 100% rename from testimg/comp8.tif rename to TIFF/testimg/comp8.tif diff --git a/testimg/gralpha.tif b/TIFF/testimg/gralpha.tif similarity index 100% rename from testimg/gralpha.tif rename to TIFF/testimg/gralpha.tif diff --git a/testimg/grey16.tif b/TIFF/testimg/grey16.tif similarity index 100% rename from testimg/grey16.tif rename to TIFF/testimg/grey16.tif diff --git a/testimg/grey32.tif b/TIFF/testimg/grey32.tif similarity index 100% rename from testimg/grey32.tif rename to TIFF/testimg/grey32.tif diff --git a/TIFF/testimg/imager.pbm b/TIFF/testimg/imager.pbm new file mode 100644 index 0000000000000000000000000000000000000000..610caf3e741339ffa646b0b29037375e2160e664 GIT binary patch literal 145 zcmWGA;W9H)Ff`{nzyJa0^s(m$s@XUEusQz!;eYv$|7?!i6t+tgw^>@FFH556ýýýüüûþþúþÿúþþûþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþü©©© + + +!!"224335EEE;;; 444889²²²þþýþÿûþÿúþÿúþþûþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþÿúþþü©©§224PPP<<<&&&224 + + RRQttr……„•••™™™”””\\\...±±²ýýûþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþÿúþþü©©§ggh———³³³­­­yyy)))000iigƒƒ’’ŸŸŸªªª²²²¾¾¾¿¿¿qqq +²²³þþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþü©©§ + + +\\\“““´´´ÇÇÆÃÃÁ­­«~~},,, +(()lll““‘¦¦¤³³±¸¸·¿¿¿ÄÄÄÑÑÑÁÁÁ¢¢¢RRR ²²²ýýüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþü©©©'''¥¥£ÁÁ¿ÒÒÐÑÑÏÊÊÈ­­¬yyy ]]]™™—ÇÇÅââàìììòòòôôôóóóíííØØØ®®®{{{%%%sstýýüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþü©©©OOO¬¬¬ÞÞÜôôòûûùüüúüüúûûûãããDDD((*§§¨ææäýýûþþýþþþíííÎÎÎçççýýýúúúñññ···YYY444þþýþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþþ©©© |||èèèõõõ¢¢¢qqo  žððîýýüüüü“““JJJÉÉÉööôýýûûûú¨¨¨$$& '''ŠŠŠôôôýýýùùù­­­444þþýþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþþ©©ª¯¯±÷÷ù ***===kkkññïýýûÉÉÈ + + +VVWÓÓÓûûùüüúººº888zzzGGGzzzõõõýýýååå777444þþýþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþýªª«ÄÄÆìëí436:::xxw443›œšýýûÝÝÝ))) ``aÔÕÕûûúóóòIII SSS}}}///ÄÄÄþþþ÷ø÷_`^444þþýþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüýýû¨¨¨ÄÇÇÄÃÇ YYUKLHTWVóöõààÝ331 ";;;HDC0,*`^bÒÔ×øüüÈÉË"!YWW/.0ŒŒŽúýýøýùˆ€444þþýþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüýýûÓÓÓ!ÆÃź¹µ+,*HDF.-.ääáÖÑË(# + '+,³³¶ôôô¶¶º +   qnqûøüüøü–’—444þþýþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüüüü,,.À½¼ÉËÅ)+-"%)ØÙ׎ˆ{ &$wrðë渷´  + qslüû÷úùö”’444þþýþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüýýûýýý**,«¬¬áäå.//#"²¨†€m%¥ŠáÉ¢Ȝ͝Ö—vrc#¾ÏÌ  –š˜ûýõ÷ùð‚ƒ444þþýþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþþ,,-†ˆŒðñõ‹Š‡  eF ®‚˚êµì¸ æ¶ à´ ×¬ŞÛÖ®#ɦ2йuQF./0/âåâýÿüëëëXVZ444ýýûþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþþ,,-SSTåàäïîïSTV6!‰e±ƒ°|Ú£î¸î» +é¼ +á¹ Ó­´“ +xƜ è½ä» mV"%'#ÀÅÂúÿþøüýÅÈÊ"!%××Öþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþþ,,-"!ÃÂÄøöùëæÚzg7šr¿‰ +֟ç¯ ðµ ñ· ï¹ë½èÁåÀ äÀá¾çÈîÑêÊçÃã¿Í©xo^ Цþùõýûúëíç|z±±°ýýûþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþþ,,- +twxâÝÐϹ‡¬ƒ½ˆәã­éµì¸ ë¹é¼ç¿ ëÇîÍîÒñÓ+ôÔ/÷Ö0öÕ.øÕ%öÑóÉ î¿ß°È¡*À¡KÅ°v¦—r*!±±°þþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþÿúþÿúþþüýýûýýý//02(£‡Vª}!¿† +Жܤ +ç° ëµ í¹ +ì¼ ê¾ +êÁ ìÇïÎðÓ ò×/ôØ>÷ÚDöÚ4õØöÕ öÐ ôÍòÇðÆë¿Ú°Á™{W±±±þþþþþýþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþÿúþÿúþþüýýûüüü++- YC›xµ„ʍ؛â« ê´ ê´ ë· +ì¼ ëÀ ìÆîÌðÑóÕ*õØ>÷ÚA÷Û=ôØ,öÙ÷Øù×øÛù×öÖ÷ÕöÑòÅ+Ö§)bL +±±²ýýýþþýþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüýýý,,. L2  u²€¿ˆԕ â¡ä¯êµì¶ íºë¾ëÄ ìË ìÎïÒôÖ9øÙGùÚBöÙ*õÚõØõ×õ×õØøÙô×ëÎãÂôÇ+î»"“s rrsþþþþþýþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüýýûþþýªª«…`¶x¿€ɏۜ ç¦ç± ì¸ ë· í¼ìÂêÇêÍ íÐòÔ/÷ÚAøÙ@öØ-öØöÙ÷ÚôØôØ÷×öÏằ‡­‚Ùª à¯~_445ýýýþþýþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþýªª«, ”o¸włіÞ¡ è« é´ ë· íºê½ ëÄ êËìÏðÓ'òÓ<õØ7õØ%ó×öØ÷×ö×ôÖóÖìËǛ µ„Ž ѝ Ø¡ ϜfL +ØØØþþüýýûþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþþþþüþþüþþüþþüþþýªªª( s´} Ȍ Ӝ ߦ ç®î¹ í¹ ì» ë¿ êÅìÌ +îÑòÕ+÷Ø=õÖ*õØô×ö×÷Ø õÕôÑܵª„·ŠʘӛÜ ؛ќdK +qqqþþýþþüýýûþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþþþþþþþüþþüþþüþþýªªª T>†_ ½ؤà¬ë´ +ï·îº í½ ìà íÉíÍïÒóÖ#ô×&öÖ÷Öô×ñÓñÏêÄė «yÁ‘К ՛ ٜ ڝ՚ĒL7 333þþüýýûýýûþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþþþþþþþüþþüþþüþþýªªªZ>S·…Ý®ë·ò·ï¼ îÁ îÅñÍïÏñÓóÖó×öÕõÔíÏ ãÄ¿˜Ÿo±| ɒ ՗ ܘ ݚ ڝ ΘЏc  +SSUhhj'')±±°ýýûýýûþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþýªª« +C)vM€U§ Û®ñ·ï¿îÇñÍóÐ'ôÔ%ñÔïÔïÑèÈÕ´¬‹Œe›m¼‡ Δ ՙ +כ +ٟ՝ɔ¶ˆ­‰?yfC;;;yyyyyyQQQ**) + +qqqþþüýþúþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþýªª«("gƒh%~W‹\©{ Ç  Ô±Ù¸Û¼Ò±έœ¨|¡oi«v º‚Ɍ ґ ғ їЗ Ő »Ž!Ä \ʱ”Ǻ°¸³®QQLccc€€€zzy442××Öýýûþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþýªª«³µ«³¨ƒl&•h“i ˜o ¦~ +¥£}¢y§z°º…Éćʍ ΒΔ͒ ʌȇ¸„»”M˵—Ê»ÄÃÀ¾½º¿¿¿”–™777}}}€€aa` !pppþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþýªª« \ZS¾¾¹¾·³®™ul˜i¢pÀ’Û²Û´׫ҟЖҕϖ ̓ ʐ ȎɐÁ‹µƒ±…0¾¦~ƼªÅ¹ÊÌÉÈÍÊÂÇÀ½¾¹©§§! "]]]€€€~~}mmm445ÖÖÕþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüüüúþþþjjl[XZ½¹º½»¾Áº³°—p–išd¬w +ȓҞԝҘ +ҔϐʎÌ¿‡½~¾| ·´–Q½´™º»¶»½¸¹½¶ÃÆÁÐÑÏÒÑÑÈÆżº¹TSS;;;oopqqqBBB 000ýýüþþüýýûýýûþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüÿÿýýýü,,. U[W¸º·»½¸»¼ºÂ·®¶šv‘g'“e +¥u¶¾„ À… Á… ½‚ ·y°p°o°w ²„/¼žmÆ»¦»½±¾¹·Á¼¾ÆÉÉÖÛØèèêõï÷õó÷Ûß۟¡ž ,,.®®­þþüýýûüüúýýûþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüüüújjj OTK¹½¶Âÿ¿¿¸¿½´Áº³º¨Œ“{@ƒd‘hšhžih›i ˜e ˜e šn¬ŽK¿±‹Â½³»º»¿»¹Ã¿ÀÐÌÏçäç÷õûûüýûþøúý÷÷øø×ÖØOOO333þþüýýûüüúþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüÓÓÑ +b[_ØÔÖÖÔÖÈÅÄÀ½º¼½¼¾¼ºÃ»¬µ¢ƒ ‚V”n4•l%“l"™t0¦„K±™m¼³˜À¿´¾»µ¾º±¾¼µÁÂÁÎÓÌâçáò÷÷ýþýÿýùÿüöþýùýþýö÷÷²²² ®®­þþüýýûþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüýþúüýøiig%$%ÏÎÏîííáááÌËÌ¿¾¾¼¼¼½¼½À½½Á½¹Â¼´¿¸­¾¶§½µ¤¾¶§Ã»²Ã½¶À¼¹½¼º¼»¹ÁÀ¾ÆÅÄÓÓÓãäáôõòþÿýýþüÿþüþþûþþüþþüýþûôôô[[[""#ÔÔÕýýüýþúþþûþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüýýûüüúüüú¨¨¦ŒŒŒúúúöööëëëÖÖÖÁÁÁ¾¾¾¿½¾¿¾¼¾½»¾½º½¼¸À¾¹Á¾ºÁ¾¸À¼¹¿»º¼º¹¿¾¼ÆÅÃÎÎÎÜÜÜçççòòðýýûýýûÿÿýþþüþþüþþüþþüþþüüüüÃÃÃrrsýýüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüýýûÒÒÐ DDEßßßýýýýýýùùùìììÑÑѽ½½¾½¼¾½»¾½»À¿»¿¾º¾½¹¾¼¸¾½¹À½»¿½»ÁÀ¾ÌËÉ××Õääâïïï÷÷÷üüûýýûþþüýýûþþüþþüþþüþþüþþüþþüõõônnnÔÔÒþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüýýýþþþ+++ µµ´÷÷õýýûþþüýýûúúøååãÄľ½º¾½¹¾½»¾¾»¾½¼¾¾»¾¾»¾½»¾½»ÃÂÀÐÏÍàßÝìëéööôûûùýýûþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüûûúÎÎÎ&&&---þþþþþýþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüýýûýýûþþüýýýggg + + +nnnïïíýýûþþüþþüþþüýýûóóñÖÖÔÀ¿½¾½»¾½»¿¾¼¾½»¾½»¾¼¼¾¼½ÈÆÅÛÚØèçåóóñúúøûûùüüúþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüýýûøøøkkkªªªþþþýýüýýûþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüýýûýýûýýû¥¥¦))'ÑÑÏýýûýýûþþüþþüþþüþþüûûùììê×ÖÔÆÅÃÂÁ¿½¼º¾½½½½½ÂÂÂÐÐÐâââñññùùøûûùþþüþþüýýûýýûþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüýýýÁÁÁÓÓÔýýüýýûþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüýýûüüúýýûÐÐÎ ŒŒŠö÷óþþüÿÿýþþüþþüþþüþþüÿÿýüüúù÷÷íëìÝÛÜÕÕÕ×××ÜÜÜççåòòðùùøþþþýýýýýûþþüþþüþþüÿÿýþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüôôóJJJkklþþýþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüýýûÑÑÏ888ääãýýùþþûþþüþþüþþüþþüþþüþþüþþüÿýþýüýòðñëêëðððøøøûûùûýúýþýþþþýýýþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþÿûþþûþþüþþüýýýŒŒŒkkjþþýþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüýýûþþüýþùüüúýýýeefœœ›ûûùýýûþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüúúøööôýýûþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþÿûþÿüþþüþþüýýü¼¼¼jjjýýüüüúþþüýýûþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüýýûüüúýýûþþüddd>>>ÛÛÚøøöüüúýýûþþüþþüþþüþþüþþüþþüþþüýýûýýûúúøüüúþþüþþüþþüÿÿýþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþÿûþþûþþüþþüûûúâââ++-ÓÓÒþþüýýûÿÿýþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüüüúþþüþþüýýû¢¢¡ ‰‰‰ççåøøöüüúþþüþþüþþüþþüþþüþþüþþüþþüýýûþþüüüúûûùþþüÿÿýþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüÿÿýþþüüüúùùùîîîMMMÑÑÐüüúýýûýýûþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüýýûþþüýýûÏÏÏ---²²²æææõõóýýûþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüùù÷ûûùþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüüüúùù÷÷÷õñññóó󇇇ÒÒÒüüüþþýþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüýýûýýûÏÏÏ???´´´ßßßôôôûûûþþýþþüþþüþþüýýûýýûýýûýýûþþüýýûûûùôôòööôûûùýýûþþüþþüýýûþþüþþüþþüþþüýýûýýûþþüþþüþþüþþüüüúýýûüüúúúøøøöððîêêèììëìììììì°°°ÒÒÒþþþýýüýýûýýûþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüýýû###XXX©©©ÍÍÍìììøøøùùùüüüþþþþþþþþþýýýüüüúúú÷÷÷òòòñññêêêèèèðððöööùùùúúùüüúýýûûûùüüúúúøýýûýýûûûûûûûúúúùùùøøøøøøòòòïïïééçããâÛÛÛÛÛÛÞÞÞäääÆÆÆ (((üüüþþýþþüþþüýýûþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüaa_ + + +ttt¢¢¢¶¶¶ÐÐÐçççðððñññöööúúúùùùùùùøøøòòòéééâââßßßäääàààßßßåååïïïööõùù÷øøö÷÷õùù÷ùù÷øøöóóñéééåååáááÝÝÝÛÛÛØØØÖÖÖÓÓÓÑÑÑÐÐÐÈÈÈÈÈÈÊÊÊØØØÜÜÜNNN fffüüûýýûýýûþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüÎÎÌ………žžž¨¨¨ºººÌÌÌÜÜÜäääîîî÷÷÷úúúùùùúúúùùù÷÷÷íííßßßÞÞÞåååïïïñññøøøýýûýýûüüúýýûýýûúúøøøöóóñææåÚÚÚÒÒÒÉÉÉÅÅÅÄÄÄÂÂÂÂÂÂÀÀÀÁÁÁÀÀÀÂÂÂÂÂÂÉÉÉÝÝÛÊÊÉ001££¢þþüüüúþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþÿúþþüþþüþþþýýýaab&&&ŽŽŽ¡¡¡¯¯¯ÃÃÃÒÒÒààßééçóóñûûùýýûþþüýýûþþüýýýöööåååæææ÷÷÷ýýýþþþþþþþþüýýûþþüþþüýýûþþüþþüýýûööõíííæææÛÛÛÒÒÒÌÌÌÉÉÉÅÅÅÄÄÄÂÂÂÀÀÀÁÁÁÀÀÀÀÀÀÊÊÊåååÇÇÆ""!$$&556%%%ýýüýýûþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþÿúýýûþþüýýýÎÎÎ---˜˜˜¶¶¶ÉÉÉßßßííí÷÷öýýûýýûüüúýýûüüúþþüýýûþþþöööèèèôôôýýýþþþþþþþþþÿÿýýýûüüúýýûþþüþþüüüúýýûûûúüüüüüü÷÷÷ôôôìììäääÚÚÚÒÒÒÊÊÊÅÅÅÁÁÁÀÀÀÀÀÀÃÃÃÕÕÕðð¡  ::;@@@""" + + +££¢üüúþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþÿúþþüþþüþþþ___aaa¸¸¸ÓÓÓæææööôüüúþþüþþüýýûýýûüüúýýûûûùýýûýýý÷÷÷ëëëõõõüüüýýýûûûûûûüüúûûùýýûûûùüüúüüúþþüýýûþþýþþþþþþúúúýýýýýýüüüúúúñññçççÜÜÜÐÐÐÇÇÇÃÃÃÁÁÁÉÉÉààÞððïlll 222444$$$üüüýýüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþÿúþþüýýûýýý""" + +  222¬¬¬ÔÔÔëëëøøöüüúûûùûûùýýûûûùýýûþþüüüúýýûýýûýýûúúøõõóøøöýýûþþüþþüþþüþþüþþüýýûüüúþþüýýûýýûüüúüüúûûùûûùþþüüüúýýûüüúýýûþþýýýý÷÷÷ìììÝÝÝÑÑÑÆÆÆÃÃÃÍÍÍëëëÝÝÝ)))%%%@@@ÏÏÏþþýþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþÿúþþüþþüÍÍÍ668†††ØØØíííúúøþþüýýûþþüûûùþþüýýûúúøýýûþþüýýûýýûüüúüüúûûùýýûûûùúúøýýûýýûûûùüüúüüúýýûüüúûûùýýûüüúûûùýýûüüúýýûþþüþþüýýûûûùþþýýýýþþþüüü÷÷÷èèèÙÙÙÈÈÈÃÃÃÔÔÔôôô”””@@@ccdüüûýýûýýûþþüýýûþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþÿúþþüüüúžžž + + ??A:::ÑÑÑòòòúúùýýûûûùüüúýýûþþüûûùýýûýýûüüúüüúþþüþþüþþüüüúüüúþþüþþüþþüþþüýýûÿÿýþþüýýûþþüþþüýýûþþüþþüþþüûûùüüúýýûûûùüüúþþüýýûýýûýýûüüúýýûüüúúúøííëÛÛÙÊÊÉÇÇÇáááããã000444ÏÏÎýýûþþüýýûþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþÿúþþüýýû]]] "99;””•ùùùüüûýýûþþüýýûýýûûûùýýûüüúýýûûûùýýûýýûýýûúúøýýûþþüýýûüüúûûùüüúüüúûûùüüúüüúüüúüüúüüúüüúüüúüüúþþüýýûþþüýýûþþüýýûüüúýýûüüúûûùýýûüüúþþüþþüýýûððîÜÜÝÉÉÉÍÍÍïï + + +***(((¡¡ üüúýýûþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþÿúýþûüüú 668668ãããüüüþþüýýûûûùüüúýýûýýûþþüýýûüüúýýûýýûýýûþþüþþüýýûýýûûûùþþüýýûþþüüüúþþüþþüýýûýýûþþüýýûþþüþþüýýûüüúüüúüüúûûùýýûüüúþþüüüúýýûþþüþþüýýûýýûûûùþþüýýûðððÙÙÚËËËÚÚØááá*** !! 888$$$þþüüüúüüúýýûþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüýýûžž777«««ýýüþþüüüúýýûýýûûûùýýûýýûüüúþþüþþüüüúüüúüüúýýûüüúýýûþþüýýûûûùýýûýýûþþüýýûýýûýýûýýûüüúýýûüüúûûùþþüþþüþþüþþüþþüþþüýýûýýûþþüþþüýýûüüúþþüþþüþþüüüúýýûýýûóóñââàÞÞÛññîqqo...<<<000777ÏÏÏýýüüüúþÿûþþûþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüýýû]]] FFFDDDëëéþþüþþüüüúýýûþþüþþüþþüüüúþþüûûùüüúüüúÿÿýþþüþþüüüúýýûûûùýýûýýûüüúüüúýýûúúøþþüþþüýýûþþüüüúýýûýýûüüúýýûýýûûûùüüúüüúûûùþþüúúøýýûþþüüüúüüúýýûüüúýýûûûùüüúþþüûûùúúöýýû»»¹ +777FFF;;;### 111$$$bbbüüûýýûýýùþþûþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþü ==<¨¨¨ûûúýýûýýûüüúýýûûûùýýûüüúüüúþþüýýûþþüýýûûûùüüúüüúýýûûûùüüúûûùýýûüüúþþüþþüþþüúúøýýûûûùþþüþþüþþüþþüüüúþþüüüúýýûúúøþþüüüúýýûýýûýýûþþüüüúüüúüüúþþüþþüþþüüüúýýûýýûþÿûþþûççå000"""999@@@000@@@ ""#þþýüüúþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüœ;;;HHHîîìýýûûûùþþüûûùþþüýýûýýûýýûýýûüüúüüúýýûúúøþþüþþüýýûüüúùù÷øøöýýûûûùýýûüüúüüúþþüþþüþþüþþüûûùýýûüüúþþüýýûýýûþþüýýûþþüüüúþþüýýûüüúüüúýýûþþüüüúüüúûûùüüúüüúýýûüüúûûùýýùüüùùù÷__^%%%### ???(((   ýýüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüýþúþþûþþüýýý^^^<<<¢¢¢ýýûýýûüüúýýûþþüûûùüüúýýûþþüýýûýýûÿÿýýýûþþüüüúüüúûûùööôëëéùù÷ýýûþþüûûùüüúûûùýýûýýûûûùþþüþþüþþüüüúýýûûûùüüúýýûüüúýýûþþüüüúýýûþþüûûùüüúþþüýýûþþüýýûþþüüüúüüúþþüþþüýþúüýúüüú––• + + + + + +BBBaabþþýþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüýþùýýûþþüÍÍÌ666###000äääûûùýþúþþüüüúýýûþþüûûùýýûýýûþþüüüúýýûüüúüüúýýûýýûüüúòòðççåóóñýýûýýûýýûüüúÿÿýþþüýýûýýûûûùýýûýýûþþüþþüþþüýýûþþüþþüüüúþþüýýûýýûüüúþþüýýûýýûûûùüüúüüúüüúýýûþþüûûùýýûþþûýýúþþüÇÇÆ + + + + + === ""$ýýýþþýþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüüýøþÿúýýûœœ› + + +AAA + + +„„„úúúþþüýýùþþüþþüüüúþþüýýûýýûýýûüüúüüúüüúýýûüüúýýûýýûüüúïïíååãùù÷þþüüüúþþüýýûýýûýýûþþüüüúýýûûûùýýûýýûýýûýýûûûùýýûüüúþþüûûùýýûýýûýýûûûùýýûûûùþþüýýûþþüýýûüüúûûùþþüýýûýýùüýúýýûååä)));;;žžŸýýüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüýþúýýúþþü"""000'')ÓÓÓüüüüüúúûöýýûûûùþþüûûùýýûýýûýýûþþüýýûûûùýýûþþüüüúýýûúúøììêééçùù÷þþüýýûüüúýýûüüúüüúüüúþþüþþüýýûûûùþþüýýûÿÿýþþüþþüýýûûûùþþüþþüûûùþþüþþüþþüþþüûûùýýûüüúþþüþþüþþüýýûþþüýýúüýúüüúòòòDDD666***ŸŸ þþýþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüýýüýýý›››AAC + + ``_ööôþþüþþüþþüüüúþþüûûùþþüüüúüüúýýûüüúüüúýýûýýûüüúþþüýýûûûùééçííìúúúûûûýýüþþüþþüþþüþþüüüúüüúüüúýýûþþüüüúýýûûûùýýûûûùýýûýýûüüúþþüýýûüüúýýûüüúþþüþþüþþüüüúúúøýýûýýûüüúüüúüüúþþüýýýüüü^^^333)))!!"ýýýþþýþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþþþþþ + + CCE ®®­üüúûûùüüúýýûýýûýýûþþüþþüþþüüüúýýûþþüüüúþþüþþüýýûýýûúúøøøöääâçççúúúýýýýýûýýûüüúûûùüüúýýûþþüýýûûûùüüúýýûþþüüüúýýûýýûüüúþþüýýûûûùÿÿýþþüþþüýýûûûùýýûýýûÿÿýýýûþþüüüúüüúþþüýýûûûùûûûüüü~~~445$$$ !þþþþþýþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüýýý™™™--/../ÞÞÜýýûþþüþþüüüúýýûüüúüüúûûùþþüþþüüüúþþüýýûûûùýýûüüúþþüþþüööôââàèèçúúúüüüýýûüüúüüúýýûüüúþþüûûùýýûþþüþþüýýûüüúýýûüüúþþüûûùüüúüüúýýûûûùüüúüüúÿÿýþþüýýûüüúüüúüüúüüúþþüýýûüüúûûùýýûþþþùùù———223ÎÎÎþþýþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþþ444ZZ[ôôóûûùýýûüüúþþüüüúýýûþþüþþüüüúûûùýýûüüúüüúüüúýýûüüúûûùþþüôôòààÞæææøøøþþþýýüþþüþþüýýûþþüûûùýýûüüúüüúýýûþþüþþüþþüüüúþþüýýûþþüýýûþþüþþüýýûýýûýýûüüúþþüþþüýýûüüúýýûüüúþþüÿÿýþþüûûùýýüýýý¥¥¥--.ŸŸŸþþýþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüÿÿýþþüýýûýýûZZ[888ˆˆ‰ýýûþþüýýûüüúýýûýýûýýûüüúþþüþþüþþüýýûüüúþþüüüúýýûüüúüüúþþüööôßßÝééé÷÷÷ýýýüüûüüúüüúüüúýýûûûùüüúýýûþþüýýûüüúüüúþþüýýûýýûûûùýýûýýûýýûýýûþþüýýûüüúýýûþþüüüúýýûþþüþþüüüúüüúûûùýýûüüúýýüþþþ¸¸¸223žžžÿÿýýýûüüúþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüüüúýýûËËÉ>>>ÀÀÀûûùýýûýýûþþüþþüýýûþþüþþüûûùüüúýýûýýûýýûýýûþþüüüúýýûûûùýýûòòðßßÝçççøøøýýýýýûþþüþþüýýûüüúþþüþþüüüúýýûúúøþþüüüúýýûýýûþþüþþüýýûûûùýýûüüúûûùþþüýýûþþüþþüþþüûûùýýûýýûüüúüüúýýûþþüþþüüüûýýýÅÅÅ  +777___ýýüýýûþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüýýûýýûþþüYYW BBB((*ÚÚÚþþüüüúþþüüüúüüúýýûûûùüüúýýûþþüýýûýýûþþüüüúýýûûûùþþüþþüüüúîîìÝÝÛççæ÷÷÷üüüûûúüüúûûùýýûýýûýýûýýûüüúþþüþþüûûùýýûüüúýýûüüúûûùþþüûûùûûùýýûüüúüüúýýûýýûýýûüüúþþüüüúþþüýýûÿÿýýýûúúøýýûüüüýýýÌÌÌ  667 þþüþþüüüúþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüýýûýýû——• + + +GGG556ßßßþþüþþüûûùþþüÿÿýûûùþþüþþüüüúýýûþþüýýûýýûþþüýýûþþüýýûþþüþþüððîÝÝÛçççùùùüüüýýûýýûýýûûûùüüúýýûýýûýýûüüúþþüþþüþþüýýûýýûýýûýýûþþüýýûþþüþþüþþüýýûýýûûûùþþüþþüþþüýýûüüúýýûüüúýýûýýûÿÿýþþýþþþÏÏÏ445!!!ýýüýýûýýûþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþþFFFFFFèèçúúøýþúÿÿüúúøþþüþþüüüúýýûûûùüüúýýûúúøüüúûûùýýûüüúüüúúúøýýûîîìÝÝÛççæúúúüüüýýûûûùþþüþþüþþüûûùýýûüüúþþüûûùýýûüüúüüúþþüýýûûûùüüúýýûýýûüüúýýûüüúýýûþþüüüúýýûúúøýýûþþüýýûýýûüüúýýûüüúüüûþþþÔÔÔ##%##% þþýþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüýýû———KKK WWWïïíýýûüüøüüúýýûüüúüüúýýûþþüþþüüüúýýûþþüþþüþþüþþüþþüþþüþþüûûùííëÞÞÜëëêúúúþþþþþüþþüûûùüüúýýûþþüüüúýýûûûùþþüýýûýýûýýûüüúûûùþþüýýûûûùüüúýýûýýûþþüûûùýýûýýûþþüýýûûûùüüúþþüþþüþþüýýûýýûýýüýýýÕÕÕ--/  þþýþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüýýû–––,,.PPP888cccññïþþüþþúýýúýýûüüúüüúýýûýýûþþüþþüûûùýýûüüúýýûúúøýýûüüúýýûýýûììêßßÝíííûûûüüüüüúüüúýýûÿÿýúúøþþüýýûýýûûûùýýûüüúüüúýýûýýûþþüûûùþþüþþüýýûüüúýýûûûùýýûýýûýýûüüúýýûþþüýýûýýûüüúýýûýýûüüúþþýüüüÕÕÕ 668 þþýþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüVVV;;=___NNN òòñûûùüüøþþûüüúýýûýýûþþüþþüûûùüüúþþüýýûýýûþþüþþüþþüýýûýýûûûùèèæßßÝíííüüüþþþýýüþþüýýûüüúþþüùù÷ýýûûûùþþüþþüýýûýýûüüúþþüüüúýýûüüúýýûüüúþþüþþüûûùþþüþþüýýûûûùýýûýýûýýûþþüþþüûûùþþüýýûûûûþþþ×××%%% þþýþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüCCCXXX ‚‚‚ôôòýýûþþúþþûþþüüüúýýûûûùþþüþþüûûùüüúýýûýýûüüúýýûûûùüüúýýûüüúêêèÝÝÛìììúúúüüüúúøýýûýýûýýûþþüýýûýýûÿÿýüüúüüúýýûþþüþþüûûùþþüþþüþþüýýûüüúúúøþþüýýûûûùüüúþþüþþüýýûýýûýýûüüúýýûýýûûûùýýûüüüýýýÐÐÐ,,,!!!ýýüýýûýýûþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþü JJJ ŠŠŠööôüüúüýùýýúþþüþþüüüúýýûûûùüüúýýûüüúýýûýýûþþüþþüþþüýýûýýûüüúêêèááßïïîúúúþþþþþüýýûýýûûûùüüúþþüüüúüüúüüúýýûüüúýýûûûùþþüüüúüüúûûùýýûýýûýýûûûùýýûýýûüüúûûùýýûüüúüüúýýûüüúüüúýýûþþüþþüúúúþþþÁÁÁ /// þþüþþüüüúþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþü*** ………øøöþþüþÿûþþûüüúüüúýýûûûùþþüýýûýýûýýûüüúüüúýýûúúøýýûýýûüüúýýûêêèââàòòñúúúýýýýýüþþüÿÿýþþüþþüýýûþþüþþüýýûüüúýýûþþüýýûüüúüüúýýûüüúýýûýýûþþüýýûûûùþþüÿÿýýýûþþüþþüþþüþþüþþüþþüûûùýýûþþüþþþýýý¯¯¯///###  + + +___ýýüýýûþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþýþþûþþüþþý + /./212xxxööôûüûüýùýþúþþüþþýýýûþþüüüúüüúûûùüüúýýûþþüþþüþþüüüúüüúüüúýýûëëéààÞññðýýýþþþûûúýýûüüúüüúýýûûûùýýûýýûþþüýýûýýûûûùýýûüüúýýûýýûýýûúúøýýûüüúúúøþþüýýûûûùüüúýýûûûùüüúýýûûûúýüûýýúüýùûüøýýüüüüŒŒ333''' """***&&&žžÿÿþýýûýüùþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþþÿýÿþÿùûÿþüþÿ”––#eGžw·Ž¡€YG  96;yywíîíúþþúýùüý÷ýûýþýÿúúùýýûþþüýýûþþüþþüüüúúúøýýûýýûüüúýýûþþüüüüéééàààòòñûûùüüúþþüþþüýýûþþüýýûüüúüüúüüúûûùýýûüüúþþüþþüþþüýýûýýûýýûýýûüüúýýûþþüüüúþþüþþüüüúþþüþþüþþüüýûúýýýýýÿýùýÿ÷ùÿøüþúùúùbdd! + + ,,-EEEKKK  ›þýþÿýûþÿøýÿûþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüúÿôüÿûÿþúýü÷ÿýôcO$«…×¥ï¼ñ¾ñ½æ· šx!HIKÍÊÐúûûûýùþþüþýþýþûüýúýýûüüúüüúýýûþþüþþüýýûüüúýýûþþüýýûýýûüüüëëëàààòòñüüúüüúýýûûûùýýûüüúþþüüüúýýûýýûþþüüüúþþüüüúýýûýýûýýûýýûüüúþþüýýûüüúþþüþþüüüúþþüþþüûûùýýûüüúþþüûþøüûùýùùûúôúýóüýôèâß4.. ZZZbb\ $!"þüþÿüÿÿýúüÿüüÿþþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþûúÿùýþüÿûÿÿûùë⻵Œ Ú¤ òµô½ õ¿ ú»þ·ðµ¥…  ROSËÊÊùûõýýýúûøùý÷üýúüüúýýûýýûüüúýýûüüúþþüþþüýýûýýûýýûüüúûûûêêêßßßóóñûûùýýûþþüýýûüüúýýûýýûþþüþþüûûùýýûýýûþþüýýûýýûýýûýýûýýûýýûüüúýýûýýûûûùþþüýýûûûùýýûüüúûûùýýûüüúýüôýöÙïÞ®îÛ£íÛ¢îڟθ„5" +% 888GG?32. ""&ýþùûÿôþþøýþùüÿûþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþûÿÿøÿüÿÿüÿýÿøÿýîͱ]Иå®î·ñ¾ ð¾ õ¼ú¼ø¿ê»©‚) + :>3¿¿¼úøûýþüýþüþþüýýûüüúýýûþþüþþüýýûüüúþþüýýûüüúýýûþþüýýüêêêàààóóñýýûýýûüüúþþüýýûþþüüüúüüúûûùýýûúúøýýûûûùýýûüüúþþüþþüûûùþþüýýûþþüüüúüüúûûùþþüþþüþþüþþüýýûýýûýüøûíÉÙ³QÞ³ ë¾íÀíÀå»Æ¢$PB7770,- e`aüþûøÿúûÿýÿýüÿþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüýþüÿüúüþûûþïØ˒¼Š؜ æ¯ ð¸ò¾ ñÀ ñÀ +òÂó¿ö½ò¹¬‚% 855´²´õöøþýýüûùþþüýýûüüúýýûüüúýýûþþüûûùüüúýýûûûùýýûûûúèèèßßß÷÷õüüúüüúýýûüüúýýûüüúýýûþþüýýûþþüþþüýýûüüúýýûüüúüüúûûùþþüüüúýýûüüúþþüþþüþþüûûùýýûüüúúúøýýûüüúýûóëÌ|â³ôÉ ÷Ö ôÙöÖõÏå¾#RB """%%%€l×Åyÿýâýýðùÿùûüþÿüþþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüûÿþüþüúþ÷þû緐.̑Ý£ï®ö²ø¹÷½ ô½ ö¼÷½ õ¾ ô¾ê´r +-.*¢£Ÿöòôýüüúúøýýûþþüþþüþþüüüúüüúüüúüüúýýûüüúþþüûûûëëëàààññïýýûþþüþþüüüúýýûýýûüüúýýûûûùüüúýýûþþüýýûüüúþþüýýûþþüýýûüüúþþüýýûþþüüüúýýûýýûýýûýýûþþüýýûýýûþüôä½k⥠ò· òÂóÍõÐ ÷Ïد?.  +<-ƧðÍ"æÊ=õð¹ûþûúÿúüþùþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþûûÿöýýøÿûë˪gÁ‰Ԛ ৠï®÷µ ùº ø¼÷¼÷¼÷¾ ô¿óÁõÀÞµuW "$ƒƒ…íííýýûûûùüüúûûùýýûýýûþþüüüúüüúýýûûûùýýûüüüêêêÜÜÜëëéøøöûûùþþüýýûýýûýýûþþüÿÿýýýûýýûüüúýýûüüúýýûüüúûûùýýûüüúýýûüüúýýûþþüüüúýýûüüúýýûüüúüüúýýûûûùþýõãÃrÜ¥ñ²õ»ò óÈìÅ»˜2$‘qêÆôÍúÓéØkÿýéúýýüÿüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþûþþýþþýþþüþþûþþüþþüþþüþþøþþóþþïþþíþþìþþíþþïÿýéìå¿Ç¥[¿†ϕÚ£æ¬ î¶ò½ôÀ ó¾ ó¿ò¿ò¿ö¾ ø¾ +òÀó½Ñ¡M6 +UVUÔÔÒúúøüüúýýûþþüýýûýýûýýûýýûþþüýýûûûùüüüöööêêêííëúúøþþüûûùýýûüüúýýûýýûüüúþþüýýûþþüþþüþþüûûùýýûýýûþþüýýûüüúýýûýýûþþüýýûýýûüüúýýûýýûþþüýýûüüúýüôãÄpÚ£ î±ö¾ ñÂí¿ã¶®…1 `E ݵîÅ îÈ +îËäÄ<íè¾üüúÿþûþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüÿþùýÿøþþÿûÿþÿüýþý÷øÿþÿûöÿüêÏ¿˜ÕÁy°ˆ%¶†¶…±ƒ­€ °€¶‚ËЖ ڞ ãª ê± òºó½ ô¾ õ¾ õ¾ ô¾ ô¾ õ¾ õ¾ òÀ +ó½ð»´(  + ??>ÃÃÁüûùüüøýþùýþúûýúýýûúúøüüúüüúýýûþþþýýýùùùøø÷úúøýýûýýûûûùþþüüüúþþüþþüûûùýýûüüúûûùüüúýýûüüúýýûýýûûûùþþüûûùüüúüüúþþüþþüþþüþþüýýûúúøüüüýýýüúôæÇwÙ¢î²ô¼ ñ¿ +î¹ á­µ„B+ +1 º”îÀíÂî +ðÀ äµ!ÛϗýþÿÿýþþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþûþÿøýÿùþÿùýÿûþûÿÿýúýþøçÝ·¯„!¾Œ͗ל ڜ ך Ӗː ɏ ϕ֜Ü  ã¨ ê° òºô¼õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ ò¾õ½ò¾ß¹ˆj###—–•ñðîýýûüýûýÿüþþüýýûþþüþþüüüúúúùûûûýýýýýüüüúýýûýýûÿÿýþþüýýûüüúýýûþþüþþüüüúþþüüüúýýûýýûþþüýýûþþüýýûþþüýýûýýûýýûüüúýýûýýûþþüýýûøøøîîîãàÚÛºi򣓡 ô»ï» ç±ݦ À‹eC  + $šqÝ­ê¼ é» íº ô½ êµÞЖýþüÿýüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüýþþýýÿÿüþþÿùýþöþüúÿù*Ώ +ژ +Ý  +á¨á¨ৠݣߤÞ¤ à¦å«é¯î³ó¹ô½ ô½ õ¾ õ¾ ô½ ô½ õ¾ õ¾ õ¾ õ¾ ÷¿÷½ ñÀðÇѨXC }{|éèçûûùþþüûûùüüúûûùüüúþþüýýûþþþýýýüüûüüúýýûüüúüüúûûùþþüýýûüüúýýûýýûüüúýýûþþüþþüýýûüüúûûùýýûûûùýýûýýûûûùýýûþþüýýûüüúþþüûûùáááÉÉÉÇľԳaØ ï²ñ·ì· å®Û¢Á‹ ˜m?' +  +Žcϙ ä± æ· +ê·îµ ô· å¬Ý͎þþüþþýþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüûÿÿýýÿÿüýÿþøüýúþýõÒÀ»ˆә Ü£ ã®ç´è´ê²ê°æ«æ«ì± +ñ¶ñ· óº õ½ õ¾ õ¾ õ¾ õ¾ ô½ õ¾ õ¾ õ¾ õ¾ õ¾ õ½ó½òÀ öÇè¿®‹$ + ][\ÔÒÒüûùþþüýýûüüúýýûûûùüüúýýûûûùýýûüüúþþüþþüþþüýýûýýûüüúþþüýýûüüúüüúüüúüüúüüúûûùþþüþþüþþüýýûûûùþþüýýûûûùýýûýýûýýûüüúèèæËËÊÅÅÅÆĽӰ_Ù¡ê¬ ï´é³ ä« Ú ǎ¯| Že;"   [: +ŸoȑØ¡ â¯é· ì· ó¸ ö¹ç°ßΔýþÿýÿüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþûüÿõþÿüÿþûÿþøüþÿþþö¾¢^ȊÙ  æ¯ì´ ð¶ +ó· óµ ô·ò¶ñ· ôº õ»ö¼õ½õ½õ½õ½õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ ô¾ ñ¼ò½ ôÀïÇرu]  +423µ´³ùù÷ûûùýýûýýûþþüüüúýýûþþüûûùþþüúúøýýûûûùûûùýýûýýûýýûüüúýýûüüúýýûûûùþþüýýûûûùýýûüüúþþüþþüûûùþþüýýûýýûýýûýýûûûùÚÚØÄÄÃÄÄÄÇľѯaÚ¡é¬ ë° è±äª +Ý¢Ε»…®{ŸrtP K18%.+5"N3wVœr°|Š Ö Þ©ä°í¶ ó» õ¹ô» ë¹êٗýüúüþûþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþûþÿôþÿúþþÿÿýùüÿûþýòÅ¥V̍Ý¡è­ð² ö¶ øº÷» ó½ ñ¾ ô¼ +ö½ õ¾ õ¾ õ½õ½õ¼ õ¼ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ ó¾ó¾ó» ó¾òÄ éľ™:(‘‘‘òòòûûúüüúýýûýýûüüúýýûÿÿýþþüþþüþþüþþüþþüüüúüüúûûùüüúýýûþþüýýûþþüûûùÿÿýþþüýýûýýûýýûþþüûûùüüúüüúþþüüüúüüúùù÷××ÕÄÄÃÄÄÄÈſЮdӚã§ è¯ é³å¬ á¥ԚŎ ¾„ »} µz +ªx  vŸv¢w¥x ©z¬| ·‚ƌ Ԙ âªè³ +ï¹ +õº ôº õ»ó¼ð¾Õ¶AÿüÙÿüúþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüÿýþýþÿûÿûÿýûüþÿÿÿ쫅(ʒÞ¤ê° ñ· ôº õ½ ô¾ ò¿ +òÀõ¾ õ¾ ô½ ó¾ ó¾ õ¾ õ¼ õ¼ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ ô¾ õ½ô» ó»ô¾ ðÈ์j|||ïïïýýüüüúýýûýýûüüúýýûûûùýýûýýûýýûýýûýýûþþüþþüþþüýýûüüúûûùþþüûûùýýûþþüüüúýýûýýûûûùþþüþþüýýûüüúüüúüüú÷÷õ××ÕÅÅÅÄÄÄÆþ˨bјá¥ ç¯ ç³ç® ä©ٟ ϗɎƆ Ņ Á„ ¼€¼ ¾ Á‚ +Æ +č˕֝ â¦í±ñ¸óº ÷º ô¼ó½ô¾ó¸æ¶ØÁbÿýåþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüÿýýýþþúÿùÿþüüþúýüñÀ [đÝ£ ç­ìµ ò» õ½ö¼ø½ø¼ö¾ õ¾ ò½ ó¾ ó¿ õ¾ ö½ ö½ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ ö¾ +ö½ õ½ +÷» ô¼ôÄëÈ΢L7 †††ôôóþþüýýûýýûþþüÿÿýþþüýýüýýûýýûûûùýýûüüúüüúüüúþþüþþüþþüûûùþþüýýûþþüýýûüüúþþüþþüüüúûûùúúøýýûýýûýýûööõ××ÕÅÅÅÃÃÃÅýƤ`ȐÜ å­ ç³ è¯ æ«ݤ ؛ ҕ ͓ǐȑɏnj ƌ ɐ ˑ ԕ +ܞá©é´ ó½ø½ø½ø»ô¾ó¿ ô¾ö¶ ô´Ü®åڕþþõþþüþþüþþýþþýþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüÿýþüÿþüÿýÿýüýýüþþøÕÁ‰ÂŒٟ +æ¬ í´ ñ¹ õ½õ½õ½õ½ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ ö½ ö½ õ¼ ó¼ ñ¿ òÆ继$°°°úúøþþüûûùüüúüüúýýûûûùüüúýýûüüúýýüýýûüüúüüúýýûûûùþþüþþüüüúýýûûûùýýûüüúûûùüüúýýûþþüþþüþÿûþþûýûüùøúÜÛÜÆÆÅÅÅÃÅüÀ¡]‹՚ á¨ ç° ê° ì¯ â¨Þ¤ ؝ԚӚ +їϖϗ ЗӘ؜Ü¡ã¨ ç® ï¸ õ½ ô½ +õ½ õ½ô¾ õ¾ õ¾ ô» ò¸ìµÑ®-ðê±ýþ÷úýþþýþÿüÿüÿýûÿûüÿúþÿúþþûûÿýúÿýÿýýÿûüýþûüÿüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüÿýüüÿüýÿüÿþúþýûýý÷ÖÎÁŒٞ ã¨ ë² +ñ¹ ô¼ õ½õ½õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ ö½ ö½ ô½ ñ¾ ñ òÅÖ­uU [[[ííëúúøþþüþþüþþüýýûüüúüüúþþüýýûüüúþþüüüúûûùýýûüüúüüúýýûýýûýýûýýûÿÿýþþüýýûþþüýýûûûùýýûüýùûüùýýüûûûåååÊÊÉÄÄÂÆþ½Ÿ[»…Ә +à¦ å® +ì± î² è¯ ä« á¦ Þ£ Û¡ +Ú¡ ٟ Ú  Ù  +Ü¢ ߤåª ç® íµ ó»õ½ ô½ õ¾ õ½õ¾ õ¾ õ¾ ó¼ ñ¹ ñ¹ï³Í¡.ëã±ûþøúÿúÿýüÿúÿþþúûÿùÿýÿÿýýýÿøûÿøþþþÿýüüÿùüÿûþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüÿýúüÿúýÿúÿÿ÷þþúþýöÖƖ¼ˆ՚ +ᦠë±ñ¸ ô¼ õ½õ½õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ ò½ ô½ õ¾ ö½ õ½ ò½ ð¿ óÄé¿Ú>-***ááßýýûüüúüüúýýûþþüýýûþþüüüúûûùýýûûûùþþüþþüýýûþþüýýûýýûüüúþþüýýûýýûûûùýýûýýûýýûýýûþþüýýûþþüüýúûûùììêÒÑÏÄÃÃÈÿº›W»…ДÞ£å­ +î´ ñµ +í´ ê² ç® ã©⨠㨠+à¦à¦㨠+ã© +å« +ç­ ì³ ï¶ ó»ô½ õ¾ õ¾õ½õ¾ õ¾ õ¾ õ¾ ô¼ òº ñ¶î®ϝ+ñè·øÿïüÿöÿüýþþûüÿøþþüÿûÿÿýúþÿ÷ýþÿþþüýÿúýÿýþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüÿýúýÿúþÿüþÿøþþúÿþùèß¹¾‹ՙ Þ¢ è® ð· ô¼ô¼õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ ó¾ ó¾ õ¾ õ¾ õ¾ ó½ ò½ ôÀõÇÞ¶˜v !!!××Öüüúýýûþþüüüúüüúûûùþþüþþüÿÿýþþüþþüüüúüüúüüúùù÷ýýûþþüüüúüüúþþüýýûüüúûûùýýûþþüýýûýýûüüûýýûýþùýýøîïêÖÖÓÆÅ𚔇f#¸‚Җ +Þ£å® +í³ ò· ð¸ ð· î´ ë° è­æ«å«å¬äªè¯é°ì´ î¶ òº ô¼õ¾ õ¾ õ½ õ¾ õ¾ õ¾ õ¾ ô½ +õ¾ ô¾ ï¹í¹ë¸Ù¬,òè³üþóùÿúüÿüûÿøüÿôÿüýÿûÿþþýüþÿýÿüþþýþþþþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüÿþüýÿþÿýÿýÿùþþþÿýüÿý⼋ѕ Þ¢é¯î¶ ó»õ½õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ ó¾ ò½ õ¾ õ¾ õ¾ õ¾ ô½ ô¾ ïÁîÅÑ¥bI )))ßßÝþþüýýûýýûþþüýýûþþüûûùýýûýýûüüúýýûþþüþþüýýûþþüüüúýýûþþüüüúüüúþþüýýûþþüûûùüüúýýûüüúüüüþþüýþøüü÷íîêÖÔÔ¹¶´IB:sS·Д Þ£ä¬ ïµ õº òº òºò¸ð¶ ïµ í³ í³ í³ í³ +íµ ï· ï· +òº òº ô¼ õ¾ õ¾ õ½ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ ó¾ î¼ +î¾ î¹ä°"ؼkþþßýý÷üüÿúÿúúýúýýÿüþþüÿýýÿûÿýûÿýýþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüÿþüýÿþÿýÿûÿúÿþÿÿýÿÿýíºŠ!Д Ü ç¬ñ¸ó» ô¼ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ ó¼ +õ¾ ô½ õ¾ ô¿ ëÁ óÅ íÀ¿˜8, ƒƒƒ÷÷õýýûýýûüüúýýûüüúüüúýýûýýûüüúüüúüüúýýûûûùûûùüüúþþüüüúüüúûûùýýûýýûüüúýýûýýûýýûüüúüüúýýýüýûûý÷üþùðñðÂÀÁLHDyYº„Җ Þ¤ +å® î´ ô¸ òº ó¼ô¼ó»òºó¹ó¹ó¹ó¹ò¹ ô¼ ó¼ +ô½ ô½ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ ö¾ô½ õ¾÷¼ öºñºÔ«,ÚɌÿüïýüýúþúøþ÷ýÿúýÿúþÿùÿþ÷ÿþùþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüÿþúýÿýÿýÿúÿ÷þþýÿýþÿþñº‹#Β ۞ è®ï¶ ô¼õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ ö½ ö½ ö½ ó¼ +õ¾ õ¾ ó¼ +õ¿ îÂò òÇáµ Žq  ˆˆˆóóóþþüüüúüüúüüúýýûüüúýýûýýûýýûýýûýýûüüúýýûýýûþþüýýûýýûúúøþþüýýûþþüþþüþþüþþüüüúüüúýýûýýûýýüýýûýÿùúüúÈÈÌD@D xX ¸‚ Җ +Ý¢ ä­ +ðµ ô¹ +òº ô½õ½õ½ õ½ õ½ ö½ ö½ ö½ õ½ ö¿ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ½ õ½õ½õ½õ¾ ø½÷½ ÷¼ú¼õº +ð½æµ ǤCÿûâüýûûÿöþþûÿýüþÿúþÿûþþûþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþûÿþùþÿûÿýÿúÿ÷þþýÿüûþþò½$Β +ڞ +å« +ð· ô¼ ô¾ õ¾ ô½ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ ö½ õ¼ ö½ ö½ õ¾ ö¿ ö¿ ô½ ò¿ +î¾ôÄðÉϤgH 4,VWR›œ›çççþþþûûüüýûûûùýýüýþûþþüýýûüüúüüúüüúüüúüüúýýûûûùüüúüüúûûùýýûýýûüüúüüúýýûüüúüüúýýûûûùüüúýýûüüúüüúúúøüýùÊËÊ337#~\¶ ӗ Þ¤ +ç¯ ð¶ ô¹ ô¼ó¾ ó¿ ó¿ ô¾ õ¾ +ö¾ ö¾ ö¾ ö¾ ô½ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ½ õ½õ½õ½õ½ò¾ôÀ ö¾õ½ +òÀ óÀ ÷½õ¸â²æ֖þüýûþúÿýýÿüÿþþþûþÿýþþþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüÿþûÿýþûÿýýÿûÿûþÿû÷ýý弌Α ڝ æª +ò¸óº õ¼ ô¼ô¼õ½ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ ó½ò»ë½êÉ å¿ ¿Ž¬‹Wöôéùýùûýùûûýþüÿþýùþþúúúûûý÷üþùþþüþþüþþüþþüýýûþþüþþüþþüþþüÿÿýþþüûûùþþüþþüûûùýýùüýøýþùþþúýýûýýûýýûýýûýþûø÷ø¯¯­###0†] ¶‚ љ +ߥè® îµ ó» ô» ô¼ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ ð¿ñ¿ ù½ú»õ½ñ¿ ñ¼õ·ê¬ìՔüýúüþøþþûþýýÿýýûÿüüÿüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþÿúÿþüüÿüþÿûÿüþþýùçâ¹¾‹Α ڞ +è­ ó¹ô» ô» õ½ó»õ½ õ¾ õ¾ õ¾ ô½ ô½ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ½ õ½õ¼ ï½ èÁ èÀÚ© yƹ˜üüøûüûüüúüüùüü÷þýúþþþýþûüüùüüúûûùüüúüüúúúøýýûüüúüüúýýûýýûýýûþþüüüúýýûÿÿýþþúýþùýþùüüúüüúûûùüüúüüúóôòƒ„:&‰_ ¶‚ њ +à¦é® ï¶ ó¼ õ¼õ½ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ½ õ¾ õ¾ õ¾ õ¾ ö½÷½ ö¾ô½ õºó¸ó¹è³ܪçהüüúþýÿýýþþþýÿþýýþþýþþþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþÿúþþüþÿúþþþûþøÕ„¾‡ϑ۟ +è­ ñ· ô» ô» õ½õ½õ¾ õ¾ õ¾ õ¾ ô½ ô½ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ½ ó»ö» õ½ê½ìÂç¹ Èž•w/èÞÒüùûüý÷ýÿôýþùýüýýýýûüüúûùüüúýýûûûùþþüþþüýýûýýûýýûþþüýýûüüúýýûüüúüüúüüúüüúüüúýýûÿÿýüüúýýûýýûáááXYY  D/‰^ +³ +Й â§ ê¯ ï¶ ô¼ õ½õ½ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ½õ½õ½õ½õ½õ¾ õ¾ õ¾ ø½÷¾ó¿ ó½ô¹íµ è² ä§ Ò¥-ïê»ýÿýþüÿþþýüÿýþþýþþýþþþþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüýÿþýÿùÿýüÿþýúýüýþòŤPÀ… ͐Ü¡ é® ó¹ ô» õ¼ ó¼ +õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ ô¾ ñ½ö» ÷» î¼è¾ íà ٬­ƒ˜ƒY÷òîýüûùýóûýøýüþûûûýÿýýýûýýûþþüûûùüüúüüúüüúþþüüüúüüúüüúýýûþþüþþüýýûþþüþþüýýûüüúþþüþþýöööŸŸŸ$$$ J3‡\°|Ϙã¨ ë° ï¶ ó» ô¼ õ½ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ½õ½õ½õ¾ õ¾ õ¾ õ¾ õ¾ ö¾ õ¾ó¾îºìµåª Ý¡ ՗äˎþýóüÿüþûüþþøûÿûýÿüÿþ÷ÿþùþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþýýþÿýÿúÿýþþþÿýþùÿý߸„ Æ +Ӗå«ñ¶óº õ¼ õ¼ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ ô½ ô½ õ¾ õ¾ ö¿ õ¾ ó½ ñÀ ó¼ ÷»ï¼æ½è¿ á±đ ƒe¬›ƒýøùûþûüþúþýþýýþûüøüüùýýûýýûýýûþþüüüúýýûûûùüüúýýûþþüýýûüüúúúøüüúüüúüüúýýûýýüööö¹¹¹BBBQ9‰\±}Ϙã© ë° ð· ó» õ¼ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ +õ¾ õ¾ +ö¾ õ¾ ó»öºó·íµâ¦͔ۙ É«mÿúòþýÿýÿüÿýýþþøúÿûüÿýÿþ÷ÿÿøþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþýýþÿþþûÿýþþýÿþýïÑÁ„¼ Ɍ +Û  ì²ó¹óº ô» õ¼ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ ô½ ô½ õ¾ õ¾ õ¾ õ¾ õ¾ ó½ ñ¿ ó¾ ô¼ ðºä¶å¹߯ ˖  xZ>£—’óôõûþûûúûýýýûý÷ýþúüüúýýûüüúýýûýýûüüúþþüþþüýýûýýûþþüüüúüüúüüúýýûýýüûûûËËËSSS W<ˆ[±| Ζ⧠+ê¯ ñ¸ó¼ +õ½ ö¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ +õ¾ õ½ ó» óºñ·ïµé®㢠+֖Á•+Óĉÿþìýÿüþÿúþþüþüÿÿýþûÿýýþÿÿýüþþûþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüýÿüÿþúÿþûýþÿÿý毄(Ɖ җ +⨠ñ¸ó¹ óº õ¼ ö¼ö¾õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ ô½ô½ õ¼ óºè´â±ܪ +ӛ°} wR.\ZWÎÏÎüûøúúùùüøúüùþþüüüúüüúüüúýýûüüúüüúüüúýýûýýûüüúüüúýýûüüúééç­­­SSS Y=Š\²} +ϖ á¦ ê¯ ð· ó¼ +õ½ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ ô¼ ô¼ð·ì³è­Û¢ +ҞŒʧXìã½úÿîüÿöüþ÷þþøþþûýþþÿýþüÿýþþÿþýýþÿúþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþûýÿùÿþùþÿùüÿýäÞ»»†Nj؞ â¨ ë² +ôº óº ô» õ»ô¼ô¼ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ ô½ õ¾ õ¾ õ¾ õ¾ õ¼ ö¼õº÷»ð· â¬Ü¥ ҙ ¹ bN: SRO¡¡ ÒÔÔìíìøøöûûùýýûûûùûûùüüúüüúùù÷ùù÷ññïßßݼ¼º‰‰‡PPN#\=Ž`´ Ζᦠ+é¯ ð· ó¼ õ½ ö¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ ô¼ ó» óº ô¼ ô½ò¼ ï¸ é± Þ¥ٟ љȒ³‡,îâ¿ýýôûü÷ÿýûþûþþüÿÿûÿþþûüÿ÷ÿþùþÿúþýþþþúþÿøþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüúÿúÿþýÿþûÿýúÏŒ¼ˆ͊՚â¤ è¬ ïµ ò¹ òº óºôºô¹öº÷¼ ö½ ó¼ +ô¼ ö½ ÷½ ÷½ ô½ ó¿ ó¿ +õ¾ +õ¾ +õ¾ õ¾ ö½ õ¾ õ¾ õ¾ õ¾ õ¾ õ¾ ô½ ö¿ ô½ õ½ ö½óº ð¸ æ®Ý¥ +Ӛ +¼ƒ˜f iG ' *))GGGaaawww‚‚‚wwwfffXXXPPPEEE$$$ 2!eB–e·€ +̕ ݤ +è° ñ· ô» ô¼ õ¾ õ¾ ô½ +õ¾ õ¾ õ¾ õ¾ õ¾ õ½ö½ ø½ ø½ ö½õ¼ôºóµõ¶ó¸î¸è´ á¬՞˔¾‰¿¦_èä½ÿüçÿýùýýþþÿûþþûÿýþþþÿþþýþþûþþûþþüþþüþþýþþûþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþþÿûÿÿþóÿþñÓč·…ʆϓ ןߨç° é° îµï¶ñ¸ ò¸ ò¶ ò¸ ó» ô¼ô¼ó»ö½ö½ õ½õ½õ¾ õ¾ õ¾ ö½ õ¼ õ¼ õ¾ õ¾ õ¾ õ¾ õ¾ õ½õ½ö¾ö¾ õ½ö½ôºï¶ è® Û¢ ј »i rL <& + ;( kH™g·€ ʒ Û£ +ç­î´ +ö¼õ½ õ¾ õ¾ õ¾ ô½ õ¾ õ¾ õ¾ õ¾ õ¾ +õ½ +ö½ õ½ ó½ ï¹ î¶î³ï²ê¯㬠ڢ Д»‚º˜QçÞºÿüçÿýïþýùüüþþÿþþÿúþÿúÿýýþþþþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüýÿúÿüÿÿüþÿýöÑ“³džʋѕכÝ¡ ã¦ ã¨ ä« ã®å±è¯ ê¯ ë³ îµ î¸î¸ò¹òºôºôºôºô»õ¼ö½÷½ö¼õ¾ õ¾ õ¾ õ¾ õ¾ ö¾õ½õ½ö½ ÷¾ö½ó¹í³ äª Ú  Ε ¶}šfuLM4  + ?) oJ™g¶ ǎ +ٟ +åª ï´ óºõ¼ö½ö½ö½ö½ö½ö½ö½ö½ö½ô½ +ô»ñ¸ëµ ç±ä¬㩠ঠٝђ À†œs'æÛ¼þýøþþûþý÷ÿüúþýÿüüþüþýþÿùþÿùÿþýþþýþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþûúÿõûþÿýÿøþÿõçÞ½§}&¹}¾‚ ¾† ċ +̐ Օ ڙ ۜ ۟ Ü¡Þ¡ ठ+â¦ ã© åª è®ê°î´ñ¶ó¶ô·ó¸ôºò¸ óº ö½õ¾ õ¾ õ¾ õ¾ ô½ +õ¾ ô½ ô¼ õ½ õ¼ ôºó¹é° ߦ +Ӛ Ƌ ¯w–bzPY< %B, nH–c²{ ‰ ԙ ߤë® ò·ó¹ ô» õ¼ ö½ö½ õ¼ ô» +óº +ò¹ +ò¹ ñ·îµé¯ä© ⥠+ܟ +ך ΔŠ ©{!˸‰þüîüýùúýùûÿüüýýýýþýýÿûüýýÿûþÿøþÿùÿþýþþýþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüüþþýþÿüÿùþÿùÿûöèÚ¶y% x «z +°z·~¹~¿ +… ĉ Ɏ ͐ +ӕ +՗՘ךܟ Ý¡ à¥ ä© æ« +è­ ê¯ î´ ñ¸òºòº ó» ö¾ó¼ ô½ ô½ õ¾ ô½ ô½ óº õ¼ ó¹ ïµ㪠؞ ɐ¹€¦p’_zP[> ' @* iD^¬t +¼ƒ +Γ +Ü  å© î³ñ·ò¹ óº ô» ô» +ô» +ò¹ +ôºó¹ñ¶ë±æ¬ á¥ޞؔ ӑǍ µ‚¶›Tãܺýýôþýúÿþ÷ýÿöúÿùüÿüýÿýýÿüýÿúýÿøþÿùþÿûÿýþþþýþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþýÿüÿÿüþÿÿóþÿöþýýÿûôÿûéáٸQi—oŸr¦t®w ´z ¸} ½ +À„ÈćƊ ȍ̑ ј՛ ٟ Ý£ ߥ ã¨ ç­ ì²ñ·ò·ó¹óº ôº óº ò¹ ôºóº ò¸ï´ç­ Û¢ +Δ¾…¬t›e‹[sKV:%=( b@ˆW¥n ³{ Ċ ԙ Ý  æª ë° ïµ ñ· ò¸ óº ó¹ ò¸ ñ¶ë± è­ +ã¨Þ¤ٚ Џƈ·ƒ ©(ɹŒÿüèÿÿòøþøùÿýþýþÿüýÿýüþÿúþÿúþÿùþÿøþÿùþÿúþþýþþþþþýþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüÿýüÿýûÿüÿÿýÿûüùüþýüþûýüúýýöþþòþþëâÙ¼Á¯‚ªŽKe šk¢n ¨s®w ®v³y +³y +¶{ ¸~ º½„Áˆ ƍ ˑ җ ؞ Ü£⦠è«ë¯ï´ó¹ñ¶ó¸ò¸ï´ì±ç¬Ý£ј ċ ³{ ¡i’\QiEM7  8& [:€R›e«tºʏ ֛ +ߤ +äª +è® +ì³ ì³ ì³ î´ê°ç¬㨠ݡ ՚ϕ ȋº} ¨w–w$èß¼ÿû÷ýüûúþúùþýüþÿþþÿÿýþÿýþÿýýþþûþÿûþÿúþþûþþýþþýþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþûûÿøûÿ÷ýþþÿýÿýþøûþúüýþþüüÿýúýýúýýúþþüþýùÿüñÿýå¿´Žª‹I‡]Œ` —g ›h +h¡k£l§o©q­t²y·}½‚ĉ̒ Җ +ٜ ڞÞ¢⧠+ç« è¬ é®åª ॠٜ +͒ˆ·~¦n”]†SuI^=B- +ggg€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‚€€€€$$& +3# +V7|N–a¥o´{À…ˑ֜Ý¢᧠+á¨ ãª ä« ãª ß¥ +۟ +֙Д +ȋ¼ ±yœj †`&äÚÆûýùùþüýýüýûüÿüýþýûþÿúýÿúûÿûýþþÿýÿÿýþÿýþÿýþþþÿþþýþÿûþþûþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþûþþûþþüþþýþþûþþüþþýþþüþþüþþüþþüþþýþþýþþüþþûþþùÿýôþýïÿý庮‰š…SvS„X ‹[ [‘]—bžg¢l§p«v²~º„ ¾ˆ Œȑ ͕Әڝ ۛ ՗ В Ȋ +¾‚ ±x¢l‘]„TwJfAO5 + +ghhåææýûüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþýþþýþþýþþýþþýþþýþþýýþýþþýþüüãâ ‚‚|QD+N3qG\ +h¬t¶|¾† njΓј +ҙ Ӛ њљ͔ȍ†º³{ +¨q’e¨“hÿýðüþüýþÿþþýþþüþþüþþüþþüþþüþþüþþüþþýþþýþþüþþüþþüþþýþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüýÿþûýûýþúýüöþþòÿýìÜÕÀ­ž…{PcGoP{W „Y ‹Z—ae¥lªq®u²y ¶} ¹€ ½ƒ ¿†½…¹±y§ošdZ€PvHiBW9?*  +,*(åæåüýüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüüýûýþûþýûýüýýýÿþþù¥‡G0e@S”a¤l­u³{ +¶~»‚Á…ćň Ĉ Á‡ +»„ +³} ®x¨q™hƒ] ¦’hÿûïýüùüýûýþùþÿûþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüýüøþþúýþûüþüúþüüýúýþùþý÷þüôÿýñÛÕÀ« xQa@ pG€Q‹X[˜b +œe + i +£l +£o ¡ožlj”aŽ\†V{NpEe=V9 F3…zgêçßýþüüþþþÿýþþûþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüýþýþýüýüùýýüüþþüýøÕÑÁ>,U7pI‡X˜d£l©r ªt +­v²yµz·{ +¶y ´w ®u¥p +l“c +wS Žfþþñýþûüûüýûþþÿùýÿøþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüÿýþÿüÿþüþýüýþýþýüúÿýùÿþùÿþùþýøÿÿúþüøÿüõÿû‰‡uQ`ApKzR ƒV‡WŠY‹ZŠYŠXˆU…S~NwKnH`?W9@/«¥‘ÿýôýýüûýþýþþýþúÿþúþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþýýüûÿþûýþûúýüüýúÿýõ¥ŽA. V9mG…V“`œfŸj¢l£p¢o§q¦m¥lŸi “a‡YoJ +šˆlþûõøþùúþúýüþþûþýýüýþûþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþûýÿüýÿýýÿþþþþþþþþþþÿýþÿüýÿýûþÿúüÿûüÿýýÿþþþüÿþ÷ÚÖÁ¦š|]H^A hEoFuIzK|KyHtDrG +hCY<N6A- ª¤’ÿýöýýüüþÿûÿÿýÿýþÿúÿýúþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþýþþýþÿûýÿúýÿûþþüÿþúÿýö¢‰?/P4d?wL…WŽ^•b˜g +–f”d”cŽ_‚X oK `A —ˆmÿüõþüýýþüýþýþþþÿþûþþþþþýþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþûþÿùþþøþÿøýÿùüÿùûÿùûÿùûÿúþýþÿýþýÿýüÿýüÿþüÿýýÿúþÿ÷þþ÷þýôÿýï­¢„rVP5Z: a> +c>a<_;X8 P5 F2\N6ºµ¥þüõüüûþþÿüýÿýþþýÿûþÿúÿþúþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþûþþöìêÛXK2G0 R6^>iEoHwLxMuKmHbCS;ƒv[ßØÌýüøûýùÿýýÿûÿÿýýþþüþþþÿþùþÿùþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüÿýþÿüþÿýþÿýýÿþûþþûþþûýÿúýÿøýÿøýÿùþþýþýÿþýÿÿþýÿþúþþüýýýýüûþþüýü÷ÿý𭣐¡–|M=>- >,^O6”ïìÜÿûõþýüýüüýüüýüýûûüþÿûþÿùþÿúþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþÿûþþûýÿýþþþÿþýÿþüþþüþþýýÿüþþúÿýöëèۛ“}\N1?- F0I0 I0 E/ …vVž•}ÞÚÌþüøýýþúþýûþúüúúþüþÿþüüÿúüÿýÿþúþþúþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüüÿýüÿýüÿýýÿþþþþÿýþÿýþÿýÿþþÿþþþÿþúÿþøÿþùÿþüþþþþþþÿüüýûúýþûúþúùÿúùþùûþùýþùþþ÷þý÷ÿýöÿüõÿþöþþ÷üþüûýþþýûÿýûþüüþýýÿþúþÿùþÿúþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþÿûþþüýþþþþÿÿþýÿýûþþûýÿýúþûüýüüüüüüüþþûýü÷ÿþöÿüöÿýôþýóþþ÷ýýøþþûýýúþþûýþúüþüüþûýþùüþúüþýüÿ÷ýÿôÿýýþýÿþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüýþüþþüþþüþþüþþüþþýþþýþþýþþýþþüþþûþþûþþüþþüþþüþþüþþüþþüþþüýþüþþüþþüþþüþþüþþüþþüþþüþþûþþûþþüþþýþþüþþüþþüþþüþþüþþûþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþýþþüþþüþþüþþüþþüþþüþþýþþýþþüþþüþþüþþüþþûþþûþþüþþüþþüþþüþþüþþûþþüþþüþþûþþüþþüþþûþþûþþýþþýþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþüþþü \ No newline at end of file diff --git a/testimg/rgb16.tif b/TIFF/testimg/rgb16.tif similarity index 100% rename from testimg/rgb16.tif rename to TIFF/testimg/rgb16.tif diff --git a/testimg/rgb16t.tif b/TIFF/testimg/rgb16t.tif similarity index 100% rename from testimg/rgb16t.tif rename to TIFF/testimg/rgb16t.tif diff --git a/testimg/rgbatsep.tif b/TIFF/testimg/rgbatsep.tif similarity index 100% rename from testimg/rgbatsep.tif rename to TIFF/testimg/rgbatsep.tif diff --git a/testimg/scmyk.tif b/TIFF/testimg/scmyk.tif similarity index 100% rename from testimg/scmyk.tif rename to TIFF/testimg/scmyk.tif diff --git a/testimg/scmyka.tif b/TIFF/testimg/scmyka.tif similarity index 100% rename from testimg/scmyka.tif rename to TIFF/testimg/scmyka.tif diff --git a/testimg/scmyka16.tif b/TIFF/testimg/scmyka16.tif similarity index 100% rename from testimg/scmyka16.tif rename to TIFF/testimg/scmyka16.tif diff --git a/testimg/scmykaa.tif b/TIFF/testimg/scmykaa.tif similarity index 100% rename from testimg/scmykaa.tif rename to TIFF/testimg/scmykaa.tif diff --git a/testimg/slab.tif b/TIFF/testimg/slab.tif similarity index 100% rename from testimg/slab.tif rename to TIFF/testimg/slab.tif diff --git a/testimg/srgb.tif b/TIFF/testimg/srgb.tif similarity index 100% rename from testimg/srgb.tif rename to TIFF/testimg/srgb.tif diff --git a/testimg/srgba.tif b/TIFF/testimg/srgba.tif similarity index 100% rename from testimg/srgba.tif rename to TIFF/testimg/srgba.tif diff --git a/testimg/srgba16.tif b/TIFF/testimg/srgba16.tif similarity index 100% rename from testimg/srgba16.tif rename to TIFF/testimg/srgba16.tif diff --git a/testimg/srgba32.tif b/TIFF/testimg/srgba32.tif similarity index 100% rename from testimg/srgba32.tif rename to TIFF/testimg/srgba32.tif diff --git a/testimg/srgbaa.tif b/TIFF/testimg/srgbaa.tif similarity index 100% rename from testimg/srgbaa.tif rename to TIFF/testimg/srgbaa.tif diff --git a/testimg/tiffwarn.tif b/TIFF/testimg/tiffwarn.tif similarity index 100% rename from testimg/tiffwarn.tif rename to TIFF/testimg/tiffwarn.tif diff --git a/image.c b/image.c index dfd6f1cf..74a4f0bd 100644 --- a/image.c +++ b/image.c @@ -2310,10 +2310,13 @@ i_test_format_probe(io_glue *data, int length) { /* =item i_img_is_monochrome(img, &zero_is_white) +=category Image Information + Tests an image to check it meets our monochrome tests. The idea is that a file writer can use this to test where it should -write the image in whatever bi-level format it uses, eg. pbm for pnm. +write the image in whatever bi-level format it uses, eg. C for +C. For performance of encoders we require monochrome images: @@ -2325,12 +2328,12 @@ be paletted =item * -have a palette of two colors, containing only (0,0,0) and -(255,255,255) in either order. +have a palette of two colors, containing only C<(0,0,0)> and +C<(255,255,255)> in either order. =back -zero_is_white is set to non-zero iff the first palette entry is white. +C is set to non-zero if the first palette entry is white. =cut */ diff --git a/imager.h b/imager.h index 347a75c0..770a69e1 100644 --- a/imager.h +++ b/imager.h @@ -387,39 +387,6 @@ i_readjpeg_wiol(io_glue *ig, int length, char** iptc_itext, int *itlength); undef_int i_writejpeg_wiol(i_img *im, io_glue *ig, int qfactor); #endif /* HAVE_LIBJPEG */ -#ifdef HAVE_LIBTIFF -i_img * i_readtiff_wiol(io_glue *ig, int allow_incomplete, int page); -i_img ** i_readtiff_multi_wiol(io_glue *ig, int length, int *count); -undef_int i_writetiff_wiol(i_img *im, io_glue *ig); -undef_int i_writetiff_multi_wiol(io_glue *ig, i_img **imgs, int count); -undef_int i_writetiff_wiol_faxable(i_img *im, io_glue *ig, int fine); -undef_int i_writetiff_multi_wiol_faxable(io_glue *ig, i_img **imgs, int count, int fine); -char const * i_tiff_libversion(void); -int i_tiff_has_compression(char const *name); - -#endif /* HAVE_LIBTIFF */ - -#ifdef HAVE_LIBGIF -i_img *i_readgif(int fd, int **colour_table, int *colours); -i_img *i_readgif_wiol(io_glue *ig, int **colour_table, int *colours); -i_img *i_readgif_scalar(char *data, int length, int **colour_table, int *colours); -i_img *i_readgif_callback(i_read_callback_t callback, char *userdata, int **colour_table, int *colours); -i_img *i_readgif_single_wiol(io_glue *ig, int page); -extern i_img **i_readgif_multi(int fd, int *count); -extern i_img **i_readgif_multi_scalar(char *data, int length, int *count); -extern i_img **i_readgif_multi_callback(i_read_callback_t callback, char *userdata, int *count); -extern i_img **i_readgif_multi_wiol(io_glue *ig, int *count); -undef_int i_writegif(i_img *im,int fd,int colors,int pixdev,int fixedlen,i_color fixed[]); -undef_int i_writegifmc(i_img *im,int fd,int colors); -undef_int i_writegifex(i_img *im,int fd); -undef_int i_writegif_gen(i_quantize *quant, int fd, i_img **imgs, int count); -undef_int i_writegif_callback(i_quantize *quant, i_write_callback_t cb, char *userdata, int maxbuffer, i_img **imgs, int count); -undef_int i_writegif_wiol(io_glue *ig, i_quantize *quant, - i_img **imgs, int count); -void i_qdist(i_img *im); - -#endif /* HAVE_LIBGIF */ - i_img * i_readraw_wiol(io_glue *ig, int x, int y, int datachannels, int storechannels, int intrl); undef_int i_writeraw_wiol(i_img* im, io_glue *ig); diff --git a/imext.c b/imext.c index c7a5e5c6..09f4e5d6 100644 --- a/imext.c +++ b/imext.c @@ -117,6 +117,9 @@ im_ext_funcs imager_function_table = /* IMAGER_API_LEVEL 4 functions */ i_img_alloc, i_img_init, + + /* IMAGER_API_LEVEL 5 functions */ + i_img_is_monochrome }; /* in general these functions aren't called by Imager internally, but diff --git a/imext.h b/imext.h index 13fef908..acd82671 100644 --- a/imext.h +++ b/imext.h @@ -106,6 +106,11 @@ extern im_ext_funcs *imager_function_ext_table; #endif +#define i_gsamp_bits(im, l, r, y, samps, chans, count, bits) \ + (((im)->i_f_gsamp_bits) ? ((im)->i_f_gsamp_bits)((im), (l), (r), (y), (samps), (chans), (count), (bits)) : -1) +#define i_psamp_bits(im, l, r, y, samps, chans, count, bits) \ + (((im)->i_f_psamp_bits) ? ((im)->i_f_psamp_bits)((im), (l), (r), (y), (samps), (chans), (count), (bits)) : -1) + #define i_new_fill_solid(c, combine) ((im_extt->f_i_new_fill_solid)((c), (combine))) #define i_new_fill_solidf(c, combine) ((im_extt->f_i_new_fill_solidf)((c), (combine))) #define i_new_fill_hatch(fg, bg, combine, hatch, cust_hatch, dx, dy) \ @@ -203,4 +208,6 @@ extern im_ext_funcs *imager_function_ext_table; #define i_img_alloc() ((im_extt->f_i_img_alloc)()) #define i_img_init(img) ((im_extt->f_i_img_init)(img)) +#define i_img_is_monochrome(img, zero_is_white) ((im_extt->f_i_img_is_monochrome)((img), (zero_is_white))) + #endif diff --git a/imexttypes.h b/imexttypes.h index fc3dcf7a..c94090bc 100644 --- a/imexttypes.h +++ b/imexttypes.h @@ -18,7 +18,7 @@ will result in an increment of IMAGER_API_LEVEL. */ -#define IMAGER_API_LEVEL 4 +#define IMAGER_API_LEVEL 6 typedef struct { int version; @@ -156,6 +156,10 @@ typedef struct { void (*f_i_img_init)(i_img *); /* IMAGER_API_LEVEL 5 functions will be added here */ + /* added i_psampf?_bits macros */ + int (*f_i_img_is_monochrome)(i_img *, int *zero_is_white); + + /* IMAGER_API_LEVEL 6 functions will be added here */ } im_ext_funcs; #define PERL_FUNCTION_TABLE_NAME "Imager::__ext_func_table" diff --git a/lib/Imager/APIRef.pod b/lib/Imager/APIRef.pod index 6759c1db..df36a721 100644 --- a/lib/Imager/APIRef.pod +++ b/lib/Imager/APIRef.pod @@ -1046,6 +1046,36 @@ Return true if the image has an alpha channel. =for comment From: File immacros.h +=item i_img_is_monochrome(img, &zero_is_white) + + +Tests an image to check it meets our monochrome tests. + +The idea is that a file writer can use this to test where it should +write the image in whatever bi-level format it uses, eg. C for +C. + +For performance of encoders we require monochrome images: + +=over + +=item * + +be paletted + +=item * + +have a palette of two colors, containing only C<(0,0,0)> and +C<(255,255,255)> in either order. + +=back + +C is set to non-zero if the first palette entry is white. + + +=for comment +From: File image.c + =item i_img_setmask(C, C) Set the image channel mask for C to C. diff --git a/t/t106notiff.t b/t/t106notiff.t index 3564e4bf..16f53d91 100644 --- a/t/t106notiff.t +++ b/t/t106notiff.t @@ -3,7 +3,7 @@ use strict; use Test::More; use Imager qw(:all); -i_has_format("tiff") +$Imager::formats{"tiff"} and plan skip_all => "tiff support available - this tests the lack of it"; plan tests => 12; diff --git a/t/t50basicoo.t b/t/t50basicoo.t index 1da09f02..ff38449d 100644 --- a/t/t50basicoo.t +++ b/t/t50basicoo.t @@ -45,7 +45,7 @@ my %files; { file => "testimg/test.raw", xsize=>150, ysize=>150, type=>'raw', interleave => 0}, { file => "testimg/penguin-base.ppm" }, { file => "GIF/testimg/expected.gif" }, - { file => "testimg/comp8.tif" }, + { file => "TIFF/testimg/comp8.tif" }, { file => "testimg/winrgb24.bmp" }, { file => "testimg/test.tga" }, ); my %writeopts = diff --git a/t/x11rubthru.t b/t/x11rubthru.t index 5f7836da..f1903688 100644 --- a/t/x11rubthru.t +++ b/t/x11rubthru.t @@ -4,7 +4,7 @@ use Imager; use Imager::Test qw(is_image); use Test::More; -Imager::i_has_format("tiff") +$Imager::formats{"tiff"} or plan skip_all => "no tiff support"; plan tests => 2; -- 2.39.2