libextractor-1.3/0000755000175000017500000000000012256015540011060 500000000000000libextractor-1.3/src/0000755000175000017500000000000012256015537011655 500000000000000libextractor-1.3/src/plugins/0000755000175000017500000000000012256015540013330 500000000000000libextractor-1.3/src/plugins/thumbnailffmpeg_extractor.c0000644000175000017500000004624612255336031020673 00000000000000/* This file is part of libextractor. Copyright (C) 2008, 2012 Heikki Lindholm and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file thumbnailffmpeg_extractor.c * @author Heikki Lindholm * @author Christian Grothoff * @brief this extractor produces a binary encoded * thumbnail of images and videos using the ffmpeg libs. * * This is a thumbnail extractor using the ffmpeg libraries that will eventually * support extracting thumbnails from both image and video files. * * Note that ffmpeg has a few issues: * (1) there are no recent official releases of the ffmpeg libs * (2) ffmpeg has a history of having security issues (parser is not robust) * * So this plugin cannot be recommended for system with high security *requirements. */ #include "platform.h" #include "extractor.h" #include #if HAVE_LIBAVUTIL_AVUTIL_H #include #elif HAVE_FFMPEG_AVUTIL_H #include #endif #if HAVE_LIBAVFORMAT_AVFORMAT_H #include #elif HAVE_FFMPEG_AVFORMAT_H #include #endif #if HAVE_LIBAVCODEC_AVCODEC_H #include #elif HAVE_FFMPEG_AVCODEC_H #include #endif #if HAVE_LIBSWSCALE_SWSCALE_H #include #elif HAVE_FFMPEG_SWSCALE_H #include #endif /** * Set to 1 to enable debug output. */ #define DEBUG 0 /** * max dimension in pixels for the thumbnail. */ #define MAX_THUMB_DIMENSION 128 /** * Maximum size in bytes for the thumbnail. */ #define MAX_THUMB_BYTES (100*1024) /** * Number of bytes to feed to libav in one go. */ #define BUFFER_SIZE (32 * 1024) /** * Number of bytes to feed to libav in one go, with padding (padding is zeroed). */ #define PADDED_BUFFER_SIZE (BUFFER_SIZE + FF_INPUT_BUFFER_PADDING_SIZE) /** * Global handle to MAGIC data. */ static magic_t magic; /** * Read callback. * * @param opaque the 'struct EXTRACTOR_ExtractContext' * @param buf where to write data * @param buf_size how many bytes to read * @return -1 on error (or for unknown file size) */ static int read_cb (void *opaque, uint8_t *buf, int buf_size) { struct EXTRACTOR_ExtractContext *ec = opaque; void *data; ssize_t ret; ret = ec->read (ec->cls, &data, buf_size); if (ret <= 0) return ret; memcpy (buf, data, ret); return ret; } /** * Seek callback. * * @param opaque the 'struct EXTRACTOR_ExtractContext' * @param offset where to seek * @param whence how to seek; AVSEEK_SIZE to return file size without seeking * @return -1 on error (or for unknown file size) */ static int64_t seek_cb (void *opaque, int64_t offset, int whence) { struct EXTRACTOR_ExtractContext *ec = opaque; if (AVSEEK_SIZE == whence) return ec->get_size (ec->cls); return ec->seek (ec->cls, offset, whence); } /** * Rescale and encode a PNG thumbnail. * * @param src_width source image width * @param src_height source image height * @param src_stride * @param src_pixfmt * @param src_data source data * @param dst_width desired thumbnail width * @param dst_height desired thumbnail height * @param output_data where to store the resulting PNG data * @param output_max_size maximum size of result that is allowed * @return the number of bytes used, 0 on error */ static size_t create_thumbnail (int src_width, int src_height, int src_stride[], enum PixelFormat src_pixfmt, const uint8_t * const src_data[], int dst_width, int dst_height, uint8_t **output_data, size_t output_max_size) { AVCodecContext *encoder_codec_ctx; AVDictionary *opts; AVCodec *encoder_codec; struct SwsContext *scaler_ctx; AVFrame *dst_frame; uint8_t *dst_buffer; uint8_t *encoder_output_buffer; size_t encoder_output_buffer_size; int err; AVPacket pkt; av_init_packet(&pkt); pkt.data = NULL; pkt.size = 0; int gotPacket; if (NULL == (encoder_codec = avcodec_find_encoder_by_name ("png"))) { #if DEBUG fprintf (stderr, "Couldn't find a PNG encoder\n"); #endif return 0; } /* NOTE: the scaler will be used even if the src and dst image dimensions * match, because the scaler will also perform colour space conversion */ if (NULL == (scaler_ctx = sws_getContext (src_width, src_height, src_pixfmt, dst_width, dst_height, PIX_FMT_RGB24, SWS_BILINEAR, NULL, NULL, NULL))) { #if DEBUG fprintf (stderr, "Failed to get a scaler context\n"); #endif return 0; } if (NULL == (dst_frame = avcodec_alloc_frame ())) { #if DEBUG fprintf (stderr, "Failed to allocate the destination image frame\n"); #endif sws_freeContext (scaler_ctx); return 0; } if (NULL == (dst_buffer = av_malloc (avpicture_get_size (PIX_FMT_RGB24, dst_width, dst_height)))) { #if DEBUG fprintf (stderr, "Failed to allocate the destination image buffer\n"); #endif av_free (dst_frame); sws_freeContext (scaler_ctx); return 0; } avpicture_fill ((AVPicture *) dst_frame, dst_buffer, PIX_FMT_RGB24, dst_width, dst_height); sws_scale (scaler_ctx, src_data, src_stride, 0, src_height, dst_frame->data, dst_frame->linesize); encoder_output_buffer_size = output_max_size; if (NULL == (encoder_output_buffer = av_malloc (encoder_output_buffer_size))) { #if DEBUG fprintf (stderr, "Failed to allocate the encoder output buffer\n"); #endif av_free (dst_buffer); av_free (dst_frame); sws_freeContext (scaler_ctx); return 0; } if (NULL == (encoder_codec_ctx = avcodec_alloc_context3 (encoder_codec))) { #if DEBUG fprintf (stderr, "Failed to allocate the encoder codec context\n"); #endif av_free (encoder_output_buffer); av_free (dst_buffer); av_free (dst_frame); sws_freeContext (scaler_ctx); return 0; } encoder_codec_ctx->width = dst_width; encoder_codec_ctx->height = dst_height; encoder_codec_ctx->pix_fmt = PIX_FMT_RGB24; opts = NULL; if (avcodec_open2 (encoder_codec_ctx, encoder_codec, &opts) < 0) { #if DEBUG fprintf (stderr, "Failed to open the encoder\n"); #endif av_free (encoder_codec_ctx); av_free (encoder_output_buffer); av_free (dst_buffer); av_free (dst_frame); sws_freeContext (scaler_ctx); return 0; } #if LIBAVCODEC_BUILD >= AV_VERSION_INT(54,25,0) //err = encode_frame (encoder_codec_ctx, dst_frame); err = avcodec_encode_video2 (encoder_codec_ctx, &pkt, dst_frame, &gotPacket); if(err < 0) goto cleanup; err = pkt.size; memcpy(encoder_output_buffer,pkt.data, pkt.size); av_free_packet(&pkt); #else err = avcodec_encode_video (encoder_codec_ctx, encoder_output_buffer, encoder_output_buffer_size, dst_frame); #endif cleanup: av_dict_free (&opts); avcodec_close (encoder_codec_ctx); av_free (encoder_codec_ctx); av_free (dst_buffer); av_free (dst_frame); sws_freeContext (scaler_ctx); *output_data = encoder_output_buffer; return err < 0 ? 0 : err; } /** * calculate the thumbnail dimensions, taking pixel aspect into account * * @param src_width source image width * @param src_height source image height * @param src_sar_num * @param src_sar_den * @param dst_width desired thumbnail width (set) * @param dst_height desired thumbnail height (set) */ static void calculate_thumbnail_dimensions (int src_width, int src_height, int src_sar_num, int src_sar_den, int *dst_width, int *dst_height) { if ( (src_sar_num <= 0) || (src_sar_den <= 0) ) { src_sar_num = 1; src_sar_den = 1; } if ((src_width * src_sar_num) / src_sar_den > src_height) { *dst_width = MAX_THUMB_DIMENSION; *dst_height = (*dst_width * src_height) / ((src_width * src_sar_num) / src_sar_den); } else { *dst_height = MAX_THUMB_DIMENSION; *dst_width = (*dst_height * ((src_width * src_sar_num) / src_sar_den)) / src_height; } if (*dst_width < 8) *dst_width = 8; if (*dst_height < 1) *dst_height = 1; #if DEBUG fprintf (stderr, "Thumbnail dimensions: %d %d\n", *dst_width, *dst_height); #endif } #if LIBAVCODEC_BUILD >= AV_VERSION_INT(54,25,0) #define ENUM_CODEC_ID enum AVCodecID #else #define ENUM_CODEC_ID enum CodecID #endif /** * Perform thumbnailing when the input is an image. * * @param image_codec_id ffmpeg codec for the image format * @param ec extraction context to use */ static void extract_image (ENUM_CODEC_ID image_codec_id, struct EXTRACTOR_ExtractContext *ec) { AVDictionary *opts; AVCodecContext *codec_ctx; AVCodec *codec; AVPacket avpkt; AVFrame *frame; uint8_t *encoded_thumbnail; int thumb_width; int thumb_height; int err; int frame_finished; ssize_t iret; void *data; unsigned char padded_data[PADDED_BUFFER_SIZE]; if (NULL == (codec = avcodec_find_decoder (image_codec_id))) { #if DEBUG fprintf (stderr, "No suitable codec found\n"); #endif return; } if (NULL == (codec_ctx = avcodec_alloc_context3 (codec))) { #if DEBUG fprintf (stderr, "Failed to allocate codec context\n"); #endif return; } opts = NULL; if (0 != avcodec_open2 (codec_ctx, codec, &opts)) { #if DEBUG fprintf (stderr, "Failed to open image codec\n"); #endif av_free (codec_ctx); return; } av_dict_free (&opts); if (NULL == (frame = avcodec_alloc_frame ())) { #if DEBUG fprintf (stderr, "Failed to allocate frame\n"); #endif avcodec_close (codec_ctx); av_free (codec_ctx); return; } frame_finished = 0; while (! frame_finished) { if (0 >= (iret = ec->read (ec->cls, &data, BUFFER_SIZE))) break; memcpy (padded_data, data, iret); memset (&padded_data[iret], 0, PADDED_BUFFER_SIZE - iret); av_init_packet (&avpkt); avpkt.data = padded_data; avpkt.size = iret; avcodec_decode_video2 (codec_ctx, frame, &frame_finished, &avpkt); } if (! frame_finished) { #if DEBUG fprintf (stderr, "Failed to decode a complete frame\n"); #endif av_free (frame); avcodec_close (codec_ctx); av_free (codec_ctx); return; } calculate_thumbnail_dimensions (codec_ctx->width, codec_ctx->height, codec_ctx->sample_aspect_ratio.num, codec_ctx->sample_aspect_ratio.den, &thumb_width, &thumb_height); err = create_thumbnail (codec_ctx->width, codec_ctx->height, frame->linesize, codec_ctx->pix_fmt, (const uint8_t * const*) frame->data, thumb_width, thumb_height, &encoded_thumbnail, MAX_THUMB_BYTES); if (err > 0) { ec->proc (ec->cls, "thumbnailffmpeg", EXTRACTOR_METATYPE_THUMBNAIL, EXTRACTOR_METAFORMAT_BINARY, "image/png", (const char*) encoded_thumbnail, err); av_free (encoded_thumbnail); } av_free (frame); avcodec_close (codec_ctx); av_free (codec_ctx); } /** * Perform thumbnailing when the input is a video * * @param ec extraction context to use */ static void extract_video (struct EXTRACTOR_ExtractContext *ec) { AVPacket packet; AVIOContext *io_ctx; struct AVFormatContext *format_ctx; AVCodecContext *codec_ctx; AVCodec *codec; AVDictionary *options; AVFrame *frame; uint8_t *encoded_thumbnail; int video_stream_index; int thumb_width; int thumb_height; int i; int err; int frame_finished; unsigned char *iob; if (NULL == (iob = av_malloc (16 * 1024))) return; if (NULL == (io_ctx = avio_alloc_context (iob, 16 * 1024, 0, ec, &read_cb, NULL /* no writing */, &seek_cb))) { av_free (iob); return; } if (NULL == (format_ctx = avformat_alloc_context ())) { av_free (io_ctx); return; } format_ctx->pb = io_ctx; options = NULL; if (0 != avformat_open_input (&format_ctx, "", NULL, &options)) return; av_dict_free (&options); if (0 > avformat_find_stream_info (format_ctx, NULL)) { #if DEBUG fprintf (stderr, "Failed to read stream info\n"); #endif avformat_close_input (&format_ctx); av_free (io_ctx); return; } codec = NULL; codec_ctx = NULL; video_stream_index = -1; for (i=0; inb_streams; i++) { codec_ctx = format_ctx->streams[i]->codec; if (AVMEDIA_TYPE_VIDEO != codec_ctx->codec_type) continue; if (NULL == (codec = avcodec_find_decoder (codec_ctx->codec_id))) continue; options = NULL; if (0 != (err = avcodec_open2 (codec_ctx, codec, &options))) { codec = NULL; continue; } av_dict_free (&options); video_stream_index = i; break; } if ( (-1 == video_stream_index) || (0 == codec_ctx->width) || (0 == codec_ctx->height) ) { #if DEBUG fprintf (stderr, "No video streams or no suitable codec found\n"); #endif if (NULL != codec) avcodec_close (codec_ctx); avformat_close_input (&format_ctx); av_free (io_ctx); return; } if (NULL == (frame = avcodec_alloc_frame ())) { #if DEBUG fprintf (stderr, "Failed to allocate frame\n"); #endif avcodec_close (codec_ctx); avformat_close_input (&format_ctx); av_free (io_ctx); return; } #if DEBUG if (format_ctx->duration == AV_NOPTS_VALUE) fprintf (stderr, "Duration unknown\n"); else fprintf (stderr, "Duration: %lld\n", format_ctx->duration); #endif /* TODO: if duration is known, seek to some better place, * but use 10 sec into stream for now */ err = av_seek_frame (format_ctx, -1, 10 * AV_TIME_BASE, 0); if (err >= 0) avcodec_flush_buffers (codec_ctx); frame_finished = 0; while (1) { err = av_read_frame (format_ctx, &packet); if (err < 0) break; if (packet.stream_index == video_stream_index) { avcodec_decode_video2 (codec_ctx, frame, &frame_finished, &packet); if (frame_finished && frame->key_frame) { av_free_packet (&packet); break; } } av_free_packet (&packet); } if (! frame_finished) { #if DEBUG fprintf (stderr, "Failed to decode a complete frame\n"); #endif av_free (frame); avcodec_close (codec_ctx); avformat_close_input (&format_ctx); av_free (io_ctx); return; } calculate_thumbnail_dimensions (codec_ctx->width, codec_ctx->height, codec_ctx->sample_aspect_ratio.num, codec_ctx->sample_aspect_ratio.den, &thumb_width, &thumb_height); err = create_thumbnail (codec_ctx->width, codec_ctx->height, frame->linesize, codec_ctx->pix_fmt, (const uint8_t* const *) frame->data, thumb_width, thumb_height, &encoded_thumbnail, MAX_THUMB_BYTES); if (err > 0) { ec->proc (ec->cls, "thumbnailffmpeg", EXTRACTOR_METATYPE_THUMBNAIL, EXTRACTOR_METAFORMAT_BINARY, "image/png", (const char*) encoded_thumbnail, err); av_free (encoded_thumbnail); } av_free (frame); avcodec_close (codec_ctx); avformat_close_input (&format_ctx); av_free (io_ctx); } /** * Pair of mime type and ffmpeg decoder ID. */ struct MIMEToDecoderMapping { /** * String for a mime type. */ const char *mime_type; /** * Corresponding ffmpeg decoder ID. */ ENUM_CODEC_ID codec_id; }; /** * map MIME image types to an ffmpeg decoder */ static const struct MIMEToDecoderMapping m2d_map[] = { #if LIBAVCODEC_BUILD >= AV_VERSION_INT(54,25,0) { "image/x-bmp", AV_CODEC_ID_BMP }, { "image/gif", AV_CODEC_ID_GIF }, { "image/jpeg", AV_CODEC_ID_MJPEG }, { "image/png", AV_CODEC_ID_PNG }, { "image/x-png", AV_CODEC_ID_PNG }, { "image/x-portable-pixmap", AV_CODEC_ID_PPM }, { NULL, AV_CODEC_ID_NONE } #else { "image/x-bmp", CODEC_ID_BMP }, { "image/gif", CODEC_ID_GIF }, { "image/jpeg", CODEC_ID_MJPEG }, { "image/png", CODEC_ID_PNG }, { "image/x-png", CODEC_ID_PNG }, { "image/x-portable-pixmap", CODEC_ID_PPM }, { NULL, CODEC_ID_NONE } #endif }; /** * Main method for the ffmpeg-thumbnailer plugin. * * @param ec extraction context */ void EXTRACTOR_thumbnailffmpeg_extract_method (struct EXTRACTOR_ExtractContext *ec) { unsigned int i; ssize_t iret; void *data; const char *mime; if (-1 == (iret = ec->read (ec->cls, &data, 16 * 1024))) return; if (NULL == (mime = magic_buffer (magic, data, iret))) return; if (0 != ec->seek (ec->cls, 0, SEEK_SET)) return; for (i = 0; NULL != m2d_map[i].mime_type; i++) if (0 == strcmp (m2d_map[i].mime_type, mime)) { extract_image (m2d_map[i].codec_id, ec); return; } extract_video (ec); } /** * This plugin sometimes is installed under the alias 'thumbnail'. * So we need to provide a second entry method. * * @param ec extraction context */ void EXTRACTOR_thumbnail_extract_method (struct EXTRACTOR_ExtractContext *ec) { EXTRACTOR_thumbnailffmpeg_extract_method (ec); } /** * Log callback. Does nothing. * * @param ptr NULL * @param level log level * @param format format string * @param ap arguments for format */ static void thumbnailffmpeg_av_log_callback (void* ptr, int level, const char *format, va_list ap) { #if DEBUG vfprintf(stderr, format, ap); #endif } /** * Initialize av-libs and load magic file. */ void __attribute__ ((constructor)) thumbnailffmpeg_lib_init (void) { av_log_set_callback (&thumbnailffmpeg_av_log_callback); av_register_all (); magic = magic_open (MAGIC_MIME_TYPE); if (0 != magic_load (magic, NULL)) { /* FIXME: how to deal with errors? */ } } /** * Destructor for the library, cleans up. */ void __attribute__ ((destructor)) thumbnailffmpeg_ltdl_fini () { if (NULL != magic) { magic_close (magic); magic = NULL; } } /* end of thumbnailffmpeg_extractor.c */ libextractor-1.3/src/plugins/test_riff.c0000644000175000017500000000356212016742777015424 00000000000000/* This file is part of libextractor. (C) 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/test_riff.c * @brief testcase for riff plugin * @author Christian Grothoff */ #include "platform.h" #include "test_lib.h" /** * Main function for the RIFF testcase. * * @param argc number of arguments (ignored) * @param argv arguments (ignored) * @return 0 on success */ int main (int argc, char *argv[]) { struct SolutionData riff_flame_sol[] = { { EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "video/x-msvideo", strlen ("video/x-msvideo") + 1, 0 }, { EXTRACTOR_METATYPE_FORMAT, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "codec: cvid, 35 fps, 3143 ms", strlen ("codec: cvid, 35 fps, 3143 ms") + 1, 0 }, { EXTRACTOR_METATYPE_IMAGE_DIMENSIONS, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "256x240", strlen ("256x240") + 1, 0 }, { 0, 0, NULL, NULL, 0, -1 } }; struct ProblemSet ps[] = { { "testdata/riff_flame.avi", riff_flame_sol }, { NULL, NULL } }; return ET_main ("riff", ps); } /* end of test_riff.c */ libextractor-1.3/src/plugins/test_ps.c0000644000175000017500000000660312016742777015117 00000000000000/* This file is part of libextractor. (C) 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/test_ps.c * @brief testcase for ps plugin * @author Christian Grothoff */ #include "platform.h" #include "test_lib.h" /** * Main function for the PS testcase. * * @param argc number of arguments (ignored) * @param argv arguments (ignored) * @return 0 on success */ int main (int argc, char *argv[]) { struct SolutionData ps_bloomfilter_sol[] = { { EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "application/postscript", strlen ("application/postscript") + 1, 0 }, { EXTRACTOR_METATYPE_TITLE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "A Quick Introduction to Bloom Filters", strlen ("A Quick Introduction to Bloom Filters") + 1, 0 }, { EXTRACTOR_METATYPE_CREATED_BY_SOFTWARE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "dvips(k) 5.92b Copyright 2002 Radical Eye Software", strlen ("dvips(k) 5.92b Copyright 2002 Radical Eye Software") + 1, 0 }, { EXTRACTOR_METATYPE_PAGE_COUNT, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "1", strlen ("1") + 1, 0 }, { EXTRACTOR_METATYPE_PAGE_ORDER, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Ascend", strlen ("Ascend") + 1, 0 }, { 0, 0, NULL, NULL, 0, -1 } }; struct SolutionData ps_wallace_sol[] = { { EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "application/postscript", strlen ("application/postscript") + 1, 0 }, { EXTRACTOR_METATYPE_SUBJECT, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "PS preprint of JPEG article submitted to IEEE Trans on Consum. Elect", strlen ("PS preprint of JPEG article submitted to IEEE Trans on Consum. Elect") + 1, 0 }, { EXTRACTOR_METATYPE_CREATED_BY_SOFTWARE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "DECwrite V1.1 Copyright (c) 1990 DIGITAL EQUIPMENT CORPORATION. All Rights Reserved.", strlen ("DECwrite V1.1 Copyright (c) 1990 DIGITAL EQUIPMENT CORPORATION. All Rights Reserved.") + 1, 0 }, { EXTRACTOR_METATYPE_AUTHOR_NAME, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Greg Wallace", strlen ("Greg Wallace") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN_DATE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Tue, 17 Dec 91 14:49:50 PST", strlen ("Tue, 17 Dec 91 14:49:50 PST") + 1, 0 }, { 0, 0, NULL, NULL, 0, -1 } }; struct ProblemSet ps[] = { { "testdata/ps_bloomfilter.ps", ps_bloomfilter_sol }, { "testdata/ps_wallace.ps", ps_wallace_sol }, { NULL, NULL } }; return ET_main ("ps", ps); } /* end of test_ps.c */ libextractor-1.3/src/plugins/mpeg_extractor.c0000644000175000017500000001010212007727371016437 00000000000000/* This file is part of libextractor. (C) 2004, 2005, 2006, 2009, 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/mpeg_extractor.c * @brief plugin to support MPEG files * @author Christian Grothoff */ #include "platform.h" #include "extractor.h" #include /** * Give meta data to extractor. * * @param t type of the meta data * @param s meta data value in utf8 format */ #define ADD(s,t) do { if (0 != ec->proc (ec->cls, "mpeg", t, EXTRACTOR_METAFORMAT_UTF8, "text/plain", s, strlen (s) + 1)) goto EXIT; } while (0) /** * Main entry method for the 'video/mpeg' extraction plugin. * * @param ec extraction context provided to the plugin */ void EXTRACTOR_mpeg_extract_method (struct EXTRACTOR_ExtractContext *ec) { mpeg2dec_t *handle; const mpeg2_info_t *info; void *buf; ssize_t avail; mpeg2_state_t state; char format[256]; char gop_format[256]; int have_gop; uint64_t fsize; unsigned int fail_count; if (NULL == (handle = mpeg2_init ())) return; if (NULL == (info = mpeg2_info (handle))) { mpeg2_close (handle); return; } fsize = ec->get_size (ec->cls); buf = NULL; have_gop = 0; fail_count = 0; while (1) { state = mpeg2_parse (handle); switch (state) { case STATE_BUFFER: if (fail_count > 16) goto EXIT; /* do not read large non-mpeg files */ fail_count++; if (0 >= (avail = ec->read (ec->cls, &buf, 16 * 1024))) goto EXIT; mpeg2_buffer (handle, buf, buf + avail); break; case STATE_SEQUENCE: fail_count = 0; format[0] = fsize; format[0]++; ADD ("video/mpeg", EXTRACTOR_METATYPE_MIMETYPE); snprintf (format, sizeof(format), "%ux%u", info->sequence->width, info->sequence->height); ADD (format, EXTRACTOR_METATYPE_IMAGE_DIMENSIONS); switch (info->sequence->flags & SEQ_VIDEO_FORMAT_UNSPECIFIED) { case SEQ_VIDEO_FORMAT_PAL: ADD ("PAL", EXTRACTOR_METATYPE_BROADCAST_TELEVISION_SYSTEM); break; case SEQ_VIDEO_FORMAT_NTSC: ADD ("NTSC", EXTRACTOR_METATYPE_BROADCAST_TELEVISION_SYSTEM); break; case SEQ_VIDEO_FORMAT_SECAM: ADD ("SECAM", EXTRACTOR_METATYPE_BROADCAST_TELEVISION_SYSTEM); break; case SEQ_VIDEO_FORMAT_MAC: ADD ("MAC", EXTRACTOR_METATYPE_BROADCAST_TELEVISION_SYSTEM); break; default: break; } if ((info->sequence->flags & SEQ_FLAG_MPEG2) > 0) ADD ("MPEG2", EXTRACTOR_METATYPE_FORMAT_VERSION); else ADD ("MPEG1", EXTRACTOR_METATYPE_FORMAT_VERSION); if ( (fsize != -1) && (fsize > 1024 * 256 * 2) ) { /* skip to the end of the mpeg for speed */ ec->seek (ec->cls, fsize - 256 * 1024, SEEK_SET); } break; case STATE_GOP: fail_count = 0; if ( (NULL != info->gop) && (0 != info->gop->pictures) ) { snprintf (gop_format, sizeof (gop_format), "%02u:%02u:%02u (%u frames)", info->gop->hours, info->gop->minutes, info->gop->seconds, info->gop->pictures); have_gop = 1; } break; case STATE_SLICE: fail_count = 0; break; case STATE_END: fail_count = 0; break; case STATE_INVALID: goto EXIT; default: break; } } EXIT: if (1 == have_gop) ADD (gop_format, EXTRACTOR_METATYPE_DURATION); mpeg2_close (handle); } /* end of mpeg_extractor.c */ libextractor-1.3/src/plugins/test_previewopus.c0000644000175000017500000000301512255151034017040 00000000000000/* This file is part of libextractor. (C) 2013 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/test_previewopus.c * @brief stub testcase for previewopus plugin * @author Bruno Cabral */ #include "platform.h" #include "test_lib.h" /** * Main function for the previewopus testcase. * * @param argc number of arguments (ignored) * @param argv arguments (ignored) * @return 0 on success */ int main (int argc, char *argv[]) { struct SolutionData previewopus_audio_sol[] = { //TODO. Can't test as it depends on the encoder. { 0, 0, NULL, NULL, 0, -1 } }; struct ProblemSet ps[] = { { "testdata/mpeg_alien.mpg", previewopus_audio_sol }, { NULL, NULL } }; return ET_main ("previewopus", ps); } /* end of test_thumbnailffmpeg.c */ libextractor-1.3/src/plugins/nsfe_extractor.c0000644000175000017500000002050112016742766016453 00000000000000/* * This file is part of libextractor. * (C) 2007, 2009, 2012 Toni Ruottu and Christian Grothoff * * libextractor is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published * by the Free Software Foundation; either version 3, or (at your * option) any later version. * * libextractor is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with libextractor; see the file COPYING. If not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. * */ /** * @file plugins/nsfe_extractor.c * @brief plugin to support Nes Sound Format files * @author Toni Ruottu * @author Christian Grothoff */ #include "platform.h" #include "extractor.h" #include "convert.h" /* television system flags */ #define PAL_FLAG 0x01 #define DUAL_FLAG 0x02 /* sound chip flags */ #define VRCVI_FLAG 0x01 #define VRCVII_FLAG 0x02 #define FDS_FLAG 0x04 #define MMC5_FLAG 0x08 #define NAMCO_FLAG 0x10 #define SUNSOFT_FLAG 0x20 /** * "Header" of an NSFE file. */ struct header { char magicid[4]; }; /** * Read an unsigned integer at the current offset. * * @param data input data to parse * @return parsed integer */ static uint32_t nsfeuint (const char *data) { int i; uint32_t value = 0; for (i = 3; i > 0; i--) { value += (unsigned char) data[i]; value *= 0x100; } value += (unsigned char) data[0]; return value; } /** * Copy string starting at 'data' with at most * 'size' bytes. (strndup). * * @param data input data to copy * @param size number of bytes in 'data' * @return copy of the string at data */ static char * nsfestring (const char *data, size_t size) { char *s; size_t length; length = 0; while ( (length < size) && (data[length] != '\0') ) length++; if (NULL == (s = malloc (length + 1))) return NULL; memcpy (s, data, length); s[length] = '\0'; return s; } /** * Give metadata to LE; return if 'proc' returns non-zero. * * @param s metadata value as UTF8 * @param t metadata type to use */ #define ADD(s,t) do { if (0 != ec->proc (ec->cls, "nsfe", t, EXTRACTOR_METAFORMAT_UTF8, "text/plain", s, strlen (s) + 1)) return 1; } while (0) /** * Give metadata to LE; return if 'proc' returns non-zero. * * @param s metadata value as UTF8, free at the end * @param t metadata type to use */ #define ADDF(s,t) do { if (0 != ec->proc (ec->cls, "nsfe", t, EXTRACTOR_METAFORMAT_UTF8, "text/plain", s, strlen (s) + 1)) { free (s); return 1; } free (s); } while (0) /** * Format of an 'INFO' chunk. Last two bytes are optional. */ struct infochunk { /** * Unknown. */ uint16_t loadaddr; /** * Unknown. */ uint16_t initaddr; /** * Unknown. */ uint16_t playaddr; /** * TV encoding flags. */ char tvflags; /** * Chipset encoding flags. */ char chipflags; /** * Number of songs. */ unsigned char songs; /** * Starting song. */ unsigned char firstsong; }; /** * Extract data from the INFO chunk. * * @param ec extraction context * @param size number of bytes in INFO chunk * @return 0 to continue extrating */ static int info_extract (struct EXTRACTOR_ExtractContext *ec, uint32_t size) { void *data; const struct infochunk *ichunk; char songs[32]; if (size < 8) return 0; if (size > ec->read (ec->cls, &data, size)) return 1; ichunk = data; if (0 != (ichunk->tvflags & DUAL_FLAG)) { ADD ("PAL/NTSC", EXTRACTOR_METATYPE_BROADCAST_TELEVISION_SYSTEM); } else { if (0 != (ichunk->tvflags & PAL_FLAG)) ADD ("PAL", EXTRACTOR_METATYPE_BROADCAST_TELEVISION_SYSTEM); else ADD ("NTSC", EXTRACTOR_METATYPE_BROADCAST_TELEVISION_SYSTEM); } if (0 != (ichunk->chipflags & VRCVI_FLAG)) ADD ("VRCVI", EXTRACTOR_METATYPE_TARGET_ARCHITECTURE); if (0 != (ichunk->chipflags & VRCVII_FLAG)) ADD ("VRCVII", EXTRACTOR_METATYPE_TARGET_ARCHITECTURE); if (0 != (ichunk->chipflags & FDS_FLAG)) ADD ("FDS Sound", EXTRACTOR_METATYPE_TARGET_ARCHITECTURE); if (0 != (ichunk->chipflags & MMC5_FLAG)) ADD ("MMC5 audio", EXTRACTOR_METATYPE_TARGET_ARCHITECTURE); if (0 != (ichunk->chipflags & NAMCO_FLAG)) ADD ("Namco 106", EXTRACTOR_METATYPE_TARGET_ARCHITECTURE); if (0 != (ichunk->chipflags & SUNSOFT_FLAG)) ADD ("Sunsoft FME-07", EXTRACTOR_METATYPE_TARGET_ARCHITECTURE); if (size < sizeof (struct infochunk)) { ADD ("1", EXTRACTOR_METATYPE_SONG_COUNT); return 0; } snprintf (songs, sizeof (songs), "%d", ichunk->songs); ADD (songs, EXTRACTOR_METATYPE_SONG_COUNT); snprintf (songs, sizeof (songs), "%d", ichunk->firstsong); ADD (songs, EXTRACTOR_METATYPE_STARTING_SONG); return 0; } /** * Extract data from the TLBL chunk. * * @param ec extraction context * @param size number of bytes in TLBL chunk * @return 0 to continue extrating */ static int tlbl_extract (struct EXTRACTOR_ExtractContext *ec, uint32_t size) { char *title; ssize_t left; size_t length; void *data; const char *cdata; if (size > ec->read (ec->cls, &data, size)) return 1; cdata = data; left = size; while (left > 0) { title = nsfestring (&cdata[size - left], left); if (NULL == title) return 0; length = strlen (title) + 1; ADDF (title, EXTRACTOR_METATYPE_TITLE); left -= length; } return 0; } /** * Extract data from the AUTH chunk. * * @param ec extraction context * @param size number of bytes in AUTH chunk * @return 0 to continue extrating */ static int auth_extract (struct EXTRACTOR_ExtractContext *ec, uint32_t size) { char *album; char *artist; char *copyright; char *ripper; uint32_t left = size; void *data; const char *cdata; if (left < 1) return 0; if (size > ec->read (ec->cls, &data, size)) return 1; cdata = data; album = nsfestring (&cdata[size - left], left); if (NULL != album) { left -= (strlen (album) + 1); ADDF (album, EXTRACTOR_METATYPE_ALBUM); if (left < 1) return 0; } artist = nsfestring (&cdata[size - left], left); if (NULL != artist) { left -= (strlen (artist) + 1); ADDF (artist, EXTRACTOR_METATYPE_ARTIST); if (left < 1) return 0; } copyright = nsfestring (&cdata[size - left], left); if (NULL != copyright) { left -= (strlen (copyright) + 1); ADDF (copyright, EXTRACTOR_METATYPE_COPYRIGHT); if (left < 1) return 0; } ripper = nsfestring (&cdata[size - left], left); if (NULL != ripper) ADDF (ripper, EXTRACTOR_METATYPE_RIPPER); return 0; } /** * "extract" meta data from an Extended Nintendo Sound Format file * * NSFE specification revision 2 (Sep. 3, 2003) was used, while this * piece of software was originally written. * * @param ec extraction context */ void EXTRACTOR_nsfe_extract_method (struct EXTRACTOR_ExtractContext *ec) { const struct header *head; void *data; uint64_t off; uint32_t chunksize; int ret; if (sizeof (struct header) > ec->read (ec->cls, &data, sizeof (struct header))) return; head = data; if (0 != memcmp (head->magicid, "NSFE", 4)) return; if (0 != ec->proc (ec->cls, "nsfe", EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "audio/x-nsfe", strlen ("audio/x-nsfe") + 1)) return; off = sizeof (struct header); ret = 0; while (0 == ret) { if (off != ec->seek (ec->cls, off, SEEK_SET)) break; if (8 > ec->read (ec->cls, &data, 8)) break; chunksize = nsfeuint (data); off += 8 + chunksize; if (0 == memcmp (data + 4, "INFO", 4)) ret = info_extract (ec, chunksize); else if (0 == memcmp (data + 4, "auth", 4)) ret = auth_extract (ec, chunksize); else if (0 == memcmp (data + 4, "tlbl", 4)) ret = tlbl_extract (ec, chunksize); /* Ignored chunks: DATA, NEND, plst, time, fade, BANK */ } } /* end of nsfe_extractor.c */ libextractor-1.3/src/plugins/rpm_extractor.c0000644000175000017500000002436412245731275016326 00000000000000/* This file is part of libextractor. (C) 2002, 2003, 2008, 2009, 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/rpm_extractor.c * @brief plugin to support RPM files * @author Christian Grothoff */ #include "platform.h" #include "extractor.h" #include #include #include #include #if SOMEBSD #include #else #include #endif #include #include /** * Closure for the 'pipe_feeder'. */ struct PipeArgs { /** * Context for reading data from. */ struct EXTRACTOR_ExtractContext *ec; /** * Lock for synchronizing access to 'ec'. */ pthread_mutex_t lock; /** * Pipe to write to at [1]. */ int pi[2]; /** * Set to 1 if we should stop writing to the pipe. */ int shutdown; }; /** * Size of the buffer we use for reading. */ #define BUF_SIZE (16 * 1024) /** * Main function of a helper thread that passes the package data * to librpm. * * @param args the 'struct PipeArgs*' * @return NULL */ static void * pipe_feeder (void * args) { struct PipeArgs *p = args; ssize_t rret; ssize_t wret; ssize_t done; void *ptr; char *buf; /* buffer is heap-allocated as this is a thread and large stack allocations might not be the best idea */ while (0 == p->shutdown) { pthread_mutex_lock (&p->lock); if (-1 == (rret = p->ec->read (p->ec->cls, &ptr, BUF_SIZE))) { pthread_mutex_unlock (&p->lock); break; } pthread_mutex_unlock (&p->lock); if (0 == rret) break; buf = ptr; done = 0; while ( (0 == p->shutdown) && (done < rret) ) { if (-1 == (wret = WRITE (p->pi[1], &buf[done], rret - done))) { break; } if (0 == wret) break; done += wret; } if (done != rret) break; } CLOSE (p->pi[1]); return NULL; } /** * LOG callback called by librpm. Does nothing, we * just need this to override the default behavior. */ static int discard_log_callback (rpmlogRec rec, void *ctx) { /* do nothing! */ return 0; } /** * Mapping from RPM tags to LE types. */ struct Matches { /** * RPM tag. */ int32_t rtype; /** * Corresponding LE type. */ enum EXTRACTOR_MetaType type; }; /** * List of mappings from RPM tags to LE types. */ static struct Matches tests[] = { {RPMTAG_NAME, EXTRACTOR_METATYPE_PACKAGE_NAME}, {RPMTAG_VERSION, EXTRACTOR_METATYPE_SOFTWARE_VERSION}, {RPMTAG_GROUP, EXTRACTOR_METATYPE_SECTION}, {RPMTAG_SIZE, EXTRACTOR_METATYPE_PACKAGE_INSTALLED_SIZE}, {RPMTAG_SUMMARY, EXTRACTOR_METATYPE_SUMMARY}, {RPMTAG_PACKAGER, EXTRACTOR_METATYPE_PACKAGE_MAINTAINER}, {RPMTAG_BUILDTIME, EXTRACTOR_METATYPE_CREATION_DATE}, #ifdef RPMTAG_COPYRIGHT {RPMTAG_COPYRIGHT, EXTRACTOR_METATYPE_COPYRIGHT}, #endif {RPMTAG_LICENSE, EXTRACTOR_METATYPE_LICENSE}, {RPMTAG_DISTRIBUTION, EXTRACTOR_METATYPE_PACKAGE_DISTRIBUTION}, {RPMTAG_BUILDHOST, EXTRACTOR_METATYPE_BUILDHOST}, {RPMTAG_VENDOR, EXTRACTOR_METATYPE_VENDOR}, {RPMTAG_OS, EXTRACTOR_METATYPE_TARGET_OS}, {RPMTAG_DESCRIPTION, EXTRACTOR_METATYPE_DESCRIPTION}, {RPMTAG_URL, EXTRACTOR_METATYPE_URL}, {RPMTAG_DISTURL, EXTRACTOR_METATYPE_URL}, {RPMTAG_RELEASE, EXTRACTOR_METATYPE_PACKAGE_VERSION}, {RPMTAG_PLATFORM, EXTRACTOR_METATYPE_TARGET_PLATFORM}, {RPMTAG_ARCH, EXTRACTOR_METATYPE_TARGET_ARCHITECTURE}, {RPMTAG_CONFLICTNAME, EXTRACTOR_METATYPE_PACKAGE_CONFLICTS}, {RPMTAG_REQUIRENAME, EXTRACTOR_METATYPE_PACKAGE_DEPENDENCY}, {RPMTAG_CONFLICTNAME, EXTRACTOR_METATYPE_PACKAGE_CONFLICTS}, {RPMTAG_PROVIDENAME, EXTRACTOR_METATYPE_PACKAGE_PROVIDES}, #if 0 {RPMTAG_CHANGELOGTEXT, EXTRACTOR_METATYPE_REVISION_HISTORY}, #endif #if 0 /* FIXME: add support for some of these */ RPMTAG_GIF = 1012, /* x */ RPMTAG_XPM = 1013, /* x */ RPMTAG_SOURCE = 1018, /* s[] */ RPMTAG_PATCH = 1019, /* s[] */ RPMTAG_PREIN = 1023, /* s */ RPMTAG_POSTIN = 1024, /* s */ RPMTAG_PREUN = 1025, /* s */ RPMTAG_POSTUN = 1026, /* s */ RPMTAG_ICON = 1043, /* x */ RPMTAG_SOURCERPM = 1044, /* s */ RPMTAG_PROVIDENAME = 1047, /* s[] */ RPMTAG_EXCLUDEARCH = 1059, /* s[] */ RPMTAG_EXCLUDEOS = 1060, /* s[] */ RPMTAG_EXCLUSIVEARCH = 1061, /* s[] */ RPMTAG_EXCLUSIVEOS = 1062, /* s[] */ RPMTAG_TRIGGERSCRIPTS = 1065, /* s[] */ RPMTAG_TRIGGERNAME = 1066, /* s[] */ RPMTAG_TRIGGERVERSION = 1067, /* s[] */ RPMTAG_VERIFYSCRIPT = 1079, /* s */ RPMTAG_PREINPROG = 1085, /* s */ RPMTAG_POSTINPROG = 1086, /* s */ RPMTAG_PREUNPROG = 1087, /* s */ RPMTAG_POSTUNPROG = 1088, /* s */ RPMTAG_BUILDARCHS = 1089, /* s[] */ RPMTAG_OBSOLETENAME = 1090, /* s[] */ RPMTAG_VERIFYSCRIPTPROG = 1091, /* s */ RPMTAG_TRIGGERSCRIPTPROG = 1092, /* s[] */ RPMTAG_COOKIE = 1094, /* s */ RPMTAG_FILELANGS = 1097, /* s[] */ RPMTAG_PREFIXES = 1098, /* s[] */ RPMTAG_INSTPREFIXES = 1099, /* s[] */ RPMTAG_PROVIDEVERSION = 1113, /* s[] */ RPMTAG_OBSOLETEVERSION = 1115, /* s[] */ RPMTAG_BASENAMES = 1117, /* s[] */ RPMTAG_DIRNAMES = 1118, /* s[] */ RPMTAG_OPTFLAGS = 1122, /* s */ RPMTAG_PAYLOADFORMAT = 1124, /* s */ RPMTAG_PAYLOADCOMPRESSOR = 1125, /* s */ RPMTAG_PAYLOADFLAGS = 1126, /* s */ RPMTAG_CLASSDICT = 1142, /* s[] */ RPMTAG_SOURCEPKGID = 1146, /* x */ RPMTAG_PRETRANS = 1151, /* s */ RPMTAG_POSTTRANS = 1152, /* s */ RPMTAG_PRETRANSPROG = 1153, /* s */ RPMTAG_POSTTRANSPROG = 1154, /* s */ RPMTAG_DISTTAG = 1155, /* s */ #endif {0, 0} }; /** * Main entry method for the 'application/x-rpm' extraction plugin. * * @param ec extraction context provided to the plugin */ void EXTRACTOR_rpm_extract_method (struct EXTRACTOR_ExtractContext *ec) { struct PipeArgs parg; pthread_t pthr; void *unused; const char *str; Header hdr; HeaderIterator hi; rpmtd p; int i; FD_t fdi; rpmRC rc; rpmts ts; struct sigaction sig; struct sigaction old; /* FIXME: here it might be worthwhile to do some minimal check to see if this is actually an RPM before we go and create a pipe and a thread for nothing... */ parg.ec = ec; parg.shutdown = 0; if (0 != pipe (parg.pi)) return; if (0 != pthread_mutex_init (&parg.lock, NULL)) { CLOSE (parg.pi[0]); CLOSE (parg.pi[1]); return; } if (0 != pthread_create (&pthr, NULL, &pipe_feeder, &parg)) { pthread_mutex_destroy (&parg.lock); CLOSE (parg.pi[0]); CLOSE (parg.pi[1]); return; } rpmlogSetCallback (&discard_log_callback, NULL); fdi = fdDup (parg.pi[0]); ts = rpmtsCreate(); rc = rpmReadPackageFile (ts, fdi, "GNU libextractor", &hdr); switch (rc) { case RPMRC_OK: case RPMRC_NOKEY: case RPMRC_NOTTRUSTED: break; case RPMRC_NOTFOUND: case RPMRC_FAIL: default: goto END; } pthread_mutex_lock (&parg.lock); if (0 != ec->proc (ec->cls, "rpm", EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "application/x-rpm", strlen ("application/x-rpm") +1)) { pthread_mutex_unlock (&parg.lock); goto END; } pthread_mutex_unlock (&parg.lock); hi = headerInitIterator (hdr); p = rpmtdNew (); while (1 == headerNext (hi, p)) for (i = 0; 0 != tests[i].rtype; i++) { if (tests[i].rtype != p->tag) continue; switch (p->type) { case RPM_STRING_ARRAY_TYPE: case RPM_I18NSTRING_TYPE: case RPM_STRING_TYPE: while (NULL != (str = rpmtdNextString (p))) { pthread_mutex_lock (&parg.lock); if (0 != ec->proc (ec->cls, "rpm", tests[i].type, EXTRACTOR_METAFORMAT_UTF8, "text/plain", str, strlen (str) + 1)) { pthread_mutex_unlock (&parg.lock); goto CLEANUP; } pthread_mutex_unlock (&parg.lock); } break; case RPM_INT32_TYPE: { if (p->tag == RPMTAG_BUILDTIME) { char tmp[30]; uint32_t *v = rpmtdNextUint32 (p); time_t tp = (time_t) *v; ctime_r (&tp, tmp); tmp[strlen (tmp) - 1] = '\0'; /* eat linefeed */ pthread_mutex_lock (&parg.lock); if (0 != ec->proc (ec->cls, "rpm", tests[i].type, EXTRACTOR_METAFORMAT_UTF8, "text/plain", tmp, strlen (tmp) + 1)) { pthread_mutex_unlock (&parg.lock); goto CLEANUP; } pthread_mutex_unlock (&parg.lock); } else { char tmp[14]; uint32_t *s = rpmtdNextUint32 (p); snprintf (tmp, sizeof (tmp), "%u", (unsigned int) *s); pthread_mutex_lock (&parg.lock); if (0 != ec->proc (ec->cls, "rpm", tests[i].type, EXTRACTOR_METAFORMAT_UTF8, "text/plain", tmp, strlen (tmp) + 1)) { pthread_mutex_unlock (&parg.lock); goto CLEANUP; } pthread_mutex_unlock (&parg.lock); } break; } default: break; } } CLEANUP: rpmtdFree (p); headerFreeIterator (hi); END: headerFree (hdr); rpmtsFree(ts); /* make sure SIGALRM does not kill us, then use it to kill the thread */ memset (&sig, 0, sizeof (struct sigaction)); memset (&old, 0, sizeof (struct sigaction)); sig.sa_flags = SA_NODEFER; sig.sa_handler = SIG_IGN; sigaction (SIGALRM, &sig, &old); parg.shutdown = 1; CLOSE (parg.pi[0]); Fclose (fdi); pthread_kill (pthr, SIGALRM); pthread_join (pthr, &unused); pthread_mutex_destroy (&parg.lock); sigaction (SIGALRM, &old, &sig); } /* end of rpm_extractor.c */ libextractor-1.3/src/plugins/test_exiv2.c0000644000175000017500000001525312016742777015533 00000000000000/* This file is part of libextractor. (C) 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/test_exiv2.c * @brief testcase for exiv2 plugin * @author Christian Grothoff */ #include "platform.h" #include "test_lib.h" /** * Main function for the EXIV2 testcase. * * @param argc number of arguments (ignored) * @param argv arguments (ignored) * @return 0 on success */ int main (int argc, char *argv[]) { struct SolutionData exiv2_iptc_sol[] = { { EXTRACTOR_METATYPE_GPS_LATITUDE_REF, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "North", strlen ("North") + 1, 0 }, { EXTRACTOR_METATYPE_GPS_LATITUDE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "28deg 8' 17.585\" ", strlen ("28deg 8' 17.585\" ") + 1, 0 }, { EXTRACTOR_METATYPE_GPS_LONGITUDE_REF, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "West", strlen ("West") + 1, 0 }, { EXTRACTOR_METATYPE_GPS_LONGITUDE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "14deg 14' 21.713\" ", strlen ("14deg 14' 21.713\" ") + 1, 0 }, { EXTRACTOR_METATYPE_CAMERA_MAKE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "PENTAX Corporation", strlen ("PENTAX Corporation") + 1, 0 }, { EXTRACTOR_METATYPE_CAMERA_MODEL, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "PENTAX Optio W30", strlen ("PENTAX Optio W30") + 1, 0 }, { EXTRACTOR_METATYPE_ORIENTATION, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "top, left", strlen ("top, left") + 1, 0 }, { EXTRACTOR_METATYPE_CREATION_DATE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "2008:06:29 16:06:10", strlen ("2008:06:29 16:06:10") + 1, 0 }, { EXTRACTOR_METATYPE_EXPOSURE_BIAS, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "0 EV", strlen ("0 EV") + 1, 0 }, { EXTRACTOR_METATYPE_FLASH, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "No, compulsory", strlen ("No, compulsory") + 1, 0 }, { EXTRACTOR_METATYPE_FOCAL_LENGTH, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "18.9 mm", strlen ("18.9 mm") + 1, 0 }, { EXTRACTOR_METATYPE_FOCAL_LENGTH_35MM, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "114.0 mm", strlen ("114.0 mm") + 1, 0 }, { EXTRACTOR_METATYPE_ISO_SPEED, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "64", strlen ("64") + 1, 0 }, { EXTRACTOR_METATYPE_METERING_MODE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Multi-segment", strlen ("Multi-segment") + 1, 0 }, { EXTRACTOR_METATYPE_APERTURE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "F8", strlen ("F8") + 1, 0 }, { EXTRACTOR_METATYPE_EXPOSURE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "1/320 s", strlen ("1/320 s") + 1, 0 }, { EXTRACTOR_METATYPE_LOCATION_CITY, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Los Verdes", strlen ("Los Verdes") + 1, 0 }, { EXTRACTOR_METATYPE_LOCATION_CITY, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Los Verdes", strlen ("Los Verdes") + 1, 0 }, { EXTRACTOR_METATYPE_LOCATION_SUBLOCATION, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Fuerteventura", strlen ("Fuerteventura") + 1, 0 }, { EXTRACTOR_METATYPE_LOCATION_COUNTRY, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Spain", strlen ("Spain") + 1, 0 }, { EXTRACTOR_METATYPE_LOCATION_COUNTRY, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Spain", strlen ("Spain") + 1, 0 }, { EXTRACTOR_METATYPE_KEYWORDS, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Fuerteventura", strlen ("Fuerteventura") + 1, 0 }, { EXTRACTOR_METATYPE_KEYWORDS, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Landschaftsbild", strlen ("Landschaftsbild") + 1, 0 }, { EXTRACTOR_METATYPE_KEYWORDS, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "ProCenter Rene Egli", strlen ("ProCenter Rene Egli") + 1, 0 }, { EXTRACTOR_METATYPE_KEYWORDS, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Sand", strlen ("Sand") + 1, 0 }, { EXTRACTOR_METATYPE_KEYWORDS, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Sport", strlen ("Sport") + 1, 0 }, { EXTRACTOR_METATYPE_KEYWORDS, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Urlaub", strlen ("Urlaub") + 1, 0 }, { EXTRACTOR_METATYPE_KEYWORDS, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Was?", strlen ("Was?") + 1, 0 }, { EXTRACTOR_METATYPE_KEYWORDS, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Wind", strlen ("Wind") + 1, 0 }, { EXTRACTOR_METATYPE_KEYWORDS, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Windsurfen", strlen ("Windsurfen") + 1, 0 }, { EXTRACTOR_METATYPE_KEYWORDS, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Wo?", strlen ("Wo?") + 1, 0 }, { EXTRACTOR_METATYPE_RATING, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "3", strlen ("3") + 1, 0 }, { EXTRACTOR_METATYPE_RATING, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "50", strlen ("50") + 1, 0 }, { EXTRACTOR_METATYPE_LOCATION_COUNTRY_CODE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "ES", strlen ("ES") + 1, 0 }, { EXTRACTOR_METATYPE_CREATED_BY_SOFTWARE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Optio W30 Ver 1.00", strlen ("Optio W30 Ver 1.00") + 1, 0 }, { EXTRACTOR_METATYPE_SUBJECT, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Wo?, Wo?|Fuerteventura, Was?, Was?|Anlass]|Urlaub, Was?|Aufnahme]|Landschaftsbild, Was?|Natur]|Wind, Was?|Natur]|Sand, Wo?|Fuerteventura|ProCenter Rene Egli, Was?|Sport, Was?|Sport|Windsurfen", strlen ("Wo?, Wo?|Fuerteventura, Was?, Was?|Anlass]|Urlaub, Was?|Aufnahme]|Landschaftsbild, Was?|Natur]|Wind, Was?|Natur]|Sand, Wo?|Fuerteventura|ProCenter Rene Egli, Was?|Sport, Was?|Sport|Windsurfen") + 1, 0 }, { 0, 0, NULL, NULL, 0, -1 } }; struct ProblemSet ps[] = { { "testdata/exiv2_iptc.jpg", exiv2_iptc_sol }, { NULL, NULL } }; return ET_main ("exiv2", ps); } /* end of test_exiv2.c */ libextractor-1.3/src/plugins/nsf_extractor.c0000644000175000017500000001151212016742766016310 00000000000000/* * This file is part of libextractor. * (C) 2006, 2009, 2012 Toni Ruottu and Christian Grothoff * * libextractor is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published * by the Free Software Foundation; either version 3, or (at your * option) any later version. * * libextractor is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with libextractor; see the file COPYING. If not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. * */ /** * @file plugins/nsf_extractor.c * @brief plugin to support Nes Sound Format files * @author Toni Ruottu * @author Christian Grothoff */ #include "platform.h" #include "extractor.h" /* television system flags */ #define PAL_FLAG 0x01 #define DUAL_FLAG 0x02 /* sound chip flags */ #define VRCVI_FLAG 0x01 #define VRCVII_FLAG 0x02 #define FDS_FLAG 0x04 #define MMC5_FLAG 0x08 #define NAMCO_FLAG 0x10 #define SUNSOFT_FLAG 0x20 /** * Header of an NSF file. */ struct header { /** * Magic code. */ char magicid[5]; /** * NSF version number. */ char nsfversion; /** * Number of songs. */ unsigned char songs; /** * Starting song. */ unsigned char firstsong; /** * Unknown. */ uint16_t loadaddr; /** * Unknown. */ uint16_t initaddr; /** * Unknown. */ uint16_t playaddr; /** * Album title. */ char title[32]; /** * Artist name. */ char artist[32]; /** * Copyright information. */ char copyright[32]; /** * Unknown. */ uint16_t ntscspeed; /** * Unknown. */ char bankswitch[8]; /** * Unknown. */ uint16_t palspeed; /** * Flags for TV encoding. */ char tvflags; /** * Flags about the decoder chip. */ char chipflags; }; /** * Give metadata to LE; return if 'proc' returns non-zero. * * @param s metadata value as UTF8 * @param t metadata type to use */ #define ADD(s,t) do { if (0 != ec->proc (ec->cls, "nsf", t, EXTRACTOR_METAFORMAT_UTF8, "text/plain", s, strlen (s) + 1)) return; } while (0) /** * "extract" meta data from a Nes Sound Format file * * NSF specification version 1.61 was used, while this piece of * software was originally written. * * @param ec extraction context */ void EXTRACTOR_nsf_extract_method (struct EXTRACTOR_ExtractContext *ec) { char album[33]; char artist[33]; char copyright[33]; char songs[32]; char startingsong[32]; char nsfversion[32]; const struct header *head; void *data; if (sizeof (struct header) > ec->read (ec->cls, &data, sizeof (struct header))) return; head = data; /* Check "magic" id bytes */ if (memcmp (head->magicid, "NESM\x1a", 5)) return; ADD ("audio/x-nsf", EXTRACTOR_METATYPE_MIMETYPE); snprintf (nsfversion, sizeof(nsfversion), "%d", head->nsfversion); ADD (nsfversion, EXTRACTOR_METATYPE_FORMAT_VERSION); snprintf (songs, sizeof(songs), "%d", (int) head->songs); ADD (songs, EXTRACTOR_METATYPE_SONG_COUNT); snprintf (startingsong, sizeof(startingsong), "%d", (int) head->firstsong); ADD (startingsong, EXTRACTOR_METATYPE_STARTING_SONG); memcpy (&album, head->title, 32); album[32] = '\0'; ADD (album, EXTRACTOR_METATYPE_ALBUM); memcpy (&artist, head->artist, 32); artist[32] = '\0'; ADD (artist, EXTRACTOR_METATYPE_ARTIST); memcpy (©right, head->copyright, 32); copyright[32] = '\0'; ADD (copyright, EXTRACTOR_METATYPE_COPYRIGHT); if (0 != (head->tvflags & DUAL_FLAG)) { ADD ("PAL/NTSC", EXTRACTOR_METATYPE_BROADCAST_TELEVISION_SYSTEM); } else { if (0 != (head->tvflags & PAL_FLAG)) ADD ("PAL", EXTRACTOR_METATYPE_BROADCAST_TELEVISION_SYSTEM); else ADD ("NTSC", EXTRACTOR_METATYPE_BROADCAST_TELEVISION_SYSTEM); } /* Detect Extra Sound Chips needed to play the files */ if (0 != (head->chipflags & VRCVI_FLAG)) ADD ("VRCVI", EXTRACTOR_METATYPE_TARGET_ARCHITECTURE); if (0 != (head->chipflags & VRCVII_FLAG)) ADD ("VRCVII", EXTRACTOR_METATYPE_TARGET_ARCHITECTURE); if (0 != (head->chipflags & FDS_FLAG)) ADD ("FDS Sound", EXTRACTOR_METATYPE_TARGET_ARCHITECTURE); if (0 != (head->chipflags & MMC5_FLAG)) ADD ("MMC5 audio", EXTRACTOR_METATYPE_TARGET_ARCHITECTURE); if (0 != (head->chipflags & NAMCO_FLAG)) ADD ("Namco 106", EXTRACTOR_METATYPE_TARGET_ARCHITECTURE); if (0 != (head->chipflags & SUNSOFT_FLAG)) ADD ("Sunsoft FME-07", EXTRACTOR_METATYPE_TARGET_ARCHITECTURE); } /* end of nsf_extractor.c */ libextractor-1.3/src/plugins/ps_extractor.c0000644000175000017500000001301212021431245016120 00000000000000/* This file is part of libextractor. (C) 2002, 2003, 2009, 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/ps_extractor.c * @brief plugin to support PostScript files * @author Christian Grothoff */ #include "platform.h" #include "extractor.h" /** * Maximum length of a single line in the PostScript file we're * willing to look at. While the body of the file can have longer * lines, this should be a sane limit for the lines in the header with * the meta data. */ #define MAX_LINE (1024) /** * Header of a PostScript file. */ #define PS_HEADER "%!PS-Adobe" /** * Pair with prefix in the PS header and corresponding LE type. */ struct Matches { /** * PS header prefix. */ const char *prefix; /** * Corresponding LE type. */ enum EXTRACTOR_MetaType type; }; /** * Map of PS prefixes to LE types. */ static struct Matches tests[] = { { "%%Title: ", EXTRACTOR_METATYPE_TITLE }, { "% Subject: ", EXTRACTOR_METATYPE_SUBJECT }, { "%%Author: ", EXTRACTOR_METATYPE_AUTHOR_NAME }, { "% From: ", EXTRACTOR_METATYPE_AUTHOR_NAME }, { "%%Version: ", EXTRACTOR_METATYPE_REVISION_NUMBER }, { "%%Creator: ", EXTRACTOR_METATYPE_CREATED_BY_SOFTWARE }, { "%%CreationDate: ", EXTRACTOR_METATYPE_CREATION_DATE }, { "% Date: ", EXTRACTOR_METATYPE_UNKNOWN_DATE }, { "%%Pages: ", EXTRACTOR_METATYPE_PAGE_COUNT }, { "%%Orientation: ", EXTRACTOR_METATYPE_PAGE_ORIENTATION }, { "%%DocumentPaperSizes: ", EXTRACTOR_METATYPE_PAPER_SIZE }, { "%%PageOrder: ", EXTRACTOR_METATYPE_PAGE_ORDER }, { "%%LanguageLevel: ", EXTRACTOR_METATYPE_FORMAT_VERSION }, { "%%Magnification: ", EXTRACTOR_METATYPE_MAGNIFICATION }, /* Also widely used but not supported since they probably make no sense: "%%BoundingBox: ", "%%DocumentNeededResources: ", "%%DocumentSuppliedResources: ", "%%DocumentProcSets: ", "%%DocumentData: ", */ { NULL, 0 } }; /** * Read a single ('\n'-terminated) line of input. * * @param ec context for IO * @return NULL on end-of-file (or if next line exceeds limit) */ static char * readline (struct EXTRACTOR_ExtractContext *ec) { int64_t pos; ssize_t ret; char *res; void *data; const char *cdata; const char *eol; pos = ec->seek (ec->cls, 0, SEEK_CUR); if (0 >= (ret = ec->read (ec->cls, &data, MAX_LINE))) return NULL; cdata = data; if (NULL == (eol = memchr (cdata, '\n', ret))) return NULL; /* no end-of-line found */ if (NULL == (res = malloc (eol - cdata + 1))) return NULL; memcpy (res, cdata, eol - cdata); res[eol - cdata] = '\0'; ec->seek (ec->cls, pos + eol - cdata + 1, SEEK_SET); return res; } /** * Main entry method for the 'application/postscript' extraction plugin. * * @param ec extraction context provided to the plugin */ void EXTRACTOR_ps_extract_method (struct EXTRACTOR_ExtractContext *ec) { unsigned int i; char *line; char *next; char *acc; const char *match; if (NULL == (line = readline (ec))) return; if ( (strlen (line) < strlen (PS_HEADER)) || (0 != memcmp (PS_HEADER, line, strlen (PS_HEADER))) ) { free (line); return; } free (line); if (0 != ec->proc (ec->cls, "ps", EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "application/postscript", strlen ("application/postscript") + 1)) return; line = NULL; next = readline (ec); while ( (NULL != next) && ('%' == next[0]) ) { line = next; next = readline (ec); for (i = 0; NULL != tests[i].prefix; i++) { match = tests[i].prefix; if ( (strlen (line) < strlen (match)) || (0 != strncmp (line, match, strlen (match))) ) continue; /* %%+ continues previous meta-data type... */ while ( (NULL != next) && (0 == strncmp (next, "%%+", strlen ("%%+"))) ) { if (NULL == (acc = malloc (strlen (line) + strlen (next) - 1))) break; strcpy (acc, line); strcat (acc, " "); strcat (acc, next + 3); free (line); line = acc; free (next); next = readline (ec); } if ( (line[strlen (line) - 1] == ')') && (line[strlen (match)] == '(') ) { acc = &line[strlen (match) + 1]; acc[strlen (acc) - 1] = '\0'; /* remove ")" */ } else { acc = &line[strlen (match)]; } while (isspace ((unsigned int) acc[0])) acc++; if ( (strlen (acc) > 0) && (0 != ec->proc (ec->cls, "ps", tests[i].type, EXTRACTOR_METAFORMAT_UTF8, "text/plain", acc, strlen (acc) + 1)) ) { free (line); if (NULL != next) free (next); return; } break; } free (line); } if (NULL != next) free (next); } /* end of ps_extractor.c */ libextractor-1.3/src/plugins/jpeg_extractor.c0000644000175000017500000001025612255661533016450 00000000000000/* This file is part of libextractor. (C) 2002, 2003, 2004, 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/jpeg_extractor.c * @brief plugin to support JPEG files * @author Christian Grothoff */ #include "platform.h" #include "extractor.h" #if WINDOWS #define HAVE_BOOLEAN #endif #include #include /** * Context for custom functions. */ struct Context { /** * Environment for longjmp from within error_exit handler. */ jmp_buf env; }; /** * Function used to avoid having libjpeg write error messages to the console. */ static void no_emit (j_common_ptr cinfo, int msg_level) { /* do nothing */ } /** * Function used to avoid having libjpeg write error messages to the console. */ static void no_output (j_common_ptr cinfo) { /* do nothing */ } /** * Function used to avoid having libjpeg kill our process. */ static void no_exit (j_common_ptr cinfo) { struct Context *ctx = cinfo->client_data; /* we're not allowed to return (by API definition), and we don't want to abort/exit. So we longjmp to our cleanup code instead. */ longjmp (ctx->env, 1); } /** * Main entry method for the 'image/jpeg' extraction plugin. * * @param ec extraction context provided to the plugin */ void EXTRACTOR_jpeg_extract_method (struct EXTRACTOR_ExtractContext *ec) { struct jpeg_decompress_struct jds; struct jpeg_error_mgr em; void *buf; ssize_t size; int is_jpeg; unsigned int rounds; char format[128]; struct jpeg_marker_struct *mptr; struct Context ctx; is_jpeg = 0; rounds = 0; /* used to avoid going on forever for non-jpeg files */ jpeg_std_error (&em); em.emit_message = &no_emit; em.output_message = &no_output; em.error_exit = &no_exit; jds.client_data = &ctx; if (1 == setjmp (ctx.env)) goto EXIT; /* we get here if libjpeg calls 'no_exit' because it wants to die */ jds.err = &em; jpeg_create_decompress (&jds); jpeg_save_markers (&jds, JPEG_COM, 1024 * 8); while ( (1 == is_jpeg) || (rounds++ < 8) ) { if (-1 == (size = ec->read (ec->cls, &buf, 16 * 1024))) break; if (0 == size) break; jpeg_mem_src (&jds, buf, size); if (0 == is_jpeg) { if (JPEG_HEADER_OK == jpeg_read_header (&jds, 1)) is_jpeg = 1; /* ok, really a jpeg, keep going until the end */ continue; } jpeg_consume_input (&jds); } if (1 != is_jpeg) goto EXIT; if (0 != ec->proc (ec->cls, "jpeg", EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "image/jpeg", strlen ("image/jpeg") + 1)) goto EXIT; snprintf (format, sizeof (format), "%ux%u", (unsigned int) jds.image_width, (unsigned int) jds.image_height); if (0 != ec->proc (ec->cls, "jpeg", EXTRACTOR_METATYPE_IMAGE_DIMENSIONS, EXTRACTOR_METAFORMAT_UTF8, "text/plain", format, strlen (format) + 1)) goto EXIT; for (mptr = jds.marker_list; NULL != mptr; mptr = mptr->next) { size_t off; if (JPEG_COM != mptr->marker) continue; off = 0; while ( (off < mptr->data_length) && (isspace ((int) ((const char *)mptr->data)[mptr->data_length - 1 - off])) ) off++; if (0 != ec->proc (ec->cls, "jpeg", EXTRACTOR_METATYPE_COMMENT, EXTRACTOR_METAFORMAT_C_STRING, "text/plain", (const char *) mptr->data, mptr->data_length - off)) goto EXIT; } EXIT: jpeg_destroy_decompress (&jds); } /* end of jpeg_extractor.c */ libextractor-1.3/src/plugins/test_wav.c0000644000175000017500000000422112016742777015264 00000000000000/* This file is part of libextractor. (C) 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/test_wav.c * @brief testcase for ogg plugin * @author Christian Grothoff */ #include "platform.h" #include "test_lib.h" /** * Main function for the WAV testcase. * * @param argc number of arguments (ignored) * @param argv arguments (ignored) * @return 0 on success */ int main (int argc, char *argv[]) { struct SolutionData wav_noise_sol[] = { { EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "audio/x-wav", strlen ("audio/x-wav") + 1, 0 }, { EXTRACTOR_METATYPE_RESOURCE_TYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "1000 ms, 48000 Hz, mono", strlen ("1000 ms, 48000 Hz, mono") + 1, 0 }, { 0, 0, NULL, NULL, 0, -1 } }; struct SolutionData wav_alert_sol[] = { { EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "audio/x-wav", strlen ("audio/x-wav") + 1, 0 }, { EXTRACTOR_METATYPE_RESOURCE_TYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "525 ms, 22050 Hz, mono", strlen ("525 ms, 22050 Hz, mono") + 1, 0 }, { 0, 0, NULL, NULL, 0, -1 } }; struct ProblemSet ps[] = { { "testdata/wav_noise.wav", wav_noise_sol }, { "testdata/wav_alert.wav", wav_alert_sol }, { NULL, NULL } }; return ET_main ("wav", ps); } /* end of test_wav.c */ libextractor-1.3/src/plugins/s3m_extractor.c0000644000175000017500000000676212016742766016237 00000000000000/* This file is part of libextractor. (C) 2002, 2003, 2004, 2009, 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/s3m_extractor.c * @brief plugin to support Scream Tracker (S3M) files * @author Toni Ruottu * @author Christian Grothoff */ #include "platform.h" #include "extractor.h" #include "le_architecture.h" LE_NETWORK_STRUCT_BEGIN struct S3MHeader { char song_name[28]; uint8_t byte_1A; uint8_t file_type; /* 0x10 == ST3 module */ uint8_t unknown1[2]; uint16_t number_of_orders LE_PACKED; /* should be even */ uint16_t number_of_instruments LE_PACKED; uint16_t number_of_patterns LE_PACKED; uint16_t flags LE_PACKED; uint16_t created_with_version LE_PACKED; uint16_t file_format_info LE_PACKED; char SCRM[4]; uint8_t global_volume; uint8_t initial_speed; uint8_t initial_tempo; uint8_t master_volume; uint8_t ultra_click_removal; uint8_t default_channel_positions; uint8_t unknown2[8]; uint16_t special LE_PACKED; uint8_t channel_settings[32]; }; LE_NETWORK_STRUCT_END /** * Give meta data to LE 'proc' callback using the given LE type and value. * * @param t LE meta data type * @param s meta data to add */ #define ADD(s, t) do { if (0 != ec->proc (ec->cls, "s3m", t, EXTRACTOR_METAFORMAT_UTF8, "text/plain", s, strlen (s) + 1)) return; } while (0) /** * Extractor based upon Scream Tracker 3.20 spec at http://16-bits.org/s3m/ * * Looks like the format was defined by the software implementation, * and that implementation was for little-endian platform, which means * that the format is little-endian. * * @param ec extraction context */ void EXTRACTOR_s3m_extract_method (struct EXTRACTOR_ExtractContext *ec) { void *data; struct S3MHeader header; char song_name_NT[29]; if (sizeof (header) > ec->read (ec->cls, &data, sizeof (header))) return; memcpy (&header, data, sizeof (header)); if ( (0x1A != header.byte_1A) || (0 != memcmp (header.SCRM, "SCRM", 4)) ) return; header.number_of_orders = LE_le16toh (header.number_of_orders); header.number_of_instruments = LE_le16toh (header.number_of_instruments); header.number_of_patterns = LE_le16toh (header.number_of_patterns); header.flags = LE_le16toh (header.flags); header.created_with_version = LE_le16toh (header.created_with_version); header.file_format_info = LE_le16toh (header.file_format_info); header.special = LE_le16toh (header.special); memcpy (song_name_NT, header.song_name, 28); song_name_NT[28] = '\0'; ADD ("audio/x-s3m", EXTRACTOR_METATYPE_MIMETYPE); ADD (song_name_NT, EXTRACTOR_METATYPE_TITLE); /* TODO: turn other header data into useful metadata (i.e. RESOURCE_TYPE). * Also, disabled instruments can be (and are) used to carry user-defined text. */ } /* end of s3m_extractor.c */ libextractor-1.3/src/plugins/test_dvi.c0000644000175000017500000000631412016742777015256 00000000000000/* This file is part of libextractor. (C) 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/test_dvi.c * @brief testcase for dvi plugin * @author Christian Grothoff */ #include "platform.h" #include "test_lib.h" /** * Main function for the DVI testcase. * * @param argc number of arguments (ignored) * @param argv arguments (ignored) * @return 0 on success */ int main (int argc, char *argv[]) { struct SolutionData dvi_ora_sol[] = { { EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "application/x-dvi", strlen ("application/x-dvi") + 1, 0 }, { EXTRACTOR_METATYPE_PAGE_COUNT, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "10", strlen ("10") + 1, 0 }, { EXTRACTOR_METATYPE_TITLE, EXTRACTOR_METAFORMAT_C_STRING, "text/plain", "Optimal Bitwise Register Allocation using Integer Linear Programming", strlen ("Optimal Bitwise Register Allocation using Integer Linear Programming") + 1, 0 }, { EXTRACTOR_METATYPE_SUBJECT, EXTRACTOR_METAFORMAT_C_STRING, "text/plain", "Register Allocation", strlen ("Register Allocation") + 1, 0 }, { EXTRACTOR_METATYPE_COMMENT, EXTRACTOR_METAFORMAT_C_STRING, "text/plain", " TeX output 2005.02.06:0725", strlen (" TeX output 2005.02.06:0725") + 1, 0 }, { EXTRACTOR_METATYPE_CREATED_BY_SOFTWARE, EXTRACTOR_METAFORMAT_C_STRING, "text/plain", "LaTeX with hyperref package", strlen ("LaTeX with hyperref package") + 1, 0 }, { EXTRACTOR_METATYPE_AUTHOR_NAME, EXTRACTOR_METAFORMAT_C_STRING, "text/plain", "Rajkishore Barik and Christian Grothoff and Rahul Gupta and Vinayaka Pandit and Raghavendra Udupa", strlen ("Rajkishore Barik and Christian Grothoff and Rahul Gupta and Vinayaka Pandit and Raghavendra Udupa") + 1, 0 }, { EXTRACTOR_METATYPE_PRODUCED_BY_SOFTWARE, EXTRACTOR_METAFORMAT_C_STRING, "text/plain", "dvips + Distiller", strlen ("dvips + Distiller") + 1, 0 }, { EXTRACTOR_METATYPE_KEYWORDS, EXTRACTOR_METAFORMAT_C_STRING, "text/plain", "register allocation integer linear programming bit-wise spilling coalesing rematerialization", strlen ("register allocation integer linear programming bit-wise spilling coalesing rematerialization") + 1, 0 }, { 0, 0, NULL, NULL, 0, -1 } }; struct ProblemSet ps[] = { { "testdata/dvi_ora.dvi", dvi_ora_sol }, { NULL, NULL } }; return ET_main ("dvi", ps); } /* end of test_dvi.c */ libextractor-1.3/src/plugins/test_xm.c0000644000175000017500000000370612016742777015122 00000000000000/* This file is part of libextractor. (C) 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/test_xm.c * @brief testcase for xm plugin * @author Christian Grothoff */ #include "platform.h" #include "test_lib.h" /** * Main function for the XM testcase. * * @param argc number of arguments (ignored) * @param argv arguments (ignored) * @return 0 on success */ int main (int argc, char *argv[]) { struct SolutionData xm_diesel_sol[] = { { EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "audio/x-xm", strlen ("audio/x-xm") + 1, 0 }, { EXTRACTOR_METATYPE_FORMAT_VERSION, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "1.4", strlen ("1.4") + 1, 0 }, { EXTRACTOR_METATYPE_TITLE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "diesel", strlen ("diesel") + 1, 0 }, { EXTRACTOR_METATYPE_CREATED_BY_SOFTWARE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "FastTracker v2.00", strlen ("FastTracker v2.00") + 1, 0 }, { 0, 0, NULL, NULL, 0, -1 } }; struct ProblemSet ps[] = { { "testdata/xm_diesel.xm", xm_diesel_sol }, { NULL, NULL } }; return ET_main ("xm", ps); } /* end of test_xm.c */ libextractor-1.3/src/plugins/test_mpeg.c0000644000175000017500000000476312007721025015411 00000000000000/* This file is part of libextractor. (C) 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/test_mpeg.c * @brief testcase for mpeg plugin * @author Christian Grothoff */ #include "platform.h" #include "test_lib.h" /** * Main function for the MPEG testcase. * * @param argc number of arguments (ignored) * @param argv arguments (ignored) * @return 0 on success */ int main (int argc, char *argv[]) { struct SolutionData melt_sol[] = { { EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "video/mpeg", strlen ("video/mpeg") + 1, 0 }, { EXTRACTOR_METATYPE_IMAGE_DIMENSIONS, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "320x208", strlen ("320x208") + 1, 0 }, { EXTRACTOR_METATYPE_FORMAT_VERSION, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "MPEG1", strlen ("MPEG1") + 1, 0 }, { EXTRACTOR_METATYPE_DURATION, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "00:00:03 (22 frames)", strlen ("00:00:03 (22 frames)") + 1, 0 }, { 0, 0, NULL, NULL, 0, -1 } }; struct SolutionData alien_sol[] = { { EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "video/mpeg", strlen ("video/mpeg") + 1, 0 }, { EXTRACTOR_METATYPE_IMAGE_DIMENSIONS, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "320x240", strlen ("320x240") + 1, 0 }, { EXTRACTOR_METATYPE_FORMAT_VERSION, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "MPEG1", strlen ("MPEG1") + 1, 0 }, { 0, 0, NULL, NULL, 0, -1 } }; struct ProblemSet ps[] = { { "testdata/mpeg_melt.mpg", melt_sol }, { "testdata/mpeg_alien.mpg", alien_sol }, { NULL, NULL } }; return ET_main ("mpeg", ps); } /* end of test_mpeg.c */ libextractor-1.3/src/plugins/Makefile.in0000644000175000017500000030241512256015520015320 00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ check_PROGRAMS = test_dvi$(EXEEXT) test_it$(EXEEXT) test_man$(EXEEXT) \ test_nsf$(EXEEXT) test_nsfe$(EXEEXT) test_odf$(EXEEXT) \ test_ps$(EXEEXT) test_png$(EXEEXT) test_riff$(EXEEXT) \ test_s3m$(EXEEXT) test_sid$(EXEEXT) test_wav$(EXEEXT) \ test_xm$(EXEEXT) test_zip$(EXEEXT) $(am__EXEEXT_1) \ $(am__EXEEXT_2) $(am__EXEEXT_3) $(am__EXEEXT_4) \ $(am__EXEEXT_5) $(am__EXEEXT_6) $(am__EXEEXT_7) \ $(am__EXEEXT_8) $(am__EXEEXT_9) $(am__EXEEXT_10) \ $(am__EXEEXT_11) $(am__EXEEXT_12) $(am__EXEEXT_13) \ $(am__EXEEXT_14) $(am__EXEEXT_15) $(am__EXEEXT_16) \ $(am__EXEEXT_17) $(am__EXEEXT_18) subdir = src/plugins DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/abi-gsf.m4 \ $(top_srcdir)/m4/ac_define_dir.m4 \ $(top_srcdir)/m4/ax_create_pkgconfig_info.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glib-2.0.m4 \ $(top_srcdir)/m4/gtk-2.0.m4 $(top_srcdir)/m4/gtk-3.0.m4 \ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(plugindir)" LTLIBRARIES = $(noinst_LTLIBRARIES) $(plugin_LTLIBRARIES) am__DEPENDENCIES_1 = libextractor_archive_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_libextractor_archive_la_OBJECTS = archive_extractor.lo libextractor_archive_la_OBJECTS = \ $(am_libextractor_archive_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libextractor_archive_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(libextractor_archive_la_LDFLAGS) \ $(LDFLAGS) -o $@ @HAVE_ARCHIVE_TRUE@am_libextractor_archive_la_rpath = -rpath \ @HAVE_ARCHIVE_TRUE@ $(plugindir) libextractor_deb_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_libextractor_deb_la_OBJECTS = deb_extractor.lo libextractor_deb_la_OBJECTS = $(am_libextractor_deb_la_OBJECTS) libextractor_deb_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(libextractor_deb_la_LDFLAGS) \ $(LDFLAGS) -o $@ @HAVE_ZLIB_TRUE@am_libextractor_deb_la_rpath = -rpath $(plugindir) libextractor_dvi_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) am_libextractor_dvi_la_OBJECTS = dvi_extractor.lo libextractor_dvi_la_OBJECTS = $(am_libextractor_dvi_la_OBJECTS) libextractor_dvi_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(libextractor_dvi_la_LDFLAGS) \ $(LDFLAGS) -o $@ libextractor_exiv2_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_libextractor_exiv2_la_OBJECTS = exiv2_extractor.lo libextractor_exiv2_la_OBJECTS = $(am_libextractor_exiv2_la_OBJECTS) libextractor_exiv2_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \ $(AM_CXXFLAGS) $(CXXFLAGS) $(libextractor_exiv2_la_LDFLAGS) \ $(LDFLAGS) -o $@ @HAVE_EXIV2_TRUE@am_libextractor_exiv2_la_rpath = -rpath $(plugindir) libextractor_flac_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) am_libextractor_flac_la_OBJECTS = flac_extractor.lo libextractor_flac_la_OBJECTS = $(am_libextractor_flac_la_OBJECTS) libextractor_flac_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(libextractor_flac_la_LDFLAGS) \ $(LDFLAGS) -o $@ @HAVE_FLAC_TRUE@am_libextractor_flac_la_rpath = -rpath $(plugindir) libextractor_gif_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_libextractor_gif_la_OBJECTS = gif_extractor.lo libextractor_gif_la_OBJECTS = $(am_libextractor_gif_la_OBJECTS) libextractor_gif_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(libextractor_gif_la_LDFLAGS) \ $(LDFLAGS) -o $@ @HAVE_GIF_TRUE@am_libextractor_gif_la_rpath = -rpath $(plugindir) libextractor_gstreamer_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am_libextractor_gstreamer_la_OBJECTS = \ libextractor_gstreamer_la-gstreamer_extractor.lo libextractor_gstreamer_la_OBJECTS = \ $(am_libextractor_gstreamer_la_OBJECTS) libextractor_gstreamer_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libextractor_gstreamer_la_CFLAGS) $(CFLAGS) \ $(libextractor_gstreamer_la_LDFLAGS) $(LDFLAGS) -o $@ @HAVE_GSTREAMER_TRUE@am_libextractor_gstreamer_la_rpath = -rpath \ @HAVE_GSTREAMER_TRUE@ $(plugindir) libextractor_html_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_libextractor_html_la_OBJECTS = html_extractor.lo libextractor_html_la_OBJECTS = $(am_libextractor_html_la_OBJECTS) libextractor_html_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(libextractor_html_la_LDFLAGS) \ $(LDFLAGS) -o $@ @HAVE_MAGIC_TRUE@@HAVE_TIDY_TRUE@am_libextractor_html_la_rpath = \ @HAVE_MAGIC_TRUE@@HAVE_TIDY_TRUE@ -rpath $(plugindir) libextractor_it_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_libextractor_it_la_OBJECTS = it_extractor.lo libextractor_it_la_OBJECTS = $(am_libextractor_it_la_OBJECTS) libextractor_it_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(libextractor_it_la_LDFLAGS) \ $(LDFLAGS) -o $@ libextractor_jpeg_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_libextractor_jpeg_la_OBJECTS = jpeg_extractor.lo libextractor_jpeg_la_OBJECTS = $(am_libextractor_jpeg_la_OBJECTS) libextractor_jpeg_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(libextractor_jpeg_la_LDFLAGS) \ $(LDFLAGS) -o $@ @HAVE_JPEG_TRUE@am_libextractor_jpeg_la_rpath = -rpath $(plugindir) libextractor_man_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) am_libextractor_man_la_OBJECTS = man_extractor.lo libextractor_man_la_OBJECTS = $(am_libextractor_man_la_OBJECTS) libextractor_man_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(libextractor_man_la_LDFLAGS) \ $(LDFLAGS) -o $@ libextractor_midi_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_libextractor_midi_la_OBJECTS = \ libextractor_midi_la-midi_extractor.lo libextractor_midi_la_OBJECTS = $(am_libextractor_midi_la_OBJECTS) libextractor_midi_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libextractor_midi_la_CFLAGS) $(CFLAGS) \ $(libextractor_midi_la_LDFLAGS) $(LDFLAGS) -o $@ @HAVE_SMF_TRUE@am_libextractor_midi_la_rpath = -rpath $(plugindir) libextractor_mime_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_libextractor_mime_la_OBJECTS = mime_extractor.lo libextractor_mime_la_OBJECTS = $(am_libextractor_mime_la_OBJECTS) libextractor_mime_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(libextractor_mime_la_LDFLAGS) \ $(LDFLAGS) -o $@ @HAVE_MAGIC_TRUE@am_libextractor_mime_la_rpath = -rpath $(plugindir) libextractor_mp4_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_libextractor_mp4_la_OBJECTS = mp4_extractor.lo libextractor_mp4_la_OBJECTS = $(am_libextractor_mp4_la_OBJECTS) libextractor_mp4_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(libextractor_mp4_la_LDFLAGS) \ $(LDFLAGS) -o $@ @HAVE_EXPERIMENTAL_TRUE@@HAVE_MP4_TRUE@am_libextractor_mp4_la_rpath = \ @HAVE_EXPERIMENTAL_TRUE@@HAVE_MP4_TRUE@ -rpath $(plugindir) libextractor_mpeg_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_libextractor_mpeg_la_OBJECTS = mpeg_extractor.lo libextractor_mpeg_la_OBJECTS = $(am_libextractor_mpeg_la_OBJECTS) libextractor_mpeg_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(libextractor_mpeg_la_LDFLAGS) \ $(LDFLAGS) -o $@ @HAVE_MPEG2_TRUE@am_libextractor_mpeg_la_rpath = -rpath $(plugindir) libextractor_nsf_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_libextractor_nsf_la_OBJECTS = nsf_extractor.lo libextractor_nsf_la_OBJECTS = $(am_libextractor_nsf_la_OBJECTS) libextractor_nsf_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(libextractor_nsf_la_LDFLAGS) \ $(LDFLAGS) -o $@ libextractor_nsfe_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_libextractor_nsfe_la_OBJECTS = nsfe_extractor.lo libextractor_nsfe_la_OBJECTS = $(am_libextractor_nsfe_la_OBJECTS) libextractor_nsfe_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(libextractor_nsfe_la_LDFLAGS) \ $(LDFLAGS) -o $@ libextractor_odf_la_DEPENDENCIES = \ $(top_builddir)/src/common/libextractor_common.la \ $(am__DEPENDENCIES_1) am_libextractor_odf_la_OBJECTS = odf_extractor.lo libextractor_odf_la_OBJECTS = $(am_libextractor_odf_la_OBJECTS) libextractor_odf_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(libextractor_odf_la_LDFLAGS) \ $(LDFLAGS) -o $@ @HAVE_ZLIB_TRUE@am_libextractor_odf_la_rpath = -rpath $(plugindir) libextractor_ogg_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_libextractor_ogg_la_OBJECTS = ogg_extractor.lo libextractor_ogg_la_OBJECTS = $(am_libextractor_ogg_la_OBJECTS) libextractor_ogg_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(libextractor_ogg_la_LDFLAGS) \ $(LDFLAGS) -o $@ @HAVE_VORBISFILE_TRUE@am_libextractor_ogg_la_rpath = -rpath \ @HAVE_VORBISFILE_TRUE@ $(plugindir) libextractor_ole2_la_DEPENDENCIES = \ $(top_builddir)/src/common/libextractor_common.la \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) am_libextractor_ole2_la_OBJECTS = \ libextractor_ole2_la-ole2_extractor.lo libextractor_ole2_la_OBJECTS = $(am_libextractor_ole2_la_OBJECTS) libextractor_ole2_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libextractor_ole2_la_CFLAGS) $(CFLAGS) \ $(libextractor_ole2_la_LDFLAGS) $(LDFLAGS) -o $@ @HAVE_GSF_TRUE@am_libextractor_ole2_la_rpath = -rpath $(plugindir) libextractor_png_la_DEPENDENCIES = \ $(top_builddir)/src/common/libextractor_common.la \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am_libextractor_png_la_OBJECTS = png_extractor.lo libextractor_png_la_OBJECTS = $(am_libextractor_png_la_OBJECTS) libextractor_png_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(libextractor_png_la_LDFLAGS) \ $(LDFLAGS) -o $@ @HAVE_ZLIB_TRUE@am_libextractor_png_la_rpath = -rpath $(plugindir) libextractor_previewopus_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_libextractor_previewopus_la_OBJECTS = previewopus_extractor.lo libextractor_previewopus_la_OBJECTS = \ $(am_libextractor_previewopus_la_OBJECTS) libextractor_previewopus_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(libextractor_previewopus_la_LDFLAGS) \ $(LDFLAGS) -o $@ @HAVE_FFMPEG_NEW_TRUE@@HAVE_MAGIC_TRUE@am_libextractor_previewopus_la_rpath = \ @HAVE_FFMPEG_NEW_TRUE@@HAVE_MAGIC_TRUE@ -rpath $(plugindir) libextractor_ps_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_libextractor_ps_la_OBJECTS = ps_extractor.lo libextractor_ps_la_OBJECTS = $(am_libextractor_ps_la_OBJECTS) libextractor_ps_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(libextractor_ps_la_LDFLAGS) \ $(LDFLAGS) -o $@ libextractor_riff_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) am_libextractor_riff_la_OBJECTS = riff_extractor.lo libextractor_riff_la_OBJECTS = $(am_libextractor_riff_la_OBJECTS) libextractor_riff_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(libextractor_riff_la_LDFLAGS) \ $(LDFLAGS) -o $@ libextractor_rpm_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_libextractor_rpm_la_OBJECTS = rpm_extractor.lo libextractor_rpm_la_OBJECTS = $(am_libextractor_rpm_la_OBJECTS) libextractor_rpm_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(libextractor_rpm_la_LDFLAGS) \ $(LDFLAGS) -o $@ @HAVE_LIBRPM_TRUE@am_libextractor_rpm_la_rpath = -rpath $(plugindir) libextractor_s3m_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_libextractor_s3m_la_OBJECTS = s3m_extractor.lo libextractor_s3m_la_OBJECTS = $(am_libextractor_s3m_la_OBJECTS) libextractor_s3m_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(libextractor_s3m_la_LDFLAGS) \ $(LDFLAGS) -o $@ libextractor_sid_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_libextractor_sid_la_OBJECTS = sid_extractor.lo libextractor_sid_la_OBJECTS = $(am_libextractor_sid_la_OBJECTS) libextractor_sid_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(libextractor_sid_la_LDFLAGS) \ $(LDFLAGS) -o $@ libextractor_thumbnailffmpeg_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_libextractor_thumbnailffmpeg_la_OBJECTS = \ thumbnailffmpeg_extractor.lo libextractor_thumbnailffmpeg_la_OBJECTS = \ $(am_libextractor_thumbnailffmpeg_la_OBJECTS) libextractor_thumbnailffmpeg_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) \ $(libextractor_thumbnailffmpeg_la_LDFLAGS) $(LDFLAGS) -o $@ @HAVE_FFMPEG_TRUE@@HAVE_MAGIC_TRUE@am_libextractor_thumbnailffmpeg_la_rpath = \ @HAVE_FFMPEG_TRUE@@HAVE_MAGIC_TRUE@ -rpath $(plugindir) libextractor_thumbnailgtk_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) am_libextractor_thumbnailgtk_la_OBJECTS = \ libextractor_thumbnailgtk_la-thumbnailgtk_extractor.lo libextractor_thumbnailgtk_la_OBJECTS = \ $(am_libextractor_thumbnailgtk_la_OBJECTS) libextractor_thumbnailgtk_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(libextractor_thumbnailgtk_la_CFLAGS) $(CFLAGS) \ $(libextractor_thumbnailgtk_la_LDFLAGS) $(LDFLAGS) -o $@ @HAVE_GTK_TRUE@@HAVE_MAGIC_TRUE@am_libextractor_thumbnailgtk_la_rpath = \ @HAVE_GTK_TRUE@@HAVE_MAGIC_TRUE@ -rpath $(plugindir) libextractor_tiff_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_libextractor_tiff_la_OBJECTS = tiff_extractor.lo libextractor_tiff_la_OBJECTS = $(am_libextractor_tiff_la_OBJECTS) libextractor_tiff_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(libextractor_tiff_la_LDFLAGS) \ $(LDFLAGS) -o $@ @HAVE_TIFF_TRUE@am_libextractor_tiff_la_rpath = -rpath $(plugindir) libextractor_wav_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) am_libextractor_wav_la_OBJECTS = wav_extractor.lo libextractor_wav_la_OBJECTS = $(am_libextractor_wav_la_OBJECTS) libextractor_wav_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(libextractor_wav_la_LDFLAGS) \ $(LDFLAGS) -o $@ libextractor_xm_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am_libextractor_xm_la_OBJECTS = xm_extractor.lo libextractor_xm_la_OBJECTS = $(am_libextractor_xm_la_OBJECTS) libextractor_xm_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(libextractor_xm_la_LDFLAGS) \ $(LDFLAGS) -o $@ libextractor_zip_la_DEPENDENCIES = \ $(top_builddir)/src/common/libextractor_common.la \ $(am__DEPENDENCIES_1) am_libextractor_zip_la_OBJECTS = zip_extractor.lo libextractor_zip_la_OBJECTS = $(am_libextractor_zip_la_OBJECTS) libextractor_zip_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(libextractor_zip_la_LDFLAGS) \ $(LDFLAGS) -o $@ @HAVE_ZLIB_TRUE@am_libextractor_zip_la_rpath = -rpath $(plugindir) libtest_la_DEPENDENCIES = $(top_builddir)/src/main/libextractor.la \ $(am__DEPENDENCIES_1) am_libtest_la_OBJECTS = test_lib.lo libtest_la_OBJECTS = $(am_libtest_la_OBJECTS) @HAVE_ARCHIVE_TRUE@am__EXEEXT_1 = test_archive$(EXEEXT) @HAVE_EXIV2_TRUE@am__EXEEXT_2 = test_exiv2$(EXEEXT) @HAVE_FFMPEG_TRUE@@HAVE_MAGIC_TRUE@am__EXEEXT_3 = test_thumbnailffmpeg$(EXEEXT) @HAVE_FFMPEG_NEW_TRUE@@HAVE_MAGIC_TRUE@am__EXEEXT_4 = test_previewopus$(EXEEXT) @HAVE_FLAC_TRUE@am__EXEEXT_5 = test_flac$(EXEEXT) @HAVE_GIF_TRUE@am__EXEEXT_6 = test_gif$(EXEEXT) @HAVE_GSF_TRUE@am__EXEEXT_7 = test_ole2$(EXEEXT) @HAVE_GSTREAMER_TRUE@am__EXEEXT_8 = test_gstreamer$(EXEEXT) @HAVE_GTK_TRUE@@HAVE_MAGIC_TRUE@am__EXEEXT_9 = \ @HAVE_GTK_TRUE@@HAVE_MAGIC_TRUE@ test_thumbnailgtk$(EXEEXT) @HAVE_MAGIC_TRUE@@HAVE_TIDY_TRUE@am__EXEEXT_10 = test_html$(EXEEXT) @HAVE_JPEG_TRUE@am__EXEEXT_11 = test_jpeg$(EXEEXT) @HAVE_SMF_TRUE@am__EXEEXT_12 = test_midi$(EXEEXT) @HAVE_MAGIC_TRUE@am__EXEEXT_13 = test_mime$(EXEEXT) @HAVE_MPEG2_TRUE@am__EXEEXT_14 = test_mpeg$(EXEEXT) @HAVE_VORBISFILE_TRUE@am__EXEEXT_15 = test_ogg$(EXEEXT) @HAVE_LIBRPM_TRUE@am__EXEEXT_16 = test_rpm$(EXEEXT) @HAVE_TIFF_TRUE@am__EXEEXT_17 = test_tiff$(EXEEXT) @HAVE_ZLIB_TRUE@am__EXEEXT_18 = test_deb$(EXEEXT) am_test_archive_OBJECTS = test_archive.$(OBJEXT) test_archive_OBJECTS = $(am_test_archive_OBJECTS) test_archive_DEPENDENCIES = $(top_builddir)/src/plugins/libtest.la am_test_deb_OBJECTS = test_deb.$(OBJEXT) test_deb_OBJECTS = $(am_test_deb_OBJECTS) test_deb_DEPENDENCIES = $(top_builddir)/src/plugins/libtest.la am_test_dvi_OBJECTS = test_dvi.$(OBJEXT) test_dvi_OBJECTS = $(am_test_dvi_OBJECTS) test_dvi_DEPENDENCIES = $(top_builddir)/src/plugins/libtest.la am_test_exiv2_OBJECTS = test_exiv2.$(OBJEXT) test_exiv2_OBJECTS = $(am_test_exiv2_OBJECTS) test_exiv2_DEPENDENCIES = $(top_builddir)/src/plugins/libtest.la am_test_flac_OBJECTS = test_flac.$(OBJEXT) test_flac_OBJECTS = $(am_test_flac_OBJECTS) test_flac_DEPENDENCIES = $(top_builddir)/src/plugins/libtest.la am_test_gif_OBJECTS = test_gif.$(OBJEXT) test_gif_OBJECTS = $(am_test_gif_OBJECTS) test_gif_DEPENDENCIES = $(top_builddir)/src/plugins/libtest.la am_test_gstreamer_OBJECTS = test_gstreamer-test_gstreamer.$(OBJEXT) test_gstreamer_OBJECTS = $(am_test_gstreamer_OBJECTS) test_gstreamer_DEPENDENCIES = $(top_builddir)/src/plugins/libtest.la \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) test_gstreamer_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(test_gstreamer_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o \ $@ am_test_html_OBJECTS = test_html.$(OBJEXT) test_html_OBJECTS = $(am_test_html_OBJECTS) test_html_DEPENDENCIES = $(top_builddir)/src/plugins/libtest.la am_test_it_OBJECTS = test_it.$(OBJEXT) test_it_OBJECTS = $(am_test_it_OBJECTS) test_it_DEPENDENCIES = $(top_builddir)/src/plugins/libtest.la am_test_jpeg_OBJECTS = test_jpeg.$(OBJEXT) test_jpeg_OBJECTS = $(am_test_jpeg_OBJECTS) test_jpeg_DEPENDENCIES = $(top_builddir)/src/plugins/libtest.la am_test_man_OBJECTS = test_man.$(OBJEXT) test_man_OBJECTS = $(am_test_man_OBJECTS) test_man_DEPENDENCIES = $(top_builddir)/src/plugins/libtest.la \ $(am__DEPENDENCIES_1) am_test_midi_OBJECTS = test_midi.$(OBJEXT) test_midi_OBJECTS = $(am_test_midi_OBJECTS) test_midi_DEPENDENCIES = $(top_builddir)/src/plugins/libtest.la am_test_mime_OBJECTS = test_mime.$(OBJEXT) test_mime_OBJECTS = $(am_test_mime_OBJECTS) test_mime_DEPENDENCIES = $(top_builddir)/src/plugins/libtest.la am_test_mpeg_OBJECTS = test_mpeg.$(OBJEXT) test_mpeg_OBJECTS = $(am_test_mpeg_OBJECTS) test_mpeg_DEPENDENCIES = $(top_builddir)/src/plugins/libtest.la am_test_nsf_OBJECTS = test_nsf.$(OBJEXT) test_nsf_OBJECTS = $(am_test_nsf_OBJECTS) test_nsf_DEPENDENCIES = $(top_builddir)/src/plugins/libtest.la am_test_nsfe_OBJECTS = test_nsfe.$(OBJEXT) test_nsfe_OBJECTS = $(am_test_nsfe_OBJECTS) test_nsfe_DEPENDENCIES = $(top_builddir)/src/plugins/libtest.la am_test_odf_OBJECTS = test_odf.$(OBJEXT) test_odf_OBJECTS = $(am_test_odf_OBJECTS) test_odf_DEPENDENCIES = $(top_builddir)/src/plugins/libtest.la am_test_ogg_OBJECTS = test_ogg.$(OBJEXT) test_ogg_OBJECTS = $(am_test_ogg_OBJECTS) test_ogg_DEPENDENCIES = $(top_builddir)/src/plugins/libtest.la am_test_ole2_OBJECTS = test_ole2.$(OBJEXT) test_ole2_OBJECTS = $(am_test_ole2_OBJECTS) test_ole2_DEPENDENCIES = $(top_builddir)/src/plugins/libtest.la am_test_png_OBJECTS = test_png.$(OBJEXT) test_png_OBJECTS = $(am_test_png_OBJECTS) test_png_DEPENDENCIES = $(top_builddir)/src/plugins/libtest.la am_test_previewopus_OBJECTS = test_previewopus.$(OBJEXT) test_previewopus_OBJECTS = $(am_test_previewopus_OBJECTS) test_previewopus_DEPENDENCIES = \ $(top_builddir)/src/plugins/libtest.la am_test_ps_OBJECTS = test_ps.$(OBJEXT) test_ps_OBJECTS = $(am_test_ps_OBJECTS) test_ps_DEPENDENCIES = $(top_builddir)/src/plugins/libtest.la am_test_riff_OBJECTS = test_riff.$(OBJEXT) test_riff_OBJECTS = $(am_test_riff_OBJECTS) test_riff_DEPENDENCIES = $(top_builddir)/src/plugins/libtest.la am_test_rpm_OBJECTS = test_rpm.$(OBJEXT) test_rpm_OBJECTS = $(am_test_rpm_OBJECTS) test_rpm_DEPENDENCIES = $(top_builddir)/src/plugins/libtest.la am_test_s3m_OBJECTS = test_s3m.$(OBJEXT) test_s3m_OBJECTS = $(am_test_s3m_OBJECTS) test_s3m_DEPENDENCIES = $(top_builddir)/src/plugins/libtest.la am_test_sid_OBJECTS = test_sid.$(OBJEXT) test_sid_OBJECTS = $(am_test_sid_OBJECTS) test_sid_DEPENDENCIES = $(top_builddir)/src/plugins/libtest.la am_test_thumbnailffmpeg_OBJECTS = test_thumbnailffmpeg.$(OBJEXT) test_thumbnailffmpeg_OBJECTS = $(am_test_thumbnailffmpeg_OBJECTS) test_thumbnailffmpeg_DEPENDENCIES = \ $(top_builddir)/src/plugins/libtest.la am_test_thumbnailgtk_OBJECTS = test_thumbnailgtk.$(OBJEXT) test_thumbnailgtk_OBJECTS = $(am_test_thumbnailgtk_OBJECTS) test_thumbnailgtk_DEPENDENCIES = \ $(top_builddir)/src/plugins/libtest.la am_test_tiff_OBJECTS = test_tiff.$(OBJEXT) test_tiff_OBJECTS = $(am_test_tiff_OBJECTS) test_tiff_DEPENDENCIES = $(top_builddir)/src/plugins/libtest.la am_test_wav_OBJECTS = test_wav.$(OBJEXT) test_wav_OBJECTS = $(am_test_wav_OBJECTS) test_wav_DEPENDENCIES = $(top_builddir)/src/plugins/libtest.la am_test_xm_OBJECTS = test_xm.$(OBJEXT) test_xm_OBJECTS = $(am_test_xm_OBJECTS) test_xm_DEPENDENCIES = $(top_builddir)/src/plugins/libtest.la am_test_zip_OBJECTS = test_zip.$(OBJEXT) test_zip_OBJECTS = $(am_test_zip_OBJECTS) test_zip_DEPENDENCIES = $(top_builddir)/src/plugins/libtest.la DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CXXFLAGS) $(CXXFLAGS) AM_V_CXX = $(am__v_CXX_@AM_V@) am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@) am__v_CXX_0 = @echo " CXX " $@; CXXLD = $(CXX) CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CXXLD = $(am__v_CXXLD_@AM_V@) am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@) am__v_CXXLD_0 = @echo " CXXLD " $@; AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libextractor_archive_la_SOURCES) \ $(libextractor_deb_la_SOURCES) $(libextractor_dvi_la_SOURCES) \ $(libextractor_exiv2_la_SOURCES) \ $(libextractor_flac_la_SOURCES) $(libextractor_gif_la_SOURCES) \ $(libextractor_gstreamer_la_SOURCES) \ $(libextractor_html_la_SOURCES) $(libextractor_it_la_SOURCES) \ $(libextractor_jpeg_la_SOURCES) $(libextractor_man_la_SOURCES) \ $(libextractor_midi_la_SOURCES) \ $(libextractor_mime_la_SOURCES) $(libextractor_mp4_la_SOURCES) \ $(libextractor_mpeg_la_SOURCES) $(libextractor_nsf_la_SOURCES) \ $(libextractor_nsfe_la_SOURCES) $(libextractor_odf_la_SOURCES) \ $(libextractor_ogg_la_SOURCES) $(libextractor_ole2_la_SOURCES) \ $(libextractor_png_la_SOURCES) \ $(libextractor_previewopus_la_SOURCES) \ $(libextractor_ps_la_SOURCES) $(libextractor_riff_la_SOURCES) \ $(libextractor_rpm_la_SOURCES) $(libextractor_s3m_la_SOURCES) \ $(libextractor_sid_la_SOURCES) \ $(libextractor_thumbnailffmpeg_la_SOURCES) \ $(libextractor_thumbnailgtk_la_SOURCES) \ $(libextractor_tiff_la_SOURCES) $(libextractor_wav_la_SOURCES) \ $(libextractor_xm_la_SOURCES) $(libextractor_zip_la_SOURCES) \ $(libtest_la_SOURCES) $(test_archive_SOURCES) \ $(test_deb_SOURCES) $(test_dvi_SOURCES) $(test_exiv2_SOURCES) \ $(test_flac_SOURCES) $(test_gif_SOURCES) \ $(test_gstreamer_SOURCES) $(test_html_SOURCES) \ $(test_it_SOURCES) $(test_jpeg_SOURCES) $(test_man_SOURCES) \ $(test_midi_SOURCES) $(test_mime_SOURCES) $(test_mpeg_SOURCES) \ $(test_nsf_SOURCES) $(test_nsfe_SOURCES) $(test_odf_SOURCES) \ $(test_ogg_SOURCES) $(test_ole2_SOURCES) $(test_png_SOURCES) \ $(test_previewopus_SOURCES) $(test_ps_SOURCES) \ $(test_riff_SOURCES) $(test_rpm_SOURCES) $(test_s3m_SOURCES) \ $(test_sid_SOURCES) $(test_thumbnailffmpeg_SOURCES) \ $(test_thumbnailgtk_SOURCES) $(test_tiff_SOURCES) \ $(test_wav_SOURCES) $(test_xm_SOURCES) $(test_zip_SOURCES) DIST_SOURCES = $(libextractor_archive_la_SOURCES) \ $(libextractor_deb_la_SOURCES) $(libextractor_dvi_la_SOURCES) \ $(libextractor_exiv2_la_SOURCES) \ $(libextractor_flac_la_SOURCES) $(libextractor_gif_la_SOURCES) \ $(libextractor_gstreamer_la_SOURCES) \ $(libextractor_html_la_SOURCES) $(libextractor_it_la_SOURCES) \ $(libextractor_jpeg_la_SOURCES) $(libextractor_man_la_SOURCES) \ $(libextractor_midi_la_SOURCES) \ $(libextractor_mime_la_SOURCES) $(libextractor_mp4_la_SOURCES) \ $(libextractor_mpeg_la_SOURCES) $(libextractor_nsf_la_SOURCES) \ $(libextractor_nsfe_la_SOURCES) $(libextractor_odf_la_SOURCES) \ $(libextractor_ogg_la_SOURCES) $(libextractor_ole2_la_SOURCES) \ $(libextractor_png_la_SOURCES) \ $(libextractor_previewopus_la_SOURCES) \ $(libextractor_ps_la_SOURCES) $(libextractor_riff_la_SOURCES) \ $(libextractor_rpm_la_SOURCES) $(libextractor_s3m_la_SOURCES) \ $(libextractor_sid_la_SOURCES) \ $(libextractor_thumbnailffmpeg_la_SOURCES) \ $(libextractor_thumbnailgtk_la_SOURCES) \ $(libextractor_tiff_la_SOURCES) $(libextractor_wav_la_SOURCES) \ $(libextractor_xm_la_SOURCES) $(libextractor_zip_la_SOURCES) \ $(libtest_la_SOURCES) $(test_archive_SOURCES) \ $(test_deb_SOURCES) $(test_dvi_SOURCES) $(test_exiv2_SOURCES) \ $(test_flac_SOURCES) $(test_gif_SOURCES) \ $(test_gstreamer_SOURCES) $(test_html_SOURCES) \ $(test_it_SOURCES) $(test_jpeg_SOURCES) $(test_man_SOURCES) \ $(test_midi_SOURCES) $(test_mime_SOURCES) $(test_mpeg_SOURCES) \ $(test_nsf_SOURCES) $(test_nsfe_SOURCES) $(test_odf_SOURCES) \ $(test_ogg_SOURCES) $(test_ole2_SOURCES) $(test_png_SOURCES) \ $(test_previewopus_SOURCES) $(test_ps_SOURCES) \ $(test_riff_SOURCES) $(test_rpm_SOURCES) $(test_s3m_SOURCES) \ $(test_sid_SOURCES) $(test_thumbnailffmpeg_SOURCES) \ $(test_thumbnailgtk_SOURCES) $(test_tiff_SOURCES) \ $(test_wav_SOURCES) $(test_xm_SOURCES) $(test_zip_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags am__tty_colors = \ red=; grn=; lgn=; blu=; std= DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ GLIB_LIBS = @GLIB_LIBS@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GOBJECT_QUERY = @GOBJECT_QUERY@ GREP = @GREP@ GSF_CFLAGS = @GSF_CFLAGS@ GSF_GNOME_CFLAGS = @GSF_GNOME_CFLAGS@ GSF_GNOME_LIBS = @GSF_GNOME_LIBS@ GSF_LIBS = @GSF_LIBS@ GSTREAMER_APP_CFLAGS = @GSTREAMER_APP_CFLAGS@ GSTREAMER_APP_LIBS = @GSTREAMER_APP_LIBS@ GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@ GSTREAMER_LIBS = @GSTREAMER_LIBS@ GSTREAMER_PBUTILS_CFLAGS = @GSTREAMER_PBUTILS_CFLAGS@ GSTREAMER_PBUTILS_LIBS = @GSTREAMER_PBUTILS_LIBS@ GSTREAMER_TAG_CFLAGS = @GSTREAMER_TAG_CFLAGS@ GSTREAMER_TAG_LIBS = @GSTREAMER_TAG_LIBS@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ HAVE_CXX = @HAVE_CXX@ HAVE_ZZUF = @HAVE_ZZUF@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ ISOLOCALEDIR = @ISOLOCALEDIR@ LD = @LD@ LDFLAGS = @LDFLAGS@ LE_INTLINCL = @LE_INTLINCL@ LE_LIBINTL = @LE_LIBINTL@ LE_LIB_LDFLAGS = @LE_LIB_LDFLAGS@ LE_LIB_LIBS = @LE_LIB_LIBS@ LE_PLUGIN_LDFLAGS = @LE_PLUGIN_LDFLAGS@ LIBEXT = @LIBEXT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIB_VERSION_AGE = @LIB_VERSION_AGE@ LIB_VERSION_CURRENT = @LIB_VERSION_CURRENT@ LIB_VERSION_REVISION = @LIB_VERSION_REVISION@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALEDIR = @LOCALEDIR@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACKAGE_VERSION_NOALPHA = @PACKAGE_VERSION_NOALPHA@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ POSUB = @POSUB@ QT_CPPFLAGS = @QT_CPPFLAGS@ QT_LDFLAGS = @QT_LDFLAGS@ RANLIB = @RANLIB@ RPLUGINDIR = @RPLUGINDIR@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKET_LIBS = @SOCKET_LIBS@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XTRA_CPPLIBS = @XTRA_CPPLIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfig_libdir = @pkgconfig_libdir@ pkgconfig_libfile = @pkgconfig_libfile@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ INCLUDES = \ -I$(top_srcdir)/src/include \ -I$(top_srcdir)/src/common # install plugins under: plugindir = $(libdir)/@RPLUGINDIR@ @HAVE_GNU_LD_TRUE@makesymbolic = -Wl,-Bsymbolic @USE_COVERAGE_TRUE@AM_CFLAGS = --coverage -O0 @USE_COVERAGE_TRUE@XLIB = -lgcov PLUGINFLAGS = $(makesymbolic) $(LE_PLUGIN_LDFLAGS) SUBDIRS = . EXTRA_DIST = \ fuzz_default.sh \ template_extractor.c \ testdata/archive_test.tar \ testdata/deb_bzip2.deb \ testdata/dvi_ora.dvi \ testdata/exiv2_iptc.jpg \ testdata/flac_kraftwerk.flac \ testdata/gif_image.gif \ testdata/gstreamer_30_and_33.asf \ testdata/gstreamer_barsandtone.flv \ testdata/gstreamer_sample_sorenson.mov \ testdata/html_grothoff.html \ testdata/it_dawn.it \ testdata/jpeg_image.jpg \ testdata/man_extract.1 \ testdata/matroska_flame.mkv \ testdata/midi_dth.mid \ testdata/mpeg_alien.mpg \ testdata/mpeg_melt.mpg \ testdata/nsf_arkanoid.nsf \ testdata/nsfe_classics.nsfe \ testdata/odf_cg.odt \ testdata/ole2_blair.doc \ testdata/ole2_excel.xls \ testdata/ole2_msword.doc \ testdata/ole2_starwriter40.sdw \ testdata/ogg_courseclear.ogg \ testdata/png_image.png \ testdata/ps_bloomfilter.ps \ testdata/ps_wallace.ps \ testdata/riff_flame.avi \ testdata/rpm_test.rpm \ testdata/s3m_2nd_pm.s3m \ testdata/sid_wizball.sid \ testdata/thumbnail_torsten.jpg \ testdata/tiff_haute.tiff \ testdata/wav_noise.wav \ testdata/wav_alert.wav \ testdata/xm_diesel.xm \ testdata/zip_test.zip @HAVE_MAGIC_TRUE@PLUGIN_MIME = libextractor_mime.la @HAVE_MAGIC_TRUE@TEST_MIME = test_mime # FFmpeg-thumbnailer requires MAGIC and FFMPEG @HAVE_FFMPEG_TRUE@@HAVE_MAGIC_TRUE@PLUGIN_FFMPEG = libextractor_thumbnailffmpeg.la @HAVE_FFMPEG_TRUE@@HAVE_MAGIC_TRUE@TEST_FFMPEG = test_thumbnailffmpeg @HAVE_FFMPEG_NEW_TRUE@@HAVE_MAGIC_TRUE@PLUGIN_PREVIEWOPUS = libextractor_previewopus.la @HAVE_FFMPEG_NEW_TRUE@@HAVE_MAGIC_TRUE@TEST_PREVIEWOPUS = test_previewopus # Gtk-thumbnailer requires MAGIC and GTK @HAVE_GTK_TRUE@@HAVE_MAGIC_TRUE@PLUGIN_GTK = libextractor_thumbnailgtk.la @HAVE_GTK_TRUE@@HAVE_MAGIC_TRUE@TEST_GTK = test_thumbnailgtk # HTML requires MAGIC and tidy @HAVE_MAGIC_TRUE@@HAVE_TIDY_TRUE@PLUGIN_HTML = libextractor_html.la @HAVE_MAGIC_TRUE@@HAVE_TIDY_TRUE@TEST_HTML = test_html @HAVE_ARCHIVE_TRUE@PLUGIN_ARCHIVE = libextractor_archive.la @HAVE_ARCHIVE_TRUE@TEST_ARCHIVE = test_archive @HAVE_EXIV2_TRUE@PLUGIN_EXIV2 = libextractor_exiv2.la @HAVE_EXIV2_TRUE@TEST_EXIV2 = test_exiv2 @HAVE_FLAC_TRUE@PLUGIN_FLAC = libextractor_flac.la @HAVE_FLAC_TRUE@TEST_FLAC = test_flac @HAVE_GIF_TRUE@PLUGIN_GIF = libextractor_gif.la @HAVE_GIF_TRUE@TEST_GIF = test_gif @HAVE_GSF_TRUE@PLUGIN_GSF = libextractor_ole2.la @HAVE_GSF_TRUE@TEST_GSF = test_ole2 @HAVE_GSTREAMER_TRUE@PLUGIN_GSTREAMER = libextractor_gstreamer.la @HAVE_GSTREAMER_TRUE@TEST_GSTREAMER = test_gstreamer @HAVE_JPEG_TRUE@PLUGIN_JPEG = libextractor_jpeg.la @HAVE_JPEG_TRUE@TEST_JPEG = test_jpeg @HAVE_EXPERIMENTAL_TRUE@@HAVE_MP4_TRUE@PLUGIN_MP4 = libextractor_mp4.la @HAVE_EXPERIMENTAL_TRUE@@HAVE_MP4_TRUE@TEST_MP4 = test_mp4 @HAVE_MPEG2_TRUE@PLUGIN_MPEG = libextractor_mpeg.la @HAVE_MPEG2_TRUE@TEST_MPEG = test_mpeg @HAVE_LIBRPM_TRUE@PLUGIN_RPM = libextractor_rpm.la @HAVE_LIBRPM_TRUE@TEST_RPM = test_rpm @HAVE_SMF_TRUE@PLUGIN_MIDI = libextractor_midi.la @HAVE_SMF_TRUE@TEST_MIDI = test_midi @HAVE_TIFF_TRUE@PLUGIN_TIFF = libextractor_tiff.la @HAVE_TIFF_TRUE@TEST_TIFF = test_tiff @HAVE_VORBISFILE_TRUE@PLUGIN_OGG = libextractor_ogg.la @HAVE_VORBISFILE_TRUE@TEST_OGG = test_ogg @HAVE_ZLIB_TRUE@PLUGIN_ZLIB = \ @HAVE_ZLIB_TRUE@ libextractor_deb.la \ @HAVE_ZLIB_TRUE@ libextractor_odf.la \ @HAVE_ZLIB_TRUE@ libextractor_png.la \ @HAVE_ZLIB_TRUE@ libextractor_zip.la @HAVE_ZLIB_TRUE@TEST_ZLIB = test_deb plugin_LTLIBRARIES = \ libextractor_dvi.la \ libextractor_it.la \ libextractor_man.la \ libextractor_nsf.la \ libextractor_nsfe.la \ libextractor_ps.la \ libextractor_riff.la \ libextractor_s3m.la \ libextractor_sid.la \ libextractor_wav.la \ libextractor_xm.la \ $(PLUGIN_ARCHIVE) \ $(PLUGIN_EXIV2) \ $(PLUGIN_FFMPEG) \ $(PLUGIN_FLAC) \ $(PLUGIN_GIF) \ $(PLUGIN_GSF) \ $(PLUGIN_GSTREAMER) \ $(PLUGIN_GTK) \ $(PLUGIN_HTML) \ $(PLUGIN_JPEG) \ $(PLUGIN_MIDI) \ $(PLUGIN_MIME) \ $(PLUGIN_MP4) \ $(PLUGIN_MPEG) \ $(PLUGIN_OGG) \ $(PLUGIN_PREVIEWOPUS) \ $(PLUGIN_RPM) \ $(PLUGIN_TIFF) \ $(PLUGIN_ZLIB) @HAVE_ZZUF_TRUE@fuzz_tests = fuzz_default.sh @ENABLE_TEST_RUN_TRUE@TESTS = \ @ENABLE_TEST_RUN_TRUE@ $(fuzz_tests) \ @ENABLE_TEST_RUN_TRUE@ $(check_PROGRAMS) noinst_LTLIBRARIES = \ libtest.la libtest_la_SOURCES = \ test_lib.c test_lib.h libtest_la_LIBADD = \ $(top_builddir)/src/main/libextractor.la $(XLIB) libextractor_archive_la_SOURCES = \ archive_extractor.c libextractor_archive_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_archive_la_LIBADD = \ -larchive $(XLIB) test_archive_SOURCES = \ test_archive.c test_archive_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_deb_la_SOURCES = \ deb_extractor.c libextractor_deb_la_LDFLAGS = \ $(PLUGINFLAGS) -lz libextractor_deb_la_LIBADD = \ $(XLIB) test_deb_SOURCES = \ test_deb.c test_deb_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_dvi_la_SOURCES = \ dvi_extractor.c libextractor_dvi_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_dvi_la_LIBADD = \ $(XLIB) $(SOCKET_LIBS) test_dvi_SOURCES = \ test_dvi.c test_dvi_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_exiv2_la_SOURCES = \ exiv2_extractor.cc libextractor_exiv2_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_exiv2_la_LIBADD = \ -lexiv2 $(XLIB) test_exiv2_SOURCES = \ test_exiv2.c test_exiv2_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_flac_la_SOURCES = \ flac_extractor.c libextractor_flac_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_flac_la_LIBADD = \ -lFLAC $(XLIB) $(LE_LIBINTL) test_flac_SOURCES = \ test_flac.c test_flac_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_gif_la_SOURCES = \ gif_extractor.c libextractor_gif_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_gif_la_LIBADD = \ -lgif $(XLIB) test_gif_SOURCES = \ test_gif.c test_gif_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_gstreamer_la_SOURCES = \ gstreamer_extractor.c libextractor_gstreamer_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_gstreamer_la_LIBADD = \ $(GSTREAMER_LIBS) $(GSTREAMER_PBUTILS_LIBS) $(GSTREAMER_TAG_LIBS) $(GSTREAMER_APP_LIBS) $(XLIB) -lpthread libextractor_gstreamer_la_CFLAGS = \ $(GSTREAMER_CFLAGS) $(GSTREAMER_PBUTILS_CFLAGS) $(GSTREAMER_TAG_CFLAGS) $(GSTREAMER_APP_CFALGS) test_gstreamer_SOURCES = \ test_gstreamer.c test_gstreamer_LDADD = \ $(top_builddir)/src/plugins/libtest.la \ $(GSTREAMER_LIBS) $(GSTREAMER_PBUTILS_LIBS) test_gstreamer_CFLAGS = \ $(GSTREAMER_CFLAGS) $(GSTREAMER_PBUTILS_CFLAGS) libextractor_html_la_SOURCES = \ html_extractor.c libextractor_html_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_html_la_LIBADD = \ -ltidy -lmagic $(XLIB) test_html_SOURCES = \ test_html.c test_html_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_it_la_SOURCES = \ it_extractor.c libextractor_it_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_it_la_LIBADD = \ $(XLIB) test_it_SOURCES = \ test_it.c test_it_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_jpeg_la_SOURCES = \ jpeg_extractor.c libextractor_jpeg_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_jpeg_la_LIBADD = \ -ljpeg $(XLIB) test_jpeg_SOURCES = \ test_jpeg.c test_jpeg_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_man_la_SOURCES = \ man_extractor.c libextractor_man_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_man_la_LIBADD = \ $(XLIB) $(LE_LIBINTL) test_man_SOURCES = \ test_man.c test_man_LDADD = \ $(top_builddir)/src/plugins/libtest.la \ $(LE_LIBINTL) libextractor_midi_la_SOURCES = \ midi_extractor.c libextractor_midi_la_CFLAGS = \ $(GLIB_CFLAGS) libextractor_midi_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_midi_la_LIBADD = \ -lsmf $(XLIB) test_midi_SOURCES = \ test_midi.c test_midi_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_mime_la_SOURCES = \ mime_extractor.c libextractor_mime_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_mime_la_LIBADD = \ -lmagic $(XLIB) test_mime_SOURCES = \ test_mime.c test_mime_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_mp4_la_SOURCES = \ mp4_extractor.c libextractor_mp4_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_mp4_la_LIBADD = \ -lmp4v2 $(XLIB) libextractor_mpeg_la_SOURCES = \ mpeg_extractor.c libextractor_mpeg_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_mpeg_la_LIBADD = \ -lmpeg2 $(XLIB) test_mpeg_SOURCES = \ test_mpeg.c test_mpeg_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_nsf_la_SOURCES = \ nsf_extractor.c libextractor_nsf_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_nsf_la_LIBADD = \ $(XLIB) test_nsf_SOURCES = \ test_nsf.c test_nsf_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_nsfe_la_SOURCES = \ nsfe_extractor.c libextractor_nsfe_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_nsfe_la_LIBADD = \ $(XLIB) test_nsfe_SOURCES = \ test_nsfe.c test_nsfe_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_odf_la_SOURCES = \ odf_extractor.c libextractor_odf_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_odf_la_LIBADD = \ $(top_builddir)/src/common/libextractor_common.la $(XLIB) test_odf_SOURCES = \ test_odf.c test_odf_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_ole2_la_SOURCES = \ ole2_extractor.c libextractor_ole2_la_CFLAGS = \ $(GSF_CFLAGS) libextractor_ole2_la_CPPFLAGS = \ $(GSF_CFLAGS) libextractor_ole2_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_ole2_la_LIBADD = \ $(top_builddir)/src/common/libextractor_common.la \ $(GSF_LIBS) $(XLIB) $(LE_LIBINTL) test_ole2_SOURCES = \ test_ole2.c test_ole2_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_ogg_la_SOURCES = \ ogg_extractor.c libextractor_ogg_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_ogg_la_LIBADD = \ -lvorbisfile -lvorbis $(vorbisflag) -logg $(XLIB) test_ogg_SOURCES = \ test_ogg.c test_ogg_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_png_la_SOURCES = \ png_extractor.c libextractor_png_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_png_la_LIBADD = \ $(top_builddir)/src/common/libextractor_common.la $(XLIB) -lz $(SOCKET_LIBS) test_png_SOURCES = \ test_png.c test_png_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_ps_la_SOURCES = \ ps_extractor.c libextractor_ps_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_ps_la_LIBADD = \ $(XLIB) test_ps_SOURCES = \ test_ps.c test_ps_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_riff_la_SOURCES = \ riff_extractor.c libextractor_riff_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_riff_la_LIBADD = \ -lm $(XLIB) $(LE_LIBINTL) test_riff_SOURCES = \ test_riff.c test_riff_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_rpm_la_SOURCES = \ rpm_extractor.c libextractor_rpm_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_rpm_la_LIBADD = \ -lrpm -lpthread $(XLIB) test_rpm_SOURCES = \ test_rpm.c test_rpm_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_s3m_la_SOURCES = \ s3m_extractor.c libextractor_s3m_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_s3m_la_LIBADD = \ $(XLIB) test_s3m_SOURCES = \ test_s3m.c test_s3m_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_sid_la_SOURCES = \ sid_extractor.c libextractor_sid_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_sid_la_LIBADD = \ $(XLIB) test_sid_SOURCES = \ test_sid.c test_sid_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_thumbnailffmpeg_la_SOURCES = \ thumbnailffmpeg_extractor.c libextractor_thumbnailffmpeg_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_thumbnailffmpeg_la_LIBADD = \ -lavutil -lavformat -lavcodec -lswscale -lmagic $(XLIB) test_thumbnailffmpeg_SOURCES = \ test_thumbnailffmpeg.c test_thumbnailffmpeg_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_thumbnailgtk_la_SOURCES = \ thumbnailgtk_extractor.c libextractor_thumbnailgtk_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_thumbnailgtk_la_CFLAGS = \ $(GTK_CFLAGS) libextractor_thumbnailgtk_la_LIBADD = \ -lmagic $(GTK_LIBS) $(XLIB) test_thumbnailgtk_SOURCES = \ test_thumbnailgtk.c test_thumbnailgtk_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_previewopus_la_SOURCES = \ previewopus_extractor.c libextractor_previewopus_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_previewopus_la_LIBADD = \ -lavutil -lavformat -lavcodec -lswscale -lavresample -lmagic $(XLIB) test_previewopus_SOURCES = \ test_previewopus.c test_previewopus_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_tiff_la_SOURCES = \ tiff_extractor.c libextractor_tiff_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_tiff_la_LIBADD = \ -ltiff $(XLIB) test_tiff_SOURCES = \ test_tiff.c test_tiff_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_wav_la_SOURCES = \ wav_extractor.c libextractor_wav_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_wav_la_LIBADD = \ $(XLIB) $(LE_LIBINTL) test_wav_SOURCES = \ test_wav.c test_wav_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_xm_la_SOURCES = \ xm_extractor.c libextractor_xm_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_xm_la_LIBADD = \ $(XLIB) test_xm_SOURCES = \ test_xm.c test_xm_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_zip_la_SOURCES = \ zip_extractor.c libextractor_zip_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_zip_la_LIBADD = \ $(top_builddir)/src/common/libextractor_common.la $(XLIB) test_zip_SOURCES = \ test_zip.c test_zip_LDADD = \ $(top_builddir)/src/plugins/libtest.la all: all-recursive .SUFFIXES: .SUFFIXES: .c .cc .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/plugins/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/plugins/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(MKDIR_P) '$(DESTDIR)$(plugindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(plugindir)" || exit 1; \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \ } uninstall-pluginLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$f"; \ done clean-pluginLTLIBRARIES: -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libextractor_archive.la: $(libextractor_archive_la_OBJECTS) $(libextractor_archive_la_DEPENDENCIES) $(EXTRA_libextractor_archive_la_DEPENDENCIES) $(AM_V_CCLD)$(libextractor_archive_la_LINK) $(am_libextractor_archive_la_rpath) $(libextractor_archive_la_OBJECTS) $(libextractor_archive_la_LIBADD) $(LIBS) libextractor_deb.la: $(libextractor_deb_la_OBJECTS) $(libextractor_deb_la_DEPENDENCIES) $(EXTRA_libextractor_deb_la_DEPENDENCIES) $(AM_V_CCLD)$(libextractor_deb_la_LINK) $(am_libextractor_deb_la_rpath) $(libextractor_deb_la_OBJECTS) $(libextractor_deb_la_LIBADD) $(LIBS) libextractor_dvi.la: $(libextractor_dvi_la_OBJECTS) $(libextractor_dvi_la_DEPENDENCIES) $(EXTRA_libextractor_dvi_la_DEPENDENCIES) $(AM_V_CCLD)$(libextractor_dvi_la_LINK) -rpath $(plugindir) $(libextractor_dvi_la_OBJECTS) $(libextractor_dvi_la_LIBADD) $(LIBS) libextractor_exiv2.la: $(libextractor_exiv2_la_OBJECTS) $(libextractor_exiv2_la_DEPENDENCIES) $(EXTRA_libextractor_exiv2_la_DEPENDENCIES) $(AM_V_CXXLD)$(libextractor_exiv2_la_LINK) $(am_libextractor_exiv2_la_rpath) $(libextractor_exiv2_la_OBJECTS) $(libextractor_exiv2_la_LIBADD) $(LIBS) libextractor_flac.la: $(libextractor_flac_la_OBJECTS) $(libextractor_flac_la_DEPENDENCIES) $(EXTRA_libextractor_flac_la_DEPENDENCIES) $(AM_V_CCLD)$(libextractor_flac_la_LINK) $(am_libextractor_flac_la_rpath) $(libextractor_flac_la_OBJECTS) $(libextractor_flac_la_LIBADD) $(LIBS) libextractor_gif.la: $(libextractor_gif_la_OBJECTS) $(libextractor_gif_la_DEPENDENCIES) $(EXTRA_libextractor_gif_la_DEPENDENCIES) $(AM_V_CCLD)$(libextractor_gif_la_LINK) $(am_libextractor_gif_la_rpath) $(libextractor_gif_la_OBJECTS) $(libextractor_gif_la_LIBADD) $(LIBS) libextractor_gstreamer.la: $(libextractor_gstreamer_la_OBJECTS) $(libextractor_gstreamer_la_DEPENDENCIES) $(EXTRA_libextractor_gstreamer_la_DEPENDENCIES) $(AM_V_CCLD)$(libextractor_gstreamer_la_LINK) $(am_libextractor_gstreamer_la_rpath) $(libextractor_gstreamer_la_OBJECTS) $(libextractor_gstreamer_la_LIBADD) $(LIBS) libextractor_html.la: $(libextractor_html_la_OBJECTS) $(libextractor_html_la_DEPENDENCIES) $(EXTRA_libextractor_html_la_DEPENDENCIES) $(AM_V_CCLD)$(libextractor_html_la_LINK) $(am_libextractor_html_la_rpath) $(libextractor_html_la_OBJECTS) $(libextractor_html_la_LIBADD) $(LIBS) libextractor_it.la: $(libextractor_it_la_OBJECTS) $(libextractor_it_la_DEPENDENCIES) $(EXTRA_libextractor_it_la_DEPENDENCIES) $(AM_V_CCLD)$(libextractor_it_la_LINK) -rpath $(plugindir) $(libextractor_it_la_OBJECTS) $(libextractor_it_la_LIBADD) $(LIBS) libextractor_jpeg.la: $(libextractor_jpeg_la_OBJECTS) $(libextractor_jpeg_la_DEPENDENCIES) $(EXTRA_libextractor_jpeg_la_DEPENDENCIES) $(AM_V_CCLD)$(libextractor_jpeg_la_LINK) $(am_libextractor_jpeg_la_rpath) $(libextractor_jpeg_la_OBJECTS) $(libextractor_jpeg_la_LIBADD) $(LIBS) libextractor_man.la: $(libextractor_man_la_OBJECTS) $(libextractor_man_la_DEPENDENCIES) $(EXTRA_libextractor_man_la_DEPENDENCIES) $(AM_V_CCLD)$(libextractor_man_la_LINK) -rpath $(plugindir) $(libextractor_man_la_OBJECTS) $(libextractor_man_la_LIBADD) $(LIBS) libextractor_midi.la: $(libextractor_midi_la_OBJECTS) $(libextractor_midi_la_DEPENDENCIES) $(EXTRA_libextractor_midi_la_DEPENDENCIES) $(AM_V_CCLD)$(libextractor_midi_la_LINK) $(am_libextractor_midi_la_rpath) $(libextractor_midi_la_OBJECTS) $(libextractor_midi_la_LIBADD) $(LIBS) libextractor_mime.la: $(libextractor_mime_la_OBJECTS) $(libextractor_mime_la_DEPENDENCIES) $(EXTRA_libextractor_mime_la_DEPENDENCIES) $(AM_V_CCLD)$(libextractor_mime_la_LINK) $(am_libextractor_mime_la_rpath) $(libextractor_mime_la_OBJECTS) $(libextractor_mime_la_LIBADD) $(LIBS) libextractor_mp4.la: $(libextractor_mp4_la_OBJECTS) $(libextractor_mp4_la_DEPENDENCIES) $(EXTRA_libextractor_mp4_la_DEPENDENCIES) $(AM_V_CCLD)$(libextractor_mp4_la_LINK) $(am_libextractor_mp4_la_rpath) $(libextractor_mp4_la_OBJECTS) $(libextractor_mp4_la_LIBADD) $(LIBS) libextractor_mpeg.la: $(libextractor_mpeg_la_OBJECTS) $(libextractor_mpeg_la_DEPENDENCIES) $(EXTRA_libextractor_mpeg_la_DEPENDENCIES) $(AM_V_CCLD)$(libextractor_mpeg_la_LINK) $(am_libextractor_mpeg_la_rpath) $(libextractor_mpeg_la_OBJECTS) $(libextractor_mpeg_la_LIBADD) $(LIBS) libextractor_nsf.la: $(libextractor_nsf_la_OBJECTS) $(libextractor_nsf_la_DEPENDENCIES) $(EXTRA_libextractor_nsf_la_DEPENDENCIES) $(AM_V_CCLD)$(libextractor_nsf_la_LINK) -rpath $(plugindir) $(libextractor_nsf_la_OBJECTS) $(libextractor_nsf_la_LIBADD) $(LIBS) libextractor_nsfe.la: $(libextractor_nsfe_la_OBJECTS) $(libextractor_nsfe_la_DEPENDENCIES) $(EXTRA_libextractor_nsfe_la_DEPENDENCIES) $(AM_V_CCLD)$(libextractor_nsfe_la_LINK) -rpath $(plugindir) $(libextractor_nsfe_la_OBJECTS) $(libextractor_nsfe_la_LIBADD) $(LIBS) libextractor_odf.la: $(libextractor_odf_la_OBJECTS) $(libextractor_odf_la_DEPENDENCIES) $(EXTRA_libextractor_odf_la_DEPENDENCIES) $(AM_V_CCLD)$(libextractor_odf_la_LINK) $(am_libextractor_odf_la_rpath) $(libextractor_odf_la_OBJECTS) $(libextractor_odf_la_LIBADD) $(LIBS) libextractor_ogg.la: $(libextractor_ogg_la_OBJECTS) $(libextractor_ogg_la_DEPENDENCIES) $(EXTRA_libextractor_ogg_la_DEPENDENCIES) $(AM_V_CCLD)$(libextractor_ogg_la_LINK) $(am_libextractor_ogg_la_rpath) $(libextractor_ogg_la_OBJECTS) $(libextractor_ogg_la_LIBADD) $(LIBS) libextractor_ole2.la: $(libextractor_ole2_la_OBJECTS) $(libextractor_ole2_la_DEPENDENCIES) $(EXTRA_libextractor_ole2_la_DEPENDENCIES) $(AM_V_CCLD)$(libextractor_ole2_la_LINK) $(am_libextractor_ole2_la_rpath) $(libextractor_ole2_la_OBJECTS) $(libextractor_ole2_la_LIBADD) $(LIBS) libextractor_png.la: $(libextractor_png_la_OBJECTS) $(libextractor_png_la_DEPENDENCIES) $(EXTRA_libextractor_png_la_DEPENDENCIES) $(AM_V_CCLD)$(libextractor_png_la_LINK) $(am_libextractor_png_la_rpath) $(libextractor_png_la_OBJECTS) $(libextractor_png_la_LIBADD) $(LIBS) libextractor_previewopus.la: $(libextractor_previewopus_la_OBJECTS) $(libextractor_previewopus_la_DEPENDENCIES) $(EXTRA_libextractor_previewopus_la_DEPENDENCIES) $(AM_V_CCLD)$(libextractor_previewopus_la_LINK) $(am_libextractor_previewopus_la_rpath) $(libextractor_previewopus_la_OBJECTS) $(libextractor_previewopus_la_LIBADD) $(LIBS) libextractor_ps.la: $(libextractor_ps_la_OBJECTS) $(libextractor_ps_la_DEPENDENCIES) $(EXTRA_libextractor_ps_la_DEPENDENCIES) $(AM_V_CCLD)$(libextractor_ps_la_LINK) -rpath $(plugindir) $(libextractor_ps_la_OBJECTS) $(libextractor_ps_la_LIBADD) $(LIBS) libextractor_riff.la: $(libextractor_riff_la_OBJECTS) $(libextractor_riff_la_DEPENDENCIES) $(EXTRA_libextractor_riff_la_DEPENDENCIES) $(AM_V_CCLD)$(libextractor_riff_la_LINK) -rpath $(plugindir) $(libextractor_riff_la_OBJECTS) $(libextractor_riff_la_LIBADD) $(LIBS) libextractor_rpm.la: $(libextractor_rpm_la_OBJECTS) $(libextractor_rpm_la_DEPENDENCIES) $(EXTRA_libextractor_rpm_la_DEPENDENCIES) $(AM_V_CCLD)$(libextractor_rpm_la_LINK) $(am_libextractor_rpm_la_rpath) $(libextractor_rpm_la_OBJECTS) $(libextractor_rpm_la_LIBADD) $(LIBS) libextractor_s3m.la: $(libextractor_s3m_la_OBJECTS) $(libextractor_s3m_la_DEPENDENCIES) $(EXTRA_libextractor_s3m_la_DEPENDENCIES) $(AM_V_CCLD)$(libextractor_s3m_la_LINK) -rpath $(plugindir) $(libextractor_s3m_la_OBJECTS) $(libextractor_s3m_la_LIBADD) $(LIBS) libextractor_sid.la: $(libextractor_sid_la_OBJECTS) $(libextractor_sid_la_DEPENDENCIES) $(EXTRA_libextractor_sid_la_DEPENDENCIES) $(AM_V_CCLD)$(libextractor_sid_la_LINK) -rpath $(plugindir) $(libextractor_sid_la_OBJECTS) $(libextractor_sid_la_LIBADD) $(LIBS) libextractor_thumbnailffmpeg.la: $(libextractor_thumbnailffmpeg_la_OBJECTS) $(libextractor_thumbnailffmpeg_la_DEPENDENCIES) $(EXTRA_libextractor_thumbnailffmpeg_la_DEPENDENCIES) $(AM_V_CCLD)$(libextractor_thumbnailffmpeg_la_LINK) $(am_libextractor_thumbnailffmpeg_la_rpath) $(libextractor_thumbnailffmpeg_la_OBJECTS) $(libextractor_thumbnailffmpeg_la_LIBADD) $(LIBS) libextractor_thumbnailgtk.la: $(libextractor_thumbnailgtk_la_OBJECTS) $(libextractor_thumbnailgtk_la_DEPENDENCIES) $(EXTRA_libextractor_thumbnailgtk_la_DEPENDENCIES) $(AM_V_CCLD)$(libextractor_thumbnailgtk_la_LINK) $(am_libextractor_thumbnailgtk_la_rpath) $(libextractor_thumbnailgtk_la_OBJECTS) $(libextractor_thumbnailgtk_la_LIBADD) $(LIBS) libextractor_tiff.la: $(libextractor_tiff_la_OBJECTS) $(libextractor_tiff_la_DEPENDENCIES) $(EXTRA_libextractor_tiff_la_DEPENDENCIES) $(AM_V_CCLD)$(libextractor_tiff_la_LINK) $(am_libextractor_tiff_la_rpath) $(libextractor_tiff_la_OBJECTS) $(libextractor_tiff_la_LIBADD) $(LIBS) libextractor_wav.la: $(libextractor_wav_la_OBJECTS) $(libextractor_wav_la_DEPENDENCIES) $(EXTRA_libextractor_wav_la_DEPENDENCIES) $(AM_V_CCLD)$(libextractor_wav_la_LINK) -rpath $(plugindir) $(libextractor_wav_la_OBJECTS) $(libextractor_wav_la_LIBADD) $(LIBS) libextractor_xm.la: $(libextractor_xm_la_OBJECTS) $(libextractor_xm_la_DEPENDENCIES) $(EXTRA_libextractor_xm_la_DEPENDENCIES) $(AM_V_CCLD)$(libextractor_xm_la_LINK) -rpath $(plugindir) $(libextractor_xm_la_OBJECTS) $(libextractor_xm_la_LIBADD) $(LIBS) libextractor_zip.la: $(libextractor_zip_la_OBJECTS) $(libextractor_zip_la_DEPENDENCIES) $(EXTRA_libextractor_zip_la_DEPENDENCIES) $(AM_V_CCLD)$(libextractor_zip_la_LINK) $(am_libextractor_zip_la_rpath) $(libextractor_zip_la_OBJECTS) $(libextractor_zip_la_LIBADD) $(LIBS) libtest.la: $(libtest_la_OBJECTS) $(libtest_la_DEPENDENCIES) $(EXTRA_libtest_la_DEPENDENCIES) $(AM_V_CCLD)$(LINK) $(libtest_la_OBJECTS) $(libtest_la_LIBADD) $(LIBS) clean-checkPROGRAMS: @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list test_archive$(EXEEXT): $(test_archive_OBJECTS) $(test_archive_DEPENDENCIES) $(EXTRA_test_archive_DEPENDENCIES) @rm -f test_archive$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_archive_OBJECTS) $(test_archive_LDADD) $(LIBS) test_deb$(EXEEXT): $(test_deb_OBJECTS) $(test_deb_DEPENDENCIES) $(EXTRA_test_deb_DEPENDENCIES) @rm -f test_deb$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_deb_OBJECTS) $(test_deb_LDADD) $(LIBS) test_dvi$(EXEEXT): $(test_dvi_OBJECTS) $(test_dvi_DEPENDENCIES) $(EXTRA_test_dvi_DEPENDENCIES) @rm -f test_dvi$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_dvi_OBJECTS) $(test_dvi_LDADD) $(LIBS) test_exiv2$(EXEEXT): $(test_exiv2_OBJECTS) $(test_exiv2_DEPENDENCIES) $(EXTRA_test_exiv2_DEPENDENCIES) @rm -f test_exiv2$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_exiv2_OBJECTS) $(test_exiv2_LDADD) $(LIBS) test_flac$(EXEEXT): $(test_flac_OBJECTS) $(test_flac_DEPENDENCIES) $(EXTRA_test_flac_DEPENDENCIES) @rm -f test_flac$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_flac_OBJECTS) $(test_flac_LDADD) $(LIBS) test_gif$(EXEEXT): $(test_gif_OBJECTS) $(test_gif_DEPENDENCIES) $(EXTRA_test_gif_DEPENDENCIES) @rm -f test_gif$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_gif_OBJECTS) $(test_gif_LDADD) $(LIBS) test_gstreamer$(EXEEXT): $(test_gstreamer_OBJECTS) $(test_gstreamer_DEPENDENCIES) $(EXTRA_test_gstreamer_DEPENDENCIES) @rm -f test_gstreamer$(EXEEXT) $(AM_V_CCLD)$(test_gstreamer_LINK) $(test_gstreamer_OBJECTS) $(test_gstreamer_LDADD) $(LIBS) test_html$(EXEEXT): $(test_html_OBJECTS) $(test_html_DEPENDENCIES) $(EXTRA_test_html_DEPENDENCIES) @rm -f test_html$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_html_OBJECTS) $(test_html_LDADD) $(LIBS) test_it$(EXEEXT): $(test_it_OBJECTS) $(test_it_DEPENDENCIES) $(EXTRA_test_it_DEPENDENCIES) @rm -f test_it$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_it_OBJECTS) $(test_it_LDADD) $(LIBS) test_jpeg$(EXEEXT): $(test_jpeg_OBJECTS) $(test_jpeg_DEPENDENCIES) $(EXTRA_test_jpeg_DEPENDENCIES) @rm -f test_jpeg$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_jpeg_OBJECTS) $(test_jpeg_LDADD) $(LIBS) test_man$(EXEEXT): $(test_man_OBJECTS) $(test_man_DEPENDENCIES) $(EXTRA_test_man_DEPENDENCIES) @rm -f test_man$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_man_OBJECTS) $(test_man_LDADD) $(LIBS) test_midi$(EXEEXT): $(test_midi_OBJECTS) $(test_midi_DEPENDENCIES) $(EXTRA_test_midi_DEPENDENCIES) @rm -f test_midi$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_midi_OBJECTS) $(test_midi_LDADD) $(LIBS) test_mime$(EXEEXT): $(test_mime_OBJECTS) $(test_mime_DEPENDENCIES) $(EXTRA_test_mime_DEPENDENCIES) @rm -f test_mime$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_mime_OBJECTS) $(test_mime_LDADD) $(LIBS) test_mpeg$(EXEEXT): $(test_mpeg_OBJECTS) $(test_mpeg_DEPENDENCIES) $(EXTRA_test_mpeg_DEPENDENCIES) @rm -f test_mpeg$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_mpeg_OBJECTS) $(test_mpeg_LDADD) $(LIBS) test_nsf$(EXEEXT): $(test_nsf_OBJECTS) $(test_nsf_DEPENDENCIES) $(EXTRA_test_nsf_DEPENDENCIES) @rm -f test_nsf$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_nsf_OBJECTS) $(test_nsf_LDADD) $(LIBS) test_nsfe$(EXEEXT): $(test_nsfe_OBJECTS) $(test_nsfe_DEPENDENCIES) $(EXTRA_test_nsfe_DEPENDENCIES) @rm -f test_nsfe$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_nsfe_OBJECTS) $(test_nsfe_LDADD) $(LIBS) test_odf$(EXEEXT): $(test_odf_OBJECTS) $(test_odf_DEPENDENCIES) $(EXTRA_test_odf_DEPENDENCIES) @rm -f test_odf$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_odf_OBJECTS) $(test_odf_LDADD) $(LIBS) test_ogg$(EXEEXT): $(test_ogg_OBJECTS) $(test_ogg_DEPENDENCIES) $(EXTRA_test_ogg_DEPENDENCIES) @rm -f test_ogg$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_ogg_OBJECTS) $(test_ogg_LDADD) $(LIBS) test_ole2$(EXEEXT): $(test_ole2_OBJECTS) $(test_ole2_DEPENDENCIES) $(EXTRA_test_ole2_DEPENDENCIES) @rm -f test_ole2$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_ole2_OBJECTS) $(test_ole2_LDADD) $(LIBS) test_png$(EXEEXT): $(test_png_OBJECTS) $(test_png_DEPENDENCIES) $(EXTRA_test_png_DEPENDENCIES) @rm -f test_png$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_png_OBJECTS) $(test_png_LDADD) $(LIBS) test_previewopus$(EXEEXT): $(test_previewopus_OBJECTS) $(test_previewopus_DEPENDENCIES) $(EXTRA_test_previewopus_DEPENDENCIES) @rm -f test_previewopus$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_previewopus_OBJECTS) $(test_previewopus_LDADD) $(LIBS) test_ps$(EXEEXT): $(test_ps_OBJECTS) $(test_ps_DEPENDENCIES) $(EXTRA_test_ps_DEPENDENCIES) @rm -f test_ps$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_ps_OBJECTS) $(test_ps_LDADD) $(LIBS) test_riff$(EXEEXT): $(test_riff_OBJECTS) $(test_riff_DEPENDENCIES) $(EXTRA_test_riff_DEPENDENCIES) @rm -f test_riff$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_riff_OBJECTS) $(test_riff_LDADD) $(LIBS) test_rpm$(EXEEXT): $(test_rpm_OBJECTS) $(test_rpm_DEPENDENCIES) $(EXTRA_test_rpm_DEPENDENCIES) @rm -f test_rpm$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_rpm_OBJECTS) $(test_rpm_LDADD) $(LIBS) test_s3m$(EXEEXT): $(test_s3m_OBJECTS) $(test_s3m_DEPENDENCIES) $(EXTRA_test_s3m_DEPENDENCIES) @rm -f test_s3m$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_s3m_OBJECTS) $(test_s3m_LDADD) $(LIBS) test_sid$(EXEEXT): $(test_sid_OBJECTS) $(test_sid_DEPENDENCIES) $(EXTRA_test_sid_DEPENDENCIES) @rm -f test_sid$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_sid_OBJECTS) $(test_sid_LDADD) $(LIBS) test_thumbnailffmpeg$(EXEEXT): $(test_thumbnailffmpeg_OBJECTS) $(test_thumbnailffmpeg_DEPENDENCIES) $(EXTRA_test_thumbnailffmpeg_DEPENDENCIES) @rm -f test_thumbnailffmpeg$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_thumbnailffmpeg_OBJECTS) $(test_thumbnailffmpeg_LDADD) $(LIBS) test_thumbnailgtk$(EXEEXT): $(test_thumbnailgtk_OBJECTS) $(test_thumbnailgtk_DEPENDENCIES) $(EXTRA_test_thumbnailgtk_DEPENDENCIES) @rm -f test_thumbnailgtk$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_thumbnailgtk_OBJECTS) $(test_thumbnailgtk_LDADD) $(LIBS) test_tiff$(EXEEXT): $(test_tiff_OBJECTS) $(test_tiff_DEPENDENCIES) $(EXTRA_test_tiff_DEPENDENCIES) @rm -f test_tiff$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_tiff_OBJECTS) $(test_tiff_LDADD) $(LIBS) test_wav$(EXEEXT): $(test_wav_OBJECTS) $(test_wav_DEPENDENCIES) $(EXTRA_test_wav_DEPENDENCIES) @rm -f test_wav$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_wav_OBJECTS) $(test_wav_LDADD) $(LIBS) test_xm$(EXEEXT): $(test_xm_OBJECTS) $(test_xm_DEPENDENCIES) $(EXTRA_test_xm_DEPENDENCIES) @rm -f test_xm$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_xm_OBJECTS) $(test_xm_LDADD) $(LIBS) test_zip$(EXEEXT): $(test_zip_OBJECTS) $(test_zip_DEPENDENCIES) $(EXTRA_test_zip_DEPENDENCIES) @rm -f test_zip$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_zip_OBJECTS) $(test_zip_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/archive_extractor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/deb_extractor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dvi_extractor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exiv2_extractor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/flac_extractor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gif_extractor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/html_extractor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/it_extractor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jpeg_extractor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libextractor_gstreamer_la-gstreamer_extractor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libextractor_midi_la-midi_extractor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libextractor_ole2_la-ole2_extractor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libextractor_thumbnailgtk_la-thumbnailgtk_extractor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/man_extractor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mime_extractor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mp4_extractor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mpeg_extractor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nsf_extractor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nsfe_extractor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/odf_extractor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ogg_extractor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/png_extractor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/previewopus_extractor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ps_extractor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/riff_extractor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rpm_extractor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/s3m_extractor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sid_extractor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_archive.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_deb.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_dvi.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_exiv2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_flac.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_gif.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_gstreamer-test_gstreamer.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_html.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_it.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_jpeg.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_lib.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_man.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_midi.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_mime.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_mpeg.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_nsf.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_nsfe.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_odf.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_ogg.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_ole2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_png.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_previewopus.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_ps.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_riff.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_rpm.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_s3m.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_sid.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_thumbnailffmpeg.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_thumbnailgtk.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_tiff.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_wav.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_xm.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_zip.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/thumbnailffmpeg_extractor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tiff_extractor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wav_extractor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xm_extractor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zip_extractor.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libextractor_gstreamer_la-gstreamer_extractor.lo: gstreamer_extractor.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libextractor_gstreamer_la_CFLAGS) $(CFLAGS) -MT libextractor_gstreamer_la-gstreamer_extractor.lo -MD -MP -MF $(DEPDIR)/libextractor_gstreamer_la-gstreamer_extractor.Tpo -c -o libextractor_gstreamer_la-gstreamer_extractor.lo `test -f 'gstreamer_extractor.c' || echo '$(srcdir)/'`gstreamer_extractor.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libextractor_gstreamer_la-gstreamer_extractor.Tpo $(DEPDIR)/libextractor_gstreamer_la-gstreamer_extractor.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='gstreamer_extractor.c' object='libextractor_gstreamer_la-gstreamer_extractor.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libextractor_gstreamer_la_CFLAGS) $(CFLAGS) -c -o libextractor_gstreamer_la-gstreamer_extractor.lo `test -f 'gstreamer_extractor.c' || echo '$(srcdir)/'`gstreamer_extractor.c libextractor_midi_la-midi_extractor.lo: midi_extractor.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libextractor_midi_la_CFLAGS) $(CFLAGS) -MT libextractor_midi_la-midi_extractor.lo -MD -MP -MF $(DEPDIR)/libextractor_midi_la-midi_extractor.Tpo -c -o libextractor_midi_la-midi_extractor.lo `test -f 'midi_extractor.c' || echo '$(srcdir)/'`midi_extractor.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libextractor_midi_la-midi_extractor.Tpo $(DEPDIR)/libextractor_midi_la-midi_extractor.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='midi_extractor.c' object='libextractor_midi_la-midi_extractor.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libextractor_midi_la_CFLAGS) $(CFLAGS) -c -o libextractor_midi_la-midi_extractor.lo `test -f 'midi_extractor.c' || echo '$(srcdir)/'`midi_extractor.c libextractor_ole2_la-ole2_extractor.lo: ole2_extractor.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libextractor_ole2_la_CPPFLAGS) $(CPPFLAGS) $(libextractor_ole2_la_CFLAGS) $(CFLAGS) -MT libextractor_ole2_la-ole2_extractor.lo -MD -MP -MF $(DEPDIR)/libextractor_ole2_la-ole2_extractor.Tpo -c -o libextractor_ole2_la-ole2_extractor.lo `test -f 'ole2_extractor.c' || echo '$(srcdir)/'`ole2_extractor.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libextractor_ole2_la-ole2_extractor.Tpo $(DEPDIR)/libextractor_ole2_la-ole2_extractor.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ole2_extractor.c' object='libextractor_ole2_la-ole2_extractor.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libextractor_ole2_la_CPPFLAGS) $(CPPFLAGS) $(libextractor_ole2_la_CFLAGS) $(CFLAGS) -c -o libextractor_ole2_la-ole2_extractor.lo `test -f 'ole2_extractor.c' || echo '$(srcdir)/'`ole2_extractor.c libextractor_thumbnailgtk_la-thumbnailgtk_extractor.lo: thumbnailgtk_extractor.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libextractor_thumbnailgtk_la_CFLAGS) $(CFLAGS) -MT libextractor_thumbnailgtk_la-thumbnailgtk_extractor.lo -MD -MP -MF $(DEPDIR)/libextractor_thumbnailgtk_la-thumbnailgtk_extractor.Tpo -c -o libextractor_thumbnailgtk_la-thumbnailgtk_extractor.lo `test -f 'thumbnailgtk_extractor.c' || echo '$(srcdir)/'`thumbnailgtk_extractor.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libextractor_thumbnailgtk_la-thumbnailgtk_extractor.Tpo $(DEPDIR)/libextractor_thumbnailgtk_la-thumbnailgtk_extractor.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='thumbnailgtk_extractor.c' object='libextractor_thumbnailgtk_la-thumbnailgtk_extractor.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libextractor_thumbnailgtk_la_CFLAGS) $(CFLAGS) -c -o libextractor_thumbnailgtk_la-thumbnailgtk_extractor.lo `test -f 'thumbnailgtk_extractor.c' || echo '$(srcdir)/'`thumbnailgtk_extractor.c test_gstreamer-test_gstreamer.o: test_gstreamer.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_gstreamer_CFLAGS) $(CFLAGS) -MT test_gstreamer-test_gstreamer.o -MD -MP -MF $(DEPDIR)/test_gstreamer-test_gstreamer.Tpo -c -o test_gstreamer-test_gstreamer.o `test -f 'test_gstreamer.c' || echo '$(srcdir)/'`test_gstreamer.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_gstreamer-test_gstreamer.Tpo $(DEPDIR)/test_gstreamer-test_gstreamer.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test_gstreamer.c' object='test_gstreamer-test_gstreamer.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_gstreamer_CFLAGS) $(CFLAGS) -c -o test_gstreamer-test_gstreamer.o `test -f 'test_gstreamer.c' || echo '$(srcdir)/'`test_gstreamer.c test_gstreamer-test_gstreamer.obj: test_gstreamer.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_gstreamer_CFLAGS) $(CFLAGS) -MT test_gstreamer-test_gstreamer.obj -MD -MP -MF $(DEPDIR)/test_gstreamer-test_gstreamer.Tpo -c -o test_gstreamer-test_gstreamer.obj `if test -f 'test_gstreamer.c'; then $(CYGPATH_W) 'test_gstreamer.c'; else $(CYGPATH_W) '$(srcdir)/test_gstreamer.c'; fi` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/test_gstreamer-test_gstreamer.Tpo $(DEPDIR)/test_gstreamer-test_gstreamer.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='test_gstreamer.c' object='test_gstreamer-test_gstreamer.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_gstreamer_CFLAGS) $(CFLAGS) -c -o test_gstreamer-test_gstreamer.obj `if test -f 'test_gstreamer.c'; then $(CYGPATH_W) 'test_gstreamer.c'; else $(CYGPATH_W) '$(srcdir)/test_gstreamer.c'; fi` .cc.o: @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $< .cc.obj: @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .cc.lo: @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags check-TESTS: $(TESTS) @failed=0; all=0; xfail=0; xpass=0; skip=0; \ srcdir=$(srcdir); export srcdir; \ list=' $(TESTS) '; \ $(am__tty_colors); \ if test -n "$$list"; then \ for tst in $$list; do \ if test -f ./$$tst; then dir=./; \ elif test -f $$tst; then dir=; \ else dir="$(srcdir)/"; fi; \ if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ all=`expr $$all + 1`; \ case " $(XFAIL_TESTS) " in \ *[\ \ ]$$tst[\ \ ]*) \ xpass=`expr $$xpass + 1`; \ failed=`expr $$failed + 1`; \ col=$$red; res=XPASS; \ ;; \ *) \ col=$$grn; res=PASS; \ ;; \ esac; \ elif test $$? -ne 77; then \ all=`expr $$all + 1`; \ case " $(XFAIL_TESTS) " in \ *[\ \ ]$$tst[\ \ ]*) \ xfail=`expr $$xfail + 1`; \ col=$$lgn; res=XFAIL; \ ;; \ *) \ failed=`expr $$failed + 1`; \ col=$$red; res=FAIL; \ ;; \ esac; \ else \ skip=`expr $$skip + 1`; \ col=$$blu; res=SKIP; \ fi; \ echo "$${col}$$res$${std}: $$tst"; \ done; \ if test "$$all" -eq 1; then \ tests="test"; \ All=""; \ else \ tests="tests"; \ All="All "; \ fi; \ if test "$$failed" -eq 0; then \ if test "$$xfail" -eq 0; then \ banner="$$All$$all $$tests passed"; \ else \ if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ fi; \ else \ if test "$$xpass" -eq 0; then \ banner="$$failed of $$all $$tests failed"; \ else \ if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ fi; \ fi; \ dashes="$$banner"; \ skipped=""; \ if test "$$skip" -ne 0; then \ if test "$$skip" -eq 1; then \ skipped="($$skip test was not run)"; \ else \ skipped="($$skip tests were not run)"; \ fi; \ test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ dashes="$$skipped"; \ fi; \ report=""; \ if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ report="Please report to $(PACKAGE_BUGREPORT)"; \ test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ dashes="$$report"; \ fi; \ dashes=`echo "$$dashes" | sed s/./=/g`; \ if test "$$failed" -eq 0; then \ col="$$grn"; \ else \ col="$$red"; \ fi; \ echo "$${col}$$dashes$${std}"; \ echo "$${col}$$banner$${std}"; \ test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \ test -z "$$report" || echo "$${col}$$report$${std}"; \ echo "$${col}$$dashes$${std}"; \ test "$$failed" -eq 0; \ else :; fi distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) $(MAKE) $(AM_MAKEFLAGS) check-TESTS check: check-recursive all-am: Makefile $(LTLIBRARIES) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(plugindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-checkPROGRAMS clean-generic clean-libtool \ clean-noinstLTLIBRARIES clean-pluginLTLIBRARIES mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-pluginLTLIBRARIES install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-pluginLTLIBRARIES .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) check-am \ ctags-recursive install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-TESTS check-am clean \ clean-checkPROGRAMS clean-generic clean-libtool \ clean-noinstLTLIBRARIES clean-pluginLTLIBRARIES ctags \ ctags-recursive distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-pluginLTLIBRARIES install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am uninstall-pluginLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libextractor-1.3/src/plugins/thumbnailgtk_extractor.c0000644000175000017500000001256512016742766020224 00000000000000/* This file is part of libextractor. (C) 2005, 2009, 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/thumbnailgtk_extractor.c * @author Christian Grothoff * @brief this extractor produces a binary (!) encoded * thumbnail of images (using gdk pixbuf). The bottom * of the file includes a decoder method that can be used * to reproduce the 128x128 PNG thumbnails. We use * libmagic to test if the input data is actually an * image before trying to give it to gtk. */ #include "platform.h" #include "extractor.h" #include #include #include /** * Target size for the thumbnails (width and height). */ #define THUMBSIZE 128 /** * Maximum image size supported (to avoid unreasonable * allocations) */ #define MAX_IMAGE_SIZE (32 * 1024 * 1024) /** * Global handle to MAGIC data. */ static magic_t magic; /** * Main method for the gtk-thumbnailer plugin. * * @param ec extraction context */ void EXTRACTOR_thumbnailgtk_extract_method (struct EXTRACTOR_ExtractContext *ec) { GdkPixbufLoader *loader; GdkPixbuf *in; GdkPixbuf *out; size_t length; char *thumb; unsigned long width; unsigned long height; char format[64]; void *data; uint64_t size; size_t off; ssize_t iret; void *buf; const char *mime; if (-1 == (iret = ec->read (ec->cls, &data, 16 * 1024))) return; if (NULL == (mime = magic_buffer (magic, data, iret))) return; if (0 != strncmp (mime, "image/", strlen ("image/"))) return; /* not an image */ /* read entire image into memory */ size = ec->get_size (ec->cls); if (UINT64_MAX == size) size = MAX_IMAGE_SIZE; /* unknown size, cap at max */ if (size > MAX_IMAGE_SIZE) return; /* FAR too big to be an image */ if (NULL == (buf = malloc (size))) return; /* too big to fit into memory on this system */ /* start with data already read */ memcpy (buf, data, iret); off = iret; while (off < size) { iret = ec->read (ec->cls, &data, size - off); if (iret <= 0) { /* io error */ free (buf); return; } memcpy (buf + off, data, iret); off += iret; } loader = gdk_pixbuf_loader_new (); gdk_pixbuf_loader_write (loader, buf, size, NULL); free (buf); in = gdk_pixbuf_loader_get_pixbuf (loader); gdk_pixbuf_loader_close (loader, NULL); if (NULL == in) { g_object_unref (loader); return; } g_object_ref (in); g_object_unref (loader); height = gdk_pixbuf_get_height (in); width = gdk_pixbuf_get_width (in); snprintf (format, sizeof (format), "%ux%u", (unsigned int) width, (unsigned int) height); if (0 != ec->proc (ec->cls, "thumbnailgtk", EXTRACTOR_METATYPE_IMAGE_DIMENSIONS, EXTRACTOR_METAFORMAT_UTF8, "text/plain", format, strlen (format) + 1)) { g_object_unref (in); return; } if ((height <= THUMBSIZE) && (width <= THUMBSIZE)) { g_object_unref (in); return; } if (height > THUMBSIZE) { width = width * THUMBSIZE / height; height = THUMBSIZE; } if (width > THUMBSIZE) { height = height * THUMBSIZE / width; width = THUMBSIZE; } if ( (0 == height) || (0 == width) ) { g_object_unref (in); return; } out = gdk_pixbuf_scale_simple (in, width, height, GDK_INTERP_BILINEAR); g_object_unref (in); thumb = NULL; length = 0; if (NULL == out) return; if (! gdk_pixbuf_save_to_buffer (out, &thumb, &length, "png", NULL, "compression", "9", NULL)) { g_object_unref (out); return; } g_object_unref (out); if (NULL == thumb) return; ec->proc (ec->cls, "thumbnailgtk", EXTRACTOR_METATYPE_THUMBNAIL, EXTRACTOR_METAFORMAT_BINARY, "image/png", thumb, length); free (thumb); } /** * This plugin sometimes is installed under the alias 'thumbnail'. * So we need to provide a second entry method. * * @param ec extraction context */ void EXTRACTOR_thumbnail_extract_method (struct EXTRACTOR_ExtractContext *ec) { EXTRACTOR_thumbnailgtk_extract_method (ec); } /** * Initialize glib and load magic file. */ void __attribute__ ((constructor)) thumbnailgtk_gobject_init () { g_type_init (); magic = magic_open (MAGIC_MIME_TYPE); if (0 != magic_load (magic, NULL)) { /* FIXME: how to deal with errors? */ } } /** * Destructor for the library, cleans up. */ void __attribute__ ((destructor)) thumbnailgtk_ltdl_fini () { if (NULL != magic) { magic_close (magic); magic = NULL; } } /* end of thumbnailgtk_extractor.c */ libextractor-1.3/src/plugins/test_thumbnailgtk.c0000644000175000017500000000352112021431245017137 00000000000000/* This file is part of libextractor. (C) 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/test_thumbnailgtkj.c * @brief testcase for thumbnailgtkj plugin * @author Christian Grothoff */ #include "platform.h" #include "test_lib.h" /** * Main function for the THUMBNAILGTKJ testcase. * * @param argc number of arguments (ignored) * @param argv arguments (ignored) * @return 0 on success */ int main (int argc, char *argv[]) { uint8_t thumbnail_data[] = { 137, 80, 78, 71 /* rest omitted */ }; struct SolutionData thumbnail_torsten_sol[] = { { EXTRACTOR_METATYPE_IMAGE_DIMENSIONS, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "1600x1200", strlen ("1600x1200") + 1, 0 }, { EXTRACTOR_METATYPE_THUMBNAIL, EXTRACTOR_METAFORMAT_BINARY, "image/png", (void *) thumbnail_data, sizeof (thumbnail_data), 0 }, { 0, 0, NULL, NULL, 0, -1 } }; struct ProblemSet ps[] = { { "testdata/thumbnail_torsten.jpg", thumbnail_torsten_sol }, { NULL, NULL } }; return ET_main ("thumbnailgtk", ps); } /* end of test_thumbnailgtk.c */ libextractor-1.3/src/plugins/test_nsf.c0000644000175000017500000000475312016742777015267 00000000000000/* This file is part of libextractor. (C) 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/test_nsf.c * @brief testcase for nsf plugin * @author Christian Grothoff */ #include "platform.h" #include "test_lib.h" /** * Main function for the NSF testcase. * * @param argc number of arguments (ignored) * @param argv arguments (ignored) * @return 0 on success */ int main (int argc, char *argv[]) { struct SolutionData nsf_arkanoid_sol[] = { { EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "audio/x-nsf", strlen ("audio/x-nsf") + 1, 0 }, { EXTRACTOR_METATYPE_FORMAT_VERSION, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "1", strlen ("1") + 1, 0 }, { EXTRACTOR_METATYPE_SONG_COUNT, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "26", strlen ("26") + 1, 0 }, { EXTRACTOR_METATYPE_STARTING_SONG, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "1", strlen ("1") + 1, 0 }, { EXTRACTOR_METATYPE_ALBUM, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Arkanoid II - Revenge of Doh", strlen ("Arkanoid II - Revenge of Doh") + 1, 0 }, { EXTRACTOR_METATYPE_ARTIST, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "", strlen ("") + 1, 0 }, { EXTRACTOR_METATYPE_COPYRIGHT, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "1988 Taito", strlen ("1988 Taito") + 1, 0 }, { EXTRACTOR_METATYPE_BROADCAST_TELEVISION_SYSTEM, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "NTSC", strlen ("NTSC") + 1, 0 }, { 0, 0, NULL, NULL, 0, -1 } }; struct ProblemSet ps[] = { { "testdata/nsf_arkanoid.nsf", nsf_arkanoid_sol }, { NULL, NULL } }; return ET_main ("nsf", ps); } /* end of test_nsf.c */ libextractor-1.3/src/plugins/test_archive.c0000644000175000017500000000352612016742777016117 00000000000000/* This file is part of libextractor. (C) 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/test_archive.c * @brief testcase for archive plugin * @author Christian Grothoff */ #include "platform.h" #include "test_lib.h" /** * Main function for the ARCHIVE testcase. * * @param argc number of arguments (ignored) * @param argv arguments (ignored) * @return 0 on success */ int main (int argc, char *argv[]) { struct SolutionData tar_archive_sol[] = { { EXTRACTOR_METATYPE_FILENAME, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "test.html", strlen ("test.html") + 1, 0 }, { EXTRACTOR_METATYPE_FILENAME, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "test.jpg", strlen ("test.jpg") + 1, 0 }, { EXTRACTOR_METATYPE_FORMAT, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "GNU tar format", strlen ("GNU tar format") + 1, 0 }, { 0, 0, NULL, NULL, 0, -1 } }; struct ProblemSet ps[] = { { "testdata/archive_test.tar", tar_archive_sol }, { NULL, NULL } }; return ET_main ("archive", ps); } /* end of test_archive.c */ libextractor-1.3/src/plugins/archive_extractor.c0000644000175000017500000000655512036736516017154 00000000000000/* This file is part of libextractor. (C) 2012 Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/archive_extractor.c * @brief plugin to support archives (such as TAR) * @author Christian Grothoff */ #include "platform.h" #include "extractor.h" #include #include /** * Callback for libarchive for 'reading'. * * @param a archive handle * @param client_data our 'struct EXTRACTOR_ExtractContext' * @param buff where to store data with pointer to data * @return number of bytes read */ static ssize_t read_cb (struct archive *a, void *client_data, const void **buff) { struct EXTRACTOR_ExtractContext *ec = client_data; ssize_t ret; *buff = NULL; if (-1 == (ret = ec->read (ec->cls, (void **) buff, 16 * 1024))) return ARCHIVE_FATAL; return ret; } /** * Older versions of libarchive do not define __LA_INT64_T. */ #if ARCHIVE_VERSION_NUMBER < 2000000 #define __LA_INT64_T size_t #else #ifndef __LA_INT64_T #define __LA_INT64_T int64_t #endif #endif /** * Callback for libarchive for 'skipping'. * * @param a archive handle * @param client_data our 'struct EXTRACTOR_ExtractContext' * @param request number of bytes to skip * @return number of bytes skipped */ static __LA_INT64_T skip_cb (struct archive *a, void *client_data, __LA_INT64_T request) { struct EXTRACTOR_ExtractContext *ec = client_data; if (-1 == ec->seek (ec->cls, request, SEEK_CUR)) return 0; return request; } /** * Main entry method for the ARCHIVE extraction plugin. * * @param ec extraction context provided to the plugin */ void EXTRACTOR_archive_extract_method (struct EXTRACTOR_ExtractContext *ec) { struct archive *a; struct archive_entry *entry; const char *fname; const char *s; char *format; format = NULL; a = archive_read_new (); archive_read_support_compression_all (a); archive_read_support_format_all (a); if(archive_read_open2 (a, ec, NULL, &read_cb, &skip_cb, NULL)!= ARCHIVE_OK) return; while (ARCHIVE_OK == archive_read_next_header(a, &entry)) { if ( (NULL == format) && (NULL != (fname = archive_format_name (a))) ) format = strdup (fname); s = archive_entry_pathname (entry); if (0 != ec->proc (ec->cls, "tar", EXTRACTOR_METATYPE_FILENAME, EXTRACTOR_METAFORMAT_UTF8, "text/plain", s, strlen (s) + 1)) break; } archive_read_finish (a); if (NULL != format) { if (0 != ec->proc (ec->cls, "tar", EXTRACTOR_METATYPE_FORMAT, EXTRACTOR_METAFORMAT_UTF8, "text/plain", format, strlen (format) + 1)) { free (format); return; } free (format); } } /* end of tar_extractor.c */ libextractor-1.3/src/plugins/test_thumbnailffmpeg.c0000644000175000017500000000277612016742777017654 00000000000000/* This file is part of libextractor. (C) 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/test_thumbnailffmpeg.c * @brief testcase for thumbnailffmpeg plugin * @author Christian Grothoff */ #include "platform.h" #include "test_lib.h" /** * Main function for the THUMBNAILFFMPEG testcase. * * @param argc number of arguments (ignored) * @param argv arguments (ignored) * @return 0 on success */ int main (int argc, char *argv[]) { struct SolutionData thumbnailffmpeg_video_sol[] = { { 0, 0, NULL, NULL, 0, -1 } }; struct ProblemSet ps[] = { { "testdata/thumbnailffmpeg_video.mov", thumbnailffmpeg_video_sol }, { NULL, NULL } }; return ET_main ("thumbnailffmpeg", ps); } /* end of test_thumbnailffmpeg.c */ libextractor-1.3/src/plugins/test_man.c0000644000175000017500000000374112016742777015250 00000000000000/* This file is part of libextractor. (C) 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/test_man.c * @brief testcase for man plugin * @author Christian Grothoff */ #include "platform.h" #include "test_lib.h" /** * Main function for the MAN testcase. * * @param argc number of arguments (ignored) * @param argv arguments (ignored) * @return 0 on success */ int main (int argc, char *argv[]) { struct SolutionData man_extract_sol[] = { { EXTRACTOR_METATYPE_TITLE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "EXTRACT", strlen ("EXTRACT") + 1, 0 }, { EXTRACTOR_METATYPE_SECTION, EXTRACTOR_METAFORMAT_UTF8, "text/plain", _("Commands"), strlen (_("Commands")) + 1, 0 }, { EXTRACTOR_METATYPE_MODIFICATION_DATE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Aug 7, 2012", strlen ("Aug 7, 2012") + 1, 0 }, { EXTRACTOR_METATYPE_SOURCE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", _("libextractor 0.7.0"), strlen (_("libextractor 0.7.0")) + 1, 0 }, { 0, 0, NULL, NULL, 0, -1 } }; struct ProblemSet ps[] = { { "testdata/man_extract.1", man_extract_sol }, { NULL, NULL } }; return ET_main ("man", ps); } /* end of test_man.c */ libextractor-1.3/src/plugins/test_jpeg.c0000644000175000017500000000361112016742777015416 00000000000000/* This file is part of libextractor. (C) 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/test_jpeg.c * @brief testcase for jpeg plugin * @author Christian Grothoff */ #include "platform.h" #include "test_lib.h" /** * Main function for the JPEG testcase. * * @param argc number of arguments (ignored) * @param argv arguments (ignored) * @return 0 on success */ int main (int argc, char *argv[]) { struct SolutionData jpeg_image_sol[] = { { EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "image/jpeg", strlen ("image/jpeg") + 1, 0 }, { EXTRACTOR_METATYPE_IMAGE_DIMENSIONS, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "3x3", strlen ("3x3") + 1, 0 }, { EXTRACTOR_METATYPE_COMMENT, EXTRACTOR_METAFORMAT_C_STRING, "text/plain", "(C) 2001 by Christian Grothoff, using gimp 1.2 1", strlen ("(C) 2001 by Christian Grothoff, using gimp 1.2 1"), 0 }, { 0, 0, NULL, NULL, 0, -1 } }; struct ProblemSet ps[] = { { "testdata/jpeg_image.jpg", jpeg_image_sol }, { NULL, NULL } }; return ET_main ("jpeg", ps); } /* end of test_jpeg.c */ libextractor-1.3/src/plugins/test_ole2.c0000644000175000017500000002573312016742777015343 00000000000000/* This file is part of libextractor. (C) 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/test_ole2.c * @brief testcase for ole2 plugin * @author Christian Grothoff */ #include "platform.h" #include "test_lib.h" /** * Main function for the OLE2 testcase. * * @param argc number of arguments (ignored) * @param argv arguments (ignored) * @return 0 on success */ int main (int argc, char *argv[]) { struct SolutionData ole2_msword_sol[] = { { EXTRACTOR_METATYPE_CREATOR, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Nils Durner", strlen ("Nils Durner") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN_DATE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "2005-03-21T06:11:12Z", strlen ("2005-03-21T06:11:12Z") + 1, 0 }, { EXTRACTOR_METATYPE_DESCRIPTION, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "This is a small document to test meta data extraction by GNU libextractor.", strlen ("This is a small document to test meta data extraction by GNU libextractor.") + 1, 0 }, { EXTRACTOR_METATYPE_KEYWORDS, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "ole ole2 eole2extractor", strlen ("ole ole2 eole2extractor") + 1, 0 }, { EXTRACTOR_METATYPE_SUBJECT, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "GNU libextractor", strlen ("GNU libextractor") + 1, 0 }, { EXTRACTOR_METATYPE_TITLE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Testcase for the ole2 extractor", strlen ("Testcase for the ole2 extractor") + 1, 0 }, { EXTRACTOR_METATYPE_LAST_SAVED_BY, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Nils Durner", strlen ("Nils Durner") + 1, 0 }, { EXTRACTOR_METATYPE_CREATION_DATE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "2005-03-21T06:10:19Z", strlen ("2005-03-21T06:10:19Z") + 1, 0 }, { EXTRACTOR_METATYPE_EDITING_CYCLES, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "2", strlen ("2") + 1, 0 }, { 0, 0, NULL, NULL, 0, -1 } }; struct SolutionData ole2_starwriter_sol[] = { { EXTRACTOR_METATYPE_CREATOR, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Christian Grothoff", strlen ("Christian Grothoff") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN_DATE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "2004-09-24T02:54:31Z", strlen ("2004-09-24T02:54:31Z") + 1, 0 }, { EXTRACTOR_METATYPE_DESCRIPTION, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "The comments", strlen ("The comments") + 1, 0 }, { EXTRACTOR_METATYPE_KEYWORDS, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "The Keywords", strlen ("The Keywords") + 1, 0 }, { EXTRACTOR_METATYPE_SUBJECT, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "The Subject", strlen ("The Subject") + 1, 0 }, { EXTRACTOR_METATYPE_TITLE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "The Title", strlen ("The Title") + 1, 0 }, { EXTRACTOR_METATYPE_LAST_SAVED_BY, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Christian Grothoff", strlen ("Christian Grothoff") + 1, 0 }, { EXTRACTOR_METATYPE_CREATION_DATE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "2004-09-24T02:53:15Z", strlen ("2004-09-24T02:53:15Z") + 1, 0 }, { EXTRACTOR_METATYPE_EDITING_CYCLES, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "4", strlen ("4") + 1, 0 }, { EXTRACTOR_METATYPE_TITLE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "The Title", strlen ("The Title") + 1, 0 }, { EXTRACTOR_METATYPE_SUBJECT, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "The Subject", strlen ("The Subject") + 1, 0 }, { EXTRACTOR_METATYPE_COMMENT, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "The comments", strlen ("The comments") + 1, 0 }, { EXTRACTOR_METATYPE_KEYWORDS, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "The Keywords", strlen ("The Keywords") + 1, 0 }, { 0, 0, NULL, NULL, 0, -1 } }; struct SolutionData ole2_blair_sol[] = { { EXTRACTOR_METATYPE_LANGUAGE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "U.S. English", strlen ("U.S. English") + 1, 0 }, { EXTRACTOR_METATYPE_CREATOR, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "default", strlen ("default") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN_DATE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "2003-02-03T11:18:00Z", strlen ("2003-02-03T11:18:00Z") + 1, 0 }, { EXTRACTOR_METATYPE_TITLE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Iraq- ITS INFRASTRUCTURE OF CONCEALMENT, DECEPTION AND INTIMIDATION", strlen ("Iraq- ITS INFRASTRUCTURE OF CONCEALMENT, DECEPTION AND INTIMIDATION") + 1, 0 }, { EXTRACTOR_METATYPE_CHARACTER_COUNT, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "22090", strlen ("22090") + 1, 0 }, { EXTRACTOR_METATYPE_LAST_SAVED_BY, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "MKhan", strlen ("MKhan") + 1, 0 }, { EXTRACTOR_METATYPE_PAGE_COUNT, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "1", strlen ("1") + 1, 0 }, { EXTRACTOR_METATYPE_WORD_COUNT, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "3875", strlen ("3875") + 1, 0 }, { EXTRACTOR_METATYPE_CREATION_DATE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "2003-02-03T09:31:00Z", strlen ("2003-02-03T09:31:00Z") + 1, 0 }, { EXTRACTOR_METATYPE_EDITING_CYCLES, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "4", strlen ("4") + 1, 0 }, { EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "application/vnd.ms-files", strlen ("application/vnd.ms-files") + 1, 0 }, { EXTRACTOR_METATYPE_CREATED_BY_SOFTWARE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Microsoft Word 8.0", strlen ("Microsoft Word 8.0") + 1, 0 }, { EXTRACTOR_METATYPE_TEMPLATE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Normal.dot", strlen ("Normal.dot") + 1, 0 }, { EXTRACTOR_METATYPE_LINE_COUNT, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "184", strlen ("184") + 1, 0 }, { EXTRACTOR_METATYPE_PARAGRAPH_COUNT, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "44", strlen ("44") + 1, 0 }, { EXTRACTOR_METATYPE_REVISION_HISTORY, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Revision #0: Author `cic22' worked on `C:\\DOCUME~1\\phamill\\LOCALS~1\\Temp\\AutoRecovery save of Iraq - security.asd'", strlen ("Revision #0: Author `cic22' worked on `C:\\DOCUME~1\\phamill\\LOCALS~1\\Temp\\AutoRecovery save of Iraq - security.asd'") + 1, 0 }, { EXTRACTOR_METATYPE_REVISION_HISTORY, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Revision #1: Author `cic22' worked on `C:\\DOCUME~1\\phamill\\LOCALS~1\\Temp\\AutoRecovery save of Iraq - security.asd'", strlen ("Revision #1: Author `cic22' worked on `C:\\DOCUME~1\\phamill\\LOCALS~1\\Temp\\AutoRecovery save of Iraq - security.asd'") + 1, 0 }, { EXTRACTOR_METATYPE_REVISION_HISTORY, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Revision #2: Author `cic22' worked on `C:\\DOCUME~1\\phamill\\LOCALS~1\\Temp\\AutoRecovery save of Iraq - security.asd'", strlen ("Revision #2: Author `cic22' worked on `C:\\DOCUME~1\\phamill\\LOCALS~1\\Temp\\AutoRecovery save of Iraq - security.asd'") + 1, 0 }, { EXTRACTOR_METATYPE_REVISION_HISTORY, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Revision #3: Author `JPratt' worked on `C:\\TEMP\\Iraq - security.doc'", strlen ("Revision #3: Author `JPratt' worked on `C:\\TEMP\\Iraq - security.doc'") + 1, 0 }, { EXTRACTOR_METATYPE_REVISION_HISTORY, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Revision #4: Author `JPratt' worked on `A:\\Iraq - security.doc'", strlen ("Revision #4: Author `JPratt' worked on `A:\\Iraq - security.doc'") + 1, 0 }, { EXTRACTOR_METATYPE_REVISION_HISTORY, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Revision #5: Author `ablackshaw' worked on `C:\\ABlackshaw\\Iraq - security.doc'", strlen ("Revision #5: Author `ablackshaw' worked on `C:\\ABlackshaw\\Iraq - security.doc'") + 1, 0 }, { EXTRACTOR_METATYPE_REVISION_HISTORY, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Revision #6: Author `ablackshaw' worked on `C:\\ABlackshaw\\A;Iraq - security.doc'", strlen ("Revision #6: Author `ablackshaw' worked on `C:\\ABlackshaw\\A;Iraq - security.doc'") + 1, 0 }, { EXTRACTOR_METATYPE_REVISION_HISTORY, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Revision #7: Author `ablackshaw' worked on `A:\\Iraq - security.doc'", strlen ("Revision #7: Author `ablackshaw' worked on `A:\\Iraq - security.doc'") + 1, 0 }, { EXTRACTOR_METATYPE_REVISION_HISTORY, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Revision #8: Author `MKhan' worked on `C:\\TEMP\\Iraq - security.doc'", strlen ("Revision #8: Author `MKhan' worked on `C:\\TEMP\\Iraq - security.doc'") + 1, 0 }, { EXTRACTOR_METATYPE_REVISION_HISTORY, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Revision #9: Author `MKhan' worked on `C:\\WINNT\\Profiles\\mkhan\\Desktop\\Iraq.doc'", strlen ("Revision #9: Author `MKhan' worked on `C:\\WINNT\\Profiles\\mkhan\\Desktop\\Iraq.doc'") + 1, 0 }, { 0, 0, NULL, NULL, 0, -1 } }; struct SolutionData ole2_excel_sol[] = { { EXTRACTOR_METATYPE_CREATOR, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "JV", strlen ("JV") + 1, 0 }, { EXTRACTOR_METATYPE_LAST_SAVED_BY, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "JV", strlen ("JV") + 1, 0 }, { EXTRACTOR_METATYPE_CREATION_DATE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "2002-03-20T21:26:28Z", strlen ("2002-03-20T21:26:28Z") + 1, 0 }, { EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "application/vnd.ms-files", strlen ("application/vnd.ms-files") + 1, 0 }, { EXTRACTOR_METATYPE_CREATED_BY_SOFTWARE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Microsoft Excel", strlen ("Microsoft Excel") + 1, 0 }, { 0, 0, NULL, NULL, 0, -1 } }; struct ProblemSet ps[] = { { "testdata/ole2_msword.doc", ole2_msword_sol }, { "testdata/ole2_starwriter40.sdw", ole2_starwriter_sol }, { "testdata/ole2_blair.doc", ole2_blair_sol }, { "testdata/ole2_excel.xls", ole2_excel_sol }, { NULL, NULL } }; return ET_main ("ole2", ps); } /* end of test_ole2.c */ libextractor-1.3/src/plugins/wav_extractor.c0000644000175000017500000000777012016742766016332 00000000000000/* This file is part of libextractor. (C) 2004, 2009, 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. This code was based on bitcollider 0.6.0 (PD) 2004 The Bitzi Corporation http://bitzi.com/ (PD) 2001 The Bitzi Corporation Please see file COPYING or http://bitzi.com/publicdomain for more info. */ /** * @file plugins/wav_extractor.c * @brief plugin to support WAV files * @author Christian Grothoff */ #include "platform.h" #include "extractor.h" #if BIG_ENDIAN_HOST static uint16_t little_endian_to_host16 (uint16_t in) { unsigned char *ptr = (unsigned char *) ∈ return ((ptr[1] & 0xFF) << 8) | (ptr[0] & 0xFF); } static uint32_t little_endian_to_host32 (uint32_t in) { unsigned char *ptr = (unsigned char *) ∈ return ((ptr[3] & 0xFF) << 24) | ((ptr[2] & 0xFF) << 16) | ((ptr[1] & 0xFF) << 8) | (ptr[0] & 0xFF); } #endif /** * Extract information from WAV files. * * @param ec extraction context * * @detail * A WAV header looks as follows: * * Offset Value meaning * 16 4 bytes 0x00000010 // Length of the fmt data (16 bytes) * 20 2 bytes 0x0001 // Format tag: 1 = PCM * 22 2 bytes // Channels: 1 = mono, 2 = stereo * 24 4 bytes // Samples per second: e.g., 44100 */ void EXTRACTOR_wav_extract_method (struct EXTRACTOR_ExtractContext *ec) { void *data; const unsigned char *buf; uint16_t channels; uint16_t sample_size; uint32_t sample_rate; uint32_t data_len; uint32_t samples; char scratch[256]; if (44 > ec->read (ec->cls, &data, 44)) return; buf = data; if ((buf[0] != 'R' || buf[1] != 'I' || buf[2] != 'F' || buf[3] != 'F' || buf[8] != 'W' || buf[9] != 'A' || buf[10] != 'V' || buf[11] != 'E' || buf[12] != 'f' || buf[13] != 'm' || buf[14] != 't' || buf[15] != ' ')) return; /* not a WAV file */ channels = *((uint16_t *) &buf[22]); sample_rate = *((uint32_t *) &buf[24]); sample_size = *((uint16_t *) &buf[34]); data_len = *((uint32_t *) &buf[40]); #if BIG_ENDIAN_HOST channels = little_endian_to_host16 (channels); sample_size = little_endian_to_host16 (sample_size); sample_rate = little_endian_to_host32 (sample_rate); data_len = little_endian_to_host32 (data_len); #endif if ( (8 != sample_size) && (16 != sample_size) ) return; /* invalid sample size found in wav file */ if (0 == channels) return; /* invalid channels value -- avoid division by 0! */ samples = data_len / (channels * (sample_size >> 3)); snprintf (scratch, sizeof (scratch), "%u ms, %d Hz, %s", (samples < sample_rate) ? (samples * 1000 / sample_rate) : (samples / sample_rate) * 1000, sample_rate, (1 == channels) ? _("mono") : _("stereo")); if (0 != ec->proc (ec->cls, "wav", EXTRACTOR_METATYPE_RESOURCE_TYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", scratch, strlen (scratch) + 1)) return; if (0 != ec->proc (ec->cls, "wav", EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "audio/x-wav", strlen ("audio/x-wav") +1 )) return; } /* end of wav_extractor.c */ libextractor-1.3/src/plugins/test_mime.c0000644000175000017500000000352312007303252015377 00000000000000/* This file is part of libextractor. (C) 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/test_mime.c * @brief testcase for ogg plugin * @author Christian Grothoff */ #include "platform.h" #include "test_lib.h" /** * Main function for the MIME testcase. * * @param argc number of arguments (ignored) * @param argv arguments (ignored) * @return 0 on success */ int main (int argc, char *argv[]) { struct SolutionData courseclear_sol[] = { { EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "application/ogg", strlen ("application/ogg") + 1, 0 }, { 0, 0, NULL, NULL, 0, -1 } }; struct SolutionData gif_image_sol[] = { { EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "image/gif", strlen ("image/gif") + 1, 0 }, { 0, 0, NULL, NULL, 0, -1 } }; struct ProblemSet ps[] = { { "testdata/ogg_courseclear.ogg", courseclear_sol }, { "testdata/gif_image.gif", gif_image_sol }, { NULL, NULL } }; return ET_main ("mime", ps); } /* end of test_mime.c */ libextractor-1.3/src/plugins/test_html.c0000644000175000017500000000546212016742777015443 00000000000000/* This file is part of libextractor. (C) 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/test_html.c * @brief testcase for html plugin * @author Christian Grothoff */ #include "platform.h" #include "test_lib.h" /** * Main function for the HTML testcase. * * @param argc number of arguments (ignored) * @param argv arguments (ignored) * @return 0 on success */ int main (int argc, char *argv[]) { struct SolutionData html_grothoff_sol[] = { { EXTRACTOR_METATYPE_TITLE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Christian Grothoff", strlen ("Christian Grothoff") + 1, 0 }, { EXTRACTOR_METATYPE_DESCRIPTION, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Homepage of Christian Grothoff", strlen ("Homepage of Christian Grothoff") + 1, 0 }, { EXTRACTOR_METATYPE_AUTHOR_NAME, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Christian Grothoff", strlen ("Christian Grothoff") + 1, 0 }, { EXTRACTOR_METATYPE_KEYWORDS, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Christian,Grothoff", strlen ("Christian,Grothoff") + 1, 0 }, { EXTRACTOR_METATYPE_TITLE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Welcome to Christian Grothoff", strlen ("Welcome to Christian Grothoff") + 1, 0 }, { EXTRACTOR_METATYPE_LANGUAGE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "en", strlen ("en") + 1, 0 }, { EXTRACTOR_METATYPE_PUBLISHER, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Christian Grothoff", strlen ("Christian Grothoff") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN_DATE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "2000-08-20", strlen ("2000-08-20") + 1, 0 }, { EXTRACTOR_METATYPE_RIGHTS, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "(C) 2000 by Christian Grothoff", strlen ("(C) 2000 by Christian Grothoff") + 1, 0 }, { 0, 0, NULL, NULL, 0, -1 } }; struct ProblemSet ps[] = { { "testdata/html_grothoff.html", html_grothoff_sol }, { NULL, NULL } }; return ET_main ("html", ps); } /* end of test_html.c */ libextractor-1.3/src/plugins/Makefile.am0000644000175000017500000003316012255336031015307 00000000000000INCLUDES = \ -I$(top_srcdir)/src/include \ -I$(top_srcdir)/src/common # install plugins under: plugindir = $(libdir)/@RPLUGINDIR@ if HAVE_GNU_LD makesymbolic=-Wl,-Bsymbolic endif if USE_COVERAGE AM_CFLAGS = --coverage -O0 XLIB = -lgcov endif PLUGINFLAGS = $(makesymbolic) $(LE_PLUGIN_LDFLAGS) SUBDIRS = . EXTRA_DIST = \ fuzz_default.sh \ template_extractor.c \ testdata/archive_test.tar \ testdata/deb_bzip2.deb \ testdata/dvi_ora.dvi \ testdata/exiv2_iptc.jpg \ testdata/flac_kraftwerk.flac \ testdata/gif_image.gif \ testdata/gstreamer_30_and_33.asf \ testdata/gstreamer_barsandtone.flv \ testdata/gstreamer_sample_sorenson.mov \ testdata/html_grothoff.html \ testdata/it_dawn.it \ testdata/jpeg_image.jpg \ testdata/man_extract.1 \ testdata/matroska_flame.mkv \ testdata/midi_dth.mid \ testdata/mpeg_alien.mpg \ testdata/mpeg_melt.mpg \ testdata/nsf_arkanoid.nsf \ testdata/nsfe_classics.nsfe \ testdata/odf_cg.odt \ testdata/ole2_blair.doc \ testdata/ole2_excel.xls \ testdata/ole2_msword.doc \ testdata/ole2_starwriter40.sdw \ testdata/ogg_courseclear.ogg \ testdata/png_image.png \ testdata/ps_bloomfilter.ps \ testdata/ps_wallace.ps \ testdata/riff_flame.avi \ testdata/rpm_test.rpm \ testdata/s3m_2nd_pm.s3m \ testdata/sid_wizball.sid \ testdata/thumbnail_torsten.jpg \ testdata/tiff_haute.tiff \ testdata/wav_noise.wav \ testdata/wav_alert.wav \ testdata/xm_diesel.xm \ testdata/zip_test.zip if HAVE_MAGIC PLUGIN_MIME=libextractor_mime.la TEST_MIME=test_mime if HAVE_FFMPEG # FFmpeg-thumbnailer requires MAGIC and FFMPEG PLUGIN_FFMPEG=libextractor_thumbnailffmpeg.la TEST_FFMPEG=test_thumbnailffmpeg endif if HAVE_FFMPEG_NEW PLUGIN_PREVIEWOPUS=libextractor_previewopus.la TEST_PREVIEWOPUS=test_previewopus endif if HAVE_GTK # Gtk-thumbnailer requires MAGIC and GTK PLUGIN_GTK=libextractor_thumbnailgtk.la TEST_GTK=test_thumbnailgtk endif if HAVE_TIDY # HTML requires MAGIC and tidy PLUGIN_HTML=libextractor_html.la TEST_HTML=test_html endif endif if HAVE_ARCHIVE PLUGIN_ARCHIVE=libextractor_archive.la TEST_ARCHIVE=test_archive endif if HAVE_EXIV2 PLUGIN_EXIV2=libextractor_exiv2.la TEST_EXIV2=test_exiv2 endif if HAVE_FLAC PLUGIN_FLAC=libextractor_flac.la TEST_FLAC=test_flac endif if HAVE_GIF PLUGIN_GIF=libextractor_gif.la TEST_GIF=test_gif endif if HAVE_GSF PLUGIN_GSF=libextractor_ole2.la TEST_GSF=test_ole2 endif if HAVE_GSTREAMER PLUGIN_GSTREAMER=libextractor_gstreamer.la TEST_GSTREAMER=test_gstreamer endif if HAVE_JPEG PLUGIN_JPEG=libextractor_jpeg.la TEST_JPEG=test_jpeg endif if HAVE_MP4 if HAVE_EXPERIMENTAL PLUGIN_MP4=libextractor_mp4.la TEST_MP4=test_mp4 endif endif if HAVE_MPEG2 PLUGIN_MPEG=libextractor_mpeg.la TEST_MPEG=test_mpeg endif if HAVE_LIBRPM PLUGIN_RPM=libextractor_rpm.la TEST_RPM=test_rpm endif if HAVE_SMF PLUGIN_MIDI=libextractor_midi.la TEST_MIDI=test_midi endif if HAVE_TIFF PLUGIN_TIFF=libextractor_tiff.la TEST_TIFF=test_tiff endif if HAVE_VORBISFILE PLUGIN_OGG=libextractor_ogg.la TEST_OGG=test_ogg endif if HAVE_ZLIB PLUGIN_ZLIB= \ libextractor_deb.la \ libextractor_odf.la \ libextractor_png.la \ libextractor_zip.la TEST_ZLIB=test_deb endif plugin_LTLIBRARIES = \ libextractor_dvi.la \ libextractor_it.la \ libextractor_man.la \ libextractor_nsf.la \ libextractor_nsfe.la \ libextractor_ps.la \ libextractor_riff.la \ libextractor_s3m.la \ libextractor_sid.la \ libextractor_wav.la \ libextractor_xm.la \ $(PLUGIN_ARCHIVE) \ $(PLUGIN_EXIV2) \ $(PLUGIN_FFMPEG) \ $(PLUGIN_FLAC) \ $(PLUGIN_GIF) \ $(PLUGIN_GSF) \ $(PLUGIN_GSTREAMER) \ $(PLUGIN_GTK) \ $(PLUGIN_HTML) \ $(PLUGIN_JPEG) \ $(PLUGIN_MIDI) \ $(PLUGIN_MIME) \ $(PLUGIN_MP4) \ $(PLUGIN_MPEG) \ $(PLUGIN_OGG) \ $(PLUGIN_PREVIEWOPUS) \ $(PLUGIN_RPM) \ $(PLUGIN_TIFF) \ $(PLUGIN_ZLIB) if HAVE_ZZUF fuzz_tests=fuzz_default.sh endif check_PROGRAMS = \ test_dvi \ test_it \ test_man \ test_nsf \ test_nsfe \ test_odf \ test_ps \ test_png \ test_riff \ test_s3m \ test_sid \ test_wav \ test_xm \ test_zip \ $(TEST_ARCHIVE) \ $(TEST_EXIV2) \ $(TEST_FFMPEG) \ $(TEST_PREVIEWOPUS) \ $(TEST_FLAC) \ $(TEST_GIF) \ $(TEST_GSF) \ $(TEST_GSTREAMER) \ $(TEST_GTK) \ $(TEST_HTML) \ $(TEST_JPEG) \ $(TEST_MIDI) \ $(TEST_MIME) \ $(TEST_MPEG) \ $(TEST_OGG) \ $(TEST_RPM) \ $(TEST_TIFF) \ $(TEST_ZLIB) if ENABLE_TEST_RUN TESTS = \ $(fuzz_tests) \ $(check_PROGRAMS) endif noinst_LTLIBRARIES = \ libtest.la libtest_la_SOURCES = \ test_lib.c test_lib.h libtest_la_LIBADD = \ $(top_builddir)/src/main/libextractor.la $(XLIB) libextractor_archive_la_SOURCES = \ archive_extractor.c libextractor_archive_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_archive_la_LIBADD = \ -larchive $(XLIB) test_archive_SOURCES = \ test_archive.c test_archive_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_deb_la_SOURCES = \ deb_extractor.c libextractor_deb_la_LDFLAGS = \ $(PLUGINFLAGS) -lz libextractor_deb_la_LIBADD = \ $(XLIB) test_deb_SOURCES = \ test_deb.c test_deb_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_dvi_la_SOURCES = \ dvi_extractor.c libextractor_dvi_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_dvi_la_LIBADD = \ $(XLIB) $(SOCKET_LIBS) test_dvi_SOURCES = \ test_dvi.c test_dvi_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_exiv2_la_SOURCES = \ exiv2_extractor.cc libextractor_exiv2_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_exiv2_la_LIBADD = \ -lexiv2 $(XLIB) test_exiv2_SOURCES = \ test_exiv2.c test_exiv2_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_flac_la_SOURCES = \ flac_extractor.c libextractor_flac_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_flac_la_LIBADD = \ -lFLAC $(XLIB) $(LE_LIBINTL) test_flac_SOURCES = \ test_flac.c test_flac_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_gif_la_SOURCES = \ gif_extractor.c libextractor_gif_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_gif_la_LIBADD = \ -lgif $(XLIB) test_gif_SOURCES = \ test_gif.c test_gif_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_gstreamer_la_SOURCES = \ gstreamer_extractor.c libextractor_gstreamer_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_gstreamer_la_LIBADD = \ $(GSTREAMER_LIBS) $(GSTREAMER_PBUTILS_LIBS) $(GSTREAMER_TAG_LIBS) $(GSTREAMER_APP_LIBS) $(XLIB) -lpthread libextractor_gstreamer_la_CFLAGS = \ $(GSTREAMER_CFLAGS) $(GSTREAMER_PBUTILS_CFLAGS) $(GSTREAMER_TAG_CFLAGS) $(GSTREAMER_APP_CFALGS) test_gstreamer_SOURCES = \ test_gstreamer.c test_gstreamer_LDADD = \ $(top_builddir)/src/plugins/libtest.la \ $(GSTREAMER_LIBS) $(GSTREAMER_PBUTILS_LIBS) test_gstreamer_CFLAGS = \ $(GSTREAMER_CFLAGS) $(GSTREAMER_PBUTILS_CFLAGS) libextractor_html_la_SOURCES = \ html_extractor.c libextractor_html_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_html_la_LIBADD = \ -ltidy -lmagic $(XLIB) test_html_SOURCES = \ test_html.c test_html_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_it_la_SOURCES = \ it_extractor.c libextractor_it_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_it_la_LIBADD = \ $(XLIB) test_it_SOURCES = \ test_it.c test_it_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_jpeg_la_SOURCES = \ jpeg_extractor.c libextractor_jpeg_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_jpeg_la_LIBADD = \ -ljpeg $(XLIB) test_jpeg_SOURCES = \ test_jpeg.c test_jpeg_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_man_la_SOURCES = \ man_extractor.c libextractor_man_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_man_la_LIBADD = \ $(XLIB) $(LE_LIBINTL) test_man_SOURCES = \ test_man.c test_man_LDADD = \ $(top_builddir)/src/plugins/libtest.la \ $(LE_LIBINTL) libextractor_midi_la_SOURCES = \ midi_extractor.c libextractor_midi_la_CFLAGS = \ $(GLIB_CFLAGS) libextractor_midi_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_midi_la_LIBADD = \ -lsmf $(XLIB) test_midi_SOURCES = \ test_midi.c test_midi_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_mime_la_SOURCES = \ mime_extractor.c libextractor_mime_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_mime_la_LIBADD = \ -lmagic $(XLIB) test_mime_SOURCES = \ test_mime.c test_mime_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_mp4_la_SOURCES = \ mp4_extractor.c libextractor_mp4_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_mp4_la_LIBADD = \ -lmp4v2 $(XLIB) libextractor_mpeg_la_SOURCES = \ mpeg_extractor.c libextractor_mpeg_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_mpeg_la_LIBADD = \ -lmpeg2 $(XLIB) test_mpeg_SOURCES = \ test_mpeg.c test_mpeg_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_nsf_la_SOURCES = \ nsf_extractor.c libextractor_nsf_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_nsf_la_LIBADD = \ $(XLIB) test_nsf_SOURCES = \ test_nsf.c test_nsf_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_nsfe_la_SOURCES = \ nsfe_extractor.c libextractor_nsfe_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_nsfe_la_LIBADD = \ $(XLIB) test_nsfe_SOURCES = \ test_nsfe.c test_nsfe_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_odf_la_SOURCES = \ odf_extractor.c libextractor_odf_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_odf_la_LIBADD = \ $(top_builddir)/src/common/libextractor_common.la $(XLIB) test_odf_SOURCES = \ test_odf.c test_odf_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_ole2_la_SOURCES = \ ole2_extractor.c libextractor_ole2_la_CFLAGS = \ $(GSF_CFLAGS) libextractor_ole2_la_CPPFLAGS = \ $(GSF_CFLAGS) libextractor_ole2_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_ole2_la_LIBADD = \ $(top_builddir)/src/common/libextractor_common.la \ $(GSF_LIBS) $(XLIB) $(LE_LIBINTL) test_ole2_SOURCES = \ test_ole2.c test_ole2_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_ogg_la_SOURCES = \ ogg_extractor.c libextractor_ogg_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_ogg_la_LIBADD = \ -lvorbisfile -lvorbis $(vorbisflag) -logg $(XLIB) test_ogg_SOURCES = \ test_ogg.c test_ogg_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_png_la_SOURCES = \ png_extractor.c libextractor_png_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_png_la_LIBADD = \ $(top_builddir)/src/common/libextractor_common.la $(XLIB) -lz $(SOCKET_LIBS) test_png_SOURCES = \ test_png.c test_png_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_ps_la_SOURCES = \ ps_extractor.c libextractor_ps_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_ps_la_LIBADD = \ $(XLIB) test_ps_SOURCES = \ test_ps.c test_ps_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_riff_la_SOURCES = \ riff_extractor.c libextractor_riff_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_riff_la_LIBADD = \ -lm $(XLIB) $(LE_LIBINTL) test_riff_SOURCES = \ test_riff.c test_riff_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_rpm_la_SOURCES = \ rpm_extractor.c libextractor_rpm_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_rpm_la_LIBADD = \ -lrpm -lpthread $(XLIB) test_rpm_SOURCES = \ test_rpm.c test_rpm_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_s3m_la_SOURCES = \ s3m_extractor.c libextractor_s3m_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_s3m_la_LIBADD = \ $(XLIB) test_s3m_SOURCES = \ test_s3m.c test_s3m_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_sid_la_SOURCES = \ sid_extractor.c libextractor_sid_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_sid_la_LIBADD = \ $(XLIB) test_sid_SOURCES = \ test_sid.c test_sid_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_thumbnailffmpeg_la_SOURCES = \ thumbnailffmpeg_extractor.c libextractor_thumbnailffmpeg_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_thumbnailffmpeg_la_LIBADD = \ -lavutil -lavformat -lavcodec -lswscale -lmagic $(XLIB) test_thumbnailffmpeg_SOURCES = \ test_thumbnailffmpeg.c test_thumbnailffmpeg_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_thumbnailgtk_la_SOURCES = \ thumbnailgtk_extractor.c libextractor_thumbnailgtk_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_thumbnailgtk_la_CFLAGS = \ $(GTK_CFLAGS) libextractor_thumbnailgtk_la_LIBADD = \ -lmagic $(GTK_LIBS) $(XLIB) test_thumbnailgtk_SOURCES = \ test_thumbnailgtk.c test_thumbnailgtk_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_previewopus_la_SOURCES = \ previewopus_extractor.c libextractor_previewopus_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_previewopus_la_LIBADD = \ -lavutil -lavformat -lavcodec -lswscale -lavresample -lmagic $(XLIB) test_previewopus_SOURCES = \ test_previewopus.c test_previewopus_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_tiff_la_SOURCES = \ tiff_extractor.c libextractor_tiff_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_tiff_la_LIBADD = \ -ltiff $(XLIB) test_tiff_SOURCES = \ test_tiff.c test_tiff_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_wav_la_SOURCES = \ wav_extractor.c libextractor_wav_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_wav_la_LIBADD = \ $(XLIB) $(LE_LIBINTL) test_wav_SOURCES = \ test_wav.c test_wav_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_xm_la_SOURCES = \ xm_extractor.c libextractor_xm_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_xm_la_LIBADD = \ $(XLIB) test_xm_SOURCES = \ test_xm.c test_xm_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor_zip_la_SOURCES = \ zip_extractor.c libextractor_zip_la_LDFLAGS = \ $(PLUGINFLAGS) libextractor_zip_la_LIBADD = \ $(top_builddir)/src/common/libextractor_common.la $(XLIB) test_zip_SOURCES = \ test_zip.c test_zip_LDADD = \ $(top_builddir)/src/plugins/libtest.la libextractor-1.3/src/plugins/tiff_extractor.c0000644000175000017500000001246612016742766016463 00000000000000/* This file is part of libextractor. (C) 2012 Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/tiff_extractor.c * @brief plugin to support TIFF files * @author Christian Grothoff */ #include "platform.h" #include "extractor.h" #include /** * Error handler for libtiff. Does nothing. * * @param module where did the error arise? * @param fmt format string * @param ap arguments for fmt */ static void error_cb (const char *module, const char *fmt, va_list ap) { /* do nothing */ } /** * Callback invoked by TIFF lib for reading. * * @param ctx the 'struct EXTRACTOR_ExtractContext' * @param data where to write data * @param size number of bytes to read * @return number of bytes read */ static tsize_t read_cb (thandle_t ctx, tdata_t data, tsize_t size) { struct EXTRACTOR_ExtractContext *ec = ctx; void *ptr; ssize_t ret; ret = ec->read (ec->cls, &ptr, size); if (ret > 0) memcpy (data, ptr, ret); return ret; } /** * Callback invoked by TIFF lib for writing. Always fails. * * @param ctx the 'struct EXTRACTOR_ExtractContext' * @param data where to write data * @param size number of bytes to read * @return -1 (error) */ static tsize_t write_cb (thandle_t ctx, tdata_t data, tsize_t size) { return -1; } /** * Callback invoked by TIFF lib for seeking. * * @param ctx the 'struct EXTRACTOR_ExtractContext' * @param offset target offset * @param whence target is relative to where * @return new offset */ static toff_t seek_cb (thandle_t ctx, toff_t offset, int whence) { struct EXTRACTOR_ExtractContext *ec = ctx; return ec->seek (ec->cls, offset, whence); } /** * Callback invoked by TIFF lib for getting the file size. * * @param ctx the 'struct EXTRACTOR_ExtractContext' * @return file size */ static toff_t size_cb (thandle_t ctx) { struct EXTRACTOR_ExtractContext *ec = ctx; return ec->get_size (ec->cls); } /** * Callback invoked by TIFF lib for closing the file. Does nothing. * * @param ctx the 'struct EXTRACTOR_ExtractContext' */ static int close_cb (thandle_t ctx) { return 0; /* success */ } /** * A mapping from TIFF Tag to extractor types. */ struct Matches { /** * TIFF Tag. */ ttag_t tag; /** * Corresponding LE type. */ enum EXTRACTOR_MetaType type; }; /** * Mapping of TIFF tags to LE types. * NULL-terminated. */ static struct Matches tmap[] = { { TIFFTAG_ARTIST, EXTRACTOR_METATYPE_ARTIST }, { TIFFTAG_COPYRIGHT, EXTRACTOR_METATYPE_COPYRIGHT }, { TIFFTAG_DATETIME, EXTRACTOR_METATYPE_CREATION_DATE }, { TIFFTAG_DOCUMENTNAME, EXTRACTOR_METATYPE_TITLE }, { TIFFTAG_HOSTCOMPUTER, EXTRACTOR_METATYPE_BUILDHOST }, { TIFFTAG_IMAGEDESCRIPTION, EXTRACTOR_METATYPE_DESCRIPTION }, { TIFFTAG_MAKE, EXTRACTOR_METATYPE_CAMERA_MAKE }, { TIFFTAG_MODEL, EXTRACTOR_METATYPE_CAMERA_MODEL }, { TIFFTAG_PAGENAME, EXTRACTOR_METATYPE_PAGE_RANGE }, { TIFFTAG_SOFTWARE, EXTRACTOR_METATYPE_CREATED_BY_SOFTWARE }, { TIFFTAG_TARGETPRINTER, EXTRACTOR_METATYPE_TARGET_ARCHITECTURE }, { 0, 0 } }; /** * Main entry method for the 'image/tiff' extraction plugin. * * @param ec extraction context provided to the plugin */ void EXTRACTOR_tiff_extract_method (struct EXTRACTOR_ExtractContext *ec) { TIFF *tiff; unsigned int i; char *meta; char format[128]; uint32_t width; uint32_t height; TIFFSetErrorHandler (&error_cb); TIFFSetWarningHandler (&error_cb); tiff = TIFFClientOpen ("", "rm", /* read-only, no mmap */ ec, &read_cb, &write_cb, &seek_cb, &close_cb, &size_cb, NULL, NULL); if (NULL == tiff) return; for (i = 0; 0 != tmap[i].tag; i++) if ( (1 == TIFFGetField (tiff, tmap[i].tag, &meta)) && (0 != ec->proc (ec->cls, "tiff", tmap[i].type, EXTRACTOR_METAFORMAT_UTF8, "text/plain", meta, strlen (meta) + 1)) ) goto CLEANUP; if ( (1 == TIFFGetField (tiff, TIFFTAG_IMAGEWIDTH, &width)) && (1 == TIFFGetField (tiff, TIFFTAG_IMAGELENGTH, &height)) ) { snprintf (format, sizeof (format), "%ux%u", (unsigned int) width, (unsigned int) height); if (0 != ec->proc (ec->cls, "tiff", EXTRACTOR_METATYPE_IMAGE_DIMENSIONS, EXTRACTOR_METAFORMAT_UTF8, "text/plain", format, strlen (format) + 1)) goto CLEANUP; if (0 != ec->proc (ec->cls, "tiff", EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "image/tiff", strlen ("image/tiff") + 1)) goto CLEANUP; } CLEANUP: TIFFClose (tiff); } /* end of tiff_extractor.c */ libextractor-1.3/src/plugins/test_deb.c0000644000175000017500000001135612021431245015205 00000000000000/* This file is part of libextractor. (C) 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/test_deb.c * @brief testcase for deb plugin * @author Christian Grothoff */ #include "platform.h" #include "test_lib.h" /** * Main function for the DEB testcase. * * @param argc number of arguments (ignored) * @param argv arguments (ignored) * @return 0 on success */ int main (int argc, char *argv[]) { struct SolutionData deb_bzip2_sol[] = { { EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "application/x-debian-package", strlen ("application/x-debian-package") + 1, 0 }, { EXTRACTOR_METATYPE_PACKAGE_NAME, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "bzip2", strlen ("bzip2") + 1, 0 }, { EXTRACTOR_METATYPE_PACKAGE_VERSION, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "1.0.6-4", strlen ("1.0.6-4") + 1, 0 }, { EXTRACTOR_METATYPE_TARGET_ARCHITECTURE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "i386", strlen ("i386") + 1, 0 }, { EXTRACTOR_METATYPE_PACKAGE_MAINTAINER, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Anibal Monsalve Salazar ", strlen ("Anibal Monsalve Salazar ") + 1, 0 }, { EXTRACTOR_METATYPE_PACKAGE_INSTALLED_SIZE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "113", /* FIXME: should this be 'kb'? */ strlen ("113") + 1, 0 }, { EXTRACTOR_METATYPE_PACKAGE_DEPENDENCY, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "libbz2-1.0 (= 1.0.6-4), libc6 (>= 2.4)", strlen ("libbz2-1.0 (= 1.0.6-4), libc6 (>= 2.4)") + 1, 0 }, { EXTRACTOR_METATYPE_PACKAGE_SUGGESTS, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "bzip2-doc", strlen ("bzip2-doc") + 1, 0 }, { EXTRACTOR_METATYPE_PACKAGE_REPLACES, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "libbz2 (<< 0.9.5d-3)", strlen ("libbz2 (<< 0.9.5d-3)") + 1, 0 }, { EXTRACTOR_METATYPE_SECTION, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "utils", strlen ("utils") + 1, 0 }, { EXTRACTOR_METATYPE_UPLOAD_PRIORITY, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "standard", strlen ("standard") + 1, 0 }, { EXTRACTOR_METATYPE_DESCRIPTION, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "high-quality block-sorting file compressor - utilities\n" " bzip2 is a freely available, patent free, high-quality data compressor.\n" " It typically compresses files to within 10% to 15% of the best available\n" " techniques, whilst being around twice as fast at compression and six\n" " times faster at decompression.\n" " .\n" " bzip2 compresses files using the Burrows-Wheeler block-sorting text\n" " compression algorithm, and Huffman coding. Compression is generally\n" " considerably better than that achieved by more conventional\n" " LZ77/LZ78-based compressors, and approaches the performance of the PPM\n" " family of statistical compressors.\n" " .\n" " The archive file format of bzip2 (.bz2) is incompatible with that of its\n" " predecessor, bzip (.bz).", strlen ("high-quality block-sorting file compressor - utilities\n" " bzip2 is a freely available, patent free, high-quality data compressor.\n" " It typically compresses files to within 10% to 15% of the best available\n" " techniques, whilst being around twice as fast at compression and six\n" " times faster at decompression.\n" " .\n" " bzip2 compresses files using the Burrows-Wheeler block-sorting text\n" " compression algorithm, and Huffman coding. Compression is generally\n" " considerably better than that achieved by more conventional\n" " LZ77/LZ78-based compressors, and approaches the performance of the PPM\n" " family of statistical compressors.\n" " .\n" " The archive file format of bzip2 (.bz2) is incompatible with that of its\n" " predecessor, bzip (.bz).") + 1, 0 }, { 0, 0, NULL, NULL, 0, -1 } }; struct ProblemSet ps[] = { { "testdata/deb_bzip2.deb", deb_bzip2_sol }, { NULL, NULL } }; return ET_main ("deb", ps); } /* end of test_deb.c */ libextractor-1.3/src/plugins/flac_extractor.c0000644000175000017500000003207312104505534016420 00000000000000/* This file is part of libextractor. (C) 2007, 2009, 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/flac_extractor.c * @brief plugin to support FLAC files * @author Christian Grothoff */ #include "platform.h" #include "extractor.h" #include /** * Bytes each FLAC file must begin with (not used, but we might * choose to add this back in the future to improve performance * for non-ogg files). */ #define FLAC_HEADER "fLaC" /** * Custom read function for flac. * * @param decoder unused * @param buffer where to write the data * @param bytes how many bytes to read, set to how many bytes were read * @param client_data our 'struct EXTRACTOR_ExtractContxt*' * @return status code (error, end-of-file or success) */ static FLAC__StreamDecoderReadStatus flac_read (const FLAC__StreamDecoder *decoder, FLAC__byte buffer[], size_t *bytes, void *client_data) { struct EXTRACTOR_ExtractContext *ec = client_data; void *data; ssize_t ret; data = NULL; ret = ec->read (ec->cls, &data, *bytes); if (-1 == ret) return FLAC__STREAM_DECODER_READ_STATUS_ABORT; if (0 == ret) { errno = 0; return FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM; } memcpy (buffer, data, ret); *bytes = ret; errno = 0; return FLAC__STREAM_DECODER_READ_STATUS_CONTINUE; } /** * Seek to a particular position in the file. * * @param decoder unused * @param absolute_byte_offset where to seek * @param client_data the 'struct EXTRACTOR_ExtractContext' * @return status code (error or success) */ static FLAC__StreamDecoderSeekStatus flac_seek (const FLAC__StreamDecoder *decoder, FLAC__uint64 absolute_byte_offset, void *client_data) { struct EXTRACTOR_ExtractContext *ec = client_data; if (absolute_byte_offset != ec->seek (ec->cls, (int64_t) absolute_byte_offset, SEEK_SET)) return FLAC__STREAM_DECODER_SEEK_STATUS_ERROR; return FLAC__STREAM_DECODER_SEEK_STATUS_OK; } /** * Tell FLAC about our current position in the file. * * @param decoder unused * @param absolute_byte_offset location to store the current offset * @param client_data the 'struct EXTRACTOR_ExtractContext' * @return status code (error or success) */ static FLAC__StreamDecoderTellStatus flac_tell (const FLAC__StreamDecoder *decoder, FLAC__uint64 *absolute_byte_offset, void *client_data) { struct EXTRACTOR_ExtractContext *ec = client_data; *absolute_byte_offset = ec->seek (ec->cls, 0, SEEK_CUR); return FLAC__STREAM_DECODER_TELL_STATUS_OK; } /** * Tell FLAC the size of the file. * * @param decoder unused * @param stream_length where to store the file size * @param client_data the 'struct EXTRACTOR_ExtractContext' * @return true at EOF, false if not */ static FLAC__StreamDecoderLengthStatus flac_length (const FLAC__StreamDecoder *decoder, FLAC__uint64 *stream_length, void *client_data) { struct EXTRACTOR_ExtractContext *ec = client_data; *stream_length = ec->get_size (ec->cls); return FLAC__STREAM_DECODER_LENGTH_STATUS_OK; } /** * Tell FLAC if we are at the end of the file. * * @param decoder unused * @param absolute_byte_offset location to store the current offset * @param client_data the 'struct EXTRACTOR_ExtractContext' * @return true at EOF, false if not */ static FLAC__bool flac_eof (const FLAC__StreamDecoder *decoder, void *client_data) { struct EXTRACTOR_ExtractContext *ec = client_data; uint64_t size; int64_t seekresult; size = ec->get_size (ec->cls); seekresult = ec->seek (ec->cls, 0, SEEK_CUR); if (seekresult == -1) /* Treat seek error as error (not as indication of file not being * seekable). */ return true; return (size == seekresult) ? true : false; } /** * FLAC wants to write. Always succeeds but does nothing. * * @param decoder unused * @param frame unused * @param buffer unused * @param client_data the 'struct EXTRACTOR_ExtractContext' * @return always claims success */ static FLAC__StreamDecoderWriteStatus flac_write (const FLAC__StreamDecoder *decoder, const FLAC__Frame *frame, const FLAC__int32 *const buffer[], void *client_data) { return FLAC__STREAM_DECODER_WRITE_STATUS_CONTINUE; } /** * A mapping from FLAC meta data strings to extractor types. */ struct Matches { /** * FLAC Meta data description text. */ const char *text; /** * Corresponding LE type. */ enum EXTRACTOR_MetaType type; }; /** * Mapping of FLAC meta data description texts to LE types. * NULL-terminated. */ static struct Matches tmap[] = { {"TITLE", EXTRACTOR_METATYPE_TITLE}, {"VERSION", EXTRACTOR_METATYPE_SONG_VERSION}, {"ALBUM", EXTRACTOR_METATYPE_ALBUM}, {"ARTIST", EXTRACTOR_METATYPE_ARTIST}, {"PERFORMER", EXTRACTOR_METATYPE_PERFORMER}, {"COPYRIGHT", EXTRACTOR_METATYPE_COPYRIGHT}, {"LICENSE", EXTRACTOR_METATYPE_LICENSE}, {"ORGANIZATION", EXTRACTOR_METATYPE_ORGANIZATION}, {"DESCRIPTION", EXTRACTOR_METATYPE_DESCRIPTION}, {"GENRE", EXTRACTOR_METATYPE_GENRE}, {"DATE", EXTRACTOR_METATYPE_CREATION_DATE}, {"LOCATION", EXTRACTOR_METATYPE_LOCATION_SUBLOCATION}, {"CONTACT", EXTRACTOR_METATYPE_CONTACT_INFORMATION}, {"TRACKNUMBER", EXTRACTOR_METATYPE_TRACK_NUMBER}, {"ISRC", EXTRACTOR_METATYPE_ISRC}, {NULL, 0} }; /** * Give meta data to extractor. * * @param t type of the meta data * @param s meta data value in utf8 format */ #define ADD(t,s) do { ec->proc (ec->cls, "flac", t, EXTRACTOR_METAFORMAT_UTF8, "text/plain", s, strlen (s) + 1); } while (0) /** * Create 0-terminated version of n-character string. * * @param s input string (non 0-terminated) * @param n number of bytes in 's' * @return NULL on error, otherwise 0-terminated version of 's' */ static char * xstrndup (const char *s, size_t n) { char * d; if (NULL == (d = malloc (n + 1))) return NULL; memcpy (d, s, n); d[n] = '\0'; return d; } /** * Check if a mapping exists for the given meta data value * and if so give the result to LE. * * @param type type of the meta data according to FLAC * @param type_length number of bytes in 'type' * @param value meta data as UTF8 string (non 0-terminated) * @param value_length number of bytes in value * @param ec extractor context */ static void check (const char *type, unsigned int type_length, const char *value, unsigned int value_length, struct EXTRACTOR_ExtractContext *ec) { unsigned int i; char *tmp; for (i=0; NULL != tmap[i].text; i++) { if ( (type_length != strlen (tmap[i].text)) || (0 != strncasecmp (tmap[i].text, type, type_length)) ) continue; if (NULL == (tmp = xstrndup (value, value_length))) continue; ADD (tmap[i].type, tmp); free (tmp); break; } } /** * Function called whenever FLAC finds meta data. * * @param decoder unused * @param metadata meta data that was found * @param client_data the 'struct EXTRACTOR_ExtractContext' */ static void flac_metadata (const FLAC__StreamDecoder *decoder, const FLAC__StreamMetadata *metadata, void *client_data) { struct EXTRACTOR_ExtractContext *ec = client_data; enum EXTRACTOR_MetaType type; const FLAC__StreamMetadata_VorbisComment * vc; unsigned int count; const FLAC__StreamMetadata_VorbisComment_Entry * entry; const char * eq; unsigned int len; unsigned int ilen; char buf[128]; switch (metadata->type) { case FLAC__METADATA_TYPE_STREAMINFO: { snprintf (buf, sizeof (buf), _("%u Hz, %u channels"), metadata->data.stream_info.sample_rate, metadata->data.stream_info.channels); ADD (EXTRACTOR_METATYPE_RESOURCE_TYPE, buf); break; } case FLAC__METADATA_TYPE_APPLICATION: /* FIXME: could find out generator application here: http://flac.sourceforge.net/api/structFLAC____StreamMetadata__Application.html and http://flac.sourceforge.net/id.html */ break; case FLAC__METADATA_TYPE_VORBIS_COMMENT: { vc = &metadata->data.vorbis_comment; count = vc->num_comments; while (count-- > 0) { entry = &vc->comments[count]; eq = (const char*) entry->entry; len = entry->length; ilen = 0; while ( ('=' != *eq) && ('\0' != *eq) && (ilen < len) ) { eq++; ilen++; } if ( ('=' != *eq) || (ilen == len) ) break; eq++; check ((const char*) entry->entry, ilen, eq, len - ilen, ec); } break; } case FLAC__METADATA_TYPE_PICTURE: { switch (metadata->data.picture.type) { case FLAC__STREAM_METADATA_PICTURE_TYPE_OTHER: case FLAC__STREAM_METADATA_PICTURE_TYPE_FILE_ICON_STANDARD: case FLAC__STREAM_METADATA_PICTURE_TYPE_FILE_ICON: type = EXTRACTOR_METATYPE_THUMBNAIL; break; case FLAC__STREAM_METADATA_PICTURE_TYPE_FRONT_COVER: case FLAC__STREAM_METADATA_PICTURE_TYPE_BACK_COVER: type = EXTRACTOR_METATYPE_COVER_PICTURE; break; case FLAC__STREAM_METADATA_PICTURE_TYPE_LEAD_ARTIST: case FLAC__STREAM_METADATA_PICTURE_TYPE_ARTIST: case FLAC__STREAM_METADATA_PICTURE_TYPE_CONDUCTOR: case FLAC__STREAM_METADATA_PICTURE_TYPE_BAND: case FLAC__STREAM_METADATA_PICTURE_TYPE_COMPOSER: case FLAC__STREAM_METADATA_PICTURE_TYPE_LYRICIST: type = EXTRACTOR_METATYPE_CONTRIBUTOR_PICTURE; break; case FLAC__STREAM_METADATA_PICTURE_TYPE_RECORDING_LOCATION: case FLAC__STREAM_METADATA_PICTURE_TYPE_DURING_RECORDING: case FLAC__STREAM_METADATA_PICTURE_TYPE_DURING_PERFORMANCE: case FLAC__STREAM_METADATA_PICTURE_TYPE_VIDEO_SCREEN_CAPTURE: type = EXTRACTOR_METATYPE_EVENT_PICTURE; break; case FLAC__STREAM_METADATA_PICTURE_TYPE_BAND_LOGOTYPE: case FLAC__STREAM_METADATA_PICTURE_TYPE_PUBLISHER_LOGOTYPE: type = EXTRACTOR_METATYPE_LOGO; break; case FLAC__STREAM_METADATA_PICTURE_TYPE_LEAFLET_PAGE: case FLAC__STREAM_METADATA_PICTURE_TYPE_MEDIA: case FLAC__STREAM_METADATA_PICTURE_TYPE_FISH: case FLAC__STREAM_METADATA_PICTURE_TYPE_ILLUSTRATION: default: type = EXTRACTOR_METATYPE_PICTURE; break; } ec->proc (ec->cls, "flac", type, EXTRACTOR_METAFORMAT_BINARY, metadata->data.picture.mime_type, (const char*) metadata->data.picture.data, metadata->data.picture.data_length); break; } case FLAC__METADATA_TYPE_PADDING: case FLAC__METADATA_TYPE_SEEKTABLE: case FLAC__METADATA_TYPE_CUESHEET: case FLAC__METADATA_TYPE_UNDEFINED: break; } } /** * Function called whenever FLAC decoder has trouble. Does nothing. * * @param decoder the decoder handle * @param status type of the error * @param client_data our 'struct EXTRACTOR_ExtractContext' */ static void flac_error (const FLAC__StreamDecoder *decoder, FLAC__StreamDecoderErrorStatus status, void *client_data) { /* ignore errors */ } /** * Main entry method for the 'audio/flac' extraction plugin. * * @param ec extraction context provided to the plugin */ void EXTRACTOR_flac_extract_method (struct EXTRACTOR_ExtractContext *ec) { FLAC__StreamDecoder * decoder; if (NULL == (decoder = FLAC__stream_decoder_new ())) return; FLAC__stream_decoder_set_md5_checking (decoder, false); FLAC__stream_decoder_set_metadata_ignore_all (decoder); if (false == FLAC__stream_decoder_set_metadata_respond_all (decoder)) { FLAC__stream_decoder_delete (decoder); return; } if (FLAC__STREAM_DECODER_INIT_STATUS_OK != FLAC__stream_decoder_init_stream (decoder, &flac_read, &flac_seek, &flac_tell, &flac_length, &flac_eof, &flac_write, &flac_metadata, &flac_error, ec)) { FLAC__stream_decoder_delete (decoder); return; } if (FLAC__STREAM_DECODER_SEARCH_FOR_METADATA != FLAC__stream_decoder_get_state(decoder)) { FLAC__stream_decoder_delete (decoder); return; } if (! FLAC__stream_decoder_process_until_end_of_metadata(decoder)) { FLAC__stream_decoder_delete (decoder); return; } switch (FLAC__stream_decoder_get_state (decoder)) { case FLAC__STREAM_DECODER_SEARCH_FOR_FRAME_SYNC: case FLAC__STREAM_DECODER_READ_METADATA: case FLAC__STREAM_DECODER_END_OF_STREAM: case FLAC__STREAM_DECODER_READ_FRAME: break; default: /* not so sure... */ break; } FLAC__stream_decoder_finish (decoder); FLAC__stream_decoder_delete (decoder); } /* end of flac_extractor.c */ libextractor-1.3/src/plugins/template_extractor.c0000644000175000017500000000363712016742766017346 00000000000000/* This file is part of libextractor. (C) 2002, 2003, 2004, 2009, 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/template_extractor.c * @brief example code for writing your own plugin * @author add your own name here */ #include "platform.h" #include "extractor.h" /** * This will be the main method of your plugin. * Describe a bit what it does here. * * @param ec extraction context, here you get the API * for accessing the file data and for returning * meta data */ void EXTRACTOR_template_extract_method (struct EXTRACTOR_ExtractContext *ec) { int64_t offset; void *data; /* temporary variables are declared here */ if (plugin == NULL) return 1; /* initialize state here */ /* Call seek (plugin, POSITION, WHENCE) to seek (if you know where * data starts): */ // ec->seek (ec->cls, POSITION, SEEK_SET); /* Call read (plugin, &data, COUNT) to read COUNT bytes */ /* Once you find something, call proc(). If it returns non-0 - you're done. */ // if (0 != ec->proc (ec->cls, ...)) return; /* Don't forget to free anything you've allocated before returning! */ return; } /* end of template_extractor.c */ libextractor-1.3/src/plugins/test_gif.c0000644000175000017500000000352712016742766015242 00000000000000/* This file is part of libextractor. (C) 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/test_gif.c * @brief testcase for gif plugin * @author Christian Grothoff */ #include "platform.h" #include "test_lib.h" /** * Main function for the GIF testcase. * * @param argc number of arguments (ignored) * @param argv arguments (ignored) * @return 0 on success */ int main (int argc, char *argv[]) { struct SolutionData gif_image_sol[] = { { EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "image/gif", strlen ("image/gif") + 1, 0 }, { EXTRACTOR_METATYPE_IMAGE_DIMENSIONS, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "4x4", strlen ("4x4") + 1, 0 }, { EXTRACTOR_METATYPE_COMMENT, EXTRACTOR_METAFORMAT_C_STRING, "text/plain", "Testing keyword extraction\n", strlen ("Testing keyword extraction\n"), 0 }, { 0, 0, NULL, NULL, 0, -1 } }; struct ProblemSet ps[] = { { "testdata/gif_image.gif", gif_image_sol }, { NULL, NULL } }; return ET_main ("gif", ps); } /* end of test_gif.c */ libextractor-1.3/src/plugins/test_rpm.c0000644000175000017500000001541612007550320015252 00000000000000/* This file is part of libextractor. (C) 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/test_rpm.c * @brief testcase for ogg plugin * @author Christian Grothoff */ #include "platform.h" #include "test_lib.h" /** * Expected package summary text. */ #define SUMMARY "The GNU libtool, which simplifies the use of shared libraries." /** * Expected package description text. */ #define DESCRIPTION "The libtool package contains the GNU libtool, a set of shell scripts\n"\ "which automatically configure UNIX and UNIX-like architectures to\n" \ "generically build shared libraries. Libtool provides a consistent,\n" \ "portable interface which simplifies the process of using shared\n" \ "libraries.\n" \ "\n" \ "If you are developing programs which will use shared libraries, you\n" \ "should install libtool." /** * Main function for the RPM testcase. * * @param argc number of arguments (ignored) * @param argv arguments (ignored) * @return 0 on success */ int main (int argc, char *argv[]) { struct SolutionData rpm_test_sol[] = { { EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "application/x-rpm", strlen ("application/x-rpm") + 1, 0 }, { EXTRACTOR_METATYPE_PACKAGE_NAME, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "libtool", strlen ("libtool") + 1, 0 }, { EXTRACTOR_METATYPE_SOFTWARE_VERSION, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "1.5", strlen ("1.5") + 1, 0 }, { EXTRACTOR_METATYPE_PACKAGE_VERSION, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "6", strlen ("6") + 1, 0 }, { EXTRACTOR_METATYPE_SUMMARY, EXTRACTOR_METAFORMAT_UTF8, "text/plain", SUMMARY, strlen (SUMMARY) + 1, 0 }, { EXTRACTOR_METATYPE_DESCRIPTION, EXTRACTOR_METAFORMAT_UTF8, "text/plain", DESCRIPTION, strlen (DESCRIPTION) + 1, 0 }, { EXTRACTOR_METATYPE_CREATION_DATE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Thu Oct 2 11:44:33 2003", strlen ("Thu Oct 2 11:44:33 2003") + 1, 0 }, { EXTRACTOR_METATYPE_BUILDHOST, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "bullwinkle.devel.redhat.com", strlen ("bullwinkle.devel.redhat.com") + 1, 0 }, { EXTRACTOR_METATYPE_PACKAGE_INSTALLED_SIZE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "2623621", strlen ("2623621") + 1, 0 }, { EXTRACTOR_METATYPE_PACKAGE_DISTRIBUTION, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Red Hat Linux", strlen ("Red Hat Linux") + 1, 0 }, { EXTRACTOR_METATYPE_VENDOR, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Red Hat, Inc.", strlen ("Red Hat, Inc.") + 1, 0 }, { EXTRACTOR_METATYPE_LICENSE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "GPL", strlen ("GPL") + 1, 0 }, { EXTRACTOR_METATYPE_PACKAGE_MAINTAINER, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Red Hat, Inc. ", strlen ("Red Hat, Inc. ") + 1, 0 }, { EXTRACTOR_METATYPE_SECTION, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Development/Tools", strlen ("Development/Tools") + 1, 0 }, { EXTRACTOR_METATYPE_URL, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "http://www.gnu.org/software/libtool/", strlen ("http://www.gnu.org/software/libtool/") + 1, 0 }, { EXTRACTOR_METATYPE_TARGET_OS, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "linux", strlen ("linux") + 1, 0 }, { EXTRACTOR_METATYPE_TARGET_ARCHITECTURE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "ia64", strlen ("ia64") + 1, 0 }, { EXTRACTOR_METATYPE_PACKAGE_PROVIDES, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "libtool", strlen ("libtool") + 1, 0 }, { EXTRACTOR_METATYPE_PACKAGE_DEPENDENCY, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "/bin/sh", strlen ("/bin/sh") + 1, 0 }, { EXTRACTOR_METATYPE_PACKAGE_DEPENDENCY, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "/bin/sh", strlen ("/bin/sh") + 1, 0 }, { EXTRACTOR_METATYPE_PACKAGE_DEPENDENCY, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "/bin/sh", strlen ("/bin/sh") + 1, 0 }, { EXTRACTOR_METATYPE_PACKAGE_DEPENDENCY, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "/sbin/install-info", strlen ("/sbin/install-info") + 1, 0 }, { EXTRACTOR_METATYPE_PACKAGE_DEPENDENCY, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "autoconf", strlen ("autoconf") + 1, 0 }, { EXTRACTOR_METATYPE_PACKAGE_DEPENDENCY, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "automake", strlen ("automake") + 1, 0 }, { EXTRACTOR_METATYPE_PACKAGE_DEPENDENCY, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "libtool-libs", strlen ("libtool-libs") + 1, 0 }, { EXTRACTOR_METATYPE_PACKAGE_DEPENDENCY, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "m4", strlen ("m4") + 1, 0 }, { EXTRACTOR_METATYPE_PACKAGE_DEPENDENCY, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "mktemp", strlen ("mktemp") + 1, 0 }, { EXTRACTOR_METATYPE_PACKAGE_DEPENDENCY, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "perl", strlen ("perl") + 1, 0 }, { EXTRACTOR_METATYPE_PACKAGE_DEPENDENCY, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "rpmlib(CompressedFileNames)", strlen ("rpmlib(CompressedFileNames)") + 1, 0 }, { EXTRACTOR_METATYPE_PACKAGE_DEPENDENCY, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "rpmlib(PayloadFilesHavePrefix)", strlen ("rpmlib(PayloadFilesHavePrefix)") + 1, 0 }, { EXTRACTOR_METATYPE_PACKAGE_DEPENDENCY, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "rpmlib(VersionedDependencies)", strlen ("rpmlib(VersionedDependencies)") + 1, 0 }, { EXTRACTOR_METATYPE_TARGET_PLATFORM, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "ia64-redhat-linux-gnu", strlen ("ia64-redhat-linux-gnu") + 1, 0 }, { 0, 0, NULL, NULL, 0, -1 } }; struct ProblemSet ps[] = { { "testdata/rpm_test.rpm", rpm_test_sol }, { NULL, NULL } }; return ET_main ("rpm", ps); } /* end of test_rpm.c */ libextractor-1.3/src/plugins/man_extractor.c0000644000175000017500000001523612016742766016304 00000000000000/* This file is part of libextractor. (C) 2002, 2003, 2004, 2009, 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/man_extractor.c * @brief plugin to support man pages * @author Christian Grothoff */ #include "platform.h" #include "extractor.h" #include /** * Create string from first 'n' characters of 'str'. See 'strndup'. * * @param str input string * @param n desired output length (plus 0-termination) * @return copy of first 'n' bytes from 'str' plus 0-terminator, NULL on error */ static char * stndup (const char *str, size_t n) { char *tmp; if (NULL == (tmp = malloc (n + 1))) return NULL; tmp[n] = '\0'; memcpy (tmp, str, n); return tmp; } /** * Give a metadata item to LE. Removes double-quotes and * makes sure we don't pass empty strings or NULL pointers. * * @param type metadata type to use * @param keyword metdata value; freed in the process * @param proc function to call with meta data * @param proc_cls closure for 'proc' * @return 0 to continue extracting, 1 if we are done */ static int add_keyword (enum EXTRACTOR_MetaType type, char *keyword, EXTRACTOR_MetaDataProcessor proc, void *proc_cls) { int ret; char *value; if (NULL == keyword) return 0; if ( (keyword[0] == '\"') && (keyword[strlen (keyword) - 1] == '\"') ) { keyword[strlen (keyword) - 1] = '\0'; value = &keyword[1]; } else value = keyword; if (0 == strlen (value)) { free (keyword); return 0; } ret = proc (proc_cls, "man", type, EXTRACTOR_METAFORMAT_UTF8, "text/plain", value, strlen (value)+1); free (keyword); return ret; } /** * Find the end of the current token (which may be quoted). * * @param end beginning of the current token, updated to its end; set to size + 1 if the token does not end properly * @param buf input buffer with the characters * @param size number of bytes in buf */ static void find_end_of_token (size_t *end, const char *buf, const size_t size) { int quot; quot = 0; while ( (*end < size) && ( (0 != (quot & 1)) || ((' ' != buf[*end])) ) ) { if ('\"' == buf[*end]) quot++; (*end)++; } if (1 == (quot & 1)) (*end) = size + 1; } /** * How many bytes do we actually try to scan? (from the beginning * of the file). */ #define MAX_READ (16 * 1024) /** * Add a keyword to LE. * * @param t type to use * @param s keyword to give to LE */ #define ADD(t,s) do { if (0 != add_keyword (t, s, ec->proc, ec->cls)) return; } while (0) /** * Main entry method for the man page extraction plugin. * * @param ec extraction context provided to the plugin */ void EXTRACTOR_man_extract_method (struct EXTRACTOR_ExtractContext *ec) { const size_t xlen = strlen (".TH "); size_t pos; size_t xsize; size_t end; void *data; ssize_t size; char *buf; if (0 >= (size = ec->read (ec->cls, &data, MAX_READ))) return; buf = data; pos = 0; if (size < xlen) return; /* find actual beginning of the man page (.TH); abort if we find non-printable characters */ while ( (pos < size - xlen) && ( (0 != strncmp (".TH ", &buf[pos], xlen)) || ( (0 != pos) && (buf[pos - 1] != '\n') ) ) ) { if ( (! isgraph ((unsigned char) buf[pos])) && (! isspace ((unsigned char) buf[pos])) ) return; pos++; } if (0 != strncmp (".TH ", &buf[pos], xlen)) return; /* find end of ".TH"-line */ xsize = pos; while ( (xsize < size) && ('\n' != buf[xsize]) ) xsize++; /* limit processing to ".TH" line */ size = xsize; /* skip over ".TH" */ pos += xlen; /* first token is the title */ end = pos; find_end_of_token (&end, buf, size); if (end > size) return; if (end > pos) { ADD (EXTRACTOR_METATYPE_TITLE, stndup (&buf[pos], end - pos)); pos = end + 1; } if (pos >= size) return; /* next token is the section */ end = pos; find_end_of_token (&end, buf, size); if (end > size) return; if ('\"' == buf[pos]) pos++; if ((end - pos >= 1) && (end - pos <= 4)) { switch (buf[pos]) { case '1': ADD (EXTRACTOR_METATYPE_SECTION, strdup (_("Commands"))); break; case '2': ADD (EXTRACTOR_METATYPE_SECTION, strdup (_("System calls"))); break; case '3': ADD (EXTRACTOR_METATYPE_SECTION, strdup (_("Library calls"))); break; case '4': ADD (EXTRACTOR_METATYPE_SECTION, strdup (_("Special files"))); break; case '5': ADD (EXTRACTOR_METATYPE_SECTION, strdup (_("File formats and conventions"))); break; case '6': ADD (EXTRACTOR_METATYPE_SECTION, strdup (_("Games"))); break; case '7': ADD (EXTRACTOR_METATYPE_SECTION, strdup (_("Conventions and miscellaneous"))); break; case '8': ADD (EXTRACTOR_METATYPE_SECTION, strdup (_("System management commands"))); break; case '9': ADD (EXTRACTOR_METATYPE_SECTION, strdup (_("Kernel routines"))); break; default: ADD (EXTRACTOR_METATYPE_SECTION, stndup (&buf[pos], 1)); } pos = end + 1; } end = pos; /* next token is the modification date */ find_end_of_token (&end, buf, size); if (end > size) return; if (end > pos) { ADD (EXTRACTOR_METATYPE_MODIFICATION_DATE, stndup (&buf[pos], end - pos)); pos = end + 1; } /* next token is the source of the man page */ end = pos; find_end_of_token (&end, buf, size); if (end > size) return; if (end > pos) { ADD (EXTRACTOR_METATYPE_SOURCE, stndup (&buf[pos], end - pos)); pos = end + 1; } /* last token is the title of the book the man page belongs to */ end = pos; find_end_of_token (&end, buf, size); if (end > size) return; if (end > pos) { ADD (EXTRACTOR_METATYPE_BOOK_TITLE, stndup (&buf[pos], end - pos)); pos = end + 1; } } /* end of man_extractor.c */ libextractor-1.3/src/plugins/deb_extractor.c0000644000175000017500000002707612016742766016270 00000000000000/* This file is part of libextractor. (C) 2002, 2003, 2004, 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/deb_extractor.c * @brief plugin to support Debian archives * @author Christian Grothoff * * The .deb is an ar-chive file. It contains a tar.gz file * named "control.tar.gz" which then contains a file 'control' * that has the meta-data. And which variant of the various * ar file formats is used is also not quite certain. Yuck. * * References: * http://www.mkssoftware.com/docs/man4/tar.4.asp * http://lists.debian.org/debian-policy/2003/12/msg00000.html * http://www.opengroup.org/onlinepubs/009695399/utilities/ar.html */ #include "platform.h" #include "extractor.h" #include /** * Maximum file size we allow for control.tar.gz files. * This is a sanity check to avoid allocating huge amounts * of memory. */ #define MAX_CONTROL_SIZE (1024 * 1024) /** * Re-implementation of 'strndup'. * * @param str string to duplicate * @param n maximum number of bytes to copy * @return NULL on error, otherwise 0-terminated copy of 'str' * with at most n characters */ static char * stndup (const char *str, size_t n) { char *tmp; if (NULL == (tmp = malloc (n + 1))) return NULL; tmp[n] = '\0'; memcpy (tmp, str, n); return tmp; } /** * Entry in the mapping from control data to LE types. */ struct Matches { /** * Key in the Debian control file. */ const char *text; /** * Corresponding type in LE. */ enum EXTRACTOR_MetaType type; }; /** * Map from deb-control entries to LE types. * * see also: "man 5 deb-control" */ static struct Matches tmap[] = { {"Package: ", EXTRACTOR_METATYPE_PACKAGE_NAME}, {"Version: ", EXTRACTOR_METATYPE_PACKAGE_VERSION}, {"Section: ", EXTRACTOR_METATYPE_SECTION}, {"Priority: ", EXTRACTOR_METATYPE_UPLOAD_PRIORITY}, {"Architecture: ", EXTRACTOR_METATYPE_TARGET_ARCHITECTURE}, {"Depends: ", EXTRACTOR_METATYPE_PACKAGE_DEPENDENCY}, {"Recommends: ", EXTRACTOR_METATYPE_PACKAGE_RECOMMENDS}, {"Suggests: ", EXTRACTOR_METATYPE_PACKAGE_SUGGESTS}, {"Installed-Size: ",EXTRACTOR_METATYPE_PACKAGE_INSTALLED_SIZE}, {"Maintainer: ", EXTRACTOR_METATYPE_PACKAGE_MAINTAINER}, {"Description: ", EXTRACTOR_METATYPE_DESCRIPTION}, {"Source: ", EXTRACTOR_METATYPE_PACKAGE_SOURCE}, {"Pre-Depends: ", EXTRACTOR_METATYPE_PACKAGE_PRE_DEPENDENCY}, {"Conflicts: ", EXTRACTOR_METATYPE_PACKAGE_CONFLICTS}, {"Replaces: ", EXTRACTOR_METATYPE_PACKAGE_REPLACES}, {"Provides: ", EXTRACTOR_METATYPE_PACKAGE_PROVIDES}, {"Essential: ", EXTRACTOR_METATYPE_PACKAGE_ESSENTIAL}, {NULL, 0} }; /** * Process the "control" file from the control.tar.gz * * @param data decompressed control data * @param size number of bytes in data * @param proc function to call with meta data * @param proc_cls closure for 'proc' * @return 0 to continue extracting, 1 if we are done */ static int processControl (const char *data, const size_t size, EXTRACTOR_MetaDataProcessor proc, void *proc_cls) { size_t pos; char *key; char *val; size_t colon; size_t eol; unsigned int i; pos = 0; while (pos < size) { for (colon = pos; ':' != data[colon]; colon++) if ((colon > size) || ('\n' == data[colon])) return 0; colon++; while ((colon < size) && (isspace ((unsigned char) data[colon]))) colon++; eol = colon; while ((eol < size) && (('\n' != data[eol]) || ((eol + 1 < size) && (' ' == data[eol + 1])))) eol++; if ((eol == colon) || (eol > size)) return 0; if (NULL == (key = stndup (&data[pos], colon - pos))) return 0; for (i = 0; NULL != tmap[i].text; i++) { if (0 != strcmp (key, tmap[i].text)) continue; if (NULL == (val = stndup (&data[colon], eol - colon))) { free (key); return 0; } if (0 != proc (proc_cls, "deb", tmap[i].type, EXTRACTOR_METAFORMAT_UTF8, "text/plain", val, strlen(val) + 1)) { free (val); free (key); return 1; } free (val); break; } free (key); pos = eol + 1; } return 0; } /** * Header of an entry in a TAR file. */ struct TarHeader { /** * Filename. */ char name[100]; /** * File access modes. */ char mode[8]; /** * Owner of the file. */ char userId[8]; /** * Group of the file. */ char groupId[8]; /** * Size of the file, in octal. */ char filesize[12]; /** * Last modification time. */ char lastModTime[12]; /** * Checksum of the file. */ char chksum[8]; /** * Is the file a link? */ char link; /** * Destination of the link. */ char linkName[100]; }; /** * Extended TAR header for USTar format. */ struct USTarHeader { /** * Original TAR header. */ struct TarHeader tar; /** * Additinal magic for USTar. */ char magic[6]; /** * Format version. */ char version[2]; /** * User name. */ char uname[32]; /** * Group name. */ char gname[32]; /** * Device major number. */ char devmajor[8]; /** * Device minor number. */ char devminor[8]; /** * Unknown (padding?). */ char prefix[155]; }; /** * Process the control.tar file. * * @param data the deflated control.tar file data * @param size number of bytes in data * @param proc function to call with meta data * @param proc_cls closure for 'proc' * @return 0 to continue extracting, 1 if we are done */ static int processControlTar (const char *data, size_t size, EXTRACTOR_MetaDataProcessor proc, void *proc_cls) { struct TarHeader *tar; struct USTarHeader *ustar; size_t pos; pos = 0; while (pos + sizeof (struct TarHeader) < size) { unsigned long long fsize; char buf[13]; tar = (struct TarHeader *) & data[pos]; if (pos + sizeof (struct USTarHeader) < size) { ustar = (struct USTarHeader *) & data[pos]; if (0 == strncmp ("ustar", &ustar->magic[0], strlen ("ustar"))) pos += 512; /* sizeof (struct USTarHeader); */ else pos += 257; /* sizeof (struct TarHeader); minus gcc alignment... */ } else { pos += 257; /* sizeof (struct TarHeader); minus gcc alignment... */ } memcpy (buf, &tar->filesize[0], 12); buf[12] = '\0'; if (1 != sscanf (buf, "%12llo", &fsize)) /* octal! Yuck yuck! */ return 0; if ((pos + fsize > size) || (fsize > size) || (pos + fsize < pos)) return 0; if (0 == strncmp (&tar->name[0], "./control", strlen ("./control"))) { /* found the 'control' file we were looking for */ return processControl (&data[pos], fsize, proc, proc_cls); } if (0 != (fsize & 511)) fsize = (fsize | 511) + 1; /* round up! */ if (pos + fsize < pos) return 0; pos += fsize; } return 0; } /** * Process the control.tar.gz file. * * @param ec extractor context with control.tar.gz at current read position * @param size number of bytes in the control file * @return 0 to continue extracting, 1 if we are done */ static int processControlTGZ (struct EXTRACTOR_ExtractContext *ec, unsigned long long size) { uint32_t bufSize; char *buf; void *data; unsigned char *cdata; z_stream strm; int ret; ssize_t sret; unsigned long long off; if (size > MAX_CONTROL_SIZE) return 0; if (NULL == (cdata = malloc (size))) return 0; off = 0; while (off < size) { if (0 >= (sret = ec->read (ec->cls, &data, size - off))) { free (cdata); return 0; } memcpy (&cdata[off], data, sret); off += sret; } bufSize = cdata[size - 4] + (cdata[size - 3] << 8) + (cdata[size - 2] << 16) + (cdata[size - 1] << 24); if (bufSize > MAX_CONTROL_SIZE) { free (cdata); return 0; } if (NULL == (buf = malloc (bufSize))) { free (cdata); return 0; } ret = 0; memset (&strm, 0, sizeof (z_stream)); strm.next_in = (Bytef *) data; strm.avail_in = size; if (Z_OK == inflateInit2 (&strm, 15 + 32)) { strm.next_out = (Bytef *) buf; strm.avail_out = bufSize; inflate (&strm, Z_FINISH); if (strm.total_out > 0) ret = processControlTar (buf, strm.total_out, ec->proc, ec->cls); inflateEnd (&strm); } free (buf); free (cdata); return ret; } /** * Header of an object in an "AR"chive file. */ struct ObjectHeader { /** * Name of the file. */ char name[16]; /** * Last modification time for the file. */ char lastModTime[12]; /** * User ID of the owner. */ char userId[6]; /** * Group ID of the owner. */ char groupId[6]; /** * File access modes. */ char modeInOctal[8]; /** * Size of the file (as decimal string) */ char filesize[10]; /** * Tailer of the object header ("`\n") */ char trailer[2]; }; /** * Main entry method for the DEB extraction plugin. * * @param ec extraction context provided to the plugin */ void EXTRACTOR_deb_extract_method (struct EXTRACTOR_ExtractContext *ec) { uint64_t pos; int done = 0; const struct ObjectHeader *hdr; uint64_t fsize; unsigned long long csize; char buf[11]; void *data; fsize = ec->get_size (ec->cls); if (fsize < 128) return; if (8 != ec->read (ec->cls, &data, 8)) return; if (0 != strncmp ("!\n", data, 8)) return; pos = 8; while (pos + sizeof (struct ObjectHeader) < fsize) { if (pos != ec->seek (ec->cls, pos, SEEK_SET)) return; if (sizeof (struct ObjectHeader) != ec->read (ec->cls, &data, sizeof (struct ObjectHeader))) return; hdr = data; if (0 != strncmp (&hdr->trailer[0], "`\n", 2)) return; memcpy (buf, &hdr->filesize[0], 10); buf[10] = '\0'; if (1 != sscanf (buf, "%10llu", &csize)) return; pos += sizeof (struct ObjectHeader); if ((pos + csize > fsize) || (csize > fsize) || (pos + csize < pos)) return; if (0 == strncmp (&hdr->name[0], "control.tar.gz", strlen ("control.tar.gz"))) { if (0 != processControlTGZ (ec, csize)) return; done++; } if (0 == strncmp (&hdr->name[0], "debian-binary", strlen ("debian-binary"))) { if (0 != ec->proc (ec->cls, "deb", EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "application/x-debian-package", strlen ("application/x-debian-package")+1)) return; done++; } pos += csize; if (2 == done) break; /* no need to process the rest of the archive */ } } /* end of deb_extractor.c */ libextractor-1.3/src/plugins/test_odf.c0000644000175000017500000000475212016742777015250 00000000000000/* This file is part of libextractor. (C) 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/test_odf.c * @brief testcase for odf plugin * @author Christian Grothoff */ #include "platform.h" #include "test_lib.h" /** * Main function for the ODF testcase. * * @param argc number of arguments (ignored) * @param argv arguments (ignored) * @return 0 on success */ int main (int argc, char *argv[]) { struct SolutionData odf_cg_sol[] = { { EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "application/vnd.oasis.opendocument.text", strlen ("application/vnd.oasis.opendocument.text") + 1, 0 }, { EXTRACTOR_METATYPE_CREATED_BY_SOFTWARE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "OpenOffice.org/3.2$Unix OpenOffice.org_project/320m12$Build-9483", strlen ("OpenOffice.org/3.2$Unix OpenOffice.org_project/320m12$Build-9483") + 1, 0 }, { EXTRACTOR_METATYPE_PAGE_COUNT, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "1", strlen ("1") + 1, 0 }, { EXTRACTOR_METATYPE_CREATION_DATE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "2005-11-22T11:44:00", strlen ("2005-11-22T11:44:00") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN_DATE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "2010-06-09T13:09:34", strlen ("2010-06-09T13:09:34") + 1, 0 }, { EXTRACTOR_METATYPE_TITLE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Anhang 1: Profile der beteiligten Wissenschaftler", strlen ("Anhang 1: Profile der beteiligten Wissenschaftler") + 1, 0 }, { 0, 0, NULL, NULL, 0, -1 } }; struct ProblemSet ps[] = { { "testdata/odf_cg.odt", odf_cg_sol }, { NULL, NULL } }; return ET_main ("odf", ps); } /* end of test_odf.c */ libextractor-1.3/src/plugins/riff_extractor.c0000644000175000017500000001036212016742766016452 00000000000000/* This file is part of libextractor. (C) 2004, 2009, 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. This code was based on AVInfo 1.0 alpha 11 (c) George Shuklin, gs]AT[shounen.ru, 2002-2004 http://shounen.ru/soft/avinfo/ and bitcollider 0.6.0 (PD) 2004 The Bitzi Corporation http://bitzi.com/ */ /** * @file plugins/riff_extractor.c * @brief plugin to support RIFF files (ms-video) * @author Christian Grothoff */ #include "platform.h" #include "extractor.h" #include /** * Read an uint32_t as a little-endian (least * significant byte first) integer from 'data' * * @param data input data * @return integer read */ static uint32_t fread_le (const char *data) { unsigned int x; uint32_t result = 0; for (x = 0; x < 4; x++) result |= ((unsigned char) data[x]) << (x * 8); return result; } /** * We implement our own rounding function, because the availability of * C99's round(), nearbyint(), rint(), etc. seems to be spotty, whereas * floor() is available in math.h on all C compilers. * * @param num value to round * @return rounded-to-nearest value */ static double round_double (double num) { return floor (num + 0.5); } /** * Pass the given UTF-8 string to the 'proc' callback using * the given type. Uses 'return' if 'proc' returns non-0. * * @param s 0-terminated UTF8 string value with the meta data * @param t libextractor type for the meta data */ #define ADD(s,t) do { if (0 != ec->proc (ec->cls, "riff", t, EXTRACTOR_METAFORMAT_UTF8, "text/plain", s, strlen (s) + 1)) return; } while (0) /** * Main entry method for the 'video/x-msvideo' extraction plugin. * * @param ec extraction context provided to the plugin */ void EXTRACTOR_riff_extract_method (struct EXTRACTOR_ExtractContext *ec) { ssize_t xsize; void *data; char *xdata; uint32_t blockLen; unsigned int fps; unsigned int duration; uint64_t pos; uint32_t width; uint32_t height; char codec[5]; char format[256]; /* read header */ if (72 > (xsize = ec->read (ec->cls, &data, 72))) return; xdata = data; /* check magic values */ if ( (0 != memcmp (&xdata[0], "RIFF", 4)) || (0 != memcmp (&xdata[8], "AVI ", 4)) || (0 != memcmp (&xdata[12], "LIST", 4)) || (0 != memcmp (&xdata[20], "hdrlavih", 8)) ) return; blockLen = fread_le (&xdata[28]); /* begin of AVI header at 32 */ fps = (unsigned int) round_double ((double) 1.0e6 / fread_le (&xdata[32])); duration = (unsigned int) round_double ((double) fread_le (&xdata[48]) * 1000 / fps); width = fread_le (&xdata[64]); height = fread_le (&xdata[68]); /* pos: begin of video stream header */ pos = blockLen + 32; if (pos != ec->seek (ec->cls, pos, SEEK_SET)) return; if (32 > ec->read (ec->cls, &data, 32)) return; xdata = data; /* check magic */ if ( (0 != memcmp (xdata, "LIST", 4)) || (0 != memcmp (&xdata[8], "strlstrh", 8)) || (0 != memcmp (&xdata[20], "vids", 4)) ) return; /* pos + 24: video stream header with codec */ memcpy (codec, &xdata[24], 4); codec[4] = '\0'; snprintf (format, sizeof (format), _("codec: %s, %u fps, %u ms"), codec, fps, duration); ADD (format, EXTRACTOR_METATYPE_FORMAT); snprintf (format, sizeof (format), "%ux%u", (unsigned int) width, (unsigned int) height); ADD (format, EXTRACTOR_METATYPE_IMAGE_DIMENSIONS); ADD ("video/x-msvideo", EXTRACTOR_METATYPE_MIMETYPE); } /* end of riff_extractor.c */ libextractor-1.3/src/plugins/test_lib.h0000644000175000017500000000421512006753572015237 00000000000000/* This file is part of libextractor. (C) 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/test_lib.h * @brief helper library for writing testcases * @author Christian Grothoff */ #ifndef TEST_LIB_H #define TEST_LIB_H #include "extractor.h" /** * Expected outcome from the plugin. */ struct SolutionData { /** * Expected type. */ enum EXTRACTOR_MetaType type; /** * Expected format. */ enum EXTRACTOR_MetaFormat format; /** * Expected data mime type. */ const char *data_mime_type; /** * Expected meta data. */ const char *data; /** * Expected number of bytes in meta data. */ size_t data_len; /** * Internally used flag to say if this solution was * provided by the plugin; 0 for no, 1 for yes; -1 to * terminate the list. */ int solved; }; /** * Set of problems */ struct ProblemSet { /** * File to run the extractor on, NULL * to terminate the array. */ const char *filename; /** * Expected meta data. Terminate array with -1 in 'solved'. */ struct SolutionData *solution; }; /** * Main function to be called to test a plugin. * * @param plugin_name name of the plugin to load * @param ps array of problems the plugin should solve; * NULL in filename terminates the array. * @return 0 on success, 1 on failure */ int ET_main (const char *plugin_name, struct ProblemSet *ps); #endif libextractor-1.3/src/plugins/test_s3m.c0000644000175000017500000000327412016742777015200 00000000000000/* This file is part of libextractor. (C) 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/test_s3m.c * @brief testcase for s3m plugin * @author Christian Grothoff */ #include "platform.h" #include "test_lib.h" /** * Main function for the S3M testcase. * * @param argc number of arguments (ignored) * @param argv arguments (ignored) * @return 0 on success */ int main (int argc, char *argv[]) { struct SolutionData s3m_2ndpm_sol[] = { { EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "audio/x-s3m", strlen ("audio/x-s3m") + 1, 0 }, { EXTRACTOR_METATYPE_TITLE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "UnreaL ][ / PM ", strlen ("UnreaL ][ / PM ") + 1, 0 }, { 0, 0, NULL, NULL, 0, -1 } }; struct ProblemSet ps[] = { { "testdata/s3m_2nd_pm.s3m", s3m_2ndpm_sol }, { NULL, NULL } }; return ET_main ("s3m", ps); } /* end of test_s3m.c */ libextractor-1.3/src/plugins/mp4_extractor.c0000644000175000017500000001113412016742777016224 00000000000000/* This file is part of libextractor. (C) 2012 Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/mp4_extractor.c * @brief plugin to support MP4 files * @author Christian Grothoff */ #include "platform.h" #include "extractor.h" #include /** * Callback invoked by libmp4v2 to open the file. * We cheated and passed our extractor context as * the filename (fingers crossed) and will simply * return it again to make it the handle. * * @param name "filename" to open * @param open mode, only reading allowed * @return NULL if the file is not opened for reading */ static void* open_cb (const char *name, MP4FileMode mode) { void *ecp; if (FILEMODE_READ != mode) return NULL; if (1 != sscanf (name, "%p", &ecp)) return NULL; return ecp; } /** * Seek callback for libmp4v2. * * @param handle the 'struct EXTRACTOR_ExtractContext' * @param pos target seek position (relative or absolute?) * @return true on failure, false on success */ static int seek_cb (void *handle, int64_t pos) { struct EXTRACTOR_ExtractContext *ec = handle; fprintf (stderr, "Seek: %lld!\n", (long long) pos); if (-1 == ec->seek (ec->cls, pos, SEEK_CUR)) return true; /* failure */ return false; } /** * Read callback for libmp4v2. * * @param handle the 'struct EXTRACTOR_ExtractContext' * @param buffer where to write data read * @param size desired number of bytes to read * @param nin where to write number of bytes read * @param maxChunkSize some chunk size (ignored) * @return true on failure, false on success */ static int read_cb (void *handle, void *buffer, int64_t size, int64_t *nin, int64_t maxChunkSize) { struct EXTRACTOR_ExtractContext *ec = handle; void *buf; ssize_t ret; fprintf (stderr, "read!\n"); *nin = 0; if (-1 == (ret = ec->read (ec->cls, &buf, size))) return true; /* failure */ memcpy (buffer, buf, ret); *nin = ret; return false; /* success */ } /** * Write callback for libmp4v2. * * @param handle the 'struct EXTRACTOR_ExtractContext' * @param buffer data to write * @param size desired number of bytes to write * @param nin where to write number of bytes written * @param maxChunkSize some chunk size (ignored) * @return true on failure (always fails) */ static int write_cb (void *handle, const void *buffer, int64_t size, int64_t *nout, int64_t maxChunkSize) { fprintf (stderr, "Write!?\n"); return true; /* failure */ } /** * Write callback for libmp4v2. Does nothing. * * @param handle the 'struct EXTRACTOR_ExtractContext' * @return false on success (always succeeds) */ static int close_cb (void *handle) { fprintf (stderr, "Close!\n"); return false; /* success */ } #if 0 /** * Wrapper to replace 'stat64' call by libmp4v2. */ int stat_cb (const char * path, struct stat64 * buf) { void *ecp; struct EXTRACTOR_ExtractContext *ec; fprintf (stderr, "stat!\n"); if (1 != sscanf (path, "%p", &ecp)) { errno = EINVAL; return -1; } ec = ecp; memset (buf, 0, sizeof (struct stat)); buf->st_size = ec->get_size (ec->cls); return 0; } #endif /** * Main entry method for the MP4 extraction plugin. * * @param ec extraction context provided to the plugin */ void EXTRACTOR_mp4_extract_method (struct EXTRACTOR_ExtractContext *ec) { MP4FileProvider fp; MP4FileHandle mp4; const MP4Tags *tags; char ecp[128]; if (1) return; /* plugin is known not to work yet; see issue 138 filed against MP4v2 lib */ snprintf (ecp, sizeof (ecp), "%p", ec); fp.open = &open_cb; fp.seek = &seek_cb; fp.read = &read_cb; fp.write = &write_cb; fp.close = &close_cb; if (NULL == (mp4 = MP4ReadProvider (ecp, &fp))) return; tags = MP4TagsAlloc (); if (MP4TagsFetch (tags, mp4)) { fprintf (stderr, "got tags!\n"); } MP4Close (mp4, 0); } /* end of mp4_extractor.c */ libextractor-1.3/src/plugins/ogg_extractor.c0000644000175000017500000001247512016742766016307 00000000000000/* This file is part of libextractor. (C) 2002, 2003, 2009, 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/ogg_extractor.c * @brief plugin to support OGG files * @author Christian Grothoff */ #include "platform.h" #include "extractor.h" #include /** * Bytes each ogg file must begin with (not used, but we might * choose to add this back in the future to improve performance * for non-ogg files). */ #define OGG_HEADER 0x4f676753 /** * Custom read function for ogg. * * @param ptr where to write the data * @param size number of bytes to read per member * @param nmemb number of members to read * @param datasource the 'struct EXTRACTOR_ExtractContext' * @return 0 on end-of-data, 0 with errno set to indicate read error */ static size_t read_ogg (void *ptr, size_t size, size_t nmemb, void *datasource) { struct EXTRACTOR_ExtractContext *ec = datasource; void *data; ssize_t ret; data = NULL; ret = ec->read (ec->cls, &data, size * nmemb); if (-1 == ret) return 0; if (0 == ret) { errno = 0; return 0; } memcpy (ptr, data, ret); errno = 0; return ret; } /** * Seek to a particular position in the file. * * @param datasource the 'struct EXTRACTOR_ExtractContext' * @param offset where to seek * @param whence how to seek * @return -1 on error, new position on success */ static int seek_ogg (void *datasource, ogg_int64_t offset, int whence) { struct EXTRACTOR_ExtractContext *ec = datasource; int64_t new_position; new_position = ec->seek (ec->cls, (int64_t) offset, whence); return (long) new_position; } /** * Tell ogg where we are in the file * * @param datasource the 'struct EXTRACTOR_ExtractContext' * @return */ static long tell_ogg (void *datasource) { struct EXTRACTOR_ExtractContext *ec = datasource; return (long) ec->seek (ec->cls, 0, SEEK_CUR); } /** * Extract the associated meta data for a given label from vorbis. * * @param vc vorbis comment data * @param label label marking the desired entry * @return NULL on error, otherwise the meta data */ static char * get_comment (vorbis_comment *vc, const char *label) { if (NULL == vc) return NULL; return vorbis_comment_query (vc, label, 0); } /** * Extract meta data from vorbis using the given LE type and value. * * @param t LE meta data type * @param s meta data to add */ #define ADD(t,s) do { if (0 != (ret = ec->proc (ec->cls, "ogg", t, EXTRACTOR_METAFORMAT_UTF8, "text/plain", s, strlen(s)+1))) goto FINISH; } while (0) /** * Extract meta data from vorbis using the given LE type and label. * * @param t LE meta data type * @param d vorbis meta data label */ #define ADDG(t,d) do { m = get_comment (comments, d); if (NULL != m) ADD(t,m); } while (0) /** * Main entry method for the 'application/ogg' extraction plugin. * * @param ec extraction context provided to the plugin */ void EXTRACTOR_ogg_extract_method (struct EXTRACTOR_ExtractContext *ec) { uint64_t fsize; ov_callbacks callbacks; OggVorbis_File vf; vorbis_comment *comments; int ret; const char *m; fsize = ec->get_size (ec->cls); if (fsize < 8) return; callbacks.read_func = &read_ogg; callbacks.seek_func = &seek_ogg; callbacks.close_func = NULL; callbacks.tell_func = &tell_ogg; ret = ov_open_callbacks (ec, &vf, NULL, 0, callbacks); if (0 != ret) { ov_clear (&vf); return; } comments = ov_comment (&vf, -1); if (NULL == comments) { ov_clear (&vf); return; } ret = 0; ADD (EXTRACTOR_METATYPE_MIMETYPE, "application/ogg"); if ((comments->vendor != NULL) && (strlen (comments->vendor) > 0)) ADD (EXTRACTOR_METATYPE_VENDOR, comments->vendor); ADDG (EXTRACTOR_METATYPE_TITLE, "title"); ADDG (EXTRACTOR_METATYPE_ARTIST, "artist"); ADDG (EXTRACTOR_METATYPE_PERFORMER, "performer"); ADDG (EXTRACTOR_METATYPE_ALBUM, "album"); ADDG (EXTRACTOR_METATYPE_TRACK_NUMBER, "tracknumber"); ADDG (EXTRACTOR_METATYPE_DISC_NUMBER, "discnumber"); ADDG (EXTRACTOR_METATYPE_CONTACT_INFORMATION, "contact"); ADDG (EXTRACTOR_METATYPE_GENRE, "genre"); ADDG (EXTRACTOR_METATYPE_CREATION_DATE, "date"); ADDG (EXTRACTOR_METATYPE_COMMENT, ""); ADDG (EXTRACTOR_METATYPE_LOCATION_SUBLOCATION, "location"); ADDG (EXTRACTOR_METATYPE_DESCRIPTION, "description"); ADDG (EXTRACTOR_METATYPE_ISRC, "isrc"); ADDG (EXTRACTOR_METATYPE_ORGANIZATION, "organization"); ADDG (EXTRACTOR_METATYPE_COPYRIGHT, "copyright"); ADDG (EXTRACTOR_METATYPE_LICENSE, "license"); ADDG (EXTRACTOR_METATYPE_SONG_VERSION, "version"); FINISH: ov_clear (&vf); } /* end of ogg_extractor.c */ libextractor-1.3/src/plugins/test_nsfe.c0000644000175000017500000000557512016742777015437 00000000000000/* This file is part of libextractor. (C) 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/test_nsfe.c * @brief testcase for nsfe plugin * @author Christian Grothoff */ #include "platform.h" #include "test_lib.h" /** * Main function for the NSFE testcase. * * @param argc number of arguments (ignored) * @param argv arguments (ignored) * @return 0 on success */ int main (int argc, char *argv[]) { struct SolutionData nsfe_classics_sol[] = { { EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "audio/x-nsfe", strlen ("audio/x-nsfe") + 1, 0 }, { EXTRACTOR_METATYPE_SONG_COUNT, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "2", strlen ("2") + 1, 0 }, { EXTRACTOR_METATYPE_STARTING_SONG, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "0", strlen ("0") + 1, 0 }, { EXTRACTOR_METATYPE_BROADCAST_TELEVISION_SYSTEM, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "PAL", strlen ("PAL") + 1, 0 }, { EXTRACTOR_METATYPE_ALBUM, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Adventures of Dr. Franken,The", strlen ("Adventures of Dr. Franken,The") + 1, 0 }, { EXTRACTOR_METATYPE_ARTIST, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Mark Cooksey", strlen ("Mark Cooksey") + 1, 0 }, { EXTRACTOR_METATYPE_COPYRIGHT, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "1993 Motivetime LTD.", strlen ("1993 Motivetime LTD.") + 1, 0 }, { EXTRACTOR_METATYPE_RIPPER, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Gil_Galad", strlen ("Gil_Galad") + 1, 0 }, { EXTRACTOR_METATYPE_TITLE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Bach: Prelude & Fugue In C Minor", strlen ("Bach: Prelude & Fugue In C Minor") + 1, 0 }, { EXTRACTOR_METATYPE_TITLE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Beethoven: Moonlight Sonata", strlen ("Beethoven: Moonlight Sonata") + 1, 0 }, { 0, 0, NULL, NULL, 0, -1 } }; struct ProblemSet ps[] = { { "testdata/nsfe_classics.nsfe", nsfe_classics_sol }, { NULL, NULL } }; return ET_main ("nsfe", ps); } /* end of test_nsfe.c */ libextractor-1.3/src/plugins/mime_extractor.c0000644000175000017500000000575612126112357016453 00000000000000/* This file is part of libextractor. (C) 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/mime_extractor.c * @brief plugin to determine mime types using libmagic (from 'file') * @author Christian Grothoff */ #include "platform.h" #include "extractor.h" #include /** * Global handle to MAGIC data. */ static magic_t magic; /** * Path we used for loading magic data, NULL is used for 'default'. */ static char *magic_path; /** * Main entry method for the 'application/ogg' extraction plugin. The * 'config' of the context can be used to specify an alternative magic * path. If config is not given, the default magic path will be * used. * * @param ec extraction context provided to the plugin */ void EXTRACTOR_mime_extract_method (struct EXTRACTOR_ExtractContext *ec) { void *buf; ssize_t ret; const char *mime; ret = ec->read (ec->cls, &buf, 16 * 1024); if (-1 == ret) return; if ( ( (NULL == magic_path) && (NULL != ec->config) ) || ( (NULL != magic_path) && (NULL == ec->config) ) || ( (NULL != magic_path) && (NULL != ec->config) && (0 != strcmp (magic_path, ec->config) )) ) { if (NULL != magic_path) free (magic_path); magic_close (magic); magic = magic_open (MAGIC_MIME_TYPE); if (0 != magic_load (magic, ec->config)) { /* FIXME: report errors? */ } if (NULL != ec->config) magic_path = strdup (ec->config); else magic_path = NULL; } if (NULL == (mime = magic_buffer (magic, buf, ret))) return; ec->proc (ec->cls, "mime", EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", mime, strlen (mime) + 1); } /** * Constructor for the library. Loads the magic file. */ void __attribute__ ((constructor)) mime_ltdl_init () { magic = magic_open (MAGIC_MIME_TYPE); if (0 != magic_load (magic, magic_path)) { /* FIXME: how to deal with errors? */ } } /** * Destructor for the library, cleans up. */ void __attribute__ ((destructor)) mime_ltdl_fini () { if (NULL != magic) { magic_close (magic); magic = NULL; } if (NULL != magic_path) { free (magic_path); magic_path = NULL; } } /* end of mime_extractor.c */ libextractor-1.3/src/plugins/it_extractor.c0000644000175000017500000000542312016742766016142 00000000000000/* * This file is part of libextractor. * (C) 2008 Toni Ruottu * * libextractor is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published * by the Free Software Foundation; either version 3, or (at your * option) any later version. * * libextractor is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with libextractor; see the file COPYING. If not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. * */ /** * @file plugins/xm_extractor.c * @brief plugin to support Impulse Tracker (IT) files * @author Toni Ruottu * @author Christian Grothoff */ #include "platform.h" #include "extractor.h" /** * Number of bytes in the full IT header and thus * the minimum size we're going to accept for an IT file. */ #define HEADER_SIZE 0xD0 /** * Header of an IT file. */ struct Header { char magicid[4]; char title[26]; char hilight[2]; char orders[2]; char instruments[2]; char samples[2]; char patterns[2]; char version[2]; char compatible[2]; char flags[2]; char special[2]; }; /** * extract meta data from an Impulse Tracker module * * ITTECH.TXT as taken from IT 2.14p5 was used, while this piece of * software was originally written. * * @param ec extraction context */ void EXTRACTOR_it_extract_method (struct EXTRACTOR_ExtractContext *ec) { void *data; char title[27]; char itversion[8]; const struct Header *head; if (HEADER_SIZE > ec->read (ec->cls, &data, HEADER_SIZE)) return; head = (struct Header *) data; /* Check "magic" id bytes */ if (memcmp (head->magicid, "IMPM", 4)) return; /* Mime-type */ if (0 != ec->proc (ec->cls, "it", EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "audio/x-mod", strlen ("audio/x-mod") + 1)) return; /* Version of Tracker */ snprintf (itversion, sizeof (itversion), "%d.%d", (head->version[0] & 0x01), head->version[1]); if (0 != ec->proc (ec->cls, "it", EXTRACTOR_METATYPE_FORMAT_VERSION, EXTRACTOR_METAFORMAT_C_STRING, "text/plain", itversion, strlen (itversion) + 1)) return; /* Song title */ memcpy (&title, head->title, 26); title[26] = '\0'; if (0 != ec->proc (ec->cls, "it", EXTRACTOR_METATYPE_TITLE, EXTRACTOR_METAFORMAT_C_STRING, "text/plain", title, strlen (title) + 1)) return; } /* end of it_extractor.c */ libextractor-1.3/src/plugins/dvi_extractor.c0000644000175000017500000001757712016742766016325 00000000000000/* This file is part of libextractor. (C) 2002, 2003, 2004, 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/dvi_extractor.c * @brief plugin to support DVI files (from LaTeX) * @author Christian Grothoff */ #include "platform.h" #include "extractor.h" /** * Pair of a PostScipt prefix and the corresponding LE type. */ struct Matches { /** * Prefix in the PS map. */ const char *text; /** * Corresponding LE type. */ enum EXTRACTOR_MetaType type; }; /** * Map from PS names to LE types. */ static struct Matches tmap[] = { { "/Title (", EXTRACTOR_METATYPE_TITLE }, { "/Subject (", EXTRACTOR_METATYPE_SUBJECT }, { "/Author (", EXTRACTOR_METATYPE_AUTHOR_NAME }, { "/Keywords (", EXTRACTOR_METATYPE_KEYWORDS }, { "/Creator (", EXTRACTOR_METATYPE_CREATED_BY_SOFTWARE }, { "/Producer (", EXTRACTOR_METATYPE_PRODUCED_BY_SOFTWARE }, { NULL, 0 } }; /** * Parse a "ZZZ" tag. Specifically, the data may contain a * postscript dictionary with metadata. * * @param data overall input stream * @param pos where in data is the zzz data * @param len how many bytes from 'pos' does the zzz data extend? * @param proc function to call with meta data found * @param proc_cls closure for proc * @return 0 to continue to extract, 1 to stop */ static int parseZZZ (const char *data, size_t pos, size_t len, EXTRACTOR_MetaDataProcessor proc, void *proc_cls) { size_t slen; size_t end; unsigned int i; end = pos + len; slen = strlen ("ps:SDict begin ["); if ( (len <= slen) || (0 != strncmp ("ps:SDict begin [ ", &data[pos], slen)) ) return 0; pos += slen; while (pos < end) { for (i = 0; NULL != tmap[i].text; i++) { slen = strlen (tmap[i].text); if ( (pos + slen > end) || (0 != strncmp (&data[pos], tmap[i].text, slen)) ) continue; pos += slen; slen = pos; while ((slen < end) && (data[slen] != ')')) slen++; slen = slen - pos; { char value[slen + 1]; value[slen] = '\0'; memcpy (value, &data[pos], slen); if (0 != proc (proc_cls, "dvi", tmap[i].type, EXTRACTOR_METAFORMAT_C_STRING, "text/plain", value, slen + 1)) return 1; } pos += slen + 1; break; } pos++; } return 0; } /** * Read 32-bit unsigned integer in big-endian format from 'data'. * * @param data pointer to integer (possibly unaligned) * @return 32-bit integer in host byte order */ static uint32_t getIntAt (const void *data) { uint32_t p; memcpy (&p, data, 4); /* ensure alignment! */ return ntohl (p); } /** * Read 16-bit unsigned integer in big-endian format from 'data'. * * @param data pointer to integer (possibly unaligned) * @return 16-bit integer in host byte order */ static uint16_t getShortAt (const void *data) { uint16_t p; memcpy (&p, data, sizeof (uint16_t)); /* ensure alignment! */ return ntohs (p); } /** * Main entry method for the 'application/x-dvi' extraction plugin. * * @param ec extraction context provided to the plugin */ void EXTRACTOR_dvi_extract_method (struct EXTRACTOR_ExtractContext *ec) { unsigned int klen; uint32_t pos; uint32_t opos; unsigned int len; unsigned int pageCount; char pages[16]; void *buf; unsigned char *data; uint64_t size; uint64_t off; ssize_t iret; if (40 >= (iret = ec->read (ec->cls, &buf, 1024))) return; data = buf; if ((data[0] != 247) || (data[1] != 2)) return; /* cannot be DVI or unsupported version */ klen = data[14]; size = ec->get_size (ec->cls); if (size > 16 * 1024 * 1024) return; /* too large */ if (NULL == (data = malloc ((size_t) size))) return; /* out of memory */ memcpy (data, buf, iret); off = iret; while (off < size) { if (0 >= (iret = ec->read (ec->cls, &buf, 16 * 1024))) { free (data); return; } memcpy (&data[off], buf, iret); off += iret; } pos = size - 1; while ((223 == data[pos]) && (pos > 0)) pos--; if ((2 != data[pos]) || (pos < 40)) goto CLEANUP; pos--; pos -= 4; /* assert pos at 'post_post tag' */ if (data[pos] != 249) goto CLEANUP; opos = pos; pos = getIntAt (&data[opos + 1]); if (pos + 25 > size) goto CLEANUP; /* assert pos at 'post' command */ if (data[pos] != 248) goto CLEANUP; pageCount = 0; opos = pos; pos = getIntAt (&data[opos + 1]); while (1) { if (UINT32_MAX == pos) break; if (pos + 45 > size) goto CLEANUP; if (data[pos] != 139) /* expect 'bop' */ goto CLEANUP; pageCount++; opos = pos; pos = getIntAt (&data[opos + 41]); if (UINT32_MAX == pos) break; if (pos >= opos) goto CLEANUP; /* invalid! */ } /* ok, now we believe it's a dvi... */ snprintf (pages, sizeof (pages), "%u", pageCount); if (0 != ec->proc (ec->cls, "dvi", EXTRACTOR_METATYPE_PAGE_COUNT, EXTRACTOR_METAFORMAT_UTF8, "text/plain", pages, strlen (pages) + 1)) goto CLEANUP; if (0 != ec->proc (ec->cls, "dvi", EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "application/x-dvi", strlen ("application/x-dvi") + 1)) goto CLEANUP; { char comment[klen + 1]; comment[klen] = '\0'; memcpy (comment, &data[15], klen); if (0 != ec->proc (ec->cls, "dvi", EXTRACTOR_METATYPE_COMMENT, EXTRACTOR_METAFORMAT_C_STRING, "text/plain", comment, klen + 1)) goto CLEANUP; } /* try to find PDF/ps special */ pos = opos; while (pos < size - 100) { switch (data[pos]) { case 139: /* begin page 'bop', we typically have to skip that one to find the zzz's */ pos += 45; /* skip bop */ break; case 239: /* zzz1 */ len = data[pos + 1]; if (pos + 2 + len < size) if (0 != parseZZZ ((const char *) data, pos + 2, len, ec->proc, ec->cls)) goto CLEANUP; pos += len + 2; break; case 240: /* zzz2 */ len = getShortAt (&data[pos + 1]); if (pos + 3 + len < size) if (0 != parseZZZ ((const char *) data, pos + 3, len, ec->proc, ec->cls)) goto CLEANUP; pos += len + 3; break; case 241: /* zzz3, who uses that? */ len = (getShortAt (&data[pos + 1])) + 65536 * data[pos + 3]; if (pos + 4 + len < size) if (0 != parseZZZ ((const char *) data, pos + 4, len, ec->proc, ec->cls)) goto CLEANUP; pos += len + 4; break; case 242: /* zzz4, hurray! */ len = getIntAt (&data[pos + 1]); if (pos + 1 + len < size) if (0 != parseZZZ ((const char *) data, pos + 5, len, ec->proc, ec->cls)) goto CLEANUP; pos += len + 5; break; default: /* unsupported opcode, abort scan */ goto CLEANUP; } } CLEANUP: free (data); } /* end of dvi_extractor.c */ libextractor-1.3/src/plugins/test_zip.c0000644000175000017500000000466512016742777015305 00000000000000/* This file is part of libextractor. (C) 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/test_zip.c * @brief testcase for zip plugin * @author Christian Grothoff */ #include "platform.h" #include "test_lib.h" /** * Main function for the ZIP testcase. * * @param argc number of arguments (ignored) * @param argv arguments (ignored) * @return 0 on success */ int main (int argc, char *argv[]) { struct SolutionData zip_test_sol[] = { { EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "application/zip", strlen ("application/zip") + 1, 0 }, { EXTRACTOR_METATYPE_COMMENT, EXTRACTOR_METAFORMAT_C_STRING, "text/plain", "global zipfile comment", strlen ("global zipfile comment") + 1, 0 }, { EXTRACTOR_METATYPE_FILENAME, EXTRACTOR_METAFORMAT_C_STRING, "text/plain", "ChangeLog", strlen ("ChangeLog") + 1, 0 }, { EXTRACTOR_METATYPE_FILENAME, EXTRACTOR_METAFORMAT_C_STRING, "text/plain", "test.png", strlen ("test.png") + 1, 0 }, { EXTRACTOR_METATYPE_COMMENT, EXTRACTOR_METAFORMAT_C_STRING, "text/plain", "comment for test.png", strlen ("comment for test.png") + 1, 0 }, { EXTRACTOR_METATYPE_FILENAME, EXTRACTOR_METAFORMAT_C_STRING, "text/plain", "test.jpg", strlen ("test.jpg") + 1, 0 }, { EXTRACTOR_METATYPE_COMMENT, EXTRACTOR_METAFORMAT_C_STRING, "text/plain", "comment for test.jpg", strlen ("comment for test.jpg") + 1, 0 }, { 0, 0, NULL, NULL, 0, -1 } }; struct ProblemSet ps[] = { { "testdata/zip_test.zip", zip_test_sol }, { NULL, NULL } }; return ET_main ("zip", ps); } /* end of test_zip.c */ libextractor-1.3/src/plugins/png_extractor.c0000644000175000017500000002767712016742766016331 00000000000000/* This file is part of libextractor. (C) 2002, 2003, 2004, 2005, 2009, 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/png_extractor.c * @brief plugin to support PNG files * @author Christian Grothoff */ #include "platform.h" #include #include "extractor.h" #include "convert.h" /** * Header that every PNG file must start with. */ #define PNG_HEADER "\211PNG\r\n\032\n" /** * Function to create 0-terminated string from the * first n characters of the given input. * * @param str input string * @param n length of the input * @return n-bytes from str followed by 0-termination, NULL on error */ static char * stndup (const char *str, size_t n) { char *tmp; if (NULL == (tmp = malloc (n + 1))) return NULL; tmp[n] = '\0'; memcpy (tmp, str, n); return tmp; } /** * strnlen is GNU specific, let's redo it here to be * POSIX compliant. * * @param str input string * @param maxlen maximum length of str * @return first position of 0-terminator in str, or maxlen */ static size_t stnlen (const char *str, size_t maxlen) { size_t ret; ret = 0; while ( (ret < maxlen) && ('\0' != str[ret]) ) ret++; return ret; } /** * Interpret the 4 bytes in 'buf' as a big-endian * encoded 32-bit integer, convert and return. * * @param pos (unaligned) pointer to 4 byte integer * @return converted integer in host byte order */ static uint32_t get_int_at (const void *pos) { uint32_t i; memcpy (&i, pos, sizeof (i)); return htonl (i); } /** * Map from PNG meta data descriptor strings * to LE types. */ static struct { /** * PNG name. */ const char *name; /** * Corresponding LE type. */ enum EXTRACTOR_MetaType type; } tagmap[] = { { "Author", EXTRACTOR_METATYPE_AUTHOR_NAME }, { "Description", EXTRACTOR_METATYPE_DESCRIPTION }, { "Comment", EXTRACTOR_METATYPE_COMMENT }, { "Copyright", EXTRACTOR_METATYPE_COPYRIGHT }, { "Source", EXTRACTOR_METATYPE_SOURCE_DEVICE }, { "Creation Time", EXTRACTOR_METATYPE_CREATION_DATE }, { "Title", EXTRACTOR_METATYPE_TITLE }, { "Software", EXTRACTOR_METATYPE_PRODUCED_BY_SOFTWARE }, { "Disclaimer", EXTRACTOR_METATYPE_DISCLAIMER }, { "Warning", EXTRACTOR_METATYPE_WARNING }, { "Signature", EXTRACTOR_METATYPE_UNKNOWN }, { NULL, EXTRACTOR_METATYPE_RESERVED } }; /** * Give the given metadata to LE. Set "ret" to 1 and * goto 'FINISH' if LE says we are done. * * @param t type of the metadata * @param s utf8 string with the metadata */ #define ADD(t,s) do { if (0 != (ret = ec->proc (ec->cls, "png", t, EXTRACTOR_METAFORMAT_UTF8, "text/plain", s, strlen (s) + 1))) goto FINISH; } while (0) /** * Give the given metadata to LE and free the memory. Set "ret" to 1 and * goto 'FINISH' if LE says we are done. * * @param t type of the metadata * @param s utf8 string with the metadata, to be freed afterwards */ #define ADDF(t,s) do { if ( (NULL != s) && (0 != (ret = ec->proc (ec->cls, "png", t, EXTRACTOR_METAFORMAT_UTF8, "text/plain", s, strlen (s) + 1))) ) { free (s); goto FINISH; } if (NULL != s) free (s); } while (0) /** * Process EXt tag. * * @param ec extraction context * @param length length of the tag * @return 0 to continue extracting, 1 if we are done */ static int processtEXt (struct EXTRACTOR_ExtractContext *ec, uint32_t length) { void *ptr; unsigned char *data; char *keyword; size_t off; unsigned int i; int ret; if (length != ec->read (ec->cls, &ptr, length)) return 1; data = ptr; off = stnlen ((char*) data, length) + 1; if (off >= length) return 0; /* failed to find '\0' */ if (NULL == (keyword = EXTRACTOR_common_convert_to_utf8 ((char*) &data[off], length - off, "ISO-8859-1"))) return 0; ret = 0; for (i = 0; NULL != tagmap[i].name; i++) if (0 == strcmp (tagmap[i].name, (char*) data)) { ADDF (tagmap[i].type, keyword); return 0; } ADDF (EXTRACTOR_METATYPE_KEYWORDS, keyword); FINISH: return ret; } /** * Process iTXt tag. * * @param ec extraction context * @param length length of the tag * @return 0 to continue extracting, 1 if we are done */ static int processiTXt (struct EXTRACTOR_ExtractContext *ec, uint32_t length) { void *ptr; unsigned char *data; size_t pos; char *keyword; const char *language; const char *translated; unsigned int i; int compressed; char *buf; char *lan; uLongf bufLen; int ret; int zret; if (length != ec->read (ec->cls, &ptr, length)) return 1; data = ptr; pos = stnlen ((char *) data, length) + 1; if (pos >= length) return 0; compressed = data[pos++]; if (compressed && (0 != data[pos++])) return 0; /* bad compression method */ language = (char *) &data[pos]; ret = 0; if ( (stnlen (language, length - pos) > 0) && (NULL != (lan = stndup (language, length - pos))) ) ADDF (EXTRACTOR_METATYPE_LANGUAGE, lan); pos += stnlen (language, length - pos) + 1; if (pos + 1 >= length) return 0; translated = (char*) &data[pos]; /* already in utf-8! */ if ( (stnlen (translated, length - pos) > 0) && (NULL != (lan = stndup (translated, length - pos))) ) ADDF (EXTRACTOR_METATYPE_KEYWORDS, lan); pos += stnlen (translated, length - pos) + 1; if (pos >= length) return 0; if (compressed) { bufLen = 1024 + 2 * (length - pos); while (1) { if (bufLen * 2 < bufLen) return 0; bufLen *= 2; if (bufLen > 50 * (length - pos)) { /* printf("zlib problem"); */ return 0; } if (NULL == (buf = malloc (bufLen))) { /* printf("out of memory"); */ return 0; /* out of memory */ } if (Z_OK == (zret = uncompress ((Bytef *) buf, &bufLen, (const Bytef *) &data[pos], length - pos))) { /* printf("zlib ok"); */ break; } free (buf); if (Z_BUF_ERROR != zret) return 0; /* unknown error, abort */ } keyword = stndup (buf, bufLen); free (buf); } else { keyword = stndup ((char *) &data[pos], length - pos); } if (NULL == keyword) return ret; for (i = 0; NULL != tagmap[i].name; i++) if (0 == strcmp (tagmap[i].name, (char*) data)) { ADDF (tagmap[i].type, keyword /* already in utf8 */); return 0; } ADDF (EXTRACTOR_METATYPE_COMMENT, keyword); FINISH: return ret; } /** * Process IHDR tag. * * @param ec extraction context * @param length length of the tag * @return 0 to continue extracting, 1 if we are done */ static int processIHDR (struct EXTRACTOR_ExtractContext *ec, uint32_t length) { void *ptr; unsigned char *data; char tmp[128]; int ret; if (length < 12) return 0; if (length != ec->read (ec->cls, &ptr, length)) return 1; data = ptr; ret = 0; snprintf (tmp, sizeof (tmp), "%ux%u", get_int_at (data), get_int_at (&data[4])); ADD (EXTRACTOR_METATYPE_IMAGE_DIMENSIONS, tmp); FINISH: return ret; } /** * Process zTXt tag. * * @param ec extraction context * @param length length of the tag * @return 0 to continue extracting, 1 if we are done */ static int processzTXt (struct EXTRACTOR_ExtractContext *ec, uint32_t length) { void *ptr; unsigned char *data; char *keyword; size_t off; unsigned int i; char *buf; uLongf bufLen; int zret; int ret; if (length != ec->read (ec->cls, &ptr, length)) return 1; data = ptr; off = stnlen ((char *) data, length) + 1; if (off >= length) return 0; /* failed to find '\0' */ if (0 != data[off]) return 0; /* compression method must be 0 */ off++; ret = 0; bufLen = 1024 + 2 * (length - off); while (1) { if (bufLen * 2 < bufLen) return 0; bufLen *= 2; if (bufLen > 50 * (length - off)) { /* printf("zlib problem"); */ return 0; } if (NULL == (buf = malloc (bufLen))) { /* printf("out of memory"); */ return 0; /* out of memory */ } if (Z_OK == (zret = uncompress ((Bytef *) buf, &bufLen, (const Bytef *) &data[off], length - off))) { /* printf("zlib ok"); */ break; } free (buf); if (Z_BUF_ERROR != zret) return 0; /* unknown error, abort */ } keyword = EXTRACTOR_common_convert_to_utf8 (buf, bufLen, "ISO-8859-1"); free (buf); for (i = 0; NULL != tagmap[i].name; i++) if (0 == strcmp (tagmap[i].name, (char*) data)) { ADDF (tagmap[i].type, keyword); return 0; } ADDF (EXTRACTOR_METATYPE_COMMENT, keyword); FINISH: return ret; } /** * Process IME tag. * * @param ec extraction context * @param length length of the tag * @return 0 to continue extracting, 1 if we are done */ static int processtIME (struct EXTRACTOR_ExtractContext *ec, uint32_t length) { void *ptr; unsigned char *data; unsigned short y; unsigned int year; unsigned int mo; unsigned int day; unsigned int h; unsigned int m; unsigned int s; char val[256]; int ret; if (length != 7) return 0; if (length != ec->read (ec->cls, &ptr, length)) return 1; data = ptr; ret = 0; memcpy (&y, data, sizeof (uint16_t)); year = ntohs (y); mo = (unsigned char) data[6]; day = (unsigned char) data[7]; h = (unsigned char) data[8]; m = (unsigned char) data[9]; s = (unsigned char) data[10]; snprintf (val, sizeof (val), "%04u-%02u-%02u %02d:%02d:%02d", year, mo, day, h, m, s); ADD (EXTRACTOR_METATYPE_MODIFICATION_DATE, val); FINISH: return ret; } /** * Main entry method for the 'image/png' extraction plugin. * * @param ec extraction context provided to the plugin */ void EXTRACTOR_png_extract_method (struct EXTRACTOR_ExtractContext *ec) { void *data; uint32_t length; int64_t pos; int ret; ssize_t len; len = strlen (PNG_HEADER); if (len != ec->read (ec->cls, &data, len)) return; if (0 != strncmp ((const char*) data, PNG_HEADER, len)) return; ADD (EXTRACTOR_METATYPE_MIMETYPE, "image/png"); ret = 0; while (0 == ret) { if (sizeof (uint32_t) + 4 != ec->read (ec->cls, &data, sizeof (uint32_t) + 4)) break; length = get_int_at (data); if (0 > (pos = ec->seek (ec->cls, 0, SEEK_CUR))) break; pos += length + 4; /* Chunk type, data, crc */ if (0 == strncmp ((char*) data + sizeof (uint32_t), "IHDR", 4)) ret = processIHDR (ec, length); if (0 == strncmp ((char*) data + sizeof (uint32_t), "iTXt", 4)) ret = processiTXt (ec, length); if (0 == strncmp ((char*) data + sizeof (uint32_t), "tEXt", 4)) ret = processtEXt (ec, length); if (0 == strncmp ((char*) data + sizeof (uint32_t), "zTXt", 4)) ret = processzTXt (ec, length); if (0 == strncmp ((char*) data + sizeof (uint32_t), "tIME", 4)) ret = processtIME (ec, length); if (ret != 0) break; if (pos != ec->seek (ec->cls, pos, SEEK_SET)) break; } FINISH: return; } /* end of png_extractor.c */ libextractor-1.3/src/plugins/xm_extractor.c0000644000175000017500000000534212016742766016152 00000000000000/* * This file is part of libextractor. * (C) 2008, 2009 Toni Ruottu * * libextractor is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published * by the Free Software Foundation; either version 3, or (at your * option) any later version. * * libextractor is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with libextractor; see the file COPYING. If not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. * */ /** * @file plugins/xm_extractor.c * @brief plugin to support XM files * @author Toni Ruottu * @author Christian Grothoff */ #include "platform.h" #include "extractor.h" /** * Header of an XM file. */ struct Header { char magicid[17]; char title[20]; char something[1]; char tracker[20]; char version[2]; }; /** * Give meta data to LE. * * @param s utf-8 string meta data value * @param t type of the meta data */ #define ADD(s,t) do { if (0 != ec->proc (ec->cls, "xm", t, EXTRACTOR_METAFORMAT_UTF8, "text/plain", s, strlen (s) + 1)) return; } while (0) /** * "extract" metadata from an Extended Module * * The XM module format description for XM files * version $0104 that was written by Mr.H of Triton * in 1994 was used, while this piece of software * was originally written. * * @param ec extraction context */ void EXTRACTOR_xm_extract_method (struct EXTRACTOR_ExtractContext *ec) { void *data; const struct Header *head; char title[21]; char tracker[21]; char xmversion[8]; size_t n; if (sizeof (struct Header) > ec->read (ec->cls, &data, sizeof (struct Header))) return; head = data; /* Check "magic" id bytes */ if (memcmp (head->magicid, "Extended Module: ", 17)) return; ADD("audio/x-xm", EXTRACTOR_METATYPE_MIMETYPE); /* Version of Tracker */ snprintf (xmversion, sizeof (xmversion), "%d.%d", head->version[1], head->version[0]); ADD (xmversion, EXTRACTOR_METATYPE_FORMAT_VERSION); /* Song title */ memcpy (&title, head->title, 20); n = 19; while ( (n > 0) && isspace ((unsigned char) title[n])) n--; title[n + 1] = '\0'; ADD (title, EXTRACTOR_METATYPE_TITLE); /* software used for creating the data */ memcpy (&tracker, head->tracker, 20); n = 19; while ( (n > 0) && isspace ((unsigned char) tracker[n])) n--; tracker[n + 1] = '\0'; ADD (tracker, EXTRACTOR_METATYPE_CREATED_BY_SOFTWARE); return; } /* end of xm_extractor.c */ libextractor-1.3/src/plugins/zip_extractor.c0000644000175000017500000000636612016742766016337 00000000000000/* * This file is part of libextractor. * (C) 2012 Vidyut Samanta and Christian Grothoff * * libextractor is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published * by the Free Software Foundation; either version 3, or (at your * option) any later version. * * libextractor is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with libextractor; see the file COPYING. If not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ /** * @file plugins/zip_extractor.c * @brief plugin to support ZIP files * @author Christian Grothoff */ #include "platform.h" #include #include "extractor.h" #include "unzip.h" /** * Main entry method for the 'application/zip' extraction plugin. * * @param ec extraction context provided to the plugin */ void EXTRACTOR_zip_extract_method (struct EXTRACTOR_ExtractContext *ec) { struct EXTRACTOR_UnzipFile *uf; struct EXTRACTOR_UnzipFileInfo fi; char fname[256]; char fcomment[256]; if (NULL == (uf = EXTRACTOR_common_unzip_open (ec))) return; if ( (EXTRACTOR_UNZIP_OK == EXTRACTOR_common_unzip_go_find_local_file (uf, "meta.xml", 2)) || (EXTRACTOR_UNZIP_OK == EXTRACTOR_common_unzip_go_find_local_file (uf, "META-INF/MANIFEST.MF", 2)) ) { /* not a normal zip, might be odf, jar, etc. */ goto CLEANUP; } if (EXTRACTOR_UNZIP_OK != EXTRACTOR_common_unzip_go_to_first_file (uf)) { /* zip malformed? */ goto CLEANUP; } if (0 != ec->proc (ec->cls, "zip", EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "application/zip", strlen ("application/zip") + 1)) goto CLEANUP; if (EXTRACTOR_UNZIP_OK == EXTRACTOR_common_unzip_get_global_comment (uf, fcomment, sizeof (fcomment))) { if ( (0 != strlen (fcomment)) && (0 != ec->proc (ec->cls, "zip", EXTRACTOR_METATYPE_COMMENT, EXTRACTOR_METAFORMAT_C_STRING, "text/plain", fcomment, strlen (fcomment) + 1))) goto CLEANUP; } do { if (EXTRACTOR_UNZIP_OK == EXTRACTOR_common_unzip_get_current_file_info (uf, &fi, fname, sizeof (fname), NULL, 0, fcomment, sizeof (fcomment))) { if ( (0 != strlen (fname)) && (0 != ec->proc (ec->cls, "zip", EXTRACTOR_METATYPE_FILENAME, EXTRACTOR_METAFORMAT_C_STRING, "text/plain", fname, strlen (fname) + 1))) goto CLEANUP; if ( (0 != strlen (fcomment)) && (0 != ec->proc (ec->cls, "zip", EXTRACTOR_METATYPE_COMMENT, EXTRACTOR_METAFORMAT_C_STRING, "text/plain", fcomment, strlen (fcomment) + 1))) goto CLEANUP; } } while (EXTRACTOR_UNZIP_OK == EXTRACTOR_common_unzip_go_to_next_file (uf)); CLEANUP: (void) EXTRACTOR_common_unzip_close (uf); } /* end of zip_extractor.c */ libextractor-1.3/src/plugins/gif_extractor.c0000644000175000017500000000647712161074220016265 00000000000000/* This file is part of libextractor. (C) 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/gif_extractor.c * @brief plugin to support GIF files * @author Christian Grothoff */ #include "platform.h" #include "extractor.h" #include /** * Callback invoked by libgif to read data. * * @param ft the file handle, including our extract context * @param bt where to write the data * @param arg number of bytes to read * @return -1 on error, otherwise number of bytes read */ static int gif_read_func (GifFileType *ft, GifByteType *bt, int arg) { struct EXTRACTOR_ExtractContext *ec = ft->UserData; void *data; ssize_t ret; ret = ec->read (ec->cls, &data, arg); if (-1 == ret) return -1; memcpy (bt, data, ret); return ret; } /** * Main entry method for the 'image/gif' extraction plugin. * * @param ec extraction context provided to the plugin */ void EXTRACTOR_gif_extract_method (struct EXTRACTOR_ExtractContext *ec) { GifFileType *gif_file; GifRecordType gif_type; GifByteType *ext; int et; char dims[128]; #if defined (GIF_LIB_VERSION) || GIFLIB_MAJOR <= 4 if (NULL == (gif_file = DGifOpen (ec, &gif_read_func))) return; /* not a GIF */ #else int gif_error; gif_error = 0; gif_file = DGifOpen (ec, &gif_read_func, &gif_error); if (gif_file == NULL || gif_error != 0) { if (gif_file != NULL) EGifCloseFile (gif_file); return; /* not a GIF */ } #endif if (0 != ec->proc (ec->cls, "gif", EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "image/gif", strlen ("image/gif") + 1)) return; snprintf (dims, sizeof (dims), "%dx%d", gif_file->SHeight, gif_file->SWidth); if (0 != ec->proc (ec->cls, "gif", EXTRACTOR_METATYPE_IMAGE_DIMENSIONS, EXTRACTOR_METAFORMAT_UTF8, "text/plain", dims, strlen (dims) + 1)) return; while (1) { if (GIF_OK != DGifGetRecordType (gif_file, &gif_type)) break; if (UNDEFINED_RECORD_TYPE == gif_type) break; if (EXTENSION_RECORD_TYPE != gif_type) continue; if (GIF_OK != DGifGetExtension (gif_file, &et, &ext)) continue; if (COMMENT_EXT_FUNC_CODE == et) { ec->proc (ec->cls, "gif", EXTRACTOR_METATYPE_COMMENT, EXTRACTOR_METAFORMAT_C_STRING, "text/plain", (char*) &ext[1], (uint8_t) ext[0]); break; } while ( (GIF_ERROR != DGifGetExtensionNext(gif_file, &ext)) && (NULL != ext) ) ; /* keep going */ } DGifCloseFile (gif_file); } /* end of gif_extractor.c */ libextractor-1.3/src/plugins/test_tiff.c0000644000175000017500000000545712016742777015433 00000000000000/* This file is part of libextractor. (C) 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/test_tiff.c * @brief testcase for tiff plugin * @author Christian Grothoff */ #include "platform.h" #include "test_lib.h" /** * Main function for the TIFF testcase. * * @param argc number of arguments (ignored) * @param argv arguments (ignored) * @return 0 on success */ int main (int argc, char *argv[]) { struct SolutionData tiff_haute_sol[] = { { EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "image/tiff", strlen ("image/tiff") + 1, 0 }, { EXTRACTOR_METATYPE_ARTIST, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Anders Espersen", strlen ("Anders Espersen") + 1, 0 }, { EXTRACTOR_METATYPE_CREATION_DATE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "2012:05:15 10:51:47", strlen ("2012:05:15 10:51:47") + 1, 0 }, { EXTRACTOR_METATYPE_COPYRIGHT, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "© Anders Espersen", strlen ("© Anders Espersen") + 1, 0 }, { EXTRACTOR_METATYPE_CAMERA_MAKE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Hasselblad", strlen ("Hasselblad") + 1, 0 }, { EXTRACTOR_METATYPE_CAMERA_MODEL, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Hasselblad H4D-31", strlen ("Hasselblad H4D-31") + 1, 0 }, { EXTRACTOR_METATYPE_CREATED_BY_SOFTWARE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Adobe Photoshop CS5 Macintosh", strlen ("Adobe Photoshop CS5 Macintosh") + 1, 0 }, { EXTRACTOR_METATYPE_IMAGE_DIMENSIONS, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "4872x6496", strlen ("4872x6496") + 1, 0 }, { 0, 0, NULL, NULL, 0, -1 } }; struct ProblemSet ps[] = { /* note that the original test image was almost 100 MB large; so for SVN it was cut down to only contain the first 64 KB, which still parse fine and give use the meta data */ { "testdata/tiff_haute.tiff", tiff_haute_sol }, { NULL, NULL } }; return ET_main ("tiff", ps); } /* end of test_tiff.c */ libextractor-1.3/src/plugins/fuzz_default.sh0000755000175000017500000000146612163633205016321 00000000000000#!/bin/sh ZZSTARTSEED=0 ZZSTOPSEED=100 ret=0 # fallbacks for direct, non-"make check" usage if test x"$testdatadir" = x"" then testdatadir=../../test fi if test x"$bindir" = x"" then bindir=`grep "^prefix = " ./Makefile | cut -d ' ' -f 3` bindir="$bindir/bin" fi for file in $testdatadir/test* do if test -f "$file" then tmpfile=`mktemp extractortmp.XXXXXX` || exit 1 seed=$ZZSTARTSEED trap "echo $tmpfile caused SIGSEGV ; exit 1" SEGV while [ $seed -lt $ZZSTOPSEED ] do echo "file $file seed $seed" zzuf -c -s $seed cat "$file" > "$tmpfile" if ! "$bindir/extract" -i "$tmpfile" > /dev/null then echo "$tmpfile with seed $seed failed" mv $tmpfile $tmpfile.keep ret=1 fi seed=`expr $seed + 1` done rm -f "$tmpfile" fi done exit $ret libextractor-1.3/src/plugins/odf_extractor.c0000644000175000017500000002014012016742766016267 00000000000000/* This file is part of libextractor. (C) 2004, 2009, 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/odf_extractor.c * @brief plugin to support ODF files * @author Christian Grothoff */ #include "platform.h" #include #include "extractor.h" #include "unzip.h" /** * Maximum length of a filename allowed inside the ZIP archive. */ #define MAXFILENAME 256 /** * Name of the file with the meta-data in OO documents. */ #define METAFILE "meta.xml" /** * Mapping from ODF meta data strings to LE types. */ struct Matches { /** * ODF description. */ const char * text; /** * Corresponding LE type. */ enum EXTRACTOR_MetaType type; }; /** * NULL-terminated map from ODF meta data strings to LE types. */ static struct Matches tmap[] = { { "meta:generator", EXTRACTOR_METATYPE_CREATED_BY_SOFTWARE }, { "meta:page-count", EXTRACTOR_METATYPE_PAGE_COUNT }, { "meta:creation-date", EXTRACTOR_METATYPE_CREATION_DATE }, { "dc:date", EXTRACTOR_METATYPE_UNKNOWN_DATE }, { "dc:creator", EXTRACTOR_METATYPE_CREATOR }, { "dc:language", EXTRACTOR_METATYPE_LANGUAGE }, { "dc:title", EXTRACTOR_METATYPE_TITLE }, { "dc:description", EXTRACTOR_METATYPE_DESCRIPTION }, { "dc:subject", EXTRACTOR_METATYPE_SUBJECT }, { "meta:keyword", EXTRACTOR_METATYPE_KEYWORDS }, { "meta:user-defined meta:name=\"Info 1\"", EXTRACTOR_METATYPE_COMMENT }, { "meta:user-defined meta:name=\"Info 2\"", EXTRACTOR_METATYPE_COMMENT }, { "meta:user-defined meta:name=\"Info 3\"", EXTRACTOR_METATYPE_COMMENT }, { "meta:user-defined meta:name=\"Info 4\"", EXTRACTOR_METATYPE_COMMENT }, { NULL, 0 } }; /** * Obtain the mimetype of the archive by reading the 'mimetype' * file of the ZIP. * * @param uf unzip context to extract the mimetype from * @return NULL if no mimetype could be found, otherwise the mime type */ static char * libextractor_oo_getmimetype (struct EXTRACTOR_UnzipFile * uf) { char filename_inzip[MAXFILENAME]; struct EXTRACTOR_UnzipFileInfo file_info; char *buf; size_t buf_size; if (EXTRACTOR_UNZIP_OK != EXTRACTOR_common_unzip_go_find_local_file (uf, "mimetype", 2)) return NULL; if (EXTRACTOR_UNZIP_OK != EXTRACTOR_common_unzip_get_current_file_info (uf, &file_info, filename_inzip, sizeof (filename_inzip), NULL, 0, NULL, 0)) return NULL; if (EXTRACTOR_UNZIP_OK != EXTRACTOR_common_unzip_open_current_file (uf)) return NULL; buf_size = file_info.uncompressed_size; if (buf_size > 1024) { /* way too large! */ EXTRACTOR_common_unzip_close_current_file (uf); return NULL; } if (NULL == (buf = malloc (1 + buf_size))) { /* memory exhausted! */ EXTRACTOR_common_unzip_close_current_file (uf); return NULL; } if (buf_size != (size_t) EXTRACTOR_common_unzip_read_current_file (uf, buf, buf_size)) { free(buf); EXTRACTOR_common_unzip_close_current_file(uf); return NULL; } /* found something */ buf[buf_size] = '\0'; while ( (0 < buf_size) && isspace( (unsigned char) buf[buf_size - 1])) buf[--buf_size] = '\0'; if ('\0' == buf[0]) { free (buf); buf = NULL; } EXTRACTOR_common_unzip_close_current_file (uf); return buf; } /** * Main entry method for the ODF extraction plugin. * * @param ec extraction context provided to the plugin */ void EXTRACTOR_odf_extract_method (struct EXTRACTOR_ExtractContext *ec) { char filename_inzip[MAXFILENAME]; struct EXTRACTOR_UnzipFile *uf; struct EXTRACTOR_UnzipFileInfo file_info; char *buf; char *pbuf; size_t buf_size; unsigned int i; char *mimetype; if (NULL == (uf = EXTRACTOR_common_unzip_open (ec))) return; if (NULL != (mimetype = libextractor_oo_getmimetype (uf))) { if (0 != ec->proc (ec->cls, "odf", EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", mimetype, strlen (mimetype) + 1)) { EXTRACTOR_common_unzip_close (uf); free (mimetype); return; } free (mimetype); } if (EXTRACTOR_UNZIP_OK != EXTRACTOR_common_unzip_go_find_local_file (uf, METAFILE, 2)) { /* metafile not found */ EXTRACTOR_common_unzip_close (uf); return; } if (EXTRACTOR_UNZIP_OK != EXTRACTOR_common_unzip_get_current_file_info (uf, &file_info, filename_inzip, sizeof (filename_inzip), NULL, 0, NULL, 0)) { /* problems accessing metafile */ EXTRACTOR_common_unzip_close (uf); return; } if (EXTRACTOR_UNZIP_OK != EXTRACTOR_common_unzip_open_current_file (uf)) { /* problems with unzip */ EXTRACTOR_common_unzip_close (uf); return; } buf_size = file_info.uncompressed_size; if (buf_size > 128 * 1024) { /* too big to be meta-data! */ EXTRACTOR_common_unzip_close_current_file (uf); EXTRACTOR_common_unzip_close (uf); return; } if (NULL == (buf = malloc (buf_size+1))) { /* out of memory */ EXTRACTOR_common_unzip_close_current_file (uf); EXTRACTOR_common_unzip_close (uf); return; } if (buf_size != EXTRACTOR_common_unzip_read_current_file (uf, buf, buf_size)) { EXTRACTOR_common_unzip_close_current_file (uf); goto CLEANUP; } EXTRACTOR_common_unzip_close_current_file (uf); /* we don't do "proper" parsing of the meta-data but rather use some heuristics to get values out that we understand */ buf[buf_size] = '\0'; /* printf("%s\n", buf); */ /* try to find some of the typical OO xml headers */ if ( (strstr (buf, "xmlns:meta=\"http://openoffice.org/2000/meta\"") != NULL) || (strstr (buf, "xmlns:dc=\"http://purl.org/dc/elements/1.1/\"") != NULL) || (strstr (buf, "xmlns:xlink=\"http://www.w3.org/1999/xlink\"") != NULL) ) { /* accept as meta-data */ for (i = 0; NULL != tmap[i].text; i++) { char * spos; char * epos; char needle[256]; int oc; pbuf = buf; while (1) { strcpy(needle, "<"); strcat(needle, tmap[i].text); strcat(needle, ">"); spos = strstr(pbuf, needle); if (NULL == spos) { strcpy(needle, tmap[i].text); strcat(needle, "=\""); spos = strstr(pbuf, needle); if (spos == NULL) break; spos += strlen(needle); epos = spos; while ( (epos[0] != '\0') && (epos[0] != '"') ) epos++; } else { oc = 0; spos += strlen(needle); while ( (spos[0] != '\0') && ( (spos[0] == '<') || (oc > 0) ) ) { if (spos[0] == '<') oc++; if (spos[0] == '>') oc--; spos++; } epos = spos; while ( (epos[0] != '\0') && (epos[0] != '<') && (epos[0] != '>') ) { epos++; } } if (spos != epos) { char key[epos - spos + 1]; memcpy(key, spos, epos-spos); key[epos-spos] = '\0'; if (0 != ec->proc (ec->cls, "odf", tmap[i].type, EXTRACTOR_METAFORMAT_UTF8, "text/plain", key, epos - spos + 1)) goto CLEANUP; pbuf = epos; } else break; } } } CLEANUP: free (buf); EXTRACTOR_common_unzip_close (uf); } /* end of odf_extractor.c */ libextractor-1.3/src/plugins/testdata/0000755000175000017500000000000012256015540015141 500000000000000libextractor-1.3/src/plugins/testdata/gstreamer_30_and_33.asf0000644000175000017500000020440612021431245021176 000000000000000&ufblHܫG Seh* ߬KqBa   }/u+Fy_. Serӫ SeDFC|K)9>A\.ru en-US]&EG_eRů[wHgDLz4DeviceConformanceTemplateL1 IsVBR˥r2CiR[ZXw+w+k" ު|O(Uݘ"#DIANEpTWM/ComposerAnd This Guy WM/CategoryTag2 WM/CategoryTag3:AuthorThis Artist Also Contributedt E˖@^PWMFSDKVersion 12.0.7601.17514WMFSDKNeeded0.0.0.0000 WM/EncodingTime Qs(WM/SharedUserRating2WM/SubTitleSome subtitleWM/Composer(Composed by ThisGuyWM/Mood8Not in a mood to specify it,WM/ContentDistributorFWell, not really content with thisWM/Conductor4More like semi-conductorsWM/PartOfSetLegendary Tracks of Thievery (+10 sneak when full set is complete)WM/InitialKey@Initial key is always "any key"WM/Producer4Producers (not consumers)$WM/BeatsPerMinute0and punches-per-seconds$WM/ParentalRating,Not Safe For Children6WM/ContentGroupDescriptionSome groupWM/PeriodAnd commaWM/Publisher4Publisher (not privisher) WM/PromotionURL(http://demotion.netWM/AuthorURL*http://somehwere.comWM/EncodedByMe, of courseWM/TrackNumberWM/AlbumTitleZee AlbumWM/Year 9999"WM/IsCompilationWM/AlbumArtist0All performed by NobodyWM/Category Tag1WM/Genre Flabberghasting IsVBR.MediaFoundationVersion 2.112@Rц1HARц1HWindows Media Audio 9.2$ 96 kbps, 44 kHz, stereo 1-pass CBRaܷ Ser@iM[_\D+Pÿa aD.k kku{F`ɢ Fy3&ufbl0 Some titleThis Artist ContributedA witty comment6&ufbl* ߬KqBa ]sk+ p$I98sv$$k6dI_$I$I$I$I$I$)JRI$I$7JUW   (J(J(J(J(J52I$86B.`j<S\tۜt+)xUmCg9Z:,6|-(q2x%dO`:i1ȏ~c%g]!1clsNM0WE62R'.oKtu .i@5O|T8߮#[~0Gh"IA<Ҵu3teU|@u9 в,]5 )}X[HYpߺO.$߇jFOu:Q9[G4>M S-~e]DЮ='V:c@0 1諟xk`I* Ĝ񸌣Oʹ@'K3|1'N`D88 ]OwOpI ψpAM.#WI R:Fɀ.1⌈$*)т`u .DG+lr|Red?WMcۉ _KfijS ^hF N_Y`#w:PO5t4P󏾠(HYxKሺsv$`pA?`8qu &(.8yȃn&"Hr\ +X,k:@, c@ сx:RG v5~,ȑe t\I tbkHv-ISIl-kB\ b|Z@( -گ*q%[C=Kp %d.wL7 9qZ#IM/]sskpt$I9x3ooZLg&,@Vhq;x2k)0Hq&8|<ʓ3c* ȴ!q$lJ Ȝ>!8VUIYY#A<$ˍ!dK )-~!O@O@x+4GEG@2Ct$I9x:JĒxn/48 H`Uiqeȏ0kj|@׍dvX&Z\h\[~ ؗ(q}j|1ZN7O+NDb\n/ʐqVRɺRgK H _ \ |߼<=<$@z{1Uձ'|Zcsڊ l3Q2""Hrt ۋCk櫳lN>q#4+W>7ҭۜI|N*O`?8#$ J)8j|k6pGyNQ+(eKe]@@ V_ )qűyY? 'PAo@ PmjUx>9EXxT,o']sk(t$I9x3P?mχ‚xi@, k kgԸݰ֋@$ QGΟ=. YGJ8c[e9@qؑ O[!@:R7#"ӎkO&=)Mp93xE$x,B,YPMkcq$-[[q e}EzMV:|RDP,5xb.$'/@D$kD `hv|DOHˑ>xl~~Gz\ol츒|0gȟWdy$`,)C$M~?vKq>I}B:AYi='W YG+HUIGi5'" Io@ i?A|skVA[oxbN$'/p A[`4JhhROt#(|? ^!MtbYKpGH0+A"\lth$+/LҐ'@,?N2Y`/WiK;g'=}| x8RcKnhqӀȂCj:aO (=@ @q ^0Gh"IA+zƢHqxFWX!}:S[[q#6kx~n59Y yCߌ8Z:{6ӁVĬ>TEt  >D LK l{<"@Ķ 8/G-zPIn-% V:~֡8HY[~0Gh"IA+|hHKbּ"pF"[cX`tnbY|\$[~_т+\kH5~0'g] ݻeHY<-AqdKNxe`Ta!ҟ!ēK9*A-@LN}CMcv""Hrt Vījxȷ\o[P$g. ]">|MiEǣx oʟ[Z*(ϒZsIjmk+xrEiщm[%%c[r*m[,x<ji^W/861~Aإ5]qnؗlMem9!A$M{X#:sv$?e\4|ضض&ܗa,kzi_lrHYny8@ *KЮH~-@ӥtCʵ[2Hqϫ#2&=c> @ 8!q\-N> eѭX?!Nn4hYB\n+qq [xbN$'/p WբqO@-WFXVi+ <4q+(i+"H7qm}M$lMd qX3!e6|t88')`,,ο}5`aZPJeWۉ:Q2JpBn!bFd<~kApm}ED|8<]ZskW 8t$I9x3`тI qC+5GHD+~ H-t4b)q&F*j>:-WAdMc~ǷD:<@![d:YlJtW >fq ` [ɚ+=8~e%# n!ewEE1濑bq{[Η$"Hrg5l0zm]۫+ ,Ak2"%dCtSlK0LRi9F{V_7@$ eǬu Gæ?y@^B 4 -|=o5EM5֓`AKn!b+tђx@ƥ.7P=(t]9;DIN^[W kMkkj >" tޅ0m o= 3yؓq5iYN$O}Mk@( R};t,aEqn!VZq톯@d8'ǡ."P<~a8+n:߉oƂzZw qY;t$I9x3mo]y<C0<qqZ Hګ[eAqSWb#Tm  ~uqּmϒS 3a驟 0N{<$[s#r0B$2!mG崁>*8=Ҟxb.$'/@\DƮP35:SűO`,(tKD&|CYmǀ`#.5OgyLdN, Ae1v_,Y@[dX'O+"mq% q79@q⭨ v'╓|TO@[t$I9x:m8ΔMo[^m'@$ x7OtJvтdH2ж eO 'S[[,[%GƬdn6Du#P`ؔ8 y8#/E8X#r zk(1q K'է%Zq Je|&%PSXΟt$I9x:mXZI>QŀÍ]?qx$,G GgkHoq$,\t~,tEtpX+=}'W adYhz4Ktx `B0c"@X_`;y\wl$-G `ZGMcD]sk Ht$I9x3h>oN \F[utke V@0[ ^Xv_FJ戮=$\lčw]akV_`]pNYoY&ݔ8Dk,^lon:|͸}\FZ0%c`t0r u-(HC U[ [[~>'$"Hrg4-8 +*ckz(E}bؚ+{zs\  |id4֙tMir¸t8:c"5n7H'Ҵ)>{-x[CO [hq xjud8K ==FΔ8q S[FNAk1HK3ܟ1"1N`DxѸ[O[>t#]O8-OhKwR}Sn4=K-個KbHp=1[o0c>89KUk}.甐q2)q-%ƥ6$,YE,qHwq A@|v[1_R<|:sv$ZaqdX[ˉ/λ8 a\[k8`xS>{PN4{yY|CBɂLOp?6\B->jp]q.7PpB][SBӈ0ρqRCˎ0JJʚeሺsv$sVSlx5o (s x-Mo@YN{`:|YCEcn$݇TǡlߟBpZkroߠc'xv n!<_㕯6V@YbLx\d8 cߍ2RN xY[>"pL#c@?[.5(#{{t$I9x:o֫8ztYksm櫡"P~jD?%خL,`AnEk`i2 Qcx$ .H qAdpXiU+\|HqyFx>%yHD:A@$ ҇t$I9x3hKn1 XOψYYp$[+`(qYq|Կq&C:Cu lHU+.DɺEBaw*"~QKkkʘ}5nA6^,jt<_ǦZdz? Ʃ4^\t0r тպۊ+)8&/4KÎ3V[wqx]Ask> Xt$I9x:vmGx)q`*[N_>q-<#g{nq$8r .:{֌z*zoZx@JxZN'N='ӑ)Cs!.%1ZT8:['$'g$`@ ndM<Dʐ?@:S<1N`Dx5\IhO:FuqӞ5p@+ y?Ѯ=Om" +[, Q9:x#@< 82KnY*Y@>D[$qŀG@$ ].qPxIYWY2[`@ [ђ% X6-wRw"~qX!j^0Gh"IA+lo>l[oC2 ؒ\vK@`qقa%.ĚI3~BV1Y'gb'=*|D?K%T'."q \_u1UKV7"s&$I &6}4`ޔ8Ʊ&> /˺VmZFit!%a<1N`DV%o[+#| +e}t]><HxNK#F 㷸>d-ಌ88K/zr?_GnanpK>~X6&<ZkI{>~<)q&o$ּG`U>*VPAn8pVT%eajȏ[} S_ %%e0絹62RE5늶:FSDq^0Gh"IA+onN2pŀq@  7ѭ5.:s'qN:sx$Lxt,`eZబ?蜐9N _lx>{qqeeo ,\41 'yO55K[%y.$tVTO <7B0JJOxbN$'/p JpZIƣ= x+[!vBVB+@1Xr,KtOulMkl#f.|R-||E~mEn dcbtmœ7lB?5RFst0|؛ӈ% X%W $n,1>n]) EӘ#D$ 6U׈(>o-J]۰J|pߤWI[sCn qˈJĒݱ1셔e"~E.dGEm X o`Hq% qe. ! 'x|@BӤlzFRߑq&`!Ēݱ3VĬߟ* 56DS&h5V?Ch;heĐroۉ*5:߈+)MiwO42@峂'$"Hrg ik- #@0 O[,\l} >@kB(0 #J?H *NVXබs b_`ڒ-8Eq@Oqet }&X6zjx7H+H8%Z'OiqEě!m.#)JVI H&O ~]xt-KHpZ5COC+oA%ĕ%r8-3矊KAY<ךK55NFPk[e]G-gBɔW?(x*j N .|+oҞJ\BOښ](Zt`%1%eJ|unxb.$'/@|UwJYYhMm[OH[7O8~`ۂ l"kM.1xUnF"1t| U\Ii *k)oPkJ2~I*up<ϡ)ڄc2M^m.!4[]"e{N+}ӊғop-  ,,eKcۋa.7Nz$ /u&AƷQ>_Ht$I9x:v-O ޷[~xuF)~?- oX'`>mYK^`= u#"l3Ҍ:|oD8F@\Fh[C0JO@-7$"Hrg58-8!o;5m~E'( ["<0Z<֗O`:O}[q`h8FPp@lH಴GS@pz\A%MSm$zi~#Kp}.fWYVNRFNQ.#r>'Oy V! &HI.7P]( sk%xt$I9x3mx!~}%k.?`q%GD8Dl< zVbDI@( gzX0C#֌$-~%Uj1?5eqW +&jBɀ0G "RӔųUĚgQ\eO.!bC=!j|)C ሺsv$సIH5ӂ] <@׎mZMq%~yq%A 'vĆ]EZ+Nɷڃ9J0F~#~aXclL,R<Ƈ0J} `[=1 ,D,Y)CŔ>:|@8ʰ?vLNVo-`#2:sv$cP@W_42+B\Il(!ZjpXmVO'@, ~PtlYEBVACxE%d*±YMnr h8) :|iq(qRk~'' Ŕ'@ #2]9;DIN^[qqAF,q5\E`4V8WE`h  )Z8Z|'8YpA]Q شԷ@Y?vB75ybq VZbSl{4G[K(}B6\B\G֖d%" x)Y0WGH?Mĝ9;DIN^ S[tÏ[~?q[5F_%6+KoZqӔc D,WX-⮩ gG۳DHܳ?BTr7(r4q-S&aӥ_\Ab,:|#9K|VT0|~ؗmE.+Vx&| \qNCf0Gh"IA+lM0ƴx Vj˧]Yii.3ΑzVgfߺOKL8y0Aǂ+'".n=ȃ} q ~jȎ=ǢUπPOGxϡۭۜBRaVn#*ksnq *uc9|?qߕ!eYJz$"Hrg4-.8dSW~`hS] bH֨Ysxd&g+o[qKY[.6QjؒpZ+`VCoh q'@8 8@$ !e5A+BJi`7K#@4 #= 0!dXI98>6?"[tͱ5iX?P4ƽP-~E~ሺsv$dƠVđq*Kko{ a(wN?q E`nB؟\oWji$=Ҋ mo׈0!Mm: ][|Z DVΗߘXwo;5G /ʚ/B "`gHY cGn#)q_>(6RQ1U\qYYrq-Apm}ED|8<] s kt$I9x:o-`$zE]V~[CK`j|%N" g2M '/MEc+S<"Mqh8NRGgP'=?+cWK%>px< t(—PVZ-e& 0]wO 8~I `.$0Gh"IA+z8Vɷ>q,G@q`~"4P|@$ g$0 iO?2k\I$NP+n;bf=r8BrR0mdZ2 /Ԭ#g_  > c aIq'oxb.$'/@'%ğYR* m[P$x0['"(|<.!ge4`H yC[ ÈY"tUzS_7ƴO`%ӧY*/L(1dWǷ,B00] Iٵ-Ғ<|2b\u2@ǃPZ+eƷ~TqxbN$'/p Wt[| 'uJpB8`*GMvF*q Tؖ+ c%tD#" ʴZ98v_e k `H .?#&3ǏLS\}6Ùބ8_OVOu$q[@~cl3P7"] s k t$I9x:llHt,x 8ջ#vkumHY_~oȶ5@$ 8B3f, 8An.! 8ߟFO[J爟%cV2\GϼjtJOm8g>Z_>[,xKB.(O%.!eiMnC%a > 8>xb.$'/@ؐq%GOknGH[lJێǠ4[qLmqֳܸđlM ?`M|yryr# T8t[\tkR=p B\򄸓KVȇ)B6\B<@ P[As8*|ό`xbN$'/pYcn"T`޷W .>"#)>Y`@( xJ?2mzLӑ]V݃jm|I/6'c|S"X{e͌AyEt/ s8- |<-#חߟqdc nq [?K@Jݱ c)I d2Ct$I9x:m8Z#jx4!dR+HoXR'*\2ݽĒB\Bi:{6ĜdCےrUS+*|d<8 "Wy|aBXmMl>md/ha8#*FGհ_F 8@an.8).-w$"HrgҐӔVG@~<!9F[&.!KX4+ ~}-Cԗ( l]S]%dqr^$ct@VA\ "sۈ8譸M.! ƏA` !N{,S\d!nFV>4[Zt ~ Uϴ#eRQFB]9;DIN^[!.:?7eoq(K,]>xMv4òiy:xx[퉣#Qŕm6p])oC" %q,ԁxEe#B8\F,pl,YEGJHȃ8ZrFOJ~/E11m@ C4pFt<1'N`D8x'aeZoˍ F*%P{ av4=86֘&'c2VčvpXȗ}A$,JBY@*\ O>@#^'qqF R|J\eq .+tVQ q?K3sOq?xbN$'/pX,.7>jEm[ v q@ (Qzڟ O>U8VQ\o7>{<1N`DV jCS:VߕcGF|<GHq,DŽEǧ\I>.:{ۋ`V+/p|VO umdk[۸߬x~ȟo=}>q&g@ S[R+Vy&-B\kw"߷""HrtfuÍGߦ< +5#?λ.q3y4,݂nV2B?4o=m6B1,WVEqFN<SB"<  $dAģ8-g@i|2.2׉B8K 5ppY0WChĝ9;DIN^   =Vde>x,ksFVP=|6.<+D8DF N OGoS٭(q.?PH=aĝlK]nsgHZ(C`zVv(O%.!goC_ ~/Uϥ1,{bv""Hrt *ޏY b<"P>Oǀ5>" +)`JI-k=xD3ۿ01+/?4C(qc eki+'6F t"." yB\z$O>Gf }UZ+&fS ◺}_j^oG]b[&d2_Ju2l3$"Hrg Z'$~k4>@fklM>k+-?8|@'=C "Eě8 d[dK>:,ZKk&=6cVG$ 1lළr ʞ4`EnlM@O90{x/ izO?MG@>ሺsv$tě8ϝ,`dk[0BOy#iO$y c W@ބ8~_wMn0'ȟrCͺY##%tUxj|W_9K.Vq\qm)>/Ӊ7qH{ZD/E`u`wÈrl3ሺsv$@< q'[6Ԭ"0Xm&,  U8-}Mq֭Ӟ?AYO oxsF\9I?q ;O궮3Adå+Q>]IՕX+O? Y)#" !ĚӈX_ A򊱬5Ecሺsv$Y@ q%o[M>Ae -JG|D/ETeVs V'OJH[ҒKපGV݋58l"|$)X [Ϥ"蘳 Y^ط[6&*8I_bn4`K} <t{~7%$[Zָg@!+ 2N#SHǀ@PQX!hxbN$'/p'հ8 ?!u[x xu8=9Kah#YM!#@0 ggԸLj8A <`nؚ0Y;?>/%y4X @S@L8& Y !)x7 *P!Y_K<Ut^|ۍ )q{md""Hrt ߋؑq,6B|@߂[kkr\j| iqK+8&ZKp[$k=ˉ./]+?NH8%.Du\v[gtV)=oKtOx +EƦ>JpHy=lj؟n*>Ʉ'<O %x\$"Hrg `ؚxGA+R#?t+tƣ(~o8ۖP>O"2kHU Vcxliq2k|F|C\EA֯.%ғc <AGFBmoqӀçłկޚ+i&0I0|]is kft$I9x:oo⮐R)5on).]Ǣ>yN |#y" /2[Bq8Z$`f^S]? ,X6+o{V| 'g>  q9VQly+"?Dg xB!oqx>ĸ|.VQRVZ+G:sv$%v0@])%'Q] q + 5Zq "KCdq&Nl(.$Z#ӥ])<փ\,xK g<@A,En9'$)ĒR?T`i-[OOVUa$OYE!dGo IӘ#D$ j0[̡Y)to[8<"KNyWh W *5}(!e-38ZXZbzN[C9o@8d( xQ=g: RN I=xl 2 ֜B[,|mK%A,x: w`R\ITF~Y_8I(q&JL_i99Qi}uȎQ>u\KB(Ky@'q}j\tkv߻{Jhq$|N!m5ruta/8,߷$"Hrg [K:VwՎn`k]bhHYhtd=Ì> -9Aqd]VFHwel"2qe ,xb.$'/@|x,.;,YVQ\&UtX)}7XҳNxoqєӂ0Jgq [$ d9N GhZG+ x n8ϕ&= ,\aZb<xJ`zBp*X5w %cey]vkjk[xC91c1B\sژZֵoky5<[Oib:VGOjO`VJ+= EӘ#D$  ,EǮ" 9Q dAeǞ]#@, ROR5@Yl3V:{]U8в[, #ybK[Y 2|xLBcbJ`笗q&ZrB+o52W~AY_<@$ _6\Yr%q38bUi4[ i׀@ =?)Ykp$,<Bi8C<(qxl 2 q [? KQXLW3sM8xbN$'/pq)+F\Itݵo Jm{}t.#/XR\BxVĬ~񸊃.OVĭ2uB8?^H 78G|`b+vɷ.2=A[ }O %qe - 9;DIN^ `HPؗEl?`Onkd '!q_>0rK VG4\j =+셑=?ZtI%})=[ϔͥȃ!kAt)! ,Rk [%dJMqtp=j]P߇jeNDD'/! \\r"spJ3r.gQXq$ې >kj8_.">|s_srZ[qNWD'/ Js5|z_p'\ ̬(w.R4g(i k5VUG S2$NVTEAaaS%cFDΩy!#Lz4nݽ2ΤW0 Qth<h5~|/@&UgELVb_@l3"8.˥U,|f#xxk#x 1V_#@J^5@~#>.}3EPpFR@Z'"VKVX`#Dt/|qMY[Vʹx%FGcgJm'|?@ABCDEFGHIJ  FMicrosoft Word-Dokument MSWordDocWord.Document.89q [\\Standard 1$ *$+B*OJQJCJmHsHPJnH^J_HtHBA@BAbsatz-Standardschriftart0B0 Textkrper x"/"Liste^JJJ Beschriftung xx $CJ6^JaJ]2"2 Verzeichnis $^J* TT**PGTimes New Roman5Symbol3&ArialOLucida Sans Unicode5Tahoma5TahomaBhiEiE))'0Oh+'0 p x 0<\x2@`!@J@@-@S- Nils Durner Nils DurnerKThis is a small document to test meta data extraction by GNU libextractor.ole ole2 eole2extractorGNU libextractor Testcase for the ole2 extractorM 0TCaolan70$ *l4  'r  This is a test document for libextractor. TT". A!n"n#n$n3P(20Root Entry FCompObjjOle 1TableSummaryInformation(WordDocument"$ libextractor-1.3/src/plugins/testdata/zip_test.zip0000644000175000017500000000356012016742766017465 00000000000000PKv~D.I  ChangeLogUT '@>zB>Uxee}UMo8=KbPTA_v݂MFb{[-D-Iq}g(Q4 ߛ2 |Q ,Ogyu IwW%HJVPZֈh7`ؚC4Ni6ciKትEyI4bZViUyQ2ʹXS#ZaW ZG>LZc; iіwixktT@|gHHE[á8J|X=D{1E~N\r0I q^Hn:e),L:3PO^@C^rWf0ZxxJ'y:1U IЊ|}a\Hai7֮+*=)(zɴ T avj4M'$@%ś5V54#J^7 *8<_:YnHU.S/!C<ϓֳ-/wo/PQ|̡(ItnWfD 8as!AԷ i%lvAP p7Gs av`tm9Lh7(^.px=Ǡǁ HVFInp]qnV1%qV`j{\oYquRiX+ N&qҞVGzo{No-z7hkW5LD[s=ﹱYF^NA]FaB.u n>ʄgv yZ#|3jYVXR `׬9Zc'GFNEIQ0MZK4zӃ6&>r|MGNoMy[[4(2M0U@_(jt[%~"P1V m 7ŵJ\#J3KJRR͒M-- MS- LS L-MSSzu)t90d+dV(V%&dq$8\) PK,ĂEQtest.jpgUT UxPK,'o ;test.pngUT>ANKf(+B%+( @ @ @ @ T " , 6 @ ( T U ^ ,(              ([;[2[[<[J['[[[[[-[/[9[*[+(] ]2]]]] ]]]]] ] ]]](^^^^^^^^^^/^1^^^!(G@G@G@G@G@G@G@G@G@G@G@G@G@G@(H@H@H@H@H@H@H@H@H@H@H@H@H@H@(I@I@I@II@I@I@I@I@I@I@I@I@I@(J6J@J@JJ@J@J@J@J@J@J@J@J@J@`---- ,F,[---- ,2,[---- ,2,[---- ,2,3 ( 15@Intro:C{2---- >d6<92>;>w2v6>.2>I2Pg> >mq>2 >228---- ,:,]>2 >R2d.>>2> =t2=dd2 >:2;.>+=2 =J2Q---- d2= >=f2-.>>2= =028o2= =c2e<=-=9v,C---- 9d,e2 =E2H<=/92 2V9Mi92 9L=,2/99= 92 92>|2s---- >d" @)9 9.;9(>2 >M2Of> >s9;9.>2 >52/---- ,:,_2> >S2\4>4>2 =z2u=dh2 >5294>#=2 =K2Q---- d=2=b>2+4>7=2 =321i= =M2=9=2 9u2z---- 9d,9,j=22=;92 9P2Mh9 9?= 2=9# >96 92 ;v9-2xC{5---- 9d73;7>3c99 9/ ;d@,94;2 2N;P6;2; ;s9 ;d-9:2; 23;6,E---- ,/;32 ;H2Ok;2; 2t;w;db;2 ;.24l2; 2L;L---- d;2; 2";i;de2; 25;.l; ;Bh;2; 2j;w---- ;d,:,\;; 9~;,9df2; 2C;P9Q2; 2];"9T4;  92 2m; 15@Vers 1:9Q2 2=90@g2; 2F;L9P;2 9;2%9942; 21;1,:,a2; 2X;I4;62 2x;qj2; 25;/4;62 2N;Ij2; 2#;rO+ 2; 24;-CtIch Cd@5;2 ;K2U-C;*C2 ;~2u,ECqwart Cd,g2; 9~;/26C';*C2 ;S2MCwseit Cd9Z2; 9P;2 C,;>;7 C2 >x;227C{2CrWochCd&5689=>79TC;91CBnen Bd:>-2 >F2K9R>B>o9<92>2B >423 ,H,Z>2 >R2c &>>2 =x2wl2 >82>.>+=2 =M2Sl2= >$=o2,.>>2= =-27>vauf >dg2= =f2d<= >)> ,D9|,CndieCd** @2 =C2E<=-C92 2R9PCBvsen Bde92 9H=,2*99=-B2 B94>}2s>pTag, >d" @)9 9';9(>2 >S2Q4>2> >x9;9.>>2 ,A>424, h2> >Y2X4>82 =x2yl2 >42=4>#=2 =Q2Nh=2=a>!2"4>7=2 =226>ound >de= =U2=9>2 9x2v>@otanz @d,=,k=62=9@92 9Q2S@Bqvor Bdc9 9@=!2=9+>96 B2&;q932tBC{5CqFreuCd873;:>>c9 9% @,9/C;C2 2I;PCwde Cd2;<;s969:2;C 23,>;0,*C;32 ;H2Rl2; 2|;z b;2 ;421l2; 2O;RCmueCddC2; 2;gCBsber Bde2; 24;6TBB; ;>>qden >d*/2; I2m;|,<,Y)j; 9v;&S>2; 2C;M>@rAs@d9Q2; 2V;9J4;2@2 2q;@>rphalt. >d9Q2 2990@g2; 2G;P9)>';2 9;|2+9942;> 2,;8,B ,c2; 2R;B4;62 2z;mj2; 21;)4;62 2F;Fj2; 2#;lj2; 2+;*BuAls Bdj;2 ;A2L<; 3 BB2 ;2uCtwaer's Cd,>,/@&2; 9;,218C;*C2 ;T2LCtein Cd9Z2; 9Q;2$<; C>;7 C2>v6w;529C{7CvRhythCd#265;=>;9c;90gC6> C>M6PBsmus, Bd9R> >d9.2 96>B >3,A,_*5>B6 >T6J>=6 =z6q d6 >761/><=6 =M6Gl6= >=r6"/><=6 =065@mals @df= =K2L5@=.@629y6z,?,Bsgaeb's Bd  "@9=225D=%B69 29S6IB@uein @dc9 9T=#27p49=%@6 7292>w6|@>pLied, >dc9 907O49 >6 7>I6Q=)W<> >j9#71>98>6> 7>365,8 ,_>6 >S6b.>>6 =t6{l6 >06>.>+=6 =O6Pl6= >"=J6#.>>6= =165;udas ;dR;;= =d2@>tmich >d7=>>6 26g9|@oim@d,9,l=<2%<=-@96 26P9J@Bumer Bde96 9D=%26:.B 9:= ! >;6B2#693;2yC{5CvweiCd,77;2>94@99 @9'6$99(;C62C6;S2PCmter Cdd;6 ;y9699.;CC2 6;12.,I,[;2;P2Zf;2 ;u2u h2; ;32;4;142;I2MCmdurch Cd  ; @;2;c2)_C C;2 ;027Brdie Bde; ;N2;8BB2 ;z2E,@>uStras>d,a;2 ;+9X2ui>>;2 ;M2'@osen @dc9;29B;"2H0;9, @2 ;2y@>wzieht. >dg2 92.@1';$2 ;S2SA*Q!;92>;s92"98;2> ;.22,B ,b2; 2J;J6;32 2v;{f;2 ;021l2; 2M;Hi2; 2%;j"2 2; 24;,BuKomm Bd9@P2; 2;;EVBB2; 2t;{,:Bqdir Bd,b2; 2(9{;'XBB2; 2C;TBnentBdg;92;!9S4;!4?B>;77b Buzu>dCN>><B C+B<$@uho@d@<749B@<72X @C<7o$Cx;cB5@;{<1C{5>qlen, >d+7>;5>; >^_C BCjC; CN;O3>1C Ch1<@C>; C3,D;1 ,bC; CU;I/C=; By;xl; C4;1/Cuaus>d,eB; B,CV;QDB>> ;BJ@tge@dCO@B B#C479;0>;72@Brmacht, Bd?B>;7 6U;9a7B7Ev2~;9C{2&56797>6>j @jC&/)I ;BC!7#?EB2 7EO2O;"CME Eo;7 gE2B 7E-29 ,;,ZE2 EU2a.E>2 Ev2xkE2 E12:.E>2 EJ2Tl2E EL2)l2E E.25o2E Ed2g,e2 CE;2HB];E/B2 2OCKk2 >FCE'2(B@8>E/B2&C1E~2w&/q>'CB*8>(E B2 ES2LfE Eu>-:>%E2 ,4E52.Bozu Bd, 4@<2E ET2^4EBB2 E{2~BmderBdh2E E8274EBB2 EL2MBtselBddE2Ed2&dBBE2 E523Bvben BdeE EO2E9B2 Cv2x,:,BWCE6B]1E*0 2 CN2PBrUhrBdB( $@">AC@>96E%BB1E>+>964Z27_&C{26(B$3>7B<C CMCp4> 2-C<@C75>^cC BCg@@C; CQ;Q>ppunkt, >dbC Ck1<$C>; C6>;-,9,"a*C; CP;N>C6; Br;u d; C6;5/Cwletz>d,cB; B5CV;N>-B+ > ;BK@qtes @dC= @B BC;78;71>;72B>;76f@;9k7>B6;32t@C{2>mMal. >d&56197>?>d @Y C\;BC7b>27>U;"2OWC$x)> >s;74>6>>27>327,@,^2> 2H>I6>32 2t=xi2 22>36>32= 2I=R e2= 2=g>6>32= 24=4l= =Aj2 2j9z,?, =e=.j29 2J9Q=V92 9?2W=5=942 2q96>{ 15@Vers 2:e92 9)259942> 2M>Pi>2 9>t2"9942> 20>3 ,8,]2> 2S>H4>62 2u>kj2> 20>0@T4>62 2G>E@M2> 2>@44>22 2,>'CmDurch Cd@ 8@,2 >@E2T)C@*C2 @,<2zCwdas Cd,h2@ BK@,24C"@*C2 @L2SCsGeCdBZ2@ B.@2"%C@9 9X>&@6C2>h>w@525B^C{2CqdraenCd&H#c*j#* BEhSC@BCBqge Bd:>! 2 >P2T*b* ,B'a&&> >k &I#i#b>2BB&>021*g&`*&^>2 >X2e &>>2 =p2y&B#b*^#*^2 >729.>+=2 =G2Q *b*Z2= >=k2,.>2  2=&=125*]Ctder Cd&<#i*#!@T2= =h2i<=C,C&9z*fCmMenCd&F&_*&b2 ==2F&'C =-C92 2N9K*\CuschenCd*b92 9D=,2(3C9=9 >9Z C>wB2 96BP>2{*YCtmenCd&E#hE*# E^ @(C9 9-CBtge Bd49(>2 >Q2M*]*+0>&>u9&I#gJ#)c9.>&B2 >821&]*_&*BY2> >[2V 0>82 =r2v*_&B#i*#c2 >4294>#=2 =N2M*f*^=2=a>&2%4>7=&2 =125*^>qbah>d&;#f*#`= =S2=-& >2> 9s2|*]@tnen @d&@&[*&k=62=9@92 9O2P@Bwwir Bd*]*T` 9 9F=% =9EB>9&>96@ B27g;w9/2uBC{5Cruns Cd+D78;3>>#f;c*e#*>`Cb)K9 9& @f)92;2 2P;W*\*);C0+;p9 +@#i#(97C2;+20;6*k&^ *&.;32 ;H2O$1 2; 2w;wCqden Cd+B#d*W#* /@?;2 ;12/AC*C2; 2O;LCualtCd*]*_2; 2$;nBC&C2;+26;/BmbeBd+F#i*_#*]B; ;?B>vkann>dJ+2; 2n";w*d+F&`*&!G+X; 9w;-".>>2; 2F;L@tten @d*U* 9Q2; 2^;9R4;+7@27f;@2o;;a>tWeg. >d+A#g*k>*#C>j9CfM2 2>97@D#2;(2J;L*_* 9'7);2+9;z2)+?#h#>)90+2;> 2-*c;7* &`&b2; 2Q;D4;62 2v;l+I#d*_*#b2; 25;*4;62 2I;E*_*a2; 2;nj2;+23*a;)*BmEntBd+<#h#e;2 ;I2K;B% ;&B2+ ;2}&`Culang Cd+=&*f*=@3+2; 9{;02/<;C)C2 ;T2UCpder Cd.n. 9Z2; 9O; 2.C;C>;7>;76aC2;k>t6z;/25C{7CwGasCd#G64;5><#f*b#>p*9B[b;96gC6> >K6JCBrsen, Bd*[* 9R> #>a9#>#b# 293#>BV>/#*h&`*&,B>6 >P6I/>=6 =r6p #L#g*i#*\6 >-6//><=6 =R6M*_*_6= >=r6 /><=6#=26/Bszu Bd#B#i*h#*OBB= =L2LBtden Bd?=B# B6 296vCvRheinCd#@&`*\&*i=422#C=%C69 29J6NCBsterBd*]*Z9 9V=#27vB;9 %= 6 B6^6;7297>t6}CorasCd#E#a*`>;q#*>vB Be+@19 9:7I49 >*C6 7>H6UCBnsen, Bd*]*W#> >q973#H#e#9.">6H#7>/63*_&`*&P7m >6 >R6_ B>=6 =r6w #B#d*a#*[6 >46@.>+=6B=L6L *b*^6= >%=G6%.>>6=#=+69*g>vue>d#;#i*#b= =h2F<=->6#26n9w>@qber @d#J&^*d&*k=@2)#4=-@96 26T9L@Bodie Bd*c*[96 9D=*26A99B=/ >;6BB>;627l693;{*i2uC{5CsBrueCdE73;;>;#i;k*# >n C^+@5C9 @9'6%CBpcken, Bd49(; 62 6%;V2L*a*[;6;s96I#i#/9.;BB2 6;/24&`&*\*Y;2;I2T _,;2;|2|Csbis CdB#d*[*# (@2; ;;2>-C;4C2 ;N*`2Q*Cshin Cdd;2;h2'hCC;2 ;,27*`Bwzu Bd<#i*#_B; ;UB>mder >d+;<2;u2BC&`*[&*6*R!;2a;'9Z2@> >;2 ;J2-@uMu@d*Z*[9;29C;$2F0;9,7@27k;;2}@;e>wsik. >dG#g>*d#*>cC C\G2 9%2-@ + ;2 ;Q2M*["*)4*R ;92;s92@#i# > 98;2>;023 &W*a&*^2; 2K;H6;32 2s;t*]C#c*#];2 ;324l2; 2K;J*e*\2; 2;e;= * 2;20;/BuWo BdE#e#*Z*!@82; 2=;HLBB2; 2p;~&]BjalBdG.j&.9BB2; 2!9{;%Btles Bdf2; 2L;R .E.\;92;9K4;B74A>;77^C>;B#i#9E$C<@ 2aC5<.*]&`*&Ki<C &`&H$@@<B CHB)<7@ule @d:B0< BU1#h*[#*>e_C BCH@@C; CK;I*^>wsind, >d**=C Ca[;#d#z<@C>; C1;7*f&`*&#>;C; CK;M/C(2 72X ;7k;Bv;r;M*] I#i>*# >ZU; C-;-/Codurch>d?*&[&`B; B.CX;ICB>"> ;BO@vzu@d*_* CO@B B"C=76;0@Budreh'n. Bd>>;72B>;7 6V; 9h7B0Ey2v;7*dC{2&J6195>;#f*#>p @iC +1)R;BC'7)%mE-2 7EN2O;(*`*B CH&E Em;7 &I#e#bE2B &7E328*`&]*&^E2 ET2].E:626]9Er2y&B#i*f9a>*# >U@ @[@E2 E629.E>2 EI2M *`*[2E EK2*l2E&E.2/&?#b*`#*a2E Eb2iECE#2'B>8>E6 6T9B29[>C2Ez2s&E#d@#*_>e*@la>,CB*8>(E B2 EP2L*`*^E&Es>&C#i#(1>  E&2 E52/BnWo Bd&`&*a!* @Q2E ET2\4EB6 B6[29E|2}9^Bsdie Bd&D#h>*e#*@>[ @[O2E E52=4E B)B2 EM2RBvanBd*b*\E2Eh2"RBBE&2 E328Bpderen Bd&=#a*[#*_E ET2E<2&Cy2z&[&B*a&*d&BCE7Bc1E. B2 CI2KBnwarBd*\B* ;@8>?CEBC1E>@>96>964_27b C|25*B"3>7B<CB CPCq$@#d#(> 2*1C<@$C16#d*g*#>d  ,@>C BCg@C; CO@;J*[>tten, >d*_C Ce, A#f#P<$gC>; C0*];.*&`&L>C; CU;K/C12 ;2U 7Bt;q K#i;*]7d#*;q> >[G; C1;5/C#i*e#*]B; BQ;w90B%9;B|;#&`>uab>d<&*f*DB; B1CY;O>.B%> ;BT*j@qzu@d*CO@B B@C<7:;.>tgeh'n. >d>;72!B>;76k;9j7>{B/;32vC{2&G6=9=>5#i*a>q#*@^ C *+%;BC#7%P+g)>27>I;(2I>*^*C4> &>h;7&>#g#b>>27>/&26&`*\&*]>2 >S2N/>:62 96f=y2u*h&K#d9f*># >d@ @[H2 >021/><=2 =R2G *`*\2= >$=m2/><=2&=023&B#i*`#*^=2 =J2u ?=&=x&@&[&*[*\=2 =/>S2R&C=(2 =T2W*d*>Q=2 =!>321D=6 2>6l9 =0>u2y9^.p 15@Chorus 1:&H#i.># >[@ @UG> =>!l>2 >I2Oh> Ep>!8>82 >-25EnAn EdE\> EA>T/>>E >yEwEYE> E0>3/>>EE >HENJtTaJddE> E\>fXJ>EJ >0E-Jngen JddE> E;>G;>,JJE >}EY&`Ltwie Ld&YLE> E#>'-;>)LE >SE<NwdieNd '@FE> EX>-&>@>96E>8E -Y-]&fC{2L>v9q#iRY2[>]2[>W&k1b9t>tR#,uBz1>y,BhXE> >JE:jE>NN&-&->2>29>9>(E&h>B-]&h2Z>[2Y>VBJvsen JdR&9Q-a3v,qR9l>_3>lBc,B?XE>B>B>/E#9>BWR49<#i>wRBr#9m>k9Z2 !E>&-:>2>2&9-9>>B&l9N-\,oRPB?&Z&j2_>S2Y>\9k-_99rR,>p&>sBuBe[*VJ:&&-9>2>2->9&rB>,x&q-YR+B A9p#e4\@Y4V@],-a3vR#9u>z3>wBzBolRRb&J&--@4@49>9B&l>,oRS-^K&g-^4R@U4[@[9K9KB,R9U>^9B[>QB(^B>B9>9BT>|Bf9l>k9`]&&@4@49--9>B>,v&kR&d4_@T4V@[I9o#c-a-d,3~9nR#>m3>{BppR&Re&-&-9@4@49>>BB&g&e-b,sRVJ9u&[-e6[BZ6^B[9|9QR,>z&>{9BgBzX&&--9B6B69>>B3&d&jB9VR1-_3K6ZBY6[B_,t-^9c>fR,>ZBcB=_B>B>9BJ9R:>pBrR9l>m9b]&&--9B6B69>>B&k&jB9I-]-XJ9l#eRP2Z>^2Y>^99n,~R#>u>~Bm,BiR>&&-->2>29>9B,m>&g&l-aR1,B9Q2\>Y2[>V-a3|R>`9`Bb3>`BB`BB>>99R2I#iB1BlR>g#>`9p9R[&-9&>2>2->9&aB9K>9c-_&mJn wuenscht JdG>v&`RO2Y>R2Y>]9B-_>j9|,rR&Bu,>pBd5JJ&9->2>2&->9B>9o&hB-Z4X@V4[@\Jpman JdE#iR!&h3u-e>x,lR#93Bv,>BdlR,R`J&-&J9-@4@4>9B>&f-^>&k9UBLnsich LdL@vRU-^4X@X4[@Z>d,v9Y9BRBc,>T9B1`BB>>99B?B]>u>f9h9Y2)/&&-9@4@4->9>B,m3w&lB9lR4H#c&j4[@Z4Y@[-\-]3,R>j#9t>}BkB[>*U+eR(RAL&9--@4@4&>9B>@L&q9r,~BNuUnNdJBv&ZRN&m-b-^6RB]6VBX9@>u,9|R&9Bs>BtS&-&-B6B699>>B&n-d,i&iBR9H9Z6XBV6VBY3~,9_>pR3>^BcB5^B>9B>9C<R7BqR;p7g>o9iN / 9>B >96 NCB6B6B7&;&1b-+bC_RL2`C{5OsendOdB;v74;:>07u#e2_7[CR7]C\1+iR>r,t#7};qCo,@5OO+2+2C7C777>+p;C,j+k2^C2[R47^CW7WCXNvlichNd7h3q,R7a3>h;hCjC:aC;C>77C.C#_R(;cCrR#7a>l7Z\++227C7C77>;C+f2]C+h7g&`9K2]7SC\7ZC[JR^7j>q,q9&R;v,ClCFSN++22C7C777>;+g+dC2]CN,}2b3}6XBV6[BYJqkeit. JdF7u#iR(7v,3R#>v;}CxCwmR6Rd++22B6B677>;+m+gC2\CKRV2f6]BW6_BZ7Q,n9Q7j>^R,9;_CZC;9,C;C>7C27;_CmF7j>i7i%V7+p+272B6B6>7C;+g+l2_C7i,|H#eR'6\BY6]BV3j2a>i,7uR#3;uCmCR/J%R+R$ 2J7++2B6B62>@@7C;7j,wC+q9MI&^RL+j2X>_2Y>\2e,>q7{9R&Cv;vCkV++27>2>2>73nC;+q+c3,vR#C7R2a G2^>]2U>Z>ZR,7dC`;dCE_C;C7>C\7R';yCqR7t>o7g]+7+>2>22>7 C;,p+g2^7p9MRVCF#g2]7[CZ7XCV,+jR97u>t#Cx;}C`+@@;++22C7C77>73|+d;C+k2b3,lR2_7[C^7YCZC7TR,7l>Y;fCcC=^C;C7>CYR7@#i;rRCj#7e>c7Z[+2+C7C7277>+e;C2_+j7UC_7RCYCJwAn JdJ&`2b7m9KRM7j,p>t&R9,;qCuCWR++2C7C772>7+o3|,tC;2Y+k6[B_6UB[3CF7r#hR,2aR#7>x;}CvCtdJRR71 J++2B6B627>7C+g;+k9KOuTaOdL,zRL2Y6VB]6VB\7I2cC97`>XR,Cb;UC$ >@8C;C7>7CV;kCh7m>m7ZSOO2++2B6B677>C;2b+g+k2\6[B[6]BVNngen NdC7j#iR37k,zR#>u3;{Cx,qRR 4N+2B6B627+7>;CC@@+fN,t2`2_>\2Z>]Lswie LdL7u&_Ra+g7{9S,>zR&;}9C^CrL37 L++27>2>27>3;C+i+m32`C7VOrdieOdFR-2[>[2U>U,x7\>jR,;hCdC;-@%C;C>7CQ7R/;uCqR7j>d7_M>;77>2>2>C7;C++21b(h(e/\/^C{7J@v6:;5>67i#iRM4Y@W4W@T1,{7oR#;p;},@t@`QO((//@4@47;7@3w;(k(iO/[3@Nvsen Nd7RR/e4[@X4[@Z,z;hR7f,@f;_@?`@@;;77D#g@5R@c;m#R;g7p7^*(/(7(@4@4/;7@/a;(c7g(i4X@_4^@X7E&WR`@,o9K;l/]7R&9,@u;s@fI*d+|9(/7((@4@4/;7@/_;7m(k@R(l6_BZ6YBY=#c/e;z3},uR#7}@y3,;~@sNaR3Rb(N(/7/B6B6;7@(n;(f9O7O,~/^@FR_6YBY6XB_/a9;`,7[R@b;b@;`@@;;77@2@i;f;o7f7U\((7B6B6//;7;@,r(o@7d(d J#iR6WBW6WBX/]/^,;pR#7{3y;p@l3@blRRd((7B6B6//;7@;(q7u(j@G&\7XC_7XCW9MRO/g/b;s7,z&R9@v;,@eS((//C7C777;;@(s(k3v/^@R&/b7_CV7[CW=7Z37a;iR,j;f@h,@9`@@;;77@;R<@y;tR7n;l7d\(//(@7C7C7;7;@(d9Q/]@V,s(oK7y#iRb/c4^@^4[@S9,;rR#7};v@os@c(/(/@4@477;;(i(j@/^@/`R*4W@U4[@W7b3R7];g3;`,s@i@@,_@;@;77@9R2D#i;m@pR#7\;q7[1 (//(7@4@47;(d;@/W@(i/`7h4[@[4]@\LphaLdJ@v&^RT,w7o;o9MR&7,;v9@r@G @:LL((//@4@477;;(j(f@/^@/ZR.6WB\6YBYLtben LdD7z#e,x7oR3,#;v;3@z@nnR&RSL L((//B6B677;;(j@@/d(l@6XBV6RBYLrwiLdBBvRR/a7O,{7k;_9TR,;b9@Y@6`@;@;7@;7;i@k7j;k7cQLL(/7B6B6(/;7@;3x(o/d@7kR(l6YBZ6[BXLor Ld@#i/^3,n;mR7p#,;x@u@WmR*RL? + L(7(//B6B6;7@;9E7l(i@B,v&`(m/c/`9Nrnoch NdBCvRH7\CW7]CV;u,7r&R@v;{@d 5@.(/(C7C7/7;7@;3m/_(q(o@7OR!7VC[7_CS>/`3;W7lR,v@i;`,@Id;@@7;Ca7R,;y@kR7s;p7fM>;6N CN7;@C7C77;(,p/+b/+m(7l2[7_C^7XCVCC{5LqeLdL;v72;5>4#dRQ2Z,1^7>mR#1Cy;}ChPL+2+C7C727>7;C+m2dL,r+hR7ZCZ7RC\CJqwig Jd2`7U3y,R7h>`3;eC_CC^C;C7>C[77#bR2;xCfR#7l>c7aZ+C772+727>C+k;CWC7Y9I2b&_RNCD+i7k2_97j,R&>vCW7[,;pCoCYJ7J+27C2+7C7>73u+mC;2^+l2c6YBW6VB]3CJuZeit, JdH7t#iR ,jR#7u>y,;wCyCikR%Rc+2+B6B627>7+iC,~2[;+j6YB[6[BZKRL7K,C2d7^>bR9KCZ9;TC+'* C;C7>7Cb;rCl7p>h7c1*J,++27B6B627>C;+i+dR22_E7h#e3s6WB]6_BX2_7w,|R3#>r;vCs,DJ R4R<(J++B6B62772>;@@CC9C+k&[,{R]2Y>T2^>YF7r+i2a97vR,&>z;zC`CxX+2+7>2>27>;C3q+n2c+kC7VR9 H4^@]4V@V37[>cR,q;`Cc,C;_C;C>7CO7R<;sCiR7h>m7` 8 ++27@4@47>@@;+dC+l9F2cCD7l#fRU2R>]2Y>[97|,xR#>k;zCu,CcH;7>7C;C7PR3q>^R7e,pCd3;k,C>`CC;>77R+A#eC3CcR;k#>k7f7W_7>7C;7c9PJnwuensch Jd=&]RSC>g97w,uR&Ck,;qCaBJ J7>2>2>7C;7lCJtich JdG#iR!2X>R2_>\3q>vR#7z,o3Cz;,CnmR6RXJJ>2>27>7C;9Q7ZRK2]>W2S>XCLsmir LdC9,s>kR7^,CZ;\C:8%(CCF;>77C7Ck;k>c7m7Y_+w7>2>2>7;C3y,tC7kR3D#f2[>[2R>W,R>l#7x;xCkCX,@R+LR+3L7>2>2>7C;"7lCNvUnNdL&`,uRW2_>^2[>W>t9F7}R,&Cp9;9Ce@J>2>277>;CCRD7X3x2V>[2X>V7i>kR3,v;hC`,C/*5%CC;X>77C4R#CsR;s7f>o7ms6>;7NN7;C>2>27>C++>z2~2&hRP2[>[2Z>]C{2LsendLdL6793>8#f-[1b&e9{9t>}By-`R#1B^>vk } } t t } } t o> v v k kLL2 r r>M2U h hRJwlichJd*aR* o o e e l l b b i i> _ _>m #iR# gR# g ] ] e e [ [ c c Y Y>2 a W W a>+29&`RR*\&R* U U _ _ R R ] ]>2 P P>S2_ [ [ N N> Y YJ L L W W2J L J=y2wJvkeit. Jd#eR*bR#* U U H H/ R F F R 2 >22AR#R D D P P> O O B B N= N2 =N2R M*b M @ @*RSR L L > > K K J J2= < <> =e2+ I I H> H : :  G G 9 9/2= 8 8 F=127 F#eR*[R#* 7 77 E E 6 6 D D 5 5 C C2= 4 4=j2n>R&R B B 3 3F A 2 2= A 1 1 @ @J 9&`RX*e 0 0R&*J ? ?  / / > > . . = =2 - - =E2A < , , <"= + + ; ; ) ) :92 : 2N9PR1 *jR* ( ( 9 9 ' ' 8 8 & &92 9G 7=-2% % % 7R4*R* $ $ 6 69= # # 5 52 " "97>|2w*j 15@Vers 3:#eRZ*R# 4 4  3@ 3&9 29. 2+ 1 1 9" 0 0>>2>22 *b>L2QR*R / /. . .> >v9 -#iR -R#- ,9 ,+> + +2 *b>021RW*&`R& ) )2 ( (  2> >T2U ' '> & &2 ={2}*[#hR$*R# % %5 $ $2 >42>R2*%R #* #&> " "=2 =I&2K.^-&-.RYR^=2=i>%2!4>7=2 =426BrDas Bd#h.sRR.#`= =SR&RB =? - B2 9s2z&`Cphier CdRT&R *@9 }=9&D }&'=9C92 C9L2SBoist BdR-R)t)Y9 9E=R1R&=9$>B9 9QB2B>9>q9->x2|BB\C{2CveCd&I#fRR1fR#1 EmR9 9)69 >*C2 >K2KCBowig, BdR-*bR*R&> >i9 &G#iR9R#4!9 P)_>2B &*`>+20*&^RU&R nQ>2B>R2b.>>2 =w2~R7 &G#fR*a#*[2 >52?RR!>+=2 =F2LRP*bR*]2= >&=e2).><'2=&=-2/RCpeCd&D#h*`R*#7@E2= =i2dR R0C=-C&9|Cwwig Cd&H&^RG*cR&*`2 =;2G&4=-CC92 2N9KRBsfuer Bd*aR*]B92 9E=*2,BCwheuCdRDR/9=9 >9_>pB2 9/BQ>z2t&D#f*_RNER*# E] @)9 90;9(>C2 >NC2NBute, BdR7*dR*[>&>w9&I#dR-R# )J9%e >&B2 >023RS&YR&*]*TB 2> >R2V->82 =y2{R& &G#i*_R#*a2 >425R%R,>#=2 =K2S*fRGR*^=2=i>2&4>7=&2 =025*\R=>rwir >d&;#gR*#`= =RR3R&=-& >2> 9u2y*`RK@qsteh'n @d&D&`R*&l=32=9@92 9L2U*W@Bwnicht BdR:*RU` 9 9A=#R4R =9EB>9&>96@ B27i;n902s*dBC{5Cmstill Cd+J72;=>6#eRL*;fR# >eCc*(9 9/ @79^&;2 2L;W*bR-*R.;C+;x9 +A#dR.R#(97C2;+21;5 &_RQ*aR&*);32 ;L2Hl2; 2};yCofuer Cd+I#iR*TR#*[;2 ;120R4RCEC2; 2K;P*dCveiCdRQ*R_C2; 2#;mCBtne Bde2;+20;1R#+H#f*dR#*JBB; ;C>vgan>dRR]+2; 2t;}+F&`*jRRR*&:+); 9;-*8>#>2; 2E;P@nze @d*SR2R* 09 @G2; 2X;9OR*R+;+7@27f;2s;@;d>vNacht. >d+E#h*`R_>R*#C>n9CgK2 2;91@2*['2;m 2D;V*^R*R9J>;2+9;z2#R+B#eR#.90+2;> 2-;/&`RF*eR&*`2; 2P;H4;62 2u;qR+H#i*gR#*a2; 29;1R(R,;62 2N;J R]*bR*`2; 2$;sj2;+21;0*b+@#fR*R#e;2 ;E2LR-R4;02+ ;*_2u&`CvKomm Cd+DRY*&RH+ CC2; 9;'29Coich Cd:;02 ;L2M.[R".R 9Z2;C9L;2%R.R,2 ;C>;7>;7 6bC 2;n>t6v;624RGC{7Cvtrag Cd#H61;/>:#d*[R#>u*&9B` @Y;95gC6> >J6J*dCRBsdich Bd*R 9R> #>b9#C#eR#R 29+> >2#*f&\RZ*R&5+L!>6 >P6P& >B:6 =z6v#J#cR**`R#*\6 >.6/RR"><=6B=K6H RM*fR*[6= >=l6/><=6#=.60 #C#iR*bR#*`= =R2QRR;=? ,#629y6u*g&_Cqdurch Cd#ERX*&R, @P=522#C=!CC69 29O6R*dBwdie BdR*RYB9B 9X=$2!7pCsLeuCdR5R*9=6 6Y6;7296>s6*k*#J#iR]>;lR# >uB BfF9C 907LCBste,  Bd/9 >-6 7>I6K*fR*RY#> >h9 70#L#iR/R#*9 )+ >6B #7>/63*a*&`RMR&P*,>6 >P6b%B>>6 =w6}R8#F#f*aR#*]6 >56>RR">+=6 =J6S*[RH*R_6= >#=K6'.>>6=#=*69R>w>d#@#iR#*\*]= =j2ER.R3=hab >6#26e9~>@qkei@d#L&`RGR&*_*i=B2*#4=-@96 26S9J@*dRBnne BdR*a96 9D=)26@R.R/9=!>;6 BB>;627j695;}B2tC{5CqAngst, CdH75;5>3#iRM;n*e#R*>hC^-9 @9,:6*99 V; 62w 6$;M2LR5*aR*MC;6;t96I#hR2R#/9.;C2 6;823 &`RO*_R&*\;2;K2Zf;2 ;s2|Brich BdE#iR"*_R#*_2; ;<2=R)R,;BB2 ;N2UCvgeCdRS*gR*^C;2;j2$CBsbe Bdg;2 ;223*WR$<#i*R#TB B; ;M>mauf >dR6R&;<2;|2=*cA&`RX*R&_;2;'9Y2$<> )  >;2 ;P2( RF@udich @d*^R*#@K9;29G;2AR;R';9,7@27n;;{2v@;p*fRV>oAcht. >dI#gR*># >eC Ci.2 9#21 @ 2:;2 ;P2P*\R1*R9I$;92;r92RA#iR##9>3;2>;121*`* &VRPR&`2; 2P;I6;32 2|;{*PJ#iR(*R#];2 ;/21R(R`2; 2I;M*cR_R*`2; 2;g8,2;24;3R!CoWir CdF#f R.i#.#@H2; 2=;FR,R'C7C2; 2r;{RQCslasCdI&`R&: CC2; 2#9};,Cmsen Cd&7&;7 C>;7C 2,C95hB<C 2CQQ<\7I,C!@<7<>rR#Ci*_< <:C/RR,C6<@B <7<%BsCCW>kC<0B.*h$@#gR7lnR#CgC><7FB< BIN*jBx&CvR /@#$<BC<7CHB1<0>CZ@e5#f7m;y*>sR#CddC BCg@C;@CP;J*W>wter, >dR*R\C C>Ch;7B#iCcR>i;p#7TR!<*PC>;*hC,;6*&YRQ&RmL7;>C>C; CP;JC6>L;U$C=; ;>B|;zC*]* K#hR-7h;t>qR#Cf_; C4;/ R=R!C;CBk;7C_>j;w7X"CB4C;;*c>sschwim>dD#iR7f*;u>lR#CXGC>;7>>B; BJ;{;tmen ;dR&C2>X;]R7S:B; ;;7;>CBz;>mmit >dA&_RV7o;>R&*hCl*;>>B; B4C];P@rdem @d?B-7;>;CBJR7U*\;i>`RC?*C C>;7DB B#C673;1R0EOBTR>V9G:B @>;7 @;>B9E7B-Ew2v;9C{2BoStrom. Bd&J639>>8#h*fRZ>kBrR*#9eEaCS ;BC7(2 E U#27EF2L;!*kR0R*CH&EB EBEi>;7R;&J#iEvBm>lR#V>BE9E2B &7E+2/*Y&Z* RS&R^E2 EY2_ BO>T9E!E>29>BEs2zR-&B#g9p*d>uBlR#Ee*\E2 E82@R(R!E>2 EF2T*_*R[R^2EEB>EJ2#9EXBs>r9]_2E9&>BE+29E*W&B#eR9m>sBu*R#EbEB>9C2E Ee2fR3BO>PR9D2E59&>BCy&I&\RX9v*c>B{R&Eq*`2EB>9CEB2HBbETBf&>l9e2E/B29>2SCMR9S>aR*X*[2EB>>ECE,2/B:R/ENB^>fR/>E/B29>BEC1E*d2s&G#iRR9d*>uBkR#Efl>)CB*8>(E B2 EQ2SR1R*\*XEE&B>Ew9>&G#gEaR3Bd>m#9PR(4>  E&2 E621*^BmDreh'n Bd&]RW*R&:@-9>BE2E ES2VE3BJ>R-E2 2>BEaEt2*`R"&E#g9k*>yBsR#Ee<p'2E E92?R)R BE4B2 EH*f2R*BuunBdRHR_E2EB>Ea92"EbBq>o9aBOBE&29>BEE223BwseBd&?#fR(9o>pBo*^R#EV*CEB>9E ENR:E:BW>_R9O&EB&B29>BEC{2w*]Bsre Bd(D&^RX9o>{Bx*R&EnkCE9BbBE< ( B29>BECM2NR:BtKreiBd9U.g>gB`RE?.BEB>95@7>BCE#B:R>EiBo>}R9b&E>+>962(9>BEC}20&B*3>7B<C CUCm$C#iR5Cu@d 2,+MC<$C8<,*`&]RO*R&h*%<C P<]7D,C2<@7<>qR#Cdb< <6C/R0R-C3@<B <7<BpCCY>sC<-*[B(R$@skom@d$F#i7m*nR#CaC><71@@B< BIOB|R*h&Cv*6$+<BC<7CFB/<7>CY@a8#f7k*;~>qR#C_ +@qter, >d*R^C C>Ca;7R&C#dCb>e;lR#7T< ,*JC; C0;7&`*^RW&R*Y67;>CC; CP;OC/>F;Q> C=; ;>By;yC L#i*hR7h;{>rR*#Cl_; C3;+ R%R!C BQ;L RN*[R*[;BC>;CBs;7Ca>r;y7["CB4C;89ssind 9d?#iR7o*i;u>mR#CW*EC>;7B; BS;yC4R!>\;^7OR9B9 9;7;>CB}; *b>qschwe>dA&[RD7k;*>|R&CoHB; B6CT;OB>B%>7;>;CBP@nre@dR7U;h*g>XRCA* C C>;7-@@B B"C77=;6>tlos. >dR)EFBX>^R9L:B>;7;>B9E7>uB/;72{RZC{2&E6794>7#g*`>pBqR#9eE`*CS*$;BC'7l>27>Q;&*c2O*R RC>9> E&B>k>;7&@#iEtR"Bl>n#R[>BE9>>27>1&2/&[*`RE&*R]>2 >O2O BM>[9C">=29>B=t2y&H#dR 9l*a>xBsR#Ek*]2 >625 R5R"><=2 =L2F*bRVR*`2=EB>>=l29EXBl>v9b"><=2&9>B=320ER!&E#i9t*^>{BuR#Ef*EB>9B=2 =L2sR"BL>TR9G:=&9>B=xRZ&@&`9y.Q>ByR&Es.`=2EB>9=4>L2KETBi>i9e:=(29&>=Q2S&DR,9V>_.kR.>Q=2EB>=>.27R5EPBZ>iR:=(2>9&>BE=4>r2u&_ 15@Chorus 2:IRW9h>vBt&REbb> =>&C&b>2 >G2K)v)\> EBEq>>9E]Bd>m9R*>82 >420ErAn Ed&^&EL9>BE> EI>V E5BG>M#>>E >B>rEyE.h9l.>|BxEnEYE> E,>6 &&!>>EE >GEG&`JsTaJd&`E>EB>Ed9>eEbBh>t9ZLJ>EJ9>B>0E,E+u+Jmgen Jd9n>vBpESGEB>9E> E9>GE;BX>\9M/>,JJE9>BE>|EY&YLwwie Ld9t>B~&EoXLE> E#>+ /^/;>)LE9>BE>PE>)nNvdieNd9L >f)BZEH '@EB>9BE> EV>EiBq>y9d!>.E9>BE>.E(C{2J>v9r#hRE&i-Z-b2R>V2^>U&i1`9{>s,|R#Bz1>v,BiXE> >LE4jE>N&N-&->2>29>9&n>*E 3r>B&n-eR/2Y>R2Z>Z3BJusen Jd-^9M,uR9l>`,>tBcB;XE>B>B>+E!9>BS99#iR'>yBdR#9q>l9[2 !E>&-&:->2>299>&i>9LB-f&l&WB=RX-a2]>[2R>[99k9u,q&>rR,>wBrBS[*VJ;&-&9>2>2->9&m-[B>,yB C9x#cR%&r-c4[@R4T@X,3yR#9s>z3>BuBulR-Rc&J-&@4@4-9>9B&m>&j9?JR]-_4Y@Y4W@U9O-]B,t99`>`R,BW>UB,^B>B9>9B[>uBl9r>g9X]&&@4@4-9-9>B>3s,{&g-d4[@W4\@VF9j#iR+&l3-^,9uR#>o>sByqR0Rd&&-9@4@49->>BB&k&j9KH9r-^6]BZ6[B^&`RF9t-^9>z,oR&>|BdBz,V&&-9-B6B69>>B&f3B9UR(-[&gL-^6_B]6[BZ9a3>fR,y>cB_,B6_B>B>9BV9R:>vRBk9q>d9Y]&&--9B6B69>9I>B&d&g,{9BRN-dI9o#d2W>_2T>[-b,R9v#>m>BqBjR>&&->2>29->9B&i>3{&k,oB9RR)-b2^>V2X>Z-b3,>dR9_Bb>gBC`BB>>99K#iR+B7Bl>jR#>g9j9W[&9-&>2>2->9B9L&f>9c-`,xJs wuenscht JdD>v&]RT&i2X>Z2T>_9B-a>k,9{R&Br>xBk5JJ-&9>2>2&->9B3p-\>9k,h&gB&l4[@\4X@W3Jmman JdE#iR,>r-aR#9|Bz>BnmR-R_J&-J&9@4@4->9B&g>,z>-\9RBLqsich LdJ@vRL&j4R@U4Z@W,-Y>b9F9ZRBf9>XB2`BB>>99B2B`>r>d9h9]2)/&&-9@4@4->9>B,u&i-`B9j&rG#fR4]@Y4[@[,3|-_>sR#9v3>vBsBU>*U+eR(RAL&-&-9@4@4>9B>&o@L&k9s&W-_-bBNuUnNdFBvRV6TBZ6UBW>z9C&9,tRBy9>,BgS&-&-B6B699>>B&p-aBR&m-aE9Z6WBX6TB_,k9d>k3R,>bBf3B4^B>9B>9C>R'Bq;iR7e>l9gN / 9>B >96 NCB6B6B7;-&&-+f2a+mCU,{RFC{5OvendOdB;v73;9>97v#c7WC[7VC^2]1dR,>m#7x1;sCu@5OO+2+2C7C777>+k;2\C3r+lCR7XC[7^CZNvlichNd7a2Z3,nR7g>k,;aCkCAaC;C>77C-RA#_;qCoR#7e>h7j[++227C7C77>+h;+cC2^C2a7p7UC[7^CWI&`,}9NRX7o>hR9,&;rCpCOSN++22C7C777>;+d+kCCN2_2X6UBZ6]BYJskeit. JdJ7z#iR(7u,k3R#>y;{3,CuCpnRRb++22B6B677>;+l+kCC2^L,lRR2\6\B[6\BY7W9O7`>ZR,9;hCWC49,C;C>7C07;`CpF7b>r7i%V7+p+7B6B622>7C;3r+o,t+iC7k3 F#iR2^2d6[B[6WBZ,>l7pR#;vCzCV/J%RR# 2+J7+B6B622>@@7C9G;,n7m+pC+k9I&`2S>\2W>[,RG2b>u7&RCz;zCgV++27>2>2>7C;,x+n+iC7XR'2`F2U>Y2X>R3m,>Z7gR3Cd;hCE_C;C7>Ca7R&;tCiR7o>s7d^+7+>2>22>7 C;,s7kRP+k+e2`CG#e7YC_7YCR9H2[,R7v>s#9Cu;~Cd+@@;+22+C7C77>7;C+h,x2a+h2d37WCV7ZC\CR%7Q,3R7f>c;oCgC;^C;C7>CQ7F#hR+;rCrR#7m>l7`Z+C7C722+77>+n;C&`2]7VCW7^CXCJmAn JdKRZ+l7k,t9I2a7s&>uR9,;qCuC]R+2C7C77+2>7C;+m2]3t6UBR6\BWCC7k#fR!+n2e3,uR#7w>s,;CvCddJR6R81 J++22B6B67>7,uC9H+m+l;2]2a,OuTaOdL6VBY6\B[97NRTC7[>URCW;VC >@8C;C7>7C^;tCq7k>r7WSOO++B6B62277>C;3R +f2d+l6VB\6UBXNqgen NdC7d#f2b7tR3#>l,|;|Cl,mRR 4N++B6B62277>;CC@@9V+k+eNR\2Z>Y2\>TLpwie LdL7t&`2f97~R>z,s&;xC]Cz,L37 L++27>2>27>3t;C+h3C7Z2[+iOrdieOdGR%2\>X2\>W7V>_R;e,vC`,C>-@%C;C>7CH7R(;rCoR7t>m7`M>;77>2>2>C7;C++2(f/a(nC{7L@v64;<>77l#i,p4\@X4U@]1ZRV/a7},#;lR1;}@o@cQO(/(/@4@47;7@3;(g(m/]O3@Ntsen Nd7RR//]4Y@W4Z@],u;gR7d,@a;i@;`@@;;77R=E#g@4@cR;k#;h7n7R*(/((7@4@4/;7@,s9Q(j/a;(k7_4[@V4[@Y7E&VRN/`9,@;k7wR&@l;v@bI*d+|9&(/7(@4@4/;7@(j/[;7r,q3z(p@R46VBZ6SB\<#d/d3,;uR#7z@z;@pNaR(Rb(N(//7B6B6;7@;,w(j(k7T/^@F/`6[B]6[BYRT,;_7_R9K@c;V9@<`@@;;77@8@`;l;j7n7Z]((7/B6B6/;7;@3x@7i(d(o F#iR6SB\6^BW/^3,r/\;xR#7x,;z@r@ZmR4Rc(/(7B6B6/;7@;,x(o7u/e@I&_RM(m7VCZ7ZC\,/_;z7R&9L@z;9@iS(/(/C7C777;;@(m(j/f@7^CW7ZC[=7ZR /a,q7f;jR3w,;f@k3@:`@@;;77@5R)@k;uR7i;p7h\(/(@/7C7C7;7(d;@,y/\(j@RK7r#d9V/b4\@Y4[@WRR,;z9#7uR;@vs@b((//@4@477;(i;@3w/c(o@4Y@]4X@Z7`R3/\3,s7iR;k;d,@r@>a@;@;77@.D#iR7;e@k#R7o;m7c1 ((//7@4@47;(l;9M(a@@/b/Z7g4V@Y4\@[9LohaLdJ@v&WRN7r,n;kR&7,;x@r@G @:LL((//@4@477;;(j(i@@/_/^R+6[B\6[BRLvben LdC7t#f37},uR#;t3;},@z@inR&RSL L((//B6B677;;(i(n/^/Z@@@6[BT6WBYLwwiLdABv9QRI7R7h,;aR9;b,@^@:`@;@;7@-7;]@r7u;q7lQLL((//7B6B6;7@;(h@7i(r/b6]BX6_B\Ltr LdA#c,q3vRA/e;k7tR3,#;t@l@PmR)RL? + L(7//(B6B6;7@;7r(o@B/a,vNonoch NdCCv&`RN(i7XC\7XCX9;/c;x7~,R&9@u;u@q 5@.(//C7C7(7;7@;3w(s/f@7W,sR1(g/b7RCV7SC\3@;Z7gR,@c;l@@d;@@7;C[7R=;r@qR7h;r7iM>;6N CN7;@C7C771Z;/(/(+m7s+j2c7RCX7XC[1CC{5OneOdL;v7/;5>:#iRN2c,u7x>sR#Cz,;{ChPO++22C7C77>7,m+h;C3x+m2]O2aR27RC_7ZCZ,CNuwig Nd37PR7b>Y;hCiC=^C;C7>CVR*7>#a;xRCj#7r>i7W\C7+7+2277>C;C^C+h+g7U2cCE&],xRW7p2b7n>zCXR,&9G7Y;rCt9CbN7N++7C27C27>7+kC;+q2^6ZB]6[B[CJnZeit. JdC7r#iR$2b,m3R#7y>v3,;CyCjkR3Rc++2B6B627>7C+i;+k2`6SBX6VB]IR\7E9A2_C,w7T>`R9,C];TC$'* C;C7>7C[;vCc7h>p7_1*J,++227B6B67>C;+h3w2e+i2\H7j#eR',v6WB\6WBR37mR#>v,;wCsEJ RR<(J++2B6B6277>;@@CC+i2b+j4_@[4Y@VJ7y&`RZ7v9<,>rR&;9,CmCsX++27@4@47>;C+h3r2YC7UR1+k J4R@Z4_@Y37^>cR;_,fCd,C4_C;C>7CX7R*;yCrR7r>i7^ 8 ++27@4@47>@@;9CC+f+nC9E7m#eRY2R>]2Y>[,y2\7pR#>v,;zCuCaH;V;& 7>7C;COnIn Od7PR,m3z>]R7a,3Cc;aCB9 @BCC;>77R,@#fC8ChR;k#>g7r7Q'O2O7>7C;9Q7h&\OwdieOd=>vReC9>i,v&7wR,Cr;CeO>O7>2>2>7C;7o,{3mCR'Osser OdJ#f2X>R2_>\,>x3R#7xCp;~CmmR-R0O/O7>2>2>7C;9Q>7WCOpNaOdB@v2]>W2S>X9RQ,r>f7WR,C[;`C8`CC;>77C<C`;i>k7f7[8O O7>2>2>7;C3sC7lOmcht OdF#gR2[>[2R>W3,z>xR#7p;wCp,CZmRR8O'O7>2>2>7C;@7y,qCOpder OdJBv&`RP2_>^2[>W>z9A,7R&Cs9;}Ci O2/O>2>277>;CCNnNaechNdH7Z3kR)2V>[2X>V7\>g,yR3 ;_Ci,C6>@.CC;>77C:R/Ct;sR7a>l7dM>;77;C7>2>2>C++B2,xC{1$I@v76<;@47i#dRY0j7Z7_007$<70j@<3u<\7]@$D7u#d0p7YW7[>[;s@kR7k7>7$7;+d+j@C2aC{5L>v73;0>97p#hRI7Y>[CZ7V>W2cCW9F7u,rR#>m;9Cs,Cd6 !++272>7C+d;3s+m,tCJqdie Jd7WR2`2e3,>]R7`Cd;[C< > @?C>77>CCC;>777V7R>WC[K#iR0>WCRC2Ci;uR#>i7r7W,J-J+72+2>7C+g;>7CC>77`,q2_Jwuns Jd@&`9FRM+kC2b>k,7xR9&Cu;rCdj7^7X>W>X!77>>BJJ2+7+2>7C2Y;7k+i,kC3r+j7Z7YCVGqsoGdG#hR<>YCT>^>p2_,3R#7~Cz;~ComR-R_GG+2+72>7C+d;2\7QCJsviel JdK,zRT+g2\>k9H7_R,Cc9;YC9_>C>77CCC;>77YC_7]7C/>]>[C[Ck;r>g7p7]SJJ++272>7;C3z+g2\C7mR+q3LuverLdJ#g,u2^R>r#7{,;yCmC]aC>>7C7 R/7\>[C[7\>RCWRc+2+C727>C>7>7C;,+p+k7r&^2_2`CLRV7W>^C[7V>XCU,9@>y&7xR9Cs;CowLYL+72+>7C>2C77>;C+p2_CR+k2d7W7]Nw spricht, NdJ7W,q>\C[>_C]3y7c>iR,3;eCcC:^CC77>C>C;>77C<7YR-7Y>XCW>YC]Ci;hR7d>t7l5>>;7a>7;C7C2++1`C7>2B\C>C{2B6698>;9s#c&}-e&-e17RP>y,|#9wR>vBt,+>wN99>>BBR!9c,u3mR9_,>k>h3BoBE^&&B-->B>99B+R/@#`&-d&|-d>gBrR#9j>k9b]N99>>BB9J9iK&`RY99n>j,~R&>mBp,BM[99>>&b&mBB-&-&-\-XR) K9z#i669x3R#>u,o>3Bv,BqmR-Rc&&--99>>&o&kBBRV-]K9R-^9Q9aR>Z9,p>e,BXB3`B66>B>9B196}6}>cBm9u>k9f\&&9-->93vB>&r,x&i3B9lF#iR8-^-`,>m9{R#>jBzBOa66 R.66~Rd&9&-->9B>9m&m66B9H&iI&`RN22|-`>y,w99zR&Br,>Bjl22#d0|0#c&&-9>9B>00&o&gB9WR1-aL,z22>`3s9cR,Bc3>dBK_B>B9>B]9R?>pBlR9s>i9i^&9&->9B>22,q9jB&J#eRR&-i&-_,9K9}>qR#Bx9>|Bg19>9>B3RBNverNd,x9RR3,9k>d>kBcB93@BB&&--&>B9>BZR'9&D#i&|-e&x-c>{RBl#9k>j9^;NN&99>>B9TBNpleNd&I>vRZ9k&[,x99g>rR,&>nBqBdN1N9&>9--B>&&&k-^,qR/BNoben Nd&H9q#f&p66-d,3xR#9>v3>}BzBnkR0RGNN&&--&9>9B&n,o&n>>-a-_Ntwir Nd&L@vRM9L,B9V>W9MRBY9>TB\66B>B9>6}9BY6>vBk9l>q9^ENN&&--9&9>B>&d-a&kNudas Nd&F9k#iR)-d,w3w9tR#>k3,>uBre66 R,66Re&&6-6-9&9N>>BB&j&h@(LBv9z&`RR66,y-g9z9O>zR&,>{9BaByp6677~@1 N&&-9(9>>B773v,t&kB9V-^&iNrBesNd(DR#663,9X>bR>dBiB7 <@1B>B>9BP9R!>lRBs9n>i9`;9>B>96(9>B72<9@3&&-6B6RMC{1$K@v7l#f0m7V\>[@r;l7c>77$<@75;:>17;+b+j@CV2bC{5G>v7z#`9RRO7Z>\CW7\>^CZ2a>u7r,x;{Cs R9#,G++2727>;+cC3u+gCJfkein Jd7fR2_,o2`7`>h;lClC?3R,R7C>>C7C;C>77C/7U7ZCWB#iR%>[C[>Z;kCr7`>o7hR#6J+27+27>;CJ+cC>C9F>C772\7cJbEnJdL&\Rd+l2b7t>i,o;tClCF9R&,b7[>Z7V>X"77>>>J2++727>;J2\C+iC3|+k7R7XJ`de JdD7z#eR,>WCS>RCU72f,y>y;CxCn3R#,bR(JR9%$+2+727>;+kJC2XCOfist Od<RU+g7M2Z7_,y>c9R;eC`C69R,9 @KCCC>>77;C>7C2CZ77W>Z7^>XC^;`Cr7e>k7kTO++272>7C;O,{+n2]C7iR+rNbin NdA#e3q2a>p7w;tCzCX,R#3X7C>7>C 7\R>ZCZ7]>[CVRV+>72+>2C7C7>7C;9A+o7kC+nR\2c2^A&_7T>TCT7[>XC_>s7vCz,v;xCc9R&,G+C2+N>727C>7>7C;+qN3v2_C7TR!+i2bCWJdSicht. Jd@7U>W7_>WC[>Z7n,tCd;iC@3R,R7CC>>C7;C7>C^7R,7VC]>^7X>YCW;wCl7z>i7hR=>;77>C689=>77;C>x2|2++>7C2C9lRH>7 15@Bridge:C{2J#i&j&g-[-\9>m1Z#Bt>uBaR#1F>a } }> v v2 r r>K2K o oJ l l i i> >i g g e e c c>2 a a>+20J,:, _ _' ] ]>2 >R2b [ [$> Y Y. W W2 =w2~  U U1 R R 2 >52? P P> O O N= N2 =F2L M M L L K K J J2= >&=e2) I I H> H G G2= F=-2/ F E E D D C C2= =i2d B B! A= A$ @ @9|,= ? ?, > >$ = =2 =;2G < <"= ; ;$ :92 : 2N9K 9 9* 8 892 9E 7=*2, 7+ 6 69= 5 5 2 9/>z2t 4 4  3@ 3&9 290 2+ 1 1 9" 0 0>2 >N2N / /. . .> >w9 - -1 ,9 ,3  > + +2 >023ObKein Od,:, ) ) >@ ( ( 2> >R2V ' '> & &2 =y2{ % %5 $ $2 >425O # #&> " "=2 =KO&&2S--OeEnOdd=2=i>2&4>7=2 O=0O25Ndde Nde= =R2=<2 9u2yNNJdin Jd,=,]=32=5J92 9L2UJJfSicht. JdHB>99 9A=#2=99>B>96 $22Q73;:>>;n902s7NC{52 I;U CQJ9 9/ @,94;2J 2L;W;<;x969:2; 21;5J,:, ;32 ;L2Hl2; 2};y b;2 ;120l2; 2K;Pi2; 2#;mi2; 20;1l; ;Cj2; 2t;},=,T; 9;-j2; 2E;P9Q2; 2X;9O4;22 2s;9Q2 2;91@g2; 2D;V9P;2 9;z2#'5 #9 2; 2-;/O_Kein Od,:,"(@2; 2P;H4;62 2u;qj2; 29;1!O;62 2NO;JOfEnOdg2; 2$;sOO2; 21O;0Nbde Ndj;2 ;E2L<;02 N;N2uJfin Jd,=,V2; 9;'29<;02J J;L2MJeSicht. Jd9Z2; 9L;2% C;726W;;`>;7>d265;=>;>t6v;624C{7*#)9BQJJ;95RJ6> >J6J9R> >b9.292> >2J,:,Q>6 >P6P/>=6 =z6v d6 >.6//><=6 =K6Hl6= >=l6/><=6 =.60n= =R2QD=(6 29y6u,=,^=522D=(69 29O6Rh9 9X=$2!7p49=(6 7296>s6h9 907L49 >-6 7>I6Kg> >h9 70495  >67>/63OdKein Od,:,<@>6 >P6b.>>6 =w6}l6 >56>O>+=6 =J6SOObEnOdd6= >#=K6'.>>6= =*69OONbde Ndg= =j2E<=06 26eN9~NJbin Jd,=,_=B2*J;= 3 B>;69626SJ9JLcSicht. Ld. @*96 9D=)26@99=>;62^2#77;2>9695;}2t7WC{51;WC`DF9 @9,6*99(; 62 6$;M2LL",;6 ;t9699.;2 6;823L,:,R;2;K2Zf;2 ;s2| h2; ;<2=4;82 ;N2Uh;2;j2$k;2 ;223i; ;M2;<2 ;|2=,=,P;2 ;'9Y2- e'2C;7;2 ;P2( f hP i9;29G;2A4J;99b >;72=Q4997=2 1@Chorus 2: ...C{6!F4h9Y-r-^4P4b-i@] gP jP hP i kPE`An Ed,:,> j lP k mP l n EG m oP nLEJdTaJd p pP q rP r s)J#JJfgen Jd t tP u uP w w8J)rJLbwie Ld/^ y x,= )/,< { z LA; } { )@=94LNbdieNd  } '@2  P |&=94-494-4-!6794>7 C{2J>v9r#hRE&i-Z-b2R>V2^>U&i1`9{>s,|Bz>vBiR#1,H&N-&->2>29>9&n3r>BN&n-eR/2Y>R2Z>ZBJfsen Jd-^9M,u9l>`>tBcB;3R,UB>B9>BS99#iR'>yBd9q>l9[R#*)&-&->2>299>&i>9LB-f&l&WB=RX-a2]>[2R>[E9k9u,q>r>wBrBS9&R, J;&-&9>2>2->9&m-[B>,yBC9x#cR%&r-c4[@R4T@X3y9s>z>BuBu,R#3bR-RV&-&@4@4-9>9B&m>&j9?JJR]-_4Y@Y4W@U9O-]B,t9`>`BW>UB,9R,WB>B9>9B[>uBl9r>g9X]&&@4@4-9-9>B>3s,{&g-d4[@W4\@V F9j#iR+&l-^9u>o>sBy3,R#fR0RW&&-9@4@49->>BB&k&j9KH9r-^6]BZ6[B^&`RF9t-^>z,o>|BdBz9R&,I&&-9-B6B69>>B&f3B9UR(-[&gL-^6_B]6[BZ9a>f,y>cB_B63R,SB>B>9BV9R:>vBk9q>d9YRW&&--9B6B69>9I>B&d&g,{BRN-dI9o#d2W>_2T>[-b9v>m>BqBj9,R#K>&&->2>29->9B&i>3{&k,oB9RR)-b2^>V2X>Z-b>d9_Bb>gBC3,RZBB>>99K#iR+B7Bl>j>g9j9WR#T&9-&>2>2->9B9L&f>9c-`,xJd wuenscht JdD>v&]RT&i2X>Z2T>_B-a>k9{Br>xBk9,R&0J-&9>2>2&->9B3pJ-\>9k,h&gB&l4[@\4X@WJfman JdE#iR>r-a9|Bz>Bn3,R#fR-RU&-J&9@4@4->9B&g>J,z>-\9RBLcsich LdJ@vRL&j4R@U4Z@W-Y>b9F9ZBf>XB2,R9WBB>>99B2B`>r>d9h9]2)/&&-9@4@4->9>B,u&i-`B9j&rG#fR4]@Y4[@[3|-_>s9v>vBsBU,R#3FOR(RV&-&-9@4@4>9B>L&o@L&k9s&W-_-bBNbUnNdFBvRV6TBZ6UBW>z9C9,tBy>Bg&R9,I&-&-B6B699>>B&p-aBR&m-aE9Z6WBX6TB_,k9d>k3>bBfB4R,3TB>9B>9C>R'Bq;i7e>l9gR N />969>B CB6B6B73;9>97;-&&N-+f2a+mCU,{RFC{5OfendOdB;v7v#c7WC[7VC^2]1d>m7x;sCuR,#1@5O+2+2C7C777>+k;2\CO3r+lCR7XC[7^CZNflichNd7a2Z,n7g>k;aCkCA3R,XC;C>77C-RA#_;qCo7e>h7jR#T++227C7C77>+h;+cC2^C2a7p7UC[7^CWI&`,}9NRX7o>h;rCpCO R9,&L++22C7C777>;N+d+kCCN2_2X6UBZ6]BYJbkeit. JdJ7z#iR(7u,k3>y;{CuCpR#3,cRRU++22B6B677>;+l+kCC2^L,lRR2\6\B[6\BY7W9O7`>Z;hCWC4R,99,C;C>7C07;`CpF7b>r7i\++7B6B622>7C;3r+o,t+iC7kF#iR2^2d6[B[6WBZ>l7p;vCzCV3,R#+J%RR 2+7+B6B622>@@7C9G;,n7m+pC+kJI&`2S>\2W>[RG2b>u7Cz;zCg9,&RM++27>2>2>7C;,x+n+iC7XR'2` F2U>Y2X>R3m>Z7gCd;hCE,R3WC;C7>Ca7R&;tCi7o>s7dRW+7+>2>22>7 C;,s7kRP+k+e2`CG#e7YC_7YCR9H2[7v>sCu;~Cd,R#9$@@;+22+C7C77>7;C+h,x2a+h2d37WCV7ZC\CR%7Q7f>c;oCgC;,3RXC;C7>CQ7F#hR+;rCr7m>l7`R#T+C7C722+77>+n;C&`2]7VCW7^CXCJcAn JdKRZ+l7k,t9I2a7s>u;qCuC]&R9,K+2C7C77+2>7C;+m2]3t6UBR6\BWCC7k#fR!+n2e,u7w>s;CvCd3R#,ZJR6R+1++22B6B67>7,uCJ9H+m+l;2]2aOcTaOdL6VBY6\B[7NRTC7[>UCW;V,9CR>@8C;C7>7C^;tCq7k>r7WSO ++B6B62277>C;O3R +f2d+l6VB\6UBXNfgen NdC7d#f2b7t>l,|;|Cl R3#,`RR 4++B6B62277>;CNC@@9V+k+eNR\2Z>Y2\>TLbwie LdL7t&`2f7~>z,s;xC]Cz9R&,zL37++27>2>27>3t;CL+hC7Z2[+iOfdieOdGR%2\>X2\>W7V>_;e,vC`3C>R,-@%C;C>7CH7R(;rCo7t>m7`R<>;77>2>2>C64;<>77;C++2(f/a(nC{7L@v7l#i,p4\@X4U@]1ZRV/a7};l;}@o@c,#R1M(/(/@4@47;7@3;O(g(m/]O@Nesen Nd7RR//]4Y@W4Z@],u;g7d@a;i@;3R,Y@@;;77R=E#g@4@c;k;h7n7RR#*(/((7@4@4/;7@,s9Q(j/a;(k7_4[@V4[@Y7E&VRN/`@;k7w@l;v@b9,R&I4(/7(@4@4/;7@(j/[;7r,q3z(p@R46VBZ6SB\<#d/d;u7z@z;@p3,R#NaR(RU((//7B6B6;7@;,w(j(k7T/^@NF/`6[B]6[BYRT;_7_9K@c;V@<,R9T@@;;77@8@`;l;j7n7Z]((7/B6B6/;7;@3x@7i(d(o F#iR6SB\6^BW/^,r/\;x7x;z@r@Z3R#,dR4RV(/(7B6B6/;7@;,x(o7u/e@I&_RM(m7VCZ7ZC\/_;z79L@z;@i,R&9H(/(/C7C777;;@(m(j/f@7^CW7ZC[=7ZR /a,q7f;j3w;f@k@:R,3T@@;;77@5R)@k;u7i;p7hRU(/(@/7C7C7;7(d;@,y/\(j@RK7r#d9V/b4\@Y4[@WRR;z7u;@v,9#Rh@b((//@4@477;(i;@3w/c(o@4Y@]4X@Z7`R3/\,s7i;k;d@r@>3R,V@;@;77@.D#iR7;e@k7o;m7c#R1 ((//7@4@47;(l;9M(a@@/b/Z7g4V@Y4\@[LfhaLdJ@v&WRN7r,n;k7;x@r@G9R&@,8L((//@4@477;;(j(iL@@/_/^R+6[B\6[BRLbben LdC7t#f37},u;t;}@z@iR#3,dR&RFL((//B6B677;;(iL(n/^/Z@@@6[BT6WBYLfwiLdABv9QRI7R7h,;a;b@^@:R9,V@;@;7@-7;]@r7u;q7lQL ((//7B6B6;7@;L(h@7i(r/b6]BX6_B\Ler LdA#c,q3vRA/e;k7t;t@l@PR3,#fR)R L? + (7//(B6B6;7@;L7r(o@B/a,vNfnoch NdCCv&`RN(i7XC\7XCX9;/c;x7~@u;u@q,R&95@.(//C7C7(7;7@;3w(s/f@7W,sR1(g/b7RCV7SC\@;Z7g@c;l@@3R,^;@@7;C[7R=;r@q7h;r7iR=>;6 N C7;@C7C77/;5>:71Z;N/(/(+m7s+j2c7RCX7XC[CC{5OfeOdL;v#iRN2c,u7x>sCz;{Ch1R#,H++22C7C77>7,m+h;CO3x+m2]O2aR27RC_7ZCZCNewig Nd7P7b>Y;hCiC=,3RYC;C7>CVR*7>#a;xCj7r>i7WR#VC7+7+2277>C;C^C+h+g7U2cCE&],xRW7p2b7n>zCX9G7Y;rCtCbR,&9N9++7C27C27>7+kNC;+q2^6ZB]6[B[CJfZeit, JdC7r#iR$2b,m37y>v;CyCjR#3,cR3RV++2B6B627>7C+i;+k2`6SBX6VB]IR\7E9A2_C,w7T>`C];TC$R9,!* C;C7>7C[;vCc7h>p7_1*J,++227B6B67>C;+h3w2e+i2\H7j#eR',v6WB\6WBR7m>v;wCs3R#,9J RR/)++2B6B6277>;@@CC+i2b+j4_@[4Y@VJJ7y&`RZ7v9<,>r;CmCs R&9,K++27@4@47>;C+h3r2YC7UR1+k J4R@Z4_@Y7^>c;_,fCdC43R,RC;C>7CX7R*;yCr7r>i7^R 8 ++27@4@47>@@;9CC+f+nCE7m#eRY2R>]2Y>[,y2\7p>v;zCuCa9R#,@;V;& 7>7C;COfIn Od7PR,m3z>]7aCc;aCBR,3 9 @BCC;>77R,@#fC8Ch;k>g7r7QR# O87>7CO;9Q7h&\OedieOd=>vReC>i,v7wCr;Ce9&R, OC7>2>2>7CO;7o,{3mCR'Ofser OdJ#f2X>R2_>\>x7xCp;~Cm,3R#fR-R#O67>2>2>7C;O9Q>7WCOeNacht OdB@v2]>W2S>XRQ,r>f7WC[;`C89R,XCC;>77C<C`;i>k7f7[8O'7>2>2>7;CO3sC7lOfder OdF#gR2[>[2R>W,z>x7p;wCpCZ3R#,cR  R"A77>2>2>7C;@7y,qCJBv&`RP2_>^2[>W>z9A7Cs;}Ci,R&9m3O/ >2>277>;COCNdNaechNdH7Z3kR)2V>[2X>V7\>g,y ;_CiC6R3, >@.CC;>77C:R/Ct;s7a>l7dR<>;77;C7>2>2>C76<;@4++B2,xC{1$I@v7i#dRY0j7Z7_W7[>[;s@k7k7>7$73;0>97;+d+j@C2aC{5L>v7p#hRI7Y>[CZ7V>W2cCW9F7u,r>m;CsCdR#9,6 !++272>7C+d;3s+m,tCJfdie Jd7WR2`2e>]7`Cd;[C<3,R> @?C>77>CCC;>777V7R>WC[K#iR0>WCRC2Ci;u>i7r7WR#%J/+72+2>7CJ+g;>7CC>77`,q2_Jbuns Jd@&`9FRM+kC2b>k7xCu;rCd,R9&e7^7X>W>X!77>>BJ2+7+2>7CJ2Y;7k+i,kC3r+j7Z7YCVGcsoGdG#hR<>YCT>^>p2_7~Cz;~Co,3R#fR-RSG+2+72>7C+d;G2\7QCJ`viel JdK,zRT+g2\>k9H7_Cc;YC9R,9V>C>77CCC;>77YC_7]7C/>]>[C[Ck;r>g7p7]SJ ++272>7;C3zJ+g2\C7mR+qLbverLdJ#g,u2^>r7{;yCmC]3R#,YC>>7C7 R/7\>[C[7\>RCWRV+2+C727>C>7>7C;,+p+k7r&^2_2`CLRV7W>^C[7V>XCU9@>y7xCs;Co,&R9oL\+72+>7C>2C77>;C+pL2_CR+k2d7W7]Nf spricht, NdJ7W,q>\C[>_C]3y7c>i;eCcC:R,3UCC77>C>C;>77C<7YR-7Y>XCW>YC]Ci;h7d>t7lR.>>;76698>;>7;C7C2++C7>2B\C>C{2B9s1`RP&}-e&-e7#c>y,|9w>vBt R1#,2>wN99>>BBR!9c,u3m9_>k>hBoBER,3S&&B-->B>99B+R/@#`&-d&|-d>gBr9j>k9bR#Y99>>BB9J9iNK&`RY9n>j,~>mBpBM9R&,N99>>&b&mBB-&-&-\-XR) K9z#i669x3>u,o>BvBqR#3,`R-RV&&--99>>&o&kBBRV-]K9R-^9Q9a>Z,p>eBXB3R9,TB66>B>9B196}6}>cBm9u>k9f\&&9-->93vB>&r,x&iB9lF#iR8-^-`>m9{>jBzBO3,R#Z66 R.66~RW&9&-->9B>9m&m66B9H&iI&`RN22|-`>y,w9zBr>Bj9R&,b22#d0|0#V&&-9>9B>00&o&gB9WR1-aL,z22>`3s9cBc>dBKR,3VB>B9>B]9R?>pBl9s>i9iRX&9&->9B>22,q9jB&J#eRR&-i&-_1_9}>qBx>|Bg,R#119>9>B3RBNferNd,x9R9k>d>kBcB9R3,3@BB&&--&>B9>BZR'9&D#i&|-e&x-c>{Bl9k>j9^R#5N%&99>>NB9TBNeleNd&I>vRZ9k&[,x9g>r>nBqBd9R,&N99&>9N--B>&&&k-^,qR/BNeben Nd&H9q#f&p66-d3x9>v>}BzBn,R#3bR0R:N&&--&9>9BN&n,o&n>>-a-_N_wir Nd&L@vRM9LB9V>W9MBY>TB,R9T66B>B9>6}9BY6>vBk9l>q9^EN&&--9&9>B>N&d-a&kNfdas Nd&F9k#iR)-d,w3w9t>k>uBr R#3,Y66 R,66RX&&6-6-9&9N>>BB&j&h@(LBv9z&`RR66,y-g9z9O>z>{BaBy R&,9c6677~@1  &&-9(9>>B77N3v,t&kB9V-^&iNfBesNd(DR#669X>b>dBiB73,R  <@1B>B>9BP9R!>lBs9n>i9`R59>B>96(9>B72<9@3&&-66BRMC{1$K@vC_7k#f0j7Z7_R,38<7<7@<7@<CN7R*7W>W7[>[;s@j7j7>7$75;:>17;+d+j@C2aC{5G>v7r#`9RRO7Y>[CZ7V>W2cCW7v>m,x;}CsCdR9#,G++272>7C+d;3u+mCJfkein Jd7UR2`,o2e>Z7`Ce;XC?3R,RC>77>CCC;>777V7R>WC[B#iR%>WCRC0Ci;v>g7r7SR#6J+72+2>7CJ+g;>79FCC>77a2_JbEnJdL&\Rd+kC2b>n,o7zCt;rCd9R&,b7^7X>W>X!77>>>J2+7+2>7CJ2Y;7n+i3|C+j7Z7YCVGbde GdD#eR,>YCT>^>o2_,y7C{;Cq3R#,bR(GR9%$+2+72>7C+d;G2\7QCJaist Jd<RU+g2\>l,y7`9RCa;\C:9R,9 @L>C>77CCC;>77YC_7]7C.>]>[C[Cn;s>h7o7^TJ++272>7;CJ,{+g2\C7lR+qJfin JdA#e3q2^>q7w;vCoC\,R#3YC>>7C7 R7\>[C[7\>RCWRV+2+C727>C>7>7C9A;+p+k7vR\2_2`CA&_7W>^C[7V>XCU>x7x,vCr;~Cq9R&,G+72+J>7C>2C77>;C+pJ3v2_CR!+k2d7W7]JcSicht. Jd@7Y>\C[>_C]7b>k,t;dCcC<3R,RCC77>C>C;>77C=R,7Y7Y>XCW>YC]Ci;k7d>p7mR=>;7689=>7>7;C7C2++C7>2CB]C>C{2&BB_9t1`RP&}-e&-e7#c>y,|#9w>yBu R1#,F>99>>BBR!9a,u3m9[>k>jBlBFR,3J*&&B--&>B>99B,R/&@#`&-d&|-d>dBo9l>i9dR#Y9&9>>BB9J9lJ&K&`RY9n>l,~>lBqBK9R&,N&99>>&b&mBB-&-&-\-XR) &K9z#i669y3>q,o>BtBqR#3,`R-RV&&--&99>>&o&kBBRV-]&K9R-^9P9e>[,p>dBYB1R9,TB66>B>9B296}6}>dBl9y>g9i\&&9-&->93vB>&r,x&iB9m&F#iR8-^-`>m9x>kBzBQ3,R#Z66 R.66~RW&9&--&>9B>9n&m66B9H&i&I&`RN22|-`>v,w9zBq>~Bk9R&,4B.22#d0|0#V&&-9&>9B>00&o&gB9VR1-a&L,z22>b3s9eBa>aBJR,3VB>B9>B`9R?>rBi9r>j9iRX&9&&->9B>22,q9nB 15@Ending:&J#eRR&-i&-_1`9{>pBw>zBe,R#1: $9>9>B3RBNfErNd,x9T9m>b>lBdB9R3,'@DB&&--&>B9>BXR'9&D#i&|-e&x-c>yBl9o>h9`R#(N2&99>>NB9TBNeleNd&I>vRZ9k&[,x9d>t>lBrBb9R,&N?9&>9N--B>&&&k-^,qR/BNeben Nd&H9q#f&p66-d3x9>z>BxBm,R#3bR0R2N%&&--&9>9BN&n,o&n>>-a-_Newir Nd&L@vRM9MB9V>W9MBV>RB,R9T66B>B9>6}9BY6>rBi9n>m9\CN&&--9&9>B>N&d-a&kNfdas Nd&F9k#iR)-d,w3w9v>g>sBs R#3,Y66 R,66RX&&6-6-9&9>>BB&j&h@(LBv9y&`RR66,y-g9y9O>y>|BbB| R&,9NU6677~0- &&-9(9>>B77N3v,t&kB9W-^&iNbBesNd(DR#669X>a>dBiB5'3,R @OB>B>9BO9R!>lBq9o>k9bR59>B>96(9>B72<9@3&&-66BRMC{1$K@vC_7l#f0m67V\>[@r;l7c>77$<@75;:>17;+b+j@CV2bC{5G>v7z#`9RRO7Z>\CW7\>^CZ2a>u7r,x;{Cs R9#,G++2727>;+cC3u+gC7fR2_,o2`7`>h;lClC?3R,R7C>>C7C;C>77C/7U7ZCWB#iR%>[C[>Z;kCr7`>o7hR#T+27+27>;C+cC>C9F>C772\7cJ_und JdL&\Rd+l2b7t>i,o;tClCF9R&,b7[>Z7V>X"77>>.J2++727>;J2\C+iC3|+k7R7XJbkein JdD7z#eR,>WCS>RCU72f,y>y;CxCn3R#,RJR(R(++2+727>;+kJC2XCObEnOd<RU+g7M2Z7_,y>c9R;eC`C6R,9 ?@)CCC>>77;C>7C2CZ77W>Z7^>XC^;`Cr7e>k7k\++27O2>7C;O,{+n2]C7iR+rNfde NdA#e3q2a>p7w;tCzCX,R#3X7C>7>C 7\R>ZCZ7]>[CVRRN+>72+>2C7C7>7C;9A+o7kC+nR\2c2^in JdA&_7T>TCT7[>XC_>s7vCz,v;xCc9R&,G+C2+>727C>7>7C;+q3v2_C7TR!+i2bCW@7U>W7_>WC[>Z7n,tCd;iC@3R,R7CC>>C7;C7>C^7R,7VC]>^7X>YCW;wCl7z>i7hR2G)9[>;7J7>C689=>7N7;C>Q>w2~2++>7C2CC9l>7C{2JfSicht. Jd&9#c&j&g1o-[-\9>mBt>uBa#1 } }> v v2 r r>K2O*b* o o l l & i i> 5>l #P g g # e eD c c>2 a a>'2.*g&`*& _ _' ] ]>2 >W2g [ [$> Y Y. W W2 =w2{ *^* U U1 R R 2 >62D P P> O O N= N2 =K2L M MJ *bJ* L L K K J J2= >%=e2, I I H> H G G2= F=121 F*]* E E D D C C2= =d2h B B! A= A$ @ @9z*f&_ ?* ?&" > >> = =2 =<2G < <"= ; ;$ :92 : 2L9G*\* 9 9* 8 892 9D 7=%2/ 7+ 6 69= 5 5 2 9+>|2x*Y#h 4 4*#  3@ 3&9 294 2+ 1 1 9" 0 0>2 >N2R*] / /*- . .> >w9 -#C -# ,9 ,$:> +! +2 >,21CdKein Cd&]*_ &* ) ) '@ ( ( 2> >M2W ' '> & &2 =w2~*_ %* %5 $ $2 >326 # # C> " "=2 =LC&&2U--CcEnCd*f*Q=2=j>2!4>7=2 =,C20C*^Bdde Bd*U= =P2=<2 9r2xBB*]>cin >d&[*&M }=5 },=">92 9I2Z>>cSicht.>d*]*>29B>99 9F=2E!=99K9>B>96 2&72;9>3;k9,2t>BC{5---- '#f*e#*$)9/ 92 @I94;2 2J;U*\*;">;w9#B#9:2; 24;2*k&^>---- *&!;32 ;J2Kl2; 2;z*W*M;2 ;,2-l2; 2P;K---- *]*R2; 2&;pi2; 2+;1*_*T; ;?j2; 2q;x*d---- &`*&V; ;,j2; 2D;L *U*O2; 2X;!5;>;7 24195=:2x9z=OC{6---- =d!)#g*k*#T2 2=m2=9 2E9T=7*_*P=92 9V=}2%#@#U2=9 2/*c9+=*---- &` *&U2=9 2R9@=,4=962 2t9s=I*_*U2=9 2990=.4=962 2P9K=.---- *_*T2=9 2(9x=vj2=9 2,*a9?=5*]=92 9H=H2I<=902 9}=2v&`---- .n &.T2=9 9+=*24'9>=9 2$2 9E=I2Kl2=9 9-=62*J20=94 9T=92!689=>72{=C{2---- >d19z>{1j>Q1y } v s p n l k---- i- g- e d- b a ` _ ^ ]- \ [ Z- Y----  X- W V- U- S- R- Q- P- O- N- M----  L- K< J- I< H- G< F< E- D (----  C< B< A< @< ?K >< =< <---- - ;< :K 9< 8K 7K 6< 5>- 4K 3K 2K 1Z 0K /K .K -Z ,2>9* +Z )>925>96*0@dlyyyyyyyyyyyyyyy/libextractor-1.3/src/plugins/testdata/exiv2_iptc.jpg0000644000175000017500000133503212016742766017661 00000000000000JFIFHH JFXXC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222x! }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?QN)h( JbI@ HicP"aJ IC4PJ)Q@ EI`%%4 KN#@ EPI(1 &iM!4@ H.h4f њ`&h4f4L!X% .hsFh3K`&h fi3@ 3L74i4hCR(I&!ca֞#@. 3`;/Ze  AVdd;dO0g.n] `~Iހ_ΓO@gMXϘ=(OG4OAGڥRf ft+(uo񦉥{)xRFG8OtZk($S̉7ӝw]Yeܡs*p@]߼dvǚ[ 1+~tS'p'tS!xcD``57*iq 9#g#.;6#"2:iN8\L/p;URE9» =`?e ٴ0l5F?yuj< wؐǼ]Fd-/硼rRݩK)*3CiV-Yhws 1oZh/.8tgإ'lf5,I ^(jVX* p[U%a N>$1Y*Rj(EQ HU*U@G'>kO-ďY8gFs4TQ}< j#?jPOYKȹhǕ~'H1NW-q@E;h=(XkFqס?Ҵt=nyaXZ=|S\G@-Ql<Q]2K;{]eu\?jETU"UN=+SyQe{*&FN}EX-R%h aG0ҷ4ݢOu`3\<lsO"(J#⾴+RV+Gpe@jh&5P snޠt&PU]V[:cТBRl|(S*0ؐNǹ4==-85J?ֶ `Ln1\6_µOs>v \` }q tлk68sV_jIԔSh 3MhrK?#?jVw2hXҙ$eq*XUY.|ڕ9줟Ud}8lJ7z`i¹ 3Nz 7ORWǙؖu֚dViyY~5ߩnx]XF8`zc8nZ2H0Mp#ĭy_3&%Tc"YБ'J*ȹb:dqnϖ<~T[vw1 > B᥶2cϟM[^Q{E}~w{k{Ķ$zls5c>$4̦Ԭ1%04̤ss%Ғj"Tr jƊ=k`A)0P֘ʎj-͓v߃.=&F8sQ`ܮpOHqM c銖;'&QLr?Z|.+NI!Cؕ\J88J╂hc5,n>RA-uab{6n6e7xguRLngy=d|cG1ƨOp- BC *<1'8aV^te$LCv ӓ‘!+M0 $km=9JbxngߊZA``~U0KP zȫ{P1L?t҉vopE _Rt`hi64CKO'@TMێL_֑o΋Knz2T\cn Аo8t'8ds 4 C,8%dh K#8zqR QI.?W,=Hb\g^~\9B *C.V;uV?0\.},m+4Rw1piƒrGP#)\ExifII*(1 2FGIG2i %J^ x(PENTAX CorporationPENTAX Optio W30HHViewNX 1.5 W2008:06:29 16:06:10PrintIM0300!  6   F  ' ''''^''''  '@0220    &   . |4010086 r    >  r5 @B2008:06:29 16:06:102008:06:29 16:06:10 " ddNW/{ @ WGS-84AOCII,j=:,     >P2bd !"#$%&')2A^_`aa1" p pd@PB'0'(3:)d)""""""""""""""""^. =H P P }RL+ cQ    =,$rBp4  ~bbLwwwwA>Pd0 R6 J(RS G11S5;!%)   5rBp4BBBd QQQQfDP,$Z(zN8T:4:4,.&`h`FLH@::21 LI'*b+& """"""""""""""""NikonII*0200#m0v~( HHC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222x! }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?QN)h( JbI@ HicP"aJ IC4PJ)Q@ EI`%%4 KN#@ EPI(1 &iM!4@ H.h4f њ`&h4f4L!X% .hsFh3K`&h fi3@ 3L74i4hCR(I&!ca֞#@. 3`;/Ze  AVdd;dO0g.n] `~Iހ_ΓO@gMXϘ=(OG4OAGڥRf ft+(uo񦉥{)xRFG8OtZk($S̉7ӝw]Yeܡs*p@]߼dvǚ[ 1+~tS'p'tS!xcD``57*iq 9#g#.;6#"2:iN8\L/p;URE9» =`?e ٴ0l5F?yuj< wؐǼ]Fd-/硼rRݩK)*3CiV-Yhws 1oZh/.8tgإ'lf5,I ^(jVX* p[U%a N>$1Y*Rj(EQ HU*U@G'>kO-ďY8gFs4TQ}< j#?jPOYKȹhǕ~'H1NW-q@E;h=(XkFqס?Ҵt=nyaXZ=|S\G@-Ql<Q]2K;{]eu\?jETU"UN=+SyQe{*&FN}EX-R%h aG0ҷ4ݢOu`3\<lsO"(J#⾴+RV+Gpe@jh&5P snޠt&PU]V[:cТBRl|(S*0ؐNǹ4==-85J?ֶ `Ln1\6_µOs>v \` }q tлk68sV_jIԔSh 3MhrK?#?jVw2hXҙ$eq*XUY.|ڕ9줟Ud}8lJ7z`i¹ 3Nz 7ORWǙؖu֚dViyY~5ߩnx]XF8`zc8nZ2H0Mp#ĭy_3&%Tc"YБ'J*ȹb:dqnϖ<~T[vw1 > B᥶2cϟM[^Q{E}~w{k{Ķ$zls5c>$4̦Ԭ1%04̤ss%Ғj"Tr jƊ=k`A)0P֘ʎj-͓v߃.=&F8sQ`ܮpOHqM c銖;'&QLr?Z|.+NI!Cؕ\J88J╂hc5,n>RA-uab{6n6e7xguRLngy=d|cG1ƨOp- BC *<1'8aV^te$LCv ӓ‘!+M0 $km=9JbxngߊZA``~U0KP zȫ{P1L?t҉vopE _Rt`hi64CKO'@TMێL_֑o΋Knz2T\cn Аo8t'8ds 4 C,8%dh K#8zqR QI.?W,=Hb\g^~\9B *C.V;uV?0\.},m+4Rw1piƒrGP#>http://ns.adobe.com/xap/1.0/ 8 8 8 64 Wo? Wo?|Fuerteventura Was? Was?|Anlass]|Urlaub Was?|Aufnahme]|Landschaftsbild Was?|Natur]|Wind Was?|Natur]|Sand Wo?|Fuerteventura|ProCenter Rene Egli Was?|Sport Was?|Sport|Windsurfen Fuerteventura Landschaftsbild ProCenter Rene Egli Sand Sport Urlaub Was? Wind Windsurfen Wo? Photoshop 3.08BIM FuerteventuraLandschaftsbildProCenter Rene EgliSandSportUrlaubWas?Wind WindsurfenWo?Z Los Verdes\ FuerteventuraeSpain8BIM% Mm@@C     C  8! T!1A"Qa2q#BR$3b rC%4DS5c&Ts6d :!1A"Qa2qB#$3RbC% ?|&x;u3] [a 8KiTzN4$RH}*xaO"o⧄YS;#&! !ȧU>$G?*Jŏx&(nF@ 71MS0D7SL'(Z*s;ED Ҋ7iuG酦eBH kI06mGǭ ,8*I;z *K ;rNǰlXzPKG3*CkcI cJ$=CVKwOzSjf8T!Qجm]eTNgRNU;o JM(kǦt:T0?aɤkj|nv5**DEb8Nw2 sNh0?) GBo*ҏ-YSQ $Te@V?* M/ gaq@1K4 JD>$ &~u4y3=IKvWJ m)c3 T[c*G':a6`j zP6bO4+@}T+2rHcIRZҋ?b{M$–$*\[};BiizECm4QI""T'@@'a3qDRvRHP~b$毡¶e$ QmAvSɩ[%FD4Lt%4/yވEQwŠ<.LP6館o$(RMw#VA߽VƐaTƓ qT~Dm t긐zJoC6>i4KcE[`D(!F @"!& I"Jƃ2> t#YY$ ߁JP=!J zFЭ4i܁5) %{!G @ɝ"IAŦ+*0M3Sm=XJ;-+I$lT,3@(ܗN?+'ڏ$pA*o!ZJd[zX6ʙQ'WnYF&&G[X, ք`턫h E c)WB6›t Oz hh@MւQod61r>A }9)-R(/kG}hOTS ES;J mF};@})YwHa1A ށ_│(B`T{h2U3 m#6ĩ:ڶ@i7Y؊HP4*0'Ih$WoҊv/[b@:fU'y@3+^MVs@KDNrǠB:۵E; KeMm ܃qd7ze]u$翽VQ*v#Ѕ]'9PvՅ4tzWp";@q^II=U'ss-Z >-ڔB)n jm6vI AUf"R $cx{@mg^h 8^g1JT#I>AdU|=w*$CM+Y$oP;w([L~`ݼShTčij02A~H4z莤YₒKSZZLg`:cO% x y愴= R'QUK/SUbd9؊bDɁct:WuPmCL(Dx";& t"ֆccJ)AIj)6$Vִ$j%gL؍=t|ēSﴞ)ni}ip9xZ}JT3 XuAsy Q( i WbwH$I>[U2e`=sEMGj<õ <52W;P> g܎Ú+7JC:J#`.TH 5(kIEA*4rhȀiU!yJc34`{FhFIRD J-"XE%RTr FUbăN*bb6 `ijY*K@ TUU;ޕ4+]!]nSpD*EVvz0 0E a gW*vtAM;P;??a=5ɓT˪#qwlMtBرFUI),xP ,IIrK, 遫W- ަ`574-vL,NUgzzv NUwHM[Bami(Nۑ#h40@CL& $L Dm2&vʏA"hn1&Z:*(sCJеbrY~Ҝ(09jC`cf]K <ԫS,c$xI&cb@hv$>[ Uui"I;D3MUX5a6oDjh KbR @I'i C0EwLQvv3>;vWlF;$Rj ̢ I!y kq@U- &|u[6 qIj"O{SA鼞h '<*$<(T4=4j2OذA D $r)@ B@lmt%V vڀ*O:XUaA⧈Iᦿc酡d{Q h[4$ `HS4P0$@jQLޚV["44OjS7QNV@m36uy4cͨ,ؙi@2ƹBi3xzv)۟J[)B ]jچ!64qTm%xCicĂwޫ,Y{v= XIAr7⇊I!FɁN &.Y"`,L Itp7 %} Ȟ)uj+:$a$8oB x $2B()vsIoAz,e;V SҚVâ+*&Aζj5v*Cpڡbܘ O&93cUo .c;TpAԦm <ԉoQRiJ4izJyHؕtFwRYT.0xl)$oCCaQhm4,t=FTDv@$!  A's@571U۰"$:wj/C@-y4:'$ mZ$pv$RST;]!Gb+Gl5b<}6PcO>I h\EJH:ԟX;&&?p<9e :f`GKW= /yz s%:W c.w8P˯o!FF(VC=Sv ߊ( vz P[Hޠ#W%Մ#2c4~ B_n݅mf) d$Zձ" zjbLiHR$'5[vv Е0`iEcphwA+lӵK{(1)=a@X9hm>V}7BN 4qm$C@EOi2;̞y31#Sii $ڀr; 6L:ݏڕX[gҤKqvtfWҠ`:6hA ?JTerO1ځ`PC]P { $L$F܎@$ybmǭHPh=4í08UA\3+i`'j@Rwq݁Vq/'OJش ITuD{P+F6sK*WcK RP@aP7@b`Ҫ5o&-a,Ly8BҭhTo(WӴ -VšG953r&m{!7<0<{ yгi#oSI:F$sO݂Rj(I?ފCiUYlw47E Lv?CHXh0Bڒ4J!Oi1E! Lƣ*'4-C.A≐`(mȧ& @2x X JI݋H"vv'm~]tdwxP$w ֔I F*o"%c})ZCD vP4~bw'h8;`ĒiAi01m;ɩsb7I4t!%ؖ oԂ\ Dȣ A$ xu+j^ɲ4AmԬ QЭHA" q}hL*@AP!2CS]z>P]A$'CJ: d Lm1+l,"H :6 CB1Xd"R.MCNGF؈h-4kߙiI5;ڣxĬI(N4!HYS ݸqT8ߡ@zJNxJ)Q~Gz]%I$3  'H3Ts؟-Pt`2I j 9ުvĭh*<߹ڠ mFL*u[QS+eA4tKII,{y%Xh4D`T;I0wQ}u?! ghG%RZCT5OM'?b"!W +T'8GՄV~mP}ބ?HQnw:aaIldJ"=", 1߁MXa eaIŃqQ\#zN `wA!Gr;mM }bL?p4?';(…;(ꀄ8&D=)[bЊX]2OqNIv"9 +4ҁ]C$#m(P`PB?Zh$,AG yjYXDѤ,4+$ɊC|vߊ% 'w:S`c?Қu.]Lv1uw4RJL0 L%!i1<(`"6Q h' N-WDMSKJ"Ö! Py# T;v:Z ART+;ԤBa-msE@MC%NA5I7l6Hf;Uv&")VKAa]"= CP#oʫo uIvؙ:T눜G+h1SWT4 $]܀6:iW` mzVpɰvir)`f~dQʐj1C!:w5 G$MrtCCA{*c=2ZWh57"9:DUV9[%Jd;RVkDpۘMJ[9'%mR蘺D@LZ ,xOjN5iSG4'Vu=*mAMEOZ!3=#ibHhbI(h@`TH;- O K?ބ|Gc=Ҵ 6 1@o?R@*Rt "1`j:j"6>)PiFz\Ą`,Ҽ4I"bP&ŽiwA  {PN;xd'j nԿAN<6;@E`Ozv<6rDNiv%̂@ wMo! M20 `bfEب_ w'zR B &t0o@=~mB]R\`x9aI [дIXybwqV$VH ~f"IBz s=:H@i /*χm-~5Q99v@] q  ;Ƨi2F C$p.2džUhUdm@.I-:j#( bIm`J (E<_*mCeb*9YeJuT`@0{Oj[)Wt 80"x#ib&Ο* ftCr!f{mT]3]Vv#sSK je4Ӹڥ'- 0-ۼr7߽?D$ 1&'cLi4.&x!]r{ ;y!4c`EB\l%ntzE%S';ZA pHNCo]4{*Nhl-{PB30Boz&m?ߑ@6=i'}L@0;rgbMֆ% &`ABD'`;LuwSn݀݇ ATޒ{UDCH& F˱>VHRHN9sM[v tFjj؈T۽VH<`UP P mGTE? jgվ8$ EO(T"~ziCwDSyԒ ;e Nƕ1Y̅J(CFncNl+@_12gy l)=6rGQcwP}+͑;iwEMW/ jfMG͹=}XjI7HP9uÎ܈RNڟ}+Wj@ @SEֆ@ O$ ᦔwлXQ}g~E;] j w;Cp'^hAcIoE =T V Qs=jvT?-e&U2}oDelӷ7afV9!~k:@|Pi{+`Hpm=T#nI*$H =ǥ݂"+)nPH-$ifVF 4 i ~!O&ߊJJJTQu),X;U=i6@˿j$IJ)W$&tȉ)xJP+>&DЭ61>ZI . O7;Smئ0`dB $2{o=./d$7+i?mQA2N݋TB(II2iպ;ZUoBvkA2CI }KrAT _Ydb&doEh"䯢tn7=TYf7m !w}薑-wL~t[!x$TR P*6V7G :xv;IBd)#)mX5Ι7ƃ@;D @(C(b(xߊWYlgs<]-;C}ɨ-m{Gz. ցPL{P؉#)%DD,w3.]#}>7@*Ꭰaz &B'i*`}L\xͫV-O]QQlR^ަo.=|rcP“@#ĒجH0H֊)+ڀ]ѡIǚR}j~&2 K{@6vKVz@#vtmKU;ު;L|`33'4Lq;"[yX {AMh4!*I}EwAiSE'}DQJ ?zʹLVLY@P;Ȭ)  #SjE'E ļAI?7#iDQCf;ERЪ;DɎ(ND=ii)$Z'aJT sR:-0|QĴ;SMn10bhQGTA:tU7 t0"I"kgB> qwb DDEUIڍDiQu(aFpj?aM2( j1#qP ToMߡHӹ(0#}&H[KD b SP s= d o$Xo -vN#ͨ=d~pwބ̀6zm G4C1R?30HQo*t 1$;ڃ(JՉt. >i2X}*c! ǡQI TN5L4 ˦IDyDR/Pˆ DDib,;ɍDG")]D1(+45tA ׂ*1I-PI ,ҐM@(V އpx{ҁ`ziОF vRT1xv0V@E*as;KiX 7 H9`6Ⅵb&J$4Z`iScߠ"y?ҦT#Ky4V0'1.?-Ո2gI"@do0vC#j 3}@PN@, ~m4/c0T:wO<+;Lv4ltȭm Ojq\#wi%%i T) 4ѷ={"a :V "cbM ~@ n oQ5ޞ*@ 9 @ "\B` E oNbqy߃;*I1PUQ@#14[0=&R~S"6ɥ"@X" sJ.=й:Oj"Wd|ڣ1b M n؛hRdi&iTODebLjL wZ;TIz.HHߚ(L]`@ ڈb<>4äm@!('],dGr'J hv(TK*hڄ W l@憧dSiDe 'TFfU p>/L$(1ށ>`DyYIՔڠ1 1ڊW -- pM0ҢgIiJ*Ic3, 7bPzjPCiݲuȗ6@8*΅ݍJȳ Twj O=-ÿj1&XE4ض| Nc.&' Tjbd€q;Q/l*'LZTnMZ@$(s)`~:~􄬆0(LUD Ģ"LC!.em<2X{ؓV#AM ֆ$]pvL 8mDKǷj@tqH'Doa&P"&})S,φ8W]ԀGE+XdY#< :V *LvjjrR4m4($E-BE:PH=DV_xoBPU;nd)On'}ߠBJ6ޠϛ}=;)@ÚUb>^ >M4 1&'d1ޥZYK" `Z&]'HpFJ/ŕn@u ) XI>0P|=ēM\]2 Ҹ*ȃ6ԅQJj%<ZN-td$)S;h$QOW• )6{04bvbZ1 ަbE=gmQ*s0w#7EzsȚ uM7il 7ꘚJ;*y nvP3(}&)#(wpF(eV 2@B" Iݡ:7JWZ hTZ 1";ɪV-B&x0T;!ɚ;?DeBRAaMBA'ڇ;i&d7wU094:v  ǧjb$O}EOm=jVummq .BvE SǶFY@>TRc'S%1oJY'UUt,F O#8]=+h\".h$D]Z$1 ‰! '麊MTbW5'`g}ڦ#oة2G@(Ԡ}jhM\VmZq,Bp 0ıDI#)IZ諡XEUl4$4NQ9tWp1}7QIu)( ɚ~.A$mnMD|6 NNtޘ2d?v@'֘:=?KfpvX:$ jWBGh;Zv5Ad-1Asq&an@$HhI6gMKD.CIߵBXJtm@S0jH P^5ZfwOj0&V,\)ЪvM=e3PD(R{{.5tbLw6KiG=եUHzЪC]Ap$I)ozmlm0mKq[Lǐ*"_hV:W+MTSTwXO`6 =xѷȖԧSPPU_x(FMa7GHn($•ð;B,cTG3M6$ȃSn>(K.A/`$bjAF?Cʆ2 S'#۝B<@Nn1,{nM1%i L `?ʋ";wQh "8'Wd1jp6?c&"t@HQmM =$~ғcV@uP<@`[(*[LH=)^lF F4=! YXN qv Iɑ;=X54#ށ-; RIV7'NEyȝ(mV78;ȠĻ󶨊غ u)m#N`CTdo 9RMI<0(7B@$1&{VkA'Ӭ"Uqwꬊgrw?jP=銈[`@B Um0a'!܈J [ʡ='H5mLVhudܓ悰BCҵDRVPJ}D0caJd #h5\]X]'c,)OߚJ蔝Sd.͹9ޗI'v:AIRd;RjREF&JIZ0;m5LJ1ȧ׷:@,3>'۵v $ā1ͥBnHU22w֔AlHRk`u#qQAMrt";X\#'IuP8(x;5II.QLwބ>4/t"?P'rG4RG0E![ pV6ĩ$pw;*8T9:Z\Q0$⦠QY3iqiV#uG3ԐiX1o4H{u18DzRU~;qWT[4U2)Jh(o6$n*\I3&;)$\yd >}jӠRtzRLr$ڀ yҹR:0@]^ڥ7퉢G;>FikCz@]`7ҌwTBnF"#Oh)"as_zBMƒc4\ TU`]L`ߏj!A){ ` mϗdbRHѐQ0iXĝ$ʥA"NJu:Hi+Gn34^k[c#aSy;_^o&#@56LrdK]NGj#r4h*iAiAWV a INޕ ݉d ̟}镆L}۝2bTq'qA{b,&#p+cndFv< %[P5cA< 5a(Ҧ HɘUI SW- m w Q&Z Jځ;#N㱞h kaTZW=/T0ri%_dIcΙAJNt3~4_ {ejPC1;*TwiJʖ7ցUS)4@ ⣨&jhW @4(Ǭn({@drILvB$ ^XL%t6y*:!u 1?jqٸM=miSF䈠ğ+p:Iŀ{В(=Rm;!H Dǚy4IޚhN,H`'P,4o`cDFHWI3nui݄MH `ʀN4"A.ZiFObY?R$$٘{П1؎;iI*6{QVL xwފmtҕtG &3G*aL⚎[ߠ1 ǒ8*yHfɶ!I'<'4FH]GuE-- $#j,3Gީ$mڱC/I=VuFӹdZDOqROҥݱK%b pkҨ,[ s!yb˷MHS_},NKAc+(yBCqj'BB(9˥4$&!ţ )ߎ' ?C̮(`-u@1GSt6a: =j+'QY"t*g`UeRiBK+FF*oH-R5NA$ܓJ:CIRH0@AS;4ӒNpLU$mޗj *6;G5a h})<0E@ Ɏ$;O/4瑵?`FI?7 ND`{T`B̉S)+;CL}*3*'H;K4`dΙ*I< 4\BJC8s&*+Z ΡPn;ҦOTRn9E!H*D31Lv(݂BZlA%-`Eaq`NFwa#~Q"wU4yA1Zp=i.~Kl[;n"WbTyA,CH#Oj[Hهn&v"AE:iح H@C.UtY=HRBWl ;iK@=r&c2$EC?iŔQH*"I0ANE ae (څAIleeh!LmBHq'ԫt:\"7ǥ1@gęU#ڢ&D{oRDux۴)v/%`dHڠ ';ǽ=PvhXH"vWHR%&GCF1ZBmjRvD8P p}*( QJls)>Z fH;[{T ВNۿߓljT 1#aޏIIU#(zDO1A`v).dL3JYOA*q_j:C0~`R@e`V{v bXʒGCY' /t:C 6gmOuCVւ2w"X&I;Tݭ&(` RF~EMQGrG5t'7 W%0b$omi& '4>%lvDaSb74zS(jnOM%Zym7ART~a"U$ym8"O6<$aUL Ŕڣ=⍡V cx(7GV X%v=3+z հIiXlCJBSmjC( i0I]eX@Q?/ I+j:O腢9b9 HPG|f4Ch0mL#]LH;{YBCqO Z*5 wZ}!3'(Mcb%gցd}(4gOzVE'Qpc( mH$pMMx@ZPz HSmD7BP 'Kq..Nlə06䬒;*t_ZLns5UZzD:HfuǗu&'RTG҄ gНnKb}- Qڢ&caɨ&8+NԅweW -HLҗcm~-EW/(jquD vIIo6^cdJ m HgmұjDVM7 rA+nRI9ax mImY @m@W W/yCuܚ綦6۟Z`\~uvխ䈢kF9ҩo H;ڱi0$F7v c.4aUmzkE@B;RJ7)bL2Q Rv$;bVxrނYv^ơ TBOo I8N hG")ִZR` I ֆm%BGq5%}i+C`1$yD@1-@HZw,Ciwޝ=`;t愭M1$ޠ`#s<ﰴ'cV'-># xm+ϥ7KTMELL mE$R ڎL3FZ0RJHLs4TWDb!|##M4 "Igڢb $bwA*`f0r)}`8v}aQ| xnI0 c(2?@hȟlF#QO?֬-w4IA+ `6ôJވv`<'txQޚ'Vc} ^}vބ[5j*a$+[F)$*y~Z,6oޢ݀m/>IO0m۵-f؈i%L:[ 1%$.O BWʻzGb*UMwl.+h!%IH NDžߊ5@m\iФ@撴Z i4;y*Dթg%ʶ;Ӧb<ÞL}f vڥ%KdeP1 ݻzU)$}  rau6WaL,&$}*p$~~LU ITQq[ЁP12Hۂ hGG懝|1&Y-(~cRT*~W=!*Z\3qCnWAmVdGjv5J$y&RWZ1>]qDA 4]gsOkcQ( $9 GtIf$pDn-'dX;lLeR4R䪂\ 2 ԦE cK']'e?jD&[ ī{XrH_liP6Nǵ*=jݶS"SZ EwD[nH+E)UI6:ۓI8a;c*ucjirJn wmM?<5+,<O"d 3m[FM'2&ͨy9KI@_LEB9:`vmț !ʣy֒$V v}i8uZb lR?xℽLCaDnYOz- N#hޕ1w'*C c.IԲ""EI Dɢ_Bv:j1?u`N̋;w4XC:nDNCA!.~~"ǎBЭ- JojDlcv) ~6  HB K}P 4&H]2=*nc n(*}Hn:B} y;A䘒&em梗XxޟVN9?Ρ$ՠDo qzm@ߑȣhIA~rwfs?+Ha*Z>gVEZ}q IeR@E$xWr6Y@1O`i$, mE>rM';Kl G5= /sOml vcd™z_r4; n*.6Os~PtZ3RO4?5W.&_oqPV,Tޮ47K0X ;{SKxQd%UFӷnj:V} z{%IS鱠V[Fo?΅݀HGMpͼM;$Oҁtcrd$*vQ, I=G%h D{TI4 43@wV F8ۊ)2X0yۚ*I,&`vtŁ6;HMjvETƭR=zi& !tE9$m 4OrZđ`TӢes })`R U&AA"N,mHt$jTaTQoГB+hFA` ">:AԦOz 4g`wSv&A")q:I$RʈsxQlia0p{uySEX']BP!7;x4堰ֺUP)!{ػ3F62څ2;ho(D_+$"R\ SjT$,4(" :BJ4D#IO4cA"v ($y@;Rm ۢ@^ZXR*dPL$q6:oJn X[}@Jv DpYL5OvjaNʚ30x(ȝnO)OH '>oAPN'b{^`+{EHOޓi {!*2Kw WDUIsď IحHPIݽhzP]_CRb`jiii oamY/؉{Z`%@* `xމtS Gh1+ yfh0tvm(K@m8""ȭ v fNbqMC5`dQ;nIڋؒQ@UP l޼ M.%HesSmpA؏M_cUvM#JG5lkM,PZG' GbN3?^ԥ=ڔ{dm$k$ @ #UEANLY6Y1Q{UwrDUh*da'PڔQtJduFnv3MR%@uAb&bս %D]1:F+pAQ$G4+C<=jpŘ8Aɷ!c~ ,*Lm/%rM^ζV%dUwm*H@?ͤ ۏJTns =M] ! `.]1܍#b7*@'i(#IjT{ RvѹMZ@l!cH<掐$=vݓȥ9 ~Ta6<4^Mu{}`'{ h T%[[J4%Y>LH4 Դ6~wƍ۝&h'N'>UC'pGzhx;QݡvmZ4%rfy]-n#ҡc19 V7'RQ  {[JL{2FL5Tia;hJ(hrTH;KpI(Vul۝%U08vq@B z$}Sj:΀H/1;&BtwQ$pQ1h<{ n&vL@@d#tčۡDK@ OxD"#:4mT4zPX} $lT`,Pߎ634Gl#w# <=fw=7H2yExOSq{DK6?ҍƶL,┮ ސ^nZ#ZĎԓILZYܓJWhQ[Y;ARiXO0wP$wb!ot]QB7QJ <MZC 0v؎D`w2Omaah.(!0GiBJwQlG5.=d;ڢWc‚X[VmDc06؊Oa.I#\kjWCDD30O؝P kӵ2Iҵ*=kI-GE1_Y;nG4 m@jlH-Q{(qNmh D;O3SU[ >Rrj|h!7B[?At₍ ނeڅ hRKĎi@i )ޝ4Oz;ԫHvUN.JЩX> cl^D_b 5Oi{Ua{+STҌlXI@\ , R$h, ۵H#`qDwHw O@7zVnE@$4Vi$Vr?JR hz+B2{Cm:&tM.|H?*Xw7c xh@c#mt@$p?G=I:vh"G>ˆp;UW!R&< GSQW;wBl4 W3+o=ւAwbBƄbX,2OZ&Bn 50䬀mbGhV݃YIS2C {TøC)NL}ZI0*+L #ކ>PgQDXPbF҅U^)e+c5!,{pM7QdH% .im}$wlذD$CT@@(I bBf=MhK~SU2߼SJde #j\Y]ķb7BDI' {MB (:v8cCRAQ7;]؜u 1P{;_BLTAp}yX3i.td̊e8ڦ*HWbH;P$+M':n}*,;ԧz6BK!a@K0皶z!*F4wcrZ$ 1FwFЩ>*0KT(`n-ߘ*4x{SQJVU Y@>ӴRm$1~gD3}8nCPDj:@oZ/IX{RlDma:Uews< RОP{֫0MIvMjͤ 'CF0A)_Pi;SG|X.li쮙 OZ {bֈ\I}@&ؽT(HwDX;oI-WٻQQXD=*齔) wLAI>v$Q5/.L0$&#Nbϰ;w'LTA]0D(h=)[?;Ńx4GaomJϯ5X ?6% $*ɩJ}BĒC cK5KC 5yM7A@HɈQ>P ^ƚt q1?Θ+M-i2gnZXt5b6J !u {f*\!3P ֚H w;)!rcn4mΣp9h 4{jT&H0@Ҙ P1Bz&mD$d~i4hm! #D3{!7 7N*ވ`ҙX Pװ!#bvhiI" IA1#wy$w1T< :?ȿC;'P DRiQ SAD1LiVdAC 5YWLR$DzGqOE.]04&wwfwQ:WˬyEql-:&d4o`n#nh0ڄNtAMHL0?EC* x НЅqSK#9iR WH<DnFx=mlI.G+3xb{T&~XO "iUm*6= `D&!J`[}l6S:QeRTfRt/ =QVuy֨5D[vT h1M!7xwH  nÑB_K~B܊y v MXN;D/:$G[(PO'ul-Vp:A@ےjP@&n 7~K0CƪbզM#b;↥өiF)[  ҕ,#Lj-m{:eA 9ؤ5+8_W0ڡ;d+j+l$jraMt*'H۝@ˬ!yM$šͥ"G}1 qBoW26esT49oХHmӶBGbE-vRb{wB!JOa$`GncPD,xIGlӿ]?*$pV"v;Us)J2q~j^vgGb~`j#0_hF(lOc;R΁ #զ;* "9D8;mv[H j` );Tn6%;1&9紎Tv7#PV$b!gc#pvCDbB#{J0$^i=| r@4^.;jR.zKJui; rGzmɀoh1";/D2 LOeWKCh$o0Ey ܊ihY˹.Oj); ]zkE}(hUAe*?ֈe2=M1m۽ Z Ӥ6 v6OV@5)0FI'aҰvs0=_m/K'ʓ۰( A#5'W C;R $@Bam_~4o"??׸E) Qкh;đCi3;õ7BI*t́4$"}w\t'"Q$} `OڒJWJ{B⋽RYÁ #b=*"DW,}0O"=sf;i#"&A⧽LGzS$$Sm-p#6&gf%Kb y@ity9O'z %ZenޔI.O-RV Nhp:@T"nFݻRcՒx ބC4 ߢN@f3y6-P %F)4m HP1*9+M4abci悫էcRPM";:I# ؿ@&L00;Ըi F* Kh%*z&1/j섑`( $z:һ#1dIʶAI>B@$&w hb! Awsl3j"Cl:Yɣq1[dLI7ЬI=P;7}Xm1KA(yњr{ե}Sv1Xm HR!%q@5ʟ7}meN޵ !ti6 G$n>@4ЪЦ\ϧiޣ2 Em*nL:H4R4/i-m=ֈ`]\j4$DR)*# [cAޙ 1m7Aq@)l RKd',cAѤE'*@@;]T[fnjRm'DкƻoZV ~iʇɮ9 v%@Tվ!Q9ނI;EiEP\=$~;9*V[`}6Ѕ>N;Ojb c oH:!' O&ܷ4t~ =b䟥 W`-ܟ^h;!HxFƢD]! ޡ H3I5a b', >ZmDfeBH:~z@%=ݰZd`dɘ]1v&(TEIOYdwEJ~,j`4qGZBt%^}vJ-T>$gmEbwJ:&Y ddr)X̠;HoVإU:AM@5)`9>:FQ7ռl@݌J#gl&)W鐅& :tȀF Zʎ䷠le~ݩI؁ɤ[N|; ]z6m$+SVނ#<ϥʪbw(ߡ#0 Q1 +#0Gr}iĒD`@0vTmiZI+,[l;6\Xj[]1ȣCN֕[d5A݊ fcĖXM]7h+a bF5[簓t*PRڤ1!}fi--h2Nw :d"e5mQ/+MtK,mp)t)&빸FJAOImbC+m1E-rU\PK<华J[AW.iX nw6ON@@-B:O9D~'x5`$'] V38d]qKwZ ?_o@ '(JMZXh0imo4Ch6Rb}r s$4RMA@W%睌`$G;Aᤞ8^2?j8PA*bcEBA-~M%zAEw 7vhmPfl=hcm;sDs(4_!"-\&sD. Oq@CF(=Mv:‚gĕ#7GOXQӱBbB "? b6طz* E%4Iiܞ"$v# * GӳvPxa'nG6h4%0V;z?k3{M,殕$SZ NĞixa0G^5m4T{NUi*,d=jibBcI T*3 hw\˩4355҆%veH,DTD@۶SmT1Jey'ЪSI ާ6Ҕt%T; AtIPWךk@XB>Eٹ6̎zZeQށHl)^d XvoPz_i!L P:xIn j]d!OO`w R~#;,0aAzwBVV^繨 49 t `HޙJ74&1$v߸5;Tw@؟aSP-:HZR7AbvPu}#kjQq1RTiۊ v`I{Io[ejVmFdۚ;'ʪ.lC>}>֡@wmmO|MȠT RJk*`5wm BTJB0AT:AESz@ӻ ]C@'oCAA(o5dRX6rN+zBʓF"5@>hE(j\2}%@*XxIcU Ru/f$D#FydѲwwC_֘.I ImMנ\] ;?MLjRCNT#xV5n@܂Z1+0bGRNf@v1=*F6Lzs\@PH6qL;ڠĄ8z]ET~ye1 Pus2I߶RLI0 I ֫*΁ :K2=|9P}ƥa#a’vK U_IIS>uަZ_ʷWR i%v</q&J|K P!aiM:CZ ~t4m@KMyAz@ѱ\]:ם;AX1%c섖 ;G#eQQ;譑ce~Vc KJi! (&Ii״5@C$EVi8쁙EE2 h\Q#yf$A5i2q$qL$b(I k@P5sMUq'R*cAu!g&*t/ @P00 ::w`PP i7  EH_+3sziXd}cb; \H"oEaHXևiɥX `݃03;l K7iEv+:֏7\R!bTKAwkЛ)0$KuM`FaGHʁ:] #j4-II|'R2;l+VBPdY/ilﰈ%#HnU[)RDzP$6 qKҥ0m35>Խ[x+$L ֚ kAWP LmANص&8&d4N2sl6-IHVR۬)>6meY>T_l5;I 'ԙ.ذH*v LZA2AA4 *|Y.ҡ"M]UjS}}i|BZ@#ГliY $y@6Mr@a s2A=$кt1*)cmv݅Ǟ&ӱ/b eӖU;(==M6 ܊&Bl;Pihtēn#h\DI0;R{ fM@YP{UO9uDqAg Yl?ZI*' ψ;3'ցk}!v  vX5G@RX+"'yAqɢV6dO4됒DؒK 0|F.N:A " $?v0ǙxA;q$qCUT1 {Pp ێNQUSK`ҨePrbr Si Peރl7*KE%DL ED@v3E!Zt$[J9%8O7^ԅ[ }rBU ȕ6DInim{*HOWO`K @S)]YNv3[PFۀynA2@7* =kUT&XA"934݁z$[t݂ FڦLl)ZÓLHCl]v M1rw BW!SēFw@#އ^@y"@7|A mR B'DJM?F}iK1 {?-靛IKT"W=zS*r7-"1x,nHܨzz`M3,Ǎj !Gi5MI>(5RvQaHu(HRϽ\"9i%} g2@#WYv4SWAhh#R *#+pJ]@jӱ24[;I6{ $ t!AGPuZ{D]̖֔lh|%}?$la+pӶТqjs'4‘qTmE q$j26D#h<ݒ &y⇚|[THRDz |4j=z!&$|z%.}*iКMЀvjtKУbIQ>h#Vc7'PYH'sX@v^( o M3 HMoH^ x2DOzm֍^7bkܩiV)YkZP-+ +Ѝ:dȓh.#i#zU6ΐGv؞Z.uQEkEt SY򈥝y ' 3poZnzT0~*kCu rH 7!ӤADF\0 M$X="Aԕ${ —hZEGQj-byj *Rim(\c "$6è >B\HnA/bP%J3hMHb7߷FVɡr``pT DD֚RIS̓M6M0wڦԓI v!c7>,av'cJ Qoz}NSڒ* O#r(7@0=;Po(&~4*׎ԘZ $Qm O:(iWW!A"=j5aWp)t֛{|8Ht,FaEU W"%ޡ5a T @NzJMH1y:eL;U+hw@$-:9AQ >_\'E I;4ՠlCi&y5IFI P oZQJФpWpw4 uj?…jq`1ph g1t DFe1rc.݆4G45;ԍ}i}mhܐNIsęH(( *w`څvl7mnYzj+J5@*OjIO t h'"7aˡ@MEؔ?nhL2I4!t }b#{a$#ޗS8Ѧ=:[ I &wF]aN9ĭ=̚t`*O}IP=#iBʾLMݒ HUM&6J.d;MJMgnЬVC0 ,H-'vkOmK;;Rح,ڦmҗЖ! E@$SMROߙ).rJu:r&f˱$*MEBz1qAo4 o PNnRd.$TA y)}417>y *쁧I:uy]ڑa#hIv,K)&GZxNՌg\H}RMނ_s l,vJWb`msߵ+OIA;@עcW` iܘvXi7OnA602>{P4 $-…6;bI.#TK-!h\mV sVe;TNiZEiA "AڔtMTvVeB#mݹ޲nD(4wHڡ.GODcͰxTJQ&@]FA'a Cӡ?b6y$T$1$ާدaRNڣR[ߘ*Xڙ@;>i96*b; `cN}#r7 Nz~&F  mܕ1VfG*hypEޅ ӪAf߶d\y&h b7_@^@(4aJA@&`EPvTCRA?754Ҥ`~#sET=(1 d,v=D,?J0}`B@oZ ]Թ4JIdǮԊaIP ]48ʼnmh9%UTM4em뺒d 'T;v+` )O MӸF*AT ;l7]"Wh,CJScQ< oq>Xiږ7@V_ҊAh0I{PնA{@&U0ښP1;Q%D*)o536 zoޘqm ib څVRӠ6"JIQvDU@nަ7%'sA; ؈"%D,vw;(d*1giPVApBO<"i 0$KiѥTLm`7<ޢRwaX G3ޔRM& v(KȀex4!;s愒섫h>*ƛi!i.F.  2ibIjɱ'@*RKJKeV1zkvB?zbf $RcjK`5iޘVn {QTFӰYCi$1Vդ$%fGqz& Lw۽EӲZMB {Bi FSrluHP`lz !?ғv & .Lz66Nb 9G:DoA2l=iS 4d$l;i v ( RHUIZ78*Cv!5 iw%B3S|iڱrh?({Z3@Ix`[IHZ.HUϔM,t6C+;^$Юhξ_[M`-ۈڕ;.UBF:^®'Ҕ נdXH;DSU"-\cP =ͳЯ_1KRP]c̑#ޕ.›C T˴TD";RǴGcչQ] 9-ȩ[[BBuDTFN~BzA꘬bjj:*)]x4JhOC31?ZT;d;I֘Y%C;@Ijk z*Dvy}³[sh6#hZTĚObI`Q$@"#q(IIV16ߓHtڲ[;IeZ;dFI6ĴʕIojyPlkDD#8SEB7("u)50IcYۈ1yN*:D,O#1hV$0 кZfU-m&Fx<N iT#yf@V$.&c):/$X졕 /`fOY:GaQVVFy@ascޛA_:aښwlTʬIsP[]"BZ7C|A>K;du& D[ ;]}Ew$VUI ԂVw5/*VC֗Pլ&he†lBaBš:ÎMڊ ɤ K!z#*I O$t`TV:Lߟj4@*93PWw];Gi )B̻|}Ͻ8ع4UHN6 *A IP7 ;+ Q[H$yQ5w `R>3ow7G3Nb2tz(sB[L$s&)U` m/Kj\/R+"IQ,C+(bBuoY@K)8Гl:D&@h08ciވӼ!zz; Rw,WI0,X*vR+4?֗KTUh4 "@ivZ5PtBoJ  yj%] 1MsBq@b#*9܎ғ셉:bI@<{x8B@z}HޜnʴxgZ#ޔcn9"QP%ۿ8b[gځhWxiS $`m {S#x4TSM0ڔ}L b}*mi%JZB;v5AUځ女iP\ !6`ܙn" >֪ $B);S[DOdA CI yVNM&Lڛ$Fm"}G5Vga"DND*\)4ҠhI)]\'j3E4M"6>m0cw/DK\M P,nԵH*-!PBɚR*ODqIS aRi:␳$=xګ{h:uAa1hm暪!'dޔ&B m1і!m(kМ[ #`5OzSp`n+qHfMڕ$$z}Ğ)4 iV07 7ÃvnĞYZ4;ȥf B@MkؤG`h>rc~O'7G|Y3ϽlF&tu^f08P@X] = OU%5PVsމ0~&o&Iދk};(Bk@ $v;GW`C* zmB&?5d* 6 qH(KdvfIcoRj((jVZtýH"Iޠ6jZdRIa*;Qih[ d."8ؚHӾ5ؓ;6>Sǭ 0aE_pnOaވU*]NÖt6QH$tޓjĕiTG;o`9ȂM;~I}4 -P 0W`”hv l#c;N;c5bivA Ii h`Tba`Slq~upI&U5)mD DA6o*_+)RH1E(ywt$TF'RR2NͰAh.B ޢ˶Uao֦'}(wĞxMN!aZuoZm:tGn Avi6Ko*]m I-$orG 8ݢ][ێ@ydLdB|0PI]>XkLs'6$1`@k6T_I*> ,DOZm5КEPLZ,6HdRI}%Xxb#q DFHMhbrQn GI+;)%[)-F;(RV)`\m v=%hfA XR&-EeL1m4\[P"Fx Zi:M6o V **m7=┘"һ@8t$S84DmDl7S={@R@1c;7$1Yc(1AaRmS>Ҡ=jeIp{S15`ИHQpy K@Biڔ&`ӌP6 %HվMO.Ʃ&=I`@55`cDS &JPPv?i}셡w'` 0NԤl-tƗ{/Ld~) iҭ,xT 1n>@Lv JJ+jZ:K@#X_I <iNfi,V'ڒih\!vڅe'W[M6iu ;&ڋM*ڠFvLLښ&@ [a$Ar(Z t1onE#J0 M4 Hb .3ވ(̦djP.J&I;AF*t;Pq*wcz* }j1tmVعWbTwK?P1!Uy;4YsJJyL*{ p nS&$ 'a'v>mM%&,T/+M4{RiTWnA6`@rİG]JG(D㊮1"^X@ԮN{oӸئSSmI0i״.Wdm" y& lGa0;( sȦ[ vh+"66ނ0}⛋c N΂cxCДA+U p" N”ZzA}J0xж@RvM*I`-OЪ"NCe'҆6INj⎘91.$:DI楳 RKCN gQLl=";w:TAȡ?ȓ*rUb+r`Bb? 1 QmB`R` r( 3T&s$rhjR|&". -6h Xɂ'iSza32APA[ /ӽeV=Usͨco;DeR"AB37.uaE1҆i=dL;M>,6" @ct)S^ʠ0?*Cv6~A*X`T*U`@&o<CdHZ{lւwtϽKbﱀޒl asK!>/h&cqRGaB_:IY'J$^ibA@&~n޴KIZlš,Ţ<$L-4Uŀ a<tFF܏Jui(+9ΓT$m8KPbAR}U<<ܲ$L&Mrt z 1 oaZq ~.A1޴L|کv.ՌaH P .` sI^d*Nچǽ"@,K0Q'D6H3zmkE%A*u_ =yQI"h#xqPPcԊ{ȚԾGEVѪ8eGH ~ڮ2'alDT_f I0{PX.7^hOB 1ROL5O4^`aR⚻ސjJ;D̮I{ӪbIͪB ֔Ā9MJJiK 9ϵKw5>mƱ6IQ''sQUĀ=@)$ bmމ L#ҝ4Ša`dc;=蒥0F@my℩I 6m$ >u& 'Q<H"JI ) 3 Ğa`9iErK+lM2 *I; l  uq^@ ?}[H1:A3-P,` jbdDQ3잉k.Oڀ1Ğ֝l.xÀ$II 'uo,B^oR\Ѹݬ*qRgX*nFMf%} $DH ߚ*H{ғI!UO$N%U_wK+n6c!غPϧ׊&x4`JI`ۼ  Rb"Hj]l$ibIDzCj *yYyO~_cv>A%J7(lO}U܃"#hup&y+zb)bw7t*t7M+6OtM;MY;onO:Mt-$'܊v4)fDCPj׬UW.+XlƏܴޔR۶L*P*1c5.6Ibd{QCtC.Q.IhѶ P$&n7"iC!~GM[v]$m2* #>n!;ucXƑޫ%u"i{A<ېE6 A?zUc"7.rI5m!vLI-RA@*}F\*6L@n00 Q%c}c=AA'`;PRA%~sO+hrI IIP0nn`ڙ 79}+s34Im^aȃ$nJqX|z$7k@ԛj}(pӴMmvWJoRufFڋUH\QLP%Z~eTfS ӱhnDF92 F#GhLNC5u{T5rYgRֆ01]`@LZA^`c m&;z ;sbi8NwLEO}i`̍CxoS! $P  \knBzQ$+9S^$ŷj St H-,v*!PđȓO`kj5H (ݡ LJ~bH@RO`7 TөWcMS8 FΥb`Go}FG\hb#wH=X j 'jn[EI@;jFpIy4+@ՅN Gz ʂ-cD!pt1Q؟Zi ؠX>];i6~f)DV:!W~b*jXPDKm*]UC6#nbjryH ʶCunc8tl=M)*=8C,s;TbSnELy7hCm(c4u#Tt8Rj}%oA"| ʢHmIqi#H@LZ&7SJt$iݘ;Ac;L@CbdGxIB'˴i[Kh!n6M#ÍJcqT 2pczv$5/ޡEI# ~e -sbJ爡{ :xw]HOb Ϲ["h#N zUr@R;'ڎ@FRբUK`#H&6&;64mQI~@gVysMB``ѾӸ'U+!cnIn V-je'ϴAԊIIZ !n}df#f a+Q eu`ʣJaȫiTƅbFTFCЅC Z&6=*1Ծ - j՝dޜm mHzrdy(\jô̠! m=$ 0HiGP]. M;ӿhAމm" Rj$7@ I;K~5R ;EKo@;ԯ$QnJ Өmhfҥ6 WNLA`};Ol)p0ǥ(K O]+@%1z`NqލN7=(k6\O ڛp7TU5hf<c@ IHۦ ] eDzڝeQ'v3֎sj!($`hYHa~/`RYB؝'lVw41R AYLh%itGFm;O=꫕X'cDaIc5@'}4ZOpj: n|1~E]iD aW&}(+56;4w4ڤNwH`'}*= LS旙֌&D'J,t mvHw]4=*[hҰ7Ҫcov<}?2=hL67}n0`Xl6U +TI)Bɓ.T衠Ligz(@لm4G@23E& {(MVm'ҧ#A96mKD{A: =$/Ȭuf (*7M'Y(h*Q<B{%DRtx@@9-bz})T 47ElF!muznhkv3L"ՋU1O}ioARP䈮?֡ "==i=bPW֔$X'U&ԬR%gޮq2Ɲޖ, 6WCwh*K'R]↛@$0OjFWwҥoWVFGP ;W3MtZh"/0)%b˼=cA~itB@0zS=Ѥ,FjͼP{л5l`*&GxU=$ՅS n6"̀7 l*#;'jPB{iM;C n*[u&JǛs0h|ğ$t!AvhzvrN@抝@+*UI`yEt"`o+{aoL/$.Ӫ{o4B]qF3b|yz5>~wAKگд4, (eհj<mVؚvAq`؎ơbd}7EZ Zd,4.ý޳4V26iJv-J}ϡ'H"-Q!B{2ꉤU aր4TmD"ɖhZ(Hm5-h.@xz5Bd7&pLҫ &P;c;PݭM"O# wQ ?ZD(uHiMPNðܚk:`ADϵEmNO>-@xڠb oanqB)"ؓک6޴GԪti< O~zzװ1Ux*BX[a sD~i[ ̆DhyC3/ZKl,NAGz =y(Aƒv([IKAhRm0,UȎ@7mX4 6E_IqcXIQ [ &cJ}wBjHߊ!J5'4-:~.HcADAor)H~BKj %=[6RwLI$?)WJ(DvpvZkl;lv"JծljY4Bj$GrTv;IirT+0PYyX,Ba4i~F`WL>Uf9M@@X`QxI+ p5LBf;#q`FFcHM Rvy(LrcoʄC(ܨ4̓wbdP,5y 8 >5tcBw6~VIDI d4P'RS0eЀ~X4۾ءLmJC;iRE`c5%$FCM&TmI:O#Rj8۠Z '@d*Lx!U1;H;RJӰnG¶EIPxCR&gMJ!] I)X0|AsU'"8{DS)Hm,f7i,dҪz&(4ݦ muUn|50:ý7RA&Njm$Ǥ#A*(TEvr%˲*mϗҔ 4+4RۏA$Qkj1 B6yS\^# LTJvZ@ L 6LdwH{ XSQ}6ZIB t. P{;Fc? /! =?GFNM *6؞A@ Π%d4z#$HH*gsL],7U} oF(@&vD=1 T~fi@!p# ފ(1 ;t{ -jhMg{ke[d4h@@O5L̽:vں HVJX F*]SD3RJ**$HYvPdi݄e O0IS`u,v?F6NlPnDr;ѻ J;>$oHI@뤴)z ŎqE ;'.Dq<˸~hq*BvQl 4^ބ  sEI_-ܟz|h;a|=Ajt 4U TֈcXhi"#kRI;@[QmB{Rw=ɦ_mp"T6*M.mI@@YO$TPU*IE%%UWiM$ޑ NĹRWH+ mQzzvO6yo05 0H'aCM=H=G#ڔXOH4*h-z p[s#Z$[ASzv13ɨ.1*6RlVp(7(Hۂ) OA76G#L*lL@#aG[ 9&0NMB&5@و;sЭղ4sJ =}KT aFǵ1r7U`+32G3ޙO@,qOb)3J!a'$0e{M$}ב wi+]n KhU樺TɝD%o`W% qJϧ FMi\+Yd'~Uiw} >UTw:5LHײ}]mM)Q)h]+q0AN&75 5r 4\IIՑUR<1PzIIR@:Iւ‰:`*Z)I nhm`n$Pm>e{3Nlo% #+LKu.A Wembt}~Q-m$R 7 Ab'!%ci03SP7ޣ1"LoUu+HV$۝܃'y4EjZ5*wR I}'}H`LI4u N( E%HRWtJBK V5_j-% ~}Ss0$v^Xzu;ڪ$*m0, z{9qI"[2nT$3Cs'֗ v+TB4Pu['ԥLJ,r$Qi6IE%nrxSPBG{@A%AvmieqvE[nē8_ͩK7l=SA  o䴎ҭR/z[Q& mzImS 43*0 վ=Ȫp(F6;;iq۽iem*iuVeұRA3wPGH[UXw!m*tt l a=żN@1X[Q:eI-QBTH<?Al+BHx{bV`;b^.MRT$x$ ]sJb[p,#g8o]I ގ1 mO5a`t "vP. ̧JH}LI5T*9]P#aE_K'aSKL*`Y[hFZAEMwUqz Hum;6.eVK-iy4WdCR@+iHDTU P:y&r)6xL(ޣ1ݍBJOdfvpm9B(kV* P%>]hm;qkl]`IU䘨 Tݤ*Z`J# qoH2 KL /uaHTF )IjWA$Vm/xh0u4(13IKLOL0ĝzJ*OV ɝ(}L '׽) aHHTҤqcA.4IQ/ncʄ)*!<7#c4h(x<>Q fgzUB:*gZp; Nu$yi@coz ҠFhtcWRDt}&!bH*䞀 Tg0NVJXyd@#@E]EJg,BWHŠGJ-RPeҒ7ҕ-lcc(Q;]^QN4eF@>%}ƴBLrM HԽ4d UU\0FAmrfmE ) BAPTG?J.i򍧚ʖ V}E-yR)u.݊ ޅU艮Hfv4H?JQɵ`U"}b$Jm)h *w#'J.G$AԪ]R#hIRKaK߽F HIQ+Lޅ>2A/jAұN"-q4X0DSzT hdۘ %irc2Gv$;UEtjDR ;@͵+Wbo)k! +mX])]L[6vz9(MC Tu9$"Nދ6$ P;]5$HxhIU1W`5$mIZQwrju]hmڢ OАSBQcw }I4d$}|ICj\}(``JZb2Xwщw m"'Av6 vm1 v]wʂɹD:  ~`AފQBb _Zu>A>ƕ I]^Pbv,egCO[ R0baG 4 oQXƹzT 0Hvt, ;₳L< n w:@@nma) x$(U.ʰm`Jw#{ . ;A'܂A,w7Fݽht45Bw:D}$!:}: sBiybVTƒ`TSI#bhqoT,A0HXӶIH QvI&yI=VK01yE4Ɨ:-K"!uP+AmƟNF +5wOZcc)5Zd$1tQ\>RNX3(8& ՄT S< GJvܑE8{l @"1M=};+;L4/n+И&WqqBV20z #*S5TAh+&DOmZ|  @W@+A@*` P.8^v:tۚmb@a=v,L,HFMďH^q:j$hcӿ&ba1N#m/vYP=H727i0W-ljuQ<@5]P"mƎ?dh$"3M\z] V$OjZFN(=Wb9RR=OG}8]tOzM^Bzm7 WHoSVxGj) '}M6 xz!Β 0TSj+D&FzFbSn$% &f604R줒"+2ݎޠ>w["/?@LޅӦM;N@ǽb'ep2O2F爚R\RNBA'zQ H&UQ)۲yހ<iP!#hơ# ;_ $9v5 .@oKd$}=MHsOTMV!GcfI6U@b v+RAv$P.Ï-2$ {@ S *k {ەX;ZG %H+D A-*B$64K0yO8EHFC߽Btȍǥt挄P}G ]$<ڂP!AI .` )*wz,YX;ǡBJ#mG,3wUJؠ|m3+ .So p!U= R@ KWll]$<Z ܩo'Sdr`f=0d/Sr7/H NOt*K0[M`w+"w SnJI"L Il&vo%n* RXǩڭʆ qF ;()[bEbZjΒ@EJ =cjUc{{ىbO?_jqн5jKhI;ߊ_ॽ D$v mE $ t,s;wmPhg<j0RcP  ۊQaNWkh@CLimɢTCY٧0m66t#4X0-rx= oA;Im)@ 9Tۭ 5!m,8܁@+)ՠ)]%٥]DyGBjV11j_`=#l%"(*w ΕcКD*ބ1ҾiH Br( j"ǥ4XmQ :'EB@;D&KnPQ2$U e␱a,NzЪC$bj lLϛ֧&p mH*;ڟUpO41Rgnچ ^d?*'zi: yZU0y5"{ y-;ԍPBghm1m:'N;hB chd)}l(5mPPHwi}jW{d(@ih$NRKav pb;ccއHI$zBPO({WA&H\, NiV;ދ5CDm"Fӽ:[yZޓia[K$tF}݀U*XDĞ\l7ڇS@<E!8⩪UI%tO2A%H#}\f+0fAT/{!bgpxQy䪇i@Vksh4;oht8 (fj(߰ {yP4a}DiGD=iLi&2 !P):C?J(UWQ=qUC˥@R(c}. ނv>h$oKTʢ)CǥHUH$G'MT 4PFSTƪ` :NBR7ЮUǐN.*'_r{/\Jhfv@ÉsE;!N|KAn I;'M&dhls"P@nj(i%y$m+%Ɓ ߚxE-VRϷr4>r ,3ncK#Ml>UT[Sjnꖂ 2.Ij.ȶAn6V5aUf!Xrj@cRm1 T4#rzo 7AfP@$)`; Ih%WO~i iXF2- j+`> ^!ƥwy'`c5U'&'R6$(݊[ 2c$S$Lz{)%B }mvmjoBQD{sI[("%WfBoEkb!NnȒC,(=y4ƩӹjX[J05Q-xri=DP| T:R" h }*IA{r9۸$i@/;(Rb}N f1Iv.Q#,vRbۀXm=08(;E4EiJݽ! yڕ-Yi!T 钻wumhVdҺ#ΚV%)$4, vZLT.VT R[ v"D╤s57h ^HJ6eUEWaV*Qby4Q`=8$RC P)$zw=t20X  iE l)DړKqMhZ,m@n(nJZa;lj0_P$Q'O fYI;K]'vBچOjQfA*,2ݼ81n'}.)h..ٚ$#I4E`mBH U$JJ-  ZfhR<%LQ`5]ҟ]d, R.Im'zd)z n&}K>f 34%`%TjQD@Otx%x;PCI77򍣘!A!POs(N.B;=* DJ>I{&@惐\!vM$KL"WrD T|?=JcZTiobYZ؝E )t~33llXMRCqLV y$wP]LiE&]wEWWFcE(*d(\0f /'9Ci*U2&4i1.LPGm/ܘ)h)Υf?BUoTJmZ $Oj`*}kG'Bj*Rh!`DRHoII3R:X;IP3=ucnWxݏz]ڰyIC!vQRR*yC#myIx*Q{AY ĝ(1YP b"AH䚂Yi݃vJvBd7M%V(!XlwIX=ѩ@IGVaC@ۃI:JrD wMCV Z3%kc`;i9☟ eU~B.=)IaO2'f;}j[A oAJTؾ' j%ʩ%%$HP>>MЭpo4I*ڨQXIy>U:#bvB 8$}106]Tt4i{zRM F~X}($ߞ˒;\,*&Z')+D6pjFpj[ZxzDLjjywZtBu. (M& $4cRj;@)X;@N}cQtYiI C#֍Z%./`[@H*S;HQCOa{q]v='jUr{;"cmVrʧrXB 3=Zn1T#o҄dn/)mpGvA, 34:AY lIZi:Ufh;1锛I'׊u3 /Zndv(UcaՊ q&3%J'ЭIR]JuFAW<0Ēih]+ &.WM̠A;o STA7^TގZ qsH ;-P )1nw( ?'MR"#sA&*U(IrhPWq'?\ Lz:Khiޅ rA"!B8Zt"N-P~W5 l;MA;ToFKc:䓱(I.['x8UI+!v֘^DRSo@M%L-gCP%{z=uO!v&^@656-340IxzeZѹ=/-$'ҔU/@dƍC,M:^C (C4V<ĀxNE\ kJ'5kCt37㻰)=]J6;E#=n }*VȞ+j݌1ށkA,Gz =ӱ>GbdmRܝroA, 6 k*6ML:j7Z6Е2]X1:<Z|j1cwb@VR(uw OerXq@I⠏ NA /yp'_iݰud,`Hi%}QbD>bD }^ B`BftdZeHf߸ʇho HoTд.>G}*$RtzVh3 $OB1n1Lm `($$d<,sD&7W;SuPj10 wJ=ɞ jӷsGJD,'E`Hb 'zR _5l~PN 4.#Z#{(kC<Qk\U$4; FFSho0Kn{51A ` ip#K9mGIRtJ^r`ҡ:r};P &D}fJxx2n$ 'v07 '8H~:ap#$%0 :XmȁGcI $P'D1 u$xU=/2~?: KI0N8\d -MR'${G6ZI$ YtH b(A$zHQwn,vWz(|sGS I@'^#oEA ؊mrvLYd i$PX^X-.O2A #I&LCzRmB_Ө>H UcrD !x n񱪵VLU M63vdePDǥ(5 h.@C7?Z@ x=VR@ԠC[oj5-p c&b]<(nzmb EU T{G.#=)+c<)Ag)&ДHP.1җvSQq2l&[֒ѼGNЯ0řd.iH;:ܓ-+QK/lvy$!E<`h$mSśQ`㊎1 zV6>AiA;wBՐdLK6vacSPvӽ4B r  IGj:IT6%uMY;nM{Ҙ~t'ZAi,@-jܞER{!&()*Іc} &٢I 0C$13BӨ/jr֘3= OJM֊z ǔEM[bCd֠xzO; `PGiM;t.ց9Do" YHOcMq]@Su-IFJubTTvO0mJ69 qM]P/ao3HP 5a}i oڇ&`(b }[}m4OҶ)]3Ya^My2IڄBM"F* ?vRI^D[ <zI!AIjm$KK̰J]f#pOj/c Ĭ6j `mU[/ڰu3劰RxjmlIĘ0cSOr h[/X :G4BV M*$1؏q%Ɲ:$A4\wi( F7ܚMQ_&d{.@F!Dm,_T[A[@pl>İ$3I=-%*J"IFՄ>G:RTwi*iBG&5݈ޤT(P G2SMɽ{7-"hq BQ:z }Q$ړlKKKDn( TB& 1?J*HޮZ)[ 'y|@-D AcN*AIjWi=S*Kj TKF;QM`BIX&6VVi nMzYB<,6ދm !i& oL4o>ӕq [`ċP%t ;zRJL)L:|r}hIsUZ*\,$f"dYK;TJd֗Ib7FV@6TצTj''S$zDv(CeT̍Q7%4bT'?y$iƝ;qv)Ui65 2Y#jzl\vFA:VOu˅Gpmp4jkI ixVB4RiE0]A  q44"t$Pr5f8&zy "ڍ9;)T߸Tmh 8~wYP\Lj~UKDg T`F|}M$bw 3V>IM:Tl{XZԃQzO Uw3۵YqW I؅b84 ͽT)sTv-t!>q2eu\l>5՗JA失P$w&iCw!) ބz`7TDXVV:[З(j-*x3ڤ97#m[mm$n y>.TM *DP; 6ocwPG)C#1.#JwA$Aq瘦ݭSTA$2WT-~BIQ }ډ Djpz\ [=;@ΓPEKQdǭ%%t m;M ~tmX6e9;Q$01aOwТEh&c,CZ8`Fx?ؠ_̎FA^ -)&OZ%7{S*y1#O)%v8eT`oQbğ.Si)wY}#ēZEImPE |hH>eKn:ޡ'QHu_YGjJUH{J-;"i6bz&ռ7aE1H\~(Yt+ۙއŇTr2<5X~ST*m@C1H6\!='yqAb5%cm@k{)@f%uZ[K@W$b\zn%lނ3A&2(c$G6ҴmtMpD. ; 361Mk;=AA;}a|N{Ծ'd.Qtj #m;Ez j-p AVIk*j J+'Q%ɖ*z N6wSz {iTOnOڠIG&%CM5Hsb;At~Q-7Nѹ=eg^ʛj X NsIԋe=^LF(-L4&*)>Hy۰ړQJ[dčn2cih4%U@x_(}'OB7kpP``H#ӚH%$<~K0HRaަ C  _SAWOjU!j 'Q2{Z; sT<INT2-I$H<q`{ )IDfDA:woU-R5'QmN=7] %̺8`1چ___`x741s(]Pn[:Ii=j{ .snKDj 6@"&cnjݻRT Y`hԚSzD_b F󹢯q* I!T&iS$w?4#ai>9SeYfsW4M DLӸ0+W`zwd|ܸ=j<\+>u$Gҹa"M8@'?ʾDxA:"in h#Ղ}Hi`nDs" '.К\@L`}f,* dҋ!'* ioaޔ\d0 J)KV Y,Fs0FرpE;Tm;mtJR}JFX)b\dM`+*$tUcj+zYI%J-~'C cm݉AIzi& 6ԗ $=oBI cK uV$ҵd Jz v3▉RВ$*s"f0v$LE:`V:XL#s?Jr3 HVΐ*M:w4[R7SwriР`;- Rܑ$i&$"(K$*Sh} aP\2 LO26q7@,Ipm*`nY'Kt`h29AJI#ڒ3i&7V ټuoP[[r9jjvpIbRFۍN='ځ,=*Sts"0Yן6@dJKo 4x0p'Fܚt&l0A $QA?> RM>M 637p6m3.\ٕ˿ZŁ7w|}$}l8rN\f +7zo t:1N xJPJv4@[$/jn)ӽ i1U#fsErw?Kp|>kbbuc/ 缏+$ĂI[#!k71bGyhVE{p[HiWG?!du4(1oJJrLvW9SUc:}f8DI%oa,`P:ˍ+]P 90&gڛ[@Ptd1H M5{Mu+lG}Y }عPB=mT5 ѱA4 ˀK$N1> -h#`iƤCRUHEA'IՕz]l$4jq@W-iF6LҀ4 'a)6ZMݍK{Qn #u"vи'u1em5>'Њrl5:mT(c4[Df`J)犌HGUj›z fQ'iYz#֒kAlIYM]9+5J6VAѶLI<މir#3{{R^m4EI~KLG;uL6b ۿRCdw4*}P~P0vU$q&l` n" [<qiX22-62laE>AQ};ІR[jKOdӺ!K" PFN?C5ڎNwФ JHUcPsE] 4]RMosV2&=2mgfa\ .?JuO@708k x*@߼WuGoҼ[}CpI yY*91 ڈ?ZIChSmI-N)=wJU0hH|bXAh=WUM14@[:I'7h7!Ug$m5RT#\N%u4is-K_FӣqwN,9P,-#jeA$'pJ~HAq* w xnl;zS- @y`DDl.&Oj--u+sAGЧLz}K1&OztZcNtԀ6d{p6DQ XSځrT"ڎG n]QuRqxr+V֑On2~okv?7q(~ގӜ2;Sh\Yv?r?}QY`?μ1( )?~%V{VjG5H@c(X)I1i-'i ;ESح@VM>!"8]N&O5L+ $GY!dlH'򪯢m=X>ʿK/Ȃ}Z??Wç3霹f8MwL`۳?"N_'!/\uSvc6XgyX״V~Ϳ|eiMtԜɯ2<$~B P4$L('ݫJϟ_J0f0XƿQ'U.sLjZ_PCA<-Um+ L)3#Jaʉ!rvݢF27کZ:;Ҙ `LP^j׀NhAH:LR;yV;k$`]%O|' ue}An-ش#b{W]_ZȰ9N]wL0x0Nos](_ϸuwUY]gŰuZ %WA"k`#zE,K0MRNtЗ:.4ߺ8bW _mI;*kw L)܊]lͻ?lDZH$ ڀ:F'}W[ EdoNmm2xxPG!WNݫM9-2ܓ.:,K1;߽|p_~>_#}/,s90l˩u^k@mq` >/Wg:?ajX?0ka% /GW?#Ŏi;Ga.RayÿЭ6ծ=;4"ݨf0DsU3" JzڜV&84KJ7S4"ee{ފSz$" #;ޚT ݦBB܁빙ٖ]6p('M;kcʺk gLMݒb$NIm ր).Xj& RVFEFp7iVUJf82ci4>!!FZjbegqEJjLN1 NS;31 uFӰ,'ȩqX j.]1miDm}iפmȡM$>>&+ QsV;}$&[u%GqFs"&Iz[ً՞5$؇;˭N$E[8g?`Nʮ*q@@zVlkw[.Kv5F#;lX7h[m׭WM- Xh$T}$Tz VjIw  ,58ʽ-d[ oOٸ|UA8'DrM-u70*\lc}3qKKux}iDkF q `U[b?T~ cn> }йB|m_DUR Lkv2@_șW++fwU/n$.?Jˆn*,ҡBBt%'.sv 3wʨ!2ZG].Nk9iwheXfaq)z$KCO/Gk){2pqYبmP)>VX;V5$$sEl.=\V-0}i&hPuRei7la.(5>tmJ%Kg)ڱ.f7|uI63+8ػm)})JU`p,ne2 ykK/J+$f|Mmu UzfR[>!j#EQm5˘k[y0 ;zmiZg|`DR!Ҹkԋ Nqugr)%kCWc=:X{MV[`bzT8GqGc4`IOU 1$xbjdw.ă)$w $܊נqb݁'{E1uG5DBT MƆbI=N)3'ߊd2u4G60{l|ҠzT1mu]m4K6j@ I㚨ے2rܛ/SR'fwd^痓$NPrl|.+и+ŬhaWMFH 6ڻ[zWw[o W诃}?评fw"g%F v򯸯#3&~ٲcM>+uWLSlBY[%fyO?ʼϟⲡ|9͟c-ıP{\~`z?< guiqɠn][k1I7c*K1iu\d2^ Df"G n@ZaoS:ݰjvF)'Q\$ X;@=!ԩqM$Erq֎n' +(oCo-MՓ:ȲX%0aõ6,[nO?_1Efe]z:N\'W~ SuGI&1#G(/F e,G.2" hۿ zc^]ZQXFa=KW [cLy4 IޮRzEX)@PߡgAWt$zE# yI* ~]Bg}G[%E>F҂[qMKh0h&#HuwMn$9╖ \HX1`jѶU+1S yIaMv\u-SxsH(|{>=OU<9ZJ%e̤z3_ w|)"*ʺdq[IrcK#p)*AjJ\=ٞvFx>wR7vKD*AiOEHn6ޔ۷}ޅKbi .> m3QWڢx3yPZj\]PTCyO1_ʕԷ`TU%%Ax3"}۶AI'jo[Il7P0}"=+w(.*Ӎ{Гn<{ 4"`ja!-ޖm$C[c֪`m+]=> @|95U-u:qIF4̧[?=uU}AL;q*q9vp֔w'+ks8|NP1 vݣ|{M<ﳗIx+",k-< jkvs_o*ZsmCnGJKt2^ornh?\`jgF iX p4aH]3oX{I#coMq+[x|5uϵTUPjiKAit9[![|Aqpxh;|W+>%7~$5*aו[H*4ME3Y+n-*UWDT1L=v'cBQde60At#=k Y 5N-m*%vYL^cojSAqq[e1C%E&LwqTS!, oD)T;״۶1ݸ8nxw48EOG_KfxkZڰ~1-®./5,p؁l=# g,Է|#tb ὼW70-%Z] '(vDHx]`i,kA \cGORf˧ery'>b u"?*1p1ъtri ,]:fk[ku0 RRrA lN:#dt+na\6lCy qsK$k_m>.319s^.5gZ$s<݊>+/L#/UOx?K^YWd9e{7Kre !1 ?6urUo4=·mCɵ n}ⴽVB2{5;mO"6k=oN?PCr_mAE`|1B=MΘ 6 oNyҟNk[al*msk~BK3Mz"Id Z?Juװ5V,@H/aF))hH/Pk1z/I|k.YLH?_sot&m'̚#>:q8St~3iw_1@,v8n~d0>KGo:)?'0KxeˆE1jctէQۚWD3$Sho['Z!8\ArC zb LRUJ64Atη\cg,@:j KC3jPX[|tIYv=BBG~i۵a$B#W>~˳,<8 173\p#57{<aK|qzyy|Ϩ/=s5`Yà1yK`Fdɳc.h1ݏ5ß+C,PK_#IKrn;oXQu|G))x)$N]mrVqqVYŀ<7mjKC]ХOgMnS,HJݍ=&#G rWt'(֊[N4'R^#2[QbEuԈWV-! ur$"]7-Pa#zgm Wт!&|&bU~o1Kwj7ع,nkn*tX/v6!/ ؟I%][.emJϊγ:r}¿uvMCK}GxniZcޒPce-83zQI (abH3oF*.e\!$,MڋDJRMP,gpXפφcSZ>phST'6UlPal_l%qu4 }"вVQ܏z"?+^4hy9&/En Zc!XO>j9-bX\#s?.Zrq9;gQ6]fY?|5V Z]A>ѻKez+aWK1]6U-aVN[C3{6XPYgZ,%0ǹXrIʝ.50i=;MZCZu߽Olw-8lF[{W0^rG 8D1;U7E#;opų ZrƷ.]$:SmPאb|1 RA'omg ZKVrD+i iۃϳ \sd]Xml`1fpk Lu=ԣ?%.cY`:ER-.QI֚D&@\Ⱥm)V"Uֽa𸟆Ez.`/GɑNQf06,<|>cMr7^.AWc/%%R=`,ֵ̛ xLV#{BO}Kf6?&˰,o>#b4ǰs; `|qgҜWli(z"-ն?#ZnK7Z56&C=E;Iѭ6.3 nd*z6741,؞GʍL]YULRx,^cw]v4FRHKngwuK^^ᘫ2v3 0 . Uo3- zzV; cܺSAjKtVw|[ٸ@Lŋ/Нk>M#h4~dn06%9ĕ:= wNoӝ Jaz o=)A'?`]Gz{~ө83WW:t@~h>IZE'ʬ;։5&P7OQw- lzn$6ٸ-0WyD+Z,m!F5&\mE )6 NMZ-PFTh }b\bY9` cdH:B=iJ_h PiN\jҩ^+Nրn6MT=Y.[~$Pwv@nh)=X.K}+X"2+)1* _-]g"̺#-x;,`mڛHo_c}~ Ɋ_E>y?yQ`K/Mξp}c$౗n'.jjPד%W%#,Hh!vbwIδw-'r7ޭ-4 "n*jm5)oDSg8nBm_j7~si-+l/\m} }Eyk~AF5՟ksb11eq> ̒JABnx'zhvg7ǵVC-s""*ҦLU=jy-NMrQ(I-Ӆn_3sy6ŭ`&50~f_; wG/ḳn-鹷찝 `YnL`c nl=k|itMtOӖ?S |GĤW'q;jUx8ɿw?1 *O],:4=]an:,l@kR\J`!j=-yM %Y\Yk`Ljo|eWKdK0"'4ݍ"e-뼏SIo?{oZE$ i5ÆBjK\VL|hTs1|΋X7ҫ׸|+SI'&c:5ùtٸIVLwXxH\F(ƕ2jQܬFksLAW]jyQۋ -kErfc-0w2*_vq6]?Kr GTcŌE/ ȦN+t4y[W& R؎ͼ Đ6hs1D,O%4-˱}`(^v؜+:\?2˖2x_ ,N"=o1,H]#AWtNp]b EJ)řcc>^?{;V{Yaq/+~3@F4\-3F32V޺E*>]|Vei'a xG@C4h>>&`Xݷ \:UH66!-^’J'7I2b.Y*Q'Rlb)=!'GK;3g 5 Xo[9mMʒRRؘ|2/mݑ"fMikƥZEZI;wމU[DCWIx ]n(}5؋+tOLIBl_j.(}ٰvWCs8K$ۓl۰<N^r|oӶ1&3)S5s,AߚI$yZN,+m֎.k[E.n.17rv ?Y3>3lf֙KBa$(8 VK ѩn,e pyo핂2i+`VVe\\.8rG򣉸.Smm{ѣ'UrGVeYI8lX$ DJ"& ػ`*qX3IxKGYf:9u-#ڛw/ްx{?2 v3K"ZFָZW'uS~ݲ_BGb`lXԶ`Ѣ@AlDa74l`UxCfg[x%6gX[8ˠm!jH#:eweA,\* C$\'*wrn|0uP\tüvSfX3T>J_:{.Ƕ? 2V1@F y\srXuub=c҄푕(ǽ>/ vE, +Fk}n*1{e5Dxn yS'P&*\`EpYyۊ1ݽ6|zSK[QeF\[Kx ebp8T[kOh/ҡI4Rmm3%3A0#Fѽk ʘЦB+qBTAuV L)\H9S4ev.?u]5ni_ uʕ7o'~ q5a##VX,jdhK8FMEr4@ uӾ$НW0il^7QYٳs  +L[@2'ndZ,K\ *94M>ʮ{p-&CRwtz]EBl8;ƒFĞ~'C}XmCo޺N! $b)5CSToÝ3,E~UEA]R߆Nn۝K]2Sfm@qmB${Vk,epDc [;toJ.Fe`mStJoz=G핃Z7 c4] -, ?Q+]TP1֚.]RڼI'>iK-?AПecmАO~MVs+J[Tۢ\HWB^gҕ~P0ci5"TĔl{x\IX5tyKipyi%`hfn\KQ/ 5}~-@E>ʆF1X$f1I ";RWAS)mza-qLIZ.{kwZvDћ~?^\V,Xl3G8{ygMa\;og Y[v}IS]!9I/3o':`tXbzۗi t e7q\6Wrp[]dj02vK^u>][ČWXmݩRr?kţYn?ݟ1 ܓԘk/@#f;OT6qd-˘0E:ڪx;AYsT5$=+/$~&ex:7q"]fE?Rk{|7r+qgyJ= b+ɅS;^[Y{p=)ٵ⬄Ʀ>W|1 \H ?jBx8c}YIˍc\8a<b XvE*<~Qhb5,n-rCG;W0u0^.Л.0R`};T(ћD=Oiȹbt@OʲRM{G$9JbyQLa܀gNkbqpLTcrߢH?g:]I>*X8nIkvnq@ք<0fլEɴʪ ͙%%0pK.L^0~) nhLs9=my>k06<|9%%GY v&ad)b0p18 @"J,oy}y8Qt]?`s6'b \X[=J ._o*[$eWڭ~ lv)3V1x\:_hAy*}vY8Pݹ*ԥ]yqXs\K:e ۷b}gҫ>:댌bdoG?"LxڌR]1x;fh0]>hym2j>fF& Y]4KYn),O2!n.5+m}iGg/*wY{bԔPm pkr\YO]kl6@i7K&".&ڛcM廮Zց Zzf/ɕl%+nbJXv~+TMhc(TZS1;a wL#L5 βblC4(Jy-+. 0RF7 jy9N+}M8̥C-./w?*|D-ծ;ZobUW~TFIޣzL|lv(ooӦa5W:ESmKG ̢Cq?($/>̯>V x{%Rn5跩O?zݔ/k]GI}YJiF[Xwo7͵#"@J+j0׳IݘAysʿZ¥U.iaE2 ApvVƻvh`T>TfIN jXuuH1g>{p>h?Jކ'ja*[͜c\L@'Ft r[(b. ^ɔVVMۥqI9vjL56hqfXEbˉh1QT"VmpZ\oP.%H$ʛe`AʶY\Ꙑcjh_r{f]ote{va،żKc-=;:bK :rqVl3D!탹EJ[CxSU)0&D>Ow2F7bpy/ġV߸k32x#[V wY&H15|z6eqYxy/dRP$y/8aR2 tBQgeƬ ̟ I(v{P+1۸FB3  #)^ȶ _7hUoy|U ѽd7/Lnb@kIґMŮ')C榗V1lEDj8cG AR$j{SNM%VB'GleUo~b(׊%H>JU9$x(m#z[ùkl Trh['[cx橭U[20 ojDN{:+Ճn7=96 -\8oBǘO5e R$iѽ+ur}c:w˗2YKVꓷҹ߉á䘃:~j.[}aW} VXL]8ƏCg2NF˘aqV! \./u]ڸ` |UйccTŒ:DZ$6cVI$;SJJ GCP 1OAPOU4i$5.BV@RCSkѢsi% 6)Eiz3\7nM=E [tm48wOٺC6O?,5-hagLɉ U.pn1UϨ#HtԸ[7եgSV*+i;2CzþGբˊ- e[apr`}*Oa cKQKpb 7 ,KE'QaRխ~6쟩HaC]ڌ@ؼݼcpw+y>mʹf>)-C:=&u0d½ ,!D)7S=yucGo3lF[l s11:ѩg"t0`O rZFv;1K%5|>Ձ{'iIv6;CapwU06s `I?h֙A^{tT8ld1V v<񦽝/Fٿı6k/2iCk~QgR4yKJ{ewq8[Zgl4zVWLre i{VqrSқQJ٢[0aŷmѣa}z,/ Z>k`؃_7/?ͣY_WT?gy4\.2\V$WUMr \XC z{dzzS7|';g{^bx+!8YnH#~kez{ZsoCa;Rχt%u%I"y0?:N{X\bWvĩXj(t}?'83Tu:$Ȯ=25,*CA[8 iSLjv ~sΝ^q]5gQ]~M 98)uWt~qkzc匚卮\er` p?2GHSn؂;qGZedn@OUܹmςͷ%j31[2l_-s#_B!BnKcH.=8&͑kvJ Yg:GڔHe?Z sQplE,"}M$l#Qf,n#!Ͷs czΛ0_p, "P]cJ^UۧZvbU ?(.eot7=$'.D6XEѽX냢NDiQvhɱ}9Ce,=6u09s`-aw*KɿC7gyvyꞘg8L^;JBmq=z:vFo+5OZ=6q`Q,0W蝷Uo.[5V{V *M 97.KAIY']\_1v6ӿTJI*4Ƥq)ʬf9FR"X ``Bb;Tm1N) p Y `*h$;DU)Kp/֬D{v'2lh:C;љڼ7*v'E0h+3oJ[e}!,MedBZӷ3.IR<5ܝL-] `dU*OX iB_m ~VfnZn ~2VxA6u6E+k;(=KnMh7cxvH֫b jy8omf)Bڰ֤֎W5`';s$`maYwUmįfT+{'UkR3oyKRU<1_۴1_ p>zRvbz9YҹNGsVW ^bڛ !rM )'sU[o1-x%IK{#<{U71^Cw4tSg'xL:GmHb' ]18GޫwPI*PU f.Ib#$w[IcsBjDIWcxz4i*fCM8e_z,k5iX='k(׀bFe < uaZmѐD++ccW<H?CY? 2h(ѭE giWA * *AZqq@( ı<  0&i^<@pM= sknRV' P۶ŒdP-Xd^T Wh{PDRۡ +ʶeb,f n⃥EA絻|*R] u]D ;E#[Kޥcjݿ!ɓyH/[c`xԴP{zq;0cv+0fӢW>ǵFb۽qz5iqTʰX|mM*ȶ'Ow\fڗevOٟ SIzb&+-q-yq6w6J)ýkX&?l\mt$ҒOȔo (Aslᘋ*#]LPZVLp1ĔÖdPYA&`XonøP֜ڴL[5"'NrkF3$: fPVH>_{3~DGjշ7,Oֽw뭲|mXBW=oRJdyv+\>]|VqVuLeL-kO ڈz4lgg)adـ=w1-8WHeFjyv!a_À׬ ୷ r4D}/8n^bDZ$Rel2궷-af2\So^2|cGZ ϴxC[}˅5cjK~fdtڽOFʁl-al)6e5HGj&HiÃ%eKTMyF \e<{V|`m2BQ +Ƌݦg]RXv`e f-ĩovU2a74'* m(SgY{ ln]fbv'wHEr_\v3e> ;6`}Tҍ99/X&|jNtqYl(Kk:;-!K 0yK*>7k?п3Ϻg3ri|-ݵr}멛VewYJlng*H{(ZG讝KVa۸m^+ A;Wn?я5ty R˓MG-%1F `p{mmYn(kfg[..6G b8YhC6 5-#6hl]FvX^Aez֗OKo& jՂ +U<2_ Ă{O5$R2h{iXq/D14NVhuFu19]\D ZÛeo+ogL>w:1k?2l)1 {6ǖiGuxe$'ibRxb1~DzpB[6%ʗzC1ۉx{JI\ TJ>:ŬS`B >{Z,yGF&WRGޔ9Mtnm=pvl TuN{W;OfX|c0~B8߆N=Rgz/n-..tzC| s|^[O^朦xϖ߳X/xPwq7J/z@V7x?v˳-0=Ճnh&qeTve%ÏI;?fl'3nqRК>%6_[?R)yH;klEA[§lx4a ԩdmP$yf_OT&#7lb#>]7gqUrLqk7ELh^\h; <7UME%(ֵcsFඡ$QmԹtUeZil34+솣f1LVf%Q%*7d?{7ULv SuA oK7?4S)do^ - !F[k]fgH$Mr<|e|Jd\E˜Q]*Dۿ#q1?xy~`sKVq=W1jVA$W蟊SK؛na<DxųyYӌFg|WVR"K]zH>z?/LKgVplmwpivy'llyjBH)&I~Ngkǹn.=;ESv.|>m<ݬ-rbJiK:b/S!cclK[|b]*.MB`?"MH%m w1:vRGjcƳnƒPrS)I;ҋoM˺ߊV;jEύah-շnՐ]:M$jql5ra\ @M(\ ;ZtN~#kHlޗbJQNkB?jqɑ'lS;V̺ҳ+َMJI)]n i[|Ay1i9WE+nÈ7?זX<{UX{WmQo@S:XE7+Oֳ_>걤I<ݺf"U8TV]<-I{ 9Yi(} MG-©7;|blE4B׳%>.kZ}i iwTd=eڶ-ⴐ,Pj C,rUo q@=9=}Vww8e߸^- r^ KSR۾vFo"YKl<J5T_-صQ>՝0YF"YdPEJ} -ePq $-;T7?le닷.U,ڷp}^<68PmQ<{NĉV2=bj+E.@lN^DvZdzp@&`*tqҗO*葇G GWNu!G2D v?ҰؕIۋ⼜.|'0oqܛ$=k~.2 ˊ~uy_~U|+X:Vfnšsc3ky`+K.6?cmO֒04^gIc0]rHo_7.VNP%,MD5$ϱYnX"4T8@&is2Tkb7 -,n)*-XN߱<pẚ=-ZW,}G̫޴䪈{)ֶe]˼hj!*ze7wR& ֛^? L][ qĂ{I{!]n?ʭ.| rČ%ǁ%>+݄Ry??3&nM*!\ Q>vܧ%_K[mtn;.[3gS뺃zr+sގf`v2؟& ܧMyUuwY0=YJ4ͻkٺDuWKT\\y6 {7nAɩ8.^v)#d6W? p"0O}&C6# IJ;31K<'Һ8^8H(krh^˽Y޴|1 ʀYtg᭿-trIVLZ=vOpo|w '#^?\.[m_jAr 97(%g7-~SU }Mfݛ׆МZwDB;OE\egV۩VFR<bw]5|_u&.Ljs;=~A){m#f-ZrmeLDoA6QZFBo bݳ2a$z1<̿i36R7[ Ԥ~ G':*AYnn'=y)QelGzȳqי>nboi:KAJe{w!JY,&KL"BLODr͠8x;ThV*rR`@NUmʑ_Bfݶk1x]qg[&<<*0vQ?OJ_\>*ج6OQqmXp^֪Jjo24$ F|v4\YYq.KaH"*g/f⛪!/.7hmjvsKn+e_o=f7h1MtlڛqQ-c`'U),|,Z>~i]Tp:=FJЙv])g*| &ۓPIW_ʘa!n&R60X_իvJmtjd_a^QZSlq;QBQ}6q[T E[\n-FNInZONq|R(\%JA3:M jPZ ( ƌl ,Osʗ5j 09RF# 4GϪ& K"A1W0l<VcޫᕮW@%܊9TJU>øB_n5#eT)SUA(]GK 4XW /Grkxm_nYO>8Ѿ/.ZQM|ÜӄȱWA?-w{[Vg_/b5f+Y^{{5~}GҘh{r?A_9>?6}?M[2Q~ȹ`_b=,}̚e>önc}=|RkƗY?H`gx V7 j`|:ؓ=5Wo%/'cIc2 >EA,(V `ͭDWmO}Kbpϊ@3n#YH/V~;J9vv%Tsq XoAn1f/Ba%?`/5яϦW(hٔ͂L͏.$)>՞*UYOڿNm~mW.WfGicbCizi$ڴsn\t/qADI3I#.d0b/ rUUtR$1 855Ha,2j׳op#L1S_vo"c-u-G!T\kQ৔~ Ōw![':A9;Z0simeVNz:W9 %#HL1wūdc?_Jntݒ:E 1o[h,ֹ:c=o6]qmsxiIv>FI~{.kl}xDX-bAkyu@ ȃ G>E ƍ|C9E' l66ջvobZϘEcʳI ߸īOnQX|^Se`QZv{acik1nWCY.0;7]l4F"Z-LAJTHL8.j{8gKYzج=-?٤ Sz:|Px.q_2+ ߹|mLj٦:0[Z}>J7.a7+g|N!Q- 6\_[`oJs+]&nPk}Ge-w,uZ1.zx>C馏]3t0W@WiFx>a @^с-;zwƜi&~~?៏49I'Vᳬnae|f H*DWs,>uzĂ$}bO\NikGG8pRퟳI\0c.{-uH#hײ3,B]6b [?z.8bDӏ3#b%LcC*lk{[] Lkh,czlp K0s U):>QZ9)gkl0=XomRւ{؟4f1JO y~>.U䍉3 km\뾍XK*$1f ŌJ$ >SikdEFGMeg[|⍁ckd-ɰlb7um\|GȄoGo+w*'0oFl12rՖvSdY0Fh:Zg{,-pvrv2N+yM2<7^cƲbI,p kn6#޽W:n3cdJxcjSU>D~?-e(BQԙX3__ p.N"#YEϓe!q;qAF2 ,x 0Fpga_HV1Cwu˲wLZF5elV#oqII*XzgC,ΰY[ Bo"3k8ՙ[Ea@|'ç|pM-ĥ+N˹#Bm=^oo>fX\rܬljIF|MX6[]h.Y,6$Uؒ_tݬ_/۾wU:gqB7[e6]5T*K-#ƒə)tuvK<1E_j 8t\ˬcz' aZ.xw;OpeU5>y-˷^&gͯ,Mig%Eٚ\u-gZzOfs;c5v,*0:ue^}<>.9w٬|<|WLO?VJ3u^u=^bppXIi+?L0FҖ}j;Vq>rְ]^7l|?ȯFrI؛l |*һIs1\7of m]4ʢqg2Vcⓨz8g6mWgOz|8+ mu0{{>?eݜq9dpH\_?Yb6 4vYn8t2t3Fdec6;X0W3 |&ڳɟi[F wOV5rJVeL룿֞<v.an.w!I4rS) y"Gj>1"io0f6[M¾G&:7٣RZ |ҦnjZf㠾:2>RP{8[+(^$)Qz6L1 n 1YJ!ٳq@9h_IIWtl2Ì].[+^o?786`<&//hxl04$_g]*jїi ^qnb ."yIfxA\ޒHE4,3EBڅKNHIalڿvwQ;}h!z2]@7,&>)*@>vSDZQ}K;c"֐dx۰v(R bh[9qAqF@$ LiHm9GǖIXM{6Un1WHenalj'JCZPo?[cp/ecj`fU {׃) ySx¾sKv2/b,F+vlí.o 0_-o_>9ϑ%Gc .t.cAc*OWg @H|LCbktq~',*o"W?+(6Wt2<6]pk׊x·o1\&S.\v^~tIpog~XÎ v6B`W3Ζ찝ӑ׋>\M}E<6o]\嘋?a\kWrF1f>T5a76pgSM}#+<\黋'$Xb5}cQO3<ɝ+wC$1ó,AZviυi'' .k؛!URwM=.7@Akؕ"\ NSM}f3q 9e6\' Ԍ>[V%=IJ-+'|@. %RՂZen夊}Vդu,e6x3FUk16 ;ISi:4pm%Ikrd%{Nzn̠[tfX_yA-f+W,X*ISھ` 5ó\*+m|}u^*saPLӨl":\#UD}j4·ÌnI.3eal +_|סsN =b-m^t Lp| &2=?7ʄ=L=krI{.u,=;c<\c('gUc+qTܖ:pYYcmm$sZs| =\9;ߧ,cq8KQL5vOcA[ZHyT8jdR?K[]It~Ecg^UZ3 51~+D`D͆]eg8>oƺ#`?Z9jdYY]&mmtcsq VT% Kn1]-͈+9zG"Y58xk!O"k:HS|,ɲ7J1{i`D|`ׯCLC1&2kwq]|AČ HO?F3*γLf-ŭP~c-ξKog: a3]e~7/RGsKnGz ;z +WWu}  tI|CqYUXB7)q[;{ק\qߖyҜ:m3ܟ VϴW7_fQ?z2M#rb|ݙqR_il^AښދҤ>,pc#Z2eҚ&QP0Y$vIJ 6ӵaOkM8aH)ڻ!Vޥ5rɍȅO^r[Og,I\/'Xu\_kugb6 ^HK?>xR?gwl8^D`9;ƾOaU0ZpGҾ||?c2_/F\ˎt8˰9"[f,ެe6$]Ҫ58g䕳 UTit=L6)J+w ң eC-52 <ո.޿6ps]B%eIuϋ˯N'L7ʙ86>9>*O ݛuDʮ4;(}dS>vc1+~.Hu/mrɛ -rq"嘫< 6X7sMk /gG vFރo*U![LRr8>٫+dqyXrKVrk^en.T\I]^f`fx\ZP -O9;)%fLF4]#z[[mٺ b٧&^g]W@^Tc sU3ܖڥNUE8&ϥKCq8smGi'Iڡ ( }pvڒN쏆W) 3(Թ$ic> UUn@5,u w5<ڶ_k-2caSx3=E\)- xϵTpeM6Qi1bݪ]P֊]AU(iI݋._$1ahuIעbz2]+\6]JWԖuoQ;U-sJr3w݆)`i16DܯcUl5e)HIrĥ8 V6' jplm+IA] ^q%^813gwâ_0l3 \N)Sc٩bha3,*oØ* ƓvtluYa-۽v ǰbc-/L`ojVn 1KO韎x=Z%5 N@ 8Vu_,?C? ;@+|J81l ' |w: 3;],5"n$~|VtVoqj!C1zX`˖0gr}U1)*a:i-P8szDO7N[5^L8uIx[a2Wȫxbrv%GO=|(,+a0Ou6s1KISz/نDV~7|P^-Ff9H:8\*=-kAߺ]w FL.8q3Mt7[cxKW~!VI6iП-ೆc Fʲ^R7-W0ψ=t.30pPVK>#_3n,|A==kgyb.#z+Tj7l75F/=&˰JIpG}ƙa&lԱG] y\wN]Vc]szLmY EW<3/6П¸E̮vpx|5ѣ)ET0-Dkڶ.sj1(R7$n;Z/kLKnv_L0{-Q aslnY,ZI[ڥ?Ɠ`pK^lq%XjN+ݠH?CxIp։5Di_.pWx Vs<4+v dXۊ0Gl_-'žO~+|ߟ_OޏC~?6s,f G$.A]̳Ln/fZǾXFDž<ef#z/?O 0A |2)ӫ{o_%=)i?'(>ˀL>]8pvE0X{ :  (ʾW܍~7x>*X7=ACB#s{=]"*`vtqX|,'o_wHG/םv8rHW#0oQò:9z6cKtO7\ \tHMps?ڮ#&hӓ7`W9#_gP]j83﹯3~7\Y#H>8%s8߉y-ıD5w~kθP;||ojϟ?y3UFsٕK^$I5fz 5e }cy~fo.5~8|T @!;9?z \K|":o^g? Ǔz; žY]ܧP@3謲jg'I/3-ۅgbmXuK*=C7?5ܚӏ /NBz`plo ά-~h HLGB"F1(9şowY|_z 5տi`!?#ZCmXA|Pn(7X7mK^rl|.F2}fJYZZ'R-hW[#jӁ~и}7*U議ׯWu kVM.M(twY2fJ:`i!/m2T6M꘡ .ltvv@0Xl1_AM][Ct]Kv hw]9/pxU#̥ILNTѕdq>6kYuvu=aA&7I1ǜỊmiQÄm}UL~U tEGذT{t+nUWzolZqXϲ^/PKȔ0A%\GJ12h*\,llL0f=iy*Kލ [тP팻Pnɨ;vQL)P{܋+k͟чffßWn +`:}kUlPY|7gqHAڼXIux 7gsr86&#nfʭo mXEsJ:S @;ԷEֻ܅ME Ebdzo9h\N/Ya.0\-wRl݌ ( La ߱i|=&iH,߉~+zxcj_qͼqnÒ9?1^׭3,Cڹl0[ ʓ>ߍ\g|'ٟJ"m]@4V܏M-FYx7qm&95xˆ_Ϯ^FetEѶ+jQxr6] i8\®qU4peP;5 VaE`DO\uwS&}*MzhMfL8I'sC9ʲܾ>#JbٲV>H+Yv$w5bF$V`ߣEr-l"5J/0Ɂf8{O(1 zͶμ9)pOQu>d7î%XpzSki9O*1-N*C=#8:2<_.6عp3F?鼴-ޘ] ot[')#(Kgo UmY(H>o*d]mX\U22:H|=C+B uNv<Fvhaé87bC&-c3\M>wb)Y6maTf N{i|.m.Bb71L1Ճ&9~jWASb.\6(j]`ZSl8H*-O>eKw{r˷0([ɫo`YQEҀf ߇Re75X[^mweqi§픾 3+Hj43rGEp =mXasLhmQi3e'hNYrO[gJ\foڡJލ%v=%lڍ%V6bv@ZJEW]$ڻ'Ѧ*Qҏ+3xK j4 DLMmͯ(ib'Zve62:na^ BcfSʣflRݻsUlۃޏ (UxUi啟ʲ޿|+8q1']J?qW:揊,DNZ}-)]?ͦOMFwF#n9c]gI#rU K#L;!ќe^a7"GyvWiDxp mŬYP#[W.ݶoJ%F_ _'ȇ=\1Q/OtP].i$ZSϹgY1W>46P=6W7&оs͎ s.ārݻ-e;?JlOM[PckR)~O6rI.x v[6),^H+C,U7GUzQ[.D,ٸ=DI Mٟ=Yx eBIUɰ-ė'sZ7(K8]w3E'bVeOӊ6>&vF_[ 啽nx>ArnHoaL_t[nJyܧ=hYr.}h[=sm70?cUf= שdZn_AƶǚI˛†Hw2j{dkn#_wr;-J߰C]ų `ŒEvjm1GX6Sh-D UiL Y@D Pm;u+akQʑ3ϋ  ϝxnMK+Ee"gG&L^τs.gwI?`}+?AtO\=+swnu +Ǐ^=+6z,p-!Zנ~[uT/`p3>LM<̷_øǨ. 8_5tf1{O <yi瓓` |=r +ٯ]c,M9~[u<:7|}w?FKِ#IMytzSs׎:ArTTT.cCbv'Wgg 'tZH#|R蜱Ρ ,H F`\&<5׋㼌mGo70[k`"I-y|ΞU1m;X|s_AϞJ-}]3YS[z,W>/fx1`Ok忙)#ƫ98߉+s7E3n>6iyM}7{Q>SS/ss1{@,E{urW b=5bGewOQ T-pɡo3փ[K|qgS '$v[hNzd5ݠ~,H狅y2t]9`-+ZFZ؈6 |#E'*THn5;YD)NMuL͸,L] $7\eM$ T/bof[ֈ`b#4('pLRsI 2 y6>j^y8cG4ZJI?M]ewO6M߀Tx@'?;b>&TNULSmBrЩ޻XP #;aH.+_N|cV҇l87'm""\+yMWj`sMs#mǓ0c nY5h]At7[{ h, 7SY?:L9'7 >Uqև ɰO+|;^r8|V8RC*wT; r|<5>+aez|Rf=y;Z˱.x$eo޻?g`. Mefܸ1ڷ5Wg|G?UtGA]b17q퓯mcU⸘?8kx.ڟ`Q%$π<(F ʡ1f!DPI\.xF#'e#k^7qvR)TCiP2l2Ecpi &IL|p_slTH?wO]_ #a6z ӳL~7{+߲[td] %bMJA둟o{2a-@ B7j\r6j[wCsU9O(5 ݥ sԶ㚥-e[^$~B)4"uesҴb^U-o}B+6_u7,Na8qxS$l.PڴÜ+ҧ&\=EFj-h#7^Ϳ1 2eTuK $~?eܟ8c6a;':)w&Ӕa@*.,P q2-1}0 '#j^6΢TqVn&U@wXV`>1&7l3Q@ U]Ʀ^#BxLwEW1 Q%G=)~.# %kRqbh!wBy 0 j CXD);] uO+rt `WW }YcK,%Kk3^ա0#iPRU @fEX5IT9 )$2w .#e UaYQI4t^!m#x3Z\-M>aZ%0i17ʣ1jު[ UjJK{[Btf\xF ؑV!AlimAlM)/P6,81Hv5G 4e[6}ԹaU3ebqHz:-")ؒR5b4IܤE+ZfYL-~'16Y}MHr/a6-{?x2y_~D 38kV`ޡGgӖe7LݺĴF$w5xX+?1.O~?>`xL -:*Pں ʛ&A+Wv;ea6 :Gfl.8/|Sh.e(RO2ǚۇ[[dyJz4 u>-|Eܪ#׳L HPT Oo[WkEٺ6"Nր_#aUQOأ&=.=IUX6 \V;Fu$k>\3ӡ 7fMe ԽQ6Rv 4>Px!>3ż u #jśMuü.8䍣ͺ=6{y3t72lǹ ҟUe3,?2F~!,Xcle?]V jSt~2ً c~afο? ƅl)y3GVn]uf_kg-ͼ |ϚT>/R-l߇:'* r i E'FoMX&f'jN_Q1Ƣ3۟PQ5z6pH1ZFlA''&X R+xwl_`BxQo .L8$]mӝ:4Y`QWh{ ͢V5ʜcabU`>W'4EͶŮ׍|F}'=ͱ@ `{8G'^ËG++KX,c\#*b)t pRXa~O'&F3|+||v~2=P9 ]抅ɶwهV G+1e<<Ƕʗ%Eɝ|66#<6΅UҺx㠬oX];Ծ`C˻+o|{LktWܽπ@ O \v *_?) ~6f[®r*GyE} />,Rk^fK.?NMfP{aZ`}8ygJtXa<;`ξS/m:?\o? ^U|yG 2?\3!cCaJG - -_Fn?0xbx4}~CIlpmA;(g E5gM}"vڴ9eRA=4JGL t,2;,3RZc8K6C`miمeqÃG-~Cb3|f>>&f;I.H @ ,OjaX)Et% -(@Eb۾R,'Թ'ٿh] vZUkLT̼lK 3$PHدz||"ߙwGM&5̙Ägڐe v#Z|_B>(a1(1+RBXe@u]s#[HCu[Zsb6SZAKbQ2*eW8E4|?~.WL].eCWFD*EtVP1ӉGap6Qxӟ՛+W cy*Sm6YË9Mq9i 鬷,Ѹސ?$[Z"}Ҳͳu_Py8[<]eawdiY}bYb]Hpѣf&'`N#Wυn<'"J@d uY|#$&\BII mpP*7sR7ٝKO[ʬcP ֚oHO;=k8l=Wd(+Kiz_{GźWMs l6jzd.Dעc8Vm7uZvS zϖNn31aV-UbH'ZG/[ $ia6;n@-5TR.!ͶÔϭ-m&'aCo@Z@\u:]zGS^(NݎƓtBSjqɅ?V7DDVh$bdfY"՜]a5.>$.jmMJ"lZQܨUʐwh6ܛiݠDc6%|NJXè laEO{ۊ͈KL;&~Pv֛*o[k|A3&w>h)?GwxSxch> 5,fMג?fl넶wu/3Qb'԰yF0mVݥЈ+p[8ʰB5JK.ydJݴG4 [|kMoBfɪnvVԔP-[vԷNҧғ06ujÂSV<ܿ$19%Ќ5@=y:'t>_k/q{otX+;VmY 2腥|7qWwa#;H1Bs\sװbs,FݹsEFff5|.)4)r OG/ɦ?<ӤzweǓ֘-a,ob e[P]!Šnx~Wdž׍ ߆dW/'%~/#&E 2qfA̻Wam1ɞ~U}`]Sj9"_*Յ y >׭Ⱦ.Kc N>>KjGEcx'Ts^a]]gwkpŽp̥tǎ?&7G+ c[35ms85Ѥ_x8dUGs(>L[rbK 6I[M sn+S q730?Z,WvcM'`qOa^yfY< 3\1l~#*ʬ'Ez<T;3}Qod@ j~cƸugqdjKz:P~昝 醹kşq~G*c-YElʽ?9ߍY~Sx2_BV@a_2gl~Orqq|+:W&n鈱}` 9|o 4rg?;&3asӟpTn+_cgT0ȱoqZ'elBNs+f}z{gƤ2wT#6(M3MݝL'S3Ngĩ*#YWP)7Y}h>L6Ya%?ڳRmKGi'>hkƒSȢNX2e&(Y~MeIm럋 g%xOx7#'Rq2]u`SHFv}o[;@?|Ǖ>[=#/Sιю3q'f?ʩ(ڼ ^L6Ѽ?𫢱;9#pldv]̃$"'lq籄qmy׃>ǎo|eP7w$\3N,[v&O|;Ɣf${VgFɾGU 3g?Ĭ";IX >¾vR=NP| unV>y95i/G[JT}mfsכ&u@m^+#+A sg^{򪋌Y<7Q /ʐY<7*6&Ɨ87"֚Jơ}څi?~K]nLkE}6Il zlV,6Hw W1Ne\[>ЍEro>[>sWFT?Zg~]Eo s{~:a2{zm܊+|ȋjyy0E{?'oNy.?"ՐDC]E1|e 1s_|oot_OoI5'1۪Fi9@m0P"֭N8~N T~oyJ'58/90`+yOej'hUJ:h7NTc+ {aaSޟ i[w ;m)Z94.3 J._ f9mlwKw3+sxgNoԫ[>8ҒJz0.mYw8/xQt=̙k}u}턽YᯰIbcjΣ蜳 &"[dӈÎ؁_.8| /|:ݼ @b{ksu<2HWEl)eΛM)%Х~{, $6cG֕3F775$^Ƃ{(ؔgz__,)r]SĒbIQ'mEr"c >m@hm$]7/ۊH=EZe| mB*2 =ǘ%Ru]9^6$.*j>js}>eAd*ϖaޯ5[qp7$,eɁ HApI5<~]^)*oCXxYFq|g|5+]1aFVO%tWB۳=3]Ų(fՔF5~01Cal`:ڹypEr{gr(}m=>L;Vt|6< cb v ֎'q>)^ly~3t,2x$@=޿;'?7꬧'|Kma1^5Z+mm`@k.N xXC_g?SnOܻ=ͱCV"ZvlOz ӿ :s ѽexP ?wd$fx%/cQ#i9\wVzK]bo[ BYݳeqVwWwGuH`~]:gWL?'MX؅yW#:2>Dk`g{`ʹ6OC`z0vqr/o/*OϋQ^?&y Y|}-(,>U#YH>֘xm^mcjqwbߍ5}?>>tcuoxeqZrm-Xɺ-D;y|7Vz#|VLr3˽a2껅4@mKX~CrZBZś@ ܹ<ԗ=a:SL1'ц6A#z9]-$ҽ? (9i$k9X \y@[eM`̱r~]޾Oo]JL[YUcտa č$(i4%۳d 6Qs/ }͝ ~zl׆e<͈ĂW֍dz׳ӓdU4a, vYJC oeX2jL@WR9WvAdjRF+# RHF|_#umˮWe\5b{L]EBt.(2d(义@ug Q~3K̟]; `] kH۾k1o +<6/Xtrn+Mr|"My3ƴ(ƀi0n nH ڕ#X;(*M ꈮf7wJ=Kz)=UF93cs`v>a=%Xy;Mz>?{<'!7tq[+n\ Ij_|lYqƾ|r~KoZNْRŢZŋweqHU^?ʼ&|b`Zxݎڳ^ph|LFķzc>7tەvwvEWKNyRWMq)p@;U7~_ũ5|^'&*ENI PҊؖ;8ŭᄅf(xuWط;@;OJPE.7$[1+^emxfp> .] |TƧjmHR\^`H5-ÂTϵBn$ä[K$o(!!yi2*1VW[8uRKH )JI+ƞYq$ n8[b|*OE(µ߽Tm_Bmöh3x.xc5-U,r q;B8x'Z%Xnb.j.DjY#q |Zg1J g,w ,pT޿|E[91&ҭy'KG}+n>$#0֮]3׫iGg3|l@*Z׸9C%Z?l8V"!B6nL%n 8K̺ \ ?+CLgz{zO[|9-OFa`-]'i] 6cop04P~Z1ͅBz+U^XPsjwAJf]C`ndY62ԅ^sɮN ;}Di]]a8VS.#n߽nI̚jќ1JƳA<*n͏][Φ<3 ͞ȡF+جћH؄fa7!8{?O#;71|E{^Uq"~ޮWxTczOw2g֞eY+oD!08T31x;Drӹ}V05vQ8, _.[ɀup<\<7~=+o>2A5Qk4̐)1w$CXyY[W=ˤ~,U˭53&97/;Wnƫ =_9>[{OkⳋOs_sc)1 7+AνFQsVaܱs8V|ǯV_S xV4Oj[/Egc:wV,\_hprp@6xXk ilI7 GcjT`gc[~շ l=\|P崙䓽-kE,{,a"@-S˰8as -mbjF++X6ne8eb`MU2_oM;Y`w(*r kF+yyڼy; f 0~VYsܔf:\rmzZkE8*XHSvX>6ʵwxhT*6`c@\16F\v_ 2]S6HR.q«-CJUk<╰fPYXl݄bp)BHaT> ^$+zJMz3Qm{?xUK{mft^hM%+f: ލ"g@NxH>lyT2h> =Q-0\*¤(ZwPbHxX9_o a\`=~K޷g1=D/q|NLe&'z6-m?UV 0_/7˓lUb٦ՃlG3WҷsLmmbSv*1O`5O`&8#7]Dm #>_[31 WRYX ׎L>^KH7/u:i+/7:';WɏmK1Fc~:2rڹr?xܕ?/Ŝx~R M|is(̷7& ץ՟xƶEq}#N׊o8oy$Qܱʭ-z*' /x+PFے~ær[EBio?CH|xqY.7rz9^vt+;H[Lʸ_2X,I-sV?h#j|}8j_OZ"teg>p5_q?#^ !$<~W)t}&O (^zk?0_geEu5|bMޜ\mw2nV4?xeOClkgŲDW;-'y 8|C1.kb) MY.gxChh^vF"!2Jnf.]ͷ4f qkjLf>m /533)佟^^F d[k:[nNW|6H0;^o\?~Sbsl-Πqڝ3V '^qS+yg1'pkGx_#I`8ܟ6bk8A5 Y㠓sqSwm28P[Meg-EYKd5փKgHVc=RiPqIh{eiDR6UeIE2  &"j+of(kf@1$J/O5ESLQ(C,o֎ mOYQ.G.am۷F1\R N̲mͭ'7]x,`̣<M8y?ע_BOm]'/boɦ5Է"՛B#d:x^,o{z8ه.dͧ-J^.- |Cœ]{sxʝ S?V?+^+ꎮ++]I+0lbkGdu_bvYoEz#伟&G.z$qSý`$n[4R3 ]r5cf-/H52=:~-G5׃+h>IԺ|rBf]+&#+'|P{/Te^psy'Q la1f'Ht>~2gjt]teL"2Jsoiߞ .smc AYokvqȭSf%anRGNt9et߾D?jYQe'dVڨYF iI` iu$ץόk~WK6G)vʮ1 ͢v^KVa+m١f1-ֳ{,x&Je}pxS=ήi)27tZ0m#*N"J9J8ʷ-h0H7֋VpGGQ+TS\{ZM7?Z[ ϭϥľ~}gcS*UC㸜٦3-l6N D=cS7rM/)\c#f?^\i#ױWn[2֑ˍJC*vUYe؝' ӗul"4&35Y{@"G- r-Z 4KR5Qmld9M^aX:ŰIm½O2\Fga1Px*10$g)}ʟfIꙿn 16pao {zak/OwVWsMtLa4Qn\A&d+,ӨYmC"$}+9(eF>rϺvUvQ.͜o7qvDtdıddFUa‰CI/nW^kh:'fIrjY-uC]wT! rꛦ,ޝf. c̮+Al09ܣ(JJؖ5r} Nm~0'& qV sCWɴh&ҍ1'XV@J>}5x`\ rYJ}B(_nfa.HӨ =>Cᬀ)5n@gb;,]gޘ;eo`dv:E]^ԟmܶrWS.)-[䶜D7p[Фq44QEgW0]Fmt@۰[b1ہEd=pq~Wr΄}|1k\Zu׽|EL.s _VEfĉo`9Jś%vfuW:'=nl^owTVK 3fHR1x'p_}G /q7/ÿNָUךVæ&B\BaO+i˩nf@\Kfӈ*B~ȿ㪄K㡖o\Tz||6ɰu.n&az[0r#R3S?/_~O_~ekcm;y\.=d }' |&:vPgmw1WgjYϐ1aamS/^+HL.MVu[<%׺GOd>جlM*qf Jy-?q^>Iu&~ :2 I^[[7156I)lWA7 VڎnE>gq|B=Xw&ݽǗ⾏-<0o9"v,uDXqIt10h=>:qs)wrݼ^ \u3񇸪o&TtYx;x5Խ;,5*Z6ߞ=*陸=&I_c,E:%$Gj~U-L*^?=06M,1I~gdTyjUC:o+9&[Z!?!c{>?/~<_k_|i费caOuSw1iIym)Gӕ~RiG^޾aj\'5FoQcܞ5^oy90Qӿڞenb/ܜUmuWY )eɑݟ` TqƗ/xeۊ{{Ԩ֛7IP^<]BK=mߊ:LT(;" v\:L-9>[`Z"!-XOeUb-_a@{w&~Y=>sׄ33/ 3^K>h`._X'kKƯ|oysOg{ 8^,}XŮPC6ÓܽgRGiYy_2&kdŽ=\\Vsp|s5xǏG_'91q,Υ[b{w=m,QZGgބ|&6*޺ē!q@⼏'|A(k'܌wNέtQ3 #Yr=6g=Us"J'%F_;|pVok Ԙ,)3,*Xw'@̛rF.(O4sa͍ԑX̹A;tԥYDJ\;#\&Rm bIvWcZVD6;Ȥ&7[ L$aS `/6z)DI${ 4[u=~b:+͠I©QOޒȒhGLAPw֒\R\鉢4P]ӵ-V"Z\bWVYzČJojR}#ߚyjnH]]`ݜa> cqyzfntK}+,#g3S` pD~^G`‗۱=ҡ~M0qWwXO k3B;m0G#ھ 4\YRg0n*=|QfE.i]ھ ϛ|\koߤtL<0 fט'U?.1x>7(s q?K(w±YsKwB+1E߳O~_=.GG2s4t@keWp0q~õz+U|\ӔwC Np]/ك:,sܾY86ka{h;ZYxnLw1]K4\wv~ΰd ]lĩi0!Z^|^l 7b'0t#~}+Ě%%Ix3|!Sa {qT]> FM@6Οk#Gzw.0*E6zv0l6_älBvO Y{y-f +iR)lN v,#+? Ɵgl/q~`zg1hAәod.&#k'\4|/:QF:;fUwM/ ضݕ3zՎ,V +SneQ /xԀv2.4\ ˺Nǰj_fONERڔ!{d^8'jiҶ%1e򈹰; Z\ m/'~%(?m 2advW) +q(SkPԗԼL~QiH bk&{ mɞ^ˈ\30=iK#N.?{j,#ҜIM55$-Ňr&yՖr6YtJӥ5J@o-ɒnbp)-|/ 1|q<>ѿy|+z5sP%/\{?n?:oOe8 Q G4|!eG'1M{g>o~56E?}~s8:<3mɇh]ңf~;,aoV5b>8OnIoj}Ec+[c9t>,1?gİ"CX,*փ|V2#%.#z%BN{U,~UW߶R!Oq5uꝫe83qN~WSmkSs \?OqW6o|LK_qNU؜1|۷*4J3<x y@r'|wܱ?ۿ.Oġg}nwpGûk}V }7fw"˿Nx[@D. *5 |8f- bێ;8 w⡵H*ݍKѤIދa+]t L;;%N68!7'׍U'Id-w-\_q+]o^6ǩ1 mQk74<##fn ymIO||Ombcq_q1pTo/~[tl1 𹵲 k$W9?qƛ/5 la\ ~- Y*GMuV6[ngbq7 K _`?hy_y1E z+T-ё#8=DyU6~kQ%QaĝUh˔H3];kֿTa\, :Lasͯ[hpt}<L߀Ṗu<o6ֱek?A_J,ŵf{p*7й9#I,I%̢ܟi ],yXP9ݗ~Y $;x/ i#g h3|F4e5r7w2aF1NV~u5jɾ(cljv^?#&?g?ʩp, h/+=Npƨo $_ T]0}7oQQj5bzs#Ǟ̂*[ >?`\wM@,mWn?]M{"ٗ®@܌&jm]k80.z퇛dZg/ [k+bC}3i7^+0H@=Q䪒L_}nސ(2I[9t'+WǞGl8IͲgL =lş n&ćyI?t27_s۸gk`s_%|gO_<+>unI`8dynXp~8am,t);yzqi2g"i Iګ|P_ΈdC 6 ;zqLkA~w*z#e cg[Yj>dt q[fy VS#Ti}5dX%&PRDŽQOWWSnb10°Ub';V$F3_70ꎧjϼz+ x{XvEEQA+7NSˣ/^MInIZH&K%bmeȯmo 굾b 뵇ȯd[x#\6 +dcȇƿ/Ȧg;]\NncW&N#,pOew&} MPǪrlAҦ̑]#̱x, a]x,OH9?[>&*#->zW#V rܰX9EƔz?ÌNOxie\z{"ahuaҕsþ h沔tW%Tajy$pkWA2 mvֶ\ ~K0uII``Gx\73knV<7#윭gu=+ T?Թ2*A'K'z͖P8޲]h~vޕe mF+)M_J&.QxH0&"DzCㆷgHh?֥at[ҿ:/>O~ ww{Wy8]E!1HA)F1%b#^lel%M.MwbxfF'0hыWw+h 95Ĺ^wNn'q9bj mFLϥ{|Xg_E?0ܙɍ希D`B12XqK)" gع]pz`)\ECv#*HqZeYTXtgrܚ/F!ݑzt?[4`2{x+R?.Ǔ6cM)SƜLT0$dmHp6'ʏO3'ȰcR͡foɯ!gNgֹޔGmp66/orI7;y >,g_q1>-ݢ~;.m8xQ~TK%Sːe[E;Fk~xr| n0'Hٟ־!v߳`<|bOğY{r XV 5Bϋ  hSѸqlVc֖gl>܆5Ϋ~C=w0EoZG+ I{3L,0Cw@^{Ň GׯQIZ>'0'4ί%QѺkM>Zd7AkrySVǑ17۽;%PXuDH '~9|-|Mp*.SN'WC-c,W0]AN7~?J:Ǭ1|־,&Og_:]q|[X-\Ap -[v2sc^R:ZX2yCĜ|[V5~׸:!x} eZ)`&t_b3$ վaR5`ӼqnO֋ɚ|i]0}?ef'SY֫sWi)Q¢4j<[5> ?i5\s!lהd}-p_:Ca> 2(-|(2>Ayg c:k?&U.&q+a?m1=o^$ s"͎OeF9=՚XqkdnY?]U`wӌ5~ub)) kqSgL0*k};j7@"YgƖI^/x=du9zŬHg (}%TO|_nS=%wୁ 7SO5!OXT=py)lpH 1>m1(y(J:"VjِE5h|)XFY~E6LOi062[լ,JIXk71/}Ksk1å.Y}R*Q|8VTwHc2Sr`)=sdٳdȈmPGMn拋uՔ.Ep;D֮ uwo0ht4]MpHV!m4ݣɖR[ Y]llG̖PZMEr۹OmspVCHs14n |vIqwFW7 {DvLC H 2^#Қ蟦Я:JO099Bm f{ҋ/trpB.Bn"Lri2wVA3"!շwܚUV- rT7sKs(JAYԽHd6c;>_"Q$Zܵ6M 2!w0)VX@F#跡4*Vc+'ʇĻ8sWoea_QÏ>ǃZ#c2t~dY<ڸ6 N)OGk *v|JpֹGt~ҡp7Mm֥*3j+tf#ݲžPg_Hi?fÑß(kdDf>ҽ U+vm^}^D <>=$<% 2zC+d [A+b2}Ս(bdo#/oSM~n\'+-ukTr{_!$g?}U`x<3F\̀9c:eɗabB0+|>GD65\}6Z$5^|n$ߔ}~:pu>3~gҚSb(['j%H0 r?O^`\] rD/ueNMf b[`>/,._psxS kv\.E޼;A7V)vSI9]e8dn @@rMV .w7^ra-YF/?m/|z.lYc[.\O^ɨ# M#^aW-ذ0@WE0!: pLLxF*?>yw)Xm§0WJΦ&:5x' lFՁڶK~SSOrZ=A3QXoLb;4W_x1eh_%+%O$.\Y(TIw FcnjidmmcU~`˒-Ӷ1ic\.(#hӕ#er Xk:Ubֲ- ?ˌQx;4aๆՏ=aE[Y!uA$ְ Í!m*ϗ,_fWnb F&bN9sy])6tWL9-׻ +1'ћLܻTGD'pvPoy*^{> R0qy6BBD~UaMl-'*1Yާ̮20vI 8:_N72p'4~Q_ |O*mcO o|T%9YXZ3&Bx;؍y2R%H7Hai kl4ƒs>N3&ù3OW~eg;VK J}|?|_ϔ5g׹K)rdnqg7_O{Q⾧lBQ|sSsA\`͵{0|\,oąc3kd<;f74)ԖTPaVԻYrL3tWl bN'.,|BΆ[le^[A@^noj}=<<||$yޯh|V#Ofiױ6pyͿ͡˸@WoY7nJv|=`{C]~7rs_b:5*?Jw جkljǣϑsOLzr8>զ_QS;QdѮuxFTcrJ{̏iO_gq`']ޝgL 1*}Z)NpVTa)+GzWSlMX$Z< O~_ r078 ؟j&vxaٗ~$3]fY9. 8`#֝wc@ZMGִƥ\g>W9JA~ˑ|^=`Jc c_wӧ3ٗ% %$\hc6>mDUA2,q{dz6?(Y w$s_kaCfk^6g@ZSrZ{Rm"9i(7~+IoXWYU`k^jq8)6 >bT- 0rٕFJv!1;.= .ncrXV"߾Llm>#z&|5KYW]ˇ~y;Wr?'PVp#/v_x6*(Mh :-ԏ8,ʉ1Q]=i $Hd(K;h]85#* W>/]`$~H=~tYEj͡wU2T5UQbHVYu6VLju?ZT!δbWؔ[*p3Y5X;՘dAkXL1`W)2r=Q26R:ssqǺAԠMi:Nml6A Z[XeP{l%Vi4籿 >8uexvQs OZ?lbz6gWك2jo?˯ӶuKc yj-B!H"ʲ6p 6V>[W?#&GRgj$hAsP`1 >.wJ-_[%frޠpyHG}ribt4鯛roпQ%ñR,KE~A&1>/]R䓱RhS #+mux=?t/ 98To6sP$#m-8&2$k\*Ls.i;'-p Yg%!R3&'m7e>0Vt>xݵW?$fyͷ`<р|%PV'|G N8ŞUXpweZ߉:rHp=ddyg?xqƏ'kqa#qw& [Xs'o1~re_}qC\bRۡ"3_UlwPNv 'UuV$pQΫC_g鼇O'\̈ o7gʿK4pbq{I(}m&~y@Z٤ߊ1x*>'/T?RL3_[*w+_IK=-v~fҤ|#|{Woyqy+/vl3cE9u`N Ga_SF |.\qt  0̰"70֙˗|Nv%=G~[|rN{g\=v&YW,,!nT&?֏uor4xZWO ~ Eq dkmھIQr=A7J̔n2lE&O~ɂݠsv3\-ڹi2kgɿfφ`)82_xAY'Mdaܛ aWl(@-;qsރCdX4޾mO)Mͺl06|nG x?@jc,6(Õ^3lYw;z2\(@懍*~Dkh_v<"K 'p{ɞ)qcHڒ B\'5rfP~L=KV$(i뤊@\%>#09Hi>|04Cz#5gNZ 0Y};&(wz-mW&A|'O }9zqL~bOު-h1疚Sy7.*EW1 \_oZ`54J7xRx`CTx=4QPCXLsLPx<_'Jbէ QHeYYU}Xʛ̓W!9Xc_v>[Vt|?c21Q| 9mY5]->x5).ϔU'H/=Eh2dC i}=@+'$`~{"maiXϓ:vlN|{V]5.פ[KlZ_/sYb-;jM>7K$G2ț>|;]q}1vD»nîq|W><.v&CˈOO| 7Vc`DȒ_M{=5;[{xOrɲد[<ۊ7|wV`mA7 e,E[|V$yFbc_TҁKSw"xU~0{>_}a.@-^c`RXYaLfK5O`G=#'qH7,0P~m?y~l?zv">G(/,tOaw)YiLml=s2>Ϡ"[*r>ڭ/O7 ;e8v=ڥIQ̘|'\2?Cҽ;thw~x-6%Uϋ8#}XE2?*> mt~Z>R0j_V,X֝ӸrO0˰ma0K+HM?'#]>SjO6ʤ`/3pܘ!J0'I"4 M ` OO4= 0ÙD7'z&-D)&*d6X7o@(h*k|(pbf}OzCZQ1ڇxRbI=(C|8KE.dGTOG''-vy0[o5\~ #ւ`S۫XUm>B5 sEԩ vAl4MNOU]*ni y֧1 ǿcIPV#& O ́ގND؍aQ[$w$&T).ҡA۵ibDE'rD`NS4H梪2'Cvh2((eDwښ@!R8&h2M+b sn*Xj&J~ 4; 䊥*t-$;`-hދV= J>Bt&ꄟE&v6~ =T䟱N@63";R\A=Bh!Oқm:DGX,FێRw:EGp=E_ P,eQs<+ڈKktz{+z[0 ͇1aٓ+];w1ŭgv"<5K.D3sJ6}?bs E^ 5ӖX6^M}/Cr3eyK^ {/ p}k=-xx; Rn}IIsO\QK0G>Nxc$]"c}">n\~'3e~Ϙ'ǬzK `/rQIy=#Z~L'_<1(O;q_z39T82Xch* % qn[SrI"9.'< e$ f u&py*;{ն1r&ڗlmڋ~Uiҁ49r"@Ю؁\:s!o 5 !:ԟÜ ̮*ʹ <ѰE=!Om<ػUu^C.gTu^&?ͱxk\ۻfBjslbB&#vP?^;+ iSoƛG|ϑj/GZKf5˄I=D1$ ո ds^c:%ri6v2jŶK^UFTGQ>:_c˫Vwޣ᲋lQim ۟xl^"/H-2{W9 ÏĄaTW~~ʝke0{8 8;p)#Ͻ}SeN:3|Vbb ]⾋m#Ϝ2|K):g07dXz$`2=b-آ?cr<Ձcw&hIaoH $b;֒ŒnVhPwo0*tx7TTc\{w.3S:g&^ˤKڱ~{`:Japxo= \*ՙ=hANhԵ7M^"$RψP噠JNZm j[@>'8t.O/2Ǎ9K`:%+ ;5uA\l_\cjVm;|ϗ8ojf ~Ns .8[D3G?j\V >"䫏0Y/毢)_sxQRG!ZV)oԔ$G~~j^A:WKgL^r7ڨIM FCmw Ff&{aH҂tfҀ܊*1]eC]68pKm˒v-޵Ņ}ql:qZmX Txe ē^Ng1NYaIY7 2OF7&2Gm[m_E|O7bP^+Y#ycֹWꆻt ϕFD^,0!Z=O3N[0@vZff."vu[*\%̑k=nqw-?^7|VL?|̻hu.aR%AsOM2kLù =+<MES?XO`Ғ~hzo1j蘔m&K~Й(1`\?s]3~kF\y|O?ggt?])Uo '֩~Gg uW.Ӱ,>/ǝIS*;EN]1b_*'x؟ջ3Uoqwi8<7O޵qނ9Rgk#KyuyeJ_/{6Y*#P FD#7oZkAS( ʊLqP#Libu8D #Hiӛc2܁$qފ0{rx%B ̼q4|4LVB+Q.`l$ɟZ6Z9$Q,I~T'A@)QmmG㡤h OH^"L+LI2HiUɟSZ$i CC)ʊ^ªAc(mkP;bi"h!'i(ԾI w>e cW),JE";. VWIYʱ7$ah"],ڦTG~Z$0]jMST*RzI$rιj8,|"|6_tx#|œ_UP:_>ϗ-_Rl(OzQk]":d%N-yYO,{^Oϔ e}0GG`}MxHPaʄ'Оj$d5>B2* LF޻MRw`{f UxF h-q¯i$Ъ+Կi޸xL2F¾o޼7It1C,tg1>w՟O\?ԧ na4 ;7B3]l:m=ʩ?S=/弅~Ot.VCS[mz cw}X2ZeXT_ _?e~^H53K3jkә\r.6qFI?MłY/Gs׹x~ D<^.ף볖aUF|y}*D^Vgungce0ִo~Ǎ#ygς'Cy`VVI(y- HUIZ3yRySQU*0 p|%f$Bk|h2/w!eXO_uK.Ϟ̧kO+׽AL Y=?H`_5pVT댧hŠӍ&33%)Ue}ԙ2̞ Ulٟ2vvbRtm؛p@uWkmKܳOV$r+G.XVfXK]7G"}'A.->1&/c-[?QN_'^+Yqʏe_j&~eVspzmιXL7?4[V0Ix[ 'r+3F~Lrr>{Y,`Uc1om@o\0/r.iŌ;r~C㲬\#R٧DVRN[*p&X\bsN|K0| {5O|wN2&2dbmٺ8Rb\ꌿ tƳ3V?Jqdp)UɞwkvbmE$]zG/Hpw޺2an,mE&=<|5e3?Axz6{˹֘|Yd_KRM=9Ͳ elpA$[eo F9ϲF8^<eHs57eLV| xb[lJv&$"y\WxV>g6\iJ/Mi NRAE\3g׫z>2)]AW3l=e>W'h)KvGLB67F;[.Myք-t:{~ 8adb*\#Һ[Fl[cle[+\p6k7.9ŜF`A7P?Y7?_k7 G8zk7H>Ux>S^3>*DrKlWDrǴ~1d^VĽјo8ʱ+cS[dEwr/ 5HÓ%I^W|?ҷGɿi amdED~u?s[{^/cn韟|;o&?iuWZ/YfQcz'UeX?4Gץy|_uOޑˇbdhE'yʭ~QyZD޼l=fL|ҟ6cm|kvDGn`ϋ";Td˦M [ M&{CgsuJ L s"a4mhuLch\$Ҭ6;%:$MBOo4@BE) RnH !0=)&Ɩq1)eb^ ATt٢ݖuFñDZڕ27b -ݎ DM3aN'}tm;lX{4qzi6m<)yJ\V2@Nb᠓ NRN _meji"86$l@*NoDa.p)RO`/<d}Dwr}UNPntTelc._#kci0 ={ G*tVN 0H  XN4{ i+ $zE&L a.#mXɧZP 0OZ0IT;8ʇLGF/$KvվGK kpL($w է5=+sx[`a^~a/0AEzYH3~m8F_A`U+6[n:gSbˀ.'eKi˗bߤc1ǍG:_ݼn; @6XX{("8Ƣ K@XvXOz$-Mr:팙m>G[N _5Ο^LYf,-{rޛenHܯsGva3^>oʼv{ԸcsLa&+ׇ?9W$yk. lZg^&=Lֱ,]N8~W|~+o|7_!$>_Gӷ?*1Ős0UW+?GXF+:nᕧ W%GG7pxV<('r =7xn> ;p/3r iJaÛvճj8ճ9Ter!563~zOG<84aoq[Qč>g51W4FPG}8u/fG'{+k0xM!W韄> W˗1_V.4"1Gas.k&@h]yzb}1ʛ̟ʴ ,%?=5|350a_\3Luf46b @OG}g>2QTx!iIA~='2|>+@oaqh }qG@ž7\F`1K+J{C;<99Sz="ɯn+3k2žzΧ q\?'~NŖMFF4>}n߸:g VbB; +R;q.0b x%o,޸pmT_felrΟ`/sWߒƔsA͹a8 5/k66n0݋ANz|L0Su_BO&Gespu7.i :ޑ[>L]sc]O%mcŏϊ`2 F's"aetUQvs|q#w>&{"HnOv~[zφ:JYv?x }uk73Y|?gҺ+HtHX|Qq7OJ(ik#i?˚#og7IjY$j& 6]vx:ii,>%9>si&`|:4N~R#GM9$K~2ꟅV7|MmLk\+/gnYR"nk#+#qEMr{=鼝Q%Or{> fbOJ7)l<6bc 8jb$8 f {k⹮)+8[l\c$fSY n~~?s$s{ӻ*۵܁=)bϊ.i,`}0 :?6_'ڎR۴91?j OPDkcnVxe|L jz t֩*2d-KN0zpAh+d?+٬16LOoM2/71ͨHl7}^[gaZW+;#1/ׇ5ӰqQf∧76 pX]J|QFa1oK۔5|O8tql˷\^G7k>6Iz<Q~J=!e [YCX?5_:Q'㭡]Dz٣_?|\J_2񼚆_y:s|'x4m W^lmlb3+#pXW?ewt0=ii[utPXbOWpypjئJ{Wc/l~UzLުk:I;v7fJ0@ږ""(M7 sl퐣h ƮiHmmfwzNvhu,*;oT)UET>$,“Ò}?!=Qܿj։Zv$cL`z!U,O*$o5Z6TO֥APHjM-) J>[ ؛h,lWa4@U"F#0HfNS ;{zU}(`|NNig%hmW'( ݩ;e qGLޗ&$@[րT&v ]X$OMH$MtO I&L, )m e@;*AT8lTqE b={ڈA~iݻdՁQYm;@mI/ ЂxF~ZQla)-zI*dT[ *%4LkJ )c ʰ`vէbVZޑ=N(iՍ$Hw`ԫS]w='Fz}={@7-pwWo5<&(@6M鞢BIxv[z/e9گȏzXAWhjjM)59ą1%&KZCxjEkm*vTc+QcNamYI;U] ^Չz݆~I\GnxLgn+tCb[*],Qϛ$q\yMiFf?rq=Z>E0wܱaϭ}f\*ޏ. ܺ4tLguvhn^MZE~Uvwa.Kѿk ؜H2؋S곲i[m嶮'{#rs'xX:8]l1pXm󸼟5h}%/d/a?YvaP{Oe#(R# H ڽ>_K~C `2[V'7 St:{0Wҹsp_Í@BGץ `~G?-~ 9_͓9f+n Xu; ?= ȖnfA15Rq<.YoLYUl. `WZ_o Xj&_JA-l _YEZtS{mL"Co^pY%qjɻNPY@]G-,ѫ#ԝ:<<6?p<ҝ+埴N"s|XY-_x3VEq;_эl3oŁ"rT˘v7'?V8+Ɨ~bׁȺ/>9aUZU-)݉=|˾!xLE\M'* }. pf_g+8N+xt1YՊ:|i>3(뤸@FWaݼ:[ y=KgQ'z22xӍB[l |+ =݇SQnd)a sQȷjz  ef"Zx"1bXX./FL<[~B>g ssQ^{N_Z;vaU-%t_1,J=Liy7Sb@f^uo~jEn)[AĿ?'̊1XI?H wy2008[v*숚@ $24Uh1D&cߊWutHB!=@A&8FvVlKaOwᯘw$&HջD+-W.IFW:JꌹJ=R86"~i?:>ץ~l<0J0B)7_rU{½\rq]l[4ĝF'.9'T}M'z:x~FuAb$NPyt ,clgao$ ;o]s6oqDèO޺|_?n?N9ܵS5[^݆hvc3}VK*@G5Sیo?+>)o(tywz ;)K/[ed #ֽMZ"1bZwf,KDRnÔkߒkT C]K_ƢuGT '6Mա\OLnccJOI_YLzJҴg> `LzdE.IcVv+T.bm1P+ڣvL^ ۓEH(t77/boC#($X4K:Aڊ䨖3wPIˎ[OB7oH*J#K@a!w MS)Tt7D? |S2jN%@G{JVۦK0H5;Gc$1Q-wV%tA-'Em;@,H 0E9B!(.+g]'Ӵv):`DڊeYkh8uCOQUa8մR\V;ǰulXҔ[ #oDEpVDKADۀhK'##Qe"C DN7Dwz>UlUG&$652lBAGZC|Vp2\9l!,cR]}W)̰9g+r?2 u,JJ(ކ獻qUZnؙ5a]MzT)bd,S[{Bضuf}.{EhXdQRHtBWQW[/.m5ۧdKcyƛII}~^iC]-˿_@cmlX95&x9>6Gt6U9 . q+ӽ%ed950w-qI;sl~e{4ڴY>+0tB1Kȣ$峍_֛<"}F{zm`ś; w6;<~Ӣc.YmZv+o~'wW,`?ģ~څ{EsXl)^:èziM]&5*E OTw]0W3$>#Ɇao+ lWsκݷt)J^RƯWkXTdن m{ea]? nNekחj= VaZz=I:dGLV;d5J\=G{̃r 2 (BY]?e9N{e$;6lMhD@'5Y ) vմ\Su@FzOɆ-MTBUkMQ'XU#2zGĞͺ0MS6?[QA\>K^[s{ˇ,\#L 1E!j^Fy(cٟYcߊĬHaZp%>>0E*8u1pA&#޽?mQå"#6#xap(׮ЈI?x~C yI9cs1vhϞ>_2\IafŃ|%x9wOeyU$zPL ҝ?,m/݁>UROs?*CIgo#^z4|mn0ٷvV%1 ,+o"7y[cX*{}/7ϛz?l̟uK=Ϊn2(mlS&65,<v3| _[+ ?Y~EJ>_7+,:/]/Z*{Iշ|mw-M-"+dįg?b?nWϊdg K6r6/( V9u]Glt `Yׄ_33&lFCr:|Qv=#^w3UL_|r>qe {=fAH0Mּ~ouKCX -\B]5^OgQW Կ \7X>HZ_޼yxҎ>[>!6H𘲯|Rw?x{BYbYy5RN8}E\ͮ:]D׶|UMk;:ui, ä}7?&Wnoξ6n`५OھcLN {O[Es>gJpH*jX{Q:d˲xdh<wn܂i&cK( &z$@ݤE2vRLqL>Է^lesyy?]0bNS=xk`]~`m+_䔝YQۊ,B8x*@]`jlXIfmmmS(@J3v&a苡Ii$zLU?.%J@B'fm+-I 惱H;)}n``M31"AIJ݊l ! #}7I\TX-'#Sla ] ܁D"J"Zz TiqKVVHo><  Uآa FS mCvOb)Ż!@"vN֭HzTq3U|U2T]hgF75) E#Q&ФJU, 6 6'm &g9#j%LޓNI8쁘 @vրQ;DLFıO}Sd @6۸V:!XW-=ܻ VAa\>*K{W?fz#3?19]ֻݸ :GLvx3=Mc+m;qެDh־`v&\StѡʹµZxZQY ;+ҙSw]|?}{~e ]Ҿ{<|?)?3s(gձoֵ3lN$c:nkVkNǟL+~SðO߱Ug9EJ9:ɯ'ơ7ΘIZ<ysm`7N4?ֺx}b1}Ws7Oz\ۤRer/yc-_ {|H~`un[w2q ~9X3PH6\>>| ˍ,,a]YS!yE'#I ML.V=j>=ZY𗨮n'UGƭ އ>!ed)dz5]|z\o/5||Bb7Ld?KK!*ەLfiɂi|fm֛R՝84aJ^fOFj6mtܽ_Ն+hL3@ĸڡyL6 {gI> iN aUl; al%6˒]G0ǒQب16m;B.6_-*X;V ^_.gk<;v5ގ\))?;ulha.lW $[8&n+jVB_Hbe \ZqIe=!Uwe7F7cWS~#<b{-K^CApl{cmtk~GyXHc3)\{=@[ _IY@;kWCkgj+Eͣagd~I,x0wobHWvN|'n9[ZEUߒJ^>ףO<,>߳6Suu>dطM A|:s!EY= rO5C]?ɼ]@[46N aZ'p ָ''lXkjI/|-:¾'ThP]"x'z-1'/-s^L#<ʯ\3Qݳ,m`V*2b3L&FE#X6}fѿf[ICcp Q]m9_wO67txyqZ}noLoշs)@U%I]tWx<̻nLG"N .,m*"_6n1CO #M7}XqB8>Il Q*˳l͔^"x7^#~0㭇ՌpG`Jj\qKta*3]=Ҹ '́ģ9wya-ub5dŒ/ha阮帋EO Xe:'G&Ust//u˸܍m5Ti̹u*{QT- 5DF?v~cQmX$!'JSecT<޷䪑D(9V렓hefHࠀ7jI&T "`ރ UBB2ge/'5kLMI@AP>ƛw_-@=;~M8&v:N܃U0vJb,Fo攣"fɆWL=KR!l=s{ 6^O}+Ga'w-1koX>ڗqW|F*{w4AER^ZZ 2;F2LI=heWuăM0`LMR] rĉ5,)'bT ӂp#(=w! *6T4;lA䝪4@cbh(ɥnyO}UK }$,Yݴ`U-ޱM'CJyiPNZb@i=eV&;Gi%@ +#μ;jUA(``lMX縊i Ut($ NJ i[:A."ha8)VdIj,jR~Za@߽!L4">M -+{TTKXGޟLjC;C $ kK ֦U}#oxmPڄXCh*+6^T7ui>'3L hiJ@z*b[G$k.=M l|ߊkY]ӡ-祯 |%2 ky1FEQ={|M謻Klc-*B-Jw0Es.|]Dz85鍷rQ+2ͱu7uĭը#x;\UYmXOW8y6NryfFy?&΍a-jҨl>~ptAо3OGy f:*5AM~I[A֭E Y얩­E*ӷB ZҝZ w#LK@#]0(f=it ^(Y$K~]k@71ϴW*֏6aœZJQ}z5um2p{wrm{lٶϧ[L+#UfQUe($ϊKYNjpB@l= ֻ>Mî[٦=Jӡ~l+ɋƌپ)ZLWA̿3 /w-c }u2s]YnfFڷ"^5/~Oٳ}/<ctV }aI&Okfm4k kGyRIkc:;n#aoڱ%ZV",K8L:6ч@#*y]ʀWM17kOyYXÃ^]70 :qKѨ3 2>qM'rHڡއzcnE>'jb-_i[+jrsJ c]5P.mS*|3wȪ[kljå0mJ9o{lZQ̑5zÿΫ vI5Q9>1bx,Zy[M> b;o4j꼒oL%q[FwGNw/<[>ozezPXʳ+g:z^>,Z{ȷF$['~Upd')-eϑSgYUɺzl( 3ԹceS؝ywl:K'OJ0\_]F[6[VP!BWy37g`XƌyRqM[Mq.=06݀ lpfosĉbl+ͯ_Ї~w>ՋSz:crƎNtQ$[r\N B'}-01̍>k8q'Xjnv-Äw"ϊ? rXfTaXw?vsN˯ q0mߘ+}"~Ey'/lax6d'QG+nvd.Oru|̤Cp]Xv⸲vh1ewO޳5²[BY5SNyM90/v:$0"I7^M5g,Sj0chGVt 26;.Zcs^>}#4?f : ]e_C+xH&)i@ /g渺/0ysL:=x[V}澕ĵČV*HkwR[wlJƻ#= <R?iYAى[O_DoVV[=a;AeFHYOǜ"cnlzlA50_g0Ts>Kֈ?:kg6Ohas<7_Ռ=?1}~5m9bf'ڻ#u[1ѹ߅1Oӛ_j2|%N#2(̭c  

*Z{ٟVFanެ5C}R* gG]sR<09$1Bb%9W~ü)0QY(=ʢXU&́gES{2Yp.kI"n. QΠ;([Mˉ,L}h-A օV$A GF-'r7RrZ*C@*ʒL7}hikdb}"]w$Թh*ghkU/4} mEP5ٓmo\^d7J=h|Tl{LTZ[0vܟ4Ҏ/X FqB܈z " ADm>ERHmAw_15h)PV'V>މ:4I t  J<j|Rb-6Kiդkb =zS@rWTX"#f8ؔvEqI恸uq?CF%zERJE*acڊlIf(M.&H]A<55u)cb) LFBa%֊ y660`[kwu;~Y%j~y9g?ˋ/\ -'dP=kٯR-y9޻u$0>303MЍ?}PLoM]3Viܺ^Io,`N\Gا8YO8k--a*ע|鋎q?2[.e؂R}Mԧ>oUvxNJ菋2Ka-IaDG+l*l !p]HCtV>D|w_)^GqvGCD{̇^2św qO9Sdل-jj#usm_y Oi U*z5%gH\ȏB*ga*3jw#ocY3>ɲU՘ٍc-UxjbS|V3^a N]9rȦ)NXbgKfxV)?@tx峙94@D{&:WlbQ[HEԶuɦfQ.7j}|!랮O%hrۀ~]~;qϝ7㼙CC/*ga׶:w3R.KL z/n̼^DHHG6pXxm- t qY6jA+'Lw-S.T1. Er斲Żb6{NCҨqu2XLFi1p r9VtEdD($^. mPNE8 -QrAc_/F:(̚n]û..^=KryMi0YUM/8{fb=L_Jee0m[kFnnY|X=ոmTu7֨8QnpDzRQ]|Swg*ʳ\cm~FkGy^*ggkJݵPd|_QxaMhyBtMd6 @հ st FW.tkk(@ܑL&w܃SVؾ" ( [3;@VՉ,LeĺaFkf.0Y:B85Դq4t `@Ͷ Fc@!c_|.ߋi{*b2 Hbv6)^jZ/϶|ɨ~ҹ%7c?#W'҄C;QY0w5i2-y/os͉A'mН멱WAV >J7\fj~<|= f6V_n6/?x.fv ү`Zb W+ށaoSqanOo\DU9 |z2̿WmacBjҹ bқ>=ҴmG R\VlF#A@QR0}o()Y܉\D&N4ђ[z.f'e\HjOFkW yU/" })PHqE~ Y~=2m 8U aBG ^lW?iLW]Ll#`h,aJÐ6?ai?gMl\=f s~@j[i@2{.1-czMqC[I8nf9>&B}PŸD0iV*0-ibw*B,[Ro)[bB\ޫt2Ɲ?Z"='.$d '"歃@3T@(oL$)<-VDֱҬMI/DU): ɦ퉥]4@'\E8ƻTMCQ⏉ A:ҥ%wm:^JMϫ thۼsP]!NMlEe"{z g(]XTí}.fHh; 5e*:sVƟiLc(V ԝobCM> 4E#J$+xondƜTID1|t[3N݌A1 Y6aB)lFƏ۵mȟ6~j-F&;E4?#P>cyfqN~֟ |F~O\"ohy)?-CV?|e}fpٍ|VmzIeia|3WKZb{zV[nv,pǵy%2J0.Dqrvr֖B꧿zrPaSg/gWy/z5c0_p=7-٢Of7mC*kUJPqM3N@[0Ln׻?hު[On}{L-pË$xNqG~R]?I1cǥt,~н*K!e"F goP%zyd-G5)I\7L3[c>U``*N[{3q%?$?6d߹ؔ8.'Τ/y1%>[&+"t?~Mg<$ΎGN'✓8~oGQ|5\O>xToCC͇sBn 諊WX#ޗՓI$2b~ &˶i`c+)aΣꕳw-g WUۤzǽ^7$ę1\e_k"p8v?ڼfO3|ra;\'{q|}/B??s^+T9Jw]X\& R*{W|EL? ਥ=s,%ݙl=/yA$LQet36˂MWb.##aPXk!g}R99_OE8|'$f }I+tLOQmq#u>c?x>/oY U bzGoҽ`ʰ{" (S=~ yLd95f!n $:,Uw|)#Vp[g:!y6 {-0*z# bW }иWF0ls&-mo&uwEqwl丑ӸFw׏^pI+:HUMw8԰dG.Wq.2;lC[t ;ۆY]nkqgUjaaph%a&ꆶsdxe8k/zݶ`mndXI 6 @پ|LdyVd˝yVd٥ema^DZ"CHF"|S0aXlj~E,TpWrvpH󕶬tmF(7Q^m[zIGۚEw ۲Y%65FO2hۣ̦ kDrZ*vPv&DHUq#֪ (2_AiQDi@v"WK @.: >anMڶ` 4. p$oRG x5J81 'C83\d |[{ޒB[,T3db<T]0OvEf>,).ڇ9Ja bQ>Y L >)R3TʷMIi C#\CYb0ۏAPDV5ہPHjjܳ@\%kuDd7zjnv!6 9CuI"kᢵGޘS1UIA\Wn+vgj"mqK<8iބƝ* ;[Lb*uzA\ Okc1i{&Hqt}*xvϥzQ 1m$)઴cj}n(NnJڿAjSQ ,ɊW5mIy61EM] 5IHjJ\'D'p`wl4K1iPUA?Zb $ 5OcbdގX X۞6ӧ /,9>`8 bwh`ⓡsqA{s̲V;((-RC6Eui'IcIDQdǝF2#jJ`'i;Ӏ-d ;M>/ՍQCLQc ^㧲x &Hҵׂg}O T w 6$w1!]:H=U 9R$sU*_۱d2doJwvCP,7 ʞaI;9"%ˤ.GBƞMLi+d%oxG M`#h:*jfvO#ҿ4 SLVRtX7GXrߦ?{WӖ'a5G,: \]A>ՙz/,@{7?L k-.3 HԑzinIq|\UKxvmnZuxkJ≮c'gz;vb,,J6W;-Ġryx_pO >!uپoOt,|=w흶%<ղ̜uۇͰx65OPc^a#&ظ35N1UguE!|/Dw$v BHOf8]ӉĹ{=$uӃq+]$7rkv֛Xqod GtnđJWSᅮzWZ:8lVO}su" *n-HޚY.+.amR5뎀nnE|>% OھW<'{|mF 6B0-}9kwl Zϑ4tl~ۚt T@V9v[ۊ"zgB]2.Fo"C7)t7J `&gݍ)}y7JӅU?]߅=Hf|7rAtד*>cX_и{z_ kHnL"6曥`⪐ǤQeXT$ Ҭ9VHVBmM|GVVt:OQ|,\P]Ε4fL{}i-=){UUUߙDFQ&aL*j"櫆I=K{-ԞiiS%Of)|td=%v+3ļ\*oA_:73̯9i#o{~,x0~L}oɺ7]Eg lW 2pY^GK?WK Y#Զ%8mP7#ql٦+祸9t85UN N"Nmlw*yWNf ac[R͙eq`#_Q涅kjG.CW= A[9؂؞?Qu|4`,&bݳKvGڮ,mA;{BcF\rƸkHҟɼu0"g\~Ӟ(71&IHP|ok$H撋jShlK)x3W Yl;@ۇ**݌Ym qBݰ.~LTr[[U䅘ڔm&I(ECb X4r-=$Oz܆D4؟`Kaȑ2&$Ѕe߁iN_yګ_jz:Tr80Z zҕ)XGI2Fwh B(Om*"?ށ*Y)lZ1.BH`#0 f$&}1e疓R<ΠwZWT2]V:A>{Ӣ| )ԥ,Ę;}bFyk#,Մ %D.[})$p f*SdCt+ݧ I @w5z@ZIلwkI{/`kVnNޝ1bWM7++ 44(a(GqSUؓ @/`Tx i&9m"vUr* v W[2>.T,PPPsk]60s]"MZ5D#jCj{"R%Ti_H5Y78GD{A#?fs>kAҬg 2D.޺Z @}+mqv04[”tVKI"|/ா) 5nb!pڍCYTܰ(qȝςܓHK֯ZfVdֽ*\=mTy6 jszzI*fxpJm{vm $n r]Y%72#֦LE0'SGV {ZkNŹqL<,u>)= MUuMn ܬ 0֋ ,:4oT+µaUBohlBh"xݽ(%>|V$Xݑ:wh-iUt4^1-)~[7b@ܚX f V{hX(\}>h㽶q:d¶d]ujE׷>)~]UjfCylaGnj?.|_b}x<è1-ݺVmZWOQA7<фxǤs|'Ƽ>MtO\k[ [:oWgɳO]txӸ jn7VQ3VQ;ѿ"sF ɱ71'^ۦgJα0JL>g߭W$|nr~:3'D{x4u{\'Xu 6-(h]E;?2_>_I?IéͪJw'ҮVGo-5K&Dp~qF`%{SQ"Ȁ܀NJ+D&>ea [ R.Pi.' 0r T]jB#sR k+SoE;%TXrő@#+oAvc!r>13&7ޗˮpLC"d6x٣(|}\HyQp/qӹEs8{ؔ +D?ʾ|[ mknO /H&PHXal;ʹNBO) & 'n szHM^~63[OڧdٓZsmM"T{ן|QnPMv;ȕΌb7n[ ᇑW*9- oVbv,Iچhf)!ju~nnxqƙ%xSH]5#TU' ]N nfhcY v314œc*[A7$A@*-oLm ϵ7QI:>N#D`ȭUvDm Cyfې'%7ȟWJ'IIޣ!ѯQUE#Fjail'}4B7.NÊQ"[v+;pOj&ŦmCmU '"< @H [F9[&AhtT6G`,Z3@a8잇F}*:n$Q)$հ. 4 <;ZKWĆ v&WACi@ɨNlHw5?jCM2B- {cgSl+9OPم+hW#V{nE|gɽ[b.8`oNŭԸn dS&9]u#mԅ7Edž,L;E*=llPe]^6*cXwӾ`,`3Gi*Wfuvyp|B-Z0͜[gqmh~MD2)}Ɖ!ƓF:mҷ) (|D<`t$@7{ DTWG1Dm6橫Vob&͋z@`yw,-i@&\ji^ϠGE+O6QݰppFǽymD5XJ'dfۛaF?͖>g^ _j͑CjQk `[^]dxL% q]fWշQr8x.1=][SmaУoBu7P] en3q uGg1x8yT{Nsl\<ɷ{Iھ_tmo'LM]gwxg1.Wt'eڷfڏP C[r $ *Y4[!n1SsB҉r-)j̝.#t7. *~ڢ[Uq^|MM G^-"a˷3#fL;ujl[貵HV`kClK!mR% trؒd) I&ħr˷P*Y 0_$|R K>=OG;ׇߍ6lFWЫL3, ~u߇s$i:KG/lG+u⋾cale -;S7ުSjQ`G?اYlNiS}6JK2fR?{Ng^V%T,X[FYf ʦߝz4Uԟi]ʮu #UFAuvA|]&"D\&ׂ֙ex-JI?7 G*nv39klNC]|'bg H.*~sUFlN%7[U DV5P8*Z<ɧ)  {iBL;,ͮ?ALڴȩ`$؃=ѭ3M)Iq4mA#m 0B$I$J LGj@hJVҠqd mIn:ܚq鋊M |72AjXb'ź)H?s1nzU]BH 3MbQ}f|[3R4֌8 CJakN.Srֻfev5suKe)iw;Ɉ5IiV*zItkN$*,f2Vտyth7HC -Phi.) Lrj&gfؘs4FoX01}3 A0G֊qKڤt+ƮϘUl_BccdrRN: eX cU&QU6T?{1@-&fWa0&#Z}NKLK-o !Jd[`]P&ӑ2"c04-eQ@D6Z^8ymڵ 1ʱѭ[zޕm 2j.)D1ʞ0Xo4ՏNc-;4+ jjr MbD˯vIMpYf 1$`ExX֥A?1F.҃a<ԩ9:1*n kf Խ_( ӛe _4]tA&kU8xU G< bHsU\-7 C_+t{UBKyx%NT?Zj!*'Kw<5mIܛlY rjZY6sR~mq$S&Ϭ"OXih#Tz$݋uW hQ7W-_FlqiJ=ex:kvFn72x#\~?M齏fh՘^-1jg9FA{m{qxزgΫl͗(K's o *#~ ab^[d:vЛa_n_g\t{(.Xr썹c^~uFep?y~Rs x/g٫3FK٥6 'dS2dv\t"(qKnu/,!ԇ|vU@3_ź rV0Fzrm"FzZS:!mh'-A lFYɦ#~|*D=y-#0)E!u$j-k!<ӥحl/*CY\i D1BRC.߻&z붮K'N$Lގ5Oُ40Y 8]M|@Ȟ*}?%li+iǛ,cIcΠ꼇&~IuՁonvFםW]L<6%zPӢ Xws73>NÎZ6={:+._ø\. -@;{S ؒ@Q;nplUxmXaOouy[cIJK;,7M⮳Z`Bx}@3\ bn`n.I.]or+[zO̰Voc.ٷYQ)v6t_0(Ozts.s:Ò~Pn*YݰߊaUy52=JZmԞpi m̑OFK]h)jOV~!kн$V,`eEA1Nn01Kw0ռtÄ p8E&L-o[/ <4B^-#V̵[3;n[=+>I15jMmM L'z"uZk;nߖbTlgzle+ÄRmӝ"5 F$KRo5}-gK7dJ $LNۊt*$cL%/e{ 5<F1 RMXhPlomHB- l\B&?K6Oz"ߡK@X!^fR +FjH"zXcܟUÕl5UljUn hM1$)ھܒirhh[xrnDzV֥)7oMlhnWyI;_.\0AJך{)j\[wpC(V܏_m[ŲycOi~[Ƃ.#} AemڹѤpVٯsƌ:I+f[f\xsvyLGQ|,Y.8E}v,eXk+Dy#J}+798& >W~tM͠W~Ŵp"~9RTi0\r-Ի@5v]RSNޢSq!q8<"v*=Opi+DiY\I4j;[v|IdӻjMn}yCZvK˂l4:Bہlv>MOzJO7Oh*Lvde,'Q&dS)Jy$ALnPlS`P@U]Rbv}i7o܆[MuDԿz?Wl=SP]6-'&Wx&m]z&#!w* IPLJ3Av+{PCmKZi!DtE M:v~TpFTkR8I- |šwu*A2GZnqH1Z@*gVn)2 U\tn9T1b ;riIc P4Cl2h3KMv/t5"܉۵+bxv!w4ӽ FB'Pdp*dVcnلRF;kjVکI_l[dψOh5@]3Am:dn)`ّ?0}j9퉄\]b6O5Bϛbޕ+2B)#*k }ظcj㯋``č jQh#d77)&t2ܷVrvv#j$8 .n SNq^`G5 x3cVw{ֳYv'qtfU"5ro>=9,Gy)'+ʖfv]M@>}DW}yTl~4ڮ`oalYv_jԝ%–g(FGjOh="p%e`&'fg_7n=t(S  Ƿھ]:<=uQn(kQZm:H&Do4;VJf. LE*^xQ2Omm@:GH +%T GMnkXq}SzF:.*ɱlqǎyrqHsP>_տ%g2E~Bg˨XzGiQ^ g9Kql*[y\:$Ϲˏc7Jܱ 1 '⽝7 I4z0̇c{˵˟"My]uhVUʔ'ڼ Klц'%5:]ڶp" |?J-!pm gHkLrQ\QsӿWLeMն#x+ fՐT͝Ι~գ`mm.}w@<\.0mi(##jVP4߅:Co.Mؗ¶ tiZͅ`Bռ∵T۴Zmo>R8ipp@ΨeqhE1 i-0f,:R;1&[ͨ%%e^[WKi򱝚? 0=IQ.ЋLATj&umU\A0eQmTS2GWMgU!XxBGׁuXvgrted;ǥT[>Cqܖ+waҾ6 !UxW-ē]$Զ𠹽t&?ZËrCVc, h-&hqV6%ʭVU(lYFNZ' uhQuOaͯV c3;vw,=\kBi%ΰ*p_b# ۚԹkpXrw0 E~(CI1w8 XnJaӸ{~O7#b=~tѴ֟ vR 7wlo̧yFSW2_7rN7fd)S9 U)'=/(S2?Pj. ylO10ϊ5ntW߉8Q1JLSq9=^k7YaƬnZ ޗY>Ihn tOR[w1]>H#fK=FV't}J؜.&#[Z)ON^teޘɣo" i n^l}6?32{F2@}' -#D^*VspD$џz̉Oo?8 C) [REovK[U7.xX֬ _O$]}^~7fBtſ6I<]Ya=-"IPqZcqK%egMxһ-1wq;Eo3jKCIt UFzq|Io"qbT0IQ)/kHqV{hfM;؇0A.1 I1QKL)›MPM`nb6ۊTIƞ1XߋvZ3~dך>0<Ȭ]kR2 ;URj5yLcu^`@\>'WjΧ(=5v&'@b1y2?kp;$6e+C|Zݳ[av(`O@="[{6XL OҧUho.lOޚѷf䃱ҋM-a1,@$yΡH2apyRDo^ ޥlՠgTG..\C h;>s Hlt r $Ե~ˬ;qN_u!:tũXR$1ѦŲg[B⶷Vx)7މULjmb6*]궶& DhI"V?Xk.ɧ; B +p=YfUv"Ent'lC0'VZ!ݒ-ytdU:sY%:nD:GjP8r`K)sV[rE۰װ M-ƠymB"[,V 1ҕZғ'ME݌-:Y/ 3Ch2TIEF5"RSIhooPC_ 'ѼKvZoiUN3]&pnHRmЫH/>IcLW ^%M)BNi$Wp6ޚVM%FmhwP8ޚn.Y|X} l1IT" ;}J)v2*63LҝMp!R 'ڎY?RߠT-`>tWfy#> ,2NjҺ@HՏmڰCj[Q리LJ1+LͫAZ0[;lx8œjs c&꾘u&C}3)<%&٣!뎛âq9e˒[6߳y+; Z.wPGÆ\k(H< c3n{da eM= },j N\rGXߎ{j\\{ֲ:X56Mtar)Bib<̽M:;Si۲J"[};AKUe .K]UG#|2׵a ړwlAUf6.ɯ3n“p`?|ba+b[!a'~`ËuS`XWRT],%Uw$Mh8}0j * >]Vz,T`Zl-K?uڵauXw kD_ρ\9bI*=_5eox`> x s_KzG+pcj %a@ W/6룻4ۆ˔RVbʘTEa&HjWf|΋GQ›vV@(?ޯC7YC-krTTm"ݠAs@x:U)Iv5B=*_@j[mYlX$ڴwWC9#C";b.[ CiF\3GsGQ^8 5 FMeNG\[Oѓ,òqd `HyK-[9Ke0[Y =E=5/U@f|#ZX0.p=8Kn>%dO ʮ9cxP/ Zb}#׶(sVʜ^2 P;o5U8+Αa-hTt)c]YS|gin*iSP۴ CBTzA5\X[jV?NS'Q),nc޴++ 3q7^[ ĸ8K4GTJT?kU[B_@c4O~،bvW'[3WouLIVhktfs`-"ɺ׊FOȖG 89iyk># ۻ`Lכ;2>VM9ijfƔ@XNeNng+ҳ{Q(ݶ ;,ֹy_\[[kh<<=~C Xb͝QSg.u7Ucqڶe}Oܘwa!v?j/яÌ_hVp ,lkJ7Y<1} ͺiJ.1H#qVxjFDq\5 z'P;:h_;uGUd"nCZ1Z{²؂9.MJY|N$5m9K˭QMaޔbam$O3~E0e%$ҫȪIP` n琉1NU sCM #m% %V-|70Ҵt3ޯRݡ4fHfi`}h"y$_kRC޴$1nZǴPvmlX z(:r,Xua1*1W粆QM6a+ZOg]βwܩ},[l;GVI˰9E2aǻnQXl[}}||W*rIt26Usؗl)pAo^ "(U#PWS icAQ)mz],֫Xi2Di~4%#U}'C١,9Rd20#:p{j^DQ,~zКj|_6 H<bCV#Aګl5rHExvzNR╭YAXGq{#l]pԯt.NJqIlyaz~ gaQ,e=T{baa h7 aT'.î~#vmk8D7V,.it=ޘy.Dnk@Pw4++t!R-A'Iƛ c`jS*Ktl o1 2}"d钕0Xt,Q#Ÿo&=6TƲgXRA8!QfOb|Jci`ۃo.y'bVџEa$iΡJUy4}i]μ =ZXf^R[a_w:I}>|I{^ѼM]ضղ=Jڥ`LhaJy ; աb-j#r ,T$:ܷsXv l=6kŵn~.֘oZ |Ϊ܋z& BcOHYFvmN@/z#[IvR k ;e}z8ߗ9<^o_FmuZZa8pOnf5ѯgMij{=1^,I(!ÖErf|7JxO p@Aleu1ed?7Sr;1a ÑhRgPRv,bS}Xu. r-T0fmdR!5oxzqHnҞދS¹qXLlkW_Ud2xJLnۀ-M] =B;o0}ҭs-(m-~f"[mIf ud-IJQˆ+z62Gv`!vbdqO*mTxQm~tbI fDV[!֟Ս*AF;:,oOU.X 0*бv> Τ'j$e q&* qDjߚhxR=OuVu?y('H-@ LB\2*yGl2pXGӔ:oNzZe.dw5Kz%JX{~V;♭ZS*)w 0]xM>dqhr!Bq IJŽ(gَluv>c*ކO҈Ž-e3ninݡb *Զ@\V %I*Hik 'mXк~E]o'UGD;T_{8 vd(6I_jK>E3ɑc_e})X aG<sӹm}<'Am*TG58ͻmi|Gׂ_X+U,Je \raP6"k'޼3}pM"[ pg}l~.Y*Rupzc0o Y̅E hucG"0XVmX7)dmLĴp}q0k,\>`c ;جի";'oֱKlu;SXk?Oۿ޺0n1,\{R$ѪQdy 8ro f.u?Gq[Ag [k!D}L)BIk 7A#iHRV`W;C#a&gTfӨ$(ͻYBIGPWV RI;աT\9m42d @=*DyIQ;rEn[`ZԷ/ J^">)^އI$ ZջE&L#DZdSTf&Q7{w26" w=/ȺHqТm/ ,84eI@" /׈DDa^88R\!7n9Ө<oQ f#V W-iZ2oBu=U &yt7K ҌB6ы"AE:vTP$㱷$4fm3+jJ48.lb ڊ3Y19:{ZwwPUXEMl.fT$UEGvum@9ն1J"u {2arJH.]znj7&n2VJ.@.+ Ja Toě(xZzD +֩kfx!-2OiM/K4bF*< FNQ*` #}F)/j@ KjHU5 جC=w$U Et\۫0Nub?*o'0W1So%vڻsm*'Y6]U\Ĺ`G^[32XṶal9a7"r\U%.3,N^|V+z -{n.V<ץp*4}/Lmҭ nݕ6 ]b~mNPbq uoJl j5X6R̪콩҂!(,{CN<LMrObt] 2bAOMIH,249i " SMR-X0D /uGqJICWaFUBB6ӻJ`{C 'szY, 'J[*Уx տuPvƢ-]5lf\B9 Ti pVXZU7ǷthB4c'Z lv=*_Jl ]3,͊0$r6qyf<#r=Ot*Tu<[ٗae=}?}8q^ U%\}嗿|(*-VyU"06Ȥ#%'99>nNM$w+he@D}>ꣷ?JB-i"ӟ;8U@|;31!_G)3K5\6xv*\ٵ\1'WǗNgXǯQn^][x[k=K5E|G?]|.q>=Z!Z; 6׍^>IJІOlO>Nws XA&?z3EzoE!7%x|KX容 5!eʍ_-3ZU'IyܛPHH1GJ?u_lJ~Nޥ6~2\].jn0HBivq%o #i)r[T4D4KynLnTmD JzD-/{i SJ'ظsf^j vIH+yj1Ғr-;@tmXB<_P\. gORHw|1t›Dt-?KҴ[iV!Hn*yKQ܃ʋWo#sI7cI=֬m^onDlEY75 _M''Гb4^*u7#*iEr7SpIY`~+=WON6ٹ;74×Lq{ӸI6y1{:Ҽ+nE}. ¢e8bı[h>\?F>}gqW\8^͸ -k~<34knV\GTOxvegQ U$>i @!;"f "nu5HRTGi)McH a<ǻ7g*l2+ii'{Up.%sy~K}'Ssb aapʬHMm *N&~l>-Tm>m}?vLnyʻ"+3 ~*똵j–ǀ8;qs_=:Aw|s^{tGVX?Zko/ZɫcEH I=r8@Az4ѥ*"Mni,Djn9 SR8K,ZN). [Jy;Ȥ㦨T#_U WГ21?ZC`&$m4[.(FN|Ho ROF憩'΅U_L&knx+2+Yuh*/YNSB[b>h=ú I]iQeüL5gKi܈;}j]6حݔ߾zaΠmKI'jӒZe}ȵ/[[@<75'Y6eÂGU%kMgUؤmؾ[ˣBʤXjz|JH#WOj\K ڤ4A\h_"jk2@^6Pt#K[V҅Wy{^K[b *2'}V1op)>>`⽅ Iʦ65r DNH K8#CdzSԝEŮm'}#sVkn&v-\Q1Y5-]n$Dvڭ62Tn jS>SmJMH$̍-0~)n6HSݩ\ZG#ҦJ(j!'@OM:e{'֡I72xn&L-Z[Zw򈚤4%1;IU{X+ysov5mIf-j$G9tuYC `wZGnT'#$j _]$G_¬ Xja˕k~c r2/3N:º w-A{1Բ=~Z[,j?糝3cυsL-n e6yw1\έɰ:aq.FHdaOE9OH>6"zNs|.swpYUa,/5VOnWf\c~gy8|gmgG|86̯ncpMeڣ8Q9K6G&Xqi Z@B)C@62@*a\/p\U-?9قq 5QӹTXQo_uNWqXvg_}9u uf|KL?. /=s~}'9Ce3YZ/2>5_%dɑxmqoD,I+1WY)lh[mcOWo4F.*a{֋X'ebi 3KsP옸ڸ-v#i3d-*6P|h, ,$s3>ˏ0V-Nj横7|x0fr{ʊCki;15=MJ8&)1e6h-B}RJfS@YvZx&m~ Lԯԩ bۺ. 1:ܹU`bBH.]7HPj$4X EjRWIjOEgmgKۚ/Ԗ j]7[SxAGVnj"nvi8y ihƽ$AJ_'] [$q<{zg> IO I$]K,(S0cB,*AjOoDYM')|!b3pA䏥V֘-Xo (@:OQ }a")* \U[Iϭ-N  {)Fay#A&7"BSGԮSJMJB쐻|ǓNLR^PA1F큙CE;*"nix;/!rtm'|Vʥ]'s^z$I1) qNt5ڄtbϠƆ!y= :e- EI2">51c=26@PE5!Ek~h<tVDݐkw?/;R>>:l240=|yޡ}k] Q_5#Cv/bjJPq@*V~-]xaKr}})nvn*N&d7&=) Jfi+ФHf*QJrR :].ƒH{W/_4U~TپP$io6Ki3^۶4\m]^O/Mg6OS]>> 皌P>(gYm^Kl<,۳>Uma A%}oui6墛[v"tV|Aqݼ2v?z+)׆,嗯_ಷ3#ִ܍c$kˌd 5kHX7#jb/J!\&Gi- ǚ8!]rדsITOᰅK<anF/jď.Q녙M茽3n#'^W#aFbd m۷jٗ#5s*mY3~[/ ܑoϑW ~_uG'ז10luZ?MS^G7Eb ] GڽI|/͞Xg~=z^,V0bX.(_ݸTMvF)53qNjQŔ[Gfxm7M㫃&7fvt)kVaim_ C}̳ Ө[zYcs ,-H<'f}z%$I[^Hq}Hb7Kz+ e!>{?Kkw,FFÃ7[Vޞ:C_qYB۳t ~5y?o/kʒQ}Fxq}/~謷_퀘Z)cݾh>_Iޖʺk~Q&7cM}'ե_#&GRv-oze](=uvp߱4NɀPq@8M'z*_LF A"6;ԷM#i콽ɿ'R:S0ܹ g rɎiԸ4zˤw5N1Wg qgUَ9m]+2zGcRa²ܴ F*Sg>L]=w!4]5ָPZGW%- bݡIPֵ|+HԦ'I:2 Sn (u)9"v? nbݻv\xּ'k im I'oպޙú%2=ǽfl?>EvD2U/^\CY@("A5]MK7bE<@XN1+s-,نzFR尦È@ 8G^z p㮝W  U?H%Q: ޼6-+c}{ЪipP,91>WgnS]R ȡtÛ`dnÿph& ,O pIBof%y. >E"&cu"b/@=m㲣IQޔ^lPn2TZX#@fuȍxiʯqnEvwkvXe5W:${4q*e8*0tA~ռUXL1ɪrkHvNی@$ ^a#`f?JwL.kBXS/ZbuHT#-uH 5ͱ9)LU5{Ue*CuGz0un+WϝL6X;^G>#{%{juD&OƏ0'6f/: }Kk[krϮoG1Yv`^| i9hl(n-Nn95: 74̯3Ż8l#ja"*&h>Ex~G2ٷfOh7. ernKyV*qDt>=>_pݺb|d5eO*> R6|>>|tiAO ׏̿i*7K> ^/kʏy1c8Yָ j֯󟊽ix%1GWO>_1? $&a9%cqZڿ3TϚ⑩ \e(m Kes[j^5zEu%$\H8BN%ԝ]pT$׳ED@cU0XUUz ?qƗ%Gv.K)up3mMHUQ<% ~*qPliYvOh>& 2[)EC3]^ o YibWĻ2 z>/;g&|*=]%)n8lHY$xF\tneElZ-1Ȯ_^%]zUG5۶v0Z[m qĊ:v);4Z?.բՍ&c)6 جEnܸ*RO󞯿yW(̀BN.=ۭ]s +r|~fn9183{MIa1>{=@xWۿfЕqo]Ϸ(G9O>ŪQ]_|"˺O#__˃6`qiN550q aͬ1\ x}Q=_1oKH_ar206-EUGl+-:,~ub˱4#'sD)'eߵ6AH%Hx*(Ng?fX\[X'fHO{Yᙏ{h%ֿY}`ENגJtz)5ST XR@|"g[r,lgz:=wpi-UMb8?ޕZ.ǜ_LK#w|5VM/ݼ ZVm pXkor%\y/cwEجbۼ-nQҒlZ rX*a۷>E2*'\cXmqL7>[HRKkݼ%=rf W:WwqCtRD=iW6[2u&C qW&yJ35r^^an j] ir2xrE%C [Jh"G֚tZˎ4O;F%T]F6+ݺEe#X7]o ZMPzݷ`ͫHZk5 ;І4uQ= ﹎'ޚVKcsUHAɓRWd;R0m/tyBe3] mA m_7Q?jSJ4M#H@c})HpXd_6c ٘H$ϓmئmj ןa~QjL議QL7zqu'JQ[%h[xX+tЊ" ߹JHVb 8J F6mKh>~y P{B_>_j=&"GV S@'svV-y1Ңһ]ՎShVrԗn-6{Qrd+7{rbK RO+H$&&H1Fb6 \@.3H85T+j2GQem&XDLUJ`4#Z[08]1EŦ!aG5. h;R b 36IKqU @l]-AV&8:PMᷫR䨥ZpVtcKu kb֒mT .ɭ0Hws'޵[3l݆rNwm 1Kٰ{v]^> d._y'KaŬ5U^~09pT DWx>6[`Hcsd]؊cG##mÝYÐ@ jgVk'W1B@#f32m@LX:<9-aZM=:mp=qe?!֫3b/r5;r1W(yuA9H|9_C.[+9ɮͳY\F)[Hiv?'v#0M/5K*W'|.~N_oCk?'b;HY_n"n ӲʂdIW̫ܲ m !-YPS_I J׳3>5('4҃#}ߊ [Ӫ1FMOwߍNC(ED R@ߐOzd6߂8|Ԁ> V]y PDk7XxY`˭'U*rI+c\bb<I9bIAYˎ.A_AI.W KDwg׏>džUMDDIaőn4jPgJit0c{!s@I6όEtRn|@B6Uzپ([kwBvN# )cX +hb[jWp&;o 2M[Gfr4±a+6a;y>nM77L1~0j ^vG$C$.+rQڽnlc}lBkoo:WD> Ļ#/'/\x@i&)Sv Ebn,4LL*Բ!oF{CƺmyZ$?*ķ[K6̐&{wE5Hqm+cŖkcn- @(=E4[ {/{V"IgVj/b7zwl@:'>m/ljLoEvXto*ݾ<|"L'M7Ɓ7T30u4ʘ=]Ar?җV-vj;-HQj+3<ʻ +Vſrc`kQC_V"B*5 p3ܺˆk:$It,ˈ]_s]`V}*MV*IV5[x ݗJ2bA2N=)8W"=OCl[[Un;bJKh [.FПzUv* @b EVu5y<j8f輻[%)n6-SXJL> ]K,$L>+j6SS)]Tڥ)=2%[t4>k廤Wi$KWT1Q|4Lj\;.CDsAmHh)7e%zCkTb#^g#'1\Era;"&)&\qŶgy. ۷ҷ:ߵd edL^d<b4#oerNNkk8B0]7ٷ8$$ NKeְlu%/+7=BaYZ?o %83Fxz/Ys`W?mN̘q!|h=ؒjW9y9oyɴ7p?\`=^_7Hl Y>MTA>g,~eYb;6zb~W!0].qdȑ1'(:>,I(tKxjaRjz6j-凼a4䘫-al3qԽਅ]n@FSV5,Y`87ד ]}ϬF5`YF ^GwҒ2x>3{_q]T2; &̙iִ&x5i/ ^<}Q "G.*^W][*nI^V%6U{.Eb7G4zZԸ7 epW >E$m`E:ݍ{w.02?{}Ե0II-JR'T;K!zP0޼_w#TDzRm5aQm'i#n.]#qVQI!+ 95jڲkv͂VscvfVLZ}"5+xc3Q[%SDniFTmr<9~O$Tar6* wGc3Op*sQ0FJrQFS+gԺ#~_۶΢]q0}jvRP"ۘ;Wx5hl`D +c}kkGeil+g VDmtm~Z-YTbhfrۀ ~t 0̱Kfյf{a_&WWs1Z}62|ՊxuBw7= j~7,|"^3amd__ݫ]12\=L߈\;8xdS/#+?Njŏo{LG`^iob7˷һ:;6mKe8+fG߆(l2܋:g}; *hU $򁴙H?Z*27"8:ɧ葂fT|ӷzmď2oZ@QIG 5S~L 9vYf|?U/SZlqO#G^rn7Vh+X leIIpm:VD_`qaWL㯫;l <XFZg\%mwL;%GJngv-ו4l:c޾ _i*Afcn1IYIZotcuRe%cåUq#t!s0apFI/;Ư֩~O΃:K&F~VB üY_1>-G[B9+Gzy AU ӕ OV;w`nZ*<OV.UT 8R=i'[f3ں/*dFFJU lAޚvh|5FӅų;# Rl 4QJ-O5fò|j#Ρ*5 a>HVN|wc[΂[Qb˰~7⩻py`%)Bƹu> vPi#A=1w1 .6>؞B[Pvސٱ="2g 7]k&G5-&[>Ywޒ|F&"`;oIet O.2# vVmE-ev OuM%]7U30Ҿ/V80F Zĺዚ3[kO){IjEB{J dQ^zmv_dĉ}ꧾqM6Kl\Vkd%0cqq%ZX}+NMWz)9|vu8kv>'u 5ʺ)5GfϟȓIsWf7ί^RglMJI] &oFqZŜAӈvfh.^c({iOM*m]p^ XrB|F"44u⃔At,XjԱuǗ5RGx>5$ap6 \B>s0k{pCݻYc2u l*STҴ]q@hdrTmY9֥ɂaGijp֢|U1#Bݸe}K˚4߷E˲VͣiA-OޙEn$re d®eY'4xhT2}u$#O<@L+=3j $m)]RtSXZ .n(-oQf$Ƽ-?8dUvHucQC;RC\J*%ۅLVIO愺 ?%}#]Zj^GKmT$zUuWwDmNb&h`;c;bV|EIc-(B >PMkI ;zrt+$mLTP3RijApCj}3@n ( Hm&FKWQV)f`(L]!VPVU5b챷!)"gLmǯjcTJD!ǭ7XH_Ti:Aڈr z yH޾-@fb][IG@qm1vk9[vDP95ԗn6y^1gbz<=p!"׼{ >5wuĀz,t-L- 0v0۝grNcsV  ;;WԌ̃O;bKжq9vĿĦC" N1W0a X3qT1\=ۦZp.;lyB5 B4q$ ^юlMq4*ǧRZNʍ^*|+\XE`#gz˹UV|KN]ÃM>Z)ۻa0/]7+1fK,Eˀy1zRiX cjݭn_G& ՏoMRoeFa_äeWPEh1L6e]^A=KkuM-b Hb|Fr󥫃U g}.: 0 C"[Lndw[{'UrZ;G}P*{&7@Q\NaO\,9{Xu0 ZC[2X &>MMJW;J$H[8gKpc#U[&)i0wzYnݼU1!_Z2M2X7GzؾGB QJă)N@Bإr^Kn f,;1ܑuv峫e7b[|!bQU䮋k}"NlMh-zC*`}d$11#j"F f}&W/ tƒ oJ,\6 MCaךd`pj^zEk~]RmnΜϽi+k;0Sm.!;8B^q?چg`$L,b/7?/Z!Eٓԝ;{ :1:-D/~=|/>e.BY]8?#. 8-_p@-]F([6$n XNiVD-;lG9a/䡤Į/HPAO;Qa 2 ݤ8, R%Ko֜S[K5دjLwtĮ1X{'C[,#c4p΅Fb֔u-Z 6,`W{5ejRq-V g[n&7Z yyiv|wG Ie]_)\9S}ܓ]~?l;>XL \R,"KqM}  >Ѯգ)W;JiKM"z^ -¾7bͱ/v'x뭺k|.a_ދvGmIڭ96[xfc_ϳ&mWo {/'YrK޳XZlZiQW``yII%G}zӅ3Oh>HtA<#g}E H6a܎{`v .BGoA1j!cD@1ETfl̫x1~c:IҸvb&sNi\Ĭ_˱cnG^kwD00 zW5$zvnHO ھН%gFIS\fGՂr?Ct_E3Ѫ pl ؐ#_/$'1Q7**[` ``'yspxPߑ\ܧim;Y.a+({p${U&4ek'AP8,G\.?Iµ-YPaҥ햟r+>`OiF%ݺ5+ %~k,y?Z-c[6\(oO08wĵo[%DolKvݗ*ˤT1qUv3W&cñ TҧQV*ti+zK1S@_+eWC;A)v+bݽvӋHAu- jĶ֝m;AH{t4[x=(aCj&=jUױskN֛}Ax|P -X : xrt91;**B1Zd/{ӌ]և)Iihſ*LQ,x |x`0 TƟYrfB쥗fǸRMhV\U.bI #\ۧ:p}f}j` \=KY[/,dgOGo8e5m^UVy 9XMh ˔yh50lGa$.g.Q݊2\kG%{R-P!tkr vRO-dJXgQ#Xr] |B֦'i@-VozOeQA]V`+ډ$CcVU.CZ H{݆;4=P{qd-Ey5iX-V,MqL6To3l UrlS WQ{b?A9M拁A`b` Y?[V KĖr|R1w=j"vYSTI7ej>@}<҃sK[9"ӣ_wEwX,h- ZS3 tt@t]L}{QvfBXi;U֭lͭP4S5daBeY1o˅ isz%VK\:^Ei;jCbUXJ;[T*]Bi-tCMJ\J\_xߊu/"hf>)&+c-lorP(۽oƝLL*w6 Ys n[1Wު9fpNbilRMX|qkm1LD7KA8L(.=6澃1's<2t= ,kwಕU ޾ID:lR.ݽ!7 Y 6Mvoހn B_#FfQYt%s }[ڼ4EE: oj(0cnMX$mUNG}*ƬTV 4AHcƞM0]'jT}`D O A4ۍ &@CzM&Jހ$($DhXj峂{IJe}\`@ [ߍ?5::QCum¼Ehn@xdiT}*l.'k7?ٮ# fjCc kݫGo3gٵlL^$6V|:G'L-n&}jVQְWߧ_opF-Ļ\ >Ofj̗m)@$ b@'Rvr`[V!n:wiĺnx-"y򊱵؛n1:I҅=븻V^X{ - =ga .% {lK:E:̞h䢩]l.=b\yg۽2`迉pZݙpoT˙߸oXt'ҭLxafCm|b MFc}N' ~ܴ<@EVoc/f9teHk(T'z؜\:_Ŷ_#J`HZş.+gT4]R\6.yg*J][ax}h[e hL9ۑUavz\U0ROL%klpۀ#< &&bVHPؤEnٷlԖAGh[ˬ U'[-,nkVX@zUi{ru@ WjnoC %21!Za0quPz)r˜=$'K*^zHhc$[V5V5r&#mZ۹9hhRrNevQ[RƲ;8T\`ɠX[IQmEv[*cu!5>iBi[Uq*đ,@"v& 6J:`pp]wu#K=)4Ӑ[k-*ݛ0Rۓ%J%/m adD{ݺ.[~Bpozcujl] n!LRAqBD1:?b}ӄVWH(!w\-LaXvQmt-ݚ0ʶΒX^ Qi#a洺엶 ݻsHhA7ռn$ǘRqVSczg$տwp63s.cdN#pݢo+^tnұʭ?샓Oqplcj]91tfL1j17GqC!#J]b:|gv+`o\ʝ2u^09>t$ @U22'hJ1[[Ms"/X zpOeLzuL{OD?2"FCN#qS83t\ C>w&䴴'uS|/鋂CR0X(]霺f?*y$+uM>޶-N4E${m\߳@bn{!pgkEI:rG`@q-z4yw wZ+V*އr+ #NWYGxr(&&3w+Rѵ7DM. ޙj"\IA@Н>؝5@ z[2&$v՗JKr跰/XK@S ډJ$REMl*{nT >9l%UH-۵NސE_miЅRß%&!6n\&ք*Z ֙ZVw\, Nݪ/zPpKE8wtaeKeΦ<iz8pIVd9QtjFcrUb5 :8hնMlozͰVi-2Zwh (Nj +^wVPGc'nvS n勪U3{P)lk85adx\%`# lPIrUfK jUml<֓ [[pqL~oD|m%%HQn޽T)~FNŨ70 kWeE![mre֟N;7C;D=w.@!GjI~p״5c[.ۖW~b*VJ oW])a>-.+ā) ,5YV .~څ-[KZ[vmboTak9g}n)ؒL(̰n%ula> X 6j'y|i`(!w 0Wִ[vhxl1e"'mU [.^* }޵[K8c P7ZhN͛<[tdE}wޝ0\N4ֻ'֛@FsΊ j=na&(b3]uٗvr.ۺT+}Zm3d-Mn %{NhQr_g:ʭȪ፛ ,"Ė*n ߊQpp;BPVEwl$\{є;uS2a:*/޶!%& 'ڟ/:iR-Z(i+6!r6?Yk4r @n+ ݯaD }Չl=2+ IG~wJI${]Kᵲ_S@ݹu(mT؀OӚpeH/2dy o{U^޸ՠuǷjQ?h.hK "QX vScڡݯXj֓d1*p8h/x.`rkW 7 ,N貭f2XGKh6 #dCS#OfT% q4Teb6!ҐoHj8tzğW$CV\K=y"5J#_O X>Jq(1I *ڷq߾ȸ#Mw42 ?[emY-"f3D 2,DvJqGDg]g6V^ԁ tW~=#u Fʒ>o3"3l^pJ.WVhacv;#V~()hd\64$6$~GlJ vңo oI]!},~ًl'{P±HaWʾCnd{bLjS<كQJسӹvMMp|6)k<\ꭽd -ޥ̏r[aQjVMV:03፽ "8‘+1y'TSJ_ʎ[ޔ`BZ^'RdSmldC1$H;޵I)$Lm; ىޙ(Fh0S[-XAG8k@ 5H{Pؒ Oji]$Z%94{{wREiX:[aIoqm,7jN-hUl؋v@KEV蒥.ړ7A ,/gbz-Bi;l`@ &vaA:UxSN;bi2[XXMRWpX҆@[vWVp !4 IOIOҝ%I贫 K'Zc՝ 5I䖨CF%(*-}*o(㭸ojpA ]VmV2"+[q fM E =iWZrXeh(.Yռ%ӭ ,.ܱh.nrNaba$BmWXq Q WQ f6j vY.Q#x ޗ'T5ۿv [t+0fك"Ie8[WorDv5[aMf1KvvZ@ X) ev#5ẗ2ASӱRKv Ozg@z#\hM;[~T[Uڅ]¸df;sM WE7? \޵aǀdڕۦTRmZ ҧDi$4S{۲xE =IM3o@kbI;MM5-S[]Xđ 8F5}DSmcqUo &;@|Z Z"m޵ .ِ[ƺ9";F޳8@U%j7߼T[whlw ޿L"ca׽i3ch/N綱(3kP5}b-4IE;ЪLmWBQW}]@ F-[hj.OZmQj$Ni>o$oN9m `ʁ GH4tG8Y<G wڄ3+<#Ӊ6*KZkX B)V-EQ:_̰9f,>kVgN+MX,0v;›A`ax3ߵdZplY/z*} E邸1 h:L4'Tqbg{nFt۶#]MN lC]ބ6m+ucW*%pnT6 'P]KW1{J%]\u^݇j8Õ+|F%Ͱ. ּApb0n4]#Wҳq 2 d>ڴJN/bYLȂ\iP㭔?nԌ(>b۷E ٛGyqQ;5 j:YQ<ȥ`_{wwQmЛt1!`m$yîbʶ_kr4Ҍc},h]g5^+qnX(Humj L!lݿ-0$wxCebY?ڪPMPe=\]ib$AM^Ql6P%N-ǃcnPJ7Շ5N%ײַ i{2Iۚ( l rh5Yf6A&\cD%nnCSIɺږ; %AŽjo\Dic>ioFl=ӄuo4bOb\qgD`vgڟܵ/b_Q-fia%)-$yUʙ.D7q7T2Y Ah8VZܫ\KFFE_ڪaR ,fbj洌ۏ0_+8Pدl6ۂۀ7&Z+^Y#yF]217|Kp#TORbn@[Cm1$RrMĸH@}=M(F?/>QBXVESEՅ:D3[%(_D61֡_,"rғNaϖ$GcPrSO 3 cA<3U߷]eLV^i1>(n}=iᇳ1LETn⬟b bLиqcԺ m;~·,f21ڒt%I=. |M`\6N>kJB\uݷU.*xC.Sm4_Z\BfWmOؚ8e4ޕ[N\3P+9nj`2;R}ИK6\\NeYxF!op72b,dzzvK[^ gYdPIR{!].bUB\QԐSzbVиؼ!uwP@Zri :+xpp֒@Nq[03nJAˋx_B>3ڹuTz.>JkHؼ6\P$v1;`#k"GzJvf@6\߽Uo[GIg POJm8|*8ف }\aIڐSb-a5^Źqߐ% "з*ļY;L9*ABJm$ )Xb.vߐ{+E{vqA1&ع=j0o޶ҏ?exZlF&Ecaު}\\+^ ԣMY ʰ+}j-MZPcҦWQ*Al\eŦXmѷkr3PiYY;LP˭M6au6nSkv@KvOR'l!]X[fGXX[`%jjN:WV.ռP6 AA,F:{b=ak ZPhtQa,!lpcU,aɼo00T*H(oj9.ɽcEeY4{9F17oj3_ߋQ{2܉c~Kō's 7HP8xP4,dl3Q@t3 `{D( ~n=h31VUkD3Zam5>\)}~խQLkv˷-(&=)7ݷoo\1 jUғ%a>*¢"* k"ѱBիm29e-[0wK9:MzDVRIxZ5rEv͌ =x Dd$SM'BV^K,HsOc>c;QZvG-U~+B=I3V[BʥÛ°oG4E۷göƢ==V>ٷv2֔ݭX| 6Wa- m8;ޕ1r$XqШOea,\T5:H؍k *[mvwx"ǴPYuI@5ﲫVKXlIr,À~|Og-]5-]rj" Zܳ[W0ݽ J-`ZfaouR *U>ކa nD'cITIxV&YP㈦KmAś`UU>Wfq!^ v"|0ʗ%nO;QRKAVar@i;6|?p|}%~Du!I7x F{ WlIV$\nUPeOhb0t:Gғ{R+-(XίspaṵAZ)$\N^- vmej.⯰U*y<}{ҋ\$ez8#[6F8n;8%*ӚQ#lg0."'`"L[ 5 I)&!7brWm,T}!wqWݼ5XlH16sH5%5' uW! ^Pfy0hq˒[dy4CWnT#҅ [f807__z0gKt4¯H5z!0]LXmV[:1`G}|V~O,j[`B;qnFސ`7hI5ԊYK:MVkݰmܖZE'Y&,p4[1I A5H|/uMYFMVʛ*G/X#WUB,JhnT&7R >b–na]L>3؝ wVIKHlpzgq;&NQq6m^Y%z ի2]Po>'l$W{7- 7D Y^WQr :-$O>}kf޾XRޡZmt W V8y UuhqeIBoBU'wшQrn}=@UU "՚R])NJYIP~i6U-J\<3 #Kޙ~3)Ͱmcø[PT~mCvkc{sIϤ {0ؒگ:k-?oZW0wg T꣰|hլ{^'͠Iۖ;y\\L֡ir{WŦ7X;A >F$aqvJE.O94 vn[g pUAO.9]^68 Im?E%*p,5Mg`V~lB:4'O$Я7)Ǹ 4#y|5W ɕ3J{knoqmRH*m>ԉ<Ӹ$2V ,[mO1ߵhc\%*쨯0jIA[ rH*ij]\:j]lh{wLj-j1F "#RK2,E*t8;wXvYz޸d?֫&M`b޳MI_qFX]K)PLg_j(`˼l JM%4Mvm!V7* qIrbI fsbHz֒n#-@T]mz改;.K󷹊[V;+b񘼾_$ʻ1ۭ)Yy1 A k'AmR'j'{/(599B Aoj#q5cȪggx[6=iЀmv*jy?j(15u2bZ-6֟CFX9p})?14‰>mUB#zf y@2@V@ێsv;Ew2F`TDs@cq @`}B4wzL,5ϱի; K"] ʰsb 4̃<bK\K#g-ܒ%]<Ƒ%>\\:gLSn~'eshY o_Z8чI񱶐ھo̒0njivY{Z7ppgv )/oi'KByZ`eܰ%6:k_pVѮ ϭ@VVw"x;%=0t| pv]x ߚ|R`LpJa Z]EYMdSMݲn'ܫ5OW"Zϵg'ɏB6XTjR䤀LmUXtaCd;r<> q0 YޢS/od;wa)I*-J5or]BA6IS"O5Whqbhׅl)}*d7rXbe(JYJIF)/21gc֐e/-*bKNiu8NĮ=qT/Y7v'I>OiX,^[cUj.#DSe=MGb} 2-E-8ޗoⵘATaxkH8U9[ZF,; 4Usu#P^;Ĥ?3a3wTlmpI2pna&X[o0 $OV:n2$0*~VƓr=L[ V̅rŴ ϥk\MʥE_ &KĒ{jx, PraaAtV}M -|?L=nw1Sk.kwFQ}2COTjg|!Y1xmX(y<У%6!є#0=dy5UB47%U,L聨F=ݾӶjV)EYV/"ѩ;'R^#)-6w[YX`0޵ 2N{>:Ӥ3?ҝ 0wyYJc7HjaeMl6 q|`xlҧK`hݕŭǮ]Etj\j_C=H}xm J,[s/ $D{ڲcqp6!R/IأK&.nm 3~W]I}5/oZn\jˇyUX&@~-Xdv`%H1kx) W\·VGs+Z^Ucߵh]ЃVZGWQk fVWsju.m:,m;=݆-GhY\EP4,T* Mn^ -nl߀j{v-5Wp=9\z'WFpۛl7&ԣEՔfwbê0H;W;Ħ7.FvTE}Zmuv.XS`VQh7`76WDgrL Ÿ[f>`׼aVu'H\t {x<7~;ڷ{"vm6ЩWz㵋+A]8|b|da 䏨5T%wwOsNxL}6ke%ɍVð m#>u0X66ȿ-gG+44['X5i"VAH>P vNPeA*m"FGNP4E0t÷Mɐ'J,$zLhL=TU|+wW w]FdUʏG[W| /g.q/u@d jӒ=ej)0xgP ޾^$RqÏsfvvcv𓧟$TaYvm/eeIZU|V呶zJ*aUY[)U=2QO=#V2am 뀺4-*Tբeqo@BbmYRE­k "NsV^x#\CSnZvbN}UEb-0֥#zVõ|i% շ-\k[T DMB[T:@5.-[uWm:ClEJZUZ֯ըZkyl6ĉ;z~NM[q\@%G ['d7WC[3n #~Oч8Bd@DG(nq\Gb-R{Wۖn ":Yi38J;YRYM\yEݒݴҞ;\r;Vb%Wl *#IbXÍ d+s\-T54j&D6␸ӱ/[ò\ȵ;m] pC]ucN[aa+*tl?ZíX*CGEr)W3V,֋_jЈoJZdAlHT?ndmScӣ幊nPU!5EcIT..nc-RDT. ఴ51mDF˯ci]%I򟖯iAZpmx+%FY2[ύ0Ioeo ~\-2An@5aͽ;父Vni"$[9%1_ہ$G&bLmVWQWέ`oqڅ(T||mF ߂DJJU1J+BoSk\:*F)"Se3Z^Ss*_2""8ļa/SKMsqP!UW5[b oRsx ^;%ha0rϵ(s70iNq&,]N=<ٽ{%zQKIض7ػ5@.ZI:xҢMu6oz1Wi%%>%?Җ5+j[!--U'l]B@*'eXpx؊ USPz#TZvRB=ndqtZZel+\Ď`l aDoa$p_ 3HAs&{/H]T'Cj}#+PHΥUنq$ҷR]o 0X<;N+@lU]ޱsOu o7bީ/xݶA$o&5ٿvQo\}Qun["[KV Qo*^ soN0kR8G-y:+lcdLNQ4$%+6wÆ loanõ)ړ%5CdYeEåնUցnv֥"j._ĭ?t:gwkvP`mM6m^-iP3'VÉSj AGzuF(\ev ;Ҿ*_T %b(=q$Rxړx'fJߡ*3V맃g hY`[U)*/B W?іаM8ܢTrī]Ucp Sm̤fֽ{1%`ްbwH1VM ( *x]W'j͚|~oni-Vq_ZcduJ\R |vIs ?jޓs+Em>74./ qxԬ"Ug,$e1-f鯈L]m*v5ٴy\a+ʽ>{G%R5ϊIr&e,}}D?ԹSW03{-7G k\yEDJFϥ8X+C1Nxo'P (A 6Qc3ߚe3Dw(DȓHIS?j֠7@ކa?aJĬgxam?߶Ƽ@>a_Ƅ;4D?Jr(bvo7Y^uWSc~,#{xa\vYNHTv%^:~ݫ% ̉YkݲbOs5nz_* ڸWH;EZLM#Z!QnP[$1޾{3=C1L O I1$AœSÃmUVP%Z-*5!{(dn{s q9b|@ Uʬ.:bݬ0(6k#yX:5-[XVe΍ޙ-^۹qsq$+5v&ڼ.G?20=bukEOlao2h]y"5;'%6"\OqY$; {CrH%d*(t/ý@6,^49[vqS }i}CǦq֊MVuj !"pwH@Fh;Bi.[6!fG{*ɅԮ<ŮcUOTv61`衧IwރeW1Yc**pJ^խ!(ʊ[Ys*8vʯŗBT >]0uə7nY*DI7vU~HcS(KE|>efOzX&)1IFT1VlFUk tpC~zta!ڬ^eG[f[^,aU_=i׸t2LgM5T*2[L;cVZ1X)9ʩ"e4=gsn͢X. 4oe'%Ei \Xy`"ڲfjit'I% RZx* oVnZOqzS\}]YFӆϱ F痭^ jUMc6[$+‘ brs GA_Q*,BN}}iƷAPRZJS}85*f/HI GښtUBW.[z5:?x h?@.SsRWqZ |ĵX ڒ'C\ኁ>*^WKp*(k('֘e˖|e;zMPp+ rU/6'b}!đYu6uUl92@I#>,`Oѯ eɇ~$ňp=sv[hVIe,ݏVk kV~./HmUqojb{*ÌB^ƹ@V.NjcpLSpVil]&As%goʞF7;A-"[o/ŀ{A>s)c a'IPVa¼b`0ROc? Z囋iyggq-z|rؿjl%PAvKJ\j\M$?U٢qkYeQ -7xXf|RŕQMI|h8µb|13%kHI)S"ޞl6pmfI})nbSov;Ͻ_Rh\N|wa E[0ᕚYsѲ\n%eʝ NQܹmѭ(1Z9(O -VD;ܟzOlK\ܶdSRoҵf> ǿsP|WYd.`@SζO ڳu.gO pV{eSLу P<̊7;"k,xXihdL<%8d#j-vrT*mq LP|i:C,Dgk-i[jE0y5[N|#K.4'kdl]{f#5Hb=)[Xp꤁oIĮFr[TOU!~u=ŝdbOiJ[Mʨ0l7m5mE6KY?z#%[5T2,lN6wHQت.$-݊ZV[ր%I Oirqc[R`ެsMwR-SlZBTkex?Xl^a6?;M7.Anʃz7 G90QqqV pe޸0 A\|4,Zs;l8J;j Jv~aI`sV -}Baqx{&xhO|Kʳ8V8kzk!W9]ܯF+uF^}k|pO|F;ˀ];WcuQ8OٍM #}u e8qF!;׊pTVfH(1>F{$r)anH$FV@$Θ9qlcUBVf~v{,5`֓qZݏҔHx>?Jt^eQt{[o_'q-~$Z@'3͚l`ܹnXwqdwWa0'#jng il\ױ%^bwq^KsLaXwkbvIOц?BaaiT }߂a- Eu (~rmz[j b8W0]GҶDZ璩PeV|+.31nv\IKVlKqM" ,|{m6Bԛ4Uitܳp;1}ngԵ#Y[3lD7?m)[MCb~bXV[IqA'lJ\pGYbEYQqx vͶUĕ=M"ͧr:GҴM4($P PF[jMaO?s =_oжۃU%UC5>Ziq5)ermnkRQ %]’eTf+/*FHI6gA[gSj` 9"g8k8a;8B\ϲcyع~kaK -:K'5bK]6 J!UpI`Bb_jވl'֊fY ~ic|~1X66'Hk8;oYJk5u%D> Q-,84@-$~0U98c.}]ޖͬm.ۀѣ5ҥDmm`t0Ѯm͛vD. K+lvXيŋd p8F-Bsqx[-ۄQ%X')Em97~ln!$ 5uUn߇_i8FNj*չa)Lְ8pJ+5rom0P7VKmmvOiRҲIu :l^-jN.G+T^pYny#Gni5 I4d~k:S=fT[i-A1~X]GXce8%!L bhj,y\?Q]\,x}e}r-0v4AcRZe`.=V廈6m_/(S$Ak˚t4+`0'6A>IZBH0ru Oܽxg7{oQ6}HÙf8+t5hZhq7hu#ĵy !]\.B6&##bY@P܎l6p7I7T7/n Lpp}h!Pê qo2=ڽyop&0Z)K"o) >HQjH-ޫ|6(Ž@ѹ4 < c<m72qFOvωma6*?*CJ-t6 vaV\$+R.Aښ XVkp>z6:e-6f*yr(K`DlTLr,o(|۠њĖ?w*&,y>Nm.f'rl n4cXC`|̽5~ُ֍Gl]Qo9'U7ma46nX%*&HTw%.e$0=i-Ǻ2RJQvMPo\6ʖq7iUZ}"]ݭf|ɬ[[Mj-މVc΢n #Oo e7 \X'fBL10X|zXzUc?][diN;P9wͻABSh=Z qo[ M=1Ywpn#C^ڮ7>RZbrk^'`ݶ ah{l{DBDެKJλK0>շmU(qKQ (Js>BP@OC2@;Ze'@0A2ljvfnN7/au:Ib`jx|sWGIMd *2_n+ $;J<^ @d;ǵZ~=lvu>P叓U8b ۖb٣ҳ2P+4Tix>UXR[jtBݹ)r/YfąG(J,'ee;aҌErIƥI~)Bo*j>fvI5Mt^l ۽RAA^TOKI\,i"1 H8ZJ3]knhw𸡢k*ypob@;~UEK|DiRvaY- zpk{/N]ͲyP3冟NCk 5͵"fYz`B`0\˝UW%g'b;ҳZaTja54/Tt:?:s/oݓ>-G_nyqy3~yq3D.Q?B)S?d\\5Ch5 i:xA|&N\QmQ9&~ra:߅8ќ䘻lIqxK8 uq|qITa?3=aƱi[J;>se K(Wrji]nE1KK +kY" V6貓I[,r]m"Wjи)G]v[EĀZ-o-Ւ% j:Lv5aۿeW^Gͱ0$:`;S6Y_U*T{Ӱ[&*ն,l|IȻ;V-BMtj hpHsVǖ1C`+Iy&6դ6ֵZN1J=O*_|ăo,\8tk\F/6pʧHMQWMvbu6 'tr.Q2 ׽EIS veCKfi6&;\P[T{OJW ˛f5LrmIwUEhFm o=Q,2LZNRiVѨ>ǥ˚ehUZoiLz~u.bq/ȇ֩WI:-z3PDx\fi4yƯ{|*)8펣({S8}lRgm KFL= /`Fºv?jmB#+\ghƼUyU_/"զekfM{!ŵa / ;}namAt*NijФ&v7_2~),Aq.);>U}y-BW4_ly%}?MdB]r|RlN/V 0bd޼nͦ.bنRWw.\bATnx76F֍jEmȕ$M]v>fcVAR]*9r3<=C8XOگLEcN^oeZPdttTŶ9^XΝ80ȥIeF)ݻC}ߺY`,"NCre8] Ͽ$1Xi&cnկcr[)+M kd̰. sʱ sRi3NYF~:^ȢS$JįOnbIsY޻l%Rg>LnJeb5Y,\lenJHX1~vl o 7nՏ<nL T̥tb2yj#+WiM=8T^>*b.'r5+We˶-bXQNPY?>QAY``7O|~[cdNyE}G#D\w]*9"E>`gTc.z.Qv!y!g$,Q,am$__޻.9w#įL6ػ9Zu-bm\Pp;Ԁ*{Ҍ,~ }fQ0=A@+ֿrnAĻifwoEQɨ:G3_q [^v6f_k/Kg{YPAmpLp'28g^ jrwP>?eA?9f],UԀ 3^;ҊhrB-v1ϭ{[sдH+iU}*l(&]w[N !DofWT+*ۑhl쉄ƽϛUȚӆvAL}sI:aL2f+ATⲀvSJ-W`4 B pvąRIҭ c]Kر13;ޓk59|0~TG$bt™vapJbU_vqzEW>.KܺAe[o#GH6rǕ"ka\46ͬ[xo4Uq'L`3ð}lޛ}+3wrf~MVC$bf ,@[9[)QXV:f.<č ћ?I*:o([ͻdDH޳X!|v˗-ZXp<Z _V+mj)ds}q{YmxM ?Ju՝T=#o RhR+!>a}P+{:[p0šB$z*y;5hġy_= m4kOGՌLM˜0 AP&̝xY}Dih`}' Qj8$U27]gx_֟yX}Tי'GGmֹ&f¹Z6Җb4Us:T T_Ι:`N՚r?zl #'5]ޭ)~i&ٛEG%޻˒[FڙX߮/fR>}[mWRYԟ@=i  >)nuIlPޕ_WbfŵKmޭ_yS;SyMh4ؾ'L WIjA7'>g.~(eV)iNH؞ 0-—׋(~fJط`n5O1Fۻe+*I]쟬HssDt?euv"Wq1_O;9H3^eӨl7IⴉrR#ϊBiWe$PJ?zgTnK* cvK;RC~?K[/f-|+NƲQkRj]irkknOn Us}=XJ6QPb_2cjɺY޺aTn !MU7Щ,m+)m֡TwHXn|Z)4dM5-;\d_oâ(FfZS/8L+Y7mZwj{w D֦V%\YLJ(d7RzmʆJm3z}j幕-+HܣTt6"v:yV(k77UMF.%?- f$7V|;aAY4LFa[ ~hRseF ri'CAgŽ[y-\hVCM5YYu'{T8r[ f%m*TZGK &h0iOev^S<@䟥DdR@uP}㓺}L!R7+[{4:0F;G҉:%+hTZ!aF$:{)&qJoH3 J9TMqޭI$wz%@_R0{`"OBNIb`=ڝ_QXA**[H>Wعx[S߽`m-`XjIV.RVVk,2ݪD5.4P˸aVۍj@Ό+]%+u\ 3<76Uԫ齗gκF-b0}Llku?TYK,+5x~TB]y񬛊>md، 0.̦EsX v.Wڻ89`;_7V:@$Bn틅+W$\- |VMfS.V/1^!1,mWUշƐ(gz..g1h_xr1-mD?^k2vCm>^ubܿ>cm ټ&=c}ˢim-N%QyWg'˳/'2q9Nf,6 }Wɺ˧0fwYםTX6Sp`|lZ(:LdXw}ng:Z+{qd"9 _->Ӑs[C8۲aZB gD1j'Oyf x+/OAڿČ:|;bB(׃%T+`;~UBg>7K1ؖ Xq#Ux^Orn{5Haw rߑIfy*f"b*g_b:19^ >O5~.`e/^\6 j>R\;|W"S-Zhrg s0n[X :qmdoFG&YE֓$רz?+0q Ѱɨ6RcsKmg(apZCf?-S6lc%k NU7#HG!}*w&^ r|،󬱗Qlޅ ޷Ï7}1,Ľ5n:ܒljpQf{d[_(""gm֭'v2g8S蛗l+ jr71l$z){ kBhuzf\\lJbOns` eÒ>U^ ۱2冡>ZJrӄQ06KkZQoja0VYTm )捜*l.I*#6JܔxҢ0 G کRF/28kbѹZ6ͤ ĝ_Kti`U0 )6-պA>ԕvƳ~srYM_vŁ7'Ti9A6 mpX21V.Wm8u;n)\R趙1Ft\6vwZ1ZcMQ1b1X4srޢ ʠ>՘ݸ hP UU~YrʌC YoM؆ >`SғB*uC<[nG7~&~TGޠx~rfMe7v0b2K A3ƶL9n`Ё1Ks1x%pu1L)]db -'A ?bj]{]B߅Ժ?~)Prۆ"wjmq{k _X$W֚-'#07UL?^8W`OSJdz}B0ցc ʭ~jٴ qOC K0JdDoߵ;G-c$GjOō-fA] k.@:mv$]#xk&\f vs`T;kc;RL*Qlə X*WZ±n=vf_x{df+QXMT*U۸-p}U?D\)X2̪ $j6sĀ +֟RpOf}5A/cA(n+v_ѹVb[v59kJ66##"c 25<[}(F98ArKC\1Ys%, ۈZK` ʳ(85@%0ZPn>_n` ?: 7 eadM޶ᒩ1*Wn'HdsNA*b+cR%"pk,J@5 WIQUAcuE Qh*`H}VrRή1o&9gwV<Œ>EɄLUƢ̟vw[@GҴsf%ݼm\6?jr’8h[ֶ1"fK(GI1؛V&+k* cLz{T}Z/J!qx_ěwlU~tyo]'No9>rkm^Lio U?/W36㰮l Jvȓlpp3<\mg[T+*"B&QeID[="Ԭ<ͧ}e5yy-nFb-n+(kslxh ޮ薋N am8`w5q˧oB = t>֬a 'WdT[kcM! m jT"jKǗގMo& z6xlI)a&v&#q1CHl1,f|>0 ;Ь8?nH?,i8;#qJ {Yn-Ƭ\=H (ע^Ų1҉ޭl=D#7i[ rٸGݭ 5>&נ{_*bEDֳ5knF61g9}Rn07/]JRm5X.Ȗqᛤ(ZθKCi̗:UR.yr3| ZD#oWF9ILGrwh C޾1? s>ˍybVIR?-|9rMl;#ιxd# ^%i.aͤEfiRJ޷3j^{6[c}=v^UMN^v._ ż0nD"=}o%&_Sfy%e=2fV_JFm>Gjȣ%R)? "ͫ]CciKuFm$~*a&eA͘H>7U^oi,#>Կzʾ,ߕ|jkpVPDP ?G)Kk-YT-/*PzۘL;mWX~W<]1~eb.ܒ~ck;a q4u s{:u(-mP'v+W>Sa:GT(^a~'|N-,օpЃP|Xu?CŀV$Nw2o vε/r{=- ' 2-[IJ6OӕOAfkb'apHYa>7ځZ%މKDGtݝ(+VgaqK_qbo&+cGXĮWӶ$ Z_a*p.u έp6e8r][} ˇn[`7f@2`k%&L?o7r4xQ-=ױ`r<.\\:ʾTԧ[w]s1 D%3Umgq!|FFwOFʘck1M]fw T#&ٲ.'QZjԘ^WLG,9z4ZgruBT[\.O;RQoU$ `(۫1b1AEڥ}?H_LĵmmND BHn}j\QAr-pCxgi [yb#E/c\KX@d31 ܗY^Qo o.'Tڬ|XM.'Kl>Kg- oAl`B h}*jɥ,O„Ddojѩ|A3ښmvYsM@ yw>ˋ[sHbh{16܄Rdұ]3'74]Te&l2g5T nG}뇛u?1 XAU ="sIhs;*+pH?Nyۥ9Py!rf\WI>9K|˺<{I&T9*`;ۡ#/@+(Mk#hL\W;)p֊/k7Bޱ?Jb ;4H#idp^3gZ[AVȳEg{xY`MگBɐdZ%3>vXr?`djh!z'fj,2 ڥx e$jVY7hJKf?3 C\m v1 3SS)IR,e KanҖ-K|ǿڕƜPl꿆[w>1),*-A;4W[b i7j $s1Hl6P};I+.dHI52E0\lm#W`l1ZW(CQՓA\3`}R[tSR^ L,_1ϳ(0z);fvErk PAA:k!Ts}[8!1FPKM[Uq[Zl1*D`hnй%T -rYJ T kc& 1viJ`*l))tRKWit+#vS.[N $. 6VT?Jc*QwڒOeJrŋG[sa/_o/$UV\\C=It+ļ^2,BKrǷ!iҩ`n?W˦A"F*NBY VqDUƘXY6LjY&LmIc1b*J=]3pVvv~%0(YL7$hʨ1#q*^f2(QN >m.\_bd(Zmw"ZqCɍX\9U2t5j5 ˘1QBkROGjb#s"#V,57,gm9"jZOxoYwVZ f䢃Z.:aKn*@]Dj\ZT=ݰBqTexKțU쉚L)@U ˴4UWezdsU.fJ}j`A·nVk9 v#ox{U!UND6ʰx(`UM˲3Ti:#5^cYaM < y!a)Y|bx7ut*~3q_~'~>ѭٖEe-؏Hw,;pWA3:k-FC;:s:̳rHͿ7^'9l>p.`sk*3_?a(L)ř%n[gqk翲Ɯ)>V^]~KMQj=W𧮺.ڷUt?:%Z9^j#HÞǓ V8E ԥ[fuY[a'WU tNSVٮ:Qɚl>mwf +WGoJ\Qu9m+j#|:_[`F$VSPFSK{Pq@1y:+Zł>Kr賕Nj% ~Uf)#~]QGl m =Q}vg+mxxW?XXm٤4.1cn~,5 L4n#r՜⯪6MKx`YRv;LM^mmܸŠvXJ1E$m_l^p=Kwer|Zpĸ͚Ro*G}=g/kG<J=S_o 8zk_>'߽b:©h?X'#.Y}wmWX3!ܒ=:5`K7;b#27WȺk^_,+IpJ59eOCTwuV('pWnvu]Φi(УNv;ːfpbEq̀qK[\Yqew Ж}|X?qyce).?+Ve~됛(vD\>K~tT錷 ofwʅ0 yOZ[6 ˄&A,}#ЗwkacmF%]E ep˖ %(PT*j d;Zǣi:UQý7W)%AXwZ+A.uM⭫ld>댰Z-b;#[FX~{2v aTu {$[ؐGڭxJ?R/H3hCUbz*â۹ pL)BSF -+!ҖpP5cMn$̥9HSuCض$3 ?׃{1X{#ڢk縵%;:2-۶MU▨2lB2.֬{鈺夛GyIP] rv bڝ?R)RflPLEUZV %Y(5Wkn& aƛiz-Xf{"`UMi6Үtjo\;kiZ_?SࢩLکKW`*30765N%0ؘTWa(!N8NXX1 ءb iB)hEK$<ʑYmW cN2U|y+(^UknKn|\gX"8h^uΪ$>0eTEMvds҆ $ߚQrni&XmMsA6Ҵ.P-{6(x1)I%cVatxI^H?ҋp7YSֳk4euCj/ec'f/q˖۰ʨ)2 ¶:m{lٳr K6'~p[EX k\ NY1x>R-6ֵoVKix5I>4J3#aK\xI'U˕ IhsfF7Rā!V.}~inh{Tި{yc"`(D꫖X ;=pMoKNBGcnˋ4M}:r&#вj^!^8ۑޚ9$QF>mCi1ZtR1z$FQeC\ YOT8 u0}ϢU36>,˧yv%CJ1[Cɗ#d#mu35,H|{V/d8ho0zQ6W?/r4k-d9/ᑖ7+rE;a$_AsB ~<ٷ= eҶh4}|m>328ōgA (ܮnas^{ka̠I:ө-a_:RmqVBS5Ti1$SGyBO"RҒRm=R[mLׯZb%Z@[Ͷ­.1)4WWY_ y13Iy@8vzp؏ UTL`jM.#,=Hx" C TkE,:Ia)򱓤oQ$Cm`,BZw:Fަ-!G@SmP2ըRpn lW`.,]dX*KiTij[eNeMd m(, {Dfb&IZ@BcIT7՘uo< _rhI:V|(h_7#zK8KilNԹ'/KdF,Nտ 6Q%/lQN%a }-^jO)5v:Y6*|8J\m5VŲUM)R+˄,2Xէ8ET4STɌ6KEel7G>G pk\m[͠AB>vmVd&*E9-V=u@ x5|+d`-$A!%koT|>|zl&Y{L+6aqAS1Ƅ$h웗= KsBCBp`ם]+n|sb"/a-{ؾOF/Q~9$R!m6["=7nkH|ۧ%c{g |QבK:Nœr >kNۚ|oT'T~x<פse+vWk*gL%z0 M(jˀ]YO?F)H`,nh0/&@*wUx.Ն1fdQ"nt:/G1صDú؀y|;A1]W\E&4?ۆ4mcM[ o^ޙi LSԎtqmZ3 ~ ܺzJ f61w5\ $'mYѵy2]$-sj&a{V/m!4^vlj]ҭӶm{ ĝ+?4ppyOkӤҞOXV8hU`I,vҔ!S2FͱGҒ`X 0܎Bm[jڐ\3J3yz v<Fn(_73^-Z,(.G5}=T ~qˎыњS*K)3 XϤVSb0X>je[k1ȜUg3Duz}j]%4.:D]YZkuBZhUM^  TQx H;Q0)7+r* .- _uT^ ڗ2m.75l U 5f}fͫǶ^{B[*Xe0RWJ9YQIK.dXtJHf6qK$W$ӡ8er̹o((q?zOܿ o*Z/M[#.K՜{sX1]-{ڃ 8|g~ iy!&[ IDK ޲006]Q8E:1l5hn)I#7FL=B!Bք?~+o:ƶxlʦP.Tbb8Ey0PHԉ#8%R9fƒd {n ?J9S>_|F/f;{-XMŐk$\XqU$ Ul0gsUZ-eé``7.KU&Oqlut -l'j2 *y`pvKwR[:mW6/?Sڅ ķP:Z*f3:Gr׈6O,oBXݝ Ka`x*9U-sA075j} kGMLmŵmՑ}*Rzl&* v"`VL^IZIB ǵu)FȔ[^{lQYʹr,3)'ڷǑeTbel?1oO.m޳mj>{du~ :l@>%$|y݆|.$xMt"AkPk_[#WUk^2$ZُZ)-SIfѰ8tL~U`mݷi0bGމIuj/T+ȧ >bv"Mdn>K,e ge`\ۋfK#!:ㄺӔٮQ`1dXHݹk@djόvg nu6oV>_mBmI";99>l=FGϻlĊfR=mxHѰ2wYH42VεZ/]g;Sc@[U'idh㰽Ztʠifii8*?H2۾ \u A fߊbb'}ۚ>H K j`?֯ rG*wh'X oj& 97.OW5; v %}3-[LJI#ErV,&AiZbL;L>:C5 v%,;%e9oia1>Zu7O*Ib;XrtKLrvSInx'+yO֛Lm^/Xk "jOe˃ i+ !ĩU {2m5nar.(GCc: M 95C;V0,~ųmk3 "TS]pN?)fG!n;"-1[/u>ey!}x1mKgrٺ1, `.ZʖqBX4(7r}jDݻfuMo]aX=*>EG*KUnbW+hC:!rbqGI]EQQS&;-`.6Y}ȥ\+,b7ؙnkHɔ9id7Eqm"8<նSd/5L􊆝6] c00>P/o1q6Ա%?q_q-3* ǽn.bvntJHֵ,:\K 1Zd#mQ1W#gJM iBcXUmKIMJk. )?*,[b-LaEw5( ִ~-^ٶ߉J ,0$7.E";T5MYI&`Zq+~m"3F3WzyVJmYu)RL8qA_l)U7BIz@t3ĉLF:9LM] XFkdr5;!(sg d. lYPRT `AɍqnAҹ91h[i@h9r^#Mf^cXyzV8TiGn FN.VqgAMcp6./|y1]uRњlћ56s+Z@v6Ɗ~to/lv/w`~_{e|nޥ vθyPs kaH uwx{MFwzgDW2ږ[Hg};Oo eFmX'٥cZ/h|U7pfl[0!AT%-DL=uY2շ1 ŭCyBp~j.̹%Mw8: 0Oh7 +RO&{7 :HUԖ--[!ַOS3n<,>$ƣU2"d|OoZC"HŖhvޖ81’}J٥"e$lY]cNӭ`}*w vO=waNj9Pr}g8ɱqjV$Vn=9գBd$K%]?ު lvbaҏۺ\c~AHczsK:BmVeb{)t$9w۴d wSPJ //o?-h6 Tk؜N]ƍ߽R)Eh8\.# ?C4íڥ\t\[.6̊3=+MckyQk`f c@cqyb RJE.^<3hhkjZ: ta 廿02P/brД3m ad6iq~SinNݪV,NeUzd_n)^ez1URjΑ[V*ԧkkxi[Y+sj֊Xv6JV5 rU 1jPQeϙ`m~zjan],[}S1|mQhidR vO_ιU.Ċ jRSi(vي`=OVkqn‹v$TpތFUsmY_6HA-֨u#iM*cVj.et`uc~φLms̿kE%D0,S7>E jˁU{#Y2A};}[zeUYUXʳ$:%PaVy>+"}lҸ 8H̚t KTd nӮVO401*0IJLcmںN0+qdcP]E\ 찦eNn?/cm[tϥ&cQm^] DɕUPJ,%am %^rmףN)&j|mY\\mtcwd;WH|IȬTu&لe^ņPʙҴ *1s"t<1RIm\-("D,o5?UzƮCH2fʶߝh[%Fj )9)UDSh4č#*VSn鉼*{T.-lTf"Ce`kŖ1w<%cjgq#c9τ.;č-$֮ofÉbzri$'<%35g#/0.v>Yg'Vǎ): %K0T:dx x8dQ c9=E8mZeru"}j5╭@5ܢ)/^'*-`-K6ZG#FrJfoC>n1 ld}k$?[= cǎA ,n5ff\ك#h̹:f]/`={|~G2 qfj%Ji>ncFEUan!?zl7L\`Y1>'T_0f4ŗp41}D&d@j_[wE\trn%eTF=Zb-^Ul9H2 jYQ)~Q3Rm juc_s Bb}Vu +2F0E]}ј[c-!7g#mEh7Yꌚ<42&4m^Aj\ǒTka4oEèOc˩HSV`\%;~u/>[Eج#äce|L lJOzkd^1 =DlY 4̰n^ǰ}+hK{f_ݷ}ۼWdNYmcCďJY1rKf q4p<#ZWnګS Ӄt&A:|oneopC-4euh$UfѨnL—| /n+8LH<[*򲍍V -1:nNWEHXmG4Qضwv!TΧittX7)CKi-Kԓ3.#E+oV `|7u6f?~MҢ _LTg)Z%OE8l=(LD)膶ʤȞ޶+Ш-wY7}CeqSz)REVI#ʣ޹/-rfM4&N\]z1`7 Q{%qq5.L |Oz겠 ݣ&4Uvs d@ҭFyk)/EF="+ӹFK\bGݜS{BrݙdUd7r8dag8~}FĢ)(㒢&̌sm׉;(65t#XJ0#:{Hĝ[#t1$qZ%J+u1UI>V"\-n<0 ~pʋp07/iQC*HSH?J8Ofev V`a+Wj6G񩙪ߧV¯-k^rBIQPla 1*hL/KIf/K+vIT.0bgmǪ_YҢxc֛5pߏ7Ҏx#nO^ [uyP'] 9V 1cUb r촢șM_T8';jb*7W,mTΐoM'n .FOލvV!9{5flaEh0iln?9=hLJ@&vS&F4 *=FhwX<c q^>[okUsMFpv Qs3a0\qZB/Cꋭt6^PguLo/UAbVL o'8%-քK¹q.ozcU]:`m ˏ;ɵLi0b@bH"W {4!u,i"%cAp2%cگk1[FƥDZ|-7YlN -')˱ŶYFQTܠtWF_Yr 7 }Upx߽!`v#ޟ+N.:@_lx˺H, ]3b-[ 2klNORiNK_3 ./Zʰ{!nZf؋ܴ7}T,P_G)'Þ]um87'*𘋋l1&uOIFV]'paUEVM-\5č±~ݫ>I:EK{F=D2 C+]/[mCjZhl1"aBͶh?M $-&XU"8T1X{5\:|T*x9.MMKپYm9p 8*eh,;\Wv{֩al|I BM1%niR[ĈixLZ~ #aaV1IzIP&[̬3 6l>N Agi=}EPv}F1H5ܪ52Ǫ*c\Z;ofXO4~_j#yIF[ifճs.XCG5ʂZɵTC|41@tLŖn"=+6".eVA'l">Iڤ6!9VnkUmPs4*e. Et\oa.~M#yԤN0H%--Fi_w"ݻi 'LsZasD2Pl)ma"VOvNS"n0+_EX W\K,.( $4cf&Cgͷܫ J2E'T|ϊN߳D \N) l ~ޖ]p|bhJm !`(_ꫝ5[m OOLųi;'R2MlcS| f3p(>WZBTa؏DeF;-fy]HP#zw `#p T}e$f+XZE"sAr, l0@X#U6J) F_k![2ÝP| B#ot+iQjɉ0oaix%?vZ{GbI(X1#b*9P)a!X?J f] k/ bb'7 %j44is/Bv"#A8`Y Ul=7_ZJ9$k]bœېK Q8`>+cJ]EChvG4";etU'bX5 ̩'q0YT}jO(o.kT]3ě&Q}v<ُ1kx86v10MlLm^}yĶnm"Y7j>G)]1fl+Y#\n)FӶt˰L]u毴"q!.6ڎQ}!w YE ʪpQ'5*2De @ &Ic Λك& {ִjĒJ{ɛB_\|^q[.( a>J]^i]\Qt>Y}kRe{֠]1PFRrHER(f;KbF~"6ĵZurC(ղr*m2 SgLk\VڏDRnld+i&cOs8.ʺyM˭6\!:ьE 槓Oh~M6v2|F×->Y5_j쥲jy1ƩN!GzJC\X^*ֶo#i6ܽ6nPv*#z5Oa޳ۢӌZ:͠B>=/]Uhn)49t}Ѯs;(;%PVٞ9gVՆ1A<{VîA5Rf>bW ăWrdf֐mc>p  uV 6b7еAn;fLgVfTLlEqslӬo r Sm1=9Ig> <޹GS=ʚ4llJhVEm^/FʨniTDK 0hÈ\2ƛ:bUeW1nUc_n+5|d;*`l fՆh[ ^P[}E:.UN]&Dnɽm渙Ƴm`pǠuccYT5g4x@%d* 0|yw4wHƴe,t q\ϚsL=-7}MEhע&y(do+đlFYFZ՝4T[{L%2m-Rw+$s뼰v` "]ZtVWBSXcp[m|^.똞/8ml Mڍɺu HȬKwN;B`rT3J !^ HgIҍYWU0*9-+xH@"ejb.Ć3JٕM Ryzؐ÷"컫Z.upR,eHէ2 vy>|q7.3!niMr6#.-H&w_ ݱ+qY]ZY>7C"Ǒxo)ٵ -Z]7#v-S9S;ŮeUx1Duwț؜u6 ͆Ё]ԃ 1C[$E:X-[7rD6:R{څkj2j^ 9nv;T' S1E|2ɶTzZ'h-Fpm˼Zp"R7Xc19F[{)f? 96&ܸKP^l@6E./qrpXa+7'/\0"Z] M)am Fz4W.¤ \P0jAALvUk@a ~FUvXtų#, ZBJ~X}lJڹU?>RfN4tblPax#XcW<{E4v" c;sy Oep5UvE?4ؚՁ@-8"f1K*uCdvF-`4),7([CSImauJ=z7]Sv%g-4eg6mfI1a *lIen؇(VO0v:OڡŠrI-BD|=yXG5*U%k#W6KM2iR@}CⅲD;iSlݴnb]/ne& ԰ww;S- o*m\+`&+HAk1=mU'$]e]gqW+`13w7]>ĻOp%2҅K.Ul )VFQ]/-I6qΑp^V؝' ~@W.+ UҮ#DVEby"|K"^i9:A#`&v#S\Uv,;yj+L6a԰@(j@&Ƀ'nZVW+ZV$'ީ7{Lݍ8J*(x)#z[EKlL ?KCE?, f#{7lۛoWTOj؍_̭[78Z}M+!Z\8A*52nj_f=V]g0@+qLUeכB0؆/bѠձJ' ץXmjmݲAe;J1bL#oS@mk%@6<m%V17nZqMOԸ;pA0ȡMZ[=d0 rls4tr/ z_lwqw.o n;RmW%,[$Am[-7Ɂc%IVVq옦lta >feUKxPOhGT6 G|TV:Ʊn$Ip[sq?6^F_iγ:L6p6]Ζ$^꾸_7_8`'cr\Z3.؂0WS*R;K3ž#R=Yܺ1WC >]=60K+:T8N#Vκ A![Wz!] cX?<)0skZْZfZ4.\0t:1yN(R`MgIcf%.2.8wUb1xUaʥe\Mmj6/\ qZ6!1wN5q&+f.q 2nVMkȔSKE<7 "ZJZΣZCQN2Vp< +Zʮ2>x5Q6B|:YRg&3RĐDv ?tI_SXei(CB^pWq%śt`b*#)Bi\㳁g&,L=j"LyoP r\rق\0ٽQԒTka B\xR{.g_]MH;ژ5oi'pFґk=eĴFZ[޼TCr)7amZW-Yu,֓FcVQŤƑkf`2b>N)♱[VD O+)q.ͥ =eIנ7oI#y5oB]PӤ9$_o7-(ҝJ)B)87-no( {e]XG 8}"fƹj,Sa0j-wK.Ȋ=r!€U ޵UˆAr}[ѦՂqx g)A֪u^wcnнA'J:2X`w*FX⭘lC4Ѹ>ҵNN:n,}5n:&%49jx%E|6 l.g\v9N'}Iq܅27[cu HX^ h:!nj3&ԣu;C]F ?Z TIhUr'~QMp>$0[4چ}5T*H훷Zu@0)'K+;N584o[ ,X#z|Y-+k4Sҕ&󪑹0Fԛh[n%L0171)tl*È[H߱a"(mU^LF"Pd껫e@ 1$Rvݯt`/YuGcBE6ǶYP( ǵWt[5IU,Crrf: *xa!)˭3 &DzTLq\VT[D{VlnkY&⪅$50%9Y.9ԘX;iiNҺ9vkkn4@'{s>Ԝ8cotl> 6U`/#&h-ƵE#=Q.\|WOaqL.upg0>2Jg8#-xHGSVo&-00.Z5&BHQs0kmmX4\(TG$[+">6HXwldIpEW#Fp8lh![^]L_aⳜ[fJ35qDՋ<_OΦqa;Nov~X3&[ љa} ,{ALiF_Hy3ۚt0.ճsq,Z6RJWӢ*6'W^[)x֠yȧz5Q-aCͼ+Uom Y!lGjOo\(8w*JR-ݺDVOl b6Y0mb QݕM\y 򣘣ݸAv`z;WlčFƲ's wSLI{Tm*3\|}W.+k*x۵ H:ZcdN7%@'X-sŰ qN*5{KGĒN۝[6]O^Iv}I*ЖļcJ\HxȖ0[h`}꣧:nj[w'y+J`3PB]<+&Qq}j۸UK/:X#VJѕ۸= #W?ޅ*J[zKdQsn6&M*}iQ"*<-ݔU\L:nօKlFo mo.n D R]I^gVP}SZgM/I] o_z6aނ;bunRbe ,ypO6굯l\L0 InfW [d%^*mI4)nb]` J)ygǎjQ@hp#cU۹iY%ڕ?l7BmZ[;U[q3HMl5>'WS0zo ,: |6nY$REP`A`Π '9.{jj(FթnD3j$v1dF^d -:N:CewB wF_n>Wq?qvWPƹm)!$Qw }$Hٞˏ 5pvzM&KC.h AߟfcCj1msY wMh} CZ<#q!t zȮ0P?PPZ]"jь`f;(TpV>]6䟤 s!̀{y_n6X`>.TW%+--3RN6կ/6!7rsqI=!gae! j\ۧJ.P;VNql-BYX%L*8  J B?[IҜU>&tܐa0ީa[fW "ŜrxWqwmp*)MgY$5݇L>!K +n4wڛ{9=mg9~$YVT;v2l+`Oz7 5ܡ *:0vle` qYN0H$j7w}N.4&ہh zʮdL"~ vT0ڢo\xM7 4\˙2yΕ=U"dyP33!}mvee#b A!Pv .rp6IJRT/@&aca +?Ҳ.^Y<9)FQUFuΚ0v1o>6N4hآ`12  b`rWdB-ܳf0DcĦ漞/Ysgeڷ;J%#]``F=TћOh.GԘ^k `@0g"Eijs-޺viIಶw4VsZ:6?,$j~u/Ybd=I\cF1΅1x;VobvsJ\TŪHݒFVHb. Ydfj@u[ZP1m,b1.P/Zҋ`t;tc\%n*wV_j+;5.oBr##'U18J dU}UɌZt969Uo*wa-沢; S% "ib331\"e^Jхb FWuIj'ozTgm50ڸN XsR"^Kbd—Nq~/XF|Md6*/W݃28"wBQh8va5Ν?Diƴ bDQ)S6̞BbNzqD! 1)[J\*x'W/!6 WH=p|31Fi~_EIkLWu[..01X1+| ҌJ_qUB˗. lgW浣ଝB֝IXI5StTi-bʷL @jӸ3V?ִRj{QH32b(4ť@6/} 2r2,Aڰf5͒ݼΊa}sDК_{];`dU LZ.\ȻlO0z8ZR6/@JS7"H78ҵX%9MIfH8hx }*6 oM(#VZMˢFPm!c;> q ?Lm( 1]e}UXܲթk$UFO.1qtUsbP$V[rEŸ!2j);xE!9F)kxfWw'ְ\ {cB6SCͽ?80s\ukj>M-[)D5;E뷬).r^Z"7 ޹k-:c\U"x ԵeYa.lD'aOi-S Mo {4q[m%-kScbJv-(Xm]+.5 n7h|^V & j[,CjiZ=QJXhܺ!HUyA|q.R<-hg8C0nsW=h7rK&4U(CmDY4+']1L[0XFe {=6̗7EC-U>ĩyD*`xG>8ޘv.Y 4,`]VbXA"]R3_aT[r,-h߭ Nh rh0MK.X[DrMnPI9qKHQrqqDCm4I^͘\ [ˆ5mx0?0=NE*"ɶ֎Pj _pQߊʒvhXv!*e[擸=mh ,:I-N-.6 PX>_;n˰dOc] i #yjgM *˰-;+$G-hav2.e<{~#ibFբmo'S{$ͬ<6ۂ؁rۀ }xhqC!,7m^q<9cQbؗTa N{UBfU*5^C6xZ嚟VRvNV."Ւ[H NaZHVKeXF!,Ɇ+"ejehׅ$Ate BO%fmz)mY+Vݡv)6ݛa'Bֵ>!„1wӅq'Z=,#\6{jaq 1bDW^85-0)+)6V\z\22c.T1 Lvf}cQVu[eHe%qh߹yBOڢ.M&IEْڶ")fvFr1NYxdHfڵ?uaCnڔ1Ukm끆khx-BĀO'%Ud~leEwsT :3ѷl yߚIإmhLR\khC&3][A>nۅ;3g"X;`ʳlCIX\05^#=kv0,;Xpkb6d\gے}KxvRvy,δt,[VI=rb7:}/*Id]DC@*.QRoj`o>1.yw5)!Uq+tDnlfխv4C*%?KnJMf%n h=;qCj( ^.xXm>z놱۶VO+LIAlJuְbxօ{xTI+j1n&A`#;#˹A;[Ocucq LЫ6O7sMB-h%\E 0K_o:T,DM*e\"گI}{wt5ԪZrbe*;];EZjU$4]8VAzw3El\VR@qRoeZK!V؟qQaX3n=iM]ʲ(tYj]a!ăvi2i.ᯚ;{\N H_i"Եbp]p+.mXq5JS,uէS$.v0FjeД#[?1fA+2l[$ aW)9Gpfj6<A^*|oۺcK`OlITe>%,1xN\`[yh4-eX+l=5}.rj, l2Ib̋xveaS(svMG-Z\xPNwSYIZ:KJ>gvvJph0OJeJgB-ǘlҋ`lZ>-в>bܝX(+mjtj6x{QmpjbQ vܥʭ_֢8w%BUCjpv[B_geK#K.cl i[HVL}!Ჴ*(oP - Nn{U,J?}VnV, 1Tn!UR'b~` ps55)M4Hi_HRڇcT.@WF5|hklݼ2 ) oOfV-Z--уŻwC ;._8G?ZySw{-EU&Xl~ J>Z66yoʥfHqKg$e% Q1w0fkX+H E`xWB.#Upyu̳ųٵ@JAJA?ĩMªdhp6Uma3M6 0<’v"~5ݱjHj]9f\x8@۬ZA0k)d(GFcB󶋄P0p#+$7ܚ%n Iu#/KJY~(/f‰Hr|- *qn8l#p7 b<(!zB08&\6<-@2UnD\[Zhs8kW+jU54jE.X?9)bwZ4WTC'Hkjv߹_hBhTX.#kRb"Ǭ] )6L6 2ͻ%v!mCXk9d|oe"#oZ{`)CMM=I2t\+?+j:{lJXʪ3Hѥrz(mCƘ^֙@ݸ_TYwfNҳhxj,w5"Z42lK>&)%F|Nؗ3v'V mMBG{VpQi٪*${[Ȣvf o&˒(-S#*Xd].\ k2hun ޗ)%A&,gn+w %e IUE nn\mONp-swpO̪@z/mI?j9E=J"͐g\b \: ma8(R;AK{ ҵ9d6ٕؓb\R|+DKXVm$ ERPyle[$Wi0 + )}Qs޴%XSɰ8Dv ~ $U0 ϙfET1boir0Oӵ8k` GKÄ} @׺OUFkxIڭfw?M%cNްt60ү6=4!O3*ݾ;l˕yV&FOl4#S_M56 m Z_h;IM4z0Z0"ag4-?;~Q] 4Km%WqXvM r FD\d&[v[|X"914+ظz,n E&5xc;@#t$ž r6 %x+}9_@ඕu*bb5)pu&FZ-Q'ҥ0(YDC(r~“Eks[*РnKp}(RQ{yC]* B"ۿa?Z2 *;(e|e̗b\u̾5hYV'vZLiY?qeq@ٷ @Xi~ȭe]ḽ; ǥk\&YqoLCOj!2Oj[y=(Ql\6XZnl3cRpN$Zi,Kɧ mcR3 a-Yޥ0ȷYuA7M7%B\S45v:A}*6Y8[@K*e6n_8Ub_XROmRh1 [;Ul.v! n tŻ(b︔iˆZ<[r"0|mt-b0nʡ._?k܏c8=hVaWR`NoL17V7|d6+RZ̶*މtYwp֭3ƞ APkjGSjqJoEg0hpxeUlykzѤwڢudtN& Ė 5Rv#vq#qbwFuQ*L}7yJmE?(-D8vJ`˸o^yRmF}~Fji:,|MP'ϴYnbTq蕮7`XǓꋸ=6˂9`qtNɚBjc`i)yS728%rbiD>zZr+5)YjUq 3BOٕZrmDZ.At)ЍZU륁DmN+Trz)6" ;ޘ`:I?*)$5c[h( \qmdeؿ=hx^|2-"hN=R"6՚尽R3VPAiZAu$4Ob\[%Ξf;Iq5 ѩYޢRq1l pAkwͥ oPV/)+b5u3: ۟z\SX,ѽUb.grTF-=w/Α"jy~" r6YmOfPQQR‹%Z i줴\rtx# ymU.7c_ jU$еVy;':xi ^$U_m-P;Q&q[ [>K"w֥rizs*-XQ1<7/ d2A%Ygmt}Ӿ%vֻ+OCj47_b` ڲ.K^-ƗY5LJQeqx;5Saqjw0dDDc+E,cF3jo}wJFjڲ6o$)6څՃޗ}rl TFOCG0 taQܳy oڊ]KS(.!ơ@'7aI#xЉҕ)M0TQ1-60Z؆Ro2V?j%H{~!$ǨƤFm`;1in1q@}'j|P)&ĦN^݌ V;#$ğ/rFL\e- cǠ{6Yĸ!$+ƙHz.)"n S ֥-]|pݽ) NMDrE ͊BeõzlPvU_&q?+xGK$ݐш| ,VbHz]{$i=51]^[K ='oQQM-b1"conjt agE}.^1UQK sz/62ZnB mKyHy>h~/gP i&ՠ[hen(o:aW& !0'G"} 7ىoާqV mK8b-@PUҠ텻l201@=< 5*X3v|mT@+#a,*T:dn7Jr6mm%$T~j?p yJF n9c$_[&QU~ y,K:4мRnXa*/2f2xO(. ) PuZVMS ͹bBג%E:-$ SKFRHW%.+Ÿ Ixv-7TFkw01WV?ZFm}Œc:S <+5 2}hoWuu+LGcPػb]e ΢NՃcMGz!)hvw@AM \h@CmQn3m42^}xgc HEL'Rwp&wfֆm`H;ڢv -lчÆbT0 $کl]e-&!BRciQfoYjwl;[Ϸu]HkSD;t,>^ tRtCHq+9ڝiPY@IDLH,A;^Q[jOD|RQ[ Yst`{}Hio"'Zmn쇃5 R MVV61Hؕir1$/ҩAʹݒ9-0!˗M@$kHANw7›61% F rnA s Kv,!mMKH";oE)jÚY 5҄jsՒKmQѓ/uӫ+o+ڜ&/o,2i$ڲTFkj4j}y4<(Poik8]^!1 Au*~ZnЛmvmDvj̔u !bB`hVTr"sTzX.$jY ж9xuuŷHFڇ Hj>ha%ƙYp]&李_?ړ*J_sC!I}j׷`ـT0=@ۓTʒ7MZ05.(dMF&~S fՠu#;uBqWEwx3Caceqq' ۶23#cqZ`2,An6)R/{\pNn|ʋtfk-mNlY= dbc@L[OPU"C6j4,B V Uw@Ʋܕlu B}w4" g֪.Iz[>K*$goʔb͢ $}iqB I)F*lyLqVCZd|KL暶# zV?Jn2hio/"j3 O(J*e6AԈciREH$CkDlA҂QB0X|AYn!;,X{}Cʸ` B߳a#rX=6G}&wdU^!oNKof93H25M渍ފX!x Hڢ9p? D0n6PZvYoF)ao\|"eHԜ ٜpݼLN֯ ٸIr-dvF 0Ll.\lչt>M: S1&j-I3\mcۓq*HdNJMU!q%%DDwV#lXJWuW:T!NRXkB`y"Adx_&lo5qE.B,r{ZM5)S FHlwr3LhWKe5N|=tx(7 ~K£MIE`[Xw)b]'Cq2ܓ`J)fͨi5d[Ëvi"lrĈ?UR+˖N{MGx%ѠIZDrv-kamCi/sK9&q 4AV$Ef᢭[_\9h@|SqeWYJ\JĖGQhcn?8•&)%E6vF (q$`O]7lܹ+ =;rxӉM8PST&tVbH(O$튭0\=c 'ڛTa?*j;m59.0N|,a~}Nb_EVPj-c.pmŀe婇-dΓUwcxJH]@_6䘉#NA@B;|HGݺDYRM~A4Ћl1T=ER#SIh+%#2)b q8&!>s**OAe,@СU1ZR.uRNw4V1Rބkd>}SKw8FӼc$ob,ܧq4]mY,ֈ E 1L&[f-9DSUkpY$n)*+HospHGRcsSH&Jw¸t\+h!cLquaHy~[zYج(D)E(FmteHD?:m\Xh:E5P4ESs {b&NI2N Ibkɽk7ZHIU1*[s.Bvհ)퀊Sh{nHvG#h]vQrl&mHNNTPZ%֜h#`X{`DQ6WR<' PU3>0oWMN۴^֭&.H=} o&ykK`e+isQ#`m@YC0<T_DYk~<c;W1𸱥OH~N);!t&26m6C)meˬn VsqF9m;< W[V/ vl$.e7Ĵ-[jUqaZqwNY{ A-'SiAؘާE0q~-PͿޞGu'>+Ep#D[VS{"Bh 9dZ(X֌&*lީIbYt麍#,m<8+ķyI:-K.ٲ / DIthi[}liePa*eV0[B _;ީbui\.0ӈ@X 譼5=+(SE e:s^ՖKẚ$3&4\] @ #X+au+smw''to+QUgMıyBW6&V9[ğa>|liudJ<-Jug۰˥FVd}j.-}o:wph7gc5ßOD[E zӀ?)䊒7ZrH fDUSUHڑkvk'ہo1 4UonͨmǗ},)QȖp\IV$buG,f)I6[rRz!o=BZ) !_ymȢ-Aqx=V`%'K E1n@-6AK&dM'@+g"*mhN\CoB'EɀǾޱL_SuН([-d x%^ 8=U6':3/- s"  =&vF3t#+f#q+|?mމo2t],a73$TbX}(ŤS{4p[3Vcnb ;0 GNՍۑ XP0ю֣..և!kcZL+{xPO1<ƤSorƟEo~C򦶙 Ǜp (8@vF)_cvge-J.1vS$Ybވ‹ څ4*8@m7j1%o[nvd+)K#QQբYvIs|fB>*V]0n\P7 ӽ; F(ާ'%4uKt m=y.DXOE&ĻЀ Pu^0D1Wn욍담>o6Վ [o.)@,w,KpYA~$m-1kߔڜcn]Gqڈ"5A?AdR|A>5YRWdanm{e_KZDډ;UgqG&*$IWRUF*|fO3_rrݠr ڳwH{/rڲ^vT͛J.PBH+P1ʃ>Jm;qwW![,Ɲ[zf-v,7`]9_,`<#Knk3[(UCmoI7[ )͛ *5>Inv.[Q`t*:i ]" rimY {:qQ$GZj7xo@7e7C})9:%$/Өm&~Y/LtNR2XŢ͝N_P,O҅Mk1h $W¡mE}jC lf6#(ݱ*z`H?C(+Ć ޗrK+"vQoxa`6[E;[Xkj =n`0!Fj` ή &FT>fD4~ɪEx#p H4첁~?(?ZnM0[0oGI2ۉZIbD·E` J6[QUZ\KaŸ)ݙy7֐]ԍҒn&BKa sOR0n1m[[jϹ$A1n*v1GҜTzdY'Ҭ$9\D ȩqPUq6!mڟ qaOpm!pHoOjkhƘ}Z rZԫ*̬Y9QW}⻻@f&қ0\Sd- m8kL){MlÛeQvkgaRF֋$TJ`u@aU)uFQz Jy |>Rٴj&YsYp'}*>^8P&&؋e/j$WYlt0KQ^<.nc.:`Kl\\YFRZQ"L Dtײ6"%T 'o.|AUmaVGUH]ºjb@~N}ik (L8>&χ $JÊmԹfF04Ը qIbpjl \, LhRUw q68`{WbbAdN6N%+ _ڍc`hY$I8%&FwL}UK4Ω?KAa8SH'nyUeo7$Ekhj;-l^m-'yKnۼKZEM3)oH )tL^cx"Y\,$o]pLNVZһAځqJkerA50tBrex?#njYeۊC!nv\z5H ? Xl:^ OWhJXvU \ |iEeX-N5ZOFL\@S֙0b>(zH]> lH>*v-F I*ǜ*(ׅ`]W`DS57L#\2qj˙'?ʥ^3r2К`ڕ;@ٗjJoL)Я`mہt!#Ecf0 tL ySE_ZnQ8oU!rׅSiFƻM<d.n(RƘ)KeqJAmx_ ѰpbihIZ ߐ}h.Iwq"&S`6Z}x\+n,N@yhuE#=ق݉\lvB\ Wk&:5K .u &8%DřbfĽI J |oGDp) 9V -fڂNQUW/xl 59Sܘb;UkJq';Wg(U|fLU݉QlG?CT_CZSk 4[EtSs \K/ & AeoP ]kiu$\-eYV[i }iT-5k_LYnߊu\|̣H܄6dDõ6V.[VuL!&Ea JW@}-B- *bwmE &[ ًmتͯApF R]d R@MzݦB+6-Ҹv* f,6Axke7Q+Sn\pkZ/Si0x0UpmQA +rҢn1L;n}=)kxsfݭ@-G7'S^|}Z;v J5S!i%UZѦbA? ft~E5M2¾]D8 m>)Ev0ɮ ؃&eg,SNJ |{*a-1ۏzK,fܐPǬӌhͱ!Y"=]fp7 -q_ã e߁NZ UӶ )v [҅=pyÐhmf"[T7m|`VWw>n[)햭 }* 7C[j^EhB-#nw.3J uHhA%;z*|&;|K&6Wn:h2JIE]"^#J26!H%NˆTjظ:fljP1ZI{ѹ ɕX7ܵi >XA1luϙzzTL\mEYn@V|-N"liMYF%C᪍uZ%tQ}^5V<Ђ`ֳ:S$x oe{Cp 8Q{MWRhM-uoYؕuQf,MGTI/COLz{uJ ef; M VД"^mh!G'SϤU1$-,Tlp~| ~-) C+/ֳq}o[K8#J݄W'h&JJm"/Mic!\l zҊL+][[W;?x_!w;;] % Ɏ~/2[uv1$A;N'Fċbø&#k: f~~ԖF<-fpH0ĒNkoCeUxL_6 I|8S?ɬ[ubam4Iˊ Mzin[mX{R|TwxweZR-K` mkRQ4%'gtƳwl[,IrL=¿@J?Q s-5gnI ڔf!8BSJ1ܚ/@nfBj@^# A-B"n)Rtp꠹x$zʝ $Q6V!iVw@o,wIjՐqr+HC] ڀbmOezQiv%XwF[ u0vTpL ތc6W[1˷d+5Y4?÷.fwo\-Ov!"? ɷzR(w-m*i7@{1:11?_zH+ S/E%춭؀n;2J\6%jVQ} bG;6op{вGDrʽu7 kb JhLYTx;M[g-8?˹ޡj. pX6 {6s<+ueE$R}q İ|G\)l6CR(`'5Dzҽ"ox`L*50xjB~5X0hh7'HfK u>aښ(Z}vu-Jw vV[xpEv2cJڰnM[֣UV+:JIlqjrL>Ĩ~bM:RzBa ۇDqGZa Ojjf),11шRmaB ͵5Lr!?ҟc"żkB\U{,8kOt[ǭV,Pˉ֬I #+j%kriPv7\ }_&-L-*C MZ@a QUw,].JJ+e؄!(4iJI2V1n0_:mmCؿEC#|mMڭ<=Y&%evK˰lV i8/fk9bޫirbެqsfnoXv ,pIgӬaį$uj͹i%l.C$|I>Qmu-_EPc;VlMl'vk>%pc`{\^_m(K݃@\\q-D菽_2@{OJ49m-Sm>#[U3Q9?E c?kd$1n_cX J*}3@=ĖL)=C "Wd\Wck̐DtZ\2AM*Krn\{ nkBǀ (f;5 _exf".6 2֩uF8}obet֯MPJihce[]`DSz4ir;Suq,fVĂHjAߙlþ2k28'ӽe9J8`K^܅bVfx[0emvEBHar-uˤӦ; }KxuITLj$l|Oj:}7c# d[4ON (^ L~0Ъ#}QmՁ0 7^1 ǥfRiÜn\3&3,^x#އ eru#Dq[nXRgP=H =ĥ}2̮(1)&5V%[ &2>uOJ:h8,k͘Tpooor؍=]uٱ1 *^A#zt.v H"5ECuӌr>AD>645/ZGY&`ImQ%#PQkaؗ#T+LULt:bi"wR"@ 1?*CvNEk'x<ҳ9BԜ$ƒ#^mp>bU@ZXw"/庂eB !.v z_S(KcC3[xw( tp¸Ǚ>޵oKe$)5Q>Q޴XKnX8Omzv8d rfv,ھ u Ě_MڱF ٶלǀ7W`=$ИUb@+JNZ|k]*R1ñf3#jIY-[O5)R Y\E0␝jc1RZ.쵅pRV.VJ!@!Iަ i5th\mie#xo֑-3-n*So-d l[vEc FRZ*s\@Vo5HeXٻMTTsEǙq;U8)k;wӓuLZ īnpFv3kmDu[:iizL^gb•6GsAl_UVPP3 *8/ء3ڭcK$@Ҕ\{8 lx;Z5VkmPw5]Gn&ٽ.#ͨӃ_BIom%^W(U<7VB!Լswe~ȝ^Sުlps<6=OhO:bwKkT7VUAJ*;"*塙Rf#qY +{쏫aW 6Xvq@dV El;ݿ.uv 6,.2Bww5a- (IJR.[PKYd^tVQ(7+UB;Fgh@eց*`*NТ: \Γ:Z ϚI&Q,i`yk"u- &I,sf:7|a,X7&7T7ʴel:#QR&K#v%G4⫱F[,c'V[KLFOfHR~ _*˶ܖM S^PLo,]iojb.n)s~v1oʓbwa *a%hib*>SYsCx+ FԸ(ǐ;/u䷥c,6ޑ/=\B>݅,-hX.^>+Įǵ5MI7  "pfK;ANiйP[HӶ9>.&m%JUudIh&v_Ζ\uTǥiDLn"ԗ7,y1.Y`Xj I:UoډݻFm!KxWRD#?>^M65 YbN2cڈ#c'D-e1}m]LxL8F[]O1lfWi#i@v]@Nb+f\mjx8Ɲ* :܁ ?Xc]tk(V",un^`*74GP0)iFH\'U%W|R_k96fnX 'j8\㭺v`m`q sOZb̔eig}X,o౉]֝Tt "Ҕp\CxG-tL}DD~kyT{sY+0ѪA"H!fXi]b}v3Yc6%mk܃.:/l1u*>fI䄵BpzP:.h]9 Vʯ۳Ap~JfC\[ e%O4G]P-ڝF[HU)5hK$cil**s@iF݃'iqe?^vIϼOxKmFd*Աy.%Z pv}ƻ5yMt@)(.Z×y#TJ:t=V&2b$.Q"<#sKrcbgpsΞCcP7ִ-]j7P6޲ri褛viu2b4R+n7qwe^*i]ț"J,>愶Jޞ'CfC62.>a+x.>En?:R&'$/]kjyҔ"Y P wRT=KOSHˌvW<}dՔ^$8V\~lX:tw3/k_20U=EB6Ajmg/uǃm'iĪjokbm)|aom"I (ɥwbīxq6SvmƌQ3AT}~Ja1{SV1` l{}m7ev9嫢j-SN8XXk2hr~qpYMeRNmQlzfZ:19|6m$jղ¢S2b6Z].c,f9f&. T]ꔟbp݀Xw?V-veKj,~I9:DUs dyzҮӛr>UV?:ބ )`o(mCSp)8$p&{}+ [֛B7UXb-!IE8R\E{ /c3MeX1ؖ M bPtmS5.ބ+w qW#5R"aY`^?4wxlK1>PՆ["jV'ؒ (sJUMZRۍ +[.xWymִțpb7.VwYӦ`M] UEo !&bc#v}_[v] fi2C3(Ohڡ:z+-0jҽK$)J@{ġ8lk,/9>SIh.6QQD5gԙ^w.aFU L{Us`%J*QSpZ $+LNڳpJvi9]pЎA ?^j6kG_O1?qe#[ [B50׬Iq|DliEj*0|s[zm*̔X{Vh]ΙGElNbR64`]Ubw[R "f7:E]lKٓZuc Cڟg-+RЩm>-vև]V3<^"+mJFKKlT.5u 6) 6ÿkNK6}`𭸚MnY9$I)e@Uj7i+{ cUv.Tij!^mL+OmYR A£&6UmH6)lf8KZwZMMF@gkn0̞b ۗǓqtj |tX"g{"sN;yZzʹn'*ėLk?Ux@Y.nOM YzMfc+>RyybE}/v6;$Ͱ8qjY#_O~ > H>%nظU8Km)n܏ʹW~!]X1 QgkxB2vfJ&:zAW>o J.5)z;TӲtPW|bm9ia[=nW*?bM.HuFL}3FK)mn95`Gm\?tC@1YK&h*[)F-'{e"ؐ?Zz[*[mg{/KsQbB}X:3-buq*'TI?QN>w~'z'V7be#>8a Q\1Tݾ5ORY\5mZp֯:m%6#˓w@MB+lj 1Y~W ag2RK/OTnT\eh`4ZA<$[kl!bӝ 5+\pQfe~Թrߢ#YE a0l=6hR6;k%qM?5Zz\bkyrX-n"G-+#Gv֑)$ı P=M$0 -g2Z ǼPN*9+5,@"$es KZ@4+pkPn_I'v0sQ/R+Ǖ0Y1dglSH&.=#X׈fTr8S !-dV-\ڀ>9>z \ v"Zc:A>EuhM46.]=0t^=]4E-߭px7QšOf3QS ,jn0?4>UxZ6NOVh|5fWs[g'h`bi<+ť$i{Z / l9WOrI1KeV{xWvI}x (yE{X_p2h2'zkxl9&ChK )t30m#H4_=x#L iLX* ;0 M؋Tڏ$#2n@4˭ q")8aݖ*ӧMb/ aF|3- pAhuXYQYgmFkN%_H ó(<7S]+kKd[gC9kb"\vCOSeW!Hڲ6>K >aji\\xFW7?ңa<\?ڗ*V aH2cMKI$nYlPY Յk\e/c @6,YP'j[ޕS;]޴Zq wҺGKl%=K4xɖʣTX)<=5%+`BlJ0mFDiV]M4[oݾb.A?JϛY߱u&@UIEm(~G5uf*@;K [ċ~!dmu0{;y9I?ݱhhEUwN . xyC :7]E ׹rBUWpqw[ Ěס:`<+%X n 3"ճ;>PVBBbqX{ZCVa>3\am(֮sh/m`Z>aWb-]zPOjRI>+ @ۦBCsTREolfQ7wQ~m'q2JSykJSd\+l;#Kla~Q,[#ZVcn[3Uaxi֤s7SOO_7 T})VqPWAť]vȬ۸Քd {-FhʍvR:FF~ƪ,Ly,GMt6a0m2F)LI(͉58Kki͠EV'b ߵnϦKƚ }jۊ w6]Rt"=]$T1bf=5>a)f=p\Riz(Ԑ:]c ;l2m?`X}PD+Bmcb <e9ʆ H_&& |z܀ GcqUD4'>--1-aPb0+jQHZ=GqybotmK EO_ĸ BNɮv'OLN*OLm-jV~ :%l7?Z@BpmskuEΰ`X":,pC޼Ҳ ȟZ1c1b2" Th2ˆۅpLf XuNJ0ȟ+8T|lr/cjDr)> x]@ݫ[''eEΘWVB1RRa&tp֙c(V>`ԋi :1Xs:^ܦ>]h\e8+3dKN¹&TU-j&0Ys#j{}MŒn|2.^O+s9A#kd}\ݵp]m_jv-^[&kWnjaAޢs6VXBan%hoZ6Ulꘟm1yUf\%{H!'CUΣغanDzft6̟08-0Ӄ@J[-ApcSsYτeݗ Kk7n;LBZS[c'y5G˩5q,7ohlm[PPM`nCIgQT%vG`] "d~ߒuމ%ab ̒{uvz) t1>K7ѻm!v8.lbn[8w#֖˶NüT} yܴlm;&EL&1KZcJJn\S=q@H$޸+jjWE/q Ͽ.0F>zRQO@Ֆ| [.QF GާgV @>Kk.Jb2Am(4< @bOޒoeZE7ټJޕ]uZI/ cZÄnfh8*q dj ǸK38@X*G"JQ ;M-fH m# !@R)LE9$ܨQi"]Yk.M=/jjnL8lbʨbk-xݚjaƶs4U] >5.\Q)4ЗW~B{ˍ.AҞ8{%E-g0B[cUpekx5y2.C.MK\$\,51}-gL(-#Qj?%\eR4qB}bYEb$mց =g^ YO/WSam15s&^q Y6\eVpܝD_OD}q׭u_<3~qcln]\j;Zluͻ H68MPfk1lglơatWbGmDc3UXRrL'Juv0$9ܽ;޶\Evy#$ ~txWcͰ(mgRt pZEp@mkpm b&ziגh'VR301"FԯCa|<>!Is*[ %Mvd~k7GjӘY<k]G*hKћNqRЀ}F#pm ѥ6ֱ"jr%Ӕ3p፬N̦'5gOw^>gv0#EP8_]R1(k}Hi?֐sX,W4ɺM"ONzF]mKam?Z䗢^onwO@M[q2Dno];w݋zvEs]C#ReBوM #fy} om0܊ Fј؜/Km[baH3=FwQjM--"B&fM:RHU8rJ"4SލҺo8#+*x6He]4m౨C-qڏTi%Eb1SqkN|"> rl#X6#b;a†S31W&LV6,vQ5UM`U?ZJ.5"$]W8?ڭcd; [mfwl&56jJ범]8e)3\|GP^˱"2 XJT>a^6%pGH-^3ao!abHm=t`ƣ-:2)*Hdq|fjdj[ҽL-[2~;#PVcGLm/O: I9^kopZ>`Oy TU|0:E=DCyID/ڰnLiYJ% lcXiR|$5bNb8x+7`*UX^NTU/ Sڭ.@ *亗HFĨỏUꄶeK1AZ[Z0TC}*4gӊ-cnY 6eQj0 yc "%7{I+fipmbn3DޭK=Y1t1+G1cPxwIF'sOa1l-n@ޕV.c̽iS@Gؘ~f\1quo6ǥ5PhkA{dZ:3T}Pi[*X-hެX֔2} R rC?W1TH{c6am;"rx9g1_ʫE6Yw2ch$+Z3 dw\bBQʳ$5$z)ڶ \`Ý*C.-U#;/Zp'~JNWe-5A>MD/P^w7.ᔃ E~EooAEm$nx\@ým]ڟ`ܚ3⺗cYu t[n6 z}MR\zgr+0w X%2[) xV4e%TaFݾ~ JUz{$غ2ۀO"^ֈui snchSIʟYE[ \:#&Πr޵';z6k  i'sb kp BϵY-+F#3%;ҳk6#2_?f^⺱fm/ppF :>u= jY];3U_&*R(鍣Vԅ9z=3@VbyW$Qz|%6Ltb`ڧ{-ʃaCn|V-쵳dS!̷0Ϯ>Ŷeqc3^8I+d*v1}DiL1ZͰv%QRv)'¥ĉs0_(QUPHktso≽_gGv[E>+TPƪ/ܷT>S&e \S씤ꬤmY_K.i?zfB!.ʽD 6dG[!.*[ʪ0\m tlnέYOgcIˋ"E%ٴ癣W_7eee^Hۊ\VFϩ|>]3!ޫ9틊 jtp?4&}Eb_- ZۃIo %y`v261"k9}밥#sl#7$W*LyGl. (y=>1`8yI2ZRbQ^odieWN>`5Pp B]]@ӎH[&X=g?0Xv66}끎070AnZa7o_dm:!= ]ykUZuBpiK;_"uq1 zT.X[o+gj'mPQ*SC;q +#,xTD攔Ǐf k0_ kwP#zZ-c͹e k#0O@ZlvNqkmv4S y ",[- Ķ*Ԯmڗw+ Nip[Ԣ=\/f& }B1hWո­l 5[+'aYJK4iDƾ1[يupz\*յE}F.=/^Ҧ!t}f2..Us *IAJy\çn6'ctzŨ0c[HWִiFRt齀{,L)?ʺ,Zk :\GՆDxR.k6Qm\5b-[rwtv e.7-KHKVF>4K:kZV;,[K06Wz!@L=`mbرT{dJI6% 帓kuS>R>jgs m\n3 n'z[z~_UN]1iE78`" fYnlk49XUrkB5&̌6$cz3\l :!2ZdwFL57_eQ rlN,Y#Kd*oi ;vIZZ/v-fAGJ[N!OmtJ)ɮJ] p_ njY  0ETMlV\@I bewQ b$ӄ4ж HaY`jQ ҦuˬH*8KXo2b(7]'SdDxs'ڦ]e€OJ1HcqصL}H债R6)Vqݸ1@1]a\Lb7ar+tܻa$)PF5e72X2RޕMZb +5\ARqц8_{6ď[8ifv*ԗZ7_nmۺ83=հ8^ajh|t`ma)ظ@ a/Wa Un\Hku|;38ԷY<f26%-\bRm)k}#6 U@ ?ڜfXQpRGHzo9tb"x։ታ.+z-ey7O\^QG:!~3KTC_ՎW ƅ$Mˤ^a^kEm j5$ >kjN$SZΖ0cZ1S9c-[}Rk ԆIX筰xFsjW6aQbe6:=bE"kbX,0QcrV''ҚںMYSeweE1q /ʶ@&֒ƱeܞѡŶêoWEj,R}5*Wt}^D .,$yT> 9'"KMS^N?ZF޵Է؟ˁx*d◢93F eegm?kVQckT?Z^2ML)ws,ZFMu  F\I渕Z[,̭́zcbIrh֤Z[|nVd& {.i+ޓ?$73;n35J#y{³00jR{-6JB`  =B቙Tf:/[X𸪲4?+]_Zs %IrXnjc_>i_c`7yu+=9鰷&e2ۊ[j>FJ]M7*fKYnm39.nxYP\-l>~6LnΝ ‹CS`ϵq,v\7-D'1Å"-oY~;-R%̎wlj'LMoʊC1?YoP?[+|CɬV ܺ˖_*q4Fy@\yNaSQBqrUR/3!Z$GϲS.y>'hᖺc4t'2U6l1!IiA<>"$cY݇KChـ?~DPߎ)N1m 6 .!QG? v34U>nNozWl&♉s?bdzۃbǗul~#7{:6b v*$Wںډuy)ZmEu\H3llj5 qTLm Bۮ Kl[7?s?CTAŭ:y-P/!PqOr )x;=p\wʳS}XQ^+\.xߵQow6_)SJ<[8lE (&gzs%˾I(\¦(,!XUm/p>|j˲&R]ĉk{ p֮wXQZHPZ{"h=W[w b=ERtgK{lCNjۏ)#pj];w[K*Ɨ'KjW7? qV ب^ZRIPihKw0 Q+֚Uuw(&LEbOl=iW2/Y_~ a$岭#"*,"Yv1Ҩe<<;ʩKw47WH][3myⳔccRw..GcUܱd>a"kcEG vx1hY|5|gjqObR~5JbpԻfyVp.]sIL溱=7Vu A7 80Vbl^-<,vGHmrɍ"tpeX\"yrhqvXz[Bi:_*Vй "}.]RB`~W!9tm{ltDo>ˮل jsJ)i ^"53bEpjܿ&6“g %[P[,pݿT]?ZrrNcLe|̹Xb/`ۓ>p [S@ '0mM2?zTZL>mm>%ñz]xo+Tm볅jHȭVqXeqcΥRrO]nev)# %v+m 5E#`ʫ!{VWL?Q]|S& {OE * 2oQ8RE-q4hKnfS#∴[3>+(NfW3a|r%Gҫ*VXa`ғ2 pW$`jmlL歿 >iJؕ/FLeaJ:X8҃ v mÍ>7/qm#yQɟ,C; -!GЊ&m1A@ޱ`TZELViggf6nXQʬM;{֫_lMH%<<4f6\ ڛyh@X4mBuyo汼hWaîD#jrːMm quqU`6T~$<yLqm6 @GnG 7;wDP gvSqR_k mYL=H3 = 8rOLR,<['qC?mva6ۼVyit\g$B"HEjIQĒAՌLOnY-@v(Ykm~ݧ0ISE5;[Zh#j2қx(HRzvu<;!OYGzʯ BvYqL+[yJ7֩lEĺ>YVqT7+zaUAـܟ-7XF)FJ0i6 ~U l&1K`4ߓ*6^6uY@jGexLM{H-m;& &TYMEZvPi 鉪C.2 `u?^) &O>eL~.ŷxpO`}7Ͱ ͠n*Sf7i@|Eωxjlc-B!RqwE~}jk~3%cooNmݵuIP]ԕ%ٮebĹm00r=dZ@VwiIL{8 UU*[h]9B3?J+NNG lHJ)r[-qɸ4o=[%pBȊSJWͷ)yX]g 7̱uBw._Ua`71kt_'A}iՉo} g@՗~Z3r!$͸|6-ʹͩTU-6\R%NyɥפmDςx o?2gY(og}㓤Z]o6]P)Zw1{w `TomX.᱂}s3}&+h6qXkYǛ1x`ک|UP(`+rK6.l!m6}=+\-E+FʡNoMj/<\0;]k y[&Vk?֛I1-[ۼmBn2zx Μ~\P)u]= ̰q1lT2oUKİs=<פ7he%ZomUl1 L|?ʰR@ԩO faZ"Iq68iXHmZ"DЖ9U$\ b#..ZcV+ǃ8Ii,-G7Vsk}"ݳ؇; +5{| ?߽U7gKZ@QKq5-8’4LFZUqLSZ4-AfҎ8۲ʐDTVi4q(ðKZPHoUtSl ̃WՉbP S{VW,uyҚZLg(/*l|ֹ͗ uDskn3XZ5b,R\C2ϰeUfnxHj'\@  qh -|5_Cmga_9VauP\ f5w*Ml3[oK?3۽PZ6QH2ޔVݮ#b8mN&)@=OS!4˜KR\*:oH0.n(LҎ-U4h[#`c}_Β&\ڳ01$RQq_#=C؈R`h cD؁J]ZK6MNhiZ*A7mԢX!O6e.LYu4vivo֑H'c`c-Y>,ub@P&}>E.5Yg)\:w&}`2"RN#m&8(lijUfF9 -ڸ֛m4ܓF<ǦL:VvX5󿆘8Mc>Q龜J3ьZV: ]o - ϩ[-:ԹmRHkmytҺxFK 6~ r͋zrIcOSŻuҢgzS񮑢ǖ;yE?2v?:󡹐!zE.ϐ^j gsn/em[ Z>QD0Y9I-9ꬳ~xJ]G]UM"lACZO!OM LNx?֫ uJXFB.Y\>  YӷaY`p 67L>(2xN2˙35^ u +K`:k&,{(d]uza-jq@w>7{$b/d?1XNs|]k:nkPOV~--G?LiԑF/,q(g:@HdU=wNQcS, 8{҃cl}er1/o m, jNyw mk'ְɉ=YrJ%e#EK ϊx-*a3m\0ɚ˒Z0b\EoԐxa8o;] ~uoOznjk6Y]"=[3aԑIVkr:A*}RPlF*JةZcu,yqD1 #D©q[mڹ4F2 &&fh*`necօm-b5 caq-#XP(Uw1YBFlzavױ~![wW PUJ2s^ Dw.5(WҶM1SQ1y :bm, #=ZO-b 3OLt(d`dAk./J`ݠ#RT^fXlQIF}1눭gI3.?JGL ~ Y>Okvrf'.X?a\%MF-tY]ܸJz;,sĵzΕm"}vJ)p]2KA0Ѹ:֮%YnR|tn[VzOOy<|&ͫ@\ wt܉RXV&'pjB83w͖ͼ8B41kbօU*vcޘWז*ɩ5W8ID0ض yj~֟Ÿ&Q[x8*k,J,fx˞:)̾vޮ<"H[XհY/+u&8V3mڽgf;ڮaMKFShnFbgf*nk؍wQm%_{8{ӟ"bmm~a~Ǹ^FG;Ke\= H棅+ʈda#}MXnݕKOjx;.\]RI>jmY;2}=x\{𖤈iSM&s.8ڹi~G`i wW^clөNa}jV p2[g:V ~ٜ\`1o06`ҥH$jm6%V) .հ u Y."e"Hiˊě1t*+]X[$5buJL *::[ؤ$iqw*Uڲ r]Vf[fLpǿҩע㡵ELWz`k 5;Zh;I܅#z{WWQ{mohImڲ6J3,jZkWIqpB1ܩ0k)E qaZWCKvRK9)hVB>S$֋FZ)ᩕ {E9AQ|52 3{ q#GQ2:6|jcϒ7a_ bA`Q@YV!3jL/@Q}IVmZ mmqjZt8=0 e\= PCԗ.Bf-X_vY=E2{@Dy&{St]7q NL@]IjkH-lA{H 2C"ߏ$ 85(ws+6aF7-pm N84F<.;{Z3r1GQa.[5GO3;TFJmK:6QuxUW>ɳ\F ڲ-ش~_qi$˘dPn0[I/0cI̊1jYYbA'aJH 2,9{Uwqkyp"C%UaG%BKEa$iн;wFFwt52N:7 /#92$+im\ |bA܀H1/ otSԙ0kyoh?δmW/fm5ڧ%>񸻗v:N˱v0C-nf^M(sm[O Fk#l8,>`1qI.lSڲBDUᳶIbx/k36=m6Jakt) d,C:ܹ7m3Ì&h~'Ͼ]XlCYe`/J\nGj'0X5)?Ab KkpivhfUl~m`xr8#j8:2ZЬީfsm̩#Tt#FǏd\܂[Io`.M7>-Jv˰oյ) mZ?:/7R_RRh\vPGv@pPQ4SԔǶ2]f~r |1'i; /jԳU'^ơ5'Cz)y:Aܨv5}euY,`}7hjCh*ӼAi߈!*rqi"%ˀ] ˇb)\U-(:Nn[b$VoG![z$H wϥ45t ,-(7.VγV720Z~Z['wuf_?2d#Etm\B> '6L|cjtPce$mA.ۺP0^+9Q/5<[tsBkml \\Ի+aM"7FQƅC RcU7EwŐyFoQ[XqTwݕڽrm}/!yc})RYmZ#(%Á\mk@#x얚x/11]{ Xzl8㔝1=MmENOGOMpIn=`6Φ]a-9!IU_> L:}+9 ==3o3l.s<[p}N6}T1W4o=u~Vs,g롄ΒlH(FXO heEЛaH#Pl6W]CX.Yrf LqE%ޚQ.M-n"KܾY JJM]"9m:Y)#,yM}R}C@mƦZX̮  b''%]ȀG֩(hC&,@aMgftlip$MTJ0}0XP]1 ,ERԊ]>Aw-R@MXN3T;EK؍OrbHڵ9Ed*Ӥ'^1` 2̀)0ҷ '$9IՕ|Oި$G?Z7-iC<jWjT.bWTjd*U㢶l@%9f ju.ǵfevoeCdUܟ8ˈCr7NI"jLN*`.gV[Q0StkԼQFf|Uvsoer獄*β)ް-`;ۦg.nCIe=)HdUXI 5ͻťxfLsan&+0.Z.L-ߕr+Bc0N%ˏ FݩNoAvk[3cb0X?VgV)7lMv b)|ʶZ/]-umQ4ԭ/bb7*{x6nhyRvԚT\t0[']V`a̟_jvsM]p}0a]C\ ̊7$lj1OKIH,X?ZӁo#^C'%*UX^iB('Қپט0-" jܗEGU.֥K2Uܻu^3, w.ސ!um[v%Ѐ$Ii$ v/6!1NC+"jƹ{Kb(%ƶYBT|zA[Rlֽm.a2.h^gl&[j-o `" S3kG? ]v,:(G֝Y5il&I؆=TtsJ6a: v_Muؿ݆ K~]QcfCs6?֯Ά(;jL-h_N0gyij) oɮ{Eg|0-*~ 2ߕqQ=(UAUStf2{^) deu#^XҶj8_Blwb7KX /Ák w-Pwƶ&crF]RfWlVTE#5]Ȱ߹l(MCϓfDK[eF-g\ ev8kJ ZU؀oZeLB5'DӶ.'/iAjfCw cޭ+MP֖İA=k*uvQg.|X=3̋2,X߼ ӓGbk+qjL.2aN1mX`apie򬙎iں bJ=MO8+9ckgYkaC];9Y rR1dKeq=cjI\Gb ېi[K{-+}QmG7pL@Ҭ1؃%tcCpkkѯήUr4#aj8}gY&X)FJj[t̤i1q/#jTvRj![ͫ1*cDcogF6Ÿ_JwU%,]1uXޯk.KFHLӷhx D۟Nu%|p(=tZd}IS[< ]euhPM*¹0xmɫ7y%ڳpb"cq!K1؋?zwjpxMUazbl,WƯ#ʮ'ޢQ_$4Դ̸8:l-Ǻk* W0Z*#Y?MђD00C?Z2%M5*~Ml+عÕQ֯b"˽a4HgW-"%6aL+۸x̰]`HK俄B_y1J(5ЖcİmI+{өxIC=)lфLE  3>NJu9)56G6H(dP[bTt*>e9ڎ^E܏uͫ;aΥ ?ԹslRDmo[b,]vxL>.k)82,ZߖuX( QY-3^Ƨ(Qֳs0w/2q[p0WI4`HYsJ,6t1[C;M$ձ=-2Ω<Ş ixѬsk7YNalAZq7 s1pS(5g:ޱp;oi-XwUՁ-n"?5A*(mm-ΖEmxmhGCКvWd jc1):/r {~Q-܅u/ =U{ +t2NnQ#VѓEңQ{V|FPlYh$'CJ`Ű-#*̀j^+}ߴT q՘˓-߲U]D} tq]\3;3lIor-;vaپ5h"2I>-PU: Yn޲<'hVj0~Ɔۢb7Aeˬb,8[)j\"1y * UioJHjk"3~eYSSsqנU薯43Pd(rH"}\= Zz_ïXI@F}PM 3T~[LKywm^|;8(|[V7[)[o5`;1!&ʹmgx یHzlajiqIsPάyHb*PJ0cS`T6APZLʊڒlI^"]n=M> . @ÆY0G֋uBM#t ̸P{I(7WW7iuM {*&^*jk[ ;@ݨn)z?libextractor-1.3/src/plugins/testdata/ps_wallace.ps0000644000175000017500000123640312016742766017563 00000000000000%!PS-Adobe-2.1 %%Creator: DECwrite V1.1 %%+Copyright (c) 1990 DIGITAL EQUIPMENT CORPORATION. %%+All Rights Reserved. %%DocumentFonts: (atend) %%EndComments %%BeginProcSet DEC_WRITE 1.06 % Date: Tue, 17 Dec 91 14:49:50 PST % Subject: PS preprint of JPEG article submitted to IEEE Trans on Consum. Elect % From: Greg Wallace % Mods by Tom Lane 18-Dec-91 to avoid use of nonstandard fonts: % Replaced Souvenir-Demi with Helvetica-Bold % Replaced Souvenir-Light with Helvetica % Deleted gratuitous use of AvantGarde for spacing /DEC_WRITE_dict 150 dict def DEC_WRITE_dict begin/$D save def/$I 0 def/$S 0 def/$C matrix def/$R matrix def/$L matrix def/$E matrix def/pat1{/px exch def/pa 8 array def 0 1 7{/py exch def/pw 4 string def 0 1 3{pw exch px py 1 getinterval putinterval}for pa py pw put}for}def/pat2{/pi exch def/cflag exch def save cflag 1 eq{eoclip}{clip}ifelse newpath{clippath pathbbox}stopped not{/ph exch def/pw exch def/py exch def/px exch def/px px 3072 div floor 3072 mul def/py py 3072 div floor 3072 mul def px py translate/pw pw px sub 3072 div floor 1 add cvi def/ph ph py sub 3072 div floor 1 add cvi def pw 3072 mul ph 3072 mul scale/pw pw 32 mul def/ph ph 32 mul def/px 0 def/py 0 def pw ph pi[pw 0 0 ph 0 0]{pa py get/px px 32 add def px pw ge{/px 0 def/py py 1 add 8 mod def}if}pi type/booleantype eq{imagemask}{image}ifelse}if restore}def/PS{/_op exch def/_np 8 string def 0 1 7{/_ii exch def/num _op _ii get def _np 7 _ii sub num -4 bitshift PX num 15 and 4 bitshift -4 bitshift PX 4 bitshift or put}for _np}def/PX{[15 7 11 3 13 5 9 1 14 6 10 2 12 4 8 0]exch get}def/FR{0.7200 0 $E defaultmatrix dtransform/yres exch def/xres exch def xres dup mul yres dup mul add sqrt}def/SU{/_sf exch def/_sa exch def/_cs exch def/_mm $C currentmatrix def/rm _sa $R rotate def/sm _cs dup $L scale def sm rm _mm _mm concatmatrix _mm concatmatrix pop 1 0 _mm dtransform/y1 exch def/x1 exch def/_vl x1 dup mul y1 dup mul add sqrt def/_fq FR _vl div def/_na y1 x1 atan def _mm 2 get _mm 1 get mul _mm 0 get _mm 3 get mul sub 0 gt{{neg}/_sf load concatprocs/_sf exch def}if _fq _na/_sf load setscreen}def/BO{/_yb exch def/_xb exch def/_bv _bs _yb _bw mul _xb 8 idiv add get def/_mk 1 7 _xb 8 mod sub bitshift def _bv _mk and 0 ne $I 1 eq xor}def/BF{DEC_WRITE_dict begin/_yy exch def/_xx exch def/_xi _xx 1 add 2 div _bp mul cvi def/_yi _yy 1 add 2 div _bp mul cvi def _xi _yi BO{/_nb _nb 1 add def 1}{/_fb _fb 1 add def 0}ifelse end}def/setpattern{/_cz exch def/_bw exch def/_bp exch def/_bs exch PS def/_nb 0 def/_fb 0 def _cz 0/BF load SU{}settransfer _fb _fb _nb add div setgray/$S 1 def}def/invertpattern{$S 0 eq{{1 exch sub}currenttransfer concatprocs settransfer}if}def/invertscreen{/$I 1 def/$S 0 def}def/revertscreen{/$I 0 def}def/setrect{/$h exch def/$w exch def/$y exch def/$x exch def newpath $x $y moveto $w $x add $y lineto $w $x add $h $y add lineto $x $h $y add lineto closepath}def/concatprocs{/_p2 exch cvlit def/_p1 exch cvlit def/_pn _p1 length _p2 length add array def _pn 0 _p1 putinterval _pn _p1 length _p2 putinterval _pn cvx}def/OF/findfont load def/findfont{dup DEC_WRITE_dict exch known{DEC_WRITE_dict exch get}if DEC_WRITE_dict/OF get exec}def mark/ISOLatin1Encoding 8#000 1 8#001{StandardEncoding exch get}for /emdash/endash 8#004 1 8#025{StandardEncoding exch get}for /quotedblleft/quotedblright 8#030 1 8#054{StandardEncoding exch get}for /minus 8#056 1 8#217 {StandardEncoding exch get}for/dotlessi 8#301 1 8#317{StandardEncoding exch get}for/space/exclamdown/cent/sterling/currency/yen/brokenbar/section /dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered /macron/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph /periodcentered/cedilla/onesuperior/ordmasculine/guillemotright/onequarter /onehalf/threequarters/questiondown/Agrave/Aacute/Acircumflex/Atilde /Adieresis/Aring/AE/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave /Iacute/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde /Odieresis/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn /germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla /egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis /eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash/ugrave /uacute/ucircumflex/udieresis/yacute/thorn/ydieresis 256 array astore def cleartomark /encodefont{findfont dup maxlength dict begin{1 index/FID ne{def}{pop pop}ifelse}forall/Encoding exch def dup/FontName exch def currentdict definefont end}def/loads{/$/ISOLatin1Encoding load def/&/encodefont load def/*/invertpattern load def/+/revertscreen load def/-/invertscreen load def/:/concatprocs load def/^/setpattern load def/~/pat1 load def/_/pat2 load def/@/setrect load def/A/arcn load def/B/ashow load def/C/curveto load def/D/def load def/E/eofill load def/F/findfont load def/G/setgray load def/H/closepath load def/I/clip load def/K/kshow load def/L/lineto load def/M/moveto load def/N/newpath load def/O/rotate load def/P/pop load def/R/grestore load def/S/gsave load def/T/translate load def/U/sub load def/V/div load def/W/widthshow load def/X/exch load def/Y/awidthshow load def/a/save load def/c/setlinecap load def/d/setdash load def/e/restore load def/f/setfont load def/g/initclip load def/h/show load def/i/setmiterlimit load def/j/setlinejoin load def/k/stroke load def/l/rlineto load def/m/rmoveto load def/n/currentfont load def/o/scalefont load def/p/currentpoint load def/r/currenttransfer load def/s/scale load def/t/setmatrix load def/u/settransfer load def/w/setlinewidth load def/x/matrix load def/y/currentmatrix load def}def end %%EndProcSet %%EndProlog %%BeginSetup %%BeginFont: Dutch801-Roman-DECmath_Extension % Bitstream Fontware PSO Font -- Version 1.6 % DECmath Font Version 1.0, 4-13-89 % % Copyright 1989 by Bitstream, Inc. All Rights Reserved. % Copyright 1989 Digital Equipment Corporation % % This product is the sole property of Bitstream Inc. and % contains its proprietary and confidential information % U.S Government Restricted Rights % This software product is provided with RESTRICTED RIGHTS. Use, % duplication or disclosure by the Government is subject to % restrictions as set forth in FAR 52.227-19(c)(2) (June, 1987) % when applicable or the applicable provisions of DOD FAR supplement % 252.227-7013 subdivision (b)(3)(ii) (May,1981) or subdivision % (c)(1)(ii) (May, 1987). Contractor/manufacturer is Bitstream Inc. % /215 First Street/Cambridge, MA 02142. % % This software is furnished under a license and may be used and copied % only in accordance with the terms of such license and with the % inclusion of the above copyright notices. This software or any other % copies thereof may not be provided or otherwise made available to any % other person. No title to and ownership of the software is hereby % transfered. % % The information in this software is subject to change without notice % and should not be construed as a commitment by Digital Equipment % Corporation. % % BITSTREAM, INC. AND DIGITAL EQUIPMENT CORPORATION DISCLAIM ALL % WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED % WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL % BITSTREAM, INC. AND DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY % SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER % RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF % CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN % CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. % /n_chars 128 def /DC { /bits exch def /name exch def /num exch def num 256 lt {Encoding num name put} if CharStrings name bits put } bind def /bsd 15 dict def bsd begin /FontType 3 def /FontName /Dutch801-Roman-DECmath_Extension def /PaintType 0 def /UniqueID 440185 def /FontMatrix [.001 0 0 .001 0 0] def /FontInfo 12 dict def /CharStrings 1 n_chars add dict def CharStrings /.notdef <0F> put /Encoding 256 array def 0 1 255 {Encoding exch /.notdef put} for /temp 15 dict def temp begin /get-word { 0 s i get add 8 bitshift /i i 1 add def s i get add 32768 sub /i i 1 add def } bind def /get-byte { s i get 128 sub /i i 1 add def } bind def /get-name { /len s i get def /i i 1 add def s i len getinterval /i i len add def } bind def /eval-arr 16 array def eval-arr 16#00 {get-word 0} bind put eval-arr 16#01 {4 {get-word} repeat setcachedevice newpath} bind put eval-arr 16#02 {closepath 2 {get-word} repeat moveto} bind put eval-arr 16#03 {2 {get-word} repeat lineto} bind put eval-arr 16#04 {6 {get-word} repeat curveto} bind put eval-arr 16#05 {4 {get-word} repeat get-name do-char} bind put eval-arr 16#06 {0 get-word rlineto} bind put eval-arr 16#07 {get-word 0 rlineto} bind put eval-arr 16#08 {0 get-byte rlineto} bind put eval-arr 16#09 {get-byte 0 rlineto} bind put eval-arr 16#0A {2 {get-byte} repeat rlineto} bind put eval-arr 16#0B {6 {get-byte} repeat rcurveto} bind put eval-arr 16#0F {end PaintType 2 eq {temp begin stroke exit} {temp begin fill exit} ifelse } bind put /do-char-arr 16 array def do-char-arr 16#00 {get-word pop} bind put do-char-arr 16#01 {4 {get-word pop} repeat} bind put do-char-arr 16#02 {closepath 2 {get-word} repeat moveto} bind put do-char-arr 16#03 {2 {get-word} repeat lineto} bind put do-char-arr 16#04 {6 {get-word} repeat curveto} bind put do-char-arr 16#05 {4 {get-word} repeat get-name do-char} bind put do-char-arr 16#06 {0 get-word rlineto} bind put do-char-arr 16#07 {get-word 0 rlineto} bind put do-char-arr 16#08 {0 get-byte rlineto} bind put do-char-arr 16#09 {get-byte 0 rlineto} bind put do-char-arr 16#0A {2 {get-byte} repeat rlineto} bind put do-char-arr 16#0B {6 {get-byte} repeat rcurveto} bind put do-char-arr 16#0F {closepath exit} bind put /eval { /s exch def /i 0 def { /t s i get def /i i 1 add def eval-arr t get exec } loop } bind def /do-char { t s i matrix currentmatrix 2 {6 index} repeat translate 2 {8 index 256 div} repeat scale end CharStrings 5 index get temp begin /s exch def /i 0 def { /t s i get def /i i 1 add def do-char-arr t get exec } loop setmatrix [/i /s /t] {exch def} forall 5 {pop} repeat } bind def end /BuildChar { exch begin 0.2 setflat Encoding exch get CharStrings exch 2 copy known not { pop /space } if get temp begin eval end end } bind def FontInfo /version (Fontware-PSO 1.6) put FontInfo /OutlineResolution 1000 put FontInfo /Copyright (Copyright 1989 by Bitstream,Inc. and Digital Equipment Corp. All Rights Reserved.) put FontInfo /Notice (Dutch 801 is a registered trademark of Bitstream, Inc.) put FontInfo /Date (1989/4/13 12:28:18) put FontInfo /FullName (Dutch 801 Roman DECmath_Extension (TM)) put FontInfo /FamilyName (Dutch 801) put FontInfo /Weight (Medium) put FontInfo /ItalicAngle 0.00 put FontInfo /isFixedPitch false put FontInfo /UnderlinePosition -100 put FontInfo /UnderlineThickness 60 put 32 /parenlfs4 <0083180180e27480830280290282cd802a04822b7f7981b47ebd81667dd604 81097cc380e37b7780e37a560480e37934810977e8816676d50481b875e48226753882cd 748109b5048270752e821775c381cd769f04816677cf813f7915813f7a5604813f7b968166 7cdc81cd7e0d0482147ee182747f828302802a094b0F> DC 33 /parenrts4 <008318018015748082348029028015802a0480a37f8381047edf814b7e0d04 81b27cdc81d87b9681d87a560481d8791581b277cf814b769f04810075c280a8752f8015 748109b60480f27539815f75e381b176d504820e77e78235793582357a560482357b76820e 7cc481b17dd60481617ec280ef7f76804b802a094a0F> DC 34 /bracketlfs4 <008247018115748082398029028116802a06745707812308c0077f1e068b2907 80e208c0077edd0F> DC 35 /bracketrts4 <00824701800d74808131802902800e802a08400780e30674d7077f1d084007 8124068ba9077edc0F> DC 36 /bracketlfbts4 <00827f018115748082718033028116803306744e07815b08c0077ee6068b7209 3f0F> DC 37 /bracketrtbts4 <00827f01800d748081698033028128803306748e077ee6084007815b068bb209 3f0F> DC 38 /bracketlftps4 <00827f018115747782718029028116802a06744d09c1068b7307811a08c007 7ea50F> DC 39 /bracketrttps4 <00827f01800d74778169802902800e802a084007811a06748d09c1068bb307 7ea50F> DC 40 /bracelfs4 <0083410180b0748082bd8029028289802a0481df7fdf81857f5681857e9906 7d4d0481857b9981787b4a81547b0604812d7abd80f57a8f80b07a66085f04814779eb8185 7974818578c5067d4a04818575a481a7753e81ee74ed04821c74b9824b749c8289748109b4 08a004821b74e981e6756881e6761206828e0481e6797e81a379e180ef7a560481a57acc 81e67b2a81e67c0b06828e0481e67f41821d7fc382bd800908a1094c0F> DC 41 /bracerts4 <008341018083748082918029028084802a085f0481257fc3815b7f42815b7e99 067d7204815b7b2a819d7acc82527a5604819f79e1815b797d815b78a0067d7204815b7568 812674e9808474a1086009b40480f6749c812674b9815474ed04819b753e81bc75a381bc 760f0682b60481bc797481fb79eb82917a4508a10481f87ac281bc7b3381bc7be60682b304 81bc7f5681627fdf80b8802a094c0F> DC 42 /anglelfs4 <00832601808a748082bc8029028284802a03808b7a56038284748109b80380c2 7a560382bc802a09480F> DC 43 /anglerts4 <0083260180697480829a80290280a1802a09490382637a5603806a748109b703 829b7a560380a1802a0F> DC 44 /slashs4 <0084fe01802e748084cf8029028498802a03802e748109b80384cf802a0949 0F> DC 45 /backslashs4 <0084fe01802e748084cf802902802e802a038498748109b7038066802a0948 0F> DC 46 /slash <00832b018025792a830580290282cc802a038026792b09b9038305802a0947 0F> DC 47 /backslash <00832b018025792a8305802902805f802a09470382cc792b09b903805f802a 0F> DC 48 /parenlefttp <00836b01812d79218341802902830f802a0481917e25812e7c06812e798c0816 09e208e60481907aea81a47c4282077d990482507e9482b27f578342802a094d0F> DC 49 /parenrighttp <00836b0180287921823c8029028028802a0480b97f55811a7e9581637d9904 81c67c4281da7aea81da7988081a09e208ea04823c7c0481d87e26805b802a094d0F> DC 50 /bracketlefttp <00829b0181427921828f8029028142802a0678f809c10686c807810d08c007 7eb20F> DC 51 /bracketrighttp <00829b01800a79218158802902800b802a084007810d06793809c006870807 7eb30F> DC 52 /bracketleftbt <00829b018142792a828f803302814280330678f807814e08c1077ef30686c709 3f0F> DC 53 /bracketrightbt <00829b01800a792a815880330281188033067939077ef3083f07814d06870809 400F> DC 54 /bracketleftex <00829b0181427d6a818380330281428033067d3809c10682c8093f0F> DC 55 /bracketrightex <00829b0181177d6a815880330281188033067d3809c00682c809400F> DC 56 /bracelefttp <0083790181867c7082d4800002829d80000481da7f6381867f1581877e0c06 7e6509ea0681a40481f17ef082317f5382d47fd808a809490F> DC 57 /bracerighttp <0083790180a37c7081f180000280a4800008580481497f5181867ef281877e15 067e5c09ea06819b0481f17f15819e7f6380db800009490F> DC 58 /braceleftbt <0083790181867c7a82d480090281878009067e660481867d6681da7d18829d 7c7a09b708a904822e7d2a81f17d8781f17e660681a309160F> DC 59 /bracerightbt <0083790180a37c7a81f180090281878009067e5d0481867d8881497d2a80a4 7ca3085709b704819f7d1a81f17d6481f17e6f06819a09160F> DC 60 /braceleftmid <0083790180a3790a81f180090281878009067e540481867d7e814a7d2280a4 7c9a08610481497bf481867b9581877ab8067e5309ea06819b0481f17ba281a87bf580ec 7c8a0481a97d2181f17d7181f17e6f06819a09160F> DC 61 /bracerightmid <008379018186790a82d480090281878009067e660481867d7381d07d20828c 7c8a0481d07bf681867ba181877aa6067e6509ea0681ad0481f17b9382317bf682d47c7b08 9f04822e7d2181f17d7e81f17e5d0681ac09160F> DC 62 /braceex <0083790181867ed381f180090281878009067ecb09ea06813509160F> DC 63 /arrowvertex <00829b0181367d9d816480000281368000067d9e09ae06826209520F> DC 64 /parenleftbtex <00836b01812d792a8341803302812e8033081604812e7e61814d7cfd81c27ba5 0482167aae827779f9830f792b09b30482ae7a0482527aba82077bbd0481a37d1781907e68 81907fce08e5091e0F> DC 65 /parenrightbtex <00836b018028792a823c80330281da8033081b0481da7e6b81c67d1381637bbd 0481187ab980bc7a058028792b09b30480f379f981547aae81a87ba504821c7cfb823c7e62 823c7fc908ea091e0F> DC 66 /parenleftex <00836b01812d7d6a8190803302812e8033067d3809e20682c8091e0F> DC 67 /parenrightex <00836b0181d97d6a823c80330281da8033067d3809e20682c8091e0F> DC 68 /angleleft <0082ee01808a76d582798029028241802a03808b7b8003824176d609b80380c3 7b80038279802a09480F> DC 69 /angleright <0082ee01807476d5826380290280ad802a094803822b7b8003807576d609b803 82637b800380ad802a0F> DC 70 /unionsqr <0083410180377c1f83097ffa0280787fd90B80aa3faa4080067c670B7f688660 a0600782910B9380a18da1a00683990B7faa3faa3f80067c88077daf0683780F> DC 71 /unionsqrdsp <0084570180377a94841f800002808b7fd70B80b52cb52d80067aea0B805f8954 ac5407838f0B9b80ad92adac0685160B80b52bb52c80067b10077cbf0684f00F> DC 72 /integralcon <0081d80180387ba8826c800002822f7fd20B5a705736832d0Bb773c9b1acd604 823a800381f4800d81c17ff204815b7fbb81537ef681467e9004807e7e7680607d6a8122 7d2004811e7ced81197cbb81137c8804810d7c52810d7c0d80e77be10B625d2f500c710B9b 95acc387d60B5c923972404e0480457bb5808b7ba180c47bac0481567bc9815f7ca1816e 7d1704823e7d3182597e4681937e8a04819a7ed1819f7f1881a67f5f0B84a68adaa7f60B9e 9ec89de27d0281417e620481387e06812e7daa81277d4d0480a27d8a80b37e3f81417e6202 818f7e5c04821b7e2382097d6781737d4504817e7da281877dff818f7e5c0F> DC 73 /integralcondsp <00822c018045774983b8800a0283787fdc0B4f774c3c6d280Ba768e385cfcd04 83a18017832e801d83007fe50482977f6982387d7182147cba0481967cba812e7c6b810b 7bef0480f57ba181087b5081347b0e0481577ada817b7ac381b37aad0481967a0f814f781e 8101779d0B685737300a550Ba798a6c88adc0B569e19713b2d0B8d66ab5ac6530Ba277c47e e19104814c7796817378028190785e0481ca791881ec79d982127a980Ba683c989ec9804 82c97ad183057b12831a7b6204832f7bae83217c0282f57c440B60b034cd02e60482967d55 82b37e0082d57eab0482e37eef83047f90831d7fca0B8fa3c5b9db9202820d7c8f0481f1 7bfb81d67b6881bb7ad50480cc7b3781207c96820d7c8f02826d7c7d0483517c1583147ad7 821a7ac20482367b5682527be9826d7c7d0F> DC 74 /circledot <0084570180377c18841f800002822c800004811b800080387f1e80387e0d04 80377cff811e7c19822c7c1904833d7c1984207cfb84207e0d04841f7f2183408000822c 800002822c7fc004831a7fc083de7efb83df7e0d0483df7d1f831a7c5a822c7c5a048142 7c5a80787d2380787e0d0480787ef981407fc0822c7fc002822c7e520481d17e5281d27dc8 822c7dc80482867dc882877e53822c7e520F> DC 75 /circledotdsp <0085ea0180367a8585b280000282f58000048175800080377ec080377d4304 80377bc9817c7a8682f57a850484757a8685b37bc285b27d430485b27ec58479800082f5 80000282f57fb204844e7fb285637e9b85637d430485637beb844b7ad582f57ad40481a5 7ad580877bf380867d430480867e9781a27fb282f57fb20282f47d9f0B5080255525240B81 51ad25db250Bb180dcabdcdb0B81b257dc24dc0F> DC 76 /circleplus <0084570180377c18841f800002822c800004811a800080377f2080387e0d04 80387cfe811d7c19822c7c190483407c19841f7cfa84207e0d0484207f2383428001822c 800002820b7fbe067e6f077e6d04808c7e9880a97ef280f97f420481447f8c81a37fb5820b 7fbe02824c7fbe0482b47fb583137f8c835e7f420483b07ef083ca7e9983df7e2d077e6d06 81910280787ded078193067e6f0481a07c6681477c8b80f97cd80480a67d2b808d7d808078 7ded02824c7ded0781930483ca7d8083b17d2b835e7cd80483117c8b82b67c66824c7c5c06 81910F> DC 77 /circleplusdsp <0085ea0180367a8585b280000282f4800004823c800081897fb981077f3604 80857eb480377dfb80377d430480387bc781787a8782f47a860484757a8585b27bbf85b2 7d430485b37eca847b800182f480000282ce7fb0067dbb077db60480a27e0880c77e88813e 7efe0481ab7f6a82377fa582ce7fb002831c7fb00483b37fa5843f7f6a84ab7efe048522 7e8785477e0885657d6b077db70682450280847d1d07824a067dbb0482317ae681b17b18 813e7b8a0480c67c0280a27c7f80847d1d02831c7d1d0782490485477c7e85257c0484ab 7b8a0484377b1783ba7ae7831c7ad80682450F> DC 78 /circlemultiply <0084570180377c19841f800002822c8000048119800080377f2080387e0d04 80387cf781167c1b822c7c1904833c7c19841f7cfd841f7e0d04841f7f1b833a8001822c 80000283457f5603822a7e3b03810d7f580481647f9381be7fc0822b7fc00482957fc082f5 7f9883457f560280e07f2a0381fc7e0d0380e17cf204809e7d4380777da080777e0c048077 7e7c80a37ed180e07f2a0283727f280483b57ed883dc7e7983dc7e0f0483dc7d9883b27d4e 83747cf10382577e0d0383727f2802822a7de00383467cc30482e97c8482a07c5b82287c5b 0481ba7c5b81627c80810f7cc503822a7de00F> DC 79 /circlemultdsp <0085ea01803a7a8685b580000282f880000481768000803b7ec6803b7d4504 803b7c8f80847bd581057b540481867ad282417a8882f87a870484777a8685b57bc685b5 7d440485b57ebe8472800282f880000284917f150382f67d7b0381587f190481da7f718253 7fb382f87fb20483917fb2841e7f7884917f150281217ee20382bf7d450381257ba90480bf 7c2180887ca180887d420480877deb80c87e5e81217ee20284c77edf04852b7e6d85637ddf 85637d460485637c9b85257c2c84ca7ba703832c7d450384c77edf0282f57d0e0384937b70 04840e7b14839f7ad682f37ad60482507ad781d47b0f815b7b730382f57d0e0F> DC 80 /summation <0084200180397c1883e380000280398000085c0381a07ded0380397c31086807 83590383e27d1309660483b17cdd83977cb483667c910483177c5b82b27c5382557c5307 7e350381f17e0e0380a97fd30781890482e07fd383777fbd83c97f14099b038397800007 7ca20F> DC 81 /product <0083b00180377c1883798000028038800008530Bbd81e569e525067d2a0B803b 59241b25085207812308ae0B427f1a961adb0683310781c6067ccf0B803c58241a25085207 812408ae0B427f1a971adb0682d60B80c4a8dce6db08ad077cbf0F> DC 82 /integral <0081d80180387ba8826c800002822f7fd20B667559556b3c0B9563c76ed08f04 82817ff181fa801e81b27fe904815f7fa981597f20814c7ec20481337e15812c7d678119 7cba0481137c82810f7c4a81017c140B7a666a4d543c0B60693a671e820Bb5aa97ee5fd704 80187c1180457ba980a37ba90480ff7ba981307bed81497c3e04815c7c8181647cc8816d 7d0d04817a7d7981867de581907e520481987eaa819c7f0281a57f5a0B85a78adea8fb0B9e 9ec89de27d0F> DC 83 /union <0083410180377c1f83097ffa0280787fd90B80aa3faa4080067dde0480377d68 80427d1a806a7cd40480a97c6581227c2081a17c2004821f7c20829b7c6582d97cd4048300 7d1a830a7d69830a7db70682220B7faa3faa3f80067dde0482c97d7382c27d31829f7cf404 826b7c9a82097c6181a17c610481397c6180d37c9980a07cf404807f7d3180787d748078 7db70682220F> DC 84 /intersection <0083410180377c1f83097ffa02830a7e6304830a7eb183007f0082d97f4604 829b7fb5821f7ffa81a17ffa0481227ffa80a97fb5806a7f460480427f0080377eb28038 7e63067dde0B7f55c055c0800682220480787ea6807e7ee980a07f260480d37f8181397fb9 81a17fb90482097fb9826c7f80829f7f260482c27ee982c97ea782c97e63067dde0B8055c0 55c1800682220F> DC 85 /unionmultiset <0083410180377c1f83097ffa0280787fd90B80aa3faa4080067dde0480377d68 80427d1a806a7cd40480a97c6581227c2081a17c2004821f7c20829b7c6582d97cd4048300 7d1a830a7d69830a7db70682220B7faa3faa3f80067dde0482c97d7382c27d31829f7cf404 826b7c9a82097c6181a17c610481397c6180d37c9980a07cf404807f7d3180787d748078 7db70682220281be7ee80B80ab3fab3f80067f5f077f600B5581554080400780a0067f5f0B 8154c154c1800680a10780a10Bab80abc080c0077f5f0680a10F> DC 86 /logicalor <0083410180387c16830980000281c17fe80B759f4aa03f8003803c7c450B7052 ad40bc6b0381a17f7e0382c97c300B8f55cc67bd950381c17fe80F> DC 87 /logicaland <0083410180387c16830980000280787fe80B71aa3497446c0381807c300B8c5f b55fc1800383067fd40B8eab52bf43940381a17c9a0380787fe80F> DC 88 /summationdsp <0085a40180377a78856d80000280388000085c03824a7d020380387a8d086b07 84b703856d7bca096004852d7b86850c7b5384ca7b2904844c7ad983a27ad783127ad707 7da80382c77d430380ee7fce0782310483a47fce84347fc984ac7f8a0484f77f6285217f2e 854b7ee609a20384f48000077b440F> DC 89 /productdsp <0084fe0180377a7884c68000028038800008400480907fc280de7fa780de7f3f 067bfb0480de7ad180917ab880387aba083e0781e108c20481bf7ab881727ad181727b3a06 8486078219067b7a04838b7ad1833f7ab882e57aba083e0781e108c204846c7ab884207ad0 84207b3a0684050484207fa7846e7fc284c67fc008c0077b720F> DC 90 /integraldsp <00822c018045774983b8800a0283787fdc0B5f7a51605c400B8b60b259cd690B a4959bd380ec048379801383308016830a7ff00482b17f9582637e3682477db50481f27c24 81ae7a8a816378f504815478a4812a77a780db77710B666e496c30810480d0779e808e77fb 805777ca04801f77998070772f80d6774f0481477773817e781d819a78810481c8792181e9 79c482087a6804823b7b6e826d7c75829d7d7d0482a67db082fb7fa983277fdb0B9699bfa1 d1810F> DC 91 /uniondsp <0084570180377a94841f800002808b7fd70B80b52cb52d80067cf30480377c5c 80477bf0807e7b8f0480d57af6817b7a95822b7a950482db7a9583867af583dc7b8f048413 7bf0841f7c5c84207cca06830d0B80b52bb52c80067cf20483cc7c6783c57c1283927bba04 834a7b3c82be7ae8822c7ae804819b7ae8810c7b3b80c57bba0480987c0c808b7c6c808b 7cc906830e0F> DC 92 /intersectdsp <0084570180377a94841f80000284207dcc04841f7e3a84137ea683dc7f0704 83867fa182db8000822b800004817b800080d57fa0807e7f070480467ea680377e3a8038 7dcc067cf30B7f4cd347d38006830e04808b7e2a80977e8a80c57edc04810c7f5b819b7fae 822c7fae0482be7fae834a7f5a83927edc0483c57e8483cc7e2f83cc7dcd067cf20B804cd3 47d48006830d0F> DC 93 /unionmultdsp <0084570180377a94841f800002808b7fd70B80b52cb52d80067cf30480377c5c 80477bf0807e7b8f0480d57af6817b7a95822b7a950482db7a9583867af583dc7b8f048413 7bf0841f7c5c84207cca06830d0B80b52bb52c80067cf20483cc7c6783c57c1283927bba04 834a7b3c82be7ae8822c7ae804819b7ae8810c7b3b80c57bba0480987c0c808b7c6c808b 7cc906830e0282537e820B80be2cc02d80067f1c077f1c0B4381402d802d0780e4067f1c0B 8044d33ed3800680e40780e40Bbe80c0d480d3077f1c0680e40F> DC 94 /logicalordsp <0084570180377a92841f800d0282557fee0B72a83aaa2c8003803c7ace0B6a44 bb2dcf6503822c7f640383cc7ab30B9448e45fcf9b0382557fee0F> DC 95 /logicalanddsp <0084570180377a92841f800d02808b7fee0B6db71ca131650382017ab30B8f55 c556d48003841b7fd30B95bb45d2319b03822c7b3e03808b7fee0F> DC 96 /coproduct <0083b00180377c1883798000028038800008530Bbd81e569e525067d2a0B803b 59241b25085207834108ae0B427f1a971adb0682d60B80c4a8dce6db08ad077edc08530Bbe 81e669e625067ccf077e3a0683310B80c4a9dce6db08ad077edd0F> DC 97 /coproductdsp <0084fe0180377a7884c680000280388000083f0480907fc180de7fa780de7f3f 067bfb0480de7acf80927ab880387aba083e07848e08c204846c7ab884207acf84207b3a06 84050484207fa7846e7fc184c67fbf08c1077e1f083f04833e7fc1838b7fa7838b7f3f06 7b7b077de70684850481727fa781c07fc182197fbf08c1077e1f0F> DC 98 /circumflex <00822c017ffc8230823082e702811582e8037ffc82470A8d6903811582af03 822282300A8e9703811582e80F> DC 99 /circumflexwide <0083e8017fff823e83e983060281f48307037fff82580A84670381f482ce03 83e5823f0A84990381f483070F> DC 100 /circumflvrywid <0085a4017ffc824085a883070282d28307037ffd825a0A86660382d282cc03 85a182400A879a0382d283070F> DC 101 /tilde <00822c0180018260822a82d602821c82d60481c7828f817e8272811982b104 80a682fb805c82be800282720A8d6e04805d82a580b182c5810e828504817d823b81d5827b 822a82c70A728f0F> DC 102 /tildewide <0083e8018000826483e182f10283d682f204832f829f82a7826d81f182bb04 8132830d80ac82cf800082760A886f0480b082b1812582e581db82960482a1824183318280 83e282e00A74920F> DC 103 /tildevrywide <0085a4018000827885a482fe02859e82fd0484ad82ae83ea827b82f082d004 827a82f982018308818582f60480ff82e2807f82bb8000828c0A886c0480f982cd81da8307 82d482ad048353828083d48275845a828c0484cd829f853982bf85a482ee0A7a8f0F> DC 104 /bracketfls2 <0081d80180de792a81c580290280de802a0679010780e808b8077f5006869007 80b008b7077f180F> DC 105 /bracketrts2 <0081d8018012792a80fa8029028013802a08490780af067970077f51084807 80e70686ff077f190F> DC 106 /bracketlfbts2 <0082100180de792a81fd80330280de80330678f807811f08b8077f190686d009 480F> DC 107 /bracketrtbts2 <008210018012792a813180330280fa8033067930077f19084807811f06870809 480F> DC 108 /bracketlftps2 <0082100180de792181fd80290280de802a0678f809b80686d10780e708b707 7ee10F> DC 109 /bracketrttps2 <008210018012792181318029028013802a08490780e706792f09b806870807 7ee10F> DC 110 /bracelfs2 <00829b018075792a8234802902820d802a0481d28019819a8005816c7fdc04 81307fa681287f7681287f2a067e780481287d1880e87cf180757cb908640480e87c658128 7c3c81287bb4067e7804812879d7813179a88178796f0B9a6bb85bd7500Ba871bc6ce66c08 9e0481b27969817279a481727a330681670481727be6816b7c1d81357c570B5da532bd06d4 0Bac97d7aefad304816b7d3881727d6f81727dbc0681660481727fb081b37fed8235800c08 9e09580F> DC 111 /bracerts2 <00829b018065792a82258029028066802a08620480e87fed81287fb081287f22 067e9a0481287d70812f7d3881667cfe0Ba25bce43fa2d0B54692851062c04812f7c1e8128 7be681287b9a067e9904812879a480e979698066794908620B8d809a80a8800B9285a38bb5 910B9e89b998d3aa048167799f817279d081727a2c0681880481727c3b81b47c6682267c9d 089c0481b27cf181727d1981727da20681880481727f7e81697fae81237fe60480ee8010 80a9802a8066802a0F> DC 112 /radicals1 <0083e80180667b80840e80390283db80390381cd7be80380f87de20380667d72 0A916b0Ac9ba0381a47b8009aa03840e8039094d0F> DC 113 /radicals2 <0083e80180667926840e80390283dc80390381cb79bb0380f87cb50380667c0d 0A926c0Ac7d50381a2792609a903840e8039094e0F> DC 114 /radicals3 <0083e801806676cc840e80390283de80390381c9778e0380f97b880380667aa8 0A946d0Ac4f003819f76cd09aa03840e803909500F> DC 115 /radicals4 <0083e80180667472840e80390283df80390381c775620380f97a5b0380667943 0A956e0380bd79bb03819d747309aa03840e803909510F> DC 116 /radicalbtex <008420018073790182e980170282bb80170679eb0381007f5f0380737e4c0A92 6e0380d47edb0382be790109ab06871609520F> DC 117 /radicalex <0084200182ba7d8682e980170282bb8017067d7009ae06829009520F> DC 118 /radicaltpex <0084200182ba7d868436802e0282bb802e067d5909ae06827907814e08ae07 7e840F> DC 119 /arrowdblvertex <00830a0180fc7d9d820980000280fc8000067d9e09af06826209510281db8000 067d9e09af06826209510F> DC 120 /arrowupex <00829b0180657d9d8234800002814d80000481077fa180d97f6b80667f450850 0480c47f2d80f47f5681367f9d067e0109ae0681ff0481a57f5781d77f2d82357f1508b004 81c07f6c81947fa0814d80000F> DC 121 /arrowdownex <00829b0180657d9d823480000281368000067e020480f97e4480be7e738066 7e8a08500480d47e35810a7df9814d7d9e0481907df981c77e3682357e5a08b00481dc7e73 81a27e4481647e020681fe09520F> DC 122 /bracehzlfdnex <0081bc017fee7f3181cf806a028197806a0480d2806a803f80077fee7f57085b 09b20480467f7c80787fac80c47fd204811c7ffe816f800081cf800008ea09480F> DC 123 /bracehzrtdnex <0081bc017fee7f3181cf806a027fee806a081604804280008094800080e37fdc 04813a7fb681727f84819d7f3209b208a50481a97fa981757fed812880200480c180658064 806a7fee806a0F> DC 124 /bracehzlfupex <0081bc017fee800081cf8139027fee8139085c04801480c0804580808094804b 0480fb80068158800081cf800008ea04817a806a8128806c80d9808f04808180b6804b80e6 80208139094e0F> DC 125 /bracehzrtupex <0081bc017fee800081cf813902819d813904817580ee814680c080f8809904 80a2806e804b806a7fee806a0816048053800080b58005810f803b04816c807181a380b6 81cf811508a4094e0F> DC 126 /arrowdblvttpex <00830a0180377d9d82d2800002818580000481567fb2812e7f7b80e97f3d04 80ad7f0780807eed80387ecf084f04808b7ec180b47ed980fc7f11067e8d09af0681a00B9f a2bdc4dae80B9c5eb93bd61a067e5e09af0681790482547eda827b7ec282d27e9e08b104 82327f1181dd7f6e818580000F> DC 127 /arrowdblvtbtex <00830a0180377d9d82d280000280fc8000067e8e0480bc7ec080827ee18038 7f01084f0480d17e9081317e2b81857d9e0481d97e2b82397e9082d27ed008b10482847ee1 824c7ebe820a7e880681780951067e5f0B635f463c2a1a0B63a445c626e806819f0951 0F> DC 160 /parenlefts1 <0081ca0180797b7d81a08029028186802a0481457ff9810b7fc680e17f7f04 80967efe807a7e68807a7dd404807a7d39809a7c9b80ea7c140481117bd381487ba78186 7b7d099b0481657baf81327bdf810f7c260480cc7cac80bc7d4180bc7dd40480bc7e6c80cd 7f0681147f8f0481367fd081687ffe81a1802a09650F> DC 161 /parenrights1 <0081ca0180297b7d81508029028045802a09650480627ffe80957fd080b67f8f 0480fd7f06810e7e6c810e7dd404810e7d4180fe7cac80bc7c260480977bdd80677bb0802a 7b7d099b0480847ba980b77bd080e07c140481317c9b81507d3981507dd40481507e688134 7efe80e97f7f0480bf7fc680857ff98045802a0F> DC 162 /bracketlfs1 <0081a10180c27b80818b80290280c2802a067b560780ca08b3077f6906844507 809708b2077f360F> DC 163 /bracketrts1 <0081a10180147b8080de8029028015802a084e078096067bbb077f6a084d07 80c90684aa077f370F> DC 164 /bracketlfbts1 <0081d80180c27b8081c380330280c28033067b4d07810108b3077f3206848009 4d0F> DC 165 /bracketrtbts1 <0081d80180147b80811580330280e38033067b80077f32084d0781010684b309 4d0F> DC 166 /bracketlftps1 <0081d80180c27b7681c380290280c2802a067b4d09b30684810780ce08b207 7eff0F> DC 167 /bracketrttps1 <0081d80180147b7681158029028015802a084e0780ce067b7f09b30684b307 7eff0F> DC 168 /bracelfs1 <0082470180577b8081f080290280587de208660Ba777d26ff3580Bad60af3daf 0b067f0d0480f97ba881757b8081f07b80089c04817b7ba781387bba81397c440680d204 81387d9f81067db9808c7dd50481077df281387e0a81397e950680d20481387ff1817b8002 81f0800e089c048176802a80f9800080fa7f72067f0e0B804e7d2b510b0B5f6934610d57 0F> DC 169 /bracerts1 <0082470180567b8081ef80290281f07de20B598a2d920ca90B54a051c351f506 80f204814d800180d3802a8057802a08640480cd8002810f7ff1810f7f67067f2e04810f 7e0a81417df281bc7dd50481427db9810f7d9f810f7d16067f2e04810f7bba80cd7ba78057 7b9c08640480d37b80814d7ba7814d7c380680f30B80b283d5aff50Ba197cd9ff4a8089a 0F> DC 170 /anglelfs1 <0081d80180607b80819c8029028162802a0380607dd50381627b8009ba03809b 7dd503819c802a09460F> DC 171 /anglerts1 <0081d801803c7b8081788029028077802a094503813e7dd503803c7b8009bb03 81787dd5038077802a0F> DC 172 /linevertex <00814d01808f7da280bd80330280908033067d7009ae06829009520F> DC 173 /linedblvertex <00822c01808f7da2819c80330280908033067d7009ae068290095202816e8033 067d7009ae06829009520F> DC 174 /slashs1 <0082470180247b80822280290281e8802a0380257b8009ba038223802a0945 0F> DC 175 /backslashs1 <0082470180247b808222802902805f802a09460381e87b8009bb03805f802a 0F> DC 176 /parenlfs2 <0082550180b27929822b8029028208802a0481b87fdb816f7f8a81397f2604 80d17e6280b27d8580b27caa0480b27bcf80d17af281397a2e04816f79c881b779798208 792909a40481df7978819e79c581717a2b0481177af480fd7bd080fd7caa0480fd7d848117 7e6081717f2904819e7f8d81e07fdd822c802a095c0F> DC 177 /parenrts2 <008255018029792981a3802902802a802a0480757fdd80b87f8d80e47f2904 813e7e6081587d8481587caa0481587bd0813e7af480e47a2b0480b779c580767978802a 792909a30480a0797b80e479c5811c7a2e0481847af281a37bcf81a37caa0481a37d858184 7e62811c7f260480e77f8a809d7fdb804d802a095d0F> DC 178 /parenlfs3 <0082e00180ea76d482b6802902828a802a04822a7fbc81d27f4b81907ec804 810c7dc380ea7ca180ea7b800480ea7a638109794b818878490481cf77ba8225774d828a 76d509ac0482587744820c77a781d27831048162793d813e7a60813e7b8004813e7c9c8161 7dbb81ce7ec40482067f4b82597fbc82b6802a09540F> DC 179 /parenrts3 <0082e001802976d481f68029028056802a09540480877fbc80da7f4b81127ec4 04817f7dbb81a27c9c81a37b800481a27a60817e793d810e78310480d477a780887744802a 76d509ac0480bc774e811077b8815878490481d8794d81f67a6181f67b800481f67ca181d4 7dc381507ec804810e7f4b80b67fbc8056802a0F> DC 180 /bracketlfs3 <0082100180f976d581ff80290280fa802a0676ac07810608bc077f360688dc07 80ca08bc077efa0F> DC 181 /bracketrts3 <00821001801076d581158029028010802a08440780ca067724077f36084407 8106068954077efa0F> DC 182 /bracketlfbts3 <0082470180f976d5823780330280fa80330676a307813d08bc077eff06892109 440F> DC 183 /bracketrtbts3 <00824701801076d5814d803302811180330676df077eff084407813d06895d09 440F> DC 184 /bracketlftps3 <0082470180f976cc823780290280fa802a0676a309bc06892107810108bc07 7ec30F> DC 185 /bracketrttps3 <00824701801076cc814d8029028010802a08440781010676df09bc06895d07 7ec30F> DC 186 /bracelfs3 <0082ee01809276d58279802902824b802a0481ad7ff181567f9081577ee106 7de30481567c2981187bd780937b8f08620481177b2a81567ad481577a3c067de1048157 77b98170776b81ba77260B9a68b854d9450Bb06cb36be66b089f0481e7772581ac778b81ac 78230681fa0481ac7ad681707b2680d57b800481707bdb81ac7c2881ac7ce30681fa0481ac 7f7181eb7fdc8279800a08a009520F> DC 187 /bracerts3 <0082ee01807576d5825b8029028075802a08600481067fdb81427f7381427edd 067e060481427c29817f7bdb821a7b800481807b2781427ad581427a1d067e06048142778c 81077725807576f508610B8f809f80ae800B9085a08cb0920B9e8cba9dd3b204817a7760 819777b18197781d06821f0481987ad581d87b2a825b7b71089e0481d67bd781987c298197 7cc406821d0481977f45817f7f9481347fda0B669848ab27ba0B589146961a960F> DC 188 /anglelfs3 <008263018053792a820080290281c7802a0380547cab0381c7792b09b903808d 7cab038200802a09470F> DC 189 /anglerts3 <008263018062792a820f8029028063802a0381d67cab038063792b09b903820f 7cab03809c802a09470F> DC 190 /slashs3 <00841401802a76d583ea80290283b2802a03802a76d609b90383ea802a0948 0F> DC 191 /backslashs3 <00841401802a76d583ea8029028063802a09470383b276d609b8038063802a 0F> DC /FontBBox {-18 -2958 1461 775} def end /Dutch801-Roman-DECmath_Extension bsd definefont pop %%EndFont %%BeginFont: Dutch801-Italic-DECmath_Italic % Bitstream Fontware PSO Font -- Version 1.6 % DECmath Font Version 1.0, created 4-13-89 % % Copyright 1989 by Bitstream, Inc. All Rights Reserved. % Copyright 1989 Digital Equipment Corporation % % This product is the sole property of Bitstream Inc. and % contains its proprietary and confidential information % U.S Government Restricted Rights % This software product is provided with RESTRICTED RIGHTS. Use, % duplication or disclosure by the Government is subject to % restrictions as set forth in FAR 52.227-19(c)(2) (June, 1987) % when applicable or the applicable provisions of DOD FAR supplement % 252.227-7013 subdivision (b)(3)(ii) (May,1981) or subdivision % (c)(1)(ii) (May, 1987). Contractor/manufacturer is Bitstream Inc. % /215 First Street/Cambridge, MA 02142. % % This software is furnished under a license and may be used and copied % only in accordance with the terms of such license and with the % inclusion of the above copyright notices. This software or any other % copies thereof may not be provided or otherwise made available to any % other person. No title to and ownership of the software is hereby % transfered. % % The information in this software is subject to change without notice % and should not be construed as a commitment by Digital Equipment % Corporation. % % BITSTREAM, INC. AND DIGITAL EQUIPMENT CORPORATION DISCLAIM ALL % WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED % WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL % BITSTREAM, INC. AND DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY % SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER % RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF % CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN % CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. % /n_chars 128 def /DC { /bits exch def /name exch def /num exch def num 256 lt {Encoding num name put} if CharStrings name bits put } bind def /bsd 15 dict def bsd begin /FontType 3 def /FontName /Dutch801-Italic-DECmath_Italic def /PaintType 0 def /UniqueID 440305 def /FontMatrix [.001 0 0 .001 0 0] def /FontInfo 12 dict def /CharStrings 1 n_chars add dict def CharStrings /.notdef <0F> put /Encoding 256 array def 0 1 255 {Encoding exch /.notdef put} for /temp 15 dict def temp begin /get-word { 0 s i get add 8 bitshift /i i 1 add def s i get add 32768 sub /i i 1 add def } bind def /get-byte { s i get 128 sub /i i 1 add def } bind def /get-name { /len s i get def /i i 1 add def s i len getinterval /i i len add def } bind def /eval-arr 16 array def eval-arr 16#00 {get-word 0} bind put eval-arr 16#01 {4 {get-word} repeat setcachedevice newpath} bind put eval-arr 16#02 {closepath 2 {get-word} repeat moveto} bind put eval-arr 16#03 {2 {get-word} repeat lineto} bind put eval-arr 16#04 {6 {get-word} repeat curveto} bind put eval-arr 16#05 {4 {get-word} repeat get-name do-char} bind put eval-arr 16#06 {0 get-word rlineto} bind put eval-arr 16#07 {get-word 0 rlineto} bind put eval-arr 16#08 {0 get-byte rlineto} bind put eval-arr 16#09 {get-byte 0 rlineto} bind put eval-arr 16#0A {2 {get-byte} repeat rlineto} bind put eval-arr 16#0B {6 {get-byte} repeat rcurveto} bind put eval-arr 16#0F {end PaintType 2 eq {temp begin stroke exit} {temp begin fill exit} ifelse } bind put /do-char-arr 16 array def do-char-arr 16#00 {get-word pop} bind put do-char-arr 16#01 {4 {get-word pop} repeat} bind put do-char-arr 16#02 {closepath 2 {get-word} repeat moveto} bind put do-char-arr 16#03 {2 {get-word} repeat lineto} bind put do-char-arr 16#04 {6 {get-word} repeat curveto} bind put do-char-arr 16#05 {4 {get-word} repeat get-name do-char} bind put do-char-arr 16#06 {0 get-word rlineto} bind put do-char-arr 16#07 {get-word 0 rlineto} bind put do-char-arr 16#08 {0 get-byte rlineto} bind put do-char-arr 16#09 {get-byte 0 rlineto} bind put do-char-arr 16#0A {2 {get-byte} repeat rlineto} bind put do-char-arr 16#0B {6 {get-byte} repeat rcurveto} bind put do-char-arr 16#0F {closepath exit} bind put /eval { /s exch def /i 0 def { /t s i get def /i i 1 add def eval-arr t get exec } loop } bind def /do-char { t s i matrix currentmatrix 2 {6 index} repeat translate 2 {8 index 256 div} repeat scale end CharStrings 5 index get temp begin /s exch def /i 0 def { /t s i get def /i i 1 add def do-char-arr t get exec } loop setmatrix [/i /s /t] {exch def} forall 5 {pop} repeat } bind def end /BuildChar { exch begin 0.2 setflat Encoding exch get CharStrings exch 2 copy known not { pop /space } if get temp begin eval end end } bind def FontInfo /version (Fontware-PSO 1.6) put FontInfo /OutlineResolution 1000 put FontInfo /Copyright (Copyright 1989 by Bitstream,Inc. and Digital Equipment Corp. All Rights Reserved.) put FontInfo /Notice (Dutch 801 is a registered trademark of Bitstream, Inc.) put FontInfo /Date (1989/4/13 12:34:32) put FontInfo /FullName (Dutch 801 Italic DECmath_Italic (TM)) put FontInfo /FamilyName (Dutch 801) put FontInfo /Weight (Medium) put FontInfo /ItalicAngle -15.60 put FontInfo /isFixedPitch false put FontInfo /UnderlinePosition -108 put FontInfo /UnderlineThickness 60 put 32 /psi <008286017fe97f24825b82560280de8013048022804280c3811880bd818f0B7eb2 50d51fc704802281c57fff81887fe981530A97770B8fa0a1c2bfd60B958eab88ab6c048068 8151803680f78031809f04802e806c8049803d8071801d0B9d69bf60e4590380967f2509df 0381237ff40481ba800b821480848244810e0482528136828081d9822781d60481d781d2 821381608215813904821a80ed81f780a581c5806f048199803d816b8021812b80160381af 825709610380de80130F> DC 33 /omega <0082ac017ffd7ff3826981d30280fb81b90A7f9a04803581b27fad80a6802f 80180B9e61cf54f9610Bb58fd3bcecea0B855a8f2fb51d0481787fe781b37ffb81dc801504 8276807b82b6819681e481d30A7469048224819782178151820a81040481fd80bb81d9801f 817b80170B647e498d3fa80481298070813a80a8814c80d604815a80f981ae81808158818a 04810d8192811a80f6811380cb048109808b80e6802c809f801a0B6c7b58834a910B669b67 c86ceb04805e80d9807181218090815d0B9bb6b3ccebdc0F> DC 34 /epsilon <0081b80180027ff3817181d702815480670A688e0B6555462d10240B4c761b 9412ca04805480a1808280dc80bd80e90B9e7de264e48f0B81a93e95299104805a812380a5 81d7810d81b50Ba3759c56a43b0B8964ad61bb7b0B96a56fcf4fde04810d81de80d081dd 80a081cd04802e81a680168129809180fc0B50741d620235047ff080748008801d804c8002 0480807fef80bf7fee80f380040Bad94c8bae1e30F> DC 35 /theta1 <008209017ff37ff5821382e702816981db04816881618166808d8106803404 80bf7ff38071801f8091808e0480a580d3810381a3809c81d004804881f5800c818e7ff3 814e0A97780B8c9cb3f0ddde0480918190804580c4803e80a204802c8044805d7fee80c5 7ff6048189800581bc812881c181c60B9a79b373cd6d0A85a20B65864a8d2f940481bd822a 81bd8272819782aa04816f82e6811482f980d482d804809182b5807e825a80b882240480e8 81f8812b81eb816981db0281698200048138820d80fc821a80dd82440B62a76de9a2f504 815b82cd8165823b816982000F> DC 36 /omega1 <0082f001800c7ff382e781cc02807e818709b00480738148803d8104803580ab 048030806b804b8019808b7fff0480e67fd78123801a814b8063048155801081817fe081da 7ffc04821d800f825a8047827880860482a380de829a8130826f818409ea0A8ec9077ddf04 805581cd802d81ca800d8152099e0B8ca7abb5d3b5028245818704824f8123823b80b6820a 805e0481f1803181b57ff981818027048143805f818980d781a2810e0B94aa8ce955db04 813e815a814980ca813e80960B774d4f161d060B4a6e2fa72ed404808780cc80b2813680dc 81870781690F> DC 37 /rhomath <0082230180037f2081dd81d702813a7f200A94880481587f9c80e77f8a8093 7f940480147fa3801f802b8027808a0480358051804c801e808580050480d97fe1813e8003 817d80400481ca808b81f6810181ce816a0481ac81c0814781e780f181d104807f81b3803a 814a801d80de048002807a7fed7fdf802f7f8604805e7f4880aa7f3e80f27f3f0B9f80b97f c8610280a9815c0480d1819c812c81e8816b81950481a2814b817380ae8146806704811c 802380bd7fe980868042048057808e807e811680a9815c0F> DC 38 /sigma1 <00816801800a7f99816f81da0280427fc40A78640Ba276c56ce8770Baa8cc7b0 d1da04810e8069809180ac805880f8048023813f8068819380b081a404811181ba81258175 815681850Bab8eaad245d60480e081dc80a881d1807681b204804081918012815c800c811c 047fff80898083807080ac80110B8c6687456c350B667045782a7e0F> DC 39 /phi1 <00826c017ffe7f1d823381da0280947ff90380557f1d09d60380e87ff404812c 7ff681668005819f802c0481f68069823c80d58233814304822a81b081c58201815b81c804 8108819c80ec812a80d580d70380a280240480628041804f8083805380c60480588116807a 815980af81930A6b96048046816a7ff8811f7fff80ac048003804e8040801480947ff902 811f80bc04813281008144815d819081790B9c8abb81ce6b0B9668954491260481e680c4 81c58083818e8056048160802f812c801f80f1801a03811f80bc0F> DC 40 /arrowlefttop <0083e801803e811283a981d00283a9811308b8077d03038179819e0A6ab303 803f8155083e07836a0F> DC 41 /arrowleftbot <0083e801803e808c83a9814b0283a9814b077c96083e038163808d0A96b303 80ac81120782fd08b90F> DC 42 /arrowrighttop <0083e801803e811283a981d002803f811307836a08c203828581d10A6a4d03 833c814b077d0308480F> DC 43 /arrowrightbot <0083e801803e808c83a9814b02803f814b08470782fd03826f80c00A964d03 83a9810908c2077c960F> DC 44 /hookleft <00811601809a81128169826b028169814b04811a814680d2816780d581c204 80d8821a811e82358169823208b90B57812c7e08690480bd8237809b81fa809b81bf04809b 818480bd814880f1812a0Ba46bce67f86908b80F> DC 45 /hookright <008116017fbc81128089826b027fbc814a08490Baa7ed382f8970480688148 80898184808981bf04808981fa80688237803482540B5b953298089708470480078235804c 821a804f81c20480528166800a81477fbc814a0F> DC 46 /triangleright <0081f4018011800081e281cb02801281cb067e350381e280e503801281cb02 803e818803818480e703803e80470681410F> DC 47 /triangleleft <0081f4018011800081e281cb0281e281cb03801180e50381e280000681cb02 81b68188067ebf03807080e70381b681880F> DC 48 /zerooldstyle <00820201801a7ff281e6820a02802a816204800480ea80238042809d800704 81247fc781b4801381db80a40481fc812081de81c7815a81fc0480d6822f805481e3802a 816202807a814e048091823d8190822d818a80c9048189809681848058815e803204813e 80128107800880de801c048082804a807180f6807a814e0F> DC 49 /oneoldstyle <00820201807d8000818481fd02807e81e80Bd57bd767d715067f030B802f7e19 2915086b07810608950B2b84289a28eb0680fd0B80d283e7d8eb0895077efa086b0F> DC 50 /twooldstyle <008202018026800081e0820a028027801908670781850381e1808e09630481a6 80528175805181388051077f610480e28088813980c3817681070481ae814781ba81a48175 81e104813e821180eb821780ad81f004807e81d2806481a1804f816f0A9a790B97a3b3c2dd ce0Baf8ee67ffd5204815f8150813a8113811480ea0480cd809c8078805c80278019 0F> DC 51 /threeoldstyle <0082020180277f3c81c6820a0280a580b7086b0480f280a181488095816c8047 04818c800081747fa481337f790480bf7f2b80a97fae804d7fa90B547d53487031048072 7f3080cf7f39810b7f4a0481767f6a81c57fc381c680350481c68096819680c8814080e80B a4a1cbc4daf40481ad819a819281d6815b81f5048120821880ce820e809681e904806781ca 8049819a803381670A91740B96a1adc2d2d50480c681c8810681cb812f81a404815d817a 815481308132810204810f80d280dd80bf80a580b70F> DC 52 /fouroldstyle <0082020180267f3c81e4820a0281357ffa067f4209ce0680be09e108c3091f06 81cd09530380278046083407810e028135819b067ea2077f17038135819b0F> DC 53 /fiveoldstyle <00820201802a7f3c81d182190280c281fe03804d80f10480b680e9813980d1 816a806804818f801b817b7fb581377f800B676d476327650B6a82598f489d0B67953fb01c a20B5b70694583320480847f2980fd7f3d813b7f5f0481a97f9d81dc802881ad809e04817f 810d810681388099814b0Aace40780e20Aabe20A73890B6d6560644064077f3d0F> DC 54 /sixoldstyle <00820201802f7ff381d982c0028093815f0480c58197810e81ab8147816e04 8183812d818880a1816a805104813d7fd280597fe58093815f0281c382ab089604817482b7 812982a780e6827b04808b8240805181e4803b817b048027811c802480a5805c805004808c 800780e57fe6813b7ff90481d38017820080ea81b8816204817881cd80fa81cf809d818c04 80c482388115828a81c382ab0F> DC 55 /sevenoldstyle <0082020180257f3d81e981fd02806781fd0380268153099704806381a8807a 81a880d381a90780bf0380bd7f3d09be0381ea81fd077e7d0F> DC 56 /eightoldstyle <00820201802d7ff281d382c10280d98152048113812c817d80eb818680a104 818f804c815a800d8104800e04804f8010804f810580d98152028132818404816d81a581af 81c981bb82130481ce8288817082c1810782c104808f82c080308269804881ed04805481ac 808c818180c0815e048081813e803e8110803180c404801b8044807f7ff480f97ff3048173 7ff281eb804d81d080d20481bf8127817281558132818402811e81910480eb81b0809b81de 808d821d04807d826a80b782a7810382a80481a182aa819d81de811e81910F> DC 57 /nineoldstyle <00820201802b7f3c81d5820a0280427f53086a0480937f4780d97f55811f7f83 04817a7fbe81b4801981ca80820481dd80e181e1815881a981ac04817981f6811f821780ca 820504803381e680038113804c809b04808e8030810a802d816880710481578026813b7fe1 81037faa0480cc7f75808b7f6080427f53028171809e048140806680f6805280bd808e04 808080cf807d815c809981ac0480c7822a81aa821b8171809e0F> DC 58 /periodmath <0080fa0180427ffa80b7806d02809a80650B3fa60443461d0Bc15afcbdbae3 0F> DC 59 /commamath <0080fa0180277f5980d280720280287f6e0A876b0Ba593c7a8e4c60Ba1a3bbcd bffc0B87dc1ff70bae0B6f40b945b71d0B7e4d3c1f14080F> DC 60 /less <008341018080801e82bf82360282c08236038081814a08410382c0801f08cb03 80e7812a0382c081eb08cb0F> DC 61 /slashmath <0081f40180377f1481bc82fb02819082fc0380387f1509aa0381bc82fc0954 0F> DC 62 /greatermath <008341018081801e82c082360280818236083503825b812a038081806a0835 0382c0810b08bf03808182360F> DC 63 /starmath <00822501800f8019821481fc028151814403811281fd0380d48144077f3c03 80b080d40380798019038112808d0381ac801903817580d40382158144077f3c0F> DC 64 /partialdiff <0081f40180417ff481b7827b02816981200481508166811a818c80cd 8177048045815380118085807180210480997ff780d87fe9810e7ffe048166801f81928086 81a680da0481c4815681cd8268811b827a0B558412720c3e0B7c51b657cd6e0B9c9bbacfe3 a4048185821b817781618169812002808f80c1048099810280be816e8115815b0481638149 815c80e1815280a4048147806481277ffc80d1800b04807f801980868084808f80c1 0F> DC 65 /A <008263017f998000822582a302817682a3096a03800a805e0B614a4f3a14330A7c6f 0780d50A85910B3b8031a551df0Ab5e20B8487898e918e0780d70A930c0B8a3f742433250A 7c6f0780fe0A84910B3d8438a42fdf03817682a302815b8103077f3d03812f820503815b 81030F> DC 66 /B <008263017fd08000823d82940281678294077f110A7b6d0Bc879d06bbd22038038 80670B6d3a61311d2c0A7b6d07811d0481228000815780058188801a0481c2803481f88065 820780a504821280d3820a810681f0812d0B6d9d4eac2fb80481f7817f824d81bd823b8224 04822a828781b982948167829402811c823d0B8eb798b6cfb70481bf827581e5823381d0 81e40481b7818781678170811181700B6e80527c599603811c823d0280d6813c0B889eb394 c894048190815081b580f78192809304817180348113801680b7801f0B56835ca565c403 80d6813c0F> DC 67 /C <00829b0180247ff2829582a2028296829c09670B71676066456f04819f82c48102 828a8091820804804881b480198146802780d5048033806f8073801b80d7800004812a7fe7 818d7ff181d8801d0Bab9bcebeeee40A6b930481657fa78050802a80a9816c0480fe829f 826b82f2825581d90999038296829c0F> DC 68 /D <0082d2017fcf800082aa82940281778294077f020A7a6d0Bc979d36abf2203803b 80670B6e3c5d2e192c0A7b6d07811f04813a80008186800b81ca802d04823b8065829480d2 82a681510482c48220823782948177829402811682260B8fb895d1d5cf0481a3827381db 82698203823d04824381f7823f8189822b8133048201807e8185800980c780220B438850ac 5edd03811682260F> DC 69 /E <008263017fce8000825682940282578294077e200A7b6d0Bc979cc68b922038033 80670B6e3a6431212c0A7b6d07820603821880b5096d0481d1805881a1802b8133802304 8114802080b38018809a802b0B6b8f7db982cc0380d781510481508151817a8165816a80e5 09930381bf81cf096d0B77686f4f5b3c04815d81658112817180df817103811482330B8593 8ab09cbc048143827b81a5827481b282740Bde7ff773f611099203825782940F> DC 70 /F <008263017fd88000827482940282748294077e0b0A7b6d0Bc97ad96cc522038048 80670B6d395b31162c0A7b6d0781290A83910B47811a8a2dce0380f0814d04810c814d817c 81588193813a0B94688d408a2409930381ef81ce096d0B7467674c503a0481808166812d 816e80f8816e038129822f0B859489b5a0be048169827981b8827381d582730Bda7ef15bf0 05099203827482940F> DC 71 /G <0082d20180217ff282ba82a30282ba829b09660B71696252435b0B77836e89658d0B 668d4b962e9b04819082b08127828f80d682500480758205802f818f8023811504801980b4 8043804c809980180481107fd181b27ff28225803303824d80d00B92c397dde1e10A859107 7ef80A7b6f0Bc47bdb7dc7310381c9805b0481a57fdc80647fe3809b812c0480de82ba825e 82eb827081d1099b0382ba829b0F> DC 72 /H <0082d2017fcf80008303829402817e8294077efa0A7b6d0Bc879cf69bc22038038 80670B6c3a61311d2c0A7b6d0781050A86930B3786309843de0380d381380B85908b949d94 0780eb0B98809f7b98620381bd80670B6e3a63311e2c0A7b6d0781050A85930B3886319844 de03829b822d0B91c0a1d3e3d40A8593077efb0A7b6d0Bc979ce69bc2203820b81850B7c70 756b646c077f140B6a7f6186689e038115822d0B91c0a2d3e4d40A85930F> DC 73 /I <00814d017fd18000817c829402817d8294077efe0A7a6d0Bc979cc68b922038036 80670B6d3b6531212c0A7b6d0781010A86930B3786359a47de038117822d0B91bf9fd3e0d4 0A86930F> DC 74 /J <0081bc017fb87ff381d3829402808e806d0B7864723e582c0B6e734f703c7d0B6e8b 799a7baa0B849c78b75bbd0B3690292970060480187feb80617fec809280040480d98029 80f78077810a80c003816b82350B90bea6cae4cc0A8593077ee20A796c0Bd87be572cf1b03 808e806d0F> DC 75 /K <00829b017fd2800082db82940281888294077ef10A7b6d0Bc97ad56ac22203803f 80670B6d3a5c30192c0A7a6d07811a0A86930B3a841e8b33d70380dd813e0B848e90919985 03818a80710Bae3fa82257210A7b6e0781230A85920B478327a207d003814881770381ed 81f7048220821e8252824a828b826b0B988eae95ca970A8792077f120A7a6d0Bdf7fb94c83 220380fb81670B76786c7d708a03811e82320B90bca5cfe5cf0A85930F> DC 76 /L <00822c017fbf800081f1829402806382810Bcc7cd56dc12203802c80670B6d3a602e 192c0A7b6d0781f50381f180bb096b04819f80378177802180e880210B2080147c30e203 810d822d0B91c1a0d4e4d40A8693077ef00A7c6d0F> DC 77 /M <008341017fcf800083708294027fd580130A7a6d0780d50A85920B688149813c9a0B 749883cc8ae60380df82200381248000098e03829d821f03822b80760B6c3763221a1a0A7b 700781080A85930B38862f9642de038306822d0B90bea5d4e5d40A8593077f4b03817180a1 03812f8294077f4e0A7a6d0Bc979d36abe2203803980670B6d3c5f301c2c0F> DC 78 /N <00829b017fc27ff282d582940281018294077f700A7a6d0B9381a981b6720B936b9c 59943e03803880670B6b35582d0f2c0A7c6d0780ef0A84930B27821b8c34e50380d5820203 81b27ff20999038266822d0B92c2a9d1ebd40A8593077f1e0A7b6d0Bd07bdd6dc71c0381ce 80aa03810182940F> DC 79 /O <0082d201801d7ff182b482a1028248828104820182ab81a082ab815482900480f9 827080aa8229807481dc048017815a7fe68073808c80120480d67fe7813c7fe9818b800504 81df802382238063825680ab0482b6813282f382188248828102820e827104828e821a822c 810481ed809f0481c7806381928029814c80150B597529750489048040806e80a3818580e3 81ec04810b822b81438267818d827d0481b6828981e98289820e82710F> DC 80 /P <008263017fd48000826882940281908294077eeb0A7b6d0Bca7ad96cc522038044 80670B6d395a31162c0A7b6d0781260A85930B5082148226c50380e081300B81848389888b 0480fc81418151813b8171813d0481ca8142822e8162825881b804827581f3826a823e8237 826a048209829281ca82948190829402812882400B8fb8a2baddb70481d6827482008239 81f581e90481e6817d818d815b812c81590B6c803b78459903812882400F> DC 81 /Q <0082d201801b7f4882b082a2028207826f04827d821b822a812181f480bd0481d0 8079819d803481518019048124800980ec800b80c5802b048058808380a2816b80d881cf04 80fd82138134825c817f82790481aa828981e0828a8207826f0280b57fc00B918eb0b3c9b6 0B8e819c7faa800Ba283c48ae497048245805783058179828d823a048253829781dc82b2 8176829b0480fc827f808a8210805181a4048000810a8008803180c97ffd03801c7f5e0A8d 6f04807e7f84809f7f8580ff7f670481bc7f2d81f97f3f827f7fd20A708d04822c7f9781fd 7f7a819a7f980481467fb2810e7fc380b57fc00F> DC 82 /R <008263017fcc8000823f82940281818294077ef40A7b6d0Bc879cd69ba22038033 80670B6d3a62311f2c0A7b6d0781080A86910B27822ea143ed0380d481470B9b7db67cd27d 03819b80000780940A85920B6c8258854b960B6f9562b859d103818a814e0481e38164823f 819f823f820504823f827581de82948181829402811482360B889e8fbab2be0Ba984df7ff7 590481e9820a81c6819e8181817a04815081618112815e80dc816603811482360F> DC 83 /S <0081f4017ff27ff081ef82a10281f0829e096c0B685840711e7a0480c082c9801f 8232808c81910480bd81498111811b813a80cd0481578098814a8055811d802d0480eb8000 809980058065802d048036805280258094802480ce096c037ff37ff40990048019802e805e 800080907ff704816e7fca820580948173813c048144817180f081ab80d581ec0480c38219 80cc825080f4826d048121828c8166828a818f82660481b7824381be820e81c281dc099003 81f0829e0F> DC 84 /T <00822c01802b80008266829402805481f404806882318090826580d3826e0B9984b8 87d1830B8e7d8d6e8a630380af807f048098802a80898016802f80130A7c6d07813b0A8593 0B18810f8e2af0038196825a0B889ea498bf97048233826c82368242823681f10993038267 8294077e0103803e81f60A967e0F> DC 85 /U <0082d201804c7fef830a82940281888294077ede0A7b6e0Bcb7be173cc2403805e 810104805080cc804480968059806104807a800d80d77ff181297ff00481db7fef821c804b 824580e703828f81fb0482a4824a82a98284830782820A8492077f1a0A7b6e0B997fc480cc 620B8b5d7d35751303821f810104820e80c381fe808081ce805204819e8024815780168117 8022048096803b80ac80b180c7811003810f821e0B94cca4e2f4e40A85920F> DC 86 /V <00826301803d7ff282c282940280e27ff2099503824c82210B9cb0b6dbf1e10A8692 077f370A7b6e0Be37ec0519c1303812a80880380ef82260B75c492ded6dd0A8491077ef80A 7c6e0Bc181cb5cd3230380e27ff20F> DC 87 /W <00834101803a7ff28398829402803b82830Bcb79ce6dd5220380c37ff209940381c8 81c90381ee7ff209990383198203048338824083508273839682830A8291077f400A7a6f0B d279d269aa1903823a80ab038220821a0B7ac885e4cfe90A8591077f030A7c6f0B967fb77f c4690B8e678c398e1c03810980a00380ee82260B7ac494ded6dd0A8491077ef60A7d6f 0F> DC 88 /X <008263017fa8800082b482940281748294077ee80A7b6f0Be079d861f60d038105 8146038028805b0B5d5b393a06340A7b710780f20A858f0B6a8141803b9d0B7a9c9bc1add4 0381138113038143806b0B9534842638260A7c6f07811d0A85910B2585249c0eef038169 816403822f822c04825382518277827f82ae82830A8691077f230A7a6e0B9480b785be6b0B 87656443533203815b819503813182270B6ac975dbbeda0A85930F> DC 89 /Y <00822c0180188000829282940281338294077eeb0A7b6e0Bd878dc57f8060380dc 811f0380a9805e0B6d3b593816330A7a6f07811c0A86910B3f831b7d30ca038142812703 8210821e0Ba2a9c5dcfde20A8694077f270A7b6d0Be07dd759a11803813381520380ec822e 0B6ac580cfc0d40A87920F> DC 90 /Z <00822c017fe38000823782940282378294077e5303805881f40995048097825780cb 82708134827009f8037fe4800d0A7f730781d00381ec80b5096b0481a880498171802580fc 8026077f71038237828b08890F> DC 91 /flat <008103017ff4804580a382450280138061048014808a800b80da802381010B8b 92a3a3b6940B9c6b934185260B6f5d5042352602800280460A90820Ba1a2c4c3e6e40B9595 abaeabce0B81a463c43ec00B617d4a67355203801e8245095703800280460F> DC 92 /natural <0081030180027f9680928215028003802e0Af7a7067f4209980681e70A095c06 80bc0968067e1802801b80730680a90Adf9e067f590A21600F> DC 93 /sharp <008103017ff27fa380a7820d0280127fa409970680990Ac7a2067f6a099706 80a00Aa18f08c80A5f700680860Aa18f08c70A5f710680900969067f640A39600680970969 067f5f0A617008390A9f8f067f7b0A617108380A9f90067f7102802980840680860Ac7a106 7f7b0A395e0F> DC 94 /slurbelow <0083e8018033806283b4815102803381510480a380ab812e806381fa806304 82c18063834780b183b58151095c04836b811f834180f3830980d30482b780a482558091 81f780910481948090812c80a580d580d80480a180f7807a812180558151095e0F> DC 95 /slurabove <0083e8018033808d83b4817b028033808d09a204807a80bd80a180e780d58107 04812c813a8194814e81f7814e048255814d82b7813b8309810c04834080ec836b80bf8391 808d09a4048346812f82c3817b81fa817b04812f817b80a381338033808d0F> DC 96 /lscript <0081f40180207ff781c182bc02807580fb04806d809d8077800780ee7ff904 81427fee8163803b8177807d0A63890B7257560a1d160480aa802c80d3810980d8813704 812b8170817581b281a6820b0481c2823f81d4828e819482b204815182d68111829e80ec 826a0480a8820b80888198807981270B6169435227380A946a0B9592aaa2c1b20280dd8161 0480ec81bf80fa822a813482780B959ebeb9de970481bb8264818c821a817381f404814b 81b98116818b80dd81610F> DC 97 /a <0081f40180147ff781c981c002813e81a30481a4817680e4800880878035048033 805d80c381d9813e81a302817b81b70A755b0B76a74ab126ad04809e81b0804181288022 80bc04800d807180057fe7807b7ff90480d1800681078060813280a3048127807f80f8800d 812c7ffb0481677fe681ad804081ca80690A708d0B4d3a1310388d0381c881b70933 0F> DC 98 /b <0081f40180197ff781dd82b00280b58164038107829d0B848e7f9670930480c782a6 80998298806882940A7c6f0Bc181c675b73703801d80470B7553a43ec9370481017fdc819c 804e81ce80dd04821681a9814e821c80b5816402809880ed0480df81f281df81aa816680a6 048140805880f78002809680120B56884f9f59c303809880ed0F> DC 99 /c <0081bc01801e7ff681a881c002818480660A7091048144804780f5800580ad802c04 807f80458075807e807880ad04807d80f7809d814080d281740B9e9ec4b4f0b40B887fa07e a1720B816f62656a440B8c52da60dc970481ac81d3811d81c580e881b00480948191804a 8143802c80ee04801380a880178044805880140480be7fc8813c8016818480660F> DC 100 /d <0081f40180107ff4820782b20281738073038206829e0B84907c966d930481c582a7 81998299816982960A7c6f0Bc281c272b33703817281a50B6aa12f9d0f930480988199803c 8123801e80be048007807180087ff680757ff70480d37ff8810d80578139809d04812c8076 8100801481337ffb0481737fda81bc803981db80650A718e0B706b4f3832380B5b7f70b675 c802814581a40481a3817980ee7ff58087802d048026806280d181d6814581a40F> DC 101 /e <0081bc01801b7ff781aa81c102807f80e0048091811b80ac815280da817d0B9997e2 c7fc970B94596d2050090480f780f680ba80e9807f80e002817a8072048148804380fa8010 80b1802a04806e804280748091807b80ca04823580fb81cd822680d381a104808581778042 812f802780da04801280958017803b8058800e04808c7fec80d87ff2810f80080Bb095d7b7 f9de0A728c0F> DC 102 /f <008116017f9c7f27819e82b20280da81af0A98f10B87a592d4b1ee0B8a889a90a687 0B947163399c2f0Bcb73c7cf8de80B588f2884066d0480ad826580988202808581af092a0A 796209d703802a7fdd0480227fb280197f8480047f5d0B7d7a68595d660B778a859c85a70B 7f97649f519a0B4e73641aaf240480247f3180457f72805b7fa704808380078098806f80ad 80d50380d4819109eb0A859e09160F> DC 103 /g <0081f4017ffb7f2681f681c40281f6817908ab0B5b80367a138a04815381c78114 81cb80db81b8048062818f801680f7809e80ac04806e807d8021804c807c802204803a8003 7fd77fc080057f6b0480407f0281477f1581847f8a04819b7fb781997ff081738012048148 803a8105804580cf80560B6c86479556b00B868c91979d9d048108809c815280a7818680dd 0481af810781c1814081b1817909c502809580190480cb8006810c7fff81397fda0B976d99 4b8f310B745d51492f410480b77f3c804b7f3c803b7f8f04802f7fd380627ffb8095801902 814a819f04817a8178815d811f814480f304812b80c580eb809b80be80c8048078810c80eb 81eb814a819f0F> DC 104 /h <0081f40180047ff481d582b202809580eb038111829e0B85907c966d930480ce82a6 80a18298807082960A7b6f0Bc381ca78b837038004800009d504807d808c80aa8105811b 81670B8b8ab4abc3950B906a7e3e7827038125806c048118803c81047fe681587ff6048196 800281ba804281d580750A728c0B736b502a322f0B65867dc181cd0381af81380481c18175 81cf81d3816c81b6048113819c80c78135809580eb0F> DC 105 /i <0081160180287ff6810a82910280f8806a0A708f0B706949352a370B61826eb174c2 0380e181a30B8288899f789d0B6b7d4a7432700B677d4e7935760A7c700Bb37eca79ba3e03 8038807c04802d805680127fff80517ff80480997fef80d1803880f8806a0280fa82820B52 ac09683a3b0Baf54f697c6c50F> DC 106 /j <008116017fa27f2a810d829102804981a90A7c6e0Bc77cc873ba2f038052805f04 8041800b80327fb580147f640B7b736d585b610B71867a9b7aa60B80956fa35aa20B457c5d 12b31e0480637f3a80877ffc809a80510380e381aa0B838a829774960B687e4f7637720B69 7c52793b770280fe82820B51ac09683a3b0Baf54f697c6c50F> DC 107 /k <0081bc0180027ff681da82b302809780ee03811282980B8592849e6e9b0480d282ac 80a7829d807682980A7b6f0Bb17fc883b746038002800009d403808b80b90Aaea50380e3 80590B88639441a72a0B8e71a971bb770Ba98cd5c2ede60A72900B5044301d11770380f9 81120Aead80Ba19cc7b7f3b70A8591077f460A7a710B907fb07fa7660B796c6458544c03 809780ee0F> DC 108 /l <0081160180297ff9812382b70280f1806a0A708e0B706c4632293e0B69897ab57ec5 03811f829b0B838c899e759c0B697d51773a740B657c4a782f750A7e6f0Baf7ecc79bd4003 803f8091048035806c800d8006804d7ffb04808c7fee80d0803c80f1806a0F> DC 109 /m <0082d20180037ff582b381be02803781a60A7c6f0Bcf7bbd5fa815038004800009d1 048084809180a9811c812c81790Bc7b2a5419d240380f6800009d204816a807d819680f4 81f081540Ba5a8ead4d277038205806e0B755a60109b0904825c7fee8298803c82b3806b0A 738e0B6d6a59433b3a0B67796f9972a6038290813804829c816582b481b9826c81bd048217 81c381c8814f819a81120481a7814681d581bd817781bd04812581be80ca813d809d810103 80d181a30B8590829e6e9a04808f81b4806a81aa803781a60F> DC 110 /n <0081f40180087ff481d581bd0280a080f80380d881a20B889b829f679704809381ac 806581a7803981a20A7c6f0Bcc7ec56daf25038009800009d3048082808b80ac8105811e 81670Bd5c9ca78ba3c038126806c048119803c81057fe681597ff60Bbd8be1ccfdfe0A708b 0B746b512c34310B65867ec181cd0381b181380481c0816e81d381c3817d81bb04812c81b5 80cf813680a080f80F> DC 111 /o <0081f40180177ff581dd81c10281b0819804814c81f680b181a78066814f048020 80fe7fe98061805180130480b97fc6814c80148192806a0481d280b88207814581b0819802 814781a60481dd818781467ff280ae8013048019803380ae81c5814781a60F> DC 112 /p <0081f4017f957f2781e081bd0280a580e20480e081cb81d281d3817080c8048153 80778111800080ab80090B50844aa155ca0380a580e20280487f7b038069800204809b7fe5 80de7fef81108003048180803381d680b181e0812a0481ed81db813581e880c381610480f1 81f180e681af803881a20A7b6e0Bba7fcb7dba3d037ff77f810B72475b3b23380A7b6f07 80f80A85910B4580268036c20F> DC 113 /q <0081f40180127f2881ef81be02815e81a00481d0816381017ff4808f802e04801f 806680dd81e2815e81a00281a281b40A735404815c82208027816d8013808004800c8021 80427fe280a17ffc0480ec800f81258051814c80910381057f8b0B6c3861341a300A7d6e07 80fb0A81920B2d812c9043e00381ef81b409330F> DC 114 /r <0081850180188000818581bc02812281770B8d38f25de1a30B79a350a43796048105 819280ca813080ab80f90380db81a50B848d859a749704809d81b2806c81a7803a81a00A7d 6e0Bd67cc55bb315038019800009cf048082805f809d80bb80d181100B97a4b0cbd1e7 0F> DC 115 /s <0081850180057ff5817181c002817281bd09740B795e3c782a7d04807d81da8021 816d808b80f00480b480c08122806180cf80210B5d64256803850B609e56c651f0097403 80067ffb098e0B88a1d082e07f04810e7fde817e805f810a80e40480ec8108807f816280b5 81960B9998c796e3850Ba869b43ebd14098c03817281bd0F> DC 116 /t <0081160180247ffb812b822d0280fc822d09690480bd81ef808981b4803d81a50A7c 6d09c503802c805c0B73517119b32004809b800280c9803880ea80660A71910B594c080429 7d0380cf819209d50A879e092c0Aa5fd0F> DC 117 /u <0081f40180207ff781d981c0028084809c0380cf81a30B859188a0709c0B6c7e5878 44750B657b4a7730740A7d700Bbf7cc475b02b03803580a804802880788001800180547ffb 0480c17ff18115808f814780dd0A611a048118804381057fe281617ffb0Bb58edec3f8f20A 728c0B49310f0c328e0381d081b7092f0481628136812a80bf80d0805e0B72723e3c295d0B 729485cb8be10F> DC 118 /v <0081bc0180137ff481b581bf0280937ff4038110807804814980b581ae812481b5 817a0B85c240de25b00B644eb646aa1c048174810780f7807f80c580520380b881080B8080 7f807f800480a081fb80b581bb801781a60A7d6e0B937daf7eba6a04806681548062811d 806b80ef03807f7ff409940F> DC 119 /w <00829b0180187ff5829581c202819381c2096f0380b380820A7df20480af810d80af 81b6809781c20B7983166b03680A7f700B947ea77db36a04805f81648061811c806280f803 806b7ff50992038152813a03817a7ff5099003821d80a604824980dc82b28154828f81a20B 6eaa2fa92c77048238814b82b8818b820380b60A3b2e03819381c20F> DC 120 /x <0081bc017fd47ff481bd81c002812181680A4e3c0380d181a50B7b96719f5a9a04 807f81b6805881a9802a81a30A7d6e0Bb789dc88ec4a0380b280d10A290a0B6f695c584064 0B658b43923b6b0B77589d49bc500Bad89c9afe3d20Ac6e00480c2808e80d2802e80e28010 0B89709967ac6504814c7ff18182803d81a0806b0A728f0B49301f1005820380f781000Abc d40B8f94a2b2bfa70B9877bc6dc98e0B8fa961bb40b30B58763d4b262c0F> DC 121 /y <0081bc017fc77f2981a481c302812580ac0A48280380d080e30480c9810880ad81ac 809381c204808e81c7802581ae801081ac0A7d6f0B977daf7bbe680480638164806d8123 807680fc0380ad7ffa0A3e280B6d67523d2d4a0B6b8854963e840B686c6e4c8a3f048032 7f0880967fa680ba7fd70480f080218190810781a181640B859a88ba74cf0B709350953c86 0B6d726f557f450B8c73a06ea45c04817e812c813c80d0812580ac0F> DC 122 /z <008185017fe27ff4819481bf028048804603818a81a20B8788939d7f9d0B6e815d60 2d640480af81af806681fb8034815a0A90770B98aaaeb5dfaa0480e2816d80ed8168812f 8171037ff2801a0B7b7b707171690B81798a7591770B9d8693a6df97048089800580e17fe8 81167ffa0Baf90bccdcaf70A6f8904811c7ffe80c88061804880460F> DC 123 /dotlessi <0081160180287ff680f781bf0280f8806a0A708f0B706949352a370B6182 6eb174c20380e181a30B8288899f789d0B6b7d4a7432700B677d4e7935760A7c700Bb37eca 79ba3e038038807c04802d805680127fff80517ff80480997fef80d1803880f8806a 0F> DC 124 /dotlessj <008116017fa27f2a80e481c002804981a90A7c6e0Bc77cc873ba2f038052805f 048041800b80327fb580147f640B7b736d585b610B71867a9b7aa60B80956fa35aa20B457c 5d12b31e0480637f3a80877ffc809a80510380e381aa0B838a829774960B687e4f7637720B 697c52793b770F> DC 125 /weierstrass <0083e80180bd7f6882e181db02811680760480ee804580bc800c80be 7fca0B814fa122d41f0Bbf7de9b2efec048188801881688066815780a704818d80e28215 8182826781770482bd816d828680df827280b4048258807c82368043820280200B68703163 2b8e0B7c9e99acacbc0B928f9caf81bb04818e80c9816f802781b380000482197fc8829f 806e82c380bd0482db80f282ef813482d8816c0B71a44fb829b904821f81a5819081048151 80bd04813d8101814d8148817f817c0B9291a5a2bab00B8d8a9b91a79c0B8585848e7e9204 81c481e781508177813f8162048106811a80f480cc8116807602811e806004812c80338142 800681467fd70B8455681835310B529752d264fb0B8ea3a8bfbfdd0F> DC 126 /vector <008341018000815d834182a102800081e30782d403820781910A964d038341 81da08cb03821d82a10A6a4d0382d4821c077d2c08470F> DC 127 /tie <008025018012821b817482b4028175821b04815f827b812d82b480c482b404 805b82b48028827b8013821b09b80B90c0b8d3f8d40Bc280e86ef92c09b90F> DC 160 /Gamma <00825b017fbf80008298829402827e81e70382988294077dde0A7b6c0Bd17fdf 6bca1c038043806f0B6930522702250A7a6c0781400A85940B3a831a8d30db038130822a0B 8fb89ec3dac309e8048249826d82648236826a81e709940F> DC 161 /Delta <008264017fb9800081f6829f0281f7800003819f82a00969037fb9800007823e 02800c802d03814781f8038182802d077e8a0F> DC 162 /Theta <0082e50180187ff282cc82a30282a2824904823782da814c82a880d1824904 807e8209804781ae802b814a04801380f7800d80968043804c048072800b80c57ff28113 7ff30481707ff381cb80138214804c048267808c829d80e682ba814a0482d2819d82d88200 82a2824902824f822304828081a1822e80d481d780720481a5803b81688016811d801604 80d9801680ac80318096807204806680f680b581c0810f8223048140825a817e827f81c9 827f04820f827f82378264824f822302815581740B477f368842c309670380c580e8099804 80f781308117812b815c812b0B9580dc87f1750B8f7388598548099803822381b709680B78 6b70545c480481c6816b81748174815581740F> DC 163 /Lambda <0082ae017fb28000825182a3028208808a0381c382a3096703802880770B64 574623101d0A7b6c0780be0A86940B27873ca768e703816981f704817281b881a4807e819e 80440B7f777c6e78660B706a4a6c326a0A7b6c0781090A85940B6e825b8650960B70976ac5 67e00F> DC 164 /Xi <008285017fdb800082aa829402827781df0382aa8294077dec03806481df09960B 95beaed6f0d60781380Bc57fcb6abf2a099602812081780B49802e8038bf096a03808680e1 09960480b9812c80e081258129812404813c81248194812a81aa81190B91738b5a88480996 03820381b7096a0B786b6f555a4b0481a1816e814181788120817802806580600B3d803398 3fd6096a037fdc800007821803822880b609690B6b43522a102a077ec40F> DC 165 /Pi <008300017fbc80008349829402834382800A8694077d2b0A7a6c0Bc77bde72c928 03803b806d0B6b34512c07270A7a6c07812f0A86940B3985218e36d903811e8216048139 8275816d827081c5826f0481e0826f823f82778257825d0B916d874e81390381e1806d0B6c 36502b06270A7b6c07812f0A86940B3784208c36d90382c982280B95cab1d3fad80F> DC 166 /Sigma <008250017fad80008277829402824581df0382778294077dfc0A7969038134 813f037fb6801c0A78640782140381f580b609680B6b46572a162a077eda03819381580A85 8f0380f2826f0780bc048210826f823e8241822d81df09980F> DC 167 /Upsilon1 <00826c018057800082db82d30280bd80610B71475f3422320A7b6d0780e5 0A85930B4781429750ca038152813a04817e8181822082848268829f0Ba38ea56f9d580B77 60924caf5b0482fb827882e282ef826d82c904823382b7820b828181e982520481ab81ff 817281aa813d815104813e81ba813e826d80e582b50480c682ce808682e6806582c30B5450 9d58c5390480ff823a80fc81a180fb813f0380bd80610F> DC 168 /Phi <0082fb01801b800082e1829402826a82800A8694077ed30A7b6c0Bca7bde77c928 048106821f807a81fb8037817f0480168142800d80f2804180bc048075808380c38077810d 80700B6b32512903240A7b6c07812d0A85940B3685228f38dc0481c58078821280868259 80b00482a480dd82df812882e181830482e381c382b581f7827c820e04824f822082208225 81f082280B95ccb0d4fad8028180820f03811480890B5685298c0fb004807980f380908143 80aa817f0480d081d8812482048180820f0281e9820f04823a8204827b81dd826f817f04 82658130824080dd81fc80b00481d5809781a9808e817c80890381e9820f0F> DC 169 /Psi <00831b01805580008376829902813e80ed0B5a832b8510a40480a4814380db81cc 80e981fe04810c828480dd82a5805d82950A79680Bd183be54ad170A6112048037810280a9 80d7813680d00A641d0B6c364f2b05270A7b6c07812f0A86940B3985228f37d90A9ce304 823a80d882be810882ea81a60A9fee0B92c29bece7e90A879804830082a582be8281829a 820a0482688166826f80fb81aa80ed03820282280B94c8b2d3fad80A8594077ed10A7a6c0B c77bdf73ca2803813e80ed0F> DC 170 /Omega <008300017fe4800082ee82a302820e805a09050A91bb04823680b282b88100 82e38198048317824f828282a381e082a304813282a3807b824a8048819804801e81068070 80b280f880950A6f4509050B3e7f329740d60969037fe5800007810f03812680b40480b6 80d180a0813080be81980480e3821b814a827e81d7827f0482638281828f8212826d819804 824c812381fd80cf818780b4038154800007810f03829480b0096a0B6b425229102a 0F> DC 171 /alpha <008254017ff77ff4822d81df0281918135048193817f818881d3812b81d704 80b681dc803e816c80118109047fe0809c7ff1800c807a7ff70480e77fe5812f80268169 80770B8358860db8020Bbb73ddb9ede50A6c8e0B6e6551412c540B5d945dc15ee40481b1 810281dc8161822d81a60A47b90481c581a881ac81788191813502817680f204815580a0 8118802380b78013048049800080488080805a80c904806f812280ac81a7811081bb04818a 81d48178813c817680f20F> DC 172 /beta <008204017fb47f1d81e682e602800b8087037fb47f1d09d9038047804b0B9559 b039dd2f0480e27fec81218002815280280481a2806681d280ce81bb81330B72bc3fd90aed 04818f81be81ca81e481e082370481f3827e81cc82d1818082e204812382f780d382b580a7 826804806981fd802a8108800b808702807d815004809381b480bf8287812582b90B9a8dbc 8dd2780B9f639b34930f04817981f2814b81a280f281b70B6a85438846670B8559bd6dd56d 048177818c816b8109815780c20481478085812f803f80f280220B63724170237d048057 803c80508088805d80c303807d81500F> DC 173 /gamma <0081ca017fe17f2181b581d60280a7804b0480ab809f80c181b4806181d204 801281eb7fef81657fe181300A9a7e0B8ea4abdfdac0048094814280898077808a802c04 80587ff480297fb4801c7f680B7c697c409a3b0480827f16809f7ff380a680220480ce804c 8216819b819881d30B4d953e523b2f04814b810e80f080a280a7804b0F> DC 174 /delta <0082100180007ff381c482e30281a582610B72ab60d23aec0B619534a0128d0B 596b4737560f0480dd8230811e81e8814481b10480b4820080148164800280d8047fe57ffc 80d67fa0817880530481cc80b181da813d81a481ae04817a82028122824c8108828c0480ed 82d3815282e981898261099c028075812d048095817680f381e08142818e04818781478157 80a28127805c048102802780ae7ff38075802c04803c8065805980ed8075812d0F> DC 175 /epsilon <0081b80180117ff7819981db02819281b30A879d04810981ee806381cf8028 813704800280d680088055806880180480a87fef81017ff2814a80010A88a00480b67fff 805c8046806f80e70780dd0A86a6077f240480a381aa80fe81c2819281b30F> DC 176 /zeta <0081cf01800b7f4e81ac82d30280dc8226048071824a805e82bc810082b60A82 960480ca82d4806c82e4805182a204803082558089822580c4821004805981a98005812b 800c80900480148007805e800480d180000Ba080c585e1720B9b6c8b42792d0480df7f46 80857fa9805c7f870B7174745f83540B9f69dc73fe7b04811c7f6581597f8e816d7fcf0B8b a787d962f1048107807080598028804780a10480308124808b81b280e482090481108205 81b881f581ac82430B7aa053a2399e048132825b8105824380dc82260F> DC 177 /eta <008207017ff77f1d81cc81d70280aa81160480b6814c80db81c0808c81d5048042 81e8801181897ff781530A97730B8995b9efd8d804807e818d80588112805280fe038008 800009d6048084807e80c5815d8143819d0481af81d2816c8127816381070380cf7f1d09da 0381af80fc0481bd813281ef81b4819f81d204813381fa80d6816580aa81160F> DC 178 /theta <0081ed01800c7ff481d782c002805581f2048018817c7fe0808d8045801e04 806c7ff480a77feb80dc8000048123801c815e8067818380a70481b7810081d5816781d8 81cf0481d9821581cf8270819682a104816b82c5813082c780ff82b10480b3828f807a8239 805581f202807e81540780e904815280fe8112801780a9800f0B537d3dae38d304805780b3 806b8106807e8154028171817b077f1704809b81c680da82a8813b82a60481b282a5817e 81bd8171817b0F> DC 179 /iota <0081180180007ff680d081cc0280c381cc092e0380128082048006805c7fea 800080297ff80480717fee80ac803c80d180700A718f0B6f69483128330B618270b575c503 80c381cc0F> DC 180 /kappa <0081fd017ff37ff481db81d902806d81cd037ff4800009d703808a80e70B8882 908398860380db804a0B914ea126e02b0Bb585ddabfed20A6e910B5a57282e0f7b0380ec 8121048114815081378185816981aa0B8854a933d84d0Bac9a9dd86ee104813081f180fe 8126809181050380c581cd09280F> DC 181 /lambda <0081c8017fbb7ff4819782e30280e281ce037fbb800009dd0380eb814803 80e980890480e8805480f37fe481437ff70481778002818b804a819780780A6b890B736765 4846460B477b45c846ed03811682140481188243813182ec80cf82e304809182dd80738289 805f82580A9d750B90a2bbd7e4b4048105826180fb81f580e281ce0F> DC 182 /mu <00823b017fb27f2181f381cc0280cc81cc092803800d805f047ff880137fe07fc9 7fc27f7f0B756761308a240Bb073b2b5b3d20480007fb8800b7ff9801e80370B8e4ea834df 410480d9800c810e8066813a80b1048130807c810f801681527ffa04819e7fd981d7803d 81f480730A67880B746a4818262f048167803c81848095818c80b00381da81cc092a04816c 81748154811b812980c9048111809b80d38034809c80270480428012808180c3808b80e803 80cc81cc0F> DC 183 /nu <0081c8017fef7ff781ab81d50280b681330480b7816a80c381c9807881d404802b 81df8001817d7fef81430A9d7e0B8896a6e4c7dc0B9b798c188b030380457ff809a503811b 80a804814f80dc81b1815581ab81a40B7da64fc22fa5048124819881928157810180bd0A23 1d0380b681330F> DC 184 /xi <0081e1017ffd7f4e81be82dc02811d82bb0A84980480eb82de80a382e8807d82b4 0B726d785483400B9164af55cb470480718202803a81a6809381500B526728490c1b048002 80bd7fef8075800780410480367fdc80e3800f81197ffc0Bb66c9e23680b0480b07f628071 7fa9804d7f820B76757b63865b0B9d6cc971e9750480fe7f5c81437f7d815e7fbd0B90a894 db74fc04811a807180838038804c806d0B669a6bc777e60B95b4c0d3f0ec0481ba80d281e2 81b580c5816404806481a1809c820580f1822d048119821f81b881f781be823e0B83a44fac 36ae048144826f8115825c80e9824d0B1fac3efcb4ee0F> DC 185 /pi <008263017ff27ff4824781e802801380910A6d7f047ff580627fde7ff0802f7ff5 0Baf83d0b4e2db0480b880a480d7812380ee8181038172817f03813c80a304813080728115 801f814e7ffe0B9f6ecd79ea8a0Bab9ac3ccd9f80A698b0B6d62400a141a0B5b8e77d67dee 0381c6817e048218817f822e8191824881e00A68880B796f70655d600B657a467d2a7e03 80db81c904806c81cb804181bf8022814d099f048054818c8097818180cd81810480bb8136 80938084805a80550B71745a6e4a7a0B6b8e6eac6fc20F> DC 186 /rho <008219017f9b7f1d81d981d8028094813b0B8daca1dcccf20Ba091cc93ec8404 8199818b8185811d817580db04814e803480e27fcb80498046038094813b027ff47f1d03 803b801604807b7ff980c67fe6810c7ffa04818d801c81e680ae81d881310481ca81b08163 81e480ed81d604805d81c680458158802280e3037f9c7f1d09d80F> DC 187 /sigma <00820e017ff97ff6821981f0028085814b0B98adb6d4e6e80Ba690cf80e76004 8186814d815580ac812c80670480b77fa67ffd804b8085814b02818481990481d1818e821b 8184821a81eb0A6c850B7b71716761620481c181c8815e81d6813481d70480ea81db80a1 81c98069819704801f81567fed80ee7ffd808a0480187fe380e17fd28152803204818b8063 81b780aa81be80f60481c3813981ad8168818481990F> DC 188 /tau <0081a7017ff67ff6818f81e802817e81e90B776d6861535e04811d81c080df81c7 80ab81ca04804081d1800981c67ff7814f0A967e04802481928057818480958181038060 80bd04804f8081802d801180827ffa0480d97fe2810d8041812e80810A6b8c0B6d6148141c 1a048080802d80aa809980b080b20380e9818004814c817c81718179819081de0A6e8b 0F> DC 189 /upsilon <008206017ff17ff581c281d702800881460B8e9f9cbfb7d40B8d8aa795b080 04808c8156801e80ad803d804d0B8d55b333e02b0480e87feb812980148157804c04818f 809081b380e981bf81400481c4816781ca81b181a781cd0B689245883b6b048154818e8180 814b8184811c04818f809b80f57fd9809d802504804d806a80fa814080bb81b20B6ba737af 119a0B5366373225020A97780F> DC 190 /phi <00825d017ff37f238229829d0280f17ff30Baa87d18ef7a10481b5803a81f88077 821780c70482368115822c816e81e881a50481c281c4819381ce816481d5038194829d0959 03813481d70480f981d380c381c8808f81aa04804781818006813b7ff880e7047fde805f 802a800d80a77ff503806a7f2409d40380f17ff302812981b20380af8012048033802e803d 80a58066810704808c816180c781a2812981b20280f9801503815c81b20481cd819881dd 813a81b780d6048194807a8155803580f980150F> DC 191 /chi <0081db017fab7f1c81c181d70280a380ab037fac7f2a09df0380b480340480ba 7ff680c47f32810a7f1f0481597f0981787f9281847fc60A67880B745a601c2b280480da 7f8380d3802280cf80550381c181cc09230380c180d00480bc810a80b881bf807e81d40B65 8a487c356804800f8197800381617ff681310A98780B8ba3a8e9d9d80480988170809f80d7 80a380ab0F> DC /FontBBox {-107 -236 948 763} def end /Dutch801-Italic-DECmath_Italic bsd definefont pop %%EndFont %%BeginFont: Dutch801-Roman-DECmath_Symbol % Bitstream Fontware PSO Font -- Version 1.6 % DECmath Font Version 1.0, created 4-13-89 % % Copyright 1989 by Bitstream, Inc. All Rights Reserved. % Copyright 1989 Digital Equipment Corporation % % This product is the sole property of Bitstream Inc. and % contains its proprietary and confidential information % U.S Government Restricted Rights % This software product is provided with RESTRICTED RIGHTS. Use, % duplication or disclosure by the Government is subject to % restrictions as set forth in FAR 52.227-19(c)(2) (June, 1987) % when applicable or the applicable provisions of DOD FAR supplement % 252.227-7013 subdivision (b)(3)(ii) (May,1981) or subdivision % (c)(1)(ii) (May, 1987). Contractor/manufacturer is Bitstream Inc. % /215 First Street/Cambridge, MA 02142. % % This software is furnished under a license and may be used and copied % only in accordance with the terms of such license and with the % inclusion of the above copyright notices. This software or any other % copies thereof may not be provided or otherwise made available to any % other person. No title to and ownership of the software is hereby % transfered. % % The information in this software is subject to change without notice % and should not be construed as a commitment by Digital Equipment % Corporation. % % BITSTREAM, INC. AND DIGITAL EQUIPMENT CORPORATION DISCLAIM ALL % WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED % WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL % BITSTREAM, INC. AND DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY % SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER % RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF % CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN % CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. % /n_chars 128 def /DC { /bits exch def /name exch def /num exch def num 256 lt {Encoding num name put} if CharStrings name bits put } bind def /bsd 15 dict def bsd begin /FontType 3 def /FontName /Dutch801-Roman-DECmath_Symbol def /PaintType 0 def /UniqueID 440175 def /FontMatrix [.001 0 0 .001 0 0] def /FontInfo 12 dict def /CharStrings 1 n_chars add dict def CharStrings /.notdef <0F> put /Encoding 256 array def 0 1 255 {Encoding exch /.notdef put} for /temp 15 dict def temp begin /get-word { 0 s i get add 8 bitshift /i i 1 add def s i get add 32768 sub /i i 1 add def } bind def /get-byte { s i get 128 sub /i i 1 add def } bind def /get-name { /len s i get def /i i 1 add def s i len getinterval /i i len add def } bind def /eval-arr 16 array def eval-arr 16#00 {get-word 0} bind put eval-arr 16#01 {4 {get-word} repeat setcachedevice newpath} bind put eval-arr 16#02 {closepath 2 {get-word} repeat moveto} bind put eval-arr 16#03 {2 {get-word} repeat lineto} bind put eval-arr 16#04 {6 {get-word} repeat curveto} bind put eval-arr 16#05 {4 {get-word} repeat get-name do-char} bind put eval-arr 16#06 {0 get-word rlineto} bind put eval-arr 16#07 {get-word 0 rlineto} bind put eval-arr 16#08 {0 get-byte rlineto} bind put eval-arr 16#09 {get-byte 0 rlineto} bind put eval-arr 16#0A {2 {get-byte} repeat rlineto} bind put eval-arr 16#0B {6 {get-byte} repeat rcurveto} bind put eval-arr 16#0F {end PaintType 2 eq {temp begin stroke exit} {temp begin fill exit} ifelse } bind put /do-char-arr 16 array def do-char-arr 16#00 {get-word pop} bind put do-char-arr 16#01 {4 {get-word pop} repeat} bind put do-char-arr 16#02 {closepath 2 {get-word} repeat moveto} bind put do-char-arr 16#03 {2 {get-word} repeat lineto} bind put do-char-arr 16#04 {6 {get-word} repeat curveto} bind put do-char-arr 16#05 {4 {get-word} repeat get-name do-char} bind put do-char-arr 16#06 {0 get-word rlineto} bind put do-char-arr 16#07 {get-word 0 rlineto} bind put do-char-arr 16#08 {0 get-byte rlineto} bind put do-char-arr 16#09 {get-byte 0 rlineto} bind put do-char-arr 16#0A {2 {get-byte} repeat rlineto} bind put do-char-arr 16#0B {6 {get-byte} repeat rcurveto} bind put do-char-arr 16#0F {closepath exit} bind put /eval { /s exch def /i 0 def { /t s i get def /i i 1 add def eval-arr t get exec } loop } bind def /do-char { t s i matrix currentmatrix 2 {6 index} repeat translate 2 {8 index 256 div} repeat scale end CharStrings 5 index get temp begin /s exch def /i 0 def { /t s i get def /i i 1 add def do-char-arr t get exec } loop setmatrix [/i /s /t] {exch def} forall 5 {pop} repeat } bind def end /BuildChar { exch begin 0.2 setflat Encoding exch get CharStrings exch 2 copy known not { pop /space } if get temp begin eval end end } bind def FontInfo /version (Fontware-PSO 1.6) put FontInfo /OutlineResolution 1000 put FontInfo /Copyright (Copyright 1989 by Bitstream,Inc. and Digital Equipment Corp. All Rights Reserved.) put FontInfo /Notice (Dutch 801 is a registered trademark of Bitstream, Inc.) put FontInfo /Date (1989/4/13 12:16:50) put FontInfo /FullName (Dutch 801 Roman DECmath_Symbol (TM)) put FontInfo /FamilyName (Dutch 801) put FontInfo /Weight (Medium) put FontInfo /ItalicAngle 0.00 put FontInfo /isFixedPitch false put FontInfo /UnderlinePosition -100 put FontInfo /UnderlineThickness 60 put 32 /arrowleft <0083e801803e808c83a981d00283a9811308b8077d03038179819e0A6ab3 03803f81550834038163808d0A96b30380ac81130782fd0F> DC 33 /arrowright <0083e801803e808c83a981d002803f81130782fd03826f80c00A964d03 83a9810908cc03828581d10A6a4d03833c814b077d0308480F> DC 34 /arrowup <0081f40180577f53819b82bc0281167f540682fb03816881830Ab39503811f 82bd093403805781980Ab36b0380dd824f067d0509b90F> DC 35 /arrowdown <0081f40180577f53819b82bc02805880770380d47f5409cb03819b80770A 4d960381167fc10682fc0947067d0403808a808d0A4e6a0F> DC 36 /arrowboth <0083e801803e808d83a881d10283418149077d66038179819e0A6ab303 803f81550834038163808d0A96b30380a7811607829a03826f80c00A954d0383a9810908cc 03828481d10A6b4d03834181490F> DC 37 /arrownortheast <0083e80180377f4b83b082c40280377f740Aa85803835d8248038306817d0Ab4 6b0383b1828f0A4bb5038255824d0A954d03833582700380377f740F> DC 38 /arrowsoutheast <0083e80180377f4b83b082c3028037829c0383357fa003826a7ff60A6b4d03 837c7f4c0Ab5b503833a80a70A4c6b03835d7fc803805f82c40A58580F> DC 39 /similarequal <0083e80180aa80bf833d81c00280aa813204811a817f8160819581e5816904 827f813682b08126833e818208bf0482aa815a828b816e81e781a104816b81ca811681b4 80aa817108410280aa80bf07829408b7077d6c08490F> DC 40 /arrowdblleft <0083e8018027803183c081dc02812881710Aeabe0A65ae038028811808 5f03817780320A9bae0A16bd07829808b3077d100A20b70Ae0b80782f008b2077d68 0F> DC 41 /arrowdblright <0083e8018027803183c081dc0282c08171077d68084e0782f00Ae048 0A2049077d10084d0782980A16430A9b520383c080f708a103827181dd0A65520Aea42 0F> DC 42 /arrowdblup <0081f40180237f3b81cf82d302809081d3067d6909b20682ef0Ab8e00Ab7 20067d1109b30682970Abd160Aae9c03810a82d3095f03802481850Aae640Abeea0F> DC 43 /arrowdbldown <0081f40180237f3b81cf82d3028090803b0A42ea0A52650380e97f3c09 a10381cf808a0A529b0A4316068298094d067d110A49200A48e00682ef094e067d68 0F> DC 44 /arrowdblboth <0083e8018027805983c0820402812880c50781970A17430A9b510383c0 811e08a203827182050A65510Ae943077e690Aeabd0A65af0380288140085e03817780590A 9baf0A16bd0280d080f80A20b70Ae0b70782480Ae0490A2049077db80F> DC 45 /arrownorthwest <0083e80180377f4b83b082c40283b17f740380b3827003817e821a0A95b303 806c82c40A4b4b0380ae81680Ab49503808b82480383897f4c0Aa8a80F> DC 46 /arrowsouthwest <0083e80180377f4b83b082c30283b1829c0A58a803808b7fc80380e280920A4c 950380377f810Ab54b0381937fc30A6bb30380b37fa00383b1829c0F> DC 47 /proportional <0083e80180f1807082f681e302820781470481ea810b81c680af8179 80ac0B3b7d11bb11fb0B80c4affcf5fd0481be81a481e9817a8207814702822a80ee048257 8094828b805582f6808008a9048291809c826880ba823b8113048251814182678171828c 81940B9e9dc49eea9708a40482858202824b81cc821881690481f881a881cc81e7817d81e3 04811e81df80f1817f80f2812a0480f280d381298074818980710481d9806e820780b0822a 80ee0F> DC 48 /prime <00811601802c80aa80e9826902804780aa0380db81f70B91a79be267f10B448f 2b56242703802c80aa099b0F> DC 49 /infinity <00834101806b806b82d681ea0281a680ec0481cc80ae81f7806a8249806e04 82ab807282d680d682d6812c0482d58184829f81e7823e81eb0481eb81ee81be81a8819b 816804817781a7814b81ec80f981e904809781e4806c8181806c812a04806c80d380a3806f 8104806c0481558068818380ae81a680ec0281838145048167810c814580b880fc80b40B3f 7c15b715f30B80c1aff4f0f404813e819b81658175818381450281bf81110481db814a81fd 819d824681a20Bc184eb48eb0d0482b080b28215808181bf81110F> DC 50 /element <0083e80180aa8000833d826c02833e800008ba077e9b04813d803980f2808d 80e4812507825a08b3077da60480f781ea8144823281d9823307816508b9077e9b04811b 826c80aa81f480aa81360480aa8079811b800081d980000781650F> DC 51 /suchthat <0083e80180aa8000833d826c0280aa80000781650482cd8000833d8079833e 813604833d81f482cd826c820f826c077e9b08470781650482a5823282f081ea8304815807 7da6084d07825a0482f6808d82ab8039820f803a077e9b08460F> DC 52 /trianglelgup <0083e80180757fde837282e30280757fde0782fe0381f482e40380757fde02 80ba80080381f4828403832d8008077d8d0F> DC 53 /trianglelgdown <0083e80180757f2b8372823002807582310381f47f2c0383738231077d0202 80ba82060782730381f47f8b0380ba82060F> DC 54 /slashnegate <0080000180007f4b81a282c30280347f4c0381a382b10A4c930380007f5f0Ab4 6d0F> DC 55 /mapsto <008000018024808180b981dc02806181dc0944067ea509bc06809209d808b809 280680910F> DC 56 /universal <00827d017ffd8000828082ce027ffe82cf038108800009ec03828082cf09 160381ca81f7077ee503806282cf091c0280cd81a40780e003813e80670380cd81a4 0F> DC 57 /existential <00827f0180298000823282ce02823380000682cf077dff082707819f06 7f29077e80082c078180067f0f077e58082607820a0F> DC 58 /logicalnot <00834101807b80af82c581a402807c816b07820f067f4509ba0680f507 7db708460F> DC 59 /emptyset <0081f401801c7fae81d782fe02816782ff0A663204812482c380f682c580ca 82ba04806c82a1803c8244802a81eb048013817c801780f1803b80860B8d59a439bd190A59 1009aa0A9edb0480c67fed81027fef81347ffc048191801481ba807b81ca80d10481df8140 81e181d081b6823a0B70a659c43ce00Aa2e509530280a9803403815d8267048174822f8178 81f6817881b90481798155817d80ee816c808b0B7850671431060B52742b7f0ca3028141 828e038092806204807580e8807081ac808c82310B8ab1a0e6d6f30Ba489c482df6a 0F> DC 60 /Rfraktur <00831a01801d7ff582ee82f50282bc81ea0B8781a484ab8b0B8586828f7a90 0B70835e804f880B658e6bb46dcc0482af833281a48322817a825604814f8311807a8330 802c8284047fd281bb812b819b804281210A8b6b0480ac813b80f8818780a781ee048087 8216805882398052827004804c82b6809f82e880dd82cf04811882b78128826f8131823704 813d81e98140819a8142814c04814580e38155802380c5800f0B6b7d477e3a930B709a8bb3 94ca0B8ea36fcb49c70B487a4433570b0B9851cb39fd380480f17ff4812b80178152804a04 819480a2819e813c819a81a60Ad8950B9a68a74bac280482298117822180c98228807d04 822c804f8238800d82687ff80B9776a894b4a20Ad2d90A70900B6e6e554b37540B618b63bd 63d604827680f48287819f824c81d10Af09902828f81f703819881bf048191820381878251 81a882900B95a8bdcbedc504825b82cc82438275824a82470B865ea33ac5300F> DC 61 /Ifraktur <0082bb0180347ff4829382f502810081a60480ad81a2806a81e2806e823604 8071828480b882d6810b82b0048160828a818b821581f1821104824d820d8289825a8271 82b1096b0B87527c113f160481db824c818f82d3813582ee04803683387ff881858100818f 089702804980020B82a684d69df60B8e91a49dba960B9b79a85fb6490480fa802181268000 81677ff80481bb7fec82138004824980480482bb80d681ff814881f5819d0481ed81eb8280 81ed827d8152099504829881e48218821481d381c80481ae81a081b3815f81cd81320481ed 80fc822580cd8233808d048243804781f4801181b6800d048169800881488051811f808504 80c680f5802a80bc8035800209940F> DC 62 /latticetop <00830a018039800082d082ce02803a82cf084607812e067d6b09ba06829507 812e08ba077d6a0F> DC 63 /latticebot <00830a018039800082d082ce02803a800007829608ba077ed2068295094606 7d6b077ed208460F> DC 64 /aleph <00825a0180217ff1823782a1028022801c0A826804807c7ff580e0801280b7 80800480a680af807880d68082810c0B87a7a7c2c3db04810f8120815b80dc81a180900B9e 60bc3dca120B8572835b90510B857c8e8391870B94969abc9ada04822680b481a7811e8166 815e0381e381e60Bab619a3fae450B9588a4b0a6c40B85a96cc74ee00B6a914ca243be0B7e 877c9373920B6581594a58360B7e539d3ebc22038152817004811481a880d481e2809f8223 0B6c995ab450d30B7c8d7ea272ab0B6b905944573c04802981ff807681b880b1817a048059 812c802680f48045807a0B8c519e2c5d220F> DC 65 /Acursive <008276017f647f96820582ec02818e82c404817d824d811e819f80de813d0B57662e 4f023a0B9b7db57acf7904808980b980047feb7fb98006047f76801d7fd580a37fea80bd0A 6c7e047fa780887f3b7ffb7f717fad0B975ec369e07c0480277fe08095809780cb80ee04 80fa80eb812980e9815880ee04815080b181488073814580350B7f6a804c95400481887fd7 81f2806d820680860A7b940B746f4f31344d0481a2807b81ad80e081af81010B9f88b99ad2 ac0B667c4d7a33790481bc81c581d1825481fd82ed0B5b71376311570280f2812f048127 818a815881e88181824904817381e881688187815f81250B5b7e3783138a0F> DC 66 /Bcursive <008265017fe27fd6826482e9028066826c0A7f6d0Bbda9e1b7cd5d0480a281ec808c 81a28073815a04804e80ee801880887ff0801e0B786a6c50783a0Ba19ac3b4e5cf048072 8083809880de80bf813a048107813181718121818280cb0481908088816c803f8143800b04 80e2801380c4806f80d580c30A74770480a2806380a47fea81177fd604816f800f81de8070 81da80e60B7ebc58e823fe0481d181a7824481fc825f82690B88a48bd572f30B6e974e8c39 8004819e82a0812181ff80de81980480f481d3814c82b1813282d90B798a6b8662820480d8 82bc809c82958066826c0280c9814a0480f881a1812381e38169822c0B8c8cd2dbefcc0B95 778e548b430481d581eb81a481a38168816d0B73856589578b0A0a520F> DC 67 /Ccursive <008222017fee7fe4824c82da02819380db04817880a581518075812680490B6a6a3c 6c206f0B50852ea01ccc04803880ec8071816380a881bb0480d6820681328282819482900B a585ca70d34a0481f3822a81d081fa81b181d904818081a48141817f80fb816d0A8a6404 81578172819b81a481da81e1048209820f825a8261824b82ad0B7b9866a84eac0B67844c7d 347504814582a180d48233807d81c504803281667fe080e07ff080600B8648a716df0804 80eb7fc28179807781c680e40A4d770F> DC 68 /Dcursive <0082d2017fce7fcd82bf82db02802b817504804281ab807a8238809e82580480d4 8289814f82958194828e0B5e623a47152d0480eb81a480a28110806a80760B6c8547963385 04800480647fd47ffd7fcf7fd80B7c54fdc3fec40480a5800b81017fdd815c7ff60481d5 8016826080a08296810c0482d1817f82d28219827b827f0481f1832180f982d48073825704 8021820c801a81e9802b817502808f806d0480ea8121814281da81a582890482a0823b828d 810d81f6806e0481a4801880ed8053808f806d0F> DC 69 /Ecursive <008217017fef7fe5821982d602817780d50B725a5e3747150480fc8043805c802e 8057809e04805280f080ab813b80f381510Ba089be85de800B9e97bcacdbc10481688191 80f381ad80f182020B7faba7e9d0fa048191829e81ff8252818d82010A90780481c58215 82218259821982940B7ab432cb06c004815882c480b48233809781f304807781a980a58180 80e6816604809281458040810f800d80c3047fe580847fe2802e80247fff04804c7fe38083 7fdf80b17fef04811e80138175807681a780db0A507a0F> DC 70 /Fcursive <00822e0180237fe0825c82db028061820609ac0B85a890f2bffd04811f82958176 825c81c882530B686c505f325504816981e9815881ab8145816d048117817180ea817b80bd 81860B616a41561f430480a3813c80ea81348132813104811880de80fd808b80d4803e0B5c 7835852aac0B76a38ac69ce30A6f7904805f809c802b805e802480210B7b56973fc04004 80a07fe280f08023811980490481498077816780f0817c812b0Ba095c1a9e2bd0B677f4f7f 36810481ad81b981cc820681f182510Ba492c8a5ecb704820e8297814e82e4811782db0B55 7828460f270B625a4d303b040F> DC 71 /Gcursive <008253017ff57f28823a82dd0281a981c60481db81ef823d825b823a829c048237 82e081eb82e481ba82d304814e82ad80d4823f808e81e8048043818c7ff681047ff5808804 7ff5803580197fe680747fdc04805d7fa180587f6180767f290480b67f4380ea7f6f8119 7fa20481597fe8817b8034819b808d0481c7810881c38109820e816a0481d2816c81968172 815b817b0A264504812c813f8155813c8180813704815a80e28123807d80df803e0B4b6c18 8703bc048025811480c48223814682740481d282cd82178243818e81c6099b0280857fdb04 80e7800081258061815b80b60A847d0B76696a535f3d0B726269435e240481047fd580e5 7f8e80ab7f670B5d9d51c75af40F> DC 72 /Hcursive <0082d2017f2b7fc582d382d1027f2c800e0Aee38047fe37fe8806d801b809a806404 80c680ab80ce80ea80e98132048133812b817f812681ca81290481a880de816d80488181 7ff904819c7f8b822f8049824780690A79960B7874452a324d0481da807e820b80f7821e 81260Aedbb0B627e447d257e0B899795ad9fc5048279820782a0826c82d482cb0B57712c66 025b048227823d820181d081dd8163048193816a8149817080ff817504811581ab818282a3 816582c90B729159824a7a0480f982a680c28287808f8264086e0B9187c4a6d2940480f3 824f80bc81b180ae818c0A16390Acf7704806b80d9804c80698001801a0B7371646b4f6a04 7f9980037f6280087f2c800e0F> DC 73 /Icursive <0081af017fd47fa481cc82d1028068820f0B9187a08fb0980B8a9e95bba7d40Bab8d ca8df68a0480c281e380b8809680367ff30480018018801a8090803380bf0A4d5a047fe5 80587fb37fe47ff07fa50480607fc680c4805b80ef80c004810d8108812481538139819e04 814d81e5815f822e817f82710B92a6afc2cedd04819482ce813682df810582c50B576b324b 14280B69655c434f220F> DC 74 /Jcursive <0081db017fcb7f29820582cf02820682c504819582bf816082f480ff82a40480aa 825e805a81ea805181790B7d558d2fb71f0Ba8a3cdc8eff00B5f6b378130a604809981f9 80c6824680f2827e04811c828881478287817282810480fe819f80c87fff802e7f6a047ff1 7f99802b8044805080770A6276047ffc80247fbe7fbf7fcd7f5e0B836d8d589e4e0B8e78a6 89b28f0480687f6180ae7f9d80d97fe6048117804f814180ea8165815f04818181b881a4 824181d682900B8d949fa5b0b50F> DC 75 /Kcursive <0082a4017fda7fc482b182d802807c807a04809a80ba80b480fa80cb813d0B94749d 5ea6490480ca80d780a380a9807c807a027fdb7fc40Ba599cbb3f1ca04807d806180bb80aa 80fc80f004811080bd81577fdf81817fd50481a77fca81ff803d821680600A7b950B716c53 40344e0481958058815581088143813f0481bb81908275821a82a782a50B868f93a97fb20B 75862e3f24360481e7822d818f81c3813881590B5d74396c14690480f381ac81278232813e 829d0B838e859e7eac0B788c6c8b60850480dc82ae80a28283806982580A866d0B938ecdb5 cb820480b9820c808581848074815104804680ca801880447fdb7fc40F> DC 76 /Lcursive <00825a017f8a7fab825682dd0281a081d20481d981fa8255825f825782ac0B81b63d b517ac0481aa82c8816a82a181328279048100825680de822e80c481f704808d81848070 81068040809004800180787fc7804e7fa380150B79755f536a450B8a73a783b187047ff7 7ffb801f80238049804e048093802480d57fbd81237fac0481877fda81d8802e8211808c0A 4b760481c6804e81a8801f81797ffe04810e801480db8084808480950480dc811c80e1815a 811e81ed0481358224814b825f8175828a0481e282b482298251818e81da0A92780F> DC 77 /Mcursive <008380017f357f7b833082dc0280bb82760B948bdbb3e88b048145821b80328057 7feb80150B6d6d535a365c0B6f82648c619b047f7a80427fa7807a7fc380a20A6c7d047f7b 80657f34800e7f367fbc0B815e9640ba3f047fab7f7b7fda7fb97ff97fe3048069807a80e8 816d812d822004812b819d8126811b81218098048121808281137ffe812e7ff40B9777b2a1 bbae0481b3808081f180e98231814e0482548186827781c0829981f90482798174826280ed 824d8066048248804782347ffd824d7fe00B8a739a72a87a0482ac7ff782e3803b830b806a 0A79930B74714b38345104829d806e82f6820382ff822e048308825983138284832282ad0B 858c919f8dac0B7e847b8477820482fd82c282d282ac82a782960482a382158236817d81f4 81160481e580ff81ac809f819580880B7b7c747b718104817c809881968271819082ac0B7e 9279a865ac04814b82e280de829b80be82890A7d6d0F> DC 78 /Ncursive <0082d2017f797f7782c482d902806082540A846a048081825980cb829180f082650B 926c904e8b360480e981b780968115806980bc048050808b801a801e7fe380030B777c6677 5e810B74927eae84bf0B8eaaabcbc9ea0A6277047fc2806d7f9280337f807fec0B79636e17 9a0d0Bae74eedefef604807c808380e981708117821e048155815e817e809181967fc90A88 810481e6803c822780b3825d812e048281818082dc825e82c082b904829c832482058260 81f382470A8a6f0B9197a4afc1b80B9f88b873c0570482a081d1821780cf81df80670481c5 811e818d8243813382da0480e382bd80a1828b806082540F> DC 79 /Ocursive <00829f017ffc7fe082a482da02813b829b0480aa8240802381a6800380fa047ff6 80ad7ff48050802f801504805c7fe980a37fd780e07fe50481c2801882d4814f829d824304 828182bf820b82fc819782c904816b827b8127823a80f181f20A99810B9aa5b6cadde304 8191827281cf827d81f9825b04828681ec820780c0819b8066048135801080868033806e 80c204804f817680c1822e814b82980A70830F> DC 80 /Pcursive <008251017fee7fb9825482d40280b280f70480e08168812e821d819682600Ba297c7 96cf670481fa81d381968103811580ed0B5e7b3d7f1d8a02806a82410B8d8bcbb3d49104 80cc821c80788151806581200B6b71566340560B8c749969a85e04803880a57fe37ff27ff0 7fc80B866f9c70aa740480537fce80937ffd80c4801c0A819604802a7fc580838077809e 80bf04818480a9827f81b0825082910482258360812c8213810d81e10A7b830481188214 814d829c813f82ca0B7d87758b6e8a04811582cf80838269806c825a0A7e670F> DC 81 /Qcursive <0082a4017fd37fa7828782d502821b80450481b67fc281467ff380be802a048128 805e8191809581e880e704823d8139828381a38287821c04828d82cb820582f9817682b504 80f08274806181ed803e8156048031811e803080d8805b80ab0480b5804d815080d28186 811b096404814180e080d680b980b1810e048081818180da8259815982830481d482ab821c 824e821181d70482028121814d806a80a0803a0B5b8d379d11a60A22210Ba96bc568f07404 809a7fd081177f91817b7fae0481c07fc3820e800b823a80440A61810F> DC 82 /Rcursive <008296017ff77fc9827882db02807482440B918cb3a9c8950B8e728c5b8a490480b5 81b2806880f6803f808904803680727ff57fdc7ff87fcc0B817e847d867e0B8482f2ddfee6 048095808780b380dd80d581320480f480fb811280c3812d808b048138807481717fed818d 7fdc0B8c79977ba2820481d27ff6820f8042822a80610A79970B6e6b514230520481a7805e 815481168142813e0481c881698229819d82608224048271824c828f82b3825f82d404820e 830a813481e7811081b40A7e840481878338815f82f28072825b0A82690280dd813a04810f 81968166821a81b9825b0B9590bba8c681048210821681c981ac8199817d0B5e6041601565 0B65734a652f580F> DC 83 /Scursive <00820b017fe07fdf821a82d60281aa81d70481c681f082178254821b82760B81867b 8f78940B6ea74cc321ca04810382f37fe781b680b181400480f0811c815b8105815480a90B 7b416131232404807380307fdf8083807080fa0A5c7d04802180c17fed80777fe180320B7a 64bd3cd0360480ef7fa7822380f88161816a048126818d80b381a880b582000B80c2a0dad9 eb048184828e820c8246819081da0A9a7d0F> DC 84 /Tcursive <00828a0180357fdb82ce82d9028035825b0A8d78048077827a8094827d80d4827004 811682628157824d819982420480ea81db7fe981208087803d0B9562cc19fd1f0Bac86d9a8 f9c20481c2805581f9809a822680e50A4f7a0481d4809d81a98062817180300481118041 80cc809580ca80f60480c78192814181f081b8823c048229822c82a5825c82cf82ce0A768b 04828082cb823f82ac8201828c0481958292813382c880ca82d904809b82aa806982848035 825b0F> DC 85 /Ucursive <0082bb0180077fe2829b82de02806982600A856d0B9c90d4b3d4780480c181f3802e 8082800e801b0B755e793da74c0480ae800e813b80bf8180812c0A847e04816b80e18146 8048815a80000481787f96823080658238806e0A79920B6b692e2d1d6a0481af80d68226 81cb8251822c04825d824682a282cd829b82dc0B7b880c5804540481d681ea817480f980c4 80750B2b414cb25bda0480c1812b8147826b814882b10B80907ca36ba90B798273816e7e04 80f282c28095827e806982600F> DC 86 /Vcursive <0082390180387fd8825e82da02803982460Bae9ce2afe9660480a981e3808f815d 8084811904807a80dc8070809e806480610B7c6e785c76490B7c5aa019cb380480e4800d 814d80aa817580ed0481a1813681c7818381ed81cf0Ba790cca6f1ba0B648d51a046bc0B8e a59ecaa0f10B81917bb262a10481f782b681a3823481ce81f60481b381a68127807280e4 80590B526f5bb95ece0480d681318126823d811782b80B7e8c7c9b6f9f0480ed82dd804d 826a8038825c0A816a0F> DC 87 /Wcursive <00831801802b7fd7835082dc02802e82460Ba297d6abe5730480a581f4806e80f7 805f80ae048056808480297ff3806a7fdb0B9b76b48ec5a004810b8060814f80dc81958153 0B7a5e733c6d1a04817480ab81618069815980260B7d67793a9b330481ef7fbd82c58175 82ec81c60Ba293c3a7e5bb0B658c539f47ba0483218251834d82e3831c82dc0482f382d5 8274823b82c981da0482b28191822c807681e880560B546b549f58bb0481ce80f4822e827c 822082c20B7d8c739667960481f282d8819682958185828a0B9971a55ca83f0481b28215 81a981c0819381900481708142812080c980ee80810B76715c5547660B708d76ae78bf04 80c3813c80ed81cf810382650B829190e179ee0B7c82768371810480c582c580518272802c 82590A826d0F> DC 88 /Xcursive <0082d2017fa27fb982a482de028074824b0A866b048093824d80d8828e80fc826304 81248233812081698122812304810180fa80398009800080020B717e678862950B75a27fce 8bee0B8da3a1c0bbdb0A778a047ff280c17fc980927fb38058047fa480307f947feb7fb4 7fc60B8f6ea874ba7e0480507ff980d980a58125810104812880bf81247fe8817a7fd40Ba9 76d99af6af0482378039826b8082828d80d50A4e76048245808a8221805381ef8025048179 804d818180f4817c815a03820b820a0B806883548c3e04823f81e2826b81f7829782090B5e 9757c458eb0482f883088257830a820d823d038179817b04817981bd81808283816582b80B 779066a252a304810a82dc808f82668074824b0F> DC 89 /Ycursive <0082710180377f2b82ba82e002803882680A836f0B968bbc9ed48c0480b982458098 81a8809381880480818128806680c3805880640B7e6c7b5580410B86629d52b94b048075 7fc080537f8a805a7f4f0B845d9354b0670480c07f5780f27f83811d7fb20481497fe28162 801e817c80590481d4811e823d823482ba82de04828782c9825482b6822082a30481ea821b 81b48191816d811104815780e98112808080f0806f0B7178607b57890B6d9f76cc7bee04 80d5817581218237810a82c40B7d9273a25f9a0480be82cf806082848038826802815680cd 0A837f0481308053810a7fbc809f7f6d0480897f96808c7fc2809c7fec0480e18014812e 8086815680cd0F> DC 90 /Zcursive <00824c017fbb7fba827582d902806782230Ab2870B8b9897b0aac404811a827e816d 825e81c4825c0380358081047f8d80407f9f7f7b80248034048072802e80a57fd480f27fbf 0481647fa181bc803381e080870A567a0B7a5f6c405925048158800f811b802d80eb80450B 5b9239aa13b90B7186658655810381f1825604822d8261829082b5827182d30B679a236013 500481c082ae817f82c8813d82d80B6e84627b54700480d2829a8097826280678223 0F> DC 91 /union <0083e80180bd7ff5832a828802832a82880946067e9c0482f080ea82e780aa 82be807e04828a8045823f802e81f4802e048155802e80f7808480f88124068164094606 7e9c0480bd806681377ff681f47ff50482b27ff6832a8065832a81240681640F> DC 92 /intersection <0083e80180bd8000832a82930280be800009ba0681640480f782048155 825a81f4825a04823f825a828a824382be820a0482e781de82f0819e82f08164067e9c09ba 06816404832a822282b1829381f48294048137829380bd822280be8164067e9c0F> DC 93 /unionmultiset <0083e80180bd7ff5832a828802832a82880946067e9c0482f080ea82e780aa 82be807e04828a8045823f802e81f4802e048155802e80f7808480f88124068164094606 7e9c0480bd806681377ff681f47ff50482b27ff6832a8065832a81240681640281db809609 b206809407809408b3077f6c068094094e067f6c077f6c084d078094067f6c0F> DC 94 /logicaland <0083e801807d7fb8836a829c02820d829c094e03807e7fb909bb0381f4825703 832f7fb909bb03820d829c0F> DC 95 /logicalor <0083e801807d7fb8836a829c0281db7fb909b203836a829c09450381f47ffe03 80b9829c09450381db7fb90F> DC 96 /turnstileleft <0082630180378000822b82ce028038800009b906814a0781bb08ba077e4506 814b0947067d310F> DC 97 /turnstileright <0082630180378000822b82ce02822c80000682cf0946067eb5077e46084607 81ba067eb609ba0F> DC 98 /bracketleftbt <0082100180e67f2581cb83080280e78308067c1e0780e408bf077f5e 0683a3093e0F> DC 99 /bracketrightbt <0082100180447f25812983080281298308093e067c5d077f5e084107 80e40683e20F> DC 100 /bracketlefttp <0082100180e67f0781cb82ea0280e77f0709c20683a30780a208c007 7f1c067c1d0F> DC 101 /bracketrighttp <0082100180447f07812982ea0281297f070683e3077f1c084007 80a2067c5d09c20F> DC 102 /braceleft <0081f40180557f14819d82fb0280dd7fbd0480dd7f2e81167f17819e7f15 089a04813c7f33812a7f50812b7faf06808b04812b80b3812080e980a381080481218126 812b815d812b81d506808c04812a82c0813d82dd819e82e2089a04811782fa80dd82e080dd 8253067f530480dd813c80bd81238056811708610480bd80eb80dd80d480dd8068067f55 0F> DC 103 /braceright <0081f40180557f14819d82fb0281167fbd0680ab04811680d4813680eb 819d80f8089f04813681238116813c811681a60680ad04811682e180de82f9805682fc0866 0480b682dd80c982c080c98261067f740480c9815d80d38126815081080480d380e980c9 80b380c9803a067f750480c97f5080b77f3380567f2f08660480de7f1781167f2e81167fbd 0F> DC 104 /angleleft <00814d01801c7f008131830f028108831003801c81080381087f010Aa992 038062810803813182fe0A57920F> DC 105 /angleright <00814d01801c7f008131830f02804583100A576e0380eb810803801c 7f130Aa96e038131810803804583100F> DC 106 /bar <00825a0181177f0f814183000281187f1009aa0683f00956067c100F> DC 107 /bardbl <0083e80181807f14826782fb02818082fc067c1909ba0683e7094602822e82fc 067c1909ba0683e709460F> DC 108 /arrowupdown <0081f40180577f14819b82fb0281167f8206830c03816981c20Ab395038120 82fc093403805881d70Ab36b0380de828e067cf403808b804e0A4d6a0380d47f1509cc03 819c80380A4d960381167f820F> DC 109 /arrowdblupdown <0081f40180237f1481cf82fb02816480140681e70Abd160Aae9c03810a82fc09 5f03802481ad0Aae640Abeea067e190A42ea0A52640380e97f1509a10381cf80620A529c0A 43160281317fbd0A49200A48e00682960Ab8e00Ab720067d6a0F> DC 110 /backslash <0081f40180297f1381cc82fc0281987f130Ab49403805e82fc0A4c6d038198 7f130F> DC 111 /wreathproduct <0081160180377fb680dc81f90280db7fb708a00B4585229913d404805d806f 8077809d80a180cf0480d6810e80ed814680d2819a0480bb81e1807d81fc803881f9085e0B b57fda6beb340480be813580908106805c80c904803380a28032804c803f801b0480567fca 808f7fba80db7fb70F> DC 112 /radical <0083e80180267c7e83ec80300281df7c7f09980383ed800908a70966038207 7cf00380df7f260380277ec80A8f610Aebb60381df7c7f0F> DC 113 /coproduct <008300018017800082ed82940280178294086c0Bc97be276e228067e450B8034 652c1e27086c0782d608940B3a851e8c1ed90681bb0B80ce9ad3e2d80894077ed1086c0Bc5 7ce171e227067e5704821f801b81e4802581928026048131802680e4801180e5807e0681a9 0B80cd9cd4e2d90894077ed00F> DC 114 /gradient <0082c90180177ff582b582940281707ff60382b68295077d6203815e7ff6 099202818a80940380a982680781c203818a80940F> DC 115 /integral <008112017fa77f4b816b82f502815482e30B61983396118604808782bb 80748241806981e5048059815c805c80d180578048048055801a80557fb6803a7f8e0B726c 5a6d4f820B759672ab55ae0B4586384061200Ba068cc69ee7a04808b7f86809e800080a9 805c0480b880e480b5816e80bb81f70480bd822480bd828b80d882b30B8d93a794b17d0B8b 6a9055ac530Bba7ac7c09fe00F> DC 116 /unionsqr <0083e80180bd8000832a828802832a82880946067db2077e0806824e094606 7d7807826c0682880F> DC 117 /intersectsqr <0083e80180bd8000832a828802832a8000068288077d94067d7809ba06824e07 81f8067db209ba0F> DC 118 /reflsubsetsq <0083e80180b57f85833d828a02833e801e08ba077db20681f907824e08b907 7d78067d940782880280b67f8607828808b9077d7808470F> DC 119 /reflsupersetsq <0083e80180b57f85833d828a0280b6801e07828806826c077d78084707824e06 7e07077db2084602833e7f8608b9077d7808470782880F> DC 120 /section <0081f40180387f8381bb82c30280e7805f04810c803f814d800f81407fd704 81347f9d80e87f9080b87fa40B5d906d9f7eb20B98998ac36acd048045803d80307f9a80cb 7f860481137f7c81757f9581887fe504819a802d81608064812e80900481638090819a80a7 81b180d90481d28125819d8169816681980A2aca0480e6820580ab823280b3826f0B88b4c1 c3edb60Bd964503593050Ba863dc89d8b604818582a5813f82c3810282c30480b582c38065 82938069823e04806c8201809c81d980c581b304809181b2805c819c8044816b0480208120 805880da808f80ab0Ad83402808f81220B60b06af3adf80480f4819f814a814a8165812004 818980e8816f809f812680aa0480f980b080a780fe808f81220F> DC 121 /dagger <0081f401802b7f7381c882c30280bf81190480e3807280ea801c80ee7f7409 9904810880018112808f8135811904811481518106818c810581cd0Bcc78d260fe580Ba279 c68bc5b00B7ea75cb939b10B4f75445e045b0B809d81b989d40B899c98b49fd00B8aa16ebe 4ebe0B5e8142644c420480dd823780ef824380ef81e10B4083359a04a50B5d883a76394f0B 7f5ba349c5500Bac88b4a1fea80480ee818c80e0815180bf81190F> DC 122 /daggerdbl <0081f401802b7f6e81c882c30280ec81c90480ef818a80de814e80bf8118 0480e080e080eb80a880ee80670B39862f9d02a50B5e873b753c500B815aa347c64f0Baf8b bf9ffaa30480ed7fe580df800180c77fae0B775e9141b2410Ba280be9cb4bf0B79986cae64 c60B789d77bc76da0Bca7bc868fa5d0Ba378c58ac7b10B81a55eb73db00B5378335a035c04 810480a6811680e381358118048115814f8108818b810681cb0Bc779d062fe5a0Ba279c58b c4b00B7ea65db93ab10B51764061065d048106824c81168231812d82840B8aa26ebf4ebf0B 5e8142644c410480e0822d80ea825480ed81e30B3c84369806a30B5d883a76394f0B7f5ba2 49c3500Bae88caa5fda40F> DC 123 /paragraph <0081f40180207f9181d382b60281d482b6077f0c04807a82b68020827b 8020820c04802081d9803781a8806081880Ba365cb5ef65b067e2f09b70682fa09d6067d06 09b60682fa09bb08aa0F> DC 124 /clubsuit <00847d0180687f88841382ff02825c809e08df04829c80f682bd80b282ea808c 04836580248413807b8413811b04841381bc8365821282ea81aa0482be8185829c8140825c 813904825b818382a381a482cd81d7048335825282df82ff823e830004819d82ff81478251 81af81d70481db81a282218185822081390481e1814081be8185819281aa04811782128069 81bc8069811b048069807a811780248192808c0481bf80b281e080f6822080fd048220806b 8224800181c87f880482167f9982667f9982b47f880482777fd9825c8038825c809e 0F> DC 125 /diamondsuit <00847c0180887f8983f3831c02823e7f8a0482de804e833480a883f3815204 833c81f882db825d823e831c0481a18261813c81f7808981520480d5810c812280c7816a 807c0481b4802e81f97fdc823e7f8a02823f7fcb0481ba806a816380c580cb8152048165 81e081b98239823f82db0482c48235831481e183b2815204831280c282c58071823f7fcb 0F> DC 126 /heartsuit <00847b0180637f7f841782f802823d82750481be8372804a82ed806581c204 8075810d811f80c381a080610481f7802082207fe982337f7f09940482577fda827d8018 82c6805204834a80bb84058104841681c204843282ed82bb8372823d827502823d7fea04 81f880bf809d80d5809481da04808f826b810582e4819982c30481f582b0821a82638230 8211099b0482608263828682b082e282c304837682e483ec826b83e781da0483dd80d7827b 80b5823d7fea0F> DC 127 /spadesuit <00847c0180a07f8083db82fc0282578088048278805982a0803382db802504 8352800983c6806183d880d704840381e682868201824582fd09720481f381fd807981e8 80a480d70480b68067811f8011819280220481d3802c820080558225808804822680268212 7fd381dc7f8004821f7f8a825d7f8a82a07f8004826a7fd382558026825780880F> DC 160 /minus <00834101807b810d82c5814702807c810d07824908ba077db708460F> DC 161 /dotmath <00823c0180dd810e815e818e0280e381660B6133d602f6500Ba0ce29fe0ab0 0F> DC 162 /multiply <008341018094801a82b382390280bd801b0381a4810203828b801b0Aa8a8 0381cc812a0382b382110A58a80381a481520380bd823a0A585703817c812a03809580430A a8580F> DC 163 /asteriskmath <0083e8018140806182a781f30281ee81350B3caa4db222db0B6c9347 9c367f0B6f638848a23f0481a0813d81a3815081e8812a0B375a3b6d025d0B64784b5d5c3f 0B8f64b46bc87d0Baaa6a1b8e0dd0B7c2d6e3b60020B79638240a53f0Ba080ada3a7be04 820e80d781fb80d281fa81200Bc355b24fdd250B956cb963ca800B909c79b95fc1048249 8117824381058200812a0Bcba7c393fea40B9c87b4a2a4c00B709c4c9637830B565a614921 240B83d192c59ffd0B879d7ec05bc10B6080545e59420481da817c81ec818481ee8135 0F> DC 164 /divide <00834101807b803a82c5821902816a81f40B6238cf0bee530B9dc82ff612ad 02807c810d07824908ba077db7084602816a808c0B6239cf0cee540B9dc72ef412ac 0F> DC 165 /diamondop <0081f4018006801081ed81f602800781030380fa80100381ed81030380fa81f6 038007810302803e81030380fa81bf0381b681040380f8804803803e81030F> DC 166 /plusminus <00834101807b800082c582830281be817b0681080946067ef8077ef80847 078108067ef8077ef8084607824908ba077ef906810807810708b9077ef90F> DC 167 /minusplus <00834101807b800082c582830281be810807810708ba077ef906810707810708 ba077db70846078108067ef9077ef80846078108067ef809ba0681080F> DC 168 /circleplus <0083e80180727fa9837682ac0283468142077ec50681380482ac8274833f81e3 834681420281dc8142077ec60480b281e98133826d81dc827a067ec80280a2811307813a06 7ec80481347fe680b2806d80a2811302820b811307813b04833d80c3831e807882e5803e04 82ab8005825e7fdb820b7fdb0681380281f482ac04812282ac807381fc8073812a048072 805681207faa81f47faa0482c97faa837680568376812a04837681fd82c782ac81f482ac 0F> DC 169 /circleminus <0083e80180727fa9837582ac028344811304832a7f8c80de7f5980a4811307 82a00280a581420480cf82ed832782d883448142077d61028376812a04837581fe82c782ab 81f482ac04812082ac807381fe8072812a0480728056811f7faa81f47fa90482c87fa98376 80568376812a0F> DC 170 /circlemultiply <0083e80180727faa837582ab028305823b04827082d1817982d080e4823b04 804f81a7804f80ae80e4801a04817a7f85826e7f868305801a04839b80b0839a81a58305 823b0281f4810a0382d2802c0482937ffc824a7fdb81f87fdb0481a77fdb81517ff38116 802d0381f4810a0280f582090381d3812b0380f6804e04808280cb808d818980f5820902 81f4814c038115822a04819582948252829682d182290381f4814c0282f3804c038214812b 0382f2820804835f8192836180c382f3804c0F> DC 171 /circledivide <0083e80180727fa9837582ab0280e480190481797f85826f7f868305801904 839980ae839981a68305823a04826f82d1817a82d180e4823a04804f81a6804f80ae80e4 80190280f7804d047ff58176816d833582d182270380f7804d0282f28207048363817b8366 80be82e2803b0482657fbf819b7fb98117802c0382f282070F> DC 172 /circledot <0083e80180727fa9837682ac0280a3812a0480a281e2813c827c81f4827c04 82ac827b834581e28345812a048345807382ac7fda81f47fda04813b7fda80a3807180a3 812a0281b3812a0481b380d6823480d58234812a048234817e81b3817e81b3812a0281f4 82ac04812282ac807381fc8073812a048072805681207faa81f47fa90482c77fa983768057 8376812a04837681fc82c782ac81f482ac0F> DC 173 /overlaycircle <0083e8017fff7f1483e782fb028031810804803081fe80fc82ca81f282ca04 82e982ca83b581ff83b581080483b5801282e97f4681f27f460480fd7f46803180128031 81080281f382fc0480e182fb8000821a800081070480007ff580e07f1581f37f15048306 7f1583e77ff583e781070483e7821a830682fc81f382fc0F> DC 174 /circleop <0081f4018036804081bb81c5028070818c0480258141802580c48070807904 80ba802f8137802e818280790481cd80c581ce81428182818d04813781d880ba81d78070 818c02808b81700480c681ac812a81ac816681710481a2813581a180d28166809604812a 805980c7805a808c809604804f80d180508135808b81700F> DC 175 /bullet <0081f4018036804081bb81c5028070818c0480258141802580c48070807904 80ba802f8137802e818280790481cd80c581ce81428182818d04813781d880ba81d78070 818c0F> DC 176 /hardyequiv <0083e80180ce8075831881df0280e781df0A685104817f812c8269812d8319 81b00A68af04826881668180816580e781df0280e7807504818180ef826780ee830180750A 98af04826881278180812880cf80a40A98510F> DC 177 /equivalence <0083e80180cf8069831881ea0280cf806a07824a08b9077db6084702 80cf810d07824a08ba077db608460280cf81b107824a08ba077db608460F> DC 178 /reflexsubset <0083e80180aa7f85833d828a02833e801e08ba077e9b04813a8058 80e480b580e481540480e481a080fb81ea8134821f0481608247819f825081d98251078165 08b9077e9b04811b828a80aa821280aa81540480aa8097811b801e81d9801e0781650280b2 7f8607828c08b9077d7408470F> DC 179 /reflexsuperset <0083e80180b37f858347828a0280b3801e0781650482d6801e8347 809783478154048347821182d6828a8218828a077e9b08470781650482b88250830d81f4 830d815404830d80b582b8805882188058077e9b084602833f7f8608b9077d74084707828c 0F> DC 180 /lessequal <0083e80180cf80178318823c0280d18146038319808f08ba038126816603 8319820208ba0380d181840842028319801808ba077db6084607824a0F> DC 181 /greaterequal <0083e80180cf80178318823c0280cf801807824a08ba077db6084602 8317814608be0380cf823c08460382c281660380cf80c9084603831781460F> DC 182 /precedesequal <0083e80180cf80008318826e028319800008ba077db6084607824a0280d08181 0849048144814981bc8141822b811d04829680fa82c480c482e4805d0Ab28e04830080b0 82e580f182a6811a048254815181f1815e819081660481f1816e8254817b82a681b20482e4 81dc8301821c831682610A4e8e0482c58209829481d0822c81ae0481bd818a8145818280d0 81810F> DC 183 /followsequal <0083e80180cf80008318826e02831881810482a38182822b818a81bc81ae04 815481d0812382098104826f0A4e720480e7821c810481dd814281b2048194817b81f7816e 825881660481f7815e819481518142811a04810380f180e780b080d2806b0Ab272048124 80c4815280fa81bd811d04822c814182a481498318814a08b70280cf800007824a08ba07 7db608460F> DC 184 /similar <0083e80180aa80e3833d81720280aa80e404811a81308160814681e5 811a04827f80e782b080d8833e813308bf0482ab810b828b812081e7815304816b817b8116 816680aa812208420F> DC 185 /approxequal <0083e80180aa8093833d81c00280aa809404811a80e0816080f681e5 80ca04827f809782b08088833e80e308bf0482a980ba828b80d081e7810304816b812b8116 811680aa80d208420280aa813204811a817f8160819581e5816904827f813682b08126833e 818208bf0482aa815a828b816e81e781a104816b81ca811681b480aa817108410F> DC 186 /propersubset <0083e80180aa8007833d827402833e800808ba077e9b04813a8042 80e4809f80e4813e0480e4818a80fb81d4813482090481608231819f823a81d9823b078165 08b9077e9b04811b827480aa81fc80aa813e0480aa8081811b800881d98008078165 0F> DC 187 /propersuperset <0083e80180aa8007833d82740280aa82740847078165048249823a 8288823182b482090482ed81d48304818a8304813e048304809f82ae8042820f8042077e9b 08460781650482cd8008833d8081833e813e04833d81fc82cc8274820f8274077e9b 0F> DC 188 /muchless <0083e80180377fb783b082590280378122084d0382627fb708bc038085810803 8262821e08bc03803781220281868122084d0383b17fb708bc0381d381080383b1821e08bc 03818681220F> DC 189 /muchgreater <0083e80180377fb783b082590283b18122038186825a08440383638108038186 7ff308440383b180ef08b30282628122038037825a084403821581080380377ff3084403 826280ef08b30F> DC 190 /precedes <0083e80180cf8022831582340280d081470849048144810f81bc8107822b80e3 04829680c082c4808a82e480220Ab28f048300807682e580b782a680e0048254811781f1 81248190812c0481f181348254814082a681780482e481a2830181e1831682260A4e8e04 82c581cf82948196822c81740481bd81508145814780d081470F> DC 191 /follows <0083e80180cf80228315823402831681470482a181478229815081b9817404 81518196812181cf810282340A4e720480e581e1810281a2813f8178048192814081f58134 8255812c0481f5812481928117813f80e004810180b780e5807680d080310Ab271048122 808a815080c081ba80e304822a810782a1810f8316811008b70F> DC /FontBBox {-213 -898 1047 796} def end /Dutch801-Roman-DECmath_Symbol bsd definefont pop %%EndFont DEC_WRITE_dict begin loads version cvi 23.0 gt { currentdict {dup type /arraytype eq {bind def} {pop pop} ifelse} forall} if 0.0100 0.0100 s %%EndSetup %%Page: 1 1 /$P a D g N 0 79200 T S R S 6313 -23156 T N 0 G 300 -1050 M /Times-Italic-ISOLatin1 $ /Times-Italic & P /Times-Italic-ISOLatin1 F 1000 o f 2.3 0 32 (This paper is a revised version of an article by the same) W 300 -2150 M 27.2 0 32 (title and author which appeared in the April 1991 issue) W 300 -3250 M (of ) h /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1000 o f (Communications of the ACM.) h 300 -4500 M 300 -6400 M /Times-Bold-ISOLatin1 $ /Times-Bold & P /Times-Bold-ISOLatin1 F 1200 o f (Abstract) h 300 -8150 M /Times-Roman-ISOLatin1 F 1000 o f 135.1 0 32 (For the past few years, a joint ISO/CCITT committee) W 300 -9250 M 258.8 0 32 (known as JPEG \(Joint Photographic Experts Group\)) W 300 -10350 M 281.4 0 32 (has been working to establish the first international) W 300 -11450 M 110.6 0 32 (compression standard for continuous\255tone still images,) W 300 -12550 M 190.4 0 32 (both grayscale and color. JPEG's proposed standard) W 300 -13650 M 401.1 0 32 (aims to be generic, to support a wide variety of) W 300 -14750 M 189.5 0 32 (applications for continuous\255tone images. To meet the) W 300 -15850 M 587.7 0 32 (differing needs of many applications, the JPEG) W 300 -16950 M 23.0 0 32 (standard includes two basic compression methods, each) W 300 -18050 M 23.6 0 32 (with various modes of operation. A DCT\255based method) W 300 -19150 M 127.0 0 32 (is specified for ) W 127.0 0 32 (\026) W 127.0 0 32 (lossy'' compression, and a predictive) W 300 -20250 M 166.6 0 32 (method for ) W 166.6 0 32 (\026) W 166.6 0 32 (lossless'' compression. JPEG features a) W 300 -21350 M 86.9 0 32 (simple lossy technique known as the Baseline method,) W 300 -22450 M 163.1 0 32 (a subset of the other DCT\255based modes of operation.) W 300 -23550 M 107.9 0 32 (The Baseline method has been by far the most widely) W 300 -24650 M 72.5 0 32 (implemented JPEG method to date, and is sufficient in) W 300 -25750 M 141.8 0 32 (its own right for a large number of applications. This) W 300 -26850 M 52.1 0 32 (article provides an overview of the JPEG standard, and) W 300 -27950 M (focuses in detail on the Baseline method.) h 300 -29050 M 300 -30150 M 300 -31400 M /Times-Bold-ISOLatin1 F 1200 o f (1 Introduction) h 300 -33150 M /Times-Roman-ISOLatin1 F 1000 o f 298.8 0 32 (Advances over the past decade in many aspects of) W 300 -34250 M 499.8 0 32 (digital technology \255 especially devices for image) W 300 -35350 M 203.3 0 32 (acquisition, data storage, and bitmapped printing and) W 300 -36450 M 337.0 0 32 (display \255 have brought about many applications of) W 300 -37550 M 13.6 0 32 (digital imaging. However, these applications tend to be) W 300 -38650 M 117.1 0 32 (specialized due to their relatively high cost. With the) W 300 -39750 M 126.7 0 32 (possible exception of facsimile, digital images are not) W 300 -40850 M 291.3 0 32 (commonplace in general\255purpose computing systems) W 300 -41950 M 30.6 0 32 (the way text and geometric graphics are. The majority) W 300 -43050 M 3.9 0 32 (of modern business and consumer usage of photographs) W 300 -44150 M 229.1 0 32 (and other types of images takes place through more) W 300 -45250 M (traditional analog means.) h 300 -46350 M 300 -47450 M -6313 23156 T R S 31919 -23173 T N 0 G 300 -1050 M /Times-Roman-ISOLatin1 F 1000 o f 305.4 0 32 (The key obstacle for many applications is the vast) W 300 -2150 M 215.3 0 32 (amount of data required to represent a digital image) W 300 -3250 M 107.9 0 32 (directly. A digitized version of a single, color picture) W 300 -4350 M 144.8 0 32 (at TV resolution contains on the order of one million) W 300 -5450 M 55.0 0 32 (bytes; 35mm resolution requires ten times that amount. ) W 300 -6550 M 171.9 0 32 (Use of digital images often is not viable due to high) W 300 -7650 M 31.7 0 32 (storage or transmission costs, even when image capture) W 300 -8750 M (and display devices are quite affordable.) h 300 -9850 M 300 -10950 M 661.0 0 32 (Modern image compression technology offers a) W 300 -12050 M 533.0 0 32 (possible solution. State\255of\255the\255art techniques can) W 300 -13150 M 463.9 0 32 (compress typical images from 1/10 to 1/50 their) W 300 -14250 M 427.4 0 32 (uncompressed size without visibly affecting image) W 300 -15350 M 372.4 0 32 (quality. But compression technology alone is not) W 300 -16450 M 309.5 0 32 (sufficient. For digital image applications involving) W 300 -17550 M 490.5 0 32 (storage or transmission to become widespread in) W 300 -18650 M 355.6 0 32 (today's marketplace, a standard image compression) W 300 -19750 M 675.7 0 32 (method is needed to enable interoperability of) W 300 -20850 M 152.8 0 32 (equipment from different manufacturers. The CCITT) W 300 -21950 M 259.0 0 32 (recommendation for today's ubiquitous Group 3 fax) W 300 -23050 M 40.2 0 32 (machines [17] is a dramatic example of how a standard) W 300 -24150 M 268.3 0 32 (compression method can enable an important image) W 300 -25250 M 45.0 0 32 (application. The Group 3 method, however, deals with) W 300 -26350 M 75.1 0 32 (bilevel images only and does not address photographic) W 300 -27450 M (image compression.) h 300 -28550 M 300 -29650 M 107.8 0 32 (For the past few years, a standardization effort known) W 300 -30750 M 134.6 0 32 (by the acronym JPEG, for Joint Photographic Experts) W 300 -31850 M 134.7 0 32 (Group, has been working toward establishing the first) W 300 -32950 M 305.2 0 32 (international digital image compression standard for) W 300 -34050 M 978.0 0 32 (continuous\255tone \(multilevel\) still images, both) W 300 -35150 M 158.4 0 32 (grayscale and color. The ) W 158.4 0 32 (\026) W 158.4 0 32 (joint) W 158.4 0 32 (\027) W 158.4 0 32 ( in JPEG refers to a) W 300 -36250 M 643.2 0 32 (collaboration between CCITT and ISO. JPEG) W 300 -37350 M 231.3 0 32 (convenes officially as the ISO committee designated) W 300 -38450 M 588.2 0 32 (JTC1/SC2/WG10, but operates in close informal) W 300 -39550 M 86.4 0 32 (collaboration with CCITT SGVIII. JPEG will be both) W 300 -40650 M 86.6 0 32 (an ISO Standard and a CCITT Recommendation. The) W 300 -41750 M (text of both will be identical.) h 300 -42850 M 300 -43950 M 166.0 0 32 (Photovideotex, desktop publishing, graphic arts, color) W 300 -45050 M 180.3 0 32 (facsimile, newspaper wirephoto transmission, medical) W 300 -46150 M 610.6 0 32 (imaging, and many other continuous\255tone image) W 300 -47250 M 67.4 0 32 (applications require a compression standard in order to) W -31919 23173 T R S 6519 -10545 T N 0 G 8366 -1350 M /Helvetica-Bold-ISOLatin1 $ /Helvetica-Bold & P /Helvetica-Bold-ISOLatin1 F 1400 o f (The JPEG Still Picture Compression Standard) h 300 -2550 M 20016 -3650 M /Helvetica-ISOLatin1 $ /Helvetica & P /Helvetica-ISOLatin1 F 1000 o f (Gregory K. Wallace) h 19156 -4750 M (Multimedia Engineering) h 17596 -5850 M (Digital Equipment Corporation) h 18866 -6950 M (Maynard, Massachusetts) h 300 -7888 M 300 -9373 M 5659 -10420 M /Times-Italic-ISOLatin1 F 1000 o f (Submitted in December 1991 for publication in IEEE Transactions on Consumer Electronics) h 300 -11358 M 300 -12628 M -6519 10545 T R S 30679 -75546 M /Times-Roman-ISOLatin1 F 1000 o f (1) h R showpage $P e %%Page: 2 2 /$P a D g N 0 79200 T S R S 6337 -7200 T N 0 G 300 -1050 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1000 o f 71.1 0 32 (develop significantly beyond their present state. JPEG) W 300 -2150 M 345.0 0 32 (has undertaken the ambitious task of developing a) W 300 -3250 M 472.2 0 32 (general\255purpose compression standard to meet the) W 300 -4350 M 738.2 0 32 (needs of almost all continuous\255tone still\255image) W 300 -5450 M (applications.) h 300 -6550 M 300 -7650 M 141.9 0 32 (If this goal proves attainable, not only will individual) W 300 -8750 M 254.5 0 32 (applications flourish, but exchange of images across) W 300 -9850 M 182.3 0 32 (application boundaries will be facilitated. This latter) W 300 -10950 M 305.5 0 32 (feature will become increasingly important as more) W 300 -12050 M 5.6 0 32 (image applications are implemented on general\255purpose) W 300 -13150 M 288.4 0 32 (computing systems, which are themselves becoming) W 300 -14250 M 377.8 0 32 (increasingly interoperable and internetworked. For) W 300 -15350 M 240.7 0 32 (applications which require specialized VLSI to meet) W 300 -16450 M 1208.0 0 32 (their compression and decompression speed) W 300 -17550 M 832.8 0 32 (requirements, a common method will provide) W 300 -18650 M 519.4 0 32 (economies of scale not possible within a single) W 300 -19750 M (application. ) h 300 -20850 M 300 -21950 M 305.4 0 32 (This article gives an overview of JPEG's proposed) W 300 -23050 M 299.8 0 32 (image\255compression standard. Readers without prior) W 300 -24150 M 400.6 0 32 (knowledge of JPEG or compression based on the) W 300 -25250 M 222.5 0 32 (Discrete Cosine Transform \(DCT\) are encouraged to) W 300 -26350 M 368.7 0 32 (study first the detailed description of the Baseline) W 300 -27450 M 333.2 0 32 (sequential codec, which is the basis for all of the) W 300 -28550 M 31.7 0 32 (DCT\255based decoders. While this article provides many) W 300 -29650 M 34.9 0 32 (details, many more are necessarily omitted. The reader) W 300 -30750 M 409.9 0 32 (should refer to the ISO draft standard [2] before) W 300 -31850 M (attempting implementation.) h 300 -32950 M 300 -34050 M 270.4 0 32 (Some of the earliest industry attention to the JPEG) W 300 -35150 M 170.6 0 32 (proposal has been focused on the Baseline sequential) W 300 -36250 M 95.6 0 32 (codec as a motion image compression method \255 of the) W 300 -37350 M 108.3 0 32 (``intraframe'' class, where each frame is encoded as a) W 300 -38450 M 208.1 0 32 (separate image. This class of motion image coding,) W 300 -39550 M 261.0 0 32 (while providing less compression than ``interframe'') W 300 -40650 M 190.1 0 32 (methods like MPEG, has greater flexibility for video) W 300 -41750 M 147.0 0 32 (editing. While this paper focuses only on JPEG as a) W 300 -42850 M 65.6 0 32 (still picture standard \(as ISO intended\), it is interesting) W 300 -43950 M 211.0 0 32 (to note that JPEG is likely to become a ``de facto'') W 300 -45050 M (intraframe motion standard as well.) h 300 -46150 M 300 -47250 M 300 -48500 M /Times-Bold-ISOLatin1 $ /Times-Bold & P /Times-Bold-ISOLatin1 F 1200 o f 195.7 0 32 (2 Background: Requirements and Selec\255) W 300 -49800 M (tion Process) h 300 -51550 M /Times-Roman-ISOLatin1 F 1000 o f 492.9 0 32 (JPEG's goal has been to develop a method for) W 300 -52650 M 249.6 0 32 (continuous\255tone image compression which meets the) W 300 -53750 M (following requirements:) h 300 -54850 M 300 -55950 M (1\)) h 2100 -55950 M 217.7 0 32 (be at or near the state of the art with regard to) W 2100 -57050 M 841.5 0 32 (compression rate and accompanying image) W 2100 -58150 M 11.0 0 32 (fidelity, over a wide range of image quality ratings,) W 2100 -59250 M 59.6 0 32 (and especially in the range where visual fidelity to) W 2100 -60350 M 326.3 0 32 (the original is characterized as ) W 326.3 0 32 (\026) W 326.3 0 32 (very good) W 326.3 0 32 (\027) W 326.3 0 32 ( to) W 2100 -61450 M 951.0 0 32 (\026) W 951.0 0 32 (excellent) W 951.0 0 32 (\027) W 951.0 0 32 (; also, the encoder should be) W 2100 -62550 M 214.0 0 32 (parameterizable, so that the application \(or user\)) W 2100 -63650 M (can set the desired compression/quality tradeoff;) h -6337 7200 T R S 31919 -7200 T N 0 G 2100 -1050 M 2100 -2150 M 300 -3250 M /Times-Roman-ISOLatin1 F 1000 o f (2\)) h 2100 -3250 M 838.7 0 32 (be applicable to practically any kind of) W 2100 -4350 M 70.0 0 32 (continuous\255tone digital source image \(i.e. for most) W 2100 -5450 M 215.0 0 32 (practical purposes not be restricted to images of) W 2100 -6550 M 489.8 0 32 (certain dimensions, color spaces, pixel aspect) W 2100 -7650 M 0.4 0 32 (ratios, etc.\) and not be limited to classes of imagery) W 2100 -8750 M 639.5 0 32 (with restrictions on scene content, such as) W 2100 -9850 M 856.2 0 32 (complexity, range of colors, or statistical) W 2100 -10950 M (properties;) h 2100 -12050 M 300 -13150 M (3\)) h 2100 -13150 M 128.6 0 32 (have tractable computational complexity, to make) W 2100 -14250 M 549.5 0 32 (feasible software implementations with viable) W 2100 -15350 M 348.0 0 32 (performance on a range of CPU's, as well as) W 2100 -16450 M 400.8 0 32 (hardware implementations with viable cost for) W 2100 -17550 M (applications requiring high performance;) h 2100 -18650 M 300 -19750 M (4\)) h 2100 -19750 M ( have the following modes of operation:) h 2100 -20850 M 2100 -21950 M /Symbol F 1000 o f (\267) h 3900 -21950 M /Times-Roman-ISOLatin1 F 1000 o f 7.4 0 32 (Sequential encoding: each image component is) W 3900 -23050 M 35.0 0 32 (encoded in a single left\255to\255right, top\255to\255bottom) W 3900 -24150 M (scan;) h 3900 -25250 M 2100 -26350 M /Symbol F 1000 o f (\267) h 3900 -26350 M /Times-Roman-ISOLatin1 F 1000 o f 47.8 0 32 (Progressive encoding: the image is encoded in) W 3900 -27450 M 573.8 0 32 (multiple scans for applications in which) W 3900 -28550 M 404.0 0 32 (transmission time is long, and the viewer) W 3900 -29650 M 8.0 0 32 (prefers to watch the image build up in multiple) W 3900 -30750 M (coarse\255to\255clear passes;) h 3900 -31850 M 2100 -32950 M /Symbol F 1000 o f (\267) h 3900 -32950 M /Times-Roman-ISOLatin1 F 1000 o f 260.7 0 32 (Lossless encoding: the image is encoded to) W 3900 -34050 M 486.2 0 32 (guarantee exact recovery of every source) W 3900 -35150 M 76.7 0 32 (image sample value \(even though the result is) W 3900 -36250 M 607.2 0 32 (low compression compared to the lossy) W 3900 -37350 M (modes\);) h 3900 -38450 M 2100 -39550 M /Symbol F 1000 o f (\267) h 3900 -39550 M /Times-Roman-ISOLatin1 F 1000 o f 11.2 0 32 (Hierarchical encoding: the image is encoded at) W 3900 -40650 M 279.5 0 32 (multiple resolutions so that lower\255resolution) W 3900 -41750 M 75.7 0 32 (versions may be accessed without first having) W 3900 -42850 M (to decompress the image at its full resolution.) h 300 -43950 M 300 -45050 M 341.1 0 32 (In June 1987, JPEG conducted a selection process) W 300 -46150 M 400.6 0 32 (based on a blind assessment of subjective picture) W 300 -47250 M 194.3 0 32 (quality, and narrowed 12 proposed methods to three. ) W 300 -48350 M 87.3 0 32 (Three informal working groups formed to refine them,) W 300 -49450 M 55.5 0 32 (and in January 1988, a second, more rigorous selection) W 300 -50550 M 135.1 0 32 (process [19] revealed that the ) W 135.1 0 32 (\026) W 135.1 0 32 (ADCT) W 135.1 0 32 (\027) W 135.1 0 32 ( proposal [11],) W 300 -51650 M 129.6 0 32 (based on the 8x8 DCT, had produced the best picture) W 300 -52750 M (quality.) h 300 -53850 M 300 -54950 M 24.4 0 32 (At the time of its selection, the DCT\255based method was) W 300 -56050 M 444.3 0 32 (only partially defined for some of the modes of) W 300 -57150 M 114.6 0 32 (operation. From 1988 through 1990, JPEG undertook) W 300 -58250 M 161.5 0 32 (the sizable task of defining, documenting, simulating,) W 300 -59350 M 59.1 0 32 (testing, validating, and simply agreeing on the plethora) W 300 -60450 M 277.8 0 32 (of details necessary for genuine interoperability and) W 300 -61550 M 315.6 0 32 (universality. Further history of the JPEG effort is) W 300 -62650 M (contained in [6, 7, 9, 18].) h 300 -63750 M -31919 7200 T R S 30717 -74731 M /Times-Roman-ISOLatin1 F 1000 o f (2) h R showpage $P e %%Page: 3 3 /$P a D g N 0 79200 T S R S 6337 -7200 T N 0 G 300 -1200 M /Times-Bold-ISOLatin1 $ /Times-Bold & P /Times-Bold-ISOLatin1 F 1200 o f (3 Architecture of the Proposed Standard) h 300 -2950 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1000 o f 281.7 0 32 (The proposed standard contains the four ) W 281.7 0 32 (\026) W 281.7 0 32 (modes of) W 300 -4050 M 146.7 0 32 (operation) W 146.7 0 32 (\027) W 146.7 0 32 ( identified previously. For each mode, one) W 300 -5150 M 67.9 0 32 (or more distinct codecs are specified. Codecs within a) W 300 -6250 M 62.6 0 32 (mode differ according to the precision of source image) W 300 -7350 M 76.3 0 32 (samples they can handle or the entropy coding method) W 300 -8450 M 103.4 0 32 (they use. Although the word codec \(encoder/decoder\)) W 300 -9550 M 12.2 0 32 (is used frequently in this article, there is no requirement) W 300 -10650 M 43.3 0 32 (that implementations must include both an encoder and) W 300 -11750 M 246.4 0 32 (a decoder. Many applications will have systems or) W 300 -12850 M (devices which require only one or the other.) h 300 -13950 M 300 -15050 M 132.0 0 32 (The four modes of operation and their various codecs) W 300 -16150 M 159.8 0 32 (have resulted from JPEG's goal of being generic and) W 300 -17250 M 15.7 0 32 (from the diversity of image formats across applications. ) W 300 -18350 M 535.4 0 32 (The multiple pieces can give the impression of) W 300 -19450 M 300.5 0 32 (undesirable complexity, but they should actually be) W 300 -20550 M 0.3 0 32 (regarded as a comprehensive ) W 0.3 0 32 (\026) W 0.3 0 32 (toolkit) W 0.3 0 32 (\027) W 0.3 0 32 ( which can span a) W 300 -21650 M 24.1 0 32 (wide range of continuous\255tone image applications. It is) W 300 -22750 M 166.0 0 32 (unlikely that many implementations will utilize every) W 300 -23850 M 114.3 0 32 (tool \255\255 indeed, most of the early implementations now) W 300 -24950 M 187.8 0 32 (on the market \(even before final ISO approval\) have) W 300 -26050 M (implemented only the Baseline sequential codec.) h 300 -27150 M 300 -28250 M 111.1 0 32 (The Baseline sequential codec is inherently a rich and) W 300 -29350 M 593.8 0 32 (sophisticated compression method which will be) W 300 -30450 M 15.3 0 32 (sufficient for many applications. Getting this minimum) W 300 -31550 M 1291.0 0 32 (JPEG capability implemented properly and) W 300 -32650 M 629.2 0 32 (interoperably will provide the industry with an) W 300 -33750 M 360.8 0 32 (important initial capability for exchange of images) W 300 -34850 M (across vendors and applications.) h 300 -35950 M 300 -37050 M 300 -38300 M /Times-Bold-ISOLatin1 F 1200 o f (4 Processing Steps for DCT\255Based Coding) h 300 -40050 M /Times-Roman-ISOLatin1 F 1000 o f 138.7 0 32 (Figures 1 and 2 show the key processing steps which) W 300 -41150 M 232.8 0 32 (are the heart of the DCT\255based modes of operation. ) W 300 -42250 M 953.7 0 32 (These figures illustrate the special case of) W 300 -43350 M 55.6 0 32 (single\255component \(grayscale\) image compression. The) W 300 -44450 M 731.7 0 32 (reader can grasp the essentials of DCT\255based) W 300 -45550 M 851.2 0 32 (compression by thinking of it as essentially) W 300 -46650 M 236.1 0 32 (compression of a stream of 8x8 blocks of grayscale) W 300 -47750 M 86.6 0 32 (image samples. Color image compression can then be) W 300 -48850 M 372.0 0 32 (approximately regarded as compression of multiple) W 300 -49950 M 60.5 0 32 (grayscale images, which are either compressed entirely) W 300 -51050 M 475.8 0 32 (one at a time, or are compressed by alternately) W 300 -52150 M (interleaving 8x8 sample blocks from each in turn.) h 300 -53250 M 300 -54350 M 226.7 0 32 (For DCT sequential\255mode codecs, which include the) W 300 -55450 M 433.0 0 32 (Baseline sequential codec, the simplified diagrams) W 300 -56550 M (indicate how single\255component compression works in a ) h 300 -57650 M 132.6 0 32 (fairly complete way. Each 8x8 block is input, makes) W 300 -58750 M 44.9 0 32 (its way through each processing step, and yields output) W 300 -59850 M 222.0 0 32 (in compressed form into the data stream. For DCT) W 300 -60950 M 125.2 0 32 (progressive\255mode codecs, an image buffer exists prior) W 300 -62050 M 219.3 0 32 (to the entropy coding step, so that an image can be) W 300 -63150 M 21.4 0 32 (stored and then parceled out in multiple scans with suc\255) W 300 -64250 M 39.4 0 32 (cessively improving quality. For the hierarchical mode) W -6337 7200 T R S 31919 -7200 T N 0 G 300 -1050 M /Times-Roman-ISOLatin1 F 1000 o f 315.8 0 32 (of operation, the steps shown are used as building) W 300 -2150 M (blocks within a larger framework.) h 300 -3250 M 300 -4950 M /Times-Bold-ISOLatin1 F 1000 o f (4.1 8x8 FDCT and IDCT) h 300 -6650 M /Times-Roman-ISOLatin1 F 1000 o f 111.1 0 32 (At the input to the encoder, source image samples are) W 300 -7750 M 7.6 0 32 (grouped into 8x8 blocks, shifted from unsigned integers) W 300 -8850 M 219.3 0 32 (with range [0, 2) W n 0.800 o f 0.0 448.0 m 219.3 0 32 (P) W 0 -448.0 m n 1.250 o f 219.3 0 32 ( \255 1] to signed integers with range) W 300 -9950 M 65.8 0 32 ([\2552) W n 0.800 o f 0.0 448.0 m 65.8 0 32 (P\2551) W 0 -448.0 m n 1.250 o f 65.8 0 32 (, 2) W n 0.800 o f 0.0 448.0 m 65.8 0 32 (P\2551) W 0 -448.0 m n 1.250 o f 65.8 0 32 (\2551], and input to the Forward DCT \(FDCT\). ) W 300 -11050 M 364.5 0 32 (At the output from the decoder, the Inverse DCT) W 300 -12150 M 551.1 0 32 (\(IDCT\) outputs 8x8 sample blocks to form the) W 300 -13250 M 127.0 0 32 (reconstructed image. The following equations are the) W 300 -14350 M 258.8 0 32 (idealized mathematical definitions of the 8x8 FDCT) W 300 -15450 M (and 8x8 IDCT:) h 300 -24986 M 300 -39590 M 300 -40690 M /Times-Roman-ISOLatin1 F 1000 o f 125.0 0 32 (The DCT is related to the Discrete Fourier Transform) W 300 -41790 M 670.7 0 32 (\(DFT\). Some simple intuition for DCT\255based) W 300 -42890 M 9.1 0 32 (compression can be obtained by viewing the FDCT as a) W 300 -43990 M 496.1 0 32 (harmonic analyzer and the IDCT as a harmonic) W 300 -45090 M 107.6 0 32 (synthesizer. Each 8x8 block of source image samples) W 300 -46190 M 326.3 0 32 (is effectively a 64\255point discrete signal which is a) W 300 -47290 M 174.8 0 32 (function of the two spatial dimensions ) W /Times-Italic-ISOLatin1 $ /Times-Italic & P /Times-Italic-ISOLatin1 F 1000 o f 174.8 0 32 (x ) W /Times-Roman-ISOLatin1 F 1000 o f 174.8 0 32 (and ) W /Times-Italic-ISOLatin1 F 1000 o f 174.8 0 32 (y) W /Times-Roman-ISOLatin1 F 1000 o f 174.8 0 32 (. The) W 300 -48390 M 83.0 0 32 (FDCT takes such a signal as its input and decomposes) W 300 -49490 M 104.6 0 32 (it into 64 orthogonal basis signals. Each contains one) W 300 -50590 M 583.0 0 32 (of the 64 unique two\255dimensional \(2D\) ) W 583.0 0 32 (\026) W 583.0 0 32 (spatial) W 300 -51690 M 683.2 0 32 (frequencies'' which comprise the input signal's) W 300 -52790 M 146.3 0 32 (\026) W 146.3 0 32 (spectrum.) W 146.3 0 32 (\027) W 146.3 0 32 ( The ouput of the FDCT is the set of 64) W 300 -53890 M 227.6 0 32 (basis\255signal amplitudes or ) W 227.6 0 32 (\026) W 227.6 0 32 (DCT coefficients) W 227.6 0 32 (\027) W 227.6 0 32 ( whose) W 300 -54990 M 518.5 0 32 (values are uniquely determined by the particular) W 300 -56090 M (64\255point input signal.) h 300 -57190 M 300 -58290 M 28.0 0 32 (The DCT coefficient values can thus be regarded as the) W 300 -59390 M 43.7 0 32 (relative amount of the 2D spatial frequencies contained) W 300 -60490 M 86.2 0 32 (in the 64\255point input signal. The coefficient with zero) W 300 -61590 M 495.7 0 32 (frequency in both dimensions is called the ) W 495.7 0 32 (\026) W 495.7 0 32 (DC) W 300 -62690 M 435.5 0 32 (coefficient) W 435.5 0 32 (\027) W 435.5 0 32 ( and the remaining 63 coefficients are) W 300 -63790 M 135.1 0 32 (called the ) W 135.1 0 32 (\026) W 135.1 0 32 (AC coefficients.'' Because sample values) W -31919 7200 T S N S 32078 -31436 22722 8436 @ I N 32078 -23000 T N S 10569 -3390 M /Courier-ISOLatin1 $ /Courier & P /Courier-ISOLatin1 F 2400 o f ([) h R N S 201 -5530 20216 5128 @ I N 201 -402 T N N S 0 -5128 20217 5128 @ I N 0 0 T N S 800 -2733 M /Dutch801-Italic-DECmath_Italic F 1200 o f (F) h R S 1533 -2751 M /Times-Roman-ISOLatin1 F 1200 o f (\() h R S 1933 -2734 M /Dutch801-Italic-DECmath_Italic F 1200 o f (u) h R S 2533 -2751 M /Times-Roman-ISOLatin1 F 1200 o f (,) h R S 3011 -2733 M /Dutch801-Italic-DECmath_Italic F 1200 o f (v) h R S 3544 -2751 M /Times-Roman-ISOLatin1 F 1200 o f (\)) h R S 4477 -2751 M /Times-Roman-ISOLatin1 F 1200 o f (=) h R S 5687 -2251 M /Times-Roman-ISOLatin1 F 1000 o f (1) h R S N 5687.00 -2466.00 M 6187.00 -2466.00 L S 49 w 0 c 0 j 2 i 0.00 G k R R S 5687 -3292 M /Times-Roman-ISOLatin1 F 1000 o f (4) h R S 6187 -2751 M /Times-Roman-ISOLatin1 F 1200 o f ( ) h R S 6487 -2734 M /Dutch801-Italic-DECmath_Italic F 1200 o f (C) h R S 7288 -2751 M /Times-Roman-ISOLatin1 F 1200 o f (\() h R S 7687 -2734 M /Dutch801-Italic-DECmath_Italic F 1200 o f (u) h R S 8287 -2751 M /Times-Roman-ISOLatin1 F 1200 o f (\)) h R S 8687 -2734 M /Dutch801-Italic-DECmath_Italic F 1200 o f (C) h R S 9487 -2751 M /Times-Roman-ISOLatin1 F 1200 o f (\() h R S 9887 -2733 M /Dutch801-Italic-DECmath_Italic F 1200 o f (v) h R S 10420 -2655 M /Times-Roman-ISOLatin1 F 1200 o f (\)) h R S 11719 -1159 M /Dutch801-Roman-DECmath_Extension F 1200 o f (X) h R S 12336 -999 M /Times-Roman-ISOLatin1 F 1000 o f (7) h R S 11832 -4208 M /Dutch801-Italic-DECmath_Italic F 1000 o f (x) h R S 12276 -4129 M /Times-Roman-ISOLatin1 F 1000 o f (=0) h R S 13452 -2751 M /Times-Roman-ISOLatin1 F 1200 o f ( ) h R S 13752 -1159 M /Dutch801-Roman-DECmath_Extension F 1200 o f (X) h R S 14369 -999 M /Times-Roman-ISOLatin1 F 1000 o f (7) h R S 13865 -4208 M /Dutch801-Italic-DECmath_Italic F 1000 o f (y) h R S 14309 -4129 M /Times-Roman-ISOLatin1 F 1000 o f (=0) h R S 15485 -2751 M /Times-Roman-ISOLatin1 F 1200 o f ( ) h R S 15785 -2733 M /Dutch801-Italic-DECmath_Italic F 1200 o f (f) h R S 16119 -2751 M /Times-Roman-ISOLatin1 F 1200 o f (\() h R S 16518 -2734 M /Dutch801-Italic-DECmath_Italic F 1200 o f (x) h R S 17051 -2751 M /Times-Roman-ISOLatin1 F 1200 o f (,) h R S 17529 -2733 M /Dutch801-Italic-DECmath_Italic F 1200 o f (y) h R S 18062 -2751 M /Times-Roman-ISOLatin1 F 1200 o f (\)) h R S 18817 -2752 M /Times-Roman-ISOLatin1 F 1200 o f (*) h R R R N S 4395 -8872 13213 3514 @ I N 4395 -5358 T N N S 0 -3514 13213 3514 @ I N 0 0 T N S 800 -2152 M /Dutch801-Italic-DECmath_Italic F 1200 o f (cos) h R S 2400 -2170 M /Times-Roman-ISOLatin1 F 1200 o f ( ) h R S 2700 -1492 M /Times-Roman-ISOLatin1 F 1000 o f (\(2) h R S 3533 -1571 M /Dutch801-Italic-DECmath_Italic F 1000 o f (x) h R S 3977 -1492 M /Times-Roman-ISOLatin1 F 1000 o f (+1\)) h R S 5374 -1571 M /Dutch801-Italic-DECmath_Italic F 1000 o f (u\271) h R S N 2700.00 -1885.00 M 6485.00 -1885.00 L S 49 w 0 c 0 j 2 i 0.00 G k R R S 4092 -2716 M /Times-Roman-ISOLatin1 F 1000 o f (16) h R S 6485 -2170 M /Times-Roman-ISOLatin1 F 1200 o f ( ) h R S 6785 -2152 M /Dutch801-Italic-DECmath_Italic F 1200 o f (cos) h R S 8384 -2170 M /Times-Roman-ISOLatin1 F 1200 o f ( ) h R S 8684 -1492 M /Times-Roman-ISOLatin1 F 1000 o f (\(2) h R S 9517 -1571 M /Dutch801-Italic-DECmath_Italic F 1000 o f (y) h R S 9961 -1492 M /Times-Roman-ISOLatin1 F 1000 o f (+1\)) h R S 11358 -1571 M /Dutch801-Italic-DECmath_Italic F 1000 o f (v\271) h R S N 8684.00 -1885.00 M 12413.00 -1885.00 L S 49 w 0 c 0 j 2 i 0.00 G k R R S 10049 -2716 M /Times-Roman-ISOLatin1 F 1000 o f (16) h R S 12215 -2349 M /Courier-ISOLatin1 F 2400 o f (]) h R R R S 21404 -7275 M /Times-Roman-ISOLatin1 F 1000 o f (\(1\)) h R R R S N S 31426 -46040 24026 13504 @ I N 31426 -32536 T N S 6588 -3007 M /Courier-ISOLatin1 F 2400 o f ([) h R N S 1158 -4898 19824 4926 @ I N 1158 28 T N N S 0 -4926 19824 4926 @ I N 0 0 T N S 800 -2732 M /Dutch801-Italic-DECmath_Italic F 1200 o f (f) h R S 1134 -2750 M /Times-Roman-ISOLatin1 F 1200 o f (\() h R S 1533 -2733 M /Dutch801-Italic-DECmath_Italic F 1200 o f (x) h R S 2066 -2750 M /Times-Roman-ISOLatin1 F 1200 o f (,) h R S 2544 -2732 M /Dutch801-Italic-DECmath_Italic F 1200 o f (y) h R S 3077 -2750 M /Times-Roman-ISOLatin1 F 1200 o f (\)) h R S 4010 -2750 M /Times-Roman-ISOLatin1 F 1200 o f (=) h R S 5221 -2154 M /Times-Roman-ISOLatin1 F 1000 o f (1) h R S N 5221.00 -2465.00 M 5721.00 -2465.00 L S 49 w 0 c 0 j 2 i 0.00 G k R R S 5221 -3291 M /Times-Roman-ISOLatin1 F 1000 o f (4) h R S 6621 -1158 M /Dutch801-Roman-DECmath_Extension F 1200 o f (X) h R S 7237 -997 M /Times-Roman-ISOLatin1 F 1000 o f (7) h R S 6705 -4207 M /Dutch801-Italic-DECmath_Italic F 1000 o f (u) h R S 7205 -4128 M /Times-Roman-ISOLatin1 F 1000 o f (=0) h R S 8353 -2750 M /Times-Roman-ISOLatin1 F 1200 o f ( ) h R S 8653 -1158 M /Dutch801-Roman-DECmath_Extension F 1200 o f (X) h R S 9270 -997 M /Times-Roman-ISOLatin1 F 1000 o f (7) h R S 8766 -4207 M /Dutch801-Italic-DECmath_Italic F 1000 o f (v) h R S 9210 -4128 M /Times-Roman-ISOLatin1 F 1000 o f (=0) h R S 10386 -2750 M /Times-Roman-ISOLatin1 F 1200 o f ( ) h R S 10686 -2733 M /Dutch801-Italic-DECmath_Italic F 1200 o f (C) h R S 11487 -2750 M /Times-Roman-ISOLatin1 F 1200 o f (\() h R S 11886 -2733 M /Dutch801-Italic-DECmath_Italic F 1200 o f (u) h R S 12486 -2750 M /Times-Roman-ISOLatin1 F 1200 o f (\)) h R S 12886 -2733 M /Dutch801-Italic-DECmath_Italic F 1200 o f (C) h R S 13686 -2750 M /Times-Roman-ISOLatin1 F 1200 o f (\() h R S 14086 -2732 M /Dutch801-Italic-DECmath_Italic F 1200 o f (v) h R S 14619 -2750 M /Times-Roman-ISOLatin1 F 1200 o f (\)) h R S 15018 -2732 M /Dutch801-Italic-DECmath_Italic F 1200 o f (F) h R S 15751 -2750 M /Times-Roman-ISOLatin1 F 1200 o f (\() h R S 16151 -2733 M /Dutch801-Italic-DECmath_Italic F 1200 o f (u) h R S 16751 -2750 M /Times-Roman-ISOLatin1 F 1200 o f (,) h R S 17229 -2732 M /Dutch801-Italic-DECmath_Italic F 1200 o f (v) h R S 17762 -2750 M /Times-Roman-ISOLatin1 F 1200 o f (\)) h R S 18504 -2820 M /Times-Roman-ISOLatin1 F 1200 o f (*) h R R R N S 4344 -8388 13213 3514 @ I N 4344 -4874 T N N S 0 -3514 13213 3514 @ I N 0 0 T N S 800 -2152 M /Dutch801-Italic-DECmath_Italic F 1200 o f (cos) h R S 2400 -2170 M /Times-Roman-ISOLatin1 F 1200 o f ( ) h R S 2700 -1492 M /Times-Roman-ISOLatin1 F 1000 o f (\(2) h R S 3533 -1571 M /Dutch801-Italic-DECmath_Italic F 1000 o f (x) h R S 3977 -1492 M /Times-Roman-ISOLatin1 F 1000 o f (+1\)) h R S 5374 -1571 M /Dutch801-Italic-DECmath_Italic F 1000 o f (u\271) h R S N 2700.00 -1885.00 M 6485.00 -1885.00 L S 49 w 0 c 0 j 2 i 0.00 G k R R S 4092 -2716 M /Times-Roman-ISOLatin1 F 1000 o f (16) h R S 6485 -2170 M /Times-Roman-ISOLatin1 F 1200 o f ( ) h R S 6785 -2152 M /Dutch801-Italic-DECmath_Italic F 1200 o f (cos) h R S 8384 -2170 M /Times-Roman-ISOLatin1 F 1200 o f ( ) h R S 8684 -1492 M /Times-Roman-ISOLatin1 F 1000 o f (\(2) h R S 9517 -1571 M /Dutch801-Italic-DECmath_Italic F 1000 o f (y) h R S 9961 -1492 M /Times-Roman-ISOLatin1 F 1000 o f (+1\)) h R S 11358 -1571 M /Dutch801-Italic-DECmath_Italic F 1000 o f (v\271) h R S N 8684.00 -1885.00 M 12413.00 -1885.00 L S 49 w 0 c 0 j 2 i 0.00 G k R R S 10049 -2716 M /Times-Roman-ISOLatin1 F 1000 o f (16) h R S 12358 -2295 M /Courier-ISOLatin1 F 2400 o f (]) h R R R S 22310 -7320 M /Times-Roman-ISOLatin1 F 1000 o f (\(2\)) h R S 1028 -10288 M /Times-Roman-ISOLatin1 F 1100 o f (where:) h R S 15506 -10288 M /Times-Roman-ISOLatin1 F 1000 o f (for) h R S 13014 -12923 M /Times-Roman-ISOLatin1 F 1200 o f ( otherwise.) h R N S 4116 -11330 18079 2884 @ I N 4116 -8446 T N N S 0 -2884 16066 2884 @ I N 0 0 T N S 800 -1799 M /Dutch801-Italic-DECmath_Italic F 1200 o f (C) h R S 1600 -1817 M /Times-Roman-ISOLatin1 F 1200 o f (\() h R S 2000 -1799 M /Dutch801-Italic-DECmath_Italic F 1200 o f (u) h R S 2600 -1817 M /Times-Roman-ISOLatin1 F 1200 o f (\),) h R S 3478 -1817 M /Times-Roman-ISOLatin1 F 1200 o f ( ) h R S 3778 -1799 M /Dutch801-Italic-DECmath_Italic F 1200 o f (C) h R S 4578 -1817 M /Times-Roman-ISOLatin1 F 1200 o f (\() h R S 4978 -1798 M /Dutch801-Italic-DECmath_Italic F 1200 o f (v) h R S 5510 -1817 M /Times-Roman-ISOLatin1 F 1200 o f (\)) h R S 6731 -1817 M /Times-Roman-ISOLatin1 F 1200 o f (=) h R S 8229 -1817 M /Times-Roman-ISOLatin1 F 1200 o f (1) h R S 8706 -1799 M /Dutch801-Italic-DECmath_Italic F 1200 o f (=) h R S N 10289.00 -829.00 M 10889.00 -829.00 L S 59 w 0 c 0 j 2 i 0.00 G k R R S 10289 -1817 M /Times-Roman-ISOLatin1 F 1200 o f (2) h R S 9182 -834 M /Dutch801-Roman-DECmath_Symbol F 1200 o f (p) h R S 7243 -1817 M /Times-Roman-ISOLatin1 F 1200 o f ( ) h R S 13118 -1703 M /Dutch801-Italic-DECmath_Italic F 1200 o f (u) h R S 13624 -1817 M /Times-Roman-ISOLatin1 F 1200 o f (,) h R R R N S 4383 -13932 8537 2624 @ I N 4383 -11308 T N N S -4122 -2624 13043 2624 @ I N -4122 0 T N S 4189 -1627 M /Times-Roman-ISOLatin1 F 1200 o f ( ) h R S 4789 -1609 M /Dutch801-Italic-DECmath_Italic F 1200 o f (C) h R S 5589 -1627 M /Times-Roman-ISOLatin1 F 1200 o f (\() h R S 5989 -1610 M /Dutch801-Italic-DECmath_Italic F 1200 o f (u) h R S 6589 -1627 M /Times-Roman-ISOLatin1 F 1200 o f (\),) h R S 7466 -1627 M /Times-Roman-ISOLatin1 F 1200 o f ( ) h R S 7766 -1609 M /Dutch801-Italic-DECmath_Italic F 1200 o f (C) h R S 8566 -1627 M /Times-Roman-ISOLatin1 F 1200 o f (\() h R S 8966 -1609 M /Dutch801-Italic-DECmath_Italic F 1200 o f (v) h R S 9499 -1627 M /Times-Roman-ISOLatin1 F 1200 o f (\)) h R S 10432 -1627 M /Times-Roman-ISOLatin1 F 1200 o f (=) h R S 11643 -1627 M /Times-Roman-ISOLatin1 F 1200 o f (1) h R R R S 18113 -10213 M /Dutch801-Italic-DECmath_Italic F 1200 o f (v) h R S 18989 -10231 M /Times-Roman-ISOLatin1 F 1200 o f (=) h R S 20581 -10423 M /Times-Roman-ISOLatin1 F 1200 o f ( ) h R S 20703 -10328 M /Times-Roman-ISOLatin1 F 1200 o f (;) h R S 20734 -10327 M /Times-Roman-ISOLatin1 F 1200 o f ( ) h R S 19903 -10231 M /Times-Roman-ISOLatin1 F 1200 o f (0) h R R R R S 30583 -75259 M /Times-Roman-ISOLatin1 F 1000 o f (3) h R showpage $P e %%Page: 4 4 /$P a D g N 0 79200 T S R S 6325 -37291 T N 0 G 300 -1050 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1000 o f 277.4 0 32 (typically vary slowly from point to point across an) W 300 -2150 M 166.3 0 32 (image, the FDCT processing step lays the foundation) W 300 -3250 M 129.5 0 32 (for achieving data compression by concentrating most) W 300 -4350 M 191.6 0 32 (of the signal in the lower spatial frequencies. For a) W 300 -5450 M 93.6 0 32 (typical 8x8 sample block from a typical source image,) W 300 -6550 M 125.4 0 32 (most of the spatial frequencies have zero or near\255zero) W 300 -7650 M (amplitude and need not be encoded.) h 300 -8750 M 300 -9850 M 79.9 0 32 (At the decoder the IDCT reverses this processing step. ) W 300 -10950 M 175.8 0 32 (It takes the 64 DCT coefficients \(which at that point) W 300 -12050 M 43.7 0 32 (have been quantized\) and reconstructs a 64\255point ouput) W 300 -13150 M 855.7 0 32 (image signal by summing the basis signals. ) W 300 -14250 M 254.3 0 32 (Mathematically, the DCT is one\255to\255one mapping for) W 300 -15350 M 107.3 0 32 (64\255point vectors between the image and the frequency) W 300 -16450 M 135.6 0 32 (domains. If the FDCT and IDCT could be computed) W 300 -17550 M 56.0 0 32 (with perfect accuracy and if the DCT coefficients were) W 300 -18650 M 412.3 0 32 (not quantized as in the following description, the) W 300 -19750 M 59.0 0 32 (original 64\255point signal could be exactly recovered. In) W 300 -20850 M 260.1 0 32 (principle, the DCT introduces no loss to the source) W 300 -21950 M 83.0 0 32 (image samples; it merely transforms them to a domain) W 300 -23050 M (in which they can be more efficiently encoded. ) h 300 -24150 M 300 -25250 M 675.7 0 32 (Some properties of practical FDCT and IDCT) W 300 -26350 M 462.7 0 32 (implementations raise the issue of what precisely) W 300 -27450 M 579.6 0 32 (should be required by the JPEG standard. A) W 300 -28550 M 368.7 0 32 (fundamental property is that the FDCT and IDCT) W 300 -29650 M 1721.7 0 32 (equations contain transcendental functions. ) W 300 -30750 M 922.8 0 32 (Consequently, no physical implementation can) W 300 -31850 M 156.5 0 32 (compute them with perfect accuracy. Because of the) W 300 -32950 M 231.0 0 32 (DCT's application importance and its relationship to) W 300 -34050 M 388.6 0 32 (the DFT, many different algorithms by which the) W -6325 37291 T R S 31919 -37291 T N 0 G 300 -1050 M /Times-Roman-ISOLatin1 F 1000 o f 11.7 0 32 (FDCT and IDCT may be approximately computed have) W 300 -2150 M 382.1 0 32 (been devised [16]. Indeed, research in fast DCT) W 300 -3250 M 439.7 0 32 (algorithms is ongoing and no single algorithm is) W 300 -4350 M 204.3 0 32 (optimal for all implementations. What is optimal in) W 300 -5450 M 166.6 0 32 (software for a general\255purpose CPU is unlikely to be) W 300 -6550 M 194.3 0 32 (optimal in firmware for a programmable DSP and is) W 300 -7650 M (certain to be suboptimal for dedicated VLSI.) h 300 -8750 M 300 -9850 M 94.1 0 32 (Even in light of the finite precision of the DCT inputs) W 300 -10950 M 228.3 0 32 (and outputs, independently designed implementations) W 300 -12050 M 3.0 0 32 (of the very same FDCT or IDCT algorithm which differ) W 300 -13150 M 62.4 0 32 (even minutely in the precision by which they represent) W 300 -14250 M 55.4 0 32 (cosine terms or intermediate results, or in the way they) W 300 -15350 M 522.8 0 32 (sum and round fractional values, will eventually) W 300 -16450 M (produce slightly different outputs from identical inputs.) h 300 -17550 M 300 -18650 M 101.8 0 32 (To preserve freedom for innovation and customization) W 300 -19750 M 235.5 0 32 (within implementations, JPEG has chosen to specify) W 300 -20850 M 215.0 0 32 (neither a unique FDCT algorithm or a unique IDCT) W 300 -21950 M 491.6 0 32 (algorithm in its proposed standard. This makes) W 300 -23050 M 610.8 0 32 (compliance somewhat more difficult to confirm,) W 300 -24150 M 783.6 0 32 (because two compliant encoders \(or decoders\)) W 300 -25250 M 425.5 0 32 (generally will not produce identical outputs given) W 300 -26350 M 135.0 0 32 (identical inputs. The JPEG standard will address this) W 300 -27450 M 330.2 0 32 (issue by specifying an accuracy test as part of its) W 300 -28550 M 463.0 0 32 (compliance tests for all DCT\255based encoders and) W 300 -29650 M 202.4 0 32 (decoders; this is to ensure against crudely inaccurate) W 300 -30750 M 351.7 0 32 (cosine basis functions which would degrade image) W 300 -31850 M (quality.) h 300 -32950 M -31919 37291 T R S 6807 -5369 T N S 0 -31926 48224 31926 @ R 0 G 300 -1050 M 300 -32454 M S 0 -31926 48224 31926 @ R -6807 5369 T S N S 7334 -36777 47169 30008 @ I N 7334 -6769 T N S 4831 -1639 M /Times-Roman-ISOLatin1 F 952 o f ( ) h n 1.050 o f (8x8 blocks) h n 0.920 o f ( ) h n 1.087 o f (DCT\255Based Encoder) h R S 12324 -4884 M /Times-Roman-ISOLatin1 F 953 o f (FDCT Quantizer) h R S 26405 -4469 M /Times-Roman-ISOLatin1 F 952 o f ( Entropy) h R S 26238 -5384 M /Times-Roman-ISOLatin1 F 953 o f ( Encoder) h R S 4449 -9800 M /Times-Roman-ISOLatin1 F 952 o f ( Source Table Table Compressed) h R S 5855 -3376 M /Symbol F 956 o f (\267) h R S 26371 -10785 M /Times-Roman-ISOLatin1 F 952 o f (Specifications Image Data) h R S 4285 -7317 4498 4499 @ S 75 w 0 c 0 j 2 i 0.00 G k R R S N 5855.00 -2848.00 M 5855.00 -5679.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 7394.00 -3392.00 M 4309.00 -3392.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 7394.00 -3854.00 M 4309.00 -3854.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 7394.00 -4827.00 M 4309.00 -4827.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 6370.00 -2848.00 M 6370.00 -5679.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 5338.00 -2848.00 M 5338.00 -5679.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 4824.00 -2848.00 M 4824.00 -5679.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S 18156 -6304 5249 3497 @ S 75 w 0 c 0 j 2 i 0.00 G k R R S 25572 -6304 5248 3497 @ S 75 w 0 c 0 j 2 i 0.00 G k R R S 10909 -6304 5249 3497 @ S 75 w 0 c 0 j 2 i 0.00 G k R R S N 16116.00 -4556.00 M 18078.00 -4556.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 17594.00 -4810.00 M 18137.00 -4556.00 L 17594.00 -4303.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 23531.00 -4640.00 M 25494.00 -4640.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 25010.00 -4894.00 M 25553.00 -4640.00 L 25010.00 -4387.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S 9866 -7803 22162 5746 @ S 300 w 0 c 0 j 0.875 G k R R S 17928 -10786 M /Times-Roman-ISOLatin1 F 953 o f ( Specifications) h R S 33028 -5389 7722 1583 @ S 50 w 0 c 0 j 2 i 0.00 G k R R S 4730 -10756 M /Times-Roman-ISOLatin1 F 952 o f (Image Data) h R S N 20737.00 -8888.00 M 20737.00 -6505.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 20991.00 -6990.00 M 20737.00 -6446.00 L 20484.00 -6990.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 28486.00 -8960.00 M 28486.00 -6422.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 28740.00 -6907.00 M 28486.00 -6363.00 L 28233.00 -6907.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 8784.00 -4472.00 M 10749.00 -4472.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 10265.00 -4726.00 M 10808.00 -4472.00 L 10265.00 -4219.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 30777.00 -4640.00 M 32977.00 -4640.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 32493.00 -4894.00 M 33036.00 -4640.00 L 32493.00 -4387.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 7394.00 -4368.00 M 4309.00 -4368.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 6145.00 -3100.00 M 7453.00 -1795.00 L S 0.00 G E R S 50 w 0 c 0 j 2 i 0.00 G k R R S 25538 -11119 6457 2163 @ S 50 w 0 c 0 j 2 i 0.00 G k R R S 17583 -11119 6457 2163 @ S 50 w 0 c 0 j 2 i 0.00 G k R R S N 19655.00 -19554.00 M 21722.00 -19554.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 21238.00 -19808.00 M 21781.00 -19554.00 L 21238.00 -19301.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S 21912 -21471 5099 3358 @ S 75 w 0 c 0 j 2 i 0.00 G k R R S 14549 -21470 5098 3358 @ S 75 w 0 c 0 j 2 i 0.00 G k R R S 29357 -21470 5099 3357 @ S 75 w 0 c 0 j 2 i 0.00 G k R R S 12673 -23102 22880 5954 @ S 400 w 0 c 0 j 0.875 G k R R S 15119 -19684 M /Times-Roman-ISOLatin1 F 952 o f ( Entropy) h R S 14875 -20720 M /Times-Roman-ISOLatin1 F 953 o f ( Decoder) h R S 21926 -20023 M /Times-Roman-ISOLatin1 F 952 o f ( Dequantizer IDCT) h R S 20991 -16674 M /Times-Roman-ISOLatin1 F 952 o f (DCT\255Based Decoder) h R S 4785 -20333 7049 1519 @ S 50 w 0 c 0 j 2 i 0.00 G k R R S N 27100.00 -19633.00 M 29169.00 -19633.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 28685.00 -19887.00 M 29228.00 -19633.00 L 28685.00 -19380.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 17599.00 -23877.00 M 17599.00 -21524.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 17852.00 -22009.00 M 17598.00 -21465.00 L 17345.00 -22009.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 12008.00 -19628.00 M 14553.00 -19628.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 14069.00 -19881.00 M 14612.00 -19627.00 L 14068.00 -19374.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S 14441 -24997 M /Times-Roman-ISOLatin1 F 952 o f ( Table Table) h R S 13811 -25878 M /Times-Roman-ISOLatin1 F 952 o f ( Specifications Specifications) h R S 6162 -24918 M /Times-Roman-ISOLatin1 F 953 o f (Compressed) h R S 6322 -25958 M /Times-Roman-ISOLatin1 F 953 o f (Image Data) h R S 35576 -25075 M /Times-Roman-ISOLatin1 F 952 o f ( Reconstructed) h R S 36284 -25957 M /Times-Roman-ISOLatin1 F 952 o f ( Image Data) h R S 36972 -22062 4448 4448 @ S 75 w 0 c 0 j 2 i 0.00 G k R R S N 38525.00 -17644.00 M 38525.00 -20445.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 40045.00 -18105.00 M 36996.00 -18105.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 40045.00 -18615.00 M 36996.00 -18615.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 40045.00 -19554.00 M 36996.00 -19554.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 39033.00 -17644.00 M 39033.00 -20445.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 38015.00 -17644.00 M 38015.00 -20445.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 37506.00 -17644.00 M 37506.00 -20445.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 40045.00 -19021.00 M 36996.00 -19021.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 25797.00 -23877.00 M 25797.00 -21524.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 26050.00 -22009.00 M 25796.00 -21465.00 L 25543.00 -22009.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 34472.00 -19706.00 M 36858.00 -19706.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 36374.00 -19959.00 M 36917.00 -19705.00 L 36373.00 -19452.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 13486.00 -19678.00 M 13486.00 -22359.00 L 24363.00 -22359.00 L 24363.00 -23817.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 24110.00 -23333.00 M 24363.00 -23876.00 L 24617.00 -23333.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 16007.00 -22358.00 M 16007.00 -23817.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 15754.00 -23333.00 M 16007.00 -23876.00 L 16261.00 -23333.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S 22435 -26281 6457 2323 @ S 50 w 0 c 0 j 2 i 0.00 G k R R S 13621 -26281 6455 2323 @ S 50 w 0 c 0 j 2 i 0.00 G k R R S 13684 -13555 M /Times-Roman-ISOLatin1 F 1000 o f (Figure 1. DCT\255Based Encoder Processing Steps) h R S 15889 -28638 M /Times-Roman-ISOLatin1 F 1000 o f (Figure 2. DCT\255Based Decoder Processing Steps) h R R R R S 30679 -75354 M /Times-Roman-ISOLatin1 F 1000 o f (4) h R showpage $P e %%Page: 5 5 /$P a D g N 0 79200 T S R S 6312 -7174 T N 0 G 300 -1050 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1000 o f 325.3 0 32 (For each DCT\255based mode of operation, the JPEG) W 300 -2150 M 12.0 0 32 (proposal specifies separate codecs for images with 8\255bit) W 300 -3250 M 17.4 0 32 (and 12\255bit \(per component\) source image samples. The) W 300 -4350 M 71.6 0 32 (12\255bit codecs, needed to accommodate certain types of) W 300 -5450 M 1166.8 0 32 (medical and other images, require greater) W 300 -6550 M 83.3 0 32 (computational resources to achieve the required FDCT) W 300 -7650 M 595.3 0 32 (or IDCT accuracy. Images with other sample) W 300 -8750 M 162.7 0 32 (precisions can usually be accommodated by either an) W 300 -9850 M 58.0 0 32 (8\255bit or 12\255bit codec, but this must be done outside the) W 300 -10950 M 534.4 0 32 (JPEG standard. For example, it would be the) W 300 -12050 M 101.6 0 32 (responsibility of an application to decide how to fit or) W 300 -13150 M 402.5 0 32 (pad a 6\255bit sample into the 8\255bit encoder's input) W 300 -14250 M 46.3 0 32 (interface, how to unpack it at the decoder's output, and) W 300 -15350 M (how to encode any necessary related information.) h 300 -16450 M 300 -17550 M /Times-Bold-ISOLatin1 $ /Times-Bold & P /Times-Bold-ISOLatin1 F 1000 o f (4.2 Quantization) h 300 -19250 M /Times-Roman-ISOLatin1 F 1000 o f 296.1 0 32 (After output from the FDCT, each of the 64 DCT) W 300 -20350 M 73.7 0 32 (coefficients is uniformly quantized in conjunction with) W 300 -21450 M 495.2 0 32 (a 64\255element Quantization Table, which must be) W 300 -22550 M 66.6 0 32 (specified by the application \(or user\) as an input to the) W 300 -23650 M 19.7 0 32 (encoder. Each element can be any integer value from 1) W 300 -24750 M 13.9 0 32 (to 255, which specifies the step size of the quantizer for) W 300 -25850 M 277.7 0 32 (its corresponding DCT coefficient. The purpose of) W 300 -26950 M 453.5 0 32 (quantization is to achieve further compression by) W 300 -28050 M 18.7 0 32 (representing DCT coefficients with no greater precision) W 300 -29150 M 93.8 0 32 (than is necessary to achieve the desired image quality. ) W 300 -30250 M 110.9 0 32 (Stated another way, the goal of this processing step is) W 300 -31350 M 39.1 0 32 (to discard information which is not visually significant.) W 300 -32450 M 125.0 0 32 (Quantization is a many\255to\255one mapping, and therefore) W 300 -33550 M 215.8 0 32 (is fundamentally lossy. It is the principal source of) W 300 -34650 M (lossiness in DCT\255based encoders.) h 300 -35750 M 300 -36850 M 448.1 0 32 (Quantization is defined as division of each DCT) W 300 -37950 M 310.2 0 32 (coefficient by its corresponding quantizer step size,) W 300 -39050 M (followed by rounding to the nearest integer:) h 300 -40150 M -6312 7174 T S N S 6806 -52373 22051 4699 @ I N 6806 -47674 T N N S 1946 -4021 18495 3678 @ I N 1946 -343 T N N S 0 -3199 18495 3199 @ I N 0 0 T N S 800 -2152 M /Dutch801-Italic-DECmath_Italic F 1200 o f (F) h R S 1533 -1492 M /Dutch801-Italic-DECmath_Italic F 800 o f (Q) h R S 2111 -2170 M /Times-Roman-ISOLatin1 F 1200 o f (\() h R S 2510 -2152 M /Dutch801-Italic-DECmath_Italic F 1200 o f (u) h R S 3110 -2170 M /Times-Roman-ISOLatin1 F 1200 o f (,) h R S 3588 -2151 M /Dutch801-Italic-DECmath_Italic F 1200 o f (v) h R S 4121 -2170 M /Times-Roman-ISOLatin1 F 1200 o f (\)) h R S 4521 -2170 M /Times-Roman-ISOLatin1 F 1200 o f ( ) h R S 5354 -2170 M /Times-Roman-ISOLatin1 F 1200 o f (=) h R S 6565 -2170 M /Times-Roman-ISOLatin1 F 1200 o f ( ) h R S 6865 -2152 M /Dutch801-Italic-DECmath_Italic F 1200 o f (Integer) h R S 10331 -2170 M /Times-Roman-ISOLatin1 F 1200 o f ( ) h R S 10631 -2152 M /Dutch801-Italic-DECmath_Italic F 1200 o f (Round) h R S 13764 -2170 M /Times-Roman-ISOLatin1 F 1200 o f ( ) h R S 14064 -2170 M /Times-Roman-ISOLatin1 F 1200 o f (\() h R S 14519 -1492 M /Times-Roman-ISOLatin1 F 1000 o f ( ) h R S 14769 -1571 M /Dutch801-Italic-DECmath_Italic F 1000 o f (F) h R S 15380 -1492 M /Times-Roman-ISOLatin1 F 1000 o f (\() h R S 15713 -1571 M /Dutch801-Italic-DECmath_Italic F 1000 o f (u) h R S 16213 -1492 M /Times-Roman-ISOLatin1 F 1000 o f (,) h R S 16463 -1571 M /Dutch801-Italic-DECmath_Italic F 1000 o f (v) h R S 16907 -1492 M /Times-Roman-ISOLatin1 F 1000 o f (\)) h R S 14463 -2789 M /Dutch801-Italic-DECmath_Italic F 1000 o f (Q) h R S 15185 -2710 M /Times-Roman-ISOLatin1 F 1000 o f (\() h R S 15518 -2789 M /Dutch801-Italic-DECmath_Italic F 1000 o f (u) h R S 16018 -2710 M /Times-Roman-ISOLatin1 F 1000 o f (,) h R S 16268 -2789 M /Dutch801-Italic-DECmath_Italic F 1000 o f (v) h R S 16712 -2710 M /Times-Roman-ISOLatin1 F 1000 o f (\)) h R S N 14463.00 -1885.00 M 17295.00 -1885.00 L S 49 w 0 c 0 j 2 i 0.00 G k R R S 17045 -2710 M /Times-Roman-ISOLatin1 F 1000 o f ( ) h R S 17295 -2170 M /Times-Roman-ISOLatin1 F 1200 o f (\)) h R R R S 20876 -2965 M /Times-Roman-ISOLatin1 F 1000 o f (\(3\)) h R R R R S 31919 -7170 T N 0 G 300 -1050 M /Times-Roman-ISOLatin1 F 1000 o f 152.5 0 32 (This output value is normalized by the quantizer step) W 300 -2150 M 117.9 0 32 (size. Dequantization is the inverse function, which in) W 300 -3250 M 471.7 0 32 (this case means simply that the normalization is) W 300 -4350 M 51.8 0 32 (removed by multiplying by the step size, which returns) W 300 -5450 M 9.2 0 32 (the result to a representation appropriate for input to the) W 300 -6550 M (IDCT:) h 300 -11965 M /Times-Roman-ISOLatin1 F 1000 o f 205.4 0 32 (When the aim is to compress the image as much as) W 300 -13065 M 71.1 0 32 (possible without visible artifacts, each step size ideally) W 300 -14165 M 173.5 0 32 (should be chosen as the perceptual threshold or ) W 173.5 0 32 (\026) W 173.5 0 32 (just) W 300 -15265 M 91.3 0 32 (noticeable difference) W 91.3 0 32 (\027) W 91.3 0 32 ( for the visual contribution of its) W 300 -16365 M 97.0 0 32 (corresponding cosine basis function. These thresholds) W 300 -17465 M 151.0 0 32 (are also functions of the source image characteristics,) W 300 -18565 M 458.2 0 32 (display characteristics and viewing distance. For) W 300 -19665 M 43.7 0 32 (applications in which these variables can be reasonably) W 300 -20765 M 755.4 0 32 (well defined, psychovisual experiments can be) W 300 -21865 M 428.4 0 32 (performed to determine the best thresholds. The) W 300 -22965 M 410.4 0 32 (experiment described in [12] has led to a set of) W 300 -24065 M 388.7 0 32 (Quantization Tables for CCIR\255601 [4] images and) W 300 -25165 M 309.4 0 32 (displays. These have been used experimentally by) W 300 -26265 M 5.5 0 32 (JPEG members and will appear in the ISO standard as a) W 300 -27365 M (matter of information, but not as a requirement.) h 300 -28465 M 300 -29565 M /Times-Bold-ISOLatin1 F 1000 o f (4.3 DC Coding and Zig\255Zag Sequence) h 300 -31265 M /Times-Roman-ISOLatin1 F 1000 o f 560.2 0 32 (After quantization, the DC coefficient is treated) W 300 -32365 M 371.5 0 32 (separately from the 63 AC coefficients. The DC) W 300 -33465 M 83.6 0 32 (coefficient is a measure of the average value of the 64) W 300 -34565 M 483.9 0 32 (image samples. Because there is usually strong) W 300 -35665 M 12.1 0 32 (correlation between the DC coefficients of adjacent 8x8) W 300 -36765 M 93.8 0 32 (blocks, the quantized DC coefficient is encoded as the) W 300 -37865 M 138.9 0 32 (difference from the DC term of the previous block in) W 300 -38965 M 24.3 0 32 (the encoding order \(defined in the following\), as shown) W 300 -40065 M 157.1 0 32 (in Figure 3. This special treatment is worthwhile, as) W 300 -41165 M 9.3 0 32 (DC coefficients frequently contain a significant fraction) W 300 -42265 M (of the total image energy.) h 300 -43365 M -31919 7170 T S N S 32270 -18385 22338 4315 @ I N 32270 -14070 T N N S 3092 -3422 16296 3021 @ I N 3092 -401 T N N S 0 -3021 16296 3021 @ I N 0 0 T N S 800 -1999 M /Dutch801-Italic-DECmath_Italic F 1200 o f (F) h R S 1533 -1339 M /Dutch801-Italic-DECmath_Italic F 800 o f (Q) h R S 2236 -1250 M /Dutch801-Roman-DECmath_Symbol F 695 o f (0) h R S 2333 -2017 M /Times-Roman-ISOLatin1 F 1200 o f (\() h R S 2733 -1999 M /Dutch801-Italic-DECmath_Italic F 1200 o f (u) h R S 3333 -2016 M /Times-Roman-ISOLatin1 F 1200 o f (,) h R S 3811 -1998 M /Dutch801-Italic-DECmath_Italic F 1200 o f (v) h R S 4344 -2016 M /Times-Roman-ISOLatin1 F 1200 o f (\)) h R S 4743 -2017 M /Times-Roman-ISOLatin1 F 1200 o f ( ) h R S 5577 -2017 M /Times-Roman-ISOLatin1 F 1200 o f (=) h R S 6787 -1999 M /Dutch801-Italic-DECmath_Italic F 1200 o f (F) h R S 7521 -1339 M /Dutch801-Italic-DECmath_Italic F 800 o f (Q) h R S 8098 -2016 M /Times-Roman-ISOLatin1 F 1200 o f (\() h R S 8498 -1999 M /Dutch801-Italic-DECmath_Italic F 1200 o f (u) h R S 9098 -2016 M /Times-Roman-ISOLatin1 F 1200 o f (,) h R S 9576 -1998 M /Dutch801-Italic-DECmath_Italic F 1200 o f (v) h R S 10108 -2016 M /Times-Roman-ISOLatin1 F 1200 o f (\)) h R S 12219 -1999 M /Dutch801-Italic-DECmath_Italic F 1200 o f (Q) h R S 13086 -2016 M /Times-Roman-ISOLatin1 F 1200 o f (\() h R S 13485 -1999 M /Dutch801-Italic-DECmath_Italic F 1200 o f (u) h R S 14085 -2016 M /Times-Roman-ISOLatin1 F 1200 o f (,) h R S 14563 -1998 M /Dutch801-Italic-DECmath_Italic F 1200 o f (v) h R S 15096 -2016 M /Times-Roman-ISOLatin1 F 1200 o f (\)) h R S 11136 -2333 M /Times-Roman-ISOLatin1 F 1000 o f (*) h R R R S 20916 -2456 M /Times-Roman-ISOLatin1 F 1000 o f (\(4\)) h R R R R S 6328 -51770 T N S 0 -19270 48703 19270 @ R 0 G 300 -1050 M 300 -18936 M S 0 -19270 48703 19270 @ R -6328 51770 T S N S 6759 -69660 47840 16490 @ I N 6759 -53170 T N S N 24946.00 -873.00 M 26265.00 -2033.00 L S 40 w 0 c 0 j 2 i 0.00 G k R R S N 25725.00 -1896.00 M 26301.00 -2065.00 L 26060.00 -1516.00 L S 40 w 0 c 0 j 2 i 0.00 G k R R S N 38584.00 -11977.00 M 37539.00 -11120.00 L S 40 w 0 c 0 j 2 i 0.00 G k R R S N 38083.00 -11238.00 M 37502.00 -11089.00 L 37761.00 -11630.00 L S 40 w 0 c 0 j 2 i 0.00 G k R R S N 27031.00 -874.00 M 28353.00 -2033.00 L S 40 w 0 c 0 j 2 i 0.00 G k R R S N 27813.00 -1897.00 M 28389.00 -2065.00 L 28147.00 -1516.00 L S 40 w 0 c 0 j 2 i 0.00 G k R R S 18189 -6843 M /Times-Roman-ISOLatin1 F 974 o f (. . .) h R S 9345 -10125 M /Times-Roman-ISOLatin1 F 973 o f (DIFF) h 0.0 -436.0 m ( ) h 0 436.0 m (= DC) h n 0.801 o f 0.0 -349.0 m (i) h 0 349.0 m n 1.249 o f 0.0 -436.0 m ( ) h 0 436.0 m (\255 DC) h n 0.801 o f 0.0 -349.0 m (i\2551) h 0 349.0 m R S 10936 -3013 M /Times-Roman-ISOLatin1 F 973 o f ( DC) h n 0.801 o f 0.0 -349.0 m (i\2551) h 0 349.0 m n 1.249 o f ( DC) h n 0.801 o f 0.0 -349.0 m (i) h 0 349.0 m R S N 11470.00 -3233.00 M 10035.00 -4378.00 L S 0.00 G E R S 40 w 0 c 0 j 2 i 0.00 G k R R S N 10264.00 -3871.00 M 9997.00 -4408.00 L 10580.00 -4267.00 L S 40 w 0 c 0 j 2 i 0.00 G k R R S N 16221.00 -3158.00 M 14612.00 -4168.00 L S 0.00 G E R S 40 w 0 c 0 j 2 i 0.00 G k R R S N 14897.00 -3690.00 M 14571.00 -4193.00 L 15166.00 -4119.00 L S 40 w 0 c 0 j 2 i 0.00 G k R R S 26789 -2756 M /Symbol F 973 o f (\267) h R S 28180 -2673 M /Symbol F 975 o f (\267) h R S 29672 -2673 M /Symbol F 973 o f (\267) h R S 31162 -2673 M /Symbol F 973 o f (\267) h R S 32652 -2673 M /Symbol F 975 o f (\267) h R S 34241 -2673 M /Symbol F 975 o f (\267) h R S 35533 -2673 M /Symbol F 975 o f (\267) h R S 37024 -2673 M /Symbol F 975 o f (\267) h R S 26789 -3895 M /Symbol F 973 o f (\267) h R S 28281 -3895 M /Symbol F 973 o f (\267) h R S 29672 -3895 M /Symbol F 973 o f (\267) h R S 31162 -3895 M /Symbol F 973 o f (\267) h R S 32652 -3895 M /Symbol F 975 o f (\267) h R S 34241 -3895 M /Symbol F 975 o f (\267) h R S 35533 -3895 M /Symbol F 975 o f (\267) h R S 37024 -3895 M /Symbol F 975 o f (\267) h R S 26789 -5036 M /Symbol F 973 o f (\267) h R S 28281 -5036 M /Symbol F 973 o f (\267) h R S 29672 -5036 M /Symbol F 973 o f (\267) h R S 31162 -5036 M /Symbol F 973 o f (\267) h R S 32652 -5036 M /Symbol F 975 o f (\267) h R S 34241 -5036 M /Symbol F 975 o f (\267) h R S 35533 -5036 M /Symbol F 975 o f (\267) h R S 37024 -5036 M /Symbol F 975 o f (\267) h R S 26789 -6178 M /Symbol F 973 o f (\267) h R S 28281 -6178 M /Symbol F 973 o f (\267) h R S 29672 -6178 M /Symbol F 973 o f (\267) h R S 31162 -6178 M /Symbol F 973 o f (\267) h R S 32652 -6178 M /Symbol F 975 o f (\267) h R S 34241 -6178 M /Symbol F 975 o f (\267) h R S 35533 -6178 M /Symbol F 975 o f (\267) h R S 37024 -6178 M /Symbol F 975 o f (\267) h R S 26789 -7483 M /Symbol F 973 o f (\267) h R S 28281 -7483 M /Symbol F 973 o f (\267) h R S 29672 -7483 M /Symbol F 973 o f (\267) h R S 31162 -7483 M /Symbol F 973 o f (\267) h R S 32652 -7483 M /Symbol F 975 o f (\267) h R S 34241 -7483 M /Symbol F 975 o f (\267) h R S 35533 -7483 M /Symbol F 975 o f (\267) h R S 37024 -7483 M /Symbol F 975 o f (\267) h R S 26789 -8703 M /Symbol F 973 o f (\267) h R S 28281 -8703 M /Symbol F 973 o f (\267) h R S 29672 -8703 M /Symbol F 973 o f (\267) h R S 31162 -8703 M /Symbol F 973 o f (\267) h R S 32652 -8703 M /Symbol F 975 o f (\267) h R S 34241 -8703 M /Symbol F 975 o f (\267) h R S 35632 -8624 M /Symbol F 975 o f (\267) h R S 37024 -8703 M /Symbol F 975 o f (\267) h R S 26789 -9845 M /Symbol F 973 o f (\267) h R S 28281 -9845 M /Symbol F 973 o f (\267) h R S 29672 -9845 M /Symbol F 973 o f (\267) h R S 31162 -9845 M /Symbol F 973 o f (\267) h R S 32652 -9845 M /Symbol F 975 o f (\267) h R S 34241 -9845 M /Symbol F 975 o f (\267) h R S 35533 -9845 M /Symbol F 975 o f (\267) h R S 37024 -9845 M /Symbol F 975 o f (\267) h R S 26789 -11069 M /Symbol F 973 o f (\267) h R S 28281 -11069 M /Symbol F 973 o f (\267) h R S 29672 -11069 M /Symbol F 973 o f (\267) h R S 31162 -11069 M /Symbol F 973 o f (\267) h R S 32652 -11069 M /Symbol F 975 o f (\267) h R S 34241 -11069 M /Symbol F 975 o f (\267) h R S 35533 -11069 M /Symbol F 975 o f (\267) h R S 37024 -11069 M /Symbol F 975 o f (\267) h R S 9641 -7946 3957 3243 @ S 50 w 0 c 0 j 2 i 0.00 G k R R S 9668 -5108 465 380 @ S 0.00 G E R S 50 w 0 c 0 j 2 i 0.00 G k R R S 8783 -14166 M /Times-Roman-ISOLatin1 F 1000 o f (Differential DC encoding) h ( ) h (Zig-zag sequence) h R S 9891 -6682 M /Times-Roman-ISOLatin1 F 973 o f (block) h n 0.801 o f 0.0 -349.0 m (i\2551) h 0 349.0 m R S 13963 -6683 M /Times-Roman-ISOLatin1 F 973 o f (block) h n 0.801 o f 0.0 -349.0 m (i) h 0 349.0 m R S 7064 -6843 M /Times-Roman-ISOLatin1 F 974 o f (. . .) h R S N 28400.00 -2444.00 M 27055.00 -3545.00 L 27055.00 -4726.00 L 29918.00 -2378.00 L 31279.00 -2378.00 L 27043.00 -5851.00 L 27043.00 -7171.00 L 32894.00 -2371.00 L 34260.00 -2371.00 L 27010.00 -8316.00 L 27010.00 -9535.00 L 35709.00 -2398.00 L 37151.00 -2398.00 L 26927.00 -10781.00 L 28401.00 -10781.00 L 37212.00 -3555.00 L 37212.00 -4808.00 L 29924.00 -10783.00 L 31282.00 -10783.00 L 37271.00 -5871.00 L 37271.00 -7171.00 L 32878.00 -10769.00 L 34260.00 -10769.00 L 37202.00 -8356.00 L 37202.00 -9535.00 L 35679.00 -10781.00 L 37242.00 -10781.00 L S 40 w 0 c 0 j 2 i 0.00 G k R R S N 34565.00 -9916.00 M 35359.00 -9916.00 L 35359.00 -10488.00 L S 40 w 0 c 0 j 2 i 0.00 G k R R S N 28584.00 -2829.00 M 29377.00 -2829.00 L 29377.00 -3400.00 L S 40 w 0 c 0 j 2 i 0.00 G k R R S N 36352.00 -9592.00 M 36352.00 -10161.00 L 37047.00 -10161.00 L S 40 w 0 c 0 j 2 i 0.00 G k R R S N 27590.00 -2584.00 M 27590.00 -3154.00 L 28286.00 -3154.00 L S 40 w 0 c 0 j 2 i 0.00 G k R R S 24000 -783 M /Times-Roman-ISOLatin1 F 973 o f (DC AC) h n 0.801 o f 0.0 -349.0 m (01) h 0 349.0 m R S 38456 -12854 M /Times-Roman-ISOLatin1 F 974 o f (AC) h n 0.800 o f 0.0 -349.0 m (77) h 0 349.0 m R S N 26839.00 -2400.00 M 28111.00 -2400.00 L S 0.00 G E R S 75 w 0 c 0 j 2 i 0.00 G k R R S N 27656.00 -2654.00 M 28200.00 -2400.00 L 27656.00 -2147.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S 35577 -834 M /Times-Roman-ISOLatin1 F 974 o f ( AC) h n 0.800 o f 0.0 -349.0 m (07) h 0 349.0 m R S N 38222.00 -1303.00 M 37504.00 -2055.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 37635.00 -1551.00 M 37442.00 -2119.00 L 38001.00 -1901.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S 24060 -12907 M /Times-Roman-ISOLatin1 F 974 o f (AC) h n 0.800 o f 0.0 -349.0 m (70) h 0 349.0 m R S N 25766.00 -12186.00 M 26645.00 -11189.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 26534.00 -11698.00 M 26704.00 -11123.00 L 26154.00 -11363.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S 13603 -7946 3956 3243 @ S 50 w 0 c 0 j 2 i 0.00 G k R R S 13630 -5108 463 380 @ S 0.00 G E R S 50 w 0 c 0 j 2 i 0.00 G k R R S 11935 -16293 M /Times-Roman-ISOLatin1 F 1000 o f (Figure 3. Preparation of Quantized Coefficients for Entropy Coding) h R R R R S 30583 -75546 M /Times-Roman-ISOLatin1 F 1000 o f (5) h R showpage $P e %%Page: 6 6 /$P a D g N 0 79200 T S R S 6320 -7197 T N 0 G 300 -1050 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1000 o f 246.1 0 32 (Finally, all of the quantized coefficients are ordered) W 300 -2150 M 194.4 0 32 (into the ) W 194.4 0 32 (\026) W 194.4 0 32 (zig\255zag) W 194.4 0 32 (\027) W 194.4 0 32 ( sequence, also shown in Figure 3. ) W 300 -3250 M 337.0 0 32 (This ordering helps to facilitate entropy coding by) W 300 -4350 M 339.4 0 32 (placing low\255frequency coefficients \(which are more) W 300 -5450 M 994.6 0 32 (likely to be nonzero\) before high\255frequency) W 300 -6550 M (coefficients.) h 300 -7650 M 300 -8750 M /Times-Bold-ISOLatin1 $ /Times-Bold & P /Times-Bold-ISOLatin1 F 1000 o f (4.4 Entropy Coding) h 300 -10450 M /Times-Roman-ISOLatin1 F 1000 o f 537.0 0 32 (The final DCT\255based encoder processing step is) W 300 -11550 M 680.2 0 32 (entropy coding. This step achieves additional) W 300 -12650 M 45.8 0 32 (compression losslessly by encoding the quantized DCT) W 300 -13750 M 194.3 0 32 (coefficients more compactly based on their statistical) W 300 -14850 M 449.0 0 32 (characteristics. The JPEG proposal specifies two) W 300 -15950 M 321.3 0 32 (entropy coding methods \255 Huffman coding [8] and) W 300 -17050 M 87.3 0 32 (arithmetic coding [15]. The Baseline sequential codec) W 300 -18150 M 206.0 0 32 (uses Huffman coding, but codecs with both methods) W 300 -19250 M (are specified for all modes of operation.) h 300 -20350 M 300 -21450 M 311.6 0 32 (It is useful to consider entropy coding as a 2\255step) W 300 -22550 M 12.6 0 32 (process. The first step converts the zig\255zag sequence of) W 300 -23650 M 65.0 0 32 (quantized coefficients into an intermediate sequence of) W 300 -24750 M 166.3 0 32 (symbols. The second step converts the symbols to a) W 300 -25850 M 360.9 0 32 (data stream in which the symbols no longer have) W 300 -26950 M 467.5 0 32 (externally identifiable boundaries. The form and) W 300 -28050 M 90.9 0 32 (definition of the intermediate symbols is dependent on) W 300 -29150 M 34.6 0 32 (both the DCT\255based mode of operation and the entropy) W 300 -30250 M (coding method.) h 300 -31350 M 300 -32450 M 340.3 0 32 (Huffman coding requires that one or more sets of) W 300 -33550 M 198.4 0 32 (Huffman code tables be specified by the application. ) W 300 -34650 M 46.4 0 32 (The same tables used to compress an image are needed) W 300 -35750 M 156.3 0 32 (to decompress it. Huffman tables may be predefined) W 300 -36850 M 24.1 0 32 (and used within an application as defaults, or computed) W 300 -37950 M 821.1 0 32 (specifically for a given image in an initial) W 300 -39050 M 272.7 0 32 (statistics\255gathering pass prior to compression. Such) W 300 -40150 M 118.0 0 32 (choices are the business of the applications which use) W 300 -41250 M 601.5 0 32 (JPEG; the JPEG proposal specifies no required) W 300 -42350 M 333.3 0 32 (Huffman tables. Huffman coding for the Baseline) W 300 -43450 M (sequential encoder is described in detail in section 7.) h 300 -44550 M 300 -45650 M 254.3 0 32 (By contrast, the particular arithmetic coding method) W 300 -46750 M 40.0 0 32 (specified in the JPEG proposal [2] requires no tables to) W 300 -47850 M 169.3 0 32 (be externally input, because it is able to adapt to the) W 300 -48950 M 182.0 0 32 (image statistics as it encodes the image. \(If desired,) W 300 -50050 M 83.0 0 32 (statistical conditioning tables can be used as inputs for) W 300 -51150 M 368.7 0 32 (slightly better efficiency, but this is not required.\) ) W 300 -52250 M 827.6 0 32 (Arithmetic coding has produced 5\25510% better) W 300 -53350 M 289.6 0 32 (compression than Huffman for many of the images) W 300 -54450 M 7.0 0 32 (which JPEG members have tested. However, some feel) W 300 -55550 M 222.1 0 32 (it is more complex than Huffman coding for certain) W 300 -56650 M 749.5 0 32 (implementations, for example, the highest\255speed) W 300 -57750 M 687.0 0 32 (hardware implementations. \(Throughout JPEG's) W 300 -58850 M 72.6 0 32 (history, ) W 72.6 0 32 (\026) W 72.6 0 32 (complexity) W 72.6 0 32 (\027) W 72.6 0 32 ( has proved to be most elusive as) W 300 -59950 M (a practical metric for comparing compression methods.\)) h 300 -61050 M 300 -62150 M 83.4 0 32 (If the only difference between two JPEG codecs is the) W 300 -63250 M 39.4 0 32 (entropy coding method, transcoding between the two is) W -6320 7197 T R S 31919 -7197 T N 0 G 300 -1050 M /Times-Roman-ISOLatin1 F 1000 o f 106.6 0 32 (possible by simply entropy decoding with one method) W 300 -2150 M (and entropy recoding with the other.) h 300 -3250 M 300 -4350 M /Times-Bold-ISOLatin1 F 1000 o f (4.5 Compression and Picture Quality) h 300 -6050 M /Times-Roman-ISOLatin1 F 1000 o f 118.9 0 32 (For color images with moderately complex scenes, all) W 300 -7150 M 194.3 0 32 (DCT\255based modes of operation typically produce the) W 300 -8250 M 289.4 0 32 (following levels of picture quality for the indicated) W 300 -9350 M 441.0 0 32 (ranges of compression. These levels are only a) W 300 -10450 M 740.5 0 32 (guideline \255 quality and compression can vary) W 300 -11550 M 139.0 0 32 (significantly according to source image characteristics) W 300 -12650 M 156.3 0 32 (and scene content. \(The units ) W 156.3 0 32 (\026) W 156.3 0 32 (bits/pixel) W 156.3 0 32 (\027) W 156.3 0 32 ( here mean) W 300 -13750 M 262.1 0 32 (the total number of bits in the compressed image \255) W 300 -14850 M 19.6 0 32 (including the chrominance components \255 divided by the) W 300 -15950 M (number of samples in the luminance component.\)) h 300 -17050 M 300 -18150 M /Symbol F 1000 o f (\267) h 2100 -18150 M /Times-Roman-ISOLatin1 F 1000 o f 505.8 0 32 (0.25\2550.5 bits/pixel: moderate to good quality,) W 2100 -19250 M (sufficient for some applications;) h 2100 -20350 M 300 -21450 M /Symbol F 1000 o f (\267) h 2100 -21450 M /Times-Roman-ISOLatin1 F 1000 o f 370.5 0 32 (0.5\2550.75 bits/pixel: good to very good quality,) W 2100 -22550 M (sufficient for many applications;) h 2100 -23650 M 300 -24750 M /Symbol F 1000 o f (\267) h 2100 -24750 M /Times-Roman-ISOLatin1 F 1000 o f 89.4 0 32 (0.75\2551/5 bits/pixel: excellent quality, sufficient for) W 2100 -25850 M (most applications;) h 2100 -26950 M 300 -28050 M /Symbol F 1000 o f (\267) h 2100 -28050 M /Times-Roman-ISOLatin1 F 1000 o f 284.8 0 32 (1.5\2552.0 bits/pixel: usually indistinguishable from) W 2100 -29150 M 333.8 0 32 (the original, sufficient for the most demanding) W 2100 -30250 M (applications.) h 300 -31350 M 300 -32450 M 300 -33700 M /Times-Bold-ISOLatin1 F 1200 o f 162.7 0 32 (5 Processing Steps for Predictive Lossless) W 300 -35000 M (Coding) h 300 -36750 M /Times-Roman-ISOLatin1 F 1000 o f 239.4 0 32 (After its selection of a DCT\255based method in 1988,) W 300 -37850 M 99.0 0 32 (JPEG discovered that a DCT\255based lossless mode was) W 300 -38950 M 69.5 0 32 (difficult to define as a practical standard against which) W 300 -40050 M 761.2 0 32 (encoders and decoders could be independently) W 300 -41150 M 366.2 0 32 (implemented, without placing severe constraints on) W 300 -42250 M (both encoder and decoder implementations.) h 300 -43350 M 300 -44450 M 160.2 0 32 (JPEG, to meet its requirement for a lossless mode of) W 300 -45550 M 448.8 0 32 (operation, has chosen a simple predictive method) W 300 -46650 M 225.9 0 32 (which is wholly independent of the DCT processing) W 300 -47750 M 37.9 0 32 (described previously. Selection of this method was not) W 300 -48850 M 41.5 0 32 (the result of rigorous competitive evaluation as was the) W 300 -49950 M 184.8 0 32 (DCT\255based method. Nevertheless, the JPEG lossless) W 300 -51050 M 626.4 0 32 (method produces results which, in light of its) W 300 -52150 M 104.7 0 32 (simplicity, are surprisingly close to the state of the art) W 300 -53250 M 144.0 0 32 (for lossless continuous\255tone compression, as indicated) W 300 -54350 M (by a recent technical report [5].) h 300 -55450 M 300 -56550 M 465.0 0 32 (Figure 4 shows the main processing steps for a) W 300 -57650 M 282.2 0 32 (single\255component image. A predictor combines the) W 300 -58750 M 5.4 0 32 (values of up to three neighboring samples \(A, B, and C\)) W 300 -59850 M 166.5 0 32 (to form a prediction of the sample indicated by X in) W 300 -60950 M 147.9 0 32 (Figure 5. This prediction is then subtracted from the) W 300 -62050 M 31.1 0 32 (actual value of sample X, and the difference is encoded) W -31919 7197 T R S 30871 -75643 M /Times-Roman-ISOLatin1 F 1000 o f (6) h R showpage $P e %%Page: 7 7 /$P a D g N 0 79200 T S R S 6300 -26613 T N 0 G 300 -1050 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1000 o f 221.9 0 32 (losslessly by either of the entropy coding methods \255) W 300 -2150 M 24.7 0 32 (Huffman or arithmetic. Any one of the eight predictors ) W 300 -3250 M (listed in Table 1 \(under ) h (\026) h (selection\255value) h (\027) h (\) can be used.) h 300 -4350 M 300 -5450 M 178.4 0 32 (Selections 1, 2, and 3 are one\255dimensional predictors) W 300 -6550 M 395.6 0 32 (and selections 4, 5, 6 and 7 are two\255dimensional) W 300 -7650 M 295.1 0 32 (predictors. Selection\255value 0 can only be used for) W 300 -8750 M 666.7 0 32 (differential coding in the hierarchical mode of) W 300 -9850 M 211.6 0 32 (operation. The entropy coding is nearly identical to) W 300 -10950 M 58.7 0 32 (that used for the DC coefficient as described in section) W 300 -12050 M (7.1 \(for Huffman coding\).) h 300 -13150 M 300 -25655 M /Times-Roman-ISOLatin1 F 1000 o f 3.4 0 32 (For the lossless mode of operation, two different codecs) W 300 -26755 M 225.9 0 32 (are specified \255 one for each entropy coding method. ) W 300 -27855 M 62.8 0 32 (The encoders can use any source image precision from) W 300 -28955 M 119.3 0 32 (2 to 16 bits/sample, and can use any of the predictors) W 300 -30055 M 222.3 0 32 (except selection\255value 0. The decoders must handle) W 300 -31155 M 67.9 0 32 (any of the sample precisions and any of the predictors. ) W 300 -32255 M 860.8 0 32 (Lossless codecs typically produce around 2:1) W 300 -33355 M 18.3 0 32 (compression for color images with moderately complex) W 300 -34455 M (scenes.) h -6300 26613 T S N S 6363 -51518 22914 11405 @ I N 6363 -40113 T N S N 8451.00 -362.00 M 8451.00 -7298.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 6930.00 -1720.00 M 15682.00 -1720.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 6930.00 -3077.00 M 15682.00 -3077.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 6930.00 -364.00 M 15682.00 -364.00 L S 100 w 0 c 0 j 2 i 0.00 G k R R S N 6930.00 -5941.00 M 15682.00 -5941.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 10260.00 -362.00 M 10260.00 -7298.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 12069.00 -362.00 M 12069.00 -7298.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 13877.00 -362.00 M 13877.00 -7298.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 6930.00 -4585.00 M 15682.00 -4585.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 6930.00 -362.00 M 6930.00 -7298.00 L S 100 w 0 c 0 j 2 i 0.00 G k R R S 2274 -9820 M /Times-Roman-ISOLatin1 F 1000 o f (Figure 5. 3\255Sample Prediction Neighborhood) h R S 8921 -3989 M /Times-Roman-ISOLatin1 F 1000 o f (C B) h R S 8826 -6038 M /Times-Roman-ISOLatin1 F 1000 o f 0.0 448.0 m (A X) h 0 -448.0 m R R R R S 31919 -25472 T N 0 G 300 -1050 M 300 -17589 M 300 -18839 M 300 -20739 M /Times-Bold-ISOLatin1 $ /Times-Bold & P /Times-Bold-ISOLatin1 F 1200 o f (6 Multiple\255Component Images) h 300 -22489 M /Times-Roman-ISOLatin1 F 1000 o f 323.8 0 32 (The previous sections discussed the key processing) W 300 -23589 M 115.0 0 32 (steps of the DCT\255based and predictive lossless codecs) W 300 -24689 M 31.4 0 32 (for the case of single\255component source images. These) W 300 -25789 M 169.9 0 32 (steps accomplish the image data compression. But a) W 300 -26889 M 64.7 0 32 (good deal of the JPEG proposal is also concerned with) W 300 -27989 M 15.3 0 32 (the handling and control of color \(or other\) images with) W 300 -29089 M 460.0 0 32 (multiple components. JPEG's aim for a generic) W 300 -30189 M 871.8 0 32 (compression standard requires its proposal to) W 300 -31289 M (accommodate a variety of source image formats.) h 300 -32389 M 300 -33489 M /Times-Bold-ISOLatin1 F 1000 o f (6.1 Source Image Formats) h 300 -35189 M /Times-Roman-ISOLatin1 F 1000 o f 95.4 0 32 (The source image model used in the JPEG proposal is) W 300 -36289 M 388.9 0 32 (an abstraction from a variety of image types and) W 300 -37389 M 138.6 0 32 (applications and consists of only what is necessary to) W 300 -38489 M 365.0 0 32 (compress and reconstruct digital image data. The) W 300 -39589 M 35.9 0 32 (reader should recognize that the JPEG compressed data) W 300 -40689 M 55.5 0 32 (format does not encode enough information to serve as) W 300 -41789 M 130.9 0 32 (a complete image representation. For example, JPEG) W 300 -42889 M 201.3 0 32 (does not specify or encode any information on pixel) W 300 -43989 M 694.3 0 32 (aspect ratio, color space, or image acquisition) W 300 -45089 M (characteristics.) h -31919 25472 T S N S 32030 -42311 22818 15439 @ I N 32030 -26872 T N S 3275 -15063 M /Times-Roman-ISOLatin1 F 1000 o f (Table 1. Predictors for Lossless Coding) h R S 3737 -1354 M /Times-Roman-ISOLatin1 F 1000 o f (selection\255) h R S 3737 -2313 M /Times-Roman-ISOLatin1 F 1000 o f (value) h R S 12462 -2313 M /Times-Roman-ISOLatin1 F 1000 o f (prediction) h R S 5271 -4038 M /Times-Roman-ISOLatin1 F 1000 o f (0) h R S 12654 -4038 M /Times-Roman-ISOLatin1 F 1000 o f (no prediction) h R S 5271 -5284 M /Times-Roman-ISOLatin1 F 1000 o f (1) h R S 5271 -6530 M /Times-Roman-ISOLatin1 F 1000 o f (2) h R S 5271 -7776 M /Times-Roman-ISOLatin1 F 1000 o f (3) h R S 5271 -9022 M /Times-Roman-ISOLatin1 F 1000 o f (4) h R S 5271 -10268 M /Times-Roman-ISOLatin1 F 1000 o f (5) h R S 5271 -11514 M /Times-Roman-ISOLatin1 F 1000 o f (6) h R S 5271 -12760 M /Times-Roman-ISOLatin1 F 1000 o f (7) h R S 12941 -5284 M /Times-Roman-ISOLatin1 F 1000 o f (A) h R S 12941 -6530 M /Times-Roman-ISOLatin1 F 1000 o f (B) h R S 12941 -7776 M /Times-Roman-ISOLatin1 F 1000 o f (C) h R S 12941 -9022 M /Times-Roman-ISOLatin1 F 1000 o f (A+B\255C) h R S 12941 -10268 M /Times-Roman-ISOLatin1 F 1000 o f (A+\(\(B\255C\)/2\)) h R S 12941 -11514 M /Times-Roman-ISOLatin1 F 1000 o f (B+\(\(A\255C\)/2\)) h R S 12941 -12760 M /Times-Roman-ISOLatin1 F 1000 o f (\(A+B\)/2) h R S 2980 -13017 16683 12878 @ S 50 w 0 c 0 j 2 i 0.00 G k R R S N 3059.00 -2678.00 M 19742.00 -2678.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R R R R S 5321 -7623 T N S 0 -18886 50333 18886 @ R 0 G 300 -1050 M 300 -18265 M S 0 -18886 50333 18886 @ R -5321 7623 T S N S 6040 -24842 48895 15819 @ I N 6040 -9023 T N S 14805 -7446 6419 3372 @ S 75 w 0 c 0 j 2 i 0.00 G k R R S 24485 -7365 6419 3371 @ S 75 w 0 c 0 j 2 i 0.00 G k R R S 6605 -7830 4592 4239 @ S 75 w 0 c 0 j 2 i 0.00 G k R R S N 21194.00 -5693.00 M 24379.00 -5693.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 23924.00 -5947.00 M 24468.00 -5693.00 L 23924.00 -5440.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S 12919 -8253 19869 5301 @ S 400 w 0 c 0 j 0.875 G k R R S 16371 -6156 M /Times-Roman-ISOLatin1 F 1000 o f (Predictor) h R S 25955 -5348 M /Times-Roman-ISOLatin1 F 1000 o f (Entropy) h R S 25955 -6718 M /Times-Roman-ISOLatin1 F 1000 o f (Encoder) h R S 34036 -6700 9118 1720 @ S 50 w 0 c 0 j 2 i 0.00 G k R R S 20155 -2341 M /Times-Roman-ISOLatin1 F 1000 o f (Lossless Encoder) h R S N 27860.00 -9526.00 M 27860.00 -7553.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 28113.00 -8038.00 M 27859.00 -7494.00 L 27606.00 -8038.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 11310.00 -5934.00 M 14736.00 -5934.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 14252.00 -6188.00 M 14795.00 -5934.00 L 14252.00 -5681.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 30770.00 -5853.00 M 34015.00 -5853.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 33531.00 -6107.00 M 34074.00 -5853.00 L 33531.00 -5600.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S 7346 -10432 M /Times-Roman-ISOLatin1 F 1000 o f ( Source ) h R S 6805 -11556 M /Times-Roman-ISOLatin1 F 1000 o f (Image Data) h R S 25926 -10814 M /Times-Roman-ISOLatin1 F 1000 o f ( Table) h R S 24948 -11967 M /Times-Roman-ISOLatin1 F 1000 o f ( Specifications) h R S 36573 -10348 M /Times-Roman-ISOLatin1 F 1000 o f (Compressed) h R S 36253 -11503 M /Times-Roman-ISOLatin1 F 1000 o f ( Image Data) h R S 15111 -15567 M /Times-Roman-ISOLatin1 F 1000 o f (Figure 4. Lossless Mode Encoder Processing Steps) h R S 24157 -12561 7441 2856 @ S 50 w 0 c 0 j 2 i 0.00 G k R R R R R S 30679 -76122 M /Times-Roman-ISOLatin1 F 1000 o f (7) h R showpage $P e %%Page: 8 8 /$P a D g N 0 79200 T S R S 6314 -26079 T N 0 G 300 -1050 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1000 o f 129.3 0 32 (Figure 6 illustrates the JPEG source image model. A) W 300 -2150 M 733.9 0 32 (source image contains from 1 to 255 image) W 300 -3250 M 143.3 0 32 (components, sometimes called color or spectral bands) W 300 -4350 M 59.1 0 32 (or channels. Each component consists of a rectangular) W 300 -5450 M 369.4 0 32 (array of samples. A sample is defined to be an) W 300 -6550 M 121.1 0 32 (unsigned integer with precision P bits, with any value) W 300 -7650 M 110.9 0 32 (in the range [0, 2) W n 0.800 o f 0.0 448.0 m 110.9 0 32 (P) W 0 -448.0 m n 1.250 o f 110.9 0 32 (\2551]. All samples of all components) W 300 -8750 M 305.4 0 32 (within the same source image must have the same) W 300 -9850 M 113.6 0 32 (precision P. P can be 8 or 12 for DCT\255based codecs,) W 300 -10950 M (and 2 to 16 for predictive codecs.) h 300 -12050 M 300 -13150 M 35.8 0 32 (The ith component has sample dimensions x) W n 0.800 o f 0.0 -358.0 m 35.8 0 32 (i) W 0 358.0 m n 1.250 o f 35.8 0 32 ( by y) W n 0.800 o f 0.0 -358.0 m 35.8 0 32 (i) W 0 358.0 m n 1.250 o f 35.8 0 32 (. To) W 300 -14250 M 960.8 0 32 (accommodate formats in which some image) W 300 -15350 M 119.1 0 32 (components are sampled at different rates than others,) W 300 -16450 M 504.5 0 32 (components can have different dimensions. The) W 300 -17550 M 258.7 0 32 (dimensions must have a mutual integral relationship) W 300 -18650 M 392.4 0 32 (defined by H) W n 0.800 o f 0.0 -358.0 m 392.4 0 32 (i) W 0 358.0 m n 1.250 o f 392.4 0 32 ( and V) W n 0.800 o f 0.0 -358.0 m 392.4 0 32 (i) W 0 358.0 m n 1.250 o f 392.4 0 32 (, the relative horizontal and) W 300 -19750 M 134.9 0 32 (vertical sampling factors, which must be specified for) W 300 -20850 M 128.4 0 32 (each component. Overall image dimensions X and Y) W 300 -21950 M 533.9 0 32 (are defined as the maximum x) W n 0.800 o f 0.0 -358.0 m 533.9 0 32 (i) W 0 358.0 m n 1.250 o f 533.9 0 32 ( and y) W n 0.800 o f 0.0 -358.0 m 533.9 0 32 (i) W 0 358.0 m n 1.250 o f 533.9 0 32 ( for all) W 300 -23050 M 36.0 0 32 (components in the image, and can be any number up to) W 300 -24150 M 184.8 0 32 (2) W n 0.800 o f 0.0 448.0 m 184.8 0 32 (16) W 0 -448.0 m n 1.250 o f 184.8 0 32 (. H and V are allowed only the integer values 1) W 300 -25250 M 86.3 0 32 (through 4. The encoded parameters are X, Y, and H) W n 0.800 o f 0.0 -358.0 m 86.3 0 32 (i) W 0 358.0 m n 1.250 o f 86.3 0 32 (s) W 300 -26350 M 3.8 0 32 (and V) W n 0.800 o f 0.0 -358.0 m 3.8 0 32 (i) W 0 358.0 m n 1.250 o f 3.8 0 32 (s for each components. The decoder reconstructs) W 300 -27450 M 17.4 0 32 (the dimensions x) W n 0.800 o f 0.0 -358.0 m 17.4 0 32 (i) W 0 358.0 m n 1.250 o f 17.4 0 32 ( and y) W n 0.800 o f 0.0 -358.0 m 17.4 0 32 (i) W 0 358.0 m n 1.250 o f 17.4 0 32 ( for each component, according) W 300 -28550 M (to the following relationship shown in Equation 5:) h 300 -35499 M 300 -36599 M /Times-Roman-ISOLatin1 F 1000 o f (where ) h /Symbol F 1000 o f (\351 \371) h /Times-Roman-ISOLatin1 F 1000 o f ( is the ceiling function.) h 300 -37699 M 300 -38799 M /Times-Bold-ISOLatin1 $ /Times-Bold & P /Times-Bold-ISOLatin1 F 1000 o f (6.2 Encoding Order and Interleaving) h 300 -40499 M /Times-Roman-ISOLatin1 F 1000 o f 157.3 0 32 (A practical image compression standard must address) W 300 -41599 M 188.0 0 32 (how systems will need to handle the data during the) W 300 -42699 M 111.0 0 32 (process of decompression. Many applications need to) W 300 -43799 M 749.5 0 32 (pipeline the process of displaying or printing) W 300 -44899 M 36.7 0 32 (multiple\255component images in parallel with the process) W -6314 26079 T S N S 6616 -60828 22435 5849 @ I N 6616 -54979 T N S 3793 -2015 M /Dutch801-Italic-DECmath_Italic F 1000 o f (x) h R S 4326 -2266 M /Dutch801-Italic-DECmath_Italic F 1000 o f (i) h R S 5082 -1922 M /Times-Roman-ISOLatin1 F 1000 o f (=) h R S 6926 -1947 M /Dutch801-Roman-DECmath_Symbol F 1253 o f (d) h /Dutch801-Italic-DECmath_Italic F 1000 o f (X) h /Times-Roman-ISOLatin1 F 1200 o f ( ) h /Courier-ISOLatin1 $ /Courier & P /Courier-ISOLatin1 F 1200 o f ( ) h % /AvantGarde-Book-ISOLatin1 $ % /AvantGarde-Book & P % /AvantGarde-Book-ISOLatin1 F 1200 o f % ( ) h % /Courier-ISOLatin1 F 1200 o f ( ) h /Dutch801-Roman-DECmath_Symbol F 1200 o f (e) h R S 10345 -1067 M /Dutch801-Italic-DECmath_Italic F 1000 o f (H) h R S 11067 -1412 M /Dutch801-Italic-DECmath_Italic F 1000 o f (i) h R S 9790 -2540 M /Dutch801-Italic-DECmath_Italic F 1000 o f (H) h R S N 9502.00 -1510.00 M 11557.00 -1510.00 L S 49 w 0 c 0 j 2 i 0.00 G k R R S 12670 -2114 M /Times-Roman-ISOLatin1 F 1200 o f ( and) h n 0.833 o f ( ) h R S 3876 -4899 M /Dutch801-Italic-DECmath_Italic F 1000 o f (y) h R S 4409 -5150 M /Dutch801-Italic-DECmath_Italic F 1000 o f (i) h R S 5165 -4806 M /Times-Roman-ISOLatin1 F 1000 o f (=) h R S 7584 -4899 M /Dutch801-Italic-DECmath_Italic F 1000 o f (Y) h R S 10363 -4046 M /Dutch801-Italic-DECmath_Italic F 1000 o f (V) h R S 10974 -4296 M /Dutch801-Italic-DECmath_Italic F 1000 o f (i) h R S 9807 -5424 M /Dutch801-Italic-DECmath_Italic F 1000 o f (V) h R S 10418 -5466 M /Dutch801-Italic-DECmath_Italic F 800 o f (m) h R S 12135 -4719 M /Dutch801-Roman-DECmath_Symbol F 1200 o f (e) h R S 11057 -5498 M /Dutch801-Italic-DECmath_Italic F 800 o f (ax) h R S 10610 -2588 M /Dutch801-Italic-DECmath_Italic F 800 o f (m) h R S 11249 -2620 M /Dutch801-Italic-DECmath_Italic F 800 o f (ax) h R S N 9885.00 -4388.00 M 11940.00 -4388.00 L S 49 w 0 c 0 j 2 i 0.00 G k R R S 7009 -4707 M /Dutch801-Roman-DECmath_Symbol F 1200 o f (d) h R S 8505 -4699 M /Dutch801-Roman-DECmath_Symbol F 1084 o f (\242) h R S 8410 -1822 M /Dutch801-Roman-DECmath_Symbol F 1084 o f (\242) h R S 21132 -5513 M /Times-Roman-ISOLatin1 F 1000 o f (\(5\)) h R R R R S 31919 -26075 T N 0 G 300 -1050 M /Times-Roman-ISOLatin1 F 1000 o f 305.0 0 32 (of decompression. For many systems, this is only) W 300 -2150 M 370.5 0 32 (feasible if the components are interleaved together) W 300 -3250 M (within the compressed data stream.) h 300 -4350 M 300 -5450 M 35.7 0 32 (To make the same interleaving machinery applicable to) W 300 -6550 M 439.7 0 32 (both DCT\255based and predictive codecs, the JPEG) W 300 -7650 M 25.1 0 32 (proposal has defined the concept of ) W 25.1 0 32 (\026) W 25.1 0 32 (data unit.) W 25.1 0 32 (\027) W 25.1 0 32 ( A data) W 300 -8750 M 83.2 0 32 (unit is a sample in predictive codecs and an 8x8 block) W 300 -9850 M (of samples in DCT\255based codecs.) h 300 -10950 M 300 -12050 M 40.2 0 32 (The order in which compressed data units are placed in) W 300 -13150 M 400.9 0 32 (the compressed data stream is a generalization of) W 300 -14250 M 274.3 0 32 (raster\255scan order. Generally, data units are ordered) W 300 -15350 M 231.2 0 32 (from left\255to\255right and top\255to\255bottom according to the) W 300 -16450 M 92.1 0 32 (orientation shown in Figure 6. \(It is the responsibility) W 300 -17550 M 21.7 0 32 (of applications to define which edges of a source image) W 300 -18650 M 36.0 0 32 (are top, bottom, left and right.\) If an image component) W 300 -19750 M 555.2 0 32 (is noninterleaved \(i.e., compressed without being) W 300 -20850 M 222.2 0 32 (interleaved with other components\), compressed data) W 300 -21950 M 250.1 0 32 (units are ordered in a pure raster scan as shown in) W 300 -23050 M (Figure 7.) h 300 -35752 M 300 -36852 M /Times-Roman-ISOLatin1 F 1000 o f 190.7 0 32 (When two or more components are interleaved, each) W 300 -37952 M 75.1 0 32 (component C) W n 0.800 o f 0.0 -358.0 m 75.1 0 32 (i) W 0 358.0 m n 1.250 o f 75.1 0 32 ( is partitioned into rectangular regions of) W 300 -39052 M 376.4 0 32 (H) W n 0.800 o f 0.0 -358.0 m 376.4 0 32 (i) W 0 358.0 m n 1.250 o f 376.4 0 32 ( by V) W n 0.800 o f 0.0 -358.0 m 376.4 0 32 (i) W 0 358.0 m n 1.250 o f 376.4 0 32 ( data units, as shown in the generalized) W 300 -40152 M 228.3 0 32 (example of Figure 8. Regions are ordered within a) W 300 -41252 M 288.4 0 32 (component from left\255to\255right and top\255to\255bottom, and) W 300 -42352 M 17.4 0 32 (within a region, data units are ordered from left\255to\255right) W 300 -43452 M 293.3 0 32 (and top\255to\255bottom. The JPEG proposal defines the) W 300 -44552 M 131.4 0 32 (term Minimum Coded Unit \(MCU\) to be the smallest) W -31919 26075 T S N S 32126 -61077 22626 11602 @ I N 32126 -49475 T N S N 5326.00 -7291.00 M 5326.00 -1714.00 L 16831.00 -1714.00 L 16831.00 -7204.00 L S 100 w 0 c 0 j 2 i 0.00 G k R R S N 7068.00 -1801.00 M 7068.00 -7291.00 L S 15 w 0 c 0 j 2 i 0.00 G k R R S N 5413.00 -3369.00 M 16744.00 -3369.00 L S 15 w 0 c 0 j 2 i 0.00 G k R R S N 8725.00 -1801.00 M 8725.00 -7291.00 L S 15 w 0 c 0 j 2 i 0.00 G k R R S N 10294.00 -1801.00 M 10294.00 -7291.00 L S 15 w 0 c 0 j 2 i 0.00 G k R R S N 11950.00 -1801.00 M 11950.00 -7291.00 L S 15 w 0 c 0 j 2 i 0.00 G k R R S N 13606.00 -1801.00 M 13606.00 -7291.00 L S 15 w 0 c 0 j 2 i 0.00 G k R R S N 15262.00 -1801.00 M 15262.00 -7291.00 L S 15 w 0 c 0 j 2 i 0.00 G k R R S N 6023.00 -2761.00 M 15841.00 -2761.00 L S 0.00 G - + * E R S 50 w 0 c 0 j 2 i 0.00 G k R R S N 15357.00 -3015.00 M 15900.00 -2761.00 L 15357.00 -2508.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 6023.00 -4329.00 M 15841.00 -4329.00 L S 0.00 G - + * E R S 50 w 0 c 0 j 2 i 0.00 G k R R S N 15357.00 -4583.00 M 15900.00 -4329.00 L 15357.00 -4076.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 6023.00 -5897.00 M 15912.00 -5897.00 L S 20 w 0 c 0 j 2 i 0.00 G k R R S N 15392.00 -6151.00 M 15936.00 -5897.00 L 15392.00 -5644.00 L S 20 w 0 c 0 j 2 i 0.00 G k R R S 10885 -1242 M /Times-Roman-ISOLatin1 F 1000 o f (top) h R S 17405 -4502 M /Times-Roman-ISOLatin1 F 1000 o f (right) h R S 9927 -8623 M /Times-Roman-ISOLatin1 F 1000 o f (bottom) h R S 3407 -4598 M /Times-Roman-ISOLatin1 F 1000 o f (left) h R S 2930 -10983 M /Times-Roman-ISOLatin1 F 1000 o f (Figure 7. Noninterleaved Data Ordering) h R S N 5413.00 -5198.00 M 16744.00 -5198.00 L S 15 w 0 c 0 j 2 i 0.00 G k R R S N 5413.00 -6593.00 M 16744.00 -6593.00 L S 15 w 0 c 0 j 2 i 0.00 G k R R S 5962 -3048 M /Symbol F 1200 o f (\267) h R S 7792 -3048 M /Symbol F 1200 o f (\267) h R S 9449 -3048 M /Symbol F 1200 o f (\267) h R S 11017 -3048 M /Symbol F 1200 o f (\267) h R S 12499 -3048 M /Symbol F 1200 o f (\267) h R S 14329 -3048 M /Symbol F 1200 o f (\267) h R S 5962 -4617 M /Symbol F 1200 o f (\267) h R S 7792 -4617 M /Symbol F 1200 o f (\267) h R S 9449 -4617 M /Symbol F 1200 o f (\267) h R S 11017 -4617 M /Symbol F 1200 o f (\267) h R S 12499 -4617 M /Symbol F 1200 o f (\267) h R S 14329 -4617 M /Symbol F 1200 o f (\267) h R S 5962 -6185 M /Symbol F 1200 o f (\267) h R S 7792 -6185 M /Symbol F 1200 o f (\267) h R S 9449 -6185 M /Symbol F 1200 o f (\267) h R S 11017 -6185 M /Symbol F 1200 o f (\267) h R S 12499 -6185 M /Symbol F 1200 o f (\267) h R S 14329 -6185 M /Symbol F 1200 o f (\267) h R S 15724 -6185 M /Symbol F 1200 o f (\267) h R S 15637 -4617 M /Symbol F 1200 o f (\267) h R S 15810 -3048 M /Symbol F 1200 o f (\267) h R S N 15985.00 -2880.00 M 6358.00 -4181.00 L S 20 w 0 c 0 j 2 i 0.00 G k R R S N 6839.00 -3860.00 M 6334.00 -4184.00 L 6907.00 -4362.00 L S 20 w 0 c 0 j 2 i 0.00 G k R R S N 15985.00 -4361.00 M 6358.00 -5663.00 L S 20 w 0 c 0 j 2 i 0.00 G k R R S N 6839.00 -5342.00 M 6334.00 -5666.00 L 6907.00 -5844.00 L S 20 w 0 c 0 j 2 i 0.00 G k R R S N 15724.00 -6016.00 M 7839.00 -7057.00 L S 20 w 0 c 0 j 2 i 0.00 G k R R S N 8321.00 -6738.00 M 7815.00 -7060.00 L 8388.00 -7240.00 L S 20 w 0 c 0 j 2 i 0.00 G k R R R R R S 6136 -6135 T N 0 G 300 -1050 M 300 -19032 M -6136 6135 T S N S 6375 -24121 48416 16586 @ I N 6375 -7535 T N S 9244 -9158 9699 8966 @ S 100 w 0 c 0 j 2 i 0.00 G k R R S 7415 -9798 9701 4928 @ S 0.00 G - + * E R S 100 w 0 c 0 j 2 i 0.00 G k R R S 27825 -11568 8505 8975 @ S 0.00 G - + * E R S 75 w 0 c 0 j 2 i 0.00 G k R R S 28301 -3210 M /Times-Roman-ISOLatin1 F 1000 o f (.) h R S 29302 -3210 M /Times-Roman-ISOLatin1 F 1000 o f (.) h R S 30374 -3210 M /Times-Roman-ISOLatin1 F 1000 o f (.) h R S 31445 -3210 M /Times-Roman-ISOLatin1 F 1000 o f (.) h R S 32517 -3210 M /Times-Roman-ISOLatin1 F 1000 o f (.) h R S 33518 -3210 M /Times-Roman-ISOLatin1 F 1000 o f (.) h R S 34591 -3210 M /Times-Roman-ISOLatin1 F 1000 o f (.) h R S 35735 -3210 M /Times-Roman-ISOLatin1 F 1000 o f (.) h R S 28301 -4190 M /Times-Roman-ISOLatin1 F 1000 o f (.) h R S 29302 -4190 M /Times-Roman-ISOLatin1 F 1000 o f (.) h R S 30374 -4190 M /Times-Roman-ISOLatin1 F 1000 o f (.) h R S 31445 -4190 M /Times-Roman-ISOLatin1 F 1000 o f (.) h R S 32517 -4190 M /Times-Roman-ISOLatin1 F 1000 o f (.) h R S 33518 -4190 M /Times-Roman-ISOLatin1 F 1000 o f (.) h R S 34591 -4190 M /Times-Roman-ISOLatin1 F 1000 o f (.) h R S 35735 -4190 M /Times-Roman-ISOLatin1 F 1000 o f (.) h R S 28230 -6603 M /Times-Roman-ISOLatin1 F 1000 o f (.) h R S 29302 -6603 M /Times-Roman-ISOLatin1 F 1000 o f (.) h R S 30374 -5473 M /Times-Roman-ISOLatin1 F 1000 o f (.) h R S 31445 -5473 M /Times-Roman-ISOLatin1 F 1000 o f (.) h R S 28230 -7584 M /Times-Roman-ISOLatin1 F 1000 o f (.) h R S 29302 -5473 M /Times-Roman-ISOLatin1 F 1000 o f (.) h R S 28230 -5473 M /Times-Roman-ISOLatin1 F 1000 o f (.) h R S N 33185.00 -2692.00 M 33185.00 -11468.00 L S 10 w 0 c 0 j 2 i 0.00 G k R R S N 32932.00 -10937.00 M 33185.00 -11481.00 L 33439.00 -10937.00 L S 10 w 0 c 0 j 2 i 0.00 G k R R S N 33439.00 -3224.00 M 33185.00 -2680.00 L 32932.00 -3224.00 L S 10 w 0 c 0 j 2 i 0.00 G k R R S N 27921.00 -9380.00 M 36378.00 -9380.00 L S 10 w 0 c 0 j 2 i 0.00 G k R R S N 35847.00 -9634.00 M 36391.00 -9380.00 L 35847.00 -9127.00 L S 10 w 0 c 0 j 2 i 0.00 G k R R S N 28453.00 -9127.00 M 27909.00 -9380.00 L 28453.00 -9634.00 L S 10 w 0 c 0 j 2 i 0.00 G k R R S 32614 -7043 1071 1132 @ S 0.00 G - + * E R R S 29397 -9833 929 981 @ S 0.00 G - + * E R R S 29540 -9442 M /Times-Roman-ISOLatin1 F 1000 o f (x) h 0.0 -448.0 m (i) h 0 448.0 m R S 32900 -6502 M /Times-Roman-ISOLatin1 F 1000 o f (y) h 0.0 -448.0 m (i) h 0 448.0 m R S 31685 -2094 M /Times-Roman-ISOLatin1 F 1000 o f (top) h R S 30970 -12654 M /Times-Roman-ISOLatin1 F 1000 o f (bottom) h R S 36830 -7675 M /Times-Roman-ISOLatin1 F 1000 o f (right) h R S 26252 -7752 M /Times-Roman-ISOLatin1 F 1000 o f (left) h R S 23751 -3752 M /Times-Roman-ISOLatin1 F 1000 o f (samples) h R S 37688 -3603 M /Times-Roman-ISOLatin1 F 1000 o f (line) h R S N 26793.00 -3738.00 M 28252.00 -4159.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 27716.00 -4268.00 M 28309.00 -4176.00 L 27857.00 -3782.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 26824.00 -3725.00 M 28176.00 -5295.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 27668.00 -5093.00 M 28215.00 -5340.00 L 28052.00 -4762.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 27538.00 -4289.00 M 27538.00 -3950.00 27538.00 -3950.00 32076.00 -3950.00 C 36615.00 -3950.00 36615.00 -3950.00 36615.00 -4289.00 C 36615.00 -4629.00 36615.00 -4629.00 32076.00 -4629.00 C 27538.00 -4629.00 27538.00 -4629.00 27538.00 -4289.00 C H S 50 w 0 c 0 j 2 i 0.00 G k R R S N 37402.00 -3725.00 M 36787.00 -4114.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 37061.00 -3641.00 M 36737.00 -4146.00 L 37332.00 -4070.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S 6863 -13926 M /Times-Roman-ISOLatin1 F 1000 o f (\(a\) Source image with multiple components ) h R S 6402 -11015 5472 4631 @ S 0.00 G - + * E R S 100 w 0 c 0 j 2 i 0.00 G k R R S 6248 -6138 M /Times-Roman-ISOLatin1 F 1000 o f (.) h R S 7002 -5149 M /Times-Roman-ISOLatin1 F 1000 o f (.) h R S 6658 -5639 M /Times-Roman-ISOLatin1 F 1000 o f (.) h R S 28040 -1901 M /Times-Roman-ISOLatin1 F 1000 o f (C) h 0.0 -448.0 m (i) h 0 448.0 m R S 17439 -16309 M /Times-Roman-ISOLatin1 F 1000 o f (Figure 6. JPEG Source Image Model) h R S 11849 -11761 M /Times-Roman-ISOLatin1 F 1000 o f (C) h 0.0 -448.0 m (1) h 0 448.0 m R S 12308 -10629 M /Times-Roman-ISOLatin1 F 1000 o f (C) h 0.0 -448.0 m (2) h 0 448.0 m R S 17920 -10345 M /Times-Roman-ISOLatin1 F 1000 o f (C) h 0.0 -448.0 m (Nf\2551) h 0 448.0 m R S 6022 -11388 5476 4632 @ S 0.00 G - + * E R S 100 w 0 c 0 j 2 i 0.00 G k R R S 25372 -13926 M /Times-Roman-ISOLatin1 F 1000 o f ( \(b\) Characteristics of an image component) h R S 14239 -10788 M /Times-Bold-ISOLatin1 F 1000 o f (.) h R S 15931 -10565 M /Times-Bold-ISOLatin1 F 1000 o f (.) h R S 17424 -10188 M /Times-Bold-ISOLatin1 F 1000 o f (.) h R S 20205 -9004 M /Times-Roman-ISOLatin1 F 1000 o f (C) h 0.0 -448.0 m (Nf) h 0 448.0 m R R R R S 30871 -76122 M /Times-Roman-ISOLatin1 F 1000 o f (8) h R showpage $P e %%Page: 9 9 /$P a D g N 0 79200 T S R S 6317 -38015 T N 0 G 300 -1050 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1000 o f 371.4 0 32 (group of interleaved data units. For the example) W 300 -2150 M 10.8 0 32 (shown, MCU) W n 0.800 o f 0.0 -358.0 m 10.8 0 32 (1) W 0 358.0 m n 1.250 o f 10.8 0 32 ( consists of data units taken first from the) W 300 -3250 M 50.4 0 32 (top\255left\255most region of C) W n 0.800 o f 0.0 -358.0 m 50.4 0 32 (1) W 0 358.0 m n 1.250 o f 50.4 0 32 (, followed by data units from) W 300 -4350 M 218.7 0 32 (the same region of C) W n 0.800 o f 0.0 -358.0 m 218.7 0 32 (2) W 0 358.0 m n 1.250 o f 218.7 0 32 (, and likewise for C) W n 0.800 o f 0.0 -358.0 m 218.7 0 32 (3) W 0 358.0 m n 1.250 o f 218.7 0 32 ( and C) W n 0.800 o f 0.0 -358.0 m 218.7 0 32 (4) W 0 358.0 m n 1.250 o f 218.7 0 32 (. ) W 300 -5450 M (MCU) h n 0.800 o f 0.0 -358.0 m (2) h 0 358.0 m n 1.250 o f ( continues the pattern as shown.) h 300 -6550 M 300 -7650 M 0.1 0 32 (Thus, interleaved data is an ordered sequence of MCUs,) W 300 -8750 M 122.0 0 32 (and the number of data units contained in an MCU is) W 300 -9850 M 175.8 0 32 (determined by the number of components interleaved) W 300 -10950 M 309.3 0 32 (and their relative sampling factors. The maximum) W 300 -12050 M 166.6 0 32 (number of components which can be interleaved is 4) W 300 -13150 M 105.2 0 32 (and the maximum number of data units in an MCU is) W 300 -14250 M 271.4 0 32 (10. The latter restriction is expressed as shown in) W 300 -15350 M 650.4 0 32 (Equation 6, where the summation is over the) W 300 -16450 M (interleaved components:) h 300 -21960 M /Times-Roman-ISOLatin1 F 1000 o f 86.6 0 32 (Because of this restriction, not every combination of 4) W 300 -23060 M 0.2 0 32 (components which can be represented in noninterleaved) W 300 -24160 M 170.4 0 32 (order within a JPEG\255compressed image is allowed to) W 300 -25260 M 312.3 0 32 (be interleaved. Also, note that the JPEG proposal) W 300 -26360 M 48.4 0 32 (allows some components to be interleaved and some to) W 300 -27460 M (be noninterleaved within the same compressed image.) h 300 -28560 M 300 -29660 M 300 -31360 M 300 -33060 M -6317 38015 T S N S 6715 -59225 22243 4410 @ I N 6715 -54815 T N S 6160 -1603 M /Symbol F 1200 o f (\345) h /Times-Roman-ISOLatin1 F 1000 o f ( H) h 0.0 -448.0 m (i) h 0 448.0 m ( \327 V) h 0.0 -448.0 m (i) h 0 448.0 m ( ) h /Symbol F 1000 o f (\243) h /Times-Roman-ISOLatin1 F 1000 o f ( 10) h R S 6063 -2753 M /Times-Italic-ISOLatin1 $ /Times-Italic & P /Times-Italic-ISOLatin1 F 800 o f (all ) h /Times-Roman-ISOLatin1 F 800 o f (i in) h R S 6063 -3520 M /Times-Roman-ISOLatin1 F 800 o f (interleave) h R S 21020 -3233 M /Times-Roman-ISOLatin1 F 1000 o f (\(6\)) h R R R R S 31919 -38038 T N 0 G 300 -1050 M /Times-Bold-ISOLatin1 $ /Times-Bold & P /Times-Bold-ISOLatin1 F 1000 o f (6.3 Multiple Tables) h 300 -2750 M /Times-Roman-ISOLatin1 F 1000 o f 564.3 0 32 (In addition to the interleaving control discussed) W 300 -3850 M 235.7 0 32 (previously, JPEG codecs must control application of) W 300 -4950 M 166.7 0 32 (the proper table data to the proper components. The) W 300 -6050 M 178.4 0 32 (same quantization table and the same entropy coding) W 300 -7150 M 288.8 0 32 (table \(or set of tables\) must be used to encode all) W 300 -8250 M (samples within a component.) h 300 -9350 M 300 -10450 M 76.4 0 32 (JPEG decoders can store up to 4 different quantization) W 300 -11550 M 212.9 0 32 (tables and up to 4 different \(sets of\) entropy coding) W 300 -12650 M 632.8 0 32 (tables simultaneously. \(The Baseline sequential) W 300 -13750 M 93.3 0 32 (decoder is the exception; it can only store up to 2 sets) W 300 -14850 M 427.0 0 32 (of entropy coding tables.\) This is necessary for) W 300 -15950 M 1458.0 0 32 (switching between different tables during) W 300 -17050 M 916.2 0 32 (decompression of a scan containing multiple) W 300 -18150 M 111.1 0 32 (\(interleaved\) components, in order to apply the proper) W 300 -19250 M 322.9 0 32 (table to the proper component. \(Tables cannot be) W 300 -20350 M 302.0 0 32 (loaded during decompression of a scan.\) Figure 9) W 300 -21450 M 406.8 0 32 (illustrates the table\255switching control that must be) W 300 -22550 M 610.3 0 32 (managed in conjunction with multiple\255component) W 300 -23650 M 17.3 0 32 (interleaving for the encoder side. \(This simplified view) W 300 -24750 M 110.7 0 32 (does not distinguish between quantization and entropy) W 300 -25850 M (coding tables.\)) h -31919 38038 T R S 6136 -5992 T N 0 G 300 -1050 M 300 -31016 M -6136 5992 T S N S 6423 -35962 48128 28570 @ I N 6423 -7392 T N S N 3368.00 -10873.00 M 3368.00 -3107.00 L 14202.00 -3107.00 L 14202.00 -10873.00 L S 100 w 0 c 0 j 2 i 0.00 G k R R S N 3464.00 -6653.00 M 14297.00 -6653.00 L S 15 w 0 c 0 j 2 i 0.00 G k R R S N 7012.00 -3286.00 M 7012.00 -10693.00 L S 15 w 0 c 0 j 2 i 0.00 G k R R S N 10656.00 -3286.00 M 10656.00 -10693.00 L S 15 w 0 c 0 j 2 i 0.00 G k R R S N 14203.00 -3202.00 M 14203.00 -6750.00 L S 100 w 0 c 0 j 2 i 0.00 G k R R S N 3464.00 -10297.00 M 14297.00 -10297.00 L S 15 w 0 c 0 j 2 i 0.00 G k R R S 3848 -2854 M /Times-Roman-ISOLatin1 F 1000 o f ( 0 1 2 3 4 5) h R S 2410 -4196 M /Times-Roman-ISOLatin1 F 1000 o f (0) h R S 2410 -6112 M /Times-Roman-ISOLatin1 F 1000 o f (1) h R S 2410 -8028 M /Times-Roman-ISOLatin1 F 1000 o f (2) h R S 2410 -9944 M /Times-Roman-ISOLatin1 F 1000 o f (3) h R S N 16790.00 -7229.00 M 16790.00 -3106.00 L 27528.00 -3106.00 L 27528.00 -7133.00 L S 100 w 0 c 0 j 2 i 0.00 G k R R S 17460 -2758 M /Times-Roman-ISOLatin1 F 1000 o f (0 1 2 3 4 5) h R S 15927 -4196 M /Times-Roman-ISOLatin1 F 1000 o f (0) h R S 15927 -6112 M /Times-Roman-ISOLatin1 F 1000 o f (1) h R S N 20336.00 -3202.00 M 20336.00 -7133.00 L S 15 w 0 c 0 j 2 i 0.00 G k R R S N 23979.00 -3202.00 M 23979.00 -7133.00 L S 15 w 0 c 0 j 2 i 0.00 G k R R S N 16885.00 -6653.00 M 27527.00 -6653.00 L S 15 w 0 c 0 j 2 i 0.00 G k R R S N 30883.00 -10988.00 M 30883.00 -3202.00 L 36252.00 -3202.00 L 36252.00 -11064.00 L S 100 w 0 c 0 j 2 i 0.00 G k R R S N 30979.00 -6750.00 M 36348.00 -6750.00 L S 25 w 0 c 0 j 2 i 0.00 G k R R S N 32704.00 -3279.00 M 32704.00 -10910.00 L S 25 w 0 c 0 j 2 i 0.00 G k R R S N 30979.00 -10394.00 M 36348.00 -10394.00 L S 25 w 0 c 0 j 2 i 0.00 G k R R S N 34430.00 -3279.00 M 34430.00 -10910.00 L S 25 w 0 c 0 j 2 i 0.00 G k R R S 31458 -2854 M /Times-Roman-ISOLatin1 F 1000 o f ( 0 1 2) h R S 29924 -4196 M /Times-Roman-ISOLatin1 F 1000 o f (0) h R S 29924 -6113 M /Times-Roman-ISOLatin1 F 1000 o f (1) h R S 29924 -8028 M /Times-Roman-ISOLatin1 F 1000 o f (2) h R S 29924 -9944 M /Times-Roman-ISOLatin1 F 1000 o f (3) h R S N 40184.00 -7325.00 M 40184.00 -3202.00 L 45648.00 -3202.00 L 45648.00 -7325.00 L S 100 w 0 c 0 j 2 i 0.00 G k R R S N 40088.00 -4928.00 M 45552.00 -4928.00 L S 15 w 0 c 0 j 2 i 0.00 G k R R S N 42004.00 -3298.00 M 42004.00 -7133.00 L S 15 w 0 c 0 j 2 i 0.00 G k R R S N 43825.00 -3298.00 M 43825.00 -7133.00 L S 15 w 0 c 0 j 2 i 0.00 G k R R S N 40088.00 -6750.00 M 45552.00 -6750.00 L S 15 w 0 c 0 j 2 i 0.00 G k R R S 40854 -2854 M /Times-Roman-ISOLatin1 F 1000 o f (0 1 2) h R S 39320 -4484 M /Times-Roman-ISOLatin1 F 1000 o f (0) h R S 39320 -6400 M /Times-Roman-ISOLatin1 F 1000 o f (1) h R S 4482 -768 M /Times-Roman-ISOLatin1 F 1000 o f (Cs) h 0.0 -448.0 m (1) h 0 448.0 m (: H) h 0.0 -448.0 m (1) h 0 448.0 m (=2, V) h 0.0 -448.0 m (1) h 0 448.0 m (=2) h R S 17724 -863 M /Times-Roman-ISOLatin1 F 1000 o f (Cs) h 0.0 -448.0 m (2) h 0 448.0 m (: H) h 0.0 -448.0 m (2) h 0 448.0 m (=2, V) h 0.0 -448.0 m (2) h 0 448.0 m (=1) h R S 29128 -959 M /Times-Roman-ISOLatin1 F 1000 o f (Cs) h 0.0 -448.0 m (3) h 0 448.0 m (: H) h 0.0 -448.0 m (3) h 0 448.0 m (=1, V) h 0.0 -448.0 m (3) h 0 448.0 m (=2) h R S 38312 -864 M /Times-Roman-ISOLatin1 F 1000 o f (Cs) h 0.0 -448.0 m (4) h 0 448.0 m (: H) h 0.0 -448.0 m (4) h 0 448.0 m (=1, V) h 0.0 -448.0 m (4) h 0 448.0 m (=1) h R S 4235 -9678 M /Symbol F 1200 o f (\267) h R S 5961 -9678 M /Symbol F 1200 o f (\267) h R S 7591 -9678 M /Symbol F 1200 o f (\267) h R S 9604 -9678 M /Symbol F 1200 o f (\267) h R S 11522 -9678 M /Symbol F 1200 o f (\267) h R S 13439 -9678 M /Symbol F 1200 o f (\267) h R S 4235 -8048 M /Symbol F 1200 o f (\267) h R S 5961 -8048 M /Symbol F 1200 o f (\267) h R S 7591 -8048 M /Symbol F 1200 o f (\267) h R S 9604 -8048 M /Symbol F 1200 o f (\267) h R S 11426 -8048 M /Symbol F 1200 o f (\267) h R S 13439 -8048 M /Symbol F 1200 o f (\267) h R S 4235 -6131 M /Symbol F 1200 o f (\267) h R S 5961 -6131 M /Symbol F 1200 o f (\267) h R S 7591 -6131 M /Symbol F 1200 o f (\267) h R S 9604 -6131 M /Symbol F 1200 o f (\267) h R S 11522 -6131 M /Symbol F 1200 o f (\267) h R S 13439 -6131 M /Symbol F 1200 o f (\267) h R S 4235 -4501 M /Symbol F 1200 o f (\267) h R S 5961 -4501 M /Symbol F 1200 o f (\267) h R S 7591 -4501 M /Symbol F 1200 o f (\267) h R S 9604 -4501 M /Symbol F 1200 o f (\267) h R S 11618 -4597 M /Symbol F 1200 o f (\267) h R S 13439 -4501 M /Symbol F 1200 o f (\267) h R S N 4427.00 -4268.00 M 6153.00 -4268.00 L 4422.00 -5726.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 4629.00 -5220.00 M 4376.00 -5764.00 L 4956.00 -5608.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 4331.00 -5898.00 M 6057.00 -5898.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 6057.00 -5898.00 M 7654.00 -4302.00 L S 20 w 0 c 0 j 2 i 0.00 G k R R S N 7466.00 -4849.00 M 7671.00 -4285.00 L 7107.00 -4490.00 L S 20 w 0 c 0 j 2 i 0.00 G k R R S N 7975.00 -4268.00 M 9701.00 -4268.00 L 7970.00 -5726.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 8177.00 -5220.00 M 7924.00 -5764.00 L 8504.00 -5608.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 7879.00 -5898.00 M 9605.00 -5898.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 9605.00 -5898.00 M 11581.00 -4297.00 L S 20 w 0 c 0 j 2 i 0.00 G k R R S N 11337.00 -4821.00 M 11600.00 -4282.00 L 11018.00 -4427.00 L S 20 w 0 c 0 j 2 i 0.00 G k R R S N 11905.00 -4268.00 M 13631.00 -4268.00 L 11900.00 -5726.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 12107.00 -5220.00 M 11854.00 -5764.00 L 12434.00 -5608.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 11809.00 -5898.00 M 13535.00 -5898.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 4427.00 -7720.00 M 6153.00 -7720.00 L 4422.00 -9178.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 4629.00 -8672.00 M 4376.00 -9216.00 L 4956.00 -9060.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 4331.00 -9350.00 M 6057.00 -9350.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 6057.00 -9350.00 M 7654.00 -7754.00 L S 20 w 0 c 0 j 2 i 0.00 G k R R S N 7466.00 -8301.00 M 7671.00 -7737.00 L 7107.00 -7942.00 L S 20 w 0 c 0 j 2 i 0.00 G k R R S 40953 -4376 M /Symbol F 1200 o f (\267) h R S 17465 -6007 M /Symbol F 1200 o f (\267) h R S 19191 -6007 M /Symbol F 1200 o f (\267) h R S 21108 -6007 M /Symbol F 1200 o f (\267) h R S 22833 -6007 M /Symbol F 1200 o f (\267) h R S 24846 -6007 M /Symbol F 1200 o f (\267) h R S 26476 -6007 M /Symbol F 1200 o f (\267) h R S 17465 -4186 M /Symbol F 1200 o f (\267) h R S 19191 -4186 M /Symbol F 1200 o f (\267) h R S 21108 -4186 M /Symbol F 1200 o f (\267) h R S 22833 -4186 M /Symbol F 1200 o f (\267) h R S 24846 -4186 M /Symbol F 1200 o f (\267) h R S 26476 -4186 M /Symbol F 1200 o f (\267) h R S N 19287.00 -3884.00 M 21061.00 -3884.00 L S 20 w 0 c 0 j 2 i 0.00 G k R R S N 20541.00 -4138.00 M 21085.00 -3884.00 L 20541.00 -3631.00 L S 20 w 0 c 0 j 2 i 0.00 G k R R S N 23026.00 -3884.00 M 24800.00 -3884.00 L S 20 w 0 c 0 j 2 i 0.00 G k R R S N 24280.00 -4138.00 M 24824.00 -3884.00 L 24280.00 -3631.00 L S 20 w 0 c 0 j 2 i 0.00 G k R R S N 19383.00 -5706.00 M 21157.00 -5706.00 L S 20 w 0 c 0 j 2 i 0.00 G k R R S N 20637.00 -5960.00 M 21181.00 -5706.00 L 20637.00 -5453.00 L S 20 w 0 c 0 j 2 i 0.00 G k R R S N 26573.00 -3980.00 M 18182.00 -5409.00 L S 20 w 0 c 0 j 2 i 0.00 G k R R S N 18652.00 -5072.00 M 18158.00 -5414.00 L 18737.00 -5572.00 L S 20 w 0 c 0 j 2 i 0.00 G k R R S 31655 -4185 M /Symbol F 1200 o f (\267) h R S 33381 -4185 M /Symbol F 1200 o f (\267) h R S 35106 -4185 M /Symbol F 1200 o f (\267) h R S 31655 -6007 M /Symbol F 1200 o f (\267) h R S 33381 -6007 M /Symbol F 1200 o f (\267) h R S 35106 -6007 M /Symbol F 1200 o f (\267) h R S 31655 -8116 M /Symbol F 1200 o f (\267) h R S 33381 -8116 M /Symbol F 1200 o f (\267) h R S 35106 -8116 M /Symbol F 1200 o f (\267) h R S 31655 -9938 M /Symbol F 1200 o f (\267) h R S 33381 -9938 M /Symbol F 1200 o f (\267) h R S 35106 -9938 M /Symbol F 1200 o f (\267) h R S N 31847.00 -3980.00 M 31847.00 -5588.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 31594.00 -5104.00 M 31847.00 -5647.00 L 32101.00 -5104.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 33572.00 -3980.00 M 33572.00 -5588.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 33319.00 -5104.00 M 33572.00 -5647.00 L 33826.00 -5104.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 35298.00 -3980.00 M 35298.00 -5588.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 35045.00 -5104.00 M 35298.00 -5647.00 L 35552.00 -5104.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 31847.00 -7911.00 M 31847.00 -9519.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 31594.00 -9035.00 M 31847.00 -9578.00 L 32101.00 -9035.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 31846.00 -5802.00 M 33357.00 -4007.00 L S 15 w 0 c 0 j 2 i 0.00 G k R R S N 33213.00 -4573.00 M 33369.00 -3994.00 L 32825.00 -4246.00 L S 15 w 0 c 0 j 2 i 0.00 G k R R S N 33572.00 -5802.00 M 35083.00 -4007.00 L S 15 w 0 c 0 j 2 i 0.00 G k R R S N 34939.00 -4573.00 M 35095.00 -3994.00 L 34551.00 -4246.00 L S 15 w 0 c 0 j 2 i 0.00 G k R R S N 31942.00 -9637.00 M 33453.00 -7842.00 L S 15 w 0 c 0 j 2 i 0.00 G k R R S N 33309.00 -8408.00 M 33465.00 -7829.00 L 32921.00 -8081.00 L S 15 w 0 c 0 j 2 i 0.00 G k R R S N 35202.00 -5802.00 M 31685.00 -7798.00 L S 15 w 0 c 0 j 2 i 0.00 G k R R S N 32017.00 -7318.00 M 31669.00 -7807.00 L 32268.00 -7759.00 L S 15 w 0 c 0 j 2 i 0.00 G k R R S N 17561.00 -3884.00 M 19265.00 -3884.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 18781.00 -4138.00 M 19324.00 -3884.00 L 18781.00 -3631.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 17561.00 -5706.00 M 19265.00 -5706.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 18781.00 -5960.00 M 19324.00 -5706.00 L 18781.00 -5453.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 21108.00 -3884.00 M 22812.00 -3884.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 22328.00 -4138.00 M 22871.00 -3884.00 L 22328.00 -3631.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S 42679 -4376 M /Symbol F 1200 o f (\267) h R S 44500 -4376 M /Symbol F 1200 o f (\267) h R S 40953 -6293 M /Symbol F 1200 o f (\267) h R S 42679 -6293 M /Symbol F 1200 o f (\267) h R S 44500 -6293 M /Symbol F 1200 o f (\267) h R S N 42105.00 -4076.00 M 44850.00 -4076.00 L S 15 w 0 c 0 j 2 i 0.00 G k R R S N 44324.00 -4330.00 M 44868.00 -4076.00 L 44324.00 -3823.00 L S 15 w 0 c 0 j 2 i 0.00 G k R R S N 44789.00 -4172.00 M 41177.00 -5883.00 L S 15 w 0 c 0 j 2 i 0.00 G k R R S N 41544.00 -5429.00 M 41161.00 -5891.00 L 41761.00 -5887.00 L S 15 w 0 c 0 j 2 i 0.00 G k R R S N 41050.00 -6090.00 M 42549.00 -6090.00 L S 15 w 0 c 0 j 2 i 0.00 G k R R S N 42023.00 -6344.00 M 42567.00 -6090.00 L 42023.00 -5837.00 L S 15 w 0 c 0 j 2 i 0.00 G k R R S N 25039.00 -3884.00 M 26743.00 -3884.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 26259.00 -4138.00 M 26802.00 -3884.00 L 26259.00 -3631.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 16885.00 -5023.00 M 27527.00 -5023.00 L S 15 w 0 c 0 j 2 i 0.00 G k R R S N 13630.00 -6061.00 M 4855.00 -7491.00 L S 20 w 0 c 0 j 2 i 0.00 G k R R S N 5327.00 -7158.00 M 4831.00 -7496.00 L 5409.00 -7658.00 L S 20 w 0 c 0 j 2 i 0.00 G k R R S N 41183.00 -4034.00 M 42674.00 -4034.00 L S 15 w 0 c 0 j 2 i 0.00 G k R R S N 42148.00 -4288.00 M 42692.00 -4034.00 L 42148.00 -3781.00 L S 15 w 0 c 0 j 2 i 0.00 G k R R S /ctm_cached x y D N 20194.00 -8274.00 T 9817.00 15191.00 s 0 0 1 -68 -112 A ctm_cached t 0 c S 50 w 0 c 0 j 2 i 0.00 G k R R S 11023 -14203 M /Times-Roman-ISOLatin1 F 1000 o f (MCU) h 0.0 -448.0 m (1) h 0 448.0 m ( =) h R S 11023 -16599 M /Times-Roman-ISOLatin1 F 1000 o f (MCU) h 0.0 -448.0 m (2) h 0 448.0 m ( =) h R S 11023 -19090 M /Times-Roman-ISOLatin1 F 1000 o f (MCU) h 0.0 -448.0 m (3) h 0 448.0 m ( =) h R S 11023 -21294 M /Times-Roman-ISOLatin1 F 1000 o f (MCU) h 0.0 -448.0 m (4) h 0 448.0 m ( =) h R S 16717 -24638 M /Times-Roman-ISOLatin1 F 1000 o f (Cs) h 0.0 -448.0 m (1) h 0 448.0 m ( data units) h R S 25825 -24638 M /Times-Roman-ISOLatin1 F 1000 o f (Cs) h 0.0 -448.0 m (2) h 0 448.0 m ( ) h R S 29852 -24638 M /Times-Roman-ISOLatin1 F 1000 o f (Cs) h 0.0 -448.0 m (3) h 0 448.0 m ( ) h R S 33686 -24638 M /Times-Roman-ISOLatin1 F 1000 o f (Cs) h 0.0 -448.0 m (4) h 0 448.0 m R N S 16308 -15128 19255 2476 @ I N 16308 -12652 T N N S -574 -2646 20500 3339 @ I N -574 693 T N S 800 -2179 M /Dutch801-Italic-DECmath_Italic F 1000 o f (d) h R S 1400 -1481 M /Times-Roman-ISOLatin1 F 800 o f (1) h R S 1400 -2525 M /Times-Roman-ISOLatin1 F 800 o f (00) h R S 2400 -2083 M /Times-Roman-ISOLatin1 F 800 o f ( ) h R S 2700 -2179 M /Dutch801-Italic-DECmath_Italic F 1000 o f (d) h R S 3300 -1481 M /Times-Roman-ISOLatin1 F 800 o f (1) h R S 3300 -2525 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 3800 -2534 M /Times-Roman-ISOLatin1 F 800 o f (1) h R S 4300 -2099 M /Times-Roman-ISOLatin1 F 1000 o f ( ) h R S 4600 -2179 M /Dutch801-Italic-DECmath_Italic F 1000 o f (d) h R S 5200 -1481 M /Times-Roman-ISOLatin1 F 800 o f (1) h R S 5200 -2534 M /Times-Roman-ISOLatin1 F 800 o f (1) h R S 5700 -2525 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 6200 -2099 M /Times-Roman-ISOLatin1 F 1000 o f ( ) h R S 6500 -2179 M /Dutch801-Italic-DECmath_Italic F 1000 o f (d) h R S 7100 -1481 M /Times-Roman-ISOLatin1 F 800 o f (1) h R S 7100 -2534 M /Times-Roman-ISOLatin1 F 800 o f (11) h R S 8100 -2099 M /Times-Roman-ISOLatin1 F 1000 o f ( ) h R S 9000 -2179 M /Dutch801-Italic-DECmath_Italic F 1000 o f (d) h R S 9600 -1481 M /Times-Roman-ISOLatin1 F 800 o f (2) h R S 9600 -2525 M /Times-Roman-ISOLatin1 F 800 o f (00) h R S 10600 -2099 M /Times-Roman-ISOLatin1 F 1000 o f ( ) h R S 10900 -2179 M /Dutch801-Italic-DECmath_Italic F 1000 o f (d) h R S 11500 -1481 M /Times-Roman-ISOLatin1 F 800 o f (2) h R S 11500 -2525 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 12000 -2534 M /Times-Roman-ISOLatin1 F 800 o f (1) h R S 12500 -2083 M /Times-Roman-ISOLatin1 F 800 o f ( ) h R S 13400 -2178 M /Dutch801-Italic-DECmath_Italic F 1000 o f (d) h R S 14000 -1476 M /Times-Roman-ISOLatin1 F 800 o f (3) h R S 14000 -2525 M /Times-Roman-ISOLatin1 F 800 o f (00) h R S 15000 -2099 M /Times-Roman-ISOLatin1 F 1000 o f ( ) h R S 15300 -2178 M /Dutch801-Italic-DECmath_Italic F 1000 o f (d) h R S 15900 -1476 M /Times-Roman-ISOLatin1 F 800 o f (3) h R S 15900 -2534 M /Times-Roman-ISOLatin1 F 800 o f (1) h R S 16400 -2525 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 16900 -2099 M /Times-Roman-ISOLatin1 F 1000 o f ( ) h R S 17800 -2179 M /Dutch801-Italic-DECmath_Italic F 1000 o f (d) h R S 18400 -1481 M /Times-Roman-ISOLatin1 F 800 o f (4) h R S 18400 -2525 M /Times-Roman-ISOLatin1 F 800 o f (00) h R S 19400 -2099 M /Times-Roman-ISOLatin1 F 1000 o f (,) h R R R N S 16377 -17452 19254 2287 @ I N 16377 -15165 T N N S -575 -2476 20500 3339 @ I N -575 863 T N S 800 -2179 M /Dutch801-Italic-DECmath_Italic F 1000 o f (d) h R S 1400 -1481 M /Times-Roman-ISOLatin1 F 800 o f (1) h R S 1400 -2525 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 1900 -2534 M /Times-Roman-ISOLatin1 F 800 o f (2) h R S 2400 -2099 M /Times-Roman-ISOLatin1 F 1200 o f ( ) h R S 2700 -2179 M /Dutch801-Italic-DECmath_Italic F 1000 o f (d) h R S 3300 -1481 M /Times-Roman-ISOLatin1 F 800 o f (1) h R S 3300 -2525 M /Times-Roman-ISOLatin1 F 800 o f (03) h R S 4300 -2099 M /Times-Roman-ISOLatin1 F 1200 o f ( ) h R S 4600 -2179 M /Dutch801-Italic-DECmath_Italic F 1000 o f (d) h R S 5200 -1481 M /Times-Roman-ISOLatin1 F 800 o f (1) h R S 5200 -2534 M /Times-Roman-ISOLatin1 F 800 o f (1) h R S 5700 -2525 M /Times-Roman-ISOLatin1 F 800 o f (2) h R S 6200 -2099 M /Times-Roman-ISOLatin1 F 1200 o f ( ) h R S 6500 -2179 M /Dutch801-Italic-DECmath_Italic F 1000 o f (d) h R S 7100 -1481 M /Times-Roman-ISOLatin1 F 800 o f (1) h R S 7100 -2534 M /Times-Roman-ISOLatin1 F 800 o f (1) h R S 7600 -2525 M /Times-Roman-ISOLatin1 F 800 o f (3) h R S 8100 -2099 M /Times-Roman-ISOLatin1 F 1200 o f ( ) h R S 9000 -2179 M /Dutch801-Italic-DECmath_Italic F 1000 o f (d) h R S 9600 -1481 M /Times-Roman-ISOLatin1 F 800 o f (2) h R S 9600 -2525 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 10100 -2534 M /Times-Roman-ISOLatin1 F 800 o f (2) h R S 10600 -2099 M /Times-Roman-ISOLatin1 F 1200 o f ( ) h R S 10900 -2179 M /Dutch801-Italic-DECmath_Italic F 1000 o f (d) h R S 11500 -1481 M /Times-Roman-ISOLatin1 F 800 o f (2) h R S 11500 -2525 M /Times-Roman-ISOLatin1 F 800 o f (03) h R S 12500 -2099 M /Times-Roman-ISOLatin1 F 1200 o f ( ) h R S 13400 -2178 M /Dutch801-Italic-DECmath_Italic F 1000 o f (d) h R S 14000 -1476 M /Times-Roman-ISOLatin1 F 800 o f (3) h R S 14000 -2541 M /Times-Roman-ISOLatin1 F 1000 o f (0) h R S 14500 -2534 M /Times-Roman-ISOLatin1 F 800 o f (1) h R S 15000 -2099 M /Times-Roman-ISOLatin1 F 1200 o f ( ) h R S 15300 -2178 M /Dutch801-Italic-DECmath_Italic F 1000 o f (d) h R S 15900 -1476 M /Times-Roman-ISOLatin1 F 800 o f (3) h R S 15900 -2534 M /Times-Roman-ISOLatin1 F 800 o f (11) h R S 16900 -2099 M /Times-Roman-ISOLatin1 F 1200 o f ( ) h R S 17800 -2179 M /Dutch801-Italic-DECmath_Italic F 1000 o f (d) h R S 18400 -1481 M /Times-Roman-ISOLatin1 F 800 o f (4) h R S 18400 -2525 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 18900 -2534 M /Times-Roman-ISOLatin1 F 800 o f (1) h R S 19400 -2099 M /Times-Roman-ISOLatin1 F 1200 o f (,) h R R R N S 16282 -19949 19447 2391 @ I N 16282 -17558 T N N S -478 -2511 20500 3347 @ I N -478 836 T N S 800 -2179 M /Dutch801-Italic-DECmath_Italic F 1000 o f (d) h R S 1400 -1481 M /Times-Roman-ISOLatin1 F 800 o f (1) h R S 1400 -2525 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 1900 -2534 M /Times-Roman-ISOLatin1 F 800 o f (4) h R S 2400 -2099 M /Times-Roman-ISOLatin1 F 1200 o f ( ) h R S 2700 -2179 M /Dutch801-Italic-DECmath_Italic F 1000 o f (d) h R S 3300 -1481 M /Times-Roman-ISOLatin1 F 800 o f (1) h R S 3300 -2525 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 3800 -2533 M /Times-Roman-ISOLatin1 F 800 o f (5) h R S 4300 -2099 M /Times-Roman-ISOLatin1 F 1200 o f ( ) h R S 4600 -2179 M /Dutch801-Italic-DECmath_Italic F 1000 o f (d) h R S 5200 -1481 M /Times-Roman-ISOLatin1 F 800 o f (1) h R S 5200 -2534 M /Times-Roman-ISOLatin1 F 800 o f (14) h R S 6200 -2099 M /Times-Roman-ISOLatin1 F 1200 o f ( ) h R S 6500 -2179 M /Dutch801-Italic-DECmath_Italic F 1000 o f (d) h R S 7100 -1481 M /Times-Roman-ISOLatin1 F 800 o f (1) h R S 7100 -2534 M /Times-Roman-ISOLatin1 F 800 o f (1) h R S 7600 -2533 M /Times-Roman-ISOLatin1 F 800 o f (5) h R S 8100 -2099 M /Times-Roman-ISOLatin1 F 1200 o f ( ) h R S 9000 -2179 M /Dutch801-Italic-DECmath_Italic F 1000 o f (d) h R S 9600 -1481 M /Times-Roman-ISOLatin1 F 800 o f (2) h R S 9600 -2525 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 10100 -2534 M /Times-Roman-ISOLatin1 F 800 o f (4) h R S 10600 -2099 M /Times-Roman-ISOLatin1 F 1200 o f ( ) h R S 10900 -2179 M /Dutch801-Italic-DECmath_Italic F 1000 o f (d) h R S 11500 -1481 M /Times-Roman-ISOLatin1 F 800 o f (2) h R S 11500 -2525 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 12000 -2533 M /Times-Roman-ISOLatin1 F 800 o f (5) h R S 12500 -2099 M /Times-Roman-ISOLatin1 F 1200 o f ( ) h R S 13400 -2178 M /Dutch801-Italic-DECmath_Italic F 1000 o f (d) h R S 14000 -1476 M /Times-Roman-ISOLatin1 F 800 o f (3) h R S 14000 -2525 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 14500 -2534 M /Times-Roman-ISOLatin1 F 800 o f (2) h R S 15000 -2099 M /Times-Roman-ISOLatin1 F 1200 o f ( ) h R S 15300 -2178 M /Dutch801-Italic-DECmath_Italic F 1000 o f (d) h R S 15900 -1476 M /Times-Roman-ISOLatin1 F 800 o f (3) h R S 15900 -2534 M /Times-Roman-ISOLatin1 F 800 o f (12) h R S 16900 -2099 M /Times-Roman-ISOLatin1 F 1200 o f ( ) h R S 17800 -2179 M /Dutch801-Italic-DECmath_Italic F 1000 o f (d) h R S 18400 -1481 M /Times-Roman-ISOLatin1 F 800 o f (4) h R S 18400 -2525 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 18900 -2534 M /Times-Roman-ISOLatin1 F 800 o f (2) h R S 19400 -2099 M /Times-Roman-ISOLatin1 F 1200 o f (,) h R R R N S 16282 -22537 19447 2391 @ I N 16282 -20146 T N N S -478 -2440 20500 3347 @ I N -478 907 T N S 800 -2179 M /Dutch801-Italic-DECmath_Italic F 1000 o f (d) h R S 1400 -1481 M /Times-Roman-ISOLatin1 F 800 o f (1) h R S 1400 -2525 M /Times-Roman-ISOLatin1 F 800 o f (20) h R S 2400 -2099 M /Times-Roman-ISOLatin1 F 1200 o f ( ) h R S 2700 -2179 M /Dutch801-Italic-DECmath_Italic F 1000 o f (d) h R S 3300 -1481 M /Times-Roman-ISOLatin1 F 800 o f (1) h R S 3300 -2541 M /Times-Roman-ISOLatin1 F 1000 o f (2) h R S 3800 -2533 M /Times-Roman-ISOLatin1 F 800 o f (1) h R S 4300 -2099 M /Times-Roman-ISOLatin1 F 1200 o f ( ) h R S 4600 -2179 M /Dutch801-Italic-DECmath_Italic F 1000 o f (d) h R S 5200 -1481 M /Times-Roman-ISOLatin1 F 800 o f (1) h R S 5200 -2534 M /Times-Roman-ISOLatin1 F 800 o f (30) h R S 6200 -2099 M /Times-Roman-ISOLatin1 F 1200 o f ( ) h R S 6500 -2179 M /Dutch801-Italic-DECmath_Italic F 1000 o f (d) h R S 7100 -1481 M /Times-Roman-ISOLatin1 F 800 o f (1) h R S 7100 -2534 M /Times-Roman-ISOLatin1 F 800 o f (3) h R S 7600 -2533 M /Times-Roman-ISOLatin1 F 800 o f (1) h R S 8100 -2099 M /Times-Roman-ISOLatin1 F 1200 o f ( ) h R S 9000 -2179 M /Dutch801-Italic-DECmath_Italic F 1000 o f (d) h R S 9600 -1481 M /Times-Roman-ISOLatin1 F 800 o f (2) h R S 9600 -2525 M /Times-Roman-ISOLatin1 F 800 o f (1) h R S 10100 -2534 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 10600 -2099 M /Times-Roman-ISOLatin1 F 1200 o f ( ) h R S 10900 -2179 M /Dutch801-Italic-DECmath_Italic F 1000 o f (d) h R S 11500 -1481 M /Times-Roman-ISOLatin1 F 800 o f (2) h R S 11500 -2525 M /Times-Roman-ISOLatin1 F 800 o f (1) h R S 12000 -2533 M /Times-Roman-ISOLatin1 F 800 o f (1) h R S 12500 -2099 M /Times-Roman-ISOLatin1 F 1200 o f ( ) h R S 13400 -2178 M /Dutch801-Italic-DECmath_Italic F 1000 o f (d) h R S 14000 -1476 M /Times-Roman-ISOLatin1 F 800 o f (3) h R S 14000 -2525 M /Times-Roman-ISOLatin1 F 800 o f (2) h R S 14500 -2534 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 15000 -2099 M /Times-Roman-ISOLatin1 F 1200 o f ( ) h R S 15300 -2178 M /Dutch801-Italic-DECmath_Italic F 1000 o f (d) h R S 15900 -1476 M /Times-Roman-ISOLatin1 F 800 o f (3) h R S 15900 -2534 M /Times-Roman-ISOLatin1 F 800 o f (30) h R S 16900 -2099 M /Times-Roman-ISOLatin1 F 1200 o f ( ) h R S 17800 -2179 M /Dutch801-Italic-DECmath_Italic F 1000 o f (d) h R S 18400 -1481 M /Times-Roman-ISOLatin1 F 800 o f (4) h R S 18400 -2525 M /Times-Roman-ISOLatin1 F 800 o f (1) h R S 18900 -2534 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 19400 -2099 M /Times-Roman-ISOLatin1 F 1200 o f (,) h R R R S /ctm_cached x y D N 26734.00 -20869.00 T 2089.00 2274.00 s 0 0 1 -41 -139 A ctm_cached t 0 c S 50 w 0 c 0 j 2 i 0.00 G k R R S /ctm_cached x y D N 30760.00 -20869.00 T 2089.00 2274.00 s 0 0 1 -41 -139 A ctm_cached t 0 c S 50 w 0 c 0 j 2 i 0.00 G k R R S /ctm_cached x y D N 34402.00 -20868.00 T 1454.00 1988.00 s 0 0 1 -41 -139 A ctm_cached t 0 c S 50 w 0 c 0 j 2 i 0.00 G k R R S 12817 -27196 M /Times-Roman-ISOLatin1 F 1000 o f (Figure 8. Generalized Interleaved Data Ordering Example) h R R R R S 30679 -75738 M /Times-Roman-ISOLatin1 F 1000 o f (9) h R showpage $P e %%Page: 10 10 /$P a D g N 0 79200 T S R S 6324 -5315 T N 0 G 300 -1050 M 300 -18735 M 300 -19835 M 300 -21085 M /Times-Bold-ISOLatin1 $ /Times-Bold & P /Times-Bold-ISOLatin1 F 1200 o f 473.0 0 32 (7 Baseline and Other DCT Sequential) W 300 -22385 M (Codecs) h 300 -24135 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1000 o f 97.0 0 32 (The DCT sequential mode of operation consists of the) W 300 -25235 M 135.1 0 32 (FDCT and Quantization steps from section 4, and the) W 300 -26335 M 481.0 0 32 (multiple\255component control from section 6.3. In) W 300 -27435 M 182.3 0 32 (addition to the Baseline sequential codec, other DCT) W 300 -28535 M 91.4 0 32 (sequential codecs are defined to accommodate the two) W 300 -29635 M 70.9 0 32 (different sample precisions \(8 and 12 bits\) and the two) W 300 -30735 M 240.7 0 32 (different types of entropy coding methods \(Huffman) W 300 -31835 M (and arithmetic\).) h 300 -32935 M 300 -34035 M 305.1 0 32 (Baseline sequential coding is for images with 8\255bit) W 300 -35135 M 67.8 0 32 (samples and uses Huffman coding only. It also differs) W 300 -36235 M 402.5 0 32 (from the other sequential DCT codecs in that its) W 300 -37335 M 40.2 0 32 (decoder can store only two sets of Huffman tables \(one) W 300 -38435 M 47.1 0 32 (AC table and DC table per set\). This restriction means) W 300 -39535 M 603.1 0 32 (that, for images with three or four interleaved) W 300 -40635 M 36.9 0 32 (components, at least one set of Huffman tables must be) W 300 -41735 M 149.0 0 32 (shared by two components. This restriction poses no) W 300 -42835 M 106.9 0 32 (limitation at all for noninterleaved components; a new) W 300 -43935 M 268.7 0 32 (set of tables can be loaded into the decoder before) W 300 -45035 M (decompression of a noninterleaved component begins.) h 300 -46135 M 300 -47235 M 313.3 0 32 (For many applications which do need to interleave) W 300 -48335 M 341.0 0 32 (three color components, this restriction is hardly a) W 300 -49435 M 467.9 0 32 (limitation at all. Color spaces \(YUV, CIELUV,) W 300 -50535 M 254.7 0 32 (CIELAB, and others\) which represent the chromatic) W 300 -51635 M 398.0 0 32 (\(``color''\) information in two components and the) W 300 -52735 M 278.2 0 32 (achromatic \(``grayscale''\) information in a third are) W 300 -53835 M 134.9 0 32 (more efficient for compression than spaces like RGB. ) W 300 -54935 M 95.9 0 32 (One Huffman table set can be used for the achromatic) W 300 -56035 M 162.0 0 32 (component and one for the chrominance components. ) W 300 -57135 M 805.3 0 32 (DCT coefficient statistics are similar for the) W 300 -58235 M 118.9 0 32 (chrominance components of most images, and one set) W 300 -59335 M 41.5 0 32 (of Huffman tables can encode both almost as optimally) W 300 -60435 M (as two.) h 300 -61535 M 300 -62635 M 448.1 0 32 (The committee also felt that early availability of) W 300 -63735 M 665.8 0 32 (single\255chip implementations at commodity prices) W 300 -64835 M 602.2 0 32 (would encourage early acceptance of the JPEG) W 300 -65935 M 203.6 0 32 (proposal in a variety of applications. In 1988 when) W -6324 5315 T S N S 4614 -23300 26461 16585 @ I N 4614 -6715 T N S 10111 -3956 M /Times-Roman-ISOLatin1 F 1000 o f (Encoding ) h R S 10191 -4798 M /Times-Roman-ISOLatin1 F 900 o f ( ) h n 1.111 o f (Process) h R S 3508 -2047 M /Times-Roman-ISOLatin1 F 900 o f ( ) h n 1.111 o f (A) h R S 3573 -4517 M /Times-Roman-ISOLatin1 F 900 o f ( ) h n 1.111 o f (B) h R S 3709 -6861 M /Times-Roman-ISOLatin1 F 900 o f ( ) h n 1.111 o f (C) h R S 3690 -2541 1239 1570 @ S 50 w 0 c 0 j 2 i 0.00 G k R R S 3690 -4936 1239 1569 @ S 50 w 0 c 0 j 2 i 0.00 G k R R S 3690 -7168 1239 1569 @ S 50 w 0 c 0 j 2 i 0.00 G k R R S 9629 -5104 4697 2315 @ S 50 w 0 c 0 j 2 i 0.00 G k R R S N 4995.00 -1881.00 M 6300.00 -1881.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 4995.00 -4111.00 M 6300.00 -4111.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 4995.00 -6423.00 M 6300.00 -6423.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S 8970 -10675 M /Times-Roman-ISOLatin1 F 1000 o f (Table) h n 0.900 o f ( ) h n 1.111 o f (Table ) h R S 12189 -12096 3325 2419 @ S 50 w 0 c 0 j 2 i 0.00 G k R R S N 10543.00 -9759.00 M 10543.00 -8272.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 13458.00 -9484.00 M 13458.00 -8269.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 14262.00 -3945.00 M 17538.00 -3945.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 17054.00 -4199.00 M 17597.00 -3945.00 L 17054.00 -3692.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S /ctm_cached x y D N 8425.00 -4192.00 T 1276.00 1616.00 s 0 0 1 -133 -227 A ctm_cached t 0 c S 50 w 0 c 0 j 2 i 0.00 G k R R S N 7064.00 -5064.00 M 7573.00 -5381.00 L 7489.00 -4787.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 7469.00 -3594.00 M 7572.00 -3003.00 L 7053.00 -3304.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S /ctm_cached x y D N 12140.00 -4725.00 T 2711.00 3432.00 s 0 0 1 -61 -119 A ctm_cached t 0 c S 50 w 0 c 0 j 2 i 0.00 G k R R S N 13156.00 -8199.00 M 13486.00 -7698.00 L 12890.00 -7767.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 11389.00 -7778.00 M 10794.00 -7699.00 L 11115.00 -8205.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S 17720 -4729 5866 1568 @ S 50 w 0 c 0 j 2 i 0.00 G k R R S 6168 -2114 M /Symbol F 900 o f (\267) h R S 6428 -3104 M /Symbol F 900 o f (\267) h R S 10348 -8419 M /Symbol F 900 o f (\267) h R S 13282 -8419 M /Symbol F 900 o f (\267) h R S N 11132.00 -8532.00 M 12239.00 -6798.00 L 12239.00 -5180.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 12493.00 -5665.00 M 12239.00 -5121.00 L 11986.00 -5665.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 6561.00 -2831.00 M 8194.00 -4069.00 L 9512.00 -4069.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S N 9028.00 -4323.00 M 9571.00 -4069.00 L 9028.00 -3816.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S 10998 -8638 M /Symbol F 900 o f (\267) h R S 18883 -10330 M /Times-Roman-ISOLatin1 F 1000 o f (Compressed ) h R S 18733 -11395 M /Times-Roman-ISOLatin1 F 900 o f ( ) h n 1.111 o f (Image Data) h R S 5462 -14680 M /Times-Roman-ISOLatin1 F 1000 o f (Figure 9. Component\255Interleave and ) h R S 3777 -10330 M /Times-Roman-ISOLatin1 F 1000 o f (Source ) h R S 2549 -11395 M /Times-Roman-ISOLatin1 F 900 o f ( ) h n 1.111 o f (Image Data) h R S 8745 -11663 M /Times-Roman-ISOLatin1 F 1000 o f (Spec. 1 ) h R S 12506 -11661 M /Times-Roman-ISOLatin1 F 1000 o f (Spec. 2) h R S 6168 -4371 M /Symbol F 900 o f (\267) h R S 6102 -6632 M /Symbol F 900 o f (\267) h R S 8427 -12096 3233 2419 @ S 50 w 0 c 0 j 2 i 0.00 G k R R S 9584 -15926 M /Times-Roman-ISOLatin1 F 1000 o f (Table\255Switching Control) h R R R R S 31919 -7157 T N 0 G 300 -1050 M /Times-Roman-ISOLatin1 F 1000 o f 41.5 0 32 (Baseline sequential was defined, the committee's VLSI) W 300 -2150 M 43.6 0 32 (experts felt that current technology made the feasibility) W 300 -3250 M 126.6 0 32 (of crowding four sets of loadable Huffman tables \255 in) W 300 -4350 M 231.2 0 32 (addition to four sets of Quantization tables \255 onto a) W 300 -5450 M 983.0 0 32 (single commodity\255priced codec chip a risky) W 300 -6550 M (proposition.) h 300 -7650 M 300 -8750 M 41.7 0 32 (The FDCT, Quantization, DC differencing, and zig\255zag) W 300 -9850 M 231.3 0 32 (ordering processing steps for the Baseline sequential) W 300 -10950 M 119.4 0 32 (codec proceed just as described in section 4. Prior to) W 300 -12050 M 341.4 0 32 (entropy coding, there usually are few nonzero and) W 300 -13150 M 254.1 0 32 (many zero\255valued coefficients. The task of entropy) W 300 -14250 M 158.9 0 32 (coding is to encode these few coefficients efficiently. ) W 300 -15350 M 138.7 0 32 (The description of Baseline sequential entropy coding) W 300 -16450 M 46.0 0 32 (is given in two steps: conversion of the quantized DCT) W 300 -17550 M 157.3 0 32 (coefficients into an intermediate sequence of symbols) W 300 -18650 M 638.7 0 32 (and assignment of variable\255length codes to the) W 300 -19750 M (symbols.) h 300 -20850 M 300 -21950 M /Times-Bold-ISOLatin1 F 1000 o f (7.1 Intermediate Entropy Coding Representations) h 300 -23650 M /Times-Roman-ISOLatin1 F 1000 o f 47.7 0 32 (In the intermediate symbol sequence, each nonzero AC) W 300 -24750 M 435.0 0 32 (coefficient is represented in combination with the) W 300 -25850 M 128.2 0 32 (``runlength'' \(consecutive number\) of zero\255valued AC) W 300 -26950 M 151.1 0 32 (coefficients which precede it in the zig\255zag sequence. ) W 300 -28050 M (Each such runlength/nonzero\255coefficient combination is) h 300 -29150 M (\(usually\) represented by a pair of symbols:) h 300 -30250 M 300 -31350 M 5120 -31350 M (symbol\2551) h 15387 -31350 M (symbol\2552) h 300 -32450 M 2316 -32450 M (\(RUNLENGTH, SIZE\)) h 14055 -32450 M (\(AMPLITUDE\)) h 300 -33550 M 300 -34650 M 677.4 0 32 (Symbol\2551 represents two pieces of information, ) W 300 -35750 M 410.8 0 32 (RUNLENGTH and SIZE. Symbol\2552 represents the) W 300 -36850 M 166.4 0 32 (single piece of information designated AMPLITUDE,) W 300 -37950 M 339.9 0 32 (which is simply the amplitude of the nonzero AC) W 300 -39050 M 955.4 0 32 (coefficient. RUNLENGTH is the number of) W 300 -40150 M 83.7 0 32 (consecutive zero\255valued AC coefficients in the zig\255zag) W 300 -41250 M 167.0 0 32 (sequence preceding the nonzero AC coefficient being) W 300 -42350 M 61.7 0 32 (represented. SIZE is the number of bits used to encode) W 300 -43450 M 194.1 0 32 (AMPLITUDE \255 that is, to encoded symbol\2552, by the) W 300 -44550 M 272.0 0 32 (signed\255integer encoding used with JPEG's particular) W 300 -45650 M (method of Huffman coding. ) h 300 -46750 M 300 -47850 M 127.0 0 32 (RUNLENGTH represents zero\255runs of length 0 to 15.) W 300 -48950 M 35.3 0 32 (Actual zero\255runs in the zig\255zag sequence can be greater) W 300 -50050 M 66.5 0 32 (than 15, so the symbol\2551 value \(15, 0\) is interpreted as) W 300 -51150 M 85.9 0 32 (the extension symbol with runlength=16. There can be) W 300 -52250 M 191.0 0 32 (up to three consecutive \(15, 0\) extensions before the) W 300 -53350 M 555.0 0 32 (terminating symbol\2551 whose RUNLENGTH value) W 300 -54450 M 655.2 0 32 (completes the actual runlength. The terminating) W 300 -55550 M 293.1 0 32 (symbol\2551 is always followed by a single symbol\2552,) W 300 -56650 M 311.2 0 32 (except for the case in which the last run of zeros) W 300 -57750 M 100.6 0 32 (includes the last \(63d\) AC coefficient. In this frequent) W 300 -58850 M 34.8 0 32 (case, the special symbol\2551 value \(0,0\) means EOB \(end) W 300 -59950 M 129.9 0 32 (of block\), and can be viewed as an ``escape'' symbol) W 300 -61050 M (which terminates the 8x8 sample block.) h 300 -62150 M -31919 7157 T R S 30392 -75162 M /Times-Roman-ISOLatin1 F 1000 o f (10) h R showpage $P e %%Page: 11 11 /$P a D g N 0 79200 T S R S 6328 -7185 T N 0 G 300 -1050 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1000 o f 375.0 0 32 (Thus, for each 8x8 block of samples, the zig\255zag) W 300 -2150 M 805.5 0 32 (sequence of 63 quantized AC coefficients is) W 300 -3250 M 458.3 0 32 (represented as a sequence of symbol\2551, symbol\2552) W 300 -4350 M 79.4 0 32 (symbol pairs, though each ``pair'' can have repetitions) W 300 -5450 M 7.5 0 32 (of symbol\2551 in the case of a long run\255length or only one) W 300 -6550 M (symbol\2551 in the case of an EOB.) h 300 -7650 M 300 -8750 M 518.5 0 32 (The possible range of quantized AC coefficients) W 300 -9850 M 575.3 0 32 (determines the range of values which both the) W 300 -10950 M 793.8 0 32 (AMPLITUDE and the SIZE information must) W 300 -12050 M 388.7 0 32 (represent. A numerical analysis of the 8x8 FDCT) W 300 -13150 M 135.0 0 32 (equation shows that, if the 64\255point \(8x8 block\) input) W 300 -14250 M 235.8 0 32 (signal contains N\255bit integers, then the nonfractional) W 300 -15350 M 7.0 0 32 (part of the output numbers \(DCT coefficients\) can grow) W 300 -16450 M 95.5 0 32 (by at most 3 bits. This is also the largest possible size) W 300 -17550 M 69.5 0 32 (of a quantized DCT coefficient when its quantizer step) W 300 -18650 M (size has integer value 1.) h 300 -19750 M 300 -20850 M 83.1 0 32 (Baseline sequential has 8\255bit integer source samples in) W 300 -21950 M 381.9 0 32 (the range [\2552) W n 0.800 o f 0.0 448.0 m 381.9 0 32 (7) W 0 -448.0 m n 1.250 o f 381.9 0 32 (, 2) W n 0.800 o f 0.0 448.0 m 381.9 0 32 (7) W 0 -448.0 m n 1.250 o f 381.9 0 32 (\2551], so quantized AC coefficient) W 300 -23050 M 132.8 0 32 (amplitudes are covered by integers in the range [\2552) W n 0.800 o f 0.0 448.0 m 132.8 0 32 (10) W 0 -448.0 m n 1.250 o f 132.8 0 32 (,) W 300 -24150 M 406.4 0 32 (2) W n 0.800 o f 0.0 448.0 m 406.4 0 32 (10) W 0 -448.0 m n 1.250 o f 406.4 0 32 (\2551]. The signed\255integer encoding uses symbol\2552) W 300 -25250 M 71.9 0 32 (AMPLITUDE codes of 1 to 10 bits in length \(so SIZE) W 300 -26350 M 888.7 0 32 (also represents values from 1 to 10\), and) W 300 -27450 M 416.6 0 32 (RUNLENGTH represents values from 0 to 15 as) W 300 -28550 M 36.8 0 32 (discussed previously. For AC coefficients, the structure) W 300 -29650 M 1027.2 0 32 (of the symbol\2551 and symbol\2552 intermediate) W 300 -30750 M 547.3 0 32 (representations is illustrated in Tables 2 and 3,) W 300 -31850 M (respectively.) h 300 -32950 M 300 -34050 M 379.7 0 32 (The intermediate representation for an 8x8 sample) W 300 -35150 M 694.4 0 32 (block's differential DC coefficient is structured) W 300 -36250 M 310.6 0 32 (similarly. Symbol\2551, however, represents only SIZE) W 300 -37350 M 1027.0 0 32 (information; symbol\2552 represents AMPLITUDE) W 300 -38450 M (information as before:) h 300 -39550 M 300 -40650 M 3437 -40650 M (symbol\2551) h 13467 -40650 M (symbol\2552) h 300 -41750 M 3938 -41750 M (\(SIZE\)) h 12135 -41750 M (\(AMPLITUDE\)) h 300 -42850 M 300 -43950 M 63.6 0 32 (Because the DC coefficient is differentially encoded, it) W 300 -45050 M 323.6 0 32 (is covered by twice as many integer values, [\2552) W n 0.800 o f 0.0 448.0 m 323.6 0 32 (11) W 0 -448.0 m n 1.250 o f 323.6 0 32 (,) W 300 -46150 M 167.3 0 32 (2) W n 0.800 o f 0.0 448.0 m 167.3 0 32 (11) W 0 -448.0 m n 1.250 o f 167.3 0 32 (\2551] as the AC coefficients, so one additional level) W 300 -47250 M 366.4 0 32 (must be added to the bottom of Table 3 for DC) W 300 -48350 M 688.6 0 32 (coefficients. Symbol\2551 for DC coefficients thus) W 300 -49450 M (represents a value from 1 to 11.) h -6328 7185 T S N S 6152 -71270 23393 14285 @ I N 6152 -56985 T N S 9077 -3333 M /Times-Roman-ISOLatin1 F 1100 o f (0 1 2 . . . 9 10) h R S 1502 -7064 M /Times-Roman-ISOLatin1 F 1100 o f (RUN) h R S 6918 -4947 M /Times-Roman-ISOLatin1 F 1100 o f (0) h R S 6918 -6258 M /Times-Roman-ISOLatin1 F 1100 o f (.) h R S 6918 -7568 M /Times-Roman-ISOLatin1 F 1100 o f (.) h R S 6918 -8879 M /Times-Roman-ISOLatin1 F 1100 o f (.) h R S 6918 -10191 M /Times-Roman-ISOLatin1 F 1100 o f (15) h R S 9122 -6258 M /Times-Roman-ISOLatin1 F 1100 o f (X) h R S 9122 -7568 M /Times-Roman-ISOLatin1 F 1100 o f (X) h R S 9122 -8879 M /Times-Roman-ISOLatin1 F 1100 o f (X) h R S 8548 -4947 M /Times-Roman-ISOLatin1 F 1100 o f (EOB) h R S 8548 -10191 M /Times-Roman-ISOLatin1 F 1100 o f (ZRL) h R S 13199 -7064 M /Times-Roman-ISOLatin1 F 1100 o f (RUN\255SIZE) h R S 14061 -8071 M /Times-Roman-ISOLatin1 F 1100 o f (values) h R S 1502 -8071 M /Times-Roman-ISOLatin1 F 1100 o f (LENGTH) h R S 1166 -10594 20612 9500 @ S 50 w 0 c 0 j 2 i 0.00 G k R R S N 1213.00 -3787.00 M 21826.00 -3787.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S 4762 -12349 M /Times-Roman-ISOLatin1 F 1000 o f (Table 2. Baseline Huffman Coding) h R S 8693 -13669 M /Times-Roman-ISOLatin1 F 1000 o f (Symbol\2551 Structure ) h R S 15084 -2303 M /Times-Roman-ISOLatin1 F 1100 o f (SIZE) h R S N 6215.00 -1174.00 M 6215.00 -10570.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R R R R S 31919 -7195 T N 0 G 300 -1050 M /Times-Bold-ISOLatin1 $ /Times-Bold & P /Times-Bold-ISOLatin1 F 1000 o f (7.2 Variable\255Length Entropy Coding) h 300 -2750 M /Times-Roman-ISOLatin1 F 1000 o f 58.8 0 32 (Once the quantized coefficient data for an 8x8 block is) W 300 -3850 M 594.4 0 32 (represented in the intermediate symbol sequence) W 300 -4950 M 294.8 0 32 (described above, variable\255length codes are assigned. ) W 300 -6050 M 52.0 0 32 (For each 8x8 block, the DC coefficient's symbol\2551 and) W 300 -7150 M (symbol\2552 representation is coded and output first.) h 300 -8250 M 300 -9350 M 232.4 0 32 (For both DC and AC coefficients, each symbol\2551 is) W 300 -10450 M 194.6 0 32 (encoded with a variable\255length code \(VLC\) from the) W 300 -11550 M 180.4 0 32 (Huffman table set assigned to the 8x8 block's image) W 300 -12650 M 571.1 0 32 (component. Each symbol\2552 is encoded with a) W 300 -13750 M 194.7 0 32 (\026) W 194.7 0 32 (variable\255length integer) W 194.7 0 32 (\027) W 194.7 0 32 ( \(VLI\) code whose length in) W 300 -14850 M 11.4 0 32 (bits is given in Table 3. VLCs and VLIs both are codes) W 300 -15950 M 41.6 0 32 (with variable lengths, but VLIs are not Huffman codes. ) W 300 -17050 M 187.8 0 32 (An important distinction is that the length of a VLC) W 300 -18150 M 160.2 0 32 (\(Huffman code\) is not known until it is decoded, but) W 300 -19250 M (the length of a VLI is stored in its preceding VLC.) h 300 -20350 M 300 -21450 M 59.6 0 32 (Huffman codes \(VLCs\) must be specified externally as) W 300 -22550 M 235.9 0 32 (an input to JPEG encoders. \(Note that the form in) W 300 -23650 M 401.0 0 32 (which Huffman tables are represented in the data) W 300 -24750 M 400.6 0 32 (stream is an indirect specification with which the) W 300 -25850 M 170.4 0 32 (decoder must construct the tables themselves prior to) W 300 -26950 M 467.3 0 32 (decompression.\) The JPEG proposal includes an) W 300 -28050 M 10.3 0 32 (example set of Huffman tables in its information annex,) W 300 -29150 M 227.0 0 32 (but because they are application\255specific, it specifies) W 300 -30250 M 100.2 0 32 (none for required use. The VLI codes in contrast, are) W 300 -31350 M 289.6 0 32 (\026) W 289.6 0 32 (hardwired) W 289.6 0 32 (\027) W 289.6 0 32 ( into the proposal. This is appropriate,) W 300 -32450 M 105.3 0 32 (because the VLI codes are far more numerous, can be) W 300 -33550 M 79.9 0 32 (computed rather than stored, and have not been shown) W 300 -34650 M 99.3 0 32 (to be appreciably more efficient when implemented as) W 300 -35750 M (Huffman codes.) h 300 -36850 M 300 -37950 M /Times-Bold-ISOLatin1 F 1000 o f (7.3 Baseline Encoding Example) h 300 -39650 M /Times-Roman-ISOLatin1 F 1000 o f 43.4 0 32 (This section gives an example of Baseline compression) W 300 -40750 M 47.1 0 32 (and encoding of a single 8x8 sample block. Note that a) W 300 -41850 M 3.0 0 32 (good deal of the operation of a complete JPEG Baseline) W 300 -42950 M 708.2 0 32 (encoder is omitted here, including creation of) W 300 -44050 M 208.8 0 32 (Interchange Format information \(parameters, headers,) W 300 -45150 M 777.5 0 32 (quantization and Huffman tables\), byte\255stuffing,) W 300 -46250 M 52.1 0 32 (padding to byte\255boundaries prior to a marker code, and) W 300 -47350 M 64.5 0 32 (other key operations. Nonetheless, this example should) W 300 -48450 M 638.9 0 32 (help to make concrete much of the foregoing) W 300 -49550 M (explanation.) h 300 -50650 M 300 -51750 M 524.0 0 32 (Figure 10\(a\) is an 8x8 block of 8\255bit samples,) W 300 -52850 M 389.0 0 32 (aribtrarily extracted from a real image. The small) W 300 -53950 M 703.3 0 32 (variations from sample to sample indicate the) W 300 -55050 M 722.4 0 32 (predominance of low spatial frequencies. After) W 300 -56150 M 345.3 0 32 (subtracting 128 from each sample for the required) W 300 -57250 M 457.8 0 32 (level\255shift, the 8x8 block is input to the FDCT,) W 300 -58350 M 17.4 0 32 (equation \(1\). Figure 10\(b\) shows \(to one decimal place\)) W 300 -59450 M 68.0 0 32 (the resulting DCT coefficients. Except for a few of the) W 300 -60550 M 97.3 0 32 (lowest frequency coefficients, the amplitudes are quite) W 300 -61650 M (small.) h 300 -62750 M -31919 7195 T R S 30392 -75642 M /Times-Roman-ISOLatin1 F 1000 o f (11) h R showpage $P e %%Page: 12 12 /$P a D g N 0 79200 T S S 7200 -2700 T N 0 G 300 -1200 M -7200 2700 T R S 7200 -74700 T N 0 G 300 -1200 M -7200 74700 T R R S 7070 -42751 T N 0 G 300 -1050 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1000 o f 236.4 0 32 (Figure 10\(c\) is the example quantization table for) W 300 -2150 M 264.4 0 32 (luminance \(grayscale\) components included in the) W 300 -3250 M 101.6 0 32 (informational annex of the draft JPEG standard part) W 300 -4350 M 486.3 0 32 (1 [2]. Figure 10\(d\) shows the quantized DCT) W 300 -5450 M 214.4 0 32 (coefficients, normalized by their quantization table) W 300 -6550 M 106.4 0 32 (entries, as specified by equation \(3\). At the decoder) W 300 -7650 M 487.0 0 32 (these numbers are ) W 487.0 0 32 (\026) W 487.0 0 32 (denormalized) W 487.0 0 32 (\027) W 487.0 0 32 ( according to) W 300 -8750 M 206.8 0 32 (equation \(4\), and input to the IDCT, equation \(2\).) W 300 -9850 M 90.7 0 32 (Finally, figure 10\(f\) shows the reconstructed sample) W 300 -10950 M (values, remarkably similar to the originals in 10\(a\). ) h 300 -12050 M 300 -13150 M 331.9 0 32 (Of course, the numbers in figure 10\(d\) must be) W 300 -14250 M 893.0 0 32 (Huffman\255encoded before transmission to the) W 300 -15350 M 26.7 0 32 (decoder. The first number of the block to be encoded) W 300 -16450 M 541.7 0 32 (is the DC term, which must be differentially) W 300 -17550 M 172.3 0 32 (encoded. If the quantized DC term of the previous) W 300 -18650 M 115.1 0 32 (block is, for example, 12, then the difference is +3.) W 300 -19750 M 234.3 0 32 (Thus, the intermediate representation is \(2\)\(3\), for) W 300 -20850 M (SIZE=2 and AMPLITUDE=3.) h 300 -21950 M 300 -23050 M 46.3 0 32 (Next, the the quantized AC coefficients are encoded.) W 300 -24150 M 488.8 0 32 (Following the zig\255zag order, the first non\255zero) W 300 -25250 M 153.3 0 32 (coefficient is \2552, preceded by a zero\255run of 1. This) W 300 -26350 M 342.4 0 32 (yields an intermediate representation of \(1,2\)\(\2552\).) W 300 -27450 M 371.9 0 32 (Next encountered in the zig\255zag order are three) W 300 -28550 M 174.0 0 32 (consecutive non\255zeros of amplitude \2551. This means) W -7070 42751 T R S 32037 -42745 T N 0 G 300 -1050 M /Times-Roman-ISOLatin1 F 1000 o f 200.0 0 32 (each is preceded by a zero\255run of length zero, for) W 300 -2150 M 342.6 0 32 (intermediate symbols \(0,1\)\(\2551\). The last non\255zero) W 300 -3250 M 47.9 0 32 (coefficient is \2551 preceded by two zeros, for \(2,1\)\(\2551\).) W 300 -4350 M 33.6 0 32 (Because this is the last non\255zero coefficient, the final) W 300 -5450 M (symbol representing this 8x8 block is EOB, or \(0,0\).) h 300 -6550 M 300 -7650 M 113.6 0 32 (Thus, the intermediate sequence of symbols for this) W 300 -8750 M (example 8x8 block is: ) h 300 -9850 M 2100 -10950 M (\(2\)\(3\), \(1,2\)\(\2552\), \(0,1\)\(\2551\), \(0,1\)\(\2551\),) h 2100 -12050 M (\(0,1\)\(\2551\), \(2,1\)\(\2551\), \(0,0\)) h 2100 -13150 M 300 -14250 M 19.4 0 32 (Next the codes themselves must be assigned. For this) W 300 -15350 M 498.5 0 32 (example, the VLCs \(Huffman codes\) from the) W 300 -16450 M 534.3 0 32 (informational annex of [2] will be used. The) W 300 -17550 M (differential\255DC VLC for this example is: ) h 300 -18650 M 2100 -19750 M ( \(2\)) h 5744 -19750 M ( 011) h 300 -20850 M 300 -21950 M (The AC luminance VLCs for this example are:) h 300 -23050 M 2100 -24150 M (\(0,0\)) h 5763 -24150 M (1010) h 2100 -25250 M (\(0,1\)) h 5763 -25250 M (00) h 2100 -26350 M (\(1,2\) ) h 5763 -26350 M (11011) h 2100 -27450 M (\(2,1\)) h 5763 -27450 M (11100) h 300 -28550 M -32037 42745 T R S 7094 -5224 T N S 0 -39599 46978 39599 @ R 0 G 300 -1050 M 300 -38493 M S 0 -39599 46978 39599 @ R -7094 5224 T S N S 5226 -42671 50715 36047 @ I N 5226 -6624 T N S 1666 -2062 M /Times-Roman-ISOLatin1 F 800 o f (139) h R S 1666 -3662 M /Times-Roman-ISOLatin1 F 800 o f (144) h R S 1666 -5261 M /Times-Roman-ISOLatin1 F 800 o f (150) h R S 1666 -6778 M /Times-Roman-ISOLatin1 F 800 o f (159) h R S 1666 -8380 M /Times-Roman-ISOLatin1 F 800 o f (159) h R S 1666 -9980 M /Times-Roman-ISOLatin1 F 800 o f (161) h R S 1666 -11579 M /Times-Roman-ISOLatin1 F 800 o f (162) h R S 1666 -13095 M /Times-Roman-ISOLatin1 F 800 o f (162) h R S 3635 -2062 M /Times-Roman-ISOLatin1 F 800 o f (144) h R S 5536 -2062 M /Times-Roman-ISOLatin1 F 800 o f (149) h R S 7438 -2062 M /Times-Roman-ISOLatin1 F 800 o f (153) h R S 9408 -2062 M /Times-Roman-ISOLatin1 F 800 o f (155) h R S 11242 -2062 M /Times-Roman-ISOLatin1 F 800 o f (155) h R S 13143 -2062 M /Times-Roman-ISOLatin1 F 800 o f (155) h R S 15045 -2062 M /Times-Roman-ISOLatin1 F 800 o f (155) h R S 3635 -3662 M /Times-Roman-ISOLatin1 F 800 o f (151) h R S 3635 -5261 M /Times-Roman-ISOLatin1 F 800 o f (155) h R S 3635 -6778 M /Times-Roman-ISOLatin1 F 800 o f (161) h R S 3635 -8380 M /Times-Roman-ISOLatin1 F 800 o f (160) h R S 3635 -9980 M /Times-Roman-ISOLatin1 F 800 o f (161) h R S 3635 -11579 M /Times-Roman-ISOLatin1 F 800 o f (162) h R S 3635 -13095 M /Times-Roman-ISOLatin1 F 800 o f (162) h R S 5536 -3750 M /Times-Roman-ISOLatin1 F 800 o f (153) h R S 5536 -5261 M /Times-Roman-ISOLatin1 F 800 o f (160) h R S 5536 -6779 M /Times-Roman-ISOLatin1 F 800 o f (162) h R S 5536 -8296 M /Times-Roman-ISOLatin1 F 800 o f (161) h R S 5536 -9982 M /Times-Roman-ISOLatin1 F 800 o f (161) h R S 5536 -11581 M /Times-Roman-ISOLatin1 F 800 o f (161) h R S 5536 -13096 M /Times-Roman-ISOLatin1 F 800 o f (161) h R S 7438 -3662 M /Times-Roman-ISOLatin1 F 800 o f (156) h R S 7438 -5261 M /Times-Roman-ISOLatin1 F 800 o f (163) h R S 7438 -6779 M /Times-Roman-ISOLatin1 F 800 o f (160) h R S 7438 -8381 M /Times-Roman-ISOLatin1 F 800 o f (162) h R S 7438 -9898 M /Times-Roman-ISOLatin1 F 800 o f (161) h R S 7438 -11581 M /Times-Roman-ISOLatin1 F 800 o f (163) h R S 7438 -13096 M /Times-Roman-ISOLatin1 F 800 o f (161) h R S 9408 -3662 M /Times-Roman-ISOLatin1 F 800 o f (159) h R S 9408 -5262 M /Times-Roman-ISOLatin1 F 800 o f (158) h R S 9408 -6779 M /Times-Roman-ISOLatin1 F 800 o f (160) h R S 9408 -8381 M /Times-Roman-ISOLatin1 F 800 o f (162) h R S 9408 -9982 M /Times-Roman-ISOLatin1 F 800 o f (160) h R S 9408 -11581 M /Times-Roman-ISOLatin1 F 800 o f (162) h R S 9408 -13096 M /Times-Roman-ISOLatin1 F 800 o f (163) h R S 11242 -3662 M /Times-Roman-ISOLatin1 F 800 o f (156) h R S 11242 -5262 M /Times-Roman-ISOLatin1 F 800 o f (156) h R S 11242 -6781 M /Times-Roman-ISOLatin1 F 800 o f (159) h R S 11242 -8381 M /Times-Roman-ISOLatin1 F 800 o f (155) h R S 11242 -9982 M /Times-Roman-ISOLatin1 F 800 o f (157) h R S 11242 -11582 M /Times-Roman-ISOLatin1 F 800 o f (157) h R S 11242 -13013 M /Times-Roman-ISOLatin1 F 800 o f (158) h R S 13143 -3662 M /Times-Roman-ISOLatin1 F 800 o f (156) h R S 13143 -5262 M /Times-Roman-ISOLatin1 F 800 o f (156) h R S 13143 -6779 M /Times-Roman-ISOLatin1 F 800 o f (159) h R S 13143 -8381 M /Times-Roman-ISOLatin1 F 800 o f (155) h R S 13143 -9981 M /Times-Roman-ISOLatin1 F 800 o f (157) h R S 13143 -11581 M /Times-Roman-ISOLatin1 F 800 o f (157) h R S 13143 -13096 M /Times-Roman-ISOLatin1 F 800 o f (158) h R S 15045 -3662 M /Times-Roman-ISOLatin1 F 800 o f (156) h R S 15045 -5261 M /Times-Roman-ISOLatin1 F 800 o f (156) h R S 15045 -6778 M /Times-Roman-ISOLatin1 F 800 o f (159) h R S 15045 -8294 M /Times-Roman-ISOLatin1 F 800 o f (155) h R S 15045 -9980 M /Times-Roman-ISOLatin1 F 800 o f (157) h R S 15045 -11579 M /Times-Roman-ISOLatin1 F 800 o f (157) h R S 15045 -13095 M /Times-Roman-ISOLatin1 F 800 o f (158) h R S 17966 -2062 M /Times-Roman-ISOLatin1 F 800 o f (235.6) h R S 18093 -3662 M /Times-Roman-ISOLatin1 F 800 o f (\25522.6) h R S 18093 -5261 M /Times-Roman-ISOLatin1 F 800 o f (\25510.9) h R S 18541 -6778 M /Times-Roman-ISOLatin1 F 800 o f (\2557.1) h R S 18541 -8380 M /Times-Roman-ISOLatin1 F 800 o f (\2550.6) h R S 18796 -9980 M /Times-Roman-ISOLatin1 F 800 o f (1.8) h R S 18605 -11579 M /Times-Roman-ISOLatin1 F 800 o f (\2551.3) h R S 18541 -13095 M /Times-Roman-ISOLatin1 F 800 o f (\2552.6) h R S 20446 -2062 M /Times-Roman-ISOLatin1 F 800 o f (\2551.0) h R S 21901 -2062 M /Times-Roman-ISOLatin1 F 800 o f (\25512.1) h R S 24058 -2062 M /Times-Roman-ISOLatin1 F 800 o f (\2555.2) h R S 26156 -2062 M /Times-Roman-ISOLatin1 F 800 o f (2.1) h R S 27669 -2062 M /Times-Roman-ISOLatin1 F 800 o f (\2551.7) h R S 29443 -2062 M /Times-Roman-ISOLatin1 F 800 o f (\2552.7) h R S 31473 -2062 M /Times-Roman-ISOLatin1 F 800 o f (1.3) h R S 19999 -3662 M /Times-Roman-ISOLatin1 F 800 o f (\25517.5) h R S 20446 -5261 M /Times-Roman-ISOLatin1 F 800 o f (\2559.3) h R S 20446 -6778 M /Times-Roman-ISOLatin1 F 800 o f (\2551.9) h R S 20446 -8380 M /Times-Roman-ISOLatin1 F 800 o f (\2550.8) h R S 20446 -9980 M /Times-Roman-ISOLatin1 F 800 o f (\2550.2) h R S 20446 -11579 M /Times-Roman-ISOLatin1 F 800 o f (\2550.4) h R S 20702 -13095 M /Times-Roman-ISOLatin1 F 800 o f (1.6) h R S 22284 -3750 M /Times-Roman-ISOLatin1 F 800 o f (\2556.2) h R S 22284 -5261 M /Times-Roman-ISOLatin1 F 800 o f (\2551.6) h R S 22540 -6779 M /Times-Roman-ISOLatin1 F 800 o f (0.2) h R S 22539 -8296 M /Times-Roman-ISOLatin1 F 800 o f (1.5) h R S 22540 -9982 M /Times-Roman-ISOLatin1 F 800 o f (1.6) h R S 22284 -11581 M /Times-Roman-ISOLatin1 F 800 o f (\2550.3) h R S 22284 -13096 M /Times-Roman-ISOLatin1 F 800 o f (\2553.8) h R S 24058 -3662 M /Times-Roman-ISOLatin1 F 800 o f (\2553.2) h R S 24314 -5261 M /Times-Roman-ISOLatin1 F 800 o f (1.5) h R S 24314 -6779 M /Times-Roman-ISOLatin1 F 800 o f (1.5) h R S 24314 -8381 M /Times-Roman-ISOLatin1 F 800 o f (1.6) h R S 24058 -9898 M /Times-Roman-ISOLatin1 F 800 o f (\2550.3) h R S 24058 -11581 M /Times-Roman-ISOLatin1 F 800 o f (\2551.5) h R S 24058 -13096 M /Times-Roman-ISOLatin1 F 800 o f (\2551.8) h R S 25836 -3662 M /Times-Roman-ISOLatin1 F 800 o f (\2552.9) h R S 26092 -5262 M /Times-Roman-ISOLatin1 F 800 o f (0.2) h R S 26156 -6779 M /Times-Roman-ISOLatin1 F 800 o f (0.9) h R S 25836 -8381 M /Times-Roman-ISOLatin1 F 800 o f (\2550.1) h R S 25836 -9982 M /Times-Roman-ISOLatin1 F 800 o f (\2550.8) h R S 25836 -11581 M /Times-Roman-ISOLatin1 F 800 o f (\2550.5) h R S 26156 -13096 M /Times-Roman-ISOLatin1 F 800 o f (1.9) h R S 27669 -3662 M /Times-Roman-ISOLatin1 F 800 o f (\2550.1) h R S 27670 -5262 M /Times-Roman-ISOLatin1 F 800 o f (\2550.9) h R S 27670 -6781 M /Times-Roman-ISOLatin1 F 800 o f (\2550.1) h R S 27669 -8381 M /Times-Roman-ISOLatin1 F 800 o f (\2550.7) h R S 27925 -9982 M /Times-Roman-ISOLatin1 F 800 o f (1.5) h R S 27925 -11582 M /Times-Roman-ISOLatin1 F 800 o f (1.7) h R S 27925 -13013 M /Times-Roman-ISOLatin1 F 800 o f (1.2) h R S 29699 -3662 M /Times-Roman-ISOLatin1 F 800 o f (0.4) h R S 29443 -5262 M /Times-Roman-ISOLatin1 F 800 o f (\2550.6) h R S 29699 -6779 M /Times-Roman-ISOLatin1 F 800 o f (0.0) h R S 29699 -8381 M /Times-Roman-ISOLatin1 F 800 o f (0.6) h R S 29699 -9981 M /Times-Roman-ISOLatin1 F 800 o f (1.0) h R S 29699 -11581 M /Times-Roman-ISOLatin1 F 800 o f (1.1) h R S 29443 -13096 M /Times-Roman-ISOLatin1 F 800 o f (\2550.6) h R S 31218 -3662 M /Times-Roman-ISOLatin1 F 800 o f (\2551.2) h R S 31218 -5261 M /Times-Roman-ISOLatin1 F 800 o f (\2550.1) h R S 31473 -6778 M /Times-Roman-ISOLatin1 F 800 o f (0.3) h R S 31473 -8294 M /Times-Roman-ISOLatin1 F 800 o f (1.3) h R S 31217 -9980 M /Times-Roman-ISOLatin1 F 800 o f (\2551.0) h R S 31218 -11579 M /Times-Roman-ISOLatin1 F 800 o f (\2550.8) h R S 31218 -13095 M /Times-Roman-ISOLatin1 F 800 o f (\2550.4) h R S 3031 -15447 M /Times-Roman-ISOLatin1 F 1000 o f (\(a\) source image samples) h R S 19330 -15381 M /Times-Roman-ISOLatin1 F 1000 o f (\(b\) forward DCT coefficients) h R S 34456 -2062 M /Times-Roman-ISOLatin1 F 800 o f (16) h R S 34456 -3662 M /Times-Roman-ISOLatin1 F 800 o f (12) h R S 34456 -5261 M /Times-Roman-ISOLatin1 F 800 o f (14) h R S 34456 -6778 M /Times-Roman-ISOLatin1 F 800 o f (14) h R S 34456 -8380 M /Times-Roman-ISOLatin1 F 800 o f (18) h R S 34456 -9980 M /Times-Roman-ISOLatin1 F 800 o f (24) h R S 34456 -11579 M /Times-Roman-ISOLatin1 F 800 o f (49) h R S 34456 -13095 M /Times-Roman-ISOLatin1 F 800 o f (72) h R S 36425 -2062 M /Times-Roman-ISOLatin1 F 800 o f (11) h R S 38326 -2062 M /Times-Roman-ISOLatin1 F 800 o f (10) h R S 40228 -2062 M /Times-Roman-ISOLatin1 F 800 o f (16) h R S 42198 -2062 M /Times-Roman-ISOLatin1 F 800 o f (24) h R S 44032 -2062 M /Times-Roman-ISOLatin1 F 800 o f (40) h R S 45933 -2062 M /Times-Roman-ISOLatin1 F 800 o f (51) h R S 47835 -2062 M /Times-Roman-ISOLatin1 F 800 o f (61) h R S 36425 -3662 M /Times-Roman-ISOLatin1 F 800 o f (12) h R S 36425 -5261 M /Times-Roman-ISOLatin1 F 800 o f (13) h R S 36425 -6778 M /Times-Roman-ISOLatin1 F 800 o f (17) h R S 36425 -8380 M /Times-Roman-ISOLatin1 F 800 o f (22) h R S 36425 -9980 M /Times-Roman-ISOLatin1 F 800 o f (35) h R S 36425 -11579 M /Times-Roman-ISOLatin1 F 800 o f (64) h R S 36425 -13095 M /Times-Roman-ISOLatin1 F 800 o f (92) h R S 38326 -3750 M /Times-Roman-ISOLatin1 F 800 o f (14) h R S 38326 -5261 M /Times-Roman-ISOLatin1 F 800 o f (16) h R S 38326 -6779 M /Times-Roman-ISOLatin1 F 800 o f (22) h R S 38326 -8296 M /Times-Roman-ISOLatin1 F 800 o f (37) h R S 38326 -9982 M /Times-Roman-ISOLatin1 F 800 o f (55) h R S 38326 -11581 M /Times-Roman-ISOLatin1 F 800 o f (78) h R S 38326 -13096 M /Times-Roman-ISOLatin1 F 800 o f (95) h R S 40228 -3662 M /Times-Roman-ISOLatin1 F 800 o f (19) h R S 40228 -5261 M /Times-Roman-ISOLatin1 F 800 o f (24) h R S 40228 -6779 M /Times-Roman-ISOLatin1 F 800 o f (29) h R S 40228 -8381 M /Times-Roman-ISOLatin1 F 800 o f (56) h R S 40228 -9898 M /Times-Roman-ISOLatin1 F 800 o f (64) h R S 40228 -11581 M /Times-Roman-ISOLatin1 F 800 o f (87) h R S 40228 -13096 M /Times-Roman-ISOLatin1 F 800 o f (98) h R S 42198 -3662 M /Times-Roman-ISOLatin1 F 800 o f (26) h R S 42198 -5262 M /Times-Roman-ISOLatin1 F 800 o f (40) h R S 42198 -6779 M /Times-Roman-ISOLatin1 F 800 o f (51) h R S 42198 -8381 M /Times-Roman-ISOLatin1 F 800 o f (68) h R S 42198 -9982 M /Times-Roman-ISOLatin1 F 800 o f (81) h R S 42198 -11581 M /Times-Roman-ISOLatin1 F 800 o f (103) h R S 42198 -13096 M /Times-Roman-ISOLatin1 F 800 o f (112) h R S 44032 -3662 M /Times-Roman-ISOLatin1 F 800 o f (58) h R S 44032 -5262 M /Times-Roman-ISOLatin1 F 800 o f (57) h R S 44032 -6781 M /Times-Roman-ISOLatin1 F 800 o f (87) h R S 44032 -8381 M /Times-Roman-ISOLatin1 F 800 o f (109) h R S 44032 -9982 M /Times-Roman-ISOLatin1 F 800 o f (104) h R S 44032 -11582 M /Times-Roman-ISOLatin1 F 800 o f (121) h R S 44032 -13013 M /Times-Roman-ISOLatin1 F 800 o f (100) h R S 45933 -3662 M /Times-Roman-ISOLatin1 F 800 o f (60) h R S 45933 -5262 M /Times-Roman-ISOLatin1 F 800 o f (69) h R S 45933 -6779 M /Times-Roman-ISOLatin1 F 800 o f (80) h R S 45933 -8381 M /Times-Roman-ISOLatin1 F 800 o f (103) h R S 45933 -9981 M /Times-Roman-ISOLatin1 F 800 o f (113) h R S 45933 -11581 M /Times-Roman-ISOLatin1 F 800 o f (120) h R S 45933 -13096 M /Times-Roman-ISOLatin1 F 800 o f (103) h R S 47835 -3662 M /Times-Roman-ISOLatin1 F 800 o f (55) h R S 47835 -5261 M /Times-Roman-ISOLatin1 F 800 o f (56) h R S 47835 -6778 M /Times-Roman-ISOLatin1 F 800 o f (62) h R S 47835 -8294 M /Times-Roman-ISOLatin1 F 800 o f (77) h R S 47835 -9980 M /Times-Roman-ISOLatin1 F 800 o f (92) h R S 47835 -11579 M /Times-Roman-ISOLatin1 F 800 o f (101) h R S 47835 -13095 M /Times-Roman-ISOLatin1 F 800 o f (99) h R S 37419 -15381 M /Times-Roman-ISOLatin1 F 1000 o f (\(c\) quantization table) h R S 1668 -18096 M /Times-Roman-ISOLatin1 F 798 o f (15) h R S 1668 -19695 M /Times-Roman-ISOLatin1 F 796 o f (\2552) h R S 1668 -21296 M /Times-Roman-ISOLatin1 F 796 o f (\2551) h R S 1858 -22812 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 1858 -24412 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 1858 -26013 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 1858 -27613 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 1858 -29130 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 3827 -18096 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 5536 -18096 M /Times-Roman-ISOLatin1 F 800 o f (\2551) h R S 7630 -18096 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 9600 -18096 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 11434 -18096 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 13335 -18096 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 15237 -18096 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 3635 -19695 M /Times-Roman-ISOLatin1 F 800 o f (\2551) h R S 3635 -21296 M /Times-Roman-ISOLatin1 F 800 o f (\2551) h R S 3827 -22812 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 3827 -24412 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 3827 -26013 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 3827 -27613 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 3827 -29130 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 5728 -19781 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 5728 -21296 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 5728 -22813 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 5728 -24330 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 5728 -26015 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 5728 -27614 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 5728 -29131 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 7630 -19695 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 7630 -21296 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 7630 -22813 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 7630 -24413 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 7630 -25928 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 7630 -27614 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 7630 -29131 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 9600 -19695 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 9600 -21297 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 9600 -22813 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 9600 -24413 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 9600 -26015 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 9600 -27614 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 9600 -29131 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 11434 -19695 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 11434 -21297 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 11434 -22814 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 11434 -24413 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 11434 -26015 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 11434 -27615 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 11434 -29045 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 13335 -19695 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 13335 -21297 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 13335 -22813 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 13335 -24413 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 13335 -26014 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 13335 -27614 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 13335 -29131 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 15237 -19695 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 15237 -21296 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 15237 -22812 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 15237 -24329 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 15237 -26013 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 15237 -27613 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 15237 -29130 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 3927 -31436 M /Times-Roman-ISOLatin1 F 1000 o f (\(d\) normalized quantized) h R S 19139 -31500 M /Times-Roman-ISOLatin1 F 1000 o f (\(e\) denormalized quantized) h R S 34201 -18169 M /Times-Roman-ISOLatin1 F 800 o f (144) h R S 34201 -19770 M /Times-Roman-ISOLatin1 F 800 o f (148) h R S 34201 -21372 M /Times-Roman-ISOLatin1 F 800 o f (155) h R S 34201 -22887 M /Times-Roman-ISOLatin1 F 800 o f (160) h R S 34201 -24488 M /Times-Roman-ISOLatin1 F 800 o f (163) h R S 34201 -26088 M /Times-Roman-ISOLatin1 F 800 o f (163) h R S 34201 -27688 M /Times-Roman-ISOLatin1 F 800 o f (160) h R S 34201 -29204 M /Times-Roman-ISOLatin1 F 800 o f (158) h R S 36170 -18169 M /Times-Roman-ISOLatin1 F 800 o f (146) h R S 38071 -18169 M /Times-Roman-ISOLatin1 F 800 o f (149) h R S 39973 -18169 M /Times-Roman-ISOLatin1 F 800 o f (152) h R S 41943 -18169 M /Times-Roman-ISOLatin1 F 800 o f (154) h R S 43777 -18169 M /Times-Roman-ISOLatin1 F 800 o f (156) h R S 45678 -18169 M /Times-Roman-ISOLatin1 F 800 o f (156) h R S 47580 -18169 M /Times-Roman-ISOLatin1 F 800 o f (156) h R S 36170 -19770 M /Times-Roman-ISOLatin1 F 800 o f (150) h R S 36170 -21372 M /Times-Roman-ISOLatin1 F 800 o f (156) h R S 36170 -22887 M /Times-Roman-ISOLatin1 F 800 o f (161) h R S 36170 -24488 M /Times-Roman-ISOLatin1 F 800 o f (163) h R S 36170 -26088 M /Times-Roman-ISOLatin1 F 800 o f (164) h R S 36170 -27688 M /Times-Roman-ISOLatin1 F 800 o f (161) h R S 36170 -29204 M /Times-Roman-ISOLatin1 F 800 o f (159) h R S 38071 -19856 M /Times-Roman-ISOLatin1 F 800 o f (152) h R S 38071 -21372 M /Times-Roman-ISOLatin1 F 800 o f (157) h R S 38071 -22888 M /Times-Roman-ISOLatin1 F 800 o f (161) h R S 38071 -24405 M /Times-Roman-ISOLatin1 F 800 o f (164) h R S 38071 -26090 M /Times-Roman-ISOLatin1 F 800 o f (164) h R S 38071 -27689 M /Times-Roman-ISOLatin1 F 800 o f (162) h R S 38071 -29206 M /Times-Roman-ISOLatin1 F 800 o f (161) h R S 39973 -19770 M /Times-Roman-ISOLatin1 F 800 o f (154) h R S 39973 -21372 M /Times-Roman-ISOLatin1 F 800 o f (158) h R S 39973 -22888 M /Times-Roman-ISOLatin1 F 800 o f (162) h R S 39973 -24489 M /Times-Roman-ISOLatin1 F 800 o f (163) h R S 39973 -26003 M /Times-Roman-ISOLatin1 F 800 o f (164) h R S 39973 -27689 M /Times-Roman-ISOLatin1 F 800 o f (162) h R S 39973 -29206 M /Times-Roman-ISOLatin1 F 800 o f (161) h R S 41943 -19770 M /Times-Roman-ISOLatin1 F 800 o f (156) h R S 41943 -21373 M /Times-Roman-ISOLatin1 F 800 o f (158) h R S 41943 -22888 M /Times-Roman-ISOLatin1 F 800 o f (161) h R S 41943 -24489 M /Times-Roman-ISOLatin1 F 800 o f (162) h R S 41943 -26090 M /Times-Roman-ISOLatin1 F 800 o f (162) h R S 41943 -27689 M /Times-Roman-ISOLatin1 F 800 o f (162) h R S 41943 -29206 M /Times-Roman-ISOLatin1 F 800 o f (162) h R S 43777 -19770 M /Times-Roman-ISOLatin1 F 800 o f (156) h R S 43777 -21373 M /Times-Roman-ISOLatin1 F 800 o f (157) h R S 43777 -22889 M /Times-Roman-ISOLatin1 F 800 o f (159) h R S 43777 -24489 M /Times-Roman-ISOLatin1 F 800 o f (160) h R S 43777 -26090 M /Times-Roman-ISOLatin1 F 800 o f (160) h R S 43777 -27690 M /Times-Roman-ISOLatin1 F 800 o f (161) h R S 43777 -29122 M /Times-Roman-ISOLatin1 F 800 o f (161) h R S 45678 -19770 M /Times-Roman-ISOLatin1 F 800 o f (156) h R S 45678 -21373 M /Times-Roman-ISOLatin1 F 800 o f (156) h R S 45678 -22888 M /Times-Roman-ISOLatin1 F 800 o f (157) h R S 45678 -24489 M /Times-Roman-ISOLatin1 F 800 o f (158) h R S 45678 -26089 M /Times-Roman-ISOLatin1 F 800 o f (158) h R S 45678 -27689 M /Times-Roman-ISOLatin1 F 800 o f (159) h R S 45678 -29206 M /Times-Roman-ISOLatin1 F 800 o f (159) h R S 47580 -19770 M /Times-Roman-ISOLatin1 F 800 o f (156) h R S 47580 -21372 M /Times-Roman-ISOLatin1 F 800 o f (155) h R S 47580 -22887 M /Times-Roman-ISOLatin1 F 800 o f (155) h R S 47580 -24402 M /Times-Roman-ISOLatin1 F 800 o f (156) h R S 47580 -26088 M /Times-Roman-ISOLatin1 F 800 o f (157) h R S 47580 -27688 M /Times-Roman-ISOLatin1 F 800 o f (158) h R S 47580 -29204 M /Times-Roman-ISOLatin1 F 800 o f (158) h R S 34861 -31630 M /Times-Roman-ISOLatin1 F 1000 o f (\(f\) reconstructed image samples) h R S 16167 -34835 M /Times-Roman-ISOLatin1 F 1000 o f (Figure 10. DCT and Quantization Examples) h R S 17704 -17741 M /Times-Roman-ISOLatin1 F 800 o f (240) h R S 17703 -19304 M /Times-Roman-ISOLatin1 F 800 o f (\25524) h R S 17703 -20869 M /Times-Roman-ISOLatin1 F 800 o f (\25514) h R S 18087 -22350 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 18087 -23914 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 18087 -25479 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 18087 -27042 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 18087 -28525 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 20056 -17741 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 21573 -17741 M /Times-Roman-ISOLatin1 F 800 o f (\25510) h R S 23859 -17741 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 25829 -17741 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 27663 -17741 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 29564 -17741 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 31466 -17741 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 19672 -19304 M /Times-Roman-ISOLatin1 F 800 o f (\25512) h R S 19672 -20869 M /Times-Roman-ISOLatin1 F 800 o f (\25513) h R S 20056 -22350 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 20056 -23914 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 20056 -25479 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 20056 -27042 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 20056 -28525 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 21957 -19388 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 21957 -20869 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 21957 -22351 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 21957 -23833 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 21957 -25481 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 21957 -27043 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 21957 -28526 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 23859 -19304 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 23859 -20869 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 23859 -22351 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 23859 -23915 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 23859 -25396 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 23859 -27043 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 23859 -28526 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 25829 -19304 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 25829 -20870 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 25829 -22351 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 25829 -23915 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 25829 -25481 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 25829 -27043 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 25829 -28526 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 27663 -19304 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 27663 -20870 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 27663 -22352 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 27663 -23915 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 27663 -25481 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 27663 -27044 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 27663 -28443 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 29564 -19304 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 29564 -20870 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 29564 -22351 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 29564 -23915 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 29564 -25480 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 29564 -27043 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 29564 -28526 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 31466 -19304 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 31466 -20869 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 31466 -22350 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 31466 -23832 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 31466 -25479 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 31466 -27042 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 31466 -28525 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 5462 -32484 M /Times-Roman-ISOLatin1 F 1000 o f (coefficients) h R S 20706 -32581 M /Times-Roman-ISOLatin1 F 1000 o f (coefficients) h R R R R S 30200 -75546 M /Times-Roman-ISOLatin1 F 1000 o f (12) h R showpage $P e %%Page: 13 13 /$P a D g N 0 79200 T S S 7200 -2700 T N 0 G 300 -1200 M -7200 2700 T R S 7200 -74700 T N 0 G 300 -1200 M -7200 74700 T R R S 7172 -7467 T N 0 G 300 -1050 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1000 o f 153.2 0 32 (The VLIs specified in [2] are related to the two's) W 300 -2150 M (complement representation. They are:) h 300 -3250 M 2100 -4350 M (\(3\)) h 5739 -4350 M (11) h 2100 -5450 M (\(\2552\)) h 5739 -5450 M (01) h 2100 -6550 M (\(\2551\) ) h 5739 -6550 M (0) h 300 -7650 M 300 -8750 M 40.2 0 32 (Thus, the bit\255stream for this 8x8 example block is as) W 300 -9850 M 108.3 0 32 (follows. Note that 31 bits are required to represent) W 300 -10950 M 120.8 0 32 (64 coefficients, which achieves compression of just) W 300 -12050 M (under 0.5 bits/sample:) h 300 -13150 M 2100 -14250 M ( 0111111011010000000001110001010 ) h 2100 -15350 M 300 -16450 M 300 -17550 M /Times-Bold-ISOLatin1 $ /Times-Bold & P /Times-Bold-ISOLatin1 F 1000 o f (7.4 Other DCT Sequential Codecs) h 300 -18650 M 300 -19750 M /Times-Roman-ISOLatin1 F 1000 o f 246.4 0 32 (The structure of the 12\255bit DCT sequential codec) W 300 -20850 M 106.8 0 32 (with Huffman coding is a straightforward extension) W 300 -21950 M 120.7 0 32 (of the entropy coding method described previously.) W 300 -23050 M 104.6 0 32 (Quantized DCT coefficients can be 4 bits larger, so) W 300 -24150 M 433.6 0 32 (the SIZE and AMPLITUDE information extend) W 300 -25250 M 46.5 0 32 (accordingly. DCT sequential with arithmetic coding) W 300 -26350 M (is described in detail in [2].) h 300 -27450 M 300 -28550 M 300 -29800 M /Times-Bold-ISOLatin1 F 1200 o f (8 DCT Progressive Mode) h 300 -31550 M /Times-Roman-ISOLatin1 F 1000 o f 87.6 0 32 (The DCT progressive mode of operation consists of) W 300 -32650 M 8.1 0 32 (the same FDCT and Quantization steps \(from section) W 300 -33750 M 94.7 0 32 (4\) that are used by DCT sequential mode. The key) W 300 -34850 M 95.9 0 32 (difference is that each image component is encoded) W 300 -35950 M 133.5 0 32 (in multiple scans rather than in a single scan. The) W 300 -37050 M 32.4 0 32 (first scan\(s\) encode a rough but recognizable version) W 300 -38150 M 225.9 0 32 (of the image which can be transmitted quickly in) W 300 -39250 M 202.4 0 32 (comparison to the total transmission time, and are) W 300 -40350 M 52.6 0 32 (refined by succeeding scans until reaching a level of) W 300 -41450 M 764.0 0 32 (picture quality that was established by the) W 300 -42550 M (quantization tables.) h 300 -43650 M 300 -44750 M 643.1 0 32 (To achieve this requires the addition of an) W 300 -45850 M 349.6 0 32 (image\255sized buffer memory at the output of the) W 300 -46950 M 94.3 0 32 (quantizer, before the input to entropy encoder. The) W 300 -48050 M 37.3 0 32 (buffer memory must be of sufficient size to store the) W 300 -49150 M 60.1 0 32 (image as quantized DCT coefficients, each of which) W 300 -50250 M 101.0 0 32 (\(if stored straightforwardly\) is 3 bits larger than the) W 300 -51350 M 229.6 0 32 (source image samples. After each block of DCT) W 300 -52450 M 639.0 0 32 (coefficients is quantized, it is stored in the) W 300 -53550 M 40.2 0 32 (coefficient buffer memory. The buffered coefficients) W 300 -54650 M (are then partially encoded in each of multiple scans.) h 300 -55750 M 300 -56850 M 151.3 0 32 (There are two complementary methods by which a) W 300 -57950 M 0.4 0 32 (block of quantized DCT coefficients may be partially) W 300 -59050 M 635.3 0 32 (encoded. First, only a specified ) W 635.3 0 32 (\026) W 635.3 0 32 (band) W 635.3 0 32 (\027) W 635.3 0 32 ( of) W 300 -60150 M 431.5 0 32 (coefficients from the zig\255zag sequence need be) W 300 -61250 M 292.0 0 32 (encoded within a given scan. This procedure is) W 300 -62350 M 595.6 0 32 (called ) W 595.6 0 32 (\026) W 595.6 0 32 (spectral selection,) W 595.6 0 32 (\027) W 595.6 0 32 ( because each band) W 300 -63450 M 51.5 0 32 (typically contains coefficients which occupy a lower) W -7172 7467 T R S 32040 -7170 T N 0 G 300 -1050 M /Times-Roman-ISOLatin1 F 1000 o f 119.7 0 32 (or higher part of the spatial\255frequency spectrum for) W 300 -2150 M 31.4 0 32 (that 8x8 block. Secondly, the coefficients within the) W 300 -3250 M 392.8 0 32 (current band need not be encoded to their full) W 300 -4350 M 389.5 0 32 (\(quantized\) accuracy in a given scan. Upon a) W 300 -5450 M 204.0 0 32 (coefficient's first encoding, the N most significant) W 300 -6550 M 64.3 0 32 (bits can be encoded first, where N is specifiable. In) W 300 -7650 M 7.1 0 32 (subsequent scans, the less significant bits can then be) W 300 -8750 M 426.7 0 32 (encoded. This procedure is called ``successive) W 300 -9850 M 435.7 0 32 (approximation.'' Both procedures can be used) W 300 -10950 M (separately, or mixed in flexible combinations.) h 300 -12050 M 300 -30888 M /Times-Roman-ISOLatin1 F 1000 o f 116.0 0 32 (Some intuition for spectral selection and successive) W 300 -31988 M 48.9 0 32 (approximation can be obtained from Figure 11. The) W 300 -33088 M 578.4 0 32 (quantized DCT coefficient information can be) W 300 -34188 M 247.6 0 32 (viewed as a rectangle for which the axes are the) W 300 -35288 M 570.2 0 32 (DCT coefficients \(in zig\255zag order\) and their) W 300 -36388 M 37.2 0 32 (amplitudes. Spectral selection slices the information) W 300 -37488 M 199.2 0 32 (in one dimension and successive approximation in) W 300 -38588 M (the other.) h 300 -39688 M 300 -40788 M 300 -42038 M /Times-Bold-ISOLatin1 F 1200 o f (9 Hierarchical Mode of Operation) h 300 -43788 M /Times-Roman-ISOLatin1 F 1000 o f 556.4 0 32 (The hierarchical mode provides a ) W 556.4 0 32 (\026) W 556.4 0 32 (pyramidal) W 556.4 0 32 (\027) W 300 -44888 M 170.9 0 32 (encoding of an image at multiple resolutions, each) W 300 -45988 M 63.7 0 32 (differing in resolution from its adjacent encoding by) W 300 -47088 M 204.1 0 32 (a factor of two in either the horizontal or vertical) W 300 -48188 M 97.6 0 32 (dimension or both. The encoding procedure can be) W 300 -49288 M (summarized as follows:) h 300 -50388 M 300 -51488 M (1\)) h 2100 -51488 M 214.0 0 32 (Filter and down\255sample the original image by) W 2100 -52588 M 237.0 0 32 (the desired number of multiples of 2 in each) W 2100 -53688 M (dimension.) h 2100 -54788 M 300 -55888 M (2\)) h 2100 -55888 M 29.0 0 32 (Encode this reduced\255size image using one of the) W 2100 -56988 M 251.2 0 32 (sequential DCT, progressive DCT, or lossless) W 2100 -58088 M (encoders described previously.) h 2100 -59188 M 300 -60288 M (3\)) h 2100 -60288 M 629.6 0 32 (Decode this reduced\255size image and then) W 2100 -61388 M 214.0 0 32 (interpolate and up\255sample it by 2 horizontally) W 2100 -62488 M 1286.3 0 32 (and/or vertically, using the identical) W 2100 -63588 M (interpolation filter which the receiver must use.) h -32040 7170 T S N S 32282 -37308 21475 17738 @ I N 32282 -19570 T N S 3610 -15064 M /Times-Roman-ISOLatin1 F 1000 o f (Table 3. Baseline Entropy Coding) h R S 7350 -16502 M /Times-Roman-ISOLatin1 F 1000 o f (Symbol\2552 Structure) h R S 4858 -3655 M /Times-Roman-ISOLatin1 F 1100 o f (1) h R S 4858 -4709 M /Times-Roman-ISOLatin1 F 1100 o f (2) h R S 4858 -5764 M /Times-Roman-ISOLatin1 F 1100 o f (3) h R S 4858 -6722 M /Times-Roman-ISOLatin1 F 1100 o f (4) h R S 4858 -7777 M /Times-Roman-ISOLatin1 F 1100 o f (5) h R S 4858 -8832 M /Times-Roman-ISOLatin1 F 1100 o f (6) h R S 4858 -9791 M /Times-Roman-ISOLatin1 F 1100 o f (7) h R S 4858 -10846 M /Times-Roman-ISOLatin1 F 1100 o f (8) h R S 4858 -11804 M /Times-Roman-ISOLatin1 F 1100 o f (9) h R S 4378 -12859 M /Times-Roman-ISOLatin1 F 1100 o f (10) h R S 11665 -3655 M /Times-Roman-ISOLatin1 F 1100 o f (\2551,1) h R S 10610 -4709 M /Times-Roman-ISOLatin1 F 1100 o f (\2553,\2552,2,3) h R S 10418 -5764 M /Times-Roman-ISOLatin1 F 1100 o f (\2557..\2554,4..7) h R S 9843 -6722 M /Times-Roman-ISOLatin1 F 1100 o f (\25515..\2558,8..15) h R S 9268 -7777 M /Times-Roman-ISOLatin1 F 1100 o f (\25531..\25516,16..31) h R S 9268 -8832 M /Times-Roman-ISOLatin1 F 1100 o f (\25563..\25532,32..63) h R S 8692 -9791 M /Times-Roman-ISOLatin1 F 1100 o f (\255127..\25564,64..127) h R S 8214 -10846 M /Times-Roman-ISOLatin1 F 1100 o f (\255255..\255128,128..255) h R S 8214 -11804 M /Times-Roman-ISOLatin1 F 1100 o f (\255511..\255256,256..511) h R S 7638 -12859 M /Times-Roman-ISOLatin1 F 1100 o f (\2551023..\255512,512..1023) h R S 2556 -13507 17736 12745 @ S 50 w 0 c 0 j 2 i 0.00 G k R R S N 2679.00 -2454.00 M 20333.00 -2454.00 L S 50 w 0 c 0 j 2 i 0.00 G k R R S 3889 -2073 M /Times-Roman-ISOLatin1 F 1100 o f (SIZE) h R S 9354 -2073 M /Times-Roman-ISOLatin1 F 1100 o f (AMPLITUDE) h R R R R S 30008 -75738 M /Times-Roman-ISOLatin1 F 1000 o f (13) h R showpage $P e %%Page: 14 14 /$P a D g N 0 79200 T S S 7200 -2700 T N 0 G 300 -1200 M -7200 2700 T R S 7200 -74700 T N 0 G 300 -1200 M -7200 74700 T R R S 7152 -59314 T N 0 G 300 -1050 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1000 o f (4\)) h 2100 -1050 M 7.9 0 32 (Use this up\255sampled image as a prediction of the) W 2100 -2150 M 505.7 0 32 (original at this resolution, and encode the) W 2100 -3250 M 307.0 0 32 (difference image using one of the sequential) W 2100 -4350 M 351.4 0 32 (DCT, progressive DCT, or lossless encoders) W 2100 -5450 M (described previously.) h 2100 -6550 M 300 -7650 M (5\)) h 2100 -7650 M 16.1 0 32 (Repeat steps 3\) and 4\) until the full resolution of) W 2100 -8750 M (the image has been encoded.) h 2100 -9850 M 300 -10950 M 75.1 0 32 (The encoding in steps 2\) and 4\) must be done using) W 300 -12050 M 144.8 0 32 (only DCT\255based processes, only lossless processes,) W -7152 59314 T R S 32040 -59325 T N 0 G 300 -1050 M /Times-Roman-ISOLatin1 F 1000 o f 32.1 0 32 (or DCT\255based processes with a final lossless process) W 300 -2150 M (for each component.) h 300 -3250 M 300 -4350 M 292.0 0 32 (Hierarchical encoding is useful in applications in) W 300 -5450 M 10.8 0 32 (which a very high resolution image must be accessed) W 300 -6550 M 243.3 0 32 (by a lower\255resolution display. An example is an) W 300 -7650 M 16.3 0 32 (image scanned and compressed at high resolution for) W 300 -8750 M 218.6 0 32 (a very high\255quality printer, where the image must) W 300 -9850 M 357.1 0 32 (also be displayed on a low\255resolution PC video) W 300 -10950 M (screen.) h 300 -12050 M -32040 59325 T R S 7478 -5752 T N S 0 -55990 47170 55990 @ R 0 G 300 -1050 M 300 -55560 M S 0 -55990 47170 55990 @ R -7478 5752 T S N S 7910 -60266 46306 53114 @ I N 7910 -7152 T N S N 28051.00 -26485.00 M 29810.00 -26485.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 29355.00 -26739.00 M 29899.00 -26485.00 L 29355.00 -26232.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S 27572 -26841 1434 854 @ S 0.00 G - + * E R R S N 7951.00 -5609.00 M 7951.00 -7452.00 L S 150 w 0 c 0 j [100 400] 0 d 0.00 G k R R S N 10071.00 -2868.00 M 12373.00 -2107.00 L S 150 w 0 c 0 j [100 400] 0 d 0.00 G k R R S 27673 -24959 2034 3299 @ S 0.00 G - + * E R S 100 w 0 c 0 j 2 i 0.00 G k R R S N 28111.00 -24989.00 M 28111.00 -21690.00 L 34561.00 -16951.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 28586.00 -24989.00 M 28586.00 -21690.00 L 35034.00 -16951.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 29170.00 -24989.00 M 29170.00 -21713.00 L 35515.00 -17004.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 27752.00 -21655.00 M 34156.00 -16950.00 L 36061.00 -17005.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 29765.00 -24993.00 M 36112.00 -19542.00 L 36112.00 -17114.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S 27936 -34013 657 3168 @ S 0.00 G - + * E R S 100 w 0 c 0 j 2 i 0.00 G k R R S N 28014.00 -30789.00 M 34616.00 -26319.00 L 35158.00 -26319.00 L 28609.00 -30789.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 35159.00 -26369.00 M 35159.00 -29208.00 L 28598.00 -34045.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 28070.00 -21382.00 M 30187.00 -21382.00 L 30187.00 -24611.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 28491.00 -21051.00 M 30609.00 -21051.00 L 30609.00 -24282.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 29073.00 -33616.00 M 29073.00 -30462.00 L 28491.00 -30462.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 29496.00 -33297.00 M 29496.00 -30145.00 L 28915.00 -30145.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 31982.00 -21620.00 M 33692.00 -20185.00 L S 150 w 0 c 0 j [100 400] 0 d 0.00 G k R R S N 31469.00 -29792.00 M 33236.00 -28348.00 L S 150 w 0 c 0 j [100 400] 0 d 0.00 G k R R S 28254 -45069 659 3261 @ S 0.00 G - + * E R S 100 w 0 c 0 j 2 i 0.00 G k R R S N 28333.00 -41749.00 M 34935.00 -37152.00 L 35477.00 -37152.00 L 28927.00 -41749.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 35477.00 -37203.00 M 35477.00 -40126.00 L 28915.00 -45102.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 29337.00 -44777.00 M 29337.00 -41405.00 L 28861.00 -41405.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 29707.00 -44452.00 M 29707.00 -41205.00 L 29231.00 -41205.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 31527.00 -41856.00 M 33350.00 -40419.00 L S 150 w 0 c 0 j [100 400] 0 d 0.00 G k R R S 6408 -35969 4044 1320 @ S 0.00 G - + * E R S 100 w 0 c 0 j 2 i 0.00 G k R R S N 6459.00 -34679.00 M 13019.00 -30105.00 L 16445.00 -30105.00 L 10505.00 -34652.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 6901.00 -34370.00 M 10756.00 -34370.00 L 10756.00 -35713.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 7363.00 -34064.00 M 11218.00 -34064.00 L 11218.00 -35455.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 16436.00 -30163.00 M 16436.00 -31362.00 L 10508.00 -35947.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 6487.00 -35060.00 M 10508.00 -35060.00 L 16488.00 -30526.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 6487.00 -35530.00 M 10508.00 -35530.00 L 16488.00 -30994.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S 8585 -1604 M /Times-Roman-ISOLatin1 F 800 o f (Blocks) h R S 4074 -6206 M /Times-Roman-ISOLatin1 F 800 o f (DCT) h R S 3023 -6976 M /Times-Roman-ISOLatin1 F 800 o f (coefficients) h R S 16940 -8844 M /Times-Roman-ISOLatin1 F 1000 o f (\(a\) image component) h R S 18710 -9709 M /Times-Roman-ISOLatin1 F 1000 o f (as quantized) h R S 17936 -10669 M /Times-Roman-ISOLatin1 F 1000 o f (DCT coefficients) h R S 27584 -26840 M /Times-Roman-ISOLatin1 F 800 o f (MSB) h R S 27853 -28363 M /Times-Roman-ISOLatin1 F 800 o f (2) h 0.0 358.0 m (nd) h 0 -358.0 m ( scan) h R S 6859 -20758 M /Times-Roman-ISOLatin1 F 800 o f (1) h 0.0 358.0 m (st) h 0 -358.0 m ( scan) h R S 6408 -45081 4044 1293 @ S 0.00 G - + * E R S 100 w 0 c 0 j 2 i 0.00 G k R R S N 6459.00 -43816.00 M 13019.00 -39334.00 L 16445.00 -39334.00 L 10505.00 -43791.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 6901.00 -43493.00 M 10803.00 -43493.00 L 10803.00 -44709.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 7476.00 -43156.00 M 11377.00 -43156.00 L 11377.00 -44424.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 10870.00 -42266.00 M 12410.00 -40955.00 L S 150 w 0 c 0 j [100 400] 0 d 0.00 G k R R S N 16436.00 -39388.00 M 16436.00 -40562.00 L 10508.00 -45061.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 6487.00 -44192.00 M 10508.00 -44192.00 L 16488.00 -39744.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 6487.00 -44650.00 M 10508.00 -44650.00 L 16488.00 -40203.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S 6533 -37579 M /Times-Roman-ISOLatin1 F 800 o f (3) h 0.0 358.0 m (rd) h 0 -358.0 m ( scan) h R S 27519 -36504 M /Times-Roman-ISOLatin1 F 800 o f (3) h 0.0 358.0 m (rd) h 0 -358.0 m ( scan) h R S 27906 -46729 M /Times-Roman-ISOLatin1 F 800 o f (\(LSB\)) h R S 27906 -47951 M /Times-Roman-ISOLatin1 F 800 o f (6) h 0.0 358.0 m (th) h 0 -358.0 m ( scan) h R S 32477 -24147 M /Times-Roman-ISOLatin1 F 800 o f (sending) h R S 14094 -34924 M /Times-Roman-ISOLatin1 F 800 o f (sending) h R S 14011 -43670 M /Times-Roman-ISOLatin1 F 800 o f (sending) h R S 32059 -44171 M /Times-Roman-ISOLatin1 F 800 o f (sending) h R S 31912 -32940 M /Times-Roman-ISOLatin1 F 800 o f (sending) h R S N 10629.00 -10527.00 M 11896.00 -10527.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 11441.00 -10781.00 M 11985.00 -10527.00 L 11441.00 -10274.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 31350.00 -24176.00 M 33120.00 -22714.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 32930.00 -23199.00 M 33188.00 -22658.00 L 32607.00 -22808.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 30555.00 -33224.00 M 32324.00 -31762.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 32135.00 -32247.00 M 32392.00 -31706.00 L 31811.00 -31857.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 30662.00 -44524.00 M 32429.00 -43059.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 32240.00 -43545.00 M 32497.00 -43003.00 L 31917.00 -43155.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 12784.00 -43931.00 M 14621.00 -42531.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 14413.00 -43008.00 M 14692.00 -42477.00 L 14106.00 -42605.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 13154.00 -34829.00 M 14925.00 -33364.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 14736.00 -33850.00 M 14993.00 -33308.00 L 14413.00 -33459.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 12784.00 -18057.00 M 14555.00 -16594.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 14365.00 -17079.00 M 14623.00 -16538.00 L 14042.00 -16688.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 10203.00 -6420.00 M 11270.00 -6420.00 L S 75 w 0 c 0 j 2 i [100 400] 0 d 0.00 G k R R S N 10754.00 -5815.00 M 10754.00 -7112.00 L S 75 w 0 c 0 j 2 i [100 400] 0 d 0.00 G k R R S 7797 -4435 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 7806 -5153 M /Times-Roman-ISOLatin1 F 800 o f (1) h R S 7651 -8208 M /Times-Roman-ISOLatin1 F 800 o f (62) h R S 7652 -8936 M /Times-Roman-ISOLatin1 F 800 o f (63) h R S 8299 -3638 M /Times-Roman-ISOLatin1 F 800 o f (1) h R S 9159 -3368 M /Times-Roman-ISOLatin1 F 800 o f (2) h R S 9109 -9691 M /Times-Roman-ISOLatin1 F 800 o f (7) h R S 9960 -9762 M /Times-Roman-ISOLatin1 F 800 o f (6) h R S 13016 -9692 M /Times-Roman-ISOLatin1 F 800 o f (1) h R S 13835 -9692 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 8804 -10813 M /Times-Roman-ISOLatin1 F 800 o f (MSB) h R S 12578 -10813 M /Times-Roman-ISOLatin1 F 800 o f (LSB) h R S 5934 -18462 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 27733 -25901 M /Times-Roman-ISOLatin1 F 800 o f (7) h R S 28232 -25901 M /Times-Roman-ISOLatin1 F 800 o f (6) h R S 28729 -25900 M /Times-Roman-ISOLatin1 F 800 o f (5) h R S 29338 -25901 M /Times-Roman-ISOLatin1 F 800 o f (4) h R S 28157 -34924 M /Times-Roman-ISOLatin1 F 800 o f (3) h R S 5754 -35249 M /Times-Roman-ISOLatin1 F 800 o f (3) h R S 5754 -35719 M /Times-Roman-ISOLatin1 F 800 o f (4) h R S 5754 -36191 M /Times-Roman-ISOLatin1 F 800 o f (5) h R S 5559 -44264 M /Times-Roman-ISOLatin1 F 800 o f (61) h R S 5559 -44889 M /Times-Roman-ISOLatin1 F 800 o f (62) h R S 5560 -45516 M /Times-Roman-ISOLatin1 F 800 o f (63) h R S 28498 -46101 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S N 9232.00 -2405.00 M 12267.00 -1312.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 11925.00 -1704.00 M 12351.00 -1281.00 L 11753.00 -1227.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 7044.00 -17494.00 M 10906.00 -17494.00 L 10906.00 -18296.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 7499.00 -17223.00 M 11289.00 -17223.00 L 11289.00 -18060.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S 3940 -51149 M /Times-Roman-ISOLatin1 F 1000 o f (Figure 11. Spectral Selection and Successive Approximation Methods of Progressive Encoding) h R S N 29672.00 -24989.00 M 29672.00 -21743.00 L 36017.00 -17076.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 18315.00 -5036.00 M 20075.00 -4182.00 L S 75 w 0 c 0 j 2 i [100 400] 0 d 0.00 G k R R S N 19098.00 -4110.00 M 19098.00 -5323.00 L S 75 w 0 c 0 j 2 i [100 400] 0 d 0.00 G k R R S N 14358.00 -3042.00 M 16000.00 -2471.00 L S 75 w 0 c 0 j 2 i [100 400] 0 d 0.00 G k R R S N 14684.00 -2542.00 M 15662.00 -2970.00 L S 75 w 0 c 0 j 2 i [100 400] 0 d 0.00 G k R R S N 10224.00 -6462.00 M 11658.00 -6462.00 L S 75 w 0 c 0 j 2 i [100 400] 0 d 0.00 G k R R S N 10875.00 -5678.00 M 10875.00 -7319.00 L S 75 w 0 c 0 j 2 i [100 400] 0 d 0.00 G k R R S N 6893.00 -4894.00 M 6893.00 -7995.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 6640.00 -7540.00 M 6893.00 -8084.00 L 7147.00 -7540.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S 14019 -17828 M /Times-Roman-ISOLatin1 F 800 o f (sending) h R S 7146 -46597 M /Times-Roman-ISOLatin1 F 800 o f (n) h 0.0 358.0 m (th) h 0 -358.0 m ( scan) h R S 3868 -49347 M /Times-Roman-ISOLatin1 F 900 o f (c\) progressive encoding: spectral selection) h R S 22272 -49418 M /Times-Roman-ISOLatin1 F 900 o f (d\) progressive encoding: successive approximation) h R S 6761 -39209 M /Symbol F 800 o f (\267) h R S 6761 -40349 M /Symbol F 800 o f (\267) h R S 6761 -41490 M /Symbol F 800 o f (\267) h R S 28181 -38240 M /Symbol F 800 o f (\267) h R S 28181 -39379 M /Symbol F 800 o f (\267) h R S 28181 -40518 M /Symbol F 800 o f (\267) h R S 8608 -8890 5712 5048 @ S 0.00 G - + * E R S 100 w 0 c 0 j 2 i 0.00 G k R R S N 8480.00 -3864.00 M 19987.00 -616.00 L 24607.00 -616.00 L 14376.00 -3864.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 14339.00 -8897.00 M 24606.00 -4823.00 L 24606.00 -751.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 9448.00 -3798.00 M 20752.00 -618.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 10340.00 -3798.00 M 21712.00 -553.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 13375.00 -3864.00 M 23711.00 -552.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 12411.00 -3864.00 M 22746.00 -552.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 9310.00 -3667.00 M 14822.00 -3667.00 L 14822.00 -8565.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 9792.00 -3468.00 M 15305.00 -3468.00 L 15305.00 -8366.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 8690.00 -4528.00 M 14384.00 -4528.00 L 24606.00 -1214.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 8690.00 -5190.00 M 14359.00 -5190.00 L 24537.00 -1878.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 8690.00 -8234.00 M 14359.00 -8234.00 L 24606.00 -4194.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 8690.00 -7504.00 M 14336.00 -7504.00 L 24537.00 -3533.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 9517.00 -3864.00 M 9517.00 -8964.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 10413.00 -3864.00 M 10413.00 -8964.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 13581.00 -3864.00 M 13581.00 -8964.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 12686.00 -3864.00 M 12686.00 -8964.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 26725.00 -22712.00 M 26725.00 -23700.00 L S 150 w 0 c 0 j [100 400] 0 d 0.00 G k R R S 26651 -22398 M /Times-Roman-ISOLatin1 F 800 o f (2) h R S 26377 -24313 M /Times-Roman-ISOLatin1 F 800 o f (62) h R S 26377 -25040 M /Times-Roman-ISOLatin1 F 800 o f (63) h R S 26619 -21752 M /Times-Roman-ISOLatin1 F 800 o f (1) h R S 26256 -17201 4043 750 @ S 0.00 G - + * E R S 75 w 0 c 0 j 2 i 0.00 G k R R S N 26307.00 -16481.00 M 32866.00 -11908.00 L 36293.00 -11908.00 L 30353.00 -16453.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 30384.00 -17169.00 M 36306.00 -12642.00 L 36306.00 -11896.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S 26324 -18004 M /Times-Roman-ISOLatin1 F 800 o f (7 . . . . 0) h R S 25568 -17191 M /Times-Roman-ISOLatin1 F 800 o f (0) h R S 26706 -19382 M /Times-Roman-ISOLatin1 F 800 o f (1) h 0.0 358.0 m (st) h 0 -358.0 m ( scan) h R S 22215 -6305 4985 7815 @ S 0.00 G - + * E R R S 17516 -1346 7671 1999 @ S 0.00 G - + * E R R S N 17439.00 -1330.00 M 22168.00 -1330.00 L 22168.00 -5748.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S 28685 -9812 4043 3950 @ S 0.00 G - + * E R S 100 w 0 c 0 j 2 i 0.00 G k R R S N 28684.00 -5898.00 M 35241.00 -149.00 L 38669.00 -149.00 L 32728.00 -5866.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 38633.00 -149.00 M 38633.00 -3395.00 L 32803.00 -9738.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 29391.00 -5360.00 M 33271.00 -5360.00 L 33271.00 -9272.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 29771.00 -4897.00 M 33706.00 -4897.00 L 33706.00 -8811.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 35650.00 -4967.00 M 36962.00 -3846.00 L S 150 w 0 c 0 j [100 400] 0 d 0.00 G k R R S 27998 -11153 M /Times-Roman-ISOLatin1 F 1000 o f (\(b\) Sequential encoding) h R S 36964 -6785 M /Times-Roman-ISOLatin1 F 800 o f (sending) h R S N 35852.00 -7340.00 M 37402.00 -5494.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 37304.00 -6005.00 M 37459.00 -5426.00 L 36916.00 -5679.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 33515.00 -3361.00 M 34771.00 -2174.00 L S 150 w 0 c 0 j [100 400] 0 d 0.00 G k R R S 6408 -27700 4044 1319 @ S 0.00 G - + * E R S 100 w 0 c 0 j 2 i 0.00 G k R R S N 6459.00 -26412.00 M 13019.00 -21838.00 L 16445.00 -21838.00 L 10505.00 -26384.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 6901.00 -26103.00 M 10756.00 -26103.00 L 10756.00 -27444.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 7363.00 -25797.00 M 11218.00 -25797.00 L 11218.00 -27189.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 16436.00 -21894.00 M 16436.00 -23094.00 L 10508.00 -27680.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 6487.00 -27121.00 M 10508.00 -27121.00 L 16488.00 -22585.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S 6533 -29311 M /Times-Roman-ISOLatin1 F 800 o f (2) h 0.0 358.0 m (nd) h 0 -358.0 m ( scan) h R S 14094 -26658 M /Times-Roman-ISOLatin1 F 800 o f (sending) h R S N 13154.00 -26562.00 M 14925.00 -25096.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 14736.00 -25582.00 M 14993.00 -25040.00 L 14413.00 -25191.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S 5825 -26910 M /Times-Roman-ISOLatin1 F 800 o f (1) h R S 5826 -27665 M /Times-Roman-ISOLatin1 F 800 o f (2) h R S 6407 -18554 4044 752 @ S 0.00 G - + * E R S 75 w 0 c 0 j 2 i 0.00 G k R R S N 6458.00 -17835.00 M 13018.00 -13262.00 L 16444.00 -13262.00 L 10505.00 -17805.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R S N 10535.00 -18523.00 M 16459.00 -13996.00 L 16459.00 -13249.00 L S 75 w 0 c 0 j 2 i 0.00 G k R R R R R S 29816 -75834 M /Times-Roman-ISOLatin1 F 1000 o f (14) h R showpage $P e %%Page: 15 15 /$P a D g N 0 79200 T S S 7200 -2700 T N 0 G 300 -1200 M -7200 2700 T R S 7200 -74700 T N 0 G 300 -1200 M -7200 74700 T R R S 7192 -7189 T N 0 G 300 -1200 M /Times-Bold-ISOLatin1 $ /Times-Bold & P /Times-Bold-ISOLatin1 F 1200 o f (10 Other Aspects of the JPEG Proposal) h 300 -2950 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1000 o f 59.4 0 32 (Some key aspects of the proposed standard can only) W 300 -4050 M 250.3 0 32 (be mentioned briefly. Foremost among these are) W 300 -5150 M 556.2 0 32 (points concerning the coded representation for) W 300 -6250 M 159.0 0 32 (compressed image data specified in addition to the) W 300 -7350 M (encoding and decoding procedures.) h 300 -8450 M 300 -9550 M 203.5 0 32 (Most importantly, an ) W /Times-Italic-ISOLatin1 $ /Times-Italic & P /Times-Italic-ISOLatin1 F 1000 o f 203.5 0 32 (interchange format) W /Times-Roman-ISOLatin1 F 1000 o f 203.5 0 32 ( syntax is) W 300 -10650 M 356.2 0 32 (specified which ensures that a JPEG\255compressed) W 300 -11750 M 567.6 0 32 (image can be exchanged successfully between) W 300 -12850 M 231.8 0 32 (different application environments. The format is) W 300 -13950 M 357.9 0 32 (structured in a consistent way for all modes of) W 300 -15050 M 139.5 0 32 (operation. The interchange format always includes) W 300 -16150 M 367.0 0 32 (all quantization and entropy\255coding tables which) W 300 -17250 M (were used to compress the image.) h 300 -18350 M 300 -19450 M 63.5 0 32 (Applications \(and application\255specific standards\) are) W 300 -20550 M 423.9 0 32 (the ) W 423.9 0 32 (\026) W 423.9 0 32 (users) W 423.9 0 32 (\027) W 423.9 0 32 ( of the JPEG standard. The JPEG) W 300 -21650 M 352.0 0 32 (standard imposes no requirement that, within an) W 300 -22750 M 315.2 0 32 (application's environment, all or even any tables) W 300 -23850 M 222.6 0 32 (must be encoded with the compressed image data) W 300 -24950 M 657.5 0 32 (during storage or transmission. This leaves) W 300 -26050 M 532.8 0 32 (applications the freedom to specify default or) W 300 -27150 M 103.0 0 32 (referenced tables if they are considered appropriate. ) W 300 -28250 M 135.5 0 32 (It also leaves them the responsibility to ensure that) W 300 -29350 M 993.3 0 32 (JPEG\255compliant decoders used within their) W 300 -30450 M 66.3 0 32 (environment get loaded with the proper tables at the) W 300 -31550 M 69.9 0 32 (proper times, and that the proper tables are included) W 300 -32650 M 72.0 0 32 (in the interchange format when a compressed image) W 300 -33750 M (is ) h (\026) h (exported) h (\027) h ( outside the application.) h 300 -34850 M 300 -35950 M 127.3 0 32 (Some of the important applications that are already) W 300 -37050 M 301.7 0 32 (in the process of adopting JPEG compression or) W 300 -38150 M 226.0 0 32 (have stated their interest in doing so are Adobe's) W 300 -39250 M 333.3 0 32 (PostScript language for printing systems [1], the) W 300 -40350 M 87.6 0 32 (Raster Content portion of the ISO Office Document) W 300 -41450 M 47.2 0 32 (Architecture and Interchange Format [13], the future) W 300 -42550 M 185.7 0 32 (CCITT color facsimile standard, and the European) W 300 -43650 M (ETSI videotext standard [10].) h 300 -44750 M 300 -45850 M 300 -47100 M /Times-Bold-ISOLatin1 F 1200 o f (11 Standardization Schedule) h 300 -48850 M /Times-Roman-ISOLatin1 F 1000 o f 76.4 0 32 (JPEG's ISO standard will be divided into two parts. ) W 300 -49950 M 114.4 0 32 (Part 1 [2] will specify the four modes of operation,) W 300 -51050 M 147.4 0 32 (the different codecs specified for those modes, and) W 300 -52150 M 423.9 0 32 (the interchange format. It will also contain a) W 300 -53250 M 131.8 0 32 (substantial informational section on implementation) W 300 -54350 M 180.8 0 32 (guidelines. Part 2 [3] will specify the compliance) W 300 -55450 M 458.8 0 32 (tests which will determine whether an encoder) W 300 -56550 M 433.6 0 32 (implementation, a decoder implementation, or a) W 300 -57650 M 618.8 0 32 (JPEG\255compressed image in interchange format) W 300 -58750 M 40.1 0 32 (comply with the Part 1 specifications. In addition to) W 300 -59850 M 222.8 0 32 (the ISO documents referenced, the JPEG standard) W 300 -60950 M (will also be issued as CCITT Recommendation T.81.) h 300 -62050 M -7192 7189 T R S 32040 -7189 T N 0 G 300 -1050 M /Times-Roman-ISOLatin1 F 1000 o f 378.8 0 32 (There are two key balloting phases in the ISO) W 300 -2150 M 125.3 0 32 (standardization process: a Committee Draft \(CD\) is) W 300 -3250 M 1011.2 0 32 (balloted to determine promotion to Draft) W 300 -4350 M 0.3 0 32 (International Standard \(DIS\), and a DIS is balloted to) W 300 -5450 M 139.2 0 32 (determine promotion to International Standard \(IS\). ) W 300 -6550 M 545.1 0 32 (A CD ballot requires four to six months of) W 300 -7650 M 271.0 0 32 (processing, and a DIS ballot requires six to nine) W 300 -8750 M 243.1 0 32 (months of processing. JPEG's Part 1 began DIS) W 300 -9850 M 312.6 0 32 (ballot in November 1991, and Part 2 began CD) W 300 -10950 M (ballot in December 1991.) h 300 -12050 M 300 -13150 M 111.3 0 32 (Though there is no guarantee that the first ballot of) W 300 -14250 M 3.1 0 32 (each phase will result in promotion to the next, JPEG) W 300 -15350 M 5.1 0 32 (achieved promotion of CD Part 1 to DIS Part 1 in the) W 300 -16450 M 371.6 0 32 (first ballot. Moreover, JPEG's DIS Part 1 has) W 300 -17550 M 264.5 0 32 (undergone no technical changes \(other than some) W 300 -18650 M 23.7 0 32 (minor corrections\) since JPEG's final Working Draft) W 300 -19750 M 170.6 0 32 (\(WD\) [14]. Thus, Part 1 has remained unchanged) W 300 -20850 M 38.0 0 32 (from the final WD, through CD, and into DIS. If all) W 300 -21950 M 59.0 0 32 (goes well, Part 1 should receive final approval as an) W 300 -23050 M 46.2 0 32 (IS in mid\2551992, with Part 2 getting final IS approval) W 300 -24150 M (about nine months later. ) h 300 -25250 M 300 -26350 M 300 -27600 M /Times-Bold-ISOLatin1 F 1200 o f (12 Conclusions) h 300 -29350 M /Times-Roman-ISOLatin1 F 1000 o f 965.5 0 32 (The emerging JPEG continuous\255tone image) W 300 -30450 M 17.6 0 32 (compression standard is not a panacea that will solve) W 300 -31550 M 190.9 0 32 (the myriad issues which must be addressed before) W 300 -32650 M 100.6 0 32 (digital images will be fully integrated within all the) W 300 -33750 M 157.3 0 32 (applications that will ultimately benefit from them. ) W 300 -34850 M 241.2 0 32 (For example, if two applications cannot exchange) W 300 -35950 M 22.8 0 32 (uncompressed images because they use incompatible) W 300 -37050 M 190.9 0 32 (color spaces, aspect ratios, dimensions, etc. then a) W 300 -38150 M (common compression method will not help.) h 300 -39250 M 300 -40350 M 100.0 0 32 (However, a great many applications are ) W 100.0 0 32 (\026) W 100.0 0 32 (stuck) W 100.0 0 32 (\027) W 100.0 0 32 ( be\255) W 300 -41450 M 21.4 0 32 (cause of storage or transmission costs, because of ar\255) W 300 -42550 M 632.5 0 32 (gument over which \(nonstandard\) compression) W 300 -43650 M 114.7 0 32 (method to use, or because VLSI codecs are too ex\255) W 300 -44750 M 52.1 0 32 (pensive due to low volumes. For these applications,) W 300 -45850 M 105.8 0 32 (the thorough technical evaluation, testing, selection,) W 300 -46950 M 339.0 0 32 (validation, and documentation work which JPEG) W 300 -48050 M 153.3 0 32 (committee members have performed is expected to) W 300 -49150 M 227.2 0 32 (soon yield an approved international standard that) W 300 -50250 M 111.0 0 32 (will withstand the tests of quality and time. As di\255) W 300 -51350 M 100.4 0 32 (verse imaging applications become increasingly im\255) W 300 -52450 M 216.8 0 32 (plemented on open networked computing systems,) W 300 -53550 M 32.0 0 32 (the ultimate measure of the committee's success will) W 300 -54650 M 180.8 0 32 (be when JPEG\255compressed digital images come to) W 300 -55750 M 111.8 0 32 (be regarded and even taken for granted as ) W 111.8 0 32 (\026) W 111.8 0 32 (just an\255) W 300 -56850 M (other data type,) h (\027) h ( as text and graphics are today.) h 300 -58250 M 300 -59350 M 300 -60450 M 300 -61550 M 300 -62650 M 300 -63750 M -32040 7189 T R S 29912 -75834 M /Times-Roman-ISOLatin1 F 1000 o f (15) h R showpage $P e %%Page: 16 16 /$P a D g N 0 79200 T S S 7200 -2700 T N 0 G 300 -1200 M -7200 2700 T R S 7200 -74700 T N 0 G 300 -1200 M -7200 74700 T R R S 7200 -7200 T N 0 G 300 -1200 M /Times-Bold-ISOLatin1 $ /Times-Bold & P /Times-Bold-ISOLatin1 F 1200 o f (For more information) h 300 -2950 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1000 o f 114.8 0 32 (Information on how to obtain the ISO JPEG \(draft\)) W 300 -4050 M 177.4 0 32 (standards can be obtained by writing the author at) W 300 -5150 M (the following address:) h 300 -6250 M 300 -7350 M (Digital Equipment Corporation) h 300 -8450 M (146 Main Street, ML01\2552/U44) h 300 -9550 M (Maynard, MA 01754\2552571) h 300 -10650 M 300 -11750 M (Internet: wallace@gauss.enet.dec.com) h 300 -12850 M 300 -13950 M 76.5 0 32 (Floppy disks containing uncompressed, compressed,) W 300 -15050 M 72.0 0 32 (and reconstructed data for the purpose of informally) W 300 -16150 M 956.4 0 32 (validating whether an encoder or decoder) W 300 -17250 M 200.2 0 32 (implementation conforms to the proposed standard) W 300 -18350 M 488.3 0 32 (are available. Thanks to the following JPEG) W 300 -19450 M 412.3 0 32 (committee member and his company who have) W 300 -20550 M 105.4 0 32 (agreed to provide these for a nominal fee on behalf) W 300 -21650 M 24.8 0 32 (of the committee until arrangements can be made for) W 300 -22750 M (ISO to provide them:) h 300 -23850 M 300 -24950 M (Eric Hamilton) h 300 -26050 M (C\255Cube Microsystems) h 300 -27150 M (1778 McCarthy Blvd.) h 300 -28250 M (Milpitas, CA 95035) h 300 -29350 M 300 -30450 M 300 -31700 M /Times-Bold-ISOLatin1 F 1200 o f (Acknowledgments) h 300 -33450 M /Times-Roman-ISOLatin1 F 1000 o f 217.8 0 32 (The following longtime JPEG core members have) W 300 -34550 M 52.1 0 32 (spent untold hours \(usually in addition to their ``real) W 300 -35650 M 51.3 0 32 (jobs''\) to make this collaborative international effort) W 300 -36750 M 60.1 0 32 (succeed. Each has made specific substantive contri\255) W 300 -37850 M 111.1 0 32 (butions to the JPEG proposal: Aharon Gill \(Zoran,) W 300 -38950 M 130.2 0 32 (Israel\), Eric Hamilton \(C\255Cube, USA\), Alain Leger) W 300 -40050 M 667.3 0 32 (\(CCETT, France\), Adriaan Ligtenberg \(Storm,) W 300 -41150 M 195.4 0 32 (USA\), Herbert Lohscheller \(ANT, Germany\), Joan) W 300 -42250 M 88.3 0 32 (Mitchell \(IBM, USA\), Michael Nier \(Kodak, USA\),) W 300 -43350 M 211.8 0 32 (Takao Omachi \(NEC, Japan\), William Pennebaker) W 300 -44450 M 189.2 0 32 (\(IBM, USA\), Henning Poulsen \(KTAS, Denmark\),) W 300 -45550 M 292.5 0 32 (and Jorgen Vaaben \(AutoGraph, Denmark\). The) W 300 -46650 M 153.5 0 32 (leadership efforts of Hiroshi Yasuda \(NTT, Japan\),) W 300 -47750 M 97.2 0 32 (the Convenor of JTC1/SC2/WG8 from which JPEG) W 300 -48850 M 6.2 0 32 (was spawned, Istvan Sebestyen \(Siemens, Germany\),) W 300 -49950 M 278.2 0 32 (the Special Rapporteur from CCITT SGVIII, and) W 300 -51050 M 445.0 0 32 (Graham Hudson \(British Telecom U.K.\) former) W 300 -52150 M 94.4 0 32 (JPEG chair and founder of the effort which became) W 300 -53250 M 34.2 0 32 (JPEG. The author regrets that space does not permit) W 300 -54350 M 111.3 0 32 (recognition of the many other individuals who con\255) W 300 -55450 M (tributed to JPEG's work.) h 300 -57150 M 17.6 0 32 (Thanks to Majid Rabbani of Eastman Kodak for pro\255) W 300 -58250 M (viding the example in section 7.3.) h 300 -59950 M 24.5 0 32 (The author's role within JPEG has been supported in) W 300 -61050 M 121.8 0 32 (a great number of ways by Digital Equipment Cor\255) W 300 -62150 M (poration ) h 300 -64000 M -7200 7200 T R S 32040 -7200 T N 0 G 300 -1200 M /Times-Bold-ISOLatin1 F 1200 o f (References) h 300 -2950 M /Times-Roman-ISOLatin1 F 1000 o f (1.) h 2100 -2950 M 23.4 0 32 (Adobe Systems Inc. ) W /Times-Italic-ISOLatin1 $ /Times-Italic & P /Times-Italic-ISOLatin1 F 1000 o f 23.4 0 32 (PostScript Language Refer\255) W 2100 -4050 M 320.7 0 32 (ence Manual) W /Times-Roman-ISOLatin1 F 1000 o f 320.7 0 32 (. Second Ed. Addison Wesley,) W 2100 -5150 M (Menlo Park, Calif. 1990) h 300 -6850 M (2.) h 2100 -6850 M 17.4 0 32 (Digital Compression and Coding of Continuous\255) W 2100 -7950 M 362.0 0 32 (tone Still Images, Part 1, Requirements and) W 2100 -9050 M 168.0 0 32 (Guidelines. ISO/IEC JTC1 Draft International) W 2100 -10150 M (Standard 10918\2551, Nov. 1991.) h 300 -11850 M (3.) h 2100 -11850 M 17.4 0 32 (Digital Compression and Coding of Continuous\255) W 2100 -12950 M 181.3 0 32 (tone Still Images, Part 2, Compliance Testing. ) W 2100 -14050 M 129.0 0 32 (ISO/IEC JTC1 Committee Draft 10918\2552, Dec.) W 2100 -15150 M (1991.) h 300 -16850 M (4.) h 2100 -16850 M 329.2 0 32 (Encoding parameters of digital television for) W 2100 -17950 M 140.0 0 32 (studios. CCIR Recommendations, Recommen\255) W 2100 -19050 M (dation 601, 1982.) h 300 -20750 M (5.) h 2100 -20750 M 18.3 0 32 (Howard, P.G., and Vitter, J.S. New methods for) W 2100 -21850 M 445.8 0 32 (lossless image compression using arithmetic) W 2100 -22950 M 186.2 0 32 (coding. Brown University Dept. of Computer) W 2100 -24050 M (Science Tech. Report No. CS\25591\25547, Aug. 1991.) h 300 -25750 M (6.) h 2100 -25750 M 68.0 0 32 (Hudson, G.P. The development of photographic) W 2100 -26850 M 53.0 0 32 (videotex in the UK. In ) W /Times-Italic-ISOLatin1 F 1000 o f 53.0 0 32 (Proceedings of the IEEE) W 2100 -27950 M 243.0 0 32 (Global Telecommunications Conference, IEEE) W 2100 -29050 M (Communication Society,) h /Times-Roman-ISOLatin1 F 1000 o f ( 1983, pp. 319\255322.) h 300 -30750 M (7.) h 2100 -30750 M 261.3 0 32 (Hudson, G.P., Yasuda, H., and Sebesty\351n,) W 300.0 0.0 m 261.3 0 32 ( ) W 261.3 0 32 (I. ) W 2100 -31850 M 167.8 0 32 (The international standardization of a still pic\255) W 2100 -32950 M 117.0 0 32 (ture compression technique. In ) W /Times-Italic-ISOLatin1 F 1000 o f 117.0 0 32 (Proceedings of) W 2100 -34050 M 251.5 0 32 (the IEEE Global Telecommunications Confer\255) W 2100 -35150 M 606.0 0 32 (ence, IEEE Communications Society,) W /Times-Roman-ISOLatin1 F 1000 o f 606.0 0 32 ( Nov.) W 2100 -36250 M (1988, pp. 1016\2551021.) h 300 -37950 M (8.) h 2100 -37950 M 136.0 0 32 (Huffman, D.A. A method for the construction) W 2100 -39050 M 52.2 0 32 (of minimum redundancy codes. In ) W /Times-Italic-ISOLatin1 F 1000 o f 52.2 0 32 (Proceedings) W 2100 -40150 M (IRE) h /Times-Roman-ISOLatin1 F 1000 o f (, vol. 40, 1962, pp. 1098\2551101.) h 300 -41850 M (9.) h 2100 -41850 M 186.7 0 32 (L\351ger, A. Implementations of fast discrete co\255) W 2100 -42950 M 214.3 0 32 (sine transform for full color videotex services) W 2100 -44050 M 342.3 0 32 (and terminals. In ) W /Times-Italic-ISOLatin1 F 1000 o f 342.3 0 32 (Proceedings of the IEEE) W 2100 -45150 M 243.0 0 32 (Global Telecommunications Conference, IEEE) W 2100 -46250 M (Communications Society,) h /Times-Roman-ISOLatin1 F 1000 o f ( 1984, pp. 333\255337.) h 300 -47950 M (10.) h 2100 -47950 M 216.5 0 32 (L\351ger, A., Omachi, T., and Wallace, G. The) W 2100 -49050 M 246.2 0 32 (JPEG still picture compression algorithm. In) W 2100 -50150 M /Times-Italic-ISOLatin1 F 1000 o f 72.1 0 32 (Optical Engineering) W /Times-Roman-ISOLatin1 F 1000 o f 72.1 0 32 (, vol. 30, no. 7 \(July 1991\),) W 2100 -51250 M (pp. 947\255954.) h 300 -52950 M (11.) h 2100 -52950 M 42.5 0 32 (L\351ger, A., Mitchell, M., and Yamazaki, Y. Still) W 2100 -54050 M 18.2 0 32 (picture compression algorithms evaluated for in\255) W 2100 -55150 M 223.6 0 32 (ternational standardization. In P) W /Times-Italic-ISOLatin1 F 1000 o f 223.6 0 32 (roceedings of) W 2100 -56250 M 251.5 0 32 (the IEEE Global Telecommunications Confer\255) W 2100 -57350 M 606.0 0 32 (ence, IEEE Communications Society,) W /Times-Roman-ISOLatin1 F 1000 o f 606.0 0 32 ( Nov.) W 2100 -58450 M (1988, pp. 1028\2551032.) h 300 -60150 M (12.) h 2100 -60150 M 168.0 0 32 (Lohscheller, H. A subjectively adapted image) W 2100 -61250 M 89.8 0 32 (communication system. ) W /Times-Italic-ISOLatin1 F 1000 o f 89.8 0 32 (IEEE Trans. Commun.) W /Times-Roman-ISOLatin1 F 1000 o f 89.8 0 32 ( ) W 2100 -62350 M (COM\25532 \(Dec. 1984\), pp. 1316\2551322.) h 2100 -63450 M -32040 7200 T R S 29720 -76121 M /Times-Roman-ISOLatin1 F 1000 o f (16) h R showpage $P e %%Page: 17 17 /$P a D g N 0 79200 T S S 7200 -2700 T N 0 G 300 -1200 M -7200 2700 T R S 7200 -74700 T N 0 G 300 -1200 M -7200 74700 T R R S 7200 -7200 T N 0 G 300 -1050 M /Times-Roman-ISOLatin1 $ /Times-Roman & P /Times-Roman-ISOLatin1 F 1000 o f (13.) h 2100 -1050 M 19.0 0 32 (Office Document Architecture \(ODA\) and Inter\255) W 2100 -2150 M 16.9 0 32 (change Format, Part 7: Raster Graphics Content) W 2100 -3250 M 536.5 0 32 (Architectures. ISO/IEC JTC1 International) W 2100 -4350 M (Standard 8613\2557.) h 300 -6050 M (14.) h 2100 -6050 M 307.5 0 32 (Pennebaker, W.B., JPEG Tech. Specification,) W 2100 -7150 M 257.0 0 32 (Revision 8. Informal Working paper JPEG\2558\255) W 2100 -8250 M (R8, Aug. 1990.) h 300 -9950 M (15.) h 2100 -9950 M 108.1 0 32 (Pennebaker, W.B., Mitchell, J.L., et. al. Arith\255) W 2100 -11050 M 53.1 0 32 (metic coding articles. ) W /Times-Italic-ISOLatin1 $ /Times-Italic & P /Times-Italic-ISOLatin1 F 1000 o f 53.1 0 32 (IBM J. Res. Dev., ) W /Times-Roman-ISOLatin1 F 1000 o f 53.1 0 32 (vol. 32,) W 2100 -12150 M (no. 6 \(Nov. 1988\), pp. 717\255774.) h 300 -13850 M (16.) h 2100 -13850 M 649.0 0 32 (Rao, K.R., and Yip, P. ) W /Times-Italic-ISOLatin1 F 1000 o f 649.0 0 32 (Discrete Cosine) W 2100 -14950 M 558.0 0 32 (Transform\255\255Algorithms, Advantages, Applica\255) W 2100 -16050 M (tions) h /Times-Roman-ISOLatin1 F 1000 o f (. Academic Press, Inc. London, 1990.) h 300 -17750 M (17.) h 2100 -17750 M 129.4 0 32 (Standardization of Group 3 facsimile apparatus) W 2100 -18850 M 23.4 0 32 (for document transmission. CCITT Recommen\255) W 2100 -19950 M 272.5 0 32 (dations, Fascicle VII.2, Recommendation T.4,) W 2100 -21050 M (1980.) h 300 -22750 M (18.) h 2100 -22750 M 912.8 0 32 (Wallace, G.K. Overview of the JPEG) W 2100 -23850 M 119.5 0 32 (\(ISO/CCITT\) still image compression standard. ) W 2100 -24950 M 217.0 0 32 (Image Processing Algorithms and Techniques. ) W 2100 -26050 M 294.6 0 32 (In ) W /Times-Italic-ISOLatin1 F 1000 o f 294.6 0 32 (Proceedings of the SPIE) W /Times-Roman-ISOLatin1 F 1000 o f 294.6 0 32 (, vol. 1244 \(Feb.) W 2100 -27150 M (1990\), pp. 220\255233.) h 300 -28850 M (19.) h 2100 -28850 M 118.9 0 32 (Wallace, G., Vivian, R,. and Poulsen, H. Sub\255) W 2100 -29950 M 158.5 0 32 (jective testing results for still picture compres\255) W 2100 -31050 M 8.5 0 32 (sion algorithms for international standardization. ) W 2100 -32150 M 56.8 0 32 (In ) W /Times-Italic-ISOLatin1 F 1000 o f 56.8 0 32 (Proceedings of the IEEE Global Telecommu\255) W 2100 -33250 M 272.3 0 32 (nications Conference. IEEE Communications) W 2100 -34350 M (Society,) h /Times-Roman-ISOLatin1 F 1000 o f ( Nov. 1988, pp. 1022\2551027.) h 300 -36050 M ( ) h 300 -37900 M /Times-Bold-ISOLatin1 $ /Times-Bold & P /Times-Bold-ISOLatin1 F 1200 o f (Biography) h 300 -39050 M 300 -40150 M /Times-Roman-ISOLatin1 F 1000 o f 602.7 0 32 (Gregory K. Wallace is currently Manager of) W 300 -41250 M 35.3 0 32 (Multimedia Engineering, Advanced Development, at) W 300 -42350 M 185.2 0 32 (Digital Equipment Corporation. Since 1988 he has) W 300 -43450 M 222.4 0 32 (served as Chair of the JPEG committee \(ISO/IEC) W 300 -44550 M 100.8 0 32 (JTC1/SC2/WG10\). For the past five years at DEC,) W 300 -45650 M 199.3 0 32 (he has worked on efficient software and hardware) W 300 -46750 M 979.3 0 32 (implementations of image compression and) W 300 -47850 M 1118.3 0 32 (processing algorithms for incorporation in) W 300 -48950 M 39.6 0 32 (general\255purpose computing systems. He received the) W 300 -50050 M 95.1 0 32 (BSEE and MSEE from Stanford University in 1977) W 300 -51150 M 369.7 0 32 (and 1979. His current research interests are the) W 300 -52250 M 1132.0 0 32 (integration of robust real\255time multimedia) W 300 -53350 M (capabilities into networked computing systems. ) h 300 -54450 M 300 -56150 M 300 -57546 M -7200 7200 T R S 32040 -7200 T N 0 G -32040 7200 T R S 29912 -76888 M /Times-Roman-ISOLatin1 F 1000 o f (17) h R showpage $P e $D restore %%Trailer end % DEC_WRITE_dict %%Pages: 17 %%DocumentFonts: Times-Italic-ISOLatin1 %%+ Times-Roman-ISOLatin1 %%+ Times-Bold-ISOLatin1 %%+ Helvetica-Bold-ISOLatin1 %%+ Helvetica-ISOLatin1 %%+ Symbol %%+ Courier-ISOLatin1 %%+ Dutch801-Italic-DECmath_Italic %%+ Dutch801-Roman-DECmath_Extension %%+ Dutch801-Roman-DECmath_Symbol libextractor-1.3/src/plugins/testdata/rpm_test.rpm0000644000175000017500000251105512007544145017451 00000000000000 libtool-1.5-6> A AlpA??*7&}z1TK)e8͜khq'oN^Q"45174ec6dd4fc1854d017e23e96ed7f7414d3356 u]:};'%߈??*7&}z5"!A\n92+e+KbVWKm(">>5?5d   O <Nsy~4-- B- - P-  -  - - q- R h-$ X  (48<<9,<:'<>,?,F,G,-H--I.P-X.Y.\.-]/@-^1& b1d1e1f1k1l1t2 -u2-v3tw4-x4-y5| Clibtool1.56The GNU libtool, which simplifies the use of shared libraries.The libtool package contains the GNU libtool, a set of shell scripts which automatically configure UNIX and UNIX-like architectures to generically build shared libraries. Libtool provides a consistent, portable interface which simplifies the process of using shared libraries. If you are developing programs which will use shared libraries, you should install libtool.?{bullwinkle.devel.redhat.com(Red Hat LinuxRed Hat, Inc.GPLRed Hat, Inc. Development/Toolshttp://www.gnu.org/software/libtool/linuxia64/sbin/install-info /usr/share/info/libtool.info.gz /usr/share/info/dirif [ "$1" = 0 ]; then /sbin/install-info --delete /usr/share/info/libtool.info.gz /usr/share/info/dir fiP&-#25 FH-$M {;M?I.>6A>:>6A>0H>5>.>.?{?{?{?{?{?{?{~?{~?{~?{?{~?{~?{~?{~?{~?{~?{~?{?{?{~?{?{?{?{~?{?{?{?{802ea6927b19e3273733b178dfedfe9c7874c275a1fa5959de7322a18347b65eee99980905e04ebd71dda86810af81a56a335b30d1845179b8f0f8f64f450a9d0e2ce183c91aeedf0da2d3a25ff5a8fd23610e363ad7c6e314d651e10b02a402e40e06af5583b291d8344f4a7d8aad9c6db008801760a9d596ac35af508adb5194d55d512a9ba36caa9b7df079bae19f784effdf0efcbeda1997a09386ddaa419f3e20fdff9c78aa8e3f9b42be166769a5f092c961c4d1338c3ca12e79e3ec615c344f6126033f576160589f9b45766065fe966102f3ef601d98fa300bb0c9b55400e3f482b2c2f100336713f0965163f5a64645a1622a87e186b348912ccfa3d12155ad13eb0fdf33ac36081ed328e59cb6137af565aaba6c934525aa1f1dff29f817a4a140c698f5406481e418becfe81cd4696629f5b6c019f89b5d0fce9715fac472c394b25cf9705650059a2a037fc030a85a8f3d4864a65db5fb70c794d5b7ac5e2592566b86f8b0a609f43486d8045f3b8f929c1cb29a1e3fd737b499dd1ced3710d2ad8bd898b1d0616754154fc54897f2309761f46e1e385e80aff136da24f9facf00b349ea10dba3789d92c04045080ccbe67bffe18d43a377d1b53db78954b08bf63c60784973fede287a8406c7ebfab15e82817bc9026669efde7fc030a85a8f3d4864a65db5fb70c794d5b7ac5e2592566b86f8b0a609f43486156749cde5067eb01f2fdd1b72bde029fadf35e8851cd89221a4fe537c8310449538a290f5033a4ed4bb8f7fc1dea5f2745c01a1c887f0e7b357749c190db8c2ee99980905e04ebd71dda86810af81a546ddf0968624d6939e15594d5ff6c37c2a8eef1110e32e279e0bbbc228155171792922784eade1d03ecb1b33ba8bb7c3fe436f00ea0c242e92974505008e7326libltdl.so.3.1.0rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootlibtool-1.5-6.src.rpmlibtool@ @@@@L@@JJJ/bin/sh/bin/sh/bin/sh/sbin/install-infoautoconfautomakelibtool-libsm4mktempperlrpmlib(CompressedFileNames)rpmlib(PayloadFilesHavePrefix)rpmlib(VersionedDependencies)1.4p11.5-63.0.4-14.0-13.0.3-14.2.1?|?`?y`? >>>k>>E}>/`>#6>M=`=`=`=b==`=_=aj`=Y`=Jens Petersen - 1.5-5Owen Taylor Jens Petersen - 1.5-4Jens Petersen - 1.5-3Elliot Lee Jens Petersen - 1.5-1Florian La Roche - 1.4.3-5Tim Powers Jens Petersen 1.4.3-3Karsten Hopp 1.4.3-2.2Jens Petersen Jens Petersen Jens Petersen 1.4.3-2Jens Petersen 1.4.3-1Phil Knirsch 1.4.2-12.2Nalin Dahyabhai 1.4.2-12.1Nalin Dahyabhai Jens Petersen 1.4.2-12Jens Petersen 1.4.2-11Tim Powers 1.4.2-10Tim Powers 1.4.2-9Jens Petersen 1.4.2-8Jens Petersen 1.4.2-7Jens Petersen 1.4.2-6Jens Petersen 1.4.2-5Tim Powers 1.4.2-4Jens Petersen 1.4.2-3Jens Petersen 1.4.2-2Bernhard Rosenkraenzer 1.4.2-1Bernhard Rosenkraenzer 1.4-8Karsten Hopp Florian La Roche Florian La Roche Florian La Roche Florian La Roche Owen Taylor Florian La Roche Elliot Lee Prospector Nalin Dahyabhai Matt Wilson Bill Nottingham Jeff Johnson Nalin Dahyabhai Jeff Johnson Jeff Johnson Jeff Johnson Jeff Johnson Jeff Johnson Jeff Johnson Jeff Johnson Jeff Johnson Cristian Gafton Cristian Gafton Jeff Johnson Cristian Gafton Donnie Barnes Marc Ewing Elliot Lee - rebuild- bring back libtool-1.4.2-demo.patch to disable nopic tests on amd64 and s390x again- Fix misapplied chunk for expsym-linux patch- remove the quotes around LD in AC_PROG_LD_GNU (#97608) [reported by twaugh] - use -nostdlib also when linking with g++ and non-GNU ld in _LT_AC_LANG_CXX_CONFIG [reported by fnasser, patch by aoliva] - use %configure with CC and CXX set- don't use %configure since target options caused libtool to assume i386-redhat-linux-gcc instead of gcc for CC (reported by Joe Orton) - add libtool-1.5-relink-libdir-order-91110.patch to fix order of lib dirs searched when relinking (#91110) [patch from Joe Orton]- rebuilt- update to 1.5 - no longer override config.{guess,sub} for rpmbuild %configure, redhat-rpm-config owns those now - update and rename libtool-1.4.2-s390_x86_64.patch to libtool-1.5-libtool.m4-x86_64.patch since s390 now included - buildrequire autoconf and automake, no longer automake14 - skip make check on s390 temporarily - no longer skip demo-nopic.test on x86_64, s390 and s390x - from Owen Taylor - add libtool-1.4.2-expsym-linux.patch (#55607) [from James Henstridge] - add quoting in mktemp patch - add libtool-1.5-readonlysym.patch - add libtool-1.5-testfailure.patch workaround - relink patch no longer needed- add config.guess and config.sub, otherwise old versions of these files can creep into /usr/share/libtool/- rebuilt- fix mktemp to work when running mktemp fails (#76602) [reported by (Oron Peled)] - remove info dir file, don't exclude it - fix typo in -libs description (#79619) - use buildroot instead of RPM_BUILD_ROOT- use lib64 on s390x, too.- add comment to explain why we use an old Automake for building - buildrequire automake14- add --without check build option to allow disabling of "make check" - exclude info dir file rather than removing- define SED in ltmain.sh for historic ltconfig files - define macro AUTOTOOLS to hold automake-1.4 and aclocal-1.4, and use it - leave old missing file for now - general spec file cleanup - don't copy install files to demo nor mess with installed ltdl files - don't need to run make in doc - force removal of info dir file - don't need to create install prefix dir - don't bother gzipping info files ourselves- update to 1.4.3 - remove obsolete patches (test-quote, dup-deps, libtoolize-configure.ac) - apply the multilib patch to just the original config files - update x86_64/s390 patch and just apply to original config files - use automake-1.4 in "make check" for demo-make.test to pass! - remove info dir file that is not installed - make autoreconf update missing- Added s390x and x64_64 support.- rebuild- patch to find the proper libdir on multilib boxes- don't include demo in doc, specially now that we "make check" (#71609)- don't hardcode "configure.in" in libtoolize (#70864) [reported by bastiaan@webcriminals.com] - make check, but not on ia64- automated rebuild- automated rebuild- add old patch from aoliva to fix relinking when installing into a buildroot - backport dup-deps fix from cvs stable branch- run ldconfig in postin and postun- rebuild in new environment- revert filemagic and archive-shared patches following cvs (#54887) - don't change "&& test" to "-a" in ltmain.in- automated rebuild- test quoting patch should be on ltmain.in not ltmain.sh (#53276) - use file_magic for Linux ELF (#54887) - allow link against an archive when building a shared library (#54887) - include ltdl.m4 in manifest (#56671)- added URL to spec- 1.4.2 - sync up with autoconf...- extend s390 patch to 2 more files - s/Copyright/License/- add s390 patch for deplibs_check_method=pass_all- add patches from Tim Waugh #42724- add patches from cvs mainline- fix a "test" bug in ltmain.sh- disable the post commands to modify /usr/share/doc/- Require automake 1.4p1- update to libtool 1.4 - adjust or remove patches- Fix recognition of ^0[0-9]+$ as a non-negative integer.- automatic rebuild- patch to use mktemp to create the tempdir - use %configure after defining __libtoolize to /bin/true- subpackage libltdl into libtool-libs- running libtoolize on the libtool source tree ain't right :)- FHS packaging.- update to 1.3.5.- add prereqs for m4 and perl inorder to run autoconf/automake.- functional /usr/doc/libtool-*/demo by end-user %post procedure (#9719).- update to 1.3.4.- change from noarch to per-arch in order to package libltdl.a (#7493).- update to 1.3.3.- update to 1.3.2.- explicitly disable per-arch libraries (#2210) - undo hard links and remove zero length file (#2689)- update to 1.3.- disable the --cache-file passing to ltconfig; this breaks the older ltconfig scripts found around.- auto rebuild in the new build environment (release 2)- update to 1.2f- completed arm patch - added patch to make it more arm-friendly - upgrade to version 1.2d- fixed busted group- Update to 1.0h - added install-info support- Update to 1.0f - BuildRoot it - Make it a noarch package/bin/sh/bin/shlocalhost 1065087192mBCmBD$7;:9'(\\\\\\\\\_@_@_@_@_@_@q&q<q=\C\C \C\C \C \C\C\C\C\C\C \C\C\C\C \C\C\C061.5-6 libtoollibtoolizeltdl.hlibltdl.alibltdl.lalibltdl.solibtool.m4ltdl.m4libtool-1.5AUTHORSCOPYINGChangeLogINSTALLNEWSREADMETHANKSTODOlibtool.info-1.gzlibtool.info-2.gzlibtool.info-3.gzlibtool.info-4.gzlibtool.info-5.gzlibtool.info.gzlibtoolconfig.guessconfig.sublibltdlCOPYING.LIBMakefile.amMakefile.inREADMEacinclude.m4aclocal.m4config-h.inconfig.guessconfig.subconfigureconfigure.acinstall-shltdl.cltdl.hltmain.shmissingmkinstalldirsltmain.sh/usr/bin//usr/include//usr/lib//usr/share/aclocal//usr/share/doc//usr/share/doc/libtool-1.5//usr/share/info//usr/share//usr/share/libtool//usr/share/libtool/libltdl/-O2 -g -pipecpiogzip9ia64ia64-redhat-linux-gnuASCII C program textASCII English textASCII English text, with very long linesASCII textBourne shell script text executablecurrent ar archivedirectory RRRRRRRRRR? i{F(~%1-K-RӫJFeGs屝 6IҒb{v:u:?ݽw4ý?|u^:[W>;)w'y{y]Y6gg<_D\^}ugE6E:Mds7ݳE6eӋ\fy1ʴx Ӳm< s(,$gdxyOѳ8Lz7%6~.ަE =Bۉڸ.|ն`7 NpeSj2l.A¢LJB+?/'~8|˿߇|1ҷ)Mf 9t~Cʏ}5=9=yw/OGѳ/O?=|=/{Q"Mue WvpΓl\Yƣ2y¶-h zϠd)%e4DWE6C&};Lay8p_,-:,0{ooo]8U߿8 0r3jz=LiϵyhJ OK $ ),p], PTl65' a:J`k8^Rsddڱ$QXw!fG^1!‘?Qx 6&d^񃃘o: L..mx ag`i8^w䨕[{-ڶ.oWKwϺ߿ޔJ"W)k">컎m [a<Ɏ.[8n8@ ^ѣollD?:y|铇' v@`(g<ʦoioe܃[a>٧UBXfӷ" wǧA4.SBb-yDtj&!Yz?:˃\pYR?4Max0c_9 ^pDDzGަޔy Ly'B8eݒ'%?hm6mTY??,;^b{Ǐ?&tu$`e@ LD`:Eh8Ցw:=t,F*QXa|tr48zMk[7UѰH[RhȢ3˜$d1XTb ߴ#>}wăfp%Tϓi/1CT2;ߴ`8< 8&x( .>u}fB¦rc愫(ҏТQS91r3Bjʷ^ LRyRj,lϛ2%2Z5 \t ':!c% a]~kۙ/ 9$s` zi>VyWշǜ8SBrK@K H"yw5ro^m@ >/b 2!uRwòfD5-SJ4u<_;XbBx7ז|:`>dLF$)V!'P!>KĂbS@~<5Id/ + FTL 9Ϧc!{@퐁@oҤ 8y)6xvQe!ѣ<-h@Brgo1(!De!"f~G E ~~HaFACa\ aixDӏ(!#~4p2nP_Kџ_gͬJ6uE@kam"LYdڹ'@J^okl[p{KO%!& #7x;@vƒ6}lw8?K}m8s= q3_F#Qy`.ۿ?[w[_ټ30``T5kGg]J$+*/~t<&T ? >yڋ !MZ|Y@  @~~rmy M0?W6D .ҳEn"%)PQސ[!Yz:["BRf+r j=5 RSfSQr>cZ1_*KK#3iIU _LTW1 Yvny-K!y) W!ˌ玤OZ)Oj&AB8z^) 4j! -+9fmP OAxSf{_3:Hƪ+Jdv6zpW#7@=2`-AAF, nyM /GSw.Z#w&}Q %QKW^WS3PFtBLq~++ XH6>cYY 1al^gJub4$.>_|g?`+%xb15("r}3kaF(2"E^I_Y80ߋT,qoD"![[읷 {m 숨{můZpXAѣO^EGO?;9=~_]KG2erT~Et~E!OO7Sla(_{z|nC|-+<]?-;Wtjv-uGNY D 8yv=DC7kP!Xg%Zd+<ȓǞU*H_?@FMԇ{ڳN,&peWZ`<EԫJPe 9vH<иZf_3󗇌vكx鷇8~9xy "Cl6Ƀcp)# "9?ǫdz2c2?*RQ=ҿ_a]ov5fרvGW)qBR")Ғ{{dGO_;6Y9Dm wåp\PEU?R]L&-tF$N8Μ INzS u^afzwݝ.+x xDh_HX94{n0/P`.L04hU`wu>[&X(";5"]ߎ>lw+xj2#zИH3ɗ?wr5T2h%Q6pgϟ>z~ãs@?q^'_<9|(2}h=)Ʋwݽ?{.E%LON_DEV&SaNц '褟 )9BbML*1V^L'd0AM,# 4Q T v{pb(2D/na??U " èDUt˗:8aL7"hyG|_f~pdLb]Vq>&iv=xu%0@&;P5]S{:ZX$ w~!5fn9VνMtX׿g[yɀe Ң oZDW6 +m#" %lqqc{O=+/=PrƛTƇ!Ҷdw~gyǖvv~ok,3ma ڈEt#EWL.'_f #4qN,Eu:>hJlBH6w6&Œ/N&M7gc[JGΠ^M"BJW{ي;<+=Ol>bp^k=:{C,`Wu}2B/[Y&갮'cc*ZG.Cf&P],4Xp+t':ShSEh6KWӝ6d_n}9-o:<2<~KzDwxDX_ޟpat}NCWn0]srY@1T86K @`Ux!R1Q ?~я~̛_qDGy`qgyb h CnjM|M=K/H E$KXHd>ASm!b K\ K?B^69aYe_w_?vI _~΂Drr Y|/On< Ŕ4H[,n V!yrH2TLު&%R9ru[]*صJGw/&g'ؖ*5 #~M 6%[# Mݧs^v0I/Q[T%M. ֱL 2;l-:ϽDGk։udCv ͰK. ~0I>" ]9Me]UsSa;unYi^hMV R}g³u k3]~sM/U2 SsZz^RX+r 9X YQosyáXyz0è-/è=6ۢ=9)6_{1%OƖ9&nÌm a-ЀyVnEka[Ƣc)E]n[K2[2&YFA?#;DW.X)F؉jˣmr[ω՚,E:CC׬_#}4 [Zۏt#ڌؒ"MLYPeގ~H tBC 抎,m8##6U{@wtl@E|?}pLZY[e΅aȘ!p yʏ\PGh|71Ip C'-􂡺Pr>C,7:QήO~͋EYzST[| *>i`K4JlƭKfcvNm*l̉pR^oGFSmIGq0ǤRPV{#aO1.H1/t~ [93pe uWYs:{Eb'1mϘpC'lnߜ:S)끯f04 X H+5n mzQ>Ly;|t}'bM+3~B@ zwf6E\HyKN{+5w F-1lO3TF`tgf dlIiޟgҾ/ļ/'y?4m,sX^6/ڼzWO}^?fwu+S~C%M[6;hp h D{[}\@\MUUVQ4UN9qWI7CtFoT<&!-A28ss?M ԗRWE_TBOzePBCZ<. x=oMա9):CLjڔ,%ЎiJcNGGQ:}зu1* +#=z1"OxZ^o"C̬Dc̦*(6*ƞZbLQjiFqϹo0Cm0 e97pzF[ذfڟm v߯|9\K[SI:ѳz&E5W84_Ue+ `Zap0浃xRQcaFe 66fث mZ<}pZZJ:pFWu Åh7E†*ް~͈ܬlÀLXi!B^uBf>?15CHTCpxcL/ڮ{9D;2WԦοm' l^ZO1P (YF,Mj/oY;%C&"9x䖋0K{ 2+6CAxA?)EkhvrAeT-yjiK˓pIkwɘax Bj~)Z%5جnѝd TUu'1}i[SD5n)n9(c>i.weX065⭱%g8zcmD#}hK%  61]#y?qRM?L\兆DeDEb߉w |*[LbAbGv TN2alAy98[\xj;&rX/zƴSNdes3Q0/˛[.z(Uz j̆fI5)3D3Jm7_L}=,D*2^"X5Ok l}7vAKoC`KYws،qj (h#:a͛Clf6. @ l Ͷ42AcW#;q3s(4|u}PBwenN/»3*P C-|9^q8@_brƪX.ni`lO% ̷f* (71Z:бSI؎Q_ U:Wr UlD7oG{?CVWP|JX%˩^s[ySy+ݞr?8?!pt@q:5i/zEE suSㆣQ+~^/qpal_]{O7!`#%g,HI4x\D!0ޑMJ AȰd'9MR҆ѝjݠ=RrrMtsEV̦C%؈T&X=i.g7H&W.gTjXta{\ SdNǿèiJnNwi3~Wq9 }$5OilM,vA7jkȏZ QKX tMU\ߚ6qzZg9K-ߋU⑨n ge>8iW'@?J6}~J5)pi]΁L>R(T>qk=VcJlKZV.kF|;Jk6~_/k~th n6s#z%U:[i-]*߱@ rt7#Zr+T`g_Q|R8q߉,[ ymGiŏ`Vrn^{jj X%e)t\~[$byNa_{6o5-odM-vsM(.VH-4c4rKxaB!ekk+ -RU4vj}MWKADO/*k>j&05G s| jo 8`֤DWf[EEYe]tY}EMHN~+.fBށ'/^oamL-$$<X$FVzCS)2#??4rp1#4E러Ȯkފtn{øj pwbD/K869:tsk񬤾?D~C(qzJ 3B+ X]x,o`-Ā cojbs1X|`ྉ: [Ⱥ2e_}t?vXZ%j k!od0:aa ,܉y ֬ ̒ݗvNpNi醗[Kk7 ~ /x6  qkΛ "eCp8mwAqɬG7:QR&~w'3R @\:a$3r/P񼀓f"V)!U1|zٕi ]A!بHUK cV#"\_uV,aI㧓\Cd 3 %pާy<Z,+14|ZSNy)QEETŇ bZ|S PxmROw#`%k7YOp!T@VùU9v0LCv|ЄARB;9 UO/5ЄGWH?.24&rxxװPzuўV˵nV\.Y~lT,ƛ T9Uh&@F@- Ԅc$bcD FKrQ]Ip$_U&1Qf_ [Ͽkn6̽27.\\$GGAqi^䨆"Ol4쿳۽+=};_VRsǙ&FCj )Ej kLMIM&jF5}]Xnh,Ot -7P\B^B5n8ֶ18}=0ƌw-cEcvK.\`qzMf-+דlmo'0qbmg08mtks*^(]ױͻ8W<b06JLGU-%#X+8OX[,{N?cM ug5FAP[kP {;U,țI-AjU݊5ٸMFrMu7YqrmgL]1 (/$5QTZ⦵Nn{u"͌pG5]⦔8?I.OTC昿}ވaiLrB ~ "'T~P<["Ay~4Pm+Av""j2)p1f&xdc?m Nw2丑9ƹˀ4bZ&{ fqeDX́]D dIhx}7~]/ehW;~G}3f^: 3YmMߔ`.lxUG3yjkI2!aƍ4d͡ ڀiAac%jtK+90_WK LVcAa&[*V]Ҥ`t$k[Vkh+X=}@UL62b%N Ǒ[~R>Ie0*DCAsA\a|yl-Sv b(0|!*o^g]^.Aͣ@g'߾ȉ{s7!PeaU,*w KV*҆DZ#衖mٲW[eV_YtO>f jQSw=iA֮)´M6XY6Yybzƈʌ4:TxTN(E*v_)v(:NwX):p60Ucp}Wp qcuL;%<]ySqCOe ,\f?ˑ ͝6 tmʉ=)47I+#4d7\a:9ҹ:k8G' sVPBqE}BH`@9֒wB9!FU@[ ?cNh{vFKQI|}XF5]Ql81ppӪJ +-KeDT { uG] ַNQXo^/%[%A')b Ow \ĩ3-56qFފw8U~@WKXz/dS֡*u{m#[}۶p5Y%,XP+QN$j%<plVTC6-scLS. 2c'ؖ`}Dm~D%}FR#hmnFuu*.?Xh xKikkXE6_j5xb;[;X'{yҡ  4:C]P -Tw2Yh|/_\b Eꪸw7NإSv]}q!H[yr ;gwYc$kХu,8wwj.ݲ@"ĈG=w•3] 1Wuyi9o]wu{kݪE: D%0G\q,>F Z9jL"ӒAnfIZ5]qS,O1z*?9||r$!%j$UD7q9u0-H2倾+"O="7RR] *pZoDRz{$F]a d}Uag XՊƕ55J':: \j.A^+i٘X|] ͊VGrhPg{?&y[3nY2AXOJPO밞0ld]꺂jŒP%|fί۷U؈ϙ MU] 2/=H.b4{mw;ngtLnFXDtBhjZk , A[CA$\w2wNhjfO}b;<9B#i7(="*+kU"Ёתoz.wMk3+\T#+'00R1$IET末NںJ*Y_̦ejIYū:nF,SiW;K7'e̙b 9"@fҲ@|hׄPTO d^KBs q2(.x ZS% \\(n'MdNCfulQmns|/ 6>"QŀZ.[U/eޭ5)*g]}j:.Ȣ>T~'dIF0 (WtZhlDز^+`ԨA#5U4 4p2*c$-FdZKS%%*uIpV- ׄFBߣfM{f0 Z ,@(Tj孑Tb6HUױ_jlM9{;j>6_͗tDĨxK 58L>/iD0@T!Gj̒ eh #ͬ\Ejdwa֪=WGk -7|K3-v3CT~f2s띖,6.&ٲDx򼱈7mArL3(R-1pZ5hRNXˡ`P5>:UF k[;,aK&M$ 4L}9:5moD^%GYZ!>f1* BCzVoj+ӗl518. 'Z O~s#ƕܑKT ]h}VsϺ޳iH0MfTycLJXuNF-98j7ΞN4`{+KchD5i[ˑ5Nlpw;Rr 帀 D6%vA*q)SSPg@~%(ͤH ,Ղ t7g)>˝NL{nWZԡ0iotĕWUX jfKX:D6%R(EVح)WiPS 〟5-z]u{e F˸U#|T$khey3,]+ל"pw|kVJ>lF9 ,s˽Sҏ$SS e]##\%wۍ!ٸ'bel*`h iu)c ~onj}Ďj$ÂAZ050r;ir* Xa,bđ'|ۏ,֡ґVqp<paHv8+7TL7<0TDr1I։#ªD))3͌,ލc1PHi,$tsS'V{M r5iZBkA]^ [wpD#ιJ|llVg;90E _S·1Yl̇W0$c+Rȁa"JW qBIEW|%.c >%l`sk] W!NRzk= h6AlDcPkyXae)% fqA߄'S'@n8kP%{Qsbva9션6+=n4XY=El͗8Aq\Fdzni$y,Є0&r)̃5"'^CBz!qw5,^DpK /#r8X[qcO+?æwі]g 8Xi~9 hkiU> ֒Xl^Ki.a7F./9 +ؕ 4/d"\$:@90فi>7r' M]XMˇSR ,_gž[R8f@sS|M=AuN.pM;(pn9)V%m*y  q 0yG~ 6-_!53Bj'afq{@/ͨH$(2NTf({֠rqL<}`ecMŔM9! 7pdx̓q]KМR0pcr HTbnR8^$I4i/Hº$^ JqK 8bPwk3 PGSQт| %bZ)*X9q:O埬 1ۻ[+aW2jlis=} &͓a3Bc3 S0zpV'a,1TsI\L99F,P)S6.oSDX:AlFꡥ0jhw 8ۜRpV\74D4ІT]1U$cucX|tqRDvք1G0}vrF<=*ϼۮ@fd'f^%%hf֠K$Y Js}ԤQ߮N>~g"gf$FWd Ej+T2ëVB߶/sN؉]phUG9dZU{o n5\ W_<Իg6iá]#w/*ONxf]Ȋ(b^tۭiݝ<4%7jǗR'{b7 XưxU=. FmeSf?&5F &,E-G&=1- W7W='s7Dho~ "y4\a{\.񋦉3HQ3ϛ^*9$jm">DTM3oLF.7}5/7539/jsz[hS Ww^g)P^{I]qI܉I˭/<Z-.YnRz?ݻLxƚe/`1K%V`ڮ)!Up0t~V$_ʘ5;Fhqڋ9+ƣH@\^&:lT':Eb/F)w!עT|As M gqԦBqDe|F"τn)4eiC>5$[Q&- a#ſqZTIVLc3^t8w 2qZK`@^B愶0>ϑAW(i((H/N "d)wѝ \Lfϝ8bH3x S@;LDJG6'|6KGhNQ-WJ/ ػ fsTqBn >1z+Szn|)H)J[$qMw WL$: j:O/PaD>0t<9ZgQuTj &O[pMd*2&ʮ (\,!H b L?:SaZE ]@L5ӣ7&[ P/?M3C)tGT; PK2aG_;CR_LL`wwh(Жn[|(۪W~:`56Q2'F4#lv¤O1:ЄF՛q sL`͢"?GFƭ*z `a-ˏ p48iYO88{<oäI:e dӺM(=$s>tlF*tyA0.ma1H_=a9 \T#W˙3]X׿d8Lg9ĵ zqz`'hEu>b5 쮜D.Fو<[u -ƥ-12╚f)zPy27#HwQ"3Q5 ( }7cQr:YV4kLoPĐ@}-fbVH6)^ØB>k-'bEz7.NRjB}=X"Ti:T 2!N5ᖤS*PO >Xg5A"LuYůG.~ 6iD ik(O4p q(:S/ @^a7NH uq(CI6Wh/Q|'i=qW ʙc*44F߽4vRd;w.ҘxXd i<-zghU?.!*peSuEL]9+4 hALO>ud3$FU?T$x`=`5nd'/Y}6 ?1D{qނ`ZI$//kMaD|zD^͕叽O=).]Q٘ߎ9p#z@3@]]1j6O1m3v;H-0~ Y|(EB Ӵ#ԐQdhWi)fG,KDN>;8g+ IÛX3 j6y8ͩXB՝ԗh$c$TWMI8u~7 c gqG{.le?a$]RТU- Vp(huǯ$VmưAKD `Q¸~=TӾ:~]Z^ W!ng0*9uMl[e 2ip,{5@?YklbNۇt ϑhj:vQ L:ZTu\K2cnvq$\Ǿh)ֳ܈Na$8a?HB !oA[5$ [m g5f;\cˡ 8<Y"܍` iNg"B "{T[5mل'i$WeG.*'I4Y%VZ䌉?!mR&li5DnjEa/q ,:KR.uQA=Nc#! hz,]mYҢO=-ټWo׸DtV^sWP7ܩ;_X*ŵR&Fw(/j)& P͔"uy i:N5PhEo* VT܂[d,?1L~\9 ]q:^~w0e뜭GrZÁq`!%n@b:Q8 L`dOhדzGJ 蘿gMi2 ޕ+vrRJ;fVlg#?}=ҡQK|RP\m]5TCMHҀQwdDª\WjRUv\+9{sJ)&2vsFQQuBu/gWnkt^WV嗛Mxz;W狀'k{_{nkBLe"o8?Y!1Jt"uSgʢ&8 qCz =OJ D92ض|-pϕlê3z`kxH٪!TKVµBE%2:ᔗh~YtP E,_`92sBie!3^u{L۴*yj["aԅ{/1"bŔGKfUxGT#k,nSN.C9X;1q\j13 c+'m#t#EA# q.h&{`iЕu;ٮzOZ#F} B{6IMusKFĩMzEƻ7j5]}}1 qoYf R/DerQpײFp?Vؿ'{gN nU¸$|YӫK[ޡKF@Mfadpi2!QThP*''$›( }BJA{K $WfAf"Qjp/FvFJ鈒xG^lj Xl1):iưeЭG`a$ Dx?WDTO ͥB@?C[>5 \삌x%4C;4";j!t8иD6Ƌb [XAkmRgBλ7xJtaDӾ7ww:w!¡$i'֧^p#sO)4lQN~!PG\g(?bd.!l 0~yc=9Sߘ>?O.,k36ڽ4aݬVk!ΑU{իִYxu[Gޥ7,M eVc`9@u(`0AJʪTb(XŗI*Si2AE)!TY YzًYyWNOf T ƌgS{aixHGOSU)Ž<|{ ϟJd/u4`CG&=)}x`XG9÷!Etya$]d: 8rိ}K4~8mga}UtU0RVk;0\iY1h^'$5%1UCbl/(̄A1b޵fFL@Qv|*f]X4GFbG" $I} uev++xKiOSҠ$8J%µФka9~ ~ήCFRJ3x_$w*1J웗][4&oM͢͠Ç ѫFF7ּF[xGY w;g3iCnz[;wc1A dX.%qܹ[`x6!! `Yɇi0`xuؗ0@Oz]v샴Q, ?ZLK5z0zH``HሌXu:{6IoV#/2m0^Xtp=oy .bɫ^렖! ?q?X?/sVHGL DmZL!vOԲԱ^ݰuWDe9ʻr oE$RLMj2~ꛦij6CʩDٲ͵8‚Eh )#ΟŷMTxNy/{+@?.ٕg),6Mgm[ +WRO˄/tn&|bk2gbߒmݒiےmْiY6MKܴ/cXefɒb2pk2lەL˕lLWW,VFY+I7g2ʘ*j:* H o`edYHsa_Y]a3V[جŊWyMkm-U~v*I+86f*5ob{N͕fݕĘ'7 bʙ.3me^ġWӄ~yLU%2 %fm0VD 'p ʏ0&;XL&3HǜrE3%`;\2\qz){[YJMz6rbh6BڰnBʨ;<B9]5:+-eh#wÛb2ңs~WDIJGFtv;e{|ƾMg*z&m3z6b xwcC@^܅rQa'/:HTl&7sRJy ^vw>z\x뭨np:& cv*%"*(ʝVj){p3ס#ry.QtQޫ5zԶVW= XiG. |a#@I`a@m)}d*~LF#ҡ"jnۺmlP7{{uZƀ3{k?]f>?ݙ988\tZnQЮtivM;b9rǨ>5ڭLGPSpFʊH 0$jř%va іUiU'e5Y79q#%̨ux"suD(:ZZ[(IӂK${+/}1 *wA-3BgKڊRwȮ #ú[4C(ITd(f 2$R̛Cl֠QG#X{&#J!h+-/VK|*X4dq&X/ΫYvQ-^, x(K1Nmlwѷzax`]@y[OWw ŋ%Ng? hL~)jm*Rmv[J007k# R2tp׀hpv5W$2zvbE8 QYLp,XH@ t$;*lWurr?.2k>;zzWW?&G3:^-_&2&;WvgૢcٝThsy=Z/=*)Rꉗ֓wmE{t:xS>nr.):R:ea8 ~}[kkTt(t#:IF{_aNցn6Lqsh\K*Ś@EƓX CnilpO$F8|ƍIGVIZ EoK(iJ!!NdI&Z6ahhurji'<9ĽYkL؈#+fHj0x~88:L,v@E rƚʶvKy*[S(1ш ؽ{w{WxҊ☳Mk|# vXLnL04u7Mj( d.[Gsuѡ~֯0IIÌ]:fײ%hXa#+L $n >gKJ3T֡2FCҗh W^T5;} h2#EmAm(lyHR5IO@RxrJ^%6j\E zSlcoD *1cqMn76OK3NngT \ծ4l;|ZVl]Y =P`4 <=_+65 X5k[Nv`xP' "tc3"A;7!fzž-A@rF;zH߄LIÖ|콠sOD:/~%#8f .(MuE]Q)}tպ~}c_JNY}:\ޙ$P,1Qf]#עIBv͕QH-}@X)P?Q\9ÌY9b)E9?"wKą"#%EbA1(Z'2lxϩf汕8Td"T;#TsС 0}&}9[g,R%<ӒP]Vc.`w.DZW;davoNu{^ZlV-T+*8 ~IfǍB|b}szzoL^Pp9m\RḎ>X=@ Onk4'p>\;nT@2|~p>>rPTνzm}?*Y{eůVd+ Xah&<8*SJ(ۀl4WIQwo(4s M^,څY$Sp7񜦀s|h7/-^HHb1BbɚZnWT#Y9d.:Ƕl$ǖivJjye*m@jy+i~Y}QT;(P2hu(PI}^J'2$7s) ͈t Jŀ'c+ZИ7bېv15 W <nڂgg9?V}ն؂]=b0`>NvP`7gӜ'< 51zAz%6tzԉ@07cޖ3 vء6%++DP΃!"a}0RMjJGSTڊjG52|7qeE Ehfl>O-QlAc)?,O]p@P.۵茷C+AT Y6쟜w8aZy x}qˢ>SqW˃敓9'*Nyo7y-q VtI.2O=̞$*V˕N֙$>16> ZAS3ʢXzݸyXuwF{kpļ=BpIdACAV%GZ#(_{y2⊙(ӊWZS'%t}Yw`R-:{T9:l ci] ByZX81:KYpBO2@vG0DG*"-ؑV НQh21ٱ:Jz:-m`ޯTҔϢ~6+Uvrx%qjY8A(^͕n5gMm.{+kW]@c1ikw둱iâ W}OΒcm[#H]iK7 iD|e_B],e̤uk ˍ~f}}rȫ]_V.nsȂnKfsL)x;28mUtdPe kfM)1x1)I1ސ]'1<$xurGY:~ב&a9ب3 SM^i2qCd?IGˊ!  .+-9r/j |q<3ȞB#yHx"NSة뼆^d.gfDhX<)O 1 _BﶃI*ex{)wN~/=Q\e+ rgRNA?Yj4R{ \XZgFt0&gBL)5 㴍R5O#+KQYSfAG:ͅQ jqSf{{X,,N'MxF琠#œڳ*3 ĖKs2 T8&"]?CnۀЈ:a .IPn; ]bj~v2>UC邚(I2I1P)fOX4V"cF(XkP+~`*J> NkWJ𶦛:iT1^ɾivBX؛PIgmvE,?^'bVŌNbWMCL `IxrDRHE?+c"DebA1&˜1+cFŬ_%f"bzF7qM[/X_-Y\]5~ h~ͮh#gREə;4ˢMhRLoN(EUr|~Q9i%_/g.Gt\*r2:IY qVèD1#z3Oe2z!`R/WO)Z2xq^6&-M#vJZR\ΑedAQOjϰ*XXtْ%mM6Zbn6Py~`"ru VdWEe>1k͕_"-jt>AjT׈񎧂ZO])_^|D,'f!җ" xC=P}q@SPX~ƌ%D?com3{>x:{0;T6`-'_QXIJKڌDoT(3ǥV>3+=*\*.i14o1Ֆ{t y b=M"Iα+.kS_1m" sH7;ùc.x(v 50~]W2j!|o"@z#bd a }VDkqn ŃVɍb>W_;To&]k;c?&e~]=e DZr:ǝwQUpSghiw1 bqJY3Q `l! Od"*h&`Q0 Y?$.k2bߓrْBI~~:h 'oFry/ jt L S) Đ:KقxYحh%{sc()7Ndy-J&\R^ϔ-_%d=mh[w/zpaCbcOZHu2?0pHgUKJ@׉6O[vQjrJ%QEV_>/-a~Ut3 A.Cڵ< \AbM$hP.SݬIp#H(߽ZU;@~$toЁKPE6N6*8yb9Hf&dC`Ls򃜙о{.xe}#/8OT{wȠQ2-N #4E,2ZtvG׀@ F?1$'-2a$HAOU$0V,#_Q]EB#AֳvԢ ^ނq k#~I XdE66|vu+`2ijoRlzFj<!V2X@xn#~LTA|ͷ Gwy[0Gt1 ifkysusr2Ҝci7jT>KYiQJA oBRڏČKJZ_7z}쭸'gYO/KQH(IYJǭNMiA#&. ɁT@>cK+sX1n;1)[灄GBD?z)|wFVללHci0GVX OLxF14͜L߯ܯ2]򧕹lXy^yQ\^IPQs_Qr<_c;[*3)N9ƶګՓ$R󃵻;ʼ0ھ+ {:('>XoGg8V}'VbT%LtX1D~1d 7!\RDHƼ&x %߫q"6gF2: FTcadɫ:YTZ!wÐnhH#h_u>3/"tq6Ət]|䌯CO+tOAnx?F4p4.Km Gni NNz‚zhq_]FrF}G~dc+&im*xFK0Y)Z23Y@5H \}1H,i?l h {5Ă@[i V'Gd\H"n)Ž\ A -DX햽T/M:+h' *ΰrQ>]ONZC*N"Yʗ\_Dt9-3庆g+dK3*qqL|@a+ey/˪`_HGHFe|P٭(y|M9&>NtX:I\^#-<ٯ50ܱz^j\yɫ3<]l&꧎P?id Kl u<<~S|Xn!O-TdwGj6]A lf'0)Q&V;~jMKsasA(sd,| dGY8/RNZ`Ea$ ĈD) ٽCmtkS~^(a0@VFݓBp)$&S?C'rRr $E.M/;qC)Q] JY|,[F{jqYyl8N9ըk6kQ'BP4a^ ߔMmbE$>{,Ae NQ^9Y7%Z*mO+X"/;o@-&YH]ejB?rsp+}S-"+lNI~RDIrJCuS jv۔$K,&H ,}.“N:49X@oQ+5PJ&梵蓐X ' ^6S)]T7%ӝ.AΊ[;GabZ+[]i~D/ͫ[Ĝj2\NQ?`0c>cM=6Ӿv*˸6(46cT1RN&tݫQ8htKL,ftЃdi̝5SA6-k0oY]mUOoAάv8y <,}&T/rȖ{NE[t=*eqVtoD+ i;sf:L% ޖerPeTlnYnЂzacPOc?k&F)"ĨutvwGLoTu,[(Ό+X;AQЁdo-?}+쑢zCiXfGmoV.F* Agp1蟢S֊IeQI+BGHG̬6M*3lCc ƷmwJlM&Y7e*f(7б f¸_L;4G bAdKL$Năiků2QfOX&JG~%9QxbPeBSEIQ,'1pe׈N"eMNNI?O5vy{AJw~ Փr!F3eAHe>L >/)ӭʆ;{mǙ+W6C'PP2Je9P݇+(v:On&D ܶ!\|)rrpg&I?nLS/w8_/x"qV L2k>a1#{pW9-Y_ 7[aOK'A|lhřt*eї^G$5壑 GfZ6GC,K)&:gOkg&G{Şw1&Җ/r$-is>S0k驥jm1beO;'iBk1R9Yr#5*GJjDH.[IHN ܫuh}'h`Wq4PW 2T"MUn- P{{1Nzd(j$=&oiS$fq8mR4!.]5Gī,Y=]pnSc6AϬ ˾F7*'$&'nu8qW n4GN!n!x^fW4 {ߍb4\'8YʚRuI1'RLAZ4{("x9užʚD&J|M)ԕft=i#r`\`m\taTѪ D*=؃m * |WIMHRXS }6%hC P%%7%F9N\|ɻMZf+9g!JAorBX=:!8 #o0:n= ;M[|$y< !1הv"eX-Ii{+xj (9񚆽$Z!K+Mis3RSEXE ǫ[HMO9zT704fQr8Uq= Ejcs,"Z(݇ AڡguT] Px %Ԏj!ڍr-cW_X-@7(Rĝi8 gR h UDYVnW6Fc^JQ;rEp9 %<<akv/_ iH@Onog; s)9K rU$l(z9yQYQ܈E}*M ;S_/wE?]} X"(b5`*2zz`yP-EDGMŘpR  I 44Fd[HǸt,!X)Чh;DFw^!l~B9r-Bu".Dop1sUue:t<Q/%C"i])NxHwwN#3Zu1#".i&j^^OS 4e\|SsSxDz K #Qv)^'LKbzbBD Yu%f-^8)45Ͻߢ#V3rlX{N)nyͤM-su"U_΢{ )r_3xET%/)%ƒpi[M%MM:0"Ɣx?Ʃ7Τ[sGmUW(`=/ZlO6l/?ǃ.$Z_ݹ67-o]xJ SXStƣ88bHA9.' Z|2z+:m0yI퍱It#)$VؿrG ]o5`~r1k$Dx0ZCOcqYYY6Cyca) DJ׎M;8:fAqhFh{c0v8fl>c 0(e$X/>m `6iѡIh@`[0ӿMIگA$ ~`p=xY.7WRO8M#hl5eo8uQ|KK4܍S_=U^4aez6PHZ(L6 Nz2sS:{璷y|vAO&KU؊=zJ6cB[x D`P3[7B/t]Qppĉ)EF(ti«2 dgĻZFA1Syq/ Ƃ_MRdz`z ;)D׶)cEkO6x %Eק'쮷9>즒F#|lۺ<>d^IMGFhp$ȼ[ 3t܍`*MZ%q߼*[A%A|,GQgbG L/A1Dj%߹84LBG LK p`sN1O aİ%7&Ε@_蔷tܴ\zr6jBglO X\fmhO'&⧅ ,fl\iZ("GRr!> %CC0bGWlI+ bTAl̶o"K 1O>_ Veoo8}] Q-VxR -cseކb B -˜H͖vFAS!DRC10m n|&d Q 8~ ;yP.}\m| ^ JL~d948%![u@S*9JX?⇁ޗJhԒpHcnv<(u qY Ҭ9`ҀzlvRL87qTZ؈X-ȪJfJ! ԻPq5t^'8CmbIEJ.c3}Ac{zH{_Za_m(ŢD.L!ܯ6Q vT'=>I&v  jg$Ě?Bڛ0KiTW.{&ZH@c;Ifmbxѓ!4/dHu8#R$?piD?[ !Q珸Qq*J={@!k] 0"͙dT|wwɎsOIhPSdwB Ȩ y{unwncj3J< T3qPmk5׸V礁ieWjQԭw1u0?;<$I6<>R"(IPAAaƸ٤}vuk*&D|է!TVTwGa]jÀzxGOvB vaݻk`mavY)ܑs'mxOh 5 jW*v -%xsyE. {%Xx Y[;6w*ᥞ++}[QB?6! n݂ZDS8٪1F_]ZxH1EC;F(1.$I  $.]AiCŁmX@;VU44|nb]J:>Hy, ;!>4d+Adiu35pZX5FVeTP:w /P͵bAXYU1KdjI͑@WȨWDtPZQ:PvsԲ1G]z:a=O|d;HV13=A/a6v 7s&hXb'藺`ӤU>nA}Dyx {i'@о]Qۊ(-!틃/C198\r$T0w Db4K᭄6wQ%n&V A iA J,`Z.= 7Ilp11Y:YnQԌ =5h&xkssPa b5<@s.S@?#'H!&2 7}H3YAkg`ݼ0Q 4/ot=]uTmۡTģfrJ¦;eNz~3qiJZHL$,mSvԷ*1ߘ8 gkZ33U'eoբӞ6qvSS/'f_ Kh*ftDлgjƽN(n}"DM*EN/El^E]dT~v}XdN3eĹ! -d. ps_ k7`D挵F$[54 $%|䒲eZDK\ o k[jZ6̣a0Nj81- vڃ@ 76V=]V0]`=b$Ch ;tl`cbizadҧR6?s0Umo.b&.4i[FӸ\9&捾z{jz殜LݧadEDHix*c.lIUKȧ1{G I MA1"a+Yl=%VF&3/݉ _`|⮊:e@̢kѹ$m)Ӥ νV@V|lJoCkRѽĀ%9كCtq<1N\] atv(|l(Igvv3gRL)%sy߲m*Mm.ثR-z:`u!;DKt0IUܵY\̰-~@" SV@P`/jaDFCTp.4"9NmD ݪ#`^lOc͜yC .)e:/i;4왑6t8`&^Ec:uh_覣sE-M@Nk=8=wTMOCGV᾽X1 q@;?3K9R+yIW'7b6)"6b iZRNITuDFu@]9zz#L$b\ţʟR-W`,kv -;(Pj?ī_K}L.w*0O Ӂ\M! Tǿz@< lML"E;8~!w9x^ɗ>kS];0- ,/$)Q]NLP SQkీ6,ctX i# n3{x$=v}.hi::tY֋7֞N'vY*cߟ׳ W._t .m`- B0%fK]}D*ɳ~9!},&ڜI Zw MΠwLFfH2q,LfY|q\ bՄ:U+3ܤ /^vc9~)u}=A5MLvf\5Mɶu(P9' JF^oc,[/eD}@v1IU5B]\. NkWʜ{b䄧ʌ<_GG3L>Bc5v"I,wؗx0΢vpM42V i[=h=r917J?J/ 䃬σ:!_%g{,$ ,K¡ Iw|?Q_Nf erW]ӭ2Z/7W 9d>. :C&VJ#ojC  F$’ߎBn_l@JdFe5=|)$ytJxCCNn-Weָ/j>wRM+ gQg:Yjm%*#:rUS++8$FB93@^86Hvm뻃OضM1yGf.r֚.V~TF {=5NF^צOk&Rr`~R(d 0bU9D[^[nXoڼS;z5VG5Th9KHgzy .I(؅f3) t ;iGt k뙜h9`LEg^dl*gU*wZB f 6}D(C鲅q=#Gg#d2kxNr`c &B]'R}2|03 hy 2=&`;З'8'Xc}62<0-Ҏ.vI;̒F [[sss[[[[x/v/v/v/.....in6WR?W,X"}džJ@USʰ~a+'LLVۈoVHU*Ezlܲz就Gͫp+{%ڏ UM_RbcTIxDJg맔*{0}7X#D*,y8=뵎ZQ]NL_m CumnaNA̫N[ޅf[kpu8lcxu3(Z ac1u`Zs^NB&vI˔YsP6ty1g\JV"xwZpK9Vm78jjU;]1OMD,󙜲YS^VyZk.=smrBdHI:1 YNO&}5myxgZ\}s2eoAJY{G)kwͭѾVݭ}wwo`0 5d ؚ$x 99,aP:5CCUfuUo5IcG0jd%u0^p ,^UW._\|uv݃U*H.jI!gc^Cb|踫q:V,xfC Oe#dž2\ KVLB@͖'Y MI=)lӪc^;; ޶+:Ф|;YNT =uCSSzǟ謼MH̀?W܅+Whw͑5he1(Md8ht(̶wbaA,~}cVS:)U`iH͕JzZCg'xaR}!g6)wѷ40) mSsA"? ]̻`Kijsbai}ZDrei2:;5P'\Rܭu~Dr=S'G RC> |&b񇕇FA~1^6#1$dbKGC_%A5]-/mşz֙c8^j!\E5#$+o:|F ,XީŊ1*:xԙ#zT"JXή۪fY~6*C> |z3 9:$bu80xr9x^;EЫĻc~$hȣXz֡drphΫK+R"Yu=|ؠ'lɫfz'yyG A'G^ HmTNf˝B@'=WڶR$iqW"tĊe}Ё= pz7'~T/;u/YNmj~¶v#^fFf-ԺΨpTm8RTFl)ROb!MPɼqb@p!Y@g$kw-/\$V'֖GgdR,?`H/Vת|޽W]/ Bgn;}f[Vw`isl$ xXI.$8 ⃹JXY\^@^ץ'P^d3etnpW/@8 @_p98Ӕ3&Nr1̎=|'2Wm[xQ 3'o;ˆ6BhLLuW[wwf+PbM52KAg@(5l vWlB(msL+~ ʙP66nc^CSe%zgS#{1A[BSN_EEn1%?{_ #풻r_@ZE\ngCY;g 4;[V6S xG<9cCYsܖ[=ڪy=.NyFֈn?d{|ݐ7+rݫE𩣜'#[kݕ9f`1ݔcic6(BH~"^41j`Xcke!Xw4Y;59' S@c_NScթII =59=Mâo&NPfs-F|ӱz'iVMZ OP [v%*<-_6&ȁ@Buo& 遢 To(ua#e(Y>*.7 ~Yf;yn? f9 C#{ <2H4e% HN%?5 'ʤ !ȃ:ƞ6xj bK+7[am0VERߑ1g.9kZB~Ğ%xJ%Ҋ"ZOEƥ+Xr|xlGW`]ګщ N<ۻ:ȁ  I]+aڠov0R.]ӿ7VtXﴬ~1NTl6m ][ocٻƲv F[ItRP=0ʨ4/~[ ]S`;3(1 2wuo>/~ - i[$< kPnn5ѻR᝼z'fOKy HףhjDGOMAʨUXzj8յ]^} ay">OP,TsRXݨ  ٌ{Plٟb bUQuxbGlPNMp#ko,# }Tߣw|lκFfJdޡ scWZf|ı1WϽbNSS/i:h= L xK@ [suFMDJ9]^YĦ%T7@6fhQ9474l59B A3:LzjE 2r2MVQ"A. \">ȳZZDѾ]ݼGof'Ө}w{ՃO?(M~sY YsTm vzm5RV |[ 8J!0mBڂ 7RӆƕrWPhYaD8NxYe W0p]utR`9q+"Yk7-e5ľn)/qZrKPcǙ [A^T h89DF--l^ZCE㾐ӜyȦ]etE .:b^Fjm&}zvqQÙXˉ5{no=Vo-~Pb[F- vL'JGT%uEw Í{@~1NWdQTeUt5`+d |< 4dhCJ/#0\g@ fHxRs JSdv9/x#RDW.C:,ͫ̆hvpũV⸳<ƺwN(j!s1ɛ;OSi һXxA/P1ʖ@Wm-0ĭL،yuۨ Y'i@c 7wӨM+y>U 4BC<=VyW|2skw{==$٧,Z5ە>.;, YrO:|PՖeRmh&FѢoИ_hٵ~2<$=!{;U䢆C6o1ĝrY hۙX%4s5VE2#%> @߰Wm5,Lޣ>\zpUip 0~L3٬f C<~.jx`c߽ -Bom&=fGM̫k~+Cނ)n}L0M3#q̌Ou9̲L9eW~!_^I)<ݐ~!߽ r 3s2_HLr"R|.NySHþp@wy{MOhq ֖-{H41FiSҙt Qb(COon88X~ZGԎ/jhRBXhyRgkis"w:ta'yh3=VqsXes_&-sk1v3VWoCYLE&^Cc8X jⶈ^o=`<2{'B1Br7Z&a iu<5ץ8i ZEE`^G Q|F[0\%"GRD}xJ 8T9?x{4x._۠bjwk]+#I*mh}gwV^O쭮m8j`f}}? w+(ZZP+Jo3_cN>GQy6nҰuQc{tI!a=zգɯ]W^iOoOhAAk\uܽ sy?Z*Hoܿɯ0\>{9R+Qm.Ek~9W3z\’14y`ΨsVȕ3՛9-Y*Khsi \R[K\s X.ʹB\\X8&=ʥri›\Rr Y.Cs݅T#f#R^u rυܕ}ݠ_7r8_rIn;_s7[/s7o|'sߧ6[֜;.*w ޽gwr>˷sr//޹p1wb(_`%n۟ &<{n._V'/{oUn[o5sB÷rGޟ~E~N}1}/߆V޺G_qϐ [_ko^orbO^{0 rl|soosO~}dX^^~ 78pkޠ\3P/`@;3P{AOw?Zf~?]f/|7w/~۴>??2/֏eOwwHsmQQ_"g97q˷껹 _bݐa|?pߺf]_T_B{3,wwr/. Wo|ON_ Ϳj{0w7.[B{>;ڏx"ozŋ/F{_}2}gw|/޺ҝߵ.,.~_si]_Y|9uBNu[pմޏ?-"=cav\cL_s%o rEz6Wd|/>=)Ͽyi??zF4wWo |e?$7z? =Ͻc{wRߡߦoΓ h4߼G B߁][󿼐<O+ _^B#-Nrsה?iz`濘SA7^g]: hrm@ E!5(l @h nv7HP&IGN@EIYП39iYsDgm&94vי6V>@UghXBy50L/e65Aczٯ>/5OM_2?~צ`?M5 9Xs׿+ߢRJK0GR|<2}ˑ:"i^eׄ_$= /?髳"zK46]4e @,Y'|``E;3c &Hů?uݕ+5lp>5洂?пAV\uؿB_YuCnOa{T>-P>K {okӆ\IGَ34֏aݕ!+g>W{F3Ȋg~2BWУ T#C#hAz<W4WbHZN[~Te'J䟖!c'?gg *^V,(_A֏z ^m0e(Kzxr.zE<-)=ۗO=ηa\lYl~ q_}`_,Z¯CF3KI_?=d,ya֗ߧ||}iJ\d/8 "Gy͖out{C=WW ;_A]??C)E޻af+XoDIe}>|Igʉ?w-_j >V7ϼ~~bTr|3DY@[,]Ag}yb_|ո9-wpXoDocS-m|Wթt>|?ZV?=_P. d{LU,H,{6ο.y^(O`>n~CE}_r*?mT~G#Ӡu1\W*T_! /gL b@q̯]Xp+(}lHbEpgW 7UwO bO*ݻ!{+g1h{0? /{ qyC?yPOGmQ_gxGE0r=e>G/ ׯ_h/fr_?~ς+7iI-/`=s{r b_~wq3O1*˓g1ޚs-vuyyӿދ`|ո{D0 ˫>Xq|wa%,߭sohkyX/2kO#,8gƖ?@-ln_}ӻ>*Af}ߎ= s/VFz/a ?۾\?ܘcPމO9'|OvW=gHӍ8U (~f~wUnsݻ7f{Bp5c/ӏO5*V^*6笷U\~?ꗨ(L[߻}o`kA-c~^mJ Gno/>]Ygr =#E=i/bs9{;^~AG4琨߮7^跋,?\Y/Y|ꦺN~.s+m|V?Co[,Σ,^4N\ ԟ†!&F:A@BoUn~n{%X__{S<>Y߰6T\$060^님=`>CXD~ !0TT{W (o#rퟬC=?~fƻ>W_~O >RW_UKl=0~qG|'_qgP9Pn&dnXN_)yƋ= 7s0?hߗ_0IoKՏR_(n+\I9 =:Wy_i7+}]9X\G?_ mρ~ߺ}<~O$߃^JmI"Og Vʝb9y^XWV^Y}O S ;cw >N@b~+ I> c>0z-_$:{~7>:-2/n W0Tga<{핹/}CǢ?&$ɷn]=aeg2{ x57[^v߃?#'|G)ԯ,󟼆%B?M,)ݛ KNfߓx7ʷQѷYϠ}w(YOlrƞpw3Jio-ty%n'wo\q}Fɧ~F$ƫ:JpݏOy/~nƜ~k=/yxޠ|Cy{~_)g^"s(?>H[l79/#*_|]=3}^MYׁ{ /¿М7OA?~/7||5|.: ?YȞϠG/ ]]]C;DϜr3}6Q9y3 W !o2Y>,?ӕ9˃f4$_!)ϴ<ΝO`8'/6>?"x'Q?+>Zba~ %HXϑ{@_-QbǗz 3`x ^}~-9?|R~č1}{EK6m4@f=&C_t[Wp-3jd|Aq|r\߀|fg? S_Y۞||?yOkqӶċ+=rmrR_~y/+xf ͼmKEѲ;ȋ%G|s(?~ϳ{FzC x>ˮw5ۿɦ?Ogtcu#pF?˙/"^V['8| z#ƽ~}HLR~WJx^ٗ?d >NCez~kѻW'[jc~np{n}PpRߑ.%%:{WQޣcӭ ;>4IS7? qI;Q/Ӧ;|gHA~ۄ"ߘ3.As0 d΄%_05o÷1 q 3?ﺡw}pQ~oGy~~qX`J2'ס~ܯa-W/{|+-#QZc .|wGI-5y[ ϥH>c zD{¥/~fP}2<Ƈu<ߩp. Nss{/?OVp sJw|Vqߑϴϝ(o?иQ# % ?_R%´??.x B-36Ve#>Q/0)MƵMп\  _T )߄!Zs ρb4m,oXXCG:aU[d?2:-џz<a&)Y~5*_/ȯ'z~ɾ_@l}כC%g1{C1ߪpy^?4OF9^j@c W`{Ts]boF)mz/vCR)kC7kIS4l˘F,^- 9G f<9]>t> <WH\/% < -!~>_s}6:{~#G6׵Dqߴxõ sr^φMW8|u}O$͜{}쇞)9lSL_hR˷Η_0voTWQ XvSz|gI~>9<0?uo}LJtHU4rrbƾb+K7?/Ϝ4??燜/^!~{[-x N ޕ䓦|P;ڳk{|șϟWN=EH~TN>A֏{+e|_fx/^J[&M @ b|=zp A'o CgO]!³X~_z|lU~_Oƻ̠I­ 6Yr:O ߬|ډ=O#33Qqߵܥ5]v>`RxO_|K,-1Zɷ y|3jlx}|?[h~G$ ϛ[~iWHh|Wyw|)xC=x2;T;oߞ)8kN{R=OӳIW.a~wkM=?y(xUԡ?#7"՛EYw(OIXp>f`@-r]l=:?7~6_ %xH~WCn A|t)K>cϡ=Dz"{^_3JK_'^ zMa|@X<9'_߇狗̗6<*`byǠ[79?˿3p+d ߋyB/:omED?%~T2{A⿨t˛˶3<0/(~I?tYj?)è\/U_FҴ'PY҇M̟|l2bWAj}c\؃KMA_w)c]>?/&Geҭ~\sv2hS879?=~DO%ij7+wodsf#%G<69G'h>l .shVqC+l/}WnCg/Ig?Gd~._%;^I|pJ O) _$9*0|}ړh?`{"~w5:s/C{ݩ ~ym> z [`pmˌT*O~[3G}56!_ qy2_jtY?SdK s-}Qi.cc>7C!%N?@l3hz==_pSƿB ~Ko g7=Fnso}zpAqGվgn>w/%㷆))O72޼ +/|:y/IϺ%s>#^jgf}&9r$\_,)/'.enxgPgO+6߿۳>??~SƟȭz*l;GqG}Ci930ߧ}Z|<@S:ETG7_>1GܟM=G= E_>^Xcğ=oKib`l+oBc`#;|u>Կ_| í:g_>HΝ0r^O1оƏBדMt1=r?g~F6Nwϭk_V;]WKwS#Bh9|y4d~+X'|[;~e%A}<:& ZEg6`徆 2~r7$?u@})~Џ\/yUT9V X.X|}'*ϑ myNϛyM? UeI-,Zr'ɇ!w'AWJ1~Y3V=_::VOgV~_ACW]t~@~<߄99uۙBy!OUg ^MTA(o~JGMpT\ggVcK˥lj ^˞9cqHͷ쉩ʇ G As(߹O_M*ˣ-'}V|O S~Yr}L'OZ z~n(?t/4^Jo6ǷN0Z7!~{_w~ OZ_aYbNR~0=̵ҖAf)m!~/ߓ/r g>]ݮEdy="^!%k<@{ޮsg.'/}:ǿA?SQ-/C~t@3+7J\_'v{]._!BeD es<}rkw$j<~ ~oQrfa>c3~XDߺ'[{8ӖUOΛl۲zО4.w #1]Kg;&^O"w- Q{~2s.J?ӴKѽu)6>݃έ^D{|t?{o a|שWxr_9W֗1Y|ݘ)̙c+x.x#vl'gs[45+hy_п`˟Y ?bFL?9AS̟1#W3쯏S:򽼔7?/5 |o:_w+++`zb{ S~?W_6)d} =OC'ooW}?%/{u}y̟?E1쯷u?[8綸7_g /iB R.. 2?w>_ܧ[Z_A>Xt5|j߸Ԓ/.i/V8O#7土)?dUI?\|tξ>/.1sa^ xkcԲ-A؉G~;oBݒSKcӵt7wH+}Ǣ3^믚_}+|O``/|XN˖~ݾvD͏q<>َ9$20z%*7ּEϪ߷ݺ {_D ,Կ?{e5}}-~~-(.ͥݺ̼|\#qSuo|h*oJ%]7LKw!|v^֐yIy]Ks 1/iӶSx S[z(no-6-_yz^rw͍?ƷGf[D_v,CE׋F6/-%뉞Խ ןKן|χ.-5PoLM;[ =JȼԺlv=tt%x<5si3|ej2𥳐e^F>-.#42K{~"7?o~g2T"y&a$}#T,ae&Sd:k%Y+z:98XH *V<lL`$͎g-`Ya$VPrߩt '90-v0MČeߗHptܦ}? c~2ﷶ1M|Z,Bq#a(l=lI0<b{5Kr4>~b Ig9g{aZ ? pGW_Jj$GŒZA[3_f0HX'>'>?ÄFNxh&h?!JS'i" `_v,K1⢟*Լclvg)n2YBLxlةGX]]k+>8zĂ`C=V`tªjj xHG v Ȟ퓙4ᾁ0'NoiDUC1d)ؽp:'r nRVi9UѱǪwVkG&9ؽ#`Fh'&ۆ][Wxv"4=5meDQq(a m 88%M"@I,45GhNNL7&Jp. K>eJ?St:R {8JrkڿVLy!~U}ُ*uwіzU珵_QtS%WkqG5O)?61%y8oﻖo9Y XG;Wo3v:/Ӵ_&=vjJ{-"|ry<<`.9֦:A r)"Nv7ww|)"~2xbp nIuox%U7 b,3 d w3G7t~r{IH??Js fP{|y"[w[w_<)4oqyd _<$Ҽ' ~6xcX+<7s<.2)sLT2.qdgv|_dnG_ŸW|f̑1xno0x[ #Gkޟcn>oqƇ7x w#+1i&ټ?|r\)K4Lvȋ{"yx[dRS +/s/h__ dt5ϱg5x0Zw4/  x??4kXOqG|In3%ό)XW`@чip <A?Q>M iAх1FGFnex /0> i t!hd ,"d:tBx l^ٺdoy7K7s o g 8֟wkw7zѽ~ l=o\-7j|m[{<7ۣ >n<Cw?tj<ɦG&SD'NfГBot,x|u6`&%#9<~*<: %8F'_G30!Ofb鰻9>bX:Οl0q?dN?ht2tl$b1Mb}vؔS :2sv=`蟔 sg ;q;tf]b¡m_Wk ƞGb)-'#LAhx:Έo\" Ћq!;]ltѨ<LD|1r#1USg%@1B$faw|H [`ln-{¯t& 'phU=VS>[D)`(0 ; K g&bcHtñLH\h,9j{-ٳXx(l"" "[ #ĩ&ܒ)r8R '>z֞%(m,e F!q;,~J3Ns& M T7S1 t'L" ^c..e7 Xe/_x~6w?/ y{p)n\Gy_oH_^5ӫ.?UeZn|$x/xޔϢxu85Nk~KtH_*QBoqD=/~֪[ƳVςM u:im?֩k^?)T\B?ojT='2uevi[nO;>5Oeow^ܠ_sXb4tӴy ?"-Kn]v5'/~rGrGvDf_ pӜ_ߕ/6Vܭsn~Tǘzn{=y?wzݝG3=~Lcj'4'| y |E*p߉Jp.C}>+O<^6S6qsn>,+wpT^g\{ ޫ7rz~9Msj_MOjO?[ &MySj |J_>/J/TiT[٤^_MYf~iu?-gz^^;g+sMS>U\Ujz^Rjo#5j_Q3w^xNo-gBHРdj{OIxxZZnN݋XC֍?Ws-iI]~A"YݟfiVC*$x)Ͼ٬ߡ}<&9yߩ_pOzqW>Hp'%9iyN~^sNs+3*s{v{yH^<{hOU9 <Z5a78??* bVᶇݔ'9M3|X/Դj5QFשY/xK=//kK|_-O|є?*IVQu pNK!u@ j; )|AJp'$9j={5!5r!{ZBj9v8cC!5Z-rYeXWo<֫Cv(rXo๨)gL~5]'W~5Ѐ~Q^7tTMSGx措6TMcj9cj1s1&'hWցgg5JAuk|~='9Ьң>w}N=i =4厩ǜ|uL=ݛN|?)?s\ݟK<a7KpgcXW~_hXTX=4eFKa<5-"śx#RϗjybxR߈wxBo4%k!5/ ?/9 \Rgհ5iXݟa5?yXnݨݡa5?y~X͇Iqq))QΏuU/q}gD=k#$8Í%铎aQO;XcjjLm5cvscj{ܘ^{Yu .H9 0_jcI^{R{R<TǂO=5 MpB=vviM(?-ϕƎHj {ItJoR)Ɏf|zJ4)M\iV㿢)12;5?Q!#_g5NVݟOJ甦Ŭz\US)SӟIu6NWM|nRϹIu?NQ [/rHsYNߜgx|茺u3nϹ3XS]WMi)uMS]):j98^9IpSw3_`=mJp~٠/Ip~oad) Ip~O gd}\u!'Z - VQ.eU0Vh[Ix,o-ӂķrJx8F4$8?9%|9)s-3gV.?+=s_Ӕ|p>^ДK{e1E.w׋?{oQHÞKMuyEWHx=|K$<^MQHxfsHS~P{9\nxXNIxi_LHxnYM9 }Mה, ~[߿okߐ)ϕ$ϙ`.Hm4+$8ܒ\fu otM IxnAMIx*M)3 3>+0%bx4sxꂄhJp~O燼)?/%%S$8W|FS s2ݘ5 O 3)Ys'₄gyKS~Q-bx7$8 exnig /_Z"- _*W~uK6S)lbx=_>$`cjG$8ØIiOIp~o|N3\Д;)gNS5Y粦L|KgQSm Д/Hpݿ[20<M@pӎh~Zb#OӎFw<8Jv453x ݬ#`y(>fq x͵o/؈5tNDw]9>=s{NyΖ=VE31uЀ5e i Jf-xJoҍdI<O$ekAx& ͎E֙5MX[};|dZx?@j%Gi6JI]j]}!XcV&Ƈ-F-UsT#8􈌃)Y3k2L`Z #ctW'W h3t:ȶEOZ|8h ` mǿlPXrr|~&CI/~3>ϞΌEOF@)yė!,/ny&,n'_> h0|:tl8^qg9!b˜=>-Z8j}Һ܍k'4:u>$7r]Lg)6 ѝ)bGʊQw2ctl{tx<9ye<H&F''1[ KlgfFa[Cd69 Oߖ-P1u6?9vU>Hm!G! 6at,fIfbV7~0z՛n]<3|Eվdzhɧb$'xD<|4 #dT:y2@)c2͇I"aұ v|h &Fàg{1Jl,=R&Vhrh$D_|8#` ݸ`Lciy aL#:XLa] ;%&5Ť-L||d&6:9^oAIDށCG[mo;8CP8;"v}M=>fW:q;zJ[{o_0w`ב#V~ vkBGCt5Z֑XhH9W_YސqeEʓlzp:9D_HZma<~|С>z;½]}Guj8v 椻$m;-"t(@,phz#zw>Uw,,:H8cpoab ibS)ϱz+= & ΁#ςDz&`,| (1 /*F i1J0s7̡9`pnV>&T%PLeh8<;" 1փZeKwrg+*QL$i;q-c?lt2mI2ڬ5aZ腙q٤͏7`nD빁+VY57 Ae*(b/]u}5eڮnN^J2vt&8~iLr ׼ tL2ڒBi٢@J ,sp$h@%/[lujnlQ=Ծkpm9|'3l3Svj;U8[hSCpڪ % h w u_;ކhH7%6;{ Sq;uӖÂ9noxH_ۑo}s5ha/ڱ %,wX63Գ@l0*:4lx[4\8C}81F]쭧db(N=)$NG`-=LQ܏3ɧb!,Ճ5wa LUj _!C\Z (N7b4FmIPKЖ-3Mai |StMt0#tu,z:e{x|ptՓɡ!BNGѵ%a,! [ƚHC2'ZV(A3FxϿ9Dm\tS m={j)dtd8)jE)MSs7mXj\gc̍Zۈ~ҭOʶF}tSn5W'x a VM$(ht<*o;rhUo  ^HMwtTP_TSZ(“Sяs%mύꚶjhS%}hNOe#Q#a7^PJxׇ&߭#_ ~g?ZVCZxm_oQJBENZH[A" op;z D޲[cӓ)iRٺGĎL_wXZIȡ;>' /_;2ٳr<'C:S#W-{( _1%SϲC0<6v+;'>iͬh#, eFQ{I~qjZYQ&X` a\1:Rt.VȠgW`g)=Z*hQbOJ H W)Bl¤XbOAODOƇmMyZZg *`m=aHPlӪP +X` d J$.볽w4F4>Y3@d0:PDX1cېSPW}uF .;FU|$; | >8T G>3OD׹5!Y1NQw,wwZX#Ij"z;'m@="wOmXC=߬UmP]aC%2$"L.L}gQnS/=IMv ;vF@>`.IL| v9.zBJ3ejR9̳cYg@a%PGh铓hm͖Ô!k 'mxOavh}hƩdIU{A ~:MXEA<g;QP' r\bG12ݜR9ab@:VGIjztI!IjNYW n8Xx`|{Q.@1zQj`TBp52Iз`~1^{' jmDv'  GC3gj#h[V4x f9GhDqTK5];yGD=VjV#y)KN\E Sb>X&2'}HჇz;r :zNQv+),j|»C! Sr H!. _K|I;a;ŃpM!%Z$נC9h` .Tx'~IO&@8 -05 }C+p=3 ~ `P8GG`n*q+bYOŶ[ FISհ_S'c5'?ZbM$z8|* dC:{tbTfvB5:KdI?CTWwEhhrqpN1z!(Xq5!=*JQl =ObV"*3cEZYA!3XHjuj>Ao@bU !he{u6R)i=S12ICGK`)ԁ < lɅKzIbJ(qIJ>wbnQ+*yvnM8 \č S-L0lC2MLo"0$-4@Z hME%gZ8FDQ߂20t,4ʢ((RMM,QM_>dڴVGЉh@#.9% IV]-,jQsMlUbrXڥ[V(xea8ҍ^|u$ 8w&@(3 P w5L'@gH`\{. ,bt(?N9d=E:CqO"A\E3@k3.FDOQtv5D}:jo8VDD^Rarx^ Xxq9jé|j/L/XE@G*Uv9sef}H.}A7kzŤ$;EPv2 e1q'YdeӚ' Ej?'YHqQQ);f:>T8Qd- e{0ꇒ)T?*xقz$&瀅Lf{ȇJ2*:"OUmj<3G9=Of}j)`mհ0a"EGALFPCiVY+Pd4u".W]*$x:,aFp }eHz 5+K,AK *Y;z9ԮՒؖ'w8lUۊs#u`93}hȎMNXlyjhLS2 ӤuEIKܵs56kfq7[th:>M fTjx<K̎ $Wuӓ[H3-nŏv 9E&h8eWP+ƳJdHv \[aRA7$s2wKP{xjP.d{ 'w46~C H!P*8Kz\D)hn&QFc$`iKpi{8Բ$EWMuutDպcgb<ɅwTwKj4<&0Bse$CLR`C1S`@uH&<ᠢN)oS|WtU X5 vy)y &]b'3ޱQ>=dP"$Yͫ'Cf>{LL  o=1Y®PnNK@%VOߢ=LR;Yla4L`wѷMdbie``뚶Z,#x6*k34ER׼L$9䪶{T5[AjS=x6RxsI>9C11Hr[LXuX7jMZOOǨZngi|< l#J*bR3Xn۹yq, P=L HDL~>Ei.|'BnF_So`+L :$ՅwX%yr탒"Nȳ àg0ʡl .~0rpJL8၌mδgytgaNp# A=- .|׽mw]Kƒ cI7c4mny!4OًNJ:? "qoѻMDoXVEMO0^^OPb7_f&(֐ ܦMijN4:E5ck0`zlpqh OKd 3|UMep E$*I`CinBK4복Z{)sQ:--/*7#Y"i-{͚!K 4zo++񍌅GK! GL(g~T^]@ cc3ԼWVE"3m.%M7 6Bv|0>6:;f wzo+-.0Lu{h`K0nTY`aB;7w2:d[0R=wF=Y5'ªvEz۬k+A)d`oVKy VJ'K;@_@ Ŀ]nY{Qp-0}dWQ~T"\t󒒉4YON\ =(!~Zff@AZ=휍;rRP'?1APiWP`Lmo}E9jS](F-4b%MK VZ\V;/#lKJ !xK@tVL03?ϐn ʚKk \.`V{rke]TD_svxZm` zӼ^_y]I1i$Nn_P \\!pq8Ze~T'j,k;y I$\viC #YQ4,xۨDiMUG\sWhI쮬,}wWjNW7pqğ+o+ok{#)ҫaa; >.kJK%-XW;HlƐjثLZO-֞4aڒ~2Sy,"[4{2fuʅY^J`fQ6MmS,\틂)~Ж:8oH Q33">MmԭٵcEtO Y|qmyСV)lKT?7{o zd#FfD-DCA5rPwwU-,8d'iMKz6VyY;].YE"Rݖ5X[%K[˯Ԫ›z0? 0h4{a+!rj"+ _5Å[s"Տad| \ 1WsO6'36'_9l E1 љJxZvQ#siV#d[4;[E/  S<@ [>Ğ%.ҫJ{ YhGĂͫRѽM-|_N|ݻ]_Zҍ"] XBU|f)R?&vͻbӸզ(?kYm!S"p^m;m`dX/IɋԶ))cgQ'ʡ#}&;|ʾ1lNs^U8klwfPdjHw ->_:.LrOĴF.&CU_k.vWk)c;g93 v `;i>4.>0{?"u2HܺD]˒^ǓŬa_#Uը5掏ַP]?=C\ CUifp6\ !{F4o4588yaXEi0:4 nH)heom|ؓiˋ%@,P o䚺ѫ^%V ,U[HYGAWwWVۀ.*ܻNЏ*ފv]u+$HxP:g\h$>t̊I.>erd?Fw rDaX7PnU$z}ڤ< Z5?:h;DN( 7F$!E2 `Y^o 1|ōl@i,~!CϵK.Vh i,b1Dv& ~9q0q[7f qS#n~a3PDAYp%Ƙs)16`k9i-DFCjdaOoh# ܮDwzڨ&gQ쏸lbS/ YFi@%ETGSQ9S&Ԧ2xz^UZQʹ>ND/f~*(s!ΤMee3rb:ݸqReŎh9 j'U|M($ѿj/T]:6 pH8#0+6Vq _3?>3&э a.W} B*M!+EPYuB7w=o /\4XҲ:4v-LӠh67ylvy sHvR *$ ޠMb͊U<儋֗E_ˋK)96sGR (#B$%0IȝUmH1J5<V!~ 9tjTSsWUΊ38po-fJ}J Q`-0)T (H%Vl wL;..KM $cO&ٕUf^ԉwѾ5PZ:Dy!c|(e,+dUվv&V+`4|,,sDY/D^ 1T":e12HadC$@a4P`ϫw#Γ'$?qgF]Ŕ 0^hęi_s+}LX,X[ _{ &좏61z`LE68C 6hoV1˾XX`.]SV0gU|4) #B_-i.(r9:fDXz}M1ހЎ$N[NJ_ aӅW'K_a!hEhZU%\& ĥżP :֗VT5f~%8f1jl*[cHc$q/Q#xv-v@A, UM0)s~DgrYjƳ+"LTq@᭫`ARm=䃯~fbíhx CR;:n*K@2yv)j7!mqZ <WSrh9 P<ia4 qyqAm~ZhOCQtszѝONdziu8<#yoIIy'T3}UB'VfX&IeЋxHܙ)XK]whQO !%]dV#!+AN'o8U5jRN3nbU'Ғ= 8ĜƥW^DI1*uteϠ%XA#-B3]NcɸzzXAaOA3HbkBN`X!6ZA59-h 1DXo,ڒӄE`2 Kl"1)](+ "1Lp0dgBMnn5DURzFRPo_ s[douڊ 9!$ vISekUkj[(4)0}!o6hH k#ZmI~Pb)TARjܼ~uUB'rn2f-׻(w3V'Iq;>!Rx6(H#(ϻ#}JMPLQxU QvXJraRRֿr{aкeVcjF&暉x;E@&o˝ L( 0T }(Ԇ l"w.&fu۔0Pm7@BV5Y&g,p!"'\vBf*Z/&sD{an^J6f >gH^:,etՔwF.A$ȬE~(qi5ztW pN]:1le~9H!!0)1>UFFU7G-kś֥$x.JL}2e >};[KYHn2@0v<ح2A7<^oAs,'Ih.]\+(irD nz=O71F3Gk\Qb8Be6 ɥGz,Jw7zU?vҴg6,[6]Y5<1:z闍uU# %&9,=5$ rd֑ /Kb^Sv0?"Ab펮HdTlá!gP4tHPoCJ,5 ?Q]}h+2{JO4G9-#RBk,"p#G:I\@T@XET?|vv10gf2(u~&ap$cƷ[H?m>7(`,C$8 oڃ[y3*ϖW9 v~R|k=*bw]\0'ǛLV":EL'_?Ǧ.8nҍCqx0msGs@FOt`W41_9ԨJ>ƈX;q-; TbEcDuD%biI*AvZ༒ ?b ̲=hS{fnN0ǛP-fF>j=iJY:KWRU)U@<# TFX3҇AB+ [ݐؠ.bGy (#}y _ -z$c 󅧏rV1( #DFOwןM$ȣO_٧YE6)-qM9ga3ca%.We'3oalf "_ ^,k Z9:iuL+ZT}^w-sv;2b.`B'vtňBcM:y%IdϊT؊dL!)z'VYbVQ "6]+Μ-UfS 4zfH9j*,hX4R7Pzޢ43zIf&>Cu;Q݁k% m_qk 5 $K7LI/yji `}cAܡ'QdP<_f}wP!wX ) kvB{oI b~n^B)=A&jM7xυxUy{7n|>s 2'5<f1Y@8M rxtZ#Z;T- '&Ox '[8^G5뭹S9UF7C6OzeV5 "QcS_fJ|ʳwL8-tHۗ09Hi92v~:K'1ʷۻϖ1QtN(F}kvPsK/f{DT3gG#VS dk:`@e/뛍s:PWJF1T*bvA)4$:ZV۾PA=Qƻ2dHEb5o =h!{T?hy^|CbfY}>$?a1m<ebky=ڏ[R@e3Rd.!hx3Vgd0Ը$ґEј2a=q |FQlzړ2L%ўfD|d`˩j ~YejF-& BUo2w͉}էqc~*9d9<7I wF28sI ;Z֏kp^ύZh9=ǣ*Zx ƣ@?%j1 _PND-0YOY]Na,6J!% }A,MXSd!\ã.|'F/ Z8F8v{>c]8&fPqs<'J6ʚ'I|+٘)*&Ifˣ}2dkx ($]&brz*/γXhNb)eڮ1;e 2o"B [y :W|t<@5fKe@ac:)wW%mnlR iI.!QnE$]x.9#Xt4U L&/mi9KZ>C;Tѐ9VC1CC|wRR +4ޟϗ`BkȈUԍ`g?ڰ%84bdwãcn+dIWa3[)x$j8RH0rdgtm8w0[⤊֝- j;8U U'' hm~Xߧ $jp#(k3˟QL?.[ڝfGWOփR3^@MtuWHس&b&EaZe;wYţ퐮=mϥaZ"&}wbc>ܩsz"k2i1y>]8MW$k %ʅ2ť:(La'KGA |IuE0YX 9i JG1D}ޥwVQʜ̉VOO35=*e\] 59@hNLS UC_xk$N}nRKrrCQ@QGK/)+S xIYď&1y8M!10^_ ZP+.:5LZξ0 ?^|Zj%~/0oNbQjv+P0KOY.sCœeLDo9ƕ o)M\x6ϽD {HVeEKX @D3! 2z~Qq0N~` OTb ({_r/mj*v_ԅ\ɱ?mcDK\^hMhֆV6U&5IFbiע]^i+mS$XIN'Stͳ iЯtZclLcgf{%R׭(&RM.Gtה&X}H:0T\ȫ2wvkã1E^ٮK!k AXBxX50ˤAyߡi< E* ;,HA. pD d a8CLSu=ó9+Ҩ=y,^pJKN.(\s'l,fQ֬urWytP.T&A*lyТ>'0,-rFxR=..Uw9[xEWG1*__-~H_3!Qh#Q]c¶61ѣu!' q4l_# ǩS|q2hvYEgB!'Jh2,($K)(t[m`q5fp` *O*3M+Mb|&[3+i54kJMWŬz{>eĊ;1D^)hmyI_RrW-:C^뽍:̡7O(혵7BEV`:2}|Zqz@Hxh&ˋ` X*JڈJB90v G2k$'Mf5 .'mPYAa KZo!᭱rgzLX#( NkMN_meqПXzd9 @cW-lxp¶R])`.ǚB#̢貂UI3N{ھ2 :OD5ߞ{=|ϙG1ucӇ_aR3Auѯ60r|Kz3srVFkH¸@R9EXvE+^5;xlvUeOyB"O;[J63K1}ro/(8[<ӹX,LCCRoY"kutނL t@)nұ'?v.)d.ij/FYvEdW􏡱(gz4-h%.c!Av&0n#1w,νuQhdAZ)ze&tf(Bh @ ZFb?"Yf(D``uɡ:T9&d U=j%j^.xT (;}叇?|8yz`L-N< /sD~\x,BCS\avAA@}g ;Ko該gF5PX!dsQ}nTbiB aL' ~i9(jd\И;aYDG#Rh%e>v`(?#":81(Z=A^] '9?}4xk{^Tل'abG&Qbf ֨$S^ ENIy1> ;iwwBlڽWQ}Kp˒(r %~6>=d5eN:k%RemewEvZT& M%Ej~-DO.`vҦk:7Lޅ+)%KG/uG|%MWdr~_pS'a׫2aC&YK0!:bMt@!"J;)DFбX-5ޘX#?{1 /LV`3p>QYBTɀiN{)f;1#b+FC0P˲:Ge+qe\pLP"J@;vܑR1J;j &˒↪hJ>?^[I󒪉DZJEQ ewduJLb{SV >4b8eP)%Q**WlrW"?Fo[ހu"y2w*i- g85Ab\k.E+1Pn4dfs-v! W{G4鉌{un&LVp\ikCaJ״XC@L /Ч_'&R?{`MFfL&zE,`J/5(? Bb)>j@j M5_ nA:?m:ɜ2q?r^Yt44,~xh=^z;P^I38un@Bz'">^ ƶN獑JzOy!S0wyY4HN%XE٬v\lE gTNf8EE66Ko0"7JSN{pW"y1+wXN.qma(3.[xx{|cdh.MZc4.plu0jYx0Yߊxwt64; 6 7ƀ"Dcb$GMepY#L~;;кnx$*gL(\ns]ORA2J]:4DY{tΌT%:Cd`Jǥ78 p9_j2CZLGsQXyGYpbL&}b_}̈́ P0798bg-o3KMyzA[ت{ZHZH@r!Qx?mol6_m|Qd;=I.j9 ßv:jžq=]$jwH17LQ0҃ڄ  njzl [$hYqPvv'Fnk>}Jj/_G{8l|]̤)FvyZћbPT| >_tT+> yb8O1d/(!jpjNAsz6~.P&hkMg kɼ[y-(DZ?eU\_+vP Z%:wSgì|})A^,ث w<4mE{G{Z4hn$oAr?DLTA*֙'\~G[isHm#r5 l_C9(E7(  ܼrKbSh>ʠPN7PaI퓣D,7z=aS7xKZ,Y Yݽ3v-\D'ĉ6Tڏ@a?+6RQfu)R~addUN8ܬOp08v5z!](Y}E.h3U2Z"6N/# HXKNjWRA0K s^Yu("[=r۷adž&1U]HS58.Bc=E(ހ쎃vCN=F<)yM:ʝz4j{-ケ9.ֵ7o\#Đ/D:; 5bҙ!,}r"uz {͟6 @ ͏ j,WWv6Wt$z&ީQ,9ܞ>XAkI9l5`rQR@߉VIꖽ]<`ؐm8s]>'v%oѡmh՞$rlu\vcdq@ˍ)cFQua:iET'O]+X '*{},e,#t|*Ia͚ESdaZS:'k u5o0~pCmZFԥhd͌0eV⊮*7FLH&6ҽO86|JuF'IO&IpxqFt_ yV$rŸ0Se}D/+`4+1/sf3_h@2cKI"k09)*Lqp:) 'm3YCMR$]a>n *" ݋IЧ HMD-?F^IPebJXѮǎ\Aâ@6/H,?&+)F%9ޱe?"6>:Y VHy|,J}fqEo$Kua0,&b } "V`];D/G Q_sJ#$RḷEulc'ʞG(Jz]F!: L* ɋ`kLXlq]Î.nVЉ^޲I%5·gm!c<&Ȼ;mZ՘ tDI:…T|ZcinJį1n: wь0dNif%\PB`4&2KQ!kKf-h"XťFFE GWLZn:]WnIwީm%$QiJ9) ^ؙ%4,9hpо&j vvXRMȬ,\$|s.Z6mSXQTnDg91ϠQIabrL%ĀtJA UJFaMy$0K.=뷛DSJ(䶑:xS͸a@R+)ExV ,p 8'³4a@3$5\h\X}0a\PMl$i5CꟌx-7 ]W~ѶF!i(ّ8\9v!;2A.7[* .Vn^XjTv&mbJ6Rw[Xínm\Y ZbaLV\R(π 3H1ܬYX0Qb9%̰;2]KGJϳML| i7ߊ 7elc|ϧ}e;*;H!wn`N#"Ho5-iOV^x7]j/f2UNLv6ׄUtx(1!O͘^n'~]ǔ"^|`Mr:"p{\F2JӐnAmnxp/=yqthseGsbT-Аa=뤚v{x (СBܒXFnmiwR`$':CΗ_mB[n9|9ګUv܂r* S͈vfQ''&v7˗r /Vvʕ%ZX5F-c-LJ` qĉAgu! V2ny@G&z^]˳1[|Bܼ~xNf٨)qڳ']B$jiW:WS2.adl* W/wi/XftGZ :&}Lr0n031$QsAgl $- LU0o>sʼn$ųiiGQ©;4)j51@Pthnxϙ)O !"xZf-_RKT̬:`lh&׋ :+x^zIϫgh a8"!*eF;J7+5:,B'3b4|g`d-2t )Gs \6Q 2ט'L:D>%XǻM7 _Lf(_=th,UH0X&;d@Kч]#d>xKxÈ EܓLgiGF)6tRFe|Q;=qb#7YN̄O`+?L/lĠhUzm[-ȋ OӾH{C""0h+7U;qik60xc,$}rg'ڪAQLɑ òּH\IYF@boa 0阆dm=:-C6ɐ-$xyeV9M'9Շ{Uמ.=GsCoH+Er`ݣ>1u;}mq*l%[m?;ÁRT":[-84J8P -3Y M+g F'5YXem"c+5T,I$] \fI/:3g5ѸVU +Fg-\N*M%xw"s_[^uG#,tZFVyT"m$if*CX@h7.l>̯9N4n089HllT2Q;F;'+;q: mc+Qp4@SWʋ,Vig近An-*҇dRH|^7guU-Q/Uʅo$9pD_lXQp g|_G;k;ŃZ&ŚQw/J>)iKOդ3X,`?(U*0d㏯NjM9Ʊ4Ht2l_%),߳(Jpa~I{ET O掏ZnnOOOOK,4d=PhAxR.,2,"mG۟~J^P'B%#8/h_<~ݴ9b*I?б/' [+NNCqJvפsxL6wiӱ5DL< p?L ÐEڼe $_;_2PqrhCZcVhm~j%U8Mx|1Ԙ̈k]?k_ ) ^Zeq`ο +?wxjk{ȀQl46 IMUP|PL濤C%Z.r;J|X̪AAsT}0+F n/vL}J sVV+j^<[4hj2 'k9T&8Ctr qצ !)u-~PaɋIم*TYY 'ʃY/ [iG(?%"{j_yX#pJTy{h珙7fb33ithԗOg܏__颧e7"NI(UgDgQh |“IE#_l; zG/~'s/ Z*C_ DٶB}SJMG3H\Dzvsxoߌߌ؟Έ}|X͒͒,Y/Zذ<,vʟ(T!`{ }ysͻdn/nЁ>`uEB hOIH2lr#W~x9[y DLvgaa1sA]vs(= %!Tb]ūVxDNt9GcـlT㧕UO2Dfn;7ԙ&y*ttewCg69ow]C\1rk5umX.04 o v!3(xKR%'N\7i[Ӑa/D 9H}3"P̸8}3l/HNP4p8qYL% 7rӒ_mYev}$x:zu!}H>|l=h`J-&1{+*zPov}v ߾} Ƽ)뎗f8c7ARϪO9׷s)?k4!(s8<|S?;.{:_jT)& k~I&-UI8"_c})f~6wV͑ 0;d? ]`,a~_z99`Db.JKXHXxLA (WBLSj^ӕt"@1H /ej4&,WDuPjneѧ F^(m^Q{;wc2%5H|drHNQQvKH~o6nͽWrW Ag95>XS = X Z 5U>zN^e6- ajW|3?I>?<=EY ]!¾ă^ru@е }LoņUt.w?wfY8`>- hb!' Mv]~nl^YI/ƍaM6*z&|cS76cTY;N`NAyp96QQ6PIVY-߮;h^!F A4qKLϚ(JK\sQ&ظdB9NI>pukBL&|>~8PM\<, mH7LSՇ&-kYUZ&RykR @ +MTMQ؅)G-)մ MQJyét.߃Ë.Hň#mVZʟRؗV057j4A #جJ#>/ʋlWR]EtDpZ&1=CpZnB5EjgϮF]BaRQcz8]x :b3k-h['IgQzT/LK_>M,2Qx@ {wͭMV(H 1B|Ey~_A L@WCqY̾u mEnA؂B`QHBQp",80EFfY%V(}da7}RDBר@?բd" mdj%iZt !!:M=HA3RiYˊ'OEd;-f`"rSWAk_AIHQө7]؈kESV,]Tb´k S$&ۑ?DTT>diI ' }I,ׅ)l)y5K8E? EX@Fe LY boaR^Yv,j$^OpD+kzޭ9!( lXyך N|[cAc5Z$d໥?[&c1~KuaJgެ5wܦ`xhPJRX>IjkN3\,հ`v=_o+"/fZ^_^ҘvzV-9>}ѠdرY6E= hZE]+@O:A-C7NI 䈰 cŚp{Bsܼ65rؠ@!v5Lʛ |NU%Ѫʿ:oBc)LEg['dI?|n~z{hMLHd4'2'TJ1MQ(|кnAe\ O~a*I鿄8LK@PU`Pݢe5 _k%Z'v: 2{-EF:@ oNvXWKsP۶B3/z$!a Yէj7P9j}J`7pC̻ӧeE憹IG迅>U-8.^< ?22f#>%b0G!TNf%eBIi@d3M 1=ho۽K&m'gO_nSZl>ATTP,zh  ғ1UK"4UT сP_١ a2>YƠhDٺnyaFjT+P|^jQ7DP@A{C㗞qMdnâ P -&o&k{|~o+EbxÎeXfEI' u(&Ĝ LJ=|ip{o tQ^@ \o^C)j0AY{ T@ZD:hƱ&Ő-`1s&"& 3'vD SQSS- +"%e9Wh 16IP onl+ԁQ#(fNhI'J=t@u3XcKm͘*Y岌҈#-2kLrG܏T puUtmm݆С6e$j΁À vrr✜"&Cm6mA-54uB')k,yQK!M苚P:9.>x ~tJGw 5=>n ^.f~X,E.4֘ǎ:W%RhUG8Ms;wr_ݶjQKjY-(p$Yb/Vvms d@H';j[q˥ܣ4[-<U$e$zMwXCAU> iyUHwK$U[`p`*`}GađzMUxyxXU#}@<*BDF8XAg밸Y˫ͫ~C~K~WVOQ&.S^øTVP಼CSGf.8:+(-n۾VW;{㟗_궫굆Ӏb<ʰVIn,@Sj 9/1 +%iWz: Y^iIV[Um|,. +a"%) djV3gMЄ zi@((+vޛ#z~,ϫF悑%҃aw *6jϨyz}yx^u~M}@9;ܬ*ʚsZ CaNsSiW5+76ƱuQr7~Pd Hl`-* `Pډ  @/ߩ#dTQCl38,/aѝutyii)7<QD1)u^O?Fϣ(&,NHM`\C]E,-2?i K(L(Jsd\1hPvUۙfJiBc46D8dfK r$W^X%Uldğ 294~ JG$I˻EROdR[Hzp(<#V6 8&8ظ$V 񁿉rMX,Zk+xmu/VMG7} rt&& .{鉐нF װYrsk{W[قW wĊ*B+8g5镯MRc0 no9ʌ)үg+۴氰W$QoܣO<-@t3m#3pZ`+p-n61n.&`vS@<;E1fbVN!k8, yEoH3`9\&neo/qvÁ.eS|ՐWf$rj1saoz/]4=avLdtq0aH״[v_-3?0YRP4OE58t/ ]-hdK"ale;kuhL%mlG2O U5 %Er"!CD R<V/7*8# ww iw9BH=AZ;)X +"@72 zd!L'8.>v+Yڮ5j;0]Ӵ ywyWFΚVj͈-"b䗓UW[nwd7C%Y UsC(~׎uK/Fn`ˀ-ul yƚޭǽujKb(.EbHLt_B]zʕ;qatp-:ޤoI +"n30p-'̍cAm-\}>i|rfqߡO;.t,5N8IkƟmYߵ鳙 7 A11Ҷw#0Ӵ;ifܸ1W6R/#.\X.wʈDhX"V&lD6TC1IxR^l43;13 `4˵g*D@sl5>uBW%KEO%v.42JKp1O,;{|e|[ણߊ"kGoH:ՇP'81s05g ΎoZ]y)\\ҍf"wq(xsj.(Gz℅3+9v7;LÌAOFLPւՕ+s! (l(Ot`<3w|T&w*e1ƌ{>" ^El 8|b\C))h0w" {B̟2lw;' mAڬzaYm=krzʗxѭY;qg,ݸչρJk58kx;J 5ʌ48uݿ)O|s»f خ$슞fmbd/1oXr iKY=7V@*%=KWwTEq3jbFDK#BߠhA `ԩɧ|I9sw`Wg@iW|ⅺğGh!VCؑ:Ḭ ,7f{tg;g(y>Ǥe$l "(~ݻN7Ӈw>l_LgUʜg׮77pu-~=^66|J١|AIC?uUPuuUqȉuT)/#E\67PaGM~-oU1UjUSFcSwx\MY9əyPmy $ZdKI"ťtD֗1A=oO^G$e04-qkz/ <gd}}6nwF]Nfe((KK`|Yڸ5!q<ɦ/䴰_B u=v S'/mmHC1";*Ki5BDiazF+G\nu8VWփGc̯iAgpdAkL&  8+k8%GBU`6*>}[)zDzΜ6:3N׋b_AzQ|zIM ) DŽNr1?y''xN|~PJwJ=#:nUmusUM9 7`Hu<?y.`C:6{fR;)Cj0Iߒfe.iC8Ab:%y׵-WS8Uey$ ?VoJAhhEBkB&'v2aIg]rk':L:jX(dB'?s9a.GIwa{?$}z¶2I}rb!_?Jn%B|"*]R#HGf<}KtӡW\Y]Oc M?%Ƙؚ6Eދ6׊!Ǜط'\17z.vkMRn,Ń1jit:Ld(%gcg,4c_H_pfi`P&ԋؙ8rgRW%|ޘi<.+k1քm߽A=)lÄˎ u3؊ ']ֆi.'g 3D7#_F&j vE% m6SĎ៲\0?-澸 fsQqSا_+Iwz)~po`[ޛOp65g_FP-bkm ؋nX|RZ0ƂNtד7+ 15i4@I.W_42K4,δ!^Ɵy3M MzP,I__.s7)X@\Z#H$R> Ȋw>PȌ`mM(.,4g^8z|x{ݾk*D9?ֆ}:V$&Ox͐H(ںEjb&tQrUD+VomPkڡݯd'GlHe0<0?ΚTd>pH8qBTu-nZd;csR#{SOk8qRpuC VԤSE$5}?+j H\~Mvw:7G'{%Qz,0Hl< mqzƷ,V.;\7?.=xlSYݸ{Kv$66lIo~pE[If0scUKTZdyQCr1 |46 )1~J]8_;yxVZhE£f%:Eg N7.K|RwCb\n!|v7xəԉTXHׁ$xjEfI Z]οv]KV(o\)9h=pv`1֊TϦg\5vmn tҋշ/BqROIΩۋҵd3e^ݯoO.7_y -T2J h& *orhnP&|륬/ȹJN,߰'*/Z/|1 ۃEېj}R#f,PU靪o'k:Ӧ"h,:4#TVu{Eɺpe[=hmAH-I]0C\ J8RHwQƓ*sF!L;RXoNQe7f {Fl/xv$V99gShl8Ѵ\ tk{iV9B(a1;ҿp\^alZUW*f}Cmn'x ]ͶX zjmtNN6ZuH]WP-씡aA5o"[@i;&(B%*4|kI7kOGg3g޻S3l{/N,};iy#qWݪ[#:e+S_݅M1pw=ǫ+NĂcGlY_hJP; 4a(&`cm4̞hBΟ}Rk(mb3L]0H7y2H>tI7iϳB'y2|)NW6]|^>ҳMDy;~'Y\9|E/̞[p$YqOatn% %]ԡ|*'JLR;loQӿrGnPm0#RXlR [Eu&d גxo `ޥIOH |'hQUj$c`h%5y}9'_K¾ RMz>zt{74;3JpTb@6sͺϞ7?)g*t)Ē sUX4/I6"WB莣ĭyunCm1-Su`IO6s/p_s ߷ o6 ^Wb\nEP; ,?ʔˠrja*.k0'# } ~{х" 4gmW":fu ?c\$FC$d:@A/8 sq_f?]ΔD/a+ Tg@/z_M~Ωlu-Wր($D!;x﴿UFk:V !8 mTmJv)^n}3@a K ڋ:QM&#=_ڮWߪ(\0 KxN#OF<:|;S]3&TC¬Ou4Z qU=G%_k;vpzǸ>yw천F$0W9Q 8$!WVZxdS+А\;\ v!8ݗ~qU[Zzp|Ւ*b"#b4;<VVdb\sAvS{7ڞN ty r7ըg"Rz`w~4a3ILR7HM yݭ [ss" ɮDlo$313ds]js09In"!ƶ**A+w_"SC]IEi`5ܦٶL񅯿 HHD!lT"LqZ1OtT&8щnjd`VUs]f/M,";5v"L|Rݽ[hjjkA{ ͌6ZEdl-oYAك-s#̯!ݫDUCA֬$-Zע>ցIȏ׶$;׫[% !YeG*2aYfRrG^ҭ#+ݼ91gңmZ~#Pvf̂,Lbpes8{gi=t1Ҧ=c|ӱYK "R0;";s#.J䍧$eڕ5޹(#ܑ<ȅ.kȲŧv HG']ytW ޥR9j[g3dXTmE)Y#Ej}!W%Ea3x+!BҏF(үv9]TZĪJrm6H|H.TJ`A9/$͜HMb\֪{w5fɎrڛ^HmHHlNi7>m̹+;<.O)!Ppf;ȏRջ[c=1w8WN`nHn=-*]^n}=fv7)HSlS5[ֳO+HZƖl:K5ma_z h?kf?cS,ɢp?҃ɦo"IK-[n}iH$7ճYөN%~Λ^aW(Ysټ<]mDZg$;ڴίKq9^ Uߑ]oLM/I);_+KWY(Wr]ؗ*NdYr.@d1m)|$.<: ^t @^"s~p6gcg&nܻ͇Sֶ?l7 [L bBOv:Ԉ5:ZSVw6[\ImuQ&8ŅI\pGi, 9+32"!L%8d uȽ=e+ik|Ð;Ds^7#icQɹw7(bZ>uH6n][# A<"30:kyS&H,/cW @pM :NFt̐F6RQ<"_:֍AlrIFsY3nn)#/.ݲucAZ~q~7~10ߊrq Ü9̚iM,wOz=47܊_E){cS qrb$])Hah:9{ERd*Ip=/PO4jG'o)5?mTd{R6H<8㛙v|󜈢xl7 lTĹ(5S)1_.HE統 ͭ:×'W08S U'{kv5%M~WXB-7r ds|nF4XK:ۍ|y5+1[pa}>O% W[{K+"zý^|1_wBП &cwWt$Vko$8eXl;^fiQ&OBo  jE?%\0" 7q;C1<^KTI$HP:Y|Gze0@H aF6<E ~܍ 'ߓ VO#$KiBJJ͌`ެ 7슙ig1%Zfj8?o]V7+ȷzrpGw=6Bw'uFqpANJ&ARֆ^B/#{&WE&EnIXrrNO]KC.Zk~l/NǴIAߚڗs;jwZΟx)gj1?{ӚԒ{<AlI_b -e~Gg\,/>S6vP[Y_~QËy-TV3pƮ@?gN#.tnWo!-P{OAh^0TNH} g X?-,JWM0MNQU6ne*ݲ>&hfQ0!W$-ZvG9rslLjp )zɉjhZmg^, | ҷj,4^~},d,yLEWKNYųeiV,^z(q]yq"L>@?#<=I>IǬ C1L 4LF}*c,{2#D3 Eǝ E6^ha:#,BZY=|9rˆ]~HsoI7%9_IM3hLM޿`,5Y~MmDOq}1.L(AYbmmhQ|mԚ[S@5>Gu P@VGv7><ZEW> ٫9[︚rSd]~1UGmUu:h4v˨z9nqYlJ/EKb%˪:xTMXprYnZ[/#T\'(u>LjoF3ioKC3L~ 1+D?W)3b{Ҷ~=}©x[8DE*Q·=uC_o/KAV;We=`60&$(LS*_ D`!ya)T7u-n>J>g׺Fz%wu”[IuQC2up^t`[nR شm$(Ե+_ܖi6[D!2/g/\#O a5 ALvv(rðS.oly qi-'A aֶpQ 3 9_wE~?O |Nu~ t#їymv7t  OuH'*1q J{ bU%-3j g nZP J!2!\'z L|v`lEy,QE)vS{d7s}zO 8 %_n',|8[wD(ϕ$~pQ!4A eo5ZOu ̿#yQ_jз$.Kg *^½`bI'+FξXy)L͈;:\]CCy]ٲȠ/=ԱSK|@~%f+35gIbZ؞\n/O☀bQ *|Og};˃֛omapoDM.߽6$%^N/9'7~ 6-ULgw2AdA ΀ ςJ W_ AEZ^Ơ=j@O" XT^S/~LOKʺ~{Zi{ZNϹ|#^;˽wss!Q3&(?Fݥi4wDA~R,Ug˥9R^RQUNFL\K4S \L:318 +VjHYmS`6uN8_,m;)pfzf2&?+dB\t'q!1RT0M|rsD%W_Ept9igmQXR@<3q0e+V]'YyIA,m7s+bƐc:Eo~3zgA ͼvhin{4HwPکb,R$eWǢӲ:o52JB:s%7(9@g~~X(:9<ܣsy z.щd[swoCOkOs%O'44'&P uXBv^+hCU77hzOj@௾n5ng~x|}j~= iA_Syt}J7ܳR~NSh0ICGqtWOiT3#u=Flml'wB$axsnOS0 ]ݒ#0tydHѩ0Hw̓S |yN'WV;>i-4+YS[X`,=\|r~f: -rb-$$Euz>0aU EpwZg,vkJ߁#擠?UWc]Oʵ3U;.`_>m륙8ޙNU+_,:s-$O`s {01= 75&/<&MݺgI ]x=:RQ |,kEN@]ϝϝ0ghS [O\\N'aO9_js|v.UAGV'(IdP$ 0ӈz1 噈t p,V鉖e4Wzb(M9'ŕD8QZcQM.@~cB>ni=k?Yyh7Ǎ2'.d;'-Nf?sW'+q!kNE'B"ġLV#!c.Kb#ۑմUrNR $Y'uSuY*䫡w#_$ f^DHj3B'AdRo/Bb.A"UCꃞb^?"]d*W:hmn8ݭ{|ͷ#1~mŲto@OO[{HurlճcP$ju䜛_T2cOyb --TuӞ #.3yPs|~@ q0f[ԲIpa)f]&ۊ("KyT=1&kmcӟ Z;@ 2 Ǽ$Ń k.W m뼱HUDQۏ%2Z`4,)uq mԞi;qrgZo8ne̐HE=z:JE4|2ոjrb4N y=D6ϹkS zA)Zly[q1iN%wLIMa1eܑWgM oF M֑E#JvL~dEJ%tmALm :SKc 7=7b:m97(ehR[)>Ϯɓf:Ġ*azI )~pҔ9b9LS>SrҵB ]-U\V u@EUSoS)}WLSV(`6UvemWDImrr}Js^/ͼ*դ'qz &Y9nMi7.)\2 ӥ,5͟Nk@sqH')Mꤌ02jzDF[&H^>R/7mIqY+[kvv>LYiLMi|I<߲wL@ۖSsiQ!j9Y߶Ils> d=ãԁ?=l7g~OA"=w3 ]q7Cw&rxꍯG>qՑˆ~$}^I/A?ޗVt\J?ůTg}w^6׃Y_;7 (06);_ qƒ4 9]:7c1z0 }n3b+StLM_ @ZrtF\ͻwDk&c-[X?S>˱vKcoM7ݩ!vU^༭$­B@WsfCfN;;i^i9vqpxiu^*Fn&L3^"ZG 3G,&:DI:ObegMZOôI*3!b1 .R:):!>|qT{F=V[[%仴76}w |V495ȓjIesݛM1=B[wyFZ.qY9Υl=)%~blvֹE^َ ^j\D'9d+^-q!akkǜ->gtUn ڋ6OmA4E4s|ʏ;K;2gujHq)~@LpTL&vm$)͸gwv,]x3[Vhk=MO@9Vю4!98*>5ηy*r ^%,xWyç {p:j19ڱ`WB+&;BHoR"Ɔ I .#ߥyja֒ܲX0]ʬG|^._x|6vz2S'e1C%qE=(`?)-d)H9( \:U?]Ia15w^_ۙPY{g캙K%0LWVɀOq#F d=>js^YYTåtrʫ sr|)vjvVj#:R:wx38E.4ն'e"rf gjwHZ]qp 9K⹤yݭd zcj(n1'qg|LR 9B vv!̞dxQ݊;~Sw9N% H[jfb?%S0>T;+aMR-YlI &vYH9w<-|{](ECI}U2z=q G?*wIE0{Í)]O$HN_mm:4M-\) N 8Kz w3Cvjw;;;ӘYēpZN5uۚ=xSK/y8UE&ꦗ}.UO39'˔rl4[J+T)rr9D4%/sv-z(CgKb2&Äq5.8eFm N2G)<D"n=[;5fV0E\cu.SISKb1N3Aڞ}b~nvnvwIoX*[x}?LxmU]h]\0S:$+|q$S!G}xF.i&}w1 &6If44~95=~z1I}|U$hԿ>_KsX$8hyhE}I/QI 6鯙GBD:s2#~ EcD1K.)%"Ri$WO %"(!ou݈ԄO*ªľ-R8CL+'=:ˀF%F2`lP-\Qw&./? 8.m" $-ъ[ DX3hRSWIG*0%Q$qpr#.{/VVBg>x 81Y;V lepXFYhēI''g?a˨ˌDLJOݦ#l5/C'i…X"8d3$7=C= ~]+CϜ!79ZfX0l;ϧ(+]Y@6ҚYJ7 yV]e#BUBӗw[Z; <@@Tȓ E' 0CAfz vΣh Tb McVdGҿ2UK,|eJד-JC9Q:dJj\kΧxeO6֬ݡI)`,C`LbX=煼b͉w)[{#;)s 6*DZ:,Qe2$Ϧ60F*Q ~!Bլ}N(P&GbY*|d#C*NK$z͔Zb3w|Rr(} bm `6DTSV2-!ո[Ӣǒϙq8 z^/W>s̮"x׋(FVTW5Ct LHGlOf&$HsWA;*;Ms= 4+is?R|- ]I>K̉u*vq) B, ӪK ]#d.S@ҴTvDaьίl5iI<l2 ̍̔RFU\L0cjVF%&|.3YqUBɬ=5/jm8.4H"sdS%@B2جuH1O,CCr/ʹtxO[xNtGD%<)U~t :EwVm5d,&guW:;Ӫ3I%%H+fг`a/}[KŒ9eu#۩7}Htr%6SKB::Y Nu.1DzrVqNt`ct_sy{'$(0waW$T!`v 5-Yл@a?XO l]cg[ tƁ̆Ǩ?dE"/s 0YP2痋(8/) h/h/0JShթۅpjh{\ɂSj֠PLse t|ٝ0q5x^U& aΨXVH)ѬN +JZl 3{tȟNI Niw#劝 WڹiұFR #W0E}Ffa+ST$Vfƪֹ1 o9## 39[2eCk@3dP*4@ްsGTm& LDq)'4nJU C< &P\ᵠ[%Cbq͊'\23 A؎ez^l:@ .F^4Y,=3ꝫm$G&2mHG[0ÇP$;3b^j rw{3ZY̗tA7АkEqz%ߝ? a{33kg! UkRkRlnGN07b7^+;\e2n8dyX. ꕙ.M5Aq5"pΥϔA*`)HҢ Ó.M鳔'G/W؛ ʊci{^7[.<:G|YJ2V=| zf krWFlRLo4 朐!t"uL݀ =r9%X^LB~D;8\`qRc`׏ݨ]hNΞ03]1S"/KfX2fCbR, Lͭ7Nx fucfJLN.N,^ A)DµɉB*XBZ |є'îF7N1\)EBXPO2w&WV]>NVj@ Iڄ>4If J05B&X%ٵao>nZܛdJmݭ:e)z&.sBPglP>SMZ.ae$kC 4L`H.g7=ކD, 3w^>5䫎HM0:;"ķ{1b?,^ oBm7^zil7ɋBƾjWzvlgjEyrMp낏S:俛oN'y:9ڞU# ^5fND~<(-_u:xʼnzq_8nRkKԏWʍ6ul3ߙcpȂc`-FjFO=nKzˎO'䐧Ɣ5SgR>_<HSHЄ?F'/"]cSXr ᪷/qjиvQd `jszEK% Oޞ:hPoUyy(7-~H-u,QIhF (u4a2u/nQXWz.["Cx+o5yP7v*(Rl<=<[LhxlWKiL^UN ?= *]jrbhCd؃C#v~_mtwQ#' =6Qy@۩J M%m/J :5Y=k^O|HS*"kWT5Bڷ-&kjH;% 햞C]Gfl|JG&`mT,'0 -V$S.등O ᬥԏ҉o^zد5LlIF}vx+.$mϤ &捞 Ч®H&aDUzԃOl&&89$TbL ,!`Dٚ{&w+K tώfѥ4Ʃ#8-DkDy$>T^-FQ:Ǚؽ wP"P4 ֍SE:z=i;&Л(7dݚԨ0 P*Tcq$A7Q5m(HV@hUu$zE3خ{qחm%'BKEh76s5єw8g¸|AzT2ڄ$L8> tnEbڴn!l} a۰W{u_,OsN( V_#xGO,8`=TO'ÑՙQpjoM[҂5>L>7͇j'2}cȶT?F k}H"u;!_(Gu=#k3w(usH8ƒFc$h_t^5|KTcSFBrsПsj+8n|yj`,ʼnA5Ĝp!SB^:;(vz~fc0ѵ48_@mF鿵K' ަ]՝f$^~"n &ly~t$a0to N#j0Cm :ch4ϥlOnCς+ o.V$TL1APCHmOv[r*yҳRtQ>u0gicOޙUӖ4)͋ M,zrm̱IT|36TAoaCծw$wP^t:ꭗLN'&:Qdnhtmmu^ AB !n Wp8^#r,MK87PNvwypЫ1ϷV%aX}Uw-,Vl`!Y XbI? j}z]$TE}SOwF-mn}]N?^4 򀢫O>@02Խ!Pp,ݤJnXɦ:ib D*|E^՗ wUZ0IS3O'jCCS4xǒJ^V2op|Ȕat%a42dʏ.Όfg4K9 fu732o sφk2ٹᬮ͚wV܆yQԊ}c6m%Z8 N:}|'̹rNfeb&aqzLQqьfH'Vӻc}nH iV9_mi6ߜ3~7?ZCz:RCN$wl:=EEd`;Cx*靄#>=QCzc&M`AEd{ѧZV &Q`&/Op:pPz<ֿ~$8Oj4d8?ztOMڵ`U! diK@R7Q1.Fy[n qRWHr~rTfgO~n$:uDz9 BC%; i@}uUWpHPQiE'[J}}`aXw@r7 #[1i4>6-Mt"j)hqԶT*KMD}kq;Vt"kһx*B8!9aGgehLI0|k/% >b,!B\իIɪ 5L9rKL' QMPNZfb51BR|02S hkfUfzvĨz]tќ《ΝWji<9=UkǛC,aU~ߝ^Xwl'8#Sg fMtZcp`LԪ87h{-&:,ƣ,e5~ytWt LiS33+R%UJxzɨ)+8{JEұi{ʤr;@h wrOEN$1ذ"8 :U}Ŵ ח| 3+i,iA#y77QWKO;;F` wɿ~{~x7YSNmxp\tf`"CǞaM1 :{벤8;;4f58Λ7&GD:,[5q#ƭݡI[Wqw6:c[AKkUw>鴠 "K~'7&=3wi-e,$т׽b1.h6oj-e\Fjaͺ; ~4kA3؍_;˰bdb:9?j5;G AN4A橩9~㙓\(풄>8;V43&azcliD6^춎!XӶ\+Zc(VOفk.-;ܓ `PѬ: NS;an͐-j9|v)tn<=mFc`D2fmRI?-N}t=Q Or28"Dm0`z8RedN GW:g8.P5AiU{@}Dw:: H8v.bnAOrv %wuc_ Vn#8Leig%4нg@|&WW1||:tgq4ƗGPp_cu^FM_ >)H! o;w4\hI^_&'7C,")LFBfZB,mᄳc!̌L&1.]HJ'՚Ӗb\,HT>Cb~aD4)@@`Rikg)Bܼ>?q$}3۳=c܌hp"ʏ;tRxs`y1m\k *xܪ~\xqm--1.$reNg_{!6ct.DǨw~ p jF~ ."y'm⻩_H骴bOsnG@U6k*VW1781o$ݩBxKc];&īrqsmɜ_l wBs G3OY˜agpN1җORp_O"3`KwP ͔u4LWP֖Xq.S̼NɋRH|s/ =, ͏x& $tkͥCtf uK({MS~ ҙkwA<|re VF SlN}$j9X$[c]>[[ ‚{k?Қ1BF=o -mb&\s)e܏u pP+Pq j|ґzZaWzW94fS3!~6ku ld;ߵ*޳7}ߩrEcf7"sLB݅ett=z(JNh=^s4KH2gd(%Kz~ޝބpLR"N=ce6>/ kGNj;/E c-D !W7jD.8{v ueyAKAZ2Fy[6&9=+tL;TDwPf@7w֖b,y{@IalI$7"都KQ{d5YhݤwוfI.M䈦kFR]8K?(ˈg['᳽f(3Q)m[*# K"`tzR^HD_2nG8γR).PS].SNծY%Dt47Q+{Qil`{K/V` Rülsƌb0U-oH3pO.kT۬)K*`В 2p^_["ZͳIīIwUMH`sxqr3%|O@ me`g(́|ݰV#yVϹnKr4fJOza[͟WJq,7sܨ޲*8cHCnn^>!mj3@"KK[Hײ2T7~5Gxzv \GrNenav;qT`}8Zbnv&ֻj'/Oϐ ZW,R`i}⮵-^p"8r؋uJy <vSJ<8檜v$uw>sPO"V"=ɑ.FN"le6\хr=xREUr jR0ĕڒۑhY ƽeB֏:oQ7ŭ9:p4׼~6W+bn hoG0DlѮtN0WN<ĐW뉃(끕QIŘq8f\(ٞDTX6j͏Ii8XW.zqkdQlhr{JKdcԪf*p"|ŒiIB8?cЋQԹbB^DJ'SSb QEg%Vxβf7n?cL~o A)zأ1;0Fvx8 ސ`v&Bz mpL Q7YSfܸ LL<-gC%sBkD}Y A5dXg2["%?xTr̒u"TsD(BE\ gvEVzgl. VDMp+0)Gs!a*?UsDT|ܕ=좌 )_i>JsD",+֖)xz+|' 0MbH08$V9n7dUL :œLRACzמN,烰a X~V١̰Ԭʿ}k I;洴a5/`I蒺<{|?`n3c.&N3Ώn<"4WJm!1mYc6i 791TyaoH+\OǟC@mo~MG!sYg$8tA ACue{wM$}G=8ca0T.k CQ+ T*.\N2$: h?+Yб J$haXCЙAte#`96am4{6iwzuc nȅnJB"jK#x$#Ѳ N){*ӓ JJ84 )r϶0E̿u`Y҇Gjfaɭk wZBM`V+Ky bcZTd\#+yb;UV&('9:Oqe2cr멒 M` `cՀ='<^ 1:47))Yw7AeڧwQ?˪ϭ3EH';P套gLE[ꁚʅdvzj.$QɕUT#H[ BP"+SYmU絡"d01zၱ#Kn$OHnYbrPd)Uƹ Ff1ms6 lcov{/<]/ ]za$ԏ4#-|E?A &#m:k@맟R$Pƍ zťn=Ĝh etlP9q"ePse|y!m]Ye*s-[ڜ+1$7!e`swhx {9>ޜYoK酾٢9pn^*2 ߤI1**7O_b{`h}r^K\3\IOUze9-,< , zX7$@;g}24}fz'SYwvh3.D,$8鑤9/ =\'F}D]ސzvX5|3ġ_smЍ &Q2}CLgoxr⾀s V0S}Xq.SSo hAı΁t|38$E^YJy8D5м3:ux]"{M#s\RCѮhP.H)X"?bV88dB hᄲ;nb+?#>\d`isQ' ޳1lֿԟםS]4"p}-HCY845l$d2cb䧁+,* |5ER"vdz&t3aʓrFAg=IFv=%YoFz;bXVUmPPEj2AHy Ȃ<" Y)WA^I7xG՘s7awĥ+yo^=t5q~տ gGL$F"&}tpx}pnKLQϮECI:|{p~yuu Ȅ^34z}zbtvsb-HJ`w4x  Sjަ\8y甽˼8uVJOx9(x1+p1I[r] ESw׾N^ . MX>XOԛ ~mITċ9]e8XMPQgi!kwbjZq2»]3QkN8!?`~G]Zb4ۜ~[pBɸǣ1LRBB](3xJp<뾻Qx UJLq*b8{_m tUQL˖ZŅQuQ2eÍ XCnxwM2$D,%ED#ɕy?Ft1gQT+hn"Q3'kl*XdJπ'' [FH[(-S9Q̔fr-K4eqt)l7=5vBveMEإ%u @| M4OsҧR쒽Nn8Ig٤zi,XUW"/px$7f.Ż-՟cR7rs~sG=9L5S2ij~&w̗4 _,ڝd_J3[(uXT^AФF6;Ľ8J66ΖRS73&X}\]ĩ8C`;yA[RjەiD6"t_7a^O?%|ذs*Nt_>6/>FN9 Z7\/Z-%.eS7~" CgYlHn&(0eeؒ.[tL!y{piaQǠݕw.DR&ba1 h{mvk=a1;$znWʌޜZļ@fFB~Te8Lh63ÙFuO_H)#_SƐ{M1nJ}pүJ: JT\r~|Q'5sb ;̦~^ͨgE{5C\ =%o%oBb믅RI?KW﷪UBys'a Y/ȌO11h#T&7:1{<5{6n#l{C6+[4c[!w]t[/jfŒȟjeIO2P8j(~Є*t%aGM&Lֽ}~R^ m?l½qQdt1i $ Cɼc 3cl(͸ Zzy N/kK[m,,ע 8Ѱܛ=.R 5kVLr7Q4|ݴw0 E.d~TcU&5ᛘ+tgj@,Lr@-ws@^HWDdaHlR#RLe >[g`.>*- B?5([5Ep𞼱 ʓ֚s;[AO;"q>ebNy w[_W ዗*@z4e;1ݟ&渝 e^WLV.Os:?ov[.x0#I8ouo8sshDw $;|kK)ͤgv{Tyy᪢B*溊_& u[qߧAU oŒ$F(8vTX͜[⟚C'^{-cQxppNdEn֜պS#Ze !\ዎ[gZȥTQxxSTWѽCo+8Q_1{\S}gZB%jIo(6ѱ~:yv= i1h2|x  hG,홽LbȣlI[Ku٬hf4/c9yS>_@g?Wd0u;FPU_@| GEtt8&X7mN OĈhJSְ767OAB .i@I*ڗab_JHk!音6IsUjg܌s,wfYroإ,\?X,v.5#{qrg R J|@Baؾ*rhQ;2DAF;C^DwD\Y\MOn@p|IJSio\QA C pJ8uK( λpFx>4$B:zvҜ֙!-Fej#V14Q(1.bomM鿻7]!)Mj!5&O&Z#$+)^ mz@Xz&W8K-e|/;Wdg-^@DH^F^L;]Z "Smuuq2g1 ̐I)kA x,jKqv\z ,Q, ~v!"b(]YqFfoOx;=UV:>cwbn՘Xs^i/{X0T4^q'4|䖘I`ӑJ.Y wYͻ?_Gj"ti:1-"Q! ڠ kK+hi|*bv/ `g%'l,|{prxp:Ó_}\]IABߗI=O.!4]$,Iʋ\xsxrqwtAA'(bU28 cx%#_9D}FT`g7Z[67Í C%հF?)aECU>A⽅?3 ^9|3K!ER2j<;oc%7>6.tnl03_IR:Xa2sdqm2n9qf-9C2]e҅2GfVXG|03d~ M^'(x]3ݮid #by-kNeMsf#* hp7! *u]j(oHCHmo;uQr{T0cť x6opܑ4VL>0`\_mkcRhcLrU0+*aL{ [抉%CGk0PM2 wXք\`p,u$ˬ/+PP'QUH)@=D}z!p4\b_yUIJ Ux_!Fd@x>NˇV .}׈@O0(ma{YV%2ZW -'3Ӊ1f" Z57(@-sy8 3yy"լգ I+Eh $bA-_fNZF3>2Iz0>TKv\dH^vEe`O LttX~'ᜦL"5Ї" eܹ ?09Ԙ.`3f PFyc5M ɵv!%NYGnaؿ;I~}p~;+[Q0ю"TT@Gg nq֞ M?bO~DzH$[1۰JțwrUbj/"i[&%z0m:kEC)IfIfL{~} }G/ Hpr+ٛ Nb៺L×3V|ph̥>M!!>a范GIWpsw`#2ϰ:-?誠^%YivKa"iU{640:2ù(/lYm"]e2'm&"=7ߌ)p3GU6t3aܠ$,; YHiGNxLV;;BG3 g(DH,pNZ3њ9рPPhcMբxBBj;Gcl,'[z >bQ'Gc&F7Ŝ2 -l`K/QlÎFUR ZטE H+O;̧ +JIUϵmPmM nHh *Gi'zJ7kWKxCuR]Y~eΧyS`>6r> J"$+yLA b2)I5j懭hT,_ղhUi>^trg \n=Y2xSՆ˥E , rL,{ktɻ-ⷩ!#RCQm #+ KE*\'Ar1x͘q6JRio潤+"7s]+rUq|K'=ǥXڡdqܦ ()oY?.^yf+[^-1pc"l bSOʪ*Wﵩ"nk.l\V"rߣͨ[kIЎ׹8çkIL>e0DZYs..ӂM8P.qO]|l<١3, \frkJhvj16/xu!:X{B\I8c.6*lt9&jf< &GM|5~#)O)I[Jig)#D2HTi s ?E._sU|fgE]A2;j sdZ2DBPnF]Ate TPr2 6t+U 1f_SLd܈SQ=9zyd_kF~N( xŅ?%) `$`lxƛXoBu&taO)/ "Q }N? b j)8p:&J!_.$se1c1;|~h;g_V*VZ⪫]:D{ʞ98b!.[߂Ž.V> 8h@rV` cV#9c-s,E䫹C%L%(?Rε#~ռ\qPA` nv|aJ3Ѐsـ&G|ʎr`bSv(=4lZ}а%kQ&nJjtΓNN.%6#63Vmg]$ᓞ+H1Ĝ |{9Iix!D:,q>ӻz lMaȈ89ꖳxRΉ\,㽹.L`RG{ΎxP?ζ`it<oδv2\[`qް0Ne*"ZN$Th |&;އ_wqNU94.`Bg^8MqSoNr,3q1Co ߬R+|q+ (Xw,ϳ By ^C*0=U|  b4eB@C#%!_T5Ioҙ l>X~*DHaEÞ)W xu~Kn*y^]]#%V*K3hдx62 W-Ʋg%TzCOEՁ~iL $yiދ<)qk0u[ 4] jBys1D}5̢=cɘtHvj) lX/z?[(x`.ΗY^&8MYΫjFt1' iP DljHC%CemBYUf}7o#M: "?ǥO& 'ShI.& ˫㽣Vٗɐ*3ryCYQml,;EȨAPZfÓl~la%7ɕQQ)C?(.k_WN{N@f..[տܻ4 +j,xLjW}b6ͽEp / /هmoR/?m3c5\3lZ[An[ɻZ+~8%ߙWl޻!zB Q;>{1XHIxPOEXSE;O1.S aHmo>&aQd}0FݸhU-91%/Wnߊ':CC EE%oՠFKʱ"%%M@ᦴU)uPSPZ礄\0z9"QYVJMbF'm֚C)LGaTݥ$z\kG/Աr.~]3?wRWE 1Ab0r^ AdDBOIMFdzgRGwim{o{+<[<`74ƖԐGBR'ҶZJv}wt"9a.6(' 4ϕ 5+? kK8L !7HVT`1]jCm  Ƀ]xBn&1q4Y͚yB' @]gY!%% |\Gn?6ҘxΫ76ɮ:]T=Ap@Vm/HKtqAf8 X `:HpBAE%c4M^ |8uRd{|n1;uĔsDds#gZs/MIECbR/Mv;9>pMH}(?\z-Xk d~7wZmڪE ~6D4$~:W/)@%P 1F#E_ Djҽ˨ RqǤO9zh(킷=cydD9e"b߾@!}!J ZI#I َ xWK3坽h ZI+'k jW#13%:o X)!7kKt'V0NXU@gpHa ^gIhMo)#%0FjzzďAf8)"'l7{|j5`tb=z󝎓$+t ?wQ4O{a:>7&A.l>b墆E=jjyeɐAJD Y\jvRB&t+ ȱdRz9|o#4ݜN}9)zb OR2g/f: Tp3|B7l >tΪZS:o)WY8]yAҙK>lX]HXwxTdžPjDܐU뷫J 1nfW:مoE֪Al{yyNf| `k*FCuH.VmI p*1GD Ņ_AG/J8#J&`*?Kd{Q|4)imھ7˼YoZq=ʇ2Fz:Emm oZ_8PGA a;I8j!=O\x"٠>|נ#k.!zBiH,.8DMKd<ܧnwNN?srIh U%[ysʙ x͈?Se붼 ͝2܃9df\!FyADtr5w#>ފF 5-5!WZ8MalH,yƽ6&^}o\f#x\釯g7 -OeSff Pe,,{ Uh3DÿBvE/M╔,j \3*sZ܈itw[a{5$i<9['>k4{SQS}RʼE |`ԏ{bIZ /ZSQ}%$Z\g.p CG9&vIz΃*pLx}DԶ7p:z{p.0H7 S@ƒ0KqEkͨ7F⥵#>L; _S(~0eJ^:D>aҿYg: !Kib>Ho Idp*14&Dj)A^Q?2:56$了PP$/^ϩMw:ȅJe6iMē MrU)^Xǀ( aج{@JQ9e9X1"ً&wZܙq&7e8%QuO{9i;^2oE 7JSApj@U͐gpǾtqg-pE:h3 NkҕCMrG!;=o\V~>VA4׸#b=%'H"e7=XM4%[_hy˝i?iP`i SN"炕TH }{,CD#zZ\ʡ?˯$\Ez0 M8vS1>,`U;8 Їhh;6"L3k D'k'Y':S-qSQņ*7mEl|TB]|~omH;{upuD\D'ه3 M}gpa+d_8I [yKo.ׅEaq-/Z2[b<{[|@~_TiK ,&)`<m2 3#C2%uĵ )P_ K8YK\u%u?3vڪR>5(%K,LrLI m~_\bnβM!?|u(v8ⅫLK4r1-zeM!F&-|u-} Ж&&r&Y:HleiHķ#wI7cU[t3G6OH^!};h4_H|_nל4l_ }`{7!GBG1i9M(6m:7[CGLޑ~uv@&$g>T+SAR^?ܳGZB7 dIh#kZ6D>T{OPXl VuP0#_A3o<V-d(?q|B;GD(bV$_RA|gQFȋ,JKN":RWi݊;r^vNkĔ̢IIxI20FNrSvisàؐRWkBK'+ Y+8NcQzm2Y%|g :9gW鈪w\6o\?et]U]]Ê' }NUYبz9[SkN {-+0zSi\γ7! c*MHz˃wf)Q/–SjW #r@jA޷frۛi櫋˃—K aq{\޹I<8>k]ڞFPj_L%S Ue1WiZ[̃dN GMd5/:B&Х =4rB)6]͞ I82Q|#O{apBKk_]!~r)4?z>S玟air++grRm㛓;Ju1R'(tx / ; #5NH M8kC3dfxC-F6FPbs.ϐy1ӿߔ`h5Ba %#^jT)*6P/GWB˻1o/0#%'JL~TJҐHતᆩ zs ^2I!?vh~'}1fS&nt 2™_N_^ޝDA/K0纫M\9*wn5a+}K4?G^ E^ slBj A^J[W V฀&X&S<ⴓh!/8x4 C).0 斅~6T$Q=85 T%WX\Rv,bmEWd+'kv_N6rd ,팇lU/!V_SƒH.ȶdZ.޼?<@Dx|Ï$7puňq;o.ǚ,6{AtK.kw}Oi?܁edlYl$Rs'A͘J#QxZ,.gw؜gT[$N]{G7pgqy SQۖD3]CztNf[[V< dA9Q6~l+ޠ=یߊm>i?~[ۛ{Vm[+ŲyPhi]keq+`_S/ hBzrK^TAQ)Gو.E| \;|i`R kxbg]Qt>!^3nJRT]wW!Œ+%a@RZ\3PPaE|`vcQ,7RB4ƵLTFH֭Z䤬bFQa0;בc5 +~Npihr}h-L:}l`&i z` Pk^-Ӏb5Vh. !6nܞzroyU0Mt)G?wer7u~9C/"8t|$}?5qx 9iwtU*q}o291,)A#eƶX@[< oL҃CINh/kOY uhjt3:@9Ȟ=Jl#)ƚ)Б GT.([=Y:5pL.W E ]n%3J+xie"% &TaC<;,'5>p\\f})IѹApǣaj1&R H&KN*Ii)J?`2Jv!`/!k%2KŬ?' 'Z] ,-|"DCDlnݼs'=-zd;d]&1\A-٥Qk;<>vP<*4A: l6d`!b’ZI[(+5,+2+S$S͗۸&b[͛ȼE2 ,%Zu9EzHJv#u[:LP`ԤlV.|c?8bmZ<~"ŅSȎ 餮S#7$qԟtpM5Qp.h"-Z8-SI v&.UP^x:$l}Ra!YI>qWlBsOK mNѵqˋ hO74<\hNtmkE*&ެXņ֓mpKƒ4KsQ><)>DVSϔp%H5g odEƹѝtxWLWZ)e :+>rd$M#&XM6 |ngQV|x> ?:{ɿ<8d3'T욿4,N~0m^5O/Dűw|ڮ;8sNQsVu̴I׵} cthsQ^찚^YY~-+~/F^jTtH$TnfS3@W2 +FHwj\24>+z^`' m m!n a.2WcEIme{]qϤ C{؊=yhmr дLT?ȓUH)ja *3k?IqI'{m*t!VT5{$FXL Ղv)QAQ /(Bu#@&I :f8Z31>'Ce}ak6Lc/n:/P~I܅7hi-L^| Lv iC;*pls3Kvr,BiN' 'seh-=XSo={jPAc m r; _rN ܂ Mr͋@L6 Jˑ=mZNLSNʞIB`3oOL=ڊ35-q6`_2K gwf.3t6f:v ӭ5WPAz -Q)mi=@]u{}yxtMpG-.vRh+Z+B+ W#|BRʢ+!d^O(v$.& X#, H44'5SXfDN4ha>1{u-$\ @HWQtJh3mm*XP##; НNY A4:%\yނ^چ&RJʞMHlCl JVBXm&mw;[ b6*oMߠ`3'q<VCj1Z[͍߃ 7mՆaG/1=8g/i*䒴`6c2Oj>:kw^Д!:7^($eu+Q&*m9uEZdR3ߜgDD$cdQj.=wP \QܵŴ0n>fB93 } 6 !&əϓu:GeλP$s4[U7J2BZ3KJ\n]&hSCW3nPUxWxiWe#_M&^Jj])2$s,#> yfm[*sDlKF`{g]p~yzLݽXx/xVXFyPbnbVߙ.нp,֓'IhPGIS31J4Fkm#ɖQ <[r|$ܵ~ɮzu>~7K'ܕ2,0*1 wm9Ē4A2c{*JD#~F &n(_܆D2՘h4 P:S, t`+RpBW?I7$e>̥ӤP7y;&%[|Yͭ'<8m u퍭+dAK6&ksY͉<\%7 ceOc&Cqj^>8>I|c؍ 6S:5w=zygk=pp6͈{p tlG-b0)gu@ Yޗ'{~|U(z;G>o Qҍof0MC>A;4j~Yxx%QR2" `kFv~ę|41J%c]·d_Cּӟ X Cף!CFRX SH Q"o=]y7W{$7I1D47wd&#".1l/J{=N<Ҿt",3Nʼni9EîB`I] @ 3gӬLTGQ$!>^,%LEsF=֞ApʧZN^UMAU۔[lt^fkd!rpg}R,Bʧ!9(BQp^j2("*c죅|ղ(l,oYc]":sHJ˨~!J#7?:b]9 bjޘn! D"+8f۷dvmawdCrYi]#x牾{]kS:s]Ŗ3Qb ~@Vo;jn<odF<J#u]k]ȎҔ٢cz 1mUX4ECٚd4Mc{eٓs@Sn{ҳHYhb>H$d&{ g%)C⪿y{7,kAdW&9M>Gcv]-%KډD{FĹ3R+BV{ðPFOJ}tv%lVM$cF n9U;jiL̊ v߷՛Jl{|@ 8A,Mo#6}|_B)LaX_4 Q8YӲ\Juzu`bEaÓ~'[w'6[ᦄM%bd A2KELs߲e;"HqD1+^4f#&JG}W8Y,;k[iיF%/Ϩ8u%NawH}hcr9S&evip2ߧi^[4!!# B Y_ swPD;L5_NgKAg/;:ի8㎋MÍ`E9q8r $-͓Њ`lLGcʝ;ѫG [}B<6pef_ 1gx#qQI?y=7(Uϛ4x}݌ uKs]VzQ{m]qss)U7F`=E[- VBysK[U9%oE]̧Ydz{`^.";+u#UgwPr n55dʢZՆdKմBW$`ĹEtEkftt )]0=*"9BHae[fjZP=$|D6mūIRļ޼9`lM4ɶ5 V^~`1Z pYe|YDh+*r!j0jr8ΚO~O'`tE!Uae P ?@)rUvܵ[YNhB;ȤCcKxoዽ> X*ܗ&v%INbeUw"'iJqhwu U ʞFc}lvf&]2@hk$ʰ& +g[eFױd&#X*!*tct[ 6CR Ǹϔ"UNM@df>Mj;RMsW3#ӯ ȗqC=^\@cC/'b뉦V ޵1E7.z," uvRtvFtц{pg]qM$0@N;Źi0k+ #H?vooocsz4oK]ݟ eI>$u DeDV=Ƅ9/XĘ5uxW;Җ•8nn2gWcr"BK[]V%dG$ ˅46<+-4H*՟b5$p)`2%ckhess8vB76LqCE[mM:z2n1BAyy" /[$6uoO @m%'93,K^;= \(m5q!=~uaiO܈dP6VP,uDiJI!t%uo3{Gi6\cx $8ffǐ)<uSCگ^S+9ؒϒM꯯]\F'Hο}TZ2s WTHZd Tk^%i;=AC$3bK|/T`Co֛lgE_i/ayBRdžv/D:F݊h_!Wn7utxmq-1T O*-5c'q2PHMuQp|I5iJ좆Va`!&c8.˪ L~azTb8m|h~!Xx*ZrB*D'*#ױ#+q838èTDRҒJEIZ(miG%-EB_}g=<8\?q ><LdN, B.o != (>X"L CkH@c4T1-[<-XoDcRKA}$Q(j3$v0<=*;] p&BAD`lx()b@B ܃Y08(&1 A !61Gnb"8!#4g.{5=uiv8l KcF)"y%` ቩ(&20_ڎV ^4}HY!^у+l{YMClT/*>oGȓw(?-NOGaqF ,:}q0C`vfyfc"9TS]f"G%tl*ѕf k{y8tUc*CCf&8 H"P&v$pSOaR1Mr ȷj q,8a-aV+eBF"`& 8\v@ ܿ+Ş.<ЁRB8JbDM*BH%o%db,Bߜ ]o聆k+d%taPBQBI ar@ QUZ7* q#*3Lit3 +8w8$depbehQ9  a"CbQdNdžO2KSztOaI = G/@1"jǀO8P A! K""L 3H2D  2ؔ z4OxEAF"%pA(:t5aYDa$ e9$XgB|sϛ#Li96P˃ƒfJD9AuJ}a.]1+ P OLS}C+]$pQ4q$"綦PQ3 P-JMD b6YP[4c iF b衇aĆaǿ3<|OPi3Dy;؎O"F Bl ,g"fY+Q ,Obsqg "M/+N9S ̀_r7r(}^ R+LUCk G)|q0^+mP uK m*Um;;.QP:=@9A)J`qJ@˂X7 8|68),=*" R4 NՅN,mGG(Ԉd;ȢÏ?ǁ9T>3!%(scWt:P. vx0p' 쪾!z;vbb0# icd1gbh݆i$|L2/>~ ?h pH[ S5JrH͎Au6ʠ1?h!4wX`!c 9X::x C d暁 ~ zLC DAo1 :&[\cC !pfˢn'>G.iQ{ !h@b1jǯ=n@O pEF/ᢅQ "bC!"U$J8V86:Z*aO E"W44)QQ=" qv G7ËDL74;"))|Tjb6޿Hm̢9zšTѭ-5IXahPb0h 2#UϢy 2gk!tDM#˦4hNpa ŭz܇iD A|\^GIx2> 8 R$#~3qu H!/,燇uZHA3dap( 9n!r~H‡$ ;C VQO2Mpc_GDDE!#us y* (P@1h-@"+g3r{ *2hN:X#ceQ8QCA |(QgSùD-n.MlqmTUtT,[x:6 RLMp Bk;aP\D:'QS\%45TXtH!`v,f08T#~tu!,MDCJN&%.r V: mOy# $c SD[64"F戲jebnej VlZ# >O- ]ܨ3%8qh*/_K $b=IACMH+ ȡPL AL<*Kcа;,6э+ !X0RN FL"͍&Ѩ|8O".3졽Nۚqm= ބ@s2 w\ObxgOîP|s%&-&Ao= <2fIHN>m11Be' :2'$f42? {t Y i@z;=9\=Y$ =x ظ0F /0 H׽`:p% ґދ<ڃMc!J?MK%`siqDGZ4Erb7sQG Ic!GDv%N&ЇxJKFHFv_?L B9( h t= H"qQ"QHD&E:As25VK$Qcaǐ@eч Wĸ4d$SH,an|{ J dn  `;!A"&*?E чǤ 6>ǀr]z_y 2 ˝ -QܗcPh0דٱL *hx ,K#AVf -BbI a7|ߓcih:@v~"ppKI ztD]{ 2 ٟ.gQkh{p'yT64NMOBTcdɍie}Js(ȪuCv:r' #cMN`Aj7 -T\r #D'IX: 4H L$|"J*g4b3iHZ*G™t1K]h/I|4`yѮc9Q4> 1=Ks8Kau$Y ::mJ'ԅqy`&`W.{Hӵ1z:1apL7M'^.l``F'R)X$bƐl&%Ç/A~1F7N%EBsRt1Wk}7%UF eO"~(A<\ hV!.$tEt8")\pcEPE}c&BK.d@Dĝg# @0"a!d:tGxj,;g%*H Gz La HE9P!Dpchh20Pd;\^J I/ 豅K $ [ L OGb&Ӱr.`!ɀ*.ߘFfgBF˄DO)),P4A.8]h‰9(GE$a +"1%E(=$Q3AᦱXdBkq̨rX F#mFE _:4:[aLKj"IP!'^*ņu4j5"Ut*y -l@)!"[ -"fH3B: Lj@h^#+ai@p=j[3jD@|Bb E)8l(PaIK`mEB=R[ ,p A{ Z;@d X^,m |fx$"4Ea D4xxpA5zys vA 291XDN`EID CK`!ZcG󥑑PcѠWi倥MqK;xi2\̠2)hj2(p)Q$G(]dPp9 FFP//t j,%@)=+$ ;`QS 'Xwc5 PbQFA aSE> U3!Fb &Ŏ03( f fP$k-%j ݀f@,Nx^+Uq(8yԢl&QHg N)jCA6?w%6hm<\]B8A B4=V ypA KjC*&%׀Y7ODahKAq>5"%8PH#S:"@exh.BUaA l""K4p 1+psuR}>ah 08".*ĹDڀ'B$d~$ ;JˆOʗ2NCnB[|9p:FI%~%HT,`b GTeÒQ`w(H -AYJ '8i 9 H΁0qhPc@\bOAd\OL%̴tS 'MŒ oE @F]r`2"ۈ@0b Nc\r䚢_,p6 )2C@kxaI`&8z1p$?d9.b܀8 QO7c'%Dҥ TC ݢ (R:z p0}@AZ3\R `t"ˁǥ*=*ZDpN >xz4jQ=J #&UW >&/m-οV< ; ) xfA eC*EDY<,BE*zQT\WlI ]ZAU\@2V+#BBX2 VC0a9(0jb0BP /X t;Hpu2\.Qԡ3 y%@KC-`%ۋcL hFc<<*<aeB gH] p׍Hٛ7/NGDMefϗ5seq+鵐>BRN£q+g VY2b%Mm>~;7i bn]Kʿ0cP+=Q%l3oW}dӆ_,~ΰsv||{ffG.[GNٝ9 Z7vkך߰+rNcV>fB?o] ~o͹\wsBƙ}uTWyD?YY罺XR6z٦PޑB]ό?RIgnzIK|ytjkǵn-KYdkp|-a>tl~i^nM*KzwDU26 Թ?릸8ݟSU1ﷳ~:KAGv^>13l֖a~f6&ϟһG&yɋ]jx^~3]ֻIs0/S܎ɩ]20&Zqo@᧯ N窗eAG5˷PvՖǸ}uۋ) }\YONJeO?=^N᜝mU7L!]_sxKb˙O:,3ӏLПxt٪TzǺ^V_&G 8 pwϥj۹reVb֞ 11A)CR/vjUo=֜]n9g*/8$3EZen;k>8n}vϱusQYm r?npp%=vώaɃ/8[7 Xfk㍏jO=Xm"x';똶S|A5jf6ưM5;.. \FwAEֵodyR[qm޴I7J!n*Y9sa+7 ^sB{8ٸ-3Oŵa[*[9Wg7뙴i ޞ_ة[%T)x?qj 7ͷg~g5Ef c/=aZGY//Okl'HϘ ,MJt?wzu(\\u䱏Y[3E^=P~aKܶg <%?:c;}22\ﳩTrue,fqғG5^?xPwD8mͤ΄3K2[|;ק>IX|->*$% ecGi5[T\Lwӝp%ޢVS8r,!a1Zk~~{,)rXr%Qzg {3ZBL[' JNv]^$zj2%BŶ;+mGSRne&UV7î(Kެ~;FQ6XJwҝ mkDnl jǹK:wlG_kdYsjl3d7{O|\~imyevqknWK\kW{g[G#temLS{ΒޙʮqIYKƮf,Zq]ԆOK[TozrOL{Bi%f̗ygk swﮜ٣ytKc^t gJ6<|F(OWT}NM9FS-2l%*ٷw?o|Qx{Wje#ӛ}*NkX}0^vozk?:MI[մvEBz@}A߽G(|Vcf/2[},+jr~[X(WJX{óAOu1}޼eRoDrd̟:][pkϕ}Ez}6J[jy|lg8q;~P{ꈎo#GֲuOw·ΒR0oj;ǬC1?ͧ־hH47*ܫ jMP| Av;-TUqUf7w|ҧ _ȯ3&li,Ǝ#iW ٸjI'Cj'<+wmTR+&;S|:ӝ_;|7W|w +L.5WNE_ܽ0'SOur'iCw^K2_gqgYf 2)w7QA;\39FN>?Bk6^Z4:ǜ _qy|L INmyK6زrtj„{>>w9CRw59ή$mҴe#Ȏ5M~Ƃ#1NsK$Lv?\ UI1_¹h9*ҍ'GhE6޹&%{ݣ&t~Mq󕠳nQMp#/ՏЗ)af|yXMkO-I]Ta|`+o tWFDNx&{N_y_v_ 6p9$ZW!AcFq7+ZRZaGJdtQs {;-͖D3֤w柜P~>5ҔS}U{dko^T }{A_'$n~VJ{:wK_xfPA\{QuZzG(RXH՘o_FzG TRW|v9;}:&6K~9Dqz΋ךYNO%>x]9cά}GI|I[m]dmƨ?S ObktZuc/-Rᔊù-_#b֪Us^1_VSEe:XsC\,Rw97YEΙg#\S0=嵪u'ӎ0"Ϝu<84qN_f)Ǵ+ʟOJc~GCyGNQc%b ?ԒѴՋlRևs]tU51}ijkH|zMԚk_o  ơvjʛMW]heZӟ_W~[Ե ) .*1_qiNvTMJS47.4W7$sK raZBfQX2]KOYQ߷ox|NuP9y;ŷi5t&P'驷|T:sժ0B.+AJmIa^{NҔd? GmocotxfUo% 􉓳;v1nY亥zSj|ڄd:[7UkJ7_طju_ ̏lyĨ>IvaK'>gv.2}I%j.w\ʟuZMWy?e~ffvхG+6bIy9U|C귱OzEoyoFGo*uN tzw/8o啓ɤn+&scW:ޜc`rOw9ny~fu5 k- 2L,Rۀ?v|ъyTŞg55fz FcjA!pΊ+Ve]STyjm3w/J= 0)zbjahѿ/fzI]}aߑ෼mK#VoșgO捬{uG<Zp`i\s~!?=?{4SeUݩ]-x+Զjj<9F9W5vz-2Z}Yb% 7{RΛ5C׺͙tDmW\+r4cy?EVNyݫvN5wC+:Qn:}tN)r*՗+[_VnZ>q]ybGZu8=#RY'MD_]C=,`KiMT?>E|ESqO:1gт7^\ii:ȭ6VriO3/~,!]CSbݧz5qVL>nHs度ϴf;Sqq-%LLEl}Yp9cڤM|pX-n@A޵ort0~lyz} ׹34m߲InA76)oRyAcR]w[ )T5UKҾub1GrC7]y_PS,wBn>Wewgv7*mk5|,5 u} WvN}љb.jpcēSF4(c%m~jO}$+w8n/!{l,Mnԛ E+Lk;qv>Y.l]}ɜgM_Z5I||Kps̬/]Ȓ!w|[_<[xzϧyrs6=zKܗodÝ;|qΕ!7kT:9du֊tJ3FI&*GV+ۺdLj}ljR=zԸ<&871؜Tt~N˲L #5mȉJ*2wɩu]mO˟̩<]!S]ؙjN25kݱ-BI"G_yR-qouB ]f Sas_VlQ=˦&?rmdyox1ͫӖ9i^'i|lMdMY?Yq9޼ϐ{$DTr<事ũTw*-Tf$N.sy%qaԨ>}3L?֩}sRn|,=6r?~jq[OMo@Vޕ+[S3Z۽XqoPGͱ"{]j^ϴv{H)7ɝn]ўuNZh'1リ;lsOiz,%}Wcki8WRzuՕ6Ume3ktr6.`Ha>+9y92:)zL>>gbXc*Hh-P[~hG&{>=eUb!5eAq? ^=*<՘yS}iK3vxdG8my|Im]AeܤVE͒tD)7{+;F͛`xʦW_).NI[iJ4ZLx9d4il u'wrݤRv>y鏒6c ʜY$s* |3o96O:g@_h8w~cb+n#M{~Ӊ {tL+}D?>_~p(WG껝y.ɿS~r!іa)#mk^I[͒'mab~į.M3j:KrTRu:h^`Ŏ~b}Ts.d3N}j=ƽo4<Y mEm5i~#OZ,*6!N= Cr^l0䞾ψBSzvOĖDI lݷ1p|Ap=V~|U~ٳQ?2:FJgYKܛ*3yb.mͫ%3?U]7QZq+?|9[qwmR.6*N9BamK\*R5LdpQDzQY{OX'tWf\;xfM|sn+Vu{dY4Bņv"٢sǡqG-oi܇Uoވ$;_=C&yGȻZms;q?b}>srz8{VCug79ymRGh]eB6qveXުQcu )O6:?kd΁ -'Tȟ]u0Mgl20P5cyD^O U/NV`7]6hۨ7NqkȼҸn'WS:*e wKnYs$=l̤se-~+uQwbd=7j.f+ tM{S|BܼL}\-tEdo,K7D?g&u|?ܪUN/v 1M'd#NBDƢ걗̘:5e 9]erOjr ?,䩥nK.h|˰0L.qF"9&wx<$τ_jC{܋E\=vaFUo벌cK(;q16:ۤ29uS—?ߟs6O[9|ŗ*\s߷)^4qEm?4^ۢfb39 O#M{7^~ai.;\fnt.Օyr[EDڑ˂=HO ߜ|V ޸j~[,2 f'-saV\ʂߢeoes4^QT9j钎:MSvXzϲ܎ֵZp*m`پw%l&Iសc_W3NUKuNG?Xn|D輎8RSjn\Ѧ̍[VnQ~Z~ݿpRyJ?-3W*N~픴1{uĎKS o:C[v‡*^/H8S/Q>EdS=&XVNH>esLۚSw&՝z`m{tpmM{YIAuZü?p̩˷ =ܷ~+Jns#G{.n2(>oerx_찳ٴ|˺54[mN|ֽfy {ڗnE~9I>w͗_~lrlӌZcR~c%_=bzYkcOyO%Kr O} mZг"Cj_o.~ܓq/_dH7:ú;A!Ũ`򩑏 iYo=Q:ess_)nnۨ7pos[u%[F +U]k4W:^zu彧(l&Z~xewC`^>ު]Vɥso6˹G΁坏tu:ݸLjʿ~)2ύpK+^~E2J K/,pռj_Ч#y[{Q"ϛy<V]/yT$lȼ+-VCX'ngkXInnUՕ_w6gCގM!:w}kC_VFd]mmYyg03zrh%LތTs*O*Xeʺ'==v܇>7ddzYxӽW`1吤F-+u7GLgNآufLVbk=Etݏ<0=k<җkAy}Y#R;\l&{_{+gz}Ti"|u~Դ7иs44O-%'4wB]w&>5ĔyFY|"e\fldЭzK]U]O𰼖e"p2ٓ|˘ϺWS4]ts'?nRfְW+qJpؖ'p J8KHzG:ޥ5y+yRk>7֝w5kT?pi(얻A8xRC?P?mF9כ=vV%0=;%1Zu{uёC#f|:GqdNWHyTJhӵK'+p(I֚yI?˷݌*,7d)S5Rv7F*$cWE|?jR.̸ɚ87ib3CoN, ک;~՝Сv㣓M)ש߯UI:7ZMw"'iwiru)UX$ڼh;4Vq{ a_˔&/пPW װ#T;o_}tsL[&X*K.;+۔ndp3tQS_k%d$bW_ZXfkcclcؘ5F ˭0Y:Q>>U=pDNkG0Ά#cR ²B_VAj,"ZAbt'Ey`}Md@!dX<M36cp7ឩ AzFC|u3ۼ=Kr&C53MQMyҔXM=bXyùJCx "^ָvKxXfs;vZ𨂇UĹ@Ln|Hj0u׺A']ٷ^ڌOۦ;F)Ŋfe.^+JP2eɆuzt}OXmCEQ5rS5q_MoD XV,#`YЙ| _,u3LG/ >UN |ܖ);uB#WUF!a''&VhtwMrǣ`veh}z7Խ];LX`d6E7nܣxZ7=m r0ئ[{utޔM%A/apg68 UBE<ћf;#+NeWg?Kk (yx>D$ӛZfg;g)lt֒ zf+Vcqbe -'׳NC4XmSr=`+x=lM+&ӼO*^aL R&]>RJ!nᣏ(8^Y?r[Qµ("5hew:IKaxЇ0pW$斑Ri#5 D%cRt}a-ipsE鑑un.Ƞ7pf%{e';{#>ԯ1e>?,~wV" Z YJkd+˙OC+gfq<> f J EjUlig֜=Ev`aHd\3lEX_:]e[Vi"i;ݛ3 1!No0z *!#'ß4kyV]e⎻4" 0?f(=8ΟaVk oP>XL\ώ$C  cW r?3weJ"G7]@-3S| \ ({J%uQ0E*~|ΤEw@W3@k*/&r1[ӯG8%) "ȵup?=gY8p6ѧN]ۙf1=˨x@_dZ浠QȠ6WMX|k@ P{@/2!B\lbtE9তQ9=+(b i8F"b2 m?Ҍ Xo8Oqᶹ͂ !߮g z/ϕ?7ajEq44vtdjRuݯcW=;FbB5qط,&m>Isǡ]YsvFƳύ6pU/斏I滂_)< -8jmѮޛD/Ê+ QFxE IE`ڜCVQq:^ZSe{<kb 7odo{J:z)I=?ϹxԾI1]yG/ YlZTjCt"uvkBKM wK~PdS[~-H ˗ɘ fe? :\ZG7R% 8Q$ϙ]R ZHq+n0=HӴkNFzl3 Gp P8[?a{^oXL^aJ;M&?{ ' ÝGǫhu3Ѓ76|j(/*/k./ti=>e"@ďT3[#I5/ wXQazް'#͘4xPz3' hJ x|9nGpfDloi)A-8]\l}whTNXR?i=7wxRXXd2`yZKk3M[t);O8s$TKBwQ8~e 2>NS!E Q\ *mK{D*^C7z跒+@V-iW& ?YEJ B3U#F3GFT|ü*]uՏ4-Oϗ߷XgrҬ ?} t94Hh|'m-]Lgr1%qmMߛa9=~8.w]sS?U帬w-$xAwsDqŎ:eݧC lDHWDva۰`ǁeRw7mxsne`Z,.Yx譇PvoыTB6 jupʓ66˵]gBXj(fL:J$RwHFD,<L:vQZɼzGո;AQGLV~ &3F뮌*1h7ȁz-28ڼYvK9U~Snӗ,2{k#ln}Cwen.ڦG bBCb: kfPmSBJ\Cę` e\CxQD2,Ch.QTxod0 }E- 0SB ^Ӎp;{m9 '*kʲSpPңULpBEM!. Ү0aT}|[G8O) _Ǘr|}6WOOJ8I7eKUظ<;.eCk+01o^ Hۘ2"v̴GEz(0LF4

ts_MꐙCcMkL"PH[H=]е_o^[ڷ ;Xb>;q9/zSk&G,MכCn( M3pH^kd gbO,,Yu̓eh+YU4fsS`ij#k0;oNO>BJ7Ie[b8%@gk6 aCʌe)t@ [aߐ0{{z!#Y> l$S% 9=訠LN k>镻@4yzVP杒WqHD87+oGAHjHXIZxCduJZ݅}tj+ b,]# ~Y0 c]cvs&~F]{$` ^ Qh<'v/^ͻ"=Lc̐2$U. =̜/6|;~H!FA0I38SfqSAg𚠂>?C&ȍ s(si5 /rV]ɌyUIM`ٿO_w?fJ}Hy}@yXa黝h!q!ڞcВoN}rz]']Bd"6΅:5$㬊W3TWilgT4z19YJɺBS*S%t_8 h =W8=vL{ElaU>m! m?&DX+PJÌ&qohKbS$y\KoGA%ogل >h*k!24oDDEפvuo܈k}WíY Bןwb;]%5H愔]"d Ff@OI&ٻR3$(M\~2;<JdZʋ-Fz|MD>=>1( M񡒄Ƥ{TUO45!sQӻUXjAsҵ&Fg,xqW=W6?*@cYw!\ ̴y[\.(zf !вѡqέ[8٘u&Td- 7*it3 :"PgXFPy-rM_r 2J _x;26oD. 47d_ͽaj$0c(z\V#z?Us׌ T!iJ|schA3\z48ס,HeE߃2*&=Ei0ʙ`CMҠAPJs mGnx@. tǥ?C?gQy(}/lWAz I %m r4wk/2\!iQPk]P5u^^NxM̑LR/yJTϻG#;\x9~Q+9~e>^@:vv40 Hhăe<PWtHajBuH,|$/=,;k wN{3ZQ;HӈrRqE=mѷ~ua'R )lXf@-!1cl<>,+aD:bN2 zJzoƅ(O>}xϫmp:Qjxl&@B9>9x~{+wC/!s jnԝ3_DAm" 0QSs0f_,`~HAxVi2II$Mw m\CdE| [cK (3ݳO,k_ 5ut F%٭D _ ӷp)L.9XVf;:E5z&(pVod#,P+]㠪jDHܽvXlȵlw* w ˈעo'fB:v?5CkWuh7T ҄3%.szbܡR ya QP2sأX.Gh S/ VXrHєP1t Fp9)_ ĪuhR"Rqo $O)/\x`; bͮT*tNHAJ3XInOGd-h%LI2 , f O!h0'_'ڬ^ V|ztTX%lmATP[nhV3ҷ#J(Pn Te8_6I)Lsf`vʬA-Q@ݿyD aAB8 žYՓ$(aۉ&^YOdWR#`d`c1+; k)gwkHYdblbDFYҔ; `wm—X܂eRPÀ܀Hp 9H`fJ OM2 U ^";D6,eN3e\Xfʛf ^#mnO. ECT Q,Buh#BP$!Cˍe-VZ3q>G@po AY ?1TLeĘ.2==Z0X"}돼T2rFs| iOT{Ʃ\AGpw)duw󾿍R_#K5DY|:Nyq!l3h %s0b'hu$crhh?s5\Sm j !_5;Wq`ÐsR;M{\6I=^Tș5x2ym_U 6=AY?69W5KF䃓P-\z22iN! zq{]p .d/t*I^٣p4qb3koғH Hov: հ$Pʼ?׊mND 3ot8x@1/6 8OQmE(,!x1r.KtpP + fT" ,̋c@Qb%/ȓ%\hv@[`':v&0 -^7*I_nk$+10ğd¯ǻDȒ70hH7N4#D'DLX3W-5$B"%UN' ?DZ%.ZOo֨3u"0+l="U:ajR}'{90_{ɀdS'K~(f0jnƓ+:DƓWdžI®aJ܅^df(R+ ߚ-%M bHKi|:0Yb`;ҍWCx|3V;43.Ssg K2?i"(ݪtR$ ~nyz~c s׍ťmmk Gi[ ֵ"P}lz)~;DWmyB W @)jj 6qSk<mr00scab}xFq4!$QYOݥ!ҝY E !1F2W)M?5Guc g{@~!QM1cL}إ: `[DsGڐRpM5/}!ᢹU<&]\W8Ftuޭg.ŁLm}),Χ%8" ӳ1gOߦ#|' Lb BN e-k9r|Xh te`2Vވ}oCȘatY䌈}OGfNg-trV dK\`a yXV24.`;MepC;PW~O߾Բ@";v;J8UR\ږKݞ!`,(lҤb?/,MAGu7a1&I8AU\Yp,x4o!He^U9oddӊt.5@S\Xl8Y3Y5zK?v=[=S{G"~t+% 9=s[duUְyuc=Pvro#y,ݳqug]" RH\7qFY0`LE6g1!z,SMƉ堔} nd&$4Q DU Bp>+y_į/˅D8ʮ"GRK E+{Ow|W3/)ZOzj$.+n&G d~>kQW.;kTASsƚ ĸK`yS[~fn_De=uѬ Y1u*@ċh$9R?v0VȦ \wgc@?Bk?s4 ֩vaXdQ>C$9uBb0_T^hFHƹ\YP6h$BU~ Nsx'.9P8ʑh <DV YDU ]8Ke WG"4-;5N .NR, ;46@)gpH}_'VV&2,[u>}W#pK˟VΦ9$~ܴH2 I-ɷVDЌXNي{YFr7>eXϮ>4O! ^em#La=j<: 6R~N|C5Vy؇3\.LMe&l5iMml{*@)sr묖dV`}EluAe y?"? ,[%H@@cW5쎿!դBx=o̸[)nDZ!GSq)*m0 J@"y<T|"9anU%X+xޠ23ڗD_S:a)Rj*5O5mq|ѭRgiCQLӁqӦ`bl;@I*>sXu5y賵N ëL}DVXV(.JKj;ݖTPnRJI'|v ,ƥ$1IU$]WaYE_tphJ6ӫ5&P CwTnȜma&3gnsiQ2ԟ+ JYN_]7W j{cCţqKsŊſ-NkGhCٙ!2"%lZ XZb!m)Z'|_=FftuD1Ƭlc-ppYu,B\%;In,?F/!MڿԞoX+x(yv!Tաp&GJpyMYP/2#-E4GTb s}k7J-8)^}f{ r*+x91yB@~(H#Htfvouc^Z+?G.bt{[c`J +Q&á<D\@0:#fGhF;aԊcJ(%JSsS.xS{ɵ3#D6C\uzf)sЕ0d}mq$p*Eպ<Ԇupx(c,kK[R5P.PB8A-)ם)29"({ETW'$…[2"'tcnmnx"U@vt(r&AS07-lL 2(ij֘ʫ/9xl|zώ#߮?#+ϟ=Ætt+q0r9vZ*!iq4_j+7aps)s.c&}L9"Vr,hZA|d"gcU 똛A%E"A='vS~]NB7>3в0,Uэt : ^]8GSE)$e[5^vRLup3)b EPnf!Ύn\~Äpa;nVq]>G7J1=j\u<:G _σzI[^ }ti.n>i_4rM 'vG\Wn}l4@SkiI  TBB b®8\t@`|'{YnyDC*<. 8\Qrk@eң2-zY_'BG!b)!R3Ȓ9 nXQj@ܱT5h]}\5'+Veţ1o}3m-ihA5i'}ݺ!+`f+gE <".o9ЬcŇ=-[0vMZ3mB!r2G ;"jWpKq'ąb MQ y~+iI9 e# T \z}2h@K<^Ï; `sr'2 YCQI_/%ByHx줪$Yu2! ;AS`I["NY|oTsy,%$nA+ ݇C&4j>4~IX9`YTޑ jۃF$xtġ~tq (зFopWYZc-͹&H){ׄ(/ב02UUq\g_b1lw&yYJݸDLjeYv<޲Jѡ&8?$?Ҋ7 6PMDd<5S_T$ 3B*Bы`˒Z,c6va5gP僷[z fo9`#{/P?d4*}^R'7kp=I2VõP3' 0` sT|&L(n ?ÃZ|*]v~%"$C As?^y'C=w:[Zr~?e]vŠ>K_!0_jK,ApiA 2ZI7pA?Qe`9 wmWh~}ذ5:>|d{+VT{*xG P9Yˡ_Ŋ ~9/ԍ1?O}o e|5H6d(O|!kGlp2AI(YCPtuM(p.\TBAmoFQ!Km,Z>Jp"#TȘGLM3!j0گmhH] 9"un@QEizI7㎪lXW{[C=)Ka~|ywGZ2Cyþ\t䮠|']֭ĥ/,9"rUazL:es&͍SO)K/? X~I[/|lzִa< >.w6:=ӔՇres*m] {H<߃6vv> u, 3CW[vMxqift>֊ U+|~zHt%Ggec0lb4m ˫^%_ Fдnx+H}c9)J\nxڬMd^kt5Y DdQSjq~V?[\Qt7+H$8JSVG>H[{uH ErئQf6-蛣Op:,c]-aEM?Rd-%SR 5fa4A2_V p4婊iU sF( -S.W* R.,IυI KaDϠ)aَ[CJbPE:BT &R_)v(Ϋ #$KC5Ȳ!4 oۦlT6)' E-؆0'1-I56iE=0}tݓ TNFe/|K.!t{1dqssvqQ@6dZUaP*f83uTrOq#9\FcotZnOqS_{zFoXLfQѲrT`,ǡF9,lQexNóQR!=bzDI̦ʥE!Ğ!.%1f;89|aِ쁔SO?bU_?[y_nO}?* p7r WaJn.1Q(RS<˜#92!mOK|.6 ddy>UP5C:IbwTsnړF%M UjH= $e1u d^ƌ6^ 5P9eJgqX ".D:]ek4^i15O]&D2_Mإ`Z=}5WœY{ͿWdktIBb4҅}ao0}gh^*=Ak4PRy -)̮pj:(@Kak=L*b=}`GtOxy;;i(zMyu08RdOlތt+t0 vy(7u+5!痪O`c[Zvm^c LXp$Qϭ*0Vʨ"1:D^'@/Y $S={݈A,#ώ!?rY%{b(`11B,Ӟ՝y [N.q!k)*I\RI 6#Ud ׈R? U8/So?jRp/7ʚj& 0WK?ۋ+*V^{v΢IS֙sF6јg)ua| u, -VB-K6V; tEĸHe6uFKfEel YzјS%}A"+Mɕ%cS,W'MD6|0@Ci~XexեrhIHuC'E1:|/_<vא:Ti @K2`ֵiD88WZ#ol@ [gT<=ڳ7/fnR|q"Ej<7Xj=HF_l|i$0&wyHfUEU| Ijv+EAPKL' TϘ\k孺&zWZmCOv[GaaiSEcC/ϪbD:G]-V +k*j}qrժf}1WG'w7~{*}ͭoD!5 _~HgDjeQq?Gz*j#&Gf0&Illl E'9ى={2`%FНsf$Mѡ"a6%÷lcG&}N?zESv±_ίogԩʺfnj{ @ GbAwOh~2X4z 7zJ*E0X4aq+ZzRu\F*/ܯv¿*,E'_;w]kgS g[y&RxfwF^SG {:' #<^ 0O3刉 aBR~LI%1coN~+:p̜s"E݆X)9-&v3 (a. n]O2w^~MK*G)K_N eH( DFXÁƳ{[Ȓ<` /]~a2,hSKf$z<Ɉ6lYHR9e$n3ֺL"Ի_*fTüflUluDg;T̓Nǡ"t=K~ Y>a,ѱIlҕd^z\&I:|E_t`Q^@6d%x}I]ɆȓءӎA D|C>n@}m1Dx}Gxd~;s'ȆIbM:/!>րhc&N3Mj0;ngOq*h2{t?uGGbR1R]PVS Scgq5b/R旭W-aIխZxaWϨfoZƪאK{v *3Ǿe 2I|4|4ML!hzWL E+!!Ɖs#B3}ۺ:I:1a)%ŀ1.1#+H r@RҷX]*zQr%Ŝg~e"H-/Xt`D!^ n*aj'7[$7ToЄL@Ea&\7!b3]#Ƚ F,9VKkึXCߗ@%#(~Ia70Mve7C&vI6Wb!f^Ϊnt۝`FraB Q:dWUn|;2ȭpo%h5=Lo޺*Ȕ/Dp#l!72GZV+2`z@LaWqawP2{A`;WWnw7g70P xy{`].Rhyx sAIZ٬OG?{JWE#!I(1ML4 Nn A*~|gnWo9}N1Ў4 @"}p*ǂCgŜYx"w1IJ3[9czPdeXEz(j09/. &.]3yC~TA@)/iKE=`1FT%"p CrV`P? ρ17 W?(bZm 0$ֵ;&?or w?81n897꽿*7tr>iY;0Y\ْ˦頻lP+?Xf_(tá, ʥ.ek7˶.M{uʃ0d@5z'tx~Z_A[*+Du( VI:ulyFiOʢ$i€0k"JjTD3m':Tᭀے6:j*=JQO ߂ȖJ1d] &;za)8hٖDhLiPz 8>) oA4x@މ(./yDOjz vTɽ>/g i! O[OKMR-lnrkb %A58wy# !_kE@fπXĒ!'k.GErY$PO5xk!&QGw]C_ N}}0N}DB-SuT yM`ƐC)Nw}jI9`8)!1nƋjPMf!zԪ Y3˟xeKW fbD_Gⳉ`كR"5kťov;Q#݄8d5Nd=1Q:%4@_< 3oC̊fsƤ%5q8jqDVDvHdޛ6Axe"NE_6JZwKבrūVIqbK?3kԜӅp圥[Q0Tك/ jyS"PHӕ#lh$[G\Sct$_ha b;xe^'[Lh15!z, ZJO@|X6*ܐ4ʤ=DN$C&e'Sy_@whCw!R@d*ƬgQuYgtUQc-ap -Rf!NUTaOz$0goqyCjTwX(([w"773IpM"$fS:b$# }NwAfƍ|-ᡣx\vAv&Jo(40{̙㼤 ,+δ.$?JUe^s.5Cr"lJypfpF"%5MuV&xUAKM=#Idj< />=DjxԞ 6 v҄}xsZ"e=?cxj/aj6;`[|U,Ԡ`_Ȍ=}[Am $} }ͥ"F)RKu g1T%_Rn:EO{NoMd87dB/)s+3#i-뀮$чSoZW-¥#T艊ѱɯ뗢9(rK#rOQv  ^Z:HUIdhD$"ۿ1ͶY=2&ȄK9%7ȝ_{]P=OP\ '”T ?].s$&8 XKsd2 ҰC^ QPg!VQMuZսybKF $-&W4N a6fxAYIlh:M{8,xNyI/E"rWг„GKc&%{FbLI>Ŕ.ٶYBBbNz'A0" ?Q6Moňzt&q =@Ӑj!rÐ6S Kowk0`эؚPCvbwvd](}a$a^F2bEw}-}ͽ%×}==k&5O%&\]x-YF+0z )$;T7pk>R2bGuN .,ý4,d~:PZ/"NbR-˶ePKn::ۺ'\ِ<ː CAA;K ∈u~Y xˬ(B~N+G\t,0ƫAKe&B&=zbňڭ#<%v*2KI!($> fI'1gNōǵxf~0IjxȣfHu<R:̨0nl ٮ'[)adRk:KGfUў >C yh4G#[8ieV|\dc]dUK?%Z' (n0Kj:*X /0fXNOuR  nZygc\(D58MH^!IS>C)D*(an%9ͥ ݐ>Y4ݠIÛhCe#Hm5> }34}'iHʳ{I")ؼ(b .< l5 فaAn!7o/  7 U='ݖXo?=݀\>I?VWo崙ӥ'7"y9-@`B}褥Ti>{>z7wcqluyVIBP9вGokK~ [2f \{2̪|" 8HL/xc͙lєK%OR֒1 ˁH&W2?\:y XAq"PG&;BApYB1X"J:p |&zZr%(Hhq^4;:fc74$(xVnכ `c H}d;|A4f@/-B֖Bwrn[ޣ ` aW+Z]39P%8e6qI/01Bkx,7Mki_t$bo]>t%wT*3)9Li/n),E]zNW!򓶤!=6mq/Hc5Zqs^Sl x q!ivD0(3뛮f2]dPbSzO=Fa&KNHR]nC}Ax/؇hhq7o#dGQk4~7}K2@SӒ0v!Y*S'%[hzb17^4k0]x9^ c" 3(G!*3OnkۗS d" 8\~޼w&A5^ۙ-t^oMO; .2ӂ@[+tbj+7PQ\)']oozF1D)W(^哝OyTft[iƪG2IOaW?=v'={Ce7g0j}(fm|AG*ja6̠ypg7&<ǰib)O,9wS)J 9^6WFdXV-bvmBùKP$1*K?/Z A3@颞J7Fv#5 ñ\+]##aMdP-*I~C]+aK&##aN'B좢M}~pTk 'ȳy^Q#l<{+U@Z 5HU5mdl9ЕzRdf?ks"3`.}%vJf۬cSHr5;w}zɩNUے)IgX}_ef]2AQS{6qpN/NM+y+~_ MlW`x7!< !2s|42Y2{4'x]/3 ^;FPSCF5|`^ ˍ'B/e*_!W+Fzz>TRRʒNﭜ`B~G(8O/kVA50gxp^2,ͷ, _ߋo݂С4sN}iTyЌ\ne]Iy"j &^ጋW$巍b&$gƩht\Όq?p)Z~vz^BH~[r"4[:hۃ1e>!q28?*;`އf>D?6*Er >H{-1lƚ[Ci9QY 1QpٮOp3LZs [˘ѫ 78hZrh:uy?)#b6.6 8?=}9h9!8!:@TNowS]v!VSM;kbLv=utL Z*GhoǸ![7iF@:pS=rIvq96?rVGtQ%A:~lo/%C.00%H[BKwUoAMtgqn{*ӪTQ.SWܾpۈ/!~ww _;z{-!̭ lSzmO_Z{{!oNР丩9o&:%q6љY:<~M윽%><1GbOE%Ov%+/;NYm櫓p hWv0vv rKyjٺy7ޯI>lB=J?Qَϕ߱VS7@8/C"NRK| Jm"mX)c$tV8<שA:y9AJj.!a26D8K 0r23Q(k) BkC1N渞nN@Ùa!E1Do\{CƑsHN҃1k KjPዪP+94lI{xzD30D= CJ쏕tT%raCWɪ.S5k&I] XWYUy1Џ./fHM7\F5Uu`9`&G3-mY|;R/@-kWoE]3xT/lsoAgF%!7'gs68[k=~# >:'YWca!)C} 3Hz<›\v&D$1FBXqo+UǺ-GOȻ[iq.nW:$ Xu;nn_|ɿ =3ޙįyIS#gTΜJ aYa'rj-3%F0īFcspG[kx 0z! 꽡$Q۩؛Zɯk஁xH^7OKe:ulxNe%VHoSV0s"Pqj_&Tpٌj` PHkt6)$K㒮5A+ }[[hww$DU:wݧ癟c n |vy<]qFhgjQ<&^rw`e:w5/!Sл﴿,9SQx[ŅG;8w\D@~zvN7@<8qR?5֦Chi-G=Tˎ ոgԤoIDDm*ؠ(ݠ9!7ɹt2[E:'P~ R;`h2 [K*R+TsÛenpҵ0֧A zaQqqC"Q6OȣXNzvG~id[$Z}vĬD(2]7!PH'#96{IE&nHfH3՘s\^=BNWE7@¦t0"F28wꫮ,%r~RyQ0-'6P8F*50 5n4-Dt~.ZJ.ZT!#~I@b6_}cDcA5܌}NIC@@xC$Fk\-NU|͆-[׍"6E?;7Wi?Zi'NɜE6Ӕ\ǯ ׬6.era ny>iӋΜBQ`Rw4BZcT'r\)W/a׈k=_C#ԅ5{h݋mwBȇe z{\5iQJq#ߌ)s2=%ւ@NōTU~&V]%I8BpYMԵH3S8ij6u^TBb!MGUU]MӤrN͹Jm۶m۶mNNl۶m }y?U]ڭ9icB]5>/eK@41U$Ho9B"rٷRԨɂ!".6`Ǎ_P 7E&١^mR3:gR::襁X"UƺX3ăerDҽ`T&֭.Xɍ^?>t2p2K) a/$ahw݃v N&KYt[p>h1y /9q$'7b6k)dI0pK~:gw@Bm^/*rTALӛ?3Iܨq02{=Pg% !O<4ràwrf`]Whr"]4ra~cjal&Ʋ"C ]ӽՅQ?cz}#T WpWEvp,糧㖬񞁓li'ͫ@9Iv"6#bƦQ8CN>K~uڇJ^˾߆7VF0:.$ckՕF7U[KuYQ%*΃|'+V1#+Pv* (ؗZ͹a55:8$;yzsHt*u9Vx).xċ O!^ܣ;0TQϚW&+UXIגdQmi}]x ?ͧMV=j[mD,ZQZ2,9, fơSKm/faE>$ Zzpwy]X6-&[9^.i F c'/`{`mmBc(: j t&&$D(mܴKԻ:"FPpy$=DRs`!HKED^15W6tm_;XSC75l}'!x6*5!;Bd<ЫF =Bt*N'浇 OV/u8L"NdbO-¹;CµxrۡHfl 5i'O[I<:N}\gDH xLy&dimg>KVZ[ y(&a՟c >9%oq@5hIA̯B[kL#VE͡?*V"K{Ra0"V&y,5IiX%Sj3:z+ 1m'[]{.~,4MUF]͘-hzTjK6G[￀n"T D+TW𝞁h{  yخ[-Ul8Ro Y-/at/^|?JjuZW*Yz2됿wҬBzkKn:[9y䲗qx_ը#.$[$1̨WJuODV(8S sIEDj׍|vۨzMj{ 0>itb嘈ѯfw0]z{GSLֈ@^5Aڲm9kTN؈p>S[|hֺ& 5czf6$ka f%S׮AWH:M Ik'lhcΨ}opN3 &L2 (助Vv$w;j VǗ|?g:q?C:_\ggי\=_mwRz0ƺݓ45'DLd LpD~pPAW4F]k/dk  J4v%]&pdIY35,Qu*hw_{Ո떆s\Klsc!w?vOu> Wx1nΜ&1Or Z{kMȮb҄IHHkմun#NuE=VSO>s+5ҳ/>%{n1L>$o_GdK%FD ճąM.X/g0ْБ ĠrG&īZ*μ(āt*t" EO,M?8rwimH@pi(WQCc| -#h9p#ipo^o̚ڋ"zӟ Y7C7CXG:`GGY$Op/+s 0I'͛T$B M{~ӗkb(3# /^b@}rA3a(8nab$mgFGM:Mif Nd`OG)426 5 KB8Fɒ)rҪ) m%?^ [G;Ew!dV^ !vt웭E3qbHQv6J`Wh<gKh]r9JQEDNt3rxoO3]Yȝ=(C,qD(haZ8UCjWT42HbK$1ȚcSMu~}Ck(uܻ82zt:*`HP|Gz q,4Dž:05b'QS>$zFbdΐ9ZjT%tQo&+T@,DFp'W]L+9 WL&%"$!'m\HTOՄH3 *_F'bqJU|8H<{fb$RJdY ܲ'D\/B9;'/ϙOQq2]lDӡI2r]Mr-i\m`Wm5rխSTsxjޤÚ^/"0naiF#*<ܽ ~1yT#?qlC㞒)5K5CRp5GuH>2F724^ȏNDKh BqTMZ?g Pa7ɀkj-dW}V'^$e8Zvq74%KO4bUrw!c.|m(kE:*s_g= ;*#LAbH&𝭶RSDԕׅR;;Z(W8M5}79ƒ+֣0T{)?Wr;5 &Z&P:{(_yGW?U`feQJR5;$ˍ#)_'+h+^3ǩm)FٶHnu+*.Csa %b'WP{"1ܨ*7rz+`nu:?:1!EAn uM4ai@, ZG]IukXt]kj*ct E 6qwKgPxT!ǶY Y@˛+$e2)4HYT֞* gcoo˨__3:8PPg;jgaKkYY4j /W7jEg$8he0V4Ju\I uin>.0@ŃZF!W"PAy%&ɗsuuR>9*Op=Ut s/藭'OVP]Uk)T N|6zח1YsPN.#Ʉ L4ۙ+&FsPV0(s]ZnoQ(Wg {r6vV )H5U!xh콍io5N7q#߁Zg a;>xi9˕-P}zu)foh uM؄_Fc?{n1=x?>Gc^w%.F}_ {,|Ǻ}{ԺZ.H.R3zwlEĐ9f5"Si "N $ cB{b^!Kn7F~vPưMim{^,㟟ς=u,SYh8iO+bN2|I耰hkMWwK[)X2@{ZT,y>fmt6 K\wU_ho9Ul,m]ݩu/䗔 hUJ%wevr1Yi 6pO̞$""'T}٦F *KbGT+)QCdw %7+:ܑ/;N hfNYqЦǶZ?̹948͎Xn[/Lj5w^䱭y0 tg;Ld,CQ*'KF(u'2bQ z_Ӹxynۢ6b}cy$HoH;@'0~"FtmeCp̷#7m Sü5pLQ9}-,[N68~|,V2I"ݭx]AklemkbE,δS~ OaP#8+w h2n|yEx<(AEteܘR1mȫ58* O۪+9M|¯ Us~-Ρ~K܃!h8ufݵPUY;oUeMqڶ`5Ndlg6ud&jiuEeXtB rm99d- 8z֤ Rۢ4a49&l9 wJ9xOp."65w[IC3;}_O9Yo8RWG#@f| H=ah~ i K;~p"C `br('J*:,s67!|ScZ)`N8vG.*CҺ${7Z B}Lؐg1kn/t@*9T;n @9TQZF t)JqjVuwε7V!,[4γ2cxf0nF/?#GN Y*Y3OCyufPRX 1䴢pw+ Ϩ9\V7VC1O12̽?1uD"h}KM׋>4B58 d5U6o߄cM&OMd oMj]zZٖtCQYzsvjBLIsJDQ WK @{iL7-Rf' P=L_[c }mϔ ء1Vl*I4IWH$Tr-yGLU@"(ljaY$BB |||F|"9BN_lӑrL]t_ A10ĕg^@U#ЛSķO#bf!J9}D`;Fʋ Тu.xSޞT">PTWA}꺐;(\WBq|x_䓱..yt\~ӂu we#1:_i1uwvdu Th(ב:&ŁFarf_: qΤ")Y5uN0O*I`Jm a74˫>gv`sVVExܤ7,ުy9Rn;lEj?6EExƲ& hӚqE=2 @'RJ'iǠL@RdcH΍bqbEQh} *2ЊE=1j:vil+_~$s58tzUvN^=WxU*@cxMh9hno(m.\^Ea->IZy+rzq>䐬n=H_ŽZ)) &shImuAݐ!~}W^ [_e|g?=`b*V&:xwӓ@ݠVMp?fF$uI.UW ik9wֲ{r~7Z3ji-9zWd42ْT@[{+ ֶtlzv[Ř/|:qwaC48\zPyL^wqf+ͭTp)+]9 a'i{JLcR@?'JZB> !)EZA9}q7cR*m<ۦ/s[@+b'#_d|E) O-Y <D\ˍ@Lx) d$(ut9dМs|ACuUU#X+<^EgpK(UO>=⋁wppY+g[ލ ^)(A}ܣxck۲ZWfZe'FY̿o gu,V.hP55zKfZģrjr`.?BV*~r-~PFORNh٬Hs㊒?#hK%r$# R1 ;wN03(byp qI7T"ғw]ǔR] Pj74^M^O"+O&VC@#?!E{$Ġgxr'CbooP&n}-Ph[9ͫR6{h6f~Wu\<}|Y덌hsh͊˦dRύ $- @4|QcF6nXw 3]qdqۻ}^`WYTsB>v*נچquScsSܾJJ\%ƸzAʭI | w&x,/Ļ}ԐU66/fmEAAi]YcX3h:F$zUp1t /oad@$+―w|1]7[sam[׌k;N;44AO"I;#Pqڧ(+i+evTE DZMp?8ZR @3)SสU-$AE~kKzxR2I.hS.42`x(CԌߦBݙp^7_+~~ Rbmn[XP >R^WPBy{ pa)[d" ~-=h9j#+azLu:9B46F{ BBGӓ~.M[C ~SItH Ҹ`bi6kP~3@ eֻ'  zUO0 Q'ŷa^&4;!+th)Y*ܹa`U,ƃujƘEY]#")_/6xuՔ@y85EyQғϫxUX'vP \mvz&/Řz>(6CzK59pIJ7Tc73& _046,KK= e}߁䒫'ɚdR-?;綱uF`m9t ˾ඨZ5sHo%ph[VIe-lGDo` )X򉊺_.g p g)yْ(A]7hߠMpËbWX 1 %[ҏ_w`&Fƴwo)Eeյ&Gn-۾ zژǹGCH7V0~Z;WGd?(K: t 9?VV_"_/=Etv4Lp{)l\BDʎO T,"uN66v;,[N6^b8H>~$l~FxIHjP"iY]?6Qh%@qaʑ/,t$pBdaKYφ&zZV2|;p~mA8 ZڷZDOmS XP3"NZϜN1?E_g'%A fM'n= ×A24-`ڶ sezMJܴ??(_`oD<<&-lv/zbʱB@foN'_ovA@ҹ`U ^:6SG!GwӀnľ)Eq3RTwi5Md;+_w#,z-&X,"Xa+i +\oz<@PʸJeK~v[Aj!¯p4@7 :[73>OPTlٚ^ <›M1Edt@ .b$6 ܥx\dJ3ЛP\Y=:vEgAsJ\{ߪsvIs:ѶLߟHrn{&B$QƤH672苅&D8ͨXu*UZ&cğQYjVSta8#5: :]|<>}~mʇ9{u;@𲅐M 3lDQ7^%NɞṖ]": 9;DXW ѡu`z Պ K9B>#Cϔ?Pr*1tAbŒ?S-Oc.̼G6ta2&5ivo7]`֍BN=YZ~r\JdB ^T c kuп#cz(3  t  )&DyeuxA@+:yJjrhR/~&0NܾN C}&B? ;g쮸~].+<5ΫJ0yǑoK_Q<@eW܆-uc>&}ص-ޣSdq{)~+e2#]]b$̠Dyk[e?goC ;?b2|E"-F& 1WGDIR'1F&!  &}#_ _M\ ROb6c?xX vRŖ܂'gq;,E؁@ˑcQ_$26ZXF.6 mS0k|DMri"mMy=$#m[O .V̂ѳ@C ?z$dbTo@x";dI0ʥ<1ͧؓvs"`),];dBA RWE-x)<*Bxl.!>9G%d K]ʫY"~?tj})Ytw<ŪtqxB%ɹi౦GW9ق:u9 ((fah65H*'[o"\t[I,.nݐq$Vgz>;׬P}/g8M"h)^l9ht)a-qa϶m>taT<ݛPb]f ݀=djF 5%GeZ *ָm+qJW(WQRxIE?mNHXp V<氌 &_Ry:0 1oY$԰"KsK 8!Sf D nk3+;l #^6ˉ'UH יBEwoKG.n.r8AC|`{\Z 8~hA֛P[r?1"b=%NzV>mB5.2.$Y{ݚ|jIj%luN֖Y +0|>A`Z!1g5DWlϛ ԊURa(X'dg`X)EmDhcZ*q4e"Nj̩t7R;)DA3Z*\ȟ5XYkX6س`YghNS0 r -L=Q=̈mF(t78w0@"_7V r\)>M<kO8nkc:c5fkS%eK}K4TI|L7D[\fcr$3c 7G>\nm d&r"65@-[%6 Esqrn.q׈9a]0w6Ϣq;Aj5FFC%cOSF77D~4e56DI-H0Re[n^k^NEvԼ7wB..B_KcaR3XR(ȅ- n¦I8S[pǽò $0S|tvi4}^Z7rH#f]b5V*kpœDDi\;ƀ<$Ecō $?P\Әako5DDB")#1~q$A2L5$R6& Adz$ UM7@N?_ vv>Y|N?GfSʯ?DzJ.A5j -0AO%H6_l\"&^T2zި "X7^ư`{$T6O#Fi&uw@pYu=K7 (I#4 H H !@ {c`o{|3A>Ͻ!sf̙,kH_v)NxcQ=װ_7AW:Xo_V~lZ7qjkEZEAY}vYSΗ5-y2#`oQAu{1D '/Flz}? ޣ+*kOe̞,mH`}ZU1\\ؿCqC'eP?4jZQ-}ve3YnP\ ԡΉ:0ٰӤU f_Z 0ɾ)efNm긍1`VwI/Ɗ'6cqX:oR~< :MnѤ9;y}yqGqQ>cúxǚ%܅ qdIQ #-h&f}yD>s ^g7%"0SL_c手Tnmy7ḺcSV6eO_nwuY{1҉tbnO7hj}6]3; ȼbNsʼnWwMCOҰQMzOYRPx?Mp@Ѭ6RJc68ƣʍ]{;r̬+TQkz.3,`ϿΓ?.`\Jt}qȰm.OZsxK~E'ʚ ћ$s?4}Ipc+xɧJܞi-ppV't. cs1!v.e? SvZ*[dYY 7eb>|Iz9}>sևxaIMUl< B6EN(@wtOҽ Qzs/E,2v_lL$țvVtZEeOejyqZ> P #Gާ6ȷ{?ZM:8Qyxy{x|OW[^6)vZ*S^\юJv\.;]Z?IGkQ[D,bY:ݿ[hroF=j-)Gvy]ʖoMA> =< ɩ{ǭv,G0yުzbʺu[H{jwHC۷[b-b [[w~Ujv.adIAkCZufz.vc/ s_tynFW۷z1W9.%Uhvn'Z}-d:C&q.`xzOn>jç WNs5EnV:tCݭ}uk?_fQq]ɑ#4 <ܺԍۯ(w{|Lifiv'n!vgX'Xf/eғk }+kdhv?:+THS{RO'\¯&] \iՇqZ5u1IӒ1}ndTe^5ݿ(a畕Zsvwѳǚo8fեN.yEwҖoMRaC}1SON]4ݮaHOwS[^YYc?5r{ǿǰ{ w~c?'wxЂ:ۣEtS~^s$Otgҋkr,޶֑^pn+ӏuR(߰cڃ%>.k鉔kZNo۔s(nxw-SۤqE+mKcO Oa.kZ5٠;Ĩ˞:%#i^vޑ1 XziR]`ٳv6;x|lͅ]ޥLQ^?{imݔ6sl7WbӽuӇfy=ӰpNۓ=ԣ=Coہ%Nfsjߊs[U-peǻbwu.,ʫ]I-5]&up58>Ǧ2{bKz 8fkg=<f[KDJv/tm9U:_bkMoqٳc{o<^|ZilMg5̷oȍgwtsc_ OMqM(n3y&5_pea'Ixhr0f|t=+8%CH-+z7kM-XwϤ@&/}=uq3/8k% |1{Ayu]) ~][]m-m\µ?wԎSNpWhh,<":p͛h8+՞uͦߥ?Ĕ7gS{Mag/ oO*7\tէ[KڼyO3t+Pюkf{?)BVMlzk`ԛ/kn+RrT_+>Grr0ܣ)-X49sܢc%oNF>z\Mjmv׹kXyzk~;`eԭ5wxh lѯpZIxp.onIio͛8 Ϸٔxς8!2no1v{Ǽ)l?Pm3\mzK=vsXWr)sƬꞯZл頁wnۓ;=IYqᢴcd?7ѽ~#}Ϟ}QύXzŌѮ [`ktޅ'o,nP繭Y{\z6Hm<29&Zm\7|?ilmؕOG0RL{9ͻaW$;gw#)}sn/?-)zߔYr80 ܄~멣U *|GOV]gڍWƭ\__#;msov-<=\~cV^>N]8>ܮ͇S܎I ^{OnK0~Ǻw.Ͼ2vaʐw}Zl]>W:v9oػ07ϛ6lݷkcO=˘q/m^m_-DnIk^N\1`ˎ-k>S^a煛'yXV!#WH[-zcK|?9MKLڪͳռ9/#?Gn|ɯsN˷~/l\|JgQ{/K5۳O)~Kx3F/ږ(2ܮ%;AS(KVnO;|Wql~@f^Swhw^fϨwQk!E~s ߌ{Yzqەqn/Ҟz͸ٞ-y?[ o|YWe7Z _:qy o {LQ/{9m̋%W Dkvcnyq\ޗCNYewQ m=vjf\>`=pnK^  ,1GγKl&m|5w0N?"{Ag[;<;gf叩I{xǽ>uwB=7MEe ׿䭻7=X6dt8SQ."'i˜}|C g~{vlzPf.L8ۚԥ Y4X{hH#uY#iﴊ}M겼Ldݼ.nf3≩?/li/Wn!Yto탣=K+ps s=hl[Ӛ9u^ \N&o4)x- CWK&~Kvx|kWFln̛˽\'֬/}:m✆NWpzYlꐀOz-bOTo~cQ~{gow -rQeO9~Wyt%mtYÛ~O0r[M꘸!?5cԣw{;4ӓ'^ {BP}Ņ7ip=4M}&wj5]o<"`_d Uui%k4\gmG3Yz=ƌ&tYؽg֟/6l#sں?w] -]0ru+ v+_N^ݝ<#%m1-<`g-om9l̖2ok)!G<񼶌 mʭ>>p[u)K_gR-ǃ>uA&u2`ȊFC-os3޹4amwޣGul4~ [иŊ6o:;1myN5V_%޵m.-Ds-Q5;iuVRR~5؍}*r`d;A9h,]l:L׺'lwYxa+nl7ZE4ۇOaaۜ/3~RxVkK.qElgʿ{q|㱫m>R==wiO;O<?o/۹=SᲵ"SⓊ#ά+gϒW0hΒ17o*{eJֻT9)AYklNӋn.qDIT=7꤮ nLѳ򡟏dG햗ɔ6%?EؒI'a>Uc_>5dBrW-qhj{inKNzŴmչյ8繅T Xzk4lV~*,Q/ƵtjӤ[i;]ldeˣ-Wd鳢&;Nf_vU9Gl=Ov_89zV{E,Z8Nޖޅlui~`֎6+EC7Q2jāBΛ_=l[r|'U~ =5FB߲^p]Ch}oL6vtODEáܽD1N?~# fuӨdCv3,*~+F媴~\-\?f]]{~,`>/sJ n>ulv_rss[hR6!tun_P\;{[̅>_7vޗL9[ "8PNG{bN*1=s>|2qZwk15b9dIFCpŝbf^I돧oO<}pUIEK^q[`Rzʊo3U=&>eϳ&Ki8!㼋7.rl1ӤT_pjF8@]"n|+SRԫuWCs؈y.r|R:y͢=]ٲ (GL>*Qѭ]eA#: ߪg)eᇲZ; lܘ^4N){>;yt'gf=Yxi _pye{F?~ލݢwd&~gUlV;?Sg.社jvqKrW/cEЧ;@賻3 ?Y}cNcy8PtK8B4j`*\$QkTTT`Pa2H" hWat*Sя>a1X\5"R qjL KK8 @up x²p\tM1 ph`UB @_s1@c3RHS dp0!NW(hB0lTVRg XEDcܰx7*jZ g&L)`L*\ C|'($(: (Ep|cBQXDLTD8ϟa<Qਆb4;"\#HĘtAϤ",]i,/1k3C UA] 0+4XJ,* +33 _T 1Bl6`sZr1BY,0{qqrS+qthuW?g[%ck+@qr.%ĂV* iE i(`-gdXBVVZ2$۫0 -#(Ւ +R&& <$Gk9\ iФ~a=w*.TzB!5t\ i؃,& 2(= "X A1 LME5\5HM@QuSKdPBZ z$dUkBJ"H!p҈u]x ؚ 0CQ-A1~ǔR %!ށa)1:QN!w D(sR@jr@uPdw .LW`L[,LᘃڙNe8;;P(Z M/̞%GD%Q(ZRAd0eZbc%p82VAyI Wd} q5atgFKǥJLњ,wHxևj>R`jQ> 넿Q{"V(QRMS#޶PHP+^I]jZotIi{JM-*\M 5ЉBB@Y/B L$(ԀG Nѩ)/( -} yۖ%Xd((rr,BRCNI%rJ>{;XE5Pxٳ d .'R7 D!y\Lɴ @^$gȬ*CsphQQU`R 9ZvOP By`tX KUL=0di@)h0,yȴ6Jd@dHYDkٞebꢯ 1BcW  p ;ݔuƘ^huRL6PHҴ2& R`êJ́(ppXn[|}>1A!~oYTPg"11::9*!xHHJD`DBDPfPxVt2T@)TЎ@*@3;CY f*.Ud#-#!t\ ӑ %CzN) ,vX 0*%X11 ^t`BPA(.N\o"\ E8l/D`BЋ\bRr 2VԸ/#@̯-_!2މ0G D{ AR ŐkR/L%MO8a]hg W\,[؀BhC#ay()Z@1=<`wd90P0 aZgdT @ &R '}HW`9}UA ȇYCNHMiG@%ҊCP4p!̂QFBz8߰ ="p,2Y7}ON=* 1BEKɯB/)g{r8bq b$9^?/%RB!zvDŽݻ ^*=:aLQK$x{&kXA,0u8dP7c\IFZՁF$XBYLuH>#+@5yb?9 ď8H."rr8/ˆMI?݇JFFaǴt@IoBHWi5iޢ1=i.NP/9F1\ԎFzO1a1RR1aP~(70(4LkjrEUjypu%ps3C E= gK$d<M=|8P,r6j`VUᩐP'Og]%I*5l\jNj\J 6DL:_:@"~`ҁcno= 2%uX IJ͗=er5%3'`7 lh*|)>x΍?ns2KSJ=1xH.K­ !K1.8 Y9eN:\D#e O"@EKP\/BMԀÆR1a^ -JU 0>a1 rٓ &b3&' ]vF"9ma@*,2,P$6Ur`4F gLyĦ`X 8@ !X'yh 0beUAE%Qҕl&)fE5,_R&8E&Y_#\9< 5UܬX@ ִaCQӆd0{R"FueiU1 D@4+2nZWQ")MmSzg#C(4\=4BMSF8-r2r!>0]l1!QAqfaR`ԁXn M /0]'.loJT&t(ʩjĄEO 5D_Ͷ30a c=z`XO]N"b*@kAyL6V{bRbG(PؗLH#&P aAQ$',bG8DD5X Ӂyy!0H"!msN)Ő4>N*A`Kt.j%mn%ȬCGE>6ʵFs̕AGOjj,?hKvG >-~XVJTХ/ Q. \wLtL`Һ'QN4 oFTj ̩'PnT餔GC2ANUDxҪ  zU-0x:d\zC'r rk7/_("eo#&QyGhs<ij I\ؿ"IxG1Ukv_{LWdE$`b t $pJ u@/EDxQfB(B/W~Lb2$45(^]^474'( @8@8B\*!'3gj́Ɓ*DXQ "7YN7O[X5I)J~t@FMCD<3b(20K5 |>(<G hӆgjT ЃʨcX3=̷\H&DSA`V059`C&cPe{Xu&E"Ҫ"z8ܠ^KqqBa.t: zhF/,EǨDo2uX$ G;IX:p&6|3gg8!tu-ʁQ= 8xdDF`ziP- P@X#CVJuU*'.jv]]qqP]܈&!+g">Pfՙf-Bm,L#EW #4&GdXZ*N`s%*L;il,#dX5'фIMx]MwT0@%93-  ̗3ΐA?0/<`4Qn a#9]{r_p 4DIhEreRc4Y_b8]xI"WRe* ?]QT6_'9 DyTL$9DchhQeoH%@DV&W*to5~h>hF*gV b0sxӥky$E{!_uGST"C.YsLTFm! h^u5Qn.˖0g ȎagV 9][F\ɰa]Йr[Z&Hh jtX*_)D!q~w hd[pH卒, Mb]v}PHDH^BlN8<0=OCV#Sɰy.$T ӟ#3 U7&2ؘ#ҕ063 #CZ.Ƥy|:cS4ZRMo$+-ByptJ팥BA< }1\RqV-EȩF%.I2tL, WjAđA+*a@J<똧 ܚ("ANW,&ٸD1vK .Rcɾ߂!dk#"Ҙ$b]X׮aOw̆~fWnʬ'apC^ ݓTI5m(MREF3$j*sܸ &HWAW%9}(⪈<i Қ28Y-ᓹDI&wpL-f2lo&e}ɍVҤaeH_㫐g9Ķ4*x&|ꆯK8]G䪉[b+ _ ڝ b,1'k͝u #ePٞΚOōB#8& +S҄*A.1]o,t8CNIĩߜM]{K&!V:5ёD V.c50Lytgf3nCl2mEo21~)~[*7f&0YIN $CE@L0b~>Z>[e:xݔ$ deWnaD*7fzUc1Q hbmѵ4C9M\`[\Aч`Tҋ᪅Me8 3LP2I0jԘiNq *sX& 1|*^,bTB&Ka-;':;J5& $(;L0 Ω7lJ;M [4A-dˢ^Tqxt.p2BRma6\/m1sߪ.Ц}pܴl thPX~5ILf Ti.,!&= noHG䩌`sKug#5Zl1Lw,!2f`rVY Pj⠒T"ݿT4j(7k48n8 QUX8z-31fRiɝj)_KY@iZUdH 4rN1¶QM]pf@fP ᐣJA(eɘP Q97ɫA\jd>$gYWlZh,XV  L;>1ӎOv|ѷ $Gb6]` /1ܬKVW[〓Vftv]+|&0hl_ex%UAKiS$*w׿BF\d8)Kg$Ð>0> &1@-Zҝ'usgc,d T]wR/2S ]tcTˣZvʨGur0T:US8^SfNSb4R%hpff/1TDW+,+u`Z {bƷ 2*Jc@`)a! EnCw:"!$$ hS^Zxa:1EG\*y).Z:zWUG;;)Lxd1"ub!"If]M_?Z"ĠAqQÒ?2jD:9LD_ HdӚ<ܽ ~f bP*xI1D!Ql'EW0hpx߫ E#*BctG/yAW4'IwK6Sj#.E/:JF^^.k_>7$6 9#|/5&=(E%< @JE|V 1:WMd΃ztGj|r)шq Ƨ#c1>P](4@G@#d3B^hF`j x_H:nT5W* \H 641xEW Ъ5#@+NUZ*ڸf,H6􀸜C! Z4D*&AbFo| / A8!vơ)0}1^TH Y\4O!P9M"F4s?U5oᦸ h,c钪W̝~5j>QjǒE (#MiطQeT~݇v C#DX" Zo&' F| UX_ĉ~M!p$xx&gtL:N'mCl wQ]=ݩNFuN<1){0_ӭrMj> R]w.~M]Hv1aF#޹fSXUoN1܋@ƒ K /1!w M!Dә2VF_2pq} .דXx2)|.'"BAo8G7!# $nWJZ jV*>ՉF|܊7 \obr; Jľ*<2uGա9c<` gU3acFɉ>I4fez(L,|'(gqE"?#߇&^O Y^} CK`!ø#iIǨUQ9AqPRHVwI*h3LȜ.69*+/m'v؍%39YYPR/&Ǐٕe$Tc;yDly.!UXwO3@\(f|%(<$JE++t+e2n\J%~<ӂ>F`< /oX#+эT[B2DňOan0ubr9_D.B 4 M.T=>S?RWے[-f4zCP?~n\6M.3k.S&Yn umy nO'.g͢#>tRoe2V*6w*=2uy*t: MOCU.fw[B\O @T43wȫ' K ]N%PBNeg1ddVWdaA1Ă%ڃX/0U%C#8 ` w/P;qFU( ODT - $?޼mXͿDI,DD:-4㹶#$$aD jI&J9w:hZ]][WZ{(iO[O~5%4ȈT]Qځhnyr>a'9FYxpФI3 &pܜOw8xi9'(:(fc Jr*3G|z\`J5%6y+3}`:#bi=6cTDJ*< \,тEdGvQѪ\VeaN\-]<{꬛"XЂk?mXi{`qNp=hZ\[a! oin ;V6+{UT\]MY^u(+,c5:Q[a?{/X̳t {yZ\L$VHA|=[EפIzϫl1d+S^o\z/|#D\,#e5}ak_ֺlrɵ(7a;QcbR rK@ e6lCR#㜷P^^\DDKl6C~(Q8fҤۅGg>YkjX]Tׁ*:JT/{}\>V͊{،._>n] J6/4Kf '=#hϳK2OlҒk?[o1O|?ٛN?~ޏmebWSl2"尼 ͞8&@7"Ӥ0ʱ ߩpgNy2"_*X]\,:g#Mg-2@:o+dn-NJA;x4Sm'څݡpr%c߶est"![0zvh m\Bk@vՓ濱f_+uWo$vyeRL2wv'x*TѹjJ٩&XN}*o%DCbOe ҧBƔSY"% u*)ȵa?uәM(a xBthV@~ &f>kv^_}봈`pA_ÇA8U4H[&|63T`5(^1Xh(hQYcqwgdݧHR h)*$VT1T=)ѣ>ѣB@Σ)q9c4!#\]1*1#a|6#,[X<zkdvwn*bl8sKLF1+ 1J"b" 5 n 9syC$1:iYS6v>墫!&C B=͖֗(C3** .i0ʸߠ.EQ, HҰgmHi]\ Т/)..Ji))j8|[☨aw^R> #w%7,R(fW=:6}Icbc;Pr,I_0[cTx2u)_]@=ꘖ59N Q ߄+L@){K4::$K?kv:(P4I@,3wíIi~lPV; "r,ODd5+w$qFQ]َ#p_}.a_X?WlMvAy{_@NX %!͛ ctgߐ:?a*%ȁ唿SI|+.7st ;֐aC$[QLH,`3Xug P7#kł /S!U(0UKz]e$_P8gCRx7{2e{Ч1`9U v6#5#4@1 7Lw4[ 8/&Vu VIT:aMxƖl?Su۸m]l5?/}{r~/|^K MUBN6E|.Iٯ$&S|d$ d@GMJi4Mh+OɴN G3ǬqJ(S^R𶖛+MU  ̒>by*)ZMH{)n_D,~&kkxf6Oa8ĆkO!Tyi`Ϯ2O\ˤjP$IQt%kWwt6YcN%(t $RD"ǾqPWH-xAԻ̖8lqc$)zv*J{JaQDžgOkW* Gc7,!JU(㝂eD.;H]_Rk˃gS{m$j'WJITW<zvQQE;ԝpLmnrMVSO)VU`EcC怿@2^5Fs'zyF5`>Q-7pGsNf,O,*P2KAJY1_h0FaS}f6[MȸJ6rm0 4x:%q;.G> &CCGJ@#SXl{9õSlxK `Zwf0JS : 7V뿯xwQ/2Oo5p^]:>9LmL0MM_ҡ3\[ssU*S,r?$ O j:Ki*xَ#0)- @ ) c@2G$W$PP#$V]U<@6W9LVБ vy2[?FO[/Xlm)W&ͩlk#W]IKȏQ ?龩_Y}K I g鴽Uf tɿi ?m,/kUirE zm5Z׸WA ?dz~(a_=adnog-NK|~f|ٍ6wz-dYwl:Yo=>&$A ~w_Y[?`g_QQE)'0QX7r7rm 隄Ͽ/GR~5gt`|VI0f_Vy` % h7}NVnyYղDg>)(#yK]JnkĘ=Y(~W)oy}gaq|cp۷C=%9`L@=tTG[ZA7A94 M YI" Y7y"Q4+` )UZ_LZj׉U^4tChDm(Kku:/5*:dHI 5#RB3E)\ E @'T8+}8S&O;k=_>]h^7xw`ķgbCB8x6sGeщ0&UcߩDv>7-u"~&!DP{z*d[g[/˶GB$%)f#Q!Cn"ِ"ed"ΊĄL4z32N<@_$iݬM5ST8W<(.ITz{ W$!S eP$ߎؒFdO1CR?㐔.V?iS]Pt)zNLKfExfYSRyH+ ZXLvI1u0UhSJ?]lƓŶˊmW0 #+f9tfQA< , J*$$iğ݆Uv:B9=2q ?L#(Ȥ%0H=&&C-"TnO:Tkϭc1P`Ϳs>v h]0tBg2fV8e]>l^S/^q`^˔Vq?'G9")* iXm[xd ՊqBCa2&U$, oKDf qʃXM~нc?ajhT& uY}?_zAR)bNFTmz n$on,qrrwN]Wp}S}9})Z^bx~qJ]*VRʋa}y⡶5tPh2y"B\q쨙9KNl*Aq@GZ;^Ωm!~nuM+3HZHKjwɆqVbxTZݫԜ2i;U.H(Xh@ DPQ&..z~x?8;rB 92o0eu 9-LZ# ?B՘?h14Wz:cGq8'2\VGl2PiwTMهUiMl~jٮ ;Bf@<;I`qH.J,硼^;G&8s| ? פw@]_'paEZ*;YJZ镵)z{sC !e@!~v?<|ʻ ,ƬeAd{MtibW\6fR["t[qfdiS܅N.)M"yLbhCϡ`P6R$Jk%H; iD36 Hft^Sz= v)H6Me$tds WbVm`}֤i&$%_x?6rr|ցtT`ͅk8}>;N%K >k%aFй5AYhEP.BΒ$dG=M177Ga(b@"VQ1qu-:8T `ą dɣ9kNsEK)4 4 @#tOTK @8,"H uEA>/b?P5''g[@.A>`%,B}}u9& Y- n)l$e6 4Gko׉ Qo4WoT/(TEN\˴M✤^)pB}gfvCp,wUPlRjW z^[,D7gmIB]AW5_ⲡ[RP)Sɭp sըLr52ZIc~+<^y1s )%mں~C7,@_Y#S^"ZιYo/7zVmLXzQ2*:]],+#%2z}9qn]v=04+C[}6 t&Wˮ&V':ڢ9RUwpZ_$4uٗZ/L:qPUxk(t2yzn\ڙoJTFB OŷРF>V)Ev)Fl p n(8c>UczŽ|TH%- T#[S3c.,GmJ+KVΕW[URR&u3QvM^ҟO;~Gp 6+wD_ֶїӟ߷B<#v{=`9wgCu{ݒ2G6n~2 $_W`Oǥs<VO;|'Sf愼}hz#T`~# y:@FDVfPDO*#aRa>abtlCAB=iT~kLUM%;M` [sh@ j~u߀"+д!Vz-P~IQ>z0췏4 ҬQW;Te scװxPsxr& ƍcϩ@) *$V"8|$QF\u*6'tqdGK2e-,t3) j=`0@xa#QT& /_ t d_tE?@bKO$l .Њ²;!lģ-~=P5 C HF$]a: $'a`~~B=Evnq8NVf00ID i]EάjjҷTyFĄ,M 0)tS^ .\)v ;hZ`}_oYEH$qJ`+LD7Qf<' NTsE~_ t0p2܅bp` R1֓ptV4UЂ,%YةT+Џ(.xp8!sS\--(ϔiq>!49 bCF(;Ҭ K'xArsܛw!|k<ڐ5S/NUJh`Y <8ktD>9xqr J=0qKb=ӃڭxSތdD '$H`@Rh>]X?4X ɣM[S-ԂgV(Qzhdp^YꄵkL\X_:AʤFTz>4pHk->y} "RwEwT;yG:y_SkqBk=# LgfQ4KxZ͛b. u+-DC5 H7m>)P,q7?MpCGOSgNM9Te4Q&TBmN gC@HC~*rBg1* ilZQO )X#żӛǔ x30bT9nAkQj D^OeW_iHx3|!myhͬmS<|yIOfF[HmZPڷ.{2G7waHV 24pNB<4 pt%~ hq~(XlĒ5дȢ:H>,il 2KSrI?`>Bohs*fU´(ۋ^0^ u0@M:5 ,M15}qh7o:#DBajAJ$dǢ4#(RP%A.SFߖ0c %,~R7XkMn*?X3Sa\(CqN  Tғ$$X`]F2KPš:, k1#C8Rgia(khIC* \%Hoș̠R%< 7W/"? K:Ċf}m7oHLTĭY& tH*};ji\N&ABMd/B(w DPEaJ+L JF amIn(P(2s%TyilLW"! -c63D5u9A 5&TlC< .uPZvplƢj:ԵxRƜtt $cI€ÆP(QZjFmHILJkPކMP#s(ذ,dKins$,"S"Ȑڅz^=O«)bR=) )bBwjQ0]&=%U EuIE^A¸9O.Ƭ}iQw|LGOc놮S` n]* y aҥ(&%lN sB%>9Հ|1d}-gmDL{$)]:,I!J,q+kyPr5˨U}FLnLCF'bD&Pq r/48C'&L!(IBȵ=٩J= Ўt4.*?R,阜CҪ/&"(8P*g0dkTsjq[gS|-Q=AV$t/qTr$(J\uhtQ=ylSGrBoڼ0=zئؐ\A˩>?9I8)ɴv9e62XvzdzBzC*aj: >;lw.੐۶<yּERY׌ `%4I)H!mܠi, ojGW+ѭiA-]M20){G(zlKD<ݔ6)}m 6'u4ݬ`6M,{\Y>> yH<>*5!A$rWc8:-.i`gt!j{]#2tLj`ĩMgtK)`ī9L8nstda:4y/p횽 5U!b-R䶣Bǂ{6TtA %͟)~tuUCւ )B=nG*q /iQ)n4M jq7 #u|+r#:,~m@"Yv~G89=$nD3_|Iu\ !gt(F7}!/fP#1x8<3sP3˱]_"H+W %o8c1Ǵ,YOQ.X J%w=q̼k"0J y+dW mu1zbDGQf.<ھ0LcdJ@7@QV&[B/*/jq ՒlQ@ 46{L.7ZFu ^tb;6b[e*#%!DA<Նm=}_^er 5"U]'x-e. >?a^Ν1FzV|,"Y$s tXk5a՘r◙hQ4-y.M_lbH9$6"O$ 9$y[Qm8dI%Һ.Z bA5NbӣENhЄÉf$қ̒e |FY-&޻!>I[ $&>X#,9EcvAKA4 @.dVRҌ x&m9T )R)`=\фxOsR&uP!$= C k|FH袘*O`GUFGTg+X$5raNq(K+Gq4Zs^2JV֖!Kt+~M6\.u%/ÙO~I36L&H1.w}7_eK⤔DnJsC[YLYAFQx7eL4\6Fm anHQ͢?T@x"dVQgZ?fqF\ {9)Gx^2i}="pWZ(jlI4w&wd^SVc OIذܷ-r9Z+[!ը<c:J?P$íQpSGɫѩJB lP.o:W=aS^%xi69GӲ5eB7e,@ ޙ!ۡ4˺ސ[#CzGV^eLEs,Lſ+Ae[b&S3xۓMϢmY\:PB!'/0%GgP]CS]'Rfns,"\Ii =GH ?yD(ȻF)4@XGZޕ}y< uI"6;LYkɡ?StteO"v9Y} -w龪d$VA9R]cR2Îb+#:^,7@?,V|YG{4K[n++x+n r@+I2!o-QNQA26I0bED)?8,cB%hDE>(Z`a?οO`MMh/Zl tDsaX~403:x.VjWDi!X`i1PFUC;n!%6qx!M\Tl/uAkGe4YiEa-M0v MgB=XHO!qc|g IkP#7PPǧBc9d{MMqHx2TFRϴT{KhtW; 7BPDrX$[d!.rheV;>ꜝu&$v:=}Y럼>tw﬋9OOgGP۟)Ty{;?ǽӇtw0{]sp893 n?=;`SӃ^?\k8:?{?7UxzC}t /5[jA'yU{;>=8<&їȻch@]vμӋӓ^e>A}v\vpšG*.`܇PP]w~#.fzG];'=/u~<#8uO;g>yM9;ZNjK@]xJy E=5?@0CoP`&gXF'Qgvվ\U 5a?S#hsyY2 w;K&"$H%~kuSĵv-ROiÓ-yǧ.κ/N3ZK@ozyRpf>8 ^5!-JZkfBz'at Z;wAf+'L.dx@;ہ;@ %~r>?ˢs" g@*}ky+<Ǚ݈ $/d/3ƻ{N$r'qdϮy]_j7a4RQ0ݍINR9Ԇu땼ER{d Dl7}+vD! !C:BN戢'_姮V(Zl`2뷁:6 6< Sjd,+c>QnTOkx})ͿRH',| FYf{ Z*!r{nWj&Ys3g1}"̵ v5WD,:\TAA V9l7xC-jur^@~_. 8nkr>O4h Pc;IEA:/L3įt5ϜMkaPz|8sC#xh=K v/çSq\u!^ N =`% 2+G[#dI7텗Ig"7b-4K7R㩦om >evEf*qk.KWeaӳc<|D?(n؛ dJL.v^HD{fmhVQ).|۩+ $Bp~9q"<;SzDMS5(wۮ&U:/O?PO?z{{OЗ.' +zov8u/멃̡M|%rw|sB .%RS{VjO2FT:~Qpw٧E[$&Gnip0{{fc$]Lus~X^J/.X9'y䕿.q[I8ӥeq+& E (jX6xQU ֹ9ﻞwq4.y~. CwҼzdUN=us(]_bL6mӔ.?Q ˤ. h'z@?zhvI (EQeK͒I՚KvWݔ]4EnS}o@hkoW"˒seg~Pӫ՞h+}Lg}Ŗ yA X_ [ oQF %lH;;xox%-K`S;$IJE(J?.,PUV6?Csql!A BB|`?Hy9LGtjkoz4P'" ҁ}NQںϤj B ZK?Hc)|4d7oZdO{zZ2( oO`M8G^+m'Xk~#юALsMǹJ3 bگ^%2@x~²&1X4n*-eO{wŐ=1c.[S*wC#/;1ZXbA?XR& P߃VC\'NŅ,⒥hNů _c +s 2)]Z] Mu*J팸e]42 Beec[8\#S B-4(&gGIWO,#<.cEvJ@XWLgLM̀o PX4uH -vgm~\X#:V}p(CMֿy=Nd"h7VW}8i/^jXu 񏨕lZ+;/qW7ܧt :+s (y㹃p3N0!b($@jRR(骐Fv?:Ы/VXSQʩ`uזlʖU>*w+業Va ^=y`:".u[@KGcC۴?1Ea=j| +[רd>`M-gXgR b-5=Y|G>Dc=5w0/ʔhN(fvZE5Dx/_t^ϯ*X,7QQHrQ:eWBD:].&5Vva;*_0ʂu*KRsMғ5,9ȟM!{Ä=R=Bt6 e^pF^FWM7;sD:IUl"(`}zߙмwo31J0/+QVqp*u); !lOy'X _?h4X5ő:]iY~=}-pA(=ب84E}-ͥ"<#}B Ixhrx(ݳ 5 2?BƝ^!؜ 贖'-}:)ژIV9^En;O ɬWr<⎙\A;q+|IL%& U US_բv)}s]&Oy\pRV(4J8yG[m(̵ <«;3TبO cx|7j־dg5,P1TmZ=vީ6]!C-SMӢțfʟ*J;suL9$5P^Lxc ־9F vRQ;޵ mUY0Fm1Dr'|AA 75 'j&Gx*Qk a!UC=ѡPrCڼb}PO*Mҕ]˭0|{%  %Xm\Z׹gWbF~a|P6wE]/~wCUI#^Z5x|z|WopZ']WhЄ+9NpE^[MʰqHm;/א{=[g߳1(Yεɯzp%<ǝ\WXs }g1wxFۙ0Tl'{0隆f{{pAuJzҐ(ԎBW 5%4M\ %2߈AjP\GJ@0/wxwHt)d_9 q\KG&ҁ9yהr|rPA /4I) 8c-oq]AҧB4' q=奾sr_hc&[uiaK,x`AcU cXt^NFS F! P 9dU< 9Hcg6ŷCn.=h7Vs-iq|r? TwMCi2CU4fS|}eIg|gSVϕxA`_Fހ:_>q{ɕzC5Y0` 9W,ͫm> Ⱥ@-/_^ہ*K;\gKg>fqҵύ)߂Y>f߿rʚϋIg'p|{~q8Rv _yTڠObe4/yCK} ~rr>! .W{ 1嘓HO /(uJcl9Ä]87>Һ^~Ak[2r91n ss{zօ]ZkmI{.{:g/rw]8V-ͷ9>9> NzOdy{qpX!>+wi'}RV;>XZe(,AyOG]`J//49寵wCv#{$r,`=_I|\MPtUsrh{mBi΁ \\2:rA[3}w}/}ׅ WЀ(p.$^o`jR`6 ڟO-6Tf'16G:tL1MhXibӋ,* jTe +zc]=P<UGqOd*F> F؛ėjo[Y&bOtKoZ?P`ɑw< r-sKv}#:€6tNnq))S aQ np-9J^.?ZqShS⿘ s OU稡zrS*_yCʭ,Aȅ@YYdy)αHTGXNBZ[F(l#<T]Gbp'y.koH% m`={t .!<{,f8F^t۴(+z4. V0̯A/ E.AVݽW<AyXov`NlPdk~=k)oJat$ RJ dQ8V5:wtU .;T4x=v7 Yݾ)ȹ0;nykrh( )#rhx+X j,_"6Ј[A:6DZ)58WrTa%xKց1%(ɝu),MRBڦ| U HL:ܑ75!)JRb2sd1q +ѨHDR?J)mdȠ\\nx1Fp[,3| 8eEB\O̓K eQ=!@CuЮN;@QU2;UI=}N櫊u$'JJYƐrq؝`O2.5>:*z^t[j.L5W7i $Tҁ8 WJC.+G("OO Uۈbw䏁 AjbK[}_쀅ү%^,1PRm 1S4r#uGHɹ$qDPQiK{韻:>m:RU4yQ:Qb3X='N'_ߒZ;[f_^XJi[]9_XvEKL2H"tH%#_$QS pm dB*i!;KʔC; *d)A: ecG"rl)3q:87..^~گ*\j$ιc=H:xH$?\F(CGJ[60xC K4H헑|[Cif:Am3F thcҟZjz[b|b8O5;A'+h=mBWO +xT,蔘X;x04w"?䘡'O:&v.^;/??߀\A&n\F6v_a,"SsmUT-l0L|"`ճjLN\㋕"죅``C諭LY bL~`H .')?mCP V`/GEv&|K$9-5bBL&;ގ_NC Qs|`w2oUEUt f 9 $d:UUM-NBsX%3?Q\/jq&gr-u0K嶊RPj?Y9 A|wcJ}y!iBOϒ_4W7 PS,8|wŋb#ɷ_͵w'8uF]*ވrEV7v5h<ΓhM-3uR8k<9բ)ʆ͇`nP:eOݞ}=PsltB%lOj+WAcW<^yVILA WǘsGc4բ~k?o$H=k5~`GGl wKN* Pݢ-|jĕrW%@_+G)# ;NxݽFQE#3` XZJvNċ_bMqExP,#{/л-W[jcvо_}@Z!۟XzVt~kh|-]+Bz a䋛@+ݼ"@,|,bI(ɂ퍃͍ym wLY/rG^V1Q F5cu}'ֶ7Nتoކ.& pbgYjUlRTn/srB O-G>fLI*)͉:]:=cOh—J~uP0~BoAl7dK[Z.ԛ¥\d\CRKQr!JOFkGa"CtGV5#"G\(y 6M˜p&cA#n|߽} v$vDZ6w'G75R> o7]ӂ! b4l^qMQN,rs ꇝ b0( ۫BgIi0J`<@{ht M.EgL̄RE/ZL,f5co08S#H`rM ep /yd#tU 8BKtZw83Q>חWVYj( ނ/s~;FC̣BOdDyMMk]J󪜏;66 s ]wDGծ"JEbRrq!g֓ '.޹Z}5{<еp%ݚj)s:ICh@Ѭ, 7ՕPbB`h*ڢC=+A)tK.-EM׈V#FHGE<H,#3zvgH cKk s}5ZkHc} 6+֛Y,QmQ"=Kyۯ]R@3?eu:h%)la>hoLN֚(݃* v=.mbJK%mXdW;>H:U(@0>?~5p7 L,2#)^lr~A%edK &ϥۃ(c6* Wۅ7% ٷmQ^Ґ'$M6~9E pP?v Q L u*bLN T2gu$86m)FTߘ+Ƥ$ELgfXi*y}Ud;}{ͷS~kl|y-{&3~fl'=WiNJnc4ӧLڹŌi%_U;h햎6\?=ʴCR CQmep.\ !Z5<1 88~aZmօ`0;t Pe4ymdkgh_bV `=T3` ǯ,ˑrүOs6Qà~珸zD}d2(K/U(k{Ksc\Y؃15֠`{`d˂/I\ciotw6uwg$k"Z9,gH$"\c]-p㼰FJm(r՝|A2DYxEn\?$G@ޣVG!ISB)\VkE*XbwN_@Z} 'X G.Z"z(yh $>ĭ- eG&Gİ4{ZA}M9Y+z~ʃQI #!/R7Tk`ѹq$@0r) UW!&f]jΡmKEzj|-DJB-g+` R\&#Lﵽ0䛗:/Ye2ga4'{M6_{#5;u*J&|p+SPzfSTfb 4#RhMA75ESo/zO(. 3Gx2?X?/@g~@3L*ʔ.O }/'$Xg(ڃ1bOLf!"ܕgs՝.gDD_YLBxR+on*QiW%?m (mGqb7J= 2 x)2?]Ubui.h)QH%ciXQ*@ 5`,W!^0w9>7!a ēZ1he}Z;:z|rbia0VK|/VPRux|ۯEUI~2u}QTWT/⼾z& 3nM^ ôT)C<%gKʢ:Y5n`|,sDUٞ1T,:U16adI (CʰF=PI,ZHHp2F]2x@GL"T%:1qg:WV&/li.chz-W X y-S*S3lt Xak*0b1"V>ud|Yx+lrMr)}A/D!DSjwƤ!4(;/z!^' 4Ulb 2MXL O)5X7܋T9&du)<뢟uЦ0 FjB]cBʃ?HcSX5\"GHu8 Hꭦo-&RWjZPKCHyOwQFL/Wf^Jqe/ĤE>ї鋽:gtQL 6"K6((B` \-EK%ƒoP%C.OU;%mEQdʞ{?d2M ; 9`hOFCW r&sVz?T3hԎ]Q%Ssz3QP,Yiu3 &E62uEVd<**+8gvG %z/"-k(3^ k[excYM/;w~DiF#jqSnJy.G3t{-B픰{sM?9M&N1ҫ<*OE4JBj6/~OjhB.`~6WcLxFȦ+w o^ycI}%={EξE ?뿖eM\e#^8|M' Ēafʗ; șB;#Qc?g?CdX钠_3)Y657~|Y< =}%W(k|wwQL.4G5Xz )k,!p d#Oq?M^oRVlf)Sގܱ@'i؜=G9:~ u|1?_߇³]yRnCen1S@e&h!vʓ1񣐋AqpT&_c-CCȾ"׽[1fOx)gϞ!'M=p iJnʙϐr Mr8 TTDĝgW6O˥Q" '}}T4prX|c|Os6OuZ)+9*=pZQ-'+p>,IS8X>vO*8oϕL'YTqOq(\TϿChpL^ $/S4S%89Hc6ENrFiPi1/ы~Fv Y}J0ĨשVy-u%m_pdAX̓hR)|w>4'e/=ހ@)( !3O& KfRGgr IOfU^JGlቋcweJIpZUIZd)ecU_CjBPy><O(Sa0ϧJ.΂dj%awk>ˎQ1x^B%#">X|WC`aKH02ERL_Q/:b~̢DS q_. %Mp.(ݫXz2ɂ&gWlJ]hܔʢ?w>!ҜG5Z-pبd۫7ٷNLP*ρ&VO^o`]ܦc3⺳2v1(j =H"sI'߻ 7 r2GA7!{]l|uWl5mt09 kR3,0V|#vMU2Pfڌx1o)X,rS&# D= B:$WTĂ G7!;U|3ܔ)>!TH OFZ;#@j5m,!噆Im*Dz _3W T:$ (PFjm}9AwR}MjW5u#!R n9DRch[o+ k+Eg(;`W߁)H#JfTV \uc%U"m_7 qw <]4W~0 Oi2b1eRbE3-j}}-^ s0Qihyͤ- &ǣĥONSmOyKQ)bbk\M8%!XJPZZl̬#"%Qŏ=JE)U$Ulw?aV$9R3l Jr ӏR LSgs33b .`B'vTH3RcM:YeȞɘCR6.baa)U2uWX/:/UsM6(z;sה5,OiZ4b7P;zEefԖ, n 9֕ENJ,A ;[BY,az<0&8籫N ~*c쀞XRmp\^:^^*gɲX{@ >l$֬`*̉U*I5 ''H%j=d Qaǭ~sw ~+O>{7>,(VqʑkґӡəcJ-0VYiAtTJ*ȇv"Ow})-^@fY€tZ`4*"oAuxM ,jJ9aҜf $mBBcqONO~_ǿ ߅fs|ww]=l7!z"74u7x0d]Qlx̀H;Ojyz,D)8Mbk@=L4Z툨 L6"^&>Lj58$j_P*G-Ea2&0 ?M%q1B/2@s#iZljవ͙4$$ΧF5nh\Tc6 =lDFix@d[ILR1YOMŷ5P#.M}Y2/z *З H,~5EenJAhiku\:Ng)QQ΂e1ŕ)0Be(L~1Y?v%mlo$J I.!Q]<[HR{T &U0͐"؆kO\ڵ|)\ơ,hW=Tc?tėYT D Q,ŲLs iձV/ʾQ6rF M^I~ypX:ᱢK"b7Yjt]J^G!URҽa,ֆ`cPخ'QX#M`08*i"z['KpA#QWnF< ~l],֝a'b'A;~ Ps=2YE"ΰ 2lpUo7$֟7ػq=Hd„=תB`W2R~[qqN-HsTXUlfL]ظ;$bMtEOLJ{3 fli3B7vҔxEZ‡[WzȎI[}otP9u0zM99mcG;c=S3בw=.*{%BX׾eI(:NÄHn7pG4JT$^alsܜLU(fXaJO_CD)"Lyo>L_Wx FC:">2qm8px R8%Bc/rj?\Z0 * R4#l׻Y F`f'r0X7?z(S !cUKghP)׬ڝNHR*4$>+:\xO."cG6b72úe wz&X.N'- 5Ov'zc @LҍrGFlC2JOw,U\"\tbᤋ¨jn>&CZƺL^Xk~=8뭦@B{י\P9#H1V;uѽ"F1r<([:ӮRdX5/)4? I@x:riVxZ22/dV;xxY ͝qS[%FU(_gaC2 BTdJ3%",׎kK(C 7k! w aGypreS:bï_-}4zA*jAObQH\c9WQxď6%;X:Q0uZd* KGNf'x WU&2kCW mf;Ř$NFvDnDv4ˬ2WB*zDℂnxU.B+J> ]VvE;_EGY:D;DFv 1 J-T9fu82|^D* F<+3:Ȅvքl~Tzs+H Ԍq8MS`㢤,x\- 1JÙhKrT6E-ʨT [ΦITze>Z~'{XȼBT '@p:Xf`ȓ)bGCg;zUsm3Sb4+!J1˜9ZU) I8NbOsZ:$bf44quZ9$fHi;3#NPT>?J{Q/Vn>*5U~'xP;8ѡ!!AK jl5^7]h*zr?] A˒*ڇN, 6ô]5Q~|Li4_#m-/Z)V0t(y"&@8k{5I2 |e_R\*.(lVeq7~T bA[}:A XkI.]kX./hU|P%m\/W}MyVgQCytDœ'`WS c^U9C%ҢdsQ,FŹO/)GΠqiT_EY|ks!r6F{HENHz9ҶEXvI,^-]7{X&jSEהm4_=~R v(I-Z WNUm*g#`6۝Vp1ᚈ᥇)cME=(^ξ+|\8ԹzlfژSqrAN&Cz&g.C(TtDFnW/ Ґh[9y9؂P`ӫڗʉKt;)kOT +T&]x hV#/HKLf`"aTkG(RkF }p.vcr,M G;/ AX 1u#j;K`_`lKݣ'n`1%$;dXW#HE4jt.#-:ZչzCm%^a5O-0Y6A|Pڏ"l Pvb /N4qjxgƔ֪[ AmjKiz =7^NN7ߺL71M#+RgfNrn.~ZbtЉ3Zlb+b{kZ) @FD"LӲa'Rʼ@??Ҿ ̺1d 3rΒ]:w@x0O:?^YSN;Gn9O%D^Nj1c.-E+r` Qe2v}m{ē-4\pF4<ԤzZ} a2 >t5\(L=|`r+EٲfŌ g$ȐOy߉MLu83(_lxm10Mfdl|@*4|^لg]'(f#V9g5iI 2Ru؎?K&A>_EC ෇9D5+~{(CCpa5&wr<3fL.lU6Su$Dmaz~ loe oͷOui`mw!es^w"T3i#V=W@ 6h#.e܋ӏh 6]Ba5L]%Q@Jc>& w^)+ ;Kwߗ:iig:YTDh"tb Vus mj„m<_Py`jx8?Z qQWoE_J3emb.)j/cc:wdzFlߒ fC$w8kN>9?[;[bv)(R@Wsi@NOLYmF qm8$QكvD5 o`Ԋi B5-_|V o"Ͼ78eqD("J@)ۑ)1;; %̓* ^l]oiE*MT6 l%'*hB?#HT1*FzuEthӌj$W8BզhI ̄FSIb6כu獝:s/PѢtZ;Ss [u(%.YP+,vz3}Kpf i2WuY"VbN(Cz:d`C]*Ӵؼ&@\ 1_'6&0ѯ:i#Hw*jGQc)/My GSTgHppؖJ~ 󊡣- GuɴH*顰h[Q*L,Yʓ&e`0#&9:oOC28G- $D0?鐂#1uR"F{w%2c?ˆhbԓ a?ao NKv(rV F&0l^x0Q̮?{Z # N3#2;~q%C9ğT rKeW;J"nHfo`&n0T6 vSI6v[[|<)Z*n{(1w|@=1rtd4&1 <.3;=V@~>8&A^7m<=TJFS/+ÃѠ*Q+ELa(s$r&[?aέAnh]G3&.כt);>S4&SBDy>͔G %0X\^FUJd~L^5Ld>z=hFp/McSeȑ(:la)J'(M|2Kq:\T< >˯z]( |͆1'm6Nl6#iso-͵y~Il{6LH|H@|#&7a~ZhmhI-P5;9N4LojZmYsu&` r'6&ЭVeS#oRo~'Ǯ鰵߈qyWZ-2K}STbyaq.֥s4@T\V 3yA Q"Ӈ^˞ߊeFmwV,kBy9'Jhm4jR~(R 4r%z{ނv/N;W}(k%~\r?hrCc>@UFKntGґ+uűLI1vF?R=ɗ_|EÅyy n1=BU/FGGId/q['Q>[̸2әc9(ʥFԟd ㅗ4U;awճј"&(A\TwCAAlifԢ%\S3֭v(6wW!v±ըz QKA x' }͆cߧjCA5C1rh;gYάwC]#H:"Q Z;í3V#n TZOa?-QMMj ŻrFɣض B+@L𞍒yQ,mLWk[L@2#'= O /ֶV%  %c:a pලT"ԡvKmȸs;rް]NNۚaNn8VKQl̟⸠}|uTU#UFURhc٪*BN.Q4oaUQ!7R&;2f< o]:ɝ *jt-ږmdbؗL:KnD?;,CX#2"sz= 7͍7-@ {k- bW[o7VneLt+R5mZGL^jUr4YM%"V{[o^RbnM 1^P:z6-PNQ0m 2*@xЋlrˠ6,<i餇#ditKͫ4t0D'Ts4K\?{ɹTz=UNn XT gAF+ uñPl>N9BW $$StF5'V9aeX8ǯG8q?+V]A땳߫T#TӪlS1y?`5y/T>3}v)ytatLgY&ʍ?U{u)=1opK]]eZQ#JR0\VF[mg+x!Dz ^+9qmd{o L#L>[LbN>|H)v.~ j̄k^Yrˉkmar18%yVw boJX^3[h@:cCQ!k+?9+hKZ64eOm2ZyBYnjTatХH&wqjNs &&Xlt1? T11U3HIDrY(T^IQ0E1P8*K(C>k<9jTb[64/5,O6HJJeEQas#{9C @F\ Ya@7dFt΍oD簄BPuF$Of!Kjf 2"#"8* YIHs@:]YhLLS@] "斨=[i6FgT&SX,Ӛs\m:#$0gNhܢxUg(v;PPz<LIXԲz׭㓌1nSCum- .7@g:l\)Rk]!Z6ˆXOi*fvJ-THLaVbC%GR"](W/\nDڭydLLʄNfř㞰a/ F SaE[oE865DpճሂP NWȷK{$g2 í<99`][ ;UpTs[GR)jĨ>[)sxQۨWN[NZqsF=z~g^V%4M{w P B<+S #71*t:z7@RۏIK!WGT2Jm@*[ҧD 6`TGA;@ȤYOѣv?kJK_/.9ƬVUgg Z~67 jU)]Z\d)?kQ7* Tn"=ňz+$ w$z5+ڸLH΄ўv雐s1phn,Jc渚H#Hٖb_}Tab+|hrq`Ͳ*#ҾP.r 7+l:iItxzwN>gX].>m͈DVq^n&s~Qjs@ FW0/mQ'&ކtK`L,"pA\\$7%qo(fݸ࡬v]fc=,dFC8rgqzAS,W<^=XM O~! TGa ~,7$FCf̳` pZY 䯌1-7Mc`B"#4qK=ק0aXQRH+Y5#fX:a&N;K1(d* \a&ұUMZLkFn߽7ˏ%ĵa ed6E |`d'u{Cr%?.-cɁ`-@@)*8<9<˿=O)obڃw^X rp[ Z¡>uC3#|iLH訰 /QXMf.gc~MͳD(ԉv>hq 5PzH [tɷ3wDUZL^V9:bк~AU W2" ̄@jŌߵ@/9C[ }/v BcT^Z??W4\^ACEa?C _o>I{+> 9c:SDj.]x#|tnw8LLjUkH,xӒ)~eAx :ĺ -PEJycE|IJ\ 9X/GJ $r/ ӻ")a{kPYVmjsY(R9(6f5Lz!hvn 31kTro̒s2^%p XZl5bV6$Dp0ї(EVGO> ˖޼霛~c9xt)3IO$NKK ?B0|&]X+]C0rzibFM$0Uj/w?F6w_67}-̽ܽY\K=0Yg_ZNӖ3+{E; (br!f0 #|cv|>FSm*;5lt$6[8I^xi>чpPG'=h'R =B 58Ɩw7 KaRb{&])n*=pDu0 ̒}qNEƗ9/[dWKY^ C+Fp`QCn _bo2Q%<3T1AٯT,dMv7\ T_ guZ_ک\C?}OH_E3A0c̭&<,Ącޫc_rL@*3 Te8n{&叼K&f^dD߀ܟhj&]}vrwf6cdg "m߰CnowpT ǾXԛ;-mĒ] N_Ϝ; Lo0#\qIrK n Ĺ|SjT{1}o90bFU0! ՛tu(u׽t_e»dm M0|'b9 R]=X } ԋ/M}ڻhVWvj?M5)xZ ՠiR{Z[Tڼ)D=&2i]/XrbgSJqFg$CN׎s//A/>W9ωVd_DP$ Nk"j8LthO_ZT9nw;இwݕxV!R_ 1_bfJDdx UGAZ\[PBKIOoU,_ vvDrH@{=eb@ @.Qe0{v~P#T,#1&-DPUdpSICN ٞ6s23']S?tq%.|+woAlX=-4 Xf!S(e5/w-9s/bg.mÆ5ON>'n2BA"Ao4e볼6VGFvX+iХg]ibp3Ԧ3lU%F +ǵ =+xUm'<:>,L]ۺC$Mӗ{E3pcDZ,J_KbN[2~wa͢=?dG,t]uVkܔ/d%r?~lj`;j-!x*~.pw~~ ߽yZ?_} >kz{OfHuNA[|$Vwsn\S~iAn`qyX:*L{RKjR+f k~ JZuѐ㈅mu'_tڡ;_'F2A8q9d$Uaa /]qp!Kיx`,Gc`,5H nq(BX% jj5fkop}c`Vcw{oj7h+,.:"z\3H믧}O&*T >\tA< oT*!hkC]LXSl{Txw7=;yj[юC-0L}fSs.6~^k`U+eFyKf5= )l0,l ڵG4nP)@ mW[$E,NJHo/#Gy}, 8ņEtp%lMGv}R.uC]+4wtEfҎxh%S9ey[hsAбqN-ƱsJqrd F]8oHu1TAP7FͪS}߬tNpk֢!=ŰqGJ=rMGxZ;A  1}RA 3DeY7v e2$b}7Xe>TOZ#841O,GS1GG|>$nhhE(=jჾ=141yd-QFyY+1z@ZT>$v}BiEuѢڕ0LWѥ'Pq_!_8g~nu(ƃwXmUKxw.B2%ɽǤõzӎ8ٸKp={٠䴭>E9Mh[ň ׎TD\ ?e{qV^#oPj c ecgBm}ݼ.5F5)&ÇJPZ|JS%ɦʿ9oFcTէ1Oglq?zl~zzdǤ 02p*E˒ Fb72 R:ȣ0fR/iE?4y*: hnг\倛 |MeN67rnkp닧dl -igMc !q2_D> oSa{Fϧ>EQkƶp 8qE=%„He^#+mk#`!K9ir6_,\΅lkDh D1S'<ۋ$;ժoo;->L鰏Qr9c0@0`\(ancE!ȇF@ ?{ޘƑ § N2$rH#l9qVҢ Ҭà.ԥE7}OYk{WWWWW &ć&!q#sIvc3ǽkS ըB޺b"7DRBIxےӃ$OCWk82a@ ahӱm>H-[koǼ~o޵ 5f \]SʢG &o ΄Ą3ΛϭN T .asB !hoSoz P{eX'F M:28ԃLٲd021a@XП4 |bG1*85e0a)2%h kcդe xFH؋q ֑=v >yg4P$R^+ۏ.;𳴵:eY `C?YWN@pk&̇ n]{} gI.LYFzUAb-Ow̏۽20Iؕ7ǔ1 9hCW\3_N| _zoR H'EMǚwC8ɒfH.H!%H1"*5bÓuLs!N]K̐Lg<;5u欕"brY-BWճD/Sg%ZVf2g'(dj\0qeqq AjAVJ*},#ʘ>,cqqL WĮ7ʢk܆6)#IsX Hř6 ?+k2?3,ϊ\f*P$Kз}WI+wRN:o>}63 uQK/ ^~X/].ֈǎ8ïJhUç&str_&9}LfAl-,Ht0T=8 3*BTtD7`8կ^o|;W,{^ ¿ۈK5׶xw +rJ=эOx]jKZU=@bߚ\8Wr5˩IO=Pj<f Lt* gu8 PKg#u\ ߣ:oւkI YB(-U,"<XK_jI{A:g-a5$Ե7w?EUtŃR~i9|{"_p?ֹ D`^`NhW:nɯx}rtīcGcXoaU'#Abl4;xFWNNn^g;ck>~p$]HrIENxDzE.ౖJ'~C׿3ÕkAVz+q@bg+y_u+=Kz'sL,hlL+MOgX}(FC ft%|>6J/M#T ) >!HSʮ2@ \&>=RA^mHa?J^ΔYqKz$Ct@M'5\UyP2[bYě-u&e(`M 4Hc)]N|z٭bZ>=ؗ[ dER/1 $}+;aY#P-iĮ5.+܏ |*on7}~e_:Vju-2bؽS!-t" t¼A l7˵i0ԘV#)ǼW+G[z}ȧDG?QGq_3r}姻y38g{D Hl Lba0ebK.J ̝|\̧KP2$@2.XeP>k-/WV"L侜7nqS{'sgK F> AiWz|oQ2 Q2fT W'`A%ơ F7LnVzPc=I3kT1s+tBRŗcmefd@TLɄ)h^!t")ƙԒJ(xS-x0GK춏!ы䍞}7T= `b/(6!n ټe.+u {X#ghķl*rf.dcs&.f4,5lV'x[v-}td}: uB(iۺ#4a297iF̸O?kO[鿌W^ N) M $j<:S;:#ҮZ w9APX0W 﨑tP/&#G(aViA #ID2 oGx.YEҸ8RI3maΝ,D>E o]W~R'zuƹ"9T)p SLP*+(:bZq7g)iUj4w6H@c]x8wX4fzB31F;q{t5"Q/C :ܩ cEj ixeI:ʹ2eXI#DT[qcJ L<8lp@AʆSzpE >e%i(²n']:vospF KV>gMymӌ!R4ʴ~G X23#*`_/dK+XQ8*ǥMS_5۾ng@@jc+ ^UckJMƘnݏyQF* Ӑ\2 \T [Jm-AnrTCK rO<PR1+~QBBոi2'CMPvPt"SxeHk%N'(N&vqoM0١c-Ɯ@Oyf(pQjQU8  TH|0i#™D5эR+x#p1|AI#q^||ވQ{ OYwPʳ+J8{G'B,F# 㒊'w@^+g<L Sr%I1pgp!MSI"NH }Z"0f݄to;'>O~8|ֻZ5MRKiZɊ:Fb+B;%q."Ϧx+$=ֹsS (qNg)5qDX #\[HAXb㍽%-,} )ԬÉ!ʓ ˕)~+|N!q8 gn0:l0bPӗcs2l;0()#0e;t B4\륳n~ܨ~w~vV.%*ueW7Up7GPæ8:g۱HeH)eT]7P`X-=oS#S 'Z^IwY:ɤiZKI(;X` ys,?N<y 9`Du9 Ocw_tN$|Yo0~Ύ(XGHR oo %K"|&gE ه٧t;Q:|V7#h"u5m<2(|2$; Ќt_^VY""_P(lDؗvKVٖ^FZʤzoFQ$Ra pH!5"n|7Ijblg >vz*rgn5)–NWY+@Llx WWpr!m?:M;ƞbb]MߜhH/_맼kIe|< R)pQA)OޑM`%`顧jr2 R prt<_HYjdOzQ]Ra$'_%.rIk!X@GX0ЀZn<"{~>T_ǂpJ/k\Y^`U~k'4Rnlmht Q%$ J0q +J+,FRnԀ.J%YhE-QzUT\6BmQQ mZ enǥ Pa0t~󂭈{!xZ#pPGe0Bd@0gl 4$ϲV'́c8o.?'{{ֻ-_m?{КXEsՒп7_`ʥۏN= c|-O5["5oɆD&-]}> u)nh ՟PRqWZg:20Bzz H/DEpொPu?9O>"?a[bV%#5<ƸlihZ$KZhs!Vb!)-9]KetqU/;hċvA L8PI;.B G74dw_Ju GX:leuI "5)\#˚%?f4ѹ]-Ytvӿ1,xy' '^^uN2{xeLVVzAbrzH;\46g S ܒeN}'JW/F?dY[DK^>soC{ȅ0.Dɳd?>K\VReu8N!qgw'SET20uҳp {79/xAs{4kx9xbٌM ZxdUвxxT8c] FI3?WaY?]eٓ^uJ{qRyݲEgól+H4ti+rUP@X H&W:k<|zgE/ ڡ/rm `a1  +tBom/'>D}R?pXita%2h33/-揋u΋=Tgwʠx)'w(õo/x<ÏaC!Jnc MNѦJ:\ ْ=nabXK;=֦3#mafZw>A=ouOp&jM?!9*ןkGwvs%z5ZӿyqEXRWJYG3,NPqE[00Q[}Hly×o~b&Ssv++  _ 5C`:b~6Ч/cъbJK)Fyӆ,h,5%# ked]X‚.imA@ICCH)%B9k"0uQ)DA.%38ETۈ%NdgyB#~# ̈@O[#W ꤍՅ@VZ-k%47u/ջW7QS>_T kkb}qGBhL6ӺTFgRiykPj ]@jj",BV ,W*HS W yX%_5m=՗̑nfb-z/&MyY()[vel+HPdV&>ODVq[Jx`ѷ/H, !'K XlymICxF!dW~>WK!!sN=H3C$.ӕ%9nIQ\)͐=fOS_҃%ϊ&L,v6@,QT tIO̞0 ]]:f_/ rw[7(tZ⁈Y)*D M@VD ր8:zv5TYni|_\81iu*% qnZF㖀 B\,U* #R0JiRD>}5!Z| #.~mĕDL.,YeT,D8@bxq(sOav}Uui_zLg_M΄0c_HŖ)VbxP6H^1>o(֝QXZO 080wU27;ixBkSmy$ COrGG͊.O@@_oixa[ښQ ߦc=_ت}W۬T 3)I2CN"'\t=2pl^(!MCޛR)+Dzǫ꤉~/Bm;{|'oeO`l5:- o:ţkd Iȥ?Er,uk˹S"#Hp% r/ǿvۻbs><ő/H ǭ\o8hX)c(rVzj+ FyUN6#{2|Мyk4Q'm޳ɿqk[a30|=A.*.4AUȹ)ajs!Mv"<,JG@\LIjpCP=amKf4ڊ{ӮIbuic_[7,fRXGF-FhaY6& 0$S`ޮV8L #c Mǖ[(nr+H⥍C/v8I=o}@&U]!зۿe^(eDSW)G<8SZ[peQcգ3M2-|gcI'KDdufNV=ԾYs>gh39Tn=ֶ/"Ғp85-*z767?rb Ü!  -!jXCLBzqlޱSH_\*o?8aZlz.hJ7Od80c̰K/b~Pvj~kE&<3Lb0f38kFmvq%bO[֌üm3e*|IFaap>q&v 穗6*ԂD1mɉIN/7YM-|+j. -{=6ڷνA.)JqRpt| rd2=b)D BT%&k1#o2k>pYs, ZL6M9DxޅW7vxڥBP]7 c[sI iH1vBUnUdYWFۗ?>@QdL= 8zݽ=~{%CN[RXck*M 2Uhn=C%Jesތ*]2W kXOٮ͙z-q](*.bMJFD LJK(شow8o[!o%ɷyy;sg1+?[ȟ'_v 斨/w:ǭTEkj!]x{5|rðD#fMΖ~CͣEKcŭՖԻƯTB/@6p ŭR=CŻ2SN`2 p5qMqHrZy%i0JhC=K26WXȵuCW@}/5B6uAT"Y@H4hT {u?4(;0-ga70/4$llF;Uᒑ6Gz珬r&C^'Cv}ٷmK@0+A*e(p#Q;=>?h<>*\!y`B9qUb1E K~Vsd)'Wx2Ιt= FrH5ݣߥDdf1 L "X6!ȏB\ 07ԁIǠAʣHDlE , a/|@Cپ_N»%Dl|RuB`wh9` Փ'W6m8F#]F@`2wfp WN{\q݊odŤ}Jq^)Mm* ifϫ"aUJt!ꨐՅbs(6H$;!7iȎj>*Sr!1B1E-*=x6?VCP0Ef|VEWC6R7xE\Ue6i3{"u%[ֺXn\w-G}1y[ڴ"MW`X?Kggv-eOBaTQ}iO,-YʅaѪ$FJfᠹ:r-ڣJ&†s1B;0&.i*J'7i}L0w9 8JU".= maQ֥ 0rXDV%w!iKu_ : (F fqKץA01숌Z P=8p0~S`\\lS!hl $O]X!ypڥlЎd;%!pV#/T9_1#_F XVͤISȗ\s}6:HPαPBL MdyٔYl33Iz̴>eZh$ -DU8g`xq Iw**m$id9Wb[ZZ3w%u'E3U\OIRۋ& ԑD){R;ŚINpFxq?F1B.U$-şɖ1?=u۱VHꢼ3Fge cGDU .AMLn7eLFaA2 }Y凥m4{mikZhrWᆇVj_HWğj(9mhEb}yy4CJ;V2̷~d ſJjﺁþv Xմ 0[L^Ê1ѤAk<ͥb*hٕ@)iq[ *0xY>ϩ⇽/{[{];Gfn^RӞ$c{HwW2r?dA2qaqkMЏlqyc/Ƌ ^\S=GPtYc/TC`g/n5qM nj+ʝN w-$Afy5'ۿb#KZN(?qQ KR:BQ³ZLCE»bv6-C[h=qo) ϩFz i9ˎ0n.|P$۬kt !@Y:.8.IO޶ݱb z8ԧNB?ç c3d؀x1e  AN%/p%K 4D񽡃OANɜ޲5,RLY_ ?ڗ3BD> AeVb!曳Zm\~ O:$Ni2Ƭq5ÜT[.J=8.tgo!MPYܓw#BR@|w#DF^RNLRgr SJuZI6׋bGaǠWN{E8q$l2Xs9r3t>HJ)zɁKT<2m(+ɈPi=j"/h7tn~f  *d>Fn]qAl_i=%"qX>>>nxFeCuF1jEbuyjjĕ {U:Foqm,5J( =tkA&P@rj}1.xWz+񆋄RB3[my?LL,4ޢ}>itNVJzi)z8+g4Xʂ^AM㸵`esvb{t?4 + hZGϟ†3 .=i*WUH8 Hgni;[+-Cdhf mʨ.8ĀN[9Wj%#ۯ`RJkiO ЙAE 6 1 @'Q("v4zA@/vm`$@Lc]u\4Wb#/83֕m,K(GWH21txzyk zvm8_jEJu#dIݜBNLo!|K]M}u(?CPCB~Z/#\CPp w E477 fr^^:="/?%Bt{?At|a,ΓK9+*VQ (Bߪ=#6LͱmNet#|ykI9="knpA#^wv'![TX,)M&K]4Fјq9:<,d[}i#&\ztv@`lEy됟,Qi8_5E>'xZNI&2!]y^?#yyn@]Y i##)^cRFU__C>wԖ{ZSBYQ0/Q+80#$U`t=/Ny@aљw,Fv Nw5e˒!>m q=ӵĶSk~9yF[YǏ\#@p#D [ۭO s5fQñ=hVTz:w|ï|{~nrB3~gy/y@\>"T/4=,9*D6 D #[iPiFk>yKiQ0CU ix PrksV 'XG֥h}:Y:?~\缜\VXH|I J~5v H4!n` Qz~R\Y/gB*Q@QֻV{tz~'G1t#cAp:3" RVDMt'Hf/͍6G::g1)Z鏒&A}`SGm"_tRof^ &ɖ\X wq{m(ʫ #NG(.cK+(-fb/b^U13d4G]B N]F=Iki5j^=UNu\rb Ӷ&ߩ -! p`vxT"Vz"N@&8@{YP[?lPLwU BKdH3P, H[/n8tŪ!ѡ!#7뫲ȭdfv"1ݴ7ޅ̫,H̫aƜykv쇳7ř<+ Ÿ3Jǂ^,D_},:,YbIM:ЯzڛfvPLyyp]:oM';Wo^ oKۃ0JV?PȐ2j\CP\mz{zRyEBkaǥJƵuWilouZn`UH|}vING92u__Cn_0By=jY!%>K썇'wE6FrfO4ڭXbw8G|7ʠR\`R25@3}]/4sp1:|`ﶚ{5΄v! 6݂_P "cȊ(jQxA |{2?9~z!GĠGhzHҖڅ!"7r-jp8d:%v2lƑ! Eƾ\ fe9ux =dX́"/W+g:i\2-n sE_̦jdˬMB/Դ)ie[bգ#DKF~9z>\ڈ)jRjtND{8+F"ͿW.N*/-BǓ?$'.ԇzz%[o_vNVr>d+g^ν`OZ;<<(p_6Hˑ31N,l\ojL'nh1ZibsDf0֍ 8l(}D[[ )hTfn,Q}-zQ&f3z`=Ѻh,:=[ [;>AαqӰmV4h` Gq8XH6Z: upE74,TKKـ]^Ax>0 `xޘn)(/. Mq`}XCV7N5A%te(~znU^^zXQqrx^x)@ INA )QZs?! Np0¹#"!r:t4(W0]\ dcݐbXm(;q%Yz}!)CpuWߐ= Y//WO/Aʟ܏%6* S7t袐XˇSp|xmCLsƲ shxWq( ij9gϿ;~2&;P˖5+h GJ.e"c XU7;'$ cÂfLMkD;GMFîNFcJ=XBi!pp!ژ7{-zq0Av`3]mI`f$^`bElFte L!C"W($(!]wc?ؼțwpzF~4sOs.rȑ]Dk*0";fGAVDuwxw'bY}]u ՀQ &x)^Ґm,ਸ0S 3|Ƿh_\N'$*[<8;c9DQm( \)PM/NO9=6&Xj !c뵬Vc!H9\uŐd֬q% :kKڤA.!3,ɛ÷'qq|88EFƳ$E.5Zo{h>o7@^W W}rtīcy-dN\j|!, 2ЛJP z_X' 11/p4LH;V'Ɋx8Q+/:S,a{{"^z7fus{㛊xiN5P#C gR`3t#s$TT(" Al,,ܓKW':#+Ai0 R ;-+3Obbf>Xy `<6 {D˿8@fdGXWB2mH+O?&xivcKRBqh[; bj" 69臔ԏ[}ܢōx /M.P& &b&,p;'BWU4D1:ǯիr!|>gHSӁVh 09x*%iE/wE*hwEn(,n_[)(cR*+(ٸRm_f1exχ7nxvsa+V`{D}uʗI`H E1SiN $ӧUi,W V8[8dʡe8+`IJ6~n[Vi(nF3ɕAv5n[h.WMv(Bmj|%ؔJj)V(PӬBڑדzu[䱅?R"Z>rRvS J kd"P.BqLVr]̈́#L~>,0b9lA@G!00&* ZZ=Eeim/Yq V ZI?l'>ШtNxQw;'̏0x^n敿yO@jsCeZ"fj;UYtZ f9|wH=ãAwh@f/o;Vf~H5; N6[FB ڮ@Q؆^ `{xpaoBLx_N)y?|?Sɽ몷޿f o?)##q5*0%%禄>@ȹDQgN:b F!P}C%$wI̫OY?PZJ\Żwkʻc5Xǐt#m#JcoUVMͩ&vW(~HoaP+gemjur%ͼJK󔵘cÃv}sX+`=M,|h: XZ]8 lF'-kI0BՈ#xGwԹsծ]@ C``7Gշbs-^;׻ t{ճ&kq؁l($ǢO& €pC#rNAIeԧ.V3YGim&jҸ ^Մؑ`;.p [˕Ϳ67jǣ4gI g+*͟ SE5iHըBj[W%2F6%i{!/:d2Y_6!it;阓eW"7GD01~G |L(7fBq{&2Tڼ.* x;dQ?E8J{鰋.4{>1 \V>=~^H΍yF!嬈d5o]ʃ _Jh?ʧt)s(kj6uBF&ZHR8ڵУ2Y]sJfmijϚ?)oVi(TS=cH)F_nLYSw\&*uɉr-*e|k;""~.WyUqL)*džFM*U5LRMI ܿ"enmB -&,~)?lTq쏑I &uG3@2I|jU n{RsJd=]e!L6;s1ʚq;hY)GSZ> >& yG=c=D- L_ϿSɯG-BHwۧ>)NEyBfS,pF/dR͇C uY?#>`cn:a5$AόA3=A: ~͍gt#7olx?ʿ[ٶQO5rڤuGXD.kbxD.5$f7dzY>y"&$fA+gCg`x|MZYI`^y=Ml ,  cQ  s4Jl}H?ue\24>Oza$A%J݀1\bP;<_:F%WUu~ ̰ŔڟI֒p:0hQˏv F7JN#? +I,PH6w%J|c+Qa<N{G&}Q/1;_!Q8Aj*hx_ |H{XBZ "Iǒ՜) ]Qzg؍+ o0+ > ,<7J>&xcS˟g8?,h\BI}<#ߥOf>4(#I rh|ˤeijDsȀQh#}kv$MO/!Y:Huu|WnT>k~VuD.PKjs\SCZUTOl ݹ/]5J#ye 6KHP8˼4@礡b%TmtCI |Vo茇KU#<՚Zp*Zp]P&[Wozy+3-UVe)r1yT|C&^ܴQ ::t7C8|#%$EfcqLm{/A.۬|5M]DN(b4=54gȵ-+b]"×o;!{/&h&~MŤO Eꎩfo6w{\ Bǧx*bf5w >G87/͟:{Λ|>I$dr;8hr5< BM!liA>4xEC: fn%!Gr+3 (Ѡ(ygz<@(D$>Z5A10bnyxTpƤvй`mX V. Х~$u[_/OWRv`lpvvQ<lstNB{:K=xQЮ0$))Ԋ#C>؄u[г!a ɧˡx%=, 3b]hZ_q]*e5c&X=p' :BD]F}kX˚9 v^ 3'_FVKʉ xB$u(T9PJ>X'5$$f.[.12Z/$Y s JZ^Zy37znni~!ONW;וu M󻂩CDE5 rq  ͪx=-s#7PuYޱ&,W[U29`Iɇ&ck-?˥GQS3ک[fzD~:2a|C]ο[װx~u{%ҿ8F}~_wGN!6V_p{D_sM٦gc},ǧ7}XWÉUVB"3 G[։\:pLiWBO(BHW&(Yim' ]x&Ԇy45C7Q g Q3ل?ii cb%.\HnGpFB60‚0jEyvktE3.%d0XFwd]9={~L)\3%C@ mcBH%M ?.Ms(\,Aw^u\x,#Rb ǝyClg7~4uUI;ЈtU`Wh:|cpydrϼCFN/~)rάH`GU QDŽ7EP Ep h,B,AuxH,,D=6%\ĺ 時wL>ٖ/b|$6sG^~;rVI*C"GMV?.bϟV/s'HڻO{>^C 4 ! 2QmO(M"'N'm:'fxg?azJ2%'Tf&'1˙@ vHhI^k+#IgBҐȖZ*Uや bCa)k58Y!hxL%|ND.[*.&p; yA$z0 aUd&8s>e@ʵhG铎zjEe z(Yv,&KUH&"ud1&`l9x5C؜"?Mk_l_l&R%xq@$ū M斸!jzBHizBAWלs W$s$.'<( Co-o8T_u q7>AH .j|Xa SzڣU̗Y67*y>elҥ,JaTTwabJ=:Hy@EyƄq#YaFX~R5ԺHKS TFP #Ў;5sJ*eI74Lr" w1 ޘ&z*K|"&%X!%φue)7sG_{]L)WvԬ2I4h\,2T :qEt5e37~-((՟7$s;: G8"|b3J|,8(Sv.ps]:ɜ<[lfOʜ-?ӶK=~sc߾9, I!?a$HRN)cv嶧DI97 =(`.D vl*1qL;?N]CՌ哢#8(*= f .PiVU5Ս:sqC~R|TFzQgQO>:=gz0NH^A{#F]&8Jţc== 2?kyR5GaRA:["hrNp$Q$U̾BMaX<Ӥrgid+ y1Y~q7G@e qo-ھ"n+,Bxi.$F>@s[;Cp9[Rf#~h0qV98WK4KR SMc9ugS霒?3F{r2E-1w^]ۺy&W+:Cq8zE{ z {Bx}K:'HN‡"R@ŷ_CkQ h}{4.HzaQ ØHfd"ZJevF$_zbmm"^ 6k(e6 9@iՐc^0L7x;Eb_aQ/q~o6'V!j]ryfYX!UXc^:x>UV!-蚨⑫[TbulI(FA.!Re{.<Jj%i!-;WX%xUq}?QgbDiW7-GAq#/n 15>26#_A?aRZSA7ld&kjj;"DbJᶞ0&чHƳA$urx}[) b+m>%Hz*E! QZJ3Ѻpx*b YE9Di_rFndtvr峅"Gcbu~Q7誕"`Ձ &;o5W06Q@065Yo$PZϋ[ c=#Lꠦ<:h. cLAâOIdQH(] P xㄖ %8|". 5%c8 a5!ZC}M[9%Y]Jqonm} .ns' L!K9oEaAD 7So76 - pzfLԚG4*Ҟ@P x6fu]xX䃢A=8ww D z8U0!2Zr4ϰ)4qBI䕏E᝝ =uTHB~@ :~:tjhdK`+Z aB#D^Ư(L/ozuͩքB1QbU ֳ˪mkwG7;.!!Jh Pʂ]^ К/ n~%Va:8YiQycjBYUWԊ94=]CN?.SNbz sa|`61['+n+"EZGțb7<`5{Sgw}{kI&7ж|Jh!߆Da3ԏl]l]ļva22HFhZ<&vaFcl!yO%!U-a͊Uyi#KU:O^5{_Ƒ-JKxC2X`ŒX XVKYNQ57/>R}x,s(Tr̫*.u1.=y2|7gEZaL}H,(>6,{4Fo~^)15Y1F7Э'Jǫiv05o|,TR RxI$}4=Ch1W]TW2p돉MQO7ťD{Y,]||R/+n\ Rȥ%vͻbӸjS_ME*%d$W4cC2 -zCyV 3gA3xتn# gdu,cZg=9,>Վ\MjbVfVku$ƀP݁L@ňk9.ǘ8I5[ ugu<~Il]}~N8'BsBeRm93'C"ID62 LްMS.;y ]3ΉӇ'Z%̡vS4Vƽ mdI9bt14~辶 sWHndoQK#eu Iwn}E Jj7dbRRctғ$mBexAZ=R3De0K yUUG~<9?3`ȃM#Ӻ y"֍ &Z.ɸo <)ZVV5Z&'Ӵ'V"`cao,*M W"RF0&OMˡQgU$oG!f?ʗ=(-\'V_ɤe mURk*naܖCJ7]ǗcdA0Ja$&I?AD;IF9 0,vF*l@=K}Tɶ"dB}0Z!$rBU=9v7" 9\ 00Yhfo_,X}1L@i.~!Z˶4;A HQdA8=&nzt!`JfĔjh]2B4zy| F1\k?GbL  ZF| `PY5'^44CxɸhsoKbҝ6$U[eb#-d96ЖEU'gQfCD aҨ:`'6۷=*&O((;n2vm X;KR}┨>ITSR!%b8V `93`nUs GQ*26Ei))]8")oRLAfk}?5^OIA>NA ! (D(#Xl,Y4_%$ƍYrKS3T`0y,g^`SE/0Z$AEQ@.5D$5`lRFQH>YL '\bJ4}oX&(0oAɍ WWELĺhCن,(? 7$@vrIoR4ˆqA3c>yq,>ox'{#.|X˂rRWQh*#v2mgLGQM8E? MO8=kjB*lHRrnal%'ыYZ l!gg&i O_9N[:ئNa1f+c.fD$LL֡Uy)g ZBt!rb N[5t2܋-Ӫ5s!kI6Iݘȓj./D;ɿJ q.ė} B&M缍(ƌu>GүUPz@+@KZVFn rX:σ.ob);~j' rZBB  į,ky]%^h|Y\eyuXNSQos:T/% p"P) )Zafs'P;`*4Pp*o?l!Njb] [9xhLQHrerG|@Ch,`&հ*EĮ> RI0`/XrwL;/, jMKpIƞL++f^T~p޾NS7X` !­h=1pU^& HvT^l%WLd) OL:N=~zSNR/!o`( @azKQRfiCa8WZRe]HS8́ iTV *p7u 4&j@_JeM\G.q1.܇)ϫO;SB4 EɉIJ24@ x9bu,_locU%U2_uiE|DV(*H+[ Ҵzf3nM tðT cPTz9hϖ D2c%ybO&V]0 i9,Clχ*DA$0UdCJI!K'iXap^TQI,:OnT|I5WW/0:^(L_ @yF_gz}5έ,eRǬ`o1b'L>Sv<`}Iv3Ym+rmдcoV1s_I, vU}Ч=YQc, ¤!@!Eb2AszN;1^M_S,doz(Tz'[K_ aœK_c!hEd byoJ ssb[xtK+im3?Rd VRʢrpߓd2%uκ hDqPni)`}/\|LҼwu`՞+"LTq@᭫`ARm5oͮ$[')5Ƭ5vTdp:,tR(Պc&)iu:l<W)9MPy2 h 0myqAm~ZhOCQl3zѝ#QEiu8LyFJi#Tӭ}BVfX&Ie Ћx Ⱦ3]P*STѢBKvJ%)\ u:y3řQuN354wQ\r6^ lP\yQ%0*׹T[J!AK%2oP$M.NU9%mAQdž?:HbkBN`X!v6YA9-\є՟0O'*l#)/=jV~U}hJNOR* )0,XcDĤHFwg_4$܊a[\ea;' Ulr $};c -`'Q#"gӋd8lXa y<җ.') o$1.j$g&C,T~/Z6̊rLh;ndra~йȄ ps#vN *#9a1MbNei0jrYf=6% Tۍ;:ǰUMbə)ha+ʴfEn( 8x'&KE[U-vlUT%4jog,=OK2 &rd֑ /EKb^Sv0?DRhL!U(kaœ!gP24tHPٯCJ, ?Q]}FAxh+2gHh'ϟYr)Ik,"p#d#^Z8a߼p57)-^>o' X_H%ّwO9:~o1?]“Mٌ͗c ;@e"h!ˣc'1'ibL_LN^;bmD܉;bR@j5b/_DϪz> ߄3_)4!pNQDg7of!sfAFɌ',m«f[H&lhh qT28ۃ%[y3*ϟ-x)<-J uvsO*Nh7ϙLE xt"NН|}m*$6xdCL7P&yDdhC0JOxI>Cײ7H%^zhKTGT.FVn׌ϫ+IO,‚#'lgnZ_'e(3`XF>j0=atg_!?dd9wm ĺ8enGkx@I"GRwT2gǼ'F]gN0xu.*yu gDu O*1cT\L%$:o>؃Iϟ9*7g YE6OWVJ;.ɰ)ſ1bzriUHLR/+}=9ޠyF_ # ̤/ķw,io(~<LpV6N4T1zn݃E)S}CBu8!Խha~ %ךZl֏}X>q|;Dq3z^}vD: _'fAۢ2rɍ%EW_xTA.Qc^?[пǗ 1΀A{\a 8l+RyY,pםW>Ƿ]ed114Jn$L J[m 6"ދ%ɤK- { fXJAS)8jLBSAĩNCeO Ǯ`_f2ӵM&HJP^k[u_2% ~iG0WWAXV?N#?ӈ֠>g:(UWB>|\όX Kc7U1PXCD~^^b$E*lD2i~XryzM2]+N=˖TD{8re޸o2a5e5˲S T ƭņ$͌ZYEϘck]iT`wZIA;<aB,% \ܤGG z}1m{& 4g+* 67Z32:V$U%N8GGۋ1FAִ5GGګ`͟?8|w?kwaW7/={7~2,"U1M൱?wp(Բ^ LTfՉ[9+fggūͭ!#%=ws9L,sԈıF%Ǟ;Oʬ4+ZI Sf[~ ˅:&X֨!&X0Jڻwq pAa4#;ـb yHk!qNvOo+_=_(6EWV{|Pl~kmn!) { }*s!׺n|>s ҎFEe6KZہ$ P!ֈA֎.Ua45q1<^DñǞy*W "9ĻyZZ`w*7fY=)[!c7eFvk3LʶQߚ{"ljhtJ9luG5G/&~2P9WOksGPWJF1T*"SB!R<21mв40ֹ20%ǐ!@*ʆ` ׀ӎg5LsRky eq5I#Ǭ [=FVjZܨȺ ,qFŠaN95ofߪvHˤ_*(\DA6LB'NuQ CMO{Z齿 SO1:ɸ.3 E7 Ѣ Qg0m'Nց։*9 d9<7i(]8Јȓb )5԰SppZ~jBA-힨F?P\K0X}LԢPJF-0^,d.g0 }`~릧2%9q)Br>@S#.bEvpځoeA]Ssnc13(jbn@79Qrk|+n̔JG3ϣ= ieI/[Aw2 }pFb9-*pmyPV΢e)/rŁ!5pUaRP1;PCْ6672)k $r E$}V}BF *bT0͐"B߆@XBڡJ,dOԌ KH@J*i;1GBʆ(wgy3Ңcnm$&qe2F  }.Y:xpgۊ/d[ܰ-C2jt{㔣˭ `mP;Q\ -B養M j8U UGGNj hm)~\Z=u$ |LgD~ӏ vO)zPjְ۽ 9 IGXAVGEl>IvL ksSL- > N;|щ xH11Nsone95UO38]eAӆc?番 t٪z4]+ОWSJs!,,uPžKGA |IuE 0YX 9i .#JG1%}!EpVQjhuީ͙pM )ٸ9f&-щ;B!t{Xc kߞ -'^dh5FK BjFee!$ ,VMď:1y8M11خvSZP+>:5/uZ>?ǡ0 ?^|Z7j%~/0ToNX~UԊVءSa~2%8]?'˘<_#s֍KvR6O<)"eX6Ά9\jԿ( ( RiF3X(2'^b~b" ORbLi/s965堼&W5u!/X 6IcYGK]^KYь U&3IFbhג]^4aJToݖUr11>yV!Kv3SNk͔.4sdִc/De(e"y HQU|M (M"Շ4uMeZU[7~=8S՛ }P!H1VH+uѾ"FrNʑ- aWX(PYgG >pQm$j `ic94UW3<3"G% Dҩ;a*KVMf ⨃jwIeaMȖ?hω KEuY<WKI|N*;T-[ʢ@M+˟} }u# E=0D!v;#⯓SېxD%9X2S0uR$*2sNj\'T{ WlU&2XkAsW mf3bLuB8EnXG64nIy H cU&.@gTtB[(*T(vJtYeҗ~ n!G 5&H(*CLV_Sޯs䘱,O $ZDLP"rV.JYN39i;WT5 է8TiOe%AYp9[-b2AX=4lJQN KN&IDze<~'e{] I! # ";*X[a"l^gx]_̕+nȗ%a_LI@w L1L Ơ fV6RlD.HՄ\VK>2˯Cj=}ldz{5Dd>hyI^RzW-TZ֫^O#:Eo[N¢cs2^E02BpՑ ]#tX imr ҠMhK`5X*dJhꈦWKv*acH)\x̀W0HBQHk|]ʜI%r-|>0| B[m'N՘(&H5X599%^m@bU 45zůJ JQIƕ2H{9Tkq0DGG$Z<9k V%8ei~,L=2Fu8S޴{#Q81%:eT6l;  Ŗ$bnqND d IH.GҶ$.Ɂ%yG7r*:(7vnvi{wWbNJEr RwL*G#@g&p✈e)ðIwRz"oY5|U~R,wn^ϟ1<2, uUΜPP,c(3$fo^Vv'!Ѷr4cE g 3/Qg'f.\p_R=WoTނuR,U#+?%F@K&\ \ C^8LxHx]dͨ. EYӐôi$L!9@Kmd|ڮV.0^b{ǂkXŝb9^;d8c+ RϿpBsGB-+h틹x Kguhc)LW}!?wռ.yTf (;}o?|83併AMP*[:x 2lC'#{ɟ[cfiDEGhhَ[nT5GKt#K3Zlb+b{kZ @NL iϏ=?2ՒRֵŀ idU.Qx 0!Q$ѥ]]~{;ƣH~ӤX :Hr9 uʑO<Sʂ <\=.U(˸PД.k |&= 7WoiOqaJCZ:a(="1 X!']nWbiB`L'vrȍy\>.5&/&YNpFHY0(:﯈DX:у$ë "4o [}Z& = :B0=b8pZLp-'OTM$䋱8/RٟUar$,Q]UΛfph̅ jf$%"7;[Ӱ&l߼V^} 1.6lߗu}&Rϸ4Fpg{/.@BƒŽ\ng;OnqQm:|g3,F۫~g{[$(aLே F5lBҖaZp1 4lP/n뒰+E{RϴZ28Eo%#^G7> <@ڔoM儉xY7x,$*m0B{U?E)&^It?*̔!IJَ%i ~Kv@!FC$s4qwЛWIX-3ޘ#{) ^W` xa(K͈W! d*PN2-Z1ա1BVe؋Oj#fpt3 l{C [w@/2NT]DN˂lU4O%<' /E.,H2EcE&+Iz=6) *:g #=uY4th@ӈJ{e˗8bUfDbӻu獝:s /9+X֒pZ{Sms K(%6iP3,  lt#*0oFΌiұW~d:-vCQU=_j!iZSQ ,ށ@`@&˯ `]ޯ:h#Hw*'jE,`*/0(? @bb ZhZ~S֚ #W mA6WK}FgdNE[φ}PjbaRt24(G~h5yPli#o:7L S9H>^) ƶNqHvO$46c`wY\,HG%XEجv|lEBjp1+lA,k*`Dm"^۝ZE;ġcW3<ӛ]ҥcO K #OTDoC,$d+[avB6 vKnd|͌o`7o`Y·aP7k$sCGFs9h8ӠI">hd'JgaR d5~#ѥPX^3JxYnEZ!bd$a]#ș3n!zfu5@TΘA\/lORكSOz} ."i̬=ybx8;#@ci~EFU!1qFDzU0{}eFs/= ![L[sI8y'aXҩPzU~2@˷ߎ[lhsbb8ҋ[b;TKMyzAجsZHYH@z!][ȤOX7[7zR#(\N3E ],@V]ZtDN`ղq=Y$iH7LQ0ڄ knjlzZدM;Z쉤hØFHƞ2B+JCɾ=d.)ErtZɛbPTX.%(}hh W*}D5JfYNVFDk5mk5 9i6~;.P&hLЫMkX ڵ[y5*$^۟eQ\_-MKtxLqTzN-^j4F+X́seU<]9=7n_mmnsOW>>"^lm1lA)#H ;)ͽC r FEqfz85S4BLErt@ZJ Z8}2p PZR1bq:IS%Dg\b+F@xH̜O&zb$ƭ!tUCg^%W>0j$g %4NĻa>ǾDo1A~&梄Mݽíh-j4h6 dK~RSU3EOD02yU\g$$r]ncpkJ۪ *o?!VimQ߭Yw4jb#]dZZWGL1^ #Str F5}KUd7cA6^; =5:qDź>JY4;#:JRꍰG(`EB}ת*!v ;c"3a^%k8@ -2r积:oEicEfENa)(+;\7j ;ٱP:UNDgRa@jt{u0jVB9 bl2] WI6jO}lu\_p'*F,7V\pEVR-`RiB+Lc~ #-XJ CV){tjq XMNI +MxNi+,&51nCYF h(]3#L2ڣ9WVp' Fm38V3PoyrQݝ#]H8}̼Ŏ,p-+D(yi-s|cϊ dt&̗-=y $*LAgNJe b'ͻR; 硳RPp6ӥ1$t2ѥp7ƜB0ٽX}*,XLN I@juY6(vHV0E1#u8 0 4(<˵9(ro kpI"; 53&`${e"'OrK3-Lɼ 1`9 Á(12#xlJV(q0h Ct`b=1uY@g}}X_?73Sw+CP 퀎C&v_ L4 誥Y:0v` nCwI ;9E+qx\POx ~O< lq@qeVwf RiͿט}K;ߪ߂:Bo`h)CQEtnMQsSJʞG(?Բߧ)\ Ct,O8CVTnUÌ].Cg,bKjo3wN!b8xuxtD ]; tDI: xicYnJטHs@%wQdpGɜ>J~H0b+ta@Oi&2KQ!kKh4RJr#GEa@ ŀdsYu2t{[Yݻwb %apIr9*贁b=y^-D zG~gsBxMPߺmţsOj0)'AP:=}DfURkL#$: MI`?KZ.Lc &X!Z]RނKFZ8TN&f/X5RGH`A8qfee@vO22bi3 7G&Y[G)SNa5 J'W^`$WT) PB*õlpID\c0 &wsݦ܉W *,?:j4iVE& NDd"02G|! ,ۄڣEë'_eξ:LRȭ]rA6RK \ `C$Lj,\;qt2IՙβD%-+!OIHX$. XS 77H桞ĩ,IؖSaS/;%&J!_qZ8X4Nkf>/ˋ$64}e*K{Q;=,n&|63!YXy3KR]HobP4RiԭymHSOݾ}D"uEyRtmD)emteƉm31fBRhЇ-GyOiS/>蕳 yA7MBZCbr1~8KJKc+5nL,}'zI`D#4Jt?*q\Ve$w#z\`:!Fی;s&42PiǪpIC6vda_է7KO?j 1J"9>QZғ~n9T_-avP`@)uݎ2FB;-28!O)oi S"ǠȮf/c^@ڊEPy)sXfe )fr[L)WHh\'/^Xƃ*f]nU͓x(ͨm =Lb{gVF+o4J,l]1"who3GUŚLAV3t}EV<2*'뷯"dL O(1SyФߔ^gٕx#ڟ扖EL \ǟ#_se] ?}|Q8y[B' ! IDB\\6o~TONmjr?Ut֛s*|&BG?RA8}xTA(6ꯧsg Jbƙes6=Q<ķҴDCZz2T6:r4U,|D'gcǨkbX,iLQ, U 7Kx_ hX|~4{'d IGY~7G /'ayG&,WVݫQD|0 ]nVmu.HlI V8 ڵONd&WP'si7^89K5nUHQ +[t Tv0Ga3- T9W"&)cw̴N'gbJ:%6yݔK1g:Ę'd'b'$q;&P1|&\+.!}1tI |FMۨq%+YٙҰ3יY6y:pzuLJydOmtfnsԚyN;V.oa44΄집dћKxx׹*+xrrT /-_ZXC߽_ϖ"y@ Vp ]tv|9TΓ~3б'I­eӲPqfks&f\۬Hۀ?;4Hp3 7Ap?l#?, >@h t Cɡ Z*j}f2X SPc2#iu[H-Z]xN#SD{isRmxş8VZ.&HU3 Jhl_7X}(EGBw=H6n]F O~1*pi0+F~?bJKڸ‚T/h^==j`Gm_t.@?wGdOAODCrM/Ѿϑ&gեOu6m`M Z 4.W0ci_X '{56ҎP?&"jyX#pJTy{h珙OO7fbߗ_/L4S`BDWWMAF, -~.cu||zh$mbZAtdEX+2Ws3>VPTvը{43zkx<'}|aľ0b9#a]%’,Y/Zظ/v_(T!`{ CESͻdn/nԁcu a,A8lr#W~x9y DLvg{ Ͱ9 .:љYڢ9XJYY?dxtŠb(L:|l'W1bx /? pd h~V=zZyyknƞʗuKIXedxQCJޏY4.Te&UMn~J-Us]؆g՗ե]GPΰynaF)HyYcoɉ}a>s6ms2訾r9qUdp .^ ?_:M92:ͰRYqES@N=;GE ?;?&7Mٍ]E(F7~}v\֕AΫj?1|lh`{J-&1{+*z.Pov}v Mؾy V^} kz7莗fHqN ^;|%W=\`O-ӄfcMp8|ARVJ1dXXNf¾ vZM#.>׽pw=8\ko9(d}lv@Qk?azƟοڿ덃MWl=:^/;k[5~z}wocqQMoݝ[뵝MXB;bvV޽[u4 AE7onVMT2 UDHG=i"]#ȼ͖sddhm`Pr k Ď&1AY F1Ufκ,{Na6=HYoY$VD_VU kjۻlīrtVp7^ٙ;]QvP:c/Bx\ D rev4}MP«ckD)N1A-LY IF,M| ;0` yI`5G/d|W"IWΒ2b8L5>G?r?$s}cu$UYEb˪x [KA+z‡Boxi71kg2 bo'ӷa0 B8"/ T>Q-k( OW b~@!QM^p)Z3CG9QXo3>GrKcJ2wdC! :Zw0l=eCQTǛcUy=JWBӅKĈx@]@2c=S,XbrVV:Ъzwo_a?$LkiGMW~G4&2wڥ곥=V7Gm/kymhE_d}UP^F_v^t\:7(_Ys9/;PɄfUQ,zT9~IfE CzҲ:*kLiŰԎP}}UgϮXh#.Fd 1js-ظ-^ũ_ge7lP:LM]e|dЊ/Bu6S6dF=0!q|47_~ pH!j T/EGeDt%#r(."^-#\(p$i1 I /Q&7NnRܬ͞YbuWHv#$>8Aj9vvOuaDbX>PHQY#xoR4="(s*wûRGrS_]I+r'loP_$Anj>9iu:pZ5R:qad*. +Lpc*Axa/Lz ds*d`&#paĞI,|0 ׅ4߅)Ҡ)_qFv7H`ʰDQ6.~(7"`Ԉ]O∖ϫj$GU+IaZ #]^Fr28MA-BCO[:T[~g1׳id@޹eVbR,r\CV+I;9S\j("+e8IҤiHJphŃ>_7'!7UɤK׿VtZP:Oml)*'Jg|2t'i}ɼm%_%n0b ôwlFRdeĖ䥒Ƹ1f旱04&.,۪U f(&*op<%9lkhUzOa=Vѧdmke".Dz8F=GR,NIR)؈ cӜYML=!¶>nA[ \[nfrw Py8O=Q73vSeP.D4ٟ@Ol37[ 1廉 G#!c(\>> R49ZAn$v#R,sDxt< cEHJ%4 PŻhgZm\iZï(T8iO!aW0xwgxb4ކpwc2m gޯ=>~[(Ed[E\Gs|4nT8ߜgw |p,:`=,>- "U75^} /Z1^tVquDIpzLĒ`TNf$ֹYS9 ;ԥ!YA$s ^j6u0`]dd$Zl%~)TtPмJ^p%RUF a$*AZj ,΢h0D9>N->#˃|m4ya@\l䉩ƗjUL޿`ޝjQ1\CP@A">/06`s=T "aH`ԿǗ<8l7/ ;qټGËKjVd):"~1gJd?5~?y}!>еe W$ځq6, @.U׿Ui &~s0N uPV|ȶiUvMDL3g LOl CQ C[V0iED0{eQ6\Uږ@SIb`@-'ĎBm?m☖z“D_e= bg ~JR)q'&C]$ ?%Wd(MHxy47`.M'e(LՙʍǷq3k܏lΘ6IUM9JdZg]&hlI Se,R78%F9kL.r @YToPtۆW5t |2cp2Y }Qt<JGœW^i^SiwvJmEiHc|^0B5/jG>4EwYx=KXG3%RR-{Uۘ;"Q'鵇J\Ei46v)f˙~%ܠD-khX c#pɃuڿ'>Y~R6 fŦd[B_8޷VQ-0Eqo Q|mpk{pm{e5,ˢv^gY.83ttW?Krm}q9syߔoS ¿K06=k䳼ÞSz.8:(-nۡf귫?ЀIPb<aAT2r1^z8b(WJ7^uk갇!N?fT|$IX!oaV^ yEԇ6`{HRy5f9d:,eԓ:a2:A+o}s(v~o?eE\0D$}?2acX{U:M^ol׻bMá}S_{ov6Dre9Ȭ9t l]Wh KGy=Ca'#I+(H AYi'n"ا,^~/WME ᰼SEgKKKOT9X %I zJ1ze-@ 4avr%Rn\铏)ei!L5@NXLG E`GF=Y KyS;,y|mB]%4Xki6Q$<6C†\qe9IY7!X`Ji݃ӅW%#2FEROd+%Hp(9#V6w8.8ظ:$B{' I媀 X)k.I X!G )љv&4"fmΊW )~rWXEhǃB@b="4^ Z9Cj; HAV=K3wemZsXX+ë' Pi5؂ISoj[Tl.eΥI)*n Ug'( TjWj]qf|]k-NԿ<3U5t=J<] J؏Br1>{n⫆|W|NA"G Ƞ:`$ ;EDUrg>}\/(q?K֌t(";@ BW9Z0zu!%](=43p moH^t 4zR |*d>@|haKY *#JtL汕/'>Z:XZ0`@M.m*-&SA ɂ"Y-1 }#']Nllgs%k[Fmu.pYiūV""K>yu5pGv_sTOJ@ٵϼvԭc\z#U) DPgU&&d5;U n]0'7rxHzX= ˚G i3xx~޾saE޼0tv*6b5a &?x|!Z51Wԍ/XT155{uj>IRc>" 4࣊,56Ft 0qGU&Hя?Lm޼rż6FڼF^^F1#ъp  J~ FYRP6g ZLH5k[HM#F//:D*Z F_QS"8sj޹b*@'h];:1yRW#+)IL~$ 姳;t& =V )=dΞd7x}Ѫ:uMVcK7ߠ}Ĭ0s4Ê *;;+KЪZA9a[ԘT(4,WI+֢aM`S꽖EȲ$Miσ>PmFpkFM ! n;Fd&V9©+;TXO4Qmܗ<_)j,G4`ٱI*cGf&]F8)4d3vϳPt  M3!8H%>g_N"lv`hqJky Y}z(i916j~G]JE|P! rt?9K]Nhtp{ ƶqaigԪ1r&`:ŞRc4ƌJ0lF Sę9%+uP8r`:$Lq-suՐT l_Ü>PDf}6PBf"M_co016re6&ș$9 )*D˫MP$0Q92DQڥѥ.KcHhvР.K׫!Sp??}Z e͒k!k[`1ώKEchٟ*4I<' {~_cmn_~gTP=Ɗ/P&L&T#Mˌ|p\"=UlJ #+"2"E@EX=d PۉZ \6 6rkbt 9c2 2qɒXBBQ09a8eYbg7@c~t\)o+JP7&{^Xvm əZ88eL5r%DXAjiw>J؞OwueOL T1]S7,B?c-Ig]#29 vF)R\teIkee~˳FΙő&72 t)+c2F/ڷEl`XC %iF\ϴ-SU™~$,+?nQ;l p ݏBbucame>kx~NJn>01W5*ƕY㺪;5%[Z-eƵT,|*pCk}c95fF}okt_Wc;n倒ђMF4K ~aQF*P\]\j\ΤɅ`nrTA3J+U,+3_y =,gTk$2$ؤCݸS/[{LAmxGo^rIqr\_qlӂ"aTY `K >3"˜޴m#Y>__C E/q(34Eۚh;#9HB$؞֍ns5ꪻ(zz޽;[tkįU"P1t^ZA&恔?dGH|'}Mz.y(ȄV%2{bRe6E<rv#DTOuSVutȏNi&y+륧~WlaF 4*$@ֶEv@ƉlgUa*zُ@ PmdU2s FAs!k?(w$ z8GD <6lEZkrDN6:KGqMxrGfurm)ǑE4MI%@ 4&Eaќ/eUV)'lƒ= VN$"`x2O|26߼ R4v5mEOL3-kd jN]h %uFZ]Q 7j)'?SܾHOA,em?=}Nm> %(ò3ALh_lq96zuJn:&n83M|%2e"z {3d}c#o?gBDY_Q!Mg8,|ȧOvEssF1ЊHze3!{ M(* w#AqHްoތsS-DRWцKb=j 6V),9u|9I@'X@0؂[}P L?R0ܞ醑o[>~n*G>+=*_4.pxc+1 V M]µ<\/ ܋ҼhEMUzEi*brrZ^HZfGI ECȚZ n:ih3aR^at_R7RY( 9:hy5R4$)cD5\!yZk8X!o.&;;{{w܁LGan,"!$;DWW=`|/;o`ʅNmj ο/}|nA+:j$kHΜCAdF~.\WCa\ GmӵDjf:ϊds{2E&ۘ㴺ƃHl KMRCht*#+WW ׈\`ū52BR yܒ2?=y>:FϿ?v5+yxC9ͣ vwںǮ rt:+ؔ_0Ski 6JJ~$~h7R2OUc=t6#!lK_>Kpܹ|;ۋ,( 7gL6ێOQxis`A4@C9lHwD-b,Tao?z.hZXrTHMQQа}6 X8#maFpAGyOx%MgLrMv?n/KׂOėJl$ huE=]L])&ьTmP&|\җ0)[Ίe߾}9T~~fP/fa}*)x6T:U ?p6ޕ09m ƼCH#*Z2G(:/Yn0oGZP$yORg[)7B)mB>}:a“̳<3r)wЅC`NQy7b 3#v)X<4JaS2N0d8ִH+R|U s}(a\{!GU!ųb1ZsVG< -$[,N`KE~ƕTJ-/! TP@䔞K 7rc: AEKǽft'9qݛ4+++|'Ovƞ<˗(oѻ2տ~A;I}2^DbíwW+VĜcزd, ' x 0_HE;F;X;P;Փ]Drȟ/Ũ9m1F:1steIwF퉟iy>Ph)~'/?Ml)ƿu|v$*-tE̞8t(09Q &P:/ƈU6 7?YV)[ RpHkm{>RejWg}-p ȂݦZR7#pCԻ7R{b9'sRRXƫ$XGH0e|t8^9JhK[jY-rcҁɹ+-2U" &Cċ;=Gɜ {aׇϟ7'z3cK*]^oPrK7KzOuBZUb&\bT_)Di\$O6sGؾG ^W/~ J>~b!n@s]{MqT {Z NL\&0 r2¡7^)W.A? 4g0DpJ ?H6ڶGy#tlVۃRi;;2y-r FB [XAٙz S1 t|%}Hײe }")q0M[F(ΨF$ueQ Ӫ!6p&vtT+)ީ |of~󉞆1Əlrgwm+Չr631M{glcLS5G$)>m;E i>; ]Ӱ>f{, ^t*Pwj ;^UDjۿx}.Vr\&MZ<ϹЏAp\, z\MΥn:!C+v!t_ ˿7vT;ܧ]b]1_-còS=qmbj1n4ً;sөmIbuk63Jv,$${G tQY3!pIfZeU\y~Ҙga @Y6yUq[ ZZV AR< j0W?{z$ޏ0wejHD,nWL[:@Nj'e}P1!P#,c`\!DKe--6 7ى=f8*t k%S]&.O$";5v"vDtJ=x|4]rat7cP1p}p; wP{Ƚ*i~P 5y.Y1nhvѪuꣃxe^yXޱcT_*>o?P08͘ݥhsZҍ_t­4o{N36.h%0]g[J,į?ZH 6S6lx 6f 6&Di]Uo~ulf܅hHɘ歹a g%pʉ{ri77vCڹQdSG"g۬:=QgΓ9Eؓ+Kt;/*ƻ-j6xx&?PYyV8R"i"tzHմ@QlL( dPG5`WXNg*1jL&|ωF_"<k/v4Pxa/BbTIԍ@)hU(5ZwX}q4Ivve4W|5N)M&mù鏩[c]UmS%whJ.+ʃ:);%3bK Eh}5RBm'& 6m".ҍ÷<λg\xG!EɷyisOb|Sv>d!ܪomGmo5뙆c>[dD>$VMg 6ߡ1 1V+`!Ƌ'8mt4NW><|Wzd(xQfvߏSc|ci'8m8d]9[S/b؋I8eTd`oNk* FUzp@JaZA޼[%~vncW 0yn4p/`L&sk'.s㴸-UA_PYvp,nMt/k 3MZzg ˏ`'!FlLYIv)\J0RAEMryCIUU*\t.iut|.Nd?G>5^2PfG˴m[fv.sRcؕbۅK[TDL[ A݄9.ZWA%(r}$Ŭ7ސxEZuwiSG!/}֕ҢºrM-'cpy,.nKB0,yD{R 3o꘭\I vJj/22sg'5pl2wORαB;4Lo)y(6u9CH,q6/&i$4SlſKSH&h!d| UXJ./z֧JfVD3݆DG$)I""5xSmEUq5(S$@4'=^<@@h8"` rPS(d<⸊qO?zgY全CڶxU"L0|'DN_X|숨Wn jǿ8ľ,Xi,Ϸ9\_hVbagϋ]ֶ 4sص|]4";XAB'^s$yu8cz5uiWz֓ilm@qvkg8t:E\KRHrSμњtv=QN@c]DEI5&F8>ЫUϴs U/#TO%u=%v w2[rkN ?pfqf4hXHsմ *70.^B3Qr "AX`,Jt [-"h{ᜒ]i<`M_L@Aի ܒ.|i|W]k18}}HW V3U=twgP?;UX)a`osqA\XCUx/! #wqc :T;/bx[tE AB=Pvg|qkxS z: @{ϡ=Tܐ9,^ 7]$A̭a&uIko #r#mΨ}%)@Runā{ɮMpȦy| D{M|c%4: BsļD88TyŦh~;/Bjͽ) Cwc( Kzc1.xVݻG zUts𒚻ʟ鎫171N`b2VUx{݃ݓ݃IVp!fvީ7jǻQg,:ߗy=xWWΜM{[LaHpVHBʿڃ!2cĔ~UWh"=440p~'-b'ĤR4ej3fu &Ϥmt%k Y˗ӛӚH{QQhз{u=_o/KAU;Ve=츇4>3MQ.TEEggA~)T >K::X=%];/[ 칮:B_q֧LZWX$g!Pr<ڷ1ޯdZg5{~,S Φ'/ <g9=W+)-~q[6 3[FAq-RrBُي9 %PpuSi7&>kRyq拉>%Qjiưcd.ly2qi '`#A9%0k/idMZw-l},m'os*ЍF.mQe"kntA':n#ב cW8!CY0R|VV-C|tF3pv$v@uBd9Zci3!=:>;"06g^"'sŹG;.xw"_[<,I&2G!]xǨ^ "!Ns I㷏{ cf\tS|Р=RК[ V{^ [d}"y`jBܹpYxk˖EK-~< i=1ck/vKj&K592f!Zl.NpLi5CQþ:}$Tz?>G{ nobz!T iwf>S_NMx$fڷA&"-nƠ ;mP@O:IThA7/.*XUօi}4\8g7PjZՅ/TլךGoTphw~Le|!s-.:IޱhcœAp+ RVUĘM-$7EsANJɜYLdZObP/4Y[@UN==< 0ҎQl̵t7Wr\EPx9"nflQ!Xb@<ζXO0ʥh6`Z{RF |ќ+;9r JNm*0|*ۮ^iʩGrStEP '$lL_h! IóϚZ,圂F 2k64ż b¼s[aV|u;  non746iĪ.ѡ)+VbFn?7Weq[mĄ!4&^Nx5l+8knx͆:Oγ< 8SXsH򋰯 y0m522)MQZR{ӏ҉4yxG2VGS/ 5^“FN$=܂_w5xZ>Ü+bԍsRU(da; ;VN3|WVP*N봹Vj\]w݃ͽzY=i/VHphڹӢ,R z|APć9PW`Th~StR;T χ;hLn.y]JO'5iB)0kESU ,(ټO.Mz/V~CQG*TS` G0'ǯOeF,zԈ*kXI.R[mlp}O d:%6/am#d #C@VU} RZa)Y~P}#dX,W (M*uR=٭KìR;dcX*pj1Zք,Td~{-<,|kr~@tP`tۤr Z2˞0hICL9L_Ӌjyq$bU:AͿ]9H l2țF\<"L> xAF\91BW.Up!tճɊ~YMqmǵBf<`^.O[<]<(3<Q%M#aЃMF0uLYજŽv.*Ӑ®NT`2iL8' sgQ͐+W iQLAGpPk8q".B8lƣLj5:`tODSB& B ka2°OՔM@XSw$Wl[#š=ˋO]0)zNi_h7w7 SEQFFz\=9<(#4S@2}S@تC*J%ȅ%Qrռct iQRM pR_@G#Ytd7[ϧ.*Byr;_H>PKJP~?\nm!iGnZ LZGyw}A&RE[@޻NaJ&7Т ,'!AoQ..˫s:8RLfhxk/*=ce9La- hb3r iXv;8ggBq7Ѓ {&>^V`bEYz!g $%D1j,IHm,8O$`6ab[.&_X%lxhcQKIxϻd[6)S FO:+:!fQ0B 8̮~7 vV#JSHG^řm!`8(=:CYb ==ɳ"a&sߍkDJYY)PYyq4B99L8g^5eɰmV_PWNE˃/;F~:Uq+mȋ}ؓ$ a9M!Jjvk)%&Uג2eļ҈ iQjzud\LYK,ӾWw+،sNCbB/!E D&yo`P9 Y}OTL^Iݽwhvu7A̩d)ɜ]e;POPrvx~{iC? ؑx}qq%)ޢM]{@jƋJި_V_e Oسv B+iVD]w|ۣ= l$JDr'7ц/& :>?}LdgiS`d&`ב7-C'5`Et?ʖ`- UJEF\Hm v̓/5Yqʦh&fj^Ь4N_n6Nvj_4e*;gy`<1zz|Gd9uI6qo2LQ`{5_5j`='|tAտ4[ȝ+%ƒ`r'bs,p~J+RFo~t;TsuJ5IIP$%FcWv[Ì/amrZ(,؃^?vd(TJ"+1{E:.`433VG^+y`_{Tt$?Vkgi9]"@uoE>d 쬷hJUcӪNduطjNjqΘ8.֪^fl!4=ñֺD (T"`k5O0:<>ٯTzOe"w"O\I6@"Vޯ#bϹt@!x, P ##/h+u,z5KM.+(:`h5ļgido~:T|z<ήK`nWwߐ/cq9#IUhO7a{'c^\_RQۥN1: WkA!C\W91GR@B{QR͍C5Xk Aa.4Ehy`܏ X#)`>ÈCfrkSm=}Y; OcI_OR` MO{kLGDK`^wv^jQAչ̳l,:]?0( K-P.H Ģ= l&3Pۘ!C綤 }V79d,u^JP*h(zLv>t,;dDyc= qDny̹qayY+QSY?\Ut y5r#h&k O@}J"d8&wպOE>oRG)L,BL-s{@W:BVnBv[p\9k ܼ=L` c7! 3"L@еc$ٮWF%-Vtp ՏXW9KZ*[%&:f Fda1 %g$o.Y]U$A((^N q~S mY, hIQWnKZ|k6m70)hH0Òm4@h0P rh\nL؉Daˌ 7Iu|si֮_wVIh,'Ԑ2 ֌4$:QZITcGwפ$YB.v](`j[&{HA`u{ Q۶@ZaD =+9Ǯ\Fҩ2:婍 DD / jx w@C-] 7xqTӞx~!ͧ-h([T3\b)5 8hmlz wm 4k`ZV`Z5DupiSŹq*[ѺTepM8Icc *S\2MKuL!1WoDi:x LX(y䗉1dd\yY"ߨ=_qB;ǹf>m#+xY *]بl!ӷҡ 1Y~İ3Z G^ aEtX@ϪnR1h`&p+X:C20ݘ)zR<؍ =, T !*z9wQ3t샖}Ҭ::YS杉QeE8:bY(ɕTh[tiEUQM7!5AQ4Afc_w)D0A^/A4^YڜҾDO\Bʩ}A(?mϊ|Aʗi4UmMm@Ož@dN >pn0,ځـM9DUhgM_Hu15RFʝZ?@)Th4+,i5F8:/`Z鷚,&̩+YŬJHg!ӚE?n3jmV+kJk6ݾ3}*JD g*K{o`9y;za\uퟠ#6l6^?:9=s ݛ\ɓԟǺ.=Ȣ^5a՟W^KMo="f궏fU~zw_AK~ FZwGAmXJ_FYc 4{$#ϳۊ]f޾y3o'9uiBsFB!q(K‡d?fzPJrHWgњ pDDZ?Y6DqM، "ĩXzt x ENt(`k  OjF1P1W-6QيнGFl:OA=uRZ-Q-l# ,BjKn!60֪ fi(rk@teI^}jd|MH]fMbW{W{Yjp>8oQl{Q V F88SvBq}-̠5mSsp:NJaS˧)Ak;|4نdfVny<.HCp[~bS5^0ΚS6}تl2 t3^l}uQثk) 2!xʢEO&EV4\):=ŭVk}%NNY'ft#fZ o7n,R$f[#- e2:F0ag$V3j&tz`ߤa:~ӫjf%vwo̪5Τ/q6trcuQa†#N.g}k݈Lt҂,8MKYi8Stbtt%Ln4wXnXM#נ m _4VA13&WX## GDq+Q,qacbu#P_RªmQEIkUNƢC/Xv4/0he =4×4U*JEą{}:aBаkЯ_V6eac!+yQ%&T/9\RMfZfZ_q/dWhvۥXs3M Kh42>]ɞ =sT}o7GՃ2PR|,<Ο>YIRH%T$ %"_3Fs@xXvfbw0򲨢sڕ0$܃VGy =56į+k1jDx2ta|e;`o#S@sD! ce^[‰Տ+IKGS i*:4'O'mhr'(d ܛ~oSrĖњQ̏D CčEJVj;0{."+֓Kǥ{;=i,'7rsq%E崟t `k*Vbxjx̩e!O%-ץ \¯/"H<LwK EB+*3^H8D9VY$RИ,`qCc5ͣR"Kke'B0>n=8Ub->@a{A Fty#܁UdWG`5qզ#IssR3[Qg90^7,m.;\]XC_A)ugՔif4й]'dPQtxz1;*Ku<$VctwPeV\h8\$`2& &I!V>(N%vDх!^4cTFM  GܻWttj%!lVNe %/[dMU!PSMUڪd3*~No./_J8tMyE.ͽ 'E8xLQn@;gdžxcٗLMUzXJMO]D a"ؐxDa4~TOܬ$*JOw"u}b)71OcL%8X&|xZ-_߼/jF>g-/x M q-bnArs`ΐ(@̿qӞv&`':#XѫT,s =کg~5O gC?j|ȃS4m5 .9ۖRoޔR@NsB"+ǥK/ )ڭ"ʧҹyꨆĢ0AXoGΛOҬ<c폕@_W@xVJZN5!sN^W1Sc7#e=V"\"=ɒ7g2A/f'ċ'j9+ѡ6(eCABLGc1g BbJ*Ui<=v4̫pz<ycDz5i,yvX؊QdL瘜䣏2ݴJ:R?"Ř$[WtCmzhj&ye\JSEÂ\10Hj_G ~JT{گӻ =I7> ap1{Y)p'P(!ٔd}( h1U/8Xz,Źx9_A %gg>X"Ȑ\*̀ (%AE$o1H"vXy%,HYw ;YRN."N+bkc BUۘM68큐a$t Y Dv^m:@Gv&>WsR ?š>)jS^? 379f"9TO, to0=^X[sҽbo6&ڵ>_AfXTԗ3$6;HtIi-ecx!-G.:E&#L%4;sc#ȽFxiIh/P;cM9y\ҷEXF@%MgdqSv<'2اFm`p>G L6l.J#sj.7`o8"o. WE ,Jhcf#Q\Y)8RZ4l| .^]NjY?A?A%Q;5db곽J<^FAe KWB5 Y&7qkY#s)7Gi#Y yAd:l;m!S3s酚3^rxVUWw"Ò.%v`dzY:$ȸz/^/uƳl\$vpzM*iv/H1{(Rs`cSٙQAu$."So99RJf~#;$0n=(<ݕHtYؑ+}q>pЂ\1U: S%/@*"ХLbV>BH "AʷG*(!vS}!FDqkU4cC(nn"qƹeg5T=QQ˿ppFd-HҖGr43ѕZV{WT?Mh׃:M\{a#q&Pp.a0 ȣȰr,!yAZSZt\{dfĜ'᧊M37P(*RD޴MǞJuԾteuY3c;i΍Q1ۓ`Gt $4:\Rh Z+]79vhl|NQeg͢m嬞5ACk$߯ik 斢5~-%[U>柟2[o p`nXٙ!eѼ/^ѳsȘum7f #Ir0`w/Al4B?#P7K0i6d2B6k~+RLW6 \RQ@[tzS*r]Kq$̧m ѕTYbF`o+h`bQQx\ p!VAvsIsަI"NH}v# 4OfJgN( }%oXɽ|Ϥ!bEDcD__2帰8Lj{05l`$=mi.NW ~PE`EkvB[t.8G/n)62+kbk>1px7xv^CR0..}GVp&,C.B|~=H- HmH dV;H$A rcsхmqs݆]Tx~^l Di%PxPϴVllhO~@eĈHoZK,/h%> m^C%E8^~3)lVU19_tTg,۫-?cYtu@Y1=q,[ͳ$n$>1ؗns?s:H͟t(`d@V Z`Vx!鿇7汘SQc0"/)8m_1L[+8~38Nf-v0ʽFG3l_#'iR}LXܲ+PPwG6p#?pgŃ+qoDUa1NU&pRHFy qG׮ߥ@zn)d9m]nt7:@(G4LɺYr]ospfM999 3 P]qwSV4CC4&5DB բ3IӰp-VBV}/<#>޷Cȋ v6 U:ΰ^C7{Pe>dYb :6Je˕’Xtr(9"`bAX/7ﺁnM`%t <Ȣ;r-n], [x8yc^ :*@;mX^3=(Z.;&eI~Cbj`Nˬ>ķNܬ^̦H j@dϹ`mAÜ>rhbX>L'v>wM1>ycG J"} ˪r9TJ\`C$  f1) Tє%eV9z5Vj~*IrBX0ɳʿ>M@%έEPEa׫c}yraCɫ4_c7t=V5VIaE ojݸ^Yb-B1YVrb#o"?(#bTנ,%Ć&P\tQ"P; pJXPC(3,$CQX`CX{pt#oF0 pѹC0UVdMWˠm<32ƙnj%P׽X-[ЮM;X%'~*8|G$5(v|B&1ǭX{n7*,DD1~ ^82 g3w}]Ȧ / rPC>AxLO!ӯ'XᖎX#ۭBaIr_ BO޼}ZI=n'W7 6J)[JY/`Ez RdΘdzezwtHoJ繥LʦXVwZ% GMV4Fӧ7c_DWnIte2FfHXb#X&euPFYЭM7mh++ghH)Տ'??y1l_?^(q!- ̀KlBM I^{ % х,%>X< _Ĥ qeρO,DSٱq16"9]m8lK>PXiA$To(9@Ɏ]Jֳ&^*h񗻬LW1.Ya0~ LL2mao${oШ-`),ͱ fG(QS($gxvV2&Cǩ[I.bbjb[6'϶qiY];s$9 Bή"~jqSW9<WO3-b<W09]ׁ֣Bͤ.iIYO‡0T #8ixNg7UXs :l!glA;*ע]|@/X[9>Ap=K{2'ˎsoDZ W6 |uYUe7m|Cj5vD9 !}Y!KK)m-"7`bk8ݛ/+ >!7nYUm_H U %_˖׏3ml$i3ƒ3 ^̋ #gv;ρ}/.^ļm"%ʼ)B ȫD:jSv{i,hNKk86D"dk(ezKc3_Pln?~Xʗ̂j^ rpu膳B_[tm.s& T"[M rͻ5d)Á*Vv_O{G{8y7oUTExWw{Au G7w!O6Ue>^7srկ\Rgp&jh3KM%K 40%Č[1c]{V{Ƒ,O1+h0!Y f pi$2#[tEqirFQ0w2F "NJOB`n_lWT4M8s}U}۫N:[O P#po3O5+[.)x _ndD0Tn'!\I\^Oi.> T+Z."&G+D&y7}TF4{ET&l]o4cF{2|lE,Fwn8\\X]n,BYWO7MIΰw:߰KjWS-&]l'(LGyOXTSfx̶{dOU𛮯p6PD2ˆ koI`,Ewn\$ߍcDVl|Bp&nv.b>)#} Q\͞FVYĢ#}bVX5S'2.NCFil)n,} |Oxo24B` 䀵=/<` 3f4)#T-T棑N`ě+Br:l_<+?؞ۇQkgGYǑI}Q{<23Uq3$ۅ}ZEYYW5v3҇g&" \0KZj^EuZ8)@c Ry߆Qz`McZ" \;㞍({g>+{&3îJS+D|o$ľP"𶳌2)CjD1(!Xhom{pj"iv.%/G{J8E%A]gauѸZe?%'?I8jH2/_? " AAAj+ƫ䍪vLBt|rnlf̝0a$6~0(!I ?f|gɤ3[Aّ12%Zb[,ImZ;qѼ66K4;ѫmڬ6 Six\N#xPeJڹ:;MB<6N #&uK?RĴjڞ3KMIVp@'i)d|*L6'&5c%jTYd)_$kK=!72E=kuȍr07|0k}Hם4r (fe8E5&Qf`|N a3I*(hg93?sX|h֎Wg /no76~bOB0*EA랡7*,Ɩ%t pM8AKv| XM^u*K~[':C|o,yRec@5rzw#)K /bXjoZ/bԝҋo~ /nxc垹plѲvF6lk?qˡL"cJ` IhH w R:; ; [?pX!ҟ|ƊM!|%f ͹eZf~h6QwيBK)š{7\iv2̓ܫhxLH)f6$i#s˯qp[uumq#/-a*TzI}t\Fm&n>Ӯ o/DWm9oˢ^cpޘ %xbMI#C7zTcbsQޔEq,Ī Sgnl7lDO?Y i5l$N2V a⚶VQ3Ȯ[dןAlRrpa 'c~ƭJ[Bz^+Fҿت*6aV~fHZ\—Kx_o)꩖fyVNvƯa۝vm깝silعDXf]LC`dZz**'ȻWxw/8}V|,5/mM}&oOVvlSқgI%|bκBN:J^卭KgwpȾfkֈQ2:9Bl%iq>TܝyQYdhXĈ~&䙝]Jf(#t繤BG&\_{MxJؼNPaX[R)>YBu|׶ "h^HyMua7{s\f`y2tc}<u7)$0xy8.o3y筑#RzwEjxI#_ň7<[[Ht04$7k1bCu%xZ{w;hHHd iǎ>0$C|ybL0=UNW=`lsdtB&eIr1NcSf/%Ǚd*;[p8+r^~PQ;EGp^kbz&T Yh'+&j2qQ[4i.W_nj9qω[V ޤﵚ=:E`IAZ禊0)P-K(|աpތM[#D-fkL=|[+jy.{Yz9 9%5j,ZtFH\}.A,k_QD8 hvwΟέGFl7sΊ;{ 5v ckJkwXy):%8g<1AK5Q}r"3A7&*~5a:X*ϖZђP+C>C[__ӽ`_RFjsL-Ȳ_>Eۅʉq"!F/Q#zv͒x拾 R)g%>AƐ_G܇YYk%(@z^yct EBhMdQg98bKSY;ezzY9c}cTVĻ̮T7kbg+k~`?\[ׇ3 Ll#/Ddg*n++r[cWVu;b}Վhi7Q6Rɨ3D~9UW_1Cb@x=SIJĒuִ؀\Q*N(}k.<8+~ Ȓܜџƙk?nty͸ō[FǍ4)F3mb*f:o3ɳGv͘6;$ȓt:B.^ ee.)zsc$Uɰ3'Dm}%RWz;Ϩrgs%L[EtbNv{xwvV8i·cg܁%^"q<Ը:B-uշnl?;WQU}VhB%YLLƻsއߡ^уr? qJ=,jk>Ə$nT O 2oxBF;3zvp@H~}gdI\2NyzQypv%6mL`TA JYr?M[e:d%6K[)eM.C?g bY 9o5OflY,!otð6}d)$]:EmrTTM7?{o=86:`8# \`ɟ `[&++ݓ= dY͡tr} %a7sGQ}75 |,Z}k?aZ-%6Ue4$I4*y3x~ &W0h[Feu__KS3"+kNyLp:X7R rʤfrӏ?_m,],Xoh2v]oPF q `>Ҕ2 ( %-&„J{`2;Z9 N%̯q;jQbjLr|MȆgWt§1Ǝ)< SF `T2=hTQ!gbĻX4F,ւԮ4,?;`Dz 4oOmȉrleBc+fB5S:i Olz!VG2& qﴝ{q{v4Nܖw)Z /Y̳xoq2yS!:׭.o _⭞r4:8Vdp@{?Ts]xX$*8$'cP(X6k]N.v@Gś[4k-Vh;&hqHq\u.]#cWئfؖ%lևPpxb"j$ĿиjFݏ+RTQ(%ʏhn8MCJFq%IO_ŬLȒ7͙A;?7het?__CoHq(?@'vB<)ƫe;'m{ܖ 94HL|,wxwlc=YeU*2C Ofv+ljⰱgO|,+ʛ$탳|xM##(͞im1(+SkjtIJ-&&IWY2m8tƎ̰3ڂ>*;h8x'êe ln:ut"Σ,'[sMaQ b#Ͷm.N%-\XPgXF;+ixBEWZ)"$ʰKǢx^_M+AxFagl" 18:c̻}M{)2@5bfPkeo~?kEy? Z(5\F(3{c#3IL3lPۨfJU  FWZ`ZA8nRm o7v+wcϦ("rJ8*4Hj,mSzs X~Pw!X+_^_xV_oxzFzÏWku.l+;Xk}f}폻Z/2IW-hGA .WFO!KȂ6oUF_uz(`Mo6oAc;N;]0rAa١R_4K8 h['rk4|6%j?:ص(ת,#dn?RAd(L"hXGü= s k9WB dF +5 @Ej_<ߣ=Ǔq7UE_d!G_jn,2z q̛k*/>܇M[cՖ7cUW8c|-9xf w:yd7t' ޑ(a u E'c/(}wzn;;[։s|vr|ޭhFwPSq4> >.Y˥[фom١UPz3lY}z9#>BB*AHqtZnǵxJޢRRa$g8&7T1o:O~v&Q~p,{A7Vqw~Nf:{L <

MAaz8^4tFY\rKuQT'>.#7$ >Og]U;`ˢ䜔zfFE.D单/ ڦeLv0(\495K*[gH~R9:=:;|/) Q@{|~=*8&:YBɒ(|cgqm*wi@rZMfp g\?}#rk PN&VP؞@C ͻDNr^jB]1^?g. : glV;} Z[dA.ci9K3' Ўz3ziFJO !zCKg8#h)b4|r.?-QFD)f a "\]az`qu ؅NdhDPEk}O;}/sF$s8"$$fxnj(׻.bQdÝ`$zDw~o,5 y܅U hG~mCSe ۳yUd܍4X9dd8x;键ir_hXYuq)ȴ(pϿ/Ud ᚠW5j†3wѣ<|o}^l[di/• -QpXEi 84<3<p7uWǍljrxk\K &>>T=Jq\R@gE( 6V*2&Me!lG-RN\CI"$ATƱ35y( ׼f  :& M^+pWz-袷hA^1dxDKB (ɿ_⠽6?\&C1ď%2n'ZSkH@\@\4-*\?RL%ZM-Wʱ }ks^w,[:; ֪ٛjV=N{&'җO:Jzϣסx3t跤Csa3" ;D2<EE8 )cbAL#yWv ܪ6VS__)\ȸ L aA" _ i|cqbW)td~cD6ޤ{O4&<lV4?(D`]gط;3rFݠQ%ӯ-뾑#[+%u`̕`6ӥ_ 9<{a0;IDL4/D:ڼ6KD1D,ҢpzTl6<_t*TɨpWã΍S&Uj%-Gwɮ\qxZCE0ᘾg@GS:F?(,!KYgIkWQrnb5Xq@ ڪ!($_q>:%˵'ɽ@jZl,Q[Յ-%>YF b,6hAQ^"txF7ޭϯrQCOSd|Rl$|H" JPZG57g*dSֽa姅eiC xhįv:? ogOjLub S̕NbpTD$ cDj0z5$bM029jGZ_i4+"=ҶPo"ymĎ:uԙ!ވ}{i@kAW = xkY|+$Xd8Y3${# F܊~[<+<>¤۽$N6 CXp r3$A[ɓZcDs0WA3Ha2gQLnl3*,hs!itd0Ns߸}w8SRAy1:'Y vrISuHyH,|,hYhhL0~jf5#_M!40ÑA qf kB$iğن \_#Rށ;fA 3r"K^Ȉt Hci#ҀMh4Kq=jPbM~3v?.r*|=kEY՚RiUؾr5vYS\ݻ-%" P!4TX|mS`N7UQc悔˂ tsi(P@)is1z ܂̼0Hɉ6Z Ś#ߵuR!з62_($ d,R,%H"o L2jnr$uĉÙ .w#,'8{Fr7һ8ܿY$V#_d u0*}uy_+1cZ4 uyw~|pAve j!~\܌ ¿Zz-:[ڸZ{%ubn칑KMn\iAԛS^g{1N֪(rEHx'kdFx"b#bբū8)ݰV# [A/?j}%r+o$bRFZ(SE5ҒBwRmۍ35$7Z%dnϙI^$̘cD۴KgQgi.%PЯ.魦xQ|CW@o_u1d^zK\mnfQνȏnIvJl zZ$5XV`3+]UrR*־y ь?.PvL,zƘY9Md9|5]S$h2lrhQk$ߖ\4Pg~FN+91JfVXf^-dĚ [L$EMY1v):9)Osg}Rcuunv,Յ V6ŹܳkӉsl|zf!O[`RVOc<%}?K a9j Ie==qw+Oiz` VC 5Bcwq!򣇬{^AoYQ5{zқ揣B'_MWC|\[N\[Z-|tgX&(Z(M`#rJA%jɍ,S/;n T#|R [Ih-u$HL)IGLJY :U`#a`56p*Pk)de'ODP]{mJ1pKP35 a ,庣0[V<$HE v\Q@8.r?XMK;$X +v*$)Pc!_acyLX%po|a+]=tp'?.B#d&81"cO*s&h;WGؽI<>J#0/AE%HgXLnJOyjum2d{H%" d )bXw׵ )z2g2&G&0q(8Vu$?L@'DLA@ /=|xdk-[~plfQQ׏4UNg7t7kzs.ߊ) 6SJ~w1,Xʆ9JM_䫡³a}=[[,KpL"D0'6nGOG~n}1x(z`2!Q#'.q -)s~޴V06f{k e`ˬW c(X'f~K#G0D6$P{t6+UbMS%Əj:c2#Sr^"tjtZ815ow>Sr#gJ,/&}"[3l=k,ܗ2ˤ l<q#@z;d.MjO~; ʖ]ʃl>H(1A9Lx3_îRJgFUn8(R0F~m :"ԊsnQ<S$KYMbd)}4VJ슮`m,oP0lKj$ Kb F;lK׳oho n^PCd m^3[P ӌfY^ZgDQdzWU֦Ʌ]& Zj6ĕ@WK3)Q xjom&w|^dzM-j/-9[{B>0@ zlۧ}̸^eP/:lQf𕕆p4^QxId'GJ:E38]+it5 9ѽ5IjzʃjV)qk -oU 5NKU]ŭ:6j,$[7E31y95"-%zmW1,-0ZyɕRI?3zvޫg]{ZXlY6֐yYat[=z{clZ:7]A.iVW_U),=R4g0Tȱ[0q~uOI9bqsv6}+A7z3M%:Uز۔:>v|T9/_bJt>^~/Grп &2;FgxL*C?(;`wwp^r /ޠ;>v6[K翠j8"6PdCg? ,~Yf[y= -J{V$W0('hr4Lg-][pfi~M(Qq2Gj@@hnadNg'{<:=QdNww?}Ȼ?oigk+%fSqIw(*>Nck>CJְod%(+PESNrѽ\*/Bq`+N-5pS?`RygkE3GF:HQLH;Z` 4p wƨk诬v/j兒sIst~X].夘 UFb#7vC".%akj.%{78_Ì,A 'ZQ;u׍>HC0NGn/tNqD} "͒{z;`~q2Yzpxt'ӳ?_T.X,Xt Gj""o`$}#z-[溽{uuzt"6qu78rdMEQSdc+s;6,R9Tariqboޔ&ˍ3AS*׍>Vl33 &N:4f:㶞pVTLiGuP|PI>D 6;ÀcmtO4Bϗ* /|z+=%pg `y5Z}޵7Bv_I-AC5E0LnVuzk<1*Nx)@~F]Q2l7%ap6#] yFlN:|a EҒW\{tKG۠\q&wȎ! UB* 129項-BT:NJSQz$1cGG daYR{vZ4fU $l597}#0g)E {> bBh?:C6Kx:Vq!qLWz˝NxpDx(F}:HnVvuJ`K0 VDB0B7,he/R.p0W4]3Sn9c7ҹ{ ]|*PI>_:& G_JcCM^*XrV΁{s )mT >ᖁu(reY>6~tʯ,D9:XA]ASY\Zl\6ῖ=iW2J:1N ϟWu2fi9GsX~E=n>E;;@,\ԯ&1LS !DJ~8#G;=N†櫆P Ϫ!&)O1~xC(%UZچbQb2w}.Ol4  />1\n}Z+r\{p7KO7K/J``ˎa@+P[$NɄ!uQ(f ?t* WaG;fy{Z9v m $}]e8rn- }mIx.% $W  j}edRcT`4\B1ԖOopw)4}W`x ȩsN+1{IBLxf3*ѡV@9=8G2yA\DcJ~ (Z$)*8<-5#ܿ!ˊ!ƕۆaQםí黲-aؖ1|&ksۯ.bhFfh6s(A]44fޣp,)>vn/:/(jòMsh! /d6P?=P"0FȲy.Jv+&,d<a> I"Q )TQxDc*jK/ E(ɹ< oX|Z\)] mK/Q4#7yGt-?h\:-Dܖ*6Uݨx;{P.N]na p\9;C+1GSI%6Af~q^B76Up 2ZZ(H$oMVm^56Q/ H|^\|crZ؀SC $D˙3 rjw6F"UP’HL!44/kto&͟nYm46F9ScM*@BM6Jh wf:\T+t#Q#b6a)ʥ9C 8\Fr1h8*d;Uo_B;gJi~SDqig"8#F+ªN F.D1:}%_ /iwT~yY-vKHo"xD^ᲇ8o \ʻ&`,={fuli"S|nҹѳbQpU.lʣ>fA 5*<d9KSysq@㨼3&SfCd΋Vfkoeȋ zC!O65ɋRۚJMMOnpGR)!P HjvTIAH=Ľ*.1_EJ{=VIlX}ǽlqG'{mh/똂LTRX$Y3x(ne9RBYC]螞]t9TB~^| T R?G:mz)`fgֵΌ6rϝfF39A9ٜ2_أ>{Dȼ`%U[u]'kZ|F?͉W9t)Ip4PA~1 ͍Bnj{O}VsywDoxA;? F_b90da@Jsh-Μ1Kꎌ`~Q{'b@H #NԏX&_3"?њetf =>EQp^ ah]%ً&O&_80,LY;TbB'kVjK0vos2=ի x[.@://AYl>_\rBo< ā|QLtnqD=P*Xtf? tehԍߡ4~{@ն*1*s#q9]M:Qź&Zn8zrs Ew[Ӯ*LƳw8>Ek_}Ż$%-ZZ$y*qbXE.#tdŧkhk<~Z؀-@X lS Pu?04Qqp]^,^|IGn䤈fQmƱӓܱߞ?=>:9,eח ؟Ļ9YD>`xL ':B1NF?']/R#gxYx)Ѹջ |}*(jӀOQW!0(liK}}awk MpCV$)M?tg-MCrL sfm`"mKxVP~$̦;~̧IJ淞:2?pU@~,/_FdA2rcґ 2?$RKYxwdz ioW*x0C`Bu _j@ E<  3 dX7r|r$3ci}zw!cd1N!DQoc&80Xx8p!HVQU|U6Z_q9]r"|2Cv!(g˲A0ª(Y%OqPRP躨{9QdD4ǘFhMFXBlBOH`ARM4ULiaKNQNW'#.eM%3Aҝf;orHɠ݊'rA0qPT@U@%x/gd\鍌=7f\ *b3+e|FX}9V' =*܈ķ%GY_:ˀ"N3;&ٟ֗am":? #ӖӕʈKG2M%O+IH:j~OOĐ /حi1/0qPT@U سR1eķy koBk^f|4[κoAEbRķ݂݂rT(YVdF b|4H߂v:TDRVrn,|Wq 9Boҋ9i\\y1r$2J}+dGH qYl0̺,OuqU^μ|b0Lu /'y֗i|DAR{yeqs2?"mԼ A"xZjmARd5B¥bV{q b}F8ƍ!ݚLpȫĆ'z%yDzt1EГ!/UMTzk(V/Q ee 2y gi1 ;?0ɻ2zuiI%~:9;|A >,˚Mdv;tJNAT? 2Gt;>p/ܗ,F!N:?c7+ckx_1HNZVh.xF}s ?}!aSh9IeCbnˋkoyu̦ȿoy9lgwޭt}cI?-D/x*!OAO)᳇^.OY'N}XzXW E'9.+Ia6Y|LF #!g20kY#Σ;sET餳®m[ YS.4>򜕎><~,1a LT -3kBV͌vm@#R(%c#Hf=~D,fw'aM|hF NOƖL||mcpzulmGgl)kq#~C(QiQGFKI?3Q 䵫˥Zn–zp`fAKv䤽@7q5fz_9ǀMYt,t_"tdDd܌5 p|IA2_O,&\"3vqCcN(J7.y^7B~Qĸ-*K'5E=\~X/4S52J9ET /,|w(=eY,8 ͂$/$3"T 8*'Čm>9ҠeЂg\Y9n{[mo[%x6fI{mBv.$9IQ4y/e ]> I$TbQ@UC>vP0mVt$X%I)$` $3PDb (sP&hcI$n$ˠ$FKG$fcїM>IQw^ .|1EP hF1m,5]Y-.ҳmٗ60fE-F:!S`0h?-, `--ˉN, PTo{yQG<0zDoH$Rr l)+_4΀)she3Bk> 1<V>.ZCo֧ҴZ1l_Fzh`%5#]U] K+ J׽+~{9j~ϧKlis%6buE@KL*"mNtFA5T76aMStqjwsӥy"`]ΒqM!N j/RHZ`S,,o.3^pY,\j` |!U}OGИHx63)@g3fŸaD  Iى)qcPGB`#\q\QT “̠9{=Ov|ה-P: 1SWębdOL 'eyzUß ҟVvɐ!-hh8t,*= $$jBX)kZ;Z,' QT%k(V!7n:Fuoչ R4Du 4E fQFI0f yCZқx=xAw!ڣyԃ <:ء-k<ڸ2MŠCyJv:P=~g<>c4É+. Zʨ>W`LWS^GŃ(la"ɵ)i/#w9|S\n fLp{xL!oa^T W ?"gA7h5$EX)R(w< gLWH%ɄF+|qWA)58o *&o0I kTσw=V ,7Toh+tY>$ CYٍCI菒zhARh4Yћ[b(JUKnf<[g1JF0jnoe$-=VYiM3#@)ۣ @yRl&^_|,GΈTEQ~ImZ֟o[rzߺnZZ[Z?~i[UE<XgrW}+GUD8K釢, ev̼nT.$ (󀨋&S{Beў74ˈG~0C*:Y|8@̀>̀d/ X#N($fCz0RRa %Ws\L>(?Y] /ғRhU?:fM@2OU"$ޒ1$HbnH>kn);tS6xtBrUBt[<\W][:Z`grz>:: V T2OG I'EMݍ'EM?񃏢OgEP"%bHk0~EJ٢eL_5^:6ȲhIM ̟٧=w0tSss6Jp&MzRW##YSTX(Ƈhx mJ?rl/3a]jGm#GF+厜J =zOqes&@H kv^B$j1*5 8*Jq+J6XD`nt O'Oej(uLb[ .'q%bSj >B- XLRxB1{$ngN- 9 1BXmOWfQ|ev :w3˜,3km )zI9BRJ6S۹QjF 65ͼ)yN8G48d b:bɃr"4]?$?s #t&3ˢxq&IZE%x@тʓJZfI0[&ΙIϔtE&ڿ`{ak}a&Yϩ'ӕq.$QKx,#!e&)|#]!VTz(1=leEW/Щ8ҤJ&cMYs) iaOieY硴햍̓4-2]^@2ohFroW6+ҹoMӨ )y;<,d`0 VF[lx T$NYb QeECX-Wѽל[m(qBg8꓈F|w*֍W\seD-αCg$EZl{GCLpiecT-:߫%*n ,SmY oߎ&!7pgJ5%St?d+pǍY#b4q9_⩨W㘩5Ū ]GR8:_Α8}Q$=W _J̼1I d婏:0*ȩ oIT(5L|q%"n B  A2=6(ꌜ1N8փR(ԓ'k'պźT2Q8XP=S T\ёA/#9:If5re|1Zz m3j#;-sv Yh5(=͹"@gH['rV嫳LQfvfS @gt$ sYGA4d5m~H>xŧ7)L?>_`W`>C|`B'G %a@7ŽSN)+K)r!G!X&.yS8*<eNu)@ʨ;*>xTkҟH>Gs$&"C)F!# !WTD%f\%6l&a㬺Ց9Ʃ$"cd2 )[1T4PlL8`/>Y{ hU`P$B/Ro@5 8pht7[X ,9+ OT™'mO=I=(oElL@)&>LhiƬӠT)JJh#B[6q9ˇ "Kv Gsf6k#,_h~OOgPo047.o{u\:C*-Jm쩩gL#5PU]nϦ556DMhN.~̬&̑~/ھYxD,EWT``كe.,擶>!E||vS졊q߇N xTjř uđjI-J#et,+FΑ%6Z\J,D;-K.\†kUy+ԠWiKoF-7Ƭ0zW#xѕ:ԠF(hY-X 9)L[ _(wvaOuT,Rh:0PWGxr4,"'MgT}+;_w^J:e%F=X#)%cF&,g8raVz ~)6 +8:| <SajIKy@ދ(fMS߁eT/e3gّqJJ}󬝙~u{{3#d2Zbg$kH2| [L`^d>3,u,J1bͭԅ̳@X/yd4MG7;*hj(3_#cb_}yF= 9N8kooSTmHb`OB݁bpKzZp/3Zg >nb:t{sIa6o-\(6Gv{hE׼IE <jwޕ#*PݽI:ꪲU1pe8 P;% /pl<{Vμ~doi-?(0{K>Yqb"‫>DBMGmSY*\zv]؎~Ťfm^Os]T+19~׾+u ڿw=^D;--4 7~xu^MLNl ]t<Q;Sz$vi9rD~+~[Ɍ '=NM2b1d1 yo#?SCaye9w7w!ĵ{ԃ@f;޹+7B?㪃 6g1 N45`x ŲӨVD#Bj!`6%o O~G:Q(Z nGdz˚12o\x<ػ2|pJ:?(!g{JBdO\50)C4@!7V)P~*8Y Gri4DZu$":寧| }Bۣ)?gT߀Kqz%~J)$'O%{5A9}K`f畘[Xp4 {( u'F>@qm˕ O'vMQ>c14V1J?xloS=Q* Coٱ1LNwmarH0wiл22VEڒōϨSv?1C1x}2X*˚PXϛ C.W+OoJdⷒ5&oQMG2AŻ!d#e{Mbg-i'\@̈l}#/n4q\Y30|u憉*Ns[t"kaIE*SHEwa.= )x9j+j(KɀlƽYYYr!X6;<NQxhm=h) Q:m3lC?8d3^߂ZZwvJ(-,9ں^eq_3EYʍE\^٥'DTQr+1d$/RwhgAz5$`'_Q&,ܶi.RbYl<;o~F'mLQ$05l5%=Wq&3/H< WxP3`8 .h5c80 V3/wa Rh2 %<,OapOTru WIJf9 +_!ge03UW,ᅼg1oѩ$o V#OY4>@MEWDkxBQŜ;t.%X>+$P Arb!kNܿLm0-~5_.WNTkSM8&fՍ jePo5*Ǩn$)r d> ^շխk뵷[ C ]Qw j1g=Ӑ̫bsy .#V\`4yH<2C.]9A5P(ia"]))9̄{PhQV`7n|}^z?Hc:-^m+K?qJ4|F^t{35Vi\JJ;*fSA\<%ヒшBe`<2dr"S E znw+2$ Dlx J *Wb] lz4T 3]yQlZcܞ;r P[gs] 铹=-g zaseciC4ٲL> E ^&JP lp~+'J]V'I=/KtT(c+[K_ݼC['so;' <=2j5,bU|lO 7d%,2V揕wuw^lrD$3u#}F[Xt < &Rj*]yQvQ (!NGUúIcC9C֑)#ڧtw 0O4 M #cM1`~a(d_2 ]͈ ܀]{UGy|7=Sl*C%E\ܶb.K#t $%x'l?oLJǿ6˭2Hگ^koۇ{RYF"|j bWQC*w6ͅ!qmc]"selso9G}a\c5${@e '=EE&#)E5h#¦%vAI K=p ܠYܿA1 hȞ#DF{#҉(|u 88Kº[N<@PtR]`Y[F?c:/Bw=Ja쮋Xw$rcy>Zrew%++a#'+ܐ`AJˠ1B>DАxu fØ #P„Ѡ#Wƣ2TP}V #%;#=jD) te"EbD눂5(u7kpkBfBj-)AemYOZmUVZk+I4Cdc'B.Kފ!,t8GhWV4*"$ 3C}er m8ULŴ*" ){2Y V|&*8)!VcVua9PqAԄDe#JBvHFwcSӰrGHTr4a ٟ>xciSMPрVTﲷ+N85.GcM/ r+7P$( v%qm%""0_&;YP& 9{ልV(F :gUXWPS!S9s/QykBݞLSE'6z`)Kn$i`+k!O=kAjSdN+wi#ͅKb Fa#$ `Gj$x꿘;<UtxoHkɺn"Ёrlz[꜁LfB)u@Q졙6ƙ^;Dba)59'ڊLdbtnјZ3\۵Vm>!%3Y: 5PKVS;_mM)xa8QL|* ,]<*x 7q;v] #t~й Qe~0A$=ZXY[IZ-m{ \!o&}[SfyU -Ȭa1v2nvv`hw'Z*\KjSW&vAnCF=xOn[sA+l | Κ  »ڒT,9:Z g:lUw #oL`H+b^DJuP5X{jZ -Av@HrK#=wQE :M@|'1@{^fYZk/l<L!OV+B ZW?MjEP;GacѬ1Tm_$4b^ZK |ٴ 3EGb v vdP.T$oA^I$ŠVp%u$:yl&־h|Bj?@d-;xd ?vf h8Xa甎d=Դ4ф O4Tc\  dzcMxuX,W(ݨ[P" xXF>aE!>J+ni-[2˷VOiAk[x}uC5/scE'K3.gMrȽKmn,U;Seܙ,`LQHyw*P7JO-O-S٦a( jy,F)oǡJQbSwxďE[oG 5Y.9SM׎R;Je"p"kqJ@I{uE9x\$cŔq1ް-?@T9$T|2̰fLǤ^{?bi JXaRCw@4e) 54y85/w~~WٺΫH4R\K?ёԙv">;f=ZOS#P- Pkfeт0F3`ayu":OM5~Gsqi9z = oJ{ Ux3~H%&R$ьcCc3?P&7CQOf(2e)&9N7qWYol˔y9|fҚmVB,zɮ5Ll Ī@%[8=m bIG+ Ih>4tlEj%K^գ,#RmЂР/FT"i/S7 ;9_"({ i,]'ƋzL+?CPd ,~nLX``ۑHIsjǯ,aaN1e!N3k:?m6t>v2eRM%~@e<iD,sYDd&M(kJ)t*fRA2׊]4t-y '|p3Pv?uΑF:&L-,`rEr{`rWhc'xY&S[XW痍ģ(8.?ۃm֍?WZ͉;+ind?@R鎣rs\ԏg+pr9z?ίX}t$S td.ÎaOQ4*?@lafL`ȳ9?.7dqSјR΅,їDݞq3E2jrUKЍi@Nza #aCɞz sœ:ڍ-TgϟݚKg&Ea/~ϟ5)HQiI)vOUh4n#C#hl]^xu=ΕPىot %xl[۽BG0k.JuNu}gAEW0/5F'MMJ@ cQ|RT:bKPxg %w[TKT%=_'Ijym 2u=גYaȂ𺖔$qqPZ ж7 j7^PF*h4qJeJ}!1{55;ƌ(x As,FP9[~ V9[ t,qu7CvvfOm(s^Rs+5y*"lq9C<= >"4)wq=8oE2AMdYлM{ .*<~zy[.RP@,B(̮W,E.BA>h\SAw]tҀPFH:$'ߪ3eJF%A?k\ g_  $-CprGp*-U*Ax,a{(9r{aW~ {goeA ޕ ЫgNNԃafxg@owdW N{ 0xN͂Qm:<" ⃬Me;yL+9T~h9LON9g%4F}:j'? HOGN Bܡ/km6'#pZ)dx_E׊6K8ظ놸~6;T;5w#قaB.keT9T2U9k3|`` )ENM^O!%34,ilnuRSb(%c_uVL7pWjjAAe4rOzp]'x)6Y 6d\34@_ӥ~E Z(֒9O*.J/2%9%6Q$+ecKpnz8\4dWCG⹯j0~`1z +Ft'K ؕ&g}w(<9GW M_B5AyOsW#\Aoc}z^k.r6 `|2O.<ό~Do1tΰM?bF!?ܭ{ע>r!cLO ɹ4]:63]٭ifMgT(\FAƇ3n5"V:XyOYt$?Th FN?l4tKtCjJ9eJaYtknP6e$fe͘%zvϞ/ (o~RU9p Z aa,f m-IVso,=NwNRc|+ H'ً[>fq{ɓ-y➚ŎEP(V? d,Qb,G&Fz T}IO_\<a}2ǽ^LBb΢,Kq5^r)3sP*m5V#lO)I6jȰ6i[;"VRЮ$OfΔ,e0FnH &%ݍUfaHCӄZb|` >:d-#6v/,YQ}uXB{:c::0#! (#x]d8p&KDwDaIFq:=s y%t^+vr*H)Ӈ}& 3agQ,~z#/ g?c@AyEN_.YK/Bhx誊aKpYsͫ@=PӪRy)@V#*Kh*-BCȹd|"V@0Y]qk|}Q9;AOuSx K+=*<1L5$x ќF?s'kiq.w $f։4=+ ӾZ΅V gm9](H%/bYT8v]개h A)\,Lߘ| Z 5翵[O8PFWQ_-m 3g2H>=? Z>75t4CfyC W:wX*?:BosCjP؋$i|3ZTCejUahuO"K @qu1r H7VB 1k8~ T]<9;xG0bibL+1rKL!*װLJxH3a ^[aˢ,l |菽݊X.;eSSo?/dr#/]Ay.PEl">J:ZQ <#@x2Md g7O?m’2>]^vo |* GC^Ob| @ph3RS_bD D.f&å}yBX/Vf\_b5Vb{J*hHq زHVT*e~5ڠoQ7!,«ʱeTg奒m] 1.EO?Ժ!X)F#],dA7>!^H1s;n-q!HJ2@Pjy0wJ %#K#yURȴE-)$EHQ,~ uN9/2EZl 25(,$~S2-/_YF5hK1:}mf!F͒ˡ-EUe Qa7%Q#0K#0gtPwQ&L֬BB!cPɔYfMඏa5R`eݩf cbO$/&(hC/R zKjހ=yN>ˬ/Yt~lL7oݽyÆwoΰKS$K. E|ID0+ؙ)E<%[OS,:E# iı^ߦɪs,{2|`""R}E68GE`N|ȞEe{a\yq@IIⲆ뎇zH,̇eˇJhb =wK]C/ ?w@/Sr6w9F@U:qgދ |a`DxK+ zÅxTׅ(c$N4d!0ʑxJ7X}⎂s$L#g IӚLp"Sonfv Uqe%]fOtvˢ^3x0r?Ҁ GY[ƻ;ͺ+!{d)] }=`# x#vU̴)~F~ሮuP<VD#r_Iz{FWnQ)"( wTZ)k_)ɵEE`kg 6{azi7 j g4$Fq Uy8TNй(ּ2Yg1f쥊srkI ކaU q21a`S r5J4YdN[&IکL(='<QkQ}vC+|E1 y 0؝  iL_r tۦd Bi3'U==h4| ̥_ca)u9T끘Yx1ey62"P$jff[JmWG7r32KC]*/1˰:xR-#s/ :APSZ&vb2Z=Q;N8aa pKĽs,tFo`9 hN[N8eZln #Sε^Ε1 :\!&}[S~g q|z3s;@؉<;kj '7"| H^gsֱ{ P}n9qL?>:\"-2Rip88'm9FGDq>ǽ ip>}HTƃ#U)SN>Lˊ g!Yr+byZ+by?U/7Z\└¸w'!č©=f?_ (yv ?tTaH?|.L"*&ߐ~.Rлǂ~ ~||ʓFU ϛ2#2{DfSPy"TFs "bm MubV2أ{s#$e~ZX4{fJ#]"rIYfs[?gYus,~PB2Zkk)XKy9P@gtx 2;'e̯ xMOޕ27AᡵݻhޣNr|N<ЊJ Sx y~z kn < )';1xdͅӽomع FBľO ý!qopDٟzf.lrFwL';3o8?y鶌!kˡi]·7{M'g6Y&c.FǨDKo4?o&tQh M[Qdxu.Q >fk];!5Ovv ,ɵHQ ޿q"o|?O_IwE- 1%ĩӃMɞfg{"G)~0%뫫 "280kK:=eRj훠Kk M%DbBOJs=uy@B:ힺ쁕9>͵~brk.3&,RAIޟ>}n~NzfϪM%+,u N;N}5FSnwPxpţx]E5#6Q2O}X%g`*8UP򫕰^ Mڏb9W+뿭yQ`=}EDp_C( Bo..%kT2q -N5)vyUp/a%bs|iiK}SțEIQG ڄTFJZJmGĦ)jrtt1(ŔtJVioϩ dWqI}*9ѬH/P_CzQ|Z%qƛ&,v5.!UZn@cJ+>ʸ\I釭U `skLm2YMɟ[Vxj5]@vM*b>2OIrUbEt3:6rl8fz8vԀx(āx{s8%i)/"N*a|p=7OO_@P.63@Ds,Wru@쎧(}4=|zZ[k]D\rkuq(B8%K d6MW8XI/!\OK*Y]2퀞g3&C-"db.(JDӋʭ WIp. ROP&Ⱦ')Y]=޶j~mU۸NxJ+%찜#p>RP|n t2h:X]|ަx2篪Oq@)ςY^]sG|r Bw@Iw+ﯳ]+(yeebuB|1 1D1˵>AaG tja;ave>[4ϢDIv)ra0q/޿^Jֲno*abM f9Rphs ' gN%=CQh;:B &g(<9J)o,8QAaeH2w'Pon偎qH)"&1Lʭ0Nu-ٍQbYypV wNvUҙ|Mұ袲e8xLHnt²eh硡 4# NzX0IYf⥊˗*㳉; ۓ{5<] Z5~ՎUӚ52PܪUuz0wMX-jGd\yF#-?MXHbEjf%) ޡ.MQ:sG4+:/WHBN+mwܙ MGfJA hJ?;7df @Dz2E49 80hm &@U.w:W K5ErT횫JFq, ԋȅᔻkvx`' >LUhRYȷ盕2Zz1t* WZ'xNZUY?k+:>ݐ.!-P2Whf9YŤz ђUlAWupî3tǁG8UrYw )UfOiE]1tuۥsPP]"mQ_Fh](Te;M" -:~z og78ba>E ̑N)CuϐP2ur64H<+SZ &XeNJ́-* L/ω5³b[,Y/}Ѷ=5I*?+Bw |ogv&#& nU?헙/%0%'>[ ^R9 t,́ߞ_,}mZ0?nb9X~giݻF='ȞadUpB4\Qx0ަj 5@KimiV&HܪaR_5u{-qt?ϢYJR*C|}m#Q#2$ /Km-dLz=^>HT}0W3Q㕥jnIx1_rpQ.MeIMln$oq-Js(0DK[ǯ^UE3%i)[6^fϢpJJY"{^% NwokSg}G`Wi=ҟA"3RNE+Q>,1;7\LJ yIKTnopmmoѶ?Jd>p#E+Fe˱2~kp'́^xjG]#C_;?6ng`^ߛmV ;k?~ Pȵ?z~__hxN_< ]݌|݃'9k{-*eq۵o}͐g&xȞF)$4z4(GZp/%6,@lh.1o%GTQ1P` t·aW=~PN#~Ў۾{"DH~uj:I]~[r>g?R#l:&*mď],ոZ-*֒b0XGk;4_`Rgj]0i,3f;-yr8{:ON+k_ǿk|3Affq%1 h;Xjn-D|N 747 U~1܎.вk 2 P0@ǹ[}零m65bA,ʅ!VSWmA~Vs'v=}➒'=kGavMPySkvkЭ>;}kֶ}z Wqm\sgkW*aT|S G5!5 BiǏt6_*/ ςqC<6)%*^L; MS|>_(]Z83eI.?W hw8x}w@sj\|:eɹn._uv|~]?߮ՊZGn;3~@ uy/.5xPl^|a9vC7OkOa}0-$-.+7Y T 8f?s%Kk^c4LnL+.k:j|: ' G&se!f p1 a1D\Ad 1K%?.+פI` 6m߃ aq  W h!FJY ̖X=*R3G~Hu MYSAt WYjEJ2Z'sS)&"ԙ~L#."s q7 Cmyv_<8A=ч'(}UWU,*kӋA27]sj&m$lḱfX.Ɠ_1qzHǥVZE Lv3-:ojǝYpG|;Jno{HwP""2EWя;3403Tbg?6-MA%Mv<_L[ؼpп= dv?M0rc8`+tf%Lz &s6׉xdwSUQ PLЭ3ͥ=N EX_K=.4%6OÃ1=[5]. PP $Q4%2}fJ y{ǔ=Wnm_Sa0=q.''zzt1v{hOmb}'&J0pT]r6]iu {"0{ "R" 5C&+l꩏{hyrRzMb/zAZH[p\dǚ)| 拷Fivٶp6"'!=ƟW#u}C۞[,q2.+1fhONqrJމ@Ay@>fM$=rz'l}~cUK嘏- zT4eQф-LMix7<c ]X s)-A0ARlq.$-?A2ڷJ3\NUC8 nzWqyP:nƒ9&N+N-{hdژ+D;?C] 9)NFl0R/86rTT(MOh t" "KrxΓ&V11ܑ+IS8hEeʪyˬ/۷ޘߩѬlot۱Ȓ?MOF=A}lً\|Y:d }(.zX5_|3ia?4ߘis[g+<څp)qX21VZj#ra5hӁSz,` Xʘ"53Wc*ʞAдL 3P2?wjwŀ#Vh0=v5 a Fb#s:]CAvMҙ6D7L뢤RLt#C {ruގZu1 ih p=b|$Vaf~Ӡ%S\?X[ֶb6Z߯LYއ>GpVC=oC}y4n8?m!j;9Gpa;#Ls:8Jָi9'>; L(Lؖxc A#ZC b"MHܻth~a?1r/$& *%&r [g1-  XL*Uȃʕl.aQ#V\=8fF}ߡ,"0 MPiqvϵ\f4S׏[_M`QAI].&) B!Q( $B[c^QHAEqo7;W[[X>ip=|x8;8PGyXϗN7ԅ';ώ~QMNH)WRm+>x(hr4'v̸iμ͡y̯n޿\/ tvqd ֍G7_'X2jNKфd=ޱ72րH[,+~#A50հ|TI/)ޥ:3J, ? R[H~öt3YHna鏷+S7z,5V OtWio^8 M9S|5wYI6Gk=s~>QaNJ͕Y+{մmn=yN_7Rn@\^Z3,GQ %EǖېyW OD20p]!C0;鳺,!:/1Ա0c*1)T9;P'GoXJPU4C$9;6OR94̋ȏb4 TMڝEt-9}FrRR]^Jh>V/Z>&~B۔T8?)xA^Rv@oNz}/s9"[VS'$U*Ӝ?48@gXP-~&䕜x6gRBJDq**gai9~?׏wsU[-=Y"3;^=U}u B3Hvq~LEw T^7+~!t 2(AhP{r, >lXkƁy 5Av?dUyy" .y6">Log{#AQ-u@#nn.5?C4Mgi/6Й 5tDYr배56ibP75P}qM{j1ehŸ%gߋSj>|ndtV .ސF9--Tret1wRbMd Vkheq{*xޫ>ӎĂuH$CS+qa.2Ň5 C8z5)uk= 8~_/6O Ɇϑtԡ+ė k~65V,pz_)_BaDE)W5~lx>ysDvF'{a3} b+ےm@v2*΢؞@uD J@5Z+`}@d5-PH6G'^&36.Đ)cpn.tmrjVn}SQ}v0eAy)Xg5:8T[O'~Hpi.q㴸f./ jM;Y6\puZ`Wv=lUk$#ϸأkG nmEP*zpԈRO+ﶷ߫:Q:n:=ׅN%NV D&r ΢Lw`s4-beUcwM@z.̴]C8qo&(67y"ڜ <U {|b*ѶOԦ>]sʘ$e)Wj8Iqa~;BB ba:4\O)xr:(N0[@ݫİ67! J' 9uc\I" (P d7=w N/n8ZJxFh a z$DrI[WEpޕ<46St+ƈq[GB]+P+?], |]&?Ʒ߶QߺH[Xܪ9 )vQiJӑot`0Reߕ uke~. KeU:q uy{~=ea!Di_WsN=}LPA!Ap `ܿPn|Y-fR2jr?h9xBenbhU!/f{drVOQyĬ@҄ hz_;F?O#'vI;1# #"cB?X8 vl*¨;Шuh43!Xy6p@0Q_&$Oy5RnWz1bA7(D^D*)t%|SqKuS! QS "x;סlV-wu}|þV sX[=bԃd<\r$qH URs-,IkkB̓1)p(ɩOllE'z ǎiS޹ H8puS[bF8˗ ꓋G.mh{/˅q@F i8A_4:f#IbD!{ FTh:[ވ@$6Y?n$3Yr;Q^S%wi\x.:UQoQѼX{]) ueM.NՔ)B=]s6au:\Flﮐ{lc(ɧ2vnӼ~5 Ru N WGѸ DإAgC/R1t5w2j!YxĜ5"o7\T+e'd=%\,YqK'YE0^%>&2tY޴%γxۍjZ͕_b?9Yj}"@DyoƑ- *oޞ3E$ۧ6~eE,>t*wJJ\\ċkfNVp*?q0]iKrU*3+MNp3U?W8y>H0#7}߭Pr>PюZk1K,I`'d7!tL:6Lqd˖jJ+zH,aђpxۢіj u92;@rLVpSuuf`ς:gT;F)=BݓcG|x'?fOp29gj=fBdF^[>F~}oZEƗx[n3 {p5˦f֥`kec3L0+s7/bnJE3 y2YKqNh}tl"MPh` i'f=]|>p}U6%Z MFlNd!{gy̱^[Vem/];2~@KlM1Z))mHlX3KfӺOdfMހKMOyFa@E ="Q"c/Wa2ߌ–dUtTΝh-o5/ LrDԌ{wxnכ.lghp1e{䜯^ZY^ d1ķe/kCaOg`ȶO8,b?CDG^Gei$ _D$p34=:РA;vS?w~ZxRӚ8%sY?Usz†٬syҩ}lYPW{~1a:ƚjanai˪"4tr^H{ ֌p D>"w׉G(DĸiMR 3<7oDNQUpsH!$/g?hXy@%E5Ev5wF GA/ve/Jl,oD5/o*|Mg 'I.#?S?9?T;^R>7gEs?N#J8 9pJ?| p4`uRDa\,>7Z3m5jk\1p9yI)"]6-EI3HlSkSB~QO8]Xe0'R6ſ1?~ %fx87gLڈZ̚u7 ѧ:si 70|]a:_Ifs~'ϏaT?d6|z,]Ktx ͬw/;%Ɵ\s{Pa.3-ʬM/f,Gs  ^Rbb&UȏA_~4YH=|K|0P<4DSJEPŠ&œ r&^ Tގ&D l6Ծ/J]JeHil6ތIyO-:`FTu#H#2+;oh2J[>8/Dؑ`Kt2tAD݊Wqqf7]jPI UU%sTYՕ jn<}Zm<{H;@]uE0U[F@{(i,snFL^K6BDD0x:wCi _YoU AbacRGvJ@C$,'vb0نt ŹOh>!HJjcgpƬAsb]:()~KZ +;[|m*d\߲ GF\f!DU蜽PT6N&R "ϴ#D#iX{k!$37@I0f#vx te꽩Kpxs"í2e<l"@DpQ>YmZF͆MrNqqx'v-aәN\U'tN}.>Dhr\焣ZٚG)&7| !"J>.ZǘAvk !DŽw2?ß٥tdoKSm}, a{u%nn~G KuBDV¨FH^K_rJ a qXP?!Q;W?;}Xΐp+|G-s𧈄R_+wA:5sH1YT:G A}2n5 ITzw%3Ɋ'``ۋ쮠M=&C [XS0 njc,MҎ1tTMj7[}r:z89@ߔjcP9hSy:I*΅(yʶ,TڊaOhf误-[[_yć'_@BDd:to/5'LmL4n(Csq3P=:>{Ig:Qj#j+ >՗W^Gߞv\AN?,3%Jc>":nx1l)c%ӜaW$9SAʛ4LvԗnMWuNu13BU.cU1f¤34#s/f4w&:5!D9uTʒ2 Q:p':Βe$-ghΓ?l5SB x#Q z:]E;8ړlM&]OSRLs+~Y_ [w YM!d6f=uH%#XՍ"E藘̓QkF Ng}$-$t$T]r3o 它$Wl@Re7,TZm|?h tK jÑ?i$>dQsMYYZrjR]ULfyI/>i-3NOr-Ŧg呞2:e9KgKj-wZ! %jQ&\ZGZ Qm P>hq˹ғWQ@*;)ub_.M5a?M":uZEi꧍jMK$n7_a/T#BoyBhD89pqx ~nn2.߭(_y Oٖ^bMWՐpe?XI+K,x=5e27|,`!^b4 kp%b%),3%\͢6u@Gx1Ht)McĩS23Ɇ䥘1)/1loqg*BV+|^&[@'"_2@+sJ2/+aΗ3Z8[ Q_zqVXFN̐ cX6}[563,j5ˎc!Oqd76S{80)- ,+D.ȏa 1U+ ǿhKϩxm~Hk$/~m4O~I\c勓/}Cr\q@C=%¤a:=3.BNVU M/[5k,11g?5m*3Q ~ zl3iXfFˉ0Y,TpBē׫6?ȓ`s_/&rpO4pᝫLg<׺ˇH-wN\j]tFlzI%N:J lɲ$M EdDdm4`Ւ<_+RJg7/b֍F^Y⭶l4 )/3ZjBvz$?MӃU~؅I_\1m e>3 "'eHX*H_O?67f jc|he`F.jp'pi]RHiPl0()L"% ED-S~EW\Z `d {*vڦ**ޣ (^jj'(D k:^re2 U6Iύ_uTTR>xx~i>YV٫xFt[< 2;\GSpNs)I]/jʊg#-*y  Ey Ҩ`i8yarC=tRL zUTɘkV#Uf5b?àE#ӄ}:ɉPKf!q-A@fSV2`a\'ս\L s~KȮ9gڢnG~zcWf\g>6O7ʳ?-7Inot15i%{.wFb9LHlU80>u5KZAEiyz9 Cl  EՀl +_yi&Eч'emx7P$)BejKJCOz{3GbbVZY"QT(!4Ә eJ;y1:\3UBJUp&ƘM{by&c"nPY ߭R]0yEY:D [ 0!m %9MOWS}μp:9M4RFni G8cS9o㘧=f]z w7>s{@C0 #zrd&Ң|qv KO毬*$5>@H0bYYʌi9 #*~,S88{C"Hg%XTPq,v( qZLI(dTzd0x3ON$MN H!̿ypJ s ,Hu&+fo ~k݇۸?u (Zvv)߃:D(ɋ?uӆ90݄ѮQ*c4 *5r_SS.ݝ~/a~RDlOab ϳoF8Nd?tx>9[eݐ U.a;ϴ/I-?]Ԕ+tՠZa ‹8%t&Gv:_Vgȵ8XETϘ_hѺcǖ\o93 c,Q7 ;,yEׇ &9e7e:tl isΖ >l] (P2O:o^v4SH>zg惵z?ћpAzN^$dgq#/Pہ*Wr ~?ǰ\>Ts*)Jʲ+(U?KbYĢza'34y:c5x {Cdf9X&K&9D/?յRL=̬=,+BXP(h:ǀ!"6#0A( C D?qdV(޼:DtqtUbű*RrH(!(}AQ ͙^ãTTC#h8|.: dCTJ ^W҇nAc {V-\2nU`>yb!4TH 翑cz=G8Zim=Ӷkv]"B׏A?:oXo|r=澾ٿ^]]U.wy$<Nqj۟.rů[ZW8rYz/ J^_wX-Q|>1 $-Ofer`Ƚ?|` /qݹtд" |LG::tJS53P3^GW-c>/83ƌNhsMBX֔6fN Bm㐻eoD5f5nj-d> MpsC/3FG40[ƀ_"[߯;@a(/mxmtR[TiLT.3b=+7T-.%V׭9`98:*'F6>[%.G~ftU>HZ OęfiA)\x!"aԢ@x/'q¿K4rZ>X%v8ù<ڬ^)EO\KԷ߶w:lVi- Ns]5 7F%+]znUu+20ch $D]/PP<}NZ`;1: _mٍ0mD.xi)|LM7uS@'"hpe--o8ж3M ?wNt7o8g1x}\9mAxxr A#k`;2ڬ23/yLVl9Do8U#14ls;hjV3>*W (7(YK"|3pN ƴ4DJʽ_r"./B$7C 49\V o.8MNKug>ȠߙRn=Hr4hAA;S,#I jj>% H b *P7unA:)ܡq}p1yee]}]"bUDm >`IvV"Sj$e`iп(o^g2%ɺ"}ˆgLC{FU ,#$7{f; Apb@Q闭5LWC_v MJo&Im)kS#kCa+3oGo-3/ h̰0,)Eop:?_aW1H,~2mRM^W_E>?'&vȸ.\ L9z7JRhV Մe? jiz(@3O.u[SH^nw:gS%U7f>M?˘gƷCvUdn,{[-Tn |{n듺)ͺ+REso ̇Dotct8o|1Jzwl[zX.+'g=ze-^S~y WVYdPwYk 1aBɓ/u螉ɰ &9.˗O?٩Twg-DPU9[?vnh:qs;%0xDUDtyɭOAf6ŹO̞9QhғIKo9/2޻PtV9'VlPw B7wQ' ɳ5LKm8U9~i|lƢ6Ϲ17kf{徥kYW-W8:WBCx6_q%K+iZdJǫ; B߼ۃSsnZ#cU3~gxvbYj4u Zpƒ#mx.S˶c]fiOd]#t|ѶY7Mv,a j4ۥ居fjms=vy.󊥢AJaH`btʹ$|4(ι{k5ވao?X}f>3Vό_ҷ/K,p[qmwtIs^Va v/:0Yfz^X \D+iY=ЫV\AqR4VH}BlgGc GDĞm/ [0)` ðذiW d9yxu㛍vיj9MKpyXH P[{k9 CԷOPcvñÈIn'&|e@1`*[/\HlևN耰>ߜb$wfz=}UڃbfB\JҨzHGJeÌ\RIet͊$ %Լ*x H{J o׉,NB>i_I\Ѿ+-`q1 TQ+V@AV8A;N 4ݵJn3Rr\k} Ͼ5?NUdIa֥L[m->Iv1Wid|W枺LI"'|T$؛N¡IdxZX GL0WhF%Q˜P3.ݐK}as 0WSglj^c7w0a ]-S1gDY Btg%P0F#!I4 Hw$%lCMWoճp3G Ȣҧe n73gaO"NuS'X1 Jcxn丁Q}{\:EMIL0p| prO"TȎbmxb윪Q3~OuCã;xMmXEyb)DUlCH@q@>:f^skۅ  ^#Jk3Iɀq,"%TV a,#vQy+i[@6lg/H/ZGjJxvwDl_z N\DDR w?0VAbY\MJ8Bhan؅-Ct9saloQN fԁhNYl)_D]NfNcB_DFq);g/EoFN+o%N"'NJòE^ϼ+muE"zB0j>gyr<ȃ{`ӑbgb <2Ioyӳت:g Ef93U;tϓL]8#Af ߷/#ēp~o8yaIC'y5B3<2AɒbO7@qAL~7-wKuΠ}=׆.Y]N-.ڻy^QY4jE SLpբg6u<99qONO*tO*~U^0\ghEv49q;([hZu:/ӇVDi ? TO*UރjZWnSZ1ݩF_NMff4mΐ1?P+^r^| "xC΢e,k',UGF=lm#jʪr]4&{ $[Db6Y6:Ga=e/~{y;s0B㢎"tB"2н3 \V e EPB1jt:ꇗ_79`Kf-0}`'9D&7xh#+[xk(_mo(6ȱ;G} &\޾ u7fQ-..'^>xt"NiӍc"C k)G=HȅuZ?E*)oCR~sGKoW &ClQp|XRYZ]Z*Յ\U̯5iy&Ja5tO 'Vv~הtT{nrԄ!0I@瑱 ڝ i~w: 5nMQ C" {qu$TJ#E5/Z<#٭aamU0Ts H&f%&ist|_oi`B=lgx?z~#3:qکu/BZu)RE,/7[`t8?x܏rئ]Ng[GM5<?j6{(;o2YK%aV ##H%։Ėn8%GJ>Fq$[bI]AR8 &ޜ/=f?\,|e#V%sT]%Bqg;[IHTSoH>fE.C?΀O&.R,J;W/ j|XRVLqQP3a;P!Om<%pm oS>0F*'w6Vy2EA%_눓hVRRUyFZ Uzt͊&:x'9_ j"ӬOg~]>%BQT'j1FsSB*qx#%5FcpRSra DzãF(C,/s0emK h"GI!xrK6\](Ѣӟ\3FD arȊ5N" j,4HMfH?f4ƣ o,,۬.]Nf%]LEK,X ]z.lfQ `1 F ʗZ^s:Dkvj`]&WˎЉY??=DK#Q,1f'H{%"ig -- p(lNDf% 5IiȮ?,ԅ/x}ko^:RL"AYVpHZ5 s.@{Oi1ڊoi{e__5#8!5r=֠[> (6Na%<T ;[`ս*;lBY+Bɩ2s1ϱC٨uj}9 4j[='E]8dKz~:ĆfB%HQl$=z'FWbgbE"͎zgGL`J'q6 W'FrLUmF & Y/c ?pnk<4{;vaBT^ʹvlҚ Xz:]lJL SȲ[K}7l"7h$. T(e4A^f^%oYtp+GnvPĘcط@;JcưVүu8h"460ZSOVjWZMV-h\p +-^l o'vb߬ȒcL=K;g&Hv%jEDQ:i`wÀk2ܢ!@$R 0Ȣ1 N]fNtɱ#CPB5H9kRC=*Hx;x% +zT t%<>l? cib 5GCǣm4 )g+=mhD zafAZtnC0ö3UzWwX_?_39 v+&2!=ނ%EzY_93۔QVM~/a4עi̴kfUdyZDO5s^V21 W]%<_e4);x r# ot 8&'[VS>jb8q޳4bK$ wd+G"V$/X(dY0YbȺۖHÀ?0u;$y}O!ryر:WĤgGΰc~>0~mp&D{n tcV` S0Aُ)R}M֜u NG)Hi{p\[1_rQ5oo,,j5P_rv!:E QxcML.KF"Sj"uD 0: }WUO>NoRǩO5ԻGRy(`29HI~0cfj_4O'fՠl{AC Iqʠ!d0xH@Lgp,QZ+܊TB#\Js/QWIpIZC TWד q]Wf!!ڣc`#de@9y=-2OHŏ^go}U,ڰ#/6H9%һ9r,ܹal+.iϺWm$u;>WQP~ v; G&CگfJ73f3P6$뒭4& t 6c+iPgت]9M(檚&G#tZQ-'kV2/g DO浛~}lKj)͓Z{B^fW*(K*IHYqDH Na0> -;]^=m1Ŕ::hF"B gJV@1 TP{Eh) 6HVAjkhF)j -~>F@IRf 3(y(T8qꭖ&>BI kq< "`kdrޮ)&L>~#7RİР"'>\IW\^2IؓJ@Z<= qBV 9ԎʌCm`vE݄I'\1a =_V;%Ha: lSdU[Ip^e*i8n8"ꥍخVLiw惔 c=[gWZ媕')^ 'â&-O u39$+{u@|i=: ᎕*1zZ &`nDcD .XP9Pi;rȈޢg!D8DX=Ɉ{NN ->wXM肣(Ͻ0wIbbħ |vD"V?3lbŒ׏|vrdcMp58`U';klIV2pݦ OH YrUΟ?0$ B3jz!($P'XHԝΉ9%'%zf3D~[}i/Dmj2iP1銰5!G}NoVZ \E+~-(y.$NjQL fFL1ߓ/1ћ x2 pBsį&^{qb3 -Cy/ʵ,kvJ*ig+]dp{e-p`ic^!<^Q&N; 2kH6 0(&9v4A YGJd.:,FQҰBP428>$ܘvh A\5:l>0v$D|Y~8U$i2qïz?vl8gnCJٹ7%ʱkJg lk|; )zXV9S$6Bo'n:1ƃ{΂.!w.tj1)XN0 xư[wN'ez].C4A&9WvHf{>ĉwAH |+WAMĥH2әͣpacMC]mF\uG%J;*8rm!@ ¢MIj'Q=j< >U; = B!CYz!6:" :wºӳ9e"󿐚!JEs^V ?cQ}KY.c$'dv"X-Ѣd) g|-`nDdB5Mio6qzcw݀eAf*2BYX"`96'5dxnb 6^r^@9A%%D-VԵ lax9(Id(~mkki/p2 v FЉDg7WLT⻒Vn4zN\0D"e7O>s~B?~L>t3T;xFCGdn"ª\f?{C"IOQyļA҄ hz_;p\ 5B!z >2#;|fةT^?~ ^ް^kI26U혜sL-7<9q7u5- O^M6++ڻ'$T%-W*ǦֲgUf) ٩.+H=Ǩz!lpnuSUnR鄨-]YeZC?^}.l DBIvkU6鷙f7= |?_+|nn99jXߡ~Q+鬲TpwJƦM|4%5 @jg̨[UDI4B]i ҾLƞGxMjj1f /D+_OJI׮NS1P:$)$7jUFUP`5Z׏9 wlk蠋FcW%SWRKiTDñl$D:XψOws4&l>cI~LXEa)@÷5!" v44 pwV?_]ey>B*tr[TSj@ .:~u>]=y7 N8R%숹lF` sdP蔃+^+8R(Rq[ ۢh6,XbşQ?OS@Y=er J]#Y"h/4 2֑)X6 :?{׶5)fb@.>HʳB-y-KCsKmϙ3~`hyD=6# >o1l32sM5҂p~ܡ0uv໗2@XIkBMi) j5{Vx7/Vމ{׎ rmˇ_~Z?oEVrWU(Ow-Ȧ% Խwwb1wg*\HkT &)%g%\mU Fφ Tb6<-Yr. We> /(a{7&<>⡢ʀ^aJ MFCދv[+tY-"[QvdK$d1QZ )JS'TL?:?j۪ھ8;s4f8̟2@btJl[ GzƦK~D=O1եe!J/(ͮxIxX³J\,һ'ꠂ1;x%o%puqv+$Fnp7Hl|8DbN@Ect:'StsLIIwu u3pTA/dqS㎍*mpҎ#KR2iK͹MƔu *Gw0~r6qFM4rdK,3I-.MTϞe Je̟I?_g,J sns/_0e)4q!M+q1=y)pPޢ44th-?}d̵.Ѓ]Q^b5V@ALe &nor6RCJ(ߠd{2Yy^rUok0T<%4ں+M|*"nQ!"Qg dW{TuŃSMvS,f&_*m$ӻ.nGȾd77%UZcU77'7YBq4؝$Ң ҫ1ro] 㯌 N1yJ)M<$lxGj=fXr2y%3@uFK'g)Nn (%UH0>gK  gJa;cN^#۟V⨣P3v LzSH*^i aQ'@mxc-Ym Q)xラ1Ae0j8M $I@2B}b%ٳAy;?)Bi306]yQPSa]J sJR_#ch6Bʏ$ӶGX~ l"{|0< U3( #"&7lIFׁ 8 .C&)N|,-L/Kl:_?~?+'Xt5uflhQvuW`+H4-\[P_g(sO pK5= SeQp/=sg ơ]T$ߠ{j%NDp׋xw;s+.$IStliUF=vÉ?` ?Qm|d3#56jisɞBgT!PLwHy)W@aUD΄u%óLP=wCFNTB'=rwyG;E?Nxi92ێ#8Y O.@ﲍXO+ ntZw Q}Sx\MA҇bN8nM%_R*^ď7\ZU N1Ui&rh΀r ?n͏Gғ{I!Mbq /ǮŚ]5LGt|YMCO[3)N-_W}3εe#E~CYx\6} r%_Jw#d4*LwEaX#Pk"c{ᬛ7)7™B'="科w2.Pz'eT.$ qTH,ah<6b@wv$odCqyge諹m)x"ğjTbMiTo(;znk{=rϥ\ʝaRϯ+˯WŽ{4dFӐ{^=6ٛ_hg.ƂNbIYWW]]N,ـs4r 6*L' 0&pB L.g+)7,XVr0 o?"6/1_@e kC ^;w%&XedxlJ< ŬZ&/3S&76𨁵~*%kw[9ab ,0 e_,JkSyz{.s!/P~. ?(qRugNf5O 59KQ)tZa LDBᶠCFa$[Sƺ7a?c'DUTGi e(|ej>7*$qN LE6ymkj Ԩ2I"g{hiL ˗¥%0#eK~~Ȅ^UYRw+c9/O-~JRSpvRYgO_|?´o?}8omxNf_K>uL{|%kﺨ ߺdvۣ!g =yTt}yjI&I${z^ء.2Ie[F޶mYrLe_DM=#7<ų(/a-!Vь@,F&(09pI9_ I$J]TObضJ!,G8F8 14}Q)pm֕xL|J{׏;ȓ0(IrK6'ޤw #_j&P$%GXHdASe<vƎ7'r^Hr:أhDMPIJn< &STd\J_fIC5Pa@:ǡ}Dy*q#R34FJvb!v } H ɉ?dP}1(REIΞ͹ܯRm͈`d9_~TG1PF0RpV 5aqD-u>p*R xX@=/ Mr.F.]KygXp>({Ä[P@&ZIqٕ3IR[$| C>!7*$ŸlP{(lV!5-Tc,JEEB`խ\>N 6 j 7zf+EAuBOHdl1%1Ϻ46q! KWz1˟M~Q(l.zOZ♔TrKyr7lC:3 /D3پ޼l7.~ëzk lޓ-߽ 7v=;Z̭T.: 'rWO3U͎VN<B${)-5r~|AZZt /`/Qy&K:(D[ID2s1[V/I&^.ϭ4uA`yJ/"]c1qk[Q{@Q 0K(-lBS:Э99YtXd3NχKj[2p'PFz1,vRo^is!$8\BN)S\pN=n rS_Q4$KTx͆)y%//*Jb~6FuC%J@?p#S+9UhvpZdiM`k Tb?˚FʞpY9?):M7R*Vb6ςxGCӸ=Vb1BKy(sqJl)fpY ?ϲz(NDE駖`b޴io !z0ߥPG4)-!FP-\ֽèW_Ŝ;;>֤ZXAO>h'`ttRPQ:M'( HYH؁CJ evG$eԶQFu%P!5'cI? R<A/!-17nE4pOTz6Z571-]0?8N|UJ C:%]D(\`i qpEKl,q c4ԻdQL7|ݤ/SCS 28%"M+[LbQ *ȟ_4*8[fq/e‡.cT/r[GXP:_]}TCRR6bxL2JB0)kǫVL'rL݉y屳͐Š؞p?SAT0pL@ 28YػD i3f[%l `Aʽ.˜w: L|,Nⲅ\@9TF"d i)ٯ&M B[** 5Am)El^USbq~Nfn3F3=h_RT4,_:E"RuU^rէۙqk޶NtKWYƉZ??`J70c?h6{pɱ^8!пl]@{.c_p&m+1¦@_ -=ɲ]Lb 'Gyx>²Ucڐ^#ӶiF–=~h0)YP.E;4Kƚ M;N]"hmHGoQ,!oKk-p[.LŊZ5IjB-2'dL%Ŕ-XB5>TScݻBBe"GFbB,IE}-@ŀ]7ykPde-%Ǫ*-fYo6:ƵXنrehL;#"[3|>[,@GCfbܽHt k6872Ý)FIIz' 7q/5ou\6!&juS_/=W+osxD]n#i9n pI.arڳO^n *b$o؟" !iSXRBf *& Y}:Mׯ J3\&*k0ՅͱRe?)x}AlΡB͏To$L6!|?B&~l&W+pEz]!A f_!] w8?<*[P'^LU|tRZӏt/.6ƆK6vD"jN@趋?2#I|2w˙a5sN[II[=B؁M/`@/̧z+[V7q%?:k]ۛ6T}S|";.h8UTlq'0F4}D6OøF( 44k&諚nDͫ{;M>?z`7 T-meQo˸.e$BSD>F>q$?CZa|q[iS/6ewd,"|g )ă;ym'i([GC_6IRӃ xOg!`nj myNP TIomp<M3*^<.n*0ND DnЛi~Tm=ƌ |!C>yhخe]/gohK&1 ˘fN3gZɵww7F6h nP_VVl~XiO#+xsƦe2Jd";J "%ba?#`(MAT"HB)ou>,}]M, {xB Ȗ>vd2AE!(lLSL a}.!h<P$$ce?"# *ݭZd<[+'d} 7-wo'J+* 8e1iyRP|,hilTq'ooq'Ct]oO4YOVIl=YK .8z Qץ%Dk5?J<Z_IRE3=E!mu=sPCr(dwa[G/ =XÑ1BbO.%VN+Y.'GjM,cfXR$vm5>-SݐaH 8:ZsĽh7YTVE2[ e7G3*ǎP8aA苣 ˮɡ/NS|rN"#V+qp7I_42!ug q1O^RF "}Ίo׌q" 6Z ~߈5Rm7XnC%f2_,z-QI8HCď_7Eu"U[qp"l//@X ٘N`Q,#j˿{ r~x M>%], iI:ٲ [^S KZ ($$RWIA[L@a 챻R1^ا_tO7*i^&:\R̦}r]I Tc b20a)(sW?PD1r~8IX$LE8:pmмURjǬjNdі٬pjLBa.-:,L ( -Bs"X1 *%ʲѫa;idH׵7I`%.S48LZlp:3F!O!{0IX^wdªK3qZIwjACAؖjr1M,~xppsd-\ ALIEw6 UP {~u5y@Np̱D!4_ukF00;W1zjOzFcQ=9I%KhHUTHRJi%A2keFL)G1ml -Үn''=|0*,FG̺V̛ jK+EK@QT>l>͏o*\׀MG̓v{;=Bh"ZƟPMFz3rH\5iU>`Y}sg ߇Vp{U9#Nm!$dתznHZPl0()L+L=]%jrY*/ӓR%(i^ lP@т-0*a[%E[=y5D=ye0n\ir KEM/H-8԰@>uҦPİ> Nx 0# F$q)ҿn8Eq#zb><Ap,#訢2@Gqq$0zba1\&niwf+>:`k|Je[d`t,azވE+Y(h(a)+BZKsCńO,Irʹw.n餽KKBe/DJ5si+]+ݤx87SOQ bLG'^-¡4w"I#f.x́\tŰN.fpTqp#T%@.4c5&r{(cpySFQ`Q{>\ū]>қjY[I$ٰܮYrNG^BNZUAXȈyJ9Gx* ޼i{̣rFzRWw 騊DAB| 2`8S(@fY9yE~>=9G {wuqiwoA;Ϋ7;K}h-%ΨAI:cx4-R*k6qQO)]9Tf'KPy_T ت stA| |7#oaGN/t+sCi[*! ]1BA;)M;;/Y~\Ԙʤ+d XX,RLp ɓ'87HY&+:D("v(SSgO۴4dÓ:uyU_w~7>cRYzJm6]h;|20B z 2rG(  Ӌ-ij^s} kIqS *A3MԓI[etstUbrkVIb{rw.#*gī)')@(VGBLysw}@GG$la0!XRAFnEfC!irJVls8r B;Ib"e^+qr0^ ipWR"@pXm>Uk6]p2WO@ǜKRYnbWX㡺5Y> NcnS:I GZXKeQoK֯).%3MA3 L*(u݄ew5Wޭx R7e);NnNʨ2,՗BÐۼ*s,Cf5.R%u 7>KVuknp-3VI…yO?Wڍɠϟ9Db4@w .T:>(NіK~H"˹J?}MK=ZcўN5 r97ࣝ[0?t0AYZg!X+h9X1ͫsx؅Y#3bF AJ5q2}rrO^];+ǿun+ @*}b#5iAbY;xpR,%}Q'k`\DrBFI]@F9y_wmzO0΀Awa i8 _úJKƣV7V,K9**#`!y׆[IaTLlM1ę勭j-B*0הWcnL$sg8D;͝WM[HN^|ձ UxO5P1dV(Ne*a곎y8Ief]&pN6pX}3؃w~vs' zM0,-Q$izcꉛK(ۑk? #«|}5ۧLU#9ŚQ 8rUy Q~&9+&q01>2˃&ߢ6Jzc[@|ugsk rYL͂L.p+-'MyWhdo݅S1c 1lpAGc`s08mqnPk0{]LL2uIp<T\VVN!y'X\8Ut"x9ՙ4S8x9uZZ-I.ыfsA1z \VNGE8<$2j)F95B $hzq\KBM(/w(/:rָz=Qg_7ӰQozx}@Tĩ1zp%ēiP;->;]YF MbnDlsR̋טe<'vnðZ͙a*֟]kn"ۊ$bKhZ\>^Ezɞ,O[{yV=}oRgo=}SI\E HTJF7cUo/sZ5[1j{K5}> _}P;kEeKxwD!#ǡW?k#B\h"&A냖Sn@[#E4OfbYtWTg4gb,MJ":EfۖUx}WEBFΗL~3u+]ǒu[<6Y5(\maV:EQ0QHYB ,6uH7hq.ZJN&?=euOYSV=eԵ3?U^RnJZeK6\2J?U!KIؤdj;1%R+-Ҳrü\rFKE_ tbju-aԮ7P>L|cX$`] dހ22sŕ?>RF$HFtt]?)'åktMQ}w77#HDn| ʌ}N|(2?ё&1~T18#ɉrV݁iX瘲$8%MKk|#–(hdZcs\phhzrJ⬐n)KG wvv߼t-^!zsw*$&8F0gGsnPHU9'%=i |050ހ(,XJ +b[/p0@MH(C/p@v{HZ%Q+w W`hk(WwK4w[oy+7_ñ{;pCׯ&>ngoO@d:JVA.3\'\0FpUP6@Q&cw( 5ctr}RQ@"0 o'  :`~D^ fhM0IZU!*˕:_NkN:[W[[LNJ烪#؟ϒ(ԁTCB%)Zn1a[c/~~2g%$(:3IUV|4?ϖAԕI\RP|2 PIQ|*s@YS֪du|WaZe-`I4.*M'0]=;Bxݍozk{(5}gMHAprWeu5Jzij I\IW*u\ ǽWU c_ͺ*nuAlGS$CĔFp]*oQ@b><:lph?lCLs|/3ݣRPxڍ'Ŋ?wQT Av:NPsP؋Q jrP81Pj?-7x<{UǣӊW+/WZGYvw|d-)MNg %\z~aaAu+4ZQ^x2ܑ{FqY$ɱnZ%a3z=L5acOl7~ m*qByٍVqb] 9j`cp6ǵ^_qI#!,h߅,l@蛹3|b?6cW/wa^O&7.+A|1E 8W2.7[$VBa bl*¯ڎƗ RAow|aK`0PgIG%qCeEYm2-"2$<iuKAN ]|@0dhBF^d#{&JfOZ70&6_Xʾ,ԫ-A kzf >[OԨ$wZ# /ȩfh_|6C"Nb'S6 Bo-;܁JPFl h'i4#)߷רi<+ 6 |QVOV"ߡGpeК36,̋LS cOh %QI擉d@du-%t7a$KZ"{^]VCEZ^*7ǾLX'1`)D8eR ur8ZSqŽ:xHr 2BU؍K:PyWbu^!o T(~Jt &)D.GkRC4'AU!H9|OR8о/ۘj׮/1|PQZߖOlIITlJǢ/q7_0.`3y~Heۨ A=R̬R+0i2qQ $'\4Z,&,ѷ"iU$ѥbI|͋iâΒQ+7d ] 8\8|)*LV Vwks}60y2T*&lpLhB/udzڍHg {4\ $PZyY,;UshE>LGJ}oNa/`Mh$ƬTWwxFJ@q dJ/kSUwO$zӪѵ{s&] v v(\˴`I2A3^2PZQ;"›u8/ԭj{ؾ\I&9^(@3fCw76 ߵr"hJV&b-rj')LAVފ^B+5kdT~"-hPVX_A|8 HR9.^WN?{lb6, ]=Ꝑ05`Iŧyf7L' hM')g( S<}0w mIk XOݏ0Fh`#-j.bT:}򜄲yؚa`0Ti'AW^4jM,fO3Ϙ 5t44!h q6#HY$ a,Lv}}LJQ?ʩQlj^5UWWֳcmMTdɄJbIHGFce![H36݌Vv&Rg$N8h*$?L-R pF_8ea#`C荦8{X@U'7Ǹ@UjT2ID0apE1_'h?kyWuK^Gΐ귴6HƆl5D]]2m Zyz[?I PhM8Cf^)tǭrt}X 0@MX}b,&lR%M%yskO/5`ENα5nph&^QQb<8P!΀<$oh^qytY7-hRmf]vXQzU0$]QemĿ2=eJɳG|F%-f姏H>9qY\*0Q\z,SL 'Վ"Cѕ6vqʳCje[5.?b^unRur x/ºxS6}r*g?d#% RF24LÁta_[[ߖ ͏O'VE\c{)n!;лF# 8x40\_uΘ>3)P z++4fQ%PA5Tzi~a0:8OTIք)+E.$Ž葻vQs] xF'Ƹn<,$9cwmzN$?=R?ܡeAΊg3VmݔӞN6668̽j!MyR|v\9E,-ԲPCԁ턷:7].I bK{HGlT$2'kir^q6W1gWd Ga7 RYH uj+XYZ㏡sLwآ[,g8rL fNў\6~b/i!&貋Y?N+ '^%S .#"h#Hd=x> }`vzb]yWޕw[ܙ1JVb1rjQҡ_d$L4yλλ{;b*99ePvAU9s[01^w KA I󀇁4ccyžǖgeO7b^aEfF"vQ^xEU!:.8O*%+3׹572pJ,:>KVhfGȊ`2u 8\10#KOz=~)8* pI[٬oYf!LgLѓ Hanܗ-(J:d2všܔoXmie`I(46:uFRbҰt<M]v?Yyv#{K`qA/uvo%np67/*h,~dq=k;LGOXs᮶Y#AlFzJ`IVέ& T(ikצ h,{U62R+;DFY8&:CR(TpǗ c|P3ʲC ''Pq 7F8X˸=GƵGjaWBg{7?bAf 0-t#2Cyvo_gw[ژb2hG봰.71AhLdtXm4ўp-)jRɀ@&HJo8b/Y$vwzO& FA"ByK=JDA6OٛMډttx)= \TQE02w^:3}ѭhCr{KRtjs8<4>O'_X&DD[ ZxFYDWMa?'PP ]֓p$A-8_lR # wOs5`5(zfŜaY"YdHk̗u %LJ0?a.9Lw؎C9hi@&x+r8 ln٦p D*C×xxq*:H6ޞvUm.%u?Ir*7m*0SisݏN]qD P76):̴% GA;&mAj6J#7ц)(dŤzqOXGagI62'ug-M1^і'GdN Sh([dpϒ'tJf|3qHpiϷ_+p" wDV]Wd[G ݔ?x2^L0Pj67=f3r(Gy:>,E7e3@V,˞kWTŜLۻShXs+C C4KF-Te<HF?6h?c_yeFHt,KqB?ftabH7jDp" 3N6ILOX;jO3;Xۣ |b#a, 4FӱL0"d0_  B[cF>#rF5H(fdYCẐ 8/=dJ.GY(z0@8Qb~7tsJ&.l tBQt|Vf ).euin,'|*q98#1_|յ3Y_..&#VN";pw_J {LY#W1Al&* جQUJ PF:=w .+"O°$FZ$ҤBB'DѲ 1lgҘ`=!Y=HgPMHm3uP(SNS<96rq&~FAdҀ1unR Qgdlr3}F@[Kiip9~K6dj`RӲ\& ]lcCb1GZeh׸'4^υ |tR*?#..60m^B &y~n/"GEuG6uE|LI3-${l$Љ!(iJh ;UH եS :d9qTdcU,I)I,*4 }G?__Yś,>d[UBMU j?8h%M5$*ZKFT ~ŗYLveA`茈 [ Q PT%PsѦ` 4T0 lGSP$I2*(t }-gPI ݛ-<dC#gB֭(̸'z8 @>D&je[n9 zw\46wN NoUXc Zڗ^PUN+9W׮q+;P#Y*g]#c3j$K@}0JuӗVh=ych]22TǭO!l `8^:#8:)<E|@6l%i MP*eй ysY5)u*5^ި'35Ud[c2StD6_lH͏ąBJ$KIAĂ̹A[ O'$iOFqh|x$Y&ǍNXQ"T%q܏LB:6闲sK襢4dŗK$lclQMIfkh7p5m^-cA\4F`HҎB q6;츣B0Q3Eai"t^qU\PcЁ3rU&GLsD,!tTޓwieU',נq>3- FψD3h$ G-Rٷ3ugs+h[ZE۷d!L<! "ǔSܵp5m و+K`|J,q`9/=/ ߀h)|p{)|e^8R6H8%80@Z;$.i I^ C_!å31QXZG:"WOE#cJURvG$ȯpyHA(=3|:$x'Y1T:Z͕+*IA>_󜮼^F~('Nr\P ]Rݨz J5!_aZG^׳X5_O$Q BDZMv(=mWպdm-ùqY_eY~Y6n$ICE96WDG-'D1Jˢ 2 lD7fx@jJ-%Q``p La2C 笧!압wo"E %wVuhJC'+ի%%JJ->nDa~rbtAbcUioXȚe/0}7 @u$WMu). 't1n#QtXfaQuK)ٕPpsz} JZ&9,+!cA"AGouFˈH1^TadC(&a}J$,JOnֱʛ߭cRFx?vQS"dSnQ$uaY7u]7Rhw:c9 Ђ,!SuU?u?2SC_AeV`Ɣ <˅gi8>e\9A.{iLM*@$ryh_h_c502Zk sVAՎ rmˇ_~Z?o];_b9Fe>)r{n¡/ \rV#u*mF;pVP7_Ҡ]ZkR]oԈzUQU4f][rOjߠW֠ύb*o(VR_ޡ*:K$ҝA%I 8j:IN#\Y=E>uI.cXG%1J^Dӎj&1ԚHc6RA!\SE\zTSLUX2t]6~093rK֟ST@< '}KmZAՃċZ+5-ǹ~tԳkbdS;bJLC.2JCOWv)O/νpM)Oc`jxS:?D6 GWDZ ܎CcҸ!ܱF G'h8 3J+3=C;g$fW0t(3BF ={q DCU)\HEG=R)..D6óˌr&)F|q/z?'ZitP}ZM̓ ̉t ԏrULyI>` X'J]پ곕Ud6B`],i2>J1;sjH^(yޢ ј1W ΅ ~sZ( ۪(LaH;`Q1Q!ܧbq]v1bw%QmN+r2c\*v"|%|jJl3k}6Egꇓ$8dp&r3Y->h5F{ 4lFg'.? B\ו (©erj5tQp:uT'%&x? $àJ|\'( IS} ӈ1haA0pA }m}.Kq/غӚc.2ߐHGTU&8amH,QRK$K i7\6LjePM납nY15Wosxff(®3F)E(JYvlmzVc>fFbg̀?|y3_J'> .~K|ï?}˜>`o+:ѠvɼBQD=a9̩#sHPņ#$|7{S΢n%~>h&g2+Ȟup+Nf'^"5C 8"cu;[߽/*KT_`(Kw2)J{gOѸ7lSLM_4 t,DUy^lyvwogF[?Y :+0oLaom^4˜Ɋfĩ9&30Sf{>}+vd3rbU@˭ZFp/Kt .XBn~ȗy^C'bf'ԧS$孔/Yᘻu"AAļqÅszz CKְ.*C? }bAݡOW7ubJ*Qk{-k4n\+Q J b=c\i^ V',!ܓmݓ>c $?go=—7 B2f/1]&Mm8gFb׺i5G]2 NM,S%sKl❵oX&?F.TP7h^puvL$z%/py.ݖf~؝QDR`z'YΡ 9/"꣪2^qVca HI:7ZYYqb?Gl`TF (y\ח>M6qatqA;/}]M, {xB3Bɖ>Kd6I 75޷md >Ŭ@ew>H}䅴ͳkd[ol˵ geH6iv%}Μ9ӢpPA5wvs%wQEAZ|ݐd?N~WŏD:;TZݝctִ!'c`y\(l<|=*+T<0C As}4EE2-V[~N0*HFcؖ2DdA.]R:E(7L!n EOGS?&q1J7:D9Z(T6,L#A 1I[x/"Q^#ET=YUű7wsOM,H[7>'#Ϟ ŽŁ0aPbælmÒ|w $:\uʫ_ll W/܆ߖٿ!~PF xZXܓ I&zJ^Ֆ7#q̉X,FF_ٕh̶Ò4*+LIe7_ ԧ3`|xTTti/6ZFaQ5zJj12 }!$E㨃PiGMkk'#8dx0mH9p%ވep̋q%-&q ڎc qGttMh]q+fRIv(q0pS8:p6끾έj@W1_FECUc2.a.-fxMg#2C ,"g!]*oƊիXڏ|P[DJh7~^9Z>2-VzW*TBi-Ԍ;dTH愪fؓkk9q/|i:pj/&B"Fx*F47@T[ 1^RϜ3DpRlt4e%!'IW:]|+9J+ eg R, O`<HUCj3 |C+N)(IYJyuAm B4 zN*UkЛHNoOsw;=ɋmB"ZƟPM_>v$.CjDX?oLT6cawnީ:BKvJ^D̤ihgW*QUyW $L-zAYޫA`尭Т5ZA]W& dv),x~ nQSQG96[=F2d1 |P?")>l?5v׭~~Ҩ4? }=RR?P$+U" `uaUmL_% `?ImCH0)Y HtOd5^|ޣ ИPL{ՖS(2>Mxڧv, A!VLHiٞ&О2rMj:mڧ,@]TAˡ<=5T/|rO6 zv6}᜸ +`{2:Б%\/>6]@QD 780#-F X!ҹnء踑Nu;TJ, X(btʙsP\nOdc<aU&4$܆-o^k!Sq}y(.HɈ$Ƭړ g-0 Bd0eATA?l*Hi̔R)3Ua>+_2ڪ̕25ۤx,*7Q|vQĕOW1KdjPU$܆ gskLeCyYL'=ԫrQ~}}* G˜uͫ,|c4߽ubB~yXL6و\(=.asjYe?<-d8a]ڕ+d8`y;kY^TlEH)Hc!UKտk&\RL)2 ''l=0)/ف2+E$HmZ?{g!˄hN /D[w}߿mE|3JdP*'@.-[*lC_V]1Tf%Lf_%98UR.9S"0R s)  |nFv;_VV 1T2\~#sq˴'ӡY~\Иʦ+tŠXa2Pn:@أG)|:.^x5V3Ÿư{(5$ 2Hg>`nY9ng3&%X~ڔnZCq YP0ipdz֛Oۼ+WT.W$[7·֣X,Qv`nDW}ȭ9yޙNPW-ko*A= c:0Sx& "he38W(5*b>4`]0A(TvTQ٠ԓINX etrtUbDű}R:ݟK cqz'LS4[_g{T(!,(8y&Xt:DJBS'XRy@:lY͆B䔬n^K mJoa>ER3o٭70.4T&ȸ ?hL-ڊZƚhKfc% 'X1QݲT֨/9 +W74&kXTLqvG u ZL%0~oTmiv0LxJL>fbATs݄Ew5ޭx Yn"˺AJWYnߋ'{R-sn o ʿX{`EP6y5XCwk)RcinLx4IRex_K*9n> .T;-a{I2 ) qB7n3G;xGU{-Uf]`oy,j ۼ1.3ybF AJ5h8N}h@,FS'5gD]KX-R'ApU(DwpQXD}Q'k`\p@9WQhD(`2z~zȯ|D':$tcv!)*S:sz1͛ 2g&f~(Bk Ś\S^5ݘY“B< W YoUմ%BS:>׹ĩiGPf&txOI[sv$܇JI:G^{)[O秛O F? EPf,FQ]tk$zP c.C}xgYb:Mt?+V85=`"l:YHJ P*Qoÿksprtщ/k|y7ꌡL2M0\ ,I1'v D:MUpv4C'ē.Rij'#RtD3Ȓʑ;%rH=&тiW  B#T&uLtrTQߠC'GMEը5_n ^?2ưb苚3R;zvtu?Uj߸ilH?x  OT[N_7;1(`Yxfmz+l[{_h Y,ˮE}PXB%C~2F Xҭs'iܧ9O'OL 9Ii8VQFUfy1%]KK)nj R9¦<ʄi<}JWR*/9d_8E+$Bnn5vkN0p"W=aLƩ€DqQoz/֦gd<&韥bL1O+Gzt`9U}˝}<C$[ dhx2.EVqY&ɱM%ʬ Xy\AV>qoRh7FH7~H{h d`kzD6_Q`?62~jCFC- e*9鷹H̋LSvDC}FLO6Ѣ< )u˦|N~tu`‚~7 L8uI5:Ȩ- s:cM%R Fm}2ㄺBDw:Bp2' #<9=E?"CJ\nl^ҁ-Ȼ/@K$Xy,x%4)I[gĉށ՞s0*M 3t3оZ/۔S^ס)NMN `WS:!*[RA2}MXCֺj'%ͼV : ˮ.vc MPGi l5>LR LD-iuM R=\5,&g,7)Gt\lQ)~y4âΒQ+7d"]cs aGc ?@lޭyd|N/ntn 6`s f&4+v-7Q C&F=,a&ˁ%2 /ej յLz8_[$:TʊkjG0Y!nDІ#zKԼYUEqQw"9>FmLݞg3KUC =JpMŒ!Qc WT@t$(kzDxtGDx.煺UPNd\Cf:}#=w76,? \9u"RXK IJ)TZ$"^Q~hk6!ӰW~ > ܄C(ae>My36䀓?AvDpF'WJ$eOoLڒ$\[,_Oݏa!cA#6FBsv` };$[]E˄& lD;2_UQ E; ;>mi2òTNai%ɦ%͈XXYltcW ұfq$E7$ӱĈ:2H*ZN1e yj:3x̾V5]yi5 |=f3c&l6k\Y|*UE/m傓A)&@e1> 3|E1)0m/1e"}SV0vMj @ lT+aT]:pZqK9t^ 4YOIi̼tuJ!!qPh.O_Q5`:bmV'te{܀Eq4ؗΛ+juZ7YmHzckڳQŊ# GKims![@5#,-d,z@D}?К)[ SB?|(0y:bX:82\J/ 2&gԠ -6);{3,REKDzW)]ēUg>Rw1 o8fӖcz.)'kXpS= AKJV^cdXL]3Qh3y;p䔍6hF!ӂZ`-ԛU.Ă T!Kt).St\S6Ae-#8N7(j6@ ‡8'[F׃}ݨT0yWK+[ ? 9LY&S`YfUg>)K/u:F9?04Rc8BXrRdP3č2`H^`7jݨc[D|x47dQLѴG jXm {i>u!"5~T8HͰ̎,APtrwXib%Ƣ5`j%Êફ$R5OmT>ڜl"/ƉUfZ6ү*\ |WN93A@StzeW@ڽԸ"inrxm'=L}% S ]f}IjHn{ Ww"@9+qJ9M''f7JY{rݶ0l;4ե^%wdKn7ƚ vbCL;=r} G D-%abxκ5L%Kk˖ԝ+|{(r#KJL!QK= J\zN!ǮNĎyZyGeG6qK$~*'C4ASl9*r4 d(64mtEh(cBř2ʘfCt*3?LrIȋ[jv;͚]\oZU*W)MnhV'}уuQﲩSV7zeB5]Husq 8b\8MNS^ny3B`04 tgxjғ3I$'ޯqGt`]Kj -a ˞oDs9@sH𓝣';2_ qF<랪T)Vr :>kEXw/PW'V澓ǹgIVu9GDP ~@" ?Wk.\jAYwn%rr.dcMSCE^4ju>k|ԐiJb#)޴3 u< Hfw:JZz\P#(-RKr8 e1n{Zyx3AoM'MN{}.RRW2A3وs))6lR&Rk?&5735hq$K%~$1&ZO"Ki{d3|%B(4vF i h@[v ؆ok]°pGh:G7 0ō!G%1381b6 $i?'5rdk+|FL.sE2 @ٴ`W22ȞMr6%2P-\lDbI?4G L9YJV*\ ;oΩ _r@qEc/\^oЎ ,/2`{ W*0Z>ޞ=]lV3>>}B z#ȌqB-Hٺm\5E_,+b^>PuuJCc-,6O[F? E$!Cr&Ni~?:|շݬb):'L7|.$9!?g,yEgGל{Οȑ'bqxXG^2qrV+E=[)c͘\0>9Dlwbҏ`UDNlNxk'S2 K7:W2GZ.c~ϼ-kR- jOi|4>sk|=z;i|=Ƨ ܚ+\@N|N/qM*xj*isLuXDT.ZYy u:W fȓTE*j'a)oUԷ%dHO04-I-sxo o7GZu,>|\#Ku_Դ$ ]Y1!;#H7 2lܿI8%.XڮTf- ,$3M(q|;) ƴJ*8`,M=΀tj .WYbO L+$je c ~2qgPnCUNlYkWl) n@/p@v )MfVRO|`g)7*4歍oFw~PaCFVw*7_z ^5{Xa%.g㞌ON@jBmCW{ %Q8cE~"lChnȇ95c0qwkhl90a٬ $S Lza6m\gAر9P!ć~<{qukfE}W[X(>13T[^ʮCaHO~7IπcD7DT:/Uw m(43=ݒ#jz&첾/HdǴyQ, %EAb?2ƕ7[@y濸`\m1E.n oPs݇GGm7Osc+J8G=|{(}CZГARZ-m+Z㏁{sTu;-qW\W9En +<9grQUw /0ATiq_i8{YdKXYv\e ȣq$Eey<Wq]ڗJ'\qgr\S(%{lk2a:\h (n`&fI։&o2;"Tr(b}#X`ڃ+֗ N ;?& 恨<[*nߖڝLcYeePNVnRM;"'0L >/_ߵMO'N{"@mOgXbx@kSj3>Mf5$:C:O .*("w>:H1G5ѭhCBtjs_ƧO59MW9XKa"4x~L[Kv#ɜ@Q`"%t[u3nQ-Xpv4 6;l;NMnʟ{gϷQw/UqEͩE4+[ C4KF-e<HF?6~)b0"i=2)AV|!ӅƐPoԈ @4v8>SCx>65ҧQjb#aB( 4Fq\`.ga>5>T+䘑O܁` 3Lj^*v5IV4 iYKTKQ2^ONXR2#*UF 8ꇳo5BRSep!5TK{{EygfӟrU,sA.jڃxUgto 48SȺΓ܉zhm]Կ[xl 09U4v4|=6kAj`҇S\GC5\}7%ˊMc+Ljqߓ&< :C-% C<|%>`#$&0 "S&% p@v3;OIBZ|V\N{)KmV:h_[T?Bc쨇V9:iW#Yҕc\[^ZEVH捡Ht)PꇭNتQq`9#]6R4WDGlI=-9e1Z]Zqç8 (Cۭ$ypj儼JRc#t&:7}q2o6U0R(F5d<؉'}@oRIFL)O\.\MG0FQK“ R#qBQH} ]H =&`έ{VR(|DOAve:π#丑) :JJ^$&Ȥc~)Opn^(J3_. @ 1揱E6E}tyF沰8ҎB i6츣B0Q;ei" WqQE|QŬ0I"bz{\"`yV M)Ҷj=IiGV1QuJb zc0 e#=V:M+L-HQ4D.'Pz&\nnnw@YZGJX!2" ߬4YG9c'My*MI6Zf2 (tra%Z2|T#@WɮDd3@OVp{*@WP"9[4XQz DW_i.MQS>V 3h;xfC xJ%nwK6a{(=T퍗 QHj,@O v•jhT`ڱs>Rјt &5Є:Ub9)9}d: acƄ'ghv\6Q!'UBVZ7|2l鉤D>#P1#?6><+)TxJW<:v{Ǣä(K|r3_(%|lڜ ;;IJW&+TlYl&+]B[n@m]$yn&D>6g85#WvYeū+㚩lD(84fDʜxdjL+]5 ϥQޠ?0IorFv[Z賓 >U EViJS0*<;b;^%%JcN%61Q+@H]4Cc ?|sB+ݩ+{>̃܇u_^Ea{OXoE!= [8"8R,AO;Œ}o7&n;۩`J6OR9]!nΨCaàI!ge%1$r%z6D߮1[cMif D9NdVR=쳚LydCҔT Id ^ѓf4 oc 񸕤2-FFe"'3u!ִ:- "V4ul gooP~ 0Kԝ!s2 񬫐K޽J潆~FO[{jjk?V3pM8 ȴ85G{AdBJwC(abe1l32s0FYsԯCa+g;a99.,>DN1`m91ss-?BTox/ 7jE>'h)Dyj+xuޛ.H}Geur} Ņ\I<✽/qd6L# q|9pwYP7_°fG7\>KyƫTUG`m4m:'V>'~*2>J:u][0gWwǭce0+% 5nprS-UA'lyNyl̸[>N0ijGcq\-ݍlO^ɨW+=}R TB{$XMиi2+?d8`0Y[~u/> 5yAn(9UIK}5B²^7p[ݥrLT Eٗ/dC^-eay*M0y簎K-oj`O&B%yZ7b𾬇ڬ%3c8L>":%}ΣSn^'32/ j*'K|soJ':bc֑#a)Ez6 K)$G :/B.x3gw6ŒE> 4yqÙ'jo|oVl^4 U:fOma@9aiy^{_#:r^KU"Bbaֵ%l ze UV?srҙ_~A;KWI5|EJa*lTzlBQ2'6Jj.+1%!;fAO~)幚O9"d6< W: S x 7ޔ+D6 GW$z ܎U䗎 {u60/^ywfsokcmatKe緽su4;=muqr;n`g{.t<Sth6B߿ЂxB?F4\ FCch^ vGβ5D4?XR&qRX|Lsy֭h t%߃ZG+ D:lLf}ZPl XBvhov {(x9>~Jte⿦Ѱ[j` R҅~ta*g/n7DCU)\HF%mR)E6ˌPb&_QQv \BEJVa.jEdeNk ~4bq 87f *2!D[ _|F9H/ u<_ޢ 0c ~sZ ~@peY:VJITXD-(\v9X(7'iSω. _A~ OLDq+^-A qƿLĄO $aY'V.==Wo)z*L-b.? 1\W!SOp.,o/:V@Bs+^GsC7D AwWqu]̿~[YH{ 4E#<)={j3Y?T}}/6,‰2 F:RE22ƹ|&b=tЍu] _H_ xASE5ծ /tRW^zM6q{"욻<|](h| J+h֧gsl'7ۈ z8x˷iro_M~^Lagq߯| ~^R'n<*k0#*'?L4gYt eu Ql:Bj(2[Х2f>m׺fLfhٓϟtWY@t: K;Ģ0l?xG"k0֑~|AQz C4_zLG֛i)79fF2yT鋪 Qt;owv|+_~s@PíC?:+oeaomWɊfL79&Go':rҚ;A9KkX9PJ\D`x' ֹP` em`H[n2)yR"NZ'$.uniDPmd[RrhOMYy>(=0 O!ܭEN_ޞ\t[|XyzUPN)8ŕob&b%|r 4O=٦7  xqf Jp/oxB2f/>1]ƥ6.b׺ӑGQqB(7E7H?g,Y?5q$*Ȋ<u>Q`gd1Kp[e;*::@Qs$G>J?.z獙1V̓4,H9Jg_NAok!Ғ }dI? $E*o~FKTT|@zjdXʳ:G@1D T6t+XhK̛Yi0¡MR6$;gtjR[;9 賜Mr:)pU S$V\7m`"^|>3<]YYԺŮ*D+3.P,H;^C7'Чv> M{ 0|teWb/dѼe@ꘚo%}yZcsJ2VQH0ƵC%߅MYo9,3 Y=%S9q c S>[q&X!)dFiNҚ*8~J%iڃ碫gz>|s5l JcCXqS{zTTuzUĭ)7 8 +N˚.pJPPGJ9cUh 1Cڨ$Ȍc_,c)FQV= )?za&޶lL,oԢn(b~}щLj>Nyq7G#e# ?a0*eLa3Ӥi(/\7N%ߡ;=u=Ƭ ~!C a ˚QZTV< "dzRNN )\$ϦҠ2 j'19A Ϳ5{RqE֗FC8h6VO*ǁ;;76`O&J+ʅt rPw4>\8M!$Y %q~La'$Ֆ vv0).XgD4( |;dm4>b4{Ѓ rN @ګ]2H9qbױ1A* \%3`3\-3y2GQLJ1 .Dx%{Vy kڻ.' ,#cZGj ReH5:|gOf/!~QnizGI-zF̪ҍQdʨ-x'ƭ'K8HP$gl pxb.8^kTaPs*AamUqč5t˰$MɈ⳧hyBqpq>L(~&"2>İi?ۿC۰_El b2Om˽,!e/f_,z5Q崯+d WHs">KWvey0%2Q" SwYkn) (ئ(/U@2]w ;5ͮRAvͥ^bl.L`~dnI8 Ti^&L[ Ro\a8K7b-\-bfII\cHa!/]_ph܊aJL!ܔ4N\ z/s5o<}WEvFP՘L wb1^وL!P4,C:`fY1tbjefb!?:#o$_VQw8ZߍWLտ <3Ć:OIS$akZgsU+O5j!V'>)*1M}S:]H1K;N9Y&¿Oi 5fP% UͰ'or^_8Ӽu^tc!!L8E Uhn0cz9g1/iJBj*OtWuVrV$8@ :Y hy v. fV6R< Q3:0r# h&@QTւ78ƟDU?ǿ;Dyv{ۄLCQE?n#=%4|TI\4j,?dܙ.lƲx(HSEu;ZT5\ E3řI?ӂI:Qc>U&2=H2FI[W50*a[%Ek'ϵƒh,L5FXSXܨArl8{zebd-[/~4+b%ESNU}~:k.!O[Qi~4J1#*EEyY%ҬZVu&H^CԆA9/mn2NTIHVSםq=Ѐ: iŴIYm9E"ӄ}:iQK21{:ZmŔ߉FXh>I[n,ch? i}ʒ Ea@%dۋYScJuBۜ'd rhLig#LΉ B.n >M/QjX] :iS5Od͐zIi S.9b$ R(>_x{ZX:IBY`"Fy;' kO<11^.Vež JCrZim2X鵖9ݗLbNHb̪=zk`,JSVDec:L)e!2XS(Sj\)cZskM*΢rgE\yd >N [ !Lmp6T67<]EtrIk.8Uc,\2a`|M9[&54pe`h cJgI-_~REr>@"z#|k=eI`MpՇm.dxН<~M~U]<~ز&OơitۏsX.0>gro"яFX6}R"/LÃY-Wf1bNmthQ $adH#^;vÀ }sXWR>>,;BQ8Ƞ^^|RCm^n#'ѵ8n dB@e7He [(M=T\F)OW%6OT׬*K 4 2&w45JUyHBRȒ2onwhHסA+y}ucKkf_{kgg:+5_?J9e2.96+|oKifSJfz<q7 ¦{v\&,Qn[JvY 6V"Ծ2pg^<4K2nYsKxQܛp+~ɫ\LpVOvc2iN/ZvVwtYuլi KL꾿MϔoѾ`E//Laq# >ڹEs=(k2c{gQ?lUE9yH :0F%{$j31cFy\Px/^2~ -id%NL;B2#6[0_Fs~* n:}dV(N幍:N}$~lr&]Fr* 3b+7Mg5Mp I6. ]7(ȵلQuUw}__obPר;8rⅡQ^2rxAs:[jG_gmV6a,\nT߀~VpTBЛJQɪ_77vWbk ;q7 OC-'MyWhd蘱~]6Gc @\G܍'cD)?㡨lU_}ލuÉ# 6Bex\䝨bqYTщnb4_8c EKO;C!>)G#y1.W>a{KO5&&R|rg>Ќw:S괌Zs qnCd&f b@l\F-"'ZD 5Z(gÞaM4W"syB›໘/P _u*KG}tvSuG>!Sq9J) & +!L[n)_w̠]YFIמHjmEO5iלR(.m gʙa*OE )}tͼ$s +#a$n&( s:?]kvnƘ_:O\|yP/u;+^F.^&B򠖤O΁L Oqɥn{V(? v?-6s̯L0Mx;vӛM|;Ef+wC`yG`w-qwK|)>=aEf*snWkT;ݝ L[twoyWjc?Jwi^e W_BU:%yUEv&^ڕ\O4;f( 6q^~pUdR5<^-ASyйL\i@Էa|k]%0nCK};ZvJ|,uczvSH(oŤ㥷hM%bIܭI3*oP/6?aҜdo7'߭s5/Tx}Ci9tƢU 9zM -5 S%Iov/vmBFw@va)"ukoZu"}*$9r&Fх8NSqw_?h$'$J`(:(s0;;Ŗ I&FhIBI' qzNiMK~6Vyv^=DI#N9ӈ39%A9m-V\U7;PJ "xXrqY&&2PEH6?QJM &*Nt|ņ#d&\VN`r-uŀ?VhemPcV/ȒFl}T p:v?vx|OGy}r* hkTsdze#?h"B†*&T,E=XI#[9l۲Y;|U$]b$|aoF`DJ$m]V.E)`}nE?q-8p3 e܆Bb=|']R)+禓.isƔZ-%;T euGYQVwe'Եsuf)eZeK6<'e~5_K HؤdjHJ*ya^Gm&˾/**]q0kj׊(O&>5,.A2RO w{)ʡh%$HFtt]?ZSNKzE2E @"SNPf,FQ]tspwEO≎l7I9Ҏ=IN!'lw); 7Na,ɍlZ_S D$#s%C'ӓSjgtKQ*_=!~a-/kOXgoTH*Lq&~&0gGsnPHU9'6%=icъ05Ԏ0^(,XJ +b[/p0i@MwH(CAWx{`Z%Q+w W`ǽQ¯!-I?om{kq^5{&>ngwW@d:J'dD .@#S B(q ď(월ڱ oLNuRAK C}T:GK `~ҊsJQo~$v'nghM0Ie!JZ˕:_NkN/)_mmY%ҕe_G?%% _Rf)Zna[Ө{&E`nRPؤl *p} >a0>˖Aԕv U_)R0jOen(|ral-Co5ܒICkXwލ/./.#d+M' ]=;BֿV7fLza)谿<?UP Зsed]΀˂,_˹r+ҹ*.{\`<,חErpYrCb;b&:%4PxV.6*GGU*oUL6A3QE}b]4UBk \s|1x{_'[AYUz ;*57y<.G6?OKՆeve%Ko%ԯn6w)7(bų/{+l[{_s Y,ˮ11""08^?xy9G}H*/Oiӈ '$OOӦDN#FRD$)*i.WpRILչKcN/\MZMQASֱoMyeOuʷ}a>/L)/T r_r|%p2VHܠkӼ ĔM䤃L3ZJNa@\=vj~k~6%?0\I觉#= :ꜪN`>n!@݊-Mr2GT~4<^VqY&ɱT Jfm8/|ksƞ>qoRT<>n"& 9jp#{Áڜ0{Ee^qI#!,9x 3?X{9؀alCW |r f6q'bx6G[ěs寊.3psW孄>A&6+jJ^(Nh;_0lK J<-@*&1{8. F-fz,V#-9hYZ)`4}34!#z/|BT2MOZ}ky=5# +5G/, e_xj)rzWG tEƚ,y^-u5*Hre9,U5Q : я'S6 Bo;܄JPFl0c4ijhzWD lFM~^aXE(aILX >FC-G }2h͙HU&@5"TS+CvTҁd#Ye<̣afÍ '1WZ "m[%kzڲa0RB` FmnW{;Xa>H1uя(JAdHۍK:PyWbu^"+ouQ?r:~~"8 U =G:APUnN>M WwRmu]:yo TA0^OlII+TlJǢ/7HQSmڡaf3]f^+MHeWQuA=R MR LD-iutTN.jVP3 O#tC8O4/}|cE%=BWn"9ɘݣEVpp:9[ZLV 6m`n<2>`Fx7:\3K],q~kD@=\,@(`.=4T"cs\Kz8_[$:bS:cMcM]ccVH0(.t9UEqQw"9>FmLݞg3K v v(\ WT@t$(kzDxtGDx.煺Umۑ3$s=Y6 |#=w76,? \9u"RXKs:IJ)h[1Sa[1+Ph]IF(RO^Up (rh . +=1*, ]=05`IťPwnNZAњNFS"Ά LtR љ,%I ŷXLGM`cA#6FBsv` };REC )M؉Ì2ҪΣw%"LB:mPܯZђj)nd0(yk!Pu0 U>R"l8y:bX:82Lv/ 2&gԠ -6);{3,REK(?DVG+.*޳0 ԯFbL &ٴ%^*:\ROְ8%%+̱]j2,G+*eW< m&ϾѦ6F F-ԛUg CU r 'ߔv͵IItZFp2n ,( l^[}ݨTXl-4qL'f): .`7rح'G7 5lj<"u9F"݉%+/5vcp^C7ܨx@^y%*_xzCaLN.H1 )ϝϝϝϗvѿwoVG$** 1 d-)tB#]oA?2f9=E23>Tȗ*it p}jXǁq)^GlziB׼:# ? (/,edh"FܡٚKZ=C:غ;4s9^e9 ]tE.煤rssss2xD/Q9ȉ><\]x]|< {w<7tes0<ܹܹpa@;ܲNA/wgV׷Ýyzwbv)mh*^;HQv`d:,ucw.:e.:[CǰRoO#ҭp{w9E9 ge9X >OC3Bbu T8yjd +b*y12'k*d6 @hƅh}:^"ЃqMj煙J!/ZdŎd֛L}t!ڲxЈyɆΘ;3pȼ;Ҩav*?;LJQb-0*B۬ {[ s[u9,yƉ\j}Q S| 4/ !.m4Kjĝ@bC6H7 0NG`!\IJDwˢ4IF@S Y ^KE-*{#rECfS{dWHNO/jT u;jowNm5:`B pO8*YQ$e}< @#U{Zt$3yVʓdzd67LL9}'SfcETvNm'My*MI6blVfMqxSMk-!g,/4G5*M'}Ҝ| ۟/6j4}ִjkZЎwJM@s7E̜OOugQ;BZR壤t5L*:osMNwlVPs}{SɤUN٫p76@ؔR'bMRm:0|OvLQvp:8;h6xA^ͭ4&`fj-yÞ1A^0=>~_?ڭLd$:^;:t{>a2]r|#h!ݑdeSqW$m#/D@SZ z:1QЎtjJ 3?fzot8EBH6Bvc4@EA=)^g~^ ![ 1E?M~<1 -a"ҌVSQ̸\_7|Ȉ3Ռ*>%Y~ iHkl2gHmG'GJRsZvzܰ@&f^k>G)gDb9[/)+qђ,vRULNOx'=ϴj$Ge⸱㦵b/$4I摬FR7g2/9 raE'[1p*c8}Q:`ȓK~s/ gA7*Bcߧs e]!b!̜[v~$܋J5t( Oy IqQ?8>9>h::S8h4j{{_b`N'.x2n?l"r+Պ& 5hw![\epcQQ|5ѱ~3ÃznQ ' 7|Kh~oЛ /vtr8Jo{^ŽA f;L5d/:U0q-G10ά*9leViA,/GvɧIENO'h@N]4ADQ Cm>NFTBn*};)"eo!z 繓 o L[[SEo šeИPllM` MT~$DLY:/&D|?x K~uZKhB4%<rX_bis,?PوX14{a0e-O?h8p YlV6q jȊg̷8c3g>/=`⋞.Zw:Z'd,J+NT*#E;O[&N'cGshs>Y?Yeɓwt<|ۿ Z*Uoƒ0 ӇnwCT m;vcܢ cްɾa{Kn-s(o¹m8cqSWf >f:ݖYP"DZW]Jǎ>v'kyu$zai'=[D"햝)6ΟO~-qt{#o{DWUbzXb=+d%=C3+YDJd"J[Mj\t}]IjaЏ+Dv?7_qΝ^ J){hA8]е秲Zxollt wEL5Skwk,o +ߋkdĬuOugte,%7g<_x2>㱝ߖy}G1#10r6K7&M#ZwlT71ͩN4g+`C<:85ތff`2t!y?0+_}m 1}tMԟ!ckco[b$@wGT6=#F* 3]'8Oer1綦ۃc&=M ⊞`sƻ:o<@ $pz; <@@ 'vip#B_,.mzUK_ 1rXDxKC[YoM ]n g!Z{KkM#,ju:|3 oVV*M㨒~VbfPJɑ3u2ڼ3BLw'ҹNqoJ( %1zsOcye-aóuan/,}k쵞?q `9ue+"Bŵ鵽"vz *S9 ;nŃڿ~l7ZG?plVd#"N1juCqΡ^ըߞ >9h2w= bEz7R k6xIzN^c\ "<#`rvchIC1(_b`,Q(h.>RA@8mOA^1B-pNsf1K} q $H@׷tJCw99+Of36*!\N߻.2_etG^pF0yk&PA&6lY0T&mbfV#ë'(vPH(bʶ\\0eL$UɌ]~nŜaΧnv*VK5W?Q:k7'6jO`$~qyࠒ+DzjqzXF4ӞNNdAG`m:# K+* E|UXIFmnSHlzW8nB 1ݑ/x/  pP 4cRN'q/F%>Z~^,Vy [k;wcd< Ry(D oCkCNQw}& y} hS#xd+ 6U7y-\"دH%6zawrhAopTEo%blк}|=+29'>UVAgUמ.Nt}o@Q@ *X`lTYdzzaKBz Hr&5Nz}ڑ_o*ݑ ;:󶇪Am6쿮yd÷ eB|} 9,Fdr*a[d7_76݌:ú?3K\MGAA9yȥ{hOivxD26) x(9*X; '=4j X)۬H& =qyG?r*9qD7^$s^[{^0|.2u`NXeMHÌDD'4BeM}] P@*`JPCA*qoeDBg⌞A e76!{ ҈ɢ]BPB=е} OVq{ P9rxwp|R?jOHWc2QA_|mu$깧F&Qm*l-/6O~ 4:h\Zh3ֻ3UE E?k3ت^7;igr"@ *d 83o vEU kbaJ/1XOFP %n(= 7KoU'PXU"{rү_M8kMD U>lN=.+i)SGHqCkfgSыR ŇS }phuo&;.C*ȒBm[ 8?z~&,{ 5UmHAOj5!AרH!}q<s^{tch>9~Y]kU,0H c.W%#>NQYB~` Ꝏfk͔zϣa9p_ 4tlBT. Bt ġ4^jCC2M}p7o%d~ϒY2?Kg, tFwn ϒY>Kg,Y%PLɸ3-%d~ϒY2?Kg|6N?ƙƿ'uZr@Kh-9%䀖_rEx:M̈OdFg}6MQ7~e3D 7P]P Qg2 X%%£3R)D#f)~l] 2_`dsش>B ‰%`MB'8S 8 NK>_5'@#3p`Ersӆ# Α7A0*RΠ}%I q)xLE(}($ӞLL~NBǢ牾$W=1Tl"z'Ռ[|lo07 s 0Y &8`%aCf)07Ϋ/w?x?å:xXQNE-gg鰂zxTxp*"ռs$ nOF;7?0464rMLd;~+`g^ @}=y,oG@ O/ʫu}U+dveG$9zLoUx7Z8(  O1GOpU{b~p'6ʘ?==MFB7۞ͲjEAI0ρ3\v{w>O<}=-,+וr\فrg5UV.a@e~KVO J6ua9y998'&wKp~:mQJd=4!`/3MI \*6\qγ<>`~"r,]@ hW!1'7| .]9n_̣&ܐo GeynE>r=`5Qke~xUGGAt }5.Jx:}h~[Rqx5}dEX%@ӳf\d>g[֐nxIdceDXgԚF63k:/"V!ebN"A?ˑj~֚)? -8JGӡZdn3pbdWmx+g*$!'ʣ7! .WW0#m=R+d'aѮPe/g8QKk^Z}N$F\= K<]DF3g$3|0ZxZ<+#'t[<Ћ|0qUBo 8:;8=ܫn/-Q0ED(hM!lϲk:G{2<@zּ `{.ƌE:$TJW(j2AZQxQ \ng-E}U5#rCrPbvM*oGJlWT5t*# (lr~?RorfMWVame椹 vj[L 7XaeTtB!AsV{VW^l=>8R'W?:[;%`Hzy֨Bl6*:<>?Q퐀yR;74A9'a@HC+ŅFUEZNK))"hN48XId( hG>Tl@Bn`*` Ydk>$d_dpQϾdupZ6y!RnAgJr5"l #ĥy1 &^AIFoPY_˩wh]Ѕ^+Œ7,rF2N3/:q& Sy9t*$VQ?#'@bO/(HV"@Fri6I:5 nv,]HiX }!`E(u{LTmWY&UspMW׽q4ONOOVs'{Ϟ?O<=?k^#k)]&֣Ͽ[8@p%ۉ$1F G LY?5j 9>!v7p5ް]g5tmLGe,1J:s=@mf+Cv'Se>]\zfr:<~Ж2aڬ n>MW#i-'t'i+ˊ`NyboIx#opo;p;87~Ň@JE>vNy"[0O_/aN. U5o@{ki(B$^:CO;hĝgl&䉋 Lg>uDNp~TA\`ޢl~Fn_&MOؼ^Y~qgΛ /4dî7\g5Rz ngN졒Fw^)PE" wUI@!f.WГ`D+QFCUiOvrLsL5 !,tu ^\Z,@YUл埒~fWW.u viYEfT Łঃy\DFH= :Ъe~\ۨeHԊ&Q0R/:,A)O5BtZPdܒ9V^ j5vFv=v^!A*`1j ,[\"ﶁ$b-7L2JiOT$TV(VSQ^۰W \Q=r Ql hݘbГLB#Ԫ*ՆK|E6/27nzxF+`1QDt5}9iOYcԕ YĽp''&IAeu9l_5,dpBRA+8Ts^ bi݋ZT۪#ϧ9O /^ *eZ -# {.fw@lj>{A'`'ewV:քBDK`j5]aˍWE7TJDB$y~0=qkʥi&I rŰ;=CRPLI"\M"#@6/Xމb+R]*rś[Z [ƭ'~;B`MiawDF~.R6[G]*)2;Y/в}IVsVs+9:nXJR ;sK2-Gk'D|@?C-VJ4b;d).-?NNvax D#uQ5 qs"(T߶C@J $H/lX%*ju3ڹN;oLCADgm=XgIOSV_?IoNI/fyKid}C,sm o=VsDQ4++Izm[BljBI*N P8Yz:Fbb4ҰKi6vKê?Ztq.Fei.fq'gGֆDъHC[eF;BImCmV3:oIlG\yjK+笐Br#B!U nf7`Yswtl?[J4Zۂ:%.vFi]-gScl}DQ` .=?:\=BsQ%˞>_{UAO+Wא4w!>?QT[f8T3ܠ)Jipu|)X7,.^E8bcX pEvexnͲyF֪5.FpÐ=+)777!:|-MQPs#k-L!2bV҆ pUcnĚ%˛|-֫b:ۄFtޮm5K!}p]*QYd G׽ =+K)f ږ_-Z6]PcI~^< {ûkDTbv.I\M;9%0Z`!`0SsK_cږ0';^ǯ%^CN ˊjCC rՎ&Y(=N*S89Y2E}${rfR`^(1Fdvi1RUyH5{2#]$Y^1B6s!Ǽb;o2s[ ߥ?_HiO?/qw::6ׄxaw?zOȵ] {kbeo. xķ4'W+ ~mIJT.N\83! J9 =4ن=_i:5~Ϊ$7&@:n Ò74eKd ݝ{OKFQMdL%jOo)VE~dm2]bJ$pwM;=V k>\iuvK'l==K7[k |ԞI3umqp] A,V)4,X{ÒHVݿV![. ^zDzYd|oYGw/% 5@3#t0$lHt,Cva6 If|:٤@!>!9;}GSًc;[>/o5rwe:E+cՕ{e&0Jk @Ct>wa:wښ ],$ee7uq;3N\UGkĥORP]* ;ycZȯ0;ڲ{ }~̉ )(ByCA8El9c,ϋ+WvTTy\_ŝU_HH E#"m+cD_RUrsD 7qNKUT_?kdADZ#VLR%)))3 '$=9{֨7N&͔vo!̏T 7/1 Y56Nv{!ä )zOFͷ{zW<nl8-;0i蓉viCp*g-gB`EW_6;roUD|t"v*yћFDڴ "KVg3v讽xMCv_7V6ItB ڷ-JFAQ3\WMh\B9ԿS2D!:!%K$"^P"σ&mΠU3pϏu)eu׸ӪtEb̷fq.񾻣:oڟ8Q5j}gJ)[6XI8 6?Mǣ0 Ep5;$u%R[JG#1"T:p(p9Àa\Û#&0.UiRd,ВM5`_ŐԾvcoShv?ҿZFW>ȑ?-fTi҄H+YqKj6\%UVү E wk=Ih{ږݽHlq#ۚD3د-N"ohX ^T:JONYPCi! ɏJ.!{l8`۽\.z- $?]ʮt aE׷m^p>vD D{.(yHZWbuޜJu!\Կ߫1UG+df8v;ZT'e~VD:Ђ?F״qu^e~9cgޣ9 ʺqadE+@_ -n]38&b7x38Y; ▭iZcrhrӉkhnC]kvnX[Ai(31p0yaY>Ο 2 2;"&IteaعFKXuf3{TtGv苻Py^gM:/K9VUMeJ2Y{/k\!HM`OBQmou8V,.q(D}&Nf/@c%b@e2t9Cg=_wͫ|8Hg>̱ 8I'y6fpe\!QȬӾIGO%nh7pcOm'zƼW^ŀ'PN"jN0$7eMT A2dnH~8#f7PYW9//a襟ѴLEJTELe-  ě8oJk4pKl09ܹ:SK&6Pt@FIy&2t7++e ^@"mcT(~EqN?E|FC[BS_Odl2#E.3PxXBv9h zϟ58:d-g3⨋TZTE*G -'+tcA#ȸCrI?1U5qC9\J inuڷS;MΛ0>{R4ByIvh+e!O%+iJ㩸43\埖bY>3oӃ/A)^bnJ_Iŵ J̺T)#yik8Xk~Vi YҢ]nkçbGL֞/# K6)r"kgu-OČ{Fu$VjqM)H{pQ|ٰnRn:$HgۭUs~WOQ'.7WϷ8u^5L%Zvu:x؃,t`6:R?3y^ *d8tv;;[,KY_FNupŒA]2K*Z87UUr '7ֽVNe:tĠ--!s.fl(e^ehvؾh&0T+!NDur(.) 59[|CApxHbd:,#鐔(d`!;jD,ַLM0e>Hi6pBy6 XL92d?k/ :HPb( &;>Tyt06A@6JhQވ_ lCdF'ЋoDOx#5d͕mTnF}b![lGr\WEL8:+:T_V_rw )8o R"N|G/^2vvYlަLC[nC<6z/0`C#a9c#kְOu ɖK4F4ns(, ! GC>dC1dQD\ruTZW^)yq~1{?,ōo/# Vr-m|ڭ@h[,wOHłHP|]F{A?mr`׬D"_YcL&ù`)dE]| ]t$NdO/ p7m7]ROzUO/?x%^[wCn$9YPtU^dSeEʊ U~scC8Pf gLr-T.sIoiv@M*baw3SA5D ӫmQMJځ`Iw[?_'JSGP}+PIHoWD~Z-{AW29kU3Oxq-s\*6/tfNy|k79Z G3к^U0 lW>xu4LkhgA 90[Vԋ vqU_kmg3h+#ӽ^r.Ma% 0m/y'ƻ5bP@[r==uln_l R12d^ OnzP=ch0a&- yZ c}sc$rIrI8SqutGVQh;~~'S㕨+5̬ouF@Sګ$]lϔs3A*38F*>xLupۋtj֐v>ƯtK?LL|#S;KD|)"c})yUb$>VUw:&KѤ nn׃>U1eCnEEHpdߌ{ i!Fq*6 u$oLA}78GW$MU]{ Al,k F\ ἋSXPKctB("ۋ:qc%P=k6:Ʃ./qo1tF1$&"em|(k&J|%A4j~ Bn[J<)ɗ0l]? 4O{T2H$l"8BbV%7􏓮Æeu4/XR:cfAAL i,Eij֣#E`K0X鄦/cvx*ʄζGA6/6࿯7۟oG_]ү;Vz-]n\F yޯ{0W$bjj;*ŤLln-鵣RZ/uSc=LW7H_zNi"q2H{[kC&|b{`<>N_L/:}PB˘]B4guG$qK7!yG'&*#56ZI0<Q ?>?>;UFvt1 J&4nVz Pd`G>?=7qCIq{vPkqNqLA9skuDx?rF״H!ΛH00kG`N)=+cHXT_CjgNSFQ= <fiWpmoLx/j_6>(Ocwju5Sm4_lfiX ?ڀSPՆ0\lWEr0U+h؅[-ԄjΫ{@2KlN,=w`9hQ&&[EKs^Wr'hzUK*!aaeЁsQ&(5TBHw l98f[QĈT6>[˧e\c"MDS=w$vӛУ8MCIWՓ]d 7`P0$wvA?)Nj_fƖ@OrR)S[l+Bs^̉-R+.NL 6+E6G~Q56D 7#!zj`SN }}Ez3pF5@¥3ƷeF5TF:b0 Zg7I!X6S$8q$Қ3E%[rmؔUk7_t[YjD7CA (9A7|*ǂtB;<ؗ`޶Q53xvVoHPjg(38);$)jl>Ș ٸ&nQ6%Cx1@*b .qL̿vD l&p;.ِr/d%Co|\; ,3pXMOo;#o/Qd@+ $CRXfd|}^+nA&ipOAAV6Qs&[3(0 WDOA ʬњ{*Me'NT62Z |H$).p*z&ItYYYe&EBְ}%'aоjmO50_6ѴS:'m<}#Y +K'!]-V r9GU NE+ƞʴ?! Mv>̓"7?S86Iҳ&z!oL̸H( K.Q {:oPR/^ƴF aơ4c|ʹj(C3,i<֝." n2/cYp9ap2$[Q8gaFCVc+K&ylit@5~s Mwawʖ6\ I&c0,]7 qp$%䢍 -N􄒐j1=T6l|Cy ?BIe]U*Ɏ tҽ2RmcG~o_Q5e>p qVzڑ:䁍̈́> [pjg8j2ȃ7э[C]2rI'234^wwYH%S;:9ۦ iJm; {zkן6)f@nO0x/PY׾whFYEK~t/V~:視DZx Jz8LԌgIJ\!Q%:$=(Hax7V=Ə%'|8O,Cob8kV$>$ݺƊf]7Gf\t%ԏ$Kok{&azn@c_ѻ}&i󤻔aV|RICEGf1ftY;tށ=e7>g=6kGy/=g Vk"Ku[BΠG$d_ժTqJi.b/0gOjim>2vnܢNL!1, |u路"b&#gL[yPMI4c!:8mucd6V$x;>$1_&i""1ϰu͠)lnF7˭Ͽ~Rzdd2xb/u3h;XO0 ZCoh)x=ic'cL0떒0!r,<?7O)2ڴhERwnD 5T!9}XW"fI ,%GըkDWH{;S9KWG}8[v2V~oF`aړu Q9>9+Vz҃  ^{BTo6<|r T?zvm!?\-N_`M֞@ZZ a҆Z£k2!qk!ta7ǃ]Y`v{:hA]?8qC:8ΩRD,%Q\bP{A$:CPH*!vu# <:hpu-vt=(?OVmMhӫՂ_GraES@qزNe%SV,gY- E6Mqf}IʨʛZ(Z(doLTXhf̩ D7Nn.,UImC;zm`KE)w#b%iGO )ʦ 81?yX29,u Һ7c 4BQi^+y!SVl!zKd䍴Q87Zdޝ1sb K`)GCs.JUm68 ? o6v?'Z#/6=mOjC ?=;E݄rKwKί:xg*;^ F4> 8o+i3\AxǚEK3W*hji|e"63Ô"~C}Y#d=5pqF`e?+;CRPߩFly az3F\,JbU>waܕ468E!mi$&qց$ RϲD aZ|r^H$=S"@*靠㠏w;ӈ`ė+#+ۨ|"ϼLyV<6=mu g0S#kɒXp~ c˯~b#vO~1ϣ&@2+_XYSdbz*r"ng&vIV!3H{e\<ht%iQXz>OH|tŦ^^!;XAKT.uGТQJSVKX[aȷ7X`BJY\a{JeOpoRi1i[mY< qe&-b|.yF0Ϸ)NO*PPGgV vpҷ"LûK97 Xǽ#=$u?dr$D5_RIyoGd"-ƚ*m*Cٴ,עcAs,\t~g:B&.1 =LRœv/K)jU}_;kĿ?~Gztw;˿)x szl{3s\&k'u|ZhߧכME Lt8kR8.vG-/ ,c.f NNxZ;hS)*Le~*avFp#$Cě|U2Oe fW/(Vt±W+zmoBu˽Ny:-5/^#{%xMl9[`Ozh4ϧe]( @< +N{[Ilvpn~E7CE+O 14F_?`7\q#ѧaYϯO#zo }3¾od/s&{*@9Nyd=O7EmڥLRx(sh `64 fP\6\Dž'Vv#pg:h'cƸC잊=&8Ōaq"bZ\9T#4o>:27J$M`mBCRQ\MЈĘ8Pu5¦?!|u%ZJ#"vȘfd\j/kd$֮: S:yRt4Ѵf:m ;e]ak1mOS )oWwDi@8q1%]ONhNxKs;н!nrDPTB=wb;Rީw3OKl@8 ӛ-[孉&e)qqw6jBKy0qV~f#mZv'mvK3$ {%To!{ކ^4f-E*7O̳ŅH!fN6…!󛈪)k3~lmϚ>5c/ʙ͑Jیt ܍F%B"IiIfxZ%0cSѾhHRnx;v>9E5 nz4Ě rB?H!+vշ/Kb#(@7W3LSR +:y2u`K&\@⾷ DvtHrr|!C/.ߑ ZNP8N-j!N'R }7'$&8e$)dmp; | jkbpIqNJsxKvI񣶈@O. t+BFo2<>:YL(ul=:I$1U!,n+Q5O\s"wLѭ(2gW]vi3g#< xř,qj:mBХF>oC8Q+)q I]vW: >ZSV3ǻxG>݉6& "i uRm|:A*tIa6`؅Stfs?nED:4g;T]]åOCe4SCWyl; lɒ% ҺفH橑rn<9٧'/̩bWTN H%)]zigBDsM!y}ߌ]D54v 52j8|IbC}f/XӮxK~[\^t:{󠾩|d qLp4k=8= bO-3M#t{X5f+\b`l%펂$8$k=fXd^B=E:$cP#ߩ m#AI+`+&dSOO!;$nl6\g}"ΒSEK%zNi,3gqDLp=cSpgνRE`w 'LJbT) Ӡb[?)CL`+P$Wj'c4 <"ICOL= >}m\.pZbK /f/5Zd3PìQ7F3rWEرAIaEDlBq/=dQ3E[pV&%d%s[p}{z֨7aF}OXg>+3Z[OlBD~l}I |N{VC{J&Ϳ$rJtw~؀&~Ǯ,/=cg |eU*Ӛ$C)hr΅Ix7S."3a@ݠ{?I#YE\z6~"6RI ʑ_,SM/tQ' *%I1|&ق;oyK]4;יx+F~X~=]hEw[4I% ސ&&DW3 ;fREDuSkT_%$} D2W!K;Ewɥ1?3 ch,Q57F4RaH>pӀd}g{l1jTCR) ,ĞʳiAYK  B[*eH+?}PYbq*j ZƦ<`J`>o~01d(iÒJ 1bGyM?[E*Jsq%w7~jD {'Cɢb wwDr=&AEװbL@Ai E-6o `݊;iN/?Vl#0 QYSxk8{Q:B 3A0tN#RwͩENBIerzGnjl<>pCl_ `9!VVv:tH28#nFo=F#sxEP`h-IGAE3Dl|瘠tܶp-l`pc ˳ώfmOZwsj]&zq_DY;TLp[RUܽkv^#WW &mnL@=(;Q>^I)Pi_6(BeM'EmEqQP{pmWb˯WiM7=&k2j:8^5kfռJy5f]0KT/'$RJ*(EI)C{ֱBd>щ %QTzY2;f KA=fF蕞m1"Ku!!_ D$txW1eDrPY7l0Q07FV5;bϨ(WE+S\f~WWmP╪U9¬ܩ5bYT,BуDEAhPF"/3B!U>*%U޽UT+s3jξVDٌW¤"S$XH\xִ6̟}⿜EV0WQM'gqg5GqϤ,^yҸxj[1ɆNZ^hwca슞53VMt/D'H&$&u:{Kdi{P6udak/`ZUQӕ$_7l8ڕɵ$ urhiBm#tzC3;^U WAoSZTL'-m ݔՀr;3KpήBS>P Uω  D3mQ ʍuH]JiV[o)♜o;o>:#ͦr&XIC(=ޫ&L M{=> sݔ{{?97/ `C|}׷PֿW7 R$_#űkaʷ:EFwGA1C`Of9\Y X[3W 7?.m~ș9 rqtz{9@azMlD1֤#)3rNvh#Wz<0lςڹKܞKsm6."No!/."v?YH.i $?+#%fLAno]yeh`Zjn^ &B$y]hzB:} _dJT~vtt|J yA{Wɵ8zm%$1$ \qd!5c!)jɘ~jI؞$U׻v<{3+v:Ћ'z}NF{"}d0"z|bkosRwI6(4`h R>%Lq:܍tդzUۥyE>{{W;G'{y]k$E}:Wh~,Y'}^w~ up=e fݖB~o㢓~#gxâC]):?@},>lC0KǴ~&؊!?$y5Yv|CN1oA)~x!1S .|}>Znq^k0;& LW{v'M;5QbmuoNw((:#ł";'gexs5u&"?2BS><:|};>\VcH$}DUD}x09[_@ ̈́lj p=Ԑ2X"NEXsjbp%JJluS Cuv)Co>;9U By9ɁCy!34EBuxKҒDkѐh?[ jla~yMԖCZ][$a )Rd6Up I#1VSd9ǿ,+$9l@,wM#_yanm(C #_KJ!<SU*rt i`$>y̸NaOHS|C?yEphE13sS{NLi:ı!O8O뺘 Š;q!6&47pe江vi/{ O'g18{ߙ,>^n}>HLz3P'rS8 K5$BvJ"=s( z;9 )Q' +qSr⌦C')~6e #t.8P.Ʀ;`a&Dz09}T VBq9?@4d~Jdsf3}a xʘM]V]bxK7~dnx`N8t2*ɛwM/wa%━m^Y&\ 1A yo+4V61 ˔Xn%{87`2n]1 Efn mӭ/eX&>i6XV!̛^T̉lge=S%d{?<{>)js94\K-!*ƕ;\ /Uc^ᰗvxw7=w9RH9OT>XE|_xkPpNO@lc^7+ASH)E꾊l[]86.OvM|]?K>^l!e+?9AfW7s?۸fpcޏyqZh9VɁߥhK?*$sf\vJ=מgd+W1^3ҩ P~\O [h^ 6Wbo-y؃T5[pEBuTZh@ۇ6++1*}}p# ి#a# w>v_lTRRRTi;L8[1qPN.EH}X03NPɰXZل8xA77M9Ia/կ*.Ao]Z72HiuƘ;D3Dž}8"Tp5j|l%|EyC(qނv6Wfy^Lj_1%.r:@hmdcS`t;;5*SaJyk0zRC}  cp1i-,g:s̡2N(ߤD6l~HHg1k5jwJ8 LgCܼ)6ċ{^t)!j[! YOxBAe:8d9C&@fЬ7\vE`a=q4!(77ymgTYذhDBH(jɩ]4Wx 4"P`✟Uӝk C5hX`͍S /9^hI,⸡w7'oOaI7n%7mM.i6g͡BN0J!< [l%.w7$񞾹O]cIޫ)3ZI73#z_ٜqJӴ I4o:PN(p =$Qr& zFQ{CQ.oxa?;eof 'ølm$=s(w ,ٶ!ƬR'w)%O,mM0Mza@[KAgߝr)f4ð߁g[;pR›uw޽(7@:| ƶejÉSM5*ehVZ-9n:w&GMe<2 Ƒ. ~f 8}NȔ.`7 /n_Gqˍw]sBz|rd_kVc& HGXw=M\&&x`} 3pgP)@RSu!l9o6N"pgS w&Wnn-OD2Fw`sCӃ 3AvE uf00\>JN+c^a~7dO:{xh-aA1>a5I \1 @3a3΅̉;4jv/g C!Y!BRG+iv)d f!pe[ \qG0'ȌBM[g:w_trqpЯch̞,&ŚɖoG8\v5[8D8$c|xGU|:C0 杫!edz)MRi-l\9e0|\LW܏ك8uFΰnU0m34 kOK'Lb}$F5 &tIT}GNGS㜶@d&fTQ3:JWQk!2:ks?E7ƒ5ZFKt{llx.s'{9#8uw3 8L^~ dY`Fv諽Qq*F&JMe[@@r2EU``¸Xsi/Q.HrMJuM߭rQhQI1*ݓH'Rͦr0G%.2eǏ ]30'(Kql7LbĄl/^Θ񖗸T$ZY7GHjju=8%ce*dQ$З A6fnQh??;(:>oLfhE"= hH~glX}Rgs+45rd7K.w/2'"Vnh\e4@!/T<;Lt+[1>Ќ.F (> /xJ#['ꩺ)&:otf,Ƈ soBĒ̓ML *Ձ\&!Ya4wnY Y>Ԋ~ӗRb$WJfVŭAE籱HSoҦQqzn}XN7,JԬmRTjSEeVCNuG`de"H/'䶦Jmޑ˭G *Wo(c+y/θp|E?3쁉rqtšHp.j\}BѠǰ뭌1C^1f\jRZ vI[ /:-L LՍ"f=/.0E-`"CeY^k™jd)Lxx5$µ KW( 1= &o͌/V9[8 ϲ ۱ ^7JJQgŃ:`X͜ʌRoRvN:%-1cIi&Cn2-X.IyP*"7_wլ)՚;c24$csݗ(PA;(`^9w5ޛZ/jQ+lM6B-Nb=Y#0ZepG3zZb#l~l./m gWbx='wCZnmw8PԬc읝o @Ōo\PY!UnD(/64 ŦЈYfVM*$̼Gu̾omha)10Sa}D8S"sPlcHsǜh9;zKp1 <_WـHlM'J 揢EueMnbchj È}A fź DE' ]Da;([5&XՔQT@Ev d\>o f9qQquiW=277ЎdY -&ıL@a- F|UfB&մYO1'S|d,1R_ 8)pݙb/gۧ{mvsjH3)*E yf1Z;CXCijeR 6+=lb_I PSo^8;&f[ cA],z$ Qjx#|"3SS'ZҊ_ Z2I>z}wQ:,3BUD0%Pii =2hVONPdt۾Z+ꕍxch-|Y@PvDTz<JS$$H74֫%.e ;Vν Ŭ+n5b֊>7nw2:P\Va%">^^Q NJ'U|b xs$&ͽBҋ8]Խuͣ{q1yO} y]}\"^oT 'J/Eւ)ILL!1p o\6W$a *ʘU]W&[H1W8N57rh!w.TvV.f닿˜IFyu6ŭ0ȣe3u6q*!W=Y!9X͡x|Kl}99k< )pk8 B%ߚPS^_^Z'ݧDFOC}Yʊ-fg:HޙCE33m&:A*,Ȉp{qG8ƛFb;6܀($o~ћK4\rշ4Ksn"ĨYI#4ޘ=+C;%c8Ja:љ6 5rT[@hʍ#(GwPD\i%@ ՕRMnZ/ƈCq!=Ƣ5ӎ\Nju-Ū_Z(G B $nw( g6i9~T;k??~Α>B_}Q |drg ͹W\%9FWY$`۽Q04k.>  dw.MRYtXAfDdj?J"KNpT` 8"PӉh7px|Xr[iY!r=sfcfWUm)ct,^n{{n'ɜlLPتbokaݼ63Y7Fe@!95C fO/Y}G4 SI21o;vGEceR~rgm%O ;D{eTE 9׭q&ky-X,oa9E[@Ub6Ֆ0a>Ro`I_ob$Г퓟U8R1NE9-&|*#uqabݵbo\T11q\?1.ZT$ G,q|b|H;<|lKpu.:fi.4> ??9 a~!7^$֤g@|lO9D}YO@<=Kq7fOÂ'3tdnD6Y\57x~گhxR!7ȦP_,_@T*BXg^kgЧ*q-Ls"_K>vSbqzJsc:@c#F⊸BcW=T; s+$M5F&lN-.~ɽtTI\G w;T䉢-&{*=eN %lBu2 ;&?.U8|HAsR&{mB6+[KB!<| V N Y'QEP ŸX#f)hFRý0ba1HfC@€IJ;@8 #eᘄ($·E)יޯYkC} (N5JŶ Q[_D`ݹA"nW LمIpAmcCpHYbbH0세R|E} 'bNǍg$a o3;J1HTIh!5FNJKTE;:(ȓ@}: HQXE֖Omf Y IHi5 wǥlS8a)*hO Ƴ`XW=wzlB_سE!ӜIĎz-V4mh5#?)L#IgEP̉,^p(3JVy; P%kՠG[@c3 _aқ]?2&{f. "]HBϤ7~A9vMKqqñA)JP>0ߑ&!qrz6<đO5E%cTDϡ) = GGtRclocm`"p'6 -sҏ2ݶJJ t` ( O7f áˀP^R-f) gukZ݆QD9%Oɋi/ .ё"c~0avbkb1w"bz8k(h mGR+,|c%};8$W4+B;4 &R`cC4'\2NP/nga].5;o:Nb^(u![oS7gZXL#pjgYlE[{DaQ*`FN5Cx $M2g˦[5ft;yΊxjcN\ 3&9) XM*]zIWRoI$H[kB>TB UzXD6ȼ_p X46aާVV'1{DR.16 |ӅDOț|PL+4pzjxrq4HMsvh.ZEy,69+kSTT\?0@fR]08K0z1ú5g'L.r] \N|kĕTJMG9ƒ/Α\N[͔׋g@-8(vDm,rwNLGmΓXv?}^Uw76+-%ѨcfJMV^>;:@̋@RW2 .%&C5d$}Vu>Z# ,"#~x`_?^X-#ruNMM³ d.4վZ iiST\PBxm>{ 臺ei~E2i2#l"Yi3aɌڛZ30{fbm^kخSv oIk~Z&v(&v=e4oғ0=/(&3kM4jA %] fJMw:jWxl3B*2E/'^|vȿOxD #c扟 ]Nһ tOj䐊fr,qQ*G)HF*ƪKi< D5(qFvO\΁;b=P]{9) cd0A Ҿ^I*rd];Pƥ'JMkRXE-><]N*M*;K}d;Sd9̀GUTF HY/”e0|tdY 3eg&$8FW;\'!|ʼn3:E5ǯf)ܩҧs-]ۤ+FRb'U,tPR6V?#3:5UzEGy) #9^H7g^i8LX…qfÙ0ͽ_E?"/Y,[)mQ\A/=,DF p !\^fRT mfbd֗ۈJIw>y.#AyRzTٔDDAIUSsCJR}0jYĂN^4s"QXTL~bT7=iAeO*QŖb\c%uU!<լsXy5 \8,mQDh6-a5 wq8F1Kf]CJ evY"Gnɲ;06tp7|;!# G|rBz!sm"_ەi͓b?hQ/󹘈d234JyKAo SH%=o)ʸebx!eL!:,6߇A,"SHOsp3f0_ێF;~݆{nHǝ%r%?H{I rute. &/@錵ãNZrz cWu wVw*waa?J\8sџk$tn ݔAlWNcSD`qcSJm _v~W\0mLJ28E++SRXAjY&؋W~cʉ! U7`+,~);U Z.: (q}7<^)쌧Ȑ57VJq ТEo*>{Hע*ރ~"`8cy :Noz < voKQgi9/WșFwyo13f^$Ps)adMc&*odD=`ժ/Nv~½yvwz<o:>I_QFTO:th7HS 9'ؘ;qci^苯1.n". 'v!4 (WKou#ßv(MYy:|H |]]fItR-'%O`8tSfI? t%>([ߑ-/n}JΘO"Zk#srGw|tbNՈr1_cS2G^qLڑ^z1Jחu0T2MЩ`5&la{spG OJ /'8k)j v?`MgpŹ1ɽew&x#)!QW&vz0o ^mo[BHILI3(ƫ$Þɀro:wv9A[(5& j4hBn'ۇ{TF h6,UIoTS ]9] .07)]R"IVnu,+oQN*mOg?O~ц" E%pDO&GęUͽ^ fϼewD "Kl`""n[^[@&! )ef#eݮRH1nŕQn%h/o M q&eOn4}۝O0bbeÍ-Yd 4Ԉ\k)".qۑyvzuh˅z|4zݙݗXKiԧ|WΎcH Mz%W`'GGV9AS! oKd f{)ILsa WͲpl&X fX `k hENsd,nU+"*t7]1⒤$h9ݎչnAXbF"L|wwէļi/p{Wl3rG j(AYNj0cȫ/.1-*ߖn9W\g>E>! z D$i bmA隉$3k0ص8Sg9IJgJ~Qt%ՌPD_oge"V}N`_𻛧F]k P,;*Egp"ȼ)}g{^sė~s0%e e_iin 'gmQa*b~v-;=~gv!cFl1hf]ɪGz%$s"ـp'LNMe L$uÃK7X$z&1v0qlhJ<K&awq^JRT* @[jVikb`n)D0%{ h(e*GNǁ$cg Χ|pocYs)7dqXZӷMö~Di&X1& gz$Pjrx <MȔwq\<0iĦf^ޒ*{Mi6 +2)8 "q7`H i͒_uVDwea\%br9t~EP gT5E1qyB KGNvgb*#Kjf>so9j`&eOBFNv%ZQS{R 5 ĽTUT֟~%8mO*aQIm)4wi:ר1|J9$=cH8߾| ڗ_xw}cQ^̾ Z=LI39r"h,ag]̰cF=Mv0(ɢ2Q?DC݄LOBq:S:,wGn$ 7pp:egKv.6+(`dlJ{hZ_״=avfq{r`,bמ̲k>lݨ{^a75þ;/v06=ϸmԺ; P(qM. ֹQøV9ywl72ٞNX]A^r} ʃDŷ)qLI-a 2&ؾF-J~l6&ӇI1&Y%tϩA |"LIe_gjڏt~))836_a;8]@I)9W& mz]%z仵^~ ÃŁbg0Gm(T|&'-Ed~LCLzRkڠz۸kK}^f=625&~7{\<=.V: rjPʶ~zˋ9 3=,Gkuw[~NL$ݪ-i:oeße:٪oOX)*5@NUaI&9&L, |<㤃DtK1l8DhR@ʄbQ|3̕6C\$*(0jI3M6\/mަn-k+ߞזokV=م=>߯RNۿ{I[+uR9Emmf>bp۷i ֎bj"^i>gT܎v*@)J€' ߳. oa^L['?Jkf2 . YNk_tP!inΫ|\^k~qGxhOom0q~mgwp"1og 8µÜP#:sF,Z5]V9@:~yzB9u`s7c ;4crd ;cX &1RrHQ5w,MMK\!Ir:5_xך[p;UGNfe֛~[9O0H8D!FѪRdW !9(DrV% O:WNI&0ײ> Yi`IwMs&^mX^؊ʶ~]OD:"d@edl1 l<Ӷ&C ( 19J A{9_,.(& Xw2;\-?& E 9~>a׶TKe f ,)_vS3\M$U-Q\-@xVXYAksg,/5:Ϋ |[GsWŬ#Ppp$+uy #L _Diob-23)1 Cy!'giKRr5 $+(S,` jہ/^G B2Gr^sI@ x|)D ?$ D!wFc ,X@aorxrU lQx3I*Ļq;iT-|"AY` /)""33"w7kWXDWGroT:?G,F9]u)ࢶLU^ՀB,Q_(p*; \t2!-_Ljfbi%⟌-)&e sُߧt!.~A0]:!wHkN3 fv@@ĝ ? |Sre‰͡[PҚmTn=R@mS9TMn<\+')Ÿʸ.K b\NXTIcq44mY #6#+\'Yґ `;)cUBTM 0*Ԩ "8Rs勠_'Tֵ#0q?o}dݢ74 ɁHRvBaOGH}mTxW 3./~ުVCTl0"& FZ:! "i5kvz]XrL[b9"U*+&%փdƥm oCb\jo> Cov2^vL@$8PHmOVx%Jyrߜ_xXj  t;.-A6]'3ަJW,]Me8tzr^?xoϿ;yr^y*VvK 3jZ)Qg=w/~Wv94{RR8ΙE۽-A-?3L&uĹF(Qק"/H& ;>Sq/ty[3k } :` <=u$uX촖<7WEb/b1so9ssKNE)f4 h[.svO+unG}FQ:Ly1w 5,Lt fJ7c\WO7iK4h)@{dO//]2y2*6$ދyEi{[Ho-b' /ZՂسl{K$KX @Q{G;z[Vs8B hezh#鬠ZlKXBߴe3^b7e+`w'`diiF<%;N/磩Z\!Ѥ=4]Q/PkW'0b=#TG5=mPQ60DF@l;StI\iȂiI8lv:.qN%u%GR뺅٥}xl̨4j [Ծ([,bL;ZXZA8p7\"g*OQL;8!r8#i Z;BS-b,FJ y}R8v~ݾ^myj5&rH{[´ A퐞R"ss >H=.mn0? K}>1L_,V[4Y7T)U.M}ә}M%.1ڽS'bΈrv^+3yŀNec Wc6?#L'D=`tnvbpGb4"&,V_5*wp6h} 5~78!^ EAg,hޜMN"ooSY"d>r(PYfOi/q>qaSgxyO{V:KD@4@5 f@xe &* (9;09бSBI؎^_ .Y+>ˑW=~ѻȳ:U?*Շu r+,/r8>Oq_s<Ӆk\Èc^q.R.t:rAA1s1IT#S+~WJ5x7Ö?凱}i6 P-jBTFrx&ԡ#\6 vf} ȫ+`82l;b']($$ ;$A{Pt;aUSa# K/5ͷ?{ ]M2OllMa2SL^@3}t^qQtBNȻ2w9)sVTUhGzD35ii&r&z)v0]_]PEkĹ5NvdnRO-~唭>{()8eZ-IF@Gg /( N>][Cw~ Ml.NFҭ۞hD2IsH״uS5_&FoU9n\w.g[2~/&,cUM:`wG-'76.1q4{HCɤtr(I4.?pt~_#Ɣ:{tE۲9kj=T@4+ `؉wZΛ7,ۑnt:$ ´}O0*Q v~ \ḟ]Ki]*I m/n7K"׀:hz>ӧd̊L>H2rGR-WE LGQ)#(@;A\nț=qv4pؐ uDk3|$52iF2rJ[EJh,p,Q?>3XiuUcFmuN $ѫWg)Pa8&!MhO^ϲFldEK(?0Ra`2#[`?TCׅP31>s~GFzęhB([%Tlf&1Q#K[ـȸScZ>/rVbIQFbrM[l[XY,w˺v3]cEfkB? PM}kPQ]_AqIR{F:O&c#ι'.gd t!)5W*֜ߎqJ|ئ\;NlQwn:#B?40w"7v==,SYKFb/v\oW %SL0"]\-I VbHw޼ 䔲2Ij )\[&ٚX<3RKБ8}[s&uߧnx40bcelj#|Z[|+ ςZ Q)D*y@yT[q$Y*Bֽmϔ~٠x0(mm4ȒF-`>[V-vr&9{Vwݺ.Vzֳy5]HCF ҭO7oٶ2;-3:񜀊 vx%]Y@Ipd,TwN"z~nf"O,k W9Uevߤ(HٯD'Ub,8Th/jnLC~y;{[ewݓr_4还T\r@"s89螟fp/XƗx@ -, @mNW('`,"5{³ +B8- hjeRгwU8D+_C13&Iu4%w \->`^ Xb0×"ի xn[]oasU dUru]خ * G@X ` {ZF.EFXN~0ih)յ.˰#֨5Uc::q-3B3zb[h:r#}VUW赉8<};]aYg8g#@r_Z1"C$p01%OCLah} ؅fxKҀOԉ& ո8fkl&E`mF`E b%ܩMp- X\ UoT+"Ió-,q;?5^ypB9 ].q4#27(ʧׂSޮ"ڼaq.YׄQ~;ԟjT]w4^pށ|&ulw np,7y8`gLEk⺐}\w Wn1}܈P6Xo1ńdbBSĄfگ*wāu@9G$;( eH D?R.n緡&# 2]ËD+* ]af Ƀ`B$4\ͩ׋j:v_egY~NSfgF|Lƅp]TE5Z`5~熗u4콐-?2O,9^ ˼$Rܠ6b'ӿ\܉6ى+Noe* C2$Ee4v:MԸ[])Lᅦs6ںc,fT1R b2C.R ORί3߀M}z3j 1 ٢8fġ \Ur$$IsrOWBaMNAd?$I {k)RR5@vIT!=$w1$" @C9`N$rԂ-[sʑ3,Qڝ'֣*6,$$4 P =G̺HJf<1X]#^Qu[ړֹeC!O8*6z$KtNgtL\fZi`K?8әwڂE 81mJ1B'8Zʷޢ>dP`H*›;s{u{)rg=>zvq&&a.=DuY#2-[h`[45L=RC^f E^qXfk[(C+M |[ק0=6٠2o2!bzB`DeڱbāOH7b :aF)}_ B5ߧqw4%.NعQ\cL>1WQQ) eJѡPuCT$.K*EfJe5$,_ l{8:KɜI3@&LX@suF!.E)N *R q$Huu'4GB;ET++ ȉkɝ1=MDnSGdP`GWv- 1BRb'!L&Ҥ!FE}w'pvc ߦӈybfnf43 {BVGd}ɔKKII E3\ٚ-~I2t'Fx|=G4Mibݦ/'X<}GHoʟVB5e]`lP-k=viu>>Jukm53Rw-l~޼q#Q 6iz'e=$a>x2^^Mh=X-g@/&.DG`h4rؼ^q4*iJ,bbH!TGK?QPĈX׹@e(3U§I0e9Ш/ӆ+'*;d\Kƞ#n?uK's e8)`=]j{[Jy}6(fn;gH[_?j{cD:q+PVWa!4fΞUg= t(W a@߉ti9pe$7jtWWnZ]Z 5k$3i%ψ`gj6ptf,%ja=eCמ/}n8:7nX7n{:` e4$XٚKn  CnXPwlFL+(`#.OUFx%bwK[ q(_ҷk5B;(pxz_p*䢾

R. %\vk@hLخ{w8 mpF-7[n4JtyVЎCا|M) ^Hkn֮5ntVMn7GreyJw (eK`b\Q2tv?3 hѺsN8a Ǟo"ÎW|]6X\go'ar g{ՌS`OޕVD7C9{Q%ۢ0pf 8O(w6Q=f8hGMP%\ 3X7cvǥs(:Js0#mZXp!%-ݵۓcݻl{3B&jj nA[gL .?>(jg ͭLy'Ĩpxvh1oi'( OF4C ҸZeb?s{Ѓ`^H|W'=Y]S^)؄e~b$o=HE c\'e[Mwf]yRtPb/}E'َrMG@6ikIĂN#D@*S ʂX!MFNF?Qƻ- OQ.;Mvqf` QE`hoonX?:s1q8unͱE: Q@am(~쥬bF )ˢg>1XQ)ߗ"JR4K:D̕@05V*Z B٠<wQEMMj&iZaxpx>rb1=ӌT3*hu~^[@m -oVǧ;5) )-z/PvC&f:M˞rrqQ4N NukCMdDgRm6,%uT$"şg 独=\-0TQ޳|ϸ:=?λmL ^* 9}-ÕG-j/^J&pR%2 fڲڦDpvs:1܏1>w]^lk-w2;L4W8;0Ax\꦳w oZ5SEߐ[@iUA70.N!qN8=v"D1'pD`xq|m-|y%B lY˔T2+^,z7WFOӿܽ[`%#0`V0э+ s.ӪWHꮵ-4f-xh` #5V3s9e-*J(1Џ.|?9%~v yh#xqj8w&{T u$R$`f/{ -kw@fQrk! iJ07b 6$ulE/55ۦKo~ ilew-?o]ZY!`DUU ;[w z ñn9WTL6f_D\B/0Imۤ$3xt196*h>;c;3~`nf z(84](EJЛ#< 1sȁ J66n*㪺 HKzI9579n vݢZygtټ0_pND8qf+ D@&"25}ILd"k{J.F0_PM*FEee_Pwo(}n/MB j>3 u~BQCJN qm< *8?A֢r48e6@ 0D! !`°$lj`Us0N9a$CP2v5/ħC^qj˜e5- U?Yv6sw#7ՄfʷJq.#%D)㰒/T*S| aᅳw`{q1)4  jL!egn`5rbT^P['";颤yxɼ*L(^y @;=wQ2)%96пzkMMtw!# <$1}u搯5s5}zX=,h,75ʧ%hM}|HN kKqgd' u XvHJh6)6tp0nB}:۹ R7F+( s8=m Y-w2CGZnP>ax\ 9F"ʤeUn!ssgV=|ֹ\iGђH.8xZFGZfHKwŦ~C.mƒ6UNY=QZiK8]ΑLgnZ''ՠ,w-$"3%Gx "W5%JؔhsYtݣ4`6mbnZWMuz%)8i }sECN3HcHqCHߠo2S{lg1v>W[\L㮉Ғ8A/9Ct/(%xEu3Qx#.PF"ک`D= &2-A(9)q^Nr[=\捈Ƀ4RiotEWTͥgZ:dEE F ,ANp7 ~PUMgvsܴ֫FOm'b֤ڃ;HP"\|~hEt)U>`E|A+H>hFZ-:(=M; JJI& r.p.#vm`s6D捅e$)l2R!B ?ȷŒ&:%x7f2`AƬF)&[њazȷp-FRB%=GhbǤ[D'PYZ62OI]n ӑ))+qlȨt eqH<F-+N nŌXd'@ ,(nQՂQQSq@SxGvy8/Ev _h@@BVSI6w 2vٳEwD*6Jz=zaK1Fr|L7gOCC$?׀C~7Y Lg%馹̕Ɲ03t/XM1lok}+&{5sUEVKaKлJf3X%qkGHAkG :=HgDYfV֖F >TY05WGe(zDnv?!3x!M;n -\Dϡ+A8,ucԓtB+'5fchuI޳38Bv'*lhەʀ*VW\ؾ4_:v\fyg$LM+{7Y nf9,Bfc[<1ym>w6aR֎r ]*kImB2J6]T;=:)Yjg4z׷P9n]Z)qK]L1^bO9jR?nҎLV0>`bծ3SJp6}fѧ#^:N(lԝ^ p(Р|ql&?yWK:Voox 6)I)9X[9P.ndG|S,I#|J$fafjEod4 uf &e[MJN{ x ǑD0== bm7ͬɤzH9Z$p)2 eQe;)@O\Pff\9ZizyH$܆ylo0.4l4uJaGy>uSz'O0fN>\/9WS +̟ٻMYlkSO4X1ɔO4Hs0C4]v(D1?YZdZ{`uC m+!+F4Fp 82ב8iG$#BӇTX*iLyvVGFLɒ;@HC Fsu1H/?? s L}IaZGm@(3AtQR>2'?m| lm{3/tR3|ᠿ5W9Š[ {OY#zw VW: ?YS}8kvn0G?}9+AXz0-ݩ~4C(]/1'>>?{bA1Ȟ=:ExE)e RL/8HŠL>r##yus!:i9Ywif$, *NhԸjx{"ab^<ʉzQ47`bI?Zsçևn-B/ ?ᄐ-*I <>녴b\%d*p'&] _Lż.:tmm8Uv 7ldY~N,Cp $.WKڮMY1ryRGȔu|2qL֋1+&9}9e¢Bئ@5(yը*ĵ#p):03gN8B!a;2uڲ>FC&Ža3!5SjZ˪rOu`H_U@ Ih+׭^!MLe[e zqBX>_ &ɏ7c6ݲsC^.(. bADzY/@~y͇L3WsI7χnZw e.<&wa H7Q_#:r%'[ھ>t9#|cȻ fSa( 7RO1"KV qQG&S"'7̪/~P3 1; X:x .'&=}LahժN CUP M3Lɨ&@PfCh|%#@6@u^^,O{{+U4=YzH^qh. ,JIBwDBmDXzCؖճ쫯<fNFgZL8uYы{>ԥr"(nz/:42R^9v(Q(J[MQNJѤ8ύ՛d s`Q2!_sm§`Po: ECV `$;8rvRCc mM'#B6Q'X]%8 / Do{$4/Lvf^A+ uE7ˏ_5ppXΉ9Dcǽ<.캨RdE76W>BOJrW.2 d=[: +\IY<2cbi\ "33By4,:Yn`mx$?s/azTB5f[cHVͱgз6pMA"ʧ1TIdinu!(Z_kog;َGv`!6} 6rHD9l2(Qu_cøF~dW4F"'F>st]d8JPjϛ>`Bi {$K{0GBi2L2np|QyqzseDA$D݋8SCGf]\^~M{5 &K#?C2%EʷPfB"^oFRogR4Vtilޟm6} t]GYU&1=ĪvIIO~yfh~`e{vna:+"yI)`D-S0*&Fv/0@_}3C@5;%*)l>^OWf+H;6Za}cq6\.P S ´>(QBJQXUELsߌlIËeaFX6z5V`vbp2;p T`4kx!ȅ\RiܡWP'N܋ۻltYi5rq/=42> ڃ#b XL$%!R,Q1䏿u/уo=x0ϓL; _A2Nv(vsPV%e eGQ/dr#H_Vzj !Cvb*!AŒP>Qց:PN@65ua10L騗z=tpb5pm`r K[ \n ZS&9(%""PM>*GG"U|-y eM;W.} ,_/DiU>,h7V/dON,}S!a).}]{4܌?lZSc/|N2+˅L0DtDuݪ|G~gt-zff}W`fc8+=3u;6dcHߪ~yyp3}{L4tC}ycv~e@/a Bx4I] zfC^5JTtZn[ L>\s%e/ М%]f3@N 3l,y2G[:IrTAdnvָ3fk0Df#'$J6EAv(3aKrnp1v&ƤC櫑1c7zs8)vȈ A EK|DY.au h_OĨk z刉QW("kizZM np ,y!iݹ |JLsO&n$гa WS2A0SVxˣ psvSW|@oxvc`םz$(0dE2*AQ%`6KdǮNg]ۤJUW>MPG ŔeD- 퉟9?.S&Z+K9cJk u^f52N#/Lv=I;JEDq"-:M76Lڕ+W1)[I& ق.gࣶCx `2f^v:\Gssf^ syQ-Rw =b^ ײyTE +;78ىm,d'H;jx`B ":/火@"wGvivYc*Ȳ|<_TrųF:`$DZP-84݅'M;Y(6s`F%DwV9s?qݢ~2! >ՇbrUۛwBQE IG(c7{=P~[?Ɉ>>}偿Cjou~0oo:lY[ {ƀ¾ΰMxTxǷ2`ІbXFކ :fzz Q^AN,]D}$:'/qG$ G*}H76>}*4oB}JT>J2tdַ(' y֑|rcHٽo`ROX8a+LHW%ތTC|Z}M-x3#+Y"Q(ٌ,Xh3CgE$ ijb"qC$azGu`՚iƮS,~:[?M{ƣXL<3vE\?YNCTH眪],3٘Zb\ӢBm) nJi+˷3ٶMo? {̔ĆA>'O =$YTtWCuqAV3/"n!OQ `SyLCܫ.ďR\[+)0YGcDՔZ*NU~|ؿm{ҁkc Q@|eTّZ;)%7.[;j(T'WxI L[.Ƭ;_Fw^Mf2#4K2}*Nːe>nxd~.',gr(֨+bf5YYt|Hl@H`t,扳bpA, ~A~xnC(\z n5js zwӆ_*KX7o(z%jKS28ڿlO{<"Npޯ4øT$Nl>|\wcdC!J+<@fMpi#Q$נ)tMn?DFl9Q%1,{ne(Y܇j)" k|,ܑ/WՕVE+و)N"5jǏ= dFȕe9bnfx?}Dt_z2$5_31O&I( :tTp\L]Ӫ~[mtgS&YS؀>8)_Oz.c63io+Ә к[XA7RgXQx+  ^=9}$ FY|U6Ow4vcCI2e: 5I ȑ:(8f5lf6~˙ӥ*hRovaz?HKaIn\ic5W(N*9lv :bB6 3&u˯5_"Ox) l 5)bޱfEvx`;s{nO;|8@g}'!Z0͑ȷ١PHPGALKb}t?Cn`=͡'\Gjw*_ ZI"8FFMNq90}s! E|ᚈ*ߦgWBmV*]n[әz ^ t ĩZ;z*װ-9 &۠99P}455]%$~c;]SY e 3j27;l[ʳ=Ql KRGꓑ[׷ D:OI# M 8I)ө6NNĘFHZCq8VE cDJEMӨ6>2]ir'pbfSㄺF&l }}3TZ[4zɟRnŶ#[jq-@ ,,MHeKK3!XƯ4W+ȕzJ-jrx%tl WrYU*GL XY[v. %6D dkJ3j%Y2bE*WDV*&N%FhpT5BPXyhwjyaM6bSjMq*S ͳڰy{)vwwqU+3Mk/X˻~&Ny%ٻ"f䛘 Lj=(\NAnF32W ÿfJ녑fvĆ5Wb]Kl/ |(^mqlHaÆC(%9y:. Hǭu4N|^G9qs6'_)yAZ*g gŏإOmibq,/r0` -WsҔhav{:u15r[L}Nx8(6beNuƿ:2k|\ൿgsNyWK@ӈP0w:rSIF@T"wSi,Isw>Z '@kEc\o)&0h7cy=0-3;><6u=ߌ&=1Zzţɂ&R/m%_L6h4c-2b7\5; p3klżr-':l->~J/'<Wwӂ2q5~8SK`ܻ(ħR@ћeXA?࿟ۿ^(+ISB D~Z,nl6VbX:<;7¢Ös|4Ζ ]c:f-~:47M@d7o-f>{ߛ0{Y<{?xO!wkw|:*O`8*_ Ӭ3CkƧ-)D42roȌ9[_Om6Y4Vx<3`GXl"B0D$*򖏽o`*ԍw(w?M˖u0g{R(+5t!tճ @BئW4bqƑpMt"7 I2/nLטr:) #3x uR:9Mkdc$!pzk0~;wB ̋N-'u[խΦnXux"ssDZ\/ji-n:wC,|^ ĵb~wl١6wj%5{6 ks2CN(\N$P(2j̋<7 ^1GˉRˋ+lܧuEV ꈃ<*bb:*<:Fw\?gAɲ7=j~vS x D?̙d7Bz5<{8@u )r5>]ڟ4LāA^BmE"x9nDp&0* |(+CJ:}mW"''zM4D D1L񡐎xQh$J`\\ȎacȧKonN}鈼w 0OͳjtGM9}쎯E\Zq%Er!|x~1L0e^+LC<sʹ +E^Q֬5B>C3KPޏXGKڑ$:G?Z/kc6uJإuD7A:1[}Vݹ߆9GwLNm'G]v=7<~ ' B>IZr ׮/=|5Yv[5- Z `SxՅp fKKrWLMVh8 F:xoZɢSed@4-H7p1-:"-娅*$|_E7Cm.Ѡ)؅3z_ e&9ꎍܭ}T:E:qu0|v UC#зkd) zHe܏?A>%B4שm4seYJ'@>*& )AyL_V vaMj:QMo;4m(@w/zi֪$MS+{@pAiڅ{Ϥr5ۤ^@Cf|o;{]T.%ВM&H4;=h=>GDpZs'thoL*90m  $0?TrngKSO{MW֪N#0X|I!.#0 LJkO4\-},+V9 ퟨnY?DeZ4, ֨q30Ke:+tt$.Ȍh/)&&-$Z;r|Xy Z7ЬfTa*N{[KTj<.%ElW֍7YWIv9 `Ug׿1y?;aXϊʨ\Kx! {OnݗqdG!A%u8b,?|6xgw_'Px=lXauh,o݄j Jv>zb^dT Oyoorv=Sf+6g27xc?w_4*)nZ",&=jQiм?N2f"1Zͳ=](3lX^qiN1j|z᥁Kc5]bg9Ȃ&5{:˪*xz=5.[ "#L[$'7;#ceAq]'?C\.9CA_6pwn۲L٠od+FEZ 63ߨpPnOBķ Q3 W3tR(@یޥ>}ny,{c[wqv/ Arⱡ'tLE`㾇MtEEJ-:(0dKZZ$>Ӈu_4QÍ֔# CߒjZ-Gp~&bRN_ d:^n[  `i=.4Wo2a]gt*&ׅeVoo+Y稳Ԝ}qݾc>Z0"cR'ܳ=t!Pe@Wqco4+(O2玕ws|hL?!]k]3?BSC E"/f(⦣j(]R֝ofp:YtV.W.=PZ"j p`Kef+( ה?&܀|q&ӿ͙L5 }icy*?Ȱ^d;I!h42Ϳzj~yO;3_?sIG_C^-q]W]Y {5fnꄏ4uA/COa"nl1u8wVWM m1@^1}Jc pD2S` goLxSd4w>#Hwwdkmh2%-Lܶr޺o|b݇~x/=:.S,=INh2?cUБkǚ)3\œa2=WDQq\v;zRJOWlE'ˡy99tx CČl^0 f9B ֤8ls&V@ juP0;ͷ2oѣ1K\hL[e|>OW]vvUv+mV[ !z%CS̈́W@(o @D.1p5)נTrYz/KXX|)T7h:]Xz-wح𗗇V`7i'wO?Tq>}ˌ'BY,nG"Ӧ)Ĭ{aG^KlxFvRis$zpok~xQxb6=D ͬ1z>ZLQYX(RYd öBx`a9vebAx1O@p+uN mhuN!bYv: :@Q\H@r3e:.~g3\7x+$P% 6Nz-}_۷_vYwQB<<"L: B 9\3hzleta-]׫=Ni%o]Ҽ#nuYK2о!w==.J0G e,(X鎏znn}/?,t~DևJ8V*$81R5٤K+m:̑"pv+ˢ/TڹM-qn>6hlXր\nUzKrZ$_O/|v^J\E9^nO>d6OzSFQv.HFcyw&(noۋC (x& f6f={XbyEy @쳥(H7;:X&%ଆiA*W`g&9\h&ys(G63;)5]E c>}E?gϺu,n(hKϨ6 "޺+qG N4[%:*`r"EP'::tz$[5sfC9d4gh}'u9L)mڜس/[_TV%iI:#oNF$Ƣg^h<?7#,؏yډK>j>ҭ`Nx6!ҕ ԡt||Ab$9Q|%*b]Ś*0e.!ֆZ̾,QRۨ܋Ŀ.cqXMc(1"0_X{215鈚q-nmqXx8GƯaZ+^5c31ʢ hCloIȋYܾK_TXɫE`ȅMqDŘE.gQbQÏr.׭hn(4GbrF3AlI8le ; ڍ zjt6LI9UlQn$FeR1˲R<>+D|7ܨ0XףM=?_xOPقTD\0Kc]&;.ޭ_}/X 7(=lPPL%zOC^0 7cs!ʑO3!|n$'NPkEɭ0裻vV.*Uq ]Mҩ<Jl\bLʪS!C=T;&i+{uMS=\j5R~ݬ'Sᚑ4czO:vp*G\o"YBX+M ~r40 QSЋt4lbS\eT h.O2p9YWrt#GeȢ@9pzXU…|d<] |zNe1F }?(_cQW/ۿl;W$ƝaU{P-cG1 xQJ9(@ǸDfV~jOQL.O~0P x\/9]NnΡ:_W#E?S"󣯳Uw'х@>(ebOe" )@!qDQ^]cZɖCJX&ttԶz-zBG?q :>EwHu?߬mpﵝ^1wJϕQ&'HKMp].ń;m`r91)f9nFc6ݾm@R-'Y׌Ij O1}vI #~: 'g@SL6*`OpZTW9r费O-:`*rwǫM80*Z#/w n9PnX,\QbBs?Zřk-ʷc|ܖD4gj1-_t䠣?\W|D@,NH -( ȝuiW_t`$9z9A=[geCY_0ny0ÅZ,;< :u@ƆKH{k`IC|#]^Bq .Vh:5g(ޣ3pF x4!f`w*᪍2jѦu܃x.>땱_HPOAw/P̳ ] pKk>n^?!l^Xs=4huR_N ~f:?hG]#ϖIjGq!uW =&2Gs0*2QBOfdI+N5ޗ܆\꼘#:/$d`g)\0 Z 0-7G)[kLJpD IcvKau*tɀ=Z%55CԴvS6TT4ϴ]rJMaAR4p,k'6j~) rS ro*&l¾Mp4M?ŐHjLY+XA$'`YQ &MҊ7^`a4\v.wФȌS 7]^5ojSa4 B8I2oa;4"a&d}Fԅ6G2[{ ^8;KSM|V-&}ks=Q%(m-v\z3@ rGyUF BLW }8s[DJs01vaJj*y]?9]x!O$Ww8$JgƽLlH p^x!V:+H3;gى.%KF%RS&ml/O<0ҟ bRjO{$"F|Ä1jk34&7\^}޺h뎑"f-d3TIY=q$kia_Ğ(J 3hjd⵴5snȨ Pt_l9'5tO_e\a?IX֝@(5 -*;Wh$pfmف eeH12 tE(J7˜D%|8g ,0K&QG*4$+0>ܓ9fhDϷ؀HЊ_,cC_Fweo;sBPYob MBl6o  ugOg{vrxq@pQ;3%4|o 3QDG`6poeT=;EXw8 /=Zdff|(YUK&xi !S|t_3uw  *Ń)X˩`D)y&Y^YI%6^W ;eư9^?rߧ|Z/ap)_ѿhӛCݗّUlX~z?jz6Dޡc=NZi6c TLPt"7oP*\w n6􄛉FPV(\ք:!5myn;wLבw|_9_n3&#u 6K[ƳeXz_24l3-C1FeW; wD;n67,J4:!*9!ȼ*Q0Yyŀ +~E ;VM12 3K)f9) V\$ah9NCWCSNe|TP%>^yuUyH7 [2tQ!JϬt x֏Rjmë$?OSf-l %R,AПp":+Grk/E:fg9g֚CM*-W!/D־רꁼpފq<.+Llj4'QADG=h& \[`R(rdgTtQm0/F+ l-~ir6dx)R[8VE"(?xy;qyTV&-=hʹuøKXq7Fo$[MmZ .j;]Q}mHQX+a{WF@!s0Su bH4;,ɨWzyٺ xGoQa *!)edYDd+Xy{ӧ.8+^k tӐcț J>街0E__lݐ_v}|ޑɥ;%2rh(QQ4cJ]nA]d{&5_-X~6rc1* /C?e9\ y"P!|q tG S qp=@['[n5#2c vb-44FOdSα.֧aVr#:` ۼu1o3 Bo-ThMDqܧva\iMg0@<ލ)AKXSm98!1z:B.Pp,8q5@^{L@4µ@X@wMX ?d+pRq^}t/f'պ8,,I 8tFO$QqtuTPF΋ x9 AͳM8'"ZHpZCm+KYs\ضʏM@sʮmc=|\n6bИ:@v L FPEy{;3g k&I,ǥ/"xsq% o_bO@MM/( ̩ s|CI=Ģi7Y{.;yE̶jVDIrB6j9LrsL8usYUO<u\6eέM f49MnUݽ~2{zwg~k ENkYr)9%'FPⳫ?I[@Br: >4(xiH/Mף@"bGRϼų BKK^2=Mf-M{`R$H>} 5llI?rhF(2?#bшlC$'Xl\n0t0D7*tFdJY8"۫> jmIﶤ` mZQ:twr  L.l?Vh]wJNa (}^iI ] 2>^MjFUՋm ]Fdp(:%drYY1chvOeQgt'eW?@%ƍ360(S\xV iD! zwpv.&IlWZ6mHKN4"%ٙK%8J&"[&milkPP@Ivxw"@( u|EPkh_6mpBzxCBH (6o$C:OpP<15Bg^O&J2{T.ʅ^uyvq[[qQuEb*pu9}u5K#dب۟xh1&noa)Қ.Eغwơ~Dh; `6kPó <YȲh+V1*03QQ)T`G?lA=QzS`3#Vi 11]Sui mf s#rakIΰ'"N, jF8T\s߈2O%/Nuo!o>YT#qPε ( I-EeeY F(;tf;ŰU{L3D$ 2#79o| 6'Lϱq_wt,Ae{ގ0@*mݦo||rov k{ˆ0rNPHhGa *B]g Y+[;AJpa%*2T!i;3-3!Od1f~'!&ކuZ7Ll֘FM-$Id Ľ)0/R xJ瀰k&ej>pm(5.ږ\.(J [:4nBr2,fJSe b6d\)\7ԔU,<%6<;N2F&斆KC2mB }z4LVxo&|x¡q![m"^6t0\٭NdVp'),Hb4ϝ>£/1O,܁"Maߞ$ߗyVb(*= $T_ۇ̵SqIa3P*S]BQHvFj"Rx+!.rwjrtM ic OC m9eGtkL,_=-Ξ8*ТbM;pzQ(~xy3şe틜fHgHy [ jg3:Bl~z)D9MˤI,!,{curZY77r+m=b7f \_ Bwv(OIdɣqΊf9`|tMq5i I`"G62B'D*#F shw&G &H1[}86TIgy]d9vB!0_HHj;3ﮓo~\Q#! q9Oi rp/N^)|EGG*&3Yg~BmhfD[luFc/ۄe9u "1x6ݜb2Q$p8t*I(9ڰK̖r)`ޢZע[Ď-h6̙ q;Ij%1Qv'G4E""<0Ȥ s O mb;'/EVc*yh*~ rYjt4:0''G?9cbۣ/yɬȵ,yy+Ȳ9K#éĻ%Uȗ& jPP#v9]dmhhA2=9o/qi#jZҶ ^Cvy2F-ԦDt3wH\m) ^jVC|\Jo3g,Ru!̎NKu(Mz L#<6 *CwKS@6G:=[--*(nŽ<[lN!ZV$I?KVlKbʶ*۶܂}.Alsd.h.F8 C9$ YRPr??$j4%tJ a/rd#< AÙdb΅aɒ[TD e<0-q nZ(ȟ}aDf6 ^"yR4}xڥvoV%ީB8[ߓ}p$>: [)071OG!Sܥ͆<: v?ˇ{v~]SލWEH>l感p8կ6>+&g47 9xk8X4vf6'wl&{῿q;.&8/[3mVH8oE-0C;d$x]TUɷ`BȽl<]<4|wR| O m֟aݨ VwQغC:7M+pSx ) 4G'9݀q4p??Έp$?>~i.Ltm}f fU`6 <::yqsѳg7ON?<= a} ~FȍbIt& єtiϩBS"3J/(asؔ҇;S?k&Q ^-76Pr\rϘ;%B{Mɷ' f`7{e{ <PFΎWf#_M7É̷PQntX+ad۞WKxu^o{.Ol\x;y<'8e*6\1-Shg~27q `} A,1Ө..>2[X)xU{ByH!;Yӛt_ ._1`DglXE,n:bvonm1,+1N>}5{˾2fidb_?r .ʴt m|;&#Y_&ܜpZ xRui'OhdOLiXp&tRv^h{6fputB"b?$ k]k,hZ4"ۃB3bBN-P&dC,`{憯oؼNy1E'4b @5,;Cu8!#0#5P*(ZrƜcaٕ^/ZwkkAA^oXUQTiU~}trlBNoo0`8WBr`]9GfCJ_~ CeTEomzM-WVyl4 kf3ҟ_nNTlunsm]' .Vˮk6|mY30-ufj(=F~ր ̋֎! CUnpL΁02;jQd񹠚R,XBa&^9Z{xq -)ְRWbY-fSt@` > ,80XokmkzMg ^Cnu:$οH 4l46*\45-\h5]&adA&:FK NFIpj>JC:e`FН8WV4AK:{4 ^fЕB#tr1̤K8jG $L`~~aj?ZR&y9E6><|[={x/]H9 yvƖjmwoZ; a rvnSG#ˏe0_2Wp c׾_Sgiŝhv'Ԡ);~3xٖtzBT4z' vkӤX)(LTcyk#i O'(S'Wnhksy#*̰tsPӮ&C'8kdyE\36*f06uH Q.hW3dsM_oSrԬr+Q Dmm.)٨XVM F1#cd" bx/@K;D+slBRX;\F,l_GI"6]V TIӟ|.;GkOytsi+3}"''@sdh[Cg#Ӛ+=˕+ddICb P3 En@`2;Ԓ2 b\bl\ we0'p|ϖdɦa˝bg+BJT˗}y5=fJQr8w bmf\2غ@Txp34^GhDG<ز6;AN}rt#>g, "o`8sO:9}$!,$Y<m`ԳR gT9|({ثxZq0{0i>鳘g|EaoZ緿y>EVgJGqCn)Q 9nHlƈ6v7& DTݶW@@IFrHUKuY#*$8=`9o+7e}| 3#A'|b K%dm5vv6vo;\}i/\`E*`_-9i䩟lVL.J & vEpwgF6)kp5)Z?7114fI0) @bEKj(pL^.Eӛu6L{AeQ=3FdSd{~wvd5d[OqqbgwFbO:Bn$"/6/Lƻb׻dG*!T Tq=ۛ ~@N7`GGϞ>zz&w{wvvD|giā}6| Nҟrٿ~_?:E0W$?_ͯyڄ\^hz>rA(e,`4mVA$H$9'@ /A~B y :(  sHof2RJr\J~i7vEw륭c~\ }Ճr>{p|LJ3Ru%[/ ^{ɆT9PJDCϞ} ̆7f`>{/f2 H`eiX ucY㻟c{w+S),U>K&QMX|2aD<,RS”ҞkRp"P<ʢ1$ޅ kS!>Ht={dK(qEpPS(KԎ&xɃ0ˣaSxRGiR;rVGݑeeq3ʄa`D7 G3IðeՉj@dQ)HX M V @%Tp7!7< BɊiYì8 ořibvwӼII k_O=8x(մiA游[mq`2[KʌNf~ ~#c%ml!tH r@Y(恑[B|!D2i>c{a޷l 0Hp1;C<}VDK9x M24xV|23/xyJf-GYݳWH[٬'V'ԋg>(v**͟ :8MphcGO H gz]-qsqJh$Ӽ3naOF&4x?_u O/Fc\S?Lrtt_fعmsrIwh;5qcI-w)%Ok8^^Ui-Ҋ-6f1Ѓ)E! m+I 2NJ`,aiѳ@aG=s'5敝K<} hoR J=Z߁+Aƈ7- jTa$-fc)mmdl" gmg,i 6)[UBӝ~a҈:__$8X`_Ku0 |m]L0 qnDs7"9rRnZ҃X"ڕ[2 閴"5cʃ1 SC/r%c R{ٻ_ =7$b9dEh9΂V PE@=Za@;!oiAJڌo&tHfDȅ粒a;%1-3*1wT%AGt| +1s{D&~G1Yk;-Ú%ၚ*?mRC RRJNc%@4OlLO8HdlDeD_n)qy+a\:' !Id88kNÊfh`3cN`ȂrW>\>7,*bVy)Ksg'NG u}nnlKvAے\UO_M7dۂ IK؋)H_epA L0"3fȊC<`iC'0Tn)p 3lg#26Hj9UaUz(g|{\[UmzG}=m(\tR[9f#ع?w<4 Itae&:7:A plGGGn|$5{VqIYU$&EΏi Fa)s}{QꚽRM')܆gBOb6-C0($=Ψv ɛT.0a\fF`{KW.OPxg'Ő-!|Ms̜`mohCF>$4 {S  wrߝ+p .:8CHf^AB#H#p3 ) ^]i8N&:ދ6z?ջE^/mA.eHi9C/M)HX`ٱQ_hnIe\gRrG/&oH[~&˶MVӧ'Hsf+B6F5y/鳈z [ވ5Y|zhxe. ;=sZoZ6C#4{LZ&egw 9e=X@߉e7}eWp#Z)q{KPWDRE{()l"!;ad*+Xx W|A&aeA`S%GxɣŐPs%lJ tjEH >Eqzݘk/y6:*m42Ufl_Dg~^z^^{>oU=t4*k~PSf:Uϯk3д}쵝 ZJO^'isɢdu-pJO+_\li+roY!]\ÌSZ(1f~(!2=GMyg3I^2RYMZ쿚rvѹ$X<Ҭdl~FV'``crd+b< Fnu}5&Jt QqONњRh6u Oxj-'Np&-S1b~K<͓S~?L fG%ɔ^%$]c69 ]ew'["okX?JMrj+m/$._|͎/D$J1uzΦ@ak3Mĩ#еbB#HY'<)ʰ()r+FP 3 UD" OF\_)p"ZƫjA޶O j7./#Ğ3[ӡD lv KiVPP< ʱbڎ6Lo%x4Mb&f^.>Gtށ^ABQbd~>G]{kC sgH@1[Mޫ l]̲)GdNr7mJɃ7Ĺfyu,M?@i{>dA <8K%KElX./7Ϣk=@7[kal Cs0k3o.ӗm"HY͝8@dYcGdHvQ}}%oz;g|S |fp/\f 8/30)@F&n<ĠKL:L*w-(Eo&- gKû1[7KNm" v0y>s>v)pepZWs:WMƔV&ٸu08Kv]>F-QN7y ٍiVQPg:G(o4`dKl[Շs8~ T`8ǬWDo$!a$Zya| _xAebF*i1e("A2rg9felqq!=>Smӊ"[y q4c"lNp! •_A9X&-HEBZo?"ܭ~L7ڲ`CYlֹQܕ-" Hk_N"gSY"bA;T|Ş ,SМUMQVr;ZAPuY+sB^TC"-|9! 's@,1 # BaܱLS#b{1Z\"P}sr#yƤX'1Xc؎HU> 2ˑSʿrgG+N*JX9Xb FuYtǿK?<1]9>?-5iêc ƥQfs*n2DU7bJw,_40~XߗVY?/k? kKclre4ȴmOp#ü9瘡Ĝ ơc3bi5p9\2(m݉&Ya<̭`6rEWβ(_|CwR 'n eN-3EWK,_E/:l[yAY%=9l#]7`p@Zo̘MY 1eF}fZk 8{f~3X67< Mv_%E{fT"]~e (7ʒT'J;qQ)͈ߧ~ONNowk 4~Ls#G5A%zC;+cLĐehiOP}p:}3d!btG=\M|Y1+||.E 7?1 n42DgE~Mo,v*Aݤ>IpGyjOi6IS W4oE6T*P %7i>Ҥ"%\zevnBܯ,YCa Aá8۔D C<9w2@2.q?=AnTev M#4-+N.㹂$ PX ~ BBH-W&EN7K"wXMu&E@JoUHGYVr^G8xM6ptA՟o G#]GP! ~n]H7YQ.{Zi|tjȆ}<ߠ#tIW5s$ |5Qn ෰1L<&\:Vjె: ֶII/[+BYC_₌zj6m@t~t}NA+sxeKD H=""$FzsmKJ.'fk4)V)5G<q~ylR1HUN zx熌 OoÈ4zI$ۈ#zӬGҺ{8Ҿ5 Jg"-qTC8~[7uΧL|´ׅ0qceEU7pޚϼ+ȳkZGQ򛀔8Jh{MD"Rߚ6JzRg jT_Dte8+1n3TbxA/fpU RbGa88Rxǩ2|9p"VRJjZR.K@zn5֯5t4 nD7J*p+]% v36ɕy3zk JW.ӏ쟹PS=Ny>J6B4g"Xn3 )טJ'-Rvh ˙MáyGW6na_.o–>ͿEr nBh`tH zh=Wn"|MYS/h tXAʡnYMǿ tD zjM*#/I 4N^ҁ|qN x$" w*+j%`֨Ds&3vAQ!EYHN\J(i1U2@&m[cym,ٗ@Q|aD%;+5|(xK>5I3_ ;I1)vg4]X*Һ qjV!|}|S!dDbC0 wƈg%~{ф.5JWЂlENF5p5Y}K_1v`IHa8T'In{&~ASQOhxAMdPOy:߄@]W 恧~\,XFR.Pi1i} -rs&|;sϚ~)hWzYXM5%d6$EN@A~.iY o#lfibwKۛ.e&aw.,#:gf'9_w̖*iuو>zX}qBz[9 Ϙ_#HP)9C3#N#u1~*dNcreþW[ rt$!(KK EU@ iԭ&wwFMINٸt$wПyQx8bk>0hewh0}sB>ee0$k9Jߒrd:}CZoyB{NjL0T}U8YIu<^E:F[y[E KMR~}Ij8t('NrKw51 ?\E>jgFfJ@3jGz'.HFz;s ^G8X afVas硤H,0R7PtT`nxŜq, `tgJX~hW9\.zҏ{RW&3zYӌhy(QSD ]/-=g|F],*7O j\PU-iXP`60uG$Jo\.OOaaR;}+1s`Fma"'C 'ȝDB;9947brf|^ Eף ~2nDn3[ڻ^H1B[xP$gX?r ]Y`_P>l0@ꞶfaCx/߿LZm.jʭFu%V Ƣ{1_] ]xӯN3Bv^Sl}gb<;-vq+WD x3vCuh/s ۍVqP{(~ E(CuREUͻ6Od#"vR \Vn>u [1 ĩem>c1BrY\w~K'ΙXqn"a%~OkF ^s 5N 2Mt6 /yQD$DYg0wFwέ%(jVYL?2V3G1LŤGDuaLrCe Ʉ2)2jthXͯV*bi-IB6`s!s<+CاONIpm:%t "ȴCg!Pytq+7psbgkpNo 6 VzgDCH&xc.0,Vb[X2S)mhk =R4yJfs]{alUrOaiڡGus 4yܘE=HL \V'ȅop7B:ڰN< DhC}NW`k%q:3NGq3ubB|P/s#)>yr!SuKIHt]U rI%5$l %<9))%u&E>h>0` ^4tiJar F&( b2 D5{ $H ۅ$Dw [!}Bܿ?Ld GNXK HBr|n(A ?cJ辀]M h3qh\k2 "b`}gx8{3_Ue +-GXP(5v ѽS>|WB-+?cH~`%H8i4<"yOoĿ?հcV;CdX䏋~ΩX6շm}j#NiU>->.x('-kU=1uS{v#yIzŌ&)O/&-<Lw5 DtU@VAb-s+mjпЗ~;0yJ~{n" W]!>@7uLN 1F&nBb^fyx1p!zzCAw(Msj%MKP@Y5 3DV(umM b3 X6c-*4I6'%*l;#SS&W:3q`nɂTX ])*d 6!̽Wlþ$b6?C^Fj486օd-}[Se<o*\&c\uU)@CCs.$Lcz2,w=spσBے5S,0 w4A8R.!%xV$MjT7LhISq6WS66~ZIK_my DA霧E Ɛ6<)?^SM:P}"??"d ҝLGڨdF-CjNsN]L~b[WKt[`ocgaUfܩvNާDO?;kҀcRwv ހÈձs(AGq6RWgb֓Ί]'yM/1tyakEkEsKw$Mgs-+d+L>|"z pz^*v2ۡbWۆi|@Y=mCGp~q 0.vm7C{D~.wt_gPCb`w=\+3VXv JD% n]n~Μ{DbMnp[4S>Nx*f;< x#M9V`2Ǟg."((Qk~h\>$?{(&L\) O=6s<>|tsC2j$8ZHIVLov+i$Uڜ(l-p9b|' H#%&@ZPEΗeӻH|emVD86P+qy_UYu1yqsMDVH\UFuqyofPN|dz+. ^hU7uQŶ"nre 8T=n<ȨWu/OBɖ-̠_7﫰<e+MXt{e6X/f;s8W۫)>^0tUJ  yVA3[ؾoRV("z|[R^qNReb3q x]|W7']K B R HhoN\*xgs:hR3)j|2ͫuW ݈HY>"{LJiW;n"=M_s l踇sqg  *;)<=ӣCC0A~ #@A3-O,p1&X[N 7apc)uF9C{gsa܏AE萳 w?9H8*;PsZ;enUFRTu~1>*u>XGI?U~YQN05@}@.jUgw%-}@BBP3Q )/W2 Pdeϓ*4[@Zں=-/GêIφ=  [aPAwCfMar|vYb6/#riDR~bY/́eTqd}! @Ubffz:KZ Su ^AiaYpɥBy}EX,WZoQRG~IdG<]̊W#B֬ܺvwz;n1v\]쐭k5A3;A5{kr x0"!*I&@PO:w*qD"C7PD xaՁ((ö́=RGQp݆@uGdRYzlxO_C.>_"*N.y m#p0PG &kLq*/|\R`DT9f?쐊%ٓ&20vDěY+uPkj#`?<溾d# <1v|eΫsm!^k՟+Qڧ˂n[oI ]Eg $XlZ찰"z؆KLg>OKFxP6j( EUMѨAReS)C#(]Iu RW,wLZ$ 5LZ>eNNIEI`A>6\+ć,L*? t\ Y} u6ր 08*ZO 4Vp,%큳bjP@ *2~VGqV`90I:Gh= *ʲaџA.9;ݭfk BQuvE7=ʷ vӺPȍ7V+ѴMoBS1K+7( U‡dR:㖐Ơޯ{>̢TeoqE&NpK~8t oN+TPX X ڵ^B\Μ%Jә%iZknzQϜڰWT5┫4Fɶ]5~Sf)øZX,W0S6aLWE>2{m"C&_N'S)B3_> zl0>+f13Z 7= Xe`4g5>KZof ("DovIߴLG>A"{o, f+53V?g7:j #hW۝۝/O2W~\}KP!P0 !KT)kmRڙ i] /hRĻM8.՝S˔X8ᔭwKG![;:^p`AT([g^L>1 %tGCIIR"QLsWD=I3] БdB+ZJ(*@FtOH]j )=o%.\pe58(Fr`xc=켗9Oc$wQ2yؼށ*;,}K?FkE_Y~_7᪷"ż[8]}}綂$׍n9:f[QL%R`]**h$G98\%GGq֖t!\u":~~=0˙ 9QvKls Ѷh X6T46%]?/3ީIc vY1"9RCZWE2US+MM,Mmsbw U-\jucɚT41R088.TELQKR1/iФt {Obj2ߨ<#Ui%r GUxV&yrw.٘I{˵=J̰Sq-]]Xu3gtJNX]* H"Otg58#"9fF೙X#O k֙ r6PF4|gt^ga5$kXTt%|(O[V0՞Ҫ K>@-41XfW ITk6oVLv`X:Tf3`"\ۜ0ZYeдa#̆!>l35/[F|TӺ®bF1#f@b: 嗰[0+`#y99 XN w$+DtL| Ɖ4-Ϊ)Q-;h|!0zXltMRtd) bb͓K7SIGfw ~W @Jl{!g67zX}ܚ86A&qFbҐX 0glw Da|W^u[kH!$F^(1cW`=.^> ̱`oݺiL;xҗIhy$}m|}m)Ii/Tk+͙v6J%kܴfW)]^LS+,.Tf)zF iximKa#IQLl{Ks6 0>g A2{0hv: S'kߓ\g enķN*i jwRXh6?Fx&NاG~-XBv߭g\V> ah}[H7i'AArr Jgb'ϒ?tѵP+[HVkX'$-&`m1P@U9lc9S< 9[ͺJVS#t,+d'#a13PS0(BnRp]&$i7HBˆ)PfNwk35TApsHNAH!'.,9nq>KO$ jvw7#dkMG!߰ 6͓`3g X~yIl):V4Ø1Ds\L(9 ^ (À7}[-ه8](^SDX:1COs0jIhd%.+ /㩾]GӖZ}/ N8~}) 0unMJ4wM] +SN<4>{zCκqͷ޷[;C4w*}42G㑹+EPzS;/tB;r%#؜Eus!hYwN4Dr(-P0wL&T[ƫQv_$Ml4 ާT9Y_I~joDi}O!f޺ښToO7hވc툥֧^:[ؗ Fr@KQc](g9: J^|F:ITNM\n~LlZ ]R/v_;R$XHP .[ag&AȐʐut6H㘴YrV]sAu>m¦Fy|S@1y0OkQJD<AUp`fqԥB~$ec f3!KjHjtOuI`e밃 ڵjReD.Oj(*td&̮@P@9GsTA\ycf17B?:caE@S;փqBŁ=W\5Xٔ'1!1Ֆa`'_gɟtT_2lM~¿> nUc_F[tpj~:t(Q(KkMG~ }`RLN:FM9$JpnQO)й_S§POw!-GTrb9 TK*XFax.& ePdӸM(ݿ憸h>T>h~#vZw= ӶԐHJO"> B"{̅eA>%<>z caHg9+g>h-`2 %+_4Y2blnώ" "#3BdRg^~#9 E!gLsȼe6~F@$\;>t9so }|+ OGOClV_P>AKӫYci>g7MPYq1*©|=U*z )f8UnB+ecŐ&`zӟ^~DלAՏ:*Wøj]J_Y<o80Uy( "sdp:¶&˭ H'.b_hoCH)u,ΉsM4ӵbvVtHtB; U0$?j M;N(I~u@U!;bY"lØ̑4\Vp6Ƕ1E5'^cVW[z8mUx87 3>BxHr&׾TKZpy) D1ܓ{Y~[< OWX[CP ^6no&VmƊ%R"( b%ũ7ۓhxyEzml>iB2;Jg]UŋH*+<ʣ(΁O2"_ ?TiO*Fdc-Ĕ{iS:a2Na^9yUD} KI @om ! i1v;n{HMtmPO8U7[S & "+S]>ʇU|-y lwkq17ЇE8f ß-y}EjLd~S佘y9!Gi˝ kXfŵ9Q9 9#-`_GH8,D=99?0ӎin'5;$~R =Qt@8 U&鋇'/_ٹ Orꩧ-3=P{kwV km$Ǿ#mWnv@W5efS"ie@7 R|4QY f!g9*u,yų\$}J&n$~h@t]CL}`0f}BFڬLŪ.>6h0m6]UǽpkSa_dؿ̈́xԔxǷІrXJ:f Z##-~?Bܲp"s[><$ᨶYFybȓYCPSw湼$M:xе>>rc(0EROa9a/LW*_VKpsM.fW^1GTvEA,T@N0"HaPlF nvuYfi]T ًW7=oRwövߨY$QIuM?bʹRK:8AxGQ K;ѾaoɇNts0'G9]:UxOUC7sAD&t^E:ysYF`wT(r:ɡبAkaεb99Ŵ:שwtjU=IWB@U7A5]-x $-~t \_IJ4<;eԚv#V0t"k0IR3 9;+w\ί>UFc֛!⵿T^kc#VS]v3ԙZc"o,Lǣ J$tkN) - q1=J6r-e.pmZ3#ȱmfL^? lF , JxD13 C!Y 5m5K@Y@tgPԞ .k "|HxՍ_7FDl4I(nɰA; xϰ9A'ok_鿢- 9w$&|L<ˑZ %R{ynAx?hO߾fb.`YL,yyIj)vFN5<%?jXm&et9qA6FCVA"qw׻]kmn6>dqF ~DVBx&)6 O>c2imsI?JBQy?<*^2&eS"vJY't\R)jƝ8n]VφG1;/ˆE9*_l)oalyWcwS'VʩLBZ'w-c36X34nV-֜cHCF8|W/OXd>)"N7V &|QE:6sѡȤה2e0ud3|*DW֜I& +pȅ6s4~8  S5DH(赝Y{cAsEIf jBy/s0d;5ڝCPCP9*S"H\Ϸy6;yV 딍_ _O^KS5${@&9HJ7/O5b3Ed1wa4GNŏDA_IGhCDQ^]fWο-w髼F/~*ʃ|<DjA%oIvxl ~Repo/ʻ1 tD{\y8d<tP!5r5)qԺ(7!vGv>8<Ꞻ/%^W&Cb24/pQoIBNmC4#Q`Y͇i00|$f)L)56aP]9幸sSɮ4CO {a~2*DX)a?1]_,}*epeKwKoKgK_p{е/Kx,ecYыe`YeJJJJ+_챢*_譢*wS){)oR:\kzW+s4W7ULo&vܔ$|<uSYeZR+f=qԶ_fh3DEXF]ajW1S09$Aavb Ε gǬ.lRu˅%qg9LHIՉ+V껓A՞ajA?^mKnHIFiz=Ҟ88gSXXNFG`uը] <i"&?Ins ښQt’\^ o.Rad1{iMS79F;ZMp95<== elUgmFS47fM*xYBẫj`}`W`D8;W-!][uls Sv&ܽ'ÃώO_5IE.cIRvjLكo)k|"|1? <>%6X =ǰ1`1UlI9PB6 C8mo^aʞVѺM uYk GK̃aۄʤsWOpFyLIד92n|ͬ\n*=Jr>0P{],#=:7O'٨ GFh:HcmV*'[lfY4m _-f(zM{G=^火\_H]8mvr.˙পYPntV|5JEn%<vwA'xOE v*%&>pj芍BnxBD@-}~/ ǾEj1MzgA/pB8ЊyD xI w(0kJ~`TethH` zf|6sh7^=gON6=E?HpV%hۛN Oz>.f4uߡ}5LGVoajrtK $'}.nyeEc% Mæ͞Xүo+V@h.b6=1ASdtWW(FXEU?6w{(^_ >0y qsSE"`96ӳO6#YOm:I) 3—=K}L'W<#k5|Scex$8R )[@"MIQHz}sWJswҚL 6Mv#}9#D/w: S G0O*0,p/?OGOIIOgכ ?F4$_ /XQWŘDz&k%w^َ,Qj̕-zđ_C%HaĜo5,&\Y >OG8(?38h>"Qa=ar7-}|d}ua_ίpG dzlhj:Zy|᭧Ws}E{{=S-t9XjNYY!AtB=@E\ٓ'i1wQG(u0Wq0B 3°z\9`u4%ʱVPTq4VC0bFO&t)wzwiNG^%-;4pP8=j.rW6EAt$oO 80hI. 6b'<9" I,؈b +fHL_iVVI;sI ~tMUr cs%GۼWc+q~Xh nct⧳M^>1WNܘ+cn2U* m= !X?WXfy4sa.]kYof 3VQNBL4}G#2h5IkhN5 j6cPQ$ M bgClvAY+\ږD3IO@Y09I6jh"=g߶Q =elht-6汔;$ܱv%۩XJ~mSbISFq|Qݥ?͛m!7 /Y(BP*K?L0o$-z5*¢gsč0rNOr>0 dxٷJAef$\^&/'.tCvS18sKmu|dUP.7`*HTT&(,|]PD3䞟tQBF.VR|/ˈjotȬsg}Lo;:ͷ 9-.jWj{t\(z@D̑*5bprjqU6Ur0q O ]Ég!UUiC -|b-dIag  ߦ"%FG92h"`Jlϝڜ]]TY =0~}vmj>ӹ'*S\JX~8Q=UU.JԞ27@vMAգչne\ʷt8mja]fRZtI2*I}.E SQ囁`3J’2njR'`p~Aąbe Jk“lֶ`oo4Vg(RPPv^'D!-7R]@xJh›WCv`+5cUiU}M JԒuI~SLqG0G3cJuɥ,+@3eaُ{/OaoWOQ}:98=|]|,tO_WiZߪ~@x~]2Oً Wǧǽ?wev^=E1ǖh]fm#ݤWk0S`Xa0Ŏ ެhi}hUmHuLGvO4<`/}a'%7MQ 'gR4C;H C$wXfG?$ fNSv~A?N7P]BpRӛK-s18+Wi[]o~iPJӸEyEv nd2MQn"\0^SJ_n$HDO7t##IӀx2%yb@?|h`.54C!:Z9M[6,;זϼڶ[#ɮ &/l = T?N:=j"Yu:OX9!?I7D:뫯 Ak vJ>XxhT7 .m:Z)qvײ35ܻ<pj Bykҝ׉ƏoL'|DJhk8'sEaٝ|>N&ŻT%S Clx6* CZMFSsnxǜ}>qhGgDIJJ7iIc3laDQYd͟ӫWDò&fK h|@龸[²"ͷ⊸lyǎ|Yrz$TW[$)XXan6e©nWe>}6)$ _i^yl }-ў'4dZ8iLGCup4a.6aLi횩P'D]0zj.0/wٌ ss92]070jENwuI_C_SPw'~$T=NI_E{O&I>$ॽN>R455S'V%Yk<8>tF3Kz /U2C;V۝Q>p5vK4߷ÿ ]Q6ۥ˃{?h;ۃ3]nMYo2"++ՊcT\kMt/Pm)X 0"}Jz N/fw3TNëPrF[(+qP%C8lQ9\Uњl,WֽR 5N(x>kQo2KChUMT$R@ 0c ,!vjֺdtW+_Go%_j}&Sr6BZd*,:b2)%.YEʧ7-AB=: g~0o/bdNPC[c_^nmՓ@ae'D&^ _Lys2- x C`LSh哧x.lkNkXURkwY3P'48bV9|~0P.Q! Ph1geBvQKeeu -Ɗ|[H a/cDkaWǫoO xOAet|gqafEd[cuҌ{σ AB]RAPI;q-9#Vk4nMrǀ $tJK>F̠Pn_o6 .%ml] ^ YgK4|Ȭ#r-Ӕ,<,nhlm`GQ6>o}/>'b@qD&9h01٩ [ FP[tmҜl!FXle ?S0M}2<"'CN8LWR|37 ҆D׋ҭk9ȃn~d0!fhdGQD GIFPtc~cu+;liӉlfګJqPLbJTs[͙S2 RD3u0)y=jзK[ WW%t.m[HN[udʹR":a0FKY?3iZ:bQZY}n{jѯ7;9dBimvf9GNgJCDAErxB 5y )lN\f֑&a:ةk(Xʵ-^zHl*|`ΙX\jWz[r^ԠDW#Y(FՋ:x"NSk^Cˏ " ș~qM -l8 m\*=r?*˗"؇3 )' 4=я;J! \TP':53bQ"S,1$^@.=w~/ʓv rK뽅{G b>r;jr*Q $ј$ysjn3ܶ:뢍vX[.wE*bEE'1m.)D S-y*:Gf)BMVFXƸR.yc,920V_ʾX{695Ky5.][\.RoiK,n w_K+ZLJ(9sfYIM*-ZIH)bZ-/NZ/ ]5cZ 9ㄌC'~ NJg< t&Ɗ+O l"S>C ^#;?P"2x(8zA/V&QYIy?GB~ _qm͑edAQ݊WGlK,KYֶmu&rѓtw}̴_78^3D k|bָÃw7XӅBP \0eSԮ O IWg5> p!{)b7ڃ93 =lI5$qzO#^w`>p>|:_m{פB mWIᄷt8\J,`k Ct8{vSXZIB4Bksv{A!v QQݠw2;"Ѐ&ojZtRK[?ڈ8F nk?4Ý6//ö/l}g-E΃ϕs3L]zVW =F'V^(=:tj.Hw^"r ;0mJ\7%iX:~J6T+Ѽl+(UHC M][(vXh3p{A bx>P ,!8(슁ט'e~G.\ 7xӷ/}.YڟܰcAeRX X,{{~Btuw GIVM_ 2wvN"q)&J$-BS>DV d flCplF\pm)5|sXot/O ay/K()RTe}] *i{"$Df)R}.]%`,ٛ6X]rəz3R`B}T|Fl8)]e>-=0GiGQZgPGȧb^*P_'jz^1j2hW7=lkn.\C٠ Hs4n>hQLDf6%Poh׮_ ?H v1"(zfdN[oV["!hWO2[&a>WLy~9H?}!-)I7s $.*=:kn;jƃc/HLÍ"!2-nփuUX6H(=\ tK(>̩ԇUUϝ/. f$Dl3n6o;t,Vckt4STun< B)WJh_ :s_@JS#]/8+Ƴ xBq2fa1!{҉_{1N/%6‘kgzɃzx4}\I[L\,Ǫ+W!MSZ*xFK0*VqSǍf;oї)"s2p9ňh @?u, WA^0rD[䈼"U@Mg\nLÊ))9n;Mu6!T4]5@;9fPq͞5lqv5($XUɜF޳6_2nL~ Tt5r]dzU.Zk(2JqĜqL|N"N6s[ Xx;moцs"2AQ> Y|2h[T>ZIQ [܂v~ᑵRzϛMpM[- XS},na.0k^"LXy98-TZ Lr8#W zۦ+7 63f 6ZhjZllZ tpR VO '\9/O eHM`Ey!pPjD"))սZr؊n,5+)?/ d l1 2K&1 ˚[gnX!RVպ :NŒǻ #9 *GU2#?K穳X1Kc,_c9I'^w\3Fd,p7q;&#Qc˳/^o{)wbl lp"[g7eҷ8&yt!qJf(r j?Y& }:Ç(v:\dO0Ez®D`ܶa\8ֈ B5has+_}Xg41~͏厨uS/3Sw_3eZϥeX9nj`];d}16b2 j}lB4}Mydm;zzD2QS>I 5+&䦮9N1@蚔n>d7&G{n:M/۾Intn\Ŕlh\pM6=Z v/VsL# bD9Uz#5:GKj3Kj=M=oRݱӫh)\',2T֤+'qQ2H`XLCۿ",:WYבD;073WziodӁ )Ӻ Q Ѭ"JUuJJ{)pE|ź f#JXh* 'ވq5qpk;WsVs֒T*j[_j:Co58 a 0,Gpsmڐ|r$E< !5הMBfVӒ1%1irou1/K3Jla"ָ4ii2MhK^jQUࡨ>^z4A\V#=rqsjbhN͕&$lGI98]a5屹 GvQNʊ·e%4P݇Ճ5Co( Ļ <jt+v1n#Bm'&hu_EC?x.eȸ7y.LL f]OQوƊ?:}D2˼hR wN Pr9Bpc(afWyAS~xg!y{GO慔9[ a*_](jVȿOŌErP$=2/-VdBEPŘ=G*/U)<|pRZ}*(sxT?#@\Я7OkuFlo(W/G=Qa4nL?'#V8&ctYB}B@G)ab7n{j CZ *l3].puW^}?1&d[eH@dE ޟ#U6:3G6t%4jQ"G #\00XÓҫu6(E]Fv?^WÌ%fc1DaA,;@;.<Bry4 ATf;Z6V=ns s/h!6Lj ;I6*P퍥'ItspWCByy ^ŜɽNJNYhrۿx0z1!]41XAev̇Dr^1 65'Ͽfr 5\ :^!(6R,uωpic ?KϥRfb0ikC{ۚ˦ņ&ЀH8r@[Djh/b6$V~ w נHhC+}8.Jҷ/\:!NoPTq"^^P=!ք9LpM^⇪(I7i'Yw-vQ9{A͘mvU?,㲫G%H2[ID?ۨ0֯fS^bp ݵD;am_h01/.njUWk{tRsy긵9MAkit,hB95'eTgvH x'XCK ^ .\ϨwUGV'RSyq/fgv).&)YFt辽Nգ]&k[͋DZR 'V9,¸Tݍ C`$ ͶGuu.J=H> YH6BDC!SZŴUUgo)u5A|,qgbLLkkX0`xcXpy zX\qN&tNmZ)!JprL(vT |)oWislԒ6_̜hO'&zS%/gf|.W(%"\2>S )qjɶX8R3> Eҝ>B8jZ,m~~t߹k6P8H5xZ ձhCРbL@Aœ;C$eb~ۦ@bp yB L|H'Td>#v)i<_Ib2~PißԢ3fפ0DiZ-tG\@`LHk[~~>sj \rqu'Qxp-?%怂a7Ξj. ݄X-(Li3%j) ܻFq9tit+rP[8YR ޾l8݅1^"xNki qY<*IidCRx]=3gE^8LTדQqˉ]\anFA'YXJcҺcLBCUHv]1WN2#Y}"P /v2\BEb#^DIQFU !uI(^fƎ*SQ Gz ɟ>vq&#ck4NvB,%W~_HF%INC? Ѭ=\ڌEZcx*.ǂel2ON?o>Yfb:jN rkj)n/+qo@3 ͵, \@j3SBd "T@$ ~?N.q_ܷ|JGhSN4ʼɸ״ȇإXTә 'xrt=,qzɓ}ddavBVq wdxY€e۵)c!iK @4 [;Ɏ2,XT}nJkCS1b%uptzwxIR#ܥd(TS› uwI'yL.D0҂8[\nlp?^47di [-8 *" CpBL~zD^s" ra,aC oyڙ%7o4r+M=ff\įw;UD_v((PNItlɣqɊY9y:FK` ?#À@\J=g}IB8{IsJs,V߫BͯN{ZOI[[sd9q"Y 0_XHj[wӓg/k$!shQ D+ENH"61<{^E]dT~v=XdN3*wjY-&qn:s[=oK-6Cna ̑x5ݜl/Hdp0St*;H(0#KʖiZR }j_n;@ۀ3lv4Hb vڃ@ ON=-sޡ"L G^D!JA&N^Y"|zqě0KBG<_>d0og_S闻z] +*BH_"<oVTU#_ >9:E/FZd68m  ;6^R:68U\ADt' M%7Ipl )z.㘯GL- _5EtZ .I5aR>MKA`;Ǧo&"U̗?%ay|R'ɐ1 xh@Ж'7qaWs2s_ w4}F(4 =|8Y̙yZ`>%xEݥČpɺM$b:*f4/tQ\%r Wtd/l0Icwh#,ӽM臜QbDdLXiDF!9"< `8 <ɦulњZ턢2SKF|q'ya:o$Nh~?J-YScZgƅ?;8Bqm臃gv,v}-O { zcs-xg:eG˽C1pj܆GbS. Da1<{?.orsdxɽ{ ?/ "(libextractor-1.3/src/plugins/testdata/xm_diesel.xm0000644000175000017500000201204012016742766017412 00000000000000Extended Module: diesel FastTracker v2.00 %%  !"#$ R := := ::= := ::= := ::= := ::= := ::= := ::= := ::= := : " := ) . :A= :" := ) . :A= :" := ) . :A= :" := ) <0 ?:A= ?:" 6= ) * 6A= 6" 6= ) * 6A= 6" 6= ) * 6A= 6" 6= ) <) ?6A= ?6 " := ) . :A= :" := ) . :A= :" := ) . :A= :" := ) <0 ?:A= ?:" 6= ) * 6A= 6" 6= ) * 6A= 6" 6= = = ) = * 6A= 6= " 6= = ) <= ) ?6A= = ?6= " := = ) = . := A= := " := ) = . := A= := " := ) = . := A= := " := ) <= 0 ?:= A= ?:= " 6= ) = * 6= A= 6= " 6= ) = * 6= A= 6= " 6= ) = * 6= A= 6= " 6= ) <= ) ?6= A= ?6= , " := ) = . := A= := " := ) = . := A= := " := ) = . := A= := " := ) <= 0 ?:= A= ?:= " 6= ) = * 6= A= 6= " 6= ) = * 6= A= 6= " 6= AA) = A* 6= A"A= A%A*6= A,A." 6= A2A5) <= A7) ?6= A9A= A:?A<6= A>AD " := == =) = =. := =%A= =A =:= ==%" := ==) = =. := =%A= =A =:= ==%" := ==) = =. := =%A= =A =:= ==%" := ==) <= =0 ?:= =%A= =A ?=:= ==%" 6= ==) = =* 6= =%A= =A =6= ==%" 6= ==) = =* 6= =%A= =A =6= ==%" 6= ==) = =* 6= =%A= =A =6= ==%" 6= ==) <= =) ?6= =%A= =A ?=6= ==% " := ==) = =. := =%A= =A =:= ==%" := ==) = =. := =%A= =A =:= ==%" := ==) = =. := =%A= =A =:= ==%" := ==) <= =0 ?:= =%A= =A ?=:= ==%" 6= ==) = =* 6= =%A= =A =6= ==%" 6= ==) = =* 6= =%A= =A =6= ==%" 6= =A"=A) = =A%* 6= =%AA= =A A*=A6= =A.=%A" 6= =A2=A5) <= =A7) ?6= =%A9A= =A A:?=A<6= =A>=%AD aaa= = =j<j:= 8jj6= j5 5 " .j= =j5=) :j:= =. jA= =%AAj= =A j?=:j== =j<=%" <j= =j:=) :j8= =. j5= =%Aj= =A =:= ==%" .= =j5=) :j:= =. jA= =%AAj= =A j?=:j== =j<=%" <j= =j:=) <:j<= =0 ?jA= =%Aj= =A ?=:= ==%" .= =j5=) 6j:= =* jA= =%AAj= =A j?=6j== =j<=%" <j= =j:=) 6j8= =* j5= =%Aj= =A =6= ==%" .= =j5=) 6j:= =* jA= =%AAj= =A j?=6j== =j<=%" :j= =j=) <6== =) ?j<= =%Aj:= =A ?8j=6j6= =j5=% e " .j= =j5=) :j:= =. jA= =%AAj= =A j?=:j== =j<=%" <j= =j:=) :j8= =. j5= =%Aj= =A =:= ==%" .= =j5=) :j:= =. jA= =%AAj= =A j?=:j== =j<=%" <j= =j:=) <:j<= =0 ?jA= =%Aj= =A ?=:= ==%" .= =j5=) 6j:= =* jA= =%AAj= =A j?=6j== =j<=%" <j= =j:=) 6j8= =* j5= =%Aj= =A =6= ==%" .= =A"j5=A) 6j:= =A%* jA= =%AAAj= =A A*j?=A6j== =A.j<=%A" :j= = =A2j=A5) <6I= =A7) ?jH= =%A9AjF=A A:?Dj=A<6jB= =A>jA=%AD : ." .j= == A .j5=F .) :j:= =M .. jA= =%M .AAj= =A K .j?=I .:j== =H .j<=%H ." <j= =F .j:=D .) :j8= =A .. j5= =%jAj= =A j=:= ==%: ." .= =A .j5=F .) :j:= =M .. jA= =%M .AAj= =A K .j?=I .:j== =H .j<=%H ." <j= =F .j:=H .) <:j<= =M .0 ?jA= =%jAj= =A j?=:= ==%: ." .= =A .j5=F .) 6j:= =M .* jA= =%M .AAj= =A K .j?=I .6j== =H .j<=%H ." <j= =F .j:=D .) 6j8= =A .* j5= =%jAj= =A j=6= ==%: ." .= =A .j5=F .) 6j:= =M .* jA= =%M .AAj= =A K .j?=I .6j== =H .j<=%F ." :j= =jj=jI .) <6== =H .) ?j<= =%F .Aj:= =A D .?8j=B .6j6= =A .j5=% : ." .j= =A .j5=F .) :j:= =M .. jA= =%M .AAj= =A K .j?=I .:j== =H .j<=%H ." <j= =F .j:=D .) :j8= =A .. j5= =%jAj= =A j=:= ==%: ." .= =A .j5=F .) :j:= =M .. jA= =%M .AAj= =A K .j?=I .:j== =H .j<=%H ." <j= =F .j:=H .) <:j<= =M .0 ?jA= =%jAj= =A j?=:= ==%: ." .= =A .j5=F .) 6j:= =M .* jA= =%M .AAj= =A K .j?=I .6j== =H .j<=%H ." <j= =F .j:=D .) 6j8= =A .* j5= =%jAj= =A j=6= ==%: ." .= =A .j5=F .) 6j:= =M .* jA= =%M .AAj= =A K .j?=I .6j== =H .j<=%F ." :j= =jj=jI .) <6== =H .) ?j<= =%F .Aj:= =A D .?8j=B .6j6= =A .j5=% NA: ." .j= =>A*A .j5=>*F .) :j:= =>*M .. jA= =%H*M .AAj= =A FH*K .j?=AF*I .:j== =A*H .j<=%H ." <j= =>F .j:=>*D .) :j8= =>*A .. j5= =%H*jAj= =A FH*j=AF*:= =A*=%: ." .= =>A .j5=>*F .) :j:= =>*M .. jA= =%H*M .AAj= =A FH*K .j?=AF*I .:j== =A*H .j<=%H ." <j= =>F .j:=>*H .) <:j<= =>*M .0 ?jA= =%H*jAj= =A FH*j?=AF*:= =A*=%: ." .= =>A .j5=>*F .) 6j:= =>*M .* jA= =%H*M .AAj= =A FH*K .j?=AF*I .6j== =A*H .j<=%H ." <j= =>F .j:=>*D .) 6j8= =>*A .* j5= =%H*jAj= =A FH*j=AF*6= =A*=%: ." .= =>A .j5=>*F .) 6j:= =>*M .* jA= =%H*M .AAj= =A FH*K .j?=AF*I .6j== =A*H .j<=%F ." :j= =>jj=>*jI .) <6== =>*H .) ?j<= =%H*F .Aj:= =A FH*D .?8j=AF*B .6j6= =A*A .j5=% 1A: ." .j= =>A*A .j5=>*F .) :j:= =>*M .. jA= =%H*M .AAj= =A FH*K .j?=AF*I .:j== =A*H .j<=%H ." <j= =>F .j:=>*D .) :j8= =>*A .. j5= =%H*jAj= =A FH*j=AF*:= =A*=%: ." .= =>A .j5=>*F .) :j:= =>*M .. jA= =%H*M .AAj= =A FH*K .j?=AF*I .:j== =A*H .j<=%H ." <j= =>F .j:=>*H .) <:j<= =>*M .0 ?jA= =%H*jAj= =A FH*j?=AF*:= =A*=%: ." .== =>A .j5==>*F .) 6j:== =>*M .* jA== =%H*M .AAj== =A FH*K .j?==AF*I .6j=="= =A*H .j<=%=%H ." <j=(= =>F .j:=*=>*D .) 6oj8=,= =o>*A .* ooj5=.= =%oH*jAooj=2= =A oFH*ojoo=5=ooAF*oo6o=7= =oA*o=:=%" =>= == >=>*1) 6= =>*a* = =%H*A=A FH*=AF*16= =A*a=%" =>=>*1) <6= =>*a) ?= =%H*A=A FH*?=IF*16= =I*a=% A4: ." .j.= =>A*A .j5P=>*5F .) :j::= =>*aM .. jAa= =%H*M .AAj= =A FH*K .j?=AF*5 I .:j=:= =A*aH .j<a=%H ." <j= =>F .j:=>*5 @D .) :j8:= =>*aA .. j5a= =%H*jAj= =A FH*j=AF*5 `::= =A*aa=%: ." .= =>A .j5=>*5 pF .) :j::= =>*aM .. jAa= =%H*M .AAj= =A FH*K .j?=AF*5 I .:j=:= =A*aH .j<a=%H ." <j= =>F .j:=>*5 H .) <:j<:= =>*M .0 ?jAa= =%H*4 jAj.= =A FH*j?P=AF*5 :5= =A*aa=%0 : ." .*= =>A .j5P=>*1 F .) 6j:6= =>*aM .* jAa= =%H*M .AAj= =A FH*K .j?=AF*1 I .6j=6= =A*aH .j<a=%H ." <j= =>F .j:=>*1 pD .) 6j86= =>*aA .* j5a= =%H*jAj= =A FH*j=AF*1 `66= =A*aa=%: ." .= =>A .j5=>*1 @F .) 6j:6= =>*aM .* jAa= =%H*M .AAj= =A FH*K .j?=AF*1 I .6j=6= =A*aH .j<a=%F ." :j= =>jj=>*1 jI .) <6=6= =>*aH .) ?j<a= =%H*F .Aj:*= =A FH*D .?8jP=AF*1B .6j65= =A*aA .j5a=% A4: ." .j.= =>A*A .j5P=>*5F .) :j::= =>*aM .. jAa= =%H*M .AAj= =A FH*K .j?=AF*5 I .:j=:= =A*aH .j<a=%H ." <j= =>F .j:=>*5 @D .) :j8:= =>*aA .. j5a= =%H*jAj= =A FH*j=AF*5 `::= =A*aa=%: ." .= =>A .j5=>*5 pF .) :j::= =>*aM .. jAa= =%H*M .AAj= =A FH*K .j?=AF*5 I .:j=:= =A*aH .j<a=%H ." <j= =>F .j:=>*5 H .) <:j<:= =>*M .0 ?jAa= =%H*4 jAj.= =A FH*j?P=AF*5 :5= =A*aa=%0 : ." .*= =>A .j5P=>*1 F .) 6j:6= =>*aM .* jAa= =%H*M .AAj= =A FH*K .j?=AF*1 I .6j=6= =A*aH .j<a=%H ." <j= =>F .j:=>*1 pD .) 6j86= =>*aA .* j5a= =%H*jAj= =A FH*j=AF*1 `66= =A*aa=%: ." .= =>A .j5=>*1 @F .) 6j:6= =>*aM .* jAa= =%H*M .AAj= =A FH*K .j?=AF*1 I .6j=6= =A*aH .j<a=%F ." :j= =>jj=>*1 jI .) <6=6= =>*aH .) ?j<a= =%H*F .Aj:*= =A FH*D .?8jP=AF*1B .6j65= =A*aA .j5a=% A4: ." .j.= =>A*A .j5P=>*5F .) :j::= =>*aM .. jAa= =%H*M .AAj= =A FH*K .j?=AF*5 I .:j=:= =A*aH .j<a=%H ." <j= =>F .j:=>*5 @D .) :j8:= =>*aA .. j5a= =%H*jAj= =A FH*j=AF*5 `::= =A*aa=%: ." .= =>A .j5=>*5 pF .) :j::= =>*aM .. jAa= =%H*M .AAj= =A FH*K .j?=AF*5 I .:j=:= =A*aH .j<a=%H ." <j= =>F .j:=>*5 H .) <:j<:= =>*M .0 ?jAa= =%H*4 jAj.= =A FH*j?P=AF*5 :5= =A*aa=%0 : ." .*= =>A .j5P=>*1 F .) 6j:6= =>*aM .* jAa= =%H*M .AAj= =A FH*K .j?=AF*1 I .6j=6= =A*aH .j<a=%H ." <j= =>F .j:=>*1 pD .) 6j86= =>*aA .* j5a= =%H*jAj= =A FH*j=AF*1 `66= =A*aa=%: ." .= =>A .j5=>*1 @F .) 6j:6= =>*aM .* jAa= =%H*M .AAj= =A FH*K .j?=AF*1 I .6j=6= =A*aH .j<a=%F ." :j= =>jj=>*1 jI .) <6=6= =>*aH .) ?j<a= =%H*F .Aj:*= =A FH*D .?8jP=AF*1B .6j65= =A*aA .j5a=% A4: ." .j.= =>A*A .j5P=>*5F .) :j::= =>*aM .. jAa= =%H*M .AAj= =A FH*K .j?=AF*5 I .:j=:= =A*aH .j<a=%H ." <j= =>F .j:=>*5 @D .) :j8:= =>*aA .. j5a= =%H*jAj= =A FH*j=AF*5 `::= =A*aa=%: ." .= =>A .j5=>*5 pF .) :j::= =>*aM .. jAa= =%H*M .AAj= =A FH*K .j?=AF*5 I .:j=:= =A*aH .j<a=%H ." <j= =>F .j:=>*5 H .) <:j<:= =>*M .0 ?jAa= =%H*4 jAj.= =A FH*j?P=AF*5 :5= =A*aa=%0 : ." .*= =>A .j5P=>*1 F .) 6j:6= =>*aM .* jAa= =%H*M .AAj= =A FH*K .j?=AF*1 I .6j=6= =A*aH .j<a=%H ." <j= =>F .j:=>*1 pD .) 6j86= =>*aA .* j5a= =%H*jAj= =A FH*j=AF*1 `66= =A*aa=%: ." .= =>A .j5=>*1 @F .) 6j:6= =>*aM .* jAa= =%H*M .AAj= =A FH*K .j?=AF*1 I .a6j=6= =oA*aH .oj<a=%oooeoF ." o:j= == eoeojjjI .) =6H .) j<aF .j:*D .8jPB .j65A .j5a aa4aa" aaaa.= = P5) ::= a. a= A= A 5 ::= aa" = 5 @) ::= a. a= A= A 5 `::= aa" = 5 p) ::= a. a= A= A 5 ::= aa" = 5 ) <::= 0 ?a= 4 A.= A ?P5 :5= aa0 " *= P1 ) 66= a* a= A= A 1 66= aa" = 1 p) 66= a* a= A= A 1 `66= aa" = 1 @) 66= a* a= A= A 1 66= aa" = 1 ) <66= a) ?a= A*= A ?P165= aa 4" .= = P5) ::= a. a= A= A 5 ::= aa" = 5 @) ::= a. a= A= A 5 `::= aa" = 5 p) ::= a. a= A= A 5 ::= aa" = 5 ) <::= 0 ?a= 4 A.= A ?P5 :5= aa0 " *= P1 ) 66= a* a= A= A 1 66= aa" = 1 p) 66= a* a= A= A 1 `66= aa" = 1 @) 66= a* a= A= A 1 66= aa" = 1 ) <66= a) ?a= A*= A ?P165= aa 4" .= == P=5) :=a. a=A==5 :=aa=" ==5 @) :=a. a=A==5 `:=aa=" ==5 p) :=a. a=A==5 :=aa=" ==5 ) <:=0 ?a=4 A.=?P=5 5= aa= 0 " *= =!= P=!1 ) 6="a* a="A=#=#1 6=$aa=$" =%=%1 p) 6=&a* a=&A='='1 `6=(aa=(" =)=)1 @) 6=*a* a=*A=+=+1 6=,aa=," =-=-1 ) <6=.a) ?a=.A*=/?P=/15=0aa=0 F 4" .= =1= P=15) :=2a. a=2A=3=35 :=4aa=4" =5=55 @) :=6a. a=6A=7=75 `:=8aa=8" =9=95 p) :=:a. a=:A=;=;5 :=0 ?a=>4 A.=??P=?5 5=@aa=@0 " *= =A= P=A1 ) 6=Ba* a=BA=C=C1 6=Daa=D" =@=:1 p) 6=5a* a=2A=*=%1 `6="aa=" = 2="= = 5=%= 1 @) 6= 7=(= a* a= :=*= A= <=,= = >=.= 1 6= D=2= aa= J=5= " = L=7= =9= N=:= =;1 ) <6= =<= !==a) ?a= =>= "=A*= == #=?P= == $=15= == %=aa= == &= N aaaa= == >=>= =>= =%=== ==%==<= =?= =%A=?== ==%  AF" := == =) = =AF. := =%A= =A =AF:= ==%AF" := ==) = =AF. := =%A= =A =AF:= ==%?H" <= ==) = =?H. <= =%A= =A =?H<= ==%?H" <= ==) <= =?H0 ?<= =%A= =A ?=?H<= ==%BF" 6= ==) = =BF* 6= =%A= =A =BF6= ==%BF" 6= ==) = =BF* 6= =%A= =A =BF6= ==%AH" 5= ==) = =AH* 5= =%A= =A =AH5= ==%AH" 5= ==) <= =AH) ?5= =%A= =A ?=AH5= ==% AF" := ==) = =AF. := =%A= =A =AF:= ==%AF" := ==) = =AF. := =%A= =A =AF:= ==%?H" <= ==) = =?H. <= =%A= =A =?H<= ==%?H" <= ==) <= =?H0 ?<= =%A= =A ?=?H<= ==%BF" 6= ==) = =BF* 6= =%A= =A =BF6= ==%BF" 6= ==) = =BF* 6= =%A= =A =BF6= ==%AH" 5= ==) = =AH* 5= =%A= =A =AH5= ==%AH" 5= ==) <= =AH) ?5= =%A= =A ?=AH5= ==% AFA.F." := =aa=) = =AFA.F.. := =%aaA= =A =AFA.F.:= =aa=%AFA.F." := =aa=) = =AFA.F.. := =%aaA= =A =AFA.F.:= =aa=%?H?.H." <= =aa=) = =?H?.H.. <= =%aaA= =A =?H?.H.<= =aa=%?H?.H." <= =aa=) <= =?H?.H.0 ?<= =%aaA= =A ?=?H?.H.<= =aa=%BFB.F." 6= =aa=) = =BFB.F.* 6= =%aaA= =A =BFB.F.6= =aa=%BFB.F." 6= =aa=) = =BFB.F.* 6= =%aaA= =A =BFB.F.6= =aa=%AHA.H." 5= =aa=) = =AHA.H.* 5= =%aaA= =A =AHA.H.5= =aa=%AHA.H." 5= =aa=) <= =AHA.H.) ?5= =%aaA= =A ?=AHA.H.5= =aa=% AFA.F." := =aa=) = =AFA.F.. := =%aaA= =A =AFA.F.:= =aa=%AFA.F." := =aa=) = =AFA.F.. := =%aaA= =A =AFA.F.:= =aa=%?H?.H." <= =aa=) = =?H?.H.. <= =%aaA= =A =?H?.H.<= =aa=%?H?.H." <= =aa=) <= =?H?.H.0 ?<= =%aaA= =A ?=?H?.H.<= =aa=%BFB.F." 6= =aa=) = =BFB.F.* 6= =%aaA= =A =BFB.F.6= =aa=%BFB.F." 6= =aa=) = =BFB.F.* 6= =%aaA= =A =BFB.F.6= =aa=%AHA.H." 5=B%= == aaA%) =@%AHA.H.* 5?%aaA=>%=%AHA.H.5<%aa;%AHA.H." 5:%aa9%) <8%AHA.H.) ?57%aaA6%= ?5%AHA.H.54%= aa5% AFAFA.F." :M5= == aa.PPF5=.PP) M5= =.AFPPA.F.. :R5= =%aa.PPAM5= =A .F5=.AFPPA.F.:M5= =aa.PPR5=%.AFPPA.F." :M5= =aa.PPF5=.PP) M5= =.AFA.F.. :R5= =%aa.PPAM5= =A .PPF5=.AFPPA.F.:M5= =aa.R5=%.?H?H?.H." <K5= =aa.PPH5=.PP) K5= =.?HPP?.H.. <T5= =%aa.PPAK5= =A .H5=.?HPP?.H.<K5= =aa.PPT5=%.?HPP?.H." <K5= =aa.PPH5=.PP) <K5= =.?H?.H.0 ?<T5= =%aa.PPAK5= =A .PP?H5=.?HPP?.H.<K5= =aa.T5=%.BFBFB.F." 6N5= =aa.PPF5=.PP) N5= =.BFPPB.F.* 6R5= =%aa.PPAN5= =A .F5=.BFPPB.F.6N5= =aa.PPR5=%.BFPPB.F." 6N5= =aa.PPF5=.PP) N5= =.BFB.F.* 6R5= =%aa.PPAN5= =A .PPF5=.BFPPB.F.6N5= =aa.R5=%.AHAHA.H." 5M5= =aa.PPH5=.PP) M5= =.AHPPA.H.* 5T5= =%aa.PPAM5= =A .H5=.AHPPA.H.5M5= =aa.PPT5=%.AHPPA.H." 5M5= =aa.PPH5=.PP) <M5= =.AHA.H.) ?5T5= =%aa.PPAM5= =A .PP?H5=.AHPPA.H.5M5= =aa.T5=%. AFAFA.F." :M5= =aa.PPF5=.PP) M5= =.AFPPA.F.. :R5= =%aa.PPAM5= =A .F5=.AFPPA.F.:M5= =aa.PPR5=%.AFPPA.F." :M5= =aa.PPF5=.PP) M5= =.AFA.F.. :R5= =%aa.PPAM5= =A .PPF5=.AFPPA.F.:M5= =aa.R5=%.?H?H?.H." <K5= =aa.PPH5=.PP) K5= =.?HPP?.H.. <T5= =%aa.PPAK5= =A .H5=.?HPP?.H.<K5= =aa.PPT5=%.?HPP?.H." <K5= =aa.PPH5=.PP) <K5= =.?H?.H.0 ?<T5= =%aa.PPAK5= =A .PP?H5=.?HPP?.H.<K5= =aa.T5=%.BFBFB.F." 6N5= =aa.PPF5=.PP) N5= =.BFPPB.F.* 6R5= =%aa.PPAN5= =A .F5=.BFPPB.F.6N5= =aa.PPR5=%.BFPPB.F." 6N5= =aa.PPF5=.PP) N5= =.BFB.F.* 6R5= =%aa.PPAN5= =A .PPF5=.BFPPB.F.6N5= =aa.R5=%.AHAHA.H." 5M5= =aa.PPH5=.PP) M5= =.AHPPA.H.* 5T5= =%aa.PPAM5= =A .H5=.AHPPA.H.5M5= =aa.PPT5=%.AHPPA.H." 5M5= =aa.PPH5=.PP) <M5= =.AHA.H.) ?5T5= =%aa.PPAM5= =A .PP?H5=.AHPPA.H.5M5= =aa.T5=%. AFAF5.:." :M5= = .PP5.:.F5.PP5.:.) M5.AFPP5.:.. :R5.PP5.:.AM5= A .F5.AFPP5.:.:M5.PP5.:.R5.AFPP5.:." :M5= .PP5.:.F5.PP5.:.) M5.AF. :R5.PP5.:.AM5= A .PP5.:.F5.AFPP5.:.:M5.R5.?H?H3.<." <K5= .PP3.<.H5.PP3.<.) K5.?HPP3.<.. <T5.PP3.<.AK5= A .H5.?HPP3.<.<K5.PP3.<.T5.?HPP3.<." <K5= .PP3.<.H5.PP3.<.) <K5.?H0 ?<T5.PP3.<.AK5= A .PP3.<.?H5.?HPP3.<.<K5.T5.BFBF6.:." 6N5= .PP6.:.F5.PP6.:.) N5.BFPP6.:.* 6R5.PP6.:.AN5= A .F5.BFPP6.:.6N5.PP6.:.R5.BFPP6.:." 6N5= .PP6.:.F5.PP6.:.) N5.BF* 6R5.PP6.:.AN5= A .PP6.:.F5.BFPP6.:.6N5.R5.AHAH5.<." 5M5= .PP5.<.H5.PP5.<.) M5.AHPP5.<.* 5T5.PP5.<.AM5= A .H5.AHPP5.<.5M5.PP5.<.T5.AHPP5.<." 5M5= .PP5.<.H5.PP5.<.) <M5.AH) ?5T5.PP5.<.AM5= A .PP5.<.?H5.AHPP5.<.5M5.T5. AFAF5.:." :M5= .PP5.:.F5.PP5.:.) M5.AFPP5.:.. :R5.PP5.:.AM5= A .F5.AFPP5.:.:M5.PP5.:.R5.AFPP5.:." :M5= .PP5.:.F5.PP5.:.) M5.AF. :R5.PP5.:.AM5= A .PP5.:.F5.AFPP5.:.:M5.R5.?H?H3.<." <K5= .PP3.<.H5.PP3.<.) K5.?HPP3.<.. <T5.PP3.<.AK5= A .H5.?HPP3.<.<K5.PP3.<.T5.?HPP3.<." <K5= .PP3.<.H5.PP3.<.) <K5.?H0 ?<T5.PP3.<.AK5= A .PP3.<.?H5.?HPP3.<.<K5.T5.BFBF6.:." 6N5= .PP6.:.F5.PP6.:.) N5.BFPP6.:.* 6R5.PP6.:.AN5= A .F5.BFPP6.:.6N5.PP6.:.R5.BFPP6.:." 6N5= .PP6.:.F5.PP6.:.) N5.BF* 6R5.PP6.:.AN5= A .PP6.:.F5.BFPP6.:.6N5.R5.AHAH5.<." 5M5= A"= .PP5.<.H5A.PP5.<.) M5A%.AHPP5.<.* 5T5A.PP5.<.AM5A*A .H5A.AHPP5.<.5M5A..PP5.<.T5A.AHPP5.<." 5M5A2.PP5.<.H5A5.PP5.<.) <M5A7.AH) ?5T5A9.PP5.<.AM5A:A .PP5.<.?H5A<.AHPP5.<.5M5A>.T5AD. dAFAF5.:." :M5= == .PP5.:.F5=.PP5.:.) M5= =.AFPP5.:.. :R5= =%.PP5.:.AM5= =A .F5=.AFPP5.:.:M5= =.PP5.:.R5=%.AFPP5.:." :M5= =.PP5.:.F5=.PP5.:.) M5= =.AF. :R5= =%.PP5.:.AM5= =A .PP5.:.F5=.AFPP5.:.:M5= =.R5=%.?H?H3.<." <K5= =.PP3.<.H5=.PP3.<.) K5= =.?HPP3.<.. <T5= =%.PP3.<.AK5= =A .H5=.?HPP3.<.<K5= =.PP3.<.T5=%.?HPP3.<." <K5= =.PP3.<.H5=.PP3.<.) <K5= =.?H0 ?<T5= =%.PP3.<.AK5= =A .PP3.<.?H5=.?HPP3.<.<K5= =.T5=%.BFBF6.:." 6N5= =.PP6.:.F5=.PP6.:.) N5= =.BFPP6.:.* 6R5= =%.PP6.:.AN5= =A .F5=.BFPP6.:.6N5= =.PP6.:.R5=%.BFPP6.:." 6N5= =.PP6.:.F5=.PP6.:.) N5= =.BF* 6R5= =%.PP6.:.AN5= =A .PP6.:.F5=.BFPP6.:.6N5= =.R5=%.AHAH5.<." 5M5= =.PP5.<.H5=.PP5.<.) M5= =.AHPP5.<.* 5T5= =%.PP5.<.AM5= =A .H5=.AHPP5.<.5M5= =.PP5.<.T5=%.AHPP5.<." 5M5= =.PP5.<.H5=.PP5.<.) <M5= =.AH) ?5T5= =%.PP5.<.AM5= =A .PP5.<.?H5=.AHPP5.<.5M5= =.T5=%. bAFAF5.:." :M5= =.PP5.:.F5=.PP5.:.) M5= =.AFPP5.:.. :R5= =%.PP5.:.AM5= =A .F5=.AFPP5.:.:M5= =.PP5.:.R5=%.AFPP5.:." :M5= =.PP5.:.F5=.PP5.:.) M5= =.AF. :R5= =%.PP5.:.AM5= =A .PP5.:.F5=.AFPP5.:.:M5= =.R5=%.?H?H3.<." <K5= =.PP3.<.H5=.PP3.<.) K5= =.?HPP3.<.. <T5= =%.PP3.<.AK5= =A .H5=.?HPP3.<.<K5= =.PP3.<.T5=%.?HPP3.<." <K5= =.PP3.<.H5=.PP3.<.) <K5= =.?H0 ?<T5= =%.PP3.<.AK5= =A .PP3.<.?H5=.?HPP3.<.<K5= =.T5=%.BFBF6.:." 6N5= =.PP6.:.F5=.PP6.:.) N5= =.BFPP6.:.* 6R5= =%.PP6.:.AN5= =A .F5=.BFPP6.:.6N5= =.PP6.:.R5=%.BFPP6.:." 6N5= =.PP6.:.F5=.PP6.:.) N5= =.BF* 6R5= =%.PP6.:.AN5= =A .PP6.:.F5=.BFPP6.:.6N5= =.R5=%.AHAH5.<." 5M5= =.PP5.<.H5=.PP5.<.) M5= =.AHPP5.<.* 5T5= =%.PP5.<.AM5= =A .H5=.AHPP5.<.5M5= =.PP5.<.T5=%.AHPP5.<." 5M5= =.PP5.<.H5=.PP5.<.) <M5= =.AH) ?5T5= =%.PP5.<.AM5= =A .PP5.<.?H5=.AHPP5.<.5M5= =.T5=%. bAFAF5.:." :M5= =.PP5.:.F5=.PP5.:.) M5= =.AFPP5.:.. :R5= =%.PP5.:.AM5= =A .F5=.AFPP5.:.:M5= =.PP5.:.R5=%.AFPP5.:." :M5= =.PP5.:.F5=.PP5.:.) M5= =.AF. :R5= =%.PP5.:.AM5= =A .PP5.:.F5=.AFPP5.:.:M5= =.R5=%.?H?H3.<." <K5= =.PP3.<.H5=.PP3.<.) K5= =.?HPP3.<.. <T5= =%.PP3.<.AK5= =A .H5=.?HPP3.<.<K5= =.PP3.<.T5=%.?HPP3.<." <K5= =.PP3.<.H5=.PP3.<.) <K5= =.?H0 ?<T5= =%.PP3.<.AK5= =A .PP3.<.?H5=.?HPP3.<.<K5= =.T5=%.BFBF6.:." 6N5= =.PP6.:.F5=.PP6.:.) N5= =.BFPP6.:.* 6R5= =%.PP6.:.AN5= =A .F5=.BFPP6.:.6N5= =.PP6.:.R5=%.BFPP6.:." 6N5= =.PP6.:.F5=.PP6.:.) N5= =.BF* 6R5= =%.PP6.:.AN5= =A .PP6.:.F5=.BFPP6.:.6N5= =.R5=%.AHAH5.<." 5M5= =.PP5.<.H5=.PP5.<.) M5= =.AHPP5.<.* 5T5= =%.PP5.<.AM5= =A .H5=.AHPP5.<.5M5= =.PP5.<.T5=%.AHPP5.<." 5M5= =.PP5.<.H5=.PP5.<.) <M5= =.AH) ?5T5= =%.PP5.<.AM5= =A .PP5.<.?H5=.AHPP5.<.5M5= =.T5=%. bAFAF5.:." :M5= =.PP5.:.F5=.PP5.:.) M5= =.AFPP5.:.. :R5= =%.PP5.:.AM5= =A .F5=.AFPP5.:.:M5= =.PP5.:.R5=%.AFPP5.:." :M5= =.PP5.:.F5=.PP5.:.) M5= =.AF. :R5= =%.PP5.:.AM5= =A .PP5.:.F5=.AFPP5.:.:M5= =.R5=%.?H?H3.<." <K5= =.PP3.<.H5=.PP3.<.) K5= =.?HPP3.<.. <T5= =%.PP3.<.AK5= =A .H5=.?HPP3.<.<K5= =.PP3.<.T5=%.?HPP3.<." <K5= =.PP3.<.H5=.PP3.<.) <K5= =.?H0 ?<T5= =%.PP3.<.AK5= =A .PP3.<.?H5=.?HPP3.<.<K5= =.T5=%.BFBF6.:." 6N5= =.PP6.:.F5=.PP6.:.) N5= =.BFPP6.:.* 6R5= =%.PP6.:.AN5= =A .F5=.BFPP6.:.6N5= =.PP6.:.R5=%.BFPP6.:." 6N5= =.PP6.:.F5=.PP6.:.) N5= =.BF* 6R5= =%.PP6.:.AN5= =A .PP6.:.F5=.BFPP6.:.6N5= =.R5=%.AHAH5.<." 5M5= =.PP5.<.H5=.PP5.<.) M5= =.AHPP5.<.* 5T5= =%.PP5.<.AM5= =A .H5=.AHPP5.<.5M5= =.PP5.<.T5=%.AHPP5.<." 5M5= =.PP5.<.H5=.PP5.<.) <M5= =.AH) ?5T5= =%.PP5.<.AM5= =A .PP5.<.?H5=.AHPP5.<.5M5= =.T5=%. |AFAF5.:." :M5.PP5.:.F5.PP5.:.) M5.AFPP5.:.. :R5.PP5.:.AM5.F5.AFPP5.:.:M5.~PP5.:.R5}.A|FPP5.:." :M5{.zPP5.:.F5y.xPP5.:.) M5w.AvF. :R5u.tPP5.:.AM5s.rPP5.:.F5q.ApFPP5.:.:M5o.nR5m.?lH?H3.<." <K5k.jPP3.<.H5i.hPP3.<.) K5g.?fHPP3.<.. <T5e.dPP3.<.AK5c.bH5a.?`HPP3.<.<K5_.^PP3.<.T5].?\HPP3.<." <K5[.ZPP3.<.H5Y.XPP3.<.) <K5W.?VH0 ?<T5U.TPP3.<.AK5S.RPP3.<.?H5Q.?PHPP3.<.<K5O.NT5M.BLFBF6.:." 6N5K.JPP6.:.F5I.HPP6.:.) N5G.BFFPP6.:.* 6R5E.DPP6.:.AN5C.BF5A.B@FPP6.:.6N5?.>PP6.:.R5=.B9r                                                                                 "(76#FPZdn (2 < F P Z d n x ]tA=,4 " of(2  <<FPZdn 4" 2 < F P Z d n x Ft@                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          "(@$A FFFFPZdn (2 < F P Z d n x ]b} (                           " [S]ecret(@.  FFFPZdn (2 < F P Z d n x . XD d0 b#( x D @ 0λ>9-(     A- '.    ˹?6 *+     #A* *(     ζE3".%     ۽(?*(.     ȹ<7 ".%      ּ.<)+-     ȹA2 ('%      ֺ1>$+*     ƶA2 (* "     Ӻ7;$-*      ¶<2%-!        к98!-(     A**+ "     ̼@6!.'   #;0 '+     ˹>9 *("     !>,**      ζ>9 -%     (?**+"     ˷ A3 "*% "     ֺ.<'+(     ȹ?4 "-%      ֺ/>&*(     ȷ A5 ".%"    ֽ/;)*+     ɶ A4 "*%     ӽ1<$++     Ʒ>4 %*%     Ӻ2;&'+      ù>2 "+%      ӽ2;&*(  Ź;2 .%      4<#(*     ź<4"('    Ѿ49$'(      ü<1+$     ο2;&$*!       ü 1)d""3 ܦ2; $ (  )'7 $  ) D"1(@ ޜ%)2 P O@(A !2R  Mʶ A+U:2 )<)EF '  %0  )0 :S;3=Z 1*@) >$P" #) A  (*^ۨ,, B  6<"uG-$  #!!, 0kX D2 V#S+A+ -X2&5"+## !,A 8˱ )#U -Z&$6 .FF @'67>0  >$&;1 .]ύ K%O՚$!Tܻ&%!)ӨH  G0*&-ٻ J1* / 5j  " *aG ?@==;%#ϗ0  RP$ 9/3,n)i" ))D7!* $7F߽? @%24!Fֺ 0CC =- %!"".0/ '#ٽ 0" ! + %** lQష  D0 B)}1ֹ+ $5F $  " 4E0̹ P\Z¨F-;N7 =޲ -V  %,$ /(P(1  Q!"!#*5   ( *% ݴ(4 " ' (1' RC# "o2+&=1! ( 6 '%% H   6& <6"=[6' !$61."*1 "(6'#  %8 #I(1>^8ȺG4  0 (   " K;D,#  .+7"&H% $ ,!-  4.̽#9 L!//

'! !&-Fҽ    *; C72>34$;% +4&07.  %2" 3  #4% A* &/#54&+'$+N$ 1!' ($&Z#1& ;98 # 6L9 8 (:8M52 7  2 #'$   H,[ 2%(9B=,4J  7! . ! L" *.    $ҩD3C,# %. +$.   +L  ! R9-8 $+ Z5* &5,I)  * /   +37   *F-/ "   1Y 4LKWƺ.H MR/!H!! 2= ޿# & 5(!, 7;$; YD !U"  C2)    9' -%& /) ?"# &H ),1' X2 +!#.*.#'$6 '#P9& ;%AL9.#:BF  K.$% (Y  !.8 ]"#!)" (57Ʒ$?+ I!(3!B$1$, '    %* / #($ C4/*=!& ,%! ?+* G!) ++  ) *"OF)1&* '6'8 9  A& -J#%M0b  *%#', /ͽ=F0 GBWŹ+$ #6'' "0, ") .9(6+&636 %P#H 1 ' #   $ 5 Q%%5S!      "Q޷' 2 / 6KS5ѿ  .&? 9 ,F( "$3  >- :;396 "0  3,4+ :%+  >-a=E /2 #5%&. @F ! O#1    0B# "#M?-! * ((-1>5(   #f'."!>5<1 & XAJ5$  E 0   %1# $,2"//"M5%4. # $- ,%!- !93  0  /  .)C#.E!!"d2) T@0")8M "L' !" -.P/ (X .< &G0(%2G¤ "d $_ .$*1"&. 36Mt:4./%$ *+23, 6# 8 >PJɳ *?#-k:  % 'L 8  0&00 !"F*J (+ ) 9V$g4 !*3  a:>6 P/!* A0%6%  4 -6?$   C,> 8*E$&%";>   4 -7!"2) 7    73c%0%JG+    ' 9 25#&$ << /-Gθ !l,2(`; /# ",&*;,9  $.,! +#  >D %$-$-# 3%) A2& , $*!9 $1,&    *$    ( %0 "-## N( .9[ջ  $   #71 6    7" 6#%5 5'E ; )@ E  #<  &19& $ "  !E˨ * )+'Z4G   @     )#(  (!   #"  +$%+.44$= : # "   .  -0*!(  ! Iػ ,=/"381 #)73 4( +(1) # #    '2C 4@   8"-.l#$2J <4*  " % !&) 6 I' 0FG ) B    ,*  0- (G %,  ,$ A!5 + ( $" +  F%  %.     6' 1% !    '&   45 3"   . ; =#=-A&3  4 E$ #( 1 8 ($   .  0*'& %C '#T    1 * & 6 , 2 O -,'   &   3    "%5  ! $?  !-$ )!!E K# : &"+: /" * $$(     &  :#<& !) ' 22! (1 H  *N-FG  * D.E '0 E    ZM+=       -  .  2")5 &   V /7  :%+, %G-!  !$ # ! 1*9  #,* "  * "! #CZR 71D-* )$+^ (   3!H> %+ +/8($ $ .  $*Q /D != U"   #   !,   " 1 ,& $/&#  #% '  #  R  "!)+2 Gh5>'+ #7"%%) %)'I)$   &!  2   . #J(  #>17Tˬ< 1 )"-1   < 2 ;*/8$ "=  ( (    *-4    0-$7    . ξ!%7 !"1,# %" "/! # , H ' "!  18 %   ! '$  !  'E ! / 2!    '   $" &   & "*&34گ( 0ɿ( "C& $   2&! & (   +  7" $" 8 3 7  "  & 2  #'    3: .,      ! ,  * */f$ -7 F D@ *     ! #" 2 , 7 ?       (   /    $ (  % " % "D%! @ ;&    (# E ! )'$       '  *%,  #*''3       7.!-    'P  6 !  ,=  $. -  &8$#1 ) $    ')" +  5  0# (    %  ) *%     -      >!? 1    (   , 6'#   - &         0+  $ &     $ ! !!0    $      -!    9  )"     !  *   4 "6    &             %      '!   @   % &   /)& $Q-   "     $   #$        &          ! 0(     %  .& 0 $          1 '$      &+  % *     %   0         % %   )       !*         "  @:3        &      +     / "         *.                !  &        '%     $ !  !         %     #          -            (        '       % )                  &                            %                       !     F  %     %              $    !   &            %   - &--           $#  "             (    (                                                #            $ "       ( "      ! ' "                        *"   #         !                                                             "      '                                        )                                      +          ) #              "      $                            "                                                                        )        #                                                          #,                                                                                                                                                                                     (                                                                                                                                                                                                                                                                                                                   " arman@dialup.ptt.ru(0@, <FPZdn (2 < F P Z d n x H"  ;'/-߼ (         eT (. 1                ԱM-G  - ' "                      48ɭ. -             $                                                                      "(0@, <FPZdn (2 < F P Z d n x h A,^7 L07 )Sի!AqiVfu9 )8   n޻  N' wĔ6vҠ"Y/  7   yBF!Z:!P2&d;#<', oɴ $AQ~B'#~C%, ! +-'1   JH& " 8& 5      I C-0&'K-Q$P ' )A3<!   < O#$`̸+*F F!# #&A'A+F ,!  1% -)  - 4#    ; : ' ) ", 4 >    "&  )  (7   $  ,  #             #   !                                                    " rel. [1.Jul.98](0@, <FPZdn (2 < F P Z d n x 74      '0*2/     %                            "                                                  !  !      #       &            "      "                          !                                                                      %               "                                      #      !                                                                                                                                                                                                                                                                                 " dur. [4:05](@N<<<<<FPZdn (2 < F P Z d n x 9 #!                                                                                                                                                                                               "!                                    !   "# !""                      "        !      "    #    # "  $#!%         "  $  #    !  #" !&!     #        #$   $! ! %& ! &#  %$ $  !  "%!  "$'"  $    "     #$  " "% %"        $"  !%     "   !!   %"  "  ((        "&!      "     ! #    $#$! "   !    $*$   "      !  $   #     !        !          !(% &&   "      # # #    !              % !                      !    '"                     "   !                 #             $ !                                                                                                                                                                                                                        %                                                                                                                                                                                                                                                                                                libextractor-1.3/src/plugins/testdata/ps_bloomfilter.ps0000644000175000017500000022060612016742766020466 00000000000000%!PS-Adobe-2.0 %%Creator: dvips(k) 5.92b Copyright 2002 Radical Eye Software %%Title: A Quick Introduction to Bloom Filters %%Pages: 1 %%PageOrder: Ascend %%BoundingBox: 0 0 596 842 %%DocumentFonts: Times-Roman CMMI10 CMMI7 CMR10 CMSY10 CMSY7 CMEX10 CMR7 %%+ Times-Italic %%EndComments %DVIPSWebPage: (www.radicaleye.com) %DVIPSCommandLine: dvips main.dvi -o main.ps %DVIPSParameters: dpi=600, compressed %DVIPSSource: TeX output 2005.08.16:1515 %%BeginProcSet: texc.pro %! /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72 mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{ landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[ matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{ statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0] N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin /FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array /BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2 array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get }B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub} B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr 1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3 1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{ rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B /chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{ /cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{ A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse} ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17 {2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{ 1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop} forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put }if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{ bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{ SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{ userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X 1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4 index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N /p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{ /Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT) (LaserWriter 16/600)]{A length product length le{A length product exch 0 exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot} imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M} B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{ p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end %%EndProcSet %%BeginProcSet: 8r.enc % File 8r.enc as of 2002-03-12 for PSNFSS 9 % % This is the encoding vector for Type1 and TrueType fonts to be used % with TeX. This file is part of the PSNFSS bundle, version 9 % % Authors: S. Rahtz, P. MacKay, Alan Jeffrey, B. Horn, K. Berry, W. Schmidt % % Idea is to have all the characters normally included in Type 1 fonts % available for typesetting. This is effectively the characters in Adobe % Standard Encoding + ISO Latin 1 + extra characters from Lucida + Euro. % % Character code assignments were made as follows: % % (1) the Windows ANSI characters are almost all in their Windows ANSI % positions, because some Windows users cannot easily reencode the % fonts, and it makes no difference on other systems. The only Windows % ANSI characters not available are those that make no sense for % typesetting -- rubout (127 decimal), nobreakspace (160), softhyphen % (173). quotesingle and grave are moved just because it's such an % irritation not having them in TeX positions. % % (2) Remaining characters are assigned arbitrarily to the lower part % of the range, avoiding 0, 10 and 13 in case we meet dumb software. % % (3) Y&Y Lucida Bright includes some extra text characters; in the % hopes that other PostScript fonts, perhaps created for public % consumption, will include them, they are included starting at 0x12. % % (4) Remaining positions left undefined are for use in (hopefully) % upward-compatible revisions, if someday more characters are generally % available. % % (5) hyphen appears twice for compatibility with both ASCII and Windows. % % (6) /Euro is assigned to 128, as in Windows ANSI % /TeXBase1Encoding [ % 0x00 (encoded characters from Adobe Standard not in Windows 3.1) /.notdef /dotaccent /fi /fl /fraction /hungarumlaut /Lslash /lslash /ogonek /ring /.notdef /breve /minus /.notdef % These are the only two remaining unencoded characters, so may as % well include them. /Zcaron /zcaron % 0x10 /caron /dotlessi % (unusual TeX characters available in, e.g., Lucida Bright) /dotlessj /ff /ffi /ffl /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef % very contentious; it's so painful not having quoteleft and quoteright % at 96 and 145 that we move the things normally found there down to here. /grave /quotesingle % 0x20 (ASCII begins) /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash % 0x30 /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /less /equal /greater /question % 0x40 /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O % 0x50 /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore % 0x60 /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o % 0x70 /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar /braceright /asciitilde /.notdef % rubout; ASCII ends % 0x80 /Euro /.notdef /quotesinglbase /florin /quotedblbase /ellipsis /dagger /daggerdbl /circumflex /perthousand /Scaron /guilsinglleft /OE /.notdef /.notdef /.notdef % 0x90 /.notdef /.notdef /.notdef /quotedblleft /quotedblright /bullet /endash /emdash /tilde /trademark /scaron /guilsinglright /oe /.notdef /.notdef /Ydieresis % 0xA0 /.notdef % nobreakspace /exclamdown /cent /sterling /currency /yen /brokenbar /section /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen % Y&Y (also at 45); Windows' softhyphen /registered /macron % 0xD0 /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown % 0xC0 /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis % 0xD0 /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls % 0xE0 /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis % 0xF0 /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis ] def %%EndProcSet %%BeginProcSet: aae443f0.enc % Thomas Esser, Dec 2002. public domain % % Encoding for: % cmmi10 cmmi12 cmmi5 cmmi6 cmmi7 cmmi8 cmmi9 cmmib10 % /TeXaae443f0Encoding [ /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega /alpha /beta /gamma /delta /epsilon1 /zeta /eta /theta /iota /kappa /lambda /mu /nu /xi /pi /rho /sigma /tau /upsilon /phi /chi /psi /omega /epsilon /theta1 /pi1 /rho1 /sigma1 /phi1 /arrowlefttophalf /arrowleftbothalf /arrowrighttophalf /arrowrightbothalf /arrowhookleft /arrowhookright /triangleright /triangleleft /zerooldstyle /oneoldstyle /twooldstyle /threeoldstyle /fouroldstyle /fiveoldstyle /sixoldstyle /sevenoldstyle /eightoldstyle /nineoldstyle /period /comma /less /slash /greater /star /partialdiff /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /flat /natural /sharp /slurbelow /slurabove /lscript /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /dotlessi /dotlessj /weierstrass /vector /tie /psi /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /.notdef /.notdef /Omega /alpha /beta /gamma /delta /epsilon1 /zeta /eta /theta /iota /kappa /lambda /mu /nu /xi /pi /rho /sigma /tau /upsilon /phi /chi /psi /tie /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef ] def %%EndProcSet %%BeginProcSet: f7b6d320.enc % Thomas Esser, Dec 2002. public domain % % Encoding for: % cmb10 cmbx10 cmbx12 cmbx5 cmbx6 cmbx7 cmbx8 cmbx9 cmbxsl10 % cmdunh10 cmr10 cmr12 cmr17cmr6 cmr7 cmr8 cmr9 cmsl10 cmsl12 cmsl8 % cmsl9 cmss10cmss12 cmss17 cmss8 cmss9 cmssbx10 cmssdc10 cmssi10 % cmssi12 cmssi17 cmssi8cmssi9 cmssq8 cmssqi8 cmvtt10 % /TeXf7b6d320Encoding [ /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /Omega /ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute /caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash /suppress /exclam /quotedblright /numbersign /dollar /percent /ampersand /quoteright /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash /zero /one /two /three /four /five /six /seven /eight /nine /colon /semicolon /exclamdown /equal /questiondown /question /at /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /quotedblleft /bracketright /circumflex /dotaccent /quoteleft /a /b /c /d /e /f /g /h /i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /endash /emdash /hungarumlaut /tilde /dieresis /suppress /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /Gamma /Delta /Theta /Lambda /Xi /Pi /Sigma /Upsilon /Phi /Psi /.notdef /.notdef /Omega /ff /fi /fl /ffi /ffl /dotlessi /dotlessj /grave /acute /caron /breve /macron /ring /cedilla /germandbls /ae /oe /oslash /AE /OE /Oslash /suppress /dieresis /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef ] def %%EndProcSet %%BeginProcSet: bbad153f.enc % Thomas Esser, Dec 2002. public domain % % Encoding for: % cmsy10 cmsy5 cmsy6 cmsy7 cmsy8 cmsy9 % /TeXbbad153fEncoding [ /minus /periodcentered /multiply /asteriskmath /divide /diamondmath /plusminus /minusplus /circleplus /circleminus /circlemultiply /circledivide /circledot /circlecopyrt /openbullet /bullet /equivasymptotic /equivalence /reflexsubset /reflexsuperset /lessequal /greaterequal /precedesequal /followsequal /similar /approxequal /propersubset /propersuperset /lessmuch /greatermuch /precedes /follows /arrowleft /arrowright /arrowup /arrowdown /arrowboth /arrownortheast /arrowsoutheast /similarequal /arrowdblleft /arrowdblright /arrowdblup /arrowdbldown /arrowdblboth /arrownorthwest /arrowsouthwest /proportional /prime /infinity /element /owner /triangle /triangleinv /negationslash /mapsto /universal /existential /logicalnot /emptyset /Rfractur /Ifractur /latticetop /perpendicular /aleph /A /B /C /D /E /F /G /H /I /J /K /L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /union /intersection /unionmulti /logicaland /logicalor /turnstileleft /turnstileright /floorleft /floorright /ceilingleft /ceilingright /braceleft /braceright /angbracketleft /angbracketright /bar /bardbl /arrowbothv /arrowdblbothv /backslash /wreathproduct /radical /coproduct /nabla /integral /unionsq /intersectionsq /subsetsqequal /supersetsqequal /section /dagger /daggerdbl /paragraph /club /diamond /heart /spade /arrowleft /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /minus /periodcentered /multiply /asteriskmath /divide /diamondmath /plusminus /minusplus /circleplus /circleminus /.notdef /.notdef /circlemultiply /circledivide /circledot /circlecopyrt /openbullet /bullet /equivasymptotic /equivalence /reflexsubset /reflexsuperset /lessequal /greaterequal /precedesequal /followsequal /similar /approxequal /propersubset /propersuperset /lessmuch /greatermuch /precedes /follows /arrowleft /spade /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef ] def %%EndProcSet %%BeginProcSet: texps.pro %! TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2 index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0 ne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{ pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type /nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[ exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if} forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def end %%EndProcSet %%BeginProcSet: special.pro %! TeXDict begin/SDict 200 dict N SDict begin/@SpecialDefaults{/hs 612 N /vs 792 N/ho 0 N/vo 0 N/hsc 1 N/vsc 1 N/ang 0 N/CLIP 0 N/rwiSeen false N /rhiSeen false N/letter{}N/note{}N/a4{}N/legal{}N}B/@scaleunit 100 N /@hscale{@scaleunit div/hsc X}B/@vscale{@scaleunit div/vsc X}B/@hsize{ /hs X/CLIP 1 N}B/@vsize{/vs X/CLIP 1 N}B/@clip{/CLIP 2 N}B/@hoffset{/ho X}B/@voffset{/vo X}B/@angle{/ang X}B/@rwi{10 div/rwi X/rwiSeen true N}B /@rhi{10 div/rhi X/rhiSeen true N}B/@llx{/llx X}B/@lly{/lly X}B/@urx{ /urx X}B/@ury{/ury X}B/magscale true def end/@MacSetUp{userdict/md known {userdict/md get type/dicttype eq{userdict begin md length 10 add md maxlength ge{/md md dup length 20 add dict copy def}if end md begin /letter{}N/note{}N/legal{}N/od{txpose 1 0 mtx defaultmatrix dtransform S atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{ itransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll transform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto}}{{closepath}}pathforall newpath counttomark array astore/gc xdf pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack} if}N/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 -1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{ noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop 90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr 1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr 2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 -1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S TR}if}N/cp{pop pop showpage pm restore}N end}if}if}N/normalscale{ Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale }if 0 setgray}N/psfts{S 65781.76 div N}N/startTexFig{/psf$SavedState save N userdict maxlength dict begin/magscale true def normalscale currentpoint TR/psf$ury psfts/psf$urx psfts/psf$lly psfts/psf$llx psfts /psf$y psfts/psf$x psfts currentpoint/psf$cy X/psf$cx X/psf$sx psf$x psf$urx psf$llx sub div N/psf$sy psf$y psf$ury psf$lly sub div N psf$sx psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub TR/showpage{}N/erasepage{}N/setpagedevice{pop}N/copypage{}N/p 3 def @MacSetUp}N/doclip{psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2 roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath moveto}N/endTexFig{end psf$SavedState restore}N /@beginspecial{SDict begin/SpecialSave save N gsave normalscale currentpoint TR @SpecialDefaults count/ocount X/dcount countdictstack N} N/@setspecial{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR}{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury lineto closepath clip}if/showpage{}N/erasepage{}N /setpagedevice{pop}N/copypage{}N newpath}N/@endspecial{count ocount sub{ pop}repeat countdictstack dcount sub{end}repeat grestore SpecialSave restore end}N/@defspecial{SDict begin}N/@fedspecial{end}B/li{lineto}B /rl{rlineto}B/rc{rcurveto}B/np{/SaveX currentpoint/SaveY X N 1 setlinecap newpath}N/st{stroke SaveX SaveY moveto}N/fil{fill SaveX SaveY moveto}N/ellipse{/endangle X/startangle X/yrad X/xrad X/savematrix matrix currentmatrix N TR xrad yrad scale 0 0 1 startangle endangle arc savematrix setmatrix}N end %%EndProcSet %%BeginProcSet: color.pro %! TeXDict begin/setcmykcolor where{pop}{/setcmykcolor{dup 10 eq{pop setrgbcolor}{1 sub 4 1 roll 3{3 index add neg dup 0 lt{pop 0}if 3 1 roll }repeat setrgbcolor pop}ifelse}B}ifelse/TeXcolorcmyk{setcmykcolor}def /TeXcolorrgb{setrgbcolor}def/TeXcolorgrey{setgray}def/TeXcolorgray{ setgray}def/TeXcolorhsb{sethsbcolor}def/currentcmykcolor where{pop}{ /currentcmykcolor{currentrgbcolor 10}B}ifelse/DC{exch dup userdict exch known{pop pop}{X}ifelse}B/GreenYellow{0.15 0 0.69 0 setcmykcolor}DC /Yellow{0 0 1 0 setcmykcolor}DC/Goldenrod{0 0.10 0.84 0 setcmykcolor}DC /Dandelion{0 0.29 0.84 0 setcmykcolor}DC/Apricot{0 0.32 0.52 0 setcmykcolor}DC/Peach{0 0.50 0.70 0 setcmykcolor}DC/Melon{0 0.46 0.50 0 setcmykcolor}DC/YellowOrange{0 0.42 1 0 setcmykcolor}DC/Orange{0 0.61 0.87 0 setcmykcolor}DC/BurntOrange{0 0.51 1 0 setcmykcolor}DC /Bittersweet{0 0.75 1 0.24 setcmykcolor}DC/RedOrange{0 0.77 0.87 0 setcmykcolor}DC/Mahogany{0 0.85 0.87 0.35 setcmykcolor}DC/Maroon{0 0.87 0.68 0.32 setcmykcolor}DC/BrickRed{0 0.89 0.94 0.28 setcmykcolor}DC/Red{ 0 1 1 0 setcmykcolor}DC/OrangeRed{0 1 0.50 0 setcmykcolor}DC/RubineRed{ 0 1 0.13 0 setcmykcolor}DC/WildStrawberry{0 0.96 0.39 0 setcmykcolor}DC /Salmon{0 0.53 0.38 0 setcmykcolor}DC/CarnationPink{0 0.63 0 0 setcmykcolor}DC/Magenta{0 1 0 0 setcmykcolor}DC/VioletRed{0 0.81 0 0 setcmykcolor}DC/Rhodamine{0 0.82 0 0 setcmykcolor}DC/Mulberry{0.34 0.90 0 0.02 setcmykcolor}DC/RedViolet{0.07 0.90 0 0.34 setcmykcolor}DC /Fuchsia{0.47 0.91 0 0.08 setcmykcolor}DC/Lavender{0 0.48 0 0 setcmykcolor}DC/Thistle{0.12 0.59 0 0 setcmykcolor}DC/Orchid{0.32 0.64 0 0 setcmykcolor}DC/DarkOrchid{0.40 0.80 0.20 0 setcmykcolor}DC/Purple{ 0.45 0.86 0 0 setcmykcolor}DC/Plum{0.50 1 0 0 setcmykcolor}DC/Violet{ 0.79 0.88 0 0 setcmykcolor}DC/RoyalPurple{0.75 0.90 0 0 setcmykcolor}DC /BlueViolet{0.86 0.91 0 0.04 setcmykcolor}DC/Periwinkle{0.57 0.55 0 0 setcmykcolor}DC/CadetBlue{0.62 0.57 0.23 0 setcmykcolor}DC /CornflowerBlue{0.65 0.13 0 0 setcmykcolor}DC/MidnightBlue{0.98 0.13 0 0.43 setcmykcolor}DC/NavyBlue{0.94 0.54 0 0 setcmykcolor}DC/RoyalBlue{1 0.50 0 0 setcmykcolor}DC/Blue{1 1 0 0 setcmykcolor}DC/Cerulean{0.94 0.11 0 0 setcmykcolor}DC/Cyan{1 0 0 0 setcmykcolor}DC/ProcessBlue{0.96 0 0 0 setcmykcolor}DC/SkyBlue{0.62 0 0.12 0 setcmykcolor}DC/Turquoise{0.85 0 0.20 0 setcmykcolor}DC/TealBlue{0.86 0 0.34 0.02 setcmykcolor}DC /Aquamarine{0.82 0 0.30 0 setcmykcolor}DC/BlueGreen{0.85 0 0.33 0 setcmykcolor}DC/Emerald{1 0 0.50 0 setcmykcolor}DC/JungleGreen{0.99 0 0.52 0 setcmykcolor}DC/SeaGreen{0.69 0 0.50 0 setcmykcolor}DC/Green{1 0 1 0 setcmykcolor}DC/ForestGreen{0.91 0 0.88 0.12 setcmykcolor}DC /PineGreen{0.92 0 0.59 0.25 setcmykcolor}DC/LimeGreen{0.50 0 1 0 setcmykcolor}DC/YellowGreen{0.44 0 0.74 0 setcmykcolor}DC/SpringGreen{ 0.26 0 0.76 0 setcmykcolor}DC/OliveGreen{0.64 0 0.95 0.40 setcmykcolor} DC/RawSienna{0 0.72 1 0.45 setcmykcolor}DC/Sepia{0 0.83 1 0.70 setcmykcolor}DC/Brown{0 0.81 1 0.60 setcmykcolor}DC/Tan{0.14 0.42 0.56 0 setcmykcolor}DC/Gray{0 0 0 0.50 setcmykcolor}DC/Black{0 0 0 1 setcmykcolor}DC/White{0 0 0 0 setcmykcolor}DC end %%EndProcSet %%BeginFont: CMR7 %!PS-AdobeFont-1.1: CMR7 1.0 %%CreationDate: 1991 Aug 20 16:39:21 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMR7) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMR7 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{-27 -250 1122 750}readonly def /UniqueID 5000790 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 2BDBF16FBC7512FAA308A093FE5CF5B8CABB9FFC6CC3F1E9AE32F234EB60FE7D E34995B1ACFF52428EA20C8ED4FD73E3935CEBD40E0EAD70C0887A451E1B1AC8 47AEDE4191CCDB8B61345FD070FD30C4F375D8418DDD454729A251B3F61DAE7C 8882384282FDD6102AE8EEFEDE6447576AFA181F27A48216A9CAD730561469E4 78B286F22328F2AE84EF183DE4119C402771A249AAC1FA5435690A28D1B47486 1060C8000D3FE1BF45133CF847A24B4F8464A63CEA01EC84AA22FD005E74847E 01426B6890951A7DD1F50A5F3285E1F958F11FC7F00EE26FEE7C63998EA1328B C9841C57C80946D2C2FC81346249A664ECFB08A2CE075036CEA7359FCA1E90C0 F686C3BB27EEFA45D548F7BD074CE60E626A4F83C69FE93A5324133A78362F30 8E8DCC80DD0C49E137CDC9AC08BAE39282E26A7A4D8C159B95F227BDA2A281AF A9DAEBF31F504380B20812A211CF9FEB112EC29A3FB3BD3E81809FC6293487A7 455EB3B879D2B4BD46942BB1243896264722CB59146C3F65BD59B96A74B12BB2 9A1354AF174932210C6E19FE584B1B14C00E746089CBB17E68845D7B3EA05105 EEE461E3697FCF835CBE6D46C75523478E766832751CF6D96EC338BDAD57D53B 52F5340FAC9FE0456AD13101824234B262AC0CABA43B62EBDA39795BAE6CFE97 563A50AAE1F195888739F2676086A9811E5C9A4A7E0BF34F3E25568930ADF80F 0BDDAC3B634AD4BA6A59720EA4749236CF0F79ABA4716C340F98517F6F06D9AB 7ED8F46FC1868B5F3D3678DF71AA772CF1F7DD222C6BF19D8EF0CFB7A76FC6D1 0AD323C176134907AB375F20CFCD667AB094E2C7CB2179C4283329C9E435E7A4 1E042AD0BAA059B3F862236180B34D3FCED833472577BACD472A4A78141CA32C B3C74E1A0AE0520B950B826B15D336D8A12ED03ECD59B50775E3C5D8309802AB 9DF865421C5AD1492673F0D8DC1B55EA958330AE6F4301D5314190C760AE2832 0FFE98B31B10B50826F26335347600DC34708CD6913388C6A1DCFE3414F267F3 B269D4D5A9A00AC78F252683E4021E203432502358A9B3E137263BC107513521 345A2C8F613C2CB9236D0C6D8C81274046D8E26BADE086CC18D48E0F710163FE 20A0C8F968586F53FB9F1F122AD0B311B35DD63494CCE2A905753031DA7F6D05 F178B67D06097D803CA48FE0A01FAC8E7CDDD83A30916E01EE9795EDF731031D A8C35ED6E0E8D5215ED779FEEA2D2B54BA35B5A50044CC0DE5AB8C0D11BCB29C 4DCC9065FBA656469709A647096FAD117092865B8579643041485DD042487F0D B81F178234359798986A1DD9053ACE7AE2F6A12BB0BA90D1C2E99699BCEEB3E1 B57E4E3EAC39AA2F28B12383493184C2B6E0CABA99253B9F0B44F4C7183F1B4D C23C2244BBBC4A83A75FB9B71042B0B1676B4D9B33A2BB728A7EB3FC945F8CC0 848FA40DF50A48169E401B3B0F55091F29E66789063857843622FCA3673F4C78 8E7B68655E08BB031AE83BE6AF0CFC395F6A291796743431CFC4FA0FC1B3CC88 50FC4640D84E195EC4000C5C8A85C9D395EC884425C49379C710F323A2C06680 2FB61480B8616927DE8957193BF93D179060F377909E403A987BBDC79148CB6A 56380A268A2C525B0A03B06AA0CAC2B08A4B475151DCD4AE0984BF8924BD4126 4937CF034188F309CDCAE7E771C9F1C158DC3E6F58718290F639BF7E826A516F 6FC312478333DC0B62DF356AAFF8C94FE47F941D2DC07B9FB167ABF4E0CDBEE0 2955FCDA84B01650AEF0399311D60DFE714FCA065007CB87E502B60C980986C1 1C6ECC34F8EDA45C8A 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMEX10 %!PS-AdobeFont-1.1: CMEX10 1.00 %%CreationDate: 1992 Jul 23 21:22:48 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.00) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMEX10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMEX10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /parenleftbig put dup 1 /parenrightbig put dup 18 /parenleftbigg put dup 19 /parenrightbigg put dup 34 /bracketleftBigg put dup 35 /bracketrightBigg put readonly def /FontBBox{-24 -2960 1454 772}readonly def /UniqueID 5000774 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 2BDBF16FBC7512FAA308A093FE5CF5B8CAC6A7BEB5D02276E511FFAF2AE11910 DE076F24311D94D07CACC323F360887F1EA11BDDA7927FF3325986FDB0ABDFC8 8E4B40E7988921D551EC0867EBCA44C05657F0DC913E7B3004A5F3E1337B6987 FEBC45F989C8DC6DC0AD577E903F05D0D54208A0AE7F28C734F130C133B48422 BED48639A2B74E4C08F2E710E24A99F347E0F4394CE64EACB549576E89044E52 EABE595BC964156D9D8C2BAB0F49664E951D7C1A3D1789C47F03C7051A63D5E8 DF04FAAC47351E82CAE0794AA9692C6452688A74A7A6A7AD09B8A9783C235EC1 EA2156261B8FB331827145DE315B6EC1B3D8B67B3323F761EAF4C223BB214C4C 6B062D1B281F5041D068319F4911058376D8EFBA59884BA3318C5BC95684F281 E0591BC0D1B2A4592A137FF301610019B8AC46AE6E48BC091E888E4487688350 E9AD5074EE4848271CE4ACC38D8CBC8F3DB32813DDD5B341AF9A6601281ABA38 4A978B98483A63FCC458D0E3BCE6FD830E7E09B0DB987A6B63B74638FC9F21A5 8C68479E1A85225670D79CDDE5AC0B77F5A994CA700B5F0FF1F97FC63EFDE023 8135F04A9D20C31998B12AE06676C362141AAAA395CDEF0A49E0141D335965F2 FB4198499799CECCC8AA5D255264784CD30A3E8295888EFBC2060ADDD7BAC45A EEEECDFF7A47A88E69D84C9E572616C1AC69A34B5F0D0DE8EE4EDF9F4ADE0387 680924D8D5B73EF04EAD7F45977CA8AD73D4DD45DE1966A3B8251C0386164C35 5880DD2609C80E96D1AB861C9259748E98F6711D4E241A269ED51FF328344664 3AF9F18DCE671611DB2F5D3EA77EE734D2BED623F973E6840B8DAD1E2C3C2666 DD4DD1C1CD006CAD7ED8E8165E496FA0B191B69671C16B43D92082CA3571EC9E 61564007C3B7236A7E232FF0A6DC428B4B819D157E9FC09B74927E23149BA2B5 BE68FDBA54E11195A7A69BC0D96D5233FF2BE7B78EBB611E52D96BC82A31C63E 164BABACF345BA00E9EF9B27C951DFCA279BE43D84023293356A6A368669AEF2 54F9A844DE13A92F2AA3ECFD20F4014D1D5FD1D99AD6CE4353510155B6450291 542F544ACA8935805A8B79D1EB394371CE4957C045906B339F3FF9460726FAEE 59A9F8D7C6BB6C8F5E67E03CFDAFE74AC6AA35F207646BD8A4C16BD6D160550A 0644F8A4159DBD5648109DA67C0CB9CD8AE878F270FC2FEB9F7CE591A09B7649 53DE58FA95E6AD814FB182CDAD00973E58339C7E7CCB3C7ECD0A29D1F10787CE 3C1054D756BCEB5B2739DA46D227E406596B946C241D4BAD6CD25527368B60AF F65BE1D3B6B9A57EABADCCFDA81304E3CA9BCDB0164AE69CA59159C761F7EC66 4797E8B11396B877D320C782CD2CFF8017B219D29C413B747613B5A4CBC4604C A7CE6FC74A2F859AC5EFDCA5740932D94A4C4B83022F03ECA556D0105FFF4D5E 077546C8F879D532D627C01D86964A93B09A8D2560086F724AB03B4D63E056AD EF2334541B6E1DF6B5F9569D57039363DB10BF30BF19F859DFDD4B12AA71A6AF C2EE60C962F6766FC438FA4D155290CC93EAF3AF8CB39D2FA97CC4E8D8E14D64 7F84B0A9BB272BE26CE13200BD1D28952DA7749E37D51590BD54A6711951E729 C232AE77FC86B39942FD0ED413C8B2EDB1796953B1A7D5D28525EBBADD66337B 413C20785C0C5431528591FAAF4CAEEA1C827DE698BC77D0CD7C20446F209E33 B56F7266574AFE96E4BFD59B38CC3197688DF82F584EB7E1A27EA442339EDA3A CEA1CB3504B2768510697572A770FA6107B9CAA9EA29DFBC68347E8F1E1BC62A D749CC7C84559C972F403CFF79818B873B456DBDC7DF7DA90FE0BB1F49FBA2E9 15D3701B229BD76D1CD0F5714FBB5AB35A0B1A2BF0C49B49730B13286B3D90EC BEA32EB012491D5DE31DE1E468BC7B0A6B281CCAA1A59D06DFACC24FC929BA8C 04D4D87C39A8E69B1B850FE0A18F124B0B4A67828555D1A0E9C8EDE199E8E43E 0E2EC13CD07A4B635007898D75DCD5AD6A0F969BA8805F9C908587DECD5960B8 14C061F17F401346D1E4948986428C2893A6BB591CCC04E95A76B12E66441478 C235A7709A346EC692D1313787C05D378A21304ACD98CA813CB9DE52A25B513D 6863E788AB1E6A182661247A10CE4CAE5843D88D88A08C94B2BF5A15F61204AC 8D0F3DB131AD3CE54EC8BC071A3DE7E139753B3A126329B33C1188B6F8E655C4 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMSY7 %!PS-AdobeFont-1.1: CMSY7 1.0 %%CreationDate: 1991 Aug 15 07:21:52 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMSY7) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.035 def /isFixedPitch false def end readonly def /FontName /CMSY7 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{-15 -951 1252 782}readonly def /UniqueID 5000817 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964 7D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4 A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85 E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A 221A37D9A807DD01161779DDE7D251491EBF65A98C9FE2B1CF8D725A70281949 8F4AFFE638BBA6B12386C7F32BA350D62EA218D5B24EE612C2C20F43CD3BFD0D F02B185B692D7B27BEC7290EEFDCF92F95DDEB507068DE0B0B0351E3ECB8E443 E611BE0A41A1F8C89C3BC16B352C3443AB6F665EAC5E0CC4229DECFC58E15765 424C919C273E7FA240BE7B2E951AB789D127625BBCB7033E005050EB2E12B1C8 E5F3AD1F44A71957AD2CC53D917BFD09235601155886EE36D0C3DD6E7AA2EF9C C402C77FF1549E609A711FC3C211E64E8F263D60A57E9F2B47E3480B978AAF63 868AEA25DA3D5413467B76D2F02F8097D2841BAFE21CA9B940712F2E5C0EE674 F89B3247AB7015E1B23392D32427F5DBA2662F737958F4F7245625764E8AF981 A9FFCB32213B836B1620E55354875AB8423630CB317B48EE89BD9F249C5BFF67 B9EBEC91D3312715CCCC7C19ADFD5B0A94CE0DB2C9540BB7172CEBACD41836E7 D7B39100472CBE6C7168AF011698726203C2B718491309B9A6C0DD56DE90B9C9 38E3CE61C149139F76BAFC25DF3EA35BCDBBDC3E278B2775C2EB92A46C424F27 6C80929547688A30603D6DF66C52A65509C168BA742F71113C43A94F1497333E B59C53FF680FDFC39D9F8DE5152F4C39F4576D0BCCD28A84CAD8C24B6047B571 FA8D1AB9E59FB8668FAA390C4B7E5F12C7D44B0905743F8E0CB02551F670A693 554C1B18820AC24A0BCE4ACD8244032DD2622C3A4D67E575CABE5E5BC0FDB3A2 F0B20A7AACE9AD6C318E11D8760AF75482E9A4F1C525584BFB2BD11A30FBF79B 9A7C99B05C2664FEFA0A1C022007D83C9FF31205DFE1F6457C321A425DCFC814 FB74C4D77EBED004915CB81649962B3156804B6F4A98D222AEFC4E4D4FAF1C36 8035867409DAAB371508D489529481D355239E3FFCD291F496018834311A7070 21D1AE27561512B486FF25209CD13C43B2A3F82FE22F6B216013556EDDFC8B9F C5262A804CD083957CB7502F57801CDD8D9ADF511DFB7019770AC06B6B076B66 1CBF90AD1B498576A5F2FE4D4761B139D85D1D0FE36998E1DEB2BE569EA3A9CE 7326D6F36B40696E55B0BE6BBE0BBF1FE9A1F967F5AE01DAB55A2A49047F4882 4D28CDC48EAD5247465139F346C7378AEB5C50EDB3EE7DFA4BE52C2BD3294A39 0A11DC8181917891D163F0B0748A2DF8EFEB5624BC76AEB00037E13394E9BA41 C18C60B9A3514C3C5A1BE28719166CE9C9C34BEFDF4AD71A 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMSY10 %!PS-AdobeFont-1.1: CMSY10 1.0 %%CreationDate: 1991 Aug 15 07:20:57 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.0) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMSY10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.035 def /isFixedPitch false def end readonly def /FontName /CMSY10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{-29 -960 1116 775}readonly def /UniqueID 5000820 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052F09F9C8ADE9D907C058B87E9B6964 7D53359E51216774A4EAA1E2B58EC3176BD1184A633B951372B4198D4E8C5EF4 A213ACB58AA0A658908035BF2ED8531779838A960DFE2B27EA49C37156989C85 E21B3ABF72E39A89232CD9F4237FC80C9E64E8425AA3BEF7DED60B122A52922A 221A37D9A807DD01161779DDE7D31FF2B87F97C73D63EECDDA4C49501773468A 27D1663E0B62F461F6E40A5D6676D1D12B51E641C1D4E8E2771864FC104F8CBF 5B78EC1D88228725F1C453A678F58A7E1B7BD7CA700717D288EB8DA1F57C4F09 0ABF1D42C5DDD0C384C7E22F8F8047BE1D4C1CC8E33368FB1AC82B4E96146730 DE3302B2E6B819CB6AE455B1AF3187FFE8071AA57EF8A6616B9CB7941D44EC7A 71A7BB3DF755178D7D2E4BB69859EFA4BBC30BD6BB1531133FD4D9438FF99F09 4ECC068A324D75B5F696B8688EEB2F17E5ED34CCD6D047A4E3806D000C199D7C 515DB70A8D4F6146FE068DC1E5DE8BC57034F7455AB67138A1B6DFCA01660EDA B80764458B5829EB2FEC53E0A1F53FF5AF7A2E1564E666101BC844AB50DE3860 2235ECED71E86452D47F2A3E0D887538BAFE377CFC4DD49B397BEE459E06CA48 29B9E43C4C347E6477372884B41B41DA8075F1A0BBAE835A3CB48186024CF105 54981EADAF7A9F62BE45C89E39AF4CD4680FB6C1343A780D9C42DF0D40D5413D FFAB68B8B983ED2DBD81F0AFDA69DD6136AC8E315693D9BA30AF6BC44FD20A86 20FB501C02723EB63A007ACE897E056F09435CA492318117062EF02BCF52FF30 1E1F3D3221BCF9E49559088E536982C557144A2F27E0DF1E442844E46725E89D 3A834FF30C449CD1FFBCEC6C85F65C3E7D18E22F4CEC2A5D5BEE83CE9D053C95 25227B7E575768C891A3D4503E4BADDF21D22C65C97DCFE87DB3BB5E58093253 1125AE1C6DDEFC2B5E33E12CBCFC76804B70B30DA40AE9FBFE24C22CB02819A2 53BD19545E35C2B03396C07DE5539F1A88428D4142ADBEFABCAA50AEEEFABF80 5080BE0DE2C4EA969260EA185EF1518DE57EDCB5F3986FBD7FAEB6DD91F04A88 FF05076B05703A7B477A37C210AE87D98B2B35504DF40C9C52FAB5F63428E239 222C6A31BFE7689759ECAA3BC4472711AAF747A4951A93B976EAFDFFD38ACF0B 8B976FDC2A9FC807D66122107DB8BC816619AC74B5A8FC6F20A958FCAE6C9057 9BF24A2BD815E6079C1247A26C72AE3F11BAE1F4DED05BC8027BCF5A2C548BCF C54A257C0142D378F2000BD15429437F9901A413467E94D659C82A5040179D2E 82C2E274BD5AA736B9BB3FE85F4656722E27E8446FA604E68960EB30D94E5A1A 6DC95D1B4FFDB25B18B79AB7D69B0CAF89BA82DDA9DFD145BE7126A2BC662585 D5A71E05C0E888B0BA537698141EDC4C25B16874F1A5F75030E54028951DA634 683E537E0A4C963E93D07ED8B1F92BAAB6A558DD899506B194602A56E6574DD9 19C8812FA3253DF055971C3333F688D1FD8A420E002BFC8045A3F02A381F061A 346489DD13C3A32929964FE56E63EE0FC4E7B8F0302B17F2868D9817AF11D721 BF2D18E3099B4BB101A95B11935ACD5928A6C2715C1F138F5A6B4A49F0156A77 1EFAD63BF3351DFE8EB5441990D9E3CA620B68548439E6930003C837B3C8852F 28F8C6B5AA21A3787ED948691152844013531868051689AEE3C3ACBF1A79F501 4EB5AC07831E33505486D30A8AC69C7E3B0FCE959D0F2AF7A05F0EC3313C6F26 6F590C052E81268D9F63C64230FC3460A3C5C2260A523FE927D8DBE208EC6FE5 38BFC1F060CEC84E5B3DB26479FFF341BC0C9F11168736CF3FDAF2733D90A0B1 3A8EB69C8E2F4EE01CCC9F6A0F7F8F28BAC98CBAB8DDA2B71A0315B4D2CF1513 CF55492FB9B051B8DE5E4F30CE08AFC5CDA769668C1469B58FABD5D46A3438C3 497DB37CED2E3EBBFE57A3335C1797BD2905AB39E6497CF793B4D500F04B2ED8 C1B4A3F05F59DD5B9943CF7A65FBE8827F65A804A7DAB9287668AC322AA9C6E7 ADF714A655977CD5E07383EC4267CEEAC86536F632E23E6308D01838AF9040A5 35F383771127B115733D7208CB6C43B25EBC4463353C3476898F2D390E66F5EF ECC6822FC45B0361FC782130B3DDEFECA2D736C29ABDFC68982D9B046E542013 38329CB876357A60F86DD7A7FCD03E0008E4428DBE8C5C03FE65DC3E8B7DD446 3974D4CFBF5EA451453639026622513FC65AC3CF 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMR10 %!PS-AdobeFont-1.1: CMR10 1.00B %%CreationDate: 1992 Feb 19 19:54:52 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.00B) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMR10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def end readonly def /FontName /CMR10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{-251 -250 1009 969}readonly def /UniqueID 5000793 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA052A014267B7904EB3C0D3BD0B83D891 016CA6CA4B712ADEB258FAAB9A130EE605E61F77FC1B738ABC7C51CD46EF8171 9098D5FEE67660E69A7AB91B58F29A4D79E57022F783EB0FBBB6D4F4EC35014F D2DECBA99459A4C59DF0C6EBA150284454E707DC2100C15B76B4C19B84363758 469A6C558785B226332152109871A9883487DD7710949204DDCF837E6A8708B8 2BDBF16FBC7512FAA308A093FE5CF7158F1163BC1F3352E22A1452E73FECA8A4 87100FB1FFC4C8AF409B2067537220E605DA0852CA49839E1386AF9D7A1A455F D1F017CE45884D76EF2CB9BC5821FD25365DDEA6E45F332B5F68A44AD8A530F0 92A36FAC8D27F9087AFEEA2096F839A2BC4B937F24E080EF7C0F9374A18D565C 295A05210DB96A23175AC59A9BD0147A310EF49C551A417E0A22703F94FF7B75 409A5D417DA6730A69E310FA6A4229FC7E4F620B0FC4C63C50E99E179EB51E4C 4BC45217722F1E8E40F1E1428E792EAFE05C5A50D38C52114DFCD24D54027CBF 2512DD116F0463DE4052A7AD53B641A27E81E481947884CE35661B49153FA19E 0A2A860C7B61558671303DE6AE06A80E4E450E17067676E6BBB42A9A24ACBC3E B0CA7B7A3BFEA84FED39CCFB6D545BB2BCC49E5E16976407AB9D94556CD4F008 24EF579B6800B6DC3AAF840B3FC6822872368E3B4274DD06CA36AF8F6346C11B 43C772CC242F3B212C4BD7018D71A1A74C9A94ED0093A5FB6557F4E0751047AF D72098ECA301B8AE68110F983796E581F106144951DF5B750432A230FDA3B575 5A38B5E7972AABC12306A01A99FCF8189D71B8DBF49550BAEA9CF1B97CBFC7CC 96498ECC938B1A1710B670657DE923A659DB8757147B140A48067328E7E3F9C3 7D1888B284904301450CE0BC15EEEA00E48CCD6388F3FC3BE25C8568CF4BC850 439D42F682507AEBFF9F37311AA179E371A7C248D03B5BF40C3B7E0FDD80D521 09B4D0044C5EFBC5C4A8DF9B5F734ECA6099F8A76881278EC54549F51532AC62 0D85E2178D1B416514B03BC33767A58057CF521F2620B53DE2A240D58312B92A 7C1F9BD0A11514B5CAB87219A1F5C4982A83380B0896597EE5E42BDC6F85E6AF 68ED6994484CDC022ABE678A7F2E298A7FAD967A2EA7DC426F07342ECC66E68B 983E966FCFB745795C4D2C87CC15BAA041EF80C5BDC12EC1F5786BB41A5A2107 3EE0BC436B346E014DB4099EDC67BC432E470A4B779FD556341061CA3F2BE8EF A332637AEC878C2BB189CA3267B2BE5B8178E6B7889A33771F86276E6F0B8E89 BD209DB0CCDDC342CC3D438356296934D03FE107CACD00545E375162DF567C70 F2DCE2E5A2C5F61EDC0DAE9A91044DD214031FE8339581A9798BC43F13495FC0 800761A6A974597A6591BB772B7C2854776184200650870F0B9A39231246409F 64587223CBA397CDD5B85319EA3EABF03C0D21319F3267804C0E1BFF0529D754 2820803344CB844CCFF0B65999F5BFD8B3F28D9B618529F7CD8EA038A4EE4DC8 36F31EDEEA2BFC09F2A23D9835CAC736F607207AC573291E6E55D103AAF94D5F A688675B55D40FA43C6D97741D9FE4CE7F909B8B374E4975E93D9FD32DFA0AE8 4699D184A4C3E6EDA91ECFEC0ECF0B5340E0DDD17A6381B58E63197BF4D3EDCF 0267A48EF271D6AD67DEA1649F5391A860AE9CCAAD3330408DC5008EF4383FED 9887D5D348D766399192B5E968035E7DE5E0350A005E4C596361251DCF8A9302 D6F53ED0F720442A89467CA60E5396A335EA60A77175B7F6119F4E3D8773D100 3F307FB7310879760E6E7AF5B06207BC4D8321734432C482581783BB9D29E087 72D7252FAFA6739687225704EC9BD374804808C980CFC1AD9B5CF9DA1F1E6EBE 9CF00C497704AD5892D7F2E681EB1EA12AE2DC994A24BB9EF5B081D3EFD3D8CF 64D8F619AE619F5CF7C0BA03DD6306372BA2466D678DE4269D20CB56FCB158A1 D46655D69F0CADA08992E12C4B9E969427BD224E0978EEF8E841B01480446D46 074F45B381E2A6E8F3E794F6A13F46CA068F6272CFE4983EF8570FF07F922FBC 50183FCB1FC8DDCBF579494EEB340C9120EB2AE200328C858438157656266F25 97FB464C6EAE730CFEB144B021C27D4BBA08707DF3FF860F0166DB8619376F60 DA2110C94DBB4FC8F8F162E522836CF709AC1D3FD9775114A168A728336BED48 03FDCF5EFA9786AB4AE9DF3A412B7755811300C5DAEE5EBDEBE63770F89F7F98 9FE48AA67BECAD7A0EFC1D747EFE910B44C1F9A354750E6D5C87680F3265E717 76CE04767C1D1E868889E403FB0F15D46DF64CF938B5636924790B03CB68CC75 9A3489E9860556FCD231C0B2A0559658C4296772E6531F393ED8B94CE572A694 60C4F04F53AA48EFEAA722E30D3377AFE7411F9393DF3E4E38920E53D5598FBB 94A5E379FC49DBB09791854CFDFA347B1C4E3FD1A5C695E9B42EC14EB23D69A0 5FACD0675D66CEB5FCA995A429EDBE0C448A090279D8ED1FB6690DC3BCBC2174 CC50FD2A9DA96247733EC3CEC48A9DB7DC5BC024DB136F96EE33F1689DD26A2C 1A1DE4A83B8AFEF766D078744AB0E647AC8E532121AF4BA459BF4DE61A6420BA 19522EDCA0D18EB5B559621AE04C52C878D8450CCF23E156696A55578EDC6004 2ADB56EDD857C5205B76F5700392CB6CED9C99A066B12D61B873D582DAA4686D CE6862BB93AC52DEA032742438899A1B445D658D51A9DCB12F16945CBC8163D2 75CA4D1F7968A42E224B5BAD5B6DC70C581CF8F15C37A23A382696C053D2BA9A 846704327749143708E6D8B74FD5F19F92ADF296C7A9688335F6081A98F458EA F84A1CB95C2B13E462E3DF4D0127C6666E95951EFBF35028FECE4C95EC577238 90DA7FAE2E91A5C099740754D2CAF1DD28ED06FFF08957CF0D5877C1AD17DBC3 57A029187F9D370946802E6A118FB1B6293579CD3D72E1AA9F64213FB1DBF746 9CFBDEC1460CC735265324AED8835BB0169B9EBA42491D9C8D65CD2E72CA53BF 79C2CA8CE90DED771E290D9E7BDC92D44E6072E38766245FD2656C7E708E99AD 667572AE19CF28CC62EA668786B43CEABD8F74C3FF45D728AB6EB05E2724B2B2 A0B467F37BFCF2462265B3FF53D5D21F2971AE89DCC3439606DE361327AD118F 1378AFEACE72D45D1E5DC31343AD83C87228DED463CE2471C25677F0371E8A3F 0C0FBBF98A2F734F62180561DF84B3079DD916138EDF5B42F0E60F5C7CEFA063 6BDC54D3CE32D8964D1A68E1FE1D73E1A7E98B306BFE3FD772DBBD481E25438A A05ED48AE7A4AA6C03D8FB9450B039DF266869F2572F4CA3D2D92ABB959C2B10 748266A9A4399741DC25E7217375F437DFC31DEBBA45D84F52F16AC6AE9181A9 C3066639E102D7007586BEA3FA243F6095A93BE9B85010BA40200C5400714978 82322233233DCBDB3A1243129E5D8834236C590AE7A5CD7951FCEBE944C65F89 C3776080297F335A2CE4898BBCA9B565E273ABC671BFF9A0CCF247221C60E2A2 1A5C702D1E2CD127790205E124DC2E75ABA41FF81DEC1BED791DEF6BB6DCC964 DE1A8DDF2AB583E2ACD101E0E7FA5819B55A2E48DC28C1E161B5F68B196FDF70 361660276EE355D2F4201D46587D1091175B119B14B4509DD5A09DB182FA9A13 833ED7A4754576D900EEE0F264E9280C1E38C3A4C6EC560DB5EE97B2BD735CD9 B19D3104A83D2C82C46DCD2C027F057B398C3C26C960A78DF1034B64633EDC4E 02671E04D9B325EB73936C89C4A50B5A773DD2B827BB28745D3F623CAAC5FB53 5234E54B0B54230EF097FFB79EB4B461F2ACD7A5DC805AC9F009AC9A 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMMI7 %!PS-AdobeFont-1.1: CMMI7 1.100 %%CreationDate: 1996 Jul 23 07:53:53 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.100) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMMI7) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.04 def /isFixedPitch false def end readonly def /FontName /CMMI7 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{0 -250 1171 750}readonly def /UniqueID 5087382 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE 3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B 532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B 986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE D919C2DDD26BDC0D99398B9F4D03D77639DF1232A4D6233A9CAF69B151DFD33F C0962EAC6E3EBFB8AD256A3C654EAAF9A50C51BC6FA90B61B60401C235AFAB7B B078D20B4B8A6D7F0300CF694E6956FF9C29C84FCC5C9E8890AA56B1BC60E868 DA8488AC4435E6B5CE34EA88E904D5C978514D7E476BF8971D419363125D4811 4D886EDDDCDDA8A6B0FDA5CF0603EA9FA5D4393BEBB26E1AB11C2D74FFA6FEE3 FAFBC6F05B801C1C3276B11080F5023902B56593F3F6B1F37997038F36B9E3AB 76C2E97E1F492D27A8E99F3E947A47166D0D0D063E4E6A9B535DC9F1BED129C5 123775D5D68787A58C93009FD5DA55B19511B95168C83429BD2D878207C39770 012318EA7AA39900C97B9D3859E3D0B04750B8390BF1F1BC29DC22BCAD50ECC6 A3C633D0937A59E859E5185AF9F56704708D5F1C50F78F43DFAC43C4E7DC9413 44CEFE43279AFD3C167C942889A352F2FF806C2FF8B3EB4908D50778AA58CFFC 4D1B14597A06A994ED8414BBE8B26E74D49F6CF54176B7297CDA112A69518050 01337CBA5478EB984CDD22020DAED9CA8311C33FBCC84177F5CE870E709FC608 D28B3A7208EFF72988C136142CE79B4E9C7B3FE588E9824ABC6F04D141E589B3 914A73A42801305439862414F893D5B6C327A7EE2730DEDE6A1597B09C258F05 261BC634F64C9F8477CD51634BA648FC70F659C90DC042C0D6B68CD1DF36D615 24F362B85A58D65A8E6DFD583EF9A79A428F2390A0B5398EEB78F4B5A89D9AD2 A517E0361749554ABD6547072398FFDD863E40501C316F28FDDF8B550FF8D663 9843D0BEA42289F85BD844891DB42EC7C51229D33EE7E83B1290404C799B8E8C 889787CDC5CD97BF88176035302FAC972B52AA169D318AFA7EB7B750C5202A8B E8D2C46A3C87E0D3B4E1BEE80DEE439C598E55A6AABE0899EC0C9406C3B4D586 C2DE7990BF8B24D790C69F01A2BDBD05B50E50DE9B0A05DF39B48FEF1FA65D98 EE816BBE51D69A8EE7528375DD01529D7EEF47E8A88031C9C65CC38E291F7666 7017DBA809D0AF9A39D22E6EA0FF4AC4DAC3BAA50DEF621FD92BD47DA60C874C 19AEA1718C87CD095E138C0F749D3B7F05A4479CCC02466BA85043AEE91DEEEC 5FB759D1BD34302AE48090B8CB8282ABED08B04B8BCFDDB96F11402D63FDFB7A 297EC426648B8D9A33E1C09FB3B4B03B685169F968952E3DC986DF027D7C48AF 82A1E5D01BA26A81332B9F18C16916EBAF0BA3B61184D874DC330E4BDD0E0ADF 2A4FC53610A445123AE7B9DA7AB582E75F4D016CDA75A32931A95A63DFD18413 D8303DC0146DFB7A203B5A46060B1F7FB9F145D1A0F6C15FECF695927B780B55 04A5A50218168A660C92594400C65F1478994F85F023D612F4ECE6139B6C2CE4 448C7199C9A5A104EB40C6A304D21BA2691015733AE74E9F274A79F444B9949D B33F03712C5DB22B8A0164C5A3B4B29131F4EF2708C7E4B9BDAACE6D9CA0A3F0 D1238F1EDE94E5BC97E4FA0EAB2E64C76790CE011E7EBA79623E3053323FA2DC 963DA83BCDED4E0EEE81C10FAC983084AF67FDCD18C9A5E1CDAB4A2D947B4B25 12E4340EEA97D08CDCC556D2CD1D243E04D5B0A48DEA544F71167CCC728A5AB5 1222F2A32773EED562B6E23744AA5C3A8868DB7DB5B989676F0C2F9722C797C6 31CA27ACF7EE2B41FA1008F9E818172EAB544EA39970BB4FA6DB57C34A9DA288 CF0321E6D4D3523A5AA7CE64A449D9C46E0C08D76E8E32A3C8DB5769E4B54D50 1CC956DD38928EC264E1E470342646CC6B594CF884FBD02947FA308B4BAE4969 24578828773A8229ED93FCC3328F1B8EF95397D6FAA4A79784CB9D4A26966DD6 E7FD58BBE562AB755C5AA2449175C23DE3D85B016779D1EFC99187E4B8098871 F665E9AE8E8F802BA3C3A4CE74641E5B9BB442C41F3DEC1902ECCC69BDD839E8 E145BA14B996799FD0BB27AB602A1E6319799CF35C81FAB8A1F56F6255A0319F 786972EFD6868B42BA369A49C98B990F179986928A4C2F958D57A56845D9602A 0857C3668E7E95C5DAC2CDA51FF99EFD341C025153B5A991597547A43CD1C446 505CED6F0E816761805FA324E120876276F86A73D42BC08494A35747DFF501FD 498719ED9F6CBF921B15E5A080CF0653CE13B27E4C14DD711F1D2611019519E6 13241A4628787C910A859C79B4E359FE894DD8032D723978971D411C65501913 6CE5F76A9970C6931EE5B221D05D3600293AA37A005D97064CA1E39564D7FFF1 D3D8116A80B5FBB4956C93DB71C9D83493B37589EE382B819757D883A58B7B30 8009FAE000ABF98CA6CFA8D6A837024FD38814A1177C2908D455BB1F698C25F2 5429B9F4F9ABDF982F9B604D89963DE5CD3D773C58C6A7475CF18088CA2F8379 4E01600F075E8662155185B05E48C967C461C949F108C96C2978E580EF3A8E81 0B6AED2E5B01A9BC41E2F07D311BE11B75F4BEE0FCAC81C00D07D8709C3AFFAE 3A2892516530F4F9A0A6B7F0508529D67C67A537FEEB7B5730A869C50BA9A9A9 5A4902CAA57399DF8CCC9575555EBE0BC359C8403F2FD761345F16C8FEBDA717 2C19E8174E0135547A6E974A8305DD35FAD193202BE064F2C4733943BF0C2E14 846E944D9475F488D46A9082FBC38EF6AB019D1BA96CF32940CE60FE0EE5B046 5D803DF5F814CDB5526606E7F393C98903C2874E68DFCC1E5F2AA4AF17B1DDF2 A8FE6F08D9D677A1957CAF9327FBE9A2FE72197297B225334F9F79DF1445FE7B 88E882653B163A80C2220034A34E0057335FD8A64B72DBCEB3993532BAF3D55B D15B40E8E0B2FB265CE006FB49ADED7861CBC44F70F00C7B85619C9848F07EF1 08CF0127C852859CA5E515C4C9F0FDB1D777C3FEC579C460E7B886E6C5824445 3DD85E37EDDDBB0AC2099BD5AE5CB3587F50B477780221223535E1BEAE9E 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont %%BeginFont: CMMI10 %!PS-AdobeFont-1.1: CMMI10 1.100 %%CreationDate: 1996 Jul 23 07:53:57 % Copyright (C) 1997 American Mathematical Society. All Rights Reserved. 11 dict begin /FontInfo 7 dict dup begin /version (1.100) readonly def /Notice (Copyright (C) 1997 American Mathematical Society. All Rights Reserved) readonly def /FullName (CMMI10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.04 def /isFixedPitch false def end readonly def /FontName /CMMI10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 0 /.notdef put readonly def /FontBBox{-32 -250 1048 750}readonly def /UniqueID 5087385 def currentdict end currentfile eexec D9D66F633B846A97B686A97E45A3D0AA0529731C99A784CCBE85B4993B2EEBDE 3B12D472B7CF54651EF21185116A69AB1096ED4BAD2F646635E019B6417CC77B 532F85D811C70D1429A19A5307EF63EB5C5E02C89FC6C20F6D9D89E7D91FE470 B72BEFDA23F5DF76BE05AF4CE93137A219ED8A04A9D7D6FDF37E6B7FCDE0D90B 986423E5960A5D9FBB4C956556E8DF90CBFAEC476FA36FD9A5C8175C9AF513FE D919C2DDD26BDC0D99398B9F4D03D5993DFC0930297866E1CD0A319B6B1FD958 9E394A533A081C36D456A09920001A3D2199583EB9B84B4DEE08E3D12939E321 990CD249827D9648574955F61BAAA11263A91B6C3D47A5190165B0C25ABF6D3E 6EC187E4B05182126BB0D0323D943170B795255260F9FD25F2248D04F45DFBFB DEF7FF8B19BFEF637B210018AE02572B389B3F76282BEB29CC301905D388C721 59616893E774413F48DE0B408BC66DCE3FE17CB9F84D205839D58014D6A88823 D9320AE93AF96D97A02C4D5A2BB2B8C7925C4578003959C46E3CE1A2F0EAC4BF 8B9B325E46435BDE60BC54D72BC8ACB5C0A34413AC87045DC7B84646A324B808 6FD8E34217213E131C3B1510415CE45420688ED9C1D27890EC68BD7C1235FAF9 1DAB3A369DD2FC3BE5CF9655C7B7EDA7361D7E05E5831B6B8E2EEC542A7B38EE 03BE4BAC6079D038ACB3C7C916279764547C2D51976BABA94BA9866D79F13909 95AA39B0F03103A07CBDF441B8C5669F729020AF284B7FF52A29C6255FCAACF1 74109050FBA2602E72593FBCBFC26E726EE4AEF97B7632BC4F5F353B5C67FED2 3EA752A4A57B8F7FEFF1D7341D895F0A3A0BE1D8E3391970457A967EFF84F6D8 47750B1145B8CC5BD96EE7AA99DDC9E06939E383BDA41175233D58AD263EBF19 AFC0E2F840512D321166547B306C592B8A01E1FA2564B9A26DAC14256414E4C8 42616728D918C74D13C349F4186EC7B9708B86467425A6FDB3A396562F7EE4D8 40B43621744CF8A23A6E532649B66C2A0002DD04F8F39618E4F572819DD34837 B5A08E643FDCA1505AF6A1FA3DDFD1FA758013CAED8ACDDBBB334D664DFF5B53 95601766758EF6E0314FC705A02FE7E5A5430F30CB95EEF1AB3BF2A413AD2E00 C331CD7A37CE18E8C844BB589F7C7DCFC1E922E9140B46C34857E29559CBD35C F6B70C0D6F6EEC3C5E3BABDA03531B13ADCEBC557C7C4EEDDD1CCAD62744D164 65F0160ADC4E85E1C2196E5427EE94BB207B17DEF6BDBB562E7BAF706EFF1EC5 ED2471F09F5C5E423EF0A0A52DD549FAA1301278033099EFE067CD326B48AEC6 A615BAD8BD6677049E9D97405CC77A5B9994318D5C6FA83CD2F42D49A2633CC1 BA67BE46B85BE0524DD12179EFA03FA78ABD044034C4C33D95AC53FD6A747E5B E958CB88B8DC35A23345F17EDDA34B2FB6DAEF016FC62624E78F4D736EA47D41 C23C29764E5F7E4D1BC7EA70032A7898E7A671DD83BE68761C2EED7E2BA5AFEF E8903EAB9AEEC8AF26EB01F8EDD1D5A7360EF65EB90E3991A86E394C97D8602A F0AA7FD278223461272407E28D31CC8225ED475CFC6EA58B87909546DCD2B592 E40982ED4DB82B7AABDCC90750DC0CE867D9DE1D0D7B546C3C6B612F0CE352CC FF61B0C80C2B677EC5B576F00567756EBB88E175DE2760D4685838D66112C19A 8E4A1CA819859FC35C8485700A8886A6E518B61918B2A977F78634288BAA00C8 663C7017300AD48F501CABE98C7A513F441CD634797F34FF6131D4AE42A6F4C7 D0219C8099D525C68E466C1CCE978B175047CACC3905A0D6CB272985D01E036D A14AD62E3AFB0FD688E6B015CD8515FF20213788DF40F0AF8A6345584E14F3BE 1C0D77BE18E5BCEFFA59C85CFB04165E8ACA0519F7ABF825BFB1FE9D86564E2D A967774E8271C6873B44C6614BED2C8488D0B49DB23F2FC8E02E7D50C1E665BD 2337700B08882F459750ADC9A624AA4C86B4803ACDBB0F40513F6B0BB579556D 01F206323DC8EED2B9B12CBA61FACF60D03DE1EB274BFE890D979FF03F78C890 DA0AB8A056C56B634FD40B8EE4D9218577080D825E227078CE791053B22B05A5 6C787D423F47EF6213C5A984677230650DF412D1BF4D8DF50DB163126C4C4476 1EF1B770C5B933CD6E3BDB54300D3319D36A54979C839F8DFEB792D3E7F3EE25 DFEED216D9C6D2E81BE43C9F54C09394108F51BB4BE9EAC848BCFE5A97CF4D18 0161EB795EF7F23AE551B2E0CF9CFA6D4981EAA4DCDF846559E8CF2B7A031F5D 399E265322B271FF8F124884FD2E46E57C36E9DE1E96BE5252002B9B83715861 70EDAB974F2082CDDD41004D48B27BBD21E29199BB9CEC2BB3E4CDF627205180 C13D374161C8D45404FEE64E4FB8E25E5E6F3253BDF93ED8E4F71E76CC21AC0F AD50D9D3F9B5ECDD23B92AEFFF5FCDF75BC3B6F8992F8FA6F6EBFDC09CC4A92C 362D1C5F27EA8C6248E39FA164EFB5EA1ED65CD1B8E4E949905A3E293E536244 4799759214DFFBCAD00554AF680356D89223404192E41DE67887C9549177BED9 04FFB6F87DF8AC7E570A026043D955F1CD96A63C2C998332D4A569C6B264C574 1341FA86B2805B468C0645B4C43B6EB172B0BA1A586545303ACA12DCD054A830 0263B4E50AC0857E3F3CF1694A188B0B5BDA8EB4C55BC8074ED932888E072191 427D52E2D1B917E4FA02101C35CADFC0EBFE147FF9BDF05E73D1DD48105807D0 6B4BA1897D8E0284F0D087C0DA3DB80D0D56E3246C6E044EC7817F94690277B7 F3424FBA3CC6A44B3EF623863232F2B7C15894414C171CE9A527D1A1AF6F0859 E616FFFC4A99036E5BB7FD33AB2A9A90AB6B7955173509BD700B12E8B716C9F2 920F8F4A08692298CC890CAE33C5F4B378A52A04F5B937F033B7951C406B7CB2 40A918B5D19612F58E2134161CA75CE57491467C4A81AA8B317AC450FE6AD693 62602FDA0DCF6E6224189BA4EDC245453F9C8D71EADACA1B40F0BABEB58615BF 4EA42924873287E4C5F743D90EDC3EBD2EA0BB0461BED21CCA2584855E1389D6 9D6E78606E45843863CD818402A7065C0CC3C40016EB75B0D7E293234F103BAB 37F46EA754E42A52C6D1AC17B678773AD862FC7E55D59266F17B4D79BA6E4132 2A8CE6EA0A887CCEAF170A6E44E0DAC3FD1B1253F13F15A723C815451C1898AA 4325F0E27F8DF16915508D7C75DC971C2759A4DE24042351C8E6940F4725DC94 B9DE25BF60B6A4F990789100D50DDD90656E4699E8403CE2C0650813D49FD1EE D776F4C0A675DE3A3833F31209BEDE93EDB46D5AD23FBB9D4906752117DA6596 55EFAD4842764E7F2DF24939CB9B3E7E103D2D219C9B97C613A223644408BB4A 181DBE0C3F9C9FD24E86E2CAEC790D7DFD60B4705E4A126AC42D0599C8E0531F 682EF89B5621B0C0E43AFC63AA9667A7A4F323B66B0FDC28A59AB97EB46F0460 E5D06A4CEC2B5D217EC477DC34ADEEB2FAA603F6D568E19DD06E7BDB86B19CBD E8C2A78E3DE8BB4430EFB8783365940FAED99DABC3B6F282045683CF13DB72A7 90A8FEB1E552E83C0B0EE7AA9EC8E88C2D5DF35049BB4293D18A7C60C7301A91 5F90745D4E0C14C87CBCF026AB970D583CDB21CB86F9C71FDF9B9D4172761D8E 970F854D5E901A2C8FAB6DA9039A8CF5C939846B2532D9CAD2A9276A1E177E8E A4C392F06975ECE839AB5FC3AE55F9A04F491E9B294BC395CC567BAA648CA53C D17CE0EE279AF16C5F95EF778B41110B1EFF929F9062CB9F0F8835721E1CA406 C552FDAD7F2A830BD39460AAFFBE91C3E79AD251F09ADD48E1A9F250F56411B8 E31687BBAEC282944FE6D0D481D8CCD27BB0191761998DDC21C9C753308ACB9A 2157D571580B07AD6113BD3951A8FBA672B73D9299470490EDCD99AAB5BF265C 123D6CF6EBA24FBD9877C57C56156E89F9AA95990E3CAF24A225782AA99D63E6 DAB76A0EA877560399B074C7EE1CBEA12640334351DB311516E8C76EA875363F 8673DFC65105A9F1AE532D4BE7FA929AFAC9E897AC50EA9450F33B9AA1033249 A6A2C1C8E8993E19E880CCEA90877F1075666803A0288657CB7FC1A76B3FE471 06FC852E3825F1FB9A4FAFCF4C162359A436E13213CEE3F145D8E0FD9C6521B9 B2DC1B0BAF96DE08744A52C4C1FB818601383E37EE9ECC076D140C621DE5CB23 2417DD7D37900728D7B46EE0F96E4030201B0B7EEA46D095A0BB027AC022FAD6 ABF3CB5831570BEAD3BE999DBF724FF811547B897ED88649DCF4C1EFB5854EF2 D58BA3E866A080375CFA2EA375C10AE79ADFF56C58142AF65692380ABD689392 C910C1B8470D1BC89B09B8453A4C82E6E5B5CFFB7BF573361251F2DF0E27F4CF 392DE0ABE9FD11EA9C6021D05DFF127DEA144D4888F92FF103ED621615482834 9EF388EE45BD81A059A0DDE197B6E5BF6BA02616940A8CFEA3AE7C6E86A88BAF E5E98DC1EB56BB4D5BC2B885D93D0B968B6F99F3EC070F64ECDC11E1023C458D 808FFA65EEA4D44D835FA54760F6D884821C76B6C98E5608F5A22A5672BB45A5 1B563D4BB151138B3CBE504B2A0A9D85A4B532819D97F9D4EB96EC68B37ABB9D CF4E489D770F91AF5FF744E226BB48B7EAF7031010B3E418760E6424E44A022C 405CA00AD443D7AB4EAD53 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndFont TeXDict begin 39158280 55380996 1000 600 600 (main.dvi) @start /Fa 138[33 18 26 3[33 33 48 3[18 33 1[18 29 1[29 1[33 19[55 9[44 1[41 65[{ TeXBase1Encoding ReEncodeFont }15 66.4176 /Times-Italic rf /Fb 205[33 33 7[26 26 40[{ TeXf7b6d320Encoding ReEncodeFont }4 58.1154 /CMR7 rf /Fc 220[48 48 14[61 61 16[38 38{}6 83.022 /CMEX10 rf /Fd 105[33 28[33 1[48 33 33 18 26 22 1[33 33 33 52 18 2[18 33 33 22 29 33 29 33 29 3[22 1[22 3[63 1[48 41 37 44 1[37 48 48 59 41 48 1[22 1[48 37 41 48 44 44 48 6[18 33 1[33 33 1[33 33 33 33 33 18 17 22 17 2[22 22 40[{ TeXBase1Encoding ReEncodeFont }58 66.4176 /Times-Roman rf /Fe 149[20 4[30 30 30 30 96[20 1[{ TeXbbad153fEncoding ReEncodeFont } 6 58.1154 /CMSY7 rf /Ff 149[23 2[42 42 37 37 37 37 64[83 31[23 65{ TeXbbad153fEncoding ReEncodeFont }10 83.022 /CMSY10 rf /Fg 145[46 1[23 46[65 2[23 7[42 42 42 6[32 32 40[{ TeXf7b6d320Encoding ReEncodeFont }9 83.022 /CMR10 rf /Fh 145[41 59 1[35 8[29 28[49 69[{ TeXaae443f0Encoding ReEncodeFont } 5 58.1154 /CMMI7 rf /Fi 143[42 1[50 73 1[43 4[41 39 2[36 25[69 2[61 9[23 23 58[{ TeXaae443f0Encoding ReEncodeFont }11 83.022 /CMMI10 rf /Fj 133[37 42 42 60 42 42 23 32 28 42 42 42 42 65 23 42 23 23 42 42 28 37 42 37 42 37 3[28 1[28 3[78 2[51 46 55 1[46 60 60 2[60 1[28 2[46 1[60 55 55 60 5[23 23 7[42 42 2[21 28 21 2[28 28 37[46 2[{ TeXBase1Encoding ReEncodeFont }52 83.022 /Times-Roman rf /Fk 134[50 2[50 50 28 39 33 1[50 50 50 78 3[28 50 50 33 44 50 44 1[44 11[72 1[55 2[55 8[72 2[72 66 2[92 17[25 46[{ TeXBase1Encoding ReEncodeFont }26 99.6264 /Times-Roman rf /Fl 138[103 57 80 69 2[103 103 161 57 103 1[57 3[92 103 92 17[149 7[69 2[115 3[138 149 65[{ TeXBase1Encoding ReEncodeFont }18 206.559 /Times-Roman rf /Fm 206[29 49[{ TeXBase1Encoding ReEncodeFont }1 58.1154 /Times-Roman rf end %%EndProlog %%BeginSetup %%Feature: *Resolution 600dpi TeXDict begin %%PaperSize: A4 end %%EndSetup %%Page: 1 1 TeXDict begin 1 0 bop Black 4006 -307 a Fm(1)p Black Black Black Black 301 46 a Fl(A)51 b(Quick)i(Introduction)h(to)e(Bloom) g(Filters)1525 288 y Fk(Christian)24 b(Grothof)n(f)1205 404 y(Department)h(of)f(Computer)h(Sciences)1531 521 y(Purdue)g(Uni)n(v)o(ersity)1408 637 y(grothof)n(f@cs.purdue.edu)p Black -166 1050 a Fj(A)j(Bloom)f(\002lter)h([1])f(is)h(a)g(compact)e (probabilistic)g(data)i(structure)-249 1150 y(which)20 b(is)h(used)f(to)h(determine)e(if)i(an)f(element)g(might)g(be)g(part)g (of)g(a)h(set.)-249 1250 y(The)29 b(test)h(may)e(return)g(true)h(for)f (elements)h(that)g(are)g(not)g(actually)f(in)-249 1349 y(the)20 b(set)h(\(f)o(alse-positi)n(v)o(es\),)d(b)n(ut)i(will)h(ne)n (v)o(er)e(return)g(f)o(alse)h(for)g(elements)-249 1449 y(that)k(are)g(in)g(the)g(set;)i(for)e(each)f(element)h(in)g(the)g(set) g(the)g(test)h(must)f(re-)-249 1548 y(turn)15 b(true.)23 b(Bloom)15 b(\002lters)i(are)e(used)h(in)f(systems)i(where)e(man)o(y)f (set)i(tests)-249 1648 y(must)h(be)h(performed)c(and)j(where)g(putting) f(the)h(entire)g(set)h(in)g(a)g(location)-249 1748 y(with)23 b(f)o(ast)h(access)g(times)f(is)h(not)f(feasible.)33 b(A)24 b(recent)e(e)o(xample)g(which)-249 1847 y(emplo)o(ys)h(the)h (use)h(of)e(Bloom)h(\002lters)h(is)g(PlanetP)f([2],)h(a)f(peer)n (-to-peer)-249 1947 y(netw)o(ork)g(in)h(which)g(peers)g(e)o(xchange)e (summary)h(information)f(about)-249 2047 y(the)g(content)g(a)n(v)n (ailable)f(at)i(each)f(peer)g(in)h(the)f(form)f(of)h(Bloom)g (\002lters.)-249 2146 y(If)16 b(a)h(PlanetP)f(peer)g(is)h(searching)e (for)g(content,)h(it)h(determines)e(which)h(of)-249 2246 y(the)j(peers)h(adv)o(ertise)e(Bloom)h(\002lters)i(which)e(ha)n(v)o(e)g (the)g(correct)g(bits)h(set)-249 2345 y(for)f(the)h(search)f(k)o(e)o(y) -5 b(.)24 b(Only)19 b(these)h(peers)f(are)h(then)f(contacted)f(o)o(v)o (er)h(the)-249 2445 y(netw)o(ork.)31 b(This)22 b(a)n(v)n(oids)h (searches)f(of)g(peers)h(that)f(are)h(guaranteed)d(not)-249 2545 y(to)h(ha)n(v)o(e)g(the)g(desired)f(content)g(a)n(v)n(ailable)h (while)g(k)o(eeping)f(the)h(amount)-249 2644 y(of)29 b(bandwidth)f(required)f(for)i(transmitting)g(set)h(information)d (small;)-249 2744 y(Bloom)c(\002lters)g(can)g(be)g(e)o(xtraordinarily)d (compact)i(while)h(still)h(result-)-249 2844 y(ing)c(in)g(small)h (numbers)d(of)i(f)o(alse)h(positi)n(v)o(e)e(tests.)-166 2982 y(Bloom)25 b(\002lters)i(are)e(implemented)f(using)h(a)h(lar)o(ge) f(bit)h(v)o(ector)e(with)-249 3082 y Fi(m)30 b Fj(bits.)52 b(F)o(or)28 b(an)i(empty)e(set,)k(all)d(bits)h(of)f(the)g(bloom)f (\002lter)h(are)g(un-)-249 3181 y(set.)43 b(If)26 b(the)g(set)g Fi(E)32 b Fj(is)27 b(non-empty)-5 b(,)24 b Fi(k)29 b Fj(bits)e(are)f(set)g(for)g(each)f(element)-249 3281 y Fi(e)j Fj(in)g(the)g(set.)49 b(The)28 b(indices)g(of)f(these)i Fi(k)i Fj(bits)d(are)g(obtained)f(using)g Fi(k)-249 3381 y Fj(hash)i(functions)g Fi(H)342 3393 y Fh(k)423 3381 y Fg(:)41 b Fi(E)46 b Ff(!)41 b(f)p Fg(0)p Fi(;)14 b(:)g(:)g(:)f(;)h(m) 25 b Ff(\000)g Fg(1)p Ff(g)p Fj(.)53 b(Bits)32 b(can)d(be)h(set)-249 3480 y(multiple)22 b(times.)32 b(In)22 b(order)f(to)i(test)g(if)g(an)f (element)g Fi(e)g Fj(may)g(be)h(a)f(mem-)-249 3580 y(ber)h(of)h(the)g (set,)i(the)e Fi(k)j Fj(bits)d Fi(H)649 3592 y Fh(k)690 3580 y Fg(\()p Fi(e)p Fg(\))h Fj(are)f(check)o(ed.)35 b(If)24 b(all)g(are)g(set,)i Fi(e)e Fj(is)-249 3680 y(considered)g(a)j (potential)e(member)f(of)i(the)g(set)h(and)f(the)g(Bloom)f(\002lter) -249 3779 y(test)i(returns)f(true,)i(otherwise)d(f)o(alse.)45 b(If)26 b(only)g Fi(p)h Fj(percent)e(of)i(the)f(bits)-249 3879 y(in)i(the)g(entire)f(Bloom)h(\002lter)g(are)g(set)h(and)e(the)h Fi(H)1229 3891 y Fh(k)1298 3879 y Fj(return)f(optimally)-249 3978 y(balanced)21 b(random)f(v)n(alues,)i(the)h(probability)d(that)i (a)h(test)g(willreturn)e(a)-249 4078 y(f)o(alse-positi)n(v)o(e)i (result)i(is)g Fi(p)551 4048 y Fh(k)592 4078 y Fj(.)38 b(If)24 b(the)h(Bloom)f(\002lter)g(needs)g(to)h(support)-249 4178 y(the)19 b(remo)o(v)n(al)f(of)h(elements)g(from)g(the)g(set,)h(a)g (secondary)d(datastructure)-249 4277 y(that)k(counts)g(the)g(number)e (of)i(collisions)g(for)f(each)h(bit)g(is)h(used.)28 b(These)-249 4377 y(collision)g(counters)g(are)h(not)f(required)f(for)h(the)h (actual)g(test)h(and)e(can)-249 4477 y(therefore)f(be)i(stored)f(in)h (less)h(costly)f(higher)n(-latenc)o(y)d(storage.)50 b(The)-249 4576 y(length)19 b Fi(m)h Fj(of)g(the)g(bit)g(v)o(ector)e(can)i(be)g (tuned,)f(trading)f(space)i(for)f(fe)n(wer)-249 4676 y(f)o(alse-positi)n(v)o(e)g(results.)-166 4815 y(W)-7 b(e)25 b(de\002ne)f Fi(b)g Fj(to)g(be)g(the)g(number)e(of)i(bits)h(in)f (the)g(bit)g(v)o(ector)f(of)h(the)-249 4914 y(Bloom)e(\002lter)h(per)g (element)f(in)g(the)h(set)h(\()p Ff(j)p Fi(E)5 b Ff(j)20 b(\001)g Fi(b)27 b Fg(=)h Fi(m)p Fj(\).)k(The)22 b(optimal)-249 5014 y(v)n(alue)k(for)g Fi(k)k Fj(can)c(be)h(computed)e(for)h(a)h(gi)n (v)o(en)e(v)n(alue)h(of)h Fi(b)f Fj(since)h(it)h(is)-249 5113 y(independent)19 b(from)i(the)h(actual)g(size)g(of)g(the)g(set)g (and)g(only)f(dependent)-249 5213 y(on)f(the)h(ratio)177 5180 y Fh(m)p 161 5194 92 4 v 161 5242 a Fe(j)p Fh(E)s Fe(j)262 5213 y Fj(.)27 b(F)o(or)20 b(the)h(rest)g(of)g(the)f(paper)g (we)h(will)g(assume)g(that)f Fi(b)-249 5321 y Fj(is)k(kno)n(wn,)e (constant)h(and)g(cannot)f(be)h(freely)g(chosen.)33 b(This)23 b(assump-)-249 5421 y(tion)g(holds)f(in)h(particular)f(for)g(\002x)o (ed)h(sets)h(\(lik)o(e)f(dictionaries)f(or)g(other)-249 5520 y(static)c(databases\))f(on)g(de)n(vices)g(where)f(the)i(a)n(v)n (ailable)f(storage)f(space)i(is)-249 5620 y(tightly)f(bounded.)22 b(W)m(ithout)17 b(this)h(assumption,)f(the)h(Bloom)f(\002lter)h(may)p Black Black 1943 1050 a(need)h(to)h(be)f(recomputed)e(when)j Fi(b)f Fj(changes)g(signi\002cantly)g(in)h(order)e(to)1943 1150 y(obtain)h(optimal)g(f)o(alse-positi)n(v)o(e)g(rates.)2026 1243 y(This)k(lea)n(v)o(es)f(the)h(implementor)e(concerned)f(with)j (the)g(choice)f(of)g Fi(k)1943 1343 y Fj(for)i(a)h(gi)n(v)o(en)e Fi(b)i Fj(such)f(that)h(the)g(number)e(of)h(f)o(alse-positi)n(v)o(e)f (set)j(tests)f(is)1943 1442 y(minimized.)31 b(T)-7 b(ypically)i(,)22 b Fi(k)k Fj(is)d(chosen)f(as)i(a)f(discrete)f(v)n(alue)g(that)h(is)h (as)1943 1542 y(close)i(as)h(possible)f(to)g(the)h(non-discrete)d (optimal)h(v)n(alue)h(that)g(w)o(ould)1943 1641 y(minimize)c(the)h (number)e(of)h(f)o(alse-positi)n(v)o(e)g(tests)i(in)f(the)f (non-discrete)1943 1741 y(setting.)37 b(In)24 b(other)f(w)o(ords,)i Fi(k)j Fj(is)d(chosen)e(by)h(computing)e(the)i(optimal)1943 1841 y(v)n(alue)c(for)g(the)h(non-discrete)e(case)i(and)g(then)f (rounding)f(that)i(v)n(alue)f(up)1943 1940 y(or)f(do)n(wn.)k(The)c (rationale)g(behind)f(rounding)f(to)i(a)h(non-discrete)d(v)n(alue)1943 2040 y(is)27 b(that)f(it)h(is)g(ob)o(viously)d(impossible)h(to)i(set)g (a)f(non-discrete)e(number)1943 2140 y(of)c(bits)g Fi(k)k Fj(in)c(the)g(Bloom)g(\002lter)h(for)e(a)i(gi)n(v)o(en)e(element)h Fi(e)p Fj(.)2638 2242 y(C)t Fd(O)t(M)t(P)t(U)t(T)n(A)m(T)t(I)t(O)t(N)k (O)t(F)f Fi(k)2026 2361 y Fj(Suppose)g Fi(k)29 b Fj(w)o(ould)24 b(not)g(ha)n(v)o(e)g(to)h(be)g(chosen)f(as)i(a)f(discrete)f(v)n(alue.) 1943 2460 y(In)j(that)g(case,)i(the)e(optimal)g(choice)f(for)h Fi(k)k Fj(is)d(simply)f(the)g(v)n(alue)f(that)1943 2560 y(minimizes)19 b(the)i(number)d(of)i(f)o(alse-positi)n(v)o(e)f(tests,)i Fi(f)3490 2572 y Fh(k)3530 2560 y Fg(\()p Fi(b)p Fg(\))p Fj(:)2406 2827 y Fi(f)2447 2839 y Fh(k)2488 2827 y Fg(\()p Fi(b)p Fg(\))i(:=)2722 2685 y Fc(")2770 2827 y Fg(1)18 b Ff(\000)2913 2710 y Fc(\022)2974 2827 y Fg(1)g Ff(\000)3179 2770 y Fg(1)p 3127 2807 146 4 v 3127 2884 a Fi(n)g Ff(\001)h Fi(b)3282 2710 y Fc(\023)3344 2727 y Fh(k)q Fe(\001)p Fh(n)3445 2685 y Fc(#)3494 2702 y Fh(k)3548 2827 y Fi(:)367 b Fj(\(1\))1943 3022 y(The)20 b(v)n(alue)f(of)h Fi(k)k Fj(that)c(minimizes)g Fi(f)3001 3034 y Fh(k)3041 3022 y Fg(\()p Fi(b)p Fg(\))h Fj(is:)2739 3214 y Fi(k)s Fg(\()p Fi(b)p Fg(\))i(=)g Fi(b)18 b Ff(\001)g Fg(ln)c(2)p Fi(:)699 b Fj(\(2\))2026 3334 y(F)o(or)29 b(this)i(v)n(alue)e(of)h Fi(k)s Fg(\()p Fi(b)p Fg(\))p Fj(,)j(the)c(number)g(of)g(f)o(alse)i (positi)n(v)o(es)e Fi(f)3894 3346 y Fh(k)3935 3334 y Fg(\()p Fi(b)p Fg(\))1943 3457 y Fj(w)o(ould)d(be)2283 3390 y Fc(\000)2331 3424 y Fb(1)p 2331 3438 34 4 v 2331 3486 a(2)2374 3390 y Fc(\001)2412 3407 y Fh(k)q Fb(\()p Fh(b)p Fb(\))2534 3457 y Fj(.)46 b(But)28 b(since)f(the)g(actual)g (number)e(of)i(hash)g(func-)1943 3557 y(tions)k(must)h(be)f(discrete,)j Fi(k)s Fg(\()p Fi(b)p Fg(\))e Fj(must)f(be)h(rounded)d(up)i(or)g(do)n (wn)f(to)1943 3656 y(obtain)g(a)h(useable)f(discrete)h(v)n(alue)f(for)h (the)f(number)f(of)i(hash)g(func-)1943 3756 y(tions.)g(Determining)21 b(which)g(bound)g(\(lo)n(wer)g(or)h(upper\))f(is)i(optimal)e(is)1943 3856 y(accomplished)c(by)j(inserting)f(the)g(v)n(alue)g(into)h(formula) e(\(1\))n(.)26 b(Note)19 b(that)1943 3955 y(while)f(making)f(a)i (probabilistic)e(choice)g(between)h Ff(b)p Fi(k)s Ff(c)g Fj(and)g Ff(d)p Fi(k)s Ff(e)g Fj(could)1943 4055 y(be)e(used)g(to)g (achie)n(v)o(e)f(the)h(optimal)g(information)e(density)h(in)i(the)f (Bloom)1943 4155 y(\002lter)26 b(\(by)e(probabilistically)g(setting) 3085 4122 y Fb(1)p 3085 4136 V 3085 4183 a(2)3155 4155 y Fj(of)h(the)g(bits\),)i(this)f(impro)o(v)o(ed)1943 4254 y(approximation)d(w)o(ould)j(not)h(result)g(in)f(a)i(better)e (\(smaller\))g(v)n(alue)g(for)1943 4354 y Fi(f)1984 4366 y Fh(k)2048 4354 y Fj(since)e(the)f(resulting)g Fi(f)32 b Fj(is)25 b(just)f(a)f(linear)h(combination)d(of)i(the)g(tw)o(o)1943 4453 y(e)o(xtremes)d Fi(f)2304 4468 y Fe(b)p Fh(k)q Fe(c)2428 4453 y Fj(and)h Fi(f)2611 4468 y Fe(d)p Fh(k)q Fe(e)2735 4453 y Fj(and)g(can)g(thus)h(only)e(be)i(w)o(orse)g(than)f(the)g Fi(f)3994 4465 y Fh(k)1943 4553 y Fj(for)e(the)h(best)h(discrete)f(v)n (alue)f(of)h Fi(k)s Fj(.)2584 4655 y(A)q Fd(C)t(K)t(N)t(O)r(W)t(L)t(E)t (D)t(G)t(E)t(M)t(E)t(N)t(T)t(S)2026 4774 y Fj(The)i(author)f(wishs)i (to)g(thank)e(Igor)h(Wronsk)o(y)f(for)h(pushing)f(for)g(the)1943 4874 y(implementation)f(of)j(the)g(Bloom)f(\002lter)i(in)h Fd(G)t(N)t(U)r Fj(net)e(and)f(Krista)h(Ben-)1943 4973 y(nett)d(for)g(editing.)2756 5146 y(R)t Fd(E)t(F)t(E)t(R)t(E)t(N)t(C)t (E)t(S)p Black 1943 5239 a([1])p Black 42 w(Burton)c(Bloom.)21 b(Space/time)d(trade-of)n(fs)f(in)f(hash)g(coding)g(with)h(allo)n(w)o (able)h(errors.)2062 5312 y Fa(Communications)h(of)f(the)f(A)n(CM)p Fd(,)g(13\(7\):422\226426,)i(1970.)p Black 1943 5385 a([2])p Black 42 w(Francisco)f(Mathias)f(Cuenca-Acuna,)i(Richard)f(P)-7 b(.)15 b(Martin,)i(and)g(Thu)f(D.)f(Nguyen.)2062 5458 y(Planetp:)27 b(Using)19 b(gossiping)i(and)e(random)h(replication)j(to) c(support)h(reliable)i(peer)o(-)2062 5531 y(to-peer)e(content)h(search) f(and)f(retrie)n(v)n(al.)34 b(T)-5 b(echnical)21 b(Report)f (DCS-TR-494,)g(Rut-)2062 5604 y(gers)d(Uni)n(v)o(ersity)l(,)i(2002.)p Black Black eop end %%Trailer userdict /end-hook known{end-hook}if %%EOF libextractor-1.3/src/plugins/testdata/ole2_excel.xls0000644000175000017500000037200012016742766017647 00000000000000ࡱ> B  !"#$%&'()*+,-./0123456789:;<=>?@ACDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~R FZ(WorkbookMSummaryInformation(DocumentSummaryInformation8 %\pJV Ba==4+:8X= ?x 8X@"1Verdana1Verdana1Verdana1Verdana1Verdana1 Verdana1$Verdana1Verdana1Verdana1Verdana1Verdana1Verdana1Verdana1Verdana1Verdana1Verdana1Verdana1Verdana1Verdana1Verdana1Verdana1Verdana1Verdana1Verdana1Verdana1Verdana1Verdana1Verdana1Verdana1Verdana1Verdana1Verdana1 Comic Sans MS"$"#,##0_);\("$"#,##0\)!"$"#,##0_);[Red]\("$"#,##0\)""$"#,##0.00_);\("$"#,##0.00\)'""$"#,##0.00_);[Red]\("$"#,##0.00\)7*2_("$"* #,##0_);_("$"* \(#,##0\);_("$"* "-"_);_(@_).))_(* #,##0_);_(* \(#,##0\);_(* "-"_);_(@_)?,:_("$"* #,##0.00_);_("$"* \(#,##0.00\);_("$"* "-"??_);_(@_)6+1_(* #,##0.00_);_(* \(#,##0.00\);_(* "-"??_);_(@_)                + ) , *     `#Sheet1YSheet2 results.prn d; res2;   runlog= (  runlog;;" runlog_1; *aiP 3  @@  6jessSunNoCache jessUsINL2 jessUsJIT2jessUsNoCache2 kawaSunBasekawaSunNoCache kawaUsINL2 kawaUsJIT2kawaUsNoCache2 rhinoSunBaserhinoSunNoCache rhinoUsINL2 rhinoUsJIT2rhinoUsNoCache2 sootSunBasesootSunNoCache sootUsINL2 sootUsJIT2sootUsNoCache2UsJit4AVGUsJitUsInline with  I tobaSunBasetobaSunNoCache tobaUsINL2 tobaUsJIT2tobaUsNoCache2EHGJJAJEKARHSOCACOBLTOXMBase SunNoCacheInlineJit UsNoCache XMLSunBaseCPenhydra%assign %assign hit%arrystore hit %checkast%memory%selfarr%leaftime Ktest/sec %asshits2 %arrayhits%assmiss %arrmiss3 implementsckcastnonleafcode memorycapgjkawabloatjessjavasrcXMLtobarhinosootconfined avg parentspromotemembarsleafs hierar trav#classes traversedsites self plain self arrays self leaf#test #positive #negative#self #cache check #cache hits #cache update#assign cache cecks#assign cache hits#assign cache update#arraystore cache checks#arraystore cache hits#array store updates #check casts#extends tests#implements tests#classes #interfaces#max implemented ifcsavg ifc / classavg ifc iterationsavg extends iter memory sun memory usimplements sites extends sitescheckcast sitesselftest sitesunresolved sitesarraystore sites %positive%self %cache hit%extends %implements %selfplain XMLSunNoCache XMLUsINL2 XMLUsJIT2 XMLUsNoCache2 bloatSunBasebloatSunNoCache bloatUsINL2 bloatUsJIT2bloatUsNoCache2 capSunBase capSunNoCache capUsINL2 capUsJIT2 capUsNoCache2confinedSunBaseconfinedSunNoCacheconfinedUsINL2confinedUsJIT2confinedUsNoCache2enhydraSunBaseenhydraSunNoCache enhydraUsINL2 enhydraUsJIT2enhydraUsNoCache2 gjSunBase gjSunNoCachegjUsINL2gjUsJIT2 gjUsNoCache2javasrcSunBasejavasrcSunNoCache javasrcUsINL2 javasrcUsJIT2javasrcUsNoCache2 jessSunBaseK y?  V . \  v RF  G GRDk,dd%4k, }>D} ??I D} @@ D} AA D} BBD} CC DFFDFFlFFF%F FF F F F Fi FFF,E,E  Z [ \ ] ^ _ ` a b c d e f g h i j k l m P n o p q Q R 8 S T U !V "r #s $t %u &v 'w (W )X *Y +x ,y -z .2 /3 04 15 2{ 3| 46 5} 67 78 89 9: :; ;< <= >> ?? @@ Ay BA CB ED  1xY@"Aw2AKz=A!#A2A^%"AE@. q.pp'As@@\@(@}?5^I@5^I @J +@y&1?@@$@@!@9U? DDTm@3@X@Z@?Q@@W@E@A@9@&f%`o@i%*%+?nW@ 9dDD%,@z7@ +dDD%-rI@ ,dDD%.XAR@ -dD D%/:V9@@ .dD D %0ڳ{X@ /dD D %11wZQ@ 0dDD%2WQ@ 1dDD%3 =@ 2dDD%4,d! @M@3dDD%5Ax7@ 4dD(D%6KE|? 5dD)D(7,? 3D*D(D)~ 8ب@&9n2}iT@ 7DD8&:18@;dD D&;4я7@5dD D,<BIH@:dD D D,=2]Z?<dD D D+>@ =dD:D;D<,?7@ >DDD8%@ GM@?DD8!AH) ? @ DD!BR@ 6 DD'C'1Z@ BD!DZd;O'@ C D!E-d! Y? D DD % Ex IA AndxN.@.R\*@y@@>@ ٲ'@p@5@@ rh?J +?K7A`?Mb?@|@(@@||?  LLT@i@@`@s@n@`o@_@Q@S@6t@Zbx*+{3W@++ ++ dLL,scK@,, ,, dLL-M>drX@-- -- dLL.g+X@.. .. dLL/Z1#W@// // dLL0!ܪʼnX@00 00 dLL1 RT@11 11 dLL2sB!X@22 22 dLL%3 =@3dDD4 %FpO@44 44 dLL5'#IJ@ A5 55 dLL6iQ?66 66 dLL7wr?77 77 LLL~ 8@9XoY@99 99 LL:@ V@=: :: dLL;3Jd@ :; ;; dLL<Ky@ ;<  << dLLL=!-? <=  == dLLL>Q @>> >> dLLL?P61@@?  ?? LLL@UgKuT@ ?@ @@ LLAo?`?AA AA LLBO@BB BB LLC;On@CC CC LDrh|@DD DD LEE 1?EE EE LL  FxWN')~Р|n4Az~/A^(Mh@"?t@;@@Zd;?E?~ '1Z?@v@(@@ | ?Tp@@؊@@@0@~@@R@J@r@)*+*T5W@++,wQ@,,-E!W@--.Ӕ*WR@../ԫ~V@//0;gX@001@wqP@1126X@223{, w>3 33 LL4/`Y.UP@445UޓG@556f`8@667г ?77~ 83@98Hh@99:T5P@::;t ;9@;;<@<<=C?==>@@>>?mp+ԕi@??@:؆{Jx@@@AM5?AABN@BBCI +5@CCD-@DDE3)h?EE " GxNG&D9AW >`@ڎBi@k4AQ4A@~{$b"`@v@3@@+?oʡ@~ V@^I +?ܸ@-@&@@hP ?Tq@@y@m@j@Z@^@7@@[@S@J*+h׏wV@++,PU$T@,,-kbX@--.UQW?V@../>bՁW@//0<%TX@001E@ry @112diX@223AoAj?334eilDP@445 T@5568 ?6675 {?77~ 8U@9H㤆 Li@99:JȓoMT@::;U@;;<WV@<<=#*?==>?N@>>?Սmh@??@@@@Ag`e?AABV@BBCn@CCD~jt@DDE zv?EE ' HxrGZ Lj Nb֟6b:Sv͋GAIGA>@" R|9@<@@L7A`?~ Pg@#~j?1Zd @@9@1@Ȫ@֬Yf?Tz@@h@@H@@@@g@@}lv@$@>>?uի#w@??@q.Ku@@@AbcF?AABT@BBCrh|<@CCDK7A!@DDEt&?EE ! Ix{=ȟSA@#>;29@Z> k @w/Ա'A<@6rh=@y@@@@A`"?-?V-?Zd;O?>@I@&@D@:S?T`u@@x@_@Z@W@@U@2@@V@L**+!\,X@++,KtV@,,-ڀddX@--.#?0"=U@../: \~X@//0efWX@001dA@112ˁX@2236p.?334?N@445}S@556pVv/*@667=i.~.?77~ 8D@9ͪOA`@99:p윛T@::;TAf-@;;<=s"a?<<=p28V~?==>=eȤ?>>?;NёT@??@udG@@@A^W?AABQ@BBC+@CCD-!@DDEZo?EE  Jx* 7MAl+AFO|lP.Yn:A6A A@:<4Am@6@@~jt?㥛 ?*?k@P@$@$@ԕ@,4rO?T e@@@e@c@`@Z@0@9@N$@2A*+lZ?T@++, w;@,,-s#J@--.C\ETW@../_F@//0 U@001@P}P@1126Ԧ Q@223ao@P0?3342)^ 3P@4451LF;@5567D?667#)EM?77~ 8I@9d;-W@99:m0 4C@::;l??:@;;<G&_F@<<=//-?==>|k'@>>?Ob>@??@)O@@@AFKzp?AABO@BBC@CCDNbX9@DDE& dR?EE ) KxBȣ}@`Vã8n*T O3Al@S>pt@S@"@y&1?uV?jt?T㥛 ?ܺ@ϴ@&@@%i??T p@,@@b@@W@a@R@L@V@"Nj7@`*+UtS6?>>?|?5^B;@??@g,r@@@AoPɌg?AAB@Q@BBCS㥛 @CCD/$@DDEN?EE ( L~ t?*AP*A@U&AB461`@!@A@NA7A@lHAVo4(@k@0@@H@ K7A? +? /$? @@"@4@  O ?T  e@@_@@V@Q@@U@J@2@Z@A0 A+* +/X@++ ,4iEU@,, -& @CBW@-- . RK>P@.. /#̔X@22 3Ln#R?33 4F(P@44 5ٝ]N@55 6 %?i\8@66 7E4ʼ?77~ 8:@ 9 J@@99 :\N@:: ;rO8ZA@;; <4@<< =d{G?== >O.A]?>> ?=O15@?? @ '@@@ AG>:?AA BI@BB CJ +@CC Doʡ @DD E|?EE # M~ rr{KlGAL=.~[/ A"6fAr@~XEAs@5@@N@ S? x&1?$ P`@@@(@@ >? T m@@@t@C@@q@ p@@b@5@@<@z<* +|B6P0R@ ++ ,7T1VyD@ ,, -(W@ -- .LQS@ .. /# Q@ // 0^iX@ 00 1dqJB@ 11 2_R`S@ 22 3h) '? 33 4KO@ 44 5,npD@ 55 6y/]'? 66 7e*d? 77~ 8E@ 9+ ur@ 99 :Z~AJ@ :: <[3:4@ << =ͻz? == >Rrώ:@ >> ?g@ ?? @iFť[@ @@ A84? AA BQ@ BB CGz @ CC D@ DD E_7B? EE $ N~ c$f\?ߐZm>F p= FAb10@& eA@Y@@ _@ bX9@~ s@ Pn@ @B@1@ݱ@ qē? T @2@@<@P~@x@w@P@P@ߐ* +a,T@ ++ ,% H@ ,, -SRV@ -- .IT@ .. /oS@ // 0MnNX@ 00 1<.H@ 11 2|B!@ >> ?>"v@ ?? @*&=u@ @@ AY %w? AA BX@ BB CV-8@ CC D.@ DD EII? EE & Ox &.!zTfҗrf 1ZX[jAZ$Avfn1{@0}@=@@ K?~  e@ S㥛? S? @!@&@@ ŭQ ? T y@@@[@@@U@V@P@4@@p@<r[Rҗ* +쾯W@ ++ ,5S@ ,, -7wbW@ -- .O@ .. /tVͻV@ // 0|68HV@ 00 1OH)@ 11 24ӞX@ 22 3{!? 33 4G6P@ 44 5⃺K@ 55 6bb7@ 66 7ܾt? 77~ 81@ 9Κg4d@ 99 :n \L@ :: ;XE/T@@ ;; <'VQ8]@ << =_$z @ == > @ >> ? ix~@ ?? @ZF0g@ @@ AqޙM? AA BM@ BB C#~j@ CC Dsh|?@ DD EGrZn? EE' Mb@ -% y.# @8 % %# @  % %# @  % %# I@ % %' *&@ ,% 2 ' @% % ' t? %  ' !x@ % !! ' +<_V@ E% ++y ' ,3ŭHM@ !% ,, ' -oe#U@ +% --% ' 8C@ % 88% 'ECjA% % !@  D D !P? D D !''@  D D!}s͑{@  DD  !8Nt@ 8 D D 8 C DCN,ب@|@@@ȧ@@@@@@f@@7(oDTv(    j  0NMM?7OD5]`'  %M com.apple.print.PageFormat.PMHorizontalRes com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMHorizontalRes 3.000000000000000e+02 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-22T15:11:37Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMOrientation com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMOrientation 2 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-22T15:11:37Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMScaling com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMScaling 1.000000000000000e+00 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-22T05:13:35Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMVerticalRes com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMVerticalRes 3.000000000000000e+02 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-22T15:11:37Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMVerticalScaling com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMVerticalScaling 1.000000000000000e+00 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-22T05:13:35Z com.apple.print.ticket.stateFlag 0 com.apple.print.subTicket.paper_info_ticket com.apple.print.PageFormat.PMAdjustedPageRect com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMAdjustedPageRect 0.000000000000000e+00 0.000000000000000e+00 2.400000000000000e+03 3.058333333333333e+03 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-22T15:11:37Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMAdjustedPaperRect com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMAdjustedPaperRect -7.500000000000000e+01 -7.500000000000000e+01 2.475000000000000e+03 3.225000000000000e+03 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-22T15:11:37Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.PMPaperName com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMPaperName na-letter com.apple.print.ticket.client com.apple.print.pm.PostScript com.apple.print.ticket.modDate 2000-07-28T22:57:04Z com.apple.print.ticket.stateFlag 1 com.apple.print.PaperInfo.PMUnadjustedPageRect com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMUnadjustedPageRect 0.000000000000000e+00 0.000000000000000e+00 7.340000000000000e+02 5.760000000000000e+02 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-22T05:13:35Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.PMUnadjustedPaperRect com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMUnadjustedPaperRect -1.800000000000000e+01 -1.800000000000000e+01 7.740000000000000e+02 5.940000000000000e+02 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-22T05:13:35Z com.apple.print.ticket.stateFlag 0 com.apple.print.ticket.APIVersion 00.20 com.apple.print.ticket.privateLock com.apple.print.ticket.type com.apple.print.PaperInfoTicket com.apple.print.ticket.APIVersion 00.20 com.apple.print.ticket.privateLock com.apple.print.ticket.type com.apple.print.PageFormatTicket Mz,, ` e(HH(dh "d??3h *,h *, h *, PH  0(   3d23 M NM4  3Q  instanceofQ ; ??Q ; Q3_ O   MM<4E4  3Q  checkcastQ ; @@Q ; Q3_ O  7 fE =7 i @za h>"f[g( Narrow vertical MM<4 3_ O  7 fE =7 i @za h>"f[g( Narrow vertical MM<4E4D $% M3O&Q4$% M3O& Q4FAUR 3O-Uc 3 b#M43*p@#M! M4% c^Mp3Om& Q  KTests/Second'4523   43("  3O % Mp3OQ44444 e EH EH CA CA GJ GJ KA KA BL BL JE JE JA JA XM XM TO TO RH RH SO SO CO COe7@ GM@P61@UgKuT@mp+ԕi@:؆{Jx@Սmh@@uի#w@q.Ku@;NёT@udG@Ob>@)O@|?5^B;@g,r@=O15@ '@ g@ iFť[@ >"v@ *&=u@ ix~@ ZF0g@e rj  0NMM?#z-=b]`'  %M com.apple.print.PageFormat.PMHorizontalRes com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMHorizontalRes 3.000000000000000e+02 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-22T05:13:00Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMOrientation com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMOrientation 2 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-22T05:13:00Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMScaling com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMScaling 1.000000000000000e+00 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-22T05:12:42Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMVerticalRes com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMVerticalRes 3.000000000000000e+02 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-22T05:13:00Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMVerticalScaling com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMVerticalScaling 1.000000000000000e+00 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-22T05:12:42Z com.apple.print.ticket.stateFlag 0 com.apple.print.subTicket.paper_info_ticket com.apple.print.PageFormat.PMAdjustedPageRect com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMAdjustedPageRect 0.000000000000000e+00 0.000000000000000e+00 2.400000000000000e+03 3.058333333333333e+03 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-22T05:13:00Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMAdjustedPaperRect com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMAdjustedPaperRect -7.500000000000000e+01 -7.500000000000000e+01 2.475000000000000e+03 3.225000000000000e+03 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-22T05:13:00Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.PMPaperName com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMPaperName na-letter com.apple.print.ticket.client com.apple.print.pm.PostScript com.apple.print.ticket.modDate 2000-07-28T22:57:04Z com.apple.print.ticket.stateFlag 1 com.apple.print.PaperInfo.PMUnadjustedPageRect com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMUnadjustedPageRect 0.000000000000000e+00 0.000000000000000e+00 7.340000000000000e+02 5.760000000000000e+02 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-22T05:12:42Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.PMUnadjustedPaperRect com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMUnadjustedPaperRect -1.800000000000000e+01 -1.800000000000000e+01 7.740000000000000e+02 5.940000000000000e+02 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-22T05:12:42Z com.apple.print.ticket.stateFlag 0 com.apple.print.ticket.APIVersion 00.20 com.apple.print.ticket.privateLock com.apple.print.ticket.type com.apple.print.PaperInfoTicket com.apple.print.ticket.APIVersion 00.20 com.apple.print.ticket.privateLock com.apple.print.ticket.type com.apple.print.PageFormatTicket Mz,, ` e(HH(dh "d??3h *, h *, h *, @3d23 M NM4  3QQ ; ++Q ; Q3_ O   MM<4E4D $% M3O& Q4$% M3O& Q4FATQ 3O8T0D3 b#M43*Y@#M! M4% M3On& Q % successful tests'4523   43(" 444 e EH CA GJ KA BL JE JA XM TO RH SO COe?nW@{3W@*T5W@h׏wV@w[T@!\,X@lZ?T@U com.apple.print.PageFormat.PMHorizontalRes com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMHorizontalRes 3.000000000000000e+02 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-22T05:11:58Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMOrientation com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMOrientation 2 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-22T05:11:58Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMScaling com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMScaling 1.000000000000000e+00 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-22T05:11:36Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMVerticalRes com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMVerticalRes 3.000000000000000e+02 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-22T05:11:58Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMVerticalScaling com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMVerticalScaling 1.000000000000000e+00 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-22T05:11:36Z com.apple.print.ticket.stateFlag 0 com.apple.print.subTicket.paper_info_ticket com.apple.print.PageFormat.PMAdjustedPageRect com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMAdjustedPageRect 0.000000000000000e+00 0.000000000000000e+00 2.400000000000000e+03 3.058333333333333e+03 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-22T05:11:58Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMAdjustedPaperRect com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMAdjustedPaperRect -7.500000000000000e+01 -7.500000000000000e+01 2.475000000000000e+03 3.225000000000000e+03 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-22T05:11:58Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.PMPaperName com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMPaperName na-letter com.apple.print.ticket.client com.apple.print.pm.PostScript com.apple.print.ticket.modDate 2000-07-28T22:57:04Z com.apple.print.ticket.stateFlag 1 com.apple.print.PaperInfo.PMUnadjustedPageRect com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMUnadjustedPageRect 0.000000000000000e+00 0.000000000000000e+00 7.340000000000000e+02 5.760000000000000e+02 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-22T05:11:36Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.PMUnadjustedPaperRect com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMUnadjustedPaperRect -1.800000000000000e+01 -1.800000000000000e+01 7.740000000000000e+02 5.940000000000000e+02 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-22T05:11:36Z com.apple.print.ticket.stateFlag 0 com.apple.print.ticket.APIVersion 00.20 com.apple.print.ticket.privateLock com.apple.print.ticket.type com.apple.print.PaperInfoTicket com.apple.print.ticket.APIVersion 00.20 com.apple.print.ticket.privateLock com.apple.print.ticket.type com.apple.print.PageFormatTicket Mz,, ` e(HH(dh "d??3h *,h *,h *,h -PH00(  P3d23 M NM4  3Q  Obj-cache hitQ ; ::Q ; Q3_ O F3f  MM<4E4  3Q  Arr-cache hitQ ; ;;Q ; Q3_ O ff6  MM<4E4  3Q Obj-cache missQ ; <<Q ; Q3_ O  fS K i.@za.Hy]_{`@U( f3f3Dark downward diagonal MM<4E4  3Q Arr-cache missQ ; >>Q ; Q3_ O , fO G, i*@za$E2fY_,I!)( >|Wide upward diagonal MM<4E4D $% M3O&Q4$% M3O&Q4FAT? = 3O7TP :3 b#M43*Y@#M! M4% Mp3O:&Q  % cache'4523   43("  x3O % Mp3O&Q44444 e EH EH EH EH CA CA CA CA GJ GJ GJ GJ KA KA KA KA BL BL BL BL JE JE JE JE JA JA JA JA XM XM XM XM TO TO TO TO RH RH RH RH SO SO SO SO CO CO CO COe18@4я7@BIH@@@ V@3Jd@Ky@Q @T5P@t ;9@@@@JȓoMT@U@WV@?N@iqm.L@ O~S0+@ )=o3@v@$@p윛T@TAf-@=s"a?=eȤ?m0 4C@l??:@G&_F@|k'@8@/BH@}x!@fCDxE@tS6?\N@rO8ZA@4@O.A]? Z~AJ@ `3@ [3:4@  Ӫ˺@ }Ag}L@ "\0@ zG61@ B!@ n \L@ XE/T@@ 'VQ8]@  @e rj  0NMM?",h0]`'  %M com.apple.print.PageFormat.PMHorizontalRes com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMHorizontalRes 3.000000000000000e+02 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-22T05:13:21Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMOrientation com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMOrientation 2 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-22T05:13:21Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMScaling com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMScaling 1.000000000000000e+00 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-22T05:13:04Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMVerticalRes com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMVerticalRes 3.000000000000000e+02 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-22T05:13:21Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMVerticalScaling com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMVerticalScaling 1.000000000000000e+00 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-22T05:13:04Z com.apple.print.ticket.stateFlag 0 com.apple.print.subTicket.paper_info_ticket com.apple.print.PageFormat.PMAdjustedPageRect com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMAdjustedPageRect 0.000000000000000e+00 0.000000000000000e+00 2.400000000000000e+03 3.058333333333333e+03 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-22T05:13:21Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMAdjustedPaperRect com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMAdjustedPaperRect -7.500000000000000e+01 -7.500000000000000e+01 2.475000000000000e+03 3.225000000000000e+03 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-22T05:13:21Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.PMPaperName com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMPaperName na-letter com.apple.print.ticket.client com.apple.print.pm.PostScript com.apple.print.ticket.modDate 2000-07-28T22:57:04Z com.apple.print.ticket.stateFlag 1 com.apple.print.PaperInfo.PMUnadjustedPageRect com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMUnadjustedPageRect 0.000000000000000e+00 0.000000000000000e+00 7.340000000000000e+02 5.760000000000000e+02 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-22T05:13:04Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.PMUnadjustedPaperRect com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMUnadjustedPaperRect -1.800000000000000e+01 -1.800000000000000e+01 7.740000000000000e+02 5.940000000000000e+02 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-22T05:13:04Z com.apple.print.ticket.stateFlag 0 com.apple.print.ticket.APIVersion 00.20 com.apple.print.ticket.privateLock com.apple.print.ticket.type com.apple.print.PaperInfoTicket com.apple.print.ticket.APIVersion 00.20 com.apple.print.ticket.privateLock com.apple.print.ticket.type com.apple.print.PageFormatTicket Mz,, ` e(HH(dh "d??3h *,h *,h *,h -PH@0(  R3d23 M NM4  3Q  scalarQ ; 55Q ; Q3_ O F fO G i*@za5Oc}у%4( f3f3Dark upward diagonal MM<4E4  3Q  arraystoreQ ; 66Q ; Q3_ O   MM<4E4D $% Mp3O&Q4$% Mp3O&Q4FAT ? 3O7T ;3 b#M43*Y@#M! M4% 6Mp3O9&Q  selftests'4523   43(" ~ Q;3O~ Q% Mp3O&Q44444 eee rj  0NMM?D*LH]`'  %M com.apple.print.PageFormat.PMHorizontalRes com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMHorizontalRes 3.000000000000000e+02 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-22T05:14:54Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMOrientation com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMOrientation 2 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-22T05:14:54Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMScaling com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMScaling 1.000000000000000e+00 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-22T05:14:18Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMVerticalRes com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMVerticalRes 3.000000000000000e+02 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-22T05:14:54Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMVerticalScaling com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMVerticalScaling 1.000000000000000e+00 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-22T05:14:18Z com.apple.print.ticket.stateFlag 0 com.apple.print.subTicket.paper_info_ticket com.apple.print.PageFormat.PMAdjustedPageRect com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMAdjustedPageRect 0.000000000000000e+00 0.000000000000000e+00 2.400000000000000e+03 3.058333333333333e+03 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-22T05:14:54Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMAdjustedPaperRect com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMAdjustedPaperRect -7.500000000000000e+01 -7.500000000000000e+01 2.475000000000000e+03 3.225000000000000e+03 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-22T05:14:54Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.PMPaperName com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMPaperName na-letter com.apple.print.ticket.client com.apple.print.pm.PostScript com.apple.print.ticket.modDate 2000-07-28T22:57:04Z com.apple.print.ticket.stateFlag 1 com.apple.print.PaperInfo.PMUnadjustedPageRect com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMUnadjustedPageRect 0.000000000000000e+00 0.000000000000000e+00 7.340000000000000e+02 5.760000000000000e+02 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-22T05:14:18Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.PMUnadjustedPaperRect com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMUnadjustedPaperRect -1.800000000000000e+01 -1.800000000000000e+01 7.740000000000000e+02 5.940000000000000e+02 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-22T05:14:18Z com.apple.print.ticket.stateFlag 0 com.apple.print.ticket.APIVersion 00.20 com.apple.print.ticket.privateLock com.apple.print.ticket.type com.apple.print.PaperInfoTicket com.apple.print.ticket.APIVersion 00.20 com.apple.print.ticket.privateLock com.apple.print.ticket.type com.apple.print.PageFormatTicket Mz,, ` e(HH(dh "d??3h *,h *,h -PHP0(  R3d23 M NM4  3Q  Leaf classesQ ; Q ; Q3_ O   MM<4E4  3Q Non leaf classesQ ; BBQ ; Q3_ O  fA 9 i@za6ݢHsԠ( 33333333Dark vertical MM<4E4  3Q  InterfacesQ ; Q ; Q3_ O 333?  MM<4E4D $% M3O&Q4$% M3O&Q4FAT' 3O7T8 3 b#M43*@#M! M4523   43("  b3O b% M3O&Q44444 e EH EH EH CA CA CA GJ GJ GJ KA KA KA BL BL BL JE JE JE JA JA JA XM XM XM TO TO TO RH RH RH SO SO SO CO CO COem@R@@\@@i@O@5@p@N@;@q@V@3@z@T@<@`u@Q@@@ e@O@6@ p@@Q@S@ e@I@0@ m@ Q@ 5@ @ X@ Y@ y@ M@ =@e rj  0NMM?DK,]`'t  %M com.apple.print.PageFormat.PMHorizontalRes com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMHorizontalRes 3.000000000000000e+02 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-22T05:14:12Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMOrientation com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMOrientation 2 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-22T05:14:12Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMScaling com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMScaling 1.000000000000000e+00 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-22T05:13:56Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMVerticalRes com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMVerticalRes 3.000000000000000e+02 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-22T05:14:12Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMVerticalScaling com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMVerticalScaling 1.000000000000000e+00 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-22T05:13:56Z com.apple.print.ticket.stateFlag 0 com.apple.print.subTicket.paper_info_ticket com.apple.print.PageFormat.PMAdjustedPageRect com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMAdjustedPageRect 0.000000000000000e+00 0.000000000000000e+00 2.400000000000000e+03 3.058333333333333e+03 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-22T05:14:12Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMAdjustedPaperRect com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMAdjustedPaperRect -7.500000000000000e+01 -7.500000000000000e+01 2.475000000000000e+03 3.225000000000000e+03 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-22T05:14:12Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.PMPaperName com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMPaperName na-letter com.apple.print.ticket.client com.apple.print.pm.PostScript com.apple.print.ticket.modDate 2000-07-28T22:57:04Z com.apple.print.ticket.stateFlag 1 com.apple.print.PaperInfo.PMUnadjustedPageRect com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMUnadjustedPageRect 0.000000000000000e+00 0.000000000000000e+00 7.340000000000000e+02 5.760000000000000e+02 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-22T05:13:56Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.PMUnadjustedPaperRect com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMUnadjustedPaperRect -1.800000000000000e+01 -1.800000000000000e+01 7.740000000000000e+02 5.940000000000000e+02 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-22T05:13:56Z com.apple.print.ticket.stateFlag 0 com.apple.print.ticket.APIVersion 00.20 com.apple.print.ticket.privateLock com.apple.print.ticket.type com.apple.print.PaperInfoTicket com.apple.print.ticket.APIVersion 00.20 com.apple.print.ticket.privateLock com.apple.print.ticket.type com.apple.print.PageFormatTicket Mz,, ` e(HH(dh "d??3h *,h *,h *,h -PH`0(  S3d23 M NM4  3Q CodeQ ; CCQ ; Q3_ O F  MM<4E4  3Q DataQ ; DDQ ; Q3_ O 3f fO G i*@za5Oc}у%4( f3f3Dark upward diagonal MM<4E4D $% M3O&Q4$% M3O&Q4FAT B 3O6T =3 b#M43*F@#M! M4% 1dMp3OZ&Q  Memory in KB'4523   43(" LS993OLS% Mp3O&Q44444 e EH EH CA CA GJ GJ KA KA BL BL JE JE JA JA XM XM TO TO RH RH SO SO CO COe'1Z@Zd;O'@;On@rh|@I +5@-@n@~jt@rh|<@K7A!@+@-!@@NbX9@S㥛 @/$@J +@oʡ @ Gz @ @ V-8@ .@ #~j@ sh|?@e >.@ ; ;;>@Irunlog runlog})., $,5>FOX`hpvMacintosh HD:Users:jv:runlogIrunlog_1, runlog_1).,#,5>FOX`hpv !Macintosh HD:Users:jv:runlog.form % <w  dMbP?_*+%M com.apple.print.PageFormat.PMHorizontalRes com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMHorizontalRes 3.000000000000000e+02 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-23T00:55:00Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMOrientation com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMOrientation 1 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-23T00:55:00Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMScaling com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMScaling 1.000000000000000e+00 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-21T02:42:25Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMVerticalRes com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMVerticalRes 3.000000000000000e+02 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-23T00:55:00Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMVerticalScaling com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMVerticalScaling 1.000000000000000e+00 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-21T02:42:25Z com.apple.print.ticket.stateFlag 0 com.apple.print.subTicket.paper_info_ticket com.apple.print.PageFormat.PMAdjustedPageRect com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMAdjustedPageRect 0.000000000000000e+00 0.000000000000000e+00 3.058333333333333e+03 2.400000000000000e+03 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-23T00:55:00Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMAdjustedPaperRect com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMAdjustedPaperRect -7.500000000000000e+01 -7.500000000000000e+01 3.225000000000000e+03 2.475000000000000e+03 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-23T00:55:00Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.PMPaperName com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMPaperName na-letter com.apple.print.ticket.client com.apple.print.pm.PostScript com.apple.print.ticket.modDate 2000-07-28T22:57:04Z com.apple.print.ticket.stateFlag 1 com.apple.print.PaperInfo.PMUnadjustedPageRect com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMUnadjustedPageRect 0.000000000000000e+00 0.000000000000000e+00 7.340000000000000e+02 5.760000000000000e+02 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-21T02:42:25Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.PMUnadjustedPaperRect com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMUnadjustedPaperRect -1.800000000000000e+01 -1.800000000000000e+01 7.740000000000000e+02 5.940000000000000e+02 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-21T02:42:25Z com.apple.print.ticket.stateFlag 0 com.apple.print.ticket.APIVersion 00.20 com.apple.print.ticket.privateLock com.apple.print.ticket.type com.apple.print.PaperInfoTicket com.apple.print.ticket.APIVersion 00.20 com.apple.print.ticket.privateLock com.apple.print.ticket.type com.apple.print.PageFormatTicket Mz,, ` g(HH(dh "d??U } } } } } } } } } <8ga4`8`8``x ` @x ` `8x  `@8 ` x.te@txd `  AB`@8.M.teG /$Ĩ@ب@ب@ب@@8?@ "DDDDD ~$@@ب@ب@@8= ףp?@"DDDDD $ب@@@@@(@Q@@,;:"LLLLL $@@?@?@`@(\>@ $@@@@(@(@<@R@@ )  '  0  &      ! " # $ (  $A@A@@@@֣p= A@ *Nب@|@@@ȧ@@@@@f@@ @ $A@@@@@GzA@ +N̨@@@@ȧ@@@@L@ư@f@@ $@@@A@Ы@zGA@ ,N@@@@@ @޳@D@H@@h@ؙ@ $@@@A@@A@l@QEA@ -N0@@0@z@@ح@@@ @@@@ $ @D@A@l@@ = ףp}A@ .N @T@3@-@@@@@Ȥ@@R@Й@ $ 8@`@`@3@؝@ zG2@; +, W9&? DDDd Zyx_    LLLd 5"h8     3?      IT         [a:   z:    5_K      m?  ' ܕ % p  $ 3@3@3@3@@ Gz3@ , V9& DDDd p,vͿ    LLLd  'u_ۿ   mݛT   1?   ! g?   ]4M4   [a:?   YY   Cy      ‘9?  ' eÔʿ % p  $ @@3@؝@@ (\2@  , lI[Җ@ DDDd , ʓ?    LLLd z`p!?   v/I5?   6!?    @   ~w_gο   2 X @   2೿   }s   @    @  ' =6? %   $ @2@`@`@3@ Gz2@  ., c^ DD Dd { 11?    LLLd }ylE    e洳   J:ٿ   ӿ   dYeY   y    tc     A&   %   T#?  ' " %   $@P@3@@@3@  N@(@@L@@ȱ@@<@j@p@@<@ $`U@@@U@@yU@ ,&oe@ DDDd K` @    LLLd ؊?   zl @   |J:?   ey- @  Ծ?  OH[뿣@ {@_)@ FTd Ғ @ P^Cy @ '՛f@%  $m@ U@@@@Q%U@N<@@(@<@@@@ȱ@L@@j@p@ $@@U@U@@QU@ $U@r@r@@@֣p= U@ $U@@&@&@@V@\(U@ $@@>@>@@p= ףp>@ $@@@>@>@p= ףp>@ $@@@>@>@ffffff>@ $@@@@@֣p= W>@ $>@>@>@@@(\>@ $C@@@@@֣p= C@ $C@@@@,@\(C@ $@@@C@(@(@zG:C@ $C@ĭ@@@@C@ $d@@C@C@C@fffffC@ $@@@@I@ij@333333I@ $γ@@@ @F@[(I@D<lrrU 77777UUUUUUUUUUUUUU !8"ga4#$`8`%8&`'`x()`*@x+`,`8x- ./`01@82 3` 4x5.te@6tx7d 89`:  ;AB $ ij@γ@س@@ @ GznI@ !$!@I@@I@@I@@I@ij@!(\BI@  "$"ij@I@@@I@" ףp=I@! #$#f@G@@@H@#(\G@" $$$Բ@޲@@@@$> ףp=H@# %$%@G@@G@>@G@f@%zGaG@$ &$&@@G@ @@&HzG@% '$'@H@@H@@H@@'*\(H@& ($(أ@@(@<@:@(= ףp9@' )$)@(@d@x@x@){G9@( *$*أ@@@d@@*(\9@) +$+@@@(@:@+(\9@* ,$,:@Ȥ@Ȥ@@;@,:@+ - $-@@T@E@|@@-> ףpD@, . $.@@ְ@@@.QxE@- / $/r@|@@@E@/> ףp=E@. 0 $0r@@@@E@0HzGE@/ 1 $1@@@@@1r= ףpE@0 2$2ְ@@@@&@2(\E@1 3$3@F@@F@@F@l@l@3QEF@2 4$4N@@F@@F@l@@4HzGF@3 5$5|@@@E@@@5= ףp=E@4 6$6F@N@X@@F@@F@6Q+F@5 7$7@@@@1@7Q0@6 8$80@0@@@@@80@7 9$9@0@0@@@9 ףp=0@8 :$:P@x@x@@@:zGa0@9 ;$;x@@0@@@;Q0@:<| UUUUUUUUUUUUUUUUUUUUUUUUUUUp(  j  0NMM?u.;]`'  %M com.apple.print.PageFormat.PMHorizontalRes com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMHorizontalRes 3.000000000000000e+02 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-23T01:31:27Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMOrientation com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMOrientation 2 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-23T01:31:27Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMScaling com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMScaling 1.000000000000000e+00 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-23T01:31:02Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMVerticalRes com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMVerticalRes 3.000000000000000e+02 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-23T01:31:27Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMVerticalScaling com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMVerticalScaling 1.000000000000000e+00 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-23T01:31:02Z com.apple.print.ticket.stateFlag 0 com.apple.print.subTicket.paper_info_ticket com.apple.print.PageFormat.PMAdjustedPageRect com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMAdjustedPageRect 0.000000000000000e+00 0.000000000000000e+00 2.400000000000000e+03 3.058333333333333e+03 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-23T01:31:27Z com.apple.print.ticket.stateFlag 0 com.apple.print.PageFormat.PMAdjustedPaperRect com.apple.print.ticket.creator com.apple.printingmanager com.apple.print.ticket.itemArray com.apple.print.PageFormat.PMAdjustedPaperRect -7.500000000000000e+01 -7.500000000000000e+01 2.475000000000000e+03 3.225000000000000e+03 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-23T01:31:27Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.PMPaperName com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMPaperName na-letter com.apple.print.ticket.client com.apple.print.pm.PostScript com.apple.print.ticket.modDate 2000-07-28T22:57:04Z com.apple.print.ticket.stateFlag 1 com.apple.print.PaperInfo.PMUnadjustedPageRect com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMUnadjustedPageRect 0.000000000000000e+00 0.000000000000000e+00 7.340000000000000e+02 5.760000000000000e+02 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-23T01:31:02Z com.apple.print.ticket.stateFlag 0 com.apple.print.PaperInfo.PMUnadjustedPaperRect com.apple.print.ticket.creator com.apple.print.pm.PostScript com.apple.print.ticket.itemArray com.apple.print.PaperInfo.PMUnadjustedPaperRect -1.800000000000000e+01 -1.800000000000000e+01 7.740000000000000e+02 5.940000000000000e+02 com.apple.print.ticket.client com.apple.printingmanager com.apple.print.ticket.modDate 2002-03-23T01:31:02Z com.apple.print.ticket.stateFlag 0 com.apple.print.ticket.APIVersion 00.20 com.apple.print.ticket.privateLock com.apple.print.ticket.type com.apple.print.PaperInfoTicket com.apple.print.ticket.APIVersion 00.20 com.apple.print.ticket.privateLock com.apple.print.ticket.type com.apple.print.PageFormatTicket Mz,, ` e(HH(dh "d??3h *,h *,h *,h +!PH 0(   4G3d23 M NM4  3Q:   SunNoCacheQ ; Q ;Q3_ O   MM<4 3_ O  fS K  i.@za.Hy]_{`@U( f3f3Dark downward diagonal MM<4E4  3Q:   UsInlineQ ; Q ;Q3_ O 3  MM<4 3_ O  3 fI A3 i$@zam>_z6;+( Narrow horizontal MM<4E4  3Q:  UsJitQ ;Q ;Q3_ O   MM< 4 3_ O  fO G i*@za5Oc}у%4( f3f3Dark upward diagonal MM< 4E4D$% Mp3O&Q4$% Mp3O&Q4FA 3O9&[z 3 bPP PWZZYR&w-Ð5VukppD CCBVR0BR@RPR@ 6u 6u jj 41R؃ s xRRs $s xR߆6Rk 6 kZ(js @+++>@Id d .,&.6>FMUMacintosh HD:Users:jv:dIrunlog. runlogj#.,$!Macintosh HD:Users:jv:runlog.sortIres2 res2 .,&.6>FNV^Macintosh HD:Users:jv:res2.txt % A  dMbP?_*+%@BL"B@D??U AHt-L    kC HtkCHtx4tkCtl9~ ب@~ ̨@~ @~ 0@~ @~ |@~ @~ @~ @~ T@~ @~ @~ @~ 0@~ x@~ @~ @~ @~ z@~ -@~ ȧ@~ ȧ@~ @~ @~ @~ @~ @~  @~ ح@~ @~ @~ @D@l !H"t#$%-L&'()*+,kC-.H/t01kC23H4t5x6478t9:kC;<=tl>?9~ ޳@~ !@~ "@~ #@~ $@~ %D@~ &@~ '@~ (@~ )@~ *@~ +~@~ ,@~ -@~ .L@~ /H@~ 0 @~ 1Ȥ@~ 2f@~ 3ư@~ 4@~ 5@~ 6@~ 7@~ 8f@~ 9h@~ :@~ ;R@~ < @~ =@~ >ؙ@~ ?@D@l@~ @Й@">@>@   Oh+'0@HT` x 'JVsJVsMicrosoft Excel@[u @?U ՜.+,0 PXd lt| 'S3t$ Sheet1Sheet2 results.prn  Worksheets FMicrosoft Excel Worksheet8FIBExcel.Sheet.8CompObj Xlibextractor-1.3/src/plugins/testdata/wav_alert.wav0000644000175000017500000005542212016742766017607 00000000000000RIFF [WAVEfmt "VDdata~Z*Yf] v]]([=FJ3UWLi l=#urlgV<.[`D+58 xx0ܔy( l}alQC? K@EZmjFpbQ Z HxZ'4Pf!n{1q#cG;4Zg v qd=h[> ,`1E\H|`Yp#k'X     U h W (2Z~@yf[d(  b d7 B?-"aWah c5 B ]B  Q ihR-iF37Sv*/,M&-1 \C&[ 2Xl0~Ec Z 0 &?d /=\^SIa]<% M 1Ld ? } 9x _QrVwfRDj1 }# (LKG Ku%UH`iM @` 6b9KQ1YX 4 3Gbn$N-]mwG I~]c W BIXjTcw{d(1px5p^F _ Gn8U i+5\ e$D7_\gB, ! 'obC3)9+0  {"1u9"Q=H>6-bj*c e%xth`bwJ@os Q  GLQG$%O32Ib' 8phs|,5! \ 8xx~<5m*0 9Z#sR`F ILIq%Nxb^4L$zjQ" [ DOAn 6\_o ~JK$IbL,x  _}X"9}{8 ' >LKl}U fu_ @'ewNnc 5 \# NO -|[v%|U?- M R s ./J rq4=GC-UGv= VK#$' cws.JBs!kRZ=*k 2=xh3_F] S  5e]}G x+(t6c sC | CxU\2 Rom{n"/"bv7:zP,r  _eB1 [yn ? #1|G3Ect^=i0n}hP)     X Q |~ }'rFfz: [ na ,I#!QW5 /6A~> L0"\gf]0i]<%b .=\m~ g -0J:+Y{xX>qqvV# [ 4pVg$9% 6@Cp&NpSst_ w+!TR d D0'&T H x/Y*#BC{F%   y)?%! Tin?2-CUi2uX<} @J]l} h 4=\&h\i yfD F 'hSu2G5  L`ne>9[%?Lfucx)] 1J | 0 ]f}hTS eFn2 V aS:W/(VX6 0>TiR_VX6z@FJs Oco: T}^"3Z ;$TZ3^ BeH/& Xqa / Ap!)& 5jvhFa1jD 0 p* /HV= Vg>N' k JY|U0` (mr^p k >P}.z r'"dW" }R*m IiI+!LfV & { #LK5YY=hkItI ( a x )Mge>7UYotf!"g;W S~U?iKSp 2 wT +cc:7NC1 q{$TlkQsh,BC1 8 ` Z/FM qXij5.f$QT-UFRx t KrIl  VO1PXGxhm q0Pae[F& H V>zVJm2*s35D "QjS" -^P2:\#Md\ * 00dz3ll6f0Zy y _ ?  d0[&qM/ 'IxJ^Y+TUjPOYcaG  W  ZWz,YE<u f=N^4:w{mMMH8R7ooa   k  cFzUEwf^  uJNT)-kulTY0s\Yg@hY^jrjF B{y5oOT |3z/64*   sEyE}R+ K)b%V"\B]liS*3"w^%[<Yktun ` K 0  f5g5aE-*EiqBLT% +` h3 H~oF:?GI7  _ <ML9$pj6q/Wt ~ j O 0 W%Y)jSB97>Nh>`gh6 -_rG 8x`Y]b\> J LxLo L5&] z X1xEQ&9}* ,S/ 7cg,99  W  Hk%Z7z.`ND} [1sAW02jY:TtL76Hocqy=P3,.. R %PkvoV))c:xp,u %7@@9 +  g9 wFsU;($8V>n~^B9Dc?hdN>9r a9P!oJ) ,Y&d#t^[l~)}/}9 }_ # u !=HC+mFq-nj(r%7AB< /   sF]0yaPFBGUk,y8-[ |r|lamC,(5R~TtnhX0 1 ohGb{@d/Zz q V 5e7 Z4M(r>R3i"1rxSC;2 C 4MUL1j~9tULEJ   rJj=eO@98?Oh3G@s#3dLFRni)ulX- ) fX 6Pj/V"Mn  i N / c6\8*\9 R `>o%$bb7# _  k (1)Ne$b|N LIS&(#   b8 W+iZSRYhK\U69Y?8@ZM v]QF2 f  Ctv@$Eyj2_,Yz x ] >uIuR2&O a2:z3.|U5[S$ ye? J  3NPzrEGEQ%($   kBlB}A1$r2^*W6(*>`m0r^= V 4HL?MZIlypR n Iz a=nDlVE:69DXu Rpq^"1xC_ |=D}mR" }  P~q8/`{oJ`i3'G^kqo e V A ' pFwS2*WxP^_**c`& 4lX"wcI} ! c V&QffP$.0B$)'   zS+^8/iZ8LX&&D_3 1`ctqrWg?%W f 6GG7;C,MYN/Vj>Cf x ` E%f=lTB6008Ia's/Bg>& ,K} M XPpX5T Jgtq^7QP,JPB=Kl;Temm g Z H 1 a9~`E0-Hkb#=jD/+:\7-s2!S1]=$q5  QzXh`1JM<)2K)8>= 6 (  yS+mM/ &L}M :oK98JoRMZ. ,Re'qV5a  A um.tg/FF2y-n sN)jH( zplpz2ur?wnwV9k!1rp;`. 0 s Rc~%=jEas~ | q a L 2`9yeVMJNZm\nb5xsmYMAy c'lJ 5 !<GC.~"o? $3;; 4 '  ~Y2 {]A*  /Nw/MJ}+5U7)+=^ ZvL(g" t .SjrjP%0&Nx^ K tR.qN-Cy]/5p#]7] 2z%U.p4  Y ]T= *J' ;c s Z=fA|y} G5`(}`E J'Je/ - o BsPd  I9JST N B 0  wQ*}bJ8,$$+9OoPnkL P4gG89Ih^uH![ g CYaX>p?jP=s eCfC$KlCL?2Z/ F1[0l+  J vxF;$xe/ f"Jg{ } m Y ?"qK'}ofekx>2#l&L u> $L \}Q(W N  GrJF{kc   \5zY: bC&?m6gq f)TwF F*MUf , XvyY']PP 0M`jm h ] M 7 sM(tcWQRZj@?%>LCM]\GCMfEM~Ou a   :_1zgK7)` z[9^=(X(_n j10n"#n/?x]~M9  L ui5#X{7wq-u#5?@ ; /   gBsZD4)$&/@Z|k%/FUj)yw:-T#Q O 05) Li3xN(j/Yx q X<gD!2p iLai4NNXqH/'/DgexBv5 # ` Z 7[[G7.f jH%pO1BrD ~)R('SDCM (Tl$S8  D lZ%Cc^UW  c>jN6"  *Ejd%<]0 !H+!a7ve$Tz% o 1@B3I`#eh*sv9 =R^a ^ T D / qL({ka]_i{[aKi ~M,*M" C2wv:i+% i t!ATm3TBav z j U <oJ'|wx.nqZvU3 ,L~/}d[`u?8[%@ % _ E;oj4 l:f v\=lJ* 8kF?sL60;XcG;>On\c'R b 0 a a'{/fl:+R xZ8bA# BuLArK3,6Q}qp yI+-Js03Y~.| 0 Vnyt_9[dUzf6/&&` qP. }]@)  /Oy2NHuoRCDUv<3Z0#AhDG%Nn oIyx 7QXL.m [=w > Xn%>\}3oMrawcn`^if)#Oh1}{ywtqj_Q<! c  k s&iZ" E F ) Q Q7W1~mx? 7v!QM4po'my.X8G+NYC ^ L m t V / ; 7 m&&wg[TVbz :z!6{H 8m;I ">ZusEONzwMj$90rH|FxK(qoBO}`G4&'8MiDPFYK|DbiN Aq%(%W+Yc"V?o*b!g-V&~Z8~xvx|%Js3k\"e1u;{/h-W~ (1675.%eAwK_/k9 |N vO)gM5 1Kg=gHx5dBk;Vn{gQ9 wX9yY9fJ/ziXJ<0%  #.;JYj}6Pk*C]w .=JV`ipvz~~{wsoib[QG=1& ~m\K9(zk^RF:/$#.:GTbq 0@O^m{xmbWLA6+  }xrmhd`]ZXVUTSTTUWY\_cglrw~ %-5<CJQV\bfjnruwyz{||{{ywuspmjfb^ZVQLGB>84.)$   !##$%&&''&'&&%%$#"!   LIST`INFOISFT5GoldWave (C) Chris S. Craig, http://www.goldwave.comIENG ICRD 2004-08-20libextractor-1.3/src/plugins/testdata/mpeg_alien.mpg0000644000175000017500001415400412007720656017704 00000000000000!  ! .!G `.1Mi, +喀$#t^^1@& j(HOC+aa.)A ΎK@އ^֓048-` 4oID4bd[ЖY)KH!5 T %%ou*aPD,p@LC!V*JB1h-Խ]Isܘ7q}t' +$4E 3!!:3t'fnĝJ~/ߕ&MF,䣝{Bt d2a`d3߶cr.nC~L?N!tlKI3n7 ?e흰 h*]-wXF, %Ԭ8H ĘB -<+|1(̧%G~ε;ߔɨɽbIL(0PO-8c0Ђ1(C!nA+3^z{5Y6ɽz޶+wz^W]yԴ˼muwŭ"yN)H4!f!" +v 1 A7P (i4"K^"=x@0( ZZC ƭۊ吜 1 یH7nb%Jk󉆿 0$@CCH['Zr[).Öդ  @M!KN;B 5%=Cߣ:9 PxϷ$nя\-&$hՓbS+ORNK; $jC{3g '71/E0Vؾa6/U]MޯSQ^z^u.}zޗzy/+o+꺞Y7yޏ'xgU`p#eo?taKo`! :s1)4m7DRZ=v8װ V[zF8D4qҿ̓sKṺ޷i0zsCvaev Ylme߯3zVpGY(_]Vq}eϏ-w6gǵo wQvO?i4t?[Ih5nGϿ.[{]!&{ `.>6M2y~k LgsN)H".QHv".2P8j79Gph`}̯-mhBoRPø g\E5/|>2nށ{UcΊsa)Αƺ,8.gB6r lXf a5ׯ9I߱q֜E$ѬqqquvZdJ Z}b]۾G<& AQd2k6%!?$ACAĔn:! HF Փ5 s*P:_0[5u Ti\_ mIGG\^,WaK~#x]7_,xa2;ᄬ<iDKp7e<~i>r|3=70L(g@Ł;\]?z~XNujwwF>\$wRc/-E1G:y̲RԷp(oY9Ҳj70oI419k}o5&w9.<0 EVJ[zAAސq2J3oۭuEk?[LZw߿Y֔^'n5-|E>u,/9JܲϳC~}C~}̺Ʌ l0~@ )JߊP:?:?]· 0Nf-i@nz5D7Ά￲}x0x,*uO#kƁYbף纏͠ٸrpj%zo':bҁ͇4s͜I߾ [?\k}ҔgCGޞ\Eŀ~<x&YySy|Tyrn=wa AB[L54Clߞ-~M@ÝLj )3ݸ4wy4us/575a/vvkC)7}e]->IEل|?kG7⟛wXyd{ oBQ=~=1.i4,>}Z.%A7sμ8L V=ݸb@vBI3,>NB~ۏ#, < :Ry6] 2 cǿ/|X2yr}}׏q%"i}9書W?ֱ9:~K>, кI@Uessdͯ7͠{ӡ+u,5twb8l,o׸a }fw,kw?b۾#/s )H=.S;\>͈EuR",YVhKzGyi5=,*psCRC~,.5*5ygQRRECs ,z{;A C+9h=o^ ۸ a>%0XiKW~=K?7s$ۻǽ]sH(ckߟstsYD=bC b?Sx/rwqXx[ݿ7tէ?\?wQiz1눱͇`/ 94@679(.4x\8ih}%@Zހe-6Jxwŏp52L9k'iǥtcq~Osw=sOSbow{Y?}ogUb_ RLS%¶F_'Lf&5h '_B~GI(' rt%˟sPs&K 6Y?"voy<|E߁c]dI b,%N&?6Zt1>xEA\V?LJJ93(8O.*w p>ٷvCw[$Vwg'1|}3mCŮ ŸsR{qp;xxJ a3\/Spu䱮k$[5gYϧxd qgϿ9e/h5a;7WSsW@)I? ҕS$o X4p<彲~/Rӟ?'[I1 ,B(n=ͳ~00>eCz (R;N$|SmhJN ~#jIb~n|)7͘A0 25=$4R;?)M!jF&D.rb2P𗨼0 Of]ݗ;ٲw6Stg x2=B7u>.~7&{Lx>sN<3y~u8{dt,h9 -jہ+7!L `.x0m#< W-¨oHdaqvǬLǏ4Xy=pt"CȤ Հ79#0xs_nٜ8'KGEǺ'Q;DWl\4Ix./aP !f<*T ķ=cOX8 +aw@ jU<>WsG?&s|7/hX"ÂjL>h]0 i*Q vԘpM| ݴa͈AeLH\8 x9*n.A0$z aqq}~vhf ~n&o}ߵ!NKSX r~8MB$FJrGf|x4.QirX}^7P,BRW 6)00;߬X5-%̼4nn约I1 `ϾaUo482Fe!` `.!õ41,='!o%9y  sIŏPM(@?~jcwcZS?`T08>CqR0 WT1Edmn03)Iez8?9wL9 qBJOCJ;[Ҝ#*Id8Ya2No3Gggsk,}/̀Ԅ>EU_V&VY1l2'lၘLԥ$7kB «x 7}-O~,Su_yTA쒓ax+tooԧ)9)$t>1Ԟ:(@; tLHh!?ļ S;:`r7& @vP`RQ+rdf9Xiy,=k"f:?ΔҞl8jp@+pb~2vPsAh/:;u* NYp!$ : G}ͽ QVQ FVwehcr}vu=֔\P:&ky x RB $j\ +D I7,M҄d[*gQζ1oAO/]>Gnཬ2XahAa-z CH Hgٻ#e#}n& (򡅠5(;{B4Y_9l|ܚAѰ<~Ԓ۩:h[z 2nO.f^RQ d*C'rF%;Sa߱>M7! ^!PbF:w)ǜvhI G N̓aʠg=u=ޫ{fo7QyoCAFW;ս/U+++tuwE4)H3HR'Fi J(!9JR"B?ܚx }rwa׈; :`zCNݸ ݸy*P78: H zK ^O(ov5ڴ  Z~|MB ̾S:sgxmAoц|ԢVYpPu?#5ɨ+q|%& !7% ٺ:?yOk]>lPM!GQ#= !œ9Xn % 3k̖[倲chV&$04D71{{÷rR’ }[a$ pra{,E c_6ޚ:w޿HGCսzgGz)Wtt]+ʪ:XQ )Ѥ'xD֓BQF!4"(iHJ?Ҕ"()H 5]4XAWcZ4*5AKBZJ(ēK)ѬMTu<Ύ+dTuS::G[[ jzJtuXQ'xDQFJ?Ҕ"()H9iN}WPWwsFjIIʍ-"(奛eka1ꣶ[/ ioijF,F,Fypo ) ) (HOBxJpJ?Ҕ"()H9JB"?Z{?ThyAV Z룉"l/aSTFU~7?CK4'*5aYgSXM EhJtiI)Ѥ'QF:4ԔJ?Ҕ"()H9JR"z'zh*wO_}:][*0-t,#췫yUǙ>5* ._8yگTJJcfF!D# NiDQFa)шM5ДJ?Ҕ"()H9JR"GWz=裾j$bTʭlSg_j)jB=J9iJ,y{UcZQFrY%:1!sG `.!"iJtbB"J?Ҕ"()H9JR"B4Oꦂ Yh]&ڒqF;Gṝ^tyfVmg{=kϣHL*=ozw֚oJNTbF!DQFb J?Ҕ"()H9JR"R'* UMO]4XĨe₥BG+$5.vY?PR(z*ydSF(턭4G%"()H1JRS J?Ҕ"()H9JR"R"(joWT[5\SAM3Om%Q>ƜЭЭ[mV#^{= nKx=(^ Pi|oQhy o*?şIhU=RXQZHTvҮiʌҔ"  R?ұuұiIޏF1iIFk9Q5R3Bz1ӕќ,Kvg9Z{ZD 'X'9|hM63絣H5Ј"(a63F@ R?xNTjx"z[=:DA_@^zU/Lgo@( 4`HnZ?iʎRfhDQB3,iG!HwKI5u ol'_9pmƒO#f6L;eu.砷?zMBFUvRvI^wmyџ|O|=gxRSӾ:iI&dԀWf}X.>ɈbB>{*o0{+$Ғ;A+X wH0f>~ء"gnWrJ ' fhXk[/(I^/Gb?/,QMy~Y gÆ 긅!v6 esg/گžͨJ?7΂h1%b S'_bޏd}Ws~ל\a2b?Fl A$V@vPs֕oA>CH 5sW@Qg]4-eͽkyeߔ Id[>Ͼ7]9z>]; ݆otzjZ:]Jhύ_]P/HW(YhP:bXB |?B݄`׫, [p3cjPM(53ݾ|R3G{hjRd#BiaGT7,Olzjz rizj!{ ! `.yi0: +ZF)Fi D!IE#G)JD@b?ܲ` S7LCo:x+Rt M %Rs_rа&fT % &q(^ݍJt_B J佑| */-_^"5ɨ13<˱NֹYP]LIaGFO \2K7W8*ڂT9E3%µ%FR@7'5 |3/g^n<Hz-飦JjS:<|GL::eUQ J('AjhJ(&E)j?Ҕ"()H tv>k B5AsBZJ(ēK)ѬMTu<΂䭒UP]\S::Y,G\:G\Q'N!<%&Nj?Ҕ"()H9iYccAv4tvJNTm iG%JXO:‚=tve贳CUF%X5ye:4ye:4PZ: Sj?Ҕ"()H9JB" >[: ThTGdOVC#5:(/հNqn _ya*?4nm(Y9Q#<hJ(BSJM N!<5ԉѤ&j?Ҕ"()H9JR"WzT_{'TY]vƮ5Jc7BϽz gtG޲57zd*z+a%:5aF!JtbF!4"(BSj?Ҕ"()H9JR"F/k5j裾j$bTre/UgUFz-(,ӊ=ʎB0,Ea)шF# N j?Ҕ"()H9JR"B4SM+,G|3Eiʍ,gjY0^ty҄df{;Z4iLzڽ:٪ ZAp))Z!DP\!DPZ)Jp j?Ҕ"()H9JR"R'* hz飺5sU*7QFHnfzZB=to4#*6hz(턳NTcH )H1JRS j?Ҕ"()H9JR"R"(sUMMW=Rjʍz{ yרVj( ʯ=UwdEET:@wc6{]@(DOc(-,렸XQdGm*木)H1H" j?ұuұiIiIFkIF3zMTОhi4Ahќ0U3:: ˺XD5LEykdh-H B"H"F"AkF@ r?xNTkH"XOIEҲuRxDQԤƓNTfhFQeF֟ mېotj6iaK7{Ն`2]6`7# Z5tbEƐP[# DP]&361( z?.4B"0k5)F!DQB6N(i+?95o/Z8nɺ}Cz>,.3/@/HKjP<3>m.i,}\H|}D![Kb1@[H1Fl 4` toz?)H9KFiE)(2ƑrN]IFt?-l6źg8(6lė٫=]bh s[);s58ϱ }[QMHfHԀ5 k'Ѿ` 8&!bj+U ;%niU1% vbh% -@^;Hg-=\dZ7y 6oKz?XNTm,)(0"trJBDQR:1HFꩠS5.$Ǖ#9 ZJ~uv8vSGKFӠg=WJۻ|mcG~O0 ĸf9wsi4};וyUksÒ+5my$&nUTm¦en'(_(̣O:>WrJ '[f{;YjSfݩcQ؏h:rS^d߬}v}GVH0᾽%o!HBm7?Gv60v;m𧼩+>j IE{ҟ#'" 2K-(G|(STP*tǁZ@`l"5#Z`?a,AGАH<oj59Fp"rkڦ'"rs#<oJ6uVOrt@k`ռؗ&<I}@Ilc)PhUZ|l0.p8ZfNS8rcr]Z*Ӻ"8ݧrNoSusT㮤u3h44>5N6X/\ps` ^8 "']ؐ]Zu( F^LEꃈZ"Ȱ  rsW'Uwe!K7& & PWtH} 4;{Հ.8:uTDXp qWwuāzW8($Ox 3qsҞ~'uQÜ/; pA@ _Fಀ!pKT02",{`=)"؏ xIc pGVa2Vmg FO:']aE+  F@Z+8Ě2=GsO uTh*¬PPaoWPZwu[#4# Zx;2iL4" @"0S]` ҳ i  !>`f@mC70$@G/^ U.?`~AfuE8}[N0l|aRRhG@5;hYN3p.t5k56p p\ _Oa@X`Rł{W\*aV/ P3EFLp Pa+WQA@W1OWQR4"0fΊ%`W  `8Bk*(s.v9Z$Gt%I{߉y)Ƽ`Vi7$M!Qk.}yC H/j8R[5dQRă$x!5@kp@K#A5kL!2 fQJ+U`($,Z׏iK^Rs䮜h]CdC`AW+O +k-k^>i&Dkl43AzSY)Ƽ☇W X27Og-V+ c/lįa`@"AO U !ke+MSLe1/7d0Йu$+W cnj F%ĻW~ ~Z[kd]8p"SqpU)K|{ c!f mRQ{[A8jQJbsͻ-4d! rf'.J_I9o5 c#%nmzjpۉJӞqa;ӫ_ >1E5{5+yX#A6 [)F%業tW N]4f&3r][!e%8%%=onI7fNr|ݹ C+׿24[.)BpFkY^ J׳x1w׾ɈSyzPP BXy1``8l8 Q5#Jkw0AXPjx> x2Od#q a9HK.l pAB!<=$ 3yjC5i LdXB8SÂ']AI>CF  2Ep"BY?O|S>L76|3 `Kx@2y-Us͟!׾e\~+Η&]cX?Sk#1?^XU wF\ g1.}Ā`UrO}03'rPD`9K0.2|zR`*'5d8 ?Lǁ+in++SMtSUWOpsZN0rp .mTawqu%,8m _h ; 3T( qu4V uSլ8BZGF5brt?S2Z=m~Y9SU@=ͧ#ޫy]j*}5]@rj W0;8NJP!/Tj`UQU:]\`` q5r@u)K>n@?0_Ϋ q!TyRflp)dE@9ÀP/iewz@{V{`$D$V#YglH4͖G3 5kM['V@ .CVa^dnF(U'JڦWp{0':S}cHKqHDgf ,X4)t |}qu @30ךNn(`> uumZ؏x 0<[zx`]KR]V|, p S OA8nŒ'U[+ UV4SڟڼtV_ `yx0H`c @J Dp  uFв4X !wPvX1 ĂyO Go lpƭ";P LQ5vDW=p2KUO)*yH%ZpVp^ڰw9T "9@}X0 P.p88{.E^(i{ XGD`bAh#PzπDj ?0& 6F.&[AZuV6{.#MQ!huZ uVϢ W1$ %iWf@t)r7 (n}ANk6N̸y/paTK^91ȫ\4"ۛ<㸞`g|,_g`?wNǺxA+}bٝ FZx,`✼1fg#U1+}n({ppƙ$(R^xZnWR43IP#/1{^܌ʆf*Sd*_;K'n \i0B!u@#@k(+r \̊1Z1L"٬yU)ǿu?\:QѧJph# bP8Ab(N1 nѓe%ymn=-e+Wd=rz JsQioF!w57Ng-8ߝ^Fxd QXFRJkz۾ʤ53wKpl+x;V9^ŽIzNF4KE,>܆13%nNZnbSf O~Rx8cPDq/mvRO;_|ޯѐ9z@1wVHwwW 2)v "CA_Oէyܢ0317ݑu'ULwWKo !ݝ' ϻ[xBiw!-L`4^8mÞd L!{ @ !õ`vXvd@D UUU_߾߿}[űm߿}߿~{޶-c_߿~~{l[Ͷ~~zض-m~}{l[6}bض>m}{űl|l~'>{b߾߿}[űm߼}~={-cY}H3(lV O֪23%Wy*iՒ'N`e4EDDI`+C9tEMeځz8&I(--ضpmi!mt%WcCVKTUT!f,b4`SNacer߈ hSsPʎNfVe uaɥ ])-ht5*7466d_*VJGW(. N6" 76 /2[C&X%ejKv GÙid i]*J."koN Y)egJbbUEUTTK PERUV\} kcB̳+n®Jaݴ%FTߔ0V,Z"ZWe7 &պ(n;;-|l6ˆSf_=S \03&А 5c;*3I 8 LTlr,V5k*r ښ y ;Uƴp͢475ym.2f#I`6%qˁwy޵Ed59 eAi>AT}]!tuIZr8TT3=օq<\h΅ V6SOU3B[aCD=0*vXZ鐒-esۤM--vHicDwq^\h=jK[kY7fn[S)$hgS]DbNMIRJ+آȖAN a"Tu KdKJ *6C._q[F0r"jZ$(X' .+DDtUbf5UTDK ꪪӋ9Yl%*dylX)\c#Y#auF8PD L㊰8*+i̖,Pa[t2huuKm];]D摹 Z) HWYrld؆EIe`Ƅ(/l5˥d7j$ݝ^RhXX^ Ia ɻ+T#FZS3.ލ1WS~Ri䵂z*ޑFMKmL6i{`Jfaarްb {m,CI%ߵ5`.4`f5VeTZ9RU^hxu fEmKxj@mI.Q .23 2%J\ƁӢM;Y34Dzu\o SkpDe=cTP*r'j6m ,v'&IhN[sT.ʼFC Tx1Ɣ!sidЖ$k/'b%( .2qm`zҢPvQVFhTɢV(f^>:uPnUI\be5UTD[KNIi碆:lAM<4;ҹS ,r2ʐj5֓4´ %EfW+˭LT @Ar ik""E<$IVׁXS,i*! `.!ɯEBj\w2 "yp]5m5;ڙ{wwvf0wdbf9䊈FCSUO{f !UMڔuu6+4iw>}]]ݐGn2;{̸]֛{$?[Z#0W$ZB h_B #@J #JB8$ $5$`r@4BZ3eu}yP=û7rd! %L;wwN26;'@(D.,M0G8>fٰ-Gj\;4& P9` sG1>3* :c9 }@8/@D[@PYH0Gk!. 㨋wtBZ&^\ `X:|D#!WwfZcmMuIGvv6ɟqNys0R; &*KS;}DՏV~:ua (F#cr߇ `qπj `-Q#͈sm8U NqǑ grr.v|'I8j~]זhP4Ͳ:=oB])B}3.'09`ZF5qcibBv5El|ݾ8 }yaat$*f?Dl7O8f?!yfY;`9x ' P!y)Z:&gF)oxG7 MOXY  5!sm$!BqyJxeX8d,X/5F,kF}lE"ۧx\ZB8|b_ 9z!/ƾƼ,>JA!%a{vl0lGwvaisު .,l1p9hЯwz؇{v7Sw8sdݯ>wlܵ뻚澰ׂ`(`@Zh.| \c#nJYof-INxpػwt0I<\'HȟwL~xysɀ.(p(PXiI2͐orlT?&F4E1_pM D ewwJ5k푍wZKu ].Xp0 P_ *>{2b Mx?%q#˻r@nJRD{ZL\wzL<1k9[L d @QB9)t8.Y_{L;v 7e>Ƭ727d{r0s^f-ach@Nz[ [.'awww1e}: ҉ BS0Hh/X GtBMs=  _ N0.$`JIJ$|cɲVA9,]ӘH +}I)$Z 2bDiosD椤 ,%! H$A{ɳ|B{$Dg+ -p@"C?(wq`*@G|ȓje"1$5$ bHF䂗 hH/, _w0``7yv!hL{ ZFpƁ< Ob/ #Ý ! |LP! `.1޺/t0gV6 @`p Ӄ_;Zlmg<>޻c˺ S $ @@XJBS 5(<xe'$Ү@^|mh(iI;n~w膆4[ P6]Y< 7n;`3?6/0SnMg«d0YsQ:NaX98^>@ 8@ >mp`:-`s(EI,(O36;.,Q.']) 9+0x˪:I va)wU'LlyGIp y2gSasgg^sKO4 -O]ՏV~:ucWǷu9W-QflNsm8U@-9DncTջ grr,Շ)mOw~B]זhPz]Ydko2@yN57}Dbm 'pa8?3 a8s.@Ƅ306'69 ~Ą,kƊY}Np {L@S,NGD#$]V^FӀjs/ *Fσ8E7[K0 HB=BAf@F $ Hj>=o }G }{ ofoaܐ1w=Go|58jB:"@]Ӟw#A5ʺNtžagw]zzϕ]՟[}=_ꪅwT"V[[PMwtPڱn_6i N}!~X#nOn͜m8Fx0W 1U:#kUnMڥztaUtH HK ==&MGo) o@"#'3j!]ࡢU'N櫃>n<@e۫AO[B<#p8p$4tuQO0&@')!(a~a8hK#r $8 !8Q&BD$XBA{O蔁#Pˡ#ЂzX|u 2b@<ɷP@@/TЈ"V3T0Zp> A) x #NOtS/W "A#,F@ !Bƌ$!0IJV[Bb@H< @hO@7@lX]!>W+A&L;{[~jx  zwuSU$E8a!J{U`NP *!0`\@{ B@E8Y !  `.!aHĠ'W$$2p&5 B @̑_bѾơ @x >0T*ЈW8 뾗$]}et*jT xBwuV]r,\U$`O \};P & @IH+ F8 BrB8Ē&a#󦒄'!|ps?\hu'l$I_b_0| *is$?j]8)=xQ!BE LMUH$E;`<6H$I) TG%JB@#@$3r@V4XPO$45$30 b%@$|-_hhhhBPҜZzS5 -tHIGyHLW$R";`ύ`anqq]>P nGZ}|~ ˺>=AH4 GԽsuU *ڢ5j B+pB|F @` @@,jp҂ WL=PDW 5E՚*`U_B!89$$!\`D?y <bG@F@׍#b9Jh?PPbxhGGĜ9%//4ƤZa #*H80*'B~40HJ@@9D^'Pi8;ԯFA@OVjHWC3hT6Uw"B ]R UЄĠA#64a!)AA O^%|(JPhCFS]` FN(D.ao P9`8/<(z8^>f@H[儓-I~ݺEI=#xwh`p&h'zHEPcr$Sa<0ڄ+*~|u )01Ě6_ȝ0A8;cIBGۊq "AEK'D!x˛<~殩Wbu wa&W}|>s s[)~ׁq4 -O}Tg;;Gpmã;;xl`1ü%}GsB/~ @М-QflNۓ9\ڦ? 't~piX傗4)U!\ބR]{:`?X{JD cy2{{a:3P7 N{q'sǍm=,c2p_uka9C_5glC+sIKfp8rCrD?wƄW_1FP|p3A"8ÍRD!Hw绪*gw`F }B^~cw{)Ud{R;݋~sOsϝ owpҒ!3G `.!B.9wqt?"^|rD6=vU\=wvBg+`a{k8R}Q]HWw)^ ,Lb3rܢ]tffq=‰3w0ӚnEwsY; wr#s݈'-vGwp^RppDШhV]q}\]U\zR!m%ޮK,ȓ2r'C<5 } #䘺!""쌓rʾvU<I8 E b l2˜Dv Ah4 !0}ޫ_D\Ā!1tB8)~Qu0 JB$#(А1#Y%#BPA[qT4DNVIOĂVF.䔀H_X6#%v,yUTwSy ?n_~۽_7{-};]ruё */uuވ.w:J~^VIO` #dZJh\ "Rnqo!Ǫ7vwwDUIFHhS $S (*2{2.L "GOD΄G>cAHWD"niJ "C띋踂~h$ G&H &W=^wWddk Rn" @2FMMϻ뗵a_XΎ _I#Fw&O !$ "Cq\uu+uw=\w{_hD/3SL;?Q|a `29myv` 9O)@fmKHj:m6"zB#OwGLAvVKH@G!O! Lj3H+yBVS<xrȒ`B7`Ʉ\s۞&">e ǴrFg?sXW(,>f׉C# Nq} grrt>}am:6966e-f?h^kw8B~FAGȦv;]Df=_ ğ;ُ (~c#:ff wV;IʀVfwX!d &7O'pWB̲vs?fn?`P~`ó7X$`k ?,,'D_^nG@-k7䭏΀+ ߾lݑ( ] r<>Yڤ `:3P7 }Ɓ NP S?"-l;wH!M|Eo@.w 0 wL~nkf$,$Rka?;EL j`.)]5Zlw51Ga{!F{ `.1] #"z`ܵ$k$ѨD2  wp.| HB ]ֶ9wfXcwD;(z7 ]U~ @%=tQB+k<7.(pPlטrd͙R0uwvViwtt G!C2݊R{ɇp.Xp0 H/rû>vȳ~kk]N! BkBdRϛ OxL d @QBBs<ϒ')b@ #FxSp3x46HNM؆!y7I3 P ݶ7@kb&}^],| ?!b6<" 6oԻhWxDj g{7~cf|7"`B.'xh P"v쁛vyKl9mѾ+s>=oh-00 GR;C'?pFG1i}[w'.@|<#~n@.oh.sfRhS 9|!G?p]c xBpr)h :D@(fO3):oY~? /w:n`Հ!ҡ&g4]"}:y=G8f?!yfY;`9D?`$"%ߊ~ǣ'Ae: =ژPk?,,u xů7Ic ><?:>B2T }>zگZW,"jp`;Ѩ [' f 4~\lq@xB1h `<)`4 Pa gn쑀C_o{Vp&M>";w7s[6p;(*/.w~?5ީZCm6V-U==RTs8vL}6w0 _@28Ji zL+j!))=!Y @ !DG̡&,n5m&bUCp1l[(W.Ǫg#iG$3Rc* jbjj4ߌx +1r~dshK3++5MTInM kk`.ūa8W 88>n-=̃-BAohӳLCCV͕[`fEUUT\E$m:C!3UM4qQEl5(eDōҼg{wDFvZRg&ᒢz"SA5Tm"䄆6z2ZV*&m3 2'0KK5h@{CxVK&3r%ty~^\kZӒ3;;o,ɲH')v5 ']Q%w#,rILHlGLl=b8-VxjxYm͋۬9 C۱4:CRvR>/SŊ&V;0@bU5VeD\O=RQ߂H㪺aV^G1{FU:?26iJUSl7W_9՚fJMkp9W,f ĈJ jm^ʡ+w7gJ> 0򪪃KCd,/Bn~T^fFfh .VURNHɢ_pȬu!aRY`ժ=fLxi - -H+]3)L^'xi<2EՙEru<\EAiKHϺ`e5VeUZE4a_9$mx${ !-Mci ݄LrdPyٲ;;+$;㹊LlQ.rCA;3}b23ΰo&tF9,QIE22'n=C˵c+rT5KKJ+ԘfdQFvQC6ҋE*.QKNѢInFa2 ==U]JWMyѐ W*1#NqCEB_]Rhga5-&h'B#SZ6*[MKpJ ;'Lڒ*%>bf5eTDHÏMTrd[Lޕ|,k[3T8"©?pkЊR]+]Eˣ2h/B kKn7|<4sz_LĈ&S-usPPXQ1HpvRkex\GΫ<%-ֹX=rG:P$a]TsEb/* !kf#xΏ °oW6] ęöS0#kɻXμ.UG4pYϐд`f4UdTHIEm`Ik`]ԍ\vHsЇ5;f`v։$K LǧfI,k+k )Nyj3sۇ`s<޸qAڍh 2-"VTVUzH2;9 X+ɦhUFÙHpe.GY{(EDxٺ޴Kf>#*,S4'0 t'brZ7Tû`um6r3HˋEl׾nh^mĤBdL/bfЉ 멍U1[Mbv5UTDHCM5v{, Gj'[T$εـl&jVET;c#KJ3|I4FACEȫ~`Х SjAVu&[A*\);llH4ه/3CB+:7 c9^`7x)-j~MV2ꝓ<4ԭē\axv_i>%258.op,Uڻ;lBN~ɒHf,LB-*~x0f!l `.Z!! 2BQ꡽ Fth@O^?"^`G@G''6F@QLxC| D7 $$m&Jn7bW䌩ǂ8/_N?W AH/z4CzKJRHdB #pvg0]A5po/P  /'{N@UHc*"HR'$ _֝U@0 k@j3H&FJQ' {<D&<$bJ`TB@W$x u5 U1  ,M/PaI !VIe<!rvQ`:,5PDHe$ BҀC!IM(4 Jx1 %ɀK,5))JRK,>V Y $*NN@Hؑ _ƀ @e ~E9 ?: ݄I-z t!-P(D@@!UP@#+HuT x `(o+0A%p.@ΐ& Q@#>$ azWHN ` E?B(|(pNj-PZCr4p >a Gy $T0 $g.H$ >D_APЀ8\$`5 0<t [L(n[+D 誘 x0g$d0<DHB0W _ *`|hR#@/$HP3H0<#Db0՗0&10>IEW0aWP2P*B @Q@|$d2.@Gɠl90 t˺XP.oih`xapA `0#8߆ `m<$@R*b0H9x I ?`1=<RXL''\"DFg1*d#tC!Q| PZBF @qG2(EZDSTX`͑K$@ :@"F v\@PGt| I`I(h'0Ez@@ @[<0A"H$i| @ jf1 by>z"B &'Ќ H ""@5^8qwė>0un8F4cՀgt ni 90k9 +mZ4ԆUs 7H1Rx wp1$] {I{U@xp$ % _xoW$i$dOL2PH(DOc`7`P8=Ґ.9L! `.!#E x+&VE0sK$0`ia_D` 4 xPT)$`k($! $K8bxD3h_| _Ղ@$; #@) Z@<W' A%(Њ`izL @>$xa i8H_Xw! 0GE$4z BpP=WPUd  A\ iM $̒|r"`haac RJi t@ @HAd(E# `xƆ<3L"xs2RejO?p = F kp\HjSPĔ 3 xh| B3AA .!B'Bu.EgPLxB<1a= *`H$ 0U`&AxUe&`(I eDIH$)0?H""Xfoy/<v8‰2Ў=Јl  :@B0v__j9@ xxv+NDs[ }t!2'p2V 2P7I'0 RA( +ґ "E )Tit!PHFPT!VI H%|I`+/ U3@I45` $m BT7|?'oNW\;3^}vGw䗡>s Lw9߯{~4CDfͿ;?7 1pNx6ʨfn ?}H<N@ۈ4w;7~=x2V3ExF݇nusmsfRhS~O(k|DNqpp !~/x0`y_0y|F.]1!=ld;/!-a^X: !-N} 0yG?3A}Kr 9 yEy760c>Zrm˻SD_v#Zv`L%29Wç]B9(NB{Ξ[r 6 bI1c|p&a%> }B1 $h,ɀ0/ ܞliN KAa$0˒$4jPR@JRKFNcQcdR#4OAxAY#9cF9 R2 H'% %), $p>4}$$~ A۾%;1!G `.!@S=ws6 ^~ Iqs M)C2AiI>&2Rx*@ $& ěۘZ&܇wwןv" rJAGA_sww2 ;C C߈2W2 "ANIHN'F 'E?t łL!OD7'HΒ-H/@'kka$H@ ?$a!)E;LCϻTbk `y']]w =< 2fR! 0`u~ |i7R $a4T #IHHЌJh$`5xR4@A%$ iOs]&) Mu!=.;73;=QG\~!/ pu~"p ! #`@HL h$ !j!廹V9D^jT$o8\!3HEqiYۂt6y~}-(z3bu5#P! Yc:{2FvR/$ ? %y]pD/p`y_0y}^=Ў(=3C~$`/I  oX!%&q\?Pӈh0l!ɀ ѣ28#N9@G HKBb Ljp > +]_B? X?QD"BCJgևYN]ܔC!M9.^|A5qU0bKs|$hI!=w%.9o[{%w)^`:I7W!ɲaו9 UR`s$ Uw{NuAA RbD&/.^9bZv`2nLɢ.^5R!Jh@l4h3A П@ј4nFB$ &HԒ0$i&Ҝ>bJ7ٖh h47JR=kOp.^8r v{֪%IR{kk܊=k)b w$crhܷw}_ R,Ɓ8cl>)`~Mx.^|xP1 s0C[ }6bSfSG0oH@)vH#ɀd>4k #FY13_-_D41{)L׼*~KݯW+ML݀L?co ̍ `wv@‡U` dwTBk] x91tBJMЂPB~3ę)$0YfTrc5wc!{ `.1]=ネ:]9.JAOAt O-e.><Ǯe2n#>MwrnX ~L7vT$^ ҁV7  wDl$h c,hۀcvJx=z4ڗvwwf\ _>JԱ aY&qzb䂟 {6wp}/4B{V)i' Bz:P."Z $2@z1 D%(4C#ϻS5dn @(,4AւP<\L&L!&Ⱦ8MI.M}}\b1=*=>4R;D?WZ[ـ 8  pu;@. LXH( `ߐ ?$@P2~ŔnI]^B":y6ᛃGǰ aP0?/s0۟yVv1?uh%n~細 PX}^Gn7i#ᡨ&))O;#g^5v^Ƞ \JC-"#M(@>?jÊQ79]󱧇KGO)vu[@*u/Ulޫy?&Lڷއ.LiMz++K+kXxyR/GTzD\!ԅ$HR")H#Np '&C4) GHa,$VvZ ?dzn:=xB`=rВM&'vynrZn%0b[(Ey*Ps?vP @vY46JK&plv^e$` `TYhx! ! `. J( HjRPO\M+} !d='I`r& 7` b݀*e8mKEJ.\"KԢ@na4`?-d0x@ PQ7f,'Me7[^Sqѳ%vme܋'!:& |0(pqK;,$h$Ehg&rN-(0̾yQk>FJܿ[-]%1ݔB>x 2 0Q7oƎsx(OMl\-.$kS+/TRq I+A?9~,A߿7iR޻I;ɽvzwԔdɓ_ӽ_^|7o&WFL5˽/6WxM@+ڀȯeG'jB*CC! ]:b' t'ڀBGw@@(CsI4O| ϳP(ߞyO6gp;hXc~Ah&?9KZj៚/)ypd5CX yqŋ_etߚ=n?皻 @ĘtPCb7 Fqj4 @h۔Bh@XS`0x Rq9  `E وlLd4r[vӈE!)/gg{%n딤#@bJLN$}P `VZ۹jL`X׀sQ Ӻ~;Q6ykwC.[(,X'iO<&%{D'(y˓whb4 $ 9 k\-Y\Eu,;ABIgzC8͏GuAu`vdZQ8I &R9iK!\P8A -,g0|j7}׹~z @tW^Pnbf/5-t;x,7$ ARĀ@Hoe(Ǟ# ?&; :K BSّԟ?l؊JU?u-|"} D-֗z̾HƑEPnw+/72-su>%(q4 _bxTEp"3xt{pP$&0 ԓV}،<#y@7sO=s߀l#E<.Zoǚ>[4GY$Y|5rT%j|$J͒Yxd`k=pߏ %%#j/G>OZEynyT˒Gr[GIxHXx,'! `.gĀ'gbNj4?ŋiZŐe iȴ?Gp\>w\znO45-?gqPx%uQ[zvL#*L܊l;&$ׁRc#ړCf4QA>tPC w'>GЀ4%~j&N} "[cbv,4 0{ŋY h8G`&AXo"{u@T{t7%_7|~#КCJ0P`d滓 N=b쐗#ִ%ǡ?wQqnrn- JOZ}whMOde:ƯX)v4X@+(4 0!z0g&jY_?L[m7|PpQ,_/n0g~]w0#-ٺxM +*MHoG?a;:Hξmۧ 4%3#/6;x:c6@kVdnK ,0w'̚LI3{"`<'#GsGlQ +#>.5`/Y<|37#vXs!h94iGe?''?=dYn&?cCKOdw<_v`F[g/h5fqk '$Q煮ҺAEYNbڰқG6d@bIJ{a#׏> PnۚB@ &Bs6LhN$+=DV=nuRH xMN^ڀ4} ÈvT?4=vv}hMqq9^,MG/0ܾ?~!nl (g|^?yaA OOGxE:踋\w?GF7]j?YiNI[M=`vrns@Ja8hg=pC?bŮda慅" eJ>H" >'r 6&%$r/ >3<*x%; I7mt?,w"!#`C 0 /ӳO2 m-p4~C&5( (1K}s 0($iy(mNeR{#Qycr,9 ϡd܅G ֐rnIG.bKcW44y<+evۉ~0 b5<)\xY_ŋEӒH`IŁ=`5\҇dmp7n2Q'Hl>#\ć=G<Ǜ0qgnnr+]E'>u;"? G? hE7GwN#Ӯ"7_w0q3x_pW3ű=ͨ,muiN\T15I5qhg4@1e1ڢW܃8j܊Qh v%z9ś2Pl4m68t@ @00 P|pCA}drnx(X`M - W߲T>qd``(L0n&o/Ow'!IQ;c퉘ºi,|J&Xo,4dO߄v?ڀ2h Xie􆆧Yihɤ`n) t JZLeWՀI+,Ʊ`n@:@: ˜l/ZKHjyiOJSĮ_u`ҿBXhv5HXPC-KA3:@!  ɩņtK!'r?` ap<(MAd4bC V p3 RbK%$ q/ *Z F*۟B@ 2h` !$Ԥ41%#7.A2+`m~XcZZ >p:1ayM1sȱ'Hg߁3q-(X4g;֪;~O"_?#_un~x0< =ě -x,ӗ?;GXǸ]8 X1ŻO pրzļ{t#bjy5?OZ?{NӤ`v~[)ɿE\ 'ğO`ynogFץlٰo,Hw~q95ǀw1a_csDK=bWi-h~|ŖA7Bp:1iO9f廖3=Rof~|X:#-ucEG7 VXcכ r=}cZ܃8[4#~lwX=tݏPvK ޟs=;6 ?;>)C"cCx6K w% ξ̜d7>(b}kanдw|䧫=O_ +-+ ͒<"r{ uMq;5n04 8ܭםXѮWD#lMw5͋LpǹK}2w~x|?ng<'Y@6s4y񿏭97=L_͑x'MX`^`n>xQ}y!|"wZ-eWh +Z-=*` MF~ޢ/J ĚE^  N;7o&h IZCtC,w=f85%8H}8 [7d5; `9 ;!]te',*z{5@x ɸ+!#g|X s,c_f~y+z@ x1J@N@2C7uW/Ęxœ{9`d%DºYiAi0 1;&et9-!:+2`e AE %񟻳$51-o! !, `. xi\,O@$4섎aWl=( h V ~NW~#yPPRG%_YPᡅ^棍~3JXǹ@,` CL;^N ;` \=׃: %d xb@ W w/p0+3e,r q.A`n'ߊi17Gק~{N[J$M͏'/ 'u= b߁/-(+ǑnVb` |~VO& jJs_( ,4&%g 1@P->&7ZBG~7J_۰*u1=oK%b[tP`wz njv)JV;a@díh^.cx}6,lhrQì~BI;M7H!.4@ryw$ "J;E${IJg x]Ix_% &|8 ".K̒n@htLJ O09^'ģJ`e#r;H@$#E MN: *T9 \-IM4/ڹpq43G hDWg.a4\N"W(ԡ|5>zRnj6 ; nf_wV^RrRYN03?}{CGU>(,C& 9 )jebi&gCdn̯c/!@ `.!{)#7hRfe3aCa!1)[a458HٛdM3FnmC@M_,ӶK7ݎ?v]ԟ>SN 6!ahG@arɻgv@TTlG ~%''0*mgb U=Ҕ-%=ol@ 7Kٛ>$Mz ,N/*^d9_~RC@{c:Q]U(MJw:tƵ0)FI #rDl'273mVt5)!5}<+BѿgJ8]0+RsR:61> Z{2m'ΣxT 8%(2HE@bbI'B~{0@Ÿvp}@ZVP? &h,Cp,RdPyeٻfXH z\2t ?1v?0>`6p?S cwpv Pcm=O$ aly\ϰPCҁIHѨB@ ( Z@X#Hp5 @ ZRd`XI9&2rH !x?vX: ?? X?QD+K{vlb.N]4"& wvop0xx| ]6" }v\L*Ƨ_ s}#%݃͝W3_|9_s!@p0X_l0l7wi/Ge>Gp(DoP݌3E{;ύwp@-WY܈=J]ެ/>>0 {pODE<Cwp>n}g5/{pD2wvw{m܋{owbH4 xWF+@}I.GNw"DSd;c̜ CAC`p`HAXFw~H`#$ɺ!e3@>!$6 7wIIc+-nR]A3l ɸ0 >H$* .tB D&fwvM/廢^FѣF`L0 HepKBF ``U @x~98 &_}ھSWwwm.Z3OpE> u]ȅ;ö.K^PywqF{s {N+Ywr]w}AzpFS mv~z_t a?]~dP7wwvG Ltlw3w>-ܴpp`=wUHwS݆Fɇww_Q/!/qww N$6)`Ш0;]~Q>}wr!f#vy>Q־ܻ} vO(D-S|])k+y*@ܥfO V_; _Ww/Qw}˻$q ww2g>wg\ ^O]߸wGQLkTv1> !sb(  S;ivwk\[n瓇w+]+}ߏww[û_՝ܲuvwDw>z{o'|ՈZ]ݞP+`}4}e;Ld"Bn7iTh@8d'N}N4AF= P}BD pswJæ#dBRP"n?ُDfo'OV% Oɲqŀ ?aBra 8` cƚ.Ne7W:@V|oxsw}'hBAoq8 lgߜG#`sIBBPy#Iğ3ft'$`G/q< mb@s+p?X7@>pB10ot![dpW0t_ȀD|H1WU}rG?u^~?-pQm@G|y"B]fa}# zsBvB| 9@}?]Ӷwŧ/z I߄lhi! sDN-N4 Jћt?,H۾a~5IoϹ0_qk[vB\: rE$nv=EnzRǺUO\tª_Xw4sw;U+]v!0?.&L {}wp/&'U32d`+5?p/'7@鸐X^&bDĤ`a $RY^G(,4` %$3 %b` I-)A0J X`J,r! H!f{ `.ΑK %>1=$A` x@V4ka>VU&M)* 0T%7"L $ ܉2j'RnLj]L~1p@XiiH) ,F  i!KZ t! T43L (1P4CCCj@) `* `h䍀y%@8 Ĝ4# q($ 3MP< XI+Ѐ ā&&L1HRb)@uowP'"InME2jI $m5ɨdAr|PH O% I`H$q_|HHL $@+ _I0  HO@< $Xr.Bγ @ w:Bf`U"2 uQ$ɨ8:MznD}E?TY$I ZP5wuP􋨂AL5L5"uIH\i$ @ W ,@TRdzD`Ewh TPDS"NP%'IU/]A)7u ?* {]ou."2$W2*)>&H9\S̚$l58d]@*y6 5 Š4Gw  ?$ i ȑrP MBK)`| @ zQD5&\\ {\wSѤ#&(2jET51 h]@ jrja #@N@ 0 $%$`JjRI8 R@ Q`xG@MPEH #@@+\g{PjɑPMG5u黺&MT I` v\Mԝ1Ԋqr"rlLSz7$I  X \d B `A>0 @<7j ?Z17@`?+'a/3jIh~XOgo$ HJ] BӀ䔔[^) IIŠ<H @xC@#> _CF& %!%PhI,'d lRH @q/ Bz` b"$~4@5BdȫadɓQET &LEP2  d˪W4m W5@&LPMI {/SI$FP@ $ B |^2,x?'%~@V4blM aI !`<&F`H;D2ii%$<pR'  ('%&H7zL! b +lQH#+".`D診I_RdSy* g L@"@MP l h "o 5A`= E@*@ 0Ȩ!Ԝ *tX $# U`T<2ViRiP!~ɺ&M@{#HX`+@/O17% F>X21`P? Q "di`/E I@Ty!! g ĀRԤ \jC /$%  zHn@BIۓRj܉5.w"EQP,\ _*M\2$@ V #'H.]PHA*!y `.! 谊"$''ɪ b@F6:HU&H:DV z$ "TI7X+x-@Ԑ uW{T `@#u蓆mLȒI0C*bb5)J,< X@5,`I; (($73S `$ɥ aa8aG@an0"@?gҀ& @X ĝ %U$) ER$H$ ( Y#$ OX @@EP@"X@O";.]T0BOV  P*@/$ W0܎uF \@) & $  ~/A#-UT _oɩtɫ# O&| I$FL $ Q"Y@ x-y!<?-4# NEB jԊh:U`#H&M@K`#?8kS5Ov@ﰌ2uoF? >_dS/P84P8 _+Um4k$`>t!R%;#ҏ1R70)ӓﺾ䠑6q#'B"(Oj~b^p5C"xF9Q9~Qu؝|Нl0}Mh & 7p|$!n PP1f s'0ב[~sѓv~)GƙuxE.>9?q[va#zI[va0+n,f0wM{XݬW}}ƯT#Odd3"!f1?;}׉>_È7bIXq#>?FP\rAzH~737IӞIHOD8T!kw|ͳcn{?(Y{+v?Ynk};՝/kWTvg O1Pօw<@p O{"vXh֍p~!gs}WG31I5mȌf?bKvLwF;! 숄v~#)9fb1\~c鯽eT1̄ouV4_wwkC{#!K^Gw8)"S2S̥=+߯/>ov؞ɽ   3SWB )08Ѡ;ٗwwwK9މB{6_!w7 )X}/(t6=܀vd4w ~FC0kpPp&q )RwwwwkkPbUwwZ2'wwgLwEjHw G{Xvٿ_eթKJwtVŻ%%;! @ !{+BBٛ`:JX`v5eeTXMUvf۬zRs.͛[1]i~2ccʼ[IDcՠˌ VUySK*(}ZWU[gٍ0Q KY6O/f9c(SYA=LCՠU+k GJaɕQ(FH34)I\Fpt j*mR6'5VAo 4; JըbE;,%ఉ#bĖ%Rfü,ٷWD1C9>7N!be5VETZ jQw~flۣ-QD+2t^Ef8aӣˣŃUdqZt)䱷D;BM#tSV!ගV2^ fڏԧ%̔Zwn};KwEwwc{aT'ݍ !EDK7ڔV(OvFwdO;ZowkPowѮ�4dwџwk/ wwv`wUKO{+k%r|5ܔ !ݘDE}{k鞾ܵ1=HFD ok/bI @޿L/Y|ǣ'`Rٍ37yoҟ$o\y1+c5&\eH3ck ] 47;r1<?C 07Ѕ=DNÈ7~4VvF}׌Ҍ䃇x~732xt#r7?<Iyȝ' 8 vDK%{{w;w@ad Wp޲!v<;,RT}ݦ_,ݮGENc}4W3^βe 0l7R]O~#tJwY{xwtwu+/^xf x(@PR2wpwʞxpȻ ȳfsD{gwwwW޲c}~!,g a*숽{D;Qwfz}#zKn{"%~# y{_|믽}̒{{%Yw ww3 e}pK qN+ p}wvdX!=ԉ}ovW7  /PD X+awwH{_"'ӗLwedOڕ݈]w ~FO'&dwuR%wwww3EFk.iF}ݜ;) ͽݮ]wnUtẄw;숓c‚w p,gw fl_" ~ Hk1n3_dDχgWwvw}=޺ '>j=ddG]I'h3˝Ѧowi{= nvZ.ww&nw{w#[)>o|2ݛwY"ޖM}.D6'Y^Gy/Av:W,jI!Āүܒx ??6P)b27 o|z2v(9ny@B')zƎYnzEagP(EݫUczƪUMB&@lUD? ˺PBFoT!1#逝~IrꃦDX&@GZ$OHL&iw`[{I1x&Mה$ T4H(]B+"0-y2$UT+" P(pprdעCd P[ $V {}w 0(UTYP1@ETX+Ax@mEW7 I@ P1T!G `.Ȓ A- #JI2RHF-)BS -HhjpaE#-UTU@]HJn. {\wSPD!wQwDqwP-˧ @ELAe  d R e$0(%iF G %d d A @Ap%H*X)  p/@8?TED@wuR"QR*.D v\$*1Ԛ"T}@\]L% O$F V${d h RZSV?BFP0`dt B@T3a`T b~ѓ HĀ% +\ 4 #b gBz ( j WI@Š-)'Qe#ƌ$JSɩ,ii,B  x50P6`$ с Ѡ N,3H^I# 5_xB!Q!{ `.! *[@)id 2?W@hG)RČy9jBp  `+@ 8@ &@DB 0D4Z' +$-` WWB"`S # |`SQ!10M&(|ш4X R@0S \h^ F447a!)HDK.dBF@2:9|iCwHKRdrN. &MU60@(03 Blp EBbIĎАQ˺7ЄĒ*p'T4$0`&02*`t ;jWl0/E'gYDfPyF,aj}q[x?QZ'БKi#>rBCDe.+q30Z0 R XNn=!t sz u_RTu]RP5B[WR50p@0Rnݚ9kG%1\ p H *x'?J`&scE9;q4 x/bx-Ĝ`Bx,T'0X|x {]Ц Vj[br5tQ_eCS C2j,.u`SW 8B?oD$! ;%)tQl+HC 2 W.#5)kdW=M{#1hgCXe~fɧ\wrOmKR. x\иݍcMSmoc6odm?t֦;A{y~[n13PY_w"о֥9kozЄWݭke2]d} KSޚwZ֯~R湸@)>x+;mewf1eGBcSNRSl2`Gx.~SsfbB:SAe}Զ=)iފ wv5ZJS)oMM>ƱW^"G8 2KҾԧl_o=C{m)ݙ,37w  Y `RS Ƃ<< ݖ2ޞ]ݍ;)Hwv/2݈AN!؋Wކsv Apl` ~CkMnX8_n`\gC)JU٭kzN ]{A٭oЖ'wCXݩBS jlh6.~]\zFOd1!P",.<8zz!!)U={]ԣ;)Wݰ񫹭 .%u!݁,Kx5w{Y+.^|s!٭ `.1 m e^wvOi~=b&bѺ}n_wk5ZS]Iww$K.^Ѽ/[;UOϻag7we{=n?nnmaӸ/wwo/[|cl!ABX̾FWOgG^߀7wnZ. Y.kdW57Ozkw/~RLS<٫; Fb~!buJw{Uz{a et%{~S6bm+m47_vJ{;%Bw_tjҫ|W."'8 8LRׯ+k1wywts{7,lq&..Hb8Owp  ˈ@H& Řn4weښ6Қwv_݈C{_f!-]v AAwp ~C"ąKuaS*ֻ#/vk_VOtmwv) *)Y~ֿJrݴQn货wFٌDp툶(O(J.wkZ)Ns; wmݴ_Sv]33 ;xwt!;[!7w_G{ ݩtj>ԺK]Wtz.Nz)s-覻6}ݷtwowl=KwtEuC!|8?!`B7")96FS};]Vfz HS{ D&!]L+/Zwt}a5 Vk58?\E|~?h@/k(ٛH $$6ƀ.Ԑc? VXdɭW&^ _uw&ꊒ@^@Eu^MBɨJ p0r*`PU.AJp! @Rd {}w4D_pG T @x2j.?"5jl`SU \0$JBJ@HAaQr@B/9=% G| FČM%#0@OSЄIrPFBJJJ0"II$!%$YрH@!=Dā){&UȬi5@=HyC@" H)7U"DT"EA>EBQ $?&MB&@+&DT5?@ `WS' ,A0 CS($4CI@ CP ( @lP -FրpyP #+=0&#Ov!#*WqW$|gI$0]! @ !3 w%;`^^-%8w=w0Q>DLL"J<0w>%do!wf!͵ ru꧁v͉ [*x6CT ChD1\_Xe[X4*0ltmT]̰ɬnHit3N2 Vrt-7EHvZ\ܪǗ `u6fUUVQf^~9iۮ[Fa{ȵhd2<̬5;%J$tE69#JofVlTVeg fj)Nq[F7. DWֶ^'媲[1}:*B ԷLݮ vHH{#S`)Ŕ$K(r/.Aќ⡞)j.0bf5feTV h*Ae]ayzn2:^'jm¹iId|w%jf^l{JF^$iPV.GvK(Ur[I&A=si=ǭiA\ʚE&̨T|7sCEr6ʌތch|lr5jơ'wuYZmFb!bTj{Tbܝ)Rnjْ%YjS3ұLD!ui9q^YB!sGT4[hWn&جk15v FDزyN±\Ļ Nae%YP%\!)yKvϏcB-MQC㫶 Y%<鼕x)KHХBح'>qdvSbgCleHЮLJcU[YtWvΞm&'28GYj徎,~ o"fƻ'E۠eapzP[$|+%hS2튓)`3BT,lA1ꞪP& nL(L `P%H ",?P@G ?L@D0(2\5@|`2jm* {]ou.TUBQr$2dT @P+]T \PPq$ !M  d(YE3=RR#@!5RdH `Rj IQ ,p([$Rj=H^94 WQT%rd  {\wS&5PD\5t L@$]@,rjdJI{qto4C@2IiX,@R``1!$4$t$"@F@xdpQM7V"`U7p50 UATW({Pj2*P0.I~E]z@w&ܚ& v$I7UP0*U"L\P*lUS ,RԄ I@IC( $h%D'r@+  <F$TIxD&D6=D/%lv۷ǺR}֪&D Gd`NO v>[ `T4 $I$ 8@ @R*jW @F I*$ɚ`) _B@=MP\Z A$&V% BFq=*<`#H0?< %# b R7PWto[i1yC{qH F `X $S>}P q0crRj[aXy4abLSH v[|`2Hj dp\rDET EL @0|P~ i(d %t"ZKPZA&h@ ` %L(Xh`a1i %V!2g!Gc+l-[c$ nǠ@`|Y Cr`XH#y#8Yķø{5jT!3HI |$l ]@0H~_<4hH*C%-!G `.! 9) ,Jp*ݽOXMG;i< ̝|k_@ f &R@v(V nV%v^zGO(ntbp $]e7!+@yN1 }9G#}!5O4?пd{|8:Yv%>{ \PY $A;^K+v H!6dȦ!$b-($!Ghf 4IO舋ĀqYZǰ @dL%| j\B]CЈ̠Aa8y]\x5$j~Zx Ia-?pWhNvao Òc @@`\z8;O[,*krc$;}W_dJW9=3!.VtG{!VJPȄٌ֡w" !7 IwwpY-pWWz\.jBCҝ=M=Iwv_t5wBu 5%?Caݭ )wwCSݭKXLxw. x^cMOݶ{wwd!-B5vvdޛoZ[n13PL/c wtvҞ5!8E}Җw{|;ivoM;ݭkF{~R湸@)>0Ƃl;=4wk~1]ݬdݩjJw{Rwtֵ~SsfbwM74wѾE9=KZٴRݍVW^"G8 1/[}Jitݐ)cWSMY|[7  85`m|BF0[ Z"q|< A]aݩƛLOI;~+!}3wڜ# ~CkMnE]n gC)vkms`= DhkZGؙ5) czAm3h*;͵O~M${ijZB!܉xߞ9"lZ79ݶ4ij\ wkҒ}ږZ;Zji؞m%jwO @|e[q|@Qt`e!=JEy !fnKw-;RϿKަ| hh 4m_dWmEwklJ}3_38z8Be9h+i-}Lc s25m@?{!Y)C;Zf1pd2Jwc^{R){gd"|}\]jN.j sw!M=;Kt!(A͒!JZ_Ҙw{SSЄnjp. xZиֱtiaQ%Nzl8ݖezX֧ҳ_VWm#][n13PIi)ҞJ{Gz4[^浱tҘwvOӛޚwZ֌p~R湸@)>0ƂmvG}JS62=ݬc t!vQ}#[lBݶwtӟwֵ~Ssfb IݖW66]ٔgm e;k})MMj~$(/x.W^"G8 1!&{ `.1 Q m/[}Jitݐ)CGhM>ow  85`m|BF0[ Z"q|< A]aݩ{b}&jWىO} ~CkMnE]n gC)vkms`'Yl.@7]j/h{ZGؙ5) d;ӝMnwM)/ݛkvMޚHvBPK_Z@LRȸ 2(lB?m=Ck 4p?Ғ}ږZږ`owvB0$iFy-wd!{Zwwzi !feRtv)gwbkcX[wwE$p:z>8l_dWmXgڐ:۳iv_}Zc? ^H$R} (]ŘђI"tpi[7N<|eeͷO;m}O;1fBkMAxOu ٳoZ".50ğ1-$NHA#R7%#@A;􇍢@ tcIlߌzHt  *(`u*4C(rRRa"BbjEmp`X #X$ڠ pHloL"E@#HU '0(+$Ҕ ЁBIxh$2R0 X5Qn`-& B6bJP0NG <z7IJJO' U `XʤiQ>+A p(p'&* ZS*P!9 `.6H7Q2RP'r"+UT @VI<UEU $ *xHG+0 t3 0U#%|o7A<0`HOBIMTZ )(Hd nI3|z2 $䂈EaaQETTRU/PV 2. {]ou.R%GqqU"GT |`p,a'# _+ XZQtUL/U@x@E<? {\wSP(i"?T ĉ*e _@u@{ "EL)(G䴁!A< $ &M4 N\C$/}(h.( !p>0ޑap \* D0( >x`G#p HH=P`(h& $ GȨ k*@ LUT(T\ v$HRj; $H`l(L &0BJ GpY(蓆 <`?j@VBP$4!K0f@D7)pQL B`a0ZI%IeIP trQ#03@*RB'|<BZ,CKIcS)@a(0O5%V hG`X (} l#)C@I02ԠsE~PbPE$KI@|$#}1Xi|j$ +Tx$#zA H CK p?OD5k* {2}fIi]UGEU"+CuQ5E5#VJF & \_-((d!H K@!(,P&@D$0@"E/@ZA(wv`is=_j&&GV$ Fx6 {P1F-x _ B`8e `@"a>Bbr4)I< @"@#@""M]B$6 .S Ue 6 >0@:@X%)V%,(jPfpG PB EH#mAX? \'u6!ot[ 3 _D͆s8 >f$Hb<)|- R6l{ tǺB$[& C"`LU4 @$,wKB+Ġ0  #Lkj1`DL0.51`Ro6 !%$1 @XHшPh `)kh$\Е ߊdXs!L @ !C!ILIUHLSH(iq#yQVh6X1hJ7vD`AdO$嵜ꝮlR`vFVUDHꪪQEz gZؿԊNh0_^;:r'fp ӋW0jw $Ri Ik"E%M(ݽɅMt:F8F =>!lG 2N,!Tz%2jKZUP`EI 3+b}|K& PIŶIDmLjatP_V$4e pn2S:QsIEJ[ X•BĊJSV@}ѻ(H:R r ņGtbuEeeDF a!9骫/ 0_fXdbexXhW-dc}r#0ījJVVʖxFVcC< IƬZV&ElG'aCE!׳|T[B \F+ >Faq_8٫]gH n_I.g]g5,| Jf4`ĪD "$եHYU 虁8ӺӨ1GR4{Bqlu_"Kb[2=ר6rz rbei *㒣pa/]1`vFVeCFjMj{)ۭ˭7p^QALQO ܲ98& kޔrF2KPm]㕒-}խN2شmo:W+92hQ!f!R]9c>"sfӷgKͬE(\zX6yME*AIJb:~ &LY/16uÛCK.+ 4$քM_Jo6`LrC1mbvEVeTHUZ+ b&D^Թai Yjb5XQ47rk3MI+D>jK̘)_RK.B]̮]$ez"wV۴MH"* ,MnWQ,yYWʳ0LO8<쵼<1b;tIMNHdUӃP#L!%51&jDNcR%YZe5xUTHѱNhI!,-$5܎|uK]M! l ](M0H1vc`u5ffTVUgZ*홐4t4\WY*1UD,,0\yh9m1Wue}UgE啙U]ybU MNir8ŃڹSja>lHuKVq!ZGE D(k)# g}j-UKhbG_bZ-wy#31eѸz`1pKjRf!٠kdiYbxV1m3![Gb$Y %RM{Tx9E4iGd#Wz `ö69xΥe x/ lDbuEffSFUvZ,-́c;]!*95aVTpFkc\\R9NZLlX͎"2SEf1lEe)Fّ^k2۟ի AFL7W&CtNdeαVШE.3RO:+7THi"^O֨me:ߒ[*V}"4$kKPAZly^O x?'TTɓ%x1)R*ܩI-)>k'Bg8*YjTe ZVE#N^uO3Ep9f`vFfdC6Q3A%Wjh/0 :Tt&=[ n%+F!` `.! ڹC[o-%!,+.~@,`$)}#]I gf=GR@̡k  |GutBC]XmhA&ȣvY Λ\35${z۴.rds.9{`}ݍz_w4/< }wp.@x;I>ڞki%;h潯ĥ)"ސxwt/ki~}}ޔM}. xwwwm)ݩ|vC1vBϦǻ)˥={Jv)KZ&[n13P[ Os})vJ~1aBWݖwCSޞfӽִg~R湸@)<xWfc[.sjevBOZ_v)I!]ߚִ~SsfbJP{,sІ2؆KHwOtf~L5-NOhJW^"G8 2K ;)Okgwu)!{gɥ?wZH-ûޚW fh+BF Z0[8\h#]c!ݘM`wtRC)hwtۮ֧ږ;wp ~CkMnX8_n`\gC))ݭkzN K羋o`\Vt|Y﵄{tv! ew )jx/ky?wvk}J%c`ݚRi\ !G[Z]={Ҕvd{jHXݨБ+(`+oe`>ݐ3ZOowjZӻ !fjZ촽8֥JS)ksK ?;ҁ4R` ?,}vgwwD{{w8 ߗw[SvjS_8OwwCxwj2R.S0]AT]DΆym[~;5+yٌo!C^Gx]ai{_!֭}L)f֯1S5k~S6bm+){UcW#_k5>=٭РS^ .{W."'8 8LRg)ݩU-{\bK脕9eWr;޾=)x+| lWh`YAzYuXed!̧wHwv\ko֮{7 ~C"ąKuaֻ&l仿8o]G{v؇p ,x/ޖAOCv7 {5Ot]}~B"heݚoODs;R" mw%ݩ_~ۓKC~=ۯ"߱5!sG `.1 m5 Q1XL,"fߧwwoԿx !ښ;^kUûU ݨV ϰhˑ؏9L'x&;o;}owwwws[WvJW?w|[C%7D"I7"`X}p1k"'gp얫( R?;1B#^"IB񆫡޾ o>B%# 0$~0h8t5 $ HؔPS@̔t%J$bђ8@@oJ@#`iD CSPbYi!y/N! @SP*`Qie< ]% 8D4 )#sp@`XZ2Jr(UMp\G|xN2CvV Hwn;v7otSV@a7I + GOOFe?@50 JrJr՟Y ُo(12P R `!4 o֞$Ͱ(' @ d~G8 ,͹q7~=ǾNY @҂J0><i T03e B,e@.j: @`CJ@IQ|Ծ_WAG G۰v>ُPP 4Z )'%~z@dD @-$܍!)m2 ld `@uqx0ܓ8 aqURgoU5^XEoUI0 ^ J,%g׈4lo?u o_/9g1gT[z֠ bC!ra0 ^=chxBrE(Z d9>|*RvS>95Y6L5y62kdɓiɓ&6&Wͮ뷕yzוhxH"B- Ifj4ER1mT dXɿ%)(^t$`})IEqhRЀ @  ɉ (i`WМ#($@$ 0! OBvvc(4}rseK, |!0* A44ɥ25[?֐*` !@vp*Z1h&P(SMJKm;;oZ3-PXܒz~bZtI n7) H R`ݜ=CJ% wG`$רI!, +4I(d&pNK-K P52R`Ќi(ZFq#^vDܭؤ ,}БUF,O~ vx& 0(RiDB+1#I *RP @`ǀbM!p)aEԠ0 /e dFvٿn7|w60IgzPI&bg 6( ӷ'X} B@.@^AxHѽ!Rsw b_/%Gs#K&ӕ6&Q{Kb&ߍJ{.kJi7ޏuo&ɽ;޻ywzɓ&&Lrjɗ&&\rgՓ+˓'l.Lx=fO;va*!G)H".LM(nppG܀;m;&;ہPDZ!mCrD2a)o`ۿ*(2k. G0tvo-WPDp̅OX!{ `.JX;J0s.,hv?wG9%rXb JO!>(*H5O<#Am8dGwd@h5->T%y >iCH 7Zn4Y?k{*@k$A~\skXphż|[9x`<AbŮ/#eyAk\,׆/V>1nj5ȡi9/G-CE߁N[Ozdfl1d~7O /Eǧ](1; %{}ߚ;; tvPHE{f1 ;{@Npd !L`xnLnG4PC!9aP6}a٠8}2Gj~A7!-fGSC&e:_j$ x033T t0ņ:Y <~pAbbR_2 ' !R4fA(1Fl-/ݶqƺ͘ @(R^ߝֿϾ T bi_DwMܢſ?`oIYiP$?,]eT|j;~*y,=!?w#̎Qxoeh<ʄ.}B\CF==>\#ϒ, $ 9 ʂc M$Yiֈ-\7Bx4~G'΂u>"eǑ1|1|x;> 燼1o,qhKsHŬxX-q`5[s?qbdo}1`# pH%{٥Mx!?6 dnX0ڡ<|2~W'CY.i{T$, dOUny\p" n|p`KOa;DĬ\1o>On͖OőM-#lX ǚ,d'< iȴ?Gp\>w\znO4)\c_WXr9uQ[zvL#p&wE1^ &9>05Hhbď3Zc 43GЀ4~2PO>} "[ ZyNj}$~a7rxŻ}5` 4 '{0V)*o"{*RRWy BJ,bwq4߬"Ҁ1Ak~O6Ba43ƾ=kpl^}uӾs<|nﺖL II[~! `.}M:Sfη_>H&7Sn  U!;@ `@bRPhHe}Ƥ5EG,3{94P&dQ8O~{(,L-?cY kbXƒ0SO~u`씭!OZaPMxkvR7?L,_A{?'X@B@;G}Nh +ۏH\3yB ԒI]aO ޔc[߁<2{9,w|o>͍n,OX;z 帘#k招pđaoֹ<,_&'\'dA&7sI=4>/'@ ,v ~qN?)\?5,LIpHNi?yCr:@gZ=aT u2<Y5Ha~ɝ`v41|л9 0O&8WZ((Xhcp2PǸ}iCqni SoAʔP|y􆹤r ’Zwuς8X )? ȢӹqeP Ɉ_r-jNi@'"? LJ\n[) _<;Q/[`0&WA ,c'(ݬ@*M1I׿}/sЛ_m 8@ae'vWi$y^W׸'۱k6R6 Kz!PҒWl 7FSC\~J"u<$qGly; aċߎjp; d^A?aqfM m4yGPOu^XK^v@ OOGxE:踋\w?GF7]j?r)iNEY뜚mE 0q&?E gXM) C_ +G3 ( r- wih(PA4dn6W}Y<| h`ýҜOZosdA 5% !>sb|ހ1&VK)9֡$RWFc8?8X2nXbRZ7 <] @ @ ! 2 cg(,fYAŰ~ MOC;n+sǓYdRz`?ӆ _s61! Gp'\Y_%ggO#a;)]f]@TH\tC%$wa,H~xJ=bK)[%=/7:kr\O'w5͍c7 yn=黁nF8  =:_<>, Ϗ€N@BJvGOV?0st Jߚi d(0 2P04NB b]*JN )+@\ F+!)32@i42Q4LN+B~lqLL(3Kt% t~ua_= 毋<0,_=jJ4KjBޅ7dTbuUWeDHJSUኊ˰n^aW}`n_Tg\K VCmf1YY" ~Y]z&{h!:;US7'9`viyqF\29#_"k V.++8 :Tdbk-:~̺X7=i~Yc !rl%XHXi:Έx[LQ!FQRZ+ؕ҈6}6n6+"[-",iSFVrY(PБTf(qK#Nu.EgM\vf-EFp˱`e5feSY ꥄVMf*fk.{g.Z-)L'C&a |J]$iFMom{:$ BA5RԺàELVW^$\эSErMS?*3 -]q@m1Y$%U ]SJ*69)ش:MF! 10m>uPu˻t15j`g#ZPn`ymWj4bv *.j#F:ifL\buDAնI{*C-nSާsc+,ݛJou Z`T=[AUNbf4DUTY +S=EY~I&z,-ZsGu^8*dG1tD4ԏ N5%E%6y[qil6p6-Ń&#* Wp GS~~7Ӓp<4~ |҇dmڔ}MsYe qf J8t67@` ` @<&]VBBK-)Gwj@,d2` k3ŀ;e{bB?+t[c?0!la[ Ri4*C ؘ^ܘBCvGĒ7YϤ|EP`b?-It絎]2nMg0ӬsS灼}p|RS܃ǀsv= %x,1߉w(X4o.G n拐l~F -yāsVbf?<, 0 w4x\~k1nE?} cuA-e?.4X-ͧK|[V6!t`fR:t%<\uǵI5Ǟ >RXX %$nWpиp 2w4>A+M N_W܏[ɹ`hb@aXbI,[$45XN|&|4ξ=Bmh)  Jƌߍ>;;wj4W!K>Oܠħ?B1z{7[lb u` @6$8oHЄ` _ kv}@%7-%9y|Cwa|#A+lgIZx`% 6!0)$$b(|dn@8Z+ܚǖ-wAH>aiởKjr\sG7O ƚ'y8hXwlߚcx6K(lA'^)y3\sY~,Bo#l !aE߶̎Zzy܋ Z.|X97EY<5ȡ@6q'?k=v\\ZY>qp`pkd{`j~̝~ ^[#?q!G `.`p>c2ߛ'E}cƓ,x n߁c;D4|zFGHIp+?h\ŧ;C(,|ӞH79<\BG̔~OG;d;7"P92wYN#'}$;c`X‹4R<="0 $p渿j0$2Q0A Ol46Gagހ *|~/~/YRM( lL+mm( rk 5υ=`#4!)-<O Kl?9.z Pa`'bR@u`oC,ZoJ:?1X8h$ I41. ;5 ֯y>lɠOx|Ǿ +̴ZXII ߫s8&K!!ςq.-0ipƒv ĆW7҈D#Bt#9愤'P + VDzW%afjڡ?GLرdp7%';6O(_&Vqh<:Qw[,,,r5fC#,q#xsF5g ȱߟϣ~i*N͎.unzw}BM g XZv'GȽ,zְd<ՑV>_2$@t']6p| r l'J|eOcH-? \nC;̗< ZYl0*Pcz/ d; 24kp@ȄkZijM0q܋H`eRx]Kx I]=}=׀- Cx& Aễ!]ZR7+CMłI?e'f>߀x  юl~}$uތ4N:6A!'^@|Į 70!a1 usj6@@e7#woO9ưİ /Ⓥ_WcBnZ:Ѝxpҹjހ XK,P( HCHd=%:Qte18h|)RG%_Y!.;C (=nߏzp`v!K7jp_GDp"z;j \=׃ZepX+:wh<.^R)x`PsƸ Cp?5(,DPްP @ nE&L8/ߒ[{z` [gԏ$_& 0|5?u{ppp?cTr/~GP R]_'D'8 @$pr8 >B@痺ެ0*7?n|$><48  4|ro ;xp{X\;姭_ LZygG竱<``d# uS^~\bφJ4ӣMLQz Ǒ؆C95 v%.3A[4 ``5!\ pj`aZRg&0*XfA%!]qBL, dS_yBR4܎[H@||4 @X@S&!r^!Ye$BSJ-9@20p @2 @5Ð47fA M8Hha[oXh@I7IKǒPKF(t!P5gf%~+sQWvn}HDqS/w@)@ @P @OV-%\^)罠( W\h 3 ! 46@`ZHJCCQ/-)TL 9̄BO-RCe&HEGRw ;vru@ݿ+ 0B&PmwnvI~>?'go!?gF5{P@v%RI@#J & 1w{d`o^Q 0(s=IBӀi@0Ez\ T ˜%+| ! M-Fk@ @9,'dfPfew=c` @j` idEX`HHX(B j; @@Őfpx `}pq} \n`s쒱]P` @#i058!; ! h&ϗe.ni`!%QcF#%3|1 #Ӷtنn*@ Jx @L!sMNδ& ,G5\ny @O O"}/Bv~< @1r(#Ўw@ LCaIifV :E um~P@x @ `*z@'+ IY9@D@tII,G-A @0\((s>% ]`h @L<@!xYe%CK@ae'qܢpM *RyRĶܟxgp* NInM 5?0wp 5l0#4΀/@;nM, @Y}J,41|QIF74$Me*>u~pκK B5wIBG>$0`㉩s?, (i7ux  P nO/X ; wkz&@B&P';>O> W@MA`R]v T4- v0>4 񄤋4,?P$$1<Fb{z `6yQ}ؚ{Q OM/k$ 8ڃ@'&/RВ2 / ! `.JOQ4=Ž7~'ǓG>ąxX~7u-~ {}W|Ȱ|~g!xađOuyYv26r;ayxXy'` 7{$xޟh;G# p"EFr<`*Jlz{5:9Ie o %0; 0y5<GtW؄Y4 ] X@/(jM~L**@/~Qo `:C_@ @#j=*fr@: THA<  ~14kP@i7f @NB@h {*YA%T:+!7 NBS`7da)(7䬀CzI + /}n쳏uH Qz@41 '0Q@;47aG ix@*'lvV `1hP̰B I19>.4v 4$$$b0Q!P 5 407_%ɶ %5vz ! rCCJRi0! MB0ҋ(tVAx4$ K@/dqߕ{ /ߣK / qn9W7߷@ `@a A1 H,\|C Q)&XO(Ҁ)P \; T6Ph`P hD0(@XXi4#ħ{Ā8@ @0@ P?~@NLᜄ(RD( / 9(-^piD0@ 58PY T4`'.&LH "Ӊ iJHAt]ҝ6Bz@;IEP4bҬ^;o }84)Ng`a 0ih!8ow۶u>@  H`0,h%|^BvND H!bSSd4v/o;Xm8gN/uGOg4Z2ҔRzdL_c3~،M efPozK(^\`ᘠޜ1#wG۝Wu1`Q ƣ@҃QRS~_c a/TwBO߅7a5/|B!aK҄2~%d{f;o잍6:tVZ洩L(@ݟw@EfWX03ѿ}s\> )BQdԖ7Jp۶m ]vHh ӆ'NF"},#CC0o(G?5pnL|gptoF`d )g#?rHN @<80&J%ۖK  @ĚP; /b (S`*1KGIiz @ &}~Ohl x`@ 0!ēCRPld>P`h++!C!j %jIJ]/P]{ (%1%Y fŤ `Ϸs*x&f&n%? )B`d nX`΄Gga6- J>FC^YH@:%4Fwu)n+_c7wkuB<~2owu'LO~SsfbMm'ݚwzi-Fݴc3{ٕKCjhۛZRk[K{W^"G8 9/%ٶ7!ݒkû ww!0c|R[ZK_{iJ  Y `SH(_UbM0E롌a^ӽ0vnSkKw ~CkMnE}1 C+3{{B;B;hbzEG4cp Kh?7gkRG_k~!wD?;Vov%ݒ&\ dOzݭGnd;Rû3 c: *䈻9oR۽k=.He= !GMwm)[]ͥ9) B}ԡ9ٶwwwtwx9tܛѮ;wهpC{ﲞ[ҟ{Www[R۝b"D/+l[H1﫤i{-e0wLAюIahOwwbR׽{z[¡AaT1qLx8}5Ր_w;ww0AIB@[)!9 H|pwwwlH}+B>씭yi^S7nj{Ťv6.#{l;}0S]=CaBcݘ{^# WW"]j[#. x$Sgk;!H~$;Jwoz|;Ϻ_[n13PY/eRݴ{O a~0ݭǻtUz{-w~R湸@)>4Fwu gwwwwGy {[ûb}ww~SsfbMm'ݚޚKwtwwvwd3fK)4oow{SGwwnIKm'wW^"G8 9/%ٶ7!җkúi1;|Rú}=֧Rwp  Y `SH(_UbM0!  @ ! !e?HK85 p7EҴ6FN&F`r*5#.B핫'd3`3pl˲3zIKݪ]Z5VzVzPےF:]2 6L=M7Wn1Τ%^ pz3>$"ZmEՍSSOԀbc絳tbCWV+ߘuj4af5grզo$-^3ָ{Nk"0F>'!/-K;6%ﻈRȺR,Pd1B)fPƻ\`?Ww"dNR+N ^`e5geTVj4RUe}{- %+tMW-jfἧtlMSxGv$7💃O'4,D,yzfCUQ5]R]#9 &YNQl`rno89;;>ztI*HC[1hj@R"MW3EuD,gm7[dDKѦڕ"q/|r4s؃Pj*ӣƑ}Ez*VMw>';($4<;WҢa:ץѩ.ܿZ"rs7^bf5ffdTIUvycmuR9U<'bϺS3E+S^ Lu"YֱhFr -NeTplP3G9@5qhSkvBzӚs&Y"&f[:"*XucSIL<}`>Z3*zf]sK,}lUk F*|jYT~JWG'Keb{8%Y5 S!*e$-%*1XўDSkc[ .%ދYp[͂jƒU%:5`uEfeTHT! 3G `.1  m5J!3C½ݺKt{ٺ:ZMO- ~CkMnE}1 R+{{B; 3֖5{{p KhZJKwfҞھB~wtBwBPy.L S=owkQ[KSd;_fb߿˻7EО !GMwm};I>jQ"S˻軻; p9_doh 9fC7wwM #ݒxF;i [vbެ>;twwm-:7Ԃ!v #TY?x .OgfNOes!'|H3n8Ԛ#0HJM@;td&$점$*?"'xBkFú;c^dwBՎ5u3^EGN0c0xs!:d8F߉8$!(!(Nom*}Pt|&dF>|J,[7oqxn=܁@޲3sgmtiIHL G(o#B DEO! 1 &~_$=4n dOC?BRHv@Js`@<=x~_s;VƪUuUꗮMO#r0fRBz.6N"a: fĝoZ;k4<$'|wX)yB8ٞW9izT;v毩ֺzsJUrd@H `ZL {}w`ʩwdăXx& Ɂ 'iB&V knЄބ1`4i @ѓ$ QEɬQR(SW\RI7UGrdHd $ήL5@꺃&D]T7d6 )$ V-%%~B:SB6@ DtI-$ԒEGU8 H l/I) z욄@@('Po J0H ;T52W"$^"D]I%Uu'QȓP_"P)5D5D" $Z*D2jLPr.E@X5] =HF,{ p AW{IVB.ah8#k)K@n0 D @Hod3l _Ō QPE'H &.d"ԟ&n\+&er*D v\Mԝ^U"DȒ2S tP @8g0poC>,PH`a 35 }`+$0& A`aC6'H܍J(b'6GQ'tPxԥ Xj3q0Hd&x0hA0‰z,%#71(@z P9Edd BIZ䔤K<r@zEzIa a@woIG8N II1$`;l#Q DGͅ]ArnEȓQȪXkLM7R  @c.E0T2@GʤT."䁩2dɨ%p*ITɬ:c:@,ɉ@n`T 'FA$PP)GJmtIER#qI;)(@0(2' FN(oPJqEŀ )LЄ049I,`KGM#)  HoA, 2 I̘4n( I@ NM& H)}2`5  %H`;/L' 4:Hnȓ".ȹ5 MIPɺ"L =8'ĝ Rj^ =xU&,10l+Ԛ~ łX+E@ (+@?U@ŀ,hjEP\cwI"nH)_?ɺOS -!‰aD0ZP )~f@ސ Tt]41#D[cgpWC;02SNxN<H% Crkx%z2RPYm\dČHPa &H@\ڪGӀ 5kuOB /@o]T3(bbH@#܊ ?&eЉZܙ>, A 5)!&B4P BFbJH@ % (4 (&! T Fx! J<i( $40o@ C08!QƖQ7eG%p#Nmy udfku\E7R}UJwB58rJA,oz@,HG5uLbD CJF$a+  @T@KN>ƸP+IYXHŝI(|0 0!x+ ?F P$gf$YrPF `Hh~&eP¨H b% ER<1+ 8^Dwu-KR v9{B`rxaH &j# i5$|Ɂ$φI,hI-!= [YA)HCA 2& @ jH_h@I'icRIKH,@!@F2x ՠw"{71sxL y0d޾ #}Ҥ wf{H_}/5 S`3 "!uO|y7.N ?MwW| wD6Oa֙+4^[w~!gsz8SA6=ݝ)k${5B'ݶ1Ȍd6fOذ̙}]~#)9fb1R)V-G7]R[<>vžRs7K^Gw8)rJwsM-%٘w} Otf0w~ BwltoO^  3SWB )0UmvE3outd$/!aBk%;SMmI ~FC0kpP/0r"k8`:F ol=l4;hz!"Y}b{aO! o#S}٭LZ_zҞDvވGlB7X"ihwI5螞 Y"}jCHw}O}mwdbO)_2"0T3?[B"HBу@ٌ)ډ>렇vvJ  !ݾû﷽қ֔fmw~zzuHy@;d;nw}:Q"!ݍH}G)֖/=ڌB CG&MYt>gtwwz%{̌wwmdݞDB!+F!zx#!st!ehm__̴DoT*I7pB =Qh/ bx{"qa$@!uOf{z0FG1s8fpk]&glvX8H(vRU)_s#=${{:]ǻ:[֚﵅{k9$]Z<@j /ҟ[ocHwfJ:#>O=;^w^3 qtd s3>Cwwg_+Sw-lp~!gsz;RΔt_{=ϡF3:L_}3{OI٫ww~#)9fb1R)V-Є]ݙLYvY^vPpK^Gw8)* wsE- ˻vtk ww5کOڠ+  3SWB )0Umu}UwJ7w`.F{N{jHM| ~FC0kpP/0te tovuo^ވb'D6tBTC/ڟSO}O ZΔo#S}٭LZ2ޭJ{c}1h*NmݨL;N.kCQOp Y>OHw} $GwwهwuDﲞuW& w&0a ( 'WOmP\J#(jPC e]b:7A>@ !۷Fn}M)iOwը nF#wN,AЇ08h?F}.]Q!.}G{64k;kC"%tyo" oL"! l `.I>5YG>L @ Šai$(Hi`~@xKpK'N` b| ?D j`ꪂ0r3c$y=]㌨?`= pa:fyg YMBbAG7!}2AS@*@HS#`Ruo`RV"Nd ˺P8bI JPUB9|?@R7)`5@P bdd9<"BdV*D&( aR*EJ*DPTUȩ RdIQ {}wbep.@*`0TUX $bA 0(o(h`#$ @ T"c`x$+pL> DNJQ _=1 @`?UFeU݂Tn?xZ+AWUQ܈O $EEEU@: ? Z 5U@?h IZB ( y)+B8q*p< "+*ɪs*QU J@RAa($Ih/ON  ]GʋˑQR* U]h TK`UQdɊIuZ $*L9QuP^EI %HD@bT#PH`\bP3xq"SP/ <jx[}Й!=}O 8lTZuHK"qUQj}TU]ɑSKb ZP%'oP * l"DuPHUPV( <pAihH <`ԁH <䘺 Jv04$   1,'7DGX IEVWP ixMX ŒP  .@ȸU,uLP)U]AS`& {]ou.TTGʊIuP%".$.T2u%$r(GM HN,jK,hi4Hic@O$, >4*b@ @q&*%Q$LU}* /DIX>u *d\ {\wSTUUA(W"E@eT]0!?%7NB \ @ԓI 50@d2 Xj0I@:)!(n @bzK҄ai#8j~y#0J0_| @H& 5T%U$g"ꃦ@)j4"d @*P".@)EUD?ꋑ v\$*^jEhIUM eذdp*e`6/CK( m([X @$`BPB,3! %%,)ԥaI@ $a!`x*bNPp @N^F5vm?FM;r4֠.8]qCrr_5͒UY([$KTVWAC98FDiz5Cft܈?UF;U.@HHB&bvEefTDM߂9oVhȏ04v3ʾC0fvllu&tbof*2cMNr΢l*E)f-؜l> Zn.2M3}$v%IwW+\zi^HR! G `.! eQ5Y`+&J 2Eb*HU]HuB N WS  X WRzI UB`,@#JW/  PP`A@*T" Dɓ]C~EL`aD+b@I$\Q-#KOI% `H' $ LN(&@=*&`E$[l^0#x E] H`$ = !OKz} K,$硍J06yC]T &Xo>o*ahEA>yB/Xj7̏w;r}ͻ&a${y4<_WK+p] + '!}mvO={U2،cy+; HmKir}3Wڹ.UՓ_vM&W}K^8<@p (^󻲪f=짺2k#;w]"O5}ֱ^5^3 qL;a*3!k~wu}ڴJ Oww{S~!gsq̭GUcovG٭K;31Dc9ܔe޴OmV7w~#)9fb1T?}wkJtDHw}fnU(wwb)ޯ+5HK^Gw8SFj O;ݗֳXק۝Ouotm  3SWB )0ƂtH_wtٳ3+1;)/hw_tTp w(• ~FC0kpk,P_n c )ikƄe4wt2zn.>>dv; ;9ԝ5^%=֔DJ/{!K)amR5Ȩvatc+ݚn #!z6GSݒɆwͯ2X@&L;6*ČMF!$e:ѻH5 t F@bOz% ށǓp !߷fV'#C{ g;U)hrov:'n=_bo==A3pC{w!lv'w`S!: vĿދ{! { `.! =ƾûYvZ}]]dPK)ݺr"#%P ~܈~ހ@uor(Ge,_uٌs:TB#==&rB0D{0M_v;WENvRܤ!Z2mdaJVwp.8c nmJ7ܖ'kRKKRk3X4[]4. xZw3̳du!2,Oml{tw?ky>k[n13Pc_4z;)Cst%m4J Ok;~R湹̳%t${-m!}}KHFkXȄkGww~Ssfb[ ;ݚz֎wkXҽ D؊{ûҔ/ks֔~[]HW^"G8 2KX3]DŽֵ}KSjaДXcߧ{%Keijw}M0$=B9߱$E(7$&Xt3D Vo,gP}͚飽B fK' p fMlwO{f˻545 MBwV(X#P`h"<7Fwwww}wpewm=L{)K`RSL{̆hH>v]fтbb|:Kuhg.F=K;i_|Wwwmwwu;td! <)=t#EnFA;eP ֺ;SKW6MB0UWk>* 4 ??<1THh#i%I!!R5<%H`%H% J@BQNIcx#`<$Z2x HѼBB3 7~1"Ɗmz>cy Sćl XX`.Xfg7)PC ?r =4H 2jb`ցSE| ?U ެMz ˺Pt}tB*Bf$?ha0Y/\4_EU EȪ  UH1UUE 멀H5&Q03T]A"x&**,T*Q¤ɀ {}w  "!:U@0RdY,&HH dI!!!#$$EUa>Ўo9 "tgO&%&2^䀐ĀZ IQR`OA"QH*U}&@R%]_$P+V A5)kN*T,D $L5RL, 2k2b LFx @UJHx5!"a(FXh{I x+ĂHW$$l4h.pp£`@&brPF|R Ę'| @QhJ8A#  h.*T@Rd]@苩1uUI-UQdEI! `. r  $x+EEy$ɪ85UO`f*@$ K@xV$ H0 O@RP @-A䀯IHp? D H 8 0+HQۤ5Lـ ['9`Р'N_Є#&-I&x?UAj&  ZP%{&bɓQDɪgrjA("HW,x`#HHH@EL,$`H dثHJ@ AD~ QIC6A$?pcMzh4 H,I=j _*IdK0a {]ou.R@*Ij 3ȩ" .EȺbNU` ƍ(|H:RnI@Ġt|4 J Ad9EB%H[+& KHɥ7 4B04`` xB(wB:@xI$# Q'HWB(jL  {\wS5UɓPrddP8h]ɡ6/j r-D*wd q0QYzv5/.Bk!$h@dJPHꊕ"%IO GL1@UWV"p5P5@R$ v$I7UUDV@TUX `)X&0%T$ JH@ +%# UN[9@&hKy)Jr %?b@aђ.iTSN { ޲mo?!> %?QV~&UD1D3olaKC  (ndPGPV· I | %E'J@P ^NB5 PjUMX_a$j*-Z0ض*-X˺kjU_W&7&U 鱲U$"\#p *,.C@$o+$7GB2Є p#+ۊ%#h"XG'XS Dz" Gҕ~A;"]a`%$nn?T4 䰎/4n,?3msk=_>T9.ZUVu_Qꥻ{ПjSMT&Оu= _ӍUP$! `.! :I@b@*& 4@ 4 "1J,*R҈aA,PZeP,Z@% % h@ԒQ37'r!(A J3ZCS-%p. '! 0НcwNmU+H W-;+$qgF=" \Y~_=M}w{} !^vP-|izDs22dl{SD?Έ_|h_H;I#L#Yߖn'ow[aϧ{z= ^+ӓ#>!A$~OwwZk+G)[]<@jA|V {EJsZ܌dDwgޱ^|{S;aXN_g*R+s^3 YMs"Rd!ȈFt#}DJzgr]ܶ|~!gsud6KZG${ewrۮ;kjgw~#)9fb1\[IzҾjZWIKHvzke_vR˷K^Gw8)3` ΉO[Z(L.P>&@ww쪔'S}7t  3SWB )0U5!I{&ƍ0=ZL)wbJwd^A`Otᠦ{ ~FC0kpT/*pX_M\=B#}.ήGDBwlt4wКi "k>W;iƻb=߯EE@Z0d? {e?ﻭ(9ަ䴿wJ{hw #!w/]F;~[Ҟtd﹑D{{]27O7,PIG)$ }Y#$sI 䕟8 $`%\w$;BF wwͧNk}ZPt}ywrN@]Ax'` p1=%I'5[ !i>kS}{kTB߀T}:7wO mDVK3۱uph9S.tk m61է"!>Io_/a~3EvcΤ) w4ؗp]N= ;s21 {u$Ϻ- 5廸2-w.}`2!'L%,lM;O]-_j~ֶ3M}jWߴwm)[. x^m6vRi챲:lf?K+ݭKLWoiٴw5[n13PYMg!K]f1r}n+OGwwjSoiS{K~R湺3 ew}kH})Ovw}EB:mw5tOIk'~SsfbV ؾWB{B;1(}vMW^"G8 1/[d2q8p%cBSkC{Hwt6enpv4wwm+ݒi>owڛ֥û  Y `SR(] a{wbSOV1M;ܟwJm_f} ) ~CkMnY`/A}c;۲D( FpN^|@4!  @ ! ~ϕAD6WNxc!-!-Nq4X)ZtTs R0JZF I2l>n5 5EJmm HbB$DԖqMjsZM`vEVVDFYނh箻p/.tuI"LNvhT[Z ReGWu ")5|{֐PT@ ҙoPTKְbhIɈȽK˅*TOƴPf[B(g~ 8gK2aq=kjLuY"Xo;@|mH ᶜQ*FVPCQeÛ }--vdDF!u4Ҥ>u ]@ȶl8O-jz"3Z Жx-]vX)m E3Q!*rpUQ4ApU_TbvEfdTFMv\e&{ޘ;jU!R Zè+"#j65E]Z )BZF \SiuN觷$mNNdaa8P\j웗:YҥB摔 2Ơ6j*rKB6ʕ%ZZBHSNz}eFfbˡjy֞;1ᮻ4(@3V&^"(rfJL|6?L$DN§$Ít1a5\NmAGW)IՎcQR1t$m&3∍ u;ӄ$M7Sh Ĩ1Rl&=AC(be6UudI SY߅&.O#:IDxc"A^qnڂ6rHqud]j^8] rF"$(l=rQJm jbxR- G!bhx2Bbj`!+3`ex)IA"陆lŏ wKOT9'-HiֵsK T:M}^_$i8wr^طwv5%苳P@ X#tIޓ- Ew{['N=ޞwfԥ=vݼw2)䜤V#k6IHCOlUے0f)H(9?1}{w{IM:>(m aݶLwm}6BNKݭw+ڌ?;;\ '<_d-_BHM~t# y`{:!Fj[۶%-^-O ċ7l +؄7F}B23UGûbZjx) awpF >7Ku4!.iP1?J-1iH҄@!I#jcB )@qmRD'),fHH@@A(HYnuڻVSjT!&GP D ˺PҀJ T"+Paa ^^|` Rl^S?0UC _u_ @=oCVL `UUR$V ?j,P3]@R*RP9QP3T"LU,ID L@#l  {}wb}8+@r"fۀEW! u3/E0-UPma >Є ZQ d4_a!M|!3q$X@+@5PE^Tn"):_`R԰)UAT]KR  $ UT UP`Q ׍(hA( JP 7H$!Z@!P<Apuz8HL Ġ@ Ā>Xt"]BS$#ZP-ZA  ,Dk:GusGx3@"ɸ $ x ..**UT0)5@I@< +&.$ :pNP4_D A  Y$W+@0Y&ҋ*!2 } ҂x4U5%B*?P+UB*Uw&EG . IAV W ZQ  Rj=ȩ i1QUDX S%$0@+?} 'ECF$@ FP,4p "ʘI % ) y(P0!h N [%& *U=B*&L˨ ? {]ou./I".*Pj2 D] `%!&I0C0 `YrC% _Ŕ5@%W&I4Xhe^B?၅rjK`P  c`x_;uB̡svjQJ 6!:W d'QR*,]Ȩ`" (?]L*D20@T hNZX !TjF$1&047 ZPW)0)DďDF0\gpBjT2h@a9)?A(Lr}Yg\4p y6R]P P) $ <4"A`0ePz榡 TST 4ĤhL#V jMJJ&Kpy'ƒPi$K JFxpfB`JFd#X`4Bc ##z&k(qn \5@yJ+O.v% 5$T]RuCr58 3J䱼7C$ 01o4 O / tU\ Η\w`:*ս]cwa7LJ4b,ggpPJc#PvGXkc>)0C8%$3R`W+=%P ꫸>̚j!+2 0@{7U]XEБZXۺ&Խ8IqK L40H^j#1 bHD_*b{ `&TGа#Ӌ#I \LZX ? CbC!ҿ$Y$y#p /Qغ ]% <}gȚ ?F!Olw֦[oo0fL\] t&Oy$S@(bBɉ)hr !$op^%I9@˕Bu$ g;R%[.UA0 u8B"P" ~\wzK1g!Jww3]PF-pG\B;9]|ۉ{y~s(c[&#.i%=)wv֔k^w}+.~qWkߓOvO;7ʒZKwtjuKtj[Ks1. x^PJSgw!ݛjrt!OkS]$^ǻHwR[Ru'[mJ[n13PsbKw#ݐ3vBֵ{I>m{tm-owklX~R湹̳%gwrVû=֜7XƗІ5ҕmR/ ['~SsfbJc%'{5m_}){9٭kzRv OdN}pW^"G8 2K+ma{!vlRovJRԴԵ=-N  Y `RSU AVow J'"LcXWҚYkSS9wvw{Z{ ~CkMnY`/A}c; B7KBPNvpU?"`}9KM=޻ d;ZM)vmܟڝ}[wv +|>T2 rD/JX bv B.7sҞZG !gڔjt!  `.! yKtnJaJE%-O_t0?w0 0_v!,nĴ%!Ӓ0Ԡĝ0O&aIec@JR/=gKvF<$ @EO?^e-j{V$3gj  dmNߥQ/]ތgd>2EѠcFG!] {"X쏗o6Klt!FmRw !B5oCO? چUi1䖳*29s8ˠy$LB 4g#!/j:w|]`ѐ~y$ ЄIwf1 wwɯwvS w]gwg3˗0{y~sA;1t;м廥iU77.k.^~~ [}ݐ蓽棧YwvRԧi}ؖjw o8E{.^h]%*mvmfOkW޺wKӨwReԾu_[|cl!ABs2/~ߩ#9Dk{m{uڿ{5Ofv_~RLm1j䯇w=OuDeDN BJ7߾)aaC'X~S6bm+V=w7 {+W_}TqnKv)EjrS5ܡW."'8 8L}}U;1 v"]ʏwJ|Zovj]z[q;  ˈ@H&ax*6Nmׯ!X̾wE{rڟwjk.k ~C" UpԂ"owmb,@ DIO)@- 4BJ%߽Z{;R wwf5Xwz]Vjj7Ot/vHDz!t&G,Ec& H鍩MYۗ榩m !u=׋wv*wd̚[ݨZ>)I!E8}-FHP{p h+nPO? g϶ N5ް!VED\GkoF;e}'*0H T7Gn3Uu*(-p JglͽR&sֿ7N%}ąuWt p%(N_wG}HWp2w}{؟G!ob\M(r}2d#BE1㾏#. gڨFlZ!qNp)6x)J.H#W]\/ɯ!{ЅQ>ЋO*piD CSPbYi!y/N! @SP*`Qie< ]% `@čμY\S7[ޤP;ŀ>Ph !#ӖuY0 @0ׁBi@1Œ&!(IY4lo?u o_/9g1g_ޫ&etL!&)v۩ `'Ě`(1 : (9쑫>@J7mu95f5UiM?.L6hɯϓ&M&Lw&\O6^[Kּͮ:kFFHxHRO;4Q,Ҕ1mT dXɿ%)(^t$`})IEqhRЀ @  ɉ (i`WМ#($@$ 0! OBvvc(4}rseW, Ao449d2 6-&Hli!4@ T4MHP I5)-m$I:XҾ=?1`X"ԞP|gp[sbAl58B`iVyiyD.(IQ вPNLHA'}'|Bݠ(T hFA4X-#KٓѲ>)7+~vԤ ,}БUF,o܀`:V`@J& ]䣐N)(  `O/&0"@jPJJz~Jǵ\855oٿng;K>nOY4 0 >+NRcsxHpOHg+̸:]0 {C| Ք^KA{ҏT#K&ӕ6&Q{Kb&ߍJ{.kJ^MoMtӽ^MwzwywMޯ:reɮ\rgӓ ܙwռxo'Y'x<<^;,Q)HR\Ĵ >xݻ}2e4M(a4pҞĢ.a?)RUYM[w UDeMH׶١ G2\~4:?ky;o..ޯPEQ`? "EB\ ӋOy~9 Yl*4/!#2"H/PZ~4T 5b`?i>n,~ qk# 27懮H,J=րl0oXq|' m1ni<ť r -͆/#<LC͆-p;: sIŋ--1ni<Ź>-X7 [O.>ڒő0asbzǑcHq /Eǧ](Eh]0?n-k:Z^ Ci!xiv]1=vB؁BOe |iBA5<՚$}|N6NW<[Achϣ!oB?# x b)s|1EbY;Ξ/cx䂒i皻 ^Q TeG;B6~?@&rԬK!bbVV Xot7?p;JBq0e2!pLM-< _G|SVma5w ( RƖZ7/^: xBևq?sBBwp:>P&g_d ?;GG'Tw#o,\VJP!.k{6-YkZQ81=(E tnYlߧ(`2/P bMİvSEE;dr9)llOb9Oxw7sߏ_]`c1VH;~%BJc~|d?˻4<fbNx=]a}w&q笏\€wY1I~5W{PKA TjX;zx#d/ws&9.kşO={.s#0 ז=Qu%_k ͛pn[ l24ߏHdyr0B\%`Fl2=ǀs6K24~2@'kp# [f''gbǑ2xNx iȴ?Gp\>w\znŸp@v 1EgH@v%kQ5! 'k3ŏ1޸ ~:Rhc^7INEY>y<󆔺+B\nގy>"Pv)CϡKp400۶%u~}D" (Iy`@Tb`|QX_u*RRWׯ G"К_y> qg= ;)ۧwtQ 'o\_{P 4cs_@)yyn`?wsIY; ޔwp7ể3#ğŋ9w42Ls@2\ nA -3'ryG ͒?~x'i?ǵ6.f<% ~qN?)\?5,xT1뀩3{f!D}i MC_$0 `hbݜma43WZ(AndgE=%u84Ҁʔu=:8 c sH%<|OI! SG ! f{ `.X].`5uw4's0݀[ 4ốO#u߀gp6W `\?wzniρ OOGxE:踋\w?GF7]?h}i4'GP:Jɥ;-i4ҏ Jr}a~y3Jҝ3e.JbJ҇(,mX i I~;r^ws>Ha177cCsk6cHȢh+s/6iFOa3&Ri457/7 _c!m #[.|!!CC@\ F#bµ0/b[?[o۸@M?7Zn@:pk}8k E<slM pz3_^}vp|T3!:s ŋeޒ!1BΉC %=/8'/nqp:?V:܎AyC9{FgwNO,<{#hxMőt? G? hE7GwN#Ӯ"7H#엜PoV;^j/=(KvpPj QĀ΢HOݡw -}QhyG[=E$}ؔcJ>sb8Ӿ2ɶ0@&,I@ g*`rX$ܖ{u@@@$;9}ɡ )М6ح6UtbHi ǥXN`aX/H@v7 P W7#!, <π`@Ԓ@W-}W0cbЏg۶# M s;zn7 m Z Hi|i44&_ZEcL 4%Y1HÐOi@ 1ȚI+Q,:߷;Y;Ʌ] CnZ( /%jaҿґϸO?ŒpMTHad@!p`ݒL1A1$2I wGsVZZ߿߀~  !;I OGgt 0 j?(  z԰̀ <5We:^bP-24҃H` ,!}=?YHP  @9@ ߰{ri`&~žd* v2 2! y `.6yBIPyinO˼p/b&O>~H>>x'.E<.~X.@kX A?/O,'>?,Y,.n_ƞpc=C|ŧ_ 'Ӗ3iy<45<''_yyRwG'/>r~-|)x.bu'b"̔딿 H̐4!/g/3<2w5Nh& x%k#d" fX IA4o@w|#/iy׺5uZ>Dф2݊{?%:tXaI0I,J;߲}T< %tуO!$7oX@ TrOD'#_x_w;Ϙ`T(W,/D` @`drj@l݆ja0 ņ fo*MI[1ހA!;&(0 CO-v`  IT! T E,Ÿů 02 b`blO4ؖe"&~MHɩ^A B2XikJ"[b i5)AiFR5WP5^qxX@``BJ8F/6 F:φ=n'w!P?@0)X}܏1`Wdy @uJ(Э{3GY0t<x&do,r;D@Oo+? bb ,Iy9 Q9Y5`ē7)kh7Oc{s}R@tIo&4.9vI@ h?00!X `f(#m4,Bbnn w}4/0(cJFGug O:54} !X M<Ypa\ A,6\+BSNsz(*3?KόR`@_-ZP V dk#Nd ?Ňr '~?sā  P'g4qL$><4:  z4L^-8z6p;̛'{=Ğy?sELE,``+c$鳋/6eǹ0c#n^=f?s-fdwiX<;%n4~ikl=SY& ?ŋYs?Gr%;{VG'Cx-'[Hp SOuA0 0[tߞzǁpҝ,jȷ`1A` p;FP @@A0ɀ0i7I T @10@  /& 0.!vXD4<ڀ0>L $Fg.1, B=ݝHwQ=! \Ur^^n @@..zvb|B HA;&Ch95-tH _2@;fɀ> pftCx`g-.!^CHfADJC3p.8oN9 3'_d;YՏ]җ?iRinŖz՟m` ]&1 sH@2B  @ LBrKA,4R:Ie` R94 0( @. 1 O04@HY40u]he*$%P( @B2b d3ݏ3sv]Ho䞳_p7aX @ FBCI8-kN 9,/V0@ MNpB@RM&W/-I}zh M4("` `Lb A`i4ДWWGw"MvR읿G'o ;ņrp;~pn ( ]@ !QR1 A !4M! &\(`ƒIE+p3@` rX` &H7t@0 !4,!  `.44Pd H 4`'tJ?`@)ƹ(3d26%P 57 /$ޟ661k|(@ k`D€NB? !)&ӗ_`.N; ;.~@*@`? 9SVE b C5(NRIU%(P)ԩ@ [P @p 1&0i r Hjn%d+k$@ܮM)GgJ;lkRaNМWOQZ߾^@p0*`Y}(`^j, / ɛ>`z+~|!mnƻp7-[B:V@h 5?fJsضs'+"t5@ 1+qxRPu0䅀DI01.,:H;Q`x 1|#L( w?q l`;`=`w4#ۊH!<$N!ah_`nGI>Ph}@ $?eĄ@ ~8'<!`$/r-@`0,}7/Wu0r`Qb TZAį+%j:jD 3Ѐ %(6#ԚerpnEH!( ~Ftq!^j 湢 p7Oٹs /+x[`Z̓$<Gv@Y5+c͔ƞa7GL@t v`@g8fx!C !8`0ǀ> ( p3@ 97!F$3` 'ĄC& PidRJ!dj cn9:( ҈`TMi1lK@`a0 !(3Oߎ$K=oƍ^fs)TC@`L( h,)d\iĄM( P ~R BC2v/?[y`gON MC2]R̵J/Y041A3?|w_?;'w~{NRM@w( )JlNu : GGoFX`Mť$4[:s3+mmtpLV,M&L$coXǀ2V2L,kNnz4x)RjPɸ4:;3}W>/+ӛ{nu>WD0 CRPidħlXۋ#v/Wn Eg'w`i_rD"K\wv12vn^4XQۊţd9*3noEx?X2YiKoω(fcIYeb;|/)t~Rސ3I1 !gn[P`+ZK,hߑSLs7x[KKf'X%iFωNNev[[ -1-yuX@ hL !BEb,%F1&@/9` {_F ߗӓ\ >,$7j:SKboO%eI ?`g@P #lQyJ \T![! G @ ! M!0pѝ*Ý[a(X`uEVdDH *#Y#&ڪ/i(R -D>Aˣ6>m8BuSun[=Rk!,>*ᰇ= %T۪b& El8 -E\6e[7!+ܲ |[\xecLUiŕ%t1Z+m+Ifr+em{6pR*Ֆr n.˘E'95Y5ȴIbREK߂,Kmo%%L\WڄL^*1N8fѴfbvEgUT4DYF\v ilq…"KNu̔D]׍tEGqG\eA)-v؜TZOPļt%zeg#>*66KLShT^Z"VUkK]+ԭ'0CA9Ҭ2beufS+1kpeߩd|IlKV:fMi=nqJ#MٵZkB& 4m*3* ikB⛧=e CL.Aum ڥ8 RВeؽ.oܳ4[E;X#(ID`vFfeCFIDSYnmoyQU` CL,RU}* HhIƮi%春hBn طWd`_SZޢ)=(VjMe6DvkZč[*xU'AlVhZcmŔ4=M(d]Ӷ"i> ʛNCY ALr)C[k*1RO7 3,e#[[t BŤ˦Dhlj/sɠA`~!qpB0(A^LŚKG"bDž V]ؕbuFfeTDY+/17"m+TJ9ta˻xʮԸy#)UhVx)4tSi!iJz_qr +bK mMid)VS.͔4 [ 66qQ߲IKc`j񦷅ɻdS&#@beUVvT&YiRYV*(mkS&.dS'Q&+?N;Q",]y29]ˮ""Zm*\QYNrscD-K9mc6&X'CCIe/w c]0γIl+WYLROWDq> -S Æw//Q D6NjRƒM 5wH<),6T"cS\ҿl-+ [JXY+64 ,$rUxk+Jdj&UP/A.5&m~Js̜`eEfeDF $e"l.o 򒼤PFuVp, 8읤aGeI95K\R' P iD%. IUłH [d;9q(ze! { `.!  ɤ(C vwm,^JQ 6OJߚ>ݱ[]<2z2?lӶAbB2Ґ2'%8߶vll 8~l)v"HݒZ O%#ϿkX`՟ }t%bzv nkJx WQIF*&(!K /nR:nO:)) O~Ql8ۜnn0  09@B,L:A5% )kDBґ@;~x@LY4J œq@{'+!fεvXFz{ltOoww2kgs܈B KinOO,-aH$p}gDWcdfG3d|ׯT٦?Ab{k3.qxw-e;nV3:ԧ:ZW*mJJ{MwvZx'<@jA|V [hTo֧Ѝ#}_}W}$ǻG_mNwum|^3 [F7g;!ww}0/˛ݝڜ{R5V=c+~!gs}mfJ?G;Ѯc%s#=p!5 b=Jw^ow/ݪ.)Ҏ~#)9fb1Xw9_z>5wK/(`;Ӝ[-~nSK^Gw8)~tǺe%*`w}MwCЍ  3SWB $0 UmMo_D4dg)Q ڴo{Ǻ| ~FC0kpTAu,`H]{RzB0#,]HxX`CR0p{X` f<8BT]ݒ,z!mø !nZSUtZSֆ/pDTJ& 6<^)`+!~iọDB ְwEJokIw~ #!I>]bk'T w؅pMj"Zp$bTLZP߀ 7H"DO$a O$9'#%)ѮXg ЊFmޖS.K;k7Nw?Oz';vY48X,' -$Kq40 R/RaōmtB%zb#FYan,hS%1 OhWwt!û1,1#B9`U>d?%{ۈ^eq@K&08!Kd%x؉"+B`ϞE}w[јz{lt O؋מ!"Wbwvwwp@ bv3'ݓ?g8 ˺~rB5Q u17o^1hJMVk:R˸.(oa9Zwv^n$;sS_ڔ-+ݒ~RWinw`M֡}NԱ9;{ZJG0~R湾}į;%4Q5.ݭK!CGi! ٭ `.1|$5 w jR )~SsfbkWݴ4&ژw}JKyݭB/,hȵᅱ[OW^"G8 9/%ږk^cg;b3mwvP;)ݴw[hwt_waB7  Y `SH(^<FkZJMkCD{%{Sw-u ~CkMnY`}1ZcowjPy_t$%( 3) 6oIE57rb۴u emJSֳҖsZ7zJz99#QЅ_J H*߅=GpчN[d_}Mof !v؁^zywv ؔ ҆lw4$K=@N 8#0EHp9+<0ftwω'`>o  Vwwzr]ם@|-7 GKlm-2O԰SXK}Sݨؖ]ݨÓ2)3 prron3~hHa-t3:[w7]ww0zh;֊w[Pք{ﵡ]ݩja0W"k|CdZtqNz>"}ڧsEk!ƻLkRgd#?XHjT(?x .NjG?05ks"G&~N`$'ų.' BF;`<݀ CX+mf0W¶߄N{yHGFQsvߌH7@@n'3saFdJ++!ȇB7ol DEO! 1 &*. ?^X3n$x@oGT$zI# .#읾HOE><'T#ٺs.w3h|wX+MroR4ꞻָvB8UB!kwuu4u)]vuKWsSBHBz DJ,=/Drk]}&L2*UNUI&uR*L $Udɨ~ @QWPTɪ'&MI< @C@U!H@PXJ@QZFAI%% a(`]?$I/2H0 _yP< &AOذ2`ޑ $ jM:MT&ET#HWWU<9jԚ7U&h $L5L "12@@"]CD_0ƀHE'D PW96D&~5U#mRc1_-|c’4B`hh@ `J doBdTKP)T&L$D ZP5t _UDnD\&@5& T ď @IDx_ĄVxd`A@#_1`pILQH` \%@<)#Phd ɪ!iHt_X:M@&MT.HLrj! `.!A7 {]ou.Jy2<5LQ&4Hu JX`<< @ay$)!3A@ ɠ;!􆒐`LI`tLy[ `1&ZR))S5  \Z@d 0\ZoT0ؿL&@t [p {\wSCuPIP&Ly0D& tV=xk%dc@!D @^"!.IuDP4953L"L$H v\Mԝ^PH @2l` (P3dYi|K,KA,Z L@lPPieZzI/rY XPhD?/K&hoAAfHU8`o,5$$`a- )O\X# $A | H'RaDԆhgBд8 bA{R $Xtr(5c$ k@TRId$4OIA +.IcPZ$H EŁ`‹&zI e%2j@J :H)BFP8@$~ -h 9=`KB98Ru-:P*,aopof*auuM YZBH&&ȓrjɫx 0)HBIJ Ĵ@(5z6 R@GDF1p$D-" &'$ 0ā0 4uЄu12$Ȩ 4#  8HTB0aA 2hDu?&$0v @DR*0+ Ipo Ip+ &X,\X0AOB =#C@IQ8KHj_IF8a640pԥ# XRIX)$X| ! `,V$hCrkpHN!,O']ܭ L 7, ojI`) . *Om$ $$$R8 ú˺úǹIS{Ic7$P bc1:U[g@G, ajMOЀRBCP_|444~K #up", uQp@01r\ TJ/aCP"Uձ>o{]E{hWwu/FM&JɺM*y%J+ @YxE- 'Q.D}L&pYa,3hic~eK6(4LL %<zABL J8 JI -wŔ\ɸq DScdC%bF3 D[YH Nf$u]UW) X, 9O `w끿EzhrKvm#KOT"0 \8) i5@\3ĆL!Ἤ8(5CBp"ПfW%"0ݚO9,zZHh`s[@_UFhp"p…'H唄xnӾt&]OvP7ל!W#N5#}weha('ݏو$!uOy-`^cx?ڪ_( @8 ~@BB(9E{Z6-? Ok?З.}+ݚý)jڦ0wc^=LZ wfԱ !  `.!_A緯RN֧iY^b;. \и~֗)ٌB݌si\{ ǻmkR11{[n13Pg D6PL;1=JiƶW1)]Bt3Ov!`!w8~R湽Ʊtv)]:kvDNQ}Cۜb{0#ij{-ǻ~SsfbDcXwzR{[ږv1)cKG6Գ{˻ږ/W^"G8 9/[gݛK_kRtS]zn8 ؄4[ܻt_UjAN  Y `HR' SA_5oBRou% 4aTBBbWԓ;̻Z|t_ ~CkMnE]n8qR]B Mץ=jgO1ܜGw 䓷x k[6?oDVsΝB%ܻkkJzn) !g ]jtLw!iwҟj"GD+!7@C |iH@FPO/L$Rƿf !Gm&+ CcݩB}-{PM)ﱫ%,5Ѽ?ڄ 'tlx NR 8/:@'p1o/t '_G5(B&5cZ?O`6' !Fc=_tmԧR:nFvzΘ3%OFHh%dϒD{72?}"ַ1f%'=yrc."~΀dKh憯(cG99id'k&5,u,u36yHb5ݶԟ؃';('rC0[|/;Mr}U@W^LpX gB>݌v_Ot!ŻTb3lA"@!uO`cV1eh2Q' D$݈E1 9Еlӽ?Уp.^|H]ֱަaNk{RȞjoSZmfqp{!.^hD複w{hЎ}ݭ1Rǻи}Me})Ugw=fOM_[|cl!ABg vs?g!ݐO߶e{YZ{W2m)۹n~RLg?;6MwC w}7ߣ;ٚ =${HB!Uc2{̛)WOv= g)~S6bUMݗdWwѸwz[EO}=5=V˻ڵW."'8 8NKK_kUW߼cjS&R1 vgwt#ޝ\ڄ  ˈ@ &VaUDkBUoɽe h!FCw ~霧w}Yt_ ~C D׊j! 5jhT IHLIK p@=J}Fh+LwDK,`K64X!KzqU=NS !)6x6Koֵpol$o < < \/H݀o|ZJ ۔_Rw}C.>s !ht^ݩUԻ{|J>ﻔj+;/2w_JHƀHr Jx\d&~! G @ ! m^uU,mFa |r4ɮXF*+wUUVd[&3]SO#ɦ޵'a5X(U"i6å¾%t5;ȩ1iZ#R-Tg-K\4; 툋t@zBK2Ӆv %"FmkSFX$$#+>Ma(K6eB[aQQ5`bfFfUT4I  $a$.n{Z-6 ;u򘙖fVdm33\/s<+'Z(g"־JyJLF|8l5M#A#-JJ1rE&3R%(AMKkTtY8LZk-Gho\eF<%)7ףLT=M`T0T. 9"JDFlRm '&R][pe F*Q"6de8SkHp!Bjs흜ֻ%`ڭ`fEfe34 ꮨR] 쮻.p ojfRgFIo)\)Wrn2*lDMCF !-@e-u#V*~Պcy Ý9HrͷL>VH7![QS ԵI 6&nW0̶G n5YrWa~SqV&Qʭg"-(l&K欐uDA*744S@bvFfeT8Mfj z-rX>ȒЬX)J2 q!Bmkcmt*cVc)x>8IF0d :-#Ӥd>,UDn%CW1myR 9vdypk])â⒵*R񋪖wLYC]m8\jSKRr]5.RӖ5E2\k`̺ Q5 lpڗJv8*\hz~ojgu5r#}.d<'B'D 5ITk]4̉FZD`uFfUTHYvz)ڭU^AI֠Z(K[4|)d'/Sq8Mh7fڝj3U^ Ep&,ì&CQmEjs{,izֿϷxuNGO  FC\z181k[Du8c*,BAMZε^Q7UeXNy0ˆ ٪mXU-nw\1\:-Anvnڣnr[&Q͵bt۷=qY NtI*|a54Cֲf DQbuGVUT4j]vm$,p졜1BwNs.psUS.7º@GxJ(;Rbl-TsKSIѭѺ/)D|/OVQ:D+Tl G.:^1LQuzuNZqfqr47*֚B%E>y7G5VM܊Lb ͐)KN֡[Gd(=mo:&1k٣,Tou/ k.Գ_tZMi>JsDwww+F]],¾TȮBG mY@+y'_5#$?'2f5H<߭TD0 vD ǻ 7!ښW̺bYLwC!Q[[}IwD1HkCR !&}1߻7!=8wpQe;'~B ØkiM#Fލ0A}Uv*Hܽi`~]s3[Bꫩ:CWi,9a@ufb7^F68?XT_(??a6Gh@}׫Au¿uڰ@`mt'@ ٘z<ِ^4*;@n05M]ZTݫTvEBIH(DjB%OʑA{ guQc`X\rB)uBZ?#7YMHwPȐ R*EQEHURjET ȓ&D {}w  k](T ȐI4y5&M]@@ `JjD:FHӉ RE7ۀ'VmT!@ ?G$ @R`ЀѤ% _rRRU^TjF@.u^(@NR* >J$Ԉ $O04uDj RP EBB@WF'7=40UAܲgXbSHAi |j7$5DH@B HĤ b@RZ (d %I#$!OEuU6$|IN>< QU1; H{@@H$-UEN"(@QzTTU.D\ $ T QUT"T @.Pa4d?$PpG H+@-$U⨄گz)Ovȑs(B`B8HO@X?"@`܌2@x-W =i,'Un@TUD`UUJqP ZP5wuP@u*TjdU@TUET A )==JwA@M4 _, `"^I%*JI|`#\L D1UH!* _P%"p0IQ$ . {\wS]T4U*H2 w"E0䠓$jxj HB1( G_lߓ#aa:L :$`.k F2 x  d^ Rb\ ȻSrHE.DUT@1r  v\$*^PE[T UiZWla@J@HĥiJqHHjFZ( BCCF6R0OA[RXRP4V@%!)/!#S@_! 9 `.!z,d0P &dd bP5 E,CCXRS0j (G)Y'G@5 &9D vZK !h$BK y;A&dic@n$#` _,hNB@$ %2膷4!`K .V@jhaĐI85o!WJ&7)YAN(xI\䒊( H,zYĀ>ZH{;#4SZUk:US v]G*uU]6=n$n?oAɒ$,\ Ak['cp\+5%1+ۿ;s?h%%ߣ,kiM@AJN1H0bВ/a#/x 7*$p ꩪw]꾡T]lbn.Dvr38 # N@ג|Pa&+ 5N|vQ'9(ԀP+}'-F%H5.K$_oY'Gr*sHw# !`x0DP$E]LMI$oȩ Qcy`~!! Q'ɡh ` n PrR@_'iJ; "&S @#/80LsC#|#&&p, p˨ cr,`d=Db [   2^`nCOZwq>bIC@fr,0hGO~ nJ {Y%H [CS/Ly4U ,AJ &8o-(1PܱS.xd/XQer=BH J,Qc&)>lC@xR\\BA04/_8 1N8U Sb`Ϻ5uF^W\] ;Iu$4hZO& .~Gwk)ac; p5?"5.[1&g4v1@tZ5 Axou9WJnTb^$^,ZxvAҏ;݈TFj0 } VP 2NH ax$0,p 4H"$@b4pј~X`pp_}/`w I>3Hy?z@o UeiNĔ07)+N1ݐ#1wjP.} )֦% gkwtV6GvodQ[Hw|>e-7@@@U,0kQH@M;wd~{됀q^_뎋ϓ!f-KS}5Է]KsR޵(C&%X< K(jdEJP C={[]҃=!fy"RѐBM /kz4l Xd|4FM͒)}ݘ\wLb{B|DB5'%[5񦵺Lַ[sRk_S ePFb̶ҥA^g$?lg)g}%k8 w` kr KÙ O `q-p 9{o5A!꣏1$h#ooݟ'g'?|#< >>zqUWDp{bdp(D`D冒y!H JW B`S[ ZEn VP*VI*MAH FL\" $i5"5H)I$dBPH$ 7 "<zG rw@2H&3q O D&1P aY%hkI;7+FBbFQh @iHJ!xh 4 qp`B BaD! 1p7PtSC.{uUuWP"d"M@@)Rd45&+FH$ @ d=$ $T |K/A[heHtHa,4П֘BDU]A^WP&ɩ7 {]ou.JAd QԚh"TT" `}:; .'82@&{@JI%$i0H! LMb @5! 4i,&&d P K@b%T @$@vB9 %*#Ą@I|EȨH+@& {\wSPT5dT2j*.KȺܛ64bP*Qƥ I(2!K!<$?OSfB`D`PbhKPh`jC@B RFi䑁z@r>J@qF'PXҔQ' 9 By&a_R"D0 v$I7UPUHB$T][@@=@NՀ>J7-|,`QҝJ2oCpJR C82 `TM.(4H KH$7$h@/nKDOxH X (xoqĜaxgdRo¢BzyiLD @x d%N.tP{~h!$"T#zVXiHYPPoW䤷QpIC҄.AHLI$^aYA (5 yFj>S@ 6}nٝxpU]|@[wBJNTJ۲FvE}:pI(A! %@ zu CFHK &^$`TGTL|\ úAuιOB&rI  #)Ƞ2L!p%"Q`%,W%M $ F?TBqQ#x<Q k x Mu] rӋZ7&v- ԒB7x`o'!1{?Ѐ hWu?T! sG `.!Np Xu7=sJB" _?_$ZF^@8^(j5eqK#@5# & <H1 #'C Y`  0`%'XCdDb03(lP 8 tEPNvf;{kqc+\`a|ҫaEz[ %hpT Pb I#@ \ (E!N`ŀb.A2TX #N AƠ.I#:!Z & &cƓR\ _@g OJPYj)L>”hHgZ:>IYܒ7[ h5-:unx A !g܈C Za@^vQ9;!pt*wZOyObT&˃q4'qܓN )I%ph @BKj ɋ=Mrg|Z?74 >` : X ˖L*nR WPDt'H+7z{$Bs V~Jƀu얕E -nϺх^"PfzڄB@0H@ J@`B.LFm<P!$8a\#F>/8/\Y>Ee,B9lwR EwtorO{͘H{y_q}V)Dvl{^IvJ\6)ǼGwwCLZ{nwB.}"%&m M{i(};PSskZSt6wkY. X/J{61gc1nK]N͵NM2MF=[n13Qi1^ 9>!ߠ7I)c_#;,Q!7c{Zgp?>ZƗ~R湽csd% ғ)V+c_!K@5D$%T~e병1ʫƳxgwt=~SsfbW!JrS֏wwjib{},NwEݝ}܇w Zet[9݌5W^"G8 9/[g{RweOv5_ kOZcb]ٻr^n 7XOwp  Y `SR(&<~S}7'5 ($$hgٌkbI0`2S{IcziM ~CkMnE]n8qS;(@wt%=}dU`3nazPLFs Iguʲ\ a(:"ծ5̙ӓprH47V2W[3aYœna-9Z9϶>uomb%6/ƞa\!̙I {X?4ylǪ!RrdȇW .PڬT+t3P ;,&6;V)Q\^yc#2H`e5eUUDD]z(垫l#) --i-XRLNnl,c7SeSDuw:! `.19,Uq{^À!Mk;'Qw;*WvGb#cdHz_p1X9Wq!#ֱ}v)ViI z{1+.^|2d?f_sYKJM}4GbۧEZNֳww.^-Z!*ZFKv~ǻ55I a]o+#8-~[|cl!Acn~ݜ_~(җwwS;D{JA]~RLϜ%NoQ^~_!GHtkNF͕'5޼wcS~S6b&'tqywvd{7%y`>݌W."'8 8NKz=we=ԯw'Awtƻj|ٿG7  ˈ@L&a_}ּGŻ>ŗn7~@4$?nVݿk_zpֲݶ~M_ ~C DW.8$4 wt%{׎uXm y`if$u@R`$42=`SNJxINP%?I1DѴb2 $JvπrO-9B.4ocO4:zS՝E_d6!6I>܇wyw ͷ%딜ۮKUoگ;OΈzOaPD.rl_@B$߆]C md|1 !Mu֎)~ b |$Tvk~gvO/߱OH8.mD6Xg@.Ew#!9$tR4p5cmC| еyp !kZjk{M @xL)@ *a P?*tHS!mSonz춗?jf?Ė2T~#kl~d\GקЌ~+ ܱ H_mؖ齽]A~ ^="olDY[w@ـMnU5X=݀U;޻ꔮzVFp{r@UPn 5JuV0u&UB8?Հ@uW! #h0*HP?")E_ɪF ˺^JA 4>pbx,z&$ @t=ua V@ RvU$`6X>yAH  $Uw&0 @U57Y@m]@2z0)5"p)HP EDTCj*FS S 0!dEɐ_5Tud@ {}wP3EEoƃ1,@@*O&DWNRk @P*y @Ja(@+FHΪ} $MUBz@-$g`2@ $/? P20+oU$Z C$V@-y )$i @Qu EI $ hG5]PV`+ԛ!@WFF@ ВFiOHY#01`'UI䠖rPH &$I$/  1$ bH$I@( C@hE0wuUڷP_wZ?ET]5"_?dH1P $`Pol ĚQQU L! `.4IJ !!x@O@0?)9  uA 4!$>eJB@@4I/$C'#!8)Dg`h$@(Q j=[Nh h pf(,L[&Ri ax`` 3:ytD=vӨˢf]J8_ ,^Gĝ'2`=w& xTQ !Õȗ`6RU}JuZe9ܺyuڄywa %I#E%2&Ў82hgnÏo1\ں@@|v 1-রJDZ"@2 Y4K !  `.!IxL0ѥJ}׸f NJp@?@_pR2v,v1 )FC0Rqe:I,=xbM,#2 %pW +} B! p,tlHP44 @By\P`;#`94$|+Q\/-9̘w}!݅@_qfd=+@{/z$_st"CF88ZzXg+ Gt 0=̢z[=ܗ;3/j+*rӗw)_sSi~w wpowvvK=4"GP:ϻ۝|df#15λݯkd 74U^3m}S}ȈW?!Vnwb5J:u仨6]ƀ~!gs{;T'e%=;ύtCdgD93:}pВ?BG#ff3%k[k~#)9fb1\Y3˻ޑ>MզӾ;W[UkMwwDŽ='K^Gw8%O)ؓ{tVSٝ]8|ۻѮ5krSj"! Wհ  3SWB )0x*vko }wJSމA^7- )R0z(vfe;Œ+:~wS5\m| ~FC0kpUA'P]~ w") }^9"q1d4 $DwN밻~S *<}zKyT{ޖwwٷ&wx`| "wIcnwB&%`:~ g>?N ٬nQ^Y9~wwt #Y'=<{vZp؄w~vCkPdB!Ӄ4b % 5 +$o:yxpk5S*y ")oۖ塺nSޗww}BPM_l#L9]ތ$tZ^" (`087LͮFUmnv4au!j7?CeůX- 1'@]CWZ$X1fPưt_Vt6b}Syiqf`xM ɺȈAjtBnr@  @8@"']dy]5w"~T>RVf5ͳobL1n"TyS;owJK{!wrƮ9)_ } Fwav.^|`JH}ۘw^٬EO1 c/Ե{^_Z{<%{{K9{.^|VUKvڽvCY2[Mݚ~:/.{wp[|clZCW=JKvVG!FU}wwJاt)swC{+pz~RLϝ־٭'B-GM4,zbw2:&t_&rɨJy4vcO*vp I좃ҊSF@J7mu95f5WhM?6L6ɣ&>L62iޯwMkzyzXy! I9y +2!h{YU$7W'&#8KvqNs$xHip g(S,BQv_Z(xd 5y@;H x CDݖkv@ (RъGwY|y2/dӧZEh2Aգd0rsM*Eɕ8uDE%,_!8xxCT6.qzp=#J13KxƒI6#օj8sXkUDS*,jcdzkʪz,1XbeEeEvDR]]Ih.9qjbSD\$ci+D\pEeԥط/4h ̎1:J'$Bm=[\I$˟x*\fι㾌Y.2L-F9kC^5syNmLs"T@)ʑQJ嘪*f$7<ՈS/cXֻdi&1tfItc[tˌrpdo%9!(4BԮ)&2\+y%yL)!' I8qbql&}VKԪ,RJH, ϔO(XLx:Utm8m#0sHt$D50b4RjDX浹N6by``u6VeeTI]v~i%. tc)YF2/( ]ԒDˆRLѲԦsy*]4Tc}5;(Sr"$I"jhI UbU. W7&+MդMvYUꨶNH²AFVej7:BT袮ͪKVl`Ulm4 ɬuհ܉Nչ3(18InY_"#W֓2WɜMc:)TyG]P>Q4N%xzJVv뤔1T&Q@pjG4)\I|}p 慥$$9fUjFk9A֦ ʦʔ5(T$[4d\! `.V?yi[`˜X‹Q%;ON@5$?^Q7''7[%ߧT޳K{y7N{y7]ޯ޻ywzwzz^muo+u<἞*:uw<-^<QbD)H",>,y(yŮ*5!Nz2 8 x~\{bni>src8bߐ@ hWQatD>NWA? k8 > #a 0!fd _~1g$KpLGIiÓ@NQC 1)wۀBB 8tB,cC3yf)6AHECQTGp $| CpcbcEqX\PrS'hRQaNwW տWj%͙˓jEMao'fEK%{D%IX8ȶ>>|YHrpg/->lXbi<# psZA5]q&n&eЏ1& sׯ .c#^a?hplA928Y?,3Tlj]a4[RhbA}ޒ::5ey$ҎŽ4$ ) 1 #tKJ·cl `;T=i5(o!m~S !L( !?!<,@X``^y/ԒIwD{0ZPjs0Y䀘萊 ,7YiHB]~p9p(SwZ__]`c\,>B\~tx G:1K-ҿf`9ϴv=t QC`wbGXg9wwsuIh߬mh  ah&WW:u#i<(d$~GǼdUֳO}?w߃[4G2c<٥7˓#o`i-# rsH2G|"0Gw#dy\gr4Hqnb'"1` _>Kw\z;~ng,HXPt:h ?[MGHalm!?w'i <} ;=i DxRhc^x%}RM wY@5 Y\svt, }0#V>-k`\)xw=b@Payn,&@aԗKį{0RT߷ǯIJ9_w^0џg9,㸳 ݋gJ*4! `.ȶh/%cwA;G>`U}c` ~b[]qԤX χ8 gzɠ'/ٛ|oG``^FV)/B AF@@ %1(NcaSaӶxL,4ɹPjW9]JBP 1/'՝{i QEB 0 d$Oa<r@Q5k~%?8~ڴ\1&?7ͨ}I"B# r=iN%v7w7- #\7I6|o>͍alp̷mwanmY.l-3|2x%㻬EOk1$\. ` ~qN?)\?5.bNezT'0'g!c:O0za41ݜXM) +t[ţ4.)GՖPX|G#֔0ݿA>G:A5#nk p@yȢ4e &';g|$d w$#=`˄]AjݓO}DpQ ; __9ٹ gP=FexlL%;Zfs64Tq +oB6&oOK]h2Ÿ clҞޠd'oI\<7b@e| ŅІy:!߯{?hL$D:X>h e`- ar Rh|eląM&3~b{DH @MHߋ +vߌ% ro96 @j PԧL&# IۧB ?b,-P@Pa3^pؚCF⺿| f ^M 1j_bgߩԭT@ @3$? ͱ!26IevsO4p@vf<P pi%b A)Xif'@o , xbP5(|PP .7:~%͵;ܘ08n??̝֫@v  ^ D@R9[48,0 )Д>-}{Ϸν߸j5oX}FK`msRZ7` .`VH Cp Ix-Ic:{:J3P@ PRh$  M !t!.Xn(07K~rR'~|`g45-G?JR# H LYE!ƥr?~5Iwj@ @ .zHn)IJSS2#77ynjͯ7#~8 灼}CE>w dۖoϸ%ut@kJ>-#ݫ'Lrx<wq܎&;Ia{6?p# ss+ ط[w~.y@20#h|~X sHs >|?Sdikh40''<ő4/Ks}9na%<-g))Ӟ[`,1|.RsǑNH6廁:/Hj/=(OJx9R#'I {o4\KŀZ0 2c*_8]]DaD%%[u'diuh(QX0_` NrBz?<NwwB~5a5IDk 2O!+ߋ%:rt`; z29 2nYnvybP$ē%$0qP2` 4iA(I-ւXnIF02MX{A},`1`I/5g,CHԥ2KO꼰 lf1T   )F~#׆& u@B&XBiL_>(K-kp6.@05sǁ;G #h i7N󏁼)PDuϧ9\sҏ<!hp:,Ǜs` uuvÐfi}ᑸ?] Ɓ縞: l3=kÖSQ5Tw4Yqx;ynߤ _lZ c\z EsǹH'Fͷȼ{O1~. n,xp>@(ixq OZar`dA;dwBȱN͕;͉ ӿ6HOAW?!3G `.@ѝ?;mǛh@ KQH}XͲoho+;܏`M@f?A !` 77a]R %7Kqv .@ jx4F  2r7ͩg[lpb&CZԩ״`va %d~7N8`ZI%%'|O>?uu0dIM၉)%%]ߞ'-6)_cW@aC{9뾨P( %!(Y44bf(%#Œ)5ʹ)0 IEJbZ^Nn/FdxX rC@tb ptWߗ ic9}~gy$ t!$#h5;&$_w?m}ᅁBh _B6v7(5ws͆Ku2NF?x描 cd̀?r)?~l>F~Y,` ' I|խbcҝHyq'kpg燑z莞x;T W渘?_m%&x ya\\@޾'`,dů:C#n_vd% KA^G#npǡ Na=o9a!9ʼn j: Ϻ\CsDԂSBJzg?~ P?Ut\?!6Y,Euwk  1nmZ*) _n3?&@֜g& 58ě fn,4$ `@;ɡ!2ĆC Hms  '@s#6!41AE: Dd~x#sH ?1,'׻O Gewg'#>@HZ 4n@xۺwq_>R,ϗ7l&0ppD@dv!a\|i`@yicI P-?wK;Op  $(?w4Kh` f>I|4.H"~,Ye/!$8@W'p"}:6Xj{!|y8XL p`v|0%½Owh@8Zou0- k drLH px<> 4?sOA 9} /9cnyxXm]c6u'၃?'<'t<<%#ý u4DžE>d1rm p; `s?X4$ONp0&b< @K֪fN47 a7`;Ba0 9 |a @^C!DjI$rgt@xZx> TCvXh` =! 0T4|CA05*7@;(3Μ0jҁ3% %.,2Elg9Y5' $2x !F{ @ !ʑF wIV~Lei^G;CGV`S05p~ +7I Y\+X"HGVs`U5UUD; c<%YƗyf&vx^I骶{,cЅ0Ta+vY!!قZASw]WYN1*9j{ӗ tZ]=*)6%!Y!Yұqj8m*GEdUwxdEzsOfE%YqGL]F*zW:d˹IņM$@Փ֥X8[Us p()@j6t)^ŀvga cv0ML4Vul T\]՚# F%’ĸTԪVz˦Lf7T:j\hՙH!Ebt5FTSK" QvYuZ&-JI貵/ak"jbi#aK̷D\R4b`LN]]qy٨+g.t*1ijamp䴝MhmBͩ+O"KZKzZ4U Y'f"i S32-ݛ.٢ xsrE ݪn0c`iڨZ O.W9B[d,R!9c)'wRV^aۉ32J *G;r% FN^itX Utq`u5FDd[jRMfyj)k|K堭~yvZEY)!p]#gn!h4zWlǟMduî%[]ge#˃DD24>ϊLt2#Ь"(5ft2cKWڡ ig0rE\P&l|V.)$f#֬A_y\<[c)jhGJұnWgwO9gaQV3BZZFziU<\vi.YȖG7Nq6a^iBbfEvUTIE*IXQY_~䚊j>+:C&%5vjBixŃ%q4p̏fxN =u󥫕hQ tS>8s#L5d:o $!* rz._ !i[hZN[(zTʣI-.4,m֖Lӳ005>GCRg Ƕ 7ɞԹ+14]I *-c;@K:Z _Vxad̨o4'u5e8/mMD2DzYkꙸ9I;ѭ3-Ð`u5VUVJ QuyעzkTd:5FsuR ~RS)BfHc6cЌWrwY-Vr|#fE-ӊL6CY7WH|/KteRN%&|y5T(\bgdOt,ЅuZɞl1ͩHU'^y%+!)\NEٚ!mFd[S`hQ]{RXfVoRT}Y)snoqZJGqN~6\lm`ͦn\X4qўu-n3M H\KvMv$D=p#܈3] ?b @.,;Hh ą |p hz` 3Ȁ݀_[@2V%!0JQJu/t|=T3y(z`% $hNI ŏ҂i|9 ^ ' <P\XHa +3 ,>D-&<(Cpb7ExA٢U a"E&^5A6Ə=~qpo,2"<~. L'3a}e=|zŏFxp#/5xz4Gzw&?5rM/:cܟX;p!I07$b38ՠi !alK ؗ}BjIS IC:v;^IIc?.444JrPR ) )F+Q u9'ߡn P )8`)W?Π(&(ߔА̝s6:zp pjﺖc[@BJ/Y043Qe3;CpCww纔aO@vh5],8i rCbHʔ ō 9JYfe3aܬA_tm߱>8!W3=-p7Eɠ:434NϭxYlR3{n>U!h45!LJv%ݸX;g=KN%|F;QYH4;%*Ԁ @A0Xo_9lc* =]]\Y3$ag05_ssZ?ƒcOɥJ ZQ6;; H`Y}$iy? gl mHߧҌN܀|A)Y[ܓ9D8=YBh,4 )%| H˛ Q&5(?ދFdwbܦQ) ̺+c\!l `.!rڠ*?<t``CG &# yil=)/:l bEbz?ONjkq{hXT ah Bq,kS ʈ@ Fdo,E?J=LEhj b47QV@7 2:9_r)ߞ$ۭj:ԣ̴c;oJBRKa~<{`8.ؔ攀Lr+ -!0`S䴍)m٬@&H&rr —d:)#r )7sO5rPb~IV4 CUS>paD.d JEbN|JGFP߁d|ck7Ô8>u@ t'($$P,OgR;CxĂC&TBҷ!0 Ad 7(5(+MʼɄ":mݹu;Ha S~p9^f !}M} w0Eb c I>vI!s-TO<\ӽ:!keP氕R{vdzZwp.};-a-}#]ۧ;{nw19ci 鮴){ wv1}Ԥuivw.}aX%rI |{Iwm+mb7B+M[vQ4tlihhww[n13ߖowiNݭdwB]ٌG%4vowtwkZ}$$O_wdր~R湽g;mJRGM֢g`}܊[]܇&7FkC~SsfbM}޾M'{kP+hwun?uW^"G8 9/[(I݉JkO_J}`'wwB(wt1 WwwvؕwwJr]4Ya^kO [%  Y `SH('\JCvemݨBDpnl%Ṕk]JG{ Gx^j:چC- ~CkMn@]8s^ֵ;_B_ݳIXXg,@Jr ),l<[p`<͇3/?6 5^C Be,33f) 8#5( QS`<4̃n?./~! ̌v iN9ޔ{O_\ )vѾSLJv}7ww}!v(H'wwg abgI8 h]N3:&a/hKNߐܑ4h˲,n5lCY-Mҝk[ִ Ev5+cqjm${(Od1nJ!a`-\<DD2F(OY7aޤ:d pJо!g !G}Ķ)Gކ[MZGڑ!_=^{,wGH!?objl]}Ѐܨ]V!F]rR}>{/N,kx~B'p!tHtGCI&=Ge:1d!x)C3ǻ2Jؾi, B2>!q 7 X^$ % @kn|\i^\B+脋Xa@/-a}̡h4!s jnqzToR羻!Ўenl57έ])BY.} 0gkߧ;ޤ3{21'[! `.14b-=Dlp.}aX%rI <羄uûB.MM;{S}4;[n13k$sZ!v1OݽӶ}ݭlKUܒM=}nKs~R湽g;v˻LC/ZcVnBww!eФ#{Bz؜~Ssfb)'vhdȆLJ/kZ{z{ӽƃ~k7W^"G8 9/[(NbR{SJwk)ءqwE %R֒_xNO_  Y `SH('\JCve]wusp0ݍcݩLw_[kj:چC- ~CkMn@]8s^Ƶݞg>h?c } )ohCg@19ut$ Q-(~.BMFbd7K2?USav )wѾ3_h.:Mߤuھ"cFU@yc8CI$P48jNC~v> q}>]d2S]kk D;{i<a]sSnJP=DvkYic$=Wj. _tlK yk*!2d6C Rt> xwsIB 9CY-7a#m5%;'ww}K+K+5\$ R w 3-?ɺ!0nz{"?{py!F_ًM-! }T/!GDܗN8P#fE7U飂\vwuͽZ}uuB]ltCYM}B2֪!y0~HIE(J5<Δn4N?Owb K^TR?x .REPGcP5FwtY5{Ce'1Mf\芘PJ8|yCp; C@oݰd}nϰg~`rI#`>~ u'T\W8l _0DJ `\_&(H :R8$)C )@HHa1) &|b8@1 x.H"owYRս]j&L5D5D ':.9N+N= C$IdA1r*BRx @ID_(dHNH(D_I$ u@!<X #| !G `.j5TI* EfF'li-)C=&璾O~v8jtIcnq۰S!1*IEɪ ZS\=,`uL5ɨ:*!)}8iRj@ *@#Fd-}~͉ &1yHh\# V%57UCPP,\&H*jNP"$ɓUP&܏& {]ouBʑuQɓS)5RdT T2.'x0!)$0H@0 q2A&M& B&HhԖM&LAr AI%ĴЂ0*S*<PTXʫ 5&D\jEUȨ& {\wS鑪@"2d7&M@u&Mܛ#c5 +E~7! rIxL($zrH#$hԌA =NOzpj8F ~I'qK䴀%!!SP?&L\ Q^7EBS"o5"A2dD&D v\MԝUHU&Di5P$Ԛ@38 I(M,J&K("IW '~4BbC@=!f$ )J ĒQCKIJx Bl#+CL@hiEKI/lP(<҄(B&4M ,fACPaDJQ_=G %M偐5!|J (1 Ł1zS#rXoI`_@aCB#4g47`i%<d m_|<Ɏ%?K gv|Fru0{r>_8 'Ae!?d5(+b}aoRh I$45#{iԇsS@ t; 0 &IHBQ/I@@ęd@V V "h_,_]p#~9nR; & RJnwNg$vb! I@H\N 97TwrnЄNԊɪ+/2oz uPD_&A+aI#r@@A#`> xev$0i-F`hIX ӀUA$ ߍIa=E@WA`#,D6$bـitÁ4 0D* !{ `.!i2j-1Jg8Y] vXFq( a HQ2 %\C Jq R5KOhS(jpV7[`$EHY01 O>V!=3(p|^ 8K +P (Mߨot: bI,~ ōpQD5OrhoD4Q_fB!=jQa(cB$!w >`nMЅ~0CY3=OiYkow= Bxw.} od:Qevbeěט31%{毱B2䴅Gk.|z:o>-߲֬v"CB=nuS~vKc1Jgf²[n13Xm=KOI.wn̄!k[v VGmw7w}(赃}~R湼<96wyfO{}?wt!vemd!5,ݘ$~SsfbLX^wGt)s#}ֵ}/{Hp oJӽbwmW^"G8 :ޖϻIDSv֐A ;v&[>S4}2=xOiݩjK  Y `HRàp#Nɱ9WObA7/rF %DŽ ݌cFvm+K^̷첻Cm ~CkMn@p.Ü4ɢXS_Z%zLy 'c#TC؆,FXXpƈV`~(+@Xj+?q83a3&S+NwMNkZC !fM={%)j[ږ}Ż֯ϻ}p60wt!mҟ٭k@ Ew" ݐ{ !}}d=݈D[`&h/eX$Q sR l6 avд F td2ݳ2D$!ɻ[Howze݌B t%{<}ŹOabpZl-vM !FmM8B;b,oz\S,1'y`63OP׀JWJ*ˇY q^>\m+"f194"!6\< hBGSQ'*]X,) ABdA0\ov0÷8(7ݾ([<)Vl31oۿtGf@ B+5rRZkqh-/#I}nQ0V9CZUn1d. "[ߣCtGx:4hIˌ쑚e`fe([f1Z1fjaJT |zIv#8y] ]\f5D^cJEjˈEkf]\x U4mxb'Vd3– f+TM\}P\^w+'G*3gdgW&ktќjzzqM o!.4}֖TQō#.^U奊fEJ 9PZsY efÇbf"4`dEGeDKYf^hj庛i 1>lōCڍ[X aڡڎҰPmh*f2ۮ5jZ/{nV\grL4d)MTI38ihhd,c˜Jփ wؓl5&TtDxoaz6XɆѓ͉U!"$5^gmyJ6b;!gg Wm!,>,dmjRx9nC2ʲnl󜅚[ hWUbѬC ti 䤸wbeEVeEJQvv%l'g+lLYX HHV9"WQ8<@bU1ڈf/ /AtdviˑP4 ;-w#nAwlj5zmyiLmz)l ZYzLqArf&5@GUz)ٖ$FdIw/aMѵC{Cꡙd;̦5!abrZG7 ,`wtwfGJo_vzcY]!6w ~CkMn@p.Ü4ɢXS_Z%z4 Mf$hc3S~;;`VC;Qf| ŨND-xgjF o7*#? G%bX~l? ͏Ow)ܔ;اw{Z !f ZV9'%(j[ږ}[(Hw}!`/ۥ (agn> քxeu]Mԥ.kZ fڛb3vjiZ$ j=,epG"|#CCj @C(x^86t:l6 a h/ 3nә{5Rb#{wwEug 0pm}xxɸ w!FmOZ$2h(ק)dEFc(9 ,_p蔏3pikw|"fE,K P(qg`#E0)E$}wvtGbL<"'g% k}@jz5eOÈ>܍@2op p< Ebs|3!a9 >'>p&!+ݷu;r MgwDuKW$R8' i9G |T,?Nh @h1rY;q -$2;80nD|w PerEB(w]RIur*w(HPf~l{wZ4U][uLL~"L&ȓ" {}lZU0 !@̑ WB"aaD52|0Wu1 @(`QP "Њ TpJIH/CRQy<(XAU_c B%#'ɺ$*65L!qr"$]FxB$ɪ@(rb@ $ƒQ)\W`{t` $  +`>bx2LUP ju2@*L!aZaTb95)F) J iHPaDX Ho,h J IHA(L(1`d0>Mh< Kā|bn,8pfP|(uN"gT۫*]MEWqp ':`@" g @"B0 h(X(UPzD5@j4I[Џp0I~$ -( HrI4n( |B$;?LWۀ HLPFBL$ TLBFe[h wBJ-% \|Hc/ C ߟ!I)# a{x2^RHd]@CMn5$qx` rbX~j@ lZc$6lZ:6"Xڦd[p2 P UA3 PHP4 єfY@J<]c]pP d, $$t$o/@:,@`8@v0kVw!G `.!n-|ww.ȈnwoUBm _rwswwVp  3SWB )02\(Дws7D"=3`P@`@>jNwU]ߥ}mvC- ~FC0kpkN* q;̈_wvݴ;!;OHjA7]2j`!`}l g'Y^17ѭ)ݕ\ݭOO !~UJ{+{zҾwwھN$x H#8SVr9hN"vR7 Jݭ Q{-OeTL7A\-_M[SJF{o/35 n7BIDDv?"ۧ"vl #!{/;aH믽ґ>{2,WpMیL X\p^Ġ#  M|!cE;;Ad/`rFC FضV￶`RGI#3s,,>ȆxmCDT1 wV!ݭқ"AWW?j 'ݩAGUsx]E>$(( Sa؟w^}ۀˑw 9$sT1'~"m'uAb7_ V{7;?=`GPa^{adg3*(.}ZSLcci {m=' 5Be_@l7X NZkwwb,!D#!4v4pD,kovb u1.| S:!s֗˫kġ)Cr s׽;1}խ}0[5 O v.A@ !X,7%W٭(FKFw&![id~<+/.5|[n13 Gx|XWmwz,F Qfm ݞ}٬o 7i1ZS܅/ݮ~R湽bsֿaRK\ vO}3vݑFK٩B~Ssfb4DvrԞZLˢBPֵޖudƻ|: {f8W^"G8 $쵩};Rkj!}߰ m35J]hj{W7-I~  Y `RS h_͵Q构R֏w5J3@V=-c SқeWݻkG u[ ~CkMnd"p/ L1݌y>וּߝB', !B,>R<EٟnV`S]m!W/с3㚌 _5o !fkZܔ9br(}[e x n9ݖA!{ `.1ųnVS4D>`f%y7k g`5 o)Jp$ C^ۚԧ'oK(k A!I#gDDQ`,Jm$ M A4-Z4 !FjZܚyNN%;z{jiNC[_۳~w 쯸m Def. _`NF[R?h-d ,(Fs!G#1LYH"Ax!BU q#U]N@I+3!>+8B*!z@ګDfX\,>2~GH29!l$P*^.uBl0 O@j f{wS93́D x h?nh"]TWV餫z"BNFg y ]{} AFx2+UЈRpbE< 5?Q>!;PDApMfNU+ܓ{kwK6uwU!M5D5 Lo#T"L`U"D\TUTUQqR` {}bBJJ<%w0CBQ@` 0$jpIx$ 'V62z@p+G @!$ @.$H"a d2 @JK-Ġ4 !I+f >ic?:`GtЉn=jgT:ns u.BdH?ꨩR$Tl $ F>4?Hq`y! xVI($L&TTu1%@wtPHI 8!BƤ`bKOI|0Z^t AH,H)J@rYd2K&57&H,5 7@*? VS* F, _ ~H`H#pZ8 `yTp,%\EaāfmUhW\t]WUʄ \\54 1$nH&)9) *7 Oĉ%'@VI@x0 ƀ @#dBCI! )F`V('AL]']_!RP* $rIXV;m8 %]ϳAcԱ*ÏK*P*8eH隚Jpm|vqp 5cJ[*XD* `eEffU6TYYz'-N "RB 9X= b&B4n53Y &k!…쉷 ͗5"uX:POm%3E :xrCINefJnK&#՚p[YN:V47T9yx8-_Rhy"䶏ǥ$u$R)lwzM j9MIb:ƧȬ֑!(buEfUUHI8S]FiaZkpJs#MuUPO) kkv>U6YMu\,@Q'MUʮ\J+NJМR Gfޫ$]HwfnYu2(-='b)PFFi mSLDJʻ-fUcqAHJ'1+I;h\"#\ɰt(Cq\ޱv@{D^`U hXA`-oRCJIS0L%@$_TS@ t5!;tnfĠ7u 몆LwK8;'y?!9Wc  xn%F?< d zKOQXG ?n݀D3MAdw'X$/ 8?MmcZl;r ^k;ourN=Wh0l[Q4ip7^ny2O)opa |r-RNqmM0ur$ȑ  X@  'p @c0+ +uՏ*a 0 TH DXDЄs"tȻ`iE@=h*CpaNPfI޲HCSi,1$#Cb/ 3~5 jM06Imjd ?D 8h <O& x<`[˺ {%&zuu;>Cц` RrHI/ @FjHJ>  -RzI(\Z k'E_B5$dM%Ix&![P׃n7)(@ QPzs!{qH%0HתiĤax0`n(@ xm2~&:+@Qq }^DG0+ PBpD0 ^(T){oz꺫ǧ>U*4"p˨3 Xp|^0c`CrG&D8#8`['- y;0ӘbS3jc-J&ܚ*B|C!88 fa1TN*!Ih -T`el J&(@*3nvRyGޞ!JtwQ)ŤYD\4)+EsQ# evD0$Yd @4HϘp;L $\{~&`nn<{gC; @mx 5"! >E\C2"nΩIg쨵b[O'1TfjvJ+ۙJIwp/!G}t3$o*ѽ+)}W}+2pLֳ=3D5Qïɽ9Оvd?wrkOy任"w)+m;7wwGkK^3Rxpx4JgrIP wFP IȾچO1MݹwiHw[S}^\$s3~!gsp*0U &&"6{3ْ  }hr%9(j{2 ~#)9fb1\4Dws5}ߛKwuN]o**9.OcMUy^9K^Gw8!tf{ԒksR!@ `.!}>{33LbB{R_  3SWB )04ȩOm}{儰H$ݬi.aޔwwU}F!ݓ{ ~FC0kpUA”# 3!}Xٕ 建%%Vv#7@pS(߱ ?Ar3# {0@>IOYؔON,rʼnèZ6B6'wp "!x>vZ 敖]U}~2{p+hqQb @#!WZw⊲dqc#GZ$[Ώ5K`] t/`FhdX]P6)$~(B€:sB{[D/v :`&Ǥۏr38#WsYB9''9 B${=|/<_߯SE[ݦ1ڄ)>RM3-%iUK]؊+.4BN,潍/!Ov'oviok-z6W󺑏wMk?5.0!@kҐ7wwwztJ0 (DwC=iM'.'}Є{i[n13-k_,xwa~ݡEɃG]k؈"bH {91 |mmM).$;毺(w҂]ݗ38~R湸8;@"sBx^)k"=KH}}4#{6$/ȣj{1,H~Ssfb$HwrE5}MSg{Ƃ?kBBPֵ)J}1=UńG{`W^"G8 9Kc'Osj=Ot5p7b3ٽ4}O;iݩjW  Y `SR(%47wv{%@HFBe%;ڔwwJm_k|5 C3lHw ~CkMn@p.Ü4!}Ж$we}k[@#B8`>e O~"$`٠+{O!m$Ln3щh tC>s y{R  [JS&IP}Wىbi|DQD6YV)(絼/v{^ fZVk_Z[ƚeJ>)kkB cD6h pK78H,p9;q58![pt|'W !F[mӝK[8{A<'K s~9ȡY#)C|)}χu`C8oOz Gvx@2!FQ2FK(]2-ڨLZo!g*>pQN= 4[ޖ S!:sIi9BE&r!SG `.1;{OUB#h@[Ѐ4  @R9 A,t(H_H2F@.FNmpR@WW`roE{{Agls# xl+ol9\%jiz|y>!1:PbOؒwwSe0O;Dȧ%@MX zD~5NV=Y?#v':Qp9ERItڠwZe\LUބ dxMTG @&x"Mթ9r*\T` @PQu.Eȓ&EEIi2$Ȁ {}D@#T) 0H܁@$qb! A\ <:Hr{’ZVD,PfS  h @$!EWB$@ @UkJ0BF,,RB dX`` (5@+$x9 "t>Ϡy Í|ܨBҮꌂUh5Tr`\]F W" % ^:R4 i( ( 80$(,dPdn ?`#'SbHI &I(&@8$ OHi_@e%ҔZp% 9JxO喔44)HicS Ɇ`T7$@B$!!-87XvPU Y@*I8tRBp(pb'MG3c$/EHjmQtVTwA0Xa4~CN(]~0hn&/B@ LBG , 0>5)FKFd&gI|xu?8ܝ膆xj C@):Du޺(߇xłOnTs@: I*\ C#tUT!'@N@`!@$\UUJh,KqC~ ' 0$TDAe! XH PL+5;%`>,&$R 8*I"\:7,'|s?9iyjSvZ2xo@`g?< K*hUH u3 +ϋ =B@e Ӏ: -<rX@Ξx Ą ~*%#d $ЋJ ܖ5Cl0Wq:Fqqr+2zEȋ]Wp {\wSP4QR ($ UEѤUD"E@ULDnEӎmd @H`KAp LIA```TID L,V$@NB@z2IH "8H@;]XHK"髫JP $EUD( v$pd$ ɩrWR*6G@`:0-(@ed00CHHi4h$ Ĥ@:BR$jz@[> +HDV4ȗHI%(JCBq(ԣ)#KFRe nKJIe hѠPI@5 Ġ,R2 %rI$?iO,M hhie(&,I-X84? H< a%( E#|Dwh,\ǎ4Β{4 2YbyKi&M䲀r@bKF+ -sji 7!f{ `.!:&ꕪ HUTS-A A,0  ,BjK(3ҐĖM&(M/ЌQIT(!$0J N!%ŧd$h^M4o  $$  RS4 WiήϸtK$m<"/_ `QY->;?h 'W/ͅUM 34LI450Ƥ O(BRdx Dh$>Np ÀY:'q.@?k`"π@c` |JR@k|dTP4/[ b-#[P{OS' 2?{!1 %'@R*a \t2*O 0qbP4$82A`8JK@ D~^B!B[ -$H]Ͷ9D$rr?*Ap{Ua `Y ,1Q 8#QxI?ٍX]OP=@lX]# RyIu $gnZJʨMuu]RL!0d5?[2 oJH +( @@ͲO$+# HRHL=8(@*_Dad͉aC"B4[mcd؄iiOb cl q݀Mnbad1M% (bRyEZE_@d[9@(ۗظ0*D<1/'.f&+]_˻|u5v{殪>.UOBg#U7L:! aB2p6KoX`͆>3F,Ƈ`wT'FgΌ xU#q 7>Aeh-H@v8a0*H@nzPH !AԺɅrJ0~ Yp \>'9*` %~f Ds_1>/41!艠$/ % {O>k/TXl̳d,Ҁ{B0(8`Q$Lh ǁBI @H@!K 0A^T'wB oE̱!}C%"z,krci w ;eޟ*^䥈kiiF-kOk^֒C\.5緬&{H?wwsIXwrht{'*(󱇬7LSЅwt_zPGHV?kLkM.}AkМ{Z$Xw~6C!" ĀIwûRv$v+ݓgwwJ[n13-k^wt[oBx,tx8Eia >HF皠o%fPАtڛ3]bUc ~R湸4t%Ң'ݞz-9>֧ _bXtkao兹pm ǚ!O6߯rHtўކR]̇}9ˍ!fܗB-%t6$#)=DğDv]8( b}7p ǝ؟%`n]fxB3,dBEH_twm~=dcXȣ#Iz~!)s G6i$۠+hJ !fi֍n8>19zrR5 ̳5I @t@<ø+w IpHj}sZZSB0Q ' A|/ﶾ !FKZԭ7'a )|> =k?SM싿 q'{S_`?b}- 0Yp'&HdBGuhjB ƖCq7iS"l!fM׭> oei-'TgjU*}.ts?x'a#䢊Hi!GJ;me8 j@8!}?&'ZD0G!v]\,nW|<>ҁVaX Th@y* ܰG{^=&p(C&d$K[nI۞*NBj! `.@P p*Ʉ`b Ere:~07x`!:&-fJL}sN͂~F})dA7fm.x ^d d7%&mj@2HhaH&ŕn ,nkY,sWdp*;tҌ쐀 @@lPCy!'Nٷ~=, F̔:}ۅ}GvG7$BbPh I;qK;`!'@ :( ^g&p(dҁ o&ҵ{п[,ws_߭tXqidr ~ `}`y FX3%+7p V>IhNӻ~PI7^Q7''}~,d1quԼ˭ywN{ywywzzޝWWS7꺞YO[WvGh")H'>&[ E/=Z%!5D[b,ҋ蛢({ҵQhitahii].hjg7y]-..?2eɬ]aYN}u˓[.Lgד>L7-L &2]y4>L0kQ2Nxݪ'h8}ǭ" 1!?iz;;TlɄYM:Qf )u(BEPܐPueE!HаhA5aGi3 s}o&=6bB¸oXO|ݻ~{s?\ ,3A:_ ; 0=#e66Ph [7G`:&;`JC8/lu0[ҿ؄Roސ; ,?`Tܙ?Ad!֘5ϻ2Vͼ[*-sIQ,3P\4x!&$ 91`?\OH<ӭPX8y|>Ow,[h1ni<΂ rdyLXby||kH~E@_ _; ?Y u3!G `.% [E$| p[4|w5p;46r sfd-\0ٲx,4?O%'͒,dePO' "dN _|[h4d#:,\2~6Y/  iȴ?Gp\>w\~6 h^1H AQ:L<( y}p&;ȵ,oI 1O#{5nm溈Ik=741^,̓y]m!ɠ0,iI`=A5_mǭj쀠 v߷8RJS>sH21a/)_NKu֝#a$>?7Ԥ|7?U&Kwsɠ'Olw[@a00!jDrR_bO}W*!=jhJA =(%9= K%}̧a (C! & |Q`_nqhBO`)@V|S6*Գ.|qifC݇ $Qi @/7=߀Λ hh|MSoݳ'Ȇؼ$$w)мۻ0'#m~SZ@ɤ!wJԎݰg0(ၡ$ۡӲ[[KHKnsoRܭ%tY7k2vQ^wq8^yQ܎hk@٥= {B@x8l(pl@!&HC_qZІy:!߯/q\۵xnF^9Ǒެ!{ `.J@gc?6O'w[?@ܷya,,y; w`?v$o2wp6l2Amề< > OOGxE:踋\whQ< u oq|XSygQ-`i]ߞ+#^zPM)sO=^4xȮuGXjG Urq"- vJ/""dNO:qz#0 aa axPOA'~sMcjv@x p7rl7Rۿgo[ BF)% C{ Ca5As-5b@Z?|x9,Idԝ,68tJ0βzȱ;VAK󅋏߀>?sOB7*JI`aOLen:@Mnm#HI(Bz +Gsӳu$ D"D'~~~Ph S{=ׅ HSœRqkyрb|I ?Ѡl{_ӣ"ܞ5 <~8ƞ:nobq -OJZ|2:=f _iCyAvLy Y0j͟t6~wQֺ~F=>øw&  G? hE7GwN#Ӯ"7XZ;sš5z;}Ϫ-H^zP6 G;>yP\-/8 dmZ`udYCEՖď3Qh o*Pnid}"T7`:p zID2n5Q)΀4Ll,5(C=:`@vdmad#cXˠ"v[!m00thHy0ܲ3c}P;) B+0Ia)۫3H^p R5 eӳ;' W>,B+#fAc[2 f`` `$ŠhMO[[: ;&Pܟw%mNuZf#n{@N@Y 7[8{l&nzٰo>z@ɠ @2!b4I5@, N ogS!#vu_u!٭ `.osG{?i0ì#Sp|܃ǀslYC\ _5PԔ},[G_0)dC'||?1x~D\c0 sVAz {P2H4"͛t ck@\8\@~ 9?{B[x SZ >?Dž Oy?H h4/͋}9na)xZu~9忶/o_HssMPdM ԠbK IA(3KI|jHdԀ75yٓbwcj`!P44:RSYkuq-ڒ$Ʉ0a잾gX iyVBל_y2DK;~WGCm^tIM@1+GNqv6-&ǐɥ /C); G|:w~>ju! :0$711!?h!%}x BR#Ğ; ,KN7#oHo߸.EKw{`J@10 .Ę@;G 4 gIT m)%trFt @vMZe=)[q%)tw9" v\LԄ=M.D"B: 2i b@(t @a3 78nܒߟOQd6q7e<-uaG>8Gۥ"P6b>^s` Bހg<,"y|.?Eh~X5]"ynE x05͋Wzt%_%LJX|??O7x?zg`zO+?Z^r'[__Ny#rn||NzK[NLJN"IN#ۤA4ʕg?iHZqY=t,BJK$x^xM2@fd?~b`M 5`+/߀5& Y4ԕJ(_/q.>o?p@4T h4pIK,P!1HF+mVcv 0 ̀‘ƥ?-!hp oЎ^bcin7td+c}4@ P `!htNS-:Qϻ$ ^6@<h  ! <*%`;A(4+`wJJ~ )CIjwͻtZ҄g}Fjr -߱pڻ7?4?Oqdy;<t2͇E8zӽ;#?z9߁|'8`# įx'͑?6akXſ[eq1}`w⍓=g.)| _<}n? _'-fW\pgƺ|> -oxox hD'{ƀ}:VG XZzZ;~=fh`_+"@#ϊw9nh\SjA1{j/?6嬃ʜ#,<$! F8xbE@(^(orY! @ !9`vFVUTH4IFZv(-뭾% OV)ngjWWZ)b.շ'H"ó=*k3 J\ՊteaoG'焫Vt9Χ!VsP"ixܱ+W*+M޶56q',h.kCc.c!3YJEJM4!L~d9htU0u/Kc*$IWpGF|̹I'em C0ENLϩ%]Tm1Ե\L$ℹ1iyUoUlbgFfFSVAFvY&+MwB67v>Y´1f7rJ<2M2X*I@~Pe@6:+ی#.wt*"+rv)LR {gW*ex:*U,F>~dc٭SV#JiLc*|;^ۺ%53m#r#Фj5q\0r90zrdoӝer,͚seRMjbvz3u8|"[6nt2F-M[E1E;1%f.9$rf򮆝gb !0`vEfUTHUߎZ,˭83c9j䎨50զIK0ˈ#3 *\k QFUs2kN&s վD"!"yjji2:y׃4zd#JL yT $Kb  Ќ}ht#z.Z3-s a)1\ -׷1OQpZ:8PQܼ^ڮgt8J6 lHH%ىʍSj+:;٤!URJi9kEZ$L9YEXsή&0bgEffDHEfn禺D,sՎU*%TW"g/V Ts#nsn$~xIQvbTYIXT$ 7bT>s2'KUR$8¨o sa/n{-7)[EVڍv*1;2__6ճ?%;2+EO*vEc,0uQz_@r( tYFCZ#M7ه5E;f=DS[aH.hԱJu@CkXPL[7VrF1,Z ^Oj:j`gFeEU98MUc*d驾mhŖPY[Xe^jZti}BwI"('K3\|cGΚXfm%1͏im8zy$ ULw-{MhRYHPNTZ܁KIEIe+Dmh Tb@S_Y#*SEL9[=Q(!BD%WJEHкZZYH!]JMj\F@*}=X7,q-[Ӥnv|Hk9@Z޶xdSc%r]m, .iY4bf6VFTYQeg)}sńF˅VҩiVkxg<Ԧ-";KW$3zٔ|1Xlˣ LZM7/HQ,XOkBHmIa6b< ,>Ck$5&z<=l C:=%oe:xav<t;nmĦ+t)qLbi2W%%b削ip˨x\tP4zJj*bQ)7 fHC+ml;K:Z;8fUb+evFJ[b`vEVFCD 髅$a؟*.cv QE[=Sܧ1,&G92R7\~oo[J8HUQF:X&;orLjFi?֒WY ck? ! `.gNx1.xh?۷=I,3z@ [g -I ;y`@Q3L_g94k `<A[i܀^ ɿDȲcJ,RoA- wN#F P @3вe31&ZR`;$/`3(H@h;! MG'RjJ,o=y|{v 7!dVIvn"@-jwS/~Ov NC|I rű?AAni<|2ELJYe`>P rXn-BݢđI: JJx,zhK<a#&~ow4㉻&?,Kqr O~@@o?-}owgHqqΰ;8r%dOHǀw'  =|{cO=psVyvo0 sYad['~,a?7 ůN,ߐiДxwGSszq޵Ѹ<Ŭ Fbx}6k"6#'~aozG'9 K&:Ki'۴$ 8x*'`<:&HiBY0  p\pf4 vtT HL8oGfa%F`cu!)mcY9Kwe7XC %5ak f@ 4P @@:P4 @~T$.CAaP3K ZBvB0A|@3(@ 5zY0@@bxCC0L&r@|Z?loHb &$<SydLd|7n/p\X%awX:,Xi40 ! P&0MHHޝgN%];/` 7l+<}@5P(L&2MAi(|R=O%+$$>wO̱p >`W BQW?ݜ۾pb:_|@ >|%0 x@m_}^#SVX|TG=H0ԏI@'O>шi~lG8ޓpR>lR\x(|@9+/J7a7"؟f0w4gG~$XA~}-;P0xOzetaFuԿL3L1n @Bv5h0dP $m|d$1!(0ˀD0ԓC ,i(g@n`ҋ),g 0CINJAE9!ߏIhW~ŏqr Ɂ&R1iCS؀I2Fd%q܀*C?0^/1Q@ z+C>sw4`a铃@vJl4_7V[ZNY rgCbK1y`hސғfe3f3ZrCK-wAIf!G `.!Xsc-o,&n8T@tI@g!܏%P+@INH夔4|9ʔnԆM,Ōov @t$3r?8ڣtL9,5 `43IV,3?|(q0AJw|l!V*V!!=;n&0ӰbPe+o>|2ϐbcٙym dhI~whI$7bz~@.ԙa5!b& G]cfSE߹ miiHfO)x!!;g)rOh|p(B-)/~ǻ; qO@C27mi`O0I!p5_+0 /~k# (R>n粟nnԆ5o2 &c Gm:rI7v||kŔoN -=-u-Cx8`Q"irJIĢn MNdٵ[ I ;PIAd 0 nP0jP& MZ cJKfΔ1dB 8e><ެi> }[B15#BQdz:Dd5fE!M$K^/ @4Q>]CGcWԏMıWD&5ޔ&WNwKWݛNKJ[n13's$_}҆$1#OME5`O܃wC7uݮ$cK>p~R湸0Dž-wwtw 0c% 0J% 9Bm,xvye~<ح ?q#l3   ;%/m_֥v+t-ЄY8t"J45Jy4 !FohP |+;I 4 VJ Ii_}3{-'{e+nt1_?pZ_fɡ=䳽5k| )) >& ab:.@vb !-]3+gV!&{ `.!vE[dCc(ĵl[оOP/5m3IEd#1#$JI󈔱];tBaa+#K*tttO$ &#S\F)z>.)ɰ7S0 F7(Js1G!=an59B1H> @-< ?|&*O?ta(S wz{yW- NJO7I݈ZE{K!̗p.XGp`.z)!ŨwS-?>(/4gz}J7:Jswtқ귭tww ζ%|.}BAؒƍ$kmΤh]Li޴-ûz|kS]iji {aiY~[n13'usȽܕ"5ֱ (BVnp| ]!ږ\_uwvk5J6~R湼*GpJ(6O{r]ǣ>հ 'zX$_J^4sB vú<.Ě~Ssfb áJwu֡ݭbCw= B'f}ޖ4wZmN%?kC۟pW^"G8 :X$2yn4x@ovBApz>ٗw :1qv½!HFKWiwm/  Y `SH('_ WwwO{7Ҿf5 LDF}脄}KwS> wk]ږ[ ~CkMn@]~}vi7|nwS=،5 Jxi+8l7 s'a (x)qrs`NC]@̔q6im3]ڎin  ;/n_֥v+t_tN 8p?#z!Xd$ IK~ so_r:,D[!(DnI +I !q4S:i)8t%ɿH&Ot)ݚ{ȦbH'"XCgph[aO9 嵭ZSc@ Fv̖h^ $t $AT]͵ߦZ"%Acv Bϻ_`Sm޸nΚ}2 ඾@lYa Fq}ŭ~U^!mE=t_? aٜln`$HhΕoH8݃GrG6ϸpm?,P7`#fot# TL8;9#_1`aSX/0RH~'_܄;> QY)8O[]sC" gnL2A*ɓ& !9 `.6/ 0*)~ lL- \HB@W\agxѼ[2{ ?ƌ?`$ a#xLWkK? J#^HaLxFęqm6 x]d~CہH!.,ʑH&&5-Ȁ $\18@gU  00  C@`7`"@V UPq@'a&TL((X@aA`M)@t0Ph@PBEd&Hā`6/CX-D0I HО`h4Q_@u#B> Jf0"D z @ S$;xɹ|u|mTt!RdɪnMɑuM]A7 {]ou&| 8]T-ؠU8(ꪃ6D ۄEpQd ɨ"&E@ȑ&^/Iu040ER`0FY[ J5O$RAB@@B/( J &oHN d4Љ$2P0QEK İ%)JR-U@"g&Hp2%!,yzպj2$Ȩ]Wp {\wS$}X`/~!$ T  Q@PHij T2j%ԋw&KHE#Hn4ƀi/X9[ Pqx  <% 4$`F0<b2@JI @ Ho B)wTBMtI uubn 2j"L v\LTL@ @yEy  D]`;^EQ-T@:%R4LhaE`GA'4tK)8g40*xBi`=5 DCCCd= `chXRB Ѥ5#Rђ3GOE$L%R@rR1)p@ `i-n]Yg ro!ќ"HITwTS@ YWsF¹\5D2dML&`Ap0XjBI\gHA' ܠ'@ `! ;!XC@ni4Z %Y `dDb@*9"&$JpHPܜ0@ "ƁbRx(:5Pz _ڈX']P[5պ [O]~u;Cb.[CO]aN6URq.(qPbw6vfDDPM~I)05HITp 3 Ǖk!v@Ov@,N&[whOny2i%b7%a\!;S-A2+l KGLueDYVˀLXQ8bFsAсpٌ0۠?v|"AtIX~\Kd43^n4Э hˇx+}-]lss]Dl>j'ܫ*љ\[t6eEJVU%^P)̖Z,Wȇ5Ü5 Wghhmk=`gUUFTEjab:mGuCFfN)Zێjބ敝3g9knCOC!L xjx2tl!yeTH'-1k|Kf]jM<˒Tw5Cű$/2P5j HOTxG% 5XW} oU+TZ͚̈^hM<`fclz0-ڠDʧcV> QW. )iy,e[#iWa8k[.9\bwUeTTVETy!ɫ0" N$Eh;,ṕ؜6912O퐉iEIYf0pd˭dQJKNIҌO=.q%N\+i'T꣈DUA*"CڮbM mJt0ܢ+}mr>A2rn\}ɝ߮pƇQ5r൩yq'1]S.Ғ]pi̺,VcpBђ2a}L2]\^9uɧy^ɄyN9=mK nE/[6`fUtdSFIbꭶͥ0fI4.(ӽ[w_). %UEMRf7"9SzUiI+-/V6J,q{-e1J8C1>U 5`ش -XhbBP3pѹИ7,u5a d 'h y (5%TF~eSKz7ǰaC`,ʠhjU+@G^cG% F{J CƱ=G!F4oDr7َxxI}!{Jc1\{шI%m=)D;,D8БD-} jؔSiԷ}WwwM[n13%@,z{ C;f%j"m-4B vbU9!_đs}% Y]9 |* z{7o~R湹$>4) <|Be-SCI1G@ dR{m7ZCW~SsgbH ѵݭA|pBy?b'ܿwG7-Oz~JVֶWڛW^"G8 ;G],XC]dEwp^bW!컺n@>X5D= 2!mû>u%=4;}XN  Y `HRàHv- _{$Nwwwm{R@Փ@ږ-KbmvBQi ~CkMn@p.Z< 4H_wv>3}4#Wx_=f)N'Q臱wNGKp ҋ(f7| ߳Rko `=Ҽ5,K3mi_9)G4̧t2v`L1($j _0['D08#}r=&#')ͧj !f!by09S_Y2Sn=<$,Q;J(>f8~"B> @!Ve;@G3o td1ԳD{`;4ٳ7ݍGCoweOEŻ=U$0$bG5}G".!FE/[E}d, xX -hGl΀j8_I 86`3?U l!sG `.!)U=)K`Ю?Fk %T©ӰTZѝCKLY,E}m@7_. OBc!cىA(Ͽij"Bi&0CF_}p< ~lT?`kה+Z11Y6!  4\_-+OOfv9. @!Bqz!5#ݘ'Xa mS/Ơcv%%':d%}xI!.K.}pp?}q8g|PIĄG3@eSoi"}T^WR\ $  `H#@ '&#I)Y#aY9qx-@cR"DUPQ  +`*m(7r@&HB@UҞ 9?I0xpFh|Xϰ*(9B5V1`"%bb?qJI`6P5$ ']Hu\Be"P)}QޑrjV ZUH@M t )D1 _U U & X1 |f`<Rjb0+CAL GE`P$Ȩ8A1QUN/H4#MWW4BQQ(PH$d$h@g`|$h9<$&sPr5>L/E;ou0WznJ}U {]ouGXT0`R0"D0DUQ@Q̀So(*zBwdT]L.]TOT]Da H'`0*. & Di0a0D~҂`w%%RJ (bQIfRQ`)0jCR Aa/oia4#@@ E B8+m0+ƶ%Jz=ZA"}5u_]Tt r_UUUPPp _4HDUBb ]܋C [ZKHhOF rj  &1o % HY!#z@zz$ H HO39BBKNIRMUD: v\$ *5?@@x?0X+I "HUHETkwD$P IɅ'5$0R!` @!|P.(P%hb?N P#D=&j5 mߎ3 }ݘ'oaUSW* 2.i"ȑWV"Tj+P,H@(P0ETcQV0xh 1(|QDXICFrYIJP @:,B:@(& ɨ@`hHbCC %!! He 4-(p>rb|4 $t @=I)%L( < @I@LhHrwCF}D[Ve‸`P, C@B{#0|jw v$%,/D/7܋_Ng[8 0PE44"P&<#7$DŽ26cmjkk ɬ;j65WUu ew! t@tvnΝTD-`D, 3p xgΌJGXknefħk}EP b$= ## =eT 6ZrsB>*M]D ɀ&P rD3Jx .UE j0H@L It'䔔1EGPJFX# dl1f}pG7,`2Am8hd1=)OP!^ P%A378e+{a\ZSWq` Ӊ1(0#JZIi %(/4ܰ*QI ť),%$Y!$$a#c YI,FimG/'&۾|[n13, `#x&)hd)'Ҟ{{"PRb"iݟ~mkOdQ̳TR]w_~R湽9JIbsv-43I$})4ۙ ?i52K}tKaM~Ssf 0!A5!: C#gyN~p4ޔ*}k[ݨEI;֕KrW^"G8 0B`tak7AP_bk3ǷvmKR1ٔr B7ww0K5-&f@ľe]ٛ\{[j3a ~CkMnd"p/ _?{,[}|?A%3sr̔fy4D;,Н%$k1K9-O6 HfltILFKsjSSVҿG$` wtCg@.lw~ G@Py-xlٱ=0&':ȥI汩< !3a#`zR-"B2pG9nspBpJ%-" !t1p#|԰@ .g ťCz6ր !kLNo$7Ƃ~_P q=6o_O^"D]Č8 @< wd1.{O6cМQfE}z5dR_j!c?i1PvgrGh?Я 1}]vB^#VH$vRp7Ŀrwr$YP).:tz>H@E`"W`9~@=_wLHnʙ;bP*gL)B&1! @ !QP&Pηҵ)*e(|vrj `uUgEDWQy$=Hb38d`v)=3[HOVXjl5$jRUmtx|pf~º'З6KO"M׳OˏV5>' ͉UMpչ-X!{#FU}( µi`ĄFuTDEjRYGYqg*;G56;))[Tx#%)hz.+<#2*>qgq#%WjI zXf֚:4OE EQx/%E'φF.I.WRQgpNUU6*!Pb3ڍ\Iɕ)Mmh"|fF*C gmDFio!tSyZZNDV>a*ː*AS3FY9c^ c]ghC˰h$괁WrbuVUTTGP QFv:螪eZW[z-ʱn5K/,,ndG'e] cHk9EpR 2bIJF[p ZY)\߬Rv*k2QզFS#Ƶt: j8T%q`eVUUTI*Um袺m+oqs8FixS1-D\3b+wCl%Tx[$leL'/JDsF48 ]QraY+M̼mE:dJB'7ro$Ů\y1|%—LWZT:zѢhaP\F`v.a?ssDI]jAj6ա3/B^RRǙBOݐʾ.^|I70ڐ]ݽ}*w]Ձ{߷@A? <Ҿ~k{'ݚ~$9_*֫}ѹ~9=wu[|clȁ:dǍ뿆"#i aO#^zv;1ڪ{"jr]ג~RLh+/% G}-x8ymG'WЉYr腭)AHwz b<^6x~S7 01+>pR zĉ/=ƻWWx_wCUowvvW."'8 8Nsᰌ_-;{x 8O= + }ݵxK/( B#hJ(TwԿp  ˈ@H&Ęn{-UAv ~q!;` ņSͳ-S]Љ]Dp ~C C!Uh'd+;;nLft0وF!W@}ЏBG5l&:(m(x 5X  X`/g>ఁQܙVf 6zC.^ׁ,/$3_(R:g]x~-:Cj6%ټ:2G8bz,'  HE0a6@/B$XWB6WUorj Ck s,^k{ND殒GDiF`f4D }@PEDj#V{PrܚT,Xaw3i#')|/ɀoBR33Q㲔8DֺZWU}I6|2,omy+HժU\Xw]ҽ|Bb$ɯ&M\D5dy2` {cp&瘌_|W%`ƥ8bOzPSA0,j@{.8OtA=)RL!0 0H!AH)Jxb M0;& @1c@fP !JC!``oX j JIxxaa`RG-=)!%`gؠ?|>"$hqwumkgw4pv萐&ژTK\ A( x@I_%!xYQ+8| bTUz[8-!45# )?Ii#?8!2_Ѥ&bJF1"]vM OCw)<;Gul1%AI"trI]f#q V/:p $@J0HݢP ߀B ET!G `.0 C =Į@"[0>N`&1&DʤW*$āRV !%1 ,C!@$bP4 % Ѿ Hq6VBz>Œ;9|TliU| sN3H.D T@ȪXb@xT-*O` ЄKS$Ȼha6)%`IaP  I,4Ye)hhԖشАT@,@eOKicx%EAU$@F&B$ ϟMyz+5ͮ r@ `QIUQA8nW @D?8Ȫ ?K@) TZ.OB*UZbIA4id"`"}5(AEthHeAԒɤҀ*.N@=bOO@ĥ0?>P$H$ ـg]ݚpK ,Q7:jh κARb .U]]]ըA8TؠR$-&*$  P(@$ +KL FR@I(Y|? Ia HĤ%D9@} d@tPb Q4#0~&  0`bRAhzXĥ @oK$$FH $$'q,HJZ@Ԗ1G J@S0ls'B%LJه_%8A8?q#]1*~|I2L6TH0|1 y (HI%$1,iI+ӿ#A[P@ОW^#6uSsP O7ک꾫fEЎI<Jl-X"~"lǁtDC'-c !|bV!~腁P/L A3 JWC@{ܒ]V] kmDJ*@&vZ:0P  (xL ,H8  #rlJ>Q,'౨OM& H D+XFhyh I3I:d$ϲ@% 0d0 %K&(J)1l$m!Pjr 3I-q,CwYIȰ0);i0Tͮ[]E?u5}W ndN 5YV+s{#v1+`]%NCp> TJ}<\HPJ!f!c8ԁ 'z"!+gQY@P4 dˆ|DՂ.e6!{ `.!` pR yЅ8x+>>݂-hx3݅E=-dPֻ]d0OUԿu)W'.u A0 x '1s,EA}J2f^B !M) y$G,oJ[ar5mжLp0ec" @U0`h`Q79 ?c ^їs!8xbA#P$4:*` :e @brJnVobP,W "!(C$.I)8$*aX!X`p C`6 k`H`0 ,@;,^XI{6 CXy+Q*X qD<1(hbHhI5 !!7ƭT4RK@p!8Bnzև<7w4wmwf"" ݞ=͉gݒ{?ww&϶~Ssg Bv]/>F tھe!#` ݴu,#z{&JRֵ{cW^"G8 8J;K@|5}K/e=Ў q&_!{ZԌwz_:A^B_[W_  Y `HR'G˻aXB)D4x|{4hKŗHq!gbEi?%fw~.`G Y_:aL$b*gİvQ_Th/ E%4M'D? P~ cp}:%UL4F0X@F3,tOW >P#=} gţ- f{J F15,ȣ#I{ qV3 B2fJO|B5I~[ֵi7fis\-8>UsQ %_f 1{Xd1( ȅS/}! `.1!=T%Hoz=Rs5]݈A).xT = 6 y*G=f]8P Ȯ, &"<+\d fSۄ[oAu-+r؆߼[n13!ZKY$_<?m0nCJIwd!;2!d/[w~R湸0}RJxk{N!'j{vB!;ז ;w~Mm%ݟl~Ssg) jQ%~ҝޔ}ͽlk#.ۻ%&>ZjkSm{gwpW^"G8 0ay/,Zy >\ iov-޲֟{]֒ jZl޹;  Y `HR ᠍ᰅábt{4hh7T7vnӶR5Ax. ~CkMn@p.͐|;I^ov%tR# G<#7׳~yo&Oִ ;{ 8/lz"̾-ÀI iC/p oԂA$:=F Y!7%*Y$Ap&MN2FmRgp !fm: !" Dg@ ݩ7)Q>Ef ɽ-Jа!g{Sۃp&ԕAKp3k8x-DXHul{+0qpn %vC\ԧP="$ p*n8z+Ļ8GTjy@A.SUfO4ߓP~U䦑Ą,ǀzN}B37"! o*b }U@ Pˬ T/,82t 4)3ZMj&OmP}J6WT%Y͏uj{92*2*2/ȀTUfh:*D {`P508h b]_t_4S@Q&~(^ cx'(H$4a~!? 5WMa,ɪ{ O 0A Z@ X` @(& 0:0`MbeI'3E`4Uʜ %P,D FBJ0<@ @$h0&3 HFH| "`* @DSjo. RQx Bz=ꁒXHI@ Y #iG;5Hu! `.VtJe]i}sB4 p 'nluZf( rrIebF-px b$`nI-.V5! ?8xטKRF"x7m)p>7;~t_!`X[Na Nri+k !%B +5 ͫ@T4 ]Kj}N3UUu^K%^AEꈔ(fo x e iѓ(#ԓ ,j\0&&ZwF-!9I[nx@f\]k** 6;Zڵ}!P2` %]L?" ȨEݡt܄I$'K9,R4 1Dj`P0Xi5$QD!) )H!H RQ=@z0g腂]00/xp1ߏ%CUt N]@nM l4 @)hC,`[ -=j@%&P !`5aǀs[ޣ}\mԪN˓WwoSwu]UFi8RRNq_9'~O|{:q1/^<W(R DA@x8ӛ$ h2(TDCB?[;cr`&R +P"4jo~zz7h"d44OGxQI/YE$kP@F5:= ,uQJ3m/X# ._`{(&3Rw\uK.RO%ի*Tg(lZ'}v !  @ !{F5ul'WV}K"M;m5JDޭ(Q!qL,Q"#)ym q[ѭ SWo\Nd"˥x*K=4J4~RÐj!Bd[hդ2夨HYy&`xGLjl#k -\~*'^mV4\iWVa#@̤Lbd5UV$V 5Aw}~Iᚨ$얺+#Kƀ9WXfa]SSnlŇA#IQjCf9vkgumFRh suXA,tՈbtѝːTm5S5f]Cu; #-=sޘ.) ]/w<哒7iQJ%YQw7sUjL&Fq52L\e йx6+\Yq`eFTW3D$YVV8#i-z%&p"&tGm,y`6BF)cġ2-#4QbB0G}R3^<68W=Hr4Ɔ+ti1r?*[ԼA2Ѷ;p*(]-T E};=%a~V л5N: ,.R=iƖ &hMۺTrmF61یQerxm$"W 6HֻŜ Q:+ k(f 5fƊ%r6wLeEvp#%qm^buVUW3Fa&(ʭ Z•FE JD.o]jIim157 q0l Z $-3giZf %Z=0󤾪թb\FFIV7* m+ʙ1a-Xw{,THSA1gmPmMx$ӔV,#Mys\$m:u͒2˳<$)."(q͎U(6iR2daiy7pI: iaJiQ%BNjT}譥g$K7h7 ڱD`CEtTUKZU]|ȡfhؑlj zL$* 贔l-[W8YjԤ`cN2Q4 Ǡ>Bj9bdiv%2D)Ja'*Uwhj), 2J]%cfvl\`R09ut7eMI^f{e TŖdxwIYǝs|;FmD7':]hfUR/R#!^ !3G `.!(/FG:Zx Ӣi@ !a'$!/<[O 3>=UR7M@h)))&d 6H=H}(-$4ی*R@PK\J@`2x $@PMl"t| ` 0@t 03q]4 @4$dQ5۠byCKcQL& O}ߔ!dA9{IO)E>tDbC n.2w W gzAKn7I;bve tD (tP X9:)pGIb@Tdp} d$>|X8#pPE H$X "I@/ 7O? _b/(/ !aPcFVSrQȈF$D~{E]9i18*`fE\wCUiv8K^`h({L$B/-5xnʒ/%قf\/ X#ݎ8]"G pUbE 1Ko^)܌GX ֢(Oa< ^Wkh(/JX:wז^38d!OaCBP]Œ{6Jȑ;^wgbUDmHwjUZq.~!gszHFp/wg>8 x< uJ!!nBWRϷw~#)9g" AX,A]= SsG ?T+"o7mOeOO[-K^Gw8+ߝƏ_u( U5y; e>}-7թ_{O[I7ksP[]9  3SWB ) rM+'!eꕯ{>}b~Ḱuݪz;T. |_ ~FC0kpUA'P] :JNWJW#w2a l/5D c'j1]0EO f:K{TpG5}ujN oQ+ TBF?߅ Gk":/n00_`hN5W{"ySÎ @14~Ap]7 (V;dz4F<?y&,A71"8 EpFOeFSր D>^9PRX 6a?^ϥ[mjčv.7wD5/I>  wd{ݵUM}v "Q8Q(2  DOp?Fi.D]DcgpAA<L|t;MwأL(_-_@xJ 5XGsw gkA8$~7HĞJH^D@B=CW?>e|XJ ]gD?ܿG*O1_``fFmĠgFK܊9B14{]܇)YK1hN!|:'M'JvW^"G8 8FӊwwǟjMviO. hވ^{[IN]dMa_  Y `RS( C&Ag~1֍tnkM"Խ,BCk%}p_]zFwp ~CkMnd"p/ ^=q]P3-DFe s hTjQ[zYv FLl"[$26] m N{WFVOK@FC!&‹IML/wdt: ċ%)7Ħ `L2jpkN f_KZׯVsoSR-E6Gв,4n9 1p `B.7Vp]l݁[B΄Sᰤ' x#ACB':FTICh7PPȎ iKM}]` ;VIG ӌtoX|/AxE {]bnp U($tt03` Gt VN@ @#2G.KӦ"Q\r@`i3XiWP[=;co8)Jp@(pb~2bP>%XQ7:;cH7v]Rb*&ђ8(TpLG?z*L 1Ie%-n݇õEpI4wٷ@ \ph夛lRR#3Ϗ !NBx %bh ?w$/ݳ8&KRg;ɽ3VXA~쎏ٵY`^g4d% +?~`{Σg_wP4Ř&@bC!ra0 rSKdz /'( QIC©%'o)μ>o&+yto&ɽӼ_5IN޷ywͮ.x=kޏ;iIb4x<+ C'=q@ !Y%)/Ɗ⽜t3$7nw-lJ-n;$lE>.&@hX@U!N-!R]-D!hMҁ& `tV V{!Y `.n"Vvp"bpPgp[r`bAh58Bk%5ѩ%{˽fwzחzwywWzWy^]o+ּ'x=cxy^y<w<-^<QbxD@"*KQl,Z+NzQ樂%hJ-tMBQ?FMեdB F{X˥?ita?k񆖟)͡<ϼ&\|2E<4W^L2k2eɖLE&$\2e}uz̘dyukW6dhy)HҞc829đeX2!҈YS;͗.7lM!PbR;-;|=&I~b@:4R-?.^a/~CWu` hLF[g|h@u̝p /'VM B?~C\7]P1a@p֭!K ho-^ͼ7 !"9mͻ#Y nimr#GyPX gп/ $Yi֘\ [΄G52xo?--': \_'#8 bŀd^Gŏ>"?H~Ehb8ŀ.C]nbőϛbœLJH p ddn S J ϖhqY@Υ/s{Rы'd~J@/mɟ / u<{m|ұyafՓкK8ӎ'@,3ZP[P~EZ|H0}K4g^,yxx>ms.^.[4x#;ֱa~1\4'3n v6:$Y͸7Y%#kX!.i?xk .[ Xpp76O,l262@'k ͒$>Y<{?dϒ.?, iȴ?Gp\>,w\]TE4S\C u潔Pyq5T3'K4~ ɀ' J@,&n1G&-v,r`(Ndŭş:N &,|O](ɥb͘T /;|w[?140l_e$.@ԒhǞCq5r.I,$z I4ajr 4,'jNϵI5P Ԇ@$r7G|-8Mw'~,$2'%-39 J{d#u1\/>8"hX ya:,Wo2,0f4k2`!L &Pf/݃ۓK!ϑd2R1[{XvDžTZC &>fJx6惋447S ww 7XỚOw {mwxdp#XȒ@ JӋsHnEOGE?- 9Cljpp:G\ ;=ad΀x{>38"K+U> A- oZ&![gyݟ>@9Akd0))nQYHF"?,}HJsa`VVK ݝkOws4Ct#b1) I1l Ϡ m_tĭM4X;k e<sv1)CZȵŠkl҆,/LӜy4[ni "7GXs  =:riM*^yowM#S]HiLAY G2P>#AteHtvlC! @ !xÊ"&.v%iVJ. "T3i](bhuY2<[j9Zhk/]Q!!(660"ZUvSLwnT{3i\q!{NJe88&qcIϚ9J&bpgYI I}b#Ns묤gV 5n%H0U9JqƚS5n%T>tEԛTYm"b u5y)O FCJN²t16`u6tDU%bjUUUUaȣ9#\Ї_V;+3D)xy0U`,V#.9vuDHf`0!#Jlbx%Zm@ڣ3ǔїB%M]6,]nޛqŗUt>YرY j0V$1Ow5бh!3H*jڡ2(VlUU;Eȏ µኇ8 K#8nv u׫Ν5R3O#vȗOFt$UdX ea5Bʩ8i`eGb3d7jV]U%I_{.KWP~@HAIĉ>\Qzϑ4ǪS% FFKJ1S#]1I_rRvL_Lq&Yh2ٿπuHfZ|fDl" L]WL6i9YYYM1-&GqWFUh1bcTŔ0qt,La`'\Z-mX--ݵNw+!D%Dy4]А ?JJfFn HlJaQbczdnVXakm&|5MbeFDdGVaDW趫'1\]Al,A"zG9֙-}A˄%NQ3ypa3۳P:ImhǑ!sBQÍ/8,5W6U7%G]ℓ+4&gİd8CHP(x"J\QaVA$!SBTzrjZθhe$=U!#+"Z8D.ь$SsAռ5 Œ4kPd>o+M-rip"Umj|cEҭcr`fFq4dE "UXU9dI oሑY T2%&uIڹ-i *Zj(SHҲ-T\CM|2a`7} t|ڂiUsS2*.y7Έ6\4QS-eXs-\d=tiZbWV|[ EU֐u0OD 16Vll㓺|&]3#n1څF/DP@YX1p+}:͈5Z"/’1bb4FtN<铙90QtdZ|bbeGDd4 *UYTZf)l q:23T"GPMM " `ƪE[{vh܊ԃE4m}6YDʵq/ī($#2WR[ *8qM"Kauj*ML!4d:p|lµ1qUod_$ǟ+o;\̸A cUFv0\7OSR_6ajm,( xWfVn'@وsek3 'FhJTN0O\@QѩCvrE<)Z[-NZ4`uFsCd6 Uah+,pxֳ%b~R<RsзSed!G `. F;з Ǡ>>'r 6yBL|@;IDi9WduW0U7_7 Q=n=ϖH%axۤ@`L(4*KNfۿ#uYɝGri@ ~ٕ9f@*|ؓ2 _w}XgP,5?u!./ӥ|bB͂yi s: yH+|RwuqR&J>W<_yK)X7}E3>Jqarɟ//Y>|p(p6O>H/ntpՖLuA"_|e4;&R <{M7\.?4; G? hE7GwN#Ӯ":šs\)&7Jb(pҟAp7?x/=(Kvȯ1hg$1YCq"L/8 dmؔ3œ)G5 \GyX?E(H^5DfM |KA/|Rh^@ e"5<:S־ͳրē@j Δ[ P{#t@ @  fH@:IX:&RoPb?8\pIp`EBN`ha{%Iݤ;1 @7bR'nB#4hB@gR J̌=]`@@&&1)G(*ߖrbB&PgA\9.JGّkGsCߐh 뀠ai7d}Vǭk" ۗp;`i14n?<\9,5X@,N B2E>x}ȲcrOXg?cz$Lu|OzsHC> ?#^yM p"ApF/>˞E jX@\8\F<aזt<ڍc܂m:Ag=6"`-ֳ=ҜD9}9~O%g57sn_Iwğ!y@_8j'$rxrLǨ\5'd܊'?\7?2tӤ#V@ 1 0*  9(o=?`), @:&a=_I), W%;   :p{44 8:  FFq $&/jK%@S~ħJKNm3HDc zXͿ8{U@0` L1L FF+5vxѓBY8^nG6P$bmŵnK)D€tB6Ͷm, ERXnF G/$7!lPFe@.3C fҗ< -)(?;m4@_ёpzs̤RKJK}Iqy- tXT#v%ae#;?lw @ Hd`(Ӊ9ۖaA`'1!! (4 oHf&~ͺǩw"`@a0ʹ `1/K @GPQOou xQ%#z8}\t;tȾi0|;i߁ ȤY)p:!{ `.9g>(b+אW~ isb7syw~yx}aޏގXc7WYi\g|Ey?\N:sۧ Y"QRNY-nhs'~u[dsN#%4Ai).$|;2wEQ Js,|u1.=g @@P q,3ZܼI֤7Of9UzM0Dԓ2C0b /t (3_9v IP K7F7w%sj hA1%\pkl:Kɼw@ cw~-0JphoO `3v!m8 8BB+nXi5;?Z8kA{fýCpX<&aa)&24=Ae pLk ur/(9i8J@3I,7nxhH `5@o O\2E.kgcqb`'H8 @NoGdc9`y:G c=?`ngÀϢP4H#H d -"t%h'kŏsVz0„'p-{y߀:] 5O?aގZGuwwӬ~F|['8X K߀^Epl I%_wx>C#n_2w-E$' 5!n1־Z'H6 0!, O3~ǭǨuD i )pՠ1gK:s:VFC Om YcpfK~314 Xvr32UtB&Q)?|2H H R֔ lBj8,} 0 ؼ촓sdBޠ I?*nK!?ns5d j3|n؀>&WJ{34 @3&IJ<2 Gy0IhOd5`btQ(3tdd@L!bɹ`byy< CJBFS\ /5;JrZ2۰5]o#-5p4䱡pćfAW Yfn$Lr`ln[c'8 `xcx៚|?~=n=r'+#l;uO<x95Dž+H:|:~ rn;RG  ZOB?("_6a$PH8Cos '6w1k};w`n"~6+cab\{s{4w{Gzĉ>by%i:_Xyؼ&dp@ j`;xL  x` 2x`a &p @@ 4`G ! %mp E>^ @  K h<^ R`3pIQ< oB@@P%i%Yi(i/[:r;;9ȷ,i]0@ @0 bHP6@ &('!p*Y0! `.!mhk%!()?@ ` BB~ tn4#$7@d ,44!w!a3wNCfnJ7x.z!-D/;(_  pbLB ӃSWFje&X; @`0n PR_Y/HJ ~Ρ|pg;_-5] d@vPbII!!!! {?ORP5L8 iIIGPhah쒃QQhVY5%|įse{>|`Ǧ- =8 NA_' I`P!t`Tjxgl^Y4aH׆ lx1@`%ާ9"m}zSiH Ђ ~qbc`@ P>.`ސ1Sx .Cg|}-lm~,s`Z^>^< fk|-@bNC@6$iCj `'T'bnXP e|WGĮCa4sip3rx SĮRrx|i/JS$CnV87,sPMbW&%2{~0΀ / Ĵ't%4AIŖZCRBߨo}@ A )졩?W?Ra V-,P㍹T :`^c~[vCNJJ,3?}{H~vO<:iR4nH] Rրx\37KW1}:ſ?x0iiJ#f9-™0r CIԠwϾ̹EO7K>֒場ә,a&tP 1 T,` NKAaY{n_՝[ c/2X (%1 $%/8}̎q<8~zFOA+ now@h J/%1_xnYeCI4()#$BJJ2|v}s3* JFֱcn=#@c6&8͎fv(|#E (raxd._Jzp߸ަP)Z B|7ПfSV+Wӻv|7vQU}e%Y$8d IDaFwwtȮ0:=g> !' KXxFRǞ"7~G 7R[F.rrjR4,GX6DݺP% %ŷ};۳ǧGnxbGؑgUOn۝+#@~p9Tz4/}Sԑyp2X$B:Qp 5g[pءNAH #?C`w^Tt Ư+OJ#ݚĶfLcb2QB$@{"{BىK Fd-pBĥkZ浭%1`^ tg9<nm<ŘVc3{CM1ed5hFHVVkBqٯY |.!B@}݇ h}BkCtCB,.AFZg7o$K VnǍ}jwݥ;[n1Od@j< cڜwKp8"#?MwDM CW;$zXڄ! @ !,іJӸu#He&֮;T+jtiHe:Z]Q2llLbV~}5N!pHRfPZQDL* KPdrvMeuj$X1q0֋XYpC[5FVL PLSE}*[igb+6sA5dG5j"TqV#%HSL 3-1 8kThIS1G5uF6beGtTc$ JUe斩[.om$t;\ۺ슛 8oH"[qć:& ~ԒXBqףx[է 8kVXȩLCˌX(IV)T $ DPiYһ5\5v~bI9b97֟=JʠEMleʞr9W2ۮW_)4ڙl$q[^\LYTj\E1n&TS2]bEnXZeU c2JTHnAlMffȅ#(L4k둔`vWs4S6Uen]d!M,;3f4ʢy.]^ay#gf-oM8m8we6/j;aRAjI2+U*.yY[t2RkFYa*D!7csܲڂubE$'NwMxh[I,t,6)*#n(yV*El˂OY][#)XbuHr4T6mul-˯sí]\Uif{7m+ ꖴǛuRkhՍ1|\yPqp5juˉ0ы(<L2D8ֶi%viNa"S5,ZOuն]ɻs28¾ѥ7R3i7ݒu)I-% qR(:㜮5MQEMD tbnSn^uPM+&M,z:7jJ|N,*hŶW1%5LCI0B,&3EeXEqORGm[>!TY0mA dȯ8JFURJ]qِʽ%RrQZI Bei+4\ZڝKtX mܰx0`vFfST7 Xa\ʱlR!Uubs *7Rs+nUeLrI؉Q"DWHIFGTȒIʡ29Yhg+T-\?}MVнJ?2\&Zw1yfgq 5ͤmohMb\Krƕؓ4a 0SHPW[F-S!QV9h!G `.1Ke.K Qi7piL8z@V9(ew{h $+ji [ )fmJ[{Sc BqrfMߴ4E:*i!z'=$j{QGUl!gr?- jh`A ,8/!/:GaN&],tu*e/.>qh$H@xT2#AZX#0n?|`8꣸@B7Tp8]@Vw7@7soqٹ$_t%؍N;QEYppBQwY=aaŏBszO%pJ3s~s8v4!*FF&I \4FB)x2K0 0n/L(PԔ50‰a8ЈR4 v@%R7$J:|rbi@H dp=h8z!Rx7d&NijH&YKe]t ␑7zͮtR=PL`#B@#@(0hUUHwBɓTɄԔ@Jg*GGHNlKB$p2 Ewq.lf#R.EuVdJpB@|M!uu L {]ou0O I ?NTB_fN/]!#AcE _(h UM@@"h COMKN/PX ~$ 䄡$p19:脖fJF#j,6mV`4WW6"IS&鋑Pɸ {\w[&6zx$ @1 o %L(-x @<0`pY& ?PLPP"jɨT _.L^ 2/ ph D$5!H!jB(|N@`o%$ɭ@hI4P)#@$%@D)pt?3&scCɐ_2@#WVB&!I& v\E&w'zT@4DPˁ>,,2*W[ u2I(0Rjb" Aep$i_p@1  t(X8J P1R‰d27L&` @BG!{ `.!hQ!T"ˆ4"i);w]0 D,<@*IB,B@ wWQ!2j$UBj .r@(zEEL` rj62h/<`>#p!✒R8%HBu0H .ÊTKOF OwB> PL!%CRCKYir(It8CRH%B3mDC1;zGDl`FGU: ϺrdY1rj,2*ar$ɑURbEA MɪK/ R+ߨMIrj,L$4R<m00V2vJIS+%pvM ,Xi HACM!08hAeLHGF Z`5)BBrґƀ#oJ`~ h$z!V`"?akUϹjU <Y"OQP $ . xiqe ih+ $@| |$h" :c U|!Ƽ!' 8.- 3;< O0Ŀ%CC'M(W@oIChԢd<` 5,">`1 _9xN$t,tCm`6tj !Qn@-@,j@GA˰" ,0gJ>%G)gDvݳ]H v&Ϻ.g˒ooU8y%̧S!%3<E Ox|3Yhhv!ɅK-$<\32خ,KF*J CPU7hd#!P!1 SR3 fuhc B9-Ɓ3dpB=_z`)DtseLOYY@<@r+X=Nh $_\aaĆ$33ItT4 `P,N=V!VLp?(^$Xa4 f-\1 ;ΊǟH ]([B#y{o rJЀ0V% /}-@ Bt^C:wHF$ ``I!ErjH[rd(WN8@J.<)`b+C{GןUADB;+݂JaóمEfJ9Êc*dX)2n>BĀf9;?Gmt젳|\hJRh8`棻)Y؈0^v5M-XL(# |Xi}Zy̍n-2W2)) #%:qY)秺0{]j1 Q] c_ufv` HZ|&}[^Ev"R޿z]Sv]^3:ʫIInČ5b;ݧCAlxw{>Rŗij! `.!>А)~!  AOB1߻7$  Ok[D$UޖvHGiIn6K^Gw. 8#A#]!&ǻ鯸!=B-mw1 Yk'X8w"Y ̉dCDj/U)KZMzW  3SWB $ B  Ш')9҄8 Ӑ[Z}U!'wdv{ I. ~FC0kpP4 HG}=ɺ;W$w?"r b7|wwV #!jk֖w 9X,观;_D4j8n8m?]O^:؄wWK. !ڭN DDxxv8ys%pㅒhwD0h"7JPwtHz!CJ B0YJi#Pyz{ Px:y'(<44 }&_tT;P?9_vVFG0`t6PI ;g'o@# JH;Qfuj$h#YtmF)@ 0=Au}GOxg b<D$ʵ R #!0jg`V#!ont;8B`4$N.y54*tu+翷U )#VKamDsmWmm[=<t+}qn՜%B_cQB-Ʊġzj3XdQB$Ko1bLC`"GbqwW€ҔǽZrRg ӁP/OmҞup Ĉ0-q{dz7|;Jwt tX= C[=%bHΪx)F VS.!}?{=ig ngwcX{$XWtCg%ݻ3:!Z+||,_.Ni [njZw :;47ھj*7~xio8$/ݬb3g tCԌ !ݓk[>zy>ֲ~R $7< _q%Ǟt^ ]G;OEadRB(j= +~S8, 8%C h{[pBQB1d1wwj[OM 'j ۾JSciW^"G8` @,t߃+ǏZc-=yd!$Gx(ܒD6Jk/~JR5kS&  Y `HHH' ATa8* Bd}4G4on>֧D& d)% ~CkMn5/]h,I^X{ 'v=_g!PmtCeBPȄԶ `_풶vx/KwtBg}./wiwvCK?";pL; ;B@+!Jx"#u '4#JVp/ ̄5:@a!K{O; vA `:z>¨Cgh>!|# Am= |/H.}Ob(  omr^aAx`c4F!, `.1dѯWokdkd, ?`1#wpWS]H6!a X-[ɩ`AZg !&>HI( (g8oB7}UPQ p)$DfZ`qd(D !jsWQ+\:oV5k8DI$ $+xـ2R5 W&oM&y`f귓uιֺ :eBsR*L$vP 9c~"sh %|Ȋs|7,}xfr/&/}fS+~X2F@Oqw0?߿úVwT;sWU4ڠEceĿPa 8i,lЂQ##k%F6NO  ou_%8rōܓUQ0 a%r8jF&~H @ju+榭uaXrr`0 ZCWH0`O䁘X\\3`N*0$~-@43pUL1_hDeU@eS$ #$`a1pH"NiN`~ Vrܔ!)30ԊجVFFc#mJF~t!8NVppAxp\Vdi  4jީT {]oPP@* L$\Rp(& cEL 43DH$(B `,UUU tȁS &@idħb ~P_0 g4  !}p P(a tp@D wYEB@&t*GWR]Ѣi'V֦uXB"D]C0-" {\wXV$Rp*UT6+( ATG\2@ $Ȫ| @H @%S$@zHP9w`v! S`+%B, `(p#  OJ Є_%>O@% 'I" R @MJ7PnH/5o5TUuRUTz v\$ ? TP{DP#9@1+uP- @ H8_$tJ -4pO?$t\( ID†JZxa1dԒ"bi XaZ()%$d $1!@ `.!5!`&-c!)$<|RQ~_#0m`J ft Ј& 槀 {ueUkB*17HW3 _00X pʁgV B"P*}D;LGH7␌K-p0  w. A8m TzI% ,iͣ{JzDbFQ0,`'O!0`i'/%7ϋuK@{FO Eb)F@>j@b*ЊU[ zFWPޮ jET]A_U)` $Eh WQ@" `I,Y C@C!2H"0 @ >Z0$( ֔;1ƊlaMD]S R{j!I1h#P*9>C!@jZꞹM rn(HT@&Dn*UD&ETEWSTS|8?aT `˻CLX- y) $ d24KG@Gjy/!#vKI``%=$!)%#ҞQҚH`H#D$"<+aC7Ԑ q$NK*ړdnSF1|YE% )#;@~0'wN &,IFw k`}c#^-)) '~b 4rspY\]RIۨ05% 4& m9B @ ? ؙI&S X 5 Hgx>J`rx`2\z H 3OQcIdp@(Dv6Ɂ1 `Tr` w$5\%B& boAQcŪd 6J/[ 0ÆHD~L !! &2X6rOdtXFA-·$H`y g7MhIDi*2hrl#DTB(d1|$U*]Oz˯M /^\Q]y OpM(!AA< Y + J9(-Io:;>]rcA"@~)A < ̌McHa@Tܯxg ѻ^H+倱h3?5QAah<~͊k;0,5ُx0ak =ŀ -THF) ݴR\j Imr#}ܔppOƤ-y[Х sP +p΅#^A,&oBoDY@MD)%~ ' 4)3rAto}k*tm|)Z7=3&W5 DBKE!H ܛ"Dw0 O$g.7f?p瀎ٻc8Z:Re 0p.J2c1ʁ2RnKRԵ9jZǀ `|sBrvoj {TCȄiHBNԒƱr{k/_br5ŋYҕ/{vwBnmM% ?:nEn5=A+%'ԅBg[n,*$OxgwzRGa< ?X_RTQ<:ٛk"iFvh3$ZZh`+?KSN!O{od[~R#_BP"$X ē4"ԫ!oeeHFXsZl?55z AC,-${ ~S0P7$°?`/ !SG !f{ `.!݁3;XD$YȱBDt$ù,Q~!z6䥭ͧ7"me{ƀW^"G89F 4?Ґ<;CkHowD:1=GD')_}v/Hww-  Y `HS >)6±~t?s?1O  hK{ZԯS>5iԱ ~CkMn5/`.eI%WhEo jaoI7?j)fƂR5 õݶ !f{-x]͠i9)[ le;/@juj5];@  ݈^e Jx 3S}J=x (K ٥8p2Zܭjݗk{INj{R vCS Ax~׮~ "<`mp;^!HL +7i6 w,C;POx`otD0emk!Fkx:cS؄l<ϥLS" 26:j1%`G3mmC(WR)Q /`}E@Y$pd F0EW~ yZ |B1]}4СP‡?3PQ.6㱘3{k9Z:zĩ- wvsމ\5,Krci LF0[A, {AqJ~sP~va.Hawwqm.'Ԛ!0Sb CL< `4̄ñ1-Ks)Js! Ѹpyʹ4 Qhj3ڶ!rp^'4jx:{C1 !1 V/_ȁv1Bm(/ݘƷӋwwK_`KnvPKgfaf!:b!6ݭh&6'[iOzo[nAH6XM+p_v 䓙H){[k(oFq!=-} k[LSxw[}i~RA8<д"݂CО$o|mb,4~ clfRBUFkkRW{+B4p~S0 Rē})[ބwtZ_wt@*!쯶D/7Ɠʫovk+&4W^"G8hGT hwpl3|-(]hխ}ږX lkx 2+MtYOjBun)+JRܶ  Y `HS <q e=-^~G2*O8A>6{D:h}p (Q %g5ĤG N$1 AY,Hu5ĿF Ex%U<4I<.Ty, U")VwV#|0ĠxI8fGMx0-0౼`wq{u1G|+nJ?jz  7VvkUF9#ڪ\mY:)>N'ߨ/wu~sS4H@ $<@hЈ;fd}rP7nߋQ#-xpsX 5@ lqwL)?~F)VnN:;S6\%įm|c8@I> ~4T)Mz˺ϺW<AֿD4-=$. UUUY=zúSSwW}*H$j(,@ RT P M pK^$cI$? (C<q'`= 0ċ#E00P:Z}[ЇPҰ/Px/],8`PL .L [O$F68 HH F% ?ԁBdXMXژI La$fGLLG$@+c@FNp +0tVUUPj@M;0&n$>hJHÉ`hEV aqX+cS!RWW ?H"d& @Q 4 :ؤm!!:`0 <7>0g` $ O a  cbb0$x)]!c(DwUM]#0, /07# ! H xԂ?C?JF䤗ZKBxr@z8LH/@?BP$I&jA`]o}P"_8:\ -H%ƻpvBFۭf4rcW@t3( b>b@R $huB$9*U@P+`(ɩēbi#@VD@ @`$$jB $' _$ S"2Dg51-h%Vu_(v}ӾF03` y# 4 0C1h1(.v` +'&+?SMH]]OmptˢMy0M= ` [0S*Bt!1 e L]Bg+tz@aiT4 HAh$:r JCvr(/7 J )E2L0'Axϫ>&&tdv(E!+/HH/ꩪ(UWUԯuu'N túL A #< ?0pJL7"FTA` @c/zJS{$HCA40b@jRII$<3h@PM%$ nQi,a AX$ P%jBF H@ Q$Eb cBCAd?Y(4  ]&C 'W .Ld߳]ޯ毩MΥ rTP.H6RbA\`ꪊ`D#@#I"+Kƌ ȡW\L@0hHJB& BP/pqI(vFU 6+ax$a\#\0rtqP }4! `.!Ѕ]H wu*dz*4(&gXi#uI51 @dɪנhG `&D f 7ԑ01aH8 I6儃E #lA#~ `Z=#;`?龈z {SV:R&~$e' }o1KC1h wZQ(59/ Gp'S! _K#dd{T<Unu {.Ʝ9UB8 '"TV P*"IfA0ԔoҸ΀ނB*,(a1(F(#  "'P``ԔQE ЂO-<SS脇@gaO]ep)y{0ش`>DzA0Š6 ?4G)$C!k (O HIk!9 `sO_^r_6osvUM\p SiVurr8ތq$?W@ ϏpI6;G&>' Y#XbpnHCV.$ZLt 0tI>{1L&Fd5%1x_",GXo($%.Z#x+Tj5C{W3c8}ªe ~ ,o1 ܎>5u蕿/ :'aZbnn~@&&|i5< HfڃIpԂ7C?(k/grbj?{hq U@Dm`` @`!$ߐ!!i$ ᛟ}f椏*6`?kQ@>0yƀ z6B|?Gژ i)!@:"{_`=S@{+]KWZW˺; &\ʋ7{&8A](}OCG;ɁšN&h@l{<gq@ڍ19k@BJ N!.0!C+-%4倠󤡠%&[~sbxG_S~D0*!脖jҟ1I&Җƚ~I 'wt:74~I% !fk_C{`+.4̐Zd A "wDd3D''18H/AW] -4`R >%yA54 j Z0N{:e)hе}+^g[ݨd' 1oe9-_ 2X/'do2cAT%5w;,zpZ_H$p) < '#5{!CkP󐟀@7* ,HEiy*Us ULDUy,p\)/nRܼԯLDPUL(B_ >lS/:Wќn=wCzNЂGj5x(+S\C?ˆb")%%&I9 2"h}|c f&Z3BKE!L`Y.kw{`/Hx6P'@VMwm !fk_ID7 "A|im&û]ӤS>+7{'`^w lVF̣&]ڻ{Kj任na Ê3GNzk{%-wwkZޒC <!Ϝ=8 (VFf[@wm5WYA#  b> t@`=k(r[?ӖZSPU{W!%"6/#a7I؜DDx?ΞB[%͚nEkm 26|J!G @ !48Ru[IAea?nZuĘ,6JUiEkF Jg-mZӶhvmc U!`td6[TԖ4I,)(=M5%'Hbu5vTD6 .IUe),.ۭ:ixǜw1l4˱ z3'' efd(vc0h|7]eRbjfpG6EFppU(1:Դڕ5^uetk⛯~ez+;t45M-hyf`UIQ",N. V, ̐n;I:Z/\m!JUhme"JƱ m%0Fʗڜfr Vkb[G4]!JyIj& ,6j3mlMq`vFvDD& Fi%nmR q#,Z(-]*5WArVӐeȗj VN/=Vxqb܆o/"4hG_8ԑb]B|N[r~s-T^NSY[<8ڬyBGRDIg'cU.0eeDDùc*X&dhe_"E:2|)FQڪN#g![kO|]TPe1I7wCv\,$+Ӥ^5TAf~hg]$X!L5ObeFvDT8.EY]b[* ,n˰k3E6[Ѡ#L!m*LYi?F-GNf8q6RI]m/i3F\A mN%4R> =W1wLfƆ]%(@lFz]u1q0^(n%LkKR&%]_'1A[8Zk[ZC `ie]QC@㊃jS>|]m ~>_Xc,moڡ+r,TZC;9eݬpFqI,q;Cc-TBD3ԐmXi)4i`eVvTT6X]k*-.S*R%υ3D򻘥MT1=q!ho\z :&I--Ad(f4NDܔbdVfWDH`TUaV] l٭oVdf]R' 'EoEL'*R+M&k_ eZ2F"N5{ SU*Vg&"hgTD )h٫ǘX6$N9rcİPL %q]nTAMexԧE+tU&IPpJo,x-%@ X\E.jJ86=5ɣ*Jj ݃ѶmMM˨Gz*ϫjTnZ7{e1PR05aVJu P`eDV55W Ue\)-׏u5D[JnKwq GPIQLme:fOc(^p.%J436HRMY΋ԯUeTI4ͭXJڪ"KK. 7SYD,b2M%Mwz6h߭r)M+N71L;1p)+1ùZgY*P7D~@>eЍ]Z@2n7HˇjMQKu]榑"2FnH45k0Tȃt,k,uF-p`` lq= Pfa7LESB:Eed&Poi@B!ZBu\75R**֚U=SSN˺2zd#bAOɓYRjL2  A%0=@0 $HPNwL_])UT1LQ,(LJ@,A ~MVXp*  ,(p"`T҉€JK!HPD'N%eM!' #.ߠ xɥ[ _{~G}u ~q܉w.ww\st PP??8@1 H-4"03b4 uR(ut!1@0h 3D `@ 0WIkx :&?1 J&%cK)`O qsi#C^MJwS @sM @[l̈́lNp{s/jjꕪB04I $`zO,7JBI`{`HACT HJF)<'@@~f! <u ̓.Jtp&@'A#G6Fj KGQ- (,4ED!Dbg ((vX!<.|վ]a x@TR@'C T PPqd2AE-2I0|HS 5/U ;1$ބ$PJq[?OQ)t$g7$6bnH> a;`زv 'qD О}= oV _P#Omi^^OmMıbyU?$Ç%TȫQd 8hF3HPB\u xIXy0B`>%nI^: ,Ih B(Yo|IJ/s 0C1GFĶ&!N7 &9(p Fz#Xalb6FuX&7~2B@ Z ;pI0Wl(Rā$T$w'`IksЏy\Z@8Y+u{sO<(Y'=biX+ѻ('ڈh3ȩ9$jE/X3!Ϸij"Bc $+|C! ?BO0gB  ݆ K;,fwq+BkDkHpx< aIց閼DTwRWD6/pb orHwv]JV$?| 5}PT' 46O)aih~Hw_`\(XִAַb^NC8K쉓 @_ܖ!-Xi+"94c߫kYkHȥ8_Ǽpx![@ @5 uY BWDh#"Mk!'^er֕^8-`k(~5 vn,H(_ uZJ[3_!;+YzDn4cz_SBEȀ2>6JC<0 x^ @dh: M1~S6#! `.!I#ݟ$SmP{K{ò}"BYjJiWky2W5W^"GC pZ!O%iZ{RhrN"1NCBZۖ!= wQ`Ƥʐ  Y @[CY%{$NZow[eHO˂0!xg{(~@Z6ZR^iı1 +8 ~CkMn $^JX>|-ShhـGzM!m5=ݓJ~I+'x !f?)@wp_4Iy{ӯB\`ބ>$nR RFIcxB7NEk2^ 2<h| BX rƒ祩ԄͅKj%/nK̄Sݚ ";tDЃa=pa wCU_tO`Yς)쥩` (0"hAqh_0!G?25!h#VWV/Dڒ$x<6 #Ď+#9 _`JMC0+g# lk@)Gz~[A$_cV?U8 @]^UCzPAy~Coe`9In=wMY{ . &&Y+6/-\ `a_8ƆW߁)@'6 g2/{_~6HB_bGl@$)#8֣B]i#}f!w)!}} 4-kF Ʃ8-=Ϸij"Bc $+{^^ RLf!JC X$8.xkTK!S'=p S wgxֳJq KSى)2!P'Wwww1X/wtC`hRc\p?[_ke`FrZ1 $ Šw-LHc彩X%x+:p> ZB Ʈip{k[n V _aI۟oD4 (jwoWЉ80Gy!֧[NJR|ׄ`ĤA_֥}n >bm~5 tAl]ĵ3z/Jmi% Ѱ& K ' kwwCR \W;V3;9(VrDh|g./4ƀ~SKB{x-aXSN~ CKRorm=m-rJo-d=W^"Gsᰅ<$bwp' B=ڒSO/1H!ԤvJmq GK[=,ՅN  Y @[XitvH{kh EZ֡iϷMv!$/1,O  ~CkMn ,^4u2Jǻ(w PtCyw!7rmHwfھE<+E;VZ{jx !f?)@wp_4IegwaҞU |>00AP dMwgWp G}1J3kl!kp/ rƒӛg-nO۵xf ݅~bI!$>l {E ||Oe-K  *v^&|  Kx/&~4{Wi_{VBVf!ɈY tE!nrn\dږϺ@ECӁaoX2Օ7V69NPWOZ'hBb@L#Czހ$B7Om\ozPԠgPD &@a,>[oU ,ntwƑ`K@އ Yl CQ8-N?b3nG ^B@x41.dԝf&JY0 b+7@P0R|MY  9`PPa7Z ;J7=ϩ H%(FJBSײV }[<\1 B0dܟ߯'?f ` iAY_}!'gt2Y {Og1v'l_GFvAA+=`hɄŖL-[/(&t`51 )I_5/Ɵٓ1h_݆#z;TZ~/ߍɀ1 A4ZJJQp;>К@ B-5$VJ[bb_Fd$ H@03/!7,I_ gl5_G1g˽3RX`a7bPo5|tV@=ٵY`? 3PP ``4YY>xgQ߳MӜboWxp`;0:!`ɜM A'f9. /&fĀ49$jώW'o+o9P|o_ռ}to.ɽIK˽vN}tywͮ6P0VX!BKHo៷{q_؉%$"^I(!N~[;}Ԭ&CP@lXhD4qi %%9r) Bh& Q1L- ޵$/l{q0^~ïс@Ġ(38+doơNsRA2Fݜ Nsu V(̻=İ 0 p΢N/hV D2a# 4Y 0x5;~Yg>7(5`߷9Xc&o$hՀCnL@}qE(Нۧw2 Y7Μ}M/E7~=en.c˽{yw]~[ӽ_][.WVZz^mu<zy{G鴞ݡTS45!9=h˞Qo.xiNy^4$gb;?  ayr.BSy]^zz^~ywzἷy>\Y w&/>L2ZY3ɆMfL7׽͓ kGͼjxp}-#/Y4{@hc l$ҍ^S] (ġ~UqeZ%hKtUr}H۳4<~C%/jJ?n=_LF@1P1(bbK(Ba[?cY?|t=~DaUpx!_!G @ !tqA\Z{(۟Ւ-G5Xzr]PQ*R N++â\V-"(l7Sse\ϡk͝I\l 4U4q1ZړMFR դt.3I4d2!QH{veYÌnrI *BMh3C_!bFtSM8%9"[$A.d U3a0fX8Mّ@j-knUԬ!ySeҢ9_SwOn*שx&כgL{iņeHAZTJӻ0*j+#k$befg53DUEk.$c*#,$:I%AQv ,G$vi8kHW *:E#fOfTeY%-㇔@dMЋ.޳5(JXeB tX(#/XN铚85CSijBqmRtDom!DLg٧aU*H٘W | |R(%Ֆ^mol)P-5ΛpԈ/FYG,˕U0VTy(EluqĮ%1`vefVDTe7~ꬮlM=?=$AXk؊rs|9Xju]=+ȩf]7VAtte#캟d"PłDla+/ֵWg;\'3:@bVTedRhbEzڮ¶zӷf2Z|Ŋ}Tl6Z(xA'fwn"if;WeБ]fey؛7:sC Py[CU$p9KOCH{n#cF_+~6`ǜV1Ne̶q=Vi T4Fef3C=a@I,YHJjz"6҈d2j4r:u} 7ٸlK{]z%N?4;'s2$ׄ /-n$'="ѓ o:`gUfTTDjIY ʭ.sY(,0QHgRl`2VtF12\HS0>"VdO*PG>@)0.Yq40/6)+(8VcI\!&{ `.F⟇ hB(1ҞLD[NX# S(͑Mc2q@-d b5=ܮj/.8@:@`b3d#{0 lfZ i}<8Vv A%HR]$&w7Ƭ4%y$Yiֈ- h#ϋDSB* Շ'ϋvp1,<47ip6O/Iv|[<ŋ'$\|?"ox6lO .iȲpg/|1nl<Xb|d pbh`̴ ް>qN` $Yv%?~70nէgߋ!'Po9)Cnj 7ݘ`Ũr-`Rl-߲nW75ڳC)$'u4湣72gwLHai(w8x?c=şP܄@he~oZ9jM&w|yCu~ΨP oR,2zļs=;ĉ\ikƓ4/߸XM\nf'ہ&.G4|cc?Qē3>V9\<-#y|qk|r<H[EYyGyrYc$w>/>O2kHyxbx e iȴ:#t;C}~Lux9xi0 @ I 1[ߏ4\2\|r~vXX67X&-6OwYq1F$Y%# oֻX\۬|2\~>@ OOGxE:踋 tCKC\|y 3x\ᡎ,y5,JY?Ig-OQ>tPݺs9Q=;I`  Ģɥ`/;~U; o͛-L?*XJĹU; A- oX#<dh9EU2d8zRH_7XzDP&Vv$ w=Q"PDx[XcwR@kO'O'~OㅚApde|q?b]tfr7<8- snu@~>7:c;[x2p =:@@M&?@g Yhφ)اnN~_u ~kHI['<8}A tc=@ac-g?pn?>#E4^=kaޛ18&  G? hE7GwN#Ӯ"\K~D.қg`҄/ 8jzNv+< =(c܂)g p(OKG;\߬ (fBNwD-f =}W܎c~<ʉN;ֱ箒־@0v!L `.Mၨ8 g 膔r;@  %h0b KAI ܠ#dhd?e|C;![Z2[uri4JK>N~Y`T4EK=]ۭOϺK'p"x\CSBRۧeLHdC(ib{0`!^h`a3@{D%hwAA 07>  ၠ ӛh-\0Cs&J&?ZP! PA( 脽Ӊ/~ʽ0 ĚɄft48a0@3-nw0O@ cĘn&b2e=1 *p&A'A '(!b1ë@@I[~['wq{2LF4@ + zRXi45%de!j>A#;m@ݒggŋ;<L4y0@BM&48XiAric -,5O2,XfNNp't=αҎXOFwuv (@hksǰ` ``@4pzbSha@]!V]x %- @,0* tBtā_߫PwzLH p ņy} nn)|.jtZ~)U&~<^e]ƑGEC8qN (?~XYJ>(bmn/:E> CV^?~ ?̀ ק<]v4>ckvzi sbý\]7q!Naޟ<xޝ 5K9y8,!xind6J8$f/8,>d?3Ny#bNwȝs'96ǬJ1ebơ-}׾}Nz;6HO@< 1 4B&Q3BB]F9-)Ẑϋ=+~|vLjy}s6JR_-=)Jʑ Z{c[dd |(E>p9ܞH`{[q{ 3$nl%5!J{$ݲzۥ|<0N?܆B߂~XNpﻅ°W+_LJggJ׃vC˧ }۾S &lw#z@5@ @/~p `Bp 8o& G%&`Ͳ6B1+a[e5b@ Ih R=xJ<W7%7nOo:Й@jF_Jz՟!6kJ@H=`J-:dѥ(oi ,o%`>~ eXoO0Xˠ;&@a7 Jsgd &Y  jCzC~͹}eg2F4<qd͸A;C,u/hq H!t'd+q7!%7ݿeg _/}׳l,Q  v7Z ɩw4‰@xLM >+$ Ĭ5%Cf_BA[Ch7|Q[A`a[(dRRQƏA.6zMȗ>v/%:܁qt. G~?qI? _M/XC#'>q?1y[u4'20j@ NZ00 7'`<0&LU9dz@+ 9P`@ Jzx T3 H`&Dg<  i( 43(i-n,PZ7g#`5 TX 1H   0 D01H8(` ;`)t! z  He@ fɈœxH$|K0aW 3-=f-I;D :{/p|M`0Hd !%t6ڈ@ HgIRa0Q0$(_J3]~mƓJE &V`Z4 4r!!@u@tY!$>#!~n@@dP`zC +rv,0W Ah 90 Br 0}/./JA5;J'vG 3wb9&*@B$b2P@I7=@w&< o0c#T~8Eb#bu]12CF h I[o}NNu%4|[h_; O O|xotA0{Jn`7@h=.vW6@7@GYXx{,\VPac@y `C)&srő'{ i3.bLҸcx}"V>Cأ^;JR%r;<\4/JSc$3V%`i CV`@o, m`1ɣB L^ğ>J-$d7v- c;=( -ZI)O栢Fϣ~ =a!sG @ !ciUCx=)ptU˷0DaY)E!,g Y@qں,:,"'Uϱ?6EAj^,J-S*%VU@+)Wb]9ɗ3Cb4R$Y~v;f(nGh_qMbgeURRDIœEh, tenn̴K[/RObҙ[٭Zk\#--fںv浙342z8tRTi],!e] Ū3eq 2sMAh"b X_SDw7"i)@68:1ZѺ%i!t-뜞+6+ZfTeۢe#Yˣ`ep]݊:-3YbKѩ*:bjP,т9`fvuTRDIEI܎j貛o-nZZn*\z˝} 6c-TdU ]w Ѓ'!Fȥɵ^Q'`$Z'7̭8Y.{|[p&JN=-[T3y;iO^Q>" !,ʬ6;gO%-D2C8g$\r_>#7B2l?EF.0Gd鱀H|wML[:T"%\8ΫyLzm!$~od$$YKFS*.bfeT3$MՏc`}?"MaZsZIۤe6 *JSЙHK[M\ U>8NlCde^ITո'UKR'n芽eI.61%J~7Ig7{VktIe9h$5 r\m(N2Ƥˈi] :ͥYS[Q5 *1@yQY]4TWhBVWsK#K(5yu1ᶳyMJ{;pɱ5 ʢӊN7`fUVEUFbU܁#&nQA|.f-r8Qz{l4LfE#x+ۗv;C 9+B2Vm/܈y5!ԯ e"angli9vvBj˪KFVebȸrPFXV$[weWn&1sJƫ]0ZF*ȣꔧH-C܈Τt rΩa$(qؑ 9 mcY3F" P֬r3RǕyAQH0bgFUVdVQv x䖚kG^PԎW'n{e-Z'FK}rnm  tdų'$D4֝v4ܖv~y Բt[jT54K0A>Y*;k U[d(gZywu R:Vo]ȕΙ HF(~>lZؘ1iRoqiÔ%>S8VW^$y6u}"+2W1&ƘJDIRڎJ3]LU1IK kأQ(Ç CRʢ*{k+1`gEeV36Q ʦe䚙//֨a\8t/u9Pl*L %R*/ rQC2#+Io1uslY.JƙL'Ѥ ވ8sAN#S"f|6Mfn[dj'ӉUVsj:4l!TBQWV8KTNWu ,z "Wl[kiZrqcb3+x-ًEgXH[v.=prd.uILxu#P!{ `.!PR1i8`sUfR BC쟒(qxgO P̿`)9)(ahg~@ %TY`; nt7XjY[ZNH|6ΆnW1bA1ōLEMdZ 1q <i%{(C&rn >t} RW_w۩KYet1w hZ @FƤKN7]& ҿ_Q],, 4(O_;a y* FAiO0 ܌eg[X==>_B0KJ\oB? ssz7&=nSahJQ>eg  OO{ eV;~CI1%]3)%;H:~pjB?d#$Kv9nZHi! OWa%(nG퐎RVGcOV/3ʟ^b  %;/mx2CCK)|Ws\2PѬZȴ wY#{}>{>} Î'-Éq7l5a^{s;;(D0+ ak{{*J12k1(%,K2(!ƒi #{-/*y=( .y>%hI;zg/>JҞzWE٭ikzS}KJeBY朾.Ew$w,6p\ >HF5I BsOlEvbBQ{@ /LFZF;%Ax]^7DD5s!UbM8k #$ B0 K4BDgZAɰ ` ` `>зR4oJ J@9e#ۼ]0]px4wVkǻ,7;ᐏzܕ9X A#BgJB~Q F a2 82$Ѽ-a$1B ռACF%;cjv K(JBG56ggww!l1È K g' v=>to~Sk%94;:Z6(>A#ҶfQC=jE;~wyoBC {wW^"G8ӛp` ĉ7qpA{riOJ)u/{ 7 D9[Fb_:[_pV0pI94J>o\Q#z |? 0ʮP{:3gMĠTbE9Dƒ8#JSpgAoa!BS;-kv!$I R s EvkAXOpW=G1\(( ?= dߍ21oCD*ohIe+Nwv˖$P,Z 0ZpOL+Z} CC0DXi@& AtAnJ]ia"툩Ou!@+Jܔ u]$* pF !0_5, g$Mk< [|pqė~Xa+DOpaGQc\XaMve   @|A/ -݉'QR~Q >x(=x1p>&`k%)F$,{IXVe %JɞV>d X{'F(X8' ! [NkW_sϾ~S#0SxLp_AYbĂ#owy*=,${0Q#ɺޫ ~ށ!-Ξ{O \߉Z1W."'8P,@CtR xV,<b{&r!ptDOC<wd^F"l-4!t! \P FzhTgm>EWkcu E)4 З}&8Lz9:DЕ⨋F"}Td?SB#2/PvjthX5@wE4MB7d q{wO`y4eЏ RuQGhwTX5=h |gw\\"O#B08'^ ɸ9|hDd'lEurHߐ "ƒtV߇:AG$ͱ$%(4 gJtYۊ&33??ЌX @P d |ooS ); '{*Ȍp5ЮЎ}]kܚuuyTXE gcCq0o~Q3ә% Lp bD߻td.-wŁt! `.0 _Ē?H@_b}@x!-҄&JJJ+wúCսO{ą|TLUmq &'$%nrr6"-M~>m=T|Hm$F嗘MeiɼTؕ@1HaFҗvI>QcSTP NZ6]zseKw}Na2ꢪ*EԽu%\!C1 4_W+gHUiNJSSor|_m8jZEL9. ep,ZL`6j ~KϺ{w*U0$UuVW* I =Kk`"\ j@!Hѩ Zpɡ;i7 N(XЄ0@RR2R^$j@XI P`3, 0J0aA& /4O,`W I`*> L+ 0IJIdL%#!85;~ZJ-T 'gAW7jXaaG-/mӆ$Oa-hmդШu!Z|vUQUR.$UE*Zc un@T<0)H 04lQ`=\M0bh#4ĀhP @.&? #7GpV/V|& y% sdL X K&l P  c@dgS% :@mT"mDb2n&te"*b$TʪQP ,tbG|0'-A&,@`w71HK5 В.7bXGQ|+&J(VfW)2 &9{o0@ 1>C0P E" :!`hq@ [eVHzn& {[ԝuP@?u5$ JI5% )44F47(MJE B0Ґ IA0I-=* @TCC`!zCO<z!2; _怯q! `.!($ (HGD<q{O =o@ pB7A# uVUw.hwU dD H^*k*! 7L$ 1 TC!OԎ7;Ej(7_#"vx5pbR͸ ؜>B 5fp7p~ DIf P'̬Z C@u `4 {Ē_hP-&W/O 3`@5 &f I1( 4bK  ' F4(N?'+7AOP;&>[Fy\.[=}|-_FEץ =akO\NVxŷ4oΩUAoВD"7I|v3?" bҁKRR @Q0`mhl@@BLE=) 1!_ !jL&$ ŋǵ 8LBrd3Bnph#LOMިH5侀,&P!2_ݼ:7L6Kj7pxЅpx0F 5p$ 2`{?)J1ZN|&9AAz!ǞCkХ};{wfnPTh ,@n]4/1=g-"Kh6/!@@j }DaB|xbRiotHLSCYib wt`$ r<0|? SVPY9N(. xѦ}S"A,<@'ϢԏIdîѮGd{ S` f~cG,2wւh#o0d#wwpvO{+ZJzFiBa#D5 ~vb+`V:<-4u-~R X6&v4hxJùH] QHOzrxѰ钀%ru¿(=#_Bҳ!> cl:`}9 HW^"GӛB`EXgc CZ0dOvBSRKŹ\ Xໆa={a8}}5!5   Y{ `U| ,_dIy 0.v bq kGdM읾mFt=d‘x ~C $=h/RsZ 9 Ƭ%$> eN^P;&#}~Q.b5ߡ,$O衛A8/EvȔ-&&ZΠm vx!fj,ǣ'!G `.!= q@3A$AoDzUDu{c8#})Zם@QB8lKWR<5D-'=?2(!ƒc&Ѕ yLLAnф\px= ]\Ceo p"#o xyi`%y[qq6 ZsB*_k\bIp458&1[n /D60|>,^JTR%P?Q%<_XCev<)ZąKpJ EWQ*{RyO's@~aA4 @& KLՀo7"&&48GaFGt1O!2{y7{spxG_PB;D4Pq<wvqpݘ> >}yk "f +?I f1q Z86ݧJz7o@w1IN@^Ձ~éNlh L!-{[tM’j{B0J#S>i~E[h"?PYBZ@"ŧ K'`BA(jEN sBp vJra5wpX+7!bG8[ہL:5T2`,Ɉf5_D<ىOभhAB!/} Ϯ& V± `| FωqFW4zC;/`vg&y.Њwf@Datb(ᛡ'o&PKF#{Mц4#~WDgPݑX2 Q;>sz~NjcQ10[꙽؆cl97Lx3~maڿܟ^'ߓPnԷRSHʃ  cLUh T[g8~ ȎE#$ ,sZpa/n;>P)u# @%@I9;7~!Vn19^q򅓎3#~w3k4!|7߅ L=F|iD,=WRVWtF;K@Pd"0 ȪΩԧu2_@1B@Knj;Ƒ5F;$h?%c{%TBCL/ft !{ @ !Pٺf87/ܮ6DbvVfV3$e%o}da-Tk?]L1NeYixjjJ~KIL#e2;6Eѐ[׶P'Aud0E5E^Uvi Wip*JLz3 n!I)Az,..+"!s6{ԺGmq< ;z,PYʣɺS.D"LTeQN2^Ku֊ en]ZsL H5өwbTicJsgɾOd6(ۈ`uEeV34 er l l=4't%fMT+US5O4KԢkKFtz[ Jma1Vb eFEZqR$#?-*zF^q))Ec5!zth*̵[T!d]WGP*bHZ:(\Q6Uԁz& )kiO (5G:ˬtb)JI¡ _hύ5%=MEmКwTg!s`PRx4a&jO DG,.$B쮤ɵɈ.ITnjڀ`vFUED(fUaȩn˰ۧkVKJ&8j]hMlhۋ(C+RTcD+2Ek=Idqv?IUdEbIʬcXTS:U)NtF}bdN%kTˣ]rpTLm9j86"=A(;HJ`[[ "2v[3Ba$ZKu#9 KEyf'M!ښDK#:WV|RGO[XVEʭ0Jd|$쵊dŅĵ:e P!aAbwUeDDDTe䦫,l y5thT!#I}CP|Ѿ34cZmcf-d8jЕT&|i&,iI2x㗚8!RVh~Y.TRIP܌PӽxQ V[ 94Wgt$S8 (#f"9NB=VRO[aV[7tژrYQ3U+"΍Xm.ukOfvY9jk#f7uIV:w-Lب`fUffDHHr}M}効jm.֪.=M^yr-Цu[X>!n}uxZ:5m y%,m|ZkU&nF5+w,"йM8fCGsVrvG_3I'T.KnbX+CbD JvHVL:İ̐#\]Hl9n;chɨօi y/Ԫrn?J~+ ɑ5daOLbpg p[*3֑IIm CzVc"A"Inp*y,9JzMHZW1S6MMHr Zk(UO8 bM.. ;%6$jjc7ХDuR\tQ҆jZ`ȶNj9YT`eUeUDF MTn&*˯/6M+ؒ3q=3O؉)`jL8ZMEvJv Qn弋M c36 K]2Ð(Jºi̪ݩ! `.wb) H.EUidRRPIZEK`uQZDu8HORQh *7K[ذbCJGi0 ߀u$zāa ܗOiH(*T5(F4a0!=8@v0M&.wbAPKT62}ϺHwuza3OUIJVA^Ԝ#- /X`0 ( M4f0 ^=~DOF_iao!` IQz. 5E1w[[{hQR$Aa@Bp@ P@aT!y$B& dP4f &$7ܓߡ[P!$@R6!Bdd%<?YJ& )R,虔!~M)jP/՜6.L]\7Unuv G| q0""EW$UL` ,EH@ ?&MAހA%RhH K&/&IXi(i:%~H"_y$)CCP5$ԌG+8txhyɠx(0o, iBPP`^,I=i&$h̐I4VXJB@WD!d9 vRJF,7?\2pGWo^>L,Vr-$z5 JN@RqdJ"] f~+eB%#$- FHtuu. ɋStȪm"EZZd:/17$g DI05 .EpҹB@"N@iN,hB0{{3Lf"bjF3Љ@Ȣ`$R #a "X!OWUF͇uL tEzΪʡBRL/<ګa5C _ <hA[p ɼv lMWW5)N'R,⪣b\C&;M_rBJZBm'GU]7d[ɓU&Mɨ sn*EW*UB9? NXkæL(4_>*q0Z`N;jUXU]B&+/*|(_(-w xB5ɺEz*"Ƣ@+ lP@"0(uRX["P]H$ 5 `ăzIRG"iR5P%ᄰ H@/XxԄ' G@0HRK $aiG$'cRM!LWY7@SBq,^%) @,%06)/C@/~Q\40(QA!(LJ`TjB ":BR) dBP!F9(P Ao=3WJM>-&@bzP)e4 4B+ O;.# x4fX J'Ӫ?p \O6UrUR(I,g ,'`=0|hxG@>?-;$2[H1 r0+@/KbνD=gX>ohŌi JY%$XS$V( {&ZN5yQr#UΈ{G+xI#F 8ѯ I.I0˺mU@Xw5=@]Tȹ-U"G^_*EW! `.!w* Wc 5/0KEU &bb i!(%H A[d#mCKJ. 84x[mxb3h@H``f  3tû@s \rbV9`&A-x18&O؎/3dĿ%~ @X$€3W*YA(VG, 1) tLwaj!?䲞qntN]"apϺ˺]WM)T/j6 }U3e'\]PY\a)l[x# ߞTE$8H|QEzJv60ō;# k%wnWqFX[5 LK"-=#Nw%RB+@g`*7絾>JИn,qv^HDXE@]ꜛԍ}XMjCC5=G!F1^~mwuxt ID%"]݈dPwv!:SyC* w'Z52QAB4xq};Z.KOwN%k%ZK;䄄 VDڂ7, P,F-Yέy<%yOr !k MpR|h4buā!+7ۅ #/`,B/1`h=\II%'B:R1i͂H)HLS) Ḱu[&90Y `s pJ=zMp~S^o8h)';R4; ùڎlpY`;(bHI%h;v`GMp†4 VAj"!(% ]w E[l SYwqvPt34pJ<_a(vW^"GRFSnp :Ʊ;`d8}}_Ht%Jރ2"{SvwM) ׽B  Y |pp,6v&ZsRAѼ7&ۙs)n FoihB/!|?Q#p 𜶃 ~C Fy0FAT/ 2 a67iD /bJvHt(kz#dpC&-O B|>QO v"AZ#0#$y Q> cw4%$ _j↿c!bρ!/;3;C6<: "f$L/ `JpJQJt}ܗG"v" Wf%Թ({3H !iJYakIA^ _Z{%[7DET-)ihy)1@{ $v8?5M!$pd){S!fl0LLI 8dR[i _B i+- 9 g,a؋}K-?R4 WJ©;0\DS%&@8.0\pmɍ.A)cV̕!%(+!  `.!düqâ$wԚ95!}&fNnbFrrci #z\!c>cxj!琄1=Ԉwf%miג !݌h:EN9=׍i) _D#Nk wv!,sZK% j߻Ē`6O" M"M?g .?/=ZŚ8/'1Y $+% x,2k`4zׇInaFs!0P$/Uڗ--ZGi؄+ha'{ +J, 5- "1T3$-a`pF!@u>$ xМ%x7}8`z0dZ7XRR_ kBsٳfAjsf=g>`ַSQ Tт&^57pKW1iOol{8Z춵O!K[ Da~Ft+=u!  Y d`p!(*`IHJOd C" x^ZpBe_`&Eۚky%9EK_X>h ~C Fx8`eiʼnJRsK{-2Fmî[[ؑ࢞] 7keN B v"AZ#Mg`| Moc6<J/ w1kpa7 cg06G>^7կ "Akq.zpB. g N )%oam{,E"h">p*Am=|  ZЙvBR (MƏ}N@TCBs xܲF58F@!fHu ,(N áDbG|n y4v oa>*򳁂FݷO]B+]7U?{( Xpm/[O`K / ' ोlk BJUM8?Kx)w~-;k3s̯> / ~HvM/A{>*ɺP{7wUޥGBG A7 #?+CoP/]8uB;@S0s ۫xsR6XTG`acu _Uuy)AUOu14L=YoZ}Jf@6Kh i-?'V" 1, ^FHQWHC_ (XiAP^7ƀC ; SJ/1v|L ,&RԷurwwuv*U`Um)!$H3"+$.A,j1f%{!6 7!3G `.$m]$+(/蹄,H^@p(U$@H6IUp1XE $TiBd A%(%!!$ƍ14 @GF &F"U[B0*upn!*`s[$1cK @@GD#+|G-ft ف= la`' z9$\_S!$uJSuu&L5޷=k X% >R-H@=7tH+ cUA `R`YR P1 ,8QѠ}<#o>ZxēW!4XӰ1ADBF7#ntҒa MO{oiY|[f^%ݤRpOjޯL]݂ f3rv'L>A$D$qciA!&H$F `T-*pf !dT$!䟹hlR@PB &e [asp'F%K0"@C ; HܰY})n  ."1!0,ԒB0" ng$'pG*FS$&?[?` 4W^?QҔ"0! H"P$j=9Ay"kB9?>FO4V-u w^\]_q4tEzR.D> LO J @5&d (4}#$P)sl0Ԁ@WJݒFaXBa 0 @7 csHe`P45)` g4L0"9jZn0 l4vX/`(h I\H!+vMF `Dڄ@tqU++OԺn]^]rd t+UDV|Y0 $ S<h PCQ- I:,5 p_Z0&3 ``~`bIdK I(4H|ZlH_5#94=ڂv,o;l ??1 v+ ) A !m |#I!/.\_H UԵuurj2n s[xUzR*]AXsAt$gt<15 d!tnNH\W& Ho`acq400%pҲzH` щ[ =fE M}Uªkh {uekSKWR5}bm!%%9҄#?7\ "gh )qD+̀pJ\)m' ,n{0rwR8ddɨ/s; KI7"ƵfO8/"TBemp0~}rp?5TH*| 4rvUUS6KA0I+*sv|(+*M@ 0|9"31ٶR@g_!<`I.@Nk(PXHđ`+$8Phr@A@OKI~"|juUVWU\ Ϲ'wY\X[*ݽ"9QN3$#GBz󥆰O8|@<Dz"Qư A擟0y`+N ]I,i$xG_5UYUVSM ;U@)l4HJ0ހ@}  iBhDbC5( ɡhW !F{ @ !k$sY'%4ӆUaJ?qZJ8M t36iqgMN%Eko.a˒!ViD,_M&Q3Moa_+_Dԡd n?7M-*'eF å*lGR5EFZtiđ)ٽd7s,JbufedDHIEYf쪫pnȧZ<(:'0VW 0C4%sl0Y: 0xv%_>KVUR`k d`uҤ-tzWk:f6A\9zLje6zn jFpӐƽrk$RyѤ’IkS34)f}X?qiKȄcMj!Y^ZuIAHMl-]7ׁTU 7um 5`3N#_׸M; '}]-5PL<+E=J9Tl ,$c]&dKG 2*0ɤ 4Uxhi+olbvfvdD4HSIgv '-'Ϭdt*Q tT eo͎dP`!Dew62H2Dq('"=e$[A-#K,žraѤnXj˖}&l2fK3+i( jlPU\̀ӹkXGmMUTHltia$ U){); Jdi`uEWeDIꪪDQf߂)-~0lrlE@W+[}Me`Qb ?5-A S-,Hh8@'%n73h\4]\tP]\Alψu t4g]%jйVt#N1m.V uS}PJ R`=dR AP@! -LAG@*iLVɵhE`MTKAh Lۤ WKm7IM@ h'-ND h @l.gA`4⼺4 `[hw[u u*qjBt% IRՠP 2CI$+JjFu< 6% ?E1btC5" mUPGWX|?们ZKkUAg%05J  ӎp2`ֺh\!{~VWɷ;(W#|:wfCMSrcI1tB.} G;.wt,BZ@V*{+`CwXŬø֚ކ7\P!<уwv\=E_wRI,Vi~Bz~;D\YOkZRވLC[q 4i. Kp`25p_ Al)vBX {yp^HP  >_D&7kO @#pik]gۧRD'%fp,$Dэ}\@4؆S]օ Аv#R M<A!s xVX6p>A]֛鶻fbMp`d؞n{J !}קnw5!h j`|rxV᧭|OD#,"~P9B` xE'-`Oߵ-J2nL)$ie=Bj?, I'!e3nm\ntDL- _4˺!Fv;n86ƇxI%=i4v `W^"Gм.x`iv_kۛ Oys pPƔ$B @`8 YXeq-SOXG4 ɤ kR<x"w",a"Iv  Y 0/32VAtr `sCֆڀ1ɽgɰ:qBz_u,'jB=@B'5 @V/Bp ~C GR0>X+06'8kA\)'5#F= @ pcot%(1=O!wlC=:H1><x6b'&~* v?O' c ~hJ !axR4@@` l_4?D:eX _9 =a8d ^& 9́~ rbV0Z KZ`_Hi_} [w] 5G4Ht- Ip'p=5$)@o&E(O`I @"B   8"Cz^f&Ji6m)(TE"nр#JF@;u&øAL*c ń5l  E$7 $5 X R/2mo ~(6y %gkA_OrOw$X3!l `.!1Krx Tb?${[!2R,`TS9 5,ȣ#IQ{^[ oД9 AH ^;{±X2׀ XZA\;ic`#ARk]sXPlCQ,F1z:!%Aߍ7߁pv+g.O ǰX'! ZAt?T/x1Bha Bt{Լ=m}gf\<=WD6؜]# P_c sd Zd(m|@?ڝ=!<>3D1aB֞ǚ$!PٛC֧@z!RP(Q%ˀTmgMSYFi=NXt`/Ga\$5 xV4Iۍ k]j[xm߰k[KQ  ரF=x$N4y~{D<A<5=lcp#AU{Rԯ4iD( `YE$MJ]?AE3G ,V(ҏnBCx- ˉj T]z"3D/dOjbn] Z`Ux6|-'nW^"G0/ @ C<0& tPTR3X I|≉z3!Q0Y #n {>X+;~'ӳM)?j4Q~˕=ԣmnƒvh" @o8&W}_`Y-<!? v?O' 4`˅ПmA!( ?y+te]x.GW#6p0Z@S  XAOHlxJ58$EkN8*aB{ `c%'>`5` 4қN<`>@  0@D5啫zRxwB[pRӚ3SfBu- 'Ƈ^bZS1}-kAY!Fk°4/߂!_pZ5f!b'{MD_hC@w]#$wrGrMbၜ{d1!!=`$! ̇Pp/` t #_`> A(-a,Է!JR:%׀W UQـF@l;4Tw$m?S&$@po'T`vd U;սKꞹꮮsSH>00&hg?E\*ռjϗ_pך 7wv`t'cD(u}MmPS.Q[T*L6Nc*/RrxHNz@#<a&eZ|nM"C>_7/@:/H`W1gB{q#^Nx'31zϲXnvwBztwWEjnsk*ST***QQUD՝&C8?+G | TB !$u^ut-WrbڹMBZ )5 @F,"xBBtB@ /InH(QUS "E]_HAʁTM0 0@IP @N)D'(nzs($ϭHr{8,~puAy7uG%MWɡ@(߰(HDt! MԘ ZaY & ƣI(/`#odЋF"H("&.Y$T.^0R)E<*O@y'@t4"& H@bZ~@gB6|T@!( (4EQa?F@?B M@rY kyq0 Q (Bt U҂ӽmuuɫ7\LvLCHUuB$UU}R*0%K{dpHynbXb3k! [pX2&:5<}Qh<$" +t,RsCV4 |sfXքRbpx!wY&0 tE5PUXUB HOfbS N@n;$֑=-aaA3dR% l߿ f$"Yt6`(%#8k=$ HtD+B$5lKI5.S9yRJxFmCFA'@DC&A |B!*X R(L pNY\cS)#zA80ȉU ?j"T[M@ s[H""u  BBz9x-, J&f 85-d$5a:LA %f0c@̛V)=$ m%-iCq;IgܴfA@:::P=#VNoD9J͵K\۞h E#P& 4iO,RȗXꪬi vʩWڪUWZ36O1,‰5+drN+l8h A]#{ ojݟ귨22-! T 5AxRn w n+bh1'? Lԣ%K Hh KUUvk 4PJ7 !>(0I,جnsy0PQ}!`ԷG [hļV v_! +4_Hc*))OĊ~?IEtw^~5[v,.s 1Hφd~3O,ؒKąP nZ gߎjEpLo׈5;[T vWUʮ kSA=7I=$ PG-eq`4PP۾hjY[<4# &H#!M'$ H m9ڪWjǹ)*M3BG(`# xBV@ɩ!a$ M LvXc B0'!G `.!'q,`@,nV$O @ /iV )l6&~4h08$ryP5@8n=0p"(g:<~8q A# $4 LMAi~V {rMq.[{o+\$IrEJO3{oY3{殚1UMݨS=x.+ȱrcUm'E*'H?>$sTEX˪X%T$0!̀`+Wda~b&$?pI"ޅ(Iji#ꤎN0epYX-MBC %ܒ awhTMn>?xx]ͱ}c1P 0%5?5#%nE!HxyZ3X͆@ k@ E st/jӍi͡"ZJefbKw"}tE ۳!sVC&3.`] !oh&IF4Ay`I(ڱ1[m& 6fwJ%ݎ<$o^JB{ayIG <{Ҝ[d[^+໸!k;d5)YZ CHl( 4wvҒ}{J ^8C$E%$;5-s{)h.mKwrK%ł@7ww$-jĎwkEOZVc\~r$X2,>АwqDžݱGv7d17_R)vR8r% =aqCjɓ]"hAr5 "}ږ?|! l]wa`*/%=l W^"G |PI4W|ֵ ܐ%IH3 n:%p4B=~hi `TNk؈ִ씥< <_`Wɠl.<K  YS<P|*5 9k[s3G4""%H:$XJ y|L]HCp2nPB `9 W/RP=@m%8f%oj_-ݩQbd!xZks ~C HW 0a@C {XA%սkCp0[bBcFu%ggJBg=X:vɧ f vzuKFJZPh y#Iwٶszphhdz?p7r;dI2!k`t'0:`|(rh EGTcۂk#I BMkx(Zaנ< U&y05[p~dMσA-`^hC)jK 1]6N\:zj}kAT0[oJ`۲!OFmI"/OD!@)fP,:L x Cm[WC/zL @5a,_xyA`ĆJ(euXUЄsH5A(`_eRX!{VżA5`=a='PW!]q{}׿%I kݻ7(FZ0} <)rci z^3܆0h6_cM +`8`v6Bp hf8ZZksh`AB[Aslc]$ЩsDCrm B.K!TCe,!{ ! `.1b AL> JoԚԩ@E)߻ñ %yo5 /6[{MI)dI|O>I`/F%}xNW_J'dQ6R֬i-kOº:|:(+`}ȭ}jZԵ)ޔt /l'V IKp[д"Oj{4}_ ^h܎ -dwpt/{FS$oۏww-HY5WE˻&߽=ns ,w8( {  z9bv~r$\ a焠vpWd:!zED0L{R!(2mUJmJ''(h]M)!9ږ,Z [_w#: B`z{pQW^"GF>1#Ao8Oak{^ Ah}h00 FbP(dZ-uaIK̬!_i0= a@$o.}v{X*DxJSZx  YS<n࿆Z'!K5 w IaIOVv/t>2,!+4A+!Ys{GK<!,*"<`K\3ܖ7` Owf+mxּeG  ~C HWX<>`%i47 HG%xJa P+ ˻@ek O@"Ή\hH kϻu%1E?r}ݏo'j[] x JO4Mh vzuKFBR58)pF&?<f"? ?ɺ"6p G{'f,!C0Nd+(p  A x)lUN = @V,5F%IFE=#o+ o?H%OU֑A*iMJ XkA|V!YxjpAM&ڝ!W<> `sGA 5D;y +P@!Wvp|1d)f AwCX a9>!*eLHB@Y@0!$$|rh &r%Bg^ȚiJ9gn`}"xxV3 P`A(,̓~PW }’Y|b GJ;m#Y. j@hLP KH+ d 㱼;.Ic7v@ntwBZ:u&` i 1;%!xgџ}SԜPĄb $KY9۷RvutIJ`@(PB Ʉ`f%~h D(Yh(7$5Y;N@tf?#~e,Xտ41~ !2@nKnz~$8 @5P 5CCM(43tben;;YI{Y=kX(Ba}cFvAA+ ɁT@ CI `s0&tb`51 )HN_5/|.̘)};UIO:0&@iI^J;GިBh  0!Zn+}E&!N̜.t)e$3  Z]9 Hݳ#̘㟲&H`AA`#:/7U1v! `.i@'ŁbQegybbYwS7NsD&@/Wi0 I)cjE$ {qyR}|:ߙy7M]/+<ѽ_]/+z^mhy;Wƒxx!I<JR"#E@v 3 A7 hLGGICI vZIEoERxgn9 P}Yw~6P0VY`PWJZC $VHĀdSvwE4 7'+n/v` 0$ņT0ZC9iIv!hMҁ좉5%=ԀjN Js =(8p P1(F6Kv% s‹c3d58BBۆ퐀 @@b3(r2IƧfטoJ6d-a+b`5@tP J  83$YCF`w5 &r6/t דYp*7P,l+wR``g߀آ/!9ݞ?BRΌ2;'F'aq9?^Qx $'vvޠIof켢nONnKb&~=|jx+<2wvEռ87u]O+ּO6]^Wk%o+<OUy'G֏<^Cūh<"+ZQ^\Ҕ]XRloEgCݭ?MFi=! wHNU4ky4XTL{%.?U咊ܴl.ĦAF[KВ;cBfCyE!ZWٰa玨Ф$z2Z%ƽ߼7Qu{Gz]{&wӽ^x=c[O'Zgͭ^<O(xY. ]&H`kQj-BŔmihJ,jQ,.df<2J-nߞ^#,X:F^#=anX?rG{n/CxYz} udPhmaM‚{nm$30s<iXHCGiY3&v}X0 @L$FoGn0y@=uxEKk5`? 5ߺ15cJ䭔Q>t/,43 ;;X47gYo҇2~I:]&.yE齣yP3d dd'< iȴb! ! `.뜆S=g̴ 152AI>C pbϭ!?pk6Ҟ6C>wI`&C\Ǐ͙|~G?yO9qu1jb4L &bSБvBrz1LKw]A~x:>yI|=bWXi{g_<{ 7x g9}Xz 9"z>3&dp91}Hk4]ْl|2' -żDVNEHO4 ͸ .i Ƒ&_< D\^x y7>aa`ox^vu #[6rx7 ߹,H7Fo2\d ٲxp>.n{\XasIW>lba$ ~q?p7wpc8Zȸ}Ah C=ŞOjHOзsCH940kuC~CͬR4wq#+,W}IE(Oa{|z[=x?r{NVC3~Ow|ϱr s0 K,`a3 !᭹Yײߙ.v@7 ^ _+ O[?lwϻ4!%iB?ۺsZ]QWNsu rB5( %dW9! =?N;>#0G d4h{M-e01A 0h`NnlN>b7I'&d0OTHC](<wi 1Ã&riNOj-$'ɥ~C>ϩ =b BڜuJ Z:ȢD̜Vhϙ%9ַ%ŋߡ1J>r+>N"8O($>TiIE(,]U4_7jx9O~W6\xAnϡe`%'}7|h2ŬJ͢\_ o o B@LC&p!( ʐp{I7v=R` !Hč=&x5܁P]ȧZ 2@RΰaoW'f0\<$N[w+4zO'|T0־@ vK>0ߑ"x5Ѐ4O ilh57<{f;gc#uϧ[ynHH7XĬ=mM[6+$;wsyI]:'MxYp =:'w(5NO?η#LS煑; <m|(^9@ PItM Оv,8 ɀ7 )ҎRP5{|@0`B/(BBtYu }~m 1A'lؒqה`\̰*M(`hhb}`dbr V}sG40&(B@l~O%6Y?Cy_R!տ1ݪ&gQ01;$#RS2?9u.|͘ X XhoO>&@°5/^'oQ`/jszfS3o,~~DMEy?y~$/0sGC4< w5 F]#M0ݏ~9#p8'<_M$ ?ǀsO tGp G? hE7GwNlZ?C (Ns @apih (@ r%K3Wg<,Ǐ^@ a #ZVf7l!QYhB7Jzv?z\M|ݺp}vL&HJY:CtC@aep*5J`X @3bedÏ8Дf?wMb0Ǎ{ 8p*M@ 3 /_HJh` J CK+@VR:0A06v[3J vş@aa$'X xi7 N&QǶ2FVm8Hv;60E)-kbixAH F#C^&̟W'Kp !쮐G'ON0# ŬsH7qtE89> ?\?1w Cq`q 4M p"Ax#}ǀo@2 sHqGyni/K}^1HIP#OşO`hEdğV_Or/~Gyܴ9'钏bWN2VhԜB^8Gğk @ @. &1 044( HWZ[Y7sϾH!B-%#5`?@;TPBHadSdwo9 @+Q (BoB׶JِV+PG-9RxI (7| 9 18S9;tD:!h6V8zYֆ^WJ ۍ!l4J-I~[tȷy1`SCvn+XL,3R1!  jMG&;w%Rdž#`3s^ 'T:y-==پ{~~ eMJВGG g4]}9IG~l5|.QdCq /%q`5DQH FB6 O4vFf~\Bn@j٘Y /ݖî/@ ;v/}q{Į@̒ d1eo!v_'lQ5 I18xW&$`j?uD#@J(@Ʌb%qL K440 +khJz͵z>smwwȗ>w(}Kt JRD.O`gf;Myw'ɻ IO = `5'{;<00ZwpaGz<<@hdx0w4qp3UNص71yH|Q_α4!GNOqBA0 -P0G; 3&bi d9] Be i`}|xy,HBm 1 0Hd0+3d$ fG)&'VT5%v0`P4ҋA1 703OsHdVFKc0D! @ !? >55`&\њئ%js [Z5vhY~ɯu5&Uem>4bĆeeUE$IYIۭۭ/T+ʶ*䋨-J\&d쿨#&#蓂'.Hv;Lo78sђn6$WlZ]+ZRrLD3]<ƚAIĒ"Z~ebĕ5FBF[ISU~jfz'ۮ᫘jwva[/2KRNJڭ䪉XFzQH5 -2BʳZ4^4jXETS> (B1Z]iOS&B$zøұi[$Ii״jW-m>1 󂵦O;˭ʥuw.]j=bر,afڪ83] /4v/xĽ\aRe҉hROoߥ0N]7Dqh :է4 % uQHU!.)`ąEfRUXTUقhZ)ڎTU&&TPH5(bYpYRݝ; Vi^ !D!HtMOδFty1%6ѲrT$é-[DC rq= ,ՆЎv; Xg(`d)tV M>5bC[H4^e#BWLNm3Z4,uGHu̝..)9EMDc*I2h@gU2Wv "ܘeV=C Is&pO YglV`ښˍrBz,RrDK¬mbĆFgTEFPMfXj*hn-pOh3t#tEZaH9R5ͻ *p k>1҇uh[1ьYɓ%u&EnԅpW"-4#}AA8M0/lW(в%n|ŵ֡J)ұ;lu ]jk^EL%ʺ3*}sO#"5N* CF6 jCZw$:yڙ;+&1g5w0C1<ƀ`*eY Z㞒֖/`ągWSE6Mvn*j#:7Ag+TDsҽ:=<;$3v(%7!1yk$2qNԆI':z'.%"֧S'v(ȩAn9 gR ثfTN4 DIά^Y[PeVItSg&2v/:n'dQ;D[N"\&u2qRB\dM>GЈYxR6RjrGa7.!-Auk XZK,`u5UEUH :}5QYWrG悘((k.]v_b% ny9\c7^}jZ,,Q!, `.!Ud#xqۛR}%l'w|e;/"C@lWOoXX ɁT?dJn%)wzEHNpayA"4[84 1(t7JYYN*ln9Mܱp !V ɪ-)gNfe3l;[ Y$ RY?~<0f3p @tI@g!WJ;3'`IO;~Sw۶}XB҉%;doqz1bvis NK&)hgC%0ܚC߯'kʀĘPѐ_ ! xRs)ubxvU> )1%/Jsm[Ў@uҞ_N fcʹOAe$|ܜ +0wqp8%^P (,45)ҜOĭf۰]MZw혟bHKH+'Qn=)7 el'2qR$Ǔ @f}~@: A h,4ɨԆ$ D#d[}}0)JF|^lƎ@u- nbɸ4$+~R֔t0 gܭ vwր{)Gpu9[P_ [6!rjR_c~mٴLpaVBش _FYdghVURR;pč5>xW퐎?Wg )(NP3cyCѣF!Khow~}WzkKgv!M}N9z޾sS)ZpG~=9h6 ftjֳy7[{;Fn;?! h<i&0[(}ZG ]Wwwr`$c 7w&W^"Gl=. 8wJZ~4/www%5A n+rI( @hI j@,C&&{u HChMctGB\BmJwZJqmo=8  Y ` y0s A `B7%!nc[d@JRKqRIl4LkBZ$bJR,@u +%6anAJM}<$ў44 ~C K_p/39!@ `.!VZ_D$M>oYDj#$2=^ޚ`\ vtL=Z|J/DiFa Y~ىag 4H$6sĀ n/US$t~4wY_4D1e `dlt3ij!nbh!H B{Aܔ (0$[R K 8c0H+a x^N5|YD{ň?A#Y26}be ~+gUfADO`BD+il `(/ H.?TCnޞ4T%_)o 'XA}48";jsʡp d74Z r!#A 0|wB !"Bjs1 b _G;y$XY` <Y5! QA䂴: yT4'!@61LOkŵ9v3B eh%4(ێcS+/P@\ty~K-\ _ LvuC}QKXV0ԁR*/?r$q@Pk7Oy]`uH3C'<dmwprop`(_04\=}+,0Bt3fc (D"R[3rJ!9heI # ),3Z?Phop>x%R "AROoGj7`p@֊ԈYysV`&%E6H D3?(%1ev@R\aKfASl/S:[]0l'Dpqz2;W D&-h"kG[zS/e:a H)Kw`<ĭoAoU;2')Zwqjaƚ~K{m%p~ww{^Ku!M:;$bg/DK`f' w~s8l2pl<.K-ݭ^vF7{R_쏖GBlb HO7dl33y%ﶋ`=CpFj@W."' PY|, wcƷ=v.Qx10^dBrppZ Ƣ`!.SZ.t]   ˁLL f 5( A S C7L!)^By!H H`ˇu~0 `;h%guZUj4|iY ~C-,w 0O- ?Й Ṽ)J.AEQ3 ݲ]tZ cd쿴 g"3@\QJ:1NVD0(`1[JX%±# b5cm-asAN>~ol  _࿞-גo.7Hh-#2Z`+Iku؁ptX!^C -.) (`= N| KU6  `pw2ܐ\.V/j2; ԁ+0NS<iM3%5nX}QN'Yu4bvtOp̣u`2ۓ%n * t1߉I\iB!؛bx)!SG `.1!$P x_E5TaWwPH InX+_pS d#dhɁP,)KH66`IFB8ж ۯ#4GY< 2~KHcۊO/a ,8- HJ/DK~F'J~1hI=w[ +d_؋{#ᑓ- DM@pTIq{7rkޅX #F <˰oC .`sGpF@z9QX_/ܒH47:G\ `<8jj.V"9ۚIndF+~p@^5` jwRRPIz"ʑ HE/XVЊHٶ4"a*Ał4"+b  (?| .EBS R@W {\ֆ8( b& @J)H4A\ MyZ+RALg! V W [WR# -%$JB@WWi!9! p& D`h` 7)( Qo&MGJ&qJB+sr=c+R_PL0= r3 $'74"U]Wֺw vSS{GU \ \3 +ՈGfa$HpxM,$`OFF=H \Hv@^ 7!ĚZҔFjF$dI)%  jP`+L $'A'@vPiu?&Q?1RK"GRpl_?Q4C P2ia&B~Д ``CE YЄ@5("B!f{ `.!9( L 8&r x"(P%nq-vO10 Gd03Xf > &$adP` KH@43 Iؠ,<)y%RjH`1!K; #sp% 1"*jy v˺]Z :'6 QI{8 }  Q(`P4a7tM& BYC8`!a J6)={"8PbJ -'[geȄB&$0h6 n߀GAIN|@PiuYV꾪U vuvUIHI'r[4b@% Xϙ;$|xLÞ0Q|pP̰>Q% iņ”̎( Wyir3x| ^E9a9'nb{p g%%l(~)%E'%F$gGgpð)Q})<)N4 'UU [wrSԝsv-jt"wjF {)1<tU3#WQ !蘎Jm叜Q P*?}wJYUZùCQwP:P`ܾ̏3ln{d0 @@XK-  qvFN): 0{ !< {|O @ I@\ˀ H`0~2D&<Ċ8nƀp$hI̚@`B H|3 (:g:BYAo|"n<C !@*0@Q 1 @ @ gD|dK/ ԧscT™1Z.U^2kNt'6Ndקkm&K 3EѱwBIO.t*pI`dX4Bn5lo܌QE XʵBFukD0",lx2 PеϿij"Bi&0;] l}h{t%ͳQ4C'n7SApi$!%BG@O`]<ss!+6i%;)}S^b+ nО ,JY5]݁dȌY0:w-=@ ݎ<>Ş_!lK fR@:#Wd\Cv{Ԝ1Jx;h"3ט^QA,X: . DfQ9-Cbv@~u0c腱uXA~8Xi7L%Y>t_`d `7&ã$[dZ5B$f H?;ۿƻmic+ݬCl(Hwwp_@wB(=CvA'nփ໻}4Mk_w7={I΄ 8+Pp$!Az@8BJsuh[OD*ww`D7dW^"<`I@^2!x$$ϻh+z{! @0!N؈1}RC@!owd%o%ݶ71Ob\{  X Ag@(hO4Ao Gہ0o/lP7&mJxG ntGH!nvEy' ~C;Ay' bZ$]w|q%BCedeAz`4EBF+ؤ!y @ !3IZi2" e݇dhYAEcdeY"{p~$!;QH$, d OXXuuBV)uVJԤTRv"N}@)/cFXemVU#^SaW.&ukhV:sˇCIY\>n.Ry3Ikqj{N?|=V3uw76.qAn T5bfRW(vI jShnhsbӷ ^e45ҶibuEfUUFeb \l%ϯn=.1̆RuڋA% u6vҕm$24lK>Ľ EXCmE ;U4QI] m6PW*Ψ=Ϊç5GLfk"6::#ܪ'k\³/hg mb@f Rl΄cbSSQђ6epes%;/"Mfr_qm߫5荔ut.+br%T਱áʙbKu Qk+qV^t.Q*u((L7JrYBZĮۖt/PHlTi65ѡY*lqtv!J[ Ŝ,& Xcq_5gg(QhS`tEWUT;QvXu祢g,Ej㙹ӄkR!n@;T:>[9%QD@F#Awe?)E R&I+,˧t5rJmzҺnx⭣b j"ͳ-y4 P?Eqsk&/Tk?`HVEA )؅ eSPbX t+|E.%Js! `.!z H ``UƆD6)&@ q`[Ѐ'JDbJ aph皖_fg,Jx nq_m~&$N=hZ40( dO,HO`HiоM%P|a.FJ`[`Lpx%$L2YD%+@ \@,!J 02/'E p!b80 %v4a^ t/#Ġ | xj"٨f"#D]9fBP^!p>9ɫ% ZBf@| D蜖 V Ԧ""D"`*) NHЇՆ`q CH`j brV1} H} j`/}A? :CHF.#p.'(@ F &r` dž˜09rNf1Jk[3 E z/@nR ZR(AE Xʡצog Pv[x"D) `&}%rcI1u뿤f='Зs69FІw!MI$BpV%Ƹn13ptp: O`]<ss(y?B2X{_dEyi #]݌J: W "Lk'݅'9%8fx?P@h*<>$~0 a :NHG"޵=ٮu@`X$ט^D X|/p^lO ) П;aXF/ sNwj[Z[料)xv?F~0 F!`#$t%39rAXXe'ʫw`<H;;jIwW^"<`M}6 )!i'lBMݢ}JOh5ҜvBZH&ƌvB  p+p  X Ag@(\C KfOP 7]a0Y (B{(6XbRXhK7jx ; k; ~C;ARq` `Fx%c#9?ݞ3":oe$27,0 Hd(KID$9}%HCi$ FHCLQ\gI),$)Ca0$9+y+`#20(i#l=셱ٖqiԳ7=bS nq_m~B|E; ,t",y N-9bbjIovh7ru/9eeͦaJ_q%< HH 7PCe-_e)ׂX5Z0OR+[ 02/&NZƜG1_pQk?\续ƸY4$/Ξ @}ud?!2J-λ"!y\%4(/L Ziy w"Ѡa AmO`!Jp|/GAg2xR']J'Z،ٜ ! `.1!i!+R0pTxAs5</S&@գ(C{{d%$ı:0BJ!$!nI $"'ݔjfe1J{߁M+EA"P|6%hL73/+),#Te|BrvP3#e->UTön3sh_n`ՠ .Ĭhz8c @K!8=„̸H2bu6nȭ%F/$?=}`BD?P3}\8;uowRO#E=A-zTK08!7|7VWmfoGW3jfg;w"a f`E#FGQ4"pǝ,B:DbOo2x&p#dvo:(VW@-$}/ߜ!vh3D< Л9 bMH\ڱmuЈUM6 hN 1@@M((Q}/!"M N&qF8,%#`4N %([+ #")J@!^2|ZdVwU]VwsSW*PEZ+5T*'zgI F $ޔFƤ7$@4@P@t2C!€%/n1#lc (8OD20#[`RvDS\f˫2kInBC}IU+ *Qi~!=_KO~Q'z>sWz7&Ӏ{R"QQUWWUUQ!i+If =)!`с@N(O>$Iap& @F@@P @#!mH\-(o6IVwugrhB 7a'ɪ`( Yq_S@P*@DZW&JHET]E'p T*PpI\$\^/&v^Y߂yB"P PXiP @"$UHJJPND"Ȟ?)8 H@U:RuTT!HP+ Th0.@".U ? {\ Ȋ@-OL@E@=@z @Q@L G"DV*@+@u0b"@FA *Uh*0) A[@"8A`Df * VXɡ ;7I"dɠ)5P"bwL vSU @@H $I! *P+@NDPN)T]yE4gg4XHɉ!:'ΫmJܚbg@jI'&! o pe OTiB & XrҀL1#KLMΒ ,Y^ /'&(/hv%tI`4b!G `.!!/-In?0,ДVn%%,g*=gUvU5< vʩUŔ K-&g]Ӈw1G-E'bIY \8~O& Hr @ (7JjŒB@vE!0 ': NPoƷBdX $ H] 0eFHOƌ^s,YdD 13OaI&R@+ !rZMg ! |'59%?#Io/zQM %5 ܁.& v]v*X@ @@dKe!(JQ$x ݱ$&+3d` 0`O$k pqb+H-gmrS CRHPI@@7|/:2Y# tnvw@~A}g@,t8N TJ1R;U7( ʺƺ'jREGPāؚJpLȶ<ΜjF#=$1tr80MZ?oAh$ud$_ ̓K7tepBP`8 _rIKoM$4㇒GhV[QDFG<blӏw8!V&n34'i:v˺wVU-UJ[:-L7Ye#qjp(4# Ԍ Àr_x3H(=vx%JؖYVOg%<3ˢbG>l $ΐ M <lp00 A|:!0 @w`0B?(jI\p=Y'c3bH%'2F"Lw|?±# 1 ;F0 MI4Q47|KH$湄D;Σ}Wt]]WS([HͅTɓrJxiQEP0ydͭo&t&0T~ x5 L^}LKf&rYSy/%$fY.b%h_5䪗i}wʩ^B`lL/$`M=›%fe!HsZzHysGF 3H얽nt!xhw@$ {htCssh`T;!sP7-j_f:ID;)WuXdbB p;/x}}"W,gaBЗ9M@(n}N=omr rs Ryp%Q&OI#qzՀ? 7I0%$>!{ `.!!Lii(_w9Hz"`=HX?h(%\; qZ@ @Ć/#?!Ĕ*gK6˶ `$A선]Ky^ffı) n1B^׷%) iAp+-JQ+n,=XbF LᤤwiDZwA47`Tj0 (x -7!36䧄*lƱݩBWؔƔd= X ʇAl#X>Ė5O)% BSKdd'xnI$C.p y e( \2^{ܻ &C8Pஞ$.<ђմFRG }gD_pt: ѮɁ.eJ:ѓ5K-B&1{\!iuAC!poaʀd~R>9~?5V`zZcxD\ U88َ 'HV1/+UgͣXK"Vt5M_eg!ޘk뽋3]'fQ'0G %X ;BEF :)g݁ 4>|<됅|kJ,0Zf9&"?8SHBO@v!I]F%(!X#_WdsU 2(ƎuJ,O> 1{)KvrݗZWR}ЇcÀ8[Oy҅BX)/Fwwp[ G^} 9+}wp'ws[urȷ!R{32HOp/ݒR}[U°)/X.w= 5= )ݐ= ~ @;@~wv AX+ ĉS+ݩz `4C07 Gp9j0Ԝ,<7-Rm 2{ w B>ˀ$\Gko\E'㻀9ekeHQq1h*!i)p/!٭ @ !.grb%ilj*P BbD.D& P7&_Uaxjb )hidS3m2 JOTibuUVUBI"MvXuצj(jeVі"S"A6o;cg*J.;q Jc3XjI`elN02m!! o19%N᠚nV0>Jݙ沒[U#z٫IG9~NFñS*z'g?(dFعIU Z кE%ko(9i]ОA]Kb?;TD,Xt4Ĵ0iH5sµgpv(WP~qˉ*DҕPl*bn%\`eEVUdFUq穚h{)e) ,GْII i}HxlS\ԭx5䎘&5$7DInwVLeI Q.Bw4ܧ.Ac;+udT6ݕ5`Zv&wj^lQ5lIP :5ޤC*MS[:4M^*}wF5j&c:jrojaZD9$Qd܌C5$x-hz5[nb[#3 Q/A6-EUYDSLG5qDkUKd1P&fzG3-&%m]ĦdKJjKgRI-Rx4 e:X4PaL VvَtN Gvj 4[R3) WJ_RVСۘhbm`X99@Va U 3:K Җ4-r_u=;D66]B ,*ZS ah#+"#nGu>XW ܎HNYkXl)s|^Z!>|Z;!p?\C%7(%{K򷐋?(K 5UݞAkUc8 L1#IF9Ap;$(@u! <؟xFDSw??<io@DpAARsZ=G", _ǵQ>/R~GUE@?XvplkQzp {q?~nno @| sx oaʀ=Tp cߏD%0d7<l#P9I>{AP^ywYSzmp2D*/uSw\Bտߟ${>tKrGp: 0 ŗrI+`&@$ Sgw`a`ܪc>njU}J7:| +TUjm!Rl$$$Ip9 P>GtA $>И07 lC 909Y@ $a@RZ#vPa4 J!0&pBp e @rZRI`+HJRH(p~P>~HHD&J rH Hipq6@KII&T7`Ji,ĔKiw@rmaj2ȋ]_Nl_OU"\˹ acF$0nPb:F /qd dB:Iq H:wBBF%'$'#ސ0Đ!oAi@8(5]I5 4{ItBJQ80Q@$M+$N#BdF (LT X$fBP6 /&BL@ `5 DD2B@*# @"O? Rd QPh(IR`S X h,ԣ 79hI$W@)(nx&4DQ bCpbH/R @0aش$4 o(b1C)&L$#Sk1+CA,<%$C(Y$&I.添tvƪU"P : #L LmB`Sp(@ $H"ڄ#&*p v($$G@6A`%/.X@4 )_`IFd8y 0 1 "$ 4B‘ HiOpi @a @VXܝ꾷=o vڨx  `T95B* FDD-@H0B"Ϊ,c_Z[L@,1Ri,PH$ H ! H3P>cH+zA$j(Ev $]yq@P" Qˋ v[@ a@ #/KIި6G$ R>^ `@ND Uu_HH P@".@C`*$@bx$?ر<! `.!!?zbGJ8JBAW?B@IEa)?tnW 0W%$BҒ G$ !.u6N$'J@s|`p@F (Dú%<@ v˺BRQ-Mp@H +x {T".(d @~6 @@D&,%Od!#t3?ox7` )83yew/HF!@!!(%o %lp#d /t~ %zGDOR{]&$9,bY+a 3'|V8? JS Os{`? tIFD`  -? }})N;df?W>( v+vbД$b7|759B7JDJONWB5SHAǥwnb@'aE#@ "~$ɀE>`K3B䀨@`hJ8$Ƹ9Gw8uf\HU5@TY 5 L)!bY( ~K3G940 HAΐ*5; AAxK8RM %@ ↭{_^##dcmH VQ"]AꪭU>)N~P,߭1 +!$5#P4 oAx&\gK9ׂ,8mt$z!Q1$|ߌpѰ;٨fTk1U cJA!脴{0JPqfx1TBr8o1#ݘ5F疒VtFפ!&!@;*-Å{( 'sE+ 4 +J_g@5Cyt7h*B^7v3"SkP$y~#t>CS@XA y/ sN!5Β?eRwul $icwE)HWeέOW~`owuKWU Ov8V/Ǹ~t ு( t:/!G `.!!MwMX ;}ݭ) "qK=JI7}хqoaiW$R  K^=C4 "Kp6 xmww{ZotGgV 7b7m8ZWw~O~  3PD'E p.xu=eUk}sT%LI8.| _mw_iVLBWU݊Hg4{ F+5AQ-tAOPR g8'0S_lh޻Jwwbn$scUfY^fs"wvĊwp  n D_uT; ]8LЀ-x^X- XHE /q`{D>o#&L+ p2OX@?#ݝX[_F;=YU #!^ ڜ)`|0 @wLBwj3IJOM-*kv1)Rh0yUfUh(3:ǀ # ૜Mł,h906` wR:[>34tXp:wowe V0{>!״(W `fԔaG0jʩNFCf 5}{`RĹ;=*`鯈Iٓ&wbrI0HpU)[fw~ޞ}D" <N45i~<2q>hj{a{_ⵏr}X攽vJWrЈ$b9V$?Hp<R=[4P쀭D6]ؤq-8_`OhC(W.|D&| qV\߷+nGaz_w'/ {"Ce=%KiLJv}xwBY] ~+.gHRUB!<: ~եD{9w`QP];͛ݵ]Pv);5  _f;ԯ%TsN֝E O R PRY0S[_y~|PKK@I[7,7$Ǝ^Oop;'.zۋ9&bA<F6ZP !;ZL~mykuzLʟ3_z= Cb%O,4j0HE B ,@ɗ,@F#`_ 8S Ik.럮SfG"q|KLˡ O B_l)'[;aMA1%)| w |pAIK5Ga5ӿRFIi:M͚|8cC-d!g;_#`tF&1 I12׼8b95TQ1:p}`tuq@_LI۰>+w~꧚[)p"CzPe{`?}PU[P vz`k绠mp E;ôJ0No O- ,4'Xn /D ޶WHWY9>&$ mԘKA\ԗUjTUM6 0 QY, @+@S' $X@ժVJuB}j>.$?A#T.>BIdT))@x ?$@ %,\=KH R"b:IaCaEUAh*@@@)uD @W@OT M@+H/ @$, #rpܑ#CSF9I80$~: +hl#  0݅DQ|V}!B(`2 RA` )5 )r  (I&);$FIf3S&\"R(Bb0#U(`W< R@#_"**MUfX*@PW.@6Z0n=5(Y{>IdD QS ?X;d/Y+&&C $@@$o*! , &(& P* J@8h4h?8m IPѸ0P& p1_"MR$Ma* ":PQ)]T TI $p $`U@ %"5fPp,Q+@Hw  4E -vG\_,haA 4؞" HaH J&MѸbC@@jl(>SMovL# ړ$pv{Ћ*Ez*EPX T ^0KBg]C u  HE,bEQ(lvM BI`tK;d+'EC*Q ,;64hvG|J6H]z @TGp {]l0' G/+XWHCF#[OP0HUG*E&-/0jR $, LV O !9 `.!! [b2PA,E ~ 7hCF5 _"թꮘCf _dT X2IMT ]ȑ vSX r@y+(rNVDE b(AP1Hp$ @@-Q`*" PJ*bP)h O=$GwҀē&Pԓ:Z0hhK@ _$ ŀjhbK0:I, /dI@x%?t %FI$S$焍H䤥z:!0I 80*hy ܇ŠWl41 ;btP30!1 d0++H X_@#}dܓ@c_#̞Ju@#$ F+f_umUUM4R vʩMuU\Í_BF8,؆4H 4 ɩV KFr ߒRP@ p#}%y.{<Xԧv&xo0NHIY  TY|$o%:0d20h!$ X($Xl/Ґ&}58Pa՘|yI vIU[:TM ҹ_nwX$Nđ Y&lF Hݡ<$Oi,q`Bؠ̒^ tp^xFoBp Hi)+}w~wZ9+' <"`RN엘o!, 8O I,,B|w=coEcׂC ( K ߞ_@bp$t#Y80/|i|o`}W/a@)/H,_R6uT)' 5bi5$2n)!Up z6QZW*UPXi`e)QL(ZyFi=skcܒn)?ood3.0tE,w{皈Z`Xt2hjrYd-K%t)AAl*MܓuSj}PvR}UU]6ʪ&C\a,i3lIOl_Q0߆fTc??(RTLnlD,',"O&!G߄!9H7Ӏ?%`Ȱ:d"Q !$a>C!10t  :pt몮AHuiu@ EܙUQ<$*{c* i ʆwT*L%М^K#yZ&*7uPݿ]Ldi$I kFbz d-qdе*<,nK@BD>Qxxj_cv-|b/(d5a@ddUv( My'<n19;~_~lw_;E FûEv*YgيA7 p1;]l{iQ0\]ɐiK1_C.<{|I I'?9n 'ĿlJ8bK >!%ݫN}KNM_w1k臡lI `*ڔ{ `!pvE, INjٝoINwS<Wp I!L @ !)걍 hAv>6a;^+BiL#5\ ;KldI=0l1}#Η6sB?A<5SIK%!ݷas%(ӏ)Hht ݜu #;\J ,5XR2uV,Ҕ(0P0SF%*m @82>k I#:ʉF`tEeUUXQezcY.n|S%-j9c.cD;lj6UJTw}ӈK_YK˯wmhI/d@1/#Kq:)Xaͱ!/-4l:$kC뫷!´Iv9+Q4H5Me}] QFܖW)ϲSH%X"]WaZ.\ gAc:3z7m'] -,XsgGA7R*g,gfRF) i-#%I8(V4pbeDeUDI *Mag9'k˭'D{F2vs>r"pF u 9&&EY2YAXDzuR"K%=9,7HYoRB>+z( {앬TRNҘGܾIfp#EȁDt/%E{FѼ%n)ub&Q+&Wii3Jھ4$Z!hㆂQ2rIpaX\Caw`K<8"R2$.{%.MvsmO55&6e5+A,<[ᆌ``D4UUE[" PSUWY}dvHޒ;kfrΤG9a j\6F$>PdPxt|yњU z1:xqc#Y郘 V3xK(v)%(8l,t(zaceHrVupɣ5X T*P.\t.zaj@Ef'PI]Zd8H7]**ʼnTCQ;ґvuݢ!W4jeet@X:mIHaaYg3GjLөdEw"`JT@`U6UEDId R=5m9fJ*i#&ꊻ 0"FAI%f5 %%w523XWS*1J787]ZXH4 BM"\ΆZ,;J[w;EC͝ 9Z l20N\ɩm:=QjLcʤ#zx)jUQ!+<͚KMU`XBƎưA(t"_ZlB۫"od^A[ MjH z ^7p4{5Mk\@bU5ddTK! E6\ec)iN ]]c!dQmU֯vKicښsX-C 7auwh\8zdl,! "-wHx 4dd"zFçI%JYRW[JU#jk%f<1'6SםWzaB9+vb&la^"΢tB TP}]ɄNcapnMi/ny&s}dqnsֻϐ0sHLƼ%dՕfaR Axyc"!PT-LE&`T6uedIM$M]z9dm+*UIyTu^T<mo82ĊVeVFG9ŖM| 8ؕ9܊rx"8Mu؆T2g2сVbKqm}tn]Qi3(SPlM'K\E)۵H!` `.!!10o 2ۑNEG9^ܪKt'R.9 @`ȁ8*疜 $g<$guT&\P#/ݮEI)PS4wwu*W}&~\vvܪ0A}=OxrlPWo9O;iN5ˀk<$:0/wada 0,an@K^=\p|<rWN VtGBv) 4V85!X8zS_+NvwJDžww  3P[TП*7;C $2Hwgud뻳[]P{<QAұD"s;7 ~FR8<[Eww[4xwp,ݝ37ugjHOQiqIy`"JP0d$Y`%ѰoHyh &ng*IvQ.o֔  F# mwlyإ;p[).pU"kD#ZxZȿ@Y̋{ߺ8pEUUH N3݊U #!-/F 8iܧ$)#c ׾8ps{&hV!}Зo=#OOphdh 8hKvS)R rM1@k T !A7O:9NJ-0^-hW`kr ; %:W@2{! (A#v,8`_bx5#S$0Ag=0P>`'7 3 Tֺ; \)A1ٿOޓp !ߖJ_O$`Oq@}< B!$o`f#((x,Tnt}A}P 82v{o)_)U6+w49ݽҵ-e= H`ktCCpVe:8wT^ԼwkNG[mLKFǰ#{b"͍h֎i mpJ)W.| 4B Wpe`+k>n?H]mC-ސoֹ֫}ڗ,;#]8Wwp  $#j\V[ǂ752dq wt~@ Fd뚔\% X'_Wֻww^op *5ς/ :;C `V inɯ|nH%]$83K 㵥0b|j0X{8-Ff5~S5\MS  _C&A<!sG `.1#qa#}J|EywOܜ1_0OG#l~ ӇTHcճs嬥 !;l.& r\ (p&AÚl^.4 n~C}{CKOvGe!O$bG $`Y) HNC7 SW^'\dȀ5p-օX|Ũ-+ߐg#htDciw@4]O0Y,A0"83!rA BWH!sPPB JRQayYzxd9,VkT1gXPlC$PP--0vr\ \' A0ZF Ҕ6t5hȠ JB!8 `-cxv]ĒoUҋ@ntwW&` i 1;%q[>?r3z`5& B,R]e׬ɀ A0o& W/V~h @ra ^h,JL%ߒv7'orN,տ+=m&8 @?,` C@h 3~$8 @5P 5CCM(41e}Oζȗe.vB0Cv҂J0X@3 ! v,Ѕ><zp :&딁 rK{0²wۉ;IIt` M!4%׬ިB P-CRMfآоϏH@`f^C2nX 2 Š1w$/ vjㄏ㟲_޴ H5Ab7d7ud?<`0(jw%?sYwScu=T 8&|3^?f9 14%R H-2W½<^yWy7ᮝzzWx=/S]OxP*7P/[,y%1߯ Ϻy0x5;~~fwϹ J- '!? ~c@^FY>'p V~IhNӻ~PI7?^Q7''71/EJURzל*7!Fz~WWU%o+<7޳x=;[x<77zw{WOGyDy`kW^'G8ha\Y]fCu:Ez* +(_E7ojW{vKCC4G,JѷFmRm t j@/ `)>@?bb:J@(pB`aE#gj@5!0VJ@f+b8ݝǁVAaJ?%1! ![;4NCk +|t\٫MR}AE}UQnLϖH<ӭqnhűyhb4yX<1nh{6|[1llx<Ӏݮ/'kŸ-ܲE-Hx\y\wk9ֹ.XuE,kO"H C]Dp7\@Fo2`qf4*B8ʉH`ozc8mQn1 Yu2ap=`v4 sDނS;tޤ4MNj9e~WjJ)v$ӕJ<V<.<^ߡ?2?i:xw4mрg e ȠmxAOX]6v \ si%ysb x IX9ӻV>d?O a#G~Ox߀z'̆[c;p0VP(n0 RWmJ3/6p1@xPܜBJ!sO>g$)*-) خZFz~ٖ}0 b_ ɿVO@b=5M-4-^ %{@@1%a| dCN/>Y'qmiGn#SYyI$iw#?,=dX\[ˮǁn暠ᒰܷǓ n5pnO-qw>t~=ugwb_dd'< p`a5k @\'0fY\Ҁ4;7p0Ѹx&+{BEquGm='F+}o~<79dp7L g<eFvs;@ܘI &%Ӓ_F?mPH{f VJ[/"2GfGk gX ̾K_Ο 6wgu9$?҇[woq=u_wwxwg< >aap#Mr|ҏHJ.uŅ>R ICb85]6 n֛~E0owX.sO;9G#Qhc s~ؚX-%)ݒvYoxrB]ULE7'7 _= 3,L7~GY?rjw8J)Q?P܊ȒC@_?%Ͷcߏ 2`ӣ'?ـќ~w$gMu 3i#6(skM3# ~%}as qyϦO'܃W4+v^ : ų)/ǣݖwαwh20P@5m1 Q̻\v,JwY}`Z~ !&ȼC@bPb`45$0 LJ(KJ1Y wia܆ #׿}0@\0+Ha33f>wwJƿ 6  >jDxqkGړI,_ߛͽ$0_߹&ۮR8uYޢPk\<sw0/MIK} <7`;ۀ'{#'ytnn[y߀ $ềcGsc4 {OdW4ȧe3' =:: C J7dzҍ?5'Xpi\=,s' (9h j-Ani?ݩG(eO=ȵE'N%ؔItu6?9a9'nX87w=k H piߏѝ`nExAnGq/e^88AO4!YY%',ԙɠsQu khbh `0 ;:o`²@DCR7uvUI3 $Ԏ)bj< &lH}YGsas T9ہ\뒆sݻAyX뀩]y6iO/"Xcn=}8O;';96܂AhxPl|_w vp"Et6K黁.A<{4w 0~$< 5y"_#GOx. G! @ !!- 0KiەQJ q Swuj;Q"Uv+&dZӌ8(u]!kq$>KeWIIk)qU*Rdd$% sk]L1V(- E[!Nbe5veEHꪪITe`i9C: cѵk,-ARa1M7zC+)m7bNM‡s:PIN =n@%Z^fdK\`B8A{B;sE:6vӽT7++vgXRfpcΫ ,mN%֠= GCyUљ4rZdL*a3=u,:flgv^JjS]hLVlL zƕ,BK/SҙMV8X/*("<`d6eeDHIA$eI+d;5D`n–]h1GwNa}96մW#1¢=eX3b:Շ'qgњͶ!%I@IީTufTpXڱSzNkںѶ@.;UKfJTUHb8+XDgv:,ZBa 2Z96'5BC?9136Ljm U 6Ԟz92$'խEYcM`jK 0> S[튞wbW(`TFVvTVDQ%qک\ &?"t2_%򳨻1F84+U[6CJZ8QDU8;듲l<\QؗW4u݉iQ1hOHHv;2.S\E#7;&n`%K;&r rf V=i9B)ɭ𽓉XR`7 b5j7`4k*ER5GJO@muAS +Άh9:[͒TXߢ]t0nM3]t$ڼ փV< (Y}$jbTEwTHE5SYy窓mX}uyEnRW%h=YXT\B'+kVnn|wXt0M8TY2'HM`d󊚣%tުѬb$Zq@TXv tx=$Rk _+|Vuui#7YY}Yxao_BJk=aڞj;',]5cdNH/k>Aڕъf%z Aiq`cJ=BSzEf1y/Vyg.qhD׊ %]v|0`U5fwEZEEVmi]=Qil1J'O]qUaΚ&3N9j=g'č)]+*QK\,T4.!ٚe"i2jFv-dɹdHk $ Jg[i&&:bdPSޫU٧JF(i<%nJU_XUˍq \ٝ˙ͯs0bht;IIvs4I*fZ։ŵe'G"]xt(t?ӷ^i@zZ*48yuGh>@! `.? hE?EϜ<s lI)c.ҟ|w [MQeu<Տ/Ə hvO r PiNEZ)ID6-r;'Ǡ̅+6<'` Q$Џ߲Ͱ+OGp%<a+w`D#Gp'Q5 v/q>x/,':q'>֟#,X_}IGŹ{G5pw `5` 7c0 p"Ax#}ǀo@2p"~<ץ|r\ .>`__4pa{.,x~<:|ž:Y>/~\𹒎$\VX,Zߩ(&(?\<;,kۇ=Ǹ#4H퓸 yk;!` He %=FcI XpO7z*:&L Ihܾ`& `@,:b7uF] 4&< 1~` @3!B` @ a’a\aIh/&'~Z 32 );R1n>bv$y0 5{>,#1@0by43l#,7VUy|s,4x7>ig<s"-ϸkߓY?@gs` (Cˮkw4Gl\~E.#xȴp?{=f~ش?p:bְ^p"O~O"f/~>G?b$xwp0Obw<!hanbXwKnP` 5|Mt3{| G#S I0Y0Jwsz p ?} aNxbROn*d,CC|%+G| ޔa\`TntNB[z 4R3~7Ǿ_6rh7BFKd7@ѥhC\ePw5wgq7BrizJz!G `.2Hv?PM HLB!! Ik&VKnh&! ܌4M`aH Fh_i7ݜx BQҔLa:i,f/Prw,MO& ߕs/'1!wG ui uv~,w@@ Ll7!< .A0ܴIA3e |y14dIQ7IE~1wnJR'rJHOJD=ǡ\] ?v.n wGr ?p7?z;\\zGz?swbD/{d:<ט~hzNu|[Myur'~~٧7krǏy99@l.iQJ?F9KF-vG=NF)O4zwsBl\a4l Id4?HJSz-%}$xkr8}ia;Փ/bZ𵮲 a/Ǯ >&k~/I,y4NBR /&*L&{m1i$4R[Qel,J~Q`LM(1CtĤHBH޹9 M}߿}2~PC%Qc|kV %q˭?b~;Dy49(B!4b%(|W͸ܞ:**28Etds`d@ߖrkʻmp ӲK37ۨqnW =|Z/IvmQ"\܉HSȗ'r9z~,Jw<  B ;q00aM CH2X<;_6:v?,{֝t~a#1{#N?',4>B2s4?M/t!GNbxh Od 68x*   8p`Hd M@I0 #҅$.V @@Pj*rC0Ԁ R@$;I@da CIlv9gRѻ9ǜo UP /L  @ 04D 10NLH(` ;`ۥҌ' Y,Bj @1!@  94Y7@(K A(M (>~*_) 7~RN9o>XQ7j,/tegҀX};oiVlosɠ&pQ4bK$`ϒvd €tAz,@u_X zS&~Qddc/p(r 7}}vBL@hi3ebx`ryYUC,i) w|5|`4_%ӓ=7W m7%YXjuOXL)ɝ%HoI/X,NC'Vݳm rӺxnOGnE椅H1}҄||5䢷&|8͎^e/)P3t0 AHvFl}M*xj0o)$Pٶ[DQASL w1RoO+zCKA4X 3'EX` C1,WܤtGgg~x6ə,b2чIJPY|~Ow%lzphd-l0\ !M Her` P 0>|xLdV *x`'Ad K( nP iAY!=W9N*ٸu!P*y9FvcV+FVK3YȈFSIZX}Z\`.;.PPShnv0-c+q  :"(_ZS܎kIpkMr _kEj7mNҋ5_}w9_uRv!)ZpTRkG ÇC A)U+G!Ey]L膮eH g؟+?ouiXy8B]pl7 n#$P 8X.JSBзpȥ;2)gN" ӈPZ;aN밗wO"+@}F ;N{֞Ĕwuc)P؅9aԡpt`"ww`-xL`q-HD- s!9N:.%ݗvtCe\e`bNAI$$X 9%,<{ $>1M@c0S ^:ӃlnxK^c)sA?)AdsávSkrҚ33M{8nU7־Ѥ&ޔuK@  3PH,zB`AKDk%7#$G-`wvE +a݈/ɹU}ީ kcޙ ~F2 f?"wN}1k vtTjY.Ӝ#H[$ nf;:f7ȔD)8ww3+xowz  2! `.!#T bNn}Ec< uwsկ?lj ߠ0nFMdik]H n3Dn"tSi~0J{)m !xb,#G= Cx;ZOhQ7M![  O0 5ݓ{aݸXjz#$0PBpP8 F.uS@ #@Lc 3aEVÇROcAБ6q̑)A6oD>?݀V8%@ ɤ}9x>_+X"tx{RF9_e4  *'w*_VhNPD_x @ڇqA="Ж#`&Pǹ&I7in-#́O(ŔPx܀0KY ƿ;F3 ̡E+ 1 Q < 0 %Yv(BK=a~6 p\Qy>~qȥրľd!z* VK _! cI ||b|8 {Uwd)=JhG@Bw+ݞ.EfpCC#ݜbu HwhybOv{S+=;{^ @tCj&a) ݖpב/^x@eh(8&!oscvlԂE@!a~Ň Be{t0wt!? 26W_Eـ G] wJ=ݭJ=X"@7wwM^ a OǼ:4TBi8wvOiNԊgNhnXŀ3pDJ4h BK(-N&yIbFdML(Nl?`<? KHDp9= W $@aJfȳ|EbY=?cB $І9O",I  lCa.2>BROUK_7y!+-fT]o ~U%pu/wwLǢ ۰8gvjko֑NW]{wp |'-2/22ww t`fn \`0")X^8ф-HI'=iB1<Q }KBFlz"tbs04K(/ocSD>We!_jLS)Ie1A_;R,'<*РZbSu634 Y!AB1昸T "hw[Lri`LpD @l/"u~frJ<cցۘ7B ~$gq8Ϲ*B!! @ !!beFeeEJQQEv &j{B^ ba%#<X=d%{iG:Rbj+2Ng%4FJ.> dˢH-Mh;J' AjNjSw$0!l$͂`eEfvTZIUmdin!i,6U'*ML0qHR4k:m9b'Q gw!rRBrEH3e3pw=WGmy?T%GR[Jba9 '0d}0G*q9 I*]3R&l]ʉx9DQM;$ԉQO']cI}w;9;R u*knC-+1r'MPYaIlye.Dbf@0潧)xjӴ.ѴBi/S+BʜAmVi%F4be7fwTHHIEYqez.}D>/z=uuPӒD1]v Z0ӄy4Îu ],7p̬ՅՊBM+f%YZ%Qi-ɛw~rʗM2ԋS$3= Wv@}4эEm.+l Ȯi#v39wju=[d5>DV=_B{ 3j@ťFU=a"H3#]֞R7y&*kŭhu#7icȚO]`eEfvdHHIUqc'n0q60>xoNG4kT4%xfsWd)miZX;ܸ 5aM-.+=)¡mNbr[7TRV_\$71,#ښDFr7Djiڙ7\Z!!  `.xe7gre0;f0jm2H=]%ERïEUUAq@I92dTEB&^֠P>C@;E4SPRR @GHjK-)4 6&jRF-HY- $h.C!P̞" z+8`G-=JVĒ rmcy}J0@b lnG#!dZ@%,+b|a?6pY ]\l04oG#Ďn?7@ ϺWj[0.j6~Y ؃7&E[=}8x $!Xb2rXFoْKͲЗI!) -N_?Ѻ7w dEP~pնFmW]8XT%NBHp- yP=ƁVI0 :`WO@!0*eP~g;vfF$ (gGoܳVoU%k ,`!!dvܐ#gXCK+ S?9 xl^{tp ƓL@OCr|*ML /)`I" %%bDH pĔiaǍJ Ǵq4@4lZvr T0Ya i!Q'FijseQ SwQt|A8:N,< '0 <%܄8 RWpjC> | !pj) 7?6qdT2=,0 f5>^LJLlS4e?n-D_w)mPeɡ]LA= N3+hH ۺ7 q e1U_UǀzhzGu{h"ŒhYFVK3YȈFS}hB.Ŷ9f(N-flj r"0_F#pwmwdDV=osHm=PWkY*![ks+ݝW'0ob$3}њȿp;ؖ8Du;[WL8-8 K_d~hZacD!mވotLú!i1@X^C=‚!>C7Xz _j7j"ǀBu: vFb2"܈p`7<ƃ_";Vݝ#ݑA;i?l{Hw{#xjV~$bOW/ x|(!%xڈz3dW)Ӂp/ K^"q0}A;;~t*QOeT!;9PϖEyE1%-sZn;]«_TF  3PY<" A,9H$BJ!=ݹn{#!(`wvJNwM}$Ww  ~Fv@B{, # wf/Zek$;#IԻRk+/_=̎FwZ"  XWj';wtwtv̵}z[n֐9vtC!!F{ `.!#y`H`(h{HOur( p;JWکv 3b rҠNhJ ,C!98E}jhsܺ<;{ ap1̑ #!a,0ި&:B\1z!y4XCO4p0O,|  A*-<P3 jOw1Wيb *f `TOjx javc]Nȁ@D=?4ѧWKCC=3o4Il x2Eah%X"8!e*@d $$hiX`I숎)QB;=g(, `ܣZ_08 @u[|07׉ @7؄} _nȑS%ٖ!H @?<΄ lͳQ@Dr.e@zJk])Twh),x,.ICg汗!Cf[H^/cb>vW?T-jBkuZ[9P$ƴ"潤SLu1a/ȠDݙ#9e7BU(}twnATp7wwp-Z{g䤛gOvkrІ i ElovnSR~)],mw]+&^}wdW5pQ].v' {޹s}X;-xoVjsZJF_S\N`;A]OdmݷQB3O`v7"܄ $WI;%5W.RNe> }ܷw-{vJ)ۧR׎wt!r p^IYҌa"{BD{4vkL.xwvwp  @)\qW ^ Xe;Z?̧ݕRuG2ZR;Z  ~2t >j{ah|e;tjv_ `i[KtB"v1JM-WOg H'wp  _k91+e_zo٩~[qc*/V5Ovx~ ?"h48F<'Qq {9 }lBBQkw몯X+ ._{N죈Pwi!w4:[ۢ |$L5( !OMgd{&KDt쥳cfĨRcMG [b ?t  AM, GϮ!@=Mf7a)<-'?)䠐>RtA/I9{@dubΙG/ÐLр/n[2PȘ#!391Dc0FJz ,73BD3$xlD;(  B-<4#In7lH |. Haab00wN$ }vJQSeq .),A138v׊&=#$~inmEhʡ@wȰ~ipmy7zwn8*ު2qd?6'tms=^XwxN tg^Oۣe!!Y `.O>"g0$=@ECI ([3lÔnd~R"9d(FY}wQ ÌG-bM7BHI%qpi)A>st"k&SúwT.MN!E~8o> ]dEq/ 0)/# x{ 1!)NB0!sF8tSj*J@*UOR$]}QDi_T'O+_\ K[2v@됸1L% N|UY5j *Ir4]B20`# =He&L5& @ۯ&]<H %$UƤ al z5<QR*"LLQ@".VTU@&DUFPD`@@* p 0 43$iyp4H@(!$RSJ E*Jvf Q @1dP5fŖ ! ,3 RP `:ħ Ͳj& ͷ~&lQ jKN`OOitUUOvHUHUmUT_0R$Rr$]IdrLZ{XaHWX`;(3@#3) |VQCs3ɩG;#pD=p*Chx(4{%Յ3k]uP {]Z3~@ ``@h R*bT0R\ @PgH0XT"ʹP ,V ET @Q\QR(PbI@7:CZX>3w`"y0E/RicP@:( uj!5Z3UtܪJwP vV ~0(SHTPl1G"@+&+ G@RFWu2 @ ĐaS@$ȩPRn[`*@!+Hq1),SM/0 ,P$M @I(bSH }8iY Rg$gGD2Bs "hNH+x4@*22 h @3!<rC\rL:VdB,W[Zꚹ[ {uNkjZB`+Ho` PqH =8v1@i5 d  1H`%ɄM8bJI J&$0 IHR0$!!l `.!#a  IiJFIIcM $@" J@TQo6 `x7B` CNpI PNPM#[a68&$baX45$ј  ҍPL/l7ÒR;aabUtb`?6%Q4P~V5I@ vʢUeUW]_g??"2Ǟ5w^ ,{ K~3&99 ۈp.!?, -8CI!pD^|ƖTx `Me`&]0ms4|| {\IVª"kR{PHFZ%}p`PhpOhP'"s %|ܛSHI8?cra4o= QOaOcX^ڒ 1ԭUeU\8{\U]QmbzIS$R@$t (4g `iI21MC)?t!L$t/=Di tL 0 0n_kdpqH%QLQ| `BA%$V$iY[ 2p \1 w^B@,@a T``axj_D@):Hi_!P%@ 00q`18 PbK&4r4pfI&SgKn*AYLo4cϮsNUU]W@tuUʫuvN#<\# Фk PUA))e;%-($!gB3IQJb,wшkU f-6&<]Pn b1$jJ&)#$1y.OgXckJ2YDB0i zAX x|84<9CD#3ɯJ屸U-RgD09Ix{Z0(?;ۖW83(GFkW݌?D1\- nwvjS% jhDd}߹@@=sBZ7;,+ʠ cpb=YDb+݃ݬ¢G3 JxpZ |Y?8$\&y9A xTJ|ŁΠؐ "4n!9է9m ;"Q(S绸h˝B傀"v4s1`6Gv@EpCaMOv"S|eLwEx-Jf8Pv:!0Maks"S@f AH]p"Pӂ`8*ໝmZgU-KwupC)%Q&I<`c8 œoY%%C\%9·kH,_s4 k@e k(3hCK^DB0iBPwԒW/` e9p̷88 RN$cFސ5[s)`  3PPXH3R ^p6v!xmu]]=Te  RhDzh ~Ffg3( o`G ´g֔_lhuaП#0 D }+VU)[Έ$  bk%!! @ !# 33hm@[X)},9*{ J:e3ctR54{P1 mStRI##,!lbUUhUH@M%i"rbpTYFIk¤MCdjUNm:N1`{POR+u%_ԯ,vclyH,4Z 7'#/cRPZW8Y(kkn5Z՝,8FhjGH9ֺSaΘXƑJ`UFgfd4IRQfzۯGM"5kB < JĨ7XN7[>YƛDs\wīefJWbʵNq`JQbMV &@XÉ^63"ߴ3be2.I%upM!j9w׎㛪-&@rLIHcR68p1[4ZOCҎ)UL(杂ub4KXRKX7dLڬԖC|)0%+⠣Z2gvb=(Hm^~E Fae?*O '$<^`$zBeLgp%2dΣv=e-5SHqa0֘bǡqj$]VI†W":6NuC*1Ya(cEB*(_R:c2Ж-*Ӻ#H%nlxw95Zg+ul 2B撧@Ê2i%A5&D8\5cKƊ8l6eWW9g: Bl@`eFvfT4IT]v%m)G^֏.r*u1-x}4. qhVJ}Dl%!Z)v.D3S\gadD4h`wTР`CMs4Ih?+9#퉶 -6idWzyxr0ik\TwӣZ-Ujn\TihT`njH =F"⣒k!vnwEWBJ:R xO:Mŵ3@6c|w?m4.E<֊N `m酮MRkŭbdFgfTD Ĕ]vކYn-F4ݑ[$R!k% 3A,9X`$f[xW̊uMՠ!ŶB}QYFYhxH<H*Xڥ(,"B$ &݅_v5l*C. #]fՇ(K2Z7rםt{M֙Dj2$%Ab~ZYXRz!!G `.!%ڴv[!nG h \ǻakMB!3-V'; ;9`y=E yh*#hЇ8ׂvpms ݹkvn3!Ih "1N~2rxu7kذ`w{'~ 'pD fOu& znw=}m-)PZewTq,N 9 E p\a0#ͤ>''{<y.{9$# <@uDO- 2+h)wvFdG7) _} "=g AÂtA= Bt=&g lcg!(!/?:܉y-D dz&JuLQij2Bc ${\!`g@'4D9TC iȕ>?%}gۭ!$YC+_su%I܊mN4 vZ!*}aeJH#-dhX3t#-!XօsZ)4Rq!YOؔ73=GRƐ HƗ?CU&oJSZ~ n Ľ|`L>jnS1wˀ-$N!_Şby2<Hxg&0Gwk_d)Tc;Rk .{A < 2R9˓ֿ$6F "PǶj H"C H7tvQv>ЬY%Xy̤4 P`F%9)  'mXox#`H"C-]m[DJ| ??:̀e`R\,#'r@KA6z5_`}v MMXT Yfr]jǡ)/`wj$!g'+ e B=yB@@؜Z⇦;.(3Q%@Ȗudd\ܷ_5`?e š,XN O~`S $/9fBkaV! 69 %ݘAx0^9\ ?[Tol@O`VMuzRUM]%4!!{ `.z,`op F8?As \@|`>#T ewPh;vߐq0 6/X"CхvYQ_4uO6ZC#@{S<6 N$%H &GW+Rx SD"X$ԌI'|"?CQ `(`SI ]ҏzkyaP`g~ta!I_\BT*\ u3Rdɮ4ԙ0 0$` _g? @~&5R$ЊW*? OŁ0QEWM@=H!R`04aPi4M&aEV,B `R E\" (`)-$!/9 )<$^&0`hԌ z@@%;(5 0 7!)(Mi@M`,`"J@d"CAH KWLmBy{jX֩UUUWUU']HPz DX" @A,lS&R @Bi0@҉'BI0^BC !p>Y   QwQ(Wy6` p`KO 9?n-z̸\20ߐE Ho/p !DX"~ %7Ao`%_VtC H 6\:ex4U-[r}:& Z H/JVwuι| tPuUUOQv8:@0K%#&cx舀+tJ@ /O)FB$Æ`KB(䆓s8kAɩ%4 ddF<>#6#H0A UZ%n6ֺR= vnʪU! Z` ( (xY8,ۏu ( Ͼ}0M/B8ZA_ND&TƤ4A&C%8?l>ඛ& W-fE`27H`Aj!hrNgwwk"_m8 rj!W!<T IH (q-А>7Pa`;O HF`> F%"J JI m!# *RVpaTeX |XA5( $8lq$I$~0:VN)GHa-bi`[|HtY|R5lxl=h$r腎X 槻ډJWú3{w.J T/&/쀇3To,00$ tX "h`YуJz&U PbpcCB@-dԤ.@p}q-<#n*"1OBIK?qT ,)+@&`!$4 `<N%JwX/W8~-! l_]Eŷ\1 ( vXNL,aBW!CfI&05=!]'жi]WvQ We-Nl47m <,,*A#1+$@4A#H`10`g< o&l(b1eKX_wq7ppsؾE^ܪzx  3Pd%h0}!ourJs('bB D̮&Y|v* /D9X|{ g=a(~' ~Ff`L AH"Ax//;XuݭBBS gjWB e`ȇ'={K@  3oǿ%|Jb4#Ӏ =<f'I3I(z(ՌȀV< ;9`y=QKά8R:D6PUbn\O FD4gdF)89f# "!y O`aάOZ]WJ@lH|$' ~FPb>m}!! `.!%[`*MH Yyc%uPH8N$ p@O,,u`wF">BG 52,@Z̐Ey\>gQ8Rpே1%BD @ %t8 MbB !?j`0{k#; H(c܀D4W޴Ye~(b'#B,Mf uȄ(<,7ஜ"f}Æ@2O C(9AS"j'\D1t9lzQL+f[Li#0;]|A^>( OFB_bCƵS$|7'O]|@5]VTXN@"A#͡A ]v @A +/C>ߒMt .^,=!@ iO`8:dXF(lCXJ/z{=F?ߪgd)JF`se4 !Z!L% ǰ%%|bwwk(^G7@rv$<stCїkX{0* WC&:~`臦kP.Y5ՁP.*Yl~cE,T)0p,/8"P *A`fB21W`Z\v$`&F&.xb($i(C $ضcLZ ,AB]F LFAx-wڬC`XsE.J"k;ɀiQ+X<Wd(s40 ggj)p{Na䚟A@ՀMFD Wա=4|&D% BM z BQɤ231\)|(n%d֜ &ڡuXzs_\殪i@][BTN+4gK'n@!! !!G `.i H H,b1g %0hY%aK>07 ^`\eCGA7%A<XhaD~['  0",EW-WVMꫵGj+OT!H!"O*I2@F d>7Iۀ bI00C; (D€4Š)9-)D*!\bL0hB`ɮJ$0| 4iH %tL9_5|'b@ŧXf9噺$jKTycH&8cǀ{#倕=6y)>#vUo'KU$Uꢕwxc ـ^Cbf& p&> lL ft\r`ؼt^ a!߯]:_kGp Hiz|sk]I\|3HETUB~ T`p(H  hDU*Br"ccWn B7HАP1 M,B{#?$+`0!D'4 'JF 0PhAa;R KX$Z~J@rCRK@I) % /CKAi?i0&%W 8Bؼ5i*0I5USI[e*HETU@( 881't @@tL I0M400%lIGI={M` c |@\hx>Hŏ,Q%J.I>nzאBI <T.ؠXwEUVUBȨ(\5"Mc(P? 1 `1 ~Z0& &$(  A`P0 (0ɠ'&  2DfB CA-Y` JNiI4E>$&>1YC@`R(!#RH $hKp.5$, $!PR@6ȉI@nBQMB P,8UUry+wp vPUUaUntؖ 0ݿjy0  @J̝I" ~DWS"~D RjjL  vˡ0R U$ 3#d{Q!  `2+$X ^A>E(+ `P@<cat"'U@ԉ0EFc   _MCX"}CAri QCBpR OM,1)1P7$'h@tDcT0D%iNB(4Q^6Q|\TH v"]YCuU @*6!0`& ! IW2RhETbx@-HgBc2V,7;,߆M@#>EGdɏR*xm $x,AwEB&)gɍUa" {W$U" ԟ&EAd"Dy$UAHU P`) eLF](P/T `D\4r Q e @*C$ &Pi4g/bɡ cK/$- G;ЇR, lrҠRyÚZ#h&[$((Yed=\S FEqC `FQ )ryRA  rQ*bPP5 iS@;!4 LM Hac!#{ `.!%YB 5 :Q$ !P% 0A9@4."B%W ?cpׂID=~8Qm13(z~>0@QwJ~H<5rp%_'t]ܧ.%Z@{׶`dăz t FM9G9O4bK-$t,ŁH'ŲtMNt0?h0Hpw ahOS#bRV3vϪVMڡ MS3paQ8hɅb5"hF<0M&HBK+R?JZ4hjFjP NSD€BBtH, X"Qp>)8Xh;? &XaG @015=p2%<@7ܢ$ih,ی)`s>6UXUU5fUT}-i %'ɬŀ)7Tt%̀1 $>zzw$@)2%$' $p ڼ =%dz/E{@/nw&OA`hR/iUKUF] RR%S~Ah{^귱 Su땬޵]ި_cmf14;9$#I{n|%IAinQXt!4`B*<,>0 #YiB{ؾ7 ! {9,a k˻Y#wCu+0@jY'LaXw{=I xo OI} oȓSyrc# 0n_aBU /}/; sr}(okJ;0%kf ۵|@w i^fo[X=<+O9ra@LH!JRw<Ɓ4d1r0{s,Sa{!ݦo{2S?C}@p\{GDÕ@uvيQhHhhbRX ~--,Fl? Q0[jk}斂wvIj{kC;i1mn2j|OthwX @ &F7r _s Z{ݹکr_'?'~^9)3HĀs!qa MVb&MkR{4CWX`ņa$80FO;wb&I'p͉(BC𤗆&N/ƣ8CZx.rKFS  8 pA+@W@׎-x0p_q[IE0h zN\ w@66 /M9+*a 0y8w `{nLSc)a wwpL+[ܠqHS4`~p=B2T.@@3f+qO:RҒ}ߤt aaNq0t/C#ȂYv# A_wb]+$']4 vNOC} ЂDy)geB x>*ww־h!^q"{Yn5pHxwvB}gwdga!6% _|(OH%|# ,^%@e8 pI䵥r ``NZ-rK}=󦼤 m;.•Zĕ/ L|kj_\~=kZ1K?p\f9).bߥ*m/=>]Mp#v\ L`O⮬ﭾ5jJJvED;]']L `@!МX2~kk)rRA,w>PW.0t:sdߍ| dW~ݒ_zD|3A 8<7ve#%II/CԔ !Ќ HE25GeZ vl<    `%K[t:&a|\&=U70Dz.k!(,CK\֭|ttAlh"i  ~м qkpQwl6qB[>UKCKDV1!"&'`gFjYhq ݭU'ө>  _Aww[+}B y'_a \o^n8XI\a4r.'p $ I8{CѳRI3_`Gi=IV .^,=@o4D, HeZmRyZ$;)+X XR[Kߛ~Zl<8M+ 9HB Cp#-3`G:KA AnMQ h 8t;j%T~"@٭cCŐ Ȱ*Yl$?uj\?5 /3fH$~3 q00AmoC ,$Sd!? {3I(>!Yn3JEG> a}1J@"YnNJ>Уb&6LCUQ|ň|4 \ \Ph&CKRQA_gC#Ih BKOd#tҵ1!Lp @5 @@~2eq%-VPƑd%oC,ѐ@U!y;%q[6?r3z`5& B,ds;sYut`(PB&ZCy0L Ģ|Ք&j&50&BAA$_l'n{ $oٰO߯,X7};V{]PrX @0d7%7On~8 5P 5CCM(4Y_swP g[s`!#, `.n>w B0Cv҂J7^pfC0 Ya/}0j tR'Kq4now{s0RxĘpHA )$t~}V @B `!&Z[bb3:љ92 Hf@ 6Ax3.䜅$on WpDfy'}C44?ЃQK\{h:٣6?>W%_?t}$p{1=Aӂo V;+c :޵>M(P$M,pccmŽV1^NQit38("Tg.r C##MȒG2I-|.FS2l h܁.U7Q4$^JTҲ /5,Elʬj/9O͔G?P!V23%t"r7EPgOśpFۄebe6veB$IDa)pۭ˭jaZ F=M}Tp怢xoi%^Ick\kCk0Mӱ&bZT7+83R'2c1iKDZe ԛoJ9Esh+q XIV/hyCQJtΩ@)brB;g,[[jF%w7x*2Ug1sK`U6feSF Ee$/]#T.` N(ģLO_ Sc Nd]-eR4x5!;l6sjAk۶c\zAѡRq92(,BIc7aKw)bx2RA$q4r#c~'V(x{|CPPIis f4tM<`' # 3/a0ؤ=bUڟ6qb|ʴ$懶ZLf$ZZD NxN0"<ojleN/r:$  bT4TED;a$$@QVZm#9+Yb:y(k5UFAe;_ݥ&٧v QIf("pI^Iv)10SraģU6TМi s3 &;)[؋꩷To\hV&.55դ 9j̧䩺U:S.,3/J^7̈́tY1b i+a`T4TD3H-hfMv\izX~i$I)12ዐi"{d$:IA,#.+tJ٭]lZyê*bɀXF6 |vKT D1< Rܺ"d8401sE&iMJy.̹@ݭWRs+!QO(ߨ@bD,v#Q[j,궾IQñb &.|ryrԥ\ j% eg P׷0Ĺ*d>~G z.1iʱdQ'HbD4DD3HQMVYeq} x!/vZքvWM5wTxgRDU-WCDqrYЋn]!#SG `.q׹~=!Ѿ(K0u{m^Z'6o-H'P@5&X`:& !T0n!N~jP ťL85 BvPa) UwI4+ 2(;mc[o2Ą_,1|wt@ K% ŧч.;_p@;q`"' z^ؤt+yT3qt2 {?P~d?NỸ \լydݍh{,~OKGO~7jGny\[͓L; bs%' !`D'gbؿ0Ks yo2cY@CG uT1=x(#ޒi `hcYpŞ<ծ<Xi^44܎,ْP6G n{2QXP[v$ߚw6D%@xx fFY6 ?־ߑzӠ.}a77bo6Yhi( s@9  6'`b˥xs_R쬱?}3߳'ӿ:6~M#+!$tof?0B&$v?e`:I q50E~_X΁e,Zy(?-9&_ϚBw}̟͆H CĚxd'qA51߀'p'ÿ1<?p ]7?ޟ>p77:#7p:O5|onnuq'4.[ghzk{%{>O AKY? pל[ мOEze?7殰{nhC>5bx k4"!~縓JPXgnzk8hg+ Z((4wSr?nd>d ҉bz?r,Gg͏A5KOqgw'ǀ??o6X|&~yr τ䄀o}Ԕ0-#+xNG ѿ4K $.櫏"3(-(JwϻC6[m7v̵տ.AAw<_J;~ CO$?ߚ~K2u$j<?= wA? He@*Pix7eB I۫TbNŇLX1\nO6ۭǏa0=C/_t#c%ppƑ?DҺ;#5\.`FH.*d^MW1uӬi𐹥$~k >" Q;~l\鳁`axF~n[@/&! *CJ!#f{ `. EX @b _ٜq6@@`P@(B_tC gD0(Z %=}@0&Bj (B_>p@+Ț K XG$)ۧ$ IK~3l?ZLr7oP @tMJR042a31f BI|9gjr{ͻ" جm{la0/iH`Ņ׆O~o[d!q.O Kw'pIK} o'{q v.;^&v7=7 7:z;dqX8;`lM @>[2| =:k\βn?,-%tĞi>nEz|/2~6u >|wfqt$k 8I=Gr-?5܎^" JHn+q&YIgZy=ӑs_ϕ=`v0/^e`=q|LzrgVG"Ȥ ; N p^WuL?'D^#2yr5C HݸC 7?p$a]?7O uGxx 0hD?'L帻7ǁuO?[9?,ۛu$?CȳJ ϒ  -b^;x黀F]#MsVznWaގuv$x7p"E|7?g G? hE)O >"4{8j?T^sg C,|Ӟ2~K(`-ߏY<}Qh='pҹt?(p#J.Hg72QֱֺаG1hp6}I5Oo< ︐%~߁o|p|~~p ksD/ c$CMp])_z Y>Xߐu djy PA!mN)PK On"bqH%9(^v 'u~scA\=NPbX?hR!/G b ;n5G{8$"/Vd^|R1]4>gЇɠPҞ[l*i0PɄYn<pn _w;ֿ?pjR!+ CIۅ}\C|w^`f&<aޯ۹_ȰJ:?Azk4Hѫw@XVO߬O܊hcrO;Ϣ0Ԕ},[GDlj'~<-F?k==ě p"Ax#}ǀo@2k{R[3o~?s?^ŀ~?-PaoZsq'd4yF<в} H Rr<^b5t*Wω|H<ī߬x5"?\> @@(d-9!#y `.↧FveΞcgK{OX'`7%&Vwo rqcsw56&7PvH`k~[=`{GEiEuqu-@IY%_R̮ ŀbY nN0G0 6}2`ìo~|{<~?|7N?~i=󏁼O XhX7>(by;@s` 38]w(}X xŇz3'/ W}vs,ڲ LZ?r;M;w6-akӶ{ߏ# <e;q,Y0eYoЄ76[le:]#F8 {T<̶<~p8YZqI[ I^f/qE%.=ϵg߾~/Ww[anɧ8a.KmO 'ܡ"|[͙ҏ'Fxu,v<i=o?|vw1X< &>p7͏`3'G/P0+]7p?xNp7F hwtw6osx>Gx닟?zI~Oe&qN_>D3'; (n&b+8Y<'<=^s4Ny^8NsIy'Lk=Ncdn @aba/ ,P?Y$&B4#IiĔ')?]꓂j]N<,p|{>J%Yc!%#W?~i8 @N2hLaa ~C]eI9o1R0, ,`U9(zIL% Oc @Bb <]&P$ ,5\lssDű-=lm`P<Tf@P3°!ܼ';2yEs)Y"aI!ҟ֔`7,^Ii+lv*+ Ɠ@m>\wn !v ]{8q4[97Ėf Hih)v%+>rS'ٖտ?K7|-3R&Hߑ!)HF)`0&!# `.#89+}x`X`bɀ:XRm:pߏ`;,A1Z7(15 X,'&' O&dL!S dg~<%t"`@a0QHVBfB6JIi7E0QI.vi A,.$KPRr#L7#IrzDT3;|%#ý#cs8X0zuw<,+^w#"Ad#uDt ,px9sj OԆ!=N*.2  ǖ@ɀTDΎM-KG ߒПpa0d  5;0*Y}M=(@o$$ـTM~$ E 7-! IyF# @ BLA 1$ Bo)zH:+ܙ$Y1|M h`n磹9(bV9B>y]IPbW,z[>(Bkr d TBܼLp7ђx2ﻁRnF0R]i\5&pȗ%ɄR][Ov6)|#rOJ=Ҕxǥ)rC؋ ="W)JAt/9+y\ RiQ av~P Y `0 BvKYX ! ( PM|4 &0 Ix`ۆ侌qajvAi(g@n`Вc?χD҉a sAAY< /+QXoSBaD0 PR1i8`sP J ( PaߔА̝,cn@@;Ξ`eﺗ^`ŖL YL}}{A8kjZ*FNn[>P I1Xr`rƣFĦ5  JI! ,tfVm \1 !I>၉1XǨAo9 kGJI4T|Jg΄3 2~/m *w۶v4CxiA%91qq`0aXyPn/?=LN >x5O`E! dc/*Qo;s? Aha;yvp6BaKR?bmlAC@_NO uv<ۘa7PhiX5!(C7N?>7NL(C|}hM} CR)dJ۶nvvnZwO F"yԀ~_t7ֲ36qː@j&&`b25)/2(0@;;԰@XR1y =;/'@*0 @M RR=-2 aVҎ⳸[^$  5{IH,)/Чg~}:ΎW!# `.!%=B1OhTH!%)OϿwǽpk[udyLTɩJIi߶vS\0=`)vZ+|=񊆾:@v JvHbzv n(|<@+BѿgJwXѱra]%%#Ln'"hL: Hh!?ļә;:7&C;Q(H`RQ+t }/ ̞מ&,sְA{,r"ww{5ǻ"%pݝJ2YDB0H}T pxp $ ,)H)1)a0#À!!T1f4=}x%_f`? !UqgP58IfFC(s9)'$^;Dwuf٦۳ e4w>N =߸X@s X=j@D/!B`ܿ˻N9bZ|t*ݰB9a(NZH_7!`nlp"BJ `fX/'o! -=z꼻AnMˍ vmG@ ʨ K_si^'  f*x(?}{kwwW뻮 ?Pwt1\ }h@芌4Cb1]E'C×Є' c<$VcP6KC"AONwJ7ݴ22`JcvrRxŀw=u̞_()(' |? ")#K}~Ј؊n`o ?tBK?~ݓZWh8G^^O ux* P*(߉뙉8L[!$6!Fl*5/U>X`^[s I> y{ _ԣ&lmb<>_$!%% x0zWDF0\ "#:(2Fb!N@8Qc qZ Wځ0B_P̽ bA\Nq{.~1c}3~S}=Ђ"{wvGo@ҽ٬'QL+f[Li#\t}tw{a1Z`H산 08eMI[)5&Д8.&;f-±%%4иwHGD\Rb5pKۺOp{QjûZ L'`lqxyz H~~CZ&2Eb!#G @ !#]TЕS)[un1@4sbU&bmNdI#C]!4 ^&.KבgE]Q#-M[2ezu1V.i-x?KITT\t7`%j50n6^OH,FE ]FwSk9UUk9ZD,fU';eUm5]mGi&4`D$C226܍Ri~(ߊ`ub}ÍǪʌ-"jr= O6v2g%-tʱJSnJRu≤,tV1DڕVVR"r"NiP=DjidS!d Ob#:nr"Sf7\2Tpcdq-PEa Hm2Y!< XB4rdV(RZI3R'de-)&I_0Q-3r.RPQAthY5Z[ZJJѬBPTr΅bC$C236m**Ui^}}iu+nƍSjD\q*eIIXnsՑ4WZNx 32\B))#Iҝ(ĚF 9(h\Iu"FH"M5aݼYax;3nHxyǡ5[dڲ5ƌqܩDH#sifEķ&9FqK\j&Sj%.F>-E^S({<cCÜ[$T5"VcКhF*mN5M#0xAZj3ms8t[Y\;-N[)q"pD`D$C2C6M*⪡EU~~qm}N͸7+J| EauE ƜO݆eJ,r,8$ eK(3M5["fDB_ Jz:.F/ҏ-5' [J3iΒL)Cړ[iwg+L߿pلMu(Z7[[tcU4u(xoV98FqNc`8 X9Hi\ɨ5̓{q G^E MIņF%9#UE13DBt"rIlqȆ$ mRyEjilqK)-Ǒbc$3&I"p DY6uegUX}GY՞UƔuYUqaugUB)2ӢkNI˕88ejvTSb&H٦yUS]Ѹ.-]J 7BQ$Y,&7鴜7+=WưjQ[6JMXRUPvZnJFµQ Ǒ,1WElph9F V3WI-F7Ѷp+VQBq '- ^9I0Wo=6i8]{NF+H[ 9E&[)R@`sE"%"TH$TAEVUEU]]iiC#Y4 (g%nVijrJeJ W"Lr.J7q *>D5mV_ٵ4Bc³~&}+;_^D\=yaTJ5|YQwSD r-i 0L:8\MgQ4RF膮٦C4쓵m\0~]@^Lr3@ҿx!#{ `.1''(֙k/;/-ZE!=.;8-܄;+暑;" O!ɉHIH/58?#4)j@lYi-h /A?##-X3Iv Z"`//hmTS=&BK ߁\:w4g`|&Ѩrد٩uLT  tn5$It# w& E6]]=ݩ{-,,Rw B;5y䷻g DOXPhbX16XX&K/`\]zR뽚mV\E8l67 Db Nղw^!-ec$X3uv%Fj^W6Z'{[W. @bR ? ]}l#/_t%}F=N TA<D$x$ %CD_Q| \w[|5n;JjY@ Pl4`pC8N A&Jkxwg=$Qac;Y7xj P ~Hlp Ԃ4 "{Еv_.y~Mҕv 荢MeD=Kdl$J4Ok  _,=x(| m0es_pK\YFBL/I^*IHeҗq.B!w[x yz{kr],;pUxwq!v1P48oD/FRyy|d8u4}? @% Lc&zQ6Җdx`d{1?v0Hkp å @Ow0'9pB=G  \A0`_*.b2@V px,]DV7-Ђ,jR=G1zmdxד0aLbe>G cr L2f(B~cy^?Gkn: "ؑvG{?T|Ykħt2ya7itqQ0k "1$,#d'3p?an Kٕ Ip_x1 :};t B)p8F9C'di L81 x +$'5/UP ?~[}nI$xj&}6: dJ '?7 4u1490`<IN'PDP |Gݛ3I`K@l/d{Fw8xL&#iB9iMa 9x`|bi pĠXYaXY1('ݪi5bn}IY["עNmUuse݌ @M\P5PflH O3\JQ]d{qI'Ǡ i2ttE U7|l*M]Zwss"U"UHgwQd!g }@q@@)ijx(Wk#^&ф1iAY,3?r``jhR9 iPԟsca[zڪȩP5"E]aUJ$s/Ѳyd! JFCmFf_d48!;ݽ4,CCpH ?b 4}!  {q)(Pf)p;+I?j(sBK ,Qa; WP LB i,C!!Gjzp v*Uu"^T!@PzP#@zI( Dy4EFI `#̖; O840 6#8vQ)Ny> ( N\:Z딕 v1TS1>MP04_=y@@ # `@H HMI&U\q `=W $F/HbnF W.I#(p0Y '1@]000 EtBA( c y熞5_65VuTsH &nDS `H*L `W]E@UD Ȫ Y_uF R$I"dHN 5 1Xс`N@Ѐ/xQ!y0oѐ%T_g3] '0 smwuORU"uȨ 5'ɪ8nMER*`"*(t U"ȁ ({&# DY0*@nQ p0|MID xL hcp%L``` C@NHI+HPQd2`e0@Xd4J $7R &`aA"J+}AC`@΀ F ( Z:JܾЄ8 /OR@ rj & Ch%XѨH &{yq)plYA"vV}LKZS`yʪ: rSuM 4ş+(݊?l3'PJxLpJ@@|_$®"0;D6#7 6O&qzVa/!JF~=#Ia/E$RxA/ ~$ ~77A+ I`WI]<~˃_H!‹pӊX l꾹TpM5}F*Y 8nJvBmq=}  ?DHߧc "C dPb8+!$QE! J(/ɇpq8Če:ēElV~F@ 3, 4 t3 /p܃&N _7g4 =7PfH(0%҄)LEs?ZBu_] ɤ_wGmT'N!# `.!'F!${cw4(3:G9~f-!#8X Fƿ4_=Ocl$]D (`!`sA,Ü0Ɛ~~HJP3IAdYő u8?p74DG0d%LY+DH~XwB7t:<JDopx.eXaOo௃ے~D }??C?FQaq*Qr" Szyn7lfoGW3m?H8y7 /߻r\OU-`R1Qʴya)@kYy[z--Y]S"M( 8)0k0& ḢPl?!A"ي9`ҽw_gz1JiA9 F% %f4:C 7])T*kcCl<8LD=cjk Q8|,v*͡9h l5 ڴ<r]-OwVf5:_1I`[<&A@]' `9\;Y{^|/k6_JQ< &iTSm{LrZ@LW &0`wOx3r(5CF~IrO#~ApD: K_]خ=O#F& `tUx# `@ 446/;pG | >DHw:5%acד&{?PD (?>ZΦK^` `ʠ+[FIj# s93 4џԸN;xf]^Cs.UJ{0N#I   @ ! X}Yie6#%HޱYĂTWkM}LBEP!(J[ `XAD5 AYP]O-D=kgMq|[f7eŦxZ ǯh/j;&s洫UIG/$ L&rh JJ $ r2G *-㮶M|)% &,*["X+MrXQDPwhS7s{X&Mړ@)p;۾&hG v"5Vae;ex[`t;JZ4٨cU\x6H<CJ}#浩"D&!~ l B`k;5F!ݩ_wwuV|؎(?vä ;!*Lsk_jkvm!AxJ8#  ,C48ݽPZ 4: >5y5/+ f!$@ ~A s͙H TBj]H  _ਘi?!NwtVtQ^9 HG`xN(=׎w~M";!)CB{ %MIDOD0' O`p9#EOd3!ҵ ܍Xm٩Z}FwwAKO )f7蘐PK C=x4^M""43 YM1G?b-B+T5a 5lP=5#j|8c/eM`sd! ~`@w1>+o&LIǔn/ؤ` okL!AN1`FWb_ ]5ƹ']6*bmǀ8x__s`l#h@#oT '?#p7BJ7mI׸gǸ8G%znfa#Z8Ј;)p(|}@u2!Ƅ>_8@ޟ34 gvW'0hp:MA<`wacl G+q}A@wf? 0@hF_enH#d\&;g۷Ă|L S&cOT!Ƙ?x;~߿J!Ԓ9F&`jwEoHE oa9l1Kw[W4ڠWjksIwX["O> & ёQ&noRUuwiZW6=Uw4LM) ](@aK"L SW% aea3 4xGALiG9vtdrmpfju銍v0KӥeQ%Ki&s4 #&)uV'ob)qBS92aD*h8-VV%dQFf^it h[ə߳5S`$EEұIT*2cK`S33#34I@UMfVYqmƛv~EJdn19:r.TNg3 $T[uBBkP:jݶe.MMMңDl3*p' 5Si+ɅkFڪ.^Lhơ7aiT2{ *CI!@i6.'z.UcnEjFݧ;,k үa0bhNq'Z7-ęH+h; N<-2,ӊW*6rDĬM]ڇmz"iȬm8h2M|\Ƭ[M)Ciđh6\bT5D$$%Qj9#I]vZem4*Ȩ^̿~Β-v8W}82YQ~;!w-edkq}dt9SiQ$-aX<"B]pI}Dí'X .z>In&+0rf%r9i6S{7fz&nWLǎxM_Q'E!hRj|_jI[`6E2;ۤMTWXr+1h&HeCrBN%՞RF !ulL̰I5 gөN$"~ѭaj`eD$B"H& ,QYeq_mBdvdp)\8+"Q|Uo_Z+i9»q *Dahʭ>.!ٝB`$PM4p;NmI Z)mUDѦ*L&Sv詒8o7YHRiK{0a[H'{Kŕ7-ZդZc=1wEk&n1U&͍ͥ)ͭu<&&tȔI{Hm " S`EM,%Ź˓ ^(3]֗bc4D"$9l(b-#P=fii`cU@Σvf4 ϹMp*\tŊyIISRa 8J9V5",(9^0"O 4Z%H2KN"T\32wWy[``CB,1z ^L4s 2A8[O daT%qH F\h19tYA&PĒC,Ơ OԠi !@WD%X0`oۍ tā2 /sǭd ǜ'_muw#HR]$U;MA ay)J4Bx0ᤴlZ$' $(C03%%  $@@`=nI/d&hDPhӌ0:r wZ'UOmUM6z)zH}"&8LR+10hbK($ c~v4bi(`RBI% ҉y9 zI#?%8Z"!,$@3S4 `YwD* $by\]XR4H! H1AWp {.)(0E`W; @DdH v1(JA A]" PDB @V T+$ "  U@ $NUP*0+" UD T5"`bK&KAAKI|b3 |!`?@*GIgǣ \~!$̞nu*l*Gk "]թ .Ij  ! @BP Rk2F @&PdIP) 4 U$L! "@2&&?@iA}S!(]$p'{"Uye 9HkЊP #`U=A6SQQu 0 Y>*2*x EPRBQuL(H+Ҍ01 }(JPI X`lqx )/ H bPAD `Ip0C&7! Pbad?I@7 Ie+p*Zpi 5%%2I;+%6Hj,id$0Y07OX?%8iYxQEX/ bF !X͸1(A)em"C  ֏ix[; ,v<#%􁔂8{'PԂPRJ75=Nl raTڪv9PO`=XK+$$$,"Io/ ֆ{ ְ(Zcb P=H$?C\H ġ>=O xgD6 Ƽ@1΀dސIqB/ h7Ʀ _ĤS%mHiE4A0b4#lFI4#ԽUUl55S]QVz1Ҡ$2 aRPLdy@#n5nFHYrN mP)IEnK)&t 6ձc[r@#rrCK XI I`&0 v`1(4nY`r`NL07`D,a>D 9sCU1Sv뺮ú4.ta91*mjCf$>;x%lVX1(3.q_(- .zX -?Zjеeg8#vg߰x\ !%9 `.!'ǯd">j՚~Ug JIIIdiz~9ovL 4F+;v;ێ /@Y"SI=J2YDB0i wy3μ| /Z_GD?ffy㲠gfSvLB-陀Et$,4@AxJHOIh~r=2~[ۻ\a(P"/;AE<~wrS-~:#QBy}Ms}Wڛ&J{;zJw`D!qáp5wP5w;!wzWh뱶{QJs /+ Wց\#m9 i  e&潮ҜD!   <FC<םMD0pN!ҬD;tGB>,݇BЮ w{iSu' `Yc0=\4,kcOK;UDGQbkx = M}rstwOwVp   wqHau݃C;3 AwwZ1wwtp|?ۺ$Y cLhq-րuDQJ; V38RJ{,K˂wj¾Ewp󾄎wJh@-wI9 ;Ճ#qa5xqO#h3괯"~SսܮVp @5Pg"!r(<AD9GJ}6[> @? ]A#]/^OO_aۊ2rNOp%wMުAx8Y 3"bo<a}AX1m~NfC_S;"jx`a47MW@ C&%%)Vьײ%٨ǐḁ'p! !`Vjs*SfDB/|B~I; _}a\?߯}xp"}; FXF[|H,G}Kչ: Jk+lzd[2܄"c8{ZAx^5M}Q'faʇ{;*piY FԪK5>ZCu?ؒ `>. j.ZEOccdM>й;A^UҎkZo腭ǭ7/9ûCFW ;~{؄)QZk=0¯qC`=r9p ŏ%DjQL&ơYD, gosM(ݷ.->Lߖ )Em{Ly>5tj]yBaP'w%0q#2]Cp~$ uK(, ZG3:R!%L `.1)0'؝ G7rZfH2'[Qs]4a)!8!}!kͿw6]%!6)0a@TL,5,iA.b-{4!شmv.[|4\2>i'Ye/  MpW-wOı;^Y'Ruzou?"3Tk]( jN HLD~1ϻx`)m4浞:{tFbsBs-UvBp  #`Tn,Z(jTyG)`';#'?Q A=;CwwqbPSvr]_y /\*dS{^HTvas{Bw'RC}F΢bpaC7QC(w`E0ZԤ{j]H  _Iwt(rv8gwpY`|mcE vWB= 4!Z_3lօCx. 7=;o! )99CVRwʬ#@})f$R,v%t <<~z%O8Q' hކi9 h[GwXT!ko븱:{* *x )mo&B1E|۟!5aB-Zx2ŌH.j")1``q¬@@IH `pHb  !*.r,ȫQs~n~>8m]+i i(CH#95O(o$v}D2s=|:gl[ϙ 0!ljAZτB8ccb吭F/@b[X˰K5x.9 gf 0"ހLh5#vvyDp[g  ?ƸnE'BK$e}Kչ:UV]%<<l @2؋pm z >@ hz'A @u]-90ӏ1+ҳqEX0T1 @:H' IJ8:6D7&@ AK !G߼MA[rKO*A]WI]TkX\u]H[ǚؓL : I@EQɀ5@jRC+ՀI}#$>H5<W%nI'ǤbCS/0ə 5LUT@@ vL_b0)W ZNp( S`0E 0 Ȑ+"SEP@S | LX*Ta &5oB0'r*z2 "1IHƋ&,hCp(e@0?brP yHOOL(0# h^p{R@ &b x-גԨsTsH {}q4!(d ?@h ?4j =T UZBXP2$@@cH*H&`i{|_BT Đ'` z9)g 38{dz[~`} L`5$A ?5,ⳀB80`tI?#T\XrA-8y;4_kokDg KB4cK1hѸn!᭏}Mb`i&?~c VMP@ԿuseU8ùiz_];#9C@*AA; J+c׆B6@'%8ٶz_7s(ݸG o Y ;b+YI<Xlp${]!$Q$ rP{ 4fhx002(dx Fpӯ|,,IĠx`$jF)@[!Ћ9W[꾫Z]Bkj;НDv y%F<q~{U {0 xWW @N#j$ҪT;5nGJt@C4ED7HlFyz\9z^פC!%sG @ !%遫jঢ়k̔EɉN9@])[^<N8n8zhewϽT(FRN1 $ `Y2"%)dZMIw9BkFmHrɸϺ\$M#rd͗$Ț;iFbI UPdj6cKUvBV'Z9b.UـiZ[K8L\R-d駑ƭcN\6eY6wv 1ocj)JV`C#4#"&K@꫌1MUXaiWEY%QQ#DeFqEսLC0k[kckK؎PMH4ٸjA0,8jr~)q/xbUM`奕y( qg|(ї6 886v)օ))'IlxV[L"VH286ך@T4[5C) ,:m߫YBylPK.]7\C#[Fi,JQrj6Iq"XrۮrU#:SٕCZr+[` $bS##2B(m$@{i1UfY]WMtE4M4QU| \dRVOA&aYtMTyMy_9 N0m$%p]F׌QyI "mH+mtQU e-*$p IDgʫXiĴ޶Va,B(]}e@%B:$iwsHFFCq8|%\?NeXeDHgX`E3L]ESlBUVǡKqI\^#rVYI-2NZq`C##22n4 ĒITayu}vuFRae-"^4dUT.lͶvՄ^7M4 aTiF86⺼HPE%jDm2:ЭMMW:Վ S#+!] L I7[W&YH+QFbj˔ґ%jnJ9iE"<*)iKal$paLEBDy׷,( %*nm57*$ B9 VR(yӚ(%kMm088&.0c5DDFbS34B14IX<9%XMdQm\um[a^ve]ʞ1q~sR1HV5} 31܆^KZ a6kgiɔ̵i8KNoЌ3B"R |Jkn%4\ 9lN|#ˬAC(fLZMypWhtծDvm+6⌌z>Öͷ&ZN]iƤkSmUe;6K$ֲAۯB.ڻAJ>TƟFm{w.qƖ  0\)J(`d4DB"6e 3 18iae襆r*-dɯ+t{8c V_`L"Uy稤,b58VIP2}%`2t-+΂5LHSt+N#h6;#6.zBDV"vv_OFT%*fu;'K ɨA='$%Z A2x7$ Qdģ_RjmTTaQ6-pka%ϫ BN8բ!i%4;YI%fcYXL5$tBjƐQ"9bd4UC#4,0iin)!a^Kt3J)QItrf2o{j[VڊJx5nk)(4t[DZ+*LbN-E]+Sc ՗3Q%Gg&UHv\JZ ".e̡ xwLMuiM,ME▂0(Ãb̩Ζ#L!%{ `.!)5!3"1Ԟf2īFVK3YȈFSwnKup {y ꭆwwds;`ZӷNtj؄Iw}=;Powpx' ! `wD<)/;)A ,ݓOgKsj:2WȈ'okY6D;Q*UtBM\ F. {;@Yy<<:ûqQG.?inwwvEC|L7}^ҽTu;}'V `f#AW{@_r ~ ,21wwW5e:RCB@ \#_kT#Bqp'dwU{=  yuAwa/ Hj`X6 w_iND;P7wwD{"YLkn:}Jgwut ww|&\ B1Op*<`]wXF uҕ@x9$i0'nJܱ\;6~2|H^!Pd3SWIʡp:+u \p یFDB3dJs Bp_pOq0N}] #ƨfE3n1` [f_&O(@XRpM2Ui  +Eڝ{qC pnU} 7G\Sgܾ4P̄}N@RjFB?Fo"4rF>>fv$$b#YxGf! }BqDqP2[Ȅ!|K ; &ɐ{[ DŬ͏j&{1r)lr$fwu |?#};^X-`*))a|frzt`65"h) .KU\pCRc)@@}r9݈s)Hw}vb"QCIYBj!ص)"XsΕ9멽AQJ){aycS>u׹&*A\[VWQ 4-; H|II}~2C~ J07u@ ?m_û$b+ ^vß%yr0x>iݗ RiI絮袝ޯf(uޒ!L c!@)I4&5!,Rt6]á}XNo9Ƶbx2O ;7|չrWͻCAN!% `.1)e)0 Ca0OHpAR<җ.=W;KYQ2{5"btmwtoוQ R=نw!A(%-('Nwd&WίPKȠ̡̢q|_`el#$#9 lR0Q:^w7j՞= Opdr'vd+/?mi /F15#Q*wwd|U_zBa+[hwt֎RE⧇C-$)Sx|>[7JmҜw5D#֟{=  _ี0AR^>ʼwwpU;ڮCSwZb@+Am;d=q)t+KJ)Ǯ  `ObDpQT+h~wwa-ZxЌ_&F/I4@ŤOHp>kWς` `bm:[]\:B| !X-  Dlw2d cgMW%*[@aXT `48i(,[x@X?ُ}"_$T ٮH$J^p!cF)3Rtrg$d]o@*0F>%bg쮚fO04/;a+l,euDxQmFR6hB0`@Ԃz.YN{ɏ1Ĉz^Y9H[ɺ>HH2lj S<x3@R`R>Ǻ>I#=w)p__ú?~c 8vGb DЄ %$&8 pp? N w } ‰ H ڀAep A [359[~]s_%}SM e@4?&n#$WG zTڑHy&,` ((rb"?@0%4Ȓ _K.!7hA,Q43%I `ATa,4( ?JRFo IAB g/& ,(y0hѤВ'pP 0 lYe%`DHN$n  ;+ !u@  K&04%a;) ,J@%SȤi& gj@~ԯU-w+TUQ}ɾ퇤 bhPtWIh!Z a>bLQa)/ 808\G[ꞹR=Mu&PZ]rBIWu0d0E Yp 2A  O4XJQHH I`H CH R`K()ЀMW fϰ * rDDhB/'뼄2Q QXR=5k WПH $h ?10$@+8*z*AZdȺ"H.<ըp ?I$L[<_bX `) PdK !x`h!)زӤ@hx N,ĀCG+R@a=(,' h'~% $ cB: y  I$BS Pi&"!% `.!)M%rJ d ` LԀX kE%.XKIy X15}O:6@T)z"UD-UumUT+Yڪռ7# hM?qޮZ)ă$r>ηW:R5Ma09@ bQ?bB@@AIh0 =B#*P*(?x ^ EMb& @U" 0R`i7$А`>R (ā@8$iDf7P6@4EÐR8*GLO H/AUa &D3 jD'\ zѱI_I&Az 衃@ Ip&⒐*DH@AX@THAt"uT!T @|`-H<Ib*HX@V|2* ̘8 dRR$$I͔3>#C=H!$^) J_$/x}goЄȓUL vH H0X,A#@X:JF &$@@"B $Ј&<2E ry ?Y+`F"x6 D@ Z laGv l,lC)A8`Y|HWh2| cI`P `Rh 7,D84, $EKTWzUo {uUHy5Q 85Hq_U| m0Y0*eBTDV*[P2b IG4"0A1 T |o@" %#; (dרV8C`IF, 7 eG߀"|HE po18B;Gο/j՝S8 va H` `@rT@"@*I _d @1'# "OD8G(8JPL@hhidn009e! 4ұpaD4$h!|R@b@ "Y Xj@tXKA0H&`:AHDܒ3M!% 1-$AxJ$ _pw>RHHIdс80hhAx$R !%,0 6`qBFe`i\@0(`8%4rX*B!)J9(0jH@SR.o0gİ—Q pBCXqچ$=EZ$E]fo֪u8 qNfpG,FH@ Ii~ 2$vp`ƙHR6Y'vkߧ^(2Y+ R\!p@(h^`cf.؀pos9x!\?R5K{?Jw/v6?4t #rJzRRF$POGB,k5/Uvtvyje"0T+'RK!otL@MӖ- I@+ACY|hi`M2\}08w RAo%9,Es`K%3:4~X'p>\#_(@@ 3nC B.Ai!?ץ8`b \zs2E?*IihRe=%\۫uKuU[ Z uOBpt0e_V$vOlN)S} #<ʂGS(Oa)=\>[t>ay:{ϻ!&cVFf xoRf=ȁ$p o_`U{o#  _Jw|j% wwN8w`OۺzUB~9ҀWjCbi ؉y+8i;,<8tCI"{ܠ  q 4XB݁|sgb\9kL0g?A~q67 4L(gQ|ֿIrOfҾJ( (DN2cG(&KPtA_b+B`?Ӹ<: bHB~L,a\F@'ndaM0>~`pB jИ, caJx~[lbFWqq(>tV,3f`J$$l([@(<&$@VLe ZׂCKQC86K0J & O>4(P 3R͔ĿYÞKޯʀ#4,!%Sl]x0gPD G_epK/ N NBԘ,ds;s6h L`DCL!bPg/~0C׀ -q1 BHD;N(f?mR76Ns@@ @@Xi`PW- -!~cVw!nX쑉Kv^jp*!=rsJ۩KݯXi  I*Hg-9;lv\)&0ȚIqiE)/B6+RpJSOuL aGm9Ç_bPbN@fnNsQ`C,bFp g(S= ^V(̺6kޠ` !$F8gQ'}%NR( 02d*d !%#Sqyz6ilCݸ[uKg"߼ `\ϓ@tP J J0\*b\w5 &r6/t!%{ @ !'Wѽty:y3ahۮaru#[MȖVldOm_&۝ؕEB wvݔUօrEpNɇ4ĭbxE+PV7ГU{MmJehMg$1vJMId`d4ECDK,5qmXj(!P3t`:&XoɺJ0H6qoQֺkMܩZB(X+"FlH#f NL6ˇkumFs#0Rh=kW]iZ&'4FJ6ALE.FGmI,hԙڈn!勈aihRpjfJn9۩u3Dr+BC4263fٟɒm(t_5D&ΆLbT%4C#F)mN!% `. אxJ圭{SԾ41TLi)݇J@8NG !2x?`aKBwnvʀ$id:r^Q7''}~,D1''RWmMzǕꎰ x҃7a10M&҄a+|}:նsBF|܏RZԈy'Z<wxNy⅛pG=f@ba|,ME-~#mǏ Jyo#p_縱,- W`P`ЌX3!}'wGOJR{cȧ@!>/4,2N #ۖr$Og$Rn+mp6@ "R 4 Hf݋ul>sW0PI0&ƖYk ͲG)\պيd+L ',ƨv8:!J5a3ZtXw|Xo>{DZgMw&~\4BXf$sǑql/'͒/dr E-OD| nh3Mxbœ5QL4Ai>2G Pi3:Jw=~,<;⒘[ZX6qt #ʔ'oN׷rx7/ h aߧp;~<.y<|8 )"y8X"9^>4<>OϾ#w>=}>z#3+4`- wl?~<{oQdޞXPZ"uA @0 Q\C AhJp O )xn[3:aTL ,4 H`oۖ$bWN<{F-G=&X 1 ᥣZ;€B trlgQr7u@2JR/tx` ;(쫖d Bbl?`¸Fuـ?1`|L/|Qg!z&+Jkq)Q.) 仐E>?4۹ov7p"yػi}BϖHv:>-!_> MJr@1n,,x\`X9ny\[p'DDžHI|}2@k6Op:A\Łd{\[$L2yz>a5Ow4rxNx 4,]a4K1943bɡ_hSPh,hx|壐V^x9a4ZJڔ3 u;Ȓ''}ȣJ89P]:^:y{n$|3MYgF4o5~`Fqpcas-@kŁnG=` b˥#app_1$M_xkqO7~áHdg : ,p0 @4$>!' `.Ӿ$5#tw2+QK3 qwP`dC Cp Pg)p2[}8 !B r['9$P=lղ ɠKIdZ>G->~( u98 ?mi\]R3Oa$Y<H&_.wKo_d8dlE<Y4͆Kyle77#>\ ;xX ͣE wY=`v܏-3O"o>cȤ'` 5<Ƚ4p,v 41 ҆ΰSO )l{EA G41 SJ/ᡟzk2JfpԆ,|v~pѠ߁70?o`ICb8ޛ tn< ?+x".r88 o4OJ1P klv_$~_<.P`#ݘQr 1 O;ל{w4| 5||Kd$^njdp7^@`@:, %ggQ-$G%[7%2៣凰x-]ͧy'`v.9Ɖ}k jy7r9uJ9.E<sH#廛?cwOt$6`cw?#pu"IϺ?p;pwr Fxx p7o s.H ){O (=n=sjD_w<\-~pҖ{ȵ!uhX\;jA~9jJ5]O(r{G>diG-ͻOxJ4b|Ⱦԃ!m<^^w{,ˠ e:?|p6.809iCmG'3atZQgg4 7OFsw#蔚aK!M+tħloz2W\8\| @` @b_@Q`:Sa߀$4$`i4nA0i5-G_$ 5N`  ;@& tkN|X)(IoAOz@2 RL jC@91, PMtх#\bqcCF 2 ad0Y+er8ڀ܆R|4_Ng J(XinOOFs q adE' `n!` ZxNCr[ƕ}` ,wB+rMۉ U !yEsqoEo8l~awLI)t4Oyhi;s3o'{?lwDqr?|2E;.$LouZ;< 7p"A\drxnF8  =:w%lӀk,>(`7гM$\~Y/m懿x燳H|{c;?n4wC'A1#X(YN'83~&#!'  `.ߐWDnnw6O_]>@@`2biE// f`@*K '_+7Iv,Mu x0@ /2s6 Tpϸ|h I ,RV8@;!` .'qu jE{ ` = Vwm:_)]@U)(Zǚ@Pr`;+ Jmᅨ |>`ץ h/9B\9<5gN$.ȱrXmMCψ?w48'/loǽ7 At6O47oý y?5`-cG'Z9NxҝǑ4ć.'YLtQhy!/v:rި4Y1hc(w KA\R'h%Rq{tq#~dJ,~c猟mXz}= nyֹ|k$߁2txIǞ6`F֝4@1VYȥ:Ǿw[{h@0&`  Bqx3 tJ;myI2&|Y,BG't;{h U^|Sn灀(L I+`H` C[^Cpf@2PbCR^52wj~>SD Iv7bu - B,12CmkL@h & W&$R=ϱ5߅\ K<K+$x?ZpϒKGuIhs%w'=Ā~|>O|Wͤhջ`n cos%ć/ #<܃ǀsa_4r9w5%Koi_oGH>xt<-@Ev~OA\ۇ}.ȤYbC@&M R:R?9w$v0tY} sL=( Jv^ߞ CߡNm` RPa5ȚQ 3C7x/v{`KB/z@]d % +Ijİga<@ P h).JIcq`U99 tـ&T04o~8]D@`a#2R֢KHμ \P ( L$"0ݹay(JԝaK[}P&\ G,, ,4_h`d[o_H_[xn,J OID Ry@b1Y??gv. ' \ `7֝n`МyH>5#Mp!X+@g'[|x J'>x>?H*st~p^x6Y?n,FX? n}QŹw#5 N:1<>or!'3G `.4_u߀\ظN ;ۆšiC2wX>}gb-i߼q<}Zx1-r%<2sɷJ?sŮ)"pbxwy@km-^SaFH0/@@B&Ҟ /րL ; ` 27,C%-ϊ-<'PR|(u0a/$RjSIҿ` WKI !$5;wۿvㅏ@ܚCa,Y) _ORQ5bМ%y;l@tvp2L-NAHA!'&r@I R_3%9v0@ @ 0I]?`tn i<cIC3n8P`0\W V㠗A$WJRodjX$gck&C<ځ4@H(5$ђRKBJ-PNl{`0( FN6&$1=nmr> 1=ŞyYo3masR7<"8G@1{!k}>_4~hqq,{?>p7O,w1ϟlx|;D_z~>p7͏ƞ{%pskcvix X $>os4;ޏO.~;GGcا:%pVuۗNr8եQ3#w-V|"wd"9$C۞wE܂/?tJՇ퓻;ʝą|LTi>[~( +d`C @i `! %^Xd%F- c* 5NKXwwᡈ,.hYj`B0%^Cn0q!d}JOc(kϳ=bjC!tTJ5;Yր<xl`aEVlvl%\?~< @@D 2OؤlY5<#%%mά d^FO8O<4 %FfM&5LP @`jpC-ߊ H@tnoωQ LX c6k`2(&]"7$a8d0Ճ"` B F1y;@b]=vS A07䄔QY̾.CFI)v5yǖ>[ ;.&o٘U ddB0`' :yu!ɤ2aEJi4g~s( _4a糉9I0mӘix>֔>pR `?w: H٥(| 9DMxpJH 75'{wzS?sϏýޟ7X<;zuޟ6V.%90x{X,.bDbq:[ۧ/rly;;6)Cs H3:ӓN<[u<'20nbb00 7'`rgn!L4咶A%2Z @@Pj,rC0@`4 \HA05 $B@@I_I@grSٖrΥvr;;8pB@o!'F{ @ !'G٠aGǩJt2΋* VPZW4&Br4)]q:'R 3ibѴ;=(sB1] kSXx[}2V( 92KsxI@(QbxU$hZ"PQ]ӋkynSbn^%аl [XGFg+׌֮úN$+c2A*5xԖR<q4*D[bc$$A!)$*QfeךmQ4Y5iqlrbZh*4Ǥ|BMMphuC%)Ӓ{[Obd 3*xD+ a:ўHisgցRA4lI2 @mjlZIXHX#WT[)BE Uz{8zcJE]"\mujgPW6)mPe+k|J@(Um?w" uq]-DZȪibG}L=Vt\Jf|ֹǝ(CGә\`S#5A28!CQE%X]6vYueF]Vnm諻)r g/E0#[FN(ˡBm8f6gU.ETšTjŭYi\l9 mȼBXZm mOi][V6Zmk6 .ED7@W%qY(tUDRSIhPf2i leKM2˼HBx~ %omjS(d8%nZFb{ziщAK;#itn%ZH,gfΖP,mK[Ӫ+^Ƌ"m2f.bd5DC26(=Iqǝj(!`(!xCjQ SgR^O̐H)YrFb;2浸h|_q) 0q*#ls&b%YE`fÆ@Z$0ЗM6nή*mX6ѳhXo锆X`D֜.7޴tϋE*c \ڷwnY˰YJTJf16GI*igkjqZۈ̣0.K 2t\]4%wv֙C6-i-D.`e$$B$6qA5Q_m} k F8BLAExupRvjcjiȞn)$-%8j4?F!Nzq5KnBXrx瑦4qQk$Mb 0z-N&1DIMM)/YWOMLkkBp=JAwLqAe رQd&$]k*$Joi73(ֺȻ$~ripsxv*Iw}a28&`ab%^mڍZjزH|%6igxbT#$D4Di NJRMfmi}}ޅqqjSmWx[/)jM_鐃ۅ $l;im9=BTe-ڋpmBz26F#<43q Xℤ$w?/IIz䍌E{J 9r 4 8`P &( a|Ҋ@X T7~RNqo>XQ7jL,R8OANtX;u@aɀ;@,1 /W@00i$"a 8` CHC}BFR`(CԆ|6Qhs= q_.&0 ĄBJ@Cp&p*CL(`>@o__KXg@4zΣͳaڿ{b3J=",F|='rw<4ґ%b/J@ &M&K p07P`c B5?X&C5# NoW?eԠҀbvP H- ؿ(~6PL6 f_ήu1 /Y043Qe3W}ws.\M1ŠtlW-oup$ ,HC0bXtv 7 L01ZRMI0ie32lvֲdpY M &}0fm0ǤC1zVRjPx4Ġj7s`ZiaV" CJ&LI{dou`0& 18bI| ,5O`CsS7 (/9A1 N/7}3d@(J;3O_(yu_,zM OK5(FVv48`f1! I/f;`dCC1`9B7vֶWGJ1ͷ7[pRe! Y45)ҜOĭf۰]$rz;^{~_t }k[>|g̺N 0D0d%:`P`;v@v`'& !: =! *,4f)~|@ ,A姠 oVҎw p%DZph @o<0;֒Ya;+ A+V~;;=ab2чj`$9)Ox|﯃x!mՐKala3Rg&)%o'S~mMy(=`)vle S6oT_y ;H;$1=;>~B:7R.򸄌YIωH"KO~KFG68G@p .NPe&$20OeB^^`ŸvuDL@;~@LY4 J œq@{'瞲n-:ijH@ ^f]jtX_&w w`ةXv%Of""aPz@ f.)*}7G8wC%B*pbM<zŎCKu!'l `.!)&Hww"w[5}<5M~A !=Xk!B榬x\ux/ww._p! ۟B?ΞӁK]`?RyCHA'I=OC@}WDάد6:jWÝ#!;x_{aU>w}UXvs(OBgK:< y|GG* NzGv`x*gjg@D-ݮ Wou( 8'wwo:G)zKF_ GzEv+%fP p\p^_rB: #\)#Փ)bX#ڍ}kL({:Ju+Xr]()+݇ߟu_/wtTd HM!)s/Bn p8cr>hD`3=_  ѻ } Gwwp5RqEmwzWwwuwq}W@0>;uW8v ~D3g`GPAP^w9Ed[S.GO oli$_߉wD6_e`H G8+_ uw |&\DpK,W.wwWth5QѼyc\+ߎUr!xw Dhc > AV>RUΥ:B cȾ @:3 ]ҥA)A2jnsWY_-'{*@  dFQXQry^膐Z :\pep,I.jeXaA\A QG5I䏍(²{8@GB<b6C9ʞ(c" q\['~F! @4NHxhPH xZE GHggOo? =\.؉9"R #p,Q \]gt(f aB8-;DKc'^17Ov?O[vBӅI{YirrtCGBD>=]1!=u!e^־]-45Md+ٟ-нQ/% rjgk`n8t3հ'`;5#-{/$Q I{h6q8Au^O;5R}_%Xw1 DŽ%V K^NC'=֦ĥҕfY+_c\ς Y"Xm;ZEm j'|4I|p:nkzT@I_r)xAU'b۝_u^!fN[0&02jDZvcvQt&ͽF#~}A[B$C0Inv4:  澙+L!dP]muS$[pE{#A qs=f X(t,)DL;Nmwnw}PwNwwJ'vI0.ᨀn[4}UV)xJr](!' `.1+8-)I{ G7pFW}lH% 5(T3R2]ݺwud=0+owpW7yQ v!&   _.JG|kQ8D > _uO]o{3Y`LA8  (wOd[Ynk_ hg>I ~sA O]p~HYRD4$gq>\ _.~?WD=2s5+[Z]P H dͣd*#dQpѭ6Vp*C t" CѰbKAeb\S;v>`)#pANkBb6C-9S!`4Txhv f#}p ;مѹ䑩4DNʼnd{`M%$+zR71L )R\T醵G6 V13Cfrb*f(.G3 Ŀc{Tu ;7LK7aHx 0Z]> 5Q0k F''0oa`7K|$Ivv^?m%HZ~G?cx/d!Xj?) kzffZa`'_l`# ,̔06+uA !( agtB1?F!( NB] 9{̂@h1vF1J1< l^oVo?]Pq$a/Np(D/l5-̔ 0hp:M kuh5@D{B| _͒86Q 8~Hh@# \ P@uĘTb:~q߼.j>:P[DK +IHl$$}8zWYZOݱ*!`L&w)0H (x5 JB^4$;x @j[,LN-JJ7qf= 0(! F-+)Uʣ}WͮI^\S;%Ia['p/G+@H%$1!@' @@>A 0aB_'P,،NubEku7sO:pTuHZ]o; ( p0C AS]< H@vMH F))(&`E!/II|Vp$hsy!`"n65&$utUHU=;iP @fLA$VJHƽ''ゥH/DQ]t% ,Namǟ5us @Ԛ'݁92j]Iɀ p &l _1bbhX@DT.@DeB*"E"]XPRd I&H4z"0ņba0ie@ 94D PRoI' 0(P YhA4Df* . IA!ZJO@#p>D(5-y'iԏu?B:d]ASRn D 0$F- %'IG ,+ ROH/P UUЄN2."M^0jjMTLNL Q40@+' DK=D HՓ ad &HΗ`!'G `.!)j +p!}Z?dL) &n@ijz$T, z 4 D 'GԚA9 &MP` 9O~ '9x¿ݪ/k=wu#]v xBɹ5.MI4yq^+UTWRjT&⢁ R P /Ia h(@0*0 @a1<$Y) T"q,X TPj /H &0`@ dY(LrRPh$+xb5-$"J@hjRX@a-8?I4 )I00Ć%!>ZR! tB%C( 2(`%| @Lᡀ/005 PZCX'$d2q&Hk# )bF$]脋-U7Tu-cr t6uWU7+c+ n(k$H@$cMQI{JPBKIH<8x0$hjK H-)O upDMve4_D +0@ ` @c%L 1E'b~ǀ@m%;cX͍vDվI pvKjNtvi }U9;6{ ZI! @eA 0H KX`} +#dR6I҅wHNp87J<!u'_&@!z@  MB p%!!0 1xзtPАǿA!r`t@_EsXZ[ ,q/b(`nۄlKl%^1_7`/G&pCRgAEgq*B+ I?1ґ`NA0rR D6`j@&۸p>`j S1,Ldƀ!goP@P&8")rr(V2O8XJ3*`T4$C2&qQVXm~'um_zWI{TR$}J, .juc(HCPeȠVv0 _a\N$i0QTaҮ-'$qo)F+WH-m5&ͤ%BW6ۏv* U*(A)aQ*ˊ$:`寨Ǧ v\[Df:ث^Xa*@Dic&DimUX,qˮ7#,儢ΛjܓVš#*HH`mt&~wT8ںrn.74Fbc"D325 :*SY$Y}סuzuypssk&bjFP6zQ PնMn dr*(G0,NfV2jHK1#m*"-VLR23,UU]%e:X ҤBaӌEuNgcm\ʮ-D8d^u 3k 󃃟tqg8-Ӻ JKV\i(.qgI t-pI*62TutRƴla0r%D@ZH`JxjNkP lh`T"4$38ԍ* MFey]_}ǜ\uVkl1zvَV7OUI֭.rtaL-5ʈqd}, VVQ~=[V*ch]ɲoϺ,V blKmfX q"m%Iĉ;20\2rhFM$edb4 ɜ%Q GbS=̤x9 \cie$q4Ӑeב13O%flnKu:KRD%4Re"2{NUbkFȩihjxJ_InR+S-̾F6W`e45C2GHM93Q~y )$FN<ڱIg. ;dmBV=fLXJ8euuj!k',EYTm$\5R9!=dKpjT\ ʫ0xN-av],]\Ii$5c m^-;eA%p~Mp/Yl _t]&NqURT+.Zos¨EijG%vj5VV+o*-pq(*V/[Dr *>*,qcЌ3G-UkN",ȵl hASnSKm`htbT4%U3(*a 4SagY}yƛ}8ߎL₳?:KC2aj޹6$("JERn‰+ V0]mJ%7|a=MQ Hɉ&=co6'hJ]#r9e_kBKZEEIjquebqɢP͑dEfeK[+ͯ'i2!md1XS\ za8gZf6HkZAC:VېV>f~^&E9\ ]dZxu|S4Y'iM6ó`T$FD$[$ 5Yxy_yyd(`#)IǼ?gn"miO;qMfz'''c U_Z,u޾KU0/o)VV"~bt VbUE4?R-:/ۭgGj!w|7r^yCjV++!Eb]9AnM$IǪDrD`4VepTajKjW[ k .|Sam\x25iWhjx5Q RU"!' `.!+4*&8/p/ ES;M V181إ ȞrJDxndj\Pv `3z!Zmo3qN_nz\'"!7إuڼB:xP;+۱J䁡raEqCf˝ѮW^{י`X&h/8UWeS0٦]WkOqk 8US]|Jr ` Q`+=7S!3d#>1KteR߾wd3#K?ASPR ]P7;=#>E|Չw|]\z# 7`>vFZIwIߢ\{3 DPV %gQ?|;Vw NP̉lHot3 jA= | `;p'j{T  ww^/џ޴q쬹>Hz?Sݩɯ2[_j\Bw+ "WfFlsu*kW>!wJ@VR ʆmgy02 } xa@0!1- 15@GC` I7uV 9$6srPn 73r"3~V1||;P J+EOE&F@Mt4mP4Ge)JRMOHYwcd8Ϝq` @!9ٸTE Y4 #\ô ϨeW! cI P0H<(;8X@+QR{A.KH8-Č6Xgc9❱0v)g0o! d"D=RDYc!ϒ<çɂKB|׌'X% 1#Y0>hpswv 3X`0yrĤ#  ZǩGHYG݊q‚;>x_Bt !$$ U-݌}없2uN t~dm/ٷi[#ܡnKB~,Xf G JP@%N?@ jBz2v?vfKG.l2o&|Yl IkLI%ky[$u28o<%(%adCOdl@pC!هiaBC0~mtBsҾ\V ) %}4}ҷ-   $B4Ȏd]g؅`O':22]o4}35 (%TO;[Grb nSwtE\~! N{[w+ݚ[vξ H#|:Wp2wywp]fCf@å?ٖK,솧-ӷҌ]Dswޔwm>ՄowvG lhwG{@"~ `|rp| |!!' `.1++8-<g,z  WOkCG2 G_8<>ذS(8:YaA`KN?_t9ss>o#@ ȒV` +tdf{ރ4ʾԙ`@~xN\֞ !f!xn%& .kLHۣ P*{ػ?Ct R1pxϽa' Bb'BlDPDSOZ7A 90`R[G`t6F$1w`y 7:[UET.֪ƨ&hQd @kT` , bL,Ⱦ&|M @H Anb0 `†`oF܄)|4,\Ry䣸z\nIWT]<"eUWU: ɀRAI EX]E1Qr$CPa4+H7&P$4%<0Rm , EDK? =p@D$1ѡF ,GHJ7TED;F XZX_%E47n3qq9Њ xB"EH PX (?H @ P @RtUP'CHdb PVۧ)G #@/ `pELX`, I)A-.hၤPMBP@T!%:&49&B0I4 $K+M ,R:RZ@A% jSD 9ɔMIJ`j+D|@BB7܆A07 CRJXH ;FO$drM|$!2 _`QnU=u} "khB}8K}VΌ{Uﵥ;NtEEFވZ,ˣ{`ǀ 0]ff2!2!݋Ji$2s/  ` Ah&nIyL=vQRBEH'CbmN!w^Kp fc+%仺D %L.%¡:=Pڟ%GDt2"Y G&Md#;g)Yܪ'v;֘w !4u)9=cC Ahl6S^wzB& tIPՔ,6!>ҝU <DvJot !ٙȏ_V)we}Aݜ>cHO~~%ga=4cjAdoK/./#ԞE7b"39r̼T\/@Mp#WcEDK #B |Un ~F (p) jlJ,CPwAߣ  P1jxKlݨІfaz20`v(pJO: Fi\c5 ~A{^}ro& @n!DA(wK;eB~1k۶')B&4@e/4_:ȃh 3``ZO:_-&МŘ ڝ&,r>Ś3w`T$!ާ"["7 Bҗ3wvН/{)N:"!)=Txۤʺ9ٌfB1^ ` ݱ  x4 _'4[(}l{էunvH?Ȱ{,}Нd{}|7o  c.pW/ aZ{3ϻۿ*ͺQ Cj0 ݀E1e%BJ]m:Ov ֎.jBև6JAh"q"Ax#ww,J?x/_'E>-gi# VV`7g UuNkp ?f7 ٌdA!){ !) `.1++g8l*1_pFV= % Ϳ7o_IoFqʛ~ ay)|BH,5|0˃SF:)36F"{H B8 "!!b6FT$V]6Łt6!g1 ,Y (l:dL&@`E߀ P`d%n_`%% ,p(+V.'1聠]b5D@`EK64SH ?(ZwV#F7@ ۶`~2]aVn= B(z0 ܎f~'{PjC{@ xX >:@D#|F X##kX& H \bnHذw2M@僯$&H꼽2Ag4h8@ Ι)]2P:U%0ܛO!53-8?^L$ L'gbSҘ`Q! $5# @xPėH/)0 -t@{' P 4 `ܝJA 6O0nf`Gdb/S>i| g7*O!#?*T!$BM?*,biT-{WzG]B 'V4&LtP5\T{U E EPRU Z1 + ᅧ]R _-)ġ% q) E D1$ Iiİ0Y@cRHBCFR G0)J@E A#t1 `` А>$gF z:@"0eL@`ކ YKF7:p7zЄȨ]LP)`XD\Yh@@?8 3e@ 6 M(1! @ o@vxb@&B BIDId$vҹX0= L %^) 4C!TY72aŠG 7I0PhJq_PQe GOqcB b0F']hdlFƺpQ*EU]VX': 0? 419.P'#`󵱆A9}ߩ"cs ~Д/M]7y!D C$ In$>&|1=HDEU]I" UFcX"E@h2j( $ԛ^B7`#_>I( HNN%$j@V"Ɂku10<THH0)U0i n1ܾ2I(Xc BTPoJPB%hK, dv;POO:PWe I$^Q\q3wu+nB#\ EẪ H@500j0 @`"B@WS"DʪV kH @R,ɨ"dUɓ"転a0.ItH4SzBi MB M$0`J-x %?js!), `.!+]Kw0]@eEEUL.L {uL@E@" ?  #jdR T0E'c Pez0 n| *]^UHp¤Tm`$ ^t$2M\gDFX!J$%) @ HJQҘ! |i(4C(05(2YA(_ ADl4ihHP_%; F%M9!#@JI$K>VH"UI. {]eSTrT ^(go0 \L&tP5 8gЂZ:S68o `5v)I\!$=0QcN'D!X@T3O#|UR}5F 5DREɨ"@Q$ T4$/ _DUB , g'#OH ?G$jV((J +IcBJxy%$OԂo T!8'΄^ &%)@I$M0 nCPJK]!$g IM )OtG>S=~}wԍSj v4gUF 7 Qu3+X P*`*M GLNCA4``ѩM&,VnJFHĄZBXbK%8% 0 +C, j8@@0?JJBx&4!rQ9kB1`D%?ၛ4)~Z\w@6̒V~Z@%"VGGqP UBJ8mW-$qLOWZ=\M#S|=ZFB=&wL\+޾mM}o#7 fRF wwhD{'u^R/_v#'e0ŒI)DI" " _)@V) Ai~p=w i]CDdҔW!ۑFjridO၇`Cerr. rV/280ţ1ü(cYO%~K4Xt+}}{BD7@egAX\ٽEk/"\cB/gwW@wI,nVPCbOc.).BEւ"lHGW 8T/Zл#wd;R "!602o8÷ՊHl}0$/)BXG 40! f* su TBkYX y{PtqP8=F%lH焤px6`B^E ﱒEa|] œ->cY),4֙O]lW~nۡ%,,@ `H& ] _h:OD%\,(vahIWZULڄJ x?QFI%ewwtC K}.!E?`Yh<csXbEanDZtjH΢ |iCs+{x!CXRQO)&d/;xTzWg\}SsɂE BEД @.ddw4i)4ewv'wo%QE}V0^l`:J€\`BR}/ #H2_u{ | @w(#ȳVwJJovkI֛vCg.^}+ ua&!i{ ~ZD:O;|k CJW" x}؊hۂ`I=`l%T ] Q0ݲ2q( >"/x lҤ/БBB3v=>AkRvKH[2}ړ  Wf!}x S6.:ҥވZ/HQ``@wodZg!)SG `.1-?+ ',eiX/0.> 4#!m"|[ l=&D?@H2X0(RobP)#x=H))c%(% D3z燣߾Z3Y mA T2HC_X+XlIJˆÁeG$(PcłwQ 6(Pt"302VuՇ]oPn_+ێ?Utj)po#p0׎wYq`7p sw@fͿX+h5% $>$_!Io@oN`b> J  ɢ偐t6'l@p $qdڈjj0 I&y(*r#@/I꺥!*\2  r`€P)&@^0@H\@F L R)]LH'b$?pX@s&`"*a} d"fJPY4Q0hI`}<  >@x0D_`PX|7 ɡ(? aa%-):Bd KCFE#=OIeVI-$0) N(jx!%Ӊ] |Fx$cr {CeL09kU]\tw4PJT!ou޷3twB 5$҄d?3` '4P5YEɷ$$gbHآɀ1,(& O@!? ω v~f2: (;4n䄿z ?u%;UuUz}^ ZMB"d PAU1tPpA;(1$"1ih a(E  b@0jR.tƦ$hI& &ZB&0404(:!5`)ؖ S#$7$up栓 $_OJV~6{]kJT>Blh @_..%T="]CuSa 7% R@JѸ4cIA0 SL!Bn.+ WQH"o W qD_@A ^t!RG IH@P= AB"ЅɁ %_EH$]Ty ZȓS {Q%IH G)B$ГWA/cq'zb0ԤcO'd$PӹH%  )x0$`I, O`H= F#n$i4MF,^LCI7$br? sM][ {T!@fP o ?Đo@  4 @g]jS@i/$Tno B*/{)E%u0`As3CC?(\,@$m@ @< "P r0, "'\U @^SFBAԒnIHŤg o "\!@CAPfR `G!, &a)| ;lAnP%'O7J %KKO#(p@ ^a9nRr UIR*Qj`>(c @X LB`8$h0I$@#E\80ď` Д$VHi444P``aDM -Jz5(WRPW,?3b?Y0C@ɅL ! Cbs !8" ##M HW'Y 1'o<8}@jh##@' o0럍~$`1( !p0"v@bx$(>)9%7ČB)! Z azJY#0Ԍ=0<0IdM,48Ctm1@7!$3? Gp]߁=\T#`QåE^y纋%< b|,>>jt5UWju_= tPp  4!NYpļ)-;~oS<â@`b@v0_9i!"虜4C?r,KrPLW!X/$ߡ`! MF4Z0` 9MN7"B24`8Hw rӸ\JIWr@:MBAYKD`n%3|Lg^ ao &Rpb/ҒNBB -0i }PharP6ӆ $ZЂ{0m5= GCK%τ$Ġ xphog(J%9͊N5g9d9"z$Q$E]?R,`Y8r6H)_-6l4QVPY%vnU1*.M$`LW!hnoPl~oap-{8p"cvFu&ԦSf@n?B'sowzD db:-?q&N+݃;)Wuw{ݘ  =ڪ\s. wp^ @7K;o :c{qϑqEU\|,>s"C^$c02{?AiMs(clZN=3O,c Yfvvddؓ`9.=#!5]<\J.wqE8[]F#P A@"X)Ew>{3`|;|렼 )UCo~'ޢ(3ɶz3û].UWcGGu ݪ)z8ws;!ݫҼ;]>{~Uwǎ{Su[ shwU!)y @ !)D]7RQDOWטe4bT$ED3I$ M9Y\}Wi`P-S>-XЗ ٵ6YT<;tm#7aw)F YBLeڼ-}g~mjZ܀tt_~l}a2ѐiuI> ~6 FxFuܚNMiwGNHnLU&}6і"Jٜː^0K,Q R{&/5fR-'撐6ҴmFށ +#fwHVZh)rQM܎TF$\bحI`9 c0z̼`T4D3"E-܃MA%RUvyeWqY~vG`~¨ŰG&-]f,eܚ#,( I LƢ cϵ+Kh)HI *֥еcTTA-38;AeM;L+@Ƣ<@E"-ZtB%E$vZm46 (bI8P$Ien"+nZ-QjڥunR 7-:FVِhG8I48zh9D[mJ4_Q'f2*g $q9}Z|Q3K"H4ۍ/Gl fDbT3DDIjC94MF)i\iߍǧa撒jX-I:Z6tv-ed+A{GB `Wq,[InZ6śNЊ/m4- R:+Re$Kv)G*`)64ߐSM1F*'BGwȁ26qs$.w1N,ƦLN"ZL0T`-(:jCKl˜HlK ꤅Y𷪩I5@yjbV#1+eڵe3 I90݉d| c\s' Ѕd@`d$547[EYOITEuai硂}mYmLy-ԍ)և5heYmvmDZ?Mcidqc0Z,g썃](YF#we:*&أ1kvFV,Ũ0STM\WM&ƍR PZ,nG % iM3ip 8xlxERԌBe'jZQlSncu J;No6jqaDG^üʹ2eJZNl[(T)^9xvbc$D4"IE*kQYm^]qavEQZra0ZHB0LHb؅1 u$XiYS:W]eMG7$ӚN2YT%I[1~V#Z٩EfiQDD[8I(Pe \fQ;S@"6T%v"ʶ" ޶#2T%cɸJܖ1EU%ȏD0`)Z2ƶNGèKt nHd̘Qn+ѱpOɐi:r$F&e}][DiZ`d#3319 i)3OE4Uf]~YuފqֲJJ^Y"e*5rzZօn$aXTRtofnd%IU"[1ﴣkLH$[EjTm%sW>RmJ7RbQ&[%.HR4УH8[liHll-225k1$\WqC3(B3J$6fg#WfF)sh85J!(9#[[7ԉ҈ULdBDm&b)gZQ,bbc4DE)e(MuMUYY_q\z'uרe:Ȱ wKaFmeT4[˷"6%dgQE\D%jTѳ)MÝ)x+Ȫ!) `.!-"x\3٣ݪ%yV_dt'j3;:˼Z┥vU){ ~pN㎞PZ_{uUwwyTû8s]wΈ1QI,4K-.4H?){ǻ^!1{1c 9T3<&d*Py;g_`͝jx$J$'4b<`if"l\e2 Yمas+.( T0Ϟsg0T Yk {r@XT9bBvٳ=ODu,Hfz-lI "A0W`Bg)0. #aoZ ] !de`JC )x#Hdw`G|aEg"i.ʄ@{|61풓=ivGr`+d` Ƹ&ySh3˗ HCQYfQ1D&>얢-;v%\7 ~ZPH0 3 c݃CRGoHb.DT5?Z (ڄd'eeYo6Yڙd˛3 X!_%3-' Ä䤂""`.c tȓa52g(-WdgH`٦/  ! 1 "`>ZQB1C= 0g?'^)e`fl<f<>$$`a}nov(BOe8gKO6 0/ÇÂauʯ]`$S5xVmG2ȩ/",BQ;ux C!vpԀ 7'ЇhxzDfHӍD0Pp.)6B0>gm倿 91ޤ0A08 : bzIQ|Ծ_W@aY;vĝOn8_=BR!$7^zY#r "/bQx $'}zQz$id:r^Q7''}~,D1''RWm+zǃɢx5v &QOjF~;J e=+'Ix=cVyzǃxNyF+ _ p Znj.Q+/Qx;xGJya<<\ `R!#!:RՑjp"A{т` @  %40 &xH·o`TR7V=¬0 T5( I} OBzm۳Ex @ @11 I@PuXnp/8O0 wy@F t!)G `.a0Vnntfm L(V;?~d7ٍub( mT,/6^|;AZ7zo-BtŚ:q8ȶ?5l_1|Y>C]n'# jJ`6F%8樲sX,-2Q^t|$?kٜ la H t8mgNj>p~h7 sR}3(SElby>k~yt| 'ikq빻nOA\wyp߭4׏Ya_u`vmnj,7%=ov``$ҹ44J@ieHiL|(_wǝq7` g?/!" H0aE*͸n G^~3OГp @tYDT K䠴IϷ@@2Š0^JW?lS( {nl1@ 7 ɤԓ@ 4byݶ>BM}=J)OJϨ/RzO]u O~h!/;@*XԳE݀ݫtw#'v nyӬs@ e?\1|xy>.-O>4l2E<>xw#ڍ8O"%ہ sCHq $tǀs,=k\/ >Y/  0hg=-N4IPM iF41شva,VG2PyŋJ:O(z>YsC@myőD{o 'ˆz?o2_.Dm2Ğky7sI=\_3,yY? 43?p5<43ֳCЂYGŞCͩ +g8h`x(An3wz[\$h%ݺQ:yR4-4tg~txy?~ ѿޝxoĀNa]A#:?nlydxi]Ǒ ~j!){ `.H%3gc',1|o6cHu$,-ȴĀwܞ>F[ndsAH@l2V@2E wu~hv;oG@ hcCy\x8w&pXx ^e4w~&|~Ҿ<8iOljp;Qh sn%ƹ9w똲 Ω(v% l̅bkӀn8,<H$UXpXx4P;Hy;NY:O燲O3PB~6uuѿ3aty=c2g5`L7OA2ߠiH&;ﻷ44>dѣ; 53Jݠ56԰ ag@[7+&r BؚL!@j@5-(H`@b@ %rQIF rRĤA tdJ10~ M&4#>VzjM!Z7%d'KY 0`|rN}d۬| XdmY%=j6`ؾ#usˣ$ۤ%nugw \;4Np"|uݡ8'( np-O"̴`@dK,0f45?%^_ O(6v%fh M&+! Bo" tU% y X@l5?=r|r4&#~"sXezKG&ܯ1 )W +~1G j~=?00&jI ¹5< (F?؇0bC1H%=|'q`v_w~﹧O׀퀺h%Ra400L (f%wq mZbBw=l%;N?B^OG~iG`"GY,O6ޙc<҇dmt`mqw6|e4oͻd<{^.i.ƬHZph G?\NyBV=b; ?Nqf: @zME[-P B}r2JnA#,3{b T< GYp;V,XGp;ܟ"Q=P{2~>9e녛Fyd|\<]>x{?}> }œ+1 a9n [#ON?=s8 AZȴ&+Rcq7 Gtئ 0Š% ,KbRLI03 @, 9t$׈e1',je8, ,!):ۻ!)٭ @ !+5C:P#2TpVV P`+ ? gXTxc13 l\EUC*(O@+|EU_hj');劧䯣jj9,cظ#Vjs1$c&Їfٚ=cL+MdnǪE~Ilmm͘%(ڸtJGsmtQ`c$DD#4mjk]4MEVqiy\}h6(5%](qXXQKMDU&B0E$Sq.a$2QJTL[R%hMÆ9˭1}iHSR9V < ,vjR{KdHSJ]jJj#Ф` !cIPBMR Mm4t)s㑔۫))IxD-,y:řRF\ \emf[HC%x[1Ĝ{'dScmS@A5sIXp3iˉ Cq | 6eXN1[Bjz bhPbc$4$#&m"JQDQimiuu*Lr-ybm*ҵ㄃)"b.ː*~Z~SNNdMV8i%16FҲс"ӰqnN[C2m[lgZL#d|DуEK$&iDo)TM(Q]m]ZJ=KjTiڀkSm3tgLJ68 o"I UjSA^Hb=ȫMQόHD'1ijN̮b² %CH|d2|`S$C4$$IjQEUYf}~Ziכyiaѭ4yhQuÞTW/JG$ u&E>6P>-kbIFAúMSD엍ț^|:>JF׵N(@.oO4hF. h3*u0_pmQLK߷+'^@$ thÈmIfixRMmhi3Qb,mFq]6ñ ah4MMV" Q>[!$R[|6^2ڻV bd$C4$[MMIYe[eya}}\mEZ!R%չcŨ7o5cَRt8Z0w[KjƪdZ !OFD)h0?iI&NIqJJMK(Bjf S)r)1SWWXTH(QJ%0U("DDӣ_Z,GA~#fM7-5n[6.&vSvBIJ6o˓&Nl>c NI7#qƱ*kk%mݖ3&h)2X"R"qJ`S#33#$M@Q5eu\n(u}a[Ɋʍ6q_̆;5 ynF8Wi0T Q6#daAa XY&ر"9h ;B 815(Wdͨc>qB0n3इ\)p$:x:A5aN|xw\eF䒢čq2!dnWSICa(nHe㺹H{bMo88{M$;F@eЙUVM•:I {>9] vTU"Ti:Y yMƜ1ȒR =$bc3C436Iꠃ]ui } y砒!7~K2&ie򍨘RH6Y"hӖdnreGL숥ѶT;dE&1(\v5IDZNX m3U͆n&CFa,)݊kں'c-H|FԵ.*d[K$n 5Fv$R+E'(ceRm-6ٍ&喴Uq2ChmqF;iŗŕytV]6K!) `.@C!@Ld%Ha >A$8RC]_7үђq̻p@0h$Zz 5?՛t `N5Ɣ9I C @- K N &F8c$Y8<x`'`rĤ#~_kPhD-AHhOH OGul#9 1,;csKOwzPeJ9I>Vg'LGocww 4L(||A9pw|zsH} aޏwl~F p"Asc`㻁? cq+5__luýZusp>8S#OQ,7ih1hpGDySOԜBEۥ <-3%-#(Nh\ӞY/nA6=N9u߅n~G<>[߁|.=@n>yx[_gOj~z|x\ۚxfr Ap> d;W<+;, 4^(;(J+f̚W/_#p @L-h&Ew` $$'G*CI}hnᥖ?@+n Tm/$ׂ݇P e@:&H4!M,/!/ɣ2 C94~`i1yH_f dKΒo%+ BH ɩZ_t|aX ZWu-wH Hb@LX_%%?>50=?2@Q$0آ0rKÝs@0  !$2B; I2Y@юv,&'sGX] 0i0`y5`&LYH/Ѻߎk;D_X|0O rRscEkN{!:~7 'I,z ui,L?k/q(|?y8`\ab͛X4׏l87, ͋ppG;E_ OO]w7c`4kv#O7p7GxŔ`vbV,.NH'1{_<1{HpȔ~d?Pk,hN~ ?בc1[?8 /x~'Ͻ%v/w7,>XvD=h#@`F Fo8B NB7Jyo3uiwvAIw;k@B ߏ?9{b A07ixS@'6A~M+~w5L / &YX `o%$"DB HE wqa@Ja/nxB&1bZ+:pa0`2|c#fM(, v~mHd Bzii 'p"45 Hy(P-?&Su,LHa_!/c?'p.Bf!6ƏQ2`'&5#xuHx(03 )_ '~X{>Q'&%)`p7+#G 8BW2SwvQw Xb!I-).@@ vC 1@bK RvsֿdH $4 (> _\M1ie%ZRWO$oрTYY4{5 I Cy`7gmB B 2vHerjPsF-Y$,| T5$n M8 !ɿSƗNǘu!!w߰Y@+"t( @vؠQi7&\b LIgx@bPJJrCrc%/~sE, @B&C O+ vr}摑Lh P {n\F1d nY^}ۭ{{@otg]<5˱˲K콍e}?>2(} .w#H%:#"\ pJ`gž:Dx)GG~X``?Gx;z;קGǑ5ȱJ?zu1ţxlŠ88 G?Jzȝ,ٓ f񻁻r8SIr'8>d +9ۧn?b7X4  B=|L  ` 2|pa &p @&i5$(CNY+o AT@.lh@*԰`@ P@fX `&Dk $hP%va fw%9-n,pj2Y<"|rJ'}ZL( fmxp .0hn,p*P(Z_bYhczo@` @tjd2hOA@:( ɽ1#/F/|ۄ.j"\)nwM((&g_V-z.\ p ɛd`tB% -š?c\@X4B3*( @90 G&PQ`{hJA (mƨo'75 ;.7D"O 4ppb`Ti{n 3sWs @pwL"kTX^F!nw~czR &dp1&NPf@nK ɩ,L ߥ?\ -;oooc\s$boa1#2SWuF,c @:o&5%dHfz?[ vb8 ɀ%Cg N/dYn^d%B#:Fe<Ο$>{Q+#JK!{/_`x"g/rŌ3aA XI$7AE͎8jFneRv إgUQ)JD\)JR )G\zEr>rz!+G `.!-]%DR\x>voNǮ5?ѐJ UX;i#CVP$@<))&%2{X6Cҋ,Zs'gv,]a0Z ,RS VZz5BaD0bp̔ퟫͲjPi@1; (d쟒( T:zp pj]p @AvŖL YL}ws.}rph @brPa0o`t*hn9Mܱy0V I5E,̦1ZܬhhiArHm=#sap tHi@g! @'fd@w۶}c 7HjCC ^رXۋr(LBB;Ǜ/d DRa u75=.C ݐ!x @`Yu}6-!AfCO"Jc0ť?bmތ03p(o~,,}/䆓1nKF k9TlctZvaƻZ^ʳr #zSm݂% ܴۧ#v@AHұ}҄|}k[>|g̻)Ux@4107:`P`;v@v`'& !: =! *,4f)~7P`@5U=-2 % ߥJ+վd2xaFO}i)nS>ZJF)wF :$9)Y{罛g}|~Y n2[;` 95)I-#~?nkD. aK`-Ote||b`:P!3].򸄌YIωHPߒёpP\ !M Her` П 0>|@;~@LY4J ņOekC ųwgZ1}FȐ^c&څLCꦻeNIX|)t@۵ل`X*i|vl2&E,`$LJ p'9,[!OD -}cMqNXDG4C "u &"78Q0.aa"W$3ʸ>"V8p~S>lH0JHs7O ߓр 9M1ߐbC7Ps4JW=r],o78'wv08wCpO>;߫;d|WLd`|A'ݏ`.[[;"R|@QIFw%hiE'ܠIߤXr]Ohd^?.Kﴞ&l`A8oRNf$$Q8,i$|!2 =NpDdA44`(q%ކ7 j ')v7@+qa: {15.1`S8E0ุ~\ Vل1$\fA$#0ٱB/|\6A}vcB&{ٱSc6C)E9D0q@Xx^2zoH';>89.U2TOxykDϢY9!2kշb^ V֨2)3w"G8ݒ4CRLu Mt(>BJ !l?=)Ig\د焷T0?nhTq54W gpq+/RO~6׺!gSڟ^H|ƓHe$'A`{FYNSmN-GԯK^AMi[tjӃcnC`|J-'pTor´r#~_|C&  i1NOH}U?ڗp? ![6GkM-~F%ݬdk"dݭBDbwlr|  vhׄu+S)IwOXOcS_t0ZN B _؄WrS\@yu @  / 7;J6JQ3Z= 6,kֻod7. oP ~ A6=`ȐR rZ ^x*%55yY7kAL0ڶowb.BQrCA٩ B&I78Jsǻa!! [#Pw 9;,!580 X 4o @FZ& Kr ֩1==_Ku"䥞  > B7^=;p|/Gƞ˞I!! @!tX ЎܴnJ,!!+xh Agp"` ĭl$k>mJ0P6K`]aTo3j~yOg !fXɋxĿ4 HH"Ӂ4L'hday(!D` &LB AQD3n@_+}(X@0#,`pd &mG#br5݀V<3PP4`N٬;}S{DER="pZ +ٯ    & 4 tݾ( 0 ɠ1,j9ETg>;j$bd WD;2 %`e[6('U#,`+p~%ވl;C [@g`bC\bߐ e c(T`c6M2P"Ti" _!+9 @ !+wkn4oikKHC7ZT둴ԮnR:MQ@P1 m`S""3#9eiÓiua\imiX螉ܖ=,yUeަ-j AԜ v4m1%ޢSt5q{köڨc=3UJSͧMmf/mzUފ;J euA?M;&pҖF]ٲ_-"i)mjdd mpU <\b#V VhH I2eWE%#Sfi(3J g$Wyw[[Dm[y|TQ4HtBbZرcm5&h%QEehoV4Um#ڨ)2,q;&V[VOzHR'qXuG9vk#}3X%le[4 8YrrM΋_zg,j^s@vH:rf2ַU^Fbc#43D7diHUNQuu}z z'~Hdvhm'юy1ԡ[4UJE md)R7XK!UL#'5%IY*V5K.-t$qt*<5aۀrU1L h r.Xy~VnmVGhxTeXX M\pm"e[ %/r7m5 t5s,r2Il[#MFg[gϯWiAY4Ug[U il$Dlzk4XN6n-Dܕj7mSu-Z`d4DDD99Va}}e6gHA 3#RVHkqG7+l^0rl[JUVŵ.dm"j^>WUyc4WƲjuI%uH${da.xՆыcv4=xJ"ѤIsB7Sk4F~f*%tkR5[Ka|I"S&I7bYUJ3P+S1^Y>e 4UlVduc|ጦ!8YFBn")ԅVH^ԯ[nl4iDWbd$DC36یj#aVi܁~e8bv8;v>1 Nc6U *f7ևiz_25c-6/mݣG(IFQ0erͥ HmTPmdm%*FLTpOClY4 lFDj( bW;DV޻ 9)p$U̜mX|.7biSmTiE2fzd',*Jf5VFjսAHJ"rD7E,Y7"eBmiVŝXߵ $:k6oK0`S##C47Yuiy`v'"v'dfu)gH5A& C-;L@F'dLL9 VZu$3yǨ9cGեHkMđ Έj+81"VIP0VC6ۧ-ޞ"\svV:Zۈnkw% h˵mؒy\IED\:V'FF)&̨hġ} ^W,!enDܝK U]Z+t܉DJRB$[3Wշ#q,>68JY nʼalbE 8ZRF 2;bd4DCD6hUvZqޅHidw?UEfU QBj% ;nf%_r!NHrVi!+L `.|4!xO<>` >_ns;364X{ ~ %NmWB3 og`o@+cߋ0Ic|Yn5IL _+jcP`4;N0w Bt U/ @~nH/`̎5"`]3$jy|EJ_1 0 $Wpr#,x'pDS2>%(`~u} I7&>^'Pr杓u<^ j$'9dh_f~H\H aJTlV64[}SͮCw]kWwt&z :/J;ὰw2w^] 04[ 1C4. h|0foL(,C -$=#61?':P[}Kw':RzOǹw5_]lң8#,< dɩ)K Ä\< +Q ŨƁhm*K [2@OZJW|\Nw]}agݔ*Q( RRRQ{Ia0  HM])$"X ,dhbK+ء($!gIYy[76@̛߰d‹xZZRYa<["̋V'kw]\*J.]w= T@00Np `Z@@cœ10:̚p &IQ! tXbx _GJ@, )3"k,!_HA7a#ԌK-|`Kf55}Ny8DHnU_7zRP 6K`2P̌I`TޒZSҐa2S$aOfKWXw4sAbM 5APdIE  % "J\+*L&.@VDȺo"Mz.Ly%trĄ-0`U!!/'Y#$ < 8J&5#Fn@.ID` 1, 3p`P @v $ނL0L?CRL, tɠ6( 0PbLT`' @@BI`BG4Ye!%! |LZsƧJ@#JN%lQ-(-)!+&%8X ,+*#}uλ+o ƪU EHʪUre]J51 x2boHg"F 0X1<_۟ܝ"9/Arv`>!@vbi`)D>OƈVJ NN}B-JW {UNEUW\]$ NF7p0 PL@vX8fY4b@Ҍk^#fYox @ӆQm$"[aYKĤnOBa &pF,h,xh@|F 2q@D2o~|bC?݂ `@F#uJy YuXPdUUqUSKWGoIɀ0+KAHsbn2l{)6H @A$ $ &jv#D"ɮM\$ i<H ⷀt%)-Y!Ͼ,,RP"_Tqe & ̀@p!x%` R4h 4YxVOGj@l[et0!+` `.!- ~@rx(D?bw` bX!1 !#8bKH$}00-"A+@'(DOl P;&jK&(K&;T',<$M ؔX {%> B1B&dL&408 zwuOSj]uU0 "&P0>7i@LpIO΄G'ȋA(PqV @3,0c D WU|Z6-Ovmj! FD CC  % Đӟ(718oDxEbn>@4X\] 4h`1O&0 9$0(|}kE6@CI0` u#A``QY{aaq`6A@fiƛ-!>ru# rrSJBxv  ºHci a2&! I GJvC;ґ1ӿpj]`#"y00i}ճLa0(Z %Z|[m}Xl:Hh01 ha#w %V&qW)FPjIWd% B@z T4C @$#'> !]ȖPpy& I 0 Q5ɥCrr ؘI&3x%=+Bz>#rn+"Cs<j#;U  ňq~Fp[@@M|WeGpLVu?UʎI!0}{jl@}\% p_ Irh ! bbQBL5 _\9 = >0Ioh #k!Iג-XDbj$-|l˻bj8/ Q 31$`vfgo?b|;3A7.s-#N: یG3gIۋ{fAٔf%<'Ph6A)IgHEb| ?="뱤 ۑ~4Xh5KsZf<\b 77p:2OOl]7`ΐ!AzH㣊 @We u;g-_ch>cOmIv~V_*ݭLN*t sah^$=gpM4~3hKrcRYחQAHQ-h@H @G 3n$k͚ܚX $ZbI+ JdL~$Cy$&W 0QӟD=]#7f:vH ~lsahw" ࿝ 0}L1s,>2 C0mӷ4o IpKD c0\ AF"P ;pb@N!!,oHily3x 0Q=cTa9ICKم$ѧ=nDln  &hq!F0 QFd r6$pw ) @ FtD()%,ȱm#J d44)\8onXA p z P!+sG `.!-U>İ'`>;B$03F1UߟC:Zr aB@ޕ25=04 'C[3spIf $fF2[ Dž9Q D4I_?`#Y z 4#mtE 4R`PLK&E vJْtmg P_N1$pdBWJFCCHs^B#`[A/mB H/$i"y@ ZB{`vPtwŒ]H#jNflC**/T&Od%{pH`'Sc;ysbxq#18g;@]c`~; &c$!.bU ~;_[)ϟA>~bO![""cI}g|Q F`D044BX[>ᅂ-rɓ1$L4*c|_ *CI1pݮ(r{rk_g\(vY*.p>"+;\{+1=VxMQl(O{\`tnY !`]pq>[Mi6rA\K%G,I _gY^ð?Љ?ޗh/s$>e.x!ݶ"D3fE?%OF) Lq55<$rPWGWW^zT\|`!K.gjzeKh@tOHqk״ӂDL(> F2܏G_fߒ2hIDmYY9zz/ݑ)ڔW@H||S4&= -.k .{Uc MЌI|# @x@ /c%"jS$&iW58 ֖D\4^ =(4%.JP{rhcDq,MeF0r]؝a@ ~q Ѡd$~v+5zeM P?XX$PUF 9 8]m2o HfZǏ jA~y2nl#m(xwwa3>Iv~@`ɥ !\ܔPR9VTYE$5# ?pV)0iܒB 4L=z{[}M@ !N ٫ %5O#h)K>'QY*&! ~b*ߦ: 6%bI,D]1H%u>t{kwd$ͨcY5b6 !f d_-9*;PB˂6`F(qa5Q U<:X&t7hތ&B`>@ 크J0s!͞^|2TʱN)nLr)L1Gv 10-c x]涽 j\@I0J{,2qؑ`mc١J"-;#caNBK3JΓ8>o#Ml ]|8A FY%'1=9ùw] @<GYW ,R<`< Q"T }8rso"koq> ;3}:>Tdpx'sp@3< LYB>$s,-7E!+{ `.F|#| _A8 !)tZ--D8hi )ؔ#0Ǔ$,Y) `!b\KәLSWhUl 4ڠúUbn}wzB;U`@t8W㓆JDEҕz ʲB@ Y4G%HtH!D!w,{i3I}_5>uJPW@SVzXwUsgJ$x0?R$X!D'3Ot5~ ?!*RjFy ឨDiiaJ[Oָ,  B4 $Y5 bc < 5!(a,5JG%|ɠ=KПl*? lafJbX4=Z7m'v4u4VT#\-X1H apNRihHiE ) d$C&(44h  X@"Ƥ`=5 x]xBrSFY%:bAd(@cP(BWdtǤ} G%PDpD C&MVeu$D5$m\ %$q(Ҁ @cRYa@5!8$'8Dɠ) GBx@2L)HiO 䔀 @#JA p= ?JxR7$ P\(M ԷUUrHUaQR*L @^\]EOwU L\**Ydax'%} GA(*@!Rb1f#n4W't BL< '!`p`#|R CCxDZ f@L^DK%b 10'_M/On0_ؒcx@KBI'!o/Aa '~%9`M oaz @fQ)ZkMuvwk(0bX;9|LjT @I F#s`0,tmj@ _x ~dp I XI[NI$y 0 ŀ yԛ% G4P9$^M.ܜO!j37HM-ZzWW@0SB@NQ8 j ?X<n/"A.H>54 ZHjUlC"C &d0% ZEfpo9!IĠ_@ D@`R m `1;֖ jB CNssp鐕I"`;!i& :H Ga-feD҃PlH  %nQƿ^V= #a`j;$gƷ {!@Iݲ Gt><KȚ ,N4\ߨwTM vRUVUW*|al.&IA'J 2zY4H AObr"Ӗ0w@$ox!+ `.!/ *_-89] GZ{ !:!nCPDJR@E+P 7 PY-߀G^B| }<2nLɽ O 0Ug vꪨ-R*jjPJ@uX#{CY:IJi-/Pb ἼRIKK>|@tZK G/d$v⫃I)8 o^Ih0BޑIM݆b ;c9Jk")8"!/7 bo %,M{ʶ /p&yc"'ζ !7`J\WO2 "P決 ޞR@Q`^ b@no5$mH%R(_-:~)}7#)#FY,%8@ Ct{qnI A5}'ʸ5#F*O`dKfiSttdƀJ45t JN}:FwZOjӟG`w,`׷: #)j*t+;GھT7;U%ĂMB bGAWh#Ѐ![٠ = o%<׷OQ*/\Y $ B ч 8 Ge%x 0l̓j ~TA6D]!HR "@° C~ݭ,')CKrC%#kN` / La,3[Bp\-NUN_RyO ?ڟ`b dAh3ͺ!W]+}{\ p #!lfڎ8vpY pR Pc% {DRvjKTE8*BӾ-'W`6JW,H$"nK-s7HK k[6n$țU6O@}RP¦-a"ž&iSjR#F`c$$DDHePUuu~&}`}H7(-s!fEBJ!YD!p\c p3ŖJRF$)*ܒz.eB iԎG_4mT7eWz1I*?/ȍ6H+=nFS5&XyըԗrR{-$gⴓwqK8 tKD$Q4;E}0[f[FUtd洛+ G)O6JEo/".2Fut|xKqY6)[ lpn2>bd$DC4Fd((5uafiǡH_)9&Z/ T9-VYd\ą y[T(eъo٭r[Re.Yˍ \A;n)s[[nUq,m4aDpˉG R3-˲h ,pťୃkknR#Q)RZaJoqlH4Q+"88#&n{hc X\iD6O`qRnPR&V9 hAqJ PݬQ)K a]\rdg8 "ʫKi194VPu (bl`t4DD4GDUu~()fYi(}2KkVۈq09 gADB;!Af F * L%.= x"}/1 6:͇]-ku{]L"¤%-r!<8͑ݖ Cq #vn,> =uЌ\[ŞenL(hOANݑ[o6iqKM-͊7m됱XNFմq#).Ĺ$87hK~I߻_jK[r\Rȓ Q,bS"!D$Im<]vmםf&IZ'vWz'fZyXC9l[O޶mm25Ki9Zض+[űlqm[xqqDZL `D_-{Mm]ն6mmqcDԕb;hVVUWZ9i +D%lo`V' sQG_vuCb.*g Jv)-ȷ#9v0T*VS4ϓGMĊKn-cxT6mԊbɺk̚]¨6܃ݰzTJteV:ҥŢm_1gEK-J\I‰l_8 (ZpB)½35-H4`_|)67_vdiT R{Kmkw֔r.׵5Z_abA&5DHW(r=+ Pm(})̽k%y]`]ZIW}_Df5w};h{`f76FcƦH"/5f Ա  @4 Y-g<֜Mm$d_BRd }Rko=M:1l` '\G# M8J xk 쀰#H/%Ē$BK?, S B\~3 Z9Ii(?h/C偄~Q0OA39idy9 a,Yf: 1ﲶ~|=%hmb !ViV,I}+ȣoB|dtM"L}hC0K Zf' Q{ r߀&%CJP37~HDMACP0uK p(44AHj6Ai_=t]1x KנJВ>,NDBFvKmͥ;oRi+  #!fj%A-$8%@\,Pox>zyt3أ0,7fE ?Ι4#nm1fYEHx7h  օaY]D MYDOַ%>C #!Fcʫ)~kMN Bl!zCxM$2Љ#G~` 8Q'`F#LJSl+`Z mB$X" u?D1B6dDE A>9RԝuuXwXZ!Hv47ņ9"b9`|%$7 Ɇ 2M&I&}VJp0(dH )#BGqaWU$4SPtܛpR*撪m?8XQe,@{>.[U` \`TE(BjG H!8ujyw4$UH=UU>RH\`' #0!x`M B9,Ђ01'!%) !d0.,@ .  Np(@;h0Pd2IC&|BX$ C\vțᬅwq'o#P& Rz瀭 hwE %H F =}*S&AzTo  "E]AUTu# g(H ^HrP٨  C]?h@+-e1F#D$>H%fB@.`:- ;9Wy, 00dI g޾`Md) 00HfF$4&` (y+ X*夅R7@6<ؠ()=UWɺ{ VUR*ڪVUI֢bRr`҃H`(;3x::İ?z&%r~)1A8bXa). 0 iaėɼo5<@0(7Y$P@ 4+ b↖H BMj"`w0 ݼ#p|Cpi!|R48HoHH7(_ad>($[#WT\ Ha18PrKPZp vƪ7)AppD0f>-%0i00 K$JxL n8o/,0L-,3$\dZFMBtU04n_O.@*C ذ ҀC_0 @`vZ!  !)$ AGRuCy︚i Nl s((Ak ot tS'aXՀV۽?aABڪvX&Ji@CHAdS\L&,$'++nkQ D"?Slsԥ6;|.[tϢKHBHh_&V  t')DjE=@A7wA|{U17'hpH/DҰB?4!+{ `.!/d(} hF5]v#tڰM-8G Y1 ɉ ɀ1,3eY @hiC ,7Pixbz@T Kd:zb0@+A@WpB, 2QdXa~L @8jwFdx׊jA)TS4Y+(0||FN9 GEx}] a1>z&nKN@RАЏ` J|(0R.vpzSa_O#0 ƍ ]<(JCrzKB 4h@H7/=Ry;}^-1If8!b;-S#toPSLSx89f`u桗vj0 &_/<] RaFw@Bԣc]"!w5ئ%#׌5V[0XR,%JFda_C3k)^n> G$Xu0H"!OoSyAdj{m^Мb`;".C \0"/ hұ yRK ) `i PSWx+!U#xw(&" U_nHNIÑp,Nb$BO 0ē"2yЈzAw]_gP9,  @ G;A6B}Z#ddه#g␙ Aȉo~ABc,$ (<;# y+bAWTw7rߎScXjH))g`=v& ɠK8TL&rRIy!9% 0@7 s?Tj"X18{pJsQĀ #R¼ !ĽG&D3=529#+f%f<> ( b(r p&1 @g7AEt;< 옽ƒ U1 3,+I`#Bbc\k#!f1弇`c ^,[sB q3Œw i6>EFyv$ #$!B5HRƴ!LCB,HJP78(Mj$!8 QP%- !~|}HМpFX`cnc #~ ŗ7RBۖzsZ VX+1쏹(?o! :@t:ӆG~ ʒdeoMD_׬FubHlȪp&^R6l_^3TB V|֡y18}t PxH #)JUp]4|E ! sRڗe%03vP`Ԅ)&(_# PFIb:(Sؽˢ;Zg6@i5%`D4`*χ' eߗ~xԓ5-N du!@ #!fB!4k?yL5} Hԧ7F_{5BWB,I:XfA7 NI +q\t [P0-RƧS浭ɧO1,H #!FcUR 9fP3<>}*x) "- Hf3I-ܒQjZ ('[8F,#x#LJSl#^מl܅!qs|+׀fK5?uQd3&oȘ fx84q\| #SK @/2 AbVm#L`^ ˖~0'@X2YyG!T5CWG)xTuW tk6d,"O#:ȗ_nߺ<8X nUTp5OR `52#z`lMEdY}Y!ttḬ?T@nv-)q-$$dGkxD&3A/#B4rZo}DwQսɬ;wXw'>޳%bY|ZG 'LOOs4^ûX D",X ,5ӈ~ @G@By~hjwB9BBǁe nB-( '2Pg4 bJ4 ؐ.*,}ҿ'r##}s!- @ !-=:L.R("\QZncI k]`DՊqC?%ƶ<9Q%fFK`7sd4qZp$~Fۑ`d3TC4V$YZ]d]5i7W}z_fi&XdOH)45"&k u-_;&e9>Mĺۏ#ﲰ˂Pܤ]V"Ӌu"l2TI٩ͭ;dLR9850S6m$ fXa88fSn&$j #dYub]4n#5s1GQ,1(E Fêm9fE|Uįeqljά- 2!3F! őU%:%J R@1i_Jk/kSJe͢ݺ3T؏4hqt94-o,4frSd!!qN\LΌZ-9HbW4TAI$Ih8,Ěqayy (͖\h/jHE7]zX]%9[#+Z*I'%W1;:+K.k(fC"=[ @á&4K8fF"- &c 5˵(5ᜲ0ZMtbC hkܑn_=P"hODA QMJZczY'] b"2gZ9_i]zH"692`lGѢj>ڕow@`V3DA2I!Iƚuuv_+3Fc8D.‡!MC=g%/~SAxZda"jZ+XjC.bªEfuth* lתIēdn: F{Rvpo#( 3\u6S/%phF%jfHU[猷u6yMQ0RDJ EQȷqHוVT؄Bu@omRةܜse3TMlEb԰j$3s@õWPeDルZl9pMIUP.A#璴y`fDUBF@`8QXM]qvH8~nIH2u[D*;5րv@_h!bb ]V-Ȫi  j~ TY"؋-gNpIx!NបS{PD}T΢,":vwLNtkl F]c-:I}xYʚVF谠O@iΊ:b?ZHNd.Uuظd.40EgD3$ ZG7lבƛTpy kgvul.¦bF#C"Ei@YDiuy\(cv!-  `.!/sC;YWWwuU`w*`Q_0ĜE\h4@iLvMnBa1~XKрt!^PA_vt8i( Dp(ŧ;IPHa/Jz{Je/E?qv͏rwp\JgPGI@g@!K2F M , wm@!l0btU +q*b|UMU&U8WUIw v02ɛ 7p.X <)уJ%щn(kH,TJ쑠vH %_BRMɩS"ETʪ8k;0̓+Y9!İ*` r@A},%D6!0 ` pC~x#{J~B?Զ" ܒ.Jv!@:ij` hbL 0(%nMN[?RI {%eˢ` 3!V~XL)$z5t۩ )׫VU"Mꚺ`@`#?|55dYhćNDPD@y$nVD z`X 7J@0: &=i,]f `bY5ye40 #PHh| :4B+)i`%= I;Ŗ,hܘ4PB &'!%=ݳIjTR_?-mYaZ zʫꪪuUM[a(>jb ɜb qp-a4'1eɀ-:(7‹L4dKņtLJ &RCN䞞FC7-4vCG"K݂q0{p0_dgUnQaj:rQ)$ 4Jヨs%-hPO B-` g2䐒}3 N56 zTS8 v*ڪVUG\YijJ2nrV,YK5D0q1@TQ7q_1x4 ŕ Bc$IC_cFA ?ZD歰 #~cx25灴 AOicWP5 XMC+IgpIclȶMlQ2? JJ7!e'p=F%J3@VY$zZ3_FjSp|}܅!@ #)3!L#1 A/=8 KKRKH!yX͊ 4ǂ$PgZޘ!B#~`Q|$֕z/I04hҘwzA*F6IudCךp*!ADgRD #  `sh+MAy)+,w4[ׯ!A y>&$oQ KѨ|fbh܆nP"@?eL +wDn%#G~CBւKO&5oh #!FceBrh[!ƚsZB= T3xkIKH GD(kMn4D@8#LJP k`/8 x/`lT>!z 4}F#!t;0*tH }*(Dӗ=[%$mefᱼ%"SQͶ#!f6oxтB.dg!oF]y#z^vrP 7)E5ȧ!F`#x׿ P>$\11'*@f;V݀?U}7)$\ H;q293NEi_pςcWw=dp|Ʉ($hQ># :!$ oH },SW\9D);cb7 TiA4BʔѥKcąej0{W$7p0Ĵx4jPHWPs1`~ t Őh4>j]@#P\>5->4!:䅵2}Y\P:XfV;`v][Txֺpn6P}rWKZJ5 АPi[w?ޖ!#p{%#"'JJ_|:9@!-F{ `.11O1/MA2xJCRuR( Ƃ=~š"X /8jIFyI2,HL>Bϟ\y-dϳe.,ŏ@JpV+-y(z#g<@@8HgF/&|L+n+g#ЉH Fxͫg_^|H LD$\Z d+/:J\dB'<"bI2i#%>h!Tr4 ؘ6HA&3A,,?%`ka41H N:%|۴Q0acVX1$OO_`@aK DA,6 ~[}ޔ$j#Wd|NAMP0L1[ #~V(#Үϩ^4ǰX8K'4,Cp/@vf( ?vԓzt;@0D (  /`rV@ ~JbbPE` qta)Ny=\莡FtB%ʸpE6B "&VB`: 5Ԋufx,;s(kCNQJ1-,F|C0^sLL(k]kX #!f[)AE +x% |kz$Q 8 f5F& p#LIQ0lcf9_xp"|\v ;ބ'7J" ?8A_* L#!+i  `y: S XwPTkw׼ #Ήe1 ,1)¡w x)5QW]W,|v7k)m] @ntwƑd%oC,@U!y;%q[6?rY|Cޤ& 2b`P2dsnf0VY0pv(L AZvV~h` @r`π(n&!(I'~I۟f?mNx%7sߓޠ4 1A7 3~ ?da@ 3P 3CCC(L,vwd79}K`  UvAEos H`&,0!l1{`t&9ER|i\M!dۧ۷w{q(Cvah )'%~z@4t @Nh.ZI Kl[fj@br V@HN/v_흰 +޸P W$ 7Ab7d7ud?< ^` @CDҀc%LGGBJ߯` %G~ε;-{ ?Wi0 ᄲj^?f9 14%좃P9ƯυK<[kk+5xH R`0e s";Kg@`M:H+ݖg,}&!0 @!(C 41$Nٷqmyj6M 7ηvn}H@ ! &$ a,Di \h4H(x C900ZP3a=!gɯםo+e;V1c@`*&}bx!9ݜ HOI ; ܃ؔ^!$'vvޤIof유ܟМĿa VߧUTgm7[.ioF׼xCN{A h!lo{ѓFj9l)Fz FOf{ /?Y{`bxGzv)Ir<@x-^A)D#!KWHR!B2Or4=F+ѤE#INY-5,Qy^<=PPMBy F"OL_o3^'n![d&q7@{@vCR0b w 7RR@4ԇ((M!$0ǁɠ /f6>o 6-(,7=ΔYسvcJ;+j^3OGy"xyQ''Qj5;R F) R#[Ԍ*F4aF mW678?vyHRLS0ixr7W`nMOt3kz~{}prufdV߬˄ JNv@:͏(Bٙ@@1TB*/؏jʕ8ai5w?Jx< aqf e$0`~$ ==c4 O!=׾}0+aJ).Sx3 ݷ}uQYiF/ףv؋D5y>ü7i7PK_@_7xYkq~=.kF ?2~4Xx\_ΛzŸ\x=Ky|طpaǬkKs RCA\R=k\Š"x]Qc:yJ?EǏ(mGy/GXyyk",z w'̴8h73@3Mn'iĀrs~lេ7L M_3ٟM#C^=Ƞ36~cz/csĘ/~Rw~ #+wGjs~jzx@5,` bCGPad,”]4ϓQe2TCwFB[-Pj7,V'ge=M(EYFAQqc/okMc򤬅:#@Y%WNMvb> H?hCxeɖrn(k?:MZY(0`6PA@#-Ð+`YqPRz./e@h`FٷQGR.[3WG#Ku&~qƴ`U#D36(PӑmuM}"Zy\v8%I ynX;J[r0{Y#tNд#F!PHD`Jf]-:߼%dq[$VlXD5Ŷnn&N4jI"J[Qpir,q"f(m )vv`NѪqD p94'AA7S2.]m3+r /;Ei5BW\K#zU֪MUb^LpmD]] puD0(oZEJ怺3ι,ȻuBUՆ5\bX;Mb!&RҸQVʕs}KH߹OV?TW_u+` t x91]`d4DB4CP,ATeiYb(d~\i% G=tk)KJcHsAQnyorV[ƙCRXQC~V8%ķH>D5,$D#HB58\[/մ6dwD_nmr ƅS0˫ pP&%6ET 34IfbXqAļhvf!P"/UPS)!mJDIKEՐڂUEY[el 0PKUah~]l@bT"#1m AVMuum]XMidME_]7YI u4o8 l }DmĐ7unhz2Ä # 5\1Q"^YNR)n7KcP) UvG$pI!Kc)%BE@S$Mlչ~Eä. YƎ8QK*_o"ƑO&ӎ!VS%nt{f5 0Pކ٩B<8j&i5ɢ7SATwFԘe1eZu"ʹG.X:&ӗhFBF>`s"B1!&ɉ€+69DWYVqUFITRE45ETInp#D%q8饔HJ%JpX+ ׵Qv:86l&4MaRLXs(]Pa벇8-@VNKk)4YP%! .Ƕi< r<,Xbde*2\Ql56r 藊8iٴ~ۚJQM1F?|]M-CijwʘI5'4k Z%;%=W-ZQqkD:tBo[金|)bs2E"$Pڪ,Sau}qUQUYUQrTKʼnȁi[iYfm:rq":;G&( (EOVD(H+=Jd! |*h{y\˔{E7ϟ%XP!oS@xhh)w LSR!- `.[(=g_P>%93%r~7`o hgQ?rwޤ40Y6J=kzGXK)ܞxY t.p,'u`vI>_v%@~xYP T.).yd~?9c猞o=s˦<Oa4.pX{-z7S8OPB~6Wzeͅӟ嚵 0 h'07 &j`%qHjyO0 $)4#;/khhh@a%}\y]&&jY`5))|Q斗7V5( (R!% ~Le\Y0QD~v E$jmOIEల X״:xP ܆X H}e4 2V6!w&ey.ocxE}NMw'{x<~x Aw17p"A2y i>[2| jMsROp[TP0M9'4$rr)"xin'ţܞ煼RWuuaGWOs snġj|S?[ե9=ȳ%ϢY"퓸xy)rIwy59}>tOͲF>x8~>O8x0>pa>` _ۀ$k 8I};"xr||<]ɸ 푝)W _h `< `a&Y@T $5 &0zyy9 A`4B(0 r?0*C(05;[u}db @X`og&Y5(Ol=!Y}L찞Z7\@I00!^XKH`R PI,b&p`n!TGR); 狸`0x(C6 dl+1XP @103 wJt㲱>Sl&iPBrҿ۝B^@BFRn 3cbV@i?\ 'i0FmɅ}%*Wxw/7S=)[ڻy?7z<` \<g}RtOޡ5k_"70iN4Y8xUZ=nhPEbt5_}oPxdœJ?(p7ӥCW!-G `.O-bOGioG/Y/mͣwc$Oܜ.:9-ac&'iξUuY;7w6?ܞyr ߎ60Ct X& @fO2~;eN'7]y"4L;~pu$s>`;` 1ZSI홻 lȘ ++`?%lvZa4wrw0!'glF 67(h ?5r!Pō @ `}ƣB ӎ0TG!>` }^9;٣+{#qa`55H IGŹ{QnH\x~c߀{ ܎|c0 K :^;?xs Ehq!?XwܽTŠX՗?FyߑNyd9s\R4$eAvi-O݅%9iC3%'K%npq2% )Cr9 >GsͧfAkH4 N{þXqOEr;4!'ø O" 4es_[JXS'.$0_B?^.'\4;(Rayߚ7ޣ; B K@+ :0 (ߟ6!0p` @ܴ. ñ:-ѿàR1[6?a~f,1@PƠ ~ؒ$]&!) e&s0jq<7*P. &pù0R e,/{ǯh b7H/{RP Oz#+>azݟRoPE ߞ<>`lw1Oi8~+.`7O| ~U\YNpYr CB?v%c|CwD nl/}qn:d^Vtdۧ8#S >)̞4 ͻq/ϡ׺ER̹Ǟ揦zώ.:}GH bY4&oKOa?oZH{h`-~fȘ&!$˜!-{ `.mPL'?GHY8w8j2{ T 5 G+((z fD h Jvs)wTR~^?ydKѪeM nM Qz>M/ 5#)t Oq4k"ì,u7G)i7 \|r9XtӸ4ɠ?WDMxpJH m?sw?9~;G%#ýyϙ(Y;g nZ8J;"wOqan.itdNw!o2PsOr4ӜK[')G_<<N~U*d4M@"n ``oN yɜ02`M$(CN_+o AX0l40jXi0? T3 ,0j @5~xPL NI|2JI(Jr[2ݎYg#Qq^52Hx4 0(LHadҒ JR61'0`!-!0 iFrE FV;g˫_#?rYu 1( ? @`<51xMxP Ӊ@ԣtoP,ˮ `:zpP77h` RRM%2hg~@PBD"CHiRr3%~uJTOv ~Ero%cĆ`3 IµXo! & .ei3?}׾TMH$M怫`?=|Qp܎X R4maGg nFl:XBA4Q1ϠNoi{ (Y1)$c|9_vB(V)޿?o0uf~*W)dvv/B-I4 ??fC^``Q;bwcjc(Ž n A0 x-(C'S剻=C&~_JqItیٙac$C6$+J7k^0 o~Slÿo֔<-È $_O/;q 7S,3drӆܞb.מ ߤ`hiX浈ɟ>]DJLLDb2JfHd0jX Ɉh@Hx F/!- `.!1#G߬7P`@4*W-=eOK|{ z ߥgpP^E$  SO}i)nS=Lwo gomfTZ0oe ԣYG"!f4|DBkwk)]'P")Xypz%bA U'p1=Us @1ޮ('_f<fV PwINE(<5>"ܮ1$~ ]ָz B$ vJǡ!; eKxsқC(7}Gg &ZX0=n"`aI>~P|h4X.kV;1Yo4'rS\/”+#)}mOr=}N$r*BqxH광1ljhT)vBMfDj{kOpx+jk!巟{nuJyGkW=ҞAAR'ʞZ#9PSS&b)iv\?=4t쮄#A?-v)M7ПUCwO;m2$'> 1q !;{pbO$f>pKA/ohFK!Sk9GCL6!9Բ+C-jW H;'pM RwujzgI_S0 <а6 $N$>w#$tkhGCSǵ !:]4p h#z8>w"lw}wv}Xzo~bCs U! 8H|;u'chCC?A| jUFkV*NE)`Na J X)0c@2 5ܡ_w;pΩd.p9#BB.䙀_*q C;Awwu I,  ("[% WܰF2㇁ B +\ǻt0w7 νgF G>$1ܣ] R:`A>׋wu];{ !ݘP(K8 oV<<rQA|cf.;ݨ`gwdzb'c;`?ZW#owЂ=0F{8^FB9kHsv8h/<#/)PZog+$1 xx #;vXLs3|FA=/D4`o АrHh4ZPGGϮȋ=Sÿކ,L{#h p$_`= \v|X}u6ȮB0$ >^ǧ}z,sSO#4.4U琀0$8rnwv57k$t!- `.111O1a=(K@U% %'8+tp?{iD:Tn̒hw X H0 Og75k0{C& eO `X#0LI)ڄ6s '+*f&PGpO)B<\ bwSP,owՅ & C#ǁ g]Ԟ=zk6xfy38Y &y u wy-طw`I  Zq^DŽ>_e=צS^!|〯8SЅov]6-=64uwJq|  v0H7! kt>ur`{ZֽBqO!~j!1 wkYkDQ֤G$35w`;QLGp_4Z{,W M}#L߈{Q0܏GQӟ#Xܜ1#D'hDs=?sq|y:ZX x~gDEX=RA͍!y @p`L!Z˾I/`4$7Pek~7&D?ǰ2T6Ыh!sޯwߣxԟPpc%Zt`a|p7UAf'sпֆO J Fn< TL|} Bx1"4b h;vA';DOU+AdEPʇ??s@9p0!"ZWW!d@? *+9#Zc_9hdKLm\>zc|50`c#B26 ?ÕIuXe"9z7ydr`v7$f)P.6׹!$,,$3 I*0p[La>Z>J52Ç:;,6֦kmJ4":Ob:0N7 o6m;.[jXV, _3sխfm*DS-Xܾ?,h4F jFBV$bȦ7EɻuH_ƒozODRnlr7#ij=ZN9dc@&״ɫNJ yk$٤4T$@bt$TD$GYFY_HINwj{u%d#?,C aj~mT2s鱲 bPIo|li} E^יff 7:@k\+,(`Ȣ)cM=ڕ詻:Xj,UKTJq[rŽ$`y&Io63+},/&!m ְib9=T:]Fam2J: 4ВV58mhY4n3QZAaDvaALc|8]%#m_4j]2)ÙDqYDf Qd`d4ED4I$MEah\~a8clMbT|X*(SzfC\VnlQŢ70cF+ZFTz ,[Yj8R; RDxko jܨ\Riujv Zkնr" MKLj+|޷+Q+k~iЕ溉mRm젆G@Nr> آtۉu`*ٙ8!}%M(#N X XìP:ZWrQa {CKnw+ ?h.5J>^jAN!*Q|8:Rw7#bU#43#FIj,NUweqH끗SUݹ^jh ЖVoSIrZiSY bch).qWוrUF2i76ymL R%݂+ ]nȮvF{*FhMe[IjHYrӥ-QbۑELuYN\@rG|GEɢr?i؊K%*R8V-p6-FL`>Q9qjllM($6<αI đ8@Y!-G `. @@v0~%C!7/]rUTi,HPD}S=ָUAYrj-(Y&]T\j"04PHH`+` Ѓ0)%GX7^|K&a`."B$!Pi40%BA#8"%rB@ɋ[Hɨ^ _jL h`4@?#eB2*!]ɩ^.L\&t&& )5'@lqB`Ph -)DvX GBv, 3RY$h@\1hA 0_Ih( >$`)blI CvLJz@' & %+Iш(V&"d@ @R6$$D G9%=w}8"UvRN<ꡉ5z|\dMРg TdCI&aaA I RXlYy2i |`[zHq*JfXA*dP I $dվmR9s0 SY40(@O@SP0ZɡXhh.iB+(THQnw/Kjė[$?#Q毚 *EעECZ}wLAd$$YD`<5^f ӗPjFz_7$#`*u bF7) &H"+pT=U@Vl|2s(ESB}o^ UR*]A*UUT!5"]U@ `tCCSq=̰Jp <'@0H`!CI4bFa I!<Db7 p<iR1h-P RP%X_İP`OIc7$$- \j@(p8`jPZ0FV@T JJ,L 8DJ{P-#mHH! Mͪhgw54 {u}"UU`UuڻV˺Ii9{t␔vH60Ԡ48+vXΎnIIw-?qO΀)#G#P!_L*RO ;Wx 0XV,|H  @ DUЄa@&bP 2/zj$ɨ_L_@Q7N ^I}uD& ļhf& I;s8ZMHG_A5[!8oJ_`N A7ꯩ>-I wuBd\:*D &&&EAxQRcP2`PbWQp#+&*M"")KMFJn, ?6 @@YBBr29=[` NF $ p:F⅞{efpK8lH Iim@M%/ؒOՉ|VE3'"wpЈR< rn ArnL]A51RbA @+i+IZ x Ph?bᨐVQ@@M`#$BB-B:, #d$H0LJCR(&'o0X4RCRZBI }%!;(!f!)(pB &?Ԃ( |rRWH&C(Cb!$2jQh bPv*!/{ `.!1l}`X 0(ID1 ! b8Y`=JAiN%Q LJ$gzAh hh)}J !P1ax :π@D~a!O eso}x@s`$d@XRYAD Lo+&$`_0Jir,Q-)HGg%M.F XĘ_tVSR zbV'lbH4UX9POa@$mu(z,$j+Hΐ=x_uXoIn$l3٘QD!?Ps ;=Ȏ:5 ly\t _`??!#@M?3 G CPR_ܠOz<ﯘ @Y@Du}k hE];dTsn۲{*rH$ f, ϐA{ x뿉bŅ;ۻ'm>>^'PWmxw9^D<%s69V B$CgtB;09,-$ .%4a](*6 ۰=,H %MXxf0@%L.4ÕC@qlwX&AWH$8w"[p.K  Nal gFN 8XN0Z&}U33%hL;pЙ-u3{3'C! a;' woseCG" ip!<oW|!&'DcnVO{t#`w>w~U^wpw_ `=8'wt"l[\J_=>I#9}ݫsv a~f C]@tC!!y}r=ު|Y ]X@\V@WM?*ą܇uEW_|Ow0C@Two͟"O3t>ﲍ{چ[``RGwI)PM HlHqY&)n9߆j{ gwJC_e*p.wpoGn;`;X"cҾ{g/XclpR:R5~ NJ̓4BF!/ 1 '"B(p&AL."Xm4qxh bwvf<C~ERGʩ (pcÚ;%fswwv]wM]etDHuD-=#pHw`#/ CБS2uwϻ'Y`D&20̗t!7q &2= N;[@滸~=ݕ ?(D&nݪ%)f C||D{BvC:SpWQpy` O##Ixm t/Ր;'D+h2+S~IX Jv$41YӜ \ZKb, DV'"v  2c0 DE3 Qp8`a? Ҿ0l͒" Kp]P  ;ߞ) ^G1af#0506dhSw+[_ ~D'u!/ `.111Bmۀw>}|~+ 5=oeEsg@eaL#ȮBƒS7x/aoYtC" .9^D2X"\iw%=Ȍ'a0`ǀ ޻}PCA 8"J,0 jZB :{ "@hNC`YaARZ3XOb ) 9Đh {GÅFi3$?T *.t|B|P'MX> i)!>i=€vjcPxS[a<0;_I~ Op\@hv0 ɳV %iLGbg[7ikH va]f~$&\kgã{! f.il3U}e;wwB-1OP)4H9kIB+weo.[vC/açBC}bO>ѧ&  GŹ>foo\Xq'107Sn@l &#!Cl!++ݛP(%}s=LN"-ݩ>&7|қ^C OПE>)kux[7B1|4z!yd%>cY(#:  ),HW;3q4"!IJwfߡ*4x$y߄-m_F%O;`> PhŸ)J^<ɑj 5N  ! :?=X\yg9)a#!lG|od [\0B5!!ZX  (PIEď Zxs^> 33c {Cs z ayB 2] _B'Z!H6( ^lW by g|$#:rC!sq8 j7˒WUúwu[$Y];ֿT.BH ၛCP1%H  _p]0)} M0 #p @vY}$#KyѤ% ==b $2` 44bSҌ1F@W}n:P~}WTӻzʪrXќdf GcҴx|L JG B&w}KMrr $@N(X#MG p`ɒ:$\35!/, `.'&NPńA` ,@č  dI0[{ G #2ЀQAxj '~/$c&h8cD&` 7:F̘t8` tx9 $n9d"dFI/6Vxi`;^%`)fi6uI47Tzi*Bɻ; I?HX[&hP8ET'H0'&00%%0 H IPQ.!#& P`Ij' iἘC $%!,CJR1pАRNL!$BɄB&4 oIIH P]1R @\. \Lt' `C"-%es7*RuUti]WM:USV=PC ׀: b BachP(퀨/?n7 n[-i4‹pĔ&G('積'ttn(LPoǜk@To^5-m`JO… @j2J;"GV:S"EUH*!`UWU @.\ S +3x !0&ɀ:! N} O,$C `(P6E PԒTR:@R1~J0KA/&gjP@2b 04dpҊ( Rǥv$@ (C0ߔQ0M 1 tYR| H 䲐1?8رY' C<`L0=dAM:p "uNU'Ukv0, '\$(f,`͆Grn &B< @$ ;cqM?!?|&HVF4|19h*p/Ɂ{@i4GJ1AI a&9z#tEkx B)J ʪUlkD40HiH8ѝ2E6{Ah 8Us&JI?d>!2f$!NQeGoD܀IfHuB~f(IH us qWug#]PbT&%`Y!/@ !/SG `.!1aW8 _UM'`# jzd WUD@=P,FWaB)5ͨ/y=O=y+@;-?8a3p__HJIrQI-#J@ vOB2~+`9>I(nTA0MJ6pԧiYy#p?G`1ϖM@ K[C$Ώ=/\ @@  @B7A?NLrulz[! `&, b`T`C \'ҿENݱ/I/ qtUV꒪A9#'@Ӻ ;;#6춃 &~"\HJ{=EgYFvk2QȈF$}Ds -97~}q=x'7'ߍ~2U'"wn _e[sf7 b(!GU#K3+qZpc p3 C6 1 W;%]~E!sĚ!Fp]1}ո{ n!wS} NЯB/ 4w ئ{6C腥k쎎s5.19_aΖ #!rܮKwgE#Yĉ?hVway>B{Çw|ֻ w|; Gj ;C܃~D4f!ٯy;`a4G(h)`>8 {!/f{ `.!1zYvop  /a` fB!Xc3+Gkpxh-`fc2.f B\hላ^ a{PG@`k!`z#1yr Go80*|8G;;'@Rdݰ睖X=EfEr1!C! wsV&Ɇ S0)h!Z3凎NJ`(FlH#| TzT7!#+VTe|xH#řc 4%ƼOpTHxwqI #'JEۣ$ HbI 5" IMakHzip! fE%zù>S:!B95I@LƄKh#˹{ T;=fOp)Ɵ 58dwv+r]޳u w$u|7J <%}t|n#9+gdypτ2*JӀHD{,'{2͞Zf$H-2%`7HH7 mD4҂F %cE+d!? XjL" Xdܢp] IJ炰n C ,aH@F%>ǚ&K'&`*ɌR,,/,q9e - I`@f*ȓĦ\<Dp"~X@J /ōxX^Y XIJO I_cƄA`W|>Yc^~@wȑYBnxwDISQ iwcH5tIk2]p  .xٯ:3yRXR {:&wt"Xք5mM}]w{/Hw{ww  !蠒r#dL,݁|HOq 5C tE kvTwa ه )b=` pPywp{ Vv1;_&5$Џm$%>yO#Et1]ÿ\VOrGU) )YGy2Æ %>Av"@)k\$[NpFe>X=Q1CsxDG}vvXN@<Tő3xO$f BбVELg"e^Jip:J{']{QlXAլ@jð#}j4^}_ptonx8G'(ƓύicO] x3lÕDuYb57kJq0B̬ǯ΢XҵU5spRgsOR !/y `. y0Fv&` 8244QR5 h!=37hA`9Jh==ߖ;'TuԟsJwRzNH*T^k&FP"S'&a'e'~IP3H",|?cUP+?F5D4Ā&xF-(1<gB3 B0L[=Nޚl{B_D*UE)2*0 & B#$ȫ ,zI&H&B PP.32j+ 8+?p U@R1 < \? 00%4|pH&$$M&DjPLF` #0 v f%t7 Ѝ~Q'@L&&C\A$$E fa!B  UwRuVԕskª%w!L__ R*Uh U`X0ɜ@+LXT7 &?4RR=ޮ//|5=!]nվ 0p) 6 ( `]TuЄ%dH8WU LRd?TPi}:@h CJ,4 L0~Cx!1h(M,d2dH@@B0M`׼LM@ IAHHМ2LĢO݆!А ,X8 \q'$S%$ИBr@߉?;0w=W#0 b{; UTQT!0|TQ&DeBNMzRdLD7rj?2Aw|j0>I K'Hh&3Q)%+aE$ԡ PA)&CSВP`ai'H@Ou0`5C-7ŕ !%c  !(gcI|K `@* D!HGH"!pFG`|񁘒lI-$DF0D A,_Ԑ f>LBVH讔 ##G<tc0΄Q㚈cPA  CM%|@,I! YH|XES(B@x]  e #E` Lx4O@g#0V_&mSW|t6UH K%q)@ ~F GmP'"ā@U0u3{)`9S|tV =vLfP'g5ϒ0o8ٟ>1_;2g[3ps@[?ap8Y<D5>"W@]Иr# 4BX5^.`W (\99yvZV>HyRgwqw4;5Q͵䐌cHwD-@ra'IǓ !IÚi> i><{${ٛ@ Sj{ !=(y>jb{jVv ' 84? *4 z`-`j!˜hHj@h1  '_ ` {sW0bOv6v Q;OpT0/Wl %k.BDa5ܛ %S,;BiN ]`s0؝dpWЅ:CbԦҽ34+5icQ{y=wd3AlRRX4- pK !cكȅ:wqA,3#q|:Cv/;I.NjwQG 1hHS dd0Q_i -=P$,K{,Cw *qobfZ;KiǷSzHOmgix/QB|0UV#pj{Io$wD=:N_m&/!݌(@ ID{` 8p3wNW^)!5ݦEFœ GJC@' hA(ds +/94*XOFB3K@<4`NΝ1ҚnPBd @ Z}AS"װS/ Ѹ ~e{gI"貰?~:͡80of3Fu/dX*  H#pAF0sMolʌ4T*CN~2 p;^5)6f7>!I) !/ @ !1`dDE#UF09f[umz!5hdOPm]$|l#2ʔT`b(0AsQLpTMxmrn\ UFEYu]aWف\e^mf]Ȫ6-R q^:Vⅺ:菉q9i4=Krxo zRT 2bm-kU9`vjĄAL$mW&H|K;i3cu&ʲC鱧S",@녀HFձL7}u dSm[byjj;10j/؎k =iYHJ4u X#14˚I_MH>ADXн#FB'R!eZha)2FdLI`c#D26QK‘U#M9CYf]aveم^mZ}ǡNܴ++BM Zp=gLSXb[.7P䕘WI!8 [d]δ֊?=Flbt3426N0 @9u\n~bylE^C baf( E5Ǜ>3,)7v8ظ,eGP*U%iζS) ErSvYCQQ9t!/G `.!39 _sXw| pgwpЄ! vޮhyS#l7]a]޿| ? s]I<` h53g ^fd $nDp6W ]|$iDKbK7k58v@$zw?N$FH#FW' M @@&ၲ &co*6u!}?{➰j\`xk,.ZA )zdhqw{PIJi!,i!lHnK_DX;= $#ɹz0.">2ܕwwς03_pB'θ!R(wk‹ 1^0O!FcL?PD z]- ul$&rM.@k\`% :_mMa̷wZnuK<섙p}Z{$8e- 笂KE/{AmwtD;ܗ%А"D& \.rM~{ւLpQ%r$w   RuxT 'p&;4/>F )/{`9B]@rQ P~<@sݞZ0wp9D#ߝp C_v.wFCwwvr56 2 `](vg$( J߉K]Iq\7',<0U`/lz ϒ! v[L#wwv2%5b2wV7lve(Ca !5' wwf@;> ڐ[1>59dzsRf-ܰ6SПw $440vF#HU'kxYk+ xʧH洋9p3 8JTp 0, 9lSni|C߱Eeez0G,Q7`uhajР2 $>  `S0"?K<3r(8tC8:B崔c4TBX Ulc}2(^d AW$WCHowo_dۙiwMC{;}^.`!'jG5 `.$ nYd݌ v$̇w  !JړAǾЗ 'Rq:S0 dZCm 4P<۽ݒ!kzD48s{ !d$4ԄKZ] ;l̟o`C1 1 Z?8d>.;{ozI<PPlzBqtɅܭ #!0&%y ke@]\@hMp7ݶ3z!} n8/T(֡n= >~G:'n`?AqL0!/{ `. 9/@kU#]N}HW4rS@:ՠ@s_@ \_L 8O;~?䤒Y$YRB9y(Bqh- CP?Pbz~F4p'dK ͿU 1BFFn԰ԓ 3؜"E!d X kz/ &N?X>@wń AKcdŀ 2H!1 $ L^cuBD\ꋪ2FL\BbdS 4IB"`'C5L6,g7 wT!1:WJ䀏iNI0 p3,(,`i/$ d FH)B($&f(a$ԌEp2^8g On [S/z0dRVTՂnl6a#V&Jdj5u?DL4@ȩ\ȁKP \@ODDbtX4H!H{gONG` v`z K&B<) "z*%r" `~jz$IE &NN@(pR6HOT`)):@L,HBAW /" U @PJ@E䂘)]y?arqy\O7D0qhшH$~@%= pH"G$0?D4MN,4{S5`놫}CVZB0IBhI0bH)pd R78*$ep,IR$)  @QV4@ZB"P0)1' .[t8THuR@*TR5BA `P1g.[Є,W+ TUTX-@&OK 4`+qIGP!(h)s#Ϻ{wnh`e!)$ ᄄpJ 8Z8Ku +G {HVU&F5\4$*UUBAoEBJT#P*TLPV0:BQ@@ U@ `(H-NIZ5)HIKm! & i`̞7  !I [,b%4ݦUU]tTUrix+!n%VDܒ01COZHKK,R84ƐlØuAL߄`ܬGU[x=KNQb =!cD(I>QޢE{Ac_$ !H+nY%'n v ں==W:Kw!.%9ʅw;ovԧvvOd""aqw/}_"@Z%7s[O&II ȣϾ wSCGGzOrڤKe;ef03{{`xN1r(;#s_S . HO `1E(q?hbL"KCl!?R1;ᰩs]ޞR'wwq_ 8/M ݅0w:swwvq ~YKQ W>]OK]~idT_wD^ȞI@]"K* 0dCވTe-ݮ_UU_w8XD΢}O~{"wwwWWw:wp92\z7 wwu^}{\Rx8BpY)ӳb|0hJq!/ `.!3uBCx|Z,JǻC( wpN8wy\OIR^'ܚ T&QĴp[qA>ݷN!Krl ;|evx<˻Rse_^"Op{AT ݘjO"[x "D&wL-X+71U ᢜ._=z=_ r!8K7ԢúEx]=B"mv`+ܮn픂HK/A> Lj@#-'nH"f˻5*9HR`^|)s|Q  @,Ø&R\?Ux˅ON~CuݪyZ7zȮl͈\g3"Tʞ  &t5kQs&"ቀ+GRDdĒ1':K]oay]ߠ-`:?翊wu{_"܄7Txq˻ݳt̍Xm=\%`HPws_Be{gwsҗZf\ܔF8_$;}GБw[CGw~N1 B'!OjD#PZSaW@=Ç( ~ i.wpMW=S-n}Іp w`Ƨ$CRFHn Fk'v%f}ZgޑsI"3ܧ{x_ l_7$}kUȦ}]-vjO@c0/HsB)}ﴞ\=5&w25't }[1舓O0z!2wwL; üv {bY/tW wv9w{,Qɒ{'ݒB K̂O5? 7@ F Cfrj!laVa{3-I Tp@ W-,l&GMwp1~d'_acǷ!z2 0x!X? "AN%h+ O<}Ғ2|4AB_ xpH@b=JyfhIH`cZ]Hnxq /#$8&_k. 4F( @w (R{ "lPU>&}d>z0 eCW0뽝`} ţeaxmt>Xք[x{4G  4- |:io^7f!&GA<1eվ_"q {%Ы4-! Ř^ DŽiE@ (.Ç_`+!1 `.153-B`9A؄3(wB.v&j!@;*VHb f^{8w *<>Ѡop=0qN2{x` I=EO=,=YvmI$KrhE=%hI‚x8~{ŝ!-j~'\HP?PLjIHP5D{3!x)`"!cDAyŔ;%I- 񋇁{!ME%EH$P{[ #K-$#t4)bg0D B~% 1X4P%oCgg^,!0'dN'g|vK:ۛ!=_8w/t_GݺPQiF+=04`*زɅ e}cP `&8 `0IHc_5/Ɵ(t;vN'~(Cvah )'%Xbh@2 tM rMͲ1 t-Ԁi0 `@uqh ?w$n Wpp!~1p/[!!I4 @/0 P!"jc%LBQВ֧r4_y^*p @PK&)c 0 HACן>ϝyWx=o+zǃ[kGy<ғ<X);G%"hS$'[9%mԥ\@` < !lXg-9;e%rrrLeQ1a@ZS'l{L aGm9Ç_bP^N@fn3)>‹*XČ# n1n9*''0bXI@Tcuw݂w;2ԻB#bC&T# L,N6v3B(u n dbp4r gcy4Z8hg&X J3xϓ_:,Vvc` tؠ+yHuwϹP;m?I /;,v;' ՗(Z=(~eH 4oo9\(da2``=fTg{mWx=-;;+NG=n3NǟxLyR/ @=a47mѳw{ ZV< _GBV%[ԕ^3M<7G<I<\x;i-QQ- ٙh+Շ Qʢ$`ἒDGشgKu7$J )7(ũݫm@4c]AxV*#屽6;Ctnn%j TYt.{^z} jʚ$Ϛ]5z|\\ЕuJzʇ+4hkXfT-hKt'[r[rA4Ams!4++E@bt#$C26ۑ껺=%Yv]r'yu}`r'LŽW޸pԚõjnJ \j)*o}Y*-^25Lrk--mX"TCZ MHmȕIL15m[qdD *>&D™UI!d2>I<5sg[LUhPmJiis5Ri4x&[Q m44C㪡(&e7mHN%پ26CN,6JMk顭*BE$Pmc@0%ѸmF86@crk]``d"%2#(I4UeqלmmyD g#T^f1mI&Uq2VVD 6~KU{} %IA]Z84g 蛵:~z*.2Ĭ땸U$n'1fj%m_65P]5ӛE+h"ܐ%\Pڭ!Psie>pG*S@>Pݗ&]Ұܚ5'U%*\S'&YrK5v0zy<V8TnJ)VGN1!}G̨P!Gh^M+ bs#C42&IiIEQe^ee]qwYi֜u]M>s!cp"GkxL9юO&v610%+,Ǝ_*Z$3\=ˉ[t8hwRָ鐾 Pc7*uVfk!}$]țڛ.T{ch-)䈳!0Ҫ$\※Q hK|VܩJF4XGA&%,"#FeؐהZ1 d6FJGֱ`V:!+r= 6ԯޑ O]U.ͫg7b5YnWY-~>{.atk `D?o H s4X2?smF6 sHYp.>pmq`5`vldx u? `b72\ld @i(t >ߠ,=k<|J, =``stfJ[cy R  SLj`lwB7kFjPQ  HޡL- [ovPBB[P2Kyyֵ,Qвu4j]|gϥg\ŏ,YYe2@wYgptA=6O\?.-7}jfZ$Od`nFl?xd<-͖Ks _Cn>= ȔȥO6XmY-C*px }:;? E$OGp}emX7OO{,/, ?pXygq .Gp"A07E0LD p7p#o9G 78#߁0H4dYg//ƀ?w1C4{|pǁ͜z;;6A~;! ?0}!19 `.'O *% esHn,4~7} O9㇏Oȫ4Low))xZofyX ɠ $cɅ_Iel9n @!&$C+ZE4}ݺ~swXnbԁT J+PCI|n/t  `:(}a9MpBqъYE>~3 +f)ZJ &Wv2\7< wn#pw)A[%)w7L@C qW&KPicS5gH7p# {p:|߹е'"G5牐acU8 P;L'%^Ax:[c-a`B<\ n. sBF hwVȳ'Qe;ş1e8XD[O(Ȕ9sx;Y>ߡc1ʔ8|Asmp#O*wx\~x~'_}5s:>Zý`:k iDjBEv ؖLJƕIL0!\nhIqv dd @vLQ ;(`cي -Q` Sf45P471e풴F7H 5 ( )e2&(zPܘ^uu> ;B@T XZ0!!<45aNu=A0JŲv|h2`)ogD{e ҵA<dp;@M?:;wH1L2/G[2| JCSyǽPj<ȣ>p"A33p}ϸ[ќF4}d:x рkO()#Yc𳄝s,]7>?y>uansw0P@0 .jP `0Hh ;Iܚ eK&!4:R 0B CwKg|lm  !:`a+Ґ478h IHIe)|4L=jۿ_]< @ 4X (3#u J2]ߔZ,0hftBƒ;|//,s`X vXBbd0gHjCIT4 Ie=+/\ @4B6WϹH !,0hJ؎0DR#̞xnoQh&'1@Vp0bCjP @NKOԍԄcr^SrGXŖg5G?X0 @4 c%_k@0@cV`>ܴs|g / g!1L `. (湏q@{7?zd,'kx.w4',ϘwN乤{t/(u5iGǞ$z=k<-Yds%T;^>p#o#ec[W"яX'ǖgcpqq|9Ougc&',/?Yhz,A Ⱦ 179˥ ߎ6a Jg q hh: J@pٱ@=ZcA2a3b{X0 #'jvd7sVqI\7?.@T`&KRM4~0ІL&oHdos%[=pȄP mXxGz{А+aY]@jRMO4;mLJJe|>2 ob&W.u$M dp߹XfdzP/>%9%_o0)?qff&t0p@A!'rTU@! u|NdP~O. ?,/#|nk4'sm~Q>=u>dxdF..܃ǀsk7_(X4jh[%wp# ׇF?G "7 YM {<>Ǹ̒ԿX}ZPC-`ni@ZT'xT~qwcy~sH'Rl||慬Ex?b"ޒ;@n~ndhͧwdXfr,!C0n_#/,[rCd)b`@j 77Htk@k2?G's(!<Ϸ6 0Jpn⍻!!$M&8~0gva4ﻞ7\HB0W|C@ @.zz_%$PǏx]H PX`P LCBpNN_}pX՚mf t[ހ҆'ϫ9CBMǞp\9<v'l|@[O{=7w40|̘d')qq i>&x ǀr|sr^]=K ;~ /nJ7|jiً܏>BV_2wyuJ?O Z?p7VZ-#(-+S Ȕr/_q1Npӥ.; t*P3 Q e ?<4._ n)V}|,Afϼ;-tJ8;Ug߬HuC4X7?͇,k)}swMĐO&>0rC87-8b;00Y|!)癞Eno ^=0 Ʉ!1` `.0.-~Ǯ`(Z+%}{w (MJPC(JRT-;K !<LzLP-97X{hX<7VGB~m|>!1Ye>:mp@n^G?unr ~C .h`%J@pY]Xn @@ܒC@aTv'!i&eJKy<<@  ` %b{ &t|0Ġcu=ŹV;X d` HxLѺwS':5DS(){6}8+p;5 wS ʲ \|oTm1nlx_?kc'k d h;?Xwh_jOsd>p;Nn2Dž9$G CХ/eŏ' @^X _ۧ>nO-*|L42Qh%pnnE0&0@uџbIpp(3p|@TJ!CB13~ծ!P(N}݉+uv7蚔~r)Iy ewۋ4P@!(I]w=Ͳ`Q %'uGwu|r(BnT/0oq%$~<]#ߚyPFZȴ&<,r~yP K4-P.EaP5' c94KWfUɻ g1_'5 `7udfp6<ȧ^oSΰ#ON"kOWG Ů?;Skɠ?Wo997q)# ~7]~-?'{xl00?xGh?p;7Ϙ_DKG{tx'%5o!hpx^p?ۧ9D8)kYk';yFGR{/ߏrVA>Km|-qN_p~ܞ|Ӥdq7X4 @ B=|L  4|a939jL0I $4咶\ @0l40nR/|`*0j 5~xSp7$@+ $k3)lv9gK%r-z^w?Z0fP'j:Pa4i`PY0imFB-@f @3!0dn Iœx!R?RO+` ߔsJ 7zG4@5(2Zb2 /&P(LӉ@ԣtohJpH Y>!(2je^"K J@/ H)K!' 3:[dl$W',yIn-8dߚ3:Ƃ(vw:7|ɀ13$_Ffwc% ^=E`A;(|~uZBB@brv-0HY6/G͗'@``TPFܑǀl_~o3?ZyR|!1sG @ !1pMkqͷG%pe.#/>m`u$DD#XHꯪ,MW}mv_~i%fcmkc|̒&ӌ68E&i8ei b 5yxFQF>#UFPf\0Ym+&D]Jw0M1(i^12UJ~ofM<8 >5DyOdp?/o)=$h_omqSULм4q3a G el0O-G7PubՎW" L5oi9D"[, TPXR>(JLfN˦aϬ}()A!E@Ne%Epbe#TD4Ha(HSUvav\i6pѪC6Q-3I<{pITTlY)c.7IH>\6 (Z.CFU\߬v}:|"a5KAjt 0m uxChB9kFÑ94T>sm)j7^7-Z_jc' X)<]r5v[PVW*N\Z1Qql#vjE͞."ö!B VµrHJ`肎0RgLaցK <5koH~ bm=1dKrU&U#Z>s$U*ȵXn*ԱBɫW-hamȮQ6':%q; j8u!c=@m jVW5;iFJD2UlfF+ bDY> LA_JZ`d#$B4@E@*E$MFYVy܆^uL%GRF.(*̼*|䒪ߑ -R' pgGP(RXhѭ&S(5P ޖi$(VjDaNĆK1|ÃXqJʞaq? B@Fd󲋤W* T+p0Li\eZ6p\Yû|O'\.M q,!e˲Z Jɶg: ԝ1cwK,g'( de]97)85bT#32#2I"@;0,E5eey}i_m[i4N:KNuT1#ԠTø ɴ+bWvb[p!1{ `.!3 30K/#ϑHcnRRQ֨Pm4`;&q0mi h  RY@10 @~!79Hnm4nO8]Is?ՌBC/3/J;稸}(Gx-EƤ#JR)HRr wX }e8JSg(Yl8oO4pۧ~Eܞx+>T)it^8pN`#"sD̗D/~P Y ŀ1Օ0^ OA/!!dR^v8Ey 04(MN-% QhIIc?χL (M , `n(P`bėߨ70bXdYy%*0 NL W 4P `.P߷*BB(pD1;nf7$B&ҙ't%,w6>dԆ1(h'#Ϸ: (8`n3`D嗒ՓK-*fmڼv&ɤRF |sKw&BNosd0 U; ZM-,џtd7sXmNۀZnvϷ5 ԆLJvŌX}B! C?o2 :Y%iJ&~άugEBCx` #I'B~G! @`P ѐ[W9u}VMD BP1KA\r_&1_e%}NQ@0 ?_Iy?nJٺXni $ CC1`9B>dz5! 7o ̗Ϋ<9Td:jNulg+C0[r~co/4%ZPYְ36q˥*= tL3'@ `5,4 @3^G~ӿ]0hbH|*W-=eOK|= ߥgpP^E$  SO}i)nS>ZJF)wFI:ĥ9)Oyo=od-l1>Q<* HE@b\t'2n!/ /~0aO_;>$@+) 0-LCH`ܠ`ԠXn(dUk!ٻf #}yqx Oxu?GT_p A`^kANw;y܃%${.wMg7b{*9$#HX3S@e=~膚K{$rf&#}a< 5ݙy6{%Ydwp{m}e=հ hv ,(K w|2b0_"sp3 H\DnOŌ}ƍ<Q kE]= Fvf7e/^IMA.Ep!! ŪdFH[Ͷzy9_)Q}ڴw*iBT{WO5)pX {]ݚ|gQtBMwqYe{Opb!E=UtCo O}DXNOdw!1 `.!3Y PQ7a#W `9:!&M{>6wQk y. Gwc06 Q Mψh%6oV|rAO$1 ;7fE@mit4wИwpCKw Nw XgwZ[}˻+#J0t搽/lOt!.q@" PWo JK2!جP $ 1BBP /c%8 1d,I9,1\2H͐RG 2|>PBhv"BT͌B0H، @ wwLWI7;x.'A]%ĔhD>wweB1mbOX ȓ % a!jSÂ'{C<;}7w+PO;aWٴ"cb&c B0} 5 {b !72v0 x A\v ~m;P38݅ WpܟtCfƯq1=  0&v$ ,`x krHb:Tw5S6 2@R >L$Rwwc 7%5z]cOsaNw`xbOu 6$ #Hz)1t0 B50h.ndvl)cj"`7n$.Xi`3 ͢ .4\_q+ h7$px!rK!>bO`T [V!$-! vC ߯|Z++2#gD$jR=k^srЩq "d:/ax j"-ĂwZ{Q p+w lYQݯ:{Nq钏u'XHءm˻mw|{{!#vBzgwSI{Rߔ;h-wPYi;f]]}&CA;_͌ /x|Gܶe$x˰q Aww5뽂P?_"2}/OАN ?m!)Y =UwVCL?tEylo6{ AFز˩ZgLOՈL2 /5b>t(A&m/,)TX|> (  i_pVܯv[I&jCh+~ym&wkFgK7 u i 1pS J݂Pދ9~N(D43<-<1>";Ȃ.lC|'O5- )B<аeoEYO6[G}ڒ" pq Έ^X3Θ&]wwuΦ7pw3 b"SsvːGwdq߀Bs\{), V$Px3!1 `.15^5=Me4}~7 _q`n/o҃$"TuɀS$Nӑ7AH`G#KQ[`k"@af`|7ww1ݶ{'fw^^BT+ezo{V%򐘎 7+!{n4 @vH%vgw5WGAifs0 ={1*/WL gdxMq6Δ}kp$>3$hBQ0\"^?ݐ~wā=%]l^oVo?]D:}_vnl4z?:W$!?ø  ?, Oru@wCzPǐy 񘻈泎p&>WB6.?O8ĝš 5 3 %גHhf x@\7@G|pG/4*kǺwuowYwYwY\HwP( H[` /NM"EV=<ב_y;wuޤ;w7z"%P%ck-Dr?J~ =$ |"da&P ML +x4nIr*L]`*? u" &D$а(M@` ɡ'&p/M 7I,4#"@p2; V7@%h0Q4 (`EC 0dy q4PhQ`P0i0Hj8j2JJޟD'F8h e<x|j\F~@Mrڵkzjz]B-\5C ? 8 1p4HuEx`D hLD$@*a@҄J@O&=iQGORFBP҄$'IvX h9I% 5y\sC6>uOZǺZB:.7rjI?TEܚRd՜*w&MH M\\X0@S> He$0 (%tL4 ZQ 1d.CP @QeY,1(ĐSG(Pѥp$$ +(6JhҐt$0&% B6C|IcBRHwb8'{t! L )Hp) t"'U]{PdPI )V& uPt,HZ.&RjR`I!!RAɐs ! C(d'q0#~q#~ $?LxSsஅ?r)L ?λЄ61rjMNɋP 3RF %$p5A+H@1]\ @Z )znEI&Iu1&MF2uB&?v,!$0B !ĘLB  `45 ZRL,)))@ae/J`L!MBK b4CH bKyXD2xPq1$M/hoIEC4Pi %5U ( M>40 0I}$JQjVJFt CR'$PP -%)#h+H%; ?#!1 `.!5#Q & a`'1 MNzmĀhσЭ7zs *UUՕUA+y^l 1 /#Y"7 )zFYDx4f|SA*|}Є?u L @+~ = ^,a\0 %"ML*DU L)2d5(L !$ҲP B(  I _&)# (@I #:!!vf 54D TQ4 4~@z>L!5Lu" MQE+@k0x0\+G P"DS5b$@QP.2EUuUwP2@GP-uɩ #dT _B"|YJ $3G3azyx|#'$ XqG Q2jT2$ȩ"ED" u']A X 2MAO@ WuT D&EI0{(e ҂a ]9H Dhaa%@Ātp4' =IF[e?5$/b ?FV`T!7Ď: 1I*'p` pGp%X<tR.B+TQd@ 2dɒ B/ɓPTCP *@MTWP" 2G4I ?Rb @jQ !B&Dx+0&2@!55R<1 h I@#x0 47~BK8|-@Hb &&IL Z@V#p5FZq7.a@K/}{≘Np{lhkؑlM&Xo)PP&xڄCiJK&p HWud1]WtZ^!4%{gUKۀ@EpoKl$:B+4qJu( XqY~G/#%'l}ACGBp ?j;ye+nyП67;q@8 'Y!9>!g*%iFSgf!ZJ9Êcm$Ggw<_#1 H(WA;u m)ƌ:J)6~IؓDJN$/̔dd24j'D6f'8Rso@cS̐Kwvf @.!!1G @ !3^R-oɼK䣇|KFMVjl"&|FThLI'WHڿTE렪F̒Zq279z $z*Pu)S!PeDDįza.#Ӧ#M] TY_)u|[in:ԒȚ @p껁YiMXN>Ƭ۩ 3kE"j(u6u>ܪV`d#4C3B%ﰳPI%U&YV\ya`u\iF#r]1Nmq@!Lhĕ#Pm䫮Y֏f S֒NiX9 yVѴ"Մ7h7uE[<%e,d<ҘZ⦛Ms-¦e*\,q'H{bLt8"HD E/-9<{AE$jei#m^%'InHIRMƮ.f!#J>&)GSmmܤ.pD+bc#CB#4M⪠Q$MZ]uuu)ʓz`qv$FFb(͖71:jr":믠Q5fO`b@rIvnqZCN)7LH2 K)A!R܍(mbR#iO$Iq$l`@RP"R |}UʃmSfdh[8eJZ SqLdJ뉒Gg8wU/HfVDLYŵqD}5DR6M͍ˊ'MUKMfE.>EF,`t"%R$)$M$eemmށI"Ii7pV\%G$ƇCix,B$%z:4GD]j!ؚ_d&*4Q>VtF+j{c !*o:>wI-t>C<*9gU*MkOUvEjiDӐ"RJYm|8o"M. _xO={dբi,vVͥkl bW% uw奈^ӆe-V!$". Kf7j[~bc#CD#6)"URMU&Umiv\^u_yqלz3&-tBU0K/ܭ9Iʧ65eR H#V`TVSm3 hڲ&w^i!cI'j6C~(w۟f~ob^645aiADbGTD#dd6JcuY$VFn4xW ڢ 12ɳs,V-r9\v}B%hn2lQRQ>lnr25آh cOD m$Ei0l"`c#33#&MI4Mviqm^yIg FfRqQ)rQ Vj3S js4Ff)]$dķmXԧTBO) ܽR|֍B,ƭ u,\$J֜&YQ ꕨQIE%oޚKV#q76J8FUji`q % Q,H!74@9#EZdO!@*L1ZJX̉VCjl@eQʦÊ#L[մۺvb=4V6Zm omˊm')ֽ^b zeHƕbd$"44(Ti*RIETYe^nZq^u^ǦUBBaI^ˤG")H`skm1pʒ.Z7 AVJn598lq秉ݩdKi+G0Cei$EٓK\\2Zqeփk˘ѴB\eQzDCoSY8{fMJBnp{\,Qci-!1{ `.!5A=5ٚ)ؘ9PDb35OۮP)ݘ21rQOwf<${.ؾ`Иi_籱0=v:>X/}!}uowwWeݝAyI>b{&/۳R1 ԌvZ[zswZowb: ( w@O< mt[9Pܛv?; _VRpow-+TH2h!kC2%9N[98 "-kP_M7$p_הT'N{y?wz].]{ui9) LI H&&g~HTQVȌDB)AD+aP]kJS٭d]!lo6MqU a 5Y.` P \x/J{G}wBܪ$t_*!F<gd#sڝ (f2!n_e"  ZxےWƃAFUb;:K^DCbǏ5t## JP{@<~b!589iw*9.e1^.=?z/?Q8 I*V 3#He'!|~|  ބ1!'^o hm7 My !=>B~n?h49xBۓB{(Xx9k5\%$-0=fF3Swp.z8D/dMRdva]娂愂A'Y00sFU1/&'" vb> @5x#̵oP,#yuŦg To=, @HwfX. }ݦ7w K}0O#%9mkRM&̏u wc|>[;&>Z&K%ېwtGЉL,hh $gi(`I+ ('02v3ILKB|? !*FIeO-?fY_jzM2YQYi$|?O`pD~h)洛 N.&y5hc.g'ݛ%L٩}#\-,w.8wv% ѪmB[C ;DJu wpl)p] Ok>n|2j7X: eǻjmvN}J:|/P9'($owb AE;<;'hhwwsa܄L8xwsW ܗs@NX|(B`[t~t$Ց`0:yWH"`Fc8   \y?}2l3]פzϐ`#+S=JZe$(Y@ "R{hCĒ^,ZRK Ǔf7O/ݜh`B (J/%, ň';\O?a ݀6_{Ct} >^!{H$f!l,Kd @5xA-E`2 ?KsǨ7wt"xq,f%xf]݉)^@Ill;g $>Irw]8`9jj!#WٌMO`wD_(e@'/~bI} ~/…x*0ОCpG?@$k?@!1 `.15m5^-B¬nawqQ? =QL@` +lyny265/>1 ?s}vO¹?}@]#k ֖7SfT 1xVD ^ouZ럭SJTʵ@úZ-?]BbS'#@B$AB@ =a $#CJBz0aEY4P`` ŀVB+!%Vj9cK0`2Hac xOB@%F%,4 =I~!dYLA!V:vRwU#OЄĂʯ.HO,z Z&PT!0 "D U&H2IMFp P% !􄧁l4(,I4M%8bQdUD?x "zn`+  2Q g4B,`?#gtZ;G Oڲ;:i>B @EB*BL3|UPH*$O/꺕e?h D8`P @@42@jRD0 &PAEp d0"(B ;@ ,QH%Yem@ J N1 9IH5\ HE8@U :&^0) ,t#TR}{ 빘ko Uj\UHu6驦S bb P_( @1;! CA05(HadѣR2*J`B  HĤZ T,,JFp2PQ`h`O% HnA +Eˆ`;!݀ ٨D/TX[\uUʄ j.ET-! H"L SOD1QUp/&@" @@ HD00C cFd4R@j D$ܮ$40,M!$3@%  $( NN%p$x"PXΊ(!"E~Ȱy$ UW6uιW(UB* 4@TT&)SMUu9H )U)=Vu"@(@T MJ@pQ044 0LGid ' &D5#5?p=YO ɀ |> -G)%? z ~Fħ7PX8 zV0<&HuU]Bu E x$$& 0 Z@@^B*BX @@U&DІ%I* UTEȑu"MU*\`f,рPK+$a|$ p"@&9i!$`i PL(RARz Hb@d tM,ܚ44`))edC@!Ғ! `*XiD!&C@J?BBFHFF&,J!%>_Df0%?m%H5dy0ZS݀ k{>t)臁?2}Њ髫tܪ HZ©b2wW2j!5a9?pNp>n9>Բ?;!r+#QѰp'Pk>UV5MwPE!3 `.!5{I : Ā\/op{z3a@GaDa aUQQ@dVQZ(LP*倐4hP1G VŠbА B H@TL-  JP @H$9#q4BJ3o{!& @}'B!i1c8kKRUM C -UT!r <%` TQ  hDOT!0*@R(E}L5_I=WUP% PKBPK+r1 xXϋIA_ 5)!ڠD 36j!11ѣREÍRgxȀ/F]!%'G' W ]]Wu7 W"+U` h ^G0V0 IЋj#A@-"@,`W-$U5bj$T]ET&?N(0 Q$P CPQ %%Q@HD4d J Bi80 m s%!vf[Dߣ lȗHW uI".P H"@)0+WZ+`T ,.@ d<_EH . \=P`)@*2$!< +"Ha4%.J?p׷`&ԁ!#0 @Le % 夢{@W4TA%!H X ~! #H$J @X0> _Q )%+@ x)25o,MH! &Hh@f$Kp= @{RGYS(vƪWU]tuW\UUtS<!diɨB`fcJB6 `8P"~jB*rGJY/;)%u#R9z`,tzI!1t/$Hf;frBNfo_Q:'8f gbCwMA 33!#o#H%gzI+iB-f >_;2G2[ps@`qp#@D~؞O|J C@ys=i{x*4bqBK⡠ &w:!Mb]]DL3(As@`B U =Q wq^q7 Wwp 1"gb)8㦻TERgs\ݐANpr{iT/ݲ\팊|{ $J"4[!iBGnE#e"AwP{@aM FgwdPA_|pCUw)_:z"Ո h/D'-- w`GJoZ>-& * 7ه< ?ܟzO|X@o+"›8JF|Xgbv~ӀWp}Bˑ^vR)~WW^ .WRXE% ?B :@K噑x艢Aϔ\S@p`"ogoXY=>i׺Bbݬs H? HYwvq)N ,D ϿMk_5j8Ai^.AM8+ W])<4"y`t^ ݙZ_'O 2r{9E(-tC)@볿A;xB?՞!*{jɶH{wp'>9٥_xߞCwFfB'p`qz#ڇ+bhm!k4w2%|~| T2OȈ$' ki8]>YD/z>28#׌QB$`ͯAL!Mb]-vY=NB1P{_w]>u IzAϻirV} Ɨz e Ni㦸 D(XUOt%I=p``Y)qW<%* ᠀bм$H;'r5לD1tdr8 7VP=-BG97RHw/u)=S>2`&B@SKstRޫM .ݏgdxt؄G &o>2{nO,*_pSWHHVzOоA-8%"8C 3a<# <4j-|OJ4Otݭ4eO5*D |ZaLՍ xK=}Jb4R #4pM ΗdYn]zP>*,.øB0N3}'#fG^55`)(9! {K꾉}|{UOd6wvԩԜ!^1qH1 ?fhOIK9&X=ٻ]Հ (Kpta0 `:x`bUjUKR#"tVmk8|&? ߒ2}}OJwm Y8<;p<$A= %!`B jnuy$@-٩g`q QS}![qNG>abd3Zq@tCB@ݘf!~ʈsX6Hb4h3Jww!+~| "% y}־B!$'  4'~ ݚfЈ+g C?z`i$*V)pQlx:݀ wv8UA}B/!0J0߱ ?wIC:zuW+dbP5#d5G!33G `.BB% $i(A8ahQ$BNY189JG۳9NfH"hJ_ TB>msJTεǺ6&P ?q{THDOw0!>@zh.L~0 SV@SS޽'B3!%#q-I Q/b@j!0AAp` VjZ^+M^En$Ј#_/lUnJw &"ƀ $`RTQp,-7`P2AD'"E}LNpIL @W&`U(ɓ&SMЄWU0 r @<|M> &fX`( H &CADΐJIؚ+N`d@=b@NC`bjU!q#!)$"Xid4@|t3Ae0Z6OHg!0 )($#!RF fB@q"\ZCԆ5d`z79%+4uޱ6j8@`&yS!,Ɂ4 b Br` ?(7?%K7 ',JPߝƤw"H+8Bwl#܏M u_VWl;͏uuބ?b$ 0j ;pLJA 3M#B41 740BII gN$XhnIa001%!)҂$BP0ɨ !TAbF E$o#VCIc@:ֆW:6\7Ї _L `idIW 1]L,b|jMTIB@%! 2$rG_ d)'#>Q )` PZ{b^'D-䧭UʹЅ w   W-fUP2jT%Uȓuywu$'I.3D2yRk03I`@&&4a$Pa0 Ydi47"`b8hi4 (Tx K` +LH !?9( :r7;|[` -(G((Q[qAEO HHF( 0hB %C$O$bOJ0%#+0,*Nیɀ|hHv=b&[=V$ِ*/ЈvΥ *EVVuMʰl-}pn*|b2LtaSpJQ'&<з (FF{ IL;+2h 8Uw[a:Ad MH Jp. Q@?-p(6 Da$*Fhlp̠U -Qjۥm+r/MnG[KEԱ#3}(%nhm'˴Ś銐jF IjVg:*G\2IPUjՕ+cE=rIq$d2'[:GJJHnaP܍P;iS'j6\dqF^m-m!bt#3C"8[qBMDMayǜiz&v3p]E#iҷmx67&Rd29JoɤըXt2E#G4 ѻ+*]\CZ^$ Ց Q&"&]J6Jj?Κ@MK47Hb:lU-FBDMoGmmf^GFD'UQ&i$M*R LE5܈K:5cBW+)vPmʥpcnFDb>81Zܥ&bPRgZڑr:)n6I:ܷ8r5@`d4"D$$pQ%Qiqלi("y ZX[Ja³\0ڭdszѫP[.FхtWD!SY2JDdIZa̭dtw6Ο& >5JʥDje7+@N^d1Xjk4mF6֕9B|&쏛]k t-_I_r3qwk)Iґp۬b (}•xC D:CQ,1W%pW,ITXckb !%@_Uɡi6bt#C43Hiګ Ieeq]u ~jP| O2q'$2Z$Lq:Lǔxm+ JE*Ɋ%R$ɇhډ$Xҫ1]XYmgsLBn%9ArT-api)K̍6䮳Ӧ..D2lm"Ǝ<,L zz/zĢ(n[ W&lfHwm`.` @bGMJ:qQTUi=HIH(Q,a4Җ Fv7Sp:nRHdeIyPukrW& RJͰ 8zT%#%kC:aĕJU$BZYP,#T>"qB*i4.>P6VH)*aЛjۂ&f9-֙$,|N:eHwl.M&h$ˌ;ҭ { /JA$LyLnUHbbNq$4Dkb§d.dqk"FԄbt43D4Xdw1TUIfiz|j6nG"Eew*)IK+eԲkU]҃mu54BIoYfق0܇z$,i6Hl6]dNdsL%b3a[k4HZH& `2ffQ'  53!JmYSi؜Wm[Ew#E]8I63"jʴf]N[+:Pޕj Y5h.]l1D(7})aI&gZÜ4&/ZMpbR=R(Bi)}ڪmQX`t$REDDH M&mwevy"&4.T \vn Agz!3Y `.!5ӹ65K߀J#(Dv)?8 R0҃rJ#tPj2mR8 vC! @0x@gWRЅ@ Q@PV=(]A꺯(UU@ɒYE%%5%QePhĒ) #t@9kvz!BD!}DMpI ! M!q ƫ/;I"v#|DN=z:뭷zuUʧUN ϺB@H_IA$#*O` AUB L ~ $1u~ @U&"0a/ B cqe40e2@M!QI&0!RIE$*$" =\S'>HRrJzEbKӣVu795@ 2dɺIO#ɋ@ ok O@+yDZ`+o!q@")h H??uM\=0b RL"}[~$`>;M`Q7R `:aiKBr:e$ZIITg[ B>e %ɩ n)$)A^J{`ao5c o0RadݖM|[B#nS/#|P _8ʱZ4u_{ҵԵUmU\U\Sב4?ZX!$? ?~"NIJb[`6txOR8Qil+0b8+,{ %8 vG)8ATܛ$84!eCM ċ"=v,ā{D '1]8?:rH#Ҕ .'#ٝµzZpqf+`_ `508w؏5aN  3ՕQI" ࿤0Ql v 6OKN0å_ovo#KMM\r*k=\42ܺ!{0Tkc}@(^d0jF5 n&#wVvMP/#A ~42\nq#4'r'7A_B"~a0`X Ӑ`xlgwp}{$^ À>?Aww;7mYn; g$#OH hɨGZFAIHH~cx %'8m R5͢X"FӶkm_l|!m)j ⎔/,:G% ڏ%$.Q&@ܔZ& ~m q~Kz^jx `"(jO@4MWBi} EB Gp{RxuxwwgۭWԺ-&<{'"<=̴Q 4> %>X,v퐆15%* AB$^Qe.8 ]VF>)ݍE3C$k2xcp." eZH&[2̮[i @," \sKwĬ&Ȣ5;ޛtHCY-t!!2̄h>Ͱ$ e֫ߚxSaS -=)k-)u+uwLSP%OFWvl }lgЋ!hgCI. E/Fp!@wX3A%_  !uEѪ F3poqvlPbOX~mR^α -W| ,X{`tmzOɼ\ޮSZƥ;..6X>ZZ5d_wo`|jp:5o C|9| AN/˻ C2tDw fɭRں`\ :sOj<&k`JğcxWAؗe5М0=¨E /;`/Nπ֩.ꞻЄ&FD1D0l"~Eh D#ldPP$B*H# oɒ2 "$Rk2` \ZR1!8$&HIx %`䠑 (J+@4ŔHTJ0|pZ#ЄHJRtlX OIdHJ8@<KF !rFZPB}9#:F.1 A} >1 䔔^.A%%᠕ 4 Y&}2$5vBr9~  ju+USW*  ?:.`mj( !3 `.]'z/Z :M'&O* .%P7H&.\j lt``O/ : @LHP ^H&`(B KN<KA4b%% d4jIyd"` BHc ( (KJ7J@ J&H"p҈|05 9)(/򒄒@Pfb1p^?I(qG(ЂJ]*3,@ْ!$*J @ @^ X 0[ՈLA+l>?_uwv)<཯hʈB 0! (JsWz I"EQI u*R` #@`$ @t- GX2HB=P@t[PTp)5Q*E\`R U bFBPz!(0`l 9/pћ )hHؠdR8 HAdPЎ4'%2JW(p=Fd$$1ec3UÀNXb|>ջiXbu$VJrBA/'wRwGtR?hܩ {ꪮꪄ ~#YЇ,&HU' U1P,E!3G `.!7+W}=H ,`†L$1%*!ɷx 7͸ח*U ǒ-YLJ֕B'\ڪz@L1 &=H ")EX 0AD6`@ mLFPT, *pZjnrd]D0hB@t4$Vri `0 D\ J&D$ C1&ZJJB FH`N8 P5@3@9 8}c<\̝TPf)AZ_\BN)R+SHP*H` [PH0/& #U(* [x |HF `@ 3ҀF= Kco0B3"b@3!h@B&QExY@\IKĢ,2$j I#w1 p)f/t#$FJt E:I=ƨ$7 NH-DkA#{VA5 &Y4`" &F6#Ј17'pFzoɅU]U{+\ҵԵR H@aA-! I:lome!._uCBCV8G,8z@X+ u${?[F6n(GS 4p27(^XN;r0j `@3[u27V0@ӍzL@ e3А8W/?w0 =„#;orEOK_rDc1EN{@wAڟKNĻs;r=)q'c ႗ z 0q؉IÍƮʅ; tEv* #]p û=%ͱ`!~wtm&|͊yH[81+,a< 2WOI'0=^`D!Ԭ# 69iu)1n}Hva@; owt ̻L<{Jwt;%Bv8Ϟ>#ﮈMXcouIUW/vws qkΞ%=Bw)]ܡ༗t͌ ZƖ}3bV'C(Q)?_(ϓw⒄oƶ$؈e yLױ\vKݱZ& `$n.:sp{(yN܃PC|ZS>Oǯe(K!# wvT.p@G=P(f0>]b+|Ķt B-:D4w:r$ ،}ԧU_w=܂ s36V!.d_bGHg|56>ǂ͕5*dU>g M9 5sᪧ`b08GX- j+NÜwG`J$ xM5$ޓJkע*|UyQh  @ HpV P[KΧ|ι.V+wJz![":4wD2 Vsb* \8yD ݌8/êǻu3)M=~kj!5ɀ@p‚& |; U8nw0~s3AX4wwDK@hH]+ 18`ÇRc+; F0S'wv8"|ʹ9zF] 뻷x p{py0!3{ !3 `.!7H7|U{3;Āhv0k'[gwtT;ޢ=/kMD* w^=}ܵ; KvAh) rxWwvHD!'%]i;Wi_w`p}} $k{%q2z 'O`ovHB;{?떍bA)gwu${!L\1녇$(v<0nĞ,s]p]D;+a)(3h F~v.w twpFf2}T6~gu Q XȞaB$5R~/ElQHoiu1ϻEww" 71N1ӟ`JE z{= H v0?\'ٱRP#__ݒ8 pHe W;I@pYXg"B;= 8*ۗ >cVV=X-(#J{AArOw {ApXn@L@-I@ /(P$R$,=pHn+7/_ /r( GvoRcy,P"$#3*{LME`:'[GPއ$.!}O <Ag9ڥ{\,R<=$hE+,f[.JGP"%(lO9"!(8Eb%% w5Gc\Xj]Ok#ʩgv']R-p< %, 8H|$> \˂k\YHKPA$mOb7I@%OHh!yH Ss䝆R jE#)Y?8 .EC `CpCU <<*,a)ՉG{BDn{YeybA  #% "(`|*]<, N\ Cହ-mq"< XwvRwww0_ ﰊ1a1)_=wDN?Ev%B9OL}71w x¸[;CPE>]}#w:(w=*aD &sܚ!d!$g9ne:Ab v (pws`ڳc+e-&˹Dv0H7]] __; *F{8Iw9 $#Ŗ$#t4/@RK (Hd+ A-9㱼;\iၨ&G|i@2PB T%q[6?bz P2`P2dsnìװɀ tB``TD"b A7~6tYh(JB%ߒvr_`}'<oɼz9zXp @(`@nf%=I#1@` @vp`6Hi012ЂO۾_vwd79_6w/t_G3J -(#=ĘC0 YdЅ>1ެ`0|0$ OI1/Oi);vĝq' H@!& B @iE G}7z `<P+CRCAHbKlLFmоϲKdܰd!3 `.PLg](Bd?gl5_GiK|k\+vEo>I6b`!J,Y1 GBJ߯` %G~ε;'޻fN 9d%<4<(14%좃P9ƯυG+3^y<[x=czǃjy<ғ<XҐxOb4xCŚBy٤)fD#b / (D̄tt4_БY`%!Kgn9 P}ʜ5q7*(V*W- -!!ַn+Bܰ`' $. dۺQH1 8O̐ m'̕R_Ѱ@@, < &J ,39l9` L&\ d2@Q1=J~d{'T:br 6KqЭpI HeHr0S; P3 }#{%@Y( p΢NK 0 ,@`!2`B2 Ejvn1~n{B(u n߁@@T y0 $EPh x1#I v\*^P.,|2i3l^-( = >CP,l1w~`M /@* SBxbﳟsZ@,NB~A`;!A9 d#F5c/%G50HɽtsNQ7'u_00 njSvNOo὾o<:$ rrN{$2;vdbP͖zF[t5xW;>|Oqp> CC#d#r(y\_ p,T7p"nŏ o}vW?R<7r*MS`c?O^yt<XEk6v48L?L7p!9ihj $#t60h0P 7F[RDk8d LC%}{ tVd±|'#144Z`Q  ņ)AE.l|2y<\1nOOŁd96?6}2@Edyd[\%,LA[s?F}72G wV.^Sn#o~c2:8 3\ {v)LJ#\ۙpDӹSMp"?<{x?~ ̲\/n-"p6/x x Se 5hx diw 5sFmgb ;e̲{e&q}p#p;)\(!3 `.rL, d‹HbXυ=.TRɥ}ŊeNC7 %iD" BRCrCRn[6|ߍYx&J 0~L!lzF~ > `w,bЇw5cw?v@) bTҘta1-;^?0`(Ҕ?gìC,?|[d~wN?Y3{j@WX6}pfOS5G@VG5?Zpk{d>wʄ#ϥ O织aU9"=L'ֲ }F w1sh?vWi c4>-Gp4`-ox'|kFd^.Y/  _C48 Ӡ<./m>?,{/߀i}5,HysY=ȴ<_ ~=ӬAYĬI?"6oH'Ӭq~>y<._ohFix=1\H e5`z`#=ż"Az_3ٷl?śLềo߹w&9n$71Bf:JJx‰pn/dYd޼ 0Ěb LHd*I`jCC}3D9ܾ.p@*PV 4rYxӑ6PH@!IE+yn}Кp^Zޜ@4`bI+ 7}Ǩ't$S?P︕1A1󸮪@Rn'Jh!i|` _V/Ƨ8=6$Md^O g4<܋ks,NZlx'NHHOX dz2Źp7sp_2 O9q#X> .4%/faiu/v/6 ?>NF~o|r4s@E' x䋦O>ڹ%5F$} "Ph OP,dIMRf j}KoS *QǑKO^Oj4}i쳅Ѿ|!g'6CϧEX#8 9]" >xqڛ8zGPB~6=>6Fl.,ը>fGc07xXwE8yG~bx0<}γDh {YN/E?  o pv8330?!|CvW_GP0&@Pq0 Y 4O;c{^n %׆j 4z`1XI,5 V[AKߺ_~'0@,XMć5I3H@0N qXp /8 kĄnp}9.C /C IH%? ~L tLpPo1P 9h $@@v3H-a a[9& xL "f t~ Hx;>05%O#` & A |0 ;Ƨ~k@phhi R '~쾐np̔r3%[o40a  1.ɥi쵱: @ #^@r30LA &dR7Vqw<d I݊gvOaaj, ^YibEft L%0[q0 quf{4Y3wi1&;0+w5kgξxBQm.;ayȰ%w[-7cw6FiCy6צHo#.pćכpn K~& ld 2Edz sO&  Jx;G`-=Nr{(<~hjҏ̒Q(4(%$tm5OH09^<m|<|O8?@x|R}>qky {o6 Fpg> pu<]?p==1Oo3'7LM 26e+KZMn31[[+" 5De;*JU^#%Hܖ-SƔi4 rauwH pݶq#UJi6v|j4"T25 iI6b(ݭl6RXDBebYHKc؉4-͚g0#Ga](OSdLvMFrKZ㥛[,y$ҧ ƵȜn8Kb`t3C337l* Md]u}tֈ' -"UqhuFi-ɤSqYBZHNQFJUvYnM&BLAV['0MNZ%FhG i,y+:\#dl Q8nqĜpmW$ WvM)%`FΦ:M"7 ϭK68n#+$&`8TILh\.$nqh2ZLpʥuQ6E$KQMْa*&qNFL)S6PK8"iEL2I )̴ %bj5#Nqbs5CB#G#MLQEWaybv~_:$7K+.T8շs).h#SRn\\Z*V.%%@V8h`w#V+4JcrCP*G j:DWH2~[~x+2qpyѸDm^v=dZf*+\M!5 `.J Ķ~/M! f7|XPv0zp5 8'{A0?~Y];cY GYğk0&XZ@y>'?Q>Y }]@O}g\8ԳHw6OOKGwƋ>:oj5x2\6G'%ǑhԔ},[Gi?{<x~cFxߏ'%yq&` hq|i$_fiG̔;{4݉CGG7ե(GPFY<}Q|AǑdJ'Eۧ|O"̔?Y'0SIo4Id~SgSd9=kÐCȱ5ww慼bxy>>xs|~4gs=yu?"c֒g"w AiR AtjԜn Lc#labx$ *S_$[,Lĉ@;!L)%~:{8f4@/W@:Wd$t3+f` 0^Y'Z 5=`' %/3uX{pn(5{,} :K}hBJKz@&rSrSCD B]ooL DK &b_~`OvVrS 2@_40g_w@p*J (`Q BP4uEv (G5) Sq9N- , D `p@4I,s70 PIPkOkC:ϊP9|oOs}ą^4wwO?H aVEKo l9oyG5>9"ǀփx_ ķA en;ʝ?p00?>?tu?w#;q4Op#O6 ;hn\aoǹ)Kv_qG~j `X`O !!JVB7ҞapC ‹-?ltcȤ$6~mAp (뤬,%Nv0 V4Z[]|4 , *LQi0.0%,0bGNL W~/^L?'Ͽ9a ^S9/_Ous*'$}ݵ P0 rF#b] }f%O I/ #}@ u8Yq@4P` Z?uq¸ n`b,1<3}NqVI[07qv'E Տ#XP{N?]iЎѽ;`ܝZ|;\xuHw1ϿpX>n6??cI X%dZ4[\6n;h/ X =?|'8p]?/%*s#;a;7ӿR C0+4=Q 1<<~*@0?!'tH/+$ӗy @@ @4(L9EPwt';|P@^NW@h p1ʐ0(lL ;ֳ3m:ٱO!hJ?FgǞ}EGKΟxWK _8-lt4~y|߁4=8 @qr γ^)d; ӿ`n95Dž+H' ì:iG&{w' ;'{a?))DžlG"%O%1n4y\LC"p ^)ύp; as;QְȜ2w渷?HnG'ŐzNַw[sOl_X||b R`5xH`Q ZpԤ@+ $k3)lv9gK%r-8@5 @(X  @`@h I;K`Ę*ɀ0 KnJ2j00(d0( p @^LF,% LG (>~@*Svw~qћ=g~E#\ufK@ @@5*::q5(p΍- NR̶5 Ph @ p`0SءZKB ,n{ &gœ=KQΨ 5M!r!$IIGb8wYu&w^0a_0341B!I5҄nY8l `7X 8ܞ,1(쒃wZ~nK!hID'/=G=ܺ~!NWb06"`h &_3\07:ny4/!iAAL)CPP^+pr1o&Н> #cƛE ̽{ڀv@;o/*M#t#}ϸ/[?S uV~_aпuY"'r<4)HA(}D=Ny~x+n~ ia|\$̜bs%퓖W7)ʜ^✲(| $bah172CL0u`(~ |4 `p*K7`c @C 05; 37ciE%%>8lQ05hi`TqEd'$F aO~ @H l\mRJߔА̝X%( ;Ξ`eﺗZ`Ť(3W}ws.\M@c@C@4)Ү[>P`d0dgƣĦ"` !5@ `.!7)I4*ZKgNfe6n(M!CJ %8tw^)2R}̳%R ^ qD% ٛTސin$Pԓ@Irv6"@: vuM 1sHŮ4;43d/t]=: OH _Ԅ Cyww_uH- '% w;qWmò{|YElY}7@*G8(/'y[7RBǛftp Ye!#ݿ5 LIY%$s}2s{aÕ!wP,M-9=)侂Vݶ}߉Jwn؋ ' JRY=Es`nLgؘ69y!pR< 10tL FJRZ[JfH`T`rbBFbzwsu@4 lQd>B ( O@`+#!O`/Pa4> o-84 d7̞R{IH,+tB0ΎWB1O0RL&%)OϿww|﯃@!mՐR-$fMJRKH߾OĦ۲ Bp0Vg6 زЄI[Y7*/CR['O toҥ8]1 ѱEtmT~ 0'fE@b\t'2n!/ /~0aO_:>D@* G !0 Ad 7(5(+=yY 7ݝk4 I~{3˃/xO[y $jzkDgwp?}N޵S=S <;DƇ\#௩:?=ƒXs1'ˆn'gfmRzAwDGp|  DO|pGwwm%gTa翻F;_^B +PФzp< YNߊbL_|f_`N AX/w(-6[%':1O!x\/|@XOT `4E@5rߣ_uQ_jsfbPK{5!\#௩ %>d?i HHwqdl4@F 3Hj[)`$/dz4+lGX>h -ZYgp]6R0?w':oqEќy$TC` @I}˦7pN?C; A^!90H#nYi=< axp˪3(ތI *Rٰ` 7iH8x6Q6zTG0,s A\ };W: ;5΃LVV*y[%Od !. *o >vKK BnjxbZ>x֙ݐb~ lۺ!и4 [/DwI  $Ga[& OpYTw ;!eɷ?lJEk:H0آȬ{Pp  }*4;{дO}p{b'v^#sB5& v8xwjvwz[% h}P ֔mBHI:4>ySTe#g?o7#<F.G:?-Nˀ9_@"0HW##nvRycQ-0!NӋ KvrHpP7k"gч# #'Swud/m D@tU,pӹ#+Rc?08؈rOK?d 6G)pS23};'7NJ] |p#ܓ>=3' Jag쀻]P?#"J BRА|~7#;(#rOY^yѲx5$G?xD T;vA';BRaGI(%O xBPHRM,.?[l| w g=ն0{f%q&N%YָBSwu)}kwR!^}(B@$p 5޴0tBH5OWʑB!*KHj&c]soSzSugw[ $ 7EtR&CQhŢ& &;ḤU82X uH[ȉd;;u~̈́uzuwR}ku΄ hH'B%_o@`` !Q3$9(v(`&dC ~zEXWݹ0a4RJ8q4R(0Cۍ2$oQS|x&+OTg{cS! M*E鋋 +IQDɓP(bF. 0p@.0vX N҂v+,4PhI! GJ-!j>' ܓHLB`dtr` /ĖWBrpFD$a @BNL  2Կysmb]:TNBTD RdL1wU55_ŀMTGd a`ƒtD$ F @|q5!)(4 %p ``` 䲀`id (BzI`=׆nZr1 0 H&7$I:bV=!i? WqQ@PjU"MZ  5zjMD92 &'I5L\POPH`$r@RK!RPJIHŠF/$%#x@`i BBnQ0 #H )(&]J[\ "EU\۪;U1*8 -Mh0 b(CP C KP@I Md4nJ&`X2ZBRMNI44 H `@Ĉ )1% /n#7=ai 7phH@)Yi (A( JPI%B%#_bE@ OC?pV 63m_=ֹ\=@ "UUNJ-WbAM5  i2L@QHL@[*q3E$"ȞHEHwTMp #}KD΀R` A"uUBnP,@'q$7WV &䂠Ci5Pɩ #0FNH QA jAt00YiE!%F v2$qՖ-SbP#Ťp,t:&&L7uD &P(aH0$/0A􈪠!5y @ !5V鰬4%<6&]}47rԃ\)%&J 4 ȇ$Gs ۗO3)nҒlYx*39#[VޥR"%5nRN:`t$3337mQUi]qu!("z'@)lcEƛj%~f,X ۍ!#nVhI B~t[0S+McM3uc訑U(S:#J-Q (FNmTM&\[nSnKch4`ơyj3nq©…Lyb]Hi$*\2켜5bosa&}EN6썸k$bɖ:3 r#28Oj[Yp>OG)K 4)%#,,6Y64t3I͸$iFR$qbs#C336mUivu}矂(z[XVX+V-JYbMUfen$RFFN䒷wBKcDՍ`KtK\6nupM`fuRJn$cM2RJnR+Z)7E[EN&r7jIB7f(9"AP8II&6%LEeȠٔ\IӊNr%!u2My$Qq9ws9QG-(madQeeƒGIGoHx4vmmٴۅ@`s$CB36qUviiura~`Y5&ʫe,uȢ$ /3.vKJY.W"4j]-XxUeDi9":Ue 촴[CKY%ԭSe\[hb1FKmCr,itt~RYB v"i&q')l@)SA@M+Dnh=-(guB5Xr[fԒ+K#G5%h=[)UxfF1 4Y,z6ցӶ)^"6ccf@bt#3325 q.C]i\q\`^8dGIH[*]MڦM[e9}&)y.:BESQ2*ѸFC92):l5` FR#-kҕ&4úrdYes[D@x}s_#H2M+|XĎ\k,i :Q{"$ƳRd&jx7mNVڜL*lq"@ ]Oӫcbj:Ð;mv;fͪ}i-jw'v7ݔ3,4hH7P591D\5MZM^c*Zˤ@V`t4DB4E m* YvXiq_v3Tu-n(8[*UYM eoqXvAG0"+8m΍; ]o#K1yA2#-Qk+<g2I\n7 Н$$KjDG<,m$аkERJvGDE  0l*-v>[u2N 6Ԛ1=ydd5\Ef'>Di.՗8+^#Q@]$ YwR4nG@L0迊ySSmJ heqm&J Mq`s$DTDE$d Y!5 `.!7ee` T ,"EBr.:E@^E Rj!KH&|404jCB9 1 ,N*Dp‰U#Rh,Iae%%% 3R0(EL 8 o q'DEN _nN0 YhА MBn *"H)Tbꂮ1P:"P)-#Tb"H  .Ɂw0$N+D0o&4fH&i00=RZ@ F5`~Fba*MFfV&!)rBN `CNI40 8j"҄%hh7*bp ;᡻pi`>/d #$)j@D8yMԲ|A IgP* "d'lFȬZ_U$&G`9:F^H+^fԒ ܕPs5 -9ܰmڨVIYWpM^|_$8 Kaq320z=8A7`:" L2"B}\ 05H"l&0Z|PE_APCo bp6ג@Zx1BE1SU}ک"`PΫWq^Ubw7вpO?ĈղU{ pon8B5"!Wa3pXk@?GT5=)ff!>2uAg7008p`BH 4^W8MTxӐ*- J!LB A|-8ӌL qTv6"U“eIό4!X0.~L H ͐.xLݑV Ba|=p`;8R6dՓA08T'"M|h'ǜf#Flҭl*$lWl|Ӷ΢ u!-8(fO^ ? sAsl$>Z9W؈"lzӶ3Z!5[뵣dH'#o̅{ἢl}Z!Iďu+'3q6 E3*{p |3U7QpŖBО؜7p? ۤL&7t$i` h98 ]x6u:W%+`r4  "!0^ `3`y dIW$P4s.j́UwtCJR>o%B}߰gw}=ʓ9 ][Pp+% wwrwv20_ &mGw'kv a$ф<`[=ܖጮXÇ; !1Oy,w ȫFD?$42KO%`8N:@e v!5 `.!7Q]LإLZlv$DFǯz7 o?,B}/z&^0 yc;@w E1UOs$|dQ7o ؜gKlBl2/6|VcL/QZȮBƒ 5i¯fp/mo p}}݁p]\COm澆&\$ 1^ :UX.7@l$> Ze +2>cÌ^313>$$ $xp0')aEME&`j@x>A*CP`tU֙䤋*.9,BI!xxY BC'i0!"3i64 X)K;浜J\}ڂt DIv0#}{僯l`! 3œkI4J~찗ZGړ%IS_@>CBXBZU%Ay"AkC0(Į/OFX+)ᥡ $ҎĠ@vĢQE# j~bđAıLL;D3CJJ%6͓k^e8I<<P^~,$s`'S8|ltG}!hp٫$! ;쓎F$BiOhJ1CQkXBQf4<M<1!G`.!>nI}ɵYo12\FYP  g`;>֖R}IC{ Ѝ1>f-}LZGFT\ԖX D& | ~xYpJ%s!G= <$)3,-+>a>!ɗ!  /y| aX1(wpF$_d!!?@B {1_I6Ez V$8.T 8p$ZVsy'[rN ~bq.2.䦚V)pv`j⿿w,Z5tv!5G `.B:mZrj+Ev `^.@ sXd4|h;,`T@Y4aHIhPB7 HFJ@ J0RHI/} (oS@A445``P, {%`h/|Wlk}nW8SVwD ZW%ΖBcLRP 345!,=IxF֩z)V "FrjH@*HPNLTI2AL *$U06H1x@WPTR0`( RR01 Yi) }$~(000% T P(&D zI0P|$O@I@ $  ;! .@07h$=ae‰# ` + ɦOYW:'hZºB\ "듁 r$@@+US0T P*A a4ih % ,ƌ  F +@iIJ8H>2LL&f &PԀĘL ( ԀD’NL&Y[7ƍT'A_$ )% @iFCi4sS XUPWU;ƪVqR*TzbppL@ @T%!ޒ``hfH($XѼ'%!{B$H%I M= )&O H 8&: @b@58 J,XbIID r7$hԍ8$d` Fn7,ƌI`<#-)'Ť aecDђqJ %t Ҕ'Ԅ1GmE!!G(B "aCSD#Ŕ"rL&tqjTF}bNߤ{#WzuqA |:UJ\T@ UC*TwG~!+D$0I%!)K pLCYb. >GNhՍ䟌3mcP_JI $,g#e 58lJPJ%TC1'a#Uwu4p WުnSb&a~R1P Wp I0 "}eL!(' L0, @@jpD NA vDB%/. H`<%Hw p@ 1Hvl3Y%jPw/ *V_muXx:`n-) > &&&Gw@x7)INn*/oJCC ? -) ѡ!rFrLI (IAecFI4M159A,(xC@(RY`;$%8J$2W pIC 6zrX* jS ?dMXuڛT$/zj{:STsTbc `T(& `@*u*!5{ `.!93IUIp) ,Ē G F T? E +lI; P$J!5HIJOa%'9Huڀ>4X᠆b b>0Cy|$0XMH K>K{|#UvB4RnBZt5@9Y ~DB+V/*Q̲#VzgYG ?a@F_8B4- aWn *{ ñ%bF^75XN8Vf5|vee0fK8?Y>xu]93UYßapk|J  _\V􀺼@HAITG9{GQ!-H f`3y>_| Rtw=„w x bOgqlOlC|$8VJ/V981=OCj/$#/ðw0P-Z :`c4s=&J?\Y~6/fο t]#rt4è`=\T8 ` O`;O ᑭé؁f&xv=C=|Ƃ{2 3q@ $3J!݂ e{%ل2S%{ks64&8id x+ue=(!\(`OHE!M'}=;'_{+O̔ Pd/#=̅k5F,gof#00TB(0/%!/|HI膁c7[)Kq| WSP&i7^?lpK_i,''K8f#u4o + (%~iP$çdMFFy9$4#hN.s 5]ņW(8hjQ;OB8k0A-4 Wl) 3s/`F Oi}{s=KQ3 1 `?#E}AXd#DBu;  @_Aw;w|?;^`vi]E{-=\%`H@s~א#^|WΩ$-`Yg?D' &Z{iC^'sd{,0bAHB ˻_pᰥN _JrY!Ҿ- xai _oS@l45!5٭ @ !7<fYq\y]~b8(M4#dP'XM;s'3iJ֧D s eO-jY]\bGZ̈c.ˆ3S-X[3`J߸/cr#\MN[mrAI5D+!G -޴ZgHi )Ra/i (mHB6J ЃSV$˜-[;攺`*Q;- rXi$ L*X4"fM*R-X+\uE$>kqIPzMIbt3CCC7H UVYqqacHh-Ib.Ή3MP",iч(.`a*0*Ҕ #n-krH%tf!rRj(B)"mF S4Gרé|,ib5#-V96y3ڡۋc7i\Do4:wR뜌DN$jr&8bDwЯ`oyYN7c qr-L E~pWeb[o8RY-3-7mԦnJWMTF1RG#8m`u4DDCGH5Eaǝ^v")" qW!&7kk亢Dpl͡H(6%ɎQ!`y9BZ6OEbplm+A#6q H[LhȢYviG>XNЦ0?b!kc) " !5[x8uq`ٸڰCJȑJ&E s\a?',e8Tit R+Mߢ%%;sTE-u7=o7zlVGIZoK';_áU룭c)5+ @bĄ4CCDFhj5Ei]y؞rdHbU5l]#C[J<N@HZcf%Jdy5k4kB8HEl)KXɤoA=4%xnl9BHv^YX{qʉU?K#ˍ~ş֊*M-Ys6cG1JTr1mZQ0VQĎWyH[m|}_Fkd/޼qnDWulj)[R۩'6K7 V(*a@3pHb4])r%z3eB тW}!)FڬBpBi@iOif_d+lY/4k8`c$SC#4I8 (C]6XUYeFeqmau؜ }4< xeKz$p&zgfݯ7L\1 TVbn'ϟ.g%U-5٣ HꁪU" R&;>n̘HB\: 4 "%uD 5l!V4YJ!ix6*i4Y.Lꭒft6I])YK EeP ڴh &cVctDU[N;55ckW߱Lȣ٪klj#gbc43C(ILI@ӏ=ue]_}sL;TJaM!QFb~4.s+&SpLE)׺p3N9#cr*`z:P y"=TִEL*W,jbCO,R$ե !5 `.199m)^1EjI Kp f2ƶyeʆ `)W If@)(~pcOcI;B5@|)?3@!:5۵ h, \`A٠I{[v>pG6Ђd{xs&d'wp-Ќ'(14'!!. } :{1  gly$kyL:A&|%wp!-^@Sy30=Z=7z$?<7B$ Tt"X0 ! pdX`! λ6˥t/zy+\,ar (CII'GhZW,8k^_tٲyˢ;P"8 !I>TѠ B4iyԑC5RzYĥø^BsC ͑vܚ~e<3҂s^l\ ) `[,  |Ex`E g8z\}_@\vCKJ 8A,voE_?쫽x~Nȇ+We 츇mo5 P l 1G?\sRe=х/+AY2(k1(l( !d-l6| s 0[7>ϭღ!ÀURF4 d>]>zd14"} lm(Z@#AvJ dx<".2YygDjr Ԗz\B5kpaB| Љ뺣kdIo]S+ESt2EIp]1y2FA2dTMuWYL AS d qa<#(&, z BP# @  H+B#m']V 3^ 2xBA ` JFd `BZ| C| I~@>dЄ-~wZlDٸ"m\%"%j! *% {+USW:p E#$EL(d@^*RO$ɁSd `('H˱1 @5HO l+1#bOɒ0H|@oH {eu0|smq5; *I͜&:MgO 4L<2,4 (M2#>mXذ.HHx{<H]# @yl4lSt*FSwu 꺧B72k01@,0 5  4,0T e$?/jI_Cy28T0=&Rh!|J1,o@ad채 )IPP &0!!,LB( 8M8('r@lRK $HP j $0 444Jd  $- 8A.@aE RD_D*@X}oMDz_ŧ &M/{}C;4QA ~~(n\RJ- Ip#D L&QL^L0jM,;M/m="!7 `.Ǘ>?aFMOurSn%}cT @&tI 0gH$$!;| ` !@tY $ % N O$3qPJ`Z (7dtK&BhfHbdJGVI#Bq(y xcHD I ZK`7L AHF'j!fLpd"A@:4$?"}S8i.臉5%DoX'%rim\6-=aHw4ugֺUJUU?hpxz!:` I_B)AQ1 TK 7:F4 @0LbǧQĘ,l7cީ}r;8{.é/2k ?11~dɫF P br`' h E*adi4B0 `'ZP1&F&^5! ICBp 1 =bL&lP[I !ƕ JI+HԌAEO*Fe۽ ݂L}ۗ$( 1ѹǎ#œ0 `*V|ԕG=D k}suN Nޏ% hj I0 el/ٝg[JQWsj!b x i0"i,$6bALt%lS Ø!6x00 @@` ,ҐM ѳΜ^RQ,`KoAG)A7;9(1[Ws@3 ( p߳];PhDa``!,i`1` x &G  Ur!h@Qh~.C@w'!3 k61,g; \d1E,g}Q0P()$`Ww-$ѿ7}aX-Hl]θc F!`ѴDC/ 0M%صv3 {ʪUU5n.׷۳H $TƶX?s8$lCFJBkБ1&jM(7xM xAЏ0Nz}uU>UUuU]42"ЍĀT (IIh=Ft`Zg$CR`/ĖĔ`J(RxȲXCP홸< DK!7G `.!9-DT"Bh[0 @bC /I_Q[[A6so[}SW' G* b}L}(&?`>+uXn!q@Ā%qYƖ JCM5RrT!hIb?n289$ ~?R屜LH0l&^A\_\)sJ`pn6etd\じP`]~ޠe-ww? vaAtiDʏa7"J:ocIj~W)N'qmqV=E y7+„}U KV`Y oy/$wR]|8h[5va7Aawg1ADXFWѾxѷ܅wJBSJ0 *tHj zFLI.+_[YK1%I`%3藺0SN %ɵ-y[> S 'u<Z{=w Q@*YD"Z:z~5(L&,,rd~ 4 7`-҃ m5$m0) ~M ( үOpY o} &1 =¹i/=X5ܒRd8"Rx4 JY W* $9&A~7iLv IND5ãc75lR I`ذe]=.H!וi;z)w|._6ܿu0 0唒%01,5>Nh`$0FF9֑IC xLYO@ol)$l`bW$7%),i~ 9$1$43oKEc 3Lp2*r5wi1]Wa_=g,$ #)_ߒNh) K #IəZt QX?61 %(*8JpU<.p 4A-Oe9f64x Mxj_ۼ}DC@rԑ$xsQHQ36_6IA] ˜iYK4x # D&5kSs>Qss2YQ\DVG, Ix)=4~M刁vn@؆gj*k #!HLI8#>lRMw_ZW:d[1ѝ莇%N^z"`aa8[NRK( 7~α}[!5̶m #!X)ւWlN WpoEdRr͙d!DS8#TeL. 4HA|8/!F#IGxb=&!؈lh#Y6FTa<ӏ*.k =X5 `{ʓv?pfZiZukWRMPXu T0:hOj!&03K~2&rRCWQ̀$B B:t/8Qsn+S*p  W&/bD_"UP?@<7B@@U"H)`S$NH5ISEQD G0F;p!):  Pi MO-o  bsb@ ɠ:C@؀BwN-(Ftl/R_T0lR9/ 3( ԀRpuU=>WV@U5s]eΪM& ɩ%!%b"U1= u2t㤜r !ad2id4E3qI#Q@1,']⒍EE;*jUUʷ/T4S@ɒS Wt"B & R@W;@LBCL@=0:F2 3X(43q9 ,@Ԗ hO  $ @#$2 PPnBz@zVhL,\10+`8.0`H!!79 @ !7Qb.\&5f H?|tĖC!R7\7tƻ*.J&s%hN^*8n$$!$*BJL-NTa"]JanW-dk`q1!Qp}Kx/ZGV䍴- lF*m۩T(щ/n \of1Fm&DkIFjwZ|DK%qBNkql|# mi'"Ds E7mM iGCRkI%%drG$HmV`c3CC35mUavqכy^yyrʍkR7fJJi,m;˱arLI[ʁ{GQ%"mfC%$⥄cI\jl9rRW4uc`4j|Yѵckj!m(u>'+qwB %3j[D$uE$1a"-ؙ|6vbT` [Бm%eK;RJEkDq"]OƒRMr! *H4IĤ:C3ʍ.*H1uIQ-BN3cM6ȵNX|mbs4#CB$I@]au矉!u^mہ @gn"%ޔbd!aޡ 8Y>̔v֜7[L ZԎyW4j:;;j(D~@ߏV:T_mRdԚ]i* Cu[AP3`*RD30 ~[2-ھ!FMPѢE7>P!D2zbZMݿPxu!Vt(]*ݴ_ML9/ܔ#>ZU ] 꺁_R躅U(_65'-#a`Ą"RRD%]i[iq݉סAJ.Sdc5WHqQU`>|ͬo%)`T(IJݥ5%Qc[m Y6՜Q|6W@j>Q/l\m9kz $I - Gqv1*; fԌJUMހ=@]mFCJ3r,qGzH3[HG':!VU !t,2[#SK8[lvl';)υP@4Z*mM|*.9p@bd4"DB%EYYmmyzy^3FK]蔪 pQIlrcoR|[ ĩvuV=&ŶԎYc-kr-@qLwxVƙl&G`By^.5l$C6u=XtOB6OW *gdsMyEl-}! *UyZ֊P7-V1E<鶕*W'һu^l~v3%Muod&b a@gɑ%-nl&fna!7L `.!90fYtm<ݫUgUSVpIB4 $4 2CJO `/Y<! IE+0 0!CG[:UN$P|"lS> HgInM 8zKA_Pc Gx֑:; 0|%>y3j4JUgU8MgwS]s(pDzN 6=<\āDBid҉Ix /V m1)nG,C?A C!d䤲F?`? @i =;pambLx %ȿ[b{ ^ԟrsUڵUTWYW6ڷQtp @N O4FծrT3+IE$MIzc=GN[aEa3/r=(n%eR|b3-nĔdZ?:- rPxXNFՇu}n U=j+= `X v0 Z@Բ1#9U M('UzAEÀ5)C  &+G|%B&1Ae`&V`fY{a7"\` cbQxLCY!Ɉ C`KKGD#  #"ɄaA܋eJ7%h}M,|. g'VM!†SRVݎ~˶FN_ j $Ã^i`WSSu(#QԄexY84>@bgb1y!a08vC `@pfof!)*%]T~)" -7H{ұD$_b$B&܄B HA,00?)ɬ뿚jS ۶c@M$Nx0PbI!A p`0K%-'^Y,rtB!Y2K,\`! ȘY4<@iK40^eC@!~^Dy=f @w{3`΁T-*C% h? #Q04 -$rO8k {ꪮЈ/0_edP @4K#@;|4 (=D,$(M&@tQ( (c2 cHP&80 e$@(!#p^BaE0 pLxbc|i4)f (&T_CXqxXp$43*"39(܆JHF`h_2dŁ+n^yMr8 ƪZUr&Fa( '{ H"j&?I3D oa{ qDJ$$vZ t Oq xNpiDb5u >dD ~#vZ0!j('jP8HQv tH@pt#j*뫌"]UoUTڳ0(:ʬcjgB&)s o88<68#xxB!D)'L cvpsG F;1#x׾&nU1@,7ubpCq :? srf5IўÉc!7` `.!;]-=ܭ WHe}.U`GfD{Zi K`>0dl>rxſ V:E qe#(kR={79Z( ͤ?Xvytbb d(T=-ܝV;8p8{pSOj9ǟԫZ{:FX@élc?!FOP5do(d::}޷B 8@(_pjOЙ!w7 S@JpA8 YH)H2WlBy<0DS*EEjԛ ]"_m?໌7,Cx@X/p>x#"!nG>5OrrK~,/7P)3@_8FJ##\3^DD8=#tT]-n)^pY #)Zn' d53Ņ|d(C>Y4M$VH~KBIB 2 1*z#.]]ixw;bp[, #"!PS\(!0@1_3qPoH3d3<&9.ДWg 0Te10$ P`T0d$ %T"#H= $A*& h||ĬRWFq l& ddi\Ah/<~ؼ oh #hN{~ymxF^oE%Z CR-I! !#'֠, 1!1,'9δ4h&z4(Xj \{ĩ<"E` aZg15쀥􃴊 r2 k #Huǁ 8B<9 Uϧ*2b*Cx4TRt˺`ͫ6G5 JQP`+p$:JK0/<96\R^Qfvk7 ##!X%`$"P7W/FE':̌ %qd%#*ǥ(tAFBmÒ*e. ##!NO (^T;nSzȈK6ڟ@5Ip6!Fv# s (2(phD Zr2wɛ ;CU̴#Mf8ac X"!]l"R&{+VYSrsӉB{P#x0Æ H8|]2ZO?cI)^Rr#d6u0&.spPǒFɊ ױ(w= ApOM{u;)RoX>L12Ku!7JzyLS cGA/GOja$C"ZDt7tu)/"TT|{A|ֻD@P5Jl#J_ke*{ ^ܥO3DA>$?; :{%MnhA߁#?{6XDK%/m&K^M0Z>=*u$9ml [ p`tgˮv5OLDc.Д!| !)eh‘ \3ۊ*#HI`] vc`KI!h^Q\ ! a p>Q}Up_)&j]hԏ{FRz0x=P)OVKC뻽!D%Uïo>iW$ˁ4w(y1_= DO`8X\sPh"`&7 BP PX )ȠM@##p@Li@! B C,dH!7sG `.1;u;A5{8 F'z GIQB#T7ɸ( I>&KH hݒSB폢`%@tP`41rn?辪`.@ŕɅYE4NXJ BW`<% O #)LA`Zp9VIKpTFAnb-"t0x 0hhGJCH?p4P2(4 @BrJ$0ds> X\ݗ#Q+@H0"Cļ98^m #P"&8%(-˗\0S;%7' W7  B&*)=(IDZ1r>Xl9E;zI@bO Dπ8g@P$-YЎs&Agh.I6kH` #`SBJ 7u5$n萧* "S+yϡ3>(  #\Me+i ȥq 89J=g.MX͐8!q !s# 4a6 *.pSDN||K*_ f~cؖƨrb#f[4#]mJrD4g08^F!{w 8#K-$BSlh^ @P  I!< C+)Xr'MW|i pz 0%("p!dLj}[Ԟ|!CĻ%u'n~e{؀Id :0*D"b A7~@3&!(J !d;s9 /!pܖ ߄Oz3`6Hi012Ђn}' 'g|vK:ۛ!4| ҂J0>s1 ! v,ahB}eVp0>` B R'Kq4VN{q'yªOBLA4ĭ G}ת0x&!VZ[bb3:fN}ZX PrdܰdPLg)rNB?gl5_Gh*|kŀ]@QAT-vCVCm!0P& ^B&Y(ba,;u܍~M{ ?Wi0g,ZَA> @3  @;(Ā1{qyR}||74czǕy^zz<ͭ)3—X);G%"hd+gz]7I%O yhv:|XcZm:^4$kw\x=nOyEkzRO!D}!KwJBr{0")Hi=D77:<#|]GZi^@ 0!jR B!ZO)!+t?muL@bp!B1Mİ x0*ro /v3aL_f/ؔWJיMRMQ0TɉNWgޜ@]q<ipj,?o+ {uk0Ɉ}+k7yQqag</G7yh{,N}/ {x;4Ҁ4`s9s# #m@@`t|MFnXctPak-rwgN u> Q8404Ơ5 J9'}>p:1 V~ Ҁ5@a) /ñRhNBN 2b%}H/t9aX>}NM/)N~.撛,JRōȏoecU0' 52a3W'V'4[5%.g{\?} wuɿq ?c'@[ŏOg= 4><r{ ~,A{yI= :I CJp2j>?7d@ wzh]J1hN'}\:|*q1!FCdI_aB(?|q8p0g?Ř0\paldr{?&oYh&ĘRC 7}vs]uHn!7 @ !9MaP$թ `s#23C6iᄑÕYeauv\eYi]ai\DԑL1]Nr+2z:iE Չ6dI+@b/)6gSmvhW !2X.8d^**Vĕ6Ўgl֛LZGeHS,ʪX$74lƜJ I!qWUu[[qR4M1m9 i:Ӄ -j8:0aڵsW59R oBUm,:Ruso,!ĸViFBMGr 5jI%C,eZ]iĜTUbT$"C$)B0\`Qei[a]qguyynZ1q=v+ 2jBi'U)6ːaZ-% R WE-Iy=H/V%zUdm+Xu2Fb%n)QM4,Ws޶ge IFq T& 3zuЅPlY5?M+% (6i*Di"wͭ3Q$ʪKڨ%u>2vT lIq#p~Z`5t\5)b&3F}QI`d43A6@ꠣ<ӎ9YqYv]כq^Z25x&_m(Qm!rn2c@H5>5lnFph\N G5^ Kn6[[c!caI>q'h ؑ.F^ֳa}kB1QχX@N j;4`]q%(ʲK))Qn,R$]AY:5.[(B :ʉ.Y*!%1߉Z#ǔhQb[֌1/aPb5 ztJkGK&Ļ\PDB$)31>"$="D&:bS43B"iP- 1m]]e} bi=>YLTx_ّmU(9t@u"ޝ GV@wC$HL[mHG%.SB0RPXM5䄠 :xU;RA\ styLmK bBbWk85SI *Ֆ=$ 4BIz\/ܚ6&qݠQ!WNM1H{eHrPɩ r*[DՉ&2ҥ8rqvGH^Q+IƦnPdN7E/ ``c53B4ԅ(@Ms 9UUwy`eqr(\Vin(I1%N2(6o1[eFª5AH9yD.#P)Vs~"DiEvXqL2X92rW /̕Ϳ &%Ӷ䌖qh)s+f'XQ7|^سZyrxkhb~,n$Lkt˫"O (T]$t%U[%miVCĥ3m8>;ՁffTJwwvܑl}gȪ9W ʈbd$TDDGLk]UYXmǞ!"$[C 63B *6)&|댺Oh3( Md5r>}\ SD): S,~ҲlZi]; C3F[hfӄUKұ9T`5sP3MJML9 |*JHp %iO|v2l+KmIn[|S+KÜ;*j} i{o FmI5ed":hLhEYh8{"L HzimBϓ299髐k.8MN!7 `.]4!2_Y˟B_fYi&}B7Y<#9ŋ>$qmIE.o ͿG KPj>A>AU ߏ4,04կhO]ͧ-k`-7Ỻ79p#?ap߬-C2\G7À?q/L߅[S'xcw'@ 7G##ʔV,R-km~ ]>wzwR|>w@kOx?}>oߐ^}k<Nx}N_`FGF/ 7G'z=Bt ߹:iC DnW|OW$#ONsW u1 5İC,0jyIh-,>aQ;nu}׻w F4BxZS} /m/E9A.s.Kq#L )X6u 9x#򐀨a5ݶnh P3>ߍX'ȭy/۬mqVh|=y,KiYIjϤZr0Q#/?Z/G]unޡ\Zd@躒RŹ]xo'1;G=sd$>,- sn;G0w/L7x;hY[ G`E_nF8  P|F~(mkFHҀbϑ()߉3帻i eN#Xg?Gع~awz>ȱýϢuypX9pgď?<& ;:Г+[/;a!Ӏ=v` vL04 J~ހ j/ @@( d 1$ӱ =y5IeH0ѽ!qa $RMA00eJzv~v>CoNnosven!+t#cٍU`aivA$3)%I:\Mg 8L9 0Xi1ۆt4n}Aic,|]@#!腀tBvJIC O7|! -;cP ̖_?4P qmoR ny\"Gr0 3>o2v 퐕7@AQ`&n 9!]D$#V&bR A0m 粃'`r֯ (LNt'rR믆 IJBPl( S)J:?%w~7}?S{>>~Oe踋4c“%tNDyO.OǓY>??sOxGI#~_Bz~} @55 5 ` tC _1S;,ے9"mB H!w&@0vV0u#_Wu60b*Q KӟgO '>,  !#ߚ{wN@p F/(0- <%]%ka` d4j·p<< p›{@`0 4!g$#ڠ҃s(N',0/8;ߨl0^){扁$͇>'ސ(@.0^}dYɎ"hIH(.Q IpY>77q[{{Y"kGocz<^  }'ro?Gv}?_=BǸ9S/'|WO~,-%߳}HXF}܃N7 }k=< n9x=on,OEfYǸ{Ҕk/ ?~,I4L&[O@:S 4 $R~rzhRHEݹP N_1jY05%4Ģ[ !(Y+7MNzͳOa'I 01_ "mzR^z=)9T'uX\y>NF?E8|p7ߋc> ?_g24xso2Np7F \~\(w ^dXr 9Gwp;1t-4O]ZP2w||'됼I%@p#6߀)i]Nrɷ灲|~r ʝx{?,xY?u{@9Eqt rp0]Bz:ߎMqq=Eދs@ ?NrnpJH G?#ޟs~a=HJ?5wX|NwJk(" Ȝ!7G `.!;:^[{ nq=ad8o2w>ydtFp1z|n{Ӭp@ 0 9bb``sN yɜP tM!Q4V=` Kd8&& K l@>b R`5xIQ*ai8S4( 0J;QGgq95 p BD  ! 0`&$0iI IrJ Gaoכzh]t` @b` *g,Pf+}ҔlՊ/2? ]9,:`&@& Hớ} h<jPd @dP^L>P0gN&Rѿ%)Y@lr4f`5;8`2PhFQdicPJ"8{!;7q# & %F7],r{Ҁx@RL bYY0&bҌƣaYߎfL`Qj;ԡUnCv(2-)%K ܷIۯ3c0 >6).RO)\(|N)Hxh#Q;Ҟg?o~Oo||x?珟/xާ Y!ĬpV4xܰ1ߪ~dyd-LJѡQ/bK}` 4Qi&oZvz`(Yi&% B sPQ[#qk#qk?ˆ` AHŤS@5(4@*P H- ?%P;rL6 f_ήu1(ZCC?%|NqO4 1(t7],í@|\[j:~׏( 4o ])gf;kx0ߔCKA_rK6cCI B3?7C)M1 5(&r pj2w\}x4l7}gX.̓R`ia,c};n9& p]MKmcz67G[,~+$B(Bq@P7*#a y!/\py'?0 F߿7p!+ ۳ym`5[p8! Y45)ҜOĭf۰]%rӺxnOGo3eL /v7|LRlπl-.1{*] Q@@b`: 0n &#!)JRzS_@4*#ߣ| 4hآ|PG-=eOK|=AVҎw pJ+վd2xaJw% vVWܭ vw牼tt|чj`$9)Y{罛gWhe [ڃ1 ɩJI|o'myaOCY^Ŗ'F{)[ !!3)6 )9)~WI>1>RzB&PNHap*/Nc!ξuzҀ#raD`P$0 $ FIydv.hjsֳL](@\"Xy!H0p[ iҸ{QfTG3!4!7{ `.!;XA"Xs)LD' eu-8Pa㝏" ha-N_B8`(WxX& ёwDpB=]YO|sf_ ǯb#Πp! )L MΏҚnq-T3ObzTH vCe_E1h P|wqrDY70Gs`%PY8)BRC #t2<4d$E0ɅKZz!{vgg WB죁̥2Q}H8uT3;Q Վs: ̫Sod:" 톒@`xدwb' pd7Jp_Ocl!"!hRW5'O^f,W tDJf@gjI\u#7|EK9` OtjFِ<>][v$} ('0:  "!ݼ!|RF h( F܀ d"hD0X5[rcP0 Gu{UJ !`xXAF%9n<0Ј/Saؓi!6uFRzqXp ( , 8|-FP^(\;(h!A{l:˦8=tA 7~Ȍfj,/{qEl #Q<_PE8piA 8;)9i_{FSc328Z)%a(Tf8^px]Õȿ5{HpNpevc![!WJQ"3xgP1O`ᔎkw""iU!{P\[ ^0 SS֭DYQ} Unݐ^gt=1{ y맆TZeUO`L_5cͻ @/%N,5id۟ݤD&]_9G?'>vhٵjtyM2ýsB&滶`OmOvV;"<˝ߜc@2XM| !7 `.1;q;uAuݴ!o+=}滕`n67AQ Hԥ"KB"`>Cp-#$Rp+;T†P%XD:7%$ )ыVM^K0u|Q J9 !BL 5-'].6I_" _܏#޶)@$y  ܙ1AOsR p~- TZ)<~Dٵd8PLj`/ţ AB [h'{,ʛ>ڻg-wJj9>/MЪbd93J^g~&dmD;!u8 !$%]B k.,oL oNF?"#*LfܧӀzt6 gwv$㯺T_[kEbĭ{Q{;R?FЉנ{\/Ov9v&W7Au5_f[;OR!0 GȄSϻ! BOɯ"řCO T9z-(DȽyW$7@wSn.{mp [nـ?S;_O<+ O#Ȯ&!xq,p|?Ѹllo)C3lD9'nH{Z m7P!3&`w8ܓ E6v |=R (dJ o ng4wO?ݱ';<"Ωpa=ѷU/#6@4}NFG&?p8pA Ҕw }Q ߿rR~ olgI=K=P@E|%c3x < ?,C);BjHGF@K@ Xl+3xD7B"c"+S:pú_us{CR ~Is ! 4_! B`$f?mD,+@ r̥y~ v~tLni$rrG=oNԧscN{2`&GI\$/a% "+OƤDۧ$mܝ"5&Mf$*`acуZB@"@,4b*V` ?dB$Z+Ʀ-B> Cl`Sױ5=v]s{~gE5=C{d, > !H*_)Ha0X0  GRH /bC ܢCC ϻFx$^/ 7%,vP @bJc2>&H@j8H H6䑼$2ۅWLW+)"1ejUVH*G!n710|vi;J6"㊞Dcɵڢ elz3h0uGț Εqb(aJ*kdƛH`YRjf5*T,[%D]eZ:bS$C33&Rm 0VYXMXYquq؛du+lFoW"vm*ɝtK4BùLMbvk I’ښ0*m 0ȋ{=Q-*헬r7IW>B8#D6wVA3q8q6m|aFR [mO,ƪie,#hlSqF.}CF[z/=ً86 -XzUĪ fta*!5]DTX%Ap~Sm؟YDm“2TѶnJ3Iz'*LDmo@`T4BB8h1UM<՘Yaee码5/hyFUX*c&(q3:Q5,I7&dPHSbclI|k̲97aǷ(jph@\[z7[XTvGV"jk $Iʙ9L y2|ބw5CvRЕH"\`KjpEd@SUB$b0TmlY+. ]İ]U-DB ;rp]| e* tȳQA2S;)Q'ԣMe~o yK*d)EHȘ%fg شqnFZq{4RF(6K-o&dIeYʯiՌ3q+*r$))ċTƢFSHեM)+4K)l_f{IO+(`T!AQ %Jk%,h/Mfz_*j-Y/R(9ƣBV5ɽЬ3-*$g@qChiuhe 4D^T#a@`U3CR##MQte}ǛFaewR?HfXs }8Xs~"S$jt J)[Y{𾬳B3EM*)5l^kKmK*YR05eIB9[!;궹zkE-@©iDܵlIs:G(|R9=.[,dtѳA(N@ ’KE?2$~Q{wrsA,`݀2$ V}LV&.+=`(PbCF%`"#ɤ/OAB~sto8Re-GH+-0<票E`T*C !I&XoЛa=($aJ@@(GdɀcP70 ߹񤻛 ª7)' O~R?Vz1k˻Y.A@1TL<F1 ! HN- /->tgH}H70a 9!"KFɠ p4B7Ro,mRCIc UNU5w]c (0^$d!(@kM/oB_PAv/MƄFk(M,7QN1I8:̩=ST7U @QTTox+'ߨ$I'B&&UIXd.@1%rL%%X`I05?bƔ `X[4i $jp + @W } dm) 7B!.M_##U LMh 0A7ds@ `PDɹ ȑ&H)U 68Ո U @7EX0i5L0MPEUrjTG&L F@ɐ3fFݒJtr<>^@NB@ Yh$񻤐=( ЈTW PW,x@ Bx8m% %0.YH (1 4BdgZ e~LFW԰HyhaL@ ߔLc0ǜuꂡ!|#7﵀wwZ攮W*%@vA-O.S@p f BtgYl`'?ITl:@Sr/e^73<\yRJW.y!@.>t"~t`:2Ȫwm 6!93G `.!;"Bt~6h,3/G9™,Wp,G~n?kds)xKЈ$H> n7 AOܘ8}w,D/ޯUp <2'W 0]xoF3}Pv"?n8XP0|3'9x70asHݿ$v|m- 0<ir{*9$#Ho8١Wb2r?ؐ7 '~5cG P!@v oo7{"Snonew?Y: 4(΄'C '~` HhD4+'K-*ƽ;00%,Ob"SG*6&H0)ct6|ES`aA@WD88rDM0 YrO*oT2>{0Ef$J}1F3K1=v3^);t!S A} 3_p$P'I HCSΆboL)PIv $:`a]B*{h &TC-tWCChP8dl7ɋY*;{W@;8~itND["#_SVNp!Wz؂6Hl)!9;L ;2k0&MJ{7 Ifƥ<#] `@y:v)y}=i{NUb%zp8Dh` #c0ss C:: &c d+? E142fpw J2 8%S5=0 g.Yv$Rpb6{@ ᝚NY+*|a@bdcC0 "S^~AX  E`\p#a/C1$tm)ھW Y^eea07vAI!=;L+ ^ (wR^w3`-ݯY7'"%tDueF!{;lla;W2Ws ]e%= > lKp|w0i4#wgvDO=L @"pyٴ3lDB&m_vvDG_clg\w$û^Z8 H؍~I5]58 }^ T 0A ;K}@uW` ' O~8G4>R+> y^*Ba =\%$$ `5娈 5BahUHx8$ _wy}bW}X;Uk88qv6Z9 c|QJ!1uCa, ')ApHW ODt űzz!0ze R(R@ j[ >Ԃ-l<p|: !a08p|,9iS%0$K ;_fpH`>gȿo{?9җ*MXnGTJ D61'$ ,x WAakAʂ `0\$+?4,PI47Hإ`ΔaV9t1$ k!!5[s>)seF-kz!9F{ `.1=%U;qH>#MK,)#Wc< o7h"]JlX!SEK' 7kOT|S Afi/Mf@BiΌ?egpI\ @ ak}I= m@6KZ48OXUTm֖YskQXB t~b!r%I :{\]r[| Jk a -1 dtCʸ ؕvVVB#0{}&Xcm يCzJ$j!ٻ$xRI,ZD.$ g,,D< '2" AJ ADh3`q % }|)vv!!tλvK建GwDOviL "m B廻h!a5ӦYsbwVe]6xHr٩#B_뿃 ]CWt 78H y|.k =T|vBD|6~Ǻ!`sPK2{ \#) (+PE>b?'$8d. M!J@;>v̓z9(770E Y.>6:Q~ԯsri6 `7P/`]8:kT|Eȿ0/[8bp~+ pяb›]P Be|8-}xa\Ⱦd|ٍi۶mO+vp^`z@Yd <L=Pu@ 1;Px/!O;:gƮjNǺu[˺4Vh!7%PmIbi,QI&6A#FP,P FɨĂXx`JRDo CLZЌ0J])ƍCq?fJ%ӱ)@TLHg/d! J&e-H殭ڵU5nu[3V=<]X/}'`tC0RCCx7X$07V C;\7!@O|@@5t22 +"VSW)W*U CuԊuA0' _d$j92d@#D ZT@rm0I` ɀP Bh@"i040:APh`_|$& E  & _H `7S$`!!@ha40PZ BP3BPК( ``47`e-wnBvt|CP!; Rg/>@bɈnci3?, j*&Y{};3o] _!+1j&?rUکUou毢  @ɠ] 'G!%ПӺR^HԄ 1C@.+TJPJ,ci7wu" *MH"a–J&nIxO!9Y `. -~R`: 44$%$e$dTMF >1; 1 ;O?C$.-UWit4UɨM ȫr* &&D`%g`HҔ@ !6~M0`€  M&Xa3 zC~ ?+Id0ƒC  Jq4 & $Зi/輙?h a,VZ5SIU5jPUO\ʺ @ ]g BKG -a N-#F1@)JIHI&$`> "jR3mf445S05<` $n05w΄ @}d_Ȋu H*]\ @&EN R"W &E@H7QU< f!CCJ )) JI ,!=)L #bY0`ɀT7 ,PX+'&(0eBiD҉`e.(%I),^(@TᜤHLW)% Fy+!  [Bx0A4C %!$78JQD X2YAQy(8bx 4'm̒1axNv$n&|~İak~/؉CF mDLGBqjܶrXA/+ul÷ʉpj zLid0RHKV=:F+8fd ͌ dE%ˡ ,0H ޵tiN ]J"C` PLNgH擨 8P _ ǧ#& % Ip( 5 QAM +2B@!DW47၃@yDi 5(|T"(ICr>Ź(_#/Q 8 ;S&u ƑuvZ䞜Z3bӰ ]eO;"@ !`!1rkL Q+ҏ'n|hgBB~{zK, 4t"P\Mi~:o(#&G$0PH+W9@ Pڪ묪#]v ut,<BJ& 1**Z Er{W[8'p>$fH#l#‰U5IWPڪӀ { uUF;UZF®.*& A (M P$5%IY+ 7SQa 9`^A$A1@,t %$R /%.B@PrI! +D;pl vXht"Wrp G(1Ł၎<yI e~1/$W@O#p**}cF֪֩UpzꩫuKR5P WR@(X/GP6xl I@D*L&az8`F$ J9Еt|I|> G8g4 PH€,W%g ׻da8,@{VЏ` (awnH U/o&@XJ P ?>ΑRG&@ꡅn\T5uW@{Un!9l !9 `.!;꽝UviL+?8ՀtlsyyjNF'v@)H'>HFtγW+ 1Ghb6d v'`߁ Ou fF; \xHT9v[je8P d99{M8T"1x3#E8e85@װ'u` w4<ݯN@?j~yp!';Q_y5|!:rSD!;@o毰l ~Udau:;7<5t?̾dH)FOf -`P zARfvc 3 )-NnD4Cx5 DBd.C Bx%1#@Dy-a{}_)ل75 #PC agxwc#LHeӸ{ DV]g *ZFs];ݦ\IC,4wإp\lS/=F8ޔ&NbiX}/ܑ4 P)6|Ø[ȱ|!Gc wc`VJJ4zDMU0psOq¼U#'U܂ыG)'&zeh$cXUr1ĞMW̾gj|Kʻ@s8Gu}Tsb vcK s<'D1 "rn{ #@($}Ȗᯟvթ]pOww8Adi-wNxn)݄^8d\ 8K v^wӝQo7cwAx ~ ?wI0,da @ [aVHt 5 { g#!=*ɹpq*)0XH "c@S m*ģ%L( a -{ϴ3bHtGL8/0`5Ph!3>>:!, y0YB~ll͟1 Ϡ $a  0f|G)V$*4@s{ P\:Mq^"R5=.cZFXI' ]q#&!O#_Uqr%"]է롶m!G2{TswwnP K a3Gz+ûY¯C=ɞ r0̜ 4}D"@aΞa Oypx]&Www8!` 8p>p ]CwLuDS!ܬ@pIQ)~$PM 'wwm$|Ps}G7PɂC\!1.HTOain%ğg nJ  vw#@'@t }hl!,L:ˆjNRtBXBB;wʿS{vG['ww^8ruX`#Og7ske"s\5 -0F_8<B Á|` C9.cA̒SJ[wn4z]!À{D:!/ |.5M%6nA`KӃd/`88X)'٭#&|aBBAd;m!9G `.1=}9=%UĞ3_peM7xXÃwWD0h_`|\0H?!6.E@臘j{%gN8w=u駸 { ީƄdfpBIeݠ`p\<:SB@q(vBJْPzVDg{:Tt߁14DI2I$@І oO H\xX1³ ؒ,9 QT ß`N:{Hpٳ˂P? o DmАlt!PN {23.|a:\ϲRd!e<7 " {6a17MďA@#8iP aC`>| ߁\-;PP).\'FEw[rޜI/Mܶƃo _ֶYm }#;\wܗowjL P0nFbd)ܢ;HwtC~JЄ0BLgXԁSxEؒ!J:ى [f^cMD_EIeZD&<ވv904 a)F1i 4 "ZE$ +![ K-A4,'-! XA@)=k* ,Xg( boHXPp`Br2Pε"20aE1,T}ƦysqtHsH .eRGÉ$qQ)(#4nAKKv狿McxF CLY]CQ`t X< `d7Ǭa'mF/`:}? j NB|m@T7j6Pa8`e>vx2֩T^VЄ}ɑP`S5 ]f0 @## `LRԁbFD<^II@hvY䍀{4bD:G\ 5 #*.V86L$IL%H$4N#m' *A)`H8(I) F4%8$@IlnZ1|' z/: |X <7ڄA:f_ 75$$nH0Aׁ (B2:I|\0C*J?x&X4Q@$1 !*FItl5;l3~R3<@N%#VZLtnτؙ$.&2OI&V A  0 ث+4Bw\WzS4!9{ `.UOQ^<gq+#O@,> ɉ$WBӨ0L [IlK(? D2h`f!p^GH>(Y 3nQ%1,VDfi5 [,~ ,`JhiXa1 %=p@(0&ض0c<`,0:_@)k]iT@Sֺ[X#hh֭DP !X%{l r@r74 oہD#stԨ 9M ?-3j4EϺBH w&d(8,H'ꎂ+\UB.DQT \S".*vS0`L 9 #G,G$&! ]$+7L4 @#0",&9$ Q1$4 7ܴFr; h3f@@ ɡPC&`6Fd^:%lQU%WP]^U6dq#f8#Й lJ CPB0kI2\= XU\]@BK$I@_l@;@ Bwnݤ}biel+3d6n{ȹDQfgU>$yO4}'jg:azꤻ: ʪƪUvjBК'qCup6x!9 `.!=B>~tcD 9% 8FZ<+t"V7y2I|$5O#"~-9 $D`K0A0&pzʪUUJW\4Tt%$0wRV BJNKw'P0EH@B ;B ?RBFY4b@(6@%8H ]i(`!L8, 7!9-ޠ J֣*xtv>毩ZzwsWͪ"T"D[Mp?O:Sq>ST*cTQ})8(a) ݠ?H GB" o[Tƀ^tojqE? C'lwY @ ^4{ y?'Vhy#\5q2] w9ϻGl;X, &k)5r}y%=qZ w ?Нmkb{}yq mwUX2)ܳ^ǧ_{XT#;1)&i6)CA>9lI8cqCVO)]2X ɡ—4, :@v(onK*() `G ' & F(WO`>4/x?`9إx/x떾;M_`1\4A{tw47DوBAtpYu9 $DSf-[%U$\c ~6 L-:=ajw-R8.94f&`Xf  [hR o44b̕- V4 CTYPA5H(g;=-R 7)t{LhBVi J 8fb6,_)Lx @$oU0#^z!W:>CzHMr Af#!Ҟy86B}ާ830h\eJ4I"iXh M|~6d#OepO>?aS@adNt;"!~_g . `>7 WِЏ|0o:*DPPl #QbpP9$~!$ @i(QB -nMB g~obq1{C!W!#aHńē=4`%?>pND7p[_tcY HD0GCR bDއ!{8([*E7PvgU8VJ @øAUvJ0j@@` @@P% ѡ FAi)zH'(!29̓􏆟rigKW*#K):,:`h,3 )a %b4da@zxPDļ7`K BR ͨkg_z:]$\4&{-xg1 (~b3dg#UvFZ|9b`(6(,h4I$&x)|M0nNBmMƻ%lQ &nր X 5PXpHp[TP3J dE׷Ww_dbPfGOjRDkbh R4`U4DA$Gi㦩8DqYgaƞvbbIZUiI/jQyP-zXN.JT|oB̑EZWS8j!k&&ֆkIs.UX;n3?itiM RXV_/iF"fr:W:F#6[ئU+ˋC65mK>ٳ*Vzz x6S낕mAmMDEqXiQ&(ӥR'6\ {DaVӛ I!gcMy_. mI4d6Q7d(k}7橴9}fv&X#f;uR`F#41#3l4IZeu}zuX*laPbn4᮳㥯"̌B|&*cMVjz$*cu e%N+ٲԓeT O:bd9,2ǪmZ7mč:A`\R*jL]’6L9nqR@Fk SMIbZ"E)iUYAu/4EKu-kz-n|,"S#Ne#;E.+ r2!J%Tn(plE 1Ң@ecD%xRP0bV#31"4m:2$LIWiuyu}v!V F&;!Ҭp6P6hBr2DFF2D~NM9a"ލ?nF؟al!77"C^ڸ/$d.86uJv  CiQI,2f9kkՀVȮ4Q%Y Ѱ SlcB4~(VQDk]8&9&*2$Z`+Eu7-ؕ3+j#\punDy\}| Qi%mj@O5Q$K٬`f#412ԍ4e]\u[q}S+K˒gE+HmuLu;k![.[w'vFgXjUGf8ă2͗䮦xnhQv>hkPIB@&h.jĀ<-&@_m"JRClx]vU s1 @.$M9gTi3qM' mU1afBԂFTiEB5 DelAq$Oժ]&UKժ=7ɳm$ކ׭]ZN[rEskXbe443#@K(L15avY]mƝ~K £ΊH*-uبëͰ5 U%$^oMjԞ7I)S)zJMeDJh"AkWn!8n1 Sy%xHap<%qe mCN'!e|hvSR /]i*xajMJ$7FFR5kj#;um~ Xl'yE̔\! 6"_[TXQȩUf.e -0Rttaܔ]hQep`f#3"#42( MuQgmuqc.IuEv!NƓU7_ _U#!9 `.1==}9<}{ʝi;OҦB OPbe |jd %xNkG04L!,M(0R2&QDjZMׂP(we>}yE35me%d6bd3A}pW_w.RQaT!$ϓ%nD/KF7MD0|9U ΄(44rWM@`45>KnU㯰-`.C=P=<>/0`Gr r %%x );H:dKM"i>o1) u`X؄5!g5긅4L 2` Ar2q`$(N@axQ$1#xo &:  I%) rw 7RQ@`tx0j~d#Dk d]_Bk2d8JQJNP`4 &XaSV qpR 'zE{APQ@9I%QD4(= (_BeNCpL.}) ej60x>@_PiuOJZdw S١ (%X `iXĒ GG:n1ӱ@+L)ܓ?!Xe}h^K ƫqV!o'\ 6b[fhD_4Ќ cp( @Z TJ^|h0S]|{kHF4:䒄QЎjC !șn=KZDǕvw^(970ϼd(~/ 0! C,!2IH*̎^'Β:>qb}h DR|# a]I/ MPNz%GmwE8*oz$ QgsLj*bPN9ϖ -L ! p'izoE 5!i5!8>PBk$VXwR]Mpޤz]c\ThJ @ NLH!$%`($WM0*Y(0Grz [ @4aj K)p/@ ;K'$Mp`̜GHOe\"S\#@6I~EcziCA!N"W:Su걪>Mbp)`C^JPI8c@0 @Tlb, hԠ |zHt@`X3W, `;yN$8\CCcɤKUGb 8(̆ `4 dbW$C/|wG$} 20Pq  7p7$0ɉN @;~u E!1 h``hĤ0(% )?p!4&ZIR OIhFM(B[%-5'#$-淓urjO{ꞰmVKNP`P@JۖQ0ˀtH,@ƀِQyb@"L4DA@ɀP 2 XjHp P|2xP ba0xBN͢x9-)u@Pё $R>ِ2RˋB[;Ie h@[I!V0 u 7u3I {j({>   5W*ϪbQ5X8` Џ<AA /; @bp|~1K8$&xi[~?g80n,n$x$=7.-#]^aC 0 (?OB0\ɾhd$i> - ,_9EJ86`(-}a?@)bo >"n! SDi,E%lK9TF `aA/e!?j] +  ª¨"DaW {;Q=0TὐL I|[ea$zwK@!=Bѹ#ʵFoq )'%!<iODp&(00y.&CHiV)4aI+*H(! 00E'0!@H `HR{\"Y@0( !I`Jdp0ĔPjP7!;{ `.!= TM/7~yk)"UMD FR7( ev Uv?ބYE@ Gv{\PɅgN EL `_@TaĀE Iy x0ܜMXŤb0dhyVF$bՒ~OV{a&x`!|A <hEqh1+q 7d7) ƪUE=Ld~B>` 7DDIeoo+rMS `y[TpH_ xLLlJ0zOLp 9HnU8 tePi~4d39O#:7@  : M^O@ܜN'}DD7,x9x@2!F!% NJ'lb@[@58 [ kW J\N{I5tƈC FGbBF&EPL,W'X'| q%!YՏOVP2IC `H%B!`RxHaAF?\ IfD3*/]:^]UUʷU5Hw Bj.~fxt"f"4D;Yfk2B)+V"PuVh?0zA]̜)TOmEq}{%G3T{3,XJzn)h`J1 Ά {^8) Bd]F .+]m0JlrlXJ#8\P ksDY;*ۙ f3(aWpi8.xqr;A'QਁoBStDG)Q0GJ \kXN47d#(ń=@)%6RiL?8I.UBC A # a*oC{4(yDoSı|8?luP>n+% I-! hw``X@"k ùU)4!mZ Od#=U)J)% R & 7>6?Ɵ,%(g68RŃ໢1ܮR3VMt7`EY<6/ 坨c*/j(4(EAy] vIÜ`>P:K"kN ڞ(zWS#١I%Mj1N$ h=](:'tKèM-(Jo_v²]pE%M`A2ey"M|pB"!zxR׆c<xa4-9 \QA?!Mu5dgJT@bgö0R` K8LB +ɡb"y=~@C?d$jE,y=vujro KVuz@ P9=M7ZA֔L! T2{ - i|izF=t?FiPu'%}ABR~ݙg>a@4 .pL8 @PY4 !{@iL2PҞ;7X7 ֘Y*na<(_F ¼tRS;QF=D-t<9hTb6j@{^ Cs^DvP&L4PI"ZpX<ςþk."p >xD3rl@d |W=߁O (uh܈&CJ#VP[u4t<ŬE p\4 `ާjCxxuOd- Mw> XT&,nɆK#GG l cHO#t`٧2Шbz@.;&\JU;a:{Z!yT'X h>=U5!a,.I &6E/ ~hEFUCG Wa@-G|h 9 #ߖ5PiF| (C\KIEG\AHG!RA:?H,L\5ׄu;Z !+~0lc EWDh fz@n dhX ^5`tmcI]c Lk!E#Z @VzO\?p`$XF;)8Eَ[Hsjl Π #!ͷ!+qh`beYwa`*$KЊR9 ,%0?&@t`eI`IԀľ03 BQӚw1i3 2:!TedBK&zɧ4ppvZ dLyI" #.lHsZ\z=/s,`t"0D Xi 7H VAqs` C>²'(#2@ 7*yڄ$Xn6!bppvI*.%Bp #ML Ca>h*s=MvbNt' )p7,<@L,i+hruTzᛌ~x0_9&Z &-c{ #\/' ([`/ lrRR29FGl˺=t"p cHחx #!:Up\w |%þ˵SfkfLD  p+#YlH.y㏂дQpVUxx~QiJv=6-AǸ & Q4Y_O Nu64| ҂J7^G9p!TT03e B,z  L`1=$ /Oi);vě?ێ` CL-$䣾/&&dD @-$܌Sc3|Ԁi0@$2lZ];/)n Wp{p @, ot @( x&Y(ba,;u܍~I=~@ˁBaEY5 O - e` Pb@tZ Sj^>.Wo<WVy @LlPJ& I1=ӳvmߏkQ!;fr7 4 9$BbtLNQƒA,`u!+@ :(xCC93wAi@c&^uX&֏@vBZr5(␔t ZWeU4YJG@hw/7IF!&=w]x< xLys>dBlme}c9-? i-?un#?5Nt|_wЯ̓;Ba_K=x~<O!;@ @ !;km&pp\Aգ~Yӑ-y Grb/35{""#2¸u(q\fgb%A3ȯBk%*SMkjʩLQ[n_8$#~]Q+H-V.ͩޠd.R5" Fgsp1ބjNT&'մښ(#`7W'mZiDJYù+3&CCbzN".GgM\R۫uT0bd4433BhY 14MA4MeSmןrqH"~Kʱ"K^2M(|uZR2)*x9K Swf8h! a>(itI"(V[yTFXc5,L }Mpo,U5HŢ#RpYgޕ 1)#h*m$6mgzN E3v5xow)^ei&ZvMTe5lmqb-+Ts!l.ڤha;{Y+Um[vi&`d4DC36l IDSQUmy硂ᑭtn",wzAUM,GDE(V5eeFkqmlG^avI+eڑH\v6HR uLaSvFpԪRDX\pdiI]u'2ML'eoXHo4FZ&qZQB61*\\VFAR9+"NjPg7RKcLdiK h3NJkd!ԑdm-,3IP2ہ!nY5\[KRGG;"!@YYb]6EmKdM9(_VQnDAm#<6̑p`d44C3G#HLIEYYF`umzb~(RqRH  jfRn(1 bKV*+o4ZƹYXjp1S<P:%.E)%a[ɴ{ajNzhYFs 7 x`сAT$8bEwB[mmSMVS+jåVDI\Ea)pî8rFbȲƋcuOF"|JH:$`DmTSmw畡ʲ8X2ӵItf;/ld)aAxA\]`d$4B#Fq==iYmށWѨ4|ʑ.6!D0RFֳ,#&ZFiqó}-mDKB%MLi6~4N+"z1's!ֈQD^+. vz XѴ*m7pi`[C-֢bjLEС $嘣Z!;SG `.] .Ɍ`F^b[?'%9 _|Z}gt|p i"pǚ{kw`uts_èXX]jc{' ܃2YO&C4??dXv o,>~`o<;-=<q3J=(-Mʼn/3Yqrni BϦ.~(tu~%acX7q瀾o_s|x1hs 3)b~.sL2h@44<@2 BzV%SrYqh_jpQ?ÝY>P@t p%Pp R!jMB PXjIok]jQd ϗ?9p  T`@SK|3 >p wcWy CIzP @M!|KG&@ϔe_@ RWq;.yJ@ۧA,T</G{x'cޛ!@}2^5a~K%lrVOYߞQqOrEh5'oY?? GH_dpd?8 y_y {== H=pt}_Y?udz?9>8E xowwܞ Na@Tb;|yٖb}` `F[ NDLɟZ~7}t#}<7zHjx7yz<-^;Gyأ  7߁| Ne78>x{o?ְi0;}E]2r=;"GxײxX-N_`FVh>g =CxV~/9s1pՏ 4~/Ok5Owq]f'\XC@L3Zq[!|.@b.AA$4HE1%'o;O&@4 g7}dq7I$pUCPPPV߻$ epBRPJ |RR0ÿw[AT/w?u$ԓK}?w?Dū7ϖ?UC| Y) \1axSrsXH[L ?&$71,3r?| p)};fgwh8/!N }P0(Ax4Z;mJŒohw3V<x=_Sao'yPfJG  {EsOߏ#ػp6rp GCEr% Q1J^;<}>`D,\Sn>xO'#F~ \od|;Ǔ ~:01o<~~x7>p#N1w4qs0^7a"0!;f{ `.^}c&~0Пֳ33cXxLDOynuو& ,$/n[>@5&b[9)?Gc?gJuUwnHle8! J;} 7%]_~4H `p8dAep_0 1j  /P+WY1~8?J`  O!T !Br~ߞ]h7 tBpf~:G90[@/ @ ^Xi4A?ҔW*!̘~1%A3uvͨi4RR x oݵhbR~-[T5 `=[. 0!^MIEA8o ˀ=?jalll lJ|RSG` /ٿ{3@2~ }@R|i.tLõDt ӹ-l8MExa!e\y,~~Gw0{oO.GRm p:AX6׾ Y &Ԡ#0 RBzbPf$uo@@9HB %r\b-CC6.:J407oƸ@ cA2,ݶ#ya(ݩIJ8n-9dX`M1)hic6OH~pB Ñ8(&P*xvJ?2@ 2Z܁y@3|޴"a00Q!(J"i|w?җ:ą#! 1G෼e`y[ (!|RDj`0I]H&)'> xLwۅVϭD>Mcِпjr58]OK_^"G{Wx<7 }'~VMGo~?-Ps:S  |X~߀T n,F=.<;O?z!p6}?>p7=~,}ǁӮ{2~=ޔcY}Žu@hT5 B@BB!ãҜY\Ӻ ISut4a2z6H I18לj"h'|vyII %'4G!;y `.:r_&&Ol{~E(1ҒJߣ|w燽i|tNM@,nX>NojQb-JRt٥)#aO8zsH~ַ8 ln|_djs,0 s,|'_h1_ug#ӀwOqdx=n&.,a; Erxt(kP/: ;h dC?aO{vλyzp@C@BMI\ Bv$cw~i%Ri$ tdL 4CF,&7[= NM,JiIS%ncCmν5>8 )h)iѓq v?M6T4Osz0x|\o: @,h  @.&P<0 >p05~M&ABG !,X@/z rCjP1X a0 <( vtT NI]i%~grSٖrΖ Yr-E A\ `4@b L ,$ҹy%#Էͼ @ 4.:A 0 1KI@0 @bR咊oR.Q^gYϺ~0%mŸ=Ȕd  @dP^L>P3RG ߒД =NJ- /!0Ҙ{).@t ɥ#r #5c b1?8bP+(lBtn0ouE } ZH(Q5bx"@ @.!"4?@@bL 0B Pp8S;> vC,J0ڠC ŤsۇyC?E0aCx `:=86ߣܷIō;s >SՇ׋*)C.R=(;!)HQ<~{L'mI~?O{>~Om>?J 6%`&VP$xo,)\4 %Ic $J-$d7v- c;< Qh,MINJ栢F =OTR`b 0/!):v_W?@bI2Fd%CܢhAUTXNJC )|h~ !; `.!=i@aΕtjM!$.Sb5bSw&( mkIh &p,o{4͇-|PovM458x7#@'cPcvCnvϷs`&ĴM,Ӷ,`ϓ'vL`Ÿ#_RM@ ؒZv͏cleWHDNtWJ ^$4v5ɠ !U{(i19\Dn"WNL& 7,5)|ZPOج۞&pn O r{'6%) ,ZB>n?)k7X t%%Y;}4XU_`B'AdԤoJr?۰]i`;@7-;v] I F/{}ng̸%ppI0EQ1A-?d'LCĚC@vB,n [dl_߮Nu` Z OA-=+C{*Fn()o/+սӃ@mC ) Xj _rK)ߟpΎWB1O0҆11)NJxx|4ɍՐR-AR߾O;\:z']Bش ѺyzU۲xHӲJ[ |+~3v{JFJ @͌iH/cppzd$`:II,M G(ļ^4NxC@0@h4(_@H7Noq bI,ZȴljYX}Bgb;gcʘ5(u=8gQ9AXy ޴R=1Kpq( PGta2gqs3@)_`"`& ;.cb HSgw|8bN|d\D-$5 P;GDr1[ LD5qB V l0XUQ\B &  =P!x#@@dFc@c*(wDz#Sڈl}%݋8m' _!Lj-ٹ;6XR@p/%!1H8v8|,b)`L#w| GOhMԨخ~ۧ =LDiӉUv\ꏊ8x~QCq`zjPC gvp""S.^{]Ba(LVd@:,XŀX4$ Q4%(EbKrhēr8jKL IE!1iU%6Q-ChBs)0#gg宜fhJM(ō*#6mD9Oe?Wa grY$?a:| \ A|@#uOg# P3Ax^%01E1 @tހGphRo7JF#-)M{\(943%H&79[I)+x7 j˷e>c7b ^yICHD WP !&R'"-|\9ѸQ\&aI`*)"bu{8@*2BqYt8JX)&D0fX]d$$9ZqbPّ#eoh"$IfDUfSh[d|3J0؄ra#+ !Fu!șC$?;r#h; Cow0!"p57_ .ʑߐ:4 biqv DH,=Bpiv0Z .cS aJ=YJJ;(&GpW艵LC(!!; @ !;JiFBƶy*D" R6K8R[st퉚Hʚ6hTKR 56i-Ff ք(m"nIqi@`d44C7"rn@8mfuYi[ULnUI![f;WZ#z+`fN4e&LƖvojD6 l6dѲS,Fl,rm^DBVõa5umuk)%auZeEerKadL\fGIn J$NorDNelQ}o5ԛնk#q"각2{bWD5fUk*8ԭ;\9$I je'R$1!K@iJ%Qe2Ie|qj&bc34B#7"J =Iuezq^Ս+-7qVQ. otN( jǜRD`2$$G୫RựH iFt%ΦɛUs% EADpIR56y¶lu+F1S*5R.ť"iZ[(W hZZdQʚv+t1PuJն ҍxdt{C* i[ɌE'sFlʢ GfvB;&kif(I ,GSn12ah\cL `c4DQ!Ibe=%=qyZ]֜ubㅍy-n:ohըG5ˎ!:Xiaۜn̮3;";S5WeΈpښz"k$#NjM]Aj<4Z:}\:6V|x]ZQe_Qs|BZ#r0J! ƺ\s4Ÿp\4%Sf#֥#e#9st>lٶXkQ$ILS6nHy"3Z,˴glJŖ}Y#.UUyu"]b),v,%Mbd33B34mEUUq~~:)"Z&z"Wl'W(Y#T 5yأz5wT8g)1q1̉6V&8M(j@mjm9S'ZD27EⅰLE%9eRN4" nkPQmFUZIIZ)tarPmx(->SJmإմi06Elѵ#!e֛TQ!p4n攈JJ8-YGRֱvx܎\nDI%.Tm\̥2IVщ#w[+u@`d$DC34hQUUFqy!8v}LKѨTĮ4f53XPa!lQ\SeخF=V[KJhRizfof7#j5`a|"Q[ODR+blDՎv ':A!*J(F,@#5n1a(q¶nH% _G&$=dHF JehJXJ#Md,TieVM| 7V j\5Q$A7X_5d#9m8r@bt$"B35#mjIUQq}a8z!XQ FI>7'TgPh]I!ؔf8f zHFbΕ-m逛Mi4܊˽86rS'RUMMnқm+cj43G!cN4QmFJxt]$# M:BF:V]@,^2&ޜr qo[ȐR5J旍&\WT;0,%k)[! !SJUP-)P9&>X}~!kˬbTgVK͵Gr,J`d4BD2GM5Y6myނ$XOH!;G `.!?{v(ÅE]tZ\N !P/`<& Np\pXU^77'Y)cܿwh{9Hnd(j{`Q@Y8pGdJ AUO"0dlD8ya \djgLZCp禡 h*o2;\шX:娟t (Y̜{w ~[/yMh7P:{% $\#A?:xp `cOz˻&qDsPPR4tEuE<*MH{DHHuOP2@`T_rҁ﹃(3܁"!ݞ4c$ wPm!2} 9t' 2D ~I> ٨C2ư"Bx`aF,o@-i,ZK0i쀆pC> 0 聓zJ#%]5[k@DR_=ãa#<)sïF)5ڔwLŻwsp0X6 KGw^p"P㹞膆jy2 hq a| ذ\’{  C݋Q3^fI;wyI߈;54 d!w c=?̿p ye(w{xpC%D|bIH}#~x9d.#eZ@5,a`W!7Y1*F9I0o΀)p;DG?EK$ ]І0(4^H~+5Id6+(d4ɠʒ2(/&O c 8ȵБhs, RD@i,k]ܑ tq@`K=RL !e2 ' BOR ̈́XקfAj'+ NXĄO?$b-a+H7EfQOry#`&5F$7G\<=NAY!t XK|bKiA Ԟij^ r},f\1fGƛĤK3ʍ[ ^VTЩb3OОHg##CBtuem͈++vhd| 8H9PY@Lv$gqےJ%ASYIz;rRHn٪?`Q$~R5q׀x0wL;9lx~0`q2zܐ/_`=~f>H"3M@`w'|aDon5 )(*JB>x B%EJ3Y~,>bmӆp5dJ `ۙ$7HnؓuN8!;{ `.fbn`xuDۻfNN μOngۿFFxlN'L?f:Bo&hA+AJỤ#n?]F1->':?HO8 a]x ~ơ"4^ρuE8!>!d$אC@m?o mf`<BHdd2Lҋ n)`1'oDDZcx;.7C"ΜK]Pmu/SЮN.$#3qC,(rA]=%Ed#U7EbSK9CLBŁѩ a &NI5., Hd $ ؒ4ohִzZ]Iw5|JR!x##4`Nie|H+"-Ih$4>A$I!rq9rZ']=z{}E!|1u`ʨ #b7 & ` @v,5,$##n$84 p==a!54&q)nHaad5) $d@#xHŌHJ3ӐZF$b## @#@MWK(C /@oWD&4!@&&1 iJ T 9 lMO< ]-$>-n`=2ІKL!dͷz(`\j~>&t /&!b^&. `Y/|'7:fxyo[uu ?W)8OpbX C1 P>4K]P!Mр)``o$;7LT@T$o5?]x\Q5t V$9g-aHS Ϊé!!*ĘxaA ؚq'5X"rDTX D7 )E @`XX 5 ,B)&TL(Eᘥ" H &d) Q@L#8 u?N:#Rel~?x ɡs1I %l'qz!XbFؤ^KS p6MfyƖizW Rι+Kn`ְ_#z - U ei|oy@;`8& B8$B]l@Jy, @p$4Z=:+N€j_(0m $$H( 3jX,$Rrw@y{%$0 @&ׅ,ΗZ53$ 7qN"Y`wz6t Uu:U]UG{mha5,  -o`!;٭ `.!?JMDS`2y,k h6 JG#K  /pq { $H6PBrDRF8x"?蘃DrY~l0L &gp%X߀Dp$~|'h^[ 04Db1ޣܛǸ UWͪnU..&Tb5P N PPP @/95!Uԗ`4C !OI$`#'!(B V/J`&% ĒN"DҀ G # `L,_Y(%4BCHC - d֓X%>+|U%MD}A Pˢ*! 58eq&H] JV,ڌUu#]sy@ Ϊ\*7UU}C"B"M Ԁtɘ  %J ]H4hIR` LYe x$2ސH)GO 3 dHNx! нaINs82e-5! PNF섁ns@Iҭք, 3huo8l7?h 5;Bt~6h,7bٗ^dbr΀1ՙxXr![v@ž?fo@$3Х UWYIF$HlE PO\yiOܛؘPV;{0dk!Ε].Cr i@D׋\@VcqPѶ?g`=4pCW{&bp;5x&!0pF kbZ0-äU=x,pcp'c0DO=!XͭRk0tءLiW' 0+pO d^!*{4"h(/XB1(M dxKS"p|̷hh-'ɸ/ =)b{f> /`3ݽ zv"M8Ydo0Q3I)"F#= q$bؓchh }[լAC 0]a2m"fΐ# E]=HJ8d-ݳBF  XQiAD@HF?#hXFg/+%p@!'l$S@fs_iQP>7I(QpG2+#,FE x?l1C^>BA{'Z_8?B `gc&SBB zScG80{FImIFCkFw#$d Ẑxx6df%l&G~"4*0O!; `.!?gL`z!ޒ?큋lXjýtCN6jfa[Ac  |-1 `<VSh!Cqy$}"OY4Lq.$ `a``k1( FBx,a`YGM`)X8m뚰PW LH,/f#k OwM/S] $ apа X4 \&4Ad)葉p_N#"00 idծ^7@`se݃?pUD"0= F A0:CH(bɾq顑ww;+>)|vιnFm`r^`B %}`@'#53#̀\)Ni)zle@π;@^hc% B7PULb#Y/ts%Ma0IDkґʙl!KL$`ѐ>ol@uy@}3pYcX97';e @5^&Ƕ@fB?^ V ?Q;|<  {h*k-h1q3s(S(pD@:n< CFg`=ȿ0{~F4pCW{!53te˰Q'~ly<"@H V;A1i*e0cp-w^[ a 7_`*\փ@Ped%-=pX-Ǽ<(2{`qS {00.|8>', U.%7 @ HD< p He!? ?v^䯼YI,",ʲBY12`P[! 'M56m&+YiI'K̔kp(C.R*YlĘ)R-3+SW<)FH r^J2O!{#%ک֤=<803%%/EWEKŀO[!PD~v3 1)!ˁaYxAuy^^eFm .HMS1l:ZD > !,2`>c6c٤e BEDFR4膖2=ӐґjD`% :4Ychfߵa|Cp }Hy AH0X͞þ1 3ݯ!b`=_ wE pX- LE:Q!Cn6Uc4%_>Jv0,E /@" *yLllKT\8k=C7JSmܴD ޷b0cB.9IAb-~X0]r$9S 0*uP  % op9z|yE- $geA#@x2"QݢpN<svU&Z6X2"h# !: x~P~`H r`j66#Q3}[ qy+jA&!3b >{ oc3}9-FԫD|9!X.隑8s`DK.b5;!tuFui3!= @ !=vbЄn+GUDG2 ,*hRh !a%q%&5Zl }f*6H'k4Ϙ*x!R$U*#JӊCtR@6E@`u%,h? X胍49- bc4DA3G$41immZR7hӍ0jԿ%К-xiҤ_P+nu2#&cQr6-i3@M4V&P'+MKJC;_'x b- | F4.bqQ1JYtAIֻYl7< `%#t7s*5> ⌛n,m0!#v`#~g'GLс%"X1(=`lxK |jQֺKT03;[176= ;(3rwyr 4D bDɁ0$e!27:+e֪ºjRV!: 2+ɓP, R<2'x7z$LIh@!k b ډ kI#F /Kig>j DXLpA$kkvL! 4/a& +IVTdnWlXģL%z"  (038y%ZD#d%fh_d}(h Ʌ=R,(œh&ޮC!+!\ùzuMY[S*`sh,Bxh S & A/`+59I$h0<d.e Ldt5cLvj](& ,o~M,%y 8 bX !=&_+5Z)|#_a40_&B H|7 : ZQ}P{ʄ\ (T_ OS8USVU/\Tɰ`z OH SƀI)HRz FHH N  oѩh $%A@ H+Q2 &Iؘ<3 -T `$҆- OV}|ql˓{dT #UrdHV  @|4bF ;`Ѐ$0$h ZC ,i(R$>HdxԣR2:"?o@=w%4B wbae` 0 &+h @, *ϛ K瀒t s#čܐ^O@#(҈H(dWo'!9yvY(*!Q|b?3&mz / d!Ѹr8O)tp!%EzWUʩp ]uv}sNB)T$444RPJ(0&CIB@pQCI)HAr (RƖM БQ !JKI 4 ?0 >$δLNfN< ADz% cC$K]j'VzD褁dH&8?o6xZkHDPҽ]C*t$oQ ?4`<@$Q2`3 4%2 @bJh)JJhw)/  $%q vH ` gbCe$5)IIH`hܢ@!9 $KBޒBRI`jPNI< hCB?$]:s%iK[+pI!e@ `c%g(+sb̫ r 7{}vΩ$Oi#QS$?~j -9 x9?;Ϋ$cG2pc9t{0Ram-RS=yRkY?zP)o#x{z|gk rnE~ַOيvrQGi@{:Ɩ֌9x7worZC 1 Gj" Lk G'݂C1_rGh'CR9Dz:_ ~! bTow .镁>nl~t~q/tDrR̜'/] T*2F V}g`\1|KOp<^C V\Ï7H^$h)JEG3=];>p=k8G5pHap"n ޘh==At0х!/dw2p!@TE`M)Cx0s|0>/{OompmƑAh?n v'ݮgOt@y.E{@+zzm)ݝ%[@ ,b၈&$4$5-6r#KV M PEO@ &W{ ]P_:Ħ;҅ąd`= n52.8" folm7@tQȒPCA`( { r{ݸ;b}C=/-Nz$)"`N *!F(^")︇yAJ̠C F`Ay!=9 `.!?}fɾDJp;|^*U,81 ;b `x 6Y`[&DS4l$F6)ℍ/@}D>tIR7JA98E{x xX*׎_$_Q+ 05dw4 ȎF;I ,+_N pddF8P᠗0-l8TH !b@rpI.)~Z;ߵDct4LqQڬiI EvB*3AS}P׻8)@H`<#WIĞPHoAݕ I8I%<;t*E#gNR I^vp`. LX] a,jY_d {7.nj$p'f!.$ݸH$8|| !K0!YyO \`fjj̺B}b8?p9 3E\ #݋d2GX:)|k |Iap+ ih(2|n !`)jUވaV KatꬠcID%J L.D2<ㆇXf=0 )CZn|?:UX!8 $({7PAY!ja@vyIHO$ Ft=KJKk:"PK긿D4YYq5%ٯ0D( ,YI D% ZRow0fd1 p 7O`&X!tDf0r$ - BPyžrX !!,M ,֐|HlJ .gjDB $][Bd:{kz gA2ep& P_ e˳Kgbnc<!=L `.1A4?YI#COpBdzPWOQ%ٖ<4i,.O͇LMN .y>7*ZC!5Zƻ)Q@r8'Tz1JH$0j@/'nBBQƀ S%H߀D ߠL%%94 dH H!⒐##9 7&Y:SJSP6 7}H 0)P5GYL $!$H@A-Z@@@H @XM#POAhJƀ i@) <$)Ru(Ba!8$#$O . >#F7y:OO-$B HiRRp ѐRH$'ˑK$`"ƪAmuO[}E,fpO_ԓ 7 ߠvIRD"bSUuSP*DI X1A0u @ήMB+2 oP'wS"lP*7Qcd66GTJ` *xZ xh`YxN=("Lj$ :K: &AGHL_\]aǙH*IH, }I I0&C!K @Y$ DJxH)! )ҟ :!BaahK@:@d40XW4C(0INEhN}ԓDl(XvQ4$ v&ddv͡ A=(3mR]Tu-Wͪ! HOZڈ@PDPhSpg)Xj`R`t3+ ;]HC h}$/% }y Ga=~ D a`HloM}MRE"Uvuބ")G -==+9`"OPT@} "*Ӱ@K@n2P@  Vad FRI$H-\ '%!`m@V{PѠ"A$j@ H76C(QDЂJRI0KIpaEIi)<(,j|`$4`J@#r@")`b0jR\x%hb>0Xh(00 !gL İtQ|H'' TM B|wJ뜚Wsky9ʩtq@&8, =nM+p,K Jq]_/U {@Q@``p` ( !C0RD"6Gϳґ~2ŧ⑉eol??, L w@,x0e O-Q O;D@dH$$]a;A4T_F#BK|CSZOꞜ{k]P0vۏHq077OlۏJ{'7 jn@4u~ ,Xh/g[ ƎQ&J0Ξ~p`ߜII3 4nVrP rЗ%0CK]^!EaؚM/Vv`j@`rI%tp?tDI%e`']Pb ɀUyA '׺=LA\#m>&ޱm[sw9eSjHgtDV}4!) ?-2iI!L3}$`%%p'YP!=` `.!?(7' BJI 4;SB%rvPf9&' (! $ 4`VLQ/5.ONU-ar+ [TWVeg¹@|H b{ Qm7_!Ӝb"#%&rNa h_Er۩rh9 ++k| -8LI#|Q/~,## Ald䀪RFKPF2x4j1y# ^z UI /Q __ID'G oR# { 5 `x4F!iE  ODGh4BY |h܁x.P> $JIkfO [b8 N0B&by~- Q .5&?kQ-I; +MN!PEI!'l,&T # Rhj҄Z .-$: 9s85bC|{4\]ǮP Bfc&.! ;d>&%\۠ U4;ֻ=W:Ϲ<'Rہ^<ai /#4_))?B=i7hI IE JF/¿!@LE'<;DC&LIphiHKEx+L &d)LC Ek9Bq*@2{My@X&(9%& O&,o/ 4 ƣn|*M&9(\{`ؚL=N UOVuMʧ] x@!@Ҿ ,LB{d@hjIhTPaH-(!`>@ThQ DP hb1ءo d?iZADM&АnJ^p.L+@k@j8d":1 7G@B7\e@;Nr+^0[uO65@ 4r_M:ʩ;#fAp x+oAaI&hp6Q Q@rJO!0$rŁ7ACC AiWH@A=H90sU]]4{jU!UC7PP4D@<$E`nh(?Y,#6hG FbIsD ' ϘL+|@=ь!X.bt|tM0lPrCIi`\ % Ml]sit @u z {t$ȨTbuMi2hK{ q7gXx jb|gTz7L|ٖnV9_r;אZxe !=FЀ>Н@9,zmiX g9լM<4̨2Ur@,!|?Z--F q["@g;LP}h4! L/wcfMهiBLq^ X8$,Kł(JYH71=94f$is5߱%%8pҔ#vX0A!=sG @ != j23p2MSЬZoV]YE*%,{A([E/-n%s]1 b2Q|ԝЃ7p]hьS$RƬm/颫L"΄IZ :b*QE}`T4DQ3E%,S53Mim_# \AԘMjxYRL6 WtlplkS# ڛIw3k_n\cqUD-zV6S"Z1,جpNn*mh*=Ա\Eѥ*JTaYh/Em=NVk&p ۗP95UJ|G{.vd$tCmViE5^kdb .AI+2;[UilLc3j9DX4M`T$TR#DI =$PA'm[q'aY2lQ8$pH h RԨ6MlMn,[Ouj9ӨeTL+T(8wF=_ĈAu鯲 ѷS!74ŏ+{]EJ·()6Tv7J$NSͳwfv"ZM#韧EGKqm^hfd7&컺rnӃBW+MS;;#L&A aCRmN/tc7T4aL16rX=Z)0D+Q$mU'bT4CB#'m O=Iim( 40sHKPhrZۿ\\\OtN+HIF9$R< GՒU+-ԍKl:- %;7؏GloR9i2X0p)myw4Pdi7O1"PIp$^Ω4۪#N{!Spe(UGSB @ⷦKIn$R9 4`rvhGhkQiq[>I!$KTc(|9׍*C7"3ì* ih6PAvSCS.\I`T4CB37I O8SImuH]INvE[Ws-*ǭi7Y;S: Ɠ( 3g\7╬jb8r:%YbX5#IԬ(JHNעE_4֏Cj-GmV ? NtČDU7.9*E2F#J8UY=ХL(R(J \&L\"ۿH>E䴴PQ`(UWv*9WI@^̛&ra$" (RfU&bc4CA3Gh8RIiYq(z+)XKƫ6~9$V"8hh]QE4'lomAgqIP]>!#+#2o`maf< XԇA֩6dmsIo1Ti;ha] uf-(K,-1[\FbZS'ivَF8'%ED ֐Ĩ V)@_瀐O?& |lR<B'P!I= gwm cH+ۆ "p& t Fuss_Mh+Xg*;o.w(Ɖ@G$f@NfH$@%~@E:ܴ(7-@Bt><>} JKBK`>&YH@}+ߔf0 bF\@Uʫh N|pyVCauN#=HC_j2j,L /JQ;"`a$ =t PME`qHOC OXL:_2w=Y fs5(8 Xk4{;vxUZlGbۀÓDWd<.g;O)^!yuKx`  Y_\ q 0` (7$/7#M*.(u&dh1}`k<:5I& C|D!\NtI 0OMiJ.Z2Z9DL_>s )!b{PZ"5` [+ڐͺR n0TQ*@ip%I@9@X͈#ވl v 1R= ZE)G5$iB`pq!2 H‹HBҝ+l]-=s Rp,֛E|W"7P)&|,K]*9ohoŁ܎06N%n?7 @pH(&mEJI>P!Gވ Cp*p)Ln{|Bg̪B q~C9,6|F=9Y-60Pa\-zt Zdpd0f0Ie5W= @@4/~MxV 8, a8: [b!= `.1AA4,Ҕ2sڈ0e!50[9 1$p0x.3 ) ;qp| aNXߛ˿k2!#:hb% Wa#`t%{+HJStM I7gG# r},Mp"i`s䤮 3j@ +/`wKuW$`jF#$E=Rת!r(,K@hQ-?S{!ӎ %5 )$U0^bc[-ƣ 8uQ?.f K_tG)yH\RqN%< )D&{Ah)ւ8#W-~ML˛c1b$.l6 od@@ &l^0W 椢Hh'฼>NL$125wѲa> O)>jɘ![)Q>}np94n o /rJ+d PPR ŤRI$DF`B DIG,SJP0`x hU0TznSND2HQII%XCjCUPD `Qu*̨ @*I0( ITP(H1 $ @@R3#$-JBK$䒀 K Ma)KI,  H`GV&jiu΄l<#À}B*B`M`#tp"?#/?$`LB"P I |>I R/lH PO]rbn!r0wAujܦ,OUO\TxBdT-5p*U &H]^\&L `ۨO@9@U `XD բET  P*@ G' `,C @!0'hTI  $ JR-+V,%FGHO#y+#4!xЈ]R8Ε8^}'`: 4DiDģ70)hl1d sRR58tP`!t%pԖ7oMAjvA`#555nR}M)]e\/ @Y00p%P YЌ-%E%ۀ "gK'K"q݉lD+LA`S' g;쌷H9$9߁ѿPA1 ?|0SO\)&xB4$H:dO#ed&(PHJYr@2vk ZW.P `;U _ @1) G$hI F OA04j@p0 ! #pR1$U@0 ,4jx | `#1%#-3@k' h j!j4Pa K a=kE!PJP.g!@ L\$@ .@G'IR hQdթ*D0BG Y f@#H ^8$ ,wdN "h `hPX(!)֬I?,,БӱO?#0$ !"  9/XJs>I"0·qjG(ۓ>Z@?Sn{wu-MHO@^S>,b_#V != `.!AQr`=)&AG#? \7$Ka@~#'OP<%!)+pNBA <m$a'խ f0I@| H&0%n0^f ?47_D2PP(`PIn"CF.&{}YiHߣhDb\G"6vjr{tW:[^t&M !g@` 7#%HGRD4C$,`SB,5֔4&!l'"D'4 $?ְ'|b@i .ħ,?l ᠇X$pJAhFԌKUXW\\ {t(dɨW$@)\ `P/`*S > @RJ, =%H$59.H`'8"Nh)WaI2#z7 {ї ^ƈ/#>R?[?" 8Y+LNŀF-q! ;W,vG0M xW( CCI_H!0J~i($@:/JJ e;@1@d9)# Dtp2r#JU]v US);Utb <vNC G(pJAҒTC@ 8CRd7s3gn<K`%m!pC2E-%:1!9O$bd[?8h @#M=#5PWw.tCdHe1D!%C@Wd X5i$J@Vm BByb'&"(I5>DԒ$Ћjƪƪվ VjQڪX!$ *C@!} )%?-> &Ee 405JДrNN"@2a 7ߋ~ǃ L@a!?o8hAy}rP3+zϲ6Ax!5@@0A$0>sݣx7/GPzUgU8 iy-hH!rA`{2J@( F D m+ߊ)#x0!&ix@r??M TFDau55s SzSUW&MD*rAMT Jg(44a0 aId*5K,18`04o JBP10 D.JnŐ/$BdPJCҎ1CRKJ1<P(r%d fDot(k&;촷 (A#4߬7x2 %ԓѓ9]E!πP[‒4BG'?-|+`dW`8u}PZ`<=ɫRbG@r)D8> ;D{8,vi"Ϙ$!9 ,s Hܒ1LIvUtpdwZS!qq Odf#2q)XSUsA^G0⃠K[թ7x,m/2TBjEC<1}Xui@H#]4ڞK $Ib}2 ;%;w5ę8j)?њ`ɠ'1AO&,F:R#HE#oӨxS-ws]k]iPp:V R.Aŷj+j{g2rXM,-k30ݑh0XÓ~cWIFZ$O@؜|gc@Sv>LY򫗕B}B{%gJ0)P@W9'Ebў★곞j #!թNLc3MOs_|#weͱ1M%97q"$HTЕ(0bm" z3_Y ]\|J.\1_F':JId9wLn `)N+Row{kP1(>Nwf"GPD6d$!=G @ !?ekd4DB#ElS=RI\qu!9`G&dix^ i1dۭ5J1+N3&ZˋjeљLQf>mT&b&b cP[θQR2ЏЈ6yN,!W*4@X"LL?n@f 's+[bM2 (fKY~9!W-20:& ei%J.bpdyYWBath8i$*WS1sG#wWَA?as*h m(e-T͡;@=WHbc332#FI⋂NHN9mƙeVa֘y yzNJk٤Q+"i>}JTm(z;\K,[p-lC9 啳ƫU'Zkkw'`mYGXVG(iVDBM IRD$|J;U{6f'JBכqUkTI"R fhGG!\Y0r U*m6 t&7. o-s]֠0 ,f֖e#D%Rf-TCq[9RINj>UD`s4DAI$DO4QZeVa~}ml2Qڶ0S㱲F3ne-꘡ƜY5k *.T S\JX--ܢ9XgcX)ynlP!+Z0vB=Rt4 % XtU{W6n2&_xPqϪڎ* \(RS*YWh67%bc4DA#F- P8N9iQvZ]`y_yvL5tMlo2 eaÈs(vXم*1NG*!a>kl|%k)UAYsw-fhf:i5JKu'Ґ㚳.762[FS/)At񲳍!ѮD8AU,E Er!5x%DQXg[q+g pUxV"iVUCr9w(nd@F{ג/4Gt%؂\BoVZ#vdoDs%Met>Pʟ0݃t#22r9Q25!u)-\e;HH%ŴmNe3jzra$Zuڡ݋-E zk_>DzKʮ!HkVp*d`T44A"DE"0Oiue[]euǠ^j0T8% Hŕ;) 5$S-Rу K I7 #VMsM4z**YS0\R#\W|5{Kxü,!={ `.1AuAN|$Fp_/48ຑTw=pk{!V_8N7mJw}o+ƞ xJ$jCIe?Obi($࿉ED7S kfM$mR{6ZJ>K K5P iu&3C  3 Jwp =EX ݵ#LzJG z`?C- ZCdQp- U  (f='9(0T_:'pҹIFGĒ&-uprֳzI`)cvs@,F %D4 nZ/'V(ğX$ IJz@z?Oy- =%DD9-6jѳ|JA|v( X-L ฏaMY^12-)<ˌ:E4ҷz![,+dBfJiv Y@'r>P&7'J~%df?  ;| L A i3t ۾}'φ'g|vK:ۛs:oz ҂J7^G9h!TT03e B,z  L`0cKq4t;vN P bah )'%~>`&&dD @-$܌̄ B $ I:7/%ddI~ OvjÁ +޸P WvТp/[I6b`Ҁc%LBQВ?` %G~ε;ɼ0p(L!&)cO0z @BP(1 :- Cj^|T_o)μ{/y^Z<whc5Gy<֑zRkzRvJ*EЈu_ m9JS<.PE0:@RhIi hr7d,K}h/ >C2Wm'J۩Kv`0*`ry44i &J ,3s-"H@ Na0 `;!Z2pj@bQD8JCSe {T\/t^sр0#h9Q`Ka8 Ч9^rdQ <&#v I!= `.( rgQ'}%N w@ T Cd*dIB4#};^NhJ6d-uz$ Dd j@tLN3$YCV*@tQ r`a;g1o >M~|[,yڡmLA3qiCs98IH#/7I8-0Jٔ^- ݺzQz$jIϱ?;Kb&߿OٽU/ySi WZwSy^xMSyN֝9ew(%+K7C ^RBZ~Cx&w@@PͮN h۶3ҋ5!Mx-^,R0#l)KWJR!R"%",<hC!RKOf'C/{roe.1EVv2TzL` _(fO UR[Gx=iKimbzCͮRDe)KRm'JRƥ) QqxD=z<^+0x\{ x],}2xG%a<_,dǏuԒ =>~A?.Ws_ǻ(M&E GO]@!%~i(Ҁ·l*Gc`;H ^ŧ5` 2,0R (L 9@TtE~:Su}G@$0%:FGsݰ d’I=@4БI&QdE$5x5ns:a ]JJa^ `gE18[u9?۴Oj_^ɟx=}xgGycwwq4;-_& {ij\_[ŞO4xx]ېGY/ؒ ;kyO_[w=nOGGK:Yx0/8ԝ>&~ %=& G-{H@)NRY}!y 0&%3ogz`jo-W_8]@@ M ū'c z0@!d06YAe qG9g-|x"vܠ KA3?zۓ& ͷ<M0;+*y#3s_8d|<ӸMtXxo7}ėFj_hB|Yz;/sj,7c7% hq&Z€761`v,y~i3eku q&6/"aOڍp7p#Džn Wn}9?O6/쳁3} _;6i{C@?L GM&h'qtr)FȾi+$\ҏJ s@9x- @`3Yqr}O\74J?BJgpY."'͎^)yGha{߬ CkI!? `.ߓ  ITg?q n@\4Wv H vgW=5v @óoT4*wR+ܠ7@k7  K~"_̀\we0ny0 736ր(, _f90{uHi !0 @6-.f<[9nCJ/&Bj,XrhzHbfG엺S|AI:wPk){v?Xic2t\2x.MO?7[x1|xO5s#hsH w);O)X|2Xxy~.ϣ?w4v2E3?X '7 Gv?0_eDOtC^m?֌nx= <VE~&Crh p7?=w$48 <i-䄀gljiG'ϕdydMm|7p"A<@*MwBWǭϨޏ=ʡQ|2\ '&2xmOp6^#>;&w :=p6.? HlbǑH0G'H,;r  XiP 2sǛ {!gnX |>z}>x{nqdR,98~<up>̓ҌE;׹tnOz?P7`F', 4>>rxx 빻{;Om?q1]f'ww5@J&ErCKNBolh@ ! 2&Q@!ɠQJQݎi9}JvO7ǪPBi7&o3'd@3`1ErQH+XqɁ dz@A@Y?60 .[0 l#aP@ 0&Q<05(o_1/w, B`tōJP`ۣwĕ-cϹ yxxzUBG3ԆPmu4$21AJ@O_y58`8O$l}sIQe|tqThQczI;|rV=CR=y$͏~Wa' K2wi<3 x `5'{% 5%2xy\p7?\<@ ]s`Gi`!m!?  `.wýkFl}O 0m>z0x;Gx[OU3񆄺(pĸ If 2a'A~;s/4XP(P Ʌ ņ(J/wV&?w _nzY}V@ 3;- P5? JNÌ K@UJ}}g~jP(ĆvJ~x3@vB"`;  &侾ݿYF`J ,WfC԰ CQw??r ļſעXjK_x9&`ɘ͂Qav4$e7OogxbLO3c{NRP~ M@QCKCն $`vX(RjPQ0Bݸ&< #7^@ 2&M&hibr - ߻;_(}#)ؗM(5e҇=gnOYt_~\WP noݖ=|>Rem: @+A, %,XC7 )* [pA?` d @(hp)P@)M!0?~A@\0) /`߶BSGR=Cs G; 3@D"aV !=YW-[:h 7!!CCRvAzuHn5 ?ؙ`:#PeM1=O -m#eXYe&ܶZy"kbaPfCR8r1?T+`]@rClRztxn*@d- Jᙕp Ԝ`Xy 7l@ uO?ؘϱpdrG>B[6o0?qd e܄!B7+ǚ>4 : [MFlT0PjIKg{{Wz<^yWw0xaxJ< _]8z✰7"wO(p:%r,S 5B8 yEipN{=kqYy<<~{Ӯp).ipئ:Aer3EMgfvO7J@UBJOĚ-x9L/7Y (@LyCן% Rt~M+̚Lg)CWb7Eس5T]@ z9@bT53AFEHTEKI8;Um-ڂ X=dM cW6!э aiv+S ѕxIr)"M>Ҵ-t02pөj7ŕ/_!mq)e*dQKkԌ:)^C3HRU8]bU44A8H00PUiUVav矁ށbVv:vnBj.-Pv$PhxF܋Zm Lj VTD*".a)Btv,fL.m ;ꩋbka^flS H R5W^<*_LʄB;KI 2ݕK5Ib:;N&e i*i\KIxH%ʶiZܒ X*TƘd4`Wl.ϕ6Y’PBCAwG1L{RfT"U7enedd!%jf"hܷ*=F౓tR!?F{ `.zJ[{zucƯskNawMd0ݏg~ L|7j5 t3"-ϱGE]7Gs` sb3"Nw ҁgxppOq2{t;E*PG|S猟m Z1ȠEr,:=0g=qN,|Dy>>y p7g#o9L;zn=w܂y W 3dL^Y&X4.ֺG\S{)KƲ{Fp c@-%+m' )`+|iyy^zP@@~/2 @5)\1%C]qƽ @ rj\;lw^0(bBB yDtݻֵ𷹠 h@(0& b8Ռ>R]wY7bC)ݻ=0P` PQ BIiZON-О (?ƻ<{@@AnA5(j8'v ]MJ@`Q76/>g5-$C@41|{@`NLO@ j3љxM W?s^t&` 3cit|NLXvC\~Y9ȜGðHRrJRGC> { g>8zt 'w[j4X. ~Y,` w[8k>)G"Px>x{t wE8.iѓ풇#'mǨFTY)[k"ǭN:%q}ܞ,đn?#Ӹ i?N"?;c>[<|z ?׺EB.?z@ `0"iiAd&#'5Дwn?}p@4` cz11_ƧV @1 ! N)/9?:ջ DI W咻%+߻?`K!d1epݹg n}@Eы[vkb`&Ę !~(b~^Y;s/C <bPWJ @ݙRhJpo~u:+#gO6(߿@0-1N=BO 鐈dͷb@4ߍgRa,OS%YH<$Jsvi&p{,W4^#g!'f 'xB R> #m1x_t|)JTK>P=0t)#ss49b܀-s =nu#7q)# X Xw';NpG_Y=၃?J<RBAӜk6)Gqk Ȝ`'toQGs6_-ۅ?eNI\~p"E{?xr,,,?vz>>xg7\4@@@B=@hrgr4`PBG !,<,`8^4 jXh`` J P5 &PTΐ*ai8<@+ a12ݎYk:q957D5 &X J @t!?Y `.!Ah I;K`Ę*QdvKO @\E> ;r 4 :`0 &( a%CCCCJ)P 2ps2ߜzA4c=g~E' ?A5~9(c h<jPcP0 @`y0 @8 J8gF6Y1 -( P `@b Aɀ% F&Ҕ 78iHhpɥbS[|G BQvu:gQõQ`& AB2^`P!<,!ԆY43b9ܿVC^X5v41=(;GdZ:НJCNO3E60lA0p?#Ҁ2b`N ɀ:O0n]vC9E0IdbL H̞㽯);?c K2u' @t tiH1A4͑۠-/r|2z+?WLR"7 F=:"֕eg[NwU !~O ;qp)Hp<^"y:C?yy>?o>N/R>~ORb\,@ƬM  ;f $ b_ BC 03=8Ey 04(MN-% QhIIc?χJ&CK8AA(01FO`K`{m~(L(Z@b5;a\mRJߔА̝X%ܠ*^L6 f_ήu16(ZIC>u}}{A8kxT4%;Ug^y `@$\1>bSOa Mť$Ԑ[:s3+mmu)&$M&>J H,cېHy-|RǏ#!^ <3P>pew۶}XQ4bSH%$^b`f7?-~Vyn =~M,ԕ9Y:Pa@:JK-@]ݰU '+`ޜ|?r :(7nѳQ`P7',v8'WɄ-(C'VAo7 R]9=ѳupܒ4ZPڐ䤠+3/sw=4h8k됈X,NC%8m݂vnZwO ӑ\ Ieb堯??sZحɟ>\ ޥEQ0+6a@Lv4**V&$ 6K/x~C$Rpn5{1hюrޞgL4$ 1 S[J%0 gܭ vw特 gGAi+{}@f&%?%;!Crl>p)n|7} ьB jNQ_7p]=y}`L ARef7 2Ow\IAyL}S<(??z}sЄLwD|qkd, kߵ=7PZZ8OyF)߹)sdGw#+bdyua0jz!!U`<{M'Og<`0P.{ZU!0W:k<.O57+Z^mgA 4ð|{y,gӌ῁ }$JI2XY ~1 FC`=5&=(Xx`^7挗&)/?=hܲb/FM9:RgqBCD WZNB4hџM)p.5> sGP!!cYVI <>B3Dx!+֞Y bX!)xkO"nouRS^@ J8,¢PO c۶$*iϻHAwga#`[ k8 ?;-Pa:.|$zS"wl4 X 2jF;<č<(!/](63Ms[z!ښ<)@}~zQ]5O V@;1?#XO @i#?PSM c\Q@MTC8HWMUi[Өn)Z"߃!{m#h)y(7tרh'%CbF7 d4jHhA)@8WI"h|Lz_|!? `.1CVwb6գoU䢹Bf1 )5]݂j9ywB}1"ؔ9Z%W{]a`BAPɀ#O}! Z~_Bri5`P޾ĭ˺#9+荦2les'Hr2lzgb~Ϊ.X L 6})F?h6K1"}@wz\M^}٩(d?}_c6ݭ+(XQ.)A|=Ddȣ{IRo+@T|rp#2?10YN8Õǻ4qn!`9P!l)u N Ğ-wmܒQ,n򝜌0)7bG5+ I"olP79%(hvW` Gv/#=lo xh #~$ܐZ͆u}?b'ÀiF!.CR7>|Ktt`%|`} HAG o쀸X}@)vAB7jIXXAexFԑlOJNHԥ<^7o$FI#xLgl#>4sJssyŎ;y=~w-0x(먐;h~uu۾ùGzXD6q{'zvn4|?w{./\;t#8_"C~Ę6Δ_@_#&fGĆ2nlxf\7@R(/!&&$o@oLX<p" ^09k6Q5}IwaBɄӉ{`J@D2`ay@*A?}D,tEq(_&:@:6 X%>槭_'wrKw\uλ}n2@P+pp(M0~ZS5?:4ZEὐL DS`i4EAQ  }v9@,Ȑzw !*6Ea!pr>/>$ k47]k{S v p IEvĎIXhi@%`=:&Ɉ(P %iJq11 @ @abLHhGQ3ߚM D/w@&b H[jFnѴ|J96Mu6ӔX~|,w᮰T" NȐԛkuuu#[毨gwax'L ɘihX*a;;jP(baohh =~4~@1)TTAŠh(&BA$ Q0 }hSHHoO2N-yHK'q`?"@;~D .t=Ӏv!?G `.!CTޥ;S8M FR8oOd ?PI)(cpJ@3x '!@I] r`) H(pD,OF_$`waid.d d_+w|ߛDuai%#`m@OD ,I7`W,x 29!M!(3QBFǹԿuλCP TC JBpQ[~zK>!ě@PCF`ih@ fp@lz_ B1)x= H0lM94`V O行qJԖ2BF+! F_^ M~7Ks:b94KY`|Pi M#@4!Ma00P R ILF @: HgYR`l>2ѦNƟXdCfSAu {i.¥hM4 BPѱ#H%KL! œx&qb>?$2>!B 6ʀ41%%O 0A&0 mj"@4%*VN^ v#}ah48 qKDp 5%PRH@1=,K0h媉-OpM;! nB0Di(KQ(5P '.,Ry.2O,'ДC#vf.X 8oL(GE| Ruyzk0 XB&x"X[ Y D`br J>@ /s~* R=0f&!L04 O%7{R3?wIey?OB2;1`0H"~v7UDO @D} -$hi`>l35b>oO " vλ!IJQ #+-# tF2d4E[sb7L=ŞQ]L$ gK$!02~J@W "Y8Y<(RN|5ko$K+8"(D 8 ̄vdOWCIB$$Hq% $q8#ADuܙ TROu[bK/ 0y )d9 W#[@8`/?kJlL >SV@UPؒ 䏢Ə]BRZz_2P߁䡓JIX7@M:Iƺ]nM5}AB5( b5ސ w}P 3_TT)ut"b5 {2h`ý!{MJ{{]vBORz~cy @'Tpۂ8'f}c-`coxxq@3;:Ҙ@ЍH;S#n!D`#"B?jpj˪ @/}ی[@ݠe =gHzP [)A;'>=p "GD:V@ro4׎P0ypq޼eꞈgr׾g{p+݂9OjG"!qM$@ uW!/ߝ?F 4w ]]Gq?7LEb+(!?{ !? `.!C 9-'7< ބ= yfUJyy0AĦ-W|랈y ?  sf4+A`OG#UbA8\jӊ7#?3B((|8i) ŠhF4%d e#( x0T23E @,榮#^jj#U%RхCxr%8d1̭p:K=2gIipg+Fw}QzjI2|:<*M5c#HB9ƉSQݍ +M^f<>Jopi.]bI`+@z7.P,vYF B ^ @Jus43}9oJ+V'JS$ ,_T n'n@0po0ѪIN{Z#!թT)x>C2"ّ<, B\\$ 5#J! aYQ%Bo8|ЩbjK. )yGKkέHhfpӪ{;rj )~(>@p1G44].M xA4S~?ěMo@0vB>Gu T@P;d{` "!Z^脍Ew`xW9ɱC=z4,wh9, M=YR97ZPIYHuAXg#AdC2Mc!; "! է5Y)sY0ӋY+=8HE zdČ,oW0cj{bޟ%zk%רFX*$ CWjYnVK34=H P@YxAv.pz9`E`BUNΏ e;% MZukB3kC!Χ-Lbw 4% "!ݼk9 œ{Ngcg""2Zz 뙶`܏D1Q)IiܟtG {VN{!NHc2 A!A{Z X[s).p^)[S$M|"ޖWC5NaR ATͣ`:"#D!D;!CrSsYĥYd zyH7!/=n)/"s&\""cIP yb7sL]trD] k HʵFz 5-w%*."gA1)9-Ll&l\{5h)o~8VTu )9%p@ Z I 5ª ֗p# Kx;m$Zп_?!1=(S.THB-Lى "e|@~{Ik{(wp%t@:6$^|xJ;)u1O*{,x}N><'Uۿ@4 940F~ YF)/ = N}2j8R Bx/,<# bAHW|(5깆sOHA'52J1 4 D Re`% WJ ? +y蒰i%+ *n)߃n .[s!٩ub:6a:U̳b0c.q*I hpI$;P<-MDmw@x4څWLyd5^Ժhچ]|깭  FrHh!? `.1C=CN0n/@($FF@(iМ GmDGd]RP^ef>ꏢ;rƬ '/~k>$lZݦvB"TTȑ"PL0`C@- % 0ᅁ@?cA &@X`;!,Y 1$,7 ,PI #䘇2FX&0cI $`41!2Ii- A"xjX3Mxe zčן*!l\B;c~%b:7N'|acsMsB|A`%&>7j]pSSMJDҸi040R(4}r$# RnM$+Xn^!`+`Igi{/x* ;ZDCؽ HIH P$QC)uwЌV9hGC8 qDzV 0Nr~H Ħd҂@F&%r׆91evJs%,5$}ߕE@)!`Q#C5P@^~W@{.O$ =jB8')SDG* U'UWIVuI!BrZ'o)Oq6'p4#bQM_u%)2RBJp@`pߓb(zI+!@p(%Htw2I wm Ad `o[ťꞹ֪N {J5T: p2tl$K(8h$~ {Rp_Dc \4ey'oyBP ̡xm_D3`g!dp(J@Hh4X d"$h94B!%JpH鍋F @gpzDsoU<UgUjjy k00w|0 18Aj ¢ ( CS})ܔ3t/;$WN5hx€lQAجfx\_Fj$!@ D6(aJX#41Z9hA ڍ ƀ{* M ` `C~ @51 gh͖- HOHpV 2vY_\_0 SES}П+?֪pt8uLVZh{EHЏm"`*)x}B3w=땈g)QB$@y-D!槺Z/6|3RQ]9(8p'pm)E}$̤c/_hh}B0+!"׷!% ڙ'8, $4Z0\!?G `.!Cv`xh8M$`԰ZVn8`}PMՄaK3,,  З1_30כāZl]DI9De hĒp鮈oI7SɺއXrM/*`^`VCoZz$k씅!քBApq뒃DQ >Kؚ!Q75-7$QD p"P bC%!X|4 YI/e[⒄'>TMjbK4)| ␉({oBǽ}C{J0"0#Aj@Vjhcri~Nm{f J Hii΢B3B>!$G`4&4~@%YiH*vRm JX rԢAtpn ? AR}W 82XԿ4>nCO!FC9k[qO- !B2K jf*>MǂXp!.h\L-A ax^&d ì:Q=;(PyP[A=ڄÉ40kt1O`8X?` sx !Cַ&|C)ÿdžWȳTad+`I;'cƯANgn?DXP FjDKlڀ3px?w41` #YFBQ^Q4BւOnґ_̹p̛ܜ(MfXCriNsAз-S5C  %#97%)NeɺY2Ku)浾;"đm_DT!gH@(v`OpA'O`Cx QFcTJy66潌Z֧jM 쵥\&ƹ}PI8ˍ!WkX2^H^G1B"}3;Lc9!dB(Ϋ_mƻB"pQxy \8w$}`-F,DAM|!,i!!y-D!.{;-Ta&") I}#SeQ) FE_{,:Kp4BCW%F{Å$K1/ _cSsH([<a9R@08@;+ A2`\E}$,.ou9,/PZl0_ #h_d`{#Zl`Jc-񧃇ΉC"6MtCSÅ1Ն:68ä:,kg( `J,M.E'5=yzC?D9)ya]\>KK>E@0Jy.du.X&=^dr8JS/NIڈa~( ",3Ǵ5bOҺf! Z S`B,>%a=5|0A42.$3Dy"$z/7JAXq3I#X``F͙>Hfbk#浞L#5'HKaAin_   a%hD0RiIaj )#:@gXd$PB|^0 `F廀nmf0tofXޞ'uE\I3/`:E4夋=-aT !d~>Ļ/wB$ 4n'LƁB!A{ @ !AAՏ;7#l-2R 7IdJ8ܰ``D4DCADm *5UqquםFc>2b;T+-JJ5EUJ֔Q:bTI"ND2;?k"(VnƖ!xPpRm2ZΕ3mY ̮-7AD3 S d2jݎ6ӂy qٗ VV6\vS,\K$TmM=*Ͷb+(bȊRY3)Y;;!X,S`TTIM7+cSU@jSOŅL"QGlD)bUej"a2lTQZlW IkθbS24334HIDQVe^uq}yeȓRؒ7EIgrrd*D)B\ci%yjiTn5^diițZ]eYqhJ[v&R#-Y^l<-Fnӝ!6j:pk8M"qHBR&y y8[ m672ivXd:q+KCjOuE) ƣf!xNtRCS&Ѻ P.uZ`:&MaG#0ȶEB.9 HVD`S#33#7L@MEei֝u`u_ur}fͩ;)3)R mUf-e83VQؤEfn1Z jm\qUvG_G^Lm(ۭ[4e?vU[g$5U$d"5Q~BVc!.Jl6N(di9;M,X$r,qk[Nݥ &u;B8U16e#JRʃu8b"HuhԁWB"IcCeQ J\a7DBd-]zN)jy⍃}hRQ(M"혣1RW/Pj؜m rJJnOFMY_bbh+r>Zک6r-q͸cj.K^K9,Bl)njoaJDrzLZn4`c%DTDD)@MFYu u~\y2L:F!&H4vv#GwCJ C%8rq{NFy+urx{zXr ֓pPX,22 @jB]6Q$Tnft*5hN̡,aʒ.p>cPqh%%sQw*o:+V4;pz7phn[3XKeRm[Je#ƌR tDä[P+vZ86GpkY09Np+o,J}qbT$333GI@*EEQqur_}X9"v\"ŶdQBRRML(9eYR,Zq\S*y 8d(EVRn?o^J1@:6~f25hNx`j rF̀zF2iIO$y`kuSh'.: X75 sCIkLrBjHnl%舆C%2,1-aK QYl9|<זsȥ3ad<k-D.abxJ̱`! xp ʹ#! MuF04 ټ?@!B+{:BcCBcA~A7Tw05Hu7)UTG;'$c} RF># 2*L &4ɀ  !XJ_RJi^dmA\0  PWD UV &T $e%&0($f@ J@Ƅd Ia'ѐY])H#ါ Jq W(4h( Ĥ<" bb P $4gd%h&HX~[edAI,RJ,pHeZF~!M@!}=%EQc7cӿ<BrhW )gZjpzi6]s @< P D PC)[~D !R BsK(4%Аݺph Qax?79C` !O)Fh4`Pr, )| 0`b`H @bYXRX05x0eܲ`gJ>$B b` TX>p0ho BW^J\_UWW:a*B_!G jDa[ b>>cI_#9j%L %rD#j C F@Tŕ84  q(G4iL  CcKxoڷF5|YR=zêwB\]T* +ܐGmy>,0JI`aKx:hATd߆ ٳ 7߀ @I=I9= H 0HHag3 ƀ 5"OҾP@E( SMnUg AP ɪnRi/TW&"Ta@4``! d"!bIT0Ph`nYEN p`10 k0& @` @ @?|$_H!$L->.P@b4H@0 B`!,M,Ad00MIX4'@0a0h)(Ĭ7JHa`<%H >H`iD)ƆYI;ɤ,@љE rjsB@d4Q!IAr+O?U ;T8|Q :%qA{ &gbxš.4uI7yWꯞ*+lx0dvAr`!JNo, pHɥ$`CQ 3o į!p_m̍;dl4F!} 'T]Ez9W*pvUڹU &,5 N!A, `.!C FGK&MaEJZr qeHx/i{>fNOz#=mVZHҧA슺2Nu)Ujt H$꺗U5T]dTM2.M@ܘe&CR$RH ܲ@R`Vj8!ЌJ,z1(HaoHOzBK,b0@I B0 ɿLS d'0?0ހJJHnwJKF jmhCgF"I.` !C+8 POc`5Eevsw9Hpp> #K tCBwFJ ۛSJK/ĭCM @`%?)=<k'$a';"Q+!aJwSW {WΠc WAHԿ#> /7@H œ 0 i)%AHIHAJ'" g+Ԃ &Z@H5kIK:N,xRDW G /aӥDByZ|" ᏉKa(!An^P0c սǺӀ UIU]}UTs haD.LO;H;&pҔw@3{hH&%rX 0zGh00X0?JFiNt^O-;dnkm2 (n2Tf(Pg 5wjCKI+s21@?HHrgwwYUZ]sp JZϹ-dZ   (A'& JnLI`0:m˒> N @CQk=*hR|h l[ ޓg3-dD=PE10h//lzѾ<d;xZ &wE3F_]oa'UIU]u8 {J6}#v"姰r2aX1@ Bx$4gX Z3`Zla5#׸gH ė\! +oxCk&?ﲉ[7nNm@N`.qTBjP*((|PYE Ɉ{t=o|`YD1h %Dϸ#~H<"Zx@ߛugTU@t54EtBr>GM'cT #@P9€lQ^0ĕ|QȺ3}S_@@텠ڠV@"@ PIƀ 8ejՅuҌg 2kjz!%ƟD2 Vlflnd4 )8I\`he8ȰPXpj8.kp. P:00&pG%ĔD@Hp;y-1[-tDHj>Lb~Iuuгq%$eshg7)kqʈ&flo\h'`N2oYmDMt<ӝ1\,:D4a>8n=| Y s(/ȋE&io0QS 4ھo' p %C2ҜID#=$i@i]_qن ,>WM͆fIEvHoVEHwc@y87Iɼ;B &:MnlɼDɟdX*tJ*߸(h44PO1yK$9bV]궬H2.hHc| ZӌkbzQKkûv $in*uN3o`+_AP}4 }C Op1e$GAH=(q`M4*`7-\@{!hݭ Lո8Pb6  c@iN3x#ft2m̃ -;q %K3G$0!"PQ}Iy'=B q7 uF$n"Y.$ɍވd֔@C'35@ ]Z|<2x5x5wEZGrB]nA@2JgvWhQCxFY@[wAܑJ<0[Z{n8B PTaN_oN2ul#鵽PE"wSQ/%#}7C  >!@%qS:o`ܚOShfA q[pM,].gU3K0RR0dp/h?P,}1xx"gA;beRaW/ M &C{2}7ݏ A88 GODp`Z*R4ΐ@:H@[ۧJ@ې,Jp%xVJ[3 "bD2$SX||ms2$l]߂Zzk~4MWy,H& D0ZSS& ͪͿ&Үp!lP!ϑq{}k!FZSD:o M(#EY}(,vbPD6 Hf5.c2Rr9~)9]iCdW$) :PQ3!FD?,fJ00DM$o6J@s;БiQD74~,O=e`El`^RdMJ6 !/"kBAJ5#u4$L$z^ူ ~7e!ASG `.1EDC! (>(xRG⣥?%50yTDB4{C3 wD=vZb>! ٌ` )jQ06w: ;x( _jAh%6Au?wݡzHaqY D2jYj-=)E P)scMmy^MޜRF\芇!7}`,D6.쳅8 `F]$ kM2`]1a:HF~.i4P!bjIR1`;43R41'\C|̘PRPM5#~,a%H$ I#$ Yx H}`&!3!) )%41 NJ@H7 HxѺ@WUsWTuO3zsڮCGI0R^z;Q#y&epj9\/@t@b0Ӷ?{=_# , ?h? U -~4 Zv믧uؗtp7r- QT}J%5nUMXw5tLu 2,oՊ8¾ H膂`jzK&ha0X!}4ɼ%#pf ,$2(,i+rK0RA($H&Xb@ 7 &$@CRY$j J Y@AZ:x@N4E$`h $#h,2_䆌*@`(dri  \M$$I%)頗Τ H1XR_(4Y$> {Lpf@7_ B Z o} /O%pq&)d0dI<"MZjW@54ݫkD-X I44475%8 ad< |DjIY٠9An-qy]$۟s B3|wZ_5GZǿY`7GN9k@h03:Ni~T$}ۓU3TU_UMguSWj$2;(Rb~Wj(8=(ҁ4`"`?"K6C`I .ܔ#W&h 04 ! FTn7cR*H͙fЈ %8'™y `P̃uUժu"U8ǹ7ֹus!8@(Y`\j@4DB"$%b ]MI JpȄ<DzP@)$E4#!L͉ h Q 4ԁ'kOEB&rnj@tKߔQeX'}` F7/ J{k~D8> A30e,xA/{'¦4sr* [꾰Є\j&T91!Af{ @ !AgcTУ*WSGl9#VdJHFMSZ!"UC$i!&!!/iYZцU,eQRN:bJ"%>9 ֙Dhp]c#O # pZpMG9S9%$z˪NRFZ44cqTe[nmswTdN5jDA'ҮΖJVE5wG`z<눷dQ]WEbS3322FEjEDU\eiqa~]ןq URrhfЎ OE3{3{c 3 jw7(\YPchfmG5"F\-*RF8\k &JGck9d#DmĂI+4 'hzʈFZqDVRDʃ@be$3336mj)=TQf]mzqWLgf%uQHrRMG#rɕy&$܍*.Enθ2<20⩫uy;M1,r6qȁu$; R̉n$cy7COq%`ѐ=Vю&Q*ySqySHHM4RiH#%ISP\t⸚h&.5"&Ij&6ۉH29%Q0LBi%D4š/Zkܜiɕ#oW_mNM J2ʂ{IQ8`S$TDDHekD AD]3Yae֛i޿("I+Te. 3$+0"sKb&]؈^X,ȼ=9Q)QS7VkƜU\W"F4k.UEl)2Nsi{B9Zd4 Bhi0#ls9ih k'aKea&v3" 1*5l68`/mp[MhJB^f#bS33C24mÌ(EVW]uYi}`}ǰ \&PNt&R'S6nѩQYFV(*JH) .Sha* W[j&Q2$pkГL"a y*4Gc} 'Zٖjd[Q4UXZ oI{RFm]* ZBMVܒ4u;N"'lqӲJAFIۮ]vlMeiR!C%-rrJD.c㜎,,( jEfM6ۉӍ/ԝ Uu * JHh p4P$~ @.)%?' d? `T Cwh`h Ie%' Df2Z( QXcC}2RY/tB| h` !ut !%욂a1/>7n9P6 |Ftg; aGQ#>AE -M0 &MKG|@PC &0!7C0nNZB)%'?1d-Rɒ&Z]%`n~-fIGOS B9Ayeڰ3 LVĮ;2 vuih A4ɁiE;7x ur-~Y8TI (P^ZS?>T-=)DrtcaX_deR3Q >1z1C6xkV%xɭJ_IyЎA@KTI PPa_=){r V֩lIT#%y81$u+05b:@p'$T P]ZTN C% "'Gm+0 JCU(\M JXn$ ),7(j@& O>]WpD3a'$Z vJY4q i@"I@#Q %3?# Hp$JCPfMD @L!!dЍD06P_G1Mo!Xb万ubWAPZQ,$ Pi/, 8r)@=D'{tjz5=vzІ"Y *}=D"@!DE!9xJFZ( qu%4G>IIP7֭}]tmftL% -0C:>ar C ќ*q twK.܀<4eh1we_; $5n9ݕtD _f9緔^@ ~db4*W$+M 'R)rI0tPх+dT2k@/w>.B~cVujr ΰ'9ݭ "!%4m%ÜP .=jM;+Cu%awEs^P;]y7R($fR%Z "!ݭTznx*URg0soD|rz2wq2D4D2-{/d )uѸ*9fԀ!sU%9s׷"!ȁؐtV[xZ4TJ20#;,@\~SdP]dxtbSYbc3ciS1hr1qa xE51|W/ %n" %Ji-pX˛&l>p?74z{hZHyKf8' s5l]SrCuafۘ)I6P_ A[0XEh E$3p0D1 )!΂8xOFMŋgAHZ A $`T Cp@ X%Pr{^k-ůF 3JrHB `CC$^/#IIiI!| 4}ӉIPj0sK` \hLW B=ǁXn)BM.yf)5I卆2ICI.V˻RY<#  Z m̷@!GkSV>Z{5`$休jvISݨύKzLej1 ! Bt*E|d)EMNBI~ 1=V^jCPhw" I$= ccXy^dT;<mCl?{YhO a^{d{`/R !Fp!G+^rZocZ82*j$@0zF/ ehfvI2Q ^ NT؀ !E[O%ZBx\%SkX'a$Q|Pb@t!RW{9&($IYv?Ћ<5!`d+gakM 9. fֵ4NnNN0%#0ߜc P+ P.\0D"ier{I@v%/`[~R 8a4Dj,l6כo%i^  #~BJ aC<%S&"K.芳n2Fq= $x!A `.1EEDtH%˻4>jy Np #!Fk^ݥ;Sn[@ rzdIՁ[_H~;whP vkLl+ `턋X`5zsm #!FkZܴ9mƴeJͷ0χ8(PDZVC$7 R Lt;I#!F{ZNz޽}mmB1fBD2[Yfm8jы-%9 /Do@!r4@0b7 3~ ?df?  ;| & Q4Y_bvw g[s`nsGTq@Xx8qPQiF+=04 v,ahB}e=@.f0 0@`CJ@0j_/?wۉ;RxĄb C ΄ws^{ՀdC|XY(ft/2s51&$3 倛 c?`B` vj!R\+hQAT-vCVCm!0P& ^ J,%g~ K:jw#Cߓx=`@P+4PB|3MBSK e` Pb@tZ Sj^|T_o)μ{/O;Gy=Muw֔KͪAG!a-i4",FxHRO;4",Ҕ#e@b -&C"fB::JC +o-x]%m9JS<.PE0:~hh\$~uv⿹QBpݒJ,nҎ4UG!+rs%gRH`TXxH[%NN2]-"H@ Na0 `;!Z2pj@NQD8JCSlž(=?-?2~;BRr_V?yL cp[`aKBwnvޠIoo{(da2``]Rt`@' 4-Z (ﹴ4vqKxNhbbWiy;5GDžɧϜX ~}w} 4Ayڼ7yڼgxz<K/I(TR,=/Hyd)KQGi=RC܄a AHx"V7h:===j$bM(1rO?F?Y@r K K!AG `.N9pv6 @i%! ~J)͎?L& djI5<0sG1 P* Z[ÎēIZRZzz #G\(L۶2΀( _!01yO먰6K%7knϸ@SBF=bu>o(]lܳ%kh/%Qs91ZGXx<w=|FC^~CMikA6+# mjh6yR-7Y}l;XY~y >i?s/7-LJˮIx&\б!G w!7<i/sDQ@qN` QA80L!8P8} tC,/dJK)bdhhh`fHF7@(!0gwg#(fBR_IY#f;04{/JCC`Jo[/Xwa}iH gn<| c`}A@Y'ܤ/kHjv3]A>N]B6sI,q>98 BǏ5#|7?-G#FnJE]["l7xY?>ԍ3/ϦHOK o>#k0b<.iM"kY1 h _O?h0w:%9 Wԇ?QY8?wr(8ۋky~c{oǞ3灺ԟ yvXx]}/p @?Qϥfiף }7p0۬cqdMhޔ~(tq}=w d`' @3!Dpы{pߐ/z@<xF@ZrBPJK:,#$bk f9(B(lyAW(W_Z ݺ```hhfi@)!*lV~s+T} >ݪM؃zB`jK Ii'Wp4!:<yrrmTk<9dt'Y?? G~x?ɳߚG~z|!eލǑx?'aO'z,soE 4<:nc\ ~WOc p7?Z9bXNHHIuޟ?=OD& ~cpw?>E#~ߑ,,,wwl$  EpX CP3:~ pz9>-f<׀@ @N  ( e|-%2.Ԛ$ ͻX}Gt,d҈Cp dBHﳷgdDIi>Vqˆ7I&[ 5y`tb KݾS;ox,De+^q\L(1//q~!A{ `.sKc' %[VzŊgnd/7 /r_W# \:@~ %#a _d r,6?7anmx;>p͌#xd#>;wznl=b<]?8p;H1W<ԃ?0~w ;OO"`O@׳4~OXqagO܎}iȭp;=w!pGG'[5dx}.E?hH'ORS~6ߏ_rxv"M\N/ 9Gvw?,['`9Oo@LOFn!}Uqh?#u|' hf=CzMؕӷ@!(#6T'%g溇wH:4`d;$?drNB(5 WrP<$. H‹=wq['ϛ~.]<}IO$_(M=,;݀2XN^Ow6 >l 'N-'hkOǛ<_Kfo'{]x|Fxdw]ih ȴp]r9냻c h$-$s8[ <,-qXzw3fO 'ȣz`#;*"4||F~<8 z?^M5azw<|t|"<~_ӿ ?x;Gt< C<3񆄺瑀O џ`z= 8A' 7Ҝ̄tm0QYҟf@Tɀ0%Idaoٶky#@u(`@h(C&oտV~asn?Ғgv,` `0 NNNפksr+tO_Zـ9_7s'O~24;N_o鏽0 @4Y  0._~2:? ,WXz2ⳲOHo&&jbv?RrBHD^nA84I0Yi~sZr ` (Q0zB6&B۰:ˀ{ 檢"i@TJ8^  30d<9ϲ߫>p@hY0 *XhhjsO_GM' BGxjbpbzZsӇy7x<:j׹Fe_T+؍sD? @=yR܋qt0fiK%C#I _F J@ &H&t`LWJ0/4 7(rR{%0D2 Nn]l rpf`*x4ܞX!}8wVw-oLnab BG4 o)8T@ P-w(yx(FBZ  ЏZE TtV9,}kP 2io!A٭ @ !C0&J{Kn8vWM8iJh)Xktsr<ުia]~4t#y6bT$4#$Fm,iƙaEu}̨Z+D)IS ^V[VVD m"w2Qu -9Jqik3~JrvZc`{P*:Adou280E׋$mSFJr Bq%M5D=ѴY2*2VhTcb⪣e &]Ϛ 8PnTkjBM(ܵTRh1RUJy4cnMU5!Iv`kMD|\+%q1#DA!Tj*U^H\S;mȧI% irʡ%wkZѿ#Ĕ³Jd'cVFi[Kǵt˚6+}KV rVC8aj3z9o3]OfqY֮Xi$EbT4D"3FjC(5X]euZy֟↘qmn~zҙ $yN hd&+ږԍ%tҌMJ]b'XQT;rOT{=j-؊n}Ŷ8+r53 UVG*g qWbnXdC(qԨim$_7֬ԣň> յf7Z8vBYJ.ĄM1Umtd: ەjچ vRŠ* HD%ے^#ęP#ḱw(ZGA7\`c4D"DԈ 4UmVYZqZzu螂 Nl[.:"S{#4!,nL$ӒL@:9I5HecdCUmݔF[Q{J~ScbSl ݱg< db̽oG %tMCRYZ4ٓ+$H̸"Q19e$<4-;jfGZ:$-A-T&b[qH{s BqWU9a:ZU$*)-ƭ8m=W%ԯ4mi``U3D3"Dh+TSAtTavr]mrv'{a潠"em+CDJ>SuRqf}Qx@9nAHI3a$}E}%$pc.>ݢ`^d-s70bwx3x<]}'{ xw,|~x|l\>l~L|s=`FdyO=|gw{.`A"hAJR6n`&fhBLA MGAhN}qȘah//⽐ J%M(ΜpԔ8{QzP>@ HeVi!l2pdL;Zy/4 1Dd#?w;wp-,KV|Vidl b Ђ94Ah1%9xE%DxO?#`M&i5FvID@1i`'ZO/v3H1va0ć^+Aǧ9#\ :Dɥ-Ia<8X4B01ΝQ5v]@TdRBRA,>:`h::Kt^N'w݉״@}s. ٺ@ @/;{_ቅ43~dM;' C W{(۬C ,T iw| _מi-f- |IB3) sq>+Eђ>g =(z;=y-hz<.G O꾓?Ooo~I=>=𧜝>֟9<qyqOgOO`{?-wߢșؼZPKg`aD±Elv4|@2\JR-G{_j 0; C+&~@jw^~~!.Кb5&[}ۿ[|){di0 NNo|Ӏ<, o|XzysՀg J(Q 9Eӛ$2c \y:^Pf~5B H` 7zIIA@P47R:D_18n $prX≧'{` ZCJO  5`btXadpw}"C:n} +5 XG|}!;9l6w:԰ }^vawBj;x 4*P.)Cyn~<)9IE*p- Jq&&`Na6%9A+nxLt191(0iIϽEЄM-/V@P9-|,q=L!%'r-07@0TIN8 /-Zi, 1{}ğyT}$ W `ܔw^?|;mueb00Ёh Y/2ϰ]=, JR `?w<`A. C!3gt D!qǏ φ<%$y? @ @7)7Nx0"Ȕ)C?Nq$"P3;'<;'8 (p#*wwkdbeNrx S{okj*sE2 O>@>1<>>x\~p"n i@p@1B``sN y8d 4C8i 9|yX 0p40nXh`` J P5 &P2h@?<&ˀhP%va5Y9/[:X7 gXy<"\Vj  < @N(LHadҒ Q(1mbJva1BZJ@L0T:IA0JR_d~5@rYu jaIyMI׿ u DR3>!>( j ɀT ttjP5(Z~$Ę Th@& N)&H#sV'0݃ OCԵ;B--g7&` x`+MLT#L`/0XX 3/ ВrGZ~[Bae%}'>hn&M`ώ@424`&~Lq3%)  =hOl ?}R_FHr`ĎH(0 t$?ca{Ǐ?ϗ3 nCW/Hg!+kIV$r|q)HW?K~{?I~S{/BA+$3ؕN ƒ;YOL`:aܦ%rhЂS(%>0 _ ( ش't%0AEI5%9(nB )AElů Ǭ@{ͯ  !5# NoW?eԠҀba@7 $3}X%ܠ*^L6 f_ή &;H`hgϝ_}qi;Z W%6vtupIT $ܱ~5CLQX4oHo&9mkF) &|J),ۘmcPV#9c;~ɤ4L<3t G;:%U*n( Q4bSH%Rwn/Yɀ?@\1󥟯 P1&RV|QJ?̻d *d ;An{ @Rl[3cs%qRoR L) ͟!CG `.!EaQ_pi $bCr%%-Y?ɮm ИL2@`N/7M_J8rϔ^^ $+~R  jJaFϹ| gGAiG|{CXuפ Ln2voj +8jR_80gOCYzHY{!=7R17]-NO!7WaPW퐎='>lcVrY/m p*^LA0B!ky( /tIlޥl3C&@b~:v1P!Yf((3|F"@28XrK!Z[X0/cf p8T#0IXz |Q,$=ē?_ygb4sMOt/pw )94P}8_&` 01w1[.Dr2V{_a>nF`0=ѥ݃ ?F@(ZCSQH#0x-,70!)rRh(@+]L\7!ݛc_hJE`XHF oh%F ;`Lhgd4w nfl8+RMS m.l8r" :ޮcBIC15W!s4} QvݒXh[BSx! U0| 8/BiWÂ`K0I,$# ¿+O#rԽtEA_;[ ֞¹XΏyX#s/,==Ε'MmҾKk0] $}^+mwzkf [ |//тH0`p|Eym*taI3ƒ{.ڟ' %@#X%@y%8[MO38 %xF" "tj'3s Zq- l ~m#9֒_"ݻ/@y0!A;߃ &ixV"S=5.F<>2 'N3/*jB.q owٞcBvj ]n|JFFdѿQ F1PB[:Ck1G i#$qA<'@.Ư]10 A z ?Qc.4@PqQI慁!rv1@f+S4VWRdV/0vĩd[cw2=2P.Ix9$8@- %N31H鳦Jk#e}<$-|Z=Kipw\<@ ]$p-I""NA b{BmT XTa AC!X4^Bo6%}p:0Hp CN>`7JwI `OvAlOA@$w3Q0pB0 0$`f!$aMc:vD\7L`YZNV 9&p]"Rˈ|\kِXpĄ_vDB%w11wt6)SOU{0~h p'}z?W>]S wjq骖x㛇дwy TKtRgkn5huU_p)we/@~T9#zGv pwII*/כ ,`>ϐ/@($ hGet膰Jl:&Q l<> w_ph# X IT` @_W }2a"ղgkg}`ܵPl1/ƚ]R B) !C&{ `.1EE<&rr\r갎GQ}bIj o<@ńoOpl) IqvM AMҕA]Ro|!p}!URju%AqބkR}]7)̾ͯkk6BS@=B6^ jmtBwC=y$e?`Ҥ(09pfCweZ/MMS@|pOHtDo=f CܔiH! =|=)ICbg/18>;vCrq(ԧv @ +[?p !͢dP|l$ t.ľ1A‚2pJIRX!{ٓ٭~jK pN>} țݩlZo2KS87v@@91/<4 _vPyB1/% _a,u@<ŀGn^yI9ϚXp. Ҡ j&BzGihx #hI,%*"@Dp`o(蛏pRi d7B@Chcꀻo-#H)N#kИ4G&K f J9 {*W/eoZ@ ٭I0٧ >5-t (+ uuz5dnL"ݣs/t" t?-`62,d ?,*PH"}OB~\}"Q` X{?4lg2?ĂЪp^,E n-?$D`oD4ȥ)6clbK!׳a+DƵ%.Us[|#!|18)kٴj$XQˁ A"m%I"~eT'b'oh?>8:@a!_18'聎݉<^;̀D;9a~ [;+5Dg%ME2B߻(b! 06%"` B9=#ҀcѰ?%䀟 C{"m7PtR!{b7ݿ'q}lЗc 'Є`#= J_ v@m`̎ Jz:kF#Bx1![i!D nؓjY<pKoǹ -P5dݓXww^"͜^Z{ svFSP!)Ap`f8d `96- HO$eD<3u?$4l+Fܮ0l40C$?xH%(J̎^4w/NgϺǹǺb`(C!i{ B? FII)'9  YQ $’3, ;? JϤd ijzURz6bL620%r JjO,D!{h/F'DT f<x@ [\}8 0*ڤuWj]w˺˺urB&d܈?^Bq4 pVPQ/w-"IJ β82CB2rJ0KЉ@ʲ%bk[J׺d~*G>F˭rB>+QdI0-uUu&D &L&EZEPtɑuZjcUPew<'lLjIɥ9  J@98)@0 ,Dha1 `Y44L( i@7JK ,R!C9 @ !C-7&[T 9EUc]3tjAXv$]QUU4QBFUIG3S-kP;!Ic:7^Wө>]Rkm1IEj 8G!)bmpfLkq!j!nR $kJ5miEiIZ Z ާ q`PeԍDXsPk-4C!&F3h<' RBJuyӜG -;b&t]6mgB+G0FR!6bS$DD3HLLq"E$EEMuiFYV]֙qqubJ٭iA[ٔug-KL smcaQjJe$nqPTdTܔ(]nTnpB,$m:ӮiVU+h?g*I#yrK\"+S8EKqb513N*&[ijЉ$]YLں-Fir0eʯ67$f!k!ϟr t,(TKLNhƜkyL6e3<F$ }MG0QbeM3-fe%PR`T34##6ۍAPaiy\eǟ)DWjjM@\%RB R=2R-+{ETV1ade*AI0q.ZЂ2K-N`5RY#`Mn$u=sFj}PeLiST *ShggUDI1&1VΡ&RսMmFQ(4H,&0I[ިn9m)wyw-&J)1FӍG $nGe1*NI$wPIReE43j^"-o\ uE,bd$4##8ꪢ9DSI4ai]mmujXv+ ȔZA&&kR.CQ+d{Sn8NiV'<8tRza|iF-mZ6sR89M7̈́i:ÖF ~aP:Hzm,7fT5%R M"ꨮ(l52 JBW_!,*il;*ʭ vLOH8>eն Kհk@A l.tK Y/idG8\1i+,+zQ/ˣp`T3C338I5SYei\mw511.h p;ƨe"~I)]j8AaNجjYe&9|hʱoC9#8H]D~)^c 5۲4FA%Mu'eu]k:mˈ%BmyvӲ%3ьI𥱾-7b*̪Y$Z҆6&lM+NtU~)rNVQ;Q1)cI\EJ")*F#ʢ920j%S4(t.E%j2# Tn]T GbT3DC36lIEeiy^LaJ s^mdj7pD5qcZ͢FCDK2 ps@Hzґ%]S%M:ԹuR 2nFZ5K0sѴEb.Vn*0d^a@-{N:-Y: r+Jce"nLvQp&kq2܊VR¿,IH*@"j #Jv`7uKb\d%a c\VQhzc )ۤȚ`P$kQ&*LT)j@`T33E3FmM5a[]y u APl"e^6UT;*oXTc 2e6M[QjucV҉y5m7cj(F7Ptԕ֕u3P4w~MJ 3QgpG(IѕjQvWV]0ebڲkh1$M"6!CL `.KACK Đ&4I@D0PHH"Ӓɗ(@@< `%<- ҟzN,'j"Xi1A,GU]]W*t!I M]eAy5"ɓ'"o5&MD @`@4`T TRy,4Ҍ $nK@a4tJHInH BBB@ +I&$Ie QiGO!9UI2$Ap"@f_A( `Д! DA4d2XcBxѣ@-(HH)\P0|!$bH){jBI48?I`+?GHѼH<P 0& HG,#$PjI)KIiGJ_t/%FY j 䈴QDѡ% }0uΤ;S Q^mT!ڢM\m11pHJr20ޟ#LtM$  5P` XI7#BP }) d$+O (M (&KNQeF B!3 pu'8uQC%l(տ>@#pgB]cJ'z zU'&OWr${&E` 5'B NIr~x ;DWd'L* !nʰ@ 5!Űifܠ'=S7`vtv)ŨC@b %!!^L kK3[t=*2#[f'06 H:@r_3 @&>/,=@O BۆR7@' \Y}=!Id0:;¿Y(l2@$<bV[81ވq-ϝXH|)Df,"^!50 FH\1) R@aS: YWUݩ!Z@jK&@`J0Gŕ/ ZX&RC!,5)HH)>405$ϒj[`>Gv# JtnL d1hkO(MNA%O_h( IXO@F?t =0cɠ# H'pP(Q,I`L( dy0+ C( ^HX ILHf^^ț`Q8?ϨPQ4/jtyD $;^xL&+73FoX {]gUaSߔ@t:>` hiHFH/_̛& &vQ(AMp?a& <))(pY{[FN9רD&Wa&ѕ|Pp5OnHYa?F FOFo·^\U1 @S@Sa4B>SPeeQyO9r)vZ> Aj :Wި/{:@\r8N:@YFj^8a|^< /}P xtE<[@UB3 Ekcfm՜v@6:;` '11v.?Cqr"v~.@Q{wwO(|H?> nrd.$%x@4 `- x7<6CA74 DIO7]V'ʎI!z^2  ymdcĈ!ǎ@~뜕 B) |ſ0NX ; " 㷈i삐F ^/%#3cs>4Ödf $+dT/is/+ݝHpi;_s @d a ~!ݍ%6_!F\-; f`>P#[@! Cic4F3-qanh K4Z{armă A|zAF j0=k[F!ǟu}w b=߻࿃SF]bF{(K2Cj ԦahROiMyo$HP{>#oē+#ݖofmLINMxNpwbXw3-Ӓ%$^wfWhh~J ??dhJ"I_$Z9Icی$vFb]_ob:hn %ӊp_ a52.0-n%:m,yww 'n]Ý1 Pٝ&0S_p@ je.u0c aקMb9-.d0c ?$zry%\o@A>Mm(v`h(@y;S̓/ ;E{dwK~w+=(TDh A0 ɻtd$BBHi$n&r@:R5@dbe`{# -(0fx6OJF{A&$baa)蹮B+?%gjl60`A8Eމ B]BYxõl (/p>$R J#in0~2jrhfIcy |BBṮJ9wކ0JB $ŒvBI I=5D&RBda?qL0#t a;cg9eCSy؃N ǏEᛛI\ ];8-thq0G(Z7>}tEm.wzV:zH l۽##AS(#B !UۜgAw6޾c3&#-_vНƋ[QC.ܯt@|w"͒Lokb\$lHFi;zT41!a5;Q9dD|ZL_1}Ifnv' G[>N!ABiL/"!2#OdW! cI dP ljC ͏0W} }s>7O>F&Hx jo!xذR$2EC{+{#kƒ }=/ TXTqz!L>]Ћ@n]ݳth~\mZ{wp諩ȟwO6ǻ]$%_U .w`R}Йg{ dw?fpbݓB)/HNޒ]|_x40RC-3\hFh!od[8 Ç(|ww`d6dwX`>`xDaTe 7;ޞ}7tK3e[3_|]ҧl z{!)w`8-q1& ː`t>5W`[bG-繊 y݈rx؛vD$2n7>{{ Oq'p8|1 *,28| f$$ !Uyݩ =D( ٹ ῰ƋXo%LAUǂ]-7(H$Kl$Ž!Ac p8!`8$B̋BٴGbgOD:1Lۻ) y  B )U ,FTm, >J-tsdo2Dk5‰6J FB@R{#Wn2/X40 $h A %8z@m \" M%),0{x34!ۀ7lťV ivk6`$gDO0 Yy0Ĥ98a`0U{L'{,;܂5mϺ!ҙݨl.q>Ӎpnqqh3A] %*-A@ %gY2$L!.ݍI}؎]uYhD,/@{16K ca! l2ֆ璒-I1$"}>&"0a o}?#.9ƒ?\D>C|;J1t!۶p ۶3!ؒ Ala̰cô7ڄK5[5[Jg{ob (xG FɒGSH$p[r0ņ@ K&v'̎3%FlIP @NMTh 2Xonj' n!ioѰ0O`Y @NЎľ5: Ag$;P@:Ip2_\:FG}/CK7KĆ`%rM]7)uW@;tj@a4L8!ya07Ĕ$h?@i,L$aHP 7 0`h JPKJ,$f $)@O$$` -#xA@l=!b10 p7,a$ZD 2#/cl# DCbUl'&IH2i*]4UNuU: Y!Z?I%Zԁ  !ҐL!A 5$ZKH`G 8X$p..0r@$~h @ &!C{ `. !@n 3B`d0 b`K) &Y @ܖRѥh CIERRRB !!44a L!(I}i4p ,,!BiD\n?x@P3])JF# A-%,Z>IaJ˰niD`dմP!' ?k6WjRUU_Z꺹VeI;`:;%d)2XOYᡌ0 BT2B!/ae%WfH;uBvHU0 lJBby _$p^!'4۰QEPjUrU'K4u: oS<;y7DPP 8 ,c@WoԆ_baD' D O| ;5 Id_lNC &(g t03YQ n"wc!$ ۥ!Sgs:NV;2"(&V,$/Ue;SXﺤŒG0u7av,`d34C#60!C `.!GC +1n"^UNL8 K+HJ) ]IlJ3~XxFp @}w:-(G# #*c*ag`q-80r"݌~`.r@fwE=@3[qݫ$m"R9ZU܅(wkHbbJQQĞf3 ΁(>pC)؅ Cd5tldP=Ȧ{-='%]=M] )禺a wr+RJiܨK}>1@=k;!Pwmq1ʩNx^ B nt>!D’h+|zRAW2Y`^^o*,ĘĶ UG~pNД(bT2d /^Rӎ{sů_Ϥ"LǠ7<@'W”xܮݭIH'҆W@\b?HYX+zJ Bp^볻Wr59 #sFQWs}]-OJSk§;䮉4CFFgcs+KFaܪovx $=b  -BdD\B&L7(䁴Po'a(Lx\pq>d >!g3 fT5( G ,ǖZ{V}R=P臱{b!%;'.S"K E++sNfc2 5!7}d8c@O󬈛UH^HV6Z*sKVă/LD4V΍HMըPSKx{|Dx!3[|WV2gol""cIPR ? A_`˱}ÇxAM’S}R-LsCX`fUc$pgovF 0#!TDEu]6C (o(Y|ܔޟ|؈ ݙwJAz{wu.YmKsxlA MP %I?(XwhtD>#C&l_qb>-rM~;|J\'8!RQ`&1+ٹaxj.Bv Pjd)h`aX%C C~J{ G%Ґ1ܡEy2[nכ~\ԟ!$Z~ P ]M++y-'e #VfY&3oaR AmwCS\,)QI# !ٿ$^>+q/?^9xI#1wZ;B% =MiN|}K >B4 (%=j_o -|0#bi/]Xi/0ynY Љ_3$5Kv>IWDe$D2C~OcunsLq lcFjk^ 0,O]ǣ7dMi!R; )F^S$HbfbI `EO`Fq& [.BԽ_'Zo}Ж{3F/tCE'绔g{=2{Z0_`eT)Lٛf&L5U[sFB' wѲcCOΈ$)d=4cJ.c!-aa'|!I+MJU TҵVTf0 }"HX)=ɂr_](J9I@@F0vU$ `H c"DDR 4;m9 :&X"lIJR!V ΎIᠵHCUULFD#Ai#l ߂tpb@"`dcSHJRP*Fȹ2jLdȂ=zo#` &I"DHM^My&@ں)@#$0ELL < ADAI1]|/EB&$]$Z@z.&W/5JRCzxi`<H '4 |В,4`BBzSGJ%$dR I"ϋ%j!T _r`<$2jEɓ W&MLDUd!"$ȹ5rnOMC&LNucx3LԄPºCĠi7LB@W!3$WJX I B`*M,N(C$I01!%.R`G2F /g#?B@bi@:APa4g7@x @ACj4i[!An<1d]#0I/8+\ĝbZR& V3D]+Sͮ_4_BESuQ D^U` Qb(3&!B db`@r{0QY`@<&3N5S*h_"tAt"+ !yZ }fL0 *NQR)b$H$AmtRQh@ J8?E\v7jZ딂rdIAyL;Vow2uwM|`44Pw/T"{ x%OoY! w~nOs'wwCpPapZHI׈>B[JL֪IX#70i{$)rpAbBRY};a%) ¿_#e.hE l@ D*>s:oA<1?K'8\ ٩S@)⮈Hf{C膬a; 3`"(+a`"zU \|taAVM1xLɬ {`(C \rHAHwP\u~Q7w_D>Z0/` r@GI#(IW :g`* !_)ץyxop.A4ZP"ڧd641>zHۍ[;8CsaCBX=t~;D"~84l1؍V-\ZA0.lЫK Mb8*{<KBkߟ;_k{HO(|swpiѓ*o8b)~P}*,ܮA!C `.1GyG[JQn8OX|O/`HYnM > )<^+#{d ιtB; .wxXU NazOp3 A@hnwR0#|p]6˒Ѣp;݊^gq+&c9wwwPy.pi)swvKPpx݃3)NN>Z!bdԬbh1?>#$X' uD&uʷk[RȋY0Z-W㦺uuO~uwP/9_xݿ;CGy`< cotDeDxQ L;:@j x~ET Guw w<,zkP B>3.@ 8_!:(vC 4/_pF8`ܕ4_R[eR~-|j+!=zSkߊ(DpU\aBGWOg(4xwP!~ `z W\ #;O}ܵZ=\|o7k7@zѫ@8hw/Pl脜W ,6VA>ɽd< &ߡۿ~::(`(>čJ3Z^<1872&d AIIep<4 7Y(XȠ {q`i1Ҋgfߟ 9>FEO"J?s#\E^щJL:& b %>]#$$08b cyFC 5`fS&J bHN'._ymk9/ RsFvZs3}=R59⮴LW(Tw\q I1E#3&G^m K~务Y&$N9^nrmΐ#=pX B0%NH$zhbaY&0\8[Hnb !/)-}o/uph5}a0\"w:BYf6,D^艮vH즟;[: N)}nWWڋrr22!su=-_,9vͺBZ(6 4=L1"ψU+[~Ba_m  u7zWsJ[SH!QP @Cz0d@} =$ %N$ %@>A2PYiA-%J%&,!= 0%i@<@@R "x2{ j )l ,j[!1#$IB<%f5o'3G _"΄)DQ]f]⠈ "(&EE)Td _UҪD5{˺ EE?e R!)& IA-pIx@zIDD2wn<iTAb &p%F |?Ɓ=!@HƔ7>I$lX]%=l`1pN 9"t2~%& W@)&NWӀ!P~MFlƀGQ"ʬPrb@ &*ELL'T QTH _"EKZur{Tb& -&(IHJ0ҾH F $2j `$)7Y1 ɥ~RK&%A%5(A4 $$4T 4ԓHdRrKHxQe *J@F$ |ы7 @iXG$Q K]OHV.P7& jiWi{!E @ !EYEmi\q5@G(c m֕"GM]k-@CVy8B@,@^ 9 N GD-Ktoհ) *bBu]%Pd;v2Tn2;g+b&VɇTͭ:YQ 9XՒ" pxVSi7l:\S5\4-~=TIi sY؍Y2kjDƣid?NǴ}/u֢Q)+DҩG'tY6Q]ә5:Z EG򴕔a){ Fi9)d; '#7Tbd33RGL9EFqyyǟ(# lE}zIJ4 qV4}i]\ 0xk ;J ӈ4X%s) ζy'T1/prqVXaX Z@VRn  ڕ4қ۔*QI*+F-rx;S+"ʹlN hIiͨUp8?yȍ} sjFJ#\lX/"We XjHCcpU?p8)m`$m&kk%2`v%DBBERH껪@UdEViuyₜ$f>:UH`;)t,Z-tZ#qVɐ]vF! R=4*3.Y8 A5iSwU&%Ѹ1}zln銫1 9 aCJԵʦ}WMj}[ߖPߧDyC+No;dճJXA.278ʂX.('DWDE#Z_(ԫ!QL=ΖR7#!TF$AITckkS60*-Mw}jΈF>sSnS`PD箐bT43D#6mYEYemmqy2LQ&ZF g(CBpzI9S`b U7៸hɉ0DQB]BhVHQzM+YU". R$]F..c&EQԈmԪAx *Uz< ?Sʉ"` 0T4t D(J?(J, ^HԠ('4@lIYiP@􀠴q^BR10i0PZ -`B ^?JpI % 5?ВONK@d44z8$bcPYy)RXJ8AHE1MQi7+Mj!!oȉjr^ ,\j*xC"ɑ"D˓PLcX"EMD($ՆB N0 B S ;& 4AHg ,p.MI =@ |p1,I0ePԤKN@@@HXROB@@2! T @i\T:BBrQGDgbPf+!d7).c@ Ģr%I*o\/pQ N -%`&HTw4U)Un UUTC **EAA_F atLH ,oH@ <J*k%`i1>IK @hѣFKi:!8vjLY|` ppO6bC۹wUګT M ĩ@*HuU`3Ej.P 1 ?) QvL SeU(ULH='$j/!d;$%hg#A(@! pXxDd8g GacwCˀ vbO20 0hc = {?bQy)+p?=`NBtRp6N($h7r+TRL 5t? OO Q-M {z I(hPtx%čr 1.B7w$0*C4ʐ#6*?- $e#`J 0Ę6`!1,N΄?I)8W[֩EdUtEasX  )ЇܔY`KI&$gyכ,$iy 4)7&ԤhXn] ZQÔ= ˪IQD0 I 8 ];WPbuO%L+{.=WPQGjeU&=Wh ]ꚻԝRnV' T 93c8hC-n_p!EXb ||c@H_P#8 KTL&W /6'Am G(MYd)YtEĢhbJJ?Rbo)GXL`14W (W܃{I8,SDBŦ A4!E3G `.!G K, '1Iv,iIJ}L BvAZH|  3k_/hDjL RW8۫!&JJء%V@a,[%+V;{B09N$# mF'n`}CI[MRYkI5=`zO?ba@L',4 peRr1)5g@b`IdY &`3! 3֩t(|&ʩ+BFwmdExq$jFA& RďH^uF+O~%$jq:DR{R+6kx9 G EoJ8 Ⱦ #y0RFa41$dm!rB z}UwU]xCW`-}^m|:вǝ"j<r#juU@נd5H% hu,P[DL8"48NDOvmwv\cU+7#=`;r}mFFOLE,HPJ0Kv߁;n#ww+wCJQa8\K=d^y6)Wg.qdۼwc8bsx/\;!(pҋ}g4{r wu AXwS8pN3 ܴp(Gݒ>@}ũho >C@#' ;v A~R)=ݑ{b2z1}ǔ) Y U(T`bwڈ*$sZZ`،Fj Ah7/ sTq! ł+Oc& S{drwsG#$B! vrVu;R=UO{kyG/)ԾPT;q;ܲ7hΊa] P`ȉ_ 0>p॑m)ſ+/_ #"9{Y;*rw7̄;B5[ɎňLq=AG s}y;_;L6lPGƔ@DWD:$l0n݆!FF$)瀊e%+gL<=2! }J B 2(-)BaFa]ч 1r &rdRL#cpJO6 v3KQ!(#!LQPIc:OLh%26θ&|9 PLgd#Ԣd Ba> eXP-wT1yOFv7n4xxF]%~h["rB˜LUb _Ȉuߖ~u?KDO*yzoC/!UZJ+ _`h-GVUYG:_22!ӿ=:%]/0(7!FS ;)ִ4SP{]mNK{v־<#{%v;zOɧj?$VI%0k3_p; (G)wq!EF{ `.1IS]GyOuRJ(v nKaL4qcҗ#m`F}5Q <b߉Ρ5wvg`a}>1=G_] wupxo/ ٜHi" hǦ-rI4D7!' b-evwܩY (cr(Yv@c_b2z :ٽA./wtE"ZH%} L> ALlpMGwskAp؈cԿK/$}R?s +Ωs3'4ppovIl:'br_D@ǢkNi2naQW-r0P2{p=Pŝp/bȻ]| >7\̆J-#q`ѝ;] Idd8EQwywwU.y~s8Uv{#]݇(Hn ^P$v0\ Jc "&,yk^|wg %>w{#]Wi;)׏vu?FLt$Svf-WD*i!1aBaBO{܃p 'wwWB=v; pIH(ѾKtIb~hߑ0_@АČ".౸ "8j?dA1*L%HK_ ͰX:%m }ȃwSOFLu 2~B; n0whHaJZ3x }ۀCDJXIhA}hFN?v ,Af K~~»(FKn"8{"0ZQ $mv pBDfǎ2U.G!<$qǽ B)x}'#1PY+Ƣwٌw+ 6U#H*lG#]2A@H<ɔB0c[ -;zō9E` ?H$@"+]Ys_p +X _ȃru T}r=*˅JFc Q @3<`]ﺧ}ԲOf3f|!/à a'G^!CÜB %ጿwdhs}}>dkC:!(P?$wws)ى]X{1Dk^8/ #\ņ0_B7J;m#Kz0P*^Р8 JB!&)?;T`҉i]󱧇P7;?:$-I0 ǑBpLGb3ޤ Ą* !vK';?^ !* D"b A7~@1&!(J !dԝ|r_mN/0v&/Tp jD@C(pܟ7)pFlU g1 @lXi012ЂOۺ9g[s`jRkXx8qPQiFG9h$*v,ahB}e=@.f0 0@`CJ@IQ|Ծ_WAEdۧ۷w* :$HA -hJ;qT=2!>\P @LCI I #--1 ̜. @ @  `&/5s`n Wp*_5bq`` (7jžnoyͤ&j@k4Et$} gQ߳Nh{ov*p @:/rɹ)ᥠ 0 HAC sۍ_ϟ +3^!EY `.yzhy'x<O6(<=4ŭ&Ei IfER#]@b -&C"fB::JC +o-x]%m9J3TP  BKHoHg읝kv⿹QBpݒ0 %wJ9(?%}Nb|[u)n@ .H;Hi4PYdZrvْs-*H@ Na0 `;!Z2pj@NQD8JCS0S9js'c~A)@d- ߫ ,vc3\58B #{hp %RSuw݂w9б|BH 0LFA4X-#Kْ1~='J6dpꏹP @1(iA&W`čq v\*^P.,<2i3ZPJ2ǵiG!(vrYv;߳@4a vߝ}fQib9 o) 7 d#]dG^KA{ҏj`|cr([%ƥ=ٺRq;Ay9p7;Ӵx<Ӵx<x<ғ7ny;?ƚxox#WՉ.7|w@k-{XdcGcxn #\ `7<Niuna;w?uڀ#H0,P I:Y)l$O1]@ pHg@HfK@:G~MJ!~p0@3N:0a @ )fr_7^BqEdJWݝ}kv< 0@b_?%4ݾ o[zˀ; \b!@m&bpC&MIDh gݖw<ۜbg l8` @:H`t&!O|ĴτXfƿ/]``BqפƗ:7o^<[,H}w6%YȳI{'x`LC !t|oe6!` !BpqUx0 &bWdfCw@` C O!ȖJ ) /S3:(`o%vSy`gBI}?f{{T<bД_A%d'o=!El @ !G'?Hnr,魂NeY0Ē64ћ)#4$Lę+mE*d6RTcB,ݔʉt&%T38di5 iѹYLg1Snb)&rD%F2bc333"6mjQ5 MtVEf]aƛuu}ej&񷢭v$]176'4#n#]%"#6Mdidgmg %I[F:U,G DmGK)S" U$F idT`= d iՐdIFk׸8nbNQVMG) i\LBlq_瘚+ !P\cKKFoc6MJČtՒyZ:RhDVRؙ*fJ`t2D4"GQҎ1meaeq}Y?IO‹y\: y1IBK1eu%džvNEHTIT6YLe"CHo[+h-dFV#f,Z$dTJBFEu7<Tw[xǀmIƣ// %nBBAٙ-BFI 6!\(1Yӎ* 7,T`@TPF8@smϊԔ)M mIRH.[%qM-DJʋv5T9;)F1l`c333"6M"EQfZamm\yƭ/))T ń2rtވQ.-8p*jTԣVC**7ԤLfupk4[2hҦ!μ8SD(\unqƙ&F80)Tӆ 2EsnZ#EsDIMU)Lj3J-QfLJ R+S{a[S>RV|tdv;`i"#)q!6c2Ύ )i(I4lR۽FR,&e5^c.eθgW% `bS13"!$nByAEeVivm\emeuuwQR`ƙeIBVV·ꌔ0W9"4"AW ")U[_Yt#!QSGfKLήyY^ I逄;*lmnzm}*'eh5mBʙ850¹tI%ZdzQCJG "J(+[4{UYxihoF)dI_Q]L4D|B)[@{bYJ\đ:'V錏BmҒBsKD`c3C#"4҉2UueYivYYtYvj+5"ƀĪBhݴE#UDzKk3Va6go=-!n9ɗYHjF+eX Y0.]MP'(&ji(m[jNͅn=J͒Iv'4)0+TJU1n)Gmfb41&Wz樂DhZDSut_([ZIpRgG 14m4K5* Ip 3!E `.GHO t5 i h >%d_O-';~Y{r'k߬<۔`T3vwJ@So' I|4ϛξ%s1o݀@-GI4b9%պȍ9YǞpC~[>@Ԭ @L7,1Gɓ-y|@ga(h@COgO[?ݝպ 4hpj9@ѡ8bYrJ(5q K[v~]th4)YiJxw(  d>ۣ'#~;OϚI31f'` &~&-y|wrw[EgUqa&?5\^y܃XI [r}~ ?JתiAv>x?H M=u0Oos帚u8`7N#VAdKu~|r~<{-:ȧuͿX6`l?߉ٲ\v1G\< _毉3 <`7^Y?? G=>?ɳ~G6>}r|6p"LӁ>p#sb4^pӸQ`? @7X~Jw iώ5߱95?NHHaYY|XdMm6E#~ߑh4wtA 4eCagBB_%"nv Z9IzQ8׻ yd \`hgW?>?soрLJ ~^?9~?X Wp Q0@& @iFIONo/VH@b@:(&A 43C:@nX`-fILN@@  n4jos[Hd6,4g_YO(40 @b?%~r bŅ{`p^Hf^/:,w4$=n `fv`՘ (o<{P9=ד'sd7XG O?ag4<|7s5 6 O]n.ai _?5sw2wscpӬkϾ4 j)p\{$72p2Bu@;"ϛ%O0Ża 7$>?}/߼~Bw6xקw"pg~9YtOYO6w1!s"֟hw]:ým_G#<<!EG `.|+O]H4<GY'{?Ǐ ߸{2HD[dSWG'Ӏ}?x+9<,=Xkv BtYy}39a. 2=8oǞtZ^7wo vǀ X5D}׌nn,Ջ{uD (PB K "z̰9@ =~[G.B3d/AUj }ִ/}yF2O0ē%֔O&х@gj>;'N^Ow6'hy'p'ԔwF֎p+K5'{]}w4݃w]p#O"i;]`Fb52"AVE?$uw3fO "s^{^7p#g 7>?? kx?~uê8|%xDӪ:;#F?N E#b;G0ӀΜE>zV[]?hk2$7w4x 7<6=ώOߚޏ܎<.mҾkg}ds~RY5冧!?O7 W@ /, 9|`OAN5!^)_ P HiK6AO dMejF4 @^C *XJ)73]`@M lQ `1 `Beכ╹iǻX  89L, xaP3'/v_\ 0 K;&!ņf0jYԄi<0@AIE/bR:v)iIn @14Y4v@ĩ;7d%_]`T!¿円zoO-]>q!EcŞOuLJǸ}:cu OøǟN2<ɳxLJ{)KCx<|ܽ:O(L}O?0Y`w&K ؖZ O(f@}b@5@хK}?{@D$`H&Y}V6 `6,` O<Ş"  !E{ `.1hXS[nIph hWC$|69LMy:.&4 'cpfP 5i7)P2,wqp׀bC, @BhC _^2 I 2(ܽssD ɝ7e$ ( e0&n;<|X~Mt>f5 xt:oj5Ň͒2;|xl 9O怶.%K?7p7.;p:c7xtwl~F Q bDล p#NO68^A 0An3bA K%D&)@f [Z3c(?t j۫ ͽ8"gv3@*SI5\*E|^%p|ęL߷E/'p)s=h{`jJlx,=/Gxz<^?/G PDPE:Y>(Nr r% s}Ā{4mpG?5K|} b<}"K Hv'}s?1xMI4A0 ?e1E ͇aJ0`(e ̿Տ9uҔuԾ_m9x!CUS8 ic;P ?b/ha1(|xnnp(7 &*id"\i1))j-xM;(0vQ5pO/A#Zxb`hy?؏/'swsl _5C;=nhP}e - f[* Dل؀!w~#2oh0d{tEsVɀ\l}r\3twu*8g>vDP@-)ag NV{O7bk\:&sP/z5Yy`v1 P'Z@BX.! O aE(7Ws;L \fIɔZ2r^4!E `.@, H 7Io7I0 &ihBkK/Yy< 7'r?IPPv)ܩaqN͟5KۧO߀eJ?~|S#퓿ʜ886yog<:猟ͳOpok=<;i?r ݻqز=7q\ ?^Rw0ptΞ~qޔ+K @CF&p.HI1Y $!ĦD$2g[G>(Zz'^ %dpU#!;``r8<)[Y%J ٱ-ou,t!=&?D@n7+~$ORwZ;8&$ Fԓ] p* !ZLJhlC& ,~ #&5!R % ?]h$"ņ?q(rjYX-!QLL++ bFJj>bд5I~ǿ)Ϥ`X]C<~g_)&A\'+#nwŇ~<-ol2@3G;M[x{sL`-> sxg',=7 / wO Q0Dow(aJ>퓝x\S2;, sۥ,?H|6AQ\ӜH|d;r|X|EdZ|0eNq$x?nc󞵏xx0猟pp@ 0 9bp 8`C5~C!DjC8i 9dy%2^ @P円6Ԡ .b R`7tC&Dk*ai8 w$0J;ٖrΖ Y{9ȷ@  @,f`@5(`5@`bh1&@w$āR&3 -];! Z.> ;r 4 8`0 Y7@) A(䆆R?4@*Svw~qю(`@Aɨj|4d -1|C|P ԠjQ:7'Tw޳CGi3) cCIa+*G#/j@v/ @L~;֖B@- l6~v>Ym,py58F@2R=?sa_| UQNhl9pcb}֪ ^^λ<<:@tsVpI+$ cfH l<$OOrnN 2Cǟ:@C$EIW&m80TYy}XUU!&_Iy 1mgwX KNp3ۥ^d0V/k pϟ`̺{ R9|(PE FB=={` 0@@1&P`p6Imv_߮ܛ .,ɅKbOK| 쫤0<7W~F[6)& e+d5Y,X%[kZP5%P3gsn_!gGBR1/aJ&`ħ4A/lШIՐKH M JFlutHUJr9B^3#ٌjCIo[ |9| [d#~= l'(fmjp~7m88p܍!Oz@<+sܻ'.ұʆ;Q%dVpOUA-gwuݘ]؄?+sGe_OFwfNk}#a.w#p?rnz9@C{u)^-}eӴ{#vu2"A8& ^OZHe.PAOr~lsyYD3ܚ!#pr}N^33ǻ'A]K⭅doOpE-=X-Rxi]= Op(XtH!#q>\{wwKq^\;TdMe{w!T wwgPîF$''p>]}d/J_V Q\?(8zwOwFf{v3rwve0 wP?  Q+Ǻp~mƨKnYaXo_Wp8x X_\`U]wCxy|g ~{چ\c}R })l;ތ;;; ɔx H _j`.tqe9!ƻx](ܖM/rJF!EG `.!I6tKj":}W$7tEGڶ=Y܍Xψ@wlf QLJc#$PsmІGcM+:!|>'뻙BуQ??p i``3A0D\h @XUZ^GM3緢*oDOtC=\ǟKJX" c*ND3?gB%2dzוW|BWdD!{'` @rvXɯgaAsCW!9(kf?~ qv:]ĐʻБǻ$ |^Xwp>^e\ R5p ߢ,z7(CH>r|Y 6hYzDS]Z"_S>EFw0J8"%tCA/lW>| ,\׶A|1Zwq#_X GA0o|^noݐmd0dN-i< ! [ *9cwiwXn>7|j!xwg5>wc k{ww ѝݐҜ{ b3g$&`0p?7ݞ_`wwD0$N@P}$r6pN:j-^/:tH )CifK#GA% XCۘO]q\! 5DShBBL7!,ݘO 5 e()g$Z` TkDON2+ԆńyGǔWUg ndxncUyաB@=Ip:@/F<ǭrJly=b1@J[N$Q[ݫ}§Xwd' T]qVrw`;p'<A'@+@G F07 cؓŹ`>Q,j ;򝜎0$fseqa9):{핚`H~9 H- ߑ[ud/l_x}La/8iܑs?j%(3ѱ[ѹ jr@OϘ?G+Cio *6|n $O GsHԠbTWį`)dG~zwxJ!)@Аl#f,Y^&(RDx:&aaF磨ndJ(20׳I$s0Q.>q>5<ҽT81 ^O~=-p-Q 5Ǟ8Jc!G{ `.!@#E=,"8)pB,8$% ."+|/G'D<Ѷā`!E9.@wp&,aBwa$57:Qz3_ 7p!>`z*hhW@!xF"iNwsKwU)I78ZC]]coHâik9x_V]K%%)IO JNLX CID48>"Y\кQ:ow79;uwZ ,0070iHH'd6 ?1po#@řN'Ѝc1)$UMWm5=S! LPuPIRԘ d/*\jPtɨn&=VȠTd@ we >#!h}jLiY(02idXbsd;5钎$hB8)*Bx >R{9i@B@ M5a&tV"MH2W^Ȁ &LUrdVi/97&MEWR UGQwPԐ'lMB O_H@4% $$ 41)&K%ACIHIH$8JSiIdѽ$"LMƆ"$}PM(GL<*iHH0;|! Ok `,HI:A3{ceHJBtȑ&b)5ZA&H ;& $uWr*)\;ܚdO5EX U~q  0`;h`B0BB !%HA @A`!%)F,5 A/tI8I@Lg?@FI@ A'4nO!|*$ Ђ`lAˠ7V,>BA~^Q!/7qB !`hh# OB"'Uΰ0m2$dɀ &T2nEܚ&.HT@@WQ $ɩ`UO! d’L@jRZBIEɜR@,/ HF 48p,]F@(LHh , a!)GdGOa5<% @p_AY) '@EP@Ґ5nQ~ѡ<KwЄ.0(rn 2jMIu.&a>"iwP'`&Dt7&T}2$U IhX$RJ I7RGcLM#3ڄ( ?&HH$WPdD&#ܚ/SW"L 2=mz$]E2*$DFE @7UA&ɪ:&Y40P JG-# 0 @:8b*X 4%(+XB(lh`bHAg@i5"M-Rl0DgMX @BO a H6Ʒj}}ڣRqtB4$s 7t=A"JQnpmNBL&EE" ׂy5"EHUewh`?@{~ _RWxM\X8 ,I$` OH Y< ,7/'I9* @ CC ( i&H@@ %4хrY O>!ZP 2J(4ZFrAh -(\ L%#@ L I hHJXB^IJ(DN Z@`0ZP@ۇ}N7o &\ ?i%a&Q3`GHE1;j|ZIpgnQD[!G `.!Ip $h ,L: Hb2vSENOD+qx  ! oJ~ZIEa̜OrF랩W"*[ǺǸ v}l2?:'ỡaG-2Ii8-#9u05ŠŁPQgBHx2nQf->pn`B&`aHP towP) n%$ `#Ĭ%ؽ2I!D"~4d> @ !`KAB^ ;p? r58`%p+ ."M2@BWd~JvŧbAe3'p(N!B& C_z"0z-?K/Pr9dfHA$5 R2 AF 4ӴQ.(o]52.!UϩTu޵_RGpG#w'@6B|"'`>m>BNaR Cd 3吾PzDK+ov߻uoav" dD2sz!H; < H15 ')$*E{>sq|^ ?3vO۽u}82֡ͲoA "σѰ3@#mG?>@4 ?tZ4owlz== f#?vq0i9xLt 55oc9WׅP?xujpP'3wY~v߱ 7r:{*rH$ q@gz#ݏfa}ˀ HXOʹD#ooVs^a=ϰ /HI*&Ï+x _`q PՈA!o-fH¬|Ba`*{Lp_p -23y|JvL빦@7lG\@n%x Ǒ7l!#GO`dF> SNi wvimW}Y5@~p{H8G4@[yuWκE}]:܌PyIP jGـx 7tDї!]`AAҷB$xr p]wSݍEr}N=ɫ8G:LiK! H]:Ww};c}tRݓ(ЎwF`=F>t.D$x3d?7̾sҌFy|^!5a-#%!VHѦ6Lh`l.-mJLֻ o B| ]ɣv r E%xN Ǚ#QC]nHf+D2)7{ 2?p >A LmU`  09>v]3LBХ{L4{/ȷߢ$Й 4X$(q#FHė!G, @ !G|]DҳgREXbS#332&$]viZeME]emBBրu jʊCi=#Ja5F%VoFcN4%ĭ@3Wl,u1ϨV(TӌIYZ m:9ifԉHe)¸C5VC!U!KU`D%hZ+])HJVӭOL"5]q%q򽹫ٕ=Kv6h:ifNe$DkE"P 9xBz8[ӏU"QXQ'Jo^ݍnGI`t""$#$R"@-EeX]euYuQU]iTfSv}In7n.t%&ҙHC!$$>w4&4OذxaۺAl=Z&rrOU)d:=Fَ.jfP_9Zwsefi9, J]rʨzs؆vJpFP%'vUW3hn͏BsҴFlj;#t1-V$^Q5Kj eÁږbc"##2&m$+awi^eUEUu]6ee,β%w5fJbф#"}BdX6cP4el5iaI%+u *\6sN*)ڴ5RtsRE#8*1%"ndN \QEu!FDBF)U!)AmEY!v)6 W%VIU[udljJ擮vTu4$f\ o?=:5샢^ʡr268ƨcB%Z%ZCI])G"9j$i$f'lpM(Pϕk/U& OT `d"C#!6ڒ j,Ya6evu]aYkG,t D LSV3є,7WUL֞RHڮqBuiQ 4䏣.6Ut|xyqhQuGnNI$vW)>ɤ~M#WgMmj'ԢɯZHuGI Tވ :3G2B@d6(6HXfie^=Hϳ*5psE#6hl6*jCEJGo8QgqAc6m#iSY깹`c43336I~5#=4UaYmfu_qS\, V&Tu5[jH_Pz!ݙ m3#B=VKN%msDr)XrcAi8sm,1m"PQ!j j̝9dR4`mR$ ԊTf(e&ˎ[(JAHбG,PJq4RBQnlŤ5N\P*b,Zg8)U; PA덤SpiǵURQ"zqB'4aKDHV0<{'-ϽeFm r4%i4>-dbT%DR$$"j cG0DF2JDg>-KyT&HIeeJh+Xuzuo)vNĬ|iVR\-J-0 LNM M8bKIN_9EUPrQE~/Ъة᫂|3$z4%nXKq֘9ybCI]+B6m aРG$⚶mNE"*T^4Z̬OBmmeK&[-Xt!G@ `.!I7u/k$]!^!7p7qA8#}we Ȇ8ثARGn9ٓ7hE›ʴ3r%|C0ù^ @t 8ϻpo?U~=x o-NB{CJ݁8Z41.b7!oF\Pgzo@n/WVٿ `8q~߿y_e|DB9?\E`?U!0rK`F $ pApuqgV<F`È@ؑ bAbÌ|(̃c]ݵIkم0ms} @FuAzdHKX;x" I`'KD7FB ׳s訓{ʄ[qac!M/5n_6)"_wȻt>n;!A>w}W.w7ӭv|"w=&U&0TK`by8 sAr<9Z l-twB4F$D@# ? :FT.e|";ܸuڬITG̵1"2a+횲iMx,hʞa D@{w s@M@x @nBD> 0bA{4:]©)W*# *L &4ɀ RFVJ L0H8$ NJƀ aؔ#$`_a@~GV ,ݬB*J@BRZ2 cPIRQ+%B %GCPW) ,a+ -!! Ia%1%.K(rp(B9e@ԒiAI%PZh' Qi4h, Ĥ , ЈHx}}ms9҄ !_[ag?;~ƀ @>1i~?59*SKUU)UE@t]_Ʃ"041(A,44ia‹&Q၀]()$ @` I0ɁQ){BY'@τ貹@dcRLM$@)'%hK 䐤aL; J /,&(TK);,mD$h GA/^!@.B&v_!"#ȇv00uTO[01+To&]Q 9q7#!% x,in ZoU Ip!GSG `.A@JT"xx]vHR.EETTT],*ȋjD QUW&LY&. @U"]T@7u*.*Zn.*._l^ D^TRCF#{d3 ?&!1H EŁf},EV?Q Rz<9yjL=hB`j:z9IO/e`KB"XRK$&4$hl<7i@p>Ac-IE[hT]d QVR. ˑ"E*rTr$ȑP]Ԫb1DKUZH%ICF!)7r H%I1$'dC K&BbRԀ4G,bXb );002 :&\^ -KJ@zSЁL"(4tD7I4-%bFAcH$`PM @0rJBrW*U`PmY9QT LUVP*kwUrbH 5Q\MZid<P`ebbZRS )= -!0 x|5Nt7`0 @Jw4CfP :yd"W#kӊB!Cu\B&2*HT"eU.*** r.THT ThY 7Rɻ*EK@T?F ĠfGICF z0 U0g(bJB3$' ]ƀ@& <8 (e"hNK,H`'br`ƤQt0*9~ɩ=M&E"MBh&LUR$@*Hp ĩIquVu˓Q4H]_@ @QQuP1W">T\]/"xB̄ZHCnc8had>'Ye-%iA -%J(tmZx (HHB ,4}hԪHXI P%0=BIa( H"*re/ !#"TōUWW"#U U\\ rUL iu*.IVe "g;*?**_5⢪ь%$& QQLXN JPI%DPCz1@7db.Q%R{0Xd>H g5},33R_ p]=g"W;(+ qKא*,( $Б >K4WӾw?wrz..u9.+.urpDD8`xLxsy/=~{(}BÕr w*O{0Od#O|OcnLIi`k%=#5`K R[wuy'"BBwA2=ݟK&,0/#!h!x~'Yjݕeן~owU8ww}< Ovi? CSEyK`o,%=aN V8)ڇֹYe<0XC\kSu 3 0MutEsB *~lb9- :T(B\;35 B.;j"W! '!UG XfD:'&ʅFpyn%ֻyoÖPhA C" `1˺!xm}e wBgU\XT8cU}§ܔ|B/8amd_0XB2RZKHB1') H%jrB@^O-#@4`B8Qe~HX FJFd J(IiG$ čr5%DIHΞI9@)>kJy{΄ ^*Qª*lʊ $@XS`<2AIG$n A&Jw`>4W@j䠲҂Y[I(R (F58qh`="#RLrh ]B1F 1@`昐P _QG,0b~"a$v4C'x'; &M@6LYI ?ɂ  ɨ*eAW$mꜙ5"$Ȓ6OS$dX`Foz`b`f '!ذ!)&A02APby ƤnBQd@px@7 $B &pY3BA0 *PnH@O !B`CB Ia4taIN9$a%! (n, mƁHV?~D+ӾJP' us!]Z Q*P MU uM ȓX&MD*S&q@qwTCMZ8V_ҵnr$0 W)A `JF'7_훀T({afI03e<  dhŖH6LRXɀ:())e@HV"ya &ba[%0! ,5(!`dK.{#[B67-OU7+}5e\Pʀ,UCVꨵTu!G `.-5&D &Mm &Eb&MC RcUTρS& 1 |jI? B E!>JRpÆ a &b_H JK)K 䔦,p?&R``!}r ( KH`ih[ NE=!4H`6,001)HHPI+r !bzxd[*)/qj9N' b4.:jWA&/Iw ? ,&.P+Y#ɪ2b*P*5U UaCJ=&Q@&D @/;8!pH@RQ|5%#QDς@po,hOɊ ! :9E 12h !%II^JwP2$ ) A#vLɨA(o%ŖPHQA%1)JQI!|&ۚ|~ބHc6~r9"޹Czky &TM rnRU5L]VRwUɪ UES:QPҀ#ѸLbSr =O2W %~Xk&DR "$1!=$1,@% H @#6G:O$#)E$$$[V53z}BJ@L T 0M@2.܊$Ԛ$TM0(\ _TP2nMȨ "E$!!vN=āBxhiZJ %j 9%%)J:Rt4i+ xi R%)PD)$ٜ%J>%|D6Dv5$L($4 !XV0}ɥ AjMD{u@:I& f2OkS"\"E "\ *0p _,#y  H-T+4`d T?>`FBPP 2BBJ` %K&S3 I4J,MIIJ H(  HBr-3C @M#@V`X!q"xh^ aE1 E).i;)榀 (&Mcɩ\"ETdʺ(!EЁnHQ ge肄4 p~0>W`#  @ @hC15!pJPd`ޒ+$4Y4jJBaI JOM @` IEa2R I\ H@ѩCi.RP% @hܝ$c,GzWDeb:<5N %:D@ ѐ5YlZy a@<؋Z1/z;9> r1ҞvoB 1 P<h$J$^)Y (&l@Kԏ5ZX& &!ܲo)5q8$s ϺٿI4 BNLr̴cE jMU%$l1vgh0̙~4/7^gGbJqaa h2 3}I,jq4l<Ru& ;DZ<$lJ B>;m!:Q1&7 FƕBfg,mWZӪIK!Fu>+Q.KbmZTmrܩn4yݎJiZpKu 6ÙM'# `T3CB#6i DS]equuܓ9Bb 4CYH}Ƃz:qiM,[iZnB5[LƜ\+67(W LhkEkN* JNJ=od/{:5(zkcV5,WYVmx4r.Yiki*,JU # ,ޮR\rNxBm:I+F[83",6۶_mӪ*ضq:ZqTE Q9DCriGuDc6-LEBqjM(hi bd$DBFD`M@Teim[yzy3MHҷ5%3԰_U6g QcKsLa|٣]mSHpjS RݫdDŽL׃2+gTZj 3wUHB{ !\Q#-[[O&Ov_ᚳ67Jp'H43*qXKR\i"'*jYa\&:<ӏȖl84&`d2$B"HE"*E$ii[mzy_mZd,WΈ+k:*UpU#EU8x$ A͂FenH!8 /X2bVNV#aOۜ.E%–^ʂ.^h2KiC嚺)uu)u !GG `.!K qvkxhF҉F,' QD` (,Lh@ $)+@T'o Xii.>&]ARB O1CTBO mP# =&.&ө0g|"] ^v/ 0qݥ@yO2F7D^L_><=D9rڇPf4<&` Rt\py>WHHr.PC*?A\{,W{k! M@M m wpX /HKnda{`hwqM`1=A) o`P(&.? `a)a+&Wf1c}J160\ p`F !@ Q n~hVHOH#$RY00RYG*toDgtCt&Wӷm,| I&35N~Tqy.k78$>3a:.}DPkkan e!! 7 Zk5Q7GNR~ƤTdG蓘Иq<m|$9'*q3krHC)@%4C(@pw^P_+liu݃ڀ9+r93{ʛ;$C@y~w$;_;;d%m Ùi8f_DAw M :ᢩ㪛ɻ!nr5{|vOvF:'#4e Pk}8:1.v 1hW'舦5 vn;gvDedD*{\21ї2RnsWjܻ#ݑ,`[3ETi=^nѓY q}JrP44?x\û?-Wz1" w|?L l dֻ_{tvrEqDlOsC /;}y.N27op_]ſ`DFj  =pwj9+.֞羸""J]!G{ `.1KK[ ӂuݷ7N˝Q^6dOD޶wv)ܺG? {ShwD]SVsZ hT fe{֐-V֮Nm==ݐ BZ yPR5  yJOފwXOu\{?jq1(JIn('GP"%}#@_gD%ZwuJ2#vfp ٚ2?}w<AU?qNw8D9@?;>|4C ǁ;/wI|2"'ODJQzR(B7ť vt7{PApCO yެur>J{$-:!%~ n:tQ&]5;f(zZiC-@vbX1Upup {4sꔿtäw!t~&,uwotI cS!/mp&;SP߱4|1RdD !8RŗRs)ҁ/d4~h~ $T"{q#:D;}Ta]t5<" Dlqk_3XNGZaM!%D1eq }eb뺏w7HJ{""s1ݑ?_%/8_\Oɀ7/I>8=)%#J0@)P BKҒ4b -9 PԣAp , N0> =:B@KҐ(ܠ3ETJB\r,oB*@'Q.LMI4ɀ !HhilPe@h"hf @ ?*%!S 4z0$ - |d#!#1(HބY@% $ P#Z@e,Q%$H4"][:5|a Qz # `X$7YTET Ee*V@ LTPM@E)T.ըdU*D;SP*e ΄ ƢhAc F%%Kҝ ACB %KOH@uJK! `NiI N@O+\a7YIIDԒ, - xj#R3Z  QD \ Rr0^|YIM r/,̕K!Ci0 Wj .8&UTu3 ?uL\*%UETHP@ /`T$`|Ԡ !FQ0ɤPaH冖QH -)Jxؓ%Y\haiBIC8R\B - $O9R PѩĞPpo![Ede,1"5* b妆IBLҎ?=`/dRUU4[! &.EAʊ7_AADI0 4 f!dP@%&$4AivM@Tx BЂ00WHӍ&$IHIj'842ӆH7B@8  y=$(_A0+@6k񥏾^Yna4B#Re kͽr@/őfZI>j]uFj#TmJ,Ttp"(0`d3GҗyRKJK_H 臡!||5+6!$‰[$~j\CPrS*U"@ !G٭ `.ʊ(&L]w&⪬ȑ"*ir*!HqV@3 1&Q ;PAH`b) @ܒIPLB tXi@!hH&!9(I4!pY4% L2JҒ+TPi` `a)d`jKBJ@ĝԢX BJsļ7Rĥ#Z̡uεW9UY3Ʃ z@+uȨ$Ud\5Rɻ*EFBH!9 L 'Sa@L0` 2 !L PI@ Je@JƠh$~0K) ?P@!BC PHGB2PHPg" @EK ~ bEHu.Mo/L*g븺OU?躁@(Dh%5`;!Ć@0(0i+RJ \ɣqi)XdN€J0@?2K)@=ZzB F!{苨,)SB4I@!)&,#~?-z/$cG\NKUBȫQ⮠RlP-EȀ '2`SjzdH5Wf(<hp8X)J@.P)tu` ( 4J2@bSA|&$b $i- otC *!pHHA`I` $ L"~bҒD8ZPHĤnH040 I#,JyT{$%Rhh=XG5Qs疷P<#B eቌOժJi TsdZDGJH t"bZ1;/gA~n?w>N+p.+ IH!%\L(oɩ' ?|2 Icy\'Kq$K8V|Xj1DTEP.G>BH`ՠǁ^Ĥ}@cK@܌Fih@@!'RB&#n20jK#nG($Z_Dv =t"hnnX [:%Ɔ4 {   n0!z(R8Ԥ&vU\SDĠ,B![`=ܚ` o?WDKB4Lb2MYԿ[2=&TY,##68n X/ . @H"v]gTܨBaW # \  5PH ^@0(3by{W@+J%#W,hQY/^@F D%$%u=" _Љ8o6َ BVT5=קd u zSoV`G: Hf}N3~Ұ7S(*`Gi[j2&D(1R q3A((8됐$$2Ī['||;n\SC؀U?3V'?9OțFaQ_P؄@#CàFh+] }&!{Xa@qBJaEH0!G `.!KxU4, $0`= @ܒ00KN $gX0%%F$bBP4ahHѤX`D'o x5xFON%q~rBwwkU)kQ!uEC7w̉F%c0Z"#}`wad3O_r00# avZ$[!Ogsy39Uw'F wX RxX0!I:E ̫{#7D/nt'U-=r@ws0*P@.]kޢ;`E}P|KeWw*,BwDNn!YF_$\W]܊'E{_wt|{; $3!RTcG_``Q|1 ): JY^Mǂq6 Bv A40YW;:*PW,f ]u&'@;X^8 I=Z ݨdUy,2S֡I I] wp>b~NwDgz"QeC`%p+nIx*\ O@+g_R-; _5_SzG>__(7 B9ޑ!^Z|0|FYxϿDZ-ld1]҆^;嬥|F!˭0U/4xmA .c5V͌"ߌ nb{f%|ԻĽWoϐnW@v$ ! 5WOQϛQp,׋^P9M 9_Mm!x௾.=&p  Iij]RVƴ=z!I @ !Ik#RY6\dDx>e$TucxɥSC#xbd#2B#Fi"[)M%YFmmiu_y'$U 6PnMuO j\ƪ͉ UرgJKFbG+R$.k$qks;j4w $LDݩgib/ԍjTJqWSvjm#IGMuLb0; e.Fsm[JFV5a2F5 @ ~ uJ V‰4R@AYQ(x-cm4.nCϝ1r[V'"sMRQm F4 m#5-X,`e#33#6i E5TYaqy&-iMm8eSC$4ۉ*Q3s;jU( bkO`VKj[Vb;f/IW$0,U[yhs8jm6xjdUڛV874M:ofZ*icmKIBv XuQTDۑ$mӐSW.ΰMcR-It4 CR[m5 hrӉ vX˒}R.EM(HiYPnT9jJ•E4vIx_WH,XdIYڒIdMR&bT$CC36mIF]eYiaǚqq^tW 4VͪɲhmwCѦ%lnFƕqzl -[MWIJMۍE]" JBӊ +rph,UdQid$웕THIiҕH+e%vdJ5)A1 M6I޸5JnUx]] ̊L1TZ_ZQBعLʛgNClj $08UJ1Z ߼xdBISP`Hv USednRF@`s$2C36m몪QEeYeZqƝqb I4LI3t5PG§Yx"-2V5;+LI$sbV܍Bn!Qg9=o6lt$`CG(naUꇏg3ə%2j(r]ܭITUM~-4-qԆŞZ)RRe\GoF&eJ߭a5rH,n)H@IŐє)\)8m#oc*P:ȱa&b(iUo~T1z],v MdNK*$Ⅴm+`I{JVI4B35[&qh=BD@.UgD m'$,x;MX. -6 +uWWx9=UbDӱ;0(Ι*7aҎB3fܩ-o9deZ`CRDmrᾳ=H8RMMLeDGjA:E6r4=5nbd$2336mQ]EUua\eu^nHAFĬhڤQAIdf$Hiډm!IG `.1M KW(_nb݇Ƅ~L3`l ^4ND؆A !mO|ҔHkN&z[Ӄ{`*ew+^1 I.^JԹ9k^O !~Y%<m]c )&t!yzsl!Opf5lשra&ؔK/> )s$@\V>οKӀpڪD454&J!K @,Z;p; [֬sl m("  $iIKkZ[}ץuTurFk2&A.%_pC~P Zk6{J\pF `kh(bx L8![Ɋ仳`閾Z{NRHoCIOe%P&7'J~$/U g1 @lXi012ЂOۺ9 ζ՚:nנ,a} ((#4`h;Y0!ls3 0!% a}$(j_/?wۉ;RxĄb C Znz `<P+CRCAHbKlLFgBfN}ZX PrdܰdPLg)p/&l톫8L z `M oWGudt^oͤ!^ 0 4 E׎0%G~ε;:cp/x=`@P+4PB|3MO /}fvQAh(bWr߾S>u燿4cO;Gy=MR#x=0E0:~hh\$zC?d[!9`@NFpc%wJ; }G!YKv  \B <CI- 'm.2r$&.e'LC5<=*޳'cl_ah-F' 1-B; ,vc3\58 #{hp %RSuw݂w;||BH 0LFA4X-#Kْ1~sJ6dpꏻЀ *<BM(4PJ0@ ŀǀfM&r҂WOOgG!;w9[,;<1@ _t(oЄ~wϹ - @'!? !6 vN4j0Տ(ۧos#K!ӕ;Dܟ/}~,d1Otvn5Tg{mx<Z<wӧhy hy- hy)"xiQ\i7FCū4yEE\#K{",R\xF"0Huxoxy;y e=y4~ybG<4B?/,n, _ĬgxO.qw4h{HH E |}oxyz?CĐcx81h4~7d ~_ޛ;%w3&$$Pҏ(K:\g>)2u0ƸJ@;v7teݑOVZ7ZI 5rKN3tO;#u}H2`ᡩ!k{ %G(E4 JݐVvՀ:R*dPbCWՉ@&lY5OA bCW?Go<pi5,AP b@+‘~?m0 ɥ w7?۟'?XC % '}~g=BDGBt>Afor^4>|AOO s1bŀ|$Y>.>{L"a,A` R]?rCbٱap"c'iA 'h5.>p#F7r,q$| W GOd:A~ud59;Cر4o q;Gq w XiO"|7r|zDpϋ"<%H-ϱ4- qlndx !7{݂XX(i4Dp1! QX5F!0 $ 0X =A &2Z0j7bz1ǭw0 @! Qt7CO_w;>s؀"@*ș2o JNK~< ($nƯ9濻 A5ɠ +& evgh2H(M}~xX %ղ]U` * & b;WN747h X}x5߁J4 Anz7gY(XҊ7~Ϗqv Ł@Ύ#osm@vExq{,?yRDr k$p:o4gA4đWu:Oc';K?f<,4A6:1o p >ai|2x\ϬduϋsIY 5ŹFl_~?d@0ؿde O4/ͧ]sbXGx {`u4?w8C'e|8>??>G07E7?>}J snopw>?nP+f1 d ƀP?m'N{<}(OGܺ@2 4bL yv⸻0Y0@6!'s %W&Ȅ=,QAQ*~~~6* @dg(XhĖ}߲z:( X~zL0Kӿ~gow1Epb)eboGH HdԍmP0INR;3qZ6Oa?~!I9 `.z B}So( 7f*_ǯ e}X`›wQ_b0/!m>({,?yr;``aן//߻ n<%^}ꀝ Ynb}?zO޾#cw6ӥ#=^ v<X>px ;ioK=kwֿX w).,1ni<\'>p#q`n3pu| sWGx~91ӿ#xoޏNh;qcG?>3'"hl?w6E#~ߑi4h0B hbP$': oAbaɅ$*YIݿZ]@B &BY)$Ԕ7#[/ٝ[`KƄwWr5!dK`πv2R1m󸍏A hj@`P܅v;X Pɘ,w;?WbZq7F[P RC5&YݑˀVћ7ǷtI ~ߓ` N  t80) P@’xdACh%;p936{@bX߄oH%4k, ɀ4x h簳8 `%7dш)?ֱv;o04 `o&, |;9zD .g<.#>;2\|ܞ>x{+Nz},x g>sN ?G|}''ot5 {~q X{~G?l|+?p~]fw8q g~ǯEBX4qr~7`9HOvzǞy@ `B eG@2&dz;p ~pYy$wdrnGg&7ni@8A/G ?=;w$ @+!3.7 !M߄$a !YNOK"=nxҟO&х@gjH kx|r@kLi%ŹWx \jN?;aiVOtwϦ47i$;9'HǟǓϦnF8  ',f6_-]Ǭs.?8`oew4{?8~F:;#N?x a=CȧӬ,3>jv㮟?D $<;/-LJͿ_5/4,{=3,yf1$}f  !Q45#7_'Hoͽ@,20"CK \JJC?aJ~fl03dpxZSσ\a¸hjG# %:H@@`p7!%[2*$N!IL `. ` ``9sU @@>! @B5~dqI!(5*Ot2N`@ a @@L-`T 솝$0) -''L;h F/cw3lZz}͘ &ɠ;TR2Ο$]o~<X g2DY^(MNX_ `Ԅh C^ۓ@F V942y0 VHoR\J+ ~Z@fpML!c~%O[j@>2H`Y % ݿr/<ۯ%ĉHCI%y;kA<t<]O??qdxd%qp͒dPl| on, Ot65<{lz2󀴋yy<<N~?8|}>XSO#G?`/ikN"GyC^phFx{~Zu<%d/}Og#\"?!uos ѝ<yǹ?e~X?O` vP `I JRz@N@D@NFPb94 4wŤ3ffXy@9@&e)kq)9 ]DZefPޠ.4.PqiĴUV i9B- !ЄZJ o C (H (jVZJSKP @(%@0X2R_ FIeγ@@5pFh0 6JFJ + C Fov2@1@ | 94 $}a&Bɉ N<X!J &(l[jL Xv#T tEP0¶A%G밀0,x9/e-Ç .@a,yhwZ,%h`F㯨 @BM;&7m݌ֳOĠy0?(qy I&!ӆP}W;ku.fc%2]d \]2c.,w'o/dx܃ǀskǀi܎2\sHa <'o@r$?M QGS8%϶NeNcm > dp}?o,Nͧp"|>}wc`v?{/NO>.p6P( :(hhiOpfO(>>qtToB9i!% `@0iD.0ݾ)~P ]p@y3&ar8o&3ބq Q(`4 `P5.^oe@Ah 5&? Nw|JW' :q!߶͏7p\ Ao Ԛp*ZRX!~IA)_{Ľq tol-P@Nx2 KIHgU$ H5 X`h+$*oT/Xi'B@ d @`9P sIpi_nli\4!I` @ !I%KX̔QF%DE1MUj񭕑G4nQ$ۍ5q96EARml`Qi[lnGb(Q 4\6MmQlkCd,"ߪ)4]qn#.` $MU hkGT"$"n 8zmkq*{TQFUmLq[ƞY,7%Jm[*T`~kaoiQ27 @`c%CB#)qQVeZmui+SnHF.k+ifvmDtFi)Y1s Zb$1GZꑦ0B (Z׸jq[x>2P%9&4TV&D,K&O FQ־' vhWf&nnٞGFfI5bUF9e-!x/̵iʕIiI X*n c1UU*ݯD1P!L ۠Ge-X옊 M$"n&?Kn zB3P7'"wM2x6.<.X'Ϡ>X>i@kt\2]nO_ PhQ"s'̔r8MsYȜ9B%ݺrD*qm O ʜU#|a1NSqֳR`@v@@~V @3H@NCHJ;rjzX7r[:+e^WXb~<@zP(߹4;PDݲ?J7kn&idM,` @v2J1l5H!i,6OjEx ðT +f߻qHroGFlmq.f옝o=L{|@C &eN1\]Koup HdP3gCf孖Ϙ?($Ӳ<;gnE>=s;0 w%wfޢ@'CR3 A@&zMOM+8~Feb|Kxdf|mM+ ̛8^Z/R*vcD2xN{ kFF}@ @BC(c'RSbn&{L(4nFd˄bf[h=U5!wެ07't@tCI j{罯8Ơw6ۀ$d$xnXyb3!JA_ 0X1(ГklTjd2].@Ć ftӇy` TѾ?uwgl|hR鶤>Ex)=y-߀dq`-x0C^$Z|eԊg}~|}!7gA>`~@Oz}?u?{-܋4wY?80ʜ?[ /xn:?NdӬ-g@D  'X=@hrgr `PBG !,X .8^ 7,4T^p0f4 \HA0 6( I(Jr[2ݎYуpur-8[tAX+@!Ԡ;N ` :&Ę1&$ Y0[tvB? @\(|v2hp `@/,Y7@(K A(䆆R?4@*Svw~qю(3z`@+|^“ ` -1|M|P&ttjP5(Z~`X cPP( d` B$?rЌl` y5hcyI( ;ԔrbTfP')w\4 6 ɹ% |3s_ſ 1@r1Y+(G@axbvٸ Cr=Gš# e'r!81B `P @N@LV<TDf̗rhj 1,n9dԕ*MH'jWZK̄B@K0Xf۠K>N,M,%$Y姇B`ħ(3obcjM&E(_mR*Huo6~MtpUGUH@vur8H}jIm1`>Cz12椛I #KW,Lʏ @-$ْ ФJ|~?K~/~/I>>珜=K"mB1`0 @Bv4`;e $ b_ BC0 vr_F8΀D0C , dtv ($ &4X,1R sAB2x^W~oS@ˆ` AHŤ% NoW?eԠҀba@7 $3'd C, W:zp pj]h @MvŤ043Qhgίh4]-~8 d*uĚp P5ؔF0 qiI5$<Μm]@آiA19,c!+t1vPq0 ag!܎ђ7q<-NiVlsZjyeLJv%^\`g=4x%9 x@1Il%YW t^%#,0 J&c;7+^9p 1a(NaGnX`*W,NWP BBF qB?bRmv῔NO=7W m,,V,3q88gHy,*ڪ !0Ԗ79 1m݂K,  -;o]<I/6n01̻^^=+dz 1:& 0+6a=~`:!6 i41 !x ,A$!I `.!K9` d$Rq{]%RVHO~Y]5 ~RjjYx1K/ 7 IDaFS% c^c%PpXT ^3ɩ ni#lh)dZ a\҉3u!< eF8Z v9[nO!7ݻ;e r?l}rGca|ch%#r4pgB!PY Qxs'~̇ p8b@bE #$7@ь [$՝=8033oP|yG?bgcʫPwg3_{,?d쨏jcIz~=}= 1}ƴW7{ۏwR`.a8jrWOsL" 3#MA$KG`13?@.60-ؐXGoagZﰿv[|b{HW3 )zzH,7+uA%}@#9]GsD7U $GbEi*(`@IȢ*} KGxq4.3;%ȎG1}3OUc{  '8T?G;A0_g~ޡnG O-\J H|-oQSC% JKd.;7'@Cq y p>gցd)M=Ф=aj{~MMxLjPN< AM}E^!T;TēCjb! 2a:.HT1}X]{(Ԓ?GAX9(58/]V1b} WD:}Ig]R(/x4"!:fW2 i6 'Hno0[ޠCbzlo/ E=+-E kp.3] ^`zy\@Pwc + vnC"Fnw w B J6 rh%8ʀ]׭& aRhOtMp sD}$GfC;]!l@ 8q8gpqwD4} j$cs,A (zAE HwBfJ1~8 B!bzQ a<dD;X%6aWj:̲t{3ic@ "Qh#^ r૎plp}CwDEj!ݚCQ3Q]G}-<:@"xq؊ho=w >`1dgݖ5B_c;9fB#vJi'Xap\yG?b'wv9ß*wg1^b^ovT^Է.LzS_q&p#N77* wPwuT1}ڜK}-w5ApG z$ lZ,_6}_,h7ķ>) F?2ק{~W'u2Xq#~Fkq awIqCS=g ~va2}VAzBuGf@p7$cBxI ?aPSt]ijֻqd5b鳻9gfWg|(Гݐ8{( ɭ4 !I `.1MbM цaA9"'feq @ xTD_>|wTRWF+ȃ4=ÅȫC_u ÌwvpU]֣!x Gx3 Jؑס䝴4v]T]o;y #O"v/̫֚z. Bq_{7 K>ܯw__ܿwue]ћ\p "*Ç}Ö4O_ <ƻ*Nt+Mn01%Z䴆pS`KX:QCV3/ΈL͊uu̷wgup\d0 P^ wcRx|bB(x*w`R'Fc_u:k- w $<{R=r諀 skzEgûPф4wM^t֔6!mI':@ (=ݲЌ)#qG#,èKٻ  xsig-p /E*1+vq=o{rPr$ﶷF] DvEdH [.֨o.ȱ+x7 ,As@ , "V&@u5wD5d٫=56%i{lc@sÎKߟw}=#5!|tC`> /Ws\.J`((h,TXAqMo " ƀb7+8`ӗ%xv`>Q,j ;򝜌0;0\y\XNJNq}ډ?`Q% M%6GCyY 7x뀎wa/8iܑs?j-0 Hܐ 4@6n=]K;}qnBH!(`Vƥ|#a# ;0!(up[w" ݐI+ouO#zċ9 @klٶvdl0z?:;gۨϷH`4v%>m^n߿|Ib x37wߜO#m"sc ]@wbЇa;Jp2E|F|#m]Rz @05ЮPlŧ(4T-斮Sw78]k:b3uwB N`dcX1DUO䴕nuu! L]krG^PHNB #~, h XV -(ŖHH H/ ܈5Y(Vbp 1+$`TH BIPhM) *(?'t% "Υ{{B\P,Hb@E UT 7P:jLw"IY.2*&7uwr$ɹD*NXH@D`Bp( Eh4/4]<Y *$`Q,P[P!-2X I@#8əh9$`B\RQ`) @{$$Hړ&Dȓɪ&M@` &zdȺ&EWP-"DTrdIS8"EK޽hi7n?u 褀HpEU'o?QEc??A54 %J@۟ɄHmxJ,I0@ Ob #CC$1cFhɄ0L KFBFa4t7@'0 &$@HGB*\ֺr*D T"$܉5Wp8Hȯbr`WIH (PԣYc)JI!!!#$2oXA҃ @ iH#D0*0Zs Y%<>t@0padхpĒK+IHͳqXu142]Y 0 Pi! ĤGyb&!䯉Aܐ$`$F &0a9J$=%n$pP jX[/%ŜNBd_KX rY.$RvB!Ba3䠖 #F& b28R ?$|Qb% :6GЋ ҲjUڱ8 G NB&b  Q&% ϝ;GaP(I&PPa@:@ HI$FkԒJA8[ ݅<~[o1Zz6I'Q-D%(5$`J߰'1IYpn:?x 48`;(ON$mSӀ>N-R &Ii#tlafD"( ыJ䫇>H`UڷM  YU]kֹ5 43&t6BB~$J4D,j|ex)ܘc&ɤUDe9\\_t"89%YϠ^&a 4=Ȅ8u ?&{uvoUO]' I ܰ& G(g|L ,*ZvH n$AL = ud5w^'o ¼3pmF BI[,>:OH~7 W Pƒ̒ q1V#bPo7<Q5< /qxc~}`oJ0ȴBAS!mETN"!IG @ !KYN>͖ۍV$iHWD:cd+RâN'*Ӎ?,+#u H2@N>k'" cm(R;\bS4BDCBQTUam^mi~u jgk a@N,lp5o`QodqM\og,qZk$m7TC?M'*[ڙm$t6m #Q!fcBι+afFJTQ8vO ؐ+dZuڿIYvFߒ3U'L :t䰩IQGRTb@cbH?*iUtq)I#l$X%Uͽ2} FH*މ\D`t$B%"EI *UYFeqi[imN5ULloٔ'#IV zࣕs*eUY᱑L)uU;)&?+tvH@0KxaGϓE*M“ӗʭXyVU/LPǘt=b~UaKធH~Tgʎj'Yl 3|TU٧y!q%{ ǽ 8 n"l\P&j߾X.buP4!UqV2be.] 0L1 W*䙶z}bd33434ISQavm\qu |Gmr"![kbW,M)ӤJ;\xUuUƓz(L*ft&1&qx&ت,&Pso1mmf) bq g;>vL*De7;16R SU$=mgTi˯ C4jqVB:!JSOM3Q֋iiqM3JܕaCmY~.nJI)Vm3aELM*}GC2Qc+nbdMZrL59jqjNR&2cXEX2ܷi G$uńc@`c#33#4Ieqequ\}`I $~ya*dEadv"$tě4MIJ̒`bG!.>f6j&5IZxǬji1aRMMC|\)RF:4ۋJeiӥ$m#\Zj Gb ,ڨQ̟xH#%8*d*xTSN'ZV7#e8j*UM0Ƀ@#G.A I+Y³MnHrCHZͼ ٣'b`nF$E&)|`bc33#36mꮓTQvXeei}z *YúMHM&nFejZqW:qQ#Rin<Ɛ4U4Q%(P)Tv#KIT[u%,RFH΅TUW^3h≪\ZbmG"QuֈZIaQGZ$amH27Wo3ȭ(Sm 2&'#8aKuV()\iITF2a-*'Ƥ4QS H IY&yi jW˥eP/MK"Y2Qi(Vr4LIlJ[w`c$3426mUYYiVivXamu]&Ej Ɯm\EJkJ5fh٤!crU2MXvȢd|f󈘊MUbQViUI[HqU՝6nt-<5lSD6@ͮC5DJ6͍M&BSW(3utUnrϘZkYrCn֦Tq"wP57qwG-юF8"j$ RF++}-TBT܂6HđhLhEMUƝX-%$bs#3C36iU]aam\yʉΝ-!I{ `.!M(]!A"fr<4#aQRsj;`&-:t 7"?=9Rnl:׀9_g~1f'.v`g>+k'8槡 |]OH8"= >h{ܟ[|٠g\9c~O*tU;394Ј4>7 D4l|zӬ|l,@62/}Ϡ^G%^Nww`5ǀ|aM7>p"(Β0F₀k`7=Lfu7*9$#Hov[tkuw@++ |m9?ɠȆf= Wpqdi4C)1vikFv:SjV ]p0S$j5Kg 3\MdB4,+ɱ12jqlϷ{?Immɥhcu=JO3keÇpv 3chɽ 1a &k־Fzm[ɿaM)%3ml_] Si vh Qs& ~H c6HF7?ݿi$ɳ_2r!x( ^m ݠ$cacLOd!J@#@'5azLt4{`+WDt ;COCʩlaeaV0?‰/ $ JY؇ $O~cIЕ*js J2u k18,iNC R׮۝oWMӷvJg~J53i[0~wWܯNv Ȉ$c6ahAHɡ̸"2" bcΦ{b<fTpc$ {'؅l,Ѐc}k`@62/}h/(.Qx`?8A^9ω'h&mFl>Jr"&Q @M]CX @=V>?iB!s$'~߷ב dD ;CE e#)qz0Lb2LW6aDV*̙ڏب*f33fFHD"o9Hs:5ߦw݂{Dj5ܛ&⸽hNc[vMO^ԗwggOb)9ݘvODPR[>qϽRwt#c{?E;Szp%,Ԝ#VF_=`!1lּ/(b4vPЉST5?D;D[;"#S!95u\p""g @匹 iTRI/C;j{#"I!D8?=*]_= (;6U{vZ ıܧQof;脜~']ѯ!I `.1MMb]Jt`GvF{PPZ c= D6΢HZ.Ww{wD0Ej{0.|, ÉF!ݛ{*w lRD']ȉ7 Y"(Tr=ݑT3%ݕftBDf3쎚{﬇wy ѓ~JgwdP5_ύ o'$jBB(#R ,0+N$`q,}dq Y,mLA\;9+0fy0N "yɑI>y!XAo{tՎ4Ei!yhܻ{Q#5 6jnJ(F~c"_q[u""gw'(G=hX>9膖[fH1z嫸կ-xw̌& Dّa#A }@p@1 ժ HMm D;l<`5ǀ|_8n Fs~IXpQ$`JijʩppUH}Rwj{ U@Da_3#ۡo"sA0u?H$O|jw}mvW8g/G~4:fX <+9+l5 {Gvx>>1?drxO1h%vD۩I%JGO H /Rqܙ\[JnP{n!j$x܍20&rC$o_ WvNrIK!_%= =ܭtBb %74_y)@^H ᛶ6o M2dȨ]'{U4ML2.jɑ "0)w&(S"]-*IP *\Uu9,V($cƀI6 0@ 7Qa%Q[$^`|tB̎(p [d`2C| ^C-t'$M pCp$a`_0jR`b_d,' bGFCbTC ,+#+H--0CDVFnR޸/ 6oZJi!i"N /2 *P(TR" uDTj*@@bdbxr` `0!RRDĖI$,(CZvL,05%ad҃@zK>K@ih ߁`ѩ @Һ1,!BF̉($4#ZHXRT2\7 !6``?v4%ߤ.$ ~FxIHz_s|UB&D"\Pc\T` 0d1@DdƄ$Պ0 h 0 |w. &^h{eE)CɬhtL˞D&i#0ă{'p,E]Ku0QM*EBy  `W Wp4H8Y U07"T+꣜\'I5a8'PZ$$b Cbhp 0`L`NA/ X (01t? @BB&<,?%%0 %% B1h,)5#7II /Epω(I# 3!p @tKZKBPM Ҁ`Ih 0Cz7(s=`1``d00fA@8 #s6Hd%$2|y )Ɔ{`W6&]!K `.!M4U]B\\UJ1(J1($ ` `1;HԓA0`ςR%41<^05* QEJAY%D G~?WPY@@+(E&& WP:**E;UUQrI@N_닊HQD0W-(-#71!AE!!HNbh@(H̄ZK&FBPP@sБy\ #P%R#1?Tvo-#*?YL4k9B,F-a}"EDʑUQQWSO꨹  )TH EO*+]97P.dɰ|82$LrkUFp*PfN y)L&&78CK Bc@0id0č0c` @ L%#PZP%$%>@ (@I-)! c%DM!F$ ((CIEQ!a j#_W@( "0 C"' ¸!!fNCN OY'*00 "p-/~;.3`ohV 5w˓KWcS0!$Z 4>IЈ&I Ho `1zB@y003LAI+)JF'm ?t ! 82i4 2AAA ~q' B@tMM&7"%2Ry/rWi|yX(%XR9h,0NaOV(&`90/^4I;&f~,I&B5 4MP2i( pG+^IOF,I#.PIۻ zJNq8GQ@Ǩ%ϒQ&$2Sv¶ PhŁDg^$jҀ6RQbC312è :N`T@nڳ`M !NpF+*+]dy a VG:!?Aat))$mG sp/+E-ahɃJ0,c;0 biNB!bдp&a8:u@ $3IJ< 0LL!BX/9%a4a00F@-@00 >$G3C@3z HLV,@!}@@ϊ @4 g1W07,0`W^F GD hSDQ_Q5g.V/IP0_\tC@!MG$pĕEQ {D!ժlф{VpO pStݾq$'x@ߒI`:!# fd7bBB`Q r  C4!%) NbJR:4$|. l 膈U߄4Vh%}!!N@Hru#UvF}IWG=+P bЄ%) /{d@D$3=43'80 ڪD*0A8CWND `.1tv5|5! @v II\ R@cK8nIG$/ #z!RyHx-t\Ț"DEb4B"*ET*sk0VP%ѕ:UOy݅^Y B:FsPHTmR" r~s^źA~sZ*f ;)r"@!K  `.!MMw`_oX|(.HB3%z hA'dz(!Awy*V lwU(/ϻt3 69fWqst Aݬpwg̼j:` {f7mzQ_b-9|=݌KPRwھ_:fQbHiEG{`'HN܊ɢ.`#dOMӅ eZ`G|@"!vX>'jH40x!}JK+PwtCC2{AΠi걚"!فzzR. Fʗ7@>WDjn臯MLA)}7)=xe,k[D! bry٬ʉEH>G[} s$l| W\ ZkW4 Foz"xh<a Ap+  ӘXlX+ DFoJ{*g3*v.!) HB3ՌM8AOPtCwFOoV::=1R{]ܝ*SKM<{xB@ D"û4]H,͜/ޡ>JFo7%F :ԤWA,l)*B% S2C8Uj!]02C3#jYPrKn&9 NmY` "!{n(9^Е5$3 T=Kzw\mhH1PD7SLzu#!թSr@!@9TŭD1o;B&K5јcooDm~"_n-My$'ZcSLi#y-f$[LU3 )qbd2{LlTI8-L An dgl v~-JE0}~y6͒ҦйɁL"^s'Ag%Q1*HG=*5 `/׃@_`]EJR"wB&XZg1ɧ"!x8ɞlHR(GGo;d˘J=!R40( /U>XJG8>~uxDK?ɢiT&<ܛ@!>WAIྞ /:N;zRTC`{-R56崯BY!O`x# D> X ?qhDW٭C½=LJY-z5Ek%"!C.Mr)pdUOJ{!K榵{AH Pi}Ijw[>5%Oph#_hJ P !Ji_>u#sEo~?̊l1_,LF\Dp @nJJ` !K3G !KF{ `.1O}M,dbXk%䫽ŬəBP# /egmzyq# b^tCb滱BKN$)0@+ZO!|t !nkޒ}6Fh4P~ <qZ95Њ9#'ݿg}% %X$^dg@ qr݋ɶjfU1fz"Pn uɈhH@ !k]5ļS뚗Z ZE"S4Ls`!AN/&&% ߥД5ckf[j\&`!Anu G ׎|_=\# ރBs=BN iTբ!}&  ]yD5LD"??y6>W^ A`6=V:zT\ 5Ji@\1mR[a (^(P*-OL7 g7' 4 w:W}@rdSL2.?I ?ɂ  U&$p?T"]ou1FIȨo$v1F} 9 Hf ?pa1jPPHIDi $Zq$a@"ϒHD4M+JFhGg$k빫{.ꞻn=F07'A%% %%FJ Q k'"FB1.@"B$i Wp]jw!T&MAk&ɨU~ +kp 4 H `"XL&bMA3O@H@ B.TdIrj1u*MDQ @),cI:Ʉ5&xԤ bYE$N+4jQZBBF& !r044g-I)@ZJ>I F䑡 @!N4%$%% Ej`a R@,BC7PWކ-! %k٢FQ`$ a4hi5?Zx ݡWUԗQ7@vW&H*2ToouPy5Xw, P@1 3X+%"⪦dM,(0M@HА?#@0 @Ba4I/  px~51AhĀh]^%GUj=@ 5rnV"L*.2*7wPX Iw"D@HP: N)@"+ < JP-(B01J"`(@tL|0 1y$$3#!KY `.!M`ғƍB9DX̀DI#6VƀGQq%N TDǐ['cxV|VO'#BinB**L@R$H L GSU&4@FH&eԔPJbAINIe04#(,$jzА&HBS\\ƍ@DI%&n )6  p$^%(e܍B꺝?´`v'Yw947Z5} J"O 7v{ R1 t'/ h .ǓKYFu#T UUH31  "$7&ɁPP CK N/A)8B@LԖLH bW2XIXRZ -#F$ @3 @T~ZP`i Pi,’Y| H!q!?I; xP vp4FHa %Q0M HP jBͯBrY*?, ɈE ,F!E'mAb7@ wɨv3#{"A ! lX$J 0jjTE-|h'g&c1((|=1s(ӮӐJ7b 0@a!~tC5T(G΂@h< nҐI bh 7E$j25 " 6!P`W/,n a4t&)n7Z82vρXS0 ɥ ܚ V(q En@H%aya@:w828`~{4rӰbB1(MI^)  TnY4YQ4P,aa"Ύ䏨yD'aCx p$Ĥi!d2hkk (K-(yWn6 e14B Xg\7*~( # :AuA2m& Ak$A<*&$K3琟_%> $%iex1]k7"p &AIHJ=(hOAhT!hfHZ(4ۆv4bKTC ( `4/@iE[wވd` (bi|$0(L`CS# F@4H @  @Bd tѮH{9?I!UPM%ok3UDAYUiuF`dSUuQR"kD6plTh T 0qJNeͼW=g&[Hu DqUWBC FT[UЪЋ#n>&#:\x}"Ե`T1ܨ䐌cx|h`Z\$v )ƐI( "OHcКO .֜t#|h cٚb0(!A{C pr98H = гF #Zj0.iF0kH>c -(;J5ޝQ¡8i<&a&p>Pwb;NljDGK'Ԕƞpj8/$c5OaFDxh452#:{\F`iN Ti!Kl `.!M1#$#ݶ@$HY+rjda9I G3!9I0H\ oۊL xXshIHڪթUSDz0n# øX$@&*F[{r{H t7)l/{>G#G51 Lw#¼ |/_8$)| $c;5|wy)w 67  ݦHF#|JѮHVD#6jSooA v9ND gK `+t0#A~!x_pkF>sbn NqdpV0`Z~4+IĄ.%${v*g멅Abƛ $c6(,9t%MHDDA&IEi,3KcQ )5ɘܦ}_m舀k/ ɩҧ0~D㷂 =41 ){5U$rQ'v٨e^t'p?hSe=Y~ᦱ}C6}t/<6a%#<3] "у*&^x}Bv) Lskɓ5y#6i%9({^dbw\v<} 20#(;Wg h0`ܥʈ\Ȳԯ5ӕv 9>ّ4s]I Ȟ[鏦SYlrZwukC}OD2%W%8\|unfp##Sv `8<=qN^1S09g_EAoQQ]]zy ""g;'*ySpJBqd\u;f]ˢ\UM##I1ʂwV{WTnt$,"[GQ mcZ]9|TXfP^oڗPV.8x) ӟUEͷٟ9kj o+Q ""gv1ז qAЎM1붝glZyT.8T= ~ejbgT_Z(nkAIhFᕦ C..ncG:&UJq>^| $I$׾u:pL/R  ْ#oK$m5rćBDPx& B&ܓ]l#ђ]V> װ0GԐ$<[}${vX`fsG(7&M`(.A|.[| N>oUr25 } p셰By1䤗|d a]<iXn"WU4#EnKޓ,N5⒑V}b HހV1x0寺i !ns)zX!-8pg}xODUess#.8_PBd< ""9VS|w;J eu׻ i "r@|5B:K]&Gj$!ߧȢXb!K `.1OjaO}WpֺPuNM##jVn((|:FFb?z3h!)&ֈ48ւG v_<@-|',44n6!σRވ~䧿)>"_DA-xfB&ZqX%&&W"tCvTb&U͍ujijʩpt!@ P`, O+@5Fra }x!hT'py}V}uWTJsjZBgwp*xv&/bPB(% &` "^A $hx?M(bn!ƌ/%%) @҆'1! Ԡ )#F_L 8By k6#ؘHs~cc03ș$\o榪iVvBdHUMId]@f@J@xpkrp D+rH7H.QU:x, Db?ϸb'k8 IA K΄(L$Ȭui6 WR "DrdȯL*,*-]EHUOs0ha-@ bL,Ii3@y X BS\1`1HCn/e$h v$XcI> Bp0#)@&&B,2F8 ,JA!,!%B А B1$aRP%h J/$ ~K@Ola%IJb"h̍iJ0)Q S{\p@Ms#oSS{:N̨1R.*H+ꦗ"jMDGI!bDL&R`*Ye op C$ x ҉\40 !DKBF?Y(?B0 }>AeɄQRI\ @e@$3f%c~Q_KĠDRцz䩇 41)bcb Jd%4]jU%\vTU z6P`$,=)(H  r( I0(=D\ L!(eg/ ؠ2CH Ia8 B9%@A{ * (`x`<0T RR&GUJU& xB*E]war"2L]E j諺qqU0RnMLL j../IId`H$]RrPL!(g$҆$$D$h )@O|7`3`_zyHh.ZhuD~.0WPI2*ET ]EE]L( H&S@QU=p95w"MaEX@i -(Iy(@Hi`x3JYd`@4vL&@lM&d XH pBFp>5I'HJx3pK@/]$Z9`I + 4HlbHx@) <i.ߞOGvBǤ?-y3@!0ЌJ0HimC皈 (.7hcRt LjU< ;gr`BP/!KG @ !K{i7 %#*.%6Y)aY"6RCmt4ܪoef6)$UNiqXz7mPx]4ҍFhe9 f) khbIRHZO8Ԝ9VێFU׍*JY$eE \zh岭Q[TaW9 J&l#  M(-9L7\^'nHVm"*6ِƜ(7@iԈ;$VXJUTа+] T7%j;Bx%4m`t4C2$8MV]Xma[mu\nNMkM @j7X\y(PML2ڭIp[hX HHp 3(JճmAGsՑ/ u9:艐AN7JU!čKsK$İ%[eufd³r(FN9<5VsYkaʣN 1"N RH.s.+xH[*N =26MQԽPH,E;Lf\fEPXaUDMUWP'̈́SKHJ*VĊWbc$B43DqVYmuamZmy\s/l#emLk]MoXVcl+;m\:gtH %Y4C-r q)@I.< $0+HQ D>XKtmR\uLJd}3I+X-I#(1eqKlsVE5Il2Դf$n>1b6e*I!ruAd6M8xmFI[:ytF {7Ċh'UqaƤltV8Ivu#em@吭"y#rE Dk(ԩ64`t%BDBHQf]5Ymv]Yuqĥ7Aqhq F۴9q3/hHP=",jxa2rH\S.ѫy\M4UXۑгJ,,=j0KhڑvndG*%e%eF|~Jrc8B9K#G T$fJLt_$BV]5iTr6+5ϯ  2-hCnL!jqqz8EzkOv;-C٬u+Hr {ӈilҤ}EMG8;%]ze >㓊`c$3C34MjTUvZ]vye`qƑNzi9"KsBjk4KQ-8 3[5D<r#5,I&-Q7Y2 G*=eZ'+"v3cưզCƢK {"NxS6v-),Ff QtԱd58fM$\R5G46x.Σ\j!K{ `.!O/ t% D <04  HO/@ 5!rWW@f A0l0 <$3Вier &qh@jAg' 1(eBbK&f@$AE┄@ bRg%g@Q;9[X̨>,J$gQ -t*)ia6wRJ )8۲^uK=;ވ9@"iOBgMx 1p&7 "jŸ>柽w @H,-vW-N_~4g_D@- %+s(ʼJ]] vΪR -I,='K[`udP 8| 00h!>,lY,vt~%{2b@AcSH=s8Jt!.B0]츆B2]qڂ?Q5 ;}i0!#q0Nhi|*0e䛨(oiFo]~+';RE$dRC`PXCp@%~9 /fAK`.*Fq2?-IQt? tmXUSUmTC(0 T`dBJK0`H 4&5! Xh D2+trR(T*ZZXg y03C(1&QD!*D0( M&71!04h?&rKHh&%hߣ_43nT 0h0@)#]+ݠjT pϘy?b` P(\Df(HԺ H^*:]MvsHUmMpZ'(“ ,\-,{@`@ ŒPľ,8Lb`i}hP [ɠuaHJ~Y$4 R; =wŤXA'!Zjy" 0 M&j82O V7==CPL;d7ҀbGͱ7 {*6!$UPmMppxb`Xg,(qКW\Z@Dh%51lBg|D8EE ˡWA #( km#hMk*jP #xx(@x 8s0_]Ü'-ە9$Lx}a) V,#݂ CWsbJ$Ѩ9Aq >`îHD>rw!{}2BtFt~& "q IÃXHp:)F9$uq`r% |u%nUӾTIe  &ȃA*s '>WЎ8l_ !r` * _wVt;I-wp 0ᠶICb@`XowD90.  ($8|w^PGt6@bR"SQ5˒,!?Y7ʩ_ ac1CO_ /#n'@,+HpG]:b ;s: $!K `.!OMs"N H0֛ 57-QܐtL l?3t.aB[W%0r9%""mD;dD mD4ѫc &> *i &Bi;u7eG$05@a4 `iN%J3ݔ:G7e!2x0`R@ | ()w€Jca)[ ̾Su0^+/^ycA2ga^]ax|  v b9ϖ"rۆd;rS08xvkljø衡QSU"up >1pH= D0gW'5^. ?zg؆~{1HNR)8ppprk')J:))0"W{)y>r 9rV"'D:uڵ׾Jr*sEr p$Hn[J2/-^=u Ay5"!2;v(\*0K̹Dgꆄ?}vFc1 \JwȈ#"S s `;Eu͉)kD"Cv H ⤺Ⱦ7ji+ΣqO8>B>k##`=; jJϯ|d2b!*:!F#gW\Vw* " NCt ^w}:zHaN'C^ !:py&ҌkB@l?*? ~O+sdH#X]`"uMx◾ BJW^u%9ݕp+9]-Du^p4fWFBDSk~GeȳԚC 8@.^C$p$j W|~X(1'w@ ""gw}cRFcYT1J*]@m 03;Itc!& 1RaF-9S; #*;U^DTQ/rJ>]dg铊Hx -(~|#<c!}ztnOaj#(D":4u:PBJeV@} P[gHY%h[O^df%4|/`d5NͨL!C/~!9y9 Di <Yq0 T$ xC!aQ 6)*Ÿ!}0>v,$%:-K }Q}!-x1!&9lbe2NDk2%m[B T҈EZSB+eoF' @ /$2LPR 02Zscxv]̞Q7 +v4@'gg^&ђ8(U` LFz Ą* !qdnI۟Yd`吀h vM"1NYOֿTCx@P x `:,&bD;NBK/_aK% >P&7'J~$/U g1 @lXi012!K `.ЂOۺ9 ζj=_6z ҂J0>s@1&P03e B,9Zp0>` B RLrJ+'~=ݸaU' H@!& B @hakBQp;z`.x&!VCAHbKlLFgB3'>˭,P(`9hC2nX &3rc۶vU& .Wgμ;땣O;Gy=MhyyHƒxЈP @1(iA&WbbFÐK;cx/(`bt4\@ J ]=? sk9 o C|sc O;@jvO G;g}̢br ߷Rm0$hՓa?hQx $'vݿwFٟ{(da2``]R;ۀ39?F.#|׃0C@ri*PrMc &$1:wƶx<HyhkWyM)MRH#I=4Wh" #U)K{"*1JRQbEF)C EyoB&7Np194AG3ٕ. @,&vr~b-Ex0  t;YY.y8}nKZ<7-y<xyMOGyiybzCͮAI WXt<?~'E և' {@bg7oGq 4f1mMܟN}}no ; G s=[M<ynWblnDX45jt!K `.C p7pQP%hNzG,Y8 ^5=ۛR}70C_쿍Ov176G8!ieG~n1@-8IJh߷37`[!NBIc !J% ۍK#b@ ŝRȘ @wN= 㚼zI2ŔQO O>CP{ݮX `;Yݟ~绸@ ŕ9.} ?|7LZ$p:o4sEu֝ _x, ?nG?4.:1oL_ba q' dxd狛\X<1blt@kiD k`?xr|p7|^ O?m]sbϧX׸;8>xwwm~Sg=qoGsih?.>9zx#y_c+| ;4spooֳH8~; nW7dX5珞@>b)qacߞA4|{.*>,EN,_ 2E=ky]p<nE>'@k _1|O4?Hǀxd#], Xo1nip>p#r;E@ǐhH^O p7?ĸ\ 7?GۋF|Xd4I78o 4=`vE#~ߑhxnuz @R1hC&Pϱa7)}] ` @:&(a )={!Z?}sހ@@0(Q{{ݿª>œK+KV&%p -IľNX4 N;,Hqd0{4Zy0EB H%P$&d_|<1#g1KhDaysmx9.)7`ؠL (VvYJy^K4Ǔ2\=o5<y?|FŁ,GI_%,`ka?ͣ8<;9<xπG/OgA)d9'"~?y4E'1ni?@ 38.-s:ߧ<=z}EvxFOxOz/w {dSCANX{A6M?>Eg?}β}c'q>x E?`zO[kN"}?j?0y-/s@IOq'K3w'%'͓0|' 'cyn d#Ԕw%~_??zd.@OkvnzŁu)sDb;v7p#?d '8qF?O=߁sX}Y/s6? ~X0g;#`n>xzw\|F#}9`E}!5f0ZSyL ۇtGp߯wZG= )lF>sD @hLQ\*046!!M odz~'Az@ #@/XPax@lC)IO\L %@n(~Ü@hEM- @t_!&֟8g|S=`=`D.4컁w'{w';{/Z8PtXiiul;3g']@;NM`o G Нgc~\!ѝS??bDD (M&XY< ^ !-&! @ݍ@0 9I|+r` QKO[=ŋc.\B7,5Ssq* B, 8E'~%tx}| w>(@@dZw?p|8o'S[~ܑκv91/%~ ()X OK_ٖ}? NQ1 Y|!?oz` p*FM/ӽNpىS0ol Fc M|.Hi|@RkB_949dw@D%B2X;' _ϊBHu H@pK|[מ`+ O)cd(M BK=ȣ@@&X|J 7sh80l0CNRsnp#2amba )A?2zͿ_hA7 Ybax0aPi @J5ux=`A4I$^Y>!M{ @ !MHe5[ʃ٩6340H3tL-nҖHMm9TDr`Z5dۖ&0e lQE'%J2) zvtb,"y""n"5HѸbt$C%BBQi]qu} v E\y{R_@.7AҬ7dhzדK4ca+2y2N׽Y{Ŭ,HkRQ)Өr=vTYEKX"6 IT[n"à:6+x ]ثu@Nw^uzȕ;IdN#e76-TH2f[E-$M} 9 w@3Z*U`s\$q11-j0*"YGXbc4324)RNM9feiuuumihdtʱ"I#|75ƶk%*jJ|gوJeV3 MJmG]8ea襃$إR4e]VN)CZѢ7 %t*"[ZN'J_o65׎iM#VQ&e׻#x~)3;9XE ff&T:N1)4[eF\x58Vĭ< ^=YH{دH1cF8]k 9&h1d,7`S3#B(n4( @ QUdmfi]qXa^U+VF)ոV.I+DB;[jb%Q&RŻzd4Dn63U[M+I Ljv*nE&T*ATչz!rl*܌lGT*3@e$8-UtvyyjƙROH݀6Նez̝7ӂxȹ =+QJ5[ʈ )jQ $dꑿi4澋7R@bZ6H%1#`ɅK5'k'8! b!M `.L,/Gz<|{WPn|wn;ܟLY ?8"6&~ OsIiR3tge"6R!nq]VFL$Rx  T`;B! $z圽yO}@@P`?f^O?9;r@:,a4PJhsuj\ 3 ` (-'Ruj(o`ԚaKT@:FAY2 ri k=Hz,1!W&ǀĔopLڀe o=`OmZ?vLm !TCڷ'ݮ; zqX>~,Ӂ\1! !@1;(Ia> 48#~'KC&5 q8J(0mmanXh LKp}ۋUqXo(5 dَ y {nVO`&rp^.G )nr]E  Hd%°`hnA#0&j AcWoP(^,s~IH`P`18!q,j:zp p$ ?oU?P pԓ8KЂH j<9I'c=hRCx}p7sxҫKWxx<x\ O}Ko=K~-,| 1v{>r<_>'ECl|DSj.d0VN;*MIHW#kt[a4' 4)ۉ{jPF-;sO@Q;3YJ-AK.3_D"oINN}2'0\ ; @`a[<ϸp`3G7ø Nˋ=4@N ;dX|n[#`-=oܞz$_z+#wu:GT#!tkQx!߀m~$̓aa 0:W1O19v7! 쾗m]RxbCQΜ딘7wqwHx NCii&[҇Rs :` @'(" --cLۀh$9=\3#[!M, `.f<b!dP&Pbp Ccvd~%?p! BRrK-MxV|y>N*r>G̀@O+Mxo?O{?G>e-?*wǐGlQi a\z;d[@F  '\=|L !9'IH+ڤ\}UJmj HDLh@jJ ۥ[4]Cxou3 ˦h)Õb|Eoj{g'ވod<| mi`1o,bI5Rsx]u9 \.M T|Q͛Qͺ@ 6 d*.g Ǽ/ RP ?&|. aNZFT>jr\qЧ[}/o?O{M?I~{~٣G鴝%zH%dr vXF rx~( LL7B۔ĮMJe$tKa2z;r`(Yi&% B sPQ[#qkqk^B (R1iCS@ J (`P ~R BC2vO`?[ry37:W^-!C>|}{A8}-T@b+ C:U:jM!bg!r#tGGocuE`ѿjJYәMuJCK-Єf9oǻ5 ] yGFda`0n/#t:>}W=@P y5 4}xrh RM(Y319_vYR '?fB&b:~qgyI߳>9x4cQ@]zQqehГc/MԬm ?ƟA& % ÷jP!Ԯ)$<P-(C'VAn&nL`0_ 9=ѳup!&Z7~m& (}=ӱ>oꮾ@,4oJr?۵Yt7g؃ &gH+'Qo9p|˺xn=+/]G0Q00h³!OazZ`2 i4i!I7 %-Y?}ϼht@_)85!M@ `.!O?X l쫤'z0ѫؖL򕐜وެ%8Pѩbdag;=S+)Gc^Bu}ݲUMŀ!vĴ (W-?~kQ Yp({%;sю n7#}&jItwn]<nG>N&lsfƪ?OV^7#@<:0 (HbK!CQnU9fCxZ`d`0h@NHD$B҂V$ FIyoW.Tz#~I߫:{q"`gCge><ޡ|`x %w0^Rq٭NkrS0(|huݗ?݈s44_a221ψL^ ; T  DD4zQY_fTwE"sP"3Nw`Ac`<.تGQ;IK3  a42l33xT(%7&8''t 4Fѯ-ҽ#w'#'cD˿ۮמљcEѧ썒@PG[o';UJwSԈs"R!#p [D)~@d4tQ;a1{94$`6W9P1y?ey4Sz+mFIZzZ/SNSR]s#':GgVLfӃAN1G5"WS_/_sHEp{5  ݆ď;\R0a0sx(4BDN%tmW\G2s?( ""m2KTKӰOd#BaIs4"Q \]lTINں#-8e9KJ\9TP ""g*}2>8 J e@BM&&#@ #t0  9@zel*rÒ膎4<ݦ ~w tuwV=0xlɝ <+ڕ8z/\Au6r %iA- we1Ĉ,s5i""rٗ`#XEdHAOa},v!L$nAK w E8-'2z8<;"h1wLw3I(~m0& 44% NL-  # 5H( NRf h>b R5!ȣSlO Զ f_` #v zތ e [ycK AZIO{r>fZn~&-/ʹH^n P;, aHs.R>R!͊wtCHK(`_"'Mlk;PSX? =pT$XCœeܧp ` JYeKX{pBBξ](8/OhrH!1N0J`xf%W”& L<Ƭ@<`A`qC,RO-"UbZ, P8@ΕX !fl6 &7z !}3Q$8f*VJ ,ц,RI0JŔ3|+fBTH&$f!PZ@-,B0HRkj_D1*r"m%!K5!oI|\hMh%HG K2$"FxWTـxUB1py@Ѻ?80ha Ӽ)x!BUw<}uA_@}̒A#Qq@2ϰ_Gub27?@s}ЈNݐIXppIMD)y?0lн75P8@vLjx `X Ôn .c2ԗiYz{Si@Dy\/[,-npڳDy%>4t#=FPepԁ,?_`Ry%)~Pp> ?Ā7O I_'fY &Y yT& 2ja"&MP2dɨ$]2dUF&ȫRP \BԆ`*0h !)H`P t@' , BhaI)@GQ L?^%$3K (H EcZ p9f0 BBP8\' "h=@+^T'Px]ouބ 7R &N&EzdɓT&LQd]I5UQ^Qꈉ`Ӭ!fc_aivx @L䭳;pL \C\"r -yvɼ\H)!BFi$C7Z"x ` Nz@`$ J0a5%̀2$7A &А _44P d/v.T!L\O2~ܛUr$ɋU5jLȶ3?T5$L!IBBh&Zxb | ~!7hK,@Bt*Ԇ*XiE"IX!Mf{ @ !MCt$BB"$"h*ԳK9PadMgie]!eSg^DTp%ɲrAD] wR'cPQ|mo_>``t2"D2(nꪪ]FaeeZm\m)Q մQijM T] :FqۍM7QPDzH);3&D+sBl].s⬣$a~U*0܌Y*۪*s#|QsmM fd77Spګ310=m<(^sʟ٦{ ڳ/đE.r9Su4;E#2;8OU,8KKi$6Hَ->)iP(Jl+f#J(vq2VO!blU-bc#3D36mÖUYiZimyY LQ6 mÎ&m{˭+jjQV9UpKU2kdryDi#Gw 8m&ێN2Du;ф؊FsF+QFTq!Vy,Th`x2j% EM1aUXqIMƣQ&x[WM4IBq8ftFpfhԥ̷vBj1mĴI4pTMȔr8*ozR05PMұ!.#QVdKNu #Hٍjb`T%"ED)I@WUe]auq%)m~btJk }$}BJPvUshhIVbDMfVZs2Jʆ\, ATD5/ \5U# 33I,iFf9Y%al|}5UgTYPGۏ .NZmn?^C+xUHpqA4S(~h T◆"<6%l"t))Dk+bZxW+k蛗JX7k@O7bS54R2FIKZeUe%]6V=uiUae]m[q[}dlpxYq1"6q9NR| sh>AqTMrbIwM"Ѷmu#gUX7!mD5-PeI&SWvn^rmrUMtL#0jhI#[Y+ҍiWNB(qU%qV㘁0=&hԊut/f Aq]B5hiyMNqpGIWXn FHKQ!%xfWvk jW eQmfF )%S &W =\mz.Ice)U%p5;Mdbg:M94nF@#HY7a(bȚ I -SG p.&YI HBa1,`5䬏֘0`i# s$]cIZ ޥ+P2 9   $5#D0 RjY0:( , А$nK}PzETM&Ʌ FzF祟B,!LOER1,(0k/`$yb"H, ';Uon; ZJ.A Fp`BJyI@^Rexn )@ BHd2n(01YiS5R\;FlH1e'Cj $]%|ѹdTx0b)B6=}+ 3w zZ]ju/ZSӏ/H`K!RG%dYi@0҉(5S$4XD4!^˅j}zP]4@YO, (nɤH 0e#A*eIp!&os< ͜@̙b>2 zM#Tڪ}U:L)=y؞/dD6THs# ?`x C` R=y#/;XA0 HlCiD2(@:I`PBD̰8< @t!G~ID 100K,pK0 ~hX@08&$?JNJ 2 PsF rIJ] )@}iBI@& ii¸ '@}"}IqvfTCzHޭlk}uJQEU64`X?HÉ#n(QlfOF2,3bvOk#'`K @Ak]hH d@BdX3/BiEXfx@` vL\bJ] 3$r``D.ġ84۔YGT D H/II@T7İ($ɠ] <2Jŀ@rqe@qr"EPBh,῱cv}I/ 403Mq`<&u 6ΐQD&o2ʭZvU7)9H)"`us؀4 M;.Д(SaӲV6Bi44 TK;XpF ,><'ٱUGӳ~{A)=[!M `.!Oߑ$KB/` Ril&3la0wg\9a~-wЈą%Xvi0g2+;Àj)}{@U 5 @dpG]Nwkrfk9(泒DB0H@[w`9Nшq;XJ3i咞":u@A{9b"µPC"ÊrЌ!Cv["-?eJ2,?rӝMo#Txaz{ T܂#H%jX8,J gYSVqfC)ggo9 " aPErW_eDqDkz7읻y׭{""tClCwdd'UD3[/#G; ByfL̨3{Y4nV `a`d Y+T}wuH"!gE`==`]-VWUK@n DuT"&1 (+o3B4zzW(˳>r߄3QͿ'% z@U21tP"A8LJT:|nUJs[ubv { !^ .s5{ܪwv C#0V/wgwD2.(RRK1NJtC? Fk5|DBs{1| gwvzg#(b{ݷwvDO1~3;3.D"ʤ$-8ȣfQtGQ-tCtGAK̴dC a0 O8@g6 rZ1x9P4O'[X5X4IsYbbSEp VB> B (|?wkuB޸\&D" Hqd̝kRn3!s1#bwv#)nB989B0s̨bYK)A`x$ @іs_0@`CSܟ҅cӭ\?ky}{ohc `4D(ui*&3f[Ne!H`n;Ћ^` ,9J5J"=% Bl3f1._<+ UHN؄ ~ A,8'tLBN&v~-7= Vohjwi]}%G14CA  +r 8hL8!- ;F@T5/KfThB'ܪ9˻dow1ˁH2}aPA_h:0#ZsZ2Cݻ0{=Iwމ0/g1 _pD=L75O h! +3!6DGR~DS0 |K#\R7$W _t-1h bະZVhe%t %E !M `.1Qr Q)a T4b;dҐ$ O*hi@e)}(jp?B2NXYB@7&% Ʀ{66kLre>q Vl"ucGHRG| ]O_ֳٰ)5E+w ٱϩ|ybҧ{wD0Ua2D + I3dpYHGm]vNv6f _ ٳN$k}*Rܚ6YLЄ? fx `4yYJAH@ IJHqow`!< sͨRIDB5(۶8?@v"I̍BEH#b4C`o[=sHOPj\9/ G~9%I #\ */jfv/DDYݬMYxZF`e/`9~J"ja| !HOei* xPىx2'wǂi4X,pD)yE"1)':$i3)v ,fN.dɟ5İ̾Ǥ,+`*4aj)R! Ͷ1A)J7o@ҙ-8 H@l@2 H@X4d( rɩ 1 ܼZXy8}7BAO.o'RxPGI-;bChM$]g*@ix@tIW@a%a{sDF_s_D6_v^[!jw@s+@pR*ݖ^4ы@Pg^j 0#RDR$dv@UΙrv;n&p%0Rp0|7=B=?]{F'W\GXmfFvdz?:cGluwo}{GH^yQ&o^>  8}t7$_wDH'mFsc ]@wx w΄/ ;R:T>q>j1 B HY4$PJ}mڣ`:(07#`.ꔪ{&QYyCx Z ?|'UUgUr]K:5}WufI\[=@fiL!%ԯ" QU(\]Aw"EP$ET@"*.4&0(DIĬJ"@V P@` "I'p2P.t{C)7҂m0J N"#x:؅&Lc4MNPw&nT!B$H*Ed5HQtH& cuW8uHT"D.DU-UH &ꄍA!{<iIJ ^Nn?HJ:Sߌ@! pHO4؏B !x@HP"$ h bHph L`:( hHid@bQa`QA OHbw aB'p? P  :9@7 H-!%/a'0-B*殭w>B.T̨qUW&DuSKP2$I1u2*y5v FK&M b R BB@zX`  P,XJP.YI &%%t,$Z 8?(p`*P@dX-n(4 ~a a) “. !MG `.HjQC (jH8Bhj\7ܒL~7脃 @N$Yia033mjmWYU'*p55WDǩ"H5čP+{H`,.GS3WMB4UH~ Qqu .EP jDTX<E}VwY&EIb\UU]ɩ&..8 `U;L , @&HHŤh2I/%9`~ I 5|6( v5!Ѩ)?I_j< $j|bJĴ~czƀF$P zzy)H>F0}*A/$nL8DX ϾJV' xBԐj$_ +*b+ @4L d04HH)$:0W$QAHih ()ZSD!(`x L@NB DpRzK}jDD5؂GƧ4h@aa C0,G"a3{I E`Rx]. 9a:/r4&&XBPp 4$,  Ɂ?|a`~8 5{ ]_7&IHSV VPГ "vL )!p(1%0 XAI4@ @BC 4Zs$b T ~$e`JzCt[$ ~Eb// |0R(E398HO:\ñhg\j#1@Os3;F@1=HU2 RS+!G jF H$jԕh ÿޫ٥frLcZ_%a B-Q%&1(0=;5K2R@toZ>0*Ģf#D2h D  %K-|  ā@?7?KM @oON"|` KF@IuukI[$7%dD̩h }nDXkcfӈcM 1uh?N`Zե&8kerkKך% ơp"ܓ+rimȎjՙzՎb.DN%M\GAmI*6b%H8b-Rɚg]IMYhήѰv3ݕ.B~NP`T#BA""ۉM(L1vafTUeZ]\mjZK"Q7|'\A h7khm{ߞi*.^)#PudwB{V,/ W{%8PJaITVx$O)SBZB֣U!Pf4x^ **f*.]YM,2FN"zn v%'K_Jr3+laiJF eĥ.p5XvKZfFk+2 jj$xPM6* i%J(Q!M٭ `.!Q7u{gWOpn+e1!P8CODe/f@BœI|pc9  :`r҆I@,&$c7?6lK) u' 0F@ ? :FV+g%dА6=Py/{F{xv-<槒c3Tܔr"@ьWw.dM>! Ü*W D{YB~fB33  A1X8vDB1Ta̧a&7FTJ2u' »W:ON,>!؎o%jӥqu#i% D4I2Bbq*!KOpnwD&b+]Ov#a S  UJ_`BO `=PIAZ4S?E蠶W{|p"] =D,a Tui Q`?d脌 AFvx/i׽ޕU! e0vb@hlU7g%849)%10ԙT2&E0D+ZVjo)[ON} ཕ~mѾzP}y==P@hdPtz-GlA†_"X)x A?e=l Њ0ͻ Bwi嵦sSuaR` PMOPH@ uG~"5=Q h;lB*Hm} p̌wf-t!ݕXϊ =j"\8 L#hȆ$I~/qWCAڧCRC8E$>rc2  (_f@U 7P`*u%h`1tD"ޢ>,׃! <~Da#А7I"M!)Z{mDa ؃'?  %$gb@N-}64$Q]IMҤCjW%kF A|c1#]!9GIx1jN ~h+1R!F<%˾* +PSFo`40Iۦ)x?̏C0d`J ?Vgv€M-|zb aHF@QbLI3>j]\-,tDY_p6al_D7Z!kr1Qhǿ`pؼ!FDJF`Ա1) K38Y(0 ) HPÆZKW @ ]aI[`$|18aڈ1}}m}ۯS!V5҄3ER4 D o݃ ׺>>SŧѩO!0b0t5ueQAy/{&mi*&:W$|r$q@`P '9r `>NI ]s1f._x,}\16B&ZD&5>!fw'i(Tdji֝q-c`c<N{0SGPMMq&Eїdf d|0c-EΌC$>@ bB/2%:`d!  TNB5~@ 妙~BU8榬lDĮ{}(0"3f3IvomJCtm!>Ō֫1~XNowRhII ?z$Ii"xܕS<! bkoû}zjKuc!M `.1QQr 3͂|B,wv[1n D]p^ϝҕU0˾=O+S +a=җN>K%y5_p|ۏww8'N(@ҷ}BbSgGU^@6N[WDf!f% ˾<b͢% qCI}\Җz64I:@Vќ JF{<)2CWݏ `rZ]*hKlpXdm{*#-urlF'lt+!$(FkqFų Y|2P*\9,`x%~ ^ ",d† dbTZ !*e M F=ZF 2d>; ( pIXhSE9( ,fHK|JS2t'bd.ҞODFEׯN#!(sf9p.N|BɆ ݏF<L ItVn& JYЮK (x$M`.j13ltL@gvVOGY( O ,kB0@L/z_a!f_v^S)lֻcResϖ\M 4lQH@ӅWW J$Zjw%: HcьDZpu ,Vbyv` vP>dUH7 I܎N|v]qu?Ѝ`ɈKIx@#Kխ2b6}jr/Wԧu%{&# HxrͪܙQ>>>Rw7zT!W i SOodF͂R#5!dIF?񈒤Q R%QxHfADр@;!%&pTO6$+ɀ 2ja"P+2jɓ&MD"ɓ"47PEUDA(,p!Nҋ-4(a0 -?@b`΄_:H.啉d d E`>X #3$6;2J gI jPƒe` Dj )Ր"6 6(҂1%1PH+ \4`= \C,4 nL۹IJGR ATnH tͷ< dr`(z8(㿊&N 4`#0 4 0Ȕ}DP߀D-5,4LS˪@jnd.$$',rrjBn@$7KPL J7UҁG!0$Rq4jɭ@K+$xL'U}nI\?rnMUȓ&.E}U5jbjLP @(H@Ĥ ,Ť0i$ @@b`jP$ƒK1NiH𐄍 BpX$4YA4ZrI %@# ! ` d0wZ 7$(7N KinGn aC % ?R74iHA A!O `.5!*TV]Μv@ɓPU@3a NJI7 (BP@TX0 F'_0"MFj(*$T& U$`=V&>*W5+SDPjJ$$`xP4 XvNM J'_$%(,#$!*1K&$aX '%!a)$5  X>4$ 72᠒ԄThz O.Y@_$ynF<7dvdA3rb80[@0&%` a֞8Xb>@ ^ OĂw_GA%uk~F {UjA&Jd'a! xP$ @AHv׭:RR)p39#p#m`=ya.%!F8$l0x=3oPba&DBJ0B PM~ӣy!%{x[mw^4t#3  4dumD ȓvB`U&pj9A  Z5tC&@6Hax 7%J,_Fd߀,@=5vМ'Wz% r]ڋ!x 4&hH" >&+zLt؆i!?oj1}{,CJ K%VAe#--HLP``Q H$^!@0! g%FAxhRyv@d/ @ie}D :A+GE##ZI#D)A +ϸY"ޡ.1\`> po5%v<^膸& H5)4  86$L0@ @ xw aĴoPB `RE> րᜀY(&mbq@H1H>Ew8ވ1,d?yT1M@Ai=>&$004p*W!o1X P+CJTp/ ' dh]䤫nAC|@p @`;bP@ W8I '@ @.|xpgHT~r&99Hݠh (@g"=Rz0o %X==#R Jxf՚ mDSQ E=Y=< ΪnU>4V,R_@v?i@)iI nt0O~ aL!PL%SG3 %;`:-(ĴoH _E셐.̔t`<` 1%r)I|^\C:8`M:KwS t#jrUE@BCY+ `I% b0cq$pt$SnXxfZwq(,#-=^ņL=d Em b6a4PpdX J&+ m]&pC9k0J39@7azb0Mo>$P)p H&/,D^bL `n(2!- ^\`T_YOR NI'v@ި۞OTdSMMuKIWx2p^T^bC՘߅:6!mQ#pĜzI@9D:@0!)$q;8"`!OG `.!QY aP ?-8cu$x55 _RIim nHPSD2k`5:p~)≊&?(+J&''uV)YG⍑a $+@\)xxgKnujr1u7%a4y/{WvtfqZDrΦ?jNWe*H`s05ht3*Y!+:΃7^;̨b2U;M–u5KsrcL*1)!u9޼^ f?% ;7[YhdFވvfmvb!X{iA,Jl࢒2X(erHewMD&[Y'LydHL4qǿ9}oI%itI5Bs/")bqцbWJD 4:#Y #f[iT!S)m'"!n!%OP^( -5(.0==E#%(j] P"% -g#YQk HН9=ΊP_׶^{`$ uA "s #ߕ7;ڠ5 ʩNwkv(E1N8 {s"WD#4Oq@NTbޖM*y .69ʧ>ܪfb5 0 "!TA_>Cj,lL ,y)&7Z0ԟ&ɚBɻLd3 ƨm 籶a;.N>2($ AV;n RE"qpGTiXhg/0gdz1|cMtĐ6moz" 3@a:K!khG90uQ!lc7S)"Ivi/ %s2Z݂H7M]䯸J)TH`xEntF,I艱SC"hYI''>XY# 0 B+<9u OHw(lS$۝|{%tF !/ 4jha4!h!Ӆ% 449H S0fd2nHhnu`=RLL@@1\a$7>dUvV 0(X=cTi-d3~x> &~<R bc@ 4g,$5(@#KyzBc<^wx\7i4 ZP?ElM];#'(e}8+w!i-#ERsY63=M8 49(PaN'Bׯ``- O_h#D9qz$r|Cf(M&M&KRaz)$1xx3IUo׌`͔>E9Dƒ8y/{yLJl6{EHPȱVTَfc0._",Hb>ý`MhyMaWxf2A(! 9x@N8%v@P8)Ąӷh$6ID cy:=8^!jX c{&p!lH - >C,ǂ 1L|Ġ(g-bDA,s>Aиs䦩.X!ٳWPEtkqxǘd3X^7D1JPHNNu x (o U!O&{ `.1S!Q+N`>c!jjܸB>iD]fvs|k% HeԥG6{_fI9|H{t!?HE/1BU 1P0 #J|haeJ"ܪ|Y,D>XhҨ A9;D!!ܙH!RFp `D gWP QLBи\| aT'(r#D>ܔM,D B1WK4ިZ( ЍL RIvyl7.FCV `>j&{A8\ "l,J%.B?Oۑ}9 IB@Gir$@ᾈEj<#D6Dx gZ2N<5mxT2qs\)7-Xj sP9VF)pF.~ڋ %e|NxY/m;CxKBၩ4`IcDІP Kp= Fh񃨈< ) MU}&+^" f)L1w e0gUb5{/7vU'9I#1 &+bb\C,`Q*kLh!|` `ŷd҃Iq7ךeB {6߰wOp)lֻ) 8pJ.siLWfl.Jxi1ݞfG=Nu N/fЖ\*LXAtԁo@Zـt8aZt8zmRAAh\Q 7āOa)ʹoW9~ ;O'@qSd!VE`@G77DƖKsMɫwz**p{&ȁS R^8vo36i^lꨝUUڻH!jjȓ" Lȓ"@!T12$Ȼ/ꎢTꮡZa'K/d`0 &pѸL%J#RQeq(ZF; BKGdҊ&r|aI-$#Df *pQ_ABeHW~ pݹx &_rbx *#R@$q;/),w6Id ;MMTф$R "DUJQ~*EPP4HQ QWPMU\z44ҀhIcR Hѥg`|PAƖXēu@sP,3%#FAd7bN,,W@jFHL))!lPg#@PB&%c@z0ҧ }CxbfTb(D.%QI p2rB퐐`>>Q?`=L+2J(j]<] Z]'/2\L?67ɇpU]HZDV X =C| H'?$GGH : hNH'7<C}=g'Q oHf ? RIsG'}zw> SurWW .+4Dx "D\TcA$-|`Y8$`  C2 ,0.Ʉh@H儠& 1 @LYeR0_-o @䴄 F uEDIbS331#4ڍ*ӌI#=]UeVXe]um袩a(*֛ [Z>b]z恈C#V9t T]fPbqC"坺E7v6 ni%ql6,--Ԧ[5xے9GZU60xkj #QI9Ҧt%QmZib%mmTfk`n'xzwM4BrmI*$Ud`Y"&M&(I)quG&v!xWuiۭ((WcotxNrin:NRՕxq7+rc"(]`C3"B1&m4:?RUU4TifZUUaFWQIZQuVL ƐJƖ' m8:5TɵVRs+W:B҉D乶DXUIz`5zxBl{L#[uZm'4Vhu|J#M>/QLeQ(SNQEmGv CFZb8Z/ĎE/lKH,4w$Q.ة9%mT"p5 FA ۄEohfȑRpBJf̢ ȔbS#BC"6i"@AtU4]YUIMFimA•TC\"XYMi$q䖟Qȣ{"G/zlL$?|L8X<8ɭ-g+UJMva%$hVIQtت2O J2mR=T}3uIZ d`ԓo0,4aS2m"jU Q!xBc/ uh=cӈur+F(Ek`bzI!(bmatIA TʳLW8VZm*Q4+[+#huv85`C#222MT]$Ui4SUTtAvQ]՘ywIjȩ9MQN[ F:tG\Z"IO˃3'wH+jmFq[mGm%w߸˜δ&dP"$f`T:B ysGz휠8VsLL^Q8=FL#1dI7EWiָ..35֖$P1) m'|>YJj-Oa"*pRo"rT0P|" in&w2=dӃ_)ƙz$bD#DC2GqQQeZi}bƽ3EM76믩2WwMҲXD6"UB]ѨɄ<#m"]\!OL `. d0i:HI F P0P**X`i\ 'C0H% A%J@l,s E몮T!"@p "L [FR*UZ\\\UFoT!9%-A'pPHؤ8JmsY bHdai,Xhj $2jKB8J6ii- }O575 @4'II,)$lC& CFOe $r%`bK! ѹ@M 䤖I $\oF o4(^Np$/EQj@ {t` h U@Q XZ"SI4LXJJ0\ Dpl$jPFHG*<rZRX0H! +'tD^;H—t BEҨ≄nM![ _,4#~F7xY茅(` :d;$zPצQ?vKf#t0=+ؐ>zI47Z)rC3Š$4vhf%'DQr@HGQ褁(? ,K D6N:* y#d bi2M%x,ҭZ d^vӵBi`dh(jtO@vRic J290"%'JB/Np UeTݫBj &됃bHe lYKFrU{db G։ԔJ${b%FE6GϠ<’1:T ! 70¢pi/Q&pB %E ȄB?ɻ/JxEC6 C@T `RdmKy3,f?{"CKOQ}^I !Ĩ޸!!V}LV$c*g+&>W/DI `U`7#BEm" zRMha44Ćрy0![IDOIR=h/ûDҗK@TnF=;P7N" X2979(TĐC첋ۻxBnp0> !WG:&` 7( 6;/b)h5Q 47.AN5 U)ɉ2d"IHd xgNOEPTTT"MUmESU:nϛ !!B\'B(XicBRh m'B]Ⳡ# =#cSxh!3I I/6ɮe2;ov9]2R #:'mv0iIt jzSݜkqd6 %yVAF ac0@958W@OV|RRBJ위DL(;+dJyD2N0 K솀  1 $4i HR0D"J/VuS5Hipsv)?;g0݄gi5-v AΦ_§8;YKO75zt*z:8r/G6qר#琀atPa[?'w0` @BM!T$ ,yM(2H,Rpj:A,!O` `.!Q=n)* djCC5> Y_fP(UHAH+fUסtC (!%.9RCF5zx"*.Ռw N#(D#)x׿؈R>kǧB 9B`c#\ % w0AJCbVBݒ+kTj2LsA ?spWA{<+0h|+܇s:FC"#њhfv9kzaq!+ǿrӐ0ƀ2Vx)`0:? / 0*w'k A }Ϯl&n֜,c 0nh) @KD_[tCMťsS_epl7m"Cۊ0#_#0Et׎pxoC`ڋ(^t$ #C2oz !B+1]i$vbfq~ T#]O#6%kPlNn+[ǿ`"SX{d7P#rܿ2!F3_ HIKK^fhw]iÊ*'5I䀑[ .KVS3A Os #!OXAf:~S4%ʭb!̆eWZ})Y#ϬE9otD ĩ*aw28oKX* zD@ RB;_(=UX伜k arPDRG6ƂZKz]3. p0( SRрY|Ix_w;-<8' %k-2wS_zP3Έ!C7!Fq5x14Hp<H{@n݉ o`L $81uᆳ') u}5  "y. Rs-ʩN8.”i"RbaeZpH $'HT"/|p1kf^;QP>E\ߝ~a#b N`h(XeB9L@ Z[h7 Ώ\C 7;Xj"%WwBL+Wra׷-(>!}=f{[X z10@x$acJpĘLPZ{5@!q+  g 1{7va MK\-]kzx ~ZJfɛc.SH!Hx׿})~9($~c,c1.^03}? Lm lJW-nFA.MchtQя ŒoZc$%F@r{\u gXu(̙\WHЉtɉC 4и `)pATt/K@"Vb&zO`_, (E/@tx'db __~{|8#6mGIB±a㧰N*ߑGl)kk}\() z juSB`:#'X>=~W-~zzp!| 1!xB  \/pX #V$8 > OB6B~(,%rd5H Q3!)rHPpXx/Jl@Ko^m)&!OsG `.1SyS!վx! '.mxnUNJQsZ?Y%jdր !)rV8J.lq!á(G=3q!7Pc-]La  B^5ׁL π b.J_[fdjƥ²44X4~J)rhOD`~g?Ҙ#sl6{N` P{ޡ$}?_EmĝF/dFd@8^X=5H 5E%͖vMwI_b|!O)5y&bI3ፖkWRRM* Āx#TŖ’Y|bSl[рR)Ě) Ӱxw04nW|i 8NνI `(RLţ%q[.?bSԞx!@`d1.dnI۞*{ ',@;@&Vo!A%pԖ~@1&!(JB%ߒQ|r_mNB 'r4@0b7 3~ ?de/UH` @vL A i3t w|vwdOjͻ^Ap*;tҍW{04 v,ahB}e=@.f0 0@`CJ@IQ|Ծ_WIEdۧ۷w* :$HA -hJ;qT=2!>\P @LCI ,F_FdujbL'- Hf@ 6Ax5~B` vj!R޴P WvE P_ط YO9 @( x&Y(b00u:Fov*p @:/rɹ)ᥠ 0 HAC׿υK<=zhOSZ<'xC7_oRݯ8 \B <CI- '#fKԶ\!*:I .!Yh9E) O-;=P{~Z~dly:``A_ah+F' 1-B; ,vc3\5n9*t@2ɀU& i{79tmlCvmq ( b&DJ 0/5Ysy@; ɤB:ZPJ`̾qxQcxJ圭{cR<A3qidx% @'#W^m!O{ `.03܃(Zt :Hԓ{3brBwl"L ~z^;!1 !lv׷ɡ0 $Ԇa.o.J:?í ZGxi<&xJ-^<SjiMR?B4HxQbD#U)K{".RXaQabvy<7xx<K/ͮRTQ,R/GU(}.wJBm'JRrBdp7,q ȶ$vpgp#G~> QD `zq$q?a:Gk黀iN p5ol,X:?05͹hi>?7xw$x80Q$#zO-ljޏ v'Wuq7'A `) *7YvAY!f 5|w0 R1(7!OK0*I\i &K> ɤĔ=:ŀBp*@5A/ ZJ!IR%nj±M(d03/簅 aFD`'t / \` 9hRFﻚG<5# }M5@L_ },᤾xmPE~^^<πkd)?'? F&anǨM n;̐= '/w7z~W]i&y[+dz|mtF/>-'''c\ub<|o|/4ŀl_ǮomrEaG\<2x<x sV&l[d_?k;%,  Ox߁ؿgC|?#]Ǔyp|g~{Nhx=Ł ߞy>??jnWGO07E7p7m7>4҂p?O]k4A潬2@M!MnI+zw`y@J쒓߹p@ @``Оbhl9#(ݬ1 p@2"& &0 (Rsw~>l ͊(cIC1|/{ ,85g8~>tL&f0Gos^"0 tZB <щd|ϏγQy \ +J&edoc(bo(n(I fϝsy(tt`e'6&!<4XHFI$/c,$ľC9ƻkGVI e5ۙߝvg7WnrKzT &k}D괹JQ pӿ> !O @ !Q&=jʭfU'dm0IɆfJKPĚhhq'=+u`șM [D %_-'Ąl/* OJw Qk[G"I<ĤnR(T?k:}bL5y(Q ,%ZujƌjSi5n2%=:nO6j.8u%&.b TQ6L)dr%ܶ%D.@`E"DC2$i5aUaYiYiqêqFR,/ WdF)cPE04YQ5Ȓ`IUZ^+!D]ocj@\%D]A*7/F,47|RS¢KS0aR1 rXd`"~ ʙYf+9l6TT/vRQXMDѕH ~hFuEH%䉵nW}`*N6i &&d@}igUV)^hM-Mr4oX!k!Rѧ2"iGbN/FT@CUN94ŒbT#C33$M5]fUVaiiuSYB\4*Vu)P~)%M59DȲ9*Ȳ@IiESIp%cuţ)=e0N#aq#SLä+[O^b4QM*Ğ)&q'yn4sr:)6%e%%8yO58Ӏ_QvPɓq5j"J8M5iIbڒ:D9sQ$xM-BsʹQƶ%VD`LIKUm#HWxM9RRhե`S$3C24NBڦ]ET][ai]uǛm#4trq=e69qMHS gܬYpSZQ/[4h®(dÎ(rqQ&[F]ƈI4hbdcqȄ:SNRR>J@iU&(nCV02s tL(KieMulq`߭yF,JqXi*RfJo~mBmgp<.m,0ȷoTn errIRcK(dTt+$8ِ4Mȁ:hbbS#3C#%E4,O99U]UUVefWaqelejYjK )N@-hTERS F[$fG a( tX&W:l6^, \ZXܒ`p( Yhk[ .pJv$KfׁMc 8V rTrE\&X5&iіHnSDڞuEe8M[IqU:r8Dx+,#kXcgS,qMny_բ 'aȈyqX\SŁ5 0Kb*%mNqn2{8cZ}7|`T4#Q9I<4WUEUQfavA- E_gM&&>xSQ\扸cDzل^M6Wm̐&t 0ff!![u]c!\4x=hѶ{#+Wl2Ԅ . GaQ)/Wa[nXEtR:[B kU]zueI\>L!O `. p60`7 h4 _6Kdx"kŋ͓ X͇$ @k qpkbw~O6Y/? GpAY>p;oM=ͧOr:{ӸϧY{0 iBCs>8\ @,O;~ù?nE~<> a;! ?EΏ>W,|\$ۛq!~/ΏY~GqM X. 5!aB7%>   \)0̗RR IEN%_q8jX1 bbRVQ쾶˲|`ZzzX ܀ L@4Hhi JOBsnQt.( m6a!H@FՏqr2Km;-È7H{ 5>9/ S5<y??GCF#`ߏZ5|?XM>͡><\{y, ~a6.oi~||1ni ?ȴ}NC}>x{+NpE>#|}?_Ax׹.d}8 4w4`F<amg>Eg?}w&?p#4[ _܎w;blt13' /PǑG~{=C[O,Ͳy9őx9x}>p#pxYx\<3F?M?}8~$A9`vQǟG?sa[4|w#1B5ć ݐrSAHwfP@0phpp$Ԓ#~5?`@*.hQ4L!ĘFD"d0Բ[6ߜֻρP A! +4҃7{@Bx'PGFJ[ ݂[4?? :?(pfK~?]Gt ?-,V1]0 +YFeI0 00N+ħمh `(?JsSKaD{  L%6#T @1(:OV1~d I@ (@SvĴ%;?<.#,/Bh E[RT~i o3nn~bC @30Y5%3``1 ,? j{cW||_ !O `. J&':L,dI|e4Gp# 0;|4H?_9߇>Ox. N& r-kkw"cxV.]~dlW#0tā{?-;̜@=8 -ǞjųO wӭ`o8{S|F? ~>T>p#?1uOguAx|h߀\=wX灯g<g#$ J#׀/Zp$>ܲ[46_1u u( Z? P*P J,qxbƓK? Rj_(qO97(PB43EvJ_̺`2@}=v` !y0nJqq>` BCQ)yI7p(TXɡq`a?5"9i/qsM@!iIwz{`y.ݹ83xy!wA[n罣@?0@$p ? [wATp݅Pӷ7B`; sFZT 0 ?Ѐ=M!Q_kȓp)D &4^a*KNW8~El8*kZQJ D/uk}mn^XJ,/ּ"nܮFa۞H&wHpRw;Zpϫ q10Խ21JHEa4 :,%e`|45Ii5b7Lv礁Y%.\y 0,bHӰxU4RA ᣒN~yX .10JGd%8=w'V 78>-/B=7]6y6y-Q  2}?I{?Nڞ>m'OP*yyyȡ"`n)ֵOxkzp@@h b@&`]0@p 4 fMKP (Zz;~~nH&n?py8!OG `.`Pd҉&JO)?~4^n>   reYX0.T)Knk7wՀ4_%'iASH3d̂H_A9F #Oxj e6Ihuvg$_fӃϱR5_`}|.B!p @~9`_RW;K/8Id}Y@& ,ia^䞍>r:M&xqegNZVioI1'. {A ڠ!um0{ @ Bn .One`zw  #;A0:IF=< R@ @3a4&%V^&?Xςx  4Vζ죫 q11Hߟn2aA4l$4f )EZM6?$ݍ?zEhMO%3nƀshHBV >|6X/\xi!h0 ^N_NO]xr2J y>}+>>?I~>_~\x{>0eq͈Hxgȼ;?[~ln[D!NP tkuwہATco@o%;6sGœJ$tgO~w85=..$`fIh@tHGi@0'JK rw?[jdlE }ȓ0whOa&/^!TY1=Ғ9߄O,06\s|~] Učڊک pD A@&Jl:SZgQ3I@i3P CK3GK |p IbfJ9NK: 9dPĕ9bۅ~l5 (r 0i)h IhPŠXB1cX/0ߋ>:*TI ko߉_$5wHB/@0ZJȐt}d_ HF$ԭ}`p+mQV<  *\1m&&UT\xՉ& P_?NVG~G~G~Om|1f>^=Bx >p"EZ/c`"r  8`CLd4CH4咶  p =DTa!@3X a0 <( r UӀp7|Y+ aJr[0K:0nΰyE1 2iX\- A\ d4@b L ,$ҹhJjWכzhat@1BZJ0@L0T:yE FV)Nၩm@g߸וRu@bL!~+.! 1,ɠ0 !9d҈h%jQ n5` h&VL`I(Lu 0RB r!%#)9fT|7%wdA3^@0PJBI1 ¹ܰ# 3?:- IE G?r5bad/>A; nT3=R5nI)CH`dc%RZV7q4O `PlNbt/~B% e33Jg~c>%g_"P;:; 2Nw?N&> U_!O{ `.!S?!ۓ7{\CIS F"JOG?VB1 s{D2 f" fnlKnl<}|^z6& ^}'ϧ><6 o>%m,~?O}MG珤G~jy~>2VHg!+`$`7,w$+uY nS4hA)Kؒy /ZIoZvyɀZ ,RS!9(ySԘR 0/!):v_W?O( e G)KsP㍹T1 ?oMNJJ,3?7}C_&4 R:WK)kd+4ح||o QiIfµĢY44>mC& C2fIvؚdԠ3ph3}Wu@hV I4?n>HI0JY %^|=Vf2~oM&Zn7*(;&47hS9Q.Pݰa 쬄njY g 1IǠ"DQ=R P-()+ dRI`gw/~ٹly +4YX4;|{)nA)Y`vÔA 0BKOHޔs7dMP'ἽAiFJӷW')1πöw@ǰr-A0a o'@A` aMII%Q+noy,0d%<_cTba4,aV- (o͐5YO%8Ёf)A5Ϻ3v{Y] J>2~(ߺ (8,*ѻX1ؖ6q +C8j n$t<aU{%(G_Ff#*cq۱#}&IWvA-ѿvF0#% φfƠCRߍ|cipc8x& M!@ C+44tw8tٵ@@; &T>6᭷K1Y!! [:9\g])yX@nR"݋3 f4ebqMG"!qM$XsLMv*9U]H0)d݄(s)Rk"RIL«WǧjfYs;X0tѨe s_CHNwss <(:JsLpR Oc]wı+fARkyZFb#UqtCfdv29)=c0B1”# "!oa(W T֖L&hK{M2^H^?)۰ >n~@舊ڈe !}DdBScJ7&sůdpK2A<'gV$n A;xZ_a$xT 茊4%A&莗5.j!ତA$&3١SwU) iG׀"!^1(65=DHwb+Hܬ DΕ% x Q"a3p`Xjx2W~n:Bn;9E9?\% c3FF tQkuV=»y 9 UA?}}է;Kdv2leR "xb0xWŠ 0Uû'wpDIzO2&}8vU7̰Ènd ~pB0EЅ-zkAbHkPJX&8G ~OZ َf1B "(!O !Q `.!S\m+=ش1Hc&wGIg |8Q!ڜCZwxyp`iAԝz X#FXNA$` L! ! b,a\YiO 0"o$}t }Wb8u` r1[ PVvCI  =k]Ou-#+SŎ@t r`ak[{n "#q" uCyU-ݷj!cAhţ^4o~C:T"G]k !dɸr&}:S  r6@?h?" @s~|c=mC1 pIGA.]2wImC jOjE4ƯPΘnU{p΄ht(`A+fv`PX!_@:A ؛\\ayX@nZ!-%_mw>c͝\)B&4Y.$H:zmWp<<_BH Cc,KfeUƼYw`(<؅&JԔr&cQk3 *c`I˗hF:{9BG`{ZD45tWZ9ei{6R=gBuq9)@TzTƘ2!;WĬc/]d}ēK>o[{o` &6< 29Ps6%HgVh!| Jx^yA}j C.hf !`Au,I>>槭uJ(O'I%DOp\b }t#咆E | âǠ<A NI2*W MI*EAk&L2$A.ԙ#i O @`#4E\@($2) I4 xRԧHOaiA0A@6JJ@ҐҒВHB@ހ $Q/a` JOcyDdptC“grhD M@x{UZmsFR+$Ib.UEȀ "DZdȑ^2dU $I]FR &MB"):h< CJ@`$L \SE- IF?= P߆6&0I6I4 '%~Q,}WBT5ԙh _&KDIR& *"jEX @R$ը"nɪ2AI$? T1106ɣBC K X` y%BI0),|R:y#rNIRha0CJ @ Ha Bz(h((F<h>?Y膄J@ U:ꪄB#{0AHDQ"ET \2*-ɺRdH @QHX"~:G5r.G&Pi,1$jKH`_$M~Yy #@W$`@P @nMIaa$F|RKN `HB"i))2iEB4 5 n B CzKGXҊ#oh}Љ$Py ҷҶC9Hݖ48LJ0~ _#`)䴕Q.A!_x {IOv`? =;Q 3Id-,? v1| zTsJiH0i#mx{Es C,A/cG|XV/ׁm%bgK2rBˊ !Q3G `.!S= ~O.jQ| =PlmڮLp*8B9ݠ(47⑺Sͳ1@ RM) +P-)enOi*$8h+wPB,7  %4*)-ܲ'H?nWHhpYm핰P"]dǃ* s^T"F*&z :Mu")BFkb@X +~Y{8΂$HБa)}@CA wd7 MЋdU @h@Xidf @?;`FvI& g9@+GZovP=!?h%iFae܄Xg_A10`0WJJ G$A((}L@DKdm*FTk]ʪi*}S@P K1(,`/H.vQa:!rPidI΄>gMm1$vRPHQDRb7$ohqr=P~K@Y715170bNyֻ:e<}& (JP B5((%J:wA0_'=G%Nn. A05%8Dr3uDdL +dя݀%brVwݜZ/ W._$ FrdpעDVtZ^RЧjUD8w=~%SBrHKe;4-+Schc =q\qxW= /~7gtL ,nHa[V6a6A M3@L)%WA6KЈ lH;+2w&+ p rX~BӒ}t$lv1 I2+p 1Xbhl7[y BF}1 NLyc3#')nE!M$!x#oؓlGkns|ݶn0{@Yd !7%- N 2͉B N{X^5=<@Pov.9*=_ f1.h^Z`p|Ւ_1=A(Ek%$ft1 9IZs^Ȕ純A_  Ƙ'ޞOd(f$dg]֔$gC}', e}X&!D1!oAd+nCt!v7 x MSKtikhJcEt#B?ȡ6^d)7&@Fp[m|FrM?i`Iٴ|J 8Jc $1IԌCd =~Hn8Ñ`>P/6LBZӇw1u7ww!Fj7 ů1 Q2J")I?RJ+pҀǗ\@1~q 4ƌ &BZrFhgAG;/771L&`̣\ߪco.YCBߚֶk\ J k4?i9nZ߭,-_;=`)(>6 %$eԴE{ktߵ}x: l A HFmekS5<UY$W%,c0} ^eEwkNPOB) WjS @HB`MAFLm]eڀr̀WѧDsMb61L(eY?! hD{y+N}P^!QF{ `.!SQ (P]rI vG8ՠǀnI,s#!:*6Cr-M4b QFC<"Gp)%/J c&kEwzk,ZiIeŊV; i!<Ie ?x5+ߟ H $k8M̍Nm}͓ QFE#[XRc^t艡g}#8FldgZ!% j잕[͓C-^= lƘ_$>>fB i4?(;?ݘr,[ΦYf{Jј3) tkBHa$rӥTHh3VY# ?-BqP p _)}m_~@ &=7IBY$nG䕀F؟b"gIV!]|c͈K.SH!H܏-y=;~=>fG}o >z3脸OhxdYwezݍK] T7dB3. B|pZGV(o1㜟w!t4䞁laI*ϻ1D=\0YsB7)Ca]| Nԃ=^1~ĈQ3oԵQ,x `?o*Ȟ̦!X/B"Lr)S݌@-TnSP,MW8'4 (zPдWk}YJ89;D6lK43\ zBiIcƻԩdݷRhA֌7YTwwvm7oLuOp6/Z 8! @?PB6&`rpC+]AoۯZi٫~ R]݌^ Jowjܦww`3!mA$Ĝ+ @2 &jr@m8!TbVFg: %#u2,4@! 5- 1ד4[x`†c#k3膄2A=˕-BMkB3H#^ks椧ޑ54$`|adzӾK C! jL HFm!E*u޾e3^ _ 'bx[& @r`J 0A^ 8< @Aञ@wvI *GKۛDd}؊h1vJS^^ wId{q>kΤ{u AB' [ҕg OUq=t4'^ٓ$ kpЎ{mE]d!2 Hڨd,CD|b@  ܓyS?' (`H>υ{+ =grMe'HXi` U 4B1m,|@b~xB -rA1;>"pR>|?DO")B,@9n'+!{` &4Aa<fBY$nߒV Q$`!QY `.|8}pka4=uX[o+8l%!cn읻:'#YgTH)p%OwlTD>rE\;}AH |+{BnNjxIc|>:h#f7bNݴ!moC SЁ48 g[YQ%)-m+޵wꔪpzN\Z愣 !Jdt_! 姉߀wPxt>mQUFUJ&JS"cK<`=`Ǝ"3va1/yY5}`Лaf|hHTȀ EETh-qR*EETA1wu*{UUD$C0T7@G_ Y'Xp%QP&Z8ԁ_/D`^hOy4~DٛxH`A`ОƄhccG@ DJ@D4ڄWV#E֋KEGQjMԽ UȺ",a^TTD\MԺ"\]UH@adX xEQi$Ԇ ı &K+z @1!@t@ bC^ߒJHNO `ĥ %]jbhgF BR\5`~a`&ջY9>[DaN&xi$YA:z]T!D `^EVY"EE&ETQP .fR\]fWPEEHR+fȩI@(D41H0` :!D0h84!cKNQD  ,)Q,aIYD@ 0@ BC$0 @- @ Dх% MA0I`(@ 4 !M r(#I1@Pa1G#P==% TU$XgF H$z@xpq+Lb&B`a3`@zZhD(1|#Tnѳ]V]!. UD EH I5!Db H R ,!2bXh K- d @J?83ԄIIDJ- #0j7`F @@=5uOURVuTu J&$WWu"(&i5 EN"**M@@@lL $ I`#]Sd}=/_L+N$ a0*C% A% K,'6&0^BBD@I`QvLJS-(Jp^Hx2~$^$%(0n`4$t"ĥ )#VU5@U xC M@i RbTgzAOMI WU*(P>UȓWb<X04u^ JI Z 6#^I`)(Дp #,",h舡~xv{?߫V EdUoC$ZW6-Hbc""3#$Ӊ4@(j-$]UVZ]U%IEY)ѫ'FAl$Ҷ[Zmv(rֹMY4LVӼD6HM]\Zy LՠvmqOR*łdF%]ril}&qA"-aqEpnŇ-3!.HC]z=q [KN7 y"jeb8ʂxpaSxsmazm!tjMdqmjFCM-/[jCG̨&ͻa!O%!+-˜T`S#33"6i$@(X-%]U]dE5Q$TUeYu]0M*jTFFц5UTL5hf))ZW t*ISyqUK :ڊ<sSMP"=kVa]mx(pAe(5!QېRIK"HknKt9כlԑ졵FC8IrfQ֤\F/K ORWH5Yc-Un03Hӂ&"'1i2[^DS2(ikdEG"ma1St.UV$MMTN; ?Q( rz3F ΅ bd$2236dpauYUUdY4PAUYvU]Nd枔Dܑ7+,zصYk^܁#x3UDurg$vdj$q[NBod[5j`OltIHiHqʤ8O}ҵܥ-eNVFE6 ]׎p5$R:l3qLi*FF)d4 Xk-+&F 8B)ŹJՂ=*ElUE5h9S-\a( Z6'tX= Q>ZV>TjH2~rxkV%4pRwo$gj`c#"3&I$@ -UV]daTE4<]EWUfWava֨>7"7!:uϑ5V٪>u*,+m*PE9˕Ӗm4H>JtJqZjFĩGN+ G?U*+`gm48ɦI0oաNdtژK[.I3Ju]=M]ZIճa`i#Կ{S\Z>IToӌ(hʩPG&WqO\f.B5uRLFȑR$jKFFUiC-D#)",S)n _ДB?t  9fQ#Z˖O&ҎZAB/!=i BEO &4jV¤ǦC$D!aFXGX-~ElI<聶lA{&/F{?Okۂ1HfSnJ9Êi Pl" 7/w|j5iNb'NF6=+0 6 >ǭweus[vJqvR)YdD#31 ½AK_h\ Z0*Bٌxm E]fwvRVov:\L_ӆО=R1F#f79VÚuwRc!lڠ}D綾 `*ޛWжn^3zR:?ܛ 麯<47hX €ZZ n ۂ/D!1 Ǎwwvp ` f@Mm+*s1;(SRK~Grwd5Um1!QG `.!U 5H.y6ׅEk"#U !{Mo*"a62\-FRoΦg#Q;{,E'ҶVF2gё ?e"0A,@g RFr(`Uc"L{@;xi% @Gw54kLS'Snd"jhdtj{@nJxB3V(}$ V@/ĞY1l*ZFX k oTlvv[: y *Q &(_Zk:`9} )EW:<1v\u/ QDayBy ><aFDxK x $Sވ ?=D;/uo.=(_Z3Rqa* e/D!'{BJHAEfE!!aF G7#%;|Bǁ?`V }a9#a^!&|ba 1#6SH!H}h!d@8%:N98V"|ll߂| ~~߫ߑ7%^9(i*_cQ !f._ D_hJ1JK @!{o!k[%.sJS{Zw4?mg2 Q=é=yP8q4 '  /a*!d!S?5xJ*{As?+dDplD <`D0?(<\\~Q* JtkO+{Zt^BRHBS< 9z"#hVcriYlcF|\"c ~JzVUH83'|?h9e8!& $$ 4+`- :h>VS(0wmN5`C=qgm<;%GX-'j9fL<ISHzh!Q{ `.x?ޥ@Y ;x3<#5iNDiv0f?)PTEǘV@Ix)$ >`طVaC':>BaX3\϶rWԧuO3zOTHE lzB29)yzn՝uO[䧡 SRjɓ& ɓ"H!QJurn5Z]*"LbdL@ !?PJI2jzr0xB ܴna10܀ԣ @Hi`M=!14^ /)$r!I,jxc$`Ip@HKK~(5!Ĭ5 % ~ $&AxUK{($!UD?O$#MOTNu+\ MIB*T25Bdɑ&wQdTu i<ۧf+,jA""nϰ=!"m2{腙g.wt!0 CJ0"p^NQ+  !#@OTC6ɀEo"G|AIGczR$uroXj+)n'I&@I` W@+: 5D"z ^y@I*DP`Hih)rR2R@ RɄ)Ġ5%pHƢL `@W@K3  0 @XɄ"iiH" x L&RV-CRaH?P%nY ÚtV`脆$ P޼~0|/dDF7hxN1Iwc^ CµFuF֢:PT:@B!Q `.!UFi J pԗDa[5iMgA zNU_h$, NyeЄӷVMHh7(h 84 ,5?cxݎ#I- ,mzJ~ݽ2nw<l_$ņc +CH= 蘒o ~a0hkHY /_`&0 nf>*e;hN 4(3?Y`LF<Wea $"_%m]A_w x ڜPh3$7/x>('٨R(lbuA^!og< \i~vөfwg[XQѾ RsPÀ1"Oyyx~ĒSZQ{`3p,SVdXOUBTHJ%8d57cq-}zwۊ(3A "jJ 3/O+G" ~*L!aM!0hf$opw aL4ptBDύJ]#9J?_᥀hp4>)! ) H I/C%@7Z_C N::Yw䌏C*ɓC&ErsUWjNz>ETb"gq 1cE(ʃ itB&PڨOxoe;L%Ȟ?f;iG؝GYaLäę@M(@eU QA耯!r@ 理p\\B#@W G7#%;#_g| `9[!Oao'<{>PB"k?kZ3O N#(D#){\B^d['}>ڶmr[Q݄9kZK!{'"A}0%|c%*Uxq>(oQrWZG;usOf8'M!CPpXyi!<0Qv#fo2p@vsD#hYNsBw50;JOJ!ܧfA * x'C#A`&죄9BQ_g8#@ˊ" t_w=%8 uVKWm>W!ٳ;w'w&JX6k#]A8P[BOpN ") ́ Qq]0!W.ZNrlΎJr!pO~8x"_ "6On=ޥ5=wzRO3{萆aXѴBg< gk2Q䰿uyłw$?ޑ>!Q @ !SC8&YQk qr4!sv"u{z*^j`ͅ]ZQĹUDSMkS.`=j;K$aނVɭL;sM3m\NfU Ō(,o9MP Y#C5kYbnMZHJeb؊ܻ96߳!Skv8PR eeQ:-uе2`U"EB") H;&* S=dY5IYvVUZeimd)v4LJEجWaUxBYIMVq&6ڄ1OIl.w1]PT5 r&8Gsm]-B{ fn!)fnLuk]g4x{L%tJU>ܬce[a؇UbI뵃!&i@GK0ūk@;qym4f@%} oBT)B.z9AGF\\ާ < Zn^vDC6R,~,+g,bc3CC#6m19qvayr eCA,VTl{ueq :Gz%8#|R4Àrs{cq,;nA*qkR9[άd'&E)6 t6Snʪ̥2mI04r)$QّPU6;=SSOuHrH{cLwN #S1d&+NTXH7|pTnF V@3 /F9ȢMMZAh>LҜIb0 R0F39YM:m4-`d2DC$IjQPYvavZamǜyfȣ۳jUO]QI4C˖S6i&oʺ"`RF-:`/-nקȺ2f GZ5R52V\aNVy SNc)[MMilJP"׺Kv 'ZF%ʐMm8 IJ!sn*j۫q9߮1cv눌h59T`]Rݔ#'Zhl`5M`>HZ*Lƶ|ыEgaGbd2C3"(M jڃ )Q5%eƛavai\5F\jWxH RkƉeD c5Ƙ\蚺?$Ͱ)Ku)=EuU\anXs2h,f [m8WfMIL]V5AN8 e>$ OH/]"Ji?ԩ.ŁRGIl-#w6Mku0-ε͝j3hrLK-dӸt8eg[j/8JMTt΋ae`ӄIؐAf4MHݩ"8ʧ0Tׯ2rSq7fT~îsVW+!Q `.!Ud oBS]h~KL>յP?{m@fsPw2w#]*f!ڥl1*"ٽ51 [\@ "!A9<Bs\wU!%{p%+Sns}mCوO҂=ߥCC ?#a]\l-'Uٿ:S῰D Du]*Ok!n>E9Dƒ8{ZA'א =F,b@ ?wD=$v"9憗,yBcJR2{!f._ HWbpX  X8|3뀍q!hs'.ZjCwN! 4Ni2gqpKBt0fAA59٫+t8`wta1`-ƃo:lbNs"T{G6w)B;5C|omv u~'ИwXTW٭ ׸Euu6towErmvj DwX:C! w k:SB.7]DA"CkH><"Rsf%ݏ=픩 u,.8"O$c{,wwtGPs^ R JSԐgD6 ) @ڮ`;2xyW{5(4DCi)Jaab PVB wtҟ{}CBU(F1WgwP,| Ͼi,dF>TĄkЅ%' $tāleڅHXt 8k k\֎^tƫϻW;z Z™91 7 X$~웿>dB3޲" vRS!kXk:z 3/5J>M5f 77$'Uߡ9CX!5es ]v@4zioQ!1)g !DOco|E {  U>ZSA#' /Ze Gki]&׌AGdpԬ rƙ@ +`>Ǥ%$verN͉, Y&NJUp6nro͜I{briC++fxf_s/_P-S8Î `P.\j\,#9#B,<^)<'Hѭۘ#CEuB;-3@x$A!}#oֲMgYlouJ&R< I//o]4T28Ԉ fdto;!QG `.X'фs BS@E> ;`;A7P5\O#jʐa:vhg\GfP,Xc!?`J8pzǐ٭L)d&dd$nUJꔪpzNݫ\ВI/NĕIG$_R<\7C(3'W^ jB6"SkWP5"DT T¤EIATur..T1RjE]bAW?I/nJ,$%~)$4@)b a;$7QaJQByA%44 BF䑸$~zI)$`> (o=- }xp?(`죰"hD,$H`k 1Qi ?MMR}Mt! LEIrd@ &\ \Rb  UU\"I#hp§?yµ|#uz5? $# 0$߀I H @+Z!H$""ETUH0)5TuR]OzɰP*]E (2.HʊPREȩF`SQ&L\ؚPщFŠCCA 3H )SRZF5! }H&0~ /$'ZQtApJDn5:"@+ ф#ܠxf[ ߒsM p%|hI`^1d `cAG 4hN H(y( #?@ UA!wT* D QP R.*UXR*> WP\d"E(HJZP98&.@+&#f&!LM@qZb`K!`! _  ɸfB|ԁP~f=A|4B1CKKH;(AD@C!C/~q\B`f+23F6 euYrSSucHWQ(Llb@ªb%W']@R*ȓU-#ɪ&H2@ _Ċu_ꊨ@:`; & i%% Ȼ,00) !hI| ! \0oZ02`*K`BВP(@%Y5 I Ɩ#,b8 @%2 (-/$D4'F~`& bt]&ahI@/p<  i!BxKa& xo$`F  6\O' i-@1 &b:`dRFH"DETU[W T+]jjN]*DEe Av ?&DI OI*v!`3X `W%% @(3AHC(JzU=cܐo?P+dR9 1+"D|L\TVj ^U&0˨A "[W*ªve0 `T0CLOm`j> ,Rwكa~Qi-M[B\ t0;8} 5 LXGG#J-a4_HBԧdGNgY[8}G&F"Y-8JV ?MIlH+Hw=۫_D,7tuSHԒ7́0?ܾCSWDnx`hI|I`;!FM'iu".Hu#4}Bk %b1Z0uzFʪTi*SR.0(;y!G9gSS3NvI:ZeꄫX}%(@1^@D>v݈( AXr)HFڰP8t)u3NBGD0ӐV[W۝@(I{80T& `JI!rzzv\t9{;szj`6"N]ܫJ>5ݬ**GSS(D#)zwhqsMkޙc^<ОJp@ǂ<{3E)=r{"!@b{\Sp3 Rv-l;σ>wǷtސ•JwrҞ>W}"cL_pV48hJYB[#v   4/$mb{GZu9n3RUʀunëC!ݫ~7`n<6" GA/݂`6-QC4s2@ȰCucަV6/-KW!/t: 9.QC] w9V q>Bq""9(i+$]v=e%|Ba~9жB!4}=ȴM `gws^$o)%rLBB ?i0 XЀp,b qA x%)Mň5(8OHA ^`5@O7@fJO+YOcAdP]SzBQcin0pR iwwwum| @O;K)ʼn M]=` TO AM}3,Zo+{7d0tb-!S `.!U}*B+H7<|pxwyBb #ݞP]k2wx!{!THts (mAM4#hrԎoLC~KF̄gHU8wCpOS "wr ;pwëR&bj )by``D[(+?+ HJ?щvl)4Iw%vϱ`Znp!Е㪈i#"# xZ_rDt * 9,< ߻P}՞N˾p9JMW#'\#t pnʇ+Xwc΋u1 \8_9 yH{Reyܰd7]xw:[蒳FsOD[o[C- x @BU]ob:/;5QDac"k Kف 4i 9L$ͅ?btDDH䜁, kI1\ }cZ̳@P"2"X+j&b_ĞƑ](]ky-5~0 MbD]i>tݖ%vJFn!HiO_W@"׻# %Z8OwwJԬx?"f1gh<)6%b1Wv(A3x`{x~?$boߥ%(wpOUIpDzqu(}Q `/.jjy`|(wa l:%;qw 5i+@?WЀ?^53"ЇD%.m6\ל|BEd2 Ab_z:{pB,wX:TQ"Xh<{_"A}`0'DJc-Twjz?WǂЎwD¸ 9Ks^[wrn}w!4* kzy].J~ET#{ -)TϜk5=8sWwwjG}R!> ܟv ߂_dHtQ6wlowxdP?wk ]wD"FgMd Q@TOlUowt wwCM;bI}cwwp> Cs   zgu]}d[8XB\$`CK>ש_!C!֌Fa>ղ ]Ҳw. R GJvtC%,Bb>MrP@F'gdF!~{kXQJZ?XMxwz(4 Dpuus֊O؟O9pP~Z#qJ GgZr,dj9ZD"N ) +xw N Pt?]}p$gPK B~[Ɉ@JNfP;?a@ } [`y 46VX-pȴ j!( ?tO$ G1'[VC&=HNC- )jɠ|<({XƻWп)Zm '.*Rvv HFOG<&#sK5=J Z`l##奸|Wа=p|:t"7emІbYr9nrR*A30 \ X!0pry!oϖ%<0hB/0Dk`I[ /݌7f 5(/ 3UU$(׾% !S, @ !S7RR3)Qq TcklF.!9)U$Kf[.M!- Z#v8|JԙL4M/Dҥ#@)l' )uxI$c:`T3$3#6MںE#UfafWmmuuݟgD)j&QDiٰkOJN4BZ,qNhKm1JVEwV:̕tPQd*eBTqkS1ۇR$%,%& Z!b}16$s5f"Tɵj)榵s:$M!ۉMqtpM-# ZjJuM!l6,*ySǢ2Q8I*o z-7ejGb0^!(.Zʍ"I(QG#YY0R֡Q66M`U%$B$D0E$MvqvqXimBDҎDKEN-g =0GFV8ѷmq1Ey+A_mm̲b(6n\߫4؟5]j5W4Qp١T*wϺuD\sV ۗ^q|uM0W[+&b7ˈfeFixY%4ߗ"Z~:‘EsK2ƖT,R42җZ+=}M֏U趽;m I+ZԫjRHbd%$B4&M.EQvamvuu!JLEL)Dݣj#V giHr8ӊxSn 5 YB*zUcdN}U[1m@a\ "#I!daԱA\%DĢ P84^7IRIWIH(lE+/%MSD#\%+l 'Ʉ7LrzH=Ѭk#.OBh`޸a7pp,ۚY7+iBWFēK(̕`Q!X>ݎqmf"uzXp:u`u2%B$HQI5UeYiu2h QTu 9UkxZj|eOU SOtqT_+ RqZ|!&c`dn`\2 I,GI|=2^SH~fg&֦sE'޹: vyg"Uڤc#5te]Xw ~HbeBjW" ^aѢGׯw+#IdqtdQ!{<6>EtY^#eWJvfp}M)K-bc23B$m0@9IDTaeeqve[qu1YF9Zy9[jM~*\7RqYne JDm%sxH8ܵLF3:KiAf/WEjl%LOop3mRj3w7Hi h8)֡<ˊFT*ĆOƌInq*5Ay÷OȎ-[(gœk mx;P?\'.ű.lUgZ V VQ|(^fJRE gAf `ѷB+A b$I% X`c3#B#&m"kAUQveeminAnCdg #K$m4Be!͜P= tc8jUͩk0VTVn`eI4OO #JjY$I M$ovJY0J @J(d,hȳJAH1e^ @ܰ[P@Fv7 &k US#-R^ _3[gB @D@e&V)]:Mc+9=0|" iD*6I7CqOt|\ѭqFQiѣ2l]8IBMUbd3DA([<!S@ `.#Tņ0_B7J;m#Kz0P*^Р8 P!?!&)?8m] ((pzP FJȶ\~ł8z P, ݺbbI!M&nR~ONu6CViRk^0\gnZQG{04 v,ahB}e=@.f0 0@`CJ@I_5/ƟQY;vĝ 3(1Xv7C~vqwxL;' 5dG^- ݺzQz$jIϱr?;Kc&߿OٽU?_UbrR|]5AjRw\t@3ciTy hz<֑xCMR?B4HxQbD#U)KzRJRQbEF!IaE< oF;Cr3'<~(!ibQ5(CF($҃þ1̷f&C-B 3r8s6oxv[Z<wQ&m<+ϼ7[ǵx;y)(<ŊEU)KRIR1bxakGn{xގOw]`pw9,8 V .yh.i Z*)I jZ?&߀QNzxZx  ɀ%xk:HeYA3 @'Ԛp5 O??vXFY` @NMS'><5?\ V O@cP -+UGbvfuTMOd JIac̀ \q\L FUE!SSG `.3^XǚaWW{۴3ݮ` #M$"ko«4-w7SƬbϋnJ2\X1bœ1bdb4Y'vyiD''76-ͦKG=H}"|@k8 z?wq߹,G$| W~@ ?N2x=$u d5;w4^?GFgw\;;p0͋pJ8c4M!n(! Sf&g%bn^^şt1€@5 jP 책!iNi]p YiG-+NfG&֍> <7j{̪Y@;4l07wYwg/9e8ݓd[r &'u>V[8{~ cƨ>:-<=|&_Y<%-dݖ:_t}gӀΛ:I5"r8k[Ϗ'q|b3o~<>?vb"o|/A`upŸ{ -#%dGI ['< O5dz?濏v6/iH4/kwYp;{M=H=Ń?zw4w#>??h<~`owf vݰ@ nH07G!-+=aw808!j~ h-p Wf:d|{p@ @~O^ C @0&e Id:Tr(L좊(ҟZ0(1|~~- G9!o׳utMdgX6 %x O3p0B gBY1?oPM+~/幧7~8?#G5` GWGx;͏=χn?#8>E"@{;Pic2K7$>H>= sO./ϓx!<㬊}Kb[u!?ŏ>?Os%#` G/cͿ߁,u>C^9F>>p#s3H4J?GO'xo_6Gb"l>WFY.Mmy3@ 蛲J!^Kh>]E#~܃$"߱X e/18bLK)9cK~IU $0" Xq~e~_ nZA  b Y|Ph|X9M @bx29aMn夤`bL4Q-=lnx2^;gy8%)P0ŀĴ 4 XŠ4XX`B!Sf{ `.b H`]=E%Rj@`!;9Tjy}ΕϰLB(° w3:u6` p2MNd!/P޾)뼠 J_wr9&?'13%~)2y]kGraESag5Y>=ћ`ߏZ;|uśunwsd`}:Vw<w{\ =O\ؾh X_> ;揇ϧ]hx];O||S"??őO Ѹu??Cȧӿh {4i{cýC=|':,V~'= F܂Eq>À7hٙ r"w^@vY/ )?cNxGǚx@`MF%<. ~=cPb>NpX4/~704K( 8 ) A/u=_GʂŁXL - x'{LK7p#?d /nO?:''gNE>8w.#ìOq=fiO~z?{]þ"w6>x<>k Fl8߬$ߚG"3F:]4sM6w,Oa$A9`vO0jE@7zoY8 ;ELN<{#'~=m8 ||̷8 &!Sy `.NI_Xw=fik,q$~E\uý4X D.xӬ? ], 88dgPBFO(d7(-vsJ9@P  d 04 HJ?eX()NBjr{vJ~zQdLD$2L`,%(wv60C NB!5Hi HVvI oJpBP0C.p`'G$om#qo{2a -%e:{ay` J[p cQm )ű(4Y7xw CX5(Naeup0hh'+<^{@\ 1@HӺ[W5<ŷ:!xB@Zd  8''|g9|Ewf 1aiN?q/ 4A7`҇Z o08H03@aGoѹn^ &S 9!0 ); 'T5g% @woqY\bGʋ{؀0<?07NG=߄qg^HJ!RrrsnC!'ހP M@ix<7:<0zRҏGx x~҇Y.|d xw~=߇~>p7OCǀ\s'3_ Ya~v_O% Y@n r tủlyw׃&ld J%geF(1j`4N`*rh`!!?|Wq|f0^Ō))~sk8[{n ~Qet0ߺRPjwJPO.  7#til۪ RD(._s̹@.xCB (Z6?{9; !1ePJprY :&!.@$7<_8BĨڤ|PuRKGԷPL&_\B,zF)&b?8|J0 p0Z0oЀbYb0"Y-w); y~B͍f |:E`P`0knvc^>%wbnz?k@B3z 8 (Z2w,4#0m$3T^Cà [)%}v=ܟt"T͸|g^Ϯ?  !&%sOڰ '!d@/#m_}bR53;[QN!If=0Dj1(@T40ћǁB F3\ ]=1lQb /'u7oz?:y ><=oɢqu.<.r> }~?'_z}O9=T'Axp@9"`n)@wN}ŋt@ @:@3I3$4ϊX j՚yA %+ksL4EL壡?'磷^ 6߫/-ۉ==Y5;K(M![h!S `.F &;+wL1@@0Gېc[vd ߝlR- P3-YpQs5d`!I0 nH1 p K9H$I q7V~}ҋvRNBay:>@k 0 ( m+Z;֕գ똘|@` p@ rR&(O5 `Tt`!8#~s1!œKr2H6vXB(:+w`0`@)-gxrZ2zbz6TST;5%tcoXh Xrnֽ7hu\Rޤ\^nػR@wxl4\T\x>)!|pp/:@v.n6\ӗφ OmI|'.DDUùJߊsx 8xe/F*07>?s\?SuD ǭnh x{N=~?w=xQ^a:1ev-M֮u '? {Q?!$ !/zFp^'|f!@K& N Ŭ2q9!r+cj" /CTfHWU_%nw@ \㙰 j  43oodf+0x˺J`Sb7씸ϙ+Z'ewI[.a0QA?w=xQ`vQCKO{=ǛQdB_;$ɀ~~/PH xL; Ix}KN&'}X] !pl0 œxF%`tL!f5n,Rh@dI{'xrh BRRy7l_]=)W BXgK`2@ @jFE0~)w@wGX> NJ (X sn!~^+k 1!O5smy7׏ixbے!%yxN/%=5s7PCԸ ?mg8*6\_o~EOO=_|<~,ā|N ||n۬dtl#sJ@l6N9ʍzR峥g8Ӊ"mhэQpMnK!˦Zb\ؓXӋ{R `T4te}IRyhlY,9O#YɨV kiľR Mf٪҆ʹ[ܭJA)P6E"V`;jy#L&k;88Yj83UL5Fw49("VҍFr*Y)t( A[o8rV}RTqMH-14\vER(X.[4Jl5A*W…GJ Q7\&z1VDzOfR4IFx,ӭ%94B q EK"rCVmJ3m6DbT4$A#DPj,8UveeWeXemn5-u>J7p^9hReG8q-8_o `3c Rj}I\yYo}l2.Wh3N\P`e4z&f{ gY̳-jnTm$!.EjMzud% Q&8GI6q$Ս9am(FV2Ia QKAf.6kEp`48R3\A{^*)hM NR2@@.ԏ`c33B&i$࣎4Ueaumwum[m-LP j@։EI&@أKK #mFYhU4OI`J)eZiU\ѣLB*SfFTW6yOjx Qq!u'ֻRp⦌笊mhuRXYz.#Dm#mt)xIT# 7iQiY.pHRGLK`( _J{ѡfjm8 joל_n^.Mjʎ%Z?C-Ftސ"͡,-Z&TxkTՄE`bc43@#6ۍ$!*#;~N!SG `.!UC4'atJ xJ&~Lq3M Z<]bQgr1ס8]E g\ @v &1zn@hmیZuP%a@W2eQ Cvxh 'l5U}p #Q L9!oaxԏ{';@|6Ts_h!^MY]1~:/ qvN/ϕy-E="]C/Ͳ>F]}md%m7xDG<~_=}''|}O?gý:S CbV8+HnXf @MɀTMbW&%2{X2Ka2z;P Qh,MJc!9)#qgN J)P|bKA M+2w)C6C A7X^axh&boBrRRJq?7} g,C/V N@rΕ e@^HlVGGok`7kOv\M0WrOo{p#W3-G(wRp N~w3޴IJie82T} kT!!$XKcn H!lo_H,=[2e UxpE/^( w O_R;ם ]soJh1_}ZC5WD75%=J#cn}nM!:FtI!?%(I@} J8w?uQ( U -?ٿnnἽArť+N܀lgħl'2Kǰ|tk2tH CFlN 1 h K,Q) dJ%%'ml`Q` lI@ƩVi+'RY_~F[4Pߕ!8?UtY)Ƨ~ 7! J P3Y J>@̽tJO=ֱ8 n[ŀ!vĴ P+y` C~p0VV$P)o&?Gvg !Gζu| BP팲_%##r5hPh`> _ ߬h z"V !îQ@ b@vHdϒQ07nR?vnXR^cC-ZWsLFt!; e*QȈFSI\j}/>b  `[7< |1D!_rWw;8 Ad"!9|. o%@1 KD{pKx!zpD +F|CY!!A "]!:n! TIad^Q`JpKbh p( bQbU{|g +*Cewwr2h*[o 4Bww o,>=]x z`!S{ `.!W}"%L.yN \(a#)FƒH*{JDCNO{%jyH^ ~s V0c !3)_j ]:݌($1 ;{HNH(FInJ(`K$f}p"OSt/_CT:sHEL|`N2."j!UYPfIl'膉bz؅JfF!u=٤'2!  Rd}v] Ÿoi @vJ `ā' $$@{L(MXawRݺ  "!pN s/#B/,m_C .F9>% ƀ]юI87{/(yE3PD;2@WCuo{#!ܗ8@34ic ~PxNGO_@$l#}#`g2zJv%v[}eYL8NA3*/"E5Bo\2^f`|9"O]w\G Pq8)r$q@\j}/܃Ø =e kD.OKJ&#JJJ݈qB&c._=w'A9V6vZ"˝p.DpDd?OԊ(j{S{sw,:Ou(*Cc@M@SE֙9.D`zla}F'0wdXk|6::p;uidڂО$lwwMzꦣhe D/Fgwwa;be= }x%wp5yz77W擻_R=KDBxc?玍 'u:gj{~w{(_q~IcB|~Iww+ aWB=`mwhZncX7wwajrhAi> JQ}c]؆;/顋(Yp0W},uWwuD0F,oJ)}~'Ā5{_BqJٚۜhM Qw`_ Q׽udО$^鈀ݍF#t-(c4#Nw$Q wZ{l*-)"af ;Jw˻^[ !Zy$d!_s] =uAe'4!p̌<MG`#\g~gniI|5b 9 ! Dz`0_%t Cm(+rXj@Tp-i`+"$!X (G"ĄM 'B߁W9$=z1C)u9P* AD@甸>HnIg_B罖FUk!j  *I (xi%" S(B j\J".J!dơ "L缫Plf!QkЌvc Fց4$g{>Fmƅmx%BmP_fʙ7jh0|fl!4 \ s.`+ AA1Xf\DO"c! 3#dHeۗƀ$XD;D4!7awv36w.!S٭ `.1WW1-)ls  fhsbH.KF5ԫe)(F2Tf9'g#*?`gON{(A?DvKg ax!N4;wNJNEЎ`;:9Ė9,P`tWGgͿRlF۟dJ \}3r]?D  Å' ~~ j@F?mc9 Θ:7W7n|p%Ѡnkɛ g;@d`<HO'lt=>L/0K6dHdHA 0]=AѼD;yzG5T\@o~_p'+cIE?M|x$vR d$wZ}}6pyMεΨĀ-{ FH,$DA D?)WC+> E- $y ꩫSz]>毀vU2dwQnET`MBrjƉ: ?Є(M] Ri'p @)prdHgMH="MT"PɯPz.LL LnE^2jMȓPdU]B/r$]I.`QNДBSA@iCK)/dH|gΊA@%!<4i!#Fp p//EFj ߸ ,脈`Ō @l9C). (d,0M (47GЄi`x$ o 9147  c$"i&Ey Mɪ(@ɓY&_ \\:L Lʪ#HQj9\7&jDj:0  `$# A $$bct?QeJ%Qh0Q$!&h``;/? @v0``C3D$ ?'xX@1&rPLMrBb``2_ 00D 2vIAo(E  K_ D(DM  1,-D€$&#PV#kz6vʺaRn sdUTj:C&R4hjB%,2N'`GD5(8xrlxt! H;E Udr*HjLɨZGr$Չ D2P EBQw + ?dEr*MZ&HS&*MLL7&MTdȴ(- R$~ӀrI$| RVB:xѼ #2y R`H %Pф R4`_~$"S=p2~% ĀZ0(%t$nK ء+mZ!)OHN lz:R0֪0"L 7UD$Ք5rjE^_F/HM&Y@X4w,!/%!! /%< &C@n @!Ox /0 F:Rf> %9ŅS놀 BBL%Ҕp`!pwF~= " mDDOA4BI׸ǁm!plPᷴmlx9Q!\PIVTB *ϸBYx=y=7w'Jmko:p ʪǪ7i)^J?I!S `.!WNy!6`ae4j'm?Ҳ;K-CO %vXcPdI A<C茖0)D,͕ (3Hb IpbQpiOZ:;%*@1Hd 2Q`:A[.{t (LĞ;:ғ) G q/$'݈02*E5ףT& +cht,xdbaܾ:J5;HOm]P %O}h` ZV%9`H =rM,5V@ )|DdWF%N̯>@;vN8`pzJno) + !xi4ih!=#CA@I ۀ Dur5h!0Eca\K2ؐWn5z 0qp^G.ᚿp5%P>?-`/p7`ƍ>F 5wwqBELBJ䰞@'/Wmצ'P.p`0,y4 PL&> 4A2{UgUJZ-]VU v*K+V ,`vUNQEP=s4`s1^=RkL۪+#B&<~\ưeF~5ϒ3L`[:h@e Œ͙Cji 1!O['s $0$>o v*lI,ao@A59D8| 2Z02p^r9ص*䣑8_skw9CDd{ @O qkه1N1숄ff0ccYBp 4 ^}3"J{;ݭpQS8`)<8blSTCSw  ~U]xI YwD_9(Ak7$f"!^偔g00!;e {-A{F<A_i\3kAkZ{; `_wtCD+/˳*k,# 1sA+-!V`D}5ɣuިMa)@ O^'pdLC"@ iM+PGk`/~ZMp]br pZ{>/Y_tO;(t>-#Nd G&0[Ҧji>iJ<ҕ8?PWv=KZP$q$1[]7xva۔C,$oUHN%+aOLm#T\iC"!Fx=C"ƙ%M0CK`S#DB$܍"` DTWeammwWmyr asPui2rZXB2ҳBN 8nʥ(56k NUD[CFR .SImӅbR! -7T3"K#.TNkx[S;v] *"(-\n$7 '܂4oKYtveaawE[JGۖ&jB, n9%镁;nW2@9(JK`s%n))" +Fjٍe'$bd$3C"4m*QM#YYum}!nc(8n K!ENB1hq PmRHrMفkN|hJn$s2Au8fqp8" [(Y45Y "rfMDMA 2MsQٍ^ i@ȒW,\m.)Mۈ޳\MSTF WЕl .bJ NV0VlkRæ9 h=,jURU$કJQ8SSqӨiK$"7dk#]:M.mnS&qZY">Td\|J?D)7{e4# ̍62tW%ŮH [ `S%DQ4FZb45ivefevmל60DOT'L@Yb"1ĉ\8C]&-(! Zd"R,&bH5ـR BfC{MGIơvn-co %vo5%A*N$ǮM[+\R:d {vR7<3EEbR%HԊn!|rM1vXSbnX{ڤ>Hv7DdT ɡR%.ʪׄ/Յ@;Sɷi:Z6`U2$B"N 4QeYimq}ⶃ?h\tϚi U5\4)͙e&fofdfZabxYbK|6BF!XaϦC}UWjC!UG `.!WkzQ'AgtCnP"DJ9iKNdgp #U}!9 7'ʽ` zFp5쾔u's{!P}woM"D%6=Ph`ڏCؾ2 DKFsRcQ &[ wP}6k Nldj'Hx?絗d*zypo78 kw8 %HPt= BUnFJV.{& CI{CB85A,rAl =kV##!;_'~bX:SF IO Ӌ~b?ak쯙[7Ý1ked"&'mDoupS r?Vw^VB@HB&\MW3i5NNs}RS!H=xw^$/oߌۧ C~* k`)1s3p%O?uosqV`u7XϨt˗PovزCs!f.^c˘@pLb.>mY9Mw̦!9ݯu*{5s6R]Ġzo-=Ի VIښ8#-Ej!ۯ7&mp"${Q1]Q !Ҷ\}b,B wwD52]. Fx,~;HICn+'qiG p/xL - jWaZhJR࿢f.5@j#ݑD'ӃC`F޲@; RuwDJ2tCc2lvYyW6Cs R@a"ߩ P].ITǴwĤ^K1 ]Lŧ,|PLG(Hc\֫3MJ6]׊wws쾈:fҏTqc G˶!| DD8^x\A:Ɂ 4W`WQ!Mtӽ&"mؖ<$Ldi)4`|'0(mhFC'LO̢tZgX;}irF@# x 5k#C`5Vm%!cM22a^ZYd ^v,E?` d~7x~恈f)B`,x@`!f@@E> u_X5<z8 ?4Q {~f=NBe LF; ~?j,D8gL\xcG T U܊0@=`np_//qTKt:Ӛ o!U&{ `.XvQ""HT!x'q@$ȳ4~sțSIL!@ 2dT5U""EETwTr`U U\Jd$hUDUB D6A@F-Z`43t0i0*_  ),2xdME  QT6.UC `^L*R*+TUK  *EԱQuxdTUQɑPdȑu,\UUȊ*L L,0o(1 X4P-%$ hH@p$$BR4`ѣtXjq5% $ J@$H¹$/~! %@A?>yB;K%3T( V!F#t$‰)ľYvÌ(o  "C@G>gM 9nmW]nTZ *EeUEZEDWU* *dIa^@hf (v@(hMtZ NJP|I|$Z! فCH PdIG` jIeq@T802Ih=nlВP"~ifCyi&i Ƥ|0* R:Vp[uF`2Ef0UPfsQ@"EIP=?}@?ˢ9I4!( W*.UB".,. Uqr+ ZP⢢ @h EH)ɫb\ @*EV%H*IS b`p 20$`@`K94CF0P)ӊ(%fN:+$/@)8oJ@pbK߀KHa05(/K)G, FN DU]"a +'EZqIIۄĄ!/v,]{##R?#iL:V oQ܂#wwTծt?P/o" b?5uuU8yP1T !)#$, 8!d^)_H /)9@BV7JJvuO#:bQ4au;@R)G X.!dBIJe ?f*07d) ~P> )%, Daaaaxa+01 !/zx` ?/P qaJLM /HXh^IJa&Ж5V9Ċ!LIe' /@URWp$@RR$e9$ J AM,1%@bC &5){ NA34( LhW3pEk~` xOH P@~w"%,S۠.pw ,A:EfT^!U9 `.!W] vM'ՐP>R?,{z7ޝо@U!ͰKIM ^(3M>;D#;MBJH5Cf@KD,0Ȗ_ h>H&H[U_$mBS L!vYI% 拒rhTnur p J 0"W1 ^-B#Bs@ N@%|' ͹!,1& &Ԡr? IY,4gYH{ sʧ#0[D eBA+{ 0^+@[ d' #P@KF=`H~;mk`OOC5lȋFOb%#1! Lh295` Kh ʩIc(RETQBNPdd('v9܉`y1 ĵ;k)wvB(1?әE/Vvl* AM/'Z(@B&cJu[?:Na'W'"4#b d~V C0=?F2}J>5#x7u͝ -lolz^R2ic ͆Ձ-9sW"Bi&{\!bBGoPlwe* cXv:XKlBQfJI4H3ڦ\(+5vB1.Ck ٠~92!+Q:X܆ a.eQ 1@gֿeIzۀ &$u$J'Þy! ֽyD1 -KW;@VX.! *wp\+fxUE-=rz;`Hr,o)^= %<q=ĄZË|R/ kPmE /$YO!\}}}‘dv GP%D#;wEн)!HФ_X4:1 (%8 d'_໡WI bZ# .gRܦ5# % @ y@3=>R"Nq[}ሓ M\5ZP[5 !/hP0y/̈́!_}ԁLŒ -HHd¢N<-€ ݁|+O`)H",h#Aݧ7GYr)r8IkLBrb7Hw !}Se'^<;’aw`TJ BѸMU'_Y"%~?D+{ûI5+}Xxjx !D6 EoDژM$YJ>.Zʽ a$tCk 8q,+DbQM pM@B#놄;RP7NH["y+IKD4':#ݒ--ns nkCd0-4 P SECkRۑLFj04dP@w`Z@ϲ)D3"0 /L;qBQ;w>a,Ii)nPs}@ tab1|Li_)+U %8$&M+&c-7C9J.V!;5~料!UL `.!Wé_cm@ JFB(h/dj8`jT7!&2B8e9~ioniCwݬM}~я\ZAe3yy SLcQ3&@T)s[Lo^@!uD??>ELj#. m4]gBT3`VʁP  h)z^"eשs/K*6Tr$q@@-`w@y>LIm@@P@;P1: LC=+kQs`sc\Q$&kl"f1._h,ppO6%txMSG-I#~,H]s:mbk۟[ PӝK4C6};Zm(Z 04BV|OΈ~wFO"4$wj!k[6̵vBӜMN\N@6,PE @1O^нnvO p%#`=`75.H/~6ndA$SK0Z3H> 3>4Uɪjiz>Ԉnco[@2I?f٠:T> 0p(VOkFD"dIK 8a1Ѡw 0tH/ 0b2y}=!!UMjpzGV]1/ F^O&bYo<e%!7iN& l5oz&E]@黻&dIu xQQ 3\W,bctic'\Dp.qok/M/;c ٧1Rp~艨OTT%=A&DzBP!U` @ !U3K)n|]Z`be#CB#6m # $QWam\u;k,HU9m# 3tj9AJHt.&beyG\ϺַqG Tη mmڴhKqϺ7M덦Y^++DD Tj&GQ8(9Su%lihȈ1^Ζ3Lڨl^6(n^9\ K9%G娴&^J)!7,iR*Js9Cz 9$t9(:JoVN6Sr v4P'$-5=SF$\'V(InEFdem͝Ӎǀ`U"C3#6lHŠ=shڄ67#$jjDi[:Sb=4I ދcصiUS5fSlۭ鳛Qz41ۭ(>1dԆ"C}ɕ=UդC@ )rU:&nI(,9ƙqFvbT#3C#2i"*Ì,95]uYe[eqn)S"Q3VN$ R*a$U+[ U5iUbaԦ5GnI;Q!UsG `. D0*]tT& 2"UEԁrj+ɓSRjT(MBQd)@ ?drɀ|8 ش} #> lx|I}o5`>;C{DԀNSBP!bH QzMT/{Ȫ8E צMP P)5Z  *F"-EI1QqwRȓPȪU D> k Q@sgpbIE $p!X+Į(3xa%0?LHВ@$HRm<$I-Ɋ!H]ETt *PH@2y5@/`$luuF;0)*T!7 @R` A7&TZȑZ.DԋR]:ͧx @``7rC Rz$!ԧc R< `*X` tM +~Ju>q!=$oq˔ > i=]!&lM!oP!gWFNLvCB`?'O@nd0rHh8! `'%y٨%l6l< 6y6DZZK&(|dA `L-(C\4f;ϖ6@ 1O% έ*϶u-* CC`5ihݟqZ b, 0/wK Rt^۶NXU@E)݆ВC> )!t 3& R+IӅu((XaAa;' 4 MgpH` !M@Ćp@4<&g6վ Vu޳0L4 B≟W l?&Q !) PmX7my%(}xI7,ȀQ0Vۄ׌[~$ =?W1) BC90 |f%%$gg\Ɣ<ܐ:BӌSbP07 & l`jO(=v ؂J~t!f#4 @4(` ~>& <뫌_+$p {˪8Pa Ҋ!^p>W@ rɀ9\44jFg$Q- L&tL HjJ9Ah ɥJ. $ L a2@ aщ!Hf#iOCY[q'%Ē?w&PRQ>%`WvhViڈI@nAS'$!|OCR ,%š#tH Ө @7B!0 C@`W(:/ ) 8)k{unun4N$7+U*p $uʧuj j~ěW}Xen} 1Ar[Ұm1d0ssuZ.!Vf)B͐6, :@ &lC 񾀪D<CKuQX FQ 0-c')qaON&'_`\=E4O)Wi~D!jBF<\!J****GꚞT[?R UO6USUh`!U{ `.!WA_8@1,gm GDT"B#^Lq 0@F$'OCz#6/( |@萝TDE\Hpԥ,Ht*tB.T}BdU}Ij`ǀzJUU)][UVW*J - @̢ P8_nG%`Ѳ30 `OI䐟JJ ,58u0CG[ҜБ+!C)FL:@"TFOi~0 OZ yNYS5Dl?Sն`7W/Iuq0ea.;qRbMLep+BpC/4D]j%TӨS -㯫bVWO5nTd(dfFF[f+9*ui K>~;И1 Ik(jz!@{:6) ̬_4a`P=ZRKoW{Ԇ>K .0=w$ J4 | 2)!^Fih1\Iz Cb?؊ưp}M:4 @WWԀ<g`tlAD`6YicʫG!F4I{}=yCD4 r8!!OO\ qdg`ǷkJ(kB3F aB[bЀ@sPCD0]aPhFxbF5IAȱ?2B+!U `.!YټYfE܄)x$X4"a,C8k$S*iy{\ |DͿ`4 e,lcʓNB1(xѽ ǁ=9H38u=oE@\1 FHxJJm,^ч|ls!fF^ .l L9 RL!T- h`h/  <3(ԓ @j (ph2BqvAE.5-g>.y姰>L5L+ɼLt[{"Uǰ=L&sh# x ^xU<iL@,@}`X:)dAƪgKJHwqh7hO(>!=+sA%v/x 芾l(n˄'tƆWYwt^wȱ*^#00T-IS5pC{CCW 6pwϯZh`w`tdlJSh&w ޽ !)y0H.]h FWE#+]iKN|, b:wv4\p\+p +:|MISC,-u _8Zݣ[+OpQ +3  wpJ vKߖЈ% o@\pυuj|>E"CRІR fDn Ƒ7_#'9)-`- |: !끑wp8;EQ$* sLha&@U膠! >AIa40C$,#ln$`!v 6rr{[ # )nH}2]>ĨϪ B`Z^k]f$p )lS|[x/,(;B|a!wRRS?rqeIDēQ7lXo-$]g}ծxeˀ " @4jGvZs(pZ̻4ҴCjw|!ć YL,IC|PF(Re={eiIA@]<WkΤtc5jmge=90枈gr-[ků2gl QL `۶}5OVT\gIJS4Cc0NS"^RfDi)B   B , P! A(G wوdb'D?HlQ!dx6v6Yl*f_0ܵm.+gZ }vQC`aHy 2?`'LIsDhưp}M:4 @W7%bOON槑t:rAH I+rD2`iA#GQ?AO0j˹]RU4zFjSN{a @ Pbo OorY='bIY}jHb<[EI 8KZ>=O=gUou]ZZ7U@ n@!Pb"U *ɊC`P@7]QJXXM ͖YdՃ777#cD0=`ɠh&|CK@B5"h&!6C Bn 144Pbd>1l>XFaA-_ mHp!%5 >BBs~$__ 8JQV P3GshGJ?Dzt 6]n*{!¸oPZ\iO~ r!v05'ᅖPLlW rQ+(b6;p3@@/`Q`SpπH~A+BnZC0⛰ }#j5yD:z _g:Y=Wj d# ꈘiF P|twЏghWR* i:\iAdX40IX47mp Hې$BJqDOxѿD2EIK"ܕXA 5"I NBOYs蕨F 2M^!! јa-$c%=DqceK%aTB3 dT6m}"$ULzKUP vW*$H#_-.KHEð' `PIw2:8$ `tНV%"']bxJQ5:0:l膄A*L}zg2/X?y;MF$TOUWPڪiWQ'0S&CȮ`Ǫv qhG% mّC&nا$fF #-H!U @ !W`8B5uî4TݯY+3-yh6_*6kZ }GA~!-y]D(2*FF>PBkVͼ-)clк𕈩#e%\KUmXGZmT-K$3ZLT)5t4ܻc8f&J&Oʩ?mE$EiW)ӊx,4`T333$2i 0E5YǜmXi_uLf3I[a*9L&Cdh(Cժ V$UU{E!$Z۞2r*d drpm,sOZ#u↟IY(%{iPaHj0J2lͬi$['K-[130$z<DȠ NW)5M9"T= I*\+8oŊÐ舓RԲpf*Geam( m,iF>ő -XiDM[f0Y[%2kvj9hK2*צxEv4jq0qmVZlXVn+vbD$DT$BN@=EUUmƛi^upfEs=$`?vLjj%d%yoԅrnfjG5ԉcFexYI[`drkBW(:E3Vxɰbqo b|b0z6 TֵZb]ݕct':QnlzD۸h!pNjc#|E,bB2y|V|"ڴ5[%#353=1#6sY2iiPDs!U9OlU&RJ:}2]Fޢ ˈ eGvPIv`S$3B36hꪍDO=TY5]ae^uyӈ$BcN5G(WOV+^m S-R v4,qdj5#9(5ܝqkNW;` 2/뵸sU[8)d E}" p@5SOɓ~a@p2Ґpޓh(Vn!JJ,DcPBH SoB{f4,)8&[AauC{%inPyʖ #AS~N -pP$>21@=$eօANL%YЏ#CM&&$_A D_%$̆-wDhm= hз$ 2V26`U79vb㱜 v{ryEƍ ZYJ2`DS3 i;"k1rz (>0,}D"g4KI`zvYSx*Ǧ!5 %aƿ5c-y-N̪iD1_  {ObxpgP&)vjvmCk_x P f&F@,+ 8B`{qE$=|GFXvD4kQ_gt2>V;[".Zq/~{"?:"yR> }lr^ɟ%j}Z̨gvQnv:;Jbw1R!^Kq\c5 c]kAy/{ Lx>Rfv%mQ qW.1SLi#xğ@ rF#P 9] %-jo&HR%qL3.^`aaH4xPQ0#A wpXA Pi`Pa OPiD4041'Z{Qe'R~NF`fK R3pМc1Z(m!U{ `.1YY3s91| \%]&4›(Z}t kH^ch.iˏ`{e:hApslJ)'*"= g _`E>\wֆ, Fi#I`.GPʡ w0K!ȓC5 ԫ[ A /4")1Ě _=`H"M_†^Je/ /2<舅:RZ)pAL`C!ZLb6Jz [] zb/47X!Ap8tҹhgv8*TbD5 _-b>5 ê H /%*2[wiXV ܱ  >qi$Pu]jO=sM T1(yFCa4CYPd4fIl6*97'/Ù /Ԕm~Myx b6z !Z@M|5PQpOӟE=lIa0P!} @;zÃ@ @A_& 4V%'W9T#@ JP)/bQ%ArD|Cڅmo|jļS߼ !H#K\|?R74 Q'>uU!D JC7F'6" w>c!K!%xc5k3-pqBg5 @B`d*0 arp dF}~kK# xrK(҅1{ր\``0j_/?wۉ;RxĄb %^Ȇp @51 $5$4(11 ̜. @ @  `&/R /&l톫8L /x^P WvE P_ط YO9 @( x&Y(b^ K:jw#MG޷fN 9dܔ1'@?a!(e!n5>|*9_o):ߚx<-W'G֐yHy@2ɀU& i{79qmЄfJn n( b&DJ 0/5Ysy@; ɤB:ZP3 ׍7۾Ycz tؠ+Nߣ'Xvsx% @'#W^n?18-00YBQ%;OJ;~RI7򽋔M u_00 n{eUKgJ> :U?&oͲ ]K''o$'{;zy :;;6a 6JRieO~3v*K;g k a|kϻ&~6xyjC!\uYL WpE~h]:7Od:ހ"Ax/d5nZ8 ht<Y.ۑ^Amp wppQ$&X>O-v45r<װ4{:<`hb2J?sr/.:; HKn %>M_XxdMrP IynHa'7r{ՁDsy'TZzHd;@:!^wq41YCA4| MpLSG{]̼ =AB8t|܎*6 :9Q0w;`VSq{3*M)<;{ CNMc.f c4 xpdeA`-p|y,v{>D% ,| ϋ s@rx;̄"|2\x>=h  Osk?>6/;}gGFkw4i{ q|xw{?ߋ ?qaaqFȾ!W `.#4҂p"Ow[v7LwZ3'V'J@x,@29L C;'XwY|\;P1!!iH۹~x}'l4 ̷x"iAn,i|[q?-TR "",LAd% #-? AFgOy>$Y~G>q'p#gsEp=d_OY Z?5pop#~A<~x/o7'\wγGYlo}hNs2)kiq--wA y"waxp4"Dž=yk?Nn{7$>ɠ ۩Wz|$&NJ@#Wmuv1gslj@:O@i_+{T^0O;:7=<Y`!gw7<0aI!jbJk ?-GoIe#f~h\^pĤRb8`=  &g4saaOߖ?CJ ݹ= p(ZPKŷws* ;=B7p'䉦"Z5<y8v#ߛ'~z.ì<^~}}?~.uA\:EOldx}2r -bWAXπ'@[Ɠ6O  r,@iub ϒ AGy7m <`KO ?P4ׇOߞOw6Y`5<ug| X0;^ps5?~?=NjXȧ\?~h~=黀Luw< N'@N^Ow6ø4w\]tߩ(N-'X[fNG Hkw]e ]?Y?ua\c/IgϓwXp 7<[slEt6 S<؏X)M>p6+9!W  `.#ŇG>>qBֲ;| z n?{uX-gc?f}d4y>_Zֹ oyn'6Qv#z׎ߞtY<ոG~GYHyGZrh=Wp HXަG6d0I?@LgS:! 3x]G@r_sq`B fGH_>`ĘI2HF @L Oӓ g XK}d+B§4e~Pf?873(3sLZCղw+`Id"ax0~lXw@4&KK-/o3mAH-;ṸN1EQy"B yȀhb7W?]p @ @ H `퉣_X5&>BCI0BfHhdttIO(bI|n0MҸ=Lb~S1pɀT1e''u﻽%C ;- TT 0 Jmռ7xX\3\ 'ǀ>=8%jGkٸ l[qw@ gJr>Ýdkbi1(/۹>j0}voD>Ph FuXY?šN @/%qGQ]/( !7lB섧OWG$w 5kC}x KFHAy=&>&Tr`^H?#r'i,B 0&~q?]%NoHL,Qדwzs</Goaއ_I/G)yG _Cr{jxx} c}"VzH9ryKj[ %w x{nt:z @bPtM@aI/F8$ҝQp0h?!6ljRj̼ !^t!qwmzMVtV%; aF='EHP,f(}D#6Lr458p;nޠ[S{*Yi&N CzF vPy*>8tq %Dυ؟|a42O'}Qr%fKg pp6?ti0 q)9Ҟ\zC -?®ގC-(J {7x׺sd"'mz@e$VerH*Se{P@ =@!W3G !WF{ `.2 `;GZz ̽_B@jKcV^xB `;,5B0GT@/H`@nY3B(Nvbwq bp$d0G[n5{< /%!Z@sϣdf`! ^=9V @3(eA|ܚ;Cz|rۮv^Cnsou lx ?,\xnhHWN 7WnEx _~_ˏ?||1||)٥='BYϋK@ n@; ;Njќ&򓒎qz ̘Ȳa| WHCdy*5e7{H`',eK姛jɩa4b/ iu0 *lr2{Lx? X8azV9@!)J4 @BYafxO@`X (ZP?5=5tJC7ɡS'jXHyy{sP x@N^,NGx΂vÀ)HHd-huEP]w`?H EI!wxْM>ސyx}\ I7\~opɮlgp+X?G@Cɢ {̐*.nd;i9zϓ\XV,i4s`pE* OM~'Oo<=B߅>g쏧$JŅǀ d,J>7?0AώFG<@-GInmD8@J"1||tk֖Rn<![nyg\Y:c|]8 M"u/~x9[>?I~G>;<~O9=B]8\>pǸ"H0ȴߓlj8C i  p`@1B``rN xi0{@?&LjCH$4咳@:b4@vYaBP3\:n HX;, Z@I\c $k3% %uk;:%ŧB!)9ΰ( ;I0Z\!jscn $ mkCPZ狹Je֨1,]$ĘN>/(d @4&@bL@`40?+pV04 Ʉ@P`!WY `.!Y C7b#s|0 O$v/4Qe=W+  |D욂aH,I5%R7> J0%ד@lӾݖ 0}ӊInR,@!!/NxQ0C_2p qg} {PPA\{&~R;waZR?E;}o~ם!8@$2a!9@0 1n_ۣw€(w42YCww"Y|1}QK2}Z/1E%z]<WפtDɀnɗ.D,X9J/`Ѧr*XMNB3AL)@i||Jo?K|'>O~NMGo?O~`;cjJF/nnVH`J1$ܱLsPCĮ5DP݉,a %!oPЖ3J2 N,!C#mj~NR@y'e *C)g%?|zq$Ұo+)99⪰>䤢ϟ/}{n!wewa\Gć @Ott! ! 1)$B);%9Mn!]M )ٷ?[Z6vy;t}Ϫ T 2(#8GΏ7_l6;+)\Y|WJcNjbcc~C-)ku0*'6z@b _z*?Op+JvF<!]m1㏺)+$ag0PكèsCe-%~Cl ى[HNb];1cB)FI'fn@} J8w 30BKOٿkKo/;l\ť+N\6 F3SpKǰ|r"R`!H )#6 wX 8 aMF&1 dJ%%,v_w>6 hL2@M_)8kf5J&IY%#cӁBKO~KFG6|9CQ0&`0n>,,`GN%BJwk0`!tn  @B`@&!0 nP0jPV,7{*&'onc#~hQP+)^c3&/:{gOkV5t= FZF;QB$@|er4$aE6\'`BXR@ l6t/k 6 sd!c.<h"֛AbxB $'L&@o/4jy -ŭgDRW9&B@^\섃{yD6/O 4_bδ: #!zRD p|h$ x=`hH٘چR"%Ȗ;Ԃy :\:>zL UhA0>P^̚%+Zݠ #!Fj]3[n~Jӈ` anlSF%D ҋ,0␾`|R2:z?:\X!eLUQ"Dd^Uŧ\ 0*A@()(:cZ #x>I ali!PuT2t;}oD_! k7081@g| D-}W `hy8waTpNgm׀ZD09"ac__zHF<'6[5 C/ }Q°RP!a àWH'~fI,(Oj,Q}B"d;*˺'NJdz-@l RVcpEtnDwg- 41}m B{P@lVPd^͂0sYXЪE%3.~D?~ @,%3A{\X)^c A3#%Rt5u=c_*E!M$|BItl뼜Ż ˢ(8)U}aBkxJ .C^JzلNs!c.<h"֛ !B-Ͽo! ]8g%CPB&B-,XbY/ɉG}0@:$`{!r`jF>_`3`II:`2X ׀ -I <L0xTov)KVyAP))/ì4 /X4/&iD$]dltG ibhdAI| )+0-<"o*8`p`IЏMz9%&ǂZ(3[S+vːC(%]) @xq0s؆bRl2^7` ")O C6 fi2J@pz5LP(F[57A)%qoDT HKjp77Hz(VC{–KĤ+ 6X6!WtkЀAndGl-g"Sof `V q)E򓓻} `P%B@x 2hKqV@1%v& 3=1N)i/ ЊH%1HFIH$Kd*2On[RS^cb-Inڐ#!fHV0%xKAݫh6jF7(>SzP. ! ;Xj1 @ #!D/%jA`#lbKqN ìkRk̄!tD%MMN0K2!<f "RGQL"kZMԂ`I06B,PʣvRx{0#'Aۑ \`OBr5NB“f6'AUJ;R#]%1)8A/NΥBu,Дx(e2,IT6V F%F=> :;9ưw@ *x8$<@5>o=p5' @ s97?ݐI:X`r@?#LO ݾ$eDyy $4 Xxf[@7@sf!/F#l @ѯ S`jyA%E%Q*8J^x9qUzt8bh~ZF}GЎt+@!/Epp2B3Nm5'_"kw\oy% 4ՆTbXodC!a "Xσ s>rr b} z! !DnԖXF#@d41)Hb>!)=,ބ\P܂N&A0CEC &HIFX%|{no/ j}A0ie FBBgڞa  =4DoGPjOPTX +{ )!+~fZ9nH ȑ5&%A.:3d!JFHѳR==c;?XsCjU_RXP@0^H,bjMÛ+H ۖqV-/ A]aߓ.u]`?p|xm7ۏZ_Ks=g- @L&|XgO)9uEY($.$h;@'M (H`o+ CrRRq!;I4$02ɼ(p q q3IL#| A(Y&$4G&01,^W.Tui~| sSU|0HL~  C5J7B1#߻3ИvC@!}3߀Ź@9BZ0%Td 9C1A=S5>|p LWNI4!H>0$߃KۺtGFcb_=Ae I ol xB@/xQlGj >h!WG @ !WoZe1kl*EikuGHu $RmKƛ {6yXÉZԈm`T4"B"EM%]eiZqei3˩hW_-Xixܥ S5JQj$ ј0!X4C5b$3I1# TK4aWG5l`7,I7˫)Ӭ<Zr47jLE'د8JaPR]]UUr)ī]M+R6vFa6oV `6!kRaS-3ڕ d! "M\lpw:h5[.k!9Z[A]SSV `bS%BDC$, IEYvaeYTU5UEivZ@h/o,GԜXdMIԩBn z M-Oe594mZ Ylp+YW:PiTX1m5d֊g*^ke;HV4iRJ&,Ӝ욧,`ĩ@wRofM9^ &ڒ蒰Iq d>FթInL/qc_[ƙVoۻKkɤ;jSsE բ%8qP#R:J%;'f 7.Qk2 meĴ`T6"""$&9RYveuI5aU]UUVa&wRM[| R4럻^77!78I@ɴIJ%-EXf@>8I!r[Gm+uS:\د=d"fTL3Y±1=@z| -u\9BouI^* +lq~ƙzDt|-DDiCYEtdt#M:J{iRbT$D#!&L@diF9DSUQuYeuX]gee[IԔYaX]fVF60 F*kqU?n7K3DW=F EO69EyƊc6{I1Õ1G#Prыa9$Kl7Np Yzbg$v6$Raf#59l]"ɒ`$J]5 ҉4dEfWTNgko^xk&Օ/k W]rŷD7wZU+ Qr9rƵ\0mkuT DѧMZj|s{fallؤ{ְ`c$342FmIXYueviu_~\ѽT7,M씕"2i;%J7 *9ֈCADIjZRT_7BuTؐ˰HȊN؟%'M, qm֙ u.dGY)з#ďXŶPѸ ]RYc478-qF8Q dE*S.G4NB녥.򵭲6aN40ʍpz=\Tӛ M;Z$ \$+k%IV7r᠇()68^7I4#;MmI)/!7NLuHXk H/JmMbS4B$$H䉐jIea\qv7`u斺eaY f..d-NY\ֵ+WV"n6!W{ `.![rB݆C~L(z oIe)/7="P vI@{N @`I_t &xJ`@0Ia"`oG)џq b%Xa͍fq N R])Wz\1%K& O"~5!ZqA/Qr_IKpy@0 ba {4`s*!@2$e@dԯ0$ƀBM/s(0 L  @bFԆ B`Xʉ e?èF`AiBK!RB`h҇- @Ғ3FLJvC ,1 HҘw0.|*琊( a겆彼PQAsu'ܸ o 68 t # 3Iwq$ŇBkTҸG# q;t54I BL&ӆ!C@A0[/v,1j;#B1(`XCKYH`i 6 ئv!LA /`֐3Rp`*!G HGEF D舤 [յi`!а&ీH`TIH-()3@v@Pa 3 tQ"))@ ~>nUUT$P q6B\4)bZ8:LXUp@zHJrDU;ƀC)Lt];t Kş bD2x#") @&%;$ ()g%FaIBp/%8LI/K#BNUVV5UU8 p*Dv>4J|RJ Y!`y'qwz""U@2(? Fu&pID<ބ ] p<BH0W-#~73f@5&gCQKlP[) T8NCUBb-PdChNxP0P$(L멫 'ՕH+)sj7HFRY!+ đ!+!nCRNi6d'l!PßХQLC>@ IxV\vB}Ym'a3ZB4\Z %$0,䴬k1y`M!Ip<w٘"yh!Н$5jɂx; peʫG!F4I^7bÇ $e#=%$XAB?qW1b=/)p_!ݰEzJټQ%!Fc.` -6p! 2ƴ`{ F#<kfx$I}SF{N!OV/Ron$!h%% ` pPOH@1=}`8p4  wd2 ="-!$]c,L/j C%'V߰2R HJu dv"`K !pL<&~ O8 @4Ќ%{C)AƳQG B d]I"5 A]p}pC(jr֖= Zl-H!BRX|읹C' P+SDd9vQ, ,i&0GS`I!'M  ="Y(hific0Up S#qou bڐ]mԚ`* hp6`Ot$p>EV6@m v, !E]? !W `.![#9a¾ κ%A$79LDs A c,0\`,M^ze4Lg}qo$m ķ(mJJ/  !fmvK0# ! &OA`*Jрu#gdx۴ !Q1d$T5#_RK]92&b7ARIc@t0/~6߼R[=`kIA{A@>'){d0(X6At/ #!BQ|Ck@֤#P}bb(,0Fe .D 07-&)2N@EŇ@L AJq'%!rZꡁEQaJT7fS 4hvLa(ߍ/ f1a~$B*k #"E {9 C11DZY-427`舷%!Z桑0A_Z%;R )PޯݨK:b #Yf!d/1vBм=!e"׽_}>FBYb"-T3q$TSKGN:b})]q[56 #J Ղ?A8_ 9)JsZ)I,d썎qp}u汬QD#~!@Ih/1]O x Z̴ Ot5#LcBno3RW8ifEIFZ~{y4!!Ӥo*'hDLj&}PaVI}wyh)nО) p v]|rcI4^7bLuDo=y G`]=#DNI:U!A٭X7%K8J'5vB1.` #ùuRAH klS@x䏸z$Ùv"LpOq$ @ ).`d8 )@1=U`0p4  wC5Si:J4-k /{v]`M̬ZK !b,~ a~ jxV.`BA?,3W~ O8 @4Ќ%Τ{Z֧)k[F"hA~&ePG  Y0^j OMHb{MIe ai;s_JҴaʪ!ѝS0@Ix.MxD`M p"HɃ~i BWO /y4$c`3SN@],i<gQjbZweV |oT1aN F N) a` p аRQ;D<B(J<| Nxa}OOڄ03-%'mXcizbA$i1!(&P<_o iB !fj@ xV9GKݑBp#bI(M R03^ !~`,ŦT @B Q2\5  %4LChM ,iľQA+zBC`(a36JQ'ZOM/Ξ tq'=ҽA!@>5وJsR !h/@ #A0^<'mL ]f}h2?:.ȒЄ0P ɨ -2%#kRfR1s1,_  #@rV'>ہr:R}:(EœKCu7lF?3po< j/gp #,  Ob0/NJRֵ)Jm9eyi(1mB0fzƳ7FE#[nbBHNsֵ-KQd!O!FE/zxV@|ys,$#~{Z+OL:v6 )DX_K>H`'zٚ)r4X0 ?8վWp~Os 6hl-ƦB%ٶj}ֽ;JN/oG`6a#o;~~}?ud){12dzvؖ_֤tɃxcJWK>,ԿuO3zT]Ua]Q~8 'n!0 D,dJ@#'"p   iX BR^H m@(,4'9%؟SiCDɂ@o:#zKjTnj4U;g^1 {@pn {>OsX5Ђ -+ÑCjT*RZ@Ge$ѿ,/'cˇfB/3A;u%t{BM:]kiF r^77$=>Idi!b0da?"ڄ}m2g5W.LU\޵Ӏ갪jjκ!A/+_Ei 1 w'4C# l?‚'C@L&C@R9(sַ\#TѾZ "F^T: yRdT2dHrdɪ"D"  $  I`2O @ bI%PAxfܚ~;X)*qTBsTL%$@2"ia} r1bf6!))5&L @U0 `Q4"HDT U^e $pU kf1+#DxU$g7QT1!z8bFBBFq@A QMiD"yA Ԥ(CŁ/)-(J4 |B@j0'`R ba P$P @I iiMVE*B($hECi6׀pg IY#6ʈA,wPZM]Yx ]t0(59JyX x AO+⬤B ac `x`i78K vZ@nL %_@;G%Q#S /~0h n9=FlB;JC&7] zCr$>A0.h@)%%(%q%: ` @+DP @bi0 V  0& @GRD:}TQ$,R{JI3 7` H @Xh@HrI)iFƪ] RUFQj C;$$XN"ҐĀA# ,Xhaa \[ qH D @ d0PNM ̉%tC0M$A/0>`MZr@X :yk)e_8KKv@DoG>(ŤY1i,5(-#kpTLJ]@*wF0jjsp 'Q%v$a'(B$6͚͊ڮޯD6`pn?JA UPU*  BŖcQXN( )! xQE$3 5;M i|Ԧ &!6Ⱦ$orbnj$oilF704褣)z]0cd#k{Ld'$l3]+MQ3 NU߁^*P="E]YUUT pHDޔrbPw# @dB!  @ξ}m  7ǗnMC$.0`B i,0EmQ0`/_ tRKa$0 Gn&fXx!/Pɒ8 $${rn%LJ@jI2Hn4H{@RX rF;ֶzUt#έEUrPrjaw>~tb!Ƹ1c3} @;A冹^Kj1(6&s@!ֳhC%(%Zm SILc-,1 #h,GSA~&`$|3jQ4)!|K= O8iWtgqzMy%8PDN[MmJfChbua.XB'7#"=U`Ɛ VhV 7YN0ĦꡔI%bMh+R/E6r["TgJkfMm[GeDW[++Myhg#H5PUQꈔ_6_23XQ4 DbC3DS"4m:=4VI4Tavave]#P"M}R+R%J֒p 2F<փU9FCim׉HдԳXa;#5m(v\EX4@Ub t4NXڕEkl͡8f`1*N&dÁtZh$7ULim8d7k!|#))8Д*|74~PέC ƦjQֵ*Mċ7F;2fKd匨@BOsm*i(d9XI uҗErIX`S32A5m9k G(jJ VDW+g)³GLv@Uj574]KsF#kL+Z;qT` G570!Y{ `.![{ !jaп4x!C7F AД ~_S{Dfp;C|.}kǍO d;x :`Tus [X( k@ ؖ-x9)jR " !@tM5nkm wLvٜ15cIo3,40aEZOe!0jk%׎y Ho/C"py+ekxb !!OPrCJ $ 'Ld!Y2(WCi/Dr`rg_474 ,i%# \䴠$Zt`uݒ!F{!b #!G`LH: y0[P>px<RZi»ń}Y(x!dd ( 86D}'  3^H 0U7nbג0id2-DacIi_Gb[DXG+5K_dY "!ƼA19) 楾63e]eL_pN*ƅ SiicھBS#Yf!d/4r$kykpФ#"33.2s#e fz#lDFݛM̩#Yf1>D(pf6,FU-!硘y/yBnbShPԅp v]|rcI4y~CkGB_h`+6YJ  AYKf1.`PRg!B0,X(B0l0 `񭷏i!cds6kɲ"S ,#-$`O  `᠀4'A4Ì=0`0A8` Ĵ>#8?Sp'B@0A$ /0icx}">LCX)6^UO`9nZ'%~°l+_rx!\(lՆ)~֚JV 6H/ A _%1v،ı5#"Thk՝nM<ASH(bzԵx2HGBRڿZ{5-NB!vgrfSV+a;q_HE!^]`5_cB\NMkdߓjp"xZ(s`J=-M!`dX7 z:Mj{SݩS_ nu-!!4ih۹a>_,<*#,!HC)ΧI k~p !H@<rYd"NMH$p_7[%x>Nx iD0O%TB r{NRx{ 1D9/%9!$k, !vmc3eҜ0lܘT|g5%P$lëdoB< aAĺ>-Y0}R4a3Ƅfl>D0VZL(d2ɥ |3 %?%@2IC !Y `.1[M[iA .g(x)c1 #!G3^g3 a0/SW]~?dE C> bUArT1'j#<qaO{d{C0'a?a=V2;VtQy=#XG  @b_ M22-wFe`#]v17-k^Rp0X?K6^Oo vxDh}?Io(0XDw)v/\;|mO Pma h\ &X|xCv)i+MH0a5!`PB,_)*m S٥6^ygN?OO䯀{E:; f@5!}xV@9$KnX8~CsD9 v A,h FDG)ZV{o @aMA[Sz7:NUujzZ槭P RQdzoP`L#IA #`mě245(,hơ nN --d-Zr( Y>H`;»@ $ X>( ) 2@ɠ'@ OܠB¢G&A,o$-@Md0h`A59)@WYsJ4wjz}UPPH:x -A`z e=t NMp`X {uu]h ϱhII9,'`a7/ZuuFD@` M&v OTP0/W(\F2(պIhwuR]@zi^]s^-xc'p'aB`@S!|OLN([Y`)䱀Yŧ@ dY<iQ!MYcЍ6 !_Hf + yFɭ`4nSKY]$ɀ ]Ϊ0&$4<H s@=-d"  !p*CgKo8( XC$0YDd!$73Sc3s?D H`ħ?į&0I(tϚDv=g (y(1tBctaISJ]u[ɺu {UFhXD008,<4$pұ@^L!=,7Ro=K vr@$z+8ewA7I4g>1r_!X) v_]cicxU0L+!Y, `.!['QiOd@ɼY0y0Hhxf)T($/J0^u&[VV &'%lD[O@j[l-|ǥѱg@cJjZ:;{ x: vǦiPɤЄFf!PyI!<9 A%7,lOa~h6`ieхaڹC@ r hi̩r0n;O,5G@U=CK([ ؃ '7( R|P G^wiJF$ahH JrpavU7H vGY~qH!r5TMl;`ɀP1%FUNDHA!GZΠF/G40aH3#/`ȚBwGuͳY_(! |>@lQcCU&)%''A($ \PFXwn,U!(H҄׸{'!ވahjY05  &?$ BL 2F =+4& A ӐLY-HO=2C0d - i )&Y=\,Ma/K+$j:dϊJ?;z%Y+J2{Mbd$ 045 `1S|:7WmDW\ $Ơ+y 77m$񚄓=^zN "qW+.ƅ{v>y.!h}ɻsK$ fk S}<mJi1X/zx L-$ G;`,-01Pա#}tcI@vz&`f Ç xaA&am"UR*ʪ "pPҭ(3!x04fY%J#tF 00 ĘCHŒNo7@0&MxHg}jj0DALI,LO>S'& Mb)(6Ь̫@uE#vIJ 1eK@0 )BLat5Qe %)dw;0e;ՕTI!Vp"pA$4 PIA;?Hm4`g="x;7>h P@6 N/ KOHh!n2[#@0Hdܯ# _EDr2Cl4 J- e83 K_U1Cd0Կ "fr^ϾKNCzkȬ*mRF$ {0"q/D1h `? ^Jj.N;-/wrB?fJ!PжH(%eF-# @4pho Gy\#xx5o[ l*JY:U\9B1H#{^^C̲qrI77$f> ) Fc#. (4 /|p9aP(NNax8x^kv[x}aJQ,)Җ$ H "$Mz{h B<((`?hA7bX#ccł."a} _=@ 5$+(dvٴ;YN)Abr!IkNy7B !#$* F0f!^؋3:18r[hA7%~6"Hd͸ @gO`l^KR}٩jdba8+:!"jA WH, p&SƟA t" `.4IO`OKɯj1 /1:LC*V'd+"d!`Y7d/oh:Z3p(& k(Z!!Y@ `.![r0W K-[peë}o- gqt@OiMBz[jF}[ l>t-h !fl# Ml=Y zAdS]q)t jVʀPҗKO8~a59=/Y A4={& 0*J -[txJ #!FlGE!o4w%k7=8ق-rS>(h;4PxB$: A-p'h_Tyډca>ihc4e,HN\vZ >xQVL{7f lմ!f #!vRTā5 kj Lg$-%:[V (:9ZV.{X'A7 He4S'wŒMj$QX@\'o!Î2K&%! Y+H |hB,l|x/BO:J^tDCZYQ]!Zb#f}%?f#_~BNCG$u 8<1ق רĽ!~,?4C8K {|#FéhN?_ BJ桗+N?ʳe!Q+%f̔.93э02hC?}E1̶߳"|͒5!#xx5o[ l*JY:U\9B1H#{^^C̲V)T Fi3?R z_#1`#. (4 /|p9 `QQ, !ȼx^ ( (`}#]k(O`i#HLDH-ڞ<œA&q%#oZ1ƒMy1}\ &:R8 JgH"`ww.[b @j%9 !(8 #$* F'Ke}IޛBY^Fp|>RAL % iW=-#)܍N83 kj[kuiNjZx*kh1Nݓ *LUcA 0t-d7 ( #"aZU&j91y<.j(0ܡ?$&%9sQ,JYs$Ijw1` f  կ:,!8^#!`!h?ѸsRKVx'6i C3k?Rp#K 5 #)f{[ӁL6cKC0.iہl)O0- ksTfp4тUzok0L1K4 [G #!F>$ ીȼEV|@1 :HixoB`;1Ij"\C I-3TV2󄀨kbN ɨTsUĤ&d5_]h#!YSG `.1]H1[Mp<˓ݍxd[ )Yc #!vR [BOMj@,:G&;%D !aiX0你e69nTbd mA 7b\GhhF$Y!A $UDP3BCF F'TB+a#tbE3Kj@*ЛY?8sZbi0ޜR +*KRUX+ т1`{F< P0 оຐG,;Nْ.%7#,'S[A`Z(Ƌ1N; auFً5xKơQ͜$m &M %sayװZkcqn-V2IJv+_~BP `M׷SN6BJL% cxˢn>4MD{)kIďH(dX B2|W"8 D7|A )n‹ h,LO(&t _p MBGذ$)ŘŅ`'A jpHBw8BlBBrxoY (gVڪ*U?up {u 2R;pˀ` x CJ/8Ҟ6\: yCu'aa8G%>bҀK1  OIM԰a0L!Z rLLT7l5 %)De2CCἓ $|00^&2\ GBLX = X,BlS%`\ /RiܒP#q ̀vJ/`b0ݛl{1$0`jrqcI3@ļw  Tܤ6] vœX hf!&I H@b`+4M'Ij( tJ I )@_ TCe$boH$ "TQi!Yf{ @ !YY pv5\qTX cH n/2m$WkX D@*KZRH̗jja4:*$U`S4$BE%LAuee]YvuuWZA:pkeO+t'" $\a , ~FXgFY)iRgNū!V"/ ]T-lc`ZJ6Z( C[uH*##k@0wF-kAe(Tm+v]R$];? l ؙCKk[);z\)E8:$q5h;rat֚XЩM6TKfVWƲD})4DKa NZx4bc$DC#4mӪLT]E]XmeZiu݅1TAG`3oHM 0ubeaphyS%qǫsL.[8qI6L6$IUj/5#j,j́!R'V[#muԸq2좦2 vM6y"FnyWBbfմlF2&aUIl.DJ@뢚ƶG+PJVʌ1 $u̩CE5ًR|ecqJzM!]&6gn.AX|ؓPˁsia(ˆ܍oW`T4342DMQuauXevYeqdZ0&Q25isj8Jl&cLg"YCz?Q%5 LW.jerihZ+QвfV6STpVn=8 Xޒ֨b$QMfhi7k69B4E "߂%DltHࣳXcMs$ЪSmlTZeVZWj6ڈu81_$!v%h©5 & ۅ[VvK4Z**U"V,GM8|-w&,dշXTRbS4B316M*Uf]vqiu}^|5nvNǣhR6lXVX )7J8TE+2Vu[](yhaFRm')q϶w;:9<ٵIz$˰ R,\Q5!!EUHX!FHi;1he]&m&41M*M4':R(ni&ڭ˩{"ՑB8e)kmprWK2IF2ZF6]NH"6Pۜp95&0ڢUH/sȻ3GiHFmJ]ˤP`S4EC45F:I5QUfS]Emfqva]iZu_ (FwT XbmʋW@rG;N1#uvĝh#\MHkT71ejiba7QCI:i2ZXԩ&!ZU֬N#.8w}A-d$I!kMG#MC.@jĆ7بߵF᝽nں[/̥!DIb>sљiU}2GcE @Z(p26㬱`S333#&m"iꦨDLV]vqeZr\y֮uey]Hۮ$M"N6EVmSgέ`X'.iK )Jgr"4qCXk˴eT.(lD>XF;Rȣ ͥRQ'K u#K ݋0ϕ8 /ېGqʯ;#YI&RMihUZ^;8gZK056쌎&$L^W)FͻzK"n-X%h%4E &AV/*W !Le\1 {0bS5%Q$j8=fXeUaeuq4!Yy `.!] %Ie| M}hԧa|[ (.I$M BB24W-8OFI('4`#1̟PRxe3|Q>gI*MwU,}wę?<,Wļvj {"XTP@U; (P ی%o.By@<&7i>qJhR˄B#hFb2"ܷ64% Z2wp Y`|J@G?C2@4(CR0‘@V8V)Ćp> Sơ=pƣ W^ꢩȧ*Hz WSaUj]3vҨ: =;?赪jLd&#/K(%tؒñ@Y0b_H\I@ΔiL@H@1 ZEh4JG_H y"T2$5U UUՈ UjUQrĠ=0$ eĥ]+Q%(Џ# b_j[@GT#) nl{C䰧+oDJ+T#SjL]LG}M#55p7j7iT]p)8`:1,$3w0!ZZJK=*JIaIB6!Ƴ:})峫@ 0f7 pDi>%"H3rah $!<`fAI\(o$([䄠yI"'}4 XWa HRrޭi-CʵUz W/G}p{*T۪R?*Y:Zss40 le.@v.*ܟr4o+dp ViPU\qބwy1myfOڅkqަQ#,ƨ0a NKY+xx4aXgRx\g]ʫG!F4I#xz1 !z9 uw0RqO} ) Fc#. AR_`% Aw.s湸0 8pkMn-Q܀84= O''e lPS @ nG|g0Q_[>kB`{O4x ] #!fmNN$gFCFjف|'`!v)h?ޛel@h+0/ĤITwx^? #!Fm"lޟlZnz@WR7xf!oR"1tuQ  +-yc #XUP|H!zi(]8Dt5%P(!Y `.!]*$0 /p3%lnB@aWU~m9ȣ) #^ !Vf%Oz$ذei$xM2zT3 B\"YJstF4E=hamg5 fk FZ f #-Nǘa_^+B !Hfa2lj֢'fƤ#\6Oq(C3u5ݟc2Po_mi̲#^bZ  @ x# _n{At'Zא" Ol)AD0Z;@O#OFDI9i|nچe[ #C"RZoYfB_f#%d*ig1k[le>]#xx kx,!J9Iȧ!Gxy FYK8/CpRp9D/ZBq:/S `._ N"9W9>sL08hHhhkWiF R ɯRAM)2X0-Lh,!xd aq́ vMB.0|JT sI| 0R`65W$_TE!jK pJRPN 0$O M\[tX^xb6`/j501axR$DEQ5;!{C` -"7\A s[ 55f˒|ֻUSڗZ];BOԩ=0K(~~=8B0G"Ƹ IW II@UcQIi4P|h+S\•wh.RP `o8PDƾ@6O\B}_{& ڪ{]UB=&ے@E&&ZBou'l9%Fo$] D=9N μz@I=O`YNg5{j1T#Q  SlW @}ρPgᰄp !Fh^CKQV/&Q$`$n|12HGu-ǟD[,&~#)CDưG?".0 M 'LTgc0 @(a#EWǑ*'M4"x14sPaQ0 Q ЌAD 9 J5͂V{ZnT @)(w$x0h|FHYۉe{Gq |:m/`#& ވ d,=AT13tk? B)~O|<徴xQCav 8p@j ىKFpP Fh <mD2PB;o޾ 5< G |%^{TrB5De33=Wtd7={F$dmH [06osBziGz!e}(~wnڮe^(x @nB7>J\2B/I FzȐ?`՗"-$IH3`#U3P @CFu_ވd,#j>٫_f%`\ L !ᱦ3d0E!^!/8 1F\BO`o]DO`$}!Y `.1]]H1 #Tņ0_B7J;m#Kz0P*^Р8 P'tep% 7pһcO o)vuH[@*P&7'J~$  ;| L A i3t ۺ9 ζj=_8|Ap*;tҍW{04 v,ahB}eZp0>` B RLp|4&߷Osn$?U(Cbah,w14 :&Z9i&f Kl΅Rpd`@uqx0ܓ흳8L=@5bq``Pn|ݐՐHL 10אJ,%g׈0ΣgZ}~Q{` ?Wi0g,^?f9(14%좃P9ƯυG+3^x{Oy'Gy=Mi 'Z0 <=#IEH",FxHRO;4",Ҕ#Ub -&C"fB::JC g݀t.6Х\@g~`?44@TZZCzC?dq_(!8nXwJ;/(ϐm-DkFxC'C@vi dɜ59;e%[.D$`vC, 9E) O-)Ѩ?nG ; OwP l>mjCjȀ:wh#sŁ8I}ۯ-&HFu{қI^\<.\m@?9=pm']4wKOdKq> WX'8}8 7G9eޘpgw#? GӇi?c~Ӭ͟=\<>KY[%v.i?%LOsG$繰{\Vxbŀs6KGQ,h ٱ`? {O4? OPXOF[Ea< Ǔ:=N<>>p#Ez3`o֠?<~́怵qlj5߱gr=Ns?K_4:,ywXYXzŋX q>Nag--k'gsV'58Kx\>쵭n-Įg&@uqw|  @ c[8aƳ,4z( K 9?zPLN|#r15/?' 6!^t~@0\I<}ùE|.I;14j% J QE#290,M0%W8nw1P0ИsJB62T` $uy<]^LIOOۍ}g7=E2;{gOz<^ Khý/G\76E;"/ s@;";xϣ[O#v1|a}Y4,kK KLpQ8VhNg khVeV `^VVe˚ ,7XR>$ä*9~]m Qũ)ں?/hZu<$ qr^l_'8UҳVa>/yA+$sTѝC`^5T ."vΙ%82i$#*V~Wl^AaVh2c[ $S?ݣ(1*RQ„/uGum1Bl4*vAIdMPz;;Tq8 @XnTbcBTDERMUVI5iei]qUU%J$}"֦df3 Df-uqa,ck jє~Д1*bvҕhkJJp㧵rę9>HIG@Gҡ-lPKFB[VW婸9/U&3\pv(bI Ult!T#KV&r,9_Q  Ҡ-~')Q\-jaȕb}bԨ5eBeQ8h7#rԫjԢ+ ~GJ;_َCg!J[@7i UyUE`S4DT"HI@MTQeee֚iuZ]1]K#MWKp:*3w/4@"mu7BQg D!rmV|VmF3l)jjrtB`OtHĻ"(jۮsZ|:e24K pD5Nl4ݷ4#I!ed37t0E&DU=uQ)B43r԰+Y Wr a.9Fxz ^U$_@]T>sgܞ=cGn4DIYbD2RBBDQ$fQ5U]vYaiiםuf Kd2׷c-wkT(ʤ$Jlsʄ% ?NV$ SrTsU(@/]600Nk*dR1!Ke "M]cK:"ZIl4nw)d:.F]*)d!Y٭ `.AX:_7R؎4at݀_NO~|n{>BljO</it   rɘY(k B: OwdUђ55Q57 ^-ͳ&4ĘRR ';'swonPӿXjB Jw<{X i @. bC/VMa0i 4~ͷ퇿tp NMA00YeFßmE@(Ѹ%8+KPx@U?m !QAx">\>\.X]Q6o{8`q1;On ?(BD0!(4%$A3'#uW(}.nH b@W7mY,o֠rKN)+l#{%@!JN穼4ɀ l7αu)GG;abـ}@LaԩaGY7BGg|F%eQ-*&PCΎNpbE)\P߫kO xV, QsḺC H-L.OgskJ>x<{W?xޏ>_bb /ǏS5 g >=kٻ[|3'Ӿ0\["A$Y] @kχ߹40:^7B᡿\I5;pahO2NO;Szb@/m\]q>7(tҌ^!Op딖wu#Yuy36}}=m>w3=O+^_#`Y0 `[p]lo8e!gR!)yd oSr < C~A4J/q{߀8xC tpBtc417w\P̀=1&}|g>|OܛnC<kDisrlɽ16ٍoyͨo O/<=ԟ<;m}]ӌ B@[tP x͘ (N%$>߀~Zs˴RnHcTzz:[HDwEw4/5kQrI'lF@tw# A !lW| tb3P3 MCD7sdK1 0`,,כ@k6@ @IT33Ycc8]I{%{Q4gݿ`2OE]Qq~pA |)*qe(& w>#c7.k~]5ӓRW{JCfן%Z6tN/t|1ዑ/eIi@ԝ JHTGN!ɉ?*"\t@\~G>}7}=>O}'{Gme>~Ome?'Hd< Q{`Za)(䕒W!+ Z_)uJru`zIbW Ic.0 /0= p;v{a@0AIJRH| Bqgj~A>jaX < |πC!F %d%㍕:A7tE2*yX5%2z )N?9Wd/'Y'-ćbtlՀR .lJnV izOeb@͘R, Q]?) ǯnJK}WiAM-( ^A#G#C5*}X8 <ӶHۋq$ 0 RǽL pK?c>'XUM ;'Oq&)AwC3af'pHfHϾaW8 bxsXR0%oö́1+ri 7K~f4,}RH[RN܁UYp03(!p]ZzF1fnἽl< /KFJr#r) ̹죕!-uG001##~&LdR{2\#SR-J֧[OBJ}ѝS>2@Gťl }sH@&A )NJxZǜqЫH 8a-$mx6!95)x߻1 ^OCY87e ̳O9UbO$1=;><vBѿgJwQѱ]%%#YiQra01x(,Y4 4@;B~87 ߌS_<p|6Pn  @B`@&!0 nW5(+=y`7dnw;:VjP<Nz:_RBFm Kxlո=Ur(!ƒi yT"7``![G `.!]Ǝ@C[b$;{,CN!0ˢcBWõgݞKIkRP1r'%vR5.@@@x.<~%#Lcތ 1Yւh.m{ F&!$0j d'!,2ܠDºsXAZdKj 0h4FA2gLS\KӖc Ob0H/- A5 |4X#J@57#(#O"E՚ $p?`\]=q x1 Tbx "A0 A80d#_aS+km0] k: )#6^Y -9=ZV $+P_$ [OL> `E$ַޔ;&C*#و, H(RP_O`l7n aN{A + GF/] r6>L%/`LevC 5kX !Y g aXe OH-!ybAh!gwg 8[\-ZxC洟w4/H.#A$o5P0dѠAe $L ܽڐBG|- !hC &*Y i+/6q%gP{{#}<2Kwf  J>~E9XWĿhIA $hjb$#QoUtC1NxƁَP"e)y0}tx` !FJ^ hir<ɗ{P4J<_ ##daMCGv[wg莖j,|=HMi/DQʚ{l @ `M$޴48d_{e0{`/ 0|wkN1x7x#@Dd%6Y-m,c LOmb 2D7E4x0mkAS1}$u ^!!.f5f)@smq^!诱OY3>i3@DDPwu=1 S}C1M 2,B0d@|'B0 A=^(NpOG."!Ls?މVX"=D:P½,m}G{P{J<Xb*Fj\kݨ$=K""|";\DG*zw{_z(-0o٬LL=SPe|ůB"1\|z:Z Y1A2~7o (Β06~O۶;IOdSLi#~T"7``Ǝ@C[bHvHG{TPN Npb>V%b6D6kapVe9  6Rs. -IА#bt>s i҉js=LJ II@pNRԂ'@Wc8 SA3 G)(B8iiGHGI#-)|,qe>Y%Vj  CY)9 $!I-E.8Ü ObX$P!%ᯞ`EȂx,5_`|%1: CsxtHQ }K?{A$G!A|Ϟ&$FQ8+̞8SW@)3')Vl&{oc#,Gx;]̌{W'|DZm7!sPES9Mp+|$FJlpKWuO`U^ڶtW:X;b"v2![&{ @ ![bR7XҼ&܂7IfJX&l J-sJ*=sH+#R1[R,3"ry X4~`+b3yw,29,rU wJ=[ܙ\+Vl7`T$34#7 iꪪ)RM5UUXiqךmy^V8H44iI3MN 0N:6Z٦VU:6ʷbͪTI ~] IqjfMqΑ2'82E5ͤa" יKȠM]SMГ:M⏳0+P2 84\(kY$1'8QQ9T褖ƙfk GApHߵ,mԷA!V@"WmZjm95R(NMŗN!)ějV/DM*M/bS#34#4m"ꢪiYua^m֛iu\moŧRrzVmJ7QS5,lNGd_4/&qґnme+c fenD8*%,r,aU ԉqZn2UVzYLjZD@MڛDl EE#19*ۊ?iΤmH\Ƀn\:ܑ"Ή_T1q#-&c:#chk6fiNCp51l*o溷oxQFă&eiXfueݾ ,LԭpAB/y~őA]VűsW.aU1eB\S վCK#z۹ 9@1zIwZLd 3Sչj%ltV\ym2`37IdY Y޸1f 2|n׼Ge qB˫G祣nef/bE#333&m"L9UYuemum-#%rPP˕,$Agb4≦۸W)z:9.$tbiڭZ[vۉɲ, 5̅Dٙ6W(LSV[Ą]3b.xܷZijM] q*7@kmZu[ V`U%%ebcch(,JdnmG\ՉQQ }[Tݥ 9yaJ É"I%45y j#kle2w+^k6R:'6i[]`E"RBDTJ@I4U]eai]iiHa;SXZ.}3R.,*!PI8jUPG禎㖃洍)BB%F!\]El/G M6h[o:׎e cZZ]Yխqp]~3 _\嚮=m r|VZ9 Ę40T [a#}T#Y ]]*U5v1|ެ2̈́ <٤]cVZw.!l;M*TR(n[-Sy4 &h]qFMezVbe#A#&mj$]UYfiiyL#SHo68"WKqV`1'du*mFX[z͂ nCժQȩS`r7[D8M#*[8,ұɷia-de|Ա*-d8!L$hUMfLԯ &Zd՘kjn<;,.m(SV˅K-9_ѮVO)J"K3V8R$WM V}xM q)a'GpRnGN|+tтAܵ7Qf`![9 `.1]]'.0RҼC %k"8N=<?qZN")k F}pNݬbp"!QfvqN]RD7 ]k.ĭ60JR{HO?SzAEyJ`7[߱GܵMh1֛1p#[~{ aUN ){x/ֱ@L-m]׼ G//pS 0U6 H\K?B&'8,]";P,p!þaʘJ\׌6 qD  !kƃ;$73໱ q>"D4݌bYoDu5FhR6B$Cu eCN Z< pָؒYj"W,F%B%Mm6kx'wwkN*@z#3cnatvbMD4q)p10f1}7,#/4M 04z3clR-WؒLDKj hc@yyeذ5#}mvC\!e2fn }1V$Ѵ\MFD Y dFvtBB$D9=qmwmPwJXl@릴w1,D:{|)r=X`0S7C2ބB 3]ݮO_wOvZO=}2 $Ii K<Eğojh^cfF|T6 ~ s%F> V8dy %P`g[s xO䏑(,ܒH >i5)끬̑ D<q3s}1 ^vNw:Xr@Ѡs̚8d `9p6.!> # kz"3u(?nlF"%RKf'90 ONdC$;#5B[{ICe!pA&p >Ěi43RF#Z'%<ӑBy:I,C) M}ItC!=|Rpo&KO ($7%bc75>M|ox3l 'xv>m 8 Opp&JbZO#,i'O"9y@&Ds{$_`|9+Ț"E 9@@?'[w5=svuʷ"#zҖ`A$0AHJ8ALKI%< `(l}i-&%Y-`o'?P3섁5t%=.UWuUOb hcP`n, @0R2Qdj rI^.CO`DU+AT H _A FNܤjx`;Z6fٰ E' Yg~ͯ O\sk;˺{WЅH&Lu2`l_09uRlZ8 e옂`"$>31( vL ! Z?(|M y@$O Cy0L&`hh `6@%`2wX H@U),7! ,bK$?QXBJHš"+{j-5>IM#auΤ ǹ=b`J/n^BI]jrq~q0`jCG\p,\'<HbrPWA+u0P*6&}K *ӊ4H0q $4B`x <J+`"X̔wFd(ŗIFB!hi%!XB߉CdkdxܔR'g'qܐ#3FMuq"{ n`_ww=$`±cU=DB0HmDλ١l-Ʀ";8b!;![` `.!]ڭ|+{w4pĿh(zw>F!gaPpv(x̲\+i<*/Lek2ڈb;齂ÆčF sʩNwk@p `Td@&G3g@Ty=c7(;.@QsTVPsW` `M`y;ِ&cӊUx9"ɞۥ+IF'aM ?ΈaAycYRM̉' 8-x/qDo5V-93dOjNh.PT׳ %T?Z}) FRGasjk++T)+;~dGmGLX*lb;i숄Yސ4 1P Z80% dCj0c*;5z@S uT%ȈŅuQhMk{KwpR[Wws\3!}1Di& D=`-n:}kvs*!Nu !-{]ww XC !%jg/_ &v ,8F_yB٠R .Ҟp #!7M13m-ҷ앣!\F08~;fa"/l5 5t K8D:OdG#̨g*הv "!5(}o1lRɀG$76 *D58ٿYZ%KVUR_f2SuZ{ !Q̴%C 7n)1II[Ư7!;z,D6Ş$$`l=Xs9D4{%^( %ì5 VF~1 8DлH&a!QnMwK'M nI84I1W!^V!b=Ż  Q]Tb$ñ \ WgQGS-'7ܔ\/D?%v<ғ!VT8Up~f:xD>STpx%뒕ɌGi;HfQ%nۀ 舔ib;ƵJGp\  X*\9~bM_ۧR2(snBA# YIҨq|$;R tP%mл&)ay|L(iJrM@B?h>ӗ5e|cw~5<}SrSQ~CPR5X)B"VA]Gr Z,Ga[Rþ![sG `.1_O]`4%uk,!wkJ/lVx@`!~[m5!hWmUmk=p !5mi*a $cS)l\P8v2Ieb%v?]!Ҳ\JR2hlU=6,6fS)O>DX0c !W7dWw|>L@u|ވ{JRam.m (Ta&R(fa+ >`+3KFDC8)K6CЍ}D˶{&O9SLO%_jnPv!Vpo^- D3|11;9w$+~h?4(Ea_b8|2wmSapYQ??`vDG[(`sSk뛏|G`?Hx5' ėہȁ3? M4#qAP=jǹpWg/~Os 6hl-Ʀ";8HX-wegvN"lֽ;2vFt6q{}Q&#~0 @ vDF; ~?j,Dw[lt\7?I+2iH!;J842-! _~%PP> RH$5H(Q 0 {`>@a(,$ F ݟIyws)NH&%@nB5@(ZtV\2ΰ ͖(؏1{NpUuM0'2j7UT5,PkIp)5gY#v0&FonI%$S '?@Q5 W@Y XYDHG$% xO0jIcPh#% GDV0$|x NJJ&2{!yғ(D@rOR1/",'Tsw{:,yT.MUE܊Ɋ)RL.ET4`} 4Xh, ^M&X (rPPX-+0C +ZB %#q$W[0`&0 NXB1 7{&0Hf g(RF /![{ `.ҌI%|4 & %Rb($B - ҉cFKA'DG T <^ dh`]=^L \J?D,p*pѡiiHLEhI $Sa~Oi4si)mޮngwzW.&;x"0y: ag`3!Y0rC[%;akWt"`Š:iZUk YS KM @F CC3p K-#QnF7 ^ CHDRhhjxH,3 7 ‹Ō(FHшDĀ {()ḠXJ:RH&@h ? `ɻ%$$ @GHJ@3vP dc8%`a<"Д7Cd*x @vM@ED% `0 PHieZ@D bFM(t%H7b>IR9#1Uo|H@oInfIBRG%~o1l} ;$Z#& Ws"v"6ssޟDTL/:?|kPwqH]] Ǫ90R^7׭}p*A l_$$rm ` B@b`-n1#I EG5th\47(Q1)F9MD$NI$%O &Xdw($ =(Mdncx cǰIt*2wQ}'>u~? &E8sp;' FA-Q|!M3CB G# >J<2UP(PE6vJp. r:8 ƩXUf%iJf»}A/땇Rѷx!*pXjp<_ A g'HF8dN gtyDD9MQDY4PMtG./B!DebD"D$@(G'' 2 n<#J̸uEU@*uN '*le$K+ƜOGR.o'솉t@јO|'_hxJ <m$lRt~! YJ.*y% sP:|&lؑU"Ujh RVsj 5%LIC,\Ĥ!3 z|ބf?2 & g ۬cO@@$эL !Y yo@Ύ <'t~qvZ? C-> @P2М9˞tE?FIPҨD UU}![DZUUmRMMQVߐÿ ŁfA' 2!0I NNe9DjP҄ sш?LX)I&ɢ$tXÑ?v$4Yc5iNA,a =K؞)B4zK q##=%s'?0n~愉ho #?%<dhLM슭~uiqpƣdGf:تFr,+ Ev(ځ^|͸D0UQF9Z$GQ)ah3 ŎTmn\J#+wRҳ K0VІZbݪ=A`be"!R%I@꘺$MAESYeYaXmimqְZhj+~uUZ/?Y#" g4aaFxW#]|R.]$=`؄bt1ZũFx,% >QfR>.ؗXH%4P4u80߹̾/&DfwS+K9+"\n]JBlAhlz:zBi(f3UDCI "ArWbjGtɿ&byd:jGWg r*;+:%Ml餈V4{TLhRfyZ/i `t$"%$&1 @I0Qeiqƛilm9lԦ+˪lH'iAɶ}% PQZ/(dֶs O[x.EM;HNNEc.)bgSG5 \6C3}6-*T>O~ '-i)IdT[Ml.d"E3a㒛u-+T)<*r bML)VT8rg_-n3xIXS_/29C Jp *jV[Z@5 ,HQrz ugkX`d433"4l**,QiWi^qyi٫Uy2ENN #FXn5 u`YuIR9(e&gdCQLxK*4JN"uw3H8 Pc֍NZ&hFVB+a:SЬM6pU [إW6Q&^Qjrœ2fOSП?|@+<ʎۥuf .,rWM*+ |1tφ7II/CMNsּ.Z`ӧj%V]&&ȳj%T"[N űWŘV|;ju,7_>4Z%TXC74'Ȋ(isVZې?J紕U㘎a671Ħ"V÷[Q8b^cvbZ},R!H娱=}`c5$C$F֮BDP8iVUai]mCT.çk %- NaQD8-jh1RPcDTILY4 N4V-WT˱!|ll^3FF Of s:?!FoH(sPd`4͍~f2>Tcx}ٍs``]8M !^P !FIlLؙt#B L ,ɡ *,ad t gS>BM`17<8n<IL'ɜ X^e )1pQ /{-`ǘ ܤG  㝖Yk  !lBݧ `@F`4brQI(Z FBIg"Ʉndrpubj{Ipx#|F*>I T%''GX|B54ܔjrR9\9B1HX7?o"* W?y@(7Ēm!$d#$ =X sD?ƼbAKR浍.aY<NcX9TB3&'%RC_Op }OO HxiޣhF' J8Ӗ.H'PN7X/A}}°[%}0ͮyBMIk (멘]ݩG8BW6M7%+n6 `l @#Z iO`A Af𖁰%Ц+ݺM PE.O!a =8" ![ `.1__O؞T ^Wѻ3~B`j#H/)nVY(]ȠK918`|ħ);|ٗ6 n@\ B0% 2h6z{ŏt `1\y{ }ɺ`*Jg?NO' _ZQ !!`=܎䐘l ) Og=}p&pO!!DַH(hC,v>+C8@)8m:!h]Mkq(+ !FIlOy |V(^&J@ID*,?m'md% ahR>$=ݕQ 4!=cY5-pATRkX !ka(efTJpm *xBC]!k\}Gȵ:ie`i+Ͼ X3n7!FCZkL̔m =skc2 Љx6ĝ!{#2fd t58ِ +f0#,5@; 8W"5 >G.hpau= ز+ƖB]< {:>ƇW Yη2%rG p/%B#ݝf!͗P 脆`(5tW`P48*诱<Δ% ֭c]Q_p6yB#p?6}v1 ƲЌhBWpegOu} lE7 djEn-˸2ğ;0WA` >c>#qh'clwnO RBp g Q0|zwl?ؒIΥ @5P70mdF ? 3>T61 KMM#p1<o`*?Ԉ3l?dE-"Bw<;0y ۶áKScݟ;e Dtu3zZUԿvq ŔWJA )+% dB>ЁnZ敪i!#]@v$ RP+TOj# ֔)$ ЃIg!(C,0JJp Gزf(%%d BF$# 0 p&$" )G> !1*HoEb7􋛝OnktQT$) quEi7P,@*U&xh0  0 &eUrMA@`bQҒH$'x1@ @M3Ct1@1 ,R=B1e"(J,5ԓ9CdRӆ RT C@40 @ ( $X XES@`j i %o舰t$ @txRJ,1 Y> ,0,J,5= $ p!}EG b 0wO'! Q$ CB%rh9tB|`nЌQ_Ya K5 @r@""ɤTa?o~|v]eUE+航ȃC %IHij䯛UB~ (]L  MHVQK@jCri4bXb1$!qYe(B000g(jPF `F 6() F #I3 SD, @37I\R Ⱦ'F0 %$\ܓ@{#tw6)`BHB7Pԛ w8^\YiZ@V4V0nָ+=0!D7#_)JUuj *uz>#d CQ3둤%iؒ# 0:" WPk-Q"P o̒ѾPge\FϱHgY{r,4$;/j/<"19?DRJ~E#;/hsP_8+I@ XS <_+x<ꦭU' vUkB $$z py< ԐZ Zh)EB@N0a)?}L_8 Gp# q? 0xppBaBi\|}B*ޱcSP(e1 @ĠZ266@ A?t֮UڹW* :$L%1^@I"O)( R| -EA(J0ѠX@P %IHy'4 ^x}zF_B 0T AKB# ɠ8AfMHNP ۰=?T cҐ( \Uh*)UP xBERj+O#yjjr|^bE" |^! &@Iq/d@($R@@X!Z@jRrXb00`I;RJdzn,<R1c|_I+$nhn P : 2^T=bR4@K݀T]z(D2>Ү UUJXzRWPpc&M@Y"EԚT*T|4Pg!$ Ii% ) @#= A bF&+7pa{A\$IŦ)#R$t %qLJ:Z:pF0oI@}+N  Ј Ga45`8Od"a?kPduT(".(J5Ќ.Ӊ9FJeAT!!h{x cJ{r{))NcZ;$)4(ؤA^ 8B5~wwYr[ Dv*MBL5!(NrAdw Mp)i]Aws!k}%kJJAlŀbmkBRy9)rng(!Mxv7N&BOD6vkI Iw4ྞ'܋M,I|w d@) G$2OT}y. 0EpFWMm':"7b@@ q'i膆! ~^rut@\Db0kD4mm+}̡څ%[yB-W.bL7X J{W)iN|_1@kۤ dxCnLIhM/dH`@ .] | : lL=K۞.e)kb@L$ &m=$`[PB`n 6"G$ glFcRy `jHx]Q kiAblH&IwA@9r_6@Tɂg1,N gt>!Co;ӓO -<A|-PnP%ڒY@W ꦚ5)C8 !E=x<;''bj1 7rME; ݒм;؆!| AB}pw4/@Dmbgw<*S{&m<֐Agp  $POOw%ȮsXotԍ%=@Ƴ`2KlF#w# !Pή%;Y Gd֯uiiݬ0Xעwwe 5Z! EBٌB+ɡ!}1}z9k )JW_tkX%.{A47 CPww9G! 1 TSb'`kaYЄs{ @'wwԁc|-+#/׌1}l/4fɂ$BGr(O};̙)}ݶﻘ 1.XЋ>|Gq Ț>j p_UBKN{m !łH6lK`G[[]{[ʪȣ#Iw@ʀu]L 3FGn0gM dW"@) G7hDKD";W`ctS/kIJsր;$)hP /^zAWT/~!?B;#!'':=%I'1ijS.=#ݘB{%kZJAMhc@M!)݃!ohx;ԛOԗ@a='3 ![ @ !]MHP-ڦR N&̐im5P7N4oM$QbBm8Ϳ6:-BP>DJnlvdD-3pӾrxO]R)lu5ŕ'\Z؋QN̄aMM6tcfl q.!w (!@WtĭC\H`s43B#6i jP=]XYeiqQW_!~%Q$ /^}51DcnsN/ijEIU4 -6ڈ\&V Mwl u" 6-&hsu&_Tt* ui%Ql٤E )\lj6*F(ʕ,Xū`d$43"4m@OEUiveq΢4PM5U'I&[Gr7LtWzԈVK 7/pJ MMP,jm(n=",&/4TV"(MFXK\Z-lģfHBU"1DJ)2m7726=c4IyVçFb֭ښ0kW.[#N6IϥDC%jkR6ɧ_S-BIÉueHZD;Ġӌ]R%qO' 19#DQA54+(D6̡+ /0J\Pw:^hhK VlfٔGfzEؽ zI.AQq-ME\~hN%8`c333#&MQUuYvaZii^ruS1dU&(hJmX<+8KEST/m%1NG +l kU67F,8#Tn975IHOj%9)9SHe)?@.3ܤ⍨LiȤK][Nq j $Ԋ$e'S?g'd .&0 | XV5νaf + AR>(Z_R}-؞Av Z!Fl+ւ_A/;T;udg/廸NS004S` !P hv O3xH !E=|p8#x `&Xf $`?}&ݙK!xǸ΋mD8O3}$e(MU3=b ABpy4˷t$3U31fB cg9咜_%nnbX T 䠔Wv7 @!$}KS݈l%:B7+(Nc bwF*Sh !0-]v)ͱR`4kHȾkh= aN! e N;)bWsds1| )JV"^@GuֱK= B뺔7nkꢞb#+kِ J0N]2=blI~i0*u 1}{r\BEcY}Lv̶Aa Ot!4m`8@)֖6n 0nixO0W7@"#PNiXB7J ) hı$=rQ@K#RPp$4! F#ԌA`@4\"4t.P0zQmB&Ckh D6A*IF2HۑCjUA># 2*L &4ɀ a%BFnQEސ'I),jB@@ա$pF$ %=$,4#lRS! U$H kh z$ ߂B 8d0TJK V$O4LgC iBlmHBx4 l /CR8?^1- J0EdB߳ TBb*ɓP:AOD#.zF0 2"I*E\2*ޤԌ6<]n_p*zAK@KߐH%! J}`e Se`L 4Q07vX0LOIAnbHY)Aeӿ0QLjP%Pp -H Ra1;TSP"$pQ @T7G@ri`a OHRZ%00 pwF`7ܔE%OnGQBR0}U"EȹEUCSu\ X1YL1%#%8bJ@#.M,]рސ4jPbBI9) @2PX` IL&`C@PB= x591@(@‰?F6,1JS{   9,?t(XY$<9-!Δ JɡpDA,1ΐ>@rQ >sHE!]  `.hwD$$ _TM6+v#nEAԚ\ M2$UT$@\EN *LHX/@H t}p+b}n8 ӷ(b O%#Nz%aXH@O |M%b %#S1D%ҐI"ƍ$4 I' hDRCJx4bUvHRM] "ߓ&Ezd"HMP*EEO&MB T5R*/ɪ!<U5(-! @!An J#J@Tn  "fEXH#_~>w"ahiRPjA`ߒ5a$ xdvO&#P BI( 04(RCIJxSDi Sɾn΄$" u"[@TT|Wrj5@"LU>tȪD"\cRNDy K2u1|wt Y!?nZ%怿%(oр J膄ˀBbB $rJR0&-ӱߕ2dbғ~T`'0߽4T!D< W"EZY<@ )_wT@Vr  r$Tv& UWr$? UZj + $TɰS| 6`hn5# ѣ@`zHԦ% +F4Bѣpz4)"LAe%Fw(L -0!! ET}-W#- {t8 6 Db @N+XF'#nAKBz A]2/"[T Bg' bpID xBL "$REWSQ*U\eZXbF- ^Gxox@:I4HD(L!MA(BPrƀJ@Д iZC!]3G `.!_ 1&QI 8/"Ƅ%7 _p?DJBO@2Fxf)#@B.'{h{~ YGlL0DxP D҃F6ބXSgB&깴 L ?PȨw"MA LTU@iru|@ &?d .3PiI%r $p<рy{.@DC0 #@OPx$/XP4hĤ$a$ l?9OTh4ބgJ[~FbH1 @ђ3&~~X?R Y:`b;ބU֚qP^o`Lٶzm0qUE"H(]bhMLA/KH,xӐJ@@:F@(-@ 8AYc1U 捩`<|; ;<_0>u8 * L|> hr+>4֎PT?91;w s3{ vy<iB!0%?<}Yu 'wuO@{݈uuDRLtB 4c{ hnF3ĢԄ3=nr㻹~*={w<7Y.ȯwuuwLHdrfH0A:h 8rg,M4|g%H@:{7U>&@sh ^֜v4(w`otޥp).ןw"wwjw~we98U"c  Xn$%*-'!(XHܔO} r]َT(ww}ws;~]W: ""ZnP? H G6<V,kr[;ˆn^ & =Q0 CBpz182Ĕ!2n`|-%U!*wwb#" "ap{O%А:z.Eǘp]~C"hJƈf1x/e[3s!!/u^:Ǹ Bϗw BgE7BG lp\W0LI  02 1MB1~37@5]df8k.L !K0q }p)}0Aui|MdlyMiܕe4ēf &;?]Үu9璟TZ^B†gDtEI2rS-ag}]ǻDBן)Q}Æ2K@@0cϻ75ٯiSZvn^!]F{ `.!_Y!%ٙ}"Ws]n}{ҫ;w};H65kEIwI1B$fx׿Гb=JMN?/ĖPgrv{X3- x pL*s"v\KkY.!R1C=ok.S3/PU0WCƻ@9 j(Vވh‚J⢀x`4И LAPXTT`FޒvZÃ;Xw.93&ǂ4+$ͻ OݓU{|>IB)! @!ҕ 60i+eU u V:wwh* ** !֝""VEP'v0 [<(q6\X u Il ww'ݒAҨ)!+6(8lC" a=%,8:Oz׸/m!,ZQ!(Dj=z![ h{<8|$yp ?kjvDs.ԺǸ >jȕǛA߭׹8Fsp ۵J[Qtx ЏD$2EkWt!of̜>ew֟ !D%u״Bf?+04~G]v1 Be}ȧ{> )D&5)cݘ9(G>Z%wLI,/"͏fSNu73t}ϝЄBݗg@e'!v_s2K4=0?ސǟv\| "%~;uw]m`wc͈R&Lf}'bjw/@C?ױq  #Tņ0_B7J;m#Kz0P*^Р8 JC-"\wIH%auo0`iD4(pzP 0 ǑlpLGc=ORy bBA Cݺ`a;;Y YK: /Wۥ`}ÞbL  ,Z_Gf8ր\``|4&߷Osn$?UI@tI&PZДww^XD0 j `!!}Eͺљ9]i`@ Hf@ 6Ax5~B` vj!R޴P !]Y !]l `.WvE P_ط YO9 @( x&Y(b^ K:jw#MG]3z \ᜲj^?f9. @3  @;(Ā1{q{Tr߾S>u燿4y\]oxx<"<;+ִ)yC7_oRݯ \B <CI-&rӓR]lBTt \C 7LC5 PL@!&`(^%v&$k98:Pvq`&(@1IuEҁ?0f=Atrng+e;Lc O;@jvO Csx2HO,c~9HggyL;' 5dG^KA{ҏ6 YΜy&䧔^XcwRRq;hyW^ *1=?u"/40$YiN{"f+qdQE+r8uU&w)#uE{fIYL{=]ְ!)JG)MQҐa<"x]) {%!D\ibEDv3,;HO:wyJmi2g#7ӝ.{@ Ld2N͓@B@& 0%b.jd O GI]= Y` 3 ‹(rG_z HX␎{mmzH`IW76.4 K%j3Y>伹5Ϻ-wyqd?0 _EOCͣ]8n{GhH>Gx;q!f>7#p[`4?܋ku7OGoȲn5|\nZ?ߍ''3 K&{y uY+t?t@*p`@;I0%!'! bbMݒVN|ǧH0.p4Y)$Koe7xw0ΤmғTe ?ϼ@GD K;F >N(у~xɀC kc`C/?}/@ O|/{ ߝdq 0@(+my@1E%бj.Zqן`J?揽< f5zݽC.QnBި4jX40 [*̎O>Lh-,sb'2Es>O Փͫxd |. ?p7 @YL[G"%yƓ 4YwG=O͓<-s4wGx#8~/ks?uz8=7~& R}?6 ?ar9xA6F>p#!qkG.!] `. p58r,7.O#8 sn?oGqb}#atxtpQ$7w6~"[`D ~HnWk Nbt ?|-s} A8!|}<4[K_Y_/ ^Vߎ!tf_Z{0N@v tb?PWcJw~jQ4mi|Yϯ(@<c8 ӓΐ#ߤpM=?%/sđh`` &t)<&ـ@ v+|xh`PNLH&T33ҜK+(I A4B3vC>k|NJ~bnQ ϾN#nLH7~p :!Pa rx~p@ 2 nx~}0/8H j@G|O &{1<ڠ7v|1nho\v'yXdry<\ŇyԍL{\b5bؾwgx>p͋8Mt_4!q])4?r*ŇȢi!p#N;p~>Z韁i>>y黋 YߣX zP[~x;7pK9:A$?D7cğ; ξiް@G&Hx!bO{d d0M-P@5*bhJ_H Jh f`=9 w~Ŀf^ B J0 w Br]t%BY;!ev&o$~ 0,P@Xx45(k^0@ @; 0@'&P(Y bC &dR5 ٟ^ny @RJ^M00H!:Z#lXiACS#%ѲϺ@ 2bM4 JV`$j9~Ad{fuq@@RC&-Mƥ8w/mDz@0 aIlC 9Y;59lC@) 9 #K,# G-'!o~:`P C?󜵷WRBFsfb# ͹=_RLJvu懪 s_iJK9ϴaǁِ_;~: o4 pp4}];G?psH}}N;0㬂kџ Cq`Gz; p7?nϣ\ s'ns9E-|?<]8\okw "n,=tG"H\> `2+w~@<K,O\f041+š(֠h@t@(J)[膔?[@ 2̚XgM9{b~K%h=G}@.Vg߉?p !ԢhoK#~p\`@/, !]G `.KN,ơ}(Gg\j\( 4 WIΕsX$2a~L i:[L &}bQO LaXynu:+n?a@Wqh vKa>!;j"|2\yYŀ簳kl$.9?=Cz{u?satIv;w|?F8 bbb@;nen9%'dR .恰͋/Lbyd} G5Fi5#d5lXG'X^{#EA_};sgB=q;wps#?s40s5cϦ~O4nfw繧5 ~_`ݎx_CYu̟GXxFqxbOYր;d2bI!JNd~)?'"?q:3Oa mŽ`2&~.wE2 %zg[r qgn. ɄQh;;cٿv|< 1%wZ] H&?A[e b_wޔґ]8Iٲ\o㧏#d0mO1|~'"'OE>ד͵r8\7p#x `7J;ӋsI 23d.oc'Oc^乤xnyldlXX /7eD1nid ΂"\'cw"4 ?u]?5ߏ}6?n?wr|Nw#Ã{1:x֝sNBJ0i4~Ax;+yр`Y'ur=?u| `0 (@B Hri 5:{mҔ?pP Ra/FD L0 G 477|;x@!~L9<< t`I]_|P[#,5Ͽ5t҄y?p#G3 X|ećQ?~%,wXۨ|=͟|)[,KoԠ1@1Bumb҇ZKNA%@XbO IKߧd?uA @18 fo ;, 1 t^[M-=Fmn|Mx1&ƖQ[-;w |܄ 6 b(34LJw&~d,fNUx3@ I@w@ ( *F1=ɿr-)4m f%#(9e$|1'' ~(` p07 IAHA҃C?e}  MvXGA}bI45) 5w6?>iCy6%>nmF]#M OI>=O4X? Z sCi<߭dgy s\.-tNp>zlp\#k|<]p@. 1 U  +OX7/[M`xȄ4@T1r[}??Q^40hPX|@P !yҀAE$Qx9߿]!`5P1Fa}󤒑5Ę44;ѿg+'Qe ~% ;!I%%V+npB&:C×q6 `M(HBCC#Ɯ%-7=Hۓ@ tI@C #wXQ,;&o3W^r@2-0pBI%nm·uLLrXC]ClC-X oq&0j `v$RRaPf(RgY@00!'J Mu亿l,υrɀTVFCőX4T?!i;',h`?t4rBܵ1f_Xy=c$Dsh@LXċd} g @ bop*3-$>V)#~} 1&Her-)l#?w,0 dWo  ۲@Ivvb@ lR_Y×K"x @@v0&ؚSwA3sR% AԀ7'l?` LbOWLlG8!ՍJy؂*Y 3󶺀1i5=D0$oR !;܆4 wۉ(AbC=^ w{d jْI*Ox` @4^1 ^5%wlCi }hxvb e8W85oya?Wxwux,zjN,/>bg#`v;҂O8!W|"@ =, dY4K)%!rEu D"Iu۹8~ P(ۤ^,bIvzߦ@1~Amwd|nߍƭf. [gqal00fbaͿ:|b`'/?v~af[$7v9~,1t'oq0Яmn}GI1cC7~(@j:{@LKCN. H]Qx$? ; 0  X59 c>o`dWbgX` Y 23gqV)쩖#Ȇ0b`RԤ7>pA^mR $4G +jy@!';pX7q|^qzCrrx"$B -nKZ@*`\@bQIErImad%{wwSX$ !] `..$a:uV{_Pͭү940: F-V^мߋ]b{n?87fp;90Nñ:倅(+C~^t#^\Lqݱ,׸?q7$]P ,03;_t;l/v!:(CN#ZXTbF~> pOX5Ci;;6 ^[j=z-t{kLCsmXr+.:< O}PS|y=B)\ }}>x߀χsȼ]0 7G` q /-\OF?᛻$5|v^'ĆQBO+6wr@A]:X ڀ| #e1#|Pf8+0 1Jsm8Ā]Ґ*.%x !Znq~.kϐ0g ]{?0 yMokH|@ ,|)oyx_Nj'04sȫ{#O4y>R3Ov9+n|~x_$@ߒHI  PAw42N%Ҁas)ƬYFY/n<|~D\ano;=oOjON=>r8|A 6?Ԃ~p/gcp",>r z^-%nx c8оmZ ?PRv Pp(C!&^gn'T\^M!@lBMҟ0@ b2Y΂ h6 @`D0bkB ``0,  h?)07' #3s,$X,0 %V  (уJ_;`nH -'>VT @5I!H,!ik؍18D{?`  ); BjK˷<$}xĸO.C&bi_p:4$_G?b8(7'['y^+BvR9cBn%vDȱdy8n!] @ !_ qʉ츜kctՇ(SO?Wm<`d#3C#$m#+A4VMPYe]iaT GؤV6mrr7eb4qSRMq ޕV"N0f+A0n8m9"' .edi)IXQQȚ0;7r9!pSA%k&8cPmъG m>Q jij*E.V=SNs}HbN>uUPo@V5T6Cx)Uk"Y)R9J9#Rm2A5"2&hډu3*ʶ$n+f!D.@bT3324i"*\frR؄rR܉2DlnG#V܎-4Oc攲MlW`)ReN':=sXjA;@?r$')XܢM*j"('q6T!U+2EZFkmmʏiffVH-̥ē$ MjY#odqjM8녝 ZT B-E^e6Y S7u΃2F6N7n`d33314)""PQA35]EQYXaaiT@x Giu U)QHvLR$'FڢaIaHY,PK6y%k$mWMʪaXCL6卥-qF{F*cn$V4*}4HnN<_*t{⪙JE)ICiE嬺T"q+涬^iM4lK.=".)+8n['#~[7*+'#6SFv_H5I"qtC euK2\vM6}-Kbc#33#4md8QMeUYieZ8yZĴ^*{dxg=hnGF+V,[\Ss%#i˖9qY 7"8&tH <J(i(N4&&Zv`i޺W5A옫o&i֩I<ӚEi̤6S6ۍ7B⍕p6s:֒C&9bJ%M 㓧36faj$[3RI"55pd4aLԚi,A誎#GM&5d%FD"0`c$3C#FM몚D4YD]Xi5WXCaρELVaql}4F..ȥvi7c L_VDYA*J U^TOFRj2UMD2cuF.OQԞiȍ8.8Bp2yd4+^t=}Y),"wx@ ?Om;>`o@P @+CH?|ۣf$9 f@p@;J`a  .t0p` /&`I$0MN_F|@ <  욜!d T1>!vZr77#䤮|^l7[`g:@& @( 9u0X4{( ɥ7fY扺 vR@` p` @vP; 0@P0<rKJC(`ONmb(` 1O 4 T 1I[r t=>w@NF%%vn7~c{  ܠؒ-ޣ|Lcך,~X`T% 0R04S~zw`ba0~Lob @u|dўgO<=nM I"A׺C&@ bX񁎝0}3,129] x v~`>ǩ5ss]pOi4RRxaW5d_BR59 3Ⱶ$v̲&;|a4*R /?>ϋ>F65(3ml !'~>iC B EF x 6ޖ -ͨ K!(O6X=E,9apo>Uш|;H=_|U\M?(1-xXWM/UEJOT ܠnHi]AbRy[΀i>y龓'C?O=O ԏOzا 'c'n#1 gϪ[!▞OY?hY<@?=d7mCy4!2RŔ%ehAejP䡹(? [fwaN )frHE `R1eK/ ɀ;;)4А' C.bUvj>JJI1uб'-4nLX9[%;JlwPi` 1 :tb%߰` H yo?mc}P,$M (AImLvǼ &r$|0@v %Ċ a0RjPB4J罐?1jnkuXC@4 I4hi X'cN7^EVsW߯I0FZSucVVY=Gk 1<yDa΋a0zk +K,3J?Q,o9q,bJaE`|ZPO6N1]Q_=-5J`c$_oAoJ ,Ќ3;x$+ttY]|B2R%菮E /; w;+Cxv-\T_2b=F$JЖP|;;3)!`lit2Q +`|dSR#ݝP2D:BR=A$kMꄧf\wJAn H@D4DB@`xC$HD+{s!BKP5) >;`wp Z/P,M`S &XZ\vc﹩O4O{LnC} Os`B] ގYxww Grn A"Ss4%52.@4 @|65ܚ%Ew #!,Osϻ|{B~5TK$f+Dx""8>h&j ;Oxɒi8wngz!-o;{2)oz)ûM==6!e{_+A`www{!752!5܈֎u'lԄK> xWk;Gy5P>8D,`b% D1$+a}ܥal6[P^ Jw~w+P_/; P(-4 |'~v0"$`-.V?<6~E6P+WĶp 00Q!i<1#7y2K w0wdb+~(2 C@k>hA4wHw`U T8vD p X;lM=-/ɺ :B{% CaPF,ZtHD+ltCjY]膌n̪㹯BzC1Wx Añ C㤷I]=Pƍ@>pcS1jP[GvkQlCFe=N  uc q e)@ 7?!O##rYO+̌wJsd  )_ PAY>8'R|֝Nj@ (i$$`  ]{hˣ=E;PdJ܃̓Q>*91C#6k_PdB؊}u"T3)7׮ª,_n[[>菮B _wwUUo9؈?X_bMDoaq@J7sTa\h Ov:҆:#؃;(@[r4}i4B^6}8<ABKP:S@; r381Z0ww{f(+qwpcsW^B3 ܻp2{(܃; v(; ww G`6Ϯ &Co722D?z!2}2nwsOf]J^_1^H'AA8 ww[{,vv=̭֮ȝYDVvV;OU+{#߂?!_{ `.1amaWLOOg|w^W >=HM脉LdDGqW7TR}숉v(y"{{`H(*D= 5? .,;#{ Q݊ZSZLH/_Py<Ӌ`bx~N "8'5a>_n_\cps"!^ Xwo5CKBq 8qk I%*\>b0 %K:ļ(+$oN3nLCznW/'̌#79\Zwկ] `, /û|jT Y+%R?On&e9Ds;_]o7Y"7wFj{*'?` "rc ɆkD"P7 z3gu'fMWw7Nk@ ^=ܫzήwZw/-;wŖĄotEHX)$ݙ=os]hw|nffpDNyn$V7;BF.Rx=5dv%Ì3kª'd/T01;9;9'h?4'@ U4>m~ P#VP0`(0wmcQ g# 1OvaG^BrRu~ao/%%#ow^V`]Lc+ Rc?08 lI _nHtZ m9aj#wѲ:wBvmO%== J x@xd >?Q#NBQK/!0 CbJxY, W 9Ѳx5$Gj&naL:A'ܒ!5?!t,VF4o v1Íc{:{jp  , (Y`K?}5}oGvȀ:灧@m+;rv= 䈉u-;4#F6q{}Q {~{%(D>_씁 wa9 ÿ'Xۈ<`vXƎ@-lL[i!'I9bL-P8 $H5w>>\vrnMP"MGwPdIUEɫP$&l Gd/ĶAeI'f5@lYKQ(PiD0 `^&_Pك)l PVmBU,TdG&O @*IS&EzdɓTrdȓR'&MUT1jMHMI0||bw#p?O_b4.Pg, G$oֱABBd1B) pGHH0PP-%!%>b)L `?U.H8yMH? .MA&ܚPL2d܈ ΑS5EHR~L]F&H:T$e&Dm1.RBxX+ ̘@b!_ `.C % Aa ƌ$,"I?ᠣŀh*B!M!"jK4QN B9d)GBb:4hBvY-)PބŤ^_(i)!r PNDKB~Ca40^}A %B!KUM#w T LRjUCzQ\9` LjwU&EUߓ$sCD w")&MLDBpj@@ɅiG|3X1"LQ n$,05ӉIFӰ}zSTWU27R@{QERj02jMA T'7 $ɨuu20 I<0` Jb҄4B dT e1x`'( @ 7t Y $ B a# J@JR AYE'W(` \W>& ,Ii"j ~+ F`$ALgL5<94t&6@TO"/]S֪L'u?ɠRnD +&MB+*dhjDi5!8QdԂ@%j%xYDULVb@ba@! 09 ;H-# A tV?O?@ aeJ F }v $ 0 D@'rI)@G F- $``4'B a4;C\tAL8$j!A&O.H1]L@<]I#xG&H+$$qw R>>rjMF2jKUr$EP*IE&p @bdLA5i!B &KHzM`Q  @@4-$!@<3JVFbi18(/~XJJHHϐ%'T"@4Oxdzxp>èGE`4$K$rY!|snnNT&D &87J(@cxj z:p @}X|?!3P$pU\ _{g` @oA@^ xTz' 9x5!_, @ !_]gcTҨf*YWia8WQ wd6AuîI x,! H\+%s+y$xr(_=#IRFTݿX2ڦ%Vja|veWU3BW8זohUMڶ8˯hĬ-}TKMI HMU rpUs[x}Z[[10`c333#6i"PE5TYa[eqmg "5 6L++>$ j$# (|M*&}BmG `'K5=K&(*mM4mgQC; fTuqTqn1G ;V E3ڮ,F,nuәPJR+Us;fΧ2%PprdsߨQ%vntXXєfJ@zQ-jU8Y"YVM5]gqܪO47]*l5G8wQ KbT%C446TMjiDIdRUEieq\r_u&U(zƚV $1 ʢW:h\eԡ7xۊ2mh ) 6I"6хAu%9n-Uuٗ:u[F;-UF` VUnM,y6f}Er 8uFJDn*1Rޛifct*.g!_@ `.!at5A@W@hD(_lq! wC>#53w½y0t8פkϏH }W")}U)c&/;:q v,rUOd8mG?׬zyx|ٿ D}$ld"_8BߺwDFF߻l]7/G~4f; !/;<=p<{0}NC5KbsgM E`z_H ñq2= vF"սCt,mmefqOP AJCn㢔`B ]ȄteS!T@mv;~WmhiކZ@ +'Wn#34t9AL!z'S i#!4,MR a0t6GE䄁6zEb"qNv؍F#㞚U=pl+.{(Y-=x$;<x|%OHNHl#׶#:Z̞!15He=AhvOcuP^ДV̬B@wv|1kl74zoZFgg% Wki*R\$Ͱh5|?Xq8{{G/bl!-|-%ݐ 0< "Y)f72 KI`8 ʈNYǘd @4nJ; L7g8N_C0%C@5 =Gb|1GgͥHGQC\?'%/荥ۡ.!!s+PUaZӞk@ hFdNܰ9'5t7O%IWpH~s% (~opQbK_=` ~!w{r0 Ax;e}gV9CzFɳ7 ")Y曒/;KlcY׮ E]TBYF`Wwwj#}"!i^Ro]. (mI_Uem,ǻ5}'s wqhOëBFrYYFq3w½y0t8פkϏH }W"c e̠ܟwٟB/XܻcJ{%9(mG?׬zy~sWH|IE?}qu?Ĉ?ewgoo_iWR|O-(4 nK3ǟ0'!e cN ^w?2إ >{gˆ^Ւif!۳7ux CQ)s!312"tbSb )3vvS/eڷ6tTf'Pv#tW:Ξ~;ݑ3s tda]BNzJ8w L7~_B8j$~|12O# h`oW}ёgwc!_SG `.1cQamx huwU9[;OA${ jFTn)<=LY5!i^i}@ v!Lw;ܷwUU;;}KWfjWwJoJE{5 +ҫ9إTQc8K=殭!B*c}LGLL&?]@ud aH,3JJ@CrJO5uh9Jr1I@,-#Zx$`_C  Ry_qWsVE|Im/4~Sl]E(<'@ k xWQ[aa{Bl |c;һq/E W;%-3"#.Eͺr0IXjEP$HR RPTEAO@ȸHA <@,@1;аi!(Y!Rɜj )X $% LQ%(􀌰t$D0r8@! +$G%BS|II)Bj ɩ Z0 ak#]3#g؟:ؐ_YU67T7U@Bbu\Q]T5UEj"Ol?CX‹%4j RK- HJ +"y5F>> ɀ LbHI3WO$Ò@ x.tZSX  JP4j@SVzFE!pbRQ~! T"a0HbviI]vqW"*<]A+UMVe@El' JK,), ? 0I\vK)ԥ),%)B2y%j@CIc?lp P@/̠h($|JI䔌B` vY M&'%Y|HxF$!@vB@i !$W ŀԄ :@RĀ1<+E Y+à<5G?!}TLF2+cTmu]}UUhU\Gյ"!p -dϝG%$#6h'P1 COT"5K# zOT!(W^Ȋ jʢ,@(Sx*EdTULEI`U2"ڃPIJ_:,\3Ph$FN%( H XHԃM-‹@)BF @J R5=8JH PKH_M%MA0P+4hBPBJ8hJQDBx \SA B b1 †j 깤j=rBEUsT;$QUQpha4gQ'bX E&P.3&+JF|RI;bN@'I 44h zI@&J:RƁ"I' HOt@I_CIH`|$g14%%% |D뛕w*1UV@ BP=&]LhG  J*ƤDu{B4 TC&'' !_f{ `.!a̹) h EP@`RTrD04 !=m%X$ǀP~ HrjFVp>}=Ut"]TծuIB"Ȁ qr$T"sMZ^ I #&P,Ds@ha@U &$4t $~`&INpN$@GD&6w@Jpܺ"Y~U28H}+qXq͊&W Focd2$[V"K)%p>Đ`B_ܜ%d" Air䒙 5`,OZhxj  $'#]4VTp { UV*4 fM(`K(ri䯐#>NtX,ұ|]R>I\  ^`p ?+MP j:bP@@(`O]H"26V,5% =H ~WKx y%#'qd~}eHLFRHp22^A<#P'`N8ծiS t[>O ,`?q/ n&@lKK>9&p @*joOe D@"hRX,]MUɨD 誜\U@܀@tp$I`aBz@r' /O *M &hAeQX@%) <0hxI@ F3H DZ$ `P& ܢ"(1Hz ?В^Wc) yd0p"?b40]ʧPW$"o-YSA&Lȫ U]zT7 Q<K@46~hB^8P-@ Bڠ՜p3k@U GF)|v 9P}O䘋p+3gٺ8^'EdAp5i@g{_>UĈPWwu|٭[ =]B!Kt>*+쥣g{@[wx59 :rhgԮDF/|3q{p|%yS O_f{cZ>"[Sa,+(AjZM@xݕ-j%݃0=M㽾FJp`Y!K;LFOwKO)ԗLB s ha91=&" pK`k46}\PReypzy`rB#}P!4SoA 7 CXP/5< |S34}[షLD6C6v78eڼFHnS a 2'A'|B#X"Wځgdw*Zww2B ^%y)0]%俸 R5*aakLfZb26"Bm 8NA7m<fv2b7$_h!_y `.!aG +J8F:zyحO;hX7@O59IHF25=oʕ(BZ[>""e{?IN f=Uv6d ZOv4)ɹVVSipwM 7K{ e{6$ ^w#$0xp[(*KطjX[RRN( 1CkAIDc=dWcng f 3${ '&"Aϑ']>n)'[ܗc ?膟^Kݑ ?C7D6bTkN<BV1{YЀ ~mҧg[}D+N/܉~_0;!ʏ}=ʉmZ` VwĎwͺR?+uߴT>wTk󝜨 W WR;|(;IheZpxVwvVb^O5!)vM:|(2;ޘѯ{Y^ܦ)g{ 47u BwwWÛzSi.AX} N ƒ3@[wx59$H:rúWz@/Di`=OShNh( >)! ڥubhOtvyi.TϹ 0,A\)ͅKTQE/E;~v& `?۰KVov2-{,0-).K0wwB+an[@QMaD5b^wU؛p8 NPHr[ 1 ww)uOf :J:W-rA0!. wwXA=8NqRD7UҬz"|8:!,Ywtwi m.Q>$E#NC>{kr=5sb2F:X +OAp,YXֲNJkLSxǽ<K,-]}/w!qSxY8mm[l׶ξjb-__j{p]up!HEdz<`]=ܻ<kS_p7<;^=}. m XtWwwpb{D|sPix#<ow[٨P oY^e_  }؇wSPBNQpU5B@Gu={tB9!m| P9/؅偠#/) Cosy !JY+qû#t]d`C>oj6V3wv!DNG]BxyZ H$`Ѥ 9@ PBbLH_O AELvU6eE@ @U0O !_ @ !_G(Kp3BKխ[APn%5j.Lgmi -ƙ$dIIwwqY*f,cȷm+`d$D33DMIT]vXYeqǜxJ6kiW`Kt-ʤnF@-3%tF0MWGRe*S/Bb lWDY$x\*HȓTk6'&t/FL`R>-Q6RX֢fZK?R˴d9ěItFŖnr>K+FBR%ĜVFuGlD ي'{j&NY ='clX( mJ#Q*ۑTWHkU$ٍ' m@M`S$3324iOIaeem_~XiU-™VTN"h' s^o+VMK؄U#؊nMl-f_j7 w,4QN7$gCiFM3 ʠa-]P0MKM̻+%Y c%iIĪ坨QYi%M71%eCJO:0"ٯvZ dY vU]8XLcMҦNNЦR6Zj7f+#AC66D]p}p؄m+>)Lլ Jcюi.Jb۲"qcXDiRH`U$$D"Mn@U\iqeqy1H"hp $-խjNc(Ǯ*v2Kr4wsEoDf.F ے4K{\ReuC lp$smb4 KQ vO2ܫ-^HrV10pCIV |Ą pں ޢ4MFy\Z=bLNm$R%RfЙ1XQ#džRULPz"Ӡf;Pv6}H HxjMw;hW<6pSM(,~Dk8GdbU$4##4-"@aEi]umi֜mfNTR8%N9C|!uMZY,ZMQJO᭶jd̖&B|/{LEbU)B[h[fRiEøܝi,e4(5Nt((l:o^tӉj54Mrw],5 hjE1=I I4Hwhhv4t 7Tx[M \p3QYM[zEDJjGfzqt2AC]@ ]`k*kкRJԕo 0`T$$'I$@0ӉpBd8?`B &a#CpN `ŔIFT `PI%W儶oؖrHyW`F_vi ZBD7Z $ɺdȯ& @WQܚ"EUAIPd\][f4`Hl4`e@tB,  0$eHbZC &1#J#/% <,i^`I4% &pK Gn }k.B&PFnjnITծNOBRj 7" ̹SV&SY&MLMEEsLȑ"Mb@2C,%/A % 5#K(h8$Ap`- H# , @D8</- 8X01c8#%hN6B @|7}ijM]IQ`_"ꋀ LP R$]R+4ԑ@QQD1w&MP "p*;~߁ n& PEV(Q UFiQNL&Mɯ` LR$*2n 0,Zu2P*T)0@+pdJ4pI\?JB`ޢ P(`LfW" 3$1' dTBKHɈ&YdİG`J%)I[jCI !\I5% ZP E c?3 LerXi4RPi}‚@J`!HҒFP5$$Z8I(J0 @z+&{LE_Odl'vhE=j~Q uw\' )VO+=hMp7N$_0uݜ!a;@0 !%Y`9`$f&OiGHd]!~ "4Eb|䍊h"}h>_86Oč=ɟ.@, !C}_0b/a( }%]o v0*& BHҶJP,\CJPB qIL` @-h]u MG{8pf'p>poI[KaD52$H.5>&),ܶ^7Esh<!_G `.!c$c^o(*Hb-,2~>/8+IEv{3q8kϡ'3Yp0"a<<2"6mUMZ t[)"a@8 )R5Om JP_(4m0ahAG>e#"!7A$`5T Fz4Sjxr_BZ# $1P"$ E &D ?"K "@*IQUT*'AS8Z<\ "MYIɵ Y!8XdPhbPbZ2F`I @{HuҒ /t~Q% +( h)@=&B"=*#QY$ ^:4 ?4"a G"@@0U@` 0A~IH(qOT 0 $I`+& WS@^?E@\\I]@ ^ 5  PM [L /',@0`&`$Ą ĒBb%0 n@Ѱ0PFHH:#PM%t r>AE`‰HFm0"aoP/>JC9#`ڄ^'<ٺ hʚ{"$A:tӹ] P=_BF53-'K1X۷xO30ϣ8P q< |[(ΌPGgR:=LgV4P \p{"wwc5eӭ(B}Q J/`=/ 7N]B FN5,E#k\xU Q`aO` ȾO iwd73g!N'9)o=qC{ÙS4 g|1nG6X <8pƦ($}+٪y`7wws \%t}w5(XX0@fierkRO{~eT;`>0– ˻_]實qne A7& [:&u; HHk}<4~ވkLv1[ʷߔǻn>v/8 9 ow|ܟwO'#=ɢ$͒tq|z7@DkD }D*w-Sz{KĪgO/Q!݃yVW(/ڢ  ']MWxweWQKwl.ܥOS$#>&̙w}Y8p{ vI}JZxݤPw }c1.Ucow U=[i}F7mF2k Bww0} HZ9;{N>R$#*0BJD:fF4!Jyv_p"Ϗw ]&Zwl;񬜧d~\q!Z\9@or[r0/"Wz}7(jp' ǻTAAw^PFB7}}½H2kdv=X+a@"_pRP9 wnnO\tuOrՐF E&WXgwjwORUU=O-tfR}wwqKg S"']lӥ#{/],pSH lTMa`{ "ޱ)|{g Zz)N:078HbN] 08`AAW)᛿bK|i:@ݕz`'}ݟD5fҜOs_ tb>:}ыwz*;uPV/ΛQ޹ ݨұoJE; d;&w_>n{i+z+|2"#;SwO{6w['"Wwg\t{ww: 8-jv 3ռ+onN#̌KsKTR-nEIvB0$A)gBV@y^" )O@H@=@RP# /P PPY0c@h[&9D"}҄ܔ,+'60 (17|pʲn@UU]UTNu%[}T!DSIAK\j %d?Ԡ LBB@RH҉0h lLX$+zJ>3,h o eH Q,HhH @O& % )(@ jpH@HB@z!_٭ `.Z9/#B ,0ͲmXb@bh0o~-ƣ {554~=M6]FUUγBOQI(^HUEv>CqD&Ls777)%HJ d;@\aؕ+SI0"Ud9U0ʀ "*\P+YP-\UBUPp="TTBX &6!CFo`_(@4ǂe(Z}/&TM vN+tp$nHa5J/;zgE"&ĢNXJN}$?JYXSOH7JTa'"@*Vp TW P ,_\¨`YQ\UJ"**]L*D P3TT\L(4C&INv(  @`LJ9 &.448? PP &AIL!$5<0 (.1$ܐKI`X%`>.I &^P JKY A1, !HJPFZG%iz"3x(jv/Q RA8?CΪg)#\ QU4.**.!:Ԅ !BnK@(غ?W HaP1})=JS ؔ4 # _!#Ap'{.3EE8"EW" IX\ 4 82.j`0QW\ @xd1;Qp 'W_7_4̌ @QtBDgxHYi4$a|# ÉvXa  N,HsQ.X~!0ҔK7:E6e8['y@TA<r0  J (%xlP1(L9!W%dL9NA$$nfsꚵԽUAnD "Lb(^2`J`f _FM_)N{<2So1/їއz}@s@sZ,N7xip7A^#dO P >ğ>e){/=fҒB3 yEaI*|4DVc }9դ1$oⲴ ?m؃B$'$-Hf/z! 0 0%p]@"ӆsQȃi`}I 3'T]L vS 鏰'?>&/|r'@e<!&t&!ҔytM(7 =aCIa c00! X@T,%b? D; K%Dfhi0šB@T#I)p1f7!5,`Q b:RP*(5I8 $_jC )?GUY{H^ @4N2x Pj@)bJJ|D0*0 K(O5%14 `@GP]p pjs>,@ZEz?G}& CA_v͢`i}[េT%1cthkI'jx$uU z}VCM 夑`} O}d@jfOhXD *~b ~P Bh6OZR`\aLr/E<2`@4 N>)_D4,d=s$ I0PғFsᩰ0 4d, 8ԁ' +Sg'Ep(QwSLCsݠ'Iod )!_ `.!c|SFsu qO@j_ă~Ofdr>&H_ C8 vgZGSuSuvB`n+aq ߀!$@t$^Ťmp#B(5f 0Wx IP :RJ%! `(u%_y+C@ &#&@ CK `JH=r?.xY4Y0:nrRTRNu_AxV}! _JI#0BA$ @j>hބui] @XBI0~.? aUqF| C3gc 1ABM $x0!pr{Iݝg00&.OG?}6X b1<F.n<9=%<DM0 >&mvo[6ã 摞(Rzr8YOPC&dƧ)>`?1{z"ic3Y?>{o|A,a;l7*1=_F!QsOr0Ob+CB6+"e4 opyOaS;ǯ)J'vFgzD;'%r8D>Csx$6G5!t2sO -3 7c@ oi 1 nV;DN1L*J^]# ݪq p wwSɮHMܢo_X( ss*l_ūz< `:{\^.FpCu!V=DDi0 |w4˻ZqJI7G[# ɀ!UjW+9z{Ai7z۽3W401XH;`膗1=%>-񘲆> ކ!2X S]mi}QSvq²hq1) +wxN]=^B}X]]3؆bYE~LۓPZCC7^G~oH+,j&Q <p >RO|) CMwm} x'Hm+?Ԡs S`w ~0uP;N5c#w,̖J܈{ߜ}e+T#!Ǻl+;(7µ ИI&FHSSU3vB"X "!XaO:1 SjZIrd" Qp_!4d;JLP ,ĉj( x4.JNuEs3H+i}z+;@?mA3#S[4U=D1kK{;\ RG 둀٠Xh%t zxE4jXAtft_7UP @zTLL݂"r0'5O5% ~P`CnNȠTd~HGoDvd"ȷD5b5z33yֳh@"!ۖ{O{;,'-ynƟCG }[+oYG35,P#!#yPdd% Ԡ9fX]M)xy-xc.:u|!7aAXf+eAScu`x%)ݎ>`+j$=.4.9c6P'c:a!a @ !ax@xӱim*Y Od4p dҴ󜥦ܒ!ܳ c\b-pInj}A2ji6[ Y[T$sj$NV!8]dhҋesXI#5' T`܆gWdnݵM.uIGO%0+%1ٶ܄U%>ZMt݆: PݹE>'"T _)D][-Vcil4nX 7LbU433"6iDUaiqr8 HmXLʔl _gUHMytmF ںĒ?$CJL}5%֓"2nЫ}f˪`ډ*십Jn&=:d:ĴJ1_FbX mحИv-p7J~.4P,RxI$z+rQ: T5J9VLbaeRݑ@bkŒlH Z㔓T<(} 6.4DFt4l4 0s`Ɯ`F"$B*iŽHU]g[Yimq,!۲BY%)U89XJx 6؜͌j 2=YҖ؋3^br tAdVveY2iF%U.6m76JmY-%Yb ZV$&q[Wih L>J/KsUz>(Aò6 *GOUbr8ZFrbnԵޖWcUR ];E>4RӚK ,\ Wts"SA8`U"33"4M LUviea[qi^e'N[a$J9 Y)&vVjii!UH#jV|4d($-)䃙#R#x)3dopIp]qJf.A&PI3lf$&W}D ~#*Aąq081r)e#i4YK6ԏjĔבfVD"'.aI$3_T\Ni% +(m2.!.RI.*| ibB[,H/iwD4(MmDyPbF2TBDTQ @iLY]vqZeiL B̐zĉhln*KΫae@zajA7kH}!澌Z_D0fɆ]H(!x>$isb^V}w+ԭ7sk8CZ %vוkWu6Qa:b9HrYmM,}-o93zk&o}. Ԛfjk3Iz튏D0ALBqprT&3pr'ZFe3Vz,fon4DN=wy4ø ʚ>gVB`V"DD!$R"*`ҏLYeWemi]r#RH$T zSW^bLX JQ銷*Ncϸh E 9q0 $\hT;-g= z[ge>뷐dBw"faH57܇YθݪGnU2X-]QHʹEOj4X)GW*٨?$3q q]:Pi,[e|Z o;9j؟';guqz٨(ܓ Y.6uŹ,V@bF"D"$Hl44UauaYquy`y3<5WLaYCA RHcgF"U7@ͮ{lzg?"&bZӗ[8"jL]dJ 3#qI̛ᯎY\9ʑɑ)J,j+0*x eTB{h^ 8, !aG `.1ec΀LpGP:s_a` &̎c ts`D I#6&рlCERpDLꍷda2R3wdzdks|)E(.D"#aUց()t& ȉё *>Wfɟ/]jʦ׾ZkW´""c,OpN/\P @LCI I #-,LFgB3'>˭,P(`8j@̀lj .흰 BsZxP`  A5|?#m!=/He`4,~` ΣgZ1ɼ0p(L!&)cO0~ @BP(1 :- Cj^>ϝy<wGH+y=Mu+Wִ$kxvI#H,!H4" ]@5t;@0*PDRJ %(^t%$ 07?s|s%O9R{ at@RhIi ;c?QBpݒ0 -4Q!Z[u)n@ .O!!Aep픗clBTt \C 7LC5'V>̢Z n}R,NW <wJ`a,7B1GӐ[|׃ؘ^He#g8y @+FsIFȆ'`x;O.x & @ ͮ0cW&t*MY*].G'އ{M2|/.^3yC^X;ޟ'ý5ǟC44a` 12& 9or0jP Ԅos;^@ ,`~0nN=$xMAh)J,"^CPL=M(/]X Ҁ5af/Q<#1@6+u/~lb~ PgqO B*pg,*4(V(0fuh`fCXވsbÖmxiy Xa-ߏ&k4Li=diܞ&V7<|FԟM.@9ͦO< ,`? F.Z?<bߏ#:qni=pqb^|->['8"ز,1niDO>.9\%inbj>.l\ K=8zgvky~<4>:5 Ӹ=?}&O{? X#G p7ĉ\ .:vsZ=~yw=AX q>Nag-8}@_GsVhdNAyu}`@hIA9}h=g% 5 LRW^ }~q58@Eрnc֓w@.&f8Ry_=r@-(yd[:( &d.^h'%cn& ҉ܔM7adԆ#~3u}Dx`hfǒw؃Nn !Ѽ~4 ˾7۬;'OIHI4n;8ɳmpf'͵G\ ' 5~}N8jy,C H0eI_sC ?vlpL;nlka8øiؘ cl1%㬟i\2\ X9#9ps6OKOb GƐigljs@?#uD(]#2}: ï:h||I@kGs@9?.#?6psYat_7ý#47ic~,I77l )$nX H@p w#$`;Gmu\GG>p* t^(HAJ -F 4Q5;;}}[|E} hC*PR /VctulaPa( H*` q7'3VA]_NFۻAL4p*M&mHJF BL"i +%}nk0e / v:z@! I%?#QuҖuf`MFғ7 'ik? %a˧#d0mH ȯLO6H9vד͵Ÿ a,I%cH%Ź\ x@^4L!aL `.ԗm<7n뱓)乧\`F<-b룬H,c p"a3_PE ?ƹ.Gbi`K< Mywuyp(^7q?O}?pa~jãxn/-] ? YHyEs"w4oN[W;enxp  KD!޼0p@ ǐ@ti@ah +#@ ;),  A01 ,R!˩@90 %&C 4Y4t;+ۀ1 H`N5% r֎GJ d# `kX(k%Y9h T0 ~'@t(Q 03 XaE﷼ $'~D"1+ %ejvg~M) (_OA4ɤv+d ;4:!IPR:pIi|7e#wde`1 I&tP?Otb_mzh r0pbHAyn,ge$@I`~X`oG^ܰ*耀8D4 @>p@1, 薔90 Th(YIKt|dk>`!f /%7(rw5(~CJC.=w ` Dn&ƯWN#lCC K%q=`F`0:-$\.\ ͒,w 4yHmrKOKik;G|rxޙ".8 s@77Mp 7߀?1[><>;^GHecg`FA/ p|枵䎧=-DφZXbz_]6w8gNa"C{<$5#_Cu, ylj|Eߺ{^~=0oη#/{?)rysw"$nY}sddX? ̾px{=d{׀)@ @ 2p?v7)eOXp @P 5= 1H` @ⒼLA1=,ͩ Ěo=jױL @/ &~0 !,L)eֶV360@vrkZz\S9  㬠` 2@ftޠ( K (0L^~zr9& @?mt^CHɤusl. Jb `EU2ֿҷ@ |MAIw?/^hr,9y:H`pbݏ ^@0b@@HE~Wxgv73@ @ %(w<# Ԥ0uh5` OJ`&I}q@`řՋ6(M̔oz0w:tzi0}E@0v`btMA{xNP@h`dsۚ(  0?!<?2"CaG%~<f4 `2Lu8/G05)9(y^ܝYޏ!a` @ !a IDZە.IX22E3KY⮝> ^-*Q!E;[V 0z/[VC"0t]wU.oS(~-UrKܖ9ijb]`B=v`E#43#&m"LӓUuaiu\yZoZHGOAȾ,1ob6(TH3"WZmT2܊3hۣj:zERkiDUQr+j[*DJ"s[F mPFFet"[%ēMrVڭ$1K$:4ujj;cs#-6OnnH܊#7m)yI4k_[YڲE-ƜyĮq.ƨSjB9!#C87"\,!;ٹaIdObj(^#ӔYAc(ҏro[mhRbT#C3#&MA49%aiveiuqשX%6uW[nG*iۦIhr.ʚcŕ\enp§')R}'t06 0ki\2ӍZ[F7)LI" NXҥ5hqq9YFD6#)UqrzSavB9QyػrJs,8ubeY5R5)t4s :VȺlSmem5k<b||puU`hf1st([dH`T#D34m"@RYaeiZu[qYnZ(SsĕMYHm`bQfsHyMq-O6ܥZ|ÒM2ÍϤ7j=Qyr*r TZMUfסZQn,[SQ~WݦDJv9ţjJ[z$Y.V !̦TV-W[IE-Zζ[T8Sk"l=aHH$Tun-2J]cPJjTn  IPM6D1 uR5R"Vvo4bc4CB#6I I4=ae݁kfhNLFQb&i\LIgJ0WP'D9KRջ@5Pb& M,SDfW)Z)#21Qq,=HzB5ߨSiVu$qkXKr䀸UeZ]Jm@vʉ&hAaj:\7HuМ֛NehFjT+K+L!i[HJk\^_$q+|cI8-vK")г!p294U8I@_iJeY1W1 k.0Xܐi`S&5B#%e諪MQ5]iiǝqu^IĄCٓCʤI"+ Wf6ܪW)V 36 Cɽ6n2&ŪҊ4"hp[鰪| \9qI {][SK]k6[mW{ZWfų~v`3έۆˎW*ԬhtB$JSfPiC^J0 f1 1E V*ibN H`WhiYTI^aٶU+OЖk */S.چ~pd1̷7f[GbS533#6mPU]vieƛy^u仜eq-5RjD۲5ȚT#&D$XvSlV8H`aRJr.Y3(-r:+dPؐMFܢrQ3N&KǕԪfe Z-?oR\(mHm^m[f|&M񨓑u,4y:3:RQwFD8сēmF$uVb-4c:QHha 0Q j'Z$M6nʴ.abd$P'bb(Պ2;K5" $qVzu`d$434FmQU%!asG `.εxo3^6zxjxn( 5z?ֿ}fmm>:Q9돞w{xzR?i5C l;7/O";k7w= =mK?[0G v3~9ᦷ1dY\z)`u4߹v#?'Ao_;^+JbXݱq#)/-~[=)sLG on-YYsOp$`4IdJ~ӓ@B`Hap&` & AEcýL;! oR1 TX=?0*tBO0V BFfH@F v0@Y7SѶfu~c|rp Gۉbb}oA=fT40d?v@ @#_:0h[oyHMM@5G FlE$%KuZLNNz[үgм߅'/^ @\*L(Լ#z ~P p |JܾSlq~,.z;Pman(~ZDf}9ws4RxA~p IEIOEg+By~}㐟8 &(`҆8JN=P]`CI;/6[W$ ]/kppiT]+ JZ<.w>|6 ^[v>t^Z..{ wX OooOm<#$0,V9`-Bipw=<~4OOY?-x\ axp !p|  g-9ӋAdZy8ǩwhaӚ />BC]bS{~W׾=[{H$#oJ[GMux9/D8@%;~huh*a7o2nGdy a,:A 3XuGٲrr ]ɷ3Hy'g]W!g׏6gmH ~6ocʒjGɼ}W!lg7 e!xc.T UX4\B }'?I~G~Y#S=nfǕ4嚮TYF}3H 4r0P`b9egO6[ ҈H/vZo NM&Pd<΀4M@4#6]ĥםM %QV`YяJx7 0@ 1&1[{A%y#GPiIJ0iV !H suS>`nP RC,MXbeH'q? @A ?'6t͚Qsj=!a{ `.(1) !}v5# `ѹ'"3#cXu zvb҉3_g0SXnV킏\= q$Ѳr?:\T0PBwq\5bKAEZvJ7l8UD2{|h` @2 B\0#s9&d  ԆY%)HE9_v%iH<#wGސ4N?tcŬp ^5ɣ@tL$ Hyp<+$!XpXlB1N?`Q0&D:dRQV>tkbCɜ p 'qt@ 6@v4 W_suЀ:$ Pw !׋scB~`JiWuoee686P-᛿}ŋJ WQuد![o@}'J'I=ש ` \|]$^τ'  V;|f@g]|O/Q Ԗ_~Xx >Zt g7}ofxCwc- 9RR13K#6Ck>M)?ig ?'{`1&?juX fĚtxX FIP BsTAd ~5T T/EM``yD(Xz?;s%krLJ0j:ȹβ` raE%;tXrq1r5_5%(,H @jL(`*QaI ؽL݆x@ @ @38  L`'+nd3t)=*M%ᥧv7 ,Dœ0w?#Kr\5;lynBakp /y((Y 94R!N±| Z ƺ} ’PmSq "3 @NC/ jv p/o?|gjz+>86 @ !&bKg 1!VBR4BHo] qB'"ՠR[ܢ:ZrvB& @Pb{de\;\4 &L& !w,rHg/!4ҔBC-2ߞ>APqBtv;qt8h]gO}F o@d(1"~\P[qڂYgn$BQG}D0]?ľၻ*|{C倀 HA>L4*!ASD@ą\iOo~龟''I>=Yd~GJrT,l@vmUv֠03nd4q/Si!r6?1 PP=94O- '7=}h Jy@#lHnߩlO#dL+輍*S6C!ѱc2Q}9mL 7c 5 Ɵ~7b-9k@@bC:) WK)ë3 HGؤƣJn`/aMRP[CK@g%l{& cbWs( 5(&3t:>@oCJV}`0 HjK&vqz 7 t!b{mҿ1'YꚀNv^B\iK_%z&'zCXI!a `.!ceuwQi ~ <뜕[ F }RC!:F[3up̒RNrW&g+JVaý gvÔA@uvwZSҖ9ڷIM^v}6NBش$܀ ;l/2죕9ZiEb !b`ޒq/?9wɀ&-+JD &nNƪE;s?IJ[goOdA|a *Wϼo6WB1O0RL!%)Oϓg{6-x !d+dyy03R7)m즼Ez'.A݋-Ote|oUwGHԧd'oGF*w$bN|JGF7tmT~0 &\ PB,?w xa{ vqÁBB0eYX5(+=!0 {@*M)?ave"i! _ny#{,r"fmfk8`u/upa@#|B J n=D(ÜiIyFϫ :58Kp3Rcf)=!ת86p/akMz"0׺f#^Dq#r5pMv{U9Er ``^jx##QPЗ]6!"U `Q@%,4+M)&7GIOpEϛ\;䛗ݨ04 "HfR0 |~a^uksĕLo騔1Q6vmίN+֍{s 2#Ϊ|UkWԄs1Y$ORQrW{F\CA\?DIN6G>WcsA`)>ksֺ{#"y݄UJE^mJW2; \:kT`R[MFDK2FH 3kIj=AQ&c%)crwv;Q/"Y~,a)@N@ f{k) DH>u ev2AhcuO (D#3y'f*j0a.XX _ @@މ*_>fHwc:H F X*P30{E` #La3% v}bd`Ć`ݰx1I%2iE0.:^n2 Lujb[WC WC)4Q,cTS~ ;Ј8PJ F_a,a X'- ' BFmn[ Rnr-}exS#!ys=!39D"ЛCCDoyTDɀPN~D#_F="c/ߙ$`@kxgI+@43."-;!#x$;n4 o0٧\| mzcw$79B~ش4@l/RP1fd#tn;;}7W cB̀J%E|J0φ=B1pr:k`BQ@ . @GsNon$sÅDGpxȀ:灧N@ۻ+;#g~_gw< 4%9X/p]k@5;g s*B|:FT3`%6}KTsǨ]?q0` A7 +l)O|M-t#1 ,B)!hSۀD01%O ނ/ >/B\gsGSi멩]FwT;bb~RO€s `&,5!a !aG `./(i5 」CKK DpFBaxh&|j;vc$`y?A@JIİ_biỲү#^&9,H /4 K pq0%L-dž"O79+vjʈaZ $D#䐸p*Wc . "@:ԕ@H(7a<`P$À[P5%?CI}NI^7'2 `i-#E\\lJy9ԏv,.f!CH-x\J@'   !7 /<lρ [3FO eq!j1e''DW K Mj"N I!]CQU_UUfW8%<_R  0  33w>)2}-w$H7x vSgp BB ,>Ӱ,7AHyL72wFhT4gG;p0KC/8Cr yG$ПОV1?8w$y \8Xku/TUUBp wwXW[]sy/r[ @X0%^,MXL3 &@B@&\? t&$@F h4cΔ%)tHR)s f pD Ĕo1!HNJ@)7fUĜm qc%+m{oh@tJ&?,e  #M_Z8{|4xm;̛w4s}UP 6T0{\}(/h Q! $$Xzit 9 1ݕѡ+wH)>Ԥc !"?ay>l01i|T|Y&A&(ű$3d'0>:@r"CvkHL5օ7L(ј LSq,ovrA (>䤣j, A hJnJh|J+б2iɤ/ a|78 ҹ`y!ô#K>7:p sarJHqA>MYE `UT & G׭K#XeRS vKL, (  (ʙia_sDa)%qA>!$0 TLqm-]IdxM&Y`` @P:/#? "( }FK:1DaD @AG"2*V7P=Mz>B~`]`L $ľ2 S  iL&ci `&`(XoTa􆖃% v(@,(%# u@\Zli3,0Np&ȑPm `#oXFH$ axOz}@bRMqwH 1 f?q'AB:a0Z3-)x% +-/&v (pV;VraoܵlgBE#@U(Xd&! QEDQCL($_  '@|!a{ `.!e,I4xD\a?p : _t@ l2g*A0Rpb{ԟ`ya @t` @5 9X0o)he93p&(0 1&`B,<ѻA4 Њ"a@@P ɣP p!",7_!}iPf%O;jB}/\U(~ėb0ޡ Ba>&LL9V A)1Ej_& zdf >e(#D} 0Z&<߀HI3Vt9æ"mQH-4, ; MqAV3@a2 c")= Hd<K0EL-Ʌ G+C >ll$beHѺPt"pNtQϼMšNꒊLC=HLCKu ?`ɁDY/lBP,<~dt] 5< F8md$g%#}e}yB5sXA + peʫG!F4I#}n! ZINJ^a+{|j`᧬I/vKج\ ̄)#B,/7b FBROO=ƶmZ{ SdYzₐ̥)Ys3wcPj1,Brc#^382 l%D# y'irsiF , ACqA`3hY#p @H۰.ͷ5m[x@/Axbx#QFɹaKx^{ZS&*<_ܔ5ЎpVrjDZorƉ B;56SKV Xl(`& #!FZ豸hh!rXѪ=R3DNfXZ3lh& 8>+ڊ7fkMp"HfjX9ri4 iVո ɉR$|kB7IGi̴A `?aBk߀#!3<~6楩AdH,|_=Wy̋7N$'﫷وK$Gu ٸ 5x1 #!Fm[ů?W԰QM En3xڄenb70V ,A@ #(:O7R2LfprFʳxlݩjb%_d#]ksec #!jVl rf|\bQcusèlSfCڸ!#:P Df:k2dͷo. #~r9>lRRBZINCIH)OғL7n_O /-9D ¢bpYHYjvJ:)<ӀWDTPɡ}#dba1%14mUc #)JVc9u9aI. Pa{w('sXA1 0EoXȏ frI#-+NkZsFlX!8\KA.D.hq c= w` 1 0Y# 1D B[ Es">/[bQ-zTREM &aX59][d LSS EUPb-#Yf17&_!&3!@~,CBw$tX*K)>z."|~ (1!a `.!eIU#}e}yB5sXA + peʫG!F4I#}n! b{F)M nzĒd%r BLP#B \0e-k'Sskfէn. fFܥys3wcPj1,Brc#^3,!AjP;B0Q_`7=h;'4?9cމBFO*A ~&O7ojۜ--_#!F-!rB4Yc vz{/حQ M}#"_dB*3H3INbu&E9Ub#/ #)JVk5q(Jwn>q(C|CB(Q'6NmI) 8*`qQi?  36o6 ot n<̷IXBcrCb"үR]sqWYb y D"2Xb  4%:!8oOS'T:Rgc&1%$ BF$hH wQ ` ۱(m3@!B+LAX`}*3'@i|k~ddOʠ7 eI=h9v&NW; 0b Q#C/"nHbYjG|Z@pLZ\ei4^h9Dΐ0;x H/w  b[ ^4B!c `.!e-*bKlac<3OUU5UHR*Hl(8j4@ BaD` BL 43$̢aԤ݃;`9<,G^`Y @ NF|$#D(0@vR>!r!)-H;@'`` _)#),8Bx1jl$Wj+ vS髤" ZzgWICD}0 #OeQy$b荙ymP46rrGǛ6 D$LpI~|0@0ɻii A#R40,EP4|_%N d%AOJ[B*P UUXuk+o;܃K%AYor Cxحz#f $kL1参}̪0 X,!(w6+sjiE@ 6%()%! 0>?L&IR0#rj6h$a,׼T?Xp`a40C{0R5,p`9O_IMDDe'g),PChi4dxI3 0?d*@ bL]sd<@bL(HҼT!`tB90(hay{/vG߰a<;GQ n1FȆ%I{YwR] zswFA3X&]D442yȑOr=b7.l6a`ro|X|t{ɤT?Y$5 q6 0'5̚3'bKQ57gĉ[^tCX/ӊ>(ѪUm%!Vc@@r*!P`a]G}6PtL&>8HɳmSBxPPt#h6C@aaDPъ`$DcL@c$hf LiG| sA4_9 W!ed{R6 `M}Fna=v~,Y5` LA@IJb&9t? =st`+0*"Hsy.?;Iϣ=Ў"dp!q4 K![H]<8toԄnRY(d!|4 nLKCؼzR4͢אPNL?I@`҄'$''o@i/@U&B x&sx+/4Zi$kP# CK &'urt%4ڄ&L 8]m[,cވ@ %N7#P M> r][_0 ;?WbnؠjotzN5?Q2VODLZCP=arɅ&O-"2& 8 O#0 `Z B '1>?@(Q1#TClo6kpbDYk +&^NJP,ܣ 84#٫/td#9lgPM䯊PFU @20J(Giį l8Ni#"e  YZWK{{\)>^Tl&HI ODBU I+\ɒ\ e$H?j31QRȘocR%  "4`FZv?RB#M ttbI,$T)Gg2q2f0I).tE TD'3Ȅ{hSŎŸ#ђk=Yy #VsvtB(,M2}R .^D R)G⌤FP 1ۧ2!CeB+Ll۶_k9̤p#V`ϲw<Hn/Y}SyozgLLK $giDJR XXJCz$9[X."'5`sItE >Dv4#Z3ܴbU\=*E>K5Q)BI;݀Ş)ݽ؇BFz|,?]#6Fd!#xy)k]"A@<&౲Iȧ!GxyDUTdLيbg ɐb &b A"'e0W(Ⱦy)UkmR%" f[ޠd P$6sƠtJ.S 4 hjwDb6jع8 p=ŷH"~BIM.缟bZZ˗/>~m__l*{' #%8^漧ԎJ:DBI/ '9̢halJv,OCSڟr[jr+8 Eb#A!B2@-0\@B&xd& p A  D (\Xiܛ$Pu#m>O]Lt$Y!٫uSWex%_" nP>Z@Eн} w"»`8UpXs6K w !_pYz/K߁mSoZ!ZH91QE}=\ɝ]?7d)PSG| E‡ B>m߂Q3#uԜG/%fJiZX˕-6"Zk[7,QjmPpfD7ȥEHi5qmDvJa.<: %ĒK4VMɴA`!m6 :4ӁU"HuLmxڐu2t,O G-lܹ!v81ɳhIMw!M4`5[cM¬jBmdP(0ZfIF4QU5(66Mix6J8bc%4444i'Q5eeYW]mqHnx* j?&D4a#zCN*l}7̯V*- 92B(̉1$jO­[l| Qj 88ׇI4t8+e28 {arMZhhkjs`@5kUMUFQajREÐRqn4,VնLrE<*Z$n޺"O0j%Q#D$_mjle[O Wc)8\9!)JB(B:IH$xK`S%3$#FMMeYiiqyפN.eDѥW]KSSa_!R3%vԭ0 H/D6QsԽn9-",H羒ˆXPr &s ĬױZ/q}@#^}N^ɁNhn#Cȥ'ctQ7tK)> y2M%| )D&ktS+'n~{ aEl v 8vae(ln\.3#6a̕j%!,DDٳYgb I!!&3n+`NIy(ۖh~^J@ JY]P &%4aҀBЄ|9C&'vF&DѨ,Ȑ$ ;%' DL~ aX%I5\79_NOh 8J9՞~p7Wv=cp b8$hFQxqӓI vZ3r=RNގQ @2䣢dB(hoQ06}fA^wu޵O\t;L&`htf2R>3ۃq *K BI$ %(J!Ra,rJQ瀪 ۣS0 Hd$`)?!cY0 05#x / B$_G#`&/꾷Mڜ{*7ŕ` en±&` ,0F|`|w~3aFK0Bđ4D$U,I0m% ҃d膔$ ZЀ0HӛŻf5`X3`IPD!= Ic1x0phbF|L O6US t?x:lb(f/p@Nn7_f&mIO+Hܲ1}|? A[$xr E ߶  :nQ5 &섍Ŋ Ʉ" q8@P#U.Lp s#lJ$pJ Ϗj 7Hs^ɠ:/:ݲ >>לNPLGBwGcUw!)(5^ (lK+#Da 4#bX 8)H"_\}w wwZ}U`ef@!cY `.!eRۧW ( ('|z`@;e3?^X n[m`;A@gA@'R47a?8 I&G&ޠh@5+ۺmv)@(P>JMk@Hi`TP H Rn4\ @0`4$5(=nfx@ 2I@9:$PeIjIHZ?ݲԙ`S $!/?8kڈ`ΝwH@`10=Mp$j A4QhBp2&8Hu>A4J ( ,>߄ ;, [ZSOM-) G/\6 swۧ78YEt' !El@i# bx𫧰dP`h k^GJRAH"%E4t)iF \`\aEk FR B $$@ hЄ DI! pPp$aA/?~B!]0i #w  +q(BRИȓ14 dr|Ѯ B {@``i`1$ "aZbh CZ3`\ $ "rj R Bwh򈭘\ra5'<wmeHdPcED  aQ$aCRQxCCixPi|%)`hoDU ^G JYJz&: oaP!c|yD4 P|ԛ"r"~AH`$<hd3-JLqޢ*t&/D  IJ 2%e nJjeT!PB%,Q,41a1 R||LAgZz@YC %+#%|"1H@;PP4$4bpq Pgh !($nCLkSKh'Z3bGb[('eܟ8` CF ES@+.C (rXnO@$eD@]ˋ`i(^ɒ$brrE+% Xc86LC1ERKӄ&H +"pq2''U J-,%B|xnIװߪ E R1E`'hԥޅJ &>H40:FB`caRFu@1O AcH` HI #~vf`'` 4bFx)&%~h B7\#xyAvZ5(={##FnujU{dXȔ E eIA`NW;DA'l8 Pyࣕ_,6+C)ݧ#"!A|xmsPG~wkr\-!*x#ix$(pdxNB'e8ZO8"AR<C:PY J #"!xhy\x>ʠsVPQ ~4Z}$$ "#rIS \/(6  #Hf9d{𢣮_P66U04Œ.%(x&\Fd ?CW`%z"` Y q泎Gv #" թn{S T*R !baӺJsQ℡1e\S\a1w-2[ŒH!Lp8{М 42",OTt܊.oA(20ZyQ&Sir2 #-N>uBHl( lrצ ZB|> ?򨊶RgqI{`Ho;' [A*&#.DT> fmEP1- "pԁWp¸@g7Ii ̣0*e`Xk55r #Vs(1vpRwblp!P7 4gBwa,z;z !ay /'nt7(/A{>zڗWlBޙ1,){nVK; +VctgdAX ̈C:3R+B>w=8lfhh?LCF<}C  M)]axsYIF yD`Dad̐?" L#%E$5 (rXހo˰=fR 2٨em/+Zgs]%XqbJD×翌!|4Yފ> U.#[\Y+xyXMe5vEBV˯W"Bi&+yz && &!5DdvvH<]!dgS ƻ)D+¨6 ҖZA Dݛ34*(j%,+b&^ `Gh?/9~j FBIfS+ H4(f.fܞ8t\G.&hnɟ1@] k2N}<ٯs[ ` q+ #M`V  B|E8Jxv ֹDa.5o)h"J(OꬰVpg%y>Էm6Cx& `+!FXEU^Xڷ6 Ă)-I~{+9m䚞b5p.p- 7=)ٍi+! V ڕ~PFA>>OH p!M[IHuZĂ[Eۈ iMH|? e{l+!D|kpE> ykW u | F &#$Eue֜ipL8.ө5KuX +!Fm>lD&<_pQA<+_`W/-cDĶ@=؄`4[FSWO0 m3xp)ѡhJN4!c `.1gng "@`|>cMoJzֶ(/Cn-/fQ$/[H'nHY%5ɰD A$2 w,q1$04gL?A'{]GPʌWPWDIuXAAY  +!FԵ9-KpAD܅0'Vm_=;PWQ 4A-%&>᠍\\mڰFq/eςF~ami.^Y2kQ)mezhLEGN0^\==e=ds1  +&S^B=ZZyFU\2XT5 ^Ģ!C3LV}kmr7238hAE~-m1Kw@JOC8DpsX&*+"e9r.` +(q֡C8.jR֚TH:4$[-jQcGCSI9ixc^ 04N &i)җBR졇W\NjhF=dͶ1 %7+-+NkZ܂Fy70 v!A݊b*39ai`OИx1ѓhކ92bY B ,h2u  b ywųQEpaʷ+l@*P[&NB|΀>+Yf17&lE?\?F*vN>M1#/)"p=2n-%Q p"pDUT.#ED@țyA4DQ BIɓ$ۼcp'ym Д<  : $1%$`<( xҸ %B&q 1A " 0B/N;m&.>6x p-)԰>,![܃n9 .H(Iun p*5xKD/DCN_9S:aDzxe}@XeW8GpM G|I0Jy{8Q7I]1S^Ĵ_4ĴoJ `D2J pprz"B,B&2botA}bia|SŁyD A1' #]C `mr?sq8-%'$j^€-/( I(g.pmPp({\Px.`$ $4.91,_ )ᤛTG'm+ i$I &7$IR MnV\toNC-P'R<fCٲ 3d5\W,lnu $9Y"96$y|3E":EATmknvHSx#!➬jWU3棪CbS%443(lnQEev]ZeuzyeJv% ,MsEME'(ç)E_dX%~-[SYt@oAEEfaTB*ȔE.ƦGF#MrDt"V@ԋ`eZ٠5FI CdHh]flV[FEFRZq̍6qD7oW GUlܶMIkYp9YY_JV1CJD *nR҉]4LV\f%Kp* +U 7$qEDbT'ohfi*`S#DD!EIh~ID]mi\]vi}uMXtmla[L 7Y0|*Jz7IQyi 5>:S$wf2XKىc['Vc۷guH͕ u%$DE(1SF`T0NYRധ rTQ "$gN12`c@)9$^sJEN3_!5 4L8k !E`47#R\bS44B!6m"(iPK5UmY\]eybŝ֕W-GrF˰\7V&؍ds$i5 qiى%V)󮤢#4hؚAYݍ(ض>YLiGLA{yQ{2ޒJDғvv)Y苬"Mw8nV׶,)B"!2)#O5J yaG؈?BGmm~킠U0O2Uʕu-]5"܊ ۂWp1jlpFGȀ5*m6لefѕ!c{ `.!g35 OG, Q=ԣ&ZC,, `h8hFHmt`BG(O$~` C#j&L~H  "r첋Haxqւ _ `z a2d1 d~ "EH  $"{䖂WrPt|B &H (sXX~wӻ Oa֤#+s}wY}D@`J& 10h/ti`Ep`'tavxp lt:O̯܆ -ʀ19 Rb INbi\]8 "p[M(l9U9`  GI}p(f< A4D B3bD"_֦@o+&TB1Z܀Ѩ%)~j "poea%Culy8  , iWؠ'#ݱ4y $C a̞TY@6J ~KĀ3`PD>M@&y+2X%a44 2MQD RB 3n"q5TTgvF1d#!0҄:9|$Jd\5 $d` o A"h&H !N`CCvJ(sȌ 檄UAP`mvNXa4 4Qd͢(>2FhuDDͦG'&_tQqC6q>"pq2ٴM@>ʴB&{ZH0и ~! z/пHAъ>s7BKx1EPi1 KPƾϛBA0 H@0rLY59a+x{Ff/[`2p>ȣQ 1uQB$@+x|9} HB9 g1f,9k-:AWSNJ‘` +!FmydA`d"ˆy,xo\HG6m0HwOA!!4D(X`9A' M<Ե9C8 P +!rXA_6-B ! F%dݶń(e/)P Oj"{ϭ.# Ox0l$~5H2c0) C@ +!FkZM:u4t%E/B􁃽0A^CA4R@tLB@@;%.J׏S A1`tR3AAG)n>_43Q@!@n}5lN̚nu܆! +&S6ݔ+Rp|U+!c `.!gQA$G,&!ejFeah'Ƶnb4l"7m+Yf17[nI #*{줩9B RnwᖿB.BC JЭ'{]oI+x{OI3Ilr&{lq c˗'""cIP+xwtM$BR^`R?bd[5l"f9+A6H:dSџ1؅L . D/I{\-W &VўR\DZ(%oO`Cæ%RLc8+_>\%&%"1%3\ rFG!)kE 4[CQ]f97aоYc6sl߁l.+!+RϞ.^{|i`)P`CZU Ć\;߭ X#!XK$Dp#A\R\xHNBQ0]XS~}&.\ g| z9"!B %2[w E&?{L+p# E.BP%*NM#!;o xkP sq `&:+46&I!u,&IIZ X'("vwRg[Zl0[*iBU}Mu5<+R #!ם6puNT*vń2ҜP0m{`n Ө%CzZ(ukL1"{6)ך\չp|-P #!m\=AUu^42D݅. Є.P::Ws4O KPR2FIu(;vMa YSnOQB@oY@ʺD01!L+gq p + j]u1 G$VMājia$40L%IH f0z6U;1jK8Z ҨIAɆy))M>h E( FK )x[-9uW&el+ +&+]C&B5.W u RP85 Ai]0 Xh"!izYՋ**z42i26 +=;^m2H޺hH Џh" z%’M#XXx@4K>~\k0f+-%\ֻ`W |y!↊LHJP2wPB A#TŖaI,nv?F`T@ &p @1&E B~%C+MR i }=Ž>xwL4g4co':x(5Gp"G?07Eܞ.8[ǧ<ӾJ sW`!c `.k=?߀5bY0 g{ yws@~O[fќ{O'{DO8ޝ|\\t8s H8zz~i @O? p7uC4\ >Ǐ6wNs?K_0oP4Y~}+縰xX]y"Ex'1;ys{>b~'H`QXcz=.`jCKηfC|a}J}mE3Ss`1[ QʯKt-߳Ԁ*8 IP 8@@B 2\=g6,t?ϖj >$|2\b4a-z5<yr\-2c$Y?fYdXWp7 2^\X}Cz{] 4/'="Dy"钳G<kGOcy>/^:.i>Ab2\b-͟.x[ Gs|}NG߁`ӸOgN>pӸ ?; sx"sѸ0@uýYO~cý @@LP @l &R3mFYjqk<7 _nBRœH~%3 5-`L[׊Cu%ETƭy=11A 4±"ɤ?ݯ@@0=Z+ akIH_w0j2Pcu@ p ;5)+>< tIHhBKd R`L,f{< =&@(1Y^7qjMI) th(QiݐRҞ'X W#[@ɖ 7& >ۿ1 05Yܼq܎u Qy5P#%OG- 9B͸-`̶ (IJw߭xn=Eޛ 㮷[ڻx=_Sar>4xWLZo Ɇ? ?ǁp7u/GE5p> FS07>&3/k{8?,y?|z0J$~s& ?#?üKt룹n?kn.\п#poQ @3 *"Xxzz@wD @rܛ[ɝEzv<ې @(o7^eg` :`QEv'@.EtV!o[H3c(9 jvڐ VGt!cG @ !eD BL.5^!"`U#32$I4@L4K0YuUvYaZmei&+FF(+? 7$7 \fm5s4n5[|#κA]Upc @J'[5m:|mqRU0{qaN;o8]HFםgC:p-zTܑm7z觱+W%S^hXzDٲX.9mHY.EЉO FSK\ȊA6Z#z1w)07n52%azNҥz(6i䎏]chPZloB7I`IRfpbV#33$M$J0QUQqmƙqaPNH덶d]9U?MmZѡP9E2uG4CrD#! Jnp+NvǤ)g0c%bΩ)y|X+ bU#C##42h4UeViYu]eE&iV⛚"LCЖ!.լjԓztU&lnMlRMjz4tj/_K3LPĈXDz2@Yܩ |jZAqHW䈋#ci-an)Kq$H eJ XLus2"Rn}4[M$&C-⍑cWI-=X 9'd'i%RD%DJRO] +UH,%UVJT-D E㐋\-d TR'xCڡPq7z\ NV24TvGd`E2%%""I"@8<YvqXau\mܮk1pd ]ՙ:AP*D>jRWK ZNsBZ `'ҡ4]X(.ܺ4+VA?RZ$4ߞRXZ wF%2̣!ԹI]Ϧߤ(bN%ۅ"Rq ֦F?^rZN-"uMv+:P^[Y%+5{jSĪM _X@ag{-dz 3vxNJ(!IPbe2D424iCJ(IEXaZe֙imנ66 ;+iDhֶZ8z#3r0Zt%>֦q5uynj#\Vv`S"PiӚW"lШ\'̉7G v:nflѽ2mV$E28 ve.NtRQ魣T<2܁L؅(i6$pJnii!M&S޸+[qn%3Pqߔz|ĈM4&s BOlvraLxVEpJQm).Dy`S3CB#6mUjHđ]`]vm֘qy/LQ1b4hmߢb&E*KLGe&>~Zay[n;%nMh#bZe*|DnV)@B!e{ `.@Q$#xŽnEHI(`(0b5$"Ruԧw ?qV_zQ.>Xx y P<՞OzuwFg_-n;o=vs}.:pip/SxHkO>䥇X_m> Z;G)u)sG/tSp*L@o!$ >c<$'yNN}w .&L`b6Sjo&#d SQcs7"ws*ap|yL=@ /#CXtóGeJG/ Ծ  Q0ч 2%K+4 K&k*B!>Bxe 0F_geRybjph@~zDgUb:>ݿ** GGo}X@&(&rO``XfO{ׂ`h` ` @Lƕ܏ TP0_dHgy+b0k7l3fgOw S5 *W1>ڏ6G]}D5>x7v#Ax{z$|{4?nvc\yq?/9k?WsŒwz#;vyH=ddydLɮHiEn1-֮WWظ W1v>t^Z.. wX '}im|G=/$u60BiE;}ϣ xsϖ絞tat9}B=Q<}?jO#<˿I߹ V$-w&7/o#nk}0bRL2>3w~Ww{y;o1#OKA{>x14q~I~Ƈw7` ^ܐ ޠ+mmg5Lt 2~(c@7Oa4rRMڰE)@cΐm 'XYI!ΐl1scc =.m8oؤ?cʒoԏ$?~>C剞!e `.ـ55!o8o s@oԠJ O>z){"p18,|W25 8,NY*sX9SN2Q}9='ا,-ߚ%9:'39o]t0Rg.8I,-?|}E%}Gǫ 9dPZߘ⇇ZP_ܜu#6^QwHo& g(Ā_ǓM ;y؅XY5#<؀z=͖&{ʒjho }Ha 1nlt|eӉbSJ1ern/ͧ+sg|/ˋsbЕ . 03"Xn~m1aS~؇̀OO>C}7y>[~8Q &\쿤#ܧԧnH0< ! />p`ĚtX FH@P Ak@ h&%9h+ /h6 4?@T TCbP79 0EJR cB0qݎYԁNɨſ߷<>J(!Csl|H0,dL J ,1%|/s/: PhBQo11y'l~?r!)؜qw9_6^a/iCC 0i&$L@vB@6&$nd!xd!& 0`C7 {{gOOtqlQ]R P`fO&謒Pՠ7~ՠ@#& 7(2q*B[ss 7a=|F6H /!ADB CI1 ,ix!aPA;_/rit*i||o䏈?K~>FӕO-f2ΔӕM!M& Bj C~%144 y#Sd%`mH庆2{\`-#Qos >JS$;lyl@MߡWljf:rE#% UR5T0V۷58Rd~2$~gbHB}#?U?`S?4LJ!e, `.!g#Q( -ؾ'XEj@ބ}Gfȫ5KJqe1i1ƁL)FI@8\ŏPH`:$o22H`oӿƵ -(_ٖ@"g v2l<(R WTt cW{b4"i,7?;;|Ɲ&(0 p)F|%5JGlHZph IeVֲJP3g~}{}R11)NJxx74ɍՐR-ALԥ$7ʼ0 Bp0Vn0زЄ2e>yU Po$@+tooԧ!#% ωHƏ!#ߒ{'"hL: Hhp*/Nc!ݯ 1HI00@vIBCt[KFIyo5~:47ݝk \>qa+z-_/%ft&dBAi фb'".P`#|Zz#40KEFdDEvYb=s XAI~ ,0X3#!A,EpӠV S]W9U-p 1pfB°r `c#NB#¯, 3X+%,L>us ' XF08p#"ǎpepgL 6A)HXs`< @#"tAa[obX"no9' K4SZc[O+w8"HK2418-a;"`HҾeSn_grfYU"zp".wD =4HWgd;p䪉vAM0z0 " |X<,/IHщ"Nu{;ɒJf*薡R<ƛ o%[" e~UD4KO`EplxGA VD󸏮Wڬu͸.!C( hjF!Bd I &hg ?yD VIy芖Jzx@R+]¨1lvZa} 2> Ya# H(+$%}ķt/x ϛ ±DeН&&ŀq02JPo=uMb/G'yqXL $(+)0 Cpx\A셮ٖGGrUBSB >ir_ \' #b8|~s8TUu,CWPAsV54 ,bqǛ}ճrnV\k-p#OaWF%0[PDb_h?\z-GpԌS7}| Ob'".P`|?<rY`j$bF??+jY҄ah=oD27`Yaf)X,EpӠV {/Q !˻\8|Bp\'8e؄  pNL`vMnMbP|)==T},"]8ƻ"!e@ `.1iUgqNcÔ0~аe|a* L@ v_o>o{JAX{ H?Ta;bDwphxz lBOvs!nދǻ(wwi cЧwqUT_xH*y` i(xpY}a,޴9]:{y3hﳼ) }o)>pRsOaAxfЍquЅ~$8'Pだ(|~e=v*6[= ]ʡ,;Ay΃  ;f - Lv`'7 wBLԔ24dҨBh03-jH {81 + pT{c8BU) R"CG>KúU{uS?ЉcC ߃@s* B$3G ҮzwW%]ޙQUcm M#ԣc>aL $(+0ﺔ1'ƋvF{;u^]ׯ5wM l[tC QRu9nsλ%8;=~|(|{a o`vqŻPe_Nkwp< :vs{hxlB=0| ~NvxugpnëwuK?ݹr-L_tR{sw"w%/OD}.4?k/D 'Ɓpʟ 9O,&n"E8`8ZT"v]=xxr:W՘?1Nb}x1, 9 `#n7Hɬj=3摟6:!> 3 $d Q 6"sȁb ̀6jb~ owS_䡨+RB@Lcpͱ$d#kwu毪͈`D> V$rmA>Pw J槬WB #/Rd5Bj䀊MPRj/B$ $lI$$H$hB3?BJpЄ@s[$"@F@\?517&L++&D"i4dld\jɹ> BrdUE{Pj]Fx"MBSRj5&L(4TF'!)Hh@BUY@( 8@RP19 @R4b<pI@W!tP%@ @Ԃ -!M(&B^&Q1 b iAH%HHܲii Ƞ1@1!ؙcBB !! I  Š+NB2 =)xHI"A"ʤȹH*T&ԺdT]2$m5^ ̹5p"HU"OD &x䃯@$Ugr&@<H4@@Uh GޒH$V-(@vkOЄƀ AOEIp*L +&LL LjL#UUF7QtȨ |&D&?軬(uʦQ !Mx0iP*X&lI ,RV@g ;('Cx 0 ',!eSG @ !eěN]ɲJ啤mIYJ9#eᶒĩçwOm]"Q8YG=!QV0;348IJ%q4rWIưRn9,Qm.:ޥU7*uV FJ̴R53 UC "@SE4c-;6⩸!κjbe%"B$Ti0zQ%W]famiqF]#&xbv}f5CZԯKV 5vmkE Rя7 CF/aד4nqܐwCPҴ! ˾T? TYaewZ:x`vlN`f%K)Җ aWA%n߉6Djll)tWDVhuF]8N%FJ+V6 1-jog%bxs+,!ɥziASi_V$CE'#6ڨ-]dEV qY禞hn%.*6r`d33$2$M"RMeafenu؝}#B2i7NFUr8@_([r|YZrM0_RVmѰ ͏B|7ͫe,饑3K lTJi,2 ނ(4O?hI E6탢bFdjيW.oTFrHaf6.2vR&Vp=irHSPv+sI$cFAS!P8*{ZVc:Ѕ[w9L%WwV+ЌTu$Q$$Q`bS4D"DHiꪴM5VU]YZq^v'<Ě5"SZoM:uQS1d/]&cW0HTIMbX:,!/T%j-ico%HbkeJj[Gh(n]R) L\u[l|]Am"/Vƣ/S\-1 19FbS#345M SQEVUaveiq}鞳R8nvB2"–vuHLm-ktN},Q.zIR,#&P,p$PZflJD7 Zq4MV@iԤ%3P. 8I(<$D)2*ka,ՑmF;4+yד)BJnZ,m͡au.TjȄiRE&nDi8%uvuVcm#.ē֊RQ6mm!ef{ `.0 jNCJ I#P0rI$ 4dI ?ĒDYHO@ԕRH$M"E'L19wZ58 7pHBz@BAi?!_@с bY, % (OF @{ bFpژ i$ P!%fG?D$i 4jJ`XBS$@"Ft B DI#4< HK5$Ğ x=GHgS+ Rk5 L2jLX+Tču"EK H12jDH7URdE&MɪS hL. Cx?! SG)IA@ IIF-Qe$a,%0@ '`J4 HЏ|K,# J`Y( \IBZBt%@#`^7Dz3D{(TђBb# $j4opH'4o(?"ib& C,Xox i4j@QI R-,J')IBOIJђ\@ j&0;]@2$ &5oP ?*T2jET&ȓ"@2(aP4T0((i07RW%HJJ*PP bBwےI 8Eo- Jp%9#FQXhJ@DE+3 32J~_9Ppߠ8 Вڄ&%( 91 *FJ`Yl-RI=< =L䀯n5  < p3$Bb. LR.jT &LTeR$ GUH;T/`&axh 8Yb@QIA($Dx|A/>=#I) B0Č"? $$`Jx,x  ~ay'`L!0[?GzQWH2@8gu0i y+y *$1BQX %($$(! +}2@ &2R'G7, "0&p`+ "HH@T ?"ʬ!\ 3H5T H$@"dؒ kM@B1tU?b~Q(@ MD"GLjx~y "LTH! @@4Qu2PK#B@UEH x$R06S  0 HK+ `J@4 AI%LRPҀPr,Q%#FPM /jI`9 ;7|y$JHq `}5 +DI)@GB"3ަPʱa@L0 T4J""?9 <A6 _ըDI &T Ԁ'EUTU"H5UIBjbbԙ  LHr@F 0"M@@&H!|[ I% *-)HŠp-{@L##xP$ĄIy<$NG^рnIGAY xƦN KB7n =" !ey `.!g6Y!71 '9p6Z ?9yN P^k@mCL7x΄CoHT\7 m_4 c0sTl|}ju-7ZO$4P:vɫ}'_1 O{AgO9 OB@ PO=!'BX;9 FS/xf$. =Wq{qn[OkqОkY^1΁;r/?xq͈͠6p9nAjhXz8 N  x^j`g _nl0 -?$fF7#fqSG'ݿvXА?НS})մ88oaW;lal4g Y4?VnD vHž~Ok7ǹ#wCc9;ܺ`DuH@x| o}:9F=Y޼wV>Dʁ` @03p mxlx4<6sI #>8]3-[wuXe~v- 8A*>Ta][ yC3lÔn9DKd +.N Rg/ ,2&XH1;m;~ !pH6M"b9ς|p!9& Ö0$0URTp  &Nz!t8r [B"pƾ> Æd8f0#WeP܆uq n0h؃aCF"o4J.' ?U=z ;sxmS È{jw# B/}LD$ѣ.gu}ʏ7-OFlUקK;+\7GqB38  rQ0Hv3` ]C=؃; p70rn.},8ʾ%# pT۷v8H'0v7j{D%c*q _p],fc{  CpUwQw],88Znc*zD iWH$? V+D%wi{i;t!{w}t&LGǸ AARaw0ڔER]_tъwtS]/9ث}wҞWF;i ZA㧦G;bEJvǻ?p}5ݷb޼;݊Safu10]W$CVPw݉wwL ddc3v*gWG :B7hAGg 2]@n_wu> I=X|EPIfG'<AO:j!y8hbr"c;xmFb/;wNJNὂ_%Xb:b? ŸB 7x~w |@ÈG3cǰ%(3lO ėے?O m9ahC[  <&T J Wm`Coc  }\cs9 \v twrM^C[I>a!e `.1iv9iUA9W{^հ6Qi sLH{As< 6Z XniÞAK0 p$ .`჆A`Ӱ`~Tq.&!  uaX8p}  `q ,M X00r$@B08pp |6^> @# *zaMUN& aaMAnad5,v aA!4$Q,ݓJ$UT:>W$moT#(wyƾ2} $ÇNe# /WKfg.ȿw"NCJD)}3r[u*i#:o-d7\G㟕@x̔ܐ$gܝB;SJ:HE8y!r0=؃ !xI wwso7 w {wrUwfqOqBdU$!p`c7  Hp_DQe sȠ{ڳ],>?I}{;:O iWH1pW$ڮ37* "]Ia3Ŭ N= AAR҃wwqdSQ.N硎yw/ݕs=ܷv* ]^ƻEf-$C]rݤ-u`3 z%p^膉kac5 ~†wd ݉C?5Obϻ'ǻ>ݒ$O$ث!wbk:<uaAe-f:=g}B3ybv|By' #C8ZFI 2 Iv;l0?IG^BrRu~`'Q08o`! V.1n^VAq@D!bqs}uw\Vp0f C Nr$nmchEpǸyݐF7Kn>t[ 71<;3!(\'_#. sE$UuTƪUT!7D w ?/2.A" P(Jl # Łr@ѠL3@JG $ lM@Ĥ !eddd/$dt !|ZI <"UÝJدmܑ %%t"-UBp@(ySP0 (M#`QL#R<$T#U wU12dɹ "DCu)EoR*)ETuPUwWR*$ А x%Bc_T (/Ѕ (XTULEȑuNQbbVxLˑ&⫅UU r.**.+܊R"<UBQR*ɩ"(@`@@D6!dHH0 BRxIĜ!e `.@zJĠnJ vɠBIA0dؚ&'GLwS J@؅ S# Bx%2X;A?C<^ $h&_B0a,KO]A "".R"\.EfeP @T&U @UF WRQdEQ@/EKF1v~J@b@@IcJP  $T$e `!hB~I@X0<>' ^% a6<$A8HnzAH {N= $ %$j4NN]LD0"F U*bkLU,􈺅@WL @)5ꪣ|U]u բ.D]U"*Ur0!M&LI4 (M&,Z@#I$nRDJ$rCP7 i$AIjKn|gɅ!$%$\%#>(siaAIJ@3!' ed@=Z7ӆGml0P~d2K A! ^'_#R@x47<B J (%$HN'E@B>xC0,aI44C)LAD$$0`J ,@FHQrPP @RH#F|I}x%CJFI{|I,n+%$A$Eğ= N>hn"L!~UPMBQ _QU}@P:.Z XҡH UQRAP "LP(( @;N$'%!JAcR40I;h@BC zP.L$)NG ߀ɟ@SB` 8ЀH @$?ѸZJ A pb J2ҒHAcP@$$px)@ ?JfghFN{I \L,b@tC;?%y !XIE@N;+ʃJiE:}U]Z"?5P".D\ HUOD "EP;U@܈ >NC&4qc8e @tYh, !`dI!$0| H BF'pH$BB'0g g =+(܀{Q!Y[DL&zB(@NH!C6Ry_ 8_98 ‘AP uL!w".]m uL'U.@u EȪ\@u"נp!F$$.ґT$UCCRMHЌ5<H J0"~BI$ @W@{@StP$RC ^dpA$T$]D<A5P 9`y>B8@(oke` PXA0 4bH&p#d4Q 7s}#HjQE,xu~MKJ  ml`Lr0!ox<QА>g% <Zj ϪuFUXL B#@B &F(& `@V' {$ȡT!1  < R d@~$(u*T6Ou@"U{0z `N&Q!eG `.!i;+Ȫi 1P kp )6I41ȩH0'<75( H4 H l0!K!#() ! Ѡ7 JQAho D&p83K+`yxv԰x] ?0kq$T 0U$b?*@t"c]P "HU^**(& ޠrv uGʁEd5oF(AG]2Q҂@ @!#Qp< f0Yp6 2XV%nᢹ$nco~p 8?< gH\G~swN.B`OO 4k@7@IF$'6 3d5>`ҿq*6$m Uސ2'h9?U5V0 @7@=%oAgVei /?÷w}ՏYg[q@{%@DvK^C InNײ@sA\ 36@$!&4袗c(NL^U_g-t$J r`}8PVٔwwO'qp"IOU^L@H_@^&9 h2s 9ԠkÏ10nYvXF؟qE_X|>b f{ oaNLA0!݈%r  3z.g'q GĘP '}|> p+`W"d|b;f\P;,P @2?)OÖ@8-D!B9`sX1wO0P7}P v6`a/q039>i8V !f%s&Xm{=^.gK{0\{kbR!2_1%ww/#>1$1*1h@XWt o 1otpf% |)>6w 2 >KKz2dav 8@»ip^2 ]܌.owT,C>p'1w`ÅVJ3pZ]2 _c#/9˻Ft~BM3{FKg_[ZDjF!){? 3NA>Oe]2`c1u 0aU~1QN!3 &/ 0Dq #׼$wwtE `TUkd|aX"3R ҇v$aK^җw<ǻJY6Y^OD>O{t~U. %L6 PVwA z>~NYWuF]ޮ*_;P{\ :[(\D3:#}Ӫe^[ww8 _}{tYAAI1 /ݡv]1M/.DW}g:!bn+S!e{ @ !g2%%NH94#MH+uiHHjLp6nLZh\M9uk$`S"DD"(U*jI5TM%Xauii^usGhHUi%(9l4jb,1 [@a2q1\1oUJl+u giYެ.YVP@eV!lM=d)iRQ3i(#7aFOUT_WI*/7:alC p4 .3kAjYH7 LI4V'xGHN:H W\`apI1nlX8]L+>+kuό޴NK#cd*e}/x5ZMmInvYbC$"DB%"m@I%auRUU]vifeymli6+&lË(,4Sl y*'u(mXY59ozRZjkFT;Qz] >qN[j(Fӭ,<euYhng̬Z)CI"Fwݾ!tiG73kD-mtmg7L &0ձ,n>0RAh?tBi,ԧiRD)#9tb>QUi\`D#!$B9-@"`M%]QTMUVMu]aeiiF4Szַb;-@ڌ0s52['M%dqDyQwKbG֟8 8fdK6LKpF,!*UX 5uĒe+b4-NTo<ے[t$IjnqXMV\$0EJ^`Uub00+V/}o]!\$Ib2y i(e3Y3nd&Uj֕rX[%tn=S,*,\6q͋"k%.ȪlMuF-HzF+ibS"2D1&)@Q5]TUuQ5YmQvWm(*t՜K uؔZSi Da)Mterʲf!N:㒔8孤f qJCozŴyesiHg)M*1)KlKVlE֦RC'M6_ZjjBwV+#Ie(U Aljm'FI Xvji9Rͨh5Z%x-pQ6$iKk =lw$=%kLMLj[蓒5>[bRQu(`D"#D$FiںCEdYtUfU]FaeenХU~% dlJINJ%̒I[DBUn:I M^SC"WȴRqLm.5*ulEd~i˫xa%$hn<>LnrG#EjRBSjqWWBaZ'JfV.DԱԪV[4p:  (2MSZ!4ɱ$lek"6M$db)7v_KB"jj-$Mّ0p;F$&g7 E'V(Z`c$3336M ]EYUv]Yuaan)q+)RB,M4J(J8R-Ln[nXc!e٭ `.!iX?tݧgRj?"'?mFx-047vh|y.X2`Fo1`?Ap7f#IΥ @5^&v/gB(Β0* qg&M'CRM`:a2|v ʸ$$3z.g'q t(_0O XG"hjH| ¡;f\P;,PvdDwt); P=l'wKQB7c/Sր< ;w7@o0)039>i8V !f%s&Xm{=?ww_3Y,D: „>\{kbR!2_1%{nφ I=vDx@ša\<_t o 1otpf% |)>6w 8\9KF!ID| a]ݦ$Wg̈ w#( !!VCD{r8c-w?a5.8pVj,w+e/9˻Fr]ݴI篬7wu epZ_P~R qʐJF#p'?"nN._T!Rp_gv 0lf1!&*=$ b\af@s2[pҍ&)rU*kXgwdrx#Ѝ>8Xs{ p!38u &/ 0pAE^C}ټeީo6T+q/ 4gݧgRkY sm`y.t3?yL(?~ha -ͼd'@4>m<}B)`h>` NoqB"J O$1%JԀ PXā%%P$VAI-Z (4iEIO\K0Y@9 Ō(`` 4%(Q-9(yiTG,) zBl(-t/g(Β0nt,Bn)_ Mu hOm/rWH @R @zE#N   xi2 H,#K*7{rxQt a@*fe/E?}SZP)#o.d!'qoBt숞'as|00:s`%"稌JNKN>t'C!BnޡmȒr^$HuuF0 y$="E[ԑE]CQWPdd $l l_tBuL%5`_|_ Jꘜ àg I(Y@7-;i$ hBd205DJ@&2@FJE$5 !e `.BxF))dB  -)M CxnHAc1Iy' i)7!(d= K?BBd'h}7<:M@"&Mɒ MzjL2dɀ LL5uQB$lT]5U[ 0@Lh I&G@``%~@` P>EӉ!8c"$#DbR5#DdIRPf3`?_Budf$. OqY(K;B/Pb8‚@@/HBWȋ<ڇ` Q&*?V T7REEE\ &.L JR&&5M]T5PU3tr4~p 1;FJ8 @yZ9_<!"?z?:q]d1ɡ AK`Im(!V2ɋu.D"LO50E&p BSw"+ܚQr."U&MT&03wldČ$ZҜo C33D'Ea}W!)ԇ dKg0"Q4y(d0Xd6!MOƔJN/LI(43[g<^nxN={| {L\b@`Ju WGP P) D ,xByDX 7~&4D̀&IJ@`Y":7.LHrA!(?ߏVD"b m%'ͺa?@ S" $ u @U/#o @%%tH Pqm#4`u@v`?d&3'F(#:8 ])5|G=*ʢbCJA%; Lg͗URIc*ӹ0eNuoU?`aUmW Q߀$/w)C7pPR]y@F &1+$  = mBS|"ˀۄq`l?H$c>~YEt'| { n"08#(< 2p ɤ䆎7O|k6tOJ:FQ#svC@]}Ƀ Moo}gww.6o:]~)>TL 3@ }LA! LX4A#dH+E  6cD*P ..t 1ru:}4peC=\i~afi7{$}w/ܩ_s93R3`t2`v4 w EnBBRU_g'IQLtEӕ!w]hTaE_Î,,4hxGJd0/.0*D*v9E P.^ !Ew qDYw!gG `.!iѱ)‡Ip~A%pwt1$<z#k&MpKvrԇw84"(֛>;jY `)_r  SC19U_sJ׮;=W}Jݗ|_`LA7L t-==4$`ۀFe\*3{+q#eD/!)1=WÜ~AF.8p Ws]{7)Q}Ewu`>#BGFZ!R8?Cp rbL5/\#>~" 0y>? $pXr%Z a޻ - Xqξ a0F9֝p,}Q=H =b^{R!:99}$h'0:2!!=,,\O SvFf}* jbL0t N*7uwmry*ILpO0tCm2,cW}Edpٳ2I; H$IZwxowwW;:R_w;r^r^N^]*' 9{쒯>w_c䑿K{=CRa;B;w*s%_8tAK}2]n]&SwviX9 +:eOutD+IU ղ%@nG;6^ ݴ"/Iߟ>b?D?1 pI}wo 4! ww8݀W$%:0.0H'*X$-@ }Oq.V<qv(ofAAkc R}0ypP{,0}VIpve}AzG,nB ɥBeAbU3saX) t\+#݄9p=1o0[ Cpv # ;8,e%&C\g#ЋI=óJ}b] < 1C =_pǟ`Q:37N~tBT݅(1. , !p0|0iU>`gws) !ϒDg.]dC»W?Zo`JC9#X-r k)_y8b7 #ݽøw'y;9'_kpa b 2ɢGDk7B#w2N` *D]€ daXϞE1wIov= ]#ww<֛Ҷlj"kTĀ ΐz߇n>Z`4`ذĆ'p$|St  ΀7ei>j!\ ; 3{(#;& C#]Ùn /Gsz.AE>'wsı#,pODTl\oqDGHYr 7or]j:H#{v#\+{~%c9> vBAi23S{FOfZt\,bW)HdTx݃C3J7q2Xwq?x?QiH2')}::dЭ}>&Ov;  I`1E>a8ows"xv܏/ݔۺ#w<Ѭ/]=l !g&{ @ !ga:]*QRU8[@IQCHɥEFr!"uڛm$'ӜM謍$%DIpa.6#nN6bEu#mdZiZUN)!25.)2#]5/&nيDmT'*ck͵#VFpĕk"F_R15YB jD*2E6-7@bd#2C"6-*9YTaae\m݇^5ю#j=q!Bit22h8`IH7GYqDŽVpirD+dRM\֕Pöfd#ձ#J°| WZ>mYĞimJ}mrMFȐ,kъedV,JT&$_+SJUqDy#B4XGK9:L%prĔISH%FT 7x,q?Rg+nGT gU u'bV!'S^PMXYC2NNJF !qZ[1`c#23#4I2戀=#EuivUU]iZiY}l̍u<۬hb8ihU\;jQɝqD.%Ǎ{ѳi2b1ܕYN1utܾZU'\iԓpma0~d-]CkVch_ty22'֝SӳD OM%L2* T5X5Okw2L@u2RH "DeW礑b1NGw&Q|ciZfD&Endhɚ QSqĬBLd{:~Ki|D]Ue"1qX-R.΍46.Α!riDkDq$Eچ5W77/q&tpԜQTppeN6=\:WE,Zt7@T]VhhcydJ@bT2$234m@ DUuaeq]P4)"k=m%5pەN5HCT- :,Y6-yi=qۦbrLuoRm44rFLLZrReM G8JHc6va$ sLH-EB͂IFvnA" 66MHWFXŀ֍*qX9lnv|UGSJ5Htv-#,Ie{p$YlHI=n%u4dr9rf:ķeEiB9*6Xi(0ۂ`e2$1"&5#NQeeZeq\nϘ^T=pIMkGݏS/v$H\vF ܆L;2UO)0֒Kwdb#wh$Q JTQNIuqxADE:+g oC**hMi2s^=:%9}(KJ簛6Tmͳڗ/- Yfn2Ə$!g9 `.1k&i{A[36wvH_y},j~X9vUw_e\ɑzAB8Ip s Aawwa&GwfT*P(X^Xgis \3q2;"}evO~hG;t]f$ÏFGo^'w:ОYB+UH 5LIIa 0bGHq <@PpHNZ)% Jr1X %d0% M!G(dnRDƠ@+J?J(hB `I!)~aJRe, BR z8VȚ %cC VP}1?y2F0R*L &4ɀ T1op,pOXd3@F @h@(5<,0\V-$@,7#Id@v`bvREI@̐"C(`vȍ$5L(  II$ P.N"(TL(E H*ͬ#R4H j"j*.PPB*.EfT +uP\^S1r.*Em5b"_,Eg':IIS$66= R0!LYIJ@xIV@RI 7JS$d z%1cJ4  oRLH1+@DH $ B@!D @|,"L\U Eԯ"?$Evުʺ. wUqU QժX!gL `.`AOBR Y1iAo-( G )HiG,d\!)H=Jr0 $@w7"aD,4 (0/ĒX J - d%- _倓vԔbxAd]p ŠjpBRI7'd$$ĘG@R1`* !%`b4o,0 ) BKF%7B @m`PԆX)J^HQ 0XJy@ĐO|㷝\$eq\.mLH@@+PؤZBXh gzr&y4[mJ <_GQjG0Rf $I!;"FQ @XeC"E@Uj QR$Ȫ˩*z ( $))$BCy *PҒZCID$#`Ho0P ST_#'%Nxރ\ވPg`?@ gn$ؓ͋ť#k‰Y[|j#^cvJiE ,C:Rw%d!~9ќ'BjƒؘQe  "2N`! nhf)({,_^&Ҕq"l~-DZ@¤r< aиD! `Ġԡ&( $҄C>4P m՝SLHiBp` P$"ɥ,1$Н^J2RXH02ļ_@ѣ@y"Hr@HI) cG &$ hׁɉ3LMŤ %DɅ'fzKF"bo;3rGɃ2~/$JYEju6 ]B e$_4'UE%?4Ӕ0 w?TjF҄ҟ$t oP vI$MiJ5F;M ,`,Q+`HUԞΕmAHjJ%p{Ao$% A3I$~Bx\L?Igpnay? *iU*܊( um _IUV. `\HJS1 {p?҄ Ll FʘQ$B \@ @r1dPrV(-Y@\ dA 8 ) FF\dx 01 > h E!Bn9et % -_$@yj@ @ B%hHJ>֊%`%OD03j _ PƦH^ VGIL$ Q"k07SO8ğ0IYrkij]LD P(pb wp`R+$]LD  F@5 PH<Sx@B.}@ G%,p{rFpj)+<!g` `.!ii_`UvɈH,jF0F`>4v#x~֬0Ј G ajY$5 L`N&%IN^`b *`Chمxa% p A@|dXiLhs m)!` Ktdy{{{ImWP>@`>:Qf+`X͈".~/h d~7(l@ޡ!C3},a2PCo}=4sW(jO 90d_dqaIH5 <WQ%?=![``z_C*ިtWރOik!uhqUHw 0N10fw h`茋vjm.9Ww0}܃a6b*p\p@ !  "gt̮ww.5zK2d2Z4BDOwv U}v8&A4Ż8X#{0E}&8wX ބ4x[W}rZ{"y}mĻq9tۮ=h$y:V5klBQS?\" º`_J;U_hyo[6wfb! w{QEJZl'E#4>tGk 2KP&h!Rȷ T,œ mחwwvjZ8{ .ɿ,ė*`1ib($INpH>(dƇmqjrQQOiI)Ì? ].r4d!{8 %w2k܉;7qǮIy->k{wVwvtS[ͮ=٣a2"n ƍc aw,Kb C %wM'f?% R}rä?v'P &0WxhGvͷlHÛ#\I_5]]{~-ݙ|ޜoffnz1`Qʙ @9KiȄD;wz-@p ı>?Ev*dNr!gsG `.1k}k&s3O4ٔD+h)Ãa }l`}w"x;ܚ"ӡtB9;J&(ÔJGV~|UOfiRyX|CK@Hqg  )in/`PmچlG:l[RށçJ_uwwB2F_ޮ` } zqpN 9K}ݝ3 v7eTE6:j&!9yuݝ6b8w;@E7 *#yNAh~@L &Dr t!+Cv"y^!y_{7}v8#MW=?WX-=wXQD!^{o;VPEnpĻqȎ]y~B'Aȟo}h7t|$ Lh뜒Jq>~0,SOi+ &ЍtaW* "!r}/ݵEe(΢00 vBJo˜f%.J;'CCn ㌞" )@D(. # RD<$0 BR oJew|g|s= /t_G3J -(#=04 v,ahB}e=@.f0 0@`CJ@0j_/?wۉ;~$ R`L-$䣾t~X 8'4)I7#6J[`)жR`@uqx0ܓ흰 h @, ot @( x&Y(b^ K:jw#M7޻fN 9dܔ1'@?a!(e!n5>|*9_o):ߚx<+NuZ2$v҄ Sr ϨVL/yG @ʗ$'xMZ֑mr<=# EF$fvi DY)#]@b -&C"fB::JC +o-x]%m9J0E0:~hh\$~ם۱$Xݻv(ϐm-DkB 4B(,Zrvْs-"H@ Na0 `;!ZԀpΡ@YO}Ǔu@bF#%!g{ !g `.hS  @c3\5n9*t;))r9$ 2tnAJٔ^- ݺzwo@t&g^&/E7~=eUKy^x=̔bo .!°oCR6FmtJ?d8K":<+iI(JRmrybvJCŇh" #])KzR\ibEF)v(XxLyn^G}j& ii` !!"؏z*rK,;gt 47! z@mA5 ;r Y2 `v„v7;UDǴxGػG-n~i>/-c'"$00L-.HG ^p-~ZX0s@ @/@bM/#9GqNj{TWK@ 2?@tB,!Oݟn $}OlZ# Fέ* VZr1 +n/^`Tbq[L/ỷG)̔ZWJbc@4?x GסG[kk5fԀpZ a%sY^K`4]w ϋsDO6= ,>O&\_ u?p7%͟$sI||/HLKN#Gz?1 ǣ;;$X37gN? ^_<}ǧ5 {sގ?q4ws\ {=x0qGF=<;?~.9D.ldsHw|а`F R~;h7n6/8 x_??~r=?p?/4=7Չg x!g `.X~?<[0I @5dJ9(}@2@P 2n4 QvWԫ'{ @ @K ;nt!;`v |RQun@;vtD4Zz7,?E0@6+~M0(q4dGozp W&q/Vϻ޸@ &)!e/nЂҌq `bp*[,nO#p ɩ Ad E?۔{83߂@|@@oF 2:]_5C`0%/`2-,Vsa71>%'|n>{ ??iicdA|3~9.,>1 dP[,8 n/%㬟iAni [i+ŹF|=przp# G@kEr=θ ÿ#';|wni:H4p;Gw_#┰u @`v @ ߁rx~~|JN?zDĖn6qeColc}'{P _+ DL~2 & !/s>N&!8R߳.| @ C1 h1!%t=fXI &b=q(`0 40VCOpm5?%- ?wsIw~$ - G;܋XZ;+6G];ü/r}8 O |~˗&t/] <܂T0(` t¿M!<8Os: Gp C(;^L&B?);a:E'ZO3{\`nC( K?&F~<`}@M 44`5a45+/;/v;rH`n^' ၉JJr7PD#l7@A$5,'1^ a036feO y($ggl8s- >X MCM=у]l> 2` &f@?Oܟ0"vY:O"5<47OsoHY ԭ%[@`@97 ΕFi-?!ϽP  ~A  $ `_HdR3VK/>>@ 4` (O#̡`T0rYZ4쯺ߺ`PhM#BN檀`J@0r@3F0] !87#0c\X􀄴A0iiNutܳͻ A jSӒ Ha )%r N` M!$ha5 5't|ۍ` ~  *(i0_=Ne9wp(Ea0NNg* e8Z2MSx0P` {>  3o9mrs.a3Z[x$0QUC U4^,} '۲ ɠM?:v[?wq L&_<]@k\o;7GϼGPOHp`OJ τ ?ӥߎO怶?̟?2moGp:drx4x3% oiE&  7>}gmjG\>y;?=p$r ^KN:wFoG e`?β{{=zϣ~$;|ґnltgǹz~O\)@8!$O_^   f h\CW򒎶N~0ŭs '!8-[u'n~@ }jza߁x  tri@1K %nk{cM4!7(a+ P `@nV{809W (M(q8vr5El(u*%7 ? l@I oGGq{!gG `.Ot>!Ɂ,=@BsrXq0≠0w@o;B{`:&ZB(&6@!C7!'qpѶY7CRwkmε6y|{Wz=_Iޡ];-'Жƀsc2X q{6?p# "w7|'8tfm~>p`ߺk)}߻?~hxyA?eg_?x#?[O] 0W,XSe:~<6i0(Q4q$x7;Ǿ{@W ?6+\T5iV߰Y$ pP<5q7 } NV`aa6RYiAot:BT/p4$$bߓ@a+<h 9狨` h$HGr\ _Ͱk)sPٟ"Ͳ 0)!pbh[-=C&I;1 N7 uv7 (;/HnE]O$%ȚI& @MP0_ JXM'E`FC>zQϻPn<`n -߉~O\1BvoK[ac@i464|i<ϓPlj؇'j{ \o';k}  p$#yx['Ӏk{XnxuqwF\]xN-=P\I~)5'ʜF)Gh4~D|x\ydȯf/c\' {n#OWXH7=F Wtw:&] &g7xwr=Cb/ 2t1d5Ý2 &ӾĢ(s900FwT1∃dBvwI;rw9np UU%b@n/nK-b6`f;,Ă0,u`ѬW9N( aʬ,b!'\X )1Oy> ;a`1XYI!l&m 177&{\ߍ+ ;ـ`<hR+G\A&:A@CAGynv4ր1BC>0 w $y0-Y?R`ϵܤD jRdҳ?E|G@T%2Ƀ7 O>zpR*p18,ds<~p ϕ(p71?G'' GT`v)˚w6& ?5 5c[i!,=-o3z|{|E>>?~?sܟC?֟ !۬g4w@5@ixz !r{d_}}߿Hyl!!Jqjh)=o1 ŏuef > \$/ ,ha1%[ZV7D @.0 3ǤО O;'/;NBR@@417dPoO_tyt#!6KKO h А*/ :~ &'19a @ ` v3g?t VV10 bB/b)}# C5G(?Zk~s>ߏt?԰ @Ny5+،WR /)?_&,l'>i͓2!h}ɮm #M ;y؅ΐԏ{bgי$w>06:>2߇Xo蘲kt/y+BVϸ=_p|?u[pM&t)/p  n:πO_IJ٢bA"Ȕ9̔|NY/l?Np7)?2xJ)@ |҇wq4X%>}Es$yemǬܿ8 DŜ?!M%n> ,>s{?QdVS|sx Jǹ)c7{ 0@NB(5 !)߯s` Md@4x.&   /! pHa d{-0 `K,!` T@.&HHB OA ojbT$Ɂ ԖV%=@Vc ~u$I9HgiQ;yq0R`Pۏn"cɡdY}in({לj<.i4 (W !#Hac8‡dOX݉go:~Qy:C |v@by4i`T 07N NtSo`(RB x0 D=ō {{gOOtql;{: X@(+L`(M8Ӄ?0rp^ϺЗnxni >ߓA3@`c~1.0wHh IEK23@y; cd FFy W,atdZJkCÏn'l[ˋo.7* 9Iډ'IFُYd?#9 @bθg@v@kPOJ+Xf7H9 (X$i3#M\r 14%!2zНc94RPZR܄ 5Fހ @v!g @ !i!9fLqj8`hi"&VDC^ 1+lWEN;8]4T~KYE0; 7dUfMQD}5SQ(`f#4#6M9MUTeaZeiHnFJ΄V*ۍl*W/ N6D84R-R1Co͛j`4̭JJ7"dD~nb%,,7I{+e@y|- H!Ŋ͕,i0]ķ:蘡YSqR6*GՊ 6+E&ݸlat"mPj:OV@bLeIL>m:F򵹷YJ6Lo 0 hq0/n8q&2M@4%FGbf4D24i9MQFW]mv]qjJrCr)A1[Io Z/UD#AQ8wq">9ԭDM!KDRZ'jVEܺ[V)2 *Ya`̹X2JE" H\.կj_1%r*61[Sh!aAR#FU752_#(:PEZ4B`Nftjyy6źI|NKYp1%ę:Iue8WBbjΙ|Z,͛tk|`R+r'Fn2^k#@`e"4##6EdNHSQiviZqƙq/g&I#QJb4͚6u:MUL j(yNgDdWO%iaъ:=,XCIv_܏Tn R2RPa 3bX$۲@J6A(/~0Ed,Mzd4}`L1!ݷJv&baѝ9A*e9CH@c6+rƣJn5H@QoJ+j€2Nm&}+f:cTd? qvs3>+QHTqo͇1&#xĺwfcB$?%($w :3ߠÇy:G@80C-?1iatgmrӓ$܁x `(v/2twXPu[u@ @0Vd ``P @;vC?8bBpɨB ~/]@" @YPJ姠 o$$fҏgw>ܷ/no-84 d7̞R{QH,+tBo7aWB1O0RL!%)Oϓ{U0od-l2[;` 95)I-#~?nktQ {XRزЄV|t :P!3Jp`(YIωHPߒёpP\ !M Hat'2n!/ /~0aO_;>ePa\ 0-LCH`ܠ`ԠXn(̞ן(4j ogs$}ݨ^CĐ+B?.j#I0.K{5G;HЌ4[?9xC$Uy p RC{\ :i`w[\#c ;ԛ,ZK5}0\L #[('rɺOႲ]$:|aRj/0bz)Φ'1*5$$D%veL*]M d @*i`VHP-=mý DpZR{0FO #ہ` XG *6"#!%h 4bh}x%)ZO:V6'8`hAltI_P> 9iFzKFF{vٞʛ姴pp{̓x<؏ 0p_p8{a=i_ WDOֱ:)S)DI8'e}hoOc74et$yCd5`Mk5wtnM% çfLr"B !T_󰃷#hDHCzYt?6#IL bsub1M*:цo{!| & =}V -ɹFIh^_Py6Q!`="[ a+n xNN視uI_cjF#1͍f Ak:cKJ֜?bcX @ -݈c_TBS8a}PQ:(wyo:$bDD u͵i*sЂ 9T@b_lK+KY P(*CiwV\R`"x1lÅi֫%_W HLw xYgG;fowOOg=㠫w\X[It>mʓ_fF_kXG ȇ41l~3/Di<`þ{<4oم/T:F{m sݴ|7Ev:63o ܸs1pP0.⯹c4q <;̳=7c LBh/N/%| ˄;ZGǾZyk# D*nH>?0VO#{[h T]1;4# <4'@w^^7DSǻ4p{7ͰӀ@XV>e03tqsxݶcQߔg1Ovn\y{= I׾WY&<+a;%#{ @)}[-0P`1<.w |8k+j/lO |/_`<AhoΠC&~ `878W}Є R2n>NI\j{tt||I HGcH bB ,o쀸 N6΄}Xܓ @ s8r@2Ods6& C/dJ)>:"v<!KoǸ46x lٶwdl4~1?o@"x۰6q{}P P~3CBRퟥ |)Aw'37_wDruĝš 5lHf _H0;!D~D nlP@>fft=>ap12_uo8$DNN˿B zrvEϺ6Qu!NsFCHEJ( &' $# :F̂5#€lp.LCntȓP?&,]Hu!i3G `.ɻ/2}ɀ rdԥ"MAydA.Ȼ"H5Z$ɑ$#X38>DZ;>>&ؘbb4 ',I-!=#y/H$ &I1ԣd\wI('1 <K.JJ% o ;ԋ 7R* t?Vt^&Mq ܟ &S[+ܚU"Ir*"M@ɓ&/ @bOt@h E ČQF&<!va1h K! _=/PʘT,'Z IG Ay(Hƀ [X`?]P)!24(^JP0m%$ G-(FI% I!fvV$y  $0!MPrP0 Y"C|4n#@Ѡs@|.Bשl; T4 L QuP"$\r$ȨnHU]l< &$RjKi5$0K%j@rB0 h @0i`;儓@`9/~XҜӲPICJG( $`H @)( ixhHRr$#m E7Y2ufسC'ۢ#J ptM6Jv흞vbq Łb_0D"D4G|)); IA^H䓿bF7M 0D& !)Was SW;iN NuЄDP!}dJHb@V7<N  ʑQ, NPID(hAh䒆\` TBaE(cDҋ L p QJ @|}Bi;srny'+t~ ( ҃1(4o7VBSK%a `i| O#atGb ! t(xA0 @,z`r@S1hRR@j /s/` 3䞰LI=7#['_Qj L$b6CEp*_pQ50. @"@D`4pIߍs$jGR;/wZ^K ߀emOHt"|D T2L !iF{ `.!k1O|'<>Ioaim z/[H qab$(hRSߊXqawzJ.B@BDMQ~/:H""04r1GIRRH$?.L}kn}@]1`*X`<0Y8@8"Н0In#xԣ/ { 0cЏø'n3^V-C; C?l* BR1[4Km)x@e 4b@ ;_ڡB !7冕ym%oAƬ/t-E0hvϋ;IHֆ wrNO<iγl%0`;#_l'&p:x _B%ҠCf_, y%@xb?ĢGp<"?P-P &0>4:*ݫQ->[=T`'b ZzB sVH@ћ݀oXa6$ qj0FYpf En3_ 6_ ?–q|âsWu~O `=MH"K~9FϷZ]Фl 'Ș Sy _פ^l׉c 4 Jxkc f1yvF؟D4nn`)^݃Sʎ H3I:k ! ]+*8H^é[Ofmw:6"PBۂrp,I~mJ8]Hdv!}Բpp xŻ!i$iZ@W܍zEғ)Hl'Y"D96&͘:q)_y[2^aHo)~iA@ ;q)0L2Un<[wK0O>)]ﯰ-Gtmo`~m/SHÞ% ȷwH$B3} P))kj %ݑ npR 0x.0"agj r0`=va ©J$>"i?'R\WNOYT8T/. ,@ niK %=pFF/#lEC(H~tEd7] 7*{WB0.{bZuوN $c駙1؜>ШT Y ᎅ)+ueZjXFRAa|44J x $8A?;{zOk3DpМ5^`h  P`N3?~a h 51LݞƜDs@<OL4D!iY @ !i' FPr6S+[Vp&Q"AS P͌.HַZ:I$+HeaKii>Q*$Khq* Q$B!CP^ )7#DTOnHnEh=p(jN8NHMQv>@Hh[iƓjJz|EʸMxmŝICTB6vΥ$okfMZRXp9m"b$ݑ_K&4b# cRRFiRڕѧ+r*[,t&Z=Pcbc$D"5HI0* ITIfYU]iZq%+t.zDu#CxSfR5479Y76j8);!ۉ$*`7@Zlm@JUfXhw!esTݚ^5XcO '%tVPpS!Y^WcMizru*Dƶ$"-ĎzgUJ*jmqG]1KVi$jL܄C#"6xٞhK %31ڣpUIb[ $kHq^A {?^7 %+`c4D$$GM  MDTYvYXeqםU#B@݋p@lU/FD 2ܛ7R\uaa8eD8KBISn"4؞̆1ZIH(>e%R&zRseR4hM2AҟU^Ty0x빐(kRdܳꌵI&c Sa4'I4I<kdk3^Ň yuBPrH4 aP0 ay%3`\Ok@ak: 'd-|ElMWv=vhXM$??Pbd33EOmbOѓ /]l.aw%ݞoKb 3DȺ"RH`(F Q7$y,9 @R~)l&) 9v>$Rx1f1~7o0Q$`+Ft!J"#_0x}\P0Uک:۫UFUBd^urjM]TUP:nUFAkWlaJ >  \J@ bA #8Lɀx H #czx4pa'@ĀhqXG$nHIc / #d2dJ"`?f,M, O#2_DiB99U%Us*1U@ RQP^.**]PVQU܊0/Qzp8݌TPƒ`0&dCHd2ia%_CC@$A"B@0a4&PrIIBB `O> AH $`*ބI꾵Wj:!i `.Ȋ& 7"Sr* P0EVUT"dEH V U04L @nJFH@N+?А<[KHA QiG44`  C)(L ,l5 $fFJBUDF0i`=! < lA$0-腹ߨ|5`9^`2+U4TEUV]A$TE]EȀ κʪUr*.QuqUZ+.]HQ2W&. HT)H@MɁ A!co& AC%HoB@($$1@-H@$?PX%FDHHG]F UAU*\U ʺ$T UwUz.*.*]l<5z I;@ă?ЏKB4|d2 #!$ƁH`25EL*@*@uaLB!(*C (Xo$ R e44aE K($=@bRK/H?qe!  9(MG8`Łn/@ , Z@4 JRxJ&!< $x7BD0ЀZ+W ,i L+AZrP7%$$000Q Xi5QcF`z IcK(0M@o@Xa4&_^K R6-@ nj驤 juP@#= @#x$ T @jK!KHi(4X̀pxJHcF톀 R0@]_}) `'MQ@9b aOa{Q t1:YNA0 Hyb?J!$YRxR#BTbS2dnNֲƔRiiL':""fHCD"&4 =IFHBސ n(D3zp!2A uWMԿP NU @!| !Â8'O`?@Qh% 9^300AD"O I' R9*o,j(%@ѵDFd؉ZOK n!Yn|H@;'ߋ~9#fH+R[BHD|"&p LܑAtq@5^QU$(aAiX`i$ 'NWܤw?8: +0`;&^%ډ ` ,L*P:yԕ>t} ZO ©WjTWPM@;&О04g$! |H15:(ky={'ZDFڈp(C%=Ivp0#L5f#?J@'K@~@/+8 PxoZM Qa_1I`f^~t!zB@"KQ/$'Ћ dQxݤUN Ϊ\UJU7i T $2_IA({I'ƒ0Ie>31$$ $OJy,I%0` `B: 9%}@L(?VB#$P I Đb BY A 6IXI`L'@}lH-); <jD,Ly<äbj~4` /}~~qno 4][dvmDZy(#Y!ݒDB0HׂtEM3$L}T< @7n"9sDZ,Dk؈ff0 Bh dkM|R1(NZf6\o 5>;_vF=Ԥ}`6f`x='DbҒlOy` &n o)ݓN)zھh4$=+K ;|'!Su{V'mr@nѣ"!b ;+sA :)A"$3!8#q 6Ǜ_u]S'p\0wd\8.QAtPY>xuBZSfd$arbi/k%ekWHF/+ l!S0s`_uw[^nԵG!qUwwSXwxL:?Cb_oqK}0l'52=aۄΊ|E Cl1@].Җ/d ")Znx2ꃡW(*( G3D3?\U&ni,_j!䧚Zywb;yJkq  >r@GdΈfD_M]%ݝd! 3$tD"/{\$^$D^y,\%ܼ no 4[Єmg{Yqr+XpY'VOCA;+׋t)C!xHHdO((+ZC$IZYṆHK1"^`81!YJCȴsZs^ K/֚ĞHPCPKBT+w^Xeh&ͤN쌵'\0lF6V:{'gJ,0Q^X0XwpF S0! {a%-2/i+ k ;I5d!k.쇰ad-_aZ.[,wb!i{ `.1mm- !}Ax/, !=3'݁LDW&wZqQ TI4p HqAt}={fdWl_tWݩ9N0AtG!D-,o{}xv,IY-M%ޔQ L* ;Jwԋ}a1i1'] nہq?BsؘCP NܠCmVct>JB"~%!s  +>khAX$z!E*07[ ]p (CA[pH1WTE@DXB"m%un>Q,kZ%$Y3  JFm,$uZ{q-O&G PޙsQ Ԋ9\w[1F~ _#ē|ncȏ3h JfzZ֗%'0}=p ޕΈXGcO.u\tD0' 0kW5 4@ Hv6RKq|&npx)ZBP]=DaʺWhCu%~51 ! kOSLZGf4rBwDOQ asR7v5[|p|ԀFM`TRV%Hw a\!FJ6PڡPO'ɒ2 "$RkL )% !QiAA= {BKr- @ y;e # *"IE:}WB#('   hH7h tNXd$CI#KJKJJd:H0$BI]XAp%pYA!3{&,Q P ?[@7l/@?$I y2d="EcIT.0@ T ב#j?\l3L JI<;`In @Hi4 ( 7Pބ@ ` HԀ4p`EBP4 3=F "`$)N 'В_@YI(G9@Є&bdܙ2kRd I&L LxQI>"^*ɪZW42 $XaoÂ+>+vH)lU ~+g^=!0D¹X4'# -L + $O ݐ^B8@P ƂP i$00?B%!$5N$ɑ&4Hɻ&ɀ ԥ"MAS"LR.d2*Mz.MT2 GрrP4 8ḝwԑH$zGwە4ICidXV $M X`T 4 A0%%! %#IB( IP *8P'SR*VhW `Tg"D\5U u(+}Ey2j @"@ ȹPDI&E}L`N F܄IBR JQ 0MHBR8@Ԇ@LM)H#}a5)JĢt@pX 1Fp#a?'`N;^_ (' `$=IٖvJᇜ%VJd+ q݇QyPdkHvnfN5AQ2CTDv#gbK)*7*e aWXpauίK+κ:1n$:Cn819Iʥu(qU5X6iboqD!IH霴Yn ".*6RSD`T$C33FMPIU]meZaiZyJ-3m7Q\Xb<^h4OGUV߶$иrᨙJ2wJ6al쐤ju#KO&ܮ5t{ZI2bELmqĺIao)KԌ̩S1k4&jaq6%Z<-Tm OcQMPIkolmXrۂe# qv~ iEiQ8`x85>BգmN%c,E>j',mdԭɢI|OQ]bT$32FMUv]XYivqqylF(u P(I]X9R$y>99 &MA23[ZƠڴ$DÉnu$Y"4qCIymQIN\{!)jaJ#b5ASIΎY212?%)yDrUȔImmđE2n 1<b ƧE4P[nE#ahkpDB\ ~F$3 JS si17菩{7uGq 7oTp AdȑP*dUUL@\Tb` M0P!B"~}-(JJ4'I0@!}pJxH3!}:  xS7Hh ,W$`/(@Ґ&6Hq!:v 9b [vH&b.솁֛Lg`. 'n:Vm Sq:,i7(P C|X`&)9|4mƴ%F(`;I:&!_D& " N'EJ '^@4iqȢbQ(MId.i:榀 ù;0#q1!CA5Wϸ ޯO&<@DRID2CԂ<d.u̎,%Dd|C`2sRh#@3ǥx@[Є!D@?G %~3V0i`W ӆOWWNqo的EW5tڠ 7*UjjIP7H 'o-P ?G !<qɄ_7@o#=(P-$'prI8w J&'XpG$ oڈhbA%Xpm "D '' B{jڈJؓ -Pc:&@i7!(C,HFVm E>iP zK;bMJ@J${SϾǮd~_U9lG}Scx0}knBE\C;I1&EL( @K`=1 2@~oHP^FCw>N%DנWGoB>oL&m$rnAT @@"1.Cw+nH5KlD>UC9ـC\kW-?q0 9-! c P~?%rZF+c϶ia "=LO>/8QVR}tgowDF\p X!KOsZ{;"`9hүF}Z=Ψott_D4DD*$73&-}~vuvOtQ}\3;wqTSw>`ѕ+$B05@<j/ €<_k"wYٙ>QE"wT;q D7rY]7 xWwwKwa(!O@BUܜbGFڈTK;?~I70s;h@ >?>;̓M!S ؄";z/n.Z #wwn9R2=wganzKeS脊h[+D!, ]B._fJ!~TOr !s3/y.SV*@Z뻻\'#\+$?!S4"_w4:GܚGG& !&sVUE]wwww{?%]D6 -vy۶o]ݤ31J ""ww9ZV&wwpUkȞo P45ZN[@v4[򢳻ё݃![${]"~u[ٟ]2#ݞ,v];Lb]٨NC&و|C$g.!~s y|= RMff`q c ;$2菽-;hw">u oG"=ɻ)`lgC\lOdB<=>B_aP,|-hy]b|A{4.`Takbc'S\Csa9ܥ,s5CGK1 F_M=ⴾ8OR'AUV#.ai3&D+Y=!D! Wa {;9.`sL}s7_gԦꈣ٬z!U2=vfvWvOI)a$?Çow);Rw9Z.Cq`x a@KFHR~I8>0vd~_ff)CyT1wv! D4ܵzwwq\"[%in#;~coG6$(J6/@h@k\BOݵ؅ ?RkO!iG `.1mum9~ $19Ç/x"dI4Cɍ8[ru?:`xl ~ZOc,vUB7g'zx  sw<~Swt"=ьa4 Jl!CvQ9L1ta z2vJvaxN@IIJ )=!,!$PZ7%0Jpe`9 (DZF8j$ߌIA =%E{go8XpR)Y#ב8}"L޵vJ̨ T @=qp)p<$0jQHHFH _0@Q$AY2P84B5(B0@2jPBBwrp )%p>-  }B"]W87l nI*#R@g]@ԍudȒ6Jz"L..:qPD ")o&.z*Su *P* AKME{0+?{ڦDQŠH a RC@J1M #C N$HԤ00И_h[@xn!H_e$|0BPGB~@PCJ  vI\ Ōx& 2>zB-a dUAxHQU訨"@ *ED U=@HzPj2QD,0 C0"~ d4;`)cIΔ x4P4LCg x(@֋ HJDcq.Id "OOt!1$dHЏjRw # `%14 id.44!$o(4$%#)8TA$DuY6UTb*.**Hb9w$EU\\UT`jrŁ0O$~戾N,zv`a@`rh/PgH p1 ?TL  [g@+!5$2hjw$r28-]ZUS@}PV* 7"}Ex *i!qQr*0.U0BHQA |V C&jB!D ,n, IhN)XCt*#/0RC!%*P@HjQrtx nQ4+HܐJHؤae$%%7LZK P@`@iY% H[1r'_iI|<Xt7d~J]*榛 YUPR"ML,⪴UQD&., Ci0AC K'䌓$?# z>H0?HGh4/ IP%`PDMЄdT" HUx 0(UT ޢr. $T wu EVeVYUWQuS0qk$T^`\I$!k{ `.!m'@{?`M +E@Q8 $P!ľAH@Hhi ! ()5)RĐ`jq'x`90hN!ECJ O@IH` ɩ&PgH 40B d1@7- ] i$0$MK(?K@i`9A,QQd'%+J|ZHI I 3PPHJ@-&X'gJF,'d4^ 8-j驣8 wuQNJFēB F 6$$@诰/7 CF!-,7Y9pd9xFNπ{0vɜɉ-.7A ^ \"&(% -a{ls8ox~B9GވK8YSkbsLD<ͺXR@ $~~& |? %ϐS xO[XbQ膆L I1GR,̟,qNH8ԇLM o81 -#=NtAECLh ''ni(K `>p04 OpAgifX@o SN@v~JĦ0ܚ_jT4rs&,DjO ©WzTTYH BJN|P0gM I)(䔸 G5 d.>Ku޸DGa02hB&IAI+ w ~Pp÷ {^8^n/7HqQd4jqxdc C0g/&Z䀅 $WR=7#D& d N$H@Rv@J 3 B.bZ ;8g8+tA|TB> !'_J:7*Uk vZMOX7`*MɯlSbL/%z ;+l@O/`0V+XBW&pLX #P"~riE&tOz"آ^ eSUR FؒZ,Phh#C(!Ud*ZяaxX$m8fm0*Uj zJ:OU2p I (42JJU 7GH@TnLJPY rH -S ( 2Jg@#|[ہAflϠG&ɤ$dO @,zs#bB$s]NUyUKU[Ꚅ< uT`NT$`O3 Q:@z@B cH.05ʛH2I|ЉER.]sL)SXI$y(4$a$fDԒrR %)Xԧd JB xq;F zAck Ah57(1 cegxiMS`\%ЗA2uH`fY,Q5m d3|j눛Ǚ!8H{g` e'*L%j RJ Zߡ@bKo: ,jrAJt'Ja*|043 bzpFJp"Ȑy|=!6NGI`T)]5fhb{BN5;ov 3-;.Dž"wpqSMߺTvO HLt7HJ3x= h}њD O`pY_L,5 *`"&􂗛!k `.!m)YtIE(xruDnuADԩ.f{8P2ac_deГ:SOR\|*|w_UQyܟDv@!k(Dw8#]pݷ\XQy$Ü} n6nta+s l7$HIM+Q IMv9{Gc2y!Jf gN$ GOrةA_RK`N%!,}2?OHN}C%=`+yaIG  ]| t0r r+G8l%r0?#(lovPEf({i/3ȿ;Op"c$@ÇA+eɹALN|4go(,(aKs 1!n%1,<|Ci&I<{c7|. 9 Wԇ!pI0XMNk&V#u o#hovBEwWM $|EZ&^3e%RZ" 5}_^MmDM+UpX4 6"irN,  &/n\k#h*A1 +lI2)桏F bOY2 ̎،~ D&ÇYbsE؉e(vRsDoTxmˎUnf_ $3HjUFnb״L>cʀ{N̻H S;l6 !݆d廾*{ p=䑋*{ݕ!>G!7ݖ^_f1ab5^{]ay|=(A#:vm`wgHU5Oh9݊|30;.Ǒ9n`3#{hc9t >  ݐn#D }]@}hDς0/ޑK@%iL&5AH(w;!)O0IpҰc +ݐPG(v* o BLzdqZͨF_仺v$ti|"%A#짗N9kFW=dID&D4s{̋ww;^bِ {48OX@B{Lbb;:zGhegb- NyD5F0iII? ?Tт2=KvJPf (`)UPi(XiwDKu uzKK|==?\s yFowydi.tgk/ `7ěhlZ{M=X9ϼgH J ;02_R`@PB)m@/orv~؊Oz!PVI-nIlOn bT}Ap(V+h> LEXtV!M̩QuHX "$8|**$5%!I+d%!- ~K.ܓ"'z0f[n7o>6M kw,33zC4 !yxQk>vb+=9_9҉IqTC;y2RDpbίfO< 8. E>41c$>Y/A$43E8@0O JXH0h3B(z"'{l{%Kݍ !k, @ !k33#36IT]vaaZmZqkh7~3U'E mJ;\![r(Ֆ*QdRDHҝ5V iUQU^th5S^%9,l1*䎔hq|5[XF5ӑ+i?s6 ЧTQ(_eunGW)y|ʡZ&iOHꍨuIvJV+i$ Jأ8̑|iŖxlD,5ZyB6ǠD7 Q]N^ee]]jrs#.8i:f&ueH+6L-3OPi2Cbc4A"BH&4YvV]fX]XiǝyZqo_yo&1i#?ulfq|8O; !f:{˻ZNȝWtLr.Ør8ƙA4KPwt{llmIrSӌz9J%ң"1=IB|"Yu0.dJ+Wvf 1:Ouj2qSlt75~x-pKaJԷN`;٘CE ZQ55QOx4nb, `d4#C1$[mt* QUefXeY\eey]em=9K&TRJBpeVxIWIhQ*+WPٌֆgBf8 > ԗsjFST/)JM(PR2XWfqi)Fd-N/8XlTRIhY$jYM[!S(TZu6XwHe_h;.kKqC^nmU,Roa޸ZE*[Yٔ-6$HEӴfڅ*/*8˶˖(JUYi=eɎD}-N3UDVr$6}43LR,$2H]MfK'qHU#wcQpw-ٓ9hb\jn?&]_L9)F2 ! Ss apTG5m2-BWW-:>ex1.T~Ӂ0bc#34#6i"ꪠaaVqeqǜy"w)$H\nQ[ YPבiĭ*r6W-vHӦvQn5bȤv*MvD|R(c%~|j) E1HaU*Иn S*yn+׮ӧ!$IKI줦Wǧ1v$m;uL fؓޮik9$IڑG*&IW筝Cm[W1v&[LH5ܧHm (m08id5bKj1@WƖi}\*M5S\ `s5BE!FIjTYeiuYmZeiÈ`"/qt4;/̺TA[Nm!pֹH@fkrH?UUJ.⪉n¦4N96ؒVu*,!k@ `.1o5Ymu"%}pCz{DOT$lЉ}Q G v+Xt5ѓOrl<,>wfD }`ќ_q0,g@C cF*{ d#TŖaI,1)- @xB@LbM@!&)?8m] (,eyNRB Tђ8(U` lxO<@ HHP2ds;s5@`PXɼB! yi[)ꉠ/iɀTb,/Nx$ٲ<T(^ @4 Q4?oS.#)}?πbذ`beI}ONu6CViRǽ` UvAEyp繀@`gb&-Y>3 0!% bzI_5/ƟQY;vĝ HPD4a4ii_OO"` Q&b:/UGfZxMI{ "P^}&I Դ/u |~:/. 3I5%Y>ɓv+^ya]K6=ޛk-֏[=? Lb Ϣ` p".>qd!kSG `.?0 _G#ӐHut\xF??2si.vx7Ecw/ Ջ7\7"MwG7o6?k-n~p'7-c'O2@v@L LRg G%6wwI!׸ܞm`vt#ĿXWIDh 0F,3= v(;qg_ɥK/'"3|;-@u3gmXdp# i+ | Y|o'=,XbőA֙.2@#B\Wt=K9?L`FY/?=?p#Gz?1 ǣ;;$X37gN? [ 'iE> >"8=8׸psO qx `y< }7mp7 m'FakG(? s2\;AH\!nae I\n oK$<}M2\ ?4%'An.,\ '7뎑qL\2@: hbPi h#'ٲ\'2Zpww6w~,?xy V~ 9ol_>GkߚAN2 ?xj鳉Xao?OxXnFȾG>#v/4҂p^?sGpf,Oh5~paҷ4xo$Eq~' @5lPH }d ?HC` vXφ}Vi` r I_"Ӝt~@ @ @*pM&}-~?unhAi76KCx a4*L) +'R5!gԳo@BL Ł^uX`fJId^>Su<{[@xHbq\.#Y fJ B l5(UrrR3^R  $N dYہ态#PWI|7%fA _h3J| 9?yO7Ge^ ז狵R,2^lwt1>t8KO!kf{ `.h5ǓX>{Xhm[u] p"E/>KǓ['8ŸH p"ld?kp# [O%-|%͖K K,i܊m>p7F?.?m>p7qs,v ߏ<{@"}}?y.>5߸Q_p5߸h[L"t"O{i/Gi_=x<,.#m~F=0s܏{q4BHŐLuƽ A&?fv?un/7wp@?`1!)HߛuM!ѝi[sߓA& ؚXbIv/PZ?;H W8o?&hҰl4e܆(NY;~XϿ;?sw@:C FR 5?1ap$;qR ɡ0 IIdhj2Y ,VYl=b~?٘h>_YmlOur ؾy ?n{ <.9rxH,f O]w&^=}]̗bxw9&>#@?F=nTwO# ? %㬟iaG@1n'$ŹD|.h%/- C80~=|=}i~R:O\:'ǼI?Oqx^i~ ^<psYtwp`~cý:E|:?5ZNAHb*I{b@tCG~t'Ph@PBxONv~Lh `S%;24V/tnko &Pcs;yn#$Gs_GHK&?;6/IuU ' 'j5 \ z}߆76K 47wi woǼyG#i|p"A~l0x{zu7OsN>3/k{8;>kp} %n?:<>B,~ Z~FO\mп _qwPbiD"aAHF~ձ|@&`0 ҉9JB]$dŷ|ަxo(LH&?IieYqV @bB0cRKIܲVs6( NPxюw``s,:/,XbQJ,}(@0 @!R̛ Cq7B?!~p@@ @)'&Ml$zrN 0IL5,a@4TLP @vL$~e,ߟ|tuN7 3NHܜşb=w#!ky `.YL@0 ҌM!@?حxI|`x.1 @', %Y)񡡩w,F>t8 `6*ȼM0@wpSr@ X2S{Z}r4,CGJ>Os9 0'̄߬B:r+` @@L9HLҐϋ)%*IvO2lh/&W 6&a+'7z@' 8އ@j:Sh}ݾJ>H217rP/OON?{@ /5( ۤ3$g˽ hF&W YxX {3 IH?/.`:pbl(f/PbDC@M$cv7_=wD0:P(:Ǐ\`Pw, OWOlμp@% i&5 G7wǏOx !=952a Y)}8ֹ]~mp@ѝ.nz 15$[qgϓ; [4)4 CJJ?|L[i6I#>7by> 5d?4֧y@(&lٌMb@Q "@HobcR;g<'`(MG &'%;~F 5ڝ0i@z7'ܞm@-`9jH`; I-!)'xx2`5a:!@qAd6ѳy@ ha] He$o~^W @#&:00 d4^x01zZ[\@X@^LaG !x!0Fۀ`C jSg,5*go8&4AH@bJum E`Xo-g!:3TO I Š=H@b0bK ]x,E Δ>n>H@2 &(41!d!;ǿv ڠ6+`M&O1 (A3vWv!xl8ft|PjAD^ίs`@defZOpV">nHWVe2vcw nL&ìMS DcmrVX؝¨bd#C3#4i"Uaueaq\iqyܧF1:sSoG[sHNʖb*HQ<5RtՈzҒ3uFV\6 zMG *=mFI(qbDm&L*E杫iD>xec.ƙ+A)Fi]sw `xRu\.D ms7%t7P2k[m(*JRH4L_4LɅ FUj۔\SurZI%+!4H٦1.ҒXr6$ׯ6NElN8cD3*V޴`d223"(M*ӔUveaZ]Zum^usM||,VԒ!7Ƨ@vՙ6H[!{ mDi U Rq ۬F8Tҍp1 Y-t!j+W#J6I# 滷$[jHymp̎DkmT!1H5Il(I[IS4Td6Mdm&^XJۉP/VSo4NC p^01)v <`d$3328M *SQf]uaiviP2/ j.1E6ҷMZf)BJraXzBۄI7fU#'5&ш|کqk%U'S[nznb||ɩfٻ Htcd\(7U޷l%{ '1#0Q!Y2L؊HDJJTĖJ*bt[Gidu'&۟qHvɄ(dq!k `.1nlw ŀ(K25%Ko B0ĖE#x yrn@ P@ oO i?P@|ehL KbZݿNuusaxI. w[T`` @ 3ϟN `@ }vRsv] v@3BX6 b;'evۏQDd@`Q5,N~_i 9h\M(4p+$Nj2qLShWc^OB0o)9'==jHbH>b^@3X5j;>|6 ^C=5~y<4{F&84˓ Q|,X = Glpċ w8'83%|F{oN,~E 8?K$̳a󇉧 |+}s@7ĚWO.qs?6uSH4|n,YO><oD=|~I=$}ݝ`p;NtY#?Ke&@?HYI߹濳 ;1ݺS%~ tA5Rč' GK:8Jp 2x ny0G`*CBw JZI?FM nMc.h&,`Kwr` % 4;&WGݰ$ٌ|W O-ʋ`M)(BS t. b 9~kج8KZC@qh0 pTP))/xPЀAgVb8C& 9VtaltF̴CKif?V7[`C! ۉ'@5^X Te/X%8}b@wĀ]b@b.ӁZ_$]'ΒnRq?W!3 2.<7mx m {̒o7&֐l@ ,`%r9<OZ߁Ӡ9=dx'Gx:I` [ Y<;k(\y=V1 O4$o$Y38 PȜzr]v@P@ {ok$Sc>x!kG `.9>YNql;ӝ?M?*B=X fq$%?eiǬ4}OX0~lk-'܃"q]oow@BOp|ޔ\CW0 -lۛX V8e>m}<{ Ĥj `ywybC(B ,#9B "i }fMOh??Ā_ޢ@w  Ho+Ϫ5(ivdk@tIg<1$όzM,LYesd7f 'ȢO8O<> 6+sy>Ƭ__SG<Li< ׹?ύӀ}a H H (Y>Ѐl ',%HK/eO ~ok sqJ?5r|$yoҀ9J~uwFY/mH28p0>2}w RiCJ,gsN|O j-#ϧ%~[/ԃm8Ǔ!M%Yw]z|,<'`̲kG}0R1/=H7\-Lh (@w Fzc @0h` @`Cwb` 4 & 7ĆL &59}|T \$ ` @Y``U@t`HX;W%; V0<!!!p+Rne) $V ~u@N+e%#>zTyyPraD2bPYFݞ`L@ IL Jėۧᯃ1UP(tB+Cz3b3oN9;c똾L|qu$ 3Vpw@:v K!\7 3 P ri{#Zc0 Z2h `3! AbY}@J )\@I3_/3bCћs` HHRr|J@bZP昳P]a_*A H@߱y%v|r7cW4@P4¹n1  vC(Lp+_0[?|3I ᤴ 4_0 c׆*L qi+2ގI~??xOعrkFxmx5v?ERI>t6rXY7ft>\@< %kT zPigoZK)>\M #}ɡC q6Ho?j*V9pi$ h5$0͹qɄJ]&% pPhjq0}'r{G-y!k{ `.!m?}/K'G~Yd)H@:`ZI@`g?+$M$`P \_S QI,bW \r 14%!2zНc &|Ґހ B sr~? JgvfN2# @tL &70j[?4NBJš! }*QPHbP^-ϘB!bBF󟛾ω)7߁I]/\j1` a WO:P H`Tp`$4WGo =j`Q(7bo/i,0elcV45%m bW1$  {UCbV++~Gggߞ$pgBJ ,S==I9%[ g{lֿVphel`u!qw==X.]cew3Ppp{/6fOpk ww1:6̠g 󰛏P}[' /:8 RZ7w1 PJ`\_l}y^2{gJrlA W}12D w%d"Bt̕ _cObHvЗ`9ut N;ompwtGL]Q=V!I_:־u:2Ot$8%OpVOs;b2uO]޹e  3lՖ7`BKWUÎpAOm=C!+!\ GxP̜;jxbp2 |9wDv0œڋy8wsOOd7+:@}09w6bf}/ &na:CLjbadaAo ,?IY%J&yLn!@K4VgK:[8I#(cʙ%L1Q &1/ ;1) |&r~I*m$!k٭ `.!o ^_Dn#'1ՖQ' #DxL2dD68.o "`.Jwwmw+=} f!7:өw5 ٚ ^A0hk(]?`39!ef %LmwU}Ckr.f  !%d$ V! s`C8~iD: -g5 P3˳8k;W_eOm| $G>   /'c4!&$P(P &aE5;@&!^|#WF_<"gtܝ{4Wx@e"sjwH2mkht."f{FrOR1"Cf3vs S I2NKw[QXxB&z7 /;Iieuxb=N<8υL(| AnȄ`v`cp.304@d1#0 W8+g W>aP@ xK}tJD7vABavw0 A*S $@A )]\~!\CB$Va?ڄZ$m=+!w-)~u;1 # "#pR*{Gj;ut } (o%؟tEOZuP/oή0\NPV^N =x+wB!,0Ţ))G ᄽݨGeQC|f*;KB,@_%)F)"i=}ܮw\9B6lR?U-ξUŅB{p*V#rCp6}:r:R=!m>(|;K6*X\JܮjF&ߝDG, gB*w_zɜ ##[1qu}"gC(nBCP!8HN`74oDSvwc"B-N K!_fb&DT1k/];RX yd;Uxe6"+5@YVuG:kf˽hD)]ɆAdC ٟǿk HjֵO}lDwMBS#''jq)`8)! !"}WrbAm?"NvK0 "SU\uwᥤ4$4Ä&aHWxG$Lʢ {QD;: ̼WML!_d;/ ""Qχ:e _uo{hLV /jx% NJDF!dMɤ |J A=''Rw-u o_=h8" _KpO|3Eil!I%C$eTـӎp'<AFM ΀b7DaÆ9\@(m|Xߍg#9~ %:z|'L\Z>n@@Ĩ^9Oy#a /?#eB$&nEGᝲ @XP} !k @ !mmW4uQ&2QkHjMN=ZAbS%BEBH1 @ԔYYveZyƛmM,Eݖ?P:+OjO(.-7ՉXyUxaXi b )mHQĩVҝTqY%%յ4JZ7$5ƤC3#{_뭋/^*r:nɭ/'^BI7Y" )E6 ʁT`:$AS]zu޴TU!ɥB lV/X+rQuʈXխB ņl2gH{>q}"57`S43C36MTQVYfieq֜y׮ۈs p2rT. eDmGfu}vF5$RsZCmJjYP[*EHILV!\$V)mXmgU]rR7#.6ҖJލWxʹQJ%l‘[qL'S\}n"w_<4:Um)Z6aZ٠pmaH:P+$#k%Tb*Cׁ4DU9`r072:$\ Ucbmƒό J!m `.:I'ܒ JyEBF%h$n19F(Ηa8؟Rڒ#/;sq_n GvVqP!ؠ=db丬G$H"_[Gz{"O$vmk'#aA|Knt! ?-͜^T82zC%.PF6 |?w1݄fK3W0@@TueJBj]8Xp` C@ maI2Hz\-8$"%u#\\a"PPiTe(_@)HB-)A~ߛh_ !~`ϼp-J@5+d$_v%"(3ԡM<]uO9wQp}F bc|5(!@~oi:@(ғ#-%Zq-j@4#F[ō@J{7ɏ_4_m-5<14pܡ ^kubc-Ԡ4BC gM:ɥ!i)d1 _FUSMWJy5Є"M-(- &T&M/dd#%(j@V{ &@tC/ F#'H00#xJ@cI?.2CA#P'@H$75\]dQ %`wD! ' 2^ؐA~Oj;jyvRu_U/ՅPa/ ĕgϽZ9$$XKv|3*.>~#膆(O%h "Rz?/tr,Y#:R>QJ-ujZ8xB{Rk2V_UP1z)O$n @=xt)Ǟ,}*0@v 4Pj !~狨j}=6` ,3hI_5mB.e Bq A~e$Vd,XD@3 ( %di@cɀ"J/NxK <=7>! NWO {ӫ( T0R`b@# IY?Y8@' 2@ '4 @vCI1D`i1%1%] nG, (%|t*Na_\hL 4Є *9  7*(r ɼC `|%l˞I8e|zQO D03rЌz~]NO ϖiyqac F`jbC ?7n|@(+Jr4I+ WӆCW!>yB ?t]]n ø֥ C%*X i F%(9 $ Q,nGGvG`!y|8@4`H0AH3 i(hUca%d (Hy@!ĚzCp<KH JV։O>BHKN-#PrQI=,o$K 6 &ܢ! C&^zxM@Ł@ 3L&^~BJR KōcFxA v4ꞢPiCr>g*GUONm;g 1,& :0$~kGO3Q r PC o R@; , ~X"(D(VG"YED!mG `.!oRD.4 ݢa4)c*M b"Z.,Q39iڠꀨ ~NOğtRkmO?T,x !% ` q?Cuܞb44P2N8 pdPIX $ȒS ?Tn ޅ+>ܟD]&!- D`h`p' 4jPBŔp̔s'z!&Wٽ!F9Q3_3Y!$ a@JN|\a*1ƒHQ7@T) ق5s+iOK 0d w# p*/I݂ Z ` `JIoHDjpNJŀE&(B $ā0S4(x##ր NtnϱL^}Ђ!$.1  2;$br'L)!#m\6`O,^ h7_V p>>h<%ėp  K!'hH@ThCdF- }y1e$X7S&ϾJ:$3M! OA:HXooF~L3x n0M%c̓9Oxu6-J, "f@) RRY I4 FsLa40Z| N?w7Aa'0Cu 40|\#x?09:Pix2`Ogܗ],_dAG @+a(!gH"pU d4%aD2-ZddOIӞs1B !Qaz\8X1a B;b8dӃC6͐߆c NT0H@}nte[AAE(pD1$IHHNW@$($,,a, K00(C o`Cs`qpϽB5K|h@?Uoڑ j3A82b{ 2mMԩa,(a8`Uvۋ8_ O# $[D6kDdѱTC#|4u;}1B6 & t0 W"gnL(ek:ApC% mؗp[tN*}ҮM~ lp"UN Ǻ# UZ"`DtI" 0& pA>9^ 1U473Wø~ ("$ pmQ$v'] iZkUO`|?&",;&M W:䏜!Y߅|WIcS ۬OgX9_~* &y~%\g2FR #O"G~P`oKUc A!z̏r0\㨓)  _{N$PZ8; t7Fq@f bA7bS2o킀= ,V8Ov30TlHYUQ wD?@J9 $MAPu x $qix]$ͣDbn.hs9;.~; a0CX$M Hp0b:Vb &$?\L[EM~N%xU* Û5Mʼ0 U3x$8.;V^2H$w2(P oҜL %)7H0Nz$Ԯ\xNZFgI9R}dC A)9#M8Vl!m&{ `.!oolwʜm $9߃ĕ4tY*! i@#3bЩk$Z1!W+B9iή a܄nk:yIB8^;!#t@#$;W9 i BS{0⒇nT cPK)Q A)PI}=FX߀mgk]# C-Fp0bK<`rH*rZJ~Dʗ)LKjl.Ay\\hD#{gD"n2*eK-L^[x/"!98ҠͬX gؒrS0(#}n)bPwwx=P`8Ç8 9`cQr0qpV2g0407)8\cT4Pޮ;oZ0Y+X#xO<3ōFtḾH,+ggm3%b@ dlJ" 98* Ãqd90xE;`lq6{x~!M&d8##phL7 {Cppzx4nAa ]SмQ:=køRȭJ}U;d8xIPWj"UPWaڪ{Wu##SwFҲe5rG'/] ",hΒru, ,!RwQJ=l-y^W# ##Suz EGWF4NFDNkޒXP/'IM )d *xfqBq(e ~ݨ%>C{)YwvZ #t̍}(C #VٮIIFi \lr-Fao:+HV9ES?/H{0p^ |= #""gw|^i B.m0C+U5.&HcL02󺹴"F2$Ga/#L`\J2e@VVex$`O$p.p[Liܕf` #R^9|R[nua+2$롿8BXDeZ\ccxy 1PBS"|]dQ 1F޹aS>Xߖ"Zր #""g>RhWuu׿#V5 `u@ BA/yz!RLODuLJTN(Y5)nkrfn#""g^E&lDHFG&̀%/h+4%Xn|Hf.p"QK)n%IDQEDɏ<̭?REP#@OD#{q.kq튅Lxi9p @ j^b@.*R|91(Ч>y% NCH? @rJ$kO9no_Et8 pz5d" $'~1Q&IHH!h i,"unutܠ\\lavna=7Ol! *]/1e+ /p''IiꦦSUT7+ 2R-@p pQڣ ?;$w$g#3t<$@fB,p><l''7t!3a 2Cv<ōL 0fiP_'Β\0M&hU]۪Z54PڂFHH@QN!m9 `.^R0pn L!P" V۸e~sJ ?/` 7_tL1 /~H?!D<JVHJ#$0D'-L) $Hݪ)T.UuvJhJ0C!H\C ,1 5DP|옔Q+xţp,j,C &C 'X,# HD c0LúSꚚWh ʑT"EUULDS5EFUW"M@39/|_BYO$3XebY/_G*ҜaltpDUe[b, BHlJ`[%X& R*P1EH OQQUT+uE@ rj{7[ꬪ#100jPhiB!PL$j~(1R.M,$ ^B'`>ad2RXo/OO$+ A)=i41ҺCPKpG8m7h'ɤa|0Sދ%P`3&*IBK,~6XoN)SbbF S`r+uTxP$ <~$%<ѹ@lu#'%Nn$;m++ ?$!σ1%)R~ 랳U*W( {Ӻ鈤)\R _$ 1E0'p.Y_Vhii4!w ϝAD$4E Y JC('?_SЌxΔd8 H2 F(BS7>җA'#f  @HؤH(T^i$@oNp tL>D}q' p$j\k# ;H>1b^93c0/я3$ 0BPTʱݹhK/oOۄ5;a pd-"ـ;0/ =B? 5Q\ F%Bz1 !Yq@*J ! \ d2PLq *qM,m-HH(``@QMv~;{)H| &?]%j^0]zp p"B $ @_\Y=Ą!.vK.LIޒSJ~IIHؚ@`P.Pbui7 *(Z^ACXuD A6G ,#gZ@,KN) crHW%c@0PAY~p1&$0 7))&c!mL `.!o@)Y´C` @Px 9xTbjtvߣ: a)%i,1C F- I#J`cA5%0@*M & }Ҕ +:R6  {@2ݝD̠VY@r`I)! Br$H I|P 1IB@ &+4B0{yao*Kɜ1cKI-$eb {d`e4eM{1onbK[ rj@{ Ќ ۛ5#!"!/CO&ܑH$h *! ewd @Yrw4Z߁|'o&G"l@ #!fj_SIn ɣ/k8"MKpG#~i]2geǛLz}Mb,$, 0ah Fi]O3h.ɧ'  # Z I 9:I!zЙ<)@޵$ Ƒ!fXئH  ) +/`<Ե9-Ksm #!FkZ܊Skh`ܒc2\ĻZ ΞҠbPҰ=F6(6eQ0jpD(~&Ic(PN4?>pdNN=rPg" #QFey{ >lA{k%;" `!Gp qz!ز JHA(^$/䬔L E/ҴC#Q X/%GJiby19r(Ek #!F{y+JFPJSַ% 漅5ѵTXFf{'\7 \;Zg1f%GjXn#!FZox*['!HW+hJzGRpH$ br 7Ac`酞" !ͳoDb&) "AʫQQsmFsoC3QQ:z#{i$Ycٖ"Jq"}q܏i#xx"Xr=h]ݭ ͐#pʓNB1(#y/{u*#+#gw&UJ"eSJc'!]1E\$i! #!lb &S5liP>%fhK {WbU >kE)b 4( !(1Jـ#P65L&XT7aVXht";h |F#J$|BL @#F'"+!BlV8/!m` @ !m鑘Gcl9ْ୼A mK Xl*'V_K^]Bp|ncf":N$]fo64tU^!cm #%k1fmUXYI[EXKF4mDo0ݮH`ʘj RemZ`%j4ZLC9 $atffv>2:fQ!gU&bS434#6q.Ô]EmefYaYuyןz'ubyTVi#rfW图 v;bH%A]N8dwџ̊žf,mb0`,ҷJ!UrBbD ב9ZiJ 8cm0 bFĪ2zTƶӁ7ihemmdJx:MaHFeP:K5 !6(J&N)hW m*jIN&m'ݔCpGtX7[mV/AmYMeqƚNVģsOFE)gdA,&h`T324#6ۑTQeeVeei^ϮƸnC"qϊUEM)uJ@>Lbn&Nl\+HE RVFJEX6ْ6Bi3r1Ke[e$i).MŒۡ f^]\!mOUDo%aE(Rm̓p86BJiFmH[QavWv*ٕ @> I\L IdZ$*E#J).kSeH$쑩bHJ772F6MR(H=I[-\Pfƚ&=i6m1ʮbc323"6M*UYeqiZi[mq^q:,4IKb8iZuGIRb(U;NDC6԰QH),!s[Rm9%ڴq>JK$ԈVܬ,Hv< HKxDʏL(q,*#C˨҇t&Q3ɫ8RQg*qt-l۴m]G"nI eq&J<,/R$hƝ9lj;5H!Bmi) rS9"!H9SIHJ <:f'h[R3m%:p`T4DC!(ip"U=3H=5Umefmq|V;<ڣ- j#3)¢ަ\9OB"podM+CaHtQ|.ݨlPŷ~+XڪMXB6-cOpqRI24M|"YMFG=jʭN:ںߒHixd\Q-p:ZSl,(R7Й5ΉˠHWjP{Vt6+qFNa3\k* 뤣gemXۀ8H/7SXڜGbc$DB(P@0< 8 UYaeםy֙ih I%D]ԉ EjFFe?'J  9 ZYi#oW!*Taz$X=MjhpԒF å3:ErmYTIeՊl .!7jYFBá"D[IBmaD,{P+)E Bh`'ZiR sK(֥Zޭe`X*P'WguJU`5Lmn]bWqb5lF sVUvJU`e$3C#h0 aVevZaieɚZr5+lUkY/%; Ǒ+VDfa;U6䐷΍2e3#8~OD*G:lScͦă mѽKSVnR(l;,qj q;d* Dyp0fb#kAr[P)Չ4k)94[\myFEKaʌ1R!msG `.1q=o!AH`*jvCSH6sSA+Mr##=«Q#%*Al4Up_Ią7W=LX B6 dTq'M#Qm sz$54%hOU.s q"64[b$\Af7aK&^bdb[׭"AcӗQ6kk[t f  #QY3o5yt @Nc2">MڪA5r[7ݧ H(~]<g2 | /ɯ6x #!wȪ]rP @B $)WeaH$@&!XDѧfhFj*ԎE9Ʊ #!9oZaIx% R}m}Jɀ;d6eɯ-浹!AiR ER B ւ8/z*p҉(bdāF+($]PϢP(I+;uj 8\o S"Z<*ǜ\2]m=~y-H{7D #~l؄햂E)q;li?߼pU@ `3H cpf,s(AI/la `}'MJ} ,dpڀ4!^j2⸫>50KaIjdH@0-UfS:[.]JuUKDU<'yA{t@(bXסB=l|5 bQA"hD*^LkTswPUEUXal$lIO. ~!B 0iDaAXiiB?a&%bXhJp q044d$)rwBs& Ҁ(:p¸\Koߒ3 JBQJ |{C ,3P0eO!eXo`+$x d B&ZZ |@$?2!7&ɩ&O":in摮EWj\ {ӫ4,!K$ǘW󝴺!dYeH}!9+Dy, 08 M!m{ `.!qm}4BqpzBP Kcp=e ##`Sv@ʈ5γ"k(hM3s&Z$It}]-kO~nu_&5U| %}kM+E仔 S %$R{XvpS0JČa> 4 \Zɩ)C{ +d#{BVuaڈ`i )$`P!i<Ԡ'C`BDF LM ;4B< 00 PA8ŧH]ywd024  K<b5$2 u$7PЕ&HW,3 Y@ A4(Pi/V%|?wsI4 v4ꞢJcOaYOW 3HYDk=sD/TP @#ʛ'Cd5<AvZ濫xvmu6(A/ ]  iGP <778+~՚P3FFJ`ԌO=Da D#aR{#qaQ(3=rd@vRDQ:e _v8÷:t4I`m nC3H`$3 Xj\l"PLB[!7&#mB 3P(5u ;J"3@^wA:KNc }}5@\#xpƉx%#oŌX|I 36B!16$DL8xrD* 01DG1I#G]qF+ ixxL,UR1lʥT1lNP!,g&S9sE(9t`0q]gkܥ1GPJP:[d?fR\0,Z+x#9E.1"lN!Y}ۯߖkw ́##gϞ/,~FF/ =&wvވMudΞV@Ip.Σyr20dl0Š(q )x-_`^n-4Ų4x!dđ$Lw`}Phn{k4t־ umD^} $g-$ɤ(dCww"0,|IC04xR23n! J SZI_s ""gpA9T^wgUzz[Pe(<" Qچ1BHY` q6dė R^| 7qϯ}JR7Vd<«-TM(a4·Y?\`&X:NrNH鷍DI:my-h_g ""c"ĆXo>90>k"(FWfR,-},)IZPPWh\:x!a ] C{&ij/i**&.e}G`d+.ZBBR@D$15{F- w`_V <%2'݋{r. ׷.ul0 膳%]9`] P2K~)?Ǵ$@z `?o(xcDM&fk莓cz\o.@,4`C`1 )=В֑*gDfi `tsɘ\β?ߝ}vG?wPHlawwK("B@pc !C{\\D)#_f̡=hu hkiG[NT)0ErΣ>eʻ!HB A:=6 D0.Hlab5jTD:1`}B*+ Q+bS&ӐBht} QOݚEbNr .k2,Md#R ! f%(Z΃Cgxt{)C!"pB//tW8pS̙)u,#qFeІ#d6 6mʆ  QX@\k>X@-xH~֙PJb_7i  +gIO/و/.U_ ! gs` +kLRE:;d n[7I`mF{Z'iK@~1x̌y2@eV$~C! % @pXwXh?jEaTtF"+R`θ 6B P H +t\@PL!zKo?OȀniQZPX́{Y@S8B!=%I][G5UxuޥAQb'd'o~,!m `.Q@cµP)wDB1m3~ ;O'@s x=p3aڄC`i08Z8}0 RY44o<@ hP ,>`ކĢh9'Aj$7(v67+_ۤ:y0;豠(&8 h \p`lMpŬ$l%wScUNuTZr LjXP#kFl9/_ZsHL,NR]07pO%ǀ-:DTDHM6ꖪvxq7" ^P0_^bx0( 'A,(rŐdJlrr)1r*Lu:UUGso;vvah?]ܸ%ZYG?i@ -{ #r{tؐ`oblV}D4X#ȀX,S֢`: C1ғ$62KXKU54g {ӺqAt*M><ݾ2?#qRvw )BzIm7gO*&A~o:~ItB@` xį_p.qbHeZ4`44(ކ (ID,&Mv(_s<׉!(Ē( B@C2!e xiy0 t`B`2 9;@&GHM 4 q4 q'vy r_pRWIu] ¹+U`~wa%+˴OGiSS[VjL QDⰷ _;:(D{.e!G&1 YN?& @N'  ,5 K!@2 o! f4`T7 K OIN`3$Z@IN.B='Bb@ID=F($ԍ.+J,( zـ: 0 oAФwvj4}c1\vzA<' V,j%94P &=ZHL3 {unuVC8  %0K8]! Jx;1%~^o0`41%sDCı8h P_?@&H%OCJOQG+mDn[Ě|LGIeo[7BK,KX _ae J|M2!iG@ %qW#|6|0Q膰uFs$lA IDWA] We -a`dJ `K {;ĢT{i %r8 q @P 94bP_@i]݋7!y>@0`/ޒ!m !mG `.!qZQ}ov;3pjs i _ ,5e=HA(; %#g!RɁgӔ@P@$@*CJBq44OVM@D`Bc6 bKsZ p1(? S'((K@'Łt9'x׷ I Ǹ>$,1_;~Dmrn@Y62W7NLp p\L:T&^1AXA tM 0JO,07!2Nρ8l†K%0BR4<ּ38x2Z@TU b7@( ^r@bS!)%~8eЏ0FO44e`CiGNIN!)Q[ބ`181Np ҥЍNL&pI0 g<B>RA lq@CРCRG=L)V@09 ;,m +fdd3bdyel}B;h5qz^ DA ߔ۫!"Z[cȚ4H*_3$2 g7J9Êi }{U]W]݀vX_pߚ;0b .ѠF,{d a'OC*{3ݕR0a)+xNFyr! ANu$]1ox s5٬IOAyq|llk G芛Md{6I}_g*Ӟk1  @h#!8X.zxqD2`iCpq#C6D_,NR8OÎ%Zr2s Uޞwׅ)i/0hFa2BIg9bD0bj!@y00X)NHܰ 1A-Dn.ΑðV'C Og=8_< vUdZŵ}~^w$F@s4SaE47mtªùT)}n $;_9#!iQ 9-:(M TGRaw}(ww1#_^ SQ3ս)+RǿwR #!k^V'8- ͆p)BJR@rPgxcitv76@)|Zoi(ϾTt5~m=oCaO,(uY4X_ǿ`}TJ Sv  ̌9!:,r$,7sdA@b1QyR0ډ ,Dܕ~>Ghrxye aahJIG ,po;B{hPn&CN$b~ODM`&_ꌑR w`I^qntj2Yր "!~Jv)铋5 '+I,0RIs݂ScqPi!1t2f0}ytm΁P\j[¸fhݞycӀ*ڬQCfFob1*f RrvUl%Y&okQԕGxJNͭh泚b "!(cUiէ;U)nIo)Wݑv8I9FZy桘\HF}Z:N{zD#w ~עOe@ ?I0 gXԺ! \6~p~vG̬Ns5ђ{IėC^H4+wmD_!m{ `.!qw t@@&T:M4KRb?`]faz^5eFy(4HGa<8idv!)JY'%LPf&ݱ3Iȧ!G}{=cY$'(ds<#$ d+;)UJP,1fĭ Ï&!%Ha3Z[-2rJcPd qmςLB8%? f#oҶd(~`!i_5l;i"sP?TKע:-4DB7.-Y\R]W%'>CL @#F'!ؖ+Ct/z{%+4q,(ǭ44= D'heD#J=XL Rqs*6]$Mr)NO`UX]i \ԝfi ?41Lw2&.kxD%]HNTJcGM ҭI8nk]j4CJЋiEǼ<!ܥzR<,XYEOTɨ&cSH_oeyR4 !٩:䴯nup/!npBj~ 64d PM%#.}CkQEM>i6yVR֎RB l6Еu1`2!>&MA 4 Hᤇ#%<Ek8ѳεQHwB! /<nH&@T0fL>e `:kl#t![p@\.h׋d&7t`x y)+n J%`Lj^`2ؒD45,VǴw !dXtce1n'$T)EpB~BF$Ccp<1(e(\[b9TX ? A7 J(bXZ \14EM#tA?#Ճ!P!a[!&T; #QLrk{,Ӽl)ZiW [Mל> c8^DR(+bQl6܊s-u #!|JE]MsZ\$\؇ĴzHfm&z((UG2JR7I=~"DsnGtKW×e"G_9ݕi.оC~~k%5lrTȦbg5 -(!%BoM `(#TŖ’Y!)- @xB@LbM@K\wIH%as~Q79]󱧇P7;?:$-H`-("ٰ!fLjz Ą* !vK';?^ !* D"b A7~6tYeM$% !d;s9 /l}'@PP ;,h  h r~ ߄]F6~`1CI!M&nR~;>`a;;Y YK@Xx8qPQiFG9`$**زɅ e}ch `& `0IHcKq4VN{q'yªOBLA ք?uՀdC|X GZ[bb3:љ9]i`@ @rM^ A1s`ݳ04T9!m `.ŀ]@QAT-vCVCsHL 10ׁBi@1Œ&!(IY ֧r4_޻f. 9dܔ1vPbhJE$Esۍ_ϟ Wgμ;ˏhw$͊Gnk]R^_>{)PuR?UWZ!kZFyI <=0ŊF)Gt_+*N;@ @ᡠ:rВ'g^wۊ ' # 0b[tyzY|ܜERH`ThhM!lXg-9;lv^eIP L&\q d2@Q1B'c: bF#%hV~aE,bFp 7ByZ8 #v I( p΢NKc@ a Pi0(ZFq)FBQ%}ۅT}( b&DJ 0/5Y\*^\X  xdg!pX^-( = 9 o C|ǝ1/ 0 @>@W<:;s9l_V?yL %e/Dۧw2 Y7ΜyNQ7'da"``=dE=&O@㚰Sv۫defS\7T6ڮWi (xOԉHQb4#H#I=H)D@#])K{%!DXiQR)v A,<&vjyOUC:CS1j p޲@b f_I47bFHOdkK$b/Y`2~{ڠrC^gI T~$*HϨ&!w뼚9y>xx< 3^xJRo6JRmr,R4])K<#6ܣҐ{Haz#h53og<~W~.b@v Yy4== {J(f %)8.b?P@P /QTi;k@2IiF&8`kʀ\pa Sv,kp좷mj(@A:`p:G)u P%wDn $4îΊx<ϯo xn.xo>x7o Ww~ҔR3ő黀Ν& _.Њ&5d{2xr dnF>p#!s4#?pp5Cp`7Xm8]ߏt?np=zdnm1O`5#~<'=<-ϑUͰSsZ5u q%KY<.a~(m=#p6i&`PJ (?7 @N3%ry$S$wp o ۝z#Q3rh 3' DW4ԆrKOOp`@OP@ Gpj;Fɡ[7>85bi0 IcT-*@ /(x0);ӻtpqg?k32 )9 1[olcԫ0usG:ώt.]sJZ\xd ͒ dd!o `.xTXb|4z'';"6dt.\_A7?,0sx%͋d-?;黛Gy;q?h S yo8Gޟ׸:9~@,}2ð>??}7~D~`oK9X^Y؜O{O߯{ /pQ@e}-׾p ɸNOo d`0&>.pq -GKOeLT0/w=8 hԚm%?v=G vR NM&q5h*kLC&3>IhT`5>pw#T<oI !=/n{!B߉fX>{\1|y>l_Ə4OKyZ~͏ p7=kqH}sZ=~ v4ModO|Y𰻙-yXa?(.;XߏW$Y.lr@kM=>Y/7 O=h{]=7?H @7eߛ'~z.ù>MۚO7뱒L#{?sk慻'6f~{ǵAϋ  %㬟i$\-\qjœsf-[ BEx'oý^G? zuON? x^EwsG\uý`~F}=qa:X}?wz?ϭ' 0qi?Ox@hyZO-=ΰߺL7|z<OǚxOO__u9myj`P*^(00#?sλ(#O.pHO+2C>7:1a[{ -?-oϨ`JnoXX;T$F~?l4hbi4ɜ 4qOy`X0 BNOq;j (/Pyw6ː*=.O #jRB@̚1}i-#@ xIInA5&$5!r2ws~ݱc3'c9? a=5wK; f̚_F͵' ŏ2O ?a8my=\.!o  @ !o\#/=JRgkMe) *DrJ_!rVQUl\Id+$'4QK<7lQCrGPA<bV""A2L@a]8 Pb4^ եr[ ژ):74\A$hF۵cOq%C[NN:o`JkΦ_ 09Dl5Uҝ2z3zwRI q 7@qe͜q35$(Nf"֘#%3#4ҥ?EͲZ$ "FAvF"U[zgq6[:D]ah O~.i]kv]쵹/S岮͢Ou: bU4DB"$ jC,Aqiym "=< oGZuFR XK֒@[:wGEƄau 8}!aV-5˃tKZl"gfKçs{nWjIrZ^fЊՂ̀(9> I]Yb صC$ڐ= -*v妖ghDxRLƌs~(gGb؍uF⽅"V&ej3gE]"ȑrjv ԥkiEOvDd-pg#asКq`S3C2"4q""I]Ymmm^u_$ }Դ%e5EcDYC!!o3G `.fɀԔw <;ĉ'.Cyn뱒 ?ZliaȦ,:r-$ixd|{.;< ?Xxw 6N~>\>p;a=sN;O9g_>p.DрMI Cޜ>B,~ ?]:ۡEg;YX `7]r:'/|g?toֳVuopm~'r+w4I+jn%w7=`D/Yxzg7$/#2~,k[7т8 | 19ܒo`@8 0@)jZ@0 F R7j573 @9 `C|xR [d(|=X@vV( φfldja44P+ Vmwa!P h!&.dLtV$Ԝ%_wVM@biX;i:>( `0f19m{ɹ*4iH[܉lͽb`5;~ P C@@n?hX Hۀ>@ :9Ia%ffFW;Oe|^H}Ez<^'w><7ҏ 䱫Y4)2/cv'kF,6Od>iCy6k<}9?L`?t6ø#Ӟy?K<{Op?uYbgxmbkxmǏ>(t36?vRW)@ Ķ 47mcHI;?<_Y˽H E3~p hMK(`( N?6x &$ JAΗ>PjF4 qT2K ia&H/cy +@Y(U"`&,ijx A,^LJ]H,5n'Tp HXI{[_+X5 H@5A1Y&š$gǏod~pUaU hL(2 pT" TYIAﯩKـAY\i)+LO9{z>/Ϩ7tqG' `Fx2|h۽jyGޯjhP- ?sN'{6?p# 'z|`/p>a扵ٻ}w)v>xvO D?ߘ vuìbFqNxONwS<=ߚOqy|ewazƀ-?gw<D> ;810!' J[95rOf}Jp+|[wqZ3Ci-֎Wr+)e8~/?4 o4J> @I-!O;^ -$nǐ 59 4cnRg_UT>?neEj@H 8i{ZLP` JI!oF{ `.e N+~1h!PPg( oi9j;rha{ )۾;@)$R}4@Sj(H-), ['[.H6)=)|6 ^h[k?68n"W܆.7j?,\tx O~z"kDŐc\' m|x]_g57,;xfy^?$>ΰ?v-,00!l32ֻ j0g,Jy7 P JK#n} |Njd! [f+Ծ^B 7!QJK4$2q"CHi)j]N1 }5'd07!ـNf@B&~YkM&`}lݷ}hKJv%E!wBl?<)[] zh l$%fD|˲J?wW:?<ٮ`ĽH%<@K$':bؘ_:^h E35I7`ni`HI,f&)rFNr;̐ВsCy1(mε`1Xm 1sI$ xw6~MmH Eǀj9bg@d]8o{bw 1ـǼ&ɾ֐l@ uϐyoo aCG S I<&^Y$%$/ OSB5'(p#*p b&ydRX/$?}cʜ47w_NwT18߈=?We9Ar A. F$!` drN:_8>o!8k@NC%WP Hdtmǩܠ'xvHa  ӝpSpSҭ0VZD @4l`0 !95c OQe,hg&CvCV5"f @b3 ²;mK~)hoHL0)8X|yvea= dy  Ǭ.ИሪE(/J'̠Z&'̏mߟ`}<2&M!t O0vMR)AD /H@bZ^95&챹QbL %_ٛ&`@0FYi/ 4YՅ|0 bY/ёIFh B;9M⍱jA]Y]`R6v/s]CvٹO&!MHg~3xۧ>&vi!4xŹV ML<ŖW[o͚߆Ϧ ͡+sg|.\XNm \|?uuad&1 IO_I=_=}ӻT-)9#ѐ\J?ֳp+>x|<5 ̲kݞs)HX@ ɀ1,JHbя8j @0h` @`Cwb 4 & 9ĚL &$0MNX;& #A!oY `.!q5&H4f@vLİb 4 p&1+He)ba,! ߁{`fr1, ttv'1o2eKB~|?'W؏y)Eba0 +'3!'ZCVZXCJHobW> Bj~~܆Vý@@0زg Xj bPSBW*P`jr !01?ng\%KB?}R@\RxPi45_aG` `F,%s3XPΐ(_Oe;I38. -=piE!# W>Rn0_b7kܬ.@T 20`2vJN{i`T00 t7vb~a̢r@<v]a=.2ў]ކ]KMݩ*Rēx 5OOͷ@o`* cs[ @SJ¤y 7zQ^&1 nM<R@:I_5BvS 0HտHhŝ``Hޟ%^l/Xi[+c Lx'TMGo~?'?K~똲Y/ Y@]i5 ΍I @n 8:&J&mH%PPe 4%%'OC|(s 4҂CB#lLC~s;S0xǘ1! 7'졩?ӀR o+%@f%g߇f&'';'3} F%~dd[Oߔ c'XBM! !t nXtvMF΂߁Z?fQ YAr㟶c.lMls1UZ C хprRvJ>W`ͱ} zV|Ԇ-=2-9Ʊ?\ s[buGaUO!jF)JRQ1)I=}[5@M |}03ymXUTP*R_J!5\W+r1KNl Uɏ0$܀|+J9$yˊ+KOf an!nns؃rJ OJQ~^1J1y-aBfPclkL7 I/7g.!R~*LɈ#. }k|t̐1K/yEaPI@U%r~}@RW>e}b&$9)Y{s)[lx !d+dyy03R7)mٯ2B@S{0Vo زЄI[YCUt :Pzx W!(3Jp(V,Ĥtlcx(WIih8Ip&5@ XbC@ 4Q%vߌd>UІ#raD0 @B(t[KFIyoPLߧY4[dXF'X}IC}' 7%T2L HJU~`h@OlQ@>vk1īDB0H|zYQh,D0P Vp7 Y[*`3ps;]i >N f3"ZάN)P~PЇAE A1Ed㫓5(Jf@D@AEԲu AėAU=8% I+S_ ^#!kyDi9 -½8o!jУ*qxѹjn`S%P=޸=BE 5+rW#2t`Q &%qԳ' ; $B(bAC OMKʡ :*jJ r!@"yBGQ; "A/0.^xڦ~3? J PBn L"R[3L+pE(J+0z;lI}F@E0,RnK<ӝeI Bp)oL{@43`P (ga0R_Dmj$ r2pM)9*ִ{bJ|Lho%~J)`&lhNj 2g8ħ'` #QI1=F9 (DPWt>M0Fy$Q@`JJz8X> ~p뉡,Zwea4<< sAZ1Jx[v ПРsZx/?myqjCcV^CD0HT &a@x' k@17RQӖJ'LD$1#ACH)H$ milkxAo;> X t!f2RNcR[ݐqZ!o `.1sDq͜QIIII0kb'! Qr?bǹ=ikOtpȰ(^B !3=.F[T׵B8Jh. E[ Kk]'%՘W&%i[xNx1~] ǂY[qś9m5C8&+krRkXձ;٦hKI  !Fl+#'Lf B8Ʊ(O/ddt9$*+cy1 Q򨆂F7!?$oZ BGJYy9sD !E7Ԁ6|-: 8#  @bA (y R4'=@4%L}2z0IJ h”M䤚7>{DaDnfK~Q̓Bư!$2( Oxtl'$Ƒ>1:gD(nj'CVX #PLn]H{%ԦR6D@- DL&lL܆IrB@dtL(jv?;nt$qGf%x% 1@I &&ՂW$#D amlɿDX mAJڈB`eH@ jK`D߿ݷʱr-ȳOX #! LƵ3353ëX"l"W U4*ŋ%ܜN<w`bR':5tH  `{-:S\ `;rOaBx1p?s}1  wr ;'l8L tJ% g:@є5 0(_2ЀLBa,RX^~`=Z4kȑ-8S 4l HRoN+E&jnt">䯀LypxDO' /5|E .t-_7%ׅx` C]sw]4X %f'`ݐ*Et3(XEB[i0ЂḦT|7ЊEk.gEvʪj~ȱ50 &dY M&%>И`;= pA0!oG @ !oܯMl+r(qZєޭy }jU:Gs"dފ5-Vѐ2"hj+Jtsi}?! 1!MaP S7HfF-͠`pžr?F>;]EXפJ!Ufۇz]I*D)I䣪eU67p>G2Sd[vwv LEKM wBNȅh 0ڈ![I5i**&܅8J@bS#DC36MOM$YVaei}pv{ c-I$4< V}ԩh.AUQ+jNH1oS!uВ(9s8⛮T΂9fV-Re*UR\npZ rA 9XxS˒s GI=5qftpdN\aQ>g[Rd {U G"k[$ÍPõ{-]\ė|RJ6& @#ryn(7#4b=-+7&,W:0A(h⍤ƹ΅ a:dJQQ%,`c"EBBI$M,ӍIemve]i]yԯ TewPSS<"t;$5gŶ%"FGu+;q⼰) DG";ݸ-QdT+Ь=k-0M_a{o12耽՚˓`9u3r "rtWΘգEIzA(ő2)/9#|Rtu7 U:kfڵ.¶Gx8>_/p W.3FqMKXr0l 0jޘR bS33C"4M`M9UYXi}qQV[\&ZOѴ0 bhEVF):CRQui\َS2;nIM};b$Bʨv(Qêed'閛Ult1^ib"nib\)6IHDnpҾjnbn+~&$7'q(R)f;KA#jumI舵,EZ5̜o@HToԗ@$uFFȔ%mRPY:䕵*b%qĉSQhErFάHY0yq h@e4 `T$4C6lꪠӌA#U]eZe]l %A7R$S>:zRsע4 M(n^4t=q 䄓HN ?F1, 5)aJX0@$)3/O%@;A540X``%# X a;vX`/R@qHՌǘ0Y7& &%V :RQ08.CBIIO$,7:Ϻp toR͇sg]R1 3ZL@P$,$ r9ZHxI`q'5j'2L!Eph(4@v% RIP:$hd`0@@t:+'4@' &q0^G2 $HDCQf"I¹D' pZ`L%r  #: !af, )# Φ) (ܒXp82$`3RS^/FN HaabՓ1$Im%8Nk@!!ُ[QDמ , +R0L /%'3 r. :\J@nIeԄ1ܛĘz@q}ĺ=Fnb JnDTQEź"b41H|V@a|#`bf %e h[sIx0Q'o#@DΟaiwcy  G& %8'-oPid J4B/Fq-,(_I,18i h& <`ņ4M ,4bґaH-ܺDC@.!PEw)}듔 q"L &Y`ez +/83!$̜F 2lnAmщHI`<^DKZģ7'( 7RY/ņ `jR$ @DGLC (b1R Ώ )H&^5T$,L93 rɫB4TQ^ B Xu θH%] 1 ` dHR aHG2OȷU%7X۸8(n{%~>Oד!afD"E2%:~D/ml C^` ;+@0 KFm!!p> +'@o @ B %Q/ tq%;zy$@I`&,'9,`IцzgK2E$nzK> ';Nz" ёXh* L nsS@:ԇ`3 7%J="Y1!~mBIa[kB ^GgN7_1QHHMA(5(Vz3C"ɃQp-2F,3 BJ=ʶ?mĢjJҀ4Ḥ٬4͠"ppf\Y_gqՓTcɤ@ݼLj&sīAdgOkW> ${uQ;9BFauL/q09Wf#}nԋ,:1aerд@\r ?@?O$' Q0E($y\ff3"9) "!sJqю‡<`ǓG$V|#Iƽfoc+QMCE$)f4jRp!-1PzkkD! "!"dF }Ղ(0^R̙OT㨊B a5ДHX %(J&Z&'LHs%ԅK؎DK,`̬F[x-= #3DR0mDpyP 0i'Fkx:즇LB4w PY<{4Յ@k'̖C=#uܔs} #%9v31{ ^ CI $3Y@L Lj9( LC$+"bf(n}₲RH7S&aI 2(X 1 @w/J$z 0o (>Gs0W%g姝#~BxJpLJ|&mq Pj@ ;[ Xh#/= -#$Pe/:[)Ӱ@`x ^¦@d%,UN( ajNfQG`3"+GY#^3̪"1էbwj􏷰TB c Ao^HgQ8 0! ! U l"#}nȘlfxXNy>53Iȧ!G#{^R"[0<-WͿ=塉%$\ֳ#! "/xxbP٭wוrI}:_oh##jؠ6 fυXdSaÀ/嬍#L9A_`cՆ.5#ڔe$Hp<2%:f?j (sdE\ 6=.!d'Nѧt#!Hix)s( qb`GُVC%ljQ0,"-DV%0q ,D@/'\B.@,I/R`#y_-r^QL`8'C_N ^<#d]|$SY@@oO`_G̷6!^E<&ԧF >똆n@q)Q#8t!C%e&H{TܻQp,\W8!KE\-WK։%$ G~bV`~Z\ֺd!yvBrj3H5KZ!o `.1ssDj!-;땳͐^}0L !׎|S!ɯ5mCd ,p5kB0-ƊCc&:Gd1AW>~m !` 'RZK 8:a0 fҜ@Jt)Xx#~&J Jz%0l2˺"*+{Ur-4Ge `]t#Ngr) #"k6%b1ٌfȜXKpx[CRͦ~B&(ep= %mĆJ:ƮRS]oywg%yA\);7#*QI l$0KOS4桐 i" C1XfқdNͽV$#~Bиp#xcdO/x)sӲM6q4&V+JZ @NJC:JćVuGA-ܝC )O-=)`А _j#[|cl p-LbwW}E%K$n"c.?ED&FcWi^|a# $\9dp^xр"v3¨[KJ12`Ji7@0,4@zJJ`>Z p{@Z6 _6} 06&ᤴ&Kz;R}- Xj7cqPr_B@@@caH`|0V"?m3 @y/ ƸY"bfC;H3&%JFA|F( D{)?@"~%`F$po€{)F$NΒ -e#dka᭭ ,! *@aPA9]!2%!'ouwǵ _rI4;cC"A!ǹ"0 i@=g2QS0Ϗ<>l.$Nc (^i {}owv #bg;J#  Ph4P 䱚i0> x.IIgƀ M!В@R%6Z#s}͈@R aB<-NB?d,A<&$ @H%`10-0FI @\'8c`a/!LI /,P CCpD ђKHПŁP$(rϊqNcoN ;*$0ͲEDA`(H` p9op IepLIc@bx, #8 KVP`;r&/i|hf]``J1 \BH !!Edɨ(KC Hќ(?0X=exeY0> ,ĢS$ }O$oL$nZLQ-1RpZc@_B0} ޅP.#n=zTqp.s 47BÛ̈́ɛB"r "|XnuųD B|24] kG0o#I(H#xyL똌L ؊U/x!@ Cgw|U*羭ݸQ $2ӤHA |G˴X*n&l2( PN *`6 _-xڇ8F j0wcaP9?,$t?;єGDdJ!Q ĵɧz![0o{ 9W0 `Cq8`##j+!oG @ !qJ3[YJq"Q|imʒ"[&m5(B,R&*FB2/eP33T(ușI܍{!/ .9@bS$3#"6m 0LQXiaYeq[xHb5q2 q,H֢J4d 3$qpOj4`ܶ:NUIC-tm\0_BHm mgtmN]pN7+j_LeޗTihU)%UfESRB5iwjy"Q2Eۯ4y=;H\0E6SH۬l&biNo^#MXZ(BR}V8i״{͗tbE$v)\NS[KñJ'mMՙP`T33C3Dm8TD]uee֝i䫗n%K7b[N3ú&pYVR@ū>m%Z$PT;+ebULæ%,HUP\x]iij."14BL U*n(NK 2N-&R]qpVĎGGZt蜽S{ m"Q[Dbu'yaFeLIrJ64;m$Ny0%fO[Vufl)L!-Ia{r7J md{IDbbc#3B#6Iꤓ5Yeaaq}td*"8r\IIܐFE-Y̑FmqJ-?Xͤd2QrQ Q*ֵ9CXpaD1X6uYEElT9UTÌڴv m1aD`lE#7KXi{j&\h"ɫ E\RarsKvg*IjM "̍;n}OչV|^Iq64t˜< {aQlk RK{,:[:*PnC +TV%u! &}ju !buT5pfd/'sLf5Zz[cQԫ,nj老H4SNq\N5D'hȗ4 ī֞ѷXSk`c#4446m*nMEUUeeYvZqZqu`9 t.Ji6JRJaRJJQñc5Kn[mD:&E ZWXجOmDSZiEtW#0mʸSdg)II&ܒ90Kj>h%"nQF)e mt4I2ɔQNCieMGlmHv'[0ʮ9.beRZk):Frh$8UcjWcZak5yV5!%#BdK )TQpKÍXZЅ !2UffbS#C3#Fe"j(Y5!q{ `.!sI)A.b3wרL8" R,3\=< @4K @pDFDp o͓s (?;) g\S=߸[+( ( C=)}CJ=y9P= De&ki4XoHO@R ;7s (8=ю##j,r2%9ʾfU @&d"C2jSOv;v~#+Üx+T\On \Kxl)nY OxdQS;=W=u:JF@ b )JEtsE 1ϕ)B.U"5/z#7i(Sgj+/z rYsv0 "[8Ԡb ا~qL<0WT" zSn`H 'X %9]j&!^^|9|*.8yߋ, ""Wn(W a ]wY,ۄ ?2nT VN<#<1=KBQ HW Gi:|/~X wUΊ(wC۵j!€ B*}#!=>Fܽ{QnKMK K6| H<`R2 %mh{@:1>$Ǝ^] u(>^ .W(x@`oKv8Du !mcIkIwG"heʗ% %# l6)˶Ě~ ##a1ج\{$7  J~< `~xD` @0 ? +l4OfNLJzY`c-K+ZjTKPKc$JuL:H`Zّ[h#^f"3ߌlT*D4deL-TL 06!J|%X r3ZNGN `g^@aDϦ9#xq D WVLʤɃPL&R3V. s_!gE\Py/{D0T'~zK6) সH[(+:f#A^",f!B y8CyQ*~w-r븦P gুh04PX#@ҟpLˈP8pL<'D8p l9CODP$܉ BE_{J$Q =,{U>9aO,|w #'犤\8 EV'LPKѝntq%YT"ڽ& e @ry2`خypņ¸nPA0?/U (X`r>z,H:- IX1(t&j 8ޔ~/ 5*ZÔ 6s|Cpآq #&PY*-Sr.(.iO7І3~~X<HePi$1K8L+X^ (9rRn @XVp9-| .CԖ 8%' ,}K;-=KCa 0P^|REsĄX''ȤYqZ=6h B',x37[ a  "%$>Rb)gkp;U *q phoP-AɊ2qu,A<|@ "%_w3_e(j5b N8jk%FqDPm=\`C^Gٕ}VCFu,+ {!q `.1sys #a!!=w;RpD+*̢= A$f$ I^$#.=DHtD0PFۭ,bV ~;xT+P7ܡi:{i{`7DZ'9.NbD޳[.Mɀp0B! @i),79vl0R>6hl-"vp !؞h @"5lx|Zu HO\pvF<VL+h^SWwA`  ,5?>$P$@48jri0g$񽍀`P(w@Y<?X( ;#*p7j6qO@Bu | A4 :bMcX2F7` qI c[_f+JxUHI&?Wh۪+UVpu!ܕi[@Hb9dF@5-#d,|0op>v`7`%## {MG#-iyKw^$ cE'kGe]O@rRUT^*5=oڢ\` H@ pD!Q;}aapEW&lHhK$S h"e(G; W%Tۜ Go+~E:B@f4BxTaDta|tVR+MaUvz>䯀L +H51W$`*-@" `[oIOObBڝ}>H`~a it%;cq"@C5kz[$􊋧H)W'ȭ^ " EH?TH5EQU U"L ?rLb&Q 044C(bzr 90b` ɠ:, p/ @HbzBoҞ6IHj/%?H M =,0IE2XHh @; @b-)0$Cj hJq%'D: `h*iz!4!k޻}eTz5]9=*EyuQkP4W Py7S0p  FPA*Ph &bY $hJy0hj dJ)(ii)J@-Y%!(A%8aZ&8!O~AT32w֍V+.5BD&K/2MA(7/Lf'Xd=πVa2I+ImwZ#ޫ0c22s =2'j! 9X.#g GH?Rh`jq(<4@0hj8gh{̅FE0Ϻ7q0(5 :$2&x hB4 L1.(ZP4`n AHJRH$O 8i52hPI5#md0Mj~qt%1~P5&d-CI-wÀ0&~$gN ̳ȷPhoHaX3 s);RI {}aH4pDY MWYe%Aa5d2ӀidxMݸH d!, _(€&ŀDĬ(O5%p†g"@tL п<pf !ĚPGxp"haxP)0i0Tb~I+ BϐE ҄' K2FnvIFNNW#.?M WJ1\W `` \ ZJmيΗ+494AQw]6ò 0 >欏B+@0!hdY+GBC; @spiGB `j &8DC8DhpF 3!|,W (9?豈LqB`/=N" ԠWpaӳ hu ry{ˡQɹуGK|: - èYч}*Xނ7V_Vι?7i3SZ\=N@߰\`#x`brn#3g6EP@m77 TrHF 4z^$"a"CވjK8p݆pHYbPPA=& %'!",AA`\qb>73CfDa42ECB!6S1Ԝ )~aPdH0p@L"4 s_puf !y2C~ H@-}d>{h;V88w;g,FA5<&n u=!q@ `.!s-I8}y!b"dDd0]BZi%p\M $`.),uNIF4a4- ?mkSO c&3C6tQy7M% Dz^ pH3]|< rlPt-ntIR%92C'7$Tâ%r#%%IAX `:(tF 齽C!n(p\jL72kkx%8" 'l=EbȎen#'H:m }b A$Wm<-kC3a':^?f-a- f` f)ubp^_fͥ>Ail6NM씌 aF_ lf#$$p %F y( P>o  4/@x7X,$& y6 $gXbh ~aeS"!dlNC㷃W $Kv|^C PS %v,t`=E$<z!ƒG7tԀGk&( F=tuQCFvb2  )g^ NFOm `r/i''ZH?vHDY]pˈ=! iRTP{\Z7 xh28g) w)%waq%w`<㷮 d#X+ 1+ͱ i4&-šĤlxH >f0tL. ROA-*&-?/p>DA2H_`j66aC$Eb,i$-TEqO"Di!mpMX0Xn#~BBc# %(W9,4WI`r$-"N.~?U%LI%#x$Hf"F`.D@Q(ɠC2JY0qm(JМ~3SQOF@#Nf"Jp. gg>n\MM D$1Ew0%B?xM|}Edw'A#xx#$Fk d";;c9NJr"&Qz^DD]e'> &Pf$b-p&uuG\)T!v r`2B4 ?բnd X@#U]c!!x$ @S.+0b &9ʀ\0G 7 _`+bhgq߄wH t#cìqcb+&5;#"nc= }q4T4U׾"g͇ʘ8+CjU5 URpѹ""bøzPA! di $̺#Y@[c).,8n @ ppzD=1ps^#_E13R%zuЍD4ֱg|][eU 6|RNTjOn)ʪB7Q$6336Qkx +S9j T@x|oAB,'~gJzhp HMH%ЖS8<)hC8=5Qp9aCcX ""K_eׄN8hzBPhi#%aNC63Yg z!$%x$3Z%CC굘pe{GLdH =B =xJO%h`=]D2u\!OeOvTr}=%^ &!qSG @ !qwQeYauj_qǟuJ=ZfDq#\#p%R"ltq,zxTѐRļh6B&hHZ4zJF+ mD֓PD(łѕ&ÊMe\rH(iN8A$lU+8)L֛L6>+E Q&桭t6jAQ#l];+8nNJ eme5p#.+.&l'-&㱫 k.L&LXʾ-驛zI zR#Y#C$M6Eخ*h-ef"R46" ^m6Ak.12YඎԘT-P:+"h$QRrpuӬӰ>@WE.;X'z13|d%^LKZGEw+"%"ƶ424*EKFA3j(ŽI*H)NW6:L=Zժˤ8hIm\khJZ:[HGfIGNalZ#5ٲ$)\gԚCL nJnX{S`S333#6m *QCEDUv]Zmi^uל-^6Z8Ri*4_6Y%D,5WAu"nI2Lh%%xXpfk7IkuHafMF]2$ئl\YrW%".4cv',lūʴIԚ6;n[vZyvm&J:Vw4gUN=,ދ6\v4ZMT7#Y%ڷ%u7 4;HIa[˥(p8[qYlcqeNVcu&1RcH$3s 2զ]*F7"bS43##4ME%RQUae[izd]KwI7 2Wqv՗&LtlQxTgUN24 ҉Dfxt9JfBo\hϤZJ\DQjVVh5wdƓ ZL͍LTvGoReWXItrlZ8ni6!m@8ZD#+UvrƎԈR6IJZW__J^tG}bm7.^h(khC6A#7E|#qlB:evAg`e"C3#6M<A5UaiiG=3m7IcHޚoRc'Sjz OӬ̒!8_,!8n%uCPrCi&ZP ;ZzˆS\qNխ &lȊ,C7 KK[MtiG0+QJjF3t7q7םdjjT 4qN5eϒ,Frn;3UNI0u)EZ*4Doғ :!4r?8u.#Gtjh¬7!rԭ9be#3C#6M ꪲJ$PA%ZaemqФ\eĊAF2 gD QGm͑7 mk 5 9jo#e٢k]4&$Zj'B:B*MJլsgGlD%Vs2l]"v(\ai¶#B$܎5[:}z4<h:Lz+%q-$8{hJC%IB% "ÎmL-0[rDi 6eZY)Pt4olfk@j&,6Vh4K5G6]bsmjDh-뉸q V7fW_GsM \iZf!qf{ `.1uL]syɐ F Vv}W:J(3៲GKFJ]&TT {qZ Hv^ff񬠗FA* X5ίI$G7o$$!a 'PѠ=(ܕY@9%W(} },33DS, rQ}F_Iw]R@55EQ&MD**dIRdIbeG$)p| bY#Lc`#$`)~'LtEB@v*TRV@Oi!2@z<p1!2jy0HH0"oqP "(BHZѺ곪AJdɑ &Eh*EA~MBQ&ETu"HSmTB ``@`iD> @,0$rfB &0fC# 0714B咉Hg@oQr@@( @&Ra0?a4HY+8`)BC$D#摀ω*@<(vQ0Lx`|*79+ꞹhB.u^]Eȩԋp*x.D U`qU64$4@gAdPXJH R`. K!*$d /=@,E SƁ05qe)<&OD!*t&G͐>tvؓ0-bNګR:*6P~D &L R*E@*\ .` "EF XX/E c#^d2F$K( B IHBIԤ%h) ^ H?K0b &Fs& _ @2?icK$ @jC&a8BCPҐ2M*^$d7| ;h4 RB!9adP") !ʃR @; &'LYXjR0@zK!ep e%񁡉@J MA$A Mԍ@T ~{JR;v {wdêpQ07Ա0I; A ^,0N롄iD ĆSQXjS#(Anԝ`=@6Ĵpվo; 0+=Hi!Ҍ<D: 0Ey#% L8 Ћ I'/\}Wͮԭp!qy `.!u S7 1)5(@'@OA5|Xqeq] A`_!F$lH , KуFGAiG@Z:B-9#@% ܲOrSDE@3'E̹!bݤM b(7l5 }vC'!ܚ4:J*p`,Ir+%27$< p0H/5 (A?F0 yTM$ 44dI  zCRBpm&P $'@d@B~^pDĬG 2g$IG |-%WԏsSM [a4L&PL BYik p @BA%,cz|@ ``M KԴtLx`)8 %Z=gx^j@炫}w\PjNBJ'B9&bI5У]]H5& i[`hplHh,iQNpB~r4ȘPH?CpL4l%`Gt(MHeT d @n 3G_A$H%)姧 st+0P?$~##y% ϡ:00K%)pkX_V9}9Vwm*,. gN,n- 1 /|~@ qg~8 (~ ^ F%' k)!Trc6_*na51IHNdZP1#%Gt~ Ic(ـ1堚WG}T!%0HƐ7`fA$ %z0w,bв9)@dqzG@Xf 5!Ҁr?`>`D< e Nn9fgONl+?Sn@} DOt$!DA'̓y^4a;&? IY|V/>Jz˼7l\&PRxPJ"E1ab%* $?,Rao&$PlPi 2T0tbWEr,8h& Rwn~4!)۝!$x&7>٨H.J1E7nu%.opV ɢla0yk ć* .1wE! ɹL9KSdF3h"1Ֆxu:p5ȘyJE _֠J2_k0«B ${^䐎|Jh EٌY|((`{&Kn v%9Z&( Gl!_a"_4=ىhf@p;+Yo3Jx@``6,$> ;$pph a x k^ s"4f!q `.!u/I:$h鹘Dad#C`5<$cӌaҌ5 M Ҟ2\4HFrjb߻ /IOn`}T$C'\?SAALa#z F̓fpQ43>؈wfUmn.)5kOH$6c  k|- rUJ5xÂXS\-S=N1` Pzhɩ顺J{ZZ}!ragJy2.!\9 |ZN"I.811C9VfT7J=:Cy? !h RM ”2BU;,RZM-2@y%qa3-f,2PRhG?f,5$b?x7`ᐇBCܾT_`2ؔ\n ú $mjc߈{1;vutC6Zx'p( /ڐ4Yb&6uК B@CF<Q  7LhPD&hVSxwpj  )3قpq} @ra4GF Ґ]5r,J{yPi.0L3- ?P+DnIoS6%|5U.`m Fpd)ƽ=0X"JiQrl (7 Vy)$$>%:RlvIaB%C:IHNd03K^]uu3aCqBif _=|} af*})x{r<$! 0JSOHn[t )G5 }j%G̥y9Di4a, 7D6f8DG_A\]N3%IHo;8҉DԊah=+cQ/JFf]lxj%u0 &kgʓNB1({^!=xG*˫5m0=|XLԕ^ce%W1(|xHL @ |u`~jbwaY~A0` kJvK ? /|aA 7@=}P?||. /stEe#<Pԃ"^A30!1H,-=xy!ٺW LI*v.5|!lA %k6;-yE`{IJnқW.JF1!&\!I4A=c aSӜvW.TFC&*M1%'.}M]mHXp5 0$.s$$:舔4ws3SZiXxό{8c.,HpٯbQ/Z˵|Ժ-Q 9!ܐp`2StQN+a<0aT> (,w_ {;0aINK>12lyEf@>+@X?1E"-'],3b(<]PJAc«`sd1x !} HDg-d!PI@].R#gĄ!JNmiٌzv<P[ # 2 ?I`/2[Iрpi =-McLr )L{CSE!q `.1uAuL]ۢJ\zߩ{}65 a(oA9 EF2qK <$+F0%4K(z?o;4u޵p(Ki"1-2 4z,cg[ Aijom1ZnB#k9Ry:YsD4MݷRDބQLvi!Q 8"t&/I%zrAOX$qMbI"%%ăH 9,ffg~JUuA Wݩ`VOӗ_D,XogZ%P -@>Zϫ0¡2a60f)F:Dd!.2rvZo!)O heͲDG/tE{[|dnJ2DͿ2ܚ)k pk+ΕB^A#{4G׿x #TŖ’Y!)- @xB@LbM@. Ӱx}o8`iDwƑd(pzP 0 ǑlpLGc=ORy bB@Ļ%I۟Yod吀h vM"1ӲVS1^ӓ<0YEq Ad"_l'n{!%͗߯;~~J8e5 |!Mܟ7)p} g1 @l`beI;>`a;;Y YK@Xx8qPQiFG9`$**زɅ e}c 0!  )Lp|4&߷Osn$?U(Cvah )'%ELM'8NZI Kl:پ|}j@Nr V@HN/v_Sݳ0ŀ]@QA/['5~` @ 5PP qdɈJ:V ֧r4_x=`@P+2PB|3MBSKA1vP@bhJE$Esۍ_ϟ Wgμ;Ǵxt_+*N;@ @ᡠ:rВ'gZnsNX쑅\ot4UgrqVJ[#Q\NγOqCÍP&>Z?o"@>Oi7<5o> 矴ϼG֯Hy;zRRy\5(tܥ) 'gX'=[?׹M#GF#O?hF? ?z kX01O6$]GVco6zks#i~5ay}==b^ hI{ Ft20hg9%'}T{ltҎnupCKbYg4$MOaVJ`a!(`%BaVT[Ks8P tpa0"5(YiOJK9k8?N;9[ @5nXɽ#Wю߹(ݮ( d$ I|3[<ۼRwM b>/B_ _?4Ani/\|2\E:2\d ?< ?(#O=4.@ Sߋp"nsbOއ }w<;Ĭ}6zn?ppw4p7??07E7.fzP[~ci#7Չg x'<,;V?v<OO~ig==agK 0 h=x0o?,=@ c<HL  @` r!'w]bh'bGk^TM8C !&OpwV_O3? 4!I)?0 ` p{>?>mœk:ߏ#]  |b6-b4 dpŀY/?ksHsIbxb|ozdK O3#ӽ8  ]8 MCO|uŖl>Ez?m?s`G?4ks?wsZ=dM?",DWu nuce ?<} @7 f>S=ﻰw5atĉp%NN<[31&hCA Q1߱0 #f vJl!8;sylM&^ONCv~āP@t?ߣ Od7OrM h`b~Z;}2`7tb_R@ T>$16$`Ldl4#!q{ @ !s9leģ*ӥ41Jڧcr)8Ԍpڊ۪mU+Ewb7FsF31ڍ8 <@lX8!җF 7 iU--r&^ NE0F#ۅ-6I4lJbe#23#4$IFmvaXyoEǤ"m,̨=SE"# *N#G!&(MQA܆+΍s9TLYiԣTws.NWTMJZdmiŐ߸#-8KڍLBE"6Tf"Mجyn8Ncj5K ´/Y)SEYmV,bZ6ׇ9PQđ Paj$1"QZs57g&cEmdЖ}ٲUY",;$n %rj"{mݴ `e$"$#&i*,Quammm.XAH P48[Nڙ"lQst]ILrqC~ (Lm s#OV,IǓ+edF8.6NBMAnrFTݶ*|wͳp+'Q: ;9኷rLޕn:7G@ɦ$)Qp%vlUȮf!`\<ۤնKQPMl-$ާ~LrqZpjݾrǶ:HfhGHPVvgA` -5$p:bU#24"4iJ9Q5Yei\q]HAVm/'6U0wZ᧶:ʀ/NH#O$2%po*mWevBqړעlH&,C}Zm@dqJj,*Ժ-e _Wp(:lA7\ n*QGPRr,Lj\H>zNMQ6_i+Uly&9'&dmFV촭2uKc"M)hŒc/HԬ[71D,&`e2U"$E"I,EEVUXqZeq4NmEhdK:WG֙¢4iÉ H"ĪFgl]]+*m aDTaAI #%*$*M/\\z):7hNR4U #J*hVv ڪ9WT-Һhm*8_Sz\B,-F=RZtlK&AwV.'KN5hTr@QJ֧ 50VAOu}-5r$>ogLZhҗF"Ӌ"GkՒ.ӱ)ؐa Ͱ @bU3C##6I*$ IVU]UeZii3LjGT*cZU+ƊtNIn+9+2MY*$PS ]3h B ďX$b+}lxBhXl`iM Ò,U2N2\%2e +E$򣦤-,?!x$֟ SNɫ; FIHU E7YCX- /NBdƥMjT*K@)67^J|y@nlͅppRE;IaDrriƊbtT"*9é91ʑ8RB鷯& `e2C3#&M(PUUaZmƜq G\ED 8lF%hed hM©$FiD`P1*CI^$a\ڱntB&2gBє7-G(M4I$9p+&8R*kˍWcI p6rUNƒ:W2k0R $fFR%9Ƭ)U tYKĠl:1qU:&Uc]r[e \]Smn+169a0OCe"TqB&c4ۖԤ%;jRn[i&&Nwm= !q٭ `.,%x؊mՎg! #m'ǀT$ȵM"ԍڡ,3d'OASag$]2@k<wMs26 O]>\mDu`\k"?sc%OƋ5M\;?X^L4AKY>'HXB\ h|2^l#.[ Bϧt>=>_2g4>fq'{ߚO"#wp;LpsY}?p#O=týƓ?E֐ Cai,E|-`3Eܞn/\.`okϧlqs}B[ eI`(@3&&CC IQշntAH- @)OdO@)HG,')MO,#oc'< ?OϋX<t\>pϏ a~F`t ӿ6c?"`(HXX @6 &f `Yb 7so|@ `RHa:6:Q0agd|Xԩ|`(vMsϟ&(h|D)lYhKN~V^|?w6w`K1\([K햎5nm Jz?Xj @2i07-g<Ҟ-C8Z3<>ߟ"8J"akO4n'n@:\!)Od#dǻa AɨB7JR#oS]@cAa$B 04xLI` ' |Rp6}%CS-ސt:XQgXo{{\aIJ cc A\fI59n O$?!5u>3W܀1l`)R8{q+p0)eЎqM5tM J n %$v @3wI ).o(]䉁4q,Dy] -(mۋ.@bBj2 Y':B $h﯍ ii k|%+ ~ɖҏy#<Gy<"xp 5<>{oHS爳R<~OߑOr}>O,O]x0@\ZPZ'~yY@ @@: z@8` oAq%,uM͊AG|U%#bFuC zObbI$1hYJP۞.F~muEԧTybOH z[!lC_+j(,zƤun<bb_lN۹@MPi[>bi P 0h%_'?5 mrvX!bL)'rW7d'XfnHb&NV&B`ؔ^'x})G{,?ͻl;:w7zo}'{W4\Gy% '>_ϧ|Rb9eeP_b9|V{(vP9 ģ0¯,"`j:S<쪓=̶Aib3l}xce7P (`՛ˀ@*z~2:{W̾F `*܀ԓ `$!p@LŀI @bd@`N477͸I (@o|]aQ̬~B@44j_fעM:R_JaHlQ=DF|9|\@BjMVh4j@?/+c. (BE"!s3kp`' &)X#T`(HpD>}ϓMo_" &`.@.BRu`|u{K O4ͩ~T~1dvbfmau6 %#j@ K7[KrSyQDJ׽Q\vL,0 BQP0 OKud[<~Vn^ /y<=A_(_t^;Q}8~L&4ք{_?]uv{N [C@$B6_0CH‘8>րb Rj0#N`@3/)lv+bzRD 1J  ?# 6%2@4nOQ0=?$Rz=!. a[ K#=0kGm\ mIv=46 `lgffxbn 龴>Vc x>ۮ@ \K+ǐlOGWfQi+2ڀ#mAYméYM8zG&\cS, |M45+0@ȗQY7! KVRvA@cBD,ڸNނDl0b^8g\%&|I=;8XzIЕDh_ NK(ބq x\0't)~ I&I7n/֖C|EEE)`S/mOhY)nK7LBQ} y!d}'!pұ{3祖dbcfl^Hw<Q5-󑭀b F IO?*>-ͧ/7!m{^> }\6W[oˀC .T^>eTy`69B ORG~NG~m/ѿ|xT3-}>si-}E>ܥ)!s `.ހ4@vbvJv oufBƣ݀(Mb`obg1"w9_]ҍ{Vv ݫ3 @4&J, Q vn? |um z>N}^n-ꊡ'Ƞh2Dߟ`}{`r %ѹb6E!fB3b_l&@vC mfr7MF%`#b?0O !\Y7[Opΐ R!9-t ߁?s@vJ̜(KGuƭgO.ps۰ L05%I3Pn cwP5%~L a̗}q/oTp #a=4Jxr>0B*CPB(G;Ff>@ Ka Kd3?S!]I&1F]@`Tf$ EebYa)>7D 4ezy g^!/>vJz˼4l\ u} ЏN @p.Lb>$\094IWQ3 D4(xp2sr/4eKIeJzpoa@ @vVh`{L&O A˾&$7y`$0_ľ?@L+e0 eNO3N[M~ޞLYy/ YZn44q/SꐛI(lX `>=8h))?2~o;%@PD|ZP퐁y8&pix~{S0xu ф]  Hu!$)Y;ܛm_@j@dͻl2 ۇdMJRK~~߶My`(=`*ae Ѿe|>*(7Rzv;qCP#BѿR8ѱNBGIi{#Cw'Pth'AdĆP*W n;Nd2W|# !j@($ԔJ_dfOkMNK-ZȲF@1y[qW&S@>ԓpkq*䣑8[YHF6$؟.u<})_ ]o7ְ H_; 9=Bm_a[) ΈlHwSANfB^$H@tHr3DOD7u*`]2UpaSN~UJr;a& P=Z qvWf!" k*MЊd a -+l1)9ǵ H]-/]9F!^5ꍯJ$+->s>34 % C\uqy[r_Na k!RMīDB0H[YHF6.Й8,cphi)0A=@2+kS`d!V|} =<V29kTNFju iy#0I O`]Zx|vо| _a uD"-_;`DH]xCcDi``] qC09 +wv!s&{ @ !s&eՍ!5@bu33"$m( QVXYiZm֜y݌\Ҍm(֐ n!QsD2䮸-cD9'2W]WHr$JKcEƬx&),pjY\.bNI7$j73G XB'-D}M{kDmGd92PKepu@-Gb ӸĦe ˂ XTژŵJy. K2N .T#O a MzmBאBF!$BTdbe{M6LtVk(P6Lj,`d"D4F0h뢢,9USav]Fmmo<(Ӌ XU)t *q 6n+TBՐ%I*n`?LbktP}qJ4#nj["ٹJu֣5k-eLk꙳E>;y(UV>*bQײ8p^N@E["u6T5VN,Tndi QD{J፲cJ|`VC7+Aoo^p"6!hGxEf ctáM#\ '[Q6[qEZJ044k8Wf;[bd#BC#6m 9355]YaiZyy´-H =m NY֎pٌ3&6۩̯ Ii0%mB䑸i9%&cWjڭ(/66̮m$Dl^+֍E(MDӈmi ZR6ښ) R5bMTU5u(RR!yf2sY4f%Qps*i(Bd;In>p0qU}=\p1d{ȵn,qR'4.w=tNyf6-ۮbJڪVZ)0QDdhQ^\IԆ9սL[jdooUdGȚ[!ugȆ$V:b-Hci(JoZ0`d#33#FIM5VYuem}םqvVQܭ5+v-  &}2ʛ'Jli#IBÎRBm̭B,iʼn$Iؘ7*PiI/&!s9 `.1u%uAa= '#!^sY}cwv$)n%)ІKIvpVOEYA<G Rwڞp|T'PF[Xºi`|Xi1%Set@3 rI p`  B48+仰"p+5^]<* YZ*_0}%-#XMْOBR:@(/A|w'TǷ3R5T3~n:8vM]3Mġ,' 0, L#"qƀ iy_y_Ma|4`d(.hw=i^_{hJ :ާ,Or2`5ZeNS +Fs_m#*5X&pV}jG0* Uq , Š!  81-b%{cuԔerWqJ{P -ڣZ`_|WٺRImDt5 ]f=\Ժ=D;4u$gnd}or)N&[uk@1c hw >N]]Å=B{ r,HN) "wV ]3H` nSNp3e!A("'CApN)a990z"zga^3%:3uEЈLCqs#~`Dqk;- zv2#Z H_; 9=By/΢!39OP}Z wdVk!Hso$^̶DF'!Bœ>챬g#w~UQ^ a&J Ca#1 5q# 0n?4A2dEd)tDYlڶuz/^5ꍯJ$+->s>*O2OHhbkT6T*u< hx8-7?^q#@3`< K!:(\@z̏XQN̒I#.}ӷͿRm2F%c.9ӛ@vNq%ǐ1Y ?kMh,ʇnfsaQ`?š 52Za[:Hh@p5  GljxE  (<3tX9v${}s뽌A>@ix)7h@$d7 ۦ<(Q4# ݝہ a5ĿpaY*FOx&! l3QHp?>P r RW,4mtJf n}޳F.[ kwܕhw8!I5 9!+Hb8[lB2y$Z]=Y%D&m ME !R:&UP-0(v@D7ad(np 2R .!Ћ |TK2v]oOgE @n^I@ 'E-%xb`&Iז10 . Cj%@LHic9AB*(4uuO\WMt!EuRjLW 2g 壁4=vX` :(i`10*Y:@& ؒK &ǣp%I\XG  .@ d!sL `.` K58%a$hBFQhA/_(LxBa`h &PP` @D - 7ƥ);" 5 FvBD*K83q1@( D%!@&( GH<ŦAι{UeS_U/W|Pi+DBD7Gp.ш8'RvH)x1?mr?FdidH7y;t!UTouL: U&MT5RkR+R$T T#}&M@HHԂ*$V, l`P`y0 #R[h,TL:p PX DщK N (a%)I+J $!J@A$ @IOLP p bL+Q@TA @jIdp8$@zO "LIH IiH"R`$rPӊѤ; 0JrjHV p$B`eؤ,K,2.B1 9Ii %>t8J,@` ,4 NQiOJ5%# @Z6Jp#0@PC%$ $ΔDԒ - x`x&J`P @CI N$0  -(APOIa)HnGI(+[K/ b?# DC-p>NTZB)K C 9ԐJ@x DI-=$aNIP-%$s@>wcWrLR';Dd]/;ku+ Z S Y !G[8s,G#X\:q\X>fB !ax?F ɀ !W<8SygG.n76Ѱ@!87ܖpW Ӗv, D_4Gɰ:L `ΞDPakHN΢06pXJTM)NX5S ow$eM5.wʺӑPnQh-M Ts8 [# 5((gunS)-44_oD'Z08 t_C[ `ԗh H$ \[π\  6/3'bjy J$ P`6y$R*<Ļn#$Y%p,b<M,(GH@:H %BIJv 1&4+%;S÷M<`h` MpeJF_-$~RJJ8BO &:%:N(no:S z#xKvS`Ok5X{Շu>ϜMkDP  ɄԀM70j8 5knj!&7d#"I$l7wk`X ? `WP:!$1`Ma{rO@,o9P)C&[܁D'` Brg@<Rbi4*Y f@ "h ҜE/dvc #E$#cdp xDKG4!Phv5OYAiI%܇%& 81yE?os0 Ir@ش`P] $p1\?$ '@4DtPo6I+JaTB{ܐI@BC;& F8mֵd~`͍D!s` `.!uoP_ZS5]$ a <5v NR@OqҰ\=Z$l5?a%9%dҋ= 1|3iH$AnfX=xk}6r0 [~|A/0x>M3jg&pt@' q4_Ah$&Ij e$ _bPА4C;3vM&r1AI<>(5m+tb@~%ޭ) {P9 ;\sR)s4j1B`* 7u45mϗSvxo0AۃB6t}Va%t(>xhz)7_ ꁣ֨{ȾO\o4&.N۬j33 6gW}i /7̉+%8N4"ؚ`$|pӆGrS0({}p}g A/WB@ţ4@\RL늂&sU;) pÏ[8/)NܔYEjp0`9px|"QR s?@CO`(a36`N `<!h!p2:+3341?_$PH2ChWU ǻ+Z f2R&:""kmJ W [s*.3zںlnh`*005H%ކ4h `aa 8P{#p#'U >2~d7 I*O Wp6UO`-U {qV@!~37Gԁ; JhMaҽ^0skq Ø9%9>c.3ʪNeaStCCҿĪc137UV}t@Q:6w2b#NE͟+uN.f F*s36wf) }U| !lPN9Em=|fI! /(q>(:[2 "69םv J!P:Pݷd"̏a@:6/]b:WwdeLeCfEZ%  аP_D̹R!9+w>bWJh}+oִ8B@)6 ܁ ᭉ)FyI#vBCQY>3:ClIM.q8nvv &|Y${-D dNKFS5=^s"V@)Gj!E0 $gס 0i-b&~J@ Upێ_aTRta&{,Wa.Z@xrYQ+HqFϻQ wrMqn~ٱ~ m X#|äِ^J7 Z@>T> o!t}f7 )>@L)O-'١p)^d~NcTJ^٢qҕa@}h!`r;8`+["+^$ m9af>ڿ@edSTP}ZeqrMQZ'""cIP{}oHJRYtz3]BG>RQxAA)Au-&kl浜_ca  p$.h+zErywI|w T zC ]Z;j=p}qbIQR8p'>zakb@{oeZ̾6l #5#\rj= FOC,Y fj {Hk]\ f!ssG `.1wT u%[8 (!l (%%_sOpNۋK==1  d|DҰh ls^2PƈV|*Y'Fl-KO@DneO`||$辦Nx.ڭE7䟹( >t$ѭDAz1>4D5%QқJȯwȧ";bK1(3_pDX}If_R.a6eW9|6roԫ1(Rp>i%L$ .hLQA?H@\&s͚lS]5 )59s.~J5f98>:$GrY/(>%J\[r AlW^nqN?8π|hTO DF9D Q`wpbw׸Ы}H ۝#'N| T}R?f5#,>s"} 2DM%#^)*l"|XMܰ>x0Byˡ +Gvl0R>6hl-H lg@(#lul#ID@d?!.PvDc fQ>NC<w"8ah %v}7bqs}uw\W @"%OjC0iI%ӐPah&!K ! R ` o%?A$HAG&JZj(Q)gREǞx1QhSl>1!Wc{bd$33#DmiU$TMU]viem]U)Y)TqzR։ >RPdmZ-$[±iQ$uuVGJDTMȚBƒ)08P-T j"%ĩU%UEe#u)𛭕 َ "qu*aI&1m#2CSK14טiF[nةqZHv6-ƣSR+i!9$.2EfW$,B$MmMiiiib"7JiڒW HUsq*qI̺$ͦTMƚ5`S$3C26MꪠPHIeUamm]yƝwrr6ZO jNl$h["Tmөf6pjYE9`-a&(Ԋm%$ڵAbcJ\))f4ڋpJ&AJ6"v%[0+W:e>"=݂7`[-c 25Fo&*9VVX%huĢq"ҋ&o'6m~rioV$!d]0SCi)\oQQ*GTBhl[;\t1pbe2B326IjPIW]eamL.=5:9["nVJUQJ:'>NF1dqHj\RƆ-GE)+Mjv\ti+2u4ه75l΂mZpF~*Pl'p8]-vj4*GN)l7Cy9PLMʤp͓cD?V Q#-TcɯX;A텤jp<|oKøc#M[eMudx-`N69eV7𖯘%N;S Mۭԩ`d4CB"4i4PEfV]eaZyq =-#R!% /U&)qREI:]{pI!s#qĢw}e6l!9JS%֙A1~ xUUDMjm{+fLelFm,in{4!IZR8ĐʗVJ0p5mԙjbcxJ:FFEn`S~+8:%inVMu%!k$ RYC>TI#VeX)]η 5m,-V}p6"D-n(Y+:bd33B36i4AeVUfXepuNȥunZFITNN9$|K?OR;O:TlQf•T͢i66~iMD8mZr3]I.hQhNUWU%A!ZT A+\T"pd%+f8iͷcؤ5j8-ت""OW2P+]JBF EH+%Ḏ%Ozps|TqD[eZ'In6rmXH}IИE9ؔ3ęVӸƋ4}&i)ii;o`T#C326m=UuainqpƋ*iݑ䜪ZCY mrRRAn<ґ$byl="vVSԒpaN]Kf"TиuLm89$J5ZK[rm3DQ(n(x"$' *P IZE͚S-bVJ+))ZH6VqD.Rܴ$bҔ7-wVbnԍĚlD"gUjK.Hl!s `.|j P] T$rg$f:VH@ @)Ҙtz('9LID ! hK!3)ZA<~Hio VͶTQ1(7p 7)M{]eUSI]B"D$X4H@TdE3G Bd@]c~xHHP| m I\ѝ_u]%#$D"c@NXߗ`pB: =n=XB&Ľ~8ͅcGjj U"*DT"]^]EחQqu ,i*g$l,@LR`I (I&7'JRB@qp5 (o `b:Z@/l0 ,5@b~ 7p@jR%,!4YCJGt P\@dI)(JC1I-R!LRIIBpP ? >$ hES?V8 ?TTp ]B%IQqutERKJx%!(   &$00P1@@ _@J/i$ (@z n5!"Sla| v3k K߅ͿlDD0؂dv#aH 6n.uB#`nJWW2&T7 @t7 @GL,Pj +1'$1h!7̡TwK%*aB&"y**֩ ZRD(H GNߌ`'Όh@[?o#}Ddvⳬ"XﶣKЈO'ل?OHp N,iBQ }~%=/Z!@H oG>Df3#%LFIEō;!~&bJ@=';"tQRF$O^%DIIi,x,ӀVN(M][Ł#,G~ZGWCjw 6" NJ,(i0,N&qaCpJcH H`HC#`1?m n$Ǜ« ;FVJ$T 0$Ղp}1:Y4\ i(wt'wpN*,i4B sԚ_PUrr!FBBځ!$ ;'؁0F,(c 4]CQd"};D$V4q+f vD: HOHHYgBE4& %A)a zVUޯ꫕bZX0NXFs@W`?|5@R`EO;o_*!LŖ8bd,T@rr_n ߲y`OI: 2G9DB 2-J(D,*J/% u=^~B &ĠjI{gIH&Yr8)TIF-(I)+ _N zJrzBy;?ф[D.LbFG_RDm1V.A1q)Xa I;ORR 䟽%G4$L 1J~\5) ! Q4;(4M;Jy'aO [n0=r itEUţ4\PQ%J"Ǭi RIexX5Et%0 [abI՝_ ~!s `.!wq)"S8 2B36J1)'Жc7 +tb3ig"OUd&} &~  w&\n6m3##i8 &tefP pB7Ϡ-CʞvWVpo 1`{7OuyOX p #}qo6 4Fp'|>=LAD POp~}u.k7)clso8UL>b&7`<>(a:uLrݠo|)`T"ƘkwLf[5`i XPT0H@}p0w(?a?Bs0}A{63?}W"D0,E ]s(sNɄH͆5>DU0*8~?2dXbE%X?MyW~U ~ b6 !#F“Í"DqV-wXI?Oc;wxD:Rw@F{Odd b%}1Ȟ1Ts30X> b1ϥ]ykwvu,D٣' Lv# =ɻ"^vnv!8\v ,6=ԋGG f^RBưE7lfDD }W 6w )V"0;^#Q9܍;cr B౅}UDqC(-=Y vt3\4D8 4`-L]31bTp~l6! RwvW 1f?B"~t!`4!`>:Qwsy.K&/5zm}7Ni{ѓ! }<+kj{z['`!b@ L-?E{`2x㸹0t$ _? 5wr0Y'VOCA;+w^: 0}?ה0w(?a>~Gـ q#Bkp3PBSDPAc SX1n!M%6/0BAf<%  `!N1&^ `9=LAM@$[9M`ViW0<{<4ƼJH]1#YfayOR, ,c0c.S @! Dz0 ! _kgФzV5%1?Vxń (6 (x0`[BÏwp !kSHݒKBPؓrX{ң@|g76ױl%V$Y_5bƾE]$mܧ& -hX^Z5}WsԞc5BE`ϵ*p{2<S:+zBwd/WLt^/)^H J@xrI!gK ` (c^) Ʌ,b}>K|.1qCw2ET!`gNX+mVd &T5@),' قÇ͈Hce{.+;ІVN`i1jdb^j!.~sC%FyH2d $4׾0]wvO]7Bz _`C}2=}@BqgßZ;*WւO 6A(@0΀X}P4Q08""?h 7x;c⿅[Hx"KΠC&~ @" xz8@H Q$`#ԖW $IHQUi pꩡ R;IGgЬ/79}|A{63?}XuP)^ݰ@wc T'@w~6C0HwF390t ôzaQj8Y`ޜ4 JS((AD $8f^Q/3ֹ7*p&\],?|nDPtC@ hYd 3HX z9 H2+ ^O(h JX!sG `.jx[ Y00R$4zw%&zDL%zzR(.EeT%1quTWRj(]՞Ȥ8"~Jq 4f4c &@H#+h'$D4ad ?IIDD &YH/`?JF-π4AmՀ!qEXn^] Kߛ@;)H᥀حB*('9 ޓ#HU:L CY"EAS&EU"dS"Ե"y PL` Rj@0@1 C@49 tM(ЄhJ>$+Hġ%$YI%hG6ـ fX0oA`TYIbv$a5p:3 `D@ P IA`\>aH,9F0 I@ǀ `(  jEbPIHbCM |I >Q%GF?Hi1)!@ -%b`($!ǁC R ?0\HF;bDM- hcwXw\ *R jbd xL 2@NZqD"ac/bY(0`āri 0XYCmt"y@WɋsOH447sfUôhK %HRS+L T#H)rjH*(#F_Wh4/b@tKc(Ł>^B@z _@elY @#$j$ )Ii  2@a LrecR ^ (X`Nv_%r7cp? *h&c%B0Jb rjF&#Y  bj!,` 5 $<@Dj@A4"#@@v   !&_J|,I &@ 6f0MLy8`ɀ~1n`d6W'% ݺ~}OT",1Cq|*4p 7^0M=@jMBy  NA.l'EerPM%8ToJi? (y(܃2oҌ&膜LGt+ !K KJ"GĤ(u( Ć0 ذ+RM "PFUA(0(p`*CB ,j7X)%i (0ئT/0X0eJ&bF\Q3ءlDHmNO-?;%CV H^{25vN'I;[ 8ŝ̳jyE$5$O(44X+$ 8wow7h 9F Բ*NY@&ByN?%;%hZ9%6_&2%%O erx&u3rN9#b|PfN?ōHP:7<0 g$=C"JdxO) aeN X 4B?1VD*CR@F%%yGqa#P\#"sJ݆f:OP`&J1hJmX?BƆ!_l$d@fF7:àO63 8I@La *T$#"II x JND$p tGz0߭]Eմ7NB?"B~HXaxIowD50 QiΒ՛nz%02MA\!X 0 h1)j gHܞKX`dA P[ > D&}$Qd'|&8 b~I7 ϶0rO(`gHLXbIdL %|4fzZ5t꾵ԯt'sՕejhAaD n#ī y,Çc`уS@x~`zcٝ!̐vTS5 f F@x P[=e$@a31aAД񌔫,*zo%BSqiE~&s0i*mLGpa3$ԗ-%!+!O牳I16_%$up| P_ &C(c%i4& &U n>ﻻ.%jo3{p쟔LM&%2~% njh @@Y%r5v#>O,a4҄v51Lg6q7(ŞbA)&: "b^aZx,E:wI4V J9R6tAXBByh [7Ilf 1:jF2֬}&PbZ]J@@HRh\ YwWxG@ 6!Q^sPf{< ^ui6=Hwd8A\6w^:"!q։q{wvtԝI%o>I\O_šF4Pb߱w@ARa B*9ݍ w!}ۆՌf2rwPG;p<(O  7/BFU¾U OURs}s %ݐGofbjJ_qGD=-wiЀp? s4" V! eQ Whc"aEaXvPl8c -p~R{#@aH(]P/l(wf&kqZF"!|! RvcR`j+LJ+N,#KVTF ;@t=x#ReuB5Xy3W)Bq`}lY0sNc' 41W[T鰷w=_uDn{@54HUқ:\pW$R̨;M}}H<e3!GDCPhK> a *]c{۽4(bJEPD@Sc1T5._Hu6*[e:|h/NC1 ks;* PdF3lkHd!$18040I@ "!3`u'&!\ FTj-#@4 )+dQ%Q&Ꮪ%🩎ӆ8ՆC|?gB:DK[r9Zdua[ǡy aH00wh24&_Sg.6oC8GBڈ'jNd)H Yq- ,(mQf@ntc]_~t} xŮZx9` ^1¢_pGa`kp)^`dFLDj%dC\d휔@ S!u `.!wRW_aU)A! c숄wgO{ɷR%DhF*,5!<*PPP{3(ƅ@ܕ9a@/|( M/9&Kl浜 %p?$0GK9Ιeȣj28V 2[{{q0VP0 *X!h#I*BBGY zDKz+D69[]K<>6< `)0M;($0O~@0&CC:z2xI:,n@Z^SRID‘U<I1`G%v JF 5ɨ >VXK~‰xCxyF# k^ :6M!xbs 9ȱl,é{Q+F^"#^7 {& -e.9Ġce!OwHmKːQ]GK,Sܰ=K}Z!rlEg" -+ǘ1Kؔ<֛&{xE+.z!;6ʦB=cr,Ԍhi9&؅ HMqE`x)r.>pY _} d2bbR•@}k6giB6^Ms1&"fA goo5DyLOë4$Q0dKxɈac T KfhJ(H#MGJXyp8Q8`T4j I+UվipKrU|k0wK΀9(B-R<&\7z a} _ZFI6Hb &rhia) Xiy98$!倨$ @ L(0 b RK Y0` )BX1bHOA'Ӏp@xRzHHOB^JB@ hFM?$7MCSVI:,an\$lx&$!9&! !u  `.IuAjUWQJmu]R*[QIrMH @N4!!aEpCScfp &P_-2fu|!BJM8! hr q a@d4Qh-$)-GLM,/A.w}bF/1)%z1 6&v-?]5IURUIUUUUUMR5MWj@48 tp2 RYi$ I@;<|x  b  $h#RH+) ρp>T$$p?DB&hJg !VM`Ԍd,i&A[P E${r{Q ŘL! K SFZIHa;-J@TQ F`=0%J!E`Qj!!)OSJ[\WW*u+TM:aPhOOM4Y %)m~ DBig @^IfI w9Q(h`7D75E$ uĈ``"%FnUZ撮ӀYwVugwB }BQR$@1d DX誅% Z1eYIB@$JXBB# +CxQa! l :z< !!P4\/ @v `7Q1 1A$ƕ!L  U"MT5"M` + cPT$"E]TT0)}@U @jqHRJA%)H@J`) _?dM aeD%F4 A AHBK -#6A,iJAT҄XV^=R BbL(/A cdgKЖ&F3 |B!0 N/wJ vHJv3%TL2KP%?qݓJv ]کW@ T+w:>  k | t`$M!a]Gܡ*^(S X0oA[cfp p @!(h"3T I\  C q 8  @Oc6@\0! R ϊ{$J 2iI_aA颉tD N0v_@;&%(&bH ^h,4 0fo &Vd" X"J %} P'.Xn$`5@PB>>!I R0¶) "JL~YE~XbRtCHHSttH@D%X\]tB@5~P` a$T< @|%ᡄ?|RM-<$q!lCHnp̀nI>`m@(!H+ܹ0`bP$h+`& HT )) u?U$t' iU01AJNA<?s1pgE [& BqDGeS:yy~@B(rym)%l trj gJzlo$ӸBFvB: O>@- Hv'Bfj004 †"H% $4Pf4eLXԀ RAP 8O @ӒK$'_ ,d'Ov@CuI8Q (|6bSjL#w ۆ!u3G `.!w9 ໲DBN]RPL JWYK0\P r'5#EGZ#e!Do# tqifODB!514Ph!|I>!H!g Yt龈xSvxc (LB1/jR`m_Vv #0 %p_)%AhJ%xյYʌfT1!Q.N^ ~ *»ffRy~BE1 ω:ڈzcb|cF(~u75 !^V C qi=pL)<ws8 a}*IeS?]{Z*ܺ#2.aIA6R8HkXe=Bp@`z+?=wW2u=R#mxuGDue1Dh E3pAzp!̀a1pܥGW0Q]wP66[:1f= 'w w\# r%"P`n pW[ˑ_E:zC"D+7-6Tr1onUJp5U "!إYzƾj @Hz"BJ,S=Z6/9II= %pNP{Mz940Y4F$VY( Lbh9+yYCLp d%(%D`X * O$~V2eL3Ue*xʩN=p[ rAT> #!rP8.r"8jA#$7 i8Ё/D5 A\ B%PJ<01(H B;3F[kD`^Y-Nt2$Evu JFGDT LKZ1W%M"g>hW: #(an`Spd)4X|`!uF{ `.!w *(ۼP |!KmDV 5%lL&6KCCJd -92I?Au&:4F=GDl@VVE؈,l>^z/A3%׶$ ZI{)䣆 #`?-L8 0xDBX>eiA,$fm !B Z.Zl @`'$'y}%5>΁-e > gW;K2)Asa A$_]Pga\5!i긅9#8 =  J k6bٱqVs,A0!hA>O vHcq+שW9mGt<+`lb '8#)L668Ld{_e?{Cm!/<8D֝,*Bqϩ ʌ8 #!l75=7KbB\6"R.2)^ըk!E>E8 +-e.9ˠ )Ҟ3J>z?G3L%rQ@+A8_=7tm\$e55cLHBT}2IGgJSc>E  +&c6%b=\3Y(lk)_g)ɣm!c$bU v+!9\I.^Q$96u&e,j,.P~r;M\|pL"y|~GsV͢0&Bo'vMm+_>bq3\ϟ" [X*j %4_KH#(  #TŖ$BSl[рR)Ě) Ӱx}o9A Ύ, u,ԓ04 ǑlpLGb3Ry bB@ĸIJsnìױr@ tB``;&Pg !uY @ !ui5u(=$o4q5INjh!sf Ibu$$R!E- -1UaViae^qٖ#85ަke^/qJvX#-RL0YfH琅]C3R.2j]894,v5ܮ)Pl]T*n >1omoѠ* |ؐ͝Uˆ c3z1pF) ZHI N֧&R6-MIe(Q'vVP=7_*6QD!JT*cUATqʭ16q6HIvZq&ҌU/j0D|İ14 1F^bF'k$!5ڭKbINFTŠd1kqƒH6#d0`T"53"4M2.ÎMOUvV]eimtkp>ۋcSl5LE1cƐq4a);nL$u.YI)%7#YXЛڄqlD_uIL]d:!#s)ag:KwH!*6eT}Eɜn+$m WZXu:ZdMkU.RUhFʻHJjV A`.un>vޖTˎz˱ "Xl5 9qЪr3m)iQEs͕c$jZ$S6jWܩ2jMVU=Pbe#32#&I"o9T@VYvauq޽#cI(ɛO,EZJ>$a&-,/Tp jD@C(?oS.#?πb!&7B +00,nlڥz ҂J0>s1&PPŖL-[/h `& `0IHcKq4VN{q'y¯ā@*LbI4w14 :&Z9i&f Kl:پ|}j@Nr V@HN/v_Sݳ0ŀ]@QAT-vCVCi ?0 P(M(8Qd% +?~A0u:Fo ` ?We0g,cO0z @BP(1 :- Cj^|Tr߾S>u燿4yW.=x=y^奧h@a0apr5+&HSW!C0XirC7_oRݪ_` @$ŖQ %85ɀ v 4&KNHPb IO|WyOcǓJ"~Rp*`[%8ܧ’ @LlPJ& I1=ӳvmߏkQ2|wݹ} @@1 A`:&' (I v0: hB!@a;g1牼l(ηǝ1g@`(&}b-;yHuwg>;))r9$ 2tnAJٔ^- ݺzwot&g^&da"`a+wvUTg m+G-Wy^Zvzԥ!ʽ(0g턛F&}S$w?=V< }"v)JCMB4ؤi7)aJ*AH"#])K{%!DXibEFM%Ej=WxxQ&mxw!딥$)GZ ]-`)JCIRCܣҐ)JD=ǃƑ(ƋHP}C7ػצ5ayO'P Gy5?0:]m}WsG I@cݹ=Cϳp w@K(h-MK@q/<0 h&0ndc!6 O)Ҥw_~{"a 4)?d@9 |s !hWI/ LN`@PElCEe!~OQ ~]MbCId!u `.0_ Fk T~*L:OCk1wlijy{{jy<y\xo>y(zJ.QC WO>ףp"nsbXX͏׸? uCͦAy`~Z,~7߁"r ݠ=wAnj .Az?K9LJðwX㻑iiזx~8O{Oγ=%!?7}$ / @NXE IߨU`K);n|Ͻ gA,4 C@47-ݱ.& Ng=r"z@cH%gB;RuK,gm`q }W"Bb#JJ@NbJJ_'X"_?qx"gBQw=}) 8]TXɤ !H{\ڐ!3pu]h5y-:F`?|wMŀx.\X^~0Źxx5͖K O_tӿ.x î4x c,ÀΏ||EG @=Y>5߹C.A?"O{7%黁B_=x<,.ËXx鸵yr8|߯ Ow].T2 ;,&' }kPC\fд Q{t'}^qtQܟ@'!hM!^|n[q+z`NFWSs`0[`; OoܥgqDۥo_3fJ~;/:~H7%P IAXVg>~# ƻ_ٶP/|P]ey}dmr\ k"͒n,h1jy,C2^9< % ̲o͂~=kk7x K=]?/ut +h}ŐX 5=gG Ty ߙR1@ I@eMij3vE\b9ee#/$ݰ Gp ͦi?}[h3[,sM XtA@/ae迀vntD'ao? @A&/9H( 5$y7K 7n;'jpe'O2X9 !o F>'4 kMGܘQH7J|X%&n[mZ*!q%x 6Yu& 0 |hWmPCBN(NpGdzZ ]nxo3WyGx<XwNP/akǞk/'< ?]>;?pu/ӾsWwv;ω!uG `.c۟WF!'?#.]IC@5Pfmz+2ՠ8 >SgHuX*tvnʧgq1K .Pniew߿;D /2BPhjgEH~wWYڢ䝒c3(Xg~h<_ ԓ:%+gZ>1ߔMJ 큠iH t $=.%dk2bQk4/ }XYP , 1$6FôCs'"Ƞsu'I-{'0`0S{(`jVuP زa['uaݻg?,~,ڗ'zydA1`'LjyL ( %1z!:!6 _`'S@rQv{`6}Z}C&%`͑3lK-(Ϫ. *5 @tIO}f9(n8Ԃ(Hh?/.yC,W[ot: H︛נ*_(tQ mcxn<7ҏڼmἏk]=7yx<~x"z=pN/,R 7DP 7@b;7/#sE |<&a1` GfXqO 7HJO8yyk2jr Ǧ٭Z;@CƑkBhn,0iJiɤ #'>Q '=їc,|P4<0PM&;)ϖ#7s?"?3g?ͣ1{?{?LyY?~lwN ;;5@b s'7s`%<|gJ7پlQwA J &tK)H#b:$|H!u&!.& )-+ &NJǶqy;QHW??5twv]1Hе!;;5M@bW!Q4 yad&W+ӂs?rQpO05Oϳg, ol=.6@ *; wgW%cJ_gqB,1JJ|?=?C bw9/&!ڸ +NC m@}` %{o Cj?,\tx >?||)H>qǏ!u{ `. 񯙇1nY@9P ?t]7x5 xyYn-1d?}Єlg9[- !G;u0u9cuhi\P' /Q}?~Z0DY0 Q 3b|$jlZJ$1=EG}G) Q ` &Y0 z"b0Bc!NC@ܖ\+JG=>`KO@Îp%—ha0w!6cϹ(05D4A(spD\C4j{!mijq؜ռ뎑J< κA}*Q>E$;3.^-/@o+X5 IJij)7F7ۀ 7OOy+؀r]GHEHJ; ,)Cs/VhO P^ή`{bLnՈe|y\@t3@A0oǐ.0r3&/g4؀L,؋QpZ:Ƭ6!> INv%{}^d䛸d Ԓ'0'sրƨa>rWemm 7ÌO [=/d. @1>D.;ҏNO_I=_=}ӻ[y~;) &\>>,MQ?ϻ B( PT 3ndٝY @.h``L !=<hM!ny4(M@Ha 4Pp  E* rK&hC@ 5d 7N&@ ɤ$B!0ch` ; BwBK+v_ ťԴ?v(Q0a`4=_ܑoDŽ6@Bxfe@%/Y4 IE%KNFFoot᥆2R7 +:xîbw/)A,rӶZ   7J0jQ:7(JrZ4 @T4 p @5=8 @/LJQ"K)sOC[.sSMF5K,0NVJ<y4&#fÃ(bI+%S@${mT17.(@t1UJ#+d]@ N ֑"J4Φpty;]F$u9XfE1ٲ9۰-#sSQ@`u#4"!$hz2 J<YUQUZeXmvuuƣXvUh᫟+#1i*KZI1m6"}y/ܿX޾'t8TquMPo۳4]QrS}yWPtXY KsTg2W4_+$MPVTQe WoXO| mνCߕq)"([u ƚpIOܧyV Qֶ_|0UI4n9A`.ds]b^èlDMZ/,=Wr:gl] jp⪖q_2rTf#^[qe$,uZ-O%L0Ũe ʘM1'4Ҫǘl]4T` fˍИ`UB&$RI&ɪJ(OUE]XYiei] Kmgn8c*L.ZqZN&))|ΉAkkXZ:к<4oԓ*+5]!%n\m 'f 1ܥuC#T»Y^HAT!N{pǰ:h˝$npJ&ٞ枧\Z1DmP~k˄# z}iMMs_xUN:jMR"a$;mJSSNtΦ Us6gjܚrbVBR) H. P8UEaYUeyYiqMUky569ZmstmqђgH=XHVJ? Q֪-*lԔ aK%.@SK!N4AWdyG`BqqiȏjsnU"JB]Z+\HEE:%{h9 NCXȰk} 6sL 0 9 k{s^_PTT++ s=v _hGңud\DqCY|`U1B$44( =E5Mdaamq*jc/J4b[]MUh yjNCI' M-nInԉ">EFUsnKnFJ]]E0Ur{(p5X>]$զû,bE,S7V0v2 $b$jIβFLHRնz708X1$!u `.!y!$7  0fK|tP'xU tft˻C)?fCl7$8BpKfןxq7mtOnOsb%ݒ@eRL_9>Lx<|EI=}'_->!&b)NB ŝq]  &>Ѻ8i#Rh "TH|7C %2kM))?7o}:ZPHv@m]x4}9ga5WP Py'͠C 1c2wF%O}NNc~*C0oG~gq9ݷC?zHܖ& P K&0cdnW1U$ bQng"ѨIi +B~|q~ 3p_o҃q4씠fdݮXqJT~ݳpJR?7~y(`fB?wZ9}y n¯@ctAe/9zRܞw;k(+2J`ϾaW( ݉}a5KJqe13c٘б|Rf\3: 9L9R((C-?1kFrn!o~7b JQ~rmgħ`F ۻ/]Ia@St5? h MV!1 7/RR%Z2Q0B@ H ';14=Ҕ%wK |O`4!jjM1d; bya2 _;;[uGJ>KR~X%J^vY3c[ d3~_oxAk8O~ ­Ŗ'F{)궿XQX)=-؃gNd!Q$d9)<~KI`A,Q4s,1%Hi xBJs0!.#raD0 B(t[KFIyoY7?ukudMN@Tɘ*^cRrS]$i8MB8M(#||(ƚi+2K8AA)kh.1hґ# da/ k(k킸!3^= m`X3!SWVf1Hϥ^JgbRk{#y; ÍEMU!f79{*&)P-=sЏ`]1*P䴮5`Y ,+Qpx#) W1@''@ W _bͬJ^},{1(s{i8:=O,_'kF@;C [-SYK)ipmlwv15brh#5 xG?W}9 5p*XߗId 1Oma8$H@Opt%}!2Ā#P B2 sWN$d2xHl$`_35HW^ ׾ɗsld6rCO2#!`]l aW0M,^L¥-6{%l^{KNJ^kBP&ր #!FYi^5~\ؓY &J7&qscҜP;.a  N( Ag y *kC JjT'74|tȃíҟFmItํ$90 #!(Fshs6ܟDbA0b @b@r$Pǽ H`/|.@~ z]iZBXH|ft0k쒾/D|3$s(gL y?v&Dis&YMDr^, ĿXkK&]'l #-hV9ƛ`,98Fi$[RfmDtVY/!d21obzV9d E 銧 #PK ?' H1C MmB -9}>ƒtE #&cc+%y=)_!`A_1z{R=5 AV/\[P *C0cH>H]K" { (mJvy#!{q%DJIvsqB"~ Aqc %Cr{$o0]؄)yq(a56#Ո롔{NL` LbXH~ja- ,4ÐP=(9 ImL:P7 ᯯ>`Ƹ}3e^:-+_nbىQ qϵjZ(ˇrD6|[T^I|7rP,\1*^cRrS͑M=-܄#$Ҁ#||#%7=4ܝΣ< PJZl Z)Ĵfƀ# dذ7 gc(k+Hv!A(ۙ4dҞgStHnֱ.Yy)1KӖ=x#y; ÍB1 !;, `\k%`wȳrx׬ a2`, BW #) W1@''@ BmJ^},{格U ''*@[= &"Ϣ3"I 9insֺy`J]MX#5 xG?W}l" o%)fg j&.$5$8ƙX6D M%@^-}!2Ā#P 29nBT !XW: fkidh%L֯rPCmINs#!]`(n<6Dh: zyyPAoS73QFbjKÁ%l^{KNJ^ `xӓl #!FYi^5~qt]Ц 7@_r \> ,0TpКS!#x"`P-d#8/(ElQ1/*@`"IϢXB{% /,򨈋 Iϯ6e5^IIƶ AJ_!9L #!HFsȉ'xX"`a %%>n-@Ha& @`):G8}ﮤ3s mzǾmֽDԵR=F4t;ZY'e(qg%~j̧e #Pc0DVGf0,;PJg' HM"a\jn!>ߴHYǼ/>"9!Jl,w|]Њ BR)N3O;U%O%K` Ձ) E K_`x G hH}gFmP #-hVM02 N e9|ֆBNv, нB k2c~XR ByelѴFq])34]ﲧ\B R}ӹ9 #&cc+%y=)_,eየ{PįoJ}dC+: &; $# ''QH<~դddP):5B(Ѩ%ؒu}Y`yk0#!{sKxs;GO`> AG$s5B /3lb-=<3PPsP!uG `.1yy[#G _?X r@lXB@lD,P? (9Do*(L &|Y?Y}μ#՘nI(fxhA/7I(WhBS(˓D܁./%2{7Њ1sЎZ)k 2^+_nb9j!Y\8͍H 0#a4i/:䑊&~WsJJ\" How7B"Qe Ҩ၃:xO*_3{-9 T 6fXU#_@6f K~qR}^q#@3cP d'TwV%/G B@rI#.}6:QXܓ @p S`Å %h1 )t.h=g%d&, _j9ǩ3 aƬ]`V@k3;X7xpH90BjHK2F@@!l-섀R , tE } # 4xbApRaEHPO98g F@I\a B 000B_&MG2& D0= $&\,"pPHh%sgxD0C B_ݷOpHHLk(H0\K>|FW2C K: 65: 'G0]F;ZW&#{߽pPQ$(!NJ9  I B `&Hd?D1BOsYh)()c$5A,xɻps?3 &MAg|D NO2\1 ?۵#t ^4 PJAbv( LY\>b4j; a$ 3@C(H܍舄DQ G܄er?㨆ՅO&!r cA,Ƀs5X3fhf,"Q3"\/! >?@@P}PhN}|I4"a4_t/Qx 1/|O1;{r' RQnyWr<  /Q$~3ҔTdn$MáBR'!{9t)Eنi B I! M?^  d$x`%2İ_#oz@$@ J3qDž}d/N'@7賃sx'w00 'E$oLY4L-%$zϟ$R UE;q/E ü6Q$}A s8T"./ w}(p@ !005 g L 90%/ ≅`xjv OW$h7a*/yj|lӎm$ cP]ڠnOT sV] " 7쟠NTτ$ho6%0O⮚@3%'1,zy) xd~s,bn@ц;:®ߺI 4p)H SHI_$0ˉ)d5G}BWk_D{P tJHġ#>` G(:qd{E]]׏}' 9_5<!w{ `.!yygUG'a]Dx_G|r 02YymJG))iKJS%<'MH#L]'ݬ,!&0kd^$\@2ḒHJx*x` eB*-`+R] xd{; rkN+Dy6nrQi ~W"qx5.,4oV"{?CSɴa5g8 sp>@HbE,@x t% &Q-%-PP I*0!`(P@j &rGM,~P`i-[ ^nέ CJ,1Ie9/Q q2mhXɺDpxx Zy`Q !Zy9G ņ<Ԋ cvB@hoFo`K[(C ZR@&߹e*(;O(nYD*Y Qt ɁJ \L!d08\CI}dvKQ#_TV- $%Yt_"qb(Jr7JzBBj &%KA$ӰA?$?V!j tPnM )sUc w[&#B 4m1000S>f KAB CеN>)#5!HV'>\aEv% ;fKH0&h! ~ o€eM`S g@jJ9,ha#(\`j@9 ѸEDHcfPJ[ # ed0,*儉qt9V` -@@&!'ae#7܏+}b#.efqfjMj[KI5&QƔi@+{X!H5JA\-OCA*Qɂ@PJZm6ZcLh# d`Fd!X¾:!v@$ g0a%XH^Y ,0,bk{# H4c)cLotOeHM61*(MNxt U`_ `,Vq O#)JW r^@x% P:Y #M.hRu6ytI0`+=lXIE qh0o* ! !A]?YC *EK<M X"A(78a{$$"Ii'iAf';8єФi~kԂ a1l^._=Hc6?6 #!!w @ !wkaWQ"e3T9VGµ%-kR(ȱ WNZģѹY)U3%2q.5wq0u7[!qLK;Ӻ-W`bU2$"6i2 wZd4TөeL$Vz" ӥCXw%jRAbf23#$M" @WUE]EWeeumJ#48XH!*"έnk\]H6. k5e~Nx۰Ho~xUCjfMi\&vQ&;ŁTM2fƏpPzےPL-UPc T|`U23##6P란@SMUMV]]fa֘yTIlT Նl4A]1zW☜2 s(w"3vU:e%b{hۮRzk3CPVeUQNa`zȮ` TN~7X K#jY-Hn єָM|Q%#k+mW~f۹coj6SmB'ZHouql-ٷn9>1 ION6X`ުZ%ȓhb Qa:SNz #FX)Z2'ѤbfA"""$RID@0PDYeQEiXeqlF QJe\L)qUSX, u_ om^t!Y.O}r7'~Bu_5uXAvh&qQN8jmIZo$$%"J̀tAtQ-WP[5sIbC&͟ĭ{rg3-jע>0sU)L)nS1*c{x"dlaB1R!1+RmYӴE EKurSXNbxx)Oڜʒ@2`U24##4m2$@TQYiYmYm2SZ),|,S];,':ehC-Z)%H 5c^3I\)NAnņҁMTbRi+64ئ$J&4fjj5쭬W55ٵ\q3cʬToC 8c$JjSI_lUip]3F\[}hh'讹Q) mۙ,7!ԋBG\wDxkdoVdLpBlL&nQ}{iҮ,EbU2"$@4@Uu]eUvZemq!w, `.!yM@Mx^a!L+L&%F>-Yh474j"4/ 7wZtHP.Nk{ڤ-m_ʤDJ.7YA4ˑ(eRYrrZ #!(N қ+選9lZ !! LDJMga' yMT5sdW@3%g1rrZI72FsDV 0 E4>Yb,9p=ul[3R +!Fbm} _c"809jrKAƫ_ F; zd[b;^pL0mF̆!j3m #!HV4MŐYXÓrʘE@4 $&"^g1bxpD h!r@ D8Thm ] ?>f| #) F{^J^=.cXd+ U~!aPE,JW <ApQ(xVgĎ"cP跓̤qޚBEOGz|F^Kׯ5;+&bk0\"~B f鱨=;/QebY-  # UD:jq `i1@;!lrFqbh 1%?oP('k@ hZ3R11+ dp#3!G=X |r #h.w 4 rh\."Õa ׏{ŖYz|1Yzrֵ+ý"F4L˯AMnJҼ.464}Vo"R_8`S f+px+)JW r^@x% P:AMI('8̲i}= ̵Xg 9Ĩ`QDMW+86xVҐ  AfJPH);Ϣ[f2|E8(%Oc!G(Xus[X%:U ı #!FM< 6& ,5 eD9P +!(N~JRR0"^b0'5 aCv[(L&0I d@" ^h$\Ђ a 4(_ŤiKp> EY {bٚ!w@ `.1{ }y +!Fbm1}`C]´+9eU "1",X kJL3\~EiNnm<%fj` +!HV4MĬd+s0<&XSS _>^z[_U&[[mNO%bh']Gclmmz3 ;̣O6 +) F{^J^=. B^@^8rBQھKS uĹ i..U#ƆBď4L%$ y37R% y4,+&bk0[ٜ`pwBbNGLLO/d/HDvA1 $I5:+x$y?PO@2_.eٽ$JwDMBr I477/RP6u1.QFpKioS[U+[nb=9{q <r*(hgG! %ӀR(0ȋV*sDz(0]7־*߆ H S c1:OޭQ\S#Arp U ސ> NLRM&|` L vMPM/# ,3ȚR_D  !6p脄emay0l*KOODpDA(MJTC +x:L'~NC"kOBhOKlpKz"Gyyj;TP52zVuC8s Q0(L`<hi|qa,*L!ZP =oykQ,tt7bJ(oHܓ84DpP <4|C &4$4Y AxqD4% `7 ]B>( -Ƥ.Jz_tfŰ=Q9'#sÇFo닢 Z `a&6 Ṣ`on-2A`i1 Tx` 8DIN8s$4-=b 5#&IY rƉ`u7//Hj Eq ҚEkmT#R8rAE!E%pWDP6)"P> πa@tM$ ?D0>a)_7$1tD!WTPaCJ!s~ 0coCJPdփTވ .M$ɺUgUr rs1)JHb:I'|C)z` @.+䤖Q`K$3tEE $ SJ9 ԡ!x|"=r K8Z2PZ7='ۡ*vV 8' $p!9`߅Z!4 I Y(`* UB!wSG `.!y$$.rtuʪ* tjG28X\4cEQ}yn'} )O@jI EG۰.RYۉ a?$!O)xnzA ?_ "צ뉮rZ qLIcɚ:R^~<3 zqJXWRKO7wwffkh`,(78β,\BR_HxHMH+ODQ0 H 71aWzp qWj@`}Gs0‹ΚQҸNc?ɩrtrD`+_  &3A>7 F'q}(~0`xue#aY, GD2 0aI&J+ڈhH`VZ()fMnȀ2EtI ( րvh u"qkTpxw >ZXGZq[ `ؚRJÐxzy&)m;5, rq01'!qqvgB D Jsi&H0Hb_,7tU{ dWEm ]ТvA?I!9ͺ(\3m׼ +DB-dahB[7Xt  vD -0`fI7BIFP ɤHa>C7BIn%6CKc0S)^f8"qȁH\+ #\ZPH@I8 dpߣFX&q%3n2&0֑ K!i?.Þa( bRW<5LPKpi!bW$+>#SP K #aPgʛjʡ!yP% yoWX L%y _> a\⑆0@`$px0j1C@vC 6&lb`y+xrFajچU! Ro MI-KsIi9&܊8ҍ(+xyH-y $R@/" h'ٗ_ m6ZcLh+ dp#3!F sd$`htBC{J";ż#CA@Q`",O4bk{+O +..!`_jV<$az8Q{dˢCYSUAHŵJLid,5aWA\2 +)JVA; B `& Bl((Җv -`zKb(T_Q buߗ*4]P/ )i0Srܧ`QDMW+CpV p^X[ n0dyoDT PrH(7hK%Г.{C\ Xވ\RyXVJ؊Չ%@6/> /f8H#G] A x' j$+!FM9A:%738A?W8Q#\$&}Dd\B5\0kiFɢ3CbRIvjC!wf{ `.!y14 (DaH`8hH ne+W^J!im2 5"D,/2 xpH1? _f *ǰ !ð(+p  +!FJҼ!KC~5&12/C"3JN+7zp@=]ňjE@)˕a(0f{0Pd-ҁD@B\< +!FZּy矚#.%5Q t/vJW&쵂 +Ǵ~Y QL#krNMN6  +!FbֵLS3fB!FE&tl_Mf8fljʪ +!HV4MĬ1bG% Fd$ f0*Pښ-|35:a[ ("ANJA />w(A0V`g1 fU] Eч+)0YFo +) F{^J^=.U*26{m6kěއküI!Hhj؆ҺlC?A^,k^U Uiṁ+&b~ dbW[R.K2s-x8&C)DR@n# [:Npw^Ii$bSD}OãQ)(psQCjցFKE5+[nr59{mIAJE ޤ#8蒮:g$-Dhb yV6_=W:"Ѡ3RPp A1"& O,zo@+xrGraqpi5#W8/TM.H=a[ p1|^I7%ni-'$ԛGQ+xy-ĀD4 L-L֊DHJR "E f]~P(%-`6Aw- F{^R F14# d#ǂEb%X+CA#1Ng Ar3v@N+؍q `Š C +4y*x߀ iF44ƿYegZמ#O +} HEWcj(FCsА}`p@MM=B~i VKUYj1,%" d)#) FA3 B `& BlH@` e`,>, EP@75 Q(A@,5 ,0&ƌ] † pA-(V#!&Q N- p2 Ѡy,5LK+!FM9`z$LXHI1BbP`PхmwN e"B,#rDd*ܲDThݫ#0> MN;=!PY+W^J\nym2(xB+OZ$2 N(Xp@8j+` F*-*B<.٭l +!FJҾ!ZМ<` Ώ5 s`C!SƁ(%)[ 'Y:05)(ehU \d( D  (o:pUɯ x +!F~j|RV1#.5ofĄ-@{8- i|kq ! #!FbֵLS) c(Rd9l&-S[ tZX% N(dHv_ƠeU #!HV4MĬ1bG`+# YބD&ں!@v^(R !wy `.1{ca{ }dA${~q 0E &n>LB%d[ߒ)mԔd'}2he ՀT4H!0 #) F{^J^=.mSFC>+ְؘ&O:Yx'E#$}Bdm@ 8ҒL\B+5~,kyE"2ev#&jZHJJ Ћ%tR03)'?U!! M_?QMJ3ϴ#=@32+aeg;X*?+[nr59{l zz19oT8h`$Z(M1 0 }*"pI @`bH`œs JKh+ 0z /,"pRP'|Pp P3 cԒBWk)ѱA 8pFRB" @iA( ģ9pV):B b0b7zsse t~T}d"` K-ᡸPU}Gd62^g8elđpO$DڝrhFᄌ]B}o_pt_at!O  TZh&jvH@]]83$s@4CJL&ЂbF"ZK,$>h4 g< u#',\֪WxTu#U_UVUH"Ω##H?qH)Kg-[p?H|uƈCQBQxjK"(goJ8'd ,QD)p/':# f$܎KNfODŘi5<:HJKHӻiD 3TcLMTOL%?p[cp3n(Gaۧ}S0U+ :i߬BmB4F꾪"Fpt?Z3t \VO)ssou\%(4 &$O6)3k*3@5ܽ.&M&,%=kǀiů@rRKlb@zHZ#:Kc:vӥd0KAĉ3o"m""3RW:UN_% $o&@;Hn Cidd ,Q'ۣAg`U V!~3 {HK#C4r&Iᥔ)<5(b OWX J V6o{ڄ^ ]殛.{aq02C|B B1,`&PsĔ|ZDp%'q0Aa6PԘ @+\G; fHI B3$$ĨϷ` LP I&y1 @7f@~͡CH Q 1MA0077f)} `4TIù2 p v]4_>uT\4GIh7 &)^cZ0Lh`涵C;(4 .& Q[@ Y.Is' >9/\(G- Gd_ܻwVuޢeHjP [殨 WP\1UИ7sy8Ga /ᨥ3B 2RW+Ce-IB6H/y3bNֆ0`0' I0a5 $t}M%ƣr9 (#x *KS9؆ܜYtBBD&H@B!$Ăa7 !w @ !yi8.YCeZ\nX.8[(*?,ۈ#Jiہ& m dCCQmsʙQ"O_^L窴6!FR*lqENz]mpN^)ҵZԃֹn̨a F)u:tWDPY*ۡDyCNBTD/m;;Yn2NkqɒNe4SԻ>s/ZK,v%%4JLJ#otk[%c`U333#5m #K(UeMVYYYuq!pWk2̸\uY쭺dp2U\nRcrr3H\"8ʣAR n&"~SrjR+ѱ;P6C,1)I-=%(#"wn*\2Aj!QMF4kyj "9*5uaNNkmSLeEmԢcdV(izVMD]pel)YT2YJHa"OT꫊Kbe"###4i2L@QfTQaeqPH7̴%rv$k!O>͹$MuE2(7R8WcB)Zjp)m;I-FHB[wYz>s5+5+jHKm%ؔq9!lD(]38<˛nX&p\ HV%Nҵ]3˸.*֋mD[\]32$Iѷp&jY5m1d$~,NI2-Jۦij٭XYMZbK@40לvJrQʹ`U"4#38i"l EQEUieiap#nGd"aÙ|:n5RѠ08G/8-qI%.e[l.Z[Lo=RdxLJT @ےhHa]ybE'ڏHҒ%-:gfI+mRDm08 U#2iu-6%rf}F)!Jb&H6%L8meTH5l0'eYyĴ] gDjcTMRR -cG qjY#v!ƀ`T"$23HNҍI4SUEYaYmm^=*"=S_ajkjQM4OC.)Ms#!̻@xB)wv $1D41 {=0Y?,H:ŐNIXqJ'F?/Yt!l~::qYUVE B*ܾX}/[Go(e5ia7q q9T]$ЄeHhntI$QNCא(\)ɤՙw7H&臀_y r $AiɀLA&942 @BJ 5>8,@WsƊ( ` "A HJΑLZ ļwՁI$D@Š/j40C H@؟? ck=D,f: J-Fq^¡jOK΄>&5/x5)<׵ ,aY!Ӱ#QD&d#Ět D@Pg=`i:s7-LgwDv?FK&Q$*M]iHjNO&kK8e]a)Fe1G<;//oϰh41,t!^Rl@%=!hD< Y$xP j .Dp0R ݠ tC$h'43/9& F%g,44Pt@:%{.B1~qÃВW莱H)%c)3(/qC@d  ,0DK h6#  8 h\ [[Cdfm=E"(%-`6Aw- F{^R F14#_a`QA@(dl75%$1!fyvM*ĔJƟ$ $iKPS=/NZּ# x1zIA^*  FZp>!x# d #!S|?3+nCϩJazbRJQrb!k';Qx ==p w1!26¶+fm<. #!KV0g1iBtSZZnd @PtJ\ʝH`$qdQQq62 ůiHKTd2=1)GnNCsPSQĭ`P((!3ŧgHB&Pyg6;I|L5C1OL.,}"ך"#XUI#[nr59{fPh=Z)!!Fb2ODoRrQԽʥ5I#E#x|ƺTT0Ɓgcl\7YrMQZKjN4#xvP { [o01t["#@  {]rTi4g#_cAL3bRWcdg0H=( q 91j=|x$pTbg떲=8#yC Yt}2B$$H-=f /nXbk n#5. U&j1,D3#)NA=A0'{A⡧(""ti%CDDLӀe5"k~JEN`8ʓ'#.i9$Qd@`;/{C{`2 6 )SL,_jD$ GحpߌF{i8ٗ,Jhό%D X0PP#)/u{vU=oSp6< Γ fl"C,l1 `5T: FL| >e#) U5Ƽ@9 'E8]-L7f#WZi[ 2U2,|91i LIR]˚p A6н ~%16qk! "r- 4k&]-:~bOlUDO*]k?@LJ`Гx^ L `T>|qŀ !!\xRK􌸆+RĄEpPI;Έ4łj֞*jxIߠ YwG?DC`< `V3B8 !ٲяG71 Ja;us}13mD4"Mri0JBNrNkDs (HgC@|>3t㤟$pMĬ =n}L !E&0A ' JV}P'ҋ hc{Pa3H|34B)OZ ) 9\MEH!7 B>e k NK(doh lB)rF=}Dp2 :WX/4PسF*yR"/Y{c!w{ `.1{E{ca #)L+ ɛ=[*\&aHt41Ĕ L C$2,0oIp_ 5A4q 2pPF@UC44S"+/!ARM5OJ"n]PlDG#!ohτ*L|?z{<SiX #x644 aG12!G,&C 10@d!Aj0e?$^oxYC|BAg~h)cH DLɒI-a4SPOxalK%%v?56"=j!#[|3XHb0͞ӿ(AHg?@KR#G PU}O"}pm"t{rs^jh3rxhŒVOؤ+@ B33#9#ņ05š_I# Ap F ) 8{`ͤ9zi :G&ւN `~j5{`` j5wtWbor844 8qV+b:R1[E$Qh J@g=č p5AH,-&zޏ NMЅhrV5v63,1?1V nFu4~9wEҔ%¡@>(NcsF*€7 aT ={P!%< uĕfa0`_Z` `8fCp`KJ7d9$0vIݑƧS Ga<0 I/_45~v'G P%8 JH:N1;06fnM&djP5\ClS1A %IvPd"H}14 \Z lYc1l\@PZF8 @tL !-KiK/? 6L(~OvnmFB}aL_йuJ}DӪPt"U2C&%6@堢jlr2HWDMQD  0 a@Q fPX`p,1Ɣ_R2POB2=JLY)ؤ|cB%tI9iV?}]K0"A2-c[=HI@7N +$np0ڪ!py*r'iFptVY'n: 8(a└r=ߣsWtz!@tY i34Yc  &HDhZL4Kr%0D$: &>/G6tC# HnŕA!dì h|2W㨊025!\&P3X>g7] nLK#sR,@`(:HO`  `zA4ɅH( r[!9tCil?T0bT6^P`wHi1@7Ổ  ('6+ !! H;} 4ZWz#/0`]ܸ'x{UQ B)i #@d6ú6# qHpţ8C I $|N|Z ,MW (}=جU}В8<ZqnR n Hh!%% ,k='t#oWtqtCЎ\_C@S^Q4h@:m5\bb0  $!jI\ qY*)!w٭ `.!{!ɁL $1$ xnGtz" O9,*]ڀ*7- Ac r2NiI,$O-,7Չ#%=6L`Pƭ JhC8{ED6~ [}W2U]QΪBb&9& yİrPj hR"t%$i%ŁW 1,IZ;, # h $0g2,bI_{p~L!C;G|7IE%WBMasA뫧 zmUڣU[i5#&$ WGaYX#$iø( e3+{p%#mqp+,D"YM? 7$ X^ ?DKHc=K(ىΎt RI$0( %A)%i~T03!K0TW.(h J+Mkp @0* \tbkl8 qD tX!y&Q ჱ\M8qApTH dYX3$i KFLRCpizЂKv>1 @b䤔C(%шeu;*4X --b LtWB@`i0f{K`R OӇP@PX@-]E6 @bCP %$otX4`+K*`h  3 hh`@Pԓ9!$V@O/@ L0~䣔Xahus?!_(Y|}$Btm]C%LwЍv7w (ץeBiE0|QsW={ӌpx"q,6`hhkpkP PP0k7 XjIt/1Bc?7NPJ,Vk5̂a/|C BP ~NONJ IwPĤм—OMHcqSB0Kvù9(Q0 &`t$:T@d BZ `(V~tfH!}$Jv K)#xߐ,3!ad^^QnWKsrrQÆP#x`0&b;y WQ_#!,ɉx Dm !C =@ cۃaƀ#K^ )0x!V3Ws #|,XNl&&q%╨RяVm= k;#~ # `T Ri ١X"f" I!ZuRPjW'2Í;%Y 0 A #A@^ +㥶R=uaª6la]c@3JH $`!w @ !yt3WHQ&·i[% RD2N4$Ҽт,=Lhd:]#j6+/kI!UY!Z*х̙Mzڴ7Z5 5pZ;zi\9MM1pQJi(OF$kbd2"$"FMڮÏA4QTiU]vuiZa%ڤUB܍qvNaIJmeQL1B!گtfFMnFQ9ZRd*! av!όI?FV,Lz fDM#ń; @Etց]Id+3o9CEДLGh)@ǡDiȌ'[29u t oSik֛i)Lv7D1&FҐ4@JyPQGS3zd2ڐZv7>[*+4IJ1&\nƟ>Am*TB(y,Lٯ4%k>iӢ ̡xHԹŶ*JI:8be"!y `.!{ԥ2Ϋ vS8K3LDRJ=OH#`A{S$ PH˦poNCpKʈ # sws(t6h,>6DE8h>GS44r=XPۤu̬H#"!zl@cən˦Me8#Hi !rJ0 |/$gy%?U e.d4iVNn x#ReD03A\}5}pEsşLӰ(iickƳ'ep)e}c { PF<ܥ( #L g}aDvh ؠwKZS4DD;T2Z{! 삒8x@΁bro̪A  #"1U JۈU/ F!e8-0/}w.rP`WV ngcr(*-{@ #!V{ TέewQ w-[cQ&(?!N-1"_dJ1]Ħ V-kj;9D&w`k--:f# kIn1Y;4M&8р?W$ދ-@@_`5yri(X(3 &$NP`hO ?}uAT%0z0bCְBJRYa4``bJA$o@F$d 0`o/-bI@yM);J _2ɣJ+W0[ \2 7CT'՝!c H޺|/kz! )%)qW`XV2O#^dr3Y3 q0RsL}y|c{jwC0蟩ԄqR/P=mX$a2Q' Lʹ#lξ]sQ#x0@BH& H,WYIC h%( 3λ-䚓rZrMIqP#xPP@gqZ)+HuU188g]pB(!@ )k@ hZ3R11#W^$!j3u9f[V90&Lt%*xvx^ d=nZV $iKPS=/NZּ#yg# AE}à< (V, + ~#u j("a pۢBcķ9,NJR10UX !PA #) FKRHP%x> Z{R^ $-_ IJKHw #!0P7IݾFT"is(1CqP$ r{fD oi%2Tj(ʫI#ÁA\%=3C %BI֧('A4!*sRVfhPhi3'hn+ AC NcДŗfE9c&, +1 ypјuBNq7%n"MN(&-O&m!yG `.1}){E#QFcXܔ83$) lhU5Pa L%>nf] y87t,ý) @PO#RgCN"YdK@|pU/%`] #`1q8~B3q$wKPeЖsorDm= vX-l4'!v 3؜kǞ #! lB|nRԼb^pu݊4.YAWt%3'PL7@4`M^I5Z5/[h #!FƱ R3lF[ZթYk1g" L[#d5'>SJ9?tf۹4 #-KVD 褴"dԎ8Hu}mME?z[PR|bTI-GlRyz"ѰЃ s1&PPŖL-[/h `& `0IHcKq4VN{q'y¯Đ0a &ҒrQp:?Qz@2p NhSnF[f8` 0IYe :8I~ Ov&u2b@)c/@+p/[!!IHL 10ׁBi@1Œ&!(IY0ΣgZŌ>:3y׭Hhidnpt^NgٵeʔKQIKtjZ<><'x<;ZE6v#H!!IN!H4" +]@j 5P} kR(S{6ㅅ\= 30et%7ogq_ce$BnpW s?ܜEbi4PeTCIaN-!l9rr`@00@ 2iiqi A/)B ?,xtDC/NRR3:+dg< H R36Fݜ 9yZv#;H !y&{ `. CGXL10 @!(C 41$Nٷ~=)FBvvoqh@2sI5蘜3gH9<TD' wAi@c6rk[cg߁x~Vu:^>kgF?yL WnA6 . SHof\Z A{aD߿T+{;LZhJvJť#!!DR4Ҕ%)D@+])KJRQrEF)DXa)اgꋵ@53ؐ!bS@`@gp0`5f)?\H xEdlHr^N_XiV/ zHy^;3\ "<wţgv)JOJRo;!r,R4#])K{''JR"#M=FE @/ (œT#}) H|E#zp(738q3DsK I.B)[p. NUu4VB(Ua01AYԙq,ȒIox¨ NxNSx15tu};(@J̣q/Bi^0@f͗h.vo ;!7%h(|1#}}:QUj:Vi])JNJH.Qx<˼^3˼Eg)IEE(U(Ժ,^Ҕ=RrznMs؅SsFwr>NX xh`)SZ~ά=NrL ϒ;{UB_B9މ !HiIG)VŤ0tOB{q40GtUHG+7ڍ+UZ, !HGm?6甓www=D}7Q:s5IaWMz.Ib6.c G~ͧvvN{[CopӮ7#w-p_p),iF?[ \r[0YyOKzyN Cp_q"ǙxhX JYKwXNN7@|BS|O"Bx '@鎣i7uxX iOkAc]oȢ:ng|VJA?U89awl2@i7 9:Ҝ`@4$҉wI}%F4tp EH6Rh@19P< >DԌoٔmEĤz?WY!y9 `.\Pz*cz<`\wGoK̾֯G㮷[ڽ/Grl=>k  u cO#5h Ϯ.<.|_=ŋ"@?i~<`5yO=$-cDy ?;7OͶ>rޝzw\o?sl{o>L-=,g# ?wiMq FiLlj _.'O\]ljNw4y=wsN4''gׇ;G?sN < @ݝǹ~ \pP*[lv5 mN -]g 7?H2Qij4.IyzbQ|fݯB) P#;ad+NN6 Ş+!_.D<pkYU'R)a= y až 1 |ZsÈ](}ɀ$KAyQ|ތP ^`A@1%? :9D4G{TWdxH@@LiI(_;{i?6yoͭ(}#y{Ͼss%ɟ"&>O8 5<>Om|),fLo6|)AnBkshAN<>4Op4{{Ҁ%iB-f̢}hB !n$ `ICK8]Il!|πěe0hhN#Ԥ9Չ ;~V͏{ &l`Q<05A12c猪 muw|!0*Bq1`P5ANL!M+J^ 2I$c%q039oB[܎Haa:R;l={ ;IeN57ɠ&!N fM_.,0F+%I׎PJ/0jl`-l(594 bj@2!%RCh*4Ep&׀>0(Q4u@;}t~ǽdžWüs<ga3N#z8eϏKJ< #S{[;f>g?$u٧\#?f댼>.ΰo` |~/e+~xzQ:w( RHަ `l vnRvqLC>W@@_C_2!{B`0y9 qh= _*|`޹:Y@tP)vր'' QsǏ)uh@rPoAQ^+"U4̜λr bЄk@L^og|hYk5d*n  Ĩ4MGL/Bq{'w@jn@c1'$u2v Aܠ@t ^IQpނ>$uz3ž>{jutgiG6>0H0C K2pbշ` @Mi-Y9M#pL( Z!yL !y` `. Sf;AIF= I}!70vw6N'9.&4 8ϾGP PCQۏמ&(kQpA>bC2MK;l;c&C /؏y[гkJpw1;cWX' <SfQly{C Ӻ#zv1NOmesuGH INǛzņ>8XǖC8@3ܣ !~0 JPY1+@eɛti?TC?(<=v; I_uؒ'~&p6bwH=E.h$c|>|{XoR>֐ 6 ?W&k7yp^oˆqlCDw,\  O~٣>}l|f"[[om`;/buzRԹZPރuX߯>!_B=`:# 3RR3m{){1=Ԇw +GsOIKͬ* p\ pg}0yHj=Xq:EbPhħt.1cnQ`+q G`N@]&|@|4a ,p衅oJ$`–_ +w<Ns,-J%%c6-&oaP<۸%>%rkG`+]ҋgK6vɁg^9DB,bLxW#Yeie5~/8nLg\srJOϴŋ(ZH  !h8j ,5,gO?U/>}?O<~NoO/'r;G ->.x=,04ņnڀv ၿU҅8ʹ]@1&~ϝք㻏&xGW÷4PCKHha+mߜ3}ہRnbE>h P#$?H@:+B@ @h JrXi|u`@dP2 &M'1 8](,B= Lۗѝt}k3]t Ks[?.R@>h @P0bJ,VS߫z tjd2hOA B ѝ#HBR͉9.R֯|Zݐ@@b!4 4Stӝ;nOր(K!t(v^(5),oN䎔m@ Z;mB9! x 1 !+bf $zK+a{?K `Q0 :J!'Y{7% ICBw=æ 'G7+5<mZ׃N"b~Ą~N G$`p?lmw,xuS0PE` `T~vbjy[l5ʞ<"xK̀`Z޼\Xdn!sNRP֓w(^xߝ.>\0K& }BJwMg/Δtޗ=G@ i%ˋydyˈ~ӓ 1&m}@@Ry\!Ra@a i ,0}'[7x?o>r{9om>!2R'OlM!Ii4bk"gN5XgDL̞V]Mx7HܞW7 }aQ9l#m|Q%$Id?4>>M(#fN;7=,~b&4bwJ~Z][%kmd2k&_Z`NK!(J6߾n0!ysG `.!{ؑ`0i_muoɩA]ЄuoǹhՌ~|KN+c}5 7D%l'. AO7N@o!ӷPiK:`!sX'wsea>:@} &ԧC0nC߿[ْSO0O ~x@˴7t~cGHh϶JQq Ca)?2 /9*m^Ð)C͟?B0 CJK_Ggc/b!nNƎm)䒜jx잀gY<Bt_sxhILvy.%߿w!~A;sѦM ֎짼\CՐ[~d#6\RtoYCU'Xht@L2N@i\0 K9sހ\X* bPX`RQ+r/ q&eYF9+yAMUgV%aK]2Q .щYdrZrMIqP+{,"xpA4#) VCf@VN T{RBz" oN},sUUzZJccQB`S2B U&D*I W쩮ǥ#59 r BH@&j H$_\,8-~H2uc51iYXGe~H2CA{Ndi+PcR[ p++! i0 fL3*B>O 5h0a/[Dp0`]%d(247]~1\3|Y=Tl *,ocZ D,(_`B 8N0"A b0'zZ *@/_!9bĞ /t4a8_[>Q~LC\D wCKdljr1!9ϡ*iJ>F&;;E%,>`$gI7;z= j@g3F2V!c"dDIWfG[cQ0๴X7K&^/0 .} RnL_Gg7]}tantnxO`0aΒ3Z vߙuTH 4Ͽ^ irhv:br?CKp$S?\٘3y2H"cf ")90RnKRZNI7"4J3{,_0T_V;Nа5ZX#)Y-8!."@ vAt =n)#+ Al!vs(QBJZ=]ږ-ѶfJA<{p*k{+zW)p@p, 5i ErHn)N=HY G '!^а=A3Ƃ&+) VCf<%7ԧ) BX0k[ܺ" ghխ{! RLf{ӑl+vTcR+59 6Z_P"s%RSc~$Q,21t0_PN$0GYkF#!`ti Խs-x/14+)vzj? &Q``f4hE0T{&,3ɑBF>+ƷF,PIU`I #! f zoZ+PkRB^-`N"l@oug AM&> , ]i ("{4p'z *@/X4_$_*Ozx oXU  HFEpUP\Xpt"քY鼜7>/`d)1p/D`6p/$aVK +!Cֻ')}rf1)EgSԥIat7.ٯ$1 ]H0Kgh05tP>^Y;E}#Wz3B15+$8H@K'@P0iAFP=<h6xࢵH" d-`C!0( ^ +)J#=~e [l!;t~(hČ_TP iPE cןɼpp``f*sJS@ 7ٳDҕҕ@8YN" t& CF] ۡ"cGxN1XhN75 Nj% +-JN<J5&ᦡV{&.\#' n@#%Ƶ$fkɖRnL& $Fߗ`;jK; bjtQ` v>~rOI(  +)D;%f6o!wa'<@bP}%N B[9$ @2`/%03-*J@4 4x}X<>/5PwjіF0+&gKs,Bx./w!y `.1}k })cPx3$j`i4Y`6Aa$4# 4 Kt%!0 8hg4Nj 0vY51${+}y^fǤb0 Nx Gİ*GH JӀ"IN1(ZF̣_є#=Ce B9&@I]Q-i #HĀܖ2Dݑ{>QCyaNP*V!c"d+T}y1|{Wl IHIg xu8!Ll5|N31peOCrv$=QT`- :jFK]E`$K?tPD  rIJhT2"v]:;60k__T,P v`Rh w(rg!LBF$Ϸ'B@˂̿7 &KJF );֩h$ϐ䢲I#3G"ou 0:Հ@u9]d>hϡz =T0Bk󹇊H;0tp"0]OP>%)*B1$0* Ip [ۙ Ac drI'!/πlV=f4k n+'K(ܒ[_^%0Y;sNA4b 4ILd4RYLX A|tKH!pUC(J` Ĕ/ /5Iv+8 nI:J&{A!HDgL\46FMH(69˹/Ma4K`aY4_TѿŨؽ&Jՠ\4ZTRCH}(߿Q%6bB!f+?io΂9DgqmmKįkOP@5'DWxp)&۶[LomsMNF?׆xPt<1<NP!B/'^bc1k^0 Kx !:FrK&$`rA,7 Hi| i3BvPiF CԖq%$D t C0D2D3@& 'ObA|aI|]I-u! i0CAZ}& %a7_8hbK> 8(BMK^M _JqRb9D7[?vp a}8"tWwuQtX@ ,!yc$s$S@dlᄰ678(yj[E @1 !94;p@!&(͊A@d!N1E 0 А\oΈd00C㏳jW~sm cA00oOoybky0"WrC(-;Y7A'=_> &ptβ]J.s@tw:N{T8"Z[E`M@P4hh!C@pRR#x c*E N Zp .hR@`Rzl0`FO Ѡ A7ƣtXa'glmi0]MO J Cq>#Ú(D@ &:8h@C%I7- 1 8 P :NV&H`BJ@bJ';Ʌ3$`=`,h000g&A?Q/RI{۲Ju?[ E 5MwbQAx Ͱ۳^!y `.N+?* fAE Cqd~nH *s .J2l| /.$r}, R! DQ DH&әeuڃbR_$_E!QQX@ Ʉ +~&|C&ɣRqC@LI`7QH:`MBK%TL PAHQ taY4Mcdpbx<&"ֈGYHM1@Tr;bk4s sc ; ADMDY0٠髥ZZܔ=B1AG@I\0^vK ;`&d` vC\`DX5ԜC ߨwכF œ(f nc6Fr4%Bсyo@;.)xhh5Č z#HNNTj+S%7uTwrnw# ? =z>Q3B5{ <JI\`c^FץHRiQH/a3!|]nx#z?,Xf,L.G_H7?aGmh!\tq<#02R`16hᅍQoDc#9ʘT% By&-tN F$nB_Lߢo TLImDsNCCC8`(illY j  070NI`0;*! Ł7rg Ӯr r 2? 3Y[cWGhbcP@I-ax5Y-{&]KZ&a0}7F(-NCk$la\i0nF!Hra{:"bZ,\2.x Θ뙵=|e>5ȄNC/N+Q _KPS 6]`)jra-̹$5,eno\V&T(' W/ ) `%a30Y>: :q\1H@h d+uE>OI@KT@&$GtMy.yGY͆ W>ߝZ Ġ |(KQ7oDW2`bQ!QD}qeP݇~c{oٿ1G QURPbI ^wp8 17(H&-- ؏ᨃ*>2Ir ESoToWÖW!4)> ({%qz$@E1 0n(+kYɄ6Oa3{$08$` @+r :/%" cزwyƒ}Ɛƫ&:qzbɟpRz{YEu-uC}dY_v=BYO* !y @ !y""bIDHjAUEaVX]UUeS=E5QUY$|H߽Cz}zT۪D8*+6 I˪+ %,y&v&9Wu&+0b&lCYkRC\e k+JVJ>;T}n]Ĥv4* k$*W;P_ G RNn }. ,ȃ%P+TqXZW !J[ 簗=uVv,ydw.Au}FHA_vLE@$ڥv쒇UW`U""$!")#.@UeX]e]UI#MDRE%]fWab oð;m;%d7e>( ʐ:IQ.S0aHeQEeWޠ_K$w ^nPRQ5[!r4I F=+V踽Zꪸ |tLHUYaGMXnKv%3@@bD#2#24m@: =Y5R]uaTQ4Y4A4QdUf E "W('[dèYjT?Dԫ 7u k g)- P*8H3u9 9:\6#qqhZE9Ƣ܍J }b5NSF֋|:ZVuݳqژޓDxKw*bNѮ1"sFoIo(݆|E:ܑqVӆi9Խ,fMUq%,x*"ǩ5UVƘ35rje"A.]#0-)`T!C#A4i@ =VaRQV]VaY%TIdI9M$MeUYZ VSE8<>}rE&T< P"ͺ X r}HHɍL SHSD;4b F95FjeHY ڪ5+RN16[n3lU㨩!) $-1JRFBN۹hsRw5e_F{HMƳCc[n">S\5QQuL*keB5FՕbD"326moQ5DAcYQuZawY]]e\^I[IEMcmEne|pA6Vl;|dkk#)]-k\aI5"i5ԑmDmzvlfiF6 ~cn9S(HfNjP4X,6*1a*gU)D6O;Π TVQ-]JFIA amI(MκeZNBVҎH 咔i+kg)^z'e] Vjds[[L¡5LHmۍ `D#4326MI MUQeifZu¶K#P[N'"jۍFǕMdRīv 2ȚQrԈ8(((Г5$S*DeFJ?ShWSr:TҎ4DF;/!Hn8* 9Йv9LMȭ BB5bE,uԦS.AiNWL@ssjΥ)*d1{p7c+MI(-Ԕy׬M26MȜi[8c )rD`ָr#hJ:rT^d@bT#D326M"ꮫQ$OIeY5eumRӖpBR%q25_ E:ERt%֓T ʎ¢@MbK,@2 x֫>&:-QGF#"*oTŠ!yG `.!}0ua;]5oC44 0h+vWUخdPbb膞/:H(LAHe(a dzK_G~r-$L|愻.ۯ-;½q Gcp¾ҾahP ,Q+ '[#?'&(Jixgy~)ܛy3{[@FRkYo6 0cH9q8IY%rME܊iN3}nk) ! .; 駌KҺ8۸Xh]{kl␲Ƹ3&☗!?%4ME. 1!_0zFzLٯ /5!_hQ˧*D`<0 Xo=/ \罶3$3?Łb8c&uL!*i/2GNA29qSY!,O*Joa̮ ãslZM aG@vsiu@3)AAiଖ),Զ `s dJODBL0N#~ K+u!?ΰ`tֆ'4.< lb\GB,kGOV kcd)3xC i'/=p`;#; 4NOu Bem Ϻ% ˂} B~ @(MVҴC%#DL^F'OM%Eq |1Cb[!j_!/fu3**7,g<ΐM { !D.BEB7#hh<i *518{V1J3VM@ɼ*l?ɣͳ2H*hd `RE @d HFv`RɿMd3\ *-jA@/\v >g9lbn8kdۀ 2)A^_~}}_kN` †$Hn ,P)Ja )) hA|+QhG;!sOoC?T#ƅ6_R"-6H o7ӝO'n F`P哒w{?mDf8 UX(BEសR䬝 ;@28BJ@/XheR (:[ )ޔ$DfL נDOB@ %/˚Xt5b~ CIr|_:@`"ML3!&&+46x;!!sMjBaĐ{ci{Ed}53&prtpyBO7y6. V! CZ 4 HW-sӿǮOzϨ 8 .X,HT2 :G{٩DCXSzw(ӝV񵳀;Yc2=<,┋4Ž}DXb!CD=UTt:} 9 aͨ|wgCF. 81@` N:;{[Qa $]$VBIO/+e?5sp=%PΘ5̰dZ!y{ `.1}}k u&YKs*7!G:;}n6# `n !ڗEˢZsqa=rrh-^ܲ#8ɍ;B^`/Bge4PvejpSS65!8,|2Ml"ˠ @` ٖAD!$Dp`ذ![< r{;K_chl6 4(@4>:{a1 eq.M{؂V@Ybɓѝ|b(5V ff:H3ꀚ@;$6 uXfQxr eǐ iy_PT'8ETGXAֻ2,d-&',6  x;놙I ;"8Oaà|9=X(vq/&!mwSu**(:t0ffd$a  ZB;%B62!t4 X|D !`x.l,NB,A`~4~}%J0ɰ~E0=:H1$SXai`7u JHD?9[Ql0$mZNN1l?gFm}ɐoa.%;U"瓺3l :HiC}=,)WrHx'&R*<[Cp*eh9^Q+:LCq5c`(dP ZJy}CjM /#9Ch&n =MI_.CwwO.C:d!CT+v !6 F. 0`%txlUL a |Cp Tk Ip 0 A[4`Cm'~z#P?wwO!DBPG:?Ҕ3"F"()3"Ro3v@#x F@* '@Vd4p A >+f}PJ R7JHO'֕Bt:?3HR"R04"()&hhn&8Id!y `.FE`Z5)/xu'.ƐRj$3vэ/A 1>gBSE&R 05ܙ#E5Z'B3:?R3 F"B0"()H# CH* Y $`,jB0Q]#H26ܓ`(FA_ٟSv &pg%І׀츐9։>DpZ&.Mw&.ɭ`05Q.#|\vхɜ43Q7'[AHp:?Ҕ9JF"RR",5 Ҹ+!ݛ5E)U GQep`&D&#(4gq^ F A2FD)(')JJmEɃbw&`oܙTh C|} wA5V@"I36>(5݌uY4X2?Ҕ9JR"”0"()H9JR"L%F ? +D0>{^]C2PY4*  % D_rzҔ9JR"& mXAplV `؛qTR$Oϼ L`׆t&s,h Bpboz#0{0 !2?9"F"(!rZ1kx0 Kɀv ~#'(B2}(iDjx(N(42J=q X vM.BC :SъRʎR"(B?E +Ny'q ^<$gP ~c&.'!  2?B3 R"R"(z2O"*`z " Q@fp@@G-?aI&'Ih(I-$o" >Mluhr(ĢjHhZMp䏗$Y^&L@O:# р1c7Ia0*2bN!I/FiC(_0 'B:`+MԘq(1!z(hZ (6"f⠕0a6I"S%k<5 'H!{ `.!}YHi-&El.\N346*b}V&P ɸ0PV&[!QD AES@&s<;o&?nޢ1wGjBG)JjF#tH"4b \TQ`xZ"Hj.hnߣaZrS|hξg>@ibu+1%`'75 +)3oPG-;! `&O +@ $g#%#S<j0K`0xe!,|0h58 ,Y@T4o.i)JVr 0 & % TyL!P*.5 G D ˦&8&L:vɻݛ1w&Qpl)J3n.H("0~WA7F|Nw:/14Pp4$Dzg?sG+~3Tkz`T0\9 dAKi.'ΕʪLCI0N}PuPMeZ3W[}OC=a~0' /pii)4mG" t&E5 p(;5Kr}QY}v CUUs*j:n3q$"#YpJ3'j@^M1#nY-ppX<d]E܋(Ur.B:C꿲ΫRFweU*p=HPbM 1|>l,!l*#,‚{=HYɠ[g,gqCL(2D52a9UU] >R*ǃeUUwɤ` UU)`:$"5TÀp"2"# S\l-ذa0x`~ ~ mCL'>2D52a8ʪl"ʪE]ʪðTڢ4'P`]R$Y;&D$  U _#R `Ia] Hp {X% c0":<< K 0Pʪ = }UWa UU`@n0`2u\ 5tё`+iLΚE|p9BxM"K&XFUUWp 2eUUw q ꪸꪙ I|餙_&|Gq8צL(3IAoI ITz{LCH21z J)Usx5UUUPBOy4|4RU+F i ! $S&DTa ! 0xc".YEʬur9՝XJUUUuU׃U^;UׄW^7U׀}٪!~ chH'8-G͢IaU=r,M -Ad3J@ @U]o*mc*}k-%U]beRy,CɐhRպW`Xԛ & Ά8n`J`ncj灃\\mJ@UU]hzM2fUUWX|UU4hWEe.C\RmbBC,ǻ쯢 $ s :!$3@joYUu $.$99);#\CJ@ 5UWZ!?UU]aʪuU\#0JᶃڅwSP|ot;ޠI #a)i# 0^|2NEM>aYPcQGT$ $HL/l8m04RUU 2ʪUUWX{2Ă * y:蔣M鸘M&2h!eo'Ȟ C# `"&pb.7@0/}B8Ivef >QZl$*) /2-$jGtk#/n 9o.R 5UWXKI ʪJ `UU]g UUt_(P[|.Pchm&bM5@:HP)ICͶ 6u !U hIZ#8$zR$;UВ`jUUu E*虷/i=JDU&AE5 <ၧm:fI(z?)ΩXt0IԐ3;飬(&DǕ> tx?\ RՅV vUX{UUṳ3UC%U]v ]UU}8ry*^XEWEQ)A27L 6ET&Z0T>5p}2|Ucm@ RId?]aU]aʪ lUU]yV&sꉌ#Aua1Y/y7 g9RdжДMP 0ٲ 6fXk-P !T4=^QrOo&#ChCRd{̎24`*f48 3 FD-..D Ra*~ p;a@tGzIUBc*dM(OZOlP~Q)r Mt"v':h'6q=3zZC}Nf;RASCuP( @@jްK|"Q8a>$~{S蛔bUz(!6/Pgjc˓';= S{>vBry HHj!{F{ `.1}>, iM2;BM@RX)pT0Ap'U@8)UΕMEb*{ Z-CN_>AKY!9e-x39 NŽT&yBQE~t[*:N> N!%)0mui J}*!Ĕ!$CĐ9 @LPɼM%풏6#YpSCࣀ:q' *Q $TZ;! ̓{T ŠT=p`}}spc2qJD t&2rto)%I:X 38 :Jz䨠AA.@Y#̏"J?i[ИSIZ82rW$҈i@!nH҉ay5΋ ( Q@={ ]ٔ$z8א54 e%,dP*Q +$Ac|M%tH:L%3E ~H2˪mRRԇ`p*rYRAP*{%I*O*L=i5 P 7 [!rKK<ΐ4Zzp*q07 0I7P"иhh%񛴝{C6%?&vOIQ 窹40A@;a4*1oDtBi;E&LbgJ.{K oP*rRQȰ$G5PΞPԔ3L:Q.`$MPk= ou *qMxbd^yD0XjY۝B1 !C8g?@PYd&@l4U#V/Q% Vƨ eQЇNL @ N΢(G\ PX!DMط/䣷FEwwV#S;1r*Ն@A-$bN045pN5g i0z7&Kܽ<6 ZxRyֺMRO\bk!Ґ`{@Q5=-\މM2``oubE|5 ǠP-b_QɁPHЗC35߀LJ(T6* jXĽ1.(r`RV.hX rY@;sr0NYLQ5f.BSB|wp6S%Rפּɑ-7qr*bnɑP:dLN \Q tď> N@T oAO&ėuvi[$"c^b'⎠7hhJKL Jjꦮ\b( !+  @N`TKWud~@ F/ho#w.u_ ~km& o҅ Df7Gc`T^(i4UT3sAL!lM($2qX =ጞB &^VA@+ @,-HZJn H @0`,&%SRn@E0&i, ERLg6 K$7}jKyU 2w&=Fb\Pˑ"' J@i: KIL#H,3. G =lhn;@W1#Hb@LQ`|Ҕ QtM%j4 !8bT.ʀ24sSL8iCs_8HofF疦è񟦒U5ϡA"T&0a4.@o@ c@n ce'Y_1-%|ҥ ,G"P.> {XLU Z'1NSh$c&Ԗ7SQ, A`!eЪD1sHIIj1*#9igKi(  o pa@t2sSXW "(-$'9&T3vQb:0U%ٶ &>;/L/vIil`CHiDtRr؅מGQ>(ʘVu:*F&gu*>&/Yd~%:ףv*º,o~41e~]bJ=DgEG?Cya:~7qx@nh=0a` @f?rNBh*KON1$33 < ` )%Pjy,~Z@Һӓ5`ߪI݊(FCcs.,@5!k]SxN )!ϱ-%, 98 $#Ø`" `'&ܖRnEiFSxϴC' pZ  309jrдg cc@SL!3bR11D|1pY`dxuG6~(k^OBs9V`&3k{SW^Y?"8`:@05)%;, i0F AvbVmĚQ` pL KLjmCj 0 IbdI%9_lZX'5njZ]x'RJfCqp'a% +K[nAH+9v9 H C Jcx&]Ijhsi_d*^]9|yjZKQı`%${4 \!UDLjQx#GMWzPL(-] S[k|k[K_~r >r`Avi3|CJD4`zeAdаꨧPzp+F6@bzs>uA ,3 KЬ 7<8"eh*W@[7yIZ1]-, KijK%fcF@ZrF%f1(+ĥ4#P`"~z`>S1CPEH_50h,3} C(BSAd4<%H. @8AhiCcIyىNA4BNN,7\ 0/6ȧM8`B $l K!JƴbT }Ȑ shuVEY ߷jGz֍~ s|j]Z-ݦ4KxFa-[dhuB@VH!DNxp``̓RnKRZNI7"4JKxfb ;wCKu5zۚ ^+v(Va3=/NjZ-{qH)ƘKH9F,0FI6UVʞ!؅s]{dEfD9P)= l9kZKW^y?ANDx^НE >D` 8Ŵ~)3   #YKT#9ykrY0@`x?Qdx 5-S] +zg$yksR8"™ W Q$K[nYK+]4A&R8A(5 /?035-N Җ F 9V _ԴC "8ܷjQE !x} )4(4a!bDhR2R^oiymkqC_~}h ذG2 A%4 _<] J$)p%tH9-?Ӫ@>t9z,_ݴx5y'WM;8 Y${,y{@ C(d,P\`)%fG Rq|0b]=':>#@-%mLd/=wAW 2q[!PenK)7>M(N^aYyBJGG&kJOR4 KCfX;ӖQFQbc:_D<21hNB&W].Bp|hpĔ@y=@',bZ0B#CDPHà }tE.rlN͒Y`) @5KQ$%a$hJZbk'&X,p m09w-M1ѫEu`?iK&Pi/dRXh '"- I; hE2{@l &@ "_hHyj1|BXL^\dBh"w(2E cX!B@+eeP *@aM4K$+H4+0 D.]ˢHFΉZ)J!I K" y- q &$ X)r *Z VN\vlC GƇp.5I4iAWJ&pFK@K%fB^B5HZ@|bXPnCx K(*aAYEFkr/0o&Uf^F] !PDU2/WC(`N:L䃮=yҀ+iCח d!_F CH]03) 0ĎDa%5 *NEJ( up0I5'HeРS"T N(ER.0K!Y~ cI5Yf,̢||\Ac ΑoԂp/ڮOLLs)Ou3濚Yxٽ/Z!{ @ !{-~KZW65:%)B!m^3a/bT4DS#FʪkH,ӑ5%P]T]iyyʺܭ]mzy.//Z 87ѵv]bF>ZBNf;7ARHl,VPŹ5Ԅ\#TaDHԃOI3NfU$jq9rmãjJT!4-8I.L,KV2ւ%qiH)D IDS#vJnֶh<ɈX&Y {<:2)mH0iLc:-6& Z]Ɩ7|^H&>SOKfll>Zb[VE`T3DC#4ԍ(O0Ueqmi瞥4.ujHlhU!'˳kcFm5^ѣjTLC[.-jRV<_ %MV3a["tZ-G~nQ,%qm8N'%kŦo2~Ě[Nr/!be4D#504Vie}ǜyꔍPŅHOfűc7)nȈ< 5}CȦȐ,d˺EnKKF+`f #b4J٤l)52>b#S;(T>p5#k/Me+,кJ|rs64KrG뤱-$5)Q̋RCpmA`YL%)yFc!i&S[q|Gk5 U&C_Mf9"'Hqb#$H\c-M̨UBEiBKt:`d#DB3Fҩm25Uve~H##Y]C[DDOc0 )0%3-j-J<_N,I T r]h:S+2n&T>F'(,SIE΄Ց'U8ip4L.EBZ_,VU -MXtO; -fe#2&G|ćsğѶ+|7*]Bbq胃:ޑUGLQ̺. 'DxW(ԝUm%)[%*ʘy"ϯ#1Jۍ]7Tzbt$E43Xh+,IdaVyZqcH5RqcBe ~rj>mPy$ȥF4M{!SwUD-ٸ2vxt坲'5s4vO][Ҡm"]:í~ji22I#֓,21ܣ77Ŵ!]^ɱ1t:YmQKчx2vd#9"%8Dͭ-4hNvӋTrpzsĨY 4y"TpCJܝ&VΕoY!.lÖZ)|p0T&#.-/~[l椙ˍhޭ06[p`t3ED3Fd-TUG\emHd*&ڙȘvH+qcã64Ml]n3ĒHTϋA,åفFJ).lfnkv%JsEN_ QvGeFm"u1u&?ޜWSCl$<{5hId.$ pݔg*y IRBZq)^-:9W3̺8 bB9#$mI[L ׵uJFWhГqLjIf``xB9-- mbs4DDCHdK)$QV[q)fid\ӑȭQ4.͒£MT)iu05$Z6[Y[eүm(:KO^M6$!{G `.:qwnj,w}2eؔ:w~<:`^ Be6)NmΎEKZxMT' 8:qJhj{3A% w6TGpG2qNf_JĘcq40e:}hlpqց.8 2rJU6iP(Y_ /@p(fIJyb3,f&5('h;k-4JiOԏI2r0*bY BPU +^: ai:(:\xdאZE'G!aDN~huD*#`m&& 0XEAY*rJ{ e0 z$MQ7~ ^iy5 'gMO8vV`ŧ/OKaO('t8!vBo# c*q,$L 6r0LJ/,,] *TdC ;LZFɉ _ bW %ʂ*rwAj>,$/pepZ" 2GHf4dBn*a0`o,?y# j *q@2_I0x@#@P$'R簔0t+Q+E>Kz;5qB  *qm8 @2h Ngᅡ8=ۉ949O*!lZ W &0)߲RMÕo [&[Gi5mH T IG4&z? ĞR8uD Rv `4u7XTxu4\H[]s z˗Bc%Z IeB3(!ΈD$oIxt7xODAa4qrBxJ@bi-gqsj(E5JCĨs(Y0 %C F hˢ: 才M8 DP?ش PX:8z9SC&KW$m&V{Ҁ)]]-D !dWj(T^Q31/ݨ%Hp!JY٤{ڂI.M v8sz;kw *RW9Aɤ 0MI3e҃@ 1~A ܚ;$4L1'lLbhi8(K E`@2P޹ lu=?8]rXo(!(AxYґM  B:YZI)hp4vAN C7,hokXDh'07QISQcž#J]f LdtC;' dˉh <5 ZL_5!/E.6)r(i>n>PMI Vzډ%$` {x ϣ&T-*zCj~|}A7ӁH$i@Jpq: Cvkge#hfM:ܛ% `1 (2щ#N^%xJgK%JA>0!hRr)%蚐GڴbђƝTuU!=}? }ڂ~@;?'`M: O)Ft!9Rq rT5;%%'( !{{ `.!8!/?~ډBHM$dj{4%'LT+D(8$1f!v|RP `/(*agKH*$Z3R׮ &j:㾥;WR֯ ת!rqWt8vq_J 0@S:4hExG,cEODy=(IY'Z[I2s>pz򃧊,>o`LaYʝI6 &%ABKxoH$SA~WUEkngrDܺȡORn(MA,Wm߲?pŕgF+Aͱot[ )E_(9C2CoNd^o^~gAGm|쾦8Y>p ɓҪɞ3:fAP[>o[|O7:tvn6*xkڴY!Kx K@\C( M`UܬXxt(1Y>^z%V݁ `N 8,5&-%䚓r(J4KxxzDa/xg58-$HG\ 3楩Bў׷iKH4֛:&Hp3b$͜ 0vTf<Uj1&̓`A( s9R{ zrֵK -<2Al'$@A&-*xy%ܶy,=bH'Kr(M4ƙC=S0 0@20+0K)JVN`7c6ER |4j_PTKnբLF,<`' 5cW (PT܆$%`||K.}ـ,1zrY8:T_5HKQ - UEi27vap5g!z5u CW^|`w;@ycYij"e@s $@ :LZK#8A ) ȣg"m BKno1x,P']v1F+,Գ5N o[giRcRSM {g2JRV[Q=ۺE4e ((B+Tx$RbV !N R5KKFma  "ˑCQb  ʉ"GO4N4\h<51*<"1Bb@JAGzŏ/HJP]mYSx˕6!]N Y%΄MCXu&Ԁ&'T C"ܶZh~-Ht!ozhk\cVKq?_֝U1$(nͫK͊FO#k%+]T2]ɕ mWѷ;ǓCaT+&Jh&0ҿ_F^\cP# iՒ#LK>L-C%vsڼA$e9H(`P2V)):G#2ia7PbM 'VBs@]Kx+t_Nt T0P`0DB=HGЬh<87 ,pYjMj[KI5&QƔi@Kx%C obaѫG?Is5-NZcLhC~jZZnZ'5`wn(FgcyT OI!(BUf{_oQ @s`&3k{B nYkp&䣡-WʉQ!B0}c2YLi8~)3   #YCa(&K06!hPۺm XO.fVRkq/zVi # (PT܆$%`||C.=8 3 *[$*+&0aCpG3!)˯ X x#qr5-K@C.=g$ԛI)׿!1P1˪%-[UEkD8 ?n< E褽G]ykpwC`~1zrY8:S @KyY@k  jը=fSՍq˯״ C-+N='[w5fSїU ʥd̒^>iff)sm ;azۃ@n=^Yfz(ZRHFX`՗ǚy1ԡTx` {{g2JRS"8L !. ~o5s*W*BaAu48!>'@<#[I=ۂ  "ˑCQb s<#` \c%ĄY &Aa !%JkPfUPud66e"4IpSԈ ;" -:UO?aQeG+7v+w[wFڅTJ!)ơMB[QÀ" i&$z);}oM3E Kf5b ;K0A}.C 8#$,)9yEey G1%ty^( 1qr# =m#JbqGry9'7`>*QWn$1EʐVl50; bpAe /ZMO+轔%Kx(XLkǸu ~u" #*E_NhpU/ڨc:b~zYA0WF $wtuk卒4KYANqǙEVe Fx +喀$B7J;m% He  P/2 7>YqJ @ntwRZ:^,!0'dN>'!!{ `.Լdd Z]9 %?]C2RHržno"B`@1 PY(tt%1qQ/T<F}þ ̀Bx TAA(_ ^?f;^`b*QE$ZJ=NּU @tS1 ԥ+)H",R܄iHQbERi Jvi DY)3 h !3!hi}xzM *y@!J)/orɎ ;/n1 )v>4Z|i4pb&7ID+0ԧ * ԗL|‡RxWHE'-n7)Πb<Էp58sԴFi5U :&$a4c~|>A @`lP &vb{eom|󇷋A04=ĐX&' WH; ;.q4z` HANXg&X |C_&,;X6(gXvОΌ2/ r 5uМLvgwqٟxuyMOq_S3(I#-b0f)IEM!DXar4\iHsJR"#IEF3)JJR")H".RJR"/RB7R;p&Hi HR%8q{d}A!D:B5Orh#+`tr>򡁿yB{¯>WRM ʒ?v|#J!%)JDXi''\)8JR'r#H3)JJR")H".Rz0  4OGdR8?g@(F)i>ˮ{WWG krvp:})ϔ&8뇐z}M@bZԍdYuܥ)i!D\)r S4) R)TR0JR")H"p+)JJR")H".Rw@ @2O?Fpkvri@M z~Y1 Kx]_*ڒɮ=8_ZP?jQ0 tx2 kL&شm&4>5;Tu[ԪTOOz5RSrEF4# q{)cWԽRJ#".R+)JJR")H".RJR"r.>|!BOBuώ{Dҿ:MJfKl׃&v˽D"rW_ha1=eñ]7s'jB (GّZ6ͶEI|oߛZ u3B1)JD\URܥ)(+\)8")H#)JJR")H".RJR"`N;z WWf:@pO(?Tyie𻌀׵ALnXbz5/ 60܀9uoRsԦ꥿>)JN,R"a8Rܥ).Sґ䷶)iMR)JD@#)JJR")Hj =õ :ذ*Q%$x+M A0xj1-UtL ZCOė3q#qҹտK$બ11i+OĤ: ! &Ah?}}MQ aLߌ;eP @B 5 3@oG=4J#-gp ɜ3 plc xS10Dak#Ă?ʓOqDUDOFvE}옛5CױZX (i  5? T ъGՖr:š!{ `.$J aNR9mgcat# *Ɣ,ЧOإiizPZzx.{hά4?oKQ0oa+'e%( F)[{rI;,7~O4]a2tCAgd;tvNշ5R݀3 &̂E>2rw +)J2R0儧ߝ7 Sy!רCI'mQ<'U+74j]% u*bv6Bv)GNWi⬶N_zv?9,'H@ҡܲk}Oi&4qA !i0G#MVXoRax7od)&3<.m;VXhYN- r K]AfsϖJ %mIiSX(v?G_,wLM fִE6Hi|rV[\` ͳ`ͨq7NGjCX6U-.,5JDO?oMp0Phy4 +`ieNJRl6IXzv7V|_M6tRi\꼳ma0?VêgN֖v,Wĥ@!Mr7A@1!7lRZaMZp^:0=bKS/toU㱵(v{Aa^̘x:YbCr6sn߉pQcDB)OM^B?kƵ=S,!$gHH찻9kɠ1J;QunHڗ-)K+)HK7E_oH .;F~Oؑ4R ;]`*{іQa?x}0C5S itQ;N.o;[8nWWXz7rb= ~,ϭ{6/{Hm>ijZ +/Ccl&{-O vps4KΔeЃqH{Im AĀj?#ys9urX5a.a{BRj* ڧkp lvԣo iFIF ]7|>͓c+t: 3"|cr}n n։MC1>͢3PK 76 c( { @6e3o0#=_bC@1&qH¨)(p:I0;O~fõd.!{G @ !}Q8V(xMV{O Tn-b7iָ`KL`:XRFluZ\ӥ0`2ѕΡ-x 5fHp[\ur2|@ FJSJ=\oŘNOʙKz ;bH$ÛX0i7LBjjH ZpWqǗI,FȆJtZsfMٍ*DTM]4%tYZ4`Ą4TDCF14TUf[uIYdnzEsU0Wr:D[iosuϤM)FgRmrVHՑEբIpy*)X٨FQ֜|+"u-=j!ކtIׇ$_Xmj%pޙ6TS2Hf/N-I ?[^eCXť*'lҰKPTC EL"I]j593g;I]:r΄ڌXQ„lW,:> È5[͉;RU` JY32 %6,`be4DD$Fӄ*DMUm֞vX%J% 1 \,e%cq(UW1RVCj8_u̢c ]dN7NKۯEQ%X.B|B[Z[eTܕ7>&ԍvRI1҇ʊ, [K,k!O9$3,2PjkRd8s BVYNQn[G[X;\sARrub֞I&v_OW<MmZeBVXh<̶FYmb3vK,w LT#y`NYV 5`V433ID 0E#TY%]wy^fيeXa(*%UHRi)ddVbFmͭ ,%HO*jen#< !cYRfT?vR`eAmrTx2w;|l.VTzR1BMē&*CG[No8 %lۭnUKG1V"Zs 7ЩLozSNmPw5_bδ lsF\ñ@x[X2$.Έj/BXКiWIViJmByQVlSvVbd"$#$jE(r4%Eie7}8}xZZiřb3!-5ecb&'cS-!"E#.܅ۊK#ȒXp>$h[$pLEk#y$ذޕp/]BVYϖͷc_0ow!UfIS0|>m[so9AtopbgTB?Y/Wj5h= @k2LG%ZVxdRRjjDz^f)f"F^ *PToԂr:TfrΩf)KpgeQeǸt?LֲAW>85YPS445Q-Qv5  ӥvbS +6(J*m1 2ĉ;:~Ս`v2$"%Ip (I5QeUa}mc7Mɐ2-$~Ժ⸚?E_:^Ϥ""1{YfpB +KKdz8L@ނ޿E,.*CK䛂N+qp5fZWtjY 8{ܴ; {DN$t(C-zZ`CVB )/W4_QWNHtrә!}{ `.!&l* BeV:?R7| L/G#_S {@ov[p j壣xJw"u!&F$},CI$$}Aog׍w;dҜod%}6ɽMz$S|萒5M]nՀe՟zpԤӜYDk(add#T'MwMᶔʛt>8[tNtmS*|g}7$zbTzDK Z3b̫tcB}b 5FMMZ?k4z If@.~5 Tdp/ˀbWȮY}=kp|~36#jZMFwG|7B%_'{}{ H| T<:Ћ36D̚roWzbz *;ٔMY>iy ||w}T|\#\}z`Ha_K/~oέr @ܒ_dVqmS.1y#1&kɉ&g (%?u`HDҐ*QINK `sw|>^Kdך̹G&%xҋ|wwMП{+(|TQTg6v8>*|\4Comw55Q TCx΀BD CP-@j0pǩP 7㬩eOC (x`a7ʭNEԷ!B3H;x$&DS l?Ki2[,© )!M?,d1;`{e.Mo̦_=Ȃ?ڪ#[ٶCqo3DR%2Ӑ-XߙHAg#]|Br8(ׂ;&6pasW4䵈NlgQS)ɶ: & "p@;'_># xC_AgX atXh\}XG.O>gC@wizB(@6pOEx/p;!%lciŎvMeI30QP ( bIL#r;pn_ _ C bh+qC\AQԱڞb}$#z!t ar>AL\ E e'!} `.!Q8,p(uA\ ),R^p@\ aCD ;&\6<7}z%T @2} nkDp!"HWVIK2(t4%{ҩ'y~aA^ (4. < p)kb8ZP uzQ(`ʢ81!H/Sf8K3= ].72qPş]. rJPH :lB0 L[7P?$oh"7?'pG8dꇾ占l.T2ckR[Q뢳,%ˢ~R8p*ʌD#R4Q*~VX7L ? Q uX?M. CX!0z]Ў c4MATR8tG92uW+V|MOpA s܏DLThC6~1J;Q`T,@#KUD(@}SiЊj&rS5sy> q5.L-lG S˹A,~JuD}!\(\ @swtH\!#g> AL?).Tp7WTh&`-X!blUt, :zB@^+^G;@u.xp*;5Q0TYj?A s3yr܊$!Swu :@`t 1 6H4].f x&N"N @F6'Hq[s- $*0)r 1  Y,t5L)5 ׆Tt)A2JX&ˆ&n7ςQy"h鮉mp:$% g`D^P h"/̟sPU!ѷJ?ri2= H 4(8EF%F] )ޒum=le],2C4%`ak;%0aAz{!<|RS8;c|:ͨQ]5?!M/1B3* (l7 Aދ6 B$q HЖC(/}̀Yk.|K{*A8 -JX:b@M! ta|4.RӃzj=S%zk]EHy4I} o Gf"zm 􈇑 5apBBa=>utfi%C@|9% O.!HUR*~ngZK\o©,U"R>t0qSt)xkDޅPBM趢Nk鋩:-])jCxh@IJp"~0Z0o`?0ɴJTK:˰W^L%OC (x`a7ʭNEԷ!B3HCx;8lwS0 P-.-aTTh&@sCk[~]ɦ@6 eJSER.cȥfT3ʠHX ʎ3+^mCkû!0X rhQVzM Jibb;S2)F2.1@ <>;&<0X ^Dtx+V)-Ԋy3IL&@8+;'_CA" `4>| |>.֨a4өiq" Y ThET e;romݿNA0PcMIN@=V YJ@e7U ?&R;`|/|L-@(FO=7FTݹS-#L  3 !}, `.1"ʝiFa%kB4ϰc+idpF[F 2FiFOB:^7mq"M~9#ji -tLa0ډn!ƦFib) @ 22HcEe IjShVD`^yORR&B) 2@E=MCH X$!UBUH bT[B1woSDȤ  *b)gÂqEtj|6<#0B& R ʹQ #RYXYNšB1eKORZJ0b6\ =m`U_ :qA?P$ A ҐP$4% I[ 82rd>6'Zt~TI7?PnONnKb %n{sE @(2q0~ڬ6;z┧!& ᡽ tYlp&319ݽ%}Pc*r 7;"&xwruȁ@pL&ᨃl%Ddtɥ`a X NN/co*r v(bdܙ2,?2d.D 2l` (a~v54q𛄄wP'PaM,oO!Qklrr]bO74ZZR1x9"qàȰbnMů?0/~x(0C( @Gd~1e|_DfW' #7`Lt;v+p*8b yӓ E;pfŸOU *Fdm8"qBO( ()X 7A{>ݾ.1/^>evF@0X"iB P)/$eb0eW~Q&΃R[fnMHIJiu FzaiC}PP v2ƒZz{Z`!2zاWWl bdŬ &-AhAWO%-(wvr҄HP`! HD R)n/€vC<a0 &%.!ى0 QЃ( P0%=} 0Brw<(407&_#^0 ΢ Yi!r!/-oI %#4 zT%"a- *d˒7Hb`wrF,lf[[ɋ}aw&/ S)`?f7?'~-r|n5J@b[E/aT ļX" b =. 8V$0j % H FQ$$'H{ JLJ4Mp 1aՄ?,R`L&p9"^H Y4V-&& ]ɡ%- 0$AByE,rP"B0L02?XOJ`$X(V?T~x=]( p=,Mu'C-i)LVmu nwϽd$D@f`RBPX'gA3@Ӣ&F~Zv_-B%DkH"ATL,CBVCdH%H~np M .#|1pC`pHNO`1`.A$w% cAX6!E5Un8N"fD/r, *?'zTrS5] =SmpTpJ22udn!% IO7%Ą+X'Q3 ='Ɋt #F;~1j8w؁`+ eܙܚǀegg<:^ʷѷ&'')%!?xJϗ{Po_}I/ Ю:XB_.ې= SA8ϗ2i=F>` aS.JHMNHڊl IXLlLP(i40~%b@ ڏ+& )x>G۟H O7&cK"4!傃MBc7cӨxuAgL3jhj90t + @'H"~&7& >=HB*nmg]8`]hmؤRn(: b(I1HAa}X0 )/Omc`cKFĆ$ixX % GV|W#00R1H { |:\? >I҄u^qaI۰ԃ}woD)H gbQ$(ƺ:+?Zz"VF ?'i!#R?&߽5q pcAV % *dYtE#rz7Iـ, zjWѪQSe#{G&#Wsz2OڂD )Ռ޳'s_ 3r)$ ` #'PZ >VuLd1`ޑp:g@ΉK2c$2OPORcnt$7#PQqe>'kp1``[xx<aa$a RIBSXtQDax7LKДDwV@K A!&%W M;`cӄZ(.B_q0`8;6z Gǝe:&pK>^1GطL.QE~ j?נ~ _d/׆ d~x( ! _}N] & |M Qz1{Ad=0i./Edp =0 ;IL0 ,? @,|I&{W&yE}d>_K6'kc}oCy0!}SG @ !}]-,vu Z؝MPk r6ztKզzFVuVxhI'VjbU#33#2l* ,QM5X]UmqZm_}מu *i4R((-$3l0ڝ؍e[S} 8$u(Ўa5O5IJYXK4neEIrEhXVHR.Ɵ564*(ʜIt"Z޺k^j!ёS)EmPu}.vI IjR/Ku9\e5 )dzSK vO!RFel ̧xm$7;d*#5K*%yI21LV,imN:dmC5bUӹvkHB\Z&4" `f4BC$G j(3 (SI6Qfu]ay^tp7F2T⸈S!gC DzH R!'^$igd5Rkf&Z8K!Prc-Bs6e%Lv [nőS#Q!b54Dح4^&Qeb#El_>k5vIS79YoNdJ Fb8qWƙKx9mI b噱&N+R4FK|;X WjkcۮI7nbT%TT40 ,M5YYeyف}*腖tCXqO q͍VvfvlVMHHR4нoѳqM(6)#sL@iIeWByBo2tiE.DI1K*6x`nE G2m|Ά.o$tSWBۥc8R/Wv|WMl8hʵHj.C+n2VH rZXme7]$І)זE wNi)$,fGI(G8Ľ&ʩ%y U SJN &`e$CC$DjjK,E&Uvyi~.RtM'CْFQ@hy"h2$9WRy1Z.Ci>FPW[L¤]rg2!rq(Hw&Ŝ}Iȅ䠤HdNzp±X"@iᨡ(M .?l҃2Qmã}ۮ$xBiCJ$5mmbZkFdEF|ɐJ(Yj-ÌΡ=(8pVk8KCjܺH4*:L+`"fUʀbv5CC$2*M,I6qXy^~\Iڌ}2Y%\NoݸWaZ{-6TeUMiMX#+2YXVtEw\>HաuBSΪ/Nm&؂KNʏ-aaa|_2׵ bF\64,k7#dWNQ"u9_E9&AErVŘ| zDdEa٢T]8iEל3$2ĀrZt:0Z5!h0n%KbT##"6QD@4QQY5ad^N89"^qᑘ_fHŇ|-!}f{ `.!eK Tnנ2VQ[ZS>_EaOH`Xݶ@(dPm?1/'0 Bzޤ[%N7?kk̠`nkR % &g;akdj1elS}?ޚ#<@&@&bC P@``OI,02J7O77S00$pm# LMB^i(u|:JCR/W ]Sodێ؅bA R‚e4}*Ȁ&Fs W D<;8yB<ֻ4)29) RW#AW7j u >F^>HwʄxKA=:R,mϡ""H"JhtN襮 }W||%F7-(bH;n~'Q]hޟ/k_bYO߭6Ks a=TM_=*2pĘB#!lfB6&dY %F 䴄 屆 ֓`P`St98Kjsz z=/dqq^ߠ7gZ0f1z z) I|#o$0/̹rxo)Z;gm5J;6~oq^Q! &O4NN=\rp1dhiE}G;gcE'̂R3x,_`[ "fJ0Z`0 4fQjr,ꦒ3y/}xf cqC )nH~[,© )!?.d13'_3?7L}x)r_ Gl@ø:ttNSzJqY`VHI%)sI9Y:08\tON.ּox3pn}s`^}}xxl Y/2yQ}?Z2J߬ntc=a>2 pv AZDj׃}33_aXC AU 09LH)}@e" ] jHp?~F+ g 0d:T x[8+dE3qE6#y aW9F8K?(9<S1d4RI%eĆЌHV IHN6 !X#`< |Ijv^y3'_ a ` vyx'PW()I(n? ŸJIȇ-&BvWָ=|LճX2?[a"*+f ĜF"csFi33'a9x-Lap®QOq9SEЈG=X FIn0 IWP,<(%Ra$_?v [ix3߂l n2R 3'_mTie hK֡>_g_|k\$1?=Q@9+yhԒFw=y%" L )p-n5v*F<0˗[W6 2:npt"J/*FQdi2lL &Ccue iI 1X2ipBn߼R(H/p`b4 ੥}s&Fi :N{4>-'%,~FBoB׃HJPqi(%$",Jc(M (B %m"Bf. ȡ(r8~IFĂTRm6 2iOKtQZ Vw~)#L2 fK\{gSlQey/c$8KQ$ePi>v}Sq4!}y `.!5 Q侂c`M7*Ja iSTc 2f@ᨢ[kmuT !(hjPх/ЪHYe%Yi 贘th BA! IhhOX.$C)M#T`F PB@]p@AD0Jd8KEP30dL+5OZƊE d 3!bMPH r/f\ޣFS ; FZpXaLc @r\0tB5%W:dKیDiK}a <9T@} _q[Cv)<ġ8n8Lp8 *!$1<(ޖ$B(F-]YD hЄpD,P}T0ܖ.LP 1 0 p ɸE$5Dɯa?Ƣ/_,4󫪃k)i;1=ӆ&#LCL1h'^ދ+8-Vk[:ʯ_4K7;x,`[ "fJ0Z`0 4fQjr,ꦒ;y/}xf cqC )nH~[,© )!?.d1;]|͋ x+6 xm_ Gl@ø:tѼcVnSeI9Y:08\tON.ּox;pn}?x[/ 0[0C4D (mh/.2 wQL c- vU\Y@5i`;p|0xS@;4 A+ThqEY@| !&̀G@ u*pO `|L8!;qE/Ol?;¸/6 n sxЦMjōU!8m<#1C( 9pHGA ( #p9LAOLɤ`YC <;'_ a ` />ӕA^Y  J9DAHqX/43, m䈨N'wq(a;;_~OకX(huCMjhTD.>AEzx PP޼oo/ [aASJ@ ;'_mTie hK4ԌhHSI7UE1-i|wЬČR5;k p_3x<9JF| ::npt󈄒 yD4 :& |H1p5X+BN IEx@Qb>}g D˒0a#nw&Fi BN{UIr :iOKtT vJQ jk)* o*`u |>ÏS i=MdI"}nQtXWJJBQkВ :f@)؁YFA(E`0NHjDH$F) +<;14.Pby.E0HNE2OBJS.T% JWtoxhrzd; FZpXaͤynplA1%CR3LJa֔L8g%apE(*sYY&<}#RtޜKH$]&f>9_JJ@ 3$?Gc}"L-)'{ɓA-}9 104DlTYMCL;;3+:4Fb!} `.1ze"O0:دCjC=.fBpP:pP2pA};Q-00ybI#;a81*ppK.aC Ve@:J 0`Y"pӘo[J@xGҐC!#(:2i02^j6~S#9&8aK ރ@Dd QR ՜DG w%Fq;Ra RFJBD;}il[8"pс` $r`y%pwIܐH&5EJİތ|UbW*4w?sZJ͸XU (7 J"CP`` @3 +# ]8YaL"\@q|F#@߸ Lb~"qac;ݜ/2@!$9(h佮?p%O% >(&` ` @H( 3r<p(C ,[Č.\B7$5=d0` %zQ0ݢ&;N>so9?5K0M $41$6!^Y4001%kd lI7H@/hX`Dp.nrho5))<@A%_n@1 :#7rp$X`b =66LbWRI?IwqB?܄KB !y5/7*. q}v0:ۮdž "C6 q h $,4> L 't(A:Ie_( Ia6  e8 !M,SH+`,`'~)@Ќ` FHHYp&@hJaBQ)= ֧1!)>2 90آ/ab&*^wG}B` ?$ DޕIDi( !̪!H1thH `Q$ @ I0Rx[ʈ`1(I נ @,̆%Eh 1x P?hA`t@J _ʨj'N (ު p%?&Hi3WBD?.WO "z/?"}K@3?{T`/>>RM )iHsT`$0h@` #t( A<>( C/۞&0 PXb41a@MIOϡ(8VAxQ iqQaQ (!wrtL1\$Daa(Z|Nf&^ֲbYI GRQ7@j6|wG~At@TbNQM I(.{2:} pBe ^t$xUT?LP!<+;G}LӂK@ "iɮB@F 2?|o0>&B6vAo0 O3* V & A!} `.!?032 ]%.g)w=T'R =`bIX tH` b~A51{~vLp 3@0K!KN[pn&5[ZYlzzFA:] =_H. lJ %RaG %$ԏ3=CT2 aiuRCg_ٱn} }F5U>|K|"%XE'$m>~ "&F}5wK8obh  cn5%(.Z Bp~,<7NH$hF [8ma00wuHF0dP @d%~S[9%EZ#yK `pL!~?jQ(؋pbnAG5z. MD0N9ո`1lv.9BpߜXNܝ{!a94:֤;II ߏ'/я{(4H`&tDMK2/ }I@ w?H$0=D*Av^QiKq $hG14a1Xu G*s /(䣠1FǮ!:I]n1e]/Q@hTWȄCo6°a4^`F<#0 ٢bx@:p @ԐPB&! Udɤ17\wDӠ𕈬$0 P~5;(|T |eJ/k9@E}~fk 00$)ZP_0dn̟PH AC?$ 4R ,`o([OeD^bhډ`=AR,%{'UT%U*sA^ho:kK$EP 0RAf^=C‚S 13I} ꠠѳs4/Eӎ8\ Z\+0lpwuqǷV[PC8S˨"Bm~18ҨL-?oa a\:wHp9K >loq==@H;xyb0 0X/X^ 'J0+f2fj[#I;xx1a-KsVoǬ cO4Y%a;. cL b f<p:p]>@.\3C5C2)˯ `q<`L&gZמ3.w?PųȐS~ VM0/͆k!Je1|!kݛoj}3.a8-`*Gx>ިqR= aI0^A5#HeX"H1LVA 8pWċ3,  lo9`ip`>v}gsIɡو# xLRՏ8k-x3.s~r !xĵ$de<з(J@,x!ߜCō,n0 3. ?8UCߐ/SN- X%k bK~y*Ҁ^|N lZJc5|''pԫ%E#=o^[9o^ok[ 3.zfyZ4ᱼK?.<B7š~0IjVe$ 1 ф 9n^EzH 3"mOmS9)Q_]ae1,SA'POO!}oE!L 43~(bu8,cGI&3@Ig&bik[G"l 3"mE ;I##x!!}G @ !@%X EX2;+Uë g`ELHM̫=*jό$epdI|{gT*2얳nPeoZXG8}Y6QpM&%%#T ȶU4:>I]$J]]R)XC#J$OtȎ,뙝 Ne)] vjՆWMxm!BR As(CNܦQlK"֙mD 2%3r7u/; $\' Bp`D"2"26I4+44ÒQ$DHTMTMQT]Z5ሢ7!eq3"ah&0BXµGɷ؟6ӊ&M iELJ7UY#Aͦu(:U#XcLZa&:+0i6E]HziM84q*~kYQ$m;mRJº9( ć!s @IӉZPy^miF3eVQC1&nSSơ*_@䋭)b=q.gL>˚uleȔGE8n4$f 87be5!"B$E*01PAIIERQdG0rt\i;zH֬;o \IEU˼TQئv,,ޤUB/."+5l=)ε|v~ YI%2e2.U-8>f-nO6y _b 1lfDeHlj@Q^ [#ȡ 7U0_q/,ߋ? IP1ǰ.l^,TbEmMhm0a". O ^Zլ[43Ij訆 fĮY}`S$22"4I$ꨩ-EAP9Q$Qu]^8cu)ZLʭE)9)OY4X -Bm"8NEWs+zj`!sQv$iKMѯ'[B+Y{! 㡗ƣ ڇ4Rn/66tzfk2JF4.Eѹb+vL|la7VmM5.VC(dJtҶr}ʒe %|Zi..TV"6iZ6WB1HggÍ ZҢMo]YjT&X.^s=hWhbd#2#"4m(ԔM5I3IYDQfQVYvɑ5M 1qԨUkmf,$.ҞPDr6-ajm GbV8'UiJ7)%^<Ƒm9rcVCex| n[.H)b(M z\Ex+?T\L,ZB)R|]i57oU+>ոt$'HZEÞ0B._|NbU4"$"E"iԓMUMUMMfavimW[:,u(Cvt]@CْJK5¶oJ!橴A$MhtvJ‰̐r[6HI5{5ۆ&$pV䷲SfnD8|p=Xi6Wd}Օ33M wZ6媈}!}{ `.!]49 bOזZvp:i`~߄vt',Fcuy*G2cCk 2P[AHO3: 0ތK9soCSgzɆP.iBzX3Z:@wڬ ?fqNkjz0EY`Y 294PbZ[h?MB* <>}TPylt&vx M&(ԩ^N 'j Tsb:mDs GYDǥ` :&q5(<f&&i td"AebnN hic|J77ϷL44-4ZRIV\Fe3!v0 )dQH!6C뺑[Q[~o#wzq3x}b/ 0X/X^ 'J0+f2fj[#I+v;qc 2Z歫zߏYɧAƞiK'+ #~~ay q3AL)A 0-̑}H)˯ `q4&3k{+.w?PųȐS)|S-!NFSBkn-ٶ@`}`/+.`sP|<Y/BitLm,O~V"M,3 hhZ\I$C!_ ,N>+,  ৄf@|>s lC& F$e#.=jPoA=5mcGhM(`4űYYqq"ؠb`<AO 3ysp+.s~r !xiD6.,)mB)@IiZRO ĽC8Xa+.~`c1Ӌikja _1#wOCHI=`h QjBo@Qefe[ז[כ. +.zfyZ4ᱼK? @.p%u c :DVPP L!bJX `0 QY$"+ 1@= =pOd /0-N%t~biALH@ )%v-JbP-_:&CJ& +KCqFw\q b>]#GneE:{ff`p p%~nL-(+FH{{EXDT.hzK$S %!$!Ĉ P ;e4 ',0!z0t2*pva%Ʃ^Ǚ*4ƀN#`‡]>r !CGrq>7|?3zB003V1H>?F5H< 0 +!RİrM$}O. %gt!"t jL&o4L@:,3 ~z"X$0tRql1r1Xii"@4}iB: CCS4/b^^O b t'3:|7ng"pVS)M m耙 Fk|i` @a; 0ԥg ,Ҿ[NH0#AKk0 @Ҝ_a珡(>2:ΘI<*.Ӏ "@_<8TWDhPdXc *;@ I!cX$ۤw|. &&Cǰ|X/󟄋AW P1|'ތ 5 {{pZPP+ߟyIJKŒ]>ﻷ4LJQD&! T` I0b{|kZ FXuoi tC&CF_Tn?Fְx`7$h)`ၘ>10Oؖ~U Ȣj@n@1&) \l:Ơc fXb }%,^,`EAL':0# A.+qޛp#Be "L5 +6A=Ʉi3qCdIҟґɔ&K}&MRoƴQ- K0(4 $4GLI/"`Ck: Asr[&͎LI)"\VDd[] =. xN_9fl&2# ;N;;d/h5"9UA)9!6(jaEr0NErZUa,"){Opf @q\I}x JxŠ&0рcr{Լ##T @a =i(i`*GI?S 0c2ΟCA! %Xr@hG JĽܼ.x@S B M9z J2ZIВD?"uMR d1970!>$cG}TS|ƚfV3H%.U 'ϸLUՀP$5FlȢt/-t&a`P%ZV5pF0ѸGV:L]d3{! `.!X<"/XxJaX, C0Ck5,YBcIuP*{[b8bZՃ-X,ª{& BcOuY+c+. pom71 lL`-.-` <+.^6 F6~Ә&HG7rNOB,hElé GA/`C'CbƑw@]"+. x=/cP>{'xyث"Q>Xo0ŧ 4X%0 đ4\%{ l=n( i@ +/g Ùe!,](e4;IH& y P,R(ȱ`, 6HDj6cމc-KDX*Ѡ7-e^0ht0sn)9Tֺ"@ +"6ΑE  pC |bm /ؚdsbZOFKP}LF*t6&x͊d0 .-!wIhp5Qk ;Gf +#лgGSPBj]<$MCcV)Ќc1\aԠrb/FMb^`)r:JITB;阝! $40#P"1E f +9yytPB~#?M9]0%_f1"zd暄Moc_*ZB!3 P#)/6H)%LWF%#p,1pfH؈BhER~0 +~eMzCS$%ΊF)<FpPb<̅I+Gs1ֆ `,`PJB n_IM0^}3-.^C7ODF< '5ILQa1r)@g䑨L&`E t1Љ63 vmt")(0+ϿM֪ccB( 8l%?Ȫ=JgzhE y8vVOi Y8QRIy>)%+%<`DK!ҙhC64K&+QK+MY)q&01 $dCOC̹q{} *4Vx)+{Xx aB</^| @%V 3 aCR-B$@*{[a8 #%njڼxi柋$q1#.xp9>}P>g0šA(@Q=xrjLfL<;R5rRXDgփ_N` "94bܕQ5wu smBSO@>y"̠I.FPC_H@J !p+!}lwl %+Q[{`GE z0Ff7"q"ZЌ.bJL+?sZJsfLnI4OeJ-㘍zcw]*8|+ #c?%  G}v26@f+!i DZ-=@b[9-#z092:(Ed%Q40 KM%~$} 5mLM_zIz#2T+%~ ~bN$Q pj,vl-;;O !Q`0zC up ,E"‰ٰǀߓg=Q`:uDG !c  Wm0IpatGI#d (*䮇*@tW%w WrX(Òw>URڷQrFz4;Q,Voj$@ @.Tp JP?`2,Pb _cE2JS$,i``òDg++<1~@@D &-.h` v ~,>Vϭulnq"  IOť I @n2@xdC@LPhxdщ8TLZ0E2Qa p?&į$Н ɠ `f @r@ܔƞ آi07 IoO~ M$75#m&N-eg3nr+u`B 4䴥!&{ @ !4K^{|=XH˧黐MQ8ŬSQ[)P&*YM89@ǡpmEͼ.Jg][$ˮ9R':iv\ı0zeE\hj"O`d3B4"7-nSMEee]e^}vg@A,PE9C`m4z[HE-q!i匱hՄI 6>&$ eU3rtlO*9Eյw!Rꪼ2'8 ]r; ⲟi4x`dYjj:7(mlENiԓnK!޷FG+bc2C$B$E1A<HI5YfYJXľJE6ɕxj}&Y&1ϙa%hGj_7n6,@bndm98ᮼbg591ˆe|AVIw B;Ӂsh5Ly% cjGHQB*ʝ %t sCJ]'~᭩[o%,T^bm۬* !IXVO[UcVܕVmnouhZլi[n8ZZIpabooVdmQ$U'E 35\*VM?DM;mFeobc$C4DTiLY5U!9 `.ѳ>}I %Bmx`e)?5MnIcwXv5tB@ 2`+ĭ 0a]<P4n& -:,HtI~JI5z@W|seU  Cp NX 3ᡝٱuD@p^8r% M A:!ĄX!CINPwF) K`G& 77s@ P`a5d(45F^6$Bu N^x @aځP HI/MD$V0@ zv$ orq4i0f d _ M 8`(#XwXs_R|v "J``:9J & @P^ cT p(Y4E 9+&!TI& H0 tf5 9† /쑁c%?DB GOdcPрZ dxP@i{ntO1I2 D/iI'RxH fV|$BƧpL@L# IH $#!( -% bHJ@F]l`xa98h@$b@# [)ۈx `4&0i`;ܱnHHa]$`!B_e!(eE` RXf%WC(:%@,A H7R'^# ۤ.j l,n#@P]%qaD&Uj B(1D >(BK`!aGO_&Fqtvh@ ( i0@Iy8X_d07 )$NX5ʧU]o^P xT ΪT ㅃ."j<"!0 10jH@ I~ .3!t`Pb/0Pvs2!ZK&XJQI9K,JC (1)xOBQ J8?`J@*tY\ 3RƒH01 ( I/| @fJK&o @OHr &bk/׌;GH!Khi,W? yTBh( P(MBp@ C8OIܔ0A41߀L,HIOŏG {&R\1.R@F@/]K<>/  &+,3pG^&0h#X7p)/`/9 >G:~J(O€V& `G- =RXoBMd`F=~[dG 4ZlOJ2@$$n$7Z 3-f 7O$0I X@K;8axJQ_#xQF=p! 0*dh]F YEHJ@0@NJQ% +`4%.QV$!zήI+ OA0458%RD¸A}4|S'C BZ8HEC vAAE%ʂ"xg\}7h  m Hd1F@'A0E&+2405,I)=^ĄڂOĕܤ,WdχwDP2N3II N"ϋX"% NHL4A!L `. >2ep/UGkIO+7BeT3FS.ĒdF`!IOr$`=PU #Fɮ4b3w3F%$$!M@S00o TX JId`9@<|&JJ$C 5!I->>/0iⓈ`OEMT᥀3atpĄ\.=yŁ/wD.90 3ť 2i!/Rr%$I C@#L@=0~h`v`a5,bXQHN+"Qa@!Ė0 0-7tSI; >7VD.7w @NeDL ^sDop e '0 l4LJ/I$r{-10 >ZLrv-Iں( 3s"C* &8hB1 !PPEP~-='6pt `"~nI加`P2Y!! &%PX^hhbP@@*>B` ? IYX?D&H,J KQz8&0N N!|D@ qu%DPQ00"Z1N)$^& 7 ?{NEA=\]!NPI-R7vG@7\Xp ”PF$) : +v$jҖ8?HTL+ǒp0L 3PQ3scӐ㬿DP.ZSZwWDZMWa)9i(=$ჽ΃t@ O¬ޗFsڜf+)@jx ,<27.JH Z 0 TVdl0eD,/fRcl$(4hDä>,~õ%fX~%nfO%a_E!-J$Z#FZHDhbCkHŹ%)I+(v +& 4Փ"<L]6,艜Y ~Q6@! 4K$ `%l:!}Ai3g`?D`b!֔/@W\Pc Nox/N  ywtTM'F>3veò1pМ~%!"4>.4]zSF^НxC= @DY uMb5iډmNٱHn%0F"OLɵ}HH>K@T0IKTQ?(0bxjW`'%>tm.F:+W\j~䖜g{'%>qtH Fl>0f,O@C @i=r"KB7?@-t+tAJ:Rd2 =ߌ%oOZ2y3$ݸ|LXo>rX3Bmy{2Hkډ1;_Ml. o ~)(hmTR 0o2`&)Q 2 yM! E$5ƙo3M& %Y  ~Ehռz'17Ss L.(oX3'V ~"bF܍Ԥ =-!` `.!EJAPj."BW׿n T6Pw: %RcuJKPAPi-LmmCv%%#洚Z|V"I›I9-Cu%s~-\ PECo*d^D^[PXí+Njj$g3IH}CKA hA +xy8 pXci_w` a4YYG",A ꮪ"(Q07 ozifAFJl AD3]T1d#m sɮ\Bu"j[D*GEt30Xg_45$ґr`7K2@{ᥓ@RKZ]Sɰg,8` -0*v ]bdD\+'Ofd3c qSL2̅B h xrf*IL3r0mءNfS;#"&D(09f\@S((`n0pT0-0-¶N`H4 +'O9pkY,!qp+$LfMqtԷMyt26Ea/phi Er~~+lv/6\au is6Yʦl%*b[ An"]H9Z\}1&ChQ: XWĜk aGm70,( +YOUK*j굙e)^V3LdFOl #NtQ5RLb8DAV /̀%dY5.MqN@:#X0GߙzӔQ5Y⌫Qg:,)#A +ыkG8hTU~-p2mZyG|>RtTx1 $Hp/ g?éa A$I_QHΞrȷXoИՅJ4 )#p?=j6L &lbIhS TrcֿelQ?7=4ð2C & 9šMD ~[w?{$DJĀƊpl(@<۟l,'7`5nnJ"6 3x@#I0 i`<zM7&zPA< x#/X.x D}{+d0/{V|˂@T.dQ$0>j HeBe<CR6|RPh51euD f*bLe} -2C<]r%PU DC^ ٳvSF>Sq]XUK(ekYf\WW<1Iz$[!x&!. |@\ʀ#z$AL MSIވ\>%ʗN-H6 `q7C( Xp #lDjDM O. 3'z#"OP::$8Dv"_MD@%^)Rz`@,l"!4wM LfĮ22MT6چ}ŭoj桸"0`DCC݌!sG `.! $0ci $|;̎zDHEZtxn$ND?QvCh2P`V.P :蒰W:ɓ"C?i"4 ;P2$@"[ H5"xqKGeTsWkWFre'c=Y\M$2Df %] 4%IAd1 DM g%]0\ e$(z\= a*rl 1A WAz(i(L~8X3+_h;(ԓNJm^^*mݴ $ ed:l 7E_ S!h5QN* . p>N lBzH Z-H]^ڝVEkDwl!)kV a8Mf]8Aa?aC3_&/~M-فD}p@ :Qԥa-To= U\vNIm! =VX.LV}C'_!߉o 6l)̅Ƃf ,a<QRg̔ϦM`H!a1լ ej07 x23'1YC'_r+!`R5 TFiƛW KH.!e۳Fi^o!GԳz"@1RC?~k):-t_4  3rbe$ή84&M@`'#\.`P诿 >ߣ$3 ~חƭr{anۧ%v=ꉝ_f^tb(sTqJ]~'+4e)JJ.B4H")H"v)Nv)JDXi(H"C)JJR")H"*yJR")H$=RaHu@BnMKt{Ԁ-! !bP>z#tݸX 1!oU]#Jr7 w:)zlFJR"# ER.R\)QbN;)JJR")H".R#JRRJRTr` q,L V' tJBLFZ}N !&bFC7dĤ`R2ބ IUp,r=N>R To;g Ku {Rj]ҒqpP=`.`5. XѨ GFmòӖ(MYd¸N㳉b n@nJ;\ LR1ǒB6Fmp>߁8ԇ h  q:d #V|'ª:rx(AO#l!eV,/<g؃dRSP ;fSъI"hR7K+"0'LD/ ".v :bA%(S }%8XK[w$_hM+/ԡ+8.!$#2@ A'0AmșҜ3z ztڀ3>8c7r O>D2%ZC f %CN%U~Yx@0,_0T18gI̝bĮsW_Sq`B)e!lv 0fmh_w]LO>^K&o&ddA1zko&$iHv{0RffZv#l@khO}zÀ4$Blw%8G|w>$#t4@JŔVv{%zh}z;0 V=BaAHjP~P#sjO??,zP T[HN#ـ*5``%rXO <1FJwGSD°vڜ4 y1u+r\7}w$WҠL(⑃ u*_LJx/۫=z@`L+K`,2\︊~}i@PQ a]o{ap #tÉI!ک$g*v qwD4 RH,Z( xQ0Y-h&h4hugg'{]@?ZC~(}6a(q2 b O  r)5!V*E/'uF?9堾*.x&n&(MõF/+7H6l+ɸpkzH@Q %nyRhF%a?ޤ3XIibuV3gtl-~ U$/}0 һcĄP^ )[]5 kt !cuꐓݿi@' 7^jz?E 0nLBM`iH- ]u`TL&qՔ nlO bsmK=Z>ԼCC1x{D@ĀRu WBp7fn &bIՅ\W$xrF>Po8RWӒmR ay!sutTpCA:M&I4JRn 1@0TMĜhj $9KM:yh1$ ,|4r%,H/ ; +Qp;(Mw ¸bN6F?,y~,J\ l&a3d(gg:!i8~& >/A&k<뛧cdө H_ty/[94E,;,3JA! `.{ ;~bN *CY잎m7/EuށG Œ?{ &$0\ +ؽyN& .^&bOR3%+estY5p۬Y6w7W|aD7 ְ3t(?Y b /7 %aW[%U7$qwKoϜzpv x\y )'!e%Z}JNOQnWSyTГSzB As` ^iyIާ& +Ҕy.w}2ɦoRKllz[Byd^}Wn ?W0mVC rJ+m-%袎caVɹ{ ȺdLMnI5ͺ%/Hnt10 gR{C8g/5f#껚YmH`j:6Q 5}ݺۙf JYq7R]nB} ʹ! I#~#=@ onFm*_RS HUF䓈7<a9FR%}?biRQ~7Tt:+G!6W0`<;m޿Q|kCFc@h-P4{R붆Yie.{ݭ|LuUm^x3ia0a4ett.v],놁DT6Ԓ938gt*<+MeUzKGCF~~={d Z|w}6n_2!$j7z}R=!q\g3Cݿuߋ]c@Fqj?3.Rn t 99/|I(ܥoS<_C ߘ58)#; h&®EªD^ᥠu9 9lʹ%N^KlmeB Gkg%$*\7wrfd#*!Z2 v^h˪M1IEDĵ FYǽz\e '8Odi?ʂ혙3U7(ٳzq*ۨڣ`ߌ2bfSzӒg|l3֤5?ڃKX5) FCQx u>OupW@+8q^ FJ}_mSqQAYnDZηz.=4_@i];j,Ҋt{RwHVĐNu4IXXHPB߾sX;۱ ;*zv_/.$q'[9KG_pϖn/|.p~Oga!7Sn̎Su-^f@='mt\;૧w}-%%?#w`ae!.R jKAnbqƌ[Hn+/L@nnn0|§*ԔV&ҟ?f3V ~7[}'d ?&` 9REbnO1]ḘƵ ?d'w M@C8vxAFYYo{H CzR7 S~.@g+~{V9N5.zO@j3oׄ}>eX~p2pDp(0 K5& 1#kW{%9cEqhvɀ7v|k=Gc<3~7m!G `.!Gyx ! M:W$Y44r^9d_6{ 4 ;! $a}7A o;_vXf!Ky^K gLJaX, C0Ck5,YBcIuPJZZe:Qa#nnMzfr` 8(4_)uu0K. pom< x.'/ cHYR p.x\4 eSK91i0X, ^\wZ2Ĵ`SmK. 0Q͛^z*0,.D YN 60aqJEħxP,& xK. 0^_f#[sQ A&hs(" NIux$b8%-,ȼQ- *s,$9-s ]d༳K`xOgl&X4e < 3`^3wܖ3?]%@KVc)x` Y"y ي_kK.n0~o`Ok$0m"Ja-;OU'rH +c4#.OK. p,lP1׸ƒ9e ql:_*&LُMIj8ɝ{ kZo%@ K.i,5I!Kb\$&9S{:Q.=t:U $rW( s %2%kP Kz܎y3&"Д>_CaΆaЗwl -̡ɳ C~Eeg3i9 Er ei *1Ϟ ge;Cg(@ C!1A%qPɡĹ KjC4>e m1vtkZ6 PJRnLs|*gq% Cj5̰OujC-N'^T0η] 0} ,edHluyvڇ*dYchs䳦:11e =6ݨB<6v3wm}e%PN>I5SC~G9cIPcg9 'XERaQΪ/j] aCy^W.0l 'J0+f2fj[#IBZZetA NKR5Yn[=y4!?(֘C. p9z=X/p^ y g'`MhdK'+&eV9B0AL vkӉjטC.aP`PxaWdA繏fkqJK" L8C.`sp n6  ()THpEJ{Ksg0`b༰@C`k^!w x 0lih&8,>*bAt`teqA9 7jQ=Ak (Jfb^KNpC.@s/pǸX6 )64pג&hDZA/ߘB@, 34I#_X;.X0P@1^c45od_`t(IU4.Ed՟,9 <^#5~K ;.2aR2b1.k1S165s:+$K1ϗ|fM&u-E*EǚOý(ni&qrZJ5! Czܟ<5ej%)TuJ%Q7޳b<z%*doYQqQyx ;~E9't$bs,qK A,y մ[4Pע@|Kt!{ @ !/M]V]VYaiy؛ԉ%| |=hLږv -R5L.V~KǶ88$c~^p`or'ʪczF-2d;Q+Mف RF֣ifX;uX m]H6nɲL'))8+XJ]6quvPbU5$IBHd"_դjfF͉(h8j8e ʺبeWӸ\52F[bGo>&b>B ػ5KsUŒJՈK_m]G$k#!"* RW>*U%/YDYvÅ9*/2$k eNGLY9)gpk8ej8ѧ9TZ;hѸRmQ 11bU5DDDI1QFiz(b7Tz:fWFKEKF1 k֢(j2Wd%HۗfId`0f-%uL/ /Oj]7 #LڪjatEnj݅$ojέbX+[ABUf+a%ks]h}/E}Đ8i`]V XKꈈohك%>^|!Z*;բ!5}!AEܩۣIY຅uIKȯ[aQDQpu $m`d4DDDI$h(5$RUvu(8zkZ XsӕXВ@Μ*8Z`nDjeKaD7t-An |eE#mWTxƁZȪD[U]wMhTlG3Zf[VxaD_7z]&gv-sgfaoXcE,Rj-XjEI)2>mU#qf7#r~fF:FgJ=IH/ci .e IҎx\/G>VpFtmk Q\GbU4DEDI$H=T]v\i_~(eigi+ywG[Ym \^sf܆+V]t*u&[$w[G]vWنUgI*Efd`vG!Cq\0Jtr#YPÈV & ZEqb[YbID4L]VR,VQS0kHjIj0vؑ`Vӷ}-иx0Q#DMD!_R$Fd5L+N]MF0G#Ujb(9 x$]V1*G)oLuFAxYd]{oC`s4$34IdhꪀT()˞OaDC;A"p % 8İD@ɇZ 'Dz@i ӐRYfF(:@NZ4o C;}&p@[v|/(Dk4/ En'nS%(C z 'g@P5 IevJ= {_% :MA{''E!pQE 3W.@x ad`*0ZL p@@X"/@1>!N %8 V-(HAE46`:(1 Z9|5jt@L`a4bQ/004 `0$ _@*(_5`:lB , d q0!@S:Iw6%@s=14ɤLqIuMb Kp:R Bid4`=04BRRrp޹\3%<ZBSV rAe BP% P#$`Gq#/SA@ae%kwJ{utQ>Կu_oA@0/i5۾%NOn0 ̄‰%i@(@bO = c`‰0n=3!0i@`h Od >|7-B@104:!;ygu0&|@t0 ?`bI(rd풓%V/$C0$ p}G0 &( %?%I`'!0jgEs[ ϺT }C:m,= Eɥg喜l p hf$Q@;f  , @dMH` BKG?H`Gr`8i@ X8*B` I BJ n1(-%@j%P 7@NB ./BjQ40`bv#@0y1|C `tI-&#xChDv07d _(Hhb2N4L4w>1f$!p<ߘHSВH!3Q$`*4T!RR v(#&H`pL7谴l" q@8aP @(! `1nC%p|p`@ "/IW HX`@b_& F ŁT?\oAnP j i!?sRPh>&PP4@ ^H $sX- TBĘ$),! `.!]05,@I* @B7Ą DAS$XI bR݉X[1!Lb^I #36J@Pn$ )Ra59+ p?\@)xLn@`3MA| ` `+0̇!٩jrZ!ƒi ;}nf1&'%nj-xi柋$q1;.`s^z^rp)!1 L hVC0ֆ9fBR@)`;`3=/NZּ;.@f ́1b sf+2lI Ƹ%KT'1~B5[.P  ^;.`s|Yr /kj(փkB|cHKQ%g=j[3'H;`k^!w޼DgNyh!fd G?: R(u6 9m&d ZvP;JyYk83.9w>m`/#D j|9#eP̄R:Ǡ<k8, 0/FO~ńa^3.|a@ F%3+54 ] !p$J f=rp8v >$+bS{"11"K`'!sgL 3 3RCR3R{dFm C!dTTYAi$T5'j*$-[vUǘm/sUĠg]CQ ;xˈ"(h'4jF%?zR!$klTbң'!6 )R(jj KT6!VQe 77 gQS, 3~e&\GLx\b^DXDW!9& omAG{[#6 ݴ!Q|4~fל} cE6(Ǣ9Q Ec`v^nǮ&&)S,Z%TY i5;Œe{91ȣmȢ 3!fz^j2(n`=?eZdL!8ޒz_Ж8 2E hY)^~'@!N ;U "ĵ->e 32E9-S"PBQ4~Ep W-UA@9Ò$@'$͙ p|HZQEb $Gͪ 9tHЪDP}QQbH* hA-kp-.HwuE.ᅔHę'PϪ%humPS"e;G2EPa^aQM^5a"(edA@Q f5wbmoH҃ngc_.'*Q(ͳa;>;~e.]| Ĕ0Ŕ-] U;|l:HZyfI]PB*4{GC;yUȣL0ox> ` `+0̇!٩jrZ!ƒi 3}nf1&'%nj-xi柋$q13.`s^z^rp)!1 L \{JN-Ys2`4K zrֵ3.@f ́1b sfa(G8O)30"I{# h/˯5ׁ}3.`s|Yr /xX A8)%Z6Bd@h /5E8'QH:(ܫQ%g=j[3'H3`k^!w޼DgNyh!xO=_ B!_(P0o`*X䯴h@P5Hz'x#n ;F@}&#cWXC&5k%i4*rTcm`/#D h^Tjz; mBX4Ou:N  _#0ğ1aW}`3.|a@ F%3+54 ] C  ?2a(O:Id|t%m3 3ĉ,N50bz2 3 3RCR3R{xFPsnSrݨKdV1B%W?I(T 0j5 ;*(1.CXPq6AGŋFs*PJ31B 3x˅ u}de (j,%T6$0> [R -JxS͑n DD6o+Q1Tu6*vEL 3x{a4`a-d^647 gs}@|ıa?R} aH=U4(E i=<P4IAäFaS7YЖź+5LLlPj@zE"BEnE 3!b"؀J 4~Af 8"p8cL#+i|AH[⨈ FೀqK.͖ZLy#=P%9&I HjҒJv!PH4WR}H aesUF{g(V J|#h5$朒1qK,0RAB OBJ H |P8) I [PKLac7$1%~ns,!:0`F ` C@U?ħ$XDy0`Ġ{Db䘳 &&5쉀&8q6M A L-h )%wCp:(( D6B+`j_h\>3DѽL|,V1a /! 8(E?dӨ؉~v6)P`;&ZJ!n"~$';TH&B 7GXa75M Hߊ-I``+=4De#CRH(LO$H N_x?Kz\N$4Yi,T'"jUsMl!F{ `.(eO#h&􁂍Jm$!> XH2@ 2 Ő\v```DV '}h'(` %;@2ߠI- I4)?pGh T7` J|@p5\BHkN P 3!@!h2'@1`O2Ipnryi hR`Tk2b N"`1 @n{ 3|Z9)AaJ/=Ydi@XJr8mDu3FwI)o}];O`S' 0bX  G!`^/q^a0I\= /p K$߬'W`^& Nh@BHhi+rz!Y PkS7:|&(  6 $5Nt @BOwI| H| @NC&&q[+wOҞ{I/ C 4<8LMFk"D*L(J8n dn!w'C-Ϝ8}EqDZv%9 "u3Uha]( ĚLl `K P>f>n+>\0R(bKAM}ѡPs*CPY h434>8+H*S2/x0Bpi,_GlW8p. uIE9yJLPv0;GAy'qwDLỤӌwǤ͗yA1&/:YY~DS'u`Q(fd?iQϒ_G6U",4'%1  Yv "t_> A|9=Pp HG2~<"aE^1"f (@5J-q&`@KQ3ęXP^LOصͰ^I,mGzQ[TOLA@!77։Jt$#0\&6΢!L02-q  ;; xvK @Z? dj&'%1[Ɉu%ބu޹Ӏ "q LQN=z :_7|pћ?se43vLn}OeJLw^?[crVNȲA>0IVw>by;ɈAf}3 $9VHhiI kL1 YJQifxa7v5j&i $U=.+l@NLTFIq~v4&ɺg3 "q'hDV{QLN\IyM;x(!xgs$AG2%&>iK0e hko-, Jj8R|&&@nG$0!B@@B`O >3Q94L-ڱ7΂~X5:4a J=pΘu*ٴ Riyc%ǏJ=EH!Y @ !24gL0K*#co^ [_MJGa7/mm2ίd320C=iUơ:6@cogkk3$WWZض7$x [oDMȶ6Hl2˾, پة!}`S#2#24I@--5YTUaD==TSY%]e]]uYRPFQG%zII$5#N(zm`L]1+mp[MZE<Ďϋpi뾁*ﴽ([iHa>t AE8V%{ms!]4HTIG>q~HEU[k)Ѥ&Re]l:5dpè8W9S?Vu)jl 1=[#.1uoꩬiȎZj7eGa.jT^bY#R'ZEL-bS#3#"4mk;15UE4P=PA$M$QVM5xin"Mtg'*pRH&|?7$sa!(+YM˜R㖸'QSCI6e9 JvB٬|‹%;+nZe&T,3L\'>-Gb&bQ*)>8ܕ9bHtq̕籴Ub*e b$gqcQK-V۰2T|ڲ2LpR\NUrWkw%UQA֜22#i8IT3fȬʹ`s2S"B$**1EIE@PASI$UdUeVU5®jA)[`Ѩ F.٦m64тGMqĨKi%-kdB-Y ,{+X5WEZPIn4Nd3i=p4"T%@VtrƔ'1ZWZWӌK{vSDaSgMvRzK:k(RQ+R2Eߚ:|.Ê2Ȯq{Y/n- (Q%juN?Nu/IQ&VBmӗA%m780iօhʣN]QF]uURoE5J;=IN`1I9% aM.8V o+qg#"=jRY SB:Yj4M'آ[B Pøm$!l `.!A2Hu uS2r utIAeFf xnWD`貂K dž+ L3&Q9 -e%D|3 BI Jr `$Э 4_OaMR儎"eso2蠮ml5l̀vXN( s$@\5?#TX/|DAvDPAbrR q*uFm"):GejED%"rRKvZ &~.&ü @V 0+hc0r frZ9A i.2@#0qp5@>rmc 0HY!D1,1+. pom=of^ᶳ8!%cQZK-)-%Rsl|1>Qf7|%,,G]k-IƘBp4,{K@-`{l+. Qk > l '\) EދBcf{o+ZK=kL[˧j,&}`+. 0^ol#[Cs X`?/ X||P#( uT5_<&PnzAmkkRg< %$9L-qX.$O+`";vvHc=f c8`(gA@p( ]' SrhH pR}F2EIx AYR)cVŬa+.X3/͂ ?_e!xr]ptZF'`?ؚҳx0t E& d#jl3*OP7uF"~ 8yF+. sad s(\ g) ւ(hb%JCWD](@g4rdy-JK='Qʼn\` jTQ jU%̻J3M~M T]IaxC+\& g@4ZJA )%R&9T*usc!  3z0Q &(&#vB`of /rNݚ- &0 @te MLG$N? cЌW D0 8ݲCEM>.,҅fd ChtpPtt)c@W]wb*e +zU، mX,Lje' >I\jR1duݠf (QP3'{YI@4L%`4sdOHx2jNܙ7[VT{jX4e] E"cu.荶ИON,P]D7" 3QC!2桔2(` W7:yY ;:oD`@:ģQ$mrZmC:ڠd pg&$b[š0~cXت2|^^,mj4Ų\zQJmA8o!"E5rhisFL3͂oMcb 3[i1rCX%,a! `.!D6 *mpk$NUD!"mD}(C1r)<:7?., 8(% @\y,#1Z*vЪCDm6(UC"L9ȢLu_4k2cQa/zPz5 kĊ3~eMe]>k dsaICtBeA7}}袝:a ZuI>M.l75?]S]?{E&Mb *8f_rr )ax>ü @V 0+hc0r frZ9A i.*o*(1.#nnMzfr` 8(4_Œ8+. pom=of^ᶳ8!%57e$4|$e'c`ZRig12 vs2X.w+. Qk > l R+ <>RRrP$ Hhd5vHz${ !0֙g%跗OYL;O+. 0^ol#[Cs XXY(j NVH27yRQ(%:uH6I~+ONN6P#|Xk5쵉)UgВ xXdp}'+`";vvHc=f c8`(gA@pHK)>^# Ʉn7!&`C)Ѧ/ҋ@o NK*X<%%4,Cl`Ug%H0a[]sh+.X3/͂ ?_e!xr]pv@jI+@TJXO%4wwޅɠ;hr f'})`Ea/p_F1Eb/+. sad s(\ g) ւ(Fxp3P` DE$Њm@J&X$$SldF-bĮG0c1FKت܇02 +Yc2&1¸ͲӐoXϑ404Zլj7@K) \4ۋVL9 TO, l{HD0ߠ9=|*H盼K-#=h-T x}ɢr( sD`<p nŁ`$AB&zN$ԡ9A#Ap;:dɎU.% kƘB 3zVu I쑶0 fޡA C ]0urC@%7WBnhY tD>&G(3adP. 3zU7 Jv$lL8` 7  1K!rX z`҅|9E15Kyc>!? 0A3 gDEKQWJilC6ZE ^#'"Z?nx6" 3QC:-Ph#|LD >EFɚ AAkɓt%mAbtN $ɔ8n@d~'O̱̱ 3[i11 !pĸE 5tNBn>MВ3U RRDZMvIعR@P53š"3PQyv= C"Lk9 O^"]Kb)95klbB,[Ϳr~#.1yO g+~eMe]>C{=F Ĭ{ФiqY4 #QL̐Z*z Pp]XXҼ_U<::({&u"_d} Մ!G `."vT\/+D_ζ8uO@z~T@>Ǒzf_w'ƭޢo_~?<p"vf^SП ²D>@'`aHF$40bXhJk?Y'r-{"qc,0M M H $%w$\7%(NJ8NI,ПQ3 @P 2% ߼`$3&4 <}"0*P$VtFP@KC?e?w݄2i7@GAy}ƀ 8t?Җ` ɀ `X/ qc)!Fmft_T c^M& +v+ p>`:rLŔZ2Yh{vd|bM4[tܶ k(0y1$z7v&ɮ:nQ 58@ggx8 FrhK&2Ɂ" K-9@ `|=,`aIJ+dfx$MI 2` pa[7q0K0J&@ -1, zO"t?E ɤ?tR>+pή 'shM !qecP5ܔc4هG Q4*@YW!.0!̑WvfM~t ч}xL >qנMAdDP 5Xo-+a/ty05%$I✴m~o _Xv(AJrPOOAn_NC !?I1ݙcj1@Pz~?]ORG=:'hja0)EQI"v&9}0M C|d>0 1cQb(@~AWߊs^@w4a7H4)uaj￸RO$@HJ;{@ -G}׽퀜 $[s=C8bEs @ ЂtLA f堤J_ NNs# 0r`&ˀZ߮!@,}/ 5`UR!, sEޞ p "v?pmHY?ua+Kf\+%0DaFApܚJJ"rD4󪅦e;II -J⢐M%ED$,|!f40`%&Hl2v 3 fps #^}VUd0005$h ''!{ `.!O%P|LOɨ_#B`:!50߅$<9ELgHL:pDp Z *3 ፅ %|6H!ia}U.co= 3/̌&S))>xQ|1`I Ԍ8ANĴݜSpĮZPw_sJ9E,I@`) (3} JG?Œ nn?@XH e$1:?D]DPB ܯJ-pғ|zA aqDl+POJ)V `@:,"A`(P A$a7@18 FE%(=^t& ,I/ŔZ +`MNH4o(r=6¸o͈14CI<@awAy)85%"Ӏ5 @ eĚQ!@7~&@01 1h ˙-4,?v!)Ezj#A}Pa;ZCd33HSp ')@Re_yDR c@L: !K BB䒆K0 J/BYhPg0%$7@lff;&I:ł&'K^i&_tˆ]/]称1.ÀK< eG?@2i@*eRha݃#΍ϱ ԉY dvj@a9 e` >( ( S#QK-#% :p1)~ #,Rղ;%͠P?  0&mяtNޔ 3rzHcOt, v9g"aZ F?TL]Ħ(52Tt|%\'+&:,b{t?D n},Q5QhM!X DrvZB-aITXE]M> *Ҷ:0B 3kɳ!5k3bnmDfމMD@u3( -{NC1ep}@ HIɮWm^CzBA|πYL^8jg40f ҨcHƻvk6 ` J:j|HB, g}$%.&1)GřtFI&LJJ׾ٚAR o%A<2-M[MX^u_꬘'.']T&ϓ(+N4݃]l6CJa3QΉDt1I^=]2\_&Et+ܗT5Ft;N:O('*CHAkIJj!70;'& ?*`J(+D?`la,> (?Yc@CP 厢(` NhU4 K@L?BcbaEg 'q4 膀Hd1) h ޒ^tٙ?Dss7~l\t+[X+=dRm8"LeY7=/Sٺ-%9q-#D2Fw_ðvުtrX0`d#2337iV]eUae\e֟u/fIT o%T[P jG9]q)lVRA M*a32u=ƤQ"mVҎ_qզr;"X훒\w8Q&,[DZk%2L`r Mmas*p4ީ,=F eBpNZJj4eIN LNRڄH%3mƷ;uB(7X;!?a'MQ$V4$cቸen8ޝ.a;Cĕ&]p>22N(ۋ&dh6r%& RlԶw[ r}rCԦqv>w nVF.M7@bt4443EmfQUe_m}ޒ} 'IT7"ϫ? lQ/)&$VQ8."ļM$0JQmlB%IE)2>]"t5"8uhF! `. ?}i6,¨,ª{,,Q Uus8+&6`x/HᶇLi2 K5]z$ +4.TG4MkVi&i HI=\w4 X`.m+H@ƍ8eõ0PMX;@r'wx|( ,RE, 0 0vv<+'Op Á B:yr f,SlL@@v7[̂&q!L1$^^rᮺzݼEcc|\<+- xf< Yp/̉47}$18D").2C ta])Jyir.efƽ$iwU~D`~14Y_B/\ J( #GU8J7 pD.rgO@$`L;X}DUP=.^ݚAhd1j7jLeW#0HYjL5 3Xn F?ByL-D`R@/@:BHatSE#N "E)3BI%o$1&oJJIB0wv`?jI&v nrun,F2ކgo-츳 RIlbe.UPZi  3,<>TB(A%~b@"`o'@{L\ P%wfABhnut|{L,jlZ31n7 5@#{ZΉA dq@\~hh4dӉ { R;ڬ/c+tH;<ȃK\W]սF7jscŽ;KCaomГLKCzYIU ðOV (h`Ì3 EȲB3H;x羡@R$87Kp?KvU=x!e<#:,0;NMs^ h6J742l]I'>z|9jKVi3 ` Yq;fh=8`Zm;H@k @w |0` Px+͠x*B:0~Ium c,nE'_";L^;3_6ߊ1--< )PjDX-FYXMvUbJn~ Kp(Aj`UbdE;p0@<6Y07 s@BrsJ-!dXAu|qIHB{0# oʴLc AVd>0PƒRHCD4:qQ4ƝE4 Q] 9xsr*$ͼ 0 `Y*RJ,±`]מh;'_2-`o$!Z:Db&Iid00\a.H/&tRWEܹh B AМ q*tRa`P7(8`](wCc9nWߒ"8"` 8HE'ra ;B0l롓|0&@8L95dta4W%@ POEtВŰ47~Ldߤ/7.D9  VZW0 ;X1g#Wpd9E+%WqG麪"83,b_IEcUʠJ3WsL9 :b S3-n}ڻALBuUEYHl$`]Cq&xҴ` : F3IHvMI$ [2ne=qץ}IYL 3 _䩫hn S[I"Ѯv0 ?i穸JV QZ)5 ;( ͤ`Ř Jp[d~rm-LW= Iv%-h4i&F0^Q !kwٴ;'Yw'p`O[LNXK1Ũ@iZI¨ l=LtS@;Tzxz'QxJ5X(c9H$V5IZŃ0:ߤ:H'vŀ=WLH0 Ddըl+[БT~a2pP*qzM!95# |Mp6I(,#'hR`6BYwfQ5%r?F?k %<"ri^y0XhT ?Fx% qܺB4>6%2@uK%?TX @0:ЁH Xi1<c5\_~xca'xHSG"tA<1V+H^*P@.ţm2h 3LjX#&_΃pj pΤ})EDOMW;?^i0h:l3]0ᆵ.P([ @Jx<^$2aay 044c\1aK#ux!G `.?72h$ktC;!M'Ru'u"up9aV?֐ER ϽU%+( H\qni&I43P(g@ss*B\.2Y /۸fPQRzRe3J ԐcB, Cnif@ky5lwD&SE_0(P9E@W8_<"s 7]G:aD4t[Q,@0}( -}΀RKKe@Iv&%0t%ɂyA8:HE$I"H :ON6ОglS Nqx X&|j~E)%Uf钄&&Q\IqQ љ!{ `.! 05UM&$(( t|ףֲ=H ϱ5BPY2D.Z/Xh k Q(G(h&0h Ft]9h!LH0#<0%,h 6|HNMI1#7B@3L1Q}Y.&&~1?*&&C[ZQ|whU#?@ӕ + _%5=HzD4HĤ,:%ۛDAiv[}^kp"rfר[Qԃl>G yo06&2%,$%ҝ4(7Cn % i`<ɀP p.f@]$N"@)ekCitaLt~X} U\|BF2ŁJ^  &0u.MUi*g_"vTH,&^Lɪz&<7Pu:X%EqH~WƟe$H`€yEAwDɥf,Ȑ &pΆ/_0_{@: ۆ͂1>&(-|M-9F>a{[h])muZP_)N'9hؿJngkiXr8ލ|'MC1Y(/ $D@XhLhp tP%4X=%j|d0@e| U3чӿ\Q:``00CR@i)$0BIiK|&#hQ1gH^]aQN"sĚ8c3ЗЄnt_gG9׸DsN3xyUr(SLx?(cX fa3!vjZB1H3x=#JNBİbrZ橪rݏYɧAƞiK'3.`ӤoN PHd:>LGջ쥽yb5ejc# X`LKӖ=x3+XW's l8^@r@1%[`1DC:~&0gE >A\jO&y;Fp?%pǡs~/+l+0N4v$%-H?!Fѭz__j}3.xߘ(8ɨĔEq L >J1$nva?UC0%m@+/ 옏QOTL(M%8C `LEȱ!@`Ƈ;Q%g=j[3'H3 q< })#A| (V ̜|\0E'CW |'xIi%55)2[ h,a+۾@:&@,߯cc8'u=CCڄLl@ћ̻y2HIh ` v\%X3׎q;.52aY)ݼ!xxF $ip7004BdLt+݃T4IIꡤ)PNSbppQa0фl|QjՅ޽8, 0/FO~ńb/;.x1Ka&kA8N PDҀ"ݽXqbqC i "pc&UneXkmumϭ v;峰ТH-' ֓"6T)8mFڋ)%[3wl^:Li=u%W5E]]{cI+fPmiYd+m& [tŸ:TclB p%]"9#(M&H}R=,IGFOnSi5lD($d%N' )': qۉ%mDXd'co0:`]MJbt4DDD[$*1Y] #HYki.0Ê:]Z*KP0{6ۋ65mTA?e*͘yYu6FqjMp54"exhb%jaX )4"dXV Z$s25-PRef[2-[mY*MJhMlYʄu*5o "sʚ п4[UҳUd.qI1iuҺŵ0/xyWdUTD kXB"2R! N "CJ.v5oNjxۛ- 4t81UDϹ xmZWezQi%{*_'S Հri8U QĤG!k!SVgA!5J2& 3JR{OnI4䴖Ce55^&HSPqr㌇B&K4>[/~1>j k*Q:]A[ {CX/{&59rc63Yfr\-k2֕絍jK2C8g-Iƺ6p3Q#%v,?¢n&  YiέPnsԟmgbFEaSy솇Z3aj3;Q ^f BQsلP:qOCdNYcm:Seh[vxk+[)?,7pv*y'd}ut-G ꀲ VŶ./*{˵}]uA;xyUr(SLx?(cX fa3!vjZB1H3xi BKIocԷ5MV[z^M0 B\=]yto11&v> $pJ:~3҉}x ;.xEieQ- G7*Ot6DcR[ NP6E%9jz07 p740T$aXf+8ݠ(V~h` 1/\Y4%VLPFG-t#`1GHab^U\; :"{JINkZjy,fZS?^)=Qhi" pbh.!Īׁ~PEԃ*ubцkZB2VB bJnv5oNjԵ <&t65*xdQ&ha7'\{BJ;*!@ `.19` 4;ĴfX> l%?ږ-(#F6S& ;JR{Oni-N[!#2Ֆc;VDfL$TX B P1 1F-XYXKM1c3 z*(LkOTЯ`5M} -^TvNZ5;Yfr\-k2֕lnK1Ht~`H3},P ALpЁUZPNUP)F?\eDs:TY2n&NS&*SYTH ~6};Q _,(i}B0ĄzP. 7е\8nSBtC͟jU !MOYu&Y`v&0|Ec&G^ 3/=͗NMNtRp#!zߊ^twҍz{; `f5%>ˁ il@;&3I%dݺ5@T8!002`a0J+QOՆ`~HI- 9$ߟ>9]u/X@5 @3H &LeYj Nh bJIePY[~ 9á^`MvW$!@tC(HbP{=Bt(:0'W|oh`+ZwUh .4 9i !=+k @iSKI d Oe={x @ƀi`v|ݐVC0 $(L @ДgdxCߓ @3ԆM&|~v< CB "ІC (~n[R",R4JR'rN# EF)HDY))٤)fD;`0?-L[oCE'SB.夘{nKیH ݺ}iA/@ $ c0P `M JsV7*)m~Rp2n0vqOA Kv<۳缽-W8(FY?weg,} dvbHb{͛-L4 &ǔɈbpvv \&$$ elJJxzRKs ~P~ &gXp(O$`2/-0Bq3%v=\jC{3` '71/E[sSuEr:~V@AMrZrՑj 0,Ͷ7ܥ9yl,,n*M-ɸ$ypģ7k4jR",R0JR"#HFR)J,R0;)JJR")H"*iJR" u1,A&m u0jrc^` HNMl^n I딥*,;'s^d`@T3`dJ㎼%@E/> "q,^m;SV2Uq $“Fꋫ둄g7)R")H$r')JDB4Xi3)JJR")H",BOZ{ R^F HdFNo}c0* MWVB b]n>hO :~#>u q 9 q } %d)dnm}ToB0(ZwHiIB ,v3@rd~V1"k1ԲhjK,)  J 1!SG `.%FfwkȆbB SyB5 Sw!:& {GGާ)Ko;' х:٣BФjF)JD\)RR8+)JJR")HJR^LC!9dŨo)9e 5 Bs쉁Z p7GCC,5]Hb, 7:J wT0I qߙ|@mƱ6k7%9e]HwIÀc%Db[qyHJ++کԏrI(##9>`4j_.O{Z#JNޙ4r4ԛD\)]74# q{)iWԽ)JbER)JD@+)JJR"#,BiRR/]8 ! }!& ŖJ݅x@K!yI#\*Xbx-7^V4R?O:P0ŷsf3G՗7SF??~VzZ (Vj|i 癑ʗ 7N+kި&j<Ri'ٌ)v&uҕJ䴥{"w)JJ*CJWr#H" #)JJR"QO֓A)kBK tnq^Bb2~N|؄}K Bq0&VpշEt݃; BvW(;}zGoz3AY>B!}|ܰsv~%u4nmIAԞt IⶸF]}| 44eKS>i ܌#8Sܥ)OR=)K{jB٥)rD#)JJR"F)jJEojE[|;'.(jbWb[lcz4"jRӾ(ujġ-lI ϕa7h‡ӓ:` L B߄'=p7{Tơ0g8`@ $j0!brh 0H)ׄ9 8#'ϯ^ p !/e\@ X3sqWpZEZ6m|y֫P B&˵Hn!'6_u(> ?8 ^ Nu^0 <( yx FCV LCn;o5@/!d (?3ǟR@,58W@5-`bn5d҆=YR02iN)H}Obx{%!c,k職)HOo6ڒ #)J Qؤ^N bzC鷨Jy;xqrrTC bQ|rBHp_Ya$䔖fO114o AlV=rCшiḯ;k߆;Ie򱊩ye b׮0phC G hJ6\ /'/dA & {w mx@H7 Sr;'L!dP@95/|ؤBGfR2qh$@ɤ̞i ]7aJ.M_r%#Idzq;G eː|r5~ =- }(JPXOC>`'Bi RF֢P@Բq: YU9b~|$|&Z@`c<'r 7)/AIO'jl_Hͻ{g>46 Fb`R D`8!Ʌ!f{ `.$T3 IIMBM'>hW" MqQHqkzD o2쇀tB OlR:xvz@?!ei*2\4 3P4"?0/~?=#z4~y (|\bpPH>,nn( w+@ܭ\%dg^xI&#Q4qDč+qWNp)v(qEm3L^t(x.aU'@c'~NqwHx҇Xa6kh:yAB:H 5@; p$'81++ HD&8Ko%tH8.57:pr% ɀSH@1QրR3 #4 P@R^f"\.̢jJZ+r> N \P(mH#i"hi'8# w{b4 @I*"X4~~jH*VWXiFI}.@P\##6.u~N"KfqF}oI"qʸ>f{j.4aHO5n19ȷ3Dn//4GJҀ%h s%}Ύ&ľE:/rQVA7G4* HH 8idW\Ih$7; ǎ|~W95' X e;a/W1khG52gc?y>w[.1zkSFyN@ ,Rp"ɽdpհ_-!T4?0䴤b{9l7·C/] G]ꉡ&BF~z kRUz=jVڤL} K,uNa /kP7^@=WW`V>Ӏ1!p?]/q7_( l7o qW!?*ofB $'Y0n@ @{ˆPe3%܈nygD o J}@ {0l17D^n. .R^g ar9u۱7uዓ #hBJ<^>|uGhQ^pm~>,uҙQ-GP_q`;kI`1sejbB/k%)Gy4_{X%_7\m Hy%sHW_ I}B !2bBS=VT1h[naʗM9F|;ك7x\CCG\lL&d &01b Li^F:b; e*X@b'Q5+eXnUHVXCiDЃq7@aa'n~O,U"  V$`RpslIy :QN?{7kspNqw7&)@dQsr 2r_ꀨp7'W} ]5/'.'snP_|#_thX*ޞkj=rkFp.--'Wɬ|mRl, @U&rc)ZkOQ$nW.POBNZWM?qE!y @ !{bgm^H0cT5sNpsbC2M]EҔ\ٻ}`S#22"4Q4n*1CAdQ#A@IESYMM XI7S6d5o>__h9,YnXl]*gGV;xTc^PLX`h*æ5Y:clT=MK&WdѵB$_mE>-ޕ%`Gv 8ŘK ojeG֩n+zf8zLzʊnosZ#3d.pj5EYyg1:h壬҈BVmv=$fͪI[)/׮^rNt@D,0VCp^')J8Q ϿVYVb! bS$132$I" 9AV57kQURbnjBTеU*}#(9挌jФu l"2nf,y WP6 |K%h "Mf@%vD\2( 1 סHTYi;n; 444o-$HF!w6:0&Sc%E*9N'7 rMU66jƌ5i *.11lbT"#43&E04AIY4YU]XU&uԪZ6ҸX 5WTj-XY/6c!3@$#h>`BBYm@`İu61.[b5d'IfL(1thF$2IWHJ+YssW8Š4xr7)% ޥUE[ـhXGN6i{6ugTI[FHMۖ՝mQ4Inj,jۑğ!2`Ԯq:lf`T2"RR%R)(AM$MdYeef]h@Η$kYFXuqI)3OM6so'WZ[2!Z*^ZXTؕAH-6ZXz%E uu<) mhjT rjp0y UIhGLZyXkK.N<|v/1P<7|I Oa4jA"'RRLWcSLo!E$dm*TgR{iagXnJd]Y*zGVtϢWVIYbe$"$"E.ꪢESQEW]Vmeem\u݂&9ϽRascY1 2Tii*Te h\Dn! `.!;%!8gI#J?86UT /0T{L (;lXx0Ԝ/tΏ] ^^검+:AL[3/|݈@& (n'Ocdk-`n|kƒGQTO~le\7^ Cfl#U{tL, ɻbFy )3]ĥ9*͚!h(k_Nue€3@Pa3m^ْ:%|ܞvAԆN`d? :|C&+s @ Ion׸"<_" )y03fՉ1 8PN!U/\ &#˵|0`>N@e>܄gCx&}ghީ<#,5p4YGˉ:I 47&n.QR2I,[>q,s-%|8k%o~k'u{f n)-{πkym>ueY3dbנ_ UB%[o7q>q~a6w?@E#ZRٷ;gcܝ9U՞iH` Ͼ  N_ h喒Rٖd)m?*$I,9DY7>s;V /W/*ǰBZ{z2ni1АfnxX7䖁 r:y\JVYy^%"RMStn/D ^bI 19'D)@4I %ы䴄 ok+ޟhQ 1a' ={^M&_,Jߔ?W%ZQnrKgh r=:A/]j1-{~ ;\o')x``g͇Y[MA,L&rQYiw$|skdzp &CC 1?2h"4ϙ;z-/~U\8S'J(Yc r%nBi&:^{FB ;.>z0l+ pTxDdCG]PA})ц*..JwC=bVS`\s(-bQċ3 {A|pV5n[\΂E iɺF;`$c_/"@b`KBɯ X`URU01k-x3.jMM![sNjƆf75f@ 433&H($y/%~nS@qէDd (36vo'1~P@$`H$'XF/}`3.4Gf1H1 z&U1.|zO2B= 1/x 3z]159Sk!7j#~!frie7"g #1 SS=+n.o驆kM޹;SD m)tˤI썬@[5 3*k#s1m_=\4?~_Cu{oM%_BR'%c6sY./8T:GkzǫTB~2j{Yfs3Xg%b;6RQ:ok -1siO , %{dtF!s6}Kqcu Fs 8+EF֦Rڙl o>$ݵGx33#.gų%kJ9u_I,vJ"@2,tU.ePb7#)ZUs}jQOH UO*B?]a3z-/~U\8S'J(Yc r%nBi&2^{B)S]wA(Lf-^KR5Yn[=y4!?Idc+.NXP*0H ݉C%%bWN-pޝ6$떜-Ys2p4I= v9kZ++XW'y A`u1xqrƁQ$T(G c)  jS#C,0%6;Xѣ#>hrPQ_FZ̳ X^E\r31b!Z5/K5 @_x/3.>z0l+ 8ruҎֹ#U.KP"Lm|Xf;k y .)ub BbJ$-Krcb"C3 {A|pV5l b/4碀%IbwE->GMr|:2pp  H<e?$^H-TabZ93.jMM![sNj Q< b!C)OB_qފ +*2#$T`Rn&O9@-ј?(J` Q~ 0$fxF,#}`3.t)Gf1H1E0x}-֡ד@ua E|oc't+(`@Q`7tjɴXD 0fzU31Ļ:d 3Y~efV֥'%o`uaV}j;` x~FkF= "17aڲՆBsd! 3!fb1嵈Zb"+=~%H@JG"mjh q'> { 1CL 'YE1 РD(xbf0'Ƴ+} 3z]159Se`ђ1IC@"A@~@j #Ay:] *&]3 1^ #,S=+n.5T2Rd&Dc83Rϕ$i 4Ac( H3ԚR .UD ~Jpi $[/7x +*k#s1mZ1;tDj{(5<%L nt~z$c %$ #R~up|XUEbZkLNQIJ)G!\R3+Xg%b;?N:j_?H` 邨<, !G `.1i9f2Ia JWA0侀܄ JQ`6eA'ƶ#QE62#Ѵ5 aa GI#/qyq.U=_-ofj33#.gų!WsΡVt?@=(T'e+ @I;LLǒ!*@ ZI=ᆍ`N?p.f9>u@U)*v>fv՘9άxf06^;g"l,2;l Qd],]>"}ZՐ`9XcknX@Ol—0܅ @:q'w>(c"@ H` @34` dXf NMH&ri@9B OP\'"BB'd!: i30Qω$Ia.3wvMl$SXΜѠ>&5=M r' "r(@TR dI|Ā@Zp2mRnIFCFN.&\EȲǍ@Sk&l|!%˵Q$K8'2uPI95%&ռv|ٚBa6x4[A  @`_5=@K2% !?"r I/|whg,1ƭ'2 Ʌ Ghae0K~1`@1& |.Q}e%C/$'bCQad"n4 %)w0dP1W1j) 9MDA@ hxXo1PB< K584O rNwy"qB!piCE'P`AR_+D$=pa(b_FŒO>adtQQ l+0'~af{Q=0؋7x1FP_0Ic $$tr lAvYHA55VK b:f#|BI)@#YeH0d/}ԃ dZX WC C!gwaJḺP01͢#M [v14`aOvv{@\ OI}.9I-:eOVw"rtg2tE$?څdҒnFиt~ l&VR"gl`7B2[4&lxy4 bcG1m3hL&e9`'/ȇy" H!~rY ?}%˹IԢ=(=$p!?` Goe>A rL|Y{YcZw !Z0O&ԃI" 9,-*/tJm'Q(o&a:] v"suJK˶:[+dqI!/Ğ%y 1H=0gеf{4/DpPmsf] LR Md7 g9rt.:/!\lթ,n ( %Yy)\iW|1\ ` `+0̇!٩jrZ!ƒi *_Bâ|JGpG$w@ꀠ "dhh!]Dd3} Ko `@KR5Yn[=y4!?Idc+.LPT*F'hӆ9!xmB!/S}iCvqDh[JNe7dC$&k-KVs̄! Rv;fz^y{++XW'`XA|!VPܔ^E #@:&nn-DAlBN Al3[yh vB8;L&)[q3@d^;.W:xt dX4ߨ.PKW %; t3$@0b0Pcܟg @~C_2kOC[/P̆`Qks](-bQċ3`{8|1R j[0=P?nLLPa04V`8T|XJ2d=L< 80hS ±1 '>PVXk {CAY.UD€Yk 8?@jH&K @i`U**ǘysp3.jMNB9)Jf$(hKKݮx& ŧ;{QW@F|I %cQ8c_ycQx( 0/FO~ńb/3.C:,C9Ge!H0L*"tC+RI~{ 0gc^|YˊЅOpEx''aΧn AHD3.=g)f%Ļ2 3_~al/8%n&O>}jie*jtEx!i3$j,bC_:s̄! 3!fb2bb5|Mbx;hu Y#@~.%$ 6$vC9k 3yc)c3a"k`@e`:& 8蚂" BBp Y4F`"EbH_KlJʬd]KH*(J3mw ~CԵ.!73O1 DFK90QuYkN{_Cs``UfI;[ *`[`aXfд`us`neP 3"e!b3ehebb MUCM7j]MB#Li WJܦԉFkB{ Suvml03!fjܶ-2K3/T7)cQt,8B3^'aOB`MHD[]j**Hco$&I++~Gk Cs$frȯy"3)frd[̟.LD! qU=>%(>}ۓ~:)grv̭T5/8$x++zYJ'L ox> ` `+0̇!٩jrZ!ƒi *arn`a&ˠф_ r$=1 0bPKi؀d-SUדO 3.т%3Gv>а7lqq `ėrdG1PW[(΄gNJxC H{JA>A3$R$"89v$J{Է)f1F+ ,N>3`{8|1R j[2$h0B9 `*wha]iW@2r̴n jNܔa)z>d<}C0db:B,񧓖L X`URU01k-x3.jMNB9)JrXIHAx! @ !{ p,LU1)0ǽC#2Ĥli2W uO75ڦȳEI NE5\/^l46&u ji^Sn߾xR7a(K,[5#Kͭ@ ]5tZ|tn&˝)̒҈5ֈz-6>Km&pS~]7KJU0.E ƵZT $`T$4C3Em1U5m]u`$Ixq.JQȨ Ti 2"+VlUTz‹q&f #(e,Fl= RdxjtFUDB3MnMM !dQLJyIi^g\(aұߺq#2-9UͶp*Q͐n6VhسvN&~4\d] ۊ(YSI*o}U݊)_l粕~mFթ_*(AiVi3"ѓGVMH;I8kbd4TD47ZdLIUyniC*]bU}#z'pnbŪ7L9lqxpYHF;^&޻5["Mn+:j ϴ Նx6Kh6fr&s4;uڬsѡsR f 4RIUNh}DԄ5LA4zS٥,yVBIWgM6JB2CDEP[qrDT[4]Y͸Q:9Ѷ"ǴZdɵ&51;`Z![d of V'+ u65[1UmIHrDb2r F`R"34K%LQ0-T HYL[:}ӡl9P`FiMm%4$IxWqOfzqP3NҞzDۻh0[tjM-3րE̴'21Ci%mEkJ']W;wHIDN`|--XQfWHV`Ff&ݜq6|\&9$t2l0&1˳ 55|?$m'm[w[w[omXE v2G՝fVX*&ЪpNl~DrAe$e6Ut3^Y"QbĔ"%""$N"1K$ 8=MEYiebNHN 0وإ"\ghN1^-ۆ)5a$8h%r&N <\qխnss-lBgabesV?7PV;mj3CH/= Jқr#A~e'X!QcFR,z/@T73ޏ3]%t߽Kq0`K-^7tF* }n+"9.wHq``e"#33&hdI8I=$]EYVaaD{Չ6J qsڴoaFdnm [,{uiqTME+<.jM>jk}3w:CeTkPDZm!pqocppQ7~09$PNNԕI W8TԨquIm)Wb&<%ۆIM!{za=Y!jM5dXۗJ$e&76o{#xَR[(ioZtѸ{P#AuVZ ' IbU4$236LJ$UDI5aqZmGYERcqU .ei!ktnI#գ\aLRV53kUqKKyʎXr դ'cYJZ'fZlga;x6G4Ij$ؚ,VS-Y0q"Ԉ)6iqSSyjeUYAIE9dl'yzܐK$iˮM"Mfk9! `.1Mi=C5[4bj)5-G[ʽ /!A?1~Qj/F/HIO^3.C:,C9Ge!HALpd 5%',IQTAH wj% 4! B2B"EQ::Ne͏G9$ 0f]|z^SKv2d 3_~al/8%n&O>}8qk$ |+p#Q5SBѪz+Sן1 F]|s2 3!fb2bbZ'L> ,!#D ~$*B8ݸ ełBP5x 3yc)cwoU3@iCbHB AaA 喓 D\I9 )+-^&>AM#|ćBQmȣ ~ı.!73O1 D"88> Fa#&G$uc)T4ʋ2CPX^e!@X:&9x(hznI+ 3"e!b3ehc /R͘156Ј!h -Ix7T] a6b}NȀm^pBe"0C@'KBk.ߝ54Q!2k3!fjܶ-) ixR7F6+PysYE$SB3-GI#6d*8&0 DI Q$CYWrbjQ(:rD}\DPԁ@уNj%:vyT3)frd[̯B3eO h>L&GI\%"(f_TarOrY?b?N2"4硆(Hp\t yVkk ^f״.ghoAdeQa%~{?#=E\p"{`j` &jL!$g!8f2<"C!4&ɻrPA0$$ 0G N`9CGvPJ$ @@ZX /(j@rZ7ŠA &Ea!?$Ag"sĊ`M!k& Q0ieBIv`+tJ$OKq3(j44tra`"-+%d$Yrٌa/vN'P\Kd6!IΗ$`Ӡ 4*h &hjpixa08#l, ht>BMiKBB GB3F"rQ5$;;`:!I cHAtq` 15',rI\E ` sh7 C_/PS&!ߠI7*mHFO!<#]8A'Χ&RK/B76I吉礤~':7 -1/#Y@bp3<_I̖6=,*)]##_8As}Dv :è,+TxAT JI! p"r. GK| cP:[$G ?] @0j2{S܀PnWv} 0!d,05$"M(%w@T^1@r/?g ɢx`YcpJ n[./ 3!ZXJ z41$Ms3$#]}{8H_tfp舁 P&x^x;(CQ"° p"q &G>@EphG(^bF7}ZCKOx@Aŗ!G `.`Z8I+¸Il`DZ@o@$F)4F*L,RC@vM  !`?bL3!Q,@`i5<$x 쁘=JJq&|@6%(DB Ѡ8Gr,Ĥ/  A""qu0 /t@y)&f}} xpxBYMCPXn 0G)L^Gtu#ae2Y`p z tH%% ndYjN,) ffJ ᄤ(gIE 7>ĀQe) `喢ҟh#X&!%:= w 8P"qOKsAv` `P ` zI]#RKߢ @)xoWEL\M ߜlM%2[@5{kcnm3bPvcRŖg59TD EL@ `&@hɉt>4B H 5`P|K +bžNtBA 0I. $ 20`Ʌ "p8n&0vIKՑbQ!tJM e%qiE}[APja\ v  rjY0PptH FT98Q$bb` 膄 IZD@ 1~jj0ɥ`DHÏ0M!(4%fCHd0$βg Cwm 9y`cIX\8 # H0 @ S * @Pf-jA| \C@$3Nd5bd&TH RN0!ah 䄣 ߑk1@Tj$ @W j"CH[4G PMBY'@h +RM0Ѡy f(5#0g>n} k7H?Lhhh:+4!D~BA N@7ZfG,$ 8\<%/@N(=M gTCs<ITK$~׻w0i%QjByR}O` d5 7&u'HEN>= @NQ( L> 4 P,R (8%,+ɚ&L CCI'g9n Zt40lp,Z= rimԍؖ죲@Mw䄵fg&BPC@ A()LoD0;,AF ` ^)@tDAb}%p5el,.6C0$ ؚR@E2  @p + X(3HQ W$ 5OVn 0Έ $CP?P04PgfHTn,&G;A`T@Oj9ZunE$Kn &dI4>%;5!?t4&a?mt ^v?ฒx.[ڗ=jIe]ɡ(MQs~Hagw_էDPʖUZ3X^>}!ɺ1vD S"! 8g Gsi@F2A4a7OP$rH)0bv@*J/(a&^Y$Ep0`܄d0IJCU#w6))qTҡ 'J9@|"w'\.=> `ȶ)M] NĐH\QEޭ'70 3bJIiPi40PW>H?-WI\.90g7\Sl:Z"1X iCR} _A!&{ `.!P@bF7cL*}U%'cX\sפM>dګiVo웰!kYS *>OЍ%mjŶuR~Pau`ĸj flIgC0֢-!7˓HJvTB0|LA[NCf ?n}6Az7?oAVQXW)(u&|vA> :?;Z$Do>&x&MD+Ɉ> 7ceyI>;TN2C` C QwQ͑ՊNdۛbE Q 0<2 BM6ܲ?Q T2/4nf\ت DzI -)J`х4 6<|P@anW6ہ:j ˲s43Z$M8))~ ;`=P2 Fx\L :X`̄:ډgWwp:rwږF:`%<\J_dmE@pɒ8ag{ ,u>f?+PY~oսX+zr_ Μa,v B28幢>ПEab?T)䧀IPtLF6 OAC~ybJُ@*t"nf#;RY ,P4 dT ʙԚ@LY  JhQ L,[y)>smP0)ihʼ\**+O. co!!9/E|@"`}ax3. wnc-1gHHFlbx}P 4(kp,?A,'F-.V|ϐt3fMH먚gd@m,'[ĔhINSB \bV ,I28>3`C݀30R-EsbCB͗C2"(!bf ,: t2X \:F؀7γjfB~oOY$Jq1O[1&1.Ue 3_o0gj bjTQBA1;]QIP)U -  H)D!9 `.!C2`L:]|0]>usc!  3>á8, Hq`+|M"մY<UOmpKa6QxwU ]༸9/ Y] c1as,*WJ%H^8UUe(ST& 5 U=|`KrFȡ+Q[*,mJ$'S܇~eDJ,% FVut/[@ ; !.$ k @\3H8GHpWp0`d`bL6bR`ytSފj&" 1!<".5W%EDQX;T'*+%q5GZDpJҖ`p^zB O`Jc,-$=PY0|CdStPԅ*7X˴`hE zN' 00ɵ6Q<f: CP`b;RE'bBNqa^`*Hۏ`*^pE[{b >>1rQ;"f9 ;z$4&L C /6ʐ2eHkcLeϋpI": AOZAZF."b\ -a{AHL/CK*(( )S u#E@߷L\^ &3AKm,L3C_ vfH cdW m A ̴V$f fX.V&DX}@C0f=8?(dAYRӎ3;R>BJ?A CADY{u*_vj$,&@ &>`Ud!Ak`UȤg<̺e<C'_0M߁$MNA$+4ӝE)(Z'7} /0aHB['oijHRaeJs %^?03|I\F/;?L"`ڏ#$ b!LH)Z aT U19z," eH'8`:^I3*.L ;[03N I ȲedwwH ,Ǻ5ZY:6l4$Ay!8! .iW H?70a  :fiG Ŕ0F1F]Qd ␗} ۵E~ě :G8zfURhIB-[ж!Q  pPf,vXBO!L !` `.1A1M  :O&ٜ %8m[HoŴ50x סt)4!0 a !Ej2I($!Rz:Z1ٺK+ BFa̤Kv=BC#KU IHuI:L8lzL[Q"+{1'`[N07BX?PO>/|uCg"T5; 9UN[3:sho$KLkЙA9 I]ajnв2*'R<K*<$"["h7q B#BƼdP#{7!<;$™AL[)6mF6Oє[)=MΪ[ŏ]VI:pt&==>L~`*2z{1Ic[]!M02rD`@3&M&$ rbhąB(,OH\""BA,*tA&M/E#ǠDZq%F|I[(.H¸/: CtI%$Q45P K` 3Cx@C@nMJRp ;>0 ' ji})IlvZy.^`b _mhFHIy5:*s-7 0,d"h8 P)B=h `!~< ҳF!# & =Ip'H~ H!FrV)%!9E}%$؛̛dIaa% CA HLRIcR..qEQxic"q@ 7dN}p /bC!A+Ff[0#P"i,K%DA't;f !'wCX~/e?to% )= |~N*yDiCstSS5M%èLC!f€ A! bodfz${A%v $֞p "q[@WHJl$g^rGtN LCD(L'Rn]T%3&3AZGӌ<ע37A B?׉ GQx>ԧswe=FD't%ǟAh#Q rw>Op "p`p d€-#RKDD\h fTBo @V|6`g?a)ᜑ:(円a0 d4~J0;48Ĥv"C I-pIqHaS4!U!sG `.PDSw$NEDѳA!I x1%d!AHD6r$
) ~x _87h ASs &ᤢ3FE'M{Yd +7ו*' a@LC!'``n%@0+5?.YLK@ Дe h¶Z䡒``F- 3ܭ [*B:1+e`ғ'xb{n߈@& &-?IaD@P 0(J%` JNüR%(kd2" <i? "Ci8329"L:yP]Tw&r"z |_O7a@1"*ElRjO~욒Y7@/]2G{Ncb8 ܸA%=LuhxOPW}E"`^ sT@ 3TB|:2  I[g"x@r`a "qtV%lY9(X: ^I(hI ("`j7ع:I50Bs} -$5D] f "v*mVj`G& BA)!!L|^1 :bR^ hQ H @z"J $[}`h]to.e[L:Rar1K_ZL!~Dc h& (B@'(PGkb` BX``jJ RHΐ\4YIJ0I @tQhMAh`ܖy&fC>&+1X WggTP`RPR0 Kg @1r_ &(|dޟ꼘:t$DKqï& 63mLe@}iq;'Q A1䌑,>- @k "uC O>G!/cb}zdɿ*q M0ɤa533r 8 QBGL_\rhC@tI^N]#"$3'Wr@ä !!(B =,rxb@-'$YAh d #P2aa~d,XӺ,Wp(/?lmA0y tg"/Ѝl_|μ| 6IC>O/nN:>BbAhB[b҆G[.G݁$&!M'j &P݆$aky LAlr8Ɛ`N+8|BM\sw-R?mD`UPc7񥥖PI5%(m*`P`,bPEC@g-loĘ: F. @1,  *CyHA)H@v41PИ47bR%d۷\^:&yD`KᩮYv2`OW^1jOp2s H]atEuy7og(`'O|M`0t20\εa0Pk|( M)Em!"tj jL ,&!~,R6A#|Q_'/ Z[X 8 _!ѽ FؑSPQ4Qh'A\w)^aVAg5n*~8_)oB3 9 U)B(ZϷB۲:DATd#D"In%q!Cx11'ɛiJxy=!{ `.!ͺ˺];xrG}( {x>ü @V 0+hc0r frZ9A i.;yngKF*qȬL+Yi 6P?ܛX*RqQ i%uqq;. po+%A+?BP*^>TYИ@@vB% wd \wT艵ݔ MIȔ1cLd!0HKK@-`{l;+N*0",?  \4%B{eoD苖7/14G5CRfWssXȢ|ZO QǰBC ir^yt @Dô/?l;. w);G: jLEQBFByϿT3`"oG\ k C34hB?iWuDv>-'>潦%*s,ZASPU L ;`w }R d6za }q;H贡ؽZh& I2JB] L12$#" p9(Vre7b`;> 9*E,yZ@;.^7H9BK95`FBO9'>3 ^A|^ohH}C{PU:z#\%8awo6\9ZK@"~H0ȿ1b/?L;. #"a<S(Ca L! 4ؐcѼ=؋9L?/S ٯ&%R8˧ǭ*2 ;_o!BPG!1ϷϜ%5sw) _MCSHN=&㏐X39a |\4B@ ;~eMcC7zPf{Q%ǚH^-%qcUDEP+2KAD+(Ydez1T03eM b6 C"4X̱*(D2Nu\U zDBlȾ#Z IHB"8#\3Po)_pM!h0K [.N3T3P' :|=ı61BD”KH'Y֙j˱ `$&9V$/6}d95J߈µPȱ C{9E;BHSp# &b@hzM2ɞ+h6<6BSU] 1s諂#h` M'*Dސ5GHH467 ^i;"6*{ͳ. 4qi;d53a?|*R^/ B?>S-Ĵ `x@J(2B.(luǔ٧EʺC>)E /7_R?Ag _jI#9{\GkFmhf5%g1C)1\62hC= Cز:}^0P\:zI% ` `+0̇!٩jrZ!ƒi ;y/{gc!/`'$Qf1%O(61$7%;5MV[z^M h- L[l33P|r2?oPZP2_CmӮ)DC-KVs̄! Rv;fz^y{;+XW,Z` ADd{0@@o' ;soiXcL?ބ>zBt>ZGI ACU5  zpY 8]Y"讕,S4:űǡh C~Ey [1?"z%ЕZjCR-u!( 3.$BCJ8q/'<9tI o3M [p@D]CP9dQ07TiKLjЦXM' { Kbr=`C"mܶ-RJbX $޾z,>bj|QO11[.H_j L9p=>hOд(bɄ'f:;QhxPz4o92A3 j:sAf 3IՉPQX.0w>KOBH>Kx&C)frd[̚y3М+ϢGEYxMܪ.%= A=[,=_Ord~%:RN6 mh\ga[E b/Is5B-²a K" ռwa 2qAB` L8@bXg!dh@)BK, IŠxSBFٲc#!/}YN{Yl )& wv> 8*q*u2@0&0"B`@ L!fM&fH°R7+i6QHEAPY*tX0H d"j8)8dB$` y"Ge`ĸ&t:4D0  ]n/@X39-%_{&6 8*uPCP5[44@`BFCGv &%((nTY(%f Pgd#h@M!\{.rC%"ԠcAm!GRǦI#CKmDc&oActC,蘔C^ƼMcdp*t( QFh-JϡpbrƎF6jY& TRz?1xe M!n.ܵ @8Ҁ'bĀ"@< , 1)n7d?:=h7/\uʄ'qD-C a_dRTJN AGzL;#Iby-<5) CʃwL`BϢQY*uXD Q! @ !Cqht痃TI4)6eU" dڶƝ Ii%f،dJaڒHi#*#EX@\Cec*$ڍ7.YS`f$33#Jl+0JAQV]݁ןzmםyq%[ȗHd1r `hl2N V44U y7Xh8m2rTqbSdiJ7dM4rH6JE%x䐫=ѥO^Yܭj6Qaj7\s|bU#3"#&I"@YFQDQXXVaaimđ)%Ěj0k,0)YU@כQJeC[l=֟B@֓W\x֠Aȍ(Ӄ8ڏ8ϔUE6*c:*bme2.xcu(6mDڳ"(6prk6rUȜ!bDk^iQm'_u۹u[)E0; hCCoN@a^3#~6gaX{ޭ`ʦQ`+uz ѱy2Tߪ๺k|Gh`O*a5#HK`f"3##$m"꫰8TQdYaZiZuGqr3"*^XF)2HaZpۗ9T 1;%N3DS$n\ՔRY(P@!Z:x1szJ2䵤V3DSSejeg!bU+e5SfG P P#b8ᆭ:`7VA(ӐSn6p8/(asY0rIBMEq!T\(ȪiMa,; 4MRgW+8@pc*N3崮@M/h,_DE6Ԣ>}IU*i>`bd3D"36in1QvWau[m]"Ӣj#gclc6$6ϕQݤN5D6B7 خ͓ڴit$IjIسgfs&2O0T*Ii〉ZWT!Ҵyv/؏NkQ)nR*98֚.4TtG6V| q-EsyIک8rqKF=dxK)񥜑8lP޵Z,0ڦбe2WVݰsTᮎ|P"qR(Ծ3N^S{Z:riBɉI`e4DBDH꺫K@O=aUfiHp1 .겑KN5av]>IU]*zӳARH`“uF >g <ϐ1d~tsSQyZ*cW/:5HB : ~ Lje9Z#$`(&Hы XDlClbE22a RXCv1-e0XB4.!iPqi#h.'qIj]S儍eV*˦ s\4WE.]0`1ZKٻH(5[붝7?LxKmMbd##!" bJ8MYmi]旁]mFVb>զԱ!\آq " JC B-qARj0 ldFD\ԐiUL; ,D'kkٺgo% KIG nCl.;OԵSČ=BMc%l7"4T a銻in󈉅>Ji%,TjKI vkuSÐU(*lؓ ("XͩdtY.1WlQ-7z% L4%$< 3>W+ 7 {A(L,q:48ayK+--_ r% D,/?I΃qbX%_)z+įG %mA*( l >~^h`&do Q-pKGay9Ƈ@yPb(rL0BO^ *q ꨌ Ky:bMrE?ۮ`HX"}~Dp;11c3QD$Ac @`Jmw `&`yQҴ H[4iIEƶtF^9' bam#@`4hDZ92k{g *qp1e 4zʶ|(` !;J:P(/qK!1Ku؊E_D`6 \T{/ ~0(( @PX$DĒhR Ĭl( `*WYD"ÃM)?rQ,D>J?M:cTsQDL-]zS⑒dLVJ dT&*UY* %Pu zbɰ_\*rwZa{.0/J"zނ3~?]ac 6gI-+K7U 1 Q<(b$%8k9gI)#?#&_*P0!2Y$FgsT"0bz?(@jJb-f>א߀`L!ĠƕP*0 i47@h4SP! YF(#B *JI3z䃱&@!!RkQ44ƺ$!HnJPS~L" &PWH`k#"Gщe@$u TBItG L /JSD!G `.!^}erd]a$]*sg^;5.c)Q@0?}x C./_%'UCCX!\>L !Ȗ! 8a'd6#!]3݌YCVո ZvP;JyYk8C." qHVs l5#>/ 9 WKU'c2irQx( 0/FO~ńb/C.C:,CȒwd`>zBz>C`vC@d34$sS\F!_[uv$I"q _ה3] C_~0A2 A BrHXC`RB@ Y(*dI8qHm5KwlJbU0uע:V (Փ <f}1u1B C~e&e:ƢLD)=?z a "G!@|4 62hm@|%cEM C"m"b%aggB>*kak[4U KїS%%64Bϣg6ۼ C"mbٛoQFۆ*ީ6:GH0/%^GQt"fE&А*ftu@kheS6 C~E-f{^1Yat2jHb?R2rN%tLy$R҅P,-7m xY ?r:BcئY[|_ѿ/XR1')l֢%LC"mܶ-I0>D!*?AHJzY@P qPN*{Q4{"D%(6Fۉ:e+m(7,*%3jsv蠈9ͥE1tIr Y@pt:,5QIh-(}FC0H6Exp-4>c†Xc5IC)frd[̚ahIO/nrfSq/d4 $M3Hhc' $N|b2 SGz)9SnNDBGB/P+!R~!{ `.!{ɝӿ+WPĥHFP[OX #` ]mCx,@ @+(ݡ10X]8Rp'J(Yc r%nBi&Cx"H p( čGJ%#8qKsTenǬ cO4Y%aC. !/@084YES™2@xM/P rHKEa J0ƱZԵg1B @h,`L&gZמC+XW :,F jډzY7cݢbM:!< yrh EYHq# ?!Fѭz__j}C./_K!92,%US sS`,Ͻ{Y An 0Nit4R*)x6cs(-bQċC`{܁|1l$]j 7REֺ$DaXR^@i g()WEcvHAO!vjڷ X`URU01k-xK." qHT°\4(u԰ T;I @ӞJ< U .`C (C1 F7(@$`H$'XF/}`K.C:,CȒ@.8VwXI@ieba38M@E6R/0+P$Lɻc"I`̺)d K_~0A2 A BrH !X%% ''|C ӑJPOy]Q9C[ShЀyjE$# )PAnGEx(A/(@wO>bsd! K~e&e!DXbNBUuEEIBl5N(9%vIBJX2g1Ȣ K"m"b%qAa2#x:!HWaNn& e|~̳m K"m-fmEbb)peV#m ^5RrCvOBQGUczԣ%Mf K{G-f{^1YbQg! }*, ]N-UЖh"k?>!2,4_.ITRr25И.#\0K"mܶ-BQ9EAIcU'\݆fmxw"PO 0X4(eCUA6٢k йU]HhiߢBCǥq-I\Dadk1LK)frd[Eda|k 07Z~qYFdAWP*5r4^_KHG[3Af@/Б!R>Ї5I+#R?&ത!;#8_/Hb* +Ŗ$B7J;m- He`Ha/2 7>YqJ @ntwRZ:^,!0'dN 7:  tM)'O_<1Z )''wh2 @4.ZC! `.r323)/>Hx\2)qx{/̔C:B!jC@P_ط YDHL 0Ԅjw%?s _7>/]Bx$2!|0i7%<4~v'@b*QE$ {w_ϟ 1G\`&! %~> 5)79H J3n K30 BR˓z䀘;^^dܽ)J[N#H"w!DR0XirEBBiJD@3 h !3!hi}Cõ)4$c`z@ !j K,M+)/orɎ ;/n1 )v (%<5GhM\ز*!ɋIDl:NLpR7R_0URxWk$"T۷g@1 RjFq[缽-M{3@H IMu,叽`Pr݆b{f︶t[x3|L|M8xa1$$ 8I i؁s C@D>r900?3E˛_&,;X6(gXvОΌ2ԙ/ r N&t~ԆgNnb_aD߿Җh D XUFgwVﰋ@wI6#;Tnmr#HR0JR.B4ؤi9إ)b#3)JJR")H",j)IER'JqH_^Y5%LD>KN@RO@g@ZCzWM[L׋Fmx{:{/g!u_M*S}R7eb4ER)I)I)JN.R܄i(H'+)JJR")He yЏշ6̥BaɠS~1~M!Yj`(Zw<, f6%~y-Rzxn(>NvfbB^OЋ {,3lN@ɼz<Z BD{M餽RCr u?026X_פZ^SsJ]F\GB?Ѽ) m x+".RJR")H+)JJR")H[`ߟ^xgd:0Z /sA$ķka{>7}K`YnXgqK̟*˼M֯pn 1bҎh+xMS;冠3u%2Ld;Z%ڰ!{1EzLRN!D[U$-O}ΰ#\b#])|RF4)J鹡Sܥ)LJJU+".RJR"+)JJR"#,XIBNY'/:{=Qz ), ŧ3F?_nv95%m6JyXZ-̩u.0@; i7-)` ®MMmuY-.nŀ 96 J:&i;}iIԆu%= Y`/'u)uU\>ĄvP䔆;]~y$ N47@ߓ}i3Y)Zh\)TKJQWJR'riJ)JN.B4)H#)JJR"QO֓B[TRWu:6 :1Z/fydUϋhq@LNvBXLÕIeC_602]2zt\)Rp @ w?] 3%(|^PWvW;! `.&f>!n,к 0i~W /# _Kڠ(B"L ڹ/ci Or0ƄaN:r>w)JGy- ZSfER#)JJR"),xѡJjr% J6oW1,a7G \>P_ymõ [pnRMR.rrJ/zB'#@Tr8̖<1z]*1&﹯}hLjS֖FF?ppn)2?[%8cm&ܰJnrο3`p;!lYy Nunwx`@p N<^{^A5w|m)w)UM^4Oi>JR<=’15@۔'mIc  #)J Qؤ^N bzC鷸P /lrwr67o+n}@ Zx  ʹݝ\uG0sd%~Ł7l>CEzK@j,P0u`n3 itc|h5Urphf7rB(!@:Fkã`\eGdJp IK ?j^B/%>G{{2 oK ɜ`X rQݽB6'2hcptg' $_̜sn!h'В^s)EɫQt|)8w0;F%B:~)F #-CxG9Ԡ&Itv!zVo$VYo1tjPǓPPFΎsAڰBQȵ*i5c ^aE}0J\9֒h R@Ÿ9>蠆C/ a+.|x4$J7]"|*cr=>^+zgg\$0W&1+#a3:sV4~MHO?`(MI[.+`xJ,q|`Spo_?H I&$noGvxjPq ['q :2fݻ d ( a\>d]8B (Z>y0vo:ľޤ5U>pv(=.5e d&\Y %|J/_Oy4 b9)$$`sϩg5 T0 r7@!e$oD--ąۀVd,A7'r,*a5ڛp %|EX|_/' v\kQ M@y@vT %|EQQ/$  #ę|B=Y@1AgXUGaSrрs8] @LEUͮ, 7% UÊ$'ȷ0ýAD%;Z(җt#LgܻluŒ*ixFtu2))|* ^$OKZz=Wpq߸ {)W=ކvۯ ܏ w .x)C6\hG͜xpVf dBCY{5觿]Є~>Evb R ذmwu{@|.\Z I?^}IE&s?x{}P3Ma;Իa^/#In3Af/ڤv {$?YV7@]|EzwS/Jdaf !dn$W l 3JFtwBX;-Mr IC% ຬrERC!  @ !iսjfۍDSW)8lM!&mabfɛBi%'uĎՃxkj!o9cv$+{AV3meҶ#P&Z'9q6eܧheǣmmkmȑQndUq[m6m2+i#PO&e/7 }Y'yШQIl)g)H[-ڳ+ \1ͮUzU䥼YXMrɆ݊YifFM,%|D'EZ\mG$w+(줍Ѩ`C"142&m,HME]UDMeRMtY$IT]EC▍0ƛYLA4ihժ]@nZE8mĄAOdslm?MkspDZWr6LJiɵQ2N2 UU5Miev]`rD}Y*q#zY-4GV]pѷ'(Յ銶1XGn:!m Y5A <֢+7ΑMQr6HUN5h[*tɦVmDZ⒙v:&)CZvMB|bc"2#2&Iꢹ` 7^6ArJx|V.W`߼Ze:y]xzѫ^K5[;٬ 94A>\a`A aԆ yքfe$cӻN:xw$|~`잗P ʧb,TC;_$G`d#3#26%4ꬾ"ܴN4EETU5UY6ai]:+.qyE[6Fz) Mfu pzP$jE\"edjkX&9B Pn= dLvzcr7nT-1q5\JifWSxMҐ68E6tp'rq$ډuʹ ca'IfZEE b}\!Vh|L=D%ePb'`w&m׶VH ㏐:mbd34#"7m c4 EEYEUiZiNdGL6Z'g1$Y)1jr Cb"uZ%b89Q11IIeCf0F;2A8BJLW%PCq&H6aT,.t ū#i7QjDhZ 쌤5!3G `.!a= =(rpw l^  +`Pyi4(Ԥ.O?ѿI0MS)a<}N2J1^͊E!vH $c( Q؟R(8RWfe\N֡= 6ݠ .R@*o]*yfꚴfLk{e!Ƚ}OI]:b EvpfiriaV;\tGk8L_jӐorHA:`ԍU&$U7٦J2OlmUtQC1'#o2wu b/:V6œq5N,m_ H.P+I{k's^z=i.t驓IgP6-JBO=QX&,c Ct;  3(BOMJ||M]!WVLG6 MBn#s+ v+{dG'gqxJWeKV6 ۟lskD.J\=Më_R:CC^4^k,"bOoMR!ͫS꼅ޔgݚ2[wv'=Uݞ_tɲ$m$|.;[ǐOn6Na@o -XKpThnAm(\iĄ4\ ce}d+_t®<^\QƣQ]Ffkߵ0Tzb? //^p Q Eh!6˽1`;N;pɡ' Ԃ9?jWN+c0 ^r~$kҳYim޳D"?%~{gě{ۣt~aYB8aFg~ҀҊ/Ԕ廬u`(I"deF eTVAeg텯\a ҲQ|>J">x1#CA1=:ڋ/0!)*kSV>XCPjtzY|mj$ڷN?=OōϨ7 TveP{k>51*'eJ*[ (í-%\I+Ɛ&BhQf'4{ ȉn@7&k47SHO/{o#]ܚ]Kp ^|,|t#H7cwݚА*,jG&E|w/8Z{nϿ8ǁd0`7!}Gspol]>YQ?N{Ikn:iB8]w~ {dOTJIe|0 Y:;&jIOo2ȗUam~g9EX}{y KNUoO߫,.#65%N'9u_/pyjQ =kkU=W _o_+)sX7b^O0^ \09\b7HmU@tL#!$F/ӆ m0H([g]cm݂˒u?$S?Bϛ#JQf+{cz/@JcȘ.܍JPf)]nB=EO ݔ0 {џ|fmmEpn1xܐ/1W@ !G:dB^ɘKx F!$5I@ ŀT!F{ `.!ӭ@(MܟKĖcL Hhɩ,lJ)#L3-!H#\v A 'J0+f2fj[#IKx`nlGKZ5Yn[=y4!?IdcK. C?_C! WAƣXDi`` Q9y>c hOD{@EVszD -Ys2`4K zrֵK+_@0FqǛ`ֺh)R5AE lao@`FTC9-8ɝTLHl6ʴ gtS1~B Fֳ%䙗oj}K.vz-aCSYtBHT$ 1.ۢg#+p&G`E@ }Mm;#+ڲ_VbZK#66?ytLV4 {9v$J{Է)f1F+ ,N>K`z!;p/a[luN m׍2.ʩ RX}8ָ} eAzF6B ;Dt BN37h`|AHO1K=vIh)d6"rtZpAh lyŬsK.7p/`n'BXNKAp@!^>9i+UԬ4 fQ%'ſV`m`{@#7McQx( 0/FO~ńb/K.A9] o>Hjjä#B0+9~aH6Pd ŷ6Ia*$ɬ(dK6O:^:rW?$8 ˯Ybq.L K_~0A20⊆<+%5ACa$ ̜>&RE=X$8&0薑ꮽ8Q$62',$o79'T ngC_:ssd Ā K~g9?2˘[tYJ\{ZCK0*HdLDIC [@% E=EM K"m(!ef$b碲ӛ?L6|(a ]K&6<$ A\6 0Dz6 !ys>  K"miXg!f)\~&4 Qe^L(?r@THt=1/ABEX-7,` KhYy=fba_y9VxQNz,Ɏfw~Aϟ]yj*q @ T:%7MFQEoV~:Le@iDfC F6hC"mێf} IF{BޮJ埲6ɡ])CI2D1 R}4gG,||F>Bǝ'aSb'IfׁK7CKGC)frdo-fBN%-㨼RܛT?e/tkQɾUgio'6^D_hlZz}}sG@]1CxT@')!΄ME@AT$J; IȞF A@ O< P1X,`0;5-NKR܄!M$CxaIҽ#%]ȡXY@8~KZ5Yn[=y4!?IdcC. C?_C! WAƣM $M;)ДiqR=A,f= ;R՜3!F@)0-k^{C+_@0FqǛ "& IA4 %X`F N6!PT3rYמRat'd !! ,Y~AQE`@,hDZ1kZ̗f]@X>!Y `.1H C.0  Hj?yV#"o`*h/G`E ΏPP kwh MErBpyF4R F] Hc0 Ns(-bQċC`z!;p/aVbNIC<}B<:ƃa8@<i lXߝ\N,+ʬ:>GgB0lǎZpAh lyŬsC.7p/ tvsS%!@ ΄ƠwBIRP?ԉP@#7McQx( 0/FO~ńb/C.A9 B~xwh&-F`Dð+9MZ bVNcxOƯj;]HR % =?1$ 0f]|z^SKv2d C_~0A20pvSuUBCZ16 &b8SEPiVʡEID_<' X,#@˩>)< !eΜ)1  C~g9?2˘ldYJz+>E"TB ׸Q `L&JeCPSwm@dH9w6 C"m(!e"O줱n6!TBJN|\KyC H$Q(Z2uGl ;#v%F}-!ڄj7 !(PPPΞu:6m *hoqU B'W\UAQayOk) ` B{\) 61h9м}gPs `Dijd&z)#멨pNљD*.0H fIC0H'Кg˨!m7 F;wC;"mێyl%'Rb!- Ui&M z6] (`DLG @L1p/'o,K$d$뼪R x0:A*:;ցI>?m"ž ){`%0CZt:%M('\'A,4Z>>+" t\aAd};*r6&i0œC%7\ &CX4ZJI+xnPX(2dI[j j ?9`TB./je&mY@3 &wSJpdo gq{&7ZA0?AE-Pf`7#*tE ^`dZC9a(!&1Dn70Wz \PoA ?ǮғgOyLS98EDP` 00ECq%T1404fH`(o$xA7ΒA5, C0h=w֒Nҥ#8)`'(8Ix8餼Vt;îby~3$O $4<P5M  %4CWg뷉tEpP  ͚..*tAnG(5&JTx p&GlC)_) A@n l'@.Ae@j__?}MC0`B ;@D y(InYC\-v5!l `.s;&M-,MM7,KBI B%!)=$)톟e$`HKy)A- ?shL ኊH0h`hA=x`]9뀩٢14*tK 1$0 0JP {`pd=@A_$ϗrXgh+@BT([0,n=Q{'wO.b JFfB ,M06[AX6J!?D'+rv$P.\8iPi/!%Zqgt VB!9441d yc:- -en&r2ITSe ! (Iġci芋B`&(Uɩ67.( b{7[A *s aQ@9lމX00 @haNn^7A8vatSYPi5.'p0t@ `Ɉ #f @4+0ATPE~K,ol"&ĔdaFəBFH\IP78'󟮉$eLID"k~AJc^"bGvBB@,%s 3 5TsǔVsZJXǢ:1i 6>m,T {@/HI7"/ډ,08^X5#U`j@[QS Ų(Š DjPb Hj{NStZwz+䔏DcqD$j%VJ@kH<@7ҞHHK`TwP!F7H Q@2yea Hp3K`DHpMF60k~-8p ,!+#'BDL-<ǀaXU @)/2f< FQ@Q`tWi$x1(!#^W$oP+p IhR$0\CRd B-)Pi ukZ-;C:dِ|k3,x ٟ eY!l6u2B^ VH ) %8"(Aa :,5G*ťx1@%ı#'=҄`?)&A{O0(Lh 4A[:&FG00fƖ?(ϖA,{*&& 8ƅHf=byCဍd l% ۹$84ւ\Q,I@l%9J ;)Mlެ`<7:\g`ty5gr|9ʂ ul"4G᪟>!'䕞 R! @ ! \?iXS-r:6jęcW.1'F7ld.9ӗ"Ʊ񥛔m).tϖJ;j]j36$܃Fia>pkڥ*\GE9&-#Q )ZN'uJ+`S4DC90#8Avam٠H܊L_0Z5#'m`YleI$XRdܰfT\тpYyn w+JdӢ.h)amRL:=^1PXhq3NrsD!m8cme:ubhhۑL&Gn ڵPLa 9LTG+i([YB Q`~j]# mTh94ҙBJPV7UrTdƠ_nڡamI\cbT3$2#6ʉ2+,]YYUujmלybڢVbH:MWnd .LOaڜ erUNs)1Q:U$rZE,hL\Ha~Z(Zb!CioӺ954dȓRՒ0뭦(+x3nUYf&*MSwh9h5e6j#y%cR0O9a(U4DDY-1K9F)ϴQ(t8u X󢠴Ѧ!2 = #Q$Djs,6"MaLWVeXՖ&/7]9M0`ă#"$FI6*=80Ae]E]VmfZfXy?,7kZValͶ8GjVU̍E@|Ӈ UX+" \4,7mUFfl<8\,(2!}$ DɎ;&X.>pZQێp1$GǡS0Hh_#e֊oPQڎJ64"Ip5!}H5 86ɒ[[M <6B7cU}?s7:r ݶ2T)6d) c{bt#"3"4E2RN<=]e]eef[qe}C#CXb Y&aKq]#REucF&Kz5^eÅEumD(i=fTR$8ZCM*E&℡ ;4mP⻪Xč9q:OZxGjG&mk KԘh,:b2 Wzj "ݳ+EI!m~k~̻k7ɯ֤*V1p\i_1 Wɔ$sg򺱉JTu8bLj,7:Y"|VfuMH`t42B"2i@P5eUemqLpK* +y4<՟6iŧPsDW>hNO2L9ݩBHc#:Xffs/TQN%K9;Jk$8ek/i[ Ӓ<@jpVBrtM͊3jB$jQkt@1%{1&8d5XY{dQ J(c2XPerDjM Aˢ2>f"JiŒA 0bd4CB$ij@8]XUie[z !'g3ނ&vŔ>"eWHISg`e bZ r6DND6,{ 5V+F*Fehxi92x`gTJЧlnf1hѡbV:d)lQXJMqV'>)rG)*7XQ*ZHqo HVAUpM*Xݩ`eRk*?֛Qnt%KSFıSem.q:@3ujScCk5Ze3*"jXBJi´MÛT`U²_/iVĈ`c#!G `.!EW `"ob~,:&] FPMZ~oc {K꠷U RM)X`YCb:#:H @-&%<(ߒC5Z C+fvR7:Q /FLg(A#!!ŠEAH$DDp;B@b @5wHg$ywO ;-MX<Ճmt6$[1O9 $, I&=03DR40Q4tGh?{MSV #K.Кa3o0 NF`aD(A ~ ^˳BF{^Q)UEDjYޓH$bIYN9.3鉥 D&-*'VL0\Pĝb\AO ,j2GLG*vC(b-`DިId_n~yVX\aRFJF{ll,`<[ "CEa1W8J5иy okXh 2(& <66Ht")=&hQKy$TS&( `OY 418Y^*(1e,2.N{X bz2:~_o@ ՜u&_F@-81ofC>>G{durw⍶Ay7!'ew,,P C4t>\MHQ03h CXJyt'IkD~r݂c~`*@l]9zCovtj& "aMHe˺OACCtHo1A0h&"h"@LXE%$й6C "g |PBH CɻWp+޴g_j(F!ح鉬V6 N+9_ dȭTI8 : @c(T(c |?PsxK1Yl*F~~4M%mӥqq>τէ}'v[7>ٮ:.1[es5?qe&3̈ w;C \XmPLZ(Xk@0>Mt]I4|Z.KP@T5q%Fvz(9\gXTIJ' m:-ꉆ|tI@.-xlT"gVHa{ (+s+a2*f""`0<;[.pp@:L 8.ڙţޯB" J^&/l*_Pg3(g]L|Udax$$X.V L28'; b d}a@SN(\':dePD \B-TWmaVpNĀ*EL`|W쐜 Y7F@)) oIފvˆ[Rʙg[WZll+Gֿ)@rIPl ?ID=Mt<C'Ox3Ey^z&WzM$j[<36 gUQ ba"@QކuaU|auܒ/* `qE/!{ `.!+rb~~C,pT8+MƄtP.0KHH2I4$5[?务ɖ`DCEXk63 Ts1Ϧy&c*ҭg.@ C[] AArYH+%A@ ` 6ׅđ=e<`oHziQ3Z>,53HZ@? ZˢsM,*xi#Fw<0N6 0z*ByDFuO˪Y9 `K}~? ἣ`p~'"EOBhnKu*EX vi^fA#)v2zp.v{K]|l n}b(QQ{E@MS= f(9S券! :T:r`cߜ@>̰e\$ͼ @`0}x?lK]߃ڜ3[>A )ɸQeM'y PA4x-'€ u7Z顨`#aceVR@H*R Z`1XbqCK b0eZ%ɐ S[8AX!dlmjM`[[{Q@5<&bCRf6-+h=6Ī揺,jYٳ 7@G70dS3 [ +M4E`Z2WC'M5bM '$\iN Jg0/N]R d#  ]6%0x17xx0&QL;ԍ#L4 KC8SOmKVduF1H4ՕCiaAKʖAMt\S2Bn6mN K'LE#=L,!8MIZ 稲uch_cUOLUV n}(3z@ze&tBY [)J! u4vF,4)=۸I#.} 2$y< r2m\& 2~BE@;Pd΢^$ LfWT0f,5} !J,@Je<Sع"MzНKxB3@LU\a* vt_ E?wDVQAoOo}DLp(2Bp? "i/Sw׽ < P+&%()& *w,8Bp&# 2jZ J::r 6d,A 4ac @3~PgY!=>B(35ۢ0f,,SkDi~L b :s p&YJ 0 /{HymJ#`T)J`&o M& :ДjM-% 9?y0g~S0a{$4ym`-AQA\Q sE_1$ώGAD2s0 b :Zt&N,شK@k~BP D042PB( Ϲ(0hDvxc׎dV05g*D?xiL3֒2s/ل) :-[ kv;]Bz۳r11$um6̪'\ ψ@PI\N `DC "h P%uGu8_ܒ2t%J% {d$L׮ ?~da FAXTD߈W)$τp2s>L& *JS^}~3Q2 iY.Z,ܚKK%)(*ˮ8h4&,;A5Q7(|dZ{蘻Z>:I*s1A7Q> $y!y\ :8ŜKApҎJ "kGLO[LV0&ɯL2I-DQcCR`hAA'NH *s!0@DMP7@oFmyU&"<&!+b IΘUρ~J$:!@FWKA&膞 'E \f ~`0{Q15J!!Yd`'' [9dr[gfF[@4! `.XRd9i2!_7+{9 $$2SXͮN{eW|vcy:Wy>p +,.| $01o"h)  nGn/łP`-"b RNM(0wH"ceIh4S,PMB;TDUC0DVP){dt5*!>MJ9Q,L@\*`0ɜ5)/@2 a N`fhi # Q4 h SeԬb@S͉^Gσwgt H 6L-yrZK2~JC-}DŞ a6A`7D eU̼ 49lkExH?v O 3 `r%ʢKtdPG0*QF+i~V@ K@%#Q 2 hzc"^*X$ 2(^Bp'vfn!3KbZ"W)\ڂRR~Ngh Ʌdf{28-K-؟D  pZBW!$2s&HbFx#['a# Ĕ|#p b@WG8|.RIZa:JOHTD] S:j% j%jK12P@0+jQEDKwN(( C2kNc=:t.vP 2u4DZJR`( ) "#@Bbޛ, Gp R4m_>j+ܚ_<;ZD-#[EPi(o_d@FaG>lKS=p^@KU^ىN]x\$4$:@;Bf$L4 $$$D r!#r<ꪳ&N\4:A(##0b\T\MSZ.M 22>]v oivjHv5]V<.Ju"i'5t)w!6Ģ^7QBdDF5^wNUCFl`Xآ. th!SDp &Jg4+w/$ )$ Z BJ-&T'q%3>56k:&2Dir*{Q.Ljxљ:Ф/A7@W4)m(%̿(+r$j (;Whב G_`zQ4Rĥ /ߛiB` %(5)c>V7FUؒmpP*ɀvQą0Їᅧ!# ^?B,@, $r@{p$|2MR$Cیb⳴^t-o.0_$A !tL!0ĥ /p9 b*IOgeڀGؑZ 5;}T7|:t,G26Bw{TZPHˢGjL Hݟ;ObZ: b7D7ڂXo? }F&mQա͗Pr53CQ;A`U&[ˢ6& dS#E.B.> &iuMP}4K9z:.2W@*Mq-#D)dw0]RVO}汢w`pwA@4fI]zzw>kΖ$ݾ7[y梸8ҵ($t4wy1mRր\ )׿ߞ fm|>4x4dR5Cǟq(Nfyjfi1_a.l!^t~G).'hOulҦs\-Ll0DfRB5$u)IX$K<'aJ-;c̎6/Mzjp[[;5ձcl;%ne[ Wf4՝Wȍ8DuSMF?dŽ}/yMiQ2:iʏӈy\QuL["Gk>bS#3!!6m@{ 9p5e]%WYf][USYvYaVqgaaM%\6cM]>ET,Mg`-eb/IUiPSDA*Rҷ$7- h1WHV=D1Cui6U^FߒK$)BG5)W#uvF-Zf0ѩƣhjǑ(I;d֜gl+ :6hG06ګQPq)l>m6fi* VE1v i2h oTҸLMT oM<ڒ8f=Mlv`s#212&l@+""5UUVieuY5QDI5UE]{+Y'k(Ӎ\Ή~%Iʅ~ -(W0m)2l&WS&YT͢b6(anZ0++[2P\.kG0*rW4.?uH Ϝ' HHЫi6Ӯ#U7TI".fR](m%I2q,47+ m%:$$u%] Mۼٷ+qdetu Zr19-F'B>zF\hmf$ oE";⬆‐4DirneS\$$Y`d$$AC$Ih5VaUimDQeM$IDIv^:*j'ɚ*mp8 X)f6oHu:LT5˩gVDTKJw+90 }ˬmةHZ**Zd#{ 8^$_!p raV8|9>ҪoV@$ @ȢС< $!07@3q$JbpZ !C&HTzgK`V .}!k} ؓfm@X> K.Ե8֚X%/i e'=&7ӥ,oCH+a>J`4`hi]KIeUHY!(-%V+Tfg41DsLS11XXbp}!K z |JDؘjBlO] ('T ׵!URGo&H-| Q v-eK.aoZ nBP-cd!rAhP]QIKvOs 0i! -xQX  _#0ğ1a K.p3YYݭ 7X n˘BWQ%,b̄Lᢪ!9/ ؑ+`̺)d K_~0 1f FD- :;Hx h#Pmʎ b"uCR)?;*7ʹ}\ePY/jDgC_ӛ3 Jns i (i.1e]`sU& St7 m M#]@K8 KPFfA46OӇNI` ^mP*Y&oTIbHR,l̓`˟W⭂x& K{􅡘RTA@%4"?m5&*a÷EjGOKi)ǤܖUBH>t7x$:Z Kvb$)H{XfP̚ ؞T0> l%v7~lZG X?T(sk7Nz(ˇUI)=jfb8 `-}Ǥ8W\ B< ou0U 6 a,#vo=PR=+ZL:\ jI΃C(v JV=-k!=(ƱKj2'[3ӣ-3J3XJBB:C'_ PJ%i^AA(ʋ*EFk`%s.6Kxx ٸWedsZ1L(abE!{ `.1C z |JG`QMli$oQce+{6&EpxɝM{K\?S@,POf/B"zB@Ur"WOpn1xZ0ZH-`60Z^98K.aoZ nBP'M.&RUlm+X7o~(HߪAIKT"SmKNQc( 0/FO~ńb/C.p3Y 03A($\ B .rK5ZqgP0,S$jAa6DF0a2zb\K  C_~0 1f FO:'%)Mg2 ]YXTdoTJz+k4tU=5\Ƕ V@T8rb,a1 F]|sNnSbLH C JmB!K} ިIiQ/׳e@:(Q 00p C@ydHAX`GVɩJ;؎aqf\5Ƹ*Q@OUx6% C{l)!a0h>đa(ao7sI |4YxQE蠃^(Jq7Y\$ه Cvޜ Y| YE\솺n 4B@T|DOD $c/<ҩyQLi p>}Ē6Twq'bsl Hf6Vj0KdUCPEA08ZFaL AAW6U>Nt4ƨ\JFWV_V(59 +YIhSol=~QґHCPR!Hh@pӞu)>vSC:34DBjU9{&*o""JA M@|ytI AC&`+N1 Fkq| W/Ij. i0L8K b#jT^ Q@/a$"];ʷEpv{}pU[:pH$֔t:p2pDDBvONGr?.AZfh@m^X؋ mЎ*pJ5$$$s(C u?brdԥ){wI=|R Fmkm% QUN7pwa BE 1W6(kmH@[y A^W ]a!t- FogQnk;xP_F(()8߯:VH/7],C}Eag Ν:FIn֭-<Ў*wd$Qhţ90@QUo&:dJ%>])@DP>`8p *B@8af)! `.'E0!p>߀EPlRF3DZ-%d5W(I%K"v#&44zw() , DmRI56J?bFH.I+DCHo,x-;:!)Ԗ ͞1(0=$M ,5sm]iV 1 ^^;9d!8!PcI<0idߟ_! tmolx O@ 脀(tbP^W/9 *w^*LAdډ,&M(aH"~EI @IUz"$HGx>HpE}Q4dCԘR?Rа$P~I6> G//K@#p À0 03 b,@5@n)"B4Y rqrZp2&rX"/ ag;v@0,^%% j)4XI'B`f@(&}H:+%@&!pBjKQ$|,.Ў +D @ S'_c&a`10+JS w%2?eP@PIh@3>~W!#ĘO8jR4cv˒xyCC?pBt9w- ۪ z*;1\J H0oVFGtEe "`8i!)hq01$ߠ(L3 gPRI ȉ& ؟i7(cY0 )] =BP BbC8f&HC,!<&FmQքZ@(H=!cU~M #%tmwc(]&t~>:GQDgL`*^A0@yBP4Δ~G6` "8WaT4 ,$~`p"~VCLG>ڐO8ԺX8 3m0Ҹ`:9Iv"H~ݹ*d>9Vv]`L&WA ;|bC;)1.P ?Q(daBAanM`A:X a?Io*; %E2K@#0HKG&Ivw oe#F!;z.%OvIMjb,~M_Mx.لȖ˂/^`P 2ux(YSG~Ԧ,8`!ypicSƹ3 2@C4* WjC=y A^/lRnPg*Ð4/u&!BMAbHD"tex^tÖ29)M$ XBBڰDVR#e3 ~  3@7$R a,˗p9V}8<}_jH[| @w)%9J>;&vq4tzBp'Ex|pƠuތ*<^noD`hl1Y:L3';5̘JvR,H4yL1 :$wXBdL jiDc\ooD$'2o3 Dq`"ʍ6CxC*O&Ezh4f2t&ľL ǝe8\4 }m贀xiemSg}0)B#Bxvq^̍_zP)R%z%`jO+BXŒВ xXdp}'C t`o޹ߎӆ ;]B#5A`< ANjypE3Ya ZB'$>^ciS @ |!J%aZOC.yk8V(qEn $&tf>^(u)딺? G=ﻖӆ[mbhDQkR@EC?a'b_X~C.D łT344=rX,oH$'v@Cn4DИЌSX) ` eyLIKkr C_o[dgAD:D4.wh^|=0B!Y'e@6GIX|I%Ԍ/^I35QH6TZQXg6IRZBpkUܪVb CB_>1 !Ok1&1q BhU`@v` B`k}ET5 tTtH́ @L捃@niT bEJ{v2R㦘nH@HbLs9L}A]l˷.X E? @>^.O9 C@+VHEt6U Mm A2(6`@8'WC,'9TIPt85 OCdmL_IeĀzX t*tT E8'klM Czh0 Ls!婅>j  CW ')`-8 C)H=#&3.eiлN 5.32Tbh Dl1Rٶ!@ `.!YR1Lc_*{u ! >Sۤ=GqT^)EU:3O%IK@`*CxyDVvno"V!#Hߎ]k`0 fai̢YKr!M$Cxi;wJDZI&N$Od+* Q|NqC}~? ^QM^o<(8 a\`y1&5j&1j:@N}3ߺC=4P Rˎ3@כmC]|l n}<x ,͘PVLVFQ"f/^m\=@iڇvr\쌊iN@,0~yUBAF$bQnfDP 0v> C]߃ڙiIKfbFbm)pAbJ-Du಴`\p.6'1 LRw?hn(\BڤדDi hkT S0*vb2"C b` ~!C鉥ސ5hP`tSi2>, A^xP3 1ٰc"/P#ʒIQqlڅ1fA8!k?`/!X˦ZC'^2IfIɫœ2y.HLkT䊒M؀@V`_u6ZA!!46SeU] [2:f?03|I\F/C78CXd[M#Lf~CRekB]1`J_>b@f"R2NLCo0;t֓XMVLg 3'_>0eZ%ɐ C[887āRQh/<) %*tHht>(ovM yV|2f&쌔ŠҽAr |PIdHqq#fz$uI*.M|.eJ3w1:NnI38 B{!P!|D+$<f$MBhAy:>xj, Q>L$UfrXV[E!DLΒjeԓJt @ԗoc ?hT54:"}2c$!k~],7{95hv C HɦCκa4.R1oXa aX5빒O͹ $ `H~l>W#A#z"͑̋-ȟt't7(K + N+@Μ}^aVZ|*> vCN>Zh9nh::.(/. CzJt'iI)ca}LvhR^W:-:,#M@ Д!3.X'4 M!?%o_RCr/2[vܬ>)c,uчIv CSvq2(Y1l$fcBrCtq`M<]$PI4bl) +.X5v;aɆlfX&'RE׺BpW =gz^W``}kuv+‸`7Ht8J8{j23<;x6\ 7d[[1|&- J(JFq_Ġ XbޱTS]iFInKSPٵZjj&@:MT !&#" Ȱf01z\F9sZ)<5tRvL`2Pk_ ºP\$JZ}2p5J<IH (@-\#hlѠ9C+N"p2phAGU;ٔL!SG @ !ϸٯbYք++N ]U-㚘xו!<'MTsZ16MU&33awEonHܬTabq&__npqpLDK %unWs]E$#MY5:9lr 96/4^jKӤ ie&rEui0.* %V'Lb+ et=bi\VWHIJ9Tfw."m%rvRj:jv6NJ(@-6m\'Gҕwބ!4+0{v|zccM:鹉MM-m`ă2!"!+RI"@*꫰1EIUQU4OEMQUQeOJT.!┞Kj6G\0fy  (>&9:]o,D3hpqza*3ioRBRQۋǵki 2"R_4U5BJon qT;0abYZuA{v׺Y ݩq!0BOI!*=#FĬA.vVyOW˧gAV Lk o#^ǵu8 W S1M5ZwV!^>qJ#btT$"4J)$@"1F]4@ARM$I%Q$aE(9ugi&K rah*q5l"E|>~HHqasJ?.\li\f;JrxqH'R.pTGibդ&(m1Ҹn%` Ջ z) Hƾ-E%~i>Ud\L:4b^cff-O5*x^3굮V7Ps:%u:)=aUc.+ Ia|>.]aJ"mvSuxA\蜩CTr`t2"""I"HڪMQTY5=QQ4Q5aWQu"F &-%J BCqAjgln 3S` !f6:Yzp QW]#i\%:SwY.eoԬ->a bӠi'*bS;trJ2Rbu5u|A؛Pˆu>|bs4#26I""~ՒUdIeVM]YMUYfuway`]aBie&ELgP\3N݅EC.YEI`nDR,Hg9yi~6%UlD-aw!Ac tمÞnat؇߽\ZN{r@J{5ܦtY\m8HՊ0$X&%  az", b%Md>-b7z]ezV0Hn>jQt 2QӰ=!f{ `.b@{^GODR$.o\46 ɺ 3F]#2p(Vnx0oJ3|Ƌ$a@vkOhǶ``¨K>~¨\0π\Mu5 fĔFɺ Oˀ&%n$@X!JH@#5D`q<3*p4 &[@=GexŠʒ7o+8]D2>) 0N?J:'IP 0:@F)hҸ5}DRJ((sR#8*pv &F* !JHlB ȴ~&CA ^w9 DwD ۂObaW @~4LPZf"!S=a~My3(GP*vEAQ! 3@chmS^LEQLY[(3%d,J A57-oO_pOp"{ %6zL!@ %sPKG@L+2Ye%"zLTLr6 tBB)GMgΊ8b8AEbPvQ%6Lၤ .,7*hJ$+3kYIK"mc4JN2}|Wsi,k ΢#$` 8n8#GB8 # { ^)$0&$pP0& ~R Q +cI `@ƀH0&=&Y0Qᅸ5{`(C GقjtEP"R#b*gӐoGKabo,;JEruݷy4%U:BCXtL93%HDt3<5^h4 WD\Q͈ PN&Rh$gR@00`a]Jؒ-RGO,Aj$iQr K_ N+ 13 Ξ"%VBo};?Fz$ ` |n J7 &IcKA3!It&ډA!(_VF0X5Jh-_*$ sӻyp!f#׀It\3מ3N{k~M{MwPO ô{ Cj$̨ۤih$\B&:1}7I; jF Sz#3 iT81R /:z-l`f|.Kj㈱41϶U9?מ敏QQez߽JKǧ{K {єݭr6߸o~&:Fgvv."㈷ԋ)x F1C䦻*FCq07 ŜY+Bdj}!bfXKxr!X.A':" /Oģ' Xy `Z12YeBCKCx{AC~%1 9{DqTHsSDC.lzfr` 8(4_Œ8C. po\cX)3YsobJb6oEJt85WVIL_a0HKK@-`{lC. q|0FN< 5sZQmȿD4__E DqZC,]ͳj,&}`C. wwԏO=1&ܱ>x0R$i*kjF]pb%xVKBH*r Z ]bIDC. p0_ d; m {E*d=m!E3̔bf#*yyEh`/?)DÌ=Z@C.a@3z)JL-C@'QVhmYiZNi"3 `qyְ` #O"ŋ0Cp sCK[%P` D1bU M )IaI{}^`B c `Ld`4/@V(&^ JJ-#n&S"G$$0B /?r,4 I1%> 10Ef濒4!`*\2vPr:#ጺ|zO)%rc.@ BULWix~bZUC1! -Y]ID4n0gD ƀ;lqkN S^z'2E#aB BE# +ӎ`$`F!)0HtF).0Ei.]@&ΘP%dh Hx*$ (Mh*`(Kd7!ȴ *PfP1/ЄLX3PlyE& FFB9%ߢA )Z G$ 'H{Lv CԣxNϠIKi:e)A:l7_?jNT@jd%f \:|P2Ki:p -Āĵ6sfXјC!J=٧PXGpS t+! }$a×I5+$h$u,B5q>%S]6IYyJ1I0,h`T5jH.ڋ6nPA ^HB,QS5[0B\?{Q'ڷ]CxrQ,7S~:Ș?xy eU I0Z`0 4fQjr,ꦒCxrt0j)SQ!Z1cC0,© )!?.d1C}~? ^Ye\p pATXxo}^hO,R#)v2zp.v{C]|l n}|#x 5si=ZD̽FRdd'w7gK/Kts6, _x;]߃ڜ< 60aihuٓ.*iI@zčCn1vW"Q!0>X3NGY U> V$)n-T ]L8!;%0`Ah\B<GT'ͦ FcL ΡFUAXh Hc ;.k4s;'_ g30тX^8 E+4ӝGϺZZ`JtLA28UAOa#X,@8x Q/#1ğɄb~/;{pT97RFI[t$bKL+eD2t3/OC90<2P!hQC0-0c0*A&[f0Y+Vܽa*GCLm*JP{< 8 0fN}3גaJʴIɐ ;PؤQt FɗBqftEt*ᦸ75eݥO_x / /A`e`1жY :tb͊g<+҅ldK##AILLAIs@F' ! 3QK  "D~.!B36 BH/hghԤ}}^| Ɵ@TꭾxX&Z01 0\7k$Pd0N0@r辆C7LBe?ɷߺL h@ };ZR X*O#lStP |8C_ JOza `i SXt(uO,T74]$gcR1"_D: fUZEox,H^gv!P #|u*u'(.:a,>(/p ! /k0 тP^d C~ab-T.V?\!Tmd (Bv*o2D6AQz lA084Y(rGT s\8]B4fJܙ buzCB4Ӱ%Z}IBOBca#Cjp u֦ p^  ד^-/A@YfIc ij vmxr(%-Tj e%B9ۍ`&@5&!u8[LXCBGukv$52:_(MQTbk({AH-*!$ 7DҤ{`I!]eC`GEZ4+,˹NNKDXY_Bh!@g#U~(S%`PlҺp"O$ h3/=͗NMNtRp#!zߊ^twҍz{; `f5%>ˁ il@;&3I%dݺ5@T8!002`a0J+QOՆ`~HI- 9$ߟ>9]u/X@5 @3H &LeYj Nh bJIePY[~ 9á^`MvUad+R!l^@@P N1?9IBh10Jņ'UE@t` @@vB $ZCr1OmZz@ppdB98H~ced/^d1`!?b7d3Ր"*bBL1\  FA+7T=H^0 HdnL !yidz5',eA\ZsۺZPJǮo~n'z'a>B=8 `9+}Q ;,s8Z7!Б7:QFb}Ɛ(z2`^ Ay®>JQ\a)J#HF".RHRSHR")H;`0?-L[oCE'SB.夘{nKیH ݺ}iA/L $ c0P `M JsV7*)m~Rp2nm۳xHj[ݜ=h4ҽ!4@0WQ-K9cD@c ( (RC8lqmxoNT} 0@>Pg& ZL 0i؁s@h1 + IR~oxhg`P诿 >ߣ$3 ~RczOr pgNK{;rwPwA)o"B}:}Gz=ĄmxhdUn[,ؤ.6hyai+픆h5GBq{'Wt@aܦuu{!\a9\)rN#I)H%)D@C)J)H".RRR\)r;@q܏pm`;( >W~TB6x-\i :Hxj2%V,u+UzCPMF9M- yՍ{n9uO4Huʺz ?Z)Ja6)D\)?)IR;%)D;)JJR")H!G @ !5PR|MaGǒ'WmJSzʊ^`c$B434iŗMUYYiXaZmmTQ(:Vz$J0zVBG9[w!gNj! uF=(r:=TLbzm%+\Tq$66 M&L nR1U|`N8u[Y fg63e)|TR qHn ؟jN(mXgJ  D#)R,>tڃ!GwiOV #ecHmGI'u1|jМebS_Mڇ)Ibs#C446mUu]Zii^מ^%I:5"QMT#H)7$6Ȃ^Q],G Q6A%)/RiU.)WTm Β3uec$U(]Uj1-w[N,L&HQ)]p؁ZT8UlVdP[IהV1|W!Qun&ޖ4u+Imc7^kM/J)m% mb3*IZw-eٟX L<lvU$dQ4G!eUp`s4CD47hQey^)IqY#vƶ9&XT.a_@o: U mIй摍.AGsEՋ2b$L:i%V+g"AIaq#:) YP1AFtcl,SԺGDOڐXT-^izTqlMN -3 jz~MbLnē@ іWun>QN6oL]A,<7 t]Guh$mUyd\hHndӑmǭZk2̉?l-ƫ.xbc32""Ih*pEDN8|ض-ͷ|mϫ[m*\6f =}S:~R9ɥBZt6q`@HUVQqw4w?Tգ!*yKIzU%tbejL@j=)Ju4b2äDwOJmWAlTE*V22Q'v@DSgbWW!#~Tܧ`ă#3326H)4IPAEEQa4]i~]]3 kY%fHev98Q)|Cia'056- bX VTjj(\j.:}> aNN!73SMEZ"bi p6hWm|ҤCm׌m8(LJp5T@NFn = ;N۪2E mܢ(KcN9V#`Gj*n)#Sm6ir$ 6.DUjtY4Ӎ;nchM8oEiEn7 ݱU1@bă"4C4G d}BQemFY%Y%RYea]mǟ&I>jdfڻGck^oK&FTH5զVgU6|4VWhXH@kJҕbhlΒ{nػC_7FLE]1SRTbf!bRfGAY%`C-:󕭍'v[-/,#pob%\;խ2paXQj8qy"!i7YXSH>l25U3J^aMҷ^e#뱢TMh@`s#3CD7htYZe}a}݊DT4+8J08f(Ŷl.OZS%$M j૚9r)kHk!{ `.(iܥ))ܥ)rERo O^q׾N»oݓdlݜ3z(Q1ջ|7g5#22 #\q72)JN.RCBU0arER)JD3)JJR")HZRu\)rER)Hh!+ 9;1&0n/}.b}1->F^yӖLp+ۖ}N{HE(: fG/i&ƺOMI>-)gܥ))}KRV)D\)rD3)JJR") v)JS;')JJ*YJRs2)IJ:@ C:8uT;U^׈J2ns\x7 ?y:L5?] afK/Z+dN΋2ґ?rN)IEҕ.R\ibD+)JJCK..BJR")IA)JN.R\)rz]XO)qX7$ Jw@`M{\+Ca=Icڭ㭏4#_+^)J|R$#omHRқ4".R#)J hS?RR\)s.RJRx.5RRSyWn&} ;Hj_%V7{b+"mu^C!D0eё(Wٵ7MgPW#vs\\7/s}7p6 JS.R'wJRnr)Gi(B+zsWt0OOqHTlR:Vml2xp@:Ijr0q(X/${NZHd43M@a'`~{^Հ} qqYVR|ݒt & #{5`0NΠ?` @aLO}?r-~?sjiAA__) FK7lǐoR|Qؼn\ h|:8ɀɘ437{ :$~8W`S;T)J]/t7 Cv`<Js 7.1@00Mxjx7&`1,?1L&;  &kP'!IU%#F)Z܏Q+`KI܌RI|)G]R\])pTzPivH#p]ERR9$kـ3 t;bG/~ ހ _;4MD'$ZަDޜ <µI ΀\ɝ|u#Wb-nLM2`n$bb8r$;&lR F߻3|/Qu~i9ԡ$-=AIy=IEpa40Jy Klwt|. '7C!r |/@200Z>sP8X/<4XW;R̔u;/@ NLuM&p( 4^o Mp!٭ `.0kME&@!pE_x\T]{NԐjPA` EW#50V=N#{HzM@ SC1@]C@lڰD uO3Jz's)@![#=KҐ4(JBsF"IJR"t#̽K)H۲\{ cRFiNԐSCi@4!{3~) b,;YGh)=]mPEEöͯ-7^ѮMIu5kiҺ&olVoeݵr5Aɸ60 }g }K dvf}̾ ] N 9( B-wnw8 77Xrzotݻ@l7krj I-JGrgj\) ߾wMK%i+iI#HCͮR?J="W!KUҔ)C6뀫ԧ-w&_uh䚱404mn Xi#~f_@ -W-E~븀*!~Kv@@(Y00冗Gzb ؠ -_9)/k:K]j^{t?vBCHz7[Fˋ]%WrdFM[7+eOl|J) ixj+wAڹ%*du.˦U>~i4%Ӧ)}Ws;q(-tH&8Jd=q y>VߣwW@aOHߎ;l#f>~5$yA{;;>cDɤn][|w&/snFZ_ tM-K|N0ߍ?mXs݀N ^QiF>@t_a9=̰QYlOz!(hYAICrO0"ᡈ&h|XװڴN5)쿙Y_W[}!sA̦v{ά[?_PO Ix7r=%gF\5VP3e5! `.!m]9R1C3q+~ëmqS~sg̽xzҊc }s܏v{O$4 7 A-ߪ⠬t8f[?cǻk]۳0 {Jϸ3?A}d "&v}F@:OTC$*&I`!yAs@H8`q u34AAiiC[.pp)mCiˆ%Q,)PqpCɴa˳&fIH*BH*p(Aj ZU`ȓ#}C%%L-vQ<b,~QO8.oP+SA¶%_PʼH`6pQ,ae]&bHB Ǝ:Ј & % ٛK HhGOUA虔TJqr`h쭉BOv/eL+%+S#ȬuX] cðr DD"|@D1/M̥ CV-=N&aߠT7k}D~]q>rPQؼ*Hnc/c*otAmz`d@8O&(kP N6Pw!{R4LJ8B{Ϋ0 :1)ꫢdTH+㮉#t &V  K ZKtK Ax%YCPHdh0?Eʊn7*b`6x3%3hIXpg$ZRAtk5 FEZ]rd>88}H/p'!1y_GpR">B! `.!!6|./쨖 0\ bOAPKʢfA\ оb1z|PRt4̀``b69rR_OH4]VԺJ`hl O蔨OhBmED|MBYœtNIJ{R0=D tBY 6pEuUC^WC a6ʕPLX%K | ZD :Kj3/(m*Mcl4A Dm"UKJ =}XI? CœIE1'*) M̄lh4\ v$1o'g:GEAvE T]NXu=,[1JSR(k #f}w?O[BV& "5[P<ERbOeQ,~44&B }1r0( XEm/;[عr f#^6I ëjc1 #&TeDa N~]81$*ƺ68(g+Θ"L_z|-!]Sxtbi鄔= -i cV 30̃Hve"[AΪi Kx#Qu' hU:A1OCH`0@7$4* X* ;* Q|NqK}~? ^Yg gjtp# tLt[',` !@BٕQ @h,34 ]yK]|l n}|#z6<]d(2P4L\E@~>T`r vX*34ʺ35, _xK]߃ڜ< 46ߩ4=v.usMXǎ֩~e%%7Oοya0$ ]aZNQ2 3$)n-T ]L8!K%0mEL#d||~QN MtQT(^TMi- X( v]2מhK'_G N^I)6ەXlH@!#(FE*fÌ_~&`KT@.&T`96A)z0F4^4$0'7 % 0 b\|:Ϯ) B@!t@F8oW HLHX( vN}3גILʼK  C$}-!S$`|e`NF;L; `7b*|?k+!Zk'U LaT{fڧzH HN(gat1@p0-A]bQS1 BȨ{GV ?W /@ '_Gz8_a:d'"l: XRQM JʭN 2S0n#ho 'q!C1 I` 5/( [l% cθj /pO*G`1gt ކR\ ťw@\Vb.}P <TI=+QX Jx0SG}'1s#⍉SpdE @e`(nhCu#Ggq!+!G @ !eiiMRûƃhF ’Z83wpl ~i/5infSaՋ[۫ !B.Xl!m A3VŲ`dAmde.:8j%M.*HFI5C%%~E,rC5Q] 2t`RG JՕa&VQPҴԈ=%U7Έ̢k 8V[HG"T]\̣+BrbE5B%$EQ E4]uYX]euXE 1HF-F%Ȼ;2{CD.\쮔盅cWLrY, k);qFzeU'OXdC#)c"PT&0k`9(b1\4I!D<7Јbt} ĬUÂ۝s Uxhȓ6V<54 Þy3n#zq XRipoսvҙf34\:lW8f+-j)g$ڳzezA1-Ífa%w(@`S#2336mQIVXyeuveZiydNtv6d!]ɶhZ3fb7I$chQjiQԛm/&r;W Ɲc䧥5R)KT^l6N*hR3 8TXƣM eiQIn) xo7"wlEP'Tnrޞ mH XPrی$l+.RԻq5aj8Kζ1ۆRB4T{#hq(Fqi+Rq([nJ&m\S-8 6dLZlAWIPT\ۊbt$D43G$dE5a_`y%J#Ii+eFH95ƪ6טHh]å7նh<_9-CJT*|Ԥ}D4$.k-]RV͔D u0c7Ņnԗ =R"i<)Ar 㭴Z#H|Ԍ[6Śf& HmX*P.,i ~8>#´g#h.k jd-=L<e濎5#_`.ejFwG_Xm 6ubc4A"24I"@6-5UWQEaDmveZmmhҍ ϛoom[>|J! Vϟ>k}`AM0SBm|ձϚ؎,Kr{7y!] vmn*9c\IS4 SCOZ˲&[ [H9i@(ԶU3c=g;c F܆N*.:FIInې[c+jLwZ!&{ `.1Qm]V06Ap, {׏=2L&'Ͼ7gq/\+< l?a: !w+VrFª&:P l{DJ1-@3I^Ao%H!`1̓q59R= PORHj]WdA82q* a4((=['% z 0ds`xR7h=>Ɉ-k,OJ01Am褮SDH@%ʉ-ʑһ*qWEpz6LX`no:`'%D@2Qډf!R/!H/|240(fB`dҲ @8@H ҳgh*pl RC Qp䀃$#4}̀ E P24K/Dˆk].+jUC*p&eDa84rP̬XNt >v\_qD` !0MI7#+ D, PM#sHt153 dPbkĎ)?% JԀ0!Ryrjp "tn @$ 4qN ?@4q> q@\r'h8` wia0K#tMTopHnl1,a3fB:@WA/`!;C@pi7 c*>0(3fmuk8U  uLJ+v]ﹶZ??=עYIw_QD@pd3`T6ttF ` 0@ J<t\NtIg "薎D\P|a $ *xB~`?"ODP~ 1 C `(ZIœ@BK@#@$J:`ՀK} Ҩ IH#c`D2`P-)`j]%v72 0nHt,o2:&s} Z͇ ϨDbzb'!r#@QFסQ,dtt(N@) B6VJWK,v袘Z0-,ɟZ(hRa(4%$pI-0 WK)ɴ$#%M ]%E`G/gDX0yTGja! d˷O +>BM| L >!9 `.!Źx TlhТ18`HӲ<l%i`?4YP@88J1.y\~ +0'H\I\ِw #C++ 8n8}neQ0/ax5 #3$&0oZ?Hds HK"GtF304Z2eZXuvL2p=0@?6 StQ1 ,Qh t4<UEԎ3 3 I19i2Ҟjp7O;.vj#@ e C3hLi5! `hsnE{QTE+XZh'V:Ż'ZQ դrg jlKDO1PDf".?gC !(N^xB@u" BbahGz#2KA))C tp2NNp 2qEx!U!@`C N+8v\0__x5 #@{ZH}W֜jh*%h'. yeXkF#Qze+Ueg+.43#(.b,h ,XjvZjhG}þtd“ eJ t(7>< v8jhf&dP D5%ڐ)xBx4Tي|s0k~xҎZ7ד ^q7(*x$Pqox72}ԓM>2qPUetNQ7om,,UP Q0g3N@`8ANg8oq&==v=G%%,YKɽGAӞ嗟a]C~ݩ$25% ar57:{W0nt0cTA5 T4-][#ax ~b ab@xrEPp( L6 Z;wD*.'&( -iR.RcTC!!cjh12Vxs C`dKKTҟ05SjT)$0 92F JR(L:~^X#`<zC=v$ӷ~(e?KPM#Bt5WUW6i6Z! W1C]kUK:ŘChfX,=FҲhOO4 ZMS i6g.к 3EݽG)Cxp1p-RPb KqeKAJtM-8INh\5a Pb07˰ 3`E p+f2fj[#I;y/|.'`=%ODRJUB 8Sf(MǬ cO4Y%a;.~ a Wy۟ jռEI+>T%@{(9WZضfh 4&3k{;.#Ay>;.|#@5F apw`wJ >OFn"2CT50WRjGQ@0(=5Y-Kph lBVpñk-x;.ry0v-iuٶ``?F _#0ğ1a ;.5fdX6=Ģ&cc(1U"8x.M*h[0f]|z^SKv2d ;9`A"1# a"àq ${Q!@3,+fYHV_D KHD:+SS.E(|l%Ԝ1$y|e^hTR{| 9`s7m@ۜK@ ;tZu60XN8-1e=1Pɩ$V ` 1Fwh62`exԒډU#Te{X] m\$CDC`ILm dDU 㜟r5;xVsL#-Kuj KXשc1 !ǘ=X5xÃ*\QEHJ@  BcKJJdZ,%  aO5%9`X%O`l!dm!` `.1X5QC狾Иh\ H B] s S֏r rIB A+6c@($C@{F/1l^M<6 ;Xk[eԚֵ/PZ5q @. zkȸ 8j ކ!uTI`a&P IW/vpz)4N,H7qwD>u Ը1('28, ;W^ebs,TJyxuj <_V:M/Ж8 /F&z oU<\`hCMmŗBcn/Pu޶D: !@;]v븦=dBPv6 ڃCЊd(beQc7:}+дa{>XS; \N9wx(%%tp渳ꮦ= H|(-Ғ&Frš=?`Wh::th;ƈ<n t%h 4&{#A'1)Ԓʤ`B%xBJ 82; @t@~ a.|RFtag*qxdTQ08풞# Ddĕ45 H '? l)*J{m8EXN8 ֖.-ی!jJ^ x5(=Ad p*q@RC(iҋ!8-B5|z'j_l'g( C@[/?P G0F$: OWL nI:-(KbD2j 0`f +lxo^8I 4^+HJ*qC#J G3r$(2%o$qx]9 'eŤ3:- >İPފE,PB(Y2\7͠ ,AnTn׭I}=~u_:٨@vѼ41*q)05'=ٹD`rtD"? @v $2{A(bR& Hhc ЂqS,hDR  0xf&dw||> !04"qL& u$T2`њdѠ/rӴg "NBK'DJR(bf,@Wϋ /z p"py E7N$pЩ5~eg|<.P"ahp vI@2FX A$l,UKaBuFK[B , ( NLЄJID"$K-#8%~ɡI--脐*$!`%Df;a0ѿ "!!-l3۲`D̃ & i@M( !Kw *<1 dxhjyoajQ3tf`gf@`S| 4HOJ2v CJ9X, I|k(̅;uԓ9,1dX(iCO3% tO C) X^+HH, rY 䶝t66hM4 "} )'~9/7PBOI$0Fz"a(iBZ I=u p}  hKJ tq[3lD,`@0%K@@Ť!sG `.iJ ;H! UPWlfVDDԂow1%≏y6 w>g(>u|eI{D ek#6 N`Be8p2bxh$} `:Ӂ@,r0C<1dRsfKfgɀ6OF<%<'8KOQx.#lIpx@ 2ru HtEPP_T( ap J 1Fh qܔWH,q S!r?~JT~5,Zy}XiOpesPQAh5h6 ӫtwuAGI &'&*M>lMf@5Z?h9; A$EFI@BJ8 _ &bm$0`ax ƕD025W\@{t I8^$Hn܄2rmﹺla@c| %D1dICP IT *o:Ra3=˫טLIJO^ZC+RkB +seo1@jP9nJHQGhM%'bQY!2~Jr6~zέ!Bg*B9 ^'J3G8>3K2]ˋl7Aw_PçbSk$'mFD :aldpRIz X ?*|fXp>"2ru;ZFG[o rsx9h}y;. -la5\4{ ŋO9 у4Mds:{ @K>՛A|p+ب4} BJy R4D׫4Qd4d c +Ҟې7\p†[wcn(<41؟s9!{ ! `.!3d![>DZaG/@>QCz^\Y*4br,MB; OuYР0`E p+f2fj[#I;x㎡@d +CFuEg>AHhDk,ĚIxi柋$q1;.~ a WxNjځB[(o{ 򨠔svsmCֵlCQ @h,`L&gZמ;.#Ay>) Ek}4)Xhԉ|}D+ #=ezMipgr$RHe` 8/[IQqh/q% ;Pg>]5b$jrtJXA0 @ga`!+Cr`FC{] HHsVt%4 g! CmT˒3nH- %{qƣ𖍍:hj'l :H,~ յ%ǛVcJf1bRMAgxkNhB U0ޓsf@aer_0 +1ቢyB#U džu.X=t}y&CbX`@:$h<s*`(7F aM&@HIo Pűy46 ;ڢE&#Sַ.X@\ P T:Y !)R}Op>;֕CxP ICRJ m#Ⱥ`$ŵ,#(2& dLACRH_CZnoC80 f8T_h ;W^59J5yA0,1\bzCr6lچϮDИ*czDJFy Nl*K, C䈏0 ]c ,~l!bqj@;!F13SNcXܒF ƾi1kjI2鼠@1QSP"*@_4ꪉ5lUF. H^DQT4Lp5zh#Efm=P[ 7t"0r kj}*;]v븦=2(lkAhthc誯B" 0 !df25 @_x/;.Ե9-KVoCp|H;.|#@5F ap}sPq,ɢ59tM0ۮ%/DpA4WXi|j5MVKRZ@-`60Z^98;.ry0HXA5 l )Qg)!D`@0  3 Q5BLIx p"qL8'ed ԕZ8vLHQ@7aE51a>tpbآN(yc:D yšS݈J{"xAwB$8"q%I'/IBܘ_~$d22.A0]T:Q 7AtsRc] f 4 SOJM-84P# I v?[D$ hcXctx2ha(cd 0Rh CK&Z $g"{26%x@&{ `P@4Q)3oϧ#Q Ɖ`  BMBHc>-/X@WI@ގOc{``1(i1(K@a4P!|47H s&`T1d"uꓔeQ |,8|4K8 bh&QI_?M@oV ZI\W'+I1!44zhHbgdUGOd`id%"78Oyk"L#y0 E&"1|NJ 7HVߜFyĕ Aπw Ө` 4 pԾ%0;&䕱N?+@!,e 3hݒvYY G1A-͙J"$F膕D[DܐhN_&AɅ$ $ )ҍ}; ,h`n2YAH0PCCseHgЌFruŴYJ 1q1aIDbKCuEX@咑h |.)jlmR1( ]2``(@IQbd{b(r$`$Vxܱ+p #n4 董 h/0 P?a i\1I~F{ A8X(a z" VX) 3Rp/  xBR4O?}FI'hŸt,CM@ȱup2!dg ohIݡ2zRiJI>8:Hb!C&E@bs$3 N g`|bw夬1 (oxk2Ǔδ{& b1'ibCV4@0/av @OeK*b̽p! ;s\@ x ,€x SiH絅@d 2P$c\{H  @F`rT`MI5| (i`) PDA/JGͰɅPpXHtD @ G;ƃV% n/ˀ sgj 0XDRX@y =hL?OjSod֬%Xa0P&PIFFGah( A6Ab-_[KTwۏ`"=?7p79H_$JG.hIYiH/oz/DSDvqss}xgjI=AL B bV ~:̀j Etq]Q&( 'O'^Xa$nQk)_s-: @ %^Xd""`44m`"!C& ӽmJZt^L *r @@ vMB hv,BC0 JJ$(3n ɥ#u `!G `.!urJIdJn@A`$~ _p2Ą~M $}l䠓S&B}DD1] f ?Srq hZ9ě8)@75bPaEd إ$L &RS׈@d]p@LWk2 d}<#0a[3K牉g.o9tDVگ?2d#˳[DP_3W*s &  QD@kgp:W^F-9!49*`yy2`Ay0?+^h9uc53IyD` ,g2biezxy(Nva‰ -8RHK@_hhv:b~ߝm[6ly '9-|e B&Jpw伖[] `j I hKEbтȒ.چ&p1O!V>ekbٚ X`LKӖ=x;.#Ay>/+HQ4 fl*n37 ]U'2V1ƹϴ0P3Td-h4`/ !XaŬs;.ry1[a~ %,AK6HeD4-cxtXInI)!D`@0  3 A6Ȧ3xvLpEːcJgXy6;w AoĢ-&u^Ӡ92hTCDFەc(҃VjW /JX6 h:+RRJT!z$&ӲEѵ Ը=ܱ6i%(3$5hu+{-0nMz!!{4pT>mHĬKwP!!$:ENdŌt]*KfɊ Œ`>W(֨Tx\14bt2"""Y*)&VYeSAE5IdUvUUauRumR]vZ!KvdT>uد؆ľq:SI9]rԘZI(ǰKuI.HNxMZLjHjVǗqY#\R54W^T2F{OKWIT35uL ڜOh.:dZXxҷΣ[qäaW[KiMk M;/ GEkцVQQ~!])Vv6t|`c#B224I@-eUTE4aEefUvXivUf$/.iPؖ6@ա+hʰT49HVH%Ik|3$hZ8f7F޶:##vrL؆s&9^C}]P[PpؚUحRHV+l T,hSU,)(N(=ؠI`HR%-MI7zI[OFt G F7ww/[,e,E 䕀x@Bhm40`R,Y~}JTq bc"B2"4I4@ʫh-UUeS]$M%TYE]meY2@ZD3NblPTe&M#ys!pWҽiVOn>ܫHn{vQ(ý!8cwiR nC\J.֬ehPٟJ'w81t)N[J_MĒy\a12&]եazJW>Y@B% ,$ӸvLn0Kiawht^ WEQI%V|SZrJ4$e7+^ H[Nq,2J+`d%Q$)"Ȫ&-fUEUEPU5M5WQueVWaZ=bH5Ъj3 f("WC]tԒ5cs4\B8.|$nj_ =ʞݯ Oܻ3įd[R.7:P:Sp]Nic3ܟ;[bc#34#8m .Uv]EYQaiN{,8kB3Y:Y 9jD6pt-F59XrCf* ATeIqcdm4ixmq0ĤyEdR:P[X4a\@̉\E#i8Vں)yT[p":[eEc/O+M5M&l8Tl6ZhWjHQ-'f1Yơ_"*Dimbe;"n&'/rR *mQCmG&ѮhMr(i`s32424mgeivq}q~~'UeoFa 8Z! `.!ͧpKk }_QH2(h&Q, aI,|kO$k <2>U5CQXKqlp/x@;7'Pؑf(_O_D,!]im*LmIPx- ^;KzDpI CBuBQEZ f ˓ר `ly FA?Q _8/S#;Sx-<վ(.}; Rxc̵DA+t0(X:'jT5 j#'>gJi1-=) (6. !0 1-{@d Yx:Ӯ4:zB_ MHRU'T|ǷБr3.& cD$&]K \ Ā]46;]v븦=wI% g'wmW >c^|_@tY[_gPrqwW2q 4K!v /.+r҄c%#@iAeA&qs$HM 8*5:d  ?<ڢ@.| @4&fB &ILoP׸Ĩeh` ĶQӣOOpĔ'sY%_*q_ xd*LvPH4`P1]&8 N"W d0"3+V+aCtM=+, !Ґ` 9d.CDC &p!Y*q̟A5#JvlG 1 PQ 5$ (X!cۀL [@ۻDҐЌQ3%#1%lP!Є,[0_UE$!rЁ)ڂ{Jdhoۈ%p` XJŕB)б+&ܝ8*q:CA;NJ0 L|V~m ,3APSPe!#1c ]*/ݼbiJ۵@J{Z@bzNTt'DRKG9 ְ;|+ v+B:!G$  4~ p"q&E0ɉ}i nJIS>AH#cπB |:,j@T!śu@b`1RRvV'Z߈#_2CN F؏Frgd(p! hbngY:|wP: , 7%=LZ4() Bd&, Ʀ p"q%RC P4qt`XCP1fP |R v@*ӒRC;%LTKHiݎ7#A@B3"Q’0Xf@z{& `0?- # C@ Jx p"pԌ&j'E/Ő 但 4LBl^I/ 6 iY "p(-M%(>( 0 i40L 2^e8iDh!&Q8LHn[.@ u( t1`$Q'@pb1}(4x6غ" +5 |p_hvMKIr,@ɠ7!/4S j,7jtD.e@'0biCF d0 8A_EW"V&2 @ HhFp LgP bH7H(pSDP CB Ʌp`!Ae`CtY `D Hx2!  `..ۂІ@/ i(PfbF @fPjR].L &HQ- 4rn9NEŁ#@  t!&Z1y(`kORPX 1Z̓z'fijr0 ED‰Gh7*ѻD@&{ a`ۇIa^u})!? K] ѼoH/WWn}' R 2PA@ae47$0JoI,a. B?rj1pƖ>f 0f&A51< 7= @A^?6\O(82DL#~@#̉CwK|Ǹ3?Elw}8DK%4Qz >4JBDž$o9\0@U'7Ho jЄxuh c*Fs悿$^v`CB"KA_2FJvo ([Ą4iHb#` $4 A aiAd`$3ɽy:B^ &7PHh]CnZW,7X <ӐṄ=m伐$"1 *0 iMPdt F"oʦdJtM~I; )& 98`Q p~h(4Wꢃ/9g$.H$[< "I$*&JeJH r-y~:,0<'\&҃|(>sLT>] AJp.f76n4ekO*a+l),,Uo;SM)W݃Kf78#@ *O0T 38f и$WIfI?34uB5<;]'mӊ7?PS)Xi-=VV>FH%2׹ LH#HRSk@,v@TSxDgU00ARHL0&L6%#d XFt`ډ s.D ;1,)\[IKP/L&3f1$V[+ GB'Ł@ғBvJγp&9_.kg_7S6>1e&fm@ooM/E`d7%Ft&%GQ;0X*%aD  G(]#&"Xb&(#I :+BHEdmqnI@=ـKaV>YPxW!/8ádMt 7 F472S98n_~0^12s60> wh \ ?@ :O[mT|SIh7$4@3S1 Om^&a\^p͚p2bH`1!cPny\ދ%tބiӒa~$@#v2-CFtJu$2!L@:.D\3Xb|(f{ž=T,<`/X^Ӯ0!$2# 2d$EPH0UN=pI+gS f`C I`V;h r nZ&r"oi) >ܐ{=̓h,9 nجmtcm`\@UmqXSHnX&-< 'Ojb8:?eB }tb8"Ì0.g:ˀ`I0!ش lA 1.;UplA /ϽF+y X0 J/@5<_,us~w/ju8P/dK B9i!3G `.!e-y(KJ%P0i#Ae$?Qq^ >˳ZPfc;m}ΠU]p%@Xh~WUJ0UQwz% %DĐzxd K `TۿTZ10M1DS /$*y}6xHNrK*҆:%IDTX t|z!/gURn,;YCJN0谾񉸘l]0j=iuA7B?)M!!X@,2J!~t0?:o>z lO'L~/Z: 7Muɩņf2 t$_;2bB]Pu-},U!rű}_e=&lSHVX' Bw S{>02LFHJGs{ a]꽂q(_.Wׄ d}ryh^@B(񂏕a4!sʃQY~mC dM.T;\D' M ;x|M!Bs}%g^=J HUӏ9' . +,)XSX,`0;5-NKR܄!M$;{^qkڒNce9NͰ$hDk,ĚIxi柋$q1;.~ a WPj&1(pWtJ}LOȰ ;.Ե9-K\DKmDм̴RPDz 5>c٭0QAC< 15[-P2 a!F{ @ !]ĬTUi5 ;[LfڱhȵT$UrnnPЉ6Ӯ*NN *JZm*Zum,{2/u|dm.0@40I$vkۖimMԌ5b)(ZrTeRy E&VSG]gdKP.fQN3 BCd&nRUmJ]@* YJ[v"bTK<['[ۜۨ[)i'MbĄ$443GIj ivZuiyǠ~ Vzz*:䙢)%ޑ%R.FBmUmDb\0wGn\rTaR$JYnR kȰ,7R"5\W6LKxO! 1?]\Ѻ7+WFֆWJtRv/T:SkM ~ :rv2mRLrRpW ><fgтHؐj]FRPV#9}ƤДեKaۣ="ץ6Vh. /cpv59HRGm-I(`S!"334m0@umƗiFMiGMeƕuby_cOtk+*(0({UfGg+mF P(y8Eii8n6ٔW med+z6tClb)}~VFpm 2:Ewq$q)DmoƄYFm$m|5 UmV5xGAɨH9ddqmm-4[mqm6mkQij5)J&lnʙs,׽p[Mو! @bc$BD1&-OjP=A4Ed]]TYeee܊3 UMZ38tm6_"IRCyͥ͝3N9BbK1] {yRU,Mn1mZ9nR0$qV,c7f,ub'TN4s#f R݃"Jh{"H|4 YihfIMkme[qP4Ri:YqT6h塛+j`%aTmDějߪبvެ9(UqCPg5-WVHn*m``ă4"%%XI=]eVUVieu"TI77 Lt&OÌ)vڬ2Wu\Y×<+'fi2(H>|ÏHl??vZ<6*RvS"o4Q8ۯt].؎Ҷue!Ȱ (D5&pWZ6 qjFt9w ID-0O?H@b-43yevTrJΎ=zoMl+R:u+kC3­=hq).C_$@!J쭠#;<:k@2`s4CC$8iE%YVYm֛i\qyy{Wi0ɹ)2αvu]}EjcRK#ޑPE#csGC2Mc+3ptfָfhq RzD˙1Yl#% ֍"PqsI8XKJV>Alko{ tn3mq3CZ436&a®ے;g%P&'uDH՗\5X(mp%YƵԨ9͡ʚkh!bt4DTCHDr-Eayd7Xq! .)(s{lVҎdtI ?䈽kYeXe4=cS.>Uv hU3JӮȟ68;cD/N;kioOBe(HTo;qD)X;a;&JfBFGK@0%~uNDHd%2zY"hǁ|SВt7S܊ zI Fz4sypԗ*8}Jζ;Ю m{h&{be=JJ$P KH" "2r@B´ .\l1pЄ?,y;S1pfYEbP܂`Ԡ/RJ]_Ŕ{6AV#*~DZᠸc;Ec"+\BP⫸}ZLf&P r0ep/8ޮj̤IRJ(G#c}xzB?'(G4͓d^CbZ 2@`3.`@ `mpҺg'Hm2OGQ(Hsz[*FVKp)7 P/:oA(L&|LO<`>GNrW{?>&BT1x"t?6 Z xXT$L`D+N2@Ab/1x8`pTr~UxwR$PEXf0h[I=d8 }Q3uy¦*0PeS6F@P ܐ$1+r}{ a+]UKx"L!pA|' �x` { ̀ru `50`E p+f2fj[#IK{^qB' yr_aLIY4q=y4!?IdcK.~ a W:ڛ%gyrʼn`Zזų5 F@)0-k^{K.#Ay>TUO Z|$0A#Y`Ám (n0j[3'HK.|#@5d< !X% xpW %ь/FII%%00c6)fj[ @h_`/BÆYk8S.ry1NSAQ .R U1CyX뱛Pbo`)!D`@0  3 ѿި80'MT%! fcr"ޢP @ Rn@1g)@x|LMDY,+ lE'm@m6H`3ڦUס)W4/9)nef|Tj(!x} J!l `.1_ RR5j(8ȦPA ? Iִk*AP6Pz,SA񃠍U 4 (#E1<‰IRl> B.z/% =C{i ‰2 M,#tRZsRs3q`]`ra 7Y7l7CI}/.5ɝQNdBzwPТ0s'KsnP4 m#%T/ =W+j'P>D-JNmN:WUk'4r[@Zt)%da7eAE/![^8$:%x0lo\nj,ErgXBAbJbem Αˍg=ԉUWa|6[`4o¤|3q Іx7}\ LhLOo_ '~x3/=͗NMNtRp#!zߊ^twҍz{; `f5%>ˁ il@;&3I%dݺ5@T8!002`a0J+QOՆ`~HI- 9$ߟ>9]u/X@5 @3H &LeYj Nh bJIePY[~ 9á^`MvUad+R!l^@@P N1?9IBh10Jņ'UE@t` @@vB $ZCr1OmZz@ppdB98H~ced/^d1`!?b7d3Ր"*bBL1\  FKCߓ @3ԚM0|^=ex9`;(R "ІCה*P)JJRsJR"a\)T\iHQbERi Jvi DY);`0?-L[oCE'SB.夘{nKیH ݺ}iA/L $ c0P `M JsV7*)m~Rp2nm۳xHj[ݜ=h4ҽ!4@0WQ-K9cD@c ( (RC8lqmxoNH&`c RY18g; ;.pht@L 6%%Ig͏4hs(CtW߁oэuf`}{܃ _{':r]} %RQo9"Xk-Tm0@ %<{:;APzslԆo9RR\)8HF~W)NW)JD\iHsJR"#IEN)D@;)JJR")H",{%)JDY)Y*q)#QQ! w.c#*/JR费JR%r)JDY#W#'\)8JR'r#H;)JJR")H(iܥ))ܥ)rrP*(W-!mmU(hj3r C(Z`;I7îMQ\(0bGxe@P~ɽL7;T 0!1Q!#.E0v$!1 &!L4G^zReѮRRCBV)D\)rER8;)J詥)H"-iJYrER)JD^h (x;bԾ? ap)T >uz{kY`6)%m[ţ\T SMi44Q4;+{A ! `.θ^Ma;(6%vˀ2K0@..+$uO)J^ҔfϟJRS-*)TR0JR")H3)JJR") v)JS;')JJ.R]0 Cb+}ͧ*~+b`n) مp)k.VpJ?p Ә nU(3*IH (f-*羌 r84SxjR^#-))JDRY)])JN.B4JR"3)JJCKER)JD\)(JRqr)H=JPSﯡC. {}OKJz XMB]^ejBūm}-,i:  N! XbD{5;")ѱ4#_+^)J|R)JD ZSRR)JD@+)J hSRR")H')JJW. @~.HOG}?uU:/ސpuW[^l=!ɁD @؆ MJRzϴ]B5}NfX4R4bxR]r{15r=%7 +!J蹡SRR)I<5R7Rr.F?b1BaZ{xb8Ϙg$ak0Kei"&Fc3_X.5dpab])JN.Rܥ)6#y}q I嵘F#Hx +# `tW)J,t.u!)rIt qs)s“'{/ RJ 1plZH@0҅$ێ/n@NAaZgO60o ὶ{$DL6p 1H!B\_e۲lKJfAke (Հ*n4nrOaʼXht'mZI'1Zi-1 |n;y`;REP@!!^ +ZwvR: GoI_#'e/q:7vYR)JDY!Wfh{R[O4i! ;NCAn@.!Ii;`ᦰuxH|'DŽ|?8? GhD.zƤ9Z0 `觖Ԃ *pZJ>NS^#PNl:Sryie5]܁Q3xJl OT9 R*1(@L) @-(E}ɿD/X,hd~ 8oF'ˈ  g M %eC3qgܩNתC_60D /E jP*@F' V[s} b{x@w(/^Ɋ kyEg&dRƆ#}יܞҶ>Fr4gY`~RV.H!K2OףP!Iڦ@Ti[/v@ P ~: e-b@4xNydRl廧cIǮNե'SqoPsW$3qvJ /үt:Pzl` t@ 5&6>fWsRU7cpcH9.sZ~4zdKg|l 3$*˻Х?ԓPQi'@OQKw@3=R` ݝ{ɨN W^vQxS|1eΝ]m~5ZKԺ^)JgQ$HUZ% %x{6N$h`n>t߇U<ǡ!S!!w0 ;µWYzj/| 9ۥ)1}Į8&){fOQO4BAYk0ggb4EqP+7p;sQ/_^J9^5×@BJ g^+t}'n;qyVOu/p3~!]dw.]7-݀$}^ N6C7SjFN?=wi ǣEZdn}Hs,N-δ$3$2x$~;.ت\z=шh>Hښ7{"g!KN'7jZ2;+'12Qր}qb^IšI:!spi'T[xvH`QHBҴ!9KO~f_4%(AhƠWknYN0Et#NfuZI g-w}Uj.`(Zrs}@t ҆G4\GY:씖c,7n1yga7pN;Ӷ{#-,_)Z;_3o=>k+o}Tz2Qa0a087ttZp$䀧7@X#$M ( Ọ{e[z/{~) o;.0. Z@,ИMIE퀓Xe0aN`fCԵ9-KrcI4Z^{d V>fUN لMcĚQxi柋$q1[.~ a WyOpRTP:E|r@gIkz!{ `.!Bضfh 4&3k{[.#Ay>t`!ń *u5FԻ X p_(a ;׎q[.r/Zf `9\+u!҇biv%/Fr!$`@0, ~z^S/^5jn?}5?QsPc؁Xh>)de au=yLS1.%ɐ S[nK1,˰LִR#5/\fm&3ӒJq_J=@ZeҼ֭zq= !Y5 S!MfU<#B3P/(7 R4kzHl51zWl=~a^u!a )-YLE!Kmtpy.\C9F.HNl6 :b˷Ǫ0!S5Z`> R~17. 4(00#]5jL]$R"U&kТp : ?%.fk\ S!Fo zB$ hOCeI ]&h/ u2}%a+rDt!,SXJ(IFDz=ڇ&ck!ȘnSL&!`hP-fjR@)`;`3=/NZּK.#Ay>X0 /PaԷ)f1F+ ,N>K.|#@5d< !X% xpW d8N/"qe U5X#h"Qd0O> 6BKx'jv ^KRZ-`60Z^98K.r/Zf `9^4 Y*B̻AtC|&śEcBͤcYUYD$#OQ#_XK/^5jn?}5?Q}%6}G7.IQ# 6 JFְT)yK#-f0˯Ybq.L K[nK1,˰LִR#5/^(`t'ːQSK Ĕv,O(2kq6տ5/^u\5!d+5 K!MfU<#B3P@^啕Oϡ.V@*vm}ꄗ0a@^hXn-`*䉓Pxf va^uAa rs4B]e Q#k^Ѿ@yCK=C! @ !924?q}ϵWZT2 Z͏4P,hVEy "#Z"aY2c=ųm<1nm$%h$:*Ԁ"rWG)`s"3ECDL? YfYiyuYhn}۝N8moQ"MirFIͮj ԉL&UY5')ֳv$FD !%hٸi9;U$" ȨZR'>yM͢66۵T--ml|[omxnJu->mM9RKdzBgqL:S]FD!m\JAfek!8KVĎ<HM>9,7 vd .dc s սmbt#33#4q]Ziivmqn]yxwגiZ :cW{Mmd`ă#4C2Hh/ avav'` v'ߊX`!#-ip8i +F&c=%a9,K1D!ƩF N[dHZš3V,3M5VLlQZ7M7,Feum#Y$BsdqzѐRHFLTMԠÛ :FœRB.(Y-Nf݊B(ەD2nU#.vCE `2kot!h4N5yqiĤJk\RzF6_,clM# 9T 8Tx+J۔xsJㄦbĄ44D#8( PKUbbzdXi䦉dXg̹ͭtD7QkJ7so5nm!{fjV473}uM.։*ԘD9'@C'7^-,#:37\ʃk.VIV0T崚/,Az(UOܽJD+>$M) B/ԛm帩bŔwV6mmJlmdilҳ ڢ3{T)DbT& -7/1;SVmb{-ɹS b`T""5C&m?B0ETUu!R'}bjavXݍu}aw=xursJX݆Añ6v VW[RE aw6܀=2TI&ːBd#$AGiQM,X(v=.Y x2]uWl;B2IovZr jQnUFT۰ҋfo U7'臢StFduW!|m#$ౕ܋v IVciI XՈ[$Y=[N7eF1Qilwե]IP(8@1)^„ x\be"242&I$ꂺȲA=RQ4EDQUUaVajz.4y5\4-hśWCݛKFGh)]ZkZ,G(|uOr[UǸ!(D+GY#"ʜonI1-h4TĥM)֋|Rƥ܊b(N\b#,SWATRV"*tjm# Mu1ĤX}cbWKĭ:,1$},?$^U5S`U4A""")$H+f«L(I! `.1_{<0Rk2i Jg1׿9L+ʢ+/ԭ.X.ꗿB~y%YPx b!h12qNp I(v]A?5%~tkP Ro)xPf #tsRJB2I5ݨ]Fk@S!7c#@w}RCQ͙@T1*ţ_r7M [A6Xs*qBQ3;xLKN0"Ibaa+)d^ B E3 X ·A_>A4% )paD$%#ݨ8&0$E@ tEi IO#"x9*p -](ToFS1@ `D[;Q9 Ks05AKst58GV sP&dQ!qlp}tL bZKD @T0n,h@=F8*p!&Rf!&|81c$MkV^J:߈B~e^!^K K A1P A( "pN$J X>6 nZ@ "plj#ZPR2Rld!*%0RfjvZ -7'JIOJ&D,f2 v;t^ ,-贍L #bu0"9|77$irR(lLyęݤaiIEBIed!*C-JF^1j/C *, 0Up@ `(,e؆J^@T"6 @y $ X 4<ybP$ X,A#3ـP;DJȕ @=DI$E $` * E$j% M NS\(27iR_DK !PH@//"&tڹV0åpԇa` em_9Ԩ%) IѻF0< z6E2 +#~"3|a|4bLc$?rYȐ S`Iwu 0! `.!}-n2!+)+qQD! &+ dZ /Qc}i@^KAW¦N󹹫P% +H%*( @(PMBa0$R HI@`0D mG h1Xv"D{ PXp  "\ ='PO:@Jc 5K$ &sk`NL@ǀYaqԀ %= AI H$0n[2LQ % !& ' 7XjGK@E?J0mč0SASqS @9% G9|F`P=Fv^m#+ *WKj" )$Bo)01@ J K,xdZp4.,040!k &\CE3Fa~ ^=?PwH*8C>9z?\ *J~+R'PF :Ih*no(1Cƾ{DŁ4lpK?D>`!B7'@U#@Q"(F:P|{ aݽ7|3* RzBT|Ԅ$BH3"-y+C'9w`$bhV`1%!nNr@5pGR7 }@1;$L$4ja@M0$`s>B C%C& ` KHaЗ =60.* QC.+mf.7P(03` JAHw@ycC`Re &Jp㮉 ! &ˋH|h ؆wIZR $NHrJPhlaR )Q@Zc+i,o[3폼+[,U JBNK:aɀt'/-͢acN0!&\Zl0` x͓ ߤ##x ac6j$ "n8C4%pܦHJX#@yH &o )7$bLB+z4|uPpLL H,(b = 6+yJF>+#+‘[@8dg) D$C(> %k g&h qD`) ,V8 )ɩs O'o$GBrr?8jF1H`B9^)m8vbCdpѐۣ쾝mﳳdU% mZ}] R? 09o=lϳ0vυ0hfA)^MIy -XV50oFe7pw*A zzsh0 hRIFe ޛP'\>DVsx_HSxyp=/`; (aXaH"œ `+0̇!٩jrZ!ƒi Kxïl.< 88=y4!?IdcK.~ a Wys8aE3`{-fjR@)`;`3=/NZּK.#Ay>}x K.Ե9-KMYh@? "RYXuO(e~K E@ub뼸Y։:x) 8 a-Krcb"CK.|#@5d< !X% xpW 0(C@T!G `.!y kQIzx*oͰHUmyZЭ͢k  $ cKA Xp_(a ;׎qK.1z޹a]ذh0ehHʜ1,hhaچ6gbZb"a}{Hi6@:]PpFI #f/u0F,#}`KW^ST  >`8p5h&^\l^a1ѰJpS,u|rc0)d K[nRԼ%0qG{O!za !Xl`5=$xJ}Y"[ז=o^mT=ǻq C_~bؼ9Ur(Pc,|l}&![ TMB m> Ac J9-x(G=o^m1s,1  {hY͢[46^_X| 'J:k8bdEȺ-\977'/[TC $lF%xY( CjfeB1BI am !mxXN4@ܐ- ( WӡQ[C@J lNM0<7RIxDtP.~uȱo2 CPwmFR9Ax4:zD#pSKg-ǾvbZMS)K]1bkP&I+h4>QIR{CPfQCAzIdқ0'PAׯ{CB,OOCfܘ >aMԢa`cM/gN @ћ8]C( +Z\?{"q(3꾟aK )%#?%8HR(| ѭd*LI$62|k=BvSr^KV1ڊ O_S$ooN(3(NYQpj I /ޓ$|EưvCxqN-gJr0ӠY qSCzK|0`E p+f2fj[#ICx:6ab9RtWfz޼F(Ǭ cO4Y%aC.~ a Wys 0tm-T(yl[3P`4K zrֵ;.#Ay>Bl81g ԒUIy)NVI #f/u0F,#}`;W^ST  >w `)g}P$4N:NQHDt!uc!f0˯Ybq.L ;[nRԼ%0qG{O!za:zWMf[i?JBVo[כo+q(c\k ;_~bؼ9Ur(Pc/9TMS`/3%ơ*wO٢l#k > Ss#6c9r Kh[nۗH@R,-x0 P9{=WNiE@$A!{ `.1d2#W aM07Ɠv`G A`E{B ~IpH}E],?{jۛ`=#^A8`?|Ć!> :gjfȡ<} ~0QDJycV<Ef5 ΄Ը 1XzwDpC$ dz/hBU{ #B ;Ps'2,8)--PU'>9!qazuƅ:J+64TGcԋ6 O{tj@'А!&QD! 5씥: :! jb2޷,Z> i&ĵ`iOfw?z*Tv-Nl}!}l 7DE1 AyJNsDprF2yC -; LY05˸)tI/cdXbEtVp0%,r5r-AZa!ٟOjRQ:nSr^KV Apu1EcBk:ME(TW:!1XE EUT&&ۋݮ($TZ|KFQ#of52v>fv՘9άxf069y8( @0&IJ `4 SE`ZPbhf,a|,CECU*5@>Y6@dx?mQ`w>`g8ɈQ` oJR1,jG*p X jTO ^)J跢"&ݹ  8gI$p䒋@,"p)Qtō|a1!+K?i< Ipa7EIBu%6D@F+Fg&RKh b&/~b PL !@Y4!rtLJyA&i1 4[$<|"qWp"qGX# ($>.Ha`c^X {rw4!($+c%8~04'!q@b`ޒP1-AĤ0"`ic@Bi(``&!-z7`U ( -1p!! IHBR K'&֙!o)Ţ15 > a  U#D]`0' H@S)HiK1h9"p_ gBx^YL+IN/\~ G'А'KO|_O받K읱u`P¸6n&oӘdV9&2NtkhB)&5<{B07Ax9€fB@r'l` P.C-(Cm8pFi`43PрT @,C&=.&` FK BK+v0ݛ Pa&&$ak (%1't1HCl%!bAiY/f~.`, p gk$ X]dY@7,44tbL!$bXj2R& 7FJI>p 2ifLBJ@y'ϱ'}R{Ҩ$CG0i0Q@NJ9T {t''eHBx;otr! @ !#=4=MTY5Q5QuV]pQjit2m`aKƤW GЅ,>RFٲq" CFچ*48C$&L^5R7X 8\m,#!fjoNJ?Tv~7oCSj`>g2MzK!nZbΓ|0.zA 6rwB1LdWi^CADmUe I Jʜ}ϋqv}15%Tpu3,k|R !"bU""3"&)$ꪌ9IEAAAU5]EVUEg}Uf:[ٓmĬ`I҆bNskY4uVIAiFrOPBI4tXldR%ad>V[u=$/+6hUIǩ(%qQ(RD]$iܤ)R۫rZ,en0nF':rbV#B##$RE@*ȫH@0EA4UEEVU4auavYUYA#D-:]vnG̸ֹȘڄA# a,ґCmxbSIHiN%BFjfTbVI}Z@L|' }1E $Q&J;ܭ55\!3+<'@5(`]K-RY/c.z뜁dcX4<^ꤏTU.Uf$<|!܂5M(LWՍ!F9fDVjFu\ZYdO8H ?|H`U#!324I&@k@5$I4QUQu]WY$4d i+(Nm%Z`)6Tʄ&BxFua(UM+H>TH"h VJ ;Ž7DYQ&XKj/5*D6ȢeI4R2r[J"P;6PԎIEiV!, `.@"%(I {KĐ8_D Ay!O(07t:2%h"vvgqd<WIŤcrĎ;Q 000/ ch(aJ =P43'Nr&xf@R`#zB@9& \ `ԁRh"Q K (_JOhY|ŀ/Ya%B5g !$!ʉ,? Y B nܕӜd yމQ-(Bl: Fz!8\ԐR@S|('}ux TC)% p #Z?_$eKH/[C9<f^ 9hQ@# k!;7$Q:!7伐;m}$4Yp$-) # gPCXS)i Jd15HBp8p8ήy4-Q4,?e%dѢ$nDqtD`d‰103$<$mƹ`2@B~<Q  QOKq 0^!)J[En+ ܖ; o::b;(C-0 KA,&IY,8$1!]dQ06 ̚0`D' hg䏢A18 dy=$ !QI:QdLJ-% I#ߧ0Esq :C@,/GJ T" $ ` cJ6k/DGU pA>p; #jCh,PAtDW'Wx厁T n pF;I$ 3&,UJ^{>O(DdIH J3c0I-da+(l=?gߋڶ~י)'!: |zF7R"H@sXGN1hQ$08pZM(#0 h4Y|   >I+kJɓ0Y@%F Ċ K $|@`=PFw~j(wp;%1B\ A1iΈ.J$eƊ #@+ #t gIg԰7D G vhlY].7-(`pkFdY/$hct+1 LVwO8`w6߳Q)1( Ct|lkE3̐@Bā0|i@(W}ǻwT@)ۚ$E` #I/|:4P]K Wv $: xp$ @+j6㈷a%8!#O놀BMƱ5)L5'UVJFKo@ ( E1:@ZY9̀sDpB3n^ j@ B#MҠ+ޕZ꿰U.tD0dx'$D-,!@ `.!0Q4n[|H@^a`TB 8SEP MgP<s Aπt`Ԇx*J/ ~C$a) "ECpoȡ365Ap?]L} F}p҆J&#*D ϪaMy|K&?p`A4s0cFrK0!?. %BB43Sy'*$)r󾶀j٘;zY3&/438M4;}w6uC6baC AV X,1d9KSԷ!F4I:ja%(J~ֆ:O51Gv=g&!#y,c `;.~ a Wys漠\ >#%sv [t-fjR@)`;`3=/NZּ3.#Ay> 3.Ե9-KM( &TMxI B @zsD ۼ=O=LR9iBv |(nG:AIƣaP s#`LΜ.:w$@fbL@$~s|6Q#$@:Q#_X3W^ST  >a\]E0NQRzIq!f0˯Ybq.L 3[nRԼ%0qG{O!z1HXXPA(U=`o?-~z޼x\{v!D+\ 3_~bؼ8̶-Z2PǹHM mMD{)[ 꼝f(Ѝ; [כo1fE C ;eԜ#7cċ]S%3[!NuԞ\`?7:S^r;QƃLny7]}rt?pĈ,‘6zʂ ʡ+'#1K{/ 3PkAVteP4A!;8{?K'}(QhVFAU{P>YktRmiK (4TntcmڔȕIlbB3k1&  3P2gl!cJ ρ}*X28CvtKe?4ۇL.TE@7+ K蒪M1vX 0/5jTe\; E3ЧT}M_d Azߚ Kc,4`ii5(-$ B> :6" EW aoCE@0-MDa.B:} Rh uT:rˈmF"c9rQk3^ uPy/SQڀFgU4v{2K@A>lnK:z[ X]$ 4QRba4:%D:Q[~ݘQ3zY3tI@N (-`?Epſ[9y  VXRX fa3!vjZB1H2jE!* ׀zl>pa%b 2 |!%(,qzq;דO^z޼-j0H v9kZ+.#Ay>=t#! Zx:-PiDPS*X!f0˯Ybq.L +[nRԼ%0qG{O!z1ARi2^z~[yRBV5Ƹ +NR 1;g5үM3Sr'${KK@KSk!u֬B5L '̡rRê(H"uzt& K`:FM/'q 3ўΣS)]zj#(*Dʲ6?Ц,;H(hESj&!ٕBSS-rB0S|GHMl,-\EZхiȖ0gN o +ІQ5԰hO |tt3ЈECG&OME `B(bgFmXש${/kIC^oo.Bz2bin$(pJA%3Fx^M7x09U!Y>\π *1)+9e3=caEF 8xg-C;2D)&g3.Ӎc–r6^WJ!(j<`9lղy/ݍoSYkA_AP+Ԇޛlb1o[VTB̨47iԖ펡W%%I5ϣ~ 3$!n?$hn))-!UbjSg:!wO芋.J0 `*8/^KDf+iRK Ad/JK$1 B˲(Rp q׿~x @n>R@O!tlMHbI3ȟR W8ތB=-{ 0Һ\bBMJ}: G'*8i3pDc0%$Ė__R"1n`+K2 &$ 1aOp>KhL(`y*pĠ}a Eq?G۲ %X̤ '\L+x ;{  ?`.^حقyw $R{|@"jHnaaB!@@)(?}% !dmŁ)0Hy0(: l>/VKD@ hPK掝|&y%{y Zz^0cUoP,&@>BiD.X A @h/`Phѥܼ0j8/R7 qA&dMN BHo]ZFI0y >P@NHa Ycӹ[ep"41>O1I40/ k xh`a@(Yer$ 'fL~- 왆 !4`i %墝-y!V毨p  ! iB }@A[T/ B=HXI4&M OdB /g¢@'O$1 9;!pH ̄~EB5p "` '3G9&'5x )N. EpLa A@ &_`( ?Az$. epXd3Nq1!'1lBџA0i@1hB A`1!䒐W% T@r`'i004JvFFG=/.Xb7dA1~[pE-ߩ!¨@)Bh vCJ_dMR@q 3J@) !aԠ1`\ i P%;lYX -A` ohzS,`:&C+RPZ%},B&6Sҏ/kAp'aAG^C:Н @P[e` :1ҳE4C}2`M&56&IB:l '% 1& w(1&rP %E%옂H/~|: Wy$ eJi0 VeR#@=Yr`" ?( `O`"+4%@z(ဋP$( JPhK(TG0IDs +PXr$ ""[ X@X> ,5$`X# DĒCr$Z}k! VB )C&K-ZNDAt( uJ!&&#5?7ģA ɢCa]r5:EDQ7KQ0`9UЂ0o&8/栈7 ut-CfDc4BG*gH蛊`&?F!y @ !Wլu4ВӒV8e.Ej*o$#564E֡,(n"<5cil(mM}1[JMl\FM"64"h1B8Nʢ6єi&~CleHiGMMZƌm!lK LQpEtbU$DDDGhAi^uI驴Zj.]-%mLX5+jN v-{#hṴBbd7քTɷ(fLE64"v홫 ,nJp@Eli4,$ee'чjk4W`7UNVbǁ`%R7-KMq zt29 QPR,U8x_kv5/icM'ؘI$c9RDQ-TѢ5).E4̭hqcL`D$3336m4=$Ye[U[eWqu֞qnb/Xq҉#7ͶmtrNFm[1#im)); ԒDhi6& X*lAP.{1reJ7nY$qr@z.H!6jFmC]V-IZc֨ӡ r%[4K8m1ɰkmCKWZR-(*,RFRkQHҤmX-Ы+9&JY(R\B8券V+*ƣێǴ@`c"$D"6LϼD=CLPUTAUZU`iXu*$Wа/MISn%x2 *Ui`Õ$m[dIU:8UYZH6ISd<,\*'6Fz"tf۞ǖm(I[^0 dnԑDRFfcM.W/H2MAQiΰϧ#&VX1gSeu;=$bm\t4mI NU̕rYXDP+AJr(u) Te >U̅J|\3DRW"n6N|&r@bc#3228i4ETEQUU[e\qj0hY-zMGp4zZ\m7ySm֎m:kiUeq3vn97dAAIK;JD'7Ll]E\m>I"!v_ 5\f6hyB-K631XaRȟ #Hhflh7:jVU$WL)Wj'XKfZB”FOa[ĂXR"Vy2KLontYًlek)ʑcHq^Sݼj33m΅ GJ\`c32236i.<=UMfSQvamuz S8-Dڸ]u6#jE2$'JEMʄa R+Iv mjS\,KJZFoKG6m$7mFw.O SՍ4i$+dD*~i/+i8ڥ a%iRиm㮤НѴ2T#T9+jG+iUBO4kT9Q 6少CCS]%.VbQh>ިȒUC`Ryܩ6Xh)Ԛ[ѴbS#CA!8Ӊ3PMUeYiWatQQaGb}y7+V4ϻhkjBGG5TJL#rq; D v* 9RbEH8C! 춺jTR}.ZD kqE%=Ziql@ʪa1))&j֭]f\_:B괛RI0c#h-l}T4B%[/rʱ^KZ:QSquVjFڬ-`%ZN{l󂆦Z&ۋm;4[^!DB9RBnu8! `.DUbbd6sV P;`Կ$" ـ 𘘜4%.i=.ZeH)|yXr4X@v04d#0x  I&`DQE(SwebH؆v$ 0D :&y >p-쟱;@? Gj =Cu' wvPnz4|T/Ю:|M 7\ $wxD ԙ)DCIF`2RbbJ` & M[lvSe8z">oh*L(\>2dB~0< r`bO):( O%sQ씑ɰ(`?Xv8eb= @T_q + Ȉ]Sbq)!vJVha&Jͅc %& h.0{Ak3):C&''` bI%`r {'r/ 1/`P:Ci(Od  M!iH"?4$ԀA^5K & *vIeO`†h$-[t:oWOZx¯6D *.`l@5-Na9!! I=C D$Y@` FbG&7lV?lȾ DXG lk2]SBoaH #! svApľW ~BK2(0 0 'ٍ{&0&ir$j0`fV j*@0hTF dD4^&L?(D  p᡻)WX-B0_=E E%9TFpdXQ4 RLX@P>H8ȄB94kĤ0_PO $ȗI /<.u$4Om&眤59&^յiNPLzZuܡd,a('O6 hBpT&!Sl#h _Ud44 o-~@n##C p *bx, {^=AuL&Mh` J*!"2>!$"b B@K!NJ=6X ƞ].z'Xa>1P6@Fb N!*#CA&23 sy9?m` FG * 48<#fdM͢y11蛆qهc&Vq71PZ)_o ^>tn}Bi1I!%_ED֨RJ('z]h) C @nfw(vLOCC(& O-9ތQ*!bQ04 bt78j8]f +}_AF'C&FV8j@`Mjv|`*0OU:I*: Fs6]7$4 w^Q>/萣GΊ?il:GvIx2J%m$AG~? Tiz n^4vs6'1W ! `.!,qQm; a*QQIs ݰ* SA0hE0aN. RER^P% d0 T %#-g Q`B0`/W j{|v€jI_!#*Z,ͨ:9R4IR9w'܎'U q̓{QJퟧ.^(NϘQ»̒;ꮧل>8"&膬> w5:!%%?a3VBp~~?9mB1YAASQk98TK)(ewz3T XaeDp 3 aD$B1$ĀIr^sZz~:%!)shQ2YОԤ8/q/:U'_'>BK˵q̚q2tAAii3[.pp8)}؉.'eEW0D':gwE LO҇Jt}E  LZf++TTP *w&GD 3%%L-dX5<˅u¾ cl})PěIV!RFch [2!;4az/ds3C8rL#Vmj &; ?&xI43p@@HRysPpm|H3l l~Q,ae]Y3 6(CJ/u:ʸ.dTILX`ηq'01rx?L?L3 V V``0!J,0Yv|V9G,XJPrmMWLMBȥg, y˳O$ eZ"r 3YAi,0a,ٗ@N#Q[H!#:Ȓ{+PI 1xzfX$҉Ql!Z>MeQ,L 2cZR0 $QO"n%@tfrQEtF&wY45k ƶElH:,crKHxH #eRl; f'g䊢0-YhjF;baD24gI>/T4AgI!M0 K% GȏGG$vb eNrS -Q$k'qG PrdLzעI-:+ O&[a1tMEvS *R(n,g_4S #PFFE$D*8u/C7ڇr荦C&xͿG8uQ$@E/POq AiѢFj!vC FBagH L1x)ZZ ;@i\Ua}hK>AS%qgGDM~dt HWV:榢9Д9\F=2BX[[Q`6ʺ$ aE1 5E8Giqtl2!G `.!JA"K ]@B`ؠ̐2m%&(` $j$2+TVEQ!0(?E.7La@´'j$HmlW @|*]4U\L$" Bk w-@;Kғ %!HTC9GT DfJ`-B'Af$WDqBPX ~\MaԄs9Q"8 ɓaX>2M>ԋÿL6:=kb={4 \C2& R 5IA8HDFLA, a `LL@̱BׅSk2|C`JHt#l.},V ;A5".w\亶H&HK2h zpDJaX.7rEJh>( JK ɵE3ϊ^ C K6.บ֫z$}1 )۟_Љ=`Con7p}H 2ញ%ŕ]PI\>h`,TJ2Q@a ϝOB3I6BG%aI"C(&Bw0`rODQ@U$8,]\=8 jbæDN||`wJKyUa}̲n=B @'R MQd.堶 p1 k贔40"E4E%|ƣ|.uQ| ό>$Q ђh& p 4Bo[t}Q |GKxxd녁Lz\8G`L8jCV 30̃Hve"[AΪi Kxx$B& +JDpZ*34 \TP!ժUi 6-`~ae-ypC'_[ A30Xjp. kad%U Ff{j$pH:4)l% cZAErB?`EE+f[$1x?LC V_S%0 #f 0l x}[SM)a9Avi#,`㳏ܟϦzL1V92 CYCIa838?@B3iMZ/!R(nkVM ͦff/-G>ӝHgZl BTs,ud>+ [mf #00?[JC`^v#ꄌlYD@|f AdBr S8dR P RiiUni = NHd" )~T 0 (yBuH4X CU_SuWNEYH¨P1\TB`^BYq$5Ы2]kw YLurbBDԄB{ %J]˪#h*a1,!! CIt'BC K)~2_LHl3{'qw]!{ `.1qgev1`?6ϸj\ޅg$l=|^ޱǡ-]H5C@5RQVRuE5*z cčFMK(X %rBJEj,($LF 7䴌|nM#AaH%tꑄ-,DAPzC^^hBu@dDTkZ^)Ulaw-PcDʆvl|mg|:Mi`}:p B:p d %hnIYILK@CTBbbB]A2p8G;P K"j@?'YoH`ݏ b%*b=:B4tC'1/10@ 4i+tߨ"i58Ps2p\EU h ?n@0 hoP̸^%LBSp=E@ 0 D4 8 '0)atu$6&r`i0 gT*p*p+ i,T!QYB055 ii( `pѷ7"@\@id!rJܥr(&g@qQ Hh&M2 *pɀ 5B`,*,w `0 n:)8+&o@Sl(EG{tC /|{0 `S ƣ/f/}|9eM)!š'D~rCKIhٹ^|bJȓٗze,9E HP g^dhG*pׂ ba@: 5 Ha |j$R0bh@ S !O@& `$5qH,Y,)/Ҟ7H-s iJIR?М@$H^IU]q<07JNY_"C'Q0䒋I p5⒒B#Xl-  iH < AI, \HD (K%+حp (C&`J{P0fO U6!+  )Fq}ʾ`3!Y_ϝ^4P WOC/7"1i0@A[N*O@XMvd!2?_ZÈ70_K/-|{n͸i]x߇T@uۤjK\XRiD>R0Vw9ŏDpM`@0adnZ0+hF0Q)!qOt0%x D̐̔D0(@HEOTO u T6x -fR &#BCrH[1TAF B_ےu#'ۀ.ÁU œ~ t ǡ+s+/a IA@`=A A0Bc DV!٭ `.!hPh8g&+ hKGx`~ ;bGP9R0߀2BKT艌 0-%wݽjR[Ca5h}< !pe[IL`'f2)(x|hZΞ-(JX%L ]"TFNڕ *ݤ5<NK aҐ;_EDA4)hĕ2ި `~('h.HmXi""h, 3CIi`<Ĵ@5`Ը0! tCxH}i70C@xD# 쳴VoflY^7ƉO!vngHVO92y8㺯M&hpē;" MZs\L&hopڂo nF|5rсTY7t~.>k@|*? P0B&C)$0xQ=ǡ +ԄQ$"TF `(]'ɃUgה[ c@bf,l4k`xO!bOgŐhh @nfBF%?<7h L,{$4SŖA<>p3K">Od]:(d tufRT@`O *@?m #M$`%,^A,W&dWI`1jJ@a.!#DɊH, T B&I5V s%Q @P$(`A 14o. N@ lw%JE =62btG's]e²'_j_Uh=YHfh1xϽNdb3;@ `$/ ҝ4@: ,‹B V;~_4 pLGNC}43B- /0y n  p+ǶY}T ؆Hx`dK+!&P?mMQw=O(7 KD0!VjL22x&6-E]9DϧGP}LS nWǦ& (ZLO?EP,@V-;vL-@`@ˆ#L&4.o=ȘMH,3ֈMJ1%Q䑯ZynM> G-;:WM=Y{ r?yp:PqE~ٵ81g^{ly|pq= *, ]B{b.k n ᄍz ft>.WDp,yDBK1cXۻ F#PO8@i@ ɘގJ/P8!}g<uo鹿v@h̚lIblKYN_YϏHoaY)'>:x 4w2㨚Si-mDBI% ( 'VOG0d'd @v 5a/ 47$!f4\RqHQ&!4H[bidi4a' %1$:i5lQd0怋0)K)S5#D-ŔݹN_)ʾ>@q>ﳞg3;-6srfP\V> _2Cot'wcI .9OFFmy:s%~'H8G[uB?쳚<-x z*2h?PaC95 & ӿݟ5 qGuIaY#<>5q L3[IBCxzo! @ !o R-4V\ `S#332&mE5]mU5QEYe2z&#b2%A-VܨAߜ(ЛћQjѧdS  Vy6֭b屔ؙSR[I ƣuHӬCEaXym$W|Jah a26dҭd(&ҵGqET&VsYrf1'PhM$v&NE'16t֟bQ!m8sZpƲd¡+IQIQ*Զӊbڕ7XBQJQN и6[xg0 ڻbT#23"6m".IDXIUYaUeQDeUYweWeq95Q%MDI-t2*QO$"UqJHջ1Lf(̾MNJõi3ƍW6UPj=70)imY4$nDL6Q ةkrcUo-MЍrmMf"[Di`a5*ͶZ6 9i9ࢭ#T\ǯ) HleJYE47.Da18#HӰ@Q ږچjm}]qVd|:֠qq6^T`S$33#&M"fTMeV]av]ŚUVqUazWrmfTQ* H[3hL"4$dj7 bRn6mf0IJ7kI0MEjSf$ydBk"8*(EդIy*M1;E4N--2,i]6TI. N5m"?Z1]PЩBYPD7R֝daFJ$6BBۈzKNqps$"he%Ȕ#c+nm5j e9nmmmmզbT3$3"%q*CLM%m^}u߆`dzgb2Ї0a,l1NTLJlK?QXFW0 k29bTn8Ŵ1K2 C!v]|űyVљo.fMѓ` C! fϷ$6xu  dBhq-$A'(e)QT(<ёXV JP@ S.Knf$n076oH:a] je?It\9)J [J:bј Cd;! Fo.ʆ&Ffݢ\Am'%(/x;] @/V$gNy 5jWC@T-}EIM^QpNd1Z̀M ;&"R9 h:Q0 ;E1ZCݧ$C)Hg5mL$%uI.Bǘ٢]$< %,c(,- Hi1_Z6 Y5c1m4O#'PfډHٔI@-c糪s+znfť\ٰCl~5XQ_ IH/cwCdmو׶iɢjDS&:5E'gGWg?qLpNjAt] P*@G-lnwruXIYS,D(q{]kCxz.4i@V| V X,1d9KSԷ!F4ICxz0.=8Hd Q4L-TwLC`4Dҿay 13Pb8ŤF9fziB1~,0C.~ a Wys弳p.0ip '0K8plbٚ X`LKӖ=xC.#Ay>1NU@cjHFmKJHemqضט3 pc&@ C!v]|űyޡeu'&dTlȂnIMX׃x#EtgtHJE!BK'OY.B!NzSmBNZJvdQ6 C!YM'' GE Fˢ@yKg bz>M$EMК$ѕI%^xJDBFır-bB+H` M H{4dO4+J ` R7~04j1e'%iD20XgO/lvn3./(Zq3ay$~aBTѠ0Hy?dVPa+ A7$bJ7Fvd<=:^P47NQA% /N<㵔 @v*jz|P3JZSrN)H#? NJG)JU!DR0XirEPi Jvi DY)CɠPJx^&B~-=ܝu)=ڛ ,(R`j:wOOXc ;v0Cv^(Y Q0,4J@lXbzc]`CZS'P?/ҒX<|ک!7` ~6G۰[;)o/KAf&x5:-K:E7! @n̒_5˼tZ7迤*MNI0q`hZ@`ԟl}@w@*I% 7'u:?o}1-H r]}cޤ%A{"ΩҔ!&{ `.)HRo7_} dy_uỎ45rQrEF;';",R4XaC)JJR")H",%)JDY)rr;Ҁ(zI,:P HD"w`XI%=B3na΍Ѻ~8|(o6T+*ZRbER')JDB4XiC)JJR")H(RO)JD\))\)9ܮ&Z{mS{`W X ).@6FϽ`' &K>k-FV[ 0dήu G=W,b@s@5%'}+hsq{! :JRwEO)JUf MH+".RJR")H;)JJR")HZRu\)rER+"._Sj4րD ,p_sT=0 (j]^XlsP3m_6?V0Ϯ33^o{-=JR.# ǹJRS-*jRJ#RJR"3)JJR") v)JS;')JJ.RR7/5X|T.0xRC͐}*(RO@vQ,ǟZvLvbQd A!uW_bު㐿g>$6{LGV6{6爹Jvξ.XF rJDR;%cJWER",R3)JJCKER)JD\)(JRqRR"._O/o_PBܠ0\NS{/BJ:sɀ ,%p}xeqr] \zך G6K^~3ʀhS-H{xXΥ^)J|R)JDԅ-)JR")H+)J hSRR")H')JJW/^M4y @dRQ|07UԐ+{)DjD%(GpHK/\- (ޮ 4z._Tz }˰ͰRSY!NfX4R4bxR]r{15r=%7 #!J蹡S딥)7$)J<ݥ)HxX)I<\!)فTB'=Đa#J#{I)ub0!ۧ8P__!G|'vA#j{6mb4G|7̼w}4 H]{p? @=I |.. /F0PFF 'ޒw+B8zI)%vtb^gzJ_V Qd OL;-i\zBN&wq+R$2a\$a>(ĜZ8몑F?h '),c- ;!qI4)=.;!sJ}pw;k +!9 `.ii²\e !;vMy`UZD#ؤ/rЎ~\퉄B $.8UI^ +i,V~FXB0㤢d.>R:526;lk($17 =:nƛsJ+rBHxKd9Ў~޴0@h)ξ!t:>uMz,-A;v@b ^`*_~yd=*A0Ո *""a+gPb:|d:TxԶ2RjZb}8*GHOlR R _?2Kp8݀sƬEKHA/:;0 NPHH GRs️aWGJ}L s9|'7d V Ee~" !Wf,ai %̔;oZ_H(M!^Ve W>:'Q% MGHf/îx N7];~J}7ƕ' X/+R7n}M+dq WD2xkQbph-v}㐁_mHp xg12?)`ZBMQ/')zr63h|ņx0!4(J@RjT$(>"7慚 +)I*oR]Rm'(](V`=]9Xn膆0b XR.( iHh(|Y4{U Xop F(_]9~@ `%;+.F%#txu(Fc4I ezaפC>1 >qkOr^_Ρۄ:G /ڠlbnE -"U3EuM P41/L}x؄Xb1eKO/׶R=ɩl?$_yw&uOA{;`˒Дsм ߗbM0uo\M-GqwUޤ`k`ް]q Y&!~5`}h}P3ؼԖM!~Zptq]dSm,0E_E4?̜7nA큁d<)5zRh 3-;CT5.o$IF+u^P&sEJIސ=㡍u"u4 BZDuĔMրؚ>@ P0^ $o{;1/xï=' 7tPaE`06}d Rs|*ZPBOBw. &r|yҜR:y=}JJO;۠7; nkQ?ǽ:.CWTh{ r&݉\)Z% &% T`&n ᡜE #=d {dv&u]ϯ8/VY _{$do%3{^2&718nz)7J{@Ԏ]%o8\o Bc.7uΥWeMQI 6Gر0h6b~m>^d}MPZyꗽ:ww83A|wE`_43F43ZGM4hft1ڃ ) rjnq- *>ʨPi|*8gB8SDϴ!&$0q}"7Z\~ +&qC0nn}dN!z`ix1ΓacujHj68:mjNJT! Md i y%hq㣥\Di$IÈ֋;=M1NkXMf(pVKB)tD%d+ZD-62IMi^SzU]MP]_@b SҒrQO;4N#̅8pFն25hҫű$IoH8`s$C$DEU5Q5aDUee^i_n!CmecG$M[BЂ ;E.kf)[!K6d)Klo9V6QhJVU>l"ɪ.e-܋c cN?>,N5[l9̿k[ jC'ʷH(%j mcA)7O9ugn %i Ԛ/T)-6'Y%P䤃T d+jePB5tk]V^tiORXS%+kk ujpbs333DDL:KI5YeXivuz("~Xff@"D$u LCQ#bTQȬFv rd-DC TTUVSn6n*G*@d. (J  ŧ+٫ƥ/c'Jzdɖ2Jz{!Ξ"]w]O+\u1 ŸҸfr^fw?(~LH(Ԕ'UޒRV.^ {ضo /%h}k !SƧ #X۲{ډviy=\ϕO}0]:g+mF al=燪:Cu7\^֏tqY:ۉؚ-/L;) ;Ȥ5Z@bkѵ]jr} uot=0 IC&KϦQ0e*06k4Lh@ְ HiKA(<Rh- 7.{a>(5na``,wY+x(3?g6Q?LHC~;욟7>Jshd9w?}f n;/T|F4%w$ݾ;n:mҔ@")} a1|לA[; t>_5Bp~1籷!ͭ+~Y%:V/7uKѻ {㫞FeգO]n{?jVoÚoEuB_SZk\R?ká!׹(09})~z|o@g ~ĮמZ6^<M1U ߬y _) (<m%s:%]n)3o=na՝yΪ\1(IAWHyNLLp6YE}R~eퟰIhɲGh Kxyuτ^( Yc r%nBi&Kxzſ1 0h9-l(-(N=g&!#y,c `C.~ a Wys,1#\h @J&@(DBܑ!)JC@HJ@.CA fX4$2/5 F@)0-k^{C.#Ay>pMOOnY$ɗCXA8u U-5 `ba_ט3 q.L C!Zٞc(iaOjV1R1&bC!Egxhihr~ml4'C!J^>fܖ;m&zJm$rb{;j1F>z5$b˜:D W;IdmPae|hCx0CN is!Pp \ n29M BLWaCvA@tP֑eA$5JCB٫PIQ9:+!ԬC<hCiCU|=b]!}Mzű[ aWW2{{D](Cxyuτ^( Yc r%nBi&Cxzſ1 O 81ĎɜkYXxi柋$q1C.~ a Wys, L 0 b\f%^5?e1邘&Q}P`4K zrֵC.#Ay>pMOO 44Xtb2eUfhd2qf-=yS0d C!Zٞc(iaOjV1<\04u"R`aEOcgA~bZ_971 Chfe'F{B!Isה*EPOF4+OA(㭨Bpᨗ%o#fm"o"fX Khȷc"$VETȯBpWy`e.[@y(#j]@yq-1%?I! ;! F0-(lb.6. j Oe22W)=[fD4YeCCr3p  |'1vNzz'zzA0-&9%ԡH %Đ˒CBM'?AVmdž?Jb% !xd@ B9;MPGC exn5+F0 5~QђRHF{,,Tx={ c] yET2HTV5DAx C $5ij]f徑|Lqi@K 'd% e<C!J M%H>d$ЇbbZ*PMYw$Ed7hE% lEn6 seHA >Ah䱥ngc_ \3eШ A)%n &pt%B'pEH3XfCvX Qh0nJa@Wt!F}HC!$L+L> _zѾw2U{ 9ˎ+PUTJ:q:3!{ `.\\PAHOa4Hv/#2;ց=m@j6 Pv~+LVMlijPxM,0? aEΔ,*8ڶڑ)02pȈxPD3B:zY\ 9H>J@j@yTL^;_$sU t&8*qC5]@3~ z #8rZ@_ ))71[x(%r0[c0ŢH`H !;E5+ *qC!A3&0J=s@q'Δ[ -^8ָOd/0 4f `f2uͪf}˃P " <"qEɈ`i3J? I I_ϻ|dwC&!/LJ,lԔށ&7vbPNQ8+0` rHL2l944/"J@x렣(J[mX'%'\p@>` |@@N2H-,|ĔIh9"qB(Sw} 7 Mu#M7!L`Sz[b|8{n#VJ3$f O*B`&4B)(A?Iv^m:' ss\I|$BHaeW}@:&%(/lv|_ϑM#> _@PCŤĄ#p?Y40'4"p0&DĆ4̀<` Q(wd/m!&2qD܄28_ /'wU LB 3LMŕ+@:@`k0jw d& b{BP C|.>`@CC 7à S3,krG> &E (52\L%n>SqP "p$@(i %&=D*`JFv4hL*(nF|GP I@g MO;1 D^/& HH*ӃptB(TfA3P 6&071b֏BJ "t̝;WwC@t%#2x| ; L@tM@ Q&Pf<%O30rF' @,GWKGCT p`@kJ I|MH Hs nS E.IHyCQk@U2F0KZ*߆@RtMOe0"Q^8~Zr6/@4t0* !B5@Ae$Ā S( >a`*Xb%\=sF1D !dpӱ?RH`P1,M/ > +J{rzv}\6 ;0*yKQ<ǀ ZMD&uA/3XDɞ8h/?Z{loE L8`'@t>ѡ!(i 5 GPqd7 H k HyΦakpjC:G 2RyK OI+qD D07k`N<0b7pN"!d΂_P";O9OP$BA( XbvN #}R2VX1LXh1iY9, ,|nJ&r-hBzzH>+!:q2nSq?`Q.+ny ))@a$ - ̰ds%<0p&~7O"pZ-+.x"K> '{ A _*/Rzq!Cھ *s 4KM$’POEɘVd5'>\Q! `.!4D$r2I|͢`!#X``L" F*Xgri|@acQIB-II%2tB&엨t|ľc8\L^Q&I bi_C3 e)13rV\ ?P@dtwu4Hd nE01i ) GL|!#BF bNޒvLRӬ?SDh((7/`*t%Č +^<$JR#>qX \H.F4)}*ꉫQBpFO,r.$.ω: ,t0%24HZ2DU0 . (4p/ ?W¿yޥ-z0 dDrPjW ^%nu Ajfk*`́lsR6϶ʫ% 벐~pFd}A@ 68a"}  IfJR)# ].G +I@:, AR :QTs#=Xx*wAtdu]DŽ607TDDQ&!;.j @M:nD0D2֟ %'R1x0Ų $,iiH.PF eY@:70i!y(#A0) >n.]HiA)KNFٟ9n/J)#:x*0hnpOp*E&> L ~dT  Dp g$ZhMej5֏5%# r"+JEN]H}*|2%<%jMvK2*wT` @cLbŸ`(!vaM$i&$E"jz/Hnx(c \tC&PHZ%!]@1 IiGwz e 8L{ic#qB4IvH5: T =ZUD,$#@:G3.kTEpP4⃨[0шCHy, 5P͐1N C&E \2Cx\7F駙+ PAX,`0;5-NKR܄!M$Cy/{Ln.-w؆p 8)0O +ziB1~,0C.~ a WysɞC?ˀx*t|K;N( l1z [3P`4K zrֵC.#Ay>C2rdPF޵] ] DS&~<.&wg0X03,cL˯5ׁ};.Ե9-KN< ɛ\6xIj1Ĥ.I@u랄qĈ%8f_^*fa-Krcb"C;.|#@5d< !X% xpW ݂ 3ǎв )~|G9uDa" 88T}#So+Jv5?U`]@C Xp_(a ;׎q;.1{ Ȑ " yq00:[1h!uf'>t W>\] HؗϚsôbA@  _ï1F`XF/}`;W^ST %8Jc8V(} F8GӉ+O~ԛd ,+%p/~EWMSCxz@*N.%#5+ V 3 aCR-B$@Cy/{ SîZ<hiZgO@a+.;uYy<`#z^MO}1h`aB1ej_x;.Ե9-KO EhRI8'3Ӣr&@"C&'RRzշ*P #TC' #%nSbV$XH} ;.|#@5d< !X% xpW xE gЙ%QE;~7Cy &$J$$tiJ0:QTA(;nCVcZV7 >YQܲ7##`{ p9h` wBVpñk-x;.1vkBj`lMZ -I$LfG(&Z萁f |NLJLX 00m0 @k `of/u0F,#}`;W^ST %8J0[F%% &K1&%ab.Kf%C!9ҹ䧮zBpٞ)GCN!s{ 0)d ;[n-:0 & $&&@@%O;+(7hNƙgo&[PރoP4 rh,9'#^Et$1" "1: GaIWދːJV |B  i}ps#C*z^ k>1[\ўX%.o[PXw\I:`*&(k/tcRl|Y%?hHfˤŔR)8X0j0"$@x'LB"&Rj 1dԒ|celLP7'mMp!fY֌t#VSXC"`djil"Ҝ+> Z&M44 7^65`"#( `/g+zڋp@^ *M2nɹˋ߇Tn*i`l?5=g`hM fA`5j2{1Iꋃ0?o۶Ɛ]fD#;X40F D{" F+H2*H( Y?Nd䆖z|TDJI%@ ` 7$iJJ_sy cY717ai *5Z6d : pǵE $v[@G.zρN&|`A߸uɬ%!2'qA8@ԓ *p [Bnj,!-$( ]8"qYsC `gE* B,6X eS8y?j:Rf8.ly;`dg:CFb3al,`)mT8G"]Ps"qX8"QltiIǠBBO>褠g !^>-)u?Dd 0hiEp @98~`WG.%3^H_$1 )h dВN?"qk&L䄼pqH`ٷʀ@b0*D[Ql" dqi&RLJ€14'du#Gk+ /-!WPd>_DvdTɬ//97K-8oWD F"q"%Iv zhwA4 ;I38ue2ya,N*_[D #{΀ # fR)6j X LL$-vdX1ߓF(!do})N,4ӐRF; 23/"ӱ+JP'\R?q-! F:&&% $@r+9/kbz 5ЌQ[е1 K#(qE!dD7l!CYaNM wM Rns@h´m^]Q3TL0ɅK9xD2 Y'[DЄQch-$$;NGᡝ'eѻsxH/$1x=@B A_ Å뉥ᏆXUU5'kɡ15b@ +* R Hu /yZ !@4$̢hG 6` Rf 7@W@2uƀ |+@&! 9`TL2ww`F8H.&ce 1.ZB`@jV rm! p>LLC !Y‘#!8KXBr !#PV`€7䂎L$=f-:ZO@a7c2 M(C$$3/K`托 /Ji\7fm+`!KRO:NeM +h ~7RyI\+.&8DQ14H RYCJH"h( i*MYe7J#Ph@; Z.~p@c /A 9 `;J^ch 3&\, i u,;t ?Ō*ua@x&~x9pG !nBdDHl5039(X&"ᡜ),(h&E(@;e%+`@U^ MH` 0oA0 s@1KPR|y`8؄RqmW3` M2erif<JH"yO?=0 bC,t5JpD-"|vY b0d1SAP ?>^0&@r'> ɣ |J*`԰crRXJ% h @ ; R_%28!@-ED#fxX`UM(ciAbI0FA  3fv2ٳYòM@<ť?#o2,M&Ԓa@gqz!2-E^|Xa*ȄF|PoT9s/>^V5~hԌ+{0O M"X ד}:ƃJCJ0719tTSLZ 1E?}% j#\&zxnhy"ªeHXV"UTMLab< mp:w! `.!$*mv6]b 58K$iDIR9{*F>l$`b "bAbb$ :&i ()>j-9cfL;cSlvav, 0Ҙng1]h (37QbWx{qK P€\3 TMJWd(_|-0&A 4SVD3`V "{o<x(̽40  jYo!}CuMEioS&MjRI2u\:|?t:e}i}.)CNsc4%Ɍr:\8B:|*Q v9vצh+l%~N&R|m%8tz*>AXޟ,晐K)z8Σ!!t @:C̙#(^UX75*zys o-8NN2!B os(蘂ʝ:b7s TL&))t60ڢ#Lv2 %E(aXa3.=g)f%Ļ2 ;[n-9}O$(Ť .!"*T踦J!Hv1Cr7SREtyPy/2C"[}L?a:kD ܮ]GWdfn K$7R >x A P&IA |J [CH&d؟KYRtG)$,!0I O yߎAx,p@Dɾ2$)Co#݃-Z4$iLB Jr0uV#zX$4d=\1I&,CN4?Ʈ:%DX d*k@*))4NEZk= Ba3 2᎔n*T_#wN i"@@`EthP}oDh?z\ rFfЈhh|um't ClF*>g .6 x""Y`Z}4!B= COX2^s4r]OM[HLZ@ W'P4&UQ WPZ`hh./ϥ4%,D%U&l>|>nZ3]4I3}0TK*z^ 'lL5.Cy P-L .B=] "ӷ47mBaIslT4#0f!LuSϠ% N%^(& T P'5a_u,W R Fƍ҄wrߠ:] {L1RgAW̺9MO/}M$EPK!6aHN'MWDNshJ&5eoe;y  /].`j@-&iέ(`f ό^,`1*ld%ۺ~xG&t-z{y27G|:wt^>It_WAS9f@Wp8 #mjyYTOw>:Jѫ%2v4IP3"x- YqdC(9R܂FuSIJMBJ}f`~6V* Q|NqK}~? ^QW90ဏ%=Q7w?~,o^M2Q` Yq;fh=8`ZmK]|l n}xJJdGZfǮPʬ,X `^0j,ˍ3'_";L^C]߃ڜ4 tlOxPC1t&3nZm0iiD@p XH*R Z`1XbqCC%0r O{.\'za `"&OOf4a*&`"bUت( d#|4 eudMl0Z?/!X˦ZC'_[ A31M6&֞oQ 0X s`.U0a Y/ï800^C VWS)0 p(B02:pi,Xi &+PDɅJ%rQQ0Ϗe↼(uqE*Gc4R.E i. J- T0'<2u鞼 fU] CYS&ӛqg&u 22 %}!+. B"EU*fcm^ @B[˚z,=EWTR[GRvN@X@L!} vF[TR(ntu(X  Ƴ$‘d!9 @ C3I30p< Cmb7;~޺ 4[uQ iUP6mME_n3ꐜn BF理-Z^d}.  C$Ѧke X8scfiixSIʒ>ke(bT;uAhfC+9(٬cA7Aɮ6zlbd$DT"4mX'A6SatIUaVUaEaYa]iI֯#ŶH蜆|DܚIIC"pw}]t4"Fz*oPYCW+=0f S)VH5S*cV᰸C8Se8$!ԝT˕= M8En;G&MQM+y=y3Fpbt#2B2&҉"+X@DUUYZaA5'˟UFRPKbj#:528&yㅉ&䕡(JVRvtŭܠdAYјchTľNdJq>W ^nzio4R=%B-d9BKHsKuA±)۫M #̏$IFG;RXDE|ԤڸqcfpwA$\¡R+U0bTQ?p8`d$BR7" '@9imu]iZy߆⃧G(In$!O$ 4Nɇ-vPRLi#hda(ثƩEPPAJ]EnKWu3.VW-3m&ĉ$Q ssͺ fIQ܌Ti`:?۲'Y*VɊjUU޸ۢzj6)^r(9^ۃebfq')YFh/ QOYɨB$$ 6̓YU++]hMtT;o%Yx1[)2tbd4CB7#dSP@9ivm]qؤHaL Z etEAd!:%fytZޅ*@i+mA \4OQ~!yɐ-fbqYqI>e1r*DP R TºuU74jಛnS0~̥@ C@i2Kn!V HN;X|{q GƕI\$h]M&BZ6$^Wzjo`JiS:C%W6ӅAF >Zɏ_кIk@&ɈIge>st낐b^xJz؆sɩLo{Nl筯Дar"ZO䟦C(rxt k)BB= JA. G  $ B $#iUݓK9*q`IRxBHI*B \̄I'44}ၜjp &XL뉠:ITDB *qO@0Y3D0 !+d ?Ɏ7LSM Fb:)J~6to$0u$M &jpL ]5 GΑg PYlA/ˊ\fbX]&a9نL*qM8 G$i]BP)-mCD J#DBtp ? % @B/!?==-(7&M̜J.YHVXw {φ.(Q! B ("pi #we$bw$gz%&%JLIGKy(%qn^h00Ԟˆ"RB -X' x "pQ&C~SjRr0^Ÿ LŔ]ٮ@z|# CW7 I  eI8c ]F)$s H"P&\ZAJءA 0M}5 X%oK @`c%E,7@Iˤj  **|bxpbC!P0M( $$"vN€h!}()] ,#h BR ``ɀSRl/DrXՃ$` @iq]@L`wt$M!mͶC ӟ/n} ZqI68005",y 7@P3jd"`ܘ!L&`jzD04Ld c B%L_80 &9D j@O(   (5A|4&f1p`, Qcd@A Ia"$@1DP& g88@ hp$cYƟ$@1cNĀ@1@ Ӏ@1N+ *{~GM@Y'4w',o"Hܕ`4 ߨы!! @hXe90UV =MBF9$Ud>3C,%HK !F{ `.!i($`$ۦ J@RC_ ɀ8v< >`x%. niHvILM83[Ixfla7RҨ7lM( Et>o^B䴮A)~[dBb9=!|LQ%Jדi),z|(g?MR@Y@Mh#nH`&"@&.A@ w {!s At?00Habf$!lSdJ I}@|OZ mHXPh4Ie!tM&?&W,@  +nDb2(Ha䬤8` 屌wHB46l:3}}) X ;%6-ي) Rք7/ѳj#D6Aa@r@ŀ3[N΂ fĤ@)&0 [eWi7zHD@& + W 9F *tuǎƤf: 3ȟɥ01z 90μ9ATE:hs LX3aXtt 3*Tz.&D$.}[%%orSg{Dtf4aO &I ؚL"\kL V] D "&nW%xi]yV(Rjjƙu*tZ$y5 $2}(ŠbV,B(UGAPT7> CH@Joj&[k^^PMJAEnq,~ ?Aep[5񘲿EvV_HҔ~)wC(~)3޳ >w=[g^i0N+@ΏOa'$ҒQ _@GKuQ  XV(44~ @߄D|z>30Peba J9:oq3!%/}XLAioRRX)$@l[8zB`1|ܨ dwYĽSG.2vJ]<0XSt0 m00;&A!_y9?@L& yn0PB\AC 8jFY)0A;,}I[h;( sa^E)뢨\b26 eܸМ|iIR5L!^ 9' lMf|RP_wc}xn/'ٖyF<a)IA=r?RùV &dUE7H%$% ] PCg* m(8CM]K1Cx|Ȓ[1pWB&0{ o`E`- fÙAԲKQg!!%@Cx}N#e_e({ o6\zfr` 8(4_Œ8C. po\cX!6筴-/4/jyAB!m<&jC`1q ]罶C. q|0FN<|8xAA4CHN h&ICCbbɺMw`$$ fd&iOYL;O;. wwLE(HWԓk0|Mܟ&T2njN#2Od (Vi,>y|aX- `(AkP*w&G};. p0_ d: !j{ k| 8[s&o`9nbw /Q]cDɒii0!Y `.!kO Ԁ2WY[ 0[فhhBK 8ص94;._o B30aO_M`&U3Lاc⩬@ bW69NK Y$" +^usb_X~;VY`pFQpPCIg (6 ; @fWBo.-Cy.qpMybl J^ՃzC ;"=52G`,P+_Naph:mC2}'Q4 CpS|-ĔM`nKeg5硝JbVNXF@j=Q?wH4lMc`.MٱG ГW('V'[OCu AA5Pع/^|T#I4M0]p`hhj {BHECb:XmpAVҭ_GP9LGcB:,HDO ;!!Nbld&4] KUHFU 7nԿ! /CCAd%)yQi_ӭ&z' .2C7\B j* $ xL1DpQF/o`]K8(,[`;*=-ec[c+E4^G4F=ijkEA (T=\df0;-鷞˧\DA{']zZ@'ty!@D;XީQx:ar(*UCvyҧ{XuZ;xx^)%`?sX/2 0Z`0 4fQjr,ꦒ;xs]տংȺ#M5Y6V* Q|Nq;}~? ^Qz*+FNA2ZQ@nbiy6 FR@)e@ d]kͶ;]|l n}xP? !9dRvm~qj2.UĢE)O&eм,Iؙ*̾a5Feƙd ;]߃ڜ4 tvh\c-#x0ľ6&r*okAY0oNډ!jJXi&=\XH*R Z`1XbqC;%0r O{.\'p%0(I?ϮN$0C @ ;!G6YnDbpI;}h`T5Q]TuZ ( %kJtR^mND a0a L7Q/lOh@R袁`BɁ< ʃPND0 SGQ⭣}/  PC!ŭC:6EGʲY PB38\ a0W$~l {A֣'/xn@cD 0V C_00~%!cJ-[7T0${W/{))#v0lE NIȎ c`Qh ; `[2Ϙ(贒 C;-WDEV* xP: B߮ JK%qa> :ᾊX }L`Kb@*@0(uw J4ZH/(1=%!2 ܢZ9{O8ɾj(W^VVk1Rşzz. @a KĴj12p @3!"pIYpՌH](0V/A2v9cp)!ґt&.nP5y@zIs~:Htt`(@r1*p0CJ;x?9_C_ >!w+ۈaaKɜGRe*pOv`8hPa74:t(B 0,3RJx rs({07BK`ށꉤ0* %3Dl6/;DP`%$l P @@0`IESg9 x9*q$8' =H|l P`1YA ԧ'j8HuM(:7|&>n 6Vl>hVPZR{Dz$YX #QU *p"p(X0E`޵"!@C(K@=(*RyKSM'$P_Hiḣ8*࠙$5{n:$E퉻'-J7W?F~vX _xa5م= -LH@&,5$Ќ|4`Q!|8-0Ƌ3rP2q+ĿW"pB ;0 4_Q < p н-G y@0b n` Ytv؁zᄢEvW|0~۫=xEvZ@5G `0ݙ;oγ@bPYɇ Sm7k:! @ !jCCQiȹ=32*SAsX[pQw1z SJ.'jOL0F y-%NO}qjf$mv>P(*h)cZ#:8VyE^+]WwvQ "+ٚb4]沧4ۃ-odSGa̠FјX7=Ɇ6E>ȉL2SEN'M4}iTbs#43'%CO<ӌ9U}q]uqڍȄRnsE*^@gHA; XBev5۶2ՂEt&)̘sA1fl* LKM,2LdӰܩd}\$mZ5E5oSKQNk՗٦ (F#LLs <;`p4WVՇ l:SP*G+F">( "Ej6ؤi" ,JGnz9e'(XcUl%fGnA;zq[]sy&b R!DLyk ^H@`d#3"4m"r4QveVYiaeu\wlFS4˥E8TmnDrbD+i5UfIY]\xqݭ?وe]im;e Ui!$dM&Dk]Ĕ4^q+)EcQ$PNZ^; d-MPM&]8\ęg U$;#qF)LFHb2%Zhq6  Xkp/TH7Сh"tep,]v6P#!ޮy*h:mcmlqØU%.hmMSGbt442%PjXXXam֛uہ1."QTp#.KCaaE$_MHcJ) aܞ^`ԮMI/6*uX%/Mb?ʴ5ΛiKrVMV/ߦPZk>PIGB`TiumjGF"QV\#q4׍djMG :Yyݹ45Y^)> #a B9#欚?_ީyG7A%t$|֥ +#唈`u33C35H^ EEUTr"z8#vd)fx䵬NL&5DMbZȾԚd۱A# hAw+n(ro/Fǽ(Z,ڨ{ʰޞ='Q2Z 4ChpvRj)#R8CBp|6>mND1n)^#L2pdN*֖w*`+mZvGREvͤH1hd汱ؔU=Xnr4Z q*dCDpp-0@B&d|<t$ J <x1 + W>%cS@ !Ap2P o"[ a!A)34 "{dzՙ:%@  -%@  -%@  4A4K` Pix@~[kȂ=/H aI5++o]h~6Cņ AaA;%)^ql..`ͲJnr `ۄhů \C (cq0/ a I@B 8DJBR~j#"3C~i`J+a%{+au@OQtWK P _ XRP%~hW0 "[؉ bx$oޝ)J$#K` i$!h$HJC@ baTHS $]Z$*p> Ba_V$v?: !%8@MQm:U@C&BU1BGc@I:0>R QF bP5 ? KJ@b;YO`Y5B BP@Su tle䠬 7@@2Z1x` cHHN@Fd$3 $"T"`x'I_@ e_( 􀈄 qcO H%-OH&z_< [sCKJc5.DEŲYx hVP. &PL+! ?E@0JyR>2 t&>`  t4N qJ}\ԏzbr2Sθ4+%Eo A,D#. k k GIλZ~;6e_*13j j7'o@d%>@.D.n?{Ģ^c +n X Xaw؈`:,IY{'@j Ah-(h/t a0% ^- +4BI #񉉻A urQtJ+Q@ *r(RI lDVp0F4v``fIo S3Q ($4 8 K!?@0Lph/ ];#tcb9x@Ђ$^h [aF;u_?r5B|@n| ƐhT0b:9-Zb:%H,hi.P8 @!&$CFJHJz-I&#_߸R7n*t!IϠ0C/r?ESwcE:C8SA7 @j2Q|귻t%=<e$2qAi)#Q ~RN2y +~ohl>1Iw!1'@Q871_D<ɀ;!hJ䲺bB ƭ!3h(Cy ɮQX Q/Xh%!29}$ލrn46=vtc>lRC?ٱB'bܓд*3 !?dsLz.0[<ϲcU NHvzQ5u}!{ `.!^Ҟ`D%09d s\_ئjn|٘ 9Hh&qyfKOM9n1Ie%~Pݍb-:`Mob e9w &wm{{ (1#~ pNىC4RۓQ4"X^k"OjU :8 &!kmC;H'pcACxzm#PKͬ `+0̇!٩jrZ!ƒi ;{^nl,sH-ZǜiB;aEdmq=y4!?Idc;.~ a Wys⤛p-M 1'h^ۍS3lCQ @h,`L&gZמ;.#Ay>*b<һ@%R`ya58l> p<*(5'<@#h`0Zw;!D+ 8aصsp;.1z_<mXgކw|m c%%%xƧ> (|te?PΕE=HI, 0/(1a ;W^ST %8JAʆߌ035)Sa3 $&eǬ1Lĸc&@ ;[n9>TPT|A23=br}n$LCz%15yӱlO4ZpEg(i_ˋT2HKL)*f&cX6;,[˯ ! `.!Yn<&f7=l=jN=0Gpz! ~.GˉPju:&'Jx]Q;xz[Gay)9+(( X fa3!vjZB1H;{^oJ|QQ1!v {Ҙ!N5jziB1~,0;.~ a Wys⤛p"KJ◩?mT3H40(G@0p 7ߴ`lCQ @h,`L&gZמ3.#Ay>=P[FaeSh{zјk:bj~4T)H-$gW#%FCp4 `K~ t߁t5}.HԀ 3"zgx^@.> |l)Yy ұcx,} cɏ* AeghBXtUZt( Š5kC6Ќ01> <(po% I)'9$dY2P)X `,P {ІQ: $DRӈk[" i(Ѕ0rzT1gP,&5ӑ!TLC@2*D1E@8ġ/Q}ggz)Eϑ\TW1WI0GRPx iB> `d 8.SH'$J 3!F5SF[e {{"l*e@0oa5:BOWg>K nKt?Ţ1z2V[Q0%:I&hOtB ̌XguR;&[-X" }^Ҡ79F1hL1L@R `@ uӉI)3*z^e3d)0q1(Kb-F <:WDWs:z d LBVHbRD}N4c jC B É0bCF#8q| E$0VHJbJ<1Uaׄ*UXd-s}|L+pjPƬqTJ m =g)m{q,nFFk4.xf-k;Oz,+Z] J0;N))/oN \! `.% &{?ڊ늂^twҍïXo(u@UilC X41#Qݻ|wcvkړ/I@ 02_(P}Y`;BPhħ V4;ߎ`':@B`,fm@*~JF-Gv0燿5zD3ФrkBу`r&BiEvJJNe{^B(HA.1?O7yޔgZ=`iD2e'%ﺪ/Z @0!Ra`d!=+kI a08ѱ-$͓?~cߌv4HA`O.ٟ$EY@;0Zy#VdqF`! 4uɅ^{1pH`1, ɉB{w_^PqU=dLᥬͱݐ @L:> 79λ$38\)sI sPLZ'yRBG(1׵z#Nj+"v)J,R4JB"!IN!H4" CɠPJx^&B~-=ܝu)=ڛ ,(R`j:wOOXc ;v0Cv^(Y Q0,4J@lXbzc]`CZS'P?/ҒX<|Hb>rMgn< BA5-gnK{i{O\`kuR]f@PnYI oxoH 4`0ϔɈ!:Gsv \xL@a4RTf4tYr|X!:+r~ϷƉ:j3 ~ݰF>+ෆn_}&wI|^bss;E;38-鿵?P~'_& 䟗Zx]pR :&@%X|_ͩ>"\[0"k}ORjRl# )INό^ڔRH")H" +)JJR") v)JS;')JJ.R̹j 3P(; 2Gzwabw^.Qcr|! edbׇ7' ,m5&BP,K\4o(US/^3X -:k,`3 *rk'/I>|#WVfZR'RԒύ)_ER",R#)JJCK.=R)JDrnR\)(JR|zӀ=&ɃMA5 a%_z ,ex0Ipayf=W! @ !MKcѦuq&:}]Tk@&0N9Qa{0VFijB[-91Mnͦ24ELbC4#$$08 8NE$QAIERUEQeVpnA6X+DIŕNoi:4XarK}%Lz 7L>sD)X2+Vj7,|FZTafw $$Մ%,準qFVII):GϔrisXGEK9=*D2FfJ͹#ηԫ$+E;. Ĝ VdHE"jK6$g\EJJURXUө8.]Wq[㥊HGV vetf_j%`S4#$2R%@8ÍLUA9EDSQ4RQTQUQ5T^sƄ )_m6aD&6юM3]r@~$HR577r695a*_Wk55f]2m엶"Ѵܭ1D'+mI(th%6%##%Em6!ZQұ=T VY7+kiZR5IevjnDߗD N95jmf1eผ,u9ihVtyXAHdm8mwvIjHMI1D`d4A""$H*!QUSYUI$Y%T]6QUYuaf^5FqDU 9Yn;+$+r5g΍p_ H^6eI*%f6]88vr!"V2(UC 5OujYԶXDsRUS8n9BssVPo7lGjnlEmrm6}}T!k&ct.at]jgJ$ Q6QP[wz3;Pr6&`4SYy!ɮԖM吴ፐIU`d- <]B;yRI Dbs"A#24I"@"-EY%AUDUMeYYfii *8H$AQЛ(u@;U7fc1I I; Dk KYfMBc㤨iSO!X݅4pHX2D+ۧ6ʺ^b/$ݺ?¸פ8\0cE1\Eՠ$ J.lJϞhO\$;J&i[ * өT6)NHYy9z"HCQĒ:}rW%L7(ۍPM&e搮h-'N_dnFH"-8OXbG(`c342"&I"IATQTIEWQEavUqquJ3ȈnIT2&e!fsZtq1EJrFOUʮ%$@rSyOMrdk)DSąէ QYi:52C3\ $@mikD&Wg՟զM׭[wHB :'rR}72 xY}6tHijN:ܿ~'`7w5VQai:ٍ"D3u-ۥ#$).ą [Z#؆]x-PO_RNbdBT"!%)4검<Q]aZqqmɝP::|擥r4g?,n:ႝJg5lR 9sYMRN%&s̕ )WpT'M xuqºJ"#2= `!47љ_-IV+ Ց#]IJn7U:aj+%J&NC;bDI2bd H5h#vL9q, I)W C4E䶅e2WZ%j1VH\" B@Ȓ4`v2CB4h( Imy%y'!G `.|7q7KB?2H) 40qnbq3 IkfB9RӅ;|K/awHiy(`0 CcJugI a:Q0>m?YLn4#Oܥ)OR=)K{jB٥)rD)J M vi)JJgܥ)(OJA\ r\k%+ @'Yc/w{H@P(QW@@j|(^TQapķX  d?y s[/-C9%BSēs5if5QHU@@LjHІٞQL@³>dm4)Kw#E^һR?JFzRH# <}!c,}}@۔'jK| 7@ !J蹡SJ@/ J.rz(D)J.](ᩞٷᾸѥϨ 1<$ PхK,}x v7o7FsIc8M|g}6?vCc O_zoGs^&O1}?5YYxAk"8;O ].;W ĿX &Y'z @/HP `o&HNrVp@ p> t@(PR1OVA*@J Hﳫ !`K!$ddv߹t |  G=7T|ܷ.;hܖO@Rۏ`@)_ViP*%!{n[ B7| B7s~&m]İ~<)Vjsfc~(hieKFH% :Ϡ9!XPjY#6s/Gmxtg|MF,Еjx "GܧviJ=\~_@pxS#GG..(=\w5 Ԅc O7?֎txd!P 7 w-9j(4HGH:}A;(0`gWJ@ khH)H |zLA(@0TJG$rߏ#| jPf4}=x vXJ@ 4 q@. QP5 HN'}!'9! N['.6ߣҽb4 ~K/c/ g hB& GXa\Ga60`1&0`P*_㱿~ @}B}q@&(AD7mwQ m7mZ!03l=U7L Seۖ_1/'ސQgVyVLg5ݓR#oHke=!+g܏<e6N_G#mM0hf КLc~$M=(1uݿ @ ; /~Å{G< cFg &!}|t05!{ `.4ݟ $*Y s$3{1kԟbڀ( c&4rrvdY3=L,HxbJ3}U{ +u$7sM);moYh||:PwB@i q73JĔ|Np(*Š'^V/%I>v= "\~.!0>@pA6HjPIv? $XnJnq;7& 4k)w|faU*QIoOǴP){Y\z={Gߦ@ 0`1Ӏ}3xh D!.?os B!OE+ +)Hxa$cd2=" їv(z=OMN3_W 堲ϱd߸E/dzBGl8đ. @%f@ ި.|ix2dm@L__ A5(p Iddw}PC D"ޙ-,h HF(}Rg~X )W C @0/p)nݜ^ǙY|'G0FG{ 4 @E8-q+8Xld@vؿR;7;IYf\I|WiLJ+o,e+#]FmTrS(yeܓ:ܙԿ>ЛCօqXoR`* Axq#oL o14 WgxӍ 14Ț['ckloj !/MO|" ~X,7ȼm^{Fm ^Z6f| ؕzѴ7hz=#|+ZGɿfz~hfڛTi&RQQjGxYr[45h!ĘY05(/t'uᆰ;ȲX~8P5/)_i{)CyX ~D$Vk;[@}, R95?d R!bӊ-35_Gh1W@q4oϜc φZp*L (Iem~opX@vPoHB3,;(]䤧#7 8["؊d5ƕZP^j~@j JwY:#PpR1AZP ewG!3+@bXgj3=@ntte/xEvz>ćvט&kŧ$5A2?}&g̩|`XAޠqA!! `.!1>>z;/`7SK.t..qrhqwkm&W6%htyIrcEl+"|kzBlIz=#,U;$$kj@@R&PS+z (!#fPaaF{j_/@pIA@Wgb^Ŏ9 уC1%}_>{ 3&Yi-)00&$[h=${bϕvOwctW{; w3oq̈́ms_r~Ş:ҶI]ӗ)h(NΣCJg3 﫾s}~e|1"V_, 7C3-^e͝?kq3ftverC -? nKﱰni~Є H+s>'aICw\rAy-߶ߨgaxoڭ>KIiO}%aPƼU33#P5K^a I7Oӿݟm{RsB?(S~k/5h4,]ME 8f/@00ŀo&RR@xJm쿟]A:H 2RJN/ſ1U!,"u֝N5? Bj3}Ssl J>2)=ֱoUI`e%1 L^R0i\w :cyml,Jv*ש ݻ;K&!m#tp%cBR?Oo:& M!@ $ 79^ 7)R403Q0;v/r-1;{-aV߶zjp۫gթdeR `V X,1d9KSԷ!F4I2ZDWT`x&kcziB1~,03.~ a Wysּ6?RP?|} J k|8E5~L|-d{30M‘½S8Wo[זů5 ~@)0-k^{3.#Ay>3.|#@5d< !X% xpW B^:@v1ciEmfsxE.1)<9C@<!"?&CX+Y} i9k %XaǙYk83. `Ú[0gntVw7:uyt3Yڤ F EnXS9&8d0 X`_^3('XF/}`3V=x68JS޽ "…ڊh7T#X0OY mbZa\Ke 3[n)KyxɆj gfJj#D2`T2ƾ̦-uqQB 3!{|Zϣg=c4'BsCڊ1ff$nb bp+FՒcWPK 0 3"3dא SSRē!c9@"m w1LOz U:P?mt< CuP& +YC8w-, !X)] !Q4ddt9vQ> ce6*($ *o)ra,U&qV旱PC^u85z\;}f0a)c sjAZ/) ^!T,I'@. 3! V5ne:"d́ 7%,I' !, `.!}9 ?Q2e^$QveO"D\LB[ .ZGs)j1sEXEs/.[碉mD#PiLWKHSbT4+i3-3*z\+so%*g,Y;P- 6C8BhBqa8cB ]{ 4 0ު;CK<#b`nSnQ-[zrb z^M7i9k %XaǙYk83. `Ú[SpB%&4L&wpF!0`6$O ua$ 0@@cSmg#!n+p!,aE k(d0 X`_^3('XF/}`3V=x68JS޻4).~1oj*&̩[,P&ۦ!uĹ] 3[n)KyxɆj gg$_.gi՞JDԟ`-Y o2e6BMF1  3!Ʌ9M _Ӝ Ӏ4ܜAN ފ'8N ӊ 4?\AL!9h4Y!ᘞdP ( YJ:3gw@*JΆm{-DYZPr#u 1QM%X SQ#RN %  p4< n 9y Ӏ@A2pq\ 4~;6Ji` 3"2uЋϓfx` ` +P%!lxGC(U^ϻI6R ?]]`ް bb8"k #iU<%8.iFEKpkH ݈ [:C6 ?kvķBta P Uf"b-Lꢘ&p> $7yܤ HX%@*p4 #SOnȭйT Hqk]D5DVd$Wi!@ @ !ͫDƏ4u=HuA*R/jh!9\ʒI +6Ÿ2"ԗNu]y ֦i,tmX]c+^&lZώمiLk$ { Rv7ʉ^i2%eR<#2 Mn]a \zlpJ:IZYE 9fꢋ4Li WZfrJS08l!U܃jaKvSӣE&iH\PN.q:/] "T9@bv#D28ь`S ,QU\m!i}ؖ7a˔,SWbUCW&,t:ShhhL2ņ`֙NFh$փq156l̗CjJ۲ͳюEmzoHsB&޳CF" 9Mי#`s#2#CHh< P5=tDLAqHSZMV"Jz5M*.|Md6ҘUp֬QLtwY3uH*FrBHtcp[+rRuL=0nHrl (7mlIcͶZM4c͵F-6o@-S9r؍mi--V*if Di< CQkv"UPT c@B͛xG7 4)_6o4q3eږ#6?Sr~C֮ͣmF,bt#2C36IK(=$A=$Q5ZevmӇy:IR[e0ŃAD (w_ۄ)md2y&zi#.Xn"ڡiעEiH511fM]S.2YqʉZ!TtP_1QNUӁøY"\DBڪErB,RI mi']z&SM3ڰ4+ɢ䝱&ւYȡ%jxim:إ[Pe`W)mj7Ԯ cZC%eu²Fr221 vJ4m#m3`U"$B%H Š(IdYSaEiuYavm\v \B&z7im2ܹ pMcv/5 V+em׬1~+(5zԏ^BK s{YU\%|-ݮUج(j(i4*Hjn!kʖeVm2$jV{Tzs$ASJj9 ?zr3eSҔ]< ?]6aULSqaիUTljg?fJEg[}U\G_Clr޵Pbd$DDIdH 45%q]iq#~8RZSjی[:ޚ3UrYa5qBw #v?`? ,H8 IQ%|$_F$B&('.eG^o8*qT$jK/M Na }l8`% PD$2"RAޤ h&k;LI>m|6%:nX`bZfmZ~2Inu `ګwQGY̤*q\R^a/>zN6Į a~-UӶ@ADI %l0h,.V Kj@yKMF'``a3F a(X'm9"pX !1d"ᤢLz|ޱG 6Ya!N--qbԺ"@~Yii?j pYe#RzSZ%(Q 9,ܰ(H=%9 %$1 T!lf&>҄B'#$+Y!b8F^ /;O3!6O'4`b,{L)B!p@``X$P %& @Tw&VCbi5k9d!0?ogO O(hI J W]F#lev4!|4U.`b>'q- /E4P @x|&]MA5ؚB@{>- ;0+W*$/Lar(61 %bI*!V0 QIJbRA&H/A?ŲP2t\h!T[#HC@B$"zYw0X :W1Td JQ*kp K 3LL($| k 90HCR H^ĄB%p9pւCR= oHDS>Proe*`s7 % 1x蠻FYPeԗ!f{ `.!J\ @U ӱc؏6+7BR/g P-؟DHci ^ xր@CI`*ZqẈ!\ C))ua v WbJ5z6C`;'gtu=(5GNXi3ͤG$'`xf&cAP7 Mq'Z`ZISr@pPe'[Ӿ H$ā%92rLN;=?r +8D"+ڡZEB@G #D`Me_W~$7s}4vb #Bhj"bz_1ԃ B4y(,4`B$ X@L!o6Z R&?# ,FE[ `hԟz/dec 7wi*HjHpč2 Xm

  • z@踡fHW 1ʼe ,#ۡ;% #b*Xi& @TK?\K20C Y=&=nBYѥ{HW$ܘt$jAXW0&4 Gkj#<`o[ 2)jG8ԝؒ6suҐߎB}8#H&|zcY|Mi/H}E"l2a/9ӖRo(=I'{׀b$'  +JKBz9]\}j[# ~v)5<ݕͯh 5?M_\̜ou٩szNޏ shie>U5ЛO&u5P޿Mt0|~/Q)&&BbM;܂}AW0h}k뛌!WJ855 :4|L&!"jX1Mr D&r?rw-6P3IAXH|}MB _'9 n^`Ο 3;ӊ"a-i͢5[\C e{4^v !@byE#tANpf_4 Ơo̽4E /~oά>P JK삊R=7n8F !P4u|d {\CA)%!o? B2RF`oK b]:v;`*BK+1(1Di{:PL@ћҽ:*P JŕwW3;HVzh&x`,NGmuQ$.@ aj0Gޛ/PW)5?4{܂ 5 &g.9^[^41waW9>7JKUB : ռ:?`s}-I L*;f=4*>]:rrKepo٥~)됄:ly Z8M”,ٜ$Dzc$`q M^+ns`i} P7asIz^瞩)»gc>;ɡ΋Vtaqz oQt;06ωگ/bXhR]r:2>7{Wc?k7fPïކ !^&wx4;Q$EUBCҨuӀ;zAq6YB{i*N@=maA`fCԵ9-KrcI43y/{/@H LLIH %6`z1XA Ǭ!y `.! a cO4Y%a3.~ a Wyrr.6\'.1l0ӳk{_ @h,`L&gZמ3.#Ay>;.|#@5d< !X% xpW z"tH-XE,U\b iiKt`b1ډ4>4$);7&@-TabZ9;.ry0pYI `1AnӁ Ht\Z@59 К(Rdì"3G @$`H$'XF/}`;.z޼ @ pe9NzߞãEr3\# ";^Z œ0x_!vZ23st ;[nJRn0 2sXJA ˱WrPBHM!$NH$!#?G>{\Tcz2дeUYAˮ ;ELTb YB 킸(Ʉ7%6riSXzDp=K ARg\_Cu/R( XT54 €`{9h5A$6 .8ā˷BHT `xSݒu価08xD4po}S$5 OupИr} ^R#% (n@,Gʷ BIGt ,BD 2!"K>4+ֻ@Ta0(DD6x7U0oI 4ϡ$<$Q 4'8E&B,2`5|3%9ҞoS~ Rv!h:Qw5E [?5$ P@ nA5C[ͷ`c,6x.2 5UX< ޴gp.tHyA]X"E"L&&a.6DMS@bLIE~-9Z*JSFt=o}~aIyb+jhHHU?-i ıXu%dVq+\+ $AQQN6iM&ϖt_m~O)ŻR V.`!ٝtK)rYfjڌ{f]~*D ($7l*)~Qxagn# E @7u|!Τ2h{&VT@G<Kxv6qrӂ",X,82! `.1~& !ٔZ)nA#:Cy/{0 H$^z @nלHb3* Q|NqC}~? ^QI sMȬhv9;6דMk̶X 4\tON.ּoxC]|l n}xvь0u=nx`4c,nE'_";L^C]߃ڜ4 t[f:U$ZUapP+*#"O U` fX.V&DX}@C%0r O{.\'e"t'5%H`ܲp:{4,`4dI*ϸyt^yC'_4Mk`ÚP4.à35;|:,aDd% 0>&_ ̓G bHhA"` 8HE'ra C V/$l12 @liNɶz.+:j$MHFFSj汲lܛ!*(Drn6 :˪qTֵ}һB)$Gf }m`8R_~?PwXg*$|<9tGmdc!HJ#A-$A} ,fBF Hv1#T҃ܿO,I6)Fe:SZ̝xIA*E 2cufmB asT7-,M V<֕!hRmև' ^G}ӐC::q;~1 ?/7#!s4Fݎy7gp0:(%-:p@) %EsUD`BN,쐋OtX g2pBIa;@RPe2*H@ )=RUv\njHJA$?ҔAlXc*qt`;(ēC{!YB1$%hh'?8L$ر[xI $0żMiK4MЇГ2/rO8*qD@ O@0ԧ(1 3Qd }R^OOVPM O@1$4 G &ؐY1 B 9sY^6DvZz"`"iH6(;--KJSA%-ooEGA p*qˆd$1;+:P*.zH <w!Aw( :Y{ Z^ʴ aA<*eޠ>чG"@A p"q  <|79\T: M4!Ԅ;Y hCO~e :akS%o H<)T@4Va!p` ` $8 % _I Y $G4@$@$pM,0!)Ah@J\a@(M- K  !3  %a\5,0fѣFe0j%0' +qDx>TZ{#*nP 0dx XrPE8}9-c A02!fCI瓢. @bpi"rHxO+ OEU 9!2ZJ4q $p$&p&tMѓpHY7Ũap`YO9R;@9x (o5:@ +agDl,k{dx?HENjSZ@W}h/@{NF7= q|b3 R4@d  tVt̻Bך}@)܁DpxaHTj#; JHI0%I۾'t؝|pwϽXG}Ѐ4!kn̗j&X L FW$蔍@Yd.p+RP7DĀܡ ls9Q0g}A'Lj@U~NIY\kH CP Rxg@~ Д90P3h9 _DTçx`d&uh*ax| >@$;bH7 # uaKiv4l'G$V G \I"# @PP&aX(!!$h4MB;䕲hlGCpfbѓ0>$]k6C{,5ZQ0|w`S~m2I /Ev{ϠIFl@7Y% {^nq;Q@!6jIc]ܣI Jlm-4G (v2mrI[' * j8R4ߛg(zD_ܹ !00u]*zB/|C] (g粂{RxDL|OB2σ:].@`P6M!91?z9~OAG:FR뽘 ѓǮ.񐭘J\& 0 MA(B~O =L A1Ɋ~ye ;-PWAy k5+]?^,[sb[hu@1yWh+P?_K~6ϼ?& S'7^w{熤u@@+eF4~!8|ZD؄Z !G @ !;߈Bhdk\ u퐗ڕdqQlFKxcAIbG2&Z.3g q_%qW^:[8@:P['Zh;ISi Pt%kbsҐAVX'/6[H\bS"!2k] ISY5YuV}_ynz7╨rWdƁ v-0Ԗ؍W;Hԋ2XzńCȭ]S$]wRւ5XaDM0 (аegM *uznE ˋyfpPUs睭Ϣ+u*YIuEʡ>Zj&~ 4Um[8q\Im6X$,h*ǡZaaJ1V:^f4ruMksԪmpj!HƸj&7T)\k* mX#%%LPe!my4H"|Yi{۽ Ӵ1﷊AȅzONPDX fa3!vjZ9RH;x}J `UxP=l4bf@ z^MGʪa!ϻ!"ޔdh4*rTc8-A8xl$/=: ,!f`7`IA  KhfFݑ#NjY`-G x  @!-Jd1 EPX 쪲6+9MK{è`?)c(y1-:ODR ROs8XLJZt A!쟙L ;Pf[vqLP>zz*`6$ij]P᱀joBLPP>@bY8]/)I./!٭ `.!aE!&z}KH V R>uJ$PC n^1kA(?F#= fR< ;d;1 F59x84E !BS$E] A K?L?K/- "rY9L>čxN{D aAPb8!A)Oz(i4$AGL 9D>=˵d{`;'PACB( a/$Nk  @U῿a,6Nz|컱,L̥9_9`P A4@+8 ,tb;h!j-g:TIc=H ) :l~h'4~S b(KL} NChmQi-=QYZ8'MqɀTH`K ړCP 0A.\筴j'F|k>e OT{~NAp<q^W>U%c/@d6_5FM)ͶCV!nc{1u%i ^V]0a0hw%5f9O@;&P 됌+h4u:Q9 *O"qu Hq{ u?&-tkF2up{`[P( YCx#o|%&5ba$t̵Zdჱ=8A", `+0̇!٩jrZ cII CxqLPphQZ=OD`1"gn-YrA, 0/FO~ńb/C.z޼ @ pe9NgjzKJzɜn5[nC-Xdg+;: C[nJRn0 2sX`t]ED[Al+@/r8loYfZ15u C~d6He;$uMd g]А|?F),`6a\C$3 KPfXgiGf_mZ->^Bj wR hJѴŇ]8Ld DL8ܣbz@7p&Q :l&k>OKhQ$;JzP`i eКi]mXcmRC7Ax4>M#ផy @^R=PI,BX#`U1,Sњֳ'p :b[ɷ3 -# `'*:[ڠ5K>DIIm'D9&f&! $w/ xd GPV0Q\AyRP ̪"zezco!gСHϿaKă+VNM ToBI/W;@U4tlkKBcWsvғuzjYP&vC./uH[-|4#_k:$YnרJ"UH]"fCL]`] VF=[!n &t讜D"0 ! `.1u~NΜ4ӥ=w^`߆Kϟru I)CIh'pSt-<-@UE{ G#)z6#fn fݗ.1_/yjrwSxOI2t;͘9ltTLPGC`*Lt_K7f=p00^Z'*5Z6d`Yx Ym- w>`Y/X^L4Zɋr?j* ( !Zh,*p㡫)"=F8ta3YDp"q|" tx(M&8sv"`AN@4cm} 8 3ņ@bs|0eAμOU[#1#V30;6 Ţ&PK ҐZ"q`4uZS[4na&tĥ^"F7G~^u$iV-[@t_P)u` NBG\w]͕ {2H$  ݊d g0$9 8J$i$%( WYq k7$MnLLTB @(oIذ h$ ~2P< , ~與~3?X݋<&A TV ?x7&. Рl$CvnR2FtB{AG0ot0!%*C>">I{A,\b=9.BX UIW6_,Tf%b ~z&>&8u,,蘂JK0(XrBs?$ IAIHcމxyI47p`'~oI`LHioF, xƆ/՚Y c$  ߶CKD6m >''ZY d`F@}p)8_@ #M`+&Cam= ?艇B`T/) <[!.}L 4 ?bH` ri02^BlL HĢ@0CJOf^r6bW ׊+ Fõ+$WO +[k}?>D0Yw`bGAA @nPIP|&Ffnb; 1gWր]D<K3_DB&p! `.!o|"=D ( lELZH5/&y; %ӤUi; uDY|hk60 edqMww:]9lnxݟD  \P%~F_:΢(%QP & &'v 0Iɥ i)<)H180x`Wl;$$5x @7&B b1z$M&%p`g '& YCZ5(b-3[A`+l|`7eˠ+X% ,qW>0j8]4^,&`i1,5 &S +Ԡr7&bBF&l|yڂ#>aڄTRf1` E2`A~UA7ˋ GOIwRhoK k} N;f&5P MJ3(%̿t jPϒOGvT'bQ,QIB?t;moPBgRwxQPBK'~sx%6``xM900C! 7;s24BcPQ,w` 'us'QАM++/@d & dDȆM@ ;g)H5c"˲Re23`6AALC}:|:m1a45$UFePtIWUr{Q%IV>:RR!Y#T&g2?U^ڴQ*Hm\), 1!9+ [UF9LJ]<xb X]03'!Ol:9?w}`Zy'E`+`* MI~!-Ep/ISt\C`<P-lK)><1}~dC>s\6#3^-_ocfC㥕roA)}mc@D^\ ı Khfٓᡝ>̵>hc:&L$7zPtUϗ. b^Q#0"m2 ;jgb<>{OڭhA 7Ё`Q@#iC]$؞A)} \y΢x'$] i^i|&rK!3!'Y&Ƃ #-RG ;P\vk1&bZ +qDb0΅<  ֎3:‰]boz(oy-5b!=(H54`%Z"Z:W;6LgМ!-jTC;85f)F}NO8S{Dm  XFA 2{+OM CSmCF 7+|롡ē r_a5e%i.Do&+P)Tҙ[TcG:f;PN)g*f5mV=*HBJI;ކIvC@ ZL-(,{#bւ#UD0A#wNzjQ=1nGu M p_S^PG@( WN;y/| `h@ԩR4lԼ[I`V X,1d9KSԷ!F4I:d-z:5{5z1XA Ǭ cO4Y%a;.~ a WyBSXJUinykZ^4K zrֵ;.#Ay>}x ;.Ե9-KV@.x )D ߹cAt *!WT&NOC8\$̻ 'UY-Krcb"C;.|#@5d< !X% xpW ,Hw׸%0$0zOwRCcLX*53~RV&@-TabZ9;.ry1@/B"*_@Vdި>ϒ5+ D8v @T5(a @AB"A#f/HIO^;.z޼ @ pe9NbUb^C<C>4DI-TIn5[nC-Xdg+;: ;[nJRn0 2pfpԠ%#d [6] D FN@'.E67- FU]e ;~ Ge$S;+OEDKPo:(oyz˚ DurnIɼ"rgP BsM!9 `.1.YuV$σ!m\x r HEAWA<$:)+%AtIePQ \x2o^fu1 ;@ Aq Y^O@AdHZ8(7g6E$Y!VwbvD8KA2RA6NT(`xU%8R4 /-Pؐy :9>i–{G]|5мnl d&CnDET[lv9MSE&ФLpT'P,'u9h0|L"t(z:^`Ԧ'7O'K`Z9>)F}[}% SU曒ɘB l40##I@J&۫BBCӨϓWM(Oٳ>sxP#^%[~:dQniTTSj6`(4j ,d@uF;Q88VOTMpnSx'3:CSQaʫ!MRlHEz-mM.$=Șlp1_`=C4!J+@]; aeCEʪ/&2h/,ȴ|*L}Mo0-Y>ʕwY2q;)B0?)PLQeF "`Q 0䮞J%:tgor,p2p; &?‹!T+LXbYhJ(嵐={+'{@ K! 4``: %!hD.,4)*q;Sk 0h(@;`o,1)II#&iGM:PtRRz"`0(8 Ec*qB@D 챘 vԮ&3"X?JY7Z|k|J FĶPmN-wG$::=u$DW`G4Zi: . p*q h`DQ001??1/: * ? F;>L M@; K1xH؆ycA` 2 HXaMà)vf*Nv[@]) /aɬU#@ n"qְR0%p)$p qe!3u 0e bH;_,qF^p toNPD~F0KadљSh7"]tF !dhC<Zv1! 0mPc"qA|&7‚IB,7wrR3 H]9D02($haJ_'aـ! I>@[$o 4vL PK,:( 9 t#_85b^OF/$nCx1"qX I. Q$Q 0@4Q7zP]"hP3DM@j'@!?d'۩P^b8ǗA Y ~eA3y$:&" *ˁ@2rnᮜjzWI7KVCl* p "q6';{ ;;DhK0*0ީͶBj _&ha 6 +`&4lJ nQ4 _); i#>?4 "v+'(Ux9H$YI$$x!e| Ó@Kp.GAI Š/, ҜMH+D"ZCI$vM&&aTL!u7?x!޲ytH8*LDP Ȓm}ryilk\a !L `.!b(7+& A#:IxLe֏14 @.IaI٦PDwi :pߑ&R}pxA$ gDxz #[#0*#eup 1<'ǀ0 av^3Nɀ "2?+%x 6^+F <8ˠ⯑m}0xk !I7A)Rxh.Vu@ Hm#HL&&AJ"` WzԸ`€@I,`\J63c *X CID6`TUkq}-"r 17a7Yo@f1h KR#CՔR` d 쬁;Pa8alHBܘ!Ypܤwڱ/Ý=8~"ޘ3#!3OoS&54203 (W\gDPx56( 8dc&AN- 28l''0 ؄}Q8xvL@d0(&a%ë} @X %B GB ;@MtԞ2r CQ GOZ()!jy >)D?U᐀ LaGDBbϢX|>ai uDR[ȓJvb9GWD͹ȥ9 I ``p Ih VYYъ,&!~h`U@+{{yb؁- T oO4xSɡctHlMOjNF 1V` '/2:{ -,g bE6bn Lzmd0*SYd8@yǼnp)]Rs>:-'=I7XNHhrA0A|*.)q&H >3Sq`QPf# n_zJ0hlOQ5]n_h&$aw [PO& R3meּX6Tw:4BHކʢ`^)d ߯CcbgO&G]zꑼ~z)SM/@ g<(%oZ1!'}7CdCxPeT.<}s6+Si;xa %3򳥛Pu-I*='("PEX,`0;5!` `.! -NKR܄!M$;xp¥e]"[1ZSQ f=g&!#y,c `;.~ a WyvH/c aXLFt8͂zֵ潯h 4&3k{;.#Ay>}x ;.Ե9-KRxhૡCJA^k~܇!jZ*W1vu 3[nJRn0 2p+-+n]B,r8loYfZ15u 3~CQ?1 ކL2hwܝmC3[%f!ɧo'fҌ  ;hfFݒfI#! ygE$`K$Egh(2Myt3l4I%hCGH/۟|Ek Fe3d;3P{2lH!lMwR0hh :q}YBQtZBRY >%V͎eg= ΫoѻɋǺ+ѠG Fr,aChyS k豁̜y8=EotD]A;x7a -l EY.fJi(._Ӂ("Yc r%nBi&3x|k*/~Z`&p:fzҜbV`1=y4!?Idc3.~ a Wyp> lD€% %轛R;I0ykZ^4K zrֵ3.#Ay>H\ |` C֍nK @P 0>}x 3.Ե9-KRD4M a 0䖑q M sah~LS11XXbp}!3.|#@5d< !X% xpW N-qaP*@G 7C<5 `, 7W4L-dҐ9wbɧ @h`U**ǘysp3.ry1GSOODB7[& Pn$w!sG @ !q"!"I$H*h IDU4QM%UUUae]fXelѨ=CQ6SAT+% ZmS#VE)WW%:htU- FMM8M^;o\bJ R$3"%u!14 Uy2n6 c%Pّq#YKjƹj~8HI[M{pRF.lk)73kU}zU\Tޠ0҂QցN8X'ҳ&DiOׯTfa}VUŧYbs"R$BB)$*ꪶ4RY5ETIDU5Y]ea#\PѫYXYI6T;klVX~NWŕ1qW:WDjQXg2 ,5a$NIҀ`S#33#$)@`-6AQMETI5U5aeeY`~i0*݄!ST3#Fΐ ƛk x{d$ɓ>k-j:6I:I3f4|Q<WiIWYTLnUʵJmrऩ8mu(QjV43%y wgd!s dY[SGMr lUouLjBɵF*ъk"3^PY-ƕqYXJmuqdo !.uTu &S|(%@RİA"< R'_+6fާ;bO' 4t˱*QHbc33C34I2꫸8PM4IUYvXa6J3j+L[ ,cw' V9˔>IPR4Pm"bVVfڞfz*ӆfﵹHsM1C\nʦm,>Hۀ䓧v"l:4RzTӆ]SRdU+E[~XByHXEAbqdcMzd (8e9RFqO*zHb I"ccq?F: tRQ[bThda]t,OӤ*V@`c#C##&-$4QI4YUXYfZYYil·R㙞;9.VÒV:rzRK6cr*LG5r79V&I)epx|VDM^;e2 i7dKq)3fj##dZz; yj5QwKm)-3#,cT_鴊 J DofЄv┕NɻiU^5iz>MT="뎬JmMlnW nFM*~K$-zhbc#C3#6inPIaVUgiyy {tΡ#D֓S{MFӉA[UAee"a=`"ݛi`#u3+q`Gկr`m,",mxێ7,ꔕV (X4#B=$BnM`p.7'ADԪRIũ[[*&$mv#&6y S;NRʵ#T0IH-5h~ɫb#mN9UM6ӠVFťb+M)J*6[J8/UdUXai9ȺnsډT `t%CB35 Q3Yguej #u- &>jHx\2)qx{/̔Cjd/^d1`!?b7d3Ր"*bBL1\  FKCߓ @3ԚM0|^=ex9`;(R "ІCה*RۀNig#h @tP 8agu iαhaiκEv¬w?Xf 2Bfl!S܄p7ny6[fnbaJR'b#H",JR"3 h !3!hi}Cõ)4$c`zbb` trL GN! `.WWB= t7$no>4Z Q& hXYaIC{N(0 &9y +L|Ɣ,6RL)8`< BA5-gnKsFi^@nMg+ݖ Z1Mً)!{6otZ7'x0  1rbh,3n84 &I oep3f4t^\*3Dܟ~u ]d_l^^|j!8Ӓ;I Hof=%"QD߿Oǥ)o* tZ o$$w?_/0]%Ɂ;'oSꔥݗ)JDY#?+'+".B4ؤi9إ)b#;)JJR")HRR{%)JDY)rm H@0t4h4#bY77l'>5)]Ĥ?& V^ jMrs[0 tdxfTߜ;}@ %Q+!ŐXO MazDpN}EerNa6)CR.R\)QbN3)JJR")H(w)JJw)JD\))\)9р |}Y)6 w,$No13?ɐlnlZ)SѓX ]I(̻rS|` +} 3+| wX]v6)KF*F&+B5J#".RJR'+)JJR")HZRu\)rERRW ѱ57'_?n/$~{oL+qWbdگ+Pg zKNOɐR0GG1i!Y`d"ov0c ;;m s\ؔpu |PNfϯ`XLdXx@3K+mn"5Rn˲l# )INό^ڔRH")H" +)JJR";OJR딥')JJ2R|k#U4}6O; DxS}&OlN4\RW- I?%jRQbͼ̻Q0@JrK&gK={a}їޞdf>R` ]Ư` a@I2dHr>Z{5iS)HR>4|})JN.B4JR"#)JJCK.=R)JDrnR\)(JR^=45641,'﹪ـd I-`o-w7Xj7SFI݌?.4QA!booZv?naWH GZ&..4Ҟ<0U , 8f'՝|u@z/$ = d5?#ja$O>u)}uRcwF:~)J|R)H[R4".R)J M vi)JJgܥ)(OJA\ r\k)vj(Y8}|~}q0+< ^Ttb? n+ % RWKQK0bEkƐ` (Uz'`;OѺ,MؒO)J]r>\u-m+iR?JFzRH# <}!c,}}@۔'jK| 7@ !J蹡SJ@/ J.rzP@* @4:xN7}u&&KPHMBbҜR U4i^qCKJG^0oHA1 _Q׊0eqcdŞ# rPQHG?-?7n}& plQ]{Iz;z)KZRnR\>Q{S<9ngx=E }qK'K#fjM`~4scX NmOͺ8ޖi|ĤZJ&y*1 'HPBFY}@j9#9&}O:IlwQj( 0rqTo!:$gՁ8!qi-8-a^6ۣWpL*IiK݀)<ޔ+ۭkGhB@5$)Rǡ-&pNν)Oy 6p0tn9^pg&jd% p@ q?o @bɥCKF3c6H_7gi9?` 47 bIc|` *W&~3u^d1%떓zp(JLO,;qWx`[wG)G7{/?_Ca/lM/AAO`zg )Oٌa IGw1f QduV!2H ;lvھڗcsA(CW# (3ņrFr:ޥ┡a>ۆ \D<ߣxfnN?=]TԀ0T꼝o^a0DjRr6E=]O Pۉ Diq0{FKVNIq2 9O?n&32P |)Rr6H(\ +! `.~#{b@u ByuPH"`(5%BNtt!~E. =:=.q16`DNJw h&Tbx:vS?*Jv7a7dMxi[jɨ$p 5<03 F$DĀ챘Z7>!ԊJ&R&W )m|S3c:Rx A1/Gxn{M&C7O_ޓ񛧙x_47~pW]@5OA ݽn1d3ӏzIJ-w ڀob7? _mpR?n'h v Q|wq* sޯ衝?x7o&*s?ˢsqtU|0wI%|: )Ɔ|;Կiv\3={P f//b@b"` Iloj  &#=4f?t.wu#>&%!z)4NVt~D'x7.TcyInM(JN2%s> p Prqy3s:[-}w҂(& "p]x= ~z$'XX DHS!u9'X!X&1hI:> 3a#;KNl:1r#0 D[ ðTS1r)ȧoڒ[ri`J:8a:slXUӾfu_k$d}$%<` @twp(Jt3x`g7!Ur)wL @2!0В¯1! P5 )A!ï,'Kܒh~ *B9@ynf`tMB1p/&׺̰2WBC^R03!^5 3}a\'"kF] ix{CJX0֋;޳.^G%ܒ]-b{Y,bu[`'HkM>_?$%=uCRJa9(G% ?1?w !1/2 }PT RrYW;p4c]Y@^7|7ϙw9w%אw"^ zp}J7TQ\#3]\B=MR^VZKH7o]V(7fݭN䒜jB}u>oה#Of1zҀWr=}!gÆ]%o)E cm|3-tUK~֎l?gcyUq#8 0z*ByDFuO˪Y9 `3}~? ^QwzSSs;PԠ6 }ʊkUlЇ{vnm7Mk̶X 4\tON.ּox3]|l n}xYҋ~ˮ :=ߺ3:֡(*iY܋e'o";L^3]߃ڜ4 tFaV&/wv*Y6΄ɼ4 rJ,* @}' *IJ[B U3f+",N>} 3%0r-)pX%> >m?]R3XG}}WP4J; F@M M@XZ'Af S`LO_ fKʪh1k`UȤg<̺e<3'_4Mk`O\%,|M@pNDs 4/<ɀR*3&" q01'_b +[(Ӹ.ixH4_<*fȐ𴃋$HjzAie0i7CY Aʒd6ٴ?FVɺa&ڶ V:h8̑umJW՞HӖN k Ys6I"+G;5x[d;XKX?d :ۡldz~\EE V#+E8e'͢H¤kC6:u#۹!4`d44148ӅbRH5GmYjHcw#*MHc\?arrm\cx;D1#\RS8Rs6g< 3PJ]Zob 8V&, w:k4 R'9(ٴzT)$z1Y5md4dΎ,Ft{ՈMnHi)h6FXbZya 0k`uA&e*IRM-VyseLƒ&7439Lq> (I]QV+K0OUYII$S3̺BJQObc3#336҄-8UU]UXqe_y^}ןNj 4")msҌ~8ZZ%b7Su,59*mA1)ڊ͕lS  iLW8Yo7Z-Ӛ) E MRMV3dTF:|p,i(# IU1CqkTpK=3ZU$.wI1S2Vmf4b,,X2[7N)X7b>RD*&ҍ$5F>mmpCdhgě) [ۆ8rR,+j6Q"Tm^`t443Gi*C8Y_i]zX^LX6Xʶ\ Ш#`BRR8) &eJ%FʡU3,.b`XE 895Eψ6EsíTpu2YP?ƭ P4H/Y<õZ! `.!heTZA暉 K )lr|m`C8,@4n A/.Š% ooDGqCI""|sOO f6Mi`| ; tJtH1(N0!(''Cn6`:,A*mw&lnzK{[KU4M.򠺇0PIiP\GʺHВãˡDIpJBd+9<2kR(OW 1iEFjN8EP$ ș'u͞pWD} C%0r-)pX%> >m?]ӶU n .7GiPU`> v\IV}˦Z;'_4Mk`O] _IN,44tcF*(4nByXil~%@eQ86@_C,IoJPB4TmA;f8 F?03|I\F/C V/$l12 @liNߜqvlPƟ^>{>M%FA4b34f ;Y"S0̯I#Xo48qrFT#3kUxdZ2Uu3:;  :~j=0 ~jumEMBS=j_>ƤmPʗB;9!H9ٷkgzٟ낆`ˬ]@3 Dq$P .]#Ь;LKzGO] lya(} ԜãiFk :ͤFNӘ$)de˝0YLN* ")AnJ (b$YTUTBͱ'Q:R{ CtPmRQ ^B;Y:2x :6j)lP-0CGed$?:ꄁy1i cY*>x] TSHj:G Os[Vc 9ߪ.J8ċ\&WuUBK;tUS#ɢ:wn|Ŕ^&J@vX@o)<~6v3GB 4~;! `.1!=S) Et'j3TxAOW vM`WDtVۭndSQa !jYܩt(oT}kLU2p)v1zL O;h~#ie) ^(;? tsu$3ٖLIGl12rh%k>r @bRRL&wKPL!_@0.(Y*p8 vrt+@1& "'섁.51*p;pɧ5HQh0OZF?'hNtrn&ïamDa1&1 %\0~ %wzI$Os"pcF2` a 뼐יw2MYMtg'Q=!DnJǧr׀u牁\=Fu^K@~;_#d2`= V<s"pProa_<CuR+ŒK)&0`kiX$nJ5|POL?>?Z@JAH@B_ &+/ #is"p*$vB(oKx@ H`:0hRKvJHErj@ AGnHDA$C y* \_*$XM(BG ,` CJPn%B@c8'x@ -ရ7v&Hc"pX@@br vIg@tQIxC@TQnNL 8 d >|ɠ`+]N!ua֜p^H"N%򓉅@PA;,dԆ E`T <\ٳ@PVJz a1/~ x1 ptţz")ha# ԚMUۮrI$G\ ?tqa7-?ghَD0SH7Xi0hi1/8Ep=x1 E }zD4o`؏ bA 51, 8>) IpL՚4R$($T`H'|HijRIY _ T$z3T0 d0X'@aH 4J8cbgd!3 %f&BbrH`c n@ (0jCb[ @Hĥ _$ B)=<!l7[L:D$;@aCF.#8p+B4m}=3C,LPYe#>b9(R ߌ}> 1(,YXo繗U\rf"}Lur=8 ۈVjM -b/ A!+$H(' P)@ot;K / F`8 `O~Ô`axɹM-_spE>;@gmxA7+ofS䍒A;$w&~jn. &~y?3 I x@@%@$MC ;5($:ɋ%㿢+@.8.7דވE>}Xf@$D>q}$(E,@/:H.ddԑa %5903)0.Z` CK?@˩P`MHI*(`Db5t>C 7B<5 &!  `.!A4HK0|QXؾ1; \Xa@9D 07WhrQ`/U(:(}@`"҅7!(wpb5t'}芄คhƒJNcD `4Dn`GK[pTcDy~ +a0.:8  䍃 ڂVPB`4S|5A~z6J)`  @`%[E4Cy!nX0L#  5`ɤj~ϩtTs@zIu+:7r_!'!y֐m7qFCOEdhhoa^ɡ/?îB*RYd na3 0 EK?ᅀs`P4@+ۡ7/ag#aAO92hXČN\M-Oh! jKdh4oDyNA8u?aP'[/h7r` *XcRkKYeQ,`aB/ &H A?̶?M1sn>Z (͇‰i@a,hP ~<`̄l.uj HY/ŋvio{? @ 4JGe-Xۧ!g((:gU&jXajy_  Y{(qbWmќj5uķ281̦kn<Bl^=X$g@tz'$}5@2|&DPE 0&_NV69{Kz#R 2$8,|01)̉a2KW1҃wCq7+.|^&ͅ^Cmnbbh17T&Wl9I{;;>cCZQ»Β;ǾΡʋ"L&Mx$5qud'cnr^UC11 +C!-!s̑:KOw~$_`44uU]Szzyt(C֧0. o ?@;x|)- &,P5 ={ZF`-.A`fCԵ9-KrcI4;y-E bX`Lb!<,P 1xgJbi ho${P ׌Q f=g&!#y,c `;.~ a Wysִ ϦumtKlcrp$<5~@)0-k^{;.#Ay>C@Bx*`2v˶!3G `.!^x|a[~m@X> ;.Ե9-KL! Iml8b~M$sF- h#9uD SOf6 kSf3g.>( 'tԢhͧ$ A aF4`rOIZ1L(abE;.|# ශL/0 e^pvk z( ; (_YA8 SI t f~H<;@\H91DցuB+# # X`URU01k-x;.ry02Xnr 17NIIi+Q@p%Ld0\ K8P@b"+O'7n?X&XA, 0/FO~ńb/;.z޼ @ pe9Nzߞ $e2w2G$,P>V E8:ϰXP8:d̵-Xdg+;: ;[nJRn0 q$Fm%jz- NRHLߢ8CKO C3cuehʫ3QFe ;hf췇E<϶fF%.ALlArbtܘ(Il6Jf0B` ;P\n>)c⃣ntcˢ![\䆢R@,,2=?NId;+2eڠE`bƤ90y})8%i^D7*-'aTG !(r >1wBXJ5pѸΥb\B;> ;((C0#C'i]-A!NZKg3SP  AG 7ޞMELhtVw14ojhUe^7K@Pz2.F8;//xjI:exķ\PQ %q /YFFUuQM8:>?& 6 I7:;Ƀěx'Qz A1֣]8bO"gbH^@ Ҙ1CI(J4s\ lik AIFimXڅwu PHCaC=tÇXI۴GP.SIlɰ1{j1C}P*iPFU {!M&ᡦ/CU *MQmKZ]EQs)o:jTE% :|Pat.W|P lTCPQAM Cxv/̭sw;:%#]=8A", `+0̇!٩jrZ!ƒi Cy-P"VQbP05%6a_I(r 4$׌Q f=g&!#y,c `;.~ a Wysִ٢t.fC!A$.꒮w:cpس3ykZ^4K zrֵ;.#Ay>4s%)m:˴P""a"+tNMnlUѼHS#&KZ%mmض$jZe5n]Ufŵ]M6涅mve-#b9+ U2Ҧ*skHl g`d3$3"DI9NMQVSaiV]5mX]un Z\j艤3RA,)jo]#EQ"Eycmgd#sHBpU-Nl$fpMrXJSq%^8{+:I?0lCڹQk$oRhmId]b{(.L;Zy&X߾[ΫYg^@p9 )MM)Zr N1o(Ebnf+[ˇ}J@c5ܣniʹnm`d#C334i$ꫪYDXYFeviu]qނO]p۠&3I)6`b5.]4ZW$QU VATdѣ-I6f2' IjCT(I5=E6f bNEGEd 4VNIYDQX+NgpCDѨ!6c)4* jd1(*u5X))'JS*[~2xE$T]ZjQǯ*.ŭxDiבlI+JrcuBMfZ}NmmNҵ|ͧna.6uFQbt44CG(jl =AEVIz!yv()#F>Dj/sOInF4iԚFS2bK~2J׼^B|ˌcMDa5&;6-Ɔ'l}-udsbv,*YDV\Bڢa($]˄ MŊ,jjnbYn+ Hr,췲ج̊%S W[̍N-hܔfXLnq g:T$ST$oc{52FH |֤]b֭!F/!r`G`S!23B%$0DN@Eey_yUqg\e`Vu"nYE{9EW4|Bc+qR&V {A@撲n+V{$NK'=ҲK&φMH tԵ_~n,4b VՒH\ۺ$VV x'J1"MnIFcx^CTgKۢO*"CNZR!6GDz*vfs7(\jF[n\-c||ۭ!Ku$mlRƶ,kcmm 5c-2]bƺcv jiZ,5؃)V:QS5bT32326I2QSE4UDSItMUUYZbmvF4@ښX#dQ, *!E?Uigkq»ߥM$˔jrR~FSIO6C1Te7\I4sSmj^inQ2h[RxLIJg=/6\cM䚎4k{J )Qa4CI.JX-U5@} +M%MI'[*m/!Ωi. c= 4"b!JC`.*5Lmցuұ:l#wH`S"232&I=DQ$9#IIEVU5WU&iDf4J) tJ=SmL譼KJ!Y `.16!6 # |C+=ud0= &&R *O6qN0!;~ %<`50 X`_ $_X/;.z޼ @ pe9Nzߞ Q/D'1*y[˦qT+ CȑUB:Ea[78gL sg] ;[nJRn0 q$Fmt0_Z F#{\z12дeUc2 ;!桙b6Y41iJm  Db HROGB DLJdq3&  a5; 01` A`d0m1Vd3$ > A}{3l@ bUiO~لg=Q<#b6q: A\2;E"C.>(O} )buZ;mݚd״fS ;Pv|$ݿODC:I@k Bj r1+%t<#HL䴔)貿Y0P&r3w(5z)!&,u MBA,2`?Zw< F$>&҃x“h :;9  #|9mA ؋Q ;!HFZV5u5ԝ; $r*s$%oڨHa" eg:+h%TWPЀi0"XbZ 0"!%?ж-35 &A E\BDsL(  FBWzdforu /ǪD#$j Iq0Y.2#>k+C~tzT!'"p˾ONGJHl}ٱ-'4/YFQͨ FL3CbRe̷p L.]B3UP gBUU; ."/5l&[Mu{ؕ@:p I DeV&P )'V K!p<ɏs[}2pmu$,!'W#p }E.!@SVM@Gz qv_{x*!33iK޽82p#l`i1#;5}b$1T  Cd  MDš,K*pyt%((P A z{`L Xo~[0gNp7j%UvxhGbyeD $̳@Sy$F "~xp W*p-@_ri1<Қd[p? L|RPK~7_9((f ,`jV18e9I)ܬjē@v(OCD.&ΤdSw` qܢ@&w6%Y¯T4UL!l `.a0ztfIݼLJ[(Q&@BG &(LpB" / / S*pcb." Ɉ,Bb Ēha`a.= 7s p{y7hyT4TL:JƓ0)IC #'h(0< "p2±w:KQ J %"EPP Ҳ0DZKHjyi=?9 "~$ K@Ƴ R@"G՜3JGz`Jx3Vj@A*p cY @Hm`LY0>?-%:+$on H~xGh !T Ǘw:r fDңPnVxr \%5Y( r@1(=qEYq3QHd@&VD#C& _ L/byE?PrpݐY`: {_m0z^JPid[0C,`a_ 0`!@PDPȘF}'vݏ*%/dm+4<`xj̰,v`ģF,,]Y{p +I%Xt(=)xmt7$ D!~< {Fho;ID52qz_z#oX0tO<#00h B@vPt rv`(:` @NZ:Fc&&6n5$h0`ll(A=@dP ;phE!)=m̾{#*_,4 Q1%0 $ Z|97%S 9)bC (bK$$h܄1I11 &,04}tz_~ψH=iko,j" ZQ7}D >"W-pj&Śt. (D&CDm-苺OIIXC:8{ *~&4~ʵ^0&/"jz#COx!d. 9 BZdxȡ4= L$aL6ah)߅ .-|8(4IE [14F$ 0ae *Vt4kdeme$5~(UԤb?"y .M5yyuaɍ2b"R2due1P(}2JΫ@aC Y~zSw:aPPv@6N\~4QQ=bi0TfM,jhC&ʃ @')4I,:EQ)\ .RhM)#zwJVI\~K"@;&1edb`@ 6R@1,4 TB@̎;&BQqd+Y+}  $U +A_Iisl^+x;AoLu 1O.-c$ӛ!|)Mp-@xMM NJ&*؆ɢ87xhJsJ FI}O [D)J&BXI02P(@ !BGA($qeO;-sBȡtoi#BA][W4:v# k&]df5L֊ Zؒw|d!1`IQlā\y3! `.!mwѲsSM+ݰ'o6" clӲ#ܲBCAy'f^Y:?Cl<]JK(C*K:J,5;?gl-zwRunMÆXo);آr gL3G}D5ck Q37']e 柟ТkBwx&] &T(:; e;F:'nOaL ɾsqD*O DdAcYvĘ4n8xfw_X_8 _6}k!Ƭ֦Ĉ% XdW~+Cje4^x 祠e]=;. q|0FN<|8xAS>8h%l*2!Ik.j8F́2\aYZe[o6Xv;. ww篙hH K*\>]W1}`hn&2(5#j)y #'{%(ns(xff J&APk$v!%$9L-qX.$O;. p0_ d/~S ˜, p>H! } ]P({CC />_=Q/c>&a`P6u3;D¨'ծa](C@sn`;> 9*E,yZ@C.9 !% acL!$ o-j fco3A|I 0fFF M (tY8k F1E'}a`C.W | 3xb \5zm楴@ ɐɦ&@~#)"͎0`wc\RiaUnck: C[g%(f qBf˖pq[,r≼aI<< A#Yηm`K Nu_"IMFzƸ΢ZC*11b Cc{(w&‹amLUjףtD= jS2&lNM@~3\C(ﮆ`&ctFu,h^0p"0'm Shsb,"E%')2lAlM .YmZ*ϑM Ou@OxhrTw,f2 @riX8rP1ף=E@N}TT}(ĄPlr1 BTI50 [$kz 1M**ho˖6+(s];@YNS+ʀB%mEubhľPˢHXh nW[z'&m!aT C!11$CR{T<8ZE! y)"0N6`2].M a B 5>j= =5h2[ *'Z;>{vI1eSQD% p 76!K\&H 8IQ-l'@c>T&j]c7C!G `.!U^@ ˆvݲX<݃]Q\c =WAfn}N'o6K;l%Cu(qH$)1~OIͭD㊙@``b L (I-CiDmHuJgU6CdDxIRC<,C oV7-7tCz%ȡeBvv:y:v1x2;nNN9e[(ʋP/m{\b_ yCxz p&X Da K\($8<l `+0̇!٩jrZ!ƒi CxuأP1% }7ZQRU ('L cziB1~,0C.~ a Wyro gz[Ny#-k^kR@)`;`3=/NZּC.#Ay>@C.|# ශL/0 e^pw=~N|8N{pwhO0&X׈eHA! B)H)b F5 $Asa0Z-`;W%IV<ŬsC.ry0`)\',,3pӧB@h0ft_G8zOG11;@Jӡq4t4LOd% tY` Y~ 0$fxF,#}`C.z޼ @ pe9NzߚSSOBŪKYvb:d̵-Xdg+;: C[nJRn0 q$Fme(\Sccuehʫ3QFe Cgγ0LpKK't]W۟jFz2}Ы@Wwt4h'~4`IY8iWke=2췺3um7O> Ch#.e8|e O&}ВZWbxv\ӍP0Ģ>TX ACF0)#L/1Fj$ Go7uHȵBi: ($l^:k CP_j<1fSpXql4U C( }[]Pɢhh$x"B< Ȣln+ @Ί+/E1a(!y洛#$FCtO4 92pR.I"$5HѨT,k)@Y,x:2xx 2p*paTHB3#JedQaI caLDL/%/;!Co\-DPzxG*p(G@i(a 4D&‚!MK(yۤwBxa!{ @ !k4۵LMi ivCeӡZ%+$9ZRq4B%UkҔk.[Q.uvdv>]ybZS=R$"W+m'8uT8,.eįhGu'6,4UgMBMMmC+Z8F[nZu '%""?$iT+iG\bc4B$"H,PVQ4=TM$M%MdUeVaf]uFQRs3U" qʪZkZ}x nf+L. mfͥll O:Ǿ:]7CqPu\˸ H:S-x^jfög85k~}X,n+KaM[|sV^IH]# Z>}}ԫy\XpjtN)]uBZqTa"}kuꌫ^3\ DZ(`I>== ٵDp`S#24"&ED@=AdҔmD)6\F "{3Y! Y, 5x"xbP9Gބ, on _7hT{= Mp#@@A3!$ıFXA'1mb aސR O,5x͸1؝| ]@;bL!f C`#$47&qCIJ!X= hAa!|_ 7wp"Hd00̄6Oa`:CLb1&K`& =b/8BCJ)?>,ɅK}wR;P RboLϔ8ތP}ƥ(PoroX΀&݉d& [ɤV%n a 'Et!qao"Җb ; F'`T\'_P *. G J #h  :Wt0x B ~PBO Np`_#)))D,7 ذO,'. {I PUY|(uƅ*,f;EZ/Ӯ("+K6/P&"0TvhhBE 2߆a>I``yȀlxGnh41,!ewMƋY=q3OAoAi+ /JqK AboHXbJyOdS%E}*:cQ%UD\EI@Dugx 6>)&3H  +]+Q?0~KaX>#>f5nlN'xDc^p.Ŋ[J:Ȏ ?W(RMJ{ m\P Aix=G 8/x/܉J%N)+YQ@H:aa&3v5rxd`cKV* t1G`0  PVx0gVrasrN?d}`|;CA$  ވ`!lt( F0 ,A85/z$E C07'j*V A;8tH6IwHR&"i n`7t *p_1ZL ŴCḊq V$2x{C#z7뢂e}ZO,Ap$hep@!!nM5ev/ȅ^NF;+.簧Ɠ7 0X3! `.!SQ,7=`0O+"@ajJ'p0+z?=mGaKI""ANh*w[.%FzA6-1%/>-WBs 4_vPF EQb?=d b@h=@W qxC01 cC!eKI[+ u'|z' kz?"?uM!b(K3r11h~hΩj; F$ (aOJ $ U0u:#*W`hp'Z чSӢMyt% &s#*ȃpI ?,ZBTe  6/H@ ;I@@RPJΖ7h5bQ4Kw& \ b^`!HU>[ PA7 at4 - -fD"_9(5Rq?ˠ CwqJAyg%:>CC68٤\RMxO%ZzGEP אtBnʩ&]#Cxzsfg )-XMfVX fa3!vjZB1HCx{[pz‐[4,hՄDhkK%@W z^M ;.Ե9-KHh0e#0EYxTq`Ŕ XUY-Krcb"C;.|# ශL/0 e^pu=`w T\9q c X`URU01k-x;.ry0<(/}زiH/ SrCA`URZ$ %<"nB2A oM*$~*?p ;Pvyҳ~>췽F1YZ0a{Ca'ӡPĄv|3m(lœ+oH?yе`a"9c-B_ڠU٘;xzsa塬&3VO,AF`fCԵ9-KrcI4;x{[pzi6Tm1 z^M@3.|# ශL/0 e^pu=`w ᠰ© תʥ1*DTPڈN&TN@@ `9k@ *Jf-e3.ry0TjSC5sl_x֯3F3-KVJ9κ 3[nJRn0 q$Fm.C#rRc<#X[\5ФDtwTX(8 ֠j2дeUc2 3"mṆ61-ݢCִ#/ q\?'7n'F"T@"mo~qtMHTds…k3h >TrIHT j |~:FbΉ'P@ZXP )]*},~ , !7' OM 2}H!;f٣GϣhLGLi_Cp 0#%$KKx βHzvmERŖL 0X5a4l}I0)&FȃaK@P$wEa>x44'4ML;}AGk-D BTTo!b.0z>z$h^Zba`WQ(4R`J%qBvq7^ C-#7,UPV c1h~ƛ:ʶbKa^$J*P1 >mYfp+Rj76UOE} Q^:_#N:M8cHI:~2q?)0|D6 ~/>p*:tz?P`h0`ii"J ـWD0Ư2\X 5I0X-b+AԄA<6 p*pokZ&Y(<dt0xFbF em*I@X6 BHRӞS#x9"p;p}q Ev-)$Z#:4r!G `.EFf&o,$ x #b^Q%3?ȃ"p93Y0HY@:rt@dlx9yw58 ] Ez&Fn[gW%-AbS=R|Liv(nr/!Yg#-!Z}dR Y?6b=PbC[b -,0`a4D D2I%T pRO=!#rOB8"pXF(F(RDEv-*a4jZ %5$  l<$'XĀʢ9NOx4)Es@!,j" >(Sc` iHN]#0z{OP[b*u|h`a%; $/W׊Ҝ$Hx &%Lؑ1( & F!]ntx4BeaA҈ebG"pP di@LYo&dD Nm};(:3b`,Eϐe|[^!% YqZ9i+Qd07%;4Pa!-@l@ۍ(C Fl2@ ٵ}_+ :HWSsyܜtF$0 gx$44V4I7@XHw0xi"pՒ  QJrA&$h`^G _)I^*P0>f$7"L EnU39 +g4 :@9e@aկ"C q y Y "pІIagqP d(Y N@aF&rf?  hu2aHŧLԀ5 /<t@N A #xXWJM0)U2hj dh0+Oa70DL]k7\v_͉ @ GXo#+500F7@@B;gU4 C@i&e EQ@ 9 wCMN`@,&4., ܀ xԀ b H / Qߟ}(_HkԄ t +PXM, $d"bFuA0x 8$|4d0# Q aCthPi0nbD$XdM0D,.P!}]H`D%#!S h8A`%i'89 (,~!*Cٱiz#6-/R&qP8a4D/Po)?oNL$QH/!{ `.!5jS$'5{Q4 K%|a ,g{.H,|s=0~fX` 'tW4褧0wDcjbb%;/Brd,`$R1 YjK$V!)N zFɳk@A4'XKpJ$P0XN &R,$AHA HaEK`,1{cKܒ#j``BKd>:|nR|H@!: -crA#^.4&I1&Ț% Fb`| pN 30J7@E* ; A!?Hn$V )\Ik.\`@PA p7C@aMa]6af` CR,_Q4 {蔏΢(M61DeLR $#k 0$y-i-)=?QsLtܺ#ͮ͟k vB ,I(dZV~$cjF}D- K c@(B AȃSɀ$Bk 6B39{ZI6aPpK7,ɝÿdݓd9!< d4R?D PF۞ I+tߠbKJGq~ee_@C,j`Bhț $‰H/*.y%yU |Q4+d+J DM : =PjJsb;t pfY1G7N{p`|w4uQ .$/Q H%p йGQ6`z/S6:w Ak>"jƇ D,K$x9 E &  *( %v]k5y - &QhG%=ctQ4+ -1Zj# roƓ8ha5V~f[   ľݠvLǩ8lo[0 Q6&h6biXk[ALo(SYCyC Hqy,ZP@`}v10aޠm U (34iKIjҦO ko<l%2:Djm&rm&a xp`dHD->Bh+ZšJLY"&BĴQ C0T_ݶ p>_(nERFK3ArX֤3#\ rr5ICNLz7?sq߻q2_8vד}Ʌ3wq &f΋XPkz6,]]G](ʉ)T; h4dL5PE\5ֶ2څ'0GMX*@1;xH<+`WY!("bX1cd9R9-E 4U:k6qIuݐcAǬaW& BcOuY+c;. po\cX!6筴L4 A2^Hu?Ж#Dp.Xk-i[h X,`L\w=-,ym;. q|0FN<|8xAVs0@(@$0<Ŀ}^JV]ٵ &lCp/AAgP=sZXkLz5A;. ww흙PG(tC>ނ|]Phj?;cXetn s=sxW%uаFiF& I\ r֨!%$9L-qX.$O;. p0_ d! @ !JU-mP"Qm#ahq9##Xil,}R8Q* +meMbU4DD42,9DSaaFzފ(r6-2H$F\#hnRS}Dq2 15meݒ3Oaʯdq+Wb&0|uo"dߩ &eD 5LqpJMjhlG&:F\ɦ@{ -ᧄ\|N˩ Uʞam6$[&7NJ!Ɠ1JCbneԬQKJq\}4wR;TևkplХ2}y+8| l(i%`D4D346ˉ/+ (Ha]~H}` a~FTH6i;H[4uS, # UP"nƶlILS}5PrR[N;m"7D@fr 1.`oUcUOtw4+BN7,G,7[fpl𷊇,ùe{z FeŅ#I꽖Fm<ӻ֍ZXԢm3J4q"u)CSAƊ8w]iV39C-"Lrd}f[D3攛X.eU3 G i_5c =׭bt"2#"Di *4IEWQ%SY5QavUUYj}SnSbTF̓e(bGmzl̛Ӌ 7M\1 RlVUTb=H&NK "k$8ʂi,[* :}|5Z;## M78ySZq %`S :!b LLhrz^NKNjGTS2QTnI8ϻқ1ĊD> ,FJs\ ԔMQMb>ySqR4ZMϛoR/ebr7+a`c"DD$%AFY]]Q5]v]٣G1,,2M\X"@r_<öػ]6<3!М4 tBD[ŎROѻb\anBdڸ 8qm(J0L@8o&'y!ŖPE$hH.@w :M5IТ)Mp;s*೒Rǘ94;.9 !,h*R.g]z[PY@o[lgߟ saQ `Arq\kBV1Dp2D!9_\JP%$#O"ŋ0;.W | 3xb \5zm筴^1۟oY G@TdCJݢj;H3' RЍrr!P̱ ;Ti,D^Xl>1 0{]0'kU`$\ A8 #tw)040i ALQ;#J ٙQi;Y)%/W8㭿ym}в~YTHBFDLwmD0tѼ}CzōjH  P3@Q.`u>bH/;>FN0  B? ь^^݇pX^q1l-<I):^[A^1 J88 Er|=è)hJy2m{=`6:- [\%@&pYgNh u RyZTU h(Ė_^Y]Y(̈́A(Aᵽ谱bGsCfF)3 }'Dl eBq2t6U4Jq)(r,`'CDCGP2`đV;o(N¼ vO,dp,T* K/ w.@\M  6Ի~*_J@ Чڿp=f&Ti(I&l No$̀,+lLǐ_t5fi>hկI/&}bbeHVrh.OdԺ?a\p_Y>w%FpGϾ7*N(O  S(p,[^ M@DuAh%DRhI = K& ) lgΆ&-hT[]CH3$tQ= ݬ TDM dtaA{ou 8jOUJ$$`VbV=K`.@M=u>#Stj%`:`iv =)7 l^T,MA+"*.:310*W(KN+#~@eIFtFtL"4ȋME ; I59g-0_`H11PX)il\L BJ{AH+K& A;tLz ~6nvU 4ce^E8aA+cB,!:EI,]ׄUp+\%K;]KKxӛU TBpB@C+fA;2Se- gU4Jk[ip^sƦH",fj}#pAaTT柗TsK}~? ^Qz0 ]_XMNķĂړ-¶d8;hdZ-H &fӁv 6S]|l n}!@ `.1=xVيIKL$s~%txChM%bԒT䧰@Q-X#[lmY@5i`S]߃ڜ4 tx&e& (=H&_̪/!Z3T蚈' a@~2HX 0CX$-V 'D>S%0~-6 a~\+ x-Nzs҆gT/^E 0ѩ,R6|ttp/ ג B u@T7\P5U*60A`|@ L9S'_4Mk`Ÿ\.@8(i%P}IZ3k~2}^McR \ʳ15%j&Zy/$m ai 1 $.L#}`[0U)޼l12 @liNɶz-: &DQ՗-`?A6&ЄcO/|̻Bm tq5j0]qZW0 [Y"S0*$fmIu"#- \J2^] i/1 IUDo@BMw?$}ktU#0Q [qFfJnDQցJM鄡VXB`U1DF&6`ܯT_@!\t ᚄAn4 3@T 6(k, 蚴E< ޗp0A/.%6jjg()0 ZiL JQ%.- B`i/hYE* zV} i06hRRRP&uAQL(7T(`SHe2  Zf^<2|/$ɡ4!kBۏ5h dq@ ("@Rsj+Sje=8{W^L'f +^ FM߂ 4J`*XS DjﲩJ%8#`jj2 YuHفm)c(pai V\m6ǃ/PMy(>-&F9Cpg) rMgn< BA5-gnK{i{O\`kuR]f@PnYI oxoH 4`0ϔɈ!:Gsv \xL@a4RTf4tYr|X!:+r~ϷƉ:j3 ~ݰF>+ෆn_}&wI|A{"38-zvLXgTha!m@vYe;IH(:! yl5b˾(LkQ0 g͹ՆKvɠ7K)J]eB3FR!DR4RHQbDC)JJR")H",%)JDY)rJр+~rXσKov!@%&[܁0nj@_zR.RyJR'f0^".Rr)HF"p;)JJR")H(iܥ))ܥ)rrloνHD/Le#F ޴XvMWn^(0i 3$j ,T dp=@h&-_"כ[漴 3m款,!w'>}&zPіVT9NN5٥))ܥ)?+4hRmm FXarER)JD3)JJR")HZRu\)rERHB RHjtNᤞ'5Bbd8 Vk䖄!mXnO;f RRMq;g-Ynx4n  yA5nbKH,4ަ B@}l$ OwҔ';%|e_Rԥ*F)JD\)3)JJR") v)JS;')JJ.RH'A(/݆Ih07qy=h`0 n@m׍|+ <`ҹ%3r+kI1n4`Y /Z' v%7 FK~JRjYJRsJR")IEҕ.R\ibD+)JJCK..BJR")IA)JN.R\)(@D }}7 I>& RCF$Vuy N@=Az:\ǘ&.{aW':dnƑA5{/ 4؃Wv_%681ﯛ2=ݯH4ZKå3#1Hؿq vx0q@hFO)-~rN iI@]&š''qYܥ)r\)[R)H" +)J hSRR""bnR r2bi1' @%(S5pf%B~]I| bBO,V}Q@:+^%'Se{j!#ebu@Xz&@  $\ ,us*_1@|rihBSON{X I$I>|yHprl3vS^BmЎٜ?F`27 5) C9{_r , lfrFyE$au6^Y7q>0Fp^ꯤ:ːY$a4Wɀ ?끓}H-(;ϐBQ+u$ |wRLj8]KZ4,X&tKf# KeCܥ!6OmIc  +!J蹡SRR)I<5R7I)JC)JIR_7}p!r#^oImLH;!f{ `.( 'O0R G|^{{ zXcJIEgd ;y%'3|a{|MB ל ,_'Q <.ovE7, (\rjF^$0b6:{a~ 3/=6/Y]=)7I<o3Fk #">lY?ǤCK??ܥt?6 X @ O{A@ `F{%.ռV@a{^ČDԓ B0 X&Wnf~ aoܚ>̧`Cw%lĖqCKA4 1Ih!|5/W`Bb?&۫b l>;^@1oFP褖d)e]p5!Ku>a`kĄb;b-991 }NߡA P#jPN=Ā3qu2&$ 'nZ_a&p(Qe n903C b=#Æti͸;m`op 1 !4|  B@e岞 1Vʫ_O4_BM&_-=|*(1io+~NY֗Q ]x@B` I<P F~nԶ@BB87@ai##֔EܽzZ[8ãԙASu6J=%5 +tNF  1҂Iӱ4y` I4AFD7&@ )$_ahΞ #VKߩNYH ̜N HaE`` J݉0)F5eSJ.](N w^/rm] JFpxtXr J¾zyݷ&K% sBwUY!`M,1<7*I&{f Ip)-F?2LP )?iQdv߫]$Þa۟r<Ba4%!"v`dw·ΥIx{ { (GrK  v`(Lb#54=&/HL,D2i;'Xrae'$G_@(M2 #f_ )% 3CY%֞)!p/cޔBb)F hR}?.5ސ(L,R80 8PZI7q=)9U3KTҐ)Ip>` @/~(j C}$_m SYe5B!pRp9SvCԛ_JNÅl:!\#/*Sbin_^\܌1vX1H9񢰪ϮMP'=;^ȚHP}|,|!y @ !3^6i*F 2FhDY؉"dXcPY0چ~J-ͽTv:֔Q9"6KIQESᔑ$v-¹BQ͗RjQnWQ LȚvhI\XQ:}r1YԑĤW^eDuRMuTRyģxhU5 ӵq֙F6^\qvIJRr Ry6R)(eWBmMbS3DC"4i"&Ñ0YDAUUU5ivi[quGusmkb6گ]3aqU䭪k"][Kddިn:|^}"[}eG$$h6:UԚzaP5ʋ`=7+*RtWn$049ǣj]K$y!(U Zރ=!d Z#'^HDZi %cč$AbQti$,ZMpq+qK |+^Չ?RڇU.ҶBr lhk+gwE\0:hfǨ `S44B#6i" (ADMFa[q_u&iV+vcr&.CB;,dJ=bR14~q&\GfEFBNKåhGmzML8)<[l2REUrjEq4%MHn5Y%I"ErZLbX4ì“ 5e:7M+%$j0JFʗZf>vSхU*m49jWAپ訓MjncN4 #V^HqEMjcJq";VI"}l&>VbU4DBD-SK$ 95]4eZi[v%Hk'LTǴ+eā+RpJ*mX"'.Mlekml¦a^ nV[p.dytĉ&UV605`h PRnW]妥nWkqH Iǁs_ 2X#T6"ĔK$Xۈd]0M,eo:4ˆIZI8c0БL2tnNNEYuI mHx("itrZ׊mHmjB[EfZB`=~e q#`S$4C36ԍ~M, 9aq}u^QEi (NTGONj$i)\s+);5j՚7MsmV94eEeAx܏oFuڍZ.yv3jE$H=p&ہ5 7M9je#+bԑ"K0Eafi-̔ 8kVlyʁ\ &i\6:gzG l8ۏ<">Cmmk|ٹK[zy$PqlXeq\cH4`(; W5L/^ ';Xv7첒MtwR>E4caAw +~\&>}'{G'}VbS㾕Ռ;t. 1[ n:#5 OasBvK?`IO6ƄdfKԜOroد /p %`~V+qqz?쳚`)k9Tφ=uB0n_SZk\ \`71,$7=;'79w|u"Pg ~Į\%83^ϛﳯq8aVs܏KS]%~~Pf)P d߆hy?ggmƳ|vm!+~o?XbI n -;7~W1F<[C&@b~Ǹmh_v6cxz,+Z紪Jn0`! `+0̇!٩jrZ!ƒi cxyo,}) f=g&!#y,c `c.~ a Wys |K "rUP[rֶfh 4&3k{[.#Ay>@[.|# XYb,KNPdWEcKFZ H/S @"5! `.! e(>4 /}hߝ0[V%D+`ñk-x[.v\!5yRJW:?[ )j3C N>}}̡3v .`a'_X/[/\ @ pNxX+dRjdjc]9 Gbfcvt [[nJT{a+m?@f/%|z^##U<وJDȥ"Ce #,;u Nd [&R,hs1h嵼%{k)hd.46%# uڑf#Y G`9 ["vy e [ e`6b;[-Vdg[ PRbXp: iz >M%gS.|# XYb,KNq0׷zڄ5-L<,MBtNEP2D ap& @d/ CκzTmH2N$4(I3b1x S/\ @ pN롤B1U(@aeT `b8 `@ $0Ye; jLe"CS0;~~@^T S[nJT{a+m?@f.yQK 2< HJA'חRHAMCLe'2b S&R,20 /кј]moIf4I1SИܳC*@T4(EiRLyc3 S#8.'_mjڦfޘQKmRۙQD50I ɉЏ⌃:Rq0٢aDѦUa>ILk< Ш S }lCQ# !W6q& H+ &(2=سᙷ?UYSo=+M--F= ZJyO1*Y8)$g226ؐe(ίBxl$`#Y A(CDE ?IXkZ9W4Kqً@)GᣲU9*]T&$n Ќ䥖S5<}3LD;E%,RwAho|j%f7!G `.1=%X!8+]!H͵g\Um.12p?@ 7d(eBHa0&N)h(adҋ5Ei0%[;hRwyF@'c @`zj*qC@#EBJJI04@w%u':N%.b@,/ qy]2`nWr}$ԗJ'!زaG#[7VyB shbL[VeDuAA h9*q}};s s𛸟?Paݛy$|a45$0(BYktGXi0 !40 SxtY@~S 5Al"|N@;! SG:R+R"pȀ37Y YXi&l~{T%fUZRjc5 & 1Vau͏]@t18 %CPVuqH4L_ 2WXB!-/+'ڂ Taw3f K-A+^3"A`@dp$h Kb@vDJU(Jľ5- "ubcw# eq 4epo,a>{ؗfbL@犢K 0(t?8.̴XOKEPHN,lg֘/v+)Ť0fx5 ?@U%w #Cb@ĥ3ҀHeĖjC ;.2Y}FS!4CΨ I `l2eNo QGiۨŀXY3ܼ?aa\]HMc[k8 eVE-gjZЉě"LW1])א4K +C 9 MPԑs[@)~ĂH)0x9p(DN,LݒZ GIiF?ZbdR@nQ,`I!ÀZ`ā0 `QXY#\& &3 L]0' (벹it(dD$a)'(ZW!3`8裨, !ܚĄE Wrr{} JM!u J8.!#0ٺͻ !<\hO:!{ `.!Z۹E  h p/5%Y70ASh;ŗF"$ŧ/TBo$B&_@`#$Qֶ,&^%*"($8" ?H$QNv`(HS-   *A"hor$N:>C/JLv额rkYEAR9 Bh H8a1aC@ ?O &}'ZR?!E j' DL/`H,1DaPQB;}*B:j"a)#1݆h 3&'`.ZCC͸$ .Gd_ D.XX J9L%'PO6Ka&PqRĀ +C L? +@P*C8 &W){y=<❫E k/t`*z"G?Q b4C5ab ,wJ8Exa? #~%ac2L 3z #q sPe5}i oDpag)@x_Ġڿ J<6bW5ՠTr >e!S[^m QlC8<De)1'T3*r0DfM%>2ņqJ(1iA,ZG W}#̀vұ dG W0 Q\5([t 8Z~2jԡ9`8PXbxZ?Ev}pjBaz#C&Q_KNFٿ~ou 4A; cw Ku 8`+rM$?U`A6@a ^RaCz7;{g0ۖ`C;{?|~/v>j>i;Nir%gHcnڠ1HIؾ3j782rT=ӱ'@H@:,L& "6!-%a tdcbiA8jCPR1(03Q66p&Ayo!pbQY;TzI=@ܴOC_iCN%h1K%|9c<5}l#k p!qib ~@`Q9 zFx6GIKxrd'*p>ł ^:fńb/CW^ST  >)a _bs 0<_{x]Ή] )PK[:Fwzj W$!CRj$P␐KFHB':[eOgPHTO` C¦^g`Q+x+zHX ` 1zy:+Pp=P H̤` E4jOCM&nxeIx]cQ-+COg||eizߨ9FuF CPɜKRrVjZ2,pO4Mӆ 4jCBZm4o"QPJP[4٨xNTI6{O!Nm9i9C*c Ic[(jP8}[u-'U {?W(gp-٤$Kb@yfvd1 Y%fr FC.:[Δ,!</H ckSH%Q'O&-C;/Pj7^MCxz05`E+f2fj[#ICy/{ YIAQ@! VbV`1=y4!?IdcC.~ a Wys־[lpPK@Qi.P*{ YozsֶlCQ @h,`L&gZמC.#Ay>@;.|#@5d< !X% xpW ,EQM E[l5G BX!R0.;5!p_z !XaŬs;.ry00x*ZTH,A@)ti 9!Vid,P<Ѹ]0-AU5cu)MZ) JJ.--Ψf~ ^/PXu0F,#}`;W^ST  >cc^*ƱJo**tb3Xhi49kA:B:yxna!;Q pTfOH#=d0 lmyK/B-=АZщ@T`N`a81Lĸc&@ C[nRy0qG{aifAP w$JK-2z(B /-m⿐,> ,B@04C mc9$mIRq1 C"\oh.eQ 5~9':j,DpFEϐ5-C[z`1?q0 rTLbRmyvޅ )дwM5݂^6x7-> c0 CfϮ1^h R9 lHpP|h2NZ9.jj'@+0hZk J>!&M&@:qyU4*1[bCV8z+N Cp!gU)lX|tXZbAt!+,'2ޅfBQ Xb5I%=%)Wxg !8šJӖ% F1#) P+@ Bvrŵ\rVjZ92 A8 Mg{rU$~|鸽pp֩ y RMZ7C,=1"q^;I`DZF#b?*$M|h1#[h,H|DCd4)g  G4>ɼ`hԁ%G04 PAxdшty$O2~F"q`"2ѺAdW< XbhΊq4  %<`@I O|X5lZHBjK Jqf bX H GZ =3L QhPi5Ԓ)+]K(g0}xo}kbQ:[,۟D@^ a1;3mPA0 |nlB !׍"qO0DBs%110 =DW0,+`= $: Op j4 ' ` L: v` t_BlKfrxz.ۧ,x0d1uɠ _5ԣ'7(` ~&/QlFx P (HHj@\x :@lcC 0g׀a5 N) bN%n8w"q9NXىq 4J Ĥ%iIJ}3(D%HdV_T<T0|HF;M00/9 HݍP"b7z- Gdc10&e:,ZnBV4 CKn !n5fQ%2rq@~!dRi`8퍀t^+$..!: !,7! 37 `M4a0``g"p-% #c$%'IH ˢ)1d5 ZR *Yp &p2Y5 }? Xl`PB~Q"Q"&:1|ǜozAe 5_Da4({=B@:!CWI`8'7Rtn R:I0!U\`P` ZOҔ8 "pG8iHDOBz@aE[+VB0 B@ ڰk~Y}Fc+LG &M&7T>8u:8U|\@cĐ |Z8~#[@y!!K,H< *˒K/I[$X YZ<qA@ !F8RP_lY`8GȘ ?&1!D +M!0l x 0bJz΀MK ."GA>00MF# )L!lB&ĚZJJC@%Fφo<sd;%d)0@`o-8QR S }/׃=U@10^&$2-#{ $ l CrD>M `>`xK@q0.Gw҅~ 4P RtJC;p'遃\aKD.3VfE0S Bа ub)NLRE6IL*rQ~|C '`8@+ý )vS.Kq^e  `)HHbB WHA!* !e ;&$'#A> ^'`\#tl9V g;8k@qaGQLEAhBQZSp5d#:xE4omu /hC kbUA|Ԃ'tM-;*AEփ K, Y$Kj6ڨK5@*su I( # h!pZE+. wa&s.O VRn_cy01y攌ނ\: aE$>Ϡn$A eג>c5#D7aU+~܎']Opd"J! 3$w;ֈ_hj3HE0BB\иH7R 9bP)!AtA=P TKCz^ #SM2n Þ|1< KE:/SAp" -X, C0Ck5,YBcIuP:}jPlvQe`7A#*"Y81N%Azfr` 8(4_Œ8;. po\cX!6GL > Ph7,5 g9_-C(`4,&.;Zv ;. q|0FN<|8xAF`hC #ųZCH@)oM 4msSأV 12MLs.Xv;. wwE(C}&&.IjSoUpxN`QXb@BhNǢL7U $ۜ/Y@9݊헴!&{ `.!-QD#x,)L#[XWKBH*r Z ]bID;. p0_ d: !j{ k| 8[fO|axĭ/σC?&}',C*j|v B)4 m"OQZh{! ` ym"^N&NMma7XxZ`" bHO2%%UɃjIG]îPO̺# `>cG}<$%ʵ ;[g)I%Gccu|A imAL$Qp6#R9JX=! + V^5S+5{z)h/rl#4AFP*m1  ;"cf``Q؉? ,;0({0Ё&a oI͏U m”͠?h+h7%jJ% V%!Y& #k8?GKM@?M9 @( f5@ ;h1Ti']d*#>v~>2‘@\m`U&3K.Ƣp?4!#( ~MyBhSdٯiu$ hQnX ksR|(pR3S='%ݞ;u,9p%~ ;!7ϮMrQx0Ʀ'`7C:M̢yw6̘~7UhZMPԄ*2*\^`8]0K,XTt7Ʉ=nOc|$];)1H"co> аnyocX t^;,"p>&` KiiggْVt>LMj^q0E BA@d$vz`E C4Xn;.Ϸεb A:HcrM3 e/k΋ڊENLκfF EsIzӡWyD|U{ia;z^5 hzj}=<=("Yc r%nBi&:}j=$@$.ef kbV`1=y4!?Idc;.~ a WyrMp5 ><#5>)ymzضfh 4&3k{;.#Ay>abY 0̲Fi3.P  ^;.Ե9-KO0qINtb RbPɡ(pTMv2 Hkư aOy-Krcb"C;.|#@5d< !X% xpW ṧAHEB 퍃Z MKOSY,:GKtU Bw%;c3BÆYk8;.ry0TQ4Z#0W<3D`٘Ĺ,P Mfhd('BYT$!9 `.1E]y‚*GEUQėěbTx%Is|$k\ruxk ,Yx:Q#_X;W^ST  >)St$Z`l7^N7Ha^d76pR .0<-9QD P#֡UO_DshIAe xД:Fmcd$P^{ \3"V#( K@ݖg,-8 h 3 Bl_cF.d16oҒF2%v q_+@#qK|S=⃗RJ - <ԫ$yeF&ܚJ`$Y; ;1h︹%fH(|}Q9CDFPńvSvQF=izߞ!FBϚ 2I*5>)rR’;B18G1-\`8}E`0Ⱥ# TKTK]H6 I&hgKM )bI,h'jrifn_3)f> Icx.OBd61 줍# I t>U@$rӉ'd!z쐏^J?7)^KQ cM(mY(4JS + Jdmԣ "Rtg<#,}HCJTyl[)m;.:,V?zk19zLYrh1 ЂRI{+UOQHE~ B kՒ2v7-f&`à Ch6TE!O,Zx  arz*v996n a -KIBFw 1D 0@Y,` Z!Llp"py=]OAg 4L<#] L  lbӲ<dJ `/bJ@C)hj9#c"qWZ@Iޢ2l bvAɉ[|0GiHԳbJ tE,H*L&H?3 4Gm 1% /$x9qKP/i$c^bJB Ԑ} Kx&V b@1bډ(LB `h4#3\q~ڈbi _≙F ]NH7 aqW@DPdX_A,$ u9M (0 ܬe@  Őг@ fDM(6~. N&$dfIdL07D &dS0(|ŔZIi_@1@"R@zX>vL0$yma?[R`qaxF z*$,L%CXI Ha J (5q4 ĘMW$ + U9 !,% LqrHD$ᥖl&! !RXҘYat*,`H@f Vs`;P qe/KW_a)Iy07 HcBFXA@*;& "K7RhA|&1԰ lܑ`[8p\U/ 7.gvK,t`-, d!@a@ I +m @0X Qe^ !L @ !vgS 4څm5TԄTK8ryH22[tmm4ԫlq+@Q4X~lU6H.ɥ!\6yFi F ZbN8=&㨣M bT322"&I4@4K0IQY5Q5aeUYT~urZij"s5ӌ Q"qcցH*K|[Fqs$sɨP8e'`$JLrNk86CTk-T'6 F "8^[pR7]̇#c+a GVoUQ,Kȗ-uVmVWSE80mFz} mSR`Q 2tZpHvSKԉR(]hq 8tc>KKh  *MRڜ!;44`c#23"2i$@(8J,O=PQUIUUeYfaҖɫҔJfhD UQECPu]l1Xţ!j5J˫.# m[iu5S/n5'MgbĢnF9J96s"ƱN%;pMSE n_-$I޹f꥓ m N,d1# fjUE*ӗAnMEMc %S!9qAҶe\k gH㋔ ^JJDtBSiӕ}M*S`s2D$#$*"SQE%MEQYaef0a R; WIIyUd阹dhҸF[njaŨ{w \u(r5_ھH8RBf/M†&j^t, }y} vjaԕ0;4NnUNQLaMdH&+<4t%iqh`|&BнS m\®JDEcYfrjHR"+I-y*Q*hW_ GCTq}; !ZbV6˫VQ`,/hbe"B%!X>MTVM5A5IUYue[e\6J@)QҖ 4#Y:Y.R5)c)ibd4D33FijLQfZ!` `.g&=%?E~$ Hj%foɈR4cIiO4I\K/aN2>`T)!Ŀ04WrY 2P @#y蒈:0&| @o s@ 7p'mdxPav/+3M2 pnrTZL0u! @14 @pFʀ5vP 2!RMA1? % pfq(45 XI$ AO< Jx50 )e19 i }'ݵRqhjPY01[=,eTʲY 9Ѻ_J1끸%(L|^BO6$cA77Q #P !p.C&tL `08Fh0$ ߀|44!$bps_brBi'[\ ` P:h?Bi%p Pѡ(;iI g4$q 5 {%(@KYmG:ZKԅے*tPX Ҳ16`oy'a4 JK ut1I`nO SeljQ'|1ZG MeW&E~ܾw $ M2$ČLOnH&}h1X A7196p!nj C4& @O{<ɀSOK[>T>0(Cy$>Ě` 9$ OVEtL&`3ƒK$IF($ (u  G⾼FU40fO[DJ%0.IPhq}Q, <&@Nbr (AIR@H$? ,Nm-ZR#~x11F 5$Q6. a2@T0>Zp&PQ`}X|`}M"Aft`7MGD `G~}zH%bBdZb3 Iry@ƾRO 3 WA'&@S*Od7+;|D,IԓFN[~ 25niHs%PT%۝vEAK@fPD;C!:0su:$ԅV┱ۿJL,/Ivcd0Æ@ >_L?b5P%D4A&)3&πN2, #p OwoU$ 0RȄC/E>~{.B(%I$ZJ]c@! \iCsޝC~/9E#GpG` K/#/tղs\N0҉gY4}|3emD Q 4uI OH>7!RSW雀 05(PgT|ħ]W{~~' A^l􂶜B 0&6+N=FW ToDҥ &F\}EA|cb1WN zyjڿi#bDD K܏Kt ?DŽ=ѻm,yUAWI)KaN{w&9{ݩ(vp$eO d0qX38'Л F4 $!PO3DvM&I3e2?Yfkzx#v2HgH ~h O !q0=O!Plu,E8ćˈA6J91tX壔 T NL/% vLL:jJ"l+ ":DلaIG竛5NUaWd4()$SVvתD4Qþ㸻N{ɟbTX/Qowu_>[aoKW~TLN(,]s/qbH[GG ,>P?j627};N!bQ19 Nߙ^t$ggqTрd1#&Lh S`B%0w )h5< br;l4㪪xQu0EcȺB\nATlOB44ݤ E 衴)ʐ@z5*]O3{^B#'4TEZuګ-YbF'("PEX,`0;5-NKR܄!M$3{^9R5lW cbYɧAƞiK'3.~ a WysS},sBB#nf4>Ě!9[ضfh 4&3k{3.#Ay>}x 3.Ե9-KU``bIބ=HЪ]A*D#4#]A'ՉFEXy-Krcb"C3.|#@5d< !X% xpW !2i>0M`ʃIZ04[7 #XQ-'(wC@o{IQ%HWg0Z^983.ry0  z%Dtkx> :h[ Jy7Ytl#[Mnj ?ݎ4xy\&/`1KY3Î*EF- ӮJ aa`Hf F/R (4Œ"&PM&$mQD !BsS: '$%5k-f В5hFّ$jm !A r"\8<(z^SKv2d 3[nRy0ig1qrKCH6{"oC5VޑH"",tى?=OVEmIRq1 3"$2C`Gl<?#>JEĘ?+ptH> @cK , oXD#T)fjIqΞ x)xZ*yvEcE.%>؋@C. ϿvId=z,J:E"%atZ a5! *Al"7d C{^YFˡeլ4aXA Cfa-NE T@;{^9քm`g B&8<5((a Fq#8 0z*ByDFuO˪Y9 `;}~? ^QQBsW?QKdZsi6 FR@)e@ d]kͶ;]|l n}xLiDs^0T%#L42u!nFq ɨ3.4̝| @`0}x?l;]߃ڜ4 tZ մPp/)UF8"ߴxx7`[tiʶ[pWׂH*R Z`1XbqC;%0r O{.\'smt%HUBSaW!3SӊD¼-;F( zae-yp;'_4Mk`Ì,0D*LQ7N B}O$-`Sx4B_= K)ʴߡGH^6R3h&&ƔC,̚L`ds ,uN(.L#}`; VWS)0 pf 0l x}MZXl=^@o hSdo. +&s!b q  `q0^% 4uFD'$b])@g.-:KB8"Bљ'OrJW5ϦzL)Vvrd ;Y$qgW8ц !޹9{vX4`קhB#"S m-nϿh5 褈'AH-0M*‘k6C8Cvg>]0 F3Ej,Sa3}iu66ՐےEI b ;!Fxjq>ջ H]>GYK!EtfimDaLgW4m! `.1AE]Ud[5<f`_Yh L#O(d Z4#h09ƙЮ<]M /fjҮ yTGo5k>oB6Uco'NH?4'M JFp*ayOLSR,:B> {(LCs22%R$EUh;B;SOO,'F{g7V ;A>}MR !;B; /:zScZ W{薒bJ%lOHL4Р m.]Y&%QmV ӊvG]Q,PaRE%:Ŝ.㪧&e"O jT# F"+_%D-AZBȣȡ)Ef) d! 㮄PL&=Pc!+egYg 5:fNfXO 8B I& œ3.!I07TC& !&/`?Z1-Pr s0\1oZR]lI,,Ꞌ#X zBwntUj2pl[n5=&@Q?I5 ,*p:!ܒ8 |Pi[IϢJzhhĒ&tೀ*pl 0&=&pET$nšB NH|a"Q(ϸ1"qp"YEiK~,0(]bxg&2@/x?D0eS)2x$-:'j|>$Pad bZp"q 6Y0C, n`c'倪'PJϭ$f} HOXQ?z `'@$L>6b@mXa_n7)P11OL<DS%IK /tLq!I"qa34l.KHe ` ߅tw ) 8L0=XKbi'ν̭&? cGNSq\!LC;x%rɿ^ th44)M) 8NLF@ :pq(,E $DJHġ#(T_'Пտs7;(dD[h͔y ))QPKpB h!C"@h,)֜{KlgYc@iH@vpb: CpAHW$Г?=#p":2!J,0'Hho$9kĢoH $[0)Boi /! C$+4` 0f`?tU'Zl `+I@& H π0@  {C. 45m j`01!ܱ<0O[Y-p#$g pv>j"00p*d)'8`dBKt$rt8\%1!'|`ә$H ɠra" 0dԡqYcPh!K .!P0D@&`%#K +DkPTL|M+dw|M(ވ)>԰@΁tC !l 1>I(4#gC &T'pĀi#{q#Fٔ#[ַ {f %@Y@,hEh9^{CYT09P=a" m #xv=Hc FK, }>F$! @ !i[iy"GEd޵a$2m00Ehe[h#(692^p8HoqENqfZrWI2+d'΃+dI͌lyhIZr &mvZ ±[leb!d9 Zg&o]tZpVLv2Ռ,fi2prci(8YLfƫM6Yb۬[%O Y9Zڮ:]Suqn8GjT\TVMm8-#q1_I4Iģij#`u4CQ"Dd Y3EUR~]`}a8I䎉cokDMior&6,\ `v\kV,܃t> MixD*dB'mLmaGmڝ.4[ф) yE 'AbAb'^H#Sp\.ɈRxsj60憭l$#7 T+gd9;=jksMaAƹunE*풽N8FW1Vv=pVtʓZM'IRئZ#"8̗bd"DR$C)"҅@TETE]eeaYmҝN?6|l[>|ϟ58Ѝ n>[ƭYW[2k^TeuaT7Į2M4䦺m mJeRZqj oRRy܈{zD95$ Qs 4j"n[:")؀CȀ `Ц(C5MԒX 0H&m/d|ر*7 cZ qVv4viDB^_Ę J4X..|BYnWʕf4Kh,q KSmy^z$W@`ă"&"!$I#*nHUViUem\i^m["né9,J>|ɁbhЛqU(h`+ Y-eSRZ3U[9|'9 zp쫓dO:tJ뒤7.9CxU [mP=Y*>8H\`p|mZTpئ!3Ȏ9wHFp*T"e*JtHvs]4dd*x9JiR͚RrBULNOQ֑45x&G7HaZ9|ʒ.b`s442"6I*⒋89FiǗemu_eB9 1j3nK*(aٻ\Exaȳ@qбi]5w9arv⾝MXƢvFMb'T=saFe<0ф9Tl2jjb[mL`$29ob:\x䢂g =aJ$mȎ F Ji$Z˺erX8O6mDGe&贩J3XFjat6[WI{>+\tuN.un)[ KV) q6>m bu#426$@i),(DTi\zX) m 9O rK mQŠHAy:"n= H m,]ea-{ie $XͺGI%HrJYƔÓG`@0jrU!5V].b~$")0UJ4ԛ`ƻYeUIf(stSA yPM݂U+d橱}u܌d.Cm"a%Amox2bq"Rl%6h8kQIiZ[\W8DiI*m P X`t$4e3K$UvWq !Hx'vr2x(]6(rgWEC%1Y>2UMoNeXiK9Fk=J[ bqkI7ktVSf lo^#Kml%vL%voWEbIUzctm_Q"&lqVF! `.!bfJKpih+ApIjɁ;l0&N9z"C D4exx?,40 MG/# I`bQaHC +%4*0[Qf4L%Qۧ l:Bـ`@(AH,zn' TL Hg@-*3! /ρY- X0rI/S| q\&a*ĘL( d"Q$ % ;- ; !V:ωiKb)Q` @L,i [qVYcPp @LB&CKH ,P?@'(@7 HK h(XNvys$5 zXa+S5^x0g)Jv{\|`qGP4K$E7%Z@/^ :!F]2ɀ:؄(_RbZ wYeG@Ohɽ!2rOiGy` ci!gQ'vTM[2K +$l̃MqBm>2YY)㢘 eGR芋u!hh+/TЇ\zbRIk&G0.F'ދ/Ѳ c]wK~*+~8kx$Ynlr,1(rKɢy%߆yۼ(ǝ_tS 4 B RII>03v:!Q$DԝC1d+[nYDR,wWGh*{-d]lz@k_ˎ! *V*ebOŁ`%Jډ0Q|8(.l7pxeh H,7#ۆ;+Z Oy_X{G ܐ]$wAa5{Yjq3fHysQd50}y:<HyByEK+J)D\eS5@8ZF h+,xj}Xa 5)MRNLI`~&@AƔ]\X@TY/ĬF5fdҙz$q H?l}u@vԆRI9lPfK2@J_b(40 +4WoyHݯ!?'.@bL&QIӑ9:d2JKRH¬ut΢@DüM&/y# <&rC $ 5΋ )HLxg(@B5<).+gBIW$m!Pi 7Q$_o1H\goCq}"<L4XEJ B ,_j $X EXyZ*Y*OfտuP-EIB6(5!}2èL CI ;@dx@ao 冒)dM(hUzd;A4|M-QAlC`ƈi̪ $lgaН17\;žB9} ItOaɘ;xv 24aJC@!G `.![P(ܓ18A", `+0̇!٩jrZ!ƒi ;x}&TIː}AZK cbYɧAƞiK';.~ a Wyvk׵PXdЀF{זų5 F@)0-k^{;.#Ay>hh(7b+š>p8$7%"S5? 0BݯӃ,Q@(y>Ӵi1%c H{i;P%%8gϕ1d4* rY`3O-r} # q~3ה3] 3[nRy0q'sNA "Z=X8H'Mh| C'(?κMFŝC}p4!B] Ƿ=F"kmJA 3"m99 iJ `0-wD؃ꢃBKiYs}LvZ 00 ĤpwΗHP°H$dyL(1?'x&#%s"$U悲HrG2 K"fٶ#6d؈k8 *A_*$htH$'&C^Z? PGɆtKJR0?Ep#e亙 Cl`bO *5 { "|vFiD CPfS{GlE "ĄiM>A;1I` 䞜# d:%@wnU[*-j"!t6J>mzDUwmHe< ;ht6bKb2A`2  1H Ʉ 2n *hފ5ƐJеȒhBaeV5t?k?;^%n6$o'I2 Cy\Ԍ|GE ޖ+lne;CeXE*kۘ"# %#bwNQ&J^ı*IZfF"d00])mG--B(XItREd^g%=>2~)3޳!PLgr¿QFOeu./7QʊId LTkY6:u9B1hOj;"CF}λŲp5'gDP&.͋XQUU!Tԝ*|7u5,]ј;xp( h+z{qXA`fCԵ9-KrcI43xv$HI(@IwG;ӫS(VG~dZH!A(a3דO}x!{ `.1%A 3.Ե9-KTv"N M0i3I2.M d! 40zf40ґ,.o%nSbV$XH} 3.|#@5d< !X% xpW s(( c^Qx}ɓEFF aZF h(с @(a ;׎q3.ry0.BEuLxԴlt(/}`C&eX]Xu0F,#}`3W^ST  >(zit9h4] e47-6hD Fg# `jF? hHDҁd8_ ,g6рDZ TKTby#ENmB0 X&3ה3] 3[nRy0q'sNAR1%E-  `_138}>gH0J> rJkyA(rj>FoO\%&i>Ay{Pqd,ۢ3^S([*2S[WB5%I  3"oȳ]#L &2n İBO&!I@; &WNaEU8(J1m̓[iѴHX p00aC7>TJ/(æ'䱴F9cc"I*B'wDa1WYIӻG5` CPf2Cpԍ3HĀMNDBDPj1# j5$zA $ɹ?ֳ =D>_0#o|XS}Bf1hњH@}~Q3 HhH 0|YxN~ > ,9s ;Pr,q!?ar9q{7h47$!}߿P2VD Lso4hyL7%mbQH#0o"\35_fap]Z)q;4..ќ 3RV|Yw >PCJ- iT#5k=QhEYzt5X^3q{ 3-그 }oc)jɷiNZ,ε2b֌Sb8:PΏ;پQ%IX꒘uB3b*EIBVEEEPԟ[Yj(FFBB(AI+΄{1d97 #]9R(fģm@2ܺ9:]lfJ=@:!8'gOZQYB3R`oewBJIDC (FJR'b! `.#HRHRSHR")H;`0?-L[oCE'o@<@ؘpܴQӺy4Pr {q2(%_p C@Áa7XbRPwv>!0 IN|CB _1 g?ͯԓ NfCvqOA Kv<۳缽-W8(FY?weg,} dvbHb{͛-*hg BI\# ;.phM& 0Yer)*O3c :\,߹>, a?gcDs@5Gedn#yzLow[W Μ_}&wI|^bss;En=)KyY4 ҄~v w'\G@t蚞k腱Ih ~gbKJ[s@iiK?Q)KѺR0R'SFR)J,R0;)JJR")H",{%)JDY)rJ)HUPhTe{@-HO? 8'-ѮTq:íuOmSJR;1jؤa)JOJRqrN#IEF83)JJR")H(w)JJw)JDTrrENJ )l^P$c'v C&bHScxtɀ&^I0 #l(Sy ;&g 豹3<@06(7{̛: k &Sy6aVLJ/^M ϻ* >W}HgעXfT%M !aVgX εH )qw(Z7 ]M)0~;}c>ѡJhSƩXarER)JD+)JJR")HZRu\)rERRA.F7 )8~4c/rO>π-+7u|XXbkTC,F YY8.@3)璺3_{d$㑺y9N)L,{ΆԐo җ; XuJ) O>Vy%ޤ   J[{ x#$+FX>)bxt+ %Sde NHtݲǁ,B,9^8 0ڀ?FHk`X-57rύ)_ER",R#)JJCK.=R)x6)Iܥ)=\)(J=<{'/dx 4&Ӄ 1(  / Gw``:#/PҎ&llPgbM!nќº:x` 9 hbO|OD'wa05i-ҍ𪣢LO`1"HGY0gNC"@0(hL~^TSGbvJ Wߣ|Hauwxb-$)OX RJ&'JR+ֹJR! @ !e-umר5qVdL!GLh9&wK} Xl7$u8u4ՒkG9Ea#cxp\hk ɽKTr L[[Eʭn%vqfv_u([0JEyV9puLSs25:U]!bd$"""(TaUvUVqweymZ{Dh5|;[$idK!Gb|5>csrkc{+ړեP4-,I}|E:Jqa-mK?{ndW$#\i% {m~+2D) IT3+U7䒟ҩ\ |lլqfʯKq\MxP\)x I{`5!Y1l.๜jDA,?4my1y,IkieG;@U0 NllKX*| M-P`s#34BDmnYafmYmeq \m&klRk+\qDI[*FYVdmql: ~z,Rě5//ɍ9δbVM 3*BMogDXԐ*6[q25FSv51T4(aH+5q rlR(ۑ5«NM@4Ԛ{tQFǥcqh&9)V5MJ| ijٶI:ufs}obnH%5 Ui9q»Pv$ܭ2WGDHmbs43C27lۺ)]%P]ViFym}^z)`XgkyHZM(W)ŸSU!D iIW-LIU2pWdb 'O@stmm8:4q>qٱiҝmu8EunҒWҕϹ"+p .n6RǤ)*"Ӊ&QTM,EPjB:hejeQk$[n7kIqVbVۍ6#P&Z 9iE1.RXlRvjM@ӊ(/ܤN*qmj8TQ`d3DRDC 9Id}q^~Y%O.Zݰ%^,5G$2cTI6[5'|9 N=r'7VcnZʊp s!"fLjD ڮVj1|b.1DR sq1_EW1#aT}]OUI:Q3ezi"6+#ZزZ;ص[?kڐauG#![&݈kRx(p0c;5Y! Ձ^+(|hPY Z<bS$"4D6 dpC EDAEWQWnqbrf'Qa={JxlP#%7竚UB ND 1$ w%bKQB4JdfI'/I3q/= 5"uU85,EE Zr)oni#TE=mQhqơeu4*(ȩ+h؍ۚ6lRmњi#礥l[Mϣ{YQr6#ض-i͵G4 Pq#G%`1JzūX'4vP5a@`S"#33$m$@ 1I%ITE$UUaUWaive]uܶDZ15޲Uj4Yr=>1m6u\F[mn/X,Vz5 [j4-6Ue2q:%8ZG;ci鸎#7+"78S8PQVI,I54 iT:kcȚǩ(]7VV,FRwԒp^ĹQAl"ӉI(km7ɺf0,ajj8P9`Sh*F \A Q&VR(RjDۘ!  `.^.Sґ䷨ڐ٥)rD)J M vi)JJgܥ)(OJA\ r\k)vJSDߞxi91 ڀ(SBsB *vYX`%%0> hyE 1͵{FkOH)G]%HI)7'^ϸͻ&GA|uQhE%] GAf@3!j[+~7$X a)W5/j2Gj?%JRoJ(O܌(ClX>)HO# ԗn !J蹡SJ@/ J.QAqQ]8wsnSQ&5pGEGߞ πkCM'gpuQtK-JR~ީ C@lwUtLJـ &ny(& GN'5=W#0c/(P  VlG!t>(_;h?Ef7~c.?pK!N ~'O7v}>pxtaq|z 9~?;~'@+pЅJrv;/ul/ڬSZ@/!!HAe0'.t ``b o,46!($}aRxR1YIܤqhr. ?BKynTJv&lOJPβtq`Ȣ»? Z8Mt`Hf `7?<eѱ 3ᡩbYX7g/i|{Lw^G3|=aGGq1X041Lb9=v&S#n>RRjlO(A~8>F(XP yIw"Q=l7gM/n3g /nEC ǖc@Q' F)C}1 Y\?U\!<#4 +JBOXQ0LUNYIHE;F?~0Wp ,.T˰$ca8S b }zI8qbuKl9uɅ Y@: IOo71HPFa }<@b:H.hRW)H9iW?mV}(o (+@L@DZpOs !&c~`LC$ --v~t0rn,x !AA8}@a0 rW^A>~|_I[_b$`][iiFpsɩanGa$.@%>-8ȏtЍO؃x9|< M{ Ps@t~ 5׭캗àU6*loĽ~w(`y0æ0UOϭa0ݐR8^<16|B)I8zCnͰW@'}nLBOx'绀*&H1E ZY1NKxfB7'TվROFԀ謷ۆr=o},_4%9V0 ބr: +X *cZ~>Q _ Cѐ=&QTYWm9Lmj8uKxa0)mu-z^(3 bX]Fe\v @޴#O841&TH&m s.@147nqb0hnG߱_*_O8( { Et¯nW2!U=e(eB2O0R4͵H`83" %~g%͸hB GBv!vѿݽoNLpҐ:Km4@& !wF~?VV{59{ I_cYj0Eh <&w:.X ^8Oפ!$gRk1̡|@T0n7g0u^-]!)#0jw2PwI5,nz(MS,# \X^XP0j%HK^( w n@=m.ϮI0z7IpQ~¸.goZgs_w@+m :BOz2R{@/yt@K]&!jB~;Y) MB1,Ғڮ$̓bNjR40'"?o؆R׻X^K/V? &L5 l 69^Nny$0 &솒*ɤ݋No~m&9?i ٢HA*625}53$J@wŔn,eu^$j?CzKkq>"/ ;:8ﯹ$UIIo|P l;(xu7o9 v`dΓiq糆0A;,}q ;h. ʹٯ&Q?W8=ӆdoNNΣnYe WyC[|w%Qi-.M-) 1[83m߻Lϝ?v0IJsa;x4>Q/K'ٖqF)kkhMgJ?)/!Duؚ7(ۆ?ۿ~8!;l@lHoÚCbnJSٿuhԆƵ)Fs0fģ Nި AHݑ?rL Ȱ*уzKH@۱ϯ(A0H#>/?gjkzǮ)NI(hԄ8kb? F|tggI1Լ.Ђ+{bWz@)(vyj9XJ&bJv*vɩ&?Gv'|mwgrf fìc~7mGK0`i "%$i4r7-NoxzlɄϒQ07d ]oݖd[xI3{--K'8 O$!Yc r%nBi&3y\EC<41!`K`4]!#rbQ f=g&!#y,c `3.~ a Wys弳1 sGp%LI>pa(8 FP [זů5 ~@)0-k^{3.#Ay> 3.Ե9-KNzrG(%b tDU^Yo⨒B l'0hޡT=0g F> Ůa= y}%zly-Krcb"C3.|#@ xC,KN (- r#`|WEShJ4bi+(r KX <1!K`$rcTC2Lu jq JÏ3׎q3.9-y1[xN =-£<3wVG=; D%dA40+%?Lō80 !X I1J>&d%Oǎ354`D槝1~Ye(K 1 | @@ae/^3(ş1`/}`3V=x6 ŀx_=`^9A`1!9vQPCS;@cJt7v% tzLZ!;ٷK700͌GՒ=-czW;t 3[nRyxXӚ筜CqL@% & ZwCAked{M#5H`N߇mEGz !Y `.!AXW[g!FJF 3#b:TjUC'55TwyfRSA/VM|5,zwvg 3hl3LFN$آu-!Har6W鶁yФ6J+RB#jOzB 0]xnf^z. ˍ롺a2QoX13PCFJ,PR2*j)9pI4TBP؋d3ߤ:`D̺#:[g"5mi'2~[Xw.R]MēF5 C9h|^BWRdɓTW+a.ЯqF\3{--Kq:9h@oag(Q,{%8A$8V 3 aCR-B$@3yI=jeD`TB1P(=(1\$D # z^M^n{2[זů5 ~@)0-k^{3.#Ay>}x 3.Ե9-KNz x'h(2jCyd`O}nc'V\ bxg%!E@HD&A4b D> p$! `j[3'H3.|#@ xC,KN xB* I&gQQ!9 i8q֒aXto _K,|Ph (BFt` ᚰT =Dា 81k-x3.9-y1[xN =-_If [;TBbb~aoCFO' Pbx G)!7 ԠR=؝A=_4Fx](3;?Pc1|"ҿy2k7{8^-[Mƪ%an>Pʱl[ŗ bY}`3V=x6 ŀx_=`^9IlH@T0 oB{H1Raڗ+'౦"('<>A5Rr0KAV39ehhI>+dh@:'$.|4~oràF ;ה¸1ˠ 3[nRyxXӚ筚büm#D%oF),ɉ֥_ɢ0t[X6 rkX̤` 3#XufCG@K )#&FɽJR9|#tӽ60mIrFR`k$y^Q#HiP(I('貏O[qD*Rq/dC%pFւW= ;h!c9G&b0tKai'C){ v?Ь {;:HY%'!l `.1M %sGY6B;֢-b4*r|XPqp?yZ ;8T'86100Rw3WbбY?6M" :=Ąɝf!*]ВXB[]?ĊnQƳ-`3D=9,Kq'=s]FЪ>Rb)J`X67}vA6ybԉf^&E7?x^ 0]UdPnͣO5 2CМbλŲ%ҹhV?B} VB\+^F_[U*vOP;elaV`wvfF_90V`ټ9l7u}Y |`B` I|Jⷀ*%5 Ah%')/il7d''Ͼ8*5@>Y6@d0mxeE$]`j1œ] A7;\ B1MɁa˸d r" i R/|Pc*p 0.ۧv(3`: hO \89ٷ1|4"a I `Ù@Xnd07^( bF~GE!y JSG)K@i/8"qA(\CHĐ1ޢ8d , r@/k0367!2&! BOh&[ݲpHDkRR|oG Ϻ{`ĦI'.QH6K!Ĭ~n["qA(4"MÌzBI `6&Bh $hPSQdZB)C8jE+K+o_ 䱽Jsurl>@wlg4A_23똀鉼 P` =̺&Jv_5-/Zx[>^.8i J&)Y wHݯ$  x$)H9JR""qK Dh[jC)x i0o? !ܚG R4S@P;B`` (Isd|oQ%%ah43p)L .$@'A440Bh3 i9PI ba0`A'J!>! ΥciĆ%?&! {T|Np  JCKF~mQJF9p2hBn 7g ܁sBf F; KH+6a&9!10͉t%M/&C@ @kK+ P|L/J/$bA0 1& ) 33WW_+7 p>1"tM . *p!Bİs0P! @ !aEn6[WbS2232&I@5$MDSL)>jL{ 43j=9b#OG18zA` Y;#s:giFeXXζJ U4pn6e }[-uMnyRMb'6EN)U,x5iaYFJV?Nb[MrYJMOZ#n⨙#[j(`s2!""$T)%袮I-Q5<E%VQ$QUUu]gYt5w]ZZaBUmV _az%90MQ`a%(kcCMþ`!gĜ9jM JZ"ϫMmuTYڭ&_uXz}UN0+}M#AsDT]5ٷьy^³* U23Ӵ|Tj; VHJz;)wIZU)W`V .j$&AEȷ!xvX_5wէHʘr}\h,⳻RM+7#GIZbS#23#&I$@飈,IAEVI%YuYvUYY8Zmi:z6']tErH-*GI)^FIR9Yшt׍PAڰ gMŵNk7!*VLxa2hCtRWSߋS*NB$PM̜)Thƫlqu1I+~Hh!iT14ާ<13*4pp415U&+ǂ$ }N##JNݍ*DLX,NmJ_([.[lHH': J$Ifi[(`e""#"DI@+,P8A$=%IeUUF]Yu9^6ªǸ![qaUKlr %QcKj*nYT:a78C!8^[N=amNTEJT,w%pGr"-t=eaejZ7(aT̤°oȟ%]:16Z~!k!B{p[8FܿZVnpM`%WHh1cMmRqQҚ$DH`a8.DMUpzߩL#'*"Vlb\!G `.!q(  %HKd9p(@2HF3qM%`@0 hLE&*0D4\jzz``Tc nL- t`ѻ ,Zyi禞qsah;&CSF6RoR80 fxנa hn@b@\G *v ֬U`  Y `Zb#-01!R2~oJBf` -& 貑p +Ӄ I|ҊG OHVĔ3芲 nE(11 %'IQd! 0JraB?(ɘ!A'>%L1dfBz 3e@vɒ^%E ` ඓNhN6+uU.A/cyD$d#6#ȂVd#mho/Ȱ_@ -#Y,n$ LD* tqU1@P³DV\0*p 3B>xZ^GxDhBZ'.K1( y#7F1}H>`mZebbK@ Ec R5)  4>M096 Ħsb# D̬4L?Bc;qen8?Y8bWDP9(`sn, HH @VH+ADjS#"J ;RjA<*|$o<1B" LBX\ 9=ݧT^h,y$k:ɩ$7$Lǖ hؤdBB-1 PLiPCUY"Eڢ)zo'A`2B  0 N`EYMSdJ47j0Ok~"a-`,(Pԭ[Qc7=x:pD *|.z|% NJ<`i7g0M B\duȁ ~+K{'KcKZq .ZM]p{XgkMtɎODplTKĎրʓn"ЁN3jPPa #JR .ӹ]`Ow2TJ7M=*ni'+-ܘ{@)'W d"`h JĴ0y`Hè%1K~~ubK(4B se7e@ J +9oHŕ+Д@ ']`7@vL&$t~ukx ɥRB TL`2Zm4p3\[Єgu^ďX4 A/ѓ`,>&6!4d?/?n(NϘ댔d޸;ɾ΢CSȓCC'E&@;+NTC-څR|ҫ>څn<_*CzZ]ʡt%3{X뜩/~mVWdZfIA`V X,1d9KSԷ!F4I2kw4 Y('7@0xnWC|i3ţx:xV3B 3$ a#8"Q f=g&!#y,c `3.~!{ `.!/ a WysHH CB$C @bJ%!j69ABPBIxdxk).(!ٯj0H v9kZ3.#Ay>pb|S|cXu.  ]•X04kX oĭ>h&T4_H`c٢hGw2~9c BH;G'YGp[E<3TR]4ˢJ  m=5WtO%laA2_c T#Luo#2M9y KPIrGi楼y`rtA@kY׃ikLa;DJXWd5",,騎Ugk|;5c0 ;"zܛ.z_3 Z8 EoTS,;.[Enרh<4=4jjf2 :@of! O~ked&;P G6h 1 =yHR&b.gIdÄ쏡k>>:BIqY}EփBPZ$9CPp?HHb959/ʪ;d;.g޼4o?>ȌZAbŝߢ0ϫzY;{X뉂D[02BKY1oHBX fa3!vjZB1H2kw5 :sF,@6@9GLHcbYɧAƞiK'3.~ a WysϋBlV4qn{Q @h,`L&gZמ3.#Ay>a[`̅8eEc补.yB0M0RԩP4B }QH! &bµY(oryk C# e@@Ҁv0hK!S;%Ya $ f*p ;b iC. &6ɠ0yɀ1&ܰ^ % 1`Pr~ qrS= 1.MG) w !a3C]̃_:RT,8*p -ϝ˰7 PLhh xbFe7$8d0 tbC( N0!;};GH1.i|p  "eJ)#9"E "qPxݟi E %Z u_(҃?͑xaFOFqLpDփ c"qXZ*L9AH@"-L,a0I_$JC Rx ĕnPI{ɀP^t)K77+g[VE8Q Vl=n4}ԗo2ӟRsϜ&@ؤP Q1(cH a(R"BOp *Jt?J? V&sWF/tׄ8"q7K  tM&'F*" vh :@^MI ._FDcMK̲oF@D*#qNa'/IJ!%pݶ Z3BzI'Q:JC?2φ(, C &N?MDU01,B gx jI޿ X X4uψH+} p"pQUΛ򏓒HM 9I>x! `. ?A1bcg|t10(}Nnih5膲BF X 0%:H@Q=!L1&@ #}M {uzKl 0#JQD', `eg_n)Ā=8Si% @P $៓?DѤp6A/"pW% s_9 :%6Th 0 .\ do, MPO >s ;2i4&$7 KH@w_䔞Iމł5;!1j jv2DCǤ\Hßwݓ  "p*3$3 Dct5 䆀t(l2wN %DDTPFs,T bjP Bq ͳ%0≡wP_ba`=`a)@м0Ƽe7J 3%+lO" 'gI-Z% |Me)?)% pQ0v\w",8JBR$hLh " T0>܄txe\r8dn !]LĬ\^ f"mJX*//R,h&~rӈ P`~L}L}Iԍ2O,Ђw#x`f3im2r0 (!Rt/-(9@@: BD (jRJ֘6J)Ġ@,'&)1Q,?Od]>(^!BL))*vY4h + C9 )yQ31BҸ&M;P90RHG@ ԝPI|'@&5L jGi(>IYDu0Th%bKIyKDQm@8B\|GCI? k 0jC](U0M_!! #x3nFceQ0 `1PlG ) $E 0 nJm @ !/ O\OBq +P(QD>M/ ` I h @ؒJ>ZA$ @r5a&P 0^MP CA( @|4AzSJ##SpE- +jAZ-$ RY8<# 7j%نXGNz&8(A{:"$  pI9 E2I;H(C9hbWbjE<> {@uDEL+\L'%SI3 G *7 &Pz~}wXvPґ,(dFNoxuR$aDT)-@"1hBuE$=GA#}5M /'h ѓ -%=DAIA^@GC~Z$lX"A( @ "ml`1@A4/ 3H5),~Tł/ߊX~v Voڤ(|$`,?T_Z▂&^@u2 _<0ta~&ܳ rg߁ 0d0&#l/ _(Fȃ (E"2cDpd2!r{< %ol4I,~(o$  rcI"J P"ASM}1gf!aVv͹$ x4#2Nw}0 1k ~RT2-%2͍QfP!}/ߒP+jK D! @ !SMa`ޫ IDlR+#\P hK;-5Qf%MB+{ePj%$>ѶcA&DftF8_,0Z֗(r =4Uɶ(;)DzlRt'l'H8fW9G(h”p+DX6姃52qMКbe3EAElT (5m_iviy(`yT-k5~Tɘ\(ΓZqsAmĭ PNQYU&҆vX?9hX"ebLJB @lCkY $LܑNX|l>RWm* c.u7dHmf* ъB Ef"4xX i6-46$k}DIjչS>>M֩o=u,bkdYS#>ģl;E uRXB?K!n$ Xl. Q_Rp5,l`u#3B#F܈ ,4}wa!qnޛڙV*f54ƅ**dtiDLW#ICzviڌ@ƴmWYZ6WV3SKP3B2{p2Yi&I#S%S&ɊկՆ/嚸s]Yڎmcj(-I|^lyd(3*/ቶ3"va!u*ECIR bka/ĥԽqUtf4Yi` bpJXn]R%(UIbs43##$d4cDOLDS]5XQZeZnrb):p@6,ƫWeCJU957v(ԫ3R昚Q!M*)r"c#LhZKdJ$FH Rkyi4a׎T޷2Ͷ (ҢLzptYZ!m0鄒7٢W[ <š\qٔJSN.,p`cx-bhE19Wf&eU%an38%-!¹_mT6qjfE*!Tm*,Xmc#nHزcUtE]h4`t42"D8%0bMEE4SADYUee܆J7FÅT}TX(QsVpǏ(A fE`g6idA._?id-kk0tEH=.Ddh*OX3a&C iҪ~IʖG #lgrPrf9WC9z>+,GX'KM0p@WwVFN[<f$fѢ?R c@ά{~`40˝-&?P"i3SM&V:8nSXDTI|Ҡm55%`rOW?r(kIbc$C14HEeSIaXqFUY}~qs+[Mf5N 9#K%nB<9 BD͵^4ҒI ~:;zx1 ;u$R7IqH.څ MM8 7]b-:[v9mH)3ZsFĕG. v5is j6dQXLftf$o'Y>ԵˮfN4efWlUB4\Ȥ՘zC&6BXiI\9ei 5-"!G `.!jUN4, pGNB!Vx$3ODG@2!#$ A1=&_ $^8*#lg5w+IL&DJB@%p\^O\3/ 2r?;XFE"m@WMb%031: !dK0'E Yp CK` rH)!#NuÕ3Eː4)2hP{:@WۊJI|muB!ȗ6TGhdkLthoz@/RPLNp{I10&BF`ML> Dɫ}S" 1pgyO\%.mebc_qGFL%;T` 3lK "0M &,"ch7͒ocJDp~<%#%jEP9C}*B`Њ% a (j F>&(3P_|S( (eV.4T$XFjQ  AwHW2(44B$6a C)QEDq`0.9|2__UTM. &Q4 "(Mw6V `GH*Ej.@>C4S윃{t6-B _D*2(m4PF:d 4V(Ndb5?Hjq :to_EL{?s5FD,~; ,Ղpjx/j&,W/~c~lCv2#p a4 lM|B|^DsY$ &:FрsIErj \#Z@cUjW|#^W3^DG\_[#)ج+PC2jKMw^Q@'C%]€)3u]q:;xzY8f5fLـaNHbPD+hc0r frZ9A i.3x{0ËĠ xTSasY\*B! !=d103. po\cX!6歴# " qɒc[,g%rܛYe RRvs2X.w3. q|0FN<|8xAMQ$`DQ}V Ah:}iYdib.f5A3. wwJ 1 I;>0ȡ*uUq0խnHydcO1t4~#dZ`$3V_*Sh Av-lG2{1AGld'&ƹSLPjz0Ft"1@59O?{5[M:7Yr*E,yZ@;.9 !6<Պ*BWwQ)lu0^ 7ma @D@tSe[C(0NRc?{c,,5'}a`;.W | 3x/Q (*%Yd)2a.]ʡk1EJOa܃2I"0dV9@ ;[g%(f13Pteڇ]̥t)ޑ,'Ŧ)f%EdɼY7m.XLjP12 ;@r02lLpWăsC7@nm* ?^otKO.ѷ2{ DM%~HO!(c!{ `.!` F[ul_ɣ-CJX0_,h<,HB? G: !Q,/ 17Bd 9#3K@=Ɩ/04~@n] ` S+ RTd}05A^BPA\*]8>/%^ݟZdP%_?b̻P{Us=UF@UG:$=-\t-`PS(/toB@'AdeWGI;DD`%  uO>A`ǢXdZ a?J" CXma7x$@6̹tH tq 6 `eK뼇jPP̭՘T?!wmDl= '@N O*.i {& .H[P䥦pDD2||& 6@tIBO8aTKDU"tʬuRZ@ ."4rd)<bJ2\nUy{RnP.fK *%:7t4J >/I Xq>pg YxγzΐM&R ԦR6j0R~!l̡A|ÀZ ?tE@1-- r)gM!ǘ6'a%Uh*;'l騞l'EHyPJbzqF\P(!GMe$Ce˺>oPa'ct~. W)G J&ME H)npڭK\Kxs,TOF-Qaef_",X,82 !ٔZ)nA#:Kx{ qaě>]WhCA`YSׁRS B3~]R0cK}~? ^QSzO»(ALJcW@ KY"Sc3(5:bHx3:N*0 ?Sakq-颈ҿaȱ#ܛ:c`5y 9̂F CFmYa--|): ?^ID! `.1DM\/CgaВc_u{6O+{A>V JenaqH $Du\A6! {ЫI1V3HX BoU7HP^ h'RyPFFBF`җފ!OGIkB=ВNŦ&E&@ CbR)1`1Lhb6l ZnJ *icz h1yz3XZyz>}l ,BB,1# GG}vpFhDIz>”n$c_Rpݮ5+講#\輪\\XA.*D\ pb4$A'ײa(iIIyf|}9#H/ %R b17В)i#/BU&tMC> /,'Q!-mp L]ɥVLN%EaMl'Lv]ŵ `B1^,dw#:pa\XY2pINF^ǀoz^WPZ j*#g2pJRGQ+R] rq`0 c%7 5#6,*qfb`&t 9&Z04$ށ@OD*3Hɧ)H$#%*q C%$2)%Yn/ !_P~Z@ic1C`Q$>Z:^piAs]os;{LГ'  )))C8"qJ,[njtJ&d3 SK ':B(XK?lƆP% [ x֘L Z$dҲ27R B G\WۂB y`!tDP/ &@p "a F;!Q0l4 )F7DM( JVsZ t2` @ph+?7"Vh6?/ĮK)"tDPQ h``JFd4CO>,Ѐ I&tφp*qh 7IA> g,0dOC ItެeݾW$<}h,` 2rp,o(‘H\B%ۍN)0`ħ>G(f +)B<) &oO5Jr <\Pa7.N`l2آH/ndC,18alKa:` !chd#:CbJG0Y#`*qC!ºxz$,(:ӝhRHUAAAP05;B ;(@ PK+J?  ɼ\9(h Q*)@!<@`9Bb@%d vAEi G *p @0Dhf/dI%FJ7D8 BG+I: A3v%8P_#|5@Y:j:Q, }H|'$ "o@zO p ;5*h9Up#{&P Ux=z@"`H 8tܘJ !Hh`cUSр~j#%id/::l8ԖZ+E ba`7JHd@eX 9tV & W `@LG5BMn4`6)#aQ0`}0| hk rC>)LKR?( z' Hipjq%Q7h0 @2 -f,n$JJo!, `.!9#!/^׸ko3 +A)nMgX p%:9#4mn%o|OG r 4B,71 cB@iS NV.! +%Q1 2ـ0脆˒>p ̀-]PIcQ@0J4&QIRDIed#Е (LB$`H[O$,rX 薙b|}[x_i_?JՒ@ F +I<-(P [K`d@p&MH ,=nHir=% pEJ(BB0$ix,HA|0 ^BXӷ9$@C@aH %@N)4VωƅQ *dٟ뎒ݸ )![nD 8{(Jhu1]Is&JK@  Kp En%oeX @`v l_7h ``GT _B&6R. $ Iq$ ~O F\[\ *tϋ/j%H,Ș_ NI(R1I@`'aAICF=5oG{DSB`:S6y0C)lMFx5! $Lgv!0` 4yHc457`1tHdY& o]#?M KF(ۖLWNenA(赓@6Wu#}4H+DEL`}_I;-=. % V$XJX, @R Ji?8,=jzd)͚G/RSa( 7A7 j v| *r8,`g-PNZIX@ `vad:x@ !$ˌ:YdvMoN>d>S{;aRXcT. 0b81m%(=iQ֨2x&IJ׾&#':K/K }kgk}L+pzb@%D`L,=7a(V'vLJ@gC )(áLhD] i-l x- ~1\I[ J܎&Պn~jv7T|U݅wۻ|lƜC ΂qUE,tSkή Qgh^9)hCŀS]!CxqNrfC|`=xOӁ("Yc r%nBi&Cxql49HR V}=! cziB1~,0C.~ a Wysւ(&>’c2 @tq4Zrܷfh 4&3k{C.#Ay> C.Ե9-KUz"!@ @ !'u\^B`D*,n%:ƽ{(ZGksqH^6וbC33C44??1P8My%^Qf&VygؙۉO7*8ZG$4V5BEi%^G,3ce1DBRnZ&8[a*#am 0 d#C&ĒY[o-c|KȢRWq4[o,hx1b [Dd1\ f.+E ȧΤ`o8Y]gK JArAF8jh8-C.|# ශL/0 e^p}%-3X`0k ju @sg7^%&!lo &`E(P%X3׎qC.ry1M'[IR0cO]& !Z w{Gފ THJLpow즒e/ z,E_X/C.z޼ 17D(jCPJۤD)Ep* pܞAz^*W1vu C[nJRnc5uZ#!_CV;H >-V <)P lq MG1fB Chdj&t"oyidQdg# %X DMPaJQ JE#TV֑hOAMhfk5p@VZ|@}'7y Chɝ;3|b"QzsA@wib!MIذg;O`̵ C"fg JSD$±d""#?pհzy&BOVt-PПzZ|ZCBWءԟOmfu C%fU\b] Ԑ'CEP^ $:PA$. <) IH (R%&++CNhjF)0zj]3A~N 5XmOr *hFB i6kJe>j[$!;>I95K!/̢Ȑ|BdK鍱U MT%E/,r@ ҕg%=t9#(#E5 T`ݾQare !h)\$֥% ]78!ji|}9&eä́cY]; DQdMC~D_Triђ.:"@-#K&@AHB'K׉%%' aRI L:!.y#ߍeV &%2CxxaZC C.Ե9-KUqb(|SUmB{#) ̍9#3q=a LHK(>jbp6@ܖLS11XXbp}!C.|# ශL/0 e^p}c*<s{)(&16$,XRٍ0a[P Jݛg!]Ж \'߰"uCTcoױozN7ID`Yb#Fe,x C.z޼ 17D(j 6H#-@J B@PTA-5%千k!R$;׊st C[nJRnc5upf *U d(x [pIbQ{pW_1 C}yuK5xiU^5T-c L ꓨIZ A!Yuꐈ[ƪG^I;ؗb:pP2p 1&!$5a&CGBsNg]PiTJYc<Vʚn*p]ܛ4WR!!:I0M90<q9&CI47"[ E#SAi)] ܩEDM^S0ɡ+SDFV@L#s `(~L0j>X ؚ_%߿.Z&?!00L`LXtXc`1rh0 V=[윽7"qT F`;0 >H!gd ._3 z"08  +4) >T8b{|/I d$$+ΉxRĝ|m E "J@T+΀?Qtp- sw(Nk \Q/ *!^X v9)| 23"u L@ h 9`` J%;n t[!/LIJSRM@ @a50hx'PYj6]Hu,[zB{x?WM~ooic&FאDߘ[v@Caq57l¨ t/` 엊II}]/=Lg "v?)/ C8% #҄ NBg6ly4}c ov\U岆\ f\iA8J#]'@Pqhn+C@ bJ%1Zm@rRv5BCI,rɒ =AxHx @Wy1xizj"AoHN(*t 5X 1,P; <Fp *] Df & 5SWA_8d0_bxpLZ?6ty/\8'Q3,&'$w27qК19 ;xnq ] N,a~ W\ !y `.!J{lD 07RUPMImşԄ, O@*IHhhj@ xih )7915$tC,f AJ"!`hg)wMIH=wHt Mtm){T7HC 1NrlU tQK?h!XDvt +($YFYp84FH1_usO'=: =؀')A؁FGe7 /O&؆f/qzbacP3|KՃ4d Q1G< ``hA0?g&w!Y12^DNh5Xn lJr& J]; 9?]4Dd$^ %AxBL&C RX.g6 Š B:~&4JR+x$AG6a _g?kt`{qX3zPJ7Pp$Z@O V6YK\ ] GcH^ym@?S- 3P~U,a8( aX ؼ{@PW50hp%4ܱ7+6A<8@``nMqdC>+# $@@֕20wA wSD3RQ'%4Q `p'T10L%I+a9 `(HTMfjM1`ߎ T4ԁ/><#C-(-@b!Ę4'W&Z&[{d Eg՚ hr e=JIOԸ3B8  cް]#0!ҿ:<[ksi \>跎B&x1JG(`7 Ǐ0*?yV CnxBɈ7 eF  >IeҴ"/e`!{Pt6 3b9 9d_CDҀk"qh&x KvytP M ;e8p,lJ$¹0'L0 & j, \Cөi1hF*/# ms`aa %rboĀ 05: ,oz%UXI l?Kh?nw,3x=+};N4I?@.L}*z:|?C%p'RUDA#Ib3D >Tb*11){72ǽ1N`d0 >&͔~)\Ѕ}7CiE|jM5Po0שc oR"&)EyCxytۼM^=/!l `Z12YeBCKCx|y\ʑXu>! 2 SasY\*B! !=d10C. po\cX!6ss$b &NrGeWrZ9䶮[k5 @ XzZYk.`C. q|0FN<|8xAsVIor47-'3vLCK4|dPC)! `.!7i1Se2IgYL;OC. wwNCi] Pצfwhka,SB \bV ,I28>C. p0_ d/~S ˜, p?g \{oCrX.mICAL$ƍ^=4[:~H Zd;MN*Œ`)d8BrT<ŭtyC.9 !gwSii4L00ehJl9F]#E@H1a`%xs()DEHpgWvP#H <1dXjOC.W | 3x& | e[Mo,CO ž[Рg:IIŤa05rQ%USdy˚S{s!7XzbsY֠ C[g%( #19]l%}ZY h*JphhkuE@ 8:aLAnO11 C#Pɘ@(D,V,,Ăۃ{l-EJNE4} iCR# L5&gyWos$(4appPtmPR, 2jBA*>k$ J q$43>VPre`0~ A`@0Awwp=NLA b5#-+q옰фЀ`9 J@T@T̪ C]$3{Ԇ5ɼ= @8c;YgEJOoA]@5o08Je[명 )%4Їq%H,<  rQpŁtwӪYT1B/gcQ`-!rV,-(Cz2 KP`*s((u]`R=ʑ;&aC6 GgM+dLЧT~"2аK_uDI1r6ɩ[^ KZ`X/0]9+J]A[Ҩ^>V GCДZ6zK YOC*iFEpyCIfbBf 3̳fJb>MPBp˃K=^EꚆL. LȉLbU ^L&{K"TKe7OF YJ @ntwRZ:^,!0 p!xCN`:0ᘚLI,%vٯj07! bQ\~>4.(BIh@n & =^`f H&* %[$ͰP@ONCa%V @hf%ߑ%vu F9 ۷J -(#r@3 ! v,Ѕ,{ :&딁 rKzP߯ܞl~C H -ր4@ Pr-! KlmW` IPV@H8Q =J~CߌBԇ1Eo&jBy5;Œ  F \Q߱'K`^ AA(_ ^?f;Y@b*QE$ {w_ϟ ԣzҔȽ@;&a0)glrF 8o$ ansp` Z9p 580o>Yer{r.F)J#HL)J,R4JB"!IN!H4" 3 h !3!hi}Cõ)4$c`z@ !j K,M+)/o;,bnp҂_k_p H ,K,KHä;၀ i 5)q| 5%=RxWk$"T۷g@1 RjFq[9/KAfTCi $a5vZrވ0h@ PQ7f,'qپhL4 &ǔɈbpvv \&$$ elJJxhyss`X@Ͽr~3I44'bw!G @ !BZCia/c93&\ADh|D]v%]DL4y/"&-ѣ⺱PQ ܭb)IE=-$ڕp/Dkq3\41,З.哏51Q_)LC$.L="ʪ[Kr[[jpo\UKUsp PǓ^6wʃ&,c-ر=6ij>mFܛyX@`c23##DI& ,9=UME]WUHucZq!&LBD\p0ຖ{d̹ؓYpW%jUt")E$U%m#Y%Z!aYiT YIy#mı[evQs b,'t)h3{^X <{-nBղ.0bg"V RH0>ԟ#E+Ņ$R7HoB=rϸo6ݗ䮵iM5\•e(&&N?f5{4bs""D&)(&,4QTQUMUYe]'2pq8ޗzdS:8E0]w wS! PآItwȪHnC_M J:ʸP ˑI[۩9rAU2=„|q:DPiM0<Ɖ ~')WUlf tQ8]U JnG%4 JHeC3Ƚl%TCZT;H . >KIQ\GZ2¤i[m^hv3$C0T)d4[!:|`c2"&$J0,MUTUU]aZf;4mM΢\Vm":KW"YgH!滫E$v8&o]:i6|&t)9zs˿O57NX]:OŬVQAYUP&6N.4[&#ӕP/8MM:KBpzz.o pI,XE;#M: -pIoKg,USmE,T (߷ YnR3L69koV/9ĨYйl`#KJeխīaW+pl_N&Dk70( I)[ݶBKI hRUmHf 4p!.:A֢MJX 2V'8=-g)Jna;WKDۋ ;ᢌVH``s4BC2) M*DÏEuUfuu砅:U)ddP(,.ԒE%dzTL%g {.ᦐ{\@r9&+04d nm?2ư6s(POIT^$#[@<]A;12 Ԯ0 #yքe^u5шVd@Վ:2cJ򚅭ؗ)I&mk{Pk!{ `.M~ݰF?yzLow[apgNK;I Hof=%JzR{/gr%aRji}(0΀lpnGm8IqG:&q;X3b N È7*ҞruY#?+'+".B4ؤi9إ)b#3)JJR")H",j)IERaJD\+K (39iB0$&꽸e8q᜝&-gl_PY׫&k` אc2d*! 9IStd tCV,g%@rv] "w)JDb<\)?)IR;%)D3)JJR")H(u,))ܥ)rrTw/9F"`T2 =)O(X SHV~=@:ZQ[%4>̄fz8ꘐjzۓ.ȗIR뼰ęd/ɄRewަ iI,37Ҁ}^RjR}r{4o MObER)JD\)+)JJR")HZRu\)rERS'V}_Iv6_{ʀ;CPBkso+=GɭJ Ƿx~(uq7rP.BS'BY~VRMsZ=z ԁԓ7u+|A0M*OUB|F^P C!\V>|P  O];6')JMrERܥ)ύ)_ER",R#)JJCK.=R)J*` 2zS|m?q4 3p cۮtv;ˣq';%(@%~:Hurӿ||P)(a=Nv ҺXϻ9 XH(ިM}( '?'h. []'x` `dk&(%#IJR")H".R)SҞ_Fw(}6iJD\))J M vi)JJgZCJ& ii;2ъKeZY|5X͔& z3mܝxD ̍|' @! ==^Y&!<җ!`w"^xnB rMI&hnnyll[BCxo~^JRR"7JR|oRb`%!Ra1);^G7ۧd$yDђw> ÌUWG6) !ڒ<  !J蹡SJmS` ;SIK0/ߜ&(p Fq8x` ,j9\J̒^ 02R9+ :/^NYQq5 #k60 ;/'!c/}Pt!٭ `.rNSiݜP(O=5 FO b~&԰L@‹ /Oݺ冀Iv0nGGu|| z܀;KD{0c@7|cgxp b;'kN>K!I4~8npP<rjCpԷO}\mP LC̐ϽBi ;~^%vwJRu\))l>)I)H?V\Yxt{2i`1!}Br&#|  3:F+7̾x*YC~nmI&#R}r`f&!M%ecPoC67Ԙ^0>FyR4xX ##NL(_`¿ i%8DL-3RF=;N"7䫝(jh M|<'ˤlY3͙WA`e~Z0 T_J TZ?-{#ܲHju.b\1ɟZ9/_D| &#焢@V^=ԺxR'Nc J#Ҷ՜0(O~p]Ԩ7v=0HC&`c!_}X5=;l ` ƥ?#?c]Oh ?+/x fIz($}<6J;^q{![N CvHs0Ÿ9>ᠤe,qɅ{e<!Yb0awH09bai+0v=& S=vdĒ҄'nb֮@ CX`gZ: X {?:wـ%';q{_/:`I6,#+bo`j8tF9KѓuY&]&N!;Eݠn5#z5]@7&` | b 8ɀ:!$5MId45/{&LLjI8D"_g7ǔLG-;T1hx0j:9{@@ y*xTHM(o۝B:ܟ'4Sl@a&&wWĴ9G%HYnx|Q_zONve[HY+R Xh&7善l? P!nMHm &pؔY|#~,Ǥ5Z(!He>xd22^6Cs$o+1gICLk 0]eF^aJ5iF, AOBNwێS'ԓ IP2P@^sk Kf4zP!|"/aJ%?U Ƈ 3I,8TJG2C! `.}ނaG#T->$A?MLB$:VJ@!} B$if٪{LB1ᡨF֝jwO6 ϲ$W]-I1Kkv%}10d_9(gϚerCoHf}ug艩$l|ȘV﨓[ (XALbvEj1L&쟿aJ 1;ߠ [}E 6$0q;̂b+A.?^HݳW!YaF^5Y 3^d辔5?_}k-\E%:O×yP*PP$8Qж](Ѻ=&!;Xo:?P4 R)Ikʀ\XЄ ~ (m̔ʶ a36mtqStLp6)ތ—S&D-%0^6,u$0D 쭒~|/ kqQ> Z \8ɾ{-=Լ,n.B2Cy 3)?-?T IrLu @ ^(ZPJIϻ}xf=3ꔣx`u~j  e#cЁZCD4}Ӏ !j/?ۃRLNd`aG.&!|_^| e]CI}ԩu?odȵ=E?w -$6[&*| Y]ѯpGxPĶuVS`L7nfʷrj1s>7%G3g&}76^$4 ^/ C18C8 JG>0LMG6_kq_ɋ+7B-ׇYSPC)'{;Y `$/Sqޏj@jwyw3wIn,,KNPޜ#q`6F PUԖ2@vc҂MWJw!nm͒_tdU\ >DkaDwm6Ũ!rl,ے?5hhj3ӆdOC@&',]5/%NL %#m{@1&|16^Mؾ~$l9w/%;|1vWV{zD%hrjYzT#:|]>Y3&k&rfr |\PRz0 Q ie0b9nk_RGuVrϕ0ݸ͒l&䐋JN?9 :Gp@i7JbX8V6@m1~0`?b(`J&Ɔ(bε$0mPg}sk{rޏmɘu/܀0ף1{iI|]sWSL>` 66ĝrnzaGz>47M;#Cg؟c\7{=Y墼U>l#EXWe{>yEs+7;m,vh\ZE:iyz@Pw ss Ώ~֬[+l$%ֿBIL{gf(񥕿wnh7O!/Z]ӯ8P17J3%w{J襁VeXf :o:H w~4ͮÝ?vgrJ]g޼ ~OT?~ckRVza ~rq?zد^ˎyٺ7a_|u{{(F sV IJ߭1oA+35OM1r1ݺvs0f0aVPLAH1D,pޔo˾v |-v5o5!3}i;k\n! `.!rwU g꽣@)ahB h~ߪV)W o8:[۳;{ϒͤ%oUV)%\^N5<^#[dZ#9?k Qtv[Kxyz0HHAA", `+0̇!٩jrZ!ƒi Kxz = A]D`bV`1=y4!?IdcK.~ a Wys`+EXKGy/n[5 Rv;fz^y{C.#Ay> C.Ե9-KTs18؆3m/cw0M 3Jd9)ۓHA< 3. -bQċC.|# ශL/0 e^p|1$Q2p}F yᡸ5=ZU^@xF~x3C0D yYk8C.r9ZY~[xpgA36A|aIJ&i:ax7Hb2#0 ZzߎP8)5Bt4zfH"ǂn`/}`C.z޼ !;QPP[M81~ѭ+ )ȸ˱Gl-6/RbKHFԸLH tCN[I:IʺJifqc C[nJniέnkDlh.,  ۙ ЯϽ0R"9J<FM'%4"nr.ǎ[oB,%@׏E%Ȃ]d *@t`eTBS ChF zN\hy2h< MTpUB' 04fY?(4 =.yJƹ%m v䒆쯬yB!:8`J^F%qM%j)h$Pfd|R$ey0U| K~e 1 oCYLFRf5`R. Nyle v^Q55z.LC(aK h.RzduP)ކ/pΣ4KD3G)N gk*I/CR>_`!x K"fg9-6ق+>[uB0:H*TXc@Dl ɺ6T|<" BAtHI:sXJYJ K)nzO@U>cˢAICK#6agbL ('!9KhWBøPsM9V-/'KC-F̓M}!C.|# ශL/0 e^p|E${FCπjIJF<>, dB`ƒ2CMDM>O-0f '858`A;׎qC.r9ZY~[iꋌ l#Wwz;`Xxr$x-ZzߎP8)xǹn`/}`C.z޼ $i#>Ch #.7k.s?. oRjB BPͭ_9E lClݣjKpp+-/LJ%3ddd d71vu C[nJncstNby bRdg,8 ,4, |S.dvF$7E C7'_zހnnߝ^WEqbIJoi5eE <d1yM{Pn>2}- zxMMD|)F웺bD(c3Xd` C) n5=fZ(kz@d+ 6/y94Xƶ0ZUg*OPzIbB ިӰD e䚊O#[B9Mt ija9_&-rnAH;j&aG J|LAn[КEgBOLR 'ڤZ~iC-e%'hB[܆1M[PN_7@U::p0t 1oΉ!)x@ @@M`:Goq p2rh0(<6$@` &?,[cdz6Xi|45%|_Jq$oh12p,;Z}$OYe-(@*ʋRHadBbBSj@J*pƢ6bx`a\n`?WY 7 i$Ba)LBI5YPi(5$4|YCH':: ,5Hl2iHFh ( t$HdHԗ9*pPD40x׀2}jM:]a˖e(11 @]''c$I)3zIP(ޖHd*t".l5J"1(NJ& H`OͿm6 D2+p[A%u\%bOR (0@1&2+-%i'C;O&ћ戡0,Ȳb~< 8tR(BJ/"u0 A 寗M,Ipc_9&d˜V=9h' 𸧢hXj _@ZB ~]5X JB JR0HL(M)Ja4HH| 6iuLL(T,1%Q#@g(֪Fdm %%t"u|#M#!9 `.u( ؾ3«Ẉb@4;(p(,dԓ;ƾ0&HDĀJRI !V0=&0z$ـdY 9TR2$I9 #4@=a }@417$@(`S'oHCL醍d-DL( [{DC ``2|%}ム "uP$ Bs 2g0*&z&0aEĆ3Q-&HTL4f&ВN<4[B%#JF~[S` `pnB 8I`!?44_ ν A׋/T*&v(7à`@ p(R `t@R蘆DbP@Rvi] F-( p2ɽ $&LZѿ $%\G #n@nB8@bS0i ډ]80X R Rzs4=XEQ:1;p iqV$MaD8XBBFJ}oDQ0[^'&,d e @Vq!dL59x$@3!i;倐eVG讐!a 7r &4p 6&1 2Tvjpk7 {PM:ʼn Ȅlv冔) @iP{%%9_xV ?LJ@ g'pTVcRPجfϺ *i(47⻖ߡxcĠFѲ1cl [fm` ۷l}<% >K İ>_LxUgjH߂!tE ?p!I ,`&L4`$ F3 + `4coEC7LZ13Ӂ 3D^2`!rax a0DL4M0D72x p* « q&8 !DV`M'!W-$WDh%vdD0;&WNr` b\p$0&% 0`@h΁BC{Q@\*X,d00.>$Ѵoل7b,>qTLm44oFO #ə4Jj'vPJp;C ?Iz`U0|Q-lJI; !>Ed ̲23!TX-ԃR"%z) ge*E:jO)"`m HVE@_$Gly3AW>B (@`21HA٧Y@.cbb @H^ ZF)` 3 `dd!>&@L$ Ԓ "G&D@e@ ,LADbbF=<*@Dap_HF(N@Oh(IE@Ru èČ S/a Bbro? !00 8]ȆDk OKDQ1#d,L7U %G n#@W,0EJ.`>H\LL@/? 1PjPV?4~+"ZB >#0C Hb 5@w4vQ4Uؘxn9Kh´F4k`MrgL ; 0yZ( $Dhh Jp JyjAz%!qwͮ Ȕ [7j嗢`NATN\Eܼ/~it,TK ݤ'xD~ahicE. $0C(nꐐ=@ Q09$ԗcē|VG6|QV]JUt$> ɕCJN?!L `.!UI>;I! hٮ²Fqo} 7Fr9%PN)H נ(CNs!#! >+ ;J8hFII=!Gj3VM(Ol*'m=p%T7ˀjBz>9A<A?W^D(4^b׏:Rewu}'>Q熼zn/yCyD)%N@Fqmt||E砟6i{B@EJ&ƗР${'fRZQ.ҔqW~2 ߥXHZQ*] @mʗ:|>4mv8ID&6wJ+2⾓´I4S&Et2zAuH2*E r0EhwZK%zu nGP_@ x!Rt],Է)f1F+ ,N>;.|# ශL/AK0+kz#14kȒZ5@RC[\uz+!0L 085-NA#qbZ9;.r-s4V{qr5XZ J/yz]Wm0 ݉-x] Q K{& ,>?]a\> }nO讉 $%Hb3oC~;H 41ad(E ˈan{ C A# 60D5BPUwp-&:T7  C]߃ڜ4 tMuRA룑}JG[Xk^ ngTh"1xϐ~R0|^EfX.V&DX}@C%0~-62\pl| `ͦa>y 'aր=CQdC'IGڤH(hO`AoAzA;.k4sC'_4IkE{2\< L-Ɂ=ѽTa 3i=X|= NN 9$d|4BU vU1fK'0-`FRn Iȼ C0U)޼v~.nY xp<8u[0DVe?ALD %)fi%k%bk188?& _zVC 9 CY"S& Ifb2fԅ;XSāfYy,v}8DlP3!~됄*ݵͧmCB9TLA3u4XE@ Ca0;V̡JhX @ y$ T2IЯH!V`n%$X֎)=.`&v Иy"5@]Mr(@]m 4B|T@b]N ȘBu ~ >,FO #jz]էGƙ@6 f{ C0]4# ,(a)% kgϤ h1e%t`nЦT8M=ԺX~Ʀau 躱SȄHf"LU ŋD%M4$i BPF8gyJm^ίEZ(/k]Dۯ{LEj+2R}T$$o5셆ZR *T`h$y!F:! =lH&A: _cvSZ B=5L%.6o.mhd[= *iSAtf "=Q6ԃdV|a2O:JŒ}cق eki)4C }fAe'әMƐf|,a%D*[P k/r5kЏmc;:wQi ,ŇѳV K>'nçi:k!!!sG @ !O%ZjZG5෈Xe7TIČƣťŁa9oc#ȦpzV#k.>[9C&dπbc#3224~TDLQVUu]if]Wi"}{qQLRq*6*71H}g9l UagB BƕC8;FL:QʩI.pȘaBjv&|mh5; #vJL9vA hIQYF=FLxb@l8L"R—\uQI $'!-;Rv̷$9%lXoWu%gmFi,-4NI,mqj?fWlƉ[SiƖL;"J@`D4$D4$N 3XUDXUfTaVivMM5YE]TkI{jz3H mU4=pC⼻邝X3%*y+'Jb<"r,a˖ فxpQȋ$Wr)- $ezsvGtbޓToQ8ظoGf fq} $$XB;ZB$\ASm8Iγ5G.k#Omf:#i:6"h#+>m!TKN  n6%qilk'N*[w/=ebt"BD"6)"ܟaSP=39%SEtQeYE]Ya]iǧy(kgdeZ2giZ|[25624E;kT7̦)tª~6kKK,k%<%v&)p|:65>l@@,CӲrWMs?9C).F-*ȳ &pcZC}x:ju|xY ~o^k՛KSz5>H! 6%mBVmcRD\]}g)BU5! T,}ْH0`t#3346I*IYeeF\Ya\q'JO7\h);OvXRZm9\PIJmNJJoƫMd'dB Eo?$$tC\YQ.2QI!'eoHH ^Ic;K-DN-S n=2Dc1 # k<c72̪j q'eFN`WIC-$JE +"J:Ii&bqldy[׮'s .BYbͧө܇F5*M5+^j:IiR<>5RF*'$0FC\FbS$BC#Hq**]EUvqi]qv(`d7r"ڤ>Xv bJV 6EGD_>ẏ-HTK8#Q8[o`){ 8mr"6CwSvT(D2ΖTRXiّhNJĶ&ۈu9Z22Zaksui ۮ4pTtʵ%H5ZTFם*h2+i*&m,5hY%f-aEa$vu9I xB"aC.YV@`t$BAC(Ԉ袪2B]taUqmށz`zz {15aJÑpTc-| 8X0MCSk0,干FqqSX FUGZ4A阂duLXhaqoZ ibDtUWL!?5]t#F4Je7MȞԳ2$mNc~d0jƉbՖWͮV{1TQ [q*|]*I8~z%\,̳R.j GZbT++PKbsC4ADH2QUim8z"E4!{ `.1\a}7I@C >q~W-CpCMGZ']ܤ6x,Ts̡]_ oB >w,:p?K2pߎ]uﮊ sD*ɨ#17+Np2p(hD1 $lC Kߺ*^(5Q\|*p>+(wmDTeE1E͙߯l7d" Ŋe;o<4`%o^RΉ)O3>JKBȾo wh2)!) OR~ԇ@`="tC yGr"w@|Y/VH-h0?JvBM"ZrFwscG);'Q}a _,ӕZI`0sHLŤk g)O$"tV䂐 m #'xxEj;/lP B6! r"9*EĿ4r?%##Q X\QMuS7d""_\L J@1 W(""~@ H8>@p"tAF C*J!'X (  N}Ux+G4"o"eDGah !2zd F?PfmHC8 "v'J b jF6[t3n|vw Z` bzL,hz ` @BH!80\Q'|# @' 2,JYdư`:`K  D6PvRHĀ |Z8;o0Ŗ'|BRܼC fpBLa,3|J%2yE-"4`1e-;@ؚM(1vz$lىA'@- %!{ho~BIi ވ$7BJI<-J8 "0[@?C@ ]:# 2v W6bf&2cF03 =m |W-H$[,0f @ TL!p @o @`!(jHKJ9IH$$fb$ C@ fY6EHd" ɉ0&D|ZJIDΑA|3$i 0T` "@NRPT0'M@f=- '+PP 2 r}?b?,0% ,3ґN@P 0A040T?r1 Lu4r J$Ŕ3K)*: =щ$K@ ЌZpBNLLAa=bŌH0wZRK̂W9{Yބ^фg !`3x &I=. hyLCP:}ɫM#D@2g *|!(>$ူ*h'3Q,2>H L(=ap 1!'%h@ N: 0hb^0@+!e$<rK Y|gI.3j)ctjCCtQFt5P5d䘲e0_ `6R%#o䘔;fcEy0k{4*` C@t@(0IǢvY INHv%w\ԖQ4! `.!!RKҎ'5niV 3A- ARQ8kz^]Rt I185zI0 @0 ! HᡠgE$0dZ\P FlE&%|pp^^(@Fb$ "DsAGn4qL8?İ!)DQ)ƥGJ6&'rY3c!}sGɟ8)!$! ዠ'\^ܕqq^q&-&pB <kOD`b)l|ĤvP IoV6>ӗnrtfbh }@X`@0~L J'=IWK&תZ )@ 3-ĐJG3H-/Ȱ]C 01\;N|DbؘtJD"ZgK ~$4 lhg(\@>qd{J>U0 #JieIXsow* BF|Ҁ5' 㞊@q3M LM !YN:l R\B1Oath.9s!X^Hn4!ے.Jp迱'΄yt2qB̒G6ڀ*)&(480 W -p)_~8L!^(O( K(!V j؆|ȱ7p5ˡRuG9LP7}&"B(MŰra)dFP$Оh';8A1~'z(˔MμKs ]9?A. )K(Q^oTQwoX2z6cMRa4%H"v-jlX2Z~4cqdja041X5q 5Ptp"sE4iC_Q E U? 1G-}w1%R h@i^kҠCxz~{(Vqa" `+0̇!٩jrZ!ƒi Cxy-[I  THE,vI { pYɧAƞiK'C.~ a Wys,*& '>;5jjs] @h,`L&gZמC.#Ay>p~|?SZzrQ(~ S )TJQk= Ce pV}I "`nIh11FγB(kJ„6c]1<{9*:Rf!{} 3xC!c_z1 K3j,f!8LH  3 8'?s)l*ٖ5Cxz?/@P !(h`Ì3 EȲB3HCxyVycڋl C H͢UfU=x!e<#:,0C}~? ^Qz~z0S3Tfi-Y Rˎ3@כm;]|l n}xW'PI2ͫ>QW%3{2Z3̫d ;]߃ڜ4 tMi\ IeА4%BM  +t$-8:Y[LYKp(Aj`UbdE;%0~-! pW,KxGQ!$aj EЮ@t.taC>(O@AvLv̂(3v]2מh;'_4MkȂ@ w AnIJ.bJ'(:)JZFbGM %Yj;ЎQJ&m%([}@18 X-_4-ȺpjLE0_X;0U)޻\V& %Lj'Gn_\#[ FaJJ!p*98Bpv=B=T;=`8 @ɂo^A; i] ;Y"Sc lZ2/HLJ6y$4$M Ԝ) $M|m(em'gBltuI('03xښ&F,j?eq`2;-s͆ar__m[H1 ;P# FH&6$PXf, /d21e 2ϴ˃w f.8P o?6y+t++:HD%([˩ *%9;7ښU! dh}H+`]3~v4 ̰f{ ;7 RpHD*ӡ]R,0-q3K0 , BT7CO h~ǥrqEn=i-3XK`T! `.1E\a.N'lTVj BetЯUEmdj2I!b+!,L7M %G4HH&(] c)Vkl|qPHIxB:J>cDIN NFWOQO & A oI! }(sZD8-[lZQL-ǠM{U萨) k$d{k B]@g[c5xu!1+/~+^ouW}`aA!L%-} l55ttd堔7nnu6L)e4ePQEt{blv :tv 6V0E6CX$a jmNEԛeͨa 90B!)a~1Y_I/_eD?ONdJ%fD^X`xؘ}yeЃ`zOzc5H .f\H\C /FQ6yθ*U5z~MYGמC[ۢ'Oӽ/{XX:2ptK ),uA*:v u춭_Y!|*av!=73`kW.,4TLHa@Kk8*p ,A `[ :!% `"~,CP)H+D,*p#Yx%)0M}ri } "tJ%u/d9 LrBE!<0 Yhea8UI2R} h"pdex  K!H(Y?9C0İ2YhP\a+h\?wĶg:e JXf7s 8}e<ƹ@ѣtƼs ?'X4F#`041CD4P Q@Ej ) n#'7 &b$ahg"pĆ@n_7?Q@&/`;DW1yNBT.!DV:sM p@0^j5*ig 8& tL~1+QӡVFva@: !7"p͠^hPg7`;dϒ{_r$X(&&[sX$U D_71i\U ! BiAJ/|b`adh&LŀJ|# "vC0"p5 X&p6>2d8@HeZ@PQ  T6 ᥤqc PdLPٝ:`-Ơt$a % 4Z"Ro ;73$YipKNOnqhh I+Qe'ItM=@c렰&R0 $ G_$栓te C5&{ d,c$d`.f~DO̔А҃'-≟)H@R`y#sxhe@уStL rKD&B] 0(^QCeo Ww]< jPD #``I~& TZ@~),A)#\q?m ,ٲ-u+niN4mm>a;+IJq")̥ GsD 8jmaG}$Ӵۉ6p$5bB/KnEnЄͥShDEG$GejZ'"MpnجH 7֓6ئEȩM >qSl#u[]"{Ng7 c Ī5Nt!7,Ȕs`Pomp\BɗI*\MM2zCtatJ Sy8N/`s#33BFhaviق7Y}[~8؝gz7bJeH( ER&]螂@.U Y⺴EPFbZS6dFND5\XFcs{&4k^8jKvj !J6Hӂʴp 9+Dў^-HBiYc%PMڈINk, 4MJF؁赵E㉵*qABEH$96"/[NLx%mQ7C 5 SXXԧWI[,lY&Sm}%rRە!{ `.!y`>P$mnIpL)Gc}#<DLQ/r@ 0X(<:vdX@阕D4TLBI' %#o O Кa7H [LP CPM/`@1@7! $R@*:4~hmCI|F\B r,(Ue` tL\X#QLyrY'g'.PG`'闧dLɯ"HE }܂áǬ(Ap2_ިTtqX?%@{˰,WѴ8g9FNJjqh [đ C@NtXAE3Qo}AH'RUd˽`L{v{,aP9h~4  0 ` *`1Hj 㝸 +`C~`%#78iE¸L b@* &(|P .($i 4ҔR`%$|QDj2# ɽh*36ڐBϯE`B 璔O 4 i[8$EĢxX¿0_\MA!!R4ViD[Bt} ` Q{NSު' fE!~rN7(HڈR8ۤD &bg/P9 +5Yp> 7# a@# ش$4 ;3^mJ:ӀQoDQz$3`(瀧 EhhKtFTH2APD 80#X$Ứ* ALb#> o"@eIej!zko避Gxɀ; _֘ 6 K/QC4-"n^Hw2Fz*< at8KdC05Xadt@C`}Arr#x pՅS⚜2{SQ H`6 iyT ׷k`VB]W|3Ht7ȑmvTi# RNA' ר ¿`3E~#.tb7נL();sf5fܤPϿ!0j?Y'Q_(1DũnBNAGEZs봐0V@hjY)[q,M@+W}-_|~yiܓmTM '4lWK%]hK(~BH5ފ1=yZ&ES0_5d,46p1FpZ $g9LAJJHE CB4YS\mzp2x&,9ﹷр Syv0,+?/؋BdmHoGUpH&(ၤdIH]}F?#窡ߛCc"**O@m'\Ͼ겥\ Q>ArQUDҒ-(V4_ICs8GPh$bZ8" LI[I%;[,slV &#=)EqQ؏׮6ߠ5}w־ PBeqL W]6CxytA AD_X3 ȧ jYG%ƒ:z[-鷁 ӎ|7jY90wY\*B! !=d10;. po\cX!6筴gzO^z)AD[A2ԚYeRRvs2X.w! `.!;. q|0FN<|8xATbQ[VPrSu漻h2sXd%Ўl) #cbLU<@"`}ax;. wwO[i潖[TJ@]5B.NOlBmaKQg)1@$I@;. p0_ d/~ 0,σ%d+eAQ}8n)" c jީfQXD† _X] %žjYA)9k](EդámF1 ym< BPG15j ;[g%(GŮ4™yg!S(FaX7J1S^_0Rl]m@I8 iBTG ;S`:@pI:[袊 ,IܬK >04u.`d$R&7&"RSάCDM@J@y3H$- % ^8.)>%=>:!vS~ -h~I3IIDeG54QV}V^# Jzzt%>$!k,mtGOcX ;|9+|gd@\ &Xx'jX XE -H-4: ;2?{ )BY^&'D¿t#0sQ$}\R4R ̫8YZ4+KҫʢK9$!߂Kj( +} c輸'  O  J`\U DVGY PS(UL-i@b0`(X%N7   ]tZAC+t3%Fd+hJWB@O/L݈EAPr} H&s=KBROkv 83d'w /.q$N ;!dAcf| n$o^Ş p %^dwt49payr['%wC@0è24oa8% Q]fc2&<> c]1`|^M%P-y)] p;Yc)'`M%ԴI4! V&6LOܜ8," ua&y/qt:2qLA] AD3]U0;^+ÂcyFmͦyw6i] 4(7(Br`:(?"4PbwP&ifZe \w4 X`.m;\*M>p 3 6vNq:/D\0Ki$UK9_l_4$ y;L;O;[.pp8)m̶wWZ?O;%%L-na(<|%| fnB`_ 2σeGekEVDnwu!<Ӡ9f=}? y^ ܂)y鮞y;'OA2i61p\#WMh a!~{' 5υ}S5LґYC)OE$IG|MX$:IO@0F~L?'M A4YP ;YE0bK ]\;?P4aL͞ax:A,ZGI?Gk U jX PyGg29DTG8 ;)S a lô0V(\e-璌a,fM]Rn촂}؊h0o!,Q<Yc6ŀ ;}!f:֢hN`Q, g(oO+(1D0HIB;Ω[w[lM/2ryS!y{[셺!fUL&*)8`VI+iN4 7 Ng %~ H1 @Y(>Ϯ XQ5β:pK4_K`E * A952t``HQihH ȱK{' A ';qPń:-EU! )'Q9}$44lD"S.s#)uJ[P)B(ahC jntC l?'f'6hR U!ˋ5QorۡN!h÷h I hK/`,J[,T[ʁEEfd3__Q^,"Gwv:pKBJ}tWXOmE$==.2p>ACG^O7h92p!R@gi:큉d &2!PԆoHps*pK&rn(4冀ě4fQT PM jJz7r>0Q1;_?Dr2DԠf-Ȅp*p40#@$ $KDM@EA7Hct &' F/y86Hݽ+2LCC$萒!Ĕ5% ZHh*p" ;YJd h%4^$.Tud!7m @2B %$w$Iǘ8>_%Vӹl`i7v#\,Eҿ}`T)Ju󨜡@?.. A'5 ko"pׁE8I NA49h'PKXi/'sMOm[*JLB|@` 44a#4W!舺uX3 i 6د'N,%K wI7D̀~`Đkx@7 A;$>#rG2@pj`@0,d4B_)J`=@E'Ց1  3+n@(+vB2țA0`;-,aIҐ%DQ4 ?%#??jY},V5, %DOPjT0l`8hӶ9 $B5o)LɐL t"L0 ^/D2aN9-Ktc|7/yP@JpL5\jCxKCԖ(%šg "z* Hs@x??A\a _5 V+0(Nğ@$!^ߏtĀ =)舌4A4=`iѿgDCp@1 kɏn$_Ao4H8Q)VO߇و|%WY5!DTvw `ThZRZOHoClVn1!s'&PD<#HK00 zQsn@6\a`d$~{9hru%w#dJA(XTM!Qa&?|43xl8xly z b2@@Xh&^%$"'r奛* UGOdģW&<ؘ^%sD!8Rt_K77Kx [.gIv(ذuE\ /.& 4ӿd෥d?p0Xl/0ClHO pB(/ { w) -/|ԄLy_b45L# LAHǀ{\rb Ip>_ >`@3$/ s"PvEWR1^ & fB0R(;HcTMDVfJY/ $dY%Q@ %bgyxW *vC@WHzornp16ߞ$1 &4 NƧ^N)X73Q ?G )r@wdFTmt fV5"h&Woy+{'7ui:iTGe#h6L&21+CP8?EDfRAhx) :ZP?D0n ݣFcCM\55qP*|``=w`j^tNE$&T?7DP@MT)2&@aS핉V wV 1Hi|@Q4+KBdnq,43/@ -9oH,]# H|C@C"hSf~v&?#lä! dcN:"a3T~Ja1Woc1J#~Datو84Lrπ^XjJe**::E H YeM| n=$󻓥6#>h C! 9C xxh pmnĜDѽieUq%3\ڄظ*|?&̤ov A_`b9 2dP#t̒/≡ab#Pa/1K:k@ߌ^tk&ϝBgL٪jBiiQX 8Q[U LLX ,|Ԛ>hj6I]wiFK9E5^Ql>KY &7U Ml!3G `.!ёMsܝiF\G0K?~kWvwZӷ?k"Q 8>["leACISW5 ؕ[,u|s+/^RVZl蕉`xgy[ ;arQo i٘Cxyu8SbOOIũk1d9KSԷ!F4I;xyo[.T:ziB1~,0;.~ a Wys,ybP޽jZ\`4K zrֵ;.#Ay>@oCh8Rt7T# # <{z a`$=`! Bsg] 3[nJjYs0s3~C0$T#d̦ŒYa/=o#vg5$b 3#!4C":>(].Dc18 O$0 M @m U ,`L<#a9CAD 44ޘ4L "M8 $}{] N? 3|#əAx)6\0Vt{hoB q`?"^i{FO Lf" bChmJQ*FTU&I}]KV<[Cms ( ]44g)  jÎ*b2=Cp d-R,$[;_zx!,h zyisi =Ϗ'Q"sqbUUA<9jcֆBi(0~4_[W"#cp 3#fa 'f -y @OM %PO]Ȣ. @3 @LCtj P`fhd I'SI$02QE_@d Hjb EllJ+@W'Z$/$EF!!DIJ'R$tG%H1 !vV$X\TBќ3'>ր;!`)pz(| ؒ\VDKxPx`o+v"ɉ0@zǨzN*lֈGGDQ#SC,~ZIdx$lcHyshK)ڡX}p.ЍʐГ&$fPpQ: ؤ1w> C_ as0ydX]UU\YİE#yh008!,[/h00ބ#2bdB QX&F]r;xy:+CM -yfA;2Se- gU43xy6o^ (qRJp,© )!?.d13}~? ^Qz~m7.lOz0}FM%2]` Yq;fh=8`Zm3]|l n}xUY90P.fK6)[j3,zK{J/!F{ @ !< M5_Z1tBrDRlr Wur$xjGq<-(PJ!)WIb9g؉h+& pIo?:v) 73WUQ`c"""!T$P;)-M$P<HQQ5aEQU]U*cLlcX+L Ce( "buu MBwAEfFR4a+*UM",=R1ML)Fk!Lʥ#Ե{J|y3 m{\VcVר<:UpYŜҾ  =m<`rUW57a@`sԖrqϘ*DVѾݻ ܡ[ 澮i t2T!zۦ9|UuTr`&Cl􀱷uD9M]&JEi\%$`d""$B$I$@⮨"(UuVM$NEQEQUQeQUYV`ѣ(]{-CVȮ}ttUjZptuT[$s2[[r-[Q4”?NFdQ*))n)=-RD:۲Z*k*e㔗D}^a)0J9Vq% i&V)QƓ; M3}_>PH!r0s vdbt""#24)$@j+"-4SUEVa#I5E5M5X]EUYYjœRR726@oI3NO\eCvXA[|iL{s Ke饇gSNHr]Juz!LnG1lmrVkWIZ m2,"23pJ@VW':˅bCQ8Q&{EN5SlB摕ċ6$I5aWlIrw&6ruQ6QF\Ao_7 S*HئBӅ:%JVr\)TT%"~H?e+RH )yw9eatium"U$Q0nf1tUqG`T#44!5iZʀPIui[uvavzvM\Du4] |ֳI6N)Qc+qd(^_:K4$m}Lbj҉U cHZFԧT0bkm,89h.ıψQj%trΕ1 R4ɡ\,f1BB,^]lʣf)$[Jv 7F>CikvЪ@m$dl^8ƙTOC5Nh aŒD=o=q4]M=g0bhmRbe$D3!Y `.1d  )<ʸIxA @`~/3]߃ڜ4 tMi[k=M=#DT4Z"oBoODAԘPDzz^5gn^EfX.V&DX}@3%0~-Qe[Tb4x Ķ|s*>>=޸ԁ?6qƥ[ys(Q \L7lCId̃YKݔJ (m8Ub䗁S`/Z# d"2%"?Q@)mQ9\"I HjVm0NvA; i] +Y"QI.˺>?Fff}#]Q qJ 0'2?( 1_ٚe"Bs +)# r.Dt Q<X♛MdB| #l*`k&ZIJNF4QINJ@$ņ$d/ LG Sh#W>1T"LUg:̲V[\"끌 g'XWG:, +}3`u8W"Ja> @AellRCJG<:&$C XE5>N=E1Pt_d{44"zDT!,DQm^P'2J0.'> pq kf@/#T cC=٭ `QdCChs߭=:4",fAV (jRx,Kğ @ZWd-<YDaL<)~RvI:W{(5FU.ϫIXn]\ݩ&]4ܬiGA&DVc_K,S +!0N3 @>M*>& =6*2Q@dC{-#ъ#1d `0+CVfIGɊ#8 R12?Q`8 UȦ`D#EP蜙ғΚ.U@7\X@#'{ W Z3,5Rͭ3 Ře)`DX6AAF}!I 5# #>\^nk/md4oFM1Wz9HOİXVo`bOJ{b }$Ӆ 2 5&lb@ "DpC A[ FLCA!ԧot#V7Q4*6 ]В5+`fN!6/!̰^3 .bR5<DiݹȼC͝5g@dUvp-$BBEV(Qj41&Z\h]|H^,V2A"BtB{7>B_8]ׁgW$<ƹ ;N))/oN \% &{?ڊ늂^twҍïXo(u@Uil P`bFn;vs׵!;H`a7I°tfS^(4<LJPY9!N+~: S&Ad݊۬͵@'41%$,J?ekvuG"@hRz95_ 0U9E@4%%'e /!P Ft's> &>5ٯ(TxZLn:[ӽې"v)J*qH")4%;4",Ҕ;`0?-L[oCE'o@<@ؘpܴQӺy4Pr {q2(%_p C@Áa7XbRPwv>!0 IN|CB _1 g?ͯԓ NfCvqOA Kv<۳缽-W8(FY?weg,} dvbHb{͛-/ @b` yA*Z !' [ab nh BA0vY\0Ĥ? .~:܀`0ܟ1N 2C_l&7-pgNK{ԓ;sa/~19"QC7~uGRSŀ.etMHӄ!R}4#^ %B_=>ԺD*9djE(*!ݷ)NW)JD\iHsJR"#IEF;)JJR")H",zR\)fERw)K0RYi ҡJ~=JY# z @KKEbz5܆۾Π0Aܔ[#nK°` -s/<Zۣ(]@; ruhJ}Ʌ7-)K[a6)CR.R\)QbN3)JJR")H(u,))ܥ)rrrE@9@$pԨ,xu`pԆҔ o,%) p=w>&Hjfpı*yE qTd W~+0ږV`cNKb& DRPeKB?= 'IOҍJUjhCB5J#".RJR'+)JJR""-iJYR>)HJRRJzDR_A)b{ﯙA1E2wRo|XUe%չi7p[yn=]&~PE Ӟi Fށ4R7R@I19Kk3l;_DY`dfUd~Rw)JDO)TR0JR")H)JJR"6;?)I<)HJRZ2R|e\(@\4 \  CU@ ߗ}C*(۲X.`/qqWè0(*Wg@uAIY3?)K'R?{Y+})JN.B4JR")JJCKgTScaJS_)JD7:ҔyeFXuzPaO֫>ЀAL._-bH~"If&!u)$kh%K@@Քr5KԛJHI`-L[bL` aVK>0@. )rp/7 `P59BD}ȷ! `.2ZY{9YaI44O;^0g߅pޠAE'-N3^\ YKBG(z FU.6&f(W`f}RJR?óܥ(S_ڐiMB}".Ro”fYJ~ӬҒpJC})G9:S䌌-X4,%x(VBu웉1wQo%Hp;Si^̣؞()J~x|,{'a"ܥ( _͹>geaq><urGԃy / ԗx%p ?w5QsxE”'8҇ۏ<^ ȴW?3p>>?o4h'~āβ}#~z;$Lg_Pz},ޢ܋L&4}O 3gySqWƯ 3;4t>"Tȴ~c_Px4,O4{z@ I xgi4aE/#'~aR@ 0@]9=$ܢY[,!~`=4 J~39}8@cb_4^Qk 9תnRy ?I  9a]0 CP$>̴W|a:L#8ոʽ f 5PI`av0p@;!5~' @ CSЂ߿ 7Y (xg @99>,ߛc6<\uOEZ;І! ۵v| (3~p%{!G `.LOvd ;)Ɔxg-8 ɥ$ϻ}a j>v||?vp.G+7c8ZI (#b ɝq6[>|O=w #S؟^ @1_,4FFlOh`õFf ť<$))~A>`!9 b,/BD4b_7oخw&CVYotd$ftmHbX R6 x11G*3mf:` J@aU Ć 1nן %~pKOmJ%{N9roO{g'f@J;yM *PJP{wJ =I#g0pTwoCuJϾC B_.gd2g%@TnnElXb8Ht B\J^sD,`\)=w4CVDMH]oG{'7"hr@}g4Г!)G3rb9 ddUqu-[13$Oo(sp]rHHIO }q FLBB:h$S @,4<_~|#6$djnA4! ̬V#h~#9>OY[[ !Et>ZAm#t*" I``G$e(QW.o  ) DR)HMa}߈ 5 ;h(ih|.}쑐~@ #'}xje@#ӱQH虗у ۔B(]_20]RnVV -6T1h}O0{J1 )+KI (B4F+C1xcC1g=7gtP?JKC~?%~`]p ['_?G!{ @ ! GCEl*ITQU[um7 ehh0̥'9mK`rIQXw%J B$m/2ߩ5*KYwK qwe%#3Yj4Ak5%ipcT"TGde)Ia uy8Km$Q\P(Q[)yn9 ׁj$&.&zFnWoHG1ƕfbp$ۑ@ IERiagI蔎Nɪ7Xi֚(Elj)~g$>q.М9IKML>l[ꍾmVe7M`SDUEfIJ A$Qdia⅘79fI1hk!SrcJR&zӎN^GXr SrP*Q*V5C/eW%2"0fb%5qLf5pf*31Dzo JΜ:m7OBO&W \)&%4j&gDrf4r740Bt${CvMa-'I,jCD+b6tՃr*]Ķs d=ГޮɄ|cWPw0ʱ9NBQ![B<0>;s]8zubs#B3"&d}wH874sIh5CڭEkI›hHrYLv:p5TtAo:FmTͶGLX\Ѧ 6fZB#+CiP&̔' ku7"l_,>ѤPݾKj.S `c$DDE$zrAMOLEMEVaqsjѤiG~ qfu[wtv"U4 5k(vu*1 jnZM o[#26D'˰3J"ڻ%bS$2D4Em I5UMtI%XU]uy!RhF[9@dhcU1A0ۄL [DB&-gc8$c^&خ:귮+l(QbE \%yRZjF9>i4cw,&8^i=6T^ 0"$nѢ.+n^jZ[I$\ZQȢ2%R:"KYm^ėX0ʲzq|G&Az6KYw#~^٭Dq98i_:6Kvp58-`c#33C6܈fM%U]qVVmiYv>ڪ˖5Dز)<Ժ֭SiǔR`Sr1fX5WJIR *Q5WIcgn/7,VMŹ3(hJ[ ~bJCu52ƳULe[a R;&I.ƥZm9\2nvƼl4.rm\ul4m GrV;ryRmC/ע, ԐLM~ MXjGHfbVxa kڔzLQIvCIviݕOMA[YeeRy͝ U5az)I_q zjr, z· Kf!^a|04IJ7eW8 ]$O+⽁Hށ oި 3+^ܘPbJGҜ:"XFNJR)Җ=wRru^ jco@@M %R cw1ɀ' &S`w&tPZ~zj@'^L bjY@: Y\FQ43^3By,H*RuS޹e P^6P}`*>h Aj^ tCc4PO#jX'ޤ'Iv.\8#0MV&]M=/jQHg=bͬRXar ,fZNJ@[4BK4!ͻ@0z2a0UO6)gƼ!B0_M~I\~e7aO`Z h+R,ky[CI_$aw0X%O}?=bwWͻmlJ!-kom(w aД3{sGƆ%8c/S& ro2fp5/$jW(A#ve[T{(>  y,wϾwpޢ=I0jzPZQӛ-dcSx& GCt O&ypCC1mm } eV!ҟoٿArco1czH[RNrO& 7%+0^tXfJ8o9EY={y de{c B':LF4o$8&|3 u !rON~x{h 0nWu/I(묻iI)Ƨ~}jFg>߿v{ɋ'>eJާXN&1ؖ6sV 9(3;:}h%;s:] $+vv ![d#n~FG{651nϻԾ B&@^+RK&KG(q{ӛِ:(B@bHdg(_@H7NonzE 3xy:|~ G8r^rǐeƜ*(U\Ì9i(EY ]T3yɶy$^ȺaTaU=RARr(u_˪`3^+ÂcyFmͦyw4Ni`! `.$S|ps(e$>.[2-pX X$\uq2h`]`Ͷ`+\*M>p 3 Ni+^dm&KIO6J0 ~k&ts?wD&q5f" OfAz.2 )o pj1 _{rs _& +`=hdxh`__2?5T0cd5@M[B@K`gONM5j#@RW$~X `] 5_ih_I|P50,wWM ]=gu[٥?Y`+C=4Pjx#, Ry +!eF. [-!r>*(f !!?$6I AI<D\j tX1ֆ!d]%`II|:>6 B?eFs+V-6mP}] `PMɢ:x!P.@ 4|10UXh) >y tmϠL!.?џ2ς.&}<|0C|9{Ā{rs,ap#"J n& ,$:CYSАBJwHLf*E a`tBar0ꚉ'; ĘD|"@;9h ;`[ \oA(_zL*KhI>>UAGt3}0`j(IhWn< QlQKqzQ%|V&14Qn.OކBMJNt<>2.AC]* PT*C$!oY+42<}ڂQ0 jc!xB XT8t8l~ i,A6Ah C 3 0'n ĴOlT EsIxTCWtͼ&rː~4XF`$3:\PRQXjS !Tď)nK<3,F@&9+9D& QkQIt12A9} ZL9^:mEvXj)re{ wHu@itSN>dXeu:n΢Bj*`U%6iC{ iO^a]hN=k! `.!F=p}hwjc">tw\R;xy:`r2,Yc,(Ì3 EȲB3H;yɶ,ULJr. 0z*ByDFuO˪Y9 `;}~? ^Qz}.\$eBp%k՜ldZ-5H &fӁv 6;]|l n}xU_<(z_y:rPoRZYіiI0s2ffDP 0v> ;]߃ڜ4 tMo/2ݱ=cgl]j(H6 .R<*PmF34z, %`1XbqC;%0~-Qe KxGnREѦtII ^0M0l0KehbJL+3`-!XC<1ͰYfd#xò閼G8;'_4QM 9&*mͤbC4gf\RSƌIu+@q0\`NԚ&R=&QC0wPE܋RaWu;0Uۂ)ԩ3<ef>;l#hdFAt*5SQE W)H33$ W0^ Oi "fI 3Y() zf\7(ivtB'ӯScDN|soA'6 ~Pcpްi(C 3)G8pBW)KzON_%ӀCDDpz$ e̜莻hi?fS"[d0%"&%;yZKy5Ue;߫H,V9sICL40 JE F5oh4H`b}Tݯi'H1TT /])AIQ:4ˑ&UL:N B ##h>x:e%5@h@n(d! ^2᪀/-000riZhIѾ.M  ۾ WH-B 2f23H 2C)s#qH)YSm:JqE.@ s)$#R43 TjfEPzSt$X5(":IZUEZNaZzM A& )0k _x#pAB`RyțڙMC0N2M3:IȦ#&p`iY*rW }s?WrJ&d}hy$նۇmtJ -X}olC߰+nM ̶i\U>hS=N*elmT*2t;͘9lt??! @.&g,Bw0ۉHahНzF_"*5@>Y6@dx?mQ`w>` '+]2%!R G $M@}!ْ:/;=S8*pQ1%*@H A&'g@A  +  @o?&@``b6̂0ғ>Ü*qAh%r>Ld hB 0KBl4')87vrWKJ0@Ba7PhiDAC~g!wd@OH>(Or@i\=. `z#`/`B0 +D0X0ˢ3=^*9ߕN2;?R6QH*8b &bq_RGl?Ǩ]ꪪNO "Ɂ%hU &a y.QE sI4:HKk Q0-dz;$% l@QOS& `&:(7bk2䡓Ě D#b҉r !н' 9z {@W'lc4Ť?4 !-&|CtӲ @ I]8,k;褲:栧?撘̃,OUAH^{/3uX#o |!rPCBORl[!6 g  W0ҁ4.ؤa[ JhX( "\ʌ*!CdLp %J} EH|L)#zDT{ѝǏ?/?a%?}ԞP,[nDܜcU頼V: OДj@)%8Nܯ߯:&$e뺅v\eDKq~< H@h&A-e h 5igϗ҃R vL=‡ co(q[AO@@AEgF 0L!4A!#xCsPPVBz An^/ K(8 Zܴ#w|B IWQƹ_wK(LbplT(Apofhf +|6rr;¬JkUboJ$+Jb@Q9Djo]hh~Cp xe$f;^=oGqD%#\!{ @ !{ :̅"K)Z2IH<3Tʒ+ӥ(XᐲndZ>&jd.rM&^X8֤f[\ƍ9eyj6w]V5a"i--ZJڤձ^5xhr$n3{lxql|Re@Lj^ (`T$3#"6M"*ՒIDa]uY6YvimzZXG2Gաi VAyK)4Ҹ8nyqG9akiRL4f$KS GLڂ-K!8fC3r0Hf>6)H\d %Ȃ6,uH0v"AEu@6 M`rJKl-8ϸƑq9oѺWޤ@UH48&2:H5 dzUZ] &IvD`}Y†54TM.UFLGB/t0bQJ6U1\bS23428iE%afii^mv.Мjd-5bXN!r揳W &&cԵ:K!e!ojz'SiJq".ko6Vۥ!X!KO jʘ^g"dSȊLP YYB$xJg) #y USD)8 ^u)Eq܋6(@ZF[G%j@ΥvM+sBWYM$"gGڭV.F! eoT5%DbΒ  ղS`[S \\n4SqFd3Z3i$ۆ밒& `t4ED4Id꺪55MUqqފ8H4hua(BcZPi4\1Fɿ*S:1l8iřlt+JZ`۴9^fSi4WrrJ[ZJApq8$.A%MD08 8\qskvN Q ?|h$(q1JprM4:(w'A!Haތ0*g%-ԧ `doMSȱmZaivo8ź&:B3ɚލsM>jZJ0"Y%Bdo.h9U0be#232$)UL0=DIeZ]yXVbV6VyYZeu\bfء*F;(PMsRXʺJq["ꥰ ^kȝ$N\0-:U%Eۨƾ{;@$Tp!C_7#W\Gj `1mqۍ%nX֒kDۯqW+╇nE9[VREMNjj7\ -q7\mhuO5i6IȣNm<߇tJ4l|`V'$DKjsP,dYB%5 #9N`c2AD1&@x.EPQ5QQUA#HRUDQeYFeVWeEE)6 pY,4]MvY$"M Uell6m6ۀO;TXV(pe婚gm2jQ4668_ëe6Ԛ:7lt+zn-J;6RsqlBlī:춬I KƕGVM_3~WnҨSID[YTk ljD]iMjI .^k \D V>M˕Y{! `.!Y]٠$$`(^aL%˭|=Rgo{J5j_.]>+\4 &('M'PS:7AW4C {%@fY1IFMK]5t!u1dȓqs;uPh!EtP i| jQä Ji=EǮ1+ ?֢:7uA l;`=AO?!.a}. }B_o!Ȁ2}R 3 G2\BHq˧Z0oc>$Z>Tf 꺵]jE}j!&dA-3Gh f=#@J]  I$iD< 3. ww[iD MC;饮d$+n#i?f71fyaKJ LbX ,I28>3. p0_ d/~ ,'x`Ga,_mHrL6> `*vT>6hTJPBRp ($3 p ?  op[|a=Z@3.5 cq`0 - ѰC`ޝNꓷ7(k,m xZ V,'u`3ZW L$C\,R Grf<d0%183Zz\350 T=\ b1Bhdm 3~Sc9 !d 3,s!X# AiA%sx #PרlP?M$nj `?"w (P汖2 3"6H ȱ0I Z<ȢPKg:tBk+?z:h2NLA6 SP[*伌hf( kbN6 v8%=!&2H54 3! 3Gc9 i ̓6vb7T3< 3. ww[i-޴%9HL˟{42(j!Q= D1p| Mڅ3[i5q,(-1`.$O3. p0_ d/~ ,'x`Ga,_mH_#A(Pf{:K c?SUCfDG!z#^޿ M>F~ Y E< -> EN0ŭty3.5 cq`0 -  4 kj&AHѯd鴇&&dĠL( uxI %d=ÏSUa`c.?(0"!p#/35GpD ]xz3ZW L$C\,R Grf<LG|Koav1"Š!uV *-H<`Wئxd)К&"z@ 3~Sc9 !d 3,s!€DSMŦ)FrP njF QN၃2BCx 3"6$$)2,kOvy.I0pQM 4:G,~4SC HJ>)%F 9 BPNmK%Q(#4\V F Д>4HRh0ħtPr蓅}Rc CQX'Gv"3b*}|NB,vgɀ7- b(PiIdk)f( %q\ Q4CТa4J F kD4n8OdAW> _UC?D6  cPͷO-K16R πP9//:؝T#S6 NmK1 ʼnɡ+22H|g DS 31]jSZhf"nPL|),C l+Q .(d\ˊ$E4pR3N=D4Q@GTx n-zOė fj>$#ϩf" Z1 fOBGxRPzcɭ7/Bb#A%Cc5,@ZI!)] ( BaQt1c HiV$>ʃC` !d'rQxgϞ,% ~]~#+,|GYXaI(Q" ])QcoA,6Ȃﮐb|o$A1=9pG 7){}5| 0Kyl˒l:c&LI4u$B[UAO-#vFqVT:r(!%gי0ۀ0Ӯ!/ld5l+Qvw;\9yk%,Z v{! x2q#o3E`X&)d25-8Է;\AE+,2q @DĔMHb8g|^c #`M@c2VE~5?H 6(7xrU&,TV_Z,E$T;܊$"# >T̴IT㫎恓@`m;\*M>p 3 H?oemDO#yHhmh3?p=s6xAAii;[.pp8)ݶ&Ѵ52%O5ts(6IDvXqYT?o6"kR+| ]"L>@;%%L-nA,,> X% je ]q[ePBֱPhכ8&^FW1ў DShC:/ë ]8e](!wJ ;A_cGD9`$a<3(8*1w`$܎#ߎ Fp MHBP' 2G Gh SPVܙ!AhB=`)k)j }nqa -(D~Z=ނ|D3{=x`a*w-WW C~I 0 A:CEwC,Pu>6٤s2κyT!f{ `.!O`["x#_]!iqHt۰MFD"b9^K705Gh0/ C[ʽ $\y7{[A C!C9XX }Bk>^P"] ͳoG͚.5Lѓ.^OC`-$/iK/~t#,dt]Ey-$duɠ(bUP ` * Kh1&9IF3c!mîvuDRm=6QB%4uB9AAuL6y cPIŔԢQ,JbJz-:( "q)n|G]*YM _R:oH` CPQ34Ȱ `aP :K f*FSz:A-PPl@U1zxo/kۥgYpiSQ.oUMCB ϳ&̠}Ѥt Zt qF 8eQ (K"Amf!/.Q([ƃEHH8`hmE}>L4rjchsי6C`/&I /d,% ].T>\ZCb5Rr;x& `l Tyyy|Ì3 EȲB3H;x8a!+r9sQd+6KJOUY' X`0Ⱥp,© )!?.d1;}~? ^Q*{Ld?(j:R3pq aifZ-`X"W&fӁv 6;]|l n}xs #(z+]КN#87at]oͦq4P@g ʸ fDP 0v> ;]߃ڜ4 tn`{Z(H~U]FɢYEC$ UNad ;um!f`w9DėsL务@˙DpP@9+=P OL8!;%0~-YE<. ۘ È׽ mb".M A22ͶB@[Tt; 9L ?DN? 7efE%#;jKP9mH`CTT1hGJaoX# 0:8e<;'_2Q\X d61t- ΪCd*ڄPf 5X%`\ UILy&RfA(;24v:ɛN7zAPgDϨGq<gֹGQs;0Uۂ)  U x(G( BCF̻Fp#LJ<:s|T~ďX;.0!HXVѲ6HX4d_ᙞz"g^Q3C@ C~I34zf*@ ndXdYȢctKE <7@:Osa豀L $gt(A#q^U)0^ #! ' N \ C!G3oPf`.L1cr;[K*yiR %t(\&A*] oH?Du@zz%76a%Б0 C~ibJ>DmҬ<Ŝ2Qoͮ!v^NRrC)%8TUjCm T$']Me! [PS3V6#3C":6 LB% !(4%9x*$Wx0 Apuӳ..& 6c M#.'UEX ;>C +FXA=e*P$]b2D=sv :mDR; :$iear.oss0xQjճ}نBݷF385P ..ؐ1*hb5!ZMk岯Q37j|9 sd{_.'f{ mhKUtzKjN b9y9ϷJHDjm=kR![DŅgIJM;CRp.5*ʰbt"!%IRi$lYVUQvTa5UueyܐuZw5vjxWQNSiɱX %T"jeR.LCڢcQКiZ"%ûW6Ť]g[+W?4VN)ŤvMf)JУ-?˾9`c%Xse䍴mpH74(Ol%H˄756xydF @β ΛGxM@M40:!@00ē40 \˃@*I`Q!gJ ]L!%9G!'@APi`hB`o)*0x+Z5 qBC8*q1 :+O6`Y%0Q@щjw\PC>MHoh Œ& (9/ [7A٠ A̘ g@v@3tQ'@P20*@NCYy|pQ( E#pR &7 -4Y0_)*IQG>kOL۝l\aFzfp*q0ŀyI&o/ÆtH(M8h0CPFZ@aO6cW%Lg+c\L̪ @uE소ZzqNwߋo1A0^ѹ !K!M6mD#$O "qV(KS=Yi,f1(cqEQ]P͟E00¸#~#@2,39@'! P xjp01 pj'Av=yXI by,ɸ_-lWJV &000ߖjۿ$4AaؘZwEW 1R20Ų`j95 2M ]@ UO  "wa 0 'Н0*`"1P" B^@~P$Ui> ypR DG @1X@W!(pB ( DZHB /lQe¹`Q4~eL0ibt2 KNHJr0[՗JJ1y -lL|ހZu0Zz#eX4LatG I4eEx3`b-pF+Aș$j$42 ‸4! `.!1!03@1DW'hNh)ip1 0  ?@ݫ ;k퍢KP^Q8F:}DQ' @P*`>BZP P6 P<ߒv#g> 0h #.03cgدq FR  ;|6(2+#4zx! AiC +29"XiTJa< 4HA+ ] O:^* @V\@DeD=ŴtN& +omtalۀ = !]\ѕw@/)D /D*ɤ"I垑`' 8hhii,>Z@*`Gܾf褁()͙ZfiAA1 W fOAH&2F)L)%dw?>A$#aZM%MQ2s ,qrf(Jp Z@ m# !?NtěREADc&TV HtSaTGmKJ6Ie7&ItNHtH/(awlgex +AU.r&>m$}()SN pUyq_t6A.QCS05RrI al$a|؆aCz/p+l k[4|0~o D/{^ !ڍdM/@01%$5(¢YH֪"ړs~ʦnmnNM'NbИfބwH/{3k 7QJK%L&C(c"h+ 0LJ@$A&5=hbf$ @oIlWTM^8"L!fp3 hA@+O DĪ!hRM!x&tދ vFWM=[Q4jvNSE^K{'; }\ҳxto "^| ϿVB3"f:D2o5z&,DnRSSwMo2ND#@ PEWM`I4֡4C3 a <tR+ 6f6/ka?DPS^Z~ۡW&뽐ҺPMy2ToT3~ =1cק! 8h߻&g=5d]N0#pe F&@CQC_ HڬuJ:5,]";xҋ,$BU>Vorr0̇!٩jrZ!ƒi ;xI] h H\M!`wJ Tc> C9(ܿ,a_f(AB2MINM- cO4Y%a;.~ a WybqٗJ31+ GB8`e5=[ t=&͉jU!0Jv;fz^y{;.#Ay>Sa`!G `.!Nm<0 /y#sf ] ]6ZP莛eKA)!E$5T!gB8)Gto`F4vR{[  ;"m%[[P H^`t#HqUPe7EXT7{ZlPB `T3WG٭^MDpah$m  S"fٛ"&"#13fQI ujSQ-EVTLh"13* CjfbjZyx)zD qpKHʢaՍ搋"IQĝ:ݹjrPJb` ;b̩Lxc @{E< &KD#I1"E/<@*S F$j+%'= 匢BhEvnٛtd֝5HFl (َ3LT,RDK 3 L&0J,DT$JRR7OĖ$ J|QE4t9Q'{ZI\5;(eRS6?#W!O4߻3,m7M Ej#hA|\$)Ha =[VYUԌj׃};]߃ڜ4 tͦgSUl;ɘ md)$=HY˪`XԌ`9Qb fm",N>} ;%0~-YEq!2Ah )u/Kc^T&qqI`h1 C{':G0ڑ#JJs׸Hd ueQ8"^KL^Rq˦Z;'_2Q\1Q~ari[gуQIɡ\)WBBUl_=#8lT 1U`@*@ W QCA,` f$"00`}Z͂@ VfP/<FM53o4Ø;0Uۂ)  U x(G( BS jcsİ -o HaZJt0U! 2!)K0*$CH >7$j ׁp`|;A4 ;~I34zfHb̊n4 -I@ZH:Y;C/PpXX!{ `.1Ýkonfp [:@M,"gm:4egdhfp ;SDʲKs1 ;!G3nywdOm \j*&*>v}tL ae UTρ@`> yA ꨦ " cP G#fNACVb>&&B&g+j%"E(+5IFdqa A͝aD CPC3_#j34(P+ oHOYͧD%Uh0$/RGBJRUu\ͨݎm10lzuĈ :řvMk6p FlMP`~Gcc5RGQYGf'AC[}Kl$ե {J 'X*H QZsF4QSp`6 ED'$ Id!kB5R ou3MA{5);nJfi#2ÍB8 jh w V 4jPx[5w"*v@{@?:è0  '&2H ?N)!KO!:3x04k2Ra 0c& j_Iہ*2yr2Ka>I[%:-MiD4b;ꮠ`s] ?oO> 8*q h`& ) $O@ `1LBSp}{x4A,@ &78M(jG)@ NH IJ+ 9 LB &1G+Hn^ 8*qCCԿtRlC, SWp;knlP܀HуqɈePK;Q Jh%QNP/ʹ\IIZ&60raND `'%g`M%!=8"qoo#M 'Mi(5gxމ%(6?K [uBO{ ==ξO35撾> @lK): 0 uQ"X&? j znY+u!Ad3rCSE( !TD @P!|@Ex3"qBXj&Pؾ1%>` &gIqE`%$7h?i([fiϙ2ok~ӄt%4Wd{%" NR #l܎L6Zƈe^>y1(([N+,(HqFg#իgeJN9C뾵8`ă#!D"$L(|,RWMuUaEYQFiTaveUiuas<31آMܖiQ>*#VA-e:`/*,,H5E8n>(sZ9l b!?R}(i{ E$ @+-VSNt}AM c'R_mA5(v&BJrWY/S5?^W{>J-Q0% 牜1i@$KxM?I'`94Va$N )t hh@ D,Eo'"4) B/[ f)8`n\X% ] 3 C\ɹm`ڤmDޞcIȷo ҜO¢ ?r04qaJ`gXL5,eAOdZ@$*!1O&@G y%10 b"tBz OXod>D@0L)<`-!ti !)q},D10D.1K _[e#WI,tS 6ae+*Aeޱ0`gA/ :Tb?z sidsNj^s} /I=B@R1Hcw bB#NbbAHIfBs# cx ^ ៜ^ HF(1iD(xJ9Wh1%2'`h ,-6% |XeEG@ ކ贔`Lv2sCS SCEA  3`kTE3z6O`d 퍀bVEI$ID`6R( % Q["tRK K; /ff" 2XH T4Z4̾PO A.IYX<7Ams%!bͮRo-$~YcxDt`n |L(DPI\1^OFr*d2H.)#LhY0E ;(bWD9LtS E_$L('$P[QDd2 8|M_TJ]3Vn/b\|0#a :*D0p|M#à; AYDX8FP%B `/BfI56ǀߌH rn&j5(@H@H$@ 7vPXIE`V}4Pmմ`r*V  ,l |"K - kO] oPe{XLKD6; 濫 1$ޚ蛉i: !NKdM^2(]eӕp@CH~sm!}Żf(q`j! Z7-mA?py4߻Sd~{/{2Ez5 AE_[[t,qd'fHTI;Rt2b<JjF#ATE@S/MCZ z\CrG˷&* <71: ;{^ , |VO[#O" I^ Rx@IId04Ԑ^ %Tkl! i0A̢9Qg gUuP;x΃bZQ}|oͭ Ch@d^H&j tBð;8b ȺaTaU=RARr(u_˪`;^+ÂcyFmQIwُNr%Öɱe@B+; X2|$gq p p\w4 X`.m;\*M>p 3 m>mJhH@H"e>dBޤ0,d) ꐞ7 CvnYh S]0g'LLfl, ,&a`;[.pp8)|Sm!DQU= +b"T.T"3"h'p/À| dSK2F)\0 z  Dv<N}_!8j/-2(ҘͶxdqO;%%L-nA,,vm0^@# Ϟwݚ!j@SȪlf nv aI6D!Z8rd p:0oqP7CANn B"x*4yǜ{.yC'OA38qܰ4 p*V ᰶ7' t 5ya`z>@y: t (%Pf Pؿȉ=)! ^C&|͔L4C0U0U @ L !H*R x( 9DC0 X$ǯ)([>i'5E0H.vŮ(U4Xcu Xtp9rF^h`IO9se@ C~I 0 YL!`~j5= =qt4"lQ/'ì9'sᨫ@--{GLA؎vQeVs0 CFm!HvzM\/݅U. -]X lOD%K-$Bc lt&,h|֙*6zlD0d&% T;3;3Գ_O_Y'h4`[Ù #5]Cحpr>ϢHfl/pfPez]rvʢ:  cd@X.s'B&cBx` b>ttp%eW/0jR|.4 UR|p5G xIjFlbT;h>fi$@lv_:uEL l$&5u[2ctTUzg~ `6: %މz$*`Ͱ?AQU F"}`x"`K )T K!G `.!QT>x뫝邏+^`ɏk S{^1zF)̃q(M&ZQVd38LY ҀPsQ}nKr!&m0m^^^_0 4fQjr,ꦒSx3xˢȴy>M蠔X R3aAO/ 3,@RnU< !?.d1S}~? ^QB%N x;a3/oz8~qtقCX`݋(K ] '`In Yq;fh=8`ZmS]|l n}xͧPxȊ>)LC22`Yxðd&@5/t'x*C;A:d}0\ɷ}i;Lg &ZJZA`Lj׃}[]߃ڜ4 tͧjBH GQZa-Jk 5CiTLC]p3 9&g>а*ð BmȋH[%0~-YEa`  >(B0NJ%T FI { kދgS$CEhl󸻸Kj3eCX/5v, `di0e<['_2Q\4QTF2DCAֶp0USТªxxDEl bz'bECLPj^/yt"Um|dB2iyc0Uۂ)  U x(G( `. &2T!f [܈Y@&!wKQH/]ExU]H7 X"ç`#W2 c~I34ynH2a aÖl^_A)֢bf@~77N{2`Pi)VJ`h4)4Y% c L8MK0'BY6uBHwFZDOCn2_\+Y)O Qh*AWBC6|%`[g INB#q|auιh(Z6) V}0L 8$o[p'!V3Pzil jw?#sмsA'A$l&fT< mx0دEIyl7=a2S !&{ `.1Ý V0;+(O/ jʢCaeд _tQt,]'ȑI L!=P_Lu_s(PڦҢk Єc"`Aum(D#_D$@uNq4eHIQ ADK3r6q - Į MUT'[(7I`kCX]UPL*<]Wn (j9rϪWXXYJ @ntwRZ:^,!0 p!xCN`09Rbd"avK';vNVkڀidP L a0Eri[)ɠ5tb(Yh(7$K퓿$xSx^`f H&* %[$ͰP@ONCa%V @hf%ߑ%vu F9 ۷J -(#r@3 ! v,Ѕ,{ :&딁 rKzP߯ܞl~C H -ր4@ Pr-! KlmW` IPV@H8Q =J~CߌBԇEo0 RCA,Xb::}b5F:^ Hd<B &BgHnJxixelBrE(Z d9>|*G77J҉-9b:&Q/c]%"Y#=O){)&Jsw|xfWdҎ5Rܥ)fr#HF".RHRSHR")H3 h !3!hi}Cõ)4$c`z@ !j K,M+)/o;,bnp҂_k_p H ,K,KHä;၀ i 5)q| 5%=RxWjԓ NfCvqOA Kv<۳缽-W8(FY?weg,} dvbHb{͛-/ @b` yA*Z !' [ab nh BA0vY\0Ĥ? .~;8E 4 0Q7'~u ]d_c^^K r =9.ԐԆgNnb]B,EJ)־^})$ߝ> ϯ=k%TObR HBfM&.S]ОrURi# )H"v)Nv)JDXi(H";)JJR")H",{%)JD\)rd;斑0(c^/bP;dž⿼Iš }]MQcq:+ۅt.K"W)JDZNOfrR\)QbN3)JJR")H(w)JJw)JD\)W)JDRdSe懲-CBtaA&bolU@?&ra`P5)H")H".R3)JJR")HZRu\)rERJ)JgE'~̀tWgY[,roO_,f@f&#V<!9 !L `.ל&=&^803])ڨn};fk$.qZ2zSf)vZܥ)(JR"aIR5bER)JD@3)JJR") v,))R)JJ.RRqBBrOJ::π;C_AI3u U>b9i'\baA riyYjCi-,k:ḋa!zyӓ'${}ɼ 0WW0!v`}ϼt.ܥ)rRR)JnR\ibD+)JJCK..B{".R\)rro݁biI+'5`@`:~K{  &Ugq7 [sH1- )g͖I{eb IopPb^WHz@Otbie9sNaWL4#%k @bfef!_A3_;!f +XgtRJR)JJ^)IrR{jKJOmIc?wJRr+)J hSRRJRQrJ)I)I @,3 JQ};V4#WL Ԅ{p7ў%VtE tbOn٥;h*_d~Ssیx4yi8o} !Km}RJRܥ)(JR")I)H".RIERx +!J蹡SRR)JDRTӜtR ;T| RprlvT/I?}r)IERr';d&o3F>5 ##A`!&T~8n Xttp I~5p߇|77v?*Q12ВˆT0bPoN%? Ep\S4Ɠt' b :~&gXBx"?,A/=wR@cK'fIcܜA]tC?]Gz~3 HgA5u8|$ O ˓wzΟHq>w3,A O<0$a>Cv멿iG) [ ^`JB o}©]M]&J:@ի!GG5L.RQ3S~|~:l.֖āO4;ʂ) H'[H"~v9簻f'oG TW/bi.`+AI7OƺQ&jp;\(45jF®$9BkoPa%RUY@:,0B>آ']g2a xP1^-:ZKk jz!T}d*]>x 3?Y i%e!` `.y?c!;{]UFD@d27"S3*/} 5}K>l&AypF P+] tw{Oi 7sȶn ڭSqwsQ q}dܑ5}tBڐ O?*]_CRmJL= !d!>Kf8!eٍLQ qa>^]thqq  3&|?'U"l".R1|?Z/W)KX-)B6Mj^F}_d+ZHd4{cD(dgHUy6 $7| JPr@vqK #`hjKu؂Vdm5wg!1 oCÞT{Ξ]az(+4ej3~搈]+W4qI)ZIawZ J̌dV#nW!\ azǴXcj 5 4M<9 7_0ٶ¯J_e6}d4H┋6#I .}U2eۑCc&;~ˠ7 @ g@ݿoֶj%( ͯK {$ԗXoOycqY77@N"Vexf]S(>k,Z9?(d䳙e(I@ }GkFׂpkKWS,C@p }xGt(_cjqD,3$ۢ`'c֥jI[%+`?cB,^̓n >5ճSAPd?=y ;(z*уqf?/"SmU!i.H|_ά$U.br3^hfe;}@LC^#'76SC Ah:}p ~/0w  *K?)7=O{7M &y@$G#UC@wn_ Jzw$(P~YI=O >5(ihg_ļS;cv;v8ȼ=&.z:_ 'n8|~TyOnH9B!@bIX h-xJ`w}>M%4ڗiWg^PqxlS!)38V6J>8 N'k˽sRJ@iAkϾs#hz=3GW] >zw0с/뫔7\v@ψ ceC#GjQd܋nڰ= k|g/WYz@፵~l Ӷ@#k:!#VgIN,^o9++/_U#j\=)}~$φv=_E%ej~^ !sG `.!Ƶ?kâPf +df'MȲK KN3buJASM38KhYsѷg:⒎ofB߬}Wi/ A-oqЌcm@`n~W<,K;qٴ7_ΌIoJ~dp/1WČB>QΧ.hIkxРAEnX!Q !O-7$va}Kh,rYxcd9R9-E 4Uky/]t0zд&`6IL [Z)䚋AfrZ BcOuY+ck. po\cX!6y t#! x Y53x ` p 祠e]=k. q|0FN<|8xAskM&3[h/ >&$c.f5Ak. wwAh$X&I b{(wkа7 B1a-!(bIDk. p0_ d ෋xSX|O 0 9}AEO /zp HaO X G8J 0_HcyZOk.MFe0PlQ0)`[ 4dlՅ=99<&]V9icZYHX&M( yijH92u-`+?_Np8XOSw!6 cvrYAm;_|`-eˋJDZPP A + ~_0%! c#Pvɢkk:/0}.3\kBva]#c|l~H辩T uPBTl"U 6gZP(f PgMM88 !@!h0P$B68M L@\ OXbJ@ȯ{P:Ȳ261t%1A f0bCl1HR֏<K&NC\8g?kZo%摆ǤD ~(7I.'ߘCvY}l1q695 .cv2!@>3LkM !bh%UtBY=F A[Dž^B 8&DX}@[%0AN p"%xo^ , ɪa,hڱiuYwF=pX"  6 ) x#R3f]2מh['^L!{ `.1se @PxbI++T' 'K2|i(HOB["AV@&]pA, ~e5'4Ú[0Uׂ)Apx(/(hBiwp,{0V3!HŸ `!œfC [vRH -^68q<% hudv)^ ?؈yܝDc  [!=.م(U,G#vfx؄(pBOs2L-&% q&|xI x|oduX!=E%梑p^ PF%vm{19ES-Wy,2fFHDSR4bF`Asʭz"#&Ycr?3o3l [QC3]Κ7T89Of,|K1ML}& iDäi>, 6):Ԃ]o8+k̷ձb6Q`$`=Wp}BaO|}l]Ag!kZڶYL !#|9XLZ(ptBZ.g4?PM7h-tcS٨L;emE4CvTV#q^NPf&3VK3(7X[vR-HnU 3ADD2٨Z+-/]4KpӢS_`La@Z!<P ?aDV`@}DMaXDF.,?X,ix,`(b'?D3Qd_D:V BᤲnRP1{DL˧m &%!@d`EB05L` CFډaLJԾi`\_&H"Dn1Gtf3(e?ID3$΄?E?0Ƀ-}$7z܎H% YG&X`c*(E21ð&! `.!8̀9"#6PaW0< GY# W%H KD h 'QZ(!@޶8VY`(b8l .H)X! ɚq(02Y@#V)'0D$XB8$K%T0QrB19oJ[&;tKe < , LHi,2PLf$2ܸJzMaț6AXhid :(;H 9en(-9XZPC+!лV/^/jPN (2)f~|ނ3% &ád+Q\{Q!!n7>Q'8tDF77.8q?`UE W! `44` #X. 8"~!d /5p3Iy(3Rf..Fpt&3Ў/R6@-/,_J` 0KÛP*@-xPC !PP K"A[@7 |RWZ)j'JyvB貛!",@w8Q0l00_'  YI(p/@;BÌ4/.fP0 aDY(PAmՖ_SAL104 ͻ. DڈB/H%=u4<+!/tHM+$Q' Dɀx4h΃nN`n+W] +4evY }&ȃX@P4g<4!I$00%;dbavVJ FH4v(R #Q*ð(dOP,r!(t$,'iO%&(|Zrs|,A3HvMK-wrihң[7G̶yM L+6sz7HrF OT["O K&|VGK:&$D'X(|߉wU"8uѾ>xH!`i-^`#\*wqM6)<%OLܦF& )r;@: )%%J Lo./$gDR@ (Rs hLdP"#D߉I! =9PY!4GL|x@$OO!0Y4b? 'dgF+8cLAD:;+,sd Pj<%uKÏNL, bQ'XjgM_?9D+ܛ3I4F+BacpΏoڴU 8DQ)XtD7Ί(*zC LLH.H@0ɠĒӐ?=1oM(%9Rxtݮ#I_h>`&^1Q%h@k'Gݻ.ObńD|C/HS=DC1u &\n‡^(}]qS AI -3~@W^tT1,Hi~"iSxt)/1I|1d9KSԷ!F4ISxv`KĤ.2qT?~v By+JMIxi柋$q1S.~ a WyPl)y4mc x`LKӖ=xS.#Ay> S.Ե9-KNz޸kA%ca݁ L-ෞAa3>$XH} K.|#@5! @ !wW愍#!SiHenK:i#m:L:ͷ:v Y͑8qD*VMi@`t#3#24M avmYYa6qxqve}^SOh'#rd7mmpm+mT2GDzSz|ܬZ<|~wWMk2' =uFfͼtغfQ8\]P)-LYI#l Y)q&݇h 9$)$VrmirHP`c#34B6meemeY֙iq`\ùOD1lᕙ.զg^ZSH@Y>Xn9Po^!N8\E%@e%\݈͢d'Qe 4q&T; ,AqKH@.2Quier$.(d[z7U_-⚉!#f6炴u6"۬e6EX[E,ZVQ8U-"Gz-Zd}Dd ELۍZ.n@.(41U,Rj'c54BУ&1q&N7#mёRD+sS(ibe#3$3Chj"Meiu\}iudzX-ُHr9ʶan߹b-fC14M$}6Qx֧3FӅ]EFFC.^`g7pJHё( EXXz`0[͚Juo-+)m`A_b\|8 zLC]\F6cUfVjt -eQmiNA(]t@ nr0bɖKZ n1I,)՛je K,L˚3%-J񫞷lC:Rkil=;@`u4EED5hj-Fe^vߊcG!x㚒5h$u5*c+^| Jy\Ԃ Iی$Ak\v7!g<XjL9y2TZnGq_> [f0l͢]qJ1bc4DSDIZLꋂ-]vixr8^r cg;Cz535R@JȫMf\$J_R=g 5 VEaYm|.H; isW{ I\ ;5B_j"8])‚8-VͽyGNM$,5Nys5d} k R8>::\ Ž7Ȗui9m/\B4KSf9uҋ%ڌdc*33liMmK#yB*Z#\^WW1S+V1m3,el85`C$#B!##i&@ej -3V=cE$M%TIeMd]vYu]ZlY7mnX36.7\pq6QLͫzk2wcg3 Ȥ%}$H/!J-T5ąρXQ,NK"[o͒*Ͷe Mn ж$1X`3->6.@ģNF qY~Ȝm7 )hܭ,ׯ.5cdhi:g p^Du8"t0JR'%w7p&ÉM5 VwC`bT3##2$SI&@),Lxl=o^4Ūhi$"z&I%} Ѿ)6z޼)3׎qK.rx@p{/ො+{m(N7&c06A<k{ߔ'9hKW^ST܃Pn xl|A !✈|i"Z-Tu jih->Nt,7J)5f= K[nRfj>&Ƶea$PiMR|apzO8bH) KhϓGvf؍bxBKStC %Ł*CXBTeBW|>RGuAFfYvO̷B ###g aUNN_Ϣ46umCJ(q<}!R~8iTk./Ȣ`#Aobj ʀN0uAP, =31D$` ϓ CPCs4MlҢxF N&H~mDBϨj-@0@@sk B:I֍y RФ t<CiTIP(KHԠUk^ɧAx C6%g hRw%Ad>.6CTAdD5P O{޺ ќ}@t*WسR_J,! B$C'kzK.UFkumFnmC% FupLV؄>TH$X`o&>'Ĥ!tQC6U TpҎPocF9&,g6dX]C~Eo΄U Bj%2m aPTk̄!/(k} y~mF׽YGQ.-P[9CxuE"h~/ks aCR-B$@CxvS/mE@ĠmVmQ3%i^I7דO}x ;.Ե9-KNz޸4W?kKCS sꢓ @h|0 gċ;.|#@5,>xl=o\R}3j$IJwBxϒwPrC6\B(ROS!Hqsp;.rx@p{/ො޻JEPGEQoquBk7 V1xy{5;W^ST܃Pn xl|A !C\Q5eIo ա͒㼤P')8Byפ;Z‡0b% A嚳r ;[nRfj>&}ڇ.b(GQ;f=aEm`c6pޓR F1  ;h4OͳvK[) fE_Bp/)e}hHfRj^!&0sD>TK y*Ze21 z#oiB 8$APoJf]^|e!/jAo:b@T(Q:WJ8 Ht4>%T3ŖIh?%缕Y}< y;o2 :'xh&8 hF_,$K>Nh6cpa ?j}FRPP }P9#-V%.!G `.1Ise?Ob@& 8dg8I?/RJtO(@ #OGy%FXpS97 <yj3i` ;Rgޮ'8-(L:8%佉ԅiO@tɆđASjaKW^2NKI%BlxBnO$,Bғ!٠ 17l`Wdr{B:RkR2.˷Oj;% Fuԩ<ؔWD^?EߞI.l:I4ӓ4D1ghD24+'$9cx *|{65}vfB2>{NKo;}5MD7(@)ƪOB4"F)X $4 d[A"BO%ś,TQ|*v?;͘;ά7pf*<(! PbeDT0^d^M!\ - ?WQ4*:v u춭_Yla%G@P*B,`NwX7ӸZ}p0DY~4f8"p2ŌIIJy%I "a Q0 %NHV%҈DtŊY+1"pEH,fH Ȑi0 R$Ԏ@i1AJ+uN֋9A01' "Ԛ߄ -` Vk`K &g c StB)jFیh" %,?$܏8"p(40`inD AfJxJQāBh?QCI\|DāV(!f =jSέwY٬_(M(ovr03*O)La@^R H)݂j9 Ɛz^op"p@[4 ` 5_90wؤ}!c΢Y†H+Dr0`(Gq 1`;O/iF4 f;X3@b2y75cz2ޤ T}„ qi1(ܤc;DDPSL %O{Ya'Bhi _pp dt$/tXhXY</h q% ($qȑ0 42 /,< jPh0~u;l۰w@jIG\ҹn.$'7H!Fn&GD$9H$!hF%)!Ͷ# 0` !R b2(H: d 8pBB?4; + h|Cc^$A 6 Idȋ% Xf*f%:]&6 ܱ/ 0S `AD#2o^h D.V}TE`*`ĈL@&@gXdIO~7i~p p2DQœ̠8LBhQx5R_$ -,7o}ɤ&Q&vkp``mB< :hɡRF:`LB9$)4k's EAIO@ @f#"RszG@a HG1GWl4balE Y7@o0lqB{)BhWZ`#d1%<L"e?!{ `.@1 Z4 G!⒏DHd<|C%o)6o1+,x1BڂLAyͺ kEWҔ:saN5TK`0:~Q@^LL& lN^3-T%Bw@- G u\t@ H๷&O@ՙ$QVZp5p SzmC0"Ԥ@HOM>Q\°0(i 4D` \^@1%2Y  d@tulJY0@ ΐu 39 nT$H >aKOtF>8ᚉHt "P~$9z8(՚] VӬtQ@Iɠ "xT7@>*E5D&r0_|m#@P437j#@IPCgo,|`t#_Ln CF5 7)4Md31V IXV`(n\C&Gb9ǾN.\̢.|J07JLXmm߰|FBbCL@c!#mDZCSndXS 2d"Vӵ)%à"4PnP@AdOQt (̜3֒$r:T +A4Jjee.;L,Mބܛ\"-` '҃"TD`H 3 {h1<]D!A2!=@J)-RPZ  13U02 K h% @`L 営*~;!?c?w]? 01 :_)dDܽ2KIiN({h I~Sx'{Wt]`*7^w:ºV"Q _努\1 IhK~$wZP5^E]چa@`n Cֿ[h/DR]B΢XC ]-Z0mp*v\N$f>9[>L30ͲaBI(+̰]C`iA=Y+ILQwY\*B! !=d103. po\cX!6|LRPޥ[Zya%+;bhe`{m3. q|0FN<|8xAVx0`ː phB! B +m vE5 !I%/ڨkH&zgiOYL;O3. wwQih&P̓ G7(}_7w -`(o[*xS0Xdp}'3. p0_ d: !Jj0"_ !=`7 (Pc $&ک˱\ lf 𷔄󘵮943.9 !rq& |cnq4ƨyrjjCj#U]rmb9<kM%;OC}& Y(rg %G ƒ ;:n0Y[Cw,TKIG!=CHYfrEYF* ǰlpK! 3h1̡R,s,a% (BUɏ_-hK4CrT9T[*뙥Q/hB?><&JJCE!9 4dmѹa shb7cBu g5iXvaVVs²9X Ʌ%%403@P*CE QlȪ7$>%*v_D%'[jx1-5IUGZTJAe썏XЅwLO i3RSn,U)ydKWFE4vPbg 2tfe&2 TsP A+к)AF́P 3.+u=8\+H (HГ|IyVh3 qO2[+᧪!:(e}zݨsծ,vC{%E FM3f 3 3]ClͤPl!tHB7C<:9JdJhf(C&P<4؋>+N{51k*c$P aQ{@!9y5 @@GIM̃F? md!Jݢb:v+mXr_;3%k4I4K^."b:}WgiΡ3Ycba(oɅ?t3n;R5Pܖ&Io &RQ~oY !1!k¿Eu l.B!tFGOX ({,lk7Oj%R}vN14S3|DjKD"𙢲?$ l*f$ch1 70:ڐeBP;j aJ/njt쁆"Ⱥp,© )!?.d13}~? ^Qm3ņaC '8e34k/^a36߁n yq;fh=8`Zm3]|l n}! @ !l #JvwT3phV,7!7Nű,ʲ*gymL8[y3c YM$F2RdjE[nOljUI㗱T廚Mxj\m%bl(+֊xfk7$"-7X$,q2D$w啽N:&{h+TLm>Wk"5xw,&ezI[]NL>X)DS"7FN,~ ]Ⱥbc:LQC$\(#N`D$$2#'I(4=E4IEMKҲ!S]^07Z /ɇ!x }& 5t)m69Ri5|tNKuTqYm&>$U6VnUFҒZ]ZXY[p6]r]ລU|ZPP6&7#RD)LKlRM]wH>R oV˚pErDi0r(޺TX\ TiBšڍ9u DA! iYyMq%f 2ysR 3 ZXmYu0VcR(5hDR Neu6QIb i~F\)0‘ [:&xrfM*1l>9f8nMҚDPj֮$[R]|geK6. u|mu'`E%""R$I"Hj 4P5UDY4UeYZYV]ZUk$ AurKo_d'AƑLak@n%fByrSEieEiYPf:&|C]2fJʚfa2:qS3J7q$|ԅg;Jg_ l՟>QuԖzuqQ?Vا {YՍYBU޹.+Sx335ҸzL[q<$.w;6wurt-X K7M+|$D9bT43325I"/jXE4AEUveYivFupT:c+P ~!H9LF-Si!ØvN$AK XnM_oWb-lnV\v+i:atu m5!$йA5}H-؛nJVNJөdvZ&D&DL1(6 m̥"N*[A,[Y+Z=6'(02jjRP_mbD)8.Р+IIbWYo^`S#2324M UUYeaay]mq (vQ*8,EH`qŦH:mRX,ar3̿ȡuv r%L&Y3*V >[1m1iKY" MΆ.UMVyG#rfm5Q(d'Ű>s\v*hrIa](YEjun+:9."OM1.*%ph[US-wBbq&TQ+q8n˹#za iE FMccafe'd#7R+ejldbt##"C4iTUeUdY4Q5mqנ}xQI6&G mSq+_;}%Y$hnDH zvR4RƄ+JZ^"4NPK{M4JBTgą6Z) i嫋k&]MjJ' pBo7+%+Щ2!  `.1#-IxVZBG4 ۙZ ȲZґMY̸2u, _x3]߃ڜ4 t^Ky&Ahpf3aM(a ȋH3%0rPJ1 g\^8O@BoR)۵!>/)?N lo^I# R5YA Ƅmj!n+6Byy;'vi5(=jI4iX|JOF*)0L_k {T$XpvѦp: 2i`~ +d}:_0bLJ+[4Zr4eD2zīih`, - @} N [3V0}P5We7m$cޒ2#fe. Dfk5wvo 2/E%1<g!2hTXj5 nZUtC1&E1b@0JtJCul'7νq[pݸ0zJfxb҇(*Uߤ{)h3"QIlJ BfwEPY*QS 4)= -%1OD¨pIy&4= 9`}iO̍2L2Yow0ŁX4 I,$g`` x5}fI#^fX?Ke7 ^P3}P* uP K8$ h<)<%+<L tKe YOlP+#lDqZ,4_9d=)Jj}{H[iDգ:2pš(;CRu芚" N@;! #$hk#̓*paA 0c:z'P }Yt"p/9X5& v,5W H~^ @ &t |n 03DbII &N1"qd.L`zJ@A}lZ@fr/c 0+DRdl&xr H}Sv7 K Y6,nx įQdžM&;Bo#vsqA'@p @v İXhò!0Q& ^Ӱ o<` ,":8x4__rFbWS5舛 䍑E*PDӟ8@`l(ht"d>0I iX)h&0>? 2ƀ+` >O!)@*qC0`:Q5ab ^)`/! K!lB@6!a! ]E0рlƞA,H)ۀ]c2L` R Y!3G `.L\)ph_ NRgtZQބ `;!$ҒL AY-Kz9#?Q {,W浘i8o( #/ Moݟ,($0T @!vp&b<``ȃp958 |B@Pf@Uю*?&J+)c#jH=lu0Ŗα@`އ0J+1C 6&ފ$.p vj '_DuJ-9䆀?4 (%Aħ;@BKz^,FA@u >nB=8 u{A1U%,']j!2`ȲgJ Ą āeVPI:RpL`I`I0mPicE'(2pv䀍:h` iK`@-͒0F[L%Ad4biyU$Ƌ@أD`q7 @T:PBV P 1| )&%0C`M} $wi Hdi PQ0L] №҂==Q`J2*#ОtIq44 0EuB"8#9z@jp"~0g>ҐLIAp7;Q8b4\ J. m` #,Nh2 ?K$% *GMtDb` =4E$3GAa9&V${c``* BD5ދ, ӑh%O*L?Y0ZA i}\K'p 4 !`00 ᬁPD@@ @2!@vRjADh: @$)N5GdL$EQ4a(!TF@2$aY `|1!3RK@@Ѭ'JIrC0i$g:! DS184~v%$5ȢpW0dHLJI]*`& RV'0 J )4vK< 5$!2m)!?S& Lj0( Y$$ &?a0֔'+; 7רa2hA bJ d04 9(I5 @D D[sEwF>C1E#8$,0)Wr`$A"iDEq vL$%w&D ^8`6&pL'QɁ;'fsŤ04| +  `^E l@0,> 8$h<^̂Pfc "&0W*&kNLMA \WBmTxH8#:&8 Z׀Ġ JO'U`X"0hOci6>"M)"ɗ;B K'($1~!]AI?6q,ͥ; #1 ?AS\$Xy)#o (%2,NPjxz&R^,dKDP&@+,7(3!^jIv!t4;Xᄛa&GS0cԻ@ၨJI %p#ȑxg,8 4rb@m`:1tpgH0=H\ +ć AQ i6lDIA9/v>7BRT%@[z OHL 䴧OOKWp%53!g @oJ) LBG`ڈTjJ,1+zE%`-!MApQFQ0 L `LB@<1   !yҹ\jcb",uɀpT f Hh5!Ұ!茫!HI% O޹ataO"hAl=SȲчC; [*w>6j"1Pw>9T;Y<.))FD<Ƥ!|r;<7 N~sFHf` #A,7#VB9e0CiAH;E` }dŸidҊIHҔms@:7%==QYҟem_t'ۺN0" ĥJ$?P :!ɀ1&ľL &'IhB+ꫀWDC&O^+PgZ~ 7(uIY!y Q`*ٞN~&: 5`qY u`ٮNF- :.*pT]ҢhJ$i02|7+M0$m&m1:?j)O~}53[1AFz.͓s?7ŢB^"D&5KFtvӮ/% u=][b{{|.°Љ2(k˓'垍h j UL&1Iܞ﹟365 f>3#'(%]Zr 3xzxnu {A7Tiq2 eQȲ9C:3xzHEC!'C2N l+Q.UUO`TT !}ꮮq3^+ÂcyFm\NA3$p 3 L-xj |C&9( D,H&?D1U ,1{"`k \x<?̸˙:| ô~~+[.pp8)`LXE)08c#u7r  +YI$0mWq0vL_p_w?6҆TpeDZ"c +f$n"[{- /?.˸F  +1Oa\* DWa?UT'@M!`Kw |UǨىh~~9A/+L Oz||掰#&GE\A~M  jєYܺj($? % ).yFi2|}{ T3@5Pء9DaVA]1>!?r͏A#\I KcQ]]vC0©'Q)<İ #6MLMJh[ɂP$Eh'"! DA< 9_B4IJAk'vuh? 4 np 6kiVӪTb*Q)%ufC0-X 9Q |(-C:VSDuXuPh-"t: R1ޖ>| B@$9/a Re"^V3`=oD_R Y"hDpf>&Dҩl%t|SOoI\|;5hD$P+dV/%T<gTAMSp'REKj' A<`6RD4 AZ QcQ9{kX㼴J|o*xu@Z:z#BAddW &)[ZY7BJb+tL (vEzI,D :a +SX;^`Y븩0Y tL]8WD t0HFP,/ :A/;J0X(ݷ, 㮩8C+RaSbQ7 @047= @92m*JpoV2lK@xz~iUʾIA&,*s"MA*x>< tHd=;;"(k̢Tt ld{zT^iQ h,p $pщٞHފd\M&=AʀR%B0'|Q[|>_FJ(.aGRWc{"*5,D@.d˂Cif,] T $UtLT2hSʕWa#(Q㟽,Y7=;# aҕoz$c-ر#Be;xz>+#fAk[qdC(9R܂FuSI;xzq&HFID"M ,@g_4`;}~? ^QˇˊE VBB3o90f{-¸/.:`L'k^m;]|l n}xRH(3]E#&3⨖ =uLp׃~eƙd ;]߃ڜ4 t5PY"rBi'zPWMGI#PHHp\ 3k#e^ ӒPsX@_M(a ȋH;%0rPJ0vl !l @ !=?$S{5BSI=ށLjq㆐qr܍µT`JIZ@:ϓ+`2W*P*FZ< l%0 /sFTdbiX`d$4326D+ Y5I$IEiq\yonNU1#)mѱkOV%2tP&z!j\T`ZiU^1Be wR!oL'`Vc6Er.Cee!AޯQG\+1*F 8KF-I&ܒuP}}e" 昖a,`: efp)"8hlĴ&H-jq WZKuEIErFi ; XD`bJSm2vT)^dڕFQBr]@bc#"3#7mDPV9CAdM4]EiXmvii zi8aN:LYf>x Y5_ AF}g4(r6imJ:"}7\G{\h$)7mݵY-y*=.޶I$OmKp~M*q pztCbXv|$ԩmq5bc#33B6i  IOAtQI4UY\i|cIht32lI_F}p$YX"eX yҟ+ֈǜkkmW$n-WVX1]Fͪc&r$ZnVJAu `m$坎4I-!-:dqjV׬iFL3˼5/gSYmȔ-t751&\%X;6paM&8M-LoA ]4'3`:6ޕ(Øꖡ-Q6#n4é%ycQN7\㣔f%ܕ8-mV`c3##CFMꯌ ]DU5aFQiaq_5ېޝ #!M hMS<}z8ؒfՓXG%..o8y"6-q[/RqMYS twkQkNm9l׍M[E$QdI5cn 5l}q3PVJsPA_6V6ܖvbӚfETPF)6W#tVm(d'"J ؠFaI61:-8w8"0s!jDim)4V~MK"|Ssj(XZz>ˈ j(dI҃M7Ѵ`T$4R4Gc1IU5u[mfqO,|{A4ʍRCsW&-k!5F&E'ҪJY++{8Ǖs[mvʒ㰊P4̤QiK[ FfTguEն)#-2bE/ qml܊u>r98n֝{FJsB($[ /(h*H 7l6M[S5g'm3N!VKp~IA+cV4^W*Q+:qr SbT""34BqjZQ=EW! `.1{#- ?4(P}Bs%TH()?x^_mմML 'f]tG`, ` Nt@_8) Uy$L9;'_4Mk89p;*6 jEEeu ǥZr3l|f,G*s@lYg"͝ =;ziy*Ni4; VWS) aO¸| xB,%C. --:buHI`5ld +ְ7 f^ ? PAY ;Y$qͰ8?oTRQ3hPrI#@ R Is]ū3ߞ}NgXq| 2^ ad"Km[T׻Q6轋 vYR#<褉&824Z M_&#$7IJ㏋ zĵe%G JzT#:xx +R'i>~(s `1A0Gi_#UPDpTB3jOg|/c-BG:5MŔ}mR( +}tW']M^ؑq`b2p*@=g   04fпaE2`ai 4 ԆN8*pRXbN- <v1)I咠J4 ¡>|fމ)In?!R"p3 ;&`?$4rSp$=#/H^T~C`"qeq"h.舳 %={X3>##23DAKH!􄍧]!SpqI0 fؖQ@|<i(9g>Or [K,q_?'$} .tCIFlZ& pc¨78q夯߆Cs!S: J C1]:&%]*B ,%ڈ0!`R bXQ 7 'CHh^ELRv\ `+(b77O 0BA0+M< ߁;lItWF{>&frK$@g[I,\N!SpsqD 40p?x5' !<4g! d\~X/*#Es%xhD.WIIĀJ a#A"b +vx7A- @Ga6D|J[sb`oStbQFlIE>̿D2 < "u!o{}SPА @.A}wʓ@{v {x] 9AuЖ#-R A2hi-ƥŽa0Xz1!Jsd!G `.`K&.R2c^t~)?o, &?H0L\!@P _X5 4SWU5SWk8(p2sJ잀7`U!CQe @bC(3`E$ؒd 2W^PWDZLBqғД9tG 8!Ŀɝ a ?S"AbaxnB θ b.EXԍݥ?i1PĔ41j!P2w9(H N]# v, 0(IB(`P7D-#0 4 '_O t ha3 [u e|l3n Јv6uEo$m,&,!/(2 @#!i` ,aH!R!0ADɤa41#Rnˀ`C?o@00itɣ@j;h  ? tCH2&<{ b0:0h (H@CK h`L'䆍?hr) ?4ډN(`<M)!0~r0 PCBxCGm F! AHxF%0 DfN)8 7'J ZXgO Hw.Z#Uq@= .Z JbjI($%7ډjA H*tIpF^X O`Q4+2RF5 C,DF D@hPCŜjA M  d,4 D>A|3>6Hd$RM 1Eh Y a%%'Xa ɤxbD"o0B&l|0*P}, R1EIs d_SD ԬR3_@[lipNa a %s.>sYAS( ~x&@$&^6zg͉ 'ےK(?/ g!(NIH-heFWqަIHb H"@tE"I$! EA*#j%#0 A Cj*~NM2 H# ! $C8!`GF":{ 15Da.&-Sm` B@& &PD!PBHA74@}~{/q#SaH` |5*m7;Z-Nqb"fL(!%LBBDd}%>ؘSAT`,Ru/0 KJJ+}Č@nq99^`4XFф$C%41l@ OƄ@Bh,SHJq0!CYݕa`@3Y2`ĄMI18L&,|n^lRXߎIÇ`L)gqaN2X_7TO _>jlΪ}7`AE|D@'O?A\AD'DS K00^IFޓҗL@(1ٚ]%#jRBw4IYZ`:K7 DNX Y?C{>oTs[2Zd$Q;:a, \P=АO玫!{ `.!@y&"/T[,`jDg/vJ)#R7n(|pI,)=( ~&FȖ s@T 0 r1 4&:h_#K(D(ZdX!`}x 3.Ե9-KUsb"1BbKcI&ߓDb:Am,cAa3>$XH} +.|#@5_,ὈG PxѬ38pTGC=lZ%Fx߿l*tgbZ9+.= p@ln"O\qB(TIbLO4wt"@;NZb-jV{fRT+W~SR̃R'%-א_ YIxD MgO-S!"ag C(f8Rp,M{ +Z)%f9`8?VGB([Rwo׳hF `x` OnX%~d4ps;p V)#6 +W^9[vfQɣ# &YaH& 3'4u=JL̇[{ 1rP*mM5Ka= l!]mH +"vO2-@0{F1 FA2_aCFT8PJToM%-s N>frOze{JAt07sksc޵L#'1_mEZ03 * (@-wb2<@\I~*ѠBy,1,N{-y$mkD#2% h0 0Ӡ_ A{PfBkl紥dnZP濋O״*ҍm-iGa5s*C ,[C3Y隠} [ԍSu0'd$x@fHC߂*bE58/]I+yc)z $0ABSۧ4# N9-H(JJRRPŻar嬅0̇!٩jrZ!ƒi +xs,(Ao@A#>GP>8!HO4R5ڨH߰h> Rn=g&!#y,c `+.~ a Wyv2 P4 RѸ!$%7 :}P čRcf0u1{ `c&3k{#.#Ay>= F s(eSL6 %DjDր6,>="d07'Y1ej_x#.Ե9-KUq0O#jT2?~A.#Q,A'ЖS>Y< [x #0A"C#.|#@5_,ὈG0@[ QM$!:oRJ&Л$0M$)5H@ ꨈ 0 5#=3׎q#.= p@ln#(N4tJ WD!P@Jcn 3Ilәv$7~ykR24#W~SR̃R'%-א_ 8O)I/C;(6 `**itH.zyMB C(f8Rp,M{ #Z)%f9`8?_uqD[?33qcsw$;z#8Na3feiLv$9;1{6pۆ(bH) #W^9Cd(Qax!_ph PgyzRvRJxnru J@g)0 ;D"ܦbO,5DdނPS {%<]'`'%8 6!Hb7"7>},j3 #І _84`zp!H\j0"b}{!~TÕ  ΰpCb I 8(MC#L:5+ PDJ+U?1?HTrfxjSJsAб$&m30m`LIH/wnD@FE*`7j=j,084܆YF4 {1 DbĄ= #C@x t(S|[x @ r,`Q̘=zNOu#K3ܧA ̉H?oiQ34P$elozĜFھ2JdM 'PCv&B7X B8xCBFTD$lH ;$dK 0ZIj{&Gm#DX8 "KUAĴ浭CnԞ%G@D42cȗ!BSOC~n}egla`7|pF{+94K ͑! `.1{0PDfw3~+P2 CN+to CSEp.fOg8sgaX .?lC X41#Qݻ|wcvkړ/I@ 02_(P}Y`;BPhħ V4;>:&):@tB8;j V*JB1hJ7ۣ{g"^jvd'2O{5I !{jL10gFoNkgO (YIG;/ZB,@  L, 2 :6ɛqG1Fd/\@1  VVgsDPvL0Mѝ,7'K`*p) (P;@@(lĿʠg_R8@bMRprMgn< BA5-gnK{i{O\`kuR]f@PnYI oxoH 4`0ϔɈ!:Gsv \xL@a4RTf4tYs`P诿&F4I4T~oHk`}y=3j! 6uݏ{If/^gwPE w%^}?> ZeBv/dLdo\IͶ[bQrfR0R'bbEN)J,R0;)JJR")H",{%)JD\)~i |扈%;k'/9yeB"إ)k)JDiR%rNeiJNW)JOJRqrN#IEF83)JJR"",BirrERE)}xH@0KcoQ*#]a1$? BF}&5$nJϓ%8:ɈmR0  qN+Pm0j@uA'I(]Xgdr ʖ04~7qou/{#ܥ)8JR'r-HNЧtؤarER$)#)JJR")HZRu{"JR!RT0~+q>Ӱ_%RY4vOeqb}R_{e_wO} d#p +q?qr|J̶]Han&Ni}!tgM ! Z481I83j霈xK@&/vLH㯚H;{7ǡrS]R#RpR5zlR0JR")H)JJR"6;?)I<)HJRZ2[N;(юDb׾ݓO(; 4 k7AN8hhbv{^I-< B!+~bf۳nB d$2pihp@. dlHEZ8s0#lEP=`FÊ r#aet,z4&)]ԚS%c#7+0 2\n| XjC# ךJ{&tJR uRR)[zR릢J~\>D! @ !Zuv]VY^in&idKVHI1^&#r**tW!20Zl@޻RB:di;XuhY |>4dp e13,qYK'dyaD[()Jj%R,J y8Xu&)Tۭȴep-P%jtђBTWx$eF(u0I[/Rd8̯KHu'mluW!2U_r)dPEF>>hͼ a09kD(`C4T"$R9UcEDUUuevm֙yUA9_{a[I+uơdu&˩maHڐ.\X'Gv9gbKc0kX[bijcf6bg\I/&9}+Z%5tvl1F#̱_UR% d}䙤\,o]B0uhW4In@&REDZ;QȱRII+ŋYX݅_=JV(<2#oܤuBpLB+]",W8 T_XUelbT#2SBFm긾M$MTeuYiq|ڈ:Q, Z֞r4vMeZӒF(]qM#]VƖfH(- ZcI]Y 5::E$*4RHը7@+14*;Kun*4URC Jg0jwkUƎtaQi9M*n+ Vr7G8r(NTkG­V#:MK@ITCv8h"EJNR}֔U$`QuN=,FImkXה:pFtctR`S$4B28J@f2@N=vWe]uquwaꋲqZH(iFҜ08ĐH=URuL[Pw>MmP&s:8Mֲ֍lX0xբJ@N0Mx +쌱nEн+- thEjTI-_.׊5q9b⒕YITTӧ1#C[MhioOb I(e[%)TVq\e*Cm#Eʽq$\nuxt\#ii|.#ÐJN3Ra8j9.bS44227-EMaemmvfV)Aa 3 m7ҸARM[bZT69M#"69r&FĬұVjlЎVۭ7V)q d aR$skǍi+<mcnfv٘ Q.I%Vѭ4f2m mQ6ۍ8KUѿ*LEjm(ves*4ZR(h[qىhY6Acچmr8bm%ZDqlI{Rl&pUƕtmͬm(!ґ`c2B"TE"0QY%a5UEY]veVH8KY ,ڸ#Pܵ"'}ᄚUkt:h}QH+w _0L{s51+&MudY"+,m41!“y. ʋv_zO4;5y\j",J+Ukr tMJƫ>4OqAJEB $ ɏUj G6-Ld5Q"ř3A9]_z%L9-DTǷ)EbD"z龺x\bS"2$26I@-5M4IDRM4YUVYeղަ9Z J]3f;qo_6k1XՅG,}MƋ$)ipeUܺHr6\J$om2dPXuU\`)2H\k^ DN]Q ,JeqJMx)y3+-e3!G `.컛 RϹJR!,:2îS҇ x\<>1p{@C6`ձ WlqJ:PC I\Oi΁$݋¹!q^"& qmaN' N1$Ќ߻'~ :qvP' ? GG'.q0p @BN_[|~a-R!5;Tj``;T1%;6ϗbZҞsARP t(V)O<3vٟ7LDXo&wlE(LI&nC0#P$! fhN38XV!8V@hyGLh}#JRm=)I|N`'Q)JK5rOqt7[*ܹvT>SM(/fo”fYJ~ӮzuA"܃ON%O# Gw`??Տ#^}q=Nx~w7~y|!ǞwsO:Ï ?~I { ?g'˹^5r@4Ġ`Qрwkq4|}6' ^ @2C@ Tfٺ?"ـ6%Ԕ|x{Dk K =Q0i32vK` Ҕ26ס9|{໮ wv|2\?,$ѡ~~wYvυ0 /D4 P0MAOzs ^x(0-=n<P`Bf2GbY]9Փ'w@`[?@vL󗾄MHM$*V;;_>-WX ILM5=6JRgܥ)-])w)JNkJR")Oc,x4I>Y o0='>he-H4DTM&'Fqݸ] 7z };>xz vEhoDg7}c͹߁}O7o4AG‡?y@Y>zuiOix1/qB=x?{o|<y\Dq 'rhGo$b}ϟ G bL,^NМ<4_$|ǸVH`ջ}}y߀7@t %=)W "h^{XPȀ+h E/7KTߐB&84Ҷ YdaW@Z@w&15,v<_iu?ek ДY>P+$& 4O@oAChJj +3T^HC\rLA<6}rxOs=:",~-fӿ ;O'ϣ'}?z|㳟Y+js~x7~xmxܞFEJ` rCKى;q.~$y- Ov~]#=n:MB;yJ-)Iyñz8-+!Q?h=X'ho o)paD2zlMq%v /;(C*<冠3:S؟i ;!8^Ixh@:/h%,1QHJ&F`ϧ|t %`|v $'K!{ `.r@@ C@`8Ҁ`LGUfܖ\v؟?K`0a 0 J Ga1fl:ѷvO KO]>$~wu1P|vJ04_dgX@n@@`C|&!.|I(v"!&&plLZ_;uIƒzЂ4!;{L wP n (8 ,64R`+<;` 41=졄5/[3&'ej8ԗf PS`n\2P(CY@BБP s$P[jC 5/ RqhN Gt}pтeNiiJ\my܉'޹5.A<9bOnX n@bB d0 z{`q?;%ϹQ?~Ԁ @tؚW+ )oN{פ@$¿Ѫ&3!F rS+Yp95ڣ@2-#0 I%#ٲrWH@1 M Y-!OpC pB"zRbn-QݸxX>IaNAڰ 3-(Z -+<^)}]& &s'r7},{37r lw Ix d80Xod#^Ǧ %=lzA  n`I'<@*L_@̰3w#8>'ea`;0H8#` DIJ04^) B R[b,IX &e@(PndUv[Ryy:yn'F*> @~8 f @ 0 Ѥ+.,P `óbb?r;=m)Fy>x@~&ٮ<#x C@@$gLM%#҄S0( (͖FQ1?PV-! !~B@a2 VOy`;pݲ`RMW" =ia&K,&fBԠ(VCYUg!oиɤft;_ɩ Y|n?ѻok0ߝ~I5{ThB_T$`)Xk&٪?2TM2`ӆ.ю9gbhДRZq8|PpBA@;Abnh=yhbϏP_u.&>Mq``]|zb A棷< o@2vC+2a=BO"ް(g!Cp Leq'O>X7 tC؃b04SG|m fB 4QWܠ$gCqj'F]  TnbF֒` `1,W&'5as h͓-mvop K/p @v4mcڀZ^r:@@ Rv؍ 0 $oPI&= . )߉:(HOnކH>m@. Ot츘7S>?\(MQͩX - Igg}7[-U}d4X07> (kݔ>tYHjIC[@~}wo.<T@a3z. ҟ0Ps~p6ow$da/4!n:JŶ:3Yv4 ~! `.gs7'$w|Q![vd0`-u^`StUڲJ^nGs|uC0nn^ gyw'(p @BI&NHܫؼ5vٶ'a{>]=<ap.;b?:etF%=C&+¨@hճz |I~c6KŽ1~XK >}~ >}ɺ ~I/Oɀ8 pý7 z 1Sn> ̲|J=_q] wG}- SlhzEˏvj`(M){RIi  ;Pa3~7A`!Oͽ1')+| u@B0B&$ IYAI7&!$PM+0M& ` x4 &RJC9/߾<` ,4 jB!ӊ&ĚB%5),o'ҍ GKܠ:%%x~|/1uN0(81 T҂NFv9P+W}Ե}[_*|R@3߰ۮ?G3ZPLBHi,W%g%nTF7!@aIؘ qo4^wآjR`a40!)Fe2ߘ}ePX 6Bq&o/?bj?yg%v.S|:%˃k{.gD(]5|5;V LM%>0v)=_zѳ\j5%B5Gj.қGOc\.!-]BXOI6ri 9ȫsК jKOpS X`v&@fJH)4ǒ{bhЌ Y^ВG~1o^!k[c r%nBi&#@ _O<3]荹_wns>,+_8 @4!1 >>F$hfc-zJMIxi柋$q1#.~ a WyrNSI-1f{0K%0-k^{#.#Ay>= o_< P$O.\Gx iV|WUAz޼9,̻x @H">\+]#.Ե9-KS1%%fbFYF ~WWZi,5g*a9sq0 Ϸ +#.|#[86["#y xge95T2{ZTB3]B*BȃqQ8OzYI0b^9"KאB%w (y7 !d g&IIBi$|bL#[4'$j"0‚{rُ);PaDQB'}]xGլbvY֝[הc'8#_nK=6 [,x$m<<@D~qoRNϞ}5ԅ@Av["I/8PH1co^(`% A/mk #!IHfADb6cqbDRQ5cb)쬿v{Mbff+>6Эb #Vk9,XY5^6Dϑ٩BY,b__6~چTYd*&y ĕ(i GD$0@j`?^0%r"X\5N7C &Rc 8ͣ:= h #f'&.IPBீ=l,>Dh+PD`pc&ȱ RXaqb<քm.UZh!-)tv!Q ^+N7rrIuRVjFBRY$@B(&wA,赒zF k>z"} +I!Ai]؆ŬK_%m%7B3P& p7#M3!M|o p85 X&1#jRVZsvt{!&xi I#e !Ǽ [%ne׻Hcw1o̐U߶+5(~[iK[2# *I!-ĵ,mY0+w~aY"KG]R/짨!@ @ ! 5!lr=^N6#1Ɛk6^]PpnȸȊ1jeA&`69a׃?P4Jb0OzBMh@q&i([']kDE iHI8ᘁZz)&J>vh'UbE$nӚ`S#13#4M4@ꪫ1%]5DRIEQUYUYV!&Ul)LsjqQてrMFD\3d8m_-6.Hq+ړlzU̧JQ̔9Q-mh]1 !EXTc`3I,tVAt #V\֒obnS3Fq$"bSdMX,CJ%au#jͅY)/,ĬPnTQP!1P4rKo[7"77UT6VJМIaɛ,VPFMzlǜEmJ1Iˉa-Q^F\v<^u5c@H5k;!֮k=oI(ޢA|s1FHU<7Y)'khvyj$7zt|* eMQ87))-7ɊH}Q:B\K @VpH.nE騥($`S"C#"4M$@颢,Y5A4EEREEWM5]e]fa leTI%A\3Uǎ58joBʞoq'N 7*j]in X-kFѼe--Ү)>$'뵺&*-IZJn8Jh^ԝbȱERub]NsdF8ۛQ({ h Q4>΢:*V+:Ήo Ј]-H1v+IjM?sr0ihZ^i&vFpK^U1Nm9d 0bS#3336I죋(=aDQEYYjdTmYlrjۖǺT.RVm( &c:D#%ty[%Y6V䍻qO9U)E4$In)\3&*ڌ8X愻cqLSaJZPe!:+9hԐ<ቦ;1RlؖlH 71(q+TIEhIr$c5eIFܸ>J5ԙ h,i# V tw$(%$n&!qK9QTl8,ѵcN9n-i"ŖjO6Ji7^iHcM`T23C24)2*TMMsEEavYueZuqN&UXB>jUiJbȖ綮nJmJ:;[pji]*ϴMɈ33e26ͦK&XqI5~umbC\Џ(usҏmJDfVnA)flofn%^5c&IVn̍9%Õ"- zBTԮ7U&Onx:,EK%LV*˺u_,ɩsuXiBx,LimC-ٶ&{۱bU#CC'Q93Eeum]efIͰUŨg"5T+Ƶ-DBi!n*@9CK4V!2h9[V,BngU"LWCǧuc` f3 dTF#m[+c̕4 8#FڙpX9evr!EGCUǭ]4d&b1,{Z@y(!SG `.!lC5^)2*j,"RWEE2䲖Ʉn,Dgz"lLǵ+%sXg[Y%9iM-jy2nVW! &Ar 0 r qNdi|%MAjQ$-3Hh\Sk /j(2vCέ9{2砄k +*d2+2j2؜TRG}_*A\+yۧ!+l7I4C"SJ{.1o^!k[c r%nBi&+x?tP 9Ћ HB5)٫zJMIxi柋$q1+.~ a Wyr!x ɀ|i_3^N1{, `v;fz^y{+.#Ay>E;Hc+et +We@Ц*IÅfD' SY4s fD.{atJk#ɑ*M2%m$TV$0OmJRbyժO%ERe(%(O2FK(yQ)h ,C6F(D'Qo8 +H`_v>*lߒiAp"as!8ǎ>T4R;%[,M"A~ 1HZ OR!%%ǪDwV&5#3|Q1 7! iQ Rh%;yi B+[XBƒn'OzX "&ZG *I!-ĵ,mY:؁'SCEp+I+P!`C2&oj+ꚸBMY^UsP< `€K5]+YFCS6'M`+%sXg[Y%9iKKAE3" p\RyA'&D H$0 37Nӟ1Pvc ࢐K%/W !aXTPdzKF+} 윸{ s1+*d2+2#-.cd]QR4SW^^T޹"@t0Vj<*D5B@`~?ĝ̀i\ fXOav{oڄ *K߳1>C/+sݖcxe'SzqaH$S.V??f7c_@P83@cOO@@P'ZLXhZ0܆O!f{ `.!%LAEi3jFP =_,-z(00 !Y*5<Z@  /BIxa{%78ڄ>6lNr<9MsnBB2µ HH5Ig#0"A]HLp"pi$GԎ Vk Ğ<=$DGǏp"qge %x%$VCAɼ Fd@NX ɪ@@gAY=Eb[Ƨb;r*1D`-1~! (E!=/1HB@ Ќbe! J  z Kd|P A[i\ IIiy"qaxҋ` _@N`H 0hi!B@0 AA(rn - @ Q`T#I0 R}꟟ aERG?+Ј䘇T>&dD I7 HRfDԛRqy7H7Q$AAy@*Hh,΀#bZ@W7Xt!8>t2&3|bdCc?C ) 8 !CCR,0d:K!iX-(%Ԁ!#yc9$[\O oHBty UI VcqAT PH 44IS4Y0EQ""o&"UR@"X7(,C G@ Iԯɀ9!_qs6@S8&L$tXo&/T}pFDRB3KL;#Xa^e^/01qA -€}# HEd B36p tXf|ئ_J0S0ԔD0yҊXM^-Z_ 22ycHA3y0b}0NVeoG +p q7= Aク*{@ KIE@0@I3۔}t4GNH< H ҃@bL%ļKp;d$r h)# PX#7@'&]*+ICK 3r+D0AHMiPFc* %3PYy%a䆥 -= tJF0ܮ($ (I_"H%w&r"(K۸Q`_.PA8+PbHJ1@Y=٠ 2Кzh01!X7`f7@$ P Pu 8n(9E!7 ^I-7~I͢n(`# A 9`*``>ZY `$ Y>'!;}DFoEcgoA@T@S JS#v5g`n(lbi}XF)o_H`i4kdԬ!ⒼG( XQCE\!y `.!A(&s|l&-e|B&TVd@arhu`/2Z +ӌ "D CWX!}lߋ6dO׋A Xq'6QX GH, ISvkh oAoh4`pz>:>N]B~xSt s[Q04 ̆L7SMf qC&?IbaxhҁX}&M {`0@h6 ABQaF!GД)tXjFz&0 f%Ҟ% ܓ^<ش Ci2h X`H `>eb XqZ np!R-p 3%}d,mFBZ tKOJ7A!(yѼ0 &Q4^)@bz8 PeĬY]}>*4Y_t@t-RjK+Da:@h"|+ʗvdJ4 4Џ| I, xh(͸i|ڨx`ɡLI]eD–XNs\FQ36 (4+.|# ෋yo,?xn^UCN0n7EEV< ӷ^@MU\X ܔM8)zK +-n[]x8+ c B%v j͵HHTF1ޢ i ?:鱂 z'%+e'^1F+/X_+s; +!Fc9LSٺ-9hFNOЎYz JGQ ,p2hnkԊd䦎VZV3>0d1ȥeκ +hg@:<@_IDCgb2(xe A)AH/1` @dSH34Ye!=SM!i01'^CxZ ldrbKZ)0@yˡ1RB$4ZT2I|fED?C+P$$:SOCY̤@c3,>> 3H,'|#M0 y,6B#Rs94bpȑ#r4![& j(q0Nglk?H6 a@AU%^ThXEA6ISGkmu-f3:8\ 3PR̖%c }뵤0a%_< <8|By/50yG!h3` 7z zsEiZ={ jY&c.{ 堞e3#1feizIdGB*ZI83Dē[B9injf@ Ҟ3@:OIja3 !(t6Qn\ψDĀY5;!q-b@nNK .1hϻQK$V`)IGQ%L&@ Kp$BXDzƏ0#03!v5GL>^]Lz |Ͻi&' $ o"&E6W–TX eCK)2~"YE$70\pbG7H FِFۧ~Pv~P̄M۶CZ2fj[#I2C0AW%i^I7דO.aR~%N-U0_I4)AZU*v99 ( wG=;IhhY1%%@1P`WFNOd@j*Ovq" 8*p ^1d' OE}".ņ xv$RJ@D-$Ҁ{N )]*w 䄍"qO > K:+G !$QFe30rh"flm2 0 %ao~^#o`Hy 5Mw?"5_"Da2)ݹp"qX@ @ ɄHĠCbG&5>.$E&4ݝI>ݜm(Bxc?;A鉄2FiqjC=`0g{ l\Wj%Xu}`86 l _ 7Hw"V|r\"qc`H@Twp]ӆOFNnn%ĤLC% 6@ )%hPJ (&0Rz1'9KM ԆvN_πM1 읻P5M&<: 9iadL _l|T$ngDZkX8`EXTPE< HHHS8"q`#f & (Ԅo΋@1`|0<ӳ=DS->hKLFI&2AC `І@ȉA&RY,K{qE]d28l80-0 2@0&% 9,i#p@NY4\%%p-MWJ>& _^@.!K!J@`5AO!$/`'Ҡ Rwii䠽j9s# -u{# Je !TO24M C'5 :DLJp_ prg0Wyt4[-֌)% `'0ri!9)-HI S0SF!{ `.[MC^(U"J$ٛ9 {Jr3p7XQeE$DM,-@<ޏr@bVA@`QkNJxZydAP尷 Hin O j" $*(cK@$~(9 H>LSgX?~!VKBP2J=?- 3,D$ ]x5C?U Q l}@e% (q`Y%0+e8 `X/#4Y s:tè"lȠEd(Yd5pi+$Hr+-`\k) ?3*JPKeLRqM ҊwGnC4K@&`[;>胓4xy)& '@?&L;1 @ҼL'B\S % N8XhN'D@YP=hYe q~ (``n PI@$/ gq] pu?/-l jX`?< P#NnFE0G<π=I}yN-!#' g/\4Ƅn80h$~`i@"b`n $ #* ! K0H;lJ#3у!bƑ; g@x"2 L/&pc9A?p~Es> aXx_ +U/(& MeE59W$7#)})I| ?KBӧ?A'$ϰ ڹ ?8}a K 8ͨJP0U6X`o҉$Ӷ @a. !倫:7RWO" .LjS^/аĢ,,TXKw&L+D| +(:ohjGX@)4H& d  (5h>!!ɐ`@ibdXtK.,aa{ /'rbqf3:JQ2bZ%2vo .GG9do;`Hzz.y }[,Y+G/ & lJ2s'<^LF .tK`}vrFMKI݇x 7r Mܕ$`p ĬA;%"8 "lX!܆Aoƺ4AxlBBl@skh#d-q0sh"a(@i|ӱP -vK, UVx#@ 3  &ҌlKP[񌍦mg-NW梓QN0"@!&#k @#!ᩁ%QI ~0X;j# ` !ThP (39~I<4 'ELp'QdႳ|!٭ `.!H% Ek) x-6Vnxķ2ۓv٨(0¨̌RP%9VK?"L {* Dp !$bŘDTy,bHL!2 FGxǀ{@|?\ތR1?O2'tx[^x ? +rn3Q8̒pA l\/ODd +h}6Hwӹs3mޅ75mMQYf@z5(  G JSK JRRX5_|4WL0 ~vv@b+Ii77V;!ϒ!Ξ# mJ I2:Ih,7䕃8 !$ C ĢbA]b%'~,%=ga6PaŽ| |sn,4N1^_ c(Ӌ{ HV0jw8^KYm< 1m-¸-¾\uq6x`~ ~ m3\*M>p 3 Oje 战"\yRȚz(AGfb.A . 1pY&nfl,B,Bm3[.pp8)m 0p# N_D#)]Vm@tGL\e(`Q!/P T4LaL9Œ,\mp;%%L-nA,,Nx'`\%ͧ }{:FsEzä"H" 'J֔ +9%0bj%m$V ,0( U`I@'e6rl&ƧO<; fâ!7B)PX8̰:3wCqPD`ytLipio2,PkM@@$Jfi)#i;0U0U @ L !H*R l* <,AjdX%*d ?̓GJqCK)> u["xnde-~P-Zq $I=BeX ;~A 4 r" Yc3gU6u]٪ҩhe2RLB ,oJ>cQ]0Yż V,.Dr&ax ; fay'DNTu.|d@87MfE(,ߴ$aXC*s 9+GX0 bH&crnKpQO?7 X# Qxhhޓ]Г>BkZhJ1uOEF"t0mDĈ X.DKHة> 0 m3nT(Av@c1h)?mP^)mJn8%ug!P;xӱF@TDঐ:WNN#U}@wdyoV&2*a %X EqvV0S`Ш%X ! ޺.:@2] M` DĆ۟`dZJ_PWaYk&@;SH@;IIT?,C8U[xܳSy/nk8Hq^o^M582 !ٔZ)nA#:S{^@B.ɶy޼i^EԛfO^HYO(ξiuK'8K}~? ^Q$2,8S:1ȠQ?Yz 1 p0Kˎ3^mK]|l n}xsi‹VU,l)%YE[8OfqffmX04/X- K]߃ڜ4 tMІQOLL:4E!OŋV('4˛QdQxAaK%0~-YE<,#yRתBa_0x!! m5dHX/QyIc0'~yY6Vܛ f^yK 82!%B( fX8 QHVbHD*U^:EM*&ӁL &M$6RsM9K0Uۂ){rpX+caPx$diYkr1.V 6(&XnGnlԥA% SE!L6zIjԁ-,8XiȶZO (f $/P2X K~A30@zuXdPK36u3BGQ}TT kសY՜ l`Y/hVb K Le3H4˃…NSi?m#)jTi#ߊ#@?* 0k  ^K!4lЦjs0CE:np. J6 4GFЁ (n0?{ D&VCOzeS /~_`"m +\g|t\I! `.1ڡT|e*jkwU񄚤~GTI "@_#2vN4\c@Fi InϪm v0q(a}cDYPӨIpG R 5ˡ1tY\6c ]<g̓/ϖfaFK*e} m;#D-EPRPEu QHe2X3ˡ(ZI (b{L"j R".*&bۿ[4-PġosJ=>I҄{5J.(}Gy&'qK.ALI 0HFήQ ˭ݽ]_?T7c'h? .|8i' :<]4_9(9'Me!#NE6jJg:ABxzx3}'XԈ hjC{kFí7k澡D` |v4fspY z\ބ@qR?2*̢nMZHi0vx zc׷:qn=h@p tL0O%!i*("a`Hec "`LD4I%3n9$gsQi%>wp2q 9~ f+tGxYh_; D{IQ%2F1pjVL6T<i)@32qG¹p yI&@0C$FC, ~i[D$N[҇ܯ )ۤ-# o97Y5PyUd  3q>\f+DqĠih@y(D`TSGc2pl` R` J@(4@yc`HH@9E 4ȄB #;$g ɰ#~K3p{iA hdҲ{.!ha0J Q|5=qF^P12pzݕ(|JJ!-ӠC6/gg $u<|!/)tR¨p`b.,ehi1=(4P*M&JYeY#D8opdiV!Rĵ 2p81Cgt"$w1TB4 !`Vtw, rI[#-:7QH PJ ?XAa6ϔf:C1?iH *v*h  p%)SX\@pp(Xщ cFDĸjCP҉G@2 `', rR:4M! @aKI Aj]uQMkf1+IݑT[Bjv2 uèMaVa6(@Zxy0( p ;9bԡz?GG,G(MA_V$@ai#>NiDaZ!%;([t&D(RR>@#_*aWaH,ҒX!  Q..>te!2z6 1<%~E !G @ !77:#HMem#`e4EC4F܈,VDmYqםuMNvu!IYZVnrŵK&⨱(47jJk*0&I؋Yl,ll3HEqCɕ42g E!iq{FYЖ$l\MmPNJHA NV,mShq!UHILy8۬V&Á8S!,1.1J&l5(=eWٻ*gDF-[2!mZeHYIE %ulj[z`T333W5H ,O9GYƚq]q!hHd {4}ܴR=$2UTKXYT$oF&J,_t,[.5'DwyZK]\5pu *Ü;p6c8xAjiGT,i“T\SnW)tڍf5U#hiCT֘} YDZNNo{+J%"3UilqQŴޣQP䌍W"):,Hy.5붧.a+ɦtX^#r(EҖ}n\INppBvQvwmܵDZEXIupNrmJ濾{XS+Qcxˆ<`d##344I"*b09Q6TQeaqqJpuDN5-8Щ&SĆHeh= i);/@j(9mė7lԱAT0̝\njW{ئ~1*S4]U; xYV :tN&ڡ[emjh 2bHp*iM%t[PCW`ci4%;Jw*]{L\cںO0&DH)!s9'FSL -ĉ)W]ksbD#DC"&m"ꫛܳP9#=$Ieae\m`m\IvX­V ҍjʂᢴݧ,<6%6樐A `gGi^e(⯴vKdMrlʢm|DFi8jT[k!ACmcI򌻉̠OE$SА5d&9j#0A^UJQwds'I0T$$$%9Uk9  3ҿ|H6\ quXf'Λ#1J-E|.HLQBm0`T3CC3E-:AQ&m`e[q~s!r>V QEګB!7\A"wMC-ŝQCW-괮^%XF-6E[#&dIUjQ)Kl׉#hJflUYcXu;pDR⑥EkpU"K3VceXN<ƬbZ6HkmG _c*Xo5ƛJ3$kZ=()HiQE:(fheQ9`t +"ݚA FeT6 GBe-d`} 0ˈ5<#mFf%!&{ `.! x)%5A GxXn*f );}I`䣇23ML?a`[ErtJSkL ZE ;֓_iqNB +˗DzkgRMkֺ&4œ 2@x2S$di!?Tw  icҨS&d1 ~LH?fPY/c⸨nxaV.gIMpb/$': >%(DvqGA!`b \ŐJ|Wp@U" RZHS )Tg{i}RozR]^/Ѻ])@VQ+!+à`߰`^ aac,0 [*@>.80b2> H b*ˀu@,!R0 @uKxCA+ ?Y! 蒰o@dTQˢb֫z9iwa> ), "he%Nc ֊DaP T4hW$ngQ03FD}=Q`)N'QLDYKP(Ʉ$5QЎQHbYAK6j(0 3=Hk~O E(GrHKBz_ i+q7%;%?$wGwgK%e %f @:AIA) &7"=a5 q 5&e 膀- ᅕ.F-1 ҝ8,ʈaJ訰޸C( K⤔LI5(BFE'shM'NqEv~3#`T7X 9:%Q4.]rOOp:qNQhzblI\07d_-?N:X_JTBVՖB\ *T{N_zOC M"@t"EȩCP̸3+M]H'F\ Sx`A}sR`sE|˵J K `g`s fQe(A3Sx| k))lYNfj>p>iE0b]E 0 0RARr(u_˪`S^+ÂcyFmͧSYu fN%iCPjzs{liF 0m qsm//mS\*M>p 3 G\jqc*B 0 pfM͞CC-S[.pp8)r%ͷ$Z hCb2PAPXLQ2N$fHXmqS%%L-nA,,Nx'`\%V/t((C*25X#SvH- ;H`Oɲ96cSyS fâ!7B)PX8̰Rm))d,2~y#] Ʉ9ԃ@# 4AgL L 0&&ID6y$RG4MS0U0U @ L !H*R l* <,i~ %oC` +~Ejm!LtK$$˜Q @ Yo- aa$C2, S~A 4 h-AZ \$FSX%B=;"Da?, J8m 1Y`\M  S faŤ2P,vƑb- -B!9 `.!UVt:e= _1eŬli1G*#}/3ќň S!A3dms49LwD^\]SȒJem]-De-̸%sa?t 1?4aCF.AB,Or}:{$BAXYs; PA>Ův ƢK{'F5If>uЖ\dCi7 <4nwAT۟ZQ0r2vf9C3kA620 Rc0,Cǽ4oSТ@dK*UQAl9qE.æm*a tXExu g F\l>WX|`}kDJ2"il͠0jTs $Vm%ηPjiW*9!KVajM&׽'ʡ/3ʽ#zU#@@U' 7Ce|U`9 fP:7ьU"[U, SX !AAS|CmH@I,HxSxFװDzٙG] Ua{Ì3 EȲB3HSxx.%Щ\Φ]ҢaԎ 9Y]IaTT柗TsS}~? ^Q)[k!t#uꠈ530MaͶ[p1^\tNZmS]|l n}xP((EM {zz`He*⦥k@C~Mřb, `+K]߃ڜ4 tMX,d'?G(+*aBH֪O:Ly@OZp iGaFqFfm K%0~-YE<,#{jpvҼ/6BNkоiK0e.<IOx$iQ0 F>@H _Փemɰju8S 82!%B( fmGK>ǥ H_, t"Q (tk᪔%"" !1:PP%) tQ*Ni8S0Uۂ){rpX+caPx$diYks 1v,K i eP$|HTR= w#ߝ@Xgli~`L 3,5 S~A30@zuXdXK36񗄢%FNo :ډL-;`EHWV٦`Y$hVb S aYQQsaR9IdBZhWF(aozN1?ĮxT-& hJf%\ñR4MX SPlOhH,zFF @g ZЎZ/K"SPڧM4U bAr#@خP=M+B; PLPWI̤_Wϱ2flFFS{FQ I}dזC(j좫 cEо,?K6N 6\.,qLkΡe+)~϶c2Xm̞a$Ms'3#5GR®n҆^Ff@ R-ûgdaQEUFL`e~׵فPFT':Ww+n)\^ ߤDAuHFE.Z27K(4-2&gTdP_&ٙDi zl&y"$ %$0) wìH:G].&:lj#AAHh2 ~`J !)`*Npـ ĸ& (on횲MAtp2pH¤ 8k&0#$6!" &_]҄ZBs2pt#baA=,_in3 LG& y_:{DGx#:%q2p*z%Q!$)"iܺ#\6^C͚0%A@!K[= 7$m% *pi`fB0 CyD> ~njI45!5R18sneA4֡?u|O`D (k-5PRδ;@0R*ƤnF% 4j%A<[8*py R`t}(m07CyGI %_Xh`=º DLz ,e`(/QHXieR|1Ў*pzap wᇽD`0IZ{(Y4 lFGMBh .-CGe"R *p F &Ƨ'^ ΁Oe M,`jAE0PmO-)=/Eٍ7յ 2# *vM@> gC_0J fxIE$+?X(K%g d$Xhsl.,KJqDpHؓY fdRH%ETE0SFY+dM!eDZ;.4@ Uj` K%hѳ>z!#R>| %@B0֑'rL'a0o05%{)%%x\DjYeJsO^ƒ9 뗀'di7 g@C L\t^ ̰^D G+Кj*HLOBlP% B>5Z@d@*PDoA'],J0@.:(pUHB23kҤ!#`nIpԀ <0 I!%!C ?9FOs OLـW I$,bj@ܒ ' % n%j9+Hj5GP`*Ko]@g (ăPݏ!=5%]'u1IJ_)$k븠0&--?m0Jx 4E&OG&/TZ[i 41˥p 3 ffliqAIˢP.+%"v&Ha$;Craa# O@Q<478$aDH4ȵh ()ҟo 2{Hi_ [MCPPNh+p̒YiHCzxO 6pNDXɔM>DēP@`LIF ų%05y*Δ^Hͮ)!` `.!܃^@gE#vNu$O'O{6] &A$;2 dDt*Ղ&wVkƜ X+\ Ia>\2( VfiuzHgFs I'oדP<3Wc4L!̝wF 87'0P@, Bd8l#:]o& jr8Ōp?clZY TTdJP2UD'( 4.>i4:w9Oa=; H``Ɨ7}(@rDQU39h pH f ^dD2yέ;,遀6]^ ]ˀ11u E,Dhu{A^.*C Sxy 4 0' B`a>X.s fQe(A3Sxy6o Q%NO Z{^_o5VZSdŒYPY\ AD3]U0K^+ÂcyFmH9(`r;raLW K k?Vafm p p\w< 6mK\*M>p 3 ^ ylMm By%@Bk/ }MhhK$֜pGw.ݮVNL ״ҊTf6gEafTMbS#43"6i".*0QUDSYfeW]uiuƝm$7DKY{aDa%B9[r?DIַ6Ȱv|RSG+S RI"0Yk:k 6IdjW0GurDRS?jZ4l)N7(TII "WtQ&1奚'K3n8BZH*vJԐK 'R%msZV^֢&V,43MyVZ̗P+k}ēI[W5QA1)qܐǍ(O`d#3C36IꮧE4RM5mna~Z,ҔvHlD97PRB3sߴ%[v;c%A+L ʄnTRf`ud*"8۝2 TAKjkqj"ɡn6G)QM [PK83v[.HDz#+Y$\%H?eE H=ME$NFTiTqLqwO&O6!{ `.!9l7qN @ J5' )?..& Cg)XӃ4f҈e (qw"aPk5cPw&eypS!CuO@E$RJɸ]blD-6&6FLjyqJC[ }d ש\&Myt\]A =^]e [xy 4 6 1 }mM :Qq0q2 eQȲ9C:Sxy6o X,v"`+ 1-BUXH9c**TT !}ꮮqS^+ÂcyFmH9(`v=BAVCY2"(Վ m qsm//mS\*M>p 3 >00. `Ǣh:K D$ LHZ<`x뢪 5ԅ\Z!h6~0o< O&lMNy[ fâ!7B)PX8̰S #f#!h o%\Z`/ &/O m˹H˸;5hu* A::(o$Hi[0U0U @ L !H*R l* <,i)|%WX!U'ul"-Z7L$(fXe [~A 4 h-AZ \̸'[GMł8f\FXt%)K@ͼ 1Y\M  [ fa 3;b LbL sQY6Tm\]&I2g a zhrlz-2]q0М}?0>mDhґ3pl[02f 9'xu9 PAƆVa H% T`:,AK<٨ DcR# B7s']C*ը @f]C!):L_R F {X  [QA@ϱ0ґi+p hc999]?|~M)I)JD=B5y\i9ؤa(H"!!IN!H4" +v 1 A7P (i4"K^"Bzٜu?=`(+ , %7YW,)n nݻHҀ3Z|ao I @XD4Y1y)(݇Iɀw@jSBjK& {4 gHE'-n7)΀b<Ԍg9Ns^H& &rorވ0( m9Dn I1=ӳvmߏkE7/hB@A`P3n4r80$ C',3, Jpc j9n~5p }bx~Vuw?BRΌ2_}3 !8҄;HRٟ{(7МĿa ‰[e:n3tM+Q׏̞ۈvv:x(o9_C67)KֺR\#W)NW)JCEF;';",R4Xa3)JJR")H",j)IER,)rxh  u%H@1[Vaj:@ &8$qW HPMq!5?OR')JJ,ZNOfr')JDB4Xi+)JJR")H(gܥ))ܥ)r/rj0 Xo[F=WAe1)jk)q7\!I7zԆXa3AY G 41 N _b8}A R#X~/(aQ{ WWwB~)I)lc1`Hnxo\mJ;s}'khSƺlR0JR")H"p+)JJR")HiJYR>)HJRCm]47R:p9{|eBiC=lr!U/- ؐϹ;9֫%!1Mu˸?Ā& 1:,C =LӀ0,[{+O`1Q G^@y׼(d%#]畑s×V|!@7%,Dk7ft=K  C ~}Ż 4k+\ ,}54(K͋bGŤ'*\j"z>2B~|m*N͹̔~>X/JȗP+ --~)J[V}R)JnRTER! `.#)JJCK.=RrER".R]OS-忩ܧOCu"藆}(xe͋F?'ygkɉGg@&Z4y$잎0H-||E]wRBS mBeg?*@šTWMHAE|23-^=bK~ҍ[vN^< !ґp@+`i\|C/_B0~bܚX.{%/r{jKJOmIc?wJRr#)J hS?RRܥ)(>)HRs)JA ,1N}z0 4(|Jg{_n4TKXZ[]RK.>ŗ:L k1tLydͮ}Rq _:M&CGAhK0P!;Hx+{ BJ-;ϕ꿰jA|3ǐ)FNoD I!WQ LMlo1hL~0zbj />sCT@)&~MǬ4}K܀\P-xk̰2CנM,_H.R\)r\\Y^ #!J蹡S딥%;".Rܥ)JRW)HR0]`0J2F uT0 ؚ^:f80zKz?.@gS!j_6>' 9iu<@`(7nǷo54Q`%Fy bY01ٳP*?-uh&b5;>/1+P3h vMܤ`ސ vPuf!gTysu^g' `'kBbwC~A|:|ݙ: FJ;{b×J.=oRyZRrIR/F5FyR4y #)GOHǧ K4ZZ 'IV[_&O?ڷw1I J @_ F"_|':@sw H?;%HjY`t)nz>]?(1jxm1a To\j/rOl AX͘}*Gj@gLϹ/}0 2& hn ȷ#8!d6ܴI 2!m䆔S#/~!̇N̫!18c }_k!wՐ? UQbC O I4^tw*CV~|^_ޫCPg]J:RyD'}@`̻_#Ǫ۱ڪnY:rpvDiz{R@ @ أNzN7{P'ힿGO !z3 (,~ۋu[ '4ws]û4OGA!<J%UG֌JI(G [O=һ8(zzOP}\Pk CN@OVϑ- O3a5)Qb.nI*7)XBJ'HIJ@jp I%1l!Rus|bIX>12n{>hJ.N=<>0X @ r3`L^$1y}M940]V_ˆl@i+7fٮe-ے YrPB~ͮQ~kCӳYydp?}PxN uݺ B9~{l/վf]V/,;ݢ7'@t K ,8F̀)|c5 mOÚẬH{ +MZ/6{jQ)b(z>ÆWن{ΐ?p_c{JK/JpjP&r{U ys.*h FPH~͍j ~j.b? G>֐( @"~{3e~Lۺ2s) m4 i3Ӳ^/!8rRj,/ p 3)7]Jֵ2ZIj x]Y[$;U.y,}:gu5M56,q7xind{7ee*FN0zYo޲IcRvJ ץ,yo~ȎJh޽9#I,3z@a[-Q+Fu,ͪoZL|ŧu?FnO-~`fjv>}zc}{^W qw +ڟţl7W i\1'} @vv-As@ sFh=TN,iy>Ɵov êۗnn^BX 'PZym2^z=6tTٝߝ(?to{R93i>~Оwy7ZI[ kg!3DY*<ڟ~Qe)$ԽM3-)U˳\jR+jRs\^AޣʟSjv7_(mQU6TSϪd[iǥn/aZ@3!RQX3/ 9}NJ )qОa7)/P}0%JI @߷73`:3WWR:~sD՝:) nspga.Q0N[=7رo>ڻR AFgdzX zC~nsi"M?cA51m;'Sz=fi{(@3# .RŊF֤w_6]I>pcOW`e cOU 3:m ݽo(iR4IRXH`Qw_R[tQ+~)FK9Škwow־ۺSzILr _ٟw6N !G @ !%,K!ZlLʜn6խT-ԘfCqi4Eth>`S32#3$i$h1ERM$EEU$UYETUEQeםuZ:mODZ  m!V RG<+=aj){2fi6,7SR+Mf$EF,X-0Mh*u4ӊ$ja55Nk$MQINn5 uJR|QcuBqǢʉF6`5OYFtd-7N$dvRIr4m,\H%mĘBMUsĩ+#S5eW(֢fXw$ r6X Jֿ0j߷Jbe$"B#"EH 9$PI4EPQ4]UYuaeVQU}}j?4 Fme.-5؞l]9idZmP*+|6PqsyH* _kJ`BB|9*Cu}S0 0BUX}B' J; ,E22Kv$Zci]Ra#uj2H yxT#8D Hj)~)I(>iQv++m"!A\u8|P|,ԍ&4etaj*>k|L׷ F`S$#$#F%"5$UTPEdIEIUauU]V]<Ě6fЄm̹_x!KmM:U@tDZؕ;DXEk4r"IB<,CŌ[n*U[VZ|a6ocԊ&Z,"㲌-IM*OYjjFː:zӇ~ b KJO K+C9PH ShrS H8#hIjĢt4F;HHRdvB nJ6mLS26I9tQO_6ȥkd8*-1WbT#3434M"lOAYUMUT]uemƙhS3SF$f0EN#!uLA6\s$qu-&Zfmܥ$RJͪY2' 'EۺԃBx7r6ӕ IN+AWUa BHr47:4$ČIarV"/XV%bϯ' $T0F, Yϛ)Klz\QF ɦn5J=ڀfĸ^[$N%# |,9L[$YFcFu!`+je-W#ily`T3"336I:P53UXUeUaqy$!ak[y4O7Eȶlf7]Eh!,qƛI9 ̣Zgq "QfTW#CRqy,4򓋩-Fq) ve%1Iw5ʸ(BNm)u-D"7IQmci;Wj;Q#JΨ1!h^cmQ2Xa|x"NG#m"QLÅka8[QԭI_׵0kRyB64f&n9+VX)%i-'R N6R"QPEE"nE$99W(`T43336i޴ 09mfmeiZu`x I䕌sa*M*4IMSE=QaS(ryp앤ܡ'PBXº'U8LI"9!mpl0D,8VI(9_*$9uڒ7S8jBzK}0Jcu7cDISN$*S:,Y.uqGXKa 6&!M' 6;*^H\cM9|.Z#J<@琍5eW%թ/U 1騤!{ `.!O[aC?5}sHNOo'Ρ;aj_-g'G[Ç\ы\+esBޟ,.SW[.?k)+35|ock\Qӷ?c SU8J+C3g ,R{io{P !rsps֛^=F8Ԅ8G֍@nϛﳯwtW~܏dh1o ס uU))Y+-۟[ӿ ݔog!T G?꞊b @`i0M!trpyd2ha_t'9ۧc=~t [xy8( }d`lbOãH5Er,AΪ[xy6F4 H;+ΦXh\2/xL5Y 0 0RARr(u_˪`[^+ÂcyFmH 0 AImGh'Zxo8byc6m[p[|l2mS\*M>p 3 ~( |XƢzh.e&gE{@yX? !Uppy7s3gbd0xv lS[.pp8) t }?CUsZ~kPh8p+cy¸7('s3g$L\ S%%L-nA(K.i|qZo4Zt]#hl{ p]DC9,+v"SLO`ɲ6sS]<4R| )6)0. PĀ YebM p 9jډE6`h[L2LdERpDj]ڵТ `IhK Pb¾:;(ҙs$imS0U0U,yp7C_#,aSO6t{nn^c̠2~J-E Q`2$pĞH\J\l`d] H.㪅r#䌺)jH`j|m"Z| Svr S 4 M?0.E3Ty>Bx($ nNӧvqކJ,16z-`aXI}Awuz~kY3=o^7}榷,IHc@MSۈ S feơ"HNPݕ9vy[ci)E~e} YCll!<"3uʢA6(l>tͰf !AΆI &9 "TvPr76΂dY_#EUU=: J1#WEc`o$yt% RHpSLd(3A c0rG&ya?D''g$jB}1t>x}A,4DC,5 Rc0*LnhNX,~ qW6yr(&a0ڏJhUzf8̒9W'(R,HI ɲlҖk0zER@\2~vx`aiYq{E ( cHJ]h0*|W%J *BsyaIrU511N+(|Ue~vg!a龰2(S!GkP],"){Pkf\\R 6 O.L3ɡui EA)T{[Nx\ZSxy;0[fa~ׁg0̃Hve"[AΪi Kxy6|xljAd1#{4X8F! `.1MiL5( 0z*ByDFuO˪Y9 `K}~? ^QB X۝{Gt Ad!% ə(3I>} =V3yo~W%@ l~ 6K]|l n}xPGH(_\ ⫡= &q,d@`(~bn,ͼ @``}x- K]߃ڜ4 tR]1PjB$K~Rc0,c@@0 {?(n)o[\!b](ģ` a-nT$,N\>K%0~-YE<,#t 4RQ>e.IY ' hKt! XYtuQ(A ˊHXGD( ,1uy^07e.#Vs+u4!d ehɰykރA-S?eֆ]h ud /$62HyK0U J.`@%~e0Whp CB#Hסm$Ʌ0(OGyhjV~UZFS5uHkYP?BL,x@WAyI> F$ nT PI^e Kv0S@q@^a"Ǚ{`8 N(C "[xaB_JpQ9svkoH,€.)vڨ M, R+X F`  K a kCd 7=-?,k/yTC/,KhW1#O骄A+A((~_'VdagXk PX>\C" ,BAt%YI's-+-"FK:BE'\?Q)H!T1wNUN3":KfҊl >Đ\J'194Id@ /,} NhPYQ$X O~&VLv+ҼM5 )JzL) C Jo;9fC6uH.鼨wFj J,x`@ K C 0 GjXB1C|4fzФ,!ŧH΋%%P4WT%C)?И籮R!%)ėSHm;a=dQnS F+ CRF\1IqDSTo'!vEt$ЬL MJsW@K!One7&eIRO7UOExU$:pD{i^lp2pA7_=V$g y^OGx]/0: u yೀ2pB``P$<pgܐ4&@*L ᝒ g8|Xg0]0:, G$+y@(:p2q;3ۧXwRKGI& Ġ~?$ Ħ 0 3t ;D5*E&Q !R`bSW@x 57) 4'0_ĵ TYGQ!1f962qF *3Y$ jJ` }{}HOZtFH*N0@ԗTYxlS1Q44Iڑ=↴z(fptԯlؼuH3Zsvg*q BD M(R<3YdQz vDS0/vFa! `.Ihɍ$ <.bI#M\Rrsx3*:|D`76HYǦހ/(α1baeQA$II$B@&@HMA],3 -= *q6$1:c8 :/i+r@0M``Q;B%, )'y! K)=@ bJ/쇒``#k5DbWbQxnA- 2 G<'2i37MQ DPdhBL**p|XPlؑII$ВhјE R/Iv>jxӍ( ,9)(4䔞ܲh ɀ4ZHZWdx@DpOF13"$qlV~`PL ,`4 $ޮ`;$~~xW+wpD 0GwhJvJjG؇۝΢@V &M!Ybl}V2 ¨&Hp%@p5>@gO}C%0K g:GDҐo1tG IgPoN)$ImEdBt? J i5R#Q(,LlP& A-&Q ly  5?cg5;7d0O"4qy)1Гr%~ǙBWJ} 3 HH(4%ZnA+AVڏ\ T =]' Mdܼ݌pĬ4y  { ?@rJ+CMg+,_(HjRW'^"qC!"MG#AFo9P cRJ = +5 !$e-q 6d/;`m']р0bk)=[RR[Q\!lģx-TYgkvf`_-|$;F@Yv%j:Nχ$o ]h:]BgV;wNgodtH%<H OEA\4?~y8&4L̡^s/D0"'@pH$8 ;ŵ2LJMmr?9 P_ Y[FoUT ~&@ha~/?1MĢ| ;,I|籉^}j$'+*@߀QMatgĬ~z`T J(LA 1%BTԒX_EAP2:8 r̉EZC^pĻAS6LXǐ*J@Sk*a.% ˁ"hA`bwv&HZxLA15jP ނLVqs#4ΏpJ: XfcI( t{ zO, W B#МP-A/ &{OA Po$DĆD4h&*qTA>&8 !|iǣkX !  `.!# y+Te K%빝 By8 |?;N: @}x Xqej\zDpV HnqpE0vqC숨 㨠(k􈶨:JZ&7U\7"0{L1^ZOgtj߬%$H=7Lx3QRS&Q4(IrpD@GDfwJKjJ CX`^DBd3P >&bG[[ِN%A j)* DC&M&dW 0rVb`f@"lX0a`V%"aesq- AP-A 1RE\S#I; 0a4֡?A@!"aZ) f}SF萑51#>4\C'0HWD?&t(07D2%[H6z@BQ01 &g1Fn=xeRewKW3LϠ h4 Ӳsx=(,Jx_ @o΀SD,ؤxaJ% ^omDF,'' WIQ_$0A/A2 1#Q':ph ?!ut Y"Ss2}% @K Xo&.TA1>G2dPk}DC4ӼS"&}DOs `%\o%PoZL]Lly>.K]]c%PJzCiT) vP<b CxsI-; 8- fmp 3 m!-HS6P&+ThA>TI+_IbLE68m0MY@YLC[.pp8)mLh**DJ8Ɉ6yơɢ$cH/**SCH`t`=~eU0D2(gs3g&GD C%%L-na(<|'aOA@JfbFlryiI-5% #h¿Y(ȓ+2㢣o:+$I3C<Gφ\Y]~e׫B+D &d74&%$ʰ$"X&WA43>]54@C'O(8Ʉt>~ 6i@m #!rBCD5⋀&JN`}&mQSh5CBtYTa`Y Q-v ]4JdI̚imK0U0U p | P!M|+O"lʹ_g]0TIeaMϢD*"?{"hca ԌYFQ}&T[SS@,Ƞ I=( ,* A\ZJ쑢,`[[>'2q K Г^sUB`6ާXr @ !3G `.! A)^F B@WqI `M܉&,8.2&5I-E^z`} N-iKev$kS 4 .c;YdHO[JS`q] k|JtxuR ͂v$dՄԢ S$*_rĐ z>3Љ2WEF j|.R6f4%MyP|:Y\ C!tChهcݨ|)@EDpD&t ,>AjM 5DNW%!L&$ceIu tӵ S .O Tcs>8]An t'qLr35|gSx$`yz%%$dP ‚M\mDbwl:G%BQ<- *Ϧ@`{j&iwHCO\] ɐX` IB_! a+@*.2ȸNA0z( zG@dU4spFX#'iM`O\*'GjVH|^\ZS,CnHX.oz.~ښDÑOzzWGY] ;* D\fmB8\ U.9'%8%D!R h&]JX2 l}\P DQT RRaPxqty| T)].PL |k{T&6UQHVWEQE$yy ۊNLO;Sxs*uf#!m7&a-NE T@SxprZF ZPtRVD l"=# E 98FY ,@g_4`S}~? ^QH_&AhGy/!&!iن'6ُ c34 ]yS]|l n}xI I/]Y)LĦ"O QA 8Mřd S]߃ڜ4 tM7P*I]Cs΃Rt "QCA%W`Mh@@ֲ:g0'D>K%0~-Qe ~ e|o\%i0(JCUP`:P{QQAf%} {5UR""XaH`Mɠg<̺e<K'_7(`lɄp;.6׃@n @{_^>4DA ŦrA} MkiSVap' .vq'fM56K0U)^fO`~>z)= $RW7hJZF-Pɂ^Nx KYS"|`Jf]?/?A L@_v:^QmB n薊Wnx :KJmcMl| @8 T^q K *t*$KZPAUBSZf0tvTSD0kФėcX1&,A>Ht7Iflٰ JiK$kJl*X:\6uML2MR?`Bj2IX!RMM!F{ @ !ԞQXhS$e2l<05vq2Jܻ]LNu$ʽ(`̺bu}>tثfq9Bd]!GdMQCi38ͦ:`zݺ#0.]oE5C|֚Ra1"hhԣiDU)v͹( $먡.Sq{GfJs-4&֣meBU$J[)-42[)iI `T4DD$kj AEZQw[U~#}bJٖh[X8>kH}"i غly-s6kHk|bPܩj`qEj%3%aHSBfBKט nk w6>jME-t4Pj#H6Y1Fmc*-RJn?#RY؊be{QbR.p 0--ZrB}&jYt&":Щj%d+9 R̳4V6˱@3jxi _?W`ӕ&!Y `.1:1M Jʡl.|Z0ZjXO9P[P)uQIToa hN$P60:2޺-`=f'Jj JJ TuOʡ7XhQ8ڃʢp`>Q0'?4A0 '%u']=Π'+yJJULEI[i:A$PdyOQ Bn/K/%K>%M,ŔI(~*KP4RQmAJp)IJ 8BqBR3? Cׯ:(e&:phP@I`0$!H B/=!'#/P&AhO򥿬)B7J~FaB :qEGJ4ŘQy j`D*I ?EmX-M4Y_g'H;LP}uZ%(iŖw2Fp2q€1)/I }$# -'(_ebQ\*:Jy/i-C%H|MoDK2I ²@-Y,6HYhHGwxV^=b_YM3,4E4;DT32q(KQa$A:1I?]rbt0&_ݛOX1/([7'u˳&rKQ$A= B~^TrQHC ABCDrc]&\+pH jR5%yI<7p2qPi@d͢8P8 xƃ@uC@'7)(5 e$lB PM.Ѳ7㯓TKaN&a9yQY`TT2 Cc$t|Em0 %Rq.3u=?tQBqz hoHqC8*qL`CRMG,0`>KP5\'`b !_T2,dE'6XJD5D"OZ2q!XTD2ƆrJS;_ -418hͭetIaa<.&L"Q 6!pKx xg *t?ҖRLB,_+Ŋ- !2Nv ))$xzs 1&W/v8SE.01;}oI2YEJDKJ%7Z }-% {=VpZ<JTLC>%3m)JA ޑf_&B%"|Pa]/Fp 9htFJL& T33п0`kd[ IgGC@HF>G 4AD CbaA#xw8!.B\`c8ϽD"Q_}З[f  *A#X1cA H;`Z <c+h81aYPҜ4P/vWԁl=&0aXgTzUϋ)#x[WK=D2jOwˢAt-&Hba$$P@]Uv3B;E4:JxxqREH>8a35& JG@Q XtQ@7@@S!l `.![ $No%=P1TD $5SH }3Y{ A( #l@]D d]H` | +ZH@>U,zϗG[c ]@bMi %0$0q's]%(j񺉯iTs CŁzZ3qm(P _\@f{j%5Gd,q1tCK`0wF4dhO nP!K^`̦l$ 4^|5Kl> bF_SB2_ vUԥ.$k7؁9 LE5`_a#) .@e^H0#e'/!=O#˴2w0 2T[`<TMZyj$0,WЙV7OD`B3/d]?XqR` x4߳ȲK=S paBI'K:Fm&o 7>L]CPt:_D`<*f%d2ˊB=`(JlK#AήmBO:Z=ts`+?&YʹʹXD}QH: 5"³j{ RGAD I7Q638#/ʈA$ nMF L,|1(N&,B` S80g !1r1 Q+csփCyyJ PġRγzλTw'!m}w+ (W)iU0)&Q!)M`b\A& L/4HjwwOT @6Ov#5#̿N:FZ{RXz˷M0Ԓ HB4wjT76+Q / Vj:+}O2?(xV3USb1Q[CbJMD1%2t[E\_25< GnB xAHͳ>oCӟcY|goA?O2Xu:=sh7y4ZF1咙#ts.VƉS;6j6쾝t nl꼹ha]Jonu(d X>l=u;D]B[LGGKto 7:m,ʁڣ uR7*'YKx|aG&W[ז1d9KSԷ!F4ICx+28q=y4!?IdcC.~ a WywT$ i}8%LM5~"Ƃ3c, ` v9kZC.#Ay>Bcm]j)ۡyM`K@da 36$XH} C.|# ෋yox-|_/=`NpTCDC^7Cewp> Bя01k-xC.}Aw 6/ߥo@l8pB9Z1yf&de3=o^q#(=xC.5f s|h!Ó*a_dhP՜% ݇RtMGBS&A C(f8C˯ C[nVnz50>&  CMes_$|4A:gka $`! `.!Gm.`P#(0"1+%x C"n҉5Eưƹ9Q oVӆ3UCz/6'Evj^Z7!6 ;"e,̷$aIzZr! 6 E)LjnFnȘo'Gݒ6،!` :\!gSK9㩲n襇C nК"tC0nczv!ih c!P|jN#<4Jӥv=m>+p ;!E+`R |66UQ5MkNB-TD_8LG _ =nj^Klԥk2~{;Ч/}RGtf̶7>lXKņ hIu)hiArHjrYTL!c)%)R  3L4"O}уO8 O-9H==`bSmm*UNJ(:wEV" pϹíUCI4,%䡷Iu .y؟ -ta.-}o`.WDc;xt ÀZ2fj[#I;x Fz! q /q&ziB1~,0;.~ a WywTI(Ú:Huh@e9P!W[A `c`L&gZמ;.#Ay>k25H%84bLxl]Ws/F2d܍+J %ٵPD X>a03mbE;.|# ෋yox-|_/=`pjUUhI&II2FZEb%kQL@ٶmV6>ջE sgBя01k-x;.}Aw 6AND䞹zGkX^!O:褔9ބA>B*ħ0cg!e2ֵ;.5f s|h!š}P)'!6zމL],e$emm^4 rJa&`pp% /. ;[nVnz!8Z:lyyߘT"`XDt#`&z*7[=嬑c. X|0dd@ > {(`Db @ ;"M* "T$80$-$ÀUQAN5!u!FHQcoĴ:JDPL3֢= @l覅!MʱŒu'u ªoOp ;!FU\{rKv5Mfxn6=,ЌxBrQ$@BY<(`J#!(gX-=KQm;o%I5:tU.rmuYxDTBc@&,oBo'E?iR8(B P%Z )ؙpSUJg@3y47s:(7 28<ڌԸ[RLQ=KǓ̑&C_Hc-^?3&:!G `.1:1mV9z)8H=WDZSy`})OClSX%ZT[>u%}Տ2q3*>͠wd>[L3_,g$x^Jxb2<'D.'f2N-clu5G*qPCQ_q}L,R0` : p$Z w,шd~`i^"AДw@"qCdɀT;ÛF%8pFbuP7!ީ `K( $eЏ#z%m(>wzy#b OIXSq1 `Ge,Ac\~ %> <¤d#"q٦{?tRPP @ǻn&r4@: 4~zF"I5>+w ʾp# QW7> dXEa`of ihe)5|UENs"aIJS#iH2Z @LԆ  -%|Tc 01dY|:HԳH}"&5 >"q b =Pܸ04Jw!|2*Ύ*"e0$fI¤R\9dB"/@I"Q2!tCiI1Xb`(MwgA/4fU0ᝏ9p ~"L2` @Bf!`1lmtڈцnK/+ Cls'`gM="BCyp"q)lFnmwD ~ , $iq`*YBkY5#LQI)0&~#DQR&RV2e :vLT ^y#@[z:$Aaa/ਸjfR3j&brdRLY"@+ZBE"qCx msK@ie2fm?u E{& +n} ^). q 0/`b `L@N@y% O!> 0ux q(Ƙ[ZBZ)/ƈ]uI/gȈ +(G/$/vN3B8 t`w=;9 9 { NB@V- L`$F œ  @C&dKz8zx%, gbG+i,~(V1 E)8= " | :HK RJ/ɤ Kb!c@ɆX N B@tm7Խ ƀPJp58@4|T<M%b:z -zAXge0[ 4aŀ{s. @;- H@> ATL#j} a#@@[IhG{aDzT:*A"?I+ųHH@Ji pOڈX>3'8<b/7IW(qmHp$K>X61!=(`^}oF_~JAW|Dt0<y<" t %eA0-cZnxQ10q`\!atتD&*!4L្"ȘE4PK jKG '@ E!#0v 8BעD _ @2 ~Mzq^z@7o掳DbRx %?uSgqSL43@p ꄂ/9ܔG]K8T!{ @ !uߩ!%s6[7nTiNwM`*,dkjY6s@,lQ)F |aF{6wV "=E}]8H`S4B3"4I3:> QRMdYuUif]]qemYgZmoL´Tkjͷϟ65GefWHw+GͦyB$-Dd!UJԞormme54ӮSH󥍾@%$pbam-qDroz=^dtuȦ|DA+drbH &=•!i,yš! cq9IruSӻ!i텩GtE.<{ۓX NI=p8oUvSNa&dbS23426iOMV]eV]iiuvTɪZfidF sD$,E 9E2a7u{)LmƞԂd*;h 2Ͷk"53:psfrsN2%caĶTh6t4 ȕYi pQר6(4yFw I[MLAkfZiuzm %kܷ})yv"ҕ;:AܽE}*v7Rm#)Mb C5VUIY&#q1&xI8LŠRQ&ZMR`T33434ij^YTYuivyyv'}"6=D&M-qN#YD,6+ER-cV#m~l&\V؛E)Zf ZgΕH'('R&%W!RlKt VꖵdSJEMe<,m i&IoEʨ,I%\N ؙґM'Uh4|R܍mԑG4ol:h*I0Zei2@#ImҢ!L(44d\4F#(IM-M݃:3#tF8$Okbd4DC#7欪 ME4mǟy^~أ9}]%v"oXN9Hҷe:s«Nޡz`}+PĖӑ)@KOje֊`1ۘo8(E;kf$Ǥ\WMp0"괡QIƚ j,=QO"6Î)etV6ιeHr Is ؕ"ƣI-7VJ%w&V]JHlNS(Z挠 drJH<ǎ"kn+bT㑴m ]k*llK+7\EqeY_`S23DBKb9 =IugUjYY!jVh"(.jјUF|gW"TMBB.i( R.3@?rjE~JmkSC ":7-m+`>ҕ]I561VH4WjHޮ~2FU UI151,Y\ -גC]TCHD((a3b\2I WVwuRmS4DVŲ̒4M^0j6YFݙPi4t"[Sa73,m,dbT""$R#R)$h0PAQQIUUUvY]6rWay_ Z@tӻYRSR MMqx2(u–! 2L7!]f= f+n˹Z0Me#n%IM[sה~"[ȷ cXJM4 baS"0Q/ foXײbDN7BV_X`ۜS9dnʝCpY"GCs%DBYd 8E,a A{;|e<*ٵjȢmWc&"@`S4##2FE$@*ꫨ1=IOI3Q5U]eYvl&I! `.!W}}q #i7V,ld7$?wapE Fp^XX +mW!00IGI&Q  LWJGJӰw[ :c_P=TMrFv2_)*?%%Exd=t&ag9`*0}I(sڞT ctQ$) 0_!/Oié*@2|oͶi %0 Lib/d:K+;'_Pr )$ QXA?$IB CwI׋6ˀ%"H`ie 7)| ꍉ+ruEL)8YC ĠNr(L(%͋t)j#wCIՑOW TK18hY ] e1z' ) \kaL" +H"wiB"0!( GSy )aAw}:}}d"&@MQ6((ӿ*:{P @ *[TO8P.U/ 4VQ4 fڒ3iHRjNwj(RU#)0Z\wA- d&x@ltbHz# yLJ P"J(5)fȴŻcp h(%ɃR2Xy0BWW@]!; />7m%xRCgov+SșGQ݂ %4 {;]>E5 >{#E|3wGTIBCٖuDP!&|#.ڈ7#pMI4  vXH Mp %H<@wpĆѳza?w|w} cA71-\ R?t;~ui`;@)JT<{b=ӋOn/cj`jb\feQXM+ (BzCB$u ̉e=@ v#E f@EP"A-OHh@M!B&$ \CIS՞NJ(LtI $*]DNJqP+P&a@p/>7D%4е1@7@,D&A;KL)鬪C@-N#0YvCy@r:IH'$ ):2ߨFe~p'I1sZJ~#d7~yNAH1cX>sdHhfT4PH&H̀*r[%@mG7z:_hIR1C9*hMrj`]\;xˮZ2fj[#I;y/|=b(n~)(6: '^*(4KĚIxi柋$q1;.~ a Wyb5A.V }CI|&OHǂ2 R[q `c&3k{3.#Ay> 2B!ax%/@5,0|IH%fX]$RR+W} M#Ix嘳3m5 @_x/! `.!t;.Ե9-K]vp#J7$C^CbkQy, oQmhmSх*DSrIVx)в }  r4-榜a03mbE;.|# ෋yo|>rQ%H %%rI S47b+CIH9cnM@/kcZ! $ &>ɴ;#=o^ZyYk8;.}Aw {/HqìݯvP/4!X LHS4 ̸2C=aݹ4% @&꒓M132QkZ;.5f s|mO ^ J @&c` iQ dDѡ;+䆗&J>  P(IJ @n4G)!~  C(f8C˯ ;[nNY?EX°HA*7/ЪWЏ-C'i-SJPHq@Jf0" J^1  ;!ff(,Nb@BPCQ t?ـd `'(,bf Q~kFi&DI,s@` I`nˢ8u3.mb?lB)`S9(O&u<[M@ ;# *NYrǼJ\׮MB CS*ES= "q1<2>ة&Œ? HXUY!*6b@}3U`.$lfGi[ ;Qj? SK-5eЬpdq Hi i袳*C[Ra!,(Ȱ-K[ˡ/e#~KXg>N=kp@w GV`_n*q Hr ;!fU\2zd8d$J$h"Aa6@DEؙ6ڱ/#,Icqv74IJl0kcx:6 h M8->B$АM7ä .k17<9m[u-duE6:t ͭ`$Q$`A}4MFc!ʆzDSTC?5= iJ1kݬv+VCQ V:wFUj$uy#B\gsU*ͭB\Vt;q3xzֵ0̇!٩jrZ!ƒi 3y/|X5%=]t^]NTd=q^$MǬ cO4Y%a3.~ a Wyf)BLMrQlVcE$yJ@W4'sV<؜ `{ֵcc, `v;fz^y{3.#Ay>Vum xxVִFia 36$XH} 3.|# ෋yo|E%H08lv׃tn hgxBf Ӄ[JNvX 0ttRO6 6-ILz 4dFQ@fC- F<Ŭs3.}Aw {/E$eAxURbh6h'):( ~%"_=TLT1rrTFa (0 O|2/0fz޼FQ3-k^{! `.13.5f s|mL3I@i4,#0,kf0! 2A)ߨ@ aR(X 0f+tMcx6JsEETn'`օ38=R( @@!Y+  3!?`Jya!~.be s&3RStT AOZan kD L+>kj?tI= Zet7I 3}35 K ЛiwBs~P%C8@. cP\~ %`yQl& _'haGb /Uܚ2HHK•3^7ԍ}@ 3ЦH:>dt _11%p?k2$u F9%& ٜfc&lΧ Mz3I9颐lA)͋<&"3E`70TLW4}1W}Dt#] 3!fU\2zpR!D3&[GI%m]Ck bHO>+]EeR. !.Y|_kuLzZL>_ FNBi-$jYQ,oj^iXFm Q-~Jfƶ;ԦYfK.^ȎMPNNf_p[ha 5-ʀM9+-*@tIؙH  / BDLϰFsnB M@~dGҸC,ͷ0(Gt%T2KuU5x#o<ɮ}΢N@߹{>sĘ$n0~8sܞSq:c`ahzשּk*rtή @x\PG`.)Q0')% JRXhς[;Hzz0 C{> 8"{@Y< $ t sej'Y?>Iy;OJ;+EiIqI.0Е_ R_^D@Y_"qVjRF4PA@v.%(J)!Y # ̮Du0H#r"+zcBkXH #{=\kqKEDD ;C&QwQd @(DK;ly&i*@0%A1g(Ϫ - 7B@@`'& V ,v."q A_Qd a|00 KdcѺ4CK' 0 9&#!SpĔUn! ]4nOD @ V㢉 Wע_<Kϸ8PG,H@%$N2?Y  % O& Ɉ! hxDĺ" tDpL# qBxv?{P 8&X-/ 3.'H E$3-n"`A5nN%ƠIN- ]l!L K(*C&`<[Ak:-€)ƌ5 40RDM Z +tB@@~09\'CDE HI4hGCH` iH-(Ępn5: ^]~vzOñuvZ:zO"22FB!%M1# "{0Ux?$T(0#?JzS 8P H@;HaDR0޷}E|Ĺ'L$rD p~yXpUFa-)$ gI5&p3B0A8KP A$LQ|%$P-@@bM@ dZR0`'@D% PDpPBOH- jR5?@Xg壀1e؄5 ,eH0tga>C`|DX0aiA.gpQd!NX5%psNjMR;DdYa2` E -99)؟(߉s3 wK ۨ)uʘ<' $P6eT^t #'Ii?+$ +@<(Lɉ%h 'p&VmZD"RK|OP(fߋR %̉M 2BG6-2Ozbnu3񁘠EHہ8HxH ,%jIRy!#h%9a N}IoQ!Gz?T@NX_pzBcpw&a1=GzP dT\$~Nr≩ lHEhLVފ$K[::DU ?\D4 C;ɒ|U] eT @Qz%Z:JU@=,4,3/akYXЁKw,1`&X%h *8H" *@Ă/ۀ6OIv tp{Go$(rh FI K@I8B/!()V\B Ay`ntCHBGy +[7,jPMI:bC7>6#QH%S !LĎ Z(F)쨆$k6@c"&% q,%'d3IVqQQKlZ0e`/y8T[1NtE*(\0 !{ @ !WEHŵGn>:nqvsbAqBDnA*8ۈIî\#HۤXq#rZihgj]"5c$%b# .Z>jbV!ͅX|(u6~yج (n%+HFPۈzXؙ~XVوwli!Ֆj4ōI ; VRct"LDHYJ7w@⎲Jyr$=;$N\e~$Rpm&lu=bc#3"2DI$@Ƞ1M%PIMMUaEU]eU]eU|6iE@\Ҭчż 'm"Uͪ4vJT)!S ]}aLD.,cW|WPP@aD&jx8C԰AhXdnVxZ+Yl¸Q%ˑ9 +ȡYK OD4F4JWu;Kw5NT} әlKitU[Em K^Jvkю)ƳٖK\ƓA(4HRd:OU7X`d$!&"$I"Ϊ -%Y4TMDIQITYEQuWYjufBӈ *'ΧF]Ur,Qb!r7'/9@DvܕIIkK+r6 ^TM;: jkEiq8z:Oj dL|ū7[8_gpU$6p261`%Isw`pSE+ni9ՏSzr?Eh  1\R\n'î8c^"hvîOYIqzض君 ~i]6rWUԮ%.b`T#2#22M$@j*-$Q4E]MeUeUYevN8RmU6״~Z UIm@P~=1d%HurX%ƄK(i2E DkdZP[t&C2oz>nNrQه(W jBGfibUN7Nnb9+^k}aT|tQ #Mxv67QMiEdDU*IvFXHk1Z(ަ1mT9#8~˅.R>9n3n=ԉbC4$%BCMt13PUd]5Uv]qYօ+zR#ܖͲm deZ_JWDNBUʔ7(Z.4 M@VNN_U&#$։QQd) 3L3 5c)mixUY޾l=$ϗslD2 %ml8}"݆K&^4|lZa-j'%Xҧ fbV.dZFA)+kq`&֪emk?RQmRٽRc%\4IiB\!0`S432"6i"4 5YY]eyqXylĝ}4:uLx=MHj6ӔJN&-ԘJzF%UȥjaXa(ባfJ9)ś$ær(L6.%&A)WV!wfrhb!&$pƔlmQ0}%<"bg"B UJyQyn6\ޘNR2Z"ҋ8NhS]\ilTT>rL_II jEuilVCݐ`-HFXm:!ITaM+v-kRbT44B#6 (ԍA]iumƘmr\΍(T\#ʵ ([4ˎ&=fGj P\QZӨ 8weњ)%TnoZ۞9>ݒÚP_4m8fN^v̒EժkeAlY/)AYƜ0a7DFt:Ʊ! `.!aD!~BHM+9.pʼndΌI5h_KDz+!$~pQ>F2hH'D`!@=8%mD@:ЁD *ui+@LP ɀ`p%*\WsI tV=X~܏kQ$(StQ 贒@IS΀v0IpOДKpHaq& Ǚ G=~7/ I:%8Whfh&1q41a8娹KYעt~(tD\ xknRFAA|Pv+h tMep+T|$̱[aA[][svA0e Ȍ*JBp'@U% :;Iel!da GS oZ ݓ~_^V&N@R;#kϒJ80@0&'2CNADZݠ(0bIoJNj>-kyI|KIvQ愦jp гp3H&e'LA'I+Y}3cXcO3h"4X884ZH<; ʢp-H\I.IElOԝD/z'||*]l jQAODhi T%H~]7 !~H(oeY =UEOZ, )XaC3qZRPs#Qchz&* 8T\VNwGجWB홦a+X#s UBK2e3x"`:8PL4@(Ź]kL@Shzֵ0̇!٩jrZ!ƒi 3{^бĆ e ʧF$oIDsf8PQ=ƖixI7דO`cdmBUzoDR`d/ci=@Y7pI,)V1v %>`VB(`% qyu 3[n',pšu+6N)?`Ho5r|7hyF}5HQ)z"nQ!rJԐj8`=04rP#(0"1+%x 3~eq,XN2}Pe  'NR:Sըp%=ZEڐA x֕+X|N>-a}RpJ!, `.!̭ VKlAM#oh丆g 3hd*0UL&IΔَ#WEPzqQ0`|-4W,a$.XY:J u0:Dz}`@ l@@a١!ed=q^$MǬ cO4Y%a3.~ a Wyy!*q2LrԴc:jз<B1 `0KO`;`3=/NZּ+.#Ay>GEOWB5HU0`J7ZO2!05 )!U @Bqͪ[OUJF(Œͷ'H+.|# ෋yosqP##ʭ#Ђ\( '{'h3vP\,P;lڇȡ! V:ͥMD[y!'1 Fz޼-3׎q+.}A$xP_`F_dOB=l,lBS3: l$b! iD `y8fZּ+.5f s|Cr7>IK4i!X3tѽ4cy >ބrB.GL (Jd+co] f5E'ĵ@0`C8 +[n',pš^90P2!E s$INՋAe%ބP4 9tJ.IZ Ag=Ў2>+̺P0> v9{(`Db @ +~epo̗֩a h6s<,H@mg (hjoBP4 )*BEoDgt3y '! EYPT63(E#9KfzM +~eF1v0 !aY_ lOzk󪄶ZxDLo@{bX$E"hRUDe+ ,9Qmg{Gl>P(oG  +cONzM, EАϵ?uc/m Sujh*8C04N(6RkLiHp<dr(pCd*Iۭo茆xk)(7p+u@/ ކpX6oB2b.e\j:=JRhQ8QR'z//@R\׼ H;N))/oN \% &{?ڊ늂^twҍïXo(u@Uil P`bFn;vs׵!;H`a7I°tfS^(4<LJPY9!N+~: S&Ad݊۬͵@'41%$,J?ekvuG"@hRz95_ 0U9E@4%%'e /!P Ft'!0 IN|CB _1 g?ͯԓ NfCvqOA Kv<۳缽-W8(FY?weg,} dvbHb{͛-*hg BI\# ;.phM& 0Yer)*O3c :\,߹P(CtW߁r~^ߣ$5 l o'T=1A &2RwI@4n"I}`14)I0Uo hJPן @vL<^ϸ $=8հ7q?e` RyWowk*)IFZNOfr')JDB4Xi3)JJR")H(w)JJw)JD\R:SN/a]fQ\603zφAo57@\C!t@:ywbj( )?nkJj 34 o;b+5P BpOz)KۻLom7$z+ NϧgP)0 _,!|jPLbeuKdewSy*[  M+λOr- OB".Re)H"p+)JJR")HZRu\)rTN4чrҜ<]n{+f _S/8o?M[ѮrR_,$3dyC6n/wz8cl.m GY֩?x0aVW]k8/@_JL1{!SG `.z1/?; p|4.,Eg=F\143ZpGgܸ ">̼w>aIYAIyz5}ptV׺ ŵ"#]v)5)KM“@ߐbRٵ᤽rqF폾J}<@($1|}(r^7TuH/N 4)Fqb}$ _e UbqF+;ynSzR Qv,jޤSJ=(fR0lNI%;`=P%x/VJRR)HԖ37{4'(#)J hS?R9JRoRreJ)I๭0RI!8)ת IJn=kMbbM!$ 'Udz7N;S1 #rCQS:Pvh :B %f@[slr6H&?_~]o"rZVj6a߱{ L!'VCJ%J]ּR`'WH՟^̙ɉ9\۸ZrkbQ| (lQ@ tbӖ*җ_J{e)I,&JR")O.RGx`}=IG2 !J蹡SJw)JD\)(JRqrjx7_JFOQiagJre''|}@ Ҁ0 -)[}+uK07e%9vI)8!8 ̚'#9=.z|$1,Gx p N?!rP*B? CaP/(0ar-'s{u 0 &bR?η8{ޒ@nٷK߰RbxOAHSKPBLai؋\C!dB:8 F HW:&K yPZN&70 HaIν1xy0ܔ|J: pX) h/<CI?r7^;['.)I3R&)JD#\Z}>k )G8ޑz/7cb8 i0KY!}$4e)OV01$2H_˯fB-J!d̎zrWN $e +6%>91,Xg@[I9r~oB8`kG@@@p*B!aۆtj @@ 5 M`WA1$lX-Av99u-$ I`Q(Ң>L804([[@!̆D#I/q gu%bV#%ϞUf@c@LL5:Ϗ/oȿ~=w> N!f{ @ !‚|imQT2uTh&b mK5-LIq`/u0[jQ3cjgOHr|dnc'[ĩ^ <욫m&#cr/7; *j)ˀcv4>,i@`d54R9i 8S9}ii:VXMm5mn*JHUJ}Isgbyۊ  ̫#B@rsac%kX ( HKOz0&ipẔT]Ѫ,jmL6 @8xN]|hej㛥.QZ% 8D-} (,&)B%rF'nD?qDE߉ KuhMCV5kXPSVd+ ;%̈́BED NafZʱIV͑bd5$A9m (Eƛmn(^~LZ1 Pii\h`KXQYi 8K^ juq}7*%{wXI$pQMr\ m<8/D\)>j=9zĖI-y*+hQR /J *>%ܐR5䊳/!fdmGOB]&X-ȏsg xz,:QH—W"k%Mi?"UGρ=̚}F}coC5a˗5 ZhIUXPbă4$"A$rQ%]UY&]UeYyy֛t00c1ǬlUτSf!zm6G5hOx Z}\ծ]+a]+ӡTjaUrFC4/EU*A<,qX׶IHbuc# U],}ſ`r$aFHte֦z/2n[T)l/BKg`Jfёa[ MtbSMΨ$-K^i=^=+p+tQ-%h楸0`S##32Hܑ*MdaWia_u`nqޅcMm Bkތ,-#S4k'9tGZ$IciaVr8`{Aʮp_l)7)($Ȗ ISZR^Ul[Wz1X7ib&J%m4vI6Q  6N#Uas7ic 3(Iʪ`ik*Yq˂I 3l8͍"%-)Txȓ189HFF$x]4}q3ԭQ+iHY#E\hbieJN@[y~kybc34D3Wl Q5Yށ djj3ݸA\TF\l e=#P{qwd&R8`M h-[KM+jCHYH{V D4S9buԣNJd:6DxԳi$, suyil[_lI1#ӯq$ H0>!-,3fӍHUH_oQ r̭TPUBM$ȍ$˱ k Vq봫]Հ)IQHqյե.3ȓdkQQ7#n&ћF qܕFT1`d4DD!y `." M&Y}@&CVqC3u`;r6Pۧ78 bƗo2 B^ ? JP_ /_p(v{ #i6-F8lDOj B2a k @3,-ugT$3!"O;fQ9Va1%(ԒC 9= N CHNAq@ @teJ )8ć7aW@$$%GA "= Fw@Tuq~ˀ( WvOHG]^۶]8OzP`ɟŀRi7dau!lnMHjKak^f1&Hp;c!jHI`~2.|)GۭCmzI14rp]W 0| ܓ"״ޥ}Jaad! E_=?ROr<%{"ҔQD'@H@P^~놀 $|nD}VNIqtDAEKpU\- vL$}$$$̓H ZG5 +.1A (owh;ؔCNr!K؆+7bubM@ҏG1G9½aJ[7K0 C ( }PiNl rbJI; &:@t3%ȘMHgWWQ37N2(&bfEsԿ,!p (5k~N 4pTnĒ6?:{#~"4>0A= ] =/ zRVI@k#s }'վVl@%" O~067nRJ+ B0uKJ 7+^Z8^m3)/odCAx%ݔY[kd삶 OۉkṎj@ sިP ,O=_:G}tLzh zy- `6 4w}  $Op@v!t]膓IG3+Gk4HW0jM!@tYA޴V^ i- 8tK >xx}bxin:/Gq}k +؆7ჵ0x IX;^R@v5X03ֹ zSA0ⵝK=S5! `.!E=,!8oB d-A )UHhIDZϜ*L$Yo0;lf^9(#xYHdvx]()03)EڤP*X ~ii=?lBrq]?7 AEa|qJ?,a CF_Lh&bL^U㯼!5&E&uo& 0$Uι7 @ DbX'/ !P`5e֠IGYJ۰t/ UMq/_ '>0S.Xׯb{mY2_lFlWަ5.a䋗'zmzAԼ|+x7<8qxesRHxQKzMQqgii雦Nk_U<RPZ7>ml~@/A0W&VܶAAK,3/LzԠҀm|RF=Ev /YŝTT^{]&P’~-9ff]01HFِ:'^\z*RzUZqy1U0j !?d W1 /Rv@`'&S䤰#PP4 !%(&7/9I0 :J/(N3>r2[7@hݾ6oJl7axXM&0Y,Wf}#Z:8u M+sYwl5ˆa/,7'JbY=/3'4N;ml潏ߚ#$~^XM% Ɖr)=G|) o3kt"bOH cy6w~4Lft۰'8`hai;ݍy@trFӓ2QaXk/V;޵'|%F'ysLUNGϾaWJo ˨P`'쿆5w I1{ #$7'*$)A)YH]{ +rR7cCq twNNش$( 2N"B @aN1  1 h &j15%$ Dnn'{a0 JyI@ƩVK8N~I)Ƥ! B2RgFwNp3+}>e1_sx'}XHcDuJ%a;:־Bdnz1rrvv|mƳ)(C3lcJXݷ*OUK0`i "h 䔒ɤ&q{ә;d=7.F4 ;! $}7A oNAv4f +xR:S!E0 03 #a#&E*!秲Kd75B*+#"sZM12YeBCK+y V?[<.?qCjDS 0ɂ,J+. po\cX!6<6! @4&g?F&8H F&1`P~`*L+9L=2 F =G`qhLx|&xǣ)1m0KWO`;bhe`{m+. q|0FN<|8xA[i gHD&є! `..* D[!'Co(P w䟓 K5L!X9Ϣ(Ax n`( `#-l( `=p*gB`O13i i_x~+. wwZw:dS3xgBB7H5&zVD|$ jC*h*OI:K@ IE$ȉHz& PETQ1),9wi"0 3+:&p 1#Dܷ2TFIMرE~ a)1g3l$O+. p0_ d ෋xSvm8 HV@T|;I<C@F&-cd%)O!2}o33 DChS^͋;vކzјv]ne Ja"%07BO=`^ZGcֺx<3.>B`=8A>/zD3/1?)vL TmʓGt3 X>DC;qq&\U<'Nm|@ctF ;`y`81'2֚ym3.YX\H'/W<-|+m8HU.5*3hI|GHDQ6w\Q-mfL$1H0a 6Zuh?pY0+eC^ 3[gIE Ml}jQC1J[%8NCݠ%%'wA2b*2^!d@rlF/bIk hb 'e # 2@S%'߰F,2ca=}$`J`,!V1 3c Gap\n3UhY4ۖs@G?Z#yԭ;a5bCIG!<9$-O *?IhnOGxU cj#H7tB~. % ݩM)k:@MlD`A80[45Zu )`׼[OބwQC~+ nL pY 0 [ Dd<*_#!('H'>o䒓d`{"Kz`,NOXX+t @"/NvP ; Z%+jpD, $z碱dyC;-D<De#J=8hJ@Jw*}7[00:zfc Cz$8crpzܑ A4D$*p[Q 86l}Ь)"FAWFK  @*h\Dq@s\J AruSN aX:Q5+AH  kXipGDu | iZB :=0]]o YJX * O*8414^}̟TLxо 'h 6U(H @ib*5MRӾ 7Hzļ.g]lHaHg(p@R=m0.re_u b>!AfWs=\I<WD\{VtSk-cH$|,~W`pq@}A# C%cB%(H,mT &U2!Qh+[HH@%>q J}褟%5A@lKD0d6N ~s5;)l07=\X$N_rD]SQ4"Cm!hDGp0 $t `\6pr` n^'v-'X.2% +*CʕWD)rbPr#q`]%(MuAW%9uZCOF!G `.!$?@+NwGkRY蓌0ٱ](B3 oDE7,Y)nk&E+4RU==R[XНʢp,20.3}ʫ VCi×Q6p$S.K&T`H7͢IjS{[{MtlWE\RCx;_aIRQesiy4ַ0 4fQjr,ꦒCy/IG*z-^[ use]( 0z*ByDFuO˪Y9 `C}~? ^QL9NM;6לmMB@2 姯f(Tɸ35, _xC]߃ڜ4 tA̅K?BR?-Тf^nq%ъ:] ̊a1 #,FfmdEC%0aN ] `O?Py]WBJZ|]zFm[6PJq^_zzZZBj%I `H0&VZsn]2מhC'_7(`d8 sB<xw> 0`R9XžVƽ ,:>j$>|A'6w9}45s<lv0Fx"&ךQdQ4ּoxC0U)^_H'+p%޹ŠA0rMtv!,@ %y(BL1-;;X24,8pV0 c0O&9@ CYUJ2ogc.޼)Fy% An ,)qn/ |ǟvBDY6@d0mxe!{ `.HH5TGh#@(&|Mbh$ =ADy0lm *cRGydPmnx,*qO`c, RT v5 PIE>ax7IBF% (`|f=8EB?,a`{ 2 (L&04T!ttU ddg5BK)((%FHoGvw8]CIYj8`o# 7"214_}Dp+dNhd'ˢQEC* &oR+IHR @@%I; 0ӱ4 7_o`_҇_ܝqh`bL `'!3pH C\ b^HtH"qC4y`n q`Tr: /3&pw@':d\E gV8v4a3RLL)މ 6 Y ( V7"klvb}g /#?`  DܝrhnpыbB&+V'W:&>&(M8_)J n/2R20ů_8ҷf^8^1l18®w2 4}h_HuSOYp"qAl*( A3"bx D0jfM,1=sR FIG␁DU <U)J %$!%$!H:(3HzX. _X#L-) ; M'.<i+ '@1m{ýTlAFp "pH|oqCrNap ҂tC.p1Ѕ5) BIIJIHwO^P I50$'t㭗@BGM (dX?U%NMe` @@tY,3Pp 9N>Ў 3rp@}6~F yG5 VL4M.m^D@_~Wa!$̭ 33 "wa}'&T 4B`>C!97X`l% H.|P^>g)zXgI]Q9C&0i__D 3K*-L晫+Mo΄87x 0CAcqdtRLWqYc$r )QL Y;DԀ?!a P@@a'Xg}JEp 3;(hAi!>Ĺh)D-I! Pp~_Ĝt9K6@&jC|s *4), R5 M8RGADTq9@$`|ؼ0~@p *}0JZ:P`?j!٭ ! `.!_)9 Jd'~iEX->|2 os"ġү0!JLZIdԊV^ga}T N1+@0!NBD$ M `waNrJ^:(4T5r>/:me90 Rн11d .p%tXxB,҆HhBB69a~' + ؼT K R" -6Yz| !(L !H )% Tv_`nϜ~zn 0j!Aą@;ġg~9|(kcH&]q)gUK5Rp``M,B8̀tE$E`,Z\hG=xT~iCCCx;tac}4R ?m}xC`S4I+وeG#m޳2 7'lg8qM(n|~^;`1)NG`<"ihz@tG.a632qgP RP>hr@+':f; \LV &!R @h2b鷃vڞ@OҿG5C4 bʡ^Oܾ;{YH / pnM A6BJR%S&$jInϺD6,b8.Z2fj[#I:kb߶zbtC9Ơ#a3q8#)!8F(Ǭ cO4Y%a;.~ a WxA1<æ3p>JbY۰K zi1{߀ `c`L&gZמ;.#Ay>}x ;.Ե9-K\sdPaiUM,45+ M7@A?F!et[/~i#'|N"omʠ BtOl`bHqyb+3h{%MfKԛa|۠ BtIi2dsV U0<)t4 M e-5Y;&F+}sBP)UfD[75 /jO֣SPм6PwZeټLbC#1 F[5Qx! ԁ% 0FW^ S(# OC4`Gd)' Bc94%4IB:{iNYd B Xvsks aCR-B$@BkbĴQev-%zebpb(z^M/4cL˯5ׁ}C.Ե9-K\se(IG{Q6 [[>$} @LbJ"&E jvX@L `H1DMpL3$]Q`d#qFxXbp}!C.|#@5[K}`}XGŒҝnW[{@047 #=_cY 9E$|@`ƲǴy45&Á_99[!}ƍ2JYzS輪 27Z*(@'; siŬsC.}AA wh8UuCHtEXMR@0& "NPG݅.Q,c%,P34s<}t4 m]v QȈgRzP4u=DEHp.-2* v@}AL2-k^{C.5f s|篧%xIo2A`aQX]P#b0ZQ8,h fڤ!&T@*`L VA  C[nJcy(J3XY%Js0>aG$P/6c!b+ N檐\^!G `.1FJ5QEb̚j@, @Yx"PfY C!~z_ zPB"S L!"*⩄1 ;&>$+/$jCБX2K)%v/5bjKxi%sZ $镪, 1E Zj$ yL4 C!vHB:PoBpt ␟lL(HKJ“Y9'w0,0PhR! ͎T5랬6tʡ"  @bN0tz^SV%Ά6Wtu`m|/B B$׋"X,HQ[K .5Y5iCBSR>H[Vbၮ@~nhƶ B;9z%1NP(c+m" O~=d&0AW "p:OgJ&A'ņbZND0ͮL E@ `dۧ+hj3^LJF=IT?]8gJa&04ABR3oO3 "thV ϭP|bEp @E &`I(@NC+07S䠓"@!&{ `.{yf`$3E''XLi ,40gy;: OX>ـ!Id sCS3̐$! 7߸ ޔ^BJVٟ+)p>h : AI %* =c#8;E; (197.d 5%tӝ~ǴL@htMIC4.&>t`4PME@T43B"wy99>X ЍPW@bxfތ f*LWzFHo[ܰkB} BAf`Ke^Of?뺂jHQZҳ}:̷NeV^ FN6` ׋!JXˠ3 "}!lDh$x= #w_虃XvVhAe*1, PQ! XK06Vp1%SAX crӊFկIJhnO_0A/Ɨ;xB0 $طHS~ Y.F'PL%@UrgvN Gn,s&t2`.`L ud$%AM({LA7$J0TAkm jM!  tb xa(79`yhRQAO N"sbjqY3|8&] ȵuC]QHjhhTL <SD!x]{,ą{oG:_G +.Xb0!0 z!M` Q>$/H &# !VuXΜA?΀ wC3#[H`P5sܤkF7?`RE/$kKd' I`¨"y,Do=TPA#sy>Y0 vK MB`LQ47_; <w3g&I`ΰ>%0P4haiBXM4`I)!PRxĺV.D| ?LP@vn?@Wg;Q&2`3 %Tj ,4%p A-D` qQ)d"dXi|5.;'9 3,_w8b%9Gն/XX m@PA9)"U<" L䕀r7  1v`Yh~hD1ְ?5%J v%Y Bt`^L.PuE5'JRMCJ !,B"_pW>H 4Vu>>΢8F~Zq) `o;)l66H !i)r#}z$2b@vhO$6D`?_4KK ϥ$POfmVM \"wO{&v?`?D>n5, CCE21L@J AaTq2Lnh"D,Bz:@d Ayu# :t+dZa^NaC *Cyʥ蚙cw`j bL)87Mq dQS3R"Iz#) W&MmihB8jwt!npԧ3/ד5AiB A+HPYIQq]?nӓw~%i9Pi )3޳-zc 0.,3!#,a(ȀwN`.dϠ曷5yd3bX Iل_:s I`{T (m-&dB&l-뿧O!9 @ !47D( Q&YYr( xi檚%nG!qi*vZRX0kBQ_^H ́*8Ƥj\[dnʦXu8a5`xViyq%uO-ZFͳ]]#tH8##7YVԕ[Z@\e2^ijuZ`i4"Ym]=H$jd-n{b]rz1qʤD=Y6XYda 4sjd\Wh*:A!%2[FĊo/n2`=bs$"!GQ$ Ye]]fXIUaa]Zyڗը\jg*lj s&d&>u-uT=gŅcYW9r \L~efD3yYVش)7DRz NEJق~ZZ #n.z).+Z>F(&ݧ5Z]ZBޮ)Wζ{dG5gИJPO+Q[ŽZ+1{5$HWRH((rgILJƊL| E `d$EC3GEZEeQYEP]eaf[]Zi[yԋ=w"#nhƑWN`W~~:֔0N=ar1|8q\ + ֓ ti-M1$sHr]bӮUazUKFٹ*#z&t@&4yBܕ`vݱtQM#! "L2acKIږ: dyZ۵%9"emDev-Qu1+ѶJ֓HTCUCrыX(qa5j-lKI% % !siR-.WyLnP9R"sܥbd$DD6LPIv]qi qrA@Ӝj*$ ) A clJFC\M90= š.b ){gr+k֍wmD[jѧk-z%6FJj."s8o5w٧|,C(:[R6e@g(uы8bSȒ&ϦevD75DC앍O7@- eMSdKkfHzY$IkEEi&Y=Ҳ:qVbjSs@`d43C$6eE3P9%eEi؝qb(>pJٖ$sch \-*ۛ*V$% TԘb%iy[KVmXM;#\0DR%SĨI rT0YKspm[ #UTC_(6fZrhNj6d>j̵jAz"&r!JQ( "$XTwRJSb݈S,PҫzxټZԳj4@,Ysz +r,jBUFuQK%ctTaK"qmʍ`C2"""$$ꧦ,-#9M%QI$MUZQVYaui` |ϟ>|ϟ>i(xuU1#lHeʄRj/ErZ;ZWkI5.]Tۊʗ:W.Hhtf$bvNrGGe{/RǗsu2]Q,Kb#掇)@1c̎ja(ѬК\J=؁`>dDoqԉ_%ecVC|ATM. ojŵ$VJ k]͗9sڮ|t`MbS"C"2$(cj =#4Ӑ4PAA$QUVQUQ4QG-Gf rRgO<tFRT eLINqzJ'bR6=8j7#CV#bWr`.[b!L `.! #9)OCblM"&pmퟧ.!ma]5^UWwqu3C.\:׀kƎ3dͮǨ۱Cx|ul!^C}Q&[£s=caZM12YeBCKCxU?&6, aL @<8C1G,=` 0TBC{]\c`C. po\cX nZ8DBxXЊ޵7  a&91c[|`L\w=-,ymC. q|0FN<|8xA[id_k[P ǢIU%t&%Z-X s*`|/{˙t @Dô/?lC. ww12Y D|}$DEZ 7θ7fDE$Ijڋ$x6%#Pd!-`Z !||筴qLRs6 L C. p0_ d: !Jj6 =m p*B>aחDfɉOS'Ԙmr(Hu(`,!U `J˨=ᅨZ@C.>B`98A>/_rE H@24\L脰\W`K`0Ajj$a)1h>FZO=C.YX\H'/W<-|+ebhD04g@}ɒAD0P|9YC9:AZ("$e(l-,š:h_a|[.T>1cơ1Q C[g%KY5]y(E 2yAèj,@T!1G+XSBhb mȰxn,<<i_oXtv5$Dq{t6I!0K$~:eT]˶ M .ZzW, Zڇ*^QC@^ T8 `^a}lT^ BgTlD|[k_!Y+{oX& 5G /H1# 0aභcut6 ,@v) a)K|hD`vN0;?/P5HXԛd`b 4 <̳hh +5H:Z¨xJ$I^ov1D,x#fAC$rX*ŵF3@ C 3sY֐yה Mmj6hGj†\äBB3q0&Cx ^'IN*2$HD**dRIâ\2$M&$R^hLAu{gCCHf!&о0@P)%||{~^D (!WJWUALERshwHY]Q`TE(`L6 #%1 Po(IbߑKy,GuC-˧1$qr/PU\y4/ CBޯCxvWY(4RVafL/inai̢YKr!M$Cxbߖ:AgzF/ VaF<@g;* Q|NqC}~? ^ Ȇf,`z"h#@hJr~J4vm4L9 p0Kˎ!` `.1I3@כmC]|l n}xͦ$_ ZJDl{EDǢz&"BCрNX)N~ f?2Lj׃}C]߃ڜ4 t0s2J>&~%.4)k$NuE PW5F]\^*}BA@1~u"@`; M0ad 33o",N>} C%0rPJ0.6דl y`xD°I ٞ>B\`cu?@K,;@0GO 04$y)H ±ğZͧI@G`\gCajW'uCCR   C Msv@8 IHt:;#W҃9gc'&ƒv\|Bzq!j$.b*0ϢHEN Ӡ* ;z%\e[k/5A2sǨ "Aʞ@IC@(Ʀ` - ^ CXx*a(eye!CGWa3SHkIDLj(Kj(1뷑B@2 @b GPM+S[dKDr2P?Mf P0ԠH`i+Ł:OڅP &}3: ѡ1p] ~XH BW RxFY? m6&.F4}CYZ_0Dv*j:\B6_P6 їHi֓K .L"PHPhO$2 CC.k vXSJFn,x|h9dŌDkRxbq72CzLJ:HhBi0%1@0fTtr(L BP&I_BIݝ\.9>BCTP>AP= s3E @K( vr.n!A(`bKI` B}ODІ*z $6 5Q&HF*l07A\`!(y'`;[Hҕ!eF0Im 5|vC1FϠJ1e#5tK&ۚA0b$2o߲^5EZ5|1ɪ\?r^x!:pa0S '(lM(_+vw k\rDl2pෂ< 3:yHJpAi°0D(FYDp͠ ITINdvdh12p€?h v@׶  X?m 쑮In ~]82p+€J۬@:ņv>o`Y7[Ĵ}2 I63"Q %Ja@:ض|Pf)b dAh!IK (0$V`>h/h9*p//X@)N7yp ?ļ1j*z7;H&$`J!% JP 1a`' P@ͅ#QAAfPBZVc: !vsrW?x3[A*pW)  B,Q X@o!@1G!#x 01%-`%DیeAGɽTV!!-DQ‰6A(e *p8B`0rP<p$ v1Qeij: ? tB45Rj2JNN(cc& z`"Y *ur6P}`L `o$x.gOڄ.w 䒓{ܖA))g v2 %N_MK%'o%@0 D1 $%<4#pbH#~& @i$qg #0Et#1hHؙ/ܱ<Ӟ@ LGLB 3&E`HѡZs,|B) U%I O\oDuTd7@xc rKp{3ڈb {Wg'DēI&7_t@Oe Jzbi CCrF?*ӀEt N7|x ;! {Δ:JqF%t=) J:p *}&~ ?uDIL tTL! ?*cqbCs?b9aq4 }'S@Waf Dq'R \iJGFRYYOC ((CȨD1#;> M1e3Bu_0dMC ,()&%ʰM&=}I v bq5J9 QXĴbvRQi ;$oJ%lH3o%)B"\tS1\ ,A$.tE'ZCG1 x dRHE%~= aĀ"2וCg- 3\b1D'C+G'& 0GМE$44 `䖲 &J!RcQgx>g)xA0|qۚ,q?s3褤+/@誑A9BusZ7 χxp"}ߔl^9h#2=\ l @`rn] fI%k6&PM+3lH4mv}h㨜V0#E&Ux3"dAYx AHh`h 'raC ذ?   /qDl`d$HM[AT)58ĖUz90x pA- IQ0 @@ʰIPIYț&vPi @(b_YC_a0g=xV!wTS<:)cqؠ1)q: _]`-W3E!jIsB$4S4GJG_p:tBp[X+>Ad[:y#QU 1a-CYYO%CBFI BHKˈaU! XI&욂X0jExȘ]h)!{ `.!$%Ca1C{~?pt!;B~HAOgNĒN"y5ӟ[oəbSrⵏu"& J+ UML:sJl::B\4} ECф`^m@PBd,jVt=^<qe#xCWj^R5|"ERTHvPlb:rlPb!VH>…P C/ʷ']iKxx@^3ϻ<0'#mia,na3!vjZB1HCxy1x}}Xu#V(Ǭ cO4Y%aC.~ a W4Cqy-Kp#pI#@#`8AZv?I+~pH0L0P(DB &WЍ~Mg1{߀ `c`L&gZמC.#Ay>F XłId-k^{C.5f s|Zo2UoCOd CcM !>APj1! C[nJcy(J3XgߒUPf[-0C0$4 \5@ C!~bؽ&r>etYp+$܍{]IDlsW@FH[ CP͙ <>bHݸI|t* Ax(}j,) wE TYc[4>hPM0h)tBiv}u͙ǗYw v!~j` C6]3yMrq*aZ1_t !); !t-\K!`%3$`Z` e@I``IHȰ1&rib@z/T] ahK m *VΪ'֐VCJhs@P+:Č9qdjIP,ryRAfJdz1,HC#9 Dכ{CRTVV^h/ŝCYj00 sCCI g7 O0#:`'Mi=T R|~S , Fệo;Q'YQ;C]z(tI؉y? #k"A2Qkf)#9`C-nrvޘJh `g}hΜ8uϡP%y'% =2m z5dRlWR^gtÿ^AјCxxjBc>uHHŽhtUslbֵ0̇!٩jrZ!ƒi Cxyچ ?6s3A%<XHO =ltQ311 +! Qxi柋$q1C.! @ !Qm%|Lԃ')T]Ed68}'-hBUUJ]؛ u&%h84Y\'WElMKhSs Jr۳Ja!ȋXW[m`|J[_,6MZTf(A͕ݕRdM6G_XR^noIԔrUbD"RB!$ITH*=PLDREM5Y5SQeW]j%Bn8)(apGcRXsMbV""z #ҳA6y83C{`:Gm-gu$N97(g7=5&Q͸^5_mf4LD(EkA~}c**V3S>7K\qM6{UE 3QH8+ۑ$GcY%}\}<#CF\jEPUl&ҵ|Ri2-ȓiE 67MPn524 *^!J9M綩 8hICWzdvKD$iʍO|8sK F4#u Dyh(bC"2C25Q4ʪ3PU%TQ4SQeIUQ5ava[\b>O-6bTmn~ JMقc6MO\٭YQ=S;.o^AT~ta[Hv&9̋jܵn,)4Ѳ!WR|MI(2H,7SW$Z4|o4ґH M/"∶<[E4WZ3QŔ1aju%td0KRqIJm1@/mEJE+*PmցPƫ%Vo~Yx:7OI `C22$CGM$`UQeTa4U%]eeݤ :"y!B%@4'z޼a03mbEC.|#@5[ׁD !&20N<,XEKE'z!`2{<`2!D+yZ9C.}AA w_Q06.͉h =[5-r9 +AQd!BA00>`FUl0Z,oK$׵kZC.5f s|@zY&ZQEa3V-|. ΃ƠbB C[nJcy(J3XgĆ?-!@MG'MFe ;!~bؽe/Сџs]ZheMϤ#pͤm 0?I?뺓E6ѧ"b'}y<56C$ Lp^qY#) O$#b~P) ;Xv%пR4GY - Fy2%X >N7Q!KpXawuJD谆.=7Ņ`fӀFh)i|(hp,\Q\]tZr]P`\Sz'° " B̀G^.a>GbݸI4KQt^@' ,)-WJ`~&U c\/Xͫ{:I'c@L`!_N C҆Z#B+5GR >PhJCuy($\u[Q`ExD'(h &EEƸ(\Y&޷Zn PҋF~W$8 P=**V%!۝w6C#9 F ifgUy'̏ɢPV$LDf, ^a Q 70 V9nkbnKD0TT(XuԹzG2H&_RFsC-nr;0T<BHN;_$wc{ZOt~/t4!TV-А%5mp1_uª_:>ߛxoJ:p6 @d0h1J6;K}!'T2p?5e@!+r`(7A `糕FLF%Rc2p֘`e#X  p !pDRv/Mv R"W3&b4cc4_!j&' R*pQRy-@`;#J olos.Ҝa0,vT# X@˖䀫`(`K4BD$Ԇrd%bYH bPp*p_)*X (<DZ1n9˓`tP y$ĸ贐ҝ KbR4ۼ=ĹIy (VA 9XC>%=F-=7CAOq HC GQ7=B pCaYt ێ$>p*p!_UPĺ΀AB$5~nm-<5Q^Ph"! `.f7H$I4KBXA|3`"pW$Nn{ 7 (TĠhĆԓ>Dӻ3&L !IIY&<gqMeܓQ'x rɨ@ǹ =GP02;4bP߃X``7TQ2ه}4vMO۶¦?! |*@@LPAC`3 p c?n -o|^NKͺOBP0`a4nr 2&$e'aIp2&LGև 7 nGJWR51|Dvļk$N 2?~<8(䜂}F BFy6_9rF7? 3 .h}5 08(#lYh` p<G`yDk8pLX(gs1~AGZI !E1A0~A>Ŷh)a1r`҆t݊\L%pN;\߇AT@ `L* SKU9ANIFdΝ W{:z)4A@;+ķGDZAz 8M=€bgX~@w1)9;]pP2Jx{7Rh()! +lŖB!OӍ0 ~ߵ䣍W]˹D-JI#KZ`!)*OT(d1n7'4;#fz&FA#Ir'q_ipA]r@n`}:! 3!5Q@$0Sa`vC>GoI 8$_CXi0:(,4̀gHb@jL ٳFxoOQ98D`MC}#E 1:)R|W9,4̀4봲֮ ѹR4l~FI\$?$,_b!z h aZ,pMh h%+X^>Օ,tu`~~L)HŴ{@|Q42Abaa&䖒XD鑒U'A 3ޝ}˸2/5z#& dcR:i xexȱW$1 >[%#%&A8+8˓BZPI8j$>H< ;pKýdM,I">GƠd(z @['Uq)%ͤ?K&7B9US]trP: èPP(*P0)uD Ȇ!G `.!f&9#$D٠`?IM5H:Ua}E W ƶTH2 (R.!r`$nL:b,UAa=@)WZj̣{%s>Z?%}bbliTH | ԞYggN\P ^ϋ ڰ_6Rlu"^tIogU/IeAM2kMQ4xЍ>\N;䣊){_P'`3ka1%df|k! eLJK)aTGR΢8(0NPQ5)_Q7+`&~f7xP(Z &2iL`8}ݠ*P ɽc֠Nڰ+vR_`z?egϒw8]/(PXj >X7LK=lzӌ7UtgQu K i8B?5컽j6FI0oAoZɳo{=v' p3l%z 4K a<ސi9q69z Nsxe"Ekꋢ?ˡ?pi+pЀ27,~spv9YÌg6 z"E= ECйCUUKUC̗NGiCxx(m8}萋Ldn.KU70r frZ9A i.Cxh8G) * SHĭMQOI SbYzfr` 8(4_Œ8;. po\cX nZ9eONBRg7 T8[ B 7 _@\켠 lCHg2](%@~Ei%+;bhe`{m;. q|0FN<|8xA[ie{D"'ޡTHTP0hi@ (.jS~&_12 i_x~;. ww11H e8 M,i4@#c@xe됁hXi;]_ay,g" i/NjjXˣ, j >xSbfbIDC. p0_ d: !Jj6 =m p!p\ʦXD`Hf&:@bBv4In3' z] ae"9Z Rc}ZOC.>B`98A>/a|. _CгB돪]C@6 |WoE -=+ `Hiap1`50Da yoM}$W{-4`C.YX\H'/W<-|+eԲܡ/NR Hʓ{)#f Sơ1Q C[g%KY5]y(I 4}ґ}.a-hg!/X$`Dh8 A5 b C!7a9ԥ4:UA],=VśtK+N:@$yщuT|449QkHp4tWck&&;Es"RPfuTHc NtP,OKJBt"/踀ҞBn@ ApwH=73ƺL C0`U A|Ru5 ر$ &$%4% $<#nGk"D. K^5`%p,8ZHOG>H X TbnmC~DZgx5'^E*BaX/ԍ4E Ko>ˡ$.{]Ep>4{~` +%0 AG{  K@!81$q>BL!{ `.!!4?ڰU$G@ X S/|AX}THdൖ:(~ =a ^yL[mpGDUԍK'm"~ =lWN2;P;T=Ag\EPD)]P {g(PCZ,zugS€ G@4. C@(R%_I-AU=6%vR: !dmŘʘ Cp`V+d $NywՐURү` ւnSCJĔFP$2fYE%uXvN䌗T? cyT>*pO` jA!$ʤkAZe]D&TJK $ l2;P.0L;T!8+/XȠW(&TZdIbU huO~^Z5U759" LE^1_2D !^+<>ƥ؋-RbEOy`K-<@: 21Pijh047kCP `|0kDCeXnc%j jOUC\[Tp_-}G Ц]`KxyDU8_eȪ,ANai̢YKr!M$Kxh?4bs̉ +k[X3)qg;* Q|NqK}~? ^ Ȇf,卣4wE "A74Ùm c34 ]yK]|l n}xͦ(|EnB#:(h &!dtĢGÂ6c.4̝| @`0}x?lK]߃ڜ4 t0s2&P|3s鑟׍"}Ex){P\`#*гO oSCiĴja < >p;zFYŒȋHK%0rPJ0.6ׂ5HpN@(tކ׃Q/DaR`( a昑QHehlu % .v%e/-矗L9K'_7(`lЏ| sp.? K"LꨒTã"(0bzSPјIe@~L[U/2_MkͶK V/$ ^_H'+p%Z-OIW9}LE%:5d, nFPv>( KY"QdwiyfnVs.#䌒?? R?  YŐ K U-#L2bP6dg"(&Sk*}YfЗ>j㌙h O\DM N,hCAR}5 RtWwʩA RMH)BU TժP$mBc $lVq*̢Rau6Z:2CzF/}pWHM/(T=GiuX=O RiL"͢Ht'HΌ9E h׆PJbQ谀\ A3UHA _J]jI=H+E]O(dRt Rƚ&˸)̪!l@;$DhhŠM]ȢXʀD%W-* tE<@>@%mfs] B_r 4sL4SR6]8t)4qəj Gx9473xyJ>a9C5CөZJ-)-z{; `f5%>ˁGzu7ɀ' bIe%-n>{P(!D[e`9/땐R6N/Oe{-A!z5!`tQA(/[!!HB 5!E#(A+TjN'R7I P:>JZJ"u, H%tB`Rw#"}Gܥ)9٤#WFL)J,R4JB"!IN!H4" 3 h !3!hi}Cõ)4$c`z@ !j K,M+)/o;,bnp҂_k_p H ,K,KHä;၀ i 5)q| 5%=RxWk$"T۷g@1 RjFq[9/KAfTCi $a5vZrވ0h@ PQ7f,'qپhL4 &ǔɈbpvv \&$$ elJJxhysstX@Ͽr~Ϸα'\ PoI5ݰF-F6ܤ/I}`bT53C5d"hA4Q$Qey֞q^mz8q9'dF]8nCnĵ-54m5󭚶"S ŸK$MiDcouI#;8#n$[*65_1 n@t\3[WLe TxԻGMCзJUiPb0ѲR6Tv&JͮWq#Fr~Ms4L"Vm 1#y!rW$;2h%uWt(*ViI:GzKK\Tz"NvRS)ts̓2uQg`c$2$(H?0<90U=I^NV&X\iLٶBd,>D8*f|[Bflil|X:)~Yմpi6SKX~b MC8:صY٪g,ݟ[Y*[l>[->|zd)1PR|>j[i:PY[lk& 3'zPT)S@K+|41ǽ38rWr[_Ω y@^\j%|ݹ]Kw9~Gn]4Dָn6uf:^\\z p51:Xbc#3C3(dPdMRDP<I$QEXeiMV6.mCͫJ55˓jJu*mIIMd;NT6) NҘeBVA^˥v2&T i#D4j!`d$#2D8I UEUQDQIeWUeuz6fWR1+ ۱*Fco=l4Y hduz)Љբ?UC!9IlQC*{&~\3DPYXdS)N-FaZһJqWߥ_cӋj<:z+IPaXȞ8qqgڜ"]#mQUPL;:*K -Ҿ==#(1, ֠y#EFD֎4KSi?8V}Ib3NKfQݧ!PbT$$B$$ʺSQTafef]Yim}Jbh4eg J@*إ[^Ns"l-=m$h55pae8Q!9sc+!y ʻzu_er4 HrV=cm[\fBTҵQ"-;k6GJO |>_N;dQa޵z!gx.܎-#$ɧtRK%˸4Ȓ7lvOl˳GQC{nXj ЍJ@?VeG,'P2&`d$3DCIdAEVimȞn~_(9f1ӓL&n+E Z _UE'jlCQFJHDa`ahBQ$($!  `."W)JJ-)JMR",R#)JJCK.=RQR r.R*l:Rשp̑ t019[ $L)>0OJ@=`pE M,@T!vy0 b=)lx79A,(m.srUJR")H>JRGK5=)p붡ҡCm%7{4'()J M vi)JJw)JCRR\)<5=w *XbW^&S_  狖s0rC^`Q+F_} ֔n!jy&6jS uO_?0F: <@/ 昁Xa,I,\)iJR%RRrFJRO )J9ܥ&gze#` ?w5QsxE”'8҇X#ͅrX,|0<0=kJShgJQ/xBjSa1Զ,VM 3(-v!?+: jO hob1~rOt-@ tVFHS-sԡv}0dҟ61u88 @CStu5/+a4J?lyu{@@\zbSpf _ejU׹: >@Ih8u^}wz`JRq{'ȷ ?T|a4y(Wt҂0 ?U nd- "T0v7KԔWoh27 jO{$y?d9q'䆕׿ *v{nH4r,nDXNjO;"Pzn%Ģ̆!Y0Y"dO0, jyTO%Ec ֈA!3G `.eOSԑűɶ#gIy@~N` II g d B_ p)gnfc̳@fIhoG-JqYkzLI'{Հ|5E>MJ '{̤3}dlv &S؂FîP ͛]_R|ڗЀ=!V `Y 9'ts}g G17J;+{y/ y3u iQ4~<;1{3s +2bCc(ԟL(RqdMyd2QR|q ?}Sr ɠHXvRJ,î{P}t>|~( xUYT8a5BPݻv]W;V[= J];(7]YQsZ w8I7 nb3/irkV3Q. uo|6Jrj=6ϭП t6+X!F{ `.!aasleYԧ+Z"y>ؤ^0,=?h֧_Pl)ڹH5֑_G_`Ems=МmoZKncw{w?eCN%k=Pi+=q p}v ۿq̈́meut՗&d~a{Σo1{߀ `c`L&gZמK.#Ay> K.Ե9-K\sf)#J  4*aMZcH"bC'zF(Œͷ'HK.|#[86[x qJ/w$h|D{+bq6M{$d 0K0X)iǞyspK.}9r4pA%/x=vދ H-_%ZJh/~6 HPR2I&#0|׉-f9{K.=x`0_x/K^ҽ٩1@j#h;~αO$f#i /ߍA  K[LʹC6z 3b&A{!@\iIě)V$)6ć"j\ q=Dm(Y%o`+C K!jGͣg#8h`% 9l\ Qgɹ)>5'%w맳D H%h@-V,9e(D XFKClfBs̀ Sh}|^o&QnH8ɒubsZaui׮EU!O:iTJk?6 K"j'B],'9oz%Yc <_ʽ&&&xߢBɻ٤_DR҆k` v}sN Jy58-'Pn%,2hP`i}ﯼ.`i54meK$D$\lVk?u2e;);kQ3SH%=8K?@!F&!~Irp@j= A95-Hd삋 -$06C]ɘoGGRg"WL4湰K` X1L\̭e%Tc{E~\ Bܹ1t̖C:ޯ] aKxu]D$'fb0;5-NKR܄!M$Cxy[$Bf$o~_  ;דO1{߀ `c`L&gZמC.#Ay>:p)h&rSJ 0O,{)G+w p:p; @ᝂ@Q>N2n\Ъb2p*ph# vƧn%t*C{b7<HV2qP$474 3∷OZJԘbLPI84 0l.֬+%z =p*qwM= 9؟Z "f0u\X^vȔ}&И*MXlB&oX ⫉T4RPa7:3_mm{&+&vHA&3c xD03nh9QNIO\N0t4> Q"}TEHops*qK @1+PM@h`C(҂#TCC(Zr#U0jFs] YyIx $0gbi09EʌR@ׂ/1jԁ0IM`;G0X79"qJ P2L!JB& !,x{Q8A/'hC  Tϓ=]r NT"Q5rjPϸGP[8u $>>H`\ZVD@.  K ʀtB#!l @ !v`Nr9.48Up-vjvZU9-KMF7.KSJ#z6 ]Pj3xH.y\T .Szu#n+?TTFI6QÌ[1oeD~$ M(},qĕ9 ZzQBKm(elÐZk#G,ZԠ@e0EʥBMjjbT"23#&)2#TAY%I`Y[U_^fi`f&r-$ަRĜc8yH^IoKMMͧMJM/6Җ=Zhokm)jCqMd`,8IfAB[r9Hj6@S99gmpFםlM:I2ɚo'E3wb&TLSd g(ܒ9WER6gM3jBm"tZU)ULrCVC4 5St)V\6ډͣM:W+~,Z4&Vو݊bNUUuF1JFnF+]JGC eUv>G]YKa|! `.$E% A1"pP0h װB{ DawW p(xOTf#萒@:+@P2F%)}`9sh1 "pa4bCT}'Iݓu QZQ =؁*Jd#ĖW -%%I)?x1 v@0A `BGg%W ^P WҁH ,$ xh;P(LQMv܀YôQ0̔%q!C@D :T<`o_$bv5tMbK%ĝ#=䤑1d̘1=MZMGtqD O쮂)11ܯL4#wcT @OG f" `WȎ`2y9"tP)CFpUNդԐԋ3'I&qד~R+j6 DmJ7 +N$9p19G~G%* *@"A܀pR h<' ?Za:% STx+' ЎXl&-!% P رZT,a5-g0(BR?lЎh&,`L8 2 0Lʀn(4P z20L @^BpHŠ&O(L X'[ɕr}X*[6x "``0~ɴ,4.VyIb R!Kp Dp#bFUtG >|?-<Fbhf+pŖN  W Cw 'Tr'%I R$ Bf=Iz& V\B#DŘP >\1)$r@)߷JRĤ#0$!}kX X d&m"ImLd@!`0 K& Pebo%'%wx$1şM0Yc:0] P?+pHE쒀{J$ܟ'D+FLhR* ,z..ȴE8&mG8>?z<>1jH?ظ4 w1Jd@ +J*Ԫ@Szܡ\O Dxk$ EX OFOp b&y8bO T&%wI 04"qn'-mK@>d~t 3^]rlɠ0p]zB-$, j#?ֻ qZϻ ĘL@enO|` **#ɓܐ;@TK&%Ȟ8` J]J@@U7t*nI2-I: NYމ 0 K|X{ @1&dzl5|D`E-p 5%Z!xz=SG-#Ho0[+($ptFDFR)Ж'@D_!&Z,Xa`T#8 L"?F-18`d1!NFAI]0dtBKb0,+* Nid2~Jr6NJ!G `.!RLVB3>9HJY]g ARC"+Ϟ&I(t)1l侃Fp@hV)/J/u3@'&$ѻ'\Bz>O~K JpaoCvX[?=s'|pL0ץ&=倠n%~P /z#8^ ś2rvz9GŖS+FMB.m*3^cb`]օ4FÆ"h(0#tqoݯ`b9-#\$Q@Hd!(i&Pcl7U 3Rv5 ֭UX7 ✡ %У._ٌlsn>!:;* A5JKB+ oQ*|QI{PBZ`CxzoxX1*BQ q,cd9R9-E 4UCxyoZ]I8=x(ǬaW& BcOuY+cC. po\cX!6楔rZ2%&[cc= ` zZYk.`;. q|0FN<|8xAE\5)KjcB:ekc1 !̱173l i_x~;. ww11HY QGe p/UT9G ]CrlO` mz1/] j!Xԡs(dp@[f S"3f|\PQP)+.՘,#g08Blń)((uV2(b ;"l2ԛ"UFT݉q3&1(0SsZ-E0TNjJi_JH!8<3`riDd3|P y bQ0%<&y3Иx[DĔ7TO1&G'Cd{B`W xP :TfSg&6!2ރyG_P/ 5hH< Kk2lꄤZJmVCsZє;UҖ: -L+s@&O2vx&T2B(y!%=bh PγuI@C k݀ b^(4kqކ(?qsq)LL^ ! 5'r ̴97'ąG8U.T^v3@ B);IdZ DBJHZ 7<H@EFrP7۳$bq|Q/VMA4yx> %\Q|}nsj&17,*6guXA>1dY­e:``_1&3Xl@wsXzD[m @EQUB/ ON;xraMhqTB0qF+-k[c r%nBi&;xr 2+(L 0c#qGcziB1~,0;.~ a WysR!{ `.1Q5-f8@5<N_nd3-z޼1{, ` v9kZ3.#Ay> ꞄTFr,Y%b3Y1ffj_x3.Ե9-K\sf)#B)J&-(7` J16L1=-oDsAu/T5 4R,`;=o^0Q"C3.|# ෋yos[8OJ.)4aɃH3)й`S%x'BiZqn-e3.rx@x> ax"!=rI [ޓJABf!UȰEŰll!kJ3.z޼0_/_ |1v12)5 !@iZO#1}5 3~S9 C3m=!fY\sU V0PxO3) F}ZKNz^u 3Yf3|ϑKnyBk-C!!(ȵS9" SQ9< Ф>y.TFcCΑBlj&<Ϫ] @nefX 3!XP.m(YdHl:$&ܔ2bN' Jar )B= ]BQ9[MDcPiX CHQ $$oD4p~$*HwBxdgE,|H61ϼf/NJ0I 2>GNd[j[3Kh:a1ˀ. A 0|A@K,AHI I`$`&=qaF EVy(KjBBF%plV0G"RWcM(xgS@"˥EP`ٖ Ctcjj=bTw$P`B`ZД]rt#8l¹@ `S,hsRg|#b?S]5%撞:m^L7B7]N؊B>Q.77ס ބq0-8?r@j! >Ha3ܽY}*•Ox@gZ+nyhbr@ I q"aqРLsii 3M)n2sw㢀՘b3L`]^ c^/Eޗ^`*J 6qHFB Fn@< c[۹$kCrNNRԄ$ i豁q$$ x Y24P&߀+01[[|b*v?;͘;ή V`D,1X@&I`P%<*0C 󨤺J&Jj{뇪B\?1*:v u춭_Y-fo!:&ߌ&,~O \+mJO8"p t?z'00A@1A@l|4nLZPp1xOЎ{;H`_z"qnҒ@ 6 V$P^)'$RJBKP I1 冧Ķ]"ZsC2m2ߐ/0_65̭(`hngTB, R`߹]fp Ij5#TC&?=t9!R4=m%+BMKBLqX 'h~`:@ҀGdDԠI&x#wcJE 9~aC_ed0Z[~3u! % >L4@;=tsxW0&C +GJ cKv|d c! h K[HxN]l0*3bJ`H|A01N;!gt1I,)1'@;&(`хKT%BV7M  4u]5=S{o\0jL&K$F &@ ,LrtdIi"rRSK ـNvL%C -"`Jj0eJY$44(`C[ -@aCrRQHGoɩņL010?$4 0$2Xi4jq,%Ia +$dA'xN>!| IEV* & *0xD$X|gu@x ?p%@%04DY3  i"oC"<@3iH"@n@ 5,ab@@Z#Q L Dȏ EL% Z &04Y 0b^B (hC䍶^( oa`1,`bǧŀZa)R0 @1FMr`'xZC]$ɫ0@PiE@N&f,އ$md` ;ZRe᜔L`@B d(?O4( bbÔE͓L:@1J&u02IN0 KOnȶD02  $ h w0Rxԁ.+@9qnŠ#&nB0BNIY(#G ZP @@`09$"N%<PĴM&2Bd(C&‰@2nX2mT%p1P, x %h*aX3$$ ,A0T Ƹ 2q/i !"q?QXJ"aD(p @_buX0?@ cì#-=0 qe)`ECSFt$ҔgpYD*Pn)E M -(Ҹ0d<膆%]3h!PB+=TJx}Xo PJs}A,l Z'#x""& M&%-;J1+nq@0 @`/0(kp' JS044Ǖm40&'ˁpΧ,?ĿCuмpneItD@p`a--G #dMh<43"vbF'҈`HS`P/cW5)!PxB|X*1F\OB V #O-<z#JCom H=tH*H ӭxu@ 05 BA4h&"ԖYa I yEU DD҅6kMwen;DXan! @ !OMzؘK"w"NY lQyRUq2mʬ'0#-ŵdLRH6 7SM`S4#B!6)&@Z-CHMOAQ$MeSYUUEUTU]*(QMnR!xcr]L:ي- a=o WNlje_ a(xF`KUm9N>=8hvRGCR1m4JcDI&=nYq:K-ĚAtyXG*M>Z.4NwV ts[hd[bUmH u`'S+%Yf&#rnAjl Bu8h?kO-%\-k^B,f?ԉ$bS"3224i46(0A=T=$YTQ5U]Qf;ʇr[nc)GPHN ;,DiʬbHߖi^6(KJ>uJ51r87چDgP>Rsdq[Gh +KD2h]i ś+-qCVIMX#f#&HaQ# n#q JNVsRܣ?Ge .qN PIXlK]:̮nWQXxJ1z%G3"*תѮ)[`T"22C&(0HR9DTA$MdUdUe]U`۾ĉK$sj;-r6ڱ0yG!RYNU>]۴AH6aZ Z6LKۆs@:ۏh$~Al7CY|$1'IZkS8ZYڎpjRׁ}&)đXRm8R1s`xNa Ge.Ha^'1JBT9pB̲ᶠܦՖo8X ;Ӎ7i+B Ff+5^ȜHƅĕYۋ\bU"44#2(" =UEtTieIQiVXuv\iVeTDgQ#enWpGeO=XѢZp#DPC#mU,ck`eznTAXV *.RKnNn*6L]F(J#-1uUBnܧڈ`RQ0&B ^ɞ$h".AN5 Jѩ'cj5$D~ҸYL2 >NNv +I\uʒuZHU'r)t2wuQePɽIsmYbPfFn,|R(%ri R[34ZuKQi`U"#338M bC $UQv]Uqqu\iZꩯkJJV۬4HBx }LRï -Be2iKVb`ƃx.W,jl%~msȗQ*2p%\ԥkV\'d& ̃ShEOHz෨㘁ؗ\_[+P Zԙܽ~V]QfzHqzf`V2B$$4ڊ*K$e]VZy\muǝTD#)DIkꜤXS&! `.!n+IN$wH B +@``5;!ryO>ݛʈiBE|OrAtD&`АJ1/`i[aH(\ȩ( hZ? p3 ('$LihN1WQI  NYMҿgB9i~@m͏6pfL ٯ61 qHk=zO~=ցu99:"Inf| H&=HH`cߣ4Nѻs`7 F+~{;;>cVn6-ީ% n|wӶI& g6e7oCs^ f' Z`TyhKH%~{o(ugho?^&s|$dT CK Mim r,i3z^5?g&MN}'I(2ֵ0̇!٩jrZ!ƒi 2z[j$hC ]xW8Qxi柋$q13.~ a WysS L1\IIc6c x`LKӖ=x3.#Ay>@3.|# ෋yosa:ϤxE IL:-b)!!G `.!뎻CYrHT\ ]G!@ @?-+N<Ŭs3.rx@x/XZ=3Y289x"nuC1H#,I,#3/K`ll!kJ3.z޼0_/_ |1v1d4@DIuIމڃ쮵`$D4FHČp0axx>j F! h 3hFSfry3> ƅ#̛wD`E`9hݒn& x#OҌy#>-%=/N} 3YfbY#2Ρ:zbʤmb2-fЍg2A` K~EYM1lHQ9O`J?}oQIYkϰJCi00`kLJdzjbhց켊28z,@@$(D$# >BM 73NN}R1Eh 2yLo9["N@/)X)=\%*Uo0Y'0D3QEp(TFFwA, d|4KrzK9#98;"CXb(NsAkrK4 `o0 OG*MlB rP|6 DCCjhm֋eP&0QZIKC\Y⪇RD"[!@z,LB8`,Q٤Id&@,)]^P;z^4 7 IڇT /`?s'HH2inai̢YKr!M$:z[&Rtdtp=o?="]H|@e( 0z*ByDFuO˪Y9 `3}~? ^QQ"J H־DD޼ fm+v2zp.v{3]|l n}x[eJ&N2OqXt: mTjɩ<0MYɸ36, _x3]߃ڜ4 t0s2@EJ bbTZ4lsΩ% yOoS}|^CyNbu ASEe#œ l| P3Ԇa k~_iy #,FfmdE;%0~-Qe?iyqa?|*w& QHLSkmGINv8-x@x&4VL93'_4Mk89<6Z!@jUQ"&d2h' @B$ݵN٠Y3x;k年޼#[$i30U)޼A͂|+/"Wi0u b\ria Bo@1 P4fXAXg#bV%,I@% C#`'D? c,%3(PB$nT{@3B8@XBđ'Y-/(r'c ;PC3Z6YIm @#?n.aę9;yyBX643`s|u㨣ep:2uYS\Zh32Rrw>>.qːtJD8p]o'3:k :ŝf6M `H qR`i.@=6}YP@]l^EQL6 S+5mp|p(㗨QTekľvNI@h İf|1~LA;ʓb-эU"g0 sRS"8C `q2'PQ %|Z)@\' zA1O c%KĚHfqjA_"jI#NFٝfb &Ϻz{!Ξ#^-pĊn߈ ⯲If D83(97&% C 0yE{[P1 I~{:;7[2'4BP})sΈC|5V&%o 1⮾Wi*96ڋK܂?e#зku2pP,S5:g3I)Q R@`ϓ퍧2pU2iKJ3At vdp*pQ)Țl@)3/z Č8 /0=5rI:+*q+Ē %K@T.l>0Y!YiI#)WKވ)h`T p2ZPO@:&3?Xj3EB`߰ǰɡh Ɉ,I\c@JS?7p"q^H FOh07蘑m̃LUrX 0Aw{%!|57 rYdY ?2@wbv@{0h$甒B +e!n@Q@g-Yɟ~n50߷!QE#ۊ{:&dQ,p*aO>\0ARK,8"qWZB $@= > *K`ZF?(~6 p1RÈӓ{ÆiHGJXs"V`Tj]<axd$HD K+@T IHz" 0L` tF+J8"pB @F Igq*!7mD`iE'$gB&d@7 nqv103dTPa\ ,u?B/260(G4@2ՓKC }E~fw> p"p >Θ"43j@Si@0t?4r| UaO 2k`ax `;H ?蘀`iar>aIp (nM ?XV7!! (n p  @L, °! I -%X*XoB! `.L IJ#~2 GFJ IiRQ4. %Pބ@LPct vXf%'FQ$$BB`&E3E H10 q$* II4I)- ϴ` tQUTL_HW14!Pv0!)Z5OP'JAb Ye$D$!|=7 o\DP` 4G opG.JRLbG/6 $ 'dpdnX$ ekO4*;FQJy;&'p jSwг^2` I$ZԏShp$4/6Ș rnv̄lK! Hc|CA[Q€%!B@7d2hj2\'ԛV@D Q 'n@C_ ( o" FϢ(:IdM&F/T*J s@;_;2 (NBxrhF`lL4&@L ŕ[`gF 0o=Y r z$ab gP?H(Q eh-K&Y:K) yLڈ x b`^F`*0i!6V%:?DP\!1 1$TVᦍǖ /& ,3F 7}:,k'qoA_夘dόvb/d!"zPJ^!9bU|cN@L08F$x `i '&?780`@!!96/ŭqee LZ ,c B!D]|HD2a3ِ,&7! 4A$O'*&$$ E% Gt9t "  @(奎Il7:d`Y(qp'Ć`MtJ10')0n\__Ȓ By}8+5)2 ;BVlZFbE!!, `.!ehGtc|IIf!j>))+H dQ|,?T'\RpmR  BN$E:>I!EpR\aSK\41 x>/XN/)^HJ$PR3ZpM |D ֯]EwB:LD)WHIsCA,$ba r@)(<#X`l 2or oOy$[DZ0laRbCR,D5D & b' JdiFMI1Qz72j ,m}+{I):$S |>& -N+'c=_p ^Ғb/zܒvOl8y'󎠣CXaD : %dg?FgAe1н-_swq ڊ! hnn@d@P0!CDY62a3$@ұ3*OUU'L&d}G Fo?URj=grexxݨ*rGؼmurb7_6Nr|CՂd'v9y5M A6.! QJJ*s,8$R2mqZ$6 hIuQ= \ve! D/nIEsm ]tb"S5'Pv K΅ 3]# ;x~KGZv]vS84M8Ùk2(YE!U@;xzNZ&2`u{4bp 3 7P؋*x~GH>~) $~(xji'w53*4q ͦy;L;O;[.pp8)1Ad;ɥW{C! X,$T `=ix‰#4at"BEPS//m<)qg36xdqO;%%L-na(< am6ˇr8#Q! &0䦢ng\Jj'0c48Ḿ} =LA3&h}ܺki;'OA2i64#>t#&P i:T E3 $aU2:z%0vƘ`<2 `pw6iAMnIʹ@;0U0U p |~o ¾E4S4YBN#DP/j#3t' kJ6M$x^)ö:M ; dAL%l-@dA)seYC!3"COD}D0+daq2H$!@ @ !l0G\8`HjEB&aͯ͆(%!T{0l\RV81A`XZTPRqƗNW Q\i*U\Kj>\Xw ndTV H.(n]4eY?c-v|'C2DY$rti!pfzzᚕ}?[[-%w+q0u `d!!3#6M,EUetMTUՉb؅v]qev:C!(җ-<;h#" *[.Ex%@㡉6V\qH(2%ݧE٠Sdm,7o) A yv{a ~C-d ݨjmnp/B&g7i%1'ͶR#ֵ+j؜Kݱu8h"?jc;t^;JQ*#k.g*:Mc&HwFblUasGA[6VsI:?qU =|r50ƶr&Л[Lbf2"%"$(@ꪢ@4RM%MUYX]aXqxg)ˈPIV-׈(Zy ˷AkěLO\D?u=#GR-t_RQ&B=5I|6cW-]g%R0Ť:8:zrb(zRz$X:"ɖFwfKW#~6b٣sr!zCKj}[\j5ڝׯi>Un:tۉl HW. <'4Sj5@nԉHSYz' $$} U.O`T#3424m-^1MdQuavZi_eu]rBeOm[h[B 5D+5T%S $"2;"R֛,빷I&zpֱu48&EfZ *Wѫ$u;e$ՃF"G؞Jgu9V&$JvE#d^9q!4i/MӐ6McuGCQipOP#qTQk M$ DJvIV.G$6ql3-9rZn6MXMYcM%!9MBxRJ=l M!Em#%3[PӁI@bT4DECGd몯v; :G7'S'\/؈\(l5Q?2jY`Y<24IS=`CRj,Аf*ThwCehӉ7$(]ϙ,k(^Ӛ.rKf !U D;ɐڵɜ`G+P]U96H+ETl7۰̳][-uW,3;hf士8*MQIԮm:xraou!SG `.!㱆HH@ 'n'N ;'1W"Kw?Jz% tIYDh*t\DD@1C0-'=T4QR01r".%Uu;-"i1**&a15=B CI@؆}8SFBYD L;AȕK"Da|#u.` B%*9 v`,\! `cz SA'f)tK:xbt>Oofp੤a}2 @+Ajyp]5 Al)B̉F@YS7",f ].FŮCa1V<. ¤Ha]7Ѳ=mP6F,{UTy;}O." `)AOPY,0_ʢXSP\$>$* X0@ǎF|L& CH .&/—( EϯCH=,MH r.$ 0xިk gي\CC 6Py=;2b3QTJDT4e.%!&Df!cbQ]eqΤ)$kDČ;`"Y)p" fW>Dμzsz$`&D!HEUʢ< BU_UCHD wUx8 a$Ʉ@K6 KTJ A&%57TK $Af p2I0G@ K9B/РmXޣc=&P*|%C(C Ğ"J5 y90hHP ̏l>N<5.T)&IjD rSu(I/z{(j@1'S#gA.As0&E?!!%D'thlucWļc=nK *+΃ꫢ`. 1HFJ[PrbH]z$/5oC.5O a)e] MS~FC)B6LA:)rCJ颐E GCF\RiARbߡ8Ҭ@ (% $q+ExpX@MT:BKB:1ӝ#*'`iU@Kiyq) {vp`#Qg KM9 #2*pSAq]8eM+ʺAoS hQc?PPS(3 :+%4A&"斅W;ܟ{jydsւ$ `J|wRS j-Sxv},B '8dZÌ3 EȲB3HSxrUj^Z@O8FY ,@g_4`K}~? ^QQ_r1U9~m70m c34 ]yK]|l n}xQ2)" %ChN,ܚffm71g&j׃}K]߃ڜ4 t0s2m" ޿UBLI 7VA K.M(ag 33o",N>} K%0~-Qe?ixl07@yZڄ z}tn,HÃxa0 L!2h9O7.k4sK'_4Mk89<2|MM20wTśosk年޼#[$iK0U)޼A͂|+/"Wi0H!f{ `.1X󐖖5 ֩a$hp6hZHIH^( /mΠj2l K qfb f0*o Qm[2h_-wʴdPJ3fI#$?BӏNnN JI<t"0>J66@ѪdN4$8a oeQ,L-P2;jFTZ1/4ʢ5aJK'FH> /VsA1z)$U[Mm7 6b iN+Ca5XhEAxeA^U s~3Wπ(wT%2e';UE4KAZ:]\@>{Q; ^Fd K* #8OeΉQ$M4L ~'$mBP\A`A0 4L-vxW >gSU <7놠4X( .oZ^(M@a0gN]Ćլ )If0٭ SE} 6jT$uWԌZBB`3KCU B`ɂ=cGDj5o5$9נ&Q𖅷4s9׭H\QpZ =3i x')u!=&WXK!Bо5MK,B] t v3zF8T%lX*1 CIs36yi-а~+A$KhV.Br/ BZXOӡ9X,4NPiŠw?4za4` E`jr+E@'JjsnBG N$A&-h%oΉkw1 Ef?ͺ5\P lˤHfZ(-n:u ,I`R/^ n%*@ɛ˦ }8DRMDцԣ -8hDJ&? a0 LS(e!̌^'s-0raE$ jMKΎ* A?@XBpUա)axZ?mBp!o}$GF, d?@w(3~UO߬o:p1 BˆFQ  Hgc:p0ݽ`Cij$ɮCMsc"4 {N 40b̧2p ;? !W2~p'9vsn)ׂS/ #5`¶) 9h#_82p)4jP|`a71^@jI=1wv`)/Rac;=K29*p'#ax uQ`{3~p'PzD/h9*pT ˰d9[aHaa|CNS DSeA &a$ 5/8 *p ES.܃48aE$t!*,3m}ο,Xx J|MCY  "H^bpO?#2#PÞWf+ ?)?WYGRG?SHE![w4fR Ic}Q3 oNZf0>@jJ%󢻌Q'4(.0a7RGCOP`t?/> I#iZ"djJ s?Aa _={q 71X AudaK X[ kDtr DV`X rz# Z"8G˨x e%@p 3c5$O|,PY JJýf1rI\Rf!y `.!I@:}f% J\ ^c0@ D1 (tP$&=ٕ$& N JIh%n 6uDdD,K>t#"x3)O`*R,HB.bōă^ }J"aD0j,j &.J,! )ndxd/DP$AQO/-("册p:,Ng蔌"AFxO+r,7bjO !H+& *vK@AB M0bR6+ ?elh!:J<X &1T=p`:Kb_7`t:@Z1;DoN1̣G !/D"ҏZ; W2ATC-C8P P䤨k7X}bn]26y)4:wu! @"i{$v`,+eAD&H`o -DeuJ)3xnJCP`J c6K촆~7lu0ڎ̼bP*@_Ɵڄh!O}4| 3!AG ±`dV찂D(ZU<2w @(/ˢY$,TJ`\D``C-1,% \w+lISlFoC@i#6LL%d'rs szΠɨ!l=)!ΞðoB_f. G Lph"X`nVgq"`y_Gs:$Axy`i]PP) 0 ? 4GbTt`hϋߘN ^T5[:(Ex|hIEbR[A@8f`@MzH,B ID҉$4h<@r#7uUP-DQT6]0lQ.2v{: !!<#GqTGSCL1<'7 Hb&A;ҋG$%0 S͘( DJ-9 S1~1mE70 tۦϋJzj@S]UkEE>smC܊m.] ‹#HV00|Ӎ,3%y;86&eYsqk^38s#!.أ19Ձ Q)2-A5*:jҫ*\OQ٘Sxt @ oDu[1d9KSԷ!F4ISxt2 2d8A1Gv=g&!#y,c `K.~ a WysR]K'@%1(JSEht?1f{0K%;`3=/NZּK.#Ay>|pV5ժ%# -]sA~&ZVyYk8K.rx@x> aK!ZaƒΗj/2 *j I``nz޼F9{K.z޼0_/_ |1vBqPpjX$Fh /ߍAj K!FA31LSo!~A#7̚?]4&5Pҋm%!(Oae!HϿIiKӟ. K!fbyeD-/"C0EHt51]d U hdfC S~M7lP]Kxu][8YZ2fj[#IKxz_ÀBwcS e +Aq4oשR)8=y4!?IdcC.~ a WysRĦa' +Z B0XJ@;K`yc31X/ zrֵC.#Ay>|vXjB*D.?zTBiZqn-eC.rx@x> aK!ZׁGBhX( |}hF7]y }IRsC.z޼0_/_ |1vBbIq Puhe54nh /ߍAj C!FA31LSo!~A#6܃qDM cK=bF]b@KNZBx3) F}ZKNz^u ;!fbM m9IKE% Ir IBUau"D$%a"\Lٖoh4D[5 oF<[%J)'"= 5 RCy{nq 5Ԡ .KȆ# g!"Dє$e!|#s-H3.M`Z&cR`: :qG@"('NwA][sg :ʯ9nnܚQId-@tJB8!syP(kb4#y>k[HCBFK& i{O! !G `.1X\% _ L+A įh b]Zfى]::ɥ56 Bo1/Q[,q>ԞQ fDФAxx ") 2Cb[D tɒ?]H(ۄ3L; ?i s}8qȤm80@`:HgC$s򓻷-XS4F=Lh t|S52H5 &D0L49\A?8A&QnnB PfRDW,Pԃo6 Y'kq?z)섴p;!e.BU] _B:[ ZCPYD/T@tC'|L'o=k !\ p2h,HKZdx 1s!\ŠSW=^(}]‘UT\5 *2D. Qy(>2+nV^'P.!rN4' )3/=͗NMNtRp#!zߊ^twҍz{; `f5%>ˁ il@;&3I%dݺ5@T8!002`a0J+QOՆ`~HI- 9$ߟ>9]K y`CA`d+~ۄ0 ` $ d=DΣ[Cj+rkoЄ?f ! ,EvJC-4؀ @)ц')<Ծ_s(Cx߆&CXГ꨽h@LpAdHnF9 Xܶ^HnB;NZH['' {/`Cߌb웒X-vC?Y"@j y05W$bC7GBQ:^0 HdnL !'47tdz5',%Ђ!uBrߛ)]7)JD\8 LPñɼ#avH Igg@bS.gKdQ۪;HFrb#H",JR";`0?-L[oCE'o@<@ؘpܴQӺy4Pr {q2(%_p C@Áa7XbRPwv>!0 IN|CB _1 g?ͯԓ NfCvqOA Kv<۳缽-W8(FY?weg,} dvbHb{͛-/ @b` yA*Z !' [ab nh BA0vY\0Ĥ? .~;8E 4 0Q7'~u ]d_c^^K r =9.߾.5!PE~u?)J/=ˀo{n%oޤ&${-;6 Wmm@S0bt}6.R0R'bbEF" ;)JJR")H",{%)JDY)(JRqrJW"W DCؓ'@PꟆBjA b5ןrSIҔRr)HF"p3)JJR")H(w)JJw)JD\))\)3rE@fвb:Rv}D!;/#~"90x?|LxpUC@v:zpS]y$}1ͪ<̚Bd1ȁ@ղZQv!noo!{ `.w \d.W? NwމhNjJROr- O超#]6)D\)rER83)Je)H"-iJYrERqr)H)JD~=EMJ7{ۀOQ%]$;w@g,V , `,Pp aw6')0vb J:#!'fyb<>9 &! 0>C^xYR)mUR'mHxH")H" +)JJR") v)JJorER#wRJRJRFrnP= ܢ|5PT70 su~j݁Jwٞ#Po0PQdQ Ji1;E f8V\Xy^[NYhBSnjyp)1&g]mun:RR*R[zR>'!DX)#)JJCK.=RrER".RJRRA2Ywf]I(5] xZoOhA42_|' '*HavJQE(}_bF>領%I03։k!sRyH% _]oB{^4)tsRJR")IISґ-*i=%)I#)J hS?9JRSJRoRreJ)I๭RRdǷ+&rU_{Rtsqwpw˩~v&wv%0s7: WLoHh _ sï5yqg_L5=9% Q`<C=i Lf_azhjS'_.B aE%#z$)]!)HrRsJ=M>с%F !J蹡SJw)JD\)(JRqrjx7_JFO)YZ?a<~{r*U/`Fq{;{ Ԃ e{IeN(gpby 0&K5<#@Q NFk c)KB)HR)JHrK{0 B-IƁl5 #7ߑvAG1 /a09^,;†hDb/|8TZzvHJ)Q 'K*&F2g #(Jy)ID=÷mY_@ G`&4:BaA΍GἅR AngXWpb;p2≁J~?F矺KZ2>VPu #$(F@j 8h~N#$+6sԅ p+PHEbA@_9;5Qkn ZfFX\2p@_~.-ՏgoHI}))f4;~AP! ';s9}YPP_  '(E~źV +ni!D(;l #i`P"?bb]!?}߅kB3/c69B Xo lLFр3p29bBg}|OߊZ 1At3U}K{_,6PCOΎ#r cy#:oudĀY^~#O#BGB_V:CqX' ,^ɾUHiJ"*k`WؖL~E0ow!pA ׉ T##VVF;]@ BxE)U׀ Nf嗍 &d B~F`N& 7dPߊr?T&_tCKzAr}C  lW5)%o*L@)%'> @49{vߺ@pP3rk{@:K!}z 3 x-uAP2hS4]Hr/`׶qPT9H`|OVRPsݿ䫣n +nr\$uR0 `E^ = ,ŸnX` Ĕ~++@Axpk L\3Og7V@@s^/? Rܜ>8c$*C8ycE;ڋ1(=.~"{9 +"SUR)HprJh §Ӵ)l`_8\Xi ''lbR6j%) ~եc?a?Cy5" aD5NP A6-9vqXFuRZzyߧ*[f7Ԯv&hjV?04!GdĔL9a5[y0+6DCQ:,7eco>Gr!o/0*v[6fUw 7 g N呂 ]_7 Qbu4 KYj^!a ̝'m0(=ZJ;6! <rYG?/ܟ>sv~?oJ=t^hH2"໇l&tL7Y 30;,(I@]DA+\7:t3&%OY9+d'$ktybz<. +j= !Y5F)-YzSĠ?HjR46p ۀ$#܂RhdaՋd]*WcB.h̿[?VQ%c^MW!̺sluKzO0lrLDRa5;PQFJlPh(V>{:JBwe2}c@IJ[iPo|̅+^xkKR N0b. Rݱ#f]3|f[vV+%b70rOc/hŽcS׌I0T xg @05;dðʣ o*1׾MO I$㡀PUH7ެ8 €7IIMTl VȹTڦp ._jшU8rZ:݀1X ,d=5IN;{\O)(ljv%;)w륺 'Y;rw38*XbW?X7Y p KǕ`@j s5?'c+J.)If;q4Y-ӳՕt}igU6L>)U_Դ cq6k! `.!v-tc.>:Kp㮨 9@T||i5!jtB !QHԡeB +se3/ց@ Yh(41|RFeF}<_mK:觴;ԄBH`gN冗G߿7Vx@vP>JR_dVeW?u.PB0KRC8fr%01=Q5u9(GUOѪ?}v̢a`cM&g @ј^ *P1ewW3dqsnJXJ]4m|U׆BKvTEaׂp`Piaņ@YYـ׆Cx2ޞ.{Lk>А¹UN[WⱕdIOnǺc5v\YZŋ 1:43# ɹ_kHl̲ڱm7 10 һ%U1 6<WZˊYڦ}CltܛZO:k:kuR%;ok H[L{\A.qVN~&;ғt+DUof}B 8dzJd=q qRVƉT@fڻlg % (g3qe n|wރ~Yi|1"9} a1|ז;8s;zi|Z6RSc}@wp~{2YHfֶNש(5RPOrb$va77p#0?VK䟄4lK)hƤۼ65x⑃wJw쿙qkXVU PmwYUJF FBl#B&I5)/}jB~r#=i@BspsM/WqR1֍@j3I f?}B _s܏fXILvy2Q/7!Acm|{%;s:o+oxcwn/0 ;m5󤭾m!+~77x}$Q7H 爼-5[ZPve~+tICz/z/V|3.W^H[c r%nBi&;yk X<'v!Lo)po p]8=y4!?Idc;.~ a WysRR̅ qx)Y1f{0K%;`3=/NZּ;.#Ay> ;.Ե9-K\sf)#=} J  $^j~,5I0)vÍ+vϽ pTwQS&¨JRIEx"N8-X@#X 1Ffm,H8>@;.|#-nz޼`c= "+ e>i; ,c;QJ{ t''!Yit* XbHA`~ ?-+N<Ŭs;.rY`9r4pA%![KXd$=sg@d'JL̅^+NgEQAfs3)+^{;.0_+_ %/%~c=$@hXGRPRcJdzf9|[ =)vJo&s(Dd.Hԇk #7 Ơe ;!f)]ٿ!^A ~EQ `s$}آA,,Ɂxy=&+>e :ghĄY+FB<&2/DƅC{Stz$paAO[cl7(?xd1Z-jm LR!Bɢ! @ !>+z ٮʦR븞ty',MDwpW9Rhe,s+9Pa5xeU1unڴBږhuM[ꐹC9!22`c"4EUhS@SU5UvVma]y8nF㉙rHܝ<5v+1eM]lrq%D\mZYGEUV0TuN]XX TM][5u_Y8*镧Uf ɧXg]U;3K ˹+Xi'cB7nET!̖ϝ`Vrdoe )^#l," "ò:1B^ e85Z%)DmdGSnK[bZ naNU!-}W,3&qMYקV*\.jbt#3C"M"㺌Yue]VTav]iq֛gšu&% HojPZenHI!۫ە6j[0ْjH7:6kuv@dEnJ~\kqXsV&7yǹg-( SŢ^*$in[`O H$0.LHm<}u[3R4ڂuX$p(Ԫ[lS0t!͸"-z7JfާOn)ZmZLۡ>xHF2i,F+*ir#,qLJ]>]m`d2T$%DI@j*YfWaXaymq*NEj2V\.+EnN Uz<]s߲ jN< WnZ\UY1"Czb([J}OZڮ#~(HԟwTl -$iiS=tC*}Rxƶ)[Z` 'B1Ԫ )ک֥dZ.>/ L@xN֌E$L2 \y[:qAcMh-z8Kݮd,dUCN<.BTh3/oN}b3a*]䧛`bt4443EL뺍I5avuǚyv9jm>Bdp(1):9BTlʛ"Щ%RmyT=5)%J tH|DWm ;ۭ]JudTх|*$F)&SzH3l=R$.YFF9Jr6ͥ6>CߦC!84Jk#>.ʡ; &(im4ٿoDPL8%7@0{׶638mzܣiEHԋ](3^VmUqWb4%ѶD# %M`S"TTYeDT1EaYa]q8`^!]VajFe^phif*;qRT ߱dBVJȇ.:tH}ZMFFa]}d:8ДzJMזI,˦Y`B֫Id EZíGuZ[mZͦ4Eǡjf7&[`rkCQ[)Dؕ%؈fZvlwuw[rέB?O]lwuw[ͭ3auvtݑx[᝖ʠ1"4)y_OG)9kbT3$B6h@j1Q4E5I$Y5]eU]aWa9تT}XPIgКfk9Ӂִ:6Ti Iա1I8W1J열)8lši^ª(JEGrƙ5sQs[VZrr$}4Ph ǭv}=kU abN쮉ˮV "ۅĩYֲDt}ҍ4$6VT07JGDU4o#ich$ EUQhXӅ%QBF5kW`rK.;[Yw`T2a"""I$P* EM$!G `.!yrRv1wdqQĄіߏ( Chd3> xN:NB̝AEAX1 gFHw"M €CHRx@W\V`͟ G``+~̗)CXhU~&\EtR) d2䍺# eҗPTɨ^'lC4 m(bx" ;!sڝ3 iH:t:E ubFo/DوQPF[Nxv%'ҏTYէ.:%_ŦUQ5X*p"g>|@NFSwBCt-[ʎ-3fEh%h7Ը]r;z/z/S_#s8-8gDԓ (- (fA;2Se- gU4;yp5FK~[cT&v#,G`YSׁRS B3~]R0c;}~? ^QQjro(,ݓlaVm0? 1 p0Kˎ3@כm;]|l n}xSivR8\p0 L'Zsn]2מh;'_44#`@x G '&M*kĄuBCؤP{&&M .ϕf1"6Qkj3$כi30U |=͂W^E?0אA̶Ixx#%'?Ig}BY+RJ=P鷾Ѹu MƼR1vP>lx/P56H@ 3 J`T dz 'D(l**g[Hx#^m;  20D(Hf1<&³ѐG6U%(٠ߔظQ\5ПZ̒\ !k>dX_DXu3 dN| Ch3zO>l0(Q]m!CЪ,;O]X*њpKKc5ut'2\ wG\be H_G_a 2!`MH"} `Pb~,؛k3I:JX +gn&هPA0eI"&;[C3RtIl*kP *A\Շ 3L2( TDI3SWA4Y[R @.-@W7h7D;^Ɂ*2b\Pr$%>@6Z!AL_vLfUy^{*ʠ; x3cki :fqMа“&u ?ǨMl4TNX&X'uxU@2peD%އ#qdO%%%pO.p2;=Vd lK &2!|0l:@bHӒ1ls*pΆHd:I @{QP ; \ɩKp*p F*)9ۍp0;I945芛h C P`%0n(|!sE#&aAfd sz07o|oz$LfDTX(Ba"pr  S`&ph0DH|Ph@>?bTXҏ:Isx tr@^~>̾0mS w ZN Q>od'(!Dhg]XeM&gNDU2  L ?0 @B 4iA >I_zX'DH ,2HnH  8B8"p"6^P8!o-!sJY&Da`=KwĘX`/vPħL?_?n@ -(uC@aQ`Q?,ZAc_O- gA!/-b%bS@b Xvyit#d n L :f"p5( '`Tai80i;$.hx /J@5 7!2R%w<@1 O &hHxj ?6} Tt$2ۮ+LAaqHP`S96de]` B8"p9p 3BR3H& /̋űqCF%Ih?F'Qkv4,4?mt0\f6&:y ,KaytK -8oiMwTRο0AJ "pHHECrZ Zv%Brpu-J `7rby^ \XKFIbxWGϾS4( 8 {0PpL$3P&Swr- t 8$i>'o_DAeV/A 1+7L/fjJ) $h@ iDX@gN4ԀD *He HW!XP|J ţQ8(L,ZCaP` F9@,w@n mDо0@!LKߤ wMQig@&! X PK=D# 0'%aF\? /N&P$^*B y\`1jQ}0,m!hyMBo _DEMYcZÀ"I8BI:ہ"5f&p+ "&7o2YW hhEVv %fܚ HV"W~h$C' x8*S AJ`TJU!9 `.!8aeW,! PԀfMApIe4#lP$Ԓ1#@p K`BSEwXoٰ%1\Š&*tdwHk(36C!F <(ˀKC{"k[wF 8p C0 Sd01 `7:> !(p bqh(׀b@KrI At`/ ; %cZbbi$UD ~iҽCD’^ډ"P (p(w@k=z`j͊$+<LE{XF, *s 4& `$ r% ,\qǁ=(E  d  n7V `>*b FFmad &̝H鉪H,X"F`X,7xpZxd²P|Q0ZSʠ׀W>Wi!d/ww\QxwW'|,{ophꀨR oAa$X&PiKgERPO("oM jIDmAVL&J|mh 359:b)@%M:d.NL +'ɉ^G$>&G@.K>`AF.MD LȘ%\H!y!s/@a"D`h [@0-P/%!`.S +/(J- ; PJI7 & @#pv`f5ǺR?;a~rNL77;ZNA¯ _ӂ8K>zeՔ]@5ƕZPa+C5C !=2?1b@,/#PpH@(X%vOOOlVAF)U!I]Í4:Ϯ(% RRKNC9)'q8gމM$GG8tD2h䢆T_+atU8DoaTuL)'#f5[!%gVtKB( R GCs07mG^N>\;xyu1P_`@bAtPoھ`+[c r%nBi&3y/{k 1!c@D$'oY#]hd/i f≀\1 _?ޑ,6n(Ǭ cO4Y%a3.~ a Wy!L `.!]sR-`!dfI! *E){-1{ `c&3k{3.#Ay>`V`A,`?~ZVyYk83.}AA whOi`V@8*P D 3ޠц۰jJ{-aKS1Fek{3.5f s|{߉!kAPw05!<&bD4@6 $C[e#Kπ0`,iA(` %gR%Pb:P  % ƠbB 3[nJcy4mߒ)@SA uOf!R M (ekbVJ  3ylєVk d,POuQ (%*_y"Ĝ2"Jҵ  ;hn ?  kKpa`,fc: TY=WDBUBH6q%D:ďg ~[d WSQAB6mTG NN.)%nSKAHȱ]e  3#iZDJj<:\H)ըb:Ϊ%Hzc#{L&ё):&vQaA%Q4pTSd%-*liO(3Q >3Th~谒؏rӘƳ"Z 3PYɷF\WMYAmtG`}Qg7 E-&nRh!OJ@j(7F 4R C*eQ$պCJHkSw]đGz$EDp}~)#&bG;E%LS3IoxvlIEA\CLWk"FB>f6mң ْd{TDآPa|%Ղd]t3o0+mu/F;'T褸)955ٰv:h0Gv6GHDjl;6Shh+^ĔVv"*,U'*Ϋ=u9})c):nz'&eCύow8*;xy:޻mC^"`0 4fQjr,ꦒ;y/{|#`[M(oBxIai }40+6(ZrvU=x!e<#:,03}~? ^QQjr,Sx# RpJ;5H|(>TLH+2yP0f{-¸-=&fӁv 63]|l n}x98$ C9Ofs.4̝| @`0}x?l3]߃ڜ4 t0s26']o0 @a 3%0rPJ0.6׋aěNTh=HC ϰ(Vc?&ӟtr閼G83'_7(`lЏ\`w \iP$ G}#  H#6FY°"yY'fM563 V/$ ^_H'+p%޼o~UEí+ЗBR1316SR3kOD$766< `  3Y"QdwiyyyYL=SFЌ![6f r`-Gx, |&[TBwۊ4wj.Nlzȷ .AFG&:zPruПYb91JQ ge2p-0 tG¤!@& BE:¨n{ٌK;vԅ2r l?mZ?ڀBMIDg)? k,(pP~Q /Kn 3I2~BϞzO *pЬ K H E̢&XpLO] `1*qQoPPO%{ t"yent B 2 /A!zHZ~Y آZP#@V3 I|< JS!/ d0iI:ACMws,F@TyS(MK\8"qX22JFn%`XP *PiOK(PKf2{Pg #=ttR%_5peB`S();5F K*;|rp/ρBIW qdDN'"qA2fX:Oih';x@1&ؗMx@xC$"r#U&f[*ܟܠ_IH)}y%K8`04Dk e7 H #M!{AĞϙV"btZd,h'Y3c}F.G"qaY! P 02BOED<h&P[&ۣ$j%BJ#CPHIvP=& W|lYM|QzAhx jBcA /m048T j#6>` X!`́HzC xI_q%@`@70%&tqq !32 c(W-I!~T^$%2À`6)!sG @ !EQTTIUUEUV^FB7@#M ʽzg@Yoyg>T%YUZIT-EC)PdVTT:NߐdxxM8^PsU5QjMf޴43w62ob;|iQvĈH J!RhSsv$H\wYG 5ɏ0v%V;vz=$ikXl&E 2,u+E- md -D.:4N%bU"B#$H*jka5TQDSP@Y5SMERYUV]UV#)#tEBϜj]1*#V$HenTh܄na5RD&ߺ#w8 L$y5fnw8J,^nWD(qf *؃2surKXg!*a4Q4!T)U٠q)u!Oj+Tp!n)X/h dp9 HMV9J%K69Svj+&Xؒ }Hj\sHĶIfD+`}J'v`d#22"$I$@=4E$ATMMVUuYU R(b)7"A*O )Iqq,+zm?o9 qCi}ZѤ7,KΥ9uTHRېbC^l PeǭI%9$͡bT""4"4i4@5DTYTHMYuUYYvY坑ˍFJÎ5['$jb%euVUN޵W[2*ɻ6qWqXizh5wcO ڪ(jR&+V+EYqJ I\ vY$QR>I)vrQZE԰j]*Q ьfZVԩS3x6zI%\4-Y/N$q $]._ІVkY{&1&hZVZ^6踩DaP6\kO`T#"326M2Z`đEeMuYEUefVaWaaPTiԊmdjݓ6n KtSr .j MLM屔SqRݐ#M+G,m}~zm6))Է4PGQo5 *lSt@SFڗ46a+b#!]lKұLKX]%KanbHOS싊&1714g2sn{EyL ( uI, re$iuuɕ)"[x5&BG~{̉ImƐ{sR'nRFbT##326iNӒI5YF]Umvei{"]"35%4dELVFkdbVSRVYE$t894oDe+JEkO(JEQ DJ@CadYDnȊTr 6# HmpC٨uUUIFBFÎ&+ɐqFfq6 ~ru{ˢG*NF&mn( ܍emD7Ͷй1HU,DQijF㙢6%Z{LPT*umS*魘֑ճIA!uIiȊu@`U33C36M꺎ÑI$eveyu\矉ueRͅ*$IX$݉B5[q9hܝArUEU|M䬥)(UO1k>oBD4D$R!2&vrkM(ѰpR\v0tO6P!{ `.x04 * ՏBQc]x jM& A1XT,X%! Zy q@*"r[KHO?aXG p PGAy' נ 78G3jbNЖ;,bMccs /DT|+[ ĆvL@f(+e/&ЍLgYd23K(K bBNtlWG4<'Q Ͼ - C# -9@҆:ЊOFМIJ8@4D P@V7 H` >wL(B& dh!d dz$z$ H&tD/_ ś @Q: @jIh#(h$9S~d)C'jzj8t?,n`Fz V( (!@h0 HA2hDҀwC@i% `JxÀ$` I~Np*B%bXfP\pݻ |آdI"σv|kYitte Z~YN&ۜϽ׀vz <@`j 8A([u:߄cy177%8 P$3/` v%$ PD!X"n W+{ؐaRg$)':In -$@7АDFH4C-D$$aTxKX C?S$QbwrwJ!䐀g 4 3 .w @bhH HXcHAD0x V+5..@P  10""|V )!;@l! ZAH%f~J}Q&€|&eY 5,QYI:Z8hUGIyh)F8jB V#@*@w$sC Ie)YJr`\I Ec誰?2/~uvRyG@T*$*@$Ē+1!7+|rsK`:BP9*N} av/Ħ TLB?"}p!#%  ! `.!%@"'z@7 * RkQT@0#y:Bk?@A6mhˢܼIJI 9$ '#`:; +c0y[!@r  3 skUF6;٨m8j&,\V%o ΄*莀vb5,4spWO`^A`!+oMņ|0z 90@&`'a3`n&A](i H"91 |v3_01qJ9à*Ϗ1h0dZQ;P,%x eԂ "@@e 7 PA40%p iH":.))N*=^ua!, c/Zz ̬_,ډEP(c'*Aa5 Kk  ;KxHh"]LJ@UO{ )f-*@Ԕeﴯ.:wx$&5i茡#&h`Ȇ$kӨAfCo%,%!% eMJ'htɠ!@byE#tA[4㏉TZZ \ƠdVR9|Wtɠ!&(Hix~ui@vr`0nJR_dVqZhTa!39h ?ƽ$9D2/Ԕ3&ޏW cM& ߯l:Y]|}>+|ނՕ1(&u4ϯ^C* Nf7Mӏ+]hϱc.fD F,^@Ԕno^8=%iW:|Z6sPl&6!CJ@ N|SO8{`0.g!`7?&wY<Į>%Tgs2θYY[]!>ej 1 Ʈ˺I7Ztޡڋ6 `ڨ@E 0kz(6/D>W> :&5Q7A$e. s(xвcB 3y @w*Y?d% iP 3xy?׎bHqPI҃'䆀Ŀ!HE=Lcus0A̢9Qg gUuP3y-߶~U`i_ ۀϿ75^lAn`v!yg0,¨,ª{,,Q Uus83^+ÂcyFm̢9Qfe /0;Д/ h30~0 CCiamnnqs@ɠev ]6m3\*M>p 3 QY&tPA~f.y;=Ƈ_Ήb2.d, ,&a`3[.pp8)1A%6 2k t4 ZdlOtGe! ߦ=0o.BHoQB#X@! a|o8eY͞&D}3%%L-dX@C?Mp` ڰ(~Cht:wDvR|Lĉ?܋q2`7͟7_a&h}ܺki3'O(8Џ0~1v. ?472rM]ţ'g}#W*:eǀ&)E0El`_ 9ZG6kdI̚im3 V V`  m|+ m6ͷ &&H:}Cb{tM5 b~g7, s10^0& $5)ݐvTh,͇6cxΠD@ 3YA2TM! `.!CAɬ .O#G6j8% =BX%چᲚnF}5P`DI$$`^^ N%A3  37u# BP/lR@ON< 8'>/6IHR> ?P,('c=8  iCHb 3 J{A/AW/_ WE_d %NVw,|%g~}CY29%tI0bةnf (\$s@+\z%RkGϼȢ9?#JL0 EKC\i6@ :`\S:3E2@#XLXi @~T7`=CSi `2?Ip!cJ:R*;4 &w*23$ O3n&))N'pBo$-i|CB,zOiiE5'+%‰{pa7ZėN 2Dkn$tH:蜋'rVH.B(@5 dL3pQ&WAP7r N]WAf}<*Q1=k8 3=7z Jf& RcZHH Db]\ VH#~DWFKiˎ~(kAYHlGX.ɕ y{HH4L>d,hn"ۙ C͉\l/Mor.~0$SZ5w# ]_eLw.صI *@LD%wz;/ ldt>辤چ,˿'C%ªN&.4 r̒^,Ta0d-HFK͉M00rl BfA1&>@LU(5 L*T!\}dC(Œk!hP6zCH(ie~zPl+]Bx^:atPKh ƗD \Pr P愊 (fMиh㨾9I뮺S ?i&6x}_Ė]C]w5)mW_j"Kxy?g.oщ>( / -k#KqdC(9R܂FuSIKy-߷Z p.r(mDPa? Q$B5\40%23 )+NG>!jwA8ņ1T$BjEd<*MBcOFI6C( F6 pHMzzO\H f[0+&^&Ο9X ez.Q~ 9HZr6:PBSFton8E4P58_ $B}^T)?e1#u}B͎FIb B~5'0k2 M-KiAi.#鎄B&ݳ 3QdD2۫V.שTUAm` * UW]W_QʘRSK:p 82p2 0@!i5#t8& 5>vn4EA0V( 6 \ut<HE,2pF/t'>tJMK3 `H@Ȳ_%°H* 8*q_^ !``+),C f"0J/lRI@AIęg.*qap_;`CILi4eҟm?i_ <8dPM}}{ rk5M IH%IEx~x1*qC?bn$Q(xIlIN%MP'woPщ>Xaq{q:uZ- Oh )& >Z=~*% M @='O} i$ Zp"qK J"@p9*WD<26 f|dBJroQ  Yqe5j{ ( #q0 Q 9Lq[XPλѸEM 8"qa0ϻda4i)QEA7H Ri O}Xa ef⿣ P(y@$h0#pa77 CsPAaB  !~ B_nUA*M| "qvQ4M ,1$И` ˀ3L-Rrl0v`(nHk&#k" ۑlPiy!7rh@ftm[ ,Q4XfO6%l@RRE AG,4 손ҟIݾs t~i݉SCA HOP\ ?TCh F'5 X`uŋaS^, t5$HH,œ!G @ !,ٕm4 MULyGNi %iO%QLLMVU7_p1rEYݸ-4PN\婭 &HYĿnq׊4uN tYiYW&9";S7jmdRnҪrMklYKu NbE#4"CFp꨸RUEaq؁م[XCkES 6vݍ&zIш*2Qɲ X(BS[Qkc[8*9wlu>!YFUfQ2pY©A6-#7SZ!RV-QݸI)PrPP!RIuƺ $m޵" e67f6cHJz|ȠݛžnI^p<\f_԰餁[I#}H"%0)hmM#@`c$"2#4䌐4PՎiqudiGfաugߊ'ي#BۆkHޑ`DL%IM46(ёa ٙ&uz&CK&LA&z-Y #*|(ϛoG!NG'zEAɒČP7F$pqƖeeq EjA:vW騵%+ 3LGƪ6$5 jqbZE[*abpKs:Dhf FelIemʈJȎHrrKۋM苘 3m&dNpEi2@bS4DT$FiEDVQSU]iq]8cbECfÌN,)*R6rw; F ޶NGc@u{6F׆:+IiifaYVD=.5$dH֨5Y^ҽr-Q]U xoUfhQbpcV^GՉ1ѕݸQ-ӡm6TMzFGhfLGqNofUx9\uGӬC H=rN-1m4M6S68NxAjT GBN() a:%x5K0!{ `.q`ɉB\5?H,_58{8 A?O(C'ߓId`v([O唣`IBDW/Q}.36lR *\GwH_y)nD@52IT0>&E!&_p0t#e$ť}l@ 4d1ì>K CC[h-*tXԀJW45#-鳸l `8$~A7@ " hzdވ@D]|qk"r*A7?0OY 4ɼ\*!iP fr40/4۾(pc*Pf{B;}@Ha%0QAdBtL)=.SsuYJ{+ɜQ%~w @w' ! MF- 4?h^%IC vZ F,a$4438I!$3sA/ KB"-3?U@ LJx$}PMw*r<?Kt&Ƥ .Hxi7 rJ:NHA-Mp +h+/o {{=q,jr|)K[VJ+0C$ +bX*tKN IH (XDB0>Ldj- BI/;)Œ8"P$)phE|K~=}Y9GAIeH%QZPrdB@Jp>4a 3@00+L  MQ,3W |m0Q$g'7hAH4 t$^c`P 9C_xJL*LĔA L5" Ұj׀uαt2tUSPdOmp!H%U Tq5I N-2!Dr[g"A“pD`(LB${!6p #To$<=b5 KDu@xG4hoAJ U$5:fHnC;c t)P 3eeD@:f2" @:&>!&4BN| CiΖfλEډp߃ fQ{]q] )TJD`Z&#K+n^Փkԏ} 2t 431; 0.1#L;|5F:Gyֈ2L`5:4Qa> R?(VUr{o^Dž+Rh5&b&i* ""fC*gJdXP FBCG P|N!E(~^ރ.K(n:HGsQݳ_gl3WCc Dp D^7Zsy ! `.!}j[dp&3׾;]2qCxh_0Id0̇!٩jrZ!ƒi Cxyy%֩iJc#qGcziB1~,0C.~ a WysR¦%izߞ1f{0K%;`3=/NZּC.#Ay>}x C.Ե9-K\sfQ "~Ne5ޢHyْ7eIY'I$4 ٣ZNH,$x_ 1Ffm,H8>@C.|#@5[׊ <"$2`" !j \_:ذf]A,`?~ZVyYk8C.}AAAxc pĝt4*mRjs," X!9.NyO+(=x;.5f s|GLZ `cRt@S æNH%6 a> , 3 @e P0axx>j F!  ;[nJcy5#6~n:74Y jsլ#sQ1Y(J3, ;[n}!ID"T0$|W-Z&@,>B{ -#(Fg ;ECf-8c`D@>ZQ3G#\cV ;`fTB:@O*@/b {c#}J@=ivC! mykߓuCjS*e-kq+63)U Ct `6 CHaauq ?m! $ @El -eUi,^&g`jen&&Z&y-Kӗ#G ;~!32imap  Z:I)i@hhQAr_?{j"q Y%ڎtncSzݔM9t}56;Aʫ׷TbZԁRrX򸈍C!hs"yP c!4?ibCH M{.81~^` knJMN;&kZܴ8پDwt0jBNb@ x۩Z&rK 0KwzjjLC\<;z䑖0]>.>ki;xh_0Id0̇!٩jrZ!ƒi ;xv oT-f8A1Gv=g&!#y,c `;.~ a WysRfJ, "B7<<ĀC@sHbc x`LKӖ=x3.#Ay>$ 7I%<:,oF Q1KS1Fek{3.5f ! `.1Uqs|灱5PRa4i;T3S{[K3 l* Ek(p  /ߍA  3[nJcy5#6~X z ͪp(fqE I`H=yc 1F+% Fe 3[n}!Ԓ)pX`oٗ;I%|5 Owx#69]҈1G\Y+J 3PdS ǀ 8b2lW1c@F_G4a'k) @ .k5%.wPF52dA4lArbОߎ$%nSzqfc0eSd Xe1 ` ;Ќ}ЗgAw. vOb9C}]e^4 \i&F@M &0B^zORR;mXH/T {$6Ú.iJ=%;e$EoƏk8)Q[jrDwyG ;~!32ima q%8H !D0.7,̀n%&&K _ˡ!u0')G jyC1Ƀv$= J3Wg D`MI}s2֩↤j絩˵#kھ;Aʫ׷TbSl` 5 H_)mk' gH)hM=x k!Y/˙Z! 1iؑ y˘>!Zo(Z3g;&cxپ*ieP5!?uCmC[XU8i> y{d.zt-2yFckK0AH$r%Ki2pP*5:d  ?^N)47!A& AM[R-:B6ɿ{rECsrN p*pD p( v /䄑0 C:p=0@0 AnЌsDW@1hhiHK>7+H ,n p"p. \@4vH\?5$ae BpȀ#`w@@`<(flY4VG@::0O !Z2yLdPj;)I`OM (N= p"qA\XhPix0Zycdj]BJV2ZQ!rR^d3b5Zw> DqtHT($ .Q%,@tKF` 8BR< jU6Ì3 Qe &&!.52QD@4XV!rQ7 ~͠ )W@<h,4tr` [@6+'K&|4ܷ f &%$:r:N-<CH@U8RE@V$7jP=H+!!A$$b&?0xWD !! p#h~gМ~j! qP# ks}F*3Fp $ J`$ 0(C o)V $&VH&^_aމ@%~o舘"<dP*@ - [M[+ :@d51$ M6YiB380 $48y@ `7(Y\iOg F`Q&2&rX NQCt_)a )(`IY/uLWJ1I|n=+!"(ta߱މ1E .U`\|":~t=PvfaV_*:RPC@~;D@06da:H@&A04X^5}RB%} GRBg-1($ ! 0{3OA"ু0K߭o~ Mg G =r  #H444`|A?"tL#y8D3L1#x$~؍1!' =Ob=j+p R5R/RP1#L{QDF4(t! %S%=7_ p_4,0SOD*&B|QiHj%$![G @7!*A|uE N hn|ѡ.V rCvZp <чoEPj~CKJ]kdzРQ)҃W"6uД g=&%=B@GBIf0S@P6V!`H1E@ *s /#! &Ba)(, a, Rh3d=R4~L?:)xJ0p >,"{- 5Yu|%vP8 $/B#RJ/_T3y.E=pa40𐩃PikmSь.`b@I x.O=)‹(!q2#aCP]TY󾷨w*r<#k! &dBr1$ZNNe!q!$pGInZx 3"ÁR\h.a'J'-_:_jBCxM& 7 LC@rI°Lľ f9ha9B!@0XJ`':,hq<ژ  ZPbd^KxI:d :"p'QQ!G%m}Ը0 PL2#WK \y*z4oȈa`1)= !3G @ ! Nm`T#3D#9n$ iqbV"B4$&i哊 ӕQ%YmyuD<ƉPr4کS(7Ʀٲ`sܪPHu9}wVkkiIZ7II.bu ^PvY,ɳv\ӡqܪE N\ۃZef^mA-JV8h42Ŵۨ2Ehr\&{g| ֩9%a|ϟ>|xkc>@^}8}ˏW!5&@ʳL=![.P$-B==?I3a ׫(i1S|ON+&zgXHdn]QmFwHR/@Viشcxf 05ƃÒӸ٧vJ-%<۲Nؖd{e8Di/GzQ49"jM kPWLAYH)Р`T&U""")85A$QQeMUaUX]eٞZ(ΩS=zLQV|Hm#LZK{Į'8&1h,5CmAU?X|K[t{#: SC˙!F{ `.!ս?,q|;'}꾘Mt8I,eȏz(*CEe%&Hٛm]pi(X*o(' BfX^{w[} L+ !`tSˑ" 2 3.Ե9-K\sfQ#`dL$!B1\ jr){3閐yv,A XO F(Œͷ'H3.|#@5[׊V_b~P2$D>HVa 0O1h ^Bt|4Ϸp>䔘bV4 ^)@HCA/ iZqn-e3.}AAJ^`0x q+Кɗ.UkE@C`0Yee0蒓6aX}h! BR7: H tXϢ1@Rv{@1KS1Fek{3.5f s|!Ind4 ˢ9QAG+BEКSD?tF 1AM2Za`>}B@ 3[nJcyHW'v'l `?חCH-%rO(`7,!gߢ0a`%cBQBQd 3[n}!$$)%Ē<5H‹^JV4*h@cP̸\u`Ѳ! fߏ`J4+$qfE9V3jV 2huSC-T3r8o3j}jvRמѯ~Z t>6 hƔ:q&%*/z<O9M8IBmZ lm] "Fna`V?L+а8d4dnX @ x~6 2c$l;ǁ^,T+3WI'6A)Sv@t (! k wC@)z0u>NBZR*CWmB3O</!ʈ2v!)D%ގm+=+)N7mġI3&cxٸQ f iKz zBGz#GcL@>]#ȡVSPK+0 8&% Z PKtPWL."1V!2]i3x{.,0;5-NKR܄!M$3{^x <'E`}v!Y `.1h9UI:}VpQYɧAƞiK'+.~ a WysR o E U ;M[x|vԅ `1f{0K%0-k^{+.#Ay>I6YA XO F(Œͷ'H+.|#@5[׊ n:Bcq!w%T `\[w:aD3@H5 @oL9l TG `^'ҴX@P &s?`:}4?@4e`6_!IE +Ќ^@~+(-Xп)Gg{&Sͷ]G)hB7J`FPs lBR*@>fB+!.Ip )y(40#;8 ? Fchmk|!ԫ>2!^:AdSu2ӌK<53*{XHi @! +~!31,OekJ i)$Ol%ZY(Y)7ȘB_ٝgVT#1'p|}bLEu5s F"Њ)Pgfy4IOT}aͯOZkzJ+Aʫ׶Dބ0Ƒd DBfYV#IbRQZ 4f! D\=G@#Pi]fQ= d)|3 U[!oB/[%8'ˮ+&c|ٵr^v$%QD~ 8띙U⫳p# xB P}U <;PG]]@ VBJJR 3P5_GW2 ᥡT)pE7((Eewco D;N))/oN \% &{?ڊ犂^twҍU0 CH#u?T0!4%۷ݺ5H@Mi|0001=?e4 dJ ! VNH`ӾJߎ!Hi0 Y,b?3mP wbM0 II,j +}{G8t=ɮݿB`*䀄0he) J_/b!l `.P (Pv@FR}~M bBN: 0 ;!g-!'cr-z Ta8 r i!lQ$ 1~2nHA`Oط ud8HbBL1\  Fv~+Tjzp 5!p 000P/v< CB "ІC <>o~ntܥ)rrEB5y\i9ؤa(H")4%;4",Ҕ;`0?-L[oCE'o@<@ؘpܴQӺy4Pr {q2(%_p C@Áa7XbRPwv>!0 IN|CB _1 g?ͯԓ NfCvqOA Kv<۳缽-W8(FY?weg,} dvbHb{͛-/ @b` yA*Z !' [ ;.pht@L 6%%Ig͏4hs߹:,@Tg߁?ggXh(O$n#:_W[gyPLvgw!q 7МĺX(S-z0 qA-&ܠ0M}o`Lشv!%+]i1~׍|3)P~ )KkgrrEF;';",R4T‘D3)JJR")H",j)IERaJJ.R\,'0\b6!'o OHߑ.] GlpD0ߊҴRJRҫ",ZNOfRR.R\)QbN+)JJR")H(gܥ))ܥ)rrϝZɀ:GHjr1@׀=6F}|;SIC ?TAYaXi5?)SdԆJOݮ|pcoԾ`;2<, 8H@'m=Ȝtx] R]R)JDzE)?OH")H".R#)JJR")HZRu{"JS)IGh8bdԜwɅ /t Z7;߹vy4!uX@`vPB/fcRֲ\0(bNu\N ~u&>j Z BRCjO>)J vaPzeɻd8+jrJ% LjCƾMF)JD\))JJR"6;?)I<)HCIh˹JR7yv L JԞF' %hGdN!qGUI/2`0oI_(`ag Y^a#'Ѕ'-n˸7J3 t~5m-|:j}Bg@!r ݒОR[?4~zgs0zP 9Kqw"HR(0Ԇb\JQf~qcRB!C(3 m|P'(rm` ݁HɽCKC\)rIRyzR)IF(>D컛 RϹJR!,:2îS҇ x\qdJnö'vB= |CQNޔ1-{]I+`k$H`bHe˵9 su$y4oyF&ouϪ8ßS`DŌʺh,  K|_U6B0'$PZqE0t`J J XE@Qy ! `.5p\:@Yg:ϻ IJ<( N)CҒv#sSڇԨfruPO4tdRro”fYJ~Ӯ{JRCgO5c׸_nG\~7r9Ӹ_Ş>}a黛<>qc;zQֺ~3p{u#Gr?HVp6O#%εy紲@J;/f| n 0B?'2\Nh JS$w @(-$Pn`0XaEM4oA4[ce1@Qs %ov I0E;'n3xv p@f7w%0XRo9.@PKYs_] T(03'qxuE`Q.^^֡]=)(zO|u=;C=)cs=)O ܥܥ&FuW?K };>xz vՎY۟| Mp#ǑYg=,-|#1/x?i-k#='ɣ_Qp3 =Ӎƹ; CPIBt1kf !/ؽМ߯ߎ{ 10 d }M&>2 &%jIP(Lc!s/|1Kư' :hMOۺ{߫y[QQcB#ܘe'>B naXW/ܐqT_! =qm6 +u2##l9YWҎpb_?+Ru"hwGzA>)nlgJQ~/:|"0ac'?yH?OgхK,  ȴ9qv4GՈm X lMY;K;1?{LE78PF _7II uߨI1m jssBOOL1;$\Kf<+ |cqle~pH@re$^E{!G `.H CҟGnjJ @pjrs֠* Jw{0&w)!P߂sbRS ҍ֜{;Gx,Tt G w *PfrAXKm @%jq5J)%ߑw໢7@DEa4nRrp(,II@;RĒqy]*` }B 04$"`CJ@|N\!ŌzO JAdCIC 0 ]tEYv`T04I{)?h!w`iba v @;?bBRA7MWA8 a z>b4bf␀A AYZt.^EKx GBIE H7ܠ p`f k:Y/ 3 ##.?)JOr,t\zR0}R0+G2|Sl8`z8^%|ow҉ ~Nj{|%sI4wvRfI%1|U_&("/Li(L#Z@@@hS˨$'0a a%'½) -)ퟶ;\2C S )`&!njknqosa5'@Q)&:3E{i5#CYĂs.ް*c :U}tM QU*;,a\]H%@;!{ @ !U~D7"+20Q]wU#O}- MP2 3:;oik2,D8#ŤY܈6\zZCm-CÑKҕ9z:9MLD@7ژ*][ 5TUʊ)q"2MDrS7B4o!^e)ZqԯS[I+rr|AaZi "饴!ufI!T/(HSR&xo $,EaGbUXbS2"426if.đMfXYmeevi[mayǡ(fݸi_ntWpn3⓼5E5|Z.UdZ䬪V\S-)ښ$d*;&VpSvToRB' Ŀ IW>ހi04J>wbNRAwuҪ9.m$p=ɦH hA {@qm ]/Ï#HP]RQ~Q8l.Kڍ!dL}l3pA\u((ݷ~~ L 9ʺF %1-k3V (3aͺ0Eپ7"ec߀֩!]GHCD$7 缯b6 FRy FhLќF(wͶ2) }iZ)>뀜jHDāPҶᬒ rhoGNCJ &rC&SBC?A,o̹vBI,XQĆ 1nHDħ$4MA1#tcx@1zBbY5=b ae+cLg l8]h j(a*Qe!oCo1@'& i0afHI;iq!uTi  ] tM$r2RP(g3;x n?% ǡ;>; `/"ךHBWW wI5Hm/SfxU[,nb2bynyk߿MO#;êmwr7O>(uoZ#k{ɽmy;[+_Kvx ]/QԻlrC`7p#F՟܋ҕkI!ֱxl5ε_D~\CNLߡ+~uR&R̵}ΠjI|u/L .5ߞ( 8d egMg2CCOHRi@:l* ;@#-ٺ\ԯzПӞ-#ԝXN[]\ZRGMq]1+zyN*: %f8k!ƿGuwB>sFg~R7?7rqet>vѝGuIa%|,L=s=@i{S|Z}95! 3 ߾e|2fFKOJ:Q9iNB;2u-૷K;c N_$ӋI_ JFB2?~ȇDѦ'pˢHn: ݑKUI3: [kMYZ ~ՄIcrS?;$%9MÇwH:Т7%): -;nX ~+?#rDl'Z=K! aA>AY 4Th C@HebCr%%-Y?}u @$%w)ʭॼ'V]ħJq)A5j}ѝS^B^)Gc^%0gZٽwt7VĴ V&O{:7_UJv&cO܏d}vMfGc@01Sp04 \dihw8js'~̋oBpd2a3B/f$ )3pPԻ2E@+{<__'fV[J2fj[#I*^{n%w$JFgP&또2~O@T`^TlAF8A1Gv=g&!#y,c `+.~ a WysRTЈRa4'nM,4*! Zp>~XJ}pC&ݤ k-1f{0K%0-k^{+.#Ay>! `.!JLKIE0[puX_"CO@"Wʓɩ\Z<KG9;ЊRuH$.JWv  S  <`?xǚisp*KאB?( |PBO+O\H0$ŧ]%TN$" Ćha/qEȉw tCfZCKLKB0k  nEyp`/L1Z8+/m)X`^x+<6箜1`&: &4Ht e_?zf( TSQe<) b_>{ dm-@~tơ! +Zdܫ`h6z,9!`t_p2q>uA$ w Ё5tH%BrG4^Gi 0\kŀ`c CxVi $ƛ, ش}2h, 3-&.9]e-^`=n U;ݷEs|ӰTjiXPҋN91 2i`hQDHALr"U茉GQP)=!'ZQ@%uZzc:;+.%c9F4h"JXo5dQ!8)9 1ݳFMߎL_55 i lK6#ij 'e'q#>b6dZ[m@I 3` .bXJCׯg :@LrQ4d!RPh硭 R@i<PcDaU gJAt@Šq8>HQ7 8} mw|ąDc;xU80RT-8p֜K6384̫jY4PKC8M6-O&KٮCjLT2Շc m؅&J5   ͯE^6Kf?\\Wf2xӑ?O3&f1B#pd4>&$1ĜBT=Eg `?24&I3$6k$gtSGmt Bj+p`*B}R*&XY\ 3xz6>חUks0̃Hve"[AΪi 2^{nD ( = )vM pfO^HYO(ξiuK'83}~? ^QQjs27KFxn9>Яy_]L%bK33d 3iyoW%v2zp.v{3]|l n}x! `.1h9V6ǒ+'ow{}#W 0Ͷ(Feķ'k, _x3]߃ڜ4 t0e\^[ 겐d9R0S|l|pfmdE3%0o0Y ͦ|<B` We pncDsf]2מh*I(`l?(G A 7`0I,k-OBV>Sw߁(/*O&TT2sݱdfO$[MIͶ+ V[JV sq<6ӧ T ^@)$M%(+ Oj|" 0,~z gPzr" +YB2([Mxp46cLeTR4I6!Z0(AHdP1\ +Yvr #7 !UC1吷 !{|5): a % F@fXοK J@(gG$TbOAQi-Z |WRaDc1Di$}AI$(ĔY/u țaB7&R δdd +w0 oƶ/ 1 oitl|OpE_ Bn,6)>&qEQ(X pG$5 7CEb{ ?+BKʅ-) fw5 ? C$;<7] ;+PF 3!]k羌H#o$Õ HN:+B3BmD $0 T4i(>O? o%F&B3Ub6HL@- HoJL3Q\nXUݛO M Qa ̐ s$ 3ivQXEFfzlp D IcM \huwNބ҂ cGR a Pj#X R*qo*c l2E"^K)3( 3%y9Rgta 3Eaɠ9Xa#} o!$j+D#l-g*%MD`f#A,kD0ؗV@G#EsR6%#0/!|} t|oRe`.p+Y'@ޱP63#S3v+W;:LU|# nꑆm:4V6BgafH,A7>}Zd5,:ӅЫeJ+Q>|Tj*vOP;͘8=\N0r"@*5@>YBIDO Z+ x@ s n6춭_Y%@쥀/R9!O4a|);mVEA Pwn t3z! & JBǞwP"p:p:)!vAet ur `"$$ȡ=B51"q:L!tL,CHt>\L, rIS@3<0X1`)*@2*xA&ҹYkĔbV52L&Bˢ!@ov!~&F&$9HDuWQh B Gt'>s"qAn  3L&%_՟ @>|M, ~m% Gu0uT3rvOR9B B7a>MK]]g=  Qļx!G `.hwz;gɤϸNw"0 )1PhD$'PD-/XO1/00p _l`(B&j@#o(g,A'p"qJD9]ED0 \݋+&j+9hOU! d>+~b9`,GZ Y=v=ԡOD`P=ٴX/#←\P .rd;+BPEJ &R?AYZHQOfp->B Y{ EPM!@h&Mx$~JR5)"qo!2\ҒAvp J%R=nL! ?Z @Ok|ȄZhŎfCh"p߸įZp Kt>C0Rϓ`&C+!36m2.p"p෠bK{g]&-d?!'J|@-!'fcCy'+Հ擽(y:I`BCykƀQ:CL0(` 'D GHV$ˀ0Z p "pH@;1+$N\"b0hiA"KI =0 tA@'N =}ߘ R -/`(4He8p@ ihwX@dgg;0`$ 2•҄ NSW vNQ07 `MK Xgq@7+!9$؜G0gq6&mܲR o#<,EtOp<_# !r5c1'%ګdK´xnO%>?O"=<=!>8jNJp%eÈ1s& A%պprLo7["(آɽ|`<@H!dv$kɄāRX, |c A?@ ܟY CRV3^񽰛;/;LgWu-[40oV~- %BC(ݙ{‹{:6{&~O`0Y bRu_( t|`$t3â!)ThID_CDD@F0И4Q 5?t0pcwW%}Q0YsXK;HH̤HDG$p$D)ۑpĠt A$Y; *?V(b Ph-+7;A^/Q?vf,ߩaDJ@"ŧ "pD$ L MrCS(kwFN)8p}m`8h `(^p0&{9+&K0ȡ K_D-P Pb Hx ,Aom[mE'~ۚ*0@Xog/!2 hl& @`m'c1< jXS “НYDaa(œINP %xħ~'^K*tƣY rYIdcRqk4BTo&,\# p u-΄Bw6!{ @ !8tcN7?dqFďI6Nz[H`K,I Iqw|8'@`T4CC#'R蠃S=4av)#u[ui^H^X=-U8서#L:t`UV:i%42aɈoqh\/K$m]F9b49*"ڕ$ d}OϿ*j(_(E'4_.{ f>1SȖc[Ez v5S}6gxK>zŏIΓ#q ]K08ՔRVm+ỏmވ_ffTDX/CFz͏=\tyP\)bc"3226I$ ; "P:EQ,Od![H@A`Rq4($r$IFx4(QD> `m#d͏h+€)ߝ %;5C&0L( !͊C7# KeqUMv_m%уRJit ;ҐF4f˾X2_&'?>.=n㨘#0frӜ󆔑/ >vUB-L;!'ba DԻRt%<ŏA j%hDI2&b^$Y,L 2\duRY\:+JGH"l)IAlc"4V# a7?T :?`*_{%Ryt-%V3J@bWZ$Nz k4i|C2.+ΐ BS̭* PB! l`!ҍ?A7~Ep018K <"n"NoAE)0!j|K0}5osM] y 'ވ?VNk CgQ(ӆ0&b1HdF`6!a/J1ѭt*p,P$KΰvwbrR`Dt sKHM9&AXh[P@TNE$&|;5C9ETN2 )'Q<R|S@R,V zJh? xst;SII0?tZ+@ŒH ЖW2φs+13k&U쑹P_g4)8~bPn:& 4 &Lcq i1y`Et#NcoYդj U3"sOeuGS܀&/!=} 9v(WU[] Ʉ҈hݒ-CSR׏Y@1 t/w7|gS sPqNX߱3X҇:Gk¡9:"LBQn?T Ώ L9/'Ͼbm']5=i%Y]s6ƜeLW)(m3B?=φFUSЄ|x8*` r@B(HϓE t pbe 1xw(tgF)O Cz o[ Ux%+}z!Z7 E ** :ANΎ/T'w,UựrT[-n-gS E=PsZ v8ʲc=lϵ3'Bje%㮢Qle3~ +%aʾXCETiS8ܒ 3{['Nmp 3 E tm0:?!, `.!KD/k%2Fmm. UǁyM EY̶xAAii3[.pp8) &DD@W0)-(ZWi,>bo$V|NiCH!A 7C$m`詒^n2 WDb,; Ѽ֜%Al|-yL 1ȓ#}3%%L-nA,,tfmy,L$@`nP&酒 K@P3I,;jCsx xio!2 v<MAGM)wkNׅ{l=d h i^ 9eVW:e](܆?gJbgބH/|5= A% fZLI 8JRQh  =1:>KRm_EQVLV_GgŦmbn CwUTN  KV@.TbhmЦ:)#Kɒ ȜIkh\jHB EHOURe;u i4`JK{[']MZÌ3 EȲB3!@ `.1HJ6L1A f- >yC0C362"K%0~-YEͮqh J/!:l>׋U=%`^v#= [(A0zF  ?XE;^0/Tsf]2מhK 82!"R>Lh iY} j 3~aM9bb㢁R f##O2[EI4K0Uۂ)E nT RF0LaX^Aӿ?d3G.9yP%Ԗׂ~3h9  K ۘAgǃINP]f f%- aAoD@:R#7'\ K}#L'L߶H'~"ie$i JE&8Qw2B|5] ̻i('UZ^@ Jz)li0BIMLMW$ˋ2zfуw#ϕNHJ,*j JHˮ\Ub tWB7Lڔt&5N{7qK@RPtB!kYIFoBSzSYIpyuLmgNI$>QIDIψDqR O?)ҕy~:p0P x5h>Dp ` EtGZ+a @P OKB2q ;"\J@,0bIa$87躢72a#92qtE1i dW$o\pasD 4*p <D0XdA *UDLJa'lNl.p_ϧ\4) "suznϧp>&©s=p%~ŀ DKh` '0l2%·BMNNd҃K@Z*UB04 @vC,IВҕpJRf~K( = &YP@zA-Mz3 "{mY#@ [<!SG `.!i,GP?EaUOg $PQd ӫf9óf 8@T5]dŀg,5DE30#xfXv_4!'& 8!~lKDFF,$ 1 /4RlZ $CXhGj#.сĮI&2'*Bt4q$q% Ӡ. @2'ʞ 9$$J :v@0p p #zh$}Y;Q ԻÂ\O@x| @?ôRGKFì>@p @; a45gB !̰*&` i00Ԓ` vY+(T-DВ mΉh'֩QLI}nZOXFmm'cX"f#d:Id([ FQ( {>٘# 1&,3 JXZ[D/9lJ6hb̐0ah$#A`I0%Hl >m!ƔM(N PuЖH>\m@d UD#eֈÁSX /TxW԰&N "15୯]geS߱7I*] rB^ $Dv}DLHрFscB+GJ|G9YTy|zRA !'N> ŔMFNq!+J;/A_zJJ Z1)Hv{;D 5m m_Ъ##_qS n(GB։$0. @"h *P& `qCP.t PM@ .<AFBPX(,Z' JPI.)<N Hi4v߁gT7p0h᪢Z,(^dL:>^@ũ)Sj %Zi8ô}*h '_d/w:*yl`+ s2萂&SizA`#4%ГWK7; h;Ēb"Hu M1x'F\t$mx4`K_H %#FtYrSd;p?Q$UcK1& =.bm {*>T8[ OmDb-2S2a -!-#7 Mph\L J0`ŔMsERQ87 f|>@c7$'0 'H|CKGt5.Zh*nh (Ii378 P>JR*)9u T_(311}>N`:&D@@P>/p ِ``̘ ҰӀP-0@\B ;!lԀ 3/Z`C YnoS(ğDQiv>bF>ztE$7+-ѫ ]BG(: (]Ղ3 hSPuSh!'ŀX%$b&G(mH}%Y E0t}$Ԛqh Ԟc&dMj4N FK;ZYY-8>fat¨hbrPc L *}:W#פ1=gYKZDCp%iHDR)c3E ]IU S qKxyuy!f{ @ ! gHd*tU]満kҭ y4 `QUK.%nv&L~̖tc=]mF&#KqdyZ6#mN ZM]71JI9+n &C4e*zNf4FP\dK#zGՉm:$h$e6:HKj؇Yz ֵ i} u0( Pj!B5ƃqAU*!Hbd"B43DH aTIDYEW]q^iT 23*FDKZXT\ũ*IJ܎-YNBKhw+4V+Y,̍nsM!؊*Ƃsh[gI,UvHWo5i(29I8z:#ĹW["#N&36pឭer8g5'gQm]2:+ވmA|ێGSh59n]doJF+e-QX>r:Y1OU(`t"$D3)Q QIVXiZem_%Da"DYlJuȀޛZ_ZH~'&Crْ _ў(ː}Z@"zc}pX]EvhqE4XqI\L낲YQҒ 8H#?K#rkvIaE W>TSOiҰ4ع^ʃ#kNR[ۧjK55מZɶmI$j$8C(*uSǁ3RRܭ*a?Df-1fIX+TKYXSF[i3xVBRbe4DCBE IE]V\r'y܁N>/":=L㮠~T;1:;qQim4a&\n)1 ^x Ȥ$ LE, {49,Ee; ̘jjA:& T8oG$nk-F.jU1D֑2@4Vjnu*2as.!S7dD-$idlXQ}ܨZ,87Ѷ0+*)˕Ƹi4`d"4D36Di V@R=VUueZ~'azXdZ wF no;Y'd6 П2R īQ`j.@ADv$T„i'kv,׉A>!(eܙ 8jg56hiEBl0`ti&$"4ӷUZ]s I4֪n.@LQτ,sYi$['OO9k7K %e‚YR69(ݭDZf1 ޕCBPJjj #8OB,cCp& 4 bT2#"14I4<@Ր8QAe]ReTMU[Yqm3}lA|}&i\o&6wq4aEӛZWn='njԮD*/XmqYY įԮ2 kkQHNeLB@Ef+UR*BFT\ʜtEhC#鮘 MZ&z>uGh(}l((nYfTQikR[Dę8:5ϲzKS,i:CvKMېi،:y-V5whMQּ(bhߊ%54&i:0]HS`D2"""$H@+,4A$RI4QVQu5M0ȓ2qsV&uu5xpvCH:$shNk>Y׫J[kHU}Wbt'/QDU=X4ixNi%۪ؖb8JL$z.+P`ZMx╋;QV2 S3F*G{>pXMVAٰsuH}u!y `.!kZfCԵ9-KrcI4Cx{C"V oav8A1Gv=g&!#y,c `C.~ a WysRNaE^}"]חMܠ _1 ec \1{, ` v9kZC.#Ay>}x C.Ե9-K\=hZ81?O J,`bUYzpg$+\'pAbC3mbEC.|# ෋yosyx6 E.6a=u  vܧ0fp>J'abZ9C c B$)N A4Cm|l.I B_:̚ Hw0JZf1$dk['9pC[nR^X/`W4 x$d-Ԃ,`!b F+"A- FSYEdj[~p9@ C!F1cl2G6pf1Ь>@.|9uCBHAլ71Q-o!5XB. C~E{o3Y!Hb g}E$ MCD:ķ*>Gmӓ9 C~Eͧ~\SI L$P@oQs~M$@ B'Mr<ꢲD10ǹWӈfArLxܴ CPɗ~rm2/EP@UCR_n}JC%z>׽ytjR,x5)`<沊`HDɐS '@(E *bJokr_zdUCO!$2x^jyh~*vr+P]r P y?`JQeb{^ʕa^v{PC8C0U#3Itzsz&Cr!Iiк,A9CݓKKףPQo(iLe#+9CQZt$ȖCxyuykZfCԵ9-KrcI4;x{C"JĵyDڜ.YF8F(Ǭ cO4Y%a;.~ a WysRN nbU2 !fIHdq-o* c31X/ zrֵ;.#Ay>ly䢚v,Og=o^Bk@`}`/;.Ե9-K\=hZ0a+H\]4wZqiCB Vp|qa ͷ'H;.|# ෋yosyx6 Ft6/vۣFǺ&r*)Z_)9g(Ƙisp; c B$)N A4' b' (cY 6)V 2,-C3i2i浭J8;[nR^X/`W4 x$d-Ԃ,`!b0D~ cd @)#tM!$x "h.VS>h.|cpXVKܖz- g\ KӑD ;!F1D1 `]Ġ/2h 2d\SEn:ǁ8|b F} ;~Eys)e1P-v* 2,5lCƥ"*uo"5h -fỴ9g5 :7O_! `.1oX30x@Z :r8Pcsk34R HBLzhhT!(_}qމjTڼ罆X#$rU]rԎ1 :b/foɫ1FCΉi}]AIPW9QH؅0,j },9 $)P4 :Om%6ؔ8bH AڲFKQX%ѣ]uizq˗WGCpytId~JF-J= B޷}^ =ł-4|&aHVat-ct#'T`/Pc`;=8n. rr(=B)jt4 (2+EU0Gnj*_ =-_)^(0aKGEE|ou se8԰z*o,Mkؾ-7B:܋ӕ#Fix `|u !JyPc%P q[&mC6_\0(9Sgٍ"{L,wTHMM*0S![UU6or?7˵72v뾅pd}`$(ڑ2(0(b;1 xb Jz`iYh'*pK7HtAD`%dEE@|b5*p!ZJ-!莵NC/2) X l85 , pV̖G"q+*M1!t໌ 0ꏄڦP2堐`S KE!?CFQ K&ϸ$0=o'$ ߸@]ƀ@M$@:B p*D($-N @@~"\r`EȃpbK!0 C@ &^B,j2B`*C&R1ܛ&@R$Ana4CI1 ۴KJ:CB[ ieH4 ## AcK-'pRIIPMAx$>!ao &!h?x$3놿V*fw/>-Z`+ 5UX Y@*0 t@vZcwNHagH `i-U#ˡ+ Y,`2y`P0XA8 PhӍ`o퀌 Kg! `.!5Mbz6'TN 3c0$~0&~yYJrGx w!Jӈ)Rڨ$uR '.#-p0}5ېx'đ#ׁS%~j+ #MH|9k`Pu1?A01 Xw)l3 z&>`V!!Qƪ&SD3;0luC Y&>,L FI@$4 ҝ%~0fAH m(jGb 0^Qh(-\ZJI/p/2  s@pE?CDcan*ГXrғ= B+. @ĭJ! a`tHGso@%Vp"-3 }/DOp9NG.`T;8^ "`J,* (p)i&A,ds$ % JI3Qr~c&0m8$])p@bP wB h1=gQK[&7,5AA L ʃC _$b 1Rg8! @z,(I|$bɣ*f&£V<* =Ѽ/_h*Q-ǘn g8X\?ˡ)ŀ tL,Eܰ&ZxZ#8Jh\`<>۲SDD `p|f[X-9Ga'c5X͜h ` #J ! _H#+]( K(H;s0)tDTY/0ĺ P|wj&cB<]+9,Lnma F=\kBYjRiD ! O )wC>;pI />n?\0&TMBVݏov@nHw:A :X`\ho `x؃۝a>&@'ID>M @0&d/@S Dq<?' {h&K] s% U3$RPq]rSl_iTE5B .Oȗ+շ6NA_ZL%.M7Eu) ZӝQ`z3+0`b@ LG6 ttz: `4N>02E 4脘R;T =fLAD3-I0bJ h1@&BK,*Y0a0pK1)C@} HK|Bc D 4t}HT͢ka\ w3S!Y=h6j@x9i$5D"ba\%Y^#7IG BҞa˭T%-: mw+>u7Njl]56{CO0į r G2o0wtlR0с341jY]yz1E5 &k96DC3 `6&,>A0%jgE:-Ԛ稘XYA5% +8H(@)v2?oAPiVQs N`~];xyu.^z0OZ2fj[#I;xy [((5 iBc4kˑe9E#qGcziB1~,0;.~ a WysR8p&2,rl4I(-=yc31X/ zrֵ;.#Ay>}'9Em{ >`rj:KߡwF`69Wt}'o? I)d kt@:&1}tga@r4B < }8qDN4LŬs; c B$)N h4k񀴒,`'(a(^v.pR  _4YψIL9C z!Ca] 8,%c44Z%Is;[nR^X/`W4 x$d-B*ܿsB}F0HL[]+&rB1593. :g2ٯ~EAt9Esb`AON|[p')]`{Wu)\$-IIʲT:#X)] ;jfmȥH'OP#J > zJK|H(4 rXcH!)1<π5J"TMCSI05Gx!;#DP|k'9tSm^>t2oz4lY ;Pgy' jl! ˥f[Pj'&4% CSI2U A^Hp[2Yi2OdeTܰH|svM /[ĜX0](h}'~ʾLP B(5:&cy(Ot}'p :TCC}$0T؎%'cČ s+5et$ beZdinS1h4#uy|jf/{D_2h@ ~oi=Po9hIX*CRH}Ӱ {j1)O3`HDԩoy LBCꗠEPG L[9Vu "uqVD2h+fYT1)#?"!в *5 $M mܧ;`,3 t,cB`҃v_j$d# 3+-А>VZ@* )ٰC"fܬE|23^D9+IB@)츚M%/2uHlL!Y WL Іď8\{鰀Rڪ~CoW7Cxy:CNq<; c죂Mks0̃Hve"[AΪi CxyG1M! Bv$D?<@g;* Q|Nq;}~? ^QQjrMn0 ጅ~}) fc3m\ `&fӁv 6;]|l n}xRpH`]!B璂Y0( z'h5/1hm3@ |KY#HŽDq dYKs-A @`~/;]߃ڜ4 tͰdZ3JKXP# yQcxmxCh.D0bj`y3,TP $̖ c'd4a!#J z%#W !{ `.1oFQ'D>;%0~-YEͮFz (ϢX PmC@.?syvh5J$ qb^kWL jt/ܔo' 5&6{1eJ':e-ypC 82!"R8 x.@Me8$P JxO]?HgԕʃhI0I1: &'`1B DL&뀡 aM#&+"a$diYkrH9C0Uۂ)E nT Rð=&P)8Pk }VBJ8d:* 9IawVVPۓܚO^ fIZ/ִ-ĸ >,,e&M[XT# 쪌9h  ;PC3uX6(^[֋,% ƈeu"fI i01!D8jD͂d8(OKhm`ny/qoWAhn~CD@A>3y‹ICP>ʋN ϒw $ i rCv]s6# Bŝ9|eM( Dx%I(>JujH<GnO۠ۄ2@C4ѧhz@dHVaE'$xV^>., $%#1&Es6]`z44g* F@3mr}n A4F{dž}yIÄ-!k+ x e%{9"p*/O2 0 P8] }d 6 2ݎ߶kh蘐 `B~dQΤ 3!)3'b>D Xft[IJ7 g` w?3 70VFH0mui4-®7~3.*p$5}@f0 @20۠\4PQX g@d4a`4?Q7 "AB( `U ebyL&!٭ ! `. x<wfBW3!E~4?)CiU+"pq1P`z'D!`)\$e98/lXF LBM(w@;^17'D14F(u% Kh9"pӅC򰾌G{(, G(48K@ @ Vdt \y`C?Br 0 X!=^h2PLG䔀 'p "sfZ%@^K( /Vh&e4G4h ՚ hh hhVh&Z#0d-ɀ*\0*AY@8L0C( rIH@fDK.V0!&'_K3DHj0DpFѡD0 ?]`}Q >=v )WQ[λJQhYIN)t@Y "$ 2@V&D2CZwA),PHO-&W}&d*TW @ 5u2U\+Ҕ / `i3 Z /0+n545q%@/M4GR #0N-h 3SIOgh.dR네M80|>PtąP%|ICc{A;H¶\KX u+n ,.adӕ؏ub0(;PB߬x\{oIh= dRB8ѣH*BTwqyty7mpE߽å4m@* 1Cu,$tp 04!#4CRK-)~a5ϵ&:] 3kVIөN#6P">X^ \3XU6jӵd֧9zDGC(Ñi}q01<2Bv J %`Ch(3& ϻ^UtF8 1 Q͆AmbPezλ{īY?'7l?.KOt!jA! `.!Í1@d.$a#P:I1= ݼ`JF*X"~'xtb.0f!ؔ0a [`(D҃pGB``(Ė1 ,xDX3fxD(pX Z:VXKO4;_aN&@xM K4xZMMˬw}:+ xoxߙx#CU_T9xFU!,Ap2ҘbOO]e$lf$2̡WFJ!SлhCH%&ɘw\x@٘Cxyui:Pjz3 j0H?@W1t-1d9KSԷ!F4ICxyo[0: cU{sq;דO}x ;.Ե9-K\=hZ3q6[tqI"LI%1J.5*oB <ƆG4c k`K AO 1 !"C;.|# ෋yosyx@ 0 C{ -BUb4} gb3IDL4Z^98; c B$)N h4kKIw ,x 'FgT'R;/SHc44Z%Is;[nR^X/`W4 x$d-z ?@eބưoB>$⍆VZ\j-Ks[<@." ;!F1FLfk^-Y>3 Ae0)8n|uz| `QpD #@ج d̼4Ԛ9u ;~e.euz°|Q5$[3U .-GIXiTS*Z{Q ;^5s>e :^er(d,U GkjBĄ cYf_CEmAJy-w$ʒ>: j#, {lOe0`Ʉvݙ"L ;"CCQgU}<ﶾtW5D҇$*:-#>. VFC'4L^6SG]ԒK`D _۟J_C|Ԕ݇Wn۰_M: ;Pwtf1jjrQ+5.HՁ꒓ְF.o3TJp|м(4 #Do7+:PLJSPtL~BaDsOCa>hkBt $vi)x#ģ%bzTCQQ֠Qq,M?mgQx࿋L}AjK)-57pn F^c` OʕH@U1n(7ϱd S%Q%K4L_xZKu*OEŢ%% 'ҬC6CQkBF˯î0j5R.ȤMp4x-D)SUCt]Fh;/EWO]qCxy:2SP^z-Uڇ^!}!-82 !ٔZ)nA#:Cxy6 [=p1Mf i҄`2!Rm~DP 0v> ;]߃ڜ4 tͰdZ3j`+Hʤ ש wVF0W FQ'D>;%0~-YEͮ2zA8HBӲ#,"vr98rʔNuL˦Z; 82!"R8 x.@Me"KE _LthX:͞8y| f##O2[EI4;0Uۂ)E nT R v(>1x!ŵ|xz^@‸Fm!D ; ۘA9 ($Z@:naMjL.!څrE˨!ea,c@]H ʠ0vh = ΢jsL9: ;~bBXJ pd"aDZ>@ A󻀯]ħ fZ*>zsIA(/Xa/7#\馡! y>tEYmy9  ;PC3VkȰXqMa/ Є=t*z||`"3 !zƣz} R>UЬ y|'ĽOfà=.p"q'F ;PC&au{=}復B^C>] ԝh}AKO\ڥ5YY/mfk ;C.k5Om-FI7znPͪ"HbnIY}GT ؝:tЎ~P>g'QLfha zƓ )Ƅѿd%{޴NfXD;!3Wb3 bΡ@U-ԅs>mC!H0ʑu hM+ӏ @@+Ŗ$B7J;m- He`Ha/2 7>YJ @ntwRZ:^,!0 p!xCN`09Rbd"avK';vNVkڀidP L a0Eri[)ɠ5tb(Yh(7$K퓿$xSx^`f H&* %[$ͰP@ONCa%V @hf%ߑ%vu F9 ۷J -(#r@3 ! v,Ѕ>1 :A08: bzCR|i^!'߆!vRC Ae$0 @1&܅HnFfBRe>[e`9/땐R6N/Oe{-A!z5!`tQA(/[!!HB 5!E#(A+Tjߓ@/ĆC `/ O /v'@b C@NP( AL=υQ(&o~ntܥ&+n&ِZwY3%T OIHUv]Vi#I# EF)HDY))٤)fD3 h !3!hi}Cõ)4$c`z@ !j K,M+)/o;,bnp҂_k_p H ,K,KHä;၀ i 5)q| 5%=RxWk$"T۷g@1 RjFq[9/KAf^ RnFF9]G9cD6ha7a$ٻ6ǵ!&{ `.o`h 4{ ! e(LNH9N M^B!ɀ%8g1h?sj*3Dܟ3I4'bwMlyzA/-3(N!t~ԆgNnb_aD߿Oǥ)oER#0(v9@?pb5r!f06m RkgrSJRrN#I)H%)D@3)JJR")H",j)IERaJJ.R\(tHBxՁP2k3 _ #Q͇]h @B=}@W= :fPjp?/Yݛ4/(Rt%Gst)JDZNOfrR\)QbN+)JJR")H(gܥ))ܥ)rrr @ ` y{pXO F-;\:FIk[,>ŧ\K]I[lHO$oxF{0įV r@08n$`Z1O Dԕa׉n}+c/<HbH\-"=ȷ';[B5bER)JDTN#)JJR")HZRu{"JS)IGJzD\8h]`ZMA{qbv,N} %Cpg%=Є^Y$'woYHۀC &p0îK! ͱ>L-g_;ޘ׹ö]MgaH-#+25Y'v]I])K~})JN.Rr>=!_#".R#)JJR")N)IM9JR!PRZ2RmR-r`&A`I-Fn P h'.E$bQ|GzD<1fܐ bxn=JA462r础4ڴ 7Pfm %=9x ǿ}G@#3gp6m yސ]=M$6Җ~ӯܥ)9ܥ){Gޔ}JRqrER)JJCKg\hR}R r.R*l:Rɉ%^)B i. @ Brv_Ԗ4ށW~ &KqE9OY>`4KdθnXP 0v&z$ԍ/t?®R1)JDRQ)'i75:Hۺ|Jaw.]UJFK٥)(o”fYJ~Ӯ{JRJ8|rGr®Qֺ~_T?z\k`K&'p$D5a?mOOJL|#==rCrJ@JS;)G>w)Gɸ?Ft? ?w5}蹼"JӜsqC,|?J,}?e0<0=kI+&or:u|P\͆{Cdž -, G@{f (5E݄Ӑe8Ks׀΀/R3? A~( (Ay"]80d Ĵ>wPXwr1c|ܟzP@g4 <%)I3a tj~]/NYm}B$\bS14236-@(U3=E%REUTY5]eQUUuv>V2nY*I7\mF c ]Da\Q; na@塙8'0qF`\)jqNDN49RVɽ$CCUp LɫQn41 ..+LP4Ffe8$iR$Qk2XO݈XhFƪ6rљm/M.VZ|eZmƩ 6QiJjqTT:%‘M>5 FJ-vnѮU$fiQR QHf֚u-h *ʸ`T2C2!4Mjn좎UeP9UdQVV]iuF&V LЋ5V7%&iâե9'-#0#n)Eel&&EVDqPq,1t5{9 4O#nCHmSV7"DfXQHNQ7ӈio3%x쥁LYT!Meଶ)騖U8ói QuYHG-8mn:^Œ 5SJ*!ICUYӧ-mu\pm>F\>*oll)J)!D*GJTPҍZVSV@`c"C3"4mP =dOMfXaV[evZe֚ym]EJiCiU̖0'.Kf`ԒURTZ19,Ja4!Gm@6܍k]ʉY2tv%b@p9ƶ&q@aK9R護$]M%0[އsQHֺF6M>qͷpD̐:CVS،HIcEDpb8BIaCqj>'ڒk0IER0˪)orei\EY"Nr ˫+ۗ2 Ґ`bd2BB"FLYe\evqyǟyP)'ʪIWu9i k]TaZɓݓY&jF W gSri?0xͯt`fN+CE3vȷm2H)Zi=W2W}zA:s zIm)q)8k =? +ƛIz]v*`chy.AJ_ 6V#i#$5JSmuZđRn2maDҜ3<%[THƒK$;:9OWT$G&ڨG`t3CB"3(&YSmzy8hc8mǏ.!L `.J:,aBo2`$3mІ6xQ3잔! &-M@ݶ6nԽ@:cLW&9i@fNz$p0 FOFσ7;=l5{p*Lup/g˓ =fhw6!' +;e1iJ͟}D0CߔZ q1ؖS)v{ZQ)A4ah9;a5W;>B/:|"0ac'?yH?OgхK,  ȴ9q``B|I oaGP=A>P _3΀@bd5-ep!% R NwMQIhAufRc}!`Vah0T OY/G̓ߑ4>D\C,iJ)kF/S1ʜwNc鸊‧ Z'r=BS~lDA@;d29K()VgWDHOv^'9쭜wۑy@1u6nE.;o|!Dz 5l)<a'_b'/y ~3F 9- C wq*P˹fDHdee {Q00 @62z I}( @v(W^vvPԠ %=[gKH e=v ',Jy~@;4$>H Ԟ++ZD$l/&D ,`Φe`;aJ0,.M%(5#%5!Ce!! Dr +sQxһ jhņBw8"Ժ$^ot .JleՑ]@&a40(t}~K&q: H-f'C( gB ZP1yz+@h"f(Фoueu a')8(p$$oGt"Xi\;?쭿nAL0PUwAP/qd,q>+,OO6`0a_:po8z;'F|`IJ8|3/%8!9P]!m9kJQuGSW'F]Q(\ #}a)!~l:G {W69DF!;ū J?l ~N}N ')$& HP poPa7 Cb}rI8}ΰ:Ґ PoRHU_s;<ÿ &(Z¿znopI`!BHM I I_UI'ssgL 1Ot#% "u`CU'֐CzE )#e!BJyn26+(fޘb'`W[r *Kqp†gD._θyF&EU#H|Fa׍:Xv-WC?rx0'J_ D҉E $k a#\z+Մ$q#y:>?"NWt u;:1Hu7 ~7}nRz GI4-`GNQw@(&tlQdȖ l<'ì` A!f_vz$%$g=kZFs{G +'B23bz,`9yuRjz!` `.d(.ɥBY|/Rd{RXui@tK4Z[./u˴%8zL|Z@`"j +ef5O6~%#1uCKJA_) }v&#'RjӐ$(FyA[ ĤvB âC!ؓײ&pԿpԿ?=A nדRUK& kRI*@ugO&2d]D.Nn%t4#w6:/KvN4xn}vJ)5z/TMFزOe hɨId¶gOg@b}poHRbIEU{v`0O|0]jsaae_n̔0}esYX4: e}44 wrs&_b;qu>=@2}%2bP_tXo>eeUL LGJj !bp}ڐqi# Jq}/5/|g$VZMO>K,>Ѿ>Ժiaq@ -qL|Z -'U9ngc@ +JIrɧr $ar?j !JkimZZ1q~3_:.`)≁h 0fdlv?ddekh+] $\z4u=1;&Չrj]i@+% RT.,4R IojXnAdUsR6p)S_>}Ҏgjf6g@ b4ds+T :rֿjPXjv؞"@T WO<;XF0Xi#(ygq(`+o1W &}ZV*y-TA ++n[%İF̾*P9(4W&pI%L/<ҿ@y }Sr] (RR冗G;~}02qeVZ~=vtu(\G0zBHYJ&7`PC,0a1?wgGޜRGu_\}` @n@ԠQ//9NLԙw^uwgC7T,!ғϾ7 cPnϐo"VsdLRNQ40%fS!|Bo<0`O3B^x?=!52iFySe)B0ڟ >!Fޯ>8׃r 3!큄.GOtRĆjRvxBcЄ=[ᨴB|a7H:ɰJYQ̻x3_yg9n5xi|˗ZzŁRo/1 #q2)N?ؔPViI "!OD]xfEK 3Wqd:^]؎K nZ?aӉi9*Y+$5wWA[}㝶6Uz>Wl^'ggj$$cޅ5Uv=mVYi|1e65% ̷s>#e?cbǷZJ-? h;!sG `.!ݍN_eơ=̰ 6+6(5RPOrv)=%w2ņbndDKFOF8gM5kQnJSeXؖj`fNs;ݔ 0uum aջLwֱX{t0c}6xh<V,I-)/q!9wW|pjiNI)Ƥ!b?ﭛgFw{ɇ}0j@`=KRս@dDuشtT(mp=۟oxcwn'` {.C}f=<]{T5KFdh1ٖmr T M, /hLD2N3Xȗ#}AOƺ08{+W{`b`^:KO4HB'|lW*L)xAPhBcPb^@d9 Myȏ]P)L΢aKUD(ŗovCRwHж蚗g OЀ:C?\Z0\H$ TZQ!{ `.!a,N$8 Ŵ7Q|'vS & %+h Š@OФ! Yd~qxz:F xtV3S}!)+{dbyRu )`UDkJ} u5@ HSv#'ODfg@ʗOKPPj4 bP 9x' Ճ6kdF#&CtN=R]nf v_U pAIKC\2Kxy:¦nАc.Qnai̢YKr!M$Cx˯&ߛM뉈jTR7jyg;* Q|NqC}~? ^QQjr,fZa@SU(#MEEԓOi 1nm+v2zp.v{C]|l n}xSi$ dD0zi߭)ξ{m|06{e&)C暱2E4$fHm&`Y@5i`C]߃ڜ4 tͰdБU€3 pi(˽Ae?&(vVHݰT\ cd}Ӎʔ\/DѲX!?@sݩ>. a caFff&DX}@C%0~-YEK: ~\R& tL&v@+L吽DԢ`hkJr3gKddD7`jr98rʔNuL˦ZBݙ(EaO44f[Y9D[Ob@O: @H:T'DƋ 5κ3 zd#2[EI4C0Uۂ)@f n/d)) ,'P3_JE;TYߡ[Iy[?^ C S43cUx»HґeoE^rHXu_Rnڥ"id3:0N BinaDbkCv=<Ȕ>|\a )apWe&e.:FpN  BFi:euEth}˟ J跡$1#+QwuѸzz*.X:K2#'zif C ~a3 )_[ UА  oJޞʿpmX NjF$LVBB`&9/_֢,7 :JfgԌ$33 ;@d`Qb'a391`+iwgt$02!suD:b6_6lW:"=.n8P@${nz|!Vi:8d5SصHPfu/XVzhf5ZV̆cMKԋ0ۑpMaRl$r!y73%mDzh"RuEq?Bls6&QkMvf6Qs^ ;)Jb-;UfXImUM0-s pcbeRٵ4ֿ KXE1.j@%TNhAq-DBA%MEM}Vbd#C37h-%EW\eqmߎIax`w\1L6)jo&F8pJӒ2Ls xb[mwLPmJmdM$"ǸQn{*6&CL" ) UzK(Y>nS4nYpͦUQ*ܒrױVYhH6څY#7: lhilMۢN4GIi84ۑ=iiGJJN&z䍴ڤDFPS/=RyjmhJTu)*ڸMl%Ņ `c$1$"9 )&nC844ԎLMDQamiؑ muq6ml[5MMQ_IJag]ql[p @Yḁp`:LFHQleelI ٤ȑ#tp QtFkԂ[(Mm֑Fƶ9pͥmkr>DZJNYI[j 4ڶ5wN),KMMReW '5IU+rv`MY!;H3q:0`CIp=Lmm++s bd4432$hj2MIVI$AI5afXiZq0kAè$C Ҵd3Wƚh$t@R|DKՑLyjZpÀ"*/JEBF9l;e(fWlKjr1g+Yc!MV$89.I2tuȉK7Bq͵U0F, 6ĭ4k>ŔQone,P)QGSt] ݴo̤͢!N'ZL@Zoک"Z醫UBG*J!sw&#]Tm3(΄7C@`T#CD35iUtIQ5Qafa^uqτa*Lx4FL_a.YiDGqW#/kg%Z/BbK,i# Ѻn;$&DUvS.Dg5tDfݪHq:@d)4e&E[Zidib?2S YHhEe% Fav 9h!\Ѷg S0ݥ" [5Ә$Ė&coB_Q#uV(Z܉kp5#0!FrZaMbT#CC$I l3OMeTQuq]yu#z\elڴwՐbq7N)3y(}87<.etWbڈd!GD!q&fP#IUSXq#X.BIqܜ\ R+YR4A ى+M.gFJ<7[u%ĥ BĹT]5]FքP)QF^l"]4^W.#j!<գXp|Z*LhN %j!cc\dhX/(aI 9Ӛ#%ʉƮRL`C"1$46n0* <MUUQyu!]'ԉhYZ6!^Gʉ'wU` !lwEej hAIM, Ie`7M+YsRRJC.T^R6W(dt0&:!80s*p`jDBCQ K0Ω(κ(!YI0[`d5ᅣQ h(*>%r,%Et42-&cp 26e  ,+! i*p8VB8 2@$,#&t `\ !)!L 94zRc5w8`f*8}^® I Q042XwȔHO!DPZ L9*p TnHL 6 A7J4I8,w x4Ԕ|C ! 6@^`ֈeRFŧ"+qAP~DP!DV#h¹H Y|_0:%?;ۚ1 "sfcҍC%@z@(R# e4G8& PVh!= )AzA,ѤB< KyD !7pD@Y(n$ QJٱe {HAhI!9">+4р"@=YP@z@(TG4 FJ̠2PPp?g "RBf A  C5 K00c!@ B00J y.LWLtJ ^`@5P~3e].SY:0a5K(T *,?4L#)TF߀KX%~oƶİ%'II$~o *}C6`'`Lބ^1I;@x` ^ @/LbJ3& =#430[*@0Θa'# &aAݐ0.;쎍!Ht^q+B<.trx_ _ۋoE* %Rai$Q a5%^s͈E0P%Ɔ$8I?su8D4XX0W'@Ci}#DP?IF~gA3 tvDa-`?! `.!<0ˢCK _HlL 0 2u#";p=1<uİ tbP` ԫ]ly{lP5=f;&"=Ȣt)"KO?@B#COS ȓR5?KO(5,pfUkRA6i[e{Ajvg1/CLN-Q)r@oר}* ,(x(/gR1+`Y7A1[$L0Y>u=<ގ"{@%H/2w[ga |@J=CMXעHlq VGATI-Ȥ(&f{9F&ȤZadmC sS8Vj K[ʽI rvA)~^6p*C(1(G#mηɨ&3z"^ B{+tuc`0ƞ'7}C!=iC9ni=+6톀a`c^bn=y *Q Jz]INnRbB&t}RhI)>Q~0] ˆAI,1˕DYzDrE<:u []pb8rg7*L- `< ؿ}  trAoO{7:L| >k_w8Q 41"copnۣZw}^x; tRcNqۥRbsx.(z^M ;.Ե9-K\=D W8<ure-rv0< x'0fm,H8>@;.|# ෋yoq]2^pA8Y}% k!qn[V < }8qDN4LŬs;.Ea=E`KNFY+&GB͈ZN'ַ)*Ns;[nRL&`_x/NS cy)c3ao[Zx-p\#=/NE ;~S9k)\ S S8 HqeԃZ^- gˮ 3hf9r(r(x*SOJvK  >A3SIP`Vvnִ 3eYyD65 %3w$MnrNQ$l^PUٳ 2={3FE<  3Pvw_u+*)7 ICS"э0AhMiת GPO+I&RV^LB+EC;#@NF& 3) Fjrސt(Т `k &%OC1u05t35қ>H\4v (=Oli3_~1-,]ކ 29Ӻ׎ "ZvGKI oE&l!G `.!ZEA>ؼt46|3f2}G{wWU'=st+a ]֯&؁C r. 3xyuOgh8=y4!?Idc3.~ a WysR䴓f p'bB BL;V{,.p ֱ{, ` v9kZ3.#Ay>}x 3.Ե9-K\=D&$4Ʌ t2WDPo g'(&/)8 2D ftK] ^'D4{,L#0x^ ~a #(o ,N>3.|# ෋yoq]2^pAEC&o DTm0 rhx$1I߳Aprڶ9@xg$qf-e3.Ea=E`KNFY+' `<"#0}#q䀨$*Ad*ߋ551d#t,XA$q!kr93[nRL&`_x/NS ,>LBM7SDfp3`'(2޷-[ׁl[?Fz^  3~S9k)iN OPEb9%AXbN ErbB\/si, gˮ 3~9r>grXN$`-z#/0&1- ;$ec$6+-vhkΤ~翀u26$ET^Twz%0i)3Bw3HS L5 ?WEz&{ 2[2Ρ6u`" E2 w'x%JLK߱a4Us $A\ !),+Έ0|(QG_mD>̲ 3ЖofXڋ W ] Sxq,V)eh`t*+tAkZ?Iڂ#cDC (%#m7VU!H*u *|$72}<`H2C"~>CE Mfc=ײ: v00 5&[JdAHVt`8WR2`\*`KQe>A z[t:Ar,pL\Tـ:p69?mҦ8[qԄ p2p6PMb7X;):!I9#%%X*p.^h Z!bMoYX:MA0jIh G@F<8ೀ*qD#n% GQ,$X1 sgHKq``7<^H,B"IE$D$$E䒋Ie4DH pcEɤCJzA-8:8D`Rz%4{ -}e!p&X X {Y &H,DE2hHd$,$iH^ I@@$H^H'Fp {0S0)'p8g#נ HD-p3BhG$ ^2y$АLֆe>V] x@  ^0€_4&F@"Бr:E ~$ Dq&rX? A8p BF EezJhHjP#WIPD K__H/2WrKav!~]ozc|XTC5 04ĖV-( =DCJ@bIA4 v E @bY5$Ć4i=Z d۰BIybnHBf&hfۻ@jLAhN}u\d^p@uܠ/sOoH\|K' މ`Q(1IJkI&dLAwQ07%R4{Do;@Ґ7ذ>J#GLe5Q!)8@QE-P_Hl F'wN.+-=PHBm #14^j4٨;I=# 0 BX@Sk7rKPjA0#6)WK7:Kp ay.! @ !ga(qKm%h~P͞Qi]mqKi#aPrՊ5jmD:FHIni8[%iж%%6MIʡuW֟2fg0ҠOGZ%bd"3C"6m"=$MUVY5WaaZmcW29I T9"i oHQcjXrx`qN12:T"vS+iӓJJ(rkuňYT{g6 {dY#4 Ұ,T2h@pqPn)rQt3saliÉZ^蕕I $6XSҰ^ci_ClW8>N%Y[yY#t3OMt%ʲcM-8j6V6Ե\`c434"'m *=AavZiYqv+6nHVi/CnA1"M%*$ܨҌS GNkvIlolm.",K~lv;]R0N3r fQ" n =2kE`GhۄJy͐:uOp2y9-C(a1\Sqi2ͧMjNlm lӝn4 z3¨OW_FrDNr3P4/$mQQ4=kJr:C1ֆڮvbD4$D25IÏIQVVeiq硁"-WٰٮR7#W5|kTFJ <6hmN6=)8]PڤH~#wGMD\ 1Hհ^,&!w0w8^  W PSYoV9 ,- Ĉtd1mu"놓KzK+O9t%'JkZD޺d_b[㫔t.:3s/H*ߩ#7A(,7F3szmM DZC(e!(2$1tbVl[Ճܦ\ѫ,AJD!k9#xR =9R+F]"FZC°RҼ`ZjԄFee KM+$A4 l ZtӃE+\v n` YCVC< 7`w1.+!B4Ür.!habS#"#26E@EVMdiFiFqmGYU}yXZ׊烕VጉZ;bOnG9{`tɼQ4hhj츞k+9]8H#Yq i!g&er jL]*UiHlaIaV56HV%lu\iӑFثuq[H+MVo (icx `W(+mf@EA:hhtR5<ђMn(5iLX 1.fI'k.l6wUZA9SRvpd`S#2326MQQDQE$QVM]EVa/iц8cZ&t>m:TRpMa>* R"(S(q9E!5XӪCrŶW儜 5*4TC2#LXJSzo&/Kodp-$yYĄ)!RKG܄ ͡nPН>I eZII4/18\@Pӝ& 0\"'{;9)F R`fF3xtN5/9H&t=/zYt^-*~ B2zγ_!pI) +~p?b DAzC3Ly :&rX(ϺP7 D!{P΄`fti@PuT.I!JLEhq7G3{ϳddU7Y[m%]A_?iT%A 'C8K+NS$͓?|'n0ޞ<}AhwC\IT.!ǀG"]f4'035|b(`O?c3xx6A;xr_kLbd'XaIFpO5yk!Na3!vjZB1H;xrm<Ύ}W#1`B0v]i8F(Ǭ cO4Y%a3.~ a WysRMKby:(C1=yc31X/ zrֵ3.#Ay>^ Md]1boQ$%xXd7 5 N",HRۻZA=(NB6ި i+{7?^b3qH/pz,`WW2fj[#I+v; }<@|ۜ-ٳPDLE % 3=kfiL8F(Ǭ cO4Y%a+.~ a WysRMKy1 @@G2Ԇ `p75˯!1{, `v;fz^y{+.#Ay>/"M$H` a)xO aF(xXbp}!+.|# ෋yoq\@deG$@T/bmQ&Pb9RoCP}PCЃR) k[շr8@Q%01k-x+.Ea=E`O<a S0%i߰OAOEJhB2Ȋ)tS d$#DJ[4?\.!Yo[q'Ak['9p+[nRL&`_x/NS ax Ce XR5P)`XbSao[Zx-p\#=/NE +~S9k)He3*=HE'bb) sq1 +{GlרFbXZXH"$b+"U"dfp@_d!yG&sh +r}mӲ}]zQ4fN 1h 3j$QHi؝pEhʄ_{JDԠ6fԱ38.a9I}6 *ȒbZUIJ$~EOH% a@%BtOxw*(%*׈4sѓϠ.k tc@]CUz' D&% B8"#N)ݤ;B>Qt +Xg!pr;1-A%*۫o;D%):_G%1SA~.DʡAP3П`H4DMU׽WIEKWF]4Ֆ*v>tkfˈmD1bSl4{iJ I(=.&P`7$5+A]$!3G `.S04A82KZ\C͖ie~@E~1$EOlʼnx %}+ pqZ,2aNC-DGU0bӉ'<@nbY_1`.X5EU[@'&BTS#TACl7j`B18qP .`L0Č&x ^p܂J>-Q0 ֐rY Z -jFk6PC3'|@ CC5*Vh p0wa7r5&0vIdԖ1 NjǪ- A4 {,4aH+ 3C 0$lPKORxF@Q%a堏u{P 4P7IrT72_eqX J $p"\< ~Oï<pP H;̖_$B94O{ HEt쯏^??QB_!d @vJؘp` @Q%2 ݮSjGQ@?ΆJGM=BqD;\y/'$FQiX΀%shf2P(ـ!Hb@b>KO -ЎZ|ӂBd ȚF$h``a427<@=0 v9HaA } l%ľ(hi &|r!2;vN 'tp`n&_,Kذ 4O_XhQy {w'D40 JxR `r?= <P  ဎXJ"Cy%)[1(Ax䳽|A%!Zy%<Ft  4u]QudL(UoQp %8:0?$bGXq&p*B(Z6Z 4`aL߿Og cQ1H b` J2jQ - ,(_ e!" IrV\p w% fC04_NI bpT 047jFrh.nB 8 a{~z䛢iePo@@Ѽ @e8i4t%NGO;RV|a<^G9Ynnݕx8䯛?q Rg3޳%BN T@K^ J# `4"0=s12 pHhGO7'~#hGȠ*運 p~  @R|Q>`*~ xrqM ;pH ( dbR0pҰ J;Pzv@l4};dɼL,hRK;Qz$/ckK& 0V~q"rdPf_#ׅ$ȶ€v #O~À0 !._f{ 6l)W| ;IEyȯs09/mkra7D60,.LHNH?4~n-cB"/9ě d A > %rK&?P YА}Qc7VsTl.b0 p  pD\~p$~MuE\dMh}2@ pj-"O)AGA4z:p @uUA4W[( IS8=rHaѶ!F{ `.x@j|1h0 4;KHNL5<Lj 5!/#bb djHj*!RґS*W萨ɀzr;!%ޟZ"b $Q>lslĺY>N_j}3vąC7pq{ɤ *LၨJH0@bic@bLKI19'pU@X@;I3>@ 1&NP,X QjS\\tJ !IAdy?_?9m荴^(!'^ %8 x&oi РJ;9TVIƕU0D # Ah WAF*_Otx7 BN)T&T@gHWj&Z]sA#FC`FK3@!(g%i!,j` D FLy<": ,tLI`<!I( S`φd%#l5pi  BJ(nH s8$YABPr}g` !ؚQ5$` IEX'P$E"\ $.Đ4 7 D CCvE(J $!$T )"\$ri`7-%~7Re~*VHT@T3HNP<}hE( v`@-(4I @ZMH n=C #ђ#0A:! {!V '?4j0 ϨLtFCx}HWDSZNIH( *t"pw)#ډ`3B7@Y NhW2чQA`h NjR<(@hc(|*hp&/& gV&M⬅˶YיޏTJ&`:s8bK d\i CYmSPX))1 &(h\ =AV,J@npTM%.Cq$ Euc,^(K}s%'@+MuP,T%;Q(Wtl\ɷ g~nU $S/8 iR1\V6-p ÀM6la4 AB@bXi79@0BܛS1hP94 ;A4ds]Ӛϑ/=ó_@Ƨq1 59,T(m(%̿VLAE9oH_b mGv `l`MAIADH,Q I$Ydc 4njB5Έ{hrA/͑ @+!$CA)%fq?0XINC,0a1?ޏ}QE$wUaM#Ҁ :8 F, BIJ6p ] /p ),H, %R`D2+E;@Fh~7ERt*ld5zdYe|BwYHfGhMFA-H@7@CP>.$%ʒބ@!{SGDÌ:X*7EU|ZGϴIGfSWDǥM3hJ! erfє|5)2{յ=U?Go'7 qw(0S`P1t렆_K>od8=Bk}i\" j5\Gɨ%vBvv|jtwX(kw㾼+Q~OdZ. @g';'dw$u38W*'NYXu W.T!Y `.!Xs Y{%]B+z^A:z~B JW'7$ݵb՘F!D)1d9KSԷ!F4I*}j[5vik,q3#qGcziB1~,0+.~ a WysS$ prG I!ቫ(DC<1{ `c&3k{+.#Ay> +.Ե9-K\=BUsIIH\ ДƘCoF> ?a&XeQEF1(Pky!PµL@y`L#0x^ ~a #(o ,N>+.|# ෋yoq]vä ${yLP m?|T'IۋJxR͗cַ-np>J'abZ9+.Ea=E`"F8 RXF(:a sIux';uX:T, قc}VI%H5aЁYo[q'Ak[9x+[nRL&`_x/NSCj"A9N# Cݪiin$:`cAoj[~p9 +hFSfr;!{oCO, p&Z@q^hB ):VoD9 +"fh5Y{fHԡり,t&fR2TLE&%{(h8'VHK41-9]k^ #hl`FxDAwo ̋._'a1e,$ +\MC6THPR &:M?.7LRnAmTdnptbR3z^D`3`8oE%g=:K>̝#L20 4fQjr,ꦒ2}jRƂE-u-fxtэ98[|c33NF:#VuO䋹^T#%ܚ-޼Qm 8VD1a*u+}) 3)۽y;r* M1 qLͤi F\XvHNH>41"ML bs#B#"4I&@*j<]6WU4M%TYuYuUYv≹oRԒZЅYO+\KH@n0KB4L:eR]ؕ2Eq;3X}2jϼ(@ԕɜ\(tnɜj]<SԊ- VU= $Ђ5ֺtYĞ)/bǴVŪB9*`:- (EE4Hrֆ>trSFT•5Iw8v#)iiZjakOݬ'+Ns|mµV}2(Z@wqRSoHˎa*`d###24mfVMeU4adeu]vmƝz]xm6Ѵl4yь"jfFegsȮ;  iBllӆWc|*pQINƀ6.PLěpWb0s66(Z4MƸ}SkUIZJiT}DM'%"-9'4忍iRVh\(vNN-cJSddU{jm5 LmuGl Ë_3]vA: mJdl?8\zF,C["_VA8&B#qMyn22bd3342DIMuaVYiuL4Dh1ɕRK>$LM>"eZd RBҥWU>Qqd..ңJΒB5SnbnFIWH)4v)}PGĤg[p7ZJjfihI,ERLvcO3I>eTi9[VJ֦$TMâvI#hKeKIEiIcli]\;ƥ.8CkO6lٵUsEuIm5kn7o$!ik%o*q'Vѓ\QX&q.rm`d33334MTY]q]z}za~2Yfa)i+p8gJZ%HFN9d"+qB8zQو5 \foQժ$v6n&"=n̪eYQ'LET!À `.1='Yiyo~W%@ d]kͶ3]|l n}xA&hgW;\$U i] d0MYɸ36, _x+]߃ڜ4 tͰjU¥'Z8t4%RJ> @U'$˒֡%u@H>`pOb0S0O 033o",N>} 3%0~-Qe?]vK1$U3LM)ww w6xAfYkp,ۘx@x gYRθit^y+'_XP3{8x"0_|z -ꤲ"`H4+3.V"{vIJ _op0'7\9 &CQv/~q37'\ + ǘCz6vVؖBK 1Γ䎋Bk]zneBJԻhFAXE~̳h +hf^vG`7ndK @ IVЂ7cde A~Qd1]Y-.]IWE$~I@ҀE#4'BsOUhd *\upkGФ5b{ z yQ]45)I WģS$5QeФzIwB2 5-#EBt>|a'nI (9yByuxu9?m*w@ +( ͠fZk BM z#ХTQx`MĴ)gP4azDВ<zEP.k9LIF̮}ѕELk+M`pz!+`8B]=<`[\Vb`Nl$3@]#Q1|oW.hMD6!N#W6-2+0`II  4D?D Y&@ I4I&pes1aZIxaiӟqC]AH11 @`Q7 ǣ,|hg\g4Q 0 /R.WNb>F{̆Zׅ`;^K.:dKpoqNAh3mP) 4=8?Kq2(ݕs%n Ao> T?p<@C_ ܴrRqOJ`@ %CCP_C2gWEj5!ÓG `.Ra(Os tS9i}KeG>!VJ%ß$(pӕ )<&2%xPԌDb{ 4CH&Hg_?pT} Ӝ^O}3$F'$h  vP --+Gyҟ GAW@ ŵ3}VXpxDno I C% ` +VюG3wѝAnh(%1p :p8O-D1_p6̚RNLPBCgb Bd5 M `  xiYd4Shjp!$`hPhC ŀ#pD` u5(P%~&LV+d#d!ԄA[( Fƥ v#9k =3 By"6ǩP҃_ wG@NMA}$n$d ْT "``&uHiq,NlZ %~4pAJbZ8JZ6D^455Y@"PH)<gE|B$ 52W}  YJO?`sauD Bi Hd“'5xPTC` @w]d "9 &#r| h(WgI| K!M) :AR !7!?HhvL%)!R@qAK4`@: BWP2!(6& tM@k!I+(v*`7x@Ne1J o(` C6@ܜw tB,0vP`#rfbL0(N4 t =& 2ZiE$ޒ0bLH^(C!@C&|$*0@bC?p , Pp Hec @4 7/_Z ?J 0 CA V1ٚ -*h n}Ttg6( !6;6#,Ȳj'4(qtH @0rhg%$al `},PB( x@:&$4Jra `P~|DAPGJߒO%bC 5 ,:H vB|zP-UI$`:HgXJ8}<Ҋ"$;}.PEBbRK1 PFL ɤRK03o|J@G☟DP=@2C8ؚBhjpA)/&CRV & $GdX`( @j~W4!b@) %4>Bg4 `Ҝ`*MhY)9rd 7{t C!ɬ'(C(Iga7:̂z%h&U, + |O0a5! M,XcJxDl`1A B2I 9(>Ɉ  Ft@3 }o@ ,ΐ*H`I++ g\nK9;Q 9 FC;G`*M !æ{ `.!D|Eno&T20FH"af=㿝!d QSfhS@@'` @ CK `i`"4`Bt%@rH{I  (ЄIH0yTy*R A_tzvP*[uHi8 7sMBKX|Y,>s莂Mtt@ ~@n'P-@ Hra[9KE'$Da4MFɊ@ L pI\ 4  Ҁ ad$89!1iC,@Ȧe6j%%EP1IQI(h Cw쵥 ŀ4!"а a ^ ex C WWKА0hw (48h`jWAx>ɮP 3 @P&˵XXSXdmv|l` `p@>! $Ԩjy-9 f(!nP8 LC/||i7 ( (|M0hK<HeRCh,lB|P0-n~To;/Z8HnYz }0SdcḞwh*MB2 v}VZ*9bUD$*J,L)r6>`B`b@`` ņ }7QA`G8?4PH+E _d4RO/ADvx"_ \P4`7wU`4*Y@~&jNa 2n^xuG~vtHظ:^ϑ6&֫M KdBۂ/|bMzNXADp@^OOIWv&l T`0@ր "Я/X$hQ&rWuF80ƦDҊű/PB`o,mšI \ `AE%ґmy](wz/]B%wR8M@uP]S؆ ŌцIE$ F>W&~o KD.d` p%~$vvfp?A ΍,ߠ%!r}t|wDsD A,L0@*5!blkJ65l4>:Kp`-/#]݇=z&88B%o 6xA' ǣSQ{\?+?G޴"җیxXd'$([GxfHxOǯl)09?d$(wp 3 YU$x$,ItHx2&d']m!6 G]mCB. dA։'A6m6XM͞DDax?l?l3[.pp8) I4;%hUޢq@6\ *sr8=E0CQ.'p&OSI%) 7o:_Ga Xhb8 RFou*5S|l/aL9ȓ#}3%%L-na(< auwW86/ 0͐Pkc&Mk<$dEI'?&v w蜂FP¯xog.e3f Af s099*s.y3'OX(`f|̈́&|z+F ,('gߛ$a @Ҥr"q, Egɶ[^y\ !erim3P^P^ ` lD ?l?o Sa$ӏdAGxy Qq~A =yx\/@h]],aM$y͢:ݰ 3 dEM! ,a20J FC AAPϊ % Lvu=eǼ>@\1`x 7͍CS] l G!XH(A!x #f8:U:U@V #Hr"pO <?)oHА""6z &EF1 )p>-H$ɢSʂ -$ԹkJJQ:BbDw uQgI$fHag\ФI`Nt0hz%*@8=$PMA/GS萠,E BhMO&K9,X&C5D̂$C8jAXq10LI_&L-^kѣ賩AH &S[r0VA3y%=:mF &`j%xO^*E uHL4 ^lfMVTrhm. FBշ9C"U sT*M S a! @ !V'I!z6Q2mD *{$$%CSUX*iNZщJV;N5-6Ms* Xi5U-&&m۵:ruDd8ji.X&eƜR86!u7"5ƍe!v9#6ى 5|}kkFvxqjFm1tq, bc4EDDY[d5EX]wy`_v(IX! u.okme9[㋯kT6jP fᓗf42V P`2٣s*QV|'%˂2LGIpNd&,IZք[+9UdY%Y/J-ug49ɆBcQB&Uo2šYSH$&:NNf3B6|-FʕZY']lTlDL5E2<=+(ؤP6+),Ast*KYqdj 9,`c#3334ET? 4NSATA}Ta](YMVqi]!uZ&!1TEtԚn(NbJ|ҳ -4! dmq9 ( E+V+՛eĺF,n2F$ZZ%Mmmϟ>|:>D$mmϟ5"B#" &b"Arn r>}$D(l4fNѼЬ0N2a҈WCNjF[Q7a;B')q7Mn(cm[RZQ-mQșCsbă###14I2.S8QITIFVUeeiʣBIUiAf+Z6W[M1=͗6jΎs?tL8Q5ƒ܍X)ȈEl2Z<:DjVf+-āټE\h!/F"ͦfWv$XiS.ڸJJ\q:%FTZ)lJ,/XqĎT]|K R5JD'owki4(Ur YLMș[[ԕo= I]ܽxF `ڭh?kOjU$pU6"ʑXaw5ֈU^{A/jhtŢ-\H*qmLJ޵jleu!TեSVP d};ڰݛEuv:E/Jkk~R)Hnel\bT344CE#mj<EWUe][e!n\vPN iTRDx(Y咉üچUPh[kUpjV1'H̡N&4;wkCZ/@HF5OmE* sռ8C̉'RNL2m%"eB楍15t6ĖdN'mF :XgkYJ-3TZ-z\ղ]oH]yL3Hg1J.6.LH;Te%11Ɗ$ֵ6+De7`S5DD"IYE4Yfqƛm`yX OT5NyR0:% k S[gw0hxW0d5eMN)0RILE1J$֑mAg(>Kd kE$M_bҥgW&]IZN*l0$cM7qNJ&9tѫ'Ɉ7!%IX]jUk 5 eaP$h) 6Ha )Q`6ܿ_wHgkW 0(CIi{&|y6sʜNQeɦ{SP^ۂ- 3UFQ4B!6ɤUN^E!ts[a[Iy[?^n S q-$ff` `aE#8U `BD *] L\kqG8~yÌ8$()Ni37'\ Z efTCBmXKk1Xu4A h Zi qee`vE]!>@Oxwtm@?)ڄB2K1m&Gnk)d [UXF'KnL>b!1jxt%:K?{~m=NsIm55d. `{., ̳63I%}HVT຃$^ z9 ,"Z4^ Bi्SHtL`AKTXeIp}.9feQ^dz)H<[l:[ppɒcxwT-ڄ oBkM0ЛW ^j}Jt6@+̔ѓNE5=m(ӍfI[jᷙ&]/Y ;SE K(M&"NoUY7}@;QTSWdUC9D+ޭEzPtW2UAX gm`3/=͗NMNtRp#!zߊ^twҍz{; `f5%>ˁ il@;&3I%dݺ5@T8!002`a0J+QOՆ`~HI- 9$ߟ>9]u/X@5 @3H &LeYj Nh bJIePY[~ 9á^`MvW$!@tC(HbP{=Bt(:0'W|oh`+ZwUh .4 9i !=+k @iSKI d Oe={p @r@4K/rUY#W';%)D\!ffER;`0?-L[oCE'o@<@ؘpܴQӺy4Pr {q2(%_p C@Áa7XbRPwv>!0 IN|CB _1 g?ͯԓ NfCvqOA Kv<۳缽-W8(FY?weg,} dvbHb{͛-/ @b` yA*Z !' [ ;.pht@L 6%%Ig͏4hsB _~M{~hhO$5ݰF>\}PtǽA I}z^9"QC7~uGџ CvCSmMFd ݝͰ(S._'!DX)+)JJCK.*I RRJRQrERq)JS)JK^G&j,_T-[xQ*p9~c9.nL?7 FǭrTz77"^p{pAB{YCUG,{f|ܬװMp~&zRn>)HR)JJOrmIiSI,gniJNP#)J hS?RRܥ)(>)HRsJ=$R1!`}PjrPm 11@;C}ͰW+ыN}U^b"PGu7 G+b9my=JC*J.7 Nͯdmt39Rho&2-crܥ)rERRsJ=M>с%F !J蹡SJw)J\]lDs n7'?:K;Stwwp#HMLОz 1!hL ,45#?>KY-=Z /ºn׆p HO$.I/~̍y!6(03'Mv++Tjy>ޓ,)Gz<8t\=;ybn J>3R!{ `.G#"ԛ E`](xd}Ѱ] @4Vs! !0 4/2tM/9),? -;btM 'Y4`TuzFD # +D$< ,BsLI.:(C@7 kHe4 _@ ɠgr˧B/H<qdaLjpf0'U `͒=)JxZ>!^P`d;~"zBMˬ`;^2Lذ9} 1 k0Bhi\5od&|4 ]bQ4>K`X@tL,M拼_x] ׎ w `\ZPR{(|N8@BLG,9ӛ-0Ʌ?(A5 J߻3!7 -;BLq' &flcy@P @e7nINp׈Ġ5N}D43Z&vy7)F/7g!׷> %950h Cp? Y`khC08 8z1__";!I!rn`[dULy:!?!lY\rQ?>w04ş+nq0 A| ۑ !N8/B\OKC~B :- 0 {tDؿ!}^t'|+׆J<" + A4YX 1%_b?GP6@@'a7B`pɡ2#ܲ%̀(Ih@Ӗ;~~1.0 gi6h.!}J|PN׃ DM/(^EcRi:K #-, x >ÁE: BD֢X7}\eWDM |LL)#F`q> 3-) \jE(.~5^ZN->ͻgUR)IYJRO)Hԝr9vLtBO$ !8`$C{d`; n~Fw aVc! *F" $gկLeF ~b }#p|]e)(3ް% !:tQGPcïp0uRK OjMHyGGGzyhy^toQ3)Jf)I.)I;Xh4ˢc6iJ;Ol^@00FHc?ukK-\G ţ˥` :Kly{2y=YIp}ڛρ^O[N IE# Kt 8Z~2 J -3Q|v-ᢻ{`߀ JSx1{З(i4t#moueveS ;}tC(J:y^ 3^4ғ [.Ե9-K\yh50X p/lm{А@0  8)``O xüb$͜ZcI8W%zw=&^B [!(Bn\Fk7U+l9B  Ԗ#͐31tŤ!. [!3=oF[R2#ԁ iNk$Z-?ⶖd,6.Hɜ9s@ ZϷ3( !":|6rcլP'nd?] iLFK7`#X}9X [!7)y{d 'X+|P$CztS(+)~.0MOfqƐٜƳ= PCs-FKPC#a^>eP\;aCchLD,)kq(Rۭ|[r23J50Y x[*r3fJP= U~{,BR&{"cD#h(ߠT&-3=襰[.uΧK)mẘ6Kѭ/LU5^*4TvCO055<fhyƴ҇ήz?Aޯ]Y[xy x^N"19-na3!vjZB1HSy8 ~@LM 㕤!#pA 8=y4!?IdcS.~ a WysRҙ0u$;$X*[F3n{0K%;`3=/NZּS.#Ay>D3׎qS. ʂx| s;"$F?/D5Fk]q.N!+53-k^{SZL+_x+$> xüK!)O=|l ;Q! S!(Bn\L: Ra_9fcKِ[:@pFsgҌ  S!s[ḻ8Z9p @֠J%1PJZZE{\2%$gv֋8lc>E湠 R='Mg #$"C-!C(굲5 dTLH:lcz%]ϩxT8n!BqRsv}C,Ml̟| Rĭrڕ!hDbtP,<]APpqOU'xhHĴуuc^/HuZY mk3ؘ RghŹO?[F# K_ MU_?L&qaht|b=CV*T'yb[/cpY$,FXXeĠ-(-Sr23J1*WnuQ|#/Xe 23aj$ 6]%uy.~cW 7>W۝W}%2`7#&/Xj߀PaS-}+S.uΧK)mJ-)B:P4)SAiMeCh~]Eg;ތ]vziBvljh|ưtNY$iHB(wO!^U@!:p!;8:r  '=ϞR͆T2pZ0E!8 +@\?z #x9*p^!SG `. @p`v@ |YE$5# NQ0h*K5KP4 FDZn/nqDPN I ;@ha o*p`&Di;d/ZFX\W$:P׿ETV#h9@&Z{?<;_86*%oOlAvM$Š!% hLvuGKi7Mp兀4qPK` ɤB$p!"p~ `z0J&à1&JH@ 0W~xM\7 +_ZA> P*MNٶ" @c2vn C0iY85&b#>vcae3Ή$?T %.*0p*&A b&Af#B8"pМ@3!9DOJq0( &  YcPa@*X8O ;b?!hɫBQɄ)7 DPBd4e٣ k8(Vs ur:5@L֘:1'@5$ElH#  $Ra MB:o :qp*5ܔ%C -ؑډ Ks Ap[ #@5?+Kņe ~!!)=*5F*A&-B05LH~|(T h5vG`ӾE@,H`hK HP I?0 dh>OD(Ls7 f1wNyt1&g w 9םG)fY-`/@4lDK0 II/0iQL}}~` h R!" '["#&I?'vJ9^L/HR`xn`^2ȨFwzI0̉ #H#hD"vL Ye ? DyBLH `r | OҖP ILYр("(c:!b?2Wueǧb} `ɉF<'.>Gہ}Df$*&K/Ģ94d! AiOm h!f{ `.!m錗-y4`>%F XfFx$7E"LAIb\\P!)C'qK NbcR Z^Dp 2 Q ,%@H*yЖRhAЀ' @tb3![ J8$fQ>c`TK" &)R;D2ԍ+v%|-Ϩ**C W$xR *KD ;Ҥ욤4"!OPPuTE# za-ygjw ep&LQ[q\#ilRß͋3J0 CGvC!nb_+%Ir: 0 eN2 Ue ?RX?%E:Rbba3b"w5wI# 6+l9DpT 0? (jG0X BRO˃Te%%Xn/)BFD`D*8*q-( Hv靖h`c[LYe2iBO??ȉE 0󔸠?X(aLXj@4b11[>nPܐi5=1! E&8B6?#2+0\2PJPaJ%$`N ` I0bU`̀Klq1 @ [ ЇҞmK{ l-,#;n=zv,%ה %z td⺮G8 C!)ye@ w+λ͠w8 ˽2TNq*qÕ"DZq `9gA^Nڊ!I-I*C0(baq pq4.DMM0 H R4 瞯)t[e8Tvf/q]!? 4a+ܖn9m{T `0.pv-Fc%bp=[L&<7Ⱦj8j-%7HPp.I8Ɇx4>)(喤 yYE FF;+?r}X$_/8Ԅ 屗_cA&rfS6r>[\aSxyu+, I41 C 嬲fCԵ9-KrcI4Sy/{g69KOs(^P Z(1{qGcziB1~,0S.~ a WysR0sN %Ga3=~%0-k^{S.#Ay>AkKNk2_:XV*SWIj(19#xF2I{+TqxBk,($p 0E?x?- F<ŬsK.rx@x> aK0O~&$x&SE] [%)e2ֵK.5f s|r2f)GI$* 1=@"P% %D$lA  ,^QA K[nJٽE?;.sX>hkEy!sX1o ~C VJ  K#Ygb=cyc KhgP'ډh'E:3D R_LՌtЄny% -3 L»@c>T$H.ZrS_Otuڒkx}9,]RIFݖS7 F[KHLBoYf~RrhM{=HCJa4Ш źCy!ɻ , T`xbTL( @j JCKXb> U4(M ?b HBP݃ ˀ@tz?Y޺Xo(`BR59 oIJjq'&+#C J J Ѥ4g@X$%RyL#3j(bXK.s=Y,K!-mW߻Նv]AC/?Bo l}[7ec^4WO<3=ETZÌRƿ+FKxyu+`[efCԵ9-KrcI4Ky/{9 Ro1-)M 8@<b(z^MAjpd(/E=5*KЦhT^&M  NaB X  -3׎qC.rx@x> aK0Opd Kޡ,6 7|W&H.C%YI BPsQkZC.5f s|r3y; BΥy9Ckoh5PkO'Rf> ƠbB C[nJټ_?;&uty Hx޿DNd9Jq?!+% Fe C#Ygj}] C rt'"Ic.OQ6%ApNÆD>шj8q7yGb QE1À}t#p&c CPvX'ODTb"@& @?` p‚gдp8s %'# I/<ӑ%,@>ܚ$AY 5A:0 ~4g`|-FB_%I6 F`%P*x BĪrhFJҼ{9@+JGOU apB~MPYy8aʹ^]u.|{pC 8-$,Hp,SS5fM0 kRDSXP=/N1# OG||BKqnWu soP"PQ nBJdru.I `#f|쀊BsAHC Z7>z-BCHLBO=fԳkfH.,ɨrCw`QZ@-9*l!Ō `.1Ɇ/>!@A5'RS%XT45#2&@vV&XjA0-y!%7.%tz%nnm c^I\;@o /Nkut7_;mKlP8O~3Jhe 5w1f%C.r^KEbHr΁axk@["B25Wp l}[7vUl04'k5,0qӞ- ))z#a3'SDC2[ɯn uxq*v>fv_5voYAdZFg2bvRC΂#> l*5@>Y6@l?mR.| @2b{x$(4Ho'Q8>@,GlBINt}5AJm$7-4#*p?tKBv hfnD>A 9;Pv7T05 % II@ >Ln fp"pс W"`0Q$9V,5x ?TMf `Y4 9&$iD4_tPĮ Q Qdb&pġW6"pс@ nMI_ݰL?I`(98X`g /!/7_o( _kf{ɿh TLOi_ r%/L&ԝyP& zJ#pq)4B&RB@@,H<0ВvE4%DgO,p, V^I?hD`O@& H@:;:uu'!PE0 ?g.KHXFV-%:{!B6w{ swUf ??ug ))2vp@tMŗ @dr90M qb_DF=>d,wRTZpj'82bm ;@:"@`a}$GIII(PHr4Hrx ͘؏̀!O'"G`$h!Š @ !]KTIFo[+FTv,Fm,@yHWmkyq51c[#aBTƣk%FJh#p܍mQFt38>`S$C2A6E20},It]5MMEuIQYcab  BӗjՂ\FFp*2sA7c\mo~!)>[m>t|ͶL&g#n֛mSۗ%m|-E&oƶo65m_-eۮE!pHr:m #|Dp"'X[ "y$^BF!$Zm(h<3XpBu 141[+q-bF3u%v֐5):jvB1x@] @a1r BErUDXI+) n$p槢(<!  /P}8440(ӆ@蒤i€"މ%`H `4Kuꕌ`$ *$7! X20eO/'*k%#@/*&tAM (0H& f\J>7ļX"8x_BB8Єx :Qfkq76 [n.HJמrw)+c'̭&$תf H꓆aY?̀< ;(5(к d2nݑ۞&CPK/lԔj'(4a0Ic!tU;DV< , &GOS! $'oBǟͶZSg}  +CC쬋$$(wv8tO H0  ZHDs뼐M S^IpE]~W17ېQ VbZ^Ri EчPIPfkQ Mv~B`@phi(~"Ҁ*{{̌@l5{0LO/A7@'G Xlv}v0}m!!.3*qÄ/DA8 B/ȑdCf$hkt xh[ܐ (Iim9:4n5=$#:{Q~'pac[vnY32RQдVL̠05OlZP\mq$1<uDp>၅g1E$ `i tQ/z,M(C Wǡ8~ 0DTL !Ӹԥ0i05x& QMjΌ"H hoRwGaiBFפeC !a= 3n-881><18mXrw*U*q)@ fZLaDƤ%PQE nV$Xp!N͐$|R] ȄPC;p3(܀0L FB$vj[f @ʛC#)Ope L I0˻IiP$i)`cgufB>k s`rBRDœ.GbN =٦Pi%N'9t3I̹s:2FU_LCS},=R(mWD}B(l#%H&*I9Cz^Ժ6a8e^a3!vjZB1HBkw`{[XfLD2Y|+EZCG z^MAk1 # 3MȋctQ@:ge X6G"O'hǘysp;.rx@x> aK0Oǹem!bT9$O1S!](4G @ scp'0 \}09<fZּ;.5f s|r|S[V>',@#uO*OAJ /ߍA  ;[nJپ=!^'8/Sfsנt,`(kN^eݝa3A%%'c[q0M遷9!1z~1F+% Fe ;#Yfbh<*9v2Ph $6ED2VS?1dGGs>Cc ` ;P{ GHe9" JEAy:sD{FՌu!D,eէGRlU*H]3 a:CHvYu:T,Pr4!N >"Ǖ>@] :hr0-+{ߞDzd".T&ޡ=TM`(,bN.((hOeQwk"2jNp;o,5_|@k(7Z!A 3mJ4+BYT[%U"Ǹ!Z3XԀ KЦr#\8G "CU c %X9(!'xuu ibb@@L&%!*}I$$ LڇbRbDE`*& PF:+@ PH 0H@`ΊE$ OTlPbIh-aD̈g_ va50|Ġ3xR1&ASCH)f#BrLHL%4d5Pl/k9b2o;HLBoYfɂldEX X: Si $9r䤱M PF(3[V/)]a|H% O蛃zI>tvt(Ʈ&͙< H|#>9L /%5`;.r^KEL["BAt~f>Ϣ1ꚅ˶5)p9hQIp3@ZP{~qJ"J*Nk狹v?o;z^Ժ MnHv>.ܒ:>=1d9KSԷ!F4I:kw`{[XРZ@a\ߋ (RX~n=BiƏu5X!|׿MX6qAxi柋$q1;.~ a WysRM$C9hJhر#1f{0K%;`3=/NZּ;.#Ay> aK0Ox85^`Lt_[C@ V`K9<fZּ3.5f s|r|S[ 0% տT#1X&a`>}B@ 3[nJپ=!^'> ՜z!٭ `.1ɆM`ĀE= kv:u@8 }$hY` AC@"XW>CKHi|Sp#4Ji-cbPfY 3#Ygbm^gwJB[L [tsGD%yX@`BLfoN! 3PeO P%lLDF B6<3p(U jEj[mhtKnVF?|L!ɛ1 RSAEG)08NTC9o 1dU!E ED`03K xwXP^`#)*Ĥ*:.BfZP  2yny8#%i^{=SWMҒu`c)-ԓcBhʋD豟K<).?Qsl5Rz>ei(K0jC C!Z3XԀ :5F}k-sڐ@`%Y3HLBoYf y֪e c.HV+jt^ބMjDl?LØ3.r^KELFa}"9ϥ_Q pg^n՝2p[=LzH@T@0@ 4[7^x-Ns*pJ- ];rKKjI59iq^vt`Pg䭨KO"pG$ pk^r@38@, 0 {' QU}HT"pJ|~@XX $i=$R }uncI욞KOh$%j}$&1^ͼ2B$i+i HTj{i,WDŽE%i#.9`&QewNJ򤲠҆ pp@3\p SIX@ @4,L:&ilL&`^ `)PHO,M/8"R>|u⯣۷D h`h;%>F:?&`TXN ! %8C AϺi! @# OWCs !(;$r\A}D1@]$H10Gt Ģx`C %!#"i7A ALZ@zpqXVlP JJOG膀;/lj )&d)E~ hJ_}, ZF`r I&Vj?膪f1,X@i4!x䄁W0C!%= (hM-'nmC6V$hG s: Q2$ 7;Y(}  @eӠ lZ6ՃbC $KFPЏBp脃i( p e ! `.5%'b @4Q0ɠ7I(  ÷>I(PD9oI"d4C%'@vy,ZC?< 5c1A4~U,FAHAQ P (!$90̀ē ~PnQy:!Qfk8?a41''O #>(bJBw {Ğ|d ,z +ZF/}κA&塐P:y-D@91$  X:` 3V,f$nD0ŀ GI|X:ِto e Cvx5^?|~QzCJXOa'e(nE9SbGX8(WĄhKN?>7 '!("00ҹ$@OR_H^%dSV$ _ SY&x :?jMF9~=)ZI }I'T03_ :nyZ@k3p>6b80HO + +!@`oPi $ 4L= A_A?UF3i{m幤.è'ʒB?hHJ V :}ZvR0 #FJr7J{lD7(V%o)FX`bCRȋ(Z[P]怩Y#k /mpL+wrCRJ)) 4hBp=ПX=|@ve~(/+'. 7vLRSy87_5ɘλ VIIj{Px!% M 8 Ww[gmtz( C@Shi4 W& }4J~` ߁!84٦E*ă8a@WrHiq\0 qTL>r}!x"Q񱥀HO A N˾w$(0㑢 O@G`>F 3 *R5 } 3*G;Ҷ;H]*k@IJ@[HX#pb es^: 5O-AWv?2Pw-I"6$kS茀|9Yi[J H̀Vj >~@h]"f% dZFfyb7FVtQz( jvDѠ"%~,Xһ|'1&BnN(Id/$:K$pԨȳ̐M|TGXu}L`*yq} gעpcyGadqQX'fIxr>Ie䘍` `Ey>dԭArڼLYF3b} 9w9s(49\'F v@K{&g&k@ <6! @ !DRiPɤQn)IhJܖ m:%Y۩qA&䎎HT*=rD|U]mEb֫QiQ>I9n4>j-JĚ⢒-L/%vAۗQin֑3͢L#iu“ZpMnJ2׍qcgW#Iv.ZȩLy¥dT 8bc#2#"4I4@*(=EUaTRUc=4E$RE%]dMERG%j' ZDߌ}E3rc_qFA\6iSx7iDp6Ku:'+vTof$mtJ5B^էj|R&y뇱%ͬxj B N3 <ԪAf M NM2UIj8oOþ""ыw[TM"1a3"PtHFrImP"lPPĦB:NZHTWG"9zxa&#P'z t֌u> $RG48k{y5W`W#I'.WB٘q,-7.(-#oKO(p҉vm%^a,lBhIL-Եaq&DR|Q$r ]W'p0T٫ѹfQ('xNH-MR4RF4ʜUHv޴oMÚѰ󮾤$T|-+qI%jHj؆4ƚԔ9h3DtEaN2?e+jXFaȰjq̴t8oIriRlm 8-'-®rXٓ\OVBS+qU®P hIL҉iTmae\WQ&!NMo[PdbIφFcEcqF:$ 6`T$4337jsQEim݉^~y٥FpөPіPMmQ78 -\CM[a͛fNFTeI%qѰJ.JHm)('!Jtj@bjIJMؤ d51ٷMx3.ED5+ K+BQ$.mBHpIalJ]cz1HhٔDrܞġl\,5G!G `.!ɤ5-G 3EДX&~BSfJRn@ ;D.p Mfpd2K 6*&>(i!lMၨI & -9[2n tLq|̚_l&)B뜔/H! } D  iQ4d4JT1E i* 66oX1Wނzyݨ"lF: ܛ%@21]Dh- XBrh3cd%LN&:4I-ih !dn}OZK˚Xz7sƤ.2Ĵֱc Yz% >!ОS er 5-i%W`zf_d`) PH c('1v1`atY`T2a7ZK ԥlp%FL-}(~+$`8lM&Hi0 R1A&ы!Y(0aQ)tAx|4= //(brP_+skp`` C143:МbtMokQT>D1Rnc|'DV([% 0e%?Zh`iE5eTXg&«ͳk%![PUU(fWNz>7\]{QJퟗa/|'ggj^D5^EAϥYe)|_ЇOjBgh`@J4kQN>(c=|1k9RaH4dD'V?1':x $hݱ!--1R rST 0x]L3xytJc.!ޤb a9K(r]T3xyoM1^)25xu#FleIzfr` 8(4_Œ8+. po\cX!6楔q&5.K)(MmU0{n"nzZYk.`+. q|0FN<|8xA&Z94FRH["  ~Ԡ()c]992]>P d0>< +. wwR:" xpXd=14bRMuE ħ -- P0 OW` xW(~8an6 !`O 0xXdp}'+. p0_ d: !Jj6 t˰xx)klL  bW8hf,Ɂ%s"rzϬ8[,mp)"ϛvКs9+.9 !rq|O_zN(SMǝqE j\dSC!$j9i[(ĜZi罶+.YX\H'/W<-|+m<[!sZ<hDVZFZ>Cϡ‰^ A]m600Sơ1Q +[g%KzH X6μ,nZXLiE%K}t7;PH `8E CSūxFQq[8Dė˃ C{,z'Q|H>)T?`> qq,"e 3Ssd a|5':S7F $Cυσ@ y By:Grx&ɸ!B1ВÌz@Q pW} UFJi(4#Lkia<rM!&{ `.! Rn><]4hؕ'2ˆA40 '= [^0]6PV(<K VG˨ + %t)o^9nñT! P\|I7D7 ?3FemD`@`/&|0kL 2°X!p#"`(Y! PO5^ 2],{빠]#%#*mD8+2Z;@2# dd"PâCrfEb -Y5ŏ,!OD?Ʉ$tXa(ZW VJh@*Ru.ВRU4+@a}I:2p&';˼|&, h=7“ :z,MMt5GRb h>9'~p\ 0ҵ=Q X VUE ḫWO(\4 `z%h_MĈ 5?H ;@5A+PA"(z$T :2H8@]HlcoEbTLj.b]PK)Qd7 $ `_9$8C>p!Y$ ; 6a dV+"o.މaqFN?b4wD<E8*ED2>ȫ :a"ICi#bƠuH_t z RXTG=!x1!D#$w_Ѐ!!†CGn-MHi)uZ1M>3P4&,7€WCJp#6:hHRa}(]pD~@ LTH:YED.4_Cn^Hh`l>opM1H&}:H!o)Cc`Ŗ9zH*]~ډ0X*G^'́?A>g;bK蓇-a}Of%3QTQ\Y'7_Lˆ(@.t0_&&!?42a1VuklBqrO%Pa!m-#ȺAPDL=~+K/.^s^[Cxy:hF/u[ _82 !ٔZ)nA#:;xy6aȪb(T"WufYSׁRS B3~]R0c;}~? ^QQjrnuSJOAC!NXθK/  1 p0Kˎ3@כm;]|l n}x$j%C1g*oDDs.4̝| @`0}x?l;]߃ڜ4 tQ5:ݥ z u}gȢ = ?L?QC@`|lp362";%0rPJ0. dp)k6)& HBbd6&uIRlta8 e=КBjIA/Oɠg<̺e<;'_4Mk89<|% <jm7+IkUH)# '[ ep,|5ZjsH9VIMkͶ; V/$ ^_H'+p%޼WI9Z`GOEHqGMZ"R3cx0: B ;Y"QȶK6.7= L`Z#S>FMƳ S Fb ;)#&iS_&ƙP|%/&ET=E4B 1\4\%Rb,zΌ#)Ni R49#OF!9 `.16"S ZF-! c%8?@: A)<Z07x xUtnd>_R4挡5/Rp=TOUj̱3H>i6ۣ BFͰ3>{BR[WJɢ!^!GڹʡlBsBn D|O{yRڅ5fzE ҟUTJ AP- ThPH$ I$4Rp :CO/*|Oe fhg]zD=GXId8Hi\(l봧{i5y!h`Dã$x $ όmXMF ռRkN EHJ-p;&EYku3(%tܮEuW,ԟ&6OFPP)Ŗd^:]NP)['E &1)/1&2hRSFt?Cڄ@ͤad `kC@Z I0 %#ZCgiU_ fH{h3@@PZQ f&;(N= 'D8kE l4i [A2ƀ:̛jvy3a,!1w>zbQQWB{F-_jG"H[[1-jEP-[X2FH+:p)|)82p<@/dVH-9z1F. 5 dM>M7%9s*pR+ EhL,:+~"Prg)0#w_  =)2F䔥fpo8*p W8>C Fc='!r͈D[Df! 轼Y*5!+~ st#2`[WB8(X_ KX @hg),Wp k:(%>,k&$580SɉI#B ܚKX(X-` !$cr $)/)x PdЗ%B{$ &,Q(M$P 6/g3ª6 yq {Y@U# uN>X%~ 2J{Ж`/ (@ |? ' U`[f!3a4B(h`n- 1I#fB` I$`16 @*RM @ Rͤ%L$-TD B%7!Ě^!L `.Pœ00D5 bB,4JR4+H|=AۤX!|rj -Q[r|44IFyl!d Q׀8RC!R 48YlohF$@b@M &`)Y xĆRPDpJt`3t@';SgTC 4%CZ-g&0 @tʀ`JOİ bC`ԣ `"'Zp },>`̽B|a5T$0+!N,T(k' 3\M1I."O$S5DF6:A[A\`r?KԠO~mP8;18Z@kI C~ܰ0Q f}g P,p7S-$_Ȑ@a (^g%ZOL(MRFtÝ>l:0SnZ3Ĥ$6t#10HI@K h7,|@CQNK+8g(ho0 7޿0,e\ q'h! L@ؤ8)ꟶ)DCHg9)&@1҃pP !M `:ZH\BNX>@䏝dV ?r蒌: <\:$z՚}p *KB+ 7 uw(,RB~I(`#ŕt`ʶ(?˘73?@(4vJJ OZY,#8 rMf}j``AHd@&v>B|MTbnBs*ru)b.ndX+v:Bnٽ_3^ ;wB&#QP0 af3wr$0G@1G)y0Q4Oa ~;BLI*΄1)Ӹhpx/lRY 0AZI 00, 2r^m1hI# 1*`,E F-o΢$G OB% ``4<.7+ *CI{Qi;''ZFԃGKQsoQ1!>a1%[?މ^0h,P RaIⳢDb-8m$.J;Y?H}}GA6 (r:L|!*2^PfUnyS$&ĈGkT zw1H{\%#+^x3ױ+ɓ$0ԌH8V~(o] fWA4:F \ǧm ?X+\Z)kRKңKrڟj%p}Jc&(tK%6{(쀺%0 c :sr0  Sդd < q%'Gg4pʠ8`T0dfj`d4>}S#gO]}BThF}`P?":roz0 $C @9*jDĖRRiH,4rH 8>oU !lM!Ԡ3>L@1&&o]a91!i, F[+;mLZT!&j=q"{Fݫ;j(Z:`H&Z5KB1lD]r+~Mѧ\;2i[Uh8m:9_&6o#ovbc$3#3FHpCN58ӎ5PI5WeeeDeW0IkeyRŐ8 '\虸ߔL7[8 9sAv*@Ͷ 1^ 'Q-mq vbMmƤRRBNjO-M^1SܸkwF܊Sso[e7f%%53I{$M11dBѫm9 KUaM#H$X≤mHqERm! JEaLj%s\fyVHIf@qKDb4`c#"C36ӅꪪI4AUUamVBH t,-4ò O\"c$%7XyWHMn)e#zZnt jmD!OkpR~;wcB.d] uړ3l$TrҮI-zIa٩ !yF' ۰V0&8"oEJ̖ԎVFjZl1Rn6񭴌zdAE-7"nI j'Hݵ[ᶍi;mMZ#-ҡf 9+mmm(\pZN_ڒn}X`bS3323&inDHMtUF]um\ymDZ`YHvt\XM='cYAkV/!V+7#XjeYu$ښ4IR lQrPr ە-'VnT)Ғm$mB;fi6-E6|&,dcN94~cBI겒K.Բ!Z8Vm_1mwQv*wR26TaR26†8O[8|Ɲ"؛q&Fui4 j0ڒFuQ'7,Gʘ`c#3B$9h/M5XQUii\e~'a G㊥h#-֭jm"l\0[WM2H3Ȓr6i2 'Im2<<4j*4qH#rKs3-5 }i#Ū%3bd$33"4)"SU5U[]a5]ay]aƝiZJX2cDcn_6Ҿr!sG `.!, IaL~lCaw c*򉡤Ц}ry=jRJ5tv_Nvu^X a]J^x90 \!(f4U]ysTn50DWCe+ȱxzޅ$J3HCn~Cn= pV;xyu>MlRb;rѸ|)t-e0̇!٩jrZ!ƒi ;xyo[ dқݨvKrU fz^M-ϊ~z= pԝa?טY,L4ǡؗUL<B$V:Ko!˰% x_ 1Ffm,H8>@;.|#@5K8[UKhAHgyR{aa XzWeYF(5A/ hZ1f-e;.rx@x> aK0O?%.}UIvOA"`)9<fZּ;.5f s|ߒKh#Rd8 |m US>Ho!1@}5 ;[nJٻr5w m}֘8.3]ʝvJl݆CP:XڋI!}~c wJɦ` iH`ӔTbPfY ;#Y6eb0!@ 9@ݾm|CH ``a ǧYi8N* x+[[ؐm`e`[%Oؔ.]\{-N]g&m ["fC< U(hU LIb:S(H7Ma3#%6OQN]mn=Lfոj f1 ;! fɷ3m-S].SU^2)^#AYXɘ#ՔGn50B\۲`^ig8 A/% \} 禞r'jMnJA`Ў, ;PC6'ٰdC9i o=-`鲪[B\d8x"f5yYN4/1HC;C#e.RiFcMmxrs aCR-B$@3xyo[ e2L -(IJF3 ~nU(''}9b vY7דOv 19uV: F&=3ij)eTCVDa "h 0E?x?- F<Ŭs3.rx@x> aK0O?G D蔒~Cr2*UiM`D `?~%)e2ֵ3.5f s|ߒKɘd8;Rp5!f7UZcH[@:`FA /ߍA  3[nJټKZH/ɣ CQE XhFx&OcP6>K"SMVPeCv1F+% Fe 3#3EY NB~6~?؍DBEb}%ɣ952j-qGQHl]!jtlNb1 QI!dzd/Dpo`ȐfmtƵ SQėYԞMH< :$:.GK0 hPOUQH `n C5 ߬Q1e;XM!OJ 5:<]D͋~5[k KwJOw,GJ: #6D 3Pv̟XuJ(?,yI L_'@J_:y̱jǁ5 T=@48;}.B!p2-P ~ &q  `1:jn&C@)TL  ,֩{Faԉ}D PFVvkBPbODFU-X\p 3@xC)8l< `4CdD`VB?'T3,ފ %K>[.TJbDMA01(VcEQY'{Yэ{hV${D1;_H)4KX(T*%h:j @ (%##7~uj*J)#:RǶؓv<)R1 t'!=~WoBX"2d\Z*!hK 跒=VQi #1 -)mNƬU:hf2Y˶j W:̷FK̚q(5.-NF! D #t%BtH<buQ`%BQ_:${%VZ%u{ ;N))/oN \% &{?ڊ㊂^twҍU0 \)p=CN`P 34v۷W۟fC 02M/#2Ն A1 bR wߟ> ]{Խ`) &2 %Vfm48 I&)%V AeoQ/s_3<BɮOFقH , ));-@Ly"!0S!0 IN|CB _1 g?ͯԓ NfCvqOA Kv<۳缽-W8(FY?weg,} dvbHb{͛-/ @b` yA*Z !' [ ;.pht@L 6%%Ig͏4hsB _~M{~hhO$5ݰF>\}PtǽA I}z^9"QC7~uGC& /E_`Q(k&wbB &;2/ ךwך}Ty*Rz)JD\#?+'+"*y'bbEF" ;)JJR")H",{%)JDY)(},'@&?uP H> `0Yk,5܄+$7/.P+$bq -+r}N5¥&߫kS:R)JDRٌ)I)I)JN*iJR'r#H3)JJR")H(w)JJw)JD\))\)ΟhJAM @cYޫɫ;P+̰1&RͶ: I|}Y6]Mb:8 G㝸Wx&7^@Hu@`!asRN)HxJRRJRs"ФhR5bER)JD\)3)JJR""-iJYrERqrr!)m;$^Ra=={4w͈dZgK#nd| :+(5U?~s6%@o{6B vQ, :A5 C Xt >mMΏsbF?o% !Y7".RRN)IE“}75 &? F;Ї~-dߐɥS ɖ\؂c`),XNo0 0io6' {d jP/#d^3>rYBm| q5.SƟR|ROrERd\)9ܥ)r)HԖ4ڒFQR)J M vi)JJw)JCRR\)<5׀2Cn1+|y"vW(ȄCܜ'I}Mh熖 +rG]a^PFD~a'*&rۈ]Q@xP A.bhixf&&ofdM 0-)Kڽ;W&.!JOюJRqRk"5Rx_JS(y7?FԔs) !J蹡SJw)J\^,TX 9O'uP<2 !Ǭ `.;N}ڀJva Qg%CQ"sxLXh +b7,͔-;4 ﻜ04֏ίzH@;xwo̠(Y|߻{dIIxǓ<~ +4epX@;(M+|rP@8 +8ϼT^(wzCv[)Ξrw#M>qfҎ~nbb{dxss{ZDng-&]&IhA$ }kJ;V12aa1nw[#q&@n3 QjϸZ@1bpуxPOf<46Ć$bC@8ݑ4(1!3;'3M "f5p"G)B v"jLB|RPEdB XnO%'5 o㐻ԁPY?+h V8kj & RQ{jRwA\wo3/\AJ8?M+BxYQG ͒Z b׋n7kR9!0ȾҐ*#~ ,.$lX {@ l#6T ua3o)o04 ވ &$q>@ \|/lRR8pM-Џ҅6@TabJF =  z3"ӣ9А*I)|A J)8;XRC{#`i#>fTx I~)r;cސIiOuv}atQBGtqjKI}{8!c {Ϥ))+}:>݅OQSWA :`%M@xOXᅉ>iK܆@ $}H !LN߷K]\;PD1PNx 3NAW @#lvJIz[ #a; =i7H"$/U!)yo܁R"rq!_b'p *aւq~`2/ZQ$FF@M\|SMzr' GO;OoŅ7:r%]`D Y}YIgd'vы/Y Wrm..O $ ~嘃C_R~hRն3 `ӝ~:%/7Tt@ղ{l;\@P(rJ)}R117a#)TAg9z$#2hM/ye#t;^tn*\n{H2&Q:  SӒz{9w(X op no|m_ چufv~ ̔M>P &w@!BOi`:Af5@Lsd,zGsP @%K+9Î! &dWݖ- д- m2&hJPO! `.Umz9 !>@O'^ H|!RwfPeîd_`P R  KMvh uJyAH4hF&U daw! Qξ tz?(뻊&TAdHXvMHg5 :̧B wנ"K@@pĔM21[mM> 3@H.cKI{Dnop^Ai1'X[/Th eh-)1 =jڹ }wTo0~ZyσMRwDQƊ7-?7s\)=ar`@m %`@3JP#z .&f^O/y :0hoأ20hi~ԍMzUw]!l>2NmC/7|&XgGn? xg||fN/;8R) ϽcC|7_jCd_|ԄM2{}Sh/s:;oA4 oue}Lݍ9awB ǧpꀜ T|Xf;_AQ].LIhÙZ@o9:&PÓs`7&p_™> |!khHUG%='`2:R e؄ԜDMN֧0T&%S&˻M{p3 N?~5?-)| yI ,߸}wQP'% 3NWLȩvZOӱVRRؐ~;9%p?^7]] SXlRץ22!JWcqJIZ$ˀ|%,W~MрĬxhS_XjrS紐ҾӐ+6r]݁RgBr/ qgr_lͶlX^OqM:]Ss@_>L8u0%Sw6t6 laI) HLa{g&9n.ICU#l{au83c xSqޏlFڗqU=/;A*z2Mi^Q' 28jI $QJRz6hK Qڴ )8U`)؛+I7l}}\]yjo@]<ե<*6Gk B}pɤGM6@3@ai )5(ۖ(%̿j@( JY@c|Q+4WkX7~}w^jCt9֭w@5w.Fk=zWY=[tL^0t/w!jP} W幢E%<6:W]    hǯ\(C(V,g֓ jmI5!I] jr8Ŷcy<5˽?p Ѐ҃9$D| ҹ7 hA FahIZS}KSl2FZV{wFmk벩mCe3UXTvjRXzR_D^t] ^@A !VhjCS1 Zso & WeT]+ZMI }7tZLq-#G9RY)0A;,}I[k'uO6O;Qt~;g˺W,+,soGJy= a1Q:PfY}A!G @ !3kϚ9j&%)mM>9|ϟ4Oiܫ 3[k 飾/HXG0wH"Xpi,9$m.)k[f8tia68Ӫ($0C$DT0E৆{8.z)Lҭ3M%.SEE7R0Ʀ0Tl3&eжYWq +J"JfdWC1+щp1BR4*-ܳ`T#CB4m"*5PLPPXU]aeq-Sf%$M{,hW^[ݬģ)è42Jac2XaEKPH0d QظG b#HĪBW4FWiܲihrƶVBNunhPI5p}a(6]+(Ӽ:Jd-RD`̠rJNu5E2l HJ3^RQH-d OVCbmrN?|_r $Q rq"9Q*R$$s7T.tA%[8MQ9+o_`T#3S"Fi M1HXeuZeyqןrZYeԴ ~ fЉexFg*1M[cp0[ ̅L&֦hDr$]M\[3Eh'XPm6Fc<@D".ؐ1+:@7kZl"h%28A1"T<(A"2ReQIo:r5±lLtq9ԍgM²ըS YH* Y #rsA#jK VD\J;[Dw)%~]cVF*V|Zʷ9T[]|e&i_tm{;(W/re!6wQ""u3S$QWFF:]o8 lzn -{ tӼ(iI2jJu"\`14m0`k>$e|=m]FQW#4o''`w)EA!6Ry2Rt#dda:'K-VhoR7" d0`E!B2!6ˉ@&D^$3sq77a_|n~`ѿg5^ İs܅씡y 7axj߸Pf )߲?/785"I%(``ΧBA0df}w!@0, -!l[>{P & :Hϋ 1gO[.%8Ԅ8G#q8aX{;ji) (Q/UBv6J=۟ҭ7?Gv3Yn}fA{Kzb @`i0M!tr@Ss^(},M +1G?tf Kr? 3z/|~N2giM70dA,er uWU2^{nh!Џ Q qwdY 0 0 9DC:]\03^+ÂcyFṃ]@!5 /!=# ve91o` X0o++㫎恓@`m3\*M>p 3 Ղw8P4 ;S$]PA@WtFe9 V$,qm<Ŏe\Y@YL3[.pp8)ݼP  X+A zxu6f:9_;CKJ!htTLdyMSoD,qA:-?@OLs#( ˜ a|o8eY͞&D}3%%L-dX@C?ɇ<x2 Cd iGNT*y2´c2K0p6-v ϛ/A4s>]54@3'OM!Q46qG7m?ēY.dMwچv;A0gb[쁃Nk#PwQJ[QSXnc$m`DEsk6IĜɦyl3 V VPZ /[ »M]#Ɏ[bY)00`M*::U@@iaөEXjrt0bJ+2ȍhaŦ0)KW40dM;l;o:eQ 3YArT3pV$( i8}-I,4f9FAI,A1@ 3)A bCl ?x ^MB c$cVńU=TXW&=[Q!(X9&rF Sh1A!P:/1 0`c Ոuhʵ0UKܻ"GLP+Ht6C896 c8.,DA N ҒgGBP;2dc퐈Pz l/.%MbgJI>J!`hb@rBh F+Nh{  `(*4@& XieR. 3I^;ζh"L:sZ0jJq4n0I(_?,ȲQ@a0[HچZtMa52uSv@A #H%8 !IS(0Tu aCS!0%@f w"t =[B&1r3bbko'Iy6AQ ;i16YGb^A AEYƺsC]e^uwP$mbC T-8RU:l;6gt0&,tڄuyׂXZhx,+bl! `.!qIĄdLؗ[c" nA {Q.Aw5[ ͬ:k1cJMYͲPj+|:ee Lux)( R݀PB[* "auvZIU4\q:m[}Q,އ0ph˕fˊ%DI))$k6<;#Nȸ P9C#Eo 8_ob,Tz МIUJm9)n6טqdY@5i`;]߃ڜ4 tpj>HIЖb.] >FY&p (MN†`W1pS_8e(ͼL8!3%0rPJ0.o\Ph 2pߜP005V+& 3 GuΞ_La j!uz#0FRw/8}(V ?>l`/h-97.k4s;'^^A_]Ph'\6qW@LQ@jV0g7>eh602@a)/K>(l\˰(PZ.NmgqFdZm; V/O^ ss6ׅ" ӛHarJS/& LGqQfa.f&ǂ@ax;l~uQ@ ;Y"SټwTIc5 1 ֱFظۇB2 aɴ@p _ @ 3)B3s!;MYK? M`yA"*IzJGϠBY3!:rfKyT*{Ӷ6FVbXoiJ K~avw,th2tKAS #H"8#n.10QB-CT+B$tG@&(޲MI94Sƥ(0ӈXp Hw:a/dSЎI%$I+w$gXL$1&1zҥjB!d#o6e 09 !l/l̓ i ;PGas^GYb&`trIg | }1H5pR/DUUdN0nӣw?#Tw = "sO>G$΂Hd'y0jK)$&dBC޺~:}BXB d!|&,T!Y[/aEL8h,I&HH N ;PC3HnBE8dKPݽ 0I>B0 2-*Ei$)ruf],͈SD5[F:ܬ Q&[dfӴP-=$] fŠj^ṿB>,>@ RLA7et'$IA$Q 38 kf$CT$Y "asHt/al:ܛfyAɰjD4gGQ1F I?$pס5}0ҴNk D*UTo?OE^xUi2t;@!!$LehIF1œ Ԍ|! `.Q@e9=hb>G,F$921h# 8*5@>Y6@dx?mR.| @44a5 q=A p`0 @HT(10~4`T%4gx 8& &t/HY*qF(p 0P$XBh 7+B  ! yGH r $ $x-ೀ*qxt#RO. Q9%gJp$Ҕ-:GH3,!| 12φ" D:m9j2=T".#^^KBEx &~Z87&^x HY"q 'K0&rB:HAp N400FsۮHcL&qҌ},_C?wb a?oݽ$$ٖPJgtWPY Hiވ{ A"q $0j2&g!R@E1NM@b #6Y`;H 拽 Og,L}O חY@+ר!/@@M: a"qaA%CpvP*JEC8&tZ@VJH1P )߹ Hk2J@%4ic %raQoAYqP tTĕӲRQp5hKqdx+?z#`J1Ԙ05D1#Q pp $A 0 hjy` NH7d0a@*BZ(1. GQ0hnߴnjkDgL@ 3p 4c0Pt↨\Kb %Ӏ sp6`-H?.FPĆ?f @NXC &pF-xYdā@2ZA 5(&p*_ %<#qY!lPO `A6a`#x @@.B x <čgFąɀ | ha ;grOZ^5ai1W)O G!Ԓ̀vvX`x(+INM&+'%?D!B XP330aFm:&lT@ɤfJ&a M-dǮв^OO ( HA# p775"Z /A]iwL4߉X||}d1  y +j9<cA.$J.]u@tC t[< i0 8g`M"!@Mv<茆Ɉ 6``b8ԕ$i(# $< 8(BS|W1&HO|RD7!< ies 7R=!fכ}~/* Pc`Ŀo64#D`2``bSb>!Ɩ#r_&bahi/!D-/Y)CU7œ;=%5mƩw ~ݭrL9GAA.D#pa }֎2]f- 3M3B0КX` &5^?= \">(Bg NDA0H&6 RΛ o0@`8`@g8oq_L2SƗ@+h_(+eMYH AQB|,COd@n+7j'ɽRR}IPV YP:^6jd$SQʀ3Q6nE6b!_$@U`OBYT5)LK12ä,4ZhqCd!49 =v`d"LM0X`gKCpfB> 59oAiݒjX_0 3&CKaS\@BSbL& 0a!"I.i;Ahj?;Yf *, b @v[ JtL%d&pd8'jt ބe L$?@6.@NO4檍0uܙcoQyp@  3j%jm*! ʧc<E}!Y@d%#4-}soWAOeN&֫,36|WNA!Z"mG F+~^b/|'ggjӾ,cn$}uCotC7S0UdNCz qcnr%˘Mkq;z^^\ kZ2fj[#I:ke@衹q{@T|?m莤4RVخ7{§ ;דO}x 3.Ե9-K\sgoK?Y1< ]b^K]UQ ![nTq4IJF@v>6b"I 䠓"a@xp;F aa03mbE;.|#@5[ %CWSI&MQI `i%VJj|@!3G @ !ɡ 8m1tTNmjNjaR~EjR¶Ƨ+UCJw1B5dYƮNN۳ 4$Mɭ /dd^;3E5+]8⋳КAbT""""$)@0M=LԀS,va$R D0 }eG95vӳ6Paq4tfG$oaH*rxnd>Ƥ߼G|baRu_⥯U[CCKsN)JŠp=q,[Ƌ_*_jFjG-_+:f:QgaȸL&r4]MߐLAUMوXK;6M5T`S#!236I@j(0ACAAU4]TeUV̨hR"(-Be Ib+> 4qhKT E^ԖvɸIǮBRjeH*8)袛7q4F F"2uq mop1( T߼ֺ/˙v(IԮUKIu@)Y4jRRN)u"R$GTa\q[e!TYێ7:ieƶiڧωH訑l^&&HIM&Q ci:n>wZ(d0bă"&""$HHj*ERM$AIdUeUQeaUe{o,+pchD-η9뛛C!Ŭ:NC۬L]Ĭߴ z²ArL9hXZBC iI ?K7^OksFHCjX4̪m H@)@Յ2DU+ń97^|5zjuYfy{ .>rG")sgi~H#R"H3@{agck|W*Ƣ ļs媥R.;ʘ'jZ!Ղl3nt*ðS_`S"3324I2@31EDQ=$QTYEUaeZ]/!B -"MO7Q0ѷ.6Bf܎Z I-hMW3X ͕Ⱦ' *[D2iY8䴢rˀ*A4a"ENNDwjL|5[Wi)4r8.-:t˭Ce5%:9U9K JdR̪rI 'ѭsnM%ʋI[v6‡jfG.cm.E7I)LN i2C{M0MݓhXѤ]YKV5DW "YYn&hڧ]Lb.bc2#B1FPj{ @OQEMeqVYu{, "B&ݛ')Khq$TġoCnh.:v%g6$Ύϭ !t)jU#1G-u5J91G@Xʖ΀Edg뙭*929+ )Ha!_4(>$j? UOSeUKIQL71mUC#kigq#inS ,ZV*G=CQ7\tw^snڅi䍺Kim@`d$CBDQv==ZmeYmZ}ǝVt% ^x[/)I`Y.6,-Fsˍ"U$VU6hBƦv9[4R`kVK2DJ!B6/ԘXkZk*6t5]r[AZ'c/Z2$N}dLn$6i_8 kҥF\p|sA}\[$]v4W.G|dI\[ʨQ7']d 7,W' *m]ѝj'6lqD=T\@bc3CS7m*SA#9^~!F{ `.!-[Z"E |/0E xOJӏ4qk-x;.rx@xp_[ d'nP̼2&(J3\p+r\VQ3-k^{;.z޼0O'W<K[JtR7ؽ=ptGҠ>كӜ3)c~ 2CY`X  ;[nJR)1B&w!Z2za7'Z]t4'M&~0 ]:-m'P`Oi"f/؞n.Bb0&E ZVdQZ`/IC@Axy>#+`Y4 ;!F1e,;z' HGٰdU 2]Y$yr ~#%fK H>bH8RYFҷM<;/'%L2E,1arŌ9 K~GQdܓgYv 'vCWՇDkd+KcCraindjz$PQ`C&p~:u 1!PxR,KQ-: au< Cb_/K&iQ@$З>&$: Gk ;hgBo6MX A=FV&@<]puhlLN U,G鏄YfJMzD)59,Krmgf ;Py71z"Ba|ݥ" J"IEmq(#+SJ5!upYwB JL$g-&t X܏/YFcS̰;PgAt0[VKRj Fu_-- )tzMI: O`'P`9ɥ+XAdy7$f R* ) 7e$)/ }x ;.Ե9-K\sg @@yWIS$wU8so= 14}| $5X<pC0S'0Qo ,N>;.|#@5[גQ]eo.MP7&`Y%G`_  `^'Ҵ]yQ~cBKAYSzeb=8T_6B w&!PKc=HF4s1((,9Q'C~%;,!%=c]%~OhQ52ОK C}yp h9i{Q\ t)?kP3 M#Y..2.$*BcwЮޢ%`'0KQ#F4^)ܡ'w0BOJ ;Pg}rUB.-_8;MR0aI yTYϡ`Mc)GD$YvOڙ/KbSFp : xDk`.&,6~y1ʯD&ЂaHkH$HRdSYׅY-B0}`ڙ:' j[A! ɺL0Y7|s$#5D_~$0y⑤#G抳4Si{mҌ6:̦x-,K!! Hu>DZB$ @H7]XKanf}ڞf: г1cbW<*2qA0*LԐPr_= .B~0I (<RYss۳Q2qSp8A%Y@(@uL HJG P?DXGXE.ˁH RbJ^͟}G*qCV'0P `'t_  P5 :JIб @W $h + 4 u 00 X|gd KB Z?`)"t1"qFq,'Ag*q̈́$I@&:gLA7h4Ri-=? 7ݢ_a@B iCˀ\ޱ S\PEܿE:A!# .KW<W1?A"q)ywP7ζn)!J ;(̬7fR\R:=iEA?(ڨ3[@OSo%q|qe!$4! H xQ }ɩ"qf`c a PC??хh` 0jrW芠M0d2R?lh@ eTǪvB HjO,Z&xܒp|@4E/@AdX@Ҳ@ Q&4 Y700b@8А2C| iLG&jSFl-Qf$ID 1(4$kA4C F5`#HAF\ "sfQ$ Q"+?ɕ8Ӏ"Đ$*7gy/>/ !xN`Wb&$ ϋĔbZ`t !! d3ac?@[/JDgHO@e@7R^TSViDM> (! %R15 `} @=8ǟa"h%tHY(!{Vug?y Đ$d% 47a@ !l `.X!  dH  Qd%p= .H]1rg8LE0\b Y]05\*M0X[ 7 07M K'h0dp\$E,eDri05!D I20b#K%OI{)N ؞"?tR0&~aX0)nD%FtIF,D< PX rkdJKHKp<3¼;_j$ @ԩ+Dc22lK;,hD@c0MB udpM(b뢠N H+;D_%*UHĆ #o_. %\xx=y,%i~MW牟. Ȥɑ褱b:!%"`aGiL􆮍΀ju¡cC xC<02V4 ,g_uQE0%YLZy6aneЎ0(\HOGF ͢e 'XHa遫AJ\cu \tXHl0)I4-M%|莜 ?jR0Q 3 d$Jy) $̔% 7XR:96kj$ՊA c4P%m m9a=bMOJERVEE %c`v+L)v;H)b b_\ODc I/+EpW9``ԁP5J߉!)}7 ;:X? oѢ"@N 4 {yoY;% hԔb(H=2y:$ O&J5$"SlH$h00n;s G=!$+wBDY&bZ*~h}$!Ƨg. `6ddH(h}'(UKH^}uY7:$2t>!M]@M6&s`0!ɀ `.!LaC؛~^T([|,HDQ-@N hCw6IX :LіD&)P>, [?PG:%>&uOle˩xb}Ax.c0lc/0ވRP; Y%b΍ @nXDr<+#uGyD@ALaB"avgTA*ϊEHC]8EDvY R` %RJ?UCF' 0)%;!()@1H>IY9p0Ge]ܳJ̍z(ALsu z`A)2_BL  h*3QG-G$mYx$`0b6kϼQsBPhG4<è(bݟt:J NHZa4*VJ;?|>: }ϕRV{+(|UkЗI>MjQ0=}b_ .+G+{>lQLP"(jl T$VB4_ /`Ը1z椢V{1N.nd%& *C z <.@R B( e!)A͗bk=R; S:& ^>H00 tccHG(J^dP95/C{1Z?&w-4%#zd"D3tC\rA{犺5s=z5O1U×q Lgv{raR LjRbzG6j<麅rZK]jD0l 3xL @T0aH[!%QyJg$dX Gg+#_mՒrgEe;Miq2 eQȲ9C:;xˋżQ/t.v>cc )n_\X M )<aTaU=RARr(u_˪`;^+ÂcyFmEך"ފDB,a@t̏$W8(b8M 0m qs@ɠev ]6m;\*M>p 3 m6E= T 0ڐ|5M @%%4~wGW}ͦyˌ;L;O;[.pp8)14j|;0C( 0bCQ 펇zI"TGPTQk2-O?1p/_(gs3g&GD ;%%L-dX@C?MO.D d"4IAT0 D (SҢj ޝk)i=+"r0,f 0Yg`vpJɢ9_w.y;'OA2i64#>?i:#2Є.C4S VJʑ:"a) <`\_ik2/'1pK/-#YԲN(M4Ͷ`; V V` 7 -¹oE,liL& \٢ԣNR,FƢG4L`[ @ 7[b5X#+=FV ;YErL$nPݼ%DsC x0UDc:P|-;~~!QTo% '@C: Nu!#mix0lkH@D]mt'*M5.XPgGK#g\4ǵ}rccFÐKK: ;bX>&<\$SHM _\.kyw 0_Wbvxf2\ Zʡ+FlWWT40#Wo騠éB-Z!ɓG @ !"{^}~7^zW~ )$?"W&Q0Дqa,!v3$jy(8#J f5Z 3 q2-wqҲ-NUr3?1HEfy8zdwm*цh쪾u$_j:qiМԔNJgÚr21qMl9C~ lQd^JlqxXn"I%hw"|\[Hk(3}g^IB4۲FU BM9T 23FwhLy`bS4"E!BinP4 8 iUA\Q]Yq]me!a-H@hw[ڝm>kN6f9`Ǜ%fNuR{˭JKH7`YRV^W2dp`s34C12)4bM8Ӎ@IDYuYmm,a鐕B3e,[M{L3Ahٹi׉"uCä.fi! %ֱ֕W] Y4Iji1"͗{M|ZDSUlek )\5p=:[QX̙E,fȖ:zwhe6M,Fz^ OmHZ"gvIRUe%}x8@V>u,)YƩ"kzīqLjFJfU2 qbX ģJM\#1&mm56-|)`c"#B#FE,谳0MUUaevZqǠmǛv"PU-FGI6+9J܈IӒnmZ!mϣ;b)UҥyepVxũ $Ơ(>-]A+ D:eXȮERa7i[&Fm@HjXkJ-f|˥5I7e,oWYEJQ&&6@,I,L諨DXJ"drhmXڝ(.M6Åh^[m $d~)p@Jˍ:ksq-N^CFVmڶbs2D"$F 8ÎIe]vuځ㐔Nǀ |-oBϣs5XIVKb]I]_Yоi:kv_ *Pu$E#u~'#ocUU5Ը(iݭXtUPQR#rzO mf%)]mRWVb,RPtiSmTҺo w'>,,2E9iK2!ݚ]i 5.TVޑ +)mn#{Z>PpկregtuNVt&&%"`to2&$@UT`s4D"D#I <Ï55Yq[u]vhv@-4h\Fh%(U飼1^ .a'G!;N7f݌jDViOc7:*C΅  eW܇`/t8ڀE+yR۪$'RnUI)-ur(*:&| KuL=y퀓XQ-0 E!*WH'@ 6'dA@䈑*ACu*fMD '^P+TLHGH] 'CP3 }U DlUEw櫪o ;T:D$:`ltttIQa1]1!&:tNB,DG7.(1P]F2!K"za]mJK=?SGBM5iV7$a# ]2*fp 4ǎK\,0% QUBG}HDjٚ#KqʡԊ%SP.:HʹY7Ft&&fI˓I L`ъ_. 4I3~ ~i񉡽" bYMUR>(G}!B=UD54(cAOS, K%0rPJ0.6ׂx,eT%3$I!e$A[Z3 `a|ɢ<ܺe<K'_4Mk89<;m7o-(ZS6sh$b(A;vA%*$ 2 KY"SaLfmFy+BK3CZfd{k۩_v:>eВ4ƒ3`fΝD="̑ފ II 06H KFʢi6 UB +Knޏl&FZwQBڬ] Ss#E`b!_EQT#PqIHMKh  ZfI,xM"WQPxU/!ɹ `.1͖A>]WZtXK늬?PkuU[Sin Jizm-m?溨u*ZBq#aF@tJQ"$:qġ I;zBHKh tD$*Fj# ^B,:q[ ! 3!vb /@`h 2H`M)!xți@@56.R@nK405G>}-%"2qn \|M<@2L7 jk ! f.p2qDCĖr`!1IMt~ x JSp憎$NhbZRJ-q =R](D ߳||`)(@1! -;H+`3A2qDVȩOiAd7v F/Ŕ0ngTRp0Wkf}uD046VdߦLaꈥB4 ZMG7L8B (!Pt~+ko(C(a&pV ɀP)b| * NN4P}vv>g*q`Dx@L!C!"I-&|K 0 Hs0&I4"(n37h&BWS6 ,RP pA(#C 3 i)0D07^;|?챈a 1 J+.Q ]ډ#JCC7 $GAD> R./’o/TB+^7]rL&e*RהJ(P`n&E@t*p>ˍSdu y\A&!+1nYg܂R5 +'{ڂb.`h9LMp4 p$aB`,a$ivv\JG?ZY_8 aPņY4q0Ά (H͂baHH xt,l/DPL9 N0Q1 F(|b *r/7Tϻ /0N.ލHwPASZf @dP Ҁ@3$BeM uqUC[ O4ɤ n={㬄` `;CF GX@h(4?ņ$g茨, @NrbB'>tX Py{>PY`8-e~";00LR6& Y *{PN>WЖ$X@{X73ǯ~AR8i5k) n1[<`fοv1h41S!DZc ɣCHxC>@B۰nBB@dՖh x %mM,ZF:0lL&)x10, bXI`жƌ(tWB%6LOˎhOc& ,ɗmHv&z&2@NZ@pKvL!)8 !%Fd׻n>lbaAY5c2r! `.![y&@T#"(x9/x>:APKF V+r} ;A xC`[pӥ~UJ28)>Wu´hI *$F F@WDC`4U%a|%,F~E!&\L٠H J(k\n4@t%ۮ,EQI BJ[ߟ'|1L +#Sn:'c5Eh4 ˉE)17W*  ɃC+% r!Ddv;0RHFiuDv 2Aͳ u C5(LH@^ Kյ¸&!p& aA`MeA7Ɗ& #lzd?`z̻o CUE6qwAK:Y/d1Q9ɔ`\L b &KFDp0YԞSx #C&֒o>_!Jh`0! vZ[z]w.RK,~n^Md=TtG l}cP -P 2>V}I ODKEBX @.< BC2BL!~-cKnC}4 1<, /h04's~ЁK!7}`)H806NZs@1RI0AAF6$M 4A9;ރC9'7?#2 vN6`x:W3z)ۼDO2w,L}azs%2n&Y@_ Lto j{m&P&-AkxE|qw7wq+ӿH< S&t /L` ,516vƆ&& à1 G,QIB? -#6LJ ALoI#!z# QCt7IR\@P(nW(NaA}R2QY8bk"@ %bRR59c7 ݯX6?B`Bh 2i+k&3Z c*V=!*Ռ\d&K_tP: !t2|2d^5H}AX@):t'YMQ0C( f֌aTQ5?Rs@Bx y7Kd F:| Idґ:hRZdh(mIO>iH/asyz 5fawHGV R " 63KHvZ{]0U#uZK>Z gBeIU}]٠KxN֚na9K(r]TKx`S!m$X 6 P^*RqQ i%uqqK. po\cX!6R^:fdA=m{m1X-¾&.;Zv K. q|0FN<|8xA[i!79fJrЍ CD11g,sLe̺|@"`}axK. ww12YH1H)*_WSk)Dv2M`7`; afO CbY<,I28>K. p0_ d: !Jj6 =m`n DC)n[:|g:Dg z-(` (A<`G[@ǚB-`yK.9 !rq|p_za4b6 `%.)$vZ6F CH6BXBD~>! `.!x:H: lK-a$?xK.Y 0Om],g8Â2839dެPGS{9a$p- $5S'e4@8Ӥ!5Y} <$ zq^$J!g#Fen5Jn:U LZ 71A|w,=R|uK -{pZ0 S#c'C7.C<ڤLE-T@j2`0ȳBu䮗DF,,th3?L `g1@e aaOͧɷ͡ K! 1Е2,flTHBѴ\k)a-eJԕ#М5Pضwnpɨͩ% ::.C6 K"%EJg%sIIqR ɃM\X6snJi aM-<[I,oQ<ۀJTePfI"M0"& 4l,蔜-+Z.MH WT81.=1AYR݀ <]̩/bIѺؘK#°}S:fG(j-^Кy%CXՁc[3JQRJ/ٍi*pfyt >{A)Kx]O[ז1d9KSԷ!F4ICxEI*g BHV@1)|'HJF4˞VVpb(z^M}x C.Ե9-K\sfQgPeuKncԟE&d` :SS{Ox] @p;F a03mbEC.|#@5[ךcLH(/E' S_ڋj(7U +a@HTǚD{C.rx@xp_\΅PLCSqM #"%U##aݽyl^ƲHx\C.z޼0O'W<K[=m"…ET,$! \sc)fDF MK%JY֊,SQ,)$8eLI@zO %uŇ]TJK  C[nJR)پ%f 1?-gh%y(%@B}$@x&^.IK7qo(4ne3g o'cIP 2  Fކ7b hjm7Vf C"o3nR:} 2(y:{0%TNK֎p'Dȇ $w$Z _JƟ=$ |Q{,4ۡ(Tp"_  S#^LG@0!E1'Z(Z@VϷh},KL.)vEA %L*96D Cpfm`>)DHJPI "Iia,;Tuz(%ad7xk%U+% !G `.1%͖A}_ZɱA c=6ILvu(̛ C"zR̋yqE(7W Ii 2H0P`GGWk^ET!N.JtC!Hfuz~mShZ]1IAPoSE! R$QQBK*F80 h +ƀ]PV6C#]\,6$ KTf K8 Kö;_ ! /G#_@/M?x[rkè$t^Top`#I8Bߙ)կ/R(b)q\ ϊ@iE y !/i#䆖χ%gvMY1I"q&c)IJP` hLj>~GɀLp8GHEGP^M 3nhtsP`P7q>̀2P} ` l^,tCHb ,*!#`IJ alE %FfU>&bSN߲w6 w%~!$x*|8Cs `A4g&V 5NoP0T4`0>g j rXW\|艥QӌL7&"pgfQ,3'D88n_sBB%PS4! B|/@UPԿl4+ !#x:kJ @hax5Itj"@'@ 0XQ^c!/rlԔd18l`~nJa$%pA4|3Agy,5M AA?&䖭2ThvAg f̡f/ OԂ @+HX*p!!pֺ%)V&D hnhp CNz#f$B&~IJg4%IL!DiO TIEtPf%oW1 0rҤ0GnQZ/ӱ/@@>H`\$*O* VgGbzF*"@dj٩% "rfI  hoI k2Hg`,ZPY8fJtok u4i<:5 R2҂~V 4+aA' Dh,70mŠDq %R͛4ڤ!RBYLgpUHFh'I K2/ nH1%NYE݀,t_ "W T `EO6CP%Мz4A.෡+DuCXА`#[C8{eZi`f$a ,cVi8L(q118I32Rn%o~u0 }=n JP9o0xDBt1a!{ @ !ː‰ƌI>L%X3IE[C}7f "}ӄzRClFL> ^T[1r6bw=H`T'ReLbųĊq’g 'ĽHsZi?Ȉ3Gd$z4xm^dL ߡlegnM@ƽUѮD1N>NS+nSRX+aj3eihb/b9RyZR#jpU2*s2n&m_N+%hDh)lӨE"Y5o) U%%]_"IG]gkX@`d33A&m'U=qל}q؜إrW~W}-nLpFG!QixD4c8RB0ZܗMͶb4u(Z;zi4ĒXaȷ Ѵ ')U4q$$D HvfaL8Zvz#֢?JlwSkxӰgձJn4UohC\oG[Zql}:J"i"<ʄnf='!fɦc|\r8E^HZdB}QƓkNlF)uآS$fHKޣ#bBEIe DTMUQuTYVXUHT8%VUae؁jޒ5 _C5 (5++-OEmE$sH2yŁ|kfd F i1O;[k(cqIY0⹗yhIRd^sS)+O[22챉 ٫fSq"tYo^ e:0釙:^%CsZM0ƴHnH& fh;Y8Ulk-; N)*;Utٶ`!pJ+ .LPPthjȰۚIQ,ĸi*C] ud `C2""%*HHo"h H=DA4QUDUDTaUYYiӬ;@wQ!s֋ x3D6;J*_)3dR(3;HQtGNpߺ'`$Y;P09Vܾ`JLHK ۡ )$ s( #f\CT4LJty$k !=s*ͭCwہPgaJ\DNsd m bBa#p#C&SC%N aYDDÊGX-ZŦi^ɚqD ج+h1t! `.!ͳiq3x ش| |.C*vJ#1#3Jb-v0 hj.= r^Q| uДXhh HhX0 4  (3 4ބ÷d @P~8j%(=Uǧj P */`@V"}7 nMD\}`+ LOFOmΧ)2n9JzF 'Q)'L4@;JF!xaYH@H |`Oa]\WY3PWK!(B&`0vc1>D2H/(b"ALfn<x3#}Fǎ?E n#1'D\(HdBp?m IaJwv`K|K(, $ >èāj;+i:+G,`0!`_]DduW3GIg:wg *˒K/Z_-rIe?RH-`|a?ҿ4ҀpIfL!LC^(`ؖJD:@:!wsiD߉h{23|Ib'2!Iǧ6(>7[woy7 @d Bb00\Z<ŗd[ ڂoR]pN{+bF{ϹY+ $ 38tR>NMݾx:vJHn $ D`p8EoNN2Wg]pұC EBEA3~A-10lPdSQ& HBL rɡ3js&P%>JK/E HL UhRIgZ r1 |PQd+pi z#0,`%05rG Kc dRtv `Őg#Q pi@9 'OH/nzƺ@70J %Z /mL@y({[(} Ii/] ])Y]djixwD,C@YdM2| `atMZ:.H} j:6R(tX>zTGv EP!  S FdMh5 9Ld.CsOpD>p7fwQt60 0mA71&A$^7S/'D1C|Ts!L8rH6IɘCxyuFZSc r%nBi&Cxv #aTQ KX"`g`#qGcziB1~,0C.~ a WyszbAF^mbEC.|#@5[ךcRKڗ$I}y'а$ ߪ\r(S d4RI7Z`13À40!u#h`&hjˌ_ڃϑ&{R d]kTs&֢VyHmek3P}`xsC.rx@xp_$csJ9D%! Qס$XHa51E@$JC 4ޅ#0ɕ'5$(/T*0΀/h XP` ^d%xe{app F/|E &J!Z X  ,M2 @{ N hC.z޼0O'W<K[Ƴ4׶c3Rﰊ+>c|[ܚҀ&Vӡq[X+ܦD Gi: iHJJBWm5 B/5z@ C[nJR)ټ%R`@ `,`Gx+ŀHV ?o'А `QLbIgIK~=eh %  C"fX9hYr(&7R~5+SF)B F9h? 6e ׃G{UCFsh]A %d`r Shlhq@H" Z W 4-zH<)2d;Z9n C) fk F5b'>Xd.&42 ddkњ,  pӌf<NǓQ5$ A&"Фkg݂G<ۓW1!;Z3l` CPMpWDTpd,l`8Ch$6:mt%mT$K,N'*Ϣ.soӗC!f lf &L ɂ;jmB?ʞ-:/I6Nne%c} w,«1lI{7,` ;i>ev 85_/_b -.Cj3ga تkd2@'YW6JbHNT.xc#qGcziB1~,0C.~ a Wysjf(S &SV$4gc x`LKӖ=xC.#Ay> C.Ե9-K\sf(nZII  i?s"n`y3E e[.QiA-m%Lz?D c4@%%4uk&b0/^0a|ۅ'HC.|#@5[ךcRLTI\aU QJ Z&󼘷CADQ;T,*.~6րb_03R cI N|0}QP#/5z@ C[nJR)ٹ%{: [ ^H#c<^$ `z57^z$,<iH@k2p$TYO~ e Գ0+5x ~0 CPk9hYyaIMCfQ>&*JdPIBRBƉD c\,da5j]h*H/ $7 5؄ KhטvczŎ:@*u(ׂ$Av'E'=`7.B]eԢ@oE6RĒWdϋ%i>9%85S> TLfV/ C#c NYAD(`.EP> qTA~҂j'{*5B5J0: Kl Xk%6ݛtgɥ CPRynIh /&xF;_}ו]&pU LGCGͨX5q@T~V~H42Wsʡ ][(.@lC +oƃvET0H춂OmYBY'YV'PH(9L߰U"໲m'̶Cj2t A%29 ;ʢ ; 0;N))/oN \% &{?ڊ㊂^twҍU0 \)p=CN`P 34v۷W۟fC 02M/#2Ն A1 bR wߟ> ]{Խ`) &2 %Vfm48 I&)%V AeoQ/s_3<BɮOFقH , ));-@Ly"!0S!0 IN|CB _1 g?ͯԓ NfCvqOA Kv<۳缽-W8(FY?weg,} dvbHb{͛-/ @b` yA*Z !' [ ;.pht@L 6%%Ig͏4hsB _~M{~hhO$5vח ︯܃ ^':r]}cޤƤX: '73X(UUzRܥ)r{`^~K@I[umr݌D.CoSG=.;|w]IG+ $$^{X6HrJR""v)Nv)JDXi(H";)JJR")H",{%)JD\)(JRqrE @T`o^^ad/W8b6-~@ ?PL( !KmQKBMk(JRi9=RR*iJRqrN#IEF8!SG `.3)JJR")H(w)JJw)JD\))\)9ܥ)rr@ft# 3F?*V &$4ໄ Un}U@ HH݋߷fw@.B-,_)Zybgc?[pi0$ +БaV[8 N%x|p]PM(%q-QޗEܥ)9hRE)H")H".R3)JJR""-iJYrERqr)HrEQ0)?o] ~-rD@MSiۧ ;6b ۸pɠPd7=12;\0nb溜<ʿ0?HmϹi]pJ[|kLGC/`YǕ{H (LF]Y%"y)JJRQr0')JD\)+)JJR") v)JJorER#wϩ%)Iz}RY5CqyMA,Lk2 p۟\M@AEy 7Ms/ $҃;(Fzˁ@>%y` PFm}d+ dҰpW/wl=K"!vRJR *1=Qo f7P,qלVH[ X?ȨKdWײs}8cѯ4f/[@2Bj;Fq\a7֥ ό]qfQbD#)JJCK.=RrER".RJzQ'{';ATLLHݔ?;|a3#30'.Ȅ]h hvg )!_mxn /+yϽ4(4x$ê`܈)HRsJ=%)IRm'&> XgG^zQ}̀Y|Nd뼲_>;t6,`†K+ d #YD"X8ګ4޻ ClR2)Iǫ u4 (S}3Bx[gp`2ԟ+0b`b-c.Jz{';"orEIK #!J蹡SR.@/R\a`T00[PH@i粄wM)cm?|%îv(O'EgD_'y~;GK?  {_O^M8a #N A5s<>xkJ^x a :&17?[c!B '&  0r8bۿdz)(0jp¸]vXf@jE1]#npi58j:^ݑn&nλ|f'ŀ)o&rݟܼXdp{-kKGb1./Tu_ 祸%0XG e27>~qrЃYX'!:pj ,H#f=ғv!f{ !y `.xF%@XےC\VNZ1F1e$䣈[ԌQV}ܟ!8tgl,G?^ 협}q,ՎEAhNt'$BHhaD eǾ'P#V;!'WA|z| z ^;'Hxۿ޴ _k +l71` Kv:Gk$ &OW˰(0d" @1,5?%!1Edc.@\iJglo`PΟ!8WsG3Tĕɱ( 7`qn!dĠ#RJ>C I 64ӷa/FNEzyzg03b3&l%}p#y%'iIPKF.Hԓ@='ڀ0;V~}+}%};j~[X!p`Iޥ"A< \tk80ނ#?buu︋%-_*ؚ[5,!Y3vŬ|R>tCYXOA4 G[NPWzڷRadjtmN2CPJQP]aG}kǀ 3)ByYLB=N܀<#V?r)o9KMpjK JD%Yapf`fJFgXv{Z@N3(o <o ;kbbC Zǿ1:qg?Db`ɤBtɠT_ Dv,9(BSt.cY%! Ri3@"~킬CVRn) 6e_!(px cSR 1H&!,Wn"^X*|i\ow侟x[ EjzYЀ$}@̎MKN?չmQ_8|P ϖu Jq_oX]>+ NX4)#FCvgAI]9vC Ĥ{?ۏ6l1>>0"*Pi,' _7%_ 𺻢P`՜ fn_{E1\00X>%u,am-NԼJD !JA7r X($WNEMO۟r0O߈$i@"5F?:0'<;dΰO% 9}SM9,5("R!hTt uK*Vë!hJ~ϑA +)HT4xRJ!IȽ!&ܥ+ JvۉTv &XuRyջDžXl.EP K&MĖنo"Ԕ ##4@0,_[21Mfԅg?%B'hPjy5$sx,@BCY.?>@ ;nͺTjR#!"'2{%O$eRzMlņ#{3ZXӑBc3`7|,3lvmy|9U ۹:QY\P07 U!\.ЙSyZVZ2qyU#M S4tA\CPHku>QH~97](&㚛~>W{}{W^5V)m +k (*{Z×ka54%ehߎGbݪ~ ?7S` !ˌ `.! qA-<Kcjnt&٫Ť]-^TgԂ'@|`vl:!DL/JA鹈Cj!sM2_t@4?c0B@@ ^Fikp-|M Ңֲt}vֽnR}MS nxg|^}{Pɯm'rЗBZ v&0ꀛr}қ!vq@pslX='Syqj9&ӲB\Ɨ.򍛗.Z:MkX&xͩ?H7soPxL&ttbx|6j)8P77 smC|>Π?ꗽ*t(/}.>BwF3 zZki_hRɒda` ]iNAQc,7*=̺sln,| 2hI=OSrmԪ~+K*!_@7Nhs' ` ?=C_j&M{ eihYlPfK2x4W&p$PhaWh޴#U7On70aRHD",4VF>cniD,B3#آGuǫ שּ A}$ (No&^߶Ȍ ?Z%ꩾxu½041Di{?@bno.3w}>S>k1. ZHeC ,Yyfqt׎LK_l6\M !w%)L2{<06^/c|Qhhdl5?4idxݯ_!㿴p+RCr W~'b˹ ۸n ce3)GjOCB-j[ڬΒ6_[{%Jy41 D,.Tg鹑έuXڷ{0A$Fi\"bHe`;9D0: /z#^sdfyWoZwiĴsdzJd=qacwFߣN고3o,q̈́l5$yơ;;>cD뒔d5ESeC m#ILr6w~ve02iInc]ŸߡfX]d(x}3z%J ]w ܲ\``1+$aJڸ!dosU=X OC0Cí^1A7)߲نy^B_d'w X(x0 $A )#6 C&0;,4j15%$ Dm/[ @PD HϋUhK8R_V?$R1֔o;k=|̦^(W>꾈2]zJ%U(m2)۟򭺻۳8 og+o͇HJߧOG$L %@C.|#@5[לbߔ1ACH(I4$h }+ug/Jh+I L -``P2W $/w!g]yf%C.rY`9r4pA;H4,Hp;E3jK=BP@ex'́r$BDFe`}$0cX"<2TU=  Ȫ hUDуTvy>RHE$=C.0O+W<K[ǯ4=p!@r @hZsnoqRvgQ ZЎ@{ւ@z'  `jGaaսz C[nJkaPB%i0*{S\"ΥA(ypj{4Ɣ$ 1!~.¦]~Ā@1I kSCqY0ATV`h dK{x C!jͱ4sl"C#E:ꯝDƆbfA"+,Ќfl8U y3 (y>;$p/!+"a Kjfbuzb4-)HD,>dŌ%qahPUJ0n\J!t*LOEtAyOVs1#q~a Nod€ӯ!  C!dތ}L,f=k+ Ga2Q'xFx $Nr/s":ŻCLMQ[XVT>FP|bq6" eUC)fr(6R@j",XUU4nÃ~"g[bG\i;z/yˮz ZfCԵ9-KrcI4:^{{bO\W XG>G{Ʌ/`7rǬ cO4Y%a;.~ a Wys嚷l(D0|1EH&^cD‹H B!ɅTF8~c `0Kv;fz^y{;.#Ay>}x ;.Ե9-K\sf( s<""NHj؉#0JXocY$=;.0O+W<K[ǯ4=sDK <:X󨤁<@\Pȫ'2*KGM,* Aְ ;[nJkahU4`|¸rSns4OtkD8.:wWe`ULओ4ɂR+'OrLz6 ;!j:Glx!˳G `.1ϝF ,B#Fi(13nHa1fn"18%L^&tNU Хla1)G@LdF`#EX@)F CPGgí6fzj"VЬʢ9b7d-h\ڄ]üڅdv (`21cL:<\h.0y܁.jw&P%p,.>/+Wdy ; - ^M.Eo8#PG!?ˡBסV@?`I _)"uho~QR38' :G;9-:дdHʑ a)έBAkiGzB&\ڢB 8Wk?o2#t`;!K9bQBSt$KGL-0umD-$ʨGaJ CɟTt$1QG5>TIt#P.l;)RL416j.dTʳ7_b1@/.;U1b2t;:'*5@>Y6@dx?mQ`w>o26@9*paNYy[0{dU֠(B1w"ibXn@S<88"p՞))YrCjV2-2[d O8GE0j2xw`` ;KBb<@Ԅ-#hen4CQ"pݓ"pR Cna%90#sfH!NX|^f *xm@y '>7^<!HGcqW'CyH*܄Ŀc`E = GTQG ](/b8NiSIS1h%(|oWA_C IK)0 qT$MJo7& ߵ~wWt:Wxb` pGZKIz"pG"pP`OZ 0YhDt2L?j <@0B1˗F@J/7=Ou;DrՎ', N(ȲIH @O3d0I:n!)<;=]h( JhN ҆|>'ni&A L Jv@5b v-gxdB2/״VsیmJ}%)HFFdfԃB"p.{yJHBD H@8x1ɒM`=D4הּ,05EDAqj@cɬ>$:OHF +#HNX@ %8[,;ņ:"p "s`<&vuM(-,5kkL B@!h 3 n3C2G;Po<:\BQ H~Xe-f & /@23KBdk#:vHD 5w룟ĀVi/t_:AMD@aV+JXo('CQ|?ݏU,0 d"VM+`THg,!!{ @ !de%a@bdBB"""Eή<@ 4DR=M$MTT]eSauQuǛ6TAD4%%xT`1uV|%\asaBnWBR;3hVv;JU7q`Ar%mRydd,r8iTE1ވf砇Y>Wdf phdkd84k*^I>+"y'ꚷW LZ#>V\S+RoN[10 p0JNȅZq[[^IL˙@7:;RגW{RV 9گd M:?d$ID*իO+-p87ɰ2jbe#1""$i$*0P<M$=RMTUD]EVaTVYb !Pيؙ-,%Յ)X˚h*%͈mԨ%v*mV}WQH$YL"ҜWRC]*PaP_ V bv/L VT,EO6/3>q,IշueD0%MRcsKCdVtݧyFbIQv{oq}*Taq4(!bKH2].C쌠J$D5;0%)ŋLr25;;u[16;gc)34>l>g.wƴz>нb8K[%;הIS\S|8ACKBng+|9j-Mc.@הm=u Wç,9ZB@#M'k}¬d.ơ7}]$2js66GY㸥Yo\4be"A#22I$@*05eVIEU]fWYe]aăsk^+S#^5Ĉ b9:iTYRsNqK顸jܦj MN#rLQW,5(T<R!h5`kG%Qև)*'9 Q[9ƫZS׈iw8.RnI vSRsDSؙ)`F64gw |ʶo׶(&TӚeZ~BaR*R fm1E:t5-ϞA/%Rˎn>cgØdg6@`f#B2$I2yŠttILgoqǒ3QSʵM~u+onaib9MN,iWc8EQ=J$4tAuʭx ȍ \V 3`GHa Pwz!b4ҭbfZ^ B':`dv#d!B\Zɜtg}G"\[NiNT%SrY&[OZ딣G< \mS4Ms?9R|A+q! :,QfXjDQTbw2""$-"$7J=#MeVifXEvi[jui\iZ= \t؆zMoQ5}l-]gL\.~=c/AjY(;r'A hOLe;VRdJ!٭ `.0' PY%"Y( -8^فƁ)$Ӑ!@ H\4b490Kh} 1)g+ # ϛ{ q Ma` ?֬ϷgWn6 @'-.C!0#J@y$/q4`b9 _y4I s?ua) ]Xgp>V`HQ#71%D@x(H/`2@n4!MQ`.0Y)>;ĤhYib7JWEM&a\4*^x!Hb8(L$I1 jF!) /L9,"h!RDDfVRY9 %?WJ%d9r_sPu0!$I C&iDa[wp'`%FXJ-F tHa03%Zz  _,XN}&)tE b ɀT (jy)dlc04&=vPB10hI\(JRnLI00NhPS'fCh3L^98?'gEh+ц^& LLL,D  KϤE1$ Y)N<4 jiCrJ.  + DI(VteX/xB#T 2 pӬ AQ42(a|(Q  vw /@zB@D4Lw,>Fz*  ;! 0g>WR~6$i $P1 ])6FDj c\^>I x \RGQ%jaDzPk"XͽTbYI$wzHI1-hC̴}n>#Hi OeY&=Ip}1h4 v WFX5u˻Q_aK1? ۘ>͸$> BN9$8) ad/"K$2l,$B<2<,)&NRA C5`D+g jle $8)4a.-<5 S@00 ǚ8:I # .FqP GKp+1ذ bh€5 M +r1ee1jH\ͅ|RmO|g\6l$H  B?2 ,bLX,tӃ8bY7agfhUA+`g yUSbZa1H<1 䥆:1왂5C.ͪʛ&s"CO@TƐ05ԕ^73ބ|I2 ME%sg5!(JHb $$$eo 3Faakk4Cgm62m&b?˺*AqIO7ԫ@1/1o !=K&!9ZsPOP跠1JsWM$pL er&0u4à{iXxơ a3%tH g=)ș#<{ٚR'c'P2w64^M3]֒uWCHa44/Eb&gq?DҖbgi)dt+0H48И@JFY0Ek& T AkHJ\3(2ZGq.DƢBHXƓ00Xc3n&OJH %|`b |##@;h.qaco|lLhBB! `.!cU; [ b9 K `Q#J8=|S4<ߣ۱Ѐ3& %q~ϗ }Q o> -Hļ Hb HX@:!^66(&N->&(^ui%I)1H Np4'_|} _ja-u2|:xIi6j6m?0c<PLC//'جK{(L'C e UR)cxߋy5f ˡSe< @쬹(nˡy];*jyL+ER*L% exP ߍ}{އ9L3^>}A @no59xƵ~ד@GG^`3uHx4c|{5J|Z ;z^:Miq2 eQȲ9C:2kw ͦP,)jpfBKOSLrCTPjƁ1M] AD3]U03^+ÂcyFmIyOВJHҷ@+@lCE; 9--d,1a3mWWˎ;M, ]yl3\*M>p 3 ˂9QٹϹ!R hz$Zu\1O:X zfcpK1 RR;Ito'u cSG$0Z(d_-`)`]` if :Bpjt< B, 1ˢCaT;Py 7t>\3t(:J}!X?Q$PKc BH# 8DRB(C`lJ$@GR=aJrGE&\k2eTAu=Ck$EaC$ dJ iDP9za-^>f@> ;-h@ɶZ!  KLxc BL L Q&Fp>px H$B@00k:!/Rn (u%։rBn$.[@XA? EA *@V0)SxcQ: 9ًtG*(5att|CxCO(FZld}@Wp['p=1<ƧJ `ESu&K! {tZpS0Y5K4A JaP`| Li!7 VQh,`ݵP+ ΰ$N C,.R3 H/*h'2 d; @PqRn 0 "BG*]*^XQhiw"NLt ?KhDE'`jj%B2 A5ǏDp8 &A15JG jC'O -kA$lT ~L욼[;eA3,4z&2A;?F}>nAWt4pYV(A%@JWbhK|UyI&Rͤ tMAUCZ$ D=.GT$ )vdgq(7NAGmzݍ"JC]\T )4E͢oD'\:xğCz^u6דMks0̃Hve"[AΪi BkwiGӆj snMM ,@g_4`C}~? ^Q[isAǸ g0/n]G`0dDE0m c34 ]yC]|l n}x9p_GxAnŸ] Y-.0[>bs.4̝| @`0}x?lC]߃ڜ4 t0s2`N5`*i-)xwRʻ{T;#W~M xh0ЉiKŔ`*( ?ٳ"ͲdEC%0rPJ0.6ׂ&x\ T7CJI "U$]Eʢ l)նBY2Rcm7IMi t)'RfsF? X CiERz0&S03] 89a}ď' C&2 蒝Y$6zIBTjO #QF jf|SCǞ2i$mԾt%LecX{Q5Vڸ~_j aO c|2+>, RlNlE@ B8vZ9V_`,\F] X[j*"h%21&¤%n\qQ<(ÁdA[@%nJhC'_7r00-b&в0T ^NuѠWJ Ԕ*C(q 3S؊˺(&Zrs} _ZؾGwuph]Evq zJ`R ȯco;pO9նCc[P2(C\A:eN_p_cRS6`*E5$JWBs@eۍG [;dmKcԃ%lyMhX>25HzX3:pP2pP*pOE 4pZ!l/`p"pbRY;mk0}1!G `.4uPs2C@9''lϾ]$s"p(8g, y Gas!)OMh2 DgM@zP.HܜؘU+5؂@  *T!4~xgu~$et$kv84MT@hEvDQqrAjGDG,`"; 3cJwf$8ɤɁ 1\qH/Ac~"p0 !PJLB0,L r\,L8jp0>"L! 6)u7'8ȘX1V F"BIB@bbvC!d1-=#Kx1MGo9#P (堝(C:q-!8ds5.EvE-O6*_/DJ @b@[ǰTPaDb g"pؘtބ{x}l0 w () Lɠ04 ¸3KNz\iTRd|D'w{AP x 3 Єt =^ Y\(f7bPaLzH~ 1'8$I@IK@XT@`B1$0h"/~C;!"7"pcBҝ=\,W+;J#:,e!&{ `.!ϻ9 EIMM*@3?Q00&H(~䫏"N$}(;_! @~$Z4 k <*aKqATEFH(K擥YEa#Xlht!% jK(!=I ` RMFaeXծ%V+bRxL+!֤-_4t0Bt@<(en5ǹHd>Zڀԓ{lHF;Q9 ``ihc", `*Y P U݆@rھ)'{.u%>aĠ™<[$~TQH* %G |r~g%G:?(RPgk&eNYeܰv3$%^`狢r3G p 0Fؤ%D p *t!P*P+_0)1C^AKY@PdPa'A~UJ$GFGPctQף%sC {{f:Fh. @4J)xaQ8   $,D$8I/u L&$TJiԂ_2t $1a4o(C>&KnxVyfQE='0y s >]ooA]UXtc+:vws / y>;sۋgVRd=QGe^wgUFK uRP|n[w8>11 E& CUWy^+}͡§Y:Gˡ.MimT#O$T^?ZyACxyuykZfCԵ9-KrcI4;xx>}yzյxI7דOp? mI@Pp(1NLtG!B{6(fY1ej_x;.Ե9-K\sf)#o\p ?Le [ɚy> LUe*Y SKh>z:8H$Oa+=n$XH} ;.|#@5[זn/( rI$!JxjneME' vb *,XĤG&[q@&UWDA'Zzb;.}AA wI-'ÁX 2r|n~z H r:i,l2Hs{f%|o^ ſab ;.5f s|!9 @ !wdx״m~TڹvM)CGl]Y: 44@ڇb&rثly1qҔjz V4W)CD#́4֎u5]տVq[|p%|$kM>+r.34N%a,ͽ{Q27pmjqgI![-M[`%dRVJ`v241"i"9K$Uu[MuƞmǞru{,HkJJr܀$y4;! 볖Mǎ%)o%Q'|}h}"HjUTHvE1ϕsa#NǩyHCoKԋHפv)sjܹ M92$f¢oE؎'2 !6]jjKrx/K@M)furd#Lru*452,\ޒ!988ɴdy9՚j*>(s$sJ4Zh)wHtQ6t(T)Ҋ9Y`e"B"24H<q )N, @5`OIYEG7WQy]m'0|5Tם |mc6ێ-̭4 0*vBಅ8IƏpt_M$ c)`|C91;$'B/cή1͍|~ЄOZYNTMH'Tu Z.1Zj{?\Eo>&0m։?qUnX#fq'X!簗:w&tqB 7:.(uܔh&q$I+ҨۉP,@,P`"^{^%vT7n\bt!R"C$)Db )P4UAE$]vUe[t<3uF~+#Hs5:*m|y]LLngCȢy iyښTb-Ƈbd%JDZeG+š^J^#[I63"4+A,ѰV[ x$ɬQD`+=+US+&TT2D7zl#tpYAUJbL:v1,Izf:a!SMfV:brTrCERF`d23#3&dK<Q$Ueefu^m[uʶ'@6 N&J,h b(Hʅ *jKqKȔШX(s5F^"'9QUMd'($F8 B~*Y28)c5s'c'K6͆HEl.9#k7㍪LQgF9F"@Ӊ(X&Fa8(DW!J?;ju+P&48p#2fHә)ܺ~ջ\tklc14mry'Mvg#T쎖Y#@tnJ}mWM ċt9pbt#3#26I}yzյxI7דO ;.Ե9-K\sf)#o\#5vQAޓi#ɈPig*}V%LBqINK00g>y(kC y莢ǧXhE׷ ,N>;.|#@5[זn.0D|6}4qq6ÁK-C5 %ūYebg AB%f]U qЏo,q2d.8;.}AA wIap֕4of#H? 2bPD0I>y mٰ G R0&ZB(6 [f ;.5f s|z_ ABd_\w8N @DɀT3A%^GzHp:=>A]#Qki`Ͷ ;)*Nk9=3Yߵ~3?$ NL8 D_bZrQ$@yi;O%#L&4ܚ+ǍvBRdX0  P;8a@B"dA<=G"Cյ` ;~rcr 1֌^}7€!8 V L~!Wv/"{UE4!ńTbվű g0i6+dD>\n5 Ж4ٝ.G`ģ @b `@ @ZBIUj^Q5 ux)a)e!` `.1MpgKN$8d_RřVj JTz$<'.JMui d3c桩bYf#9jj}dB&S '9|L&/H4Pn`ܧ'*:@aa7C,7Ԉ J?f-w~J0 ]ϝ> ((jj-$32 !wkYd7,h̏A/@qd,Zrhd#.{x%paxj=L j;GyP?H`wU3v@US=d`atxWYA!sG `.!w= ,\`#OВ@ %)P.H bcF\7AOH>܌d/ES)WՍ@oc ؋+f B?8C(:)#Cw%:x|g&JtHd'^>x{ FΏPWTK(䐻^$D4W#A%D/b +! _wBHi]߰"dΓ!!`C Cħ]| LT ?" * (5DMQE@>MH8 CVwHL>_q Y_uzϺw+Dm@ :-(6EuEWcj%mTLE@0i#;z\].Ҁ,&N%5 ,:&!7t:2%tL&1d?i lK(&rEwy- #u .?h`D! 0#^A1tFtZH.) 1ńjPaH&G`k~ D/UqcĂH & @`đAVX>4@~ /d₀> -X)uFc'gS6/'J "!;pb > 4KR.QH j(٦Rh.@:!TgW&^pG(䔠WF 6x؃~w{(``T44 J@x+ԖrPL w5 +Op7ش,z!cQ,#҈`P&o{m)gNJF7n{TFs8,V]ޠ6 0X$0A>{~(+< 2z TP HaixȿRPjIi.*to(kp9>&~4QZ !459~Q #EA2Yz# f" j`Y(aa1'W92vJOH M1p40 o  a#J.xH{Ȣ0nL!{Ld"0I3d /j~ 0\\ Q40WûFuHaB?t9fu֭n5&*['Dvqa 9OHzrUP8`@ Q9r!}èPRZ*wUa1)̶8!= :@fih2K 7&x9zl*2u Ƕ3Y/?0#lݢr(4Gg%YCP"GCE#TUH0}H.PP/!,fء;1*|G۔5/ x4DKL6gWmBim]7;xytzO-iÙAԲKQg!!%@;xx ônjOj 0HY!D1,1;. po\cX!6aI%B| p ~IjAD2I*(b%;D4E"@eB4 H`g2)@ę ]0 6$x_zm qA (;.YXTis> g»y CFfJ/s=AU."E@!h0`McU #=ģa MLKODCUsy0 ;ZY1 m@lB-rc e4-)-@WյжDЭ]$7"=6bZ#"nK3¬a([3[iـ :JNk@ ,6 #4p 2 L^C.Uz3#)1S}HHl @Ta@ПM`\f)sLdQC#c!5S ;dE'fODO*WU> ?X #} @pA=~ (XO16B_HX+ `#W5PKTHLӆzp=ڬe1ICw^5 kM)i?Ũ_h!NBğ ( ox ГBaTGE\@ z@U%WCvPL-48]<)%:Eg x}Eo:h#-HV{z*`]z+.\Oz:VD}F (Ʋ{cͳs-jF#P ;!!N`I4a?%zA`,Yj7 0&FCޡ#0i)K^ ) EEbVm`AP,nk$TպlF*ۡ4ƅ|_-Vsll5pHkl;. W &YO0BENu`fEM P`kOId †klJ # PҾ3$ `%ݢj jCJ `> R)-q@~e8'ھBWcPi']sUx526&l;(Ĝr A!&P!Tԃ44!X[URo>IleU-7_\A;xyuykZfCԵ9-KrcI4;xx>}yzյxI7דO ;.Ե9-K\sf)"3Z)K!AenEP؇JZ%{'CLQX's`x chPp#P2&ڨP).?EDp.Y2iB'H;.|#@5[ז*&!tЮqy0 }oPW]t+1R76[HuQL&R%\5wKX@i9.K9;.}A 9s pA;}ƒX@II!͙ @ !Mm(T%Q7a`U у /+hkac5"1EbS""2#'M4OYFMuq^ցYfgێ&⁦ѨknipgƲvsdXԛhlA/ڬ閄RO p(AN CrȚ,B.+bQ7ZV;,:j#MR+i*a̰e%>f^:ye y],20>_{RaeKWkqbH*uen%"/e/5lCnKRin*blDYWTvTԦaZY,53x~`d##334i"0M%]aZu^1ζZ/09j0$ձkEtNFʔc8YEיk9LɣtuYCR(ѷS Lej3vF׬`t+QN eW+kU/,bIZ5K "+M"RN7d2BU]m0Y2]}ҪvÁbi+Yef6#8VR[3#uVrCt3Vv%\g2'V1$r[E[A$#´aD']&7m'+ajUbd$#D3&m@PAEYa[e~_zIr.!y cQ6ttOa wEHV&rqƊ9FqMt3E'/&QVEDjsKEvUl4osMƥ`"P%hJDy#d ArjLd5{ZL nJ[ ne,ٴU?$4-uJI4sԢP#Vi9l$۫e)+ Qo5ͷTIƘYMSFFD&q"p:anA(ݜTlaq$oF%nDbFi`e4BD$'jHE4]iמԼJK:`S6^pE &F,) ; lc>j QH4T++) uR)ؚaQ$w-5'EX;ً9a(2PHב-cBuLTܠ1#n[R96+99&NFҩ-ϗ~W983*e1q9vt uƚr*Xh\&TTr҆$N%FB)7oȍIvȈD >I!lbd#!324.$0lMEUC=ERaeYYeuMф [mmTb\.DJI{#K,s"8)2ѽ 3q}6^ˬ6Ka3 y lUnZWs g0auRu5HL\XbC nϵ-e kVYܥI]zi6dJDr&r)텷Y)"qQ% UJ\5IZJQ4ǩm6 bT""'""Eb@*i04 @N=MUMeSQUQb!ϼnNuo:k Wig{K*wԥz޷ 0A:KVOW<K[%H H@7_uH ]LRT5#Bd(#Mgz޼` :V`8 @ vΡ)uawzb@0$ &G/#d!GMГ=@z45 Pw)80PBbs :JL9if4̳FfHc`>c6%bZ2q)5CS j]E!32t>յ` :\€M NEt ~R9{vIeX;h_>#v7m} 7OV:X#z=T3':8_}à q/{rD>GNAY M{T%b3&z[I2hVxuB:ZJpZnK&;{:뱅x ?չ:ƈ_$?_0.d/,J,٢| ͒œKu2jRj$qK@\ @{B#IҴBJ}UVCa'P,EM FoM8 @p_BJJH"I 0gS8 {T"jKA,7xbLA>XQ36S앩1"G ;Ed(RM& /[4Pˤ8 8 q AGC]ywډ L'``!/&:cJB//srG@NC6=$ړ:{47Rfk3o0 _$a~ e:+*&E#Jv' _ ќw,`TMA OfqPߎ LȂMx $͟'Ak@W6<ùQd L%LiCW,*1`0 |( Cb J--B  vBRM: <00@It ~b& /|wQ`g|؎*s8:J)AX u%}`:H̾݋^32&T-O8HxuZ[ ^~) ^Y%8@O_"2 vz ~0!`+I/{T4C,  )(g  E /Aj!}rFkІ~Z|&' =wDb(C``CBRZsH]r*K$" tA쌈0t5,ITCC :%yAg5Da5"!v G:]e#7ײ(#?{ġ97^*hJ!(|c!)! `.1B !, 筛m?A G*{k'v<(ðuť(O+}JPeɝSƀDZ[L e{ojA`V9"CX#80 5 r%`j _u7րdx*Ț3o^00ю!%2t ŞcmDp S4$ljIOĿ ?&r41ImBZef< (' =B"hX: "/QbI0նh7}+8*|xJ07&R2u#\}Zb,<! P( /!\ wI9EqS ݡ @t*sp`` % rㆁ|&GE|KxLh'@;}6@ IbI!+Oh`h xdH$~"ۅLM i?&|{e@ w0Hp 8*Cp)"br@dJGob4$a.aLKt&-0izb(P"5$P`, 8 ҆;A t[V+o|#K-lBҒXhPh %.7Q7!Axk'5C졀:#E `4R@yh?qe{ *A& 6ܛsNQ/DP !%2:rniDޅRs|х`ߕץtSdR>LnDP 0 v .H^Q( IG,,H@; $$'2ľ a%ypj`jPIq4J2R?R@wp9{2vxW@&~v}s+sszz,]@LCd,>M$D2di+5I~7 %&  Q0RǒJJJ@f+ FUڊ1s&&I">,ntDp>! g#`& dP!k$ pi,rqF b#BxJC '&3l J[g 3@Iwh=Z 6O_`@aL(ghB4(P`JE *FdH@ (P$4?"w*A= Y7}TS@d %dDXp}|r(rv)(瓒F 0ʀ`MZ&*!@d]貂^pD0ᜠat`D `_H0&<H$XNLT"I1<4˼[ 0@ Ů4zx$h,~pׁ S:+O6TY:A1 DjՔk0jjANDYUev3cAIBF'x})"`o k:`1Fdwv1P]@a4K @Ktž? `Q@L Em NK 4p& /2rGCPފa5(p>tW4\LǐR5@"S` 2qWL7lJM1!G `.!k #  U?yc@0I 4zY4zJ@ܼYHBBI&XalnW×OۉӣlvErSRFM2^UMlJ>sɜ# :RYWQwG2qɄ杧O(MU>(4@#JqnNJ40ٳD# ᥕ4%ܚ_Ge҂JX%L/$J kw!貔I4datCKdoߛTPrKI}QXiic(^/qF@A x`7)Ce!0I a5#vXcB$1>g*b ;@,P ;& ,0D_)x0 g N'D1@QPs۶{y=kEkNY-t&FK;6\K2qPnƢnˠ͟˭o^6>o -0LMȠ߄Wl{;;>՛CqcM䤡gYot&..ɸ6Cv0%6tPfhSXIyBʡeyT)wМ|ZRC}U&oЛ@N ;y-IөG&s fQe(A33xx7}6 شM{4dC[ٔO*YPYTHYHY .q3!^.Âce`RlP m~@X^I) áIS%L,`6ۍ[pns@ɠev ]6m3\*M>p 3< !r$AMAiyOAQbaLm Ƞ3y/<#!a ig(\n"- d?ϹyTѹe= D|C4, ,&a`3Yx.ͅ>?'N@AZw[h-@%'Eok<(>E70 TMLp=,˩ /bzOr}/t,r@zd$VD$(TjL&tP |aAaCJ 9-};%-e⳦̐C&>]^ %o7Xot%}ٚچ zug` ܫS`aޣQW6a,pw(rbE1IS;M.]PQ6p1ue > į$Ą+2|9$ $1#X+0Yv] aOlY)T ix !$$n ݳP԰43=i7ϢrI4:,k?YbBAa 0PM`WWiq2(;}#FIHϮT%Խt:*/' ),E`3H,uO: $)3ivDM @#Xi,&AZ"چt G( &YUsia ;L6)BO6),R= @DK!p bP<B?􂙇Px40{C: ҡDƣvSJ1 L}7H\- K #6E.Cc2PP am6ـ Bn7F ]d!{ `.!шM%.xAz)fSI,z+83EuDr~1z4rhe0(PX a‰(+m 窺E\\L|e-H}4[l9ja:̣ŎCA̦` C $G `] *rB'~D"hyBZH@TW+$[P\01٨#2Ad€I *&H[,"d;:pZ΄} Hە< VD 0Ɯs'OMl*'A` `  !IC>@u ([G aWmDʢ "uCE=,lj p>%7TfW6M Q. 6.efM`^eQκ8k0C'OA3I4U[͢9k&XDYzņ PՌ禠| c^O@NJ& J]elBGCXa#nvC$NdAݾavr4{_U :OʢH /0R1yHCd?wse5[Rè_oo]bjCy-ISida-NE T@Cxy6 8ytE1QڼfO^HYO(ξiuK'8C}~? ἣd&`FU=PY݆aFͦ aZsm p0Kˎ3@כmC]|l n}|qd0XoD >1.eNa`dmR4 xp.&5*onYRH(. 5eP .PBOu#<`Bg-=޿mmtQqH23";L^C5.50[̺BTBHodPqb,bhhGujáQz/,ET&5,ДK%!b q ۙXklsvrneY/ }6l,caŏ(>`f&D( cC%8~1A[bXbДs$ДSЛ@BX> f BN8hUࡵ ETP .ݘ0 @{P Ԁ:&L: &VRC1- tֺ'D,`f-Xa;\#G8K'QDbK|d8:rR%qpMH݁Lr"1TTԌ$5L:>aHW$ f{p+k~q (AK}do 3.p-y&EU`Q *-HTy]O 0BU8V+z0 KL6ߍ5Sjf 9X$| ' nIGh0HIi`gxc܀W} v XC/#H30 +?e[&' EyM8n7/rer~(1t=\՚VQho`U"#3"4I$@㥾4M"giSi0vN$0t !-L~:=IUXk5]q[#_B( ǘ_1[ "nX+^,9,#sؗJ-b(! Yܣ4yɳi8}e|+.f)].6L[NB4}իiU|48X4`tCvgNpmif ;F85VYn g:~TD`e!""$H@:00@UETU5]va]e]e۫Rj5ZQkIU]GNښ@5[K {ꐙiK" G̋dtuR,Cx+β*ʺ4fdtssw8K\Jϊ%, z&ة kYq@`%sF@]>^%|菮{a/*վq_<됗V+꟥TA``UBU!Xh騣 UvQUem\m]d/wwҒukmR>lR| ԩֆ~A`4HXQtX\jNGf(o!ȭ$'g)DɫLPof}"6}ס^ c[^)cO&pkk%ri ifeǯRtv! `.1}ѥC$SXEq@a@Pо>Hb.Jcf}Gz(fFne!imܘU K M+Ͷk$^nb, yjsДB ]{Խ`) &2 %Vfm48 I&)%V AeoQ/s_3<BɮOFقH , ));-@Ly"!0S!0 IN|CB _1 g?ͯԓ NfCvqOA Kv<۳缽-W8(FY?weg,} dvbHb{͛-*hg BI\# ;.phM& 0Yer)*O3c :\,߹P(CtW߁r~^ߣ$5 ~ݰFd7sRZ,3'7ڤϩ<0;$ʾ - G|La/}2g&q^J%u=)KKpP@ Ҿf_B7;bY۰(v>Q FXhN Jw;K!?B6Xa8JR")H"p;)J詥)H%)JSUR':߀!  `.bs_79&wu6U(Đ0ox CF9tڻ9+:F)no-\ue$}geTW_j̼9~@0<~|6k1A0{! nIz=wB?ˀ;pw{0 'n NgaZ@Aϐ^x8&wHi{e5>F{n]#5M A( vڪӳHqrER3)JJK-)Jj{%)JNw)IR:modR{p K.4C x`8@qf͛N[K܍WjY J>﯑C| G-u\<deqw,z7uԀBCY2<'?_@f&a} H`zrڻk"V|aIl4,R3) JR"".R^ppjf` @bX `lA? &nss3] B瀳.2FF;fׯH`}Xȗ+VX)Hݶgh,:,} ){ +}mF RMO>m;M>F;cκ^|qR]M`BPQX̱찥hry @|NA?~Hk C*$r@P)H, HnN `h521)û] ̟\)iUR)JNvԖ3JR@3!JfX?Rܥ)rPM ,t{ 28*# 4iPq N}E/5JbɄ2:yX $n :vV%`@{iBPw}款B {ԗ;4dn' נJ/UJB7{ E\No+6p Hi@b|vfXvqo!0_)KvaJN._b R`&5݀:@n< @4,C@;$J@*!t7{} );|zBTk ndw)J])JN.Rܥ)f0 3)ISRJR'Rܤ^+Ƹbcp)F/| B _?pEi`L&Ln&[/z&wϾ`CT4ܵ{)x7;/Vt+}H`&P;؀BY %u>- ?U7&^^}*GG%SmgKB$oqЂ3^K' 6n<սZZ !aNۚ0I҂Z<~Zd#?a~ D5/tL֐1~dWPԭ,,[|lQ_I -LPJo Y HBaaUn^l$ SdgicYRK+9{wiJNW)JD\)JFQ 3)EF?p'ڼg% /M;y􇈩.f^`<0,KT7U+NR/?AuD?q>]|; ~*@]<󳋩_!3G `.x`Jͱ2~9V(F]et^%f?5^쌣^/72HdލS b C{=R;eOelV1}|R pnqZ hn~]m9+g Hij~@Jof^/v-kd N se^ &>`#fF"f-5.)wTߺ0\+qSuq.pOc UVN{֠?k@}O hoߒFVF'n+鴆SdbJ>fğ|Q|&ҕp?׀ CNAjCAp:uܴ OZN`9AM$9( TnpZfݒ};ݱ aU4q%Pv;ꬾc49õpÒ)9,`s6I|@$|'T7_JT,(TғcDV?'Ҧb{o>C,o¯TC.PuWk?GFa~%)ߨoO d(q_$9wdj{&n?^.0'3^ NS1tw!%/%FBKtpxw xHJFd`rd hs%S &`r}P$*\C'Gd^BwPtJSId-׀69dο.>BITk$ofZ8n@HTLI*cpj#s 4睊0u?7 ڸrB_mP&p?y.*rPQC׳ 3)|M02%_] M&N>½JZK /We WWNjCwO_lz57OO8Wܗ'.Pc,R`'ٔ_RJSUOD)1uIK/l{]Ťާ1τ\Ϗ51 tֿQK _@ODo&Ooj`:Jו^ek!ߌS`({-jA`KyM ?#{ 7̀7{]%֬"n½jtۀNi,i7jJu)wor, KЖ~l+P%ŻZIZui+N}2nPY׃P>˓ҝ46~<~U-&ʲn}WBr@h ;+?Ub7>m !n5.&J N?n $MOw=M)JDXi(쫠^!ږX?|ۺoPݒJ@N[ހ$#~;P7{<^}ܜtӬ+7]`u뺹7,T6|`C$䒸wC&~MRyq C17z _BZ$Mף݂M6}]VH>yރmI~m,<:iO@EFDJ!}R-/[bp&/ͳ=P^\:.<2aS]wpc kg&K*]샮~7yh ,C%)[\i K#H%#)hI59ڮ![jl(<"n_sxj6:A^5H=}D41<#mҼ#5)g|!ťJ ].3)\׺Fm};6LS3j`D&>J:PBB,Ф-.Vk(xH~ImvJIn9gG7D 7P 3n%")xECBVJsh##w0]߾w6Bv8潓Mvnr^rrm,+M'0}oS?=$f9d sf+foe^5l44kRB }9mB3fPQ:#OWWa_^ê9Xtd]t߸oOՃ1,1>3?dlz0CUԄw쿙osY'`JUw5FF;a, rSӆߩ:r (ηkYxH~v{>c^Sm^?{_ߗÆPZߺߪ)1~}o ֎짓v;mf ߧ?sTXbI n -;7~m|@ bd0Ϻmӱ/-Z Kz/|'NQm<ãH5Er,AΪJ^{{,i0CQb-3`WSw**TT !}ꮮqK!!v.2,e ( 7Wx@;yL.a0&3X  0&Un0%tX&`: gQI$@amWWW&.v mK\BX*^}g (L~t;>#,Fxlˮl>$=AUA{kzO WI*c J4t?Q$Bش[jKpԀWAo037NY04lT ô~~K;waP[fQE h@)! #QQ3Kj5V PA" 6dMxJPT?x QI{AD-0#z= ~OfP/c!'DSU.gEL X}Kg!p)a[#Dc<}:ba.j7%zAX ^K0I+t7ޜ&AZBJ600 =%%jҘ &'] ΰUDb] M%w|뢪Læ[d#2DDB MԲhP~}ϺAs֪ J [R{:!Y `.!1}r tOqK*kGĊAF*`EfQB UNZ:̂5,ʳu {ڗE7?_P3h*\` =]߅B#UU d2. ԅzhK H"$VݍBP% @ n^%=V /^e(\Dh(X.VtMyCATJp DVXCSH?ı`0:y G_L鰂s-dCy[a+U2,BHmCq`*paZOP-:}zX'& AV A\ԱGMDB\T($> SP?ܹd>;Qď lhHA M0- XA zz#]2"CmLBU2UToj[?@_]Fx~#6{ u A 3h; y6h b!`Z'H uPGB9ICٜKP_/$+:庙8*BQLVcEQ\ogV&Ϥ%` =v!S+20RՓ|Y k"Dh4L?3UCo}t~Dt97{h `z\2Sz/|']NUZÌ3 EȲB3HR^{{,kR`0&LYcYQʺp,© )!?.d1S!~? %О5$aȗdl> p ׯ0/hJK!2; m6n x34 ]yS]|l n}x30 ǂ\= #YCPTMT5 pc&M`DՇ H4&Hr|]'Дy_cx @BSN a~A";L^S;X?;x&̢h,6IJCcȶax!t |tE^9<ڗGЖ0. L8,*%d谕 0,cl0XO݃=ȢΡ4"K -'h֙>I@8!S8SnW:E]o,M XXjIe#\Dl)U] W>Ɲ*SҞ5wB`Py[Gc~ːXk9Q-=0CGGP]o)1śBQ"asb;P 㲔r 9YvyS$#0[iA͂q,A/:TG%&01y0 dZWa)wy[iTDtG턃 ^o^q (AS ja~ @8M!͹blJBia36z4EǗB-zWdzAL [KmA/ mgc⦰)ʋ< M8 SkR*BߙEM"%@fY_PwDD> T_ͨ\bqtJD3=dUd?_Oަ??K.?6 S3 2|CIt3d:зB^kk>Y )?L:L T'Mm6 bDi‹qAEfѥ== l\n Jʢi<`,0 O* qoB|ZiMͲn KPN>g t;Ul( v3hx! 6w30 L̍Ls ząjHlS4%@ӽKx)$ .\0~Snnm!l @ !qhAU[N\eDY$(;..Ѣ&,YrU3r;ZZ!\eöICt2aU">D5T)Z ( fNGRAJbV24"$4<]eiayqd@%+'5 Pt)b.J cÚ l13zjN!2xE`܋): Y,50 Xks>s1&D,7Բ9őȏV>N[C(!ӳԊ! @-H*pn,ضti -G︢_(d{"YSoLNIjR `An46MG=|qu8-NR8hwz)NMeHE'4s[J 8(ҹ HydjiQZ%+ \Pb1jWL_& >7hR޿5mrBJre(N}n_F m숥&ڮesE1bD#33#2m6*sĒjSWRa8DjPAEjZ9v(|hd'F!_k7qf^I-9;kI'-ŘiSQ$E3FAd5ѹT1Wn6U뜊c"I G-Ubd$343$0"L4QUqr(qm](mV!π `.1Ua}%,L oϡF( 5BvM|>ON<Ľ1> Gp"DI^vN1gYqߦJwLvAq H>fpb'kz/vLb=йBj<U2t;:'*5@>Y6@d0mxeE$]:RPҞ1@D?_I!X^, .%8"(0*r!=lQ4~ I &03Ii035t )IJ>%aH Ј&J{ eHX4@6Hz#jHaQ+ _ ip*qHX r>!1iزNnR1nW+aPh`8lpӵW6(B t$[~LrQ z<C d$R+>,@PV>@nMR?(JHyXH|#CPJ|B>M!I`Rv0%HŭxP2%-:` C0hbrw wLސ_p"3*qMYA's;ïqD"!0^xeY>2CsA!<%#"n!u3>Sv6CGC&솗[ ż4dr` '@m)l#h +#V:!<t蔟Li$@1(L i {ܔsp^D@TwBπnt",Мj`LE-$hhԁbvh9$,1rsï4`BR/pf(4 MՍ*r/DM^ p^Q9vH"IF΀*`!ic`RpmH (H+M@Xc(trA3:RF'Yݓf\K @1twϡ[5!*` Pıf2 I!R(6:/9;51=OHk]QhF t$brZ}p4b9@!/ hV~@d RL&q@BPC daX0 bKPxL&:E|, qm$H5%#8*r!GYYfQF1a.#c$"@P!'q1R2WP @{^Ge) =ˀOP)i@Yg) 9)y!W-}zk1> |( KI.(L>x4ԕF*, @E:1$|ψ*r [ jˢ(V8$`NշgYpF-%"Z# R<uS0 X/sPB} CNΜ4TQ>/߻q_,L5 +!jIX #P(+p *st#Y$ `C ` X PIN%'E <9-kT&iLa@π(IRR|SEM(}A 08腊}VkJ o @c" hH0u0Ilh #" ?^g0 hIuY*oۤ@ (t%~3 *vz8k3G'<| :?"4S,$ =+ + ow1%WkAneM1Sg:_[E#(%%ʐy=T> *U1!FfrEQ`*!ϓG `.!J1M|x#F<נcCP c)Yz 3jԻSPd=*F*X+2 ?L@/OI<tJ@<W5$xJY JT[DxjKQtQ0CSTBH)ArP9^i)1gF ` P /azoވcIӡOz#'".TFLTGwǁ + ( @.{ lJH*<~>08C|R}sBR  OdP,a, 0 H3$X Կ$#g bF@XDRd[78MjJʈoȃh&@:ȭ5__BQAX1K㌽G!x&ޘ@РIN'@O .>m#GǏ'TG ( =8s'(6X +8XeXA::z( Lb(H2{zC )r6tЬ嫊DA5!ZBeZdI(%rH hzH6KxDDSPƒ.(FMjH.ٚ& qODD#C2+dAvQZ`1ZK] d0Ϩ00^!T( -2FuI*( '@АO%( D+UF?1( @ T ԠQ/=^hvP 1 /J(Nhd{@VO_ER N&4bxbl4ӌHWOA)# )5*R-:AJJ}=o5ˮ+7g0@)csGGI J>kH;2dM] D'!KaM՛JJŌp=>;Kwa,=>+eBDj)α.Y1=y4!?IdcC.~ a WlZ~ՓwL KHat(^ס'!Ω~̰,,nGJbI\e~dKZ({zE1{, ` v9kZC.#Ay>er$&ꒃgzceȢJc.(4t?*B_*6 ~D\hUݻ'qj_xKX?#cY3a])q3bj Qk2~IjBPڊx<|5ע[ I,0*Ȕ !Nx<b3&~P)@u>%u,;!$Q$h#~,.Ąn+$'HK)*N>UV0@ " !}== VH $bJـ b&Z7@3!r00h  d"%CB}H 3b\K9K[nPh ` Xxǁ`^!Ϧ{ `.!8Anʋd?ƃAx9k\2+ձVy#¼!i=QN -#P\SY"D6fF`=o^0 AKL[n/Fs1֡|XRU .KDAА?ƇV2::ުWAQXO[לc K.}z 1i( $u:cơm (HSoy= CIP]F윔ԀȘ9`yv)8v[V K P@*riɧ'7ԌdJ6 wd?ʌUf&R!8TԄail ShfF& 1Q"aXeoxm ҧ'gLxwP汭7 CPI_ aMg8P3brT`'1 gZB<` CP\΂ɷ ʄCQCI Ia/yyx]%v1gٷhfMQZ5gMpPY8!{ْԻ0&\8CgODj5۞ʩMxi柋$q1;.~ a W ;P/ i|aˠ (Ai U4$8ArAU R#. 3 x`LKӖ=x;.#Ay>A`@¸B+硏^UH#ٗ]X}tT(д(Ha.A3x4W94!DXB xnJA٤oR^?|M"Mj9ҤMgn?pI ݓh&0 _j};X?#cYaB! ȚM) ymCqB;@`gJd@`?$ l Rd=1`d5}ƽ/ne0@O=?)t obX@wCAA, 瘄tLyKgxJa77TU~֦3A($HCᡤ44'$'H;)*N>UV0@ G JսdGKB@$ Dd;)P~pސOfLW\CK7U(@!l67w4^s<%{95 3du$3t;&j`9XspC[nPh ` Xxǁ` RMQ.Ըx9YCvLLqu"-G()IJ8yMF`9 (x 3ACL[n/FsH;h(D {q rS7$פ(%) ƾf^LjfZPS +A)zq C.}z 1K)JW;$9HhB“Q=oJ5tHd秸FxC8 &.x?l%KqOQ5` ;3m!ɧo'Ӧ-KI% ywkYoE9z,!IQąıP*_*.@b $mqsm` CІoUc9G6DIBD Wu!,J1):%CtZ4 }QLGX쟛O&s :6=m VCq$&̥nIdvx)MY-_y,8!Ϲ `.1ӭEUaU[tJ4*DY#zez ;Pg!=j1 W5 Fb6HXb_Q&"zoyC ~(ij-rk\SxBr {2ZfRtDt5Na+m B>T)5gZk)ʦ;L՘aL!)8C= @}t4+ @eӰ_RԡV#Q_yRʘ\e 5[*vox{q6󰿫0poz: `gp"l.ڲPheG@llg4DB&֬u[w^jla!n';,De#.!)KlṈ/xdT 9F#JdAB@jR탠!^ qCMvT` | rJ#Rb t!=Q#&@@1,Rh!O;/h JA,O O탤BLFZ9IĔ!"rB\0`^, F5<1.~h$^: @`^?LV!g- 2 :!&ƻI"S Mu9B [̕/0ed`/ D:10a/!m$ڱ ??VKEH J*e wp4}A/G\uh| \Ns$ XV I ;f>dl,Y)'CW \׉&(nFY @Tj@, BO7 `:F7#2*rT"x1(+q;+,$NzK'n@GjiCsp {.){יw02Qb(,l OeE3(+ Cca0߱'4<"rBbi0a,$% 3 = 6;Q ! O@!/ yGyS>B?pɅ+]?l3KZ4E;{1\K(cV6pW,`W&RT47Pj yT t&]:|3532テ [ 2 ֙K$Y.LyH#*q׸I9p@P _bIa<ϑۦa]&b I~@vC 3HFk4b 3 G@CA7 bdπODqq T lȲd<L|nQ3 f*[A7+?2ݫsOLCga1{Vcy ޒ{ODTºi"Ț(0P.)Ҋ;$_LULQI/s3bo,xi ۏp܃O R wt͛6x`ji8*r &3z 5 7&BI'^Sg+2.45̞3QQ1NH"۠ӀFD`*! @ !]Tq:pksSnBWJP lJ-qMbZ^?!%VFʎЅ3@ J,cC͟v9.:Dª)]nhbkb$KYrET˭0h**g "DLu%P - *HI5ٚ* .m$ٮN,TqNFWfuoJCѶHʢRɕ ֮8$n4@Q4됋h*S):,Xm54,`J#BL!m`c##334mꪰK0 E$MX]XaqYi9a:P(Ne/n(~UxjLR+M&IJIaMYV@$mm :bq2,Y7+HUhk9%m-zp&^LUJ)JG!$Zjgm.ȒUkT@ Ea"5e%G-RJͫ,M5"d"m&sMFyVJYSfy".{*ƌ5ZF,m"ۙ P-1hˍ'Y l$i1-IS Z-R)(j뚧m N.g: NN8eAR-5RvVLH#Ky jjxu3BEJR\7'ds`hY.Mk"TN\Dݻ2U@52 H6ZGYuJ7ʣIm*J `c$DD4%$E ,OEEU`ziǡ\~ދ8Rg,GIItʈ\5/[jڳԳ BIS_ Jɮł&L DCk(r߷YBO9T r$ g_c v)k5\ $W/"-U [h|itmm-Qx!lۅ'2-ѐ-li:TNB̍*bQg p\ZY@$LYV! &JJ&t(WDZX* Vbh,9P>GUa2K{.>4=}.g]v$jr:Fר9{)ZDXan|+raKaj\<]e#So4f 5|6 \5.)!Lerhmhd>K]CTC$,w0V*OUUd>2WT جSR96aS.+Hbc"2"2$i$n$<8E%QI4RTClt^ːRTԺK0Rx--'S[7-3>3S>f6+\Cdq,:ܚ !q]#PaC6ijRmj ``Q5]ʢc}RQyj h$)/K2J3P1 İ*!-S-Pi `ju@ `M|w I AwE f/ *M$< eP &|» *v"Bp1z|cQ%^wFK, $iIQ2J fj6,!8Ԁc H]utp x0ESfPQ}%i H3D,S/FQ"(?0#ьtF<;;= =Ԉ7!d00=`i}dшVVY~ z*{?@i3q+iM `q6\#! >1QTjV}6@|xJ?GDplzJL h`J!WF=wRJ iaL#wۏNv-&u`gCD&C Xk ,g 0*Y1#Q4v^xLHakT1?4W|/+ܢ%|nzC:J1(eJG#`=۝V 6OIE 5&r2c%J*3L2)lѻQ Xx-ite &@3tX[@\,"`#m&\MbmD 7,2ěސ03`ˠ3m:EA%7%G/(OG,.„bkJ'փ|XWέBuj[Hv4}~UP#!;{^]u=g_ y0̇!٩jrZ!ƒi :_k99zPԈu)Ot`HH(+!G `.!ӏדO*2+M|F{0K%;`3=/NZּ3.#Ay>@;)*N>UV0@,/{|#@7-c1mC;[˴huP-^/Sx3@UjZ(5 %%5|޲ȢX#  @nϢak Ep$k 䞸4h@nhE.T e f%q;[nh @ Xx@G`GX+z޾\ 䠠. |tx K&C K ^'cy#^KAD%a((>}2zy`]wȐƃ^eT)5}^U E $*hR }YX7 G@"l6@E4!@FtBiA X0 s l1<z،a ;L[n/8Vx`ms%EPDp(Hr +##P΅8F`W&'LdV-; ^\BIa)DSyΈ܌_̫)@ΰZKBs/P@6HJIgĵ:k{8 ;.}z/a#Gtמb'z+F Hoy8+`! ϥg|x H"|L-@VH捷x57~@3Z@,x<=FՀ ; Z@^i FOl9q.)>ԜYCZѥMtU.鶻]D%Q8DȋV\h꡼ª6{M KhfNϑ6DhtM('hDZzAiqF7*$I7(=C  :TvTɯoi'o$-H4)hn*E#Dn8ah iKnS]:~/GlҌ~T6o ;P\.l!Vj2ũ62&H/@كbY'â( `$ [IDŠHF;DzR>(HQIIvX$lF5F%1/`jTIY{2\f97(i%L1=='H$E"!a(Gj&"D"+Q "ښRXo+lXS y+%p;@N(F`VS3Hy[7EwB1H^ſF٘;{^]u=g_ y0̇!٩jrZ!ƒi :_k99z! 붶UTecziB1~,0;.~ `C4 ;= ݚ4 ' z޸UTc){߀ `c`L&gZמ;.#Ay>(1AfWC@!³K@{t!3\B!~=4L! gVSsv?Ў |>Q,6 '$1{L09bӗq @P 0>}x !{ `.1)ӭE;X?#cY_`H`&CC %m!nWPн200|Т$ja`Q\0 vmrƆBAjKt$Q`JJΐEeoBKq%G`\Z$$,H8>@;)*N>UV0@,/{|#;%`C!%+*eP-&G*$hB2 (3(%Yq5jT*ӂuФ- HW)0 |: e.QPqym$+9CYps;[nh @ X'>| z޻ B $x5!ȡ9v D#J*WO@!E'>DH),\B&ar doě@<z،a ;L[n/8VxhX8ڤ?Ū 4˦ܑS6V?-Jބw  36`Mf~jE֙z 6zq ;.}z/a#GtI0Q4:p<-4!G8> d:PVMk˩dU mUBҊ֩`ZJVj ; KɥE"HK[S@A \ϦfڨSK*7Bh2 ix͵ #c)`#‰Gzh` jQ籬 Jʡa! yv1АOBPT$ ncy2ޡL1 :%/ / u,ɱ `+RJФUTb,]HdG"2fEIk҆¬% ;Pg#un!fB~,43i (B=%̭55ף%|[TWjrLc\g <GDYz+4VCͱbB^:d,;L`] ܜ1~)#5OU%ͮ*'w 2pE`lM& ho*p5ro@[@:/8mkhވRJ5#"swoH?i10A, J =M\L @ cXd7 / L!}`1-$ha -: 5)Da%!ChûM"s0Y[nA}fH.(g`ؔ`KAl?X ;Թ% Cw䣜.D6^"K)tL䣕A@ & aZ  &q ^(?4R} jAxЎ"r!3aH  0 0ClHT,ye`$L%KOX(|A@UFZ@00i%@! af-SX]zD v*&6|*l[pRwcnL%i:EchS(4i/A2tY @f 3 gI8 K`:nM, "LR %%"Y~&Q,.BY#J gZ B^!nӔ7 PƁ#D [+\j  1!B@|#٩H iɯ! `."rv':``̀ @tXA-Pf`Dď%@Q;j|}a04 8¹%p@ (4q\1Ɂ;A>P`b>7Z00JHBO<`ԙuU7g7m`P5.W(3[|^e2vDQLO88!lJ @d_v&oj%p0: 1!%?+_!=.) |ϐE)3"r{%=`\QѼh  xJJ;>@Tzf8¿N &Rp8 0@R20s4ɀX5iET0 Gx|B %>֕Ab֜h(8=w,N: ] t }μdO)Y$$02SoB(Mr@o* :P@Y(i 7\p` M< K<@1!R^%c\֚G "st`kلKI`eKt?0Pↁ^ @jPO;D҈A+ζX>Ԡ 4L&b Dҳ!e! D!e&ہP@R6|`b y (wwMCaF4@|A4&ĄPI))Jܷcи v0JғDU00%L!C j5(5:䐲7 ZVx{^FNJu J(#@8 HHfQ)!87,d '?9= b @ PO3ANLӬ=:I(%@ [0j0cOBrqd]iBQ.xcg]EFXG9 $)녓QM/|h "{Y /|v+?!4(\x'`1>6. o,*A(7$ğR0u)PmS5 )+22_*Bh$y% Ć$MB2r`75!k6ma;r }| $La 4tj&* 3$Sɜ:bPC6iL-/oxjM@O &QH+lJv?'PCS߾ `]Yh 2 +2!'%uQ4D@ԁuv};4obNb[DɈi1g0_ )y8Π I~tCIy: H%ABP^Ad b X{fn ^擽@:rxRB U%U%_ Wp% 2c X =:\F"HW!< !FFX@'Qw@ #h0 #e&?-$Bw?%DXbIbb&kIp`o N+$9P _=g_m$`[ _uw9ɫ2)1 0@Hs#w`{Q1.*İPtL(w 7=h!uX2sKŪ8(aiONs]Yȴ$ċj):\BK)\;m¢2VEc Aj6`S2Bb$%J $<5#9QMMEMVUdUfhENt5VZ!5g%yxlu%R\:#agцsql(EZ:ʃ-2e:3Rb:V/ceNMDEO\ Qxf+Ԑ~RG^t\nvI2!% 4UIu%g Nb5 ),7;k |fMN섏M1Ty Ӗ&D6UŲMT474^ ak魺 efPcbU{R4ָ`T#C##4E@@Np-2hQ|ks pz׎XUKa+62)b%u2ңl6(\},On%]be""%$RE$M0=Y4SYUUua] Jp!Iu|ҽ*(1au1#jU=vmʊ]$9F":6NMV3TeMa4-S״-4D#1$IU%Jm@mD&BaBȮo5zaԹef 2)DQO}ؕEL8=_YV8ʮ͖..e*.O"w[Sdح.hj]9 2 HM)=.af))lۗfk)[bR\IB䐂G*PǬ!ݑ5dհᏡ${`d"B3"4I$@5Q=DA4QETUeevf+mБ 6!E1[o?2Ѫ"N5DGFkxX!$:BtM#zV~RBH% ![E&uE%q$;nPvMnkFmM:TjAjaq!%iV]:jGY~mN>]H$petD#fG=:rLy1-6WqãHC˶4$n&.M%,KL4Fߩ{EH |3*"zrW7U5S}j},r-Mkbc#2#24!@ `.!ʑ CANE ᘝ.nHz&4E ).cVi#zjC`<"†bhh K:&"H.L䴁(J%h$gO{*dA6߷ыC.pujtŇ-B)buJ1d_NQ$p] g7{d w3PH; %!#7JPV-|`K AA.\P:}٘`nRA(z!쒙 g)_w>!e[GPM: WK58Յۀ3!BgO/!ґ5 ' O- EWGA''7xQ@;+/#O7Qz ˸:H: A @ތc^xD2f,yM7f)( 8.|BB6`(MI % (YyfrV%,QEMб@WY%)(ɀHD# Eg6 gώ RwyCMߵnӤ!t#p/,+s(By $Tl.GBdKp/|wB[֫f$ڋLWJ:pORhGe8y [Z<-"L&W-kPYh Sژ*@)Hjr@PR Bhx}r?L蘀` RCw&sWCsƤAXfO`@I@;) P?C@{l ,u<%T1A j"k%{WEP "c Uj#^c$7GdJ |ϋBFdHA&>}544`t<()C LjDUP0fYCJ A, @.&bdहrstծ$38  F !Q`? qS`lwxK1r )) =oHFm`蔟Rԓ:Hh3ݾmQ,.R+bf͚(5aU' ԙKsO Ng49uT5T4ElX%f!8 CLւ/+gaU؜t4SxJ󫎢iɅ$ IG34C}!SG `.!-$!Cxh5(1kuro?d4BQջ=[V}[iӀ C.> 0U|0,5,aNiuzF&hlM B (})@t%U:_G @@ap@7߅ۣ{4I]+؜PFy4,@4lŠvQ" $}]n5n C ƒʙlԏ H@N:\l" @o CeEQ(K 03$ny dʑҫeeM/ G Ρ֡)pEOHz Fw"hk˼5(r٤PXh:9(g Shrh y[%6%L2g&>ȢNE3ZPHҬ"kc"4c CPgu LiS 0Be^|+./ D消f4^vGֲ҉7m룞ىƟ@GirY| JTfRg7!$!L{e] fb~ttI`i"B ?n&C&/~7? *lEXtc(e!$^=&16RtKNg1r\Y7k lKJ,t_7<WNOjjhdx_M%A腃FqؠcITmQD16LKUK1BkQXB!S8,(Zᅭ;Q8zI^Eh׬v}U mPjCxy:޹&7Q O0`טqdC(9R܂FuSICxx3L^|'?6 Q2&YSׁRS B3~]R0c;!~?:/x `]Y$%a {eW_`%dNteͶ[p1^\tON.ּox;I|/3A-DH 8.H\QhmJX.ںv8(CpAljB(cVnM+7zAL Gk.BLY;@Js@ F_4j׃};;X?;x&٬̨8?} XTHo|6\Ri*FN.9D&`" ƒCJg /dB M1``~ (,}@C80 fm C`s@%qAJxy`\<`kLL/騤bI^и1{CT̺N٨<UvFi(@XOT΍G\RC2TI `0"(CI#Ji "sX0G3(H4sCYA4`@vpWS6hJAQ$Aa`bdۙ;Ȣxz a Ū+.i>&;/L+IFظz^S=]cCUnw/Y0=*D˨2A|djI30ѽ~ H (~PX=y 3(C\Ij6|OK(?2IK,VŵIO VJus BG 0q,CHi{ @fC$IMRՀ8(~-]< M8 C'_%Vo^q 0er-F|c.Qh`l#񲢊:nHy0Q A٠.{;>П쟴V-O\ʠx !f{ `.1] )d dHvtɁlda 0QR4|m`%WEnl޺\AgqT$Fk" r QC:)aS5` C Ϊء {BQQQ-VTDA=% JKAdۦމ!,Y9:~= ,LJ?3|LZd _.`0 ՐHљ2Fru{܄QDd^@j dE 5T^}3T>>UIcJ2{n Khɤ+0 mDK2) bR gP.9 LjjmD fčg#G3f CPGg2fM"CS AFUHD)QMDuى[:udH:Y`XDa Z>g9E[OJJ-V{:W휊 џj̭IRŅNi+2ȴfRvJK'zj0ޡ'{"ͬ]9,*hδBܣF0ӝу&՟SQ n߬)QOQt*v뾃%%$tŤ0Pqd%TzK;.^bӡ*qB=\rXe1P o[4>Y5$"p%ϗ,@={a갢$*9ra`Zw?4h``H`P% f <40$"p*51 ;Ğ)ȘCF3& HL`ě‘ϼ߲hܰM)OOsiZ9Y $n|u'r8z͹$Xhf. d0e9+``.\q}Jt#"pD\ɅP)v*R{ f`K` ]A : @ҀId< Λ>Ӛm&q7n/J w^RBd EGPLP+ ̨$ t*`i/I7%h/B@HP(VnM& 9)R"qp!кX60 (M@ <@tL'@B%tM_ݨD0(+(j>Xg5+!Rp _E`K/JK J4~,$k8f5?Pa 1LD``@`'Hԁ<IHO* "qv <d("XE0D8S0fid-2Q`z A"cI@ ~O%4*&,ÓjBBh` P1`ܤ">3P@!@0cPCؤ;i0K-%nD6 I`8 "&$Pe`'J?`N3IH$Dd3bQ$$T8 -$"x .Dr izsF2U!$> sy{  ?A( ~?⒐ ']Mq=  s !cT:]faw3i*G. *s4|Zމ!<8 6)> G,1NRV3A@蠞IhS0i :L5R|aTZ|M*G(A`P`Y$+wK /``glnPa) "cTR~u`/ PPEGmx՞z$;$Jc!ph@B 3 oF\cPL- yV [Alf`zqR& A&cnJND?NdP(w3\0X- ?iY`Ĵ? J&& 3p< $e W@#0;8aqaZ!Y0W0ǃ8j"`<.@+0zDp%CI0% MLOT;~)3}$ɨ( ȢF &iJ>-Q%LTĻX ɡ=1)"b4ZKIOt&j xB̋;QTie ^@Gp PRۼRKoV$Ʒ`=@7(|C%EB9;ʑT2ؼzQ&iC@xhDqc&Mbm%'IxY<҄EI&b@yp?d ; d:ZVo-"1$-jG%#pӳDZp\MUxFH$#&&c#WA)BW\ OX0. ؊dV_>AV&ךQEiӣz4ՒkOqvb)RHԍ|;QOS?L%aڀlyVi5G!eV! LQ*B䶀C O` cx%c?X. hh| &/ـƩتA=c5g&%nj >K?MowtJ B%Z PmL&)Q@\Z j-qHZ]2 )K{sf͛EPi6-WC&$s4lMGɡ_&.ɓmY`d1 Cxy:w6iŖ!eSQ,Ì9i(EY ]T;xx3L3O>m6ӊP{4(bFv#***B*BQξuWW8Ì;!!v.ÂGqAvr GJn?p0,$EBR"@ )# ,m qs@ɠev ]6m;HBY^< 3|0q@4CCpdFA:t:a7= I W%rt{""`0<;;wa[[dPE# 8 C䁐76C0i 2ʙ`a!;AH]O$LgXu-ML}Cg?@! c@*| IBr`PH HO%Z(`),EC$HB }_g77bk~.H=tB+.2@-㪀%-*l(TDކ!ފcfJCpNcUZ@H]6mq2(C\I4--͇~ 0nm6Ó] 2-⮴ĽE-/%25̍ F˟c(tEO,ѿorgD-. RgV}ͦyp C'OFF*¸*¾m6lCs*N  m}x0uE``y!|"YYH/;<(3!)#[hH!f/'\9Kv nDC0XE0{Zʒ'@&a.7: B@8K*pCHs 'DG)K&&ಈW;އWS eR8V36X+:G ˙ '?@P H"!=I覚& 9w_#t=iͷʞsL#lIA w:m`Ę kH]Q,b*c\G(]N# #Er(PLQ[jΙzgU5 A!kJh *>Z2P H#U EM \چˆDɢ`vB&FAR2`56]D_q.] .T@_˜ KI"E|}(s бR$ DCD 0~xD@D*I"ȻdpCETADHzWLA:FlʺAb͆i$W'*f@DA qP#C4PCH$UĈ- AʢPnL!ѳG `.!?M)x|uPGF S v$ VD^%@/4B`M´P}A%i TO Q$ Uo]a"%TP V|X&y]j*1$^p lĵ$1>Ό|BT,*@.U.` YP*nDèk9jr7CP-lBJ[ 'y4z=5B!L <1z$PtjD\ F:]"AHtAwE,ǮRtD50_"o.vQw&MP}?~u,a&y Ժ'>Y^ j&*CQ@h,RKi!9D>>MJ N 7Kiʢ`qU^.ET풌N]JSxy:m7/ո T0̃Hve"[AΪi Sxx3L^|'?6 2^rl 0z*ByDFuO˪Y9 `S!~? Q Pn?@  ar 9bJxr}ٙeͶ[p1^\tON.ּoxSI|/3p3 \'%1y,YU=P- 'zN6c!%G7'_4j׃}S;X?;x&٬Ƞ(!%xp @HH˖Y@ #XSo zM8aE [\Ij6߃Ym7(WR]pZ.x;5:@!?h18\uݡjFR[.Oiv m< RUo^i ['_%Vn]3JӰZP T-R3K*mETġGd_YɃ#ȻiC545b/4̘f`]{LՀ Zi6)8|QuB\mE"!w %GTjn//4/`@7DV,;納2IsŻX7q҆v(Cҽ \4,2𪏨' X)7[M8No4NOUzGFj(D"4lfTs9E!&P^\.뉀A,!n~HA{ te &iI` ZnjT CnqzЅ6]Lת@^t(QMYX Z̐,ka94!1,$ioCpQ ]AmUh$I25 ej*^c^f ǫR[)Bi]6M/ T9Ch_ $4t #Ew'! Ѻo A&5 0`g!0aeC@j(UH"| k/a1-5E5UcYH)P+KmP{ME8l4:=lyЪWZ }P;N))/oN \% &{?ڊnvu+QoCN`P 34v۷W۟fC 02M/#2Ն A1 bR wߟ> ]{Խ`!{ `.) &2 %Vfm48 I&)%V AeoQ/s_3<BɮOFقH , ));-@Ly"!0SB ?B~uvul"$(`!1&w A$bJ7Fvd9Do~N;IL(0P;Y@. %TP1(C!nyQCߛ)\RJOҌO7JR!Nv)J,R4JB"4%;4",Ҕ;`0?-L[oCE'o@<@ؘpܴQӺy4Pr {q2(%_p C@Áa7XbRPwv>!0 IN|CB _1 g?ͪR{v۱OA Kv>۳Fi^o!GԳz"@1RC?~k):-t_4  3rbe$ή84&M@`'.~|(X!:+ ?/oэu adn#:[apgNK{ԐX: ߌNnguP߿Ҕ)HxZ Z)4i/{w!L1;~@S@e|ïn{{6'gfh_ߪc^HrJR"#HFR)J,R0C)J)H".RR)IE‘)JD\)rEה 3 ףu 2>dL쐬(~nR1JRrJRR"w!J,R4;)J詥)H",Biܥ))ܥ)rER)HDX@;@0y_Pbz?Cz{KY(ڧŁP=;3LJK Bn0`a }MPiD4 )9: B8u 5@ suzCPM!rt-".FФj# R)JD\)3)JJR") ERr)H'*R-7 ]@ :Y~J=SҏE6Z<3|JkBx佝'\‡)jU-)Gj $w'ZJ2u vJ_z0{,)JR")H-*Of+')JD@+)JJK-)Jj)IERRR/rN~0 hpxݩGoT8nXK )~{b1  Y3,Uv!=0b29W75ώ&%QAQ/sBZnVmN&A,43 ^k\Q$y>ԇ^(ol.Ҕ/v"w)JN.R\)|`}*#J" #) X)DRUR)Iy\))\)9R&/ GiUXD4u{~z''%=vY +{q HC#'dt3t{?tL0aF Yx:BXu^îRr5'-r)HJRsiJU(#!7Y:)H)JDr)#ѩEعJRQT{B?rBWcŔow 0;@{`P[ϸJ;goz$ғ;>DԓvC u~ݮQ0RƑd!٭ `._@Gha`;ݐ=~Dh tP E VF Uz2iN7?YHRu)3d)#fRrσR)JAgyF )*S딥!ҔR&ybnR % ,_~};|='(Ԟ[I{S?2,9VG^)璜 <͵laX@WAHO%l/E3c^~L( g~hf/!|"YA/hdIGλt@0,V~/ l ?@ c@!b)!;9@v:ïd+m_UTP R7B`M` ;^@C lQ㡳=Av/]o^J[ JfAebKܗ\JLq+~znYB#Si6Ho4 v(<^oGwK/`|)G_JR")O3ґar #ӱ4RaB?cd[冂(ai1$p9@0 i/nf<+w9#NMKbVVxtb6 5l''G0_ -d2a4_k2r,%'&K28!=;-sQ WOV}[m M-DH"8+I~g'FXHtt>yL@ !dVHhlOleOO{tVgNYЄ@#JK2tuo!. 뫾cӜR=O7_6hn7m-e- !+|c\5&Q1W%aބ3 ޻m{/0Sq?z4!;,DrXM$ 1 xWdoAGZwG( `6hM`.=;Zh` sĢ ( BNmSJ\ꋹ43rbГ} HX*bVԪ_> шl}yhY?@\eZ)&ؚXn_6 awͶG}D07 aҺSGOoroqѣ~[bny/^wgwν @vVןGL¯Tq0u}d{~'J{>[7CؓC(+d*ekۧr|0h-'.ߌZqg ҆~ycZ@{n4B&Vso@WG|wiC;lx 8 PCHH Ϙ9 H m^~{]=QC9,%]XR5uJX7n}ϩn }(֞ w-ҋ<-=CU p PSqlv8SD*z! `.? +i^cK8p PWs4lfIP +n(q`I^O[ P3CKam7$ pb|r0*a CbRy1ҿ4+JN>ӆn=MݮeV%o]].lvj2K`uAtk4iU*OC?,2hD%K>q} < |kL :)gIgW.B؆8n5 _W|.p1#]G6{[Q!.g^T5d)9$"j?Wbo>KY _sno!?k `ҷ[@tCX}|Ͻ *LK=Կ A4Z;竾T5 kHCޙ BO;uI05 9 %o<XW%&ʒkRusR;W'5 7cdwu;ho=Kx`+rB7p\rpd~uޗY! OgыBNx 3am7)S,h|}#[I0HC'Se)OkL}ɼ}v?x`}I/s2~ZxRz@I4R3Ŷq4nd#ܨWuENHe:^kp)$#qk^Ot@a)EiqgLz%4ہR$Qfi~?IVz}B/^N2X2vڂ_T7g4mzTG옙T 7`S iha0òd2hLY uEUKk Eԗ2WXum?{DݪӓjXi#L?맨b}K &8% g>8 `&¬Mh3{^3TRб$V\UO݉&^:TĢ]]XPlP5TG|/0ۗko^=55"5=7P4;WnwzR+Y!Wdc2QӆWHq_gJ@pjrWI#JdI,!UEAe!01(+Ii77Z솂c>JzxBż#h6)aD0љLߘ|wlr?;G u6)twު$7-< e]?s=و~n"y3i 堰:cC1v{U4",e]_9/TzAb6I^},Pڃ7؞gI{\6v65/kk! :CqhJ>ԕ#bVRVuz} h̡5sY)0A;,}HfƉR3o?vFʢMF+~^h % huVK9ed;9շnYi|1"e/ 09o: 3g^&c7m (Xv6 ;Oxcz?=aw9!˯(5RPOrRù )n% C5mBn7` ~7[}J7?cnP(!@ØpEt/i!y~씣$Dl'IE n͟ L&`! @ !KM$A$U4IVMfWUeav\eG9K.ƨ-? WKhNQR|Q,h?Q<cbJI"J5$QY 0k(bo{DYKjbXoc=[nEnjUP5 E<ʄq%tSe%d)FIcuWkIA6#tyޥ_BqV=JSOZr%vg FӲ ]C[IL9Yƪ%~ڕW9qnKYi>hP.IRJb$mʊDL*qĖ 9\ێCmH`d"BBBUiqjMY%Veyvm]mu}Th5jxԩ=К%DZ|dZ&TX@PtmuHG-A97IEZpfo7짪U _iEzzk/SN41 M~L 2u[pQeS&I gCgӅjfKr"21-GC ; ~ܺ ZaJ]i9&.Q>f+Me'6HֺcJW)ҺL,t3ꏺTl`D,)Un!!5蕀bcC3'e"0H4ECD\ď1DQ=YMFX]aX}Rc*5mmmm$mmz+cwv mm+MqU)6țm6&m]TöYC`aDq*Qҧ98* \:  `QfATホr6ۏmdYYZjmsm_>kh;m6o\F k}. j.Mmlmm|jɍFq>m.j6KJXH fq_=, PڤplM2`t"4326DL@8&ڜqƵ,ыUQdȤUFUeeD\d#1\Ĥc#i-U Jh:Ndu'"CEiBY*>vzБ(N;#iTs3n"oI+D]8ӉWJ5le% riJZN:1$斲D3Wٖ5m5쪸WH*Gn9#Uos cJHӉ"5BbU$$"$&mj5I%USYUmfivYk7T{vGK,V8ءD4j_p-QZ)Mb޴$Lp4("i0ƪ:D*@Yh6x960UPXJ: iEG!y֛ UN4i jֆfՋd8#-ηTg3Qt1$aquxI%._'I0$kEJIrH҅ۃjVu'mL$Ej6UPZR>BQˣIi8Qq TJe[&[`U"D3D&iڪ,M5Uaevז]jqC Ѥjoi4yʌ@Bbwq#L땖yM=a,\H vF3<تavhS97gUK6$MfiUc T*ajWS4ۇ4*BaM۴#91ZFKdoiWR7HIHdj*9I 4߷D'cvYeVRM(lYMQR8IBջiD\r4IzK@I"sDmHu&iScHikEsqԕbe4D#3i,PIumwqii܆g,,Mjm mM,J(B2feZ-WHW ;3iܚob nZ^<~eX/Mm\Df!G `.!zY MJCy{$,3;[M! t|%6/K5!3o;k\>ΥPV+{ޫ4 ;ahB e{ߪmN5o ֎ ;;m5d!YDuGHaeb &-9_ *.@FI Q_t'Q,.tᬱùc{-^˧s7LeŚ12YeBCKbZ4Nxvz| &r.{Y\*B! !=d10[. p\xc ۊmG0-wP҃QsHl11c[|`L\w=-,ym[. !,0F yp ?A/>A6JP ShL vg @Dô/?l[w B((g>a/s5T&:Cm =L?.=5i( [h1̡0tSPldP @u$u FPo!fXX?TWir-E00,$YE*~$T\ hs6Frcfm4$BIbTդtP(0#A=0zj'']^A + bQ|)At伎.&(u!& H:BQwEPX-}\6/H7zyo*=Fŀ [P!3BLv`9蘑"qIĹ3.=a=joypJmj' ÛQ2:CXs, [)'gEͼērO` RBaRC̐!6l|K L[LI [f$; !x=-# izPUI%t Q/cgAL5TSXPy%55 Yb `3:#KgGky^]S{-^ˮXE% NJ2fj[#IRZ}d1) S!q=y4!?IdcS.~  W06A[*/Ş>#/͸-xT>F2MBX,pE3=~%0-k^{S.#Ay>UV0@Ü0,D?J`$Ap+ `s!ِbBWqS[nh @ X'p/`|&  E#UΕ?ԝq  6YzF0 ARԵI[,7AIPY&^jW&j& !Xԡj2!&{ `.1 մ#h#j֬=o^q K.g0R4ŁaGjLu$ JC; 7  m$KE`a`,(T#Ly 3hFf5j  JͱhૅЈ?k6}E@MsT/5Ί-DFP^gOU$oC!m]bqEg]KoE2@ Du@*~Ot "z,'F@P2[@{< _Κ:c+EB ujo>CЍ4=I n0'hof K!enmN Y+s6ïBM+mcE P }2ysK: Rf}R褐CwT& VNo*U!tMCh%٬s S*C0@S^RE7%3hFQ\6l0 2<ET80 nj(#kAh,w\kcX\5=k2LSLR5fNf{өN 7ı2P>!$Y@cBQFnTĮT%trQXKX)ʤ鶄sII^aZ!j/BWGxU8BBp8hg9+\?p:rh ΄@ A0Ha00 UOG;i4F VTf)t^oo֔ŗ /A=!3p:p0 j H6 $ wB) D2p4Eaˁ^_3^-^ -(y1zd H>S&E2HHd߾9*p8F2`D]%NC^F)&E Z!z%LB~[~,, (/>7;GPÀ1z$$0(2bec\d^!(9 X:@ "0I1%_6GC<{qs*pxh`a4ΏNL QI&@(xAFlˉW^ ʃAM:&LU#VG+|a\,{(0f Ƨ/->p*p1q7  .׏ &8 S @`Iiٗ.с)Ag-<: PDERb'zZ9"p@ac1|$jLL!bj6.$r$A%p  `B [DҀZ z"S b @aXfA,yDE$ $bkE /ր_ev @# "Y3g #< @`Bmp@z @l [{Ot :K]EKp蓀r1ڈ,s_& ( % < 0Ñ# Dh `Vh@;!!-O%@:@w&tQ#\L !$l @-ȇ`.0>EBT__P<O:B"P&R+PZTm%Jp4DPj"DQ)` nX~mK2CuV&8‘ɻ|LBB\&9= BQ+$z D"OtG|@^.Z1!9 `.!=0Г6OHg,;8x> #%P j@F9&=jd7>o |. $ !(DDZtΫ^wB_ X$Ò i%^If!=v4'YI@BtHBUx°zSd'!ȼ4 #J(fAEq2KJP`B>bHaPaH )/ņ/>!ѾtE)T_`w5 G/Ɂ;  .Py'@0 / x @6 I_Į!91( B,UZٙ41p$C!lLH]BO I 0JX;~.&yN'T>p*r bhW ÷қ`}| +Xs&X8M@{]`A"D'6i$r'PE( PEH՝@~nE>@%E2&,.vv0 `x8 L@Ba%_4B0 ɿ5 R0&Nх _)̀F.xqN6vzN[6\"w+8{ _, Uɒ9udW+rijC݉4^xC`;0 LAe FQ'%hio rdL0WN^TB\ &'J.-q3 w)Q4G`;x dq@:?!nQNo:MI ?k=D*hD*Q(Ś::qވ//NUrXx) *t[J$|dBض8W r x_hidI 3$K {m((( HDBD%Bj@AMYPWJnY5YI >tXƬEVt(SfDJ(#CtZF7,4 h+}/HoBp\t4 PxZ|B@j-&q>'bvBD^暏EQC Gn n?ͩrG o*HڵQFNUϣ*wHDQWhIˮ_60C85-#d7X+I͉&tW\KEJӤcʏp 1<Ά6_|Sd ҜZ3q-icNJvCN8(=&c . Oh114텁ON6΀[*Q4nId~%;u  RL&+PQܔ#l^}yX /B +`*3@J@>a6bGVo%Y]lc % Ƚ*nP2d<6D:%BcFgr Ov&#π`p4 G}G|GJ꬏ |/Il.$=M{Ȑ+5ǠR^$WХowFj] E(oCgE 8bq.C,5=fC dt@!Kxyu] ȅ$c2RY90̇!٩jrZ!ƒi Ky/{4:a(0'ۇiGcziB1~,0K.~ a Wya3>_CeAp 1f{0K%;`3=/NZּK.#Ay>@K)*N>UV0@÷+\gR.075t]H'eop%B) FJҼspC[nh @ X's !j޹4"~ia==\D^铹Ӫ0*cIпe8#afgQ01@C~KRܖ!IsZ eņ884.8. 0t4 kY-KrԵiӔz@ C!HVcab 2b&x =;5C'=nHz+yYB19D( Chcj2(2mx%x`g,a>lH*xl)8 $!=Al؁ٚ+= hhe8)kC% iXM0"A8^;`Kg CPCs-/mDR + lCˏ1U Mj $ \PB !J}[IS<: U C@K|q_xd;"`]CAiC.$mUp C&jZơ T@}K:FkvhC ozAT(J3Nnh<4T}}L&fFn Tj&aEaL&*+/1u' :҆D2u@[xMgԏU$A\PsƆ^P<>ιC) F5%1-,CnPByL0dX&CP CdEO=t&"g-JR:qD }a>G82~K?DsrUj:3nݠE#Cȃ NxgBv5$OC6IH HVp0Eűǡ] ҬXC,  .H|̽ .x%:ULA!bў& D1bwøįNCxy:&W`Yh QiȖXu'4dQ,Ì3 EȲB3HCy/{4ۜ} fg7bvFMҎ ,@g_4`C!~? ^QP2f õ!A~FB{߱0m c34 ]yCI|/39Pm} jz$ta 2ID`,x&BvhÆe!A @`~/C;X?;x&٬Ƞ(!{6\{%GiBirປ)"߫0`,>،[ۚeŊ8!C80 f) W-o |I0D5{ר5t&ךjYAV>fd[),x&l dSJ;YA4`@[<!j޾X+0M%`%%ޡM",Ѐ9#.ffz 3fQB;~E?60C >2$.\4.#Pڪ XYRܚKV g6׬ ; L 0̢&2g0ھr| EG&)"*[mml|QT˳],2݉lj}O)d)ҫ6ڋcz[uB,5*3xBKUN=EU{hXQg[8;`+ƣi /e!bd#3"C6dM<@A$MFeu[E2W(J#S)fw I2@` 4l.34ig*h;h-.-# *ՕrZ68 i"4(!H ϩPV,UN%[mD*M\*:wUHX.T,fi!ⶍzs 6+Bۉ6duM!fO5qZ*ěd6u+%oD22NB,nF5R1(;Cg8bf5{QE-mhNn<)쭷on88 9d@_(+k$qJ1"n/@9%&ʨdQa4S2ѻk.h4፫!q`S!&dK%U05$PE9OtPeGuX}n\HZjsgt]KLpPd x(5R)XYNcU1!d+EQeᏟ`%x/=8xk k obBuYY^QK4*Rh(ŚHuA]*-mۍ)%~`1]XaS)˛഑5\_d7\M*m47#檎)531pQ zD;q; Tm=Mżp`ą$"$"(H"J(ÐI%YU6muq(R$du5ɒdm&R46Iه+6n[37lv{Yr"&B+XnG#.%HR"ʱTq>6q+#$r2M#Y)36mK$w`䃐3TahLC1nF+ Y-ٽ%boAz/ںɒV \k@td5kS锃"=q"IovM|~ >j"Ҫj$wm$; w6!sG `.1d *0CM`AOѿbOG2Ba7P. J!oiϠPLzTv0+BF@[B U;Ek3H& 7p JϽB[4"JU.PoE#f}7F#Lg *>0yD>MĊnW ŧ~TR8itdmf۴ ;觃Se ̣et*H:jL,2-@!٠hB(䆢}b ⡡>}#"%\BmaԨ Pڲ@MSD>A!h&yEh>Cӓf>`X 32na2L;$`p ϓv ؎X<2*PYFJP&Qi0cMHd r`Jd i ‰s=BaRRbKFc,DL(qe%@*Ch07:ݒ)rauBiL`B# ii$c$Aa(U b<~0G:Q#AIk$u`;&`0_餶$ӻny- 6B}琌]y}ͽ!(jbox2t?@6`wvfF_90T\x?'ر2;@M~LUP0C@Ax| *&6B?G#61 q*5@>Y6@ojh?mQ`w>om`P0 j($$a`PГl䗋8Qm"*p!bez$1%䤁$op4Xjy mJ?A/B~j"qJ&ݔoB#"20 -G$!H[pq gkx riPNI~ڰby1x<ڂdԣ^;! Fw0ͅ/y@'Iqُ0M{dӸR ZjBOp"qvNLTTPhF߹y$MϮe%jPwQ_F- ۉ9`YM(Li=.@S_GI: t  Ʉ`mA7+ y!\ @5*2';ۄ5ڈLmm8pPU0үc++H Ԛ0AF %E輶 +}D$ :!  8J?0 &Xh j܆MeQi( [ 2Ăp;H @4WVQa喔?.ppE5r`br2|(BU%Hy 9憗 fD²Bxugk`0 3dL@_YMX1)[E@aXK rgoXZ8ӀЃY MX%J @@CHeBj@`L#6a%-INΞH.1%PaB;5Ο4cmF 8KAm^[Q F$O%'<$ ~nY!ӆ{ `.A:0|'!@n p,_+$om g!p}g!KYFFXZfl̐ Fp P7Y{@2#pe} v*Q8? }@=\x_PeHp` 'МiTDI !\IxC@a`a`^C3#44oX$s≜1a 84x] Kp*p 4{@ pq?ufpw0}Qp 0-S #,K)= (jQhnAOKKG``EK~! N` ? O& 2"&%  `;ILIJEbLA]#x@@`O߰DtL >`0H IRP {ԇ#&$ r> @a 5BŠA ( ̢`詉g34k# MjCJY.׆/@ >, WC yE rx| J;}Ag&P,ۼYDA}JJj(rϽL 6iHGeT._P$؟݇@^`> \ ݄h"v@k #3P:nԲ|P_$ؓ@(dFȡ x !]!|GK8`1Oj$})$N矣g{ho!O2o 7t. :R1Xo>͢kр0-|7BFb N~I!)㿢x7@&l8ωPKe)>YE%R,7LRπۦ~b !~bI 4)J1-% +L&:1`AAcCv2vEqwKH_Ϥ &J=3>I 0:9)!8=5;BJ+:H]0 $0Є/@0)!f%z 5IJɿ  8GCm#}wD\p $)r>xR@kKy *t@/Q- >kNr ڲ1h!_vݽAH!?hjSΗd'18a0haYZh FL* !& !FIpoL !%!A 8*%aI&h @,C2K&ՆaV$& C|b !Q#po܍HE~1AH%"da(1d I,:˩ȼݨ&$²,-=}H00$EhR+Ri>_Brp5Dԉ4"}Dg r@2J/,4r K6=f8oݵo$㫚2v\R&I >MP̊'P( и%&)99Ko&lQHJoH)Q gmiI|ka}'b~l' No!ә `.!*!y7Qd]E!&C,4VF>ce&% ŖVZ~=c>|ID e@ ]8h%Y@P U$ q4 ` C~Xi`P`Rr/?j @+PiTfzCO깡hd3̏^jeAt}oޫc+(|U}/Bs)5anI~`n}PEQ0,B뗪o]DsbOȭh@܎jUL/(h ! Op${ZF}{p_̊:!-&+V>,oȱ_P' .9!5`'.BUԅП AMPh].hO*.Md@;z^-!cicaSoS<,1d9KSԷ!F4I:_n$Ptl0rPΈӼ20ȜF(Ǭ cO4Y%a;.~ a Wya3-#|IJb*8E"n8! [ט3=~%0-k^{;.#Ay>JVAX !811 ! @P 0>}x ;X?#cYRx"y@܊`8c%Y}D,oJOAd2ujE(bn湸4 p}!;)*N>UV0@Þ `j&.*9E"o~W`.V,p%B) FJҼsp;[nh @ X|6pڞ0sC ?.J;A,>F%>ܾjdy:*k % 0g9g0 3~џk6j8{ m$Bx%494XqCP}]X{Yt3o蔏@-<6) 3жvXs_vK~2U40S mC&U0H̍m.A/QQK+K%,3 M ; zYv@讝 ƧRjs &1^؟i)9f M %ޕsZeɧz(o 3.z^Cv4tg/}`YIB+~O5 ǵJ GHYCh3|㬰܄5NM@cW>s(dANrM@mLIC\AtvPMA_ )(:䐒_+loS&7A˾X0c q y}1A #N+[)@1? (X~Ce y5ca-Cgv1@;) F13,; [BX[EN%4g2"ЎLTVŮؑsϮu_謄 zKDe&2#7(ݑ"&;"C 6BiJ 膆"hb~t!{ʡ `,xS /+ØM5c`3ȗE"!,%"Hֺ^įd9;z^цIDdIN2 SD Ў,j=' yY%c r%nBi&:_0.'7^-.'88=y4!?Idc;.~ a Wya3P@? '3=o^c `0Kv;fz^y{;.#Ay>UV0@ÞTc IsM\;¬ ay `x>wX,xl 2d+83[nh @ X|6pڞ(58#afgQ01@3~KRܖ`!@8I($p\и`~Aibb橪j[N 3!HVcab 9imհBc;X=vejȣfɧcYa!D 3~g593 f;0 ƄjOgB5uPJdAu衩u#=#L.a 3]fuoC?`-pm"r/?Hλ]QW1ԦFwEAʄl4 =)uyugl(]G 3ІoM _WvO{;3#M vd潟B<T cRT=PB 5 ,͇;^iGZPp4NbDSf2 :! xT 5ЃWLj։-Yuq}E\ Vw 3.z^ɳ3T1fׄBÞ!%o$4 ا7*=:_F :ĕrbrk:wf# Q2/$5Aڱ!Ah> +LB蛃7)X %1$/7t EPGQ)kc$u A ^#؏Ky7R3) F13--:^$S>. !4 $ē8 Xqa騢 !i`YF(sA/-A( %t=p {H! @ !(3JRFEQ$+s6}XAMvtXnAbv%R"BDJ8aQy }םny]d}M'FR5j`um5 D A1#i65E Scj+ME)h%8ߩ ?TWM΄"$KTZnDшGڐα l*7885өPZ$p_ (sG9IJܷRBv5q 20\'1jO!ZMf_7x 涩_zRb`w$23EXK9UM}ן~'^i\a(M81 撐j)i(FITDmRKYr%Q,%%II'*6S6&%L>[r4*5*]ZESlm> @<]@/sVDMM51dI7Jm hTR29)Sq!6F7Lk$)^J/guÏz%4U+DsdTtt1~[ hj$k-)eADziL'Fgz|#wwrݙ0,nNybp`*?}qezMIM؞$J8i*9k6̻=ouQ4A8uMZ f%T;t8_m񼜶M"E{x58aaL`U%BB$E(L ,ӓMIiƝ 'buǝx"ЎR4A&xI8mIMUPS=m⪮qJNe#3,)p$T26o#rpfLڌM"iXȟQKe:\Vn8:uH͇B  m#nf@9LzK%!IQh[B+0MJRCqXJ<7!dk2RC\ݱ'\E!4aJ((Ymj_Q;eP(ۻ=3} -47*Y,bd4CA44ӉL,ӒM^eřyءuȞy+F$0M9O/UmJԥPg bDmL;hexѰbjb)͡mIj*Eb4iVrKbpb0J%›Z9,TQC@%/9YB*e8'uuCK ShcnG/ٮ=z&;v7Si%Q$ZrCmW !ױF$sBuXs@HnR"^‘H =Yp*J{zj5ì6 V5WBu`f%CA$Fi"0QWMw!) yכVihe@͋RU4Q!ɪR1YT>Z eDLӃ":hJj+.FbZqQ0kiʮ@nDbbVC j[UjZf v5S\jja2k-\E[*d/Y CPq53f5^Ax4rCO^1GP­$>}6SY>%{LFGETIgbg$C132 Ml0V]Y%v) _niɢ$Jh&QvTeIg~UH>VD120rڲ2QTV@-A!G `.|&E@Tta~)-r J ?bOT@ V` PJo0H :&e5 *sR0AWوaIXiOsPi9H rB"Xa4ဇ0P600aoSG_ yL|~!J ǖRHdB _&w`u   аr/;O R3$pT(C-'F(`E801Z! (<q-ZnIeAilHC  4( 'D D I/'@PA3~w)I,.& BD`2HAM,4 $7=(@ >H(%qǼhۧ.hi]FJ|"Ma Q(5P AC& 14o@(4,ԫw] P) bN ڸF[Ё2OatGSF@š8eH JK&8ʊHf0`4MH`FMA@ `bR4 ҿg02 I tX+d ; +XXMq043Ho]Q0 8oPxH ,% l ЇcG!{ `.!ׂ"\Xb -#JHA-)pGhBi  @ (C/mΒ[03 #t,OQ0I^S᡼gf%}B6B:Ro@~fgۗ?lR3`1H@&C` *[7M!5,xM `i4h+Ʀ&4%'A&j (iH+5-9{? kV[#i <_TZ}虞R`t\L!'DtRyA1BŶ 5=jUiQ؞L +bj7I &?BbW 4F IE 3WDM׌@DH$ܒ pB9&aE 0G(̓\/rOqD5000/٢F ĜL ai[9u2aA8$ & p! `7v\ 3 6$$&'hnV-: H)UzXQ PĐ $(tG~M!~@ֈIfA#m9}= *v pKC _|lCL o% He OH(0lV߮/5^1v#x ,!ě 1CtF>Jč(V9{s$c$`q C!yC9lpbDS>j6쾜=Fɯu|wCY>Ou?Ö@+gu1[3;YZ( ΄c ҒRC{牛}_'r-n*`ӄ3etce[A iu4d[Pcs4ŵEɻAj4e @oS;8^aıQҤ?W]=3xsIMZ9}YCug0ۼY+cd9R9-E ! `.!ןQ4U3xzIjuRهiLQ=X,®L!gƞWW3. p\xcX!7!1(䩇*31 S>0hcc= ` `L\w=-,ym3. !,0F yp > &4%ZQ1ΗNWcxOĸ)L ` `^ьCcXv3w B(*]~ ~hV3FYFn>цw<'A $E:kXوa ֙b>3) P?C@n } <QCS4uz؞[o`x $JO3[g@d`P 8l'S0JfI& AspO<Řm-E a9!E3~KQg%8`?}9@A{\lx`|vV9Q2KQg-IV}[il 3!H%S킼! q g== LԞ rBi*d,pC{Yơ %(fIuoO UnuW'Zؖ312I@ 2@xCD ٩Ā5ATB~qw ]u0>U 2wHq#w;$L(dIه$/R HGW JNR NKL:%lcgk@8 o2U (cw4lr@ڨhc5d8 qy>, \yg0݆y 2?)4tcO$7 X~`hӉ0tI0^$Xݸ~KC`..AO|lu  +I@'+3$0)~6Hj[EWOjA 9'z&hX,L0=ltSe+#lH@[C UDpOy@H%a^<= RX&XL  邸^$ 7N#A|'E<!\x16 J@P CBN@.sGp C/ /G4I 7 fDT~ |.g/@i`KT1 w.ԺRFjG& &<Z1! lN ̛GJ]93VgC) !c~@Z Cm1ox`Д+9ذ|LSТ(o{P wYcBEӦUJ$0H%+ĄdL $@i4RCI[5怡 e41f\0&b讶RI|;f_dVkE'fz^dQ32?bPv @QOIX*pA@tUWC\)&UtIp:Vt3UDh~tJ>Z/J*aq mtLrbix?WCjkaJg/S Cx}IծlX! `.1׼DsLFvo.da-NE T@Cxz`kY6$a٥FY ,@g_4`C!~? ^QP2eR^N76טaͶ[p1^\tON.ּoxCI|/3 Ehh55tw(8,j1HӰW<!;4a2 @`0}x?lC;X?;x&٬Ƞ* Ŵ U= JO %k˹͡ >fṄo[ۚeŊ8!C80 f) W"Yca lC% 9 @I.&. 6 pg0K  2H)ҼG8CYA4`@ Si1<„/ $d.RRn@ V("ݘxssF]ͤjg0̢C~E`8*@˂$\aEYnUffe&"[Ij!;z@ ; L 0_ L<ja_m-I$3Bv"jyӲ':~ =ς~($ Ќ3$ ;l`]/PC)U,OBdK-tšh0* aV;:x,-}VE}PA VYJ$5V JmE38 e< BiX\V%風NΣhQVsgYRB,$fxpTZJpDд7Dp м%eo.x,ߪ鬤iD :PbWZSg+bsF B;+zQ p7'Ę %P;D"] s-?mBQ@ $kBh_ %)۟pdȍZn \HEk_Ԯ"ٰ rɭE3n|')!;_Z_>pS ) ]NQ(!~]u*lU]ARk2HÏg, +|N^ >M>xJLX!vR 2cZy 9 TbB1٦X Q}M7C$a` !FW ?AF tltZA 1)dtD`OЕ\X>ţ~.f J!Eo#AHp,6C@JBJ!{@0!!W O_,?*Yx&3 Y,',BQY=gLI@&&P3 DPȦBP-qJP f@NQ[2\O4}B2;)(P( x0tYD,gd=d!:I0h Wc8H rY7`JXj3YPaj &Mwu=,%LO #1K/} apfs{-H c }u 2Jee[{f$=R.VR$i8Q@/ #ℌG\^b#8BQ$PyIb40]ÿO%$G0| c'* #D3p=E'kVD4PԒRQ@>z=%LBZ xMAQe1}P# ݕlK.,-ZVf!8 ,b (BSJxZFg<4ZDԽA>(, )a Hč I *L zoQؖ5҉ x]4R z +>fBI5$9贐&.ZH`h[o4CVG :R3h`Q<rIp܂i(4X:7`C&^MId ԀV4Pb a0 ߼*3ִx JV8DZt@%G>DII}(De` Bv@R Q[ LP#c )ʃIkQ's\J讽sn8SZ°~ꧨ'EIGIH kK> |4Gx Z뷢 -`!3G @ !ը6[S2ʍȥRRs^qǫU{5[NbAWIug<.#*VYqnY8u!dlLY|պ:[nFoT(_Z?:#[ ,lQQtGB pmj'C^6є۵P(Iš:I> ŇjJE7/) ]< Je-r u`u44"D4щ8]CU5eSIyyeu[e2">xsB$Pdr|-I (pqkpu(VЁc8bz&ZmJb$v5$m\-)XSK2TϙV4PF+nnPbxmf xW!m],EԂi@<*Œ-8T4`u#B23$E"y$zT867)*Z S)XmNSbZdknn+ds4}ԕ%R-YpQXnZ!SO=ڥI*$%\hIW"KSvR6$[+52ģBw 'E [cC#<_F&(aJFI*ǫIou[SJ-IbMqč&вpĐByC6\ɻ5ioh5&`U#33"&M4DM$Q=$Q5WeWUghFu֑Qmޭ ^hM]T-O%m\A}ʹ+o*ok~kR* DҨWMsepÈ+RDe(\Ĥ.ȦϽﭕM4쵱 v8ҒE}\y҆E- Д8X &JY г+m`xaI/2B{t*oΑjAU'G$/ gn B&= h6HM4=K8sd&!Ya̔ ܔ3D0n;'p& OF7ӆ xNPWt=4NbGl2̧s 1>qEن{khxXHӒQ|=Yz _+ Idl">,4Y 44Xa&z;ʐVjwk*JN&> 4 l <p0H*& Pw4 ʤ^`a{PRF%^݊ζ>>>" 8L{1dH`>cD:6sa^m QJퟧ.Bvv}%(g3n7-⻙ @6zgD? ݞ#5G~Ac \݃szl{Fv٧ SrѺϫN9a:qFU#C`@;l2&4I 7m`x hU #*i 5XCxyX9R6eX)@"yc31X/ zrֵC.#Ay>UV0@Æ0zRJ%袆5Ps:C_A@l,x+0K ̤)+J9C[nh @ X|67sSbfmCk+H#Q(m@)?`ey ~,Sըab ;~KRܖ`!@8I($0`|&sx뢃"J;Q/%ܵ-Zt=o^ ;!HVcabZ"F`G$<K yF$''`U g{b1sfQ  ;~JZn92{<]&$! UQ"±Ǥ&L%0?H++k_̡e{g&g :}fQMhQF썛jb86 e`B ot*FFcv w%e5 v[ÁjZ>Ƕµn$،zGe ; éژ6i1vAXd{-N F$k4hqPUՇm8M5#Op'gԣX!=mƭC{ [P,h#rKWO>$,:^ taT\55Q&K'" _CkZ ZƒdCl$fġ)U9K@;) F}y $C+iO$ r@Ԑ2o- (R$Tm ^iC_ODM!Y `.!5mCFHA8*J7P{S*N PCCéαy Y yG6sg2lkͿJ15;~C)ԄS՘-"9Ci=)2 *"E U̐6WVy8FYE`I>$ klrN>:C菁ƠT@e K];xyX-,6P@+oG8Y)Na3!vjZB1H;xyEM| 3X?#cYR}I B)= 5 DF 5m̡<* :?0=;>eAsB?5Wgu5h33)*N>UV0@Æ0Q,-(Q D|itPX"zyh A" `s9BlB3[nh @ X|67sSUo n'::E5`=~ YQF0 A3~KRܖ`!@8I($0`|&XSiAIg`Z7%ܵ-Zt=o^ 3!HVcabZ"1PPYxK!)ƼŃ9/r]=}RcP[  `7!a!D 3~JZmUL)sDBPEz#!٤#X !`ӜJ4ӄVshfqx +I~tٟ` ?(#/.ͭ RiK&%c^$A>#0X0n,(Q@! pXD/jZ?k.ȯQ=4xED ?rb3'x + 1saڰSݐhqX8D4#Q˰|tE8>"Q-,8>Bnj6KEx~^D#@j9b~a)6\x]PRfr&*FjqEa"ܔ=-ǮޔUJ :i K)tEp#Zk퉁`% 65%z#G |HJFBI }t3$mOB1jnEڼ! 4᪑ϊ1L֏z# 5ٮ{Pb+) F}x 6A5 p @0 ~B T^uJx4)TiJZx# ) H;Վ蕱.m0 C@pI*WhX$C\ait#]P-m 1[nfmƅ R5i3~C)؇!7ѱ+^C K &u2ˢ*D`Z J!T %E$ -!#L]x8;0ħH ?E;d-i8Kdc9EҐ. 6qi a X?h#)>LQ` %ҏa̦ 3/=͗NMNtRp#!z犂^twҍU0 CH#u?T0!4%۷ݺ5H@Mi|0001=?e4 dJ ! VNH`ӾJߎ!!l `.Hi0 Y,b?3mP wbM0 II,j +}{G8t=ɮݿB`*䀄0he) J_/bP (Pv@FR}~M bBN: 0 ;!g-!'e>[eW 7 !NVA-$-?=0pZB1vM, !  ` @5IP<+1!(sjT/]b2n7&yidz5',eA\Zsۺ^|Tt|9G{t+''JR")6N})JW#I# EF)HDY))٤)fD3 h !3!hi}Cõ)4$c`zbb` trL GNWWB= t7$no>4Z Q& hXYaIC{N(0 &9y +L|Ɣ,6RL)8`< BA5-gnKsFi^@nMg+ݖ Z1Mً)!{6otZ7'x0  1rbh,3n4@ M2HH&x+ؔ'6>ѣ~P~ &oѝbN< k`x }[apgNK{ԐԆgNnb]B,eJ*~=)KznRM&GK$3mμuQ? "ia\hXQX10Gݿ# rEF;';",R4T‘D3)JJR")H",)IE|\)rJ)HRQzɤ7'y_z0B4p,XqҔc-'RRR.R\)QbN+)JJR")H(gܥ))ܥ)rER$).R*fu&511,!d\e A?ް$^p` 7ΞG nPMihP_{`߬H,]&}srb6cOds菉wQX<]@202(7 𻸲WoLLZ# CT]Rr<=-*{4i\)8JR")JC.6)M_)IGJRsJRZW)J<.)HS.- sdAv PK1 ,䎽Hgb' d[UsR,Rt&p F`TyW,n&r 4d D$%{v>-YSoY%p҃I-ñob%`̦&XfAKހhjRp;QeRvJRܥ)a)J(gL`Q/d;'&J-y;zue|$|$Y `/uݮ ]4 /:r7M s E]sᡘwoB rFvXނӱFgOV!Հ `. O@  F /gݮ4NAk$'r!o>drQe$ڀv$z0w1)~ K4gp`jM (e))ײso4NI\pqYup, Bgodbqܼ7^^U1,i7eka=nCmjxURl<xFJG&|U?4҃u9/fP=>;WJ?k4r}?z)Hr˞úŐn,>#͹J ~&}ǣSܣBnAxߟCAx I;Fcd Yޘ<7?NƷ: P (C)}~7`A5уz~Fu RMBwa!3 zBpߠz?@ |r`rCs# S;RԚC$ #LΞ5#`n]10QPb2#Y|5=?Zl#!Ͷ;lfJatv6[/T1i½`!@# HR3K > ev>o|{mi6HHf@%(@&GZ)>-?@Mvh 1E!W+K#4Y.~\( )E8p t>g3 A> ) Fv>O"f=s6KNƅ?#Po| ?`u/ywĨ ojhod/\"5jbB:l2U aтѬd93]L+wzp4߻tu[!`V##2"$m8I@EQ%UavM˪z ZtNev"xTJnV\)dt[FY6ޘ4,WrBeq:H#Ϧ\{=4Dm"SSI-gSBn $ 7Cr _tUj@'N61 y:ԤBu.p l!ыTAa^95i Q0`b.>/w"5;a# Za:ٱ}/UXfTkڣ-s%xKqH.f_1!Fq]czš!k`G!#YLqc%Lv$@Bw3 "ˬry)lI{ R!i\c9"Q8sBt~8[fJbI ьh)16*sXf\4dz[!1%ԑN6 6LG(r kt[$`U43324(KAPA1SEYe]edS0F3nKPe95?V%ȒN#'Q&Ơ$"gغޚǷlTBb 7 8 ځv2TraSdP7}x%9FReI*U &-͢6ry֥X&T}umi)D-%i:Q32P[+bvA"iDކxF`3n*}\䯹SȪ]sۤQo5+ ]1n?C%lwrSV씮jo umRyҤ֥Ue!9\9ݼժ!lUegQ!suXk хZwV[*I*W[fɹ:+)eZBB71xgZ ZOfdwP2P}kiuIbU"232$I4@(=S@Q=mź`Ͼ.$Rb: a;&8wv|y{'1rIe9x^L17gvI0 'HGN3 ID GH%& ; T#L8#'@0pp#`Ss JC$kht~"K(;u~x78M`  Y@0! ?OdFY]Y yH )9ׯA4_Q4CMsP\0@tB!40W#0 #!ņmvKz=|r'#RV# ɼJW/$5-Up+7_7rq\=0'*0Ͼ:`6>P!PC+'ql2RWW SԞ<Z;-0KZ)w BQӆr0ޫ4xEGܥ y4@P NQ`+F{B` q1FQAa6OOq6 )֠{xR9X ; ! |3r<#rOCnL."a\z F#k5bP0(k087# `*{47>/?VKBWiw(b)<ќgI !^=,BH{LB/v/WDS  #F箳9#jKc?13R0vhF9O) ?n'NQ1pU/x\=)9“%f~/@RYRp 2Ia9Os&̤rӑR9im; ͸O'^01$Ԯ3̓ f+ajE謄okpHa`1)&^?'ە m_-#% oJxs^4`;G @wȗL^#^@9$~Iey`҆wGGB ,P9_??vHĺ QY#w7kL d`R5?;e۝pAss>Z1y[pUIimRB7}\;Z}nk3ͻ؄^Y|J=W\&tyHvKn`WO1 #e/F*P$B@(Pk9c(4 ڡ ǧp[vqUt].5ܤWCN܃L=# nz@@FH);ݰqb05rqȅ4z"Ϲ#*{ tc h/`:5{3/(Y@K!9?`k@/-RR щV}˽=Q * S!O}OITY03Q%.8not`,Wz^*2Y{PYdejU򸫇g϶חR\7f!.{3Acu'CPIh!չ `.!15>Bc䀅㍈[uX]6/h%З 76W}6\K.at/G%l8|8=9p#z7j췧x=B QEGQ}Clр# lR yRV0O8jr!RH?<ݍ'@brԾɩ=@BV@/7|'{9o&0 so݇.pD0 JI{᡻9ōϹ q3ߗgʾp*⮐bM&$ dPa3|2M/#2C9 &~&'XߙfR8_`'()ew; X`bR4Y69%El(ױz +:Ϊ, 2AW+:P^n{U!~(@jP[}>O. @`CQ Ěb(Aw-ҍa2$_t% Gnrw?[}v7vHX?N⽝"hܔ~wL͉MA_ w,f_H?'q|PJ {kFHs!\hu Akm~Wѓu qu.^l v#|i h|*G=ng|?~ޙlIw/ȚғJEMgɁagXL2C^` ccXiWͼMD" 󺂎KMuD欝Y+au^UOgnp+Y|§qj`P!dl*A`iNwEISl$Ĭaì ϭq|rCI4Oi~kf+t?j- a}cZ6e9})z8ަ?&,Z(pŷuv /`YdVHԄ?B s}nFJPMFtgH}>eo0b=ֱEb1V,srgדO= a@I71 , tL7սR3? A`Bp#;8a1 ! @H">\+]+X?#cYRfĒSF=Ca,_TG ӐL@Ԥl`$Lq04ah(ZtZ-ӢR70 v! `.!O~sYix>+)+TasqpTV۴A`a(HC l&0h O) oQoO'!IAz5kYv€7`K- l!+Yp+Zph0T_`P q3< 恷<>/Av!wZIHJ@z#$6@0``d# K1( Ao,lȓOy"a?+<ۚ1hSըAp+h^KPܖ0C(q0$@0xXK rd㿶x"M!_4f9U €$jvyS5p 3!HVc2͡!###FB(< r,)DPhTX,Qz!P5#( +hez"Ufw#3jtǁЉ?eA͹@o)r iC:o~OϋRU㎢5t)6(d@}{%ofJX!lɚL *~_C' @ 7. )јrE <~`0`&{* *2s$:aF(rQ4{ }FQ5e {=!/-0&)$V=j#-*1"DA@##'@ 3ʆLI䰶郕pEKEvDZQ=7D,mR4HŃTE רHt-K6)"ha1!`|'YkLc\#XYMf{Լ)( 3Цc ՍIJ ,/E~DqjFf%Z G}DA ?s蛡=T(Pj5]a(%^GHBGP!QqHJ# (B1HǤ$#TOw&|%#\0 ~RS&bB QD:Y(A݃Fh >2`. C2lf%&\۠3hfC<1Ss,rO,b:z]D!lO0̾3!LWv+':sJbbS1+r`z !_ (X9W"ϓEA! 0 2z+(o} C%QCHi) ݅{z\3z/yׁ` ^Gdf2fj[#I3{/yD;\SЬ⨌Y`YHHv р=g&!#y,c `3.~ a Wya3-~Gz;7f0b,Vc `0KO`;`3=/NZּ3.#Ay>.YdO)#JHoXNڄF{o/PĄ.5cucDW1hSըAp3h^! `.1IleKPܖ0C(q0$@0xXK7̑+>yu'Eo`GyS5p 3!HVc2͡5 ̏ `"'ڨQD{ 6aCk!F9Q 3hez#1[^GgKt$!>rB?zl/Ø*|(a0d'x|y)c){ghf +]&T(cXn&Utqb(ELVwm ΅=U[OB3<<$ѽ VJ`B-Ne[F[:Nh+ `c9χ +mZjRq@,1jK@x>& 2R`̿UPDM[(?`V e5RR *BMܷg&9N ՞.1Sk!ni;B`ـ>VdP(FBvz琄]ЊpaxkXrbRc[+) ܌[թ2jP5o}?= {~?[0UV٤Ӎ`;)%U3@00 f%$f`#[dq   f I0HRh x|4d=᡻B8~Ņ- !Vp sXyԏ23gĥ`S 0_$,@7(NH`!P,1$`(4$  BKŮ4MfAbQ0!^ d@vR!)F=?h 2B@L'p R(M{hn0"^ OĜN@4 N!>IJ51T!G @ !חlYjMUK wd} #x(#_t&5qUT >te "ӎbI(gE-k8r- r"u=THAVpJb蜶zZXRj10n4T}#+dђKF9KJo%#$4'jH uQ .05[mgII}"DFe"\W)p0oR.`E#2""$I$*j (ÎD 8R8=Q4M5Mt|I ZtޏӶQ3됨u)\=sN ؄0yd:nJ $V8Z+c`IzHYj8寚)Cij+F9"5zV:FS>6 2xSd)g;_UU4qI.Chkjn* /M-#`ģ-}TD_ bU#21#$I$,9#=4P=QDM5N,CbjfG9Q7Ud卿Eg)P|1  !F(*..tJ1MmNfUS}ه,[ռ|$`'ϝB%N]*sҴ֋7P$jۢy+'5bz )BmQdza!,2CEMw$݈1h\c'>mNNVoDi ˉprr8EE1BjDio9XOW`T""T"&(Hn0 0EC9@EMTUWUeYevTUKkWmٵљízn,>Mʨ0}/p&KmLTDҜovŬ\c)e|z-C.6$_6*Lݴd'L+J%l"3f0n8s& THE5LU M.Clй r/^-b%VNQuH"ȇ:x҉d`r=31h#xBR/~iAube"22#$Q"@0OEDI%M5VU5eZe_F8ԜȜ.LEfܻ” j+'&j8/OБ7mNpa&lWqC}x7:U%&XkuN*U.J5;ꐊf8VM_{S=o;<*Us dz*P"G%֦ +IzqC6oȡK)_ح;{hvSZ(+qaKZF4h+qKҩJ$|Of"PrĶ*s2NF`T&"bU$RIꚈÎ5SM%QI5U]Z`dX#$^)T˦R#K3yLaa^qsa} ^d3Q*bh"#HC{nKq:^AU&ޥD9tKM)J4΂\> n[P0F,؅t')cdTkL< `ԪkYkl#fyޔaCҦ}eL^Yڅ 0t#O.(&devԒK -~[4u|U94} We=wL"I(\۽0ɊWS@bT#233&i"+Ï8MDMEaUWaZyƛXHeZ<\fHFtnTJˆ)L)执dnBn+EHH6S/E5+rKbkGf<$ T˲5+mFMnMFɔڕ%-[+2saZn%(`gM7Z8։$RN%˶yd!{ `. K0$ѡyxtp HK 4C@J.f0 gIؾ  &|XbM.#a(EOH"'h-fJI rP1Rp$~ u]O0&Eah` urp, R 7T՟a#)+Ed0REx  0%(3J r`x ZAh! CM=0)<@Z(!Zw @GI+f ,0 @bHŤݏj@e'M&NM~qE!V<",0@pG hPw@(I(RDxJBtL) 30 :pjpK` I@P¿,cutNb&@&ۓ28hXI!8]!;&K Dv߇I#h dhurxYTDT%ѓD>?y$$p' (f8d`mIg`JHJ@"P47L$z"!  q)''@17Ӏ #~ߝ@#nL( rxHH; __Bhpg"$:<8IOpt@WL 2P87w$#J IiP]@Ii0b(%%v\E8=8)BFx@pad L N ( tLMU.", 7-V-!+QGC htD/X$ `Q(erZnkcjXi)ʢH@~YD B(53pAOa\` l1,I\J,l&>!͓A0W'd i!G^F,3z13 VQJx$p@$!xt\i ɡ"`%P$  "|I%Jye?dn, ?ZAaY `"iȢh#fE3 Db3LMhk {Q$ !a hr4 ֑4`gV2Q{EtYXhNĔRrv ۲Ք؞}:G;( 3!z!D`t@`m<.&z`o=&]ވFC)%P\Xx pņx VŁ8 nQ)9)Ci&xz Ęh?pbrBzjI$Bɘrq7 ZH,  "$p@6O Ԁ]$1@x dDSKx@EAD|Pa"& h (R$``0tB UT07O- {@SB2 3Ġ2QC;^;V2 I]s3`AIߵ{CF4@!: ) Dy''3I뢊`j2 &6Lp "r 3 t?~ @`"AAy(I_tk|5g%;&R8CaP0ߍ `lϊ}tf>(h~&0.ONFzShb} L D)=j&',5%t-99 /#.~|RGDP\)ET ,yHbL93ɝ|%%'DLl(1$x^!- ;! `.!ىt-t~ DzNUߍo_l|q,QB0+@pԠ Ȇ*C0PV0#} A% C ~YL8*suv:b+H.~ތΕc|!-%y0 Xf6arՄ&aw͹ mH\֐JCr~Ll(߬]ԫ |5&gƧ6U }UG/rKX&ƒg1f^/\ ^ 9QkѺzQp;L۔Q,k}N_ 3b k;'C5RAճIj ҂zo?U9B:\5-u71u(x(#(w'и tt#\L0a@w9!޹rCU%0 F1.0acRJ$%$cl1} `$d% Zd(C+̘ &9+{`ļ-__;7Ȑ6uݟč)d&$;1{|*( aCR-B$@*kwop^ gńTWGޣ[Њ;rHYfFg z^M$!(WВ)- ä[סHG%|_@UA0 0`4, P.]+X?#cYR?f"#bvf/:r1>K3Hz@Ɂ PN3oUu qEdY+.=g-fY9)gֵ= ftۺ4_}sQ) J8DFH9Pl8.-tH` ZFp;e1p+!g0T0T_`C@yf4 8.1 BdGҠdzJL%a_Q59jI KPX!LCq,}hbpu봟[} d'4=OSI s3!h^CPܓRnP<@ w\x}=%H@O/E碊Ev0}yGHԊĒ9 N!e1Ls 3!HVc:2I" eejfH H'vo 3)fm1C4*{V3("||WuAC9]_a& Sn=P,9!1a^̥ư 3jgۘ JB\/vGѨ)GA& 4>82} d2z|ˈ@U$ҐƧDa͟Ї>`\WtS0ro! q:>Q6 ;嫛#$>1 a{!ʱPR@"̟<#H 3PdLF|ẹƲ~Si*vT3mBxH3v C|aH G\5]9,2 ~-A~뾾PbI s8j% 5f2̕}sP 2t1~C# *nBAQᅰ|QHm"fPZ6cycbR}!4xUT.U+oyI=OFR'E@ա5 J_%਄%ōkspZgɧi3.r1ۡUDX *j>uvH|.bYZ `0))WC`+ #YfC'3& 2BMBObn=G/֞zI8c}P%Q @5=I$kW/AFhl)!QİnPGZrZ`,,csm3.r1Bj2,M [߽C3!/"3jb!cuK5)+U&jzyu F/X˓^[g{9(I98Ujk>4W^bk;L;qSХg FWH_(hsFx-*v[ή_'f9 lr?CQ0"Ai < < ! t#*p7IE`1p$óęDF B, Oح&@QM"pdׇ& i~D|D\Qdˢ" ;\s"ph0C@&$ H@hN=V8i#`` `b؃!v5h@!R 1mQ+C ìbM @;a9! D OBЯפ37H\`%m@: C$dG#p%C940VRFIG!W>Q@0!dta!@ `.=B} p4z 1 U7$H0_3wPKI\ђ$(}0jI yLIA#%{B,8M/czֻCy7$D`[ hQ*dF ``7Ĭb U#p2@ X4<hae_LH& `:2P ۏGnMr^p' v45;; U5r!ҼC\gx3' b:Zt*F1.Xot#aa'Gp@3 ,h0`&BJŴPB=Ѐ҆&z?0TȂ )!-xsE^@F$@e Q$x2@lRK<'e_ _:&|LPK/lYdp@H@D!W`&Fo90Hΰ jƣ2@rD@f CbrÏ(ܰÉǧ @A(5%D$3ƀ R#Ϡ !- 8C#BH3q#{ sr,V$$$R9i''@&L(q@d3s!}?``LF{P&&rjY`tJLW A&6?'xj2À7J!E0ґ'~@i`OwVWJvLi n6}}qoB@!$,X0(43/q/IA'x5'cPx~3HNG ) l< S\IJpD`T`쑌[bX 04bT̓&M$ (C&b@P3Rxs`(Q7ă7$bKl#<K( )U7AQ-&Q,%0eNʼn7C&r<0+2OLI#@ga-N7A;&@O`?0(| OB`a+`/ZĊIX?xeO׸?PO^I@$vrs Ie@ߺ  p=yDhPUQSzSp9(?#@gĆڬsDP@(O!"0 >'JnE-?:рrjn_ ,a*#վw 3 C~~O р!XQR1$#軂"sǐCJJC*C9H)|~L%!|HlQ$)$$C1.)(Q~3u&cR,ĆftYJP6PNy)/ `{ E3H,!SG `.!0fH,t  =Ʋ88pH'\d(IdR.CG1(N" hJ2gZ QmGA|a|`'!%(`Mo'\b`{L$'g(zK~DӬ>Fۈh3sx_% Ux cҐ^ "" B#X$ ~pL, #h)FP.!oq/ :?$4 MBjJImNJ߅$4T d4\ dߥ8A/ǒD}E!m_ti~sHߤ%$(@BD!OpE&%@p:+Ӑ4#< i:Oj@E!5>T # LDvDX- !@tjTHV#5AL#(h 5L\6ATLj|ހwp&(@R2 EMp0b @%O2 =;&2Fy?tӀaOMshKw4H 4D {C^דA<ه3$.МM1:q_K(bBj/ 0 BI|`]wu 3 ެv ~%P"*cٍFP5XR@P0 ݯX!VB8L< CBOoG\&c@1 (^^ކp&`҇Hΐ=#(c!D~E& p] l`#1A&4 A : T_'ʠD`Q@@x:G@g4`#DB< }>8 *KQ(k`$V)7D;DA|8*7DpISL0wH1xXi\R82SMK"/$d+u TH]ɗ<)z@ѣǣ IJDD @E : R>uDpGAx&ac N85 `#tPԤߢ%Am* ;@Ht=A+y (`}0p8Ah]&|x$!zk&nezAV >Dl<>Pρ>2+Q%ք'z:XZr0{$zF0SMY@Qk . ҩ :   x/+c|||D@2 hT8ڨG @O`VS/ >O;ɯC,r+d]5 - U Se= ~xť%nQ4Du3&MH@ :Dqܯ^IM݂Cy9"`J NC@%< O!wV(A\!G'$ʛvxŮ 6P`$7؃ zzhʔL}EK.%3p3bߓ蒑7F !Jd# SIWpi(!W !cx!蓃a ) C y*neh 2tjrfHn|mBO~IuS~BQ/g8d)!G@: :\Pbқ\[44t{C{^.޾-CߣhhE aCR-B$@Cxyo[0 ΏM! zc}P =x,z^M` \RR70㭍S `(bA#N9#'{C-c x`LKӖ=xC.#Ay>LWCM/ P~-PtaLGJ3B_tYDa$u)1hx#HT$1ΚSBUςB ;HxHGO0# K^ :QTh+Pp)t4׮/GZ[FXmgBH Ԣ&H} Q\$,!(LBuTfj E;%|$(FBO>_%>UR\TRSҔ`far]z$QP/92( ۜ+!5JM-ӷ|MA5J7GMB1Jj@3(r})M0g7@Wmσ|M BMMh@c+a'hmʡ<RzJBA_3b8&y̭'U#р2pҀ8]j&Ę@&/%R2p`>3aN ]@!SP*cэ$!LzLDJtKCvb_[A 9 ?&}b~9 !c^&=CUѸ抓e3&tw;:}qHAOw@j2r֎J@@5f OW;Jx]A1*hPpH4I,= %:@ PNdp=8pMH,hMNވdg7d|tSI #(" {F?B@p~0 8#`>O/q&t!Zz#zO&sʭ)Xr,:IEkgX&y4`I2OԴ$2Y)LHLlD$Z Nx%ļ* ډc,5$ʕTD<$00 M&ZiOߍ%&II&ADV)<)+#z tx/Pa(.ڨ+)"$M+'s]vy APPb_&A ,?yGjMGO=~ *`:bSyk%TL5':WDP5Ar$$Ԭvza3 O2Q}k!UlQHd>RRKdeFnxÎiho&ތT o>s*:~z#&$>x P%/$' '+ 7;4RQiخ5WjYc6%0 IC7 쀞$`e *m r!ɁO1D̻ CRJ-(/ P0#'Gw\ t _ cZCyg^!e_6kş>x å~6YVD6Յ2XV016.Qz&Ģ`a%1,6z@f%g?|}ĐͭmNϬz2n{L J%hy3 Ou* 5!qz#r0A&;(34mą;|KDZP AEICs4gTlZ&$*z1AfzE%m(jT1n+!׳G `.!9y!j( ?g/~`A۰3j6?|/2u4޽ n)@`PʓY}b*o:n7CW[}/R?cjX!a6RI-ͿXťz|LZR4o@΍MOɀ7#2gҪUUsИ] Cxyz aTNߝ$&U c r%nBi&Cxyo_\Et}Ixi柋$q1C.~ a Wya39k}Ỳu ;'`m~c `0Kv;fz^y{C.#Ay>J(&R)) 6HBRbҘ}Y AnBa.vc1)g̳K /C.=g-fY9)gֵr ZA@ݾ!I-Nl|P7^sD(0d "\k2TXf ` @h4`W+!FY #qC!f0T0T< h~p!A]ecz;TJ!P  w6wXB=hSBsC!h^CPܓRnP<@ w?cBB @BKhٯ' @lZnY+'9f;<35x ;!HVc:5dQ?%}.$A| 4m:] !F)^%[/D_CeIa#ƍZ NzCgX`l>٬k2; ;!fj.Ey4,8z!l?:PСDvy4%1M+%Mp/*MΕ lK[>XdQzl S"f,e}GtmF 螗e hd˖ !:1Y= Z2m'  CPWg{h`xeKPbI ?bx""1 9m(upEV2I3YC`}R'"<eiwDpPedt}PJOQ ;hvbt+Y uL $YN% kNDXxb:UP}P֎BaC%Ik ט6!lS% {|CC滳ڳiF5m%8;PRŝd̘c!Xzi-Ai,Xw3u]Cfc/!)cgXjyl'Z8Bs9G!3CH"ʸ7P&'E'~u  Q 2Qi +2!&@KgFZ(0܊'RLw%pC1jAZO!}QO٢QэMBPlO]K1!F1䥰C!&bse5MKQvH},VdByEdy(T_d&T|h<ьqE - +* jA%I3{8\c|ԁz c6b<m>I/z%r7:6;5Cxy=t5 -*!vra-NE T@Cxy6QʅV3+ JYywRnU=x!e<#:,0;!~? ^QP2fi5lj`ICU]u k 1 p0Kˎ3^m;I|/3]Bzwm1!{ @ ! 4m,{Fرz6|i&q'!Ӎ5Z 1Q&Kv@r57')4h e̱Aeμ3#`ΊM GT6Xu$\; *2R7 2XP`c$DB4Fm ڻCM/- 52fO Z+C(J~SaBѤ Ėr➖YUZ]T6:w=|lS&f䉁D [☍dvin&̻׮%k Yj |Z/9%FJZFEh檚m~m8ʕ]kr|h6D qݒEZQ tL(pn2qTN2,B8UanbS$3226IjkLPEEQTU!٭ `.1t̖cra @^`'g3( `i^°[d;;X?;x&٬Ƞ*o|%DhB4M  L'Oz#*8H|K[.1,m8a; ,dY'ͼivxzcfp;dB2j,; X0TŁh9L΂7A]bLu\~dBM&#\] `ӝv `]# ?&ћIrOp; e 7 A?;'3z[ߦ 's.ܚ'г~=;60f[k ; L αfDb?%Fr`z LcDM䠕\3g4^h!01l}?`Xfl; ;a3F!G1g!G1g#O1f(E(_( -Kwl&Cynumᲀz3^, J͚OPg!F15  H hrkܻDqtnL7ɟa4%RBX|lNB(#avE7 CPG5(ȱX AJ7%())RZ smz0Gc0XEPPTXE7Ztk>qdBf(֫^PdOe"GĆ ;PC3HoEIooc%qBC.QCb\h2b: dA_g6D&e DNԔ &TI1)7KPsBHw'Xm-Pb:^E!rrLOh˒KPA cw'ZL/TS#4ewm;P+0&b`Tr_,:a8G pɀU%)($r0јzb/G&rр%@!| ("AKw+BId! diHT'YQJ:̓ b2LZIlT&e$A%8ؔ9ےSg˼K} Xٗt=G v i|6WY7}UϏ֏PT1#6z_c0pȔyaPS_SW ]cjk߼bр2pe JKF~7n!^]pfO 1*p˜ !d JGE"(j i֞&: p*p‰h;ô9 * "qB!Pi 0X3K藵~F,gGҖ0j褧@0%̀`PBcj&Hx3%f.\B8"qB5L2nCH0 `E哟@!u y($7:d¹~!t@,+M&iY=m/^Q﵁db;%=ݛo'p/T``ޤ^'{ i1 JMK~jFڈI3 ۰j 2lrR>D73""qC`Ј 1Jx F 4ΌYEy_qzˢ`PQҌ+@*|a!(iTXBHM (amcgV>@Scj$]yL2'"q7|#O2!`hEDc @cNO2%בh%` I94P#)8T`X " PB1~6B,}o@P0x Lh}8"pPP(5Ih/65^(ëS! `.IhHJma0~i BWB?ؘ!d(L.R 3E!c rrʸO%_\&$LA']/0J!,܍5 #KpTـnODp { 5F$D)0*`K!jGNOĂ-\Db^ x`i_g@h!rj3hJx+ƤHGQaA , $R{ cbX(n`;algmX*JB6Aee;W1|? &φaܩ JTKd9,.m `baX4$ 47R;LƁ<ɀ@} ?x+bI\r8`r&b ҄#JD4H$䙘7pW /AT48*"9NuQÞl8`uM`c> #N_%L P7`sn iD #eI aWvAcõfD\8(@0 KGL$"bG@5C4$nr` 1i04@bbL7 &K i- p&'&7-ǧ! ?,ZAW8-n#FH݅@:I"&vJCըxdL`rp`%0.BG@x* /&HAC J[)忋H(7pޒB8&n;1 oBKHhԐH栓̓9,1k\7?G3fPC1hN9ݹz8 2\-=ɜ( BW&!AV=Qי|`=htDt(JWjAPAc0/D-TF0)>X ;qU Z&] ^ +o٢(bΗp:EJ(ErD!T&UQö (R8E553" A6Ex0( r (M%#rND</|yzaaq5Η+L!:Ăƛɬ-bgp)M?@x)4AXksݠ(@y@\쑙r(\M,"&rЎ|{ţ$a#@B3H!J >*0jHI(u:u'>I@= *GN.ttD-)I GO>46]7nw 1{D 廏NIQJ HO1(8eB(apJ?%g V"\vï?hN`F \41TVLK,k( 3%+lHEBScHoИFd0=J% wN)`+: hPhC I~(a9o<0 NA6 , LMΏ4$0`&2@-Nmpjxd`9A*-Q`eLPjpTN)h\rjP) 4ISq<Avx!Nx*0b3 GGZ]R[hI5*!8IxLi1'Pk (c} D?'ٖdB1Y܉Cwom_ DC'MCw*\WNJɘ;xz(*CpA`8Ab 1d9KSԷ!F4I;xa,?E;P /Hg$E>ƹk,&z^MC(cVsH##ЉYCD0c9 pia༰;.=g-fY9)g@E ]Cu%uHH}pYp|w[ׄ B30f40+퐄#,8;!f0T0T< h~p!A]e`%D @Xt},UQO#%EH/ 5!fдgq !9{;!h^CPܓRnP<@ w?cBY |s|Z Q `0C5U?R SiY~z^ZnY+'9f;<35x ;!HVc:2Pf|ϑb[Kyvb1yk2; ;!fj"e/F }Rqi ؐHIc",euʶE^DWS##흦X C"f&r~e<7 &*9Dw=TR'Gk >(|(i L:sbQmfM9rd ;Pv|>{N^O$~Hv8\W%.ú(N.@TlT%! O9;OTa J,N7UO5fȎvL` ;PMӓ BPۊh2!|辂TPծS[+O94Hk NRR0<>@/ 1TYK",i)RA%1IA4Ni( |y$ϡ#AAb1\I0^ Rux׽%;C>̹YMSsE/$\QOԠc !Ϻ VR>c'Η1#-Ut,yP ɠ`pTY xPrZPSaq7u.;@pN}+8^$'ᮨ[t|ߡ'_nwfL &wt54'10۳%<^D4$˥ǁtc0Fcnm(jy(l;d;!Nb%]Dա)2?L:q^]x;xz!^Y(!<8Ab 1d9KSԷ!F4I;x`㜨w9i KSXi,&z^M _[<=#t3OihZ38=3!h^CPܓRnP<@ w?cBY<<~c,oKDrQy $z^ZnY+'9f;<35x 3!HVc:2Pfu1 DWu{-n31f&k̄! 3!fmɣlC9 1{`=DOdxJB)_` ;P3:6tHBX%M8 :yؒ1jz\ŝꢐ@NA>ձ%!jE('|Gsۄ%RK$;XդhIjOVOUIɈ\eR{fR 2pEwLOEh>a_`G-kQ) gP,L( Tr&МlPӂ2zm#$DsyIj咽BSC@yBc25&Ska`IG萒ؖY]{N-ki2{z25MCQ xg& a $ C`z0&y>O33 ˉe<^EK@2G1}ZJ.;~bF#16m zIH, ѝ 9`J{5?ЖB K${ y!#cSj֡K(? 9<:܆5b2g!IKGk\8 >%b1aQ`8Hb)r%$`< mluEQ\ HRbR]G2JV`x*&#bUg[^?^ +Ŗ$B7J;m- He`Ha/2 7>YJ @ntwRZ:^,!0 p!xCN`09Rbd"avK';vNVkڀidP L a0Eri[)ɠ5tb(Yh(7$K퓿$x~:;, ` !,Z~$̌?<^P$401҃C7B +n%vukCj#xQ}ۥ` LC;XahB}ebp\Dr1=!Ry|4J[͏a;)rw}_Qzh  @nB7#3!)m2-0 u)'?p'O={p@@0:(-vCVCjB 5;Œ GGBQ,W=F7'K`^ AA(_ ^=O6`! 9@TH-2ן>G+b>)J0?ԷZ3P 1?7}z09@'@>~ޘ@?:7i{nij딥-+{4jsHQbERi Jvi DY)3 h !3!hi}Cõ)4$!&{ @ !نQeYiƟueqa蝒7 OOcB&L.-Ӓv9 twnl][1-Oy&*̗"eYEqiZeEZUoFs,38ڶJE+I$ig 6aRE;t+ndi.Rmر \ZR\ejaDZ1 1(۲tV1ѵV71O4's5f+QfsKКH>M8˚+qres۲Er `S33236M"꺪RAEYEUEYiכ}ǛJ7iMۍ-Z8Mhar<̥nWA4`QU>]y7_LL kdu30uH2JMŊQJtݏWT;gv5E(ئW,jZI2qbUR{uTs]idmQ2J*nQU)S&4IUЗb&gҌܯ\m'ͷo1BKkmn$VPjqWiƮ50bҐE8b‘Ti436 MSbsDkRbc3443&I "+HUDVUY%TUem[y^n()uz/$.%!D^zMDSndmƖdBCRڮE(ndm.mWkk$hG"FHCb- nN|&,jB| uWf"\[8P%b6*͉s%&ʛPyVUI6;XSq"#X!G²Tꪔ^ٔV5B[2+ XEI52[*u(H"Q\rpBqY-ĉD<_+:;s@)zBHogF?yzF/ r 5qBB]vwz)Ƥ7?ʰrw Kc (UTzRnrH{Ć".̋u\۪ ?e.)Ia\a9\) !DR4RHQbD3)JJR")H",)IEK# A)JD\J )lLf):{lh)!&_I,f ! {gkgjT {`J-}7/]}۪,~֔Wrٌ)I)I)JN.R܄i(H'+)JJR")H(gܥ))ܥ)rEI+Hd2bCKoh k?ķB i}02^CxӀ?vrYzRq ׋FlRգ*Q^\ڟa^PۿG?o^V]CQ/7Hq6MkNoRURJR"Фx{hSƯR0\)rER8#)JJR") hJRR".R^0C&9oz0`a0vO=vDD$/qF~X-Zݛ){T$^~ [ex 'ҔJR")H-*Of*R\))JC.6)M_)IGJRsJRZW)J<.JBjx89 M ,|wЏ_%;դ*QEC&w )0W\P5%+{FM4B;9ߎ>ʹ[? Km@_K~zH}e )ԼL0};g9yH}9Z'.b A3SL]3)JON(}"{\)?R0?3>0>%6aU)JD@) XjROܥ)\))IyQ@jYp9/pR=rH;ÎQ$exk8^MG&Y\gX0J@bL ƔFh'!|Y ^ `M(0 H>d74;9b0U,y`Ԕ a HFI&!h %]u_nXO A5XM>}4>RykJR:QJRl)JLn,~ir^)OT=>;WJ?k4r}?z)Hr˞úŐn,>#͹J ~&}ǣSb }p@4  'p'`!䛻Y-5 BvNK|w`@9 0/bĸ;8{ULJy]c$x{1 ҀvB %a jz@`INB~}#= GJ;guPo`2BЂUF!L `. #YwX JPcRwy0H 4&$R%JI{ :Ԗ"R)JGziHݦٮzRGjR#q9?plP]jHib2_ @+e2gqV)[`a,}94vI4!$Pne[VY1%/8 @v0acρ3>lM)?jZ3 `a"[glDB v/QN@_f_m3;mKBҞrÛ|#?(rϾ8Cw%{nJ],Qy|D^.t` %'cwI+͹<$"n  $4pw%mkU^|4⠢eϲݻn9>$n;04I)7bδ%h)h k HGV)8~Ly%$÷k5%XfXn=%n8|~.Nb  )ӱ߉P'K>O"a ##D;l?Ȥj Ʌ>F-;pԓ6I'+w&$j!`WLqא+ֺ Xg?@ g$.D`KC{І˘  <@@@rQ5e{: .  NH]d J jX9I%gߋ ڱ%@=@"D 1&`Ҿ^^sOts(Y#щ,qXn=Jq%_"@B?@oY0,g"ֆAc@!m?1a%؁T^Q3?]*2tӒïYRyAyo_U)_z1J W*wݪ)뢒wR76jYxxov4U!!` `.LM))5z0Lh" )9b{X \ۆPo:גI+.;А+.)w|&ŠnJGn׷J˹@~j?b|ąn,1{n0ac̚7`1{k4'Z( U,#$1{NSQ hx.w$V3F,;?v $,aFJ9 +X XA wd{*vTǸ'ސCY,*@cYhT"cbavU )--+r(]4=tɻbK=Wg JВu5X44i,vuQ1|~ |c^̔A{нX| 1VOZCS\򖏇)&N/T;H7,1'XBbaawSn }731\pR_R{pA] ά T3s2~ge<$=_*=F@i_,k=T ^T*_Z'TLN1{}Ntl.Τds7dz( [2v 4 %#?&FNow8: {T9|}@6@oJRsAT}}>`韦ԣs0d6*C]&'SlmiB3vaHl@L(%)dOJזXqlٯt.[lkmVRxM?ǝ`: 3t~96m|1asY\!("haE&}ߟ21〄P 1Y8 )Xԝ[agAoo 3 &NNo`N9;ud.yĭU^H<$J&@l_+ ` w-;)A tuKxa\0KJI g `Ia+*G#̞uWFF{I`' )%qiFe|V,Vk;9;Svp¹_oi`T{<;#c^W7^Ժ/0Fڞ\ +AD0ԛy]y$|1 ͽ dSt1Q:6۰ONA۰^gՍBSD;ݍ{ 7`%n̰}(v oBS z' 92b ֔2F3yw"0 ƥ?4ᡏ~O%(s4g>$35/l锌M)߲áI~ӿƱw씣sĦ|Jv̺=MP1 ? bhvXi7yI%Q))m쿖~au1RPqc֞)Jqq׭{5}w{r'/Q,W#ؽg& Q~ v4֞2)۟Щߓɩ&?GvS&#oݿp3d Ͱ1OEosԾB!@ 䔒ɤ&^9fE]] @h @vC&>ID"n@ߑ#C{w=k"أј;xzՄ͢PF]Igy/1d9KSԷ!F4I2^D]k!^4r 8FIYɧAƞiK'3.~ a Wya2A`j+aD6V[1f{# X`LKӖ=x3.#Ay>3.zrضeVy:K E2N21b} rG4F$sH?5 8@!/ @'O,P,A>9(sPۓc0b_EN.+ %Hzw՚jC0T0y>$Un#2@ :ngL!HtG47MIz28}FKHTq(o p S֔J@&-R{Caa t::UiSHB;U 3hgrOO10֖Q,v: Q(\6]qtP "DFȡ,$-;= (U nRlI|"1$C@S?=z!\.7LQ@,MC/ g+3kTZ'mz! 3P(+'!ن{ `.!ʵ9MrsPC;eKR*))QI%1abRu ǫS^㰟yI%M<2_L-9M @L-f# H`ϙ 8+I@QP!g%3X0t#:I:yLwE:e.2~C9Lg6u(U[TVm9G욄 K?G)L0`#su <0-8MGe;R͛oeLXU~ A;\詘3xz,WB2|o޵fV 0;5-NKR܄!M$2^Ҁ0Xº70 8dA3 &v=g&!#y,c `3.~ a Wya3 F}i c@TT!H d0cHc8&3k{3.#Ay>Ig?3'yQ,&C<4\PfG%iЌ=| ,0bXB ?0gh  vp;d!+!Ms3!`S@HLDL ro|A]bx.Q}1ԒG9B@9p*;C &,.G_' `x^di=OSI s3!h^CPܓRnP(x 0$@?t,2?t:)WE[0돗BB9$#zvSQjYJHcQ0FSױ 3!HVc:3!93Q0 0@0DeCPi/9MQF(̄!wjX 3!}n\0M(W NB5VZGL'w7Cļ5Lt. ³ ax&^3eϨf 탬Ȅ(#ͣg2 3#y܋4 5U5dÐI(4C TA=LX$-6jfGC}B=QA9P -R.P~+3k' יd>$v%$s>]*lԚ3Ad6k7; JE~[(6fthbE@jKE $#H!Gy@~u$0CS[İR6ZhШ4IyMCMR^dKΈx=D@+AH.iP$ޢt:H%nx0W) J1*o'e` 2䩙6RZ%lLS4I|WLmzT'5Ԥf/Q/hފ@!OlH?hNCɔ2Pi{QC-˸VPP±(A43_n'$T ex4>7Sԝ7}m(SX29>EkӳOc,v+CYt5#2F,790b@BF!S+A@+JUB{ᄲGCE{%)L%\$F>0mBL&Pa3׉7^{J#E H'bP jBbK^gc LlVOߜ1;E`RKqa].e<:܆##)4Bk1s!ٙ @ !8%\>H/qp9,w]ɽy֥'Ц4DPa'Q4Yf pr[߹Tq"HzF5%iY吁7upe޻y^[nD*1ěEkۭM 0R`T&"""$(`z#LQ%M4V;W@I +UT+TM-zZbc$#336I$dUETI$RU5QeY]xnTқ4vֆUgνC; sin`0Y]I?"|#[j񸢬*#T^ulRd2$f qd&{q;\<) #h) I-1O HO"mjQn4;u>֘6mƜd1X R&m6\py_SڬfJBmne4veT.%b(eQU7DĆ2nEZ&Z]o2\b6"0[|CK3``S#23"Gi2誻RMEZUeTYd]VYeuq{d iQlK2Oiama)+/]L'&E+;Mbcaf۰-טxƂA"F=DJ_lEB&\9:L"݅îKY2Ya=TCEIspjl*eMknfkFOdnP#Z95_hpRngmiii#Ţp8cC)2k>&]FRQKbYZq1yrEe8 ukrg\vbS4#$$(1&zԖMEQUavV]aiנyz)\Y}nQI+RT =r>[Y6,>8y^ԕɠhM3llUS4J©W.*8AmRh6zHu.."؍i#Lٲ^j.i#ֳeYЎFگXɩRH4Q"Ֆ>J:DSSčomRzxr RօP&mĶΒRn^7ud!z%[仲r6۪8_-%_e27Y]?H!٬ `.1{#٨)&S%,8*>Il*VJWEpM& ~3yx#ĽǵUғ$쿵vudMqkW~U2pm;&@% Ln*:v }<R#b &bJ߀nr.Fw`nLۛ%dkBi 1*p`F 3Â/Oa)O3'`JN Q_HGH1*qV<^,nC螛@|L< Ax0]@#qN4i0Dx`%kj"0iA%πh Đ07 2] ("qKD IP@; {AxLHO 0^(! L*3f5 a5; A}= Ōbvf~%E%p \+E)8>ZE(ОM|-1mHA< i$TE I8"qc P 8*`I#ņOAtN,CD @g| Hr0]914O 0]~v` EK}= * K"q@ !0(`pi\Գh 4貐B 0i:d4%q i BnYEt @0hj4D?eD,&5 BQu`ڒ,H%G)j CWd湁7JOC3/]5(k]00 a+tb<م BPO``M0Iy-fR@ҒrsD$E䁌"`P DTA,iˀ.f-QC CHe Y4}d"ЂXs}*r F\rh @tx0@Ԯt ge fEf^A42~H&Ǣ&Ө*IW, =`) o](dEX`0,.JnPi"RZ* Hjw-דR5-0zx?nfnF~|c: SzgIjUY/`BI" aU#XL4 D0*;Ў *s 'asף`OXc=!ٸ@& W _HNv'C(YBQ@1,0($X`KE6f0|^:LZ̐,3-k= ']{ (W&?ԓwΫY/O*i`Yt`Q,k_ёKUuj(a !@0YiC0Fx5;mDQ J (0 ͉I4i(4@.˧0#-m('ToFW 3 *g! x,,$9QDc $Q3?Dc:b{" U.gicp(ͯd9-Aw7 e( n]( c.u| 3RA`% 0 @AdBPga @q d%G@#(a>^drRX gD0 >b@ bn8 P¿Ij''xG]8tNIP(VմM '2S  %f$'?YO*[ˀ}w *BxțX0 |1a+zb@ J¶#U|؟y;F Aħ/D0M<"\RmC6~/8EDbN~ OEi HϷ=TK @PU#x3A7DMt& !*Dp~Jd`A'4 *\dTƋ%'͘H]· ;H5= "h"`|CIVILU!"CA H"EbRCOj0:uah&S/p }0ц1a!~ j&SI~K_)3QL_(@F (,o ,m &,@043 oT114$'PW3HIY(\$.@t@]I:F秓Wj4hc|0ɉ|?D &LB9[BQa 'wB.`&$D?]G2k@p'w[l>JSЕ- NVpjQ`~!MIJD :0Ĕ%$XQ < *tq@SއH Kp`ā:ŕNN8/F,+yRS %$]F QU.g>~]\ިɋ$>mc9pa5j$'K7Tl@W17 7@W8B { "0M &,"hOMQ .tTA˴X PRFdZvY j j>n҆렳jp+Yҍ:Fc^hN;^N]'H A_2^=-f%#W:Ԇ ];O!4;57eߌ?oh"gAM`(T*C bRKhJrA@ <3]n3"ב=: cy޳f*Dȫɚ?XN ,i^-Ek.]P3# 4TguHaSpdKYA6g W: zaGAo(~`Wqj;HOmouWvs J>Lu|ɚ ;xv4$5XXq>ZXc&is fQe(A3:T \,C a =fAfS!d!g(g_u!G `.a;!!v.ÂcyFo8eQɰuJ@d43p=Ȯ>vvʉs4ذ,iaʨ6ˎ;M, ]yl;HBY^< 3|ag"g 4jEQ,flL3dI!>Lo~G0v`_8+ppH a %y̥NDDax?l?l;;wa[[dPEW0YI)1e}&bd0_ :lzTZtrx~qB7|m]JwtakBP+ am&Rg0fm=fiŊ)};g::M,'/lͽ2a=1N6:60y0Php , >ⶊ D<鷁l l 0~~ `-he&s<;XX c `AF0J F2 GbifcoitKB[)F0gX̔z(0E>1B*(.QƹC6i9DTG6m; A pv pwk` +L cgȚKĔ2Rz騉xB@>ŤEF9ge#tYO( `Uk6jdIL4 ; `SS a9F7S}+-Rb@*-.g gqKV}@vUΕ eH!$Izq㭛4&KA,ao JC8\hAe39|dJ6\0 nC Z OJ +&Rxe 0$mơ )R-װ)ðn|={M$ B@CIZv6IQ ]qJ:|^% #t2FM?No^E)\ir IR:NFϒAo btoRR מ׾Z ŌZr~/ c-Iģh0):6 u( j @DiNDA^XDBuW 6:]R,ZExtH>h"u=˳2 kFW. 0P/Bq'Ap!Oz&6뀄Ds-ҵS MXQ 2^RiD]D 0WPF՟D^IL]NJ%>CCK{G B,H p!  C+T%᷀ ?Ap|9J"!/K:! :5z @x?QɃT&;RK(4 +"TR-&"y<ڇ@Rdɪ'$8|$dngHf-Q)PN`K J.z2YrdY a: wc<4K GR%#@*C`Z2 r刀 K q8m `ǢPf>H t?I& fM.Ax>!ێlDP1EjTTN6LlOtE`.?¼>c 遁-sZ  %wnP '0_1ij%)I[ij6ΉL-"&wTJ cb'O'ARHFyu&3ʉ ) % !r_ '0`A|At"'Az /B(STec /xǛ#'~DV[ l2 OY$ K͒Sxt]G2zinai̢YKr!M$Rl-#Hʱ<@g;* Q|NqS!~? ^QP2f, N1&`Apf`iy̪lZˎ3@כmSI|/38FĴt\*m*WɣtK糧rh_>."0/kpW ,8qI @`0}x?lS;X?;x&٬Ƞ*3 $mK#Pa Zь0Ah $ҕf듻P3,AǗUJ}P+a2Lvm7Y4Ù 1CS8fM坁 op:iQhXUKj'O V44Z K4ֳ, O*߁l < @hl)y&TG8SX@ D0pAPM5RCH4@xTvC"J AXనʿI&`UP:(OSD{S e i74 @|0.Rװ6 )ǢڰUG6AiڒK`;ܨ.&a%E0OTYxu @L JFDh03"6&C(ƪІ> Ba_tD0 yⶋFCʃy mNXͨ2L) S L A31ѧ=I(X(F:@a ŌTCtۇ*}EJVOyv5?PMROxxjɝ8^!0 2I%+5+ ^Q0/}ꁰNpWY\$#=;MK Sfb)fآp,l}ΩN0hbY'B_B@f_gfu23 \c%zDAtƛP&e$SYvF Ri:fP az&*XMK|I&uUCl\%HfN RѰT'L7ԖUx)ZKIUX^LIxlY]_\)E'$IP _\;Dɋ耨DҀFKԝ7I6xi  RAGd| q_#a"DK֊% RgY q00 | X"o7}bډ(L i4@|>]A麦%*>-u5e?~1rV3&XK^츗7 06!kȈz?%(t_& B? Ol,}I.&5`u7.K -Aݛ=d袨TC $3LlS> К/zn)c+}t/Aw<,P.{S+̻3:X)niՕrBpBr|ߺ0 +D {3n"F[!b8V]UjravVM:Q})EJ@14HidN楮.$qBǤSqi$b%5SLCv¡=UBԝ {M й|4Qo\4S&Ҳ;T9!0mV:qb,_(^*XW>HD=?_QXIԫe`rl*-tтk`s2EB"%IB =M4UU]vya,ڗsS.=t7kaщ*!x!n>1ZSzk5JѺM]V%C#SKF4qZzGxxr1 }r ̃)]4 L9^)%3!x#xK~58 JݵB !!*< e59tGhY[jt(=|I^)"3\QAqz돜Զ\J]BI zQ|9'mθbHp_>qRs bS#3C36i"ꄴASEDQUimyLAvP\I'tT'ؖPKq$l%8ސU6>|dSI%j%jg&dn,n&/.LMFPn$5HIȔW\wJuUZб7!Q<ܚPsN1F0e6qV4ܳ,D<6f` p7 Japs>ݩd Jڅ H7^KX1ٜҦm2QUk]ZF2L͸ q BdX6fIJ_mF5GsrbK$(;GMR\LԌI\M`c$D$"6QnĔI%]EaZquuyBQ6_-ƐpT%@i2D|Hot9׵*.H`)N=6Nϟ *]XuD2K"DI沬Z(^e nxQ7ԣqHnTsG LpրvOi⸭Nmh^T/$~Sk DAwH܏  3*iJXc2F]EH~9:nƔ=,Z)$WJ"4D&d!ӍY*)R6:FabS"""3DqUQvUfW]uZYYq]i"}r'zFT\;\kxX8")M/KNR(iiɊ5*W$bUXҍ{ R'Q!qުr!TI ,! `.0{ T &oI }x@Y_u. 8 @I)//׸^*KRRM!cP3/0e!xCFC4C(!rr}$H&{`8﷘'KfggeP3G @C ut`;( #kD2 ;\u )Ͷ5;֞Br>p| &ĢDŽs/qZ3ڬy%ɀ@_ECϏwz&'4\A|oh}GChHU.vl;>]XEy!K Aw|Mλ΀j Ok('5:5i7W{֐9~235ʞ36̆pBqB|* C x]{ ~`r3`%` R7d\^_ HqfgqJI$z.J^)3Vɀ9+W--|<ؤBE7 1[m=)z}=?@g:q_dBKE@vZJ\}z>Hɠ:YPAXm..(P ~ symz o=:qNh/BuRA{<^9sQ\/B 9 asˢKM 1cF.vuޖ49D/?\Ep:vx5'˨G:r!H# QP b@TY@9CBy_'Q`̃ %Q7 @(1#QtO&#Q`Xa IF褧i Du&$3u# 'R|^f6tS~;KvPKul'4ah< ,00d&&Kjp :roMH 0/n.$C hO L_j#䢲9d=PPh`I/<0Ͼ).bM]R~Ne>^ *&`C'^% -)@^!ܗሀ1̦ AFssu1`nEdh?߇o8 %X Y7",Ry)$8 ::Bk>$O%$OtIL {>bU0B1 BJF:Ĥ!$`BHdL C8d΂IfP QI?I,o `嗓j#i0@7x&h +S:]k3x"HĀ\,PR`}rK Z$,LR"bDY@h0dm_L,N`V<΀"8 ;"OUU έ+ ZBQ>+qd9pKLeD 0q%2 ~jBـ (<9{Ή]/>X &N`~D01-j׫4+ -) 7DC ~yEheR&YH p }>eee=E?U}oo ;,IH,8/bʬ %ۈc}=D¦8DvPb)Ȟ m`oK8PP@z_QeU1 ;YeU@Č %8'DČG"0& IjBP2_4c޺ᚈMtc#O9rCʗeA64a2p :u?%ЬaSc䴯jDYQ,Ϙ0 nC! *&!  `.!ݙ _iJQ/H1o] ֒ɼ+RJ(0x2Tjj:IQ~>F0D3K!qidűw3&pAl(ftK\tGa9E "i(eNvC𙿻* ]_P>s#8[EvB@'(z07P4WBӓb.(R~W `̕8JTh ,f(45;?1ǯDa a,3¹Ж y&SvbVᜱg}"C&$ RD% 7'{Ac8HfkqU|(arnpU8:ߔwc()*s tFBq(H=Q{Q<.:|t:/gQ( -ОPB˹É2 &PQt/ 챺rrhu» ]_8)R z E(7~0?[y7a_|x }b -!XACmuӱeˡ.Yϰ 5~!Sxy֐ @*9m`#ʻ#Ap i_x~Kw B(m^ Pq2 2'g2?, ԒΎ A 3N6pUAoOB=9 hRX: duVDIpOo=mƘb>K- `:YɽY<_54r5 huȼk;Pb`w9(U4j].&n;X5cP:z$JM?3}Pd9#&]wPA]&xP4< v `%hԙ9SYc@*@ DyIs,J{<_3\'kBx, GYG21hIat\%;l*@]$JT O\>7;'}ͳz@km' p(-M\"zI%Ds@S!h'4PPokh ݯJ @pҋc`IIYFyaٳ -LUPN\ qTE 4CI`;){<KAvmf.BZZ)3Xy Ęs  S!H%S&CcQC2a.=kdW}BPJ/o_]^]bnM L+2 %w>ђ_(.)#l ]0:)i& S!1#C22'Pr([T, WŶa;.DD Ck%ƀ֑xX,I䗵ٌ̲MmM2i ShdvP*Y&Jl%@6~P;"+d`zKd,jcYB^m S!1& h\JXfz-F"3q5Ѕ]"(fn:G&9 S)1 g!!LG&z)&zKDxgOqI4ķ1!3G `.!ݶUHFzjId 3 9kRi#Y*n[h;zxK~0:c)6G ƕEV3GKd>.覘(]h C)6>>jJotj} !8G/ŭ-\K\Kxg!g${7sbi@/0:2ϔA-}TM ^(ͯPU`|}00[orID5 Yq;fh=8`ZmSI|/3tAZɰ 6^H,x8E m~ &)pni`0 6(16RS6h BD1%21HeI h ЖE0ig5_0+I1 FfO}'ZfDP 0v> S;X?;x&٬Ƞmaf Д@H$.[4@Sh'+t×H:pLﮒ3 ȲU%@`)hQt'4ASXFaC6׬ۚaŊ!S8fM坁f?_*E BPAh BPUQX.,%a\0|ؓ 4°-h -WE4$ʛhSX@ D0P# `p:-za$hJ9rbhfJ DEM _*9ce/KI"!/&_Ձx:sWr(%( ʹS e i74 @|0ALaT *LJ[i/* &Q ;P*~eFcuj<F) f`gE4SV4j< fa8 S L A3P1F95 aIC[] 6ӉW/ q8Z]șɨ%sS?yol`c!G%Wpf& S EȰb#g$By+C/m6U0S0T*̲c#N1o0 S 9̡h'fL&2Fk|{Dma< S 9/P@bqEյJt& sG),lYiKև;&y=cyP S$™A\Q,x6H1b%#|x5'BQJ?*k|Hn%h?di^q3 [VQS37eQg00IzPd"dYig;H(j<3dE RYO'MS}1L6 SEVF%a(նS1}pS6t],W.QA9_Φ$<:pQ2r`H IM, 0h) +J@ 1m8M 0 @bɜ^%rJMP &`oҍ$# 贠@L BICy(JQwKHE#4lu԰rBp2r!ciG!F{ `. IJ ?'^^A4̒{^v5 ̼NMJR: {ȧo 56ZSṽG 4M$%$hSJIaɩ͘dӨ* $xߝN >). 1;&B4 &r(utɥ^XfG 1ɩOGI (;/DԹiY`L n># : f 1F.'P!pTħVxc* )%!Zsc5Iě7Hhj)ǁ_k@@1Kd(yv9Ud| cQX u)r ̀b,0DDvdgJlv+cQDNg :`@n" B@Te@8kQ` V ,!pB?rDsj #-ImnGhJF_OBWETMwj6i@&؛ILN ) nqHG!ad}@JKg  ?Zy,3T 1 AW\'x} Ȳ0c( ]h$ dVqr  ;Li|Y CDrM<%x#DY '7#KVD13"!uBJdL[\f1vl/OEV@#+·?l!bwFm!4%3!Y @ !MjY:.ړy8 ؛YЅn5 H"9vĵ8׍j6FnW{8\d6rDtUՑȦjԢ=\2<Ү Zp4#{ueŪHhW+ZP4xK(%a\ ڨaILƕDib)1VkQJaE`T$"B"DBjTUeYe]eYe bydp#5Y|XYwXe4܎V(6^; o 7׶&}'\|rmu|$fcJh8ÝlEeWNF6T~"'}keQ3{Y§ft&}\8b^$DQ W7Enѷ5.㤰`6gIBtށ3rZLIi GG[D΃?%DNm}]JJw{9JrvLύa?bT$BTDE"p3UQDQeaq^։-2$!R$HȌxƐ9#B4/*eMFm &5#FJCQ}1#N#fbJ13A]%N [Z'pı#ޠĚ=LM?kVwGPG|ptC)TP0. b/-C9% p9aUWZD RjN.1xx u6Yso.JRUBʘc5rbRrYöGy曇v%%ݽu}!l `.!Ҋ1 ZH?8jGaaPcS :{5iCN[5>4 'htV0 krFHB Z"x4j> Ns/A>mU3.>Syd՜~^9CpDԧ.k35\^v @tNC sttI!䘓7BbDv>V @!pd?_\M 0XaIK4VF:@bt0nJR_dV}ߘ}a`6G:Bcn&g!g&C@Ĕq;  ^(1$ (R`nNx% . 2cM&Ԡ1z7;@Xy\?{}F WnMu=y Y-9fq`ha,MI\W#" c./ƌ|D}?(mA+DQ!L( @Z,g I! K$~ނ}د};ТJh<f3TAOuA(:|uDU1zI)iUt'`^zJL2d_2 Y فhJ|IIOk> ^S~sٗsPozh޹~_iѯUH5mC Tu]&iKxtbS3Z2fj[#IKy-߮Cͨ( ^9ABFy/ SB1~,0K.~ J@آ\Qo( RbP֌ ņ$OH`e v1dlƪcv aԐKA_`&< wX(`:`w=/NZּK.#Ay >aX]jd@UJ Ԕa?[m\7~?_zAt(Tv `sfDaH6X,[߄H)U7$̻%Y$R 6 %V Alj_xKX?#`I(װ%SuPԱ&_(i[R:%Y3sXL& 6W;f- ;;T`}_uLZpK)T*X+PA3PBYCuDHs<h0,V>K-+N='-fY9U!cV }E*BUT;ALQC4u 9}W?AW3"wmpdKX> |7GS٠ 2P+`Z@ WJTMSq9KYfTT"B D\j(K1 RONZA,~>e8%D&} w 9ʆ~=%crW] Hj/>G?TAd@@՞vbBsS!h^CPܓRn>P0d!@6©@ Oh^BF༣'C?%f/5-Na?<31p K!HVc9 C5dYA̅t=yu7^ (n#v*ѢIlM)i~ @mjI*əB1ӹKR Jyd19%DkJS L lQ Ȱ">. ?1,X'Zy!!m*(aٖi6KY1 K"g,"ۓ=4Wӊ=na$b < EWT 3fM<3&6 KYj>&QM/W '*/YJ&-`!ۀ `.!9)dC#'KٔV K)3 c FjPݶl@R"7 MZr.Xb T}xW韽A/Q%u\͵8|kww'5K:zJ d'^Hc4l]545j- dKDIx RG5޹ Vk9%i[ʵ~JΈ/}@e{crl'XؒHvE{ v$[R᯾SRKxtd1ͦZÈ3 EȲB3HKy-߭!ОB"⪄ QcU.]a,y`_u(d!?.d1C!~?8pO aK0#ьuPo:]IFh+G0($ w4 ]yCI|/ p \ oڅ=PK\ˑ}AbHjJTJ@"% h]`ZK +:A @`~/C;X?;x&c$m;8f#wjV住9-B@(%}?\±`]~p:=i1z+=PbaUHU ݣOIu ]4XsLv,PX}@C8fM,m_@` !Y'\$ Y-6y^PDUB@D z IH0~T}L@eM4sCX@ D0P# B PR'7e<.j II:- ^jiGď: DHo1BB#MYA3ɢ⚵@@qVm&ve!9C e i74 @|B(d8 F[ (LjHs|ݎ@). ?y:eRQ,_2()+p&EvK@0sǿW`Qp( 58cL?60fc K L A3PiSj]Bt+!e Ft+1J P;FM2B3ӹ$԰ BtȰBonuHEs\Bl%U D7y l1frtWs0 C!G6M<ͽAF$Ʒ2d kޤbB&Vh {7F<fffXl Cf:ӣ"[CjRPm~˨ӗ6+# C$.d ;*j"tf :MЖR6gXzr,Z{2pԂս +13_,>mBj(1$np2qa- |bH  @;Xӻ 3bɀd$& i0#IY)DpJOF*tA)$0;p ~@5"ӀU#&jp` g䔷Z%dC903ц'T2 Gt$~낀>IMh ~}Rͅ]2N*5KCQ8,_J"PtB F`Y/$g̋&D,p(!ۓG `.@ hɸ{DhbvV `Ixi0(aH+"&aTd\h* $ stB! B!NebY"}p*v)w#D f6W31xb0eKtLK*(0A Yvt$` I0U# @cS!Jӂ14dPMgKR @,?zsn0_7xCbskDƁ0\MR{eyA7D@ 6Ģj}ChOv6dJלu~9>(^V> |v"[} E6 &HL.2Q3:H "?/DH`\C4 %#xyhII%%#Hg]0@6%@&%3;A&Iy.|Q>hK ( \x dbj0`8,%`Y9\(MᡥY (Q@P*vbHDrV:!ebWɅ|af"P Y0bJ H, ]%\y  ŀ b` @Ac| C(`*Q C@Lb a52i]\;UZN9"p6 wL^S HcCIF>$5yG~ Ԡ[w@H]` &袐ɴ8\Q)iοAF"x &oDP8@bt ĒVJX]F:prHh̘B(3H3*rnJ2QМEEgs fHB)`b0܄ ` оG>,TbBr^0+@'3;HX` P?K @XDg%u9.IN}DZId0FA7 @0DW( 0f'1T,CC %iW6$VxtLj,Z9b t *r^v診]yU90Z Yܶb$ rah]PM@D:$ Ơ︨'a|!L( fHN'uz:jE0`o /TI@O bI'S0pP R@xVnHיTSyTDb A͈KGs.WT8@€u֨02Àba0 D<I~wh *{&M&";: @jvܸف}cB']`R`B Ftc~&0`` [^q߰s8ΐA2vwdi)n:1BJDZ:,> _pb ".ŀCLZ){d!rw8 JNFl1)va04b'뢠-~a3"t%~udd]Q!%C40 &\# h##`_v+Gg +H@WS؄zu0 ɮ:# J=h, TDuJu `jZeF )IO$|L)K J>,;)1EI}mD0ľ/3uxIMgT3Q%s d w AȰv&^aHrn@a="[%;>eh,S6%R?x"!ۦ{ `.!HOѤ"ۘmD`Ch@ + ;J#(:`=fQhfč)ZDX]4j$5` .P"B@""`"#N5~JnPBESa;0!a @@Q0c2tB C'&u",g}2B3Zpv]_? bwD9|}ܴ3}C('1 â~h`b:􂖈$&վUdIU9*YDSOw@"o!HD!DoDMDVX"U1rGJ*> *P՗a.wxY@t[ԔTK >6!^AB<@^ -}j3% AV6z#0b 20OdgꉅXKGYm@P Ral i{GGAaw!9A6;C~}f˼+LO2u Ҿ=v$/DfP踄L-EK@UdԺd9z^Cx=4lQ v@(S19pgX\LSO&% G+ >&$ 2K#eK!f\|$cSK Fi>:ЙܘocjD<Ű \pO`0pHuG!ra0%ߝX}p@vP|ZR_d!ґSHag c'P-(%rtP΂'Gb7*1mu?>BEY+ 45;?g ^ 5TY_,!8'en~\eKV#4YЂ438@yC&`{@. HB%"BoXCTym$ q-dOE` 'V;G*{8p}o"CWE !/'R |@M42|?d'@W 0wo /[#:*1!Nh@{`iY'Waf"DQ"`eH:"(}Z_0AQcIL1[*Jwޫ_^7_~F0hiIa!8u|sFڧ{>bu 2*!R3[Q] 33T5\ꍆ!HzJ7hCʛR;xyr1LS6o=`ֲ܃fcԵ9-KrcI4;xyCiW,%p"AFK`>ym')f!#y,c `;.^p,x"_ @g`BaWc > dpZ^Ko ?00@ 9kZ;.#Ay@%taZC!Atɿ!衇S+k`a =|\e&CJn!vP  ^;_#xktMmCЊ X5|<i 0wׯPSZkJ( Vr_%my3?~+QD .l!C7Suo4Ḏ@h.3}(݇"@΅H NMnH%C=+(_IT}9 ` ;-+N='-1< duO t`BAb@+>tdieʡЀ4!Zl#G,xƃ1VO *7%MooÆ2+W~9;YfT!8"H X,_$ 6ݼ6n5u@PMAYycGQ4_b܀0i4xƅsYHD QDJMXF؃G<@P_;!۹ `.!f^zcDA I[ ̘$v{;!h^CPܓAD(+` BQx 8v(,+h`3P100.DTwj'k'BQ0ԅCPNPUcgN8 XN $/ 6k9FS1 ;!HVc9 C5S9b|ׁ^aׄu`0hܽ77>$mCRu5PG5~)&&e0QFD% MiB1ӹKR ;"IQiX#a"L*&TVŵ4 xN|@B(0@R36!x\GMؐ 7`0o )*ZB" %7z$PjgbpҪl;!;#KTLƣ걱L/[SzHCytm^K1.-zz%@]~;xy dWKCJ0>M5A-NE T@;xy`Qh,hZ.L AfI|`kHfQ|Nq;!+˂>,~ˏ  3p{57INP#X -B>0 @Pďs@כm;I|/ Pxqޕ+`C7Qp %5!͚UL{I(hx N}>r M4`Y@5i`;;_ i;>B ՇckE|`6\ y[{Ÿ"®AOA'֠ZVq`:Fm8J~G +IO5ctlؘ.*,^oPHz%7׻5bdqBB;8`=<* 6ms* NASA]PJB:x~W!pl [Мx:$g_$+*Gl S 3G)@qNGsО- &qTj… Eg;X@BpAk J2TV40 UXx/ -Pp/yqeweP,R[\} "&^^bc.ұ{`iʹ; e `a୊P^+àP_)Fa(h pD(pYn#"{P XX, "B"Gri[XsG1P,` j@ߊGYwp0X8]Woo}"rV4j< fa8 ; L A3P@,CtX hӬK(*`P%$!qB=68> .'#X:Bac($j$#=;MK ;!G3n:f -b b="*{Tk%cT&jL2oЫOzН?̓q0aɀ ;C(5ъ? 3IĄ-*P.)1U lK;{*Rd%Ѹ|]4*! @ !QnyMXeCq͓EW E`W]*( `U""##$e4@90M=9E$RADY$UdMeVUDAIQrw-0eC#NΡ̻C\U)`rݜ㪧᪞qۤtNDM چVaJr%*T}f2J8FALwVVkddVHmmi*}•Իq#Z ]-]QrVmicz7_iq * rjXͪ'3n).@LJZ6ψDB&$dnRvʛ>qoUR+>P6Pq*.h GbE2!$D(+($OQ4A#IMQIUMeQEYU!ag4+qB,-U& nST]iq|uD?0聃KtK?UkL;l4ifN &FUrޣsLYy8L+l릌MU6uDzSCٰ*{pBAT`'0ըb@}^h='5UjmJ¤3DY l+YSԫ]V,K -wjK1ȹ !Y'!.AF: '>Z+Ig!#FtXX}^7`T###34mZ 5MPQTM5QeXUu(2 ֝"ifc2&BNg+ר,S{ƙ~&URifMnPl( #IgGQ֔|yG%kM.`p҆(JNOqgN9UuMԜI% 9֡^AX-aqcJ¦7 s7̃f5يꌻ Oq75'#muHcq؇P^zJƘ.5ĭZVE!Tq՟Hވ8ڐN'ZHN58Ŵ2ܯbT###3$I4@b<HӐUT]E]EaqiL]s%,FCݵn )e:cEYY,JyrJĤOWYuW(oQWiFh(+>g+S6|MήV5Yqǒ)5 1X&HEr> qtl#*Yj(HqZܚHIҗnrӓ,(b5'#;Z&IґᾄXݵjoWtQ!L_$+qw4:X x7cq$eˇ_ `T#4#"6Mꪺ* =4]fXYqmuig!] 42wȲRm*^IZv<`qGTZu״oRjfF\MYhIlzU#-DXD! bɵ 1ϙdI*m[YIÊm-ӊDnn8uF)2lm#ml] >He4>o H55$r:ިSRq5D7 nC tۥꤞ5FR۪-MӑIj2enEq8o6gyҡZEG RYr*(J-bT#423'm:E4ai[q}rLuJpjE5$iG(k[b uLi`wҎmwD&CZDfKrUz$b6(4!$٭L,ۤD.!Uz?&4Q+Dž[ʇ*lA9e\ p%-4+fEQњnTHQͤv Ze60ZLg:vq $U8v&ڦQ"[m4܏ߕ{-Y41Ǎ#N$wZM6Xl8WT{`T4DD39iꩌ=TMei֛iuѲ!lG6Q$%H`&ᬊkJDBؤ cIM8936,XK 3! `.1M߃iOvfDXJ,NE*y1f" ;p/PlyttHH,Xٴz+fCB{2.nvȏdPEf|Gf* ; ;8n2!fX58LVaҨk/Avb /B .-;bG&-u9~Y( ~ i,JR3 FM s,`:F}; fAu@;oȜR=yM#PnoriGED8&eI1i&:]H:i:)F2|uX; ™Le2iF?JF· ^VwC+'Y0 3/=͗NMNtRp#!z׊Qh ΎIhU0 (q\%8#өvL8f&K).ou}kځ@ pB!`` eaXW/2 8 4 Z2rI{o?n|r?g~: 4 y,V 3l?`48IePG/swz]G8 VInߡ J0~r@BY4D2씆%[/i((@;S ORy|zPZ?1Z )''wh2 @4.ZCr323)/>Hx\2)qx{/̔Cjd/\dܐ PopPcɁ#:?KQ5Pzp 5!p 000P/v< C)rhC!nyQJW)JMp%+';4j"*aH"#H",JR"3 h !3!hi}Cõ)4$c`z@ !j K,M+)/o;,bnp҂_k_p H ,K,KHä;၀ i 5)q| 5%=RxWjԓ NfCvqOA Kv<۳缽-W8(FY?weg,} dvbHb{͛-x/ @b` yA*Z !' [ ;.xh|MHH&x+ؔ'6>\`*3Dܟ~hh(O$n#̼&5a+rgNK;Q Hof@n9~,a~u?7)JJU!yJ]w!1^ ˹S TZ 'Y.Q$$|e3.ݩguUR\#ܤ#6",R4RHQbD;)JJR"".RRRURR)JD\)Xf=%a?o]8T8oOU#5RmnRR%r0K\)WJRqrN#IEF83)JJR")H(:r)HRJR")wc4Wb}[}!T^ qR3ȵ& ys?Dy[*^ܘzW0s;/@un1 K.eP'7|>I<'OB3{4lt.k%*R U0W)JD\)rN+)JJR"#,RN)H')JJ.R{QbɅx6ejx_[ %K k;pLJ{Phj%/{`5)?1 `wAk\}\OVS.!G `.K)h& |3?g,0x$K2SRJ^RRPjNFq<.m@3!gf4> h`1aurn\83êLJ#ǮBKB.D ͋F~WɃ>i(uKiu ny-B deĄH& ܋z OBqIiI풏oR+)JJLYh&[<]tI0i7:P}'$OpۣG /u_&.׷zFL`2ӾF  /?Irbuթ Y ''ĀNPj84ـϾPOfן|VsF> F2OM`` 6G? bF[jy.=E/ /] y׸&$4!bruE{Rܮ! /BHަ?>|J _f⃈/C-;Uאu%w>l,*};E E!/M.  'rSJR"1,b}ꀢIeWlrgjRv\)rR%ҔP+!7̱9S)HR)JJ,Ͼ7JbWV^|D>B/$hJީ@ xg'u{}`P3@0n Zq BjK]=wKtZR>8^vHS|p %|r[ɄԆ18w(5R:/ .cc) ^R^ M/|{ 7fL|WS Ԏ{I &/O#@HNjdQNqL喇ZRG<`AހLbhnt27iXrir)HK)JDY'/ +)*}Rܥ)?rN"XqtJ ΐтFb$x,1a2x7|n$\)Iڱ'(mB(G+~$^4î!' s_$0L ߎ_m 4}{PFAto<- dɺv?zVn;~3p  AiJ2F9{ ka۷W rucPïJY|`Ͽ.[ ]>/tF?~$l>@᡼YnRe'>:]@3(I? _*=R1tܵ(J@`39ަQ%|Y)ΞN"`:yȆIjByb,ukѽ!hA[،xo+U,О+r _UP4b@ V}݅`ҀO^eB7-?G@#%!$9A'D&ﬢkq [:Xq7hy\%Gb1W$Qw"iF[ؤaw 3)HT=Ėgi>^膀\jP?itפ  A} Y8&3\;53Vuۧ_O|4~a_"Blhǜ!N`: bGa!oGkI#ϼT wc(o&q#'o"ws9E 323i=ޯ^Rj)ΓR4߶VR*꾱`U% )|CkP}(%7tRO+XpPw|J @" ՠί7#IR."4 JR_I~M?Ĥc V'|a6&۰/d0*M&Q3./ $*Hױ%|x#}}8 8coc~dSa[9גRWG671k %Mr1;퐕A,ª+U}b,Y0cH&6|7SW]baaH)GJ#H FOrn HACc^O 3*@.go>t  T)}!~s0U@ E Fʅ+]-rR#E.)8GҊ1xx0с %BX y9;3kIZxvn}tR?֔צHeFuhҵPrn+XЛ!v@PIH̀ ]Z0۱%(o -U2 vj W^ t=l_\6fMөX6dgXz]:3)Iܥ) J<%٤'qbɪwxtSznHP ݻ(RYdtRY  "XP sۀ=Yہ(  +n[t 8Z~2z -9oHR~زEvbYQjI RΗ,4VF:7p Yi/QEa 5v:]gT#.L8a4!39h }B(bzj O)uK%6glD(! `.!ߠM/gJ7s^ :Y]||~ϭyH_3Ti,%1E43v| *j5ɴ= 1(a K ̦A>ٿ^M:{"U=|gʒkh'5#eͼ>{FLi6h6]/+@3i #HWCY"T=ɿhYoM;UY]YCTGL53Ğ}zNKߙy{^o\ys4ZFsY+=qaci)#T#o6ף퉨%vН|jdZ2[|wӻ־e)$􁁃o:iO#~c8ۍo8RSc}ՁG~cB6FlOZ(%/KёR48uRswaR/VK~liFY_ms 9> F5b⢺_~TLw֜s îUO L+!͟ Ʉ,RY|䴄 e>ס@ Q HϓƎg~~I)Ƥ!b?;~gY' ;ٌ^@f+{f^e%1 BJ%WSLdn~Cs߆hyggmƳtqٵ o7 @`i0M!trpdtb4@bz(:v1E}=3xt~2¸喺A o15Qj,!12^HrmpI':=f;)΂.He2! !=d103+NL-E_<68' @m=_ۦE.A 2ڋ$ s݊2l)xu0l!.=Zv 3. v l.}<g ¸RRoΡjX-t0B[]l!K=H4-qg"HݨvƕRVegi +P@Fr'A' L=S.`c0HQ@3- f=#bD"jj]U(rɅX4c >HfBPI-;pwLk-P($ (l8(jE~8a$0M@FA: J@©|JA\ra|;V=99XP3Ygxmn ,21kB~0M]T3)HaOuC0N 5(k667ET[6% r&)#@WPjf16v0 ̣G,uc)` H~ R_=23!hrPYtJ-ƊEsۍFYqLt8K,"fchKp!R%;>(&SK<gy 3!H%SِU1P'4 0]کǫs+7d`' ^w1\㨰 ŤPDF/U2nwx;69.e6L[gKu0 ;=(zCz6_C@Rm!iXn=Q(.rH~8QX*V dh!]N֡r?bBaOCKbϯRkPEK8THH%AG*il+H[7ԯ5L l98!y?By6`aAT" 2LKU°b3G5|a4 ;XBG(ҵ <3P?L;, @ qP!, @ !ib#U[jHuE8l ޭ/[9WFRG Q k Qִv7fD&)‡% .h\dƜXXly^Vx< L䖷e *sGb9$hXAqG Ȧ鋊4;N@hcR5&n6ۏJJ|ȗWAm>|7 N"Z f7" 26Nkkpn1TtZ0 43Id.Mj8.ǐ1GO0@[JI%-%mMo65b2M[RVF&붡CFIB| 1$$<`*.$rtUU$o9llڦe>FHl٢6S@6f"JvM[EARJFڶDV5I`c"#334i2jr18z4`qUI:$cnVibn(&[Q>[3qnMJ aaZRmmn) 4@lڝ`nKUFzbd"DB%'Dj @ITY5YfmmjVկtx`R)YQzhU< XW9Q x3@LpU蓪jȎI^f{ԧܕYe+F˦ 6pc<%'Oyy ֘6֩%-G5̭_0Ns@kR)I3 x0}A]D֤80wbIrVj A.cQ`tΥ*t#kثZV/л] 7mt|>TXNu5rFm7.,㜳NC"V[K"Pr<>`e2EDΨȣ DIvYuemXecrexKHDxܘ!elc3jsuHW!bkd"[ jdKulVKY<1 ־b)r+0,*lbeЬ\WRj܃sVXu0;ύ7J41mDzVUu)?McAx0Dkz%EQ$".Q D:Tq<%DF)Z CvҌ:8.< HL "CD8 >SEa$ wɂsˢkުD2x1EJކiٖ#cndĖ .MJ"D@m& /]={ABpBqԁ8$A( f:!6S% j 1ډ@EAW` #vHT50 4t_\Ĝ9la5RZZ U ϐov2щ'MC@BoiF$| G]\( lpCh`|_z*@} g3Tfo.T6 A%^ Y"ߕJ=ǰT $ξ= @x]CxtŸx[?\vdk !ٔZ)nA#:B^H4 2HA ` f:hvA@g_4`CL a^&" lH` <OͶu004@JG*ɷv Lv = 048?h=8`ZmCݵ0F<LAMpO sXCa$>zE=%8I{*)! c&tym7)=85ᰓY3 !A ``FC- ;3:01y8*%DQx( "{,5HrUBA-Jk(]/1Ҿ>Ȅ^ Q%@ @oH6ډBy !xl pZCjNX)eJC,e z | f=0G?+.o͜xb'M6@ʗ0äobKN6_jh`@/4>*KL)8y su$ 0'CX#: 6Բ jD<A]tV]Hfax_ B䘲V&@[ɐV*Sô p Bar 0)~AN39%d(>.gzu0@dH0fRT'3m9C 9UDA|-:L~qHH=Vmɋ$1mdtg!!>[}zh_ (c^mO$טj` C L z&A0SL(R GK%[E'HfAGʃky 6 ')Q!ɭKfw>Exǵ _m53P2$ CdETM3H䃟t(B(l-%MFL%ScԈgH 8 f\Xjxځ c)Ex2G0 CSLkH Fּo}1q̰9#f$b$ g 7uT0->e);Hҩ" BNgGb#*!SG `.131M/~ݫ^ &8h 1עkMEfD BRdi ^P%UM)1R7Yi Bp' ؅n&tUCKe{6'x76w&N"PB56 iHgAi_SہFC'Sm 6̂62+HP<)'ȀtBq2%hAd EH"`&aD0 H1hBbRM2xA4nJJFS*#NCif>q.ׁp`$F[#9<j<&bdDNjhO_?-U12pP*:v u춎Fb@cp Y/Xy-&°_O8*p PH@PbhG bb8/dFII;ၠ:7 @̒Ō>oYi/#R6ZI?A"ppQ,0$\4#@qNpdNl+e' Z<,#r:)/#p d8dPo ;Y2I@%&~CT5CJs41@ H +KH{Qޗ;Y0)Is7\:YǸ@ I a$0Y(߈׆M+)0 t#$5)fe7 H0vJ&e%hg1%!=_T-}CXM.r&x,F,VMw87;:o^)+Qe0i;z@i `"}e^t)KC`=҄,"H`j+z(gx4LXjv`= c BCv(3t$# )8Гp* IJ<n'('PU02SP ˹D_~,f:`pGdc@3x0 @BL Oآ^P~ĉ(C5MH+o q=0ɀ(@4ʨD@>~l" @tɤ0*9 &&P @ %! W,] G8Pl::CCKBK(O}sȗ`Q S쟻W9 _n7S"x߷ˋ^i&.|i`<  d ǦJƃQ4hBAD(PK)(h! Pn$:8tY0?=dğh:8RIb}ˮCZhGya!LFZ Ԥn$3z"0KҿDB m@:ì( h!>*,śf% *J2!kP0 bVpwX"| 2F{NG@`3ď_â@~dYnI=?lHY@U!2Qh%dhވМɠ:, B@suh Y$CH@`- #4g@BDYcD@q}!8oIA`5ġ #Qi& Gz% ;!@@{y?*&UD=H*4L%STU ė$<Ă~c%=W9@A44PL|\G "r R5ŢZ @ J I Y5Z!!(y/G @!)Ihݛqz^ :BG;X@@ Fg4O:HZ U0I 1=A) ΗP# FɅJ1#;' tL/k, }\2 eN`$= 2!f{ `.!' fOHb{I84SEXGrV+$&@a3Ihἐ$Xj0Gb\`ޤn 9#Q8:Z4L7tECHa9HNUɀx!MrfHZp "t ,?2+`<+_'0d aQAJ@&pH $tKX@uˢY&FIz{żڈM(BHp 6@ I]I|3BP aIGŖW=[ 0 ZSStg+# Ғ[dFA|CO>'w}wch%Il4EsBI )hP -)d#i(G %_nzVGͅFDKAO/G%p2=PKj `KOӶx%p *}JN@, -T`< LPEkg#̾$ +~D*Lx?4EB MMmo0=нUWu,`l$`(%\afR(K6h (6q8cC= h="D +I,m K!zm %pĀ/Ph;hA( b} @1/㤆 'i!NHRcǚY^ɱY8|?xEMDG/)pGRB|19Osi6c$T$!!$ yr9H "?`bOFӀ$@V$u3Nhr+p.Q@OfM nrv sB/ L@Pj,Q˗BTB--,kt߮21A=טa@H:oDX݌r99c`Cxyuݱ%iB!vjZB1H:[‚)u#ykHii柋$q1;+XW' VxA[oX6@a 8/֚d .sk{;.#Ay>!17XiQ0(y5L2s %eM$=R{`aiAxL4 KpCZg#.H|;[mtw|TF1;$_?Ϣm<:h=P} !Ok@]pEXx1\@H=ܛ\eܚ#;,k@[ v<#X H 0?x=p;"TMŬ7N&X\;(1I9 RIap2EBmGIpT lm+AHo>qCk-u``/z ;!HVcv[x >x;px+yЎCcwprLc8+Ss@@k($`J =`":w=~tI<'QxEgy#t?ƅO) FsTKQbYC 3{zٞrZ%ȣ*rQ\ua(HU6 =^ at#DQwR䫞Z3d3%njZ[#9%%wChku ؓ*!+?5ˈ4@3xyuݱ%iB!vjZB1H2[fްsHJe q=ӓO5vi #Et7/݈`Ҁjv&g-ܱF-€D.N[-p:*Xd9Q5` 3awZa4fmX}cwQps<_B3cÌq3Ш0`8!݌ !ݠ `.131 vlk_Lq04 k1v63E<ǀ 3Rv2j[>:zu6!K^{CE/RCЕr2D$0|b~c&+n'~ƘBPܓiF%6>V)m,T'@ 3І/HyAT#yɩ gۗ^`:@?3ԩaWEaVF }B5`f@"1n154 2mXbr]1 F%%- 91&atY2t=В`Tצ0; q~CaN}r= kIX% F5|Kb3W^Cvzrr(񡱅( 9M4L@#d7y(@x&.&D:N]a-hW>H@_t'̔-z2h+%njZ[#9#37r} erTMPs*t$y^EBm "4p\s³"@''yc\灣I׹32~7$*.=of+us75M_R"+0O7N"4Y@0>/x@H5D 8nr:ךv#ou/huEρH f0LNyb @vb `(| ? &ѐĄA ,CJ Hj͏ 'ԠBH3x%qBFp9"p,Iq4!& ,1<0n/;8Hl:bj0 OƗe  0`֔lRR"D,Y; ra@9A-.Yb|Ғ֞5%t1p&(459! 0DBAҒ'AEk4@ )00^N+ `%!?p,*HI,K(i-<A(i5l ?/ tM& q}&jL?S d;,I +&$҉PqeزScp H`@Ƀx0O )%"Puz bcv/rq0M ZR֟̾l"L n`80M BK\(Zۉ L9 jtwYƵ3 !]>+ف.J%gu-ȔGāLR̀vbPI00% 0W`[TQ444|/Q 2 @ 2GؖSĖHHs & +Ubts>|~ r5a0Y0jJo@tg Q ɝE@T34Ca).!X T?h s`(?mD8aD%:LC*tB, %]e=\LQa C@gTBb ~5\(I1e 8bP|}ԘRR:B;&i@?i="!Pb2{/XR"xI !#%/I,?`"fAD;: P4Yi+rI|vhVch`ݹ3G}B`h 8tpĴ5 ( ǃ`vBĔZq)=~d(30`)8@ ܕwCI,e7 1 0$0$C$"H6ъ(l" bgbF 3@M!y460dCńp욥3Li+ Ĕ Z @C&!c}^@0H%0+dZR5?J@yG$ PV *s0d Irք:z>Nq%ɚ :(5xsQLM@唔$&0 &! + %p4#N~0W>Z1hJ -6ADPz"F4\Q $1(9Z [Y[Аwԏr*tʛ1B`P "IiY4E 0J䷏DE88D#є H=J *tY n G ܈>.LL3`'/􋨜 1gq9~ Q&|탯sMiA&pg&/4n``&@ 7ŖQ)Nxh&p.l*A4h ).  ). Dp0cD I#bf0fܠ%X LQxPPA0 3J`rܔYD" ,p C+% OH0y#"hbIHHfv4k$kE _ZPW} k>GytO039mY!|P  LWz0E`&LM(\P Ӆ@ r*X&@S!p hnx1 (4I1IZr-0-%TL!qU ܆CnH!'};y4sI EbXg6" +0ȭ|tE`' dVzbv蔣Irhm@0d,PMi4MQ6۱kSoۘ꣉OoTq7pi _XL{!{ `.!P}"1';$Ĉg  A=6oxg*qmD\e ' 07!!E DBN mDҊrKdoop([oB)a+x݅O74C4=]%!(ЄXq).wQN1`@v $VBzSi BBF$(1#;?"q!])= @7ZzF1C ΔduRbb@K\*qp`h0 A7 $M&8_f\yPnI:z= &$41_@03q!0u0# ,q&"}R$P<@AuI£Lbg3(iv-!{ w#f)G*UWP> qz)+{Xs)JӐ#5~CԵ9-KrcI4*) VH7md}v=#-O^M<5٤4BF4OŒY8++XW' VxA[ׁx%cA}ډ@y :bI`"Bz,I >*kl$p/ZkxA4)].Zמ+.#Ay>-X=YZlxl*zBوAb3a!) X 2 / .R2V0.<-1sS$'qo0m1 Ig@U!mј Pi F<¹I@hCw{*on⣨>6'3p?`](Ł43Z6CQig M0RyO N Y~ 2fBY%|ׂEP}`\wDbWJTe f!C3ĂpqH/;p%DBgHA`aDȆ͒RR%Np.![E02 S. S&,|*nH' x ^ ,Z&4WE$\p:'h1c|7В $4hg)̄a~@3Bc爲 3"9. jA2NLQ[&~s%u<-$l, 7cM [ZXsp $#WZd<8a x'VAQ#K v: > `'[68 3!HVQ9[":PCeh1/ [$-KPGUDcJaΝ$!c1bhb:DМYbE\떍Dp@H^G@ ,$$0c )W pA C ՚ 3awZ4C'|FH&1}ƕw\Kyy?Qd(vj#+?N|KwrbQBtMO_P61 R7!s XEVCS]<{M!J8u`bHB9zG]1 ;!2%/|Gm<PZHz afj*HI+t3R>VBY*된iF[蔏d3 KЦLpҵ=8r£Kj'@]Bb/c!٭ `.!mOD*ڼz3fI7 @bRsPd2# ;)fm<%z3bZKm.>Bg%&ҚmCڂ+bFYLZoB],^SF5bY_6;W^Cvz^rr.D(zA4$w9$ħ a'C謒z+2?"0*]l`-#% Fэ(-{@;%njZ,K2ڶ*}= <hh Abf;TAG ;{Xs)JӐ#5~CԵ9-KrcI42SFj[rs]CH cO4Y%a3+XW' VxA[ׁx%hJPZ_^ƃ-$|kMnH2g@ zrֵ3.#Ay>W\)ugq&FKL l @1^t+:l }taJ1 % BaTxp>Iy.e ):Cq`qa~ pLL%РX.DžԍԌ X/0| q d!u2+B[`37;=Y3",d~lܙHP Zlր+<ǃYЩcNz5dX[ c`E<@vΖx]}О!Mz JuH!e3iA+mzF0;E P{Y (c=a8~  3!HVQ9[l*S_rn[# 0bTO~ٛB@,"FE(iN奂O2agYk(%;ᥓ OO'Lt),/X4xn5f 3a`h1UE:ڄv4Ut&Rck2L!b#&a{ 3a RNiF;%vz1r6r J"8.ucVZ Bэbٛo23.}Cvz^rd),]O.8 dc4x0.R9lR0ƌnK<ֵ3%njZ,K$ g"U![]}ʗ+bwq*pt `9vO;8哓'A"vy;M `E`@&L\7h KbVeEhh!)_f!8NP>)#1xLM'-eidb`a#%~(҄'"p^$f܄MP_pF@oP1 10 1IJP X0_@ IbG! `. /0 IL R|p8-@'#btbW@".b _>j,j0ݞ.V-Ax4Oq~Tк @L1@pmzElGG'j"xd$jJJ{p $PC `Ĕ''e&R i$gB<0@W$10s@"bƜ1I0i@<>07-%ron9}:B &w>AL!1B8 0/ dp'~,awy!Q A{tCqgP} pQ\ZO0A)<os{!gX!&%I!;:#JF_#+22h03#A+ )m` Bg܆)Na7&JRP A I(kI &%mFHaa)$n~Pcaq(hێ!b{A۷WIHP(K! sa*M( 9@U 6c̔35' L h/x?w(:@!$pD 7C @ >hj ," $ I[XG0!b /H X,aI6 \dqI I8&0 R,pB,yZ~\H/2iE (~ jtg'ׂ14c'|O3 (o)ew d:zLw{*7ВJx㇂n P*Mta O_>t CI0`;N$Xa Y ʑ-0#P.j `G(N`)IcxV ax ihoxp։,4Ac}ba+D D&u'GV8dQ)C@ ,ɂ=59>s@1ɥݸƐynDgh% O8R & A5%CrPi5) 0Y K ; Ě"0 `epltba0| @ cFΉ.4`0|pQdɡ@d o!K0o%; )`1`%k3&T(lKžF'DF  S4 \.I~-2G@ wghIi1QD$ :FBRpX"PFac.0/,kIg;0 @4 J  6?2N, : h@O%~X| `PpABĀhRC0!((5CqEπG00U!%%p K^l$w5(bb8&#|myX]11,utm '`1(v(ii+a0ĚA$V >L CxbRx29nK 46b%AA "s"Y0 A$$^A-J,&jLI^~ŚROUdrF$ BMOp&܄aa#GCDacCЎ4UA)H ?a&z;" V79Otc A,|31#:KH8һ5k X,t%vN &7OĐ M위|zxjoJ! @ !@GBՒH).IH-cP.xW+ER6*1%;HqaBZ强ֲ3^_%x8ktBU.BLDI2XNmjML-z"5%zP᤻mLلZjC ,5#:V 1jZeU5p޿*ti$1*> [*#ac5\ஹFeZuaJjjsi#A,: `!4'ͽrѣMH5]n5ϟ>gv>s/Ywf'0bd#3#2&I$0UY]e]%YDYuaf]ZH .:"Ņa}['6L6 F,kZ\:Y@erUHa"W΅,$䊷&Ӕ±LWjrW 3Nb[H~ R# M:)MAoW\S- K9u66qt)4cHӽ @+nȡOVJZ7-}b.=TEQp{uJS#U3eY8j6(呸fS^M&70`d#22#4ME5iieYTYYqʔmm,(ꕍ*5&E'9eN.]HA&3Qfjih,7j 6Ѝ iFGCU|̸͡5 ,`N\qm*Pۤ} IФiEE%J+uFW^ ;O]/1Η L}鸬Z8&o**Qf'FmD9:k@iVK$N+6uJDIW8YL$Un RmD4dAZ%fr $ղ66܉4gr&-I7EpT:bT3#12& 3@QLUYYeu]r]jf'7/sYѮnJF6B5xH}Ibd322"6R)$@w1AEURYUQUVm^w#4Ab *oQR^&vLTF{3qI.?rE]I:06ԕY VyCi IjAM Sr՝ ~J擑'jn[*tĦ%X]vӢJ44SUHчtwp[N"#&NJ"H\c )*\r^q: H§Fz5Y҈m6r(%ʖfs;q@ut/`c32224I$@"1$VQAM$ADM$QUV]ԫf.!G `.!a9,.(ƞ$Vr@ Sp&  `q $bqEĬȖ3L@tM!1 Yd%%QXVGz ;,HFm#/ԍ:bDG *tvG2bX`# lO|FU^߅mܢo9F=?8:"P =PX"jeBq)$’~YDL+A0<)+ ߠ5 /PON F3 #;k@2 :_ţ6r<ֽ A3D[> @;abnfѽGi >Alqf@p=ݝrXjXrD40(Ђ-!mr1fIb1 IxZx|BU'" ,7ehX>X@vԧ@XoV‰ e&RQC (AJ_-Ԁρ# hd2{[dfcm@<}[-;W&ζP 1+ȨEx4#n8 cNFA/E3TDT48UP= XjRH_Ё!~%|07E4a ɉzFMR{5+ ѤD`@` d{4Mܨ OJ_Ĵo& sd$O3 ڊB .>NY!)LM n *h?  kA3.Qeީ)_? x!5Adu\Z"׽àQZȔ?('Ϣ(-H(avMa YdD `^VgpX{p*q%'S/?Q 1XcҔґD (ݍ ɠdðB^CJF/fL 7EIHki R403rKd#@;8` dI}(4{e+!΢( `HaKؠ K4dnȘ08@/Bh5<04h3@ 亘>i rP4M Nm1*Фop7I_~X!^0 @ $L&Ԛ(\Ʌm[xd3"e_?7U t&]*rfv2 ,2~N_O(VvZQּOחI=U DÓR#$8dap GE_W ՜}5%+&[T1[=QSqD}rӣhdn&!gD0g=̀ Ӟ 8JǽqX+Ю JJ]0A3xyu#੖!Fk!٩jrZ!ƒi 3yyS-彔9o[דO5vi #6āxujfjG>_H jf^2(fs"j2^#^ZL?GB9z@puj,( 50<}&6!H 3!HVQ9[2cKU+G`Qm 3Yٔ{@¨fcajqNǀ qh'뤆HtI, nG$rC}l9N^Vj 3awZ0t9+Jgs&3*>|sIVwЦMo{#GU!~} T,o?©KIy3oǘ 3e2xGH(dgofDI֢3͌NڨuROmKFdaE]ډOawix?uJEԱ'$iNl葩ϞDZ. [Ц>^TTgFP[n\оP1Pa*U[0& o*o5 TKQGP]S F)%'5 F0#Cs 3cy 8d.Cј#[50}aOC[Po32\U$ I X\DzXEb["Sy{@3.}r5%G #4<dfNO2fNs 3zl<i_6Aw=N3 ll]rX3%njZ%ĻRC;+ 0ȿ*܉YTCEnɰ[Po!Y3xyu#੖!Fk!٩jrZ!ƒi 3yyL Mf`(b Nz޼ykHii柋$q13+XW' VxA[o XQNW8wl7Z0$-|kMnH2g@ zrֵ3.#Ay> 2K3X΢Z ex+"Oٱ풹kQLH0Q(ԡI#-5@,]8OAR՞P 3X\>BjkڰJ\da 3 p );N3L*YaRIthĀrv>۳99a$5{؃$VbqJKݨ8 A:)b0+KB0%g,E,P< A6p¼F?cШ8/+3dPb"SFjd^E G}]¸?m2Z:N%pލ!΀Ql= VzlRPPm!9 `.1:ÕJA@(m$&% ]7˸ ZAKTY` ]&M UФ^+-= s[˰RP3 'ZQ0Ӝ%}#޽D`[ "U0RL Ku σ@5N4x X{4Mhg(bgx@^y rǀO 0LM+6\Хc4 !|& 3!HVQ9[ᠹHuWD`K XC\號{m:1pO0@$~(Ziљ7XVdvw5IE 9< ,Lj }R`_/q5` ;ag˯$:)L)C!2F''Xꨲ4֢cgf >*x"ݝƤܵ.h!JF$98sh-f<9h5 ;}# ?Tp#pYkZQ=) e@ X}ܦ0lc+#BZu's[rJƔ5傟Nې*KÀ!$N  rʞKq f[nPPPQQf:a( !r&ω\#f =d)9F$1IICQ3ͭ ;cy 8d.Cј#[:TۀI5p`HIw= Y b0ͺQd€r[p{w&R5A/"BIc"pPrRW @ @0O!P )xM3 FWd"Pߟ(`sR !y-#&` {@,&!rjxU)p?u"p.AD"p`dbA58P , RfKcC- y(MYOD@b @$2@&hE}ܡoey!9,RG pw@Mz?%Z)/b{񟵷(:7J8jPBCܾĖv h== H`36Hٺx>Tig]"~,Y]$Ć?_*Q3=è$9 -9~8!8iC<9'LMfMQe^ ۀ$ P`j bx``4y%i4QO'G!478aD2{'\ `#>L6`0!0@ 8xɀ.rI!`b+!Kf+HJ|N[!$0Ԁv}AFP3oWttLJK幷, BRd2#wݙtD 0@  c*QdhAa.5 0@ehIEy 1A@7(AebY&:``xux00`h`i5A (BBt.ICa upB)N00JA7- JDt%?OiV]"`@dL_$ %.,48= x0j@4 O'#@(_a -$09h~W}<f!L `.RJu]Zrsx7q] 3 Ϭ '{$ /sŒ|^D&@f&ǹ5(&8@mƛ!/&L+JhcA(j?d3e_wk ̾uK I}{ dĻ3Zyqģ#הp̡.a3$@!{@ w(P4kd'h2B<Rҋjb( jS㴸jPV-$  , `ـ(@A&5|n+V~ bT`^Bp: 9O7Q4$$`@08j&^xvDO(&&ٯ8 dL*Ip#D@r @:=(Kߝ0~7 ?-_ LA @#)-[?&@A45 &IvL - Y!(Z$`4 (Gҙh %%C"0oOδQ]Onz0ֽwق"m-|b:4`̊&aJJh5>8 b#J( W%$th0۫W %wrҞHj|(#c[5C: HjCBTm褔3_oDPJhc]C JSi-.F*s0"ߟ'm.,!&F"iwY@KT 0-(_ OWI,X A(HD;B&d8kJK%x0 vweo}'(UDAI$o@=a@8+0@Qtjqވĉ`P A1  oZB (B2$p *s t$1-2Hj6`! P0`@l_556& 0q`N)~Rˋ A%L ^ @l_5! xM GyI{ϲ&9| 1Gr`x БIy ;/RwI0 蕆""QP[Icz^&bhY"Qh% UI+H` 3lB PĖZ3lBG4<I/:LP0! ht|f.S'~5(àj(4Pb}B(!}H7Fv|J6} *w Bw" #QрE3_ " ?zE,Xg ɜBZG1?9|̈́74$*4 ,H/E"4ES_]4+0. x Ƃ`e454P0MPoA ҴX:މ0by 4oĆTQ 0*Bرa0։m.!l鉁Q hjMC`޽B`Ȱ bL!М NzI3~K6b?];XPB0if1wm+u$"RCRkA4P%TU7A `2R)I&0R6&򆯗Tf[0ҶAGN-Sm;Vq j-AIv"Qr <mNx<A4~` \/nvq$69R;AM^I|pA2G ; I!q0 d $R(@4l&&~I;g4*7GKb}K!>U@z l3p>bfƧl(%nH_YHBB"վƓR?üK;AE&pm/h}F%=t&(R kfPZJ$~JiZ` rV7\8Q g~*p'E!` @ !!J%\v !+Ūi-ю9 C5 T5u9WU lGmHxjeb1ܸJC~~*pjHy$UoRj)GULK"S\nͅJ_4(أB|5sDae}+gwggۉl*TQDo eNcC7$ zxf,#'0ٔbۀ4F^e=CnF8@e7a+}I]+ǚH"6ᜁQ_8bc2!"!bX@*&!-4ITEE#Q5U5]FaW&RȍAQ~MziňM)07D){ToJaf$풠n!}kNjn URB&ZW)Ao>5M| mVTz4@R浒sdo&i΃ݗRBỴ̈Cm +n]3T)G¯ДT[tBqm6%"?ͺg pi͔fƍ7 ?ָ_j/gJHU5[*Y=|UT[i6ϚqhNZ`DE""!$RI#۪몡 PNI4DMU5UuauYv;h k2k lʖ0 >\,f8)hnT!] \k,J4Mu=5bIc )? 2}U)k5D]=:Wz5#ؖ溺GywM5IUq-uXe/i i7KٶrZHyL@Gk@`U2#326I$⠲8A$SM$Quau]Wު;sYpƫd+,B|Hմ4:8nF)@xuUPlRq NJJ5fa)ʎ6iv$PNm=m!j TnC\jHz0$Lci6IN4ti 贤8f8qZ87nSkIMJ=0fѸN6\Pe MS-8Q'eFB-Y~ a;F 6R>f jyHOɝ bU"33"4M$&I4M$QdauaVaXiP.VuۉL4RS\[CK h[ƵmD̰ѳ+Ae,oV|dS)U&šBlU\u+1r`YvW%Q I6i"KUr%.eIi4p23RM&B3GZi[չ!H(~i &o֧&I3j'C@yo:8d;AGǀ*(X_~Z{3nЌh ;l$d/a~!X߅ˊ%d U.!I}Mb= E_t٪0#7CJHXoLG2((vg:/We. BQ`})w$sވ1#`*t9"&<c 'xP(XNs_*_QӇK$`7BZ'*@I?baf}Z`?yFIx|9OJgk `R |EZ?$iQ| SWSBM8Ejo!)J}ֺ)5l~ mBB1!/D C$74ȀF2o |t@*QIB?t::j ?YxC:um%.z>?u}ZMC'nr~WAGovt$XjvCsɄы+|g }rىI;.$7`GH߲sx+b].PVP҃;/'@H$d+rJ9?jޟ> G?~ݩB0 Bl}uϗ|ad3B?bUXc(M?daF?H4LPhh+!($3c&hHOiI(u_= F|eGԝU#>4PUMnCl sMim샤'{?AOSa ^Pf3;_=}u3?5}TL|sCf]C,4GTZ xmjz ibYO]n{\N? as_I$߂}8xIiC:JsJ"xEA~xeC@`}`/;hA0HEN:^"4Q"I+OH@[\7 pKǂ:, ]4*iczʡ.s`9W'Ǡej{߄_0!߆{ `.!dž@:qmo|'WC^M_9=w2ĞAb0|B]$nʒ($V ^y\30M@(71=$,,h;C2 PΕ#:~:Q%$n (%h#a[!A@;! v 0G.E N/T<5 4i Q Ez(egտ UCp| yJ.jaI,5#hA3{|8t5 H Jȳ0;!(NJ9[}bV2|k B3IKGAC3Y),oDbsUA FL& -ޚAFI[OC.0&f$ӰkyPG{oCM[y!غ_ʆ]p$c%^4h@+Ap#ϰ!H- Nn Үk@̗f0%@ Cp >>6]MXט BnGHm@eW!{u\L3]g @ p!<à"X^06~3T4c 9  iTx.JQ!o x*]abޘM/Y _AFe@[ ?`I%Ԁ ejB54N&M  jv SpBЁrQD`;AdWyMZ ),>8V8 DVmϫS`@'y H7}4Ρ/ !f~@/&ꄒ72bHAx$$ĀF.iQ(X SB .>h K"KHZ5P}\A$%mAWxx&xTkRyr -J}CAC8e &< eX? (A-8?R5 [ R h hzz$!x L%P._~a_WBϗ. Ldb!4b)ǻm]$/κ'h?bEjD$,Jr{ cK-ȣo%i':1U{$C`,Cθ-V10@?2),]=yKx?"N9B3^9KSԷ!F4IKxmv!(/'a(=is]CH cO4Y%aK+U& VxA[o qrGqf`%P7`[K 8/֚d .sk{K. 1n8XACH$uzi J fb,,h/E6!`4@xYfC@X> JTK@Z/Q$ kQN0$$K`_fyx[^p&<RpX&w DMFTf{ <>!޸@# [bMR fGͤn.#\]pЅo4Iycx J 06W \+!네7I+TS# }$_S 12ڞS! v Jl |h C{E33z+=!h!ߙ `.1:ݦB ]K3%~,$S$.GuB%VJIi7QL\Ph)ࠠS!(NJ9ZK Z޶g>88=o~1N2/9}HwCyC3+WTxQ)9(|u?{tC! !w5*TZ_^x5%wNU;[#9Ik2NVA aybz|Kz3ᝒpw{^[$qkIWCk!^/]JJ'zͣssQzFGWGiutjF)JrEF8;+:vOyz)r63lQzmUWd!߬ `.+Y^lg+2?7Mz_NΫ^5I:ۤ"?xOn@JtVzjw;`-US\TZ? nd\D:~og*tLׄBAUG`*mXq׌Vī ISDG *vUrQJ\D{KC\ڏf^EDB^zD .OWR փ66xV*y@;lj+UBWCWʛy~5nړK]ɩ {XG]Ze{ƆgJ꒽7m:^ GiBPxTwN]2}(&Ҕ.i@MJe;vï4v;^J5?7eU5Pw#̃T N\}uQcF^OϮk/&Qwޠ1 Zi꧞(+k{iHjWbk6*ϑ)KJ.RW)JN ;=)>]^;G'_@ UwWXu >Dڔ~Y3~͠Uw׀bor϶.OP֓LM$e(]!R65  ,1ZjY}]DqwJPGTyW+p,{܏dȏgjzQaNjʰ %]A]YJ̛wyc H1}״&ޯZضꢦL7iH_3딥+3#9VYv {ξ_]Jy¸.핮[~}܄. t:Wp=J)vtqq 5Mv+MўsOT U=5}ijJ-ktSX"uga(t]!7e{1EO@`IvٿF dޘW$[ ]}UGW܄: DHN댗"̗ꝍrЏuO bWFcv7}IH;מAdH®.?_Dr"#P7MzF܈RT#ܝ^}+4z> HIjV!z۾{蜰/LCS{J*n4h]ԥ-%3aI=BwU{@!h|pU#XtA?cГO<&!vz@s;ʻ=U?(Mx̝w78ҩuq}U |ZSTɕSI޿X#j[h&ƒ`s־= LW函 tyeWOWBIWIKrRU&>@k:Qf MxT9V'dϻş|*EYz]WΎ('Y}UzT4jKɄ0.g0c녪oYXU FsszQПA9c [}7 3)IG>)H]v뾂Z/ ׽!7ęs>a4I6d+O|Iκ)J,Muv ו ,JM! ޣޚWm،}5}'=gM̪5w$} BPMW62UdA5v<-0b]uSz=}I>5_k_ (^q2O_J;*Ȝj͗SHb>k:t5;%o6KeڿzuUvK ׭ YzDru V&昤s%\ir%7A=΄\C$tm )5U!$x}n>A FCY݉]MU) 3)IEFX0)~nGEIhGnA*S^,4ثUMSv(\']u7Ki!K+ {ҨrZ[OMueE^n]hJ)^EM! @ !/ 0Ҍ6EIieą$$m("T،-E#ʌSVn:"l"EC[^nZ)3|RkE&|C11W#OnT͆hK$`V3#$$I4)A4TMZe\a]yeX]ɕ Mw+D)&ou&lo6W.>.imnNcEi ~Hֲ׏:)F3 횠U^d1h xm#|GgOP!*5hf+nFmN2;̚H\|̛|ߓEjڢlm~ƥM'm3-mfJM^-y8ڸSbenz>K>YQMJY"A}]Z78c|rת E~$=4Q7H.'MJTm+bd#"$"$M@3@RL5$M9dWI%TMdUeYQf]vVJɐBWf~6_9f9x], .[1Z[eZ>@C%DYmK0bFRfZjֺgI-(ii|Ӛn+Ti)PʢwЬ2ۉR%|OQS?;*lE>krY9|ZR)q]݊5H7$"C8SR(7IBr5I+w+{cGFx1t`/`d3#43h- rIQ=Q$QUU5UUiYe]3Kuƒ0_>[023WyZk&eA 2EdR5&WNj4W]{Cqɲ˜F&Mam8ֻ_ z<5TpRJo]|-QKh;ۮN˯M,߽fR(RX5FWN_/ ))dam"2RF3׼$I]F7Zu~&X`e3#"#$ID‰MDTaeauraYZt$ξ&eG,1VҀ\ UCf.0sR[7~6"wfp̤Q-x0ymYORZOQ h_CE[̢ +U~Ч[My$XUX iSYF8Wf7vB@JPiUփj_5/N%Be.ܙ$YL8|PK L ^:,,Dd d:89.77:ipzt1;'iuM,E bd"333$E2qQ4Uummi%qli: KGk<:qS *6Ckjd%]]QlЫ8Z55 @T}Uv֊5"bR7Bi#ZY*`hF1RSb$"=nJ^10 q@Id˚U`mde5'M$,%<RJ\-R'pܲQa#U8d4nS$<%SItMTӍAH$5(`1#o?+cH5 L>3j^sb†K4`T"%""#!G `.>@ӗv6}PRZRS7\ۊrkeSӽ汗2o=a4(j y-|9nggkHF>.ܒ{$.T^T!#u3X5q}zo>֔qSC;Ƀua@Q,7mW@\$Aו(נZn`+X+?iS|Rx 3;[?ץ&kP2:Е'ʹoϢgTvNouG\#ӻW,]ׂ.TpDkk6$/k6jTh,>Su4U>ے J%t">\;mIl[sUxRZ u ZE!T5Swv ,/| kҿK^RRGʣҿ[2WZ4mͩOv -u.0XmT\Z΋~z;0Jyt[~}TUH x36Sj!Oc6m<۳)zU Nf Գ  3gn.?ֿ=RuCN/cl O>M-"ڤ t14t)}Oɡ07Fl$Zzv$2w=Q䋴C;L]@9IݓדRe܂n_Y:̫Cj%..d8g]R\ڊɀ,|CG!x+j~9ڸۏ׵{7z?m7WFS - :ZV;a]ͻ\hcTg@g |ҝ5:Ά"i/ntySy2u_C}K?}SPKi꜑raђdTͻW{- 3B?Rܔ?4|>/ΌORY-i6 +"5tf̃,R0Q ů*7NO^uGhE43i9CoϪM@Oe`1+XZ^B[\d^{mOdFTdXHڧ1׊&s\2 ׬M_Rmڧd=Ie9H@Ļ\ћe#^7CܾUV xͪ)7 06+h/@@&_Fi[ڙ@5`7R*޿|ߪ938)Fc= >ZmgFKO ;{[Rr]/$SGMZ2}Rej}%4Rڄs}M)hq r0^7`՜V6[Z$ꐔ7WXmu艤ˁ}zP!I*luOIWQ(T5OB7O Jz|3䣊*J.A m"Rie%%)JfϿ퐌{k$yX˼v5t Μ|,E 35Od2?-H}$2W&o )3 R-z"@TY]RC]RbVk&ܦ ,YyfqdͩA/{y[kI`1 SK&҅)g~ad1ok/=ZI@j~T2߆ogMjMAhSd;0k+˓ߓ`WUgyޟhF@3.u-)ڊ íw6f*V"6[%3 z?ĮXooȻ F.6F n>G25&_e}կT8jF1葌;.+~cDPck[~ﳳJߠW/r,ӧ)KZSɌ1q[;+:ـuӂ\QiF>8 _tA/ b1[lu&5RPO@'ד uU!{ `.!X) uߧAXKJ$1IX ߿[m-d'w Y3fp^V&?ot!yBJQ~r #Dl''0`L @aOVl_ prI F!1 dJ%%-ݗ|p`@LN cTЖq^iF>idjxB?@j3 ;gR(=7]HIMհDuJk1Ebucwdn~JOz1Z;gi{b ͱrV?n5Oad@!trp 9ĬX!C>31;9=vcltۡb^c*)7z*erB8#%HD!٩KL@~4b[},aZQCv}lސ$I<PiO &d10[* _H4? >O[%@D^j@wPy)[/5 @I`?-@Xe@{[, pKT h0I9$6  az81u&hT CI`ip`Xv[.- Ax$p`kWt?zY%9M ҂\ {U F 08O#%=z<\Ƀ=0[)9x `mٱR P&bU5$\TX 3t䡽^J9ru`0!#)`щ^A\3ٮsIKQ\+rzaتH3A8ίUOgmM"M;jO2Od)XxT [`ls kCp~#w^j0b=*y ZpK3P}DwI܄-Tv1`[P+(Z jHɹQ$MNY{YJe ʲz<ǜ ZyA-(1&A`ZzCfesz)Ʊ AB}&P] 6>E[Aalhm3^}GORhj,P1kE)! `.1YӤM qPd(bh][٨MuwA@"FR|<0 "묒AHuTI0c  !,j5{y05CYS06X0uYByXK \]P@)AB Tm9&Lκ?=Тu] !/^' S  .sB/B;%av ]6ۈc$ (Od6/0W>F]pCAX!A GZ* HcФ @ey2\L@LG.2-Y{J ,R=?pTPEy5b ]H$,!Z`0<c( L GHDa$ U&-N4{ , |7P]֎]E|Q4L:Ox-ErJ 3H:{ZAj&*z&PCS/H* @Pr%}`pp9x/ϫzE`c(!Ll3X2WDh7j ?,W۹@ 4HL,l//ɋ{[=u}|uid}_'>j6i!51WH0R#toQag`L5/2񴀙 CjcŶk$ׇBi qRE:}*2 ̥HdR2-%~jBRWwT!0?ދ&m1I%V,UveWNⶼA7Y k:(Di8./*J ކ7`d`k ivP)|k dU2ҕD)dn@2ա:lw@~YUz*> `1'׋>%<-&XtM}5ϰ/mW}}`.4T` k | Q$G:AA *?,C薶q7LM'!WsQt+'+оTCkv!7OD̙bb‹NPJWL9oR2xlEQ|;%E%֐6.11-7:xT kpoxN! fFS,rTmd&!⑿. G’ݣ(\1o4iQ1@R]ס]AfE= o[|( UlGT0 .Y͒|tV.O-QT_fx2G{\ɤRc$g¡x j@j@&PUz"a T#݂e ̓ 88XU9yd2#Q4lP] \6l.ؙ1 jI3J 2ҒËM= U:̛rTMP2"c`y5BN]5 A4DrX<8r̓W b4V$Pq*ULBv6i!7̳ s'"H.&dQH; #a]D#K(|TBb57W Q\P7ASSct7 ;$j^M^>PC$qL͊ދPG-qv׼~d(Ɯ*{޵=?k2dNڨ\)lU"JBtj2څ*&*7s< zK R˫`1 1&n%P  `BB 5;Œ&n+;wf tf>z1 ; C[ hFIP! `.\u]+M)R#?Fc) %x4e\755aCzl(Bth{,:tTMT!>!IGԳz2@1RC?~k)X@NKQ _~M>ߣ$O$5+c/KnOzڋI%{ $1 >!7Қ%)':3JxĨƌ#9%wUqMYFpBzX/ϒūM?64g*9JR#QԤSG!trjRs2L?՘I=!hDpBa/[X~ ,6'Š֑Eh-?Q:F)R'U #M,F4:Bi^"( R#B|?[X~U/Ka ) R'U)7xR%Gdukr|e*1[wbo-j}5gyE)F) x6bV An՞L:y6|-2))M+ʥɠQ˨{13%JqYki@1&N[ @)TK.0I}`'贠zhDQ!:^BjJ(֓B%` ~ɓzE=':vAvX}e&'[ zM?xGҚތR4yE|M:!G{oA?űҽfz-(,=UӧDPN V'.iFԄbTrR @WA>.'&6CT :vCxtXި(N{Y,b  z$rL7}{0dž3Q)Q|蠖FJ&y|9r7/Qi]<1rq$pWpmIRHxFC@ :z~ zN^$6a.ꮏ.O拓Q]!COaHuZ'fB$9MDBO>Ec|SoNUS`s4(1whOGU$0`2hi K^27>8@V%Wuae2|4;CLꖪ ;AX/˔˜`9p?K xf$ Q!1~6tMQLK0l(p O=<-Px3z%b0ODQLFt zڽ( EYD}.& C5Ζ 羅ނ˚7]`1yZWϬӝx h3:Tv W..ǚ,1lZ Kp)t]P&HU ڭQvEPcHkN ~&6O!3MCS\UGCĪh7og0).NIIDOyfEUPنW0hxg"AlvOWRIJ+ty&6ǓCH,WF.ӥWeFSQ]Ɵ6RK[dY8ԕYDfzG0ntKZ݁mg,Y[ &|qg|/B)$Wt8j$,RS8-*aw5 Ybt"5M*=$QMXe]imiz.-efGDFGM`ciY]vJ5ML+:2O¦R7W!vAXud jofd(?IQdz[LTx|\iTeJ%Qns8ީțnDOYb\BaGIcmD2+jT+pVP=FnBKe҈1k]N0ʓUlOLa8KV!\YTiɍaLUD kURn`e#4$$"i"j5Mvim\iunCG 2^$.%H@pk3#hso φm5T_H1 Sp/wq9IÊde}Z)bߎ(h/ȁR$ط}ԣrUYˑT.(4uELMMUlZ5˗ ElE6ZV3b2U^+mF#7%fmEKbm.ix~ #n7OVeN}G5m 9Tyes}ʓF C4i bd#$4#$ˍ& 5$QUeu⁖m^uZ^Tnĥ`\#+QF0D&h[Y7LS*VMY*3'lii[B f=meoqq2@&:&ӓkm ,"RM3}+;y ձVUHIN[n#DJS0'dFZzDP!6F߆Y&XO.K l$2j2QEf5\b>+JY|ːkcf=mFDn`S###6I2C?1$R9%]4aTQwuUYixyIVqZlfGwn@;Te'/ljRp3M:^-8HQymQ}yєކUSi mz]=ZGĊq*VoΛUqR[)ʗSY0_t!8Fn]AlI"pb4ʂ#kpS(˫+&M8o-XWu1&H*[HXSiD*=`[tqmSC@bC32$""j&h0 8P!C fqPa-q4Y : &#s^Y(c!)7V6κ(QR^`UYA*P4a DL!p^$x {xfX-dYuˢH.LSHDKMB:h4kX W#~:*-)@M2Q$ȀQ&Q5MDU2:Igm%3NU_|LD» >E&L!r@6Sp qI蓑H2 : '։c(+/CmZOR ;H,2Q7{֏CMm7t=f0 q] kzXpo0Qbk(I:̓۹QqIT]WZq@b<(ko/~ej&kzY*JJpkQ;}~z8`7O1!٪`%(H}Y 1y&o8ÌkTuiI<-zD SP1n<B`^ԎjT6z@& d "lZ0bl7$P(U鷌$-A,d T@cB](Oair4>fO*ӡ(;@xX1s͚KMz:P)_cKC=Q."cJ 0ROcޏ a6rlP!I'Qz':T2Hh0C \g6M`c `s`]I@#PBv&hL |]x= ǭQVrzgE@NPIըr4M}cj&6,V0*.!chݧ0W >/h}DCI>5q^US$$ EtMX. Jn :Gj+وSE3hc$MgqL Քsepa,uu 0G0.7 GQP"TnIUE0OcOQ^ CNT>o:gh A"Z/PFއ\WЈ'xPQ:tRK)Px"=iJ*mKh zR0W_jt7U9tIQkj{eW: cS=AP50 >HM@QAb4'}Ί$PoON~Am ű8 +j*(}\|1zɫ+\T7hi4"2K:-%HDP؉WE@^"z rb蘻.}ȴ56D$8)g $e3>ښ= ak(20Ҙiy q\wIC$-9.JzΪo'!)! (qv6 #>Y&cH\_HCp+jh(h,*ftDw:b^LL@AS> S ##\Pd1B뻼>k>& |J2-TyMna0nA1̣ n:tX cG%ZDG 뒧xpBba)!F{ `.!Y47 ¨%q=_C`%AʱDH+ 8D1OlrEjbT*]0B)U-B4jKP H#T-::[kN)|h~Dbb![59F#mP 6#@p?wGrBZ[o yKd2wz`bAm # [\8'=CkˆRX骨Mt߲?[\$ @xRbY{voǝVKpnY҄}S;s[+1Q_RSi5A7k4|E?*Mzv:8҃XSeVc|=< Uk~+PiM>r{./`ʵ-> >3zDqK[%t2k6Q7jAG%jNm0UcmwM(M. U<%t2)~]%ymZZ_)C@%,kN7s8*nt*-:NX+uwAptMw ´hlO;]Y0j)c>%ᬣWt}<𫛐\0>3>gx_j ⳾1 a9C9ujb$1Pah΍5OW뼋X g-)F9=Kst% kzXЀ,l,bh`J/Ž1PPQ&`kzY*'=a5PwA{LY 1y&o8ÌkTup/S7_`{AI SP1n +λ(˹<롬5?T )0$}I,@ T@cB](?`U._`PT* A9N@%Ú(?\4Pjbi0gcKC=Q."cJ 0RODx:PA0!PW <_l1ʕAo V3T{V0%8y8 $c%*q͓lc `s`]f¸#{Ѻ <;ߝ4QeWPsAXU_n$qFp< W9q @chݧ0W >!SVNYThpmzgjNf-DžLD7mc$MgqL Քsd>. E(_`n4. 0E"#JX~0TKIPX+y18RG$ [' x?. lVO 4}xC"PN:S bDж UTIQ4 ܸ,.0xE$pZI [&Y4ȅ!L FX `ƕ7j ҆pp2U7.2"\UQl9bx"!P185[ Ey xl,2 cCO Lt(Zb-$MR(P rW&EXdk#Y?E`UjkR(:ET4 2|rSD(`mvsH bEIhq'FAOH$ZU6*Y1TL,gMBh/o%EN`Fx2*銳*DLAiԖ,(}J=2L\p,>v`34tߦMOD |/ [X@ބ]K/ZK FAEYDvT(P4q|T'`d|`)(pk(a>9wPUTel;4KtL/l< WP>@kāzE IFž!P XiSu{Hd8}&yy024bg2Y!Y `.1Bz.3|?'fV>xM305tP<GL0aZB32{^0^Ūt a4+52>d;I,d7r ;`'~NT},9:=aۀ@c0|B!VSm}4NI){O"]".r]8$d4a0gw[ꖑ2zjxsMU/I @h0taL(}i|@pB& Jdd.Ю/qM񇥷6(P7}zbhOu宸kv{t!}% yRZGftd!A6"Z{ĬhhlQuWwrk82{n Nj JDXz" htI H_hDHC@:I7 ćSP0pk% X]FJ٤( J|6⥫ZLOUnE׻O(.gG Tvx/+OQ4wCv gQܹ2$p2t#@h'DD]@Vcef.R X1-95B5P +||Se'Rc;D̅A]71 Mڑ e- jHz&b1σ;2Wyu \jK8ĿoH"7D{QbzMےϓ΍A6w[ՏkDB2>Uvm#%·"9H)T@ 2z˜4rtDuO!TI-WDpP=  &J`5%  Ͳ>d_ׇ CTfV;ZvM@$ya Z E$ >iWAgHM$״No)}'R}wW: ET fPh)Dכʂ(X( tXЗu*) _6'!MWCӆAG1u^GPS%2*r%jABcQP͌mda**\ ; A)WB`$*|v+>a޿v7"΋|\d +' T7uz%}~_fq-ި7ϊFײCK\%ѹ|v t'fw$S*薃B_i=FZruWH---F@T`HX]PM,u[-U%n@ 0Cyը_JH ͸!嵐>S+h&->̛[t*̴1Ev%|picӣ=ˮ:D)pY 5 a@ZsQ$R!H b?KD bF1⿩H}%j5QOJ/?YdmͽBU2(dFE @' ;Q6\]ၜi/kЍނ x}zġ" }Q /!l `.!@5? stR^dd۫ޠ7'(fO(0j 䰻wOk+auNGD;ۿxݞA{FrbxkzA8ך%$EЯ 7w"!w d =RvG}yc*&y{I{4{/PQ1e96l*hJGO(' E}O: K){J $d˺&Үhb'D]?妼'\حs=7$H700fS =0Ejo:@:My6n()CR'`.$bhLR-kAGt~^=^4u C4>+$WoA,1&2w|8 >'G1xn=G?vz D/W!8C+Xv2.x }q>΍oxEj q"ӌ"|י!:[%XMHuxs7``oص}1aPSޭOL.o7Wvȡm#)t7Dzh>* CA@ .%*"!e0@R7 B,.Ti`_"j: +:ǽ vh>'STh5/zAWM(ne>'}A@UmvނP41B{^a7t 5SolI3d=@7~P}ؔqH׾fq6.vW'a} {fc֢i-G\aY(ͺ7{1>//L0Fk 5E r#.֢o$"kz C` _['AO'x],.ˋx[ULT^3 UMUYT?&2 h&*e 5JF$Ae>RcOUĞAWxu~KX}+OS!< \+JPR8jv+AN)iVqC%rWO@tx6? 845i^ cmɺuSrOG`'nr~W0|QOjK%=ݔύDxۮBW~½O]Y {н} ,Y0شnl C8V]Ћ,Uy~.eYslדJv dv[sC.*^e/!k-A`ȳj%M@K)X.dT"؀~SߢPS\ 7#\ >u֯ww;!+>.:O*NpԍcՖ10~8sW}q;ډ[/c`sQBtvXgKgmsz+% n|w=dS]\6F:]'2xD'.м7GF %ۂJw_}/2.A-RםJuC#t6huꞇj !Q:Qߡ8dC@)R [xh,Ă6á',gqJd;06.b2/f%- a 4zMq[Tus( BA?TKr!?N ` =f3alyc$ "@*38S[`r ֋X$ӹr!d sBZ jB( $5K쯅[m3L#A. !3E@S dXr BB&PvGsnTAr ~lx6ډknI5#d h4Px1   ,)lf pS fi ! `.!%=CA/0!@X"xo`W# T"a>& QaXzC[A<`l f `Y9]Ql XAa$s Ȳ S#N8 `1`t+Am#l" !IȁUY\ OiJ,"S$MgqL G PF`tp`| D`v}5, 057Siv.bMa@3_BhvP_[hv'j{Y!07.Y.,ڐF I;yD S?ME9!-u C8!m}m#P[_5\6 ͂LMz&Q}=B˧s6$3nK{ o@_kB3.PL *M%`L_%uݴ]  S(,uab2z(0GuPi_kxWDШ((5`_xX"E2..V]ҬK4'bZ&}U(^ڃ?zpז|ӫS\4)hv pfM T!V )VX/' cP` .D5P㜈 bwQT,9@u Q0&J)j+G("ͮiU[" %u5P|GUqN(LfjT'MqjU?oJ=Z؛{Pg^O"Fk%OX-"T B`nQxK5 cCTM*>DS B(rz-2H1FuQ I4BFhY#`| . =^a*ϿCN#_D9 L䛥İ=uCnIY \{> * ,g-c?Ex*0z"J55 #qTLX+ՃP k@^&'M.VJ KEscVdL*-ED&tm7i\9L9dJ"E݋uh1UY'* Ңz+ZaKP$6j2ϊ]b&|iT.n3AP%i JipQz Cv kP2 ALvU+j \ޡUQWOBcgWQ4Xo(Syʣmvd=BS/7T?ɑ BxO u#9FO< ;1> BRڤ[?`GKcZCXX8ut)0 =!sԩxi4"|Z P S "ziW>6eDAP>SКCPE0u$%p.J:;jbW|&Bx> aW0L2>"U":qߙ^JV}Dbtu$"&<E[xh, Aa|7,L6cHCہz:b1ފm@˜`"28]Uef1`[`50b0ElpD'_[ ċ0̠tUA5$3 iy&!N"U} Lpu7MmƉ cJ&Mj{0) "Z[#N!G @ !8$:t7nr?a= hzB'jZtKnUm 0ړwJNnml#m['7`y$2r l]a +2MqL3W+6R7:wtq#46]MiYXmd]T2A5 HL*`c2R%"$P@說(01CUz:QTLɲ2zCVc&$TpUbӫ.5G)"*a!}wdx5sZxVǵNWZu.kQ-4tz9\_-CiE/Hܣ1ʒTЍM mSOfFY_YwPC Cl-dެNEzdKFD%5k.^Q*Ҵt\UNhUhbD2"%A%E$Hn<ÏADAdI5UuSUUWYezq))H%$$rV:. CYs&u}oIc9syIy=7p V!M*JVtD8DYP_}+̉Q%Su-B3[d!HhӧpZ2D#Fr1tR1Ε"rz!6v՜B]]D ea0W.u):ѕ-8-Ҧ0[fi d](n'hdyX@XwHѻ[&|=U^)Cz\g^k3`C#2D24M$@N0IUQI$Q4UEafbkM g.^km?~O; biȳm6dײ ]ꓔ`M蒩VNE1H(#ixZJ*9m>j;$upCrH1(ӤiI-FXMfnBf1J8٫*vSpWa#jӮ6 *I4);6˽J*5}u(d4Ii9c:;*)WG4EEi%2HٵDiC|_[PQ|"*+w7kbS#3$24m&X=$ETUEUUVUUef*UhۍDyMjJ@!# jwP4 Xj!5RWK咒=;#/lQp֝)G8ige%,EIㄑ+El79#p;O4 >9IMN)FgfI$I .m&nPG&G &H n'vu(mMTn!+Әƛ|GD+I:Ō.)#썶5e.vڭµ\NDX--u S眭0 ZM`D$BB"+F(ꊘo9$UMEQVY]i- IMAōk姸@Zĉ: ) d|Rp,u7Kħg昴Y!@rUdznK4V@H %G#|F?5N\U٣\uBNkWϓ32WwE:add~ #Ke#+g`|q]^ŮezDu෣JEiU{m]1>'v5w|is C5kvIu5*Z|,Gr ,Wvf;X&aca8}_KcbS4"BDE"m-MDUEU]uu[q)7B<e$mfۗ]#󐥾_W͡t腼jh}Cp%i2 iL +:a% $%Nْ^ Qװ2e:lˋ!T B*5tAuҡ6 I'^(Vk;yVE&tDXOD>qXe>q'M bY@|]*"B!@N&WU˪:ڑ:γy|.[E!{ `.1mBFT2N&0P{14+PCchlMՔhЪ>7k cY<| ~yaa{I9߬bgC[$ҝP8f  B,:AV56"hBbϦoBEP¥>"APK(*,_&՟YkPc蓯HW[\Y-A/\<{-p7SA'ԐD Za(8)4&\5+0t*=M:^\BO:] 2BSN&2[GЖDŽ3T8UBeMY[аίBpZߩt)=Mʡ@FAxdyB`Jn~]+b( ow9`f Z€۠!'oV+ ՜tz1F[Vc)zF&DpU t-.t. &Th Z;&>E h/QD?2ǎ/DÊ2AG408q" b h BXHXPor.ֲpLI`Rh[ڨ' LOBGJ={f$PȞ{&E d@_XG_sЦ qqT& bOMh| Z`"i*v P `l+]O],a*<2(Xcpc~ >w5.G BxLQ~BPW7H64,\`ezPj{\5Q,k z`(1K*j U0IS4 ᭉ﮵WИ88} B 7}ȡ<ujԺ 2n%M0Qh&5)԰K揊,@p2kqZ#e oA5 f5YX% F.&4opb 1\!ϡ'QbXUMzPA}*r'di]֓:r`.>zHC(ɉa \&|9 rl2Boz%> =p2ww7zDtG L)>F?/C.W!^t#0 h+a͓0(P0LM` sʀi m莡NxRjKA5 "P4F>%5 B`)nB-' `Վ(0Q79\N7_j]W92zG M. KKU' ҆2 z.(CJųȠTz砻M!#qCr1_U\ЅAGiy[?P($.0^B> d[?)C:@05 Bqr[ 䛄։/H df@*5B /KDxgݼLDp] Bj&2{4%o#I3'-_D?baD>R$# iKZ(k!ṭ `.gVg-t*$\tM1oDTGxfMϔ1y$0U.}JK$V:yK!=Rsf@'&PD`5o$& S@:*RZ4~lP gTSc|Z~@15 vllʛJ4?@3ox!PM{yM}}}jJV}JU$H/2HAc螊$"o&INdYTJ>2y &EA/HD׋Mזz(S@L-$b">!R1Q**x3Qa5%ɰD ]t ;I 3E##jm:7v W(3 MPD/AGʈyGJBxHr\aFEG@QgHLɋO^{]wIAЄ;B.z$#0C[#=R`ޓnL(шDj.($6TGjMQ ,.Q43P $I3 W%@J { Qh8s֜p#⁘3i7zr<giP k(dPLXE>2EH>|/:* tAb=;&L^ IDBA"n"!WDB7YH3BGRE#n}nS<6&I6& :AhZ] DW! }h@r mAGɯ0%svl NK6I`lj>mr8עQ(m3&-Sx'6,͂`xR`)Aukdꚉbx! %|712m:3ܻ}5ABf$y>A$"&YjbpMLy^AWG/k?ko2; 2.6d(0lLM%"p<`%`6tH pͽƦкEa)/GN7a8/ai+:$o@[PGP0Hi բ!V7㙘IJdb:fFg>D`i5;2Sy҆A^ב,^oQѻ YX,>! `.!_@ Em<lMx]YѠcxh*pPFSVcfK{_g158l[xy A,C`CBw((@CBnHFB1A4Sk[HcgI ofGSb8! 0p @ES ) f 8> !I Ct b@[_o.w08/&x5A\=? ;CGp^Pu*88W9Ub `= .8!8ĸ[$\aװ$ǂbT?@ yF*i@ q^8Q $[p,&P8L [ S.UÎd4UMA|;/ E<Ѩw xM taਠXq h;fd,|2^G)O!YS~1M\q@_pG+ͺФ%֢b1(Yi.bH,4P OHUzAȅCS͗tKx=]_,hlj]DS)5!s(<52ML7[g`!(oCqD;W0k _X9MX2&oU i4 S./ VF`3A.&MU?ICSa7tkB!sgBe>-7_CcI_bI `{Ģ\.~`CJs S = |} ꡵l*&!M%ԓ0T:r kP9!%t5M6`*/R`R4:5 k@PORBY%PڐU*8]TkK԰^t7И4CR:8uX+]$"LDؔhRAMk\#DtM] rAP'D)ȁ  gʓt8~NT5٩!b" ֝D@] `-e˺& :NE|Bh Ogc f 6AdHj TD.* k@CX#0G] VitRЪ"({R]} f|. DOvCXu&2%IdM z2T|av\&3Žb[bB6'Q(x$|&h,LFSH`Hz-Ƴ`7D(NeX čgD|mϝӴڇhz}Aϧ)]]vc{ ls,P*y ~OkCb[DH+n"SH'R Re JJ DBi U&kխaєؠDBe iFX EX,bOSQG{EȬљBJ#Pڔ໐.hdIV[Ȣƛ0 j@8%⚊@ Erf/tM<dwmb SxhH# t$+1h'Yt/iH򉨘SxyK0qL; H!? a11$9c$MgqKTq3v:': [a/Z2hÀs@)6aaAsa  )'8 *t  K[X0~bpy}a X/WՄ( xCr`fH+ bn7a03pO rqK".fFc2 e]/x5p"a°rAoe}>{."*ڭAXhab#?K$JdNSa8̘,q 1y2E-aݣо0E /#8[/\ Yu5O+$YQd! `.1QmK~iFVMm<,ɸC>*e} 6v lBd^d*el"3U /$)ú頌x k t3 K$Mg\h{bo&@JDt7SO5OziWDUHmlʢiN3iMDP!t5/.I bHwp.V52."6jj 7 K'LL"x4eSxG{h6 K@ľdA mGXV_Q(/y6l$4Oe GCaq&ِ5UMCH%󪆠T p= ϟXL' Fq4P cp@T$2/OD;AlA^ 7&=gs] ?$yXCQ1Ј{Yw ؾc wUq>& >_yQ\BE&|4$rgJ K {9Ө TAdԙ48+]N}>y7t4"K k]-C ̪Mtu t$v21FVdNTDyuϥ(n b)Q-ƃG%_sitP2 `@|M&otIX ?!! [` WTڗP&}_*>,*Wg\Uȉ? EU m4&Ő K2d$zM nwT5 LT06&x9Rh4L ^%*c$!'I@3 }K #!k\ K`X' <u% l *{Ͻ#u I:9%뻌6*utK *a-}F!l406&uCu&Ն]uUIǣyJM"2]֚K"xO*dIEpz fCU}M#wap2⧿w0Y5D9*ϝ{_@4;~~={d ZQ:N+|hچЌOf{wJ_걾UF1VwejR e|el~ZdFtMDMW{j%*uk1Dbb\m KYG­"?@C%.NU~vBoԨnI>DKuF:(۝PB7~kZp Oej%ux@G tȈDߥ%*,a'iqCp@i:*T hQաE j"ݲUw{ؑKR :B3´Y~媉.aMZeLDt.*"8^$`bI $ՊryQo<~VfYCoAVT|E^AF0ٟ4aVF5u[CEAj :kN&*"YI-Z"$ R͘ /k>ffԽ"EH$6L!d͑B"o _Q-TX!Um萹PClHtGL4L%NH~ ^B,m*6Ce|1s''5<'%飮.LP۪3AKp&4\h(5$! `.!巹`g! @a07&R?1 LL(.3Cm_$Q4M OİB[&*A5!B /ߚ7 ! 1(n,QEa>;G t$ rY1$pģ31a@ HIJ*QAآie0b9ni7: <0 !Q4^R +c@Y]7W3GJQfxh1IcS ǀ2fS$5 %pkAD5-k.GK^P=0lt OEQ*} TI p@:@ɶ[@7@GAG4ݼ5:f+Q' [ G`kAtP{e%>ڛPS{?MMT,$LXD0vf #lJ\HB2qs!R;.KLObŏx~}}N,ؘ5zu]\JɝZ\ ꥋ: Trv/s]&?uuq_?So=T<!t(VYs|^*C56@˕t)0D :01RT@ `!Kxh6 a@)`]2(2=1v)cxKxy Ba #  `823D ce9N0KHc Ͽ$/44 e@B0Bi P;?2@nYN=`sXg1K_~]|l `">` ` qH1sRX83)C5hCq1 C$ę%sf9&`ZaC 7TR0BEMNm-TfH^PgEE`_C(b&xpV az`gPw#aFOe BU]EDž%OP +< X4$U xW])Jqy$ C~q % fpmz$`xyҀ{Q$u5-bB4bZ *"kcn tD]$;X"HB€%jmJ$pVȜ*;\ :3 +H>K6T4 @ Nt9 fښKJlTrQj-]II-8-V B8㠻<>0S<P5pE'?4eUETHLAGO~=YmMB~jJ}tBKz.ݪLcXk]ԬH)E4 M  B<>ŃL Lz'2/5 p1HT1õ *js3AAh-4 /PEVM˥P'*0N^ C1Cqift`fWlSB@, 5 ApM`pkzXl+[U EB]7 )nZj$͏v#0cQx 9ϢPa,U &v p:ՠ C@C!h(QD$I$i /*:]h_h~Ǽh$BgބԿt&[ %媄$Ч`BhJrZQ> ; `&Tݛ=֌qWB@8n}ۻ]kp$ (Q5MwKsJc?rn!Bkm yIV1DiȚŰ~˥pC (;>읙2zbZ: L$U|⼀W zG$Xe(T%/+A 0 q} S m=[АZȪ]}*BU=5K !, `.!t&=@7烩ꉀ<+'ѳz-@X۷>٨&,|D`JNcȵNo®kI%<) s4%y@JP8L&/[kt>)WZNu1¨I ň7! ];{?g @)a (,=E)cyDX;xy?8uB1݂(~pK9$'r.0;Tqf@hdX4 eSHFoY8f*V~M>줫!)i- b3['_;7``"!) c|XfJ &޸#(f I$)FpQ4 783"Lpa30MOSW Zo Z[=`HCvkkKGZ#*$A=X,Dex3$8I0|+a0[ }y^f#e6}SG:*}VGBc%XK&<[?G$2#'gB@AdoDH(5 /hzCQ^@AztS+~iC +40'{{m!? 4T2hgm$ap452&==:oޟ*f )Б0@IŚБC*`ÄQW;rUU0:lۏi> $HhTR ,Az"jfL ctFLYW>0rnM4gS%$hL< /PjY=wړЖR0hg+Dg[yt"4]kޡC! FZU*ȵꟄdɦ.Q1BPZj76 3$>$$GkL0OM;ex-9̳z҂TT1LbSqs]Yn7XYBz|SQP#l`h.Fu( PA0p6 vʓ&UT)황΂1bhF ŬB8('ɀ #;tFf I:@+% &[?jqAh/:; U0 L)p=c*΁@*LHһou}kڐn&I°tfS^(4<LJPY9!U=~J/z*R@L0`,[[u;1&$QX5GZpQ/F MvBz0~sbQaPQ]bc\` @ !vB !ta1O7=;Ќ+G90Jņ'}/XLpAdHnFfB{lV7-׫@Ӏ+ \ 3{z=&hx;Ab7d3ճjBL!ǓPCGBQr8CF;IL(0P;Y. %TP1(C!n(T8^!Y\))،#ť=u?XNvi D\)mHRT딥*F)FER;`:4@0 }5=ܝut2 <@ؘpܴ <(GATĀۿB_R hnXYaIC{Wv|LhjS'Ђ`1%gG_&!8|Vݻ8ܧHH 􆥻lyNsV5#5-} PCP7D g+[圱&- ŔN=:yO?A&`_ RY18g0i؁sC@h BA0vY\0a*O?l}RKs𼹵U,I4wv1l ;߀o}SAYW Μ_}!wI}z^bss;En1TqcJ[frTޟ2+ѕ)9ܤa(xzv5)OY)]7)G",R0;zOi yj# u7)JNVcʪS]-);&:xHϒv])^M, #t]z@+ӳ~h.xOC*BԠ.S=bcl!4':RHRiJE:aNtiYaWFF83})xyޕ"xAmo)ub{{AoW0I,@Xk atlÿ@PJ}_Ma}+.%gso 7WL^Qo-.rn=$jI֗&7 k=ʗ^YkXKX)FW)JE7!)ғjnRu,)7+# ?f>zYzP_ʳk CuNQ5sz/]`ddhdި) _}4)_#?LSȕݲh3KI stu+m:2HL1*k=.7/Wf_T@84.jb5+su>&ެ⤷Ϫ/  ~xBa Bwަ}B=:=VxVGoRW] T'߽hKtFZ^VP5 FJFM!SG @ ! 7| 5-ZGn, `t$4B%E"I Mf,UEYUZYmqway]I{dlю &:uG"D' TH2-@UA|rO˰Wn]SWLus3n*Ʀv+[:t3O+(Lx9Ҫد[M&7WC.OTqaSۅMN4܍kΙ7гY%YDH Cmt܃4v]Jz; |1 fd,eO×ElJ1h&f蕪@ 0CVAwerAf*^֗>bb4VCC"I&P0F TP!$ITTEaTEieUGU]Xq]6b ;G-ِZSiUMFNܳUf.7j'MJl+VHK-vhˎ*5f*<SRU$W*ɝ-D%k[wIN!A9SBgE]TZzI)!k֗ IGķQ hڶTxXݝ{V[O6G ֣m® A8m #q1Q;q z On+2(aKZ@`B3#B4)l a()A3R=4IUEUTaEF=B9X} A|[mǹRSqף-N+d #H3] yΌcDL(ynP;QQahؒ7ͶJ>ZNq2UUԂƦm~+Du*0a^ImkW9x 1*h uVa}д1%+o-v1Uõā!{vՃOYq0mJBRidoKR7scM2vtf+X*Wqd7D} +6iPj8-\MibS4B$24(+r0ESI$TUU%WMTT]>Ei)N%!c6-UP(j]>jHreY^$g3iL;Mzzкٜ:㸄^ޮO+xCV'VYJ6crrkJg]}j6Ut_i%>2Kw{0K *+Ϊ=5 2#N&Rw;q#FG8W d~L٥eb^[}B\q1cʺˌ5}4'Fԡs 6h`C!ABC$eL(sH8ԍIDMECMI5QtMdQTIEQ셃DO. C2&=,!nQ 3~'*hҨqIWVDۼ;V h hEmt)7;$n@g~@5D$ZF |*rE{+(hؔ ւvqI6"e5NߜR.\(uVHoY)\Uk,6tfa"^qe.nL׺+lJ& 'Cq-;h,knMU-IbC"2##$H۳23(q 0H,ҍ(@M9#M=$M4M+V$||8[=pl noE+JyN R#qT&5NZj洏&O&y=jfkL5ʭ*gш[!54]ڜ4Rqm꧐_5zt#M6yQIj&f; {ƾjRS~00)OCsYR뭎kV;.SSaDiH1r:|l@kn_%`d""""RK$@$ 0MEAPQISXbՊt#ޝg cghrdp<WENF歚2\scaiqa-X!f{ `.RznR@+)ӹH™Tז_a$MC;ڥU+2@_W'qHl럆5Cjno-u-^p!ډ2o"X_7| NsMI #{BPut4kqSc=ݟy+cT Xw _unOm{=v>t w`nHݭwnu l~ lHڊ^$vNn!:c=A4X]BwO+$Wll$v|^U꩹ιnuIKkW{#}H\,(^j,jO!ǸWZwO'*ґxybzlSIe9;s!Odzn w>^ Ԝo1ߍ\`WwTvQ3nWzpo(^7u'\ raxgz7ƝyP$nekm~}k9U?&#fErt73c&7: %>ݪi/9P!Ivy=V5&oilm 4i6z$Td#:p w>Nm6ٿMp>yϾ|yה =MI?ܔ:t~VI.ٙ~e.MkKN|4T뭀S qxn}ry\?;̐CWҳަtYOIivm ͷ5,}>҄MNn:@o9(p1xnAaVϰk\PW  tқ|:6P;^~#gӀXWvacJǧȞ$ N g#[SӉ=WQ\ַYhe9mxEaWpNKՆgu~*u v#2 V  NX0N 秇* c8޲=iҖǓ,-Vu ͯHyҧl}d6cλjדR})b`taRUߔOY}3ªP:(/ )|:ye$WI7>~RT4YМyz}5O=Y|:]`Ϝp%K`b栭k+X-[=f**Uv>.Fbэnb9Дڧ5=;˶f) ?n'STp>;}xIYmYMP?`( ຿?=h {GqQ 3/}8! dnO3?7JIޝ:;}ꎇ ֤P倜3s}U^^5 $ ͻ$4]^`ayS}_(t6w ґf&|WBn` UDjJ I+Q(OW |z 9Q:m8R2;^Sm^GJ7S>#}>)<'{B])Ok NFL_;uL]zASg&9W.R?S솖:ikUU Wg.O] /|-ͩgclM+5Qo|aoRUo\\8}œ>y5pLn><'cB=5[M/~.Ȼ*DO@a 0`X|e+RM(P_kLyp'!s5O1# 3G0u0 0 փ;R}KdaUzXH,py@Sр ˴bFexIJW?Bwn2ɍ!y `.ϩ#cI0۝ݎ 0jп~ 1l.0ԶU}Q!1Y蒆/ܢrTJ۴+"Y_k-Tt]@,P&Y38!ν FY,3'w~^7p>DMjх7F߭ze -FQ37'񷤐ѾRMj3Yg=ڞ_{ȋLJot\QVne*8a'܄'B yx?/>BSPo.kB=!)2ϑrZ !9豖«;zz0d*iqaʒ0lƹު栆P3#%clchߚ5M &&$ IDҸ͓ށj +)HFKlżI2Q@5 V܃PzP :Ad΂8ɽa9{́N5FטטVp}{}h_%'3[9>ٓ#Ѫ\nY0Uz{-n@L4h$}KۃR^;$1>ݾYz񶯰[ + tzZOq~MPs݂hC\ry9<)ABIɩc^PާfA01)O)gݳ[2Gވ۝qH n;Du.SpeU[etFS%u[3~ɩNjCE(VגN??yWvsn*E#%--om-?>gxsH[^e}D҇lF;d]yT#gW2 nJWv})D/w(6cb}̓1UPhi+6?UߟyU(ZP뗀#-HH8Nٻ[gk[!Zݞ_۰ʦGt/.u"ywjx xy{VM^LJNQ_OA?{AoWF' +bpi`!:XjjӐU[3]}hnoU`-jHf%d~u0 ͫО,5sQ-{(9bHmnOc{1VpҗC2Sny#`)zU6nV/] 1e;gX\OFIT +]{P 6lt|dC{jQxfWuOI{410\\H[؋:3\@mZE&$l>se-<3m *_+ `!X"~Vn!0Bͷ|ry04iռ\_ۊ@kne Ajr\UW$!8PZXaBP̵NU  K!|?}5! `.!9 <#J?+ٷ]{תI43~͌@iEe;lU~i%ޠd8!UMC?j.ekX/3gA iNþٌkt*r^ٿ }%іF9T5-Ws NEj~{cn= ~qy5 {(ctΔVm|v VnFȡ#vu`+ꛞWLC?SIv87 mPA}h{jB>]Д=ɕ~;.Y5ɟezpˉx!;oo!VcTܰ9vIk.җtg\aN$뿮.XN熓w?` CQm}@H :Uߟ!1iw  477kSS0@fk ,7uZ o\yK!7t\pUI.j>/9m{rn<]u(iĴc$Fuw0\^4NߺG;0Vyֶrs|^:cC)??SYgw)KP喞1jWWg#ΪJ]!5ҁN5/wsβ!ԺA}jNx]%%o\'cF4iYOIXcwGIe|^䜜K6fOdCK( OawzZɘ+} _z;ok ~4F<"_o?8(($p`3PP&a5`+:3xbu|<?m'yU9gF!BvR +; w,h+PAƖNZBX2qaC߯ZK8}hFĴ%լC*LǴC]C3B3(}U!C +,oK="~[IH5 d[DKpCZsj2>sVbXt2u[< n xHHԵEnX8I.I[7 ykS&]xkZ 莅t ^DbX4ot2 p"k=Q P.J: b0d4Ȇ W2! `.!,:$l硜ԇE ȳ@6I! y9hIARPAW! v@CH"H0F (@6 3@2%;Ejh*BbaKPk ǗBK1=|v8ۊVѭBxp[Dǧ(PORRG1o^Ղ$s' X_:OM00f@J%LbjQUP5kfo/'v,sq4%($`>/Q ;:y~w02_UQ4V-",sI2몄3-В2 5 0ہq d(] 9AWL츛!Yr׏>Δ(M@&?zz a$4<=;GDpOЙ>E(b z!+OIlMUЏeJ R>gC@Dɺ> 8Dn>J [v%$katd09*V[UBhO4fv&6\# 1 K<4Z S#GBZfeZS U[Cy(j(O E ZA'Lj-|\赱Q26DC豄ﴺ-vv}~uuo /N΍"FL/OQE<:SP-ȡE<]hŪ];}{#)A t`",=f8K HJ-;yzbWB|@_PQXņFXQe<90;, ž m,XR a򆮚,2z ƋBq @;,UƢxLoj)Zk!ӈʺAcxC;$юT%m9y ] B;D̽Pa< qaax +Æ;(:=C+UИ3pH5rou-[u.FKCS3Z ƤA%cT$=u=' }OIB9ѨHsOOIGb\GP}vo)}}VK>P.k~Peʀ Bz))B:6t%x=T$=6 6^PU MSFHE9=( 2M莀KRT :EiLj(𒫪aa#'ʡ]My^;X 3A5@8FD;]L TP] <{>E da=wV 3B!5vt$Kr]%6Xt}U =.) T"עJv *Lou-;I|#7buo^BÇE&sF(!0'Plܛ^ΩT#8wsmPq8)O!G `.1J5XB<#w:eMęQ!(2 laEӠ(Xjv񇷸X .!Rh`7*M&%[@0_J IJi}aGCP(g#8C}4Gy hmJ!MIC3 ZG4Yi Fr^8$t94$?QeK(@-uUSOOXJni8KhvlU($W'21crᤱ[cx>F: B EauE@0-\J| ȋv.ԚsQTNwAVC@v78E ,slHBV(I2H I'QXU?jGU?BsaO0=Yp:s NG^9O{jbhL~zi2 +I,nX"&_ D~ݥps},p2XQPڥZH,UuF#T*o%JVB8 Ё *u*UGb \Mk*|?.\|!1&DaqiQaU]ZGCM8(BNFLYGڢ*(!% Nj#l{MP13C@gNN}(n4 J$`<&H@Af&&vY0DҀ|.2 }T$Q8l,gi^ִq-&\jp*ybm=!m /%-Vl4C0a-r>\b:`ėD`n& v \}gU; 4ɯvD1?JDTZʾ$2`IABs|Q7}$8 tPjabǠY>v^4ݾ4x*0:e$s8G3͢0Y'>c` Ā>!GpJ0&':Z ɠ:8JI܉ =KLȢP ;~YM`#*w BҌ4 V 0T  ,]POM+Y9D#`4 M-A.JF"A|6O4? n P,AuibojCu=wAW<2a=}4ג&,kĆR6@',YwY 2˴fٗ$QD"znH9M$mX+,@K71}^tY/d?UۗEhDxRF/YI{, j2Fض' pD+Ia}-1*d@~Z@xR}A4|XϥmQ@5 Y 5`}1\ms]NpE%UDpX\P?|hrc@ $j h(z`*?>PC7K"ިiWB gC{ē3'5 >t֛7RZ8E(\,` p"W)Dbw~  ",A\rgVx#V3F+yPLļ 26D҉@%xVlS1<?'b` 0& x$!8X / ̀zyJH!}p0̩(Ηb R2 Ho tFN߼47J 洄Q0:2|~l#Q)9x"ü7s[;[z' 6J$ *P.a@C)Peڈ[iZ$匀0̆Heܯ' - fkXaNB B>rdEB -  !{ @ ! Ժn+BW̵bb*WAIUؑh paZ&?|n`yCI$okFm~.]>RK-1U\IE)MR],˄{G@]Y8owC{"=QÐg5l$! [ @^[Wtᘮ|G8JE+e/KHET}bS"2""HD@8M, 5@) MC\biQntpmqJ#ƹl*%TZw䉚ܡr`3!")$eDHPa4( 4I0 GD@(KDLE3UH"sB[Oqʨ))@]ѭ$7-j%Z"&kjmSzNŠ6ݻĖwYF܏4g'xX ,־$f,N爞%IVW}6&5cK>ϸi[0S4ìQTΕWT FWxx\4 bڠ(4nxAl 3%rNѝlt\MXC\e,bcl7|f %|0\6%sEif5b3#"!%)csa$ 4, 4@H99=#TTz]NHqyi/17ZJ­;w+7)-[4PFFPohs>)I5&d/-$вUU@Ȭ72)ˠnx@U+qiN:&WZԜ<9zJ&%:|E>nqr5M+"3ƛJEvo'C6X@`C$##6d@(0P H4Q0ED5#U=eSXYDUEQQdQQ94"UHRR.&%Y6RjMUj·WcpJ$zs"XV5Ts4'rB͔J$[XpRզa,,jĹY'"mcIXݕ'I#hjC|ǢF Ly8M jmm=uTl L@5\|n@kmen!*JՊ RkH˷$*L7.p\.7J)7djATj貰87"PRӮ5ms:8SNoTnFmkbC#23#Fm/R 4MVMDS=$]eYVT]UX[Ee2Qz2#ա/JPKO$ҧE9UD+hYN,\Sm:JϜGYvg;$7$\KI%d֋n!L[FV)Y(-WGl1~D6XVu+g s#mى$cMYPXBjL Z'4kBiD5\H.AV8Yf!٭ `.F$h+b@lN4pC ; 07^\oSHgєL$:4TCEv`Ptn Sb^]7WҨ Kqc1͢S@A036DȪ#&:o|IH/DP[cQbfd2,f1àe5Ѳ1RuGڔ ^Zb@FM89b|LE:vz!ݨ0`hB 0I& +hjbhX%צqHi)p #N4> F1;EMOh/䣀z tVƲ[) !H]O2% &\(R;J *JcbIò +[&6m}6gB{@sC VK!G⨌-&_d >䍰p BCv.'*Vx.CQމa:uD#BP0tR1>,t.1BhS013@: x5 p:K73^],'<?d xo:FwyC?gk175  OPGhTdtP E =#4ԣP*/h[x *v^/Q/AGjRGT|:+mj kx>˦@R.~#|Dp,(` ?0ih%Qd$+@^Hu-'|֫:/S]pUPwևkϣ3+N90M~_j^w=1|Q(ogX WdTMDZQ+Y&oZP1,"5Wz#4,۬5@2ZR7RQp N#V$@}Zj[s\ *CJn_"}d6vӔ@m* mh}ZQϢ@6ɉ dጤD3>v5Ifz,MM=+mpȻe0*{8g⨌>[y&)w_j|$m.yA6Ԇ2]֔txx:93닢i0Hqoܗ .Ÿ˥ee$b+dET C êd7`/tJ aX6TFQDB'DS ;Ț> "a5Ơ&=RIC=&DTj/`*z#Y6&AvE*'C@`'Xoι!<&&1v'ܾIDZt (kEavc$oF~@10kp^z%}'|l3%Tma,ab3.+P֬k?xDC OyVsKݰ+v %I 01hda?蘐=&dxBaEu(-F\\m)$uS:rBHE$44@0KrT2IN&1ы#-)P _3&<|LCK@B]KT\Y Q1H)g?ēQhYg?]@Z]h˩Byشۯ컢i J nl`I1GHQ5w0H[ |X`tdR"GT03ѿp?A/ȟoyy^~,"D{\B`vN!%+@6z p0b4]MCKA)b?+a!YFo㭂y*x]E &r}$ ]ûe]Z|1O=?,wj |:$|`a 'Axcqa./q=Dr'! `.!gt $b[#<0LI/7;rf 顋T^~445'5ZigPA +Q`Un1(u 01?W2A`{^ x'D(0vO~liÇk~qYTHL(*ߜq2b5 ^w~j'4Ψ78,Ky' ̨"Ths=`i75r@62M '0]B h%߿w깥]BVV܃3J3zA8{y 90ToSbQj]GqF:bL3 ߯*R2aQZPHC= 7h/u@3LIL "Zw4A8dDgB1d3Z,E`Df+lޱqܴ?u`g r 0 b3H|Rqǰ&ślʧ `el9g#o%ԑY_o=m3I-Ӊh6:KSbI Pj L[<HFDT;~M.2 r=`H[(*B\>q#j \kp=@eOt,9^Aax~3(Y2 E,{PHi.FeS.@IȜ +T8ts>ohZ 7 b=5c: ؖ N)[U .9egSFhBז-9A0&}mAOqO3&P(B fJ=Q$#CQGȓP d `.Zkg@Ԓ2Jڡ" WDu2 g(Ո{S8 BP0}OChKqOMI%/Jbg\5^n~WDL B Kr W/͠21K#*邰 |)2\AK E̻<0x7U 2jKA1LQZ`'rj6E$U!nk_03;Blg.hX2%5@<'3=#hRMFǤDt'hAP+('nϏC'C: SO7odH /_g :2 |CAPXr KA FHhk?* q2(r@Lt2VJ!R,7 e |-XuDpcG`[ M\ ;DL`&<%K)p=v8]4=7Ǽ7V ȱުHdij%H"5M* Ԩ#TX)`.Dd_._P ;!3V4TQ T2h*y[A H:{ ֩D)L+*KCz2jhUPDy,tH&ʱl:e v8C  :Hd44J3{x#.Up} N$%M0lDCU$2(4K1rRG ;P/@ BLIKAV6s}ECwcew=醛p  QgS.a+8;]AӔ-@/ݗ)O,eAlfYFgQ#]m7+\EχCx׽mNqVAh3,58BF51lXCx׿HIC1_s@+ aѭ;LQDҁ, _\ y(< jM 14kp0$ | 8U(p4I;H|Q O`1`L$`OP+E AE*EY,$aYx(q"NN٤$-/_~zް;S0l~P*8%,/⟧|u +[k4!L$æ?0d n'zEU%'#P7%x # &>V.`}i-`P nk  "l'$;(jp:! \cP 9֣UDРA@=7c( +hASiRo(qE$%fDHPWjW]"C%?>wk KTʌ J&[pONaC@h?w ]ņG]Bk3@&/ wU}vSC6궙j]U!K@},uHМzB@HJ,~hbEI"önBOlwY~G] ǮB$41"Lo~bE1rE0# A("CK<5`5)IzO|!y^Z @w?V {<#ꉋS˳ghF B`*<\ؐ4Lh4i@M aF >fA!UMuD}>:SyT] a7i+MQBFBjz/|'P:*A*0jc}YߪH3Й:8 EP: k@2403O+F={%׹* Qmc^H-W`f)٢^ޠrh)>(t zBSfHΒ%}QFR+sHU8"ɭ;CdQyM_b!G `.P~x1ڈր`aPi`J Ɂ ep d(!3IӴC)<)%Z >y\ #w?h<;ML2 7N樗uu,V ?'s8"w< @*K"4P<1_\J0`oFC"#, |L Sd̢4F  hm0 Fh i9@`hD !( hn.AO@W0j"w2 <8!*h2g Jh H -:k舋nę$""uF ҉RrP?IRRXIhĔHH݀%4>/Q <+X@^(^'=EWFJT"{@$"P &K0$g@H `)-)txDcX3)&Tx4&0l>Im+0I7 =Y@3m&'S.vkekC.ˆL@DdtLLV+h*Ӻv>'z莃FDh PP`I~M5"^h>]Eu9LAk$Pn%t栚U$]F$ؐa4(Q7, > ((! + )HC@r5G?|^72e0302C4#E HՒ7cUNM X:6&pD,)FGQj*_H I7yNh yH }/6ߎa;AgbC πl #Q 7G(<5)PX]JoL j  آ^xD=OL rAE]:;~&2~w<`Jc$A; WA7w e%kEL 3$w^KD-;G} ,RF} 3} Z$ at` TLDd<I AbyÀDC0:8"$ 0XGЉȺ-hN+ l!JIg%X > CA$ ҐHW&!&{ @ !zϥ ivlY8sUi`3cihs7õbS4#"D$Q%9Z=ETY5RUu]]]U]4ЊZxYo˂d- i[t,Yz )EeH$X&z["=HoT0’YtV__>"rC:WJ\V:44EG+d,HB5775| ӑBbʨaaxkW#% 15EC;kq|܌'!ZBI^g)S% LJ%>gG6B}_5Ǔđ=wQ~%K)%Jg fF(W) q`D"B2$RDH (!=5EeEUIUe]Quav#UѸ8)M"/IHMeR{KkRDp\ܺ[9tm.3a,`9}2,f)RV )=m[$E{EșesljZXBնtN2xx5c8Q=vR_# ۖ"L|D`"nqa,f=v6Խhi T7^l-֧]-4"ZU(<|Xovg 8 2*9{`J/mkOD+ NAc]Er8{X)H.bC"D$44D@Tr@ԏ)CPҐTMtauY]eevi|h 5ANDCԖ]Ƶg謣K,fzAek nX \7tQ}fGILL]=Q^ F4F48>K*4EUOձZY,:mpڵi"m'!>,p0~; #=4B1 BԳgS][ E%Fe$^eIqr?U܉Jҋ7uNwMuC>HѸ>hUm`c##2E@O9%W1TQtiifemuaf?!&SbcQ7oȅ c#ZM#W6rA/)jSTuEvligDiG]ź핲Ţ ^E" ÷ƎjKaXBYwCdUmV9D4+57 V21 [*0 j MB7$ 3RE=u,V QJEgwdl6ݨRE/*IZ' Ϝvm9rJ9u$|bcT6i5HNbS#$3B#i?2N,T5#)%eEaeef\UXe#N6 B,G.ZM e/̬1㜚Yˆ]]$ [ng-D#4G)D^I"t؛m_5kECʹӅ[j؁$$|1tm>|ձ ՚g$ôCGtHCNB]q !j[BJfRh J3 ͋IkdF!|05T "*X3 L50G4ui¯ڻl&m,7*DL`c$34B3h/ӯS=RY4D]%e]i^}R?aE-Pl @M؂!9 `.yH NJV`L%  3RQ'2d *4"Qk0.DlM-:gGj,m (y a=#zҶ-Ssoy' BUݺ?yRbQ/;/ K'AOaqU ](e*ٽ꧍H0ƒ1=u2CeT-L1+)9Ed^ϫ1hJqMy\_]z[+A|`GO*׏dQTPL ۜ.E%$i2wDwP9Vp6O "U֨ :t#D0'<& v[rbUÜ<`z F^7bB,A 0Eu.ۧnlVqD`fa]LJ(ǀu`Q1$$t@K'?TZ6;Bb2eΉ'"WQ4ҹ1%U[DƨMnfBf\E%<%Hi+*-M(*s2qp5 ѓ&xY d A5z%lKߗ?s{ꦚ݋Oa%&  :w>]d K(Ӯ(/XɀW +4j,mg/ vL,bD@]ħ17Stoy !^LWMhODeɉ e kp{ɑAv7U0M&F5 7mM&(" 2|XԚ -M)opc CըSQo@A>=P㼾K&θ2o5B~zB}2F:m%f_>|CLtd4C(%1)& h"~ dL Q4bFL01 TK ` 5t,٢`]w -#0|pc'?Dh4dP܌YIj(07BNO~zO;3@Lٶ~D ;X%?TGt< K]Qi>cTBJGHn &?j)P$}8md#.K/R3m_wΗ^ vVl羸g˸1ϻ7wzd y:ᝲ:m`C] }k54b6VGH[D$[Nn,~߳lfl̓;?'E!@2t?qDqUTsx0X[qC$L( zcS5QvGޯ&Щ@;>wa 4\!, ?"oD9/t>: YVԺ㰟&8~ .pz%~w'+f.X˸ח l#uRY>O ks[(+uHbc$o"+/)/*2ш3 $R|C+=5Q]baCCQI,pF, C&! 5KZW fJEޓ퐑tH( (nʢP/0 {Za Q (rn dEt+Ҩ':hr JjB?}6,wiV"e밖Rb:$4\] @fc/ C$gHp]CcyN` OKW*t ~\B%Pa7A5)%h1!L `.!eǥ?;d%y i0>3z?Z&큠C{^{~j[)29oQjK,,zHrBz^"41f=A2Cfdi. E]mBSX d`_1!dĉH6Y礆f!ryq&GXU$ka0! CHj Ac*c@Dēzxk BoAY HTJ! u1C)3ڑX.a-=P#BPң!7&6I"RzTItʙSé 5-8):I8iz+KdhZZ Q\iR)<&4!#BS D]+K@v: $.>ltۛCp@{Ru qLV@ TI}D4\E]&IG, Dh54N @Q-T6.q3 Q Fpdk@xm% "( !~( ' sZhq taΒ2F( ܒ)Q̬cɒbI+,FmD0$ܛ5 >A=xx A| Xp S?6$Bju= xfS9wDGJ53ft9HXMG ͕CKX24Θ%/<ܤqZ+p€U$&R^ @aw5  C1Y@\*BD1~0oG?&A2O:҉l &6%#t6':M D_|M7wM\VO[qp?9L4*Bf/A2WDAk CL% uk&vB^mY=? d.@շމA8N-50n;qXV7wBic/u]Pr  ?&p>75jC!m/KƇ#'ˢH#P2}4 ADyq-s'50O ==NJ9/{a5t<2}kjP_M ̇fKKt c/`G[U(,X`—m&|KzMԣ̢"QP?'QdzAN),z <8rWqv{'{Z-V!\MK v{XVU\B 7BcnrUcԗ.݌H# H֘%0FW:U(wĐ KX*fw֯N8;Pa{MQd%%'ߢlxYy ]u$!ܚjUfB`K@rFIW`嘚4άOiͺGYA> ^GШ ]?犌|3lqnO?*8 K!~.GynJbqK{^1LFJTjK;1')&#Tű`JߤQٛ0J;bsڄ5+c rɌrJF`K Ӂ~ 1# t/٤+GWNʳ!M75q%Z^( KHj8@`1a8|ӑg0޳IcLhfBQkQ4=cZԧ^~]]zK)nkJhJ`a1piˊ*NYʉw[I!` `.1Q܇%Y*D_{P"W.NjzZ BG # ycP\1s& Oy2!ASL_c˃Q00nF]8] kڵ %NMIGCZ4=@BVノZp)3rD3y'ATa@j dӵEERYLi-ϓX p *pep PqC&EQhRJQF]Iap>_%ALjK%` JL4Ja"Кl ^M"c Jˢ[ OA}Bd4bv'r(LK$KUAv%]ãE`RWM&r T7A(3.z,wn'@(n`' 1) h"BƝr?W] )$/ K ԼOsnh66ћ]uD1^&qYp 3ˤ |`:I`LA wx*q#&5%y-AV{Pn5W:Vw۱LM P$,s|JBFd`-uD+0ǸɅZ_(/8 KL/'\#`fE E( ]f{h!.% lZO-ވ춊BNªE;>0wDuWɞىT 2|Ԇrɜ*{}m;Y=P:CchCCU4IM m$@)cUJ9 Lh{tb`R1 #.2 ZJU'%MѐfE QpĆ#C@p+xZ-27%4HoY*wx:jbG`402׀nɜ8 i3gހ<dP&I/QD2L)I/ADi25 z]#>e,hϛ_C N-P>5y$^Q@К9.@A`O!sG `.'/F4Fh"@)b"`_I %Fމm"f2Da<=A-=Ig:\]m 'M3%*,& P̆0 ="pd C2ZJCFf"%h_ HawTG/#37d 3 =h&O25m0@^#`< aNI\ =]v&a4eHH@Ə2MP& +NQHFAԀ 2<#![1)OP][ƛBls. `1 O{MG5P"~X~Y hNyԨ4LebD1RQAk$}tG4h* LvOrl4$ n\Qib,* o*]0O!6rI%0`D E(+A IDxf t!Az3@7gw ZD:ˆlFd* C& ZwtH |\DD4J2BWZH "& E˜ȥDcfi,_L(UȢHڠX'Hapk!LATP69fI@|H]?6?(<^D&^oDpNߠ J EckbS1g:aFD, ֞F6DtG0&A)m3uoG ՎHZ" 3PH؛ `mL-.(+!`X4$|M.IO.RQg9pLB!7Gupcp]gNyDˆ͊Փx9dF_`)T31)J>i4F|b2`EZS_BC:qHN"*R& ֢%`/CT%S_"q L*bI@adni!8"`趦%+"ͷ2M`m| 2yrXiGc H_­H0ó0oFI_$̙91 \CG@a$Ntߑ$HDnUI/Drm6m P+Avg ԸoP"XOBsNe.E &wO?h*UA0j#Ekj{*KɢHna&&CM@2WWDuOQE BDɈlX}H5&Ϧ:y 2v=| Mk2쭮.;I-&ODz¾& 6<$.&ܭ ]v*d9Kdb*AYx@*M/ēu|]s[e-͆$gdCQ!`TZ`3DAap $H[? ]-+ew> 2zQl/;ސbVz'D[kZgm2$9]Rʺ(G<C&2ƾ\PnHxM,or6 $-G&{2XWl6P ,3qwUf@`ƒJ+kʰ3՟U*tu ۄ9Z %q%R6(Heu)CvJqF䐧3?~ᭂΠO@TfP4CcsOM\%֐ˀ`S4S4#HI2CI4UEEee]vymמ%&hm!E8ܤItv[N}Bq| lm-ކ!F4 0VޒGS f0 hmR$qR8p~rsia]ejֺBFïgӢjR&ډwsq,WdHni%nDΓ%zHU^ܠF"hu눃mvY%D`ɏI߾W^JTbLm^cV͆MHvFȈ L!Iu>' yމT~VҰ^,)KbS43#C$i(Q<MYTYqq~Gޅvu^Q]ۑɒ'jeCڬJܒJR[pZp(&w>:2)$ 񸎵gjG fR$KI)%%Lu')mǏv⺮^Q^icV)R7E9o,8+$EZRtp驡iҦa C+^ND'@^xz!jm}vle69*(YJw_:" @ؙFr#%NDu㾵I:Ċ*8Nz.S k0`T$4$#F)깫0ԔQ$RUeUUuz'eyjEU&AK'!;eiym8žDQHQeFv(UnKQr9 ZhʎhU`\6+Mmj L#F26*;ҊUBGCte*FZCp6SePJyIJlQ90z1QER!4g!噭 `.!Iu/e++ 5@P0"hh*L@&RC)1_%h  鷞Ex}XL&.@ǿDI~Ou8SU&Ⲣ5+V(ݿ8M47*EE3Mm& }Qax( 4i)$K*]>?\7~5-D5P @Cp Y! @P8 Տ 2|89LBI8g , @0V;Ylo,$ߕy &mYɻfB\tc5;6-#G8qU;,N(ߗqB&N/փ+T~,w9O|ʼhwd.Jaoa )ymգ[48BzTyj ȈOШCPJID@Tt`ΑjeՇ$kkۧ9up]o}aP @ ?u{[RbҪ '!mvҿ_U@H2P#z F;u/rδ$3bDf}h'ОAq6]aSx! ɣ1A Ep`Ե8C;"5&1lXKy ?)'JCisYIbsf `̲VNK%IVk M#e$ X2{YmQq,@c>-c3KH19$-Ʊ u2'cUTLGa)ס& M%B1 [K) FB^1*$6=:T}UWifİQ͓k+-hN~V0#pn% ˆh} K)5gRVzMLDf/"ډ. 'ж ? I9>T7InF11@J?nXDA>\oR a'搘z[ORSUđ`-, h-l} IhJux9&Q1VC$d$Ul^mSL([BSB_)uDIƧ A K!E V5.VbJmB}z*=VBC$g8_A'1(@޳PvCK  BD31N=%@Я&ƹ$Cre BbA-zj #ϦB#䮦 rG &|t]ڪfpnKb8^kkɞ-8֏x CL/ TؖYSՖ?sb[lL*a5)Q ;ٗt*yД_Wv4ZI cNM0 C%f0@FV ~KVl%; ؕuj!cס9. Bkn\mPed}jITp C`"H'^m-y2d!3?jhC r,RQWuCB5˳-5KPPͻ6S_zUD)muQ]0"bƞi(~.; h;i4]PmH'eEd4oS-{~̯ߵ >$R ܞH> MeUQLKj)m=$P_*@Ҁ:Z-BV"^+YM #q epr_Ҥt(u2IY5)dTiC/u*a7t_ 0A:ID˧GdqNJAcSz-&-)(_SA+tK>B TOyKz]s2%,8Ԛű`Cy ?Ei*}:!J%S՘12Y:@C%IVk6p!|PD! `.1Q$%R6t>MV۲\WQF[1ACH19AJւd' X. EMdKETwHl( P\p' aZ[KyugCSNP0(4D4.$2%%YUQ,)[>o` DQ QbCSU4-"Il^ hC)5gifs.WŚ>2o* בH2ʦ.Br8Xq>AJ@CSE2}j.]\mBWP֏TLZZBEShy5%'ꢬv}`^(Ke4 B30G`-sGL}@McFÑ)L Et' aa 4a Ṫ$R܏BJR͂åК0#=tJxtxFTNJ}& ص`E804%x CAg1}l0".PJ"=禪ăa57Hͣ%'Z_`:ؼBTOx CL/M$Y|vH}9c^NYEr:j0O|[ڱjYbJޯL灏s#5处 C%f)A 'Jxp^VlLbVzײM{pR8/$Yk C3_OS%lYGV3jc$(z"}0% C! wz~N/VwЮ3gZֆs0.O t:pX沨4'rtR9?+uJl"TC_m+5)&w^TSMiBu[J%7&@A*8 zD\OCFS 'chNb yFpj8}}׻B`VHs՜"T 0lMF&\V,@t@W%X^ '9tP.A!TH:5϶yɘihQ539+p?>hRu#rCAxHȋ}? ~xL !T~LB@n5HGr' p<J @zW>?%| |5E !$y)Ԉx!ݍQA\XT1D+,@Viye1*Nb%WHePg$Qk2lôw)ˈ^@'N+xeHNyAGSay0` yw;IDT'L618?'q.dӢٴ3 %m5E.!<Y0ͥ! |ckhQİr~] &9RH` E0|i@;RڬqЕ{p_w$ +)*䦭EWVI$oYJ&MHcqbp`5B0oW oTFH4xB`L@` 8'E!#i2H13Dr`\DQe2Ϊ$`R3Z}5^?!o[җf2Ra wawU2VVκZ MG0#< cS( LL MIE1+;~G>AlJ FJyaC$͐L0*iJh406cQɶMse1]DdY 2 -##ڮꈮEdhL,lZ {$2"0i&M;sU1ϓwx*%2vN̺m#$lZGwIt"մ()&%&ʀw<`g2chp)R_l *w@ވdM5,ƽoTF앴Fɍ>b^ LutMB>4ֽxf &>i%QhOHŔ_1oDBR` ƶ`@vCObZ,hhbe@̚x`BR`Hŷjw|J: T^ 8oC\IGz&(fNj,(?+2MIT *]7r`M]QLK\Cٯ9puakz}JGby*Bh?GA+p} ͻLG^ob{^kbɡonwz HBOe. MÇ_iɃI]XPZC mCxttxI>}!G `.!o-U\X0Q@Q)gt%4G'޷(&Y0kTlZJSz\FqK]ThޗDg1RT+H-Rn!茋vl8{e8pP X3H=RFqVi&$6 %&@N?>ÐW?2+p?`7AJ+א , a|Z+%EL %gl[}?1/Ɯ>-Q0YhGqjzտ:JډL O(`+$.aDd͘ A0lKې&j3(D,P|CI:Fz$pJ"CPzD|yNwbJD`BQ"!Mɡ;B (LXR_`CAh%K@ rIEDp I4 w, ChΔabhE)h`w?҆ =)IJHFc`sm:)TQ*/ TL *M3@&!ֺ#'4ծ5h_PH([qh9&, `gYD-k /I,D`!Fp) @  ETOQ姚oJ}6: 9{1PܔǺw0](uPLdYv-tv_NJ>N:I)Ҕ |wyEab CIʲC3|p[ǫգ 9])!ѻu|m`Mb[rkMİԧ~Rk ׌1V 0o+9un`˹oU%ѽ._])(n=Gϯ1-bن0c1!;HO4ƙ`1)(o#PODm꾇$"ن9P8jzG@TFQ`-=_6m#{t-HROd0r0;SNJKUŅ!:Rj멧8 DDԡ춚Ȓ  ]L t%dO'M NHRq{_c`;Tf=|0-U N>H~&5w11!g8qҀUP!-XG%H2d8AdHy];FЖb\& &5$L\eA(uX&3^@[f!CԃI%<~ `=5[eyu[+ڊj E1MgaDBpZZH|.1k>ꉦ%(^Ԃ%=zW5 @H$GIsji >_ M?V4VGCDCyTw'!lRnOEJh⮨q3+XhZVݮU^IJt9*V4 Pۭ],KBq@eF5BHJ3za8bd7i/ `t BwP"O7 IvPpt$*&\$ V'z!b{H.&z w3'K4L+!E @q NꝐ[*8ǫIKx?q2&SJFj$"ED2P()ٗ JP~gTJ @ǻKܜ"Iu CA1ƴQ8Ik }cSpB!{ `.!y',mDM 'T: |mꇐD@Ǵj} ꆓB)R@q@{6&w)6{qSl CL/%xʼn~b%~v5Zs#\\Cx]lrCyy RNILbN:MCy.$M 0s-d&>$0*иT͘8[&EnC"2ӛ8b0\.L}h R`)>j̈́ӵ2aй6 f "CT2㍇ˁ]*QQ#j0͓uD; I+ULD$p, qeaCQE%&`-AI2s*X niePJE=W MU*ЗE,oѠCRCfu} s`&,_ԯO$ڥ3S.Qc ` Sc0P|aj B^,hiabwX CA]O%zF v@M%czjBj62!: `'|C HlhP âKT\ުm6 E*z蔒!P*ĒNq;p,ojQhuPA"A` B# Z{d_JbZYw>U,u>% QX!vX)kz': BPC4:Km]#@v($6ړd C(p͝dwl5'Vf2|u `nJQm/L-FpAs(&4۠ C\M &:d L^uQ@6L]ИUH%7ZeXLG6nD< C 6 9A(!QtvQ3/TiZ2F|*.P ;$Tr:gSFw 5"4TBC%*@}~8AnNe<B6p9r-ϙGXIY?R:Mc0q y4BüKʡQEK2L} JyC H(8%g!iDΞ47ј‰!7BARkRiiڝB-aCqRgIy'D.KQT\: ]0ZJER*I `ECv~*jF%,\.Ҫ+B2뤋ŁePb^ÓBhĤ2]lg**UT\.w *H;N))푿v IQPbZ OcgL爂^twҍU0 CH#)l P`bFݻ|۫ϳ^Ԅ%<&q02M/#2 A1 b! @ !iMeA+a7ā?#N@VŅ*t:QZdSe4in&DZ͎uߋCu{_[Vnl&NT[/)MTH_a`T4C445mUDRQaEm֜uzxܝA!Jָ0.#;1H(IŎXptÒZNRZi9ų;c8 8$_4zKce8饲fr%R(G&@;F*+Dr!r[Mej< ͺU։HLptiCI/ 1 he!M2ʹ#Eo$GiolXj4WYMN b m: QMQ[QuYy7Mr- K\q.*QNFe2hbT4CTBBm+_QEe%Y6Qi^5P:,Jxb]͈Ym TBDҮJHIA ( iIrhi IGG9t 42CCCz]cUVKťƜI4Rz;K:w 5b.Ț-;b~FKXjZ@f"̕qY\jg՛ .򶑥qMB ؑ"$ilR9qΪ5I+JJZY# pmv) Z "Py[q sEmҿ9mPNVVFQF`T4DBCWh{UUVUuevq"F"#kCD:mlR]q:ê- b80rRIFl4vA1%[eVDLAWVbVRiĪ=#L:R@HG]ɖUV%+TѨ͜q0̩Iq8 2#A(h 4ENi%miK0&XnXܒ(R{4UjR!"  gSM g(!aRT`FgbxZVE@)jbT5DDTH)Au]eydHdJ&=HJKtt=XޢvpgV3F\f3IEqDI4k dǪlsq١ldeqQE%kSng))E)S0*xd%(P3-2~I)<ڲvb/ְ2Y)# mjjPRKj jJ #Nc yQDOF5FG*hИ-[y&XQp3M',5?K-nڟ~P+`T$C5S6lHu;qEt]5aFqih`r^ޞ'WNGjb0 hZ&m31 ⓖ`gdYI9%e5p+Ntbi\9ͶeG)&EI4mNH[3YNYn4&eI,hɷi3Sso&D㜳_5#%fuvII( 0 Z K@KH'!2Ȳa&4b /ִ+#BH` C#ڱgIeQ:vXH9 nFKĚ84s$@2nZnX0BHbS4DDC8M Ye]auaaa^݊H&aUv&kI[͸Jp/_rڨNIaE6zj31doaHi25$nIXqu6lYi CP1rLp\؋csuψt晚YXrI$sҷ$* V0FtńFht-`VR5%D'r8/)YynPҧM&F#.B߬7+l#C !3,kxdI9X`c4DDEHdlAXei[! `.R$0i~~%w{ P @B `) Y{[u;1&$QX5GPϖ:oTyzD3 e~'W MҊ씔E@*B !taBys#>7PiAŔs:ǻް20XgO/lr?l3˵!:o&mIgSX޼ ɣ@40B =AdnggO:PB&1%n?a5G(`ILO+7tӏf;Xj@NX!rhC!nyOBG#U8#2s 5җӷΪ:@Rd7n'JKo MK,1y)(ov;U>Q@&i45)ϓhAX_0UG<}ZQ0d>`[vr! ug%9yjT4Ե! (юWQ-K9cH@cMً)!͛-3O|np @b` A*Z !' [ab0rb 90'˛U@&c1ov8ovW-+^m:ӻ^)>מ Μ_}!wHofB,e U<ĺzn>>rXN1B7n?Nh'>TɋkNy';6:xTyU{K*gMVlT6_̒Qos:7H$!3ꕊF.F\i9Xi3iHcR2fz:U9-{g0?6cn5ܽ^Xko[jmhz{ekMORT'%kۇC%F7#ÈwLCe45n,e!\QJk:Ep E;ғYabE&rII(7t1do1UGۜy7X.}|JJ}%)~n\Uҫ{M+ϽTS`j%\ς1e0A^W9ҼJETRLxxx+# ?rz=1b4\9WF[zAjM^b;,'b? # F/]y#}rwi5g#^!;bc]^iE9f"{ ?pxmO 1 L !̘ڧvR itz餼S-?lcgTq/a.Ԑ. w6'6PkTA{fso4ݛůTРk 1 ٽ.LIOBUPLMS\۽MՅ!)S̪>XccRqf0P@5LA`TIq%iJ~l+#&ђwY[M?7K|~WGۑF'Kk-R)+Ҕ;Rod `'V%F؃h[Z!  `.0ā *֒6Z\VU`ԡ[1 ((_`@-kgҌa>ɽ^@vM!-JZ/{i?{i?S&<닋m?w4A$fp$fq+ {vZ_aduy?>OW&y+/b&>S3܈{)]$LPh3&5jPî)059]ͻH<;ɁO;bf9A/̽aMW+βkj_s}qw ߜuPe(E\]ꚒYϼ7r"W\R^U|o"{@3 uBge13HfFzo@ܤ @(kvYyXĥ({;Ju0Жxɜ$"0LvB,$q3~W8n?r + G}$)oCG!H-:p€F3Xng?G|rQ&g !h,QdDw3l+bOYu1ף4^O ڡu _NSF %/aZґF؍t w ZT'` BЯSu9.RWO0O0.Pc\U!WO{WXRF񷔍y(wщ#m%/ïC2[?{Ɉr\zAR4$%f(ӕJkcN_j{ucbѶwvjO|1Q⪬En{R~wUS.-oD /2~Ra_zyI{wsf]Ag]^AEkX֩zz#ٳ]$%<}@gJp## 2ˑ /K{_K]*/ pfۉۑJV^*Q{@1ؒYW?omPHj9)o+ ZiETJcC5LF9m&.ah^UgmCen ?FNg !o+pյ_DI0& ۏp(KIr3% [Y9M_v| ̔Wae>#(k &wzrhMH{7aOG,ܴ!yN}bu(MC J~Niewk'[ѳ7%$s*$=HKfSvRΛa9)Wŕ^wV3Luh.!A?Ʌ5Fk )u2LìH+iݞ̃/9^F˓Z@d_7~BYFh0>.7ڻ{;92 3񼾵hz +k)JS_X)S)Ep}gq}jT t %?{4^kye5WYc>6gs% d)#ވb+{|},M qnNA5A v`c^ne ._Rj̒?9rRxkRjc"P{ae6;K{~{p!vJ(5$ݙWκ?. ]0HuW !Y1[k>&|eP״\׆&fٵeS}(@b3>Of]=%*fC0IG̍`=8B#Yc;=FV%F͔r! R&_!hk_cy6'eR>Ԃg?l(؍Rɑے.L_& +) (JG4VډM4^6{iG*RRۆ!vwjy} /eob}֐4R[?=V^!3G `.O-pmzRkţ78}IA^t,Eȧww(BC˗h+>ӄT=UI[lJ`Y 1k&w'jPg&Ȑ(7a>l3~Zp !%Q+lPa+S/^!bI]>ڦ䐒(s]HYِC)wM;'m&{kRH{c[QCPnö7ɪ\(/t} +'Y0_o'@m}Μ&.]Mx ֬g^r]VM% +)$a=Jjԗ1i%3y]i עR})]^7|[cM鴤Rڦp0Xk;~Z tRVRy^2GwbjREsG cȖYt#|^y?̒n/!q<'mޡ@vTt3k.ׯ /%#K?|Ϲ^j 1Ԗvs<1M_::Fb !n˴ AX/M0m~FO7Cu^ 6n϶voqɁe;tl[ҞNצRy^>jԓE)u|(3zQ˧=@ӃG{"OK?甎Ibh>ƳBf+9 /bGcl1xRh;̖w(L^eأN:Fߩβf}t΋iMѰRs[5v~6̄xx # t\>Yfj蔋}VߟhkZ~gNKIg_2zVWBcPnP) jQop5 HmO(W 41!n88h`Rbj@~-xuVqWwϙ(_[U;ʻDF7ے0:GQ&4ߗ38c/uӆVV$"aD-NQ&odsjY]}7!@/ W։)҂bע03GUaWM+4)YWG]g7G5#sdDI_6PW6OwR*Qr>?TxTg#}yu5y])gN8_=U#}rSȞp ђ%=)JC'Ե8xBS]x5-w6yl@m`j|<5?/suy9}bqSɈZJ1 ;Bs A kJ@,A lO3kь5F| (Xho%vF$?فm ?˥Lj!F{ `.!ᘬn T4}g;g; Po[7bJJhZ$ҊG*)%tq$*?.؄.z>PCsdO}W/z&Is~NC&;(̀ J79ױV-}~&*a/2G뢀#{ׁP"),4iybn+k^~RJz- 3^ ;vNpϟwɮ~EJG9ǖ]>{ ϐU }P ѯAu%WGn"?׉C_,{B!Cw%c3X\ۼ4v}$1o xNީ+$|ޖZsӭi|T"9w05ں%?i &!;;rQ^I (=mµSO?O)) FJIeQEz|O-e)bДO߮:ڷ9!膔=]ԧ8j\Ig~8.$1#_~E|5riš;;>cV:3'wH<5~.t[Yi|1by,har1^izOܐn;vQSeKX}?t>Z B6溞\;~v+K8uo+%}u{ óFe־?uukɏ̦|0t_ؗ:#>घ{[yR @`ɉJqy;P+q11fN\F/3>3r`wMPGW% E36ÉϬc~vvɀ7v|k8;6a}z^}>&L&xWHhih ߄ omxL8b@vIϹD:7No=tcOE@ Cx)K.6+leBC f aa-TC KI'sC{/z \)D@[Xn޻*᝶p`kD^B&b ud;)O9o@p;U}P30"zj!Bˍc2M&^[)8kk;DML g3+cZb 0? 4Ai@47 o/YQX\5jUm=vұz+-V̛d$ɞEr4h;UD2˹z(6BH4t|Gf -$sgJ+Hy Փ@G>-/G å%i.$;돼&XsfJ=D@m X;!gTQhr<zTV )|&."(#&BJ I %^70(+2H"U+6Hl P+pPT5k8>WtW=tx/`{pX2t@i"b ΀Nr= afCbWx2i0 JʣiYIWrBARHd'Y#ɟ+(D 4C PRH4&-Pn$Nfҍe>t' = DUz^d(PisUт(3YtQ8nS h`s;X B{_p.PDCF|Y#/>գ K%UiqUPҦޓJd3 3*S!i`h;x8 C3#sL ɈiGz@r#"48yV$Yv̍ CFa G" qTIHgz\P%fK84s8E 1d B`@+!C&[zr?*C=˽]񕵕V̈!Y @ !'z9hmdcV a[ByG(-s+ "Ȓ < *,AmA찬p@WsPQid3K " nednzgl˫+r1 Ht#"!A#u l>\p_PfΉHrȜ s,%a] cK "ir38̤ K:*#N)jE8 [f^O%;=RS`$[mM#m.  AX⺢/8$AJlCDkض4H?/4jhbS4DCC9emZaȕi6aޒ%"V vO-j4o*,L7#'ftvf6YcytN%;(I>dJ?2xDۯv!(ܗ$]$qKƚ i猂KҐJ,(:5 tBn"%6ʆ 8*&jRtY N6.[LIǖJ2r D6zfMw^`VHܖ;j>Z@dw٥5]V%bZa05&49LˋaAˑ}Φ8@`T5C3D8lmaU}_zh ek2:DL +:mG*&&砭VR WX'.suȬz+I$j|[5jU\(vH8"[pV[\|]ުa!cv5ylt&aQhqB.)ZSJh43H"r\fUz[I{VglCuA-$oIzY,x(ҫmEqz>زx$t((=3@=ƄcogA]Q[ ʥ.,j;N]Cxcaы~&jЌKI/ ԩCJ[;x=u|\akڔ7%'4@lp]pEB^ sSK@;%J^kPk]xX.KE4xjHQ E7MDY~=G'ćU< Y@Yc]qM`Enb0B;HY3RD[BBfZjbq52IK|/ Xh|QR=2Z.Y@8;'X+#˃7 -F+= ;RB25ѩSa%p X„xʪ&$Z] ^u-, ܛ5`Ā,_ȩo,'W@t'!j#j1;!`TE")jXΎ a) 6ڜ] `ZS9bJD2bF u^ h1K}_UN9'{3=C;NSW5EYM7=G ńeŶgyt)B&?6qaHeـĀ_Iꚙs/<1#P*̃\!~G$:Ah#Rx#b:\%#)C(; b*IKGJ)_JXLv =.D'-U:~SPPhoi5#\VgNb kMTc  BN"we>zPB3!PL0R-(.RtKXU0O "\RKHl>Q&9?'ݵ\1㠅Дȃd03l,.]AD @ֻeS@ C79N5<h(y/_  Lf5`M 4ϤSD ]]Dx $')#5v{P6 CLJQIGQӑId8VTȒ#hfKϐ!V[n}ȵ{rXk B`D֖ѐ#f藑g#d8XB'4%ZX+zLFZ)" B3 6ۑMB(6Y2γcYSޚ:f4S5FV̟ \|wޜ-P75v\_7'zXAjF;@;Or{m'mDƚ1n%c7^O lQ5,b lF--EIkg۱ Y [P'.i$T%k%BL˺; @;})IkH#W9.aObz,TBfXc3tn:[fOtXE.wU6Z2t;(>}M;xefw<7|o'+?<2;ցA,r@#nj59_^ewsMG49V,$`)0\|EۣHAx &}r$*vF),K{Y@iV&˕D@0jZr9ʣ <_Z薆&n! `.:$τÀ4&$ Jw@ о~q5/w߹PXbqhNt% @4 @2@j0!* :Hg~`eXWLO A`=!(t}'ONsԑO&3*v` I D*ixPޔt!w_x~KFDtu/t㬶#0iQWgX_ k',ٮ"7tFG)l{=&u 0I 4_ !? /j9pMKНGoM[CFIJ̹Ļր=OM Y_@== ŕtut|~N~ŌRO3#?'x&IKCI}J.R 7HYup*vI?&(9:JѤ (n %X }A^ /V*Np>zk2#Ik3+8ؚIA73D]^돵+]eeQ&M%1eA5 S蠌u(F~854xu9bNx}H y$x> 4j&^Z86jnD/c['߰}Fv1-o^ t 4"Xb%A`@)B <:oa P*?ȼh>DF,aM,iAxaCDC[ ৖ 1z ވ,a0(2K5I.Hؠ ; ` 0ŌP h`` xb@XRM8?AAGSa7EUqvu^KA=u/kaa\J$L/ƴt!rh)?vt^DLA,x& l/4<#!E%>]'9OHOle%`h"r :.&/ih,p!(l G]Σ I)F^ !KI0 !V*+c|X'9PB~*(!=޿>LP 72?mAٲ&a]3% %( +FM.H'ITxT7}mǂ 81'4&>`h/DܛmA6K85z$IB16ZO~Oqt¨Uxk dݗ~TMzƊC%O6%m&Hw)rZM6fB @ceR8#H"AB!FըDX#p,!3=awRHX) ]JO40ESYiŘ>Ɗ7/ !0:ȀCBR0p=)[ijS& JL!*֐YnЃӞ4 Ӵ#ĀD: j^pnDIV|HÆφ5:k*$[% 9 K{(Nլn/ON CuLyw&P֑ ϵ&/ [_`C oӛWD2h{oFh"<A[2xB02CFDA 6}OޒmK(Dp&$" N K,@(( &&t0'GEo[H>6ڭͪyp e‘Z~$zݿN5(#F͠ #$Uu:~:0T1#+iȍ:z]v.TLlVLsz&f$b2Nj][XEd<(A.}a4He$KQi!G `.! }#'{\M.T!_2L=̂-J3ɉ1:F} S +@ቐ3EdLQyΚ* W=/&& ByGM9ӾE94-2}D0i6 /ѩMDpD2fK/|b/ދxVraXQ|u4y*7T CXTkocv3hP1N>@i-rDr2 qiDX0}4U 6_0D%Q0 A$ dr4K 2{ ފ#P(5莢^)tKԏꉃ<݄P:8? u=lݩwQ쮊' KJx@|U[XvvR8x;=X(Е4Kmi9 2zz8@~ah+[y;D.Cj%@ȖI16WKz$ O iM 'ɺ ϰJ٫!2>_a$jW ^KZc@>ےLM%z%|ĥ~"-gt;1)CFQ(,Z{m[2-{$.MJ']AI@;-, xL-!H̢b"X!Dp1h1EL 2Kҩ4GpzG[Lͨ. D#bJ LO&q~І Qh/K̐I!ŤϒbƬf}8Χaf󸛞/2LpK.}$h}?#J-*|[)x84{qgY7+&ib{ ;ʜurF %5d$4ˋFP"V*2R1Hi-ĆoaFMM%ёc`U22ip'\)hB ډjFcSc|<Y C(˓z#kk3)&a&%jq.#0,fg4;m\4`?HFt@'xK)e!u&?'7|~?qxw.$*sAeD7#P|XCG-~0br`sm!:!:&Y!xVLH31R60n 5. XPO,0 G2IU2^_.L 8^[Z/ˆ[/ <.S7 ˹]n\8p欖*/Hs8k⣨M4b \LJ~2ߨbPy->Du0 /l iQdIQ4lv J1m # u3#"=\i ?A z%1iC-F#FP >.H>U c)Íy$Xϑœʡ&:L]kߥ1w EbF;^04I ON3"P 1Dn79. `]AR#bX{J!=nc$puqj'R1(k_Mi4( փZCxQzf쾑vCAxfYjc< e5&rYiCR>a-.jU )Npcf.>ivǡZolb`.a8RFHD!±E.a`bM? Al/ !&,lk(']>iG&4fVG˜"S zIކ3D!8u'3XtB#UGBL`ua,  x1$G C p2&@܁<`UAZAPC '\ > NLzO`ԩ4p(A U hk+#ouPE\H CX`tI8ae()rP]b&*Nw , 8?  J $$k2d&/Z U6bx#g=E$=J>}xU'PcQ@'V**i-Q- `R0jDDJIlO!M ȢC|x& CLHF  ZHcZYbvQShWQ !%Wo" r5QL<eY95RTG11 CYc"䲌ܛÛPV%igŒTy4LCFS. `* ]TRކȖ@%VBhPb$0SK< C!ȵJdDkU-e$7a] \jHɘu S)@qPCnѰ* 10"FA9K*ǂ)C:jYbjxCR7d4^6aȼ\.yR!I e-u78!Q-Tp( t`!.ct"/ UtN Lnff:bJ]Џdc}ay5EOAZ :Deυ_,)s-|ٔdP Ky/}zbC\bQ*+)nByFű`Bz[LV 1LsУ0,aB2\d% KSԴC)j^s 3-#D/ !Cp,_om}h0mp"0JrY C,`6WS}mCMsCg*U)YB2!%Z nFQ RFfI=Փ|]$aVVB oHBC8>$, $U ->m,"pCIĊj=UDB]d&Vmm C嶐An蒆^d %qE5Q@,u`)%Uԝ8Ba1,N̤zUCX|%DN dy)?gϨkk ̻fxsUX< B(&\1(EGSh 97ntA X"}q<e9u Bƛ$+g}`d+Mt8ڂ6f;:-U3ёJBJqUH͢6Y0*+&JL\l֋4\bS5D448djqWHUW}v$zWhܙ{CFE$"LFZ :4++m-*i3i Y)anW$df;&wN8=t5udȼa#-&%hhilmm4m6\n"Sګ+65XmHv Zb)Za;5n$2q&Vxiģ4"2E6QmhLeFMKDmjFNP6r9挹 cqZ]՚V%gLR*W 괪men[Y4zT &S`S4SC4;LDi}eiumYiaIMZ0dt5( ɣ[֔/CEcNXCwdnUgecc*m3MH+ )[YO` J:yem9Nk+M%PO)ʖV `ɤ?iC+U*T@Yeme"ڍiDoj16͋-65K@W XnFuz+n&Y6 1|T7Ƽ.MЖѵ7ApHN;U-87ۖm5pŝ!{GDG[pζW=9obd5CTDI$DQu`maz!ey[%bG8eP@(W>޸LPqlQ~HB9l-Jn{bDN*#& \ؾ[5HCCB5% E\ص\bf )VM]ʶKq!Z "I3q!duB8ewnM=CT Kg^Z?TT(b/xePeJ!*HE(*H "Kf}ǢE{14j:Z<ZC#5+gHng 0`c5EUDI$$I^u} (b)hirɒ!Q4S;Wt4]e;#ujj0-KW%`VW-t0vJ a8p5VU@o85$.ŋCxT)쯔(7R4[ɐjybH9.b%ھx|o j[tP$5sjE4rε[6T9g,R \) v詎#gD''kQ(HtJT(ƹM y jG"`?-ӟwlK5-GBe<` }DU`BRu)&--' P8Ĕ5 *sY CL pڬ ۉsӍ#̔ L"]Ȣp JT)ꪡYQ5NleO<Ʒ,#&{S CYf Bտ9f/ZtD%+U 2ŝQ]:ڙ^@R̪!Et C\c1:r]lJKkQ%l%\ GfTQ TJ>BìMwBbQ ia.}"%=+B[=JK) (pjéDéήjg}RvbƵ43*LXHVRKPst`B{`*'z8uI4 Chv6K!i-EZqԅE&}'iwBWKA2r ]M7+dN^6.ئ=p1(W>& 2qX@9 h_%9>ŗ5) ߏlD`6+,0907Ō18jn(u 8*rgE Y+ IhB3Q!^-f%" L( C(ozk;:蔈R̃S o|hJ(B@HO@2n7&Pi0M! A%{6c@($Sq%$)芄ܺ$12Ĭ%%o~G*s}$ۀ{=n?hH~tY4POeNZxo}&/0fY j 8G,T ^<*]IKHSr趡2dK /7DpJj e o=;_EKK6i3%>v(W&fN%͈P 4 Wz%3 ı #,n%ШڀetEb4C*Z GBI^ Q>,ikB1>GqQ1c,P @~ NsR ǡgM ݼ jǟ}3q=&.8uC o-^.vlx³e^HB~Kk=!TG hΑAH!@{+6xbLz(*!c *1TG =|03y?6#nP(S ѴB&!j µ YiR(/{x)#` &cdR %LJFs^TP@#j*[@L25\Y+S4Z$ 0WQ5n=g{ ,^R{{7pJ̅ U~| ey[М] TD z E ɒ %r<4 !p r Daٝ!`mZDA?sOg"zyiQ{+_6(m3kD"#*9mIFBdɆS% :Q-Ȫ]ʐ- ;( ?jFd!y젦-}ǻX}؈1Dl/7PI0^ͻ8Uj> 1nP^|n]{=yN?%wSZQ YJ 9;sGj+nWog̸oSj#Ha}Ōw$# +EEA k߿^2,mG3o\[E]Ae'pF~?pjM&E*+ ٪Oj % OhȔrKr>%JM*BQfb9UJQM`U' *v]XҨEMyꉈTaHyq:Jԯ $&=TJؙ7Dn)ot'OZs^Nv%mp 5Hڥ'ԯYF@ "v*a/z3փd79`W [kX&sסd 6͠D+]z .3ԁm@zQ0bd$=/{pI%BC/5ǖy$~`ԗQi+t˞mOua&oK " ߻S:UYjK&yUzaQ2;PTKfYlG0О,j)z:,>Fd˕C8 !{wdxDDLBR4f͎70 &M|'PbG< deorf*$#( AXn1, ~Z90!|!m@1GJ{-,r CJn?ZFKb.DVt$ Iz,4$ 7_"ך7J,"l$"Ρ1R#1e *+_PGbLx?3I`#t@x4Olh68{o٘sѓQSwh!҄>f9|안u OH! dw8%P wR0dgF'FB7vsѭ$POs|:@6?ͬu߫"mz`=z#%-&oDWP :MЙ:PtyBUw&LeB}5PN$@.` ch^ VʅUi4&j`0A g`vzUm<$ zm%oQ.L̀ K} c):6Pľ6N E<ҦГXҭj7~h}g. f;CRr2||`$zewﮆME궖'M($E:l8gPg:+S]3k} ~ &WABsЩjm=*8b]taU"qW3'Μ%:ϡ6P3Bf@bIIQt3%R0gt"7I.[Bn˰ ;Ӯ<2_DPXh]hgwB7\ҦЎ"ԩZٳ( ;"yȃ q}+K"ԃ3MAgT%52%fe +RyY#wq-:j='7t#~1}zO"*3  +Z  l}S(F&䛇NXN|DΉ \_;im't"İ͹kt\Lޗ +LSOnymzzԡ{\,$ܓH)= ,/o.*GZQQ<>+V<JPjcGsYH{/)蕁~8ٰ1)ـv8.2 n;ШJ <%= rE #ndlzp 8%/ռ531-e(~; *`ZF``h1~I}{;:]=iQ ?t- N {U‰q F-LTuoEK)i5&5"0 FP`=r…T1'h{?3rJ `LEwP @7@>}^ B(lFh~ۺDCuP '65=nsAbbKP |^Q><7 .Ö9~.ADa 2 3MqGQj%u#]@4D"##RWIDI%j>Y t=Q{Za2'F>ɨ%i\U¨~9ԙ"vp:D OǴ}*M&2b>Lh9ETu$30٠7瑓#GtE ^'c D-*LdZ!p҃K(5m&gp&%?pv&+; LB!`#}g܅D4;㬐z`DӋdX?ҋiyہ6@tlPbtfSB8 ( "~rhHJ b䌌zLM!L(C#!$o~9xEtTț5(J?V@0 8a('% 0|LHP׀b]8.L)ίfI &Ǔ2W~!LA 8a)#CfEDR $BAI-!%,"~`%f1b`ˉ!e&  '>})&| \#hN 9 II%ȅݽzˉ2h`TT"v&#󟨊,,acJAŀR5 ? "X F O_O#j>UH1.Su*ΐO# ~DJckhA 7 I|[PDعZ9b4(A (20`&|_HE u% oA'@c |[ѯ$ XnL n=atHPEPΖ(1!I>#ݚiPR0č=I-VQ@#t$lcG]8v4h +rPPY7  C7 kr\EK`h‹B\L74K-TT$(Y Ш4@2%5>! `.DubDU@&q7!"Jy#_o(1<d> n>MFT:03$7?k.(k /LǿL!L/  $5/.T+ @LRX6̉P sJ)@:I+''3-9>:`3I V,|ZH13ԨH嗢nC>Rm/J&- QjJJWd@ku*ې18RT+G@8M(~@g>HhiEhiP\ef@iV z̲ Ҋ#&L&h1Oڂb-B-gQSqyQ"8( ]+P2BVҥЦ(#+)hPI\F& 0a43:7͢,5} Q̀NEB)# bak̘JOiQ]?ne7DpLXK03ܑpwA/a^o@r~p &:M1[SDѼMJ2bǙ/5*Cjy1ON,ԮԸ  TNzG-Cpč:>Aic.2yovɒ: :vQTU 0lPf̒'p;{yҴ *&3}n4F ]1ll4$wᛴCH/@00CW! 츆c*˜fhhcrWU4%.HU 4x5:h vZUS0% h4&z$n  I[|?p9% 8D4|b yn#3o3h,! woDa#ƏZO|>*.{BWI(V~Ӏ 2ܺ4Uam5̒wm%8|Y)8v1A! ߀G"dH&0*FL(1nHD_V T&@A PWBψANۯ1(̀vέDpW"`O%JdsD:? 5tFd V d#4Q4٥X?AO(DVts9d H (Eh e i2ot "{B[hL_%!@Pa[_ȵB};o+eXb( `8BJ Bs#cuD@xH5䤮[+V>!.M1cۛ, q#WrpSy{jXZ.D|׏s=/UQֵHW8y& pO$0fˀtMŌB ~05(':"TL]ARUNV&!hFNo5Wz kPɖ~bvj vZ`2s7sNQĠ8>!bgA`[U%Ԏ'7+25]etI,`0)r$=1N[( #!B#) uP8}~޴jP "Wu^@δDFoy J1P Vtؚe(!, !@ `.!νk`jLa*Pa*Y TC Y5iR" BhB{k!=$0 SaX a(J2Ÿi41q%|@1@W>JW# B % ` 0 i d % td21aw)]%n$~򆊀.(D0F2^'&3ďARL-> M-( }#CpNg@҃p)-5)ᅝ;$Zu;Ь 1i@tV/s`Wz/L&p!nt y|bʡ8 zH\L"ߨKRoy@J*= G¢Hj3쎔N[ɥuUP I%,"̀XocיHHj zx}*>?T0>:34%Lj(>B4n0 H@*B a+di>!Z^rQ(38z 6,B0`^,7/tm^^ !R̢3XTCRr*\Q$$  g7#9?C&!9!a3ћa}u@sPM:;yQ7,߷GB҄&JGJ7#jJmrJ`P I+IN*5"bjX902hÞ_ɚZI/K,0KD1{J]L x2);k"[AY:Wzp*{bڱb8Ȕf} o~.1 ClBHCâ| O,6 CP HHC?dCJZ!иj˗ 64a(!>!]GL[Apf<yXypLu,\aًb*ϯu){Њ'4j>,G en /T łIOpSq\Ժ\+)d.szfR> ,3(d| Mj#ofQP\2 aeуC;]׼Z`DE؆=GG\(tR*PT Ʌ ncwD!#M!䥮 CBO&FyOXyq+,0_(Ka82Bz5B5wc(ZƅtJQ)Ja+#񩗪 `{%#PZ!P(n-hah\0qhC lӮK'+/' ZJ䒻W"pZ ("}P4UG@0Œ+|NM6LԘ5.Ϧ4(JpNg2ːҮEƱ\ͤI[Ȋq ҨDm1a2gRtˀDɮkq-$hʢPPQB~uK9@+}5j&G1HktĦ"&Mr( @HDV8VP:j*CQH>7a =:ZX Х=5#*R~Mϸ:mzIjU3Bb jU ͒ʩ%Xk7A9Op0d&S$l.CB/Mc C~E.k!SG `.! HI*kI^]$\ĢJ&DȢP]d Kdc؊\hҨq t&.^HBffeONMDDg)D׿蒦 : }%?>D:(YoZ/2T Ci%>ڦcxOMl5`+ ĮJͮ)hA7R@|Ƿ}҇ThA@GzB2Dk(v3X 3[|+fai^\Iȷ3gm S8q9=ttw`A455髎Ͱ)~M 3YlC>rZnr]rI?`mOU 2϶ĔSU؆hfOV9 otd 3]&a>{:PV_BM'mE 3%&,.D (abw%٠*0#S5*Sd˕Nz23PsԹ>'//&ES, \5 G0R $55f`vONxTMsbh6RpϲWǠ]0cHF_'%*О]Vٷ@;~e&nmd!*}VFkޯc2J$vso a`԰F2醴ƲvX@.aZ#i `wk[e,3)b ihZi"R^@`` @3,X`ˑԊ*iiIjɺp&}|Gx2M=H:3>3M+KMT=vm@3}:E1 1-yWp2Ea2XH5PБχƖ{<#BԜ;~bŮRjBQIi} Dx#eZj#4%zÀ ;~EX $<("ڦxJ\j}Q KYPs_ ;~jzGGPa/jy*b+XF;.{  +[<HXE#%T"_$]WTOЊjY6Y +YxXP#9=' ]x:Xݷ`C2 *^jίkfXf6rhGj_$_>*rd10#Pd*$}%"HT"w9 ΫaA+ M`4m0B" Q̓.]#~eJ"Z .VwfyWW)"Г7@]BY`":NC 8Bǩ*M-hHiCJHHf cd|" 1# /M#y g6п6JDL$2tpDpP\d0Xc@q 81I+8͙*o=;Tz@j.fPX)3A"!ﳢpF`&"2 ()al'BD$p (g& ?b K'41 B+д BS> A#,2V>cG{ք =׼ZXgۀ̒akHkWc`G=`3"NIJy q40 `W %="|Y{1$j翢 $_̭p7F f}HG :OFa F`N`^5 +?H"%p?AĈZ: &l0@ FXګ%\L9*;f_w+16Ȁ$ I%# !f{ `.A W5/\7R5K3Waj9x [ ݫ`rCWhRw P]}IVP~ۇ{0%"^iiC၈apĀ;._I ?Ĥ3$o@C`=}24i7oh ?W@ CP+$c8gx̾y|e>+(i1>RK7x `  z # ܒa_fJ7E85P] W ˈJc$ ,Q&_<Aò[A gvC{ctBX$(5$kF7x07n7@a"BLH 5`<, ӿstz{ xUCcfP,R I8ޮ&$;12z~@Xu#o7, Cv? F)8<ߗP/K/СoHKHə|f5~N ́9g5;Kمw3'!u-e~'Y*9'% ?[F;DW $ iIɥJ"ԌBp@Tѹx;;&0*nF6% /b<K7V>K$U\L|ժ` D1y qryeB|. `:incA72 WRwD$Gy'HۀCN` MX$E Af'd'$@@US<N#dĵʣ0ņ@6ca(/IAGT[~3~*ɸ#HF7-v'DHaDaPwJ>ިTCV>hFC@I6en,Ѐ{ z@iA$f䘏:fK`L55=jO._5l4[ `< "xMl.P*#_ݛZX9u}_2)O`!U(a7S0*_9+PF+\)=vV"}-j ,w /~mz!p2v!Q4#N;CRW0)XO"g0%== LVbAI:,Alw L8 F)h Obpg9X0(- 8˝j^~m bB6 E2BWB3>_'0c`T'woOć%1'K;p\M v>?F$VN뫗C=7 "T#($&A,O(BFx{ް,77 ~p @}ZM&i1Ff7h3@nl ntܐ7 xݺժuvK`̿t&0r?&?A^ =:?ЌDx[ɨOL'kULP ԀC^SАv"XaI*k*=Lʂ8r!>8JdA- JBB `=H>zНF9$boBP7'А&UH^]dWo4 zu.m3Xλ 0fp\x#'kƒIK YcS/^]pT53 p%BCԜ *ILI8ݾ}Ѹ-mnަ@Lb)=Fw8ηNw5k=S#`>Rw)^-A 0@t>8|4 "BC#xX] vvrG1y8F ` ̗3;L&}W w"C( @|5%\&Д^Zvz?⬴+InTv;%twT[Л j70 ~S P&N<,yS)O1(cNT9(1?*Uh0[lUSΰНN@ӎGƤN`"<bms0 }| @GGv FjBOd2Ƥ28)%p"Bp@+~`8`7@4M+B0_K(qdބF@I=Gϐ(,րxGf`){8!U,OtzƯR7NOjۛ  Tķ}JjMdYMadBOo>441~gHN&! @ !Ƒ+@`T$DDU;D,Mzy߅iqd(y'PMqs]r,yvYX9cUf%P=sу$欐,|dJ2zwUiM+fl,_ӾAٱajD_AxIteyZTtELm:RxH>D5&e%5ϭ`vcDZ|ÊքAa[@B aɦu-!,uRJwU%tk!\4f*:x.%")`չ t!zme[/V1,,ӃXbd4DEDI#dʤE~q 9(lPc1+h3P nVh:U BG\B4䵦DHاB؅s'5lM" FD-RIr;<$Y!xӅq@0F܅9{Dl2Ѩ6}Xj"R0l F܅KH AJ,FQ2eM ZX2Rdm-z]]Yƍ) HCl-j¸rd})eT%/VI r7Hӗ57jKWHB|3".T`U4TDD9cd*M`vuסI&ƃoW%'5QWφw!FgQ b󋬙(eKǔ7i{i:)ȸVi_QW4c*&Avao)Di[R((u;LV{^黐xv71fiM",V6iݓ\i Ewi(YK`d{.CbsYVPLAƐ ZJF@ԷpmF%I,tNЪ#D!DIa+hJ-xdH#-v1hmbd4TTDI$$*Q8(a䞊9\gXeoWBVY o~GLj Ei)j!vhEHz2Fv&V euqLoޜҧ*x}Uw52F |CD ƣVG"-JLBvj,p<J F_GJl7A)CHw1k¨5Qe`WՋ,˲+ @uׯK Lyzo 4i mY.C!be5cDDK`Fz'b~^}Ydշ**b4 6WjE/0L9ǣZ' an:rE _)@k[SVf hJb3h6ńFD8FU^d6؊U%xQMؘYVȈ8rK,쎯2ܓN2 .5.kXs=B܆x\5hG -G9ޮֈRKSKmIm".3@6"M p/{N3+6J#WdR]4DlB`d5UTEK#  *W!q訒g(cz)m`Gw;o>gm`芝s9Z YiG!TDa`I]1渖HquwV[GqViPnLxOUexH6K j;ְ[*awuWgpdmmCcjM]aFErHeHIk B&6Oй ueX=7]]Yv$4 Qgdwh)`P7jF! ĕdwJmYYo^5L2h,g[uFYډyu6a}D%UB6bd5TUDI,@W9䢤-X[UqY%Mz$8*Y2! =:ɅjEMZ2$ыLf^THU\{'I!ڲCf3Wlytu[աCmsC;+ˣ54Q9|#KZl4YrY#f_sY'WOGbӜݲ pCwk]䧭SbTeV$/WA6x!*+Tλf ^ UKla!cׁ4Аj%Jز.*`T4EETK@g~~8d(d^iLY,6%k AdD1F6>{vP+L;6l@˚«'fDֺ/pzSO#4HMNjKPKd)X0#yKÏS,xXcOIh%/-4JtgWQY@" 2 Cs5nVw/- # # ۼY ZL&̖IQ1ʞþ2>n~:<"~CR#Kհw1#MȄ޼A(-ZOYpj"PҀ,S,CUow"@bd4TTEYb@ :g~ ~'W9`HbJ'%E8YTp0`Sp @|nj݉՞\ݱ-(0,tG}&dRτZ:ֶISBQfD&džᑿvTpgcxXXaZ+(ͺn(ۅ^~ܑR40٠Fqjg]P mZ 5@6]Damy/F#f?Y5"rteK9:aTd3䖎u!(b-]bMej G-a3.%dk%`T4DUSK$`Vz_dvG)9ihl\蔬1RKj6ln@ITI0N;:3`hP̹Z`܃RcUm`˻ְ֍La,jʲ;¥vEs-h*9UP;R2$]>ڑjD04qYk/kت wm#Tke&f{ͮ{|ʘfuKSHZ6n*)yzZʔ VB6vƱ; +LO.V;k~ F?QQ:ƒzJ#g8%t:{K=8Tji4,yh C U`#rʹkvsnڥ6mK5!i4L45\j}th\bڒKJC_ڡ驗_- l.R8Բ㴄3&^b`e5UTDY" ꪦfq"bXj袚2pLFIJo4D S'jdPhgH1EẢ,n.(:,*Ѫh֢84uԧ)\3 l2e Py3q4iVuEa $dh3 :hNjԻJp}h$h'\z.hWE[oET)0nC(=;Bƅn7MaGCeTEɚ\X,{E[%Q!.54N*ˡ2^<E]VVrjwnkc0`e5DETKc g H#:$z)uBHLCҮvC0@P)X3ő&(yi],YMNB@2ƍ<c \[UT5YM>dHi/%ĩ=/m5N2A_ aGh1f85Xf?}`d5TUU[) n%)bh䚪luN- yT[ %ǖ]Zē8i$V;b0JrUpCtfmdeHʸJFsYIqQut[,I`&hWoڑnU3q[XVhVVz% Y@du5Xr o\C5C16YeaRgc ख़5Fx87ėE)wݜR9H}VY!]dII^%U"S[eURhhQ+W#ZQ"d\iCabzFik:^!]bd5UEU[ h9fid9f+"cY/T_TF 0% *=\sMYT. 9AڥeR$xiňHI\Ӄ)UHi1988 TaitoALXLlLLLL O@@L'''@ $?`?L LCL׀` 8 ` J i` Ɂ ` i m`   / `Ɛ`B b !"!B!b!!!!!"""B"b""""L $70 p` ` `B #` `Эi`` ` )$70 P  `  `). )0͘) )`  )   i )8iJ)))=@=@?`? 0) i L8 )9)0 `````) ق0)HLs`0))H L8 ) )L[  `H)h  ` `) i` 胥7) 5) i` 8`7)0) i"` 8"8` ^7) +) i` 8`7)+) i  ` 8`  `` )  i{  i )  `}  `?#  @ @` NJ  k l ` NJ  k l `L7) F  CȘ)CKL1` +  "   @ @`  "     @@`аƐ`0&1)#8)-//!"#$'(+,)*#&&;;SSc{'/7?GOW_gow(8HXhxl ! u B Ԉmn` , V`; ; ;; ` ` 轤 轤轤 ܅`2   A    X  2  ! 舍 ` Ɛ`!b)ɰ)% L>ɰG'А ) Й+) NJ  2   2 /  ``#  @ @  )-1` щ 0`<===>?@A========>?@A===BDEFCCCDEFCCCDEFCCCDEFCCCDEF0'''0303'' Y y  !:!"9"Z/"z/"/"##Z Y y   ";";#;";#S(S)S*S+cnco{2{2A !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""""""""""""""""BDFHJLNPRTVbdfhjlnprtv "$&(*,.0246BDFHJLNPRTVbdfhjlnprtv "$&(*,.0246BDFHJLNPRTVbdfhjlnprtv؎8 )/]L͋i) ) ]i )/aLi) ) ai  )L;i) ) ei   )Lvi) ) iL`H)h`X`2  Y  ] a ei!i  e iiAi  i XX2 `o`2  p  t  pxi!i  x |iAi  | oo2 `bcdefg^_hijklm`a !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!""""""""""""""""""""""""""""""KLMNOPQRST KLMNOPQRST KLMNOPQRST           *)HE ) hGHIFE`F `HF$4`) }IᏝ%⏝&㏝5䏝6Gt$i4G؎ '7H`  AAA/?O_oX`hpxl       E `    "   #  ; `@  ΐ  ΐ  ΐ ΐߩ  B / `   i)i i`)`)` 2  2d2 `VL)ZА ) Й\)蹬   2  2  /  `#JfJfi       @֭1` `0(   9")==>?@A====>?@A====>?@A====>?@A==/<=>?@A==>?@A=B//<=>?@A==>?@A=B//C/ S ///C//C/// S /C//C////////////C//C////////////C//T============U//T============U/Ez"'8IvEfڕ (1BS (08    ( 0 8(08  (0 (0  ! "(#$% &('() *( ! "(#$% &('() *(77!+,-$./0$77!123$456$9:<==$ ;abcd a b'c/e7f?g?h"Gi!Gj)Ok$Ol,7m?g?h"Gi!Gj)On$Oo,Wp(Wq0_r,_s4gt/gu7ov2ow:Wx*Wy2_r,_s4gt/gu7oz2o{:w|7w}?~;C>FyNBJw:wB~;C>FyNBJRBJRJRZJRZJRJRZJRZJRZJRZKNLVMNNV OJPRQZRJSRTZUJVRWZ XJYRZZ[J\R]Z^J_R`Z @FANBVC^DFENFVG^HNIVJ^   @@@@@@@@@–ϖd$] d%FgdTUVWXX@YZZ[\]^__@^@ 33333|333/|/ / / 7 |7 77+x+++3x3333;x;;;;'t'|' '!'"'#/$t/%|/&/'/(/)7*t7+|7,7-7.7/?0t?1|?2?3?4?5'6t'7|'8'9':/;t/<|/=/>/?/@7At7B|7C7D7E7F?G|?H?I0K0L0K8M4R`hapbxcdhepfxghhipjxckhlpmxnohppqxcrhsxtupvxwxhy}#X~## }# ~#0#X0}#8~#(@#PH}#xH~#P#X}#`~#`#h}#hp~#@#}#~#h#0}#~##`}#~##}#8H h ` !"#$%&'()* L LL0@@ )  8 TLHH @hh`L LD8 鉶0 gL])ȱȱȘH ~h`H h`ң`8THH  ՠ Khh``ގއLކLIC<&&&&8L-8`J}(JJJJ)i}JJJJ))`hhLs 8i8  Ll .L L! L!} 죅L )) 0LG`݇LV)` @@`L``}}LL``)`) ```jjj))?` *ȱȱ`}}ii``  @`4@`` @@@`âĢm֢ޢâYââwNMui5W']6}hS@. xqke_ZUPLGC@<9520-*(&$"  ?ܺd #Egܺܺu1d ˩d!ܺvS!DDDFgϸ̺Fd ŶL)LDL@@@@ @`   ȱ Șe e L` )`  ɀ)ȱ ɀ5LL@@@@ @ @@@`e e `ȱ ȊH@hL:@0ާ{a; ՂׂՂׂՂׂՂׂՂׂՂׂՂׂՂ׀  GHCDGHCDGHCDGHCDGHCDGHCDGHCDGH        ()()()()()()()            x% " 8 P x x @ D x x%  X" (   v y@ z { |% h " H x x x x@  f  x p h ` X P H @ 8 0 (     56 569:@AGHPQUV_`kl_`UVPQGH@A56 ?؁km ()()()()()()()()()()()()XZb鲠Ķbg ? ? ???? !"#$@? ? ???? Ƭ ƬƬƬƬƬjڭA                                       !#!  !    & & * * & &   !#!  !    # # & & # #                  a                 00000000HH %``HH %'%%TT 20000000HH %``HH %'%%TTcӱC!"%"  !"%" k ''      !  !  ! ,i.*+&)%&"  .*+&)%&" . * + & ) % & "      r; !"!!&! !"!!!"!!&! "$&$"$)$ --------+)$&00--------+)$&00!"!!&! !"!!!"!!&! "$&$"$)$ --------+)$&00--------+)$&00 ʶ C# C#  C# C#  h $ ָ$     $   <<   $$                                                                     $.$'$."#$.%".*'#%#"$.%".##)$. # "%"$.#*$.%")$.%#$#%#%*%$.  $$"$.$#%$##$.$"&$$.)%)# $#).$$.#)%#$.#$.$$$ """$"$.$#$.#"$"$.#$ "%)$$" "$ "$#"#"&libextractor-1.3/src/plugins/testdata/gstreamer_sample_sorenson.mov0000644000175000017500000024073312021431245023067 00000000000000moovlmvhdBCX @4trak\tkhdzC @load$edtselst -mdia mdhdBCX :hdlrmhlrvideapplApple Video Media Handlerminfvmhd@9hdlrdhlralisappl@IApple Alias Data Handler$dinfdref alisRstblfstsdVSVQ1SVisHHSorenson Videostts<2stssLstscstsz<|DD``dlpDX,x@  h   L\x T <t(<`4l`@@hT8D`@<@dstco%S&.0=Kiq(57>;??@CA udtatrak\tkhdzC @$edtselst Cmdia mdhdBBV":hdlrmhlrsounapplApple Sound Media Handlerminfsmhd9hdlrdhlralisappl@IApple Alias Data Handler$dinfdref alislstblstsdtQDM2V"r@wave frmaQDM2$QDCAV"}rstts|stsc 0(0(0(0 ( stsz8stco '6a;7 .8s udtaudta MCPSMCPR-for Macintosh-5.0.0play WLO"namQuickTime Sample Movie'cpy Apple Computer, Inc. 2001 WLOC2freewide:mdatwidemdato %/e2L2_&d~/e2L2_&UU o %/e2L2_&d~/e2L2_&UU o& %/e2L2_&d~/e2L2_&UU $EF66:.TE[H]5JE(FXP#1o ;1S_Ab֤ PoPLra,2GFX`Lމ̑ɳb82G>6Jc3"A45+{PDegS4DD˒-KS*a.+ӔJ>(u{c~MX`1$,RD1G";있Ս /5h$Wp%.a%kƛy)WuLI&å$n 4&7W>cj`YBC$cM e}+A#B>Cq56Š- 0 ]0BuQŐYJIh&kO)5J+uy҇o ' 2qPd #B~=cQ)eJ*5kA4,h} \ UT!q~/\䐼_T> JFk )X+İ`دB$`r` @!]*_!HjLpgS'(0]6]ȯB8tʱK ^`u22Ј @_1T@* 6_uqJ7-rN JY@$~ kAjTte)a&h!mL O!E@OIJ:Xil.AY]&T"CDqX"DF"+8ZnHLg Tp'doC (0A&~*X`PEj _\Я]0 jH]{-,kX\P4`liqB"_Uw.p @tI%q02ș`,f,Fcl)n $f % H ]2tc(KNXxYk BB&dުEL=d^ wTa!J caҋPRTRb"6ئ P޻˳LpJ RKzncA8昗Li%J!6,-+T*(O?CƒmAҶ@rE $$H|b*`q o + 4a6!٘V/1C1CJ=*E# Bp$kk,*L7DDJc J[:d*X QI/XD&x TV %(HYL*'2@!qa5!&a8/΂BHHGs-s  *|xR$@ :P_05b0خL¸c-e@h K`jRK])S(,5+ڒ4SWkjj|6>/{K ZjA$Jb*Jz<#Mdg2/ҎF!Pд1 "T"Z,*HF=" PPa +@-/}o )*Tğ((mC(4EFХd LT:tA5f}UCk<4vrk<נ*F@MzHDƍ%m`rao2b)% HF0,'\Lh6JA!1 @&ˢUP θ@R_ T`}gXX7ED$Mv5Ǡim@" zOdDF w@JebhȀtP}5 K* K%PB6jD1߄j q#DAvb dD(PStD (D9Lo +51LA( 0 \0*X`Eܥl8E@c#:cIDJ~c#P`c"Ti?%ѥqS(@'yLUR&`sO @d0&)L@4 I0K 1^Ȧj_c!O0^\Vс"*Xb;@ k"'"Y.b?)`SRKvICgHe.TL#QY{b$@ (cFmRbئ>IW)^ȘZ bn(@O,2D@$8`4` !0U7J"V ? c]f, @(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((*J*J*J*J*J*J  @((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((4 n@ U@@"a " (> ^`ALML`J'qd @P%IRT%IRT%IRT%IRT%IRT%IRT @D܈68] NLzIamjdJ@7%*&Gag@x惊Bv C("i @}w@ "=o$•(ĿI@,$BOVT TJ;u@(ɶH@$@KS0!0@KH @?Jo ,ſBdVCaB>j| '_P ~d_&#=2#q50qBHc MҰH "?'F`ꬲt[cIڂ&"u @ЋXXJ]lR0n ^:2Iyp4PB4(i/^Ab QsaE$ۉT,vѼ _T9Бf/3-ndr cXvu\a7B[ԖF$ YЂ;%-.OD"i,1&!TOd"ꩢDMHu!eS+bXZ2 5Pp,8:48$ ;q"8o * 10 5/.2_ A10 qolǥZ5.I"ёF;In|hXD6U%נRU4,.E;5n&DR&h8$Q2d. SLJ.Ar<@ڐZI|gy0*\C8P,eMEk`|IAUE*@l!$>@]t_ wJDr5O*x٢ ΔDGZ M ,@1dq,AczK~[A8 c9x"`)U o -iܫqA  |4,>"Q+~A(A*Q[1j `)AQÕ"e0`9i`a> GgŐb)ť2dKiZ 8$cYC> hԐ@"M*A) +,@a ,6xZs@`1RՃl~pp>>b[{ Lfm/rABE )!ʦQӘ]O@E `M!,KF, *%$3$9H#12δ2=JkIr1Xx )'0H$N$KEIS&o .  PWɀ,䇁TC-~ ~} d|p-^Dٓ_ilB#C[8e*$Xٕ،@)L iEЂ:PD颸DK` I Z oXC@4+u B@`gC14PX= ǞB]-6-ar2<d~@Xh%qcP`RNd@TMPjSZ•ޒdF!BcTq%$L &E*`<?5BxQCH!  !X5^ G1eCHo - m 555 |tFHGL"dzi,wmlHRrca":xD".&LEDP/D*V2Շ TQK]&)bȐMBE&KD7`(G  [C]%a pSmé]9XEMa{s  xmA]PL XE& Jx@'')6IDJ^!1$U-x)/C2>`VA0e<$a K:,$%ꍊ bR>KBIi)@a` C*LbB*L o ,dRRAW3~T_e@b/@`'(@76_jE1Xd+rc; 4AdؘL7j "dG6)iBQ070́TXaR,p@։ԁY ROB@'0X !y M@ du)bB M:~$^096=DNih)&w`ܳ-]6@,(HAƵhy2NfLgiz#`ؖ(c I>*P7KtX$C.x!.^]K Ԑ>%҂'I3֔ @PcKf<*$IϰP9fɶeDEa$H(`TXArA92\כ!2Ab+?`A|%K((va?%lFVS/_ J?VnRw#9,i,B;7e7y$nGAlOie!>V"pD 2 -r "@}-&su % PB2TN##e AD3ئ#R 3 H/XyP !"q`0@h2C!Ѱƀ @$(-ai g($ł"HI)hل66ɢH |.b*L0]ϖ _lo0r, JN! VVA:FE Ϳ!jզSQ" A 99J`J;%*^*"d D"N8Ap"^D|D@Y*L om **(TP02 Gȇ@_PcA TBFFE]i,#dlOƦ:5oTWK޸&%JFI9 XMBU!%z @W4 2pj-նC Ib &Xۂ^á\b`$pPq~ 9*ZTH5x0 _a% @ E@ kH e"GXE CƳ ZW2 +H!"RiHވE@V}4^yr%'''PJ:i|'01$'4L< B:Dx'oh *A B|T0 cȯAA )@}5T_ ]a,ƎNxAXc"5ll¡tA 76H [ TZ$B\XULҕc(c`9j@Hb rfՙX P2D%^(q1TE1SWE &`Ooo'c0ERdM#b OH,QL BD$؇[XMƶ6oX2xA3VF4[R 8rH##Q$!-ĊRs2i$hu,diX2DT^ #QX ?1@m*}X $i@2 1V0N#^+v%?r @ȫA tc) p(<[m5@`~% F$@ upɽ85"O lX3 0.9@+W@T %ZdY!v C~@ c^ @UJ@sPt69 V!o a@5 *A %@ޟ,(HD@6ۀ}@f0@fp D`fQ%?=@PPW m ?EZV߀RQO@tȠL*>XiZb: l+ !ˆxk0€*&DKQ@!`ӓːQ0E  @( !, 0+!Yg!2Mk cЀ(@k ! `e@t,p6 QP2] v! bA@ː``ݪT_WVp@ ]QSISQR9ji>)_4;U}_ ! a}&8i. r @1Ř  _ !&l 0'H#8 ñ@XD Dhp% :&`1H*VA'C"J ]2D) ELl 4i ?хT^ڪSU  D&t*W  X L& 0WM@F`eD(T@!(\N"& NLtXDP Zi1!SSQSP( ]T t̟F}s~PEd Kbdm4 A8`'X@%  `M@]`0Fe2VrfBCAX N \Lx2` 06VI@`FjAH @ATI6E@נp -S8("ݵ^ #'8JIXX&U[jFt@V@" 7=vWҩM1ԸL 1oPsie@P@aj P"JA**` &*H&4˃CgdEQ@$ 77J@@ X A0! Z\QD*P8@1 70j@$5@pHED Hұ6/)6 `*U$tD  \"td+qpk|P;NS z8 bFR ( q7BbRx TdHU$p#]ȐK ʰ@!r gD!  դAI$ "R*jMh7/&3dꊓ X\HSR3HÈB(MpVR l@%E aZ554x4`'R L@ Y,HXPTUDgQ@Z8_4?\X@sR'a SN#DAh?\&_q ,DD .¤cZo - `22 @(ETHpTAT A0;XƮؘ1%ݔF~*P*DDeД$nC4NdWRX`b K "Iд/UPȔX|%=@ A rLeC@*>Y!culeqG]TŲjd+0',й-ohHfhU$x&\@8<$'zVDj2]A2qK 2KIc+&12  =  ѩd{#9 /gL,$q6`!Im"CPS 㾌1(%Go -|qȀq51@PpH|W!Z~J_MqoKc3 k)qI$TPD $<,{:$G ."tQ>eRy$y h"0*R, 9H~d)4*Dcfrj%V ԝqRk8a/CySTA X$ Rjj:dQW[_B`"&D<)Z 5O$ D>VGC%˻+Oer" pxq{ ZH  4` o92lh n*H5AU*$H}AHa0KH IGȨex" ט@$Ao *a B>Zjk5!#\U`U1A1+eq5v!VK楱 caJDCT*˒lr1>Q2Gu1JYmhi7^<AD$e* ˿Z*%D,dE P FK`:BfAۊ1\QQ)a 88 Qh@!`PE '@` " wJhL|UEyj$HMK" `]H#CD[[b =SM40 x(e""DƅEF)wX<,Cab 1TJ}C(_C2"F ( Ȃ)$ICHpQKM ZR:,"y_zިH A)}$ OQOOL @Cı!A"H0W:N$0 `A?OOב8 BD(]EҺ ?D0E?0J0$4&$baR p'M9mR0<0DxOި lCaQY$d"S"5HPQ}53 E-A2H)uv HKQ@A+u!55$=ڧB¢ N؀H )!!TF2Rx 13߼/D!RF&S@;Fh+d$q*Z "% a5X&HHљNHYoEF8",&JF0qbb.   ]E \Bb%`K1t`"dq6g M\`>_`ð}t($PH0n#,%ί,2%!SU"$#`b\$4 b 5QZ@KT1w8z-DD M `hRF!d? A$,ԕ}FR*:~P$@! "FIMPH"0N2H"L`S7-@`BfIr8F@ z(2B $Id(0pƉ)‚𼂣=bzf"GT]C:1`,BЁ1"`K0EHsB P$ ujp 5!%m@@k yQHʔ"DP! Lp0x#mI%wS -:!!xH#LTi_u>8 p!),DP) ,8qgGJT@"@P  gLb ߭GrZVrl6  %p_WT]R u"Tt`92IIHԟPF"H` &amZ`~kjc@$4 $(@MC@$4 J4 :(@@$kP'@M H Hh@H h@@N4Vjj5z^AP3anC @Dh8E;'*G UI쁕`0 PI7Brz4N` @E@9` +MɁ@ *HI,AQM`;B3+ju"qp rl@ ՐK.!GI MSEU`؁Y(+u%@qbG<82"=f<zJ'[Xgr 4VJSŒaAEdX " m4 <(T  EZzYP!`l2JW"'M!0Y6,0T@ !DV4<NH x"s44<C)a 3. !p8EjF5j(\t& H飯Q~'X 뒺: .@W;Cy"h" !Ĉ /Ai-\VA?. 3b057J(TUH G@3P;!7@s _&b(z?ETQ$ 4H_ 5LuxiqgdA2X.`? aP 1D@@ @cKk#kVT ETTܒ ra1LA"Q@Fw B^"@xK#" 4$HB (@^@$Tf$*T *"p QQQʀ hF&PowQu$ DT X4H*4 ĩ2h !‰X3!aA?BYڿXD-xdP xd x(8h .`-[!zzPT,(?Q2fQY#,B BÅn$X  /2*^H&DSJq0clj]Zb'J$LHvہp Q!L0s[0xUXY 7H p TSZ ? ,OWX d8+򞍥J624O =AQt}nhH " GX"H@Dg%j_R M "h12QWIHRop] .(a2RM޵{!L $yUFM& ,U4V# Rn_@ ( (,Ё(@9X`=SКpA$I=04h@P > P $A j PkT*5Muc@90=!> A,0=@$ @@z(@C&$ "A(@ w^VzjTVm57mWP#A@1A]E #fP@``B  @ b__8IƞlI 7mJ/p >*J ad("B5fg@""JH 0NFR| FL*Y@v9P[|L EQ%T1JĀVC"Ѐ,A#0A@ 6nSQH(&є&@ A*), @`U`= ̍+00qA"HKa)  Рhʊ*' &`X@L$2uWAl@ ,`4*L0@ y~ &P :$s PVԁ` Uk PXH {@8`_G& ^Ș1DÀ `RpzV.*S*@8Bv=P]3hnas Xo>J7` ,P4\0ȑjmD*Q@.H`Hf( - !:  7 L 01P_ $@j^@|TT5 Hhct@%Q h:HL@4pXbc0@`LH ha T e($1Pw9-~n0)(!^$$@oHCn$"+D!@]%)&ą"!uagzu P QFRj@W|q!O-X<婮""* C` =#@ $ dLcQJB Qj `x+ .HK><)bc!HH@L $BO$d-Q`Q!F"A3GT3fj9h@FrD։fdl8I #S5{$!A0' ( 'L` NStN #"  4P!Uh@%"`Rr%@שr$ 0@X$OҴpBCLQ H 8O<@P\ib!ED@A`( xC-?r`’)btt251!¤á4xҠJ`$D%)"B"` !(? `m׷.U.OFRp X2'aNuΚKSjz*df oo f%0(H$AX0PJ-ޑ[ J10v7A([*n&#+IH%2, P(1t~`^r8˰@ĕ+( Tʜ;Rd#L+5^SÌ8?HzOQ^2t{ޥH$a(11$," '% RH5' r[I5@FXH=[)m,@H  K[ jݾ1 0!cl"2 cL`fA H &"zߺ d/:{Tנ m7V$ !Lvk/5UT [CUd`X\hjTx"P0SCW}T _h4 U  P0/45j Xw5s$J_QSQR-uAF0a]Vu~5P.}@k, 0`<2m( `5X0HX0Xꪆ?]@j t 6 @r :~ k$`|,MU{;MTzWNV`G[UPW A9Ėn"q"h70@b$,PH1K`pC"X!@$9@@ E Gv,)zkV,a0``bUjڶUmU |К5j 2 VMAo h4P0 @(=mګU @,L88?oިUT?QիT, 46PG l( @E]H@RLh?5uCT5V*VPHpB8gۯHCH^ ` 4 B%* qݵ;j8,ۯEdCoQ>Uc[DSԲA*PT("Vвs8n™(J{E`"oV *| #_PPWQ}Rr/3Uf 3vOHd\%SR'0ITf$(PȘH@2P۹@ڸ (aօP`ʸXta@^ T$`4 =&ˡ$Z+l_RLY=u-@֓Hq! qC)IG,"9~T2H-y2H= 9hEċRƅ% %JՓ mz9)2 Kߠ"Z.cܓH ?"n3Aa!XD IGT'Nq/Do ,Hv1 !?(/zSaKiDP`VQÈq6瑱΍pi|]tr A"Mn\ D G-*P_p̩.izUe@&MBR$TSDhVť͡ɉ6\jL!IB.P䞰BVfk,lilq` R"khE"$I%kOHRr)ImhXZ]vHY2_"IWEB$ɓ:"$22"ǟhJ (>hbAˇ2TC+)r&9O68<e|@&r!\ V,AI"p)F$kJ0`o -|RP`%$㋇ 2!_U|#C _A4v,K&r N 6TE'*)4513O <`E/$ xjD($7hn)pIjRE(!e;TbG &ɰL+׏W/e4U3z:]Us7c $? (mV-$($ ,#PLSJR2Z *GDcUH@E D:X$Tg""=iTRi)DRJVZQ"DD&rA*1"7D@")f%ȆH Xot - @RPPt(/ Wġ@+/5vsO.> "Bm1M /RV W&yɅ)&R1xJ 5JCeD\)(=ҒOGT^h*h`d)B+ʡth؊a,:B% 8Bm@ˊRkac3ƚf5"2"<. '2@:"ؑ;ԆlTWRSòӳ,Imlvjb'UJ[Dr!;lPHT_ e@*(;b )@/D&%'   דDH"?a@,n!aaaaAA_~jB+B, @ApL@E)`nID b 48" @W pi>mX"B)10hC0B  A@x L)R$HB7F 1!C Z"!h  & 6$I""´zboS߼Q@xB9+X/lTE=Z*(& [ibQ$ 2@hU ;(qˆ0m`L;t#C@EAb`0!:0`2YSh2& .,@. Y0AP!v  41؏#xIRCRC0 AyLPH֓ҨlW*p,'AE! T:Ҫ#h&FGy$'% UR!gl6vd Y1p%,H@hB>8 T9-t,q]HKR:*B D@bT! 2&X%4#Rp4섀^>-*`zZP Ƅ2vPaQJ$i kt@Ȥ@:lL J$ o^2E&]E;A A 7 Z?Pj*l鐁H"LOG&(VT,#7Gt~@<) i #WZ>@Ra\3LiD@ 8a܃p&*a"0Z4($E'jafa~NuGW@"@" jA8<V$RP!I1@#  oV5N& f4Mbzp; 48A0Z73 a$y K(@1ru `0a#51e(aa@:FANM>e&Ik /Å;+a3`1i WdAFҀX̲Af/`F5] !AbCAW"(:BZQh$2/fn`! hOO~  GUԡ3` HQTH(H  p!<ÐU%9P BDb @ 8/U,7w uNwa`L%!IYT[M , -A D $B@ ɰ A*w]c {mᓈb>E9QG(" @~ Uxer\^HaH$r2(D ` rKE2Fq L32BH%L$@H4.Xm 6+G~C!PD.9 CD@J r-S+0ߵHs BRf6S\jj7̱o P8 MP@PpRYK/w2(CG $EH* /J8Hpߚ730b@%  X1{]č&|H}HAJ]T]uH  wl GSC$uߚPWx I GB$MY ԃƷuN#@\Cup4uov(CpDmbH?@;jڿ * _SVD Z0  Xm[UmZ!i \ ժ @ 09@4@ ~JjPP$ 2Qjuji%œt1^ڒz(*;Ua ZG @H@ `(xh@R<#  d#P*jn=Z )# );,0,:ppV/(!PUWQCP {UUCd$CuEUh(_J(ժa`poM^{íń 0t L(?@@"*("P "@E!<*W&$H {XbI𐄀!LT+ H@ g-Rz$Hıb3_Q}}|,=. IA G¿! )80D$AL11l ApIy@D0ݩts+aH0i" `H$a1R_x"&hw#Q$e@ --X2&YH!M\HhN"$%00 ($C) E H jST ߀ڑ?҄FB B 0` P[1?DD ?{ڵwj1 lDP($D81`CY MS=( +p o<ŀf .P2BL J ( E#@o;s h!ʠ&J(Pi`=GBM(@CT҃DDFQ jb _Ejin$W_ZmQnfxXME!պ@12  Hu7驐hRX|`uE؂r[h50ĎDu]\O M# Rv(dT "u@h "DԐB  H J&d4f0 H. mSB-X3ը` Vb04dd "QGQ@@|ѭԫt*"0$8JS'PsR5' b)$4bBmQ@D @BX) EN+й߷Fh8X8; C 2d9wjS*\äc}ZFK @ !)‚Ʉ9pYGN gTWt5@ @ԡ S Igd d@4̉&'B8T4 nb!ڻ`bDS0 $/P'5{ESDICaXb E,IX@! !`P!D 46%KShSXaĀp#*"Dp,0 C)($$_*+bHdat:d&BbEXQ (Z0X  B ;Eى/X! D?eaŠ;"E*_ 9T,a K4/(Q,Ae*m zXј0Bi+"gI%+[S5!ڙ5(=Q@#0TB%X |#Ȅ@S*y?O$3&y  & ; #a`ą%, T s@uH&Y'C"bl=c ,"ՀTPQd`D2Ӏ",@@b llD5K 0 ؏5An27ϷGhܩU at7zFŜ@&Wjv3S_xI ۙ ?kمE6Q6IB (j$2zN@*$Ppj€ dCh D @Q. ` OrU'C fa)efsEG`MյyH8&H>UR ڥV}t m5Q$rŒ. (5oW$"!`1G=. mԫ @;Pl.N)2mk 9s0!e@&HG7Ѱc@;[ PlJ `adc&N@qV,BA2%> ,@BEE41$ ݽ(@)5Ηi5JN/mӀ8l$H""f L!F $E |"&BP(Ii &&Dtu+5d< FC &($T\7ޥڞ=GTd7-yiڞԅAnk.  D&Q*`Nn T){3>",bTP# !"zK K80VH!ʥ 4 ]`JIF!MJD%_v4X&M&̓x"$@R ?sHT́bB&Q n/ M@@h0ֈ.X P@afCLHB" ^U 5q$HAB1woS@ Ʉ{nBD <(#ݡ +C'\:^r: F1er 1$ 0ZYȨd&#0)7ws%SYX3 (58K(@D؟u \ &B8\аN a@XBs0@Cl4ڦӀh31fz5"VoE~ f."( Tpr"DP <Xx#"8r`pP3*bzPjZR`mKThƯaw"J1u]It7:zH  x^4mA&&$^Î5xE` k20aDPe6R @灾nra$% mUZJ:~[U000: iTQ' G$F RU]H!#%@ 8H^D!o@H?V | \ }C'@K`wA`'*)-aYԚ8 zuBiJ2@ >ItU\A  C0rdP ^תZ$A4"YE:hN$)$H% ^Rj4-o _jj0= |{QKD҅d&R JDLA6Wc]DF0 )P$x. B!#U0 4 @½_q-D0H8~K$C0 dPfP pXTIH>+Rp$h JL5! QEHD!IHƒ_.LH`$U"Bddz44dTԍjj!Fk2L(&/@~G ~рf] "Ƞz " D)@(!T@M FP@t#)rgkm`C&,.!FM>#'8񠃢F&?p y4 `FF9*M D(  Nh{uCiT@+'XH6!" 92I4ڛdb$@ 1h"߰2nMZջ Un@P,ͭ2ZXDoZzzA^ڊTS)¥mN:fm^ U_Va,9d+US@&ѫj!`8A׻uMNPn`p@A?y2M uUj . թSOMV@G'y'! 9bQ)U4UOOH @@ 4thWba;mRJU2  WjUUKUzP #J1FcTr  '* QQp\2>i7Uj:|]UG^Q6jRPM j%B ( !l D@T(a@sSs?Sh( ݪksBhnI#tJݍ4dP?0ʈ.q=݀xS8wl,LıG$(@9I4obYz &b@a!`F8up `. GTpVPJlKC܃V7lE!!E HᮔPHS#$D[ ! <) u'm#)@ H&H IBCU('$o~j֩g ?3mA7 # 0`$eT 2t#[j,ACm@~I`Pp{!`Px0"TBTaC,T@EzAH(6& XG  (@`DgZHZ PT`  l2Dr5'߿|\m(Zk"L&`C@^Bg`"H }"Lh ("RP,A@@T(SB"T@$DBD0H=(:GPBɱ~AvA|` :4!uXB Ӏ` /eKJ"&Q-w H!kI0^b"3m6D̿u б4@@\0uH  7AXP7@K) A!aju+ Mybj>DpH"AD Dښ 3&KؼK*6THJc y3HKZ4 qaIā@/[0ZyĸXJ>O 7b @T.@ I0GYXߪq.@eB qd,dA*XAM-P$-W4~iڤ񽦖go`X^@4E[BUh IXY׷vD؉h GAKL:?{d1),` Bf&BCBB(9 % U@ mT*U*Λh]:@A! PyڥQ @-LtlDUGmS]ոW VJ 8 3Aܙ 1"8fn\(/ۈިFd!B HX(h,x}= HEYD`,LHߦvnU}W p B@#YWS >%Ba H0jƒLB)FS6tW5Hd |5MGq@K_bĨ Q(&foLWp à @.@PA 0$bDnFh?[IQɅP0: rXD$(̺A 8|P ,+_0I !"tR t (^D'R#E $q^@*֏v8i4 QG[1`u@ a¿!Z*O"DaA$N4%BcMM  P$2 CERz)_HXTL M&P1!o"HAhB6_m߼ {oa"&f" Õ(: 1qFoh (EA P:D_5D7Q`%( F" @iC$LYt|0^\ 0!72_Vaؠ(  AT KM24@& aF8B"!+krT`Je`.P'@ qDI"  .w/T<AJAA έOP)r Ft8a4$$/``?M,#C4F ( #7nՄCs5Xdkl!iD!R  +ۡRCjP;݈cjuiKH"Tz@qa72TT&.ME&jO  ꊶ 7P@ Y _}=?SD_ZT)Hlzj T+ `ߵBZT麵R h [T+CSE6A"`jSW `xA7T~F;jKԿԖ-IjuJP[ 0T-Zdd8;BYRjBUMV4" KTZ 2Z*B# & zkjjNma_Gڡ7uKjzra!؂Ojj9 IREj)Qզ>HڭRHHq nR5BPOSq(I}}OtD0 lTjk5Ib"eꮑUZ. 4rMڂ|Q=@dFH& Hq0M~Qĭ(]Çw*!&4ti,@I)0l@! dDLL `bžX$(?{}ИH D CBoI:`nX y wB $]hB@N@"np,ؠA}pxX Br !X H aA_BS@ VPAD HMC!@Mq@aB?xI@ ` 63 λ^v&@Ș"x rX08 4Q0B U,5~\a!%hD4@P$HF C!@@/ 9߾0*t8K{!qFbK;{4zgH"dYlXȱDdqAFPEMQIM)")GG@`$( c ?CF S6$ D4Em裂?HHfMuWR J=mVԜ 4EIT`N@^!@!LJt$@SM wU$UctĀDodFd̘@%I ZXe@"iV@Aup@D4&,9~CsTL=P>̀4@BQ[aa& 4E܍. CGic6$Eɐ.Oӥ0!";8sٛRҾx1d 2)~@e\ d~"8ER; \(D !Ɍeu%SS Xܚ]HT  "&ЌGhP]]u  vMr2KyH(QP  `€u<A1 k|`-5扭I" U:Kल@~Q*`2`1 I@h2H8 AFm] f`rr=yR5ǨGlÑ{~L! WG48@ Qp~wvoB 7HHh%WZԈX*2 hK, }!gLň EB%&9"h1K7R|Tp(nDBnx0(APspPP %~h}~| qC  fV0횚 R`/AI&`$@ 'T2P> @2>nΦ}2a 4*C)pT#2 Кu&*5iÈ91Q z$@'V@&$,kK M pH=qSU"PH ؏8(`qpP)IHQ3eA3Sw 4uyCSC^] L"ѓp $+I3VTS`x@G!E@1qXJ" 3 F+"nH8B*>XADCЦ0L@ I  $@H kELHCRB`]oY(֢ Df@F4HJ@ 0M@`ȉPVa  ` __Z2De@PAS0"'Ft,*cjR"BB < X:!x"6A CB045J8\1=E(G4(dD :GDԄK_Xc?ݫ/"Q@@ 2`0C.)!Q0 H܃OF tQF g` !P@\rP1S I@7@ ('C BϿ"N <a` ¨y P u=$= X i#FP1H)k[*f.Oa_O8Fb4m @Pԥv8/ RU_I(n "}, He$EA7.SP@Uzީ,U;PЀ  ܣ@@IM!@L ??,AB &$>}DHP!A &l⫫T+9WHpH PpړmNCuY0s (&_J%M_UM d@MxPj~ ꚵ%[EACTUi$$0RjjWm 7OPw}M_I=N \DYjENXgu 8l$FN@Z4JrrF3W2E 욐)CPP*X((ܤ Eࠤ0 i9L4]Gt 0fa&ԏ=E}/ Â4?&f'bE5Kzzb ^CΠ29j:!RBDŒ+.iwzWpV}<ڲ Bx/螓Ete&Bڝ<m +cZiҍ%sm( 1Zkz* "UT>T;BEC!AQKBjرф138p9pJ1 j BX"&$My")`0PXÁb3Xmщ 7) `ׁ(!$,pbPg@=HŽ )R0^CJ _w Fl%X6mA/N#î@` "5!p $ ?x1H=  г 8_BAtL ;DG t"B Dl.m"EVD |u@  C`,!*ARp28Q^tD-& !e04Q`y-'"BRe&JOF!$cT@@X% 18Yqg"a(j8EHBnq ؀/o(I (  L_+(h{M 0 ) D@ 5~3 f=zF "8-Fjr`p! MSsfq@=$ꪪA:5Vc]2 T8@jn tqp=!2Jm$&yDDq6 M$6FɆ! BzP D&r fz-;D ڟ}*V#D@mY yH 4P" ̹%ᇆ " @$R6`y F,-q$ACI/[UjQR&w !Hf$n}j'Oz]7ԙ΃7~FD#\8HMJl q;&$8dDvwjR@"i `RA IQfbR2\TS*FFu>5FH 35s@ 9t6bxy(B&{턇@U`""$9DLR4\g}݈GĀ%#-JVG$to{v:@)""`b4*]QO&T0 Ԗb`yye۷J3Tu?Tu) -9r;0JОL338Kw"f 'Q$dx]Uj 3jۻ&DBMY &y@BdK]m8oPwjp|q)r RȘ!UJY1 Q G0q4MT {b9B A (1) RI/_"!$` S9ıg p5–R,`.N$!Հb؎B(| (b vKwD8EH@@^s&`-dwUbj~A,Ai0p}'B A!8izq "Tш#;d1}0 7QL3"DJj:BU$ & *ꚟTb SUhI HD 5C ,8C~K<;nhp*.$(ĔHS&$8$HFIlDbz_p Ն(:JcH  0@u pؼ˦1/4ap")U *Bg`vâצ`p'KK.I Hͱ -JSWK TP̈́p+%'jQ 8p iZCt} !—! $a#NesC2DGJw T|HPHDM}6TSh!*ك`#<)43 0R,ܵ%xnjgJF  @t2#8b ~ M!)כ]AaGJa$:@$ 7FA:"#8 y!HBOSLɅ 15L'u$A!!PV ,#-!6 eM/ 0vn;($V}c X @x ˰Ia6Ab K +2$1acf|*,!!gYp R$ > Nf%#=.F4"8!SpRLi"@wRUK&jN7H( oS}#,2 3]۪4d8($$iotŽ]"^dݫ h."gSI_ΩB׻݊"a@q0DwXj䳍9鋀-Q<&J`*G `W߸L'h@I(qfLE}<M3 E<<'o߈`@SPAADPRQ ($+ %;,YAs G :@-poz ) (_C  j|U+kRA /L7ŵX?ee}bʇʅ ,Ʃ 3I'AI'nh$-rAR/0>"6%STif9K"2""a&bJW%QoL! n* kRFB:GP&&<C`W櫘lx-rol2"E*SRԑ4ҦDI:"Z@˓Nn*@G%ťmV  MoZ "MJAr4#'82 gZ~ N@z t "M1"=Dek#2H0ضD2OH,'X'Vo .ɳF|EB~|ˈ|) `1|rVP@Aq7Ƶ4~8u4 rnlf ȸV LS)Wc=2;!REL , *L{ T{.TB Eڬ+/U70 -]GSc~DsPW=aUmiq)02 鐠ExndH' NУtt^)SS)E27A{^6:K-UTd=#yG(S'e$AKEX(Ag-"I3H7.3 / dNHo' , CjB~}nFCn |, |*P <(pvIj7ll&O.iLT]0D`1SWアB9d19D^+݄=ť lj3agS[] $=+L P>TiCbL]d-a&c<%mžB JWk%sil/ {ҦoHp,t)M^# mّlA࠱I`]"Scs!LJ*[)oY]PZGKm 3c @< Ndqx0V҄ po ,5D 6 H || T24 ~z@2q7ǵIei\]JMS$..T(NɪDph^Ao< j I.'.\؀a>A݃=rP 0T&F V Hz\*`X%U!u8L~"$pEIyԆ<2 H#@r T-IB9)")$+* RYAe:G \7riSD ZPJH\D{X2ĕBjJ$PJR=ȢzB DX@ Y"BČQGR!*ΐo , EkbB!|O| m'(DFFB0/(x/7܀q-(,ׄq7J!¡\1i1ZP"D@X@0$"3" +[%rK_JK&c6dfr"dIw/ ť*Q7S]I 騦"D j+ ɘ[2h1}m_RЪzX]+jn uӋ2 x@# =㳤5,$R.@&'*HӅ! HGySR)7C7`0&A6GdECE鴀THFkUTYCpS 8Np4*D@B"u *O &`қ1y@8d@ ;߿I 2 L 0@X\ bH!2U8Em:8 5 B(@M0%q,dD dO 7 '<X]Z  Zʌ b >K~lhB & 4 Aa ]2 V :`} Ad@8Pp61@Nhp@FRP"GFH@]0%1/<ذJ ~<%~7iÓ0"0Eu546f9mUQ F{UWUTTso'f7x%@\B{1Bc4!&$ ##K7۶`"`r dBjד.owMcHc # * % @8鸀WQ?"ĄH{&aB&J3Yn#)!~G ,)!;vi `"*`dljxQdpM+g`*AP0Mpxh:NB3{3yL!Oo g*@u$ Ȍ (H$-#8 ñյU/T[T$!S6a{xĕD\8N Kx RuFPBIT Cʣ*d@ ,=p zR8G'xI!ؐ$/HX4< @$&JnFP8ix"0v5r'-@`A jH5j8Ӷ 8"OْbK:jUŅD@*@ Ļ!G #ta (2wX Y&U`"($"g vfj Jt*c B+Dq\!4 RˬBeCmA£F8*k~Od' Ġـ Xc 2(;(o7D%ߪ*Į dI2G3 'T:4eЏpWa b$4ڛpH lYUj41ߤaa,aF 0HLBM a!@W*^Hu:Tzj (!ERh ` pSI1ёR-XpftjynH bkkGJ!!,` t?BS%A$h(+PM)5x0_T8 u[ԅȱm ;L 5 \XkB?OOs% ,$uO7C6 $pxg"d8cs6i(QU<ƊS(#XQhF7`yጃ9VG2v6XU(H% &tَS6:H@!(]t CAKE@P!ʱE ps7z8 4u}@Y1CFfÆK H?aZO]h* $x22>$,5@* U( a{؉,F=x u`40@K4E"#5ja QKB ]=5)0Q㣈( `^zQߣ_JL& 4`qbF4"tH  ^H_ pgRCk1 WMBtH!n!D @!B`4d" +CIE` UR:`MK鐥~~t =t$Y gXUzVHfCD0 9n@ D08E@0$ I0BrR/q*TSx rC<ĉ9Ȍ%Ȑ Ȁ@`-Hd!tp IQP((OrF@_٤LD; G BpDF8QA`!̈$@$$DS1`HfA~ʵ~EK-"s-L XG0L"3N9(r(`B gEk9j@E Tam2E팁3ij2)oG!dMxDHBAPJ rN&"[<Sa i%( (K,4 *>&@m([(@nFb-& 2f{0XU29y9xHPr̈́Ha5M J`@8! 0gr%:x%C\ E̎'"1 Bs4Ls8+;B%c8`aFB8ß> f$ 5h "B@LHA@6PC4X ʩ#*"jK 2dQ #25 SH#8ĞTL)T?!v m#l$)3 @@]dК3}4bԲErR"B{OzaVñ bgD,B ^P lһ?y]q @Cw` $yJ;ztp)SlK<@髥SKR"@$ I[@ i kFKws*`,\#X@DD15B#Epb@$9˺g5շRYF5}P)gJX V*l{R@JKc@Nncp$D M+#4+Ab2 SҼ` ҹBWSh"QCF)D=]FCXrs_k<\s#3R[T}MA2d"X8BwnCԁ - b*h(c 3j$& XvR h8iH` $23Q T n PO]Q *U!"lmA Er&@ Q"L  Jlb OBc(ƲP&3\@(4 p&??W 4TeVɿoHxܻ,\%r& -Z߸I s3($Dh$2 pUv4d'kH3~pK Jwd$,(IG @`= 8 ( d<LjQ)|`DD,P@EHUk" XmH"PȜ8@a"8A yM3gP$DkQTV ! Ap& :GSX7T=B1USR@fU4DXÀ/HRJ1VH>Tq_uQV2ER@7R|I!bXYCj*C9` TpEP Ȓp A 4 B ~E`$ ~k@z *VV)Ix (%@M{Pk:4v|٦fp c6P LĀ2z5}E'JFа Oр@>:eJkNG t CC.+oS`5$̏BȆ-ӭ V(&@ 8,}0 hw(mE CSM݀F߭0(BghFaR߻ >j Ҁ ׀QS,5 PcEB.Žit 2\4aSHS0@hpidlh]KIB=)Ęp^6-W~в Q"`H( l*k !cOMhȦ ؁ц21 TԝX@Ј{82"e#֐ Ed7aMKEW"P!ߑW~`BduGPP,:b uU&Q01=& Dlz`Q&C"P`Z` 8j!~HQ`@Dc E+0 ;C+jERb@I5X&v(pCe7M8)xL(S1*`)x"fj0R4I %- KHBօہ @5 Aȉ$Ne9%DAX $_(c#ԤKbiCąaC@ S4:BA'0%!DKhK"Mպa` q@7fAIF3 *h/|CԂBÈo &#`ұ"DA0$sGME b 9$#,H:fI!;.LL@Љ{ЍȘHXV V!З"5Q&삤-MBx431`,d@@ &Tl,FDa FR`"5b1XR!/9 SDr ,XrK&tc`T8M ;"p.n b#0hĪq3j( `e,*dbP̿` jeeI1jwd&tF0H"d $hzX@4<k_ UaQJ %ƥR@uB;oP/KAlX[ "rM$D( BX !` aV!HR#J|ڨdےQ(nT HMo저) Ї@)@$c"St4! b2sDH4 mr)<~A&T $* vp"7#rd?3'@Q 0UBLΖSB.lh8 :,f ^ fD EITP[P A 3!ACVlL܈u(H:gcw`H"%R w@!}7` c`_yaF^_9T<EXqTI&PE &H&@K 0&"(Kk "&ʢ``f $m*  ,@А ]yY^b~F Gh!Ĭ%R 02A2"C%L`H PL hssI{r`p@) yQ PœE@$,+!$lH#PJTrJ$ Mj:& 9w~E7H"Jv̩tXbD0AQ^„AwbIBB~JŀA 'jSuXH N4BU@ 7R 0!L']H Dy~aS5]PU4WQOJ /GpjFD t7)")0wp[Ld2Ius8(.50 8(h(̀,V㐄3}USh`| Ӓ&!+OCvzt9٬}-\$DHRCa(Pc ml5[xR@@p "f!@A&`,2Eh% v10j`"y6g;9(d ~ FD^G!f<ģS0`$th@\$0..l,|>ju5PORT@5䥪OGP*zR@@d`ʺYA"8@C;0PaJ$(A!-e-KoMB* @@a) 9O3&4뿻yb ?RВ%$]3$'D8AaM%{Y WMnջSK\,+!Fxb\0+L ݻ#,h)R-L*]FX frVQ,NdTLe`<$ T L? LAz*5`4 8 rB%p}Zi=D C5Yad*n M&c ``(*?__R #0^'?'߷6D8rd,E3 * l_!P؁ K L$ ,$fڿdu\(hjtAe(H 7J)@b0 Fc) c{" "`w\%҈B|_E,a+@\ ^ʯƕPA@"4ʒ> `@@& rNBA``HIT^00 >4d@-aE "nE@1$!AK" 41Ubq9,I`%(b+@Z5 Cr2Y6&m.{{UΐP-D,$YR J,2!V X5pA%$DQ89H0XNpNWu0a00eb`)D I q#@"p*bia.sF%]MX A$\ vvqba;D9j`(#  %D@2".idK" ~J ȃ`Lt"lc @@b lb`8 IE(B0_]AFL+%%4nd` . )h\{pDBP` 1&X~@+VI3 ND`T*B.f]L{^  phu X)J J-vԞґG07E3;Ҡ 8<)5]0 hAEV(0 [Nw$+ӹLHJ _"80W` ,%[~E@ V# &E S$,Y+GMe@'.&d2OP&vJ - ]CX UI.AKx81B An9=ȀkG"b2 @ fM- 8YC4+<vX(5~!yysJ ` B "#m1H@1;%k 06+@E'b) D="#\;Qe`N= A|#5jNia#jT!` n&iP$ 2 HZFQ*MH_.j) &42QO"έO@oX ׁFOZ D 2s@X &&A 1*kh6ս&|8oozc"\TX$SJ_Enj"hB,R}?R_>"Lwj}` @! CѠ xBT" AHPI%7,L0 e0`<q#7OO<5 =8 QhCA` *`* Tb *j@SZ] 饚/gD(A $aB B v*}10rUU"1CQ4 kG8 ,P "3,D$D! 7BA&}06-]Z9: C,9p$ tXe8.x:MDbbXL gB(EU@Nd! #Sd PR? PEA0n+v)#GP0vc,H3YM0&F&#I ;g l%R|f Pw2{ LWā0  >V^nD&d ͵Px%퇎.L\fp)Lo w@LX  EDLNR  4A#@ߺd@ XCR"D%x`Pe9~k` ވ-PE^ )9 8[7`4;ۀ" LE `(A؜WV~D*<xBŲMBg B5MAP8ꪖBj@qM`{"aYs^otOJ)3@/͂5"=^"ma4,`Hѭ>BOOW_ob<h 9(sNqW@DFJ#|5MStU<,q TB" ɘ_4 : E" K"]6G@~:!3TQ` KB L,ل??l`ڒ04859 gTL3 dou)ZDL F4QZK*% tm WTFBD# =C)HC2a06݄$,"G~ H X g`A4$ 8"!"XP2:-7! %̰"Z0ɫxI9 hԹb r V0Ȃ0 c{%@=(R Auch ") Xb@NҾ b(Y5%;Di"(QiA|/ˋ%h[-@), ` Y*,p4cvZ-G",Ԕ%1$B 9pNDS$r"#"" `;W"&+wHcD!L KK8Ym^lK& b.BDāB@䀂tdHH.2[!I Ct$`9AXD$\h@@1*RP:8Z$>(@ 0nQ(< HlW cFOlF-0LE1' ! LtR#$nٿDl@0,L1R9 !1E>ca"_(r| ``q xB 6b‡w8p HJ`& ! # "dr K}[FǛk$i!fj0TA41]@DL4bZ1BHάLH o M> 42΄@< 3e!c" +ĄCDfYEiA L 45}C`40DS!2P(A̿v\`@$L$Г Rpu[t)D5Ly aJ!9M-iRnСpx9 }& e9@H41ahPJk7q(~TD 0 x!@$U_T&-DC"! O (h"BŌ<h 5!D-A[ _K *aa9! ` ) ۨ$kSN[D.B!0rtȑ3Q@+@T 'Mon{Ԏ x"<4VIE&@ ~H6 'Rq "B4. b@V(HM4ȡ!h6kXT-1}C[{F0,\SB5 KA P: &n$c{)@5FŀB r5At$"ݦHssؠ@\Y>0HaFC),3qT d Vi%0@Bcd TcC(v$"4؉,AA T)"Bt :6!N R)lP\Φ *b4{(pɈ"V@1OA""OL"E{Tm`/&Rx)FO$v` 8P '3C !aR!x80 YHafj8i)$FZ &N ϷzOI$(# Ab~ CkKGbGD0tD:: )m)9Y"^ *EY4CCT p@-!aN AA_`qU(1 0ǁ\# P!"2NpJS54Cf ;SMd L>S@8EMC;UI;hx,7 q G:1~G\D U(,8 cHaRu=C H\~1"P + 8Q0  d0@P!pLX #gq D!BcGP0,  Ȣ(l"@B+={ [ikS`RG@a $Vn$ SAal?߾PduXa-"#j$p# dm#]Sv$}ܖe,rY(Pa|07FEZ0H*rm_\7@@%Bb"IK4@X 0 4"  ԁ@W`&I5l95(B B|%pRW 'J v?PP `-\@܂U7RH:I`$)$`XXPP_"JC +Ă{EP" +*zp@.dRHl• d KYpB$dr@`k؍fi`Td2`,3 7fYPLce׶ vk@ xJJr4Gn` 2B&0hD `&!$N,,P`ğzd^1V{$oh)s6$ E& 6Ap\"@4>* BHO$ !wwÈÊ,@Eت P8‚xBD$[Rޢ==`"@0JJԊ0 A  Jh٪Q<= ` niQKF  $,H!4,,ˮSyF,  Mo[/x9{ta Z:= 19 rW5(P&C]7O@(>C涮Jِn;ˤ}J &=U A,\:$c_m(^%ӀA͊Q80_p"ˀA"-Uj CIѲ8a6{GT!=.Zҿf}SWpH$/E)RH;4L* ̈BY @2 (@P<峤mja$Z @a8T>%  w -RG<PM*P!q~oTGvX  ch$)DR겕4 i!f db1.w2!(G< TJ$&V75z!M@G`5dMń-re8,Yd~6.hp$R'R,RiS` ,$ch Ay{Kvs2B Y~D B0-Urɾ(*Bi%Rne-Y~t`He B5 %΅ d;7/" @'<t,@,nnY & !I ӈ3 0 r ,bD`dt*W+}o1t0M%8 "1nL:L!oA +:F e w=Y"@թr3zy)E &e9u*G(a  g@(TpGX%@($@F)ua 1K4,3m7_:QM3i Sq[`h ڨP, KR0 4AT@ ۫X&o H#UadTT,.BqpAdG%O`HȄ ,A-(i 3=-}UnuC) PVL8Zj:8& 4n(W;(lmBXHCBY 3_EICL9ot !f`EYE` (ѓ8(-IXɱ L,CT88Y 039? _xk]p #rPLi`q,$Lb4̠L^Oⷀ.QpoiӀp@Ƈ(Pdu ( "(@0 D@PRy*kZ[ 2"DB@*2%TLJօ #(k,`R(@ E&p 1uA@̜@!"8(PHegF AICE`/ ;Ca$@b5BwjS@d*0-13CLHi (D&0a NĠBtJ X @eJM2!Ѱ``"E $,  } }߈2 0 s.@􄀣{&"&]RP a<Xk,W#f ` ^T `@yH@P27vF=1B#M1҅.`8֌@AmIvfoF*j0 u}AT%P b@i q_ /߼C2tF\N $`IА"*$X"$T T:f +Rб` %N'u v޺э&f&1p$8O%i7=^AL@D K#~0=B27m~Lr,˥HpD1@ɨ9@LH]h$"9:TlH?{$ԭZ("4̈G8K 0DPJ"@CEMߺk0 jaApP8PWM#$4hN ͞ ×M_ܶڑLN8d@ ].W}sv$(bx3|*M( ) p=7SGx* _tpRq8R ^Eh<Fhģ+@@b Cs/(r[`RB!5+dȌbfMJKB%Y#&Vڙ ޺}D,DLp u 8_j+RU4` qkDI؁E EI?}$(2!H4 Vh ##GA8?̼FSg =.6D5 xH̖gKc Qk( T"Ƃ RB01J!8h Å#4N HW>cĊ 1 QBkkŷb)h,^TH#ڥL%RT:k bXr5kΑ :ړNA&2G0@ugi|Cw 8u1X$ t .HIq /HĀ $2xyBȐ4pg0Fb`"2ïc5j̄5FhCo&h[{ 9 Ln}P&A̰w|`]=,!U0  `IV"HpFKP*" \*DʄB`8ȄL1-P QJ Rp)ZHD(@5`H߽ @sڄ!b*FJ&mGoTT3~yF$RLR9"2R[Q% Áf"ZTy XGj A[{4pB:&6*%L|JD,=rh~PݩTA%#<^L(QacSURnC.f"@ElVPgoT5C& o5 Y—gxB>"$ːU v {Mqo4"H  }·4vX&Dkj~8"/(K3ZIRMO x8)i{m\p-.+A鮵w],hkLޣMwv ΢ K(AI@߯\`(̿ZT`SP3a/(qGS5?t:X@8lI LžkKv$]OQ(p$g3O ([h'55a# EJAB@@nd@a}E`b~Kd #% n.<LSGo@<!D @9v,~PA[#@jFn  P‚V#q$R@`$Q F(ap%t&X(KzIZ CZQ0"] ~ww𖐀.\aTT 4P*&tW zHXzþJ!sF|?1/"QqE z$4qwCR„-S T&á#[=DIq j{1Os%ٌ{ a>P!ȰB S)' wDnӴ@vsވ{,nl^d aS1A+ &`H,_eVB  #2-8q@LL3/R6C1Q%W!THHz`$01R;"@! ĭMK&f쎅RG (tPL&lP gBBJvOx :t% Fp+G `=T '@a3NDM4>w{@&N"`P!;$plnW.M%dEi0 0 K@"[-Z 8f*x r3A$ IFXM@Z p+pV %P &PAXb!`.hAc@*l AzY<8rA L,Cև(V@ IĐ7ɖd 8KރpL@@z7R O+ZaC6x' 8u0PAA{VbJ&lp <HM!քx۠J;ZL-&0 $E@Bb@Q( 8P[QM0B`9T&I %S!EYqXox1">Ȥ@C$ @wn!#Ho -T|*% | |@p),PU1z3XR\A66p@䈼G`&qSPPKHuJV!-n*R1eW@ɛ;hǔ-jUV-&4L@AUR*,KGE RB;1k-sd,,,%lƣ%"rt-J6%BS!A@c8:E 4Ha !ihMT$s-)WjS[GE/TdS|Ֆ6m,qi##K>R" p AC0 tC VCC[sJGiIВ3.tդ#&IDx"m A=.*+ӚR 3:KyЪkDˠBIIL0OOD #9C3A$ep%o -Ha >@ @Ո/ad,Sa\"ؒU@# ӻD:& Ԡ\aIHDBE?( X1쫯VSPF2ȹҔʋ74&i ]Ҵ7k5h":Ҥ2o(bۆF =sm asAGQm)LW9aNjiBr IXW:OWs U9P3Ua,evs)KҒ]D ɐ Q iNMQJL@C!Ք.T^$M(@ vRDH CҒC$K.0h 8E#P- o +Ā_4Y@M| \\ue1aBr7vKc5@Z&%m("Ñf VX7TxvNeJUb*ܠJ Ӱҫ{e_!MB,UޣEuRA,`ڲF@ xj ˌB p~X6]ZRstH$E*$ $eIJ)L[U:OQFNm"EMJID 喼H ie@Ј!٭<nCCK.BJ($)M2,쓛 dI5$2BR&NP Id%p No , W!# 5X_F// T0@0J*~؆+-#hPq>z0I*P"D $PUG1/ո7Oˆ̟bҼJ|2LSX@$9􄡈tٶo$+bDKp@&&Ȣ4QAM@d K 11/N X6)_Im"D.ALk!nI/s . xI*F$V[s!CxU M@!  8Fp]: P$IZ+,Nгog ( #_ T@ /Ytc.E^)% AR"PyiM`3GrJJ $vT](`ά8UXrΠy= zŵ])ưX[Eh 8~=_ 1k4iyGD@Q&̺etJ 8H8Jdy4r dn,Uփt$ؤ@8:Hc4mW :B  T eH''6FC7S]7Gp JO< A D+XA8! Bsb-ňH$B)? ֩6; ^hH E A!(QHpX R\ШF@8L,wE x9#B`f@6[XK @ gm$`N?傡VIC@ɜ bP`pԆDY` 9$c ӣeW:A R qKQ E yn`P;Gd Ęy$D̈l߀$Dob@=nʃOy.L~ЎH:GLHpȂ@!`-9eI=}ݠI&GP!HȠqB0-nSG‡$8&8 m&4HR npȷLLsEl~P#p Fe" !BtCQcA@C BH5P!|AR@ R$(X!2V HJC/ B1)/qHH8X2" 2HIH` `H\tc"Yկ6d= >sn.9Al9˰(;ih( A1$Q Ԇ@ L3fЄa3 .ƲDld#L_v0vn]"ÿpN(PbRPP'@ 7 (BQPԢiH,UquK膏LQs0 ~ {b/ iDg0zpnxDf66y<},s%jlާzli٢ꗌ J~lզzFd݀ZP9$`.S@R]=#g`A"() Oz!7 5y7&g8E @DT]KjDP=4JNLLD< &`Q '*PBq{(P ,.n ! HNvB "R35%5"ePhjD&r8G~ 7{`1r@apePF$c8@[Fu'у[C U߾j m b$EB2t[̰z 0ޡ =\i$B?#@pgwcUD-֊PdHXB/fde_iK!hD5Oo-7ɑv z}ߪ_BF.(x S m@2Qov 0Sа%m~k[948Lbr̉&X XZej2ђiٝoFН^I&a-j ٕd=;{8ڨa!mv(/G4P @Na( V@>nR",v5WIP ap o'5z`gܚo:Qh[a vK#DKAF:t: }`A 0@x gn !&" {UעPY9b@HR$ڌI6 D K$qCw#$ HIIj)h7mDnzڊFjl9;ءh(7DmE})vf-뀗f|LšH@η( [:"BDV @JL} 56  af D@O2퇖-~;  qZ!BQCL@GX%N$ %%FIqQ*b5xP,@$0"EGx AA 1È5]@<@Zjib3vzJ00/owP8! ̈~p)|Sl @iөkjJlc nQ Hhc \"jHCGq),Cu7 a>h9qv!q =OBA qH(Ỉ/^ ']t ;EdH&,Q.w5MٓL@c 4?P3,DLl 0$#$a! C bKVB`$!Xqf13!R׶ȍK6""dw˯cԃ, i RE[sĽc4:Ea)A^ma ; OX {ns^.$~E _s0N%pԔ4|"d=i] l(8B*!)X$%۞o MJ baza0j4">47A{}6B!!C8=.Rkm b@ fuuHI}3udDKB@R@$DʫdM^up05!r`:ӀU5V 80}zx:z#UIjѥ&HۼB@|8P!}(A?V>ammԚW a CZAX H@1VԌ,TEu4fД$-I{@T ImU \tB3߱f@NA$DQ8[h AA,HAy1w82BH6)]I3Дa9" 4h0aw!Brڇ0?8  pۄ<:M0ā6B\*Ĺ80Dۭ" lP[G"T"&A/D.LAIbSSj HI 4 ) +"EX!m`H"9 0nLF>ED#6BGBG"BԴ(@ICA|VPt  &$(8@TDDL!TF=P { !<" 9  Pb< 1FLOa0IpDl* PPW$Ff  #Nb)/(p$I"D@@H/H%v@H&@"LbA3N8(S9  $ (wb@tb$HAH$_$(a_~h$Rp@4"`"RH`jYB "Hh FsQ`(@~p#.Kz@m057Wt4$cwsQg%@ %DfJۻءhHBɖ7o%D" )H'$i " 2*KTZu'@)XX$I*E&RҼڸ 1@!a3AC^^Bfы @;"_GxqXrP P ʱLE HO Ja\#c?7@0A9a\~)PX^\ NLEɴ6n}[87Cn" 2ea;.79-rZK'8FΓ7ɬ,"tTB&UP* VpC,RpRKsӱ^6=}9o ) !bR !-$^G_ZR "1hvj.EUZ ,.J sN0,C@|{!T`#FE 8uP #f9 x>/3 ^:c)f=*ߎ%TI5a@ %G%Lb`Xg܌N" xJ0:O83EYB-N)))(1DdG1+jX 8LPM_B bg #/ R}EOɉ%T2(*F z6,(=([Zr\@jo '@\ Uh@D2#\:2s2\ѰFqoX@uJi9 Qm1 @a{9t)XT}P)'@i5#'{{oD?< =Y RЮFFזev c%0԰":OѠ 66GlCHU IIDHJm.KࢊЍ'ch7Z( P0K$H]<:jwN8+JMT{iB/L!$ jj e0 ْE%6Ciow )db ()DbЂXA @zAVP*q?ο"sVuM*j3B"o$ӫ(CƐ$,7H !j]%P\h@*9AWal^{tyC?^E|gyvwu[ C6"&)LZvP Q$kPH FeYt@!,4+k 5-"đƾFe0WH[rbh)n0΍sܞۯOK0]k5KǶ. 7ڑD4dʎgHiDZ@.:ij8JX+ [YquU_zz@8@>(uG)?.9'\8C_(j`-d!<$$H 3P i۷=$D"C$L d̔6s6}^ڥP/Q@h*ET==0vdٶ d"Do~$]2b hT/mW}%Рxd_āIa< l &<MV͌D3WBe'S,t@b f¢0@@oQkp(u#@[$}<5 F诐{j$Y!C؊ CAq`3^TSa] u@iCf7x Dy@*nqx$Ld* (o(UM [Hdr=oȤ蟤m$7N!BkknCҘ/ o #H5j4Z<.|U*|A2LCկ_cUPo_Ԉ%ZC3{M5[6%?ghɉWȖ6gމgL R7#bQ4]L,@&33s&LG<&1tL2=/=*E[ĭqeR@SP~(]4lCI q p>B↼eZlkq,1JLwD ~;^35ud ޳"-hX!#TG"Ŭ"LXGnPC|*0*s1HnjTN`e/4(P~.u 0 mpoe '%$PQ-nx-q늾 + HЪ@ j!E\[JC&V1V+H 8 f0H{HT#sѲhJ'!ڑc%8 ℘+M'JC-ub͈ CNƌBD]!ŒVʨ,+'{ҳ@wfʕ fK {ؑ8uQ8(q&S2Ec.eNee`wD%rA`6b -e355W6fBOcؚؖzcvALbDF3.9~W% D\ rR|3h?Ëoo+ &)&(hA`x ᵠ`$KS$1@qh` J%mhˌ@E 2BqaDVFBF$Ō^nVBBD!F0 !>ebE,#bĈ (BD0b=fn,( 1DRg/Q⤌/DK*S6&AtqB\n}=(d\(4iE#F<3 H1Q]dJQeڌ^fh!!B:8o$Fc &D."}vpN k)>6T&,(k p5 1 HB;,o1 *@&. ! F`-E|YRTD"MTHRo^ěa:"%BF͝(,_FH{oPd2@X tF'?pA-+@ fށEELѻ0Lh A@$U5uY}jC2<Q  i n'f^/JN!Pć?@h|IŘ0D??; #%@ZI -k  +r/@j`19(02%߷۷@X p@G)ٳ3{{CV"Λ* Pс{6 .HB3Prg(!B ٪BS W?bLΊ6ā@p9MC )ϬPB}ЪG0 D$/libextractor-1.3/src/plugins/testdata/flac_kraftwerk.flac0000644000175000017500000134170112007573167020714 00000000000000fLaC"(V B3-6گh< reference libFLAC 1.2.1 20070917TITLE=Test Title[YkRd,)j8,`~v FsyBq!8ՏΤ #b:'2%i j) rw/fW kfGZч8˛ZKTQ+Ƅ`pJ-8 w?Jve`Ό ׹PazjB3D܄&Dw^Q9K^̏Dq^-Q!bpVuӁO--D@Q:V'zdqQ?GxbZw=ÊNmĎ]eѾ0^2x ed N|ȔMdppZWyJ1|f% o8"9:#difA)VV.2dg'#Nb3:E.#2v8{Ȁ_䞓i[Ĕi̠R*)&QԮK &TȮ ҄/aU>ɢ25+qv&}Qi '-F{nY ݐ(yQȻȘEBsVS$/[%V 7zoQE_e2H~ʑ58ȖyUJj(%j?.” J&/aC^H _t ̈́GhJ2^Y*aaHPCqe 6`жfʙS5Q+8C2mGEUkYF˅77(xT`tfafjYqB?~T$ݜUSd@ZejOwmlٹ&DAc @>܌E3 Ʋ'.H̹=vQNYAyܹ'w“ĎCO-VA&һ3kO]FW^ r^n@d=lpQjob!sz(ЖaT|DÁzh@5|x_(xpuDTi#N-ShNLrۆZ)°(Jd5M`En?լifWG/!L^75?E ݜJ1s5e/RFA{0Zkv{PJ?_/y#5VgTZk IS &}-m|NcAסn͉* HIӁhfAgqxij(ː ĿYYRq#+ф1uV(]ACx1W,:n!>W˰^ =<ܹ ݬ*BM \-Q$nMrEct} e Ԕ^ݏMEDfr2J,[@r&E'Nm(ȵt<2 ň @)Ւ4EO^p4='AZ>*Q-q,$AmPmܛibIxt"whԔP3 ܉DΒft :EkPv _(iAB\DlfI̬8^Y0J_qXse9#M>Rd*=xD$ûVh hkE&_ ԁ(I}XozՂA:`#WZT\&Qn V!^R$.fgaj7N|-ZC<"oD<\]إV&q-3,F3'Sә[F5˗֜o=?.Ģs, %tVnZ1^9Kb9bR"LYCM DDX'zQn %Vps`暦N?30كMZ W434zN"" 1AbVX~1$7 Jb#2~.|jD\d{q086^ZRY~@A0.(dv9kE*9cGyM:7TUX#PNָAw۲zg JjXqV.#Z;t.Qz# L#3 E/&.>VMdt~H(}:XG!2qZ!IB#tMl]116jU3h/L4ԗ"9ZiSWpMb#oڡ9Buv3sR_nɺw _P3qE*/ax g ax`J!99w)MW3>YZCSјJ$i!bRxf7yo07o3 WԨkkȺ,lFMWa"ΙhZ'&Qg}Xs#^Itq,†m_gڇ"Z4Z 0uQ٦ƝY:B5N. ' EUz&pXIU7)(.:b%h9JErs ~Qa 8`$͈Ť{ 1`hV VDVLSvؑ&GDC AcK"VQuܩBt6 frAj@JLvz`Z<UF^[it?7Є4110akC#J?uYK;jg=z(8Qa!6(+TLLo%e2mgx[hp ٸHHhVikZKHF hzGNhB&C }IR HXPmo@+Qgz n5,cI%FĻe"x&aV: ҅OTE` ApYдcMe""=/(JVJe/|Dkj.b]r`F(\]-Ӄb"[ojf-I+n#6Cz0F]~s.]GBa ,C/k*XR.J$Աm ѬWV/T|ׅ\,lHU|z^btA6MyӇӱ4f2(:g[H trC>+@O#xy_*Aڔ*umC [:Zd9U 5v`CcwK*Ui N*^$3wUQ}5gE^ ?f X9ʒ%rG)Nm_f+WF+LgLuWq^X!S'9[l ѻy$F|- 5 (>b@ee~$#J3H\xg dF 1"ȑÝx$5R6P2[/\8)-:Nڂ"!lx]|" ;ITRk0e}f;+&B  ";9k%K>crSF~fa-׶pĒ+ su nlB<PTz+]ۙ fit$JȗV,nĸؐ)VH^ ɓSCbWUeDF{Tɓ&m  a-v$P-KyUM\7 )6M^Kph@(("{)X@W+$. 0} p3 uo) -޹8iZs\ZV67=,c]c-D1p䗳7"+ vg(Xˉl 3*. UUjE9 !fH$8d D(: "M0S/%^y E u:W`Dej? HgNȐxfn4eؾ [E[<0(Έv>:!6'Ũ"TFA!!UKo6όV$,dEJT0H)hi_T dV3>( џɫ&[,5,yߋ>ɭڂ30bb¹;qslZ7+rp3qh7JYD@:~ 4>k΃F7AJ0d0Ȕ ?i˻@ʽߡn(v{rCd Q6J9B1$!0`=uAl@s"w"4LoAeF[рX .P@Yʵ9٧q: *%Qs pR\ V "& &/]ˬT\,rU#%.x!P]P L⇍L0$W#j&ux}hEBikX)^ yqt2Zi SfJQZ^ʤcɒI! Z1qƽ#(n-[F'#1,`I8d]|f#:)1ń>mK|֋,LDG],$H,lfÅRU0%eQ.ui$9a(LXĊř}!Alvu"e(9$rp(C3LrrbN,D{G{cb:tyg&0v2W5Y, 9Pe> ;H$yXM\ JJf,Qژzl-kMbE70I&<3f.'ĢN,꩕*lc,LHԘщQIF'Aߓfi۾D±H%T戜D>EGmB+F ^ \dDe9!3ȁ.E֩4KB${>K"DMS ȿSV%bn Q! :oyLR"?,zw`F"mR1% g a]SN)qF ۙi w|FsFLc(r_CEhF"O3 uU!Շ+pD^E^@"e*[_j]1ҩ*5NŐ AGʨ5`AH(U׳!('EÎFl̳FdԮ,WBݽDqAe\ވ$_F\ˆW\̐GKH* I܄L-9$Fs JD71Z0H)Qi1= IbJfq!ܲ\`)Xd‰e<Ĥ) l!}JHK܎J\-O|t`^G}3q$H3.'rp.5N*sz|2MIm>X ZmfD0Q$3/&q D_1rE‰in[qg|HT -΋2+'$ق L>R3$/~b0}e4"s`Tz1PIB>).iggD] eL=<6W&Ӑ}"J:lX*q̐TDLr`&c" xCXгP鄩3AlbD"}9Qs{C > \MD߅b)$G _AL#Sv[?zXd[Acˡ4'^6XKyEQ)fV*BtTSht*e]+`,#M:Z?tH%] C8T8䳶H:<&*eFH=sn:iPklK"͙,EUY64 Cla/+c+K/uM:A 0}=Q6"}RZ/@4H̚JN"QF ,BmW#I"$Y;48Jh ʥ~>_$(duh,ƐU`ťI.;q!F2 ME8 u'TJ;F]e1$ʐ(RǗՈ1wP`K-[ԣrBRjnWZHVW*f-g Єf 5û2߫bPR{0ZfBH6\)]Nj0Hݦ"Lx:INh1MT2A)IR&0| f«(F_*Ql'ɣqxa*[t A E%!hҧB ( ðf7~)ң|Т;9?Ja)fY 2/$댧H=ux% 6UqД6ieUUrX=ٵ2:Ó+ C}+fׄ,YTB \8}2*F/shxٲtfo/E_螌.9kg"t:9+pkKXISV?Y]z ةXW Я),B)/#/˱IwE@@<z$;Ȍjz/. ];[zS,W'OZ9̦/G*rK]Tj\BҐ=R_t%w<ñ-/H 7iB<` l:Vi.e†*8B$Jnafkd&;JàY-Qy=WKL$3 'C 9dN[?vKtZ澵G&'̨i;4S g3e&q5ov؃ԡ$b a(}PAx%ZPf7O#6Vek yM7&M"Uk2Xw sAs&,q3ԫzx{9A olt$1vXN?ЕoԕYZykd)vDtBҷ-S `V BPijSњp!Ј5bCAӓLVzo-}[BCpWjަ){([I,K'?DjUbV -1 F QzNjh`Q }.#*'mT5u ^VQ2w*EХ}G, ,Bf"$|s|h 4؈^aEPaf'd&'Q3ݕ\Gx"$1nLad`,O8# FjAء/Z/M+EBh$"jnP)4I#Δ"I#DBVB y#tSՒAJgTqL{jIߋ(:9!D70i=,(FڞB LMp4ė>+l3 BOg.!NKzč5"~ѯjE)NZT2NGz.t2wwR.#d!i takpĪ|c|YJ.@4  'D/Kr~z=#)t!%W+b!4எt+B^&4q:&vǻ\G ,_%ZkJ7 gHP#u0`TuN$B*2)JLKG(suj퀀nD+*)D#6!3SN%Qdlu nТ80XHm{`~5w߅ŞacA_t -]gHΧQ@\Rv XjZPZxIvɾ58nn&@2C5]i8`B& ȵ+쓰x@gǿ` Ӂ)UdR47KJ,bI (q40h^HS8hM|"?b؆)'?َ{MF =( ;t쉱CUaGmF,I@и&4F Rrv. `#:EL/3#A2Hh^Xa20Ùbeh[<dD^pk&뉞UDI>FXfA=ҺdbfQHdDY >~*bF#&fʟ%D*H|{<_ǮnYɑEcQ- cDI4.i]1[~Gm7]WE\3 ?Z'n;VĖ"s&/ؠϒ[.XRd dBPJA1-~c[E)0O-8^W]A˴ lG ``V "j22M +Zhȣ̼ p. :B[0*_HHBUA$T7,賄ťT{ { rp@j-ʐE b4vk,6rv&Vh$QJɃ+.0HqUrTl!AGAzm}$ LJ gȖNcB(DDXVDNp|h|KX[d[\ k AϦJM,5"ZlWEAD_VCMDE(sB&d<=AT r S%}NSkO&^ p.HAn)tS.K5$y=Œ3/Mcd~/$ YU3I%n6zB=b0;Lkou0 "tZ@:Jͷ+”݊-c\f L(Z`qqdǦi\I%c*1ʥSAL:J}hr`YecG4ׁVITa&,@Nzj"A?kNd۹!浉=QM; 1Oas,lRU(s FM¶rc O+\j*a`GsĮrJ4$hDv_y"jz2U C|֣bk<)t+LG V)b :֮60s>6|0@@ U;'g$sd]*B<>b,6Ȓݚꗻ2i,(O.+<;# $~%QE訽'%AwAWRDi<й-i@Z8m$ 6FKK "N AϫO"ȋKlB'w?ԔCem}C,$Po>hI)d D٥ 6.bk Buq45~KVag2,0_I 6"?dʳ2$Y$d|U -av@a$~X8J@M>4gIrnj.UHƩeu2DT LFb"U=jAŹ1l&IϩquSs{ΤP"JP2IVa (-&(ދE]-*/X`\`!-S\Us]*8 k23q9yU`PdL G# 卹|"KђW9D+A_|fa;T$nXWx=KL|[C ԁN}*Qh% z6é+5GR<CBSk#[(kЖѲYa :%9O`A:LX#An$=fb߈gvcŔG! eKC Bm",mD31Zc}k9q:p! R,iTk1#UE@mj %}MsשO(qOAB+! 9١Kos@8b(sn :@J'Yd+F>2w ۠T5N*U~$}0.[ƘÄF (` :6k"~7|LaQ} үN$q6TPf<|eKd Lm*TeH*f#I]<1瑘Bx%yx=eS^Y?ݠky1 궓+١R_)u1D2 \[r]悑?fLrBX4@51[l*v0%WE $^DM喼h?D2(c.̑AbL]YԖ~*HSL~ v1^#º:X`A}&,jGqIWH#DbY6o$}E.` oRR,/zi=<'҄"ye_g@T4YN+?B tc Ax. #\ToĨ"\)L+NhTI#|&JI LD@hyY5pKs0/!ZP|YDucݒ^T`!8mRh V/.naNڛITX^q SPU5M±"Q5J(KzONх )0 Z]$Id%+<4L34AP~Y k,䂴ll3#SbovdhK)a'1GT0.= «OAn!/@IUDA(Td$jq4"zoӸGVȅRQ|_f +C&mn6UL{Kp(c1qQJ H 0z@Y2*bx( oDIZo+J]٨TRv~KƋ'o;_Ƅ CFp$"L.1Bdl1,yF3;$OyNEPVcbo4qBm4m`$]gALjHICΝ*1E\3kjx}4фj hJ"A"R3~ojfa!>\uVp]@ ԱDUșBBQNA":|`I¥E}L4$Sx ԓQrḄȔ$53D4$J:[糦f<ըST@I-YeV k I+?Tϣ8?PaT81'g 2X!Z=g#N݊n0hkxESʗsLJJ}QQ7,D| \`>PBf-B~Oo;Ts=S^,FJ:~X]ɾ@T{u.&JsD͢P 4X#>jdeC|Q2#I8.r8tztKj$:7vHD_DCcsJ kqsG"t,K3eِχd T)=Rn_?ZPg{[} RAd<7PWa{U3j"U$(s7fS) r))!ɏZ @,Rs0[vd(R# qh//|ù*eA̭8DcUHKp@OZKcq1_D{T ,pjw LՓ*b{#uTSY])0"&tɂ:/!?6DeMDP"v' E2 JUCx"U:^2V"S(錏$C 6V7&-}}dBڤC4jq| 4n茓 (%D. (a `±pL)cTv%* ŕv|toѵJ>I$DF^;0 H &] aRK%ҙ"X$\\ Y-ȔIv(uBHe"#OERPXxdT"R,J!FI,ȌN#eSbxPŎj"A9C81n{,5Q3V$CozgAA9owX㎾ .~~ļJa~ Mf+BrcaX~+݁ %O${p{-ka92( 嵋@{D(`xLnMJ=Ѐ@jT~Δ˰K򹕚V *‚ӇV<(}sTl5gS ?KڶhE%Ȃ8Ee2@ WХ="%@.9Fg0C~5StD$q>j`AB?أu&SH*W7L @D,rX>}?4gPʔ¶#zo,tV&cwBV*6='L9`־_DjaA)V \\_k+p4EmQXrgಶEOs 8fqV#D"f%XPeL}7}\+qo%+&'$wRNp@@S+`vj%t3nc3<=On1,K6g2-9ӨZC D"V+G mKpN) KX5J )#t5 XMY39V{8%j/& 9r2-V7ca `lKh*Mv3b? &YM;rl<$ 2ؑ`c rfTi"$U3x2uĢb&"VT(b |puvY"s")P dKI#ڎ`L3" 1"S0xij 4§yy- ErG꘢Hphmo=w&g=7~`%HΝ#ţr! ?D(w' Wy^b%gepD8L!vRJ5oA@Z#qӔ_8jV Pb/3N [Uv@gR~^Z1:!c=QvlR 9zDT1FȬ r,+,t־nz~x@>ͣtPiCŐ SARᰃ5p,M6[ !@꧔tDǚPxnJk2dy2p>scMqs+FH⎿Q6INEUsa%K4>0d@ 9/Vsu{ NFǘ%. FMpn#5 dLH{-$$+H4P-*2 1+ 6[]+$LdB พDŽhvF:"v救8q:ATGaVNώ/؏#rT JYeuPQJElHrP++!Ptx4)T3cK7z%xWjZlk֠3W}i[#a/B>-5%F'83s3rr^N6|8ȏx%0ġ#b\J)AZhakD-L=!#P^G @XDr=+W%B 9Oh꽁pѱ^Ԑu\fENQGCC,*qʳX2gG%F"br:gYQ)LtP$(:ֵ2Vn0B! 3NddN>Lo(ƃLo@x.ê.c'RyM9j`mdxfOIpr8czb56)S:A8Px'4-Z}yl rw:bɡ6^@GxmKmᕊi(4ʮ5PѰvvP(UU|H&JAZb6?_r 'tf.pҫpj6)jP B0 øRfeEFulXDmdfPzRx7̐L(`L*{ʰpHP|@ ?t숹U:LzSuJd ciBfl=24-d DլȤ-Qjo(i`r5l1f+F :4mbU̲0DdKĊI v̡‹U*1D0a$h%K+DxxJqk 9¸ȜFF\N8j9cZ32bAE=R0H_~%W/l&ͤ>u;\CL;T Q1d6*N0 y !%4|O8yLąIs|8A 833G"n-G-`B[~ l :>Je(DA 8v2Z޽&L>[Ͽ $ zD}hוI(4ڪ1a1c 7"f^=P@lL pFe*6 && {MѓiK#h(EKHQvLn ]:(zu;~/%Gt^ed-&f"Jw4+C|S6[yp^^[S]OUs$tԅ`E hR Mr(ߛ{'E`hjm7zp]An ?_5M$BZQ2"mл+P=h*d(v&tp]xK=*hbe9SEϲ>ɨJ%GLFgES⵲ʼiľaq ]h)E2a`tG$@[$+X xrf]Hg"Py$wQ%,igM.(P/C~R~d+=Y( :I21]sH8}-&H\-[{'zL$q0~ 4E.&I4 Eb4"ujI!!l. $+uCDC~%(򾉕@Y#/领y8{x4HR- ]^EYvN=~CL8r{{)C蒸ȹedMIvsŅ41?{o"8΢at\ S#J.*j٤R6a}Z(76 viȚPTB@D5L1 $,"W)PՄ*6vguG;ET,>w_/[ Ih$USPSHxuO4x-3l艇=ڜ4hcgv{,4')RL`M鍓_VdaZfatt]}8Ei=YG2卪M%H8+`M+ »h{>mǐ!uS\lօ6BB$\s͇.'X(B c(,nh˓/ 4htJBkRmDҾ/Q]8x]hg2n*Y8Ͽb8/S0CExGG"iG.FW葒|D.^'W:#zɥlj *A\LCcw"Q^afy5.I| \-vю W*RJfZłIt $ӹ+H6$0~!6gH 4Xԏ,hS:&p* Y6wvF )TY:HD\MM~ ܔ|$`jbZ2$n 2@+W% K yDg.0iUn\eftzND%1Sp@chds Bgsx+2jx[vk,Z%ߕ/W T )cZeDJ&[򾜨r)=zd2&/$re~WhDTóP+A=݆WGzX&34- )6"N<M*G(?{cB'^X 47;ݤX`nH>8$ +5+Ç(cMB>8&KeQHH7y~mDM2|>e.i3Y!~ARMr (xWGXSAu3_Zo8kD1"rJ0L}m%S:H):4Xm54;L)p~o+"MG/.&N[Qѱc9ctÂ؝gZy5*2U ҈aWYl&>t7ɅDmdzE~AaT* \a,)>Y +ʰ.B3U7a > ,s""¡Risv|xuLASE|?Ԕj*fy5<2c2u?l@ҁ` R"-(Yj]LкC\jyԬL8&KF: 'mĝa!`) R`P8.cVF6:(aaP^i.1atxD:a|RC2RZu)^mpV!M"T" m^wweKQ\F2Rn%$(#)͌UrDDOEDQ;0$EA%9j;ȂYǨDsBGՖ.5.j D4$FT֠Pb"ED`o96ܟR(*$dn%,Cf"H^ J(h7oo22[,±=O1}Y/d+OGa[]_Ma( Fo6#sWBc"cTk9Hxg1\ k}`@ LK:b*tϳӑ+Jnf˽G/)jj`24lx;gͦsI_8a:-!]Ri2OԞLxFJ* `L1:Y> \(*!]e11EpmDT]9 _YQ$dW #D9)% L.) 6,elط&8l[p"6"WSes/L5"=OM_2ɡfQp+1 [O" 5f/b2BœxĠK$4д55=Ez^dz25<[HBԀ7Ecm;Rx]Q4O%sI- #!_~HL1s2U&=mB!"\ \1d6oaL#$npaI,CYbVGkK*pDO8wCusW8g)r)R)c[<-"+bhp3` FUBe D{znMAGp|1d3}HJ@x @(S-LECBqB154a [kNZCIȟ,>..8$leBiĬ7J'.N9+O:3h%uH&Hk  PnX yj:2M2N:XIڽ^+f'~+JT78Dbc՚ Tk_/([%#uCxH\HY=*5)\A> 2) ǎs 7<.aڲRtH&c݁a 1TAS[?`H+͢}M$mzL"3~%OYRŸ-yʹ6z2f@I2P(Aҙ`r况-Bat ڍl+`__97!RD9~j;o`/v#`s D2-IZdPg+僸>6#2ȉc5?Ot #"6\(<|Gm-"&$ɝGu?vVzҪ]aG71'n2džկM`*HHg% %=쀭F?SQP 8WaJs{U8H 6]IU?K{Y&5TZpHئ sB7 NINHs%kDlя)__e5ʔK"_}zr6nf$cЌZv'>!oC _$VAPN)1r?)[J Ź#?-r1~fA xf D+KDz-_AA8#nÑ5,쩩20rĤ Bfj2bdZ&{Y$E1aE e0Tp0xn5 *LjXٻ{ea8<+$'~&09ȓ H%(%LIh$ DeKSFVuϫa1(|Sb\QhAҌYO8T 6x|DB)bQW*# ^R+ %n\ )>DrCGp&61|@y Wf x5p9P&# D9פ%rdޘ(BrSȘuءSySHN rWl JCi3#ѨA}|=+3R x;hsoX998ص%h#p!+9>VsK ~ |[( 0@a I*D\d6 &/v#a*e]ƍt5q?.Bq<!Yc P^j$0 h/ *PSNltVLHQ t쒫41aԌ3Ro( :sp0A r:ሧqJg XWx 剢^N S=)Fh.mV)é gH2mTU L dT36]3dmb,7F6 8P2V@,4~( 4+ՑifH䱶PE@@еF3DOg: zz"LƴH= PFF_)s7R|F S[䥭kť11h旅ѯ"J&Q5hf=TݝAN- +JKd5v1݁Jj?sQht%gOG#1ze&^%Tp@bXJ֠c/$KmwGQnF)E7. C1Q.&nA]$'lZ4NDMQНUrMl%8@H9:/"ZB"&G֦:ŷ.w.rJK[9A?b':\K4 ge>|z@\*Rd%`^X%J3( c<ݠ:rd: wP$,m;| DJ52b@\\P_,*!r=:d*Bk*9ה0MT H )fHT؄`%Eafj_f;dWxȜ^vivc!2>D$Pf -t+bv-^F?59Fr&a!"l͞IEyI#"9XL*>R^G#ӑ(̽Ax%yQ?' i+7J|]hsu( MҖOKN`gwՍ$MCK[e'ȕ5 gMc r.*'bieRí $>qUjUMʈw2 A" U5&вƫ+ebTnP+L(HF{RJ4fOyo7V\(!A .0\7XR#.ϵuUxU~~RW$Q)3(dr.#H4 D5G,cTqF#UVDfYq"kYʢBiy4T&-<>vQy3ʾUc(^ kBRi; `\\+}W"h?LKBrTGڳr)瓚tչ4io㰵/pcĩE-Q׌صU%od+9w8-ʝ' l$mc)8NҺ3bzH#vk=[CV%=!žCжf!^b7J)ak G"Q9iH  nW!Dj C7)iuJeyDf&G3j9CrM F5dM<07 ٪e I<`x\gV`(SA3Gi8xDdtFjB*ȅG8m& +TZbBCCN/pc)'TjV$A A C.Y+ =mHTೱCPɜhLĪI\ꓭDWEBDTGtSl/aD }RLQk sn@89Llx8H1w0P΃L!|< W&БK9+$%+$,#'))ZsފGJ#D+EתO0t!AJGEɸ!BRetgfȏ,Ly(QW2x"CFhELo $0QbY ,$C>dX}Fɱ/8O3u˛,-&h?+1 <,duƂEtEm¬]ݣlE1eJJ~xw`XE%,@dgr8`$%BÅA#m6e=dF؀;XD1Ak (4|#٦ulߠ A ;-S,;6j>"HA<ța@C6qB#rdEl0Y @:]Xx+On~^fI59A֚QeWFs$T{V6%y:f@22:DB>HPI튓Jhwck`³ jO?&Pp"ObmdRm"! bV?kM$đ$?s )S&0"CcGO)6%Xc!h$^Ȅ y'X +YX64 u2nbFSHw&6[f6C%Xe\5b EP|xBZbLȿQacJęc51)_#L r3`q):1$tL$2EE>ʚvK%ZXm:Q?4ېT$#,X<݈6**\c9!Wޱ XeYZ&͠tOADo6KQ#lQ-lQi!d1Jo䶢osPkސsa290_"2}" L=2`ՅFg.K"(%*"TŦD_ UGֻesHB' UV`>^06XkW된J)[h\Pz) JJI6P$eSO +,8W}<PW_\W)=fG3BK>X?0$y62}>/KkMD_8 C$<Ɍra`ƒ} ;5Z Qj 4{fKOb2(㭏QYm.1f4b^=nH/3XT .@q -{qNd eG`HHq@Fj]Bdo}Es ҅~u0@S['IKsH7 (xaob;udU'8EȀ$PeCBC dc|S:hY0€3rG&&\ e QC9uab$J/!*l5,SYBTq:B/>>6&R%d%2rNkD0A XDjxDzDg"WZehjhQ%d8'LbBrUUX $#Ɣ:JtIǐn87!O>fÉdnWi 4'2liH@n4.X#B%-W DB鉁*2T|Le}mk{8+`Xݓ6Us',7Q8Rl:Rxc[)=22=;ZI(7bg2߼uBI,%@5ӌpS HD[YzyN` P]3y#+1TJ&Ë m5GHYTHOB)! s ?=H\6|ǂ R$cw0iWce($˓KMD=†,$ʤYڑBy7H-t#MMW_726g+)_ r#Y2] >e/#UP J{N+I@#xۻ:4JU*"‰ G1c MA",O4 HP ]rf wE]-`LhdB$YࣽZj*>!h4tlY6k.^ն 3޼/ QȡwrcFD/`_ނ!u(}CX:p#ez8H%vvA%J2saXA2>|̮Z n?£rq*߾|n .7w "w6p$[B_QyFG`bS #h׃HO fv ,|N }`A輓 9yl1Me'Ia4 :}DLGś0|_mV6o [|$U3BTCX,sb"i}1bT\T.ZEz(EKeV|:KPaqtMݛ ]d誅:#y`P.E̗[wA4 anJـ-TɢLuX #Ac9iq\^.5E ܚQH}n;!2eKV9YwLxA8n:.*7{Gʲ8VZr±Xb"* ٫jYى aR 4ΤGC1I˔n‘!=Ƃ3 7|+c=xZmJ8[s5̉66&<"7'c=M8"dV9w #Ff9M݆Kd%|eRS46}%X}_R!nIH!DB&qpuf7b#31!;%PInv$c FCB'WXO]cDŋ 0gPcgbJD~!"v$,^_6(z.RC1VxJwtVnnv=$[:}KEj~GFR&T"T "7ߜֹ쭷JL1U Rt=RImә3UBz3Tˋۗ)JSY RQG^qV8Ha>.I%*x&s3!4X 9:o,tuUhD6%-?5lAHФƣ@GCyQHuc%x}\8A՛3۱S 9؅r~_YzglwQl{(X,>,#$}/斲J?l&xU?d,y],$GV,*Ҫewj2 `ЛL0^faUj(.Adʪ)˝Bdˎ،34xˈQcc"A8PJe(pEPӓfEldU2cëBH#h'rkGj" gxmeiC $-R8[M6.Jd]%,<$#!z*fxW}H6PI> bNFU %iQDDٟECj8w}BP*! >"+"IAَ( @ %XhaB_kh$&3 H=Sa %/>^!#:Y鬔X72;@=rr$~Cz2ƩmhYMX+1 kTzyH fŊB;Km_I4*z kW#b*5HQ=x!QIK<%LȟK\v4l7SbyNC7 F71@N@=ZصK;;~;+C~gm&U8Ǝ?xp:c/6EłV? n9"]H׏- u&_JeREF̮[G}yiI#1Zɺn>Zَ d_ SB3B+\ m%qkUqIbHTNB-:S^^`Xn0Xla\Ud^t%CVРk;@Bl=! :y:YӟEf`tLhyZ0C4ma=CRlY."O] x3UwEɪ ݠ j".E"IC YjjXุYJvij%JUp M J_xpQ@z2bXpHAB,'m]q1ʊ͸ ԉ 4-TTT#** J?iìXY90rB$ T~EY:&[?1u|3ڒJx+TuNHMg~̔bt2T]ҲF_1[ҭٲ=Lktn1َP]~RaEM=0^eMSQ*9d>f_ge>3tۯbvTyAHR@1umic~MhԷv}̶5x铻1%M/ߓkR!*q1 ़dZXE!K*@\{cjAW5eȈ63mvC8- ^pAiLuJ0M )`d4RN#: `+E XDEoA lF$AIzg7wUiX9/f[w{zEv@dԜS{vKh^0&_ -]#jfSo}ɳL&۔ -.ckbnYH%aW3S^K)|y:G\lr@: APZБ[COsk@LNR|!}.siUEZ آqR*ßbRPP-T⮼afE ,{'  $\^Т1WE<gi{[V݃M v |Fg<APCp(vkN$wim|J>qT]O(@((Ɇɕ4@zE\0iIث*LHq +u4hQjm@łZP E,Dh~Մ/ޱYt􋣶e=zM%RJv]b&TE9|%SGлeEr]l0r%k[(95J9Vܓo\8Lr M\$N=B PpMxW[-Fϟ*^FcؾŋYJ-6(qK)_XZ$xQHmXrKuq%M Ts. 3%a iwU?JoJ4+_!pWJ8>fJ(ɐb$*,w)!\)i܆Y<\*+g)NED&~VKkw=Bz pU: QǟqPrߋ BjO.Si V,Q"2E4U_L t[B"Q-fI)ףaֻ;(șC&*/4mTBYrnB.+?vd>PAS=hG7U>tD`P9bk|nĄm ځذmAR+vtuK( v&#cP Ԡ>/8SEY]#<9,aNSDE^(,Pwڽa.P˓q+A[.H4 k FRT%X'18dmDAs*[V-ۤ:-~ &U4(0 FFtCO<,6-6|[8Q( T3Ph$ӂ&<4l tx lS u+PILa'R "5ʜV3M6E p-EI xk"8OHTx cAsiK%TlwЫ)a/4?2":YA~.S0Xa6D(DڟK @0`He۞\*饱Hbcs&ś UЁrɤ\d$}U#pE :244)S&<BL࢟.-tr1 66H֛OmE \@!ӥ.qO= \W`ʨ (0]6@$CWi}q3 uǒ@_@:ՍѡTcϴ\( w*,gdJ\K ]~H%F*A(*9C 2"o2Xt a{a eD&"ɶ\<y=,ƚ&šD3 ,! 'p T Yq@oDl@œf2ȦSh;**&y"n)wj,Ǚph@]ŏX U:RH*S|5x@fb爁C`_s r[> 0 )H)'w.&| lS DĮGO3 e 0 @RQ6z2ʦ:H#)QSRteУꞗ -":&|FL}f4TuQ,{"o8IH<"Uԗ\Y](XeT 02/ҁ^r+߽$02&18mn2Xmɨ݈{٠qqp6 A yBK1sw'ؕ&; !\cY}2덧k."jdB!\^*(rtCbrb 3k}7Сsg]mq7ƻ" GLFt*5&Df (6Lydʟz^flB'6NUBA" @I6\K`2$-ҩ"Qr(yIDBJ*EF UȀN)mXqՐaGKO>(] Yߤ:%H-x)~o^aW`L _BF߼`ˠw煹B_%IE(D-q#]vAZJ*p*,VB=ftxۂ!ѲGa]PP^EzlKsƼS|Q р+kA57 sK<`tD&bڑ ֡%J Z-#(CYd0aE5t[2 -"=7d';chXY\53EU)xz@D5z`_ OiCR:qq0FRT1 hKҜ 5,ZZIt(jdDlj 1"B@LRφFh&b3.T` sUImH-SA QOck*IFY`tI7B9-oioͺl@6HžV;0'䩄Z pPX (7)9)O .߀~"JLP,ƣX*l<&v1]u `j+[hEɪRs%!-O#[,H˼P*ԏTW ]5 &AFDHj) ͏8Me 'V4f!UD]m=11) Lr*e4P*Z0pȵfc $U'qF<`鑎a(U4y44)J?ة=rpmBiwPJ]r/Pj::S2vm&Mk&ět_Y`@gN.lSZP%23OOl2?GQ|9z iNxGcOYpP /  n  (A*wW*_c$M!ZKHϵ [27I% &nWL;XaL 0t5) g m? AU1dPònz/i=rO'Hɓ' KA-E@@R4B0AVMTb(Li= GƮ`V@әI[T˼(`VltXPDZ|lɊTz pmh֞TF'Hʛ~g~%Aq%!@|:.߯pfp+ŃiK˱0.%*1tt(%ْݪ?n:Z "D &YS"`h=s 2EWuLZ0paP`J7(L`+PM]·²bA \uIy&.;KHԟP3xBKx||`5|4)g^jWdK:=# Z$:֐;J L▅lW"ΙͶ N# GRoªr,C8_0OQ%4'hTE$G\88.Miz Q ΁ òJ[G*CK0xbvC{[ਂ↨l}!(@|Th:2dvRfj*U~U>6cDO' /}4'Q5UB RdUem_1 9Y)a>>สCٷ NX&e4h1> Z'dch , T05g(ĵSԗn ġ@j̩cjӮtӗA~9kNl#34lNE  ,T( @`zN3fRVJfjH'939`Q BTQz.xzĞvE&\67C+}?[g!%BO}V`"A`Tl}1pDNTKmBQPlB0a鳥(c?6Y_g)s S9 rU7)Tp$b6Gb"B]J%~Rq J@mQanj9j/"eDKH-8RGd)fb@6& X?Z[[t.E΍pI`ysL_#r! GIrVɂ;~ZGQ\%A"~ tݡJ|ttgR*"{LIL+r}@U&c]A, ]n.XC#đww@kW!g9=o~ikb4+l*;/8b9VBԧ-F=M˓v6e9A>BMLg8BuF4xNDQtXZf^ 數<;lpVFN;A(G\XN=cXJ t|+V-Cxz@j7fV!Q@nꡕ A:D>.dī .@,:ap6n 24\PaϺWQ:sRaȴK#d?Tr-P*!ЀH@$ L'^ W;u$*ɐ%# NY+ ;$ҌдU"4V* A `p5_BvT2!r JO C75KӻX$±dɷ|wr+k,'!3q' 5NlXh|i:/|Ӓ%JȲurp@6AkIY8M$Dᗸq5E~:QVHEoC!A^$zoCoܙ1-MtP|>au߭IO4א<ɺ7=OZvD?ٌʟwc}9O B+n`v@@DUdo qh=pdof/v./mo) UjcEg0ZgNyS2x ؜Ž"FuW-P7#7b- (B!)E9)kʼn =%'axbk[rYm F JD'jP ߌXd!l|jduZ2ۖ!( XHb.p*J̎ |113ACǁ IAR GCGMUDݔ$/,}2"-D<@@l*3+_;ý0+#VgNg` WUVb!L7@$%[%, TT T Q#YmoneFYDj+3sZB -&\lldpnȝ$yY7[˅nT~1B[!wG}oW6(jDAj#g$ޠ#-LOлsEMkT1tE 'hTB˪jⶇQ,s \QWGA16' }p0 ޞK.ϲ>IRc E]:>|Y20K.h$*(K'o\*2ζ{q'k ,'ǫLP ]}To ;!_GqهBp 4McĨR !# k=a2>M?dNVPC{`lUtIbZ0PB"b.vNh4bo ?,L:A$$1<ΠXpQQJЯ !l~? aO1uO|:4tÇXfP/|Hɣ@)n)RP(H jY8JBi?eogo FԀG ǜ|ĐQ6̈́ Q\ESUN ޕ슻Pʒp}}VBkG[@E..RmA _g5~I &'| l\bx|oB 1%>ǂ{h٬=CI]lL`%w,5c+;I  " |b[- $bL;EtZGO\ʡZ ,a&xSu:^d9PUa~z"[qnWL :f> 23EQeEhܞ#)Q{e"Tcxб%a1aͮ-et]L <_'q}歾P1X  (YRš[U| ܜ 1/6^N#߱t!Hb95'Q$)/s8QQ0d9/_,p^Hi5w  wH .W+,{~M Sj3IT/nSQdKG mA0[2gDs.B _KeȐ >P4󋨋 $eE5H=}1o"#_ rd8qCBs_Ѥ%4U082 gSNLTjFoL yQi1Ę<|UVu.K , 3DNU Ѐ M@рC$ 6(tǜY5Cz)Q>0F%`Gg2fHQld=">bF4³jjL3;^օ'D KMw/bNefZO(du:'jt 'qiC>QQN@X*"S.s?A5%TTCx,C]KII$bA60F 4ڃ3^Cf*$ZsI? ̸o#OeB'Gh~!̂^E_d*͠Kg j- "C"5B8YL#93"fAVAG@ ZF.WfAJr, ZD#YBtQ \Y&pC(26ZGk=O2x{BŬL*@WpMl|0΃n5.LE׶c185gr9s.`ʣ3M}˜p\T8*另aE(xOqynIG\E.lPXQ W2=j=deDɄ^ry?Xi$Lh( D'2VZß")QH Q45g* vQʹ龱.N` шyg KKWӳ y&V0pyو^(nF-YyP!h)H }廬gȅX+dtqF$P tMlebSށyIrQDB" /NFmYpeF|2ZS1|f)8(L`#r [O5!y3 R [- 'Jٞea & cBBYpe6Fܔr Z1[Q-Z*-(e|{y{ C8ȷY$[I Ζp6XUFcb Q< +eЊ)xI@*2}e'M09&/<-u) #(|ߩ)yOAB'kEs.-J+e||gGitnœ$g,۽M򘽃`M]R:mnܺfe Dxyݩu!W"7UpLkg{=!i)]2ۄEzSZjXW$EX87|ϻdaysSE0Y,H4ҏ( )_Z+bHa$`qKab,NCCqИЪImJ2# %X&X*:D!Όf 654Qkvw")GW"PhhTDvxR3k=3tWKm8|9&&HzǮ'F)"7YnBŒ̤= @h(^\bVhVp2 V+59~UƆm?WJV2M(d@2`J3QBm0TD @bl/D':y 38+ZiT(-.E+2:Vu?EEpİȚ Oْa0-HvtUq׭+5NP&e?c-gv9Eܹ^)&yn1&eY$4BFCR!A  R%c7hS[cԙ; кF_d!]$"8_Iu!p7¥h#v/>PE<(X$&LD8IE"I 8 I#}6hFaE>Q%а*E9oD< ESZ&Bbf+!_ ʱ=!(+BT~\we$=m5\n* ɝ9SO) bd풝ę凋*D \<:ڼvyHS$ƞr֘WpXL$>rPAN؎ԅ(%P/BošΊ@  8%s!= 4%'8:! <4E%} ^Fyx}ŕYBND*ث0=i xÍ_p>F6UPq¢__cI D@d^xaaҬqٱVީ.gIWP0ȑR8(NM"M^!Ӻ~DM+YnTEy٪H 4vI̘^2sE3e%Br.% ) x吽a+s| +ߕLxWJVwVʗi@GF7mt!`hFDC '͙,995%"mG6mCQP q:u%jERtVwaɼ>'0 ӎ!rdB+=Ch1)U*0H"]єCL>HLɚ@ү T 2ҳp27!۟7V\77"+hlYh_ ;*"L Cc_11q tvfI ܕpJ@βsWV(+=@)k+'$+٩۝:cq@\TeDn K!' @pg0#csk sّ2PQl4ѐAjUtލ S:I%~&veə:DGQuxMʆ_*RHQeO }86TMg"%N˗GJ%$v 7Τ. J֫1B, \ZĤn1o~ph{#([%k2#o*Yjff(HC31ơ(h7%Z)*)fBY-1F C`J+? Q1 G_R]C;IHYgyx/DQa@_NڑEgAD0u-|~w2'P6FE,-&sibp6H44WQw*.YGL |,`P! 2DfC7YeAV* DH إI2SZK6Cq# E/Q#J4Xȓ+2BAGBSPs[ZN$t)H[g[{GQ Z` ץŃCIr#oDUE A&}26&mx/Uֶ<5WX(}<@mtN̓ \A |50$iɄ=V BC&!tu#8{y חtɉKPS>+Me̛0->&R"0CAzZGU^0D $Y>J3(L[4$qwɾCOFGQU&aɖ l,"͛ȩ =-MވH<6 ?PȘy8l >SWgu sgč@+s'(S iw tFuB LbF 9,%@RMbY'yAA\T'*'LA_ށAsQ>EEĊIˀ!86SnHpeѓM,1)hY5QIO"dAMsZ7Qdv(*& 0ESH⣊$8H6&K$P}$oMFu̒$l!%  p[\kr"GGNHZ  :Q &`KwHjPQљ؋wN+  lmڃu,_IO&E^UQ*D)J!Fdp #QW:u&vj$jY+l&~\U*a$TcI1Q)|TZDęiZ>FR( ^Jш+ wYLL-w dAq] o} WM#8yt%K3aN$!JfHx>؛a>1Mf6ZuP)*W}R#+1D! ߌU5']8-0"kXȭ[*|BۄMs475hh 2K̓I>b#X~HJ.1Lx%fCs$[YX+lt#7#xM(I ExʖkčTGԑp:1E}92^p` Fg*S{!ؙ, -!R?P}2I,[~׳l>n Q pvAI8M̈3.Gz72F܏@GAF]0d׏8.`hDX9Ď)CFlGƴU9HS$ #:Yq`4$;-rsXh~`(,J3tJ@Qa47-k1sI/[:<ǹk-҄O,>tȑ WƵ&S$]gM8a=P& ӌWLV7(%B $VbXXli&|ErnhsK,J@&2Vȸ/_W+23lB8FVɰ`P& G!}Y"#5ж:fN!Nb94_3K$?qdR +B8\L:-&ɅVs~ EE%JGLGHjuvRJZ5gTbT^H)'z-$/=qc%c[zyL\YE .d ւ.g-%8Ekbxs3J$d\HxqI@+:|]D v)0i9mWN&BĮk4R6" 6M;&Fk.+P>56xIEH.i n;&aH|*c,u_D |Q  2Okc"*u9m ؘc,dPPOk4g3X]7+m#_X<} "WJRQ0Au`*[iRUXn 3 'LQT8BX>Y `8gme&ث(́*tw\ /''Q`AW9@XH ~QY,}B|0E$DD|D$ R*'h 5 3xGfU4]b0v!EER5pLR 8Q{` ii"G3Ċ7ۋg0b4Byi1XCgLjj("q6{ %A!kasޙy=PiU)uJ6$IGȿkhTS=RTB3II-1ibO;J6$ۻK6.pՍ*<4 /M+YkdZ=(MJJq $H͒Yt6>r* P+CDUS&Y QTH 0&2xM@PgU&xM~5,PR)q}סlZ'< 'gBy~x=%ou_5hPH|^ Ebd8i.xtkCf򲈔ͱw5Ϲ-,u#hMG2g 691NYc W P (eЩaAH@㩝<0 Sk(N}QcJeTF )ZevnX yrR"ʩp4ܠHS#xA]x\(UU3F\frau4]J#]$a ONh%&X#.4dbgqmR4E]'Gk RАH3Ab *M3 0rO(R;^5޾ )DF^*%: TFaY\ێ qާ7 Tkng|4L ЁaYl{["GhYɣ #g$sQYWRxUԩ*) /'$8mm3A̘dp $ ^Ƃ/]ueWJiףt =t3MMBQC@d +UP˓f̆ tvLEXs>J{}h%GhzE`h`פ(@@J%~ĥ%ѣ6/2圸~. ^厺}^LY,ck,CA e XY H ,cTD jz䉸)'̉av(`04VXGj]@C qBUT ֶ^1O#`r9eT$ {5;Anx9e&'Xk[VBOFN1]4HU\ .K1A w Yt~c,mB.l>c3RmU.B[/gGŽ0;qǙi`&|VpY~R>I%ӵ'!׊o6Z.毱RrH/ccp9Pr3'/#.u~kSiہyo+`=ambz`L~%sڑb.ABY UQpxjl(&`FDF2UиL2A%rs(u؇R(4hLP_⪁MM;fD$ 2D )$d fz-AUOYlG?ܹӁJBbEfΒPxC`P\ a`x_pX3*rw27tV 6B[9C_31)Dctr;kXշˏ Fd2HFu@fR*…".eM AW۱„S+ 3m94- 8tg2v&~-)yoBг!"wЇM& ˮㆣ/ )(Sя'X|% 3)JH iI寂R^Kbm;Yض+b2vKηs9$Rbept8{fV'z+ߊu'?#SRR<(;!³o҃f{`00%8=VKA"m\(4}4!hfN"!4qhщ_E8($ e`uE^dOYɒ^N̍V#- Q$ONxaU ~br.i0J2\Bשevcf>ٗM5g6(Q m8THh,@gؽjN.]$U!H N1*M2/]:$b"*:-~6jb@C2:OX75"dO'dOxȕX6MJ<jPԤtR$/`qː7\T3=هlȃ6P~_Q}Zϋ9[-k4$5 ^"ˉZ'{=4hsXVSŠۃCiG w9xJ FhČg)Rghʰ7ezsvd:h (i5zB<@+ 2(lfM1L"ДMv菦% *h 4tekLw늒2.آB,O)>;W? c oig_W/AH:OU..*( bU~9`3)Y?lyh$vB#Fc#T2Dj/.0B*ltZPy1y?% 'ސA{%L7 qÙ~Z.˶6c+f TK#vH/;$NI:"ԝ3I:,"ƤPDF{0nFy0_d;"nRt:?`HJ(䎣 e1p9XF'+yR5(w eI*l0m$]j`;+~WK5zq+v BJk1 H#q/ݔJm6c!K͚%oQH1,lPP2ұJgQDDFHXp(&~ ? %  VIFetF1Մ/$C(fRJ.̉XX}?t W-sgJ +Լ#33B͚S)[d5@熣٭5tsb;r&DB2Wcfꊛ8`4X\d@2iJ5twenve!-;9js99LX 9t2J=F(q/[*l16? P} PC\kglg϶^hV 8jT~$V vljD/B4xG#<-HZr]kCcFmB^ZuIgp%/J䣝eUHW9 ݑ #Wl!H%pp$_twRV`!ЯSsF\ <Ԟ1J3J-^I)?Znˡq(ޕi^'",÷Csة'=3+z a)\)MrQ$b :͊aSDcEEPUz0E+x0b6ŔmhchѐJ˞=e`;Y8{,.ě5. ҈ 3wj`wr(Myk?'Woͽ2-xЭNCKUJ1`.ȝz ")-CIS6E!,Oʅ 8Av蔣 t|vG! :n@@%/} ||fQIU1p.RBo ?U\t3 Ur%Lb\+Iˍl"""WL+^$k ")RÏoqduU<? a?$fw/)Qc/VQ)?kѲPS| 6̏1BV_#5w꿬:<+opցN!v-vC'E 3 |k:vh [͞'DJ1j<#PH8Ju%Ip?*As̰,˭BDO*D8ű3n&*BC{Sx#Vc*t"#YXkvka;*탽7YII~X)D%!rV(ئ!4BK@ ^e=BrD4ȦHtw(щ _9v[ _w -J -vDN莋q:M v$G^&H:hH.Pu+ )#$)#!-Z ğūDgPX48'i Q&Dh[8 s" XԖuߞ,0ЖͅLɺdK7iKHF[!qbQy08ٳ:>(n<0L]p6*h6)jF$  6*ǵ*nF8`d\a m`3.XmD.H%K }(ڞ2d-s*"@lS|TwIO/nlWlk'}^NƱ qŗǗH'3+E 4ZW(!(3C6>"6@D=?u٨7rCώaWTd] D Tsg*(Li#' [W Ta] |J5K:+QM68X1wʔ_tgD(/^1F&jӒAxk(Y[Ѡ40T+ʎ} 0H۽pm(AMTz.c'Nh$tTP$>IWPP.(,Z(] HnXr/qFA R[xb@LP"lY5m|X*O Po6Drz\OEIE,)F"*PD(C2PR >Cü;@@lGKyg2X.s>Hfnq1 $>W9 t̟ ry*jO!̾.w$ [l~m6aj XBe!a$v Q@Awnky,yc :ږ(% $pբ qUU;T`5P'c榮b拾dOSSjrl92̸*Eaį xLUT*QPNUʝ6S L&G `fY<_..@R d'|'v=;٠a`ޒ_kKǑLH2[܌\L<+)7QکptaQE+  t,gԂhdER2 p3*l{ahdDa648cubBegj>xϝ@p}:I$]]ߨ>N6Q`}DUX ,*9K +2K׻H2\tCb㐮q7XjH WП]vlMKXޤ$jl 55cO=vGuI2 %D *P:IR23Y#*NA' (IdL,[bu,OX b|5m FIDBFDĪHߓ-Rlb˙-+P a}6Ԗ$釭0TW+g e%*bܐ& Қ(ĞZCtܙ XDIkԻ?,o)Ƥ+PFq?mvǖpA^Ah[8t|6t[.a#HE:@J}`ȍ##}ABƍݫ0ay=n0gHM0CA IC)a,xpPPD4gj g!X֥QLblj![Mzo2P2,Uޖ6^lS A5&FIĔ&`` *[z>H.(uii\`] (WyBPD4ֈ;ԈqMȉ:2>4"õhYsՈ REK^‚9%AN; He3F:LځCM"\| %[Q3(`wXi^A? "6I*zrţYYY1o$ҩC2`(ݙP6$,/7e_mѱQ(E2Vlօ4AZ6y}eO"JeCCZ%$uL%~ 8E`+w>eDl6#1cx.O82 OTºpt,J]^ᄀEBcWxTS]_.)8EcZ<_55xj1gckK8Tsy5թ4 4mH4&MH!A&*# +A7VUu} VٮD 4uA:DcMdBPd&Jtm2D A?al"a'$R$k N%҉`$ 4`YH[38l"bJ&d"DK?*aR7`s/|Nxj8S} O.N=NgtTMG}{L /̠_ki`'4\0Zf;T$ (QZ02hX' I3#CPgɢ>@I, TX+?pNu2\D`TT0ń@) [gEU":-hR K>e/{KS:iXYjkfz>ƃ2'dIS7F^-=埼#j' I;CjB/'m'FXC*W8LMRAzUF>m*E|) ;Ȣ8UiT8U   VU8DFY-u|$ԵQ.]HZ>=Y:+Nʼyj "_ɧwivV?Q,P奬#D~>J-HɘGv`kNy X%~ݝ? 7Rߢ܍pxkbFJ SXFmAx4$M~^SHRN>Nі0ɞO f!5HߐD8Ou*(-w`@VX#Q~FEvyHp&ng{* օ"ͥڞ>q\~l4/"Π%JgeԌ&D'_|S:$3"`]8)*{4$ߒ.Ct6L|S1naA/tB꣍Wbܪ\=&05^Dk*H+SE8?Dlw&Ra?FZQci,d nw'6xk<FOw,MjVlR;/8Dع%+csщq"4%^%w sJokum '`/T{a~2 )/o(j赗rY+9 ?<ͦd]80xR&8*fP OqKZ8NfD&oRz~a+gJ έI,p//BPW%N}GE5 U>bK[SK*GdQy;YPV3@Gf|<_&l<$@ZpgJyʌbN9[䱥} LR$mE&(Fn肵̺Aꔳ.pg,[2){_=,"̮bxyc&Ǘ:6z@{aeQ_rlR12XN0^"Näd@HJYڶt?qRJ{.c octPܘ*Di[(g&vjRqxZ]пBbќgYsv]tѲ ҚM߫Ȏchߧ x+~o"09[مe!5t=r%$8 !OE=%%4y@.Ըc(/8܀!`&DG]PTY#m*0A&FO0lp*TڃnEoΧL%M#ܯ7SIto!> jժĆNJ)^DZMVeee os%'me98iQvP"h>|*T"@w1H]ؕP#R`d8ݒ2֔{:5HEYtN ux#tӆGkRfuoh0IeS:q!FOE{0XmxLE|$ %HuR䂲` S۲(Cd]T>OiGT*PР$$V)]OR,VF ^oZ׶Y^tHuCt|z@JTټQii|~feYNckobRzZjB{Rg3~ 7f Sa`{~jImߒKڛH9O1 vY1|㯘GQHHy daD3"@$&' abMGN4w%BW D\da.$qQrO) (PO`K+1tu#q54xKkhJX2e>n]*D ' t a ɰ|H@8AimӔo' XA Z'<1"r 4؁m &.+?MxmI7Eqh0lʓl-a+Q? K%8)aUǘ9Ҩi[,fVﵐH7;7> dnb%ԐpnO;l(Ai1E?5S8:,1#֋}]+ *ARz1[+PPK:xepdLJ gHmYSiS'/|4M A=_d2\gx.A{P'),3i_* |;Q.@bn\:QmeEbbthkd Tc+HSH<v=`"Xi+Wy/ ȡ+.*$"*@9ScNkCh%z}5:xys"UBdxc2qy1˄o8d@bShC{ FhBT7&͊׺(m. QBۺyĦPm[ g$,f &D%PÁt]d&d(D& ,,ok]Fgb+kc"$pɅHېgcn%2O2U$dYbL*xF'&|$^zRH7+"£@%Ȝ UAz?7SCK"MJ^bcMCa`HU O9hacT ` U zRXCq vphǜ8h᲌46AH4{^X4`Vַo]A.R;TX $Ӫ$6NdւxP`A( Pk,"wVcN4!eu"s$L.;(lXy=y5B#GZY&)! h>\id%| ;ɛǤ"4}wCR(HZ(EjX$%ZD *ZegoeQ 7O$ $*_9h(-8Hf/gj_QaሎB(`xyn-JXg6e$Qwu楢-6M$ۖN>B+DOcEĬ 4~˂ Ju }pn3@ ƹX@'9 XQcUP9V&{Nqq&`ލ7taU6lD݋(vb$i@SdV\PiEPty96؇`-"R!Vp2ݫZe$oDjWc=-H[fLuTw|靾"Kec-=lTLOaCLI8@4.2H+^+AArΖV$L4&2-bDG,5)oYtKªѬ\#Dt|bG8M2(ȳdvY2Dδ_!&d<7YoKhgGJ)ZϧCm @iln|NEi!B/4|^9Tb*RnLgh^Bh&DW"1B$!\ ],JyEbE#t6Ki ޯ]\(fLy@Z|q-M#28_Y JGlhhcoeyP}QI˲|r*.쫍(%dX2/*.&!O-s' *]"GhcߐoH;#!#,kgvIU)2GHž>\R}$ <^yTz\{H]%`DQUm<׋en.%@X)̥ DM[H5)1R@sm%aD6j pCIau| M^epA;|hAJo `y u|U|aMt ۝~"l(B,$ ]i`j1փh^pP4\ȂڋA.K.-N5:x\jℰ nn&>BLE^ṩ#vӑɖTm )~BؒE ]i̚Z|&Q\tI#"$32n.?U5Sk{uĔ9?Q'ONu+r=r i7t8H`-q<dMx2N F ]4N2T~sx" bEJs'R s#mg`)[ }WPvPz;t?* |AA4?, @"z`+>d[G-r2+S[o `sb/KHh|Z6(@L,RYK͵wa #Am F, N :jsdQ6iu\uQ> `ZbEbԙ Ѧ~`YIZ,tܺmd X tzy)JQjdnQ0fq[5)-h(i|h}\b(%m[$4l)`E=PeXZtiȃR4zVC_NH3R#r"q 9QB)|(D@ȉs eZO6R"4鐈Y^k?BD~K4`jp.ܞ{UݑHɠefƃ!,DMPRLS~I sqC`:W6:;<6J ΐBg!~ 'MXzbŲ)qU 6*aF$ Z`laQM5d7b$J o«Ubc3NcTJ]W$ЗHJ4'm%|ﱆU&U3$ DSWA5I jJ"JB1$ZJ g3.,@B7Z ˡ]ve[j9C=c2,LPqՏtV_X~/0l*1\7㨼kx*2 }i:K̈́@ ?E)97rь=!#5̅%֏!H@KU*|4 #VS-!%|mGa݁iQ-l-ѓ243mL$hRť'=l+OG*'N3g󮙦p{[ 쭩X!Xa%o/0qt8+ R"S)<@hp X 7T>[;KU+CWa|"r@$sQ`+v%C5S `-PX$DolCq e2,OR+ B"r#)H^R~rmڬ#˟Z."ŐNwCGC׭kQ1]bkwda/t\Jk 3~1KI]jl%3({eEv7oH(D_Q )ͣRsc#X\V[hPN4 MHHTıUy$S6r24d >>,hR20 1dfhIK$a"7%HK&CDŨg!-IzS $.|xSSXRth aib&mFO*ۤKa%IM 1[sf ⥉ithhQ]In䉟36IbSݵ<'њ'M>jfF:B?tZA:?"{+ AžtgϦhzQ . I˂X8GIUʑb ~MIR~cSGǍ@cR.G%宥xVizz%B48Ƣ:oK:z7NNWnpә/Ddf M^nAPگo?)E Ў[.P$Gfj[%ଈr'O#ZEB)m:꼺a£YlۉUL#@ЭӶGiDo N.m4Aⰰ1YGK9Q+FIh 0*L{"qmssLytM!6X윒'ZOոjW*B5}s"VgNrZS]>죂=bK_U!SY٣U*gdc,`yh -/{{~ÑV)o))V*Ao)g44ĢΑ|?:L&mK%Q| 0NH &J4%Pni f"Fx OFy!.h+Q|]lT$N3h^)!MɅn~c77BŰ4bTEY/,P~ M#QեBoIjR>0BH($,xSƱZFF5r -P]B&B'<l`' RdhFR#+ɛo 'n4DW#B:"N@1G$@u(%(#QXMcMVŶ,X@vmCtx@1i"K"*%"_g!ColS!Ȳ;,1(~jԶw3b%K%kG?FQmPς*ż W0&~⟧Aؘ~^^fHdcQ2B#7)RD?Rf%b3bZĢsr5YLKMwBB5c{ >8˰? tD^+^}YC1aq&lTbݸ ѧU40Eʛn=朄GO|mK'cŏsل ,: fE.P¾nHK#ME,7iS/}Ș>&<"GRW{!|an?>kA& gڠYGNÏ-|qx`dH8ua7rTL[7Z`)3UA1)$e$3S خV$CN(H|S/ڜe#G_  ܝev,Eg"Xî ς0,[",jDZLffcU\[f|ou:3&ߙ?F$Bɸ8_w?|;gP^j$=*٘Qf wRUK^*WNלNNvBTƇ>V| !oGO`oOʊNYK e4$ݜgnv@|H$$DtyO] L(냅娳di];(,0Pa͠h 3d.g&8G7H&1^|ii8aDYK#:bkezee#`تBQ>~w.HD!B2?]f~TȬB\VP tX] ^-.EII ;*Be(xFG A@&esF#]؊Y8R^8[ɾ|Ih+*Am$fN0R֊ܾ ^*ZhPy{2j2d*F\+ V)N0 = ϑƚr0/R>Pl$*<43 DWW<6IxK QL{TPQCsbşVBDZ갻8Y0bhB>A#-_ At_P;T^d &ȹM`DL E#A7&XaHkYb3x^s,=35Ziʮ6UĸtEI=rƋ1i.E'-,U#ZJZz-'0Nl-96&b <=7d3kagO0CC"!*P[ak2y4I7ށ1f]#& Pߤ|e*qhDPd{bb&.d"6]I9-Q O >d?W{!λdB2rPEԢ*&D苝:PUQ lBK&BdM1̶dG(]6GHv%B# 8%H&-@23 *Dp߳h x0T UDG9taݼDM uD'Q1wi"6f6„5q52G~6I63!- 2Tj(AL`MFfo˕oЂ RCIVew%6L=AᎠ?)0ӬVĂJyWPРDu.Q6h蚎;G=-'XC)| U}M m#VA5B̸4 WsL By9#A>BYFl Iv, 7@ I1#W7]pP#֍ ƙi6TTJD>8(00Vk&T?a Q+}@%B"lv\ET;Y E4] h!b"ϧZFP &xA"!"Ɩц6vNNȜ\` ńhKkx! LRD{;xIHDkg I#:٭1>*-3 5(pK,-$DR$xDē\F {SGSrZPcj%X,tb$]N^1ܵ(P=i1HTH=旬M \Ư'2)L} IZ˽ kuI,%ϠxHC:*[6BtNV+52nt!Nfw;ObEBX^LtgK.3@2iuZqv5\ RJ(q6ap]+ҕh~ԟhd ( $6" E 6lPlmcHɎ|Hֹ>BLtdM@ p>=wv %f5+md CIN􂉋 kQ &4"PL $Ql]l6]lG+vEI'PlT *,W 0Q)uIFeGvYdoՠiK<$Y^kp"K9"aaFIia! !ވ_rtь P)lI$"$lDXm`L՛UQ tKArG §Ph1UbkkA'@*#eڝDLYlőV.CbTms JYQғB$KCl˪U2_d{PQRI0J߇#%wJ:zSdMxP}_ɫ+fL--Qqɢ["~M(j: i[c| Y:`B"ZƘ2Bi%",9>AUJNrsj" PYUy9h"M84(X1X7Dݦ%M Ö՚v|$1](NH]^((qqX!ZU^<-Vp ,O^g L 4z6MS\k50#ϗeD/>kB˫v'{o:8Â1w ѷf#:# R:q,,$Exh!ᐖb#N!K?D&2Glo ~˂r"?H 2v E (lW˷Q} ##1C1Rm ;ŋ,~>ʺmXLlCvR7 c-i F9"'Ha|K{ՂExi*Usܛp'_KDD.Af R@?'z}d ڞi҈<4na-Fh܈V+؍o@'Jv(VA;bsb!=-\ޫDVSr<:H%Xv j@4\F^F)$ң^,aleA3a\X2V1 Wh3\~Ћ(W\#H ՉH*cP$8&^I<:lIsA7**GߨNi*$ډByVͲ2Hh!F8tklX1 eU~]HMyCۜ!\zrŵʇ!eIlʑU~qR+X& (tf|,"OB#_sm6˾ lTg('Q$ -_n oO1ebЂ +(H&ѨmLjA&.U-nj{\ܢ5h['* mΪ W{iHW2"$&ėɴUJQ)/tsebDθV455xE2v9M"۪xBku}4Sv%HwS2IaI>ƆĢd.6ldF2bƟCUĥ Lֵۗ ҶwMV D}1q:YQw,j`PKf9e$_")Dצv0I20 hm gDUM;S5ې+Q:! )ge0r5gHM #la*\nXfܹH^~\Jn43z* 3qs۫^Gc!&ʞzULa"xmM-A>X*:PGeF䞬u`{w<**sT*TDH ʕ\0M7CHЮW+[j$j G!瑦^jmF\֢m!OTmYSlm$rjI[\2N zU e8T3HH_Z+Xz8 WZ褪&6pą(&;6 cy ExމO%EKxo0] TE恲& W/w&%@%b'n\#sa8K V Z-t2zkf9;*M..Cst1ќ=Ţi#>B 'd8RBLH%Æ Q2ѣ-K,tDBA7* 7xFZA"fܠLhL9FGdqs咴H.Ab˓^yIǣ$$69ћ>.OtG'eFarr:%Ƕ~y 6 $%V_đrhN+J`VԫIc3-)sp|Q &uۏ6.cD nBPӂ.BD!U*JͶ"oObj@V"v ?+c Qё qh$9Tk2/yȁl %e* 6c#Voy DÔZur#xp q3 !r Dsւ UӴɫD覼=5Wm8TٯOZ^]3wh,Fe/r3DP#XlhKrd5f6a{]0Bpr3LCG)e҈!xL,r{oDeJ9yb×AZoZtKmIP)22NI_nF0sXzZH70H'#1Jy7m#рLSܛTCo=D7$dwPCg%CaKJ_|hZ }Q• ΍B8`"W,9\ZVnE.I-[ayCEM䏇+v\) &v9g")V%@] R*5SlB0|YX[&k OnE*$j9ʽ"8r\,p_뢢> SqL<=xhQO_ko+ 攁`YrtQ<$C\뼕x\1R& O?NWSJSWL=uxBaݴ "bz<6$zFñ|\ HVyԠ0qO%hݑ{ Z8pN__up6*V x'MԔ (xbnS98ʢ伟$0N-!i2[wZ>]_ٖ3ucÁ0X35QJB´Y}TDq>Pb)h{ c PV?QLxDvgd= Mr553IFN NFPhz K㘒3J}ӷt;XOsm3Y$B[%=c+S|9%Pd5>1A/3]EОOGzMN3`5ԂE 'IdJZ36J!- [LϬ'Q2%/G~HxD ƀCژO6]8BƸֻ˥]$I=rDd(0SᜎBl@HMw'!"dʯ("mod5'*ԣ+X0[2U-0d%5x1 lwXX۵61Mo/5DP1\fVR81D-Ӓu3G!jʒM&P&NQ^[M>2ǃV!1+g]FiQPRt0ƣ1dG}.ޥ.q?(-IDɲq1A٣җ/֫8Pˣ³$L'Eݶg]a?!ۋwJ4b5^̈BFș`cJUd jVf>=XZ׊x%Է>_n^gTe 2VT{xw)X9>_K"{C=Fe mJ;!n?5pFY;{J(i2!+`HE?$UHKa JAs #D_o֒Sٵ:ʦłZacos<-4//~niRɟ&Z;bG3*3lb#e_19&'Z$£o ( S]Wf=pNvAʊқUY b^)v.\':ܕН94ѝ',V O1ѻlI5x65~zpIҌJ5S3vh+;\*PopwP!CR"̢3T))+*JQT:"[d*xEvL(/ѳ}+KV-2mgLU.zmK2mS-es.,<+-SJ-^Qvmftod-)˩21Z$BvoM9dJX:";a*GaYҧ{TyJ%P̬!|^^JF˼lGk[iP$>ZA$i{M!m\Wkd _8*L.>r*UtIm61դ{w(õ;7wFwT +MBC`:T;p]0ࢻky8e|C,yTo~FuSMFbҚ+0 ;,4u\bz'l H!i/ꌳ ǜoT{Q]ऽR;YltJ[kebP~aaþ=M97F8/8p8= _'Oq VIEuUu0;n=%Y ZPu#r  {*nnS ^ͅzxw8.iK6C7꾗E! լ`ZhRKqЬ4ի)ij_RiޢIa{=0@R*Y0M*`@[:^h`lLYw Þ ʅW6yB$ A\ S hqb`PiJ_RThL%mT$-*GKawn_loDgz-y4=(7dn)#R/*"{c铽W)LUU"TH"h&bdh2>q'V1SWq[LWW;Jշ!c"L~0ꊘr`ZrmMӶ=G.*9*_eK#(H,V /``O.M-/ʗjhlȻɉ q2ʝKEg+RW+&fqP8|JlW\%hRSRԎ@g+u?"8lb1q(wdлd,l%%+E^'V)(9 >Xw[1g;#~[d*d_D&b#+Eze5 Vh7SYh;(n `ՑN8,DV ɩ8J #aB>W a>Q2])hꑱp$'6"&SDf"׻eIF\"8dwfKuQrPNA?ٞfNJ8 g`L*f[I+nHa:"+>6M ,Dl CoGX,Vړ`WJrp@Qc3l/76)QXZl"7ndcL%ECg3WcP$gbp`No_F|-*#"q$"# ?³h-% ZN_DUUU(D)%6R驸U $ -ucG\Ʊ.LI"V%0(,ݡ^Ɏ>OymC߅=N"NBX;HFr$mu/X'KQ^y=JhbGBkd#{؅JyGg)٧agi-r[ϲ[4ai $hD7{"{~=Qk/ MaY0eN`[q1Z@/nFe^L.$,<ăGFd`dDvfa\K3ˉFHEؐ4o:rl&\lhILJ,´IzMk.K|VWB3Z+jskuz,Q^?`ԇӱjTh?BŸ; ̄| k2=wG8=63XjohdQۚz^PJmdS`s:zZJW3cSIS?-z N9#{V*PζbU)14F@&2c `X<5$b^V z-vHDEYDL#6ŶYPo5^M`'z:*H>NTBOѦG@L72P*A. Yy!A^ptI5I8XMKN..TK/C-p"li8Ai/p=qZW*k$J`^T5tB&2N j$7J&CF|J"_I*sNn(=LdMĽa_!0ga$& +,e|'NB) !aa-jp1kC "]GDZP[, NW5QסM;ԩڶDsuܝ=bIi_iɜM0'ʸ.Ԭ))|6Jj%X ةޥ^5KLdbyz:!lQ[`zCJ$tM4i<_o)%2ׂwIP]R$B`E@)21RpRK@d*܎#âL 1?ẁ vV: J.]4'`AQ6|3|h"2s&W?bZL4 T2AA}vv)BrD\@7Íf|#@Yh>eC|ea~S@>_I&%^bW&{dvy71}+)JןKtb9I2TS+{Z{WЫrBg cgڔ! ua5.Aֲ7eIk-vV3~kҩ'sujb͏-CT[*}̘Yn̲pٳ35,eͤX $2 |Sz54PPE$G6O`HβtdZӹʫl'\'b#х+v=0Zf ) =BT/Kݔai6)K J 8Ƣd $.2xLI >"i`QLuک eKG֦`{e.Rt>s?P E?Cp =T@}#,&XEV? ؄x( jp3м{SRX D(#aY.,/LAqLta4EMDAǽ(ԩJq C60C9;BfG!{Lq!Њ0J\VBQ*J޴bPb)R5Z،f if񳍄Bv90bBcnd*5h2G73PDnE "K8H"bFlޫi&%P.)5wVIG.c(V<'|WeaO[3t"  pWjFIBV\ OO7)(W؂ R-:P~&KR(3ӯTDÂ3y *P!9jhۋ{mY"G I3"ᒯ6ٻF>  ˪wL ӗlKgb4:ŕE;kƼNkDhbO3_ wO "^fG?[^DOw+Ob̵UBHwY f.r Ĉi&21l2д F mj-i pJ攘\&БTS Uhmz ʇI B$ũ ͅnpz:#Ue&e)Epx47@TN`T YpUWX)}DoZg+]CJ"+ /6$D`h>e9 ͭ5~|fx#m=H**ؤdBeL.OM<2(c+%ZXܿ;)Ea׋L̚àTɠt0&(.Վ/5+%[(T N,h1xRm_?*O&x;]QfOLu#eq.}64% p'wV\n -^"._=MLdtkMo0A;_eY"湞>5--%$@Ge2N<9fd_7uCO( I.Hf3O;.13F[B7D刌/z&+r~0 r9لm.Fxh|dQGA3] $] P" ؂ ݄rcbqj.]Kv-ZAU% À.B4i\g[LAgm,"%PN1CNڌ,ѶdaRȜ*HHo.+7''wOhœvjT &(cQQG-̕Df OcyNi:vtdr9Y LTS*bJ MjA,tv2nesmĞ ߢU N:hlx밙Zu!B "9~· wf9;X]+՗V&'_YbT9KI* AF{u(\b(.ltSmffM#']m5-6s +BE T@H.|jQԊS6%]RW-ٝ  ^,1L1D̳%7KCqOSYyT& 3ڛM)C=rYF4of2;$X@q DH`Hs=☺ $']3e(J-)-8c(B^,H阠pϝE;:wʃ`T ‡dTݦЦ6 8R3 ^%."3.L~B̖IezKM .N& hp^Z#@6ֶy2RMHQ,\ݺԽRjHoL^,sA)ki{ͩuY8"Y9*ZB+"8 #NŐƴly42,zϰ?' [h˚4A[B,&Of 0RT.ȝR$-Ͳ)_:1mH9 J7|_ #+Y H!-5v9|rvĹ ( ꐤzF [8vs0 D*蛴`1韤xQ{6Ap\!b-ue^G2#R69Bܤ j7%2[ AWq8(bܔ@m5QZDOg(rGh*dC&"UDNH:!rJ@KGD175x^cyrKA ЁRe3 `ێmoI!~A F'&y~"^ã!؁!pN$Q[' "apJz3Y&d!%`jו P'aJi݉ 8S]],fq/tp` H,4q ;܉tMZX>Xk#Q](/ ba*.OPϪDMF?1(߹LC܎4m"_ "䇬; B " .s욕B`9P.E 8P'P!l!$ ږt H@9yloR !+eO>6{>ԅeIR}$ݕOR3Iiòtj22TwrUv;̣! U 3R忊NRJq燃(` 4 B0f"PIeC!O$Ec#w-ۺ '%W;GVMr+O> PWT0dUriE{si$#o iHzTzH+Ǧ#{R %2Cttl06@ Ǔ}"(P>ȁF?HM{ aBjU:rhs/i$+>_4( 7`ԈZ(su)zMqTqu"TAH̵ c)s5˜M,!=G"trOBZjm-ϬjRDbҀ"0r5G0-H PjKyF%b- 1k?`X =þǯTF9h$%'i"w딱`MX&-sP9谞F*Kam85q1+FtV(Td78ɨU+Q'sQ.tȅ#ha &ʭXqaeDhL 4]|Fiҿ."EAEA"L2Ѝ#%.'1 Ͱ^p% J^7ג J)l/0$=q-fcOQX.Y2٪t5mSZύj) R)s4`lzvVkvF3=;;D5/,G<[eU6ѡbW? GѱɇQI|_g\vWR' x4c$&ig5|mlæ906(T%"[ E)LxP6 P.SN~ ݉ӡ?5Y "fhDشWjTt2WEaW(EMʕl C+i0XKQge2}Y!"i ?qQ~q:wڎ;Cq/a0-P̠ba `| >C/9{ĎXdME╞0F`Kr=|V!]AvJDd/HC^Ɂ}F’:MS?'g3ŧ"!IukMmtS A0ǡ wnpVcxL 67鬱6 EOMV ;6/OR?Y!GQJU.͛C -H\ēEifA36u] :=]\4o !,*h: RmK4 'y`Ud \"T DOKgJ#P8H )&:&Ȼ\ |eMzC]Iџq&4=AZRནjIV '@SH"r,^,8%u,T(i볊wU4䗬cpBd:8JSCn ƌi`"`LNt#)sdT'ሽSEOLXgX:/ɥx6=&۪-_ rmF3|o| Ep%˰vLe9lF|g JT!lQSyQ8vdɸ(Ϸ&SSafOaׄSrPaD4"xXxgBOfTшs ϋ7DL{&Smh˺ &LKE O.gʡ+ҮTW#6DHSYcPSީ PHY(_N̻(fF?ZkbJ<_%wtC4:=b0ާ7Xfr^BȾJ3 ^ 썰~=RF7X |VF-+f;)bz D3JN|U>/prru,cݪFȜG[,1LԮ0)HI%xbN(DRx=z&TPE'1\8h\LqQSY+OAThlL4($hT@Ru)EoW3iG`{,Y+mT=@*9\xkUF*&8S!IK9@|&!@cJȁQ#xԭ D, DL XZjoe%H`o om1.dϘYMm.޾4yB/7TeiCRahb(Y8z2@$.s 5*VG4@eQ;k' [4Fpjj}̤KRH8n'Ok*5Ar!iejJW$ qqf#݆aCrӎHwB۩+c"/٬ۑx%6R!rk}e1V`17Tnz) ¦=q)fr-9ŘlB4I#I$fKEl6[H1(hRk 58i!rA.m0 "sE;BaB 0mģhBXUyQ6o  ӇwƢ (&媯n4D;ڐݩg/;liB+i%=[kiO AAObm%v(DIb$L 8qHX̊@kD܇S(7d%1 6~2fʕ'P#ǡ*D㡬 R"M{ɅEȓ=H"F.H!3-bd2܁bL]d`0j4&B]a^7*\l^"RzI@9/8ZEF8%$1E7W;4oޮL`zoE0`WL HZ7RV*Z')Kʚjoj|&3쨤BYHؾ68fXBwx(5aNc27FV; oF Sn"q\J!ZJ;p+=(_U[n V Ѭ py$DBXR 5ٕDe<ȣn#<"\63f+4V_0/rQ4%I9NC#>@0>G~/քך̉ ^ %F4=5dpPVA!R@9 JAbXdQNa~=?1Ы(j1B僡H$7ab(Ҧ%CT0杁)5B$ Eyjem48D̯x8v7&Q=J96'-7vh55UګnCZB%tjS)IFR\Ccr]%rGa)s"}ؐ- #N#HrNl6V@j2+6jJj>xNa@|w(Y>%YAKuX~Y Ėw 9VN*!f/1&*$N4jV,BD(8]3vRQѾTF(ۛ+*AT%/тi~iG a!ӝQ%HCB Ht3,|33n".:.plm[lvŌV\C+S%_8ʹ2{kۘ"ROu%UgXp 55)l$󤘗1""QjSЅ`ҿ4My%&0w+4T T<2ubnS9L`H,Mg|^^zcNlIGlHhxKL!1*ܗ%)e7rQ:-qa-ͮcv: ԁtL\US'_ RLTѺb"F $R]XOk  :pX! `@WTzoI8wLYY'' \NDVVkCҭըYL*"SDm6[wԸlRIG J<`J< O$ 4|俶,=;9,ak)F-5fGO J4?(igMz B7ⰉHiprc!]A\?c  "cC7o efHN^\h&wU VЭX-XʁBUmR.ƣ$b"XD Q<`<,,"G#GLt$5uE"mCmh =Oh6itoBYԐj-8"<Rbkt=Cኘ`rS| нB{ E:T;Y UŨ~ccA:KtlȞlɓLo2 Sq|L!t:>(z%֏ -',(Gf^ tm-њ ZDrkj\"; w?*Ý%{9ׯO3'@5N'Ν!O&~FuY']Y\)NlJӧrPH9*>Ȫ[ & Umcm*HjIdJ*3xțжT1ߚ,r\݆U]H(E" Kⱕ>+&?/!TgJHqzNFEGB"o^|Ul'? JyHckA`)1ON.T[H҈>rR oA*K*[OCGuB QLXV^tt w_ ryMlH"[#5M7.{ һ:<#,/z峕*|)2-$3Lnv)Ϭk, ,_ZS2ZA9 vG"Ɓ%*yjnT sqAaib*ʑT2R6F s3 Py xk%ކ|˶C*R?:Be eKnTơ`F 41 F?M_&ܵAt[,t8a`O0ʂ&8|MV aT5h籠V ߄htR:"WJd}[x}KKO0bdF|`mC@|7|j ^DŽl D8FɋiDFޅޔY^eZ*Qf%t^$P[7! O:[NJT"Ѓ124͕ttBm7io(rAlS"R4Ί5d~s56^P|/@R<0G dJȪˈtR 2ܭcKVLSfndK rNM`O7DE1UtȊYۯg:ͦGM;''@͠ub¶*ye1/;qA(\Wb_YR-U="68**tG]UԜdr#QEZ)o &%vCV*^xcJ<x$M\##~ Re31;(7aQme*)'#~dp'])!  k.7 qgDQ#R$(~$m;gg+~%Y3R_cf1IbI@aY HV : C w k >  ۵'/~5d]`ZL#Nk"V"4aҦJ :$r|*AEF \ݳ?#lTR_"rE{ky- [& ,hteLCS^6xPDSvRs+[t4*>Qؘؔ20'f']sc@UT"!EXL 7En*B% 7HHBp1-J5>Iұ!^P9V NpZPST6bw"Vo٬F (Etg[7.D (5`8YCGZ.2\tAAr;#NpmfThW+LfR AppnL C5;< BK“1m8>f4p% PAC'21|Xj qَƦ/6~C̙. PxlRΫЌlSɂ潥)X ͋q:]f(ЪFMD7NZ++2zSpF2 H2#4Q!ClKsBcKd E{I鼴laAu& ޵$!S:2#4*M?1jKz쏙fIgHt$GAwnZ n71ݘLEKv^Xr\y C}!oXKZ^TEH?Ћ}Pr!Dc`9!7~& EF<>SD6tVZ'YH~c!~VZF_n@A'zC@%DžBnѥ'#O!U@Ҫ02~TP |v(V|Uw1910ϡ"}ґ1.<^ LQ&g9Z'^*dǞC20^ 0I}86ܾiT E3ː@B9wC81NbضP]{K_?E4D2-d[b@v]H;,zqC#)U鞅UV^nIi uT԰6+!vrN~F%f#n}VԻ=W3d|iXX6HBdQ3@C8d&}ѧGЩhqqqF !"/j;fddu@΄pD\fDP'N= .y1v85@'5,|Sռ炓~ YB& +R A[gvVϰ.v?.FTB,B-E TrEڱh@j*^$5Hɪj$W,' Hgfӄ}aPS3*,84Xdbu CԢ)g e5-$:vIPvxy/6hZYj;' J*L'-d/)~7zĤ~>%">IVr6cR hJE؝J`qOS.1Fʴhή<٢ÎHCm*l%H#M'[,jK| Z"B¢#Ca U!f.3|T^ PTМ?0P]wzE80$с4kf)!)ȶD20]u+ lAg <.~$& N'h!+,X@X0J$*:pu&WxW ?t`nth(r jY:̩,b ,HmP.xEcÀJX?ʣX!|)CnHs2lÁ"3 >vIˆ5d84h`08,N<Ʌ8aEcPAQT2OQ9J׬ePg5DDq$ʝ6+A2#n+ @r^yV4 $ !p*Urp RV;6!ٷM PZd&.rr^uDOݍiN(\m|^ 5&{u*ijJShސ.M9)%߇rz7.w)P"[ V KGaȽ Ln ~-f< N0%A ^iO|i{3QJ7#i9Y)?`%RiF u~]ID%*$ :2*Q}D%.zl@ + 6 ΆE1nP˦q&/Q{f}߂?HQdpH:x0ȲAfXM`桞~Ig;I,@dL-TX0ٵC6Dh#( 2Mp&lB|uV^Jg VČ]Bp#i^ BǠiM-JI.YS"nL0#lʒ9 ) #T X‚SG\U0 FU )8|D YbqDDLB""j:b|U~ dxq.ȎDLnկNL zDCsq!:K֢Rl-BRelx;iF2ܚBKv'D`X~9O8 J² Ե{sbO)!A\w`1J Zk!XrrN!R!ٿvB{ !#U!f`\0`N<Aᄒg瑯HPo  ֎p&V:h/LLLK6JƥYGm(0J,@yb )TT9RrwW`%!@k٪E9)?L(8Ѷs DžTYLϚ1Q6'6$# [P5wX&fn 0/Y]+Tē%dL2ľ1ީYb߆~XCq5]㞺',FR+#,oI ] U> ||Dx-#(5 "XYXX=l!L؃5Ã12[ @s4~ݱOY_utƶxcic $l{R"ܠRu~!g=//nLm|Q )6Rb\II~@O;Ktॏ"!E"JRt)/-; (ԄCV܌ Fu +j{ylb{}pveqqZ?EA3C+삧V.Qo\N=&sIȞENԑ ^UވRnDl:1x 9WډFOmlϒ h$q,GyL2[6I9^e9Jʽ%%$CQ/nMUi@)I$X⤃34nDg rr"`-RP]o9o',=޳6-#,L+,R\cq =!!=\ ^-|+Y^T HQNS$dXF ɠ3\CA$J9N,>Vi/M؄S.^f>;T7h,c Ow`R5#zY\*OCPelx@#ӝ໓z/{|)-֦ΒjR,o055Jjmّ]2>[vUA05$EYX-$+dZwhfokYP7O9"rT/BxW)OFJ*/ȇW)lOq K,TE0 q Ut=h"nPQgoJ\\k.lɴfYI3yfz)7H\lD4 fldZ'=3(sIlGRym$%.蹊 :oXm -*E輻&ˌ[rbkqA={\aVwz" BFIbK:d,)j#09-(=GDnw_Yݬe pIQ" m- `BXxȞbHi(;jc݉58)7#a4z!G!gJ qϴHTJ.L˰E_PC>x?z,% ~^ܷ'vP 55\ ~'b<1/7 I >OgCRy 3P%Τ$dy;&e؅V[5yjzC1dJef֔8bPGIIf<7ĩW8=0Kɰ=$YxSuH LnF}tm9[Z ˟TW5픒OFpHebeS13" JuFSFEfejܒu~\{L4[jхEXl1`ХE-0ܶt]Z(;h[2Mb$0˒2vε6-Zr꠆ʮsYy ʿ[}N%Z ,hGXI 7u[^P`"F0&_*Ӱ`ΆeJ(Kh Z|m0egV-YorЌeR`1Hz@_kWث_f}%h;xЙ$!4Z]9:!r2b'|r:ً ɿ.P5&ߙB3ŢUVgPLHRI|Q^\bϣU ";eYoԳ/CdV/66] {1BFۓG-ǔR1ІmIYǺzSJ.򏖗BN\2P_qut;(U0Tɿ4jhXgap ~ - Pct<\A!ىq{1S܎`Ss'%c3tDzdTΎiu] bTRb:15hn_P!BSϗɕG>6yϳ4GDĠV(,Yb.T)UnI2/C܁ "QB,QG ~ХՈrO@ϧ !5N; Rv.S旦fh~2trjg' ey  D OqYT+ñ-ёF+\j+(VڗT["xXa Մ:Yv{dREn`~Z\OD$tH5;L S*tqXtfja!%X)8X<}#%^B2h 5{d@s[}9/6S$ZRV2KuDțFMpBhD EqG].^#$-[Fo!QA#6L)8B7h]VK&5JdWH!kM~8BBŏ=Htޔ|^>HKB@^:uc; HvRB>sM2躓|ț7QL;b 'cĈ'B 99Z21&NI崹CC0k[6wYFm "0qC(rLOB}HOS[e#ctxrO D<\Ԫ%2nJ%2|E_'/ݾ-R$“q$.|5*Mkib5 @w[^"$ڌ%wO[N] B80?"--6o4Cl9Y! Ι $&蝣CHXu |b,sj<7T=f 31F_Ny,BT%xMCQcИFaZV^|ÂJ0-4ܰ3eFխRl4+̘So"XWk-i!fӋLE7CH [yS&+%ؙ+"9.v,Qʙu`ϊřȚ0 X͛cH^rTT=G4,%30j:3!dE NN&5Y8aD7J)r~NTW'B%OlWIV"$ 0n7)a->(` VEU_pV$O#$R$TẖU D3;.7TNz"pq^ _]}g 9=PfM.=/ /Hچ542D$ye^zR2}έ)L#J(]0n>/^(S\&'Œ_ȺY<'* H(h̄0ex4eˊ<<) ^0[I¿2;}^SL2ʙ1Ct&nl ~5=L%|w-%BgGR--9`d,Y>Kg[D&bT'B;2\s *t E ϺL+U:NX=Iy5& jPDWn,3 M$&H9L,Y%m(E H4h MZϡT0g5ܢ) ąy -YAV1Lr"g=:&Xր@+P35Cм1j!=wԆ+aHBUfZ2?mO2<Kxn 26lGBD}\X$"|8ܵ=x,3х0ظлDAdBLđ4`80F]+'ύQY^ +Rq&TH< 44&*(QX“E%`@RQ@єC!1ɳ*4Ht`qsxڳh0*~O =*4NlE,C0nnb'#cs?XTYg# RՅ  H.ht̻.g?>J(ʎ, T<8DZ4@M UsWj{8XEU_4%Ku']4+#wt'?J)8^!;sL)RlNr(J(ؽ߱JA[Eg9֥$_Rw'GQx^Ai!mi.侑p}{iaõ)Nѝu \Q[+XHRzE\4 LKCGOH(/ӯJFݵ`ၽ&evRtF"N] z"K ?nա9Б 5e$n^rޥ13WsxʟL LSDg\14.."&0dxjHҰ;KqKjmY2mfule"Ȕ~yFfe̕vJU0 pњ4NbJJћ I hCcedRs6T# 9>£ u}ȑflȑjxA!] \v|P,0XD&&`1t*q̰*W'HDd{q®ǒHHؑ( GZ) oa¾JiA*LXΞCBN(FOJHz ^D&“$Kj J+9hy")FhMf.6T,L9R3B&T}Hل.ނr20B&`ck1 3V$/_!^RV%훱23ћYQH(JTf՛+>q:l/A6f$A8\Y6NH3 섰4aYe@ dT XAd#ɊAą."rS|.k)[mnIh/c![N*F[:KVTZ&&*$)>HI '};Hz(~D^겖 wKG[Rf!v00HP,\S39HSf={" "\V Pu(b\JKBqʡDP/1eQ|x$́#cBl<&asiԂ_Y_ǃagʟW,h@ˢ KwV8=coWB0-yWՄ,|a-F*+lM m"h#OtS.̆dxY*GA.)| PGB.@,p\HI_<|''e~]ܻB-6EzV(O!t@rA# 2p@u s?.KQ(X_A&bFY*Q GR]S \% KVRrb>'F>o2²bd![vz=a/wJ\k$oeUQ(쨴Ym8f894:_] 5nfrI>5AOaq/5WP(Wkk ;\rn%忦nfy֢"GemSQk"|moߵo$w$<?cv&#zrsVJxM댖I\Mx0ER^*S &/h\٢i ;2J xI[j*trT9oO:J8cT^8RW}F*(TbG!(.Rb C"Ұ\Ca@r,bI _bDl]!lFŁ8Pxޥd+ˍ8qSz.,DZ)7"=4Vҥ&zWDD)`H\]7HxXL]̬p,!LHL@ZKv|` ; NҌLF$CiTd[*Kr %X[FI>OStZ$?Lcy -XuTJV[_-`^xVhu H ̋$VxEKKHv0 1bjKؔC1 y*0b_EpF.ש +% R9 uRP5#vdmr=sb>XKH02n|d\`pȤ[KReE$q k-EV  xN2|}B~Aէd:TI#P 4Be͢ P>xRն1ҨKI`pME0'L@S e8!TjBBH8ɰ;A_C(6VOכ Mg%5<),+ ;FPhEaW!$j1MtFh-Y[qSE@v >u_:XnQXB"d` yqS@d:l+EC2DOJQ<ܬN{L`H3/`blRS7HDREC` =})3oq% Fc|D<o]TXl2!0<R~Y=GWA? "U9mI" .[q1ژ!?([d2BLJ!dwͮWQ'TM~X(<7[ϸ)kq ΥFEq42~ebypVnLkuøB,%y)SAĪ(uEr}l_x4@h৫ tI9=/ICjZ" uD(gk5yL Ƃ1!]ߧu_P PR6G‘VT:,e*B|2% )s&|$JR]OJr".<[-XUIvaDQ;\S4 R(5@)(]jB&DlŬ]ih ρ9P+6tjSv$"!0Q(wp RDuzzҍ9&Ό̲A-8 ft-7>AHi=Y23Q{m/K8zzB;ȪJ" e<9GEgYaY*BB5BHZfC}0#KCPBFdh- @k=6UN\rIPiޞ_Tݩ1Zq1)Gc87 VPsdzSS#2<;|N]Bi]Bh7-n #M Howp?!Z$9n41Hzf},{Dž+|EFK] B?~+~bJ}ȭCL6s5RS LDj)la72DbIhKÖRUHg^n=%ò= )oHp TJ*? #vHďދ"$DMۅ%q 9nVbN(%ξp_[u;-fpvatt'Q$~AJfئZĬ%+!˂?ÁxEk, Yȇg9TyyѬ?#өUrRB5(̸^!݅қo CSE_sJH"xBo-R؝A,O<'2ԩQFj0ON^ bd}Tj&*c\*Lax#*!L9FW _,EJYuD!?-%+F쌨uރ^|0Bij>LDgp.#ۓ@BL $ 0ѩr?EAYy1^n҄%v'𵥞ҲؙQ0& +N N L0&(qWM&L@2. j:!@ƱJ701pИpnX6.Ō~\V{:b Da]IBF?Zw jdzY{\P">7r/a +Eʷ6$U*G-o04S5]JJ-̓\ddPb YXWX[1\O3#¸N7\*x  p =U> "#'Ark%)ĐeJp!< إ|5 7[>}$0:4ju-u -rSvEh`3#ٞɴqtoudT:M2~Ѭ *,.]HNͱѱBvH޴0B=#-YU$$&8"{“3:ND%H&W F3~Z‰`/'L>Ț ^0de(8)yVjX#O$2f Q{ER~4(\(3ͷTQSfGG*+کEy2g=bTLiHz3Ful,ږr>Ō]vݰ =qˊr5A XxR#HI&$Y?.єJwTJTM'ofHꁾ=OZ+E 2IrنEN  z{Rq}rrQR2%`؀IzCW!BA.L(`^E(-D .!LEMݕBP$cfx_,ؕ&_UT䡿8OxFD%~|BMLCz Ֆv0/&PZИ)xurCM jdb|mHK G"E|w#CuȏBHCܡ%]bYfɌB. Qvٽ%xrCD3e'\&ϑ"U5 I_+{J*)y q#"TF0GDo pdv(`2anf9n3CxEa lD&ʝ  H. D†ŝ֐^FpF^=w8[z6U{ >VKt8?x&Eb@A9x*ñmE(5uXϬm2lс4M!GR҇d$71㴊R@= s{PĻn5rb {wJ(МpYU=t9En;p,4 ʋ]p 3|l )-'b0KՉU`qUs Q8c5M'/CZe1L 'UH򙧪[BEZίh^hUfDLlrmmu:ykNJЌȌ݌gYFF/u}+J\gCKUނOT58&oRVgH?m&._g"|XQ .TV3"+Gu0ݥq\Ʋ3 U園ֶS!]%O]:v2s@72v*p;is}ϾJdQA[Ȥ$/K B|$)Ի8=%х[:Vt6*:+\[Иh2#XWfQ @-+d@_e\@ m6{ VF Gm Xpry &Gu8y&Z#-]BIc \q"1'] U  N \4Upv:?kRG1J> |&&Ƈ40X>`Bٝ:r`tV߫3M!/3 ׇSpAPxB(" 9e l>; Y8#"Ã:/rMOѰq \L$x_AAm/Fb89]|)u6Z~֔F(̠PyjL2d'ebKR I'ODk9`nwA|o@gp 0kvk[#h(J "N:7:6-LXI5q&DM˵EJo>=:!`4w;=^ LɅN-HMv^C݋I+hmE)4xˌDa\z|[fpnQP1] P፳)W-&/:ߋ=j*଀˰%7LK*2HTaAq)1'_O.bkӑi基Tŕ2hJ&ME**6>߉5N)9ڴqsvdEPum SMJv2LT"?b.WN^?>BwEs!d. N,ߐÆA-iU}1ȱ@ϰD lZ ^x,r.wwLmȜ߁,^X/A+-‹7Q vKBl6dJ5P Om1^\~2JG:D\n*S=K7Fw#GlMtc^M+d3`&KЅ)<' FC"!Z~D8t-^Rxإ]YH! +mCj BG!B'@fTNԛbpj2Bh7~x+L^INDA.`n<Zn;qϨ;GEѐ<$q])LNNֱz^d;'-LUdJjh3LcY5^ Nٷ5cjݑ #ҳZ=%b-+NےbB[gBРrLj@UaER -UQ$Cak:JP'iV3p3!Z\BކKFX%`h%iP,;Ru)" tLL+A@J.NPTƜl ā ; K)u0g1)嫸)2k'X2eT`Q1PX旋 .+Qj ٵ ׋:?*zD"OėR.L*v+:z@4DeQ3,8yR j pSQk5aF`)6Gp 6,G86Q6Mw^}ܙjZP) S֨Go74TN_NF-(]!pջOp*]*)T)YvpkV^S%<݋fmߜ s;=zyrn9=FpQ˂z&a[| /6+M!Tߥx b"^,IOX,AB#I[ @}8R&WW\0 Y51(HL7Sup"#[hU{U`1:-1 1Ɓl"e!z~3):F3!_Di8,j DX'h }Ě E; FHe * UxZR! Z, T"mrt(NX ,v7of VP6iŲ:gͽ;|LMt٥GȘW%Qb4W2d*Ίe$k-^sH_t;]!k*ҠQvM i#u 5:v)]nҖo"[mRңV m-ÜJZ{t jp˝z|H˴"{y!͍> 9bj_Ym{L3&| D+嬷Y:[Ds+ILOekA8Jd{/*gݜ~ÇkcqNr٣ 5_"5WSwĊN(,g!'n^kgƱ gޮujPz&>x# YERWmL.LlXԘA)^/E[H}4+'ppyR΍)ɃuK`8Qdkd.R:}F.?1|"vN(KԖ uBζ2~rLi\kXfsj^?"?:-$@bBELFP`ONN`Taq.M%/t8d As޲ \KfiL(Pvа062Rtg҃Ngڜym$I1&q8[`S$|lD6M_]ibĈymgA'm3;DQ/PY4HxhMvPxCn"x+@Ì.ڹ*8܆DټS63f'BFGas fr%f>5DY ɺ֤֡J,ʹ?ɯ^H:mh/vmQ:C"" V&h@} pQa<9 B@ب/(\ A Jq#*$h9)+KߖjecP'(i~(\PY>@+*ﺚ ֲ(EJN5?וfq!ӘH lsh/~=HWqeIV>5'S3IQrLܳCʗ5v͝EsʫRw5`aovy`vj0\G@./SǢps)X{xL$yS1䤴D).$06, Vĸ*3%pQK %[PVmnMu{KoMC퍑jloGod;Y%P#?ln v;ԗ(Mj6,V,A5tjM^3~ex;( *d">6Lw\I+s;XTXbW,e<[nb߻BSx}nEn0d˚V5o+yb䌜25 }.'Hy+IXs7JL)PVumGYFLNd'I%n{B44)'BXr[pMO*jp!^7yGӓӣ4 ܦb5 V?4jRD:ȅog[%^Z6 aJ5n^-ndĽ!(,OHܚ4ЈoYҨ'_ (zY36 bЋ-BXcd811G 0z~%LhWjGc&C~\|&BD8Zo.UGIJT'(^|$'bޱhC}x^T5X@S bd)T9;W_iM&I͈3G>[+nX#eIAYp?bE 3&R)Y+וbP0BoFys+Ȱ:nATqěōRKbxoV6X:(jx=Pd50無ib4G^_[a1\A#qhπ7@G7:S |GU¨1f]CR*{+ +p9$Έ棑TKHvdx}rHq_~'SPD9뵢u/Ք= HtD^ loyR$KG'itlFi04N3i[jbE~=^Lu֯ \42W_bϼ5!6IIit  (z^'߆"e/<1z.eD%1Ƞ ĊQ(!Q+ju+7 $1tkc}6˟> v*d+!+f&wÓ ђ~^xCV,Zj tY;v:-$dBGiJCbSsK4Mq2[l&L@C$SK:' Bl.?h\R, n/UܡhbvZTG86{vߟ(-^'΄ H(pI/(lhuan2Wx{ 4:Jp@? D$+u,y"aZ'c㢗ؒ|k=nfv-]K- EBK4"S/ J*ܞ{IQORL"j( 5KkmN ²zؑ#_;8Djzd_]Vl\h >^--YL6G)>|H7Xhe[AXb1Q-r w)#e06bt0gD3t(oH:.!RK|YɌuW̆Qysy-ecf$P䥱Uj4e֘+ *8qS&/$'#ColU_#52jFJ _="A7&QЇw/NEzMRCF~n:`DXYVUkgE3Ld 3TN?͗ڐAN! q<&3A)@1M2Ս,+ʃ` _u b4Ѥ9TDТ%>%#,0=U%?}AbX3`/jRH8,ӫg ( c:OzjxKݱnS9X&xXV#o1zrK^|͟Z\Ywev]kT%ҼVC HtDhAS2$18H)H>fPL#2t7";*Xs#HR0Ϻh9`dyPjM5$ibʫx?4K#:QEe> ~)ة% ӧ9zkQ_q2q9#M;)'ęUЭx Qx& `'YBdc_]b߰$+/BpT *bA8YP& 3^ QzlfU}y1ƉNvXB!2,X=#BzM5lL~؛4j(:$D#pAЏSQ9YU^EQP%V ~eBeG/ȑDB}&A3џp)2cjdh+&=?;01K*s drOX}$cǛ\\I[iQ WYO9Tt6&}tp4&@/t 8MjZSV dTMR8l*  ;0B ^nzŐ͹^w م=-vE"|!0fR\:.GT'U~xwxKKnMiYPMsO{ָLcYh͈إc~VCǺ -_y(e HRYW`. VB(>gR"xlېFA\d!/`3UR̷RnFK$lGM $\H͈ԿByihlzh3_5ZϴSA'hi.悔޴A$ oMkYYH͏{>yZyM 6%o#kNd%Sڳ* 1p[Dg\*cV3/f%B])PohXG9UHÖdf]_娴W);UVaOS_Qï-MDs2S t΄FJDT}&6rRiy1>w]xtI -*jHQau\LbKBW,QpYzX|OW\Ϗt@  g=vcϢj,J d+bkʕ]ui.,j9p/ж@*AZV(NlΤӠ4l DOI| , @`"MfȲifQ.1F~.M"iI6HhqjGawĜ&RA!H3i$Nq*%dqzq-PsaXK2Ε/40pU F[),i^j~L*F T=mڵ"Na|5o_*(&LS{ܓW8R)XYTN ~jb4n݅w 6W2R̾Z2Ks)&EUwk]x@-I-IB.LW" znjyԠL"ؾc Wu$C&qswrA `6V>VWJ*6G\IEoW;7eZ˅i)ʾ4WƮ5ʍSt$q7Y|V8N%hMy {UJ=&@bJ4>WaiU-ϦZ^͏ՑFl%H :a_6Vajŵ:/SKd-wb7ۯ.vc}7x`${~evwBfcwo(_?2j %o$Dȣ*c`M*bO6y@&"l6 E3?>#7"('[yU}\xT)fGϕSF$[O'[>,x1v*~M3"GA7g'i:[u]CwLi\msT-tbb:"]d",KyvNC%#Q!N^:f^JSfk#~j K-~ב'>qtub U:p&$.C`QH{ŘJac#A1r\_d@4b#D I*#SF]S y I$oOOȽfV!ǹS KWR*wEKI$3MW}k5LU '΍bj|ebq5|DZF? TR`*n<Ė*1(ٙr ْoLsLoy#ֈ 뷤qVxƩ.rRCX\h+E/Ys Ge̕-?r}IB6;?'A$|XYSiJLJf6 IMg 蜺<<:#Ies^ī>n1s8GuR&jwTJMӝ4cI5^}hWB:+BΚl/C:<Շ}nşuytNHQ^fK*Ŧ^ v@RG,yv%ϠL`$- |vD<ݭQ_̕f)nUzeWgb3Tu_k;ShE׳~ϢےLpZOoFnLoiIuue0[pCRהzs,(fgM+_"焲AUceG~`wA[a ߴTO &JPŶՊ%RUoB N`P6i5flr*^k ~e Ys,r Ŭ5Pt~-+B]`,@߇E<:,) T&hd*40*vZY/147vp%[M d2G6:(Pf!#JcQR N:f$g[g)W䝁bW-"H:3gAz heĵ'`ptTE J&迻1P:j]P wC-y̤@A#u^ʸᆒX̐ZܤޔnPX.6QnYEmyGIzBl`z My(ظ<{ҪҴ H 7eaS-q֏;wʞ,Ze]$y[j~d} Jx\](Ԟl^VV>|Gg~Hto߼~fG#cVĦ.EWRbv=iSXe8bF; I!yfezs]b4g$-<ȷ}HJX5/euLd?8e5Yi3%&6TsyYc5UmQ+Thi^qJ`0}ąS ,J,#9$懿d%>T}=B;Da9sѼu\XBm⧚<|NtNu I[DEc#ivH/e!| Ex) yekNfyYX4Zs̀$IQ^Or,PP0e1eEՅEMߣC By ؝(`aFi |apd" cGУ} *V܏eNU}gj6&i97|^qʼn2^038h~(-a>"sE{)"K8iYB@$4HYU",7Q/ _\HX |=D=! BRQZ`Hn .?6},#ufv]Cި\ 5 Lanf- D-6pxo xW Y#)>Y1?.iJ)0iE%v35pGk6‘'%wT5 (fw42i-]R D%  QEq02%%"EUƆdIf/jҞ0 +UkmG7qA]&\6-gzX)f_C>3ę=Y)>‚5(>LNHMxxjL]cl. E1yel NGhWaФj|=L!4)\c&%H朡83bx| J vDYnI% 0*lbSߔa{Ż@!*y!㎰ޞH_-oIh䷹IgbǛK2RŇWȶ<:]e# ',0<; "%HF`X5|N&g$+/čExlNR/"\ N+IwCGSU&.Vdnso{rV ^"lW斖g<4 K-wuUtS2ˤp:"]DUˌDT8E؈z FV;$!.98QETgKI暊C-F*,|u}:/TXQ^X.ICCc&5&AjI«/b:9V,aMcBIAy'mjfd B5VYAhRK S(/zijXcI\ & 阮T'5@LP!!`*U`қI>S,s +XhDѼJ\%>('ȊFP#"hYyT` xpR*U'Y'~Kʥ _YQQYI%d?gz2p7Nё.ev}^X+͌⒠fIQ\-@+2(āi:qƠ ll-,TPS£xH4$nyjKW~&:APeW;=>6xRigv QZ9KI~V`MXKo-SҝV.?98 ҏl`b.^D,d)fe"8DŽy^ TppB-5Ēq 0,ח~\mK&mP'!@m; 5IS9g%JHt^j˵ًR3TN!uLJ^5F"Cc tjڜ}XNV8L^v+8^Dq2=?6m(l I$<1jS?.d|)?%IlD]:PZ5"Sȝ =g 5.d DTWaۖZ蔌H]q\@|*I&ڋALTxšS(bJ"3roIJ>RJ~7YӐYKkgD70^Ö5զdȲiغn ;^-EW{DUxnU#)eSԟOD7UHjJ.2V" Oͤ)!3cSˁ6Jotr31SYBcGA9Dnj~.߸canEȗoQNCUrD̢ 8,Y *PLnpLiPG4T9 vh2vh5F7E %b5eM]Em4,6\A]1rεX4'ezIܣn2~( .+ٗ6Dꎘ3Pl>l{i'Yb"Bߣ2ܜ 24^\460 D%3QעpjcAdiCB2|)9,V_\W V>MqnvS|eZ&?+q((J[X6 `XldTɻ54W| ]tBM)OOt>>5wI'|hI^;{&Χ h„6nnA{J`D-ygib*lae]RmnP0ONa-Gfl;tA CGl1,Pqy=3"grGS%kjY-%=|aA;eO8fQ:DW!ˏ:l{l߷_WΆ,UH[NkJ2 ("j&SHL$id>j2C]L stzx$hv9y@B t0VԴNHBw~8NP6Δ\L̤7PظH0F5]/?Btl֮)pY?}rgN%8= 2J=%S.}iyҾ ۈ7ey ]QqIes gOErEα>TMd}yf# Cr.nޭeen̲"} _cY&}yl>/ku SWT'b$>;CFTFa>?lV"v%rhY1T D9 'X.%RFĝs>"'//"~C`Z$H~ )ӎ2i5ڠ}#QAnbG}WJb 8D.٠ԴaѦ-,1ݎhFA-p`>CB͟"wdf2Vn"X2gvoP?U@o!;7{jLrb딲94>u~R5Ւ.*1NqR֫FGN& ߏل 7i^.HGR*/[ "hQ$6z|EP7 T=8!p~H>!`n`1*!Ő,83OB3 ٙ ad~*KRsnՅr\z0}@3'B2Ql)sh;Z]jH3/w#gBsu VhxT×h }P2dvͩڐ'!JVM{?h2]V}늹hY8WF3uIl뵰Va^ğ-cjfm"Kܽ*G#UJ0ֺv@$trJA&DbAZNɰ0Q^ڔjz ˜Jf+\MQ6 M+̻ gUV>#WKFevT^Dپ`S],=(5j0I7{尞v}]Kr0k#?dk(M)4O6t DI&HQQZ$,(JK+9 U=_?]*WBj$R4>;UPӜjb$?/#PM1{ʉ J`@CWqU/BYOAAkt@LI+[{2j;,Y*Ź)㒋=Ik ,Q– m8Fqړ!r{+}(6tؘE@B4mQ\b}DQd^A,z tC͑|!KaTx=L!_yj `)y.z 5 |SR~)%y]O)c%m}L?Of̶E< 'Zd^ܨNtJԃcy&ҕM z$)V*cq&pE]|I4Kb":  p)\K/y8;Q\X)_܀h~1 2@A& c`1#itC uIo %gyb֢JeV;M֬}NT]PʠGڶpVEћ$ (BSB)IDե&ET5QR] ѫflRE©z *u"1668*b֥=­}xUc[oƂR*y=1!9|lLNF~zZ)C39`ѱM9I$#sMq& 0SU{c/ B}@SS 1\/X$l1@0"}zHnaQF35p]:-E2Wbl-~߰Qyb"C|ɔeJ}M}n(:"6QSUd\D0ٴ1C'AB_=UpM XI|U[bbdɍP2cC'sAgädP)SA27դ^2-^L(/,jjҲ<"b\!Zı):ċM hfuO.Q),W޼BrWdE!1 ,t~lګptvpYk396U&m1χ-s1UV?9< U_7+c#+H$rENN-yu.dK2n}?h!kVU.]}tW/26-1*-0`N,ZZ0_d{lY-*ع>c ɐ+5*nUb-Ɩ4К'.nAi[fF>ZM0< [cs鮩UُHXa;l&ƂyYZl|괂L_p{ofy-I!MD7ʗU7yjmAA I`! Lvܭ`hdTh9O홷WU䟽W}[c0i6m 廉"5/>͕=]mdmn VfFJ[4yފGF$\Ȅf]d!b>()ug .3 $mdԵއqYRNGИYSN  {f4f8 78V!%gMB ÕhUk` W.`lLCHfb-mD+ M9Eb*#ձJݎb!'Jj|ܰ\ݙzUE,z4odhڌ[п!blD֘V}PPFB ̮hz&T+ݤDbZ&EU] }%3}k!R ;^L5,x&&68gSqskr'EgjE$ir 2%/\sqmi$B]+!=Mé]@Y*eOw#A~ؠ1PE56v8*$btɉu -LҊ?>z[22et4Kq(HR O[6'^E"@kAc@(("nPu6ƒݔ|`n(hOgmyы9a%gJЮ#|%fII*(~d& x#YEh4\I'ͻ pU Ĩҹ. h'(2wŶ$DvBdQ˂@Y K1t=(p]|Ke|d5w llQԩxН$BX޹Rf?_mDGxAzO1|Or1iyAcӪ$/ O1LeZo44Iur{7hja0紷<뗅;8ЙYQ}5~z4DSF'o"1bG41  phVdmI .b4BSA9@aMB@| F33G>QO"9. (Oǧi%~I 0I*n oBs}mSTfHH5\$䏎Μc3N#Dž,X :B%+K_T5ㅍO 2|'OXiƽGڬ/*U!kd$Г4"b…34_}MUo4w+6$غSg= OR(A0ewXZ ^K} =lCBb~PIMR5!mv>yj_A溪?8)t3Gۊ~؛tm>jX_#&&l0WD#D1\ìj*i3b:oRLcwU :=7O˻E<%k-zГքǟ~x&]īY=ٮp,O+MֈQl0+dx@av1PWm{B9KD"2dle| ćH]M,A$B 8r:'`)0N ,9$F$阡Ac&̧ubFnCo\ +}]<{%ʖ"Is9ؓ&`EȈP;y؅WNf`+^#_DV   60`,&@:zMd#r3^7~E h;CIߥ1pօrN$'!;h2"Y35B4T.k%_X!SKr.R\qm",}C`F:T/[ЈxbV\$"v{| naI=`dݐދVTyT0ꠓVohuLfLw5{,JLJǠ8#!ըqH!r%ޛ@iDhJ1a)Ɗ/l!;ZѮįV9߃?%K#<8B:ƦB*v= D+wxU \'@; 7'V9.bv$K sPɁ8[Q$t7(A{9q^5ziC򏌿{NyZ0,"zJq^SIݐe4JsKyCaH!9^< ]nR^qg({-Jr{=Gs;)*r)Q\8 }ˎ(;D#e]Jv"nU~ t圧YEnJ߇ڙ't-P7QPr*O@ab&&x`j}iIkB)?qIr*B0 z\K@M-' xL@/$0N<&%6GyOE=މtoYQFBMˈ;WI¢>cԑzl.U_HFHTE!RФ #`%6aɓHV<$SB|A&Iuy{@yjJK[2qI5Ԕdvg`i1=Эc%o >N dQ -1 GOP.IHg,H$.e^cз_>3"G7x'+qeZ-@3 A)boXUž λ]j <ɐ2o%F5$6Mf\w a|hRS>< DWRE!tˇʉ;]dlvYo0 X>O#Չq&kP"GP4u)c]{oa] >e7~[zvr *Ea S7 Ʌ?s ٬Tl< Pˣ_*`H@ptE.M Q$0p}.I-$@bWAZv Mb}lȄY74D,au?OacNj75E T 0V5 E"dLI,urc aIqaV1PIO̒o8- 6L)^eb exT;QWiאBtw7'`-o6dI'hhM5!@VPЕ#3~~""<8yuԀmRGP`D/O&Sa!jT ߽!CBUfm-[.ܱ@VL?([y{b(&𼁮f򲆖~ː )%}]!i'_,4T:nSGA̶IX``FiK)v]m\7SQ(j-8&Hw^xQZ&mBgD9 j$1N,zSJ">ejS(2m}lI+(\}ӍQ)^gr)!,J534̤2-xLn ]&/ 54b _ZmS ^[M.k 8H@I53?'`[WO^2 & Hnw\U>&`!3DIEV 'rӭ8wHj ^uX}b'g$ip!rbU!4o?>#, V68蛾ud@_w;iK^7 Xb0U+$H.TV KjFi ɳ_&v0ހNn59?¸kJ]㥭}7 Ųr!z.0'5 5H\\  e;ZV.AMi _nVzm_5wB],؍8Y@C.%cP7pJU M]-/O ت32Am W5"f\JlV6dynnybdKG ]E% 9uA4鵉l ŷEGy0Nl& 33S{q@\A7c"ϵ } āK r,/'%|^/&X lYmu]GNd[|rC$rN}dؒU DC䝎UxZ#\-U"fBd7yv[U"q*H_yFm^H6!&s TmI1N[ש9еĦ9[^p MiƺYԃU(-- ,m&KzzͲIP-vue>zmsYrwZ ˒KRf.Hi3xQH0i%[Z5>$p+Bx*@T&lj&buUǝ*h |6%)IF$^UR84 BJVgd!%zL#~*7rd3-o1aS( "Mb,ّBM#Q+UM`{c=/SEHt'mGsP"󐗉|po]%;|@L18ܬlRhyz藠diJv*$I"HwWHBABBfc ) Bm'FYpx{AhV訮Q/'Z:q%hj 8 4JB]-H)k&JG%!kE_@[[m='5-%Y\SRU-z.Y J&Q&tCN[UWk0 9%K9B*̃Tr7/Ie$]F;*~b-RDοdggmsOeɌrM R9=@Oo_7_ 9p_6Rf0Q$L J\w|jJoǨe-M^+)OECT!Tu(·эk>M/Cu40CH5+ob7B|y EYT6x'h!ulꢄkK{'rTٓd jҜ K.D- 1M2=4.!*i8+Qk~XH6T]RqYVW FRFWI>mIQHP羑I֗N/WJVI5廒TCRCnOB|U’UDDD[U D`bOzN|pOW88:GUdĐs~rV`бR pr`MZ>5%%XPY*J~ۭ@ZY쉎>mkW+#bdrbeW6Y$Zcr~On)Ӫ]=xJ:–m=xW] i[]ҤDNCĶ (q[/+ZXuy ^ӑPðǭ+\/XƆ6v+5QgH!Za~%"'9pUUyV"B#4΋ߓ*pv?,%R|Օs0⪿}jU?TDuEs |w\^|\wd=*7qLH(ۨFsyTʼnFkyO[ r_'4ԫC#=48+HmeEԧKǴ[}Sm&|D[JW k*ZkIu5e coOkQ&4Mʢ"ZwdH(HFO+RWcCOn'j@NQ*oG%RbL_rC"=A@Ar3VfAr pB~NTӑzu.TBUzD+Oɴv45Ybۗd+10ԃIF=Ý7 U}TGlEW%U -7n^q ˲k$Lʉ;"8xP66*?U4M &afg8;ԡ^yAym9"o+LZ&"n-إQaqH tI+d.̈(iE!KTԓ|zDץp.kud%h-jܜbӧ='O!* ip3KDD؈.ȿ|Z:Oϕn"rZmS+J² rH$ )F*hCp `Ybo;y^8"vY%J[JGꊖ zkJ_qn_u8LtYSx3,) Od;̍F]M 7^Q&Ր⽽K %F±Κ8j f֖12dl~o,D#+H5C呉6dQH9!Xd{qE2J.xvo 45!AؽvTd>(zS椏+{գO55^Sw̄D7Zڦy+[4"2RYK97.J7^9 !c J\I95Ņ8rW㦥(DKQ{L;tI#:JCu+Y $!g~hι䐁&:)+k$쩷yOGvs/WQƪ]2G"OITBMfGuTPLWV{\m*(G(Vx̩UD#f(Sczgj]%13Pޡv\k#/&·ڵwVZ6"'|!A&!Sd%7r,:z&H^r`n-غ䖆LoM֬=,4hH+i'(pR퓳Wf &J"Uf35iG8YcMkjj9v?UgӨCTc͊"EFKur~Xu|l!yzBT{Re2Ӻ6v?ոUM@3{"COnQk*:SS .TǣƣtÎGV%,M/k[_JmO4b ^]n(J0`򒵒}FW~Q>&" /~Wf8YZR-F`>?=ǁ sAK&M;f'Y]3EXMwcW靏Tܱ*Xl(Ր1SB'>'2؎ =|NE=&5O/]QR88Qrm""7<*ּiB?<1/n2c Oن(?<84p9㰌< )B N"'8VEBXDowsQ"; ܺƵ{EDr HLP_JaD@5B^ʆHu@fL|œIlد*9֓J_Q.̙oG~bu=),,[y6;D@> BLb{dNOOQ&Ca;r)RgϥSzn~a"иBZmgO_4Lx&qW_ĉHXD/*wiƻȞџ*W%xcJ'Cs2?`qO170 Z(LIh2 ,,1M=u5ng4Rz=|z]{[cc=ع}CQVc S`_poQ*OʓRHVm5bGymX#D?<\1+"?_RBKx!% jdc"4*:~觛Cf.ؕk@A29e/* A +LfʯTGs4PL/3/y+3pZeWt"X.p\Ar$CtЭ.>,3`+h,F_ҊP4='R)2ő%f2I"2DTij6F \E11C2J6BTU^h1yQڛ1t*MY䔫=dܿR<)$hSQ[_k,vu, G ^}8EѪrD牟^dE>C (k'<[(}aԪ\L^[Qc,Fe5von}Ɋ#WAB,`t-fQe`'vD؍'k_AK=RW c^m*y#T" TRC؟J!dx$To7NuvJҏg&[JVrRTuOf9 u8E/Ğb;T0<0&2[Oo-)^E]y/ [`OiS" sJE7ZM/Z9oNb^UbQb9s(UƓ1 RZJnVտu~ٮ[d[y{?u&A3sYTx.Eh0N4"ȨZBLrnTAaes6X ?'_?z`lS+ɔSODRfTRV6$S#s~3p+a&C.we=Wc$OM_70H[znZb ڞzblr@!d<#j4tN*aӐd$'$]s0@NAD(&̪'߶\C5 D&7uz&EVн.!dPLg ;lL (441!Vi $-'LcKp<(ΘBkl>zGPB]SuQ@VSPIi*dqUI兒,'8+WОe*=pԑ8'Eg<$Tb-;8k}U 7˖j1KL* 7~FBLԹ_u(ԛI׸Ri3ݲ VZKuqi $iO]-{=g#aC֞F:nB(/K_z^Ո0lngi%a4 d oV=16.z^75m5!D_'`Q<'dD^>;eY"%/5Ƶ?{>J!!X'1&@0n!wϧӡ{?+VYńkc/'=~45 ŚIgL"Ȝ6AcB $4eo C#Jɡ$raD Sh>;YvcP⾭?a kpJMTl_ၕmr@uk͸N F a#.Z_Tv(LJ\`CMp=b5v܂c[ᲆK a"sorr2xLFG%YS[aKOꖢjow\x_>&2]-} Gw)bsS۱K&v6 x)|bL1@Jzd+Y&3?(  d:,oFk=$cvRI*"_)TtB\9v^t6EW"/A>AW\U;,բ9JKW[ hHVfuiLJ{1\$4b!ф_'հyz!`|2Q>i<"ǤGцE%rBuAELQ}:1ųiط?ܿDf @_ՈV$S:47ţc<լ(@xI/7w*7$)GwtdדShMnfvQh1هZEB.H2)Oؾ3-ɡW#mțĸOk+q06@"F5؎?+://ߒg)j1{_bœ:iMk__>Fj&BMF:@vN vѩ6EJ DQh*pVWu+'ۃ6-g=2lc %(Uy -2n eΗHy(.uoVP9.zPmHrNW4_(m1#-[MD ֌tD3<]2%d+BuX(H@2&²]RT6\ZԘ547$7"Aۃx""b@!D:Yj'7zVc-#ڔ7/wYΝwU>ٷPYK*.3%$W}u*|Yw%׺(a[#k4 _H|0Mww/+cN$6h8mcJ\"|&f@mL'm~biv:c5 Hd2/}*BaeUjm2w">$bގ qL$5mR 0~TLl&!l5 тݣ~!/YTN^EoH/$B䘕*[?[J,PK7RXELI/qͣSa`@6P3T>pLY'j',C5*zc 4feLI8@F>|)NmT>t 7${f(q!N1DV7$FO tCS!| U r<N/ -)Z~ly@#)U; 9/sjE7> Q ˟/B/kY)5ŨLJBQK$a𓔡{ss̏--3홈sb| Wc_#net/%zd}39* ͉xr\)3^0 f'骆<<`=@D@`9AP$(dP4%Qp2YZ;`7c&ZlMtMX1AFOIh S1|3,Dq>ۙX[^ji'qT:Oz#&SRtJ<>lAPnQ>қ- - 2571E!EZ6o 5xtB͝FZC Q&r*ϘDڪ\_-` O8ypHn5;x6訫e'L8)#S%oΐHI!,5 ͅ4H!.04_ BR'КtOfn>FD-KJt*|/Xᆗ LʑIC3P-e ]fwf|^ nJRӗF.3STyJ`rVr؝| 4$(eXpܢp|&xsEߍ45iU-O Ƴ3u W_N>V4SDޓ&,,Pڪߓ类'$D*gH=)^Ӛ}Ac>E~A)&槗ےF> ҫ4 7B)E#aTuxxc!Yg#)[D;TeB#VA`)G8ܥVR_԰$X)&; _\H#ko^|kt`2KHd#s8ժzt?z+;)0+N@>5pVeԍsR) GmA: U%knRGk Fദ`$d IAs[壅uOK+%Rr i .$*ŏa&GNHџB)^{EV݀I(}/u*kTrI g P)*,3:dkM)@EBF!^QoE> pp*1ᘨ8,7(PȑR [#<NkxF0d"(c LDLnB3@.JpM8 rDo8(:f@PH9\d#S. &Gxu:k[F#%)SJ„FxOKڸe1ȍӟ^aʱ6ƃS(#W^ -~} o$j" ""ݐ'ܙKt(zh EJaI.jvX' H=rn'l! i?)jb>G4*4%'!*/3Jwx,&^\nk^@/,"=_I,k0D^shX3FR@dc:RQ أjo*:,3gHT@PA3(a=a$+bb0-BV0f%C!A$oݛG1"L^Xҧ .U/ U XghҩWgӤ 5[UMRkz!|gBruʋ-`god[R!*d3w :蟾Q:]Wݸ>HِXPE~Иt+TD:d OuZUKY)pGCBV oUH{9)DP ݮN֨P)1ҭI$~0Zf5? kJmLs-;I%nH܉V!-^@ Wpq`BX ˳s!8IQ c5=og;DZ ǬڱR?-Z5uA,mߙP|^bV)V rJ莵n;]Br3#uMA#WX޵yGs$SD!z3`L?H(%WxuNVip9"gN+[U5Xa&(DbtSI,0EXjIZPZ]Xz+SeĤ5,aýȱ}\5=\٭N)f1)(qMϗt# EBwaCrW31#, R- e]DR@j+$E;Ȍl+~7**?պ5=Ɗ7lHx0ˊ[GBA~P*~[e4QAQO&W|i|ohew 9ҘȉESbc |S2]JUo%D,rћsg@2v%Lr"`%Y.kR!j M&0PhҊt>2u@mEXP-~3=T2ۚL'g- F*m;@ XdZa@..VF:pHN(h6НLGsQ 8}R#%Xi*sup S*̰VVX|*[&%f!@RR& 5Ų8~Rv-z^6p<) WLbj;|BB2.jZF Œ͌r "3ZHW;޵ֈ݈H;E%jO8_J7F=s`lB6#) qf((_9:.T`g (‘$4\0Q +LfX H\D*B~9u@<6x70%<>nϐM 磡2}gB$ԂfNI`L^'xl`I5nBQ"LzF%EՋ$p4iG0+h2(J( H<>T0~iikrenfl~Ȋ];nDcdh@  =#~HaVhp>@& %Y)+a)pktb5B-9H;U!pCY]PUen?ʁ~\ O8DO' [I|p$"cCu(%+d.gB-WftR.|5Jr#6PgkͺeFTC"L лSM~؏I.ʶЗFO\ Z`2Doi|emMfڨhʎKR$BѶeJ&Sm*XE1Ru A h+vy!I ib^4LȨDG<=r ͙&GppAQصeߦN&JA굠J< ݋-)q!EzGcfz) N! I6&H% C)0'`T͢2 DJ2@X+vͻ?X] -YmfM*3?JOxXc,;'?3܏R/y3wbbnKB[Nc)'-}y%IQ(w8qѧƇUJ)zQ צ54f [ݵS 5Y/!/x?J.ZyV3\YܨJQdA9Ki='xBD27w[,BBd,V0s13otjӎ{+L>KbZ5;tHELtYlQe/zbzc I/uXz\2.VcEY,?pdctY\%u @BޱXڗAT?l;dMIFs*ߛ0 @@UTKBHYU!C_ D3 9bhrUN"_6-QV:4SMy%CEyHTW(Fx {ՑA0P2Ƥ i!ڛI?%%/JmYgcTESjcZEc<[$m*xN%1ȆGH38Lߪ>Pc)tU:/8cs ROfԇ͛"HeR[*ZwDsx3 2QQ!)^CkYD βrdF.la+t視"砏,xCmmY"T'~<8[X!? }/(BWhJ{uZjɞ(f-uC:LE;VǂW,N^>$m}&6]vN*bJMT4DL8p3 …E(h%6 :w "ʩxcq|zS;,bJLk;ToIf@ݽ"d堀28/d>SMn]eV(0jB) (ij~Q0(`ZBVW,G43,a+zyԦz N~C4Q ,xK{ll46{M71"_kTȈMZIp=)F="^Y}Ysbngqlseb|()eF9e$L J <&4Mwp nn?ΆGm'aڀ/ 4|E#)q^,%'Xzj$ =i-X7f$_)d.2;l)+lͯF6f2OWIe[\ aeA97li91hնs gY6uNufյtѣ o}0>gc95qrp k/Ȫ(b5&S\40 5PfA ! ۺ"+ׁFv(@%cnI2$ -+HZ VpR"S߃3hmI}Jnn= N-A.eKJ0@64TcbFX &+Q`ٓg}{"!P#:d`EaMl #W2exBVA #zR |+ѬT {]l}i tյ POr32 ɜFW9&1ZMf2V̫2I:GI3 jؖNbkyTyi*'F2'aңt__oGԠLW[@E"SA%h/ITWBQfYbg $TG"B&\jyǛ@׳AW"R~Q]S~"|4!jvcxذl? &"Bd}@>cz4 `\]ٕ6ܮgT F 64e!XA:zB3si@ HQސK^FҠT#:4cGG krCJŨ*?BӎƄҫ;ꐤxE*F%lBym&&#+qEiˇbl!W(;=1_Ē92Oi%2!,pC*򸌁z'li}S͓U|!M9xq猘ag#bmw m7`l(m25?4Y뫼ҙR"ؕ)B) ֟bv^g`сE ҥ)smݒGƴ|ܱDtP -3/{«l3 ͚gCk*ݓ(f4 $ ˤp E†Km LT @f5TJKnۧk_cW.J}Σ~t-6G\ehX"X~9bz-Ra\ߦL$U[a//y:@R{ݟ-i>(Է9 J3\^8wrnu?Q*_Ό[jvuO[zq8ˣv$n;R7t)4 -{6ݴٸ˽o(`rTN' zw1" 95"RW9fIX1iu +1N X> j'#`ň=iֶjG>;,6+vsSمJ[BwWW+r7 ElN?CQ$L F)ɸ &S)QXse@P~d7'*.ek/aUk LLLacbh8$p0@&†N܂{qȄyL \~BQnhw.ΙS-kوY3٢?'񶝦Xjb"#-6ہ0BUV#xSbq4XHǪgBJBAvPU6f%lt+$;bEid, hIY PJT%ʷ֌t ֬{)?ˉ! $ls*DrU(iz)P"g DMg!QsD4./(,#D O̲O)1 v4~)}z)PJ ;傪_ CPlv#oafl#nHiS;C5{̄%bHȨ-iS<>M6lFlnL8sk|ƸL1p32i)66585wRWguҊMK[/)A[&TVcqDF%84tkuvsJ4/ĥ$ Fey1ʅFLv3'$f_;t: kTd5Ts;PV2L.ԗdS˵[wM SsaێY vG4z/-K.-J+_4pRc^#&R)-:R}z(1+#LA(H!LNal\Fݨ*m$"W&##S#w`JꔥB¯1KszTu ULQIHszJhB50d%j\7wEC^hhk-sUչ2LZdмfMF$`ڧ+m>R"%X> ON5HX~PH CLOLNh h!9ws}[ZqxyFE0rkv֪S@>%I&chIVC#D`Ery0Eca:|}P^- L1A%Av}v)-rgd$Um%QR)aG& Io'²*IZ]=hx0ʜx-F&0(20N9 էnuph+`ߣW,(܋._R!DmutR>?TY|fGAgq-_hA$G2ZMkN8/bU dݙrgq]?/GW`[cۊ+ Hk0˜GJK~G"qQd_}]+1oɐ3)Uiaq1cc[\~gtP‘OAe#6Mg" [F*5뽖=x,3g%BF{ĘJN ITBI@T@MINbQ#E⾦A[cqLf5f4~^$;.D#W|m峹zQr՗r^E8 & θ9¢(GUjv([(g{D#kF*4.Ql dw-j*O;n88ʃm}k~iK-\ U}e<~G!a+ދ%ڝFrR#<$Wz($(fĘ޻MI4ʊ%c9*_Bd*Q!T2h i2'؁wk ʈ#fWڥD/׉w-H->s~xuRv0RbLnR*+:G;%ȶF&E _(96-IqNKѦ~$j y+2 QNt+3-sʫ 䘶 gpɋ_aiɍw *DEJc-7-Uw@)3cI˵2 ߲ñvZ~4)fl#Q֍5+I [CAP_5 *b f]7õT ##~I <_V"4WR HWb*!F '?ZO*XisKtrJmu{^{b:$_6x`ΜAqxg,_'S}S.k*}l}fQڲ31R YiLzovS? .]zjCAht0Y3*Y_H2#uxXQ! \-0\nqh' c H DN.nm@U`FDV*.Rm3LҬ+~gȒNHwG*:묥Df 1JN-6+F^:U"YHN5^48zщG H(R鬩.{,]B~2;fˁ5K`2#A+A ªۻK]˙ EP$t}%Nfa )>4oSHꐋvF&kqqx22 ̼k)mC)fJuI97v",0ho +eN&Zr%-SgߨJqc/olfAmg? ^>HE(4'SYL5EI\.ce[Ɨ!}eҢ)_| J5zKJmZB{5rg>BIm`YfWjP]uj6,.`~_$|c(I>1a5b$| b0%3pM$;y7B9chNϊ-i3 69,cml(LjLzO0{f/HHx#0gR?L*z6{5R2J.G=S+@A{dUi\0P@歆rFGɈC.wG|6sӷd=dHLHFp W+H+4z;$,ю.`0ue&Že\8@ ̗lĊ]KL(0o)'H esH,h%u{t%7qsQp^1C΢\q)*De^*M9 7< V!Ii?0=(qp !6) ϟĞĭE(ѹcwdh2Iݮ40o_:,}NGٔ|=$VSscҟvÞD !Z˵Eu-:xppׯJ#[ɸ:L=q;|{YKvSf ˈj#)<-g6.*Lj\wV+,? %uhyXЖO¢gnV=@@!;Vw݃6;ܲډ+$DuXd%ƪD#!K뎜YC(*I/4Zra)H$!Z,L꽫3D.[H'6k1VD@I{**q$w9p^l0 FŊ%Vhp90ZWV]P~Fi BVEp ^|42sk!P3%V|:KŃ#Bb#4n g ~ Uk/)IɆaQȮ% J!2n'v[KM |C''zJMDw v cHB~y#D%HO*7"O1@"ŕǷe)g>:^*fKJ_NQV}GSY%b+d;}ʩeMdI l\f&[#+-RvLNf X+~. aCT+e5R1)v\??[T(E/%y)XVJ "a2:*ĖhNԽJM}aoҗLMڜ79JĦz[% ,R_T0`X H&SF>Tfʦ} E^}dCbRM Ba,Y'K8" eqpw^kPV p0Hzߒ գ6Bi]VM|Br-/|\~jmEF5 MLⰼk23= G }Kmvj4st ٬D]kU϶:/$U֦qDܭe‮llO)pIFBf}a:W .RdҲVV+⺎֌kt w}HgHf]!eXPgRGDrDu޶B/ю{i)CBz.N'T1cy"rE(g7FJ%3ަȜ?OEUMgkK+oh%!?C^.vM)E9Bˉ&`yAH4XJ15"}fdC*a4=JxJ\G`ӋQ*bHqAr/8Q8tϾdb*Sa2,dtrDX%AZ!-2OV!tL C08^<Sdl}l 0%4Q"*^MH4e8i_hֱPXERJDI;4\ !gZ)5gepܧ ZKr CvIdgv~k=+?֮"c2}1T(̐%vw֦Ȗ88ĴO(DmCw{i"ʒd'Be^H̱ ٹ Aa)%Up%I*60+Jq,շ1>9=.Bf?-he0=dȑG9X c]',FH$н- Zן?y5ߔ O.Ό(D'I--TC*buW8FLqI!,0&vI[ S?#A^}ں/$Fr? ly#zAx]{Jfp @쾾_A`nbRfjSPc:6<,&l[`77n(Ε#Đ+e"Ueפ4KMYw3BJgj쪴w 'F4ϛr9R*bl2 &NY7"x;&WF#4 (: `Lm2eR{>sPH%zr>XhFxՁ8/ BFN{ixT<$k|'8LbHOZqxS@]@kP[6K2,X65y5 bP \*bQJv=uODV<]Q,[1AcdϚ u}qZ6kh %lM?<0AZa'&m1q&OB*d${7ӲǢ/MKɗUus"w9Kyʏ$Q,cP2b-DK.%˳S2\a&%6E ٮtDӹbڳ(PDŽ426K J3Kѡ/ؗ1;OR2YԎ@G`dSĨiD[ 1ZΝR׹ﻸ0⃟. $$F+,1Y7ؖk}޻s~J9aʅ…)&B`k :%KM )\VgxrgN)Α܊hg]+wa3Ovm) '3(܏E A'zs1]wBVjkEx\7j{Ocjk3"Ba?EfB2Z"a~n&G4;bHm1xhwu F-Uմ(l|23 ԥv|&y6jufnqfc-;iiV ,,,Rq ,/0WOyI:eN3j.|l,hd_z<_67PEU>d/ArH&.So656 Y)C!SJMHg*,d(֨ΧHR5"/ue4? m-m[EږPN"l7"`tDf~QX9ֈW`sZ1#s^狮c3u$YemI !Vлw 0<%cu|qU qa}ol1\ lh@6*Am&%l\脒^J^FΰbbFj}'e쨟/~I]ʶG g0sQ a M. Aě ~~?Kz[nF|q T|)Gƞ펈 8\`BSx3?/hp 5=m,׮}& ⬴,__3abD[VqYyDڟW-4eMb?[fĽ8ǃFDH9%6 )[~?$ɨH.~{Ӗ5wTʰMC~D2PX c(6/%Ȁ%fKb|sΏb0.Hu|N1 P PJ7#K$U!厊 znݻN?5XM=(SW(OGV<8bnT3ԏzb& [ F5bNEM|ydŤHwoB.ll~XMEUyR%)grlW"uNMFE(Եm-\_1)+䣣ӭi(ZQ]|FD2J\61U!TBtB4ҋi TΘs=;f+VjNNm UȋS>JPu!*"74GUHv Z&`nIEd!bU|rW&$F[АIƛr̔Ybd􃊆]Rlp*fŰ~kKK lp!oUg$QM[{ZN!hreѥlCɂij:vُD49חPVsI iw5hMϼ0BV*6Yq$׮y+f6]4F5cR$0-Т'!Z+1fQLvY',)\)qټ)`U(݅MLphySZ =ADIV&b'xV`q:Wdل6Fa^b@HSsU4() @8´/2hHy)0(xD*-)9=LqlUY S 'DoD"=[L5c(sD&65otdͭtLr P7{IG8@DlB75uP&;/@fEG*g0f 8UDG]GWJ{L"DAU#8UTSAyi&#ry{GKe2|^m $A;>j֒ռ=X@(ހRcQ-Z6ԽprXVl#uY[uR=ƴQze-ҒgIQr8 y:gp~F žXLg\ctڶT%׊H 2},ۂj+pF;b?e0Pp G-JU5D.Kq/jVT^TXnUK? Su  PtvK?Pd_*dsm:u+mwԈrA.0 ϤZ/CcF%B!{T@Z@R -R~VRb#u&k%}ѫ=x;?}TȦ' I*oM13u7)0LAFP!6 kfRr\ + T!֡XC !J輨G{X*PTIncE.NBJ=}Zub8"j仉~E`/ehH`'ڈU9 {ʶKK_}R5r:=rC,y^^ƯLHCd\~K^ UD%2v>4T CbafB?VCS9;K9Enȷču1Qh4B!'Ȧ"$4…*"E #(ZA"4 < MujTьz0 l\06ZL6۔Mh y?`B;nW } 0q&4)K{|JR`R&[J [`R\lXú4gWH~k5Ϲ7!yC͂mA؎(] /9CwDToX^=3a[{*q}o:ak{ ץ_m.HlHjّu5s(o1$lҗJ)s Q/3gBpF>77һK*J WR |;LXWy&ص=Mm`_{BnGdz{LE*v4^DA)kH@!v`t7$[J-JY̑n $c6lv'i.0z NC9,=]KJhdb<3Ё)bS1shK0D7+l6| ,̩ -űH컎A TRsQ,Kz@-͟EJV"h|,)#Q(ECaHW N’rv")]gpd*p&@OF ʤad6d,MdF'䎛9VĀjlRe5c*t?5Z@5*#g n5S@`U&C8[Knq98+pk.̾iNԖ|ւah3&o ׯAdgF+tCiҞ(Ij]OܺgfDtHP[N8\Sl+fɨʢ]J ~ Ҡ2x"_KBe ؓ^-2rѩ"\kZ;BBu$ ͭu  eOmwԜW;nH `߁TW. E/ gY?Nz G; 4ҕԩk.!,^/e')wxl#\iu=0Bfr4t{7pح.Иfk˶1 d}*&YOɕ<'EydW^bcPˑ*Uو?^uU)rDw4EZIMdZ% EQ2C χ 7zcMX 0pi{U2KaQGO*%Ԣ {C܆v𻗆6x7 g[8UlXrMVF6FY{|ѥݢUl&rQЙkxBixfISċ_ 7=_I .uu؄"s=84&yIAJ<a$8lN\L,,ޢBco)zͮdJͩD,G%Ub;5b%58Bޘ߅MkQ&tzǟ\۽&O5+qlg\LYg;yKk"#tYG=}xq*4a#}heDxN̥ Vu)@VV۲2? =`ȟ9M&V.EYBMJ3cu'yl,?JqSm% HK^ٌ2p~_,Vh#Z6&%(~xhU]W>ma9_lisi@ηu)t,xcܬ:Fˠr<F\E 4޶]ʏa5Jk1<.]O5YEO-Ѥv+*va95##Z[ț_Ud&╕F%Љ7,n “Uo:D>WI;&MѤT"~텨MVJieY޷`ƥk!@*rlݩ-Ll lh3`Z\U0 A\ Eqr#$)t'沴T!M<(ӔYtXÐVY6] v1j=hwkBp@5X Óe%Ε{8RQ'~L_p@ATI-;`+&060^]݅A륮W"G*HKLw/d"|tP=m>ګu0.tIzt{(G6 1Dn7JHFKs-u6xK0=nFV81Z>l&MjX !:*]SE?1a>ݔy 7q35M* GM'f,V o*f`0/0%1W28C2wtʳP=NnG݀&6Ha%VCz]*e! V1㫇ԉlߴGlkqԹnM'v4FY}!^E31gVu]1BDb?&8\ԔU7i@6yףOAemmXIdtjYI%"ڊN4O?QPEuQ9EʄuE&'QbNy9g:K3Ӷ.+K* .tC%BWeU$aX [S@^D6l!hI,FjAs;l{YHDڬVu JM a!rd8b: #нA2dn' \.'.nK )jbC-wc6lgx̔5؆ p z! [?*邾@`q;|INɮW2~f,tZVWfLN n7kQ[ 1D#ٖ9qϪJYG㤗Y#}j;n؃h!^7!0G{O8K_Ϡ[1L6SYtYeL#rٷQBe$- E1z]{<4cбQc஑ltp(ZȄVltDìgK{}sZ i9F{j|xH!dKЊ %V%D8<#;T=*DV"300vm~ԯRZxdIj3"kT W$2V:hlɜ )'$rMcBt/I8,GzPLуuh)ՠpCZ1c"B`Z"  rfXP sQYp+7/bn93S-K=!2,;[rG"g̚BԹ7vBIs:+IWu6u9M(v%.h~KO"j~H@h) #EI #D8Ћ=tS9kkÀ.B:*͋C:6zYZ%Qgt TU|KY7[Q .ZsWcc1hBK+̳Sс]qù&-1*eSJÐK}!؂bGsAT2nv,RV م#!J1!րbcCQSyPD J3^ũ ct#wfXQgY6>9ND}ErN;|l6B~<] GC1^2|4d+֟;,ۀ&oNf)'VcV]19MP-U* Baa}Kr>VʚJrQ3W(RLjAbbؚIHPN H w-?.,D 膱pWQ)\VyqF}^2|ft* QN^f, ^̊ і-{fP1,lЃO|^(0_q؋eŜPj-j" YƱD' O}>`*f/M0ekWCiKf=!VK+bԢaWe/}QQeYM$c&0Aq"¦_]Twet'e oau~_sTX[H%TUir֩]=iCUH1z7!gĈCbQkF$h<<ʇ50KR]-AKW#;7\IRgS'6պEI3+zYYhsu$P\.+K)ՋUC1.oϮNQ@ǻr<.FAkdd\HCuD =<7o}ikY9(<r*!Ma@E@W~. _.3Q͊{jK)91^4+^Aщw6)SOTGJPT[d夽@FdL ^T1P<y%z`hd#N3#^!˜,݁ة'eCbJ_҄7fIL)-d+Px = -FJkЅ"6$0f7D% H%bRސQD4]1[2rh<[Z %nw @+ 8_]QL l1=*ȵkWe/$zA6²TQɾVd:枻Q+-޻x lYFPjxP>7'EXڿ~{t%$0{|6iģf/ "$P5dY2EhU]+cyNDǎv͵|_R}}Ycظu&nZ[Nx6PfpLo,kg(Hԝ89,K&ШL@c-C^miG#eA# DߑKNǥ(% |RvZpkLذvMgC Px )8+DSru"wmveЧ"M-kDKUdfҶ&)IP n-@hוP芻 <0@IRN0iɮwa Bi$KETΣE.n "vBmN$8N>.xK{%7; +Z[Ja6$ŋ;S \(G"s U)/;ߑ'u>a^84gL|Rd_Z?TQ'(B7ε\X,G ۤҢH݁:EEiycY4_5|+)ힰbx<1J4˩ȈQY]NiFB*e]ju&pGs>:]RbIE8#RB™DlG;\VG0-(DD JH̴ 1\lʴտTM`maqko[#>rw4D w3YG^,j%)1nŚU%!sj ^%~V 􁏻+o2u+tƥcUMVk\!hͭ |}k]L=tT>_;(lԖDY ꠉ:Af|T4JQ Wp|1?kmV"6,IuSZ3Ysޗ]X̍G?9(e4daA$ugI4uhH?g,JY+.ߟG|LYK&W:D #;lg/$eVw!hɣtDt|~QJN\jrcT7ʞ0xm8mjD tEa"ps,/t_N8?$ǤuM"X!At Ҭ9BH?|jm6@crݛ+M[DT<9E /E1eb \^ađV*?7') J! o*M(ɋ2 &3рq_];GۮX+Z$4Tt!t[ԢHKrZW: TL&7rnHO"@)s'$y-IIGd꛷,7 T"D莂CG'1f,w[Pd%p>"+g9|"+GD-Gg -8oW|A};+y`5^BD]1zYbhIǍ"uPXQ4NQ%ީZеI4̓ \p4scɟGkL"pdʖ| JIKGŔ{wROWk-(ݧchM+UDXܯqUťvTwV?@T'Vxbx7o CR $.RS{e9 Ɔ ,z^F>إ3đFOy-/@-jC]D _dh/,Q7j#,rSbJ!bbk'hz%o4߇ y)J' ^V&՝K?ؼ@ [au'}EВ v/ѭ:teC8ݑ͕ͩU'CN0`ȉ&3B,YR'mUtzPļP|dLmcye3FvDԘKEֶCAX [xcy/)Jy =bK^OHMSK:ыx3l1)5v^X52XaBy[i >4 FCvlf54 0'|w }=$yY0\s(r1Q^дI눼2~ef >ьfN(d!*FaxDv 8wR&.mQ*{jKRIbs &$$I?)qK A' tQHEc_!90N.nCYB~͆? ^kzyo\}:R9Wd0]r}JQ-Ӎ{I{b~?:}GȎ bDBvxR+El 4u$bX] QIE M/mG_PDId(! >jp+KXppmuC lWK> \6RI0E}Jԡ{vI 6&HSNHG,kd$,j)f.Q [?4`dr"6+K8ږa*CCf S!*xQ) ވސT0im[I~e]r7X?k@D(K&*d*D. ,hsކ%TJ_=NHc&m!>kϊ& ǢIcS+䘽%ވXg%)K=~u>Qt1M!5a%CVGҙ3q$ҞS)^";knc;J$Q'NNo=1xI lmRb(Q ŋ#[dCDQoba$=Rl?v ) pqMf:%sU镢a|^RQ!-+gS'ġqgX  8Ul^.SwTEᕒ AbO 0"HjiH G#baVj 禿ijT>uyihAb>,nQwLMY;,/9 2>?pk%^(i"nG_#َ ֬!RYj2@qJﻕY K huOt-yS#6{ʒ*h@7N䆂X{ZR-VJ?کbȧk&҅5I,۾9OR:[&-[ZD~řqR<}l#;*&5$ERe1``Qzmgj 8;3_#F(< A_3A-`O1+9^osg]bMؚȕ51 %FGag, 1ԋR)N=ʗX.|Ŧ~L\@0|7$gKy@r4FV6Yj#(Q/,pd#~./!\N6OS4.vgA/$Eg_\ƻ?wrrZK1=>b| $n%k%z"/&[5t 1H6-W!dVn7Ƕ{IgfqRV@1̈h&{̝̄#Ps=Yu`7Yl|jiywY ;NnU,)HƖHZ7zT Z1Q^*,KQEmDؤNt( u^B; &PL׈i%4Xq4+NCּT#1_CPQTYiH&SbOr\DgJ%B{`@ݢARg sWHTøy62eaZstzoq-?޴Ngr#FGOjp+.v\p;OM$*D}}GP͒gMˇU`0;ZQLKշ>*vi~avc޷Ü7 &[ΌB8Ыev1QEJ`NQ;K܎}mgfk{ȧ|ŒW܉*3ql7_g[!KZJ'`Ĉ\cjyҬm@^@vJmw]rEh $a`cj B8ղ%v{vےrٲ׮_c]ѡ6]ZH5+Q^4kڌƕ#{n]-K@? f* {h4[^[Za1v ߕزv[Cãl;Z^>iڱ8M vЦ ʉ4"S׮s=7ޯR_E3ꈽOaEmRHQuB*(.r6)7zZ@f*3|IOh#fFx*{/;&SlOj90'L!KҍN,J*SJe5Q;kڕ.ݖ/=ZEԉv\TXF{n42,Gï&mZPf Ciٻf#DflD *7*C#l嶫2D|b8j[̚(;\ %3.ffE&:HliĺoTxxJ+*d%8d [ Rbʲ$Zdvl:3, +9LgthJ +|blC8+Ő{Q21 79)J"!IϞ{څ\o|7i݅A &Jjhs)2CR]'4<=#{~,+P@Ą'Q֠9gC˜f$g /`̋|֚AZJ̦)$s;n7 |Nzi0w $-RQ**F31ȁB>bKuy0 \$G}u+LcA~x7tubhA@Aܭ"ֺ$iSͺMO꘱UѴIN.k8-VYhW6#ų" jY;xǓ؇j(#j]Üvev.zK>ŻDFf@VHȉk**>:Bc"so1-s8F/e\KjECt^U33&}?% Suy2)qToP%p)"{jm"D0AqCBE|XYʂwBHcT iUcpcן1V?dұ}>SehiUmkf'뺍uKVYMI&ΆU~f 3f=fvdSjoGEeg̶/5Zqh2{3o3EֵUcL'#KIa1+4_HB<5A>JܳlQ!0+ my}SG䎮KUsMPQYWh|Hă^QlX]73UKa6=1LPA6j "M>xlIZLI=(s1.GG9nG\>m+^4 " K;QT&t!'t1R+' ա O" !tA'_[V!87T6KjD윜+b1gNxL6%wJӊVR>v%Y%J̲F'b*7%FZz,ȇ>?|ц1S:r>`b~HAA1ĪP e*q˨˹)@zYCZ7$L3!I5?*`-t$3Wô#* nAG`FoLeeЦ")u,HdA0"I*id깶2naܤi6Wo4Ѹ|m啙2Pͻ'%C> חzaPd1`!82>AI?ZKL UefN}H ק"IVR:d"9 ,v[!n~0yyH5D~^fш>$p&qUJcjMCN<&>("2\6TZQE8T~J@Z{s% 6, B|^D)<$8 =*ILt,m!&=oM' B =6-`w3Y@e$( U-<} I'AcfQ M^݃be ev$ ?3 BVi+YΜgrird; t`6ˡ= x" ,Vt.*ǻf-+PJk/M("*D$9*sCW:ƹtL=y]"?d.6 u}9_C+7UE 8٥HЖ%c`Z%),tK !KƬս53;H>8 dȉ duaʣhbDOMޯ&jX^iE,B[ʍIsNɴ?<85(EjFDM_}L*sjv9QM-hFbGrE/{%TƆSr`~ґE"IMQ#)6ETs5.d+7DwGNoYԞEZHmR 67c1/l*v?P&L-#9SXjpNWAV` ⪻+j*Mb1>oL$Z+ kaeSv4ơ=1G,^ G%4580d\MJnDV|)0fёptVnXP pڶ1>@K"XkN TEPJa57Q,?(а*oX&mgoǢ 'ȑA~ gg;h :{~eE)Y25yrۆ&jN6EZnQ6`T7΅ h,SxDQRIl#{yԜ!l H(eV N'1T'ڣx`~Y&3Ⱥ]O:Ȋ`}Tq= ; :2"&(0& OM `BYN+#[{޵1?|? Z K /9mI%Pi𴏋FJ~8 дtoȆUW` |]w*:]J'-)a1k~ R(ôPCmZ$벘1SAlPJ188|㏿Fv5!F& lTЭ~O!98 iiNRgx|P*ʒ] h[cCs@;.*v,QXTx*;Y"'C3ʄ$ }<Vn:8>}{8Çz}#o7/…h0W25"Ԭ P.>Ijb^4F؇NC5* m&1*DK9ɢ<{Iku :"We 0a2qL*.u3fX)7GJ"D3%H[ܵbM\Bb9(L2岀`О32 $ p1tzxDPKuJ1ጺʗ>_ɘgѢSSj׷]9Q_a/#lkj̅)co&gT䢟2|4Nq%<.w8HWfnE=RX#Hq NS^?I)&g֗#0\k'LDP)&/ߚ0>Œd<$+YWOjqcI@^i] j5sil%륯R7Nۥ ,VemUxGF6Z2A Cov4!u`?Gdy8BUjmxҢ~ª7Gr4Fbѐ!/FM;:Z!bPp\lHkM}iT/YV bʎ(R[`PѐU^5y_FbcGbUH(D ֡v|OДZE8T|hzdr+4sbLyqO{E|ںc%} 2mݳkjXdƹ۬ C((ۓbNجV{Ufckl;>h+ZݝhJ1.[#YW\A k'?r1?(!{aLe}5'SY5!\6d.>?w󊏄BoFwOjS]`!nIMIZ$ (S6IG7Q@LΩm}*dQ5S7oxNm$:`s!I*QEa)D>$t]f:) z_8(3 y'DQm8CÖ8Wh&Q}hL(B׼QW.E nemϋWXLJzU/fH.PVޡfF1PۑlGÎHF]ʼn Uc_9#iDxuWB1AŖDR5jq[%U^yH2)uڝʘ*ۉ)Op+Zmcћ?62⢪xܭqkd0x+M/96Zblm*Nij_`e4d5F^i_zH7[OO^%y P;Ḱmc)o`q2 tRR_d_Ĥߍ!%pQ;YD6PŎbc ;$;Dc%"3-ݗ0Lk?!5lA+K)Ng.To9@PRIBIqV/5z1X&u] > kIVnglƝv0F} o[.S}P$vXSK(h"(UW<>zU=R-4Qvv&!.($4jn -ZJ J"Ǻfd0D#K%Q`Ĝ3 (Y H"l0Hf3,&$A%̅ju؂e EN=% %1rS&\4q^(BH_#b.9ұY9'oH):~dJhsVb#UmկGE*Ll! mhiOowۗsY#P˽<[W}D$.oDUf.hmpޖq ^e5ʓe:;a\)RҔ| ij"3cK 2SbX\;rdBh%ND'Yc4@%tx%7]#WGcADd6 ޑ5dto"u O>)t;nKv̈́!Mat -oDȢJ"Y$8Mm2f%ЫxQkxQ0Qf/JVFF7&\rrU9=,[/q؅WPݗ Ǖa!m9ʌ=9kD%!\H=m" ܼ!PaIJ& Q+F~lvz䌒Ckt2Cꢃ[Nt" 3dd'R4QݾEUmh)ml eq)'t X=Ǟ5rv:T؟N#d'QJ "ѥT)voQ.DDd-9!Դq,6˶U3؊LE>W&wD̟%vC+u1@w @fsIRt#z@nzobMdfl>-7kyK!hRXY/,As(kRm"{sFD'!TCF[aToP |U=YkR2J:]}n)q/ 7eY$qZ" ;AVO?σD[O:,"35"C(ukMn}+ fD_VrH2%Eݥ\dS +r85 I/ #Hm#V}TJjgVz)V`%/JK+.hdĕgĬn(GU;ag]FW7˾BҲm$ B!&asL4mjadG9]ݗܕ:ω~eK,CIڱ{CGP//Dq _X-ã,؊q3Dz7Dcj!d j},ΠTe1O@=5"?K_,Tc^ٓgNi۵VXIt(J Л,T5kfqݖj(!#Pc\P#⹘i~  S[Df倖UlqBV 8*I c3$pQmMDR'̅ya+1&| k3w3Roc$(QS]{=N>fd<\0o1ֲ2 U07~ߘxPqȨΆm=U*7& UJ ZL>'5r #"WW98w_R0?E]7a3l$4mdq*343U3#'GsF&@*fgΡ5GG6>ZSY u,f!وzE? [1kfFeO.8FYC!m!+9W-*GjgSF R 0 B2fn$ҴU.͢Drv à7 m.^'*;.%t宲_$c™r:Ur$`rB*vmpg&uh|fB aJ[O E%V&Z')).-1aH:vWٗ)UÎث LxZpmxxBX:Wv;h749G-#42IyĬ2Ŗ^9Khjka01SX(/J)Wt%Yao?C4y9< Q-1ðMlL,_o+=v#*S(kc!,͛MK9CKQAN}z+;Wvi{$2Op,(( ~q\aw]'[2[9/ elfwMi Rg'?fȓhHw ; nOnR(OjrfͭSSщ*KP2DClIQ)t@'i;>b1LxQݦ1Ib@"N*}4 `-Fig8$LXű 5b}ZZ4=Xl/"Ps{(,ޛ{>*4R'qFVùFqSʰF 9CԾ;XFvftIB<ԀRnc$mF^\*_]&&.Ψ0 Ub%&?Z?'* 蛕CH2 EY6kUDDD 1Bj~`3xe(GhقJY1B 'k/{ wcyaSJpvڜ'RelR|IcGA@B"pP!k>&UjȪ0{yrJCm>dpYnnrq-; {M` O"]u[ "6vm$›,lp< &3O6i1E i']O/: p5c7$".2^HV&|!*Y$C9X:!ΡIqЯ[Dʬ"nkQEi7&BKf*%p. v$]MEv!V/A rfe v1bxÁe!+hZ sզUʉYJ eP5Hb3Bny*_w{5ʡjBU}#L1nBIdVfBl2q-&-v%Eq۪g4S>c:ꯟɧ=ОXN+X#9u csul"[GdʖW>OE11e@xeX=(#"#9Y_pgh cE;P H݆ L-kP9 ]fF!RAG#I4z/&ymЫdpjh0k4ڜuTD)ᰋB]/ٹr.H;=$\M۪$~ r/%5 5Io J 4ۃWgi h!I޾]S:FɍH $GLI,5Y#19| }fNS쫅2< \<+AOڀ8$ !&| nBB~Ua|JI /}FGȇDyE`,0( TI1 ~Pq蘼:WU 3QlAi-w.sMŖlAOoAtᕜa͵[cXPU=C*>+7cnIk~R Dcr͔G؟]LҽZENvx`N!|'3}ncHH]?9NID"N[ Ej^s"ZPOh?5B%aGyokm0NMpcg8UT=(:r4i@AF$TL2s-:?\ er |%tdl^noCY i%iRJs9(TkP$TQ vo_ܚJ5vE gZ6 /^jV7?]Ϊ6u. ȁK!KDLy[ZP4$;rœgNߒ KbOQ@kf%y\V-/?L&4k_c2_ˇI$W.%Ec=f4Ӛ oYΐyRbg\=gRC5|~4H6I |%E[4Eڼұrmh!~)T[L,H5e"Y"J#gXyH"C1mQ,?Xh*]?@X ƴ(Kpb&| #5›UYu (An&zeezx':=Ȏj̝3uN5`s]wB~]sX㍋ҶIP#>통ӱcQ9) Q&HbVGŒ31u5mH5ɇT/}JHyFwBͣA D})L]TOcmeOEFɥ6s*dFjDG`J*YivB,!'TjW~B1$1ֽRerQ 9 FiW[&o )əQLk5] zmh]nRV) !Z!s 3/`D#ۅ>z; b.b ݉JR QCݢRbY\\72e1Z5Dc"RdF"QTT =q%j] Qb ̨Wk->Ӥ4hĂ;X] 5-[I9켎i8buf[i ( rEr,|W63ZwE3n?pmVm20Pq€Ŕ[Ȓ^!"ujVU fU8bA敳:J̪u3hfݛc®URL2"b"G\/]zJfL'C:u] *ؘ_'> +TӼ=40exqhAaWȃ W>WZUP_|'0!O:d#TN!nѶ&9'ʯap(D&y V=SKeM|qsCb 2j-mWiOW%yy蚐Do%5-T R"5 'FJEHf*RhVcՄd,pKNl)@O@F-y6*?I7^(Q[^peVe(+NDԋ|A_\ޭ PWXGE8}/`x{#b2cGhnHoJFg#{@ǺIݘP'pIsEaOu^K]iʟMZZ dF%E^]HQw$ X2>fxPApVմKӵO LlOІ(4rOkAt/h`xPL z}1?`s~Ekq]ُz2 D,nU+ވlWDgN_*L/zfʯ~j$r#o{oFgrNgfz4tiۛr_6# [Xd/T ܪ) i?MԆ7Qeԋk2)gt{l p܈S;dT %fדU0#^Q667*Ǖ )?kf.gSs1s#)=Q{OHwNy<{F'GbEo8E%>5~_e*d/Y\~2[$TNb_@)JޛJV&G\PVb/YHtΰ]q#v?ZQCؒ-xF$6Rڝ٠38ݒE/UMy{ v^Sm,p{5v ߙQdo~y-MQƱ:1}xoˬsyMpx#v}3 qJe,̢[# V:&τ43a& A%5?=C*?$F>a/a;T%=1!/욼I؋U !q,sQh4T:!~$+}S_y`_=iwuX}h kI))&ﮐ !,#. kZ, keN*SM 4 ^:2$ܭ]}8 T˟f~_Jk̸>>c&auVGh1 Ż (Tnsj[z w6U6q-HÌ<0"{2bQVI5)7)taQP`ym87KV:!YaL䯡fEm2E8njIe'P=|?tH5H\FGQMxLO"ZM~IRIm/KּLbWKL1jcwXAA5@&D?-O Tgl`\q1OGÆ** x lz\6_qsΎ P=$1wBFZ_J(qr\?=ĿЛVT_~[':-DEbIBQi- vwRX8u,) 1苺W‘: /J]B .[CU՟QпLH'HFOhq"Unz#Z!C;-V0Y ۰/ L.X?sߤJ!(ݠ5\L*G*CP:a zV:BS]< Pl!jM*H<D-i r6e~И$. -6zOD9,18ö:~ *:joѝ:̖L  +Eڰ&7K.![ψ#'ࠇ u@a4<푙Ĝ+vXÙG.y7׊4*;0.t`HS9ڷ4%at[PD~"\\)0/6;/%;0!P/bEG·df@Hds1fYnJGҀd:lx0':l a[04R&p08f7wZLمBr|$J NxH5nBXj3ͫUV9JSE ejSzF G5V6 \GP[ !Cۡ-Q`g+#EggmS dݝ,Q{ ƥQ!,,Bkr@ާ"@ĒA_g[␏ɦĹpdT(,-E_;)ݾ&g҉4n}*߭Fst3)N;cєkb7&)+11? ;5B2m>?$&Oߏ*i ҨR~5*C6U"L勞6nJ (V>TRƇڴ8X#TywUU[&7GR#r*%R_aV"UKl- @j{'G5S)^Ҥ+/(7KC1ba<E<"y` DTllyT 8]Iy(:!PӄH"Q΍W3+.AE7qGr_bZ$DlVcp`֩.0U=)C:EЙśn{y" {~6Q@)|LKf1lK|v]pE2E&|>/j2*a=k-8p5zu A5'{|mFЍM 6g.:BdQ1UJmUb1JAO|%*S1<:3c P[An+J v*yՈ(Ѥ-UlX43*97A ous B9&p\dQ,IdR> $R%S[1AUkZh՗),"^Z-1IYFŖUb ڙ!RY!RpFy7,Ԛ}tL9FE%[=Zg%QͱL+(^ڐ_gDxua$+ ,fJp遑TUm$#B-R$ ^ۻՀ²/ M IJȖG 1KDH!b%2E͎r~ۉGmqI9|>I+8gA3xh 8%J+0L~Qs ߶{i TԦ`8"cw3ڑ[u`-kR T몢BAi;rC+,ȒH:d [#B}M 5u1Gh-nrHU%<BP`v;N7y!2rc +dK$ L!dK,ga%ջ.XRa%U>½ԏkY68חN"x}G D0|%L/=gņg~))"rۭeى2nK%e/ rC)+KN@!ӵ)-ePK[.n\GE'a)Dp8SJP!nΤM M62ta yF fhԦq1;IZ7JJ3wRǸJ7^p#1Db5~Ko6_F[ Qj^apӿ"HwVI)N~oyo79gkP℧G|tLN\2%Vq%+$kwԼSPhm6i"a,ъ$_7| {(1dA$J@G!lmW,1dW!ha YE38|̺[v2i)HzAcqTMc/JWP;Q[SvN'KW .nzx"ZDF1SvGnHAY&A68M*r.|lEFL4#ːj=Z cy tߌ?@J!5'ц{12:CiҰr}XpBӪ!I_9)&Iaڑ!`g b'F3 /6LSQH4 an^ S l7m4=>70=0UERSS.؉XI BD b:h07ڷ&ጒ?q4@x*!aOVGdj"-滋"&3 ȴSA!8\ A:˹ѐTB>q JP+JQ\%;WaҿhQMM%k s"j7R?2ajS1 % lQ.D5zjk]@Dٖ$ I/SI'(jv 6HD.ި:e%gA,j7e$}YM fNMr^ˁZ\MvI(RZ 5u(;7RC;QmT0M ªi<0x;{_`\F]?7w'c&x"9WHB2l$ #LK7咙ۢ??t3 |ޏ;W&~WT)az)}&mM/VOd C% d9,aĒ'bQ 9]5͏ENX\ p'_d)P2H1ߎF1-UvÕhfMnяgQ W. p˸4  v" 8iuT^ao3,Eq%mY$ NKᦥuPJN?^dط5QJ Iiiq~iGCgBX_.A~ֱ"|gr&F!My"\6W HƓ2Cc) q3.~ȿ<8 ]nuTI*{]VPŪkv|=ѯ+b#ĵ#`4 [hx"~o;Ó#v^| %h *41xIZ䞜v/䊾lx&+M.8WbJAN$N2F zR}V苝[vXWm!ɠi%ŠJWFuI3$}~ڰ)#*} -RQ~_8 U5Fr(u,#% f};IoxbICPILmЈ#b(H Q$U `#Y~cvlnu>33jKKd'W#Rg'm1|u9Sr ZJ5\ۈ־l<K{Ejܲr]@\ҀO&w?NYya]m Z$p%x.q&uvL3-t:mT]= (gÝzd3YB;=N4:+'JK#8!/\%j=ko^ehNVf$Svux̌}1xiײil" IN^ME`f2Xzt?[o:Z w<٩*4Z΢}^MRJ)a5J{6VJA%:gS=iUZ ?^םURqrqP.:9Mp*W3M$Ш+FBQPdT:Mf/TP }@KY.ejSoɎ55ՕPP,ıRi9N䞹Giu.C" nغ!ViAyjLѕ$z>J% ,&>(iXu*ݥ%4m.8+oD:zrxة@k4 %A5R'謁*5j0%+$bw= W$@՚\Θsv&R E|(UIjZ"r{؁/i fb "(kũ7Jvy$T)gBjcdžLqLE.ܘqNM@AR 1m -,Di-$錭NOh /JT$ynO(_^EdfW#}v!;Cn/in\BܢlL'Wgrب&ͻ#Y|" c3-**?Szn$Q5\Rw%B4xW4+skķ:RfU15$oJE{rGw &X58LZ;tL2iO%⩙^K~~ټI~+Lu:*ԛ2?t=GDU+e@t$*&yCDfjߕ,Ҥ{ԉ{e'FueЀcaax'ZH/(dy!>l8 HAfքkhg|Fi{ g&d| 0 L!R;ֿD5ʔ^ CIONA }-Y0ߐ&}T)ݪ_@C_I"$6_%eIwrzRZ.;+yoB{rٳXl-゚-^YddtJbJl^_$69TL4/,jOfjU1J&fJgWu(iZgrT 輱9bJN|r")H@!q__HVU-z$EVrHƒ2iI9ʆ@#2b1w7y2ZgPYf-7qZuNk_ ML HyTH&MeI^nd"_*n+9[|w4(jv]xd,:e*Pyt*ߝsIvVذϻ%'P* 3Էۯw#9 'R5@2 FN.%dX ڌ 54Rqqf3!LK8W6Var]* K1kq"c@sȂnF{Lᜱ$P_&aO")f{ʅ1?4=a`s 8+mV.ɭ"'HVޥͨ|B{#"81}k  j˯;dlQ+ lN W?//vtgA]ԏ F,T]'D cl tO rG3$|LEjzd]F>B{PlYdA<$ڍl OOlkHuLvgS/O<ӘPnH"jZƜmlM92!n,6)a_.dBikm-DmܑM:iABW, 0!*0%$"uiDSuQ [^qS ppV8{1,(ҜL?iҼ[Rё"^5kb8Hؒ: 7@VJ:QF[#M۝*7gFWe=aoD mɮ|]ܖO;x8L(1KdN)c[sͩZܔ{-鈦RUJ4⼜K)gSfd@>o1_d^QiҽSL j:_}[s {Țb[ӯǗf,xsC:9ވaY+9HIk̸ )O:<_bԋ˒1Ӯ>J^>e[rF:r{RJdm d7: (u=+mBdAوR# U[ D`7 \T\],3p[rUE>kQDw'9Q7%"%(~#Jt c )痈iX?}FLf=-ףh2"޷unw_s-ˉwYt ]INhD^6n6~&UJ{ֻc&4LK^*ɩhiSLĀֱ]5 $EͪO%.m"<,NӜܰ%TTm޳ @u*[US ]=,\ *+ )\SM?qU{jxoeh Uz:֌@pHe"׈vlVOccJARz$ZlxJlY[*/z%S͑݁fFsR VTDBNKS[TEUu4/s#'ٛ<ݓ]½Z$WA ̪%&8Neg~{'wL'RMS~"&3TFBrLze/M +9;.6dMRx]ޙ3o~bU@a`G|u;RxR9q$uB6a9'98Y s5Тi?Sqe3FW1+#~,1'YUܴ gltbJ"_'ݙvzAA=gɞ6U;{mhyv̱^v~6~fdzo&UTL!6%jPD،7 =]v|FQ}3 !,=lһZfiG%o1 ~KU@+ rׄ8ҷ,ڛ#l7؉y7אfwN*:?YiFk3'Ze'!FWy?H,3f>)&3~ AI3jE)Ix_x_~__?ؿ@ p`)pag>򪫓dBU~etVK>7c 6:y(++,Ir 8 !_'Onq;f9"9GJ,JSCbllil^Q)))" *O;L+ /Lz9K+O{V$ Rkɼ"Ox@A#]G:~5f+=!G:aXrIDrŕN {g.CT? }{NLznBx[sEv,?4Uk',e$ЈwC, )(د=z_+GHMWClD `Ve,L"%LHF4֒%5*ZR)-NvTNVLRDFCq@V&%JhZhm+FO)2ݖG,4ߣMda-N1;NBc}rH R8 qH{mHQyYq[)8Jb.%vArxQx7Tz'J]; )~d>۹[!Y4(UL4T^U/>n{+:&BT4moo&\-c޴}R%,rMO8Q~8Cw! A:L  :Nb4h,nK!R_)pR2<ȟҴf$J9x}|Édi-YT#u)ɁL*@L/_X'ddz#d$ FGSfCHIУ1\/XV]p2cP ujgKbh21≩"A4ZwG0O; -V\MVFH'K'-FW dJ^= 44MUĥKhv#Pu]TY2kFv6f>tokdp`b"B D>bc-qڀ$NIq &08u?pfY@ $+M򣗏߸Iė5rjw i殊Z?tc# 4Q3!Ύ U~Mg;h$ z8YRĿsTke /uyzrcD&f_@K26صY|fIZ~xNf$STTQl nB\J({XOɧi+Ѓt+Y2_ߢ;-JHJRj"ryRĽ-yҲUgՉah'#GJc3hUd7X[/uX #X~BjnY1x! @iW p-R=WtPVcsWVA挔á҇e/e(wAiWr(NJXUK_QεG=ˑu t $u»XTFO f(jкqqM`&=fd;Pٹ_l~0zgl[F3IJi &)Yڈo]T a& .Q'*:E5-b2/dƇoTvi?: iD7_qJ!% +{Rh'#󆏞32ifjV&o^Yj-n+bT@\}::l$aI/I"II]ῤյ8$k[QE&>fQ Ve3-If;zab@[Da546$̇:Y:5EkФYj#k}y~t.L6`D洯m-5zK[F~f"ZY;+i4Zʘٰ!if%NV0rJC^`SsŀR/IHC@wp`Lf!(Aީ oXˢڳ,>1k&'L i `E ی$p)=TwџNdJSD]+0Yl m[t*ao53zi.7>~hiAv>N%adoAC`0+T $njv}J޳E.J7[6S׵#7K׉7g(SLmTi5r增q&9$Oc0!C$㤊`ǵh̔2»ͺ[I9=QC3nᒅ[{b53u3i=Z(|TiCID*EBD!2%"wԅǑ3UlFX̮tĺt5!6L.`i uTBM;~ &>Cq8.|@@[o6Ȗp4"Se,f;|apފZb$ fe2d $-s'y;pHF-8<-mM #^*SkrWl4q}3\KWcWdַh3Qm(0Q]q'筳H| ,/D1䊜F4`) 6SBfxW@-drf9 \ i.~$\RO' LNdlٶA bKajip^*j \6.qR"n[ :W<":Hj%&R- ص|}!X褸M|p]w.=cDV#R1Ǝ 1GaHH$_H̪g[Wߵ<SDBdU+ZKFܰ)m֣ ϳӁ.rͤ;CY< eU# ÙDM{aФXB:D}*64h2%[FL"-\h?_@` HU/l9v[,I:ƱCڙN(lgxp!W Q}5m%:t]tUk?HQ"Ӎhd ˧oY֫ٛ jb=Z/9ek1nb:ɵ&y"_m^画4i1 2+c)5BvDQ^Zk_j:c~EET $M !l* d(`q s U$t2+6X!+J@~v-V,Ұ)Pшzu*CE=@ܸ`wTa|zΧIq$LpCbdYRE6k"2A4=H~ a)v13J镵tGxT _eUv3SC\u( jIڠ.14%5j,d ZLa"j0*XʱqjI}| rXM<^ BF41@/*)*DQ}Bɚ}d># (@?r$A[j faە`!Ȩ]6lz*TY'U.QfcF#CU=qqz Ezex]Lz<"Ywe˜<'And?e.7O#C@0j(*؁Tw\7|qB{c v,˪!KfV@+X'8!/$$]j.DIV}<]5 j)+6^E0 pX]R1ڵTT$4=AFJR{qE(|8 B`!m-;D7#[ XXυ힬Ofkد3$ tp|OJ m./b}=ŐuI41F qFLuǹςjo!|&F{Hn=Dvgģ]huȌ1sR(˥eH :MGRae#~N!<^X! ĂB&i%[@Y-H:e p 4 'ypLq6t a[[=ւYTiP D3ԟ1^38 i P͉A"(ӰhGJI>Tr`LKeȠT"35%߹*{/zV RzFѹ޾ʋ!v,NeYQgKȨ:j ¢I&DWCqNlbWQ.Ƿ/Тk'}JPJKV T!D0B rōh/,Xٳ:%͠dIH3oET?eL>=L2*픐FŃzUٷgyo$+*뺊c)]3lZ[ ֣cӲܢIFF56o{=u ^x[D2[Ɓh1WDĝXIۮu^!=)sdSuUV,Z+i }ʐ8/4eWIiqTb;TxAǽl4u 1E(@S!n)خցiTHkG% 0& QBPd!Y9[> reukLӍV]"- 1͌aڰkMW}LD+*+P1L)h>(.4O,[SJYrlQؠP!0(k-kjeF^߽BL6RaY &ZP)>L.(d2& &u%_]_ny=:*Ts;6/:H Wxm@¡΄-2/+a*(bX)sdIDJЈPS ғz#gj$^ZnPwVԫ9jk#}/UgFWp/cnXT |~,1X5 %KY{q6Bt;NJ7XcI O_a0-8H#3²nj$2~zN"{i]No4zTI+ҢZ-nJM'mzWQVO[ӪW do@+"}yFbɡ.w;&vk@wV27[GL[|MVJH * )Ai苚Y9;\K-Ld8( /#5[y(O<"ě!+iA@XR3(c!q$G?=(!ѣ#"QΡ1ZUS԰@P|Jbw`b?;'VkIg䔞ZjsT9n5fI=םnYQcӖ%1{Ž:ro]M|N~gk_&F)t1bRvȆOReJO =Cä#㇓%x v}#  C#^neUl ᰈT&܂& hR&TW}zڗ?)M ìpv \C*BQ̲4or'D=;ՙ|UF۸0 )$K O!ҥ0:I# f4(N "ģj4&p(22LxEgB׎&DnEc0-QJ<0CX5QӢۛoM\'hȻr Ah++V .+ZЕlW"TVg l0wbTT-)b5H$Z y=.hJ9z,}/Sئaʅ$LSC]j̝.BiO<cBBQe'%_[ ԃjqJ,THRaW8x$!IFMC^ϤiVX(abnYkTr7n z= 6nZR`xFkC Q#"&-"(1jˊqdGm( c|YyB A@: ߹%N ]j y5ˡH7tB"% #Xv9 w>KpWK{}=/: B(pدC@p^D)F"^Ak쯼.Q,>6QS#S[bn:"ہBl*[h,p<؊R7%#g^p1S(Km vrhye@v%z|1F_ïkSV+(Mw"咂R-2/+IX%y Nĭ8#BpF- %JDk8Q{Fj^WXr~RZW !\OhBVRԋR6Ҳn`mf A:Ɋ,|V0C"gC " 2*Dls1!R˸;OM#q;z2SJG`CDBr11B򑩻75#~\bqf"텋3&(L$΅ISXaHTqU߇HjⓈY>h0@@p*yԡ#D:XQEt&Miå?.,e3KWNR/ pqC p袠ЧIvyEm,g>+ș=K8Ȥh6hSMqI)]dKRS-oI(.w (M:elD! 8UjS0a/ō< H &P" db2Yf_7e_ͮ Ȉ !1nDڜ 짱Ķf&DOmUڿ$gBשw3C!H >Δ[% H!P C!ySY9+wt*SS,eŗXԉmƞ\RYRxH+/5zmZ?ߪUoS"k{D4 " (n'W4T_^F6J(5|%8aN_ByWzokyҧ7N:#B'\{P3TS m&i)Gtip34X$=C3| 48{ZTT a`e=<4=MP0NJ9"zaRr}b#="׀ir#S:h+\CXV4b^D;Fge)&%TzE]5֊# X+{Y>#1%^k$ovu 8m,`RRɘeXaXKqh7]L.n%q2h~(5H>ق1gW8ZQj>>@+'0iB/ODm^W5mwb8sz"Tw@/?wC t7RrB|WcQZ%4d UpF]"qل1S HEe(>D*EF%a. JLR a-u]8 z1B-aDo1J0!#ğ LP;>'tIz=+ڔa52Eؕr" b&!DygFt/I)!,gtFA P4TD  쫖[*-UL>MQm#;A9 |7 08S n]n,7qH Oಔ?,0z[X:A~FnI7a CZhLJ$` ӗT}hfpvjl|\SK&m`50,ϊ2~/)=OE%=i 1aX2T7B<C'rX5dM|2 (ez yI\$Fՠ[agg`Pޖ{n$jYC4=((6g~jAI@6HׄBl߿J718BMWzdd$dZ;)q([|A_J*˻L`Aˤ Ϙ =>颼"aƾwlDCy<;T’DPI¶vK_^۩EDY,ͼZBZ8ﺒ{q{.mP&bzR2z5bSVЕ Ll  ULTnwfGOQ)KPb`*"{[h>0(y- x ȣnQ5B8`WM\P$@B:X7,ApU %zlt A5/?h |VDa9LE&YgƊ?8[.!;m5!K2u#q%A17.xcFŁWʑ]ւ)j*Y?1dk>虊] ޛ (Ʌs`H^3.NZ2 PWk%e#ߍ!=K|!2V:F)6cQX0TQd) :_57cZ y9 FG: A.6;?sVF2*:H!3YBX4hDUed9@j1H`Kӵ!˲ `ް% Tp=1$[Rɉzݨ" '-yb}U'p+JR&{%bM}9']5cWPUUi%碣Nւt9u=&Xm/UE& /(?]ȧz/e/F)N&noX+6d;Jѡ=SNׅ$WķBչ{- %Û,A•k5uR:z30-؅#~0牢A HrGR'xbp1+ ^ ] Nea)Fs:匴:a뭧 MLkU'Y䲬Uj{n^_f]Je\( cW32\Qyڌ2"aho]}!hB f\OyD-7۷}N\]r**g/\%-K HC3I6& 6kٚj7^hBzjReY !#Yy`1 #ѴȨH#tk~p8h]UDo᾿3P͙jؐNWN3sv @+1{b1Q(D[qYNKkBj99u~^SdIJₚ [Oy&aF$`YYonxJF$f#eq8sJBp&mL.Maܫ}~ekdU@ZA "GCuQ3-@h@-H(̈́TLb81W w',0*Ode9lv,3A`>dzذ zD= OLi.EF cB61[E< I;62GG0.aBA)CwyϧQ4rOYr{Ѧ%ErV"ȕrdu˂h[)yfr.0+U*׋ Az/ލ M!1a}=n,z BE*V~~>8:4-H⡣n!XGF ʝ?tcʔ;?A( +q'TnxsT]xQUcU'vyZUK7F֓/shA/NcI<%vu[Vn?'iڭTPQWx t_ȝȘHmU_A\#A$4/؁]7ZY _J^CR ;G_MMf=&eeY,FrUSdY1>%ԙcd=̟Vwє#I ħkuck(I,hAlQ1Z'[0"^v55<葈쑥'h'ӷ⒁bC6fNP3:B eqcQ:b\'p(8fqYyoWcE&2Up}]F_%;o++Ln)H0:3PMy GN&A,k1973jQQU># ]P0-WբH{>ef"z3{U{[ʳ-3MLYeqB*Au"9 ;IT;غEDX>J57Ŀa_WsLBBB*Bǎ-bf\  -`Gā|K,tCc1DAX:8!(Ϧ| *4gB ޝŠLxЅ$wD|Vt!tjKfťk4^q>jq.$u vS{w:\|I-*+)`ֶQ7 D҇r2)MoZūq9:o7x-F&=#FT,lOBViLT?-JD@FI{SA֫P_TtZY8i|ndJqҜJbGY2P ,  5w.$0F&ǒBS@3{ߓ)l85+PWIL҉zhFM^oU9 T"9ijHBz` SG>II'O8Y&dz8qC)EڅD+'Y `QU:V6ĥ&B h`^57rݩ)2,Q/pPr9XUEx/'IQ3B'cL")$3f7e"!3m``P J|kI^D=kS7L1=I*jv elƄƱTحc%kza=9x^];xܞ%$Ilf:9"&7{ȨBN8x%_CJU9C̯L;OWyHߔ.UF[o7v)*l_Bcĵc0W-ۡBgA(Vp5qDEX$:rt@:а}h쐐 @}1Ő(Q)ԯl\T$  5M]IWBU WQD_f5cK 匿8縖m!O@DJMؽ,on&[4D ;+mPų;OQZj:+QScYJ]]- T~6#g Ȧ@s?'yabE8T)驏5a|l#g.PO=6\?X[UtH?PjoDՒ*J,"ܠ tpf",TP](“0z8n4-0)O|ғA7Qa3^̌YAnS<-z^K]oYԥ{Q`-Z4)WkTKlp%`pPHyC#*hi'6egMU$-HġD½y]o\a 从@'FxP ȷ+b4Uru4Jmn-yɍ ?"͒(iKqwFQ;#I6F~`Ac3EeJ,f]jN#LqܯaHǮQ`Zff|R)+)#:oJU^d)\'*XfkESA(߲%cǯ|Ra[;^G؍Ta:ǽ/Jh]C4NV jĥ- uІ=j/rRO[\6Ki c V TH|DlLS6$U8iCmnp'$*nܡч):1ϖDNԵYZ69rϛ 2얞AJ_g8 Z`"""bQ:4  2Py}"/\t]pjF$4Rj0/VqsBۗZ > YK6ڌ-O&coZ+ĕ$V\RzQJPD\FH0^0k55B[ xΈ* [#$rHRVmnd9H t(5$r,CI wV$Dd ~LnդW7׾kbcR܅h%n?Aj@sv#r}FȽE=h2\x4.LoX&4aQ )$Dc`˄8CAƫMovxнlzƖz4b;*UiLkV/ ĉSmA^yȭ7@zlCM^2Ĩ οr8q!:32r+@sTafAG 46ʏ0EV:`P#Kl1T'>1iLfP!1mc !`6GͪតkM˶ RUN*շ=5LvC!6nG2u\ҌQܾ㲚~5N)/D]N/yRAa<[-%}Y#ZU|\SnF2I{xxY a!;RݸH޵?ofgO\G*NvF#t(I0VM0`Dͅ؍ yIUgx*,Ȋ +Âd͑8 :El † H&RԴɜhzҕ%73#HZryiMeĿXZ)J<۽V~]+x%jjy ku\W1" i,/DktɥIVJ*$uqƅdqVOO8aᐁDH(HDFD*D* K͜n&Áݐ@#(?Ռv֕T'b#L+fv59FdJKKPPK (U9H2ˎ/LLQ Nx\)ƗFE !4PLexSѳVO$TMmn9}N-~NSa2Wa? fymf7)f !xi:. G |0 , t[&-~'нj+7~ nKv햚ouv R0!)1Q`ѳ:"R;}jJv$$%'Uh\*q8eO^(nڅ&&dƘS RU[@1[K/Opo H<[!{};~0$ًN,F5R]lnC"78z盛e=x:v׎r ?2V?^zVr \Ea3ASqCC Aj^FTUv7}?;^>=ݜTS=Ijƴ'QC, N +r{4iA6EO?*+l(A y-9Vdlf%J"*K&gmC8̇S}N PpϸJgi1gQv┠$Gc]TynbK7J%H\7BY$ MER.TÝ֡I- kwE2#vЌ~3)L< !ED|=PWKs\g~EItX钷P? ^YBQyD};K*:GcWE㕾$02t$ 5B># Dj>ytΔTlf TnUJz ȑu03 3+#g3pBT;ZQYt7|5 Mh lwheSϩ TE=D'Ry]tjܗT9]n{O*%_XK^Dw2W Gup1`:'.O^nz7Rz|I{IERi'iMU(KgBX4e(|E|ormJDjR{ 26\|pQ6T^VI k Jhj x^=U;扃D0y1++D6 Pze`̠Ob{YQ&n8Ade3"r+2cDUr=Shȿ.m`"蔊ȒxKm=Ddڸ(A/̜k(עMjR %X1 y2M|44'&@rlm~PGS/2+nߑhb*ʆGyӪʥ¬¹1*ØR#.=of{(>R~Mmi*b.;j6D7/U=ܩOsٰDAsƱAÐU7>QX~VMcmmVr}? wf@L)jGA1:'fM,V]1f@r 8r2&׃^ F\L$b : NwL:#llJ9pjZCw gy6˱ة[Q$FC)"jutdvwRNbLG)8 0d(XX@h| Kͷx;V*{zڕd(c7}X E@PbCfĄG dQp<#M)3/g hG"3!fҙLt=u!T< 1 ;RCE DŽ<ИmP p0:Dp8dD@ѕI^y rŚC-6Z9q+9SP{AjH֥nN'-fJf~n2Ai6'W ^ssř$rR Q}GaT{Lo<(*,/L96iZ².LU饩JT\J2YKm䌰jj1Z>fڸܗJ')bҟEJ~̾+_tTCnT펙2&[jwYLli/mtbL: HSMT%YzaE;EN5s܆,GOsULje-[Kxʞ42Bל/ SX$WRg?A)9>z(=yѩ;AURH߲(Օި\'RynukH%сYBƅ/=}Cҕ;^t8tmc>QHmwJh -ńP4P"̉l(l^Mݚꊉx{(B](f£6\]k Tԛͦ<5a/'MS.97H۵&-NLKM\]K)ZڲT.UZE*}SyBIsŷ2%UKkȸ 2˛4J֔VXܰA kD'd|Hj 5[$-W@FvV(9b NMSQSD٦"X]jW(cqb=̑B[b`o%mM4ڤ<h|G0JTڳCH$/?3fVf0b qKS ^҃Y-WJWq17H=|܍ ]/W:R'yJLv긧|U7ϓU驧yZ @%{Hg2"#YkBQ,.^LЮpC"-Yc!*L· * ӍY"9ث>JGiXl2 ec88w3K;lC\w$Ԩ/#{[dxޤQ)nU=hrE N%[_KfO\otԑRt ~FH=EL;&j*Yt !&=KD#1=[ù*T~K`'Q*M ß^ҧ{Z@!1&p}j#f2bmXDr"339=ͷo -ToüâKSVhr)IHq 7lV$JfH{.nyInhE{fMQ@fnV\'PZ98.RQ$ 3ujUs*`r`ӒK ]/TJmneXn+&Gk#%мLe+rDl _"ZoZBc'W=. ]P"’Q$L 43,E"1')}>Mi7l†9^r.Ga Fk'o&~x"[qvy7;RVZ2R/6E9~4V3u2^^Y>;V0$H8%]GM0L,im(˲' x,VVeIXJ8.k$hi8nZ⿩:m^PuOuٮЏxYP-И4a̠Y{x N% *ɻBu2m ,͛Տ 0>.g-U8 ?VXB4%WrpWYn-"%ޔP*ո]Rc&4f C9li1*T^ǯ^Ar'Kl);9%RS7ye9:\9:fCeQn KJ![g1&1m9ZX-ySp<9Z1)1HxυĪ#e+m!Bv=Y8ާ nn- T$%ڠ0/AjdG,PzkI )"an&ҙn<Dh,T3QYV#  7 R,4߽W 7~_~XjJ_5o[f}Yn7W o8C *zǟPfVdͬKoͧ8EGLHeX5/,Yy7/VCvZkŒel%, ̊A"'"gϘD  o&S4$"dp7=e1|%ZQ(Mv`kj[&66a LL.\Y[eiMWSSE dx{7igxp}<0xƼ[в+> uU>KQ(D^ *1:)_.ͯwAXZm\`llu>\'R<)X3FO U_h"aU<Xv\T" +K26U Bsծ' 4o] YE>e:&&ql^-]28e8w26)Yy5.t&)x/_)\^ kd,:ٝ޳1yCUKk"$ &Am'tf <dk>KӒ\!IP2"H2 1 2eIwKh-- o)Ցm7\x|```StYCu'A'J/5ww/жcHpYuA#x>9CRXoYOxϭv.pyYnw8|\N+$ -KgS^e~{lXiFj/ΨL廴2KCky(FVVK+4VF:mfiܪ@ވ{=m)ūYHo#>=N(ayX{L߯yʉ/.f"tEkW+ZJQuxy\%:?Aſ`.H,W#L̪sL~-Jd Qg |sU}D풡n )$yn+E8!!$M#_p`DN]uH _'L͌HjSLHHƵf3{.gD~)c1@|=Ji>-Ƹ/7D Pg_HP^=~ ?C%8#Ȁ ~G@M]wЭ.hoN OjZ.;GP0l(l8 ,YRSD[U馒ODX>H?*m.WN8 d1YEJYXçb tH( {[n,_պ}Ac)i_*=#p4| |cpC`N1w!DJ8p7Y#ܜw|q#ϴ"։,Re\(- Vս .Q(ߦ炩ݞG{`(,KCNKgK y%ob;SR v 3Fz/'E[9y|Oe%u4΢ BG)ǧ³]Вƣ2:vq]tN\&"}`kS[d#8J:"^"< Tk c)h!aKu˷[<ܮ.F M!'rXϨHf}@°b8\ObƂq V!1$cRC߱ H4(LBbЖzZ4MYϘ`4+侖Ldo-:-f,FWdXB |7Of"/^85pL Kt-ŤU._.+WS7G^gE~_~m썝.+ g֢Ip6spzhQ7ɖ*'dncnSp)5} b+@1[IƮ?8ҿϕ\ڵRׁ(d`aPr\޼?_l#yBq;?FQg-* a@Z .^4 vs oL[r^-+y( ,)Ȃ П ?buoTBUM~6 afr*AN+n5w^y/zM KԪ6|_S8PQtp9&P8%ܥWc:#=Pw ƛG(#r9)a&3|Z~d0VWqlfA&R20 z%^ BhXMK8D  I|R mdiUb%7JkK4MF¥yG@B\s[3Gu2Q[s} `ig] $*RSGfu6xݱ!Cec)5ݹq٠u:JLڟf/{?ibSPLPYiD,2.+! bPo|1QkF!!.-.(jH|(#WQtzٜ ,esq(^yvJV`̑?r<BJr2VŠI` ]2-M3Gh4RrA"+h-nu_HȡdjV\a\Mҗ[^*`BGu yG/9 ӷX|=( A^׀ ck8LT9h0zF\r$'Z#+_؁U W5?,ٻ fz QiècafRH% dRy',#xYARTTF}[n:*[_gABBTR Dbb% EΉà- @(Dж"KZIx6whrh&vfl`l#X5^7iVKltg)Ŷz4.8-aZ*ErR)+!򫿪"qGZꊻ9 @t" [/RYmFi 6?7?((HnBюDT8;OP[5ϩsHvې`x$'a֦-}oA=^XDyʛ+r,xz8NwDћr6{ q/tz4PJPEt_TERo0mU"Ua(/8[AA }8Y<_Kyv25EcE얆<^^qGD6 ư)˙pC![${AK#q+לY.O& l` %c(ȴ̊ȹ٨sq"޳PӞh#,p{;E=1. Yiͼ">5.J]k_l|̓F*KgJ;b+?;%F1I+بb eHedl9'肐26 hJ&00fGD,zx!,ID)Wz'n˧i<;ӳW斊Ҿ;  ~8lB;b+ n+q;x&qE+G2 - 15W[=/#F!XRnXzZ~dfi֞b Dq(!2n#6~\ȠPN-:0gm&NLKPЂf,b0S ]y .PI8*W7I7F3XIs5]&,YER)nXɖmHEfD\H9׬Ti5bfbAv\;v\jat(Ʒ:pu&߬]Tvfo W 7R?˫oM8c&QC_>LnQTdB:RvJ93i( <'" Ҽ-;:-lP \+ 4C~pu03`v3BAκ)zp䫔/[GE/8[ |B-u?ΈZdң׍pWfNDAD:iT/61~W$d5C! :XyuzkB8N?DP51p@.ʐ7pԞk]A=vkkRjy.Z ( 4(S2]öU)DcN1F@ʚe4 b]pfm:% 9MJաJjiO ûЋ;-+y]8h#S׷<` \-U֓~V'?W8 Aگea@SQ}"hO[O)/چ; S~d%*4>}xĦv [ɪ#EVuV@{E$:>WFqpLr*ϣZ^<_a.tSMJwƜR'}bM5gsn<"AwES)O)wBO;j3}aZmIӤN?dg{C!d$0#7 U? i.-Ul< =] ȶjg 1~M!AFu#礈 !lzߕN\ʅ9&ElTm@YdA#!s(- aJBo̧qބ.58U6֡F{W+1B<.%]HHW_*Ѡބk \z'љ'5pKi}{ExrBRW%Zwd^o Ug͟=;eb-"h_|W&5l Py&cc^D7+Q2F64#FgBً*.j5^u K (J\CRW `` L3 p4c"۱D *B2pdR%t= yZS='_?nF.9t. 1B2ϠH Eiw+$TwY#řa2#4 ELq d&frmbd@!l$KTavbCI# v0JIیqb' DhD1&ħBq\#`5BjA '][DN9IJ@am'ʵD<|w}1kcZd<+LVd =KDtbB<\1[>s,$!TS h|CS'2%cc"1`tTR1}R*;ْuR]*N7 r<>љ%T\n6'ZUW&&u(.!6'/ xW& ؗ6g9[ 'd{ln?VcQcVi{|T\A%:dǥEw =E5c}]# /FI{]p @2Zb:\IN=֮:L&J R ]60Ou;r]?Y764C&V%{dH8՞bR@mt =hD SB,?ޔR! AX*elYlU>N;1IBe ^U DEKCi^Cis6&1/9%mH,,A!HbUHbXM}&YnC!  R?A!ngȑoQ*e)K)q4% ώa,@F8<1L jABd12 Z"!,!~%$cGbXE ӊ_+k֛>Sv{iF'B+p#WY'h٫\yߋag C2)9f&>ѣqk<,_=Q:K#)ڃઘ^V 7 p‘>yLmWB &Jz >' R\mKxX} [Mk[Y>n2=N%uj w!WqoLϕ1,y5|Ybz\ 3%mMZӯ1WCOkzY!: RMvpvӧIY3/dE.,2+ŹoL`/n.~%B ZFtae! *l#yR =N,Sk)T(6Lfc|KmV7 _PNL$-225M߉HkM(^ ҈MV~0Q[jO)^s?pI֥uR);W=,\5#,iҁϧ@L4uڍ$h}?jMJgf*E!s ˤ9,dQ"Qhx-E:`a-$tT$?2o)jȪ%R}URdQCQ̨(,gR%$mH+>"ɑ BxPb!u3UQ}Yם9+>Io^*` at OdɤBHg)kM? RHE^odqnD@)'9\+AA|'i[HnR">NQTQsun&er`j׽#IOLb :.W9*Ҡu8yoRYt0LBYȮ%/عQyJKBG錑_o(T Lpmɢc12p!Zx+  k O f:Fqbtob`Lh%x3kU*ȅ\80Yj#D8QJhEh9Ě8oY7D."oxzJi"c6qtX"6 #Qq@L, G{E8xL1#>") ިEqڠ2: ԲK1 Mj,S'|^Be2g7JC4:R;@CYO7jp/rEr#gLWtѩبj^^~$b5rmk@7`.n9A"')V8S_[ `pl > 4pnUu^K崓Q_<G155}U9u$PV;%W-[Rd3ݝx;1nsS6;F ;D}JRr@\rgzh1\ݞzٯt t V(\S`INi紂ٿêѷ,MΜkeUD+(DH j贋p@&kH/= B'p'#@'2 $ܘLT^tWeLN)\"PlBW-nӽuO60 quc_QbkI W#J*7o[QpF2 wXKD (H##_Th 瀺FYV*|`W4+Ov / M 5^󿶒u(fjGrWz _Ibz[_ʯo+O#u *SkuRuұuRpꯊ(57rjq'-sb&At⠶& b! "(gy^&I"y&/o4 :j&OO{FcĠV|iW Q^T-YgKGT@hYwltV6}|N,,tE˳Ȅ"NOT-Aܪ.,x9ObH<#Dp' F0`N6%feN].M.mCqPo_y>Y_ٔG.NDk#$2E3slPSe#e2ry_9]5;*(U8碌h1`ő3A0<S%B![y" gR G&OOI vBVDԑX{Fk8횭e+9ʮnB=r+Ȃođ QtU"A ɭeQN9ݥ}}(/vqá'V}ᥥSQ>Sk0I] ͱCAN+ CTJ8VHC1H\)h V"94ttD[zr>Mzމ{"aq0g ޚsN;Mh-9S£Wr{N<gK#WTr9S4!fjS`Oh֒G(CDi8qAAV=aLzb$-AE|M#q7$x:$)1ދh;|[w4>5!pR K&`B'ZO*cDNf?lcȮ{Lf,moŴ*ETB l&4r7)'n^/2yM֒@8YJ29(4 $HV. L Ij)C`:%rM#AM!HF-8 4C5[מ.[C{8BX'mMLS=v3$)l,Qܩ93ۺIJi??Vyݜ=dȖc0{EW&-?BK #-k#~N7=? le͈# *Y5wI^ıD\ P2EJ_ lm)TU?v L+Ot</H @,r3)2B46bD;4H5#ϖcCXE| | _v ` `ɰcRC} $ ]͙uHCy8MZr<)}%Xwg[csC:Uo*%$-fU$Arx>L=DgP2mv&7iYqG`W7 OLQ/nY슝nވ:=r-j;0Ш)]> {_"Eb9wҡI&{_E^vX oأN:իT 刼GXq!ZuEg׻WG'*KθΎ r7wA-e^*~GXH12UvB֭缯!vbiWxڵ.C0\ A7򸖤bJn|"z}$8"Ʉ`Ñsʰ6^(rlm"QDg&'Hr"+? @ozF'jSv.%MZ{ƁhRN]n"CU8K&qkc,Ѣ>Fkxz[dwd'1STȜ5Lzv-yho5CO*"JM|uMtLʕ<#D'ahT>+Qok# p@sY3'3RaϕΒWd1Q%K"nOG k"](I`sBH)apc͟[03]Q9DQ)]|5-ҎEN%ϥR(*ٛn< @x9R$BEUo̐g&u4Q]j")Dδ汸N[.t9פ$jHsR =HϺf1If֪E b*d12 YPS(h+v.0ˢ %z_L֢>6YkB[̻fޛPIGENx7>!!;DEAg >"`CO[[~KQk0RK wErs%[Hi?)k<ܼ/U/_#L4d$֗bo]S\5'vRR)HmGk+X8`/U6g\.I0+:Lzf*x-StuBFi}wbqQ#ϕ|9 Tq&=n4ERbDB^\09%Wh*W kv_k[ȬL\xףfHir"CgL+ }EI%_z9Sk9lXKMRYb<6:۫*z~L%/T)Jzƫ;&,iqIZu]wJEH=%H)KwXUoaQOpIox~%Ra:[]4t[Ipup(dATݍwSIT+|2#ufcWu^A,]}¯Aj? ͍_ e 㜺DnFF[X O>"dK sj@A2ş&T|Lbz L@*{Wɂvqcc.53iHakh]b% P4FkJvLZ j`R_+; =9"PB~#Q MEo^'FԾ~T*&*f''$tzqikbưO\AU@6epW<W _W0I(v^M"e,MXjADg@[(Wz|Dfv 3=5$<d7[OC:9"t^" !Ų8"Hw,GB);,oh6#}\D]ŪRwʒ3I Cz?],ԧgd_Jxi`ҳע5SMCQCkuLEoժٮA,Xo2c g X7II8~ ZYz,Bp>#Fja@qk_gZMc1#eM8eG nXNNQ|C:6 Kz%M|'zg1,$x!Ht܊QIM7bǍD_O]a ϟESʯ et/*I#t#ɛjk>fC6 EFGnc*m/P%K}EIcI__ڜ\Pcxmq.G+QZ s*g2>CFQtz1Fq WS~]ZOOGK=21 oYekSF!l̡XATNE7ru+(*,$ɒ~ޔAD36##Y8R kTT=%dPrr}&=S.PZFD6) D"% $7Yd d)8z\-H`7kWA(:i([.'ww0.Geofnx^7$l?#Ҵ@EJ,=jMY~O}#AU?oWN4gE"UG%YHE7I4h0r@'ZoxkB lDg %#[.vNjf6, rC8 8)[=EE2uRKTf-0 0RYy@{R[xcnyxzXq ?#Aǫ]qr]bwa`i*퓲&Hv&.M\ogfd,ڕhS|;M˟$QDw%j& V jy,D8IV 7Dw4HS&hG@DjFAMGÈ4Qk8-I#/oUwz M.Qkr^ՒCحK-V`ȞhTcIiiNSѲtig}4Utn VEѴPf<eq(WHA8ðL+#xrQ2 &#P@ %!ґTB%F4;A\oJ.mxD(XV pU(V ơh٤*2U3jMZ6IJWh)nyj5Iӆƞܼ@G1&64zo$cadPF'21 Ba!F2*C/kbBsÒEvUtUtJdZo}}[]?r}k.2n&jpWm?JOƁ}Px|4*ۺDu Z )VT[#&G'Ff\ U΄T QhB7 mT>}WՃ )Oo}.D(g>P Muq*&JEkE,Oa1u"g ̝|uM HCa@}D,& Na1&=Á00 M˂"B6:W d/馃+iFԕ o;JH;]QO \q Ίc/c"YVOޟw?\GfWPZpf#-(4MrВR0LF!HFsqV*kZ R"? b':+o+S77ϋeR[ٰrctjVլV*ZEJO7ay:vyU7-mE|4$/n\^4,E7eEޤ : O*U%SF#`->:=> Ͷs(bvb⇽`Q~ F4ga "ķ)ݯAfq?ۥ"Kb+[}p-x,,_maAe PRvp6ue2C1.7DͼNTq1ȝJ x̫oOen=mFJos>:E=byNY.5Z4e޲P M*VB1f9?V&NqD1M%>–nYk*s}6h ST>&DS1mEb39)R6lOj V"&Ui!d>(>U[@zsl\ņ_֡ǚ%gxYVnʂHmZqsJ@]/IU&ْCvAS{&睥)Sr\ 3UBaw A@QW"aPis8Yuy1zIZ-ޫ;j7ĨH7Ɛ2Y?;;kZє|V'$#~ԑ3V1s RL7rAR~hҤ+:0 H萄<,0Ǭ;6S}݉c퟇(laju8^2|Uv%fLЖU^ݩ" LGDB[TM\>} IPV$S2$+Pdt!-цlbmvVL !'pɖuzײ wlH!#2&! 8R~>bxF a P-R.:=fd XUD|eďwFAP욷Z)̚Y=Mz^K[t wg`v$!nw'3"\^\v]:j=,K@lZ~pgaQ(xD-?;PcQ&9AM dоAZ+(j}3Գb$iC-]=n'8՗1K.!klŮ/9p*yNB*pO$b,t;+}ׄm9^t?8T8DXRyuJŎIaSNl3$Q<#΅PA؜Zv˘`9< Fs&M=5?"` M$"KGLDB0߁@q{5-) [$VRk[d -:99/Iv qmM .>./?y= (/z$?}!"unwܲA̛c4m l8F\ tCpJGьזI3^0-Cc^#<,vKSx5-2h#~6}[}B*jhnˣr|lXo+ݗ[BD4r I>vԠ =R02rjAfQ Ze{2- :Ak_(#"|ڕs:>0wY'[0(6YDz!@_bM4Xv!Od=bѬƠd?,0&3] 23t]rpJb 7g895QbG$dbR.Ǫː>u, ʪ`ݧ ;YD0~ 7x@0QbBmN{?(n2>em_eƄa`0/ vin- ϊ@V'V!_O<:s\_' OKʺv!{C;X$?;pZcqn ɩOq4R*K:&c&hNTN;l4ZƕC ) ;Ow).W#']JDJ\FzԠpnͻ=4wQ0 j21m8aHGV*X#)c5DQh]-tCwmnuH$M䦮]5:@3yʉ¸AfDgo3X!| HukwBA9YXX,f!F2hh$O]TYiy;x\`E—ƞqQ5gP%撋6lg^8RW׳`MJi1jvYMy{K)x 퉗[^E׫ )N `H"B*uu죭 d*3CgW ,aؗ+ts@4xTBלH U0M&lӦY5Ń^KSJ:i*4j5xfb-q)>&ˆr;i ^Sbj)4HN/UӳW Su]%[M&+L0D]"tړgۚb΁LE 'U?$+0H,2GPtEԴ&" _mJ",,9v 9caaPA-=2 e]Qq"q "C %jVn$0 GC )Oq,ݮTT*BXH"\0 /s/0ȇfDَ=rntmnM\^ Xv99f>{7d5T j#$Ǔd!eHu6B[qsGRz(rW U`ZH4-+ra6\"F95֪Lk46"W/7^6b<$!t F^BK=QRNjr&Lu3]̝D$3416󐋜H<=>zK)pioɻ| w,BX ͟$3ȂQm?iD PX beU2TG\> Hh"HO"w$>FUU A[:$Hx_ؔZOP`MͲK `Ֆzsa#n5'9YUˬ̄QUHS0WhQ 'h-?Ug_Qr<QTGG+"4ܡcPLHGC~n;Cmg 6w4o g J$DEB+BUVN!U49v'WK4|AtE)ZO ѫE%":i#|i :QȔ KT P!Yh|$ok%`f_Y!6" 9eyHj+2#Jϳu%Pb(lN~iuNZ=ɵDAI!6%ADr'$ JGAb[M=qxɞ3#D.̚jqƋm4jLBejQj~*K={x^U:SzˮFHE Y.1Q)U/rd lTmS=ɸJ2`{L 8&lʶ}C9u,Tv`FbZCڷȑ4Q&n֌WHs1BNj+)o~RGBʅDl\Cl $~HkDč,]/οvWTafB"% =Z+\= Hȭ喴J]_ڎ7kNf9ss.PaB*YR%H2gh/,'ҭq0ФN&NPIL)Azbt[u肑;2Tz HNX ׉Hٗ+#qj~A3,ມ$ ,``>4*|IҰAch\Jm" 1_`|>AW!fB|EG@eOhd=*ϭH<BBAODm&8Ea\e {đC`8&fD,2ycC>AD#}U$Z2جQzr2*26ᴇfBLäB TLEL6p\uL r#B7er)1y`3@LD(~apd pj$` M21!X",R*gn āK#(|Y#"11dywg,ĻJTxlxxH /(6uY w /zax! "3-H [@d5@&4n2w R{(U<9vS0(Tj[^sWX @0mȱCD8*P.cGfl_f(qEeXmuDئht*UiB]n6$z5ڟ(ҢI+[Q =k/PO|k93K e'{ e"`¢A+6:%x End6 $>B0Eo+dt Deb(¦o= R;eB2b QT~ni#Ȱ!9tnD/бuSiJ%,DHs Q *f SoT;"9neqŁ 1Ȍ-h'PӠU^ H!fX?y2慏:]g񹠕+t $6<$M@`eEO,D8./( % &+hQ6Th]I6,:@h, BL,6ES q4). `3B*A(iBM7khaEi"MF2>! >dB%l)@Љt8ҹ`/iIeGB{;B%Wş*h=T- Ȯ) MY,يvVm)& 70&0g7k2.SN?J3TAT1_铂I{$KwŻ.P3ME8cK/OmJTczE+8# 1De}Wl1Kq1" IGϰ5PvjWbv9mXb]&YxOl'tCkil$_rQ۱|!UE_|bWv` vxSÀ= wRFr~`3ءL,ƺ Fbi{,UF`й(YoyR=)Xӣ8^Yq!jihB^ 4`1v$Ik }$ Еm#`8X%"{mE'aăHѢAFJa9.b ;WBJub{A#8*Y>'I3Dn%AUI?G:")'u*JG#dogX9LqC0,342q5߲g!r  QHCP-WP2zʥ1f?=J+2*+v79̼+w.γU޳z\+nw9Pqg\ s5#NRiJh<uٳ.H>ybU`^`d.`=bFO"krDppCt(Q>[  *3}Q4[5(WXU &Ʀsi9@kpڣNniթ$~bZN1D).B:C<YC(cQN6Ǔ1&i5ߜh}Y"D  8B(Xo )ve"XD5FRl5v/Yg!G9nlTa..Cqigo9)gW˟M3 !$AtWK1H׀iUضe,<83Dȡ1D={qގ'.wVܷG'>ETJ21˦t= ܎Ma.:ց$}Lz- Of2lB?JJ QAB*^iwN-jv}4)'p%]9\g6OYY];y r!A4՘,q<} pCAD*|D2-%Y2|:s "#h`b4pJ +t->U?B=]>aރH3;L+dn 1YJeR>RW:|yEJp [qf3&LrfMCR?Ik#K|xSCsK[kki8JNU[v>)S|NUkZ8苧8Op+ɰ IU[CJhc` vwU:S.GXz%&$BѠ\l(7k+j@Gh10NC\5%3UűPm)X2i{z y<=+` ฑ_@~SRG9|[?jpLmڙ'.6niBN} P'X!ʨiKc% ZdOT/'LFEqvN!]PbcEaƿS!tW6{5xS9WYkFƗU|t=?E.' T2zk3Ȃp^bWDz4(E;.^V<Ac$AQ`6Ł0*=>7! R3ԡ l]'x*v/?3skBII-["}1zM̤ݝ j/5 6 -~jwVWS7Sb?]3ׂBIc551cP5DlɣӉXG,Z2uNۯBfju]*:e5IhÁw&{"XP^"a UğԹʉQMLdNil k6֓֐h/K<|ZX ʽI"$zWm&jE8='ա1(z/c?faL| @ P*&:R4G}RH@[G|:DX*k61ۡ3fﮎL%A_$g$eaSy%FMG! eT40sFkV\S^F"?z S ܆nR{wxCI!Q``h'0,k%^\ fo6Xbht+b!QLȇTmZrLSy!\IS<7͚1@Tz*fB3QVzLڪ\ڱc&<؈O02D &*p8Gb+'vxt)d hX`'^  HE"3A["$ܵ|ֿoAL0&1ZZ/7IŻ`guL'- LJHODRןZ J db|i&hlj-ً "p/FP\jfYC9c$1[W"Õru3E ř Q ɣPz; HP_ȄRTWGց% IJJIR! `4@!;i%J߮7!0쬊R3je9 1'!F ȚII̚B< :R7#kbZxJEeI0O-e "j)`X)ZN / _%䧢Z /.jrٸѴ)O=s6=㘦gaq]:e&  UcE+DPA#a:{drz6(voʕi ˽G~/JK&IKhбY&Jc$ ;v̓!YUjX* 4є5=GVOȨ!ZћDU-vl>$EH Xg&][ɡ2zXi,K}Rs%/b4;)=8Fr1$hb{=Rcz;V O_YBs|/~6&8 W4ǡ/7Y2&ZUŕwQ]L_s]-)-x^"^2L㱦I oHW~۹Z{E'4/G';܎. qk:aKS⋲2>.qOK-3{I3sQSl8`%׌Gi)vQOx`pPgA"#͑S΁DjOseU֑X}}LTXaC!&⪂z:i/҃_B)3tTJër ytu+ɜ=mi}hW[2-*OO :>yQJHc$*gF[>dC]*Q"8у)UY?ׄR #!(2۾ ebVIS @7"\kT߁.v $qvn~KG(DXi_JKCDAۍn/J.C")' bbTÒ-cgy8I$" }4W.L OW=L\B-X$`LH|{( :35v2X;'*9B_ LMM ٴq{Zd/RPg0Fu;wOaRts( O-O "4KK:vۑFQG;kqi}aeTFHC`"5@!Xnт|D\@ٌ oATI;eC"ɴIgd ՓtnH18 Ic w%V\ca> $BH0T`PR IOO~(TUH"㲜L {WLN{cAUA:RC6`XNDvLgѶHAUybe&'7;j>~_o}ZfJ-38(LElӴR WJ,mf B(p;۴ F?8mG@2  P2i5 P/դpG @6P\-J4RƧcKAWOhmdaUR>V FTM[h2$& 8iVSK*+zT ƙJ *0#}KC v 7/jLJ!2di@;'0qa8c49pKn2g[)re׺ҨABjBpeؚ+ZyB_Zߦu7Å{FIf2Ëhe lB'VS e$z$$"|r,C,wVڊ`Acr`P';+i yБmn`F` S0 hFPjI0-?`WsVnbgrA1-++H<7t>}B?Ayאd{Yzm $k[EBZ,UX5y҅2/s5$ѨN.=3`7iB5ugńn'=BlwB/X/Œ7nt=Nߡ$f{> tnS&5capM5 f{T2f'?C#B~ϕCޱC C0Lxb[[Kovθ{}ՃpP sPh%*Ϡ<8~͗Rw>%( A>RYBU[)jLzZ'|,]~h*:!vH|Xj"_qXQHTft ,2JcW#wDk8}9>0;ʏ.<+@ ?/8R >P fO˔$>͠ Z q1\.f -G`"]y7ی-wQ<lj+7Ȭðw4`?h5mBZសd8,1#yV!b;$C/@vC5B s mh| 1&\X  GcXccrFZuh&א*[`2CvoPX^¥攽5O_~Mc+7=5DPTaMlySJЁct<uJXžazfC G~lm BATYaN wH-" fYK.W%Kh B]4%JPӌBxEt3e?BZNZ%5e^)݉9IsDs} LM6p+K~Itky:'AFr0ō~C_sSenZ3x~/pVK~ɏn P^r+Pxb. CS0=KZ@BqA\vqDI6׺[r_6U[ʄ'厒9Y}հܧĸ]aNhw]I)Km,/fBÒE'4Ȁ1DBy^nh e3C)Zʰ1@ZYjH hj ` vg4~BQI O:P#,DGu z և槁֎2A9g2 u ߛ@ YR5B 6&(~džעˌ;2t`l^$ Q=0AGR1|-BBR n^ 8&6dQVNyOXe|=1A`P4lrZj&DAIG)1etR+F<ۄNJ,?[?(sѧT dp`+ۉ:I~-Tãӎ[J5U  r2Hc#5 +N/G LE)iu P3e\"dm) :-A5XBrPZrOS=<+ިALI G!~v6>ިY7A`zTziP MA(F]A!J&f}Z_"L:?T8k>Y*9KL'!Yл#$<8Z zk("!{EՖcM˛}2@V ?pFJЭ+wk]_+ @ P\GfOZ旹5&#t7`fmNg36iXkW ap]0zc,"C'd1JLdI#&277((~77RC65 >|(pTYZ# p]Ch8am'!J3#->UR+%T^߉<^@+6EĊF]a6m͵c(UBc=I-WOGWx=!QF~HNB+e>aJqޡG|𒰤m!+%v(i;jtH&h"X:R>VSdSh3"t 6[\Sy[%pjf8/GmHD!aC<Obrc&61[/ճU=P~,GoDW>9>YJ6gHŨ{$ !ܔvn2 o" FnȆ! 9A!HlPSboPqkRRB֮ ܗbPrK>y q3Zz咡quU$mj/"fTP~^ʭD'&,9{SW 3@N x(U `B p!LMS!6Ep{E]10nePОr[4 ۯbS)QSԵEr-"GFM;`e"uz ^eʚN+K`̙$&i2*p'%Q"մ+D)Z #>SKaGD&wB ¨a;l$J@KYFЭ!k[_6ꦶ~U H^xBU~&[7ܔ&@DI]4'BCPcѱbB_6ԿxǽǙmRYJ-]&@"!xv>Zp9ސP1HC,$b&@0@z ,1ZHG&!QoT!Ou2F /bx 0/ov:L#2x]cR[GEIG<R2G"D h7U`=;H?McHpdP0 )]*b%D'O%b.L;b:MJ/& zvL1$v'#`(17F2„],$O,*1QX!\j<1t*G~MB(>u /Fwʌ:-6 Uת2X*~"8/%rt)IGI2Y'fA^ޔ 1J'T}ibӿZtP]c:t/ϕkY*#ّ*IZ?g&U-*Yv"L R#tgDŤwlԡڡc!\0Ĩv,=KUD-L/UHaA~r;-\{!Q0v ka,NL%|Rea94]%ehyBL)X4( {5) D҅;l`cr5 )gQslD^8Cy)t RhV,!11 7zλeL5JY,[BuEJMDq"DIË.DXVAGQtTɩ4JNC ZX'mvj8aiBS~0G86hWJK5^E铘T1"jaatk-A/(ߙ@CtΆnn`x>!b8v \XKt>Cgem뙮r<注 < 8B<*sϸbXfϫlp+hIoxxd/@#k$&1piwV#XE=] Gp?%FOx,rx1OPL{+AW _6\Ƈ0L%CZv"Ii"}YQ'5x|q6 вbBK#P,1dƦ c!eF5"L^RuFN,Rk j!2rk~AX"h-W ʙ])0h@N0WXMٛ$jAxDd?жz*쪟&$dC Cqp$20I|_@EK53|D&X%JJIEIYOZ)Hʣ6Z RQ8*$@bAB(3$Uc1u4ࡉDH6y+P"KHN2=ۓT!@?f"jBLɸIQoW8&eU2e6JHqnx=T2mԉD0K.c)&Ƿ̑TNV8Sb4 %|d*8:mGę0N0 V@tNy9#j v!*_UƩl6-9#z>jTK6qA&;;hZHe:TX ZiZAIB|b-`"%kf䤝VfΚ8{;z oYVK09,. >bs ?6q9q, >ĪEΌϠ0rѵ 6IhZ@X,AI kmIAa)쁸r'D .t3Q0 h$)VI雕7/]L61_(E|}'h"b5VQkAU(hnzZshcpLw)mB}Ht|tkb3Зe)0y[vXdr29וVdE ]v[(s(}䆲ZQ@|J5?r v:]^8! C1#DMAKq$ 2sZH Ck?lxq!_Pe]G*Jz%&r ZܸDZuYΊV_07$Wt]6⡃-4VmW$L bQ*.ގTsWǶpUP2)$ -0̄l5gޢ2Q@q#bFe6#UjCn` KgGI8.U-xߞ+MO?8lrA0%xlȭ1V kc8mpx4Ieqe@4^XzFl+X&710_CGR*~ -^ H5!~}irq$snuI\I9iJmT[ ;n[<&OȬrB m qoG̗M8Gk")Cl&H $MAI,^H^yTRy4ˈ166mz+@1v3'ԩk&̌c!yQ̴qSNKI-U)VSz02[ U6F ,VmE$gTy`;H \B{ܡS !LZBU# c/!ƃX,ń)L7 rMEd G6v 䆬4qW WNp̉HwGuI>C\I8+qkq8 #ќC#s56' VC N|>vxٙWc)r(Q<WՃqf5-~l" , 6(K=;h3Aan` {Q+FHeڣC=t~*'WG]'eƯ$*JӮ 7o2$!6!{$yĽ.Z7 ʜRS[hE'1pKM=Xz:%z%hPxd1%ec=TvEh8gqoϷ3+W~9P΋:-<۹Vٽ1l  aw tYvf?=I2p E, Wׅ5vx5Jn{KP6 dA# !M\ 8P NIl w_K>?(AQ澯YIqrp]QIŹ /m*ϸĠ5Mu`w#P0D̐"V)ȴS"Կ>?!32~[UT×楒IY:˷Ybׂ)"PcϾ'oBV6SFK9"D|r=1VrBKD_bȖ!mc&yTµ~dK(ǚ10 DIxK̦ kRiH?&T3KLUM|ʁXp>u8 7jýu^|I(BͼiHvu2:G{,hĀ!сx@Wh`ML9-BVUԨWfrµ,i,IR-%-c1`v][؎BrBg,/22]YNQ*u͘Z\R$k5 !NM"4|E}?^Ȉa0A%ˏ ȖBq)%feY:6_a< !^ǖIRWi+ D@cq /Ewf} Xry:&C2=0h%*qR 63z+l AHE!byCnA]abgf¹AKT# o zt^!fр nޓǖġ!F_R0ͥԪ+}I. 6%)|FNDnȴe}3.Ny ٛ_DoCLSxdR[ˍ6fv3Ҽyi@vE^ DHx4dNx8+d k<2?Pw J;rq=Lff?&ںXŇB&|݄)aA>ʠcnOFJzUy:Dn@4f6cC>BD5B`Ɣ]"}k Y)P&Aϝ-C>-*\Aeʈ-+V92IЮr:Gf&K9ŪD|7Jr䭁JA/\ͬuSs3j=z^ Xx i8 D ͎]o_V'+C;2؄kQY TQ^W}m[hXplb ը%pn)OR:( uZ EMp#Ibb2ӻ6D4(ჾ.IKB p*DF, ԆTt'q(쥂̊eLwK! ZBtȔ#_4!A|=`$T*eчDq "RKaHO }vChR'dj)rz< ܔ#gˠB@n9hf 5Z*:Z$SKft0D/,!XO.ሱS5[^tEx/J"&Bq %GNXltN ~AwE9KʚM@NqAYs;}"ET*h($]elz~m_:]M8aԭ*#YF/\#(it;rI3wtGL+&7s`(|:bnOpDΤJhwfNYpJC bITg!ՒQ.{ {L T;m{PڇhҔEBl$uȖD* $`a~k! p{ YR%JZRScYXXrXzX9]OMpdIO=EGKi" sAUX(|G$$K%PԏuTԄ+PHyCGYQӳkyḆ PIՌ0Fh !**(492[&H烗6 Ҽ0v+ʚ sm{l8OIHje1[lN8ZwKaEŬj0dL40T#A e(Qc)cYلK*]T$$m3R5! XGO !"sr(pG0QšWL?퉰qg QaRˆy2 E(jb.J=0e(6D$=v:7w;Z򛓟ptI:e'P@JLP8A[{Gp67",>a"t}& d%r4*mK: @WK*e=oZYu+12gl1=҄bv`TZ| E7ى0.SP(-R9C!K1J ]6Ƅ5<*AM$hpQH 8h:\ٖe6FHNQ"OvԟwLIO CpN8%okO/ J7 jy8 $|[Nrs-JjdEe:\¥ٙE/YK-{EJ84^8^ny1ܯ " GGNoDCFdYb('R`P3`a 1fXme`XR Ԁn, S x~>u[9xWr#o"B4s-"k̏A@rlGt &>eH(Qř&̃*$48;B&yUŚQDJhB\#H<_6DR5Б. y:Y ̖!W \`'DGN K*"0bgՂfDUdReNB du(O]|unlA/~jVqiGNA&^h^:ȨcDKDH]Ϗ&XpӂNf}l@*Up*!9;wce0m-auRفZ cދV@D)npjMO+ŚMWXAD֎mH=hCb_@ٸ-Zm߻q!U_ QR#{T;$Z*ugj(VNKE ."QC J8&z}e[ #VWr)gH*`)B ESXҢ#PXmDxI:,QJb6p6'W3TMA7exr`GE-CtB7 Dx*-6!R%l*P%N2¤ Ih(g69="\DIӺDbwXeLddTz)Q:q#:YԱ/QΉMAHIZ "KÛΜt`?ղ@+Փ$]LIb1%+ˊȽ\nTB2D+.=^Tp`Q44)>'- EqNHTfJV ąuclp.8\R5Mw! j c#ȹjPc`ZF|GdR_0sM|Y gSJΆO,0MVЊC˃ܘiL՚2"ыJG:X*!*#p\DjCau&8g+ضK |R`[eEsv˨؛US4keDIݦT*hKTW <~TK+פP$Iw sNf|U>^(ЊՊ6KXŒ>eqbo- x(5"40XRJ%31*{b#m\{Ә֐M }.%-mhNtW+tJFY)Q2K5ٿ(`Oe$"ƄpR4UbŦ4xGm'kdvwk;/J|}7-ޭ;_&|O28_E{ $R=)ғ$IrbE X&R DFJMobZ98E!LT(OQ⦼zx/N# !kQőL ̔x&\y8ګJͽ,\8l# V]jCIqݒ, )KJ^=&Ngah A!M{#ս[vY#  fYz$&gcO}SC`֚d^~e>z-EWnSIñ@igz<;(Kcp.blO9h7DV,#hcHm`}1,^4YFr'~]կ[`Dw"KiɚXf3p1IJA,Fa28lq8'm=۪u⅟9@~H2QFnfcRF% 2$^U1O'.ȱG3\msRwxzUVʾDZ5p3r$IL_}<ܴi^j)h0 ϾSjYU%盟aj=%7C<-~N?,ܠ/AVsx p:Γ#e߄ Ee|*V~1XͰDjnܡ1^u& V"7OWf =>̛12ɝu0zK4?P=VD&i.p~U >)4Y=kWEE!31XӠ'RXjb ć,\[JrAd_4^{P.Yzobdr)z|S Dthi:˔YB<7%ʩ?H0E¡O *Eù(,j~P'W\mF(T۸NsLT )U-4mg凕W߬n@=pH!a'&Z.pfhu^n1)X~E/@n'D4B+7GD>C#%NRqtP(@&2NvT,߆u9.0zH=xDӓi„$4\dquBPpZeQ|M)DP}Wn"7؍7,b({v* PO,?Gr8T\FQ2dW&dh+Eoډ8QSIMKS^t˙CC S%?[ (?4K*MbnD( DzJN9r#ڦ4^Ψs8y˫8矠$AL4D#,j>$c6͇&.$s(aSUmRSƐV$\!7λ]fxOtZ<3oTb P%^@ONdY Tg(0'#?f4&\NkV(!pHt]HH~"yDOcQIP0Ϙl2JqN*:;*Rz^{QI]&+$XJ0',Bș'Պ `U{aQ_)=ִ)U:. X][\;ܙD$n?.E?4Ty0CM{Ǣ]W7 16\Ҧ4&>VAPc+Z)ȒY!V\WXcycxn{m蟩, _ Fပ @;|5܏<JBr8 BɲijE Ѐ*#ٞ,9}`G=lO8eNA6jrSR~ 8"(Y'9'Rɛ=$Y%H ,;xZˤ$[64LWaMN"Qlr}[e>P8+bJ#?,KOBIJǘV2S6MS6 0A) I޲Ce%rEB%,Ԋ5,Vv1)|h}b| ip-D|n t_d.Eǚ/NRؔ%DOJ0m (=B뙟Uf*w@$-Jq#*THpJTϢ4p˰ц_QphsXDD,JH%.0%L9ַj`3:=McMFjPz*2RXʉFf5ghQFB wr.N 4LJRw7ÔLET⹲ &d8u!%zFH=0bT9SLjz*//:>qC!6rG_99Ped|F?U/ 9UU4JaB]V9!m *}`ę̓HpXK 㴠ΊEP|3E<૤h@0z)ȦnSq*QfKLH EMJD,2. AWd$O!JP~3<F/tEy,d@C[F  Ho!9.<2,)|Fk-<"/(rU_ăfM$|9;TI˞]NI)/ PJ?ewsb'L&J3W6 D'*LS D+y<,-,-fቝ&B^uTGdX=TR;%7CtAacZ["۴TE!WfQF [KBRZByBTK .ښQX] "7+%@l{ 0Z &*etML25OHBJb"4P%X'Zdnƅl'(K^Vn|uvY+T~L(A+]ND{ꢂM"Xt0aȗ"U ?$A.K R)ESPm+A@B$̌[/6H2~0r e<𦈿j9X-$.u%MMЅp m T8bCր(8:S,2;+3?(/Rl,a/䉻28ޭK#6^p$vT/l:HEab$6Y2)($^$0Jȟ`H^d{R8D91qc6; "bT޺#œNy9*kpD60BR1'GƌhO֡gM.0 x(TmK"..C d2";]<ВY)*tTA/ŬAUHh ~^&h*. B\f$l^ Ei,V%_|WɵH8Ҳۀ m{{3Ow9ri'W̎ +ğhģKെ.nK騔cl- (eg1O8CbHe\khU '@@J^vDcmVT!x !!?̉:{u2r4g 6Y&R:ȲQ2) ^cGv{]=Q#w>8k6C<IDZGFh G}(THtDL6iCf ($ +Cf|,#oyb\=.0P:FR51&Yˋ5夹/<~,q&jxH$RvAV0{ԃ.=l6 DY) /)O7D}6!7\DET=78 h}:)j?3İ!M%H^^.4)%0*+ DV2I Pca<A<],u΢ID&DD똠pT&̠M#Ë)6PatN"u ]J!8ЦQ(xnqYJ /+§rXs빪DUD^. D&RWG D=4UF0qƐ٘}34A2ϱw"lU(c~%{I"AUi3lAP*UZ!J6$)WmC.7mxϗ6 b Lj:Gy " 六 q6~U#7*[TA(hEzW8vB$WAISK Q:~جCݲ}@({m*EՇ&1ƃe8:3-6 cLRTE U2eL{MCnOPqW@f/ 9#YLze_6-SM_nɋL E}qͷi#]7rD@MG4Ź/YUcNfnlAR&(j]zf[c ˤ,mVs8l,H0"Ґ=9(]wdOpTkzbME.=ÂI MEЙn7 P'E#y(3(lEI,=CSK OdS,">Sȯ Z?QŨ/[($v[EBHau)wI3a&Q F6X<˯JaTĿG'c!t"AӀP+Jɯk7^+j;)6m|%%4 QˀܽK࡟:sʭwT +4Fc*@гb& |$\|c:xE-_>l%g . suQ$4M2)[I;FFu jR⎗9)SeC$NG9r"Q,_YW d*C`d'Jhw6w|'"#VG.[ մȈٲeFH#jC'>'U~Wbe|?CzqI+K.^Z䷋ -yk`|J&!{9DؤLg?"4!W`N(HB:6璿VH3ej$٦Y줈rp/jS.^ʞ8GSTѷ-bML}fŤE.b{!LMQ FC"UwXge{n]Ƞ I=@-Km9AYWX虙\!NN[ob09%iV"rLR˾l1/0r 5JiL+^Y`ݼ}Q,N YX>@0Kz'%Ee r@{MQ_잮!NQRטgi2!G`sj%K1jD4{Au28IKW&К#ȗ%X'[Ğ_]+HR9nȓ.-(Ƞ:M.* %:xo[m}1O3WD|/Iӎl.nᯑ~+$7DeYDi"?ѽUTAT ӄVAn*RظyoU5/].2yf> (^uSL4ТQ&F2d ^2 *u{ۂmNhn4Zm]˩"'S' odH(Q,M:&3+.2͌TuC/6* /0Gl|ݘfWVGWz4JX`'FG{}@KF^2_:2I%[4TufWBk꟯r#;UDAR#2Tbz)wۥFS3lCx4co3Ơx؞3׌(8 0Q)(sSmfK42ufŷReie04WM0j$74*肨eg&%fD 4r*rj% /^Z RХJΈmF[@R%:a'vJ ނE dpWLKXYqP1S,-Yo NdyҏS/j҄&kGq:/aŤͲO l8%UD%O MD6>v@aB+KPZE&:ve4c|GDq 3ƅ Y潕Ϗ5&?G,PY%co2pGU N4!5$tUk% -)m D%ƒ!$bx%aS`&8Bi8){x#NH)ph8Q:'.omt!W&S!"VNV qr BRY1Fa M`ZD 68g9ţH}¤Fiܹ0 l6@)zH(PD.nQfyFl&MB)2 i ,Px4Gr\cۧY 41ܓn%:SHT`p"5A W|ܚAf54 U!؇6K^gk4Ʉ%3CiVk"q@؁V̄&΍  8_Z"K.oue"X1˸yYYjq%^J!T畈Z#%O+77iT t'i~0aZ&EΞdH @Zs*֊Mrz严ŅTjN6Ah&YAdL<|[--ݰ1.楋E# .=\*aL7$I,Gh{Eo((Hup?E-pɅJ!2ʰ샌Ǒ%<.re'$8%\`noXƩcpwbB~ ]OG @[d臋 !qEe )P4I^%6݊ D(f*$ 2GB*nMmIYqlr4m_3N;Y@H{'ʨӄK8sZ$`q wTr܇AD408*e\6T8ӄl,/M_|B}FĈڧQt x5R "/o_r*+KX\k2o>kʉ y켷=&iQ,T)!"U.<:B6f {{lP_E+qON߰"W0>=B32e 'fLZh=|̰4` TA,D"wt3\XaI! pC0#*ȅJlqDĜ FL¿ w@c c,kD4S듂 dʊIW}*]}*+(XYJ@Eb/m  !(cGop^ Y#,zY$al hF܍saE~)<N}ꦋ$(k۫$8Lr kc a']LkYEO举,BNXmDs2%Ki8RGRNBKmQuKp 6{.,W8bKQ " * gp @T.])D {Z T"AwebEye.$KE 8MH v#M$ aH&V˲;x,Hš<(ed_S !E߱F,4b,AB{ *q*gfjߑyHks=NP;w6#u^(4s 1N}E{IXU!TK [ PKNJo֛Fy$4 &CvS썋QV,I)ͤm(_+e >4ger bJ'x *8QKd5I> kA7طPAֵ{M \R Ҟy|ScxH ;Y{Zi ] !BT2QN F:];REG95,)xa%bQ;eP}iKD[;҆cN):}P?o wmWg_EU"8e|`H/tPeiM)1;4DhURVEX(k-ɔy%(Up&,PYq%Vj) "ԋf=") Jn~RPQ38փ*N:I k%_,2iO enS@TW9̊mtBYJїJ~iTAܱ[:{fV~aBT zV]LI}# ZId t5):{)PU$h*rCS,ST5QmwٖzZ#6ocZE0E悵PBׇd6DIE{3?TڧR#ᒕki{ s{&UU7nߑ)_a1rBS'D2{RrvK~MIㄓ}l*f N5u %)d$,vŁkT ^q5%h֎ iwp-]&ȵvf>)V, b--r]GZKt%$<5f4Jb_~vXcu47zJ D>~w닌B^:)S;2L  xպ9\!|wč?,k M{-Xءi#>Ɲ"})Ǹ0RDP{tF1oZnP]m$ƅvR`n*k/2M"p8dGvTCKckx2QlE*g,ɕSG=l[a2G).̜Ubީ{hvB&⅌!lج=~zTn\EnJUt&]"'k4̈Cb)Ψ&BIbsM~NBWdΜG+5gxo/%Be bL|3NO+n BǪ eo%iB[aH6 ϕ]*nHtBGNiHx2;Ҥ[{R9Oz׬_R{fPE %dՏֻ|v|Vx$ƫؠB)G”2\k ѣbuK`ā d̮PTɡC:RpxZ kmA&r;J&/~ʡ!qE&٣C=:X R^m-YuC(r"g'eIJ `چJM%Ho)vÂ{6NA44ʧ+Flk SU:EZ>2Cd.<:rsi,Qr1>1:LEhXb%Oݤr"od.tQ\c5Y:}x._~((K !!CȩeM\z5X7D Ʉ\w|)$ $,ZE Z2P:*'q2 Qt?dܝR&۽>Ca82r`%884I(}y'.ȃa|ֱ4([׫4?ʬFG+)^JĞNxeHDWcAQenI4"sي7XCM+ x7*_3J Y:iФd?tbudf޿+ և+TlptUߥk/1V)X09n$Ud5,(#iKݗ xƤTa8j AM.GKh /]EgՈRхpY_iҢǞ`7PteR."֎6KaW! -Wѩ6ݪ%'[g?\>XZPc4JW$idS_3$&Ƥ/q-@TefC$zeRfj@\%`]wȠX 6*b^+(Xp ϓ`yBjim*m&Ʋjy |BxL[ Ӛ%"AwH 1%HT&lV" >^F܌.LeZ,gj(W!&$f[`ѳxa#Tu%2HG~& ўD\JtEv~Aey|=i!,mN]O$@~ ЖQȱ>TmqJQ8q.XS}HZbH^0|fΈA&pBMla\  ~µ.B}&omٮ դ!,~49g-| YFREO",qH.!Bfj P~ԋ]O6[=I *lELR0qM|+0qyɵVg&9aH~ ?ا6^0SQ;q2Wd^3PՂGQe $޾) 4h)b%9E \[i/ J)k]| vjyzQBHQxMݴ&ZfFڨT(WCw!siF.tP?MƮ F2b}siʈn",\꒓/kŃũU,qQ-ͨ2B7 *t_eN-R2#&BXӰ$S$dw[N2@Y#V  '/N/Hwr#LiOł`υe[׫@JZ0գt +pp3 Q^7*먍>\HQIF&K}C:sD@$_i)j@DP&lX鵂Z/D{_ܱrŊDP+22ᢝ4(]Hṁbk2d$6 <>,\M#٘SeX.E AumMˆOw䗒;K*Ah{O3-"W&:$hT;#[ "7a8 :4Ӊ* RSI9( ɢE:}`̪!%7/|5DAsR 8`M`(\PE wK ^ RDq0Oa/2",W"Tl cV?ޣ_z 26WdO#6YaЧGNqL큡Q댵uH"q?(A6:r`& ^V^L0*[lU)BMC6T4?!? n{%wh}ªI֠MIeS]B~|KG%0T(lJ?%%4ATJWZ,e"1lլvj Zj(G1Sxoo#rcN-}.)ӥG *? 9 nC ļ*m:!6J/PEać)RMȸUqiBIIW{y@d07Ztȣex@ YI7s 0 Q]݆62\sړHpEnh+ї7QJGKv;YB.x%;a T;Arߪ)Sw ˈHFT:˥)[# }bu5.sO'&iThC>X3qnPDZIuz ǝ0rdعF5DI,ka\iOJ \jfD" /FPe+7~GESBM .a͘k5?Sd-hmmc8w>cD/H]$2ʇ5[1`4Nb>NEz;1)nʶI)TAS`]%&fKQ TA$(FaS(B%|%\)KՈcؙ|;- y{,vm܁aa%nI5R#FrG^2hvPR',й{p\*$&<6\>2K/17P\' "ގ KS4cI#(J/5eQIJԃcdQhA^2>!pz/X LA7(ܳjT B̜uG^YG鑂#dX1}A a(T6\j"e2%`={Duf8xqh%UoD %B!5)_ɲ MIlp85l,M$(YTNL]"6ZSzk" ~! MyL 7bHu2KyQg̚Pc @)VX=`U&1r |щYyb)?Bc0 H_'&r @#BrUp3cÜ& z$i,%)"ܴI"x]0H.!¹0&cm#hMy#:-$Q9@q`wB뀸x , =ـE"<W"#`~``vYvb;Z2V GJ%a#$.U%u"Lܹd T43IܞuMva~:LfdH#!P̓ ^*4AAs4{NQ8$PQPrʼn %a.QbOPP2"!nsmĶ ˎTW̐N?.!qj?WK#OlI3Dl@_.q42C^DAX"evn"DhwFK[O>$VqvكBV<bQA2)0|>A9}\cL$^X8&p*ԟtac(v'ZTEW4I5I'0\"Hrd(J؂3‹IL;KRDI>mdvSSɁ -J& ^vKnTZF$L14 wq`OXrqa\G-8P"R$6`2"z8[*5q2cɜS@椰KpP6=f{VA֔]%G=dx"L63re%6Bj ؠe>L ‹Q J0& XMSG#< c`ꢇPA ,I"|1]_me. eR2~_'Sf/VY#rmEDșd_pIE)B)uO3m<[ 䒙@ka"%LO%Ec[)şsb$[bR|as"B~ ¼= X] 4.H[hʤa遆b8"kK) $NT1I\-NHÖz1`ӮZ?@,DAd*DCCk@E\,O0*'N'h ?RꆊM=I;e0E"'BiUK6\zȣbL!  Mm+ clE[@@8`6-g?ȯca÷ )*MTW*P.<򍟥)}2FT-_{`0!*ɾ׋VBη T.6h)5\Pe70֯Q7Y[}%l-3rr(N_MWDErɏp\8jnGne7X*Wx3wWT)oR̴OSƟdxbDup s91Fh{K{(NB!B q<MmRSԻ] U>]^μo͈5R tk96>fz0CX0JWZ:VɒH!ReknxPqN☗W'D oeeƤ^0WJl^KlY˼@# wLjOY31BLxE k=mv e2:N\ʽ\V'&"MR9tUeM^T^qd5LonLLO ̌ J _$ԭϢ ׈\2 |/I frlev5bث - O::Sכ;BŅxVpdsK-VEekqrъ\UF՜Bؾ洅.ⶤ^x+ZajJ%I*(PtrfTR LBK# 40Nh-zZS(L~]F@vK!ƙp-3cL3TJyk n\0)Iҕ&5BF6D-͎BuR]H·SgX+DQw%VM;_toH}:I<Ү9Jcej?DM+UR96POg%FUjQ$NOHޔܗ a a.g׷@@i~ HA/y+ )"(RVjHcpO}'W, `=#Dl'1dN5RTY6(+4=u4T."gK ]$1y-E̍ ŏ=+$ٌ W7Ako{| iF'*H@0h(? clЮ.u2EZ$R"2E}:ة|lUQn]-$YDUA5S.d' A@NMJ>4"Zlp$"Oaך q@3ԍPs(:Evyʣ9íDlHd ;1)`%YȠ ]ȃ P,x)8&\Y%և8[؈_GwlA5ܧeKev;<g8ˢn1N6b$er`WYIQB(\QPHCK"qb\a@Aϳ@1Bt,M0E\؂tIβZᮛ^`Y +DXR82]#(.If,L߀ Pz"=Ydx21բ\m&H ܰ'U[h %%7 _OJ#*0PIӈaR{֔\.dt62`A*\\ĩ? nBMԦr[H qy*dKu ޹y#\aY%Riwa˦*Qn2;޼ ~6$&rќt@dA6%dA&HЀ\q#Bj2 N^ &-{H7\VX1.ŕ.Џuـ~).LpMp]]2}3?۾3(gJxMՁ2BQ'2kA0)3ȨU+Չ O`Ys"`N耝Wn|"]+6(?OxȊn?LyA{]#BI;:4]B&)7YH_ZKȰBj;cԲ5~QMe\b>쯲 mSHƎHNo'YT abgRJbxn5BBR?v"`b( y+V(ƥ>A1LqADP[$6Ԧ'*XTs`*KQbBB&L2I-CehPBX9I!c P`ۄ1 @J8Jb-n8, 71 ] 4px2#:m .eEUH}| MHlʏ ;lE1-Q U<LDrI "aBj28%r,%7f2`gJ"Ë=bf_[hG^R)ͦ(0>&q`˂iUFkOZ aCʦ(d /g:4L%!pqf$!F]ZQxYGVZwK,WB0SƑ SHhَ-lzb?0nX kt` /"CCYPYl2JRڑ/IE"ZJJg|Sp EvRL~!XH p~""_#V|u N6lhIGE1&LKpK{͜ ì9:`DZ|BfR&II eSc(Td+?3`,|e*M>!F訂Hڋ=sBwFE,&R[D$FY9I |Sհ ft:|&][S"bPX7BB+B&NOIVҭ.`'P&ExFoH$8"&pbD;^:S_I0B Sb&p"+6E"RqI$lئH$zyFj@s"]qqHO/ >)נUSuIUY I&cbsT ٣&1y&R> 8I1O"6^}Sj!xD,^Xl*(.o8*ńRe䌽F|0VQ4\*Uv8hK늨Tcb٪^*;㙬p_?%^\jTczpla]/qTQ +v9R[7ڞ,!T(.gxH1F~b‰ L"0W{|K9UDђ"I^ 6k(xxְeQJi3MjK (J0־0ZOE[ !{z@ TdZ$ߍ/#hHӮ>ֱ;nO TP{ԭ Rف̂ı}Y,Hވ>)4DÊYpQ@%U4*Up ;rH8=qj(rOڞJcʖŶ.+tЪ$K Qb Ħ԰aʼ8Р ,r-PEœA'%|Up^ z@Lo \0&ź/dG DŤJ/H(VQbҪ fA] G]fX$H-ZbwXIvC& "9C!:5DH #=*; )xPV p\LrEUg WrO]*f zr(iz2 <(v$ FYLNC&KFR*QpuE/6!fb.@LZ> (}Dh8&11(ѩ&6>o]rJ^~Cbc:Ymr%p#A= XCjT 8\L$P k9Ra".K&^Nᗑ(TUApHTQP` 5"Ū鶥pYU AWP'8>$$!]Ew4fR?QTH5zM7F'96Ec%$ᗤt;T0%do(Sguk X&l11bHun䕒vyQrx+qٴ"$ŧP(,SؕZ H`p`2ր$69{@.کVw R-jrX7rqQ8c\KUW(V̇j+5R$W,TڛO&qwrz2ΛnԠ HGZZmX^|؂]4OiKW1d+>%܇+rBN!,IvM2V ˈ 2pHH(z8PAnEQJYKD3*yM]E -ZL$֬F,bs5lʻݲΩu4fjh)<4/|HK-3^[\r6o,7Zܠ\9$p?>&IRFo"U""CkNdỤTAMQҢ&b9/zé cIs XڄɬZtb4ev~4Z%PHT2ț0;R wuR"$!Cz3!  XQqTqjGmƅk&!B$P%kri4a/=5)d1VptrFp'f4#zo!UZNOn#8ffj󔁃ұqb㩣 Y6fu~j A-xy%%脽Hydo|ȕIO4Q YjʷD/w`mFU9nDXbBA:Yj㗮5.U+\6fXmB wWrL~'ZCW%+kkfwZ\z)hh"aI^CezZR&MHGh}q>$5&*6 15\Md'oJhj|jInRvrqr}d:!js<uǁ$̜J^wד d6(Ǫ#Q'h9#BkpvȒjUW_ޘSjy3VUNJO =(-+U5CJr˙@*Kgj9fnʤK&K2AS'upL}|~FTegJkvۺf"$ߓtΟ&S\JCnZ`dD(SS52$)m UMZk`zdԾ~-sXy?Z4]Jb͒zEa@&˚02$4[͂O.DPW /1IuIQn Td|>:'Wm ]u,uzڵ[K924Hm:#t۠"fg{JkSF:Z䑬H.F.-xnai@15T)$# 9Rs1F u d .k^T5}k68JH Io>5 }AȔ*5z*'/AlLSݑ!b4c7h!) MMwByHn؁9A=K[HB[g(g2-?2s4!Nҝ:r::+<['JFDZiC;hp|ha^DXe'U}xqT̏5֔>S66g%U1ޮ h^wyDuč0b 3,k]Bj4LJ ImPiNL+4;i!4*`pG4}K]ʃ6w%2]b}WZ6՛9)Jb-kZ+}2 Vr#*-SbYl55f=cT%A+;_4ǔ-;%1Yy4HGJy)V'jU=|ʡ "oTvx uٙ!_[ց9Q51E=Cj!*`8|.*Lnխw,dwkH,JAb0BdPbNdeu{=R!ɄGwiw^!.!A2$@q `qIE]suq/(pݧ;<.dG“N}=,ȸR$ ^èz{US>$.IWf~a / xZ-[a2}$A3lpc.D5-rPp"NRBZ &. Ji蜈[iݔ!W`)`XKoT![$ \u]k g:QT]JOM̆#`VQR𰷄4yN'M2ZeBoT$.bR ` 6C* /xYC0Co/㯉"R|*/-sDlSG, _O*D}|<-{&5~FY1pu(%Qb P}Q+W`LBeO'5ညbUK'%$ i^:,Duq.Z(od~&~ȁxߣQI W8 mSi `ͣ'p QQtmЫ o\^ +R]@UVϵ qn1iƬ,1_z|#ȺJmqAz2ymAԕy,7h NqE-cY*kW$ek j'{y1ytf +'gQW$8TF|v ^R8!AogxnP†2D)Лl9CqɪGKHR- sg(ezQf?VBKCRa}H)6 WoPY&n !Ccɼ6Kt`@;ؔN }~5Guja:Q\GWUkZ!oj&cZ J[)$(jT\gLHhXH!&Qs֭2VUYW֊U)tpi*7吅x&H9R*PyDB |vRCTzZY[č%@S+V-Z MIBO\S3Ͱj@,hZLK"UʮD,q^fP<_6l]X+~rPN>$9Ia4]hv Ċ͜L݊b >Y%V=H|4X@СH v/O(x" `hܦaMX3$, TÅS[Ccn,du:Oh}2.א8,"+YMkH#F/&@r3Ig 8)N?UyZ2-d_F+˫mY \X&K| rb[(M( %ċTHASO~2$q{dXw,L V~wfKdI/8̪ηjoa]"K'rǑ]@hŜXxXlij%xb=8iJ IfS(.MM8VD:M~YJB":Q*K(yl9$f QRaK&mmD.H-QU:|< i.C"5Msn7l\E|2G;*/Q'x'DRǙ~Q%,RL˱d5b 8! M5Jha> j/E6QrMJWrTk4ė*  G*_4iI${"\C$45DhE⏔_(c(@JBY0ӱ:Bm &)z#D Miu lHZU|('='4XLLatȕ!f XKQϵo~*K(RRA{Tt̳&^XD} qhŢB=I`& $F1 [*yb$m0 3,ry#7 BLiψ3ܜM~4>Rm55L⛑uii.xhIbMȚ."`\iFK8Ep `X8?'8_13+2tV=@5\TƦ Y~=Q$jQHQeqE: CH5`ɈմbYp"Z.NI +U;sԈH4`sm^aj|39J* AH/A= ms@Iwt0B97RUy>e6^1elɟ r⭊#KigRΖ{!&vku>iY4lp>rEĉPYЍD˪P ߐEB=HPڮuIN-$Ehr#!q s_T+E_x+82\DJ)'=2 !D"c<%&Xr)s͉,05rZMxՠ^1([TXQ;vʆ,6 C,~at41'vSHoWzDM j 1 Ą*V0/ 5 @gBM*&ě2JozWn0X)z,^%l g"kf<[7DqJJ5<=pO,J^Ǹ{w#Kb)=<B̶sEnFh:G"Yj2ߌGma *r`KС)= eVn.IdyS8oot3̱)ET>ȱtq:U]K-]280M;ȱ4!w讳rcn c b0iFJB$PqQi  WE(̿$cRYJ!X &M2K3ֲ*Y@$ҩ %? PX="vO\ %$2feUzޭ LWË́ !W]$f^nE/7aiA,k.@:NagTiv% ť)|y*0 ~"ia!:{j 461dx\ M?qfITꄞJծ9#eO9vC[Q`\9*?sL%0m|LΠʪk6 (;)I5ai=~&Vgpb> fH)袥)Gc O6g [! )r+ET팷0C=$,8J嬍)S_"Ai:/Æu(q9 6~l#u2ʛkܗw Q<\A $I(F.%"Hٖ O4@qd㸁OPjX%2wϜ~7*KnP!KmjIt|# ފe\RS3|.'G~]o?IZbAr刟4:$g/E ib,ʺA%vb4 έ풶u#U33X& ADFs[vL0pRq)0I\ĵ U!0'^ԹWW!3U/'_ƕiʤ~AԯZr W$d\T)])ސL8Ht NOU / Ɖ%LcEq UH.K6P=Wݴ5^,Gʽ)ډju*z"H(ne &LF1MQ)0rP*d)dP6*8§:s{d_F8Be- J1~s,dA<%+|1EMjS&BK_z54r}U͆N (Il+#)|ebɵ- ?ҜӜt1U P- p"sD@'<2 &} zI& L4#8yC2]}=qg^jص2J&Z0,M6pt`h|^WXo!M6"ɟc ĝhd;J-ek0dx [/41*vC42fceGfwٲdkGz<&&$i? i](ײnjċ7T{4{d,ݴQYmQ#9nrE3R^ mmGLx4aI,:#'Y>6S)6IPQ9(t_O)f)IX Cɼp>Odƈ  Ci:8 (D3kc` 1K*9ʹ[ǎ;߅1(X-?}Dyg+jc$%OR*\)Azᓲ_FiNձM_el9sقso5g5O;WbåI#'XDu_#9BEMkC,Y5gPV6I& ˷i\y$hJu VBދk8\%qK.zIcZI {^ߡT'ZTΡ)N$n\q u3w/M%W(sf(WWǧk6z &} "5qKzmzr72Nu)ID\dĮ>sbHD0kD)lK+,E4 xK*O'uJ|oM HL 넛ZdRƫU 4We'pvh8xa$~;s4IG +޷erE0"U:#C$T.UA/IJExͿw+IV ê/C,#!P6_bH;}┓3YW"wJ8,"S{ 퍕͆3m`[Q,w.H{V*IPzI>Hya'AtkDskok>fh"֣eYӼ&owz9q|dTU؎ J{ξU3QB^p*wו[Щ6lƞ`\  nдuΞMoQg ifI㐿čJ~sߑOe$Oahݫ25 uby^dK %-NPUCf[ܞMFͼK虑ʕSByvE) ܚ۝ndhr1̭qf_Ίx˃l[ǧO.I8F۵Q$qG*w tAI.?NtduKGVͦ#('$7g7d4"]D֙,'uMtՔ-h`+8j} Qva#=0`I +OLSzbo|$c++H_W'7cU 7oMJ 3y$ s}cC )ahdl5SkZWq ,WU֯JDG3hP6y58ub'[EMg EZ؆\HvٝZcy_ qSSYZnsKBNr(,by-(I~=#oa$~ntM&ㅏ B U"U*e*Lt~4//pƎSۭ QK{=I$$K k/6* Z i G]s}c"q\n6I[-J‚z < ~*mnuHK!,x-?^:51} ڿP ,ZLUč&֖{@YNJQ <$[qE3&*&bZJWfq=->@6 ;㸟o QXOI̲,:ZgD'sv#맇WG$eS0yq#ae)6Y.^oQU24nqVe x$bcV.2"5h\;J0}'ɺyr%'SGJ9|qʏPY}! /\PE |$餅4RjJ$}^ƩWql%ĘaltWKʜ'HX0 F:;ES#*:{th'LF_aI}щo0)s"6RQ LjGENQe^Q7X7L؊qŴ Cf DC;0SCJa)!AB[dtkST*6d4NJ`O qٽwas495٨l{){ ׵׹0nsYaDW"(`6w^ĆySTHUhRdB#D'LfF~ݲAb"#Δ-8"R$k$7# nOWtZQ q(֔FeNGؔ)BžҠR Ng, g$I15o9xOiuK4MkR1!kX%e$ffh" !1_˜%QTQ"G %j^$sgM,PLfgtjW ɒID9u2|Y&Tzh o9#h7+c cd[|ݔe6Ѻq:, 9!P)e)5%"#Ă -KaKɗ!A$\ή,mWVmfJ a5ObԣޖmL,ɜF$IOnQ9C?4 BA$O'!ɏ&Iȃ`ޢ.՛Gk$|HO4db+I9-$@C:Sirx?Uf/w(Fo !cG&ۡȰ0B,ŃEP($ ,q `s$4z$R:Aram{RM6.&Wgɐpr,DO /3]P&4vO &Q_]nt">/j:2KRG-ʁ$ڬGDmRϠzxIYP%$+dB870h6pS82(I-ccJB(AI${  J%|ĩ\?΢~2FJlOOFUO'ɀDQuqo.t<Ԩk PpfϜZYaa!>*IgЃ k 3&{L73!3g.hLqPƇmo3e&"e>_:XxDؾȋ0 9XAf*CBS(O(TT֒dymvH1 e*  ?RɍVHE%>nGXVx>+!7q@ȼUMHLKeBJ<1ӎ K Pd+yĚ0٣IiE!2XaL#E"P$6;dRls&ZƐ E6._GĒng 8bLBQ#8%H& bt3V0I[T- `hʸưpTZPV8%@@2?BN .>y0&8`_'!e.TP^j(\ohBrr*,H"DJzԑIntb˚ugBH 2 jEJjDg²J'ZV6#d}aˈxEElFc*LJcľ,MA\sʞ,d 7yp쇩x4E'՚N6~G=&7ŷj$6d (2GD|?hK"juĄ f*D)bA8U \Cgdv"WhQҡ hlJ( .IdhYc Og芥+b)21Gۅ0جO5ZxaAtQ5bPirXT9!\<Ťr,8hEՅ;P)ˈ/Vt!=C ]Y[J8K BoP"I*a=]"^4es!|VD;5HH<=CmaYƸ&j o u `ã (n )LzAͯ M]u0R2-3so;>/N-JͰZN7J^ѹCFtG)PDwU6"Qe6 "Wid1RTJH#>(6eFO˻,4Ρ+r~2[ \ȩ> (E!H(:{h SrASx$=2p\(UC"ylhDw$L v.ó% 3PdO<*i6̝=\2 aDfD[+>Bf!56ER+$K<*0 [I}Z+k2HKxM 5LR.PEIiJ&:`Y>&BdEs+@f5ʡ41zL `팬j8M>_ '!+Y@=sl2և喇OPպ,Y˔78OFP]U9vC.~ RRg zC|hzaAܞA^D(T"n]t+LN:6?DmP@_LppXA*Ui84xD !+%pZG+͡aR|' ,/%ԌeQyb M(_m3E0EK~6 ([)%ho w=lC(?Q(n5*&3Y,ِ5NYRWgAW@rhbG0PBAEYUB$qGi,TQ/J |MUҦH>H 3aク?R:6wƾQ'| {ZmD Ff@j4r%@׌aB]pI NT J`gXTNC&S6. `b/oY 2oR$R(I)84-0,ŶŒ4\il=):璼cI2*.pЊU 62ЁH3%HkGBvI\[)8M>Q$Q)XTD(y@4`ʪIVMA;uՉbn&DvS> dd*A-4?d$V_%C5v>KoVx4P*GXaKdh$9U]NN|ҨjJ44%xrRw`NZY$/ߥTQ =40H23f?s"2Z88٦ 82GxRD"حx}lIz])Xxu'Fv∩5\>~eR'&͓LsǕcؒ V6_ 5L;0K]>X5UΫ}lQYszZx" 5Wx28 곂r3u٧BnybuB˅+?K kױ$8DX-őJ&v5dz` .rXhGzukufU-G_EzDXAs˰L ?<~AÔr  $#)*]ҏ&Žנ=Nck {=K2ސ%m9]1a[)bgg&3^y}d^Ԑ"Z`;HUCn ^T[_<%D|LIsX7es##Vc lԽ.+[ZYisy:k%N7(tȥc\T&~Mv)Xf)D+F6ZmPoK2%OML¤~"T$1,##ɪ(%e k)Shk ÍhZE[ԝΪ?,_N42*֏U,jd hΒ"Ѭ:O/6JVQ!.g{g伩7MJV]2ㄳ7V"X4EGD嬆;$t 3^6(hޕ2{ lLrTrKQě n]դUҙϯ6T3;+6Ki fsig W~&IBqг. ď̷~PiyPx'נn'v½;xq=䃸yVC=Y8mbd+ &|e:bؙWDnD~nq[.{ PeFOD)ism"[,)6 -ez;ٙob=RSqFiYb'4[ѻF[x"LKR.+75DO4Mڜ -{UqHs"X7&#Zؖki=-W1Q8 2$}!]DPcB?Ce%DH ^Y .#D|?Mduwu`Z"ljtl~2(R}iĺ<~%s;߫d;])zdڣDB 5[)!uf[Vy6-$$sw7FЫ?U1Xk :ꝱ*MfwL),(vX;L :(W+)jVI~BuȉyFF$3CCW9"s9bӼTO=/\CdXjڕ"R>Dm 'rJI8nE(V$4DI "0 GLjc_1i}O֭mZelk/CiA1IPls|Bu$ޭ:4BÉƊӓD>84r?ybcP܋N,~_uJ}y7,GD;tԶ鮛}u<ܲr6(ł$|x ^L5DaKE+5U%j5/;Hf=PUY;FA\ s"jr!&>$~"lTBU1Y( ImhpKbk"{d\\gRhѢ,}1&;xfA$Pw (<8<*mȢgba ͍kx_zJxckK. /j4[I+-igHg 庺 FHb\ % jkuGu~ˬ!2;p֑@UwQLB)0VC&ʳ3M>Dڝݡ* C4VwMwfɇ&W6o?U@xY75Kw_Uճ4,(}h٥lTN"ɩFX!U*]WZ[V{+TNboSRysN"j:iepr HXC C-Z;-]5!(JR,Y",04m\@Lg;X5@YC!w?@)U9 XI_h<~`dZMam PvI&_Qz l ҲlWdfITYoXwr="c,YC4UD󞴛1+!?&C*g;bڿ;6OW+i_LI!q{>=Y9] 'mY'J]5V au R03U4s2v>/R.@/>E2R JiG(Bb%P)s`Ap6w p.Cq,i 6?ω*lh|T ca^N&NJ6쥥Onj$*鄂x& =ZH Y)ec%WBƏA[c4d%W^ u~h\PKU'TFbeHۢ}&WHFm)fua%.П$tԢ9l{Y؉U7 qܑw #V'7d@ǒX> ]󥙉\" h"[k]be|h|~7up/qS\חIƹp\<{ƸI0N *V(;ꎧ!A*QkQǪHl!"h+JeY+mYy5ڸ.6S,gK^!ӊ KƲєNi7'$E+w1 'i@D^ȋtDـ u'˽|υJI>v&]EQMz܆P9lbt"Jn ~DZ`IRկ&ƈ4ٗ8TEb + P"@?MCCW$H2 AdErY& )07F BA90>%0O \8ɮ$?;"KϬa{j\Ǚ> C/o܋++8"BA}跺K A `$AA Q!,!jZ!A t0DDY-nUB)*Z64A0U Hwle+MXgR2\KSCB[kD $-`PCGďe cUI*5w=E^U? 2Th2IGs|L uR%Ѣ%U+A4)V-%LH8嵐(i5=Oױϑc׳Xg9`tk-"Èg .ɢ-N4& 8r*1"")VX(AyP%NOonM4u]1&$lJE$;|+`nSrڜ(1Q"gKD)Cdj=g,QN,p,>ڌs\vA 86eC=ΜcB(]-_Yk8S p +ZA.$@`Qq|^׌jH9kL@8#SJJܐs k[ `fn|B%f|V.ǟ0Ҁ% RBB:ʖQ{,4xҽB2iU2aRaIO*^`~GYg X#5.)<2QG,!)LH%NHPHippqEj$kh݁β/ RTj F㬾foh.BW,IF\TdHI$kn,j^89d0T@ UފMSH.^#EBb *g=6  րЫ, Xj_R$ pa#Y4 H pL$xr8I @'LCȉfvé0/(MFloBwfQ(W2hCƝKA4*|$q˼D@T 7[{T? {vG)dͫzi;S9 ffWP=s" 6/NrkU$ωJˢk ""~HGɏUav CeIThlX`mDdZ.r$ 6l@A2UM" BDK͕q$a&UG 8!!|RO,4M\.ULI\N= zPN~%X^opy܅*^/J*2>P%?h xg5yHZ4I9>DǮWbܲ0aaCѕtdU^&2;4!X\6:SY\8mI(򥚷r`(n/>zYoǐ~Vk/:WX/H`PH_D ieRt%\$xKCJU#rqcmYV6,6n]Ri'0\Ճ+^؉OmGqEly@2:)4IIm `QC3\JmdE1J|CHeI|`JS3Ld=<_A@Zr{&h "J "_ 7W/Bj 8F| bkplL}I*I≔S IAUT%- 8.C9ł(cHda\`U Sbl'&P!C345#Nߐ hDPG#ǵjfJjj#e>kC,' 5! RupG3Geĉݒmgme{I5jȮ%U*cQt4e mkRH$WRZnϚSΞ `F|x.%KA P 0%~0`]È59lKW'^ SH&V$LDѕ2߇텐0lTxhmrb\Rc&5`U:KD dAmJb(ȩ@OE%6 LmGHș捰HZM:@YD}?^}{&XtS+.dXa uY1g늈 z&Hi쓠[&@TvC.@WɶI҃bgx0 CI%(G0G|X#JL ߺxkBfo *%dESCɇ5T bA昴&.tD;JTtDU|Jcu) eXjSg܉Bd[x=`d+M i fM|=δLqœ]K^ iK_7CAMl<1RQTn[^1&C>6TN $y_&328 :x`@z{2Xs P{ulPDyir?Q"LS|?Κ@ALqewKjȅ-!jG;  ѥ.Lօ/ 4,}M_">D"z!,gy+ :Z"rYPзP F \!(SFrr~^,)q<.Itϗ|92,p͂Qa}ty!j̄R:՗Ig|h \ wQA1$l.,q``M@pZ]ÉcǪA\3RJԞF*n1E^'nҵumnoWJ#T};dW\RB:$ękR*'uqG2(!Y/RB<-!0a_s$dĞ 85"]mS14>xl[KqHyqt $&Jf#~ʅ,VIe?9(_*9ĺ H#Y ѕzr֖\ᦘG{snKR.AeJ,2i '\u#G J%V\ItΚkU%[BO^sj߅h]z!2De**H;9dyԑqjS,0I;ų *&@o( o)EYu*8JHRs&R8d Vu"N+d鰥fЫ¨[z)iryq~12]L-$_ :]?"v5^_#TML0tBZEn_…j˺dϴ oRɐ.։*EjSrqg={L )ZN]? td,) ~`Rw|欲A Iv{4M2Q/")t Uh<\@mɖ.yD>H~_*i"h >u%ReT-ةﴅ u2jk,;:eGT+.WZE[ڻ 19 lc :S!lU]534J@C'Ha;k-wMU̙pe 1~Csț$mk# M'e{?WNV_d.]Uξ3)#$d q,Mϖ&%23U0zU ->#\laZqO8]mtbyMa"j%o ʘ_Mʹ56N =j}Vc.|h ,iu ]BB]>qQp(Þ*Y {LR{}.g8 ѳ~=I 9Y%a* 9USŁKW>6o16^lЅnN$6΢ALlr2 k\ͻFT.,}*k١g 8H٭踘]҇jhFKHL@6%o eҚX$ SO㾚y"WN9M nHHM(htCHU;k_m{ʶC a.fMK2&@*6"Ba wєV8tV9'ƯƋ\hnT*pi3t<(i;J T PTI 6*:J%l0,W,5X@؅(!@ז"h"mGHt/k6+dpDe=L+l۾1)\xZH' !ȶ-U&m"K%ܮ׋U$TG=YfJ"H|ICY5MZ>\TQkB[D2vEQS`nj"S(Vw:;{uRj{[EϮ៲POBީҥ_"Vֺ+;ؙ)dT)bb,]mEo=jwTkXݡhf<|xEr_/d_Le aK+HCg摭=P\#$HH^th4g&"0ѯMkc ioV-=iTWg!B}]b m z3)jUfpbtY9/޸MZ pt)גIbV($(|dAzBU!.})VHȄ{YOOd힄G]C譕d("T൳}a 7t` x|/WX8c"Y"4 jP1 o;Y4`В؟1ԐVn6'SqQ":aͧ &TRZ Q᬴M9nCbLzlgC:򊶘ir_ro\k ?!%5A=dRN29M l2."Brr \p%-FOk9^QsUٞtv+E_(W񾢵' eɴd">| Lz-#,UdD^:4Pc^`ziV'2B&Ż%2RP r|{ckq'C43.kVr?koVY93Xa{/oxKi+bM"gZ#2:ok, kZ۴)jQBq [tCw3e̿1 >C/lE ](ؾ\50ل5/K\*D~B'k&>5F&'K"KDDҘEލtK3}˳F"{c4d$ rBmV[L+.G-05E'N#,aD)ҊL:LiҺKyR.ORtb pr܁?lJIG%*KHػ!x %UT]1EDQ:gDlrdUY/Ya~̿?O,e-P|Ibΐ}D*j4/I {SGTQY(JJ $M!WOrOL6(G$&ې4  ibAP.⅌#Ŗ<=#$bF0dLdC.E^k֊u/X" Ur bP&1(6w@@;I"Gpi0nhK0PE Cj'd<"Lo0&#ŶL֠2jx :SR5# (CWc:qT1%{ۑ4(,>t DA{ݛ ]Ȝ͠ m'&c/EHTĸCx-0@  `p>\rj R s# qqΗڌrA\/bj=kM^‹4АI4V"$<[,㢖mH&uF"ˆUM3 `&ID1twU0U)D EaQ'N*d8;SystQ&R Au{mؘ!(\LU!0lLh7ދ|/(6\>( X5j!CkXbbXbR h:2Keޯ+G*x'T5t 06y/CB"1"8 %F 1׈P5!<*i8:'HE3hl`p{乗Q&kN#J2rI($F  xp&S"&sL?DJFh]uR&@"8X%# 1 )7lY xl*lF ? :"" $OĈj==jS XԊt2aȞTSE:4ߨ`i@>0T-0dS&` 3p$#p+15"VLJa0(JHi"D>L!IƱr 4>9P"yZ:Az8+olܨ\d(r8 ,0XnՂ&a" H&ED$DISꩂy͐$`rex*x4!wA/ēif X'hO3gR"@FU,oAM_`l42Ch8̶穖!"Ɛ0J({'RѬFJBȰpbF[KGř~a>AZm& b)/0U#!mDpoWțz $-63bdX/ - %a!CcnV Aa M ' Mq0G85p)pcIVZĄ͑΋O @"XY&7BK)f%"B~D+#i5DjHT{2At6GK:*:J[XcÈ:x4,-/"FFYЏX~K*; &*.Rmm֤]Xa硗 tXD#҇Xd( HpD j5!$ bh!"t0|Ӕ6)trZZ"qBR  5Aja6~`p^7>^+Wӑ&"XJ"i4 DNșB_@ }>d,0 ^ 4z 3.EF41F9Y!8뇳`Hq}@DVhepؐ:*G@0DKPOx C.6VBɦPhA%E98 `r^i=.6TA1\SQ Dj墎]0!:)\sJeu h%&58kPNI89{h-URTernlaThH|U[*H'(D†dV]=O|2-]}}ZAno$ \V,u5fUeH0oЋZ5(3$MwdhS58Mrd9v(78=z33Osgt'J[Y47g" 0"k*ҹ `NeۥTcUfyiz԰HJZy(hHzBņ0Vk=en:S+FzJh+lͻ pʗM0.Yc"*7]qUˉ>{SOMo<_D])mdiŽ!3׋Դ/-'^+̡'ZD]xgyDuխQr&V@#*.RbyE=5,#(?ISk2ȣ%) '}!]d]**^!1VZйU!BL!IRtmxduLQpkw_Ν xʩ;,s[/I{Hj**Zpu/BI}Xh02_qRc Rr&N wwD=}q_/-H!*b!]ƋvKHsLJ++捧%*H}s y {3`58}R!]`.9朗ڭB)bI5)ͽ)vΚPRrB4`,5FgLzdo9/XЉH\dY-quPbvf;cbHUGȎ2^X7*]L%XJ7w(-$$客e[1vUQJ@rXEI C dRX@Oee4?w׫MPz'=dPFC})7V?dבQݸ&OdpJ_FOoYHߜ2&̗wG$jRhAVk\̓#?l2e-]Dr*a;vo56.)Ť%W]5*]S͑Cj*QH=[xPVV^+0YI@?'  ^l426C# hӧH:j9Cݐ}6Hإ5{r+ݹ‰C p݉qjz xcF旪:E2w%%to]CkV|9"./@?Oe$e]Ts8;{o!iU8,&@ . v(u$RiO+J4O!'?6iFJ5q"^.Mx恄{BBZvLz2&YF, #oLSORƇEhɠЍhECdU>rD&gRpudS)ɃX'[)PU pȉVK~xQ=)#U& S&Dq(!9MB,+(7UNڜ͠5MKR\lX6-Fyxv2z)nw[}nޢDQyR>k-yf\& TL-ȸC$*Ty}&gߠ[-ȝR,|׋44HYlmגn ^F?J,fRӺ,;4Cw&o#'"l?:'TU&W&׻48!q,2cŮP h|9((>^ŵ$͕1˔DLkatV`-y8sQb.TH>(Mѓ"L]R'ާHsJ>ٙ%H.[.uCۺ:2T  i"5סrXzW{77܍uњHP&QF tYmXįolgWE2E2A3d`Q{F&Nn;'Je"Pb P_ڹ_~ff&dPVBf|teVAUA%qPˇ`Q4*!1(#'W@]Q#M<{̖B^3 \l08g(ptAAqte'3C7-7PT @jJѪkŃO=*cd0#s᠟ *鍑͙+3/ K@*DE 4Ztl?9ŃAp%%xJ1Sbs,85 QBP%}㒰 :0C2k$ΌOk͒Kwޛ\Ԉ  X2 G0d$8-PK9%-oi$Т&nC5a5{ d)(/8JH|H9YxǴQ*NPEZ*R2˭Vd^}r V&1U QBfB[ d -Q, Mi܍Bnz@|ᜒ;^[#(&^I5ebEPہ :2, QI0cO լYS ,Qgбg9z=sF>.dIce!*:zU |0M]d|:eg99~CBr,*kuݼ\x\㍤dO×O=2̉P&!4 (y[舊cv+ѐXHgQҶofݚ"Cw^51yCkE0X@>*9IMQ# l8sL鮕Ѱi^Вk|X鉛z Eop)8 M= rS6q% =  {Fyw\Ј&<}V@oq'{xD5G $ Dʽ)/Gdy6J%*A9`~rC!d0+F*LAvaNк BJoP㧥Hȋhї2Z>kIjEpIZlJ;y`29*Ù4K;7 `;* /'9-l #alUCUւ4L4&4{uKqsa 2KGLl ܵ+'Zk|(}ְ˅xChvHjF4gL&(Q^IRdKY6hI)b2)2DWg8XaeSDcn,U%UDie;%Oohr[S?Woo-f41d[+B! |E6ZJPMtm$ʍ4BV53^;JEŮ=ۆK3nj5IEZ"U:"cdJɛ#pQqDĦÒYv]m jO[xa[Z>bI 2k޺1_귋 ).3a$'P`l8u F"CTA{j) fX}l΀Z~/ v6lXM݊nNjEmn"jC1gSsMrPۨNmjE"t(4FlyOy^P3^Kpō)1m v\=ޭ,:fiu6Bŏj3JEuHLxge@e*jpM!fY[vMč-"l,WaDK b[A*H :Z@ѓM?$j'U HՂ)UiR5+PIVN[$(y!(a#]2H:W%,22>!ZΐZI9 n/ ' 9uGo@S$L`2+_( RGz= 8Dj8KiLk rȑhE5(Ymҧ:ϯVb߾jеFTEs!@elJ 1sYw :G|&&iE57%#M7p\M3DQ2Q~bOÌ:=TR*Nژ| {QeLiV0]+Wu&KD%`(u*yyc+\PQHf72\$NŇGv3`CQ/odztEQǟ{̧RN9ʗΰ^'[;%(eU~$t`Jd.e-Ծ*5xY`A_i쌴::3Q ER9[Yi[q=~"ЋSi*5 zĎE%F{-G;nK ߮*$ZWڝ$+^f )Lg9%m4R3~GV)lz@\6;|5=pU/(t(8'H-?[R's:gN!T+f\irʺ-keiA.Z}oBOg ,WN!Zx34U?MBɾM굉E1DzzOnJE,!m50K>Uro.T+(jX5I,#]!k%Sb@X* _EY^(J3 lٶYX?IIu\`6.t<5BۊuJ&vI0;ۥ(N9XbYIVCՈlB2 g K3~ȞF~D QŢYgԚaL0&ڌk*RIaBFcT[%|8֑hH3nTn"+b=!d\{*8yIؔ1ҥJ8* ɒvS-MFY6DJߍUצw6Y> [P țt5X4)( §w\Quń;0*s 8ֆo%6%$OW< /b}gabw/m׌#CFTvSyD4JDb> Yf5UZd{-Yu oE :A}u䉩,ݪ4 {S90Wf%n.6EBڰ1-rrK;5}G'mNzmئ(S}ˮئ!Bw /"hO%UFlBb'g @cH/#zKgb"Aj4oF-:QC+NZyw^-^ri_L-K"%hCNZ*8e4ƥ, D%3y8.]]RRaƚO IS9LUdLB ڿ #2%(Շ=&Sɖg8!{RΊZrDdmsՑ\ekKt gz*Emtu Ʉ˖Jþ!U-5I"BKOQ5}G҅ ҔqoTH;s*´aEZCŎqҲSb wͫ7o\P]?Z{?AՔx6Ou*(:(ֻFUUKTśOڣ~t5wAKg5 ϾM+$ݾNɄcX3%y\l~ҭ@$^Ú"EՈ)Cc#N,;N- AF >TNhF#*G}Uc20+Yv:Wq4ʆ)i^CD}-ȩF-I-TY[,eb .QZ&|w +ݎljPޖ {dؙ朋N:FN?bdGm@gO+ėE\O_4/UvG~\9#~dPLK|WȂ*_$K]wjbĉi H2D*dX&I Zhd ].Du7,QSDi[zU6K9MS]"6lhUЙ"ʄVm)U$5@٪(nl*俭4u0\ 6 \S_A$̠W F ⦢)[&h wk:p$*fA-K4KʫA"'dúj=-g>ʴK>ߠ$fO~lilzBDš 6ыW..@I[`$V[ \I;(M@H}lD7ټ{^*&ƷB=ZbT{ jMb3^`IQFcEOiTN~2l]/*olL:OkY5>i٣f6=G% Q )gӪE}uj@6˄9"hfR rd^S3Mw^hMO9eqVM y̡[PqWr| I⻡lWAmnNJ]?vR- i# Z Sb,ocEJ],[C |M <ߥQEJk,FHt|ťq)C){jՔH"Hc_-gXK~CVHچnP߼rk剧`) MIɭD%Цi Q1cY \#UEbAEX)stdHxFТu.rLթuԋX6b]:T+PE2ψ8̠+5 < e%1udM/=:#&)RlwKQ~S1&QofTV( s!y< "aG6mB4x"$(8nHcqy?gXR!D`Te"&a0I#}AOcГ;Z'C*X?)>IY}U6,FxgNUM&Wtwq6SӋؖP(HhA#$CQ$ XE.]$\i%.,UYU+;gh,xOMIR2잌 a5<-+ )G3F1ܪ KH4pVoZ[1w[y١l u9R  MWA$eR+jLJ1a3X{W,l]"KPUJ!g-W|),G V#7=) }5Fc!)|и^Xʉ`2-]% "@A eSpS0_WejN\Pv[;Y'cBכl41l8C9[R`f\[E.'[ZuG"tZvHkIw|`' Ms8)A6'XEdB%Hǎ EL(bR`.O$iqG#A*.ropE |憍-gI1T>پ@0望c *>ƁAbӴ9FC80"٤@Nr͝Y[|{ ;Ǹ-C>ѭQ 6k6i 3(D`n)m᳁e.q,& 2c(tA@ֆ5%~G@äDzb g:mA.II1EW[uSI]+t^UP9/XIq"z pxcz鸓lMaaq4˅ X+ sm4a*B.X ~*DX˒vpmƫoFUi4DA,T:>DɢC;:)_#T ys0@E!@Kbd\P??fW{լpߤoXF8WL̞VFXR05LhfI%6dQx:"XHSͤh\ ̲%N#$>,2Mꮹea.6<{g8p :a3XUȏ۔WJ Z|ž+ vNSgvn}o ai1E16X8Ih0@ILj 7DX+4$2Cip/(i \-HmV:gQXbK,!f.eIxt^$][3AAQ&gI"j606!(N-h4#YwE!)S/$J6{, )#4$!=sX`k)Z ulcKGiM< fhJxZ?ڱ|ưU)Aݘ{Myn`h4RN cED+&Zpv | H$X18kQxcXEy KF+ BK?)k$8}H$]Pԝ/Rr/ٛ*'9^NI< dK}QWq(0 (CI9"BT6V@:P&;!ܰW F?nP+:zuHQ[-pٿ_o-e(7dр̀~+ri?$Cӊ}ăƫo 5fDGH,6ŝKeJ6ŪYxLA}9[Ve,w6d[Bm^?m9uޓq?;)+H)mbKTpAr),a2 `*!(&cGR Q^)P~{ʸ-"86?%*,Szve-qBzT+|,Yt-TuM(1"6#5\f %iyo9åش(^ĐЦi|%#R4վݮs!&AI[Umm]t5l.82 J웡kټY7Qc',#q<<`6-> 5F'#Fjai#+Q^GyT&ARU/PbSf!c8$۵̒ f>Ӷw`"%ս$<"UBeMr-dDq8U4LdsEvRț z{bavL,' Ǿ[ )?I~ B8Bؑ|\$h̺B\iuGXD 42ZiH qL1gbx:J2V4Yrr E+>L%}*ʍR]LP- PvKi4%>AP< TeJyvؕP_g0$4ҫv7/D.]lh!_> k_-hdIZ/tF7D{8Z15J((cǻSD/X&cAe P`M^wamPn6!SYNff[jiU!!q yΪ?yJgISi T@)^_trR 9]eة%[9+%r_Q08ȸG4R,tromPxs 3,[X QL\͵QIQWS5T*fF5+>N%YM/w@&ɒ4IKRUB},WqHzMIyx{뽕:u$jN~J^Yk҃8hď@-rt`[fTvCȢr"*ӴOѰΙj8,"Zo.jԌ핯M"f6oqBUҠ/#Jt"V񰣸tՑ&&:/ Dz,rӢ6~i, +yM58f$mLb5+~!0>2:M%EJ44Y9R_ P鵅d9OL-+>Njm9i︭ˏEtM'XG5 ɣ|1+Ll߈"9jiڑnUVB&N}yL , d7I$/KSfgv3/_Œ-~e$l,U(\p>*W 5 [v_KE#iКL fEctZ8 ӵu%:J_iVܰ^Y7mfk#Jyq+2.PPld^^@I*/ees.I<RKThE%"奰2sg;/t7D:飖jNVY?5Z",5Л&JGQfjPp_HG!2mغ*Z"SDz-#*2:M iʹC)r?پ/@Io(PQ:T\a htCjGY*g#Fg47mL>U+SmKjDF5o  ֦b/pE0 N`mT IG\!j-ڨrjY㿽e֦4ϛTIy$,ؗl\wJ^猗^+}'F<6Mb m*AZ5~=!kJmTfe#.`ΌwQ˰[38оc:rDZ }1L F f"PmH,>kV=YZTrgt!e\U%*rdCK bd}]YHBF3#=LgJʒpJաPϴD-&"zqq($)k|>/ eN(濤JB-m9}zh%$ ܌ JhQ8!JbI@S/J)K.&4)_* fh`yI} T:F_]m"Y/IaDF1!il%O Ua-$zs`<e=6/Ѳʼ~ihӿ1tlR {_\(\ t$=DMb[ӒkrTo?1$4KFS>nW2l"T4O14@Y+T_R;9! #1F#xVBG?'_ ~EWwA8qL,>8 * (fn3DNtAdʥ=s6y5'0Tavw \̱OE(op>dGUqBjN!"IimxH Pk5 "b*ZpPF F7jDHjm:Ꭱ-md4 a<.tz"EEenC)S0IRBQSuO_-*zeZMsl,="(JCY7 5QdFАclpHBB.Z!\M2 AtDp"ZtVVs&8AQCvL/sAeD׌R$!!P4N <#%Igq"-4ϐHhӅA!~C]17Of_N"T- J;)P%ˬR4$^]iv,E^j(yEHaz $ꘛ8澢0lۂ1&S8ӯ2O8% *=nWa&62H++cQUv8XV5MBe>Kk4"Kb5G>/ "HB.Bb % c=WX*,GMfR6t\H |sxQ-jh(OHfl[ut%M(DdcF8QL<++z^FaF8tXiQN$qQ( X & KL"Qr,LL EœNa#E<(^{뙌.:̮'.!f2U !^ѯB(мxi\wG@m( iI)PQd>{TlDɔHΊT_.1Ub}n,)%f(h(DQxT + ,$d*Twzqse%];d4MhUP Fq"zSx$fy#NKu cLp8bv5#+Je/VEI}L(ue0}CIZm:SܦPC:CWg>ZIT0jpIR dFblC8DԒ6FNsmh\(j( P’6!+* d6|cҚR@@"I6׎%&hݫmP b0(tQx5v7rP "q~uifok&S ]|jR )2GhHfaf_,+`$S! tdrPrf1Uά &0ᥕSt^T# SNTKuZLLMZi$jܒ ۩8`fN1hU6NEş!q%\<4|])(t6)I()s򖻁\sgjz8SREhKYK)%*Z[U 36 KͶ:!qʣMVBO=¨AB% SHesc?#:͟FY/*фB )"ۄf$=-_%X%}*MS~.BWB;Ѓ}lF"k)u+k(1弶#вO 4o#KQC%D/-څV0RQq(AYYLH]JsK rm}ՙ8Αw!&ڋxCѮA:\%8 ==Vt/-Ӌp˴;ui"NX^^*ؙةzK 6^,^,T~ ˖8V4Vft5tHt*V.W=9@4zj51Č3HqUgMOU{dw\ÚIM0(Lc4&=b ĐStPC@L/8H&XRӞ<`[SՕ,ZbN߾R3HAV}^hK*9[Z4!wCdvKU9pZem:hdE=u>_}Z|molWZWE>)a 5djT9Idi~pD.UU\YG%*#عGYըF:Q&8Uf{M-'e+I~+> ]SRwWMx\︰GWw4RIЙuIja֯ԁ5$]77vR\rH&1`2hweְ*h^׼${‚q3--9Z!j!ڦA?|BD#ncΎab 4bz|B6s,^bcB&]:5c^DQ>W=\W?q5{*brʟO*q", "Zh$ &}jUgM P((J8+m4ūz0-ŢpϚ4ҒJnZ+Ħ`qE5jUWsPk-K/_dwSC0ͭvQKTZ^7I<9D.'bg.x^jRyaj^@N˿!Q1+Le6=Y~4U:.SWHmPs=^t*'@.?}/N?5%>P\ Օh#E{`tqP)G "B.*H{(s\•&-*Qg91d¦S/ogw^/K(֛K]۬Z%6?o6DgXNТ"'r!:efCR9X%OH|| YP[x~*ҋ?v- x P|Vg͈axqDcogj.7#fTYLF&O8ŜŌئLDmVf?Kl*ٶbzf}mKVvs*  Iom˿v;c#aޭ?Us)le[Q˺җj0)%_%S`h=3ve=6w'7gK/t1EW?YO$ݫ?_ѭ:WHfHrQ#ͧΎ{d=~M귬V,ַ&(Γ4WZxEt9[8Nwuah|ssW!%P9ᆶ~zk54ox]7_c'DH(y$:lH ]-nrgU_L_8ْ|}Dg`/ 2ГҩW:cK%Mk*(ww ov'ѯJ ^ObHT𲸚d_G 9sl%h^M>V6mQʤ[sIYM 7d"AkH.ǁ#mRFL0N'wVv(&,eR{K8%1y];,mX"- 6 IDC1% ך>V+zYQӈsO%IvR^zi6ŊyjtBI"E\\nu6s&i=w9*]P?Td*(k;hIBԨUg6Cwl)Rus/ ;6K#dv}M~zHAݶ?m4DRBESj2: [SS鰞ژv[%<;LQ0Yrlךxt{k}7#ld9tNUO6}D.Z;(xE#hzUѨWya<]\PL\r[\%MƮ~ƺ=G L1T2:fq*{"K|T%/h+nԒ*,MhW-B"/כ I3I#Z\`< {Tȏ?U?ʵ̆yU=ߔE$vm9@>dh" sG4-+%[,J% dCm֖ń,d}[g~)M.Bf[dy"IST:.$-LU_R}Z"tgn+@\CA1&7͡K8b97c$99UOjhsBԍ_vg8)qVњ4 1x*;)[F!DF0:bH)IV^'5$)UuhEʚP$c _|,# *$%kTQܑJ}|dM#Ta>7cYf#fZh@.zHw~Upg1:*\R& (c?Sk LG`fhY,V$9! ʵ0á_~OGN2\^A'⭋hE]* CFPE1TH) 9yBOi}ՌgC]˛ hRWGB]'E Ҝ[ X_&H@l *;YIe^\mV&CO%C&I{A y'B1Jv}TsNU6 :֭R6{kt&Im1t$ I&/"Ohh+/R% wm'/xs|AA.PdGy7QInQ*U/ʕ-[Rr30¥a,Ĝ7k]C1-ѫ4Y{׋vH Pec9 x{2MZ)FyGvBq(7 qW"k1L3!E0R~`k@E&#L)YӲ R -w3k1&j%]Aܘ.]CV[6e-Kŕ9DUiE6\pXۗlU}šqa&N|Zs+&U$ 3$onQ9iv%gDϕ#lmةmbLoRkFo8GK&SD r$4>GhyΠsytK64j0)mͤ2*.R+ZSQ>K*XFeS^4`8.& 59 a fK{-ɮxӟT)9 O= AO󑚺ӏ%"n>[O! U)Vzс%G,N"j<Ƀ;I696/ut(WC#K`RKDb?%iNIRjQR@'ʛ@u"G !'Rg%3@>K:G . L-ܗ\'4pMY"uԤԧrEQ#*.eG˲K-3np-EJ[@EC, $@$K7y&a{;KeH-(T^C:Uǚ45&.0EQRTWJ*ʪEaVGhD0{vc8܊9%C;Kv_K[ x&D2!鴝kpu'1]Đ(Abf4b"la5% ].e:6Xy6"Ą- miAF * Eͅ,]K,}Zl hL^ k%M%]\[=GV]X2-EUޑBM`<1naMxAW*L Q"Gfc(È1/UZDEj!Q2L'J5CuvGxd0RI  pM1o`< @*a+GCq t,~8DbeT"HH\k'[E'0)rvU{5ShjGNbw 7ɵ-zR>aMw?5K=+<4zOqT:'O8hL!q%=AX(x2a(K09eVPdhh +y,uHC:+]l%qLT62[=I~x N+_{L kO}IDŽDI哷>qlg2vrX86䄂|tqP.K6P@~)Sv14(~[&(A2vpĐ)O7=EntQH (f/w|6nBSQ~dbrE^d8Kկ6ob@6IUmHaTaH%C2}7vQEV*r'']ߛ ͵͡GSGi% nSI 8K[bcU#}} 2fوYuak=KVl* 1c|T$-3Ũ*#v"mЅšYS&iD:LfQ Ra\?&$.k,A%7]x̑4 JP{3*oykm<]**g~C3‹Re?% V NDS=>Y&p/6.fxuvDǴbqVRƼFtEKR4Ȯ3]y9jg{NToT֪Y#!:mHE!{:=#w eK<״n̴S)"Cjj!$$[j9ebkr 2},d |4N]ӕN$0')]˴DC~œy8"2 pHbD=0NtNHJ]X )dEW RT܌njS.tس;Q<ֵtP`U>1ژvPҨ jURz='OXQZ8וx|nA>GQELHE^2KDHST{dl\!igij\$FGxNh0QcV?[48-<0(9:pEvQyk)[ETB"&*_h>H!jڵ#- `clU;q$_c]x$XB@pY]v乶ꃌ+UQ\}e\WN00&R#zRPHz%c0 7Sn`XeM)ZHz*td `񦨦k9QZTHw(?F{([ߊt8&5菼ոWJ49+LxH2UbcZQD妲>,eI<q9}k!n@UKœbhI½Kt4{'EzMkTΘך]r&fm%M, s*Ϣtl(9*7H^\V%GhSIx̊P׆C{4s Ҙt\9 .-'DФ3O/G#a"iO%>oF䖃'6?Թ" ?";"[`5 d(W ~9 ^ DzܖzNE*uuB V*VR\&UP,#=#J@c}1oS,z2n@<]vd3XP0he/ș"?uY+pa[lx<9?yL){7B_ <~9j?w b!!aԜWdMtxI$ʚ>ovB?1[b @qtB^ {!?5LV4OO/zoqcNau\絣I^- _S+c7J,$S Q~kwǍ$Sk$imgFUhQ%9%>.+-Nu[*9DVءn܈mNP˰)!rhnr,R(`*n2=͵(%-_ K ޹|*1IOMTc*nØ3&Y\޼nijK4"#nO>"oMX9tT)8g&Щ>S=ʓx 1e*Rآr"doQw+bCF1/9ȓ.gX>#ơdT@|B.TrCMh5L/Mj_ϐ{ZL"M/^rnhPt<ϋ[G/<. ho0@;̡Z]YiY3_e [RV}t>B>} M!J70H>uϙt2y#EN 4,ݗP:*5 >_H}[TJNDT-M4lm"Ƃ9t$Güے}`Er.u/Re&DM'dl4_Jl6#;Wz+R6XJIMpa&?dT3A.#GnI` 4=ZUX)O8/@Gy2AH"^v! gu%Ð*j<ڂibN;Գ 1#pqh|4,iik‘-zbQ pR\otDww ^vPK2KP !aA/Ak]%2Ό'߇%(gmX|"@={䡈5'w@Q`% +G}GF#:%+ҺBV0Y)GM&IT(dAA)SWQ#C*#ʳ0P\b pa#ي(m\n2N-N|)SU趩Z"I*M ¯(|CϩЯ`I#r=5ۯcBC' *UExaR/-APi2S$DžqB0`C"F5Mɩ̭>f 0ܺ膪UCFRjgV'So F +%r2K0#II||/lR%3k A ]UfֱF6a PPLE**D; ]/q[Hqy2J8- ,޵ Ls3(,&Sjhjw) )z%x_amaxAhㅇt)U<}RU3-ƱA`Db1YS G#$3t@4&nXD!Wk5Vn:t@ %RG%%^e3$%Cu$ɓwbQ"=DHvrg;;uc}tRV5.$[ۖepZֈvt!נ86l|5+|^EMtcDBu S(r LC XA{P_2tFigMlu,9e\-uKhR$L7Vefw?iČdVĩP\65@hA#_6*ogr*-)2ǜTCfIn53׋@Y3;!#S+%VNR[pn1WRLeZ oH|O|c҄Ջ[ t!UjDEtC밽BƘa[ 'Gd#"?58觕ޘԚ XB_Ď0AZ&N[Fb."QK})ң~e;,#}0rqL$F@ͤA 2hu| G[w-SdfТg&p#suqBP}F WfkXGvo =7.LrQZ/gU;BgD'/l-CvN.w(D6=z]b"C_.a4tXUbds#voLāb{~JhMmc_(fGK|SDgwi2/:ݜVƒV!fBAj4~eV]ir ="ty@kd,A!nY8utPmIU<`xJT>NY6?ej?Niem %049s6e:V9ݾ6n5nh4X&>#96/xhJ]v\CwԴcJjT.1>ĩV6d}%Dӽ0TESZr,V̌^ӐƼ( C$ YZy!T-/JidQ"\P+ar;g!"utKLDI0|Krb&WNeHxzIy"La>fu7[֛)jS ]%-O\MdzҘō0vҖ)&ALp"1La>@'XH ;˩֖{'2͖_?8vr4]= 9č :|]fw]|XډsR^Љ[8 #-]Iu٤eύkok,:hy7R!ʂHʨ+[9.oߖVbܯV 2AJb.*:h6(䱴 HlK܋ZoωPI]a!p[5MU nYl3;*_{}HNv6Z3pg# {E6j+xqD[Mlibextractor-1.3/src/plugins/testdata/sid_wizball.sid0000644000175000017500000002040012016742766020074 00000000000000PSID|cf WizballMartin Galway1987 Ocean?EE EE`EE`E`pMLG JHIHIIIIgI1J JI*J/I?IIQIIIII*KKJJEJJKJKJRKHKiJAK{JJ# # # J# JnLlK!LfK& KLKTLKLLKLKKBLK.L& & LL8 2 8dc 8d  (08@HPX`hpx." [[[(:L`u/PsEw^2-X>AcZݰ|wQ,`6gWs>lCή} ,   "%'),.147:>AEJNSX]bhnu|ԩFF݅NYZ[W`&U8H\]]%U&U\G  Y]]\iF `FF)*FFFF`FF+,FFFF`פ؆-.υЅ`OPQRISJTKULV`FF/0FFFFFFFF`FFFFFFFFFF`٤چ̅˅ʅߥɅ`ȩ, ee ȱLdMMHZHȱlȱȱL]MȱFȱFL]M]Iȱ^I^1L[MȱuIȱvIZL]M ee L]MIȱI 'ZL[MȱȱLdMN,ԆWԩL]M,L]MȱL[M LdM L]M  LdMY`ȱFL[ML]MȱL[Mȩ,eeȱLNNHHȱlȱFȱFLNȱFȱFLNȱJȱJZFLNeeGLNJȱJ 'ZFLNȱȱLN,FLNȱFLNG LNLNLNZ`LNȱFLNȱFLNȩ,eGe Gȱ LOOHHȱlȱȱLOȱȱ©LOKȱKZ1LOȱKȱKZLOeGe GGLOLȱL 'ZLOȱ LON,ԆWLOԢȱLOG GG LOLO GG LO[`ȱLO8H 4HLOLOȱLONQRM MN)8`S SeAeBL MT TeCeDL MU UeEeFL MV%VeGeHQR)ԘXJfXJfXJXj`N) HLL HLL1A9I HLMY ` ei?uMlFLiN``_eW ;MuGGFFԌԦԌԥԥԥF) HHF3FF)*FFFFFFFFFFWFFFFFFFFFFFFF)`_eF HFF`F e``Z ` eiiNl0FLO``_e ԼuGGFFԌԮFF Ԍ ԭF ԭF ԭFF) _HFF:FF+,FFFFFFFFFFFFFFFFFFdFFFFFFFFFFFFFFFFFFFFFFFFFF)`_eF HFFFF`F e``[ ` eiOlZFLP``_eԥW ;MuGGلڍԌԦԌԥԥԥ) tH(ׄ؆-.֥եԥӥѦφЄ㥱I̦ͦ˦ʦɦȦǦƦŦĦæ¦)`_e H܄ݠ`F e` `FF) ͸FBFF)F0FF(ιF#WN`F θFF)ԭFYFέFLQ)*FξFmFmFLQFοFmFmFLQF) BHLYQ HHLYQ)*ԌԭF)/0FAΩFF){`ΡFFFFFFFFqFGuGԍ`FκFmFmFLHRFλFmFmFLHRFμFmFmFLHRFνFmFmFԌԆ/0`F) HLQ HLQFF) F;FF)F)FF!F`F FF) ԭFYFFLS+,FmFmFFL SFmFmFFL SF) YHLR _HLR+, Ԍ ԭF)FAFF){`FFFFFFFFqFGuGԍ`FFmFmFLSFFmFmFLSFFmFmFLSFFmFmFԌԆ`F) HLhS HLhS) ܰ6ܥ)'!L.Q )ԥNLoT-. eӪeԨLeT eժe֨LeT) pHL*T tHL*T-.Ԍԥ)6ͥ)d`DŽȚ̌ɆʆqͨGuGԍ` ފeeLT ߊeêeLT eŪeLTeǪeȨԌԆ`) HLT HLTYZ[ F F`[`YY^[[[YYYC`abYYO\YYYWWVGY ZZ5ZZZZ  2I  dF!Z)Z  (! ' U9__7__6_ҬU:;=ҙU>_>A@EA>@_>=U;U8646 __6W_PPP P P _<<VV<<V<<V<VU_dU_ 49;=>=;9;7__6:;=>@>=>_ cX__259>@A@>=94__4689;=>@U<dU; 9{WҿU_-DVW+DVW*DVW/DV&DVW  W   W(DVW-DV WVW!j          W_* _UYYYYYY{W__- W_+ WW_/ _& W_- - W* * * WW_- WW 2  (xx  Ik(Ah((! (( !! ((XcX«X ((  ((XcX ((  ((X"cX# ** ## ** !!  !!XcX! (( ! %% ##  ##X«XXSX ##cXXUcX_( XGY   Y!322Y< Ng6cA^Y2 _ __Y@^0^@^;ZUY]^A- Z Z2 4 7 7 9754542454220-02'Z0_ZZ__Z[8 2A        ԩԩWL;MZZ__ZCZ7Z+ZZGZ9Z-ZZ2Z7Z5Z:Z2Z>Z7ZCZAA9>>59/ L G D @DD;@8;4) A < : 5::055.0( @ : 8 488.44(.' ? : 7 377.33+.& > : 6 266.22*.% = : 5 155.11).$ < : 4 044.00(.# ; : 3 /33.//'*" : 5 2 .22)..&)^^: .__ : _ _ _:9: _7> @ @ _ _ _<754 _ 5 7 ^7 __ _ 7 5  7 5 ^7 _ _ _ _7< _ @ _ > _ _ _:> _ A __ 2C^@ _ _ _ CECA@<> _ _ _<: _ 7 _5 __< _ _ d___ 3_3_j__ C`  dAAV 2              ^ba _ < _ a_ a_ a_ a __a__aga_  _  _ _ _ _ 3_j_adbA  dÅ              ^b_ < _ b_ b_ b__< b_ b_ ga_ _  {b_ Nb _  _ " _ " _ _  -_οb5Lc6de Gcccc EE7c` !(/6=X*`X#`X`X EE Mԭ0 U" P NM iR N S O LE M`p@ ` `Խ>  } } LԹ8 8 LԹ>  } }L; 8 8L;ԽԽԽԽ ԽԽLr ` @ T ΁ v<=`"#BC`6ccc@fܽDfܽHf4fLf5f c7` - libextractor-1.3/src/plugins/testdata/mpeg_melt.mpg0000644000175000017500000056426612007576267017576 00000000000000@#3=8x?[ zoJ9:1*ayMz@o`%I^&TF1 1 ,0MJ7FB`Pԡt~t#~W1%Ba@ "}I|hŸ%u@06ܚK& &Yc v*]s1&g(o{e-^D@2i 񤮤w)]x}W.EJM00~xX>TR#G*0@ b5Tr:=ZC>|O G<}7M+G6346MoiRM<>Qd4 >: @ ԁL7,YKN?k0bC !#NFv}D}?Q]/xhdB9,k |@e/S3 'P f\{0 BRܓK(D0b~0;tK) uI9>o!As/ν.@!e ̾|h`i!/yX6g9aWB(F\cndq-0!Y ៸znn'@20n_3/_^wV  J l?q|{*>Lq{fNCa)Vֆ$gע~_vCCR[sJ,o(~ h#k`hhieS%?]}X"TP /& $ W̓?IH>*C0-   P ,@._WO5RiDE@iH*&72\3Lk"0 C0 P IiQ]0 _p`k#TR`Z@*)0-  VB@ 43\AhxJL H&Y]0`%}z6L :' ,@v%cW@/k` "}0MXy5#MCGf@t&=%{̀*ܠj)OXn'ߥb]8tL{Dؘ$EHLM -WGίL ^Nº*pOpY %00u f%`, RL 1-H9FOAD[o&H m^D@V:+tifms$=7A1<)@0/d?B[y0J^lR|&thH L>/(_;Ę?&=v [Ʉ+a;!~x`DnyDރ eAvMu~dPAףؚ;P1$b9@|3M% Ax;/`A|2و@;&P+'dCrtU=Y1^JF{N@"xݽN՜<DPa %,aHlMG`7HAx}H H3V$=z4L^7vi}ZJK@z(G A,KKG7Gq*W;gPĄLi, kBI]d*qBxXLB/!R H@LzWA}0@pD  IvN.mK,0`jI$`A7QWDݏM>B AlI^IY6|w#-(v'k,͹$!v`7 (])6>/Au &Wr$p(krӰ5&`^9Xzɀrt!d9B+h\yAG;*PH?$#Qt;b 2$< ~+$ѭ@`$nX W1);۰&,`.qi'P&ɸIAdQ @@ <-8x0 8Ia/[`T° RNI/ ~ &cr @h@d/P ?!@,cF w =2P2PBxiG2D5w h@tuhS` `1@`@$6; RuW3B`&D_^#?I"9H"MB`}X$$?H|ea$( P42"0_Xb0v@Pc Hbި  Wdu_0`Z8F9waK, k7er`$r3]) E6 HpTJ( `z2v |yP0Z %to0 (J8_ f`I\?vB'GB|@by  $ND&38>/PAC@<,`Hπz1:p!`O[ CZD>, Ne'3G-`z`pĀ o0'@1I?k!\ |ДmۧI܍p@M$xZJN{ŒzFHHҜ^ִ)P`I , 'ő6$O ԂbOI:!$JvΒ08s `PI@gd q_F1J /fđ J7^, "$1W I0<nQf 3 @ ϰHN  .G>K! JԲ˪QDi@!Ă/7 T`WlPI+&f@Ģe '|U PR[0ZJ @"|q#1%]ݮD J}RP^$|% 3kW?p$?$xa c n'`z+ 7ܝҐ(8"~0$~ ^ ?>%(&L_A1 ?|ERpA 4j1^T!G @=O L<`xf"hbnǤ Eݶ܃rMf,0 qܴ o"Js #b- SpDq!vLMXq RiaF"@/EC1ÃGH<X#=!$Vf$}2byŅb?CJ!WpyAob!#hB01W(Hgr2"K@!<ǧp,!+ (. 3S4J gWmVF~d)P^c 0h#@|  #Ȁ1?pb2WK63 mۉ=Ot-ߏ^#&w>FGph9SlԿ%_3?})2+ p' I}`}86He;,UŻ$ r߄_lƯl8bBcD(Ov ?X5L #aSbA1`O=T,7Fqr#)CRkK!㖐'ÿ_:0i/!Д譝3؟h<)G"Z 3HNQ7gWgr= 7B37+Kh|-÷"j?B@Dz|1b+uGQ #S`tC|Yb1* )q4 Q;* i#~FF ;ONbtױ,4g,o 0š("܋Ӊ;}X7dqo LD  @?;m%+zHa@e@PiKaajKYRIFN`kPB ~s5FZA\݉ !P{}p$jq[JfW){ äÝ/rߓr5 1>3iyC45;c0yb` @ůa+N6_o\`o^OK/)Rտ=rӌFwPf\9[0$_&_ r-)Oќѫ%c1xGp[Ac c]J_Z8 %M/vN `3Z YϑƳ%nsQf~ANcu԰Sܖm0JD&>YBh&8F mF0b\I4NF% U)P䎑%%! C WP< 1پC~@qnJ -ɅuNO {LL <- jJ8Zpc#ɠ/U ݁E$I]jB'㮤t+ 'pxH70ac_ug؏N,al1gJ^{3-1i c|MT8.3T7~*dG`|v=3G #Չ}W9x{ g<6~G 9… x0' Ntwg30|$ Q]Z @6mӰS!,f8xy0xI͗#ǁB f'Ը4~s640{~F ` )sɈ,HpX31!8 `` /B㎓75l8C0 `vدN"@ (Y굹(Pt !lN#0LOpE(A8sԾy'C1XL1>A_pY L]@eqQtvHZǑ; WЇ'Lq(7`۫  HXpr>&p=”z哢QG,8?i\@17YBU 0볓3£EpU?0j,' 3R>q8z0_ ݀mNB̾2ªf CrNX~"$ p'r1vuƛx1/J0x>&n{qxj[7!IT@;tXp( ۀد=T=rG ;; Iwģy$~8MI9dꘀ@v(cb!8 U*7tqQpAAi%!c!ڶ31?t|L@ F @E@}`D@$9'Zl+A*; Y*gp N*As+dr${hGñ>BTZ?rNsPaDq?0W `( ?>M $F./wBC6X(n l*Q~?VCN+[ J#pGWBx"}@n7bt y>(!F#i(]0 QxPEC^) vI20xw/@?7-G #in@yJX HRf&H&b?D%@Z~ `_@<`o°YPW'=8Rɩ \.9ܝu}`_'O@XFL{BW3*m10I>u$TY`HR$h&X I\~`Ų?Y9 `CHb@r '( G*RU<)*.Uh)&1 'C@X3zH@Q:L.dA\*h`f 1դ]  {TɺamZK/nH}uՀ3 ,PVcxS<% 1/(Bc<[뤰(?y8f\Ed o+/./d T`;X03p2&RR  U2j1jAiFR~Ux/tB0!KX+ϻ gH8j @ A ;/4@,@0Hf @ A`;Dl,/+n% ( Qp8h(9)XrCd(rCd,n/ \`p* A;D OT)C8T`@@ v( Kbs}P Ēq?Gެ`@{-8!  J/#% (8^Ep(s4߈%@?8`=m[B]0aY3M3VɣET{RV+K@P5x]#U`;9C}jq`PW_H^ΈikV,?ke}@tDPR?? & K )%vWdqpfYa@opol1YDrR I@ (Bݐ1E`>v@''paddvMЏk w%+b R@ &! TZyK΀0@6l7ħgţz#6 `R aX_c-3^ܖ>ڀ  CY@b$0G,k +R#]5QjxULݭF%1ݩ#EJoy-F٪ ͅ[^d[K* hgo~r{ X]Jr:VJ2w+ Q Td2w-qOB[" :zRp704ӂV[HV &,d3*J G;n&3"kFN;vaXV+;adIIC~G:޲QE3k4sq`|S_]>jg"Y8{HBAĝilkWƖxkWƔܾl5    ) RnD'#J1~w)JYo;1g^6x`7,|5Fb΅)~HRh R[EhҔ+K5Mu1Dh"]Gؑ.KD ,8'l>(,X{NF'$rB|<Kr*, H%(<8RjBAY3{["L~ w[&@SwL QR}NU܂p:%}@KK"hn~he衢4L,bL'TF@0QgTZ0 mF X. +PX|=D|.)(\b\LKtuy@fKr it$b0xmýt3< P}3} S |;qk,)#jd>"8}5ni4H2Ҫ$ >!Mf!,>%Ev?6d$G6:GId2w~'{ܯjXR.up!dVph~d? EGz%X_9|@>"Tȗ΁Q@ai#Xjh)5a53{~<$,A9/}Dr a.U ?C]au,(> OH ^t _5Q5˱r|rS0`T2"*X ȶ1O@ 0r,.€;œHB%LP0iTC|.|(3c<(v'+5<y@=#0āO TTx-`L,T iӀւ@y‚,@uL <AdT 'Q0$P*(oฟm#psT#H2jB>ljaxBeYF,1q le00R5 '`֦+Jí[(HP2;9$h<  S 8~ OK veu) & qj@xȶT T̒xO~*A`[$'lS\`| 恸U0_aJ?7#D)@AB*a<6I b0( 2yfn P4멈v?cI0{ĵ ̱ Aƒ䍄!w^_#3001KÎI<7"@؈p b NKSf;j=g=ŀpL 1NH+ ſ|{`h;0!"TX|^OjTyUE `qpApRH0 q)Mp& 04.ѢpX`üqGD[qo?ȉ9 'QH`BO\ Qڲ]rA:Hd\t2rzѪ$i X^5u" !p;x&p@tRO+@x >dDH A "5 =OK#RJKM| GMȲ5%Y' G+Ii[#(B>i%v7 ɚ=^A"ԕ]= acY[ͮxNCZ., 2 ]YQd.JRc7\,C&1-E6ŇA˗h웚z]ZojcZ>yr|5V\/+|d[;^s-iԿ=*['O|\d.Od#-.Ov'ȹ>KJ%&1X-R|>K>GZT%I^aK#dDV$HM<ABIM2f$2&C4ur|"h!2'ɲ$":CaH.6kP6CpPwcU;oMbT>[g@ːHncPqbب+CkښTURuQ:.@jF`5 o궫Q.uD'X=(lP X$c) P 7~|nbI(BwW(RC:;;u}T5 0fo33pf-S Aޚ5[@P6p.>kWUʭu_QKoa0'A VPu0uL<|PH-:GXcOKKD]?D.f 7ED.!Au0ΈD*TI: =v2PD@$x0:)J37SRA(*O}"@]dY~۹rKITNlݒO#V:"͘UToaV^ I~FI)<,9\Vmé%a|XS`fl?JN! ( d\1RXP0A@lL0[PbۏT.=AzÉv{K.ێEIPma0lq7a`s*b+`e>Mc橛qÉ@Gx6y:lI?--`U.Xl<}45"?ۋvZJP ŁS7 Ң 1/Hܰ#P7üđ/QCRF X1tAt!:}LO>9u[ YtSe.Ws{`Y" Ұ )ą{걂(h jh*siœ1bbxVKM@rI6~xJ*$l$n' v9bcp4"O"0&WMu3 2?ඖ,~r-@|q h-/]cEt=t@9j0wlO" OxOx  /eTO<n;G!Fw]/X mbHLj@BNa@P #ǎ+څKS1̏7$T SixPGjVPV"ۀ`TQ> ƁdPp~8/,VPi,,c"-L qd@v[F HPS X;KV':>cShK#X T)[>6.8^8XpD>[|(8ŀp"#vY 2a4O5fH@4S@hiXY8[9/!H /ǂ-*gYALBOFt2yp%/-Ž.5K]\xuY'5W5-iY>%|#,\$ɲ.GZ#\싐 $\G@Ys.,d>K>GZT%I$'Džl.v_"˓'IZKyrF$;J5 H? ri4$&I2*|"ei">M W"˩ Jl/r餽@}S ,Q鵍grP l|<}L(<TMvq"iݲ/ɩ=DVduG)t\"ua>vtb4Dǽ@,A40?27x1➾|q!Z2J G)(|u}LF)Q1^`5+tߋF8 :/l:!r_[ejD4Z#ڳ}F.Wa!ct(Wb @H\t 9}4 mEOJ{<?`tuU z$E sjeíK V4$8⃪)}[ ê:P,E*`aŊJTzu6g;s$.Gj>c䒅ͱ!&'jS b*pā>`hG96d]!Ṣ$LoN1[*Mz CfPnxaz`;aaAdܚWa YĄU}Rp+n@B| @\qP Q azy\*b{,po {?DGS,nat]o´L4 62sWOv9!60^8(֫JP6:XOS 3U~<ȼ @bGↀOӊhn⃈52=<:S6 ш28+TĄZ^gk8S6[L ?]dq8jDyuL,e5L\@Qje^v'x#P!NӁZ C$RuL.Xޜaf5bJKLr8Yz RT2"%;wzE"T}Cp8@;`5aOjZN5Avpy;S* J`*PT< v:q(gl%DzH:O `+ "8p45f[b2 C;6 b 9S qY`C^'ߛxL"4A ,>_Mc:҄ hpX3Tɇp4GAb"XX ( ؞65,?"q%l,ژNSD-r*oS,N8py"2<5LF-`9qzä,IJ?# L۱G"2rV7ef8y=pa~q'J 1 @ [Q<Tv '8fSb;3;p8DjN"H<ӈe0CS *Rw?g;'r4s{yS)P^tp:Psj,t.Hՠj`TXp4E5F@R2 _P#Y  `+ ch8c2ٳ'@Zf!8՟G@?4"Tp 0I#?:'38DA-g0p@v 0 O rR/r>#)ߓp%(<@$F5s&ܝP3 @d{pHA{ d'U`-G@i.\ Hx` af/p` $ "'"  HZ w;e*`  $7'My!yP)1pOf'O[{,a@!& Vt4 ŀԝd4UjB!YDtCR3\%&Phvr.P` 8%ya `A g;!bCP7t1X `,C/r[\ \Sh&y)3uCpTٵ%+Ixl?8K]`ːN!kz1 aȶutidٶcvL;&=$p 0CNHU[[?WWn۶ʜum7*\]v_T }'/Tj/z//ו+#Ȳ<* >EL"Y V2 #RGNFFR</>@NdܒdAnIO8<##(CU=%j;s0Ur6Cw%z*nAU&_\\i=<|OEߖ==,B9 A/*.ZQZ#qןײ֭}.ֺ>.[כ櫒iv[K5r|\keY>KO"|%>K6EKD|=r!r|#dKs_a{ 4: !? Ul%\#*IVG?XV:+A 쉓%K$i:II' ; ܚd$I6IdLi#J"|;!+Il#\0ydL5r@ u q֓@ @GL .X A(`N *a{^=G L JAINݯ8_.pD4r҄oշOe 1#9ye+E@)%DS}߱_P@@x`m`ThhݰX†}6\͸`nW/qeaDҷf{ ɁNMS>d>}|}ɫɴ&x }*a?9`+IJCF<&,0 wtW'Y}gCɦ *Ҏe}7:6yZf$&yfiP0widMW &>400ڀa< !αAϠ !ۆ#qv]1il&9(} ;ڊ{@PKv=( 2d[*faD* ^5F w8i  4 -% CJ7J6, EP 5Ӷfɓ' )(?\z7PC- J@ƛtp Kv&s8B+i13 i00 n"Y4a@gۘ"db` %f_D[$u` ;Hf(4% 7'bV&~Q5bBIlߓK8{FdcD[{LX ;3 B6 ۀ vM,5%=iݴY &%4w@@C k0N,1/pX JrgBB™!{,@% H*C0-  I. P ""0 C0THg_c P ""TR`Z@VB4@Ƹ0@%&aA0`P]c-}1k# ;MT Ii:@@遌ѫ>'B ,IHx"}9`%t|q^N&px0|>th&V Xά4K8$4y(b/J@+ߑa }/y osZIg|?{&(|x$} (M^N’UŽ \~]j@4clbW |h3دp#=_cGMYڴ5פy?yeye u9@S`"@WL&B)5Z- nu b, D(HGM@T~TִH&=¨(LH"}Vju+ZBɃၸ\;*'R`&W4w8U`Pd#܁ ɩ@tE~LX]LB&=¥:!=F_p N^P^֢ɨG /Y@@$HU@PI7` I gjϭ0 L!u,noyWqIj.~p(M0by q%½q+ȗ/_*}48w F+ Ua]QTT<zyF$ p,K=RQ`$+XHWVc;d2JQ;q8vP*QnWg=\^|1BF?t&N{D@KoӀXf8®vN@~M `a3^>!!'`{vbm%\pk(CIpboSp?|<_lЛbh넪Y p B c2!'+@Eu%^ S HtP~/T~ pÞW|EÁTFJd뻀^BTrB@4 p  wA`T `pdF+h%3 H/to]. 9T뜝j:%!x.K'Ae/JI>V\9e@`D%8yĆ!r&x4ZV^#pD=$BN5,* AD~Fם@:Հ5 MpD&EN@+; Ip:CP Aa@v$4㉅EFc\HncI;]0(*~­@;,X"~u (4F0obR0񡘜` bb1bHDEjnrv ҒR! z  !~;g#5LFHL~Pad"W&K ﶱ`.1rhHҒ8bX|f]p `OrC0G04t jԇ2/2t6p`1`z<0A O#xwOąGD/*9 $PYT$`R\47sـh &1<wn0?0zq@ 21!J@F  fعhYeԠ0P" u- N@Hx#rh$056Ü@"@KrnbJ7 q\(pd='*P ixG%9ذNIDR |} ,<j:130gA&AGA'L(oD E )$Qޑ$arC G #9fp,T<[ =%bĖ4Hɀ@p()4y``ܰr7H$q@ cQ#4t` Y(^?ڣ?KDc Pr@ԠD/b&`8(0HJ  A0 ĀUӉuɸ܃ `b|'Pbh,GC4 ~$n ـp@!I5L6ΓI3tĒ܅ :i"` B''hX ph!\YeI#:,LWA& 5Ia$'C8~Ojy(P{0:8!q)ge@$% sI`o8 d܁nqa%|d`Bpk(Aթ~RB>L&++?2t?6#ؚ1 {]@ - :I;(&'* <MIATC L_F#{ds Tp @b H``ȚD 1x`=VA %'#Y&GkpD`H<ф ?ˤA 2JK&`HAa1~Nڌ&2)䠋y & _͕BO$ $!Ɩ66G!@TVdgR+ V&ĆFɁv`Bo9PR2I֤(D,8y3AiZ`+ᤛ YXjHβa G9sqCR}膀hb ~㉄ `vT`fA(Kp8#8 Idz)Ĕ2 `a?kxaBqEVF5ѹnq#7` ɁF_bpy87A04RF'GpRᇿu&8sƧn{`)$f4f(',}_"ˈd4qgH`\~{#6l!Kg[d~saN@r}94KZ@H"`Hz@l[ 49خ؍ I3`41D6Ydυ6`:I yiA2lv RT `XW4@#{|UXy G߉(ܠ@36%!mӝx8E|ΐIN$@n<Œ+ a\  3~59Iwģ&'ہ-*|L+y-! Fs@DLOync}N ֡]TF"G !!8Q`D.L`8(~+z-%,a;qX8*bhi'DE+ɵ ҅qvӖ4Z39E' Bw"<5 aX(vX-V.N^95=}D&PT[ #E`W&: qzxPx 'Ƞ+fN~@Qo?jmy8uHei$dA#G D+{%f\P|T?Ѹ~'Hjհ>bwaU'  Qz@UAҳXTt#E<, bp;u@K>I>/w1 |-;"X,DGՑ,Z?0'7XTC9F v%X,#-@,'G4a0;p$Xt ',/ڍFOO㑑 u´]qiH'鰐t+KB1JnL¶G"@w|;*LEn .+ @l0?pGpb8߀+Di"t$3e, (A mD=⿐u7)qt''$ pAv'Jێb+db6+Qy3>+wT:Q~E'd#wqBppZ Q(0j&>4~ŏď&bo2f# OT JdSH+ E{ z ?*c,ɉ`GO"3[  %^p$dg%s<"s K@?[2EEQ0GW VI^>̎!: &ޡ}_V7+uD'ujDd`?<_.XaFQ>f,8p\r GM N?[k,%`Mvۑ.@Wj*@@(@gZ |҇3_8]DI0injb'%䜮&\>X  q!.)Δz 6,n|pz z:;!pi ;ҀX_CݓkCx@^8weR9BW0)$*čW ,_$ @l&Y1gLrāGJuΏϽ9UhL',&\Qr3De I7 \FY>j27%@aw[" T $C0g%0 @M(IڦM3j\I~pHF"@7WV㮬idOH>MҘ)x!DM o]%D^ [7/$KyYyq~# J3 Ps pEh%eκiBSϺ`;A ZZQl @ | `!KX̳<7b/b>4I @"j @ A;/0*nրa4 C9ߓ'Р6{BV \{mx ؠ݉,My!^Phv P؁9X͖)kh ܇ HSUX@&N ܓ9GӖW~ Y0W1>4  㓰 03uIL XaeR:P@ @% fN*I!!']Y8~`07I:>@`1('` v^r Edetq7HPt'?sT Zq^aVЗlvL+BVy Sj դrh'jl1ԕJ- ^+ihUEv1NDw5:auX&3e%iZE촕f fg, 1GYa_P3]87$*B7OuIJI];{{Xj@5[[9t CV|{_RjP d Qi'aw8P I4Xo:Y.v3t#!e؃~T  &HFC7$j@VR; 3M)|zhޭv͠@*pc#>XV'.FLW%$Ϧ'CP   =GƍTZx{c(0kQ0 P܍!%_"' qlN-8+5jb Xb@a(FC1(@}h9C>0 r& axd}Wj&b}VOJ47~Cl}%]s<z6K9_pk7`:OiJUʻƯ{!s7($*6x\&z JFB|[b@8/+d`*(qbi7!+  #\IdДulu7K/ zrBD&ו˺V|=}`*1`dD2i3;n;|):);ZyɁ+tf;}ý km@4(5h$@*=@@$=xP+|fY /ʸxcZ# 1igBLmq٤)?Y)-4iJẀ㚦[j~ZC/TݷJNF&9ߖ^i9{bo"eKDIC~/^ӕyߕgu q׋⟏Ns)e>F0h{mc$`^+μSݶQqxμV;vݛ'*sqח~ו:tncV_i~*is*]m)YEdzL>AdS#ȲR@6 $PR.ʄ)SW+T'mpP ;ꈃ NJL dw/DѵD0=ʵ'Go5,]aQ5$:Xk]^ 'T\\|< T<}/ֳj}Ht$L!Ar` @2w0!p=L*_1$5P2'kPđP l,P*8?A=zGO;h7"h Dh DC m.^Ev,U,AAkYP5()酓eRœ> mGǐ/ %b( c+E8Lٝ4?NG_ Yƈ ۓg P ?lE<_k0ɄZ1`-ۇ %bN$:dQ58":o/ 0ٱ,lw K ՝kveağY 'r{  D R;0#cPE"qpB2#('Au0XBȰ2?H 

    x2[<`҅uBB԰*8a`p. p7A1o0 O' 5jxȞNzxD(@w3[~=A@qj, 3@Yg>;: E?29P8*, _]D:JEP M`@<8kYx V@恟6Q`x=\,p,7:# r7ǑSa^A, FϨ0FAaata9qpApRH0 q)'!)$n;Qj҄Iq\mp& 04BaR~JT<D `!g_+DHJĞjzN) *HfCXX\N1? :e&6I9\=WʐHP4@$ 9+Ԑ wQ+n=xt1p%dv2F·n A %PX%,YX,a, q #!BL~} @tPt8!{w704ap\5OMMyˆ]X&%)a\bђN^TQ+|[6,'Q%@r\?x&p@tRO+@x >a3p#M[8`4c~9*rn;A?Aedĺrv`DI)&$qʲRO+ 5d=\f1 !x`n(~.JJI_t'DH A "5 ==Ɉ-# /gIn3@S&i4 @ +a `K H*D2) W/Å#EH%d yϬ d@"O" 4`/:2 X|BN5dhAPdo'4Ӿ3IAA:LWa` 2(tq4X'@h[SA//ĎqqD0H`D ~|7޼3dqi8BEڒMkSfTi +';Y(8]j9Ud}'fN̘%4͓x ׁ@ [@J*lh_x^w׊1_N_msx_//f>Q9ߵ:+sܫvd5֥W4]6MNv׼L4Z\6A,dyG ED ͇`gH j6\"##>DR<Ȗxk?8/?x +r;!djW">,I). QxQU HAad̛djK% rNA˂`顄}YY5\NJ uUYHdTy BDUȆdZ>Oq%௡,f1_@´ RV5 o>ir|vz]|dכ9z^7KhZzZ|zdOl%e#,\$ɲ.GZ'r{>E|\Q/4\ŵG?wȊ 6Ty'r'+J|2V,!*epbσ#˓'IZK7\'I"I8FTb 0z!;Rs!&3Irtd!H:3yb c:.dv]d#Bd rOdH#!m5 x(>wUei Kru.IszD6 UE*TT 2F9 gcDSG+zzOhuK:^Kh2xԓP~B:>& Bp} <u@RZ{nQ0d"0Ag4'# 㩅$:s;\.po pa. KEX z5 >(7z{4MPi(\Kaq@2਷j ,8?I C$,t .'"~$ $ 4p=d:D#XT 8T*au28W~iL+zSE_ y~N3U;fHv, 'PďPx3[ x1!€h,nf,؍(WFwk;:Âl酀s<Ga>TxXOA8T4AxC0 䏒gb\KBAOI3810pq20穘\cxOK$^"A"mvt͂K*8b'ɸ1Y;D|B› d)ßdҸ\K/0%mŲT6Bp Ã(X$JA`ZH0/#Vhx꘮"s4 X5h?<@4vh"0P]vCq5`h3h |r%LȏBhFs$/!StN|0v+ àaf09u1zO Ke(E'D`ޖ縅0Vkq㝛ig@h p@P %ꀻqC/a'~3mu@"a2@MS;~+[/)g$:ƃ8 ;/ oS2Zw0@Q~ RqjjI-,I0b2$ocV؁f2Pb~/{jbh )GP4sb18Pq'q!aгzY@` )gPR0yg~ +ATHpqJ2[9n%gwaQ:'< K:AG8[,?ǘpX0CdNO\rݔ'4ダ DpddF Sv Nm7X,@R *c6Dh@j@u is;6| 5 !CD6 Gx f#c!&:Md<"DY`Qt?$OO#̍'gcJ.%Xv Q  \Jb}z+󠇌Rz!$Z9(G+3af/E =|<,XL侥$P412~t9ȱP$uAR98=.S D݆I|;# `H-pw Se[q!*`F0rn.\KKpi5.&Xnhdh P@ŁyCU@b6KnI'2MI"( P`0=|<E;0T;`IgG*>QEH1Nh1I>eBʘP|<?xNXSXj4Y.'9øB5))lY',]s(h= 4 `ԡ c1)#% ;"`C}.R~$rY<ںL1A>8|/.*^Q;8MI-v cv.n+Bi!9]٪`__tx^V+p 7m^U~׊n++tݤ~Nvzm.w+#i+#Ȩ E2<#d {";X$vGd 2 ׀I@9rJO%Y')qFPpr pZlDž:X[*c2wPaԉʌ'B=f Llt7Gdszd|Ă3t%̸D|hG-.O-X<tYvzy8xRC,_+=M.%q\ב*>/=sޖ} YGrE|\>jyozs_'^7;]i֯Mw%h['hr>K̟%L"{% mnb뎱w'"9lȹ>KJ%d}ÔkKİƩd>K>GZT]&N,{V vp5Z$쉓%#˒4$Bs!b}O#,H; ܚd$I6IdLi#J4@֜8N#Nǃx4vd<,ǡtiPl#UPP? nꏮMDt)KAuek|UM* ޠJEEV[jԯ4K^tE*Cm&7`V  %2y |*=LSI*C%]AUMapa|=OOzۙo;b6T39O|Vª]B`W*h=]J1#kn%HfR6P$}Y€42G+B8>?ǀs,\Oi #)!Dz^ \%p(U2pS\< h;tE0ڦCu%$xd0B8`wT"+G P9jqb`pcY1noO1_b];.lo7S-AAN;+  )Fڌa9ʁn(ܜ$~8{?ɶD.0&=O'9>cH# >(x/;rTϗ$;8t, 4@=O8'؜0$Ͽ̩`Up0J<,qܜE$H%oF'@~>(A_Uȩ< `5Gi[rSi +V@t @5օ =0ցr`sʲ 0?@ F¥L8@3Vi(CIWLJXy=@r &8 VH@y|.BSa1 t P(MȾUb(+$4p1"Zj%v 'G,Ob ^8('0#/a18w yT@XJC XQ9)Gm?d)T膍b( I4%ǚ?! ^,v6ZFpӬ|i'r J`ź7:8"arTIk x$TY('pr.A oTZ A40bIJ/|-c#8' 6` bL=ag9@ 6 FnRCϔ/ 7vSsB ÜOJ{"F=I8a@I$W Gi(700ϯ"@$ $ :G tfiɎdPH E' 7nX!0(0چlvZJ_zq(b Fzf#m¹`?견:uQ,r}|TZ9habcG wE!Sppe,`fN(eXZV|G`RbxۉT7'ug3{/F9|,  ;`ZI %HAM뉣_`+#NX#&!w4c5 r?zCwwP(M<8p\14JDb>.7)AQ b`1?"-I#Z_ˈytM ܃ybBPqFx"[<_CfjZ#ʲ%-OFU3W%/ ;ckDpTL)x9¿A7r1E3? En+'m>)x. nێ:_N;jqW8q}in_i^W'۴ޖYEVGQ6A,dyG I8U0C [ X*Ir; Y%D\yYcHT,2Is_'T{|7Kd.O>KD|\d.Od#ܱV'ـ$N#8_X/.Od\\%%OKȝ'>İ"fM |I>)'c'V\x n-'&N'-'&$HN\ @5r ri4$&I2*ݜ&d Jkdt*>M  #c<=H޹ J= F%Wr^LIz a{r ;Q05(?ɜMo"jCJ oշOl⭋Ԅ/8춲 8gw'B)%DSau `m MMS}6Y]RC6ၹ\ƋOW`M+s`@$ |}͋ɶ?&!:*d >TA$]TMYx#Fgp¸#N_Qޔdz39tyBuҒvM艿_#> eZqa%?]|Џ8 R`ZA4@I=8Fws"TR`Z@p*)0-  @ɀ.$ {Aa@A0TH$ {@ P IiDF $~L@_`f( R`Z@JL H @<+MFb),M( 4@ t@jhj:>~N%!r\e { -(Ya"{Lǖ8%@]IiL\@b>C oC`l$o#m~\ K~BIz4xP+]0;t Ry8 h I*LA$t8]0 IL YM#f%`tqO@ِvD ݎDCLv`L@h 14A8)$W%pd2AE 8bI4@!~ x>ȠdL&'l2HH@bg4ؐ 1%" m "thj8P° !"Y3AހZaTRħPM ԞFj(Z@! Phi ,$1D ;CY 48 I: 6:8`$b@a1< X5@`$jg2L ?Lt GA C9ၡ`vadJHFEd>!$ڔPeB z54xctf< nK3^Pa3q1~'.,_xM pkpf;!b0]^I;)<0A3ShpW’^#r@bv0${zPDzi|`A #?a(F``i,18K&8èY` pKנ0$ ـ-!rzԐ*b@F3M A Wج6Iot(F~",Ad21eb/>נFE= &Ydȍe?B9/zƒV[3r<7|):Kےrs wkbPf> o} 3nE e 1z1c>j %%xFk,L> 35@`ydF!Ud&0-\ |O'$B&/z_sB"x+/1)"הoc<@bnX Ѱ'yzҒbJNq/;/'79X nfo<-( )J4 |?/3 JXhI@ )l7QE!Hs##vX}N*G7@MO7bngg1U\oDzCPsgq`IIoa(Hͭ DY/q,i+ ,q}^0LrF>˱' ) |ErHa4D&ߣp҅M*Z1;c(g~s pNFJy}G ۅ;n > LFqK5ZP޽`^H3` .c9=&yk'Q\=v݄ Xńe ݘ nG8R1i@o Otx,u., ~KB tLY.Y.DZwHҬ5cĆ8݃b-aGM7 oOUqpvae& n&-B9xbY'npj(Pt a4lN#3BB{}LB+`>Å`9TXWyp C1XLJvTQ#'*P1l8fr_퓲63V{|~;GDsS=gj=>Xasq|Lf%`h =# zC(..ܯ){K ٝ,ϖN#4@*CMq,s;(Dz0B:ft?|deCV c5) |LPFPA9f =932pQUOq3I8k+'d,?%XW')nrax(y0 C~$ r 0m zDOLΐ8R@;t":&$=eHDt!N8Zb}p qsp-! FV#3%fn ܷ1WBU8Iˆ3:!pcn8(~+z-%,a;qX8*bhi'DE+ɵ ҅qvӖ4Z39E' Bw"<5 aX(vX-V.N^95=}D&PT[ #E`W&: qzxPx 'Ƞ+fN~@Qo?jmy8uHei$dA#G D+{%f\P|T?Ѹ~'Hjհ>bwaU'  Qz@UAҳXTt#E<, bp;u@K>I>/w1 |-;"X,DGՑ,Z?0'7XTC9F v%X,#-@,'G4a0;p$Xt '%V=7^oAhOaXT]{ d 0!|V zI^Ě҃ D1_t좎tGߝI 1/k@ɂq->> ?tx 0?E"PF#G;0JC0F   KQyhiGdb$A>>@ɘ(Q> P$V(_O#4Aj, 0|6ԲjC8&%a GD;{P πcFo8N87 ҏ?ˏCdPOjbH Ha7 Cbsq7c24yB&c$  ~FB! EphᏛ$ Ӆ#{\0 Njhv IbCA p+!^!w~eAEcpĒq(Rvn8^,ng~$V:+Wmս4% ІC=ڃ5i.\0 tZLg%hatWo2=Q]`& cS$7F븰(z@"t@̤7+H]d ](,+k$HFvi1TXb\`iI+'}ۏos2 Bg5|ϝkjCI@:- P bNi[47-)ƍdvMЏk w%+b Z@ &#c*NJx'<8[+>J~_ oVڻf}8 @1,+}7uE+ےg]PB!?`_hk( A }}񁁅rXkcF-O=u zRRA#?ܶh<@R Yg~(SP0 C744$8D)M=|ťrn 3fq|NLvr8{YF[o8e@3ܔݍ3!ǥ A{%#qIOOFs:E,ѓ<U-X!!1{,{'kd|g}`;r@0 Hq/M!1K~V9c&i|2#/Q[^d[K* hgo~r{ X]Jr:VJ2w+ Q Td2w-qOB[" :zRp704ӂV[HV &,d3*J G;n&3"kFN;vaXV+;adIIC~G:޲QE3k4sq`|S_]>jg"Y8{HBAĝilkWƖxkWƔܾl5    ) RnD'1ܚ`;g H!?# KPuxv(UJ>4YLmBJ &4K^(b9IwM4&82^'ƗX &HŒZbХ/\vi OaJKh Rys 58橮}>(:mC*%%+7kݩ?= lH'ʹg+pi8&ݷ+򾗝9IS0k{ `H~ ^S&nT#&:bp E7 8^^¯>^ӊ{;^ߝxd^+iV[vi~;ny۴וN۴NډYEVGȬ E2<#d {#JipN@L\?Dd?.A ##ȲJ2/Ullr3ē,2Z| -I=p+So|xn_O|.K-o,iv}oz.i|kw=}]*e>Ys_o$].,%['lr>K̟%L"{'jt;:'A"\&f(N/8u,'ˑr!r|#dK`quU9iRl%\#*Ix1*lĸȻ6pR35-*7?1 Fd.qZy:+H u2zF#iR<@\Um`/5¤`pr7ZM(iW`!#f%/~#j}nP=ܰ'}LepG8PrL\BIX}LXP% $ʙ;i< | ,H*w`~!r\8H%F|px8 g"US0{nvK>"F;˒BI,%C@.Ƌ' r@G"K;% mL?P<S e L@ EM H"X @ PHy:^4Pdr|$8x,@.@m+@L|`/i *`@O HxNA# ( _ژiBU¼S[3XH_o,a({([ 3 x`@;_)b(i? '/,1lP0Ab;c@{!(8,׎,.BCJ#/Oi4<8Ƈ,E: +DH Ŵ5#(xٷvf FxZ3*,5p1X,.rÀUAXx>@'.q'py10A +@0Xvzøe8 ؜i0qWQQP o8yc̖@B!{p2q#S ?ȴ35"W?<p#sE6:-;^q)kmA@.@| s,L 6,9<uE~PK"Z?`pYp8cjD@D4 5h Oº`6 !TX`, _YמlGT9A`@@X?z =$(QxXs@ gfY@qh Ej / RsA`Ho<4 @,ՠ7 s E;(tFiQ {64I=p8njA g 6%5 T R140<*ecE *uhh7};Յ 3*Dd@Onq`\'_!{xHhY[ؿ*ŁaK oZTٷ‚~D2A1 rPMY fBXUL >(|LHEl R$hӜi R 0bG,R 9ehOZ[((~&[?D h FN3@ܔBaiox4!Ca 0'P!}`qcH0z QDwBq,htIuu &!==Y % za!:I)"q@8@B㲠'J@$D@`PCƧ>C0r {05H68rh P7䓲Z3|sҧ l #/-AO`X4G P ^gQoK1 ?J+ZlxFl3b@ p; B#% f|OS mF힞b@cVDր1 G"hL' ГI7`jDF#k D4čvPNHwRp|lx" dpC$fdad'5p4[l/hM%d$nA [oȲYvOFGMNێ/m6vhWN?:?:dΜ7/9|ʗ*v>YOYE>AdS#Ȳ\YȲ>O9R^iLRYcg3 NeRG#RY,[r\4 99؍Dkp)d i[#(BBk2$jFKuM FܔW!ȼ~Yii\yַd<vO`n#xys<2A܃25@`|x}}JҤ7DR6刼_j_} k[bRU~8y=.Zʻ-=2t?#u2t$BG=TF@,)vL$y:I2L$ilWXȕ2u-XKKJE &Ȑ# CcG|uGԻԈ1Àu?SAaqT}M\ULESTM}THh7AGDeo׷ؚ StCy/k,L5qDy?ÞRC6a-OR*/b juj3aH KrQ]>riu \ >U.\Ɖ@Â|v6A:wֈ2p0]@tű,-h돐6NZI]&RT>2¢/E%̌j\:0J%ۋg0b- ob붕[i!]V.:GU˂a7(orA{B5ARDM85H5t;ՉR T#|@ަUO P be @qPO?T5d:A P=@/3B & "`G$0_'JD@#2b2@37 V9znQÈ2h4v]a ʔݼ-TWb}}̉S'Wt7Qut q`rH Ing`<@/N TȖ$*@4ào1xK|#Gpr S 1BDllh3#ޢEQAj[~l;LP:@aaN{ @&OÉjQ)I[iyx^ u1 7Hc@r/W8 4K5#C?f5n%Ȓ9ā\^ZEn(,h *0v't qApU;m︢~"Te;ADmSMAMqJ!G`V@1 /<.ç/pQ(~ kM!r&vp9v;p0-%VF3Q,8:]s   {t?,z}L<},FR@sP1a0M!JxVg,K1WH ¼O''`iCl ܉S+'$>`F|z*^J=(vK1><ԤΞ؋+( { LSOhT c(>xx 莾G`p/'b|<ڦ)O+A|Noׇ G";(qڙ.P5вQÂ͡ hxEx,# О,UL+w=0*=m/~D2Lo􍅹S#''%3O֎X¨,FkmcL[ )oy~?X&p4gWªbp$∫jsGlaRYF#aPp X^=@kB/:1K8 p=a%,dG'ol<}D@ڇS']R@ QzLX 8?ucOUc\|| 0xEep;+v<i86wS7yhDX#NY}`-CIЃ{8`0US ǐw=viC~!Àg>BE$ J7>B=>pl (芼$S;@Ԇ ՐXicEV@a *""@>|A'Q`ft*\pmREknrՂ8օ`Tkp}D R@]d ? {8b$8i5QqR 88v?'7l`5E PxM'  ,8p; n-[ޑj'AV`o9{V=8#w?i ~2:I H`v,+*P` p?ލCs/n#F: Q\fl.80P0摏ed 1 Wda?mdK'a4hq B>X=p6 1\Yj@Q:FIB? ,$os).%Jƈ> sp>&qۘN$:q; g7"[d\Dq`6F0"j1/ B>Ha@:%rcK+Piǟ%} #  JG-?d#t+Jۜt0ۖ&a'(`IT)]-=tYApwQ>NZnP%,ܓYvF5z8 D'pQAAhW&&1P@or_*iLX T8h0n3ЂN}(frX3e|`#D{KKY,!DĀ^EPhC X%>(P BNkN&4N?O"btpO]p<ӤaF~7 ag5Lg`a?8诈dA$QP#Aj AKH ^%8QɛpLƌ/* @`fC &Kf:!!ϊfdT,S@>B6?P#wU>:DVsd\`/ @ya"']2EdyA.XA\ѷ+]A· 6A,dyG AaɠnA#"WMWcR"u`dvA ##ȲJmLU:ZQZwU4 ,4KYdyȜG ރIVgK+NQB8B(`}w+eL8[.Gd,SdNG2NFtLdS̲? Fr̪W'd,ܓp ӪRw@6FGPC J6.Md'|5Mz o[" G*O 3W ~. h x]ihH|pEd!C֋> ¸X뇊 GE喏Gw-{-ƞGh>{廟'>˖}޷5NOܟ7Kw׽|oKz}^IdZK̟%L"{a}MST7AaD*Հ9`ROd\\%%׸@`>fʮSR+dmFKUc6ްr\/Jӹ,Q#QHi>K>GZT.z%Bwp[KUzX~i~UH!|LXU4lR% |hmmD}+WCu؛%KѺŠa[RZGzb}K0u2T\ͷ;Zr@G}תfK˔JչYaUr^(, ]=L l=IV6@Oo2~>dc}њ, o"m 7j|%Qh+5z66;p#l.^7La*ίy! ͒Țn  7Sk> "jtja!WP -KD1X2b*@6~( 9 AE PfpQ0by9>B7ÿ'Ep\Oo`ٓ|Ņk,=aLL'+A|> (Ņ PH/ʐ0Kԁœ*L'TN XV#4(.zneL(`U%aP-?SG`7>$grCCkL>9` rNվBώA>Yu:Wǐ`Z óC ZX\; S 'Y8X 7 5XҒvQ) HTuA:&4Orb8k!'Jy -c8:\CP,D``V'*`HhjF CHin䆂/x<fpxq|T?G@m%jbbڀKHeLƇBpjfs}QP;?s,f>Xt ؝S`744,n[a`jvb5LHmQ>^C!S!8V `S&ڇ$*8bHKYJ`g`5hSO'~+ W=`HeZ fJ JA,b8]LJX_{ HU,x֠ j-鱲`;`N H"0}-dZ+0v0C+76h#͘T~$U4Y`G4IU$!?OrHYÀ0B$A\L"T?ρ`r%gg `q<R$uLVe!6q?LDXc -Ta y"  @+s< $G@UFq8Dd?8-L"`S@v+-4@`tM@v St%]8 T @00p A 1''8;x7@*ra5 7y@8qUd04H=nb@70ЀTX,)ŽT_< Fd`1q1;Q 0(x=@40e!)?^P7|HkG~vC ;D}$;(7 8rq9æ(>:{'b2X HGw<@` 1,V'䶈a8BW9%nw#. zW)BrhR`Š:Zi-V i@ HE7ŠjFB\J#1$n'@ HN9Qkel ~c>bZ&Ɵk8uZg,ͥ@ &RɈIt PaJ teC>^g@0 b5kb<]dspNpKG0[ fRN8%r@ j`wn<twAHm$ab\.c.C&XL,5a~Y3g%DŽ[LjU@X9/0 tdD\ZxNLSѮ܍^0()r8^ D h L/? >|pt A72nBa `aHP݅SWF0LQ) PjI(n ÖO2UtIi BXҀ1(ϻ`PkZ|%Frz0, wQ:L+b݊18Qh ' c{ %B(kǭu0 7{ TЄPy)KX .%tI]A8ȲҎZXY,PÜIڈ Fsq[<.@Z9}2 5?!В(A7n`Ҝ #N,y3ͱ킝bHEF}A`Hne, zbTQ@|"h҂̱|ylu?=(Yhc ,`J #SX`HDܽTbi`IN 9b& ~Sܒ7g00|BN=^4dM(7Џ|%5CK BPOFB:&rKK+(BgeW-/@ g&C$#RQ)#0Im3q`7ODD|?D1مvI;%-#*#OiXX V:6hbh,‚@a,,% @*F A1-}g#ce/ *8sçdD$RPZsǓa{`}`{  @F>I0@Grb`K*|S+OHpc_C*%;Rd~(iC"4o0WHQڝ0kʹ$g+p=[Dy_+g~mSRCW*DȑSg_?3lyY~*Owה+'Y8.$7)??^U. ~'?:+v*q/kߴ~OdIv%dyGv_ 8_vP1@8X'B ,_rcH`M\E"ȦGdy,AlR j_4F^ݭTUE8Hd6A9dyCqNėK÷vJC" 58a0kI{Ot\8!PRj`(`b2$7tH\"aG;p>OQщ ʧ# ,2Z=3o3%: BJoKGݩO/kn-r w>Cw +&+O`BV(M#,\$ɲ.G(|6^44QHT-%E|\iaP1)OJ>Vcv-&m g|ؤ a#ț(ujezF( Ad\(Ӣ3$6Bp\'i>K>GZT}Mojs$a2镏mrqu,cF  ̙0~I9Q|1A k+(8\%e^j˓'IZK'I"d4ȣpw`)A4ʒ$2&C4Zɠ3%!l%#(2py˥}@f?*(mXE˺'ExJ! ID߶`d@J ߫nvjB HėL`+3p羆RKD% ,8*`x&ېdы S}6nʀҶr/Y>  F@1@h@t7|݄|}ɗ&LΨ0!h#Ioabu3a\zF&eZeSVM켭Y%[GdFH^LMYjZbn?{,ME&v?]tjk;xts+Y`JxC'`_@24 TBBjrw$swkw H- OU0 .Q q*faG{Vci7kbJB__44 -%?N E߮B&{_1 Sd.p{Mp]F/:rnVtj 8e?,WOjϷy27@ hJbLFؔ¯ @NM,5%u!rJh^z@ B^0hRGWV*@*(`Z@ IF7۟| |L @;. Ii:@ɀ$ {/0-  d  pvL9`{辈s/0,M  ehɀn'Nrp B ,@#1_`ZA4`I睊\A8"#,@#'_Y` `Xhi\@A8"8@N 4(* j<?eho(ׂ'K,pl5c}}(J2UVu!+į_H qd$1.ώ~rëRCAp_|(0IAh/d?}w׻ WW~Pkr R`ךM- bݘn~cQ0ɠ!)??6WydX;{ZLW:M,x@%prQ̓Hii<6t.;}VqOUylgX@+4iԔ>O&E`:$>eHGpT=~!,4,4 d(:A XW   ]Ha4:%;zbc}bn1; ,@2/))^ܝf ^/\#P?ܣAW7/IzH3^#8Q.[RVUq*o yIII %"B9;J!\@0X r@{jUt h~&\([L;`o:y.6|L7W2!` # ps( 0P9@ ª I\uD0 ,@H 8DML0%C Pa\{6!~}㉼*¯,F 9%r;]@6 Z6 Z<{<ۚt NG#mgڵ 0A{P. H$"bOBT|e ~ EL_hb~Fètܛrq]/p`@q! w%^eج,X5e'%,j ( ro14Lx:p(X@  ,πs zu譀TYBqxgBP/NN`&f3YÀ'"y0k? 4]`A`D,oPr:F _&7TFMD; N!0,-`Q$2X Tkh&2"@ wZrK7`Dej D#b`1_ / `k 8 pG W($;;]܄CXaP y|O~\* GpFDG &Ӏ3Hup?`B& ^ NH~dbG)Wy4` 8@ Ѥ `d+ޅ:.b 1P&& J~$PUN ;®_cC F={? :@`DBA8z_+ȺpG "29#[`:Bɀ'FñHNzP sƠN11`},3E@c" :9{(bfY( 0>yy@ ,@wa |EFYPbG#& I]HH|b8Zphh$$T`e7IpE)JπtL(HoAx6|G 8"~7p@)&9 wi/F9$d3B!$>13p^! w BL(a@$%~p? (xI& 4Gr$0cH t  1 O z ɦl94BÜA0BƐmK>/F*P;pz  <& I4<@*Y0'-^~ĒaxCr׊ rOF58P~, zQz B bb@gcQ7b ̙:;K/dhy@;*9^㉘A iH K^4<ɼC1; )1y{_%8N'/x)t^Py3a;g(`91aelG p!% r9 NWo¸d$AFyW(XJ0= &a`V,u<XF<R0A^?ϸE.nK$$oO}VdL0oC &DS'4;A0zC0-6<{w(a`W@nQ|ڐ(D؁AF&%+(hHE@bqcSw"x l  MH$Q3 HhR0&~?Nز-$P?nOH9°y #, 8< %#m喁B9d_lgOqFB.)Asg\ 1%A|$GN %XbNA7n zԀ "5jH]#PE&c7Zpb =v`7/g9 n? x]ۜh߀";NxHOxwm˜]1( g嘮hoҞ`PHN+ P֥/I 0A@R>ijhix¶| 7sOR[ @Zg, O 7g3 B6?m㜋t'Cѱcm2!b4tLF|KG O<59@7+m-!i{S&(ΜF#%>ؘWY0C#!B$c#~Dױ[8 @z./zF&e 9n"DMF 1BKa.O edd8g'(5gO$f?lPXhn 퐫vV$4;EO!H""Đ Y$ഹ: ;{ 3!sH J(XjWx`aƨe?&)GpQ$ո`S:Дj6Dz-ⰁBdβ^Ȉi8Fݹ̵POC0#,eaDO& 5.Ǎ)(hIp0J9b`y)ˆT #;' J @qḲ"Ouye (hގbx/jK " Qf d@*Cdsi:;!,T8߇y/b##}Z՝~[Gt7Q~`RwGFvKuVsYJуIƖ_¸ +{\1NRbnO>0JFf6@}}?[$冔ovzBD+ ؍D7txYz&@fz>vm&R86ܝ>@C <$4𻻧 sh /pn L(޵gF0V%ah+Odd-Ypԝ[ 48j' 'K^2?kg;5=$nzK{eq/ + Lx 1lb?w-ĞN&!ۀmVKbX ݀P^Q\VWvb[Cx0! N4рtL$x}aG<NE`& ~ 8x|vXW 7HnR>!`b}aCkSDg\Sag b}ى"H`pX%.n- a F6*G2yՄI:GQ a 1?(,}=yJBi|H+-c} v"nO Rw, }01$W&¾K im/T;#p(%o"Hbq7c2U!u$Wξh ٝ&N{l|}(1޸k0m\%O|oPqoڋ6|! G' ~ Y^<+@~8b Wgr 9LLFrOPl*<#Ŀ(ܠ@0B=J(n [T,ar|pyXA;\H1O32|"`vbQng A0s*aL8#"*@-! FV#J̈́܄W7.}߇XY.ӀlD$ `OEu=Ō"aj,w gF144ғ""ՄB`Q8tvdiMǓrdG!;_zx;wXѬ`['x/"Yr|X|(*-u^v QRH֎}., $c< g+B0]ۜ# ZBO 04vb(kPh ɬ7Iͽb]t7gq- ~p0j ooGʠ;)2@wo ZIW>Ġ/1eJwd] (zK mfq"x _ңu@n%wZ(~ _Xd*?~4Uw`¯ qQX}ZQz@UA:y.dfgO@(/*X1^pgM<1|,Wi؉Zf$>`dϲ=,¢̂6O( ő8h!-qXQ N򾙰\1!?Nn8 M4 3X`ύp? ME7`0`#hYEQ+1۾On3 udpa~F*p:8 i ĊHg`B[dj`:>_& Ay @~-(O߇y ip>:y`21lPaH FzJx|ggӃ3! ҆ k0AYkA$۲%}g*p ;{LB!tl1BI~FU j fH| % 0Z_1GlbbQwt&&wp P_dU-o_|5.kXɁ?8F G YϺZi?߫7"怃AȾRQ֮oBkyf yI;X ºy_Y"5 UҸaqgFRѳWF%#"D@$:n7[q @}PC1%qlFPEj85aՐy<.J1?/ȽтR0d`(^nZDJ;%F @$MLB J" B@,*x `Pa`OA{%EiGİMO"`1+o>MO@X"aWM90B/:1hF]XHS$+]įQzp@z ]&1dg=@Pb2SN[.i 1M7$ xfR;V1F+F bW?W3컨 ar+kTTG PT2.#,5h E`Ep QYD0EshaNG3HPbV v &P$S&Ai.$H$#d g[+qV4AA['fuLFx ļpn& o FbY?xqWIH0kŗ kR]IQ%\ p"ؚIYGZ^ @4IE(J9/;;G+ UTZZQlhHHi/n ,3?;.,%Pg !$[`t2@R*`a?G\1)OǠ$m'%@~ )|u11%v~Bs%Nd-G@oL߇<$XbPa{7*3QzR| aG0 ` /HNL䓈2ٷ&` ;}'|lp¸uvD$nq`@tĘLBPJ/qu^:&Q'f[k909y4,  _d HF#kT?͊yF=AInkp A ?Wܼi;%;&N If5)o%\xnN' @wb Ap5D^ %)&Q~2I*_otV8r? zhK;&ۡ +<{j\4`6 jJ%iw dz*BLp"HoWj@t_: fRV]d ](,+k$HFvi1TXb\`iI+'}ۏoshiaŧ {o:՟;1%'&?&7dlnIO= sGLu7c7B? Pa [7e5@06ff/W @`(X_/{|Z7m]3h? e `O˾:Ѣ?a3 !|5 C¹E,b5{UAX4,L=i-J=RFiŽFQn6jx"2&aV= *߬)îqRtR0C) U$̝B2~S7A: 8Dը`VR7` ! Ġ  %Țѓ]V&yY>|f-(@Pߑűgsu}.}4EX)?=>!)WO*oYHVAos [-' 7/ ~ C C ~T6) HҌ_R[a+/&=4  r3J_6,”r4ū@jqS]ch}-Q5?-btC-)4͟dKZ%/l$qN1HTj_gr8n SWgn3b܉3.;iUM6~V\[cNxɇ 6Rhw^:ӎ^  ߊpEﶜ'qm';rdns+vݤ*ەy[p?BpA) _nAH1 ؒ hANw^YE] B||d8F>R9hpD_bndS#ȲZ+>-B.Fh1h:((]3+LLǴLbH'A@AK oU00`făCIAB ;v3ܟ'r'+jtAbJ Gۀڷz9:'VV~5e쉓HlriV$ș FifRz}X/Ki)w =>M W"yvd, l=J7 ,O=Xc94FUM\@؉ړVZOjs@yZ-R*rqkɩ IJO]ɤ$B4Ɂ ƒHUqBa 8SUAdV]D9p2T&{;t&mM2@5. $ /"xomS2,eF~/gБ Iw|,,yS i2`fa. Y.l̴@*' X|x7'%k, dX,@>\§P;"4r=ʠ.L*j' u+Lz,d2TBt?tBM14N (7†qCD&H!%8/؅xbʒ㶑^Ը UH,RàEh#E7J*C4 aA*@j%4iqRpʁ\~98o܏S##TL4/ 4 @01iL4 ,oaA!P%!p*R$0Q KP ԏ N"T B&zuOL}L0E EbEL/pӤ؉@"P#-ȼ|4o8`;R gͅ) p;{N _0Y9VBg@Y:)+ o! .IBwFbxFxā'+WSgC;p;kIE(` <_(N4:d 6cL̓Qy?ThOP\4I  b4RG4$᫭p'`3 H j-/[#x@*Hue%noq=P@NKx P ԇ|$Pс2x|RVIzߓmg @@jBO%+tg!0?``. -!K(@?۱8,&eu%XSVR9<:Kdp+V(#J:BpVp $05|dIȯa|L&"Ez\ cv6J A ##ȲB!pl0h8|CWLdBOhUI*UZjj3d$#ȲIs_-rO>֟/>z}-5T/޿IV6HU4hOד=>IsoWP%`0p^ V7/#JìT~RM+5oaHa !;ߗy-A5s[Hb$%fO&Mla4E6 vhYug .C.Om2fQ>Y'4 ]1ո)C$5KHd4 5GMr씍 |kT'>^ SnMkz],{"d+Ir~F9#IHM=OnO&i.NL"d3IGY#4$M9&@ _d6D";!vUD{\T7Ŷ4UGa'oHtK*eJu*ULHh)D*FpMM U: Ȑ`a5pbj`o&|MߟjiDXu"DFhk鸺d/.r`8p\Z\j "W41q_NGj&P!\t"-uR?q3ŒIrEFĒW5Qd$6øp,p .  oL`):?? (( !1J@D^ _ s9 ¬o, . {c<3azPsEXu(wXi>NlT,ָ|:/8o+cU U_K`'n\á|/Ȃ,?.hF|X0_B+;/D0KVbN)b;jBd!%U c xQBfQڎVU@UpKk L]<Âz${D씞 mQltHEE0Wd Y7`#4 W804*?8b,@Y,n" }.W' $.?Й^?id(\G /téEli^ȴ8DeamP* 4 # ]K¢|tb49i]L&p:K &#;,^sҤ s p~Y:j|Q3xY=#>gF.@Dh=EP$4=?a ` qhz\V [SLA׻at49nG!l BJv{ {s-qMa|x?(n HS%1ƨ= v8~ <[9/r7D>`g`\Gs%}op;SEs@d đ9,:`<Q,HPc?P61xU;tq yyL2u@/o VO BvcA<'ڙ퀆`tNkP@RPAVrF\ '´i`JSJW [-a"OD@0 '-cCaì'j` \|I3 >gHrH53O1='Y$x9tG=L?p78%F쾱)sW Մ@XU0{kX@x،DY؋18_ a$,v  *al`A! y%$;/D' Vx|;򅑈2V>S&N ܍$`FGqpppI ?sH%R {1+À1!xC80,Q=~c+,f$52G(3/}3ջ|N'w?r}LCX? 58uABj-02Y)`874\Sp>$`F'&SR0G|~ǁ8F1xn簆0:$=kW_`T0Ep*O<:5,#6 q#U)3&r(nƇ$vXJ"%An6Cǚ@ AJmL w1 CÒ  @`A.Nrp0Ĕ<±[<E^rA)B#&f+?B` 1G"|Li4 ^9oo1 RX8C('F8y;8zaxqL'`D9Ad'0pY:  #p:ث':@2P$G8vǞ7Kh %QSE>}"s}{z29AbM'z{ǻxhqZS0s7r,rBU\?>/y uLO/–Ac#ۅD:0K7.NιĨON#Thx|@a[[ 5 PѮ'ֲ`0@eQ"((|Fd]QeH WS1Ӎ"a9#hF83a hjpOd0ƅ Z}iVlm* Sx;ynXun1RLjP{Xp0^;o=9&L /ҌckG

    : `>-ĭ$p:" K=\ʐ5m:]@Di%!!HihBG/sXy@-xn7)8'8#45'RI\akt1dۯY-?cNYVW2~{| ;H+ %Z3á0e+X!j@40WdPҒ:)ޏ 9O c#@/$Od['wHH>#ۤ%z8 @8|n>_/><[ϵNjAYs-rOE|˷z->K=y~NOodn.v\ /''Stu@Uu`#XA%c;iptH qxoFGD 195c?+9%G=upPy6AK_/E)=u-"2dD쐗ӢۈQoE˓uT,$$fOzV[l$P>:4;PO2U &ȹ>K'oe#qZOUM{hM5cNŻ%#Gr'+JTG>vj|?$iXu^#DҞJ~F_NRF$;ITQvA4ɚHl$ș FY"ei">M #"Ua)Jp#*h$?U0L⤌SP:m6Q4D~TRJ.H}:=, A6U7Rrz8*c&*2#ՠJoֈUSūoSI!תo]x  LKIkfU˗2H݅Tȶ4KQĥQU@g V,Q$bM%ܜAȐs*VN}K꺧#|S6.H#fS3/äI~dGpOSO@'6\6 -ðrX#|$xSIs=%#JrCG##@§&F,a 17gA= *ƏQ= "sIH*`2X]Lsa~|~!)HV +pd ꉥuqN5*\2H& X c0ZLKb-w-;;kbn<w_2 y EY6̙#>3P1PQ r$'L;!S*\8 $4c̳F# ,Nj ]% y'}@珠.ƒ}@8L'R`BBSv(LLhq#,S*l>Pt|Pa`h Cw]!.|:0 \a\X tB,@,#NIG@! &+ PÆI)*xb H\d4$i(|ort^`(JZF`u@BHa w \+1(o7T`j#<囂;p7b.;w oO> xp`>}@yb½=y?* d#]RKG"P HZc L:&@S2j;K܌q`ʘD5,NbQV4Zx /hj[PxI܉S4S)É|rk?[ @A1nv'Kp=oNøAPY82:Fć %!D N1+S 8qXu'x;:ZژqΔ1Ӡ$:0-6QAMv{-JzҐOb}L1 $ĘWB#` kB@h D6 C?gbT7P B0d tQ mg. 1( `@|pbXʘ%xgd($Iq( t$S&@ԓAqކq;,/-!$6xZ#$Tb@7CG^:aGN+CűnE+b-{`dX%.DI2,8 ?p5SqTԑHTD`#!o 0il,g@߇5d 7@6FOx\HL'/;;~<\ # kfXW3 K_Pu,;r1g/p#(q8qDSGݝA`A\LE#(c,L'?56:9k}~d> r=fYP΍0FFS0,?@Ǒ >PP`r=A0n?+IYٔqRͷ OenW5&z/`b1"lJ8(X}dPb?/8x?[!2FY(@8CE0O@5a|tFC ,3\N0?aȂ kQ:NO)wDž/y3X<޵1OOA%vI)+ZQcXS)G 6<,J=xXuTp`5ǎD>È`BXxS/oo`|-K =L^幜Ay /t)B%czGr4cpy1 "<n 78wY;E1A p  x gOB}L;G_,8Ԣ)-q,ynO6 m:D䙄uX E"=d\&By[{,z'`6,y ,wQ`s?1_@#3;hgz.,JCXl ˰-0qCE^`2QtG#=KxS1k 7@l9B~k v1BU~R$c?(|YE$k` @ϔs~xx0ʂL?u΢Y`mAC@vMd,Xk cH(uS, ʏĠq,ڸ a|k{; .d<ړ,=&:O..JO S@?$` T'|r%<"+8m1rO+/ @ŀi:0L,lh^夠e))U09`CYT)\ZH`P!m8Дp',D-,Y𗀨֒` g'4@Db MHGYD2Pb |\MIAA2C`*CF@#ӊl0 үn=V4\a}Π?*% \#, 'H H>T1܍fKqaCAԤƍOP @ XXebR*ENϹ_,%@&)cO'ԫȾc2 wA7LX!ӗRiZssx2o$p~d BKӗ]f$'T0_sgaI, r<ES̲JPѿaE])/ avvJh  AL7GX?1 =Q$:!/T GnbI!܀GĘg$p;R +hF2YiG;}~>[t'-%{ 8l?$!#ACǜֈ$J%ƒ0 og#w!?ݬlԯW^)9 #LhDiX EY>;x = )'I~mqdf s( y'$a 8 .>A nO#6^PtǴ<> DjBa 9,_IE'k1mTg_C$N^/tˤɪF^|ɢgy rR4C`RKOzi\P!vr ÿkc`Zo .~ G;*WS(}eR\W@vҁ+2G?^^'mv:Nů& L/I,Jt&ռ^ߴ9_xr*:vuH.6k{n+vrAdh. ` % h;lў^4b6x[Ҕ;\kkF BBƊnX@K .y<]Ldd$}Msoʞ!1-摚8ѓǻ) w˯}rW," M7&٦L##ȦGk]8 4 >rȃBUiN N2pb @}S$9A ##Ȳy,#s! a%(; c@di©}]2Mޯ֞ dȲd"r,|jp{[p#t$ pZfqe(L #RGRNFFy( -7$Y,[r!5!erHy C"-TUMˤIuͺ<;,Gv?hyxƮ˜.UHk}!kY̵\q8~ 2P<`ԹOOq]0JK[|is~YhxxT\3##=`qkXpОyrϖ|G垗'|׬z'T[mBmC09$ ;`4D]%˲G-]>nk@g 'Q-<7"A\q@\Pi DBHԀ{2 r<:\`6`nOɻ|cǛblPk.}rK\%('Sz00:K2|],K%qhBrX $(#l>H's UAt]]q]L*@y.E|\$% {ۨol換|#w9AfSSVYur$rUKr}Ege; %.B%iRK\x~Gt{zX -'&N'7'I"I2v H? ri4$&I2*3IDD2|"@+#D 6` }u{FPeyVH~> |ehA%L J @,͹iߜ^BbF$4ݖR\$QI/[DSv(8@nM!MѻaC}ߋYlJ/26L0$J7}]zyuk˽hVCD0C ԑuI4rV=mF?&p4 >詚c*{:=L}?tjZ)2{$gឳPMí,]\u!u@:Jozsu)).wAbcB ;[?~:0B@G N@vvb$*OWK4(5qW$ @0Qq*faGE3.LJv0׀DԔ۵$ HDJIJv|&&kCj3[ !+YI F!bKp0ptZ@ ,.ěG#t{{N=@ܡ4{놀.+}3 U0d2:#D앃[fv 77&LLH͋J9-{ۉgvěwّܜ|d%^* '-$/,oF\]r@4/s(5]ŀ(K@',i#ܒh-=oUh `Z@P.R>- b> +B1:S\ X`Z@@;%&@9&J;=?>0 Hܜ9:K>nZAP,0-   e_,1/X\ JL H`A! =  `{7EFwJL H&19iXrCy{ N :p@1B ,@ Z -3\'MDeh pl5clLʴ.j8fS}|0 JQ}eJ?7RrcrIiw0 {%{Cxgraդ3WjYCP8`b|lQEm% wRrҀ vܔoC1b]KXl, gO`_Ye"`HG{n `؀ `N@ bC)$  P?K@vT Epd@?\a/@#4Ap_ OI.rŠy٠ pc€Lddq4gR JI0@UwC&@G;`u1aw xfM䚀 ~/ vd(ncu,ʀ 08Dq%W?z*o^yC $<@\L/ɼ5.qHJv¿^n`oq:xPo+ZH@Q^g(AeF|1rL(FG Gz-Cp(A.Dj.q9<!(N [':8≍a +1'~սRQ`I!\Q`I!^ЗRpqo5@2!fM~Hh&'tqVhHq.#(tRg@@$&$=WQ@ 5,))FyxD!)!;! hIZ0E8Tx0\Y rK Hdg,778, x`$u4Ԑ>x',Zx  ?g(o?BO( 3:1#]'NM~b< x`0 $bJGK:!p@BH$E闀NX <hh @ PXWnIJP/s$qr-jV^AV_R OF#D.q7B`  %>v&0fBa2$먰!=C`LyDA#,R9=F&" Rf0NtJH$~D@dM 7`,9%@4_[0 3f( R4rx$VKp ʀ KV[ 'LgG<;ޤdBxN̘rGPWFtJ]9f̌9!n0Qӌצ80 L@݋)=*pE,0Ώqf6cG||TVsu`j/lHN=倀+ɤ 0PBaFH}+e@`L+? `aSPfQв{ޡ X1#)A}8YAhIu 2pzPRQs`|* G89($KɖM8qBRX / ֢h IG#Z@ 1 gxj%BTݘ0@1uf(vIq)Y0 N 0 p[a7~Dix${D&$?H_9xnnR,q씀 I4 rK .Ę`Яk /uH~L!`0q!އ`…t%_:!<;|ܷ@@d9=$  9)/' uevr0H$|NđK )'8 B`' Ӥ ÃJ 0jWF&%"jS2W'v@u%\Q58“ OLI` YFȥ^`Z @{n;L jN&p . I o \ix0(MOe R@|Y 3sR0- 4 w7$/OXv&ilLG~R،6? ,Y씤faWdYi&aY?9R`a !џp Bqfpƀsr}nVߝyY;`ʒ@ DI7` t~MɬΎ'. @vH@{֔=!?|kސp `: nQ4Pru1 & qHhi j`; =?^bɎ' ~t'-I\ᛣɡ(KiPC8{|BQ`(MĄ Pa5WAnd F^j M؃Uɀ;_Q`*i 1Ⱦ]R1xD"i]`tB &Zn5 1YS  rQtٶP#׸j91@F BBƅ7#W#lW~;&~;eF=8c0CQu4Hl 8 T]Y)r8n~Ye : ¹}(!8ktL`;Hr%VHM\q58R$7dWRC0&_M # X>J  ɼB1: 6P`+ȨC@kz:!뀋b6!L8 ^#}R $cXl%' Bn^穛uZ$4Rv ` GƧ%HfCynCe(ykhnw_s IDK~pGuaɸK'CHe!k[6#f0d1?.F<*O_ Δ!.;?دل@ tqwÛY{sb>ݼ%(@I(z;#HAҧpz6#r"ä-)HpxMNÆ7_0 Gn|䢳V"^vj vp%`ca|7) ^5t-ؔ-8pC9 np8Y(y eVo#W$Ã\Baxi{%>Wrq,7n4nfGP/`Cif}| @vRXi͸Ǔ@3<+Dd3Jz;u@4(R,oel'0$ow7`tr[-&|,}@2I˼& NB߰}ɺ͆uH@ԧ/Y*VaY=$ߤ!Qr{nP5tJT(<~n+ swyue6^{%)F6` Nˁ@RjKkp|p t{ƖWR~oС?!x!ܾ '֒McĝYN:~{m{ FryjI;@ .p4@@KӤ7;$`τYhOlCo7 Ͼ@F=K5^w|z{ GS3x,F{t0b76k0;Hԭ`~^w0{ GpĝW b虀oHn8ءx(.aqNYfh>&`b{0^+s'DH9|*'rjF"1>x߅ل@i #T8ɧ亍B@LO@lS#f4VpX1bC#6 aJȂ Ȑv~+HjH`@b_po[w C ``U 04v@ ~,`1Ĥ3IL|Z }T47 r-0*]T1-(9Pg: =Cg +xV(`bg䀄:~0^)+eF5}w&9L\P )(mGl #@*9aRaMm !.<,۾lm@L0幎o:mrBekr 1 ܭ!;:7@cOs3*T>B63lIVm8ngO#@>&)т&#|(B~e1&` ' gq;!~"8' ߱Dۭ<(#Cb_Ĕe\9O$]0 !:VN$@n=;@ܟLs66Giq qb;wtp*G ;jwo%e ׷LaL8F 2PV#1qŒ|-D]WѸ2/db$pNrn 3lF 虷dlsn8(~+z+Xtcڇ`,w 0if jI S4~u MBL}-w {@1TH O,̏Pt7q@t2[2saR=kk443NfJ&*1@;'1?zo\7+P#Pΰrf/6;/T 0|^cs`LZ1|:@ l'^`'"gKt!G t\xTV?_V`<du:y.dfgO@(/*X1^pgM<1|,Wi؉Zf$>`dϲ=,¢̂6O( ő8h!-qXQ N򾙰\1!?NaDh l:Nl!<@@\DQ0gƸQ7P_\$.aKv|J0|.00}J&qȅ5/è((v$RC9d(X]r|Y F!? G+XPX @Aْ#M,G@+t^,j7ݐ>^'_ !p} & )ێ?e@- lM|Pw^ ap@&&k0@bpB_owCKOq:WNL?#V䓈7g(5 k͔ t8K " 8gǯ~Fd]@䓈0A43N =b0/sBRFsNFn ۝}:,ߔGG;Ԕٟע J/`y1AebK& HOB@t?39v<#Q/ ,YiKatr*+Di"u3e,QEJ7:{  a DnR>*OOH^ڃpN0'%3Wm% 4VPfA}YW" ht%!N#F%ݓHUurBv@Sk /4FO4oPBCFoԬn b`0&7 G)=}X #%X)a`P@`f!{5 _r@BM K>\To,y >PR1l!mu#->$ ́Vb̺|:g% k"rZ׼X\6eid0w@n-80:dĕcXLI);`C$s3@g8!;qie9>M+$nmT]t^:}DXi|Cql#_ @mTk!=fqvD4$ ?'Мg:)8@[X[T*p`rj A#(JILB2Pa6V ^(%N dW<!&D}8tE ui/abnyEH2ntVKB0vAuAru` K$"zFaX:ng 1,!DM eyFxڤ@ok?@(;/).-e`*GsjK*$d[@+(u@7b-;++dP*( _1:! hHjvK[e _ `@0z^_S7(j>n`PJ1&QZ_sL pi](]Dnkh A ^'XP̀,&_4 ERRw@VV'[Uߘr׀>|bR@p\ qr@q KN qi{bg!D 24@ R``5IC`: )ag ܱ@HvՃ A5GMck`P xfR'JҍYIiFqܝŀ!v[0$ 6.n>` @-D b( ]R=q0A1$Oh @1k @ K BM;lLJ+Ap+o6jޚɅvC !mA.M:-M3ڒIZ]:`7а1)ȒUL7º@"t@̤7+H]d ](,+k$HFvi1TXb\`iI+'}ۏos2 Bg5|ϝk jMJ`B쁊-;l.*8); `X %nn~#\$!ø,9[oʒ0fH о?|3qt`)qJ~_|Z7m]3h? e `O˾:Ѣ?a3 !|5 C¹E,b5{UAX4,L=i-2Sڒ4ZDfoGl/ ȌUEAOBg' p녅}!#m'}HFI3'rЌ>%_"' qlN-8+5jb Xb@a(FC1(@}h9C>0 r& axd}Wj&b}VOJ47~Cl}%]s<z6K9_pk7`:OiJUʻƯ{!s7($*6x\&z JFB|R4rF}?JkɩxkG&r\aF-1~ R鍮;4'0%\)AjsTX>KsMOX6C'tSHT,m[q$}*kfrMɘXKgCW*Vmn  8lBGN۝}ŒLP:]¦U˜K}8j&L.`rIvMڼWݯ?x=xkTaLÉ!6720\0ZUŧ xt[J⑈$ͱ}uN:pm׊uxMD%8#6@@[ tà #Ę_;0W=@Cq/+ `rJĵḐXf\v@6|"pRr*vkn\ "nohщץ,u`{-g Dp$~0iO`iNv9S{ N镹$r|*vr<<2#Xl1Sn wRe.~)t|å (X [!``֖rξ<*.М\^ F!b<'8. OȲ NAݛOBܝ`?XK%+Zyt6O 0} Tm#ۇŢ_iW K`!d`Oy9 SA&%/P\\{x-GT. +e Ë.W8r>>$pYI IX}L8r;!dj"r>TmIԒI7G*Y dM*irY $&CrjB䑑_CEñnYo3Yۭr!q/L:x'=KygŮ#x7<A|kOE -ƖOnH(~t. 4'{@?cE s_+΄şnpk:p=\^@%p0\Mr P{lf >,ž5~zyzAhH 36 ,d 6A'0(bp#[1 Y^OIg0RNz$ Z9Vwe#I3ŮjҸgך <5yzj;۹>o`fYu\p jπH^' Jy̋PN|ì!_k]&kyk#>jYp'\O=tY>KE*fRvt \\d-G ?!jBb*I H\_HHY@-3O:B[q҄D jH 5X.E|T[0 ƨL< ``gCj 7lXH"d1`Ǖo 2.QP0aAѲlu\UÈ߲0mFr'+juв\>/ooiY$ۆ|r  ۬+>,=2tHt%%&j$RL ɦLD]˒dLi#Jd2 &ȐW#ڥ[X9:SrZH? 8j 3&r:d4QTL$+MTQޛGp ]ђ?I%E , qdM &$ia`)Ni,dXF$`K:: 19BStA6?12f0gw*DtjhT / os?V#T*Ӑ ̤_Q£r|q>%jFGGTgWAJS[[ڠmBDS YMK7A8a$,lI~ /\ RZG|S6wpV'RH} (dqֽ%uOuu!0 `m ߊanjAu07x0 Zs?c9r@fß[&4CqKXB8ɀ4Ώ.S(o A?N oOBF?$lT p!O01$a Ӧ& 'u$<0<_J?LF` R̤ YA0XJa{5g~>c<}1+KlHxM$X;a' 0|C%#`P9$,tYÀ?)(UтX0\P'b&!P 8 n0%!|#p!|=l@D 32,4>|Z1atBn;M Dl3~G CG k"A"]q &,G&&@[3 &ۀ0<`PtHlF ܇^,‰U@^7|($,M"L:lO?m_H T \ƀp*@p9!łpbы-%_'!0xW8 I]<a" `1>h\`X @5_aVot\vv]]4.[!l#i@5"$ U CXP6l[=)`r|D &9  UKaX (QL43g7qP"RyaiJùbB`G@Pr')b?Q ` uN\ڔ0bhwQ 5v#Et -/8*OSr:<,A'*$_6 j 늪A_뜰Htj#ǎSܞސ@Nu9nF]5)iĠɫFl=*ƅHHGNN,D:oHBpI]RO PP9 2kaD3] -F-px`^qV`iH1,I JR 5H8Ƥ@f!ۙ% 3]Rp1p1;A`  ̥? `7 Uc$wL`4 {9Hl(7r %dolE 버ha0Ra7āx q#h5bf_ޞ7;t$90H4~;+,4$͉ub)$S/(4ЗmHsIHdFlTMKrs Ԛ`cbtK% ;5'/n ; 0,hK}@asE'm$5)=/cg@Ҷ8b{X ,-EIгq샖{TσJ%wS~ZS s,%7pdp*N\WJpqznf5 V[!g)@e*VŁt R+V'bzO`6%9Pqa3!RG8(e~a@kpHx g#"`BxhbGsQpghJdV؞a#3 GCa OL-uRCti$ûWnL>A+m9%"'ß#ȴ?'DEy8n~A 7߭sE- ~GNJ/n鲴Q[^GN^:f|~<@?B kk]:a% p5LTcNP9w 0h#qV:i(ݦ/kݧo?&a$zBFuIO69ZROX`,t,rttęK6 #qiC9::B";ϯ„Qvܾ:ܼ| 1;8whO[63tWeAݭ {ݧ+vsBn٥^ gM{*i=."aMAڝ$7F.S#,  AvaQ|x-0ژB@v0j# L*=mkN ~Ԑ/y' "Dk2ž')*DO@>O8[$hobM ;!djW">,I)-6A K#AܜɹFY $#i-"Kdy<BhvSRKdFuy<'O$liR\ǧĭ=--Z -ҹo6aLrX]K,V ȓ,bυKoB]Klf%[ pn%yAD]`2Tv"Q]aĆ77#n)7pL (#;b}ȚaX~kGZ|5Iv"3Մ\.$KK3#ߙQo=W*0p`/GGYwaV z|s˷IzހHÏ>O:#nk%xH>5Z# =&LZy>GA$na|Z N]]S 'h\"{pql">B-bP&`[13w5'ه Vΐղe#୯9(ʡ{Y6O.OVx,'E䅏 jZqp9pܔ@? bzz9?9WAvOB;'&N'n&NDi}W'w#d%IdLi#H">DCd rOdH#!2Hi-+u3pR 0*e]vTj'܇'UW/iʖ.] f[.Ȁe&{߆~v)F1=q~UAu*n.p.7ۊ{P/SImʓq\. SvcQ8Vgr_q6=#:N$$xP ,}Au+.3{RH%'J3DTIV:VX~'oa;&UV0V2-`?[jN"4PpKrhfc@RMZ@[4m}GT K&WY ֝fss 94yri '@a0lw$R_$<à ?: `FI)uBXHbНaR18'4#X41q/6@~y/٨ 7|7q X6fdBNC/bSЇc1<`4؁z'Ȳ0<e>¤,txp Mޖ.UM*ߎ5#$J7]!^'*@3.,faqC?a>O-.@q>C8T 6$ۛTJ 6`>qA`r ,K瓩qãi^` r<|U{Na._x!}݌s,G<aͪ:"$-#)g,AjAh?'9`qT`0`!w<Iz"߇@2PP$O?}y} }a H :[7Nv '0C0w]"yYΜUD`ib?\H8 KAVmKǑ7 $Emh8 c"&nfKcMC@d'L›rĭ`tD!5TJR6lV"̔7 8]Б a7>pn JpFh/XEI @516;|O4|P) x*_Z9D ,/ )I%0]H2 pc&D@PWJPns/{8DM& Ҍh @V H&!I|@ Yi /4(LBI[Wcnwٍ05@3fCzzF#`^Z_x2.&t0B`)AHB10V8 FmfGj9~_\L m8\p~R1$`jR"{8C~/@$mb9HOyHi)/c23GRuF-J4c`#Z8@M!(Dmu2zpۨA'FO/  &HEXtpvB)#>T h A_lF"uPJjO@i#x"AKD X4tCA/ Vzgk w<QK%XXE{yXq?*V;Ai0mpC `MЖ]RQˮ^g+iJ&fq"G㋗.ANttZ+egi;hvh5`?"5pD%"X`$\P[o~߲sI{l¢*> 4BhHEzatMQ!:'4:(9wpxPlU1 /br;+nTNwLh Ӈ-)?# pXt! Ly~۝~Ѐ^ؠ ND>{vOdLvk.kD'FN&^vt!y3,e8EuhL"5dvGȯ0 ć5õ>a>UJAT(`Ir)tG#:N!`Aē44CqI~`ݾ1PNW-JG-F&`0tXz1K_,~_F5xwApLJs0 l ' A ##Ȩ'&0`E(p da,g8>7d;L8ኤj(D[ yAA'#XNnRipH@FVnewUi-8wX]$y;#Fr,1%4IIdnU#9 dM)vl$Z $jyxs#4Nvo2-H|^\\#.EPgh&#;=3b~7xs,O U!bpUXX\=sz\Z=bSpD/Пk q>-(2.-T `5gXqب? }4%;OZ D na~]́(3cD~js0Ԃ)}j!:}X kBp{O^,$t̩uڤ%r{KA[`V޳g,\*dKk`!p'=GYpF\d-K6[{0C hd8fF@/OɼpT'<ȶE|Z'ɲ7 ݢ <7j̈R>Y&~Ё6M |!ZTOfxp  rx/ 'pX/:쉓%+.d$TinM2f$$2&C4VOL$C'ɲ$#ZK{>u3-' H9 k|P?mrKWd֞VDyM>!SctrdtIpp 鴗r K+{kgQi;j]@kP'$luD͕ܽ: "L"ɗ.)Izreː3v61a8jI({ꥋ']Jt#A^3Ps%(PA\BPA,Q`5hT玩˗(W@5aA6ojG*4-MRZ+hRPja>UWg*TWNQt ז CPd7<]@-aa-CknJ /=̏BXAA%KOee/$f:!TܸLϷl-CNJS6w'5"Js{ ,ҶH,ӕ'cͶû;ۈgP,ø@:´4oLL01ka 0@AoDž ^/*+&! |MZN#2^pް%@E@0Cy/\U5(u70QJB5Hn.W6x O`" ;O8]LcÂxki0huk?[Ovj-刺UY:p: !Q΁]JY%\bf, dha p-xi{B xP0>Ο߁u) @X3`(  4| @)+kl @p 8B,n7%i?v[@a &!`3Qj( ,gPTR M&rJ$< st5Ȕv䂓?@ ;%u&0 _?IO>Áπŀ8?*Y BHn|0[ r J@ޜReQԪ`mZ}C}/V^4S#ðU ?¥ *anI/I-ͳ@RKl7>/;$/*gl,.*F+g=B@=jNNK`^+@-TÅ8 HY48k:?L8XR(>sĚ#v<N6cr Yp)>uMY8%L0,|#u >Ρ5D(@QS5dr0\((C G4K9ǘhqH(H+Vd;8 !/ F܌& S;b^"#i(=wZqHOmS:ceJK<< gFccqp!(Au-4r94@ud{Gl>_[π#`@H0)܉7mO'A1/Hv5f`H39s€T,rh(y%̢"[Tt?>qdqx*Y ThǑcOA,:}Q`}'` 4Ĩ}(?LNh4ɠ9g@ (Va$@l.Afe99pa@7Ju!CX@v8 ]t`'o''~py8 B~kPI/[eKkl`^r50U5 VPN B ̜@Q4WNg8"B\S"UF2Q!.`gh( q]!5| JG#"ǘS~K >)MZ_C$ 4[|"r\vrRձOr+6i]84n: ?8)[tp/n+Q'Ba4oЊ({'`]3bNۊ9[8_3S~O2,f"s DGn`Q<!q:'-P@PUA2>vMZvܭs.;r4 ,>n,|9B%{ۄʹM|nY9|k9/Bx6K52aPn$A/Cp c^I,Å ~Ӣ<4~ N  K#J.\dyGdyyܰOeâ-U_Eh-^,qYbDbQ "c\'hÙJeuCH7s *5>Wp@ FS3Q !I&b5E'XHu0D@3˰5.n׉z_,&x[X1۬V w(I^ Jg}R[M޼I8cm)y6hp* /&{dK-AR`.4\ +5DBiҭ{PH- ˒̟%\"l"Ay>E.C.O?&y 8GX A:\uaҁp) |tz\[ Pm@,XM]v;){"d+Ir|NDd*I47&3IMd!Hҫ'&V!E# JlBR/kCp>+ S_&#' t92#, ZN PZp>&jZRK-mJr7/M&$v[ "I|D%ǁPBcҔ쾦@i hņ 5ͰߋS}KfŚ9nk~L Lhή?|uiuI}*a?!Nu! b5e*v0Jʭ{,2z=g/Zp)jLe@t^L4UcG? 3nPc13Ap{ߢ]Oh6\̏c0c>v ɡP̼ ;Ʉ$p lo2d HpB ++!PB`l301=i3P u)u(3"rK( 'G+iBy!?9>uR(y)>d~QrO c x0 }ԣ֐D ܜ=HOH` 91x Pg >\ 4 $ꑿRiAm'4=ğ|`2&'͒ưq,*t6/̫:s/TޞTbh RҴS޽ Q8˘'{5{ ZH,45%9%mkD`L0-  BB#HƊX(ЌFjIP:;vS+0 e3s)3p>tݘ=Ms ! IlD>Ӥ r> :DDA  th`"Y4A=( >NO(`LIѩ%,F.hC,M@Tm'X| O#" C0 Q 4{1apP0 NIMx"~@:Ԁ SM@@aj6Ǟ@o_ *Pd,Ea!} '!8ZKFe`*L?7f=+xrFL@|Zw$0OVx@nÍ<19Ik(ĉOUZ @ emAWHo5W$0ԁtij]fz oя$$znS<)?P}Fp`gW|1AۨIA9! @bžx*`AH^}J8*Xw@$ @ cO \'z\E,/T# (6 BǠ@<,~BJO!2?]|bacv{0P0U+c%$0n:4wnM0 vӤ3&pxRn6<> RP'^@4|^Y=>̀7<@ɀ;+(n8~`M$h?Z` 7! @I@9/R:to` @-A30 b~O)Jy=8U( @%%I{<_ɔ45Ii+@0zgf V@ z |h0">YRI0MF?I7#ndjL@It;l} Z00s`YIloȓng!Xa F`*ϲw6%0¡ #@WPn//7>1w18-oyp !TklLrXk9P vX:&I-yzFsJpYb}cjCH[_GI R} ybf9j !Wr )7?Pby1Fkq4^j@)OxuAd H Hd6 `B8Oge tt$@y60 `Q X] z<uX!tQ8{X-MI'rhuW($,+hbD#{H @1 ^d0&*tq,+ˀq'y'0D'OOV^vb@%H_ JLLI?DtFpL' _c ,L0(E,tp)tp }吉"IyoP0-@AԀw7|Y>`\ d aN r=H"-`AG P GY4 i_ a}!N\B>V@pRG v Q9d k _0 y0߾0Vbo3iHr7  @5rjQ$ [^N$pB: !u;}+XuLLg;^y0@ @ɸ3^`jPl|xgfG`:~|O̻@FP[mYb#uhキ (0+UfX&$ր4ICݏ'\@:a%(9rCqq>AIA53$Dy=mȾ &3WyВɃV4PbVx]@_:w㏽ J ۯ:DßC) /ƪVvNq}_q[y^L !lj?eZ#AD>P(t`BPF7:hȔ$P"Sb (-C_0A3 !"jw58zD `P #݈jI N܁g@`:,'NX`= C0\'9>@uXa99:Ձ؉08eDG !N!{ZNCO0 ~% 9d$( D, Ƀ֓ &@6B0(3 b hO9Qd RI@ԼFbqAQ=@(Ş`rv#& qr?") &  8P,j<0`}r@!^(p@G B#r-!x53pX ] &Cܟ*,(EvG v-IbspD(<W8f+.qdRzd2XjD BI$۹-.yso6%59ײ4)c0}]l A[q^U$ZА)sfZ3d?(\[}:0h̕k $. n[ A0(;]$t%np [=g&/ (@ NOH(AG 9;ިP,0GP҃[bo( @1_p}lCǀǀDV(G*ahHd&'l? I4Ck8 ¹e/F; ?tԇ#X܆;@C>l<SbS/n!(]m&BHM> ̕ AN! OA ` Ia g O NL@o"h[`_@@D"aW#']ŀjY}0/z@H a`nI`9ņa!D~ih @&|(ĚQρBi6&l( DȠE(/,`DҎ!S>&D GHb #q: Jؘ1ɋdBz &z3~ٲ!OMl)0lX ۸wr  ?i"} ǖLH̯[֜?:9+dwpdc\Jh,ma9 F7CCx=B Ž NYe?d؝VZQNP6uW+=aP[_JTIL{'agnn MQxf8!q/%p{,R%::(;daHoac J/0UMC NòRF<j(gLǚyEۆ@#g&bW3o"jQ<^G7yFOX偕/s{JqѺO"룆ش8FI5!0#Bc۞VBPВ; #eqa,s +%  `ut)_/JQH-swv~upk(߶06Q&l%+kr` ˞L^b-) W'weP:x>hY"v z8f?!k+y?!p эݜԠe[ĥDQy{a~{$ I2CC0$~y$g8I6V2JI|wٟ1w7q> AG>A_ǎ@#etoI 9`w^jVUɂ 9Ff$sW=(GpĝW+ X\`1` tu'QCx0' Nt7<M c0̵<݀#'P3USp1ơE$#nLG(s =8< 84~s6i.Po*b{܄Wn?u1}}YkQ`> Ć;nS3Ohq"5bJ}qw7v^r=!A-F)_EF(B8Y4+My @Xnw#ho؆r0AbZLL@<ԖĄE7P%*;.Lw/Eddfa bҞ1[-'k| CeT9g1J7&ZJ'hxL]6Fǥg,N cOs 1ߘlpnR>q8%-/7BGwnb@8k᭛'d7Wg&'d ^=9ax(yX!Qr30 L@GӐ$&CzMǗJ nO  w [঑@~1(y|Lxx]ڂH͜x19T@e.C!%b<`6bVfk Q@C.,DiBMg#`&,~?]?Y="*w }לY{g7 |_ czZv"EְY;"Y3~`OKhogs J5±dx@g'EKcz?9PbC"x Nn8Fl:a dM5|kH{-{BII۶ WgFp ‰Hj#"\EPP|:cS) bC; @@|#,( <]t QdH8i@@-g:ZR zl$8tFP:bR0Ȑ aS>/ph|;۾DK¢q: AC\/AxFX00N(a7?$FH cKF'鸂}#PhFp[gQa8l7(JGE] I+u;PnҶDbJwpj 3 8yD]@?-b4ð_{3 $`P0&vJ8"I *1c1#I …:@~[\? DMBr8p;?w'],/3%|0$<L?똄`ŠBX|:L'dXBU aψqi+@bxfd-<, A{/3J ^a?}̀xV+SuV_hЗL3 ;,<1;?]fWKxO0|l/K~ a*w`HW?n 1v۱~=t~=wk$CԐzO ox H F j7H)J ~ z푽'!p i HO8ġG\dAn-QʬT@O80 a9dz_rEʠ%$߀&!qd@b+z/[ܔI'Il2+EP "r>F":K17<$j7X: Iq%@ tQ!; ?^[a ߑ=#0o7Jb3g%p4(Uެg}tyx7'l+la-e*Gkff`1BU@1BaC@+(u_``'b-;) ?c* J:&`Dr奇fY؞}__7t`@ @v( ^hP@% d>|xw:u v( D`@{C/D`=*\p @ KmRLso @ ,~B ],v @v( D @&x$G s@o/ I'Z' @8 w|"A@ Kd唓w ;/_%@?`GAoM vd»t!gu6ZK&pSIZ$.`@vvETWhX I sQ]ŁBa]} z_: fRVXIXFhh|ibu5Ӄ}MAHJR#t;lP4*L,1.04]Ƿ@e Uu@>ugǵH@5&0J@ v@R~q۶s He?sMLu7c7B? Pa [7Ib` td3|RFi/: ` m0oǮAW`'H&2?Sbr}h{rXbLkj|_0G,k e!000QK؍thEPwiV20 vFLx{v+[hfg2#(bo6nzm,PhЫ-삜:awE)GH[E(|saD2QLܴ#/O>>; oiIxnhӋN MZne!X|jJJ*1`yPό\^-8UډbaX퇟U!&b҄ % [zF~?a\ލW>3@dZ ŁN|nRtredm#2@  2 m^Y{ͭ^/Rrb$0G,kb$0G,kπ`0H#kR;(ܥ)eOҲzxj^Iܱ)QL_:ck!I)Im!JP|Z=.d56S'MC$ )hi4ݲD5?jItٛd⟕U X ux}?/~yΘ* ˧L-nVn+#0 Nhq3(0cp7,JwŒ2WJ<23|ݧ;}|"u"f ەN>_?gp} `6DL| &OfQ=# P*smrcH8@H.`O'"L",a CmNەyݾx|Rk\C0<Q |"wȲ=-׃?~?yr NAEx<&ul W}0@%FB1RJ0jA L:d"a'YdyȞ4[j6S\h( lq7.]0Bt:_r;!djW"m.'UY7*\-7$=d,ܓG$dy<_C*GϭUǒ&ɹؕʝ#=y='K 䏓fyl?-7\5gj5Po@< =]DF:U%zOz\h_hFHB\h"MP9C:V fe`k_vFF*"\%o{!í D>o^Ki|a8Y蝅Y\Ќ|ܝ|'z!")S *8쑡Nl;V2$t@k0L) O+}JCLђDՠZ L ?,]" lGU*6\KZ>_]qa|dr}/喼Aay_.E|],wApR{ttEb} *r&TQ<*2,'r'+gEx=t E1!:kM6p!BDVK&&iRO7&3Iw.I2*|"ei">M W#Uqm%Is&@p $G9@Y`:(yX6RI qRy2BHK[0 LW&`97ɸw`5=oD:4XZ&YH3%*Ƶ$:R$_ʏ,s˗RST0{I7O2=Xx,EQřNcӐ{.@( 䀩<=%ph$H4QaPUEKHI` I&294vRH#jEp40MMQ.bD6]g#{P'T  tB@8&d:Fpz˲)J7f\&2!ט_f>"90hp,㻀94,R}h@Tq"HvcqϠ &4p9 4v`LH@}9X;4xԣB[alO %v tp@ʙKc|w TyR D!R`PpF}OaqBgm㠠fn^6\{PFagpTX Hn&d(@H`y%+H $$ A].O+/X&0"(K 9e qn>*P} c,6=X5iR~1I^WV#|M +8( ȓ<}]H㑒O'*zp@.#F$P(FJt3 \\9@S0 H:}:T `4ɏ 2eFW*ͪG A#pA`db7 iT ~WI?aA1`6|aȡꁄ@,#NrEz<@3ǘÜ Hǘ:v5P:<>#/6_lP vAÎT;-f "5 ,V9pD *L&Jo5f4}>9KP+oAI!# 0>C2S-Jn/a XY 0ұ|uAY/rХJ P`RK} av }@XK-ή#btNXԄ[||f^%ÐTa  00@Գ?o7 "-p7 *'ď B`q')`|tsH IH8X *gIH8 T jAJN'Hua4JTT9JG'Hoͩ R`h'gbh"r5>OWL4 վ3]OszԐ9 (+JQr,p'VT3x&p@tRO+@x >dDH A "5 =2Ip4𐂐_:`B vy~^六Hq: fg pAR5#3iHv D;r|aL/NԠu0 5vxs=n/.I:I8IdY{sޟEc<8VjLg9BN`:y/K{xI{1^Ĩz6~ﱀwR^7|ޗ5" <. $hDT,AML(մ4*[ˮMdKd.\r>K̟%\%얈'\\%U缊>y?%d>K>GZT%I\KGr?%e쉓%I$z r>A\U#d%IdLi#H">DCd rOdH"M{ JwS;4j: ڠnAKqS;&|C挺FgNA ]F"\OH\Xp &z 9aT*_B:S+ @ҁGofp* CH%,Q d),R.qy%Nx,fiy6F -<bd 3iK 6Hb xI'bA())B) ,bz z?RFMSs0& avqƃLK[K(X3}.CqQo 2ŝQ#3 `pűhKNzɥ9Z [#N&Pq,AE^%J$ @W MLtx)I<Pyɮ7Qa 2hbr0B æC *R\GH܁.R@/n:UmC-HTTF NFÐ}-]:NBxр$d2&vdDLvk|uD\ǭ]dB~:Ծ*JCJ'4*0L /jZ-:($?ڦ90쁀k'6Dtڠk-O8>^Yh-jX2xVAK4D!KHD.éuG䮥kSzGEg8R`ѩ0₴]thDLQJlPNnD5Au3o,o/,M|4Mrudq2_ ;P&T5'}gЙ.{pRBPL$R*Q.&7ZB `4 9Z/:H>V5s3toT c_ KN,ҝ{ӋZqu G5>zhS"Hp`qVKcO&n6PvbmrX$ ])bV:#_6rӀ*PiHU@$ d+HUm TC㇑iu Y%ʁ48.<o8 \cXGp.&{Pڦc{,  k%CJ8O 5hc[*K"t:"l8*,oVM` Ϣ\GH&Œ\Y4Ѐ(1o34 >44}$<_rXBy\_Ai+݉l nLiUչa=p<>je(,$ (St9gN(9O/ CYhe~?Ab!f ҅aAno1%܉S"P`H>v`aATEs8+ܷ3SđUC jG%gF_ pf?&E#K)A<AT£R_|,WO⚀2]` Ou38(ԱF/rFhx 8(.u><4~<.+9}DP@GOs7qbuL8q=L||@_8XuL5`$0l"e~1N9Dx,?ER $~{M AttqOBw0xy?*K Ǐ9+)G9+,@VKI Tش-rZQA%0i0ǯC$3^L8Q0c`8  C$Mtno:y`4Tv 3($`C["z#H+i4t'el%M;eDݾO1V(m^;2Pݓ7EywZZlyھzo(wa|ꌼ'or9yO!\9Wak:r+\AG-]bA$,a>hr / KAvU@8Dpν*N۴ʚ.P 8ob~#~zbT'\]! s` B ^۴ߗMe׾^۴GDVGQ6A,dyGPjiQ6GdvA ##Ȳ={}"=W%,2Y"YfB|蜫 ,`YcYI$'pr /!v>OE}Ohڮ( tQ(_7IyFz}oJM[XbƗ7r|Wno A k%$W II]0r9C gN}MNNa `X/5K{w k$pE'<,*5/vpࠁQ5ȐN 7 "! p Ӄ FYSZml {}=l]>]{<2z%|#,\y%>Eȹ>K6Kk.Yqd>K>GZT%I n@{e%'IZK^\$I&NUAvA4ɚHl$ș FY>O2 &Ȑ"-aW%cvܕ_L!鴿Q.5s^HpԶh `5%'{褩 ) qgl6>T v[gC@7`& tF@bCC[ akP}laق Cp&dsZi5V`|[c@?UL.LYb&FU\aն@0Ĉo@' O7I-`W%E%('6JU5bu3UuoNÁmvl@2~tֻuM*vp"y(q)G;35bs%=L+5Y4J`ܐBX 8+ I=^&p ߑ%1 ` CJ:-.F3 Fl,`)%nHDJ4FPbSdxi9c6zRpT+/΢iP*7"рܯ >/,*'(qdZ!VMWP|=D ]L&OyZVP%ACk 43lCRsN`00RlN 4ǭ؋`s|a8KJܼK-/8 "%@;&rJa0H B !6mR P3vq⺶x?=VfO+A; IAC*F J=F.paC7$p2i1#W4&rd`c蠑"r#٠<;[ b L-( H; h@NRJ;J';)%~N .,܇RI "qv  ,)`% f+bX󰿬AK)K9& Ldt' !V`H αYQGJLSKJA-(Bx;T0 9`M1wgn( (YI&9VPB D2q0CJn*+'4:[S%T`h3hܯ @Ȍ"B`ABH-LێlZG%XV!M YmI6p`x7P3aԱdD S 9/ _ަ*PJ4C%'L$n7|GS2s'ʙ<@q} =yb,-8}`"0SP1ap0 q@#I`C4 `M,[{ml=' j"$;~2 rr<ZC /ŹL`f!(h1p)i| p-w%qtQ $I PҸ#@xjڰP.q]Չ_mgb ; X_ !$52QxhHH*<Ь<'s P O bRQ1 aG$>hh.Ұ})J8+X@(q1 !Rr-aa1s$1rVF"a!ƨz N5L`)'11vA%@n) `7s2A=o\@4ѣõL-e[aXQb L4F@;`#6- 8bPm)fDE=#l>` dDl ?h<JONd ((\D@:Pu)2Aur}dO, 03h@*4zրf7 4?8V 0 6ԋ%f|hhHHRU0H 5%Hѳ\]Typ`Y\tzjx`_C$MtnoLDz-L=7'0F8}!,v`rmj6MZCѸi? E׊>0ġLm|"ΝCis_1j*"MJk8w^ۚm0FDp<B">ԘlTvQۅN;/o/uh!!=Po /Ĕ~Q3vuSL[~>ޛRjAE0k`yFDrܯvN+oį]t1~w MT'*+ 4,qqv-+qӶIʠ`\(,4~\륉(Q´btxԒZEa!pX>ʕ:ivn^]7iedtEdy|d"ȦGˑiZzGdTA lr,K#,2=vg^ w0qŧIˬ$(f) :``6KQp7 ÷YQaJ!얈'{">B.ODMdMM |I>JT9=2t>Id'I"I2v" ɦLDd&Df4|d6DK#׬Q7(WGe w?*#rb=4mXsȌ k`CePZP'#O !(AatK-NF]BII,$ݖl.+3{$_[DS@(LRZT+ ppt94ы qHfv<P59a̻s_HZvOG'@@C,3:7|\j=X`ӫ(!?HbPP F83d,lQ} 2vÛVw PiBI@z?l=@.&|L@''l/,ux V90j[ : tyYQt;<5IW8P(B ;ƁR`|>@K%0ole|3V˾) r"d&8=0: p 10怳HYXj ))Yb3cᚷ]9 >$O"]+ x)89BC=?sfD $J‚X: i/Rxs^nd?/044!h|ar  .}{ M,0-   IiX 8 u Jn 8p(X&֤=)eh%8 ǻ?l  T $:bV eM@ZRb@QN/5`0\@(윜5}} BC7ׯY S՞ Pm}=( y'X ^NG{%&!+(Ndm6f՜on3Okྏ^jMp*?7[ V I8~wJǧVSɊ/zqvY`8&rZ@O ռ䓮;=$qB@ p@W`)0 o] &\hZjO!h 2A P :.bK&4> EzPBjV&, m !tg+skRB{zM !O @`% ט$˼%7qp%@5+nJ}p`p 7~W= pl9'b?=PR1?|H`Whie倘g:!7|ұlwDưAg(1?]AG_eYoWPc]i;zy_:fRrNJ\_xe12I/f|bWήG(;XJy%""Nv$TL,5[v0&=T|XoݖO 0@: HG K 1?ނ\F@{`:HUԐ*GC? $`_ap33 K0 |}1qR;k`iAd=XD(JDk׈^\BRK6MOt & H ` FKLq #aLMH;jc6x\%?xM@ 780H 1I5wijހ |+etNY3j?̚(*~ y: <&+$M } @I@T?= ^_>w( %^s;}%!?6"ڣ %u!^yp@(X\bRr`&7GնA}''uEprb0!%;%Q0DVIPa0(@h$+k$lLPB" 뀄 C2/ \ƪC gACFBS)m**Df;7Y OK|ag*R̞&Qea܏_ϸt62|@Wdl%g +e1g#H+/B K-2f r8V $jS%Bb}֐ @t,=o9F4bNŀ=Vv؝` +8o|Z1nM+w8IW|}tC/䄀o@41L!^ M]̐:bM &&ɤ. /(J !'@3 zkF8)/@L6q lzI`!@$ vTO/z%ug~(;, Л`!'8E\݃ !/` @(,~zIO7܉|&# _1 BH_ q3&G/ڧFHb`Ld q,4v&r=@nV$!ep&H,|5RV ҂Vn %zk7qT;ڸggu 9!nr$✏e ba`]I0XwIL=0]$ xA h,V;@$~#1 +&`'Y`:)Dzy=$¯2R/ " ]ŜG|74#<'`H‚@Q 9/8e>@Nf‰ḢJCpia43  Ai1Ed% CO, eI+%:{+Ԁ1 ;}0B qbrA Fk)8W(Y 4D#>&|y L'N="^1D0(qi(0,’Jk+I!$ u@0_W"Ox) TX A C)mVĔ 0W=T9 Bi7&H|<3zI؝iɅTO@N?b> I o$"-,D!p Oa:QjĨ'7I@``/"&x4e" cH`!frd?ryD%@b SB{BQV1:&!:L@^P~BAtJ (Pܝjw(9 \CA$G)- 搃pӕ$=8X^bX+,{ydA0`$4TSA"l,1H#V=`7'A F&&I pHLA`v (cqbS F Z@1!.%G־zI $I`Q#ȓo5tX$Tb 2$}lp+rVVD{t߁@8" @ xr7A!v C ܋,%ۈ]$hb/ߑL(|{l.ϑͅnDw8Bt$RF|uىQh9C*A$$Tx7upՌ[3w'9H±.KMIWeGE0 K8$pR; mr~A ݇a_ϔ;ȚBCCzG'p`%8P^tNaF!ߟ|=Ʌ N4ho߱H,wMN$m씉4-vb_P IdoȾ`BؖBߏb`">ۆ@#4 ( umD'{)I)!6=؝Y#bD/tnrC '']\ 8rI Rϟd Nu^Icqg5]q 5˿/eF 5ױ 7t#]տ1r礴%|td4u%|ى9N}jX 7e9dns; 4& !H_J0ՔM f=v/b:|>(1!ﺀb?Phb@HWY` uBKGIe AqN?dL'zSUOb= N)9a 6%~/1_ݼqҾM,/:uQIHWf痳ٗgP:'%68B'd ;Za!#DpL{py%'7L3Od4m ._87r0 wn, J@5!U7_eOGtb;v7B/[ndD@h MB8a_F#@1 ðlkݘMgBn8Cf'? U 4Ǎ/b]9)Iq%`.8&ZLߺF,U2 !/=Բ314X {VpF nގVG)efV@R$ LпNC]',eMrgIvw $Ӊa-'=țOFatX-DOHo_&_pvdYD+@371BIi/p-g?B7ٿl=WbB i$g&_y"Ӆl,7"f%wVuNpSG!}+ Ry/(hq夃DL,a!Mv_Ç8dJYĨSof"s N`!K[#ቈutrNztxaoZ6f/nBCXZ5Ɉ|T?s Gp+vby4o9n 'Ʃx0' V`DÆb{ L?X<+.|*' cjF"t 7h c"P0S,.őYIu0{~P|L] NqFFanTpX1bC#vqz`D#XvbBHU*Cuys ag@ 1>3J YŰy˕ny> 7| b}d39k=de}f ¼_#ˀ( AǁaB&P`{B}ӇG-¾esH_ i NF1`LVnb f F&ǨXu[z(|Usw?! 5݈HG@(.. ){c虎+6?rNiBեq,s0r|L]3#+} > 5S6͎p:RHenS2) wngf#=SL5@bپnߣ8r}& ^="P e9yA[iP<`IF\9O\'aE|zILGq :IwX$݀6Ge@n PLB K0r|" a{ٳ *Y8SSd5Cb<$î q/VA ##pw#`&?Xt X0*WK4xmjI S4~<$r;2wXр~(92 #lc^ Y="*w }לY{g7 |_ czZv"EְY;"Y3~`OKhogs J5±dx@g'EKcz?ŖGl,.1W HvOl8A B 'hЉ?J5Bq;+7`0`#hZ n %y(olq>pAX]a ?R#pnGG-$RI 2H]c9>,#-@,'G4a0;p$Xt ',/ڍFOO㑑 u´]qiH'鰐t+KB1JnL¶G"@w|;*LEn .+ @l0?pGpb8߀+Di"t$3e, (A mD=⿐u7)qt''$ pAv'Jێb+db6+Qy3>+wT:Q~E'd#wqBppZ Q(0j&>4~ŏď&bo2f# OT JdSH+ E{ z ?*c,ɉ`GO"3[  %^p$dg%s<"s K@?[2EEQ0GW VI^>̂O' 0^B_c#{X~ l : .±XL9|azKv@&ma`Z^<܉|WTh‹$<XdwWaz\]P~*x*#`_=ttE<zCc 'oĴ-#$%$*#A7t`=%q?[tX/<L( i&Jp dAn-QʬT@O80 a9dz_rEʠ%$߀&!qd@b+z/[ܔI'Il2+EP "r>F":K17<$j7X: Iq%@ tQ!; ?^[a ߑ=#0o7Jb3g%p4(Uެg}tyx7'l+la-e*Gkff`1BU@1BaC@+ [@dbԂҌ+dP*( _DrHi{r3,O>/⯃Kj @ A;/4҇po|*]0J3$ {4{f @ A `;&5?&fT`@ @91y0fwH`L@@ $~ c;"f @ AW>Q@K_ 1@^N'րP@; ` wb C%rIЧ?_%@?x`GAoM vd»t!gu6ZK&pSIZ$.`@vvETWhX I sQ]ŁBa]} z_: fRVXIXFhh|ibu5Ӄ}MAHJR#t;lP4*L,1.04]Ƿ@e Uu@>ugǵH@5&0J@ v@R~q۶s He?sMLu7c7B? Pa [7Ib` td3|RFi/: ` m0oǮAW`'H&2?Sbr}h{rXbLkj|_0G,k e!000QK؍thEPwiV20 vFLx{v+[hfg2#(bo6nzm,PhЫ-삜:awE)GH[E(|saD2QLܴ#/O>>; oiIxnhӋN MZne!X|jJJ*1`yPό\^-8UډbaX퇟U!&b҄ % [zF~?a\ލW>3@dZ ŁN|nRtredm#2@  2 m^Y{ͭ^/Rrb$0G,kb$0G,kπ`0H#kR;(ܥ)eOҲzxj^Iܱ)QL_:ck!I)Im!JP|Z=.d56S'MC$mkh/&kR@5tHynoddg/%'%l6u#al*.T/Nz66ig9۴N:LQp{D녂:Ygpp6MVf s 8aʼrqGHMة׊~8g ̂@"Xg ۟]Z9rUU'u2\pXt" cfq+;zηeXm*n pp18dպ I $$g7pn:! 8qK /kٸ:]*NӶ۴ms*v*ivӗs.:"=.Ed Ȳ)yn)xˉZ|je!{ån \.w>-:I㞠sX* XrX.z#K upd>6 %#BO>UUNVaC<>gq-rNhrB/=Ҵ]-h'Kl%\#*IVK E[@&OdL%i.OɹrF);HAdnM2f%\"d3IUd>DD2|"@W"{}IH T`m`E>5OlL&p%<`n8ܰ2`i3'䛉׃K,'( N n=><*Jǚ{bnmnEچa00=F(cJ\]9|}rW&!,.&=u <7xp@6kiҩ6ʁT q'{Ѐf8}e(ԍc2MOO>l$`Oj< ^C?F[T _ ?@Adj=yxU.ߏtX,DE`䣑7ozw@i\(6%Dyq@*M @Qİ1P7F48e:G8L P؄q$$ԂG(`AG  pG~*%/aY/^6͘.>Usi ;:_x|!OͶc|}  |2 C`Jc8TC l2!!Pm}%Zߏ]UM;0Wmc-u\xrVyil`k]9K1ǸwЁR< 7'@rCOHHm J FJ;~b2=yx~@ָPxn '[vH윀?!ؾ,_k1i|-RFcC"GSPc?ԻNcXE #l*@:NZjʊ%;XQf0ςځK%T.IfLJńNh.*a}[ ?@G丈0hhzJ a JCqj.UtVO';XuPh/g'XPʹxQ@" n?'pM.Fr @~ , XV[0܋S6$` ' .8P6?Yp 穉ag̐ppZ,jb\@bnJb,*RÈ$H_H=ȉS A{ңX`a`9A|Ȳ +$jEh #*k &W y:Y ߈K(XEL^` ?L3''{%a@0.B I# V#LjJ䁡:JlHpb  ) +$x}@=~8Y:l=L:$piV4H,kש c(&3G@<@@#+Sq XLFr‘L>BH%$p$I ad@ܰ%% H@Ը8S@, ta^HK  F|H561í!`ʨ@p4J?s8qo Y,X|(T6x"o9./9C O#dg)ac|-N9#XγA,ʼnрwevG ;b|<5c6~, Jv0N#x H4$33֥ub*8oj~܉d;@| xr*aWX P9#NORDAn"=T gP9".eP y>'c渏D>#{([o OFXoă?QtY| 1:BKg85zԾW@1$= ,W4ΡF# 1 B*Q,,`p?L##Ӱ;D'7P>S_ ĎQ:~i>0,,cjfw 0.7I?<LP2jC;DQ!j`7j@i GXʼn{xd~y@+ j:ofnx T_H7Dlca#3 GB]7i\ytiТ$8Bqqt:ՓUZ+'?Hty.l4\ټ +Sx$|May|}y%y[9۵{jCHvH@V`e<,b@%F5.mn..e~:ݷm/ݷ*N_>׼"/Κ|syvl"e>AdS#Ȳ: * ϑ 2AܜɹFY $#i-"Kdy<B]>]vH;GȉSu/'/Ge\M0]kpURqNKNPA,A&.<V7Dxa&] + ˚?"E v+Csދx5Bh#}Fx4 oeXDY^YZv\O==@Y$j@ ĀYMq~|\gnܕkWޤ7/s_/_%s&ll%ˑ.GrY=r="a| $^hmr~x}E\>JҤ%i*Hԕyr{"d+Ir~Fd$I&GiI'NGi4ɚK$ș FE|$ &Ȑ"ru]( ]G:i|qr85\'lb D?^1t&<"1)8ASsO9 Q]`mS'vp3;H&g$h'2\%#Gwzjj` 6XmKX/Ѻ-mU#`'/rW)O@†y=s791E7c8l%¹[a` ,V;9gm0`1$[9!7 #&(!AZ Ҁ$迃Bjp#}`CP1$Ō, 8sNq{%IK9@GzI"CzwuM-c`#?0.fVao$d^q:  KOD @LۙY+!P @*c@<+X `#bDKLm]88tP$UMf`7UG%],8Cũ(Rq܉G'3\py h)#NS !CvJ iAHq;p -᛻_~|ʜ.ŪkpMs (8}@ Kfi9Ejt:w;ȹ'CK_Mqp*嫹xXGpxܠ>G"p9@[;a`:z@ Ł*0nax J5uK1F$ { I!T r0F0K#i $:Ap;XG렜C!]ax0'@b R` `fféEta!T3; =@= _{ua'穛p[q@k6ITt,@epͩ U0Y,9ÉjKaA9?^øXަ% 2'hG֏qk#>#C<ǺD'ݍ7 S#Tt8f#C4<8f'O̲v1y;lN^O=^(+9YXIL^0[`mB= ɜw']c1 IÅ2 (.a`/&0pthp*c 'D hTHbX3 [4,ΧxXgB [?psԶ_by!$P`݈$p;SA"[f?iFxxqPjc&'ヹ!l):@YS!vj1/7SBq }#X1?q1;c < (s-j'54ja _d@`9a<-n?Tqŧ0X?Pu~#dIFY8 S3ha^=js-lj50YN(K|$SABFh)f<8A ?Pb1A f/h?@A .`0HpTh `jelx:Ě<k'4D"T VT *D@{dz2pu 4Z# bOu(jT0c`#Yp 4@jhR ? G'MH u%,@7@bDqQB6 ch `0mpBے;6M'dR3.h> +@.b ~MxLf\@ļSמ?Uˑʥx1AhaFlSWbe^ O<^ l69KN)YaN  lq۵w^+׊u{5;~ߕ ._:r>L}SMw׾JEVGQ6A,dyGD ED ' "y*"\OY<"##>DR<ȔD싊Y5+d|$jIIdnU#H ['2nIIY $&G,IO!@B6IS|~CLNmHu>ꪍi=|{n]v#X/Qhz.喝{O \,z%ƫP莗X\UďK'nj仛6}{=d>Kd-.GrY=r="Od\\%%.ɲl%\#*IVD.ɬș:J\'I"I2v$AdvA4ɚHl$ș FY>O2 &Ȑ#$к*ZW*,$x" <>EAჃ1x3MFݴxIy£.5ɶܩS^7=&9|y'I.*߉!šp8g{L?AXTspu(]䌒JcJ[E#8 `#$@iafJ'zdJ Fn;aJwB5 <)S1Ȋ,_wTmW:Xaa@3AfX'(qWPԄ +\FP0T/9Q0.^3}üШ 4G0,x fߦAS,xoar>Y48d @`m:Szy_] C7l,܌${l8wv`q:H@􉒣9;#)S_(?B 8'@qӨN0DH'I` EÂȭ%:'pp"U@7ṮD1,(XSy+ݰ< Ai8޳ C*g c91䓈0 ` *(xtH9H1{S=dS:X `;+#tpj L-z[nnJ`t` wGRЉmTv'@78@8+cS0" 2ApR;[DI8f T,T>JߑiiL)9PHhurA<ߛ|@1844hp!a=,rVDKeV MI L+<8dGrE !c~ <`x/8Bf$@%%paY[)ÅCCOULPs~D-Q_^"ZH i"@X1ap-jXEv`Ta(ÂGSކn"F8P0×ջT`x=dR,(9#Gc89ncb0p7>s ;-l%2uL@TF~0cT @`5vqu'cI4 @`j45|mQa.7E8֕Q`4 :lOSNàaF' \7E<laG@C_W`9% 0(}d8lA9j[F?q F\ JS=R|?tTTUVRgT`2"#DʎoaQ4y_BKnRkUW)2jMI6˜DtNrLmx.'˥'eipV#xG{Myۊut62 Q'&ND<4V]-VP60+/ ^n)_8\䗥hY8Gt^ nᶺUkr~ux[;K%_?%qvq|Edy|d"ȦGdtAdTA lr,,e⾞< H'"Ri'x 셑\#Y'#RJK#r@@9rJO%Y')2<8Tu*q׍|Ձ^v`4絵I/\Y (uK9x3X.vO?'p]G'}x ~ <|O i`{;WU o>Zz.%rO^G>Ϛ\G]k'W7N%)>n4^zIO"|%>K#-.OdE|\Q.Oud&M |I>JTYrn,z ŗ9 dDV%4$$TA~A&i"IL"d3IUd>DD2|"@e#t( Est{N+&r8b=84kۤgj5,0 A% YRZPS×\ZKAY)]&fI%$v[  "ъI|D%P (LRZT+1 @0Xhņ83l;wufӖ˷5 FOGg '!Y3:7|{Mɮ δ(~hp*MX֌4RG3V#_"V#Fei#cay RE`^ 1YEYI,,nͯ&BXPbNqz3qD*W$'@Ne^s. *$Luw9 T/d, }t4>ϵDz@jZ潟O*%K>RLU[kMIrś}9EtiJZHHZR7^45Gnט &J BiXu=r n. ;ڊ{TKėLjf>!0& 3$D-Il*!|38p a($*>f07-'u!dL NJo!%&7R@@Kz߮ذ @1?ߠHVpόB9ZC ,5%h|0& }h ilҜ'%?2 Ii;ɀT p¸ČhCF#`aJL H&F@4YnC4{{ P C0 P ,-F+ATfX a t^, C qpJ%4Fb)0,M R`Y` z/}_Y&L#ǖp$Aeh/n;}5kpD u(p @` gbϡ6&L4Cl.`oE6!/4eK3 ''v8b@2+%o{` 8mvgyM% }=?f @n##mm-n&ɒX mIpZMIvZ^4t5ސ " 9}x\X i$Wk$s{R%2R@dDG ߢ=@@<ԼC4~,;'/@XꒀLrT>aZ\>P0HX3V.nC+Slm͊&wZyw'Di`& iJ9]or@+KQd;2Vo[ @[N94Mxpn ¹|eFMVri,߭i0$B,!DHW& 9?WI`4Xr kQe2!<^Pa rɁe8U}\+!ĒL&d;^"t6!p]>ZqMr8豈Q'ي,iRd$x~a43bҗphaUbb '`QEXK\$`ePTlzJ'Sw0zK8 WW [h 9Ӿ@tCA~#9yIǡ8;. @Ph ČT,g߇Swpv C,U Vu4R p؏zlvz" c_ RA@T@,h)K$qmK\e@|7H !taY0K,FPf-8l,ᜐV(TA1) a:W/x ɘދQS<˕OB%8u$3)B~j>`sn,d Q fBXQI8@˜duV ot(870(Lx~q^А+F%!VX8C60I; ac D#*\xRQd +g@x't] +?Uv^{@]d2 D{v!b%7q44hxn"CyCdŒIJ00bq9ț 8IK`I/`g@ɉOG'v&4xaĐEEf@ 7ԑrwҪB'HΎHH$~^:o8Ӏ!aEy|+EOAU$9 H`zPA$p$d~t:N ဎ zx @w@a:OO@rXf`$Qp6Aap0WI"59/7,%btF%=N!b xn('ɡr6%!JH Нp~I,G*D!`!D.LLdЭB+u V#xA0H:/]xf84 @d|q`;1@@&6,2G‹)$ d!`r<HN(d &a`bBĴz 5Xfav@ 1W:!|)`BA@`N!I~O Eր 4I!?PBx~@xf "Ԍ3`*LD ֔!H\Y>J $q)B(p*C458(/W z?/u6NۤY #^RxdjWjC%Jn2jG8ԓSǡ`pnt0(HI)K0g@iXGayBd/E:9"؍9,{,3$8:Ԅ$7`%J $@o`QYdaf=>fW6)nLyk0;Cy߰ 0n9O N yag~ Gp+vf|LXzmw>1Ԡ?!\`:f`A [º##,Cwt;5S!HA91]Lbb84~s6k).%`&'G:ITS~%GEdB7gxB̻,+ gEyUqpvYV C  vX;t1ݜH< vJ6Mv`mJ^'(#ұ 'U>yNA7hE;qLCcV_ 촶}%L`3YbnL+4?8zɅp&`r~E_2w7؈F8%~~(d1N ;WẖRC- $H&" Y9%`AX(s7T*⇓Ec:E8U&~N ˻>P\_5DžEcTҌ:y.dfgO@(/*X1^pgM<1|,Wi؉Zf$>`dϲ=,¢̂6O( ő8h!-qXQ N򾙰\1!?Nn8 M4 3X`ύp? ME7`0`#hYEQ+1۾On3 udpa~F*p:8 i ĊHg`B[dj`:>_& Ayہ ?Y>a~j0"~ 6ZGVJA8MwcZ\J@JVrf94V؟VTl*`-{wH pXT_'Ra908p+0  &VX#I;!,i`7OqDj (?Pnl!'% H~<> exj ñ:Vto/',o#&C=+6똄L ΂Z$|:ْ*,f:hh^ TJ%qv*C!: &ޡ}_V7@n>bVxhLR3bpb/Ԙ"_n]V3|vMa`@V|GT-#KHTY$ @% 0.q. 8 ` e#GH])/ ~:pH < Ko@;|2W1@;dNJdo}0@@.!XN1(Qj - BH8M9UhL',C PT2.#,5h E`Ep QYD0EshaNG3HPbV v &P$S&Ai.$H$#d g[+qV4AA['fuLFx ļpn& |[ՌoO/-p]R %%RbC` (J8L"h%eκ;8@&Yŧec~5@` Q44iav'uF_x`@ @v( ^h.% \ro|*Ľ3 0J G;ϡ_!t]5@)|<6 @d@qT`9~}̽ @v)9 (/$yu|.n<D^N'޴`@|[|pBh `İ,q39J}0Ec ڷ`a]³gPf%˓F8S`Vyl0jX;MFG+,w r$ 0/3)+M,e#4Y4>y`1: &%)RL@&RJv ̲P:cb:c R% P bN})?8 NJN29&&:t웱( @0K-V1@L0:B2#R`0l6٘n7O| ϋFmFmP ±9wZ4Zg,1&}5ߵ>/#5H`XW(F?v4j(;ݴFZ#EJc<=RFH-4ZqU17 xXȶ(4 UT` ANp#tdW@0I&dZ'Ÿ}D@t4n7r 4`iŧr&@p2A 5LY %f%TwM(g.D /wϪD±0VvϪ1iBu~-d?cgFit+U2-vLY7y )J}9WcxzD2pF6 A| 6֯G,i=֯)|k1?#51?#5S0)H܈OFbRvcϧYx-^W2SjGnbkC/Iu&fr0>fnSUlBQIv^PߊLqr4?8-wΜRsteK8pN̙+a83?f7M3x3`a~DliSO jH*'k?+rS+qx;R۴ӶӶNw[N_;r:vrN۴nTdyr+ >EL"Ӷr|dwr NAETENOʙ<"##>DR<Ȕ.O#qW8 .Gd,JY-9T&T}rN@9rJ\B-9Iy +FGP_CA,Kng-`jeb:%M&6H@^Do3% EzMr]f>,\|Xzc[nh,y\ h|`Bi/vENL xy,@? V,~y]Į%wyrϏ.,랹g\\ߧj8L\|5r||קv]ky>%>E.K2|G]dGȹ=">B.F(\d.B%iRO$nrm\DV$i:IITFvA4ɚH rL$iU+IlW# VW"h]GʦI`MQ0ݩHޠE*Y"HjҼeadHdq!t pCF6T`/8Q4~}  t&v8&M\HxA9 ~*@\?ءI:щ5+ %ˏyr}q> .>}s0q:]DOa( Z ٶVO  Q'KSz\6F@\HvkJLgκ63+nnU>JIA H%^s ;SmP, (U1Z :)#tsGA""H% C|Haq1|:Dx' b)W`F0Pyh]O!f@0,fZAa+;t'T%}ɭERaEmXi/σy"@1c{׏   ’K4X&hV~D8.B 80@13t<Ɵc'^G x#6N!ȵV!؋$P bt1`uA˩WP"#Džk(x;1 dx8yAAC28|8 'GUL#6$րi9G*ƀb3T"rtO p"<-r>a{ s`.'u;f8G9skDp 4O #P8YC\c@DP1@Q(-̩ NqG8>xj q,wAo@ ϥ*c`ju#|>cqLu $,P Lh\ $h!u2(l ŋ# ¥F[`r <{)Pnѹ+|PJ/dJ3 "Z OXa} <yUG#m$*s`n2es,`uEЀkTX?[r!|GDhQ[$ >A`p@<@E`@3rp0!geE\_Q`  d5jApV.8#@2ڣKVÍƩfw < T95l" G R 5#0\`zȐ0uY@8$9 jn(`:34AAjA']% T R12p a)@ Vp j} T$A iTe˚DDžO H < osP :\'dTodd2"H mF힞"32 dpBBlk΍(BɞߛuRmA% d٩% t~){>Cr>Sp3eI1#72g#c.aI+tA:lAlx~)yߟvn5"`7$Iq9(ְ:SG7_'Μ^~8Wnt~u_Ӷ|.{|siSt]T<#Ȭ">AdS#Ȳ,I)-6A,C̛djK% rNAA'X5kϚ+\o|˗nכ;VkG>Kd..Gȹ%fO&Mr="a| $\&r]zY'r'+J|#k&}DCd rOdH# $K[hyp'=X OU_o"U,bT-40ҞFQYuN*3TJ]1(dSQ+T UUHOH 8TTjj`!M_Kߏ{{~>VS%Sh ԗ0D#]-A,UG S'QtI'ɖ. Yr}HaPb 2"US<1LC)#i;C'%; %(-"H` YlvTq&='LQ,*X9TpFt*CdHdat,ހ<|uˍT"B--ޠi⤌Q'- ?d|GUT0Q{N݂MZ=@FO`*Yr9cMKl`jj_Ĭo`C6M:)6mFPso1P8UF?hS5 䰽3ߌ3q>saR%Su+R$p9 ަ/;/.VOӾ7pE`!$ @,XOpSPtS$tE|&Y~=§k.GÕS <ǃ1e<Xrli2b%M,߀8ZA# q)f10di @{"3E⳷,Se` 4} vOO$NK?h@VN2ē.l1Y;HAP 'S%Y+A(_Gv1c ú@:y+Z&|b}@!dtH7au0 (\w 7 ;P>8][ <`w>?a@USI|T2X?x/aֱ6#` l[d t<,#v LWBñą[ "\O7 Vm uP_S`u~uLU @~f'~8/jl8A"LT(>H;pg#%cڦ(@F4e@ )l8?.` x C%F XwQ$V;b v'?mc27`*j?GtDܝA|+r-:q)0' Ef"Mȱ<* Þy""AC$G`:Aަc@L0sKP(/|*g*~ФQj " P17sb@\Ob RPWr~j(¥ "&N DlS7h;/`4cM`*d;La@vKғF4NHėFpx7"I8j<7', f'=SwI#P '1S10VQ>OAhq8qC JkoٕS6 " D;)gqbX(FvV v'_alsEL/9[#z,ոz+ǭ`. N<ӛ 5G1y+dylq &D< 8ƷI-lFCXy2!#D+PxXa-B=Í ߘ4T9!A)ǐwG.p8 kTĄ IXh3? ;:"e]M(jfan`'pBE*PP @Y]L7h8, |xGcF0 GxcGvG8< ۏ#J8 LQ#҄ q+Ü =ÀL9 %p1 5L8yL8IF8k7s <5-0(Dz0 h6'w@aύys30>qasU^ab;0a8Dp:l/ }LV5Q_(>J fJr$8QP,@ t7˨㇜k|>4\d ajMmY '͟v^p:9dԃ S?0 uu ]2œF6\Uҫ>'OH %(ShjhP0mpC A2:V|"= nڕ(.W+hݩ%x-}9&k*e T D` Anf t΍I!&`y z`5x?Q_ 6kOrjBp ')0.9ە:yx[MN?~rCO$Zd۶iIO+#Ȳ<* >EL"Y^\%%T D -7$Y,[r#W$'B]#F!IRu Z8;΄k< $Ѓ% W >Grq:%0 |l>:s _D ux(0u@hOXOC6>yq=UTh "x_qY xk/]?>˛EƟ7->J'}{|7}n]sr׿/O-Gȹ%fO&Mr="Od\\%%| 5d>K>GZT%I\Nд\ș:J\˒4$$TinM2f$$2&C4VOL$C'ɲ$# L5<M[!Uⷨ,sQ:ciP0P:ꤌʞG')PaъCHC+YL JcvbO$dҢS=Fu6FAE`f^x1aXRj")eC.b02ArSS* 56)% `Wl:j`0Ű d cŌ趨JȞ@_jk HzarD@d4$b:}3w -9;oD2|wP4tRG8p4gD=R.ޏ fDa,]jLJXF8Lj*o8a1x$H^ "BBVY3Xzذ$XW [p$ 6q _S'@/al-)pmŎX|.>NCŒK䒸 %IH䒾=g_Ts#S%C |8/ xQkJ}Sp"J?c*>׍ ذ= L Afwa51:)&)CF@?X2ބj' @-O&'Ntyi}L HJp| F:@̞ôI'b_'V?G" a×QN tO8@:>?%7CTwGGS9TLBW1jsZBRbj@.(gߋFExXT2{&n4YD`#&éx_m_iަv0ExZPQX6*0q> 'ʁJO G؊Ǩap  sqaS#H%azXy)Â:Ptw?M)@HPVZCy0 D"ÂX$<ln'rL??59PB#y# Ep"Tv;r0COS X8A>VN)p9fK,@g; ORUT=v`.")ybF丂y:rH{>nYzruDVzȕ2}  A?e by񏄁IwWS7F(iCxLX yXj7Z~#-%x~Vjak%q>H 7}B9Ib%q;p^N-} *OaK=Kx+l*'v~J,"e;zn`>|'rp2mxA ǎL CiwoC|(չ0~<>AXgߎ78P|5u+c;rq1`2]Db$| qT| +}0@9Ap 4 >qКH"q18(Gd @8Tp<4p88/o@Qj*Zp7Bxz? @Nvm]YO⃏@ D\`t.'Dq nwh>s6NpDTwm.T]QQՋXAQp_C 㟜 jPIh=N 3dB _E!'%vĎٴL;r_Cph'W.AdH_^-p\/G$l L ѱS8GW98O<V|m?flLrNvN)~U⟵^)Ѷ.!Kivԛ4m,Ȳ<* >EL"Yzςէ >?¹'C֖=r^yhˋ>\ծrF."ٽjNkw^NZ˷dKO"|%>K6EKD|=r!r|#dK|&ɲ|!r|'ZJ7k.Mt\ydLș:J\$F$;J| ɦLDd&Df4|d6Dk#J}!t*0 IMHaFYʣ&$A5WE=%BjPI@a IRDAHWJr7?Wy4(LI)%M^>Hr_/")E;L1ƥ)e3ïv rdы k!aۿ|Q]%NX˺+ĩWJN7}]w& o e@JuRoPAJ#F6Ji?:7IP%T)mvJF uʬ2|_՞ѫT3[̽ӫ}I[?+{odIV2 }`!Tbj(K8yW+ӳ4!r 0ܴ?;۲`+}twDI,k_!XrKbK30} _5#hgѧpW_Bz۵K %(۵afqܥ)f_[[gxX G!('{͈x|JI;U(rP~pUu{~ ahN(}}hDpY3s :YFeТvX V&%d?' bI&jwK=!C4,u( NJ9@nZI/]pNJWp/1!& LXM8*߅ }s.!ĪZP'%?{H R`Y`|a0&Ha_!Ĵ6_Yk#@;M R`Y`4P\O} ^0:I?s#}Ah\` t`%M{M@ R`ZA4 2 IiRvLCq7*?)24~ 4I껁/}y?Ae u?Aeh HX$Tקck FX&W$ @5HA4Dn(_~p)WXvI>H׷VL IIvs>uw GjwԐBŠG|~ !8:'{.AJ1vGk1!q=(HEFFIL~ mJkL{1HzhHcX_Q#$L,W}r`=edZ ZpҀpMH]$BBUL)'^HhǥԀ*ۺ|}p H.BHH*JI>0H)F 64}C%@^W/R=p`)O{@N &>Oo`<Bbp @# !s% LC@`+q@:S|Ov}IɅܤW, $+.!:ڒI %tA:wbcÏX !^8d|؆ <vp4} `<&e^@n7% h0҉ Q8<_P?e`?CX[M@ @D IxTR` L@0 @ #q?3,Ƀ4@H0y`Ď%V[p>ᜌnXht/ Ž1d0A໤X;Ah@TYn8 ryAtDi`Y yţp"d pwKA`:I_$șt~LM+7A]+> PQp8'ŔLIz- NJ \i`rh}e]0I H \j0~ zb=Ѐ((- ,7|O9}!&$Nc?YJ:(V ~e@wГ}Xr` ZLBy눖S}EVVLJ.$W/]jJay(Hnfn ϐT܋yCF4ߟgUP,nOנxF@@sb=Qc:pW$2= I1 FbQ3O@AŤ<ߠHB1\z@#,@zR܉ K*؍@lI:@pC J/ (`$(Ё'Ā` /N"A ?C`ϛ)5y`1.N#&$dqibGќA` 0110dbx1 3,:y\6` pҀ@밐 A7j` gDENN 4b@/T `m|pYA q۪h,71 G" &MGZ>"8 &(~EǀG5:7n0p $Q 91?$:PgMܰMYh(?G `&OO"UW` (b7Y/lC @,с7  < 8vO$@`: I|?LbHB#, %8@"CRBCX_LQܰhG !ĽRq 0C(;MSH|89q#@LG,Q@!P#X3Pv(P@vˀ`Mhq4A!AnGj:J  7 Csa,NA (9@b !Pp0@"^ p "A( _ ɾeIdG-(1@ d g(21&܍,~PAI`;YIЍ/ "uqiLB#OVL&0w*5bYI!(KF0&_Clpd __,~&n[(!|& <+< [ _qbz=(~ikSɅPhrKϋ p9ȍ,܄N-T;oJI>ԡ "N8AIR[ěkճ) )e/p^~.BI|8j2Rrhn#xRryrRJod-@=~{;+'By>*,FnY7B0u@WBSjD'j8jN>@ #C mebR!M  "BfO-Ov[$@p#6 5]%0T71XNA7q4b$8`i4;% U0G~jH uKPi-ǒy˻Rf!%!3ZL&D+wlΠY%X ^%(Ֆ*[)AIZQbwDE`(&fpd6&]y);d=}BQ=<5E fpgq4vbiHJ0bHrg$yXc3 ?8H^)O,ܮ0S$/ S7vM<&)mR|+ҖZvtv[8WC5i7,n6 O&PjJa #>5a I`BM3s0M Hc#_w}›>؛X`Lj~ ,84 - yxzӜFBB{__PaLf-$ԥXB;l$Iל0 GFQ6ſ,b7K+VW%ƟAL,e&Bpo]89ёY׏23 KPS5l4,-Z7~*d+(7` Nq39'-L~DZ }W{v^۰0!jlb%ŀo#ӘK\`:;f` 0 `9o179d>hqoS!Hơc:vps[W:0nn9: b}aKqH !EnhRr;/b,NY ?ty)×( /`󙸬*68c0Q` YY> ?0j,' etAH8 O{`03Рv1Nr?YpX~" wlx1 /r* D{sx@q :CvZwJ o0`¿ 4,Fup@v; N;Xjx>&`b}dHT@lf5LF2 2!6#D 1>d'(V7@aAdb$p^rn(q#lO0?E"PF#G;0JC0F   KQyhiGdb$A>>@ɘ(Q> P$V(_O#4Aj, 0|6ԲjC8&%j27%@aw[" T $C0g%0 @M(IڦM3j\I~pHF"@7WV㮬idOH>MҘ)x!DM o]%D^ [7/$KyYyq~# J3 Ps pEha|v@b7 8쬭0uh%' |  K /nZXzei?1j55 @PJrzMKf @ A`; _ tf @ A TP@ͩ;_o'ݠp*H D J'o9;,ICv M8Ѐ9 P I KL'/ѱpĒqv=@ @B5(R[(ғݰTC,7bl`@ɻ^r@dlA*HX#! 5 +O)|fSm&x=w oVڻf}8 @1,+}?uE+ےg]PB!?`_hk( A }}񁁅rXkcF-O=JiX{4Zd3۵$h\ޏ#E75[<^ACywՌib@_mL Od )NB:GJ)FN{ !*fN?b|)K~D@CJNw @ZpW"j0+w) PŐPbPIP{r|`M|@h|L+ gl<}> 3 i(oWJ39x>mfNrY"`n,u?wҔӕv7_C+ osi1PHTh7lM-mjxmjxҐ͆\C!?`__PC!?`__~|?*A]|bȄؤiF/)K-f0~דRL叆HŒZbХ/\vi OaJKh Rys 58橮}>(:mC Cp[^WEq̔* FSШiRL/x$7)8^ho\k*0PbP/|1"~ΘFqBZ A֡ZKR`c`7oyG^knW]yۋxo?*r[?⛎'oQ_T?i+nן\ʷo]oμv⥑YEdzVA |"Ey=Q6Gq.A ##ȲJvx5SO#Ȳ9T"r%!4~U^vBԮE\%HnU#й  ['2nIP{KY')2 >Yq[r?]|./ŏ\-n,+O|jOܟ,rύ\uasv.iܕv%]j<>k'r|lr>K̟%L"{%>Eyȹ>KJ%Ӹ~,#y6O.OV$+IRF~IrJ˓'IZKn\$JE&iRO7&3Iw.I2*|"ei">M W# T ]5GDhHdSh<>pa?(z$e $ U ]5]M38 T Bj+Th 3pA Ģ\pp]LjbbtiO%1 K@@- J~% bGHbF~TU]5@l2ryjJ)]}5j3JTʥ@OPL0)颺$HKT&2O-'6cKSK@Aa0Y  od:p._%tPf)A‰#6@cAS Mq0:&En=HîX6$Uf h(@^i%AT#' DOF9'$YuK9G8HP5UZ {4w&m3 h>&Ō6U'>yEW@Dlu1rd ₈-S*ToUu@Y :U2!qA^ q.dX2_op/ ޟ  i1sUWUS5%@I1xڈ*6<8ڦ*p %q@;ޠ:CX*^K2QC XDW `hA;9D0.J t4c 8䈳#u8\[)Cƀ p;(킜lb~YPmL0P y {NFokep8t ?Gq{;u{fP?+Qj`<-,Y?6ޠcil۶; `؈<FTN'.]@~(ZJcqീ (q8yv< jO,: =L$E'cI,;FAX@- c 6pxR(AB`Jnv"X؎FqCS` 3.j1p$l%a3'8A h(( Y>8a3><u\ 0 f)̩G=pɰv$I?8ya1'հp35/$.Jr9S' ;:-48ڦ( P v'9SG6p8-`2ˏL-FXcd(x ňviE @TXOQoU>q" ?>@D $>,\ !P(?t 5fXZȣl<`-`TXzd 5u(@q >8 Ea5Q!󇀽v0:@57`<\ 0 \,G*$(#7-2/o@qR$%ǯx b0  !RH8@_T?NJAcR 0e  R1)\UUlYuH0uu!$ 0; X j: p; dD@`PJ> 06#!G 46Th 0Ԁl[#C m_HyTUAwA4SckȸeBv nBzy+OL%K M0C )#m84;!M? Axn LU;`aCdz_8?/~VW>Q86KiӴgV{~? /MN_/םM?/[^~J|-.\ E2<#d {"lA ##ȲJy<"㗁ih %$UX?}q}[ޗ$>j/ǽ ϞJכ׿'|Kךg^^׽/~o]>'}>oךK'O|\d.Od#-.Ov'ȹ>KJ%ɹ}Md.B%iRO$m,#L%2{"d+Ir~Fd$I&G &3Irtd!H:ȹ>O4܁}libextractor-1.3/src/plugins/testdata/jpeg_image.jpg0000644000175000017500000000052112016742766017663 00000000000000JFIFHH2(C) 2001 by Christian Grothoff, using gimp 1.2 1C    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222" ?libextractor-1.3/src/plugins/testdata/riff_flame.avi0000644000175000017500000106500012016742766017671 00000000000000RIFFiAVI LISThdrlavih8o^tn LISTtstrlstrh8vidscvid#n strf((IV41JUNKLIST [movi00dbrpY } @lSa1swyyyyyyyxy8yyyyyyyyyxyyyxiyiiyyyy9c9yX" yy9yyyyyyyyyr0<<rāc[c.Qr[tV \+K1!sǬ9Ma7Qdaqu$΀<⌷v1t3Uɍx:1΂4xu{sي9kyO5TXيؚlb9Cn93 fa57$Q\7\3D*o{K9k cm27njG>7gqF6\@FK>xs \y!Y9+6U"FyF >lhT'Q8?g5Y3G|AnXGdjrZrVles𴈐ʋ G;Plł ȀȀA@"3rF2sE20 I3 ɆZ `@$dba`Q0|9Ɖϒe#f^0Fa>kc.HnI6b'XH`ᣵl-_:.$7:OiN%N}P\'k&>&'|fn>asN|vW.>p1|~vG]>,;yNNs'gc$7\=Wͧ0xܝV fI6ss\<=%;.F>ns֜7Oyl=rRny_,Y CA#Nd"'+q6oQ|xeU)WKV 'ԡ8rFqH,bb+b+ŦqM1rȋgO /Ycbe䆕V:bSސ ܾ掝/,:*y^/wOG23 YD @y08#G$XMKř2) $ 3+,l,, $H$xhn&J^u4;4r." \qA20lɀH $"A pcՋ pcՋ Ver 4.11.16.86 00dbVTY\3]3@|`r@Qboyyyxyyyyyxygyyyyyyyyyyyyxyyyiyyyyqcy)Yg9yy9yyyyyyyyy PGqU9 Xd/F"d Iy|(xUxEtl3ơXxɑ{;n&c{y9;$kLWu^m/IfmnCYNf΃A>ʩGQkKlb)}j @gr,65^EpDu)Ks !s1:$wPd Lඋf)n2xɋ<`xbe R^8RlJ12׼'ޣ$Kq^yO#;s{I ,J!aW/bև<圭;ni vP!ED=/yW;ϛblm^Y@\qSV dVs^+H2<5BNh'2bxU/Ax‹R2yજcsH>:sq{U##/y<d⃳͛b*nE/+!Y<%#ŋ V增<GDW!Z~GG0$<擑\6k'@>n =X2>69yes[^r+=Y9=q|!FAO}48y┗'xS-O?1#>桬O1!OWzV|>Cq[#'|b-^ <:"D!ًyhn> og>4j!CNx9[Ŏ Ȁ2 3 Il\1330@ BZ b ّ@$@  ·QvyC&^r,Z6'x~Z#JrL,  3;+ ekw 잧b;4>y(|C-s>{cI:t3rg\6hOW.'a||yNc?6w\}0E!||zz|iswJ2Gͱ˳@|uL|͏ +6G3Jnb YY-b'8.+ŮpM1O<1Jp\\M2OًGf憙/ ~/wOoyQ<=ج3nDVd@@og#(D#3023 33,, H H |#^0<͉O#W@ qpu0 Ȏ @A pcՋ pcՋ Ver 4.11.16.86 00dbjh/YĚŚ@P`P@ar1co?yyyyyyyyyyyyyyyyyyyyyyyyyyyiyyyyf y9Xeyyyiyyyyyy>(kb;ce/b鑅Hb)9XMYxVbFdyc0"#S09]D1r<rMpEr;g,A>{oYVې>"f2sNQN' HȢWr|D4DN\5;H5',QCZ,Ҳ!kѬY0\X\3 IBvp(b؋[6yr<㉵؂4xXEDžl k (Qtq{&^JylȎ\αِ.θʑ"&~*uKj[08`? V,x>=Oy?|bعo ^l< \{Xp%ל3,2^WGAq!4zOt~dOc5hWI>"ۉ/(yYt񑊗rWb_DYCbO#E]ܲo<n=ɫ f增<WGDyQ|yx C|XG>4 dhG>|2秬G`Ӟ2Kk4く<@4"xe`k&>43qܱv#<\#ŧy4|8< 3rُӶ<5&CK 33G\ s)_`K+ffd9&Afv `f'(r5F |r<:<Spg8>OqvȒr u >9yg, y|%^'aOVnkyCYCD|>+,>ermp̧ly:pwcr n@$rx 1>LXq9Kv%ev`'fQ \{sqR8?$3nO0&f⪸Rnc⎥>,+G\>hOo.B0W$ +4"A 3ڑAZN.%f+,ve `fgeF @&i$@G6*N˜41BHLsEA 4I pcՋ pcՋ Ver 4.11.16.86 00db^\?YLyL@{!+ )<*!Zyyyyyyyyyyyyyyyyyyy<<<<4<j1kFLD2AJb?fGُ %$j7_B]l8|*ez 1RRI 8Q|Fl<1 O5!sj`8Yǒ";#rD̙@.a@ɀyHfEz }1q9m .xf\0Lp1d6ah 8Ti0q28qCP.%&L2 gFpGү8'!XY>>ђxC>pɇIfh OB P\Fzyq>1g7g|`л|)C2 (3B3|%G21O>Vx]dGG]cI]2bb>I[D G|pr_6g̘4Wl3nZ`|Yq~̘x]Oʓ"܅vXGv(_7?|n /(>/Ieafa/Ye>!OͬDŽ% 3n3 =ӉzbId֙ wq2'v9]8r.XXJI\2Q;y (ctsO >Xj|89O>lqħ!3I-!NVHdB`$ NdE+Y)[c.DtzC#$j0qX)Đ!1OĖN4)+"_fr>h/HܯF'?,^ dh*QHA@ H!HB՘`Ow!fn)<̔%id.y}̆~I7pI.)l,BaC%L7ye!C)=K".yL3B3e80i\ƒ z)20%63z pMp~F-a=@z8`yjq,rx\"Oz0=&NXLeC9aeq9`mY9C`cny7sBaG aIa,ጧKc"HqDf 3jQ1gl1q%1!ODO8bHL,X'DY'Bbǜ2L*s N!P@!RD*(:IH /g3AllR̲'KG9!2!  J'Pq)g2(Pg:6Q|,M>qNLbf|){>Kg>a,bl|\ ܄䋱bCsc83#~ꝏ#$`Oe]KV,,)]F2̄D̘ &ggs7fXY8=q8c6DncUPanfWL'@jC?[xYh||G|O-sj&*DB'PD EVʂMb*1 &VL(DdELr׬2pe7,h˝C~?nf2 ĄaJHA@@ T4Y9&D* 23DJ(NE@ R)ȷ%n ] ^>qE>$ ցHSYQ  H@ H@ pcՋ pcՋ Ver 4.11.16.86 00dbb`_Y oz o@{!+ <+YyyyyyyyyyyyyyyYyyyyyyyyy9yxyyyyyyyyyyi(yy><O<<`Ԓ~1&J"xώSj$,3 0̬̙&I 9=Mdb@"ZLh:&҂cSB&6@{ TBf#(#Jδ!KN 'Czfǔ)DzK>PXe )S4aIҘRfc3!R5#!ѥ2Ȃ<%9r˚UqC ^ DY, NNM&Zb< SC`e93Ly2 全P„"O#728n>$KeaL^L~6q}|e`CP1XX2g\b$1 Hc Cr:9bx0fxabN @`)9ŒA lkPz>HcO|+ޗ2+>Kab C<\xXC>~;+!H^lgcjoBg? ӄk|(dȧ 8. "fLjq~ƧSbb"1 75t.g' u66D$*w(bbD&.>QBOH#  [H;O 2#:k*՜AM|a[:4SH!Rs "Άš)k.3}㰌KxX\섣knh.|bG Ù+v>OЉH!"H<3%s0Lh;;G);dbOU"$vi@wG V/ƦU8+3p0 / K'|ޠa2ǝ,ɧvĜ]`HcD")DD* 1Ij"8Sh0JT*CFGnB_<CG˸[FW z3wO:$+H!)H@&a1ј\nY!B@ i "JS T B ȷ%p20'EnB!@ap:!@@@A@@ pcՋ pcՋ Ver 4.11.16.86 00dbzxoY:u@!*Lp`qyyyyyyyyyyyyyypyyyyyQyyyyyYyyyyyyyyyyyyxq˗s<<×9xi˗ 0ghxA`g9y8 EpoFI<.Da( )KS31*s0+38tjD0;YJ !JTʈ픛JNJ$Q{L6Q736!0IRDŽ%c<12=%QCsf7fÞMNopĆL Ą#Vl aN8:)#T}L CDvA3C 20cƀ|<sN̆J gP$[ c|zj(ʰ-&ũpI.2眆!3$dr`ĄL`C9S`53 3bR00L]*$wdֆÙ d$F ̻n|=n cɁ>9y+'Z[V>RZ3a2p0q6Oò;gO~j5nˤqGKgK1oƞ|c k|lccj |>a|e a3̣6D>pCϋqpi`>}|l+X3SCd|̮`cb"ʼn(_sJacMYS2SH((t +T:@$PR L:ѻ\~G~~PsK*n8 |UmcVwV0|)]yÇ_/?Bi _3 )'1\D?.C|!a9}o|b>ό#VD " DyL|Jfy1LΔF680aVD#0/01?+p1=oͳ>~}-OAhiZFk~z: pvuSeѸƝŜXࣹ6] ?>ϟB>?qG| .a.yBK659%1x|'DT@A" U*MĊ! &*œ MS6Ϝl'ËT :̏x<尘a`'\N~#WSjjbȏGw{t_07&H!R$ FnV$OER$P8 l9 H0ҩ$PH  H  pcՋ pcՋ Ver 4.11.16.86 00dbY;@!*p%=qH6cs&|)Py|ҭ )\ 1SM朇 nf@fHrM ;1r.32Τ&n@#KypId ͒'Yi)Z\yg*GQ2dJH{5|b؅| ȧI+zK-9Vx0x-N’Unc*=3Y髐x~M 0cC$x>3.g)6* (Oc#.x>uypVJo-Ƿ_}ڃ-jx{v:!/.*Bx]BߥM4lX#;JG&HP P* B@ R k6?jC W%n[>IdrOgJRˆu߬ Ô<}y!Yy|9 hyq)`yxi\DP#䦱0x=5&xԐ0wLHR`|&udn(3k,q1f(59LZJ5UYibA[z`>)g"!e:%nTf~tv"U:e}J20QfFTY&ɾQ(̖:1`$*a&9l-wlTV 9|̔8SX3Iˈ",ェ-sqN ^ cʰmm|3v 3I)` B#&s+py[wsD7 LܜL} XeY<1 h3 3/.e50UOx|w<*$+>b4ɘ+W|=r|\) |X27 ]|qxB(,6[s R+!ku>81\],!gv>tRlc )JL|2dg؆'COɘ3Q3g|djJ0iaGx&R 5V 1q]nf|84qǔ8x>DޜJ|R C!%QybK.MʀaBvtzbǐ>fu7>yvx&1Xz)b\^s~WvlxلRK>j}XLF#Cr <GӧyuD3w;A)AS0ܲB{ǃp(GnOl&+n N2$P)T D"N!R"BrȖ<yǞ7eR惫> \.x:r_Noe sO'WmBBw>pR6xQ{+?: ɭa{ɡ)_B\p-u$LQ:.8SXF Z(B$Y)D N! "hKC2<8]41eBTz"P3eՋ\tyEa\}op m .X`uj|9' Gl2?ʄSv/|d+av})\Pk4e=hu~ B~z8j鬏t嵙 n<0 4/pT,% /\ТR H>'(DV$H fǚyC2|0C.x~pfW˱uFck|n:K{Gˠ" XǸ`44 rҼ i:bMctmX鯜v KCh!,{6WO\rK)>֥4(XCڜ8N|0x\*;$(HpÖD JgBgBdB%  pcՋ pcՋ Ver 4.11.16.86 00db: 8 Y>u@!*ȐƊ({&P{P01ax O'M\0Lu \py263Be%rl}=r8,3j 5$IshI9+yG1j)扐1S%a&N\28P)P^0KsʀS_;9 S^L0s=02M6 Cn3s€<֩P 38afg^*)3$9'[x[Wfr@ Ww\y̻T6>P-+dA)|=F G<ډ<8_- oaVb_sex04y&)+C͇ x')B(Ugc[ 28l?d&q2B1!d_ ki졗Q0ayd|quxu8̓?|Qa\Gţ1 ֓7#`She͙Uy7Zn3V=3T>9!_md7|Ƨ&LDI4DO2T9䀵GHLqj08,Sz|Zh20(m!o _9ps{0Äv~el/`d/嶻Ixr8܄g,_>iXqDaxvPmRC}`C޹}7,j@₧z>.x1{K-Ę9VNc[!4W2aE@'S(t!BPF$RF' a^!`2gcjp[;W1Mo:|r>`dgn?p7G ˋc%=.x:}; [Y\ʨ2=4Yc\pޜxM]酐Q^$,9?1 'es~484ӟ<:_ė_utV j>(Nλ>ibɩ&u0ȏqnwWfSͫBaP7e:6ZB,w-y8 euSϟ_1t1%ΏLBkKC)g#n9bNC H 2q3RшiȞ9 f~:6],dS{g삟Ɛ GoC3erH9 NK !]C0q8f,G/bg^*Ö`t 욆ÇZgVч*Y(E(W^1ѩä,BrO7Wm.Zo!l; Aӛx:t_T}L~&0!=c>D>=h"R))GY#$R1B#H!ȇxBHA$ ;nC H!@  pcՋ pcՋ Ver 4.11.16.86 00db Y$:@{!* &yyy9yyyyyyyyyyyyyyqxyxyyyyyy:=<<|<|yyO8ϗ/|9xiK7˃KsK y; ˆQJa'x&Gp5"jOjc!Gu)L RZ(gRGf|ق;)!q7A4`jؤ>W"P59zMc1Abj=>\K| H'|A3(#O!>XpAscE5^K7Ck`"R2|?u 8WvnŶ\ǗSc}[C!4C+3 ,$]RMIJg͘'=>bYhq߹[Os R/⛅֦/3^";Nmt?bPk|GePLR ak8Kg>Uu|9 k=GL5R$ !o8OCuˊm$ΡL$L! TTlP@T DB@ P![cs7ZZ".cN"ѐҡcÖ4o.,W%$U:QOGuu}Eb"wĚ35S!%|%~n!ΰoO] K%~}2G,/1p}w9ٿKGp+Mg4/iYTB T4TP! |rDf މDܐ`)!$)OL5~qes{gcgx!z=ݶ65ΰO7Iypni&bXV 563eKG̈́3 \{TO(aqE|)/t Zugp&qTht)8Cɟ{/Zs8M=Z?^lhq08FykNmEQz\Y%gx"זpV )I,].N~]$AA obG !! "9Xbءb!AAB~a[$^AE  p!Ab!! AH  pcՋ pcՋ Ver 4.11.16.86 00db> < Y:@{!*3!yyy9yiyyyyyyyyxyyyqyyyyyyyyyyyyyyyyyyS<<8˗xyyχr<l)YTrFSGT 3#c*qQ b%$C*X׊O*=縟aQ0nd l 5ATd :G']qNDLj AA2!g ;AlQq{ ;=< b&KBHF#D;tcFXM$6bcN$`9A \ |zV flIQc㈩h0D&lF`AC"1VHQHBñ F#˂3<9=hO3ԸIg89qH3aR"0D#`#˜2F4{#qcTYc1FCAؙeS4a#XA"3 "2~ ap]܅y70 3B:B'(bi w޸&;쟈L8`0 1bL0ĵ!cEL `ƣDP# xvB`H4C{Acx¢tZA BAZ C,t ck 51 !QV)V؞BN8G%D-BsHxЄ HbS3D#טP |&*VB !|G||HOB 1y mphL]Ss| :Ķbv xG">g'x2Z>$>xx&_j.Ո0"'3'$#a?A01$4aj썇Q!$bj \AS>(f ?>o_߅FSro|- sTB:z3 įM-%Ɓ8o~5[ݼt^5:%Tnr\=w6%pGCJ)0R3!L34?(gh9#rx89l#/^ Ƴ  BPP1 O`GH|&x'bqCb 1EBFB15oR#)깂3LΟ qA:8ËeԾV) R5 LN[]_R9I8<, Y+^ q4gX5Co74P`P/|TNF>'lw_>ǡ!@!B Riă!`'R o lxpé^ĮN$*5)WP80n^05q{G30P8ݤ7"#Egx&?xx:SߜN2LI2g0B0 !@8ń"   @ W8K D@!`AB~GxB!!H @$#,б @!@ pcՋ pcՋ Ver 4.11.16.86 00db  Y<@{!*%2!yyy9yyxyyyyyyqyyyyy<<<<<8<<<<4<<χyyyy|xxyy>|4S<@@@h4S#tJ2(Bs¸9`KK!ɸXb4BCq``c,m,,lЍJXp-: m$L8D!>g OabTba4L]!΍!ymqQ f)$ܣD ET\LA" lqp8 x0A#,Q"fXdTGG Q"2I cD  ܐxx[tƄP1#<b ;d$eL YHD15$7Cbj0E0pq`O$v0ci[;Pq%J4a9D"`4$9ܡ [,!PPQ$0A8-cD q7) E)pO Q8(RhhA*bv"",q K&W/ኊmp?<;"p ؙQP9BǂD13CDuKqP0aqJNBH'(bj רĝ:A ΅:F0aǀp1;F+C1 IvPq?Æ"" ų ь5eը`cpB #h 9J S ckm5lL5<ACl4E4ǴB:Ń S$'cJԉ M1"&M`/xrƄ1R&a1!(-=X^QvJ!s* T'ɘ|7J1`skoic?gѾ'y0UU֌'Z!RE TE>@t{tJ9ė'˧i> qҲIAL/zяacOe3&3?(\?|Û6MPњ~ ?3ϼG;[dt֟E)9'e1L&/KR.!΃r#R!!yBg :!>&H#B@@AEC1EBBBG{$$Bbam8 ~)=CkjbܦT¼Qa28z.M#ԃnDI$(߸VI8sAW˲dkDb㸰,im?`2c   BPP!4 +hĈ0DH|&x+bqEb )Zh(C\G%M8zIʜ9<:u3z1O: !ΰ ?hqD98&`}iKLO}'6^<q"ws- 64Ca>'E#%]|gH(>fBy](yBx=}m.JJI !!|sc Ѱ@APA4;Yxˈq9!S0 #;g R/G8*m 5 G1t 8YRP&k]J57Kӣ7:JN>b5%~ b0Q@!!_?Ä A B@@! 1B;$B @@? $* aHBn@$ L@ !@ pcՋ pcՋ Ver 4.11.16.86 00db" YT:W@{!*-C!yyy9yyxyyyy9y9Yyyyy<<<<<<<<<<<<<ϗyyyy|xyqy>|| Q9|Y aYpgi)yp9 g8{llCStX;=y4vNa>f&+ b3nrF] xgl0Ež9F3F6 (h#l!x*UD/@z5)쌇@* $3 X" wCP0#pn`c,'! S\c!v7hHKDL)!D|L!YA3:HlAwDWDqm87 !@&" !1a&ܠ̨Ƶ1cA3GPqG;ܻ`"1ȐшdL1xiEѱN0(ƈ@4E"!$q Ih;$ 5p]Љ`ML1Ƅ1xK8@1eD@U"q5$6%F"&GL R!OPO;x88F\OȂe(asGlh؉ca" SG4A#$"<;lh{aDiAi2ﮥn=b!Igx!JyfSBcBΆ&B0&2D0FLF3XF:"Bx 7(׸1p )b@L d,1"Eǟ GgQJ\yFgx$dA<;&pzvBD3 qg,# ,xF'X 2ZV}sq"_xCl> q /cmp$8HNN+ "v'kcd<Ƅ5c0aT yvOF) D8F oE|THJdgbCL6MnA:mxB[L?Ϫ㙾Bxv 'WO~r'q":ՈƚYiN4@;*ޟ;IS2>IL3܇W&}1zD 8YhX#H@|nī|7C)UW$Gq 0.xX! ϫ` t2^pIՐk,@"ljTD5Ll05cc){yk8qSv󜦱M9caS #f㗌,fpj8\8Á2p>~^9W~g8 ZCi98p̚v8.Ck_lE3R:@" !Ah$ Os}i#v$؀ FC1P7fZ)P̙s, ѯOFKwRf8aw SA.=-jL|ƣ{|$ΰ3o Â3\F5hEO)χtl" +w"jx5uWA "΍iDF$PA$,;j?Ye ᙇEP #X&Vj5/TdtOnQ/rۄ3 M(&N+m賐Eyc/> |ZJVy>.r b }2 F A!>Ä A D!1E 4 h!A `| "BؠB wGBBEC@4TBH B  pcՋ pcՋ Ver 4.11.16.86 00db Y698@{!*/"yyyyyyxyyyyyy9xyyyyyyyyyyyyyyyiyy<<<<ϗ/|zy|ihy˧FQyx/_ix'y9Dy(ig8ChQ:SeLUD\GA1nEv}1C|f?Da35nl F3&;@b(E,tc ?f4 4ф=:>1eqڠiWHBG\ Mco[$$~sb *э AX0cjXb!v7AEt Qx|#:!#"!pn,f؆MD@%F1# x&D<~ ¹CHHX`ihF"1E 4BF3>G d"GkA"q@X@8Ʀ@WXSt,pelLtl BB7vHX2" #D7*FFp5$v%"&880э NYH]XG#Ng4v9Z$'N98!҄9d|7L2a%D<I [57X2c)!1.S«  9> H7LM"F}6q >x+m<&OEԋZo'8GQx$㘽`;J"6!eZ5bǚOkNzד U~O#$C0TQ#SK_|k\]h:wJ8oO&>)Y˾0)Dszx\ZΗ YR]1'~ ѯ^.&>%)kAb|Cg\K&Ua3UI·7v $T#T4BE1FDG#C h uhBRL!XR+|CY.ˮ?1b ?9^۫F_t:\)lJwuۅhO>1>Bo7Q85P] ~b]/RЂmOHg|OvחQ]57 Cx)6Qp_+[W /Jx>!4T$ #t  kH> ,Ή7H$Na'DЍg~|s%[6>3rV[&y3q\>ⅶ_0ȉWo&a ! >y/Fιg|T:(; 6U u( UteL+ pLLТ|?􉣧L)]"B "BXF< DC;~AxTfPϺQ~ 0ւ? M(Q\*=A\07n?m5E|r0)"g˫iC=Xxk5SDrwg\p8!h<3i$9G @! B, | >A A bBH!  D  B%>h) p;CH "A"A B B pcՋ pcՋ Ver 4.11.16.86 00db Yb>f@{!*%-"yyy9yyyyyyyyyyyxyyy<<, <<<<<<|xyyyyyy_)yy/_<4M<<_.}(Op|axHgQ'yI y)g8CJx*C:xch3p ΰˡp>C!, Fl8 ix׉1BcG /ň] a[0W`ft"*;!Bfi<>OeP)tmDwZI &:8H'ěDNMX&|EJGĄsSA8 L LCa  ^ %t@)!Sx 0ǁ^~HIQioIuoJnˈ8g}5XaR+,}$Z:@8"E £-f:6>B6 ' xGu!7zxǨI 0െ[|վ)=qEY ݹpt605ʳ˯ ת"_&> `qXIT|p#6H $ruu xk5+  ct#c"α!8*056FIs3p߹7Wi_{ %,r4(ӚGe[ʐe#bjO0Y\Mw#$ n\  B!tl@ё "!!  b)lp3LCZ<}֢ھ%MdIYDN&,G3/XO]^įM.b? -z3}91I<\yp"i_cg<OpY*Q3zE_& =׈3<>mCiiAؠkdH8#Mۜ,kYӅp}D3ܵ{S22@"AB skc8A!B{lI'?G|53L͜"MUo%rw{*#~T*V[IgY3pG҄h /8fsR"#! [ύ^xBpŏo#QNKy3 s@!_N| >  !! bBHHHHH6HHB {%>8a$$qkܣH*A pcՋ pcՋ Ver 4.11.16.86 00db YD9ʼn@{!*%0$yyy9yqy9yyygyyyYyyyyyyyyyyyyyyyiyyyyyy×/_8s<͇/_<MM|͈p)^u>:Dga!P'gSsH"B L%SĵJju >?`QP%GWAFx[ c# (uo%ed -#J.4[y!9-8O5 ,_b8~IM&EՓjOMx1lT#'#|.Dl"\1XT@ 1Ou] x} 5 >'x#&O7l$α4n#F CE5f" kɏ ?mAnӮ0hHʼnt g75kF"=gNsj,'{'%oOϗx"ʑ#!`>dD1|(9cKZ3$28L3pZN3&2-8KZV1qx-=Ņ q'80htdDFGCB!TT@шPQA  BB׻j_L|p;bN%FGT3^bPqc3tFgx9>û:m4|Z hmW{g9^_RpF~1_xQ{!pnr/Ha5ij8#q~zv:FkqQ kELO]S8 ghy:?- Lx  BH*HހXVģF)FB w'yg1^kS6!Yf>]Jŗ০!CQҼC?%E}:UC4{N_ƈ3']'<[24czxgI_~s!7xSSg\;@EB@ p;Ch*2!!BA pcՋ pcՋ Ver 4.11.16.86 00db Y? @{!*$yyyyyyx9yyyg9yyYyiyyyyyyyyyyyyyiyy<<<|QхGĕ"^ Gr <(FxDb!ɂXCܑx1MlALa;Só5jD  1$642HTKp= XG,)ha5:*!{1pgt(XX ,@cDMB3Xk"q'd,D$܃ kGlpc,"!4L!#F"6آ 921""jD@CFDCX$3Qe\ )c!H!816\;+qWi#G‡Đ&Jħ&Ag4f"GX&9$8/Ⓦn$ca { X"Qs{ ~^Ì1ykp3gKXW29RJ1YVv^Q>Z438#͕8Ù%g_'QzEx3j_]HiB<p3<-zŋ6 acKIs R!-4F/qljaęg?jP !q34k &҇pU|3a>?8{p?Fg܂Ӑ>z%1,qv6/<ۦIc&k# <ۃ<?/뇴 >0|҄~U;xR*]ƞ=$H4fKػ'',+ ̻_/2;?u$ĤcEKӗy?6AEȓ9qf*7 5BBXath " !!`5%_>Ɋe ~]ćΝBvGGޓ-2v3 Ql>nᢐpt=y@{!*#yyy9yqy9yyy9yyQyyyy<<<<<<8<<<<4<|yyӓ<˗χ)i <_s,Ep<f6z5:nH^B q1" %0$p3^G1R"g$"~A)">MSz&͕q^J/#BF<&̓ =ŏ$<eb}IW֖  "k9x춃EzVƒqN K`Qуΰq3 1 z"<>x43d0p*" xܙxj8¢4Bdd'QGElkX#HFѰ5:45hTT#aNYH7Kc<eJ 8'Zi}g</MK٧I2fZ 4o6Er4L 'TY% Zp?dMOckbi?aE8pE|jdc B T TtG;"Bhh]H#l42ptTZ 7N8~u~~<7qw8:߬IYDWbt/?S8eJ:?*7᫚p/yt ?PNAi3<#ir| 9۶ Dc8r2"`}.t$&&:my4$LU1i_E G76%CBGP!Hs q'2g{^'4>X@hhcscёP $ D@,ZZ  2ⓑp'b/~v|S&O޴AWLg8'bba^ʉzx#i%4s=^Coi("Qg0vFCAG'QQ@ @)BH B="@ B BH kⓈ5*  ׸PА@4T@$$ @ pcՋ pcՋ Ver 4.11.16.86 00db ?Y;Ն@{!*-!/'$yyyyyqyYyyy9yyyyyyp<<,<<<8<<<|9yx|<<ϗ,8g Nq'D0ΐ> ˲ēk#Eͱų$"z<;!05eDF0(NV XrF\S4 Dҧa4DCGbZ8RM b"F'DBQ縞X*aq12^|sLq?/h^BU̸|WB; >~눗aL1BOS40j_gnxMB~%$uUVb&Op0 5 *G?PI ]Ȩ/QA橛>)q\nGd g3և-ӛ9QLr\jeϙd\1ܧ!R%^Ug)ԙxj .>#oW.xRĶcE405QThHXBFWءo4o) Oh|AbM>dhj|{ܞi#98sX>w7ɏܼl3$ D\Z=`a ߰g ?ܸA7΍D4$LѐP!!A  )@c-Ή*bA .,p,us50 wݓ#>Ӝ_[ zD~Ɇ9(0Ahz㿆6k^S0 Pc8ޞq8~10 9ډd )0y,җl7'T 67OJI-E`S]\"-t|#kTsg80p?~+FŘ淓qIa>\4RƏ8}ihFg׏!-H`&:s8Ñ;ir''D>q?t'Ť::hBHx;Bs܃m{c1!4 B q-mݮh^` !tLa3<dC3Т3( PDRs ӰO4K>$<~*ZDU*1z5C̏w?n'q'g盛)~Y.8ó ߘIzA %0 A 2΍)qn" b- -#> dE2g_'O'ţ< !Ap 00w}Y>CC9x$1q|"UOKDC@@B@  O)B" aHcB! AB #Y'DB @7HHHAh FAB A B pcՋ pcՋ Ver 4.11.16.86 00db OYL:@{!*-$yyy9yyyyyyyyyyYyyyy<<,<<<8<<<<χ@0gx g yygH$yy'IgH M OEg!(Gxm;a?R`#g( 7RHqC/bD%#1(Cl!7XSe b #`D!qR&!XZH&ɳƣFBTXd̰aslMDł cjMD`Lq%:BΉnP]Ė[mz@bDt:"(bIΨX80vC@c EAsD#c;kXC8k8wW# SdT#Xbfhh`2BD(HFhI|+A8ЉqaC#*8!caae:2,!ݘ (16"B a88pnNC&fa}"Hd,;$ؐ;[Y\ňcG p59AQ!XFl6|ŐLi(#@H3<c+) ^w7Vqp583NPO%pˈs $8!1*^7'30Ĉxr ͉6r1d7PD0E<!iB@#V%ߋDƣ#G"޾y.j6DS,=5Fb,Dl)pr6PXD脨b" &Dc:ǝ![%!-HFf4Xc)uG`%$&8F3xecēI`UįoMՎ<>L[RP[I-<ɦps">$cˎek=I|$$e iR| I+Fiod<:1X8Ã~vpԒq2pdi#6qrf?o %7+}69FN<!=?c-b{D|fsq0£iVGRijL# ( x7><#`|X[c;LfT$15 {bgH.$R\֑1|2ΰakRd\35*r6)ݱr@RM~PLG_NR Oy8E X5~CCM87HHe4Pm!IF䐼(鴴/rGC0cl9*" (hH*{\At;/NjfG3凄<<ؤ'/4)2EƯ ([b|~]Ch>Iqp) ǁ2Wp9^ #k2 ?sաd)t͉@:)9'Zi8[樜0=OBpCS32 gD$TTtTS|rڈ4_4PJfg8?`Z*3<`D ApC|?h*Hs<#WF1*bkl_W?ǝ#"b1fi3SW?!\f='єX8j^V)JnB!De%8ã-e:Ie&5 FC|c!/[>Qrs/pp 9j3<9o.iQe61X861p{1ɉOb08N*vHHÌcJ<) ""Xb=~tˈOϸ^rS<CkR A|BllyՏΪ_y4,D @īx[H AbH AB #gD @B@qk h(HAB  pcՋ pcՋ Ver 4.11.16.86 00dbB @ _Y8@{!*%yyy9yyyyyyxyyyyyyyy<<<<<<<<<<<<<<χ/yyy>|yy>=<|<>4<|q|9y0F$γJx0d"XZHXqM p=9;!p'c\g\ ]XD~68G@@5DC7`aLm&b 2Qq%`α FH:")!6  J" F–F2q`l6c 4 WhFX x?D26"bGlpS0PDCGFH0X(xm!qk[ FB!G #͍qo$J, ,{l Hlp- m n#l,!#Tc#j0etc)&uF5Q`*,d\G!Lj 4`cPǹ#H$!H;hh5 Eh 1b)" TO!0 筩=< ^H^HRࡐxh =F!D\۠#:: 0|F F2ƞq-썀gq# 8@BƸes E$KH(8&A,@aD 1^8v7c 81aN0:AA2^`k8 ˈs 4tqϋOCG,"):sLg[p=7]D8DvB&t1nB^>'c h牌E$>WLT[7s|W*8gC*jXT2$*$>S-[O|% 4JP-,3:y 7N2طPG*sE$e iJp$|N*Oi.|$|ncHqp~놋=?yss&nPJ!]Z4??̴dd\W+Fϩn{=O:҃p> SN)i>k ~oHQzZ)) X*U]IiGp!q /AZn08CqmTTl0D@>Fccl9QP@4h O415ûuOwI3lL7>xD|ORJ6'[t4ѷx6%ŗe΃BZ75 ʌÙY>?f0u 멎 Vv#Jƃ4Ete>9D Q-}"`+Ga*F :F8Q&_iTY IG"ΰ.?abI18I#x g`;> (L dž %H>8"2hs\ !c K--iĔRrjsW+r1sN8Vc8Co}|h{pcjK2]Q9YS8 3n'g3gXDG|&@B@@B@ \7*:*F"A H  pcՋ pcՋ Ver 4.11.16.86 00db oY4<m@{!*%0'yyyyyyxyyyxyy9yyyyq<<<<<<<<<MP\Aacc찓16_myH28D"Bx7$q%FxmxXxh] XG,1n(<qFȘ MCB@}rcu&XCe C h6esxDcǸƕa@5*FFPA@C7X 1b"ƨbjTSl1ĚMb!tmqp}vB``TaI S(876ClCED bDLфc4G.FɌ7B$ " 6x&֎h B)2al%fHIq%E "zD247F $j$n*@bcwk#BBDz@xDj@# $rDCC@5όFa(, ScEcn&]F0Q#!LYdEW1H'F-bĖ X;b&"GDCillbD\#`mS1 | pu>OMEO-qs/3,<fxBRڠ#舑I@bD'F3F0s& `3H(dWphh0X'Ac 80>a㻩[a} z &^FsM'(l#)\OHē8F/dAlpU=S(ģD#a9Ag'A#5i<`D0xD*+ eTVݖpgIsAu)tqËSfp88lKHXGbK (hxLJbB 1cA)ĕͤJDbO q-T9!~evJY1|*cÔ S[ >~ >3L8LFRUk-E>@|nW?O>W.[f> >g.t.4dlqܒ"N$Bܹ"Rw'8WMS gBoGBEUţX|URҷ{9w-S brY\G ^?2<) WZA3WS4f3gܠ_T[Eȟ5~WƷZ~`xbr|6?$LR>g`Ht j/_jixfǑy%+N(zx$WO)Mt:|/F^V`n"SÕ3Cd  NW)0g Q;Rs+"=&MƗ6zBI{=N|(aVy~<2#}[Z,_3 AQ2 ~" x ƈkc$!ց[MC5|jz檽ܧz`* C 1Ƶ%hh " Xb-񉣖On7'9@%Fœw ޞ {1KP?>O{D!%Fccg@ B@!p5 **HB h|.Q@@! W=FHHhB  pcՋ pcՋ Ver 4.11.16.86 00db ~ Y ;@{!*'&yyyyyyyyyyxg9y9yyyyqxyyyyyyyyy=O4<<yyx{8yxhgi=K< C<20OOr, s6I q(mƤxKatUˢŋ>3PYK9%q3aJ#$@|F>3LXtRSKd Oup\38v&c^ Is|jƒ-B[ĚsEk U˔4IH|ixF?_X6"KIի>i0|\/&IJar33P(9$!q}6J)jx2ȇ_{|߶..GC I3qy31\o'!=Qv%SI g=߬[ėgg%`G ZXs[C(i8c#uӘ'jďظd<ojMJYG xY?eJrrJ|Qzk`f# BBE;`=@" :) B3L^'y.a˺ g|_ROᧅZ.|_3DV# )2lN )l"ɗ%&gK!MM:7rBJqb(xA>M3sQs-2 gh5ҟ g&0o,jbbr#9:TJ$vX **#ا(< ׮_L/g=w~}t"ćE98 $T4T|;jL&:2>[Ô c=g  q3ga!tJEe3\r?ebEԑ94g~69585Ƭ g%c$ ?>=ď&!B@$S18G/B1Mk<D;:# eLBH {T|Bi?Ye'A||9uȳ 5bcN_;^~K<+~( ⃰( "(YM-$ BE!؃h H @ B +Il  $$ 7X    DB@  @@ pcՋ pcՋ Ver 4.11.16.86 00dbv t ~ Y9ř@{!*&yyyyyyyyyyyyyyyyyyyxyyyyyxyyy~yjy>~iy9q9.gx@xc` yq9g8$9"Q0c+X`3a `1:@Whrx$8+Im]1Ĩz0: C4lѰB저f C 4Ae;<sw8 0XD  M-6c!fӀ6ЅkL I4El3fS #x#\B"**1C@*X2)qІBp@BvQ93,Z]q?H8P"#H  B /$p=ZA#z1B+\PFp#"v,a-f CG681@BØBpIK" :e65'9PH Hqp=x(!%EFb@BD&D$2@#`\b0DFF_ٽ50 TS_[ń3 +t#1#,xh(bZ_k.g;:q~3}64Ga95E8$Ԉeu@`\.S`5BSU<8im)d/ K! S_/Ӭ/w@qOnI𹩥 ?73OUYnxjnI@O|3piOOhd(VhuD͡J ۦOH3\ 穅a :Zi\hebTRL>ۉ;3?d4;)³>d|>h<2Oo$G*^Q16`;,vӀ:#E63GϜ&[1pLɱ>z19CRbgg6<=HOwj\2!p3ΰ 7IbR*٫{ }:te;NkP:˧MԼ](_ZA/d\i`4 gX;dIo(2I|rVG%߫:Xu6&p{VIiLq+'yf8<2մEb/yk~Ǎx$IƳ 1^l.<著C^gP낒$ɇ O{t՝.L9vULMsNIIBq5Z>K-Mm'{MPanG@c B?Þ,8O֮ӗm|VFpxp lBp$FF  Xb=*>aTtˈOB4.M )o~X??6-K`)Bᣈ  @${찅`4$$@$$$@$T @!|%AT⓰@# F!pk#"aH pcՋ pcՋ Ver 4.11.16.86 00dbN L ~ YY;Z@{!*+-%yyyyyyyyyyyyiyxyyyyxyyyyyyyyy>~4<<<<)+y>iyyq CxYy>#)9&hgIyy!ig8$>8" U<5 ^ Lga'c`5SlшAcotE+Gsĝ2")1*gk`A2BX##4tT4l1`d@cdL'(124~z{,(xg=q!!f8+S&qɄc4h,P`tckt,1Ċh8F{)bRH c8@E%Α DU4B{hC5!4h!v4pWB$vXͨ` VaoS%d"FF)^0RDsD7( Dt$$XPxw,n0X,X аD6ƒ':,hLQ!S I”4FH&LB0Q :np!a4LYQ󈭍IģaC%(XK #iDXĔDÈ V X * m=DXvpa8ߥb20(&Ṥh<dĒB3fFA {#KdqaIώ}4JD>9C#!`PsM#Sl%bJ Q;; b/Hg U&>"MPгp/`&Kb!MPOUĽ`(#w$"qSY~_3Ev99w.673}svɗgjh#NИ""5zbt'>Ϲ$D|tzOV|o'ȌH| 񸈗&S>3,|эSxU  b=X##c 4lym&QaL15x ?h pg 10@a P\O< z-jrN ⃍$F7"Xb- ~tˈO6Zs2g|vű 9^;9%:F$v " B0qF"!A =vآ!A BhAB B BJ#'c1B@B@ B "!!"!bA B ! pcՋ pcՋ Ver 4.11.16.86 00db ~ Yd=@{!* {'yyyyyyyyyyyyyyxyyyyxyy>yyy<<<|>yy=<<|||8kq>yyp# || 4E8$ 8<|}=0g8`q 5aqMr :3`IghL%b$, !9B6`W+3iM稌hx36H{G ѐ1a$aQ89O NP0&ictit< [bmF`W3\  *҄3dF&L}u4MAikT,peyĔ p= tb k$bb$#l&`DX"l lD`xőaA8Ԉu@>@ :F hS("ᙀ6CH!bp=3GF, 8ǂ=`+5ʂ>@ #,LG\AL1 pA*HHH” Ub,FC05 G8@E#M0bEaN4zLSi`# ) K\,qMP:M 4XKa.4 !,!a$4|nP80oRRO|x1ogQ8SI1 SNX2jQH, Lam.@Ǹ%v1 RKWjgM۾IE$Yˉf*,z`{ȃ[X]"'uT!x&b!&PF+i>>80ד,j8n=z޲#"JQU΃C EZKrRүt_$X8 *GTrsCÎC4OD%)H \GB peTV`|fˎq;vE:dĞ"J)m #NQ1NΦ6Fo4IB?j=52a'ΰ>w6q>s3<]&ẕmda%THsE ?)פ[|GSsqMR ݎ /$5,gY8 rV /mRڴ*'(Ɠ4x>}(0M8bNGUGI*/3mA~^,IFv"Ɍd,H|ޤ_W'|LRgP !ԀNT.$*XlqQ5`20 hן0rkN)0xmF*1!rnetpE=_ZJܟ8u߭޹h(]O[2RXNiTB9Ng]y2hgs"~҃VO~ãKp8C5dg(a{?ep|oc6 h0 cc5cl! F`H8-}gZFz, U7-ݵi-߃3p$ˈQTpgV;5 So:Č2sU.xk€q t~5UBa8V%~qO&CV9>y(iNYg4:uVr' c3 TD`DQ!$ 9#4>`pAH :*nxo*1K/P kmïhS3<6mYZJ|gx[/Ų S3M2WaU҇tx~3'bV ᪇8jĢ|>g83u\퐃3\ciLiGaso:yT@  `X$tB! SG T? 2 t~y6bN1MLM qKdxs?mE2)I1% @|08^#^@$$T4@lFА@DА @@᳈OF@dtT$B! ps A :*C  pcՋ pcՋ Ver 4.11.16.86 00db ~ Y4-;-.@{!* %0'yyyyygyyYyyygyyyxgyyy>yyyxYyyyyy}<<<{yy?5^g`',*ءa)UX4"Xb#8θN8& `W4 "nٚ8ؠJXDh8lD͘ND=Ń XQԀw%vXH. bѰP&!X{BTc1:m0E0RFkL5RD#l3Bb$p=sH&qmLQ#TD X2 T<<+$X@G\ 6!  K$c E$I*y3] JcX܎8fav_Ot$T/SGz׽rSݲ)~[d87%+TZYeHed_rq+[ G]nn!#8SB lK*c g;B skYzΘΖP҇]= [ɰShZ ?')V^uD1K|qGt-x4J?[q3<2 7y⣔`x=9Εz~HJ$Td*Td"JJi9))'U_L)RJby4f,YJK.H%ՈƐQx<;Z?bɹJ|$tM|ا*lG9P8ð>x:\gxܝy p'g`-~Ǥ҇9aT$i2ထ)6h?R=l<]VB=Ӌ>-Nfg&?&,I&3RI!k+T3CF5O!bSi*BD0FF[ckLQ *hhF3=tE;0~wa9Gُva tps%a2Щc400,1~$~")7BXhh *X[ABEC DBS x%x1R 9N&p׌3hSI^}mH_c8>zfJE ġ~BH3<֗88^(-KG /pLy~ieJql}znRv4/~C13sDT.WQuRbC8K"H*hH>*"p"8GB t@A|j.f!5xC|.߄/pγ2ȫ[t^acR Ϥ&8e\_oS)q@ʫ]9DŽ"G_"lXoIZqp\D*.GkWYA?y0wy9!!@ft#aAH AXb= -)|@e'!/q4<Qg|O8(ǣ(|{+ /yBaa,߿ZI#_s’a@|@@@|08^#^E@$[ @4$4$@!A$|9D0 4$ $W8)B B pcՋ pcՋ Ver 4.11.16.86 00db ~ Y>@{!*'yyyyygyiYyyyyyyxyyx>yyixiyy<<<4<<<<_<98yq'0xyy Y@yHYir`g8nGppqM 6C,ɂBaN,V":hD TGl0>:ᘄX94qq^XP# G8OHQx6fL'`q&2`'%v4.Hypp4!2CxBT\a7Ar#!  Bp Rwc 8d5%s@{G!!0 аe!FFG5Fb!:x&DaD"D974H !@F1"F͐"FHƞhD1 8ņ£x|+khbJC$Bj~>͹Ø#t#ј%B$DG'|Q ft,O% ^E jXllq  &O DFHzdFN@(<҄x$0 5Jzi iش9O4^~i-H~iPC:( uƝdh;TaB*HX`/laKDtlPy{"pe8_e!z3 q;8#cjbIHF4,,q1XBg8% gxh Qළ"!t_D1|H"\hcAX 1mcjaw,) S13<] &`We&^ IOK0|.A#wiGt>I)< GβO<,.,x|ߜgI?~tc W'z1uX5=8c!miߴ"3_΢p˧tp?o|a2l0H1wDȐQGЍcphe0`1A*+ #`|f^l!A,tȈ-/AHE!O|}ZU-XJ8ãa$*1= yi)4i" #83aےOVxtq<"`x+S^ >8$t%|*^ې >dTE=<+)~h$'xm8$Ex MRň!ˣ"`5x}~FlMuQcNØ=4~$| a?95"ΰ3e8m_8sH|j⛟g _T2n#ͅqAQpխEJ@qeyt#ɘ/ROv!98 }qUY[ |Xb0"YB<, vԀ>D 8§x;]X l-Xؠ"#AX HcR "0 oq],vMmY~GXYh_&3L˧N'R8Yq&NDaڐp( ( _lE?̙-UCg 5?6A_g~ž')d&8~NJfLgx" 8y{KC9+ kߴͦ4)_v3tRO·!h|poڴk*g)BK1_6 *I >6r85,Yח8S:?v7@ !$‡ƒxS#aA A81*>u> 2/|p9uȳKo?z7FJ3Q8 gxB,lдӁ->?L8A@ !>0^#^GB@BA$ph A A H  ħ! !@ AH9n0 4t@ A$ pcՋ pcՋ Ver 4.11.16.86 00db Y < @{!*'yyyyyyxgyyyyyyy><<yy<<<<|yyc<>1E᥈jb:A2`G1’<%05hR1&- ҄3;O=6`& `FB#B$3 @!7!*B8Gg{G!$A4!##IxvHΰji 2p^P#h H@HhHآ D2 mьj2X# !X{"D4FAMOxT#JmZDŽIu<ȿ11E`h$1% ɠt@ BzF;?wЄ`,A,TH6yW 3IzhS&ӂ"IF\;'5mؔ k"EV=aȩ ;.DgDG>\~ez3m$DÈ vB{!$a+`KDL?}{"pmX/RROyx1ogGgPNsgl!(b-F,W)tB2ZF4)A,0@[D|IqCa'(| Oaq ,K 0*h"X`+4C,w:pnC GpWp}B Yx L4OpL$؝`zBGes8.c4&]-=OJ0qmiU㇦G8gq8xǯ:}C b 'u΍Q:$8"FsSt-9}OΦ%,) F'VhSEϱŃD⇜G>OXntYkп_SGRmJFg8<1𫻇QWoB@B^qBmg8BJo(٘) +^Bd>3(-IC#yƞ OT†x+By" U J؆FG5wU54ozeJE\ņ* ^kBi/TDg$()ĚQxz~:]M +__}j?35a[q9<1fg.hh >Q~8˄3 /FaɋfQ"p_Z.R48MO<8-|S__DE!81)DRȌ?t3׈i~Ua$~gg+ю+3~6H**Fa䈻56!Dq.|MXi4:K/l—Zw$}puz=#QUfZ5>paYBVcjƨZNf_3~$4j,w#/=&9JG-ACBE!ci$@ T{tFRxK|?ÇњS<X㇫٘!~z05Sk !@5u$$$D Xc!!h AB B BrY'!! cAH B5n $$44tP B! !@ pcՋ pcՋ Ver 4.11.16.86 00db BY.8 3@{!*J'yyyyygyyyyy><<<<<9<<<|< K b02 EIhb* f!vb,'h,0"XS#=c#4  1 q="B9* HC $4p7cx،~RX1fGV8YoƸ.%>Tx`q3@}@4P l1"aaD-LhEk0`2,A1bYРS'# UCE\S$hbJ{$QԄѱr0X{Q~^Mer<񛗜߄gLhN )Hܡ!R%hX+wuh64b)q |I'F< C mu4?\<ʻ1xz?I$R7D)0 Ol؆C@0Q@# pXpv~D8,$ʇ gG8Cm28EKx 5S ) epNl2Sd{\C; >>J t h稸p aT"K lXp\+q᏷3<E8?!Fˌ7e&^''g" xMxr6S"ۤ3m K)SքLK5=u@Gpq ?? r$ 'lˊ, ʃIR#g6򹋓g8 IR/xmdGax'Byw"QNJLԈb)cA|LS]UğN)͍iIxeJ߃]IlO\_ΊIQo"d|eT$M/`#˧J߃}&2pOjO1S_&aYpx#3} ?˄3rxgx<<=) X&pʲp4PHh"Lۺw>'GGaڮ13Ŗΰk8}xIΧФc8M,q3܆e}yҒƃ_3 j%1qG,A*zi#WoR"9 E,Kb2MEHʓxߙwG-j =\=9PEύ>uJJp!4T 1Q!4T4T4|4?=Fwim&Bѐ0E@T|y7&hxgy8F'$GF9$c#ޟx%3\{Z۔ "]pE G8Ój<<<|yyy<,<8<4<<ϯyyy3|yyy>}y4q~:8,_~=E<3|>(E#$(yyepz'! 5B*$4Ax SzLS&NC"Eq[gvWmRMx1ۑ?Gp3X,c$ac!6~G3_"Eng(͝1 wq FlWML)4)sb$ % 썅9D0bi<Bg3Ͱ$Fרx( Cui,h[lU"#bC7pBJgXn醿*X|w>! w6<)ԌbDf,%;㘍:4 $@gGVOOYtq2(ylpԧ/zfr$g=}H)!5~13t͹*>pZWMD2d/ !<{Nd>=4>\ZT ɉ# :ΐ Ӳp0SLOe@Q-'.a[<$aΎ ȸƆԧtH,yq1RO'i}%p0Gaz1X5HCu̍фbɄ3\O~:%+}8CxpFM"@jK=C'<-鑿3\p'-4}^zL8C)a!A^F|0SFeA\%2>0" .p-"BDŽ4ⵈmHi294)q#5PI,O\8Hs|*:+>j$DxK$+K$JϞ`/*.Rķ3`3$"_3gEL{U p f|}9g~1qs8ÓzP҄LAQgSgxlG܅H(>i TY.äҌc֗Q-D<,<Ϛad_t2^dlCF5H!bWi)wO&%G_pT3<-[%g3<nQ)'Ӷ~{:5e$~}3eǤ5Rig$X49J\y"Rf&M@{!*&yyyyyy><<<|yyy<<<<<<x>UQx5b:#zxO * I(%LyKԀe(0EXclgXBh8@EhB0?5'E;D%XI|QLR3`4BHHhhSQ1 I4\aDH,$ >8!a1"α!b1b:#H$*,#C8T8H|9 f[{=3iؙ |~AC,хuAS.`C-F$*6h[pB@N F1CZ@p)vC<1q9&LӀ(3~W~ˆ#EŘs<'saC-=`Āa Hp@@P:@ߵKhB =B nT^W`ps"b-ˀ+) /ȇhA8NSshqłsT<ue,"Da2A m!4S/pV[?*PN61͸^xkz=A8?r]T5(!3$4'>u}=׋يM{o$!Sȟ!GWf,Rf3㳟9LyR5,8êl,)lLm{Cᾥ!p~{AEt޵&yyR}&"'8ڿףĞ$)Vξ{C)%k WHe4.tz<p>~L#ţ ȸƆԧbɋDGddc:G5Hs'2-WeL))᪈ly9?Tb|R/]xVlOvԄ8N_ΊI8TN5%϶x;U|t>=wķ1Xgx<|t :_58Ë g_ϴE\99Rgx|q]M鈏 u"y83eٸ`L|ΒVYU%?! ,!YB<_*>^dl5mu%!l:l z=` bA!/& O^?j--(Ռn+p=z/I,>3l9E[׽9\iz3t6l |._DgWΠ}Rb"Q,TY0~M3 V__yGAc`_3\}4M8^Q_^!Nl'sRWf<pM{;[la  \a=ABBCBCA"AhW:Z m'˱ .ϸC:ɴUsiq *엎{TJG,epW Oƛ㹦!D'Y0⟦}J|ZsgWO&nF!\Q<>Jrs /i2I]ljKak) 7,JiX;  ##T4TGI8=](bh0b/ۧhD)P+.1]ٲطwDܻzD 5-ʗgjVo4( xVQw~l8ۤ/yVUr4.8&.YE3|Xca!A KALBBHb=zv1hN]&l`sɆlGGOE [8ҾVDp ߎ)  > ^ ^ `@A A yOBPa@ W8 h0#A pcՋ pcՋ Ver 4.11.16.86 00db BY@>C@N%A&y<<<<<<< xF(< L,<ϣI0ya4@%&Tg" Zk$B0E]UbM94=aj@ Z_$ t)WaN-A@iedFL2HLdhKSEPӑH}(Pv@ epNr9JrO1nGC 5,j Vu[F5"+H)HѐFiJT,)W>T L': oaJ}R!U@MՈ%ZQLm "+A7C%Ԉдr0RHӊׄ D1\ 3/Y3"$~E\k0PB% p Sr pEZ(X+QA B(S%P9@-@)MŤ22(Z PAI+) 5؋7 ORc k鲾}:F0̐e{: C5JʊeDm !(LB@x`QAP1(pv/ӛӟXQf̏*ч[$u= >a#d4A%ĵ@=C%S~9CyJl%mCz?Q0ڌTbDJ?dd[ 2c|nb(dcB6&T gcʕL'TTBH, %8d9M!vߺPa'8+1Դ/@j4 SF`4ѧ4Z+!W?@Ej haR=PI9Z`"U".ti ʶJdٞ5|H%'*\/PQ%GUD|Yn+.B3cy! DS}GU8oV; sń8BR%:Q!䘾~FeʕJd%E(H4"`"RР( D dA#=3 vrkk tia:sF1*Ju(1t2QYE&w#F*!WaIHoGuTJ `6޾;Lft4A6ĐU@V @hP t@m@b% ʢr"G\%'y<<<49yyiyygyy9Yyyyyyyiyy|>yyy>}yyy>}y<_y,MQ$M<_0?]i) \@+Tʤ(8r wOoy` (HH3Sj3ZŵB+CT*҉HCJTR+F \ӻ 3 Z hpWN5JBB5򦦔d"^+EEj)RjPq':xu0Z?9O*D%'u5]m4iј]VB@A*POBՠi T Ң iRS5 Z`XOAFAP0">37ShX#mR$F#`"S/ѨF@PŮFr3O`@D$Vс]N@I%GHuXuI'Ek "MG u9U~Ջ4RCg@[`*F b^(t7!+c&;Rtۄ_S[A!a،TJHJ(T G]'l61h*<,\>٘j0TiW JA&jFE%TrPʊCPo-]JR%jZ=umա9 0;T0Cӄ `'~0 " hdRPI!4@,b⁜I{*1Mrg4"ӹM*1{:"#\u2nrW%ҩ$` Ǡ38*d*s*qc4}:RDQW"H vr=)w-ALpLU'NcA:^XA jxƊSIiG c%~RA+zbB ckJh^|A$U‰ JU"JڵDǓ1P%N%yD3м~vٶ0ɋDd.)u(V:Si5{31ԥ*ՂRX1t8T*נFB h5TPe!ԠQ:pNk*>в 3P *0jU"nfls*qr̀aM w0L4 0xW%'m)d*3d`kJsihD5BX,+5(jCҴ, "EJd%eF^#jB9BX :btLmfKjD΂RG'm8/00A4WsJl)ߏ54J9O9ʳ&QxIY BrI?0]i78 1JՆow5'' 3K0΁Ѩ^ AV"+Q,*H甫UDs*"š  DbQ4im SS+YH%|2IPFWdt]?k1y"Ě\81p"0jwwa*@V T m)(@EQKn3 Д |!Z"ļ"B༁}MXA}mĺB(VDEQQԣ](Q,* dQ ֔,+(ED ((B>}@  (6}Bb*(W@b( (Q pcՋ pcՋ Ver 4.11.16.86 00dbJ H ?BYO>MS@{!*%yϯyyyy<<<8<<<<<<<<<<<4S<<|<<<<<<\><<<~ ypy`g8n1:=.x !*d,Qgh$˳>9Yib ?->a%)u6&pЈ#W&gxޣϚ.l5ylOw&. 4!co"dX*D(1^"F,+DSpDRĞ8ی M12@PH8@'* /ET ѽfZ ^lаDIqcqN,ІTL2d)HpA%Lkp>bDTlq)d#"`#Ѱc "ĈsLYP#KkL @lpͨ'QLݪT9pm܇h<8D Cv1 RAB0#"K$cHggd0zzij3îIOypq"wBnsg,<E8b˸rgML#28'FB)vKW#f$<C¸~ͫCR41 3cSΎ y("9_8O gh 8rQ(B8^"6qø ?aJ8Uw'Ĉ=b02^x}DNN'#2D K|`$'ȁF !g8Mօ53?/ s=5Ht4֧2E[(&IT3hgxNO367I8 / g5,b&LYI᲼چt2'ӤAyg[?hF/+ czt N2tvL@ uvL@1f:;&MنG54α >i<<7v)$lKЬc?9< 1R” GD:!/0R3FbjbʄG57<6|;-%55DŽ3.δ?Uxt60pT|g8Oh=28cm%WPpp7cgFT3cGD$|%|DD'Gk1ːd<^W5|z|wP__"NA'*b:DOp30~Q_QpI_, g8*tvx68aA##X_~ʲÇ /p L\WpUU7ݞV1)D,<ϝ#u}dpn\S lE#/y֍߃_6Kl4L‡\:Ά ˹xɳa0gx!lk`P0eKR6W%'0Oe /? 5(lAY8cy_?%L`v6&pixmy>G3Fi( Jրw; WhAb!A7aIb"!"V8V8bxlfNHؖWB!|&4\H/ﯞnK))*?3<~Uhs/ ğW-c%PCƃnT }h::"C|Bsk1zkCE6gxĕ_ \n!>Wx#bA^16רh Ix {TFJ-93У5.y60EUa1 JC*|  x @$!!o)4T A$BqP0@4 T4B@@!|>X$   !W hHh*FhB pcՋ pcՋ Ver 4.11.16.86 00db& $ OBY{;=~@^5P%A?%y<9<<<x|<<ۏ܎ 1rJ 1T-r:R0[ɡ]0pD%FVi:+ ZݬYB]4T`Vl*,r$*ѫ?1T ִ=hH0D&*rP; ' a*C8L`bjRP6˩J,J /bLDHv2`xJ '* @%0nG H"+H?u JJ ̴EH0P[ hj$ "]R>:S%ź$Y7Nj~IWG@X#*h!j [IiDcYItDL(`s˯yyyCX`r`[X*وnTlIآw#l2(7ˌ+XD4F!DCCpK56h1ZƣBī–DA#aj0!::b=f8ÃU7}|t}ڃgxʨXh>b&T$ a-aFLBy !q!<ҸtE0c/#KDP-v")Db(sCX XW(  KBh0łB!# 54CXS–B{01b  BC?$J)ƸB#h-MDYA'4f H*tQG(P(Y`$XӘFh6pgAt&'8eDPq0x%),m@ D18A"p:Zao$ IDr D¨۩g]Ϲ[\x'3r;c!){F,xɘf,)e9HS2jhFGx1I'.4aL\>H~A N|$q'"O2ӌ!}a*oMN &ae<1N|t6ţ+%Mq O :3 i}%CMLOx:O%ڄ qubbkbʄR>y)5#Oj߃3<^p0^3Č3yLs<qqWLH g.|Dď$e#ߨf<3>"E|+"1!a/Bx?fLCd<[l40gX~$g)efA1? +7E̳86<78i! ezqEBY`*9(𺍱pl, ((:2  j,p 8A  DбvX [g4?ru#c234ˇLNn=:+FJ!~1uy $i# JtGZMiK#qHl*W^]pQSuXCF> * > v#6!0c& {9NުFOF/ç`u5 f|8>чH'v I3߽G`A$T,  @/`N\ @{c/(J-9gܡGkN]l`kb0PLd=ijO  @@Bq$B   B@B!@'㉏PP!$@W8  @  pcՋ pcՋ Ver 4.11.16.86 00db" oBYL8@{!*"3%yyYxyy~=<<<,,<8<<<<<$@wc8a30!,(`/XFC,q ^"X<&c zygxx9AG, !#cai,HC$$cG,0{c0q=#eJ` !v#*ik`0EB=/ pOG!08 6$ BU7]?C"$ƂƳة@!G0rb&QJ8D86" NJH&ˈ pU\n\B(ɂD,-A’4vFW&82ZϹ[\x'f ͝)!)8ftH:'6BMFȘ OaIWN4߳;S+gا3>eBڨ5(~13ڴI.qA[/E v&:rGp -+-jWK,d8*r ♂QvRDбV "戫#xgxa)3)!|Q"ԌbE(xXF0CbT5|!5E|tMKh>ϚA|{N3rOavO=kTQY-q"|*47?w2/$#'RnqSGŒr' fM/馠0\Q/2dcRɗ f^aq6Z8aZN φ83wx6P!_KSN2No9 H|֤qn|L F?L2!XdoJfx{ # !/`NCc"@ 8S_0R o/Bſ;ze &.~‚ėY12*HBB ^ $8"A ;QQ@  bA B>xC|,"Aw #  l !@@ pcՋ pcՋ Ver 4.11.16.86 00db& $ BY\=5@{!*"K%yyYyyy><<<4<<<,<<<<<<<<<<xyyyO^:yyy_ӯx<<ϓs28<gy<$<˓,ϳ,ϓ4H<8xd(gXElxHSq1b+Q#^hS<4 } Sbñ!"an\4gR2Γ9kEC#FDFw# # #)CX 0*#)fqg#8DFt&8BE RC>;!0%F[#FQ²Dl@,4r)2M>8Qgq*Cݲ_9y?$!>lS"MЌAt4 [cp%B2b$ 'F1c caH\cQt5Fan, BHb4mĂ7>NwȠ=6 AF(hC$4cCb),q poh1pL,A-+aZ`͘qNw IJWPXG t=bA$bdp@"L_8Qv^>gI) G?"$q182 pE -0ϼQOS$H%(xOi_у8o+p`FaJ+!#nF%vώ |HF 3qb 7]9:HhmI4P^i!^/,t“D=3, p?oTSON鹳13lR'ֈ )dpFB2Q#hu'WgxNdcC|$Lq Zm "x6|l*`t4F'ěDUChB qflLĔ 3t)3_sRbO M<R(b jx6f|`D%|, 5}1~U!|jz/g>Y1~שL_S$`_߫ʊlwN|C8oQH8 $*?@ q:eivV"B51т3s?/niZIN^l! 6!<`g0S'٨lX@|g?8Ëq'85\dzApRa5xkVxgJl&x'3<ϝ<^ >dlCIF0NוxQ X`k0!X"`a+ b*}WjU㔒jUb gXeO]Q喏 /Գaz'.kg|{4*%Άy\'\W xO& W+~Bڱ=b1LYX8[ 7>Qi*6658mxHS6}mt~u.qt"iT;9s֐*g x/ W;DD@06 n" hH Q@$tLXO'0s;#Ar">P \"^%E~S H^ =Đ?‹9Cy->%6}J/;8 FH ChH(( FBB t$ƕ%mL*d2~mc4_k8zy0z=ExS iR=>cgx{   3XHhB-T[F|!:S<š  xU ,pÀg)vA BB ^ (8+Slѐ Bq)6HA B O ^a!@  BE1BECKl ! @ pcՋ pcՋ Ver 4.11.16.86 00db BY >$@{!*"-3$yyyyyyyyyy9Yyyyyyyyyyyyy<;" Fl:7fx?骎']3ᇓHh`#8ph0ņˆX\> Elj(@8&6*!*X@BhӹpNw@q>) (^ pJa T0SBX- i"X ?t{IhDpFm+C,p$q0r^I8m<q/F\ eo$-b"bF 0"> GcAlqMX( `[CĒ0 tĈ?3L3îZ: G'SJ"-L3F)ω Ftl2:1 F㵔Dx W^+tFEJ8H_ߊ=8ùA|[z S:!olil|Q8͝=D?q)#8*vѷfJ))?gh@xw3ш Z"Gɸs/L8Ñr_igx&xjB&c!|0UNP'CDW#=o,Fo8>;&HpG3(,uUǩB!?\gOhi㨤/$~C(g gh$6AE}8q\A_Y#>s&8:&)䄬5 p2Z@ GQh?xr3< p Zx8E ٚZ/5L"6l,?A ԧ9!8!FXL6!yvp?zg=8ãg@d:[Tt3X gX&~>-qX#wC) _"A njw"a%|G|bM_~3\&U y<+O U|t£A4'21kOPi|}c˜qSE:7E(| b7L)<'8L?O4xE39#ΰO=vOI%&.ԇ7 5c=/_nڞ `_٨lX_Hƌ34E8q=U^# gx&/벞x@9Q[F$'XQ2 Op@ N ^RyWPO$K;PN]@":` Аp-"ސ3^i}#ijkc8Kgx\KmZ0V̟ `{6 xZqkg棋ڦ~W/ޛG!MFǷܴ{A4Xθh?hK(MxA~YH/ /]ߛB~3nUJɻ1 `d}Lq3Q$nqGl/ , L!1Q6[* Hb*E7E$ U#Z10 Q~du+T2'SK#f|CZB8 Jp} ~9=r>cH *B؁H)8W[ W3Bh _kuuH>Cir|zAx>б! ! 8@1!$ {`y#%@e_}9M |am\ ~X$ O;XS $` !#HH0A+ t@F  !K(# T# F!pkCH **6XbA B pcՋ pcՋ Ver 4.11.16.86 00db BY=E@{!*"!3$yyy)yyyyyyyyyYyyyy><<6>aAlI#c!F3d,SB=1m&Ga ~B-E%a|)Să8f~3FFsb'LA QMKQ 6 ܒwR"?%TN[G>󽪋up3\O=/Gxxi4u(I!Xkᅰ\ ΦpjSOsq?f {f*s q>>D{o>`z g(w7_ ghS,TSPB:$t|59; k6'Z#k4d4#G8a4^<'H6kA ,ygy|'p*~Å&¯dX&ĶSs| Qxq8A:7|(| *gSP~'8Z8ô g+gup֣ :!y5l8í)_Aq\ԯ g Zse|O ~LqYlX yRI 3Mnp+Y[,MCaov!x>)Zc>Wz2`|N'80>o;cjs' !XXo(@"*Fؠ FB!{U "ߺ}L>lja7Ui38syy6 9&J:Spu3L ODFk,7@ZO1L) z%MZTiv|fh.ց10Xq|Q6)=QO`rJO#~ ԃԾOt9|0gHSc1Wa@<ĀSaW;l1BED@BE0{ #T$4$ Ka%ʀ||hrR#M8c2r 4zk(jQ1VKӿ#5Lˈl#7HN" 8yg: ?BA$BC@B@ÇAQH8;B! S$ĕ51GI#~G ">lڿDGp}Z> _G`B GQP1A A;y#|T3GkN]l`j?tBLs)gSF @ <""! 8F@ @$p%6hA %|AhH B p   l0 !@  pcՋ pcՋ Ver 4.11.16.86 00db BY\>M@{!*"!3$ygyY1yyyyyyyyyyqyyy><<<<<< C$Ј"vCpۈJ|`;GJAq#ЄmDH/Xq_е끉CAH㳱3ƫ,}Fg!$#:X٠@S"cB?L4!ΐæZ8*G qVI\E³*;8Rb- nqq6cC~x6g8lf 0E>_DUpi)Q`)iF0-JxDxr$h܅h[tvH3<qǂg'Df#xR#|&ēDW"2яZA.SsyvLൂc#.{%Z``=`ѯygɟ8y⋁ ˂Q!5~xΠ,5N|kNkMp`\9ѬٖZCK Q'H$#G8A qD+#\"MWR34n%[ 8h*>W+g@{~ }hP883}` S -~ɅRBGgh)L/OҜ! L.<4G1`?g)Ni(y| topyfg ⻦A4z'8V$ x=ئ|$z@n*it>\W>Q?gٰ2*\ ~6 t&'2/_?N{l?l0AkJق 6vǜ^:֡rrOlϳ3<)k;_ =OM5<7S xucjs'N<:4 kTm<kCD )QCEp4³x8:N['j=mqo,>*$ڑ:k[K "qL"%qvcg$vQCNJ68^߿B )pTFTqu3 #2LK, x4bw8ËzI:״04TFfgJ)0P2LURp+wmو3H12v"#C@@@Q; TdT4 DE16XbH_ϓKTgxR5$-1Y:բ9<[YK3lA1p8L;óL 㿆p_J|͔\|'v)AhH`($@4$t$WxƖC<Ԃp,<(bo $2/L7^~$"8Ҥ{q}8F dLA@D !:У5.y60q1O( b 3 !00q<e񗐠DxvB!7`mD'v~$AOp ^>F%Hh6<5pLy3<R]/9qꥲ%Dƀ3%KX^u1U(ׄӓOjN| vSR~81jƷ& |{Ma(| oZ#xHV~'8V4f էx#>RgaRUqg^՟pf-)U|pȈULuzlO.|g|B1\) ely֍gSW_8jor7_i ڞ*)~l3<?f;)[H|Ygݠp-&1N)1*=tk[|űe$]jWOꀏN8< &x<|T$2SXX{<; $#SOƒm/9,Qk^Jfp3|nk4dıcӇ O_닫:+ Ȫ%s_Cvr8z2/2}EL?Xa3XlĩFO}qu̍)~߸ec?"' Fq@6A0A8 AB*( h ,<23( O]QR^>it{K|Χ PC|Ln֔.@Àb *ިaw4 !!(J`4D@ܒ? ?s4.M | QϢ)- 'a@D@<n; @{Sl @lб A ⃉SO!#!C5n T$ BEC , B pcՋ pcՋ Ver 4.11.16.86 00db BY :@{!*"c$ygyqqxyyyyyYyiyyyy|><<<9<8q, E`^$õ4 ~ǢgPG?&}˄rZ(a^13/≔Bgx6(8CO.4\pA /E}dp4?oa=c bl<( :gx4njOo4p[# Bq/,5ēDP"a^+X9<;&ZQCg_O̓p^qU$[苉3 r޹lB CIQį?16Rks3YӟE,"QpE@#C<[ėFd|^#|`D"!#*`UJ5#*I'#T#!9W2`;r@As| ' MF.+bYE'*WC+h3Np<74Fgx>sYJHY+؞ pPTqXM2 㬩˿ΆUΰtra~:-l40_{gLCWb_\φmkO(06Ex`3b8F4D~gŏi,g"j?i;%t1|t7/Cs1,"]MG\K/NxGxvsY2΍ϡ|:5Ĺ*Oء"#a+,y9ߏ߸R>UWKs泘_>=P-߽>m"ΰrI+?r@6J+&lr~ g8!\GA5LR0rFeHyba\3W,/( 80 l ѐQ ##F1! @Td4ttlD'j<<3dR1)9`T eNu+k9uo|$v=;<-Mڿ]C3+qdd @$=@@B@A [G7>7> 2sPx9y60qsBa1!Y!%KȸAD! D!@<k   ;l @lб A '[BHHnp{$T$   BFG! pcՋ pcՋ Ver 4.11.16.86 00db BY=%@{!*"$yyy9yyyyyyyyiQyyy\><<yyyyyy_ӯyyyy9yI(9y ?8<ͱE<>B2 saGasHR8Fn 0űR9ьl#)B Nc&,bDBc@'aA,Ll*hFwϲ"> 2#`z<6b1Co"qnOO4pB_mgx.xiBWX)/L&jCDgLck#lF:'^9ōQCכW-NڗeVTo,d4C :pVH  g9"|~`Ə\vJrA%쌽F`cpB%89 XLf ь NM[g. !c >x6'F, qZD bIT.( qD?ð ď -R ϓ9BA1,H':[^r`Y5qb= 5Y~gx&"~@xp`##?[j̏" q>NRCʏ`{17GT ,!TE|ė7*I'#TU|NR~%|(Fߗ'H'3a/=T}^AgLpol[7nt caPRԳ7D&NjŔ:kL82Jd/Lφ (/F0g8 ᦄ'"[g9Ά.l֥Oφ 87$1>%Gg|tDj,g|$t ˹xA0g8 sѭ7J-\ǿ}x3܄ 5^vwݶ109 ΍/`) |ӓ>D3F0>XhD{8* hHhBDk* ߺx8.ՕWg^Oa-tBLg^J#ݮѩUq8õi !pJ)$jAzgϝE8`a< ao4l05 QP  6c *H loL|@|)Mf w1==b5y(/ K5ExZQv1Ex?z<#jD 4T44oа@E! D T Dpl,4R;*K/Щ#z8X>ڿ]9^u!BG3*B*a15>> 2sPx9uȳ/sBDOZ%LA4   !< q BBH A cEt@$T<B })M!! !!@+\BE!$$4$X ! pcՋ pcՋ Ver 4.11.16.86 00db  BY9@{!*"@$yyy9xyyyyyyyiYyyyyyyO\<<</yyy>}a><<9xYy>ϓ(1xaqs4<1<2F 4)f  g%":10"EajE@#! Htd!IT!81 X`i"2N0@cTԂ`H; 363$*6)"a/FRSG$.KͨXDCI12HWqM p #CDC02 4$$b*h868Z)}%-p'ug8 LQGȟMLQ[_82 )/?hўC +OG\0gX68&~/5gbqA‚x| BXi1@–Hƾx3<we2zش{>RSxbnr;cI) qM^7zƖ`:'%ѱX&F^xKU3)qiNx8a7bgd|Fk!?,|mB[%>7H|00g`x?v\q+>s1n#] !"`̢T #2gx9nBOK4pB_mgx)xul =㞨JZw<;&Px W>h~{Cq}nF:K˄3XpRf*Y3V\O#u |R39?b?}3p!CĀsx5㈨'l*`1!N&D28!4!omߴx2>4!M<$IcN"M| yziXD AitьO}42^Vx&}*ֽ4դ!9x gxf_ L;H%/?{ PgPg+ Mζ+x?e:8jaO?r2L|}qB-7)F,=jƫ1?pJX ռ"2jWIP&*I">U@?fZ+UW2`;Wr@A2 Ľ8B$qmx}j'J^E 'q_xZH5#Aa9_l80_޷\φ8Rxa2g[WXu3?ԴF?|}6l3p̛A!aj (+*r?@ Py6xgxįMYҬ?ئG|O؟ĘȥƧUg8i!p~;]5g O-CPϚ#;X^@V'4^`|Hqn$b"E@AEEBC Ǩ^x!tW,b N4Xzj >(xj] >_<5ݱH5e9p:SEO AC ;,Ѱ@G#T7`B @44TL B7&j> _3\bC:_+i{PXݢ߸nRtM oNJB!" F  T,  !$$TDw2C טR.P~C#>7/, :}$⠆ӈ:*k|De^^U<!@X"Ah B=vcj|(/ie (|HCaRx W9H A B {#Ba*k@ !OmuBGCCE@!7=!! !! !! ! pcՋ pcՋ Ver 4.11.16.86 00db  BY<5@{!*"0I %yyQ9yyyyyyyyiyyyyyyyO  [QX{GAuaGՈZx'-|DD2qń]DBc($78b Aƨdݳ 9 CFlT£xg-HM\2H8p8xPģ"#hy ۪YpVg8On)uOq\㷵^mUx:|^ԟO^FP3<yHQ|p Kj $%gx1vWlE-|;s)I#c*bx3<we2z5ZOm>XR C\373FωsK0bEhVx«Mk) 3Wj?c1Πtaҡ gm1Ҧ$G!g8)ot'8TSc:>+ gx$T⋆*aDLT !h,J o8ӦD 7+uᅈk Xq-,AӣCU}Ύ R+ݜg8JAxg~+Cꯏr$3u!bE<|g8ȟ\Q"qku>w ^%WK,&GD?9 ThB~B P#xU!~<ބÆQg9$ g{B''a4H/Vx;2ΰoOys:\߃3lFt88c?Ega^ſ.VD}tgˈ&z֍߃+])}LTPr}O"O{Mj3ZD,Ԍwcx'bLEx< Mc WB|s)|Q">bI芿$[|?N?fu1`;(A~ ~` ƒ9)؍BM?bZOq<ϙ`{o!8O-^:RPq{M ` F4;[.>3W\ gaþ4\L׏ᑪEi ]2 PقؾMb 3|`30 Ha94~xQ%E:+L_3s pW3ڲ\Ŋ]rPj΃7_, mXVVHK4ƳPq' >/Mpn|9W|> LPC0>$W87:X`+YP!$$l!p;'u&ebiT'C2乣uue {wF,iD:gx3*?Z<-ñ롌Md񩁌Mx  BEC@k!a!!@Hbk\xhkLUP_8EU:Z2|2|-N߭YĮSL]QY+0GLuYuRxˈD_Shͩ@ |~ha3( 4!!"³XF!@ Bx  D@[tT,  D  &A{\ #   pBB pcՋ pcՋ Ver 4.11.16.86 00db BY=!@{!*"-!0$yyq9yyyyyyyyiy><<<<|yyy_yyy_yyya"zb%̰Ѕ}Ha'(F,371b= )q8`C" qN1BE0X>1HCԀeG<0&񪰄"*P!Zza4̰jAF0FWCHtLF9C,XFˀёNPPC:BD"ēB Ȍ `8 1@1"a"z K1$4LxHhQ^8ؓ8#0c755`MD2z@A") GX 8U@E>h@88E (l$l0XS$,/1mcmߘ.[)3^(0ճOiOi(ADCa$L@lQ*,hP$#_8D!Wxobm<2 #I󌵈GE<4'IxXkLl3c|"6jJFT|l=XtKVGݥJ)8 ݥm|35'ZJqږ3<+=/Fc  >y6 g|"(-_~y6=g9uX?_oy{˲Lk/ZLW+1!΀O]JӮ!7CeE|ފ1F&E<0XYMj>b );{OnS| T]|N"XNonQƏH N&?VĢ8 ~!SUO=$fl8t:ҊM>F!yrS82-KTa0Yga Ίi)NAMWgx,X8\ M4][Q  T9~|99 gSN<`~cŠpf76S?s8F>Vt;n8 뵵*8yn+$yۈdxi>$5s'_@c-㝀f1'tL0e`e@AP 7X`kH:0W$j> >__&qk&gó?(g-nZ~@$MyQ?"2ocT9\×NMXh0BhАP@$B `c!ntp__XHm! Z2|~-Z߭GaĦ;$L{Au8xk'kXY "QCHh0"0a%%@eg|jԥɳ/ryop6! !'`P@@BH Ql* A 8  D A B &kī:C wx F  Dp A  pcՋ pcՋ Ver 4.11.16.86 00db BYk<n@{!*"$yyyyyyxyyyyyiy>yyyyyy<<)hqy>3hqdz,ď9yO8K'qu,"$Q#j<;!VA x=H<8O8`3H<4'hxV8áy7wӀ 𩯿ccZ =-iiGX ;9dƈ 8Ckg3?8<|̮- 0 #:BDDe# K\\#CY=)1i?q=RR~_"q!cICSՀ0 PtN Kc)Qd^#>e )Y1ZJyxqLIg3g g]x5qTu3<>KMz8U7 O'XS0U\#,nqĀ3<,q'"Z#q8 a21{+eM @8ģ!jεO:>] gXt)p], B$8.}VҚ>p#0&>Zzg4N.9"MN4!F"MBVنuGBX`GƫikEl?'O(|Fo/6 8L(O#D|6ŐWʭ p^cEir+qĞ_;WA?>sr|zt<lφt&҉6_M SʃZo{> b'p{_O|arp1/O_q|5'? 0?;!|_1]XD|&(8ì/ͼ"L})cڅcC|eGw$#Tcz 7ODJ FξCUa?"U69 t$:q8CʇO`;'f⇵΁9_lOÀgR aB-OpKNJW`([A yQ8G t(Hu*aUYDFq>=gNTuO錇hMY(0.))hܙiygX.|P ۩Jǧ. ]>w 14yиNz#|:W&8}X4cc=gaF {$p L_Ԅ؊^OTU<_GI⩴8X~QSDQ̈3lcM+<-88H8, 45##@`= b!0F0*X` +5i8õy?ڻLmĀ_nZV#x)zYG^+=GUSiW h0*4  @P!`aatq՘FW}JO2s[2|-T߭#!a*֧uTG :8$FؠBH Hh0BCH QJxˈO4ͩKg 3zBa1ǓxW5 A "B ;$T#  latP  `  D!!AyyyyyyO<<|y9yן~<<<|~zyyyq/S/E)b&?vgu~ukiF8CK7j« ` bP0Hb*sgxZwφq&d$G8b7[86b' uc'EyG@q/} ?DF^&48JbgЎgxghU48ä gO<^x_lgx*~EuRB2 OEg'o,۩JiU^'a?^M 5Z鴄c8&3Ǘ^NӀq瓗qFg> >__s;x<=[\AΖ_8<[gЩr+wI\ gma~WeAҗ&qr{_V%Ure3(6Mۛ^Cb/"~ 5S @qHψX^x(_3 &(8ì/|o0Bͱ#2+{k,T#z =K| *4~`xgriaH:q8C# ?g՘Ug>ēg˔a5ñ\yLc oRAaw8Ë5z2C#zˬ?e&~3#ljMgx8rڒiƘCͪM'|pI`Kt |$A_0^`4d}|f@ x: {xal@8(H#apbQY*^Oj*&^.$rhzCgnۺ\3M=Z'\ΰ?^D\8kH, h BEFAj@Fq F!$TT4$F`LW&j> >_S8à -b/\Tx#> |W#r8gUcjdw2x*H*CH'J@@4B` D&WU#WjӛGz2s[2|~->G߭G U:߃!ᾆQб! C* b-:>'i S&> f|XC <=M@#L$@!b"0a "H 5@$!kăxx FB! D!7B#AH0 pcՋ pcՋ Ver 4.11.16.86 00db ?BY,=@{!*"$yyyyxyy9xyyyi|><<<]><<|yyy<<@?pyg)&yqy'Ig8 R6jER(pG!FPFp"$RT _ăiE#`J0b^sx8B(p4u6"e(c"MQi6θL38ăOP^"#BQ6P0T gG8$zD w $*05'#&3ָ ̰ E$0cB$bȌE!Q5H,#!zxBa 2aE BA 6J$$(<<ij-H  p@hHhhha*4b 2R",вpCAU#:) a9 %l.lG+q/4*B1kE zBS ( xNs,, 8-ZyYzLxgXU}vQ&p\bͯ-&kR+QŌ3*q/_H|:JbwvF`0HALQ%$9Ɉ3fS=ԋ O):`[MJTDA:vWgxRoF1i$p!chS%%@T%b-tSlD /-}8őmЮi(I/ /Q g{g8m~g^>/Π8óݭDƷO2F<5AA!aX`Ac}Dx gx4n?)1 z/ u၈s⭀(x 55*hbzal(3#lFᇣq'KsZᣒNڥ>fp5.8,?U.φ S;aS.g$g {>%$gx(YXO9A Є'D;!ڄhЄH lCţL`AKivMM@bE>3T-x _!(|,qa#xi|ryE@i~֍i2 /T2+a{Ӫ 1g!ΆxFzɳAl3ܹި^(hk:J*R 8弢p]qry68r:8[f Cg)~O7ɛE @{~?~y4<~|db9x߳/SSiz"ΰK劎p1#J#w5).Q"i$|&G||o02U1džʄI𱭞>z*~D9?S|':,<4y 3A¦9'up8tXR ߕj*)W9 |CNp[OkO G>ߤ=/m?ӈ'Haixg]_~Oxa2ޗ]@Bؓxal`8!a=z5 'O]Pjgfa25$nza,9<Ҳn7yR 2!?* ;Xиؠ`а24  hp@Fp  BH(hH #` kRW:p1?1~§x{r^39++c2o&~>hMS;"t$F`4T$ h A08ƃ Fan*5#U|V Ow]:|`}Vx SbC A B  T @lPR[Pxi g3zB|yI)O ( 6DCAlCBGBa [찇a$B! D!$숆B "5/AHh0"C5!@BCEB!숂C  pcՋ pcՋ Ver 4.11.16.86 00dbB @ OBY$(8)@{!*"G%yyYyyyy9yyyYyF$!1Bv#NB (@xt d" *#X4"ňăP hآJ: `G% &$E4ī%h-.`Jl"i@А`W *#E,j)=CTt%@ClP(ta(l1Fhč }\/Č_zŀk8i| [yx8;G5UC8}q[MN/g-?id rrHO /G|~`qUI"^Ŀy g͑gS)bBx<`N u .T ӹɈ3g&&(@G0b3D*GlRăID4) (2h ^SqHW@qן>=? ߭7i]TPIz/ OO3RW6_3q1)LElQ)G8zx3qMO\7%34KFƒar39q-1Ba%J^ AxKE|&g8n)i_&gpݒ5ѐ#{_+RBNysPJ&b#`U $Y0V "GѸ#Ā3<(q"ΉJaԌWώ ,9ώ 9Qn~C܄ ki qi?[z1o wUgs>Ȣpj\6)m"pȷ+8.|ViV zoX#*Da鳩i'gS%@:!J ROMCBxmxi?O$aV\M|ҋ(|zZ\d| RW~|*>ޅC {ٿwt6U2}e:8ө3W\85rzp0hV kL'bPΜLqX\*$x>RSmog,$z-YALч'a'x8`s|zaj&z~{ p#))rz/8҇>/-IVI9O4`S xD|#HK'SpGYGS`)wE|>'G~~;Us"NqRO`? G&H(|}Nq>!~ XSsig1S+y§f'y#xڒ5/bGO--AU8MpW0.z+ gh>5T85MY_?'|+>F='d0>(ox.@Xb=$aT`Ԁa-j9O+Tj'eLS \)>0%&2q?mqD/3<.-t/+CI*Iqm9>O(Đ ;k ! $, LR@Pp!h* c*,0Eŷ8_,tڷI=s>>L^ ?TSWd'?r4 JA`M,P "A0 "Hx4 @ A${&`JFTPO*ʀj2||c?tէX?AG<<ӟyyyy<<<|9xy<4EqyH0 ?i*Gň`\Opm'x|> $^PDL!{DK2bIFT*8F\G!:OSƈ!1Bv":+i F$bc, DH1Bэ0%`X X{4 I: U22662G*sf|N gxOoTK|7vZT)&NoqTS$0i+1. Wo^'!< RS#T`bd4L;]BCv#W h!PA&Gl#H`'M3Oҥ%a@ᾼs5AؒFk(I KϿв^v3e'xKNAקa) /O<5ټ 9ΐ.\6qHg ذ|y68&Stty68&pǞ_ D=ن q?+1paRq|)]cIhT?2g(3؟`sB4#M~BbdB\-{:4+>`FǢ s>g;Osxd|Շ㟧I|FgXRS>_,YC@L3G~*$ q'Sl4_+.SmJq '}+Άt8:NN?Ӛz-3:\~{bVp֍Ad:NO/W_վ+)ˊz/pYMH>nk$[zOVe$|&QA )>X+9/O?nlT#_ʀ_'j G'hւE Q *I!n s&N~ySFJI9qHapOVO'wbyJ:)HO0ⷆ-cMiF}9 )7)LjT`O p3b\jl >OXq*>ha!|A j#+@":6X`cDECC82>Ԅ/DM54 +&i"߽WӴn'Ie+ň3<p~H4Dk/8pg,vH!FC022n1`BhhH"HK4ߋi8]!~A)cp*|X*1 PCT-0Dч2'V2O tDA BDE bBh  cQءR3Q(z ?5b£+<qc p T4D@{T|(?ȧњS<‚_40(C<<<4}<<ӟyyyy<<<|ys<~ֶhY8qgC<8qU>6i'!$( Z@ hX`KH#TQ84 Дߕx32ăpoa 9q.,:&K0`p,I9%[D|ނ 8þ4qpBNB~Fҋ ? s3? -LO4VxM'דJ:gxh38}2݋CwMg6Q0S-0loO|y62ΆYpQήtaa刦pI#4~ͰZ Jh=qxh<8?!Z zB"eH"e2!݆iG ~^O |8OL|X]P8ֆ qD|̇dbE>?⳴wv| ^0<4>x"NOi?OT φ}K#{$RݕQhu8">v/!_3ܦZ\q/aͳ5 gx~zo*iks3QHo}Dgx>b"nLφ8d,.yDᳮRZ/jQ8#æ(.jFsU>3<1Vd8 މ?I 4?FoFNPpXGJ}ᮈ8 ;{">GCO4<'ܿKI,'FL% ?:HS|;^NC8TKmSyvD/On+Yqb\e C\OT9jH}8ğ#L%`5 @ 7 A4T4 QQ`4Tta@Vu63ܙI=(Gk✼P~>|t[}6XרH "Hx( BC @ǸU@WFT~Ue5>wL}$>?:|xŽ81q %HHh C=vآKJ-#>4.M |7#|B((8`А@@a=vh  ;lQaT$F`$  v B ^! #h*{ PP؀  pcՋ pcՋ Ver 4.11.16.86 00dbr p BY >@{!*"o&yyyyygyyyyy>yyy3yxy>{yyă<<<ϯ_yyӟ><<<<<<x6bQ A⎄A|h[*FpO)F0`3 Nl@ pOMN$lBl2^J$R.g1<uX xEJ_ZxI-axgx0 +3h-aϻgX'.ҷTj]{x-)L Olv!#ħ@b]aó<3'~ Sk )&rh4?쵉3/b|z|֍0g8 9p2\_L|#׳qA)}u1[*=6mgxF56it6orK?}G؈Q70) I (+?Q)|ė'|l_I#'ةF> ODJ Q55?tF<59z _4AdւMsyO|er&>x*ʇ|϶E_p)eI`a1\J2'QUM Dqۀ44$LQ2{ps "FCEX4 8 q+Nc{(?kAEїK.n#hMJeϫakt`$  CA08xD]7 ?u+/. :H<}m:*_~>¼ij3<w0BB !cC0bQJxˈD4.M |, фǐx7@8B!a=vh #A8[T F`$$ 8 B x ij aCB!`4 F ${B pcՋ pcՋ Ver 4.11.16.86 00dbj h BY|8@{!*"!0EK&yyiyygyyyyy>yyy|iyăyyy<,<<~j~=<0pNlB&c*alJ846ΰ3FP@@(X =^gˈm$:Ƽ)@'NQO4!Q3ڄHd!~QG!!~wմ dq''G}H 1" @|`F.|GsC\=]c`)s9~?0U1ClUYx6'1V"\'s(8⣬GA &.39 W>ERǶ)~ 6vo3oz O@?2Ո'G&MY 6Q F2~`C=L`x_&1ؓxA,`BB##lsq?J/8u'ka^yyy<<yyyyyyyy>s0@p<30iqGR884OFgXEgh )`EVXP5hC 1؄eF ͰUp"H8£bӌƈ-K8bÀ>x*-G0b"*#X }8`Iua A,Qr "ĂXJKb~JE<$EHbpOE$pxb5QF*`,0q?8iD"a"!a8bp#ı!\aW&mM% k-38Kqy< WgXպyNk]H*o.?p< qrUq9gn\X HX FV댫cmMH"6*Dtb8B`a.XUcOL³8>+~1?6{&Їg8R(ET5mOy9tE@ҋ8ógx }O/OTpGBĚƓ t hC,XpfS~8Á1#( Cx[l#x|BI<$)`O(X(DQQ8vIcJ( Cgx3lRA;a8 jٴL33!_fGm%Hd,"6XbGGU:ޜEo~) + $f,; wbyqLaPR9pD-H+Oc 'ga]ߪO<8N_Fၚ3<^>٢ c<3<̟mH z綳2dTs&64`1UA0"ʆVxsٸ?=1 Xt8S{L0z TJ&scITu$<'^(Xϵ nzL+8yҥ.& wg43WhV3LRS>`i\"Ά۩P_6=^@<>A#q ˳p/~O'.0꛾՗-~I= ȃ/gz<+F﷿d3\Tgx1~ئӇnKȊi!$Z ZOMeфP >8ixy@l!~wॴ dqpWON@{ `iEk>`F*|Gi|:o >GNB/Ym]fb}Z_':?kw_oGru5~1U# GN%m)qQHnRbƷ?=04ga/O;Ae9~Yg?lj_]J`TG9Rk|4 ੮'QJxhTaV-A ,.3ǚIVO`#GY5pD/[^C'0jS>g?`oz8CD 9cU2aMӈU3 YO0MO#DQ53A!6F'xyޙD6[?E*y@ۀ00 H BE2 p X#:H.YJKp+SN;~E—}pD8xʌp> ͂"O??qBH GF@  @W8nv*T(EWU|Asy x I呈gO#O|KxaDZ qA!!`@4 ; [F| Ơ9uil`Kݼ`OńGx<#x]@!c5H {` A$p5*F0B89B W;@<)FH0"A0P $ @c A B pcՋ pcՋ Ver 4.11.16.86 00dbf d BYj9mm@nUA!Q3&yyyyygyyyy|>8<<<<0 ?qy <<3q%FBRgU 2TQEGUP dB)T3!D2C-dbDSTɀNDjD4ZQCۡރ.GZ Eh+ e, F-(I%Zua$+h( b$PM)ׁPԤ+ MT]FCM) $SS%CP ʔGeHuF0tJG 0ԢP *P PBWPF>36REHy3aEMJiݧpNEn9a"R{,  ǷUGOM5 )ے'c *Q$V%A/;<ČmQU!AXLt/v*~uay8UQPC@]$Cz@PjNJԄS1Rʡ %ZQ2CA}`P+UQ夦)uLP+C`]C*1~Hzg|)8(}e .98GIcJLTBW'l4rAPFSI%)&6"}ڐĔ(*TbPɀVtHOd4S ڈ( k13 uOT% ńNXH $TcyH6*d,2Tb8PA!Lh!S@Ruj %@Q&k4319n6TH?T +8 qH"VA"M 5F@u2ݍJ g"B>P#ЭJNgGq]%Ҁ*1|%3*i88h- *$~<Jƍ6INqd*vccO%dH+BMH-#T!J 8_UbNj 4Ub\I{V{@juXyTT"CiB HiB0vDW3Yݹ#6@rLq'O+ #pTB,UnOq<=\ǐJLqEnw*E8 a=R!^E!psGT88Uuq_J-b즓QZ-5': L<E0Я:rOhmvUb%Tb?4@~rhk,Jljn0 pP R1($1hbsyy/|=<<<<<<> q?Ĉ9j"R1bEH!XI.X̐(0h1"8DLG8 Kkt8D$ =%'HHχr)!owie3<Ǒ/Eu. oԕ 8K7:m#3v #~ 3l?>e/Q~fH؀5cb  ##SaD*C4L EhC\a^!( qaa.XUc\H8CΟl5Dd JV$p>jNL/;F>we<+NxƗOc$XpN[A&Cb*aQc5gٱqA~ pV6b1:M>"IXVfs8^_>i3Ή3 NA%$,&.bG5 zs8óޤ{Дߤ[$7&1ch\SXzƞ&@Xq-l# j(K$cN+rbXN- :qMM͟?%k; <0}3`Ob&g9#Rq'az6 kOd-#Ά8SN>7}Ċ%ru8Oي /~I}lBlq6L'?|z^.J3\Tg2q98 sx99>6#^?!Fěě18"eQ R >8 ?fK 6^Mxćg_4!\DOBWE#6 k]cT, _hW?流o}u6玌`k'S o 33!%R>C'UyOO'i:ϥ<_.␏jTu~牏~{)TF^\.ܔǧ&/H"wx'=h_Tp݄O#"Lm .3 ޓ񱭞>o`'GxV \=s|y'jT9&?Ʀ9 |6:q8L'LV!W4㥓'1&>en:8CD||X| O< y5xkMN 6f'dL@eL ET>x)[.R-l<9zs g _XY/-psiԝq 8¯ߦńA 8GP ˀ Dd4`=vA$T`4@FK|}sԀ||(\2cNLďZV8y[2Yf_ǣK;a8`$FC@BP(X w Q8@WMBi>_V𹭖Q{#vbeWgwXq4+B bQKxˈ4ͩKg_3>gB>ƚ4v 98 !c=vHCBc- "H0B8 B W;@<!aC "np$P 4T$5qB pcՋ pcՋ Ver 4.11.16.86 00db BY5=U7@{!*" &yyyyyyy9yyyy\siyăyyyӣ! gDG$,e[aA᜸" (E,>2-шE!GL34}%f% x5W#ƨ&QE-Dǖ؅cR]b1f\OI>WH$lQP0E$(X,$LU0-k8P ƈNA=tYlOE|gRu|#>x }'#P Z NC% M"6dbD8iD !b(Ă; ıp,xG~l3lޚq(|[dRژg8Eۤy7ny#F0mW/ʩWC>8\ŀ3,w:[3զ.BpiDCCЉT, a@˸qF# NJGG`DQH>|Y.g\M<;!pi}'w?;}{p gހ gx.|4M^vOx06hE@ѱ xhqT!@?9 8óޤk[-p1e4)<+Flx-E@r;a RDbE 3r^,l?[4pQM km#ΰ vU;[S)\a6_ҧnhےMJaJ8q_?{ng5Rz-Fg9WQxg`l8P+*%ė :idT=b aD [HѸ?=gxǢWgx x=`3^2^&scJP.sg M|g2:Nr{6H8äd>80~^nO^,/EEւCg64v_=A{Fup' 'M||ߐLxV8'uOp-2M>q4ʨ'~9W#L=^`yN8.l|&W&6>"oxA@@{\x DC!tS4{/X||_!&Y=+i@J`/|XEΐROZb)UC_^MM #ILRӀ`@ v8A0h бQ] Zk}B,>}Iat\Mp@KA AxC A ` H "H bG$!@BY#44@$ ps@#!h{!@ pcՋ pcՋ Ver 4.11.16.86 00db~ | BY+9-@{!*"/&yyyyyy>yyy3;|yyMxyyO~=<4<ϯ<<<<h2<<<<<1~gڢ匊d@{ ,-i(3Q E>E Gs|0aZԻfhV<2zf(xK4Q !i;?b ^>mmlhA 'DYx߻giU33QL: _44E|s?L GD"IwI$ (+?y7EkлW&|\|ORǶz;9G9$|@ |RSML&?VĮ9 _7Az8J?|>'g\U?B}g<"S& E^|| 0Xw|w6>oMcx}cyxgQO$2^vX8ؠb=I 0a bmw _)~BOXIcJQ0cK./Ԣ%fV"w91!8oy>^"Ѱ@h t#  7` AA l!|׈e@|5~x?*;%E~Rcnq5$/M]|/t|8>,y?WS]61@4,0H0BH0GZ1BE aW8nPUp_\~Yee^G|ˏuTxQ!{!!p"H A aXa>5As>!xƚDq! !c-v AH0b0#h Aa=@ %T44`$  7 B h ĎH C  pcՋ pcՋ Ver 4.11.16.86 00db BY,> @n%AP&yyyyyy>yyy|qyăyyy<@0?'PyO<D$*Zd4v26#= IĄF0VzCzAy T" AȡQ5i(J+EAV!+Q\F(ԯ?F?8_dHg *r[C>Ie=#3/яNJL)vyn&8FJjZTDV"ȢYN*BA *(A JZ(LM+fC1f_b^sz;hY^L61N'zjJ[P (EQ$DeQ#Քb}BHT"δQAp?rH c+%XBPPӢ(hjUCDEABj%(Y(ZдdY,*QDP +DQЈFBeQEAt U(*W*EA(b%VQQb%J+EPQ(DYEQQ pcՋ pcՋ Ver 4.11.16.86 00db BY=<mA@!*p&yyyyyy>yyyyyi,Pxc|y&~xyqy ~=1"^ ŌW-<4⚄(8E]cE&*Fb":F8>1\Gጻ 4><n&x]0FX"g!J)т}Cwe·_^>3xz$pJ8cz g5{/)3 ^N( ͮRLx55 >yK6s8CW3 _*i4|l3AG!~H.L6$ 悥!va@eMF7S(Xa)&E$*e ZO>gc3Pg^at~ ̱0rIo8c`D<M8<8w2 U.lQP_X~uϦ˿? g8guj(<`ak t5HE^(c' ~tT#W8oN7 ?IJ8#1SFƒb~[ F,Ôj9;& X 6^b,_F}3 JJ8:}QhWi pe}埚 q'ga~$=N.Fo<18[ g8HէZj~d"ΰ7CvYJϝXg8םf"ӗ8K2v  0U#F$^X0V ! /]-8 >Ц83⭀ qԌWWp ιpp0?px~IB?SQ+Բg+.Dl\pO ;&->% Bôg7d!}@ uy9gaCpN gp䓋cGVV9-<[p~{{KUsH%ΰ^:Ά// p=~bV,Nqzo:~c /Š<ߏI >曃[r3 Gcrg)gx,U8~؜@@h'F&Z&&3jfB(': cF2 6O6$񦉏 &pBhB|ԇdbE>'s錏_!6 tP,/\CEx#<>gmzQ#A) oIkhZYY >޺S1؎-vwc TLgRpxռ#*ޅq=IVO'ةr^CO@?0U<5ɏs&M2~kՈo`$z0^P?FZ'¯q?OUxG9&৳bnF|/$E|{x{-(d5l| ޚd3fdŃ0;'A26qбA{Oa$$$,p>I)>?$Rx0G.{W lJXVc< Cc ]LifScx$!Lo<t #C2d4 H1A*FHHhSp#Qx>& 4.M |[]0'\a4!>Ia4O H @4@!`-vHHh0 "Aأh0A01ł؀ 5//AH @$P@H ŎBA pcՋ pcՋ Ver 4.11.16.86 00db BY48@!*p?'yyyyyy>yyyyyi<|yyaN;; Kʳ3l)" pS2?2 F~"\Ƴnt6!b4~p~٨lMry6/ry68Þl>tv%SgX]C$e 5>5:YNϝԤ/f,*tHA6xxRt5`WDE ,n#?1 /z- Mq'"Z=xxMx)^c<x%%`wqq3I'SsPV?S'On]RI O_q0M7όFi% /:˳\{G m?Jye3ŗCm"~l!΀cWDMNRV<q#k|l!ldpp#sݾA9 j0S g)ΆIOL]蹺_qMSWf̙ (*LXpq,0 GN'ij؟b7tbdeiB gl&D&Ot-b#~wॴ 8q׆ qD|ԇK.jEGcQ|:">.|B*x[g.OmDDjkp)7I~Qۢ6ɉ@!?/TE>@XS?O%_d|4b"-b#Np;,&Vܩ3A'2A0ޗ)0XcO< 0Aaa% eǷ:ԄccAN-lx|8>ў/QK+1B   `4< AH  ָU@'# ;XV*++><]|uT[5:tX);bC A D!# {t|¨i S&ڭnbHMGUA d $!@X`:*"A!D!$T4 0ł؁ ^#,"$ BBpk\! *F#bB A  pcՋ pcՋ Ver 4.11.16.86 00db BY,;@!*Lp0`r'yyyyyyyy>syy<<<_ӯyyy<<<<qhyqzMpyy@#0?<0<q& gEG5@HR2jE^Ȕpq?D"p r(AP,h3K  xF5q0( ڙ#x +zDL)kI^-]aA,;)]#88 #Z`>Fx'#0`JUSP=vǡa+0VX;xN]poiqT?;O֗×?T 8;5?~Y(p$q{ u]a *ѵ[)΀9׹KfO)U Ϣ"6'B Cl0 '!r ߟp}uL_ūp_3g_? P?8Cu#njg3B8CDؓ8'Ѱ RG#v#:28aL r@&bA ;L%Aa[zqG3u ӗ G;#1q#w׿prrIC-#CD*2c5Q8Gg3 ?Q/ȰgXTgx|'_lDwlr;~>gUz>9pQ5્gHJb3AKl bq7g`4؃& 5 $0e4(<1#㭀>ž&`9P XBc7q3/r833<%a?}ʖg=b߃3D+aq :~bl405>quZT|ۧO._ {˳Q0݉6i3[VK**hż?gx2<ڟ>ag=AB^=vVk|@b:&l#j/YaAԀMV F?""|Ղp|w, Mq"0 Xp>78ل+eqzIOu 5j٭5p8YXQ pmy8Q)ci'KVJLP:GG$E p3??o^d9> -esCiZ&T‡FN83< :._ Ok,UptP14e8q6 G?O=t89ΠܧG$i`p3\n(_/Y`2:=pAp'ޡ"@@ЉFЄ ۉLa!~w#~wॴ8qՎ qD|ӁĔ(|NZ`ChyOH X| T ޙ` >) MCXbc=gaаEF2Yߋ9"9q4k |60p ^=10`6;5M'~yH)%87/Cb{w?'x" jPc 7 #A"h0q_g(Ɵ^/xx:VjNW>/]K4%Ux:p~'}K3ƀc H ɀ@, @ A1ƃ 0q)`<٩]_ZIⳚcwI:|$b}uT:%IaqA0BA {,* 0;,AdD  C xx"#!H0* DCE@$@lF`$  pcՋ pcՋ Ver 4.11.16.86 00db /BY4<]@!*<M2Sg'yy><<<9n|iy<;|yy<|yy<<<ϳ<~}zzyyן~=<44yyyyyy~<hxizͣuAzgxR0γ, ?D9?" ϱ1Ć#ё"nQ1 KBD0>&1:"ňQ3@\ep&Ҹ(0[P=p "Lό  Ü: _[uypgu;O%s[2`X-K9|<0K\r pY g7MC 'gyP8p7I#h-TAh q3؄2c4(0$@l# !b.Ea+\$nq%b/I~r> 9e Oޥt} {7ks|y=n|΀0 Y.lY5ǵ5&X X8 Ѱ!KaGla@e(b`FTbp*0p""W gp =`"f3o0w2 qҧ*s Z Ѝ?SvzyqDb3-$6!шS #j6p.nG0b(l##x*GCQ+$I ||&R$nR.p1z@g=8ì8y:H _pDž;J ҇ 3l 9oqk3Lr_J Y^ |ZW+y>KSqT?W1zbp4^ů=>qUTO/x=DLog|V =Wa F0xsqImfӨzfj}8 9>S905}q"ەw"OSY ΐlPlO!Rd9D Dla#,H<9b#%rZ𜯏E?)Pz@ /55awbKX`ل AC\M|V`Yf_Cdpjig#>_&^0 g؇7`Wҩ=q^:K-yoIVljL3|Ry60JnpͷNYqxA^oZH 5>-x?8y~6 vOҜRpY#{ğhjCVU'>~9=g=`3xvH oB?Y^f-[YY+!w|M\cyBb'N &3j"x; ?p#;}6."c9xB/!Ĕ(|zgiChD>ޣ9C#(*dL".cH`RM£/R:bLId 5'#Fst_/gLPi|_xph$MsWOd|WC\GP#i >/9/>Rxv=ǭGYq_0g'қģ;aŀ#G),OgeO<;6wUV.mx P ;2LCXbc-$AT)@HX"!a caJq6ga"wtiemxm㖪XuBZiǤSE!NJ"SHFY9 1i( sNd& #Ԁ"A0`d4c=@HHh0ha $0#pb^p6b,p})>$3|wugi}@MGd,&~>tS B A4BB  O #A08L(l`N6=RIⳚ P)>C_~SLE?x>Kxyy3.yyy>s.yyă/yyă<<,ϯ__<<|>yyyyyyyy><<y(G |>E8xydz<3> (;yGq ?;B)kBH &̅8xD  C8@$hA!sIH` @'"= Q"!Ve\*a$S$](ň/bm0|R)Ȋc!?0)K |նk; F$#[-`bF#B!GaQDŽhQ!RtA<1"D1C8`C1V4Ҹ+LF`8%a$"x*p;2`"ˮW1vYJJ<8o_M# ;Wn&akѰb)v^ЅbIl_ڪ/.! Іq5 "+0E `u10(8c*ah'&J EF<1" ;̃Ws3g:A(<|G(F%UVa83qvXx(Q8NbOBC&jbD!i U㘡Mȑ ¡P\X0P "O?].`p+Cbħį!"%,C}P+}@bp!Ht o;T&c8L%JDVB2!v}v8`dPT%2%bb|Cp*$Ũ'cCb W'vE;isZ㨏#שMyMsvu'ر)G$v4m.T5d"*Xg+Kt usIG;3JD8F$ G cL)8İ'8!L!MPC".- )j#OvHb ; *1qz\ۊ`}p/& ]e/)7Ἅ[MZ^(vC&nJ8jBJu]cW"`,o`M0#sfCPYg Nm+`&z8t7FG&ߠCGCHCDP8[1\p2 /#vkQKB&O<VxhELSC7Hpġ&tp䐝kyvQ|Owab>tC ,uH/ ZE%v :/;tʿy+ f/h\sq90ʶjB8m))&I0VV[1D`y  uʄG^Q"F G[9g|rSgcAò/I"^ L y\#4.S')/'ޠjb|Fei "_ %C"FC#$i 29-AQ|1-4&co׺@2SY?71ÇyK51|'~YmlӸ#cobEkWAF!Q0?Z㧱tVq|N9m&x*o㧞1qNYX[*Љ00XˢpH3Ia4=*[Au@:i!PPXcD!E#@D02Pab yZ!0xrm1>G'Q(%OKs7PH||n>@)jT *`D0U@ !s @N + 5R%8R r"HofN][ԩhE_*x'p p *1! B#!)2!! 1)^OGAi^j@=u0Ҏ1n!0N"<,@ DDA B 0 !aDBXc) #Ad0"BȐ"FC B {1 Brd`!D0" B#@ad B pcՋ pcՋ Ver 4.11.16.86 00db OBY8@{!*/G'yy>yyy3x<<<<<xn?q&|쩨7@cRjbnҶ͉3l!qZ7j4gC3T+|gxQC{Mx XF!441 `@O"f"PFbp"z.aI7 "q>TGVzlL )%a^>)ř\=8ó 3K Tq \+!>(ck"!KaG2a4 ԀFa)*M@UBvJQ}Mb@ bb<s:oD#8T~gXϚgx(T}T=,G#q͌DL#v!B#v0V@ƾ{vpf$ZVX p^gۈeSx( QA8E&^|qFg3* |f w?F K҂z/N wprIY3HAwv2٘/of$A@[v<gӀ3M8H-p%3f"e1Flq0b!lD<$G<+L)Cv__p'RΰYxRgx8y*l` p'ga~rz^l44yGA 1k_>8[F".Kjra~ob٨l/J vt׉|8Y(֖" +k4P:r{p٧zՙ"kZ|(#xu#b* #,H<:b48}Ղֈ3cQ6."R}A 55a׏bK0zNxγ 'Vؔ!8?$<BZᅠȳxȂzή_l$f18:~[{dNJ1<,$O><X2DGi?!&i#B1-8 ;!Z zBBhG3j")D&ѽ- |6M>V'$># &>BhB|ӁĔ(|zjEby4 L,nDh| Λ#t&z0XP~<+gZ'z ?Ql$ՀM6 `4F`$<0 A 7X(l`yyyx<<<<<<<<<O,1b1W1˜hpBP 4.`?e<*8і0ko1=>7=8q}=D[x!՛ΠGgpĈ9YpǏz*9?BMd,c`Gc cH ($\M"6fqH0h !;aႩX }yg3r7K8r I)>M>' g8CgM[Ӌ4.pܐ8  9xj@7ؠ+S8haa.+B gzqP8ft߅FvI8S˖XJv3XQLkԳa3lf0wA@bFlЅ+5gٱ8ÅHB>-QXF<MgV l2^1R2FgkpTgx<N\[n`7WEtViOg|=?أ,4||Ot>&pS/L3u[ `p%c $bog-Ngxћs$ק["7JĔѸ0`qL 5b;c<-*b GcM$̄)}Mv|=8QJ gxOIgBg5`\ gxcԑŠq4$7=t֌$>-jm |D` &^@ӀET##Fc q9 Ǣg&^h$ x5 *#b9gSwss 7G“_p>e q9_l)?3=*-:%'D|+\-'rU/8CH6~ xy͞3f6*;YM㘕@0>!tb(epB(X"e-2{Fn Ol+g_4!8!>@sO >U l.2_4i _Gp4p+Z&^pYm$Ry~4D xrrŤbc~=ī51 [ՕH $D"~>0=D|S^JRp[cF+O)aG|VUD|\| {xNy?r3Z ~=A:&H|D5G| ǚ>@x >OkIO_h##"Ic'V 8_2 qG}.;j}'QÀi*bSt'',H| fx)`:Gd<:ɂP^qgb)0K0 chB-@X`X;r.ppgS۸#8|spGY" ?mb9YNŢXVXp(ͷL%)>El5|R߬2Q4$#lpsBBFBA4 Ua .8ܙ:y '⣷x&? | Lj8g` 0H , BA B0U@rDaJ\Q">9yyYyy>yyyOShyy'i,J<ǎDǏF4>xǹpǹcH&gG5b8 #p2'`Ds0PSHW  ~K`%0)}4%~'gx2%'}ʹ.ws}9O|g8|߿$: 8#pV}3ň3][cΈ3 9Y /49|6ăd@5uXd)6!(؀Ĉ#uq,i<%la=(I}8F~NǞj_/zPgࠝJ+(!ox"XӐkq~M#4_13T!> Ggv'CH'P!8GGѰ;a"N:jqpdb^LֳjpR 2<߃3 v+"W Ϛ& gx, &# 6Ќ-vA:P[hj@C t 1E 6  UؠKxH`/T|zqTqgGzBƮִh~Yi/.TqPx"qQƿ}Tרg9zgX@pǀ4RhUXJh *6#0lhH&S|B-Lz_vj<O_Ϗ,> 3)ㅥGJ]0>}#>nIܖfp2 ( #|t"{a⯼'%Z=?z 7O৐N'٨'4Uњ eIM]sWOPd|OC\i4|I|Ec/MWO?_49vX|NF̅ܫR&%RAx%'糩3Xc/; xuDL5kuw&l>ՀyB&$'qp h  q !Q`DA 5vآB !h8!!% T qH(hHC(h8A! pcՋ pcՋ Ver 4.11.16.86 00db BY8E@{!*$)'y<<<<|<<|xyy__<<yQhyϣ@y~<=~Dsx~>&gG$R@/&XXH`#8b4`(NI*Qp`DT,#GF]B&ΐ[OUXZb|+|nINRSgu:MLDŽoQ$ S4FM q/}e~d6᳘hSkW1c cnA4l0G%!"<8xv4R@}'N- cph<yL/?H' gX/''9[ ',A8awEZS Gp [gx1bpC|52w`G`) 4\M"6XpzDa"!."FE}yqe=Bp^>.a~.7ɷ)OgؕN<}nM48#@Ɉ6H 2{!F+C;ԀF!6X( S8X!0",l0nV8CxF`!Tg>?iO_N gX/N6g9!gj<,gTh1].` хEqMa_g1FC,+!=^e(,#^ &^Z!IA8'>&M x+܋Gň3 '9<.ɋ_3ܕ3ϯ`2qFF,Nt!.br%0ŏQ\>Tg0.|6, 4; r [O̜Wķ-FbMbE KTXx3d?) ðkob9_|84{L OnTxÙXCgVcȳ>elK\%og|^g9g=gI-}@'gui;놅3܇O҇Oo|6nϛd=~N'ŽW'#FL6SE8#1c3<jj8(+)@V@ x`zkB^?"=9<;&pʳ WH 8~8< WOzԧa[4WT_O:œm.K֧{O' ?@[Ўh281Z!o!~ى~rx ggܣUN~9pO9-{+SV>Lq6 FII7$JZk2hpk{P:ߓP"\֛)+c ɢ\:i"8+8!` ꉑN e#B@(oNCn bӿϦE's VM|ф8">C#\Ds>5-0z:#07>]|&Ϫ &\iƣ GQ3WGx /$3yho׻1~~tG㟘tz ?AOxE|UW>#>*?m,Rxei^UŽ%%Z-\?[<_Jb;׫ւ?A=F\GRm09&X' 4?F3Υ ge!nk(<;#Gc5dz%U)HR0|+~S-+LIx3ՌO!%l_=ƧI;êx}8ǒxfT :6X`c< 060aаp,aO+كGp3,ó&Oފ5!85x3yy#yi#k9kJy>ckK!kkJykxy gG$P!X#jaF8B7JHqPa$,S&~ݦ:j0y㳯P5>KH/Ɯ3(͗i'^V^,ɝpA E<FD aP@&>&!L# iUD"0z6J7"Mz,fT$0 U|<\34~k 2gM5J;N=;'87#@$4cq1CGNPP #$TE‚R•"" gϼCy@g=8C8Ã/g?Ƿ;Vk< G yU<=770W fFspǀ]@ ؀Ta+a1Lŕ#a_g3)<G+p 3<#Fa:K8J"C9 I*J$>&Fԥ33װ[3psU≳-.ٚ4VLr.~*9WFcrP:ofea{SNL3׍YϙDLX`- j c2#"3 î@{C_2Ά9(])G Ob8۔[ΰOšt"n{py_YGЎW' "*!# qAW4 p7 OMq;⭀Ff#xxCy=;&'<ǃsxT`p0?ppO -\*iV'nj$>$-UN'lUSP5u|ᦿJO |T0g|e|.Uyokf.ΠjƏ\aI +NpqQQ $~^V֞MG"vI'D D&ꉡ#e#B5c w{~U vO''L|p]PX~6 r@ah|`Jg,/(hV26po?W4?G`+|ӖFɀY0m8 fI)fG#~#~-PK L_>ژXV}RŽ܆IG%~ Uz'KI,'#:VG>WH;aj|_7A}Opi ~">șM] H8yxi^≆#J\ >}E5o/#$׀_ 9=\P@ (H002+l09! *L OYL}L%᧞w5҃<3`LlN2|{|s+/c_@"A H #ᙀBh0WSBUk) ?2D||1|)7ħ`~~?g /c `$ !  B -6آJJxˈx)҅uYɳs>i< n&8HH !@=6c fa " AH0 ^#^EBGB!$@$pk@ ( H"aH  pcՋ pcՋ Ver 4.11.16.86 00db  $"7@{!*I(y8=<<|xyyyN<AK_YqMT$<8fl"M!>81b1G pQxupB0}l'xJP3nS O6xA9 g`Mz h\l.͛́q2 Oe'a^_83>E" g41F 쌀 #8Dl:363! $ЙёhأcԂ*񀊚Gpp#I1 sF>8IxhGg]/>' W;0 ϧϚ*}@uF@l&Np`bЌ;<8*8@h!`M #Ša+X{,3Ag> cog'l׭:l; Fs\7빞SG gjˇUu=_34 Lf.`Q0qMa_g2FC.+ B⡀> } BM! 4|2>& /ta U _Tf2ΰxu.ldeHϸE}X|q*P /[=l!/51'0_|Y t>~6?|: gWj^łZVv600 ]a9yYEeg8H}O`fr0Jb>v儃pW{ma*>m,SxcLLvħ6|`ǟ~/)z-'8Wŏ=|$n/"#Z'45ZFd|DV_7h}Bh4_ g7횗3xx}<^~d8Á'GOt3<#+ 5ɚhVI<n&8H @$l  !< 8@BE H #A!lQ@ F!$ Dp@@owxxБ0! @$pk H0"!aB pcՋ pcՋ Ver 4.11.16.86 00db  $ƽ@{!*!'y <<ATp%! 7S4E&g_fx<˳ZRăM(&Ig~T۷hpY9#>:~³Jq$0ƫăd;$ XL"0ĈEh1UD⥀: 88AO ",' qJzqO8:~K,zlL OF?U?|gx3\+]= 3T12Sx8 q@D C C"3c1(dء2G!Ӏ;GԂ*gQ܈xT͟]ZqDzpgG+>>:[$]%D^NL:Q L I4$!X ; cmX=` jv3*b"" g#|: B'1 u^Oqb3c>;lFSAD0~ٱq#c1D 0BX⡀W> ӈ&B" hwp1 t>B gx4}a{qjRƧX<18[F Qx}py62ΆmS#/lh"GjY1[Yğp-5ideka')lGop'H"X;lIX ̈3O-B cav~T2(?1^ i+ ۞ {|l4)pS G,%Χc̾C69DgXrSܳǓ˳Q0gx"jhx+gɠ~2VPV* ~OJ yp}}'sGzhZkݾx= /W*y4*/3qJ_e0̎ HzbrpoxOr' F"* F>1wgg5 pw3<6")GxMx+lƞ}vLsMMP!ia"B-+ƢF.a>UK|$a:IgSb*9#~VaL't!|Rs kFE*[ޤgx,8!^(?`0z^A|3m~GH[uO$^GʀN|bPF8"Fg(0wWb?E9ꉉBՆ "OE6i:.bZjڜ48Cv>9%+|E^8%ˋx"6E{foJqs,"~SKId Ī"L11[JVǟ/)z-'8czzO৐N5#֪?Ʒq@ _'#M&~1t}(>KOG8;M[ ďNq0jW.ϡ{,po+5?e*>$Lǎ5|תisxdbZ;#w:I[O@$>oM2^ 8<'| 2d\8XX`〧@FFB#4lAl lq}O9W E58 .m R[4ˀ3<Ό3tov3J<]FߝN/~>qOJ4~}g?q`(!a"p@68b  FQC߸9̘{|W?"~ȧ:&ʱ»qhe/d3 TlЈ FP!d@  B P!ǸUnXBJ,\[IcF7.7}0Jϗ0 xYKhc" A"bC*A0-vQJxK|?t#LبJ |Gu3OM 6pn&8h @$l" s`FB!;lQA$T4B@!$T4@!ăxx  @$P!7=#A bCA !D@ pcՋ pcՋ Ver 4.11.16.86 00db  $e@{!*D9'y M<<114A8,}$K(:;%p|&|FSKGi6:鹮׿Yڥ';?R\qIW\pZ5 ,#q^>Nۃ/p"#>x Xr 1 vc706؀x?1bQ\ExYn R@,Dqp<@4^FrΦÅU_~$aA̖gqLs>3\)c?qE2ˍMCF;0- r@C6D,< Q v ۀw#Xă4+ g` V+˿gPr3<`!צr]yI=3`RCq&xi aGBH cPpj@A AQ&x ;,cEDх3~P8$g@ [ _wߟ0>xDO:8COl3</ojJ gh.a)4b`a+acfg+ΰ3C@! 1bcI@/P "Ή!ī Rcgϩ gx& /8Óu$f˳Q0_Og˳Q0 Ζx Y|@gh~8'\DmBlESg8s|yycO3'#xGp0!,IX# *gxYO-B cavIJ g8ɑX2)<b;;Xf4by D `~>Hx4FY߭ixgx!P'VZ/2}3p|.:kkpyЈ5 ,"6X'FYa)~E30 wǣ8V s❀p?B5t#b98&8]48' &(|~C\Dx)jVxM Gb4!(ļSLV tAIIORƓƸ8C U8W~*ѪGGz6ٿÏ],)1`G%3>+'F MR&D& (XnjbBKiA|\GyAjC|ЄsĒ >Q 4@Wϡ+N^?|NZ85ZF&8h 'L=Opď1spwCE3Lqg]g:@=Yl?c7z)B&9U&jBӸ+j(1>`<\kNI|*^dp'xPw |l@Ɠ&*6 306hHHh؂@ 77Ӵ8sNV~=8YX2?/VVqq%lGķ^i;suoE \|vhb>g`P` Ah02 ;`$$*"B/^pp6!Zk|ˏc໏=^/IG[%9u[Y?ܫkp##UJcF4$T$BB`$!08qn83-<~IcG1eh)黇!VB~Q߃fxaW!4 4 p F!Ba lQMo::F]Vl`\f0L(@mܡ*  B{BEBa$(`$! FB  DѰ@!!F%FB! q!h0B "B pcՋ pcՋ Ver 4.11.16.86 00db  $Eq]{@{!*I'x϶qy -"l0dg= 5Ǔeǻyp.0 g|J?hi0)SqJ!qCvq7ʸ$0 m*Km#"b+Fpq<8$ܭK OMqM9V@ *qT{sEsR?j"< _Ьc#FAqy<\$| X;%3`歧ʁ4'r^ Z3z7">7r=O-O9e$Gf:b}>">簏Q)=&U9'6^KJ<ǥ:%;?rڃ^  b Qk-Tj2?9| k4|3'gsg@3ΰ郮ã) ෎s֐>g/$NNMՇT, Sz (<>_fjAx|RI&RA w&| TKP'8 xfJ|`@32Mt,`O *6hHآ$4,gx\/9;qjy;O73Π&4ush?tWzjSJCӤA&6U1>Y"ۀpQ@C4@0@8AkbH0 #,[wu>S%|qK3f|=3<jOt~hs.\+Qa^8gx$F!JFDH*#GZ!!@XLF!Df?^?P|.}0dLO% [~^EBC DA pP@` la|pS[w#t*$&yT7|΄BIM;4v l0BE!!=H BBc- :HA hH^#kK"H0CnpBEѐ`$B!lP` @ pcՋ pcՋ Ver 4.11.16.86 00db  $E86@{!*I'yyiyy>b,<<<s~xyyyy~xxyyyyyyyyyyyix縺:z燧:rY zq:zarygvCfa `+ PP' 0nma M3{RZ<6{gOE"|?ٷG }Kp%"WE (gS!!p8nb. lq00XCD98F\⥀l p 0kl' g'>*J߉8#phGitҗg88C_3spI3cԀh:! qNXcTAh !bЙ! u6D>` #zAxѳ"qqIz81pǞEWß0=b!3\ZMm [dDBHT;bE h86p@C6,BM8v WhSqg>@;[. ttq4P"ԟϦYne g@liHEY78 T>صLdfl),B#V^&`=;6ΰ2FC0"a> ӈLᙂ]91HyL_Tngx)g8_%k=b )ۧK0ry68G?5\:I\WA|7gxί/FbKq]o/w< >= py\d%2uV8ÝYgtFP"#hB,"FaK* 6qbgM#~utrr$k m&pP#8ƃX>JpQd@l^p$ kbJR'qUgxJdސ jE y\E|RK]A^Az g(a{SHLҋ&gioRA *aQg\  gx)bDy,~8kp-8T]!I@7TaEyxVxcOk%=7ӮkOHG>l/rX:J k$᥊OJupK| 62~'s_39"\ksHR8s 2 Կ ?FS3 j- 0LJkiQUjokpX۴p|uZ/9R0!~&6(N5\H|~ ;3!9 |u4O$ـ:*^ ]| P tdL\T,Px al` # [0`ms9Mw~f}X"'~R ͆4Q=%>>^-'xqMET[m@ F6BCF 5# 7 #Ah H0TX|(\*OJ{1|Δ`h #6sgHoZs O㪃W[pB,cP|V%"aD`` B` ģ-` !S\P/Tj۸?$%|rs^:"c{y8Ʋ-O?_0-? /!a)  D! @$@,@GL!Q&>ǣ|΄4C>``#TA B{ 1A![TP! FB!D  !@ ^!^BBGC!  W=HhB 6hh0B pcՋ pcՋ Ver 4.11.16.86 00db  $7@{!*E 'yy<<~yyyyyyyyyyxyyx繺:y)b1yJZy> Z*xy+g΅G$JB"#@&yaPiI)a!5N=O3,>^ߝs:Fcl\8Π}~3<_q)X4 38xM$]1' pXDy\⥀gN𔰇#p=rc 9=} d>ѯvA8C̟o,f_,!aUޯU4ΐ9O|g8ǜՀk<#!i9K F 2Dlas 0;HLCpAx1):J3"ΰ-w-q"g>@;[?O8c$\Sz.|xJN3% Opn @$f,!FCAء4d;L Xq ;%\) YXb3;g8*gΟpG}F5pi<4V$ERoyғļN =yVguVf yZGД]8y $b d.a*$b K ^&`?/ c1HN1zgx&86~R+ Ue5BD߹_Lĝk]x?i"Lck˳of٨M|^zbp3\g(oڱûmP/xrN gx!]g7\V_[ "<3L̊'>bħ`* X\#d`K* v3<x3î1_')/7$'GbIʸ0nȳnj8yA,A%EDvW"^%.9^GϜ6nq}>?먳>,/l&]!5?h|V"R^n+ɱCaX:r> 1Dՙ;/ 3^"1kc8],eQgx>ٟ ]Opf}gPO֙y:gx?O}QO&yre]9_/8&yiy2A$0]1/f+]Z"ΰ3Xl@~-~bXS;h3Lu=jƒ% /MqUV@#q_VX>P0^۹%<wsgO&(`7?pp~Z wQ+Dx(9V|)^<[gx=9N n&|nXVq|gf}ދf)Š0twoc? WExjz@/d3NN<;#p <#4&G@ho7 K*X?!3V6 a2~HoRtUWK)YW݀=~E3>ǧm$S? >>_=;%nBM)|ɩ;#6?L o͏+لODZ#*7IJ Y /u!M%v?O^^?rւ;A &5,&GX?FЦN8|F ~|1‹b7=KWʴ >G= `%1j!*}8> Un GĶ_0 DU5ـϚZ|kg0A >xMƁaT,`,1QaP! 4 [8`e',F"sƄOUu>1XL+] s0Ư#>?J nZ+a"nI>y 84jp Ӏ Ԁ*a0 ;\D$ DC@0.dt2 |Ta>1ES2NuiV앣Q~9yyyyyyyyy>>yzbyyy燧:zyzy :zz@ga }cAy\c=MsP(}GDF Mgn4NniL9I>ЯbKѢ$8YyeN4 g@x5 gP0> u#}<& ;\`A,x-68x6 uBa'a:`?@p7~+ /ZLņ3<3󧗤jd[|n3|T 7(\}ȵq]=I ?y FA%Khr@eL!$vDFh8F n"鳒Pgx$Vp04ĎH$dL!3!N`eA8 cBEp+,@ap$lCaX>gA@aV39W}3l|vمx(;>~\Q|#{g37ԪVg)"<3<w?ud MⷐIhDyA@ɘ "6 : j4qB603C(G+T,h8}J/M#"sIa4Ƨ+,|03ݛgx(9TO.qDFlNt!w.lH%"Rxኛ-b4Kq_^l\l3 _gZx!_PŌP5.C"ZLDΰ F&5c.rr$; rv+F\>c<#DFEL"^>^i y=C,O>=O櫭၏EJ)Y'tVpīp5d: P_Ob  3>|Vicp;hg8O)ty6C_|rd}g}603C:~o=x{/U>T?xV~q4'ώa?KnӢG* _8Z ??ݧ r"a1q3Lu==;$q(r3m3l"w)T2^rn?9 8~88 7NppΎ <|wNR [O6S+}1[㡃em إ4 a8ܞM a񍺯O}BhB|̇gG|a id|, CF8H%3u1H?Q*E *F9຦)q=xV$_8mc8&媈O)$ű'3jON5}3p<v(~->bZ;.(5?'El'S`'Tp˪ch%mxj*T%~ v?i: z[u X'4UlMhȓs |_#W4+g|_Z"uegk\^HO/5qk'jx?֚d3٘obZ4ggԊ_=A 9W>UoM2^ 8ܩx#$cJ0^3* ς0 ) p ۀK'Ga͜9;H 4KC|-'zďz]+%|}+eKw1CaMO~Ԁ;( ӀP@8= Ap n1@D  DFPQ._8;(Qh<.#8qzV~}lO g8I^2p<.~*>\Y- -9!"O?? +  44T,`  JQHB`[Jx@3[!Y<>BLH|0Ѱء aB B{! A @{E@ F`$4 4t aa AhH A0\PP $ @DBACE! pcՋ pcՋ Ver 4.11.16.86 00db  $E@{!*?,yy<<yyyy~xxyᇏyyyyyyyyky>z뫫jkykkJꫫ+xyg6a3JB/88D01FH u2C%K+8 ~w6 zqg8,8ԏL2ao4i^3(h~UƑQ83p>gIR3xSEa+O"D,"<)Lg`9S :`?@p=~c 75깿3D L V^pK /񙖨@ ׹DHyMPx*$E"l b"SflbA2zD!l &U0xT܈xH8ò|ҙwH/FE8ò|ܙwH2Ko(Q&3LJgx1|>qӋ8b⓰`p@F;^"B3iN`e 4,p  XpU(TRD}pLĵ3<3ѓzrwH 'au"ӗ8Cs5۶ۣ0?<348-cK #83_&bP9pZ"aGbQNNg FO ]Ps8ÓKk:~xM8Ë,{;g%w=3kx&^7-뷜-x?peTֳ-2-2~N-x[xry6eB}_'J*A$p>8-G\RYA3!ls~ttpݼfVEH>/5~AI#).M R$c4AU@2pgh"r3î)53HlI=`9#jtxGG0DD8q383^M0\?p=o:e#1Àq?U$cj$~չL">kz(:Guγ)Oe#E"yeU_,xЎH3&T!<3Ц{x:|$c_?U5NO+>v<51&xvH OÎ|:|ap s^?U~ 6T xWOqq8= k}<0U[^{s<8'NV?UxwQ+ W GS|y$~{ |_{N\7d8iޒzO O}UO:5  Ƒ3a ./\$΀$cy" )gxg<5-9"XC#hxZKB4y}?"z{F{ƕ9oᰜM ੽xE 9 SN=y-g 2~򪛃Hj{Xb1 FHMIF7n OjON>A Us&&|HX~v0@(㣅C (3!|e]?{-u6DK-+h󧻳‹IdMM}|I2}$Uiv8W2 MoYhVs,&'?Fs#|bğg`>{J27A=QkaFm_=nWrK-(_aوb:.Vl'N#3dD?8Orޚd$fc|y'xPo||&S`" X`+< I#l ,03-MT-.uņ< 4>N{ӈz~ϟraSH}w.f/mBO⥀;4O `  t,`q $!!0dp00FhH@$а# !M<7!) C *+`$T@1@$ #tbC 9s pcՋ pcՋ Ver 4.11.16.86 00db  $z@{!*'y<<; Њ3|2 / TRpGC }؞E)"82|̲)z͔2(!>),G(ؑH$fL{`q1 (XL0"@7#laap?gZj$8aRc}q~MiDUc: -1g~uFp} y8 /ce`;! ]H2$quR~geP1\ {:ǒ#^  ED\ oW;qO8"&υ3]1.a { gKc[oy,x?pb>8[k,Oζ??pc ?g3a 8r8[ >{pM:f*[+>0ax-`w2ƞ<<'y6!B!nh!.0\ |pc>1uA\$;x*cqϙ/ Oʸw'>]X~6 Rgy?2vRhuJqpuBlNE 鉡#epB 1"jF  m_бi%-2'H|T]0jC|΄ЄώK !8O%3uB|pʸJ-/ )MZ.e~C g(bCzI_+SZO;czs1:>^)N#|{yďI RG'El"~|>">pGwFt o}1|g^ÚJ">)oz*~t"$|I0u1AXؚ,#'#%n,d|_^ӈN||y" 69~x)aϝcS'q_ؿ+ Ԋ$Q>^>"n)O#>x6aU (WD"IF/ؙx$*%n,L,J@B Sܧ}Q"z: A92VǠ)i<{ak7>[[x6p쏽v+)Ro퉥iƑpD5* l ,Z@Ad5@q T$ $*!4 `|B!1f>UBE<_x1|fJ O] =_y !__wf4;ğp'Z9yKZ-k2 h BH '   ! bs,F!xRqYTf>xc>e.?%< ۧa觟~ 9*`BAAQh BBa? GVHle%>.f0O(4T C * B9#!0A =6X* *!H0HhX` &#A0"\ @$T4T@4t  pcՋ pcՋ Ver 4.11.16.86 00db / $ŕ=L@{!*K''y療4<<<<xy 6x>|<<<?|<kz1)} Pd %?]$n $Ey2n!E3<<쏚N))>Vjb g8r@&X(fDDBHFdželQh* ; n:L/'fL2Tvv?$Uq>g"^ڄ8@{ [,P02Z{LD ko~0I '99{RwCgxL0.FLqD"j.`D<-$g=nDY>1$|yp*ijEQ83^?i/uf^fQ#=@j|c|XY/&&xT ;@L^>j@Ab0l3<yڢ&$7g*aӚbS-qA%׿wISsMH3k=;՚ 8vhD XDtEt̰^w]Vq:*r3m3L"N@ E,S5 +Vrn sx%ᇃCB:Q+ Wx4+S9~jz 2a(=X4+2uSu1MD;%eܟb:1R qD m`,^"N1}G6LMO14-Jǡ>T>_YLj ^Px%]6\EJ]CWx.)r~ Ò&$~-sk?bJX;M; ?*W#"6?p>³IL u;#:{k>N Ă:~M[⇞@O #~)xtOf[d$?$ wɃ[|?اi >UK'OcJbWx9i/_ȝQeVXd b-ެ+GZd|;eGW|}OLu'/| T[> >.@L2:ؙxF[\Y!4L-26)U|fµ& 7)qo𪒩~ҳ)/3)o]p[*m6Sso ?j`P@LˀPPP2,p!(h BЅxRwtZF*9;a%Qć ˏ{2>~ïy)->p|GvmD r>b:nn|SY-~(>d|8>Q`$ @B“%XH0! A bs\L Ou5IQ|? !{9l4n*K+A0A BA (` T! ;QvSDן :E Fgk3hx*CB !l&ΑP! !$ ;lQ!DCEBB`$  !o -  F`D!7 "@# pcՋ pcՋ Ver 4.11.16.86 00dbr p ? $ʼn}@>%w&xc @i4Th4ԊFH "RRGSȍ.Wcbt-T>*T3ԔX!}juGSVmǦ1T*% ACF@TLTSw4B(0ՠP mUərYG$P"u5@ JTp)UAx*ц t NPE* JHCHy&-Ą a t4LCoOzb'lLn4j4Te&BXzjk@%vu9LBA( ٘QjJ.gj5ERm!L #/Tt{B@hJ0F .pL8*8Q9Z`bGzy3_V!CWۜ8Zf-;GU9a-L4`UbGjeͿ 4 ڵ,BE7+*.GG~Rf=u}P<9W]1r^Ww *\b ֹ\Ma`oiHyBO 0 tE *hRjHhTL} Te)C*1&PH2Q}%*1VA>rS=F8R[GC:M$Ri:T*ՂjPh}6`MLj=6f^v2 sJ4> Y8l#Q1lkCMTČ're h/?Tb_b<ǜkʤ?UJ*O'qV1>z,8~t zqrt`n6T" IVE48ҮI)*j14])Qšz;C1ի@|\%jJ"F*a'JdD"!:8գʙK5P{NSemjjH X9-8Ոcb6 NFa?5Vd{'Ъ&LM->*_3^܃9}XA>SBR~i Eoq_k~VT@%K"ԯCNC%4YpD3tPa^ԥ};M~u<Zq'G 5pt"3] P>k*js"ő^҈ @,"U"[лA&4J6GJ?ubpVQ3% shHj5p.U**<j*ȣT +*-!R-IEzq.O nάڏQSo g"j֏4M"ՂP?R\SAZ^P_cݫ4M;'P uJW^ DkA ԈtJVAYj(P!ԠPW,Xk|Gg``c3VUh*ԨYQzY (5-DQQԔF5XP *EAY J(Q@ z:G{bJdQe6QPXbJd% d@V@r( pcՋ pcՋ( Ver 4.11.16.86 00dbb ` O $Ŧ]-@N%%P/&yc&x9<<yjyQh%xky>Q:xz)yay&%4u(<I*4j4쉕)3ŕH O B6bd qvb $a0HrQSΫ@%D*qı> u@ЦF#@FCmhV/jTL :6 *n4UEtZPZ )V4Ui*1}?<3JL_!<>OcO8*Zh STjPQDթR֙ 1`0@%"D%,@8ZtJ4Ш@ Ҫt@9Q)M PE:@ jP=*hHVߞT8>A< jB $1Ý c#yHg&?@a aB5С ht*B!O@Ǭ>Tq(NUCC'+qV9k]fBfծY)QAH#7BAg'D?{dm%&NFz7П7NI7 ~6 @IF~S}!"9HyVdH#2gOD*"L}TOH14b Txps %7MgyRS#cX~̶+~` b3~25VGᒾ_k: G\ Ռ"IO+=J""ݯP!?hfSLLcF8h DѡP LTBա7Յ  zC]RU7Bš.Ѫ W^#ZAjYTP Bբt"HuOh1@9A!{zod%}#qͩDžުbG JšRG3QSD6Cʲ QPAVXUrD+Ղ! DYDP +2(h,=/(FPXd8pG]}%TqI5`*1oO&L,J H6{I]_E5Y D A@V lD( d% AЈj@I)ң1{=f7s [?q_! Cؙx31]ƲnS:=*W@AQԆPV"(PDQ5"ф"ݓU"f ÿy+t֩P5jT *E*d( j-@,*A( 4Z#Ȳ A Jd QCEQ((DQQZՊ@ VD( d%JQ pcՋ pcՋ Ver 4.11.16.86 00dbF D _ $že@^Q %yc6x9<<r)6yy~xxY燏Yyyyyyyyyyyyyay>yzyy8GYx>z'qq gy9ya gxya%pPԡjW&CFCP#MJ:ȑHPq<@,gWӼ|i!IxHD8|< ~J ;A%[LeCc*1Xt6aRCj"@Cmh1PC*FS-tu&C(ۡAMMhҵ@+P [bJTa#Tb!J7/ǿ8>OضδL]UI\!R rtN&(!T# L4 +IVzjH}FPiŃ#SP#aZf֥ PMT"p:UUb=ǡˁ JX7ѝ<C#Ip!v]86 2bÃݐ%JyE R AT`FSM)T ʡTP8TBjgBvX5G$j4PPP%?;q@C%7cJF HVS_>EjB%rP TX.TbY[UbO;TݘSjDB4).Phl$SZ>S tRĺG2FLP%Be ayLt!ց8?ko)8k-~YJ9:φt|h0G7y; ®JrxXTbJ eU#C= ցUb*>>78ڭ쾬+(3aL 䈾Zӄ:# TЖPI>T*дFԤ Bש1B%FD%2D%,D)V9" jqhH[j7sB>Ri4H*5B}wy>Pm*&LrS9P%& 02a0u"I"pa1'mzs- uQTe3 s>Ħ2%Tb- T? q`;{yC SGv yO U*E.2Nu&fEA=QɃ*ɡH1#z%ԫ|p8> STNZB-PALN)Nu_-S=jdZeZ] 9&wȻsZ" &(4j՟գaWu,i9e H} T8G<=^{(PtktB2„)XF'$B(YE1*(Aũ B,C+q kT lt} }>7]@߮ VOD 8PFOO=ѠW~W#uC+ԛLRG[ԧT r?.Im ߮TH1ݐ(L7"~Wd PGݻt-> >S#~r$GziH#>@'U$38|g M#efac'f5XW)8!taJpI߯TyHG#XjFUDJOĻϸG %*D:ǩNHOKqj֏40վcJ'tPM7maBbUF8%ZáXbъȲ*J(Ѐ^T e&#䘝'gz )A bJ8T4MX^&l'đP%R哰J ȃjC!ԪbYBm@X YUhEЊ!+PDJd T^*@navYGF<'r)6yy~xxy燏yyyyyyyyyyyyyyy>9yqixYy>Qj#qqa8y/1#x1yI%pP~xP} $g 5BZ4mrLnL1@Q!t(~zyn#pH|uXU" PwsTP%fo PP%O]0U8;i@gT"VF#(tMkX(QAZ"ŃV)Պ *ʄ*]#"Ț55(ӺE-vZt*1}La P*q2vlU~@02p@{I*q8٣ s*QEW mZ*4X0ԀLPH}FLjTbRDFPəLhK![A3N Ub?>~j*AiJE#Z?9A"ⶽX@_hہ4eѼ6Fx$Fl&"ޡ~45V"%jDъ@d%r(3ՄC53 ˂PB -j?#tP8Aq . \hD|ߥZDP8VD5Z_> bXLE6T Ԣ:)ũniHXSH[v] &wȻsZ%qLtf9M(!RjdV>Пq8؍a\v74^@ t7LCN9P>ĉ:b*B! USabS O-VD +O5CtQf}XAUD:Iepz'4JG˼HV[Nlk1Ty8N7+hQWj*<4+}JѦJ4Q'"A\~NETF f!u"~2P/GWr8)8սP7UƪCMz }C]Rp7Bš.jPCYVXFˊeʂBԀJ4TM1ԦHAT_uHn]*]ćk*1_U$[q8MLhN?(Tq89ՆBUB@ JJ *š QւBV"+EABhHua DtGp'U%j} !9+P^T!@VXT  t"TȢA(Q,(d hQ+a(z4#}~PW{W"oO:dlPE5陈K:eE8 T(WDb%( VTU +QD шbJx(eH3y0@웸n+q7F= CgBm)TP@P@@QuH4@ȲQEAԔF5" WB@DVXDV ʢ(Gz'*PDbQeQDhQ+ *4FTXA%@DEAD pcՋ pcՋ Ver 4.11.16.86 00dbf d  $@Ne G&y#iu-,\DXZR@a5Hb*цBb;.w*qjL?2FáF"-J"T0bA! 5(k ԇjj4dPAHAPT1ҀF*~$g2òFR*Cj*1 8rV%>Guo$?]C J  ]@ m3ɡq(b$#.EPbH(j5MZ4r(Cšzڇ5Q )iZ "ԔP%;F̱ĉ*qG,VXI)4bˇ S)c SnOlOCļKѓW<ѹq@%FFnLj:7:q >T`* Bqx*1ˈST5dcwb퇙.gʵBRy!وJHj"q@G@S!n?GR C30nCg*8)c<#M~TR tGpqP9a] Ksh;9Ρq!6=*0nAa=䅀m 6Foxx./Wqx*1-٨a7͖a 0U@0@=#$NVC(ԇSZH(3CJB֩b"xhDS B%dI%03GTNj@ őhHժ4>Ht0TijAs&ĸh2\&ad}25$l\GudH%&tk\vC;:hP?@Ʉft@+?@J!O@ Ryb!/*VDBРrTOWT횡G@з+4MJه }Z~iEq@SC ME8T_M:4OF1+"]rľB3f_ѷ R$/WQ ~Fԯ LӑHnԧA1b9bPOiW(>Uh+Wd ԛ ґQj #Xm:1' $(q_N~ׄ8 uR_wy$R!,WV5ޘT"PJvB|Sw&Bj3GAA߯Rrľ_JbpP5u($]PoWCęNP7Uz"h81}P~*2*uVo,+Uh@+:XִbAZJhJT/j@#LuX?u0um;I]0$06N&phlcJ %chU STbCJjAP%Fm(ZPT@y@,( QC5UYDTȢ,Sbz!AaEڰ(g8R7Kwق9R03`KF _ }!yQT^T"ʂY +DQgC%zA *Q,*P h@Z3!h F ou~F/鐅:8jO:r%qH"=*W" Q(P*V/+QDQ5\WtYPT< $wn+`>Ud]D#FC%AA@DҠ@%b(Ҩ^ QDeQb (V" Sz(WDEQEYE*ԪP@ QEDDQ pcՋ pcՋ Ver 4.11.16.86 00db  $E@^%AD &y#԰nP*BHnWJ755JC- ɄS2ӚJXQ*QG? \R@%6f;GD.[%bD|p΃ LYl'gJl" Zu8Th HA^CjH}FLŐr!hdGMSڏL9S Z @ K1QZC1f|*H^'{D׎&)h҈'bTb&<4©)܅ vPFC^v }4"XFT+šTPzCj2*!4j%SHӚ6(T)*1|B4<#TbFa@X%c%aX0V*t @fAbwDkm*mȂc 6#20"dS]jĦǨԇ*RjH%rJLj2TbIwPp Ðb ҡ0LV"*t C'" 0\bMuBZ%>%^WԏkwUb0"+qz:*,B Ez"SJBHı~M'}c''7'13tE%`h^!%g>A58ǷWF"Gqf>OJ0եpVg*QPrF5bG Ub>8? [:SIYE* ]֙PyjT#)4Y|FBj0#rV@X2i%:U0+3W0QNuR?K$N(\?''H &U3qC 2qC %Bt*B(HOXS4mP؈9]U[l=_A3ODZQ)>]JNkDTzI$5%!`XdRќ~P&֟'T)31#A_<TdzP+2gOG*"5L%M:!9Jqp'B7Յ8uLPV *uVaZXV!PPgU, *J(P#WF#LuX?i4uF8 H ;Q8G0F"_} DT@YT +EQ'B% A,P,AA#ZBQC2E=Q/ ~ Pg{ w %;3:Pq(),E5{ 4\ DA W*QTBQdjDn% <鲠x&HpW|p# Tz΄ Uh!hBQ( (:^ ZTXT"Ȣ(@ ՈrQz*DQ,*QDYA :QT@DDA,jA%իѠ@%Ab% DADAEA pcՋ pcՋ Ver 4.11.16.86 00dbr p  $ES@{!*<{&y#QzaqzA8y.hyyyDghq$I1- w7`v2 HbAx2I%<)F<#ΰg{q-E8Ù30~du_&: ]1C|g8OWSm66|n3ܔi U|9ÓƳƮш] 8.D, %bF* p1oGp5~+xGE!<^p?V8uBqbRNEy/ΰhq3^mN&g8H[E}gLz,1Ac| ^ @bÊFhPba"SfSP89љ%$!P " +1gx>|\?ΰLCP?8ewVY5]ߊ3,/4?pLRX.5F|ie lLR >_Hb@$cCg\X`365`AEX8!{*E4aYV P3^Ig=3t:ϴG=TLqZB5zxjY?dD"3ܤ7'ݶ§t60c8<>鯝?Ƴb,/ I|4OSk=I)|be}[Caa*!As=Ś7@ 3p!x4Uq G4!HFEa-H|_+Ǣٔ~ȳ373j-#^-{ZNX-_'gˊp|'gˊpܟ4kJ,޾I"}H8Tq?x;!/qӰkğ{I#av3rb$nHK0$0$U- $<+Ĺ+tr6Nx- 89 XpBLO O4!F*э N0"~vxC/JSv[7L#hB >l|S@ǧQħ !8h۴6|& Fo<$ M_{ D3bQc98!C |Aos y=SF( tOEȹ"RNAWooql3(|ByǯMSV?fS=u $1ܰWN0+[BUP'Ku/`7=`ߦ?'ܓ#3?(?oMFw?R8gƯXgo_m=3,W8BpU xCx>AcR-#/?M'Tq$Rۓj+2F6^ 0*X`PaP! )@h"cmR+6Eƫsb!8QI Jm~CkI‡vW܍~xq4op9z@ X@X$@ H00p@ D HP^Y1YN5Č]'bg r~KC0DB-|Շ!$  P@ B!# A bs\%6 oT*7>}_j3 Xm$ka ‘Qx|$^+:vHB B(* AXb%:^iJG<ߧzWHl>+=>nfp#9 #k4 F6``4$$ @ac#CAc-*a"AH FAH0 A B B`qM!#ah H0׸ #,  FP@ pcՋ pcՋ Ver 4.11.16.86 00dbf d  $E"@^%P 7&y#yy#Qzqqa8y/Yiy90%pOYU$L}*ADFPӨJT"C!$:KD:JPpX3Uh'9~S&:pc3Tb=:ݯĩ8voXuK:*t"b*ւFHTPt?TDH))ӵP3OWнP6*-T^6dZ ֣ԙLVy}ʀjJ@PCթP0RjL HG 4թBѡHZBCA+!@[a ZT%&{.UH}mj`nMqpq0~b*J%*L0dzwq$Rqz u6@}[ }{V?;bQS-*Sա*Q}fj3*ZFCQ+4R+P#K"XYUbPU}"C݅e"9P%VrxX9*'Vo5D?AGsJW"I3H%ңFEAƌ0.(ա P-(΄*13S#SCyX0\-а!Rc#] !وTQ}j "-cM@ !t'gpwxL/9؞%LU`fDz|YxXgz%YʬxLV(,cĄN9Y,C@10 sQ@%5%G8CKs#<S?U `]WuJJL|iN[% X*dB3&PSaDӚRXbN%J TbBgP։J Hh=-,ɑZѐh@18'd#M5REZrPSavoh8t@P%ߙuc6YF<7Ęm, M=|zb%Nұ+pD 8_&A4CqĐ'c(:؏S ;y_a*S#@ ; pLبR6*U0TiRKB^GN S}p&~L%*TuѪDjZ/JB]PmސXSVit4Y|FB9>.iTb1uc H;[@1LT\LTЪ3zT?@P_i4P1ա 'cVQAI| *(QjbM1ӯ+6O+F@vz~05*a } 4MP> } KNkE }[?6#}_[ uEC}E$IHHhNgqi :ѣ@P$*C1MGAW+T3H _)HI5 "IHqbv {s8ΠepzH"og#A &BokKt'#*cMwO (ԏTWyj #),Wj5G*~IgʑWy8Ak*@xA}'G%(J%OO^A8zCbB%?p,*q*t+Luȱ~F{AQ[pC7-zRq @AGT>*uVb뚠XBZłjŢDb %SН:u-L* };7*8T"SPݞ+jfbAF<IzR%yOPPA^T*PXTX,JDkZ (V! 2 (@b=Y`Ngt5d{qQ'֢)v1XүƞCGy W (V!(ȢCA@ȂQAրfh)Q8ouw#':x/ՁtK:eݣu8{J^F((}z DJDYDAԀj (׭"VVyy#uNĤ?T<*a|tI~*GZ=F#1DNC b;'wa=sNoDRHM*ъCAC @:Bh!Z(TOW ãڨPezZ 5ZWu J,o8A~*q  b-@D-U&ϩT6HK$D*1@p}nq4Y#] Cu^ *Pd5@5FCH5e2 HSA$jjOU32B@+H6BȃoT%B%!7\j>FJ/MdgU>qJ DoT9p>ETԇ2 gB(z qjd*QIb(koL)jAeTD DB5QEjǡT h!~,Q'1Ǵuf:A C%܎ea}~ #덶ewvˬ~jJ&FQ1V\=i]D{9_AM1POCtsJ U9J< J$r*˪B^omJlXq bi>9|5€!,݋XJ BT jDr5JB'JLMĄ.'dL% DSpvTԦZU9R (LM&Tj$JFBLՐj'feb1s|'\lxyP%hdF}FSd:;8QCT{- U(a@5Ę+} Q><5r-;\ρ*5={.aWTP0LKr^$GBJ1VFp`Tuц*Pz1TjCj#Fh`ZHMrj@M#`=wDP *-F1MTӓ꽵HI ^k1!cG* Rt&vxBh*** 55|P W'cVRAE|b%fh%ŊiY*&Խ3~0䆾v)iOBӚf~RGj>ш>"աfз$ru4@H-$b{N/k98R<>AJ$z'GxPWG @ U3>;LQ}#}/G#4pO` z/Q뿳epz&4XEq; AWE5\JO'qDypSVhHG~PJ?CI`WG2߅P(3Ŏ8O58G1y#Y!gygAxqy&i%p@!a$ d 5E1"j]\נJAZ BLPH*ӬbĐ1`=>gXAVCvoUb$t]PPHjJ*4~~@} !Ejt;*mrk<*JQs(2柪H<cvXAC|i*Zp"6 DhZ9jFPm*RTj:C81h,1d*CByuJT+CAmjsBHCa*S5P JjLUb4jD$ K.*1Z8C+GIQfAfˀ.ki4UbA8/Ù4]ϠZ9QCHf_UG 4=Œ.fC!siKPPMJ PjD%*BA3c*qPA[:J.P%N֋Pʗu*TA @]Ik J" . !N("T#٘BmHufVSk*t9 !{CdmU4b %8-dzñNH`hC-L,'~FCO JBPPAbXA#ԯ,V+U jD@ oW B HMPǃ>\ NkEoqQ9{ TB ERyԎt # TV|P &H%fqAϫFkR 6L#~IdZtaSTD]uS䀾@AS-GzaH ຾A*^>-C[`\Z)S'BokIOLcM wMDbB?R_yHI]EEJmęZq8LSǚj&|vT`ub,Tb$*KG)U_@*fLpWB%7j4b}P~šҢkU(V(e%"+(QJ4Tm1I ލ4'UbD u%Cퟎ>lY!b4 }ʴZ<(jUC db!TXUhCЂF!(PDV"( QV$*bJ0úÑ9}kz]/UF1 덵:.뇏/?bI1o!}^ 5DV!(V"+СPIBE% ( FӚ 3h0Iu1{xN 菒B,T{vCxY$1SѴADQ$U@(ѠFlCDT3L:Oģy?oW}:jKB*TBEAQuHZТXQԈ5XPB@eըEQГ)= SX @EhQ+*P@V! dQr%JQEADADQ pcՋ pcՋ Ver 4.11.16.86 00db  $ŀu)@N%%@$y#9y#0 R%bP%N(SY0j8jo.JDIT%N_"!H`I%h]3uMEZMejJӂ oDJP*t-W !GjԙL'h_%[ļ?q?(BX%cA8ԈJ5(QD8h[%);ح|pX%F}|LhUnT:#ժ ! HQ T"ULMC9R9#F*]F$%t Bh!biҡP%N]F2U"JL O$8*q0Q Ȃv WEl|O%vx SK=a8Fz1c 6"N MSJPSTPzkTyF!R<4*B$RjP-5HZD1}'OS/ԣn& *HP뿜Y|H%VĀJ̇_6OO $~J -UDiRѪPLŀP)*ΔA%NsTՋ<= )4!Mаej5ͩt*h?R) CBiK УGu;̴ T91\>;ea~ 4& ya##A2bgE8)S<(c@_ &(Uk?W_>d'5⽄xTb({= ?A>ϗU5=?U-=C LlypT)>4@e``i?CB)+%0 jJUk:TH֌pX%D%&t9d8NTB1Py^@"nMj1FhN4APyi!$u@90T4"u) Rɩ@Då`sAs-Ma'f sў.B0wUbDa*Sa|p8gİN*աna$ $S+AT 3 ЖNCRδX J$TK)D% HTD%S b  d*1 UTAzB7/CgBtVu{42iMYE~4! 3:R480wDTZ8&fc :R1;|V?y&Խ0@>YUI)f45WG @ 4 ¦)7~pL-PX3ČnMdR^%qDgʉTñH`Ub5L%V¶)+W3G*fLv7B~7z1`:VPTDO(uV`,P^#Z uF5XB D%EJTf-}o048H[C*1b}& MY\TNPӡOj!V81}>T_?z2T9C-*V^uDb +U/(BZ(Q +Jd%A*PLź`Nu5 5{4YhoNo h\?j|YuB,闣Wry%JkTP" D*dY,(ѡPI( YȲj-j!4R@Oz`@obvS߀jG7$:IuѦz)FUkZQEADme(*V" Q Պu"PÂJP BSFCE U! CԂ( F4Ţ\b%AT@5((NSX Y dZѢV%ʕ(V@D@VB (  pcՋ pcՋ Ver 4.11.16.86 00db   $ŒE @!*<q %y#1y#yyy~yyyyyyyy>yyyyyyy>yxyxhc1yidXy'1yCyi yxygE!%lbvQTH8'0ceA`7RE0@ /H}Gt 3g}q^$ΐreOY1AxxĽoWX vc6/$G0*bXpQ ^ eg'C,q,(<# {8it{603pьqaKzKu=xgc4GP|gx"^vV2sᜌV,H,"a؀a["%`ʌ8) A5"El-I*!*`2;_;BÐ=_#q Bp>~/O[ Gg%`TgW.j=e8C*ON߻YxicvI`,/c~Yďe{{8 ]OCp?px2>_yiIe?`ΰI>[-$~Gg7=4l3 ҇M8YԪVg)"<3=SLr2y2{EAFeH p$Lq_`{ 3av-tV8ágYTN p(^4A#1U""؂X!AxS p*a 0NNQJ-ߦ)癌~GR͚XÞw5,[V$~F+ !!ר4k8bx 3Ͱ#=h[g?JgsE/#kCxv" `*bB#e?[W8C<gz4 8CbD#>@<ēX#0a11y6!d~88?6$4YatB=W>ë!!oh0"`|ĉpӪ~Ӭː3ϵl-Poc3\ ؖKGlO."tr6 'gS:!FH' @ BtGnp%|CLk?_'%GceD3}y(xQV|S >*yG4_pk>(`A*>D xdlO(x ,q!$*%X*ݚ4KcMJɉx_>g%ZyR1׋¹VpD+u(BG FC1Q p@\ H  ! Uxa<,bC|aqx~NC3D82hOGCC0H u@ XH0#AH0Xa-6BxLs|Ԃŧp(~t˅1IA z^##xUͰ@!!``@$T$F!K,DţI㈇+46 Tw}3 &J! C>`@@`!!1! !$[T#T4$$T$$$T4,0!S`$@ps@ : !bB  pcՋ pcՋ Ver 4.11.16.86 00db6 4  $E?=5@N%Ut %y#~yyy緞4O<<?|<|<<<<<|<<<<<<<<<8<1@Hd: @Q@ńF #5*#Q#*TTQ&b&kj! "hu;~VqR 4FZ $Us~GYpLoOq& Fc3 *Ah7G&L%huXHr䈍H7AoUJ mQ->T: (P$@&+VCM2 Ez জQ4 gCZD5i@8}.jH @*h{((C_J41Z ,9TZUPQ=SUFCPL,v4)GZTIB]D9t0GQ[:C@S!h3jQp\j|Xqx9aht /5,kĊbP"DŽi馾**%UjPPiRj EhZ+JVӡ֌pX%f$R]K8A%d*C]BLA>"*C]SjԪA-H4Pq?@ byb b.64; rQ% u 3Y 7=R`8oPPAB_*ǃ>]DZdE#AX[Ouh]?" 5' HΩ B%GoaWnhU "g1)~IduaSߎD]N) " /Hoi ̨Q Uov6\Z)BSSO*.q$1 ?ÌS'6d$ykFߛ%Y?WE3q^!P?9fR~z5XBdSq[!ԟ2V\j5C3P^Lv%.Nhk"^4SC @A[U }"C]UYB*kPZ uXbYBZ hDT@jjKGJ'P !}e`.7M5 VC8>l9cWPc&Jb(jQT*PP *łzAPЊFAU%J@Q1~úÑF9}ozGO4f5mh\?6˖_iT_FC8vDPDZȂA dzQEQP  hDZ3h4Szs7`m!nAZ! unR:muO/ =Т( A PX, ׀r `()Q%raA} rЏAh]B FC%Ջ((NhT+ZUXT"Ȣ()jD *VXQV" jՋ(3zEJQE d%Y(*(V@DQ pcՋ pcՋ Ver 4.11.16.86 00db   $]a@N%Q %y#6xpxyy7x""|CS!,Xk隠bW}@jA<TTAU$Bya$3Y]RSnGu?RjjbulFCډ Nj*h'`*P V?7 TB*p43 2 7܀T4~P>Գr}5c\ҏ~C*1c^US#'Gf̸k #'tjB%2RjZD9KшYFCQh4 ZP˕JSj^+!ӥJmuHTkP)Zgu"WcB*fbX%P\*k؈ޛa=0 S*1cCs: u@ q-bBHy*"ySbD*hRSjLȚV9U zG i?R:ZCTJB}xH?Hy֧ _Vty:_.)D+Tb$ٟzvMTb3zt*"Drmk{`Ti5JQD;*BC%PS@Qm(2U0~gGybP6oʳTͩUWja@A(UTMj7_@נbP%EMP Jq b ]T bG%2L"݁J +s 4CUb֨*RrVDM@Yqn1?RO15484# i%աaSN-Dsj#O@Q4(RRFm -TХHg GPP8<`?a=ǏaXSd9aJr0ú41XxX%ȗx#},CP/"wm͌XO j<6ʤb)뗟i :8D_m³r}*CUEOS~iMn@ Ag~zT E*GH1Hu;^Ub/mL4I+.O*J"}o ՉIH! hD#~.) P3S~E$Dz;@'5ulgPSJ1_<45\JNGq$1itq JMې85GJ33:%%yy9yyy9yyy Yyy~yyy>~xyyyyyyxyyyyyxy>xxxy>)xIxh)y>a!9x$I8yqD%0)%Mj5ia(bB9: tڧLNG?Njp:*bp`5N<JT2dB婢VC١hکt *Ԃ j0@ j:P+ZWZHj^+5Ziһ m:AP/ǁ9m *vTp:c_ 9ORcWGfTb;0jX:KysAؐt *P4@ӕzXP ojP1" 4UB ")b-PI$k`[Snڏ+ZCVBmz;'dA%M$Gj I'(~ks/6ımBӤi#]$.*1[pdhmZ#Vb[A@qmZEBFP}^7e֔9 (*B RjP&5QP 22M%P8;p:y{kV<T,$pP%¯L$1D*q\oTW6ߜ3hlbu@(k:T"8TQFw/0Nz R0!őF+ZF:*6HQ4$QR :P] AΥƐ`?X_r0*kytf9>~TVxX<`ui)UD.Yar(hFx>RiaXs/y]I7NI"#2OQrh8jv4gh߈)B(!W iB ՆhT PFSVC1^ *&JvB]d*QČB]BL@>"*ot[m sZ #5@48Ri:k0T0PVhTޙ , LcLƉ-QgȣJQ"H0wP LTo) 3)@舺ud 9aH0r%HMsz *gL@}XrBo8iR rjTA|sFFC`0~d1G 5~}V Pp+~iMHmQ}D!C 9_OrZ?/Pm^Ԉ-_8`M( h21, H%f\G~pH%6d~`Ĥ~;)FuAi4"lۑH2~`LA_ɑތffA@h  3XW+w*ILZ)됇* TAi"_A~SUq2~_%3:<\<C~zNu֩P?qB-T_L?'Ԍ>8Ө}^I:0Bo =!ETVF&2}>C]U9T ׀VtJ5(U@ԋjCVѬZVRvh ij$fdpxP'#kPt:֓}jecӧJ%3^Q (o2bUb^@@XT"(V!+5(hCҠ@ AVDP\Yb SnCNR9E= Ә>89 uۀѸ~T6L$ T!ףFUբ,dJdA) e d dQEY4@Mk*4 S^Zob P/&A # ]Bܤ:Ñ#D:e ƨNШZM ( %BPX (DQ5\gCN **9 $wx:l1B?Уt-b^ C *VQEADQEA jE dAY(+єF5\P QEADj (73zzQ +P" DAeQVA(V (V" ԀzA pcՋ pcՋ Ver 4.11.16.86 00db" ? $Eo@^%e#,t 3%yysqyyxxyypxyyyyy>~xyyyyyyxyyyyyyy98xy>9xcIx()y>yAYXAay9q%P:l4i`iHAXG^Ҋ>5U  ?B*ƨ`8Qru X:>xT%$CotzA@F+* 囚Δ#R*XHR@B`$RvISڈ+ZBPPBJ _4*nI'(~+Uå$e 9OOoi`:#8q>Fyp=EbO%NDV˺+hb0QŒPqB FPd*6\ZRW r!!ӀLШFHTjP")҈t TpzjhW W@tđD>s_WVy aqcJ3b)u;Tr$jPPPE% F hwz+8sS a )ɍRV)'i N'HQ4$FQ[΄*l:j*/岈y3_V!VTt7>v=#r0zt)UhSfse\ci } [mʬİTڃcg+I֡oTb*݈=08n`OPRy9IĚFUUK(BӡPmH(@ Z jw5X#t0*#x(U.T"PWQ{)aPVjHL2B @q(tՇʗ4p\#!oj ,ecDg0 LV(\Tp#HaEcc M5}qab&L Dgj㭍dm}|ǥq759 ;mJ@r*PM0TbuYF2 b$Ւsj#0RDJ,g7bPxx`JhC P˄"Y. -8Ҵ4!CjzPsL#a`Bǔcj+0;&{IQ񚮱0 5= 4ZQ璼V4'{c=JDYS%FX(R3*Dڵ`N% VX*G }?RjjbCN-``X VPLDbITPb FC]9_L#k~,Aj: BA>5~}\b."}C~iHou@ P?CֹT" 5'5"}Zտ@E)D6f4J4rQ*kSOG 46#k2]+bfj /GzsH #I 2ҟ ,O+2I*~%šKJi8~ЄJ!)&yTM:O+ŕ~Qa9+50@"Tak?+BT_hq\>8Ӣ}^:T%2 UPӢB@DrQbA8T jAXX J QV$*bJ0)]M4T8M W^ZD79EuۀѸ~]f p8z7V GhZ( *dYPXb%+ kPEQ,*AЈ5f P1E= ,{d 7.LuOO:BТ ( } YJQEQ5XgCN *a%Ǒ:|) zZ Uh!TjT *נ,(DAQuBЪA ( 4A (DYE( ՈQQQ&tF/A/*P@,((4Q Ţ@@k@(( pcՋ pcՋ Ver 4.11.16.86 00db  O $őZ@N%ղ@$yysqyyxYyqpxyyyyy燏>yyyyyyyyyyyyzyyhqgxy9/Yy>G`zqyEgi)y"yqy %Pӛ:1M6Uo)3,i@h8"F "R P LhDQ^!$=?ҟ.=@Z\*_h1PcJ!X/*) CFVu:rРV4>`KTT(4S\i!+TV}!RpNhS2")] v&JH~Aߡ__רĩ) p0ϩ|"Jq*lϵPC)Tj:RJӀHm*Q2Ո(HRTlBP)VJSGԖR2~S 4z-Tb4=SC JWW.8[#LWQD/۸mD*~ud ANw*QEV)MU E%*BQq%h+H(3R677Ն5}*ƔiDq&H$FR BDEѥ:S WJdzeyX%b õ' y #g!̯D*QJ _l8&g*FJ`+W^Z(o~V\c^?Z° )Hhа)&ͩS h!4ECbjKJ'"MV--BR$k⼙/Ě;D? N9aݟhxX%k *`keUa b47xƜ?էTb!~Z!{*gC%"XV"2B VUX-)5*F+h*jTr18GP`:TbO FP L%g.yG:(njSm#jЖj(dVPHPVI*q:x" 21dDIEQcd>dsG 8f{L1L5=ac3QHt&*[ˢE0?Dm"TdqY#܇ZshT 'p e!V3 û*q(J jp[%LU$F )UNPT@xKPQJ <\O, Xwц*!4RO( 5BEȤiBS4d4!`3 "R10wD0'42UTڕgx &"fV&aLsP_j`N%Sm^ysHoU *%QV+(A[>XAA%P+h YIw0Ԩ|sFFD`0dBA>5uS>T]Dz }C/qieT3)}HBMuM9yN[T<Ӥ> .!U"G0IH!K  TDIRJ" s"9қQ~$)z![Ff,*U6S*~ š88<_N+~D-)J}?ې8$y__)EJqZyP?#"϶.BaPAjҭjF+gZ4)V>Wg"H_PVLPhՅrBzZ uXkP(@XՋj2բ::3P;4CX.aTkՌJe"Tw2 JB*P U*PX + QՂF(V" DV" Pb*ץd(]M4H8Mp5'A2A !FQap\1HC4֯wcG4VZb%UD@PEYT  D jjZ j R4Y"_V~_ڈF7.L*uO/:MCӪ5-(6TAX YUkPr0JPɩyyyx>Yyypxgyyyyy燏_>xyyyyyyyyyyyyyyyxYx(8yiHgXyy@yyAiy9!gD(.b22N#"5ı(#q#" "(+aQ1)7i3|Й7Hg mxF3߄a9JI %~j|{6&pPi|)ZP9N p 1gבB5s,Q'Xf  e<9h,S+^OE<* {<x 5Ι7t~~n4Y ~g8ɫq6Gw83: OK!C5"QI&ؑX`ic Ѱ`4y; 5H8ǒ"*qD q`Pf 2^H| 3 J5^?30 ~5BcS89a?wKŦ1gmbQ"~}Ոmߙ /)dʀsg|n)્ 4'F"5'x$1P z'h |w b)QA@@@а@}s|n<#7 q!o/2~]ID256 H@dPn#CB   DUx4爽g$>7YύEGΧc_@~la`H 0gՇ4,q)F *:"HFB@BB@[[lD9 d OO0f?$?rQ]0EƁ39xsqB !@##`B*"! !@)6X48=^e g%[/g;_@!xxָ3F26#0@ 65Hb-H! X`%6 A ⃉;hHh!@A9 4  #ЉB pcՋ pcՋ Ver 4.11.16.86 00db o $E+T@"< AAqP#yysyyyx>yyyx>yyqpxqyᇏyyy~Yyyyyyyyyyyyyzyyyqgyy(/hx>"zyy`yiy@9qy ;!JEi!U !%@%֢!! aR.E\rt@PT`mZ|l0v,WQ~po}WeQ$v8nv3$K I: 6= L,F pEb )=8 1t(&4V8\-1 qD1.8+q$*p"MTx2 '";Q$7Lm4o^m|U7!Y5;KRk&n8qX @4@  @(Dc jd65'%T%Ymu8E* pG!ѕ8N'N`S;/PRvv^ "!y8>*%vb;0WݿvybEhTM9F6I P!*0)K&g*!YF  ІAQ!ZZB#dTL_fp> ;\[ NGG9pYaMtwQ]-ءR 28i2;4\aʣx BT4nJP F["#>6ۧ5}tB C!!X8.\E*a.ц8 `ޣ !4x<Ÿ`JA@!ON# wҼ8ҿ_+B#msݰOa~}77pBqpW0WQZ!:󃻪E[81v8l8_M#{9Do_t;ZtC1C0A.QI T+Pa޷(ޙCnݐ]v@#!dDC nD}5C nMy 0a_>KA1 UnGfyzA{`mG)o7S9j4M E,s2:[or/5C F9" 1iͮm0 yA.wG9 ~Q4kp+p w9}4 /Dϻ )L?ŻU@3]D!((|'.8L S|,LӬ[QeQL%fQ L" EF+a}? 8pGOH!GG`F"E!B Ȑa O'{7xOYYSϤ6j؋a3UYcV|xiߪP8.vBv.8yyyx>yyqpxgxy>y>y_>yyyyyyyyyyyyyyy)8xy>x:qy%yxix&ik)& yxi;a=@)]H# (1%Ub* Y!1X!d֋*Bp\Gq, 1UFo (Z%!iaaL6H åt&v(2G;ƭB&q 3ƨ& ֨ uD8RHt=:l :NP ^+p %&:G| TGp*N^y ?_y(?G7)ѥ_84v79$v^ޟQҦq)adHEH,8̰Fs(g`QnUbAA` g|HY 8QTЁ!`cj8_ G8,]Od}B#0c_>Fhbjra# 01A/:U6Pa+OIFc|l+ y*FcD FݔH77_ă_Ĥ!Vh7V@,A* DmѬc%LM0X4 Ba-T @wUcq9!0!m y:|,IO"]([x8%H(!_`C7(,B| <  $Z@"N%u%yysyyyx>yyyx>yyy؜yyy~yyy~xyyyyyyy>yyyyyzyyhyxyixy>@ryy 1g9)xa)9yya%0E ֑&Q4R*fu"ttF:B21U SR'HM:j(T}MTU‿_A͋J_ geX*q(~3g28pQ%vУ֝C*; j#5%.FJZ]&+݁TUT.iXPha;n0@7 t*]z2ߧJV.=U" P@:4~S q ƚʡJ** aa^ .dZ!R0&JG2);&P*Q|UBRqicCET'Bu@%.=UT▾]z~*qS*)|ՑJ >*'J\ H%\Sg:RRD%c(E2t*D5 0ڱa^G4<8 N!SjTm*5Jt$)$tv,*&Gx*[%V(5ÿUbi ^}vgz *q!\9aD*q*d55B3= mGPU;BE(@E@_2}DC,4#] 8 u uc=ZE;Mt+ӊN +M} t&DGTxD8rh'/t71Wj_//_,R/kpٗJ\zytl_V-JԲg+y{=S00\Ā~ThxZ%E7E8קUR4+P[%j5PPi(gtPTJP~*1EXA* L%8S1t."  j;S mP+Ƞ>JXGiF$Re ~Q̣'B%B]mɖ<Q8Q0z(LbG7F&R[rY0]l,*12򰞣Cp|xtpX**qJqprU@6JT!T-ÀH%n(&J"2 eD HYXEQCPbۥ]*qE$ 90>(I'4u&a#ht&B4)F&zwEBjZwW3akF) fT**Lg$Ǩr6 śmD9} &c=u!U0}L.ix1T+TSB8/WV+ r|J?MuJwϑ 6'0 0~q~(]P~({ED$>Nj=#%IWȑ~q[:$ʋZy| ߌ$_^R1HHwLtIRF6ԉ~MAi~| ҟ_VB?V9Ȅ$ +"9碔 3#ő ,C9S`H8Cz:AATV@M(QZ[uЏaߎuw݇mP&c*a,i62]P[Q 5PBzAbš:&!*QDD+U@%ʩ\%Th;iTzsF? d}ehiqF v_rߴʈphBmժdAD#PV/ D dQ4ZP T9y !Z?B=*gj݅=ÛQ3AӨf }D( ŢQQj#X   DQTC ( pcՋ pcՋ Ver 4.11.16.86 00db* (  $E%u@N%QO%xysyyyxyyygyyy<<<?|<|<<<<<<<<<<<<<<<<8<G 5j StС i*q2J \T}ĊQzyIJĔJ%#FD8m$J-" U@EEM:M:Ft*ӂ8%UTq4Sb+Pi@d$RvP#nP;$3Ӫ}x\ 4P+N*$F|*1h#(yDk}g;wm8H@%``fG*IFJt!j 3ԇT JԋPЁP#j*TTl Tߨ׊F7gcr4bur 4JhNF"Y P%@IS%[vzgGWb)kJ 8U{yDRsyXKq/DartP(NdJB"UQ)h°AЛݨ uT*H"a!bja'ԀN4@ΜEJuP,C+(V<vJ >ONU-_Ea9ja/+a?񰦜Gk`RF]t1tJ K!*qH8N5WcUJlt-ԢZ*4* ֢VԳєC1Է:;P`T ZA^R`A >v0S;)ED QCũ!⠘ P#Ž)5"+A:(T(jTidM|.JL٠od#WZr[%'ۮhVmǗfX( OGcNipp0J,СJ1򿉆^yX%| @W4hUG'83Kh:3#]6;J*9gBDm *5ѐ "2uIh*RO*V2QШPطTATx1qPJ!ԅԋ tImBg')MMM&4hLӄ3wD !aGܙ;"pLqw48RRiwL8V֨9ztM&B .e|QU0L3mMC=`9JTq%P QB8^O(8~)?fOUPrv"O4j4RI&N*CN]HC"wQ9Pb#ꗰ~~;"Pjt_O$ u"Nv+ڂx ջ}A$ B&PBWA8HI?;)%~LI_)R;~t8 &m}R@IWWLy.id +<G ~DյW+#Y4.+~,.eOM)oHbXyyyx}<"zxx d(gy9xdIxyy &(%0.Qi:T )QFwALT@퇩*"Z`EmP-i:U9ƓU"UPt TJDmJJ%pNtXAь (^+UkA$T*u SFJZ WXI*}BDQj@ LKԆ`ZQ[XJJ$KWxU"B<J6T"N8#*,$!Ub-03癡'DjQ#ꊚTkR ҔNeZPUq43r5 hnZQ)fP"Z+6tH@%;Ŀ8>OطJl2J[$CUa^,D##y6Mkg*хCo-`\uMm"Hu@ QV 0ջhB+ê7eFcr4r*ByPBXRhN"Z!#*1_JJd*!V4ЋS2NVK-^*1,ƞj=OQ@ JJdB!z@Ų) UsP` 4vG h?uYT*GH"a>wtM945=avM# TGs"jKQ.W*]J+(nT00ĺGa9h<?O Jmjy!V֚2mq9aUy6_V-J K%).#TyySX :p;Y}q]݁A%|r|}Z%ւ63h@-6t(r&XZQ=)MB<h3Q xAH%gCzљAu)4*O@ RjDTZSC%՜pXSH-D*n oGF6< JLCJA(j2N^) ?3f܍$WŒСJ1+D<=( X_82ƌ̃, gM}~!Ȋcm<,ĂU~L%N1k8ԈFCRA$Q9b;QmGզJATx1iPJL!ԇ+.ɺM줡M=&4%#  ȃTr+JyO ?JNUPrb>F*-Fb'V:z&ߓ?h3A]Q?99B*fIKkz=݃ EHx!_O!}*)BmQ}[If Էd ԯH? 1 ~QHߎD:5BTO9Ȅ$ +">`ɑ^yyyx8}<<<z!qx!giiEyxyey$`%0.Q i0@`Yh hpW]*vAayH̨$4@uZ!UFCr)'JUb">OsTP%fG=1bA%8F`*+A'd-jTH:A@4XR(5* u SFJuZJ\Q[C*}B U>TZ+Lu& FBQimf+P@%laI%f(=8J~fTJ`HX fT^W4Q-TiD#- +U0Z=)D:C*iʕj%ZV)fPaPP :kС@%P:P(v>a <8\X`p,"Զ18`ʉx7^0oX0W~d:T LTDI<H m)j*TTl4]°MKB4rMˡ("TF9B+EB%/JJL?texuz~vg*q$<*~ѥVP#C*PРLB#*HJvU4RGuMȃ*1h'c*ȃ"Ub, 9^uiS=B&1աFB&]N( y`B#ǔ0шcb6J̎ɳz;#jcb^p@SaN:5!@2֙4C10QBmBu+JIx9Jh0T\)8^:q V *TGT Pm(G?UBHT8J18?%5CNS~#BfIH?H~ {-A"~~zZ$ GmM'C]HL}A  DrIBA>"1ԩT_PA'949} AJ dHOT3үLj}ضR_*q3HLi:!'J?<%yR`DJ}6ę~ƄZ?qpN2+Q<hՕx"+S݃3!qoHgT&2jXqO%>tI:jADA 6TeQ re0iK%N88CxԵxrЯ#Lz h!b@ꕫQDQQ'4 ( dA Zj(+EQ^jU mރR W@V" dQ6A dQEQJ+QDQ pcՋ pcՋ Ver 4.11.16.86 00db   $E9@n5P QEd $yy{yyyx>yyyx8}<<<h:xy"yYxIfx"Y $x1q%0ҴtlH]HŲ4=}(*i4:AlCbF* 5@DZT?1e CXT"IJ U"7J~~ 1đ0f[]SH]6Ψz-SQM)i:+ ʩVSYt%0T*%tȚF"40H5PLu&!FҀJ̇~hAx*1ĉJT~sA$C1,ĒLGt|>=)H%6H%fT%B U"T@@Q@NAT"M +TJD:C*jQSP@+ԔʰH13-GPkA@% [YR@%Ƃ 22Tb4Щ!qP~C!"xP_@%* / "@gJx!b GZiYLzQa%UIQ VTCvkThjXɦ%!ҀLV+"XFV9MTi|OF^J*?z*+ac.Ǽo}0BTXJ4"XO&~ ._H%X XL:h$S_)i"tuX` HHTJsPsISrpvMhNz2 J)TQAacT"F*Fhf"aR~jGxVdT @S}_B S?RԏEnj~5o%87wO1H~0LA`WCA!H7uh]) 8H;&S>?"OE)IGG #}AJMfHOT~j207m*J%2HL?RP2l .iBŕ~pXRǦ~C~7H3ۺPhHA'WJ'CZWIh*ϫA&Z&"2NgBHߨ42aR]*>š>Qɡ~҄NUޭW3A+m&2]Z*c +% (-UB *P@#J(єBۣͶf!GMB(C7ctȈk*1$ ±9FUV 5buF@*Ԫ+֨Pb% *Q@@PPbաD:84eAM-L[h6189<8O5~5Rø;G Hbuʕ(V"( % hC AP *P( R"4HSԐuQD  DV鏚C.!LuG0B3pY ƨOhԪQ jCB (TPDQD**~0H*q} Lpԙx~# LCzY[ 4eM D*QB( :m@[BQbZQ,  (*W\ (MރP" U(EAVAb% ((P@ *DQQ pcՋ pcՋ Ver 4.11.16.86 00db  $E=J@\@!a2 _$yy{yyyx>yyyx>}(z'qy0gh ya@x y ;TaE0Ef!=pؗ8ND8&%8U1N18!@ %dJpG*P,<#Q&ac zc`L?Lp-2PÁ)Ѕ k෉0uK0$q usTp3P.@Bp, Ct VȑY@Tu8y*@c.cC 1arT"_'p5G~4Gዣ2۟1ݬ0ҹ#1~c "LITјaCbc!Jd7S\` R-\bWцH`P#4Bb#8XFap1ǂWa}h Ks]!M;qaxx@s:mR|K,[x B@ BJ 0$m Kt0u p{i !1@ţ !:PDW"$vv p-xGV݌tRRikfGNM-Yxȩ4w*8O0@!̐`ALQ5 іSY휡p5b!NJp` K,C ZECP#0Ğ-KMy1+D,^cy<܍!؜.a8Z nhpSU ^qsݰŮ ?N/k.q B;\t>] ݕÙeiw'^W'COO~ G9R }L@c)2b!vpa[T)M1v Ù(=,q'N (Ic,aQB1,[X*2pLšN_Lth;U v8vǃὌCm};94'GmD8+N;r`4vXÇu?lip4//>,3I]G1\ϝ+px %^0)f5BS0@w+};l“(vh*Y <3 nr0<ݞnM`i={. 5°hh;m<)K <$:4 UuW6x7%Љ±h1 4M D &h.@ m4M 4M VH5? mDPwYm/d٭$|>D_@QC/Ɨxt oFJS5c'1 &GUW"Ygp103, q6z<3|@p%QࣄBQ|/!LQV`F >vY8xa,! Ϡba~ B!,aF!^ {~U'6">6bx?@"oR!a'8YuMBmxK>|F ۼ'2q\#McA@ biQm Bd+M6H<3rq]j 00dbd 00dbm" 00db(w 00db 00dbD 00dbJ 00db` 00db& 00db 00dbB 00db\ 00db 00dbv 00dbN 00db\ 00db 00db 00db 00db\ 00db& 00db0 00dbz; 00dbF 00dbPJ 00db[& 00db6e 00db0o" 00dbZy& 00db 00dbr 00dbT 00db: 00db( 00db 00db 00db* 00dbL 00dbN 00dbd 00dbV 00dbXB 00dbN 00dbn 00dbnr 00db$j 00dbZ/Z 00db9f 00db*Df 00dbN 00db.Y~ 00dbc 00dbFn 00dbx 00db 00db0 00db 00db 00db. 00db 00db 00db 00db 00db 00dbn 00db4 00db 00db 00db 00db% 00db1 00db< 00db*Gr 00dbQb 00db\F 00db\fj 00dbpf 00db<{ 00dbƅr 00db@f 00db2 00db 00db 00db$ 00dbF6 00db 00db6 00dbF 00db." 00dbX 00dbf 00dbX  00db2 00db0> 00dbv(* 00db2& 00db<" 00dbG 00dbQ LIST [movilibextractor-1.3/src/plugins/testdata/thumbnail_torsten.jpg0000644000175000017500000072646212016742766021360 00000000000000ExifMM* (1̇i WinSYS 030 10316.0.30 HH09.10.05.01.FR #x"'d0220  ȒВ  ؒ|0100@h`    2012:05:01 15:49:082012:05:01 15:49:08dR980100CREST  ;Expo Time:RGBGain:(1}   (1#%(:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc//cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccch! }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?h  Z(Hiv2ueV[ii }ivZvz6{(.ю`zQ(b Z1F(Q@jQK=ivP1v8E48E _'ڗy^y^AE!)iQJ(ii)ib )@a]/Vi*1EtPE&h&2 gu?:ig;0j6kc괺? }&xWMEa"z W m!HL~"Դ 2N)xl@ vqSA`(8(=) t8E9f#mBsVoߝ.4K ܟ?.0ܿQz.Fғޢg#'4Ê4 ZD *)'\B*aC J(¹o*Ӷs,4[P& 2sE W".;j+!4[@zE56e5FJ_B>- 5tqj-j/.eluim &u`KUX4#(5?cR4{zѽhXPKZ]J1@}3@&@M0i4@ Hh _ !煦HׅGjazP*u!41B6Hi Oj EbZ dA"0=(XߜRoRp [h6Yu/'JtPnx+VSm1̡0Ae#I"ldaI,j4ԝ&AŒ2G)JMz [y2qP MQzԕq*)3 Hޚ[Ҁ[ y/#44` ʡsoyVE,b4R{f2],NIŢ؅FBӒpi2r&ܔ-.C#aL4c D80BM!oj!4!R2*Np1sVLf&)9øAmlHۋRMiv{ѭájh"Yb~wPm(唤"S$G?jR4Dž_I_C̿Aug3\Ԗi+>&{@#qKul%]e}Mj޳~v,9cT$4"^("{T8AC@Xi#a֓%(0M(}  22))4h$K-*7]2,;SMt0D-Tm}Lg͌SE;XP .+H\⋅n5_-R#I6 "j>±{m978|{TR}z}L bX*YԱzhG"̿VdYʰ EuSnpEfc#&+Zn*2e:75 i 8Udvcd=HduA$wڑTwd XEhA,P9}*8;DZ>}7"SS UpYALᙙ=HM"D˜4 Y%D+0SMt[}CBb;ӗ J[X5)r(-Jߔ:SҖLwrZN H;U+'-zJz]D5 b)~9>D}RJ>CI֟튿f\rLgXf3n?yYùUݭKXõDԸR`c~d=jJ©jdƔҝҀ_ D>iޤIOZ-pLЊo5@S`P6>AoZa֚A"@0:S_QIEdu6"wPR4b7SM%E_RQ IQ 3Q9HG6~$6y1Y{SUI\t B閩u]TӬd3He◵ct옇I)b|4r̈́2 'f^_OO>%}l&Tw.X YʮN՛2 xf2jٓmjeDۅCǏQX.v'"حuU[E)*)f4iAXJ`SȨfbF܀EY f` HpR(B)!S !J84))i)Pi CHhQ%ޞIFz Hv .=܎sΦbMtV%7s0dE0椱1h$֠i>j-r\zhZE4cRIz}VdOˊ}{*s&TtdָILҀs* oVqaq/O\NtSb4n'L̽5j7oQT$nپR "̵,ls\T2O>/T!TUxత\w4n)ګ$k֦ȅj8ڨnJbl n4ؠu+JC@ 4@MҘ012O1}E1{EDd V}i@4!SDI1N.Z鹝Wf '\Vj9~aJz85]cl~$tAU^^|*U-ΩՀF.l&MU=UP2_N|-[}jK#pKdv9m"UA㛡"!wVL駳&tqBPe&.2=E ƣBV{=IG֣`wKv-Œw&Dx:(^[l3C31QfƧB[iBDZ$d)4~gI w$f;3zE7>})Ө-RS(VbE_P  2j4S!+P˕^)F޵zHhMKHI@ J@=kP8(\RL& mǥMk++&_&vj-GWqITU*e@e.Vc!/(fYTF) `v": UG!52.Ʋj脹bWQL u }=ꭴ!U=\LֆP9DDqC\lUE/Z J)={G%ʦkJGpJHOK X00dU sTv#A 1?#j!# 4iJ@9 " p(Ar3aG@CrjPQ -V%Xж9)(&ʤҰ't[B/B 1 ZƻPTh~*h2jJ"m^"lJ"SA]r+" u8qIM_ƘU 8]J{Ǽ1VoCz1Ex8=j:4Rh9Njd""u^z7-oӠm*˞k^owӥ]IxI';ep )ƞc[1ƊDW*>ЃT@ZM:H$T-}M&MgM*\,a1>0Cj !jt~J"V~OX$ Z !)qLErM)|VЋ[4!ِ U>Bl̺2w˚>49pܴ j6?MXSQ}M >=5jvՙEi~K;*w;ɞ1@6G6r}kcJoYWM_bY܀5gbW5:K6SmͮӸBJz5NWw.i蛟CHw|8"`©nDeI8gZHℬH6ʚ\gt=f95t f婜A. zפE+MRtd 23R[MWO\5L7Q W"lB4?]ǥTl1Eq2@)IGޣoI78POz.j֚+/@0%FՐj$Rj˜GTm& {WBHQ(SW=iX.NPBg"aJˡ]LĚITrkyc TMJK؄n2m`%ڤSLdj# ~--ZmGE'Tu_k 6lNzi4eԑ$p Cs<ᤝS4LdҘѺNWMyr *~`Qlk7"]AlUˣjxTkf \EHMKc\W\Ԝ6(6ۤ?7 v2``P5'J=1Qf|TfЃOL?H&-拊d&41aLd,* ұY1Հl\}jQґ/`4P@4D˷TrBdaqJW5C;b\MN+9nR$eIrq;ROZvӳ)E+֚P'uq2pj.{ nohqUJlv 9Q[x(“M|}QO-ȡl܊DG9 RcCVŢ⥍Y-i;CMd}MM**9nj,jQKqC+nR=k 4T|QRg90-+@F F$VUai.G7{4$H:Zj tQ+LX?+c i(sT#$CoO~L6hz;f`;5x'4̭CW{F}&c /Ww͞ 2z@qK(w(~LE($|OLS&'ӊ "zsP+fU?*kaӅI/`5*rp*XjJ+ WbiN+4:t44E;@iKrd0c">̬E$EUvkVaZkM{VJ=_5CK@a@XULͳ40@Eej$-3VI0{OEѵ4P@R T7Wc[ҟBzZ7TVnP&s >j'-tR[x]&Dd1R%zc% í@ 2mbwv-y#'PeB>ځ@!iXTva.ʥ4LJG**@3(PUmN PL).qN# T[F!ɦMї %sK'"^‡ Ȩj AsMPϵ)jF:㞴 lҪ@ИSrŸ>j "B~"LK1i涷rn0V<(G^v%sr 6GsIEvZLh4\jV}e1RP]H )lKu=$L@1OIe{ {sYr)ʤ,UP뽳]Gn`cr>O9+kYU$ѹk\RhWҢkI()M2{l85)U\oeW̿J\Pv$pQJXxxcjhmrX N3Vb˸YZҟAu qT.(r}3iSl FzFb8ݑ XSmhHj֝Hcv:LWW(3ɨ۟Je i.=6H) 3+,`[JIREr:c@џVMsFQVDL{SHMi: wjɾt&D[ijUfIVd_KlvZJѼ:R1 2hC'b5P7Gw'9ϭ/aV) lF+r&v&U,ϭOotǂ*05 /jin^f=khLj]E @z0-k2G=S=I#e^jjGp2;?yjr k‘\HOǡ^ΆpTu.)@H(1ޓI^?# h6V1Y5#%O] qR*9yv1R-_9b$JBh?4Z\D>C8=j[,i[Ɩe$}MZL"-a%h34$qOa{Kʵ\[d.ثum" F{i #Zis%&xףd 4;}i8>d>[nJGZcLc{`S 9Ȥk=dlw4㹝W 'eiMa$Iԓ/fPEnqFm+B?.-zڈI&DU`VM|'ָ;覠t30fn.)qLBҊ!qF)e;l2}*^VZ} YMa]AC?)E?iWts~cID!搄4`g Z׃Sb\/SEVH) `ؓɪD6g=jQMKQPj5U퍱W3%ĢSȢ@I&PZ4#(Qȫ1ڬ}2Orzc%G,HNyrӡtª{R'h'=l`"aW4)i_lQ޴$_+챎qܙcVeXsKn˃ls2T]G0I[6e*dsXk̦iCՎiֿQ\7=Es(R@_^jE_A"kI]&?K`9檟(.QHCM #>jFId҂}iOzQހ,6$5q=MR%Mery"=*ZSہSԥXr[ҬeZ/X sSi_- r 62-M3 iU܃Z| fxJ0+HyB {r+K-Ӣ2(=hjq*"ie]ð=:VWM÷5͛8FyaʳY dSSZOqп2ҟT=NLi,3c֐e29Wx c@l(zx)=P ;GiHU`AN(\|̤$] v:iD?Ϳ5T#қ ?au$4R&0)KwBu(D_,dU-]B2$1质|EnM q4_Z,c+2l@jm;>C-1[‘<26OޤNrzPIIs?=Q#K/wptӧdr kI!vsI@[zv?~ nsIf%AxH*6YuoQ#V5~ČOB}kN_J*yF@ rYIT`жH؆' @rl k8APAϭU/0I?/JgGծ4!? Ar?ZutKٜkwHc,k2bk)B.VDd֒تsaT @@IE Ҫ\Xu{l_XnbU_^ഹQؤ˂GCDhKI:>?*W,޷rŬ@jKV{nҹUd\r[5_Hg'*k6?i>ȏ@TBSXCz~u*i noZ$>FRUǵ^ˣFáQ+cA{TWR0? gǜ%kW%n[9ХAȭ+~uͱMQjy4M6 F8x1¥)XP JF0-HL 8FΎt~=X 7Ұe8sH} ,X܏0S?xVN"`pA*ЛmX/US\,ZL8WRCX|~%"7S,[C.ML*qUZ-֣jK@ݪ!5W pNO7)zR4h(ƎJ&C3BOjNnf#1j3PZԶ> cJAs6k/T,ry4 @$xh kT=  "X~R;_F_V|~ճgcWKIV4ls<8N4%ʹdMökw$ڽCi!7(JFѸ5|'ֱ[,j*kBFm~lykbK[-eY!vVtcH}N}d+e5gR cN4ڰ>HKYGEu)\ c?)nX(iFH;5Kb0XƘzԌ@)Prp)G E1K@ JhLU#8Q@ CLtR Sی=$T59v[TF {_X '~oƶNI6 ;wz\BܬI{N{`$B$8sG֪CZ2gƭ]Js+AKrc̀Vսz{O &SJn,g"b\zS@(1tBddc Hc@tl^UInb0 Z"Xx]^L&Τe-K)u zW=\W)z@!a5k`=-&/q=ߨ.-yc=T94: +sYOk"b1^YS)p! ܕlp+1ݹU) QVbM S\$hP0J˴V'<+rp3{WUɏ\UxՅVDZ[PHO[a8Etpސr_atȃj<״j _i,s^N#;i'i7f"m=XRy)&9D>,>]n5DY"b109+'c[)20ÜZ0,K2KlО!Ƿ;Ib/'ޯFH8l w|D>&0zn%0l0=s󶣪Zp3vU䚩ZɻjsuꖑvPڒg<Ց.6}5 m#_hr sU2~^?Ҿ%csBf.?Jd>^dv?hsczkSXP^ gyw_/#OxVY)ɂ{܏Kj!˵iŷ1Ыnv$Q\İןS[i5I|b#.dt)2q3tn;g޲<A"]<CZ>(ƭV]N--f@h쭖5vIr_7W7Z$Xn? ՀҖB.85"}IT%fmo=[+'RDFK+;Q#@@㚧00|)^=O#>"21i:?}w2z7+E=JT]˖'UZo km: >O^ !^NwiY J{tiAc*vgh>zs^4dۋ8+IX<*Dz\O}T,]&$2͢c?f7k_"–i<Hrg4{f fdt`A&ݔn8{;q9s4:X%]PsDmL)&ނ:[j{8呙n3^]6@ #]/H(}Vr'q\Sb EKsXWR >{)'`nQrI-: 8rOZ-B( H_M?zG5#~Z]JU}[Z}1f oҾn8)՛>1M%/αE*3m !+s g$9kuCCέ!#[tI\[Sʜk&ЖԖMWj?t)T_~^YUe;PCclp?Zߥo1j)c(~gcMh;-Yԣfc951?l &Sԁ&f<-)J.HWVwC=:-E2>YwLv9\lқ&K Ƀ6sVڌV++)6IIy Քt\=Imcn8MX9[)w&s*9a-pzscN`6ŝIm<+'3 ؤ Zǣ|Cox[h_?|a{lr[ڨܜ\o gC 4C Qn F6PwY4܍T ;`M4jF?Ex}1HOkhmU-v_ |{ç jdFA #Ip^|c $~aAS9)YMXi5 uڨ@ϯ'9u{-Xpti8%͋~V>!]m%Yq-fN*֏ H]Y}yK 6w=g-VMO4摜vGPN,ߑW'xF^5fIx m8ڟ7AZ.HxT=/aTClzף^fF ש:995iU's=I!s#rOQ+f'h39g^?xv[7H7wȝc.#//W7vyA]߉!oxoS`,F >e2ct>kYݶۭ=N 뚹Ү.՚XpI+ZIna]ѧ>FkQ5dWao+8o :`s]EjNH>䏭}>5M6~y|37_}%[k{I-eSy z" k㫿k^RpPt0~  -82kN[DսN 'M+߇p~+@[%5%-/ݗ-_?zQoe$M`*lr)Uy7;u0cKNɹMÂI>xɧzݑlzk5 ^贒Lٺrqҽ7⩆r*rQPNs릚2u99aݴtZ*Ǎ.5u6#"^Q2HDm3( 8=+ )Ig.i>Fe.s)#uwĩ$ %ca!`kyh?CԽ->>jgvx8f0IWK- kyBr+ ?[?R]!$"B˅'WOjY'C2To'/zÚ.]wc-ԠZ6XV۞7dQ^K |^Lj,'-4S֏֮$jCaҕ(%j8whu5,+CFq޺Ӽ݌Fr7bYlJF'⮬~TA#1:٫&Oít+M+1տZϪY!eqZKw 0K*{ӌgb7_>4BU T lzAoX|?\`Fv'vY/u&>Fi-/hSjO^ᛢ:WW#ѴY4i2-w叞LclѺxfk8@˚WKo9O kp[WQ^Zv(J])8Xƣѝ\]oU3Kdh=qžGWg]EL<t ƭHM^+MGSJojT-"x٫S92Lf5r q("nSYBp+.r][9?y["^{Fcq4 xR?t闖I l9 Xp%>f:h?_=fqMLRm{&|VHJҺ0=| b%gn4R\Bxn49-LLƂA/qzq[j*}.-ڥ=DZC`:G;:kb<44&%JZc9aR-OQ"U^fqTޅv@Ss`4@kVngjA!h qB45(i9 *_1e17?^iFie8$bh(AcRЛrjĆ4 C4-4P慘qLN:/n94D{4!Zޣ\Ads'lrO:Ӓֳ{6BB֗WAM(EĀP9˜bb ӄj4BsMd犖Lv܎)zb*Z&KR(4*Dq$7&y57)6j+RH BHyqh)5NEOQTp*cHx9hS_AdT[MA1=i6li Zɤ+ z M&@␌*We!ۑR (?5 Q7W" P6TG53bCޘ!)⓭[ض4aԒ1J6'4sa42&ڐ 5 D`"cʹaMHzT>i=6m1WYx+ y*ņE5'veS^lSGVܓ=An /ZkVirD҃#4خ8@!1w `Tإá' QEK)<M;n{R$]m z \q6LTX=zRUi4WA֑;?8[^& QȰ٧ hFo1Tn^zRR})Ԓdu$uضy*;FS%?o ĐaN `5@#Ґ 1“0BJ 4h"DqFh)P$L hh(LB1I@ư3mD;ҷ4)h3Evkf~Z-A\!4Ƭ ɧg$44Q ^$i;f$ bi%1$0 yQ0Fi N*) wPGlpkJ!9 9qqM @ ԃ@ HH @G5b(yv):XKSd)n>j4>c/Z& wZ;P1(hHA.*u!1;EHž*IA(2=h424-F Mu14P)fM֠D)TQb1i[ hFi[Pٶ~ 83Y4)Pa6Z_Z%OzCk4E\Gk;fMPl$էM/;x`ysi2-+qJ) L11Uj 8`hzT}zӱQԠQNZ$SmҤdrUЖ.J<Ę0(czmr9,"AMldƩchb`950cAJ*Qw$P)D\) + PEL=sM;,}G 皔(5$M5,:xFy5Qp;RcW) Fޘ;Rm6wVBBbkRIWsUmX\QRMxR%4Mk.6dHZh9c,j4Zv)Ʀ+  L1Q5Ii9@)HyEIV16J9t ('5HmE)aҝpGRD+1ZDv8c9dlІ qLnBJv)܇bjn!J⛶QR8,&(+HcU!)1I I@ 4CfsJ-#( Q@ ڗ& BAl[p#oIĮ1]f]{jq^}~"g֭)HeV4j}5ekʟbJY5iʥyY6 ӹ6(pl8 D E1i1BdԋȠvOSHC%K$ktV դj&W$SP1N5" qHsBpiO" HE" O\橃Ӏlئj3PzMIvM9A@ХsJIM@9BE1U%=)RT1iG4b0ȤTDPhr͐0RUa io<i%L;5 4b22i@tsҚE6iL1B;'ҁȦ VbL"~SCsM$Ѕi8WrPF*إpx4ZhLm!3j4K#f39n􀉛 F1Sq'-ZQ &ZSڤ*XǭH*A ۚ:T3e:q֬f1V_JD^~z48a--D51CPQ<ոɫeػ>~-\6 ,1G E )QB FM/4 @Ab FNKEMѴӳ K!MDW"9O8[jlOj_U8/vB5}grUFi<ㅾh6DZ䰭m9:f4NQdVC uv0[7daخRM?]ՕfvZg駡:8QG+ f{5w֚!FKg5" 8֝PQ!V&&1@$rh-8drEQ78 C?1FX58LlBhd$9g$ !sKӭ4KZU5&$ L4H91N14ЀRI:0 Q`Šlv(3 i-SU2P8hd("HNy'ҴP0*T;g)4 !K SE\`Mb<Ӕl"J#pL`7(b8U`sPm5 fnS؟ 5r2W2rMbfа9vОWlH$`5D*CpvQ(mEi[ hҺ?=$WCOs2/=ke1 ҭ-d5&U\RR:+V *.j!~SX|ƚ%J֒ϨsKSEdP5Bcb_h;9M @~($1Hwй47 lWP_ԻIؙ8 +TiLC4A&޲lvִ, cA })i$D{S3zP"t4m<iSFqIaҁ 8N82@vi`?֖$6֨oA⣨!w}"N^3GjEj9yC/IlARbd&4)"֞'kb*Ie&E2OQUܵ(!IOQj65`1Q9{h[3u6$5896E$MbAM2OQ?U5\X3U: 2 \F M=j38HM 2PĞe=1`>ZAb3j+"^T5hD1@dԩ%?5,=:ԠԙN1:΄YC+B&Q".WEعVZ- (ո v> hZ_J[; kt<{a $U qQ3E!S)A CTN1ZIYʚ%:>*7m "'ֹt, 2Wi^bc5.0+h- ԂCk:hM[Zz! Sq9F9 $qT5Sz j]e %kWֲ+R8MsŬS$kܨGЉm+hg"g&K`n~QZVĖ:駑]uGfh:ksmq1xtF/YӭZluPENzVfN2+&`f̩sL+Kԍ 3\SL.4`i^Ҡ^DF1c4sPq "/>NjHsֆhHelu 4 !JoڦN>)\3(Qԋ d`Ծkc7wz"!X`,K= ޴Χ4szeXñJym!QC{ncԉ]4cqM4$e"'$T$d"ȘLHaC#'M0BH¤ xp$Č)JӀL){() *E42Ty:՘&k.NsVUXn'97fS(֦=6HZǽe$8=O_\xdzњÅ)5hCh,bhD*)fOQ BC&@5#9Cv)wnT 3MԮJ@hН,)87bDϽ85 ܦSI$P֝޳oPM!8aIVRe $\U=ֵlHnu:`vzbYkmem>^#k#8+-?#"iXԲ8tqh2:J?Gr9 J{V[sR b{ԱEdOR)ŀi%ㅶ=zU! kaڞޓfaeCڏcT0rOAP4P;Tn1UUW/P/3ҏ(UdKtmkcTi*6) UPR) )\Sph5V-M :.*AF01LP *GT@cZrD 2XRlPs5O8DES4Hpԩnk6iaQy$ЅaD$sR,gҨI#$?Ȥ1SCByG}+6hkZPsZEf&ئYMIWhx5W)AoٚTN$/9.R'F=SLYZ,@Է1،pj[ށ a4LLqIn !`&1M<YiJp3U^^+;uC49$ZXB&G=mIN\k6[IR|+6L.9n1ޚEx#jhODօGsJ:6y(̧a}MЙcDi7֡"E`GZxlUEХQqކ ˞2Ճ&_z"qNYA4Ԍl37"˞ږL<ӏb7󹬤)"XN5I$5XAlXՕ,rG8JAݐ Njo֢2.H5 ս q4Rn855kBҵoC%JFL,hX U~Unj尣n>qZ)q=Τta]w]Mzcdzz DQ[t1d[5n0sY3fZNzՈ`\X(krO+aJ*8Bзj~5z&"STd)H6d3J8pkNR*(KbG' $z9Lbn4c"qy0iRzAT&KZcrsRfgLwIOZ)ʠi&<@wTK$贋֨9,uZpL.*N)9]֥K|eJ-qxTSbz p֚#zsO9R5!b Ӛ4QHDc*Nq S7@O+D/f ,f8ZC%ȦĨ•g?Ĺ)җah0Z5d%F]29r)4=~]ne8xH˘/ư_dGxO`z >J9XN؅5r~]:\SG&̜,m+[|L6aSh!+ PJl?5-3-?_xS[ߋq˜>]2Mۏ_>6i_ȡM'MN[5>m6ERI^[M#Y8)s:᷍cBMdW;s[94۟%- 8DWJb\c2}jHtMdήT2CpED[dbsZr'䚖;^h@6{SI86uA!O[2#[0 "%eOBpH< uPih*ZIP-$RH7Դ; $r;9cϞ yg0jDX^Ņ u%RlMJ&r܎@@4I:>r1D3$V \54]kwd/VcVB°{t.'ijW<44 եr#~U泑P sWӀ6NFE$ө4-XVPܩ2浓; Ac͞Ť6JemJnQInl,Eɭ`e2}*d5S ^zЀWGUq]CP)uo?Jߕ=*=LxVa5K4l*DlEĻogt{/J[d5JW)ajeٱXSLfD68 QaKmԨObĠf"6 @HȡW#TIBǭ12R8-#RC9.i=J孅"&4 P1qO"M9>l4.1dԁi Ԃ"<5 &E5 ib\IW:e%vNF,jQ48ʵa)YPq~j?J 7ꭳrS9VsVlA]xūHm /|E1} _ ڸ>IR?uIZ ۠C 5QKsV? w*?ҥ_>"=ZT]q0Ru;MxgYGɳT*.ċ>jM g{9i.@XJ?g{%UgW?~yW$XoǛy'+Eg1pJھ:fs'*zT ~l^_:"3>)*R3"9gJD9TnX|лƇRGwC|'I 8&< މ> ŸMI0z;se V' 晔Ґhca(ֆ:i5wg$ɎчKw>P4ba?J4](t\r:bXOҋ;/⟕<[ZGEÝX_? p@(s>QiF$EovBu=dzb?Ii?j\UU7s>hzmk~+.Q0Ѫ+ȩ ==X/|su6B?!F9WI5]5**@H:S[e"k411@6PiԌ\S b1bC*t4p*NШn[ڏW:ևM/"(`巡JZW08!CfA& $ĉT[zkM[-cҢa\i5:b+H5B"ĊiI 4sMqHfHh>d90&[<+ޓ84?5 z@؁ .Y7I\uTY,np ɰu XL6; O5дa R4U\2R 9YZZ+J)rZa|u݁!VRǭLhLXi$TfC$O3=Xv6wSc&T'MȦ3c5Xϊ c&R"- 8ZdTz q iZ/ ם-ήMKL}(Ci{* /v济9fɫj3Ҳ{ܲL% Nbi3k9lhzmqWq>btTf j~3MQJE2MAir[ZJ2hwmU`H1.)!sJiRj>22i :CM!vJ)1/^&\v%(iHLWRRi!ϭ=zUxC5%t#~>rمʓW_H?pu~;i?r^~£5P ( ( ( ( ( ( ( ( ( ( ]v&\CwOMѣ2pU9N's luȦ7$oC`QPfBjU1zfQR(T&&mzPK$dW"NM&) H5(ƐIJ2EW@c␊OQ6@UisFlMbE RVh<өp+$8NO5 r(Kr(4FM8 P2hqLN1^)1&Ji^ #H~L`n!hA"YмG컩KVnw)NV7}C8QEOp ( ( ( ( ( ( ( ]`cƏ- MoJ,UIqK{aXOӄJ4)\k:e6-gOtX ɨOek:B1#th.#fRvn܈䃞Ч>niU9rIn\W8Ljfor9t`zS Cpq&?:&HjXLjHbꤔ;F$$Su,桳D(❺`&!]4Ю(—&N-In4MAw<5 $qDTE'8[2[L4ZcsZ@G/zAE"HA]J!UYG4THC+SIlMk-lT)ظ(%Y$`kh!KRڎ*D#ikgR4d.+')YlOkm)khf鲙&fݚ2t}8R^ ƨ봌c"\I51Ց#pi+JFR J(HzPV%=D OEis34(ع79Q*) /kh{(&sgnC,C㿋FT zQpQCf)ioN{\n>w453v)4Wf4∸ڠY8e)n1T}MR0!" g5VcwZC&QRr'O4ư<݂\B5) c5 yMX|biƔsNR\p"i-a \$i1I"$9"sڤXOqP$1mh3LkF k>]KLph%mK7&tSJøҦZ.Fi !¾E!BzѴVvٞblBTeEf& LT1W\*ҲO5y3wdޥJ)3ky?v$/ci.@.*u&QՕ2z՘ &hh`3]JyXrZriRNM/Aå.;%y5E)㚉QFB4&U$4BZcJ 4sJӹ P$F͚UaUж 9Ni PM$YpiMz7`ӱ=EWfhp@Ѕ֝ivSӠjD/JU&6#5 ji9Dn,V9FǍU?*xXˑ2Z&瑏_0P)S JЬ< 3hjQh 3(ʳKB2f/y/RcXKxW#oI]JGЧ&έ07ɽЍ^LGƿOzReY.9[?彩×5^堾y#敏H&QέekNj0k5Ug'5#«ڳ*0tQS 3*z;4>:T2>5-OR櫓P-5 Ԡ؏f)݈GHcOhDLj44%'I3XZ秭8UbxHBEjMbZR ;m6h&9b&N-4Si`ZlbOpz_ژk89M:mS$N Ӷ bT!wtBU R 8 RI)íwFiqB3Gj@L5GM MH:Q1ޓv(kQw :)5)oY\cZv@rXaQlI9WB8:cR:Bz~0g!5eZ5sW[Ǚ1SC/z& Կj@~U-t7ϏSYo_;HJBot*}-q`J(և= `iJ\d;EBi}FzִRw"79;D7b7o9?GsMHk~HQcLCv=MDnt?%'q1Ej7oZ#ޚҞCb!ku5]sI^ޡi\FғLizlmBQrH yՑ$2CԲ.4M"$df9T`楲I5hD#'1#%FҎ,͍2uZQPI5I-5U-u5EO#hh\Qe4Š͢XRcHi:POsS-+SˋTM ; 9TRD4lVc5t zoSKFrsSVɑ7=64c$5j4۱hQ&MH\a4حzKa!ޓ coJa֭1kOsWcJ) )s].s9cV>jtdɩ"Ք)׎>o:qYTV:i.gk6[6=W"~׭ 7bk.8n)4ڙ74٤8W9jCfh$pcތ"-ǣPHVfhACRц9<ҖϽ!v* 4ܘQPĕyh|NqfmXSx[4p44?qO9WCM֑nXiO<8}֓duN)J jzM֚CȦB4H9 {h}hImHzPS7f7BM&yjA**lSKOaxз[LhsQ`cIA# 櫠0"MCsK3HBB_1=TlIFefn.X)=ϜVxAҔ=٨ZRjF/\S UCzP>uZ-"VS-f&N2j ~4aqKLVE "n}KlM"Jw ڲ2 jwyG-CG?|$\79Qy_ZvEbɧ"JR)2P঩ r/m&!3Qw؝ƠR;Zđ9Tu{c mN.dGNPSa}.O'oZj-qt4RZ@h&1EK(RhDYiHz Vm!W8r8U&8R- Fq֘ARl1J[1(5lcR0iCBn9b3HքaPM&ga) )3N犌LLsHEjXÑI4R!9>Q1.A%7dlFA( IEaLL ,B 1'6+jlR3JysXI~eom4Hi)cY"03B5U¼TE) 4!J(%n^ARTenhsQ"‵(?(u44d0+m/Z]@{YFߒ*@"Ж&݊7Z#݊O6'86zSL_0L2)J<\-8KZ  ;xÊ\.)H#ղ)zW>[xqK4'-њ˃ASsD$SJN(܎y%LZ3dԔC܉Dg Da=nAቧrfF.(pCl5evSCJ4jZezrȩsZŘʾ [Yf˖ nY-Nn^ذFcK]o3J^\zs &7 jYq:[**t"8׊v,"]'q$5gS;hIؙ"U)`h^bzvXd`|83s]އE}wcnc`Qځ4m4sRj@i(Dun}G,SSvا z f,7w4ʰnsK'"6&UA &;栛\,c_X!pţIDJZX#a5;i!MliRH<@vpZl)9͖.1Y14 X i4+qiIX88] NɢĴHz Q֤JS4(gPdB DpSHHS(;9ÈJ)*ۓL@$L␞)LN0N)5%$!9X)A!{PP64ǚ qLR3hilҴƏ0"+Q4fMe9̞mLQi#\ 41j2* [XQ>ܜ}U9"R0˒Pb'/Ej؈85mPRJpK bR$e51 14Wڇ+rꚰ-TPDҖb5+ SMUF٢9 q8&^"@G$caIh@j OM YN ! [+9<1o..qNuGcQ =k&4еy5n#iIʉ"HMZ)CWlBHJ}jX*ZQLx`3^FFZS9[c+uz&:".@sUZKR6lʡPDrEhtتMt榳* hCsYSweLBⷩ*&A=Mz[^`֣]5Voi¹ŷksc"/ã V2њ%]bzӡS>>REQ&ӱ[1*\,(ÃVLh2Ht #V>_>uiÞqȯ%#ҶxLag++UZ=JE5IrTZlcG{V,P FGzRd_PE'M$5HPuSeN*EHXURXu5,@b&$6)! MOFA6zOձ֎y>h}X^k+aޜ52?خkxJDU⭾&m=b{9k;,mմ|\ǀOzP9r$QBA<`уL(-FИ9MS)Ri"B8 kAsNH:LZ)4" HLu( k%&ڻ#.iqqN`E0 pS֨D`>Ê }V8@]kfMJZTnȌɬOg?TL 1եcxI~dmDZ10\ =g ZN29E5c*$&Mi6T܍zSq`5}d26} R5'=YfO lVGfvJ $(5H#KiJin)8[VzVFF*TfȐx掃gޚ@5 BI9w-Єё$qs޵FWԌnMs̼TxZKS1UI5j% UE `A*Z5 r!ɩ 8+]kcZQhCXjj-@᱄yAqX4]qSMC"L5Hpjը jT/*)η3]~cRD;Z)hEҞ uGcḟ&zWm 1R1ldn]łLء x w%;R"^\)f稭 "&lJCRd VЍ=h2N:a|t4l6B1ց fc(QV1bRvG X4*Jobșx51qVaBˈ8`bk#XZk :i#_Rm{_2=ʐa%^k*dğf8oCp+a}3FJ*UdGz0kzN+ωX@]޴;l#pY*w\1{ ]i~q֔o.(Z!$Kbj6d*ٝjߙ%sJ[ywN-grp1^is[hcs{XrѥrĽ1j4LꏶkuJC$ v8 z&M;n U8 sM0z8]HxhȨ<=r+S40ԥ2V3C7c$cP' wQ]YnM\OSTˈU) i0M2(SPj2Ѱ{;~)q@g=iX,! l&(4i}xeE<ԅr*z "jdS5"Dr)he)ʼPlB)@&KqҠ!D6 Miph[ 0۩y%8W>/oFa\#h !ZG#aR&#S#(hSnǃ|~ew:>*s:̭I$O1%r5'R&lD112)lDC fi6+1KȤ@95wz mrp#V U}R4,ܴCRR!dК+QSf]FbaE+֧85]hr*UDH3DL)zUdk)YsIZsTyGH9 FjDuC&fbxH}Pi™Cd`UؠFIn&:֤SvԳD.(ٚHCbDhd6<@B$ 1Q62kU&RScQ!llq^:H֜:TKQIZWJKQ4E#b4Q'b yAikBEI-qzM3Jr3[6#uKJM'1ojH5$nUrMcN~z#cKr޷楌TH ՘$MH =m=X-j-NȽ ^C=k(vNژy&3ZMpZB~"u]Z ؿٺuɅcD='M}OZֲG¿JX0Fv s޼`(5\"T^.1Cg qT*S C=G4ր *rSs֥n2k&2ǥS2xB3Њ>"cHg6 rVDZ)f^$5mZ1 6ӔbĘcқyqqKME7Cb)fi ҁORbH5zQ6TRHm} 7XNqaϩ.Nkt2Q ֚=k KSBnZ=*^<2j96m ʳ3Qg9ecx+ͫ\:n{LpҲsYUv4 2{԰rmm *A[#j>!VHjTv5-ֽƋsPB=k4V*iȪC񼸷a^j5֤[B9F+"2M+@5֤^)*Tr~iCsIku'+W85=Yc$p?q>%!,{#xns7B(k{hVmVZHI-j[Gr)cmM;[p8[Ea aWThg6~'_x+dF y]IR n+r3^eHV0ٚ"^Mxۜ'' IϜe.ڳ;)gԨyb%5.ڔH?ZWDu4a܊#./} 6e]qj b΄4* xЉ[ ejxmSeHnd!O K Rm `d8I[ @8`4 ~pԯ㷷tSZ5W_3IfnWmMi&M{) X(_Ƒs}y*F!aW_QHԄ9j3x: Y-LԱ ɫ!+mM%ہKw!QҸDsLC"PLCԪ#AQDOO R*dFșj@8 Ң/ HM٠LiH*qQ?Jt-cX%{lmp2Fq:Քsڜ5g+ 95 ^$=*KiL$=޶Kr\^U⣓#5ֶ0[5: t+nW&a]0KTs\ر$֒U%s:$Mg8*hMa".бګ\V+S90pr_SIXWki|F4 " rݝ4V"9et95P)f:#hsWsuhsr5Ka'㪮Έ;"{zբqZVFwe[-+:HڱV!Zս Ԙ2,k׷^Tƕs[V@:OLl=B5uf\Qa"I2(yh %#W\nG)'PY@+|] [frg:C𞿥n,;FIywH:q[Nn0ȗ@={T7Vy5 QOr hK[|jf jt6ke8WO#A&ܩ,4UӤ9h@5~i9w&7#,!6ֆ"j̅O; N6hjJJc ЂEs>&_sUzMJ%=w]gH<49_Č#+WV);QֶЮ) r22PzVѺPbZzr,.)BԶ\D`Ur9LWԑQփT``#Qt9p*-CP幻P"8XpsǏ5N%dP }J;\cP99#gB5,DZ4&0P<Eo#q"OMͭ 9pu^xsйjH[8@i8nJԍzASZ&qA R6)3N߶,%NSb$3K ,,=j%eȦ!7b]U3M Bd -JZqjuRb( @3Rjrc#5:3)!u&*cwdԛkA`9B$/ TVX!c\_'xSA)t^Xw- w}h DZ9z;$7{ >sQO>VE5|iݧ֭coB7v!nBdM2AQ4{ѹ$>:T9QY4-HХy$v+s 4X8*ɔJӱ"и&SКÊ*gmHS =ć.Hn~AZ6Ӛάl8|Ҝ_QdyĪ)+D &6O d=F&+ThW{_>vSNI#+mM]6}M?YA*!=~~|IDWwyRF+EF+\VR;9Qw:zWG] QQI9MB6҆T 4Rʸ>(En:R)z<WBbk ?4b݊@"/0u|bQܞ~sTi;OJ9C*+ڝazբGSI5Fm H͑R .u \ITO4ham ҷ9ힵHIZXɶ Mu;C`ex{@LR` (KބHNx4)h?z7ԉc ZVq+8o-U,NެW.9婯pS- 3ZiR6A$ 3֑zU$1-prj֯9 Ұ۹׮B#~m';XvV4(Զ "T JOP)jSH+Z#"6OAPt$RD22sLcnEKDCb樛G@i#@5`8Z%$=E:-qH]FӇK&CҩlLyp 4KStS'ꋲ&KSцCs@5 rX WT5FmDFsVEܦ8 y5ƞnboi^y4@{RIf)R$33 N8Jz}b6;82T݄y\7J+ڲLw 95ʭr 4חBf:3!4>g~k=M\t/d}/C"\J5.;#= s13TS֖\#jr+(J*ԊƷBܽnIk@tGcJs[j\5xR B g'(OcZe6qkY=LC/ݬAGsCI b{Z)-FAMnv )6 U$v3!bI5o6V1QM+xNvxq;]φ8U{vYM5bF>k5@A~s_$֣O",+8bE/Sο=F.]2Y@~v-6,vM1itrk↧QIHn͋88),ͧ6ZdhidȬ#ZNUXwm&[JdP\rNYAC.9Yrk=p2S.&\{ɸjˌ/]5F3#!z//7G6-WKfڴN9i&țM HW)WUоa)wT[pEF[0&HMjU4 Z.Ccb0-0yQ-g#|Ҿ0_<բzӼEʸ4gI=hz m^YFܓO&A5ZHz$ `u5=Do0p.hKwM,?4{K\`Ęj P6+F"6ymMc#r1_^[=4>mR!ȿ}k[ʟڊ!.k zMst?Gejc78GU6ICO:vj:3D/iЛ7U3XOCƧ;L(Y7"}`gcTuKB*3Tn/IBN8ךCfrq =w^v[ ; 11V>7lM=cDrMj\%1xa0.:Mrǥ+XB}ӀJL603>'4I&x9!Z*?#x֣`?ݫVW#m{R&yj/83wi4*Hn}hBz݁j& hhoP04\jt&WѳNk]$bɩCLԮ/j7R2kD;^ICS<3Hb4//I-ɜ?8I&yZtIޚu4ԍc5M'£FnAKC35gh,a'֡e'$ޘyؗt"7"MhEIh8jz,"T<}Mn=T2ǚllxJwY1 4Л"Ud5hɲ3TMQ f))CG4 cI4iؒ6YmE^AsA4؄jkR- 4qLLo!L=QH浤-!"c5If5F2Lٔ~#6ێqOKrW.ĘZyC]PVFMV2沜nc"h!;E_Tbf# g 1{!nA V0e͸mtKc$3'Nq7н5hU%ɮjлo @⪜le7 pk=fnuA6zV EgIY7tO*гe>XncHGSYKBʭG,[멫\mu M94+]VHSfޞyex- Lq]/c.I-Qő@S\sRuQjJܷphdgºcc4DhX\R:,~{ Mr,5?{"Cwײ_L>T C,!_${Lbz4׺ѾGj≲bfSϸ[Qݲ›buI vO7Jk]"g5O@g9H5YVUxU?4qOsJ72GU$\ZU6.Ӎ Ҁ}kwAmrFrsN cI#h5G3TAuk3\{ ԃ9S#5'qr:5~Oc=|U5?` ݕ%^"N/\Z=ѹY%SK7>vk؋lZSuZ.Fnz:Զ&BsOB$C'DOcD#yyHޜzR7H|,Nz}je5}dL5* 3l )UEeՍTrƤ:"_%d\PXi\ #.(2"aLSLa@Bij!uB’(Q)ը5= '58Z˩KV(LWm o J؎IU^\dĚX͑7z)HFiT0A,k iB/Zq۽H皆WmZFf i BR毡Vy@"Fi[֤fFN*6jƆ0q954&$maXv2&;Ԫ[NȖ4Ƨ zP\x@(RV +G LL#5(-(^, O!X(Y>`hani "j/'q3N7BLw) HMTZہM#5@(O *W)M+Z7G~ՈW*q5%CVFtݤ-OJ k[ (dvpQD1@ZIh)L } @~{W#~%+# 6bSw9_DG׫N&KK]gOLn&Ki?ީZ rST%F;ҋs#Էc}ޑz,T]-O; y`pjD+ZHE8b=h.#edUTm3C8<#Y^$Ѭ* B!,~[M7sL+*˟Vi.H09pu5x"TXCֺ{ڨh:jБ|Arsɠ g4ߴFLk܃ޥ3hEta+yT(:v0.#*n$f CTiaCކCSaXO1zzLE7[iKj&jıdqQ* 5vCHHi3K,tI 5Z1*c"}* h.aR$ƕ{Z|=9W䝴_ti3T)S$}x֡Sܯe6و&j9֒+Y7p{-e:"^n ޘc9A6RM4f\b7ZUl5W)ltWy@mɩl-})-Lٽ?"xW|OliީCzu%}+iŶ7+I:F`nV5VdiJ.=1h4&4' ^njxV}M`[^_WJ`sdy Ygq=0 ~jά#=?nq@ipǿ.pxQW6ZzBxέkjO߳o֪zΜ9Qԕ֓'ndM=X!ց 4wn(3ކOQg=jݤqOfvW85>7Nsv 1Rbn OU̓eY!;fin)I"S#aLni,0{ #qaZL͑. eX5YdSiZR:yWEƗuF[ lljOQb kS3´(!2L cHaԞVh@4Y4qjh6MH!4i]˜jVd-ޘzUʎ, ׶.÷j֋6#>YQt  =9R]9ă_IKSΚн*~PNkhgXI t~#RWl69i*q1<\]c51nNkU砎p+6v<ֵ]4V9_UlyFD:a#YI1nB{ԣΫ1r޷mTjCs< ^SȊQ\<.G '#W՛+2;kIhbl0etH'0HE#41ZGph/_0}+xz~yG Dś M44!2GCA'Ni #!]ZZwZAZB>zKc7TM>J6 n4\#4y)J4Sm.91hRm!fcaOzƆu MH”µ,D.hE$0:ld8ɩU_ J$nOAsLdQ})0[4 1=D!BiaQ AMt(,@RM$DzLQ1$2d; ӪYsOP&6~HCiá91P 4|>Ǥj ;j]6h8%MBc$< eH}%(еP2-uK$ԑ۰</o͡v4vYu)\xU+:"ՋV5+laQI.UbmPR܍TҴT\7w?-TrĚt16GēlV6!R=h9L۔woUo)jٴ~2+AJ6F5R1޳' TՍi"H`*8IXSwc] 3ZolҢ*W\ ΜlnۥSWU]ّ}R 3IJT&(=j#:W8v'匊aRH{A^SՅIyFՀB*(y=Mb=yz+μ~۞Eq]Ts@ K*ID*櫠gN5ɗ)9OIH'SHV,J-R#O5CZO8J0-}>1[weXbs_ԧKjΟ}=(k05-k6xay_] N٘wj "r@NELYZF)+YqrT\W|/օEJAW:w.UuYy}m=UbOҥtx5f)SL*sZEГl*u4 q\FSC~ֆlqۯ-{h7|kLZz͞ 5:&g:i3L*H$ȝA1LBҚZ C6uǽiX:Ӕ#i*$TM"E4RbBiBEHBBV_֯[ѹu1kv%HZlkKhGR6sHcʑ@-LPXLSJ`5o sQ+0RN0FW42)N)Vt9GZȈ+""x2t| Vc8qA4dSULp"ڻvpZjQgR]k`(JX5ZAZ"^N08wɌ"x!2i†KIhDVƇh: 74%4f0iU1 FԌ/q&LbUE9V<1M - +%H5@lC'4e=*u"R2Ps(#+Nbl[)kT'oؓ񧥖9P|4y[#&)>;)x'JumdKՍeMg%qXpRa\*"i 1R+@SWDSCTXw!z%ب$+R![aރtn9un>a]߅~{1zhl?Ҽ򺓒Mz0kb\(dɚԆNsYc$MZیeMfDg *[5i&|hk" v~[E~99+34l{Q4TjPzUjk Gjݫ%R@ӵI5Wc;keYywVo,ּާ%M[O8םjZ8weZW4BzU2FHqP2BT$u&1)4(luUTf<0+TC"-SsD hMYKMCabQjOB bԍЍI$S1ZD檑ִOA2.(2"4Sd^ix,Z)5QQqxm}*zkM1*6=Bo45_䞘+vtشiḥ OzORY*8=*N*ѕuSj\(=k)э=*r3N.=҄NVEF7t3S \FIqrފ Qk̞)v^\ؕT5Q.fج4aZ6Ks\` [t"年OCyvZcWx}=if@ PXL5x~lSgLɜB8ME!fO^Hl'MV j5F+\[QSpK޹zo-G x+x;i[G~.WL'/zv`4_+O +<,IW?Zv:j&|{hj/-VRS_1i V0}+v~#@N"z!UZZaj΄އ5غY*=OV6{/ z(OZGGbYQVrv3 ϵ=(!z9\M7txcƲ`Va2\}k3u:?^o3P".4H]lWs^%NV['֪_'S ^MUoZNc$՘< QJ;S}kg[fާDcźHU23B" :+ #4hhZ"3ъlb3Mq@`^ZeGsІvZ\\zc3]\HWi2R)\ #)ho"X0`C4vµ 1\SII a^) hvj6&j'\Ugr6 `7~DMbd^j)l ͚E[䊶(< jn5²Ui hmZiZ#qCKsN^AV+P5ȏJCݴ"cT2qSXq)sT6!<ӳCa$10 RҗQGu+{(71]Q~Gr ;nE>:C[vǗ5~|6; (DznwsSMݎJżTTkfI[<3\n^񳆆LXdw{jRdOS\gft:mnAWs9 JK MWaB7#ajiJ6DjX&UٞׄmZ e֙1ڤb_s;3N1QZ✽GCVى&o⺡ZWk09 ָs\XC);te Mc1;#jJ5v(;QXINƮ&(椌גާcжՈ56N8vjwdVM"jB2kJ1}3\R6[0:gn⹥җu> B˩xVv#u'}Jsy&Lvc8b씷nYX9M)Nl5i\VzԌɎxB}Z.;6{?זşfE{ub| =elkիqV u_ SUt3Mq/3li5vKH?hq1΅f1MBZ^#KWT6psڵ-wO#<x,G_\Z:VFgEqGܕ*Ma\:AcyT'etmKʹ15|I]hO)^R)#5v$SOllh%T1zЈCKY釠V5Z\#a1Hhn+ʿtUQU$]W{@q)0?Uc}eJS~?,,yrg:,^5hZ=ϩJ%,#C\qZHJ賧Ͼ0\] ^MddKݩiYAX^Gj& v9j{v\0J"<{Mh`\ł޳[-vR̚-"ÀSe!qJzks~CVKZd/FuTq~t֮9BRAhiiI&.F#I]hkSZ MXSj[--OGвQkJKC3P]ޫ"R2 R)ai B2SB֕ ;И!d.4cce M"rig1qMjMFꍔ⬫ҡpyB"%2XÞkv0oRnE3qԵ1}*E#hT[Dži iPiG-R!RXm܅j"\qewAUW+\苸nL^hE nzV糦'Q]k4Veۡ[^s9^}135Y;3[9Me^u 5A$fAܓ=sޥC8fTM3޴hj0k8Y#ȶ|u{t˯FTWf~U3_څ'G&=^*#+E[&o+Bz_Rx0A-.uW> 1yUEJT>Gt \n/RbR2%r|$Oƴlf;h׹k|Q zOJ5.lǫ YRӚe9ܹ:щ|xgjj5ͯ,Ԟ+˵ZKCN|֦&vԿaP\NdErD桕H5-·yiֱ9(H361mŖЉE6;)ȼ֦AgQ5Kc n;Vӂi7a؝!'J,nQsS̍c:kWtIv¹;3S(KFN3[b6ֱ1,U53LfFi,4)vC˟ZH}|'`VOs;Wg-P(%“aa;b E ".ZZdRVrcioҡ@vTs1&C-JpXAbJqi&fYOhfs$Veɭb֣0sqV 7dj0j6Zd.9[R$&KBՈW3X qEh1Ͱj@k.$T;i{i*B12$-U<l곊63O5LM)j1R\fP)qH0hCiLHI Bx;7'>:DN+dna#Dp@5йޥmu#ӽZpN )Mr* 49@"+V@]Q] .!Պc@hZae6H4A)!<_AiWjVЛh5d33MI N*iUQrv.(8י'vtXi8J;>9Ցd]ƼNxO9(=Nzڣ\ZF{Wḭ;WZw0512z3Vq++mY8>Zȩ7|kdq>bM4sJ2g5]80sVmTT'z2up>'~6qQR0ii1/QHbZB=*%Z$6OoqZ~Zֆ2tێk:۔w6Z#o]Ҿrx滋kg+g[v>rj`Ca=mREF#z>,*Z$0撩(&Z.+J5HUʎb:Xқдecr؋q6UtU&LV~ niOq F(dR B. )0Rg4 cSIȪ70U"[ơn})19]NMXSJc- 5E糑4+ǐY.)vs\Bf-5MV#⩽ f݅p5v 4撍9$T2&'Uٞu/\ZJE? WOCH&#QX9Y]V2kH;5fC$3TdJ(+#XGE2x_C ɨTdI!뛣j쌠 |r Zƹ=MlU'|dDdٗ%85-˒7N騧*j)JrqrGCUy xrz1Os胺3{R泥y$ԀkZˁZd ['5X%~ǙTvTktkS$ksKGdVEhsR|i$A {rM +D"7;G5|r3ؕQ%}+q+)HU ԙI `t=jq8 qw*zɈ-tg _ Ze Xpgѯ_W>`'wW'r)R:y^C6,q줿tZpkn8γ30Y^9r\)[#ǛL[kTaZhseDYcy$aZ0'4Q74ZQ2j R\KCvp-+*}?s$iQ{]d +5ḟjry?Zfq*g–2՝nd^$8郺;%EVﶹˏ&MEoT2XP6^|ֶ5mJlt3Mf:]YՔ^cFOd!$t\w:!n9ikP!Y0nu5P-̪R p6^<}zTe 򋶓d3iPi)+;'Piѩ IT: <~*}XV.*w9"b$oC1 MPG)Gu; rݿSꯂ$־pc^}S?=%K5tmHW;hJ!7 <{zJ=MW>0x]~D۝Җ14j楚XԒ1ڷl EΘn]rpgiU9ZgmNk_,чz[fd0#2So)dK)t-zA2z VUĠ1泚Ԙ5 &wX0ر-ƙCATb\8=Iթ-L. 'ksɭ{ :Pg&q0)=騎 /Q;EpS2l ,GJ57c6bf9rit֍ʎŹp&4EmԳ:Օ9Q^N*Yhʞm BL٦6D/nr-_V?Mz2ډWǔKSuyn|5T׼T\ԊWL0c i3M2.jYl ZDrMq֫sE幐jLHE!CP짃IDi>ǭ4SșBҁ֪(ȍU4S[ uաy$/ZLW*`OR-J1YN$Z؜t⊔1xMeG"l+Uf)H8V~sTZCP03QAha7֋`dQ#0 4I #J (EJ E$/xg} Z9&1DVFZu:cQ)yq:zK*'TJj=k~jyr uRLRX*iR0 J鿺%5c!¨^75Ս ˺b+a 7m_uqm3nWS }rC0y7#'xƢeL9Qjp]\Y JcF^i5ϺtE ga C1\[&*k5❂eK>0*79 ұܻѴ 泱QCKIhFV* sZ1A.ZnTw)MckBг PRLn.jiQr@:S е)2HnO^[Iƛr2ku YەrK)tfZaLr9Z1ZI] Qi?xbP<>Z\5RZ t^i j4O טk2P-fszr=*yӞ\c&I vhۃ揭mkOaH}Z"+`q1]LJTqݢzu3]F?wќ ~#fWⱬx|#;CqY}i=ko&S&%M Rt:p}O/ZFzKY՘'m;(iϬԬ^Tp`OlX.O8<sH}`֧MUi :ZcP+V&b!g ;sGS>'؛dW9x|#ꦔuC[/Ub[tJ\}ktit3OS+SҐHkZ80r:b8`]EzV2Gd5 qslۛy\\vB8~/5qz!8c\R4Pԗm\kzoClϐb&ei F:H`x'SLI?y֬RQIR>Rj +KvFETiwoaQjdnyH 15'$vJM4.Y[pb4hYvYғ"lP"ǚx& F1[<1{i"iP){e@WfBknP3Rlh4LSESԥ.()XҙeP&6Pނ TFÚkj"SLTej[n;Ha\F2Q]&uob5rv4"R*(ՌqL&wUR*%Fт j.{Vt~ueCփG)9@ >I6r4-xƬR EH f6s]ڍL@ S+CJṮ7/5w*[m(ں7nI]z ɕ< Wz9<8"M %eAT8Y_XwkrLgGD71p_Q/q\~jx_:"lvzj=^g̲^zWמ \k:φk\vRy>ad+ڹ=BBViq = )Ϡ$qx\ dh59bpFEM7О A{Jgk%3nwDc=kMڴ\]ʊIn:o$gpfA,zbAh&j̹V*jd Sz.xiL᩹!ɨ[dj5'UȨnlLg3Zѡa&Zܴy1::Q\?1=d+jl&ޚҳcCSqALS0" CJ UqXi0j RJiR4 ҐR*XT.;c*k餮yW*riS3zJduw2⥆2Mp>} 8Fթدt䖬p֩yG5UCsZ-iEXswY*fК{s£4݁e#>MEyl$*}2I+O+>4LRᛔ`OOqʲlվ"6j4qd*Y7q>@~H>wjt)r'OҶ-(N?ݨ)Da['ᮣu T٬y~ ƶ/飆d_M|WGaWvm|VYré-||֤l۟*+R]pOVqmB^Eu?VG@6a\;REm`d|(Bz4r:l'~X ) j03\PHX~kVlRps}/<#O! ֏)L5mZH)yӟn4V??)@QN62GZH@N{WUY1sQ8"1+\5CҲ95} ~[m œ:Ј"᪑H~qj$R܃re9{t֦zW"Rv5}kBL AМ~תq<^zN hߙ-<7<Β\ܶg]gy Cf_9ڮdW-oGDPdI*w/QInWzzt۾P1^wKڬҁ1/T7'rVVv]DkSv)2kӥߊw:"t6+%W9,#?&_=^L<5ҙl-qР/lM%ZQuN,гB0,R/U ҹ4Fi'2@pbqn \j&aͧI;GҪ56T-*8AWVV͸o-~S]ѩTcs(kFs(E9 vc%Z-fַI*HE>Z49Q8/MK.;t;Cl6ҲuzM:TǚCJ5NXȵ5Q8ģ}WA_:ʹV^ެՑOJP #1govGv_Jw%cJnRw=ᖨD Rbh..J*#&Wc3h^o5v40 ;: `]n.1Y\βPHuG/c ׄesK%:s7fu_C>%x|D9,0A"M[tʇ2ffv+qɐnzTI(I%15E"6llT E"2SsP\u5lOZ4f\ YvSG_ sFt5>idO0+6fa@>Q4=ql :DHtDU*zUZXٓ9PE*4֝nYu Y\3CձҰ3A斪€!Zٍ"Bɠ*3m5:ReM<0hi\0@$LTR)e-ru"~UOPE8jҩnLer.A?ŧ0;9g-KY]Gsd7 V{HPIGN5{?@^kUu^x7tƾ8Ɨ!d)!{gb bѥlq\uVR3uV*yXsSM{fuV +i>'F U.n;Ӧ5<QrDFMQr+ɼ?tl^Ǯ5c ƳN3m4MH-K\ΈvٲK)θt-N|Z:HƮ!5z7Š#+V;noҙUX͐e7)LhtWViGrm3~5ЦQܣ/Q-k?M 1VS;nQKL5jK0fmI].Hjlk!rj`E/'-NA.p+/Q`RE^t&%@ nd)j8k ֨2(h{wϹRZB=NRV+T$2`jX}POnc<VjҞ;A-,j3T6bm"v-j5G56)ga"j 'i6!1Q0 R"qH܊H8@Úl\VM~MjQ5zrFdTVoPSZV'qK.57SzqXc*9K j[ PMȉ(5H,fcjH!aMhjQҥ85A#KM+OZqM)4EdqI6&i d qo)QP}#Q4Sj X~*% t7d$AtϊR(8Ɂֻ/Z&*x5*zr5KLe@ⶃ՘8Aw 8&ӢθqWOf \7R֬GtQ<=zL^rrs\FzҔBs+muQH qC+|6rsA%{D=D&))F ZTZ!h69HL7=*c%DՉޓyV#2֪&OZr]i`kqCtmtnLtE3V)O )x5^9q˽)4鄳u9F*dՈŸYu85%Gr,l%awЕ8.m,pOz C>(Fk<3݉Y_i |kmIKKs^}>sߙlU?v\MNڟքm_."k ^( Қc[1]kNhidT /˔N~K{ĸC'e2xx*`f)]iVSc])FWRb:V.<- HRgjw9޶6gW t: H'Am&8dX"# ה|I*@ƹ\΢<9VU9d̽X`r㩫p3_4RMDL= +ҫ8}Lp~[8J[9w~ԫ)AAHx9R\Big5S4|c,-p>=猅5;jV)&#$M"|$q<Օ<$oB5BQQznhnħ5vZlK2o@jKiO@z+2MMjWVj Ql0V3Yȸ3%/t녾DQԹ=ڃ2Mk`e/J!#4!cH,FFzPE&$&Ȥ4x# a=m4SfRԣ7񬻞T$UL3fiZ.3D˹ BG jUYTDd0UaXfs8tbgg҂X3qH ",*P)=!Lښ*NE8;M+ ҍĦfF)R1T\mFl1R%&i Uի'XˊԌq[RF5cpy5G1ܬjIiJcrzLɟ,MFƵ^c]t9nS?-g3ⲮD,B:S҃ kB64kh3k?y!y{tuOkJc& X•[DgS$4S#å(lM Mh`񨤁⧨')NElBpjmjq\n'8N 2Cp9_!LC&r*9`tSZ*j`԰bө#Qc"A1kuxZ+2NqJLv 8Ѝ=2r 8nUZbx+=;2pa[, QEv7x3/4/`#׻R<<.o9kU7Kʃ ψle1˚]HF,+v* 4‘`+ήC+O{&fYA4w*|#gD!:ר,eK-'[˹&T7K"ɯ0Uk;\+N{%~^ԞJM^5_QW4lt3z봹I##H<bdsP;z+9 3jaO7PՎIb&)236iMndR95VТ ORL?n?ԓCzxtbޤp):U~jJXqTƍk]+>}3fEB3]55Etv'sBewgV* e]f% nsy}yϚB6M1TaZDlв'sGRMu+Tg%pO5} ,By2sRfNm 8kti녩>ke幢8lNLhl{zu=46) %PbbxBܚn8-l0SO aiRM5hP1-Htc _S{'J&z2ޣyC VBMTBmZ!5hW/@Rx=>;Pz{ӼG&MAA] R&C3Mf%hO) Fk1 L=jqHƙ(a[Pb62SKf);B$b);$gZ잆Q8- "j(w}T  Tu.OBMC0$VcL1=iܩ\ҏt'zV# WHƲmb7&H*,ww"&kE¥CS".ZWxfTV=GMo1jj)QP&,aB R"TSǵ P[E p-8J Ss+ COVb$TwV)V*O(5icIyI58V83`3($:8ZF0;bz`Դ" Qk2A5W4 aekmk6hɗK֩ 5v!)3gV匞k6Tt*HsX.MsL3՟,lQ DkQ os־1ԏ{={d`=FK`= ~|Zdצ2vs־_U}+P*$Qޜuytf|6zAXl}- Wjq1s[[[fJX/"N=+ed-irk$ R6:GAZQ±boS ޹塳&Ms\d(Zя&EoL*ngyՙfATP]}&EZ7ZOr^cR Z,y87*)ni6&ldf5:4Ҋ8%dvGaSִ집V7:+[՛V{febG4[;w֗8*+D2sXv%d+.HbjIR|-dHb&6BWr3..NMdLC* !#V/A)qzn4=HyV&dS4 uwTeMF ݜP݊J6OUcS{9愆4ƚDZͧҚsJiI(# T^E)Yw}kQ܊VR| rjrbjIG5VAU4Pmt5 >Qa@ɨ L*'R>$`Tzs֮_vRGhH>-E|շ@ȩ,9“Yy fVr*)H4֛(6MAq MfܚPhd jn)"BPsSDvl$8 Zh!ꢞ!-.J,SYz]JLEP3xbKnzQ%r,{=[ZDt;(Ȩ%wҜ޲H`]F$Q -CýOZ57WEuHfzh9K4[iL fl5 Z̑69A,]ʢE9}iA]*:/24.sWs@4ֻu:eVg$tr:Vʞ2BO#d䱟l#s֘$a޴Q3<nHG?־Z9WO֞[j9~$vP~^ah $I\v8qO[on}浈"sOwV%/gNjѓ,IKRe]G!kf*iD.G^i 2ÍzM?O*NCc7r[К5xTzXf->/2vy$0_22GU1ة!O +UC[6d*|NsC7ĭ犯f|`Ur6K&i*?, TI"-OL&LZQ+xIZ?X}ܿD~%?SJěW?)Q:nVCB3%i?ZאGm3txOc'SO9RoZ0oTO⻐r{jޭYW 8aZQiRvFl*Yk[BZ%tB銅p;s@Y)0SHD' SjRFNSXc搖7w9$&tp1@ѰNPȭzh'<~A4\COzU4q EM0S)ԊyqxN)EzTIE㹠i`RH24J(2U2R'zmJP^Lj9\ )ª扽="ex'N4DeskC=Pnjר܋x6=tR*yćkisM"ȹ w8X 2 uF:kSZhsJcKin:c"-TO0ltnb LЮ-Y7 ) S%5U j!oD6=`AT#[5Zap 7wfZwɎRPWf\ #c{xhJ]I I_zzMbja#;D?Z o){ ?ƾSiRGzkv]S>Ԃz1~4?k,įyf\k5~C4tκ?Pel$n{_\ݢaSyYf0Ж|O3Xō6I7gNe9I_C]0'D:6^95IeU &oSM"_g ^_y!縭EF-IR>cB~2薇j? `ѭG_ʡ^1UJF$F*ȹVk8P*Ǔf.zkfmu=N5>}`֧LvXVG`bHn#RxzBdgE9!X]0ihFj6 WB8V.KFPj}+Rhljnu8c1i[5sY4P&(5 4k75AqA)⡊cL-TLmp)3jHhap(BjATTw<ٟ' y}N( +C E,U'rƑ䕳hniS3V$j gehSk= K O5ȥ.ؑ֞OҞ;ܭ5C?kl3ctO N`ER|{2g +^UxٝpwDyh1b7fѽ9Yzv`6"آV+P=HTV;6~u ;)\rhtuc\ҷ.dl¸1VEώ䑱 852B%rsuKUW_F֕C˱hE`5[fE&: :WceF$6%d_zoz$Tv6hIH9SY [zxt1AR%J, C:msZӸMS:08-V+}O&O2f=m7CcoTF~>Vl`v`2GKQłv_3~bW_ O1&|_vs_+GdªoI#AVQgU\wvǥd}E'hhR-c@?`M4Zt$ T)ϵk|GyFcB--Mo܊4Pjև_ͅ5X\ީveQgr )'ͣx0~鉗u\os"1UC"zAM$3q5ZHFhS*&QF:U[ɦ1@iElwe .jGmM8|qWv$z1OKvC+8jfz)_rvTfMkJڬv76lp:v;6R :|IzZ *&]:|4f}/CY3GV& k(NIe=6cx- :IR0oQ/R'44A8sN 4',in uz&h1#ҵ-׼<8XPZ)ڊ&*#Oa\56V*2j-+f&QklrjH YM>+k)3]KQU"B d$MyXH95ZF3OZQB@TfV3| iFtӾ#1=ӠM8jA\jVԘqVЏZy:iK*yÔ<2FqU'(MZfrFjOzZx++B:VƼ浢\ eC0W%ZD*Y83z$F3UDlN{+::MI,箇֢w,D9iQ펨Vd'ޟ@\ƭNqj1A(Zv+6OQbiLd0ǭq@4oa*!1Z.;d*8z߅59jrǭTaeP/AkF#KFD W=@)bw KShp0i+̘ƣrs;x5 oa cؒO]jkM^ٗy \-*BXxRѢeHku#uRѱDΨ'3# 'VliFM1! t2r3L;W%R֭[Z(9l1.L!a'bgg{&]RUYI󪊱J6iQ=ʽB([j(a ;!Mb99އUtf:qX 4H iuzU !MIh`ftҹRܕRT$ȦD0hey".Wffm“^O^qhPzYvMtbW =VԴ7mroO|c<>ef݋mEf9ݏrƾq!=T<~\Fg?'V@ƾOdXދ*5#Daa⹦}^7fPW`M+I 1=i&q,O>|Y/o*9|wAdj1|ӷc2L7Qd3:D*[KC}3[30k~hm溭>zT3xA&ֱgB*@;k'<n5F+Ư`{vh8S;843d8ԩ%D[˫jInAf oܘ5rɺ*&t<ԳhЭ>b*9i޳L!|F +,l#qJLhErO/5Ƴ ++ME^ij\Ǧ|ܩ3Pi`嵮",H+Vˌ:'l2yUi$qTG9{$%j֗8fgH{bs%MVЉ0PsC\8^SW$bf&৽WseE$Zd|OXZ,`Z/҅UyޠTA[s[b #=Y4t%tY015D@VlSW0coV%9,\4^K<jZ5/fie PMu91,`hicګpRJbڤqg,?:ǿ wdcOM(;3I9̍z4idd'6=OZteϨƷC$X(X+d\"%NEtBYX6҅j*.kwOVl:k. %(u8[-  c {jYJ5=+Aɬ£@[b^)\t7ʨ}knAORS6}k$Dq~QҎ%)Ahkj ҒSY/'s~Rվ޻: z||}D<5̶.0~MǺ=aukPr3У "ZE>.XOO1XϘ+ɯ})&}nh$HE89F?>5=dj˷8#x!xqIEŠE3G,{|;6 鷺Y6 Occz 5ii="tW* Z"|9Y%wNed73589:[+ duTZ-x]Z38 k.uRV*F-UoԚv_tqW"=+K@s+k)t֧sol War(b莟6=ySҵkIGnyS\:&ocޥjT"OLBU^A\ #8KX@ Ih[09ة*9^tcЧtwsT]r(8$fGF+h2IajB.gtA9jI,3]vKաM"z9ZUXtZLB9nk 5R4sEfě88  {U3Pct~?0 ެgcHJXxZ~$ɖZQ7+|A?W1F0s,Fr0ke"o2ţqYAwXdXTsFŋ&,C}/xWoiB+{zb~}3[OMM.tW>>ӁqO'P9gWU;sTC=Tf埊--2 z5w -kٓdv *;Gִfk&͢:U=)!]BU\ iԨ 0)H5⫠-]p*n-7eWRzQx"*Ѧ嘃rTHK [Bj$prӪNDBis@HR vSFv4RE*OnM9lmKMPbZ'N)1iBeij%>.iE1:Q=MiYIKvC#②6L ϳu-Xhqa oJԹ|&i55 ˷$lɾ֖8`?/)"2I G;zyۊ \C+;3xҹᱽE>ww|Abgr5ub+@m_҅j]N+ņq@X{ےgup]+'SƧ$q#$@\mbc5_M;"nӕ23UD3Ta]G'5vZSlad0LP'y6mnN+#ZgGgtMlC7B9m^URH(MZKWG/q7<~NiЕ'Q\Q2lCF|j}4[ V_v4 #ƺzl}KhX8K;i$K4 bIC´tv< E&C\U^E bI]OZo~M)0H8V"\T$C\ƭ&Vi*MT Cec#ˊۡ6"k7CXZb ,IYZ ڗzӂ1cisI 3!&J5% iR0Y_\ v6J+S6JfcF*眈dTyŽ.VcZR S+ hƳm+UP RkR.wK^t3.թڝϻ/~ZB2k X k0zf۝Ű$DjN(˒*f8!Z ׊;U\J5uTXHN*ZgZC?ҕ՞98s3\SJz3KDskuGp_1Olc#Wܾɉ][勲4xWUlVkqYb%sZF8eUj)W;Jꧡx/K#DOP: YxruU]FJ)S璾ԭwcG}'ZLzT+`_rq^9.9= 8R;jZs.Zѓ9!ֺ*"5 OAD9SZ~3HEHqֺ;BlHn'$ ^l5NQ#/BN 65D/)9sZˀ[h-CR3UҘd}U} h5qVu&+M>DS.#XLD2I3%gQ8mԁ꼔+h b G5Jb&Roc?Zu:5jjPZ+Bp8p5ٮzS{]}ǭ!ZLO^/jJܩ75ı䰭6D9j͒j"$#YcԜQZ7SZj\zkY+6ĸߺCZ(9D(Jv.Y jMb H 0kqQ3ֵHu$nq^swzRnj4fIݡ+ҏrVPnxCdGi1Zmoz]9nAp~Cʑ'δiI\HJzVQwFVeI$Kl;^W pºqJ:v42uK!6[J鬺B&ETj̒Z \qRVe;i53Vu)SyY":  *DOިEn;iW,(&cvʶ16y^T~3;%N`zU|%%澸[q@?XE\*&x^J2I8-<'wzRbM\_WsI+ؼLOEҹ(5Z1z&9<$;<^IX[CMMq^r?:!Nku:".Z hvQNzO+$n97ƤaedTu¿5Mt/ƙ5k$XفIk6,`l gB:%8tQ SYsN!ږCE UJR?3]t_twzu5"P0OoCW5,g'#W>f8㊥xo'f.V72d 삨[jߟ#=1UE~mZ&4ye7z쮂S2z5{ଡn,Y#3zQBޏV i\㏖V4۝+ 'vVaz"[dnsԷ5ZMj8`J<]v "0^q\ͣ.Vzuq8t:Rscux[2\ί͚-k_kXn@'!9UŭZf"?"z iBt'TZvWf; lhߴ5<ϨXL\03 K@89J^#phݣOE%yf'DV{^l꣜WTrxfXJLjlfΨ=N)7k;QIBj^IP[w cը >Q=sN6:m?Y &=+X/Wћx MaWI; YZM FjȍG@?*f*)|hAu*ڦW;/mc#DU%NTc'&xkG`IeOҪcJQf ŚP;3-K{檿ld$URQi _دR*1XNOX= d-Kog37֮Moz[KsAug`7İxhjG!IE4hpjZL¢c*8 *@u!Kc[M^BiEG_`nåHuphb~!ũ0);=()sS}LdSj(B 70bC֩R1PS75b+DqJTWФygke-QLfi@ҕ4 (ڹHpOj<:RQ%:SW}Ҟk7GGZÜqZbh\]ؤҩCfIv() rMU朘\5kcD55vc-Z^ Kv$Aq]KDs_dOJ ?&5L*e8ܥ+ kP:T2.X6E)]݀j|M [cVnȃvrvb*&"67IɭKA峱-|.@6ԷzDšȸ\ijBC!qYw:+|4dʝ@CӭZ7hYMXJei-ps,$$2Z6񃌜WWldږ׺z$H l}kTKW+?~Mz+쌯~6(+~)>h?SԥcCP]yI$r;)FȮ5Qݟc49Sj܄C,9u0d~TdZ<5Jm֌4U ̈́KTu+S#dwIh2YkJֲ|tcViEyIǭnX\e1U}60yRe\Ԣz!#e =۱; +*Yz瓍v*+HZ%*WֽWsK)YڑgKdkFޞ\U⡁Ie9mȨ6n9jZ/g1AZһ: KkZ|Ea#H>zpr;t;#-yp5V93?&#\\bQPy5jj+{ToѦŶج[}HGSk~YS!nY62N=+վ&w2c:YMcQ&&yO/i©V歳4L)D_C i{TגfR$IXwӍfP}ަ3(;꡶PIc߳PKخpD΄R$:d_ZA^'9kIlKmu{a>Ԩr/\]G[.Jkm~H1U3Bi=`2qTB)91P25iv+:Mb}(3r}"?5j/Іk6'^psN&v>[V搦-7sN';XujȘ5f$HC.Mn$C@qIhaaũ+r)qC%s0Oz3sPk! ~kL.h JiHLCW!LCS=4Hlm)5ψZCipjcS楁[&JժJw$c\ntIaꤌds&Zb]EjfǩX8.iJb[ 1YA ?zՍ 2$o՛\El^䚿{8Nc*'cZB0kN޼s#Ӡ 謢Q7,) j$ZHIҲ4YSOڳW[ ;XEH*BMSئt1'BZS/ϭsastWφnt 1[ROZc(y,޺^|џj1 q\UuFAU,Vu5rә+?Eo?yHZ͹ ZҹD a!#R*DseNEVb^l{֔2nFю=V#[Cx[ GǵVcu16|+W,/K:k#r֭'-kQB\,STdǙAji3rkO]~DMV5z^Im)H5>?J絇*+f<v\' ݚoI*lzPb5 y f43҄,Tpㅐ҉.ozTcv h㹧5uoxRlיB1u{v9=NT5I!h)\κmFhG$n0⨷FqzմsC*҆2Yւvu9qmqY\N֣*σw~YkEG-Lm ҉nڊ݃[EJ]D:ak+TsrU|Cfw#!#:֭vp4WsOF{M-w>V+C?Zs LDJVZ{3[ Q &Zhz .iHT܌s.OXw+FsY)$rbZ=hCҭ'ZgOb`i.ޕpZ^\5=!>Tg!Ui`*V\8A/-3(]IՙN&BZvU5\ 奔7CvԵ`OP'fɥ2hiHN+DP3f܆[Re=Izڜh[V.WLuF$NTj1r}+3Eh,jcZܙ!wT/qU'a%qЩR]54J :atW% s9Yr~ Y՟24(W"6S ٨gu%1QH5Ж'گSkczSlrRM4ֶ0ԍBu4 e)ٗhZp*Z+ e%y]V?k*ұT1Mr72ϘjXF~飜 [Vc'^}L(TLrsYSZ,VYd'yOslvd'h8M>L $uRHP2Lc9REgXGҺrB GD`Ԫ3Tf=TVSe>+WX2ڰ#b7T67sPCzB[`brmm.{mOy u+ ɬ,vq:9'f4q9w qhɐsJib9ZmgR=jYOAp"kӡ0LVhkp⑻Jdly?vqn#TYF|j5'M*n܎5Io t5P<{Rƾ V j-MRx*\楳~*:haSیֈv07KHEN}OU4Zc 縮{Tbv[gďZ}MjќzZQQ9⹚:azWUq{i+='GO#kz3f׽ZK3l`uV[')d&k[S6M9椏Sت?z gOa:iqZAZ#'?ZO%64晜FĊކ͸`Y$u!gֲeК2Z݈Rg(ܦdR[Y ~rJ{N>V+khIڙւSk=X ',ZߡS%v1{b9Z?RO5SslZWzkC P;*p5vߥc ˙geWuT}W2 Ԗe/^O5(@EH8sMSz(5+ph*9f}jE>Yǚ&$7 קuˑPnu.SZ˥h]68jH.$šÙ˻VmE SYSqtIrj͸S[qKfIȮj$F?-Fk4f~lGHZdksѬ-A0V嵡8kC&u}k8ֳUqY\ e^mw 80NNS$,E;LҭC lHd}z_@9OIrGy)K?D^v?ku6VOlrlK,/?ɟWuwEYB`ina9!\:*&$uM|k%^Ū1i#7R&0HvmAWBSe@ {dhBI]gn@%$udC /S#r:*=*%cwqu 6 ʗOc~gL4 7p+Z3е9+"ͽ#knP@5 73l8sY2M֭(gPtBBIQ导+="ڴ)dI1.)vTwcZ2AvƘ<֨E U}pSs'1TW3b3nj JD+JBc5.Q+WՍZq茛d|;a$fҞEizr[hr>f4$G㚴yLaQޘާ&fQjz&R5=Kl)Tv#G,ǚ i�ey#*yq{\ te ƲoCx&Ct05F#w۩%fi\RC zA?u~O=膗4w~zDFGckZVݒwgW3ϭ0µ/p\ZMr'`t*jMh8ȭL%s=+%l4^e.2AY$vjxbLGލj~wVxj+7GizX-*5n9+3QJwyj=q^ -7 ɚm}ЖjPsd.L>Clj1-hJ̿a~lWrr\imq'r kj`$V-NMV,y|%ޅHiW䊣-Jy+&_inx0+CMO+ZZ!]F5lMY-˽=-[^\_~"{ڪɬ[Xˌ4fLh d9⩳6Χ4\`UwϩV_Jo~M1UuGfjhFT%U!PCq-=_ |Ec\9QZFUgՙ>#2s]ҏjtU~b͜W ьR$M,}-3/[{O7?Ѥo권P)wIpj(Uwջ=v6 !ՆHai&}jͅ5!7Q3Hc.EqMHkT&?m(_jWݵVD@ TSJbGV&H5Ƃ |JƩ5=:W=΄$ 3Hi >* l;z\V}ps]{nOa)F=*A@ai6fЖ_J *y.[W5H9XL1UR39\Wt[t>4ޥTt7^k"Fס-bqS44 >ZMH5Цv/{iw ,w{eFg7~S\=ןO%k+wk|7coiRw#BD[~1ҹ"'q~ԥy|I&)yx9h%N,%ܯ8>wϮv(ۜ+żJ xJt7#u*s5Mfz֭gjo~F7s[954Uք7 +X鉣è^>7:z0H^y_b RNC D{.IxSZs+"l$|fiX5'L}klGQι4"HԼa<5g"b8NS$e5rZ@-Ҭnɬ$tSz-Ҭ`sXY-(`:3_Jt֥֗)od5Tɓrjmr4ʫ0BQ|~trΊrǜ\ymIv2DlYh]2S]M `Sm u d(Y#UZC\qyM=Zcj sϥ{ցad\4`?V7y~JERaOAStڝro\ұ-̃4=_GLaxqaftWfu/tO1*yck);d$WrlCsO8E#{^t:zTOTCLЀjj*Z [~؇!U0p.=42C*\FF)Yi- Wud/PZLKW1xۤjUZ ^)Hâ})VG?-il|5؞8&Z)P yCc|#}*ṂbJg9}hq c6V4JW,qA+:ötmqN2q"[7>=#PE[l#]1|-2Zw.ڴ&f9sV B”*=kOSԃD1riwx=9OB3Pޣ j(x9)S PrkvVz nx`It;\B2^%ӥ)8}:Mf)ݟ!t:4:KSԟlLk}ҷּ; 6VXN'`q<<3T'PzSơFtTSJZӔbm&kCŸ.t>~NiXiMyכ-uK2NY)}RM涒2.Fy !S\jwE yKkO^*:b_N+^+jN9/19k(5blZ1|A_v@(穯վwi;Es}6݌A="͑̍'^3>>t\eeP2H9$`H= xuԩpq9b2rsMM5=(rfsUR=AvuP՝j,=r*}X *Y&g"IbF/lZI^0[n\գ >]F;_:ϪסOqѝ? +&v|ǘJ\,car Zeh y#W <&)T25c#hg|kqJ-3u7%/9K"x_2=HlkcÏcOcu/U(,2it5oBu@iEq &=O#BM* k[QcmSqŖ m[9-Rt6L"zYӡ(oSQ杘sNK"®21Ґ974JLBnS=) <Յ*ɢ¾H6h騜t)] ܚ浌*6)tZ|)Uɿx)[6;du"+SqX*u5IדZ n3Uj=iZ"E+N)1Xt?vO|W%r|ZDsZ0*&waiҥc+WudUt9PƬ@XRIv#Jk.vIb'UdݾX*WaqS=D`9SDĞꧩZJZ9j汓5KB-`e$5*JGz 1=oD$T2-[1&;y?t\R|gP0kMSB㗥=5Hh7ۏdY>bɵ_]ԕ%IMz{DjmrNٰMdط&Ows=4gL%IٛFEk3Zߑ]̌&Ȥ B7Ի 繷-1ܖJj᪛Ԥpu#vk5uzt'y:=GAQI a]xsNfG_.x_2榳t~rtS|*ZM0FO"d:(DL Sj驸W֕ WBJ &S &:tO1@DL=c}k K lYN՚- (\ψID 4.$r";oqS99hYĿ,#zjT `v;95)6W'xJ ͚Z#%+[4`:w0}0c -^'o֓N&y9; {72qڨF4n0pk)+T ɨ͓4b1hpzfƱzElF9;a#jh[Wa'F5=coʣQokX>]AJ:ƯZW9 ך\[i'Z>i+ű+V#h-h_m{jTJܕrs=nw<ZR|F~7a-UG\zy{h1ҹЧS}i2Ee*jMܻTqNF";dv (<F #?J8yMTƝ {]}47/kѥmpbs8uO+Us^k"&lzWFTf6b3OrW5ey')sPćQ'ֳ!֗cn Z/} şRIF5XGfz8\K<_?4$כi^ myհc93rVG;=psY[>j?3i}!EZE2Gs^t#GJ"9YCoqVQɭn"_3j9O5Pob@BWB k9Ml)>Yr&[ QW-yֆWg8%*kIoB' rsM;X9c&1=jj*[Ҧlp*6lDw$Bg>^+2ʾRB4&I/Jp$Vr-zw31kT5Gs[8'Nx|FkwE ^MX~HGG8$:sUkέ.ZpkL+5Mf?)XM)!Vc|k&Djtw9SW,SNzU+ϯK/]~{W 5yTv&H%]tq]?g*^KVuǓ95]둝Kr}Q&sy @NMSvG^$kEЫC,+ U A>تoS)*98GdbjҸF^<sPWI=MSKnFyWFk8 f}F3+`\ش|"Jı,CTYM-C|psWs2htfq]ͽ^泖lU/ϝnޱM&u<[o1zֺa{3>\HA0 ΠjOGcx%c ˡNZÕb*E|u56'Z0}je5.G7=kB1R{1kz 75Yp9θvPV7q4iж.ۨcSxMvym)2>*5$0`#}|bO+7o#P +K 6$QeaRN/^A[FĞF*dՏN\ ;rJ^Ej}FgLc6_TpDhF8k|?n_(Q¾ 8\' Y23Ҷs]Z\#Ig3үEe])YSͻ"QF>AŒ mF3NG5,RH~j7F\3Eo&Y>|דxgR <+ISNyY|DΡhs#&j5/cW}UW'x8 xV]ή^ϧxX $FÚhZG|c}VfmMM- +#֡G=SԤⴎ;0p+vaTmHOA%+_zxDJV5Q@Gy5}titn| jY+XM1N3WGH%WC7[qפxEuY.1R:C1ZWWdGE}k//>6W7eNv"BT\Uj/!ڟ'!WXl[z$J@LJs=sP13XwE$֩s9c]Wc+Ilb=ZeTskBMZk;jl5B~ֱ&[lRG5]^d8$cVЖֺHXU D(y " Ҹ5Z"[ fTM EjZ!/s]`|vz|IjҾD3\6튵#ML71cz+J.kWab9Cbni&I+DĊ`QBN*ֶG<ٛw/U,d֝ 2FOJӭy楽 ͭH {ܧ혠"Hϸ~*\.氫N#QnȨcY7.,Qhjx+N6MJ"'hր 6Ի浙6Ecd*ӰknR0$,be#&+xleP J㵹c 8|ު~.̭6ѕ\Sw= QREvEhrIP?-W,JΪrгo /QW9)FȊQP*ۓTV˄E䲞AkƮWDpsW ;q5r(Bd1ԝWjUm=M805+:TOXT%@éENq^ocg ?ξzզszCj*1=jgDue icRpmN8z]EfZЄib\< P RDț!"vmTVSzb?&ۊz35ko2{ OɟWxMMFg:U{%5m5ʤg4t%hb HZȽ+[3ێx` JH쥓xt9֓reᘔdriɡ9ͽKd\e wjif{D? *@5;zNmW⸹%#ֻ9G6Z3kȮb]MMQ7BB*LV5z0i[9#dk&;Ĕ`sK%K;]Sij͝qf힬5mj<I֊+Ոu K jE:jbN?x>7%K7@knva4EiWDOm=^\n5UjsThXPQ1[0tֳg95EЂh;5]KW/y0KBpAdBBtʱn4d>mìKa"* vZForVs9ǩҽ!k[{ܧ evřQI5.R 8'Tcbe"9STD6;DiJWe?vQw-qK;|K8k1Y$h7ΘP&U@$[35͟ka]@WJƲp)!^dZ\O"}nSLƫ7-KFrkf O2Tʉe\)#$+W;3ۥb);I=fy%!̎G%Ii΀iZ" no(-I[PrwN=r{E-61.YPJmZj4c9U*)IL=ˁLɽN_TG-Gi轊׿'ҽLM1a+k13տiExZqrJ;c+҈Y!dwyKHڮñJ(GR?J(1"5BAPLTfsI5Vv t#OS%cɤE9˶q] yxc&orTfǖ@(S+DCbL*M`V"X RB5,)y5ut%Q:Q֭7*YߴM1Ve[6}+ 2ףZ3 zhszPY2jPU@`zRqFlBGjfFyvݫjRt54dGSDvⰎ3Jz%5$kx;v滩KKmm-LmL +ֵdhk~j N)=)]}jrsR!֨Y>$GiB"f%jG?`WV]C:j>zW척;g뎦rf.0cf?0|5o 㚚/CMM,5*Xm79z2,ZaGC.sL޵%8UgBҦYRFOp^'%$s=5NZ [Jxfqֹ;_w+RG ?^P#zؒ$4XoP+Z5= 9J*ûlӚqinxŷK^÷ j U]>1@IhsđLwxk #lp9yȨƔ?񌼿 a_V$"*Y9E\܉&~[I*ƹ+ܾXk}\D">mki;y#4Y4Y[&ֿ֗MF}zQjց4z"0##E6kqݚ}F qRZ`Zأ4e RP\J%zPiByjhɽLmN ۇr}(C劖-ywVT&z} OaYdjS$%u56ޚ4Hu& ƙ5ĈN*gt>`:nY /5Q3ܲ#T EY=*47Go>kFr"VC8G~[ARmSoB1nrbX22<һ-=ODlBWWGksެ;~ľf==Z,Vԕ7Ro٤-Pa2@8a&0uԜ+H"Э{(=+ds;952 d=a8i@>)D0 cMh@Nv`rUpNW\ yCv5HQ ZdTeq485I᪤ a1Ru*覬|%,{:@3饹G}7:8uBZ { ;S>H6ϵZnjđ;8$5Ee-)eˊkSGW[va]48-N?SCJ1_C8BqkZ9$Dʟ;YmIer3cf:yD[;'ÔwH45M <]VrїlҎ;_;fk+Xoixkɵf2Wm7zc5~ ߒJige Y*u\6et#`JIcަ.֡X84dDrym.Y1S$it7o&{z;*a-"_i~?#D޳`OG ]3J8yr<9iDxo%YvGB>_:ơ }*x.l}{氧1wNڨLDA5hrBcjsL+d`үw̙5{3dz(մaQn)D[oB20+TrߕŦ*A!F/uGgF+b+ҴgC략j;4#;S IbO\8͈~rRx/{WrK)+^6>?lIMZ >#Y~&?|D3#/uG¬H2i)31֑h#nm]i[ľ#j9kbީLս^Fw6ck-E% P $c5L#xcQQ$E4g}I<M{uJLU/Ձ Z"OB[Mfׂ C1ORLCiʍҵ@њ`jޔ˒2y k B"~7najRv%O?۷/9 ~fFjǥA&qY]> fu\}̮jDեݩۇZTTTbG^>.C!]^dA+ƿ~޿6=k>Vvj-]ւɊTCԳ?'ֳЄƑi +TYrr"[PdH&1jݺ4E(5a[呼6&^VGR\ҹщ##`_h>c)ZYHһO |L;Smv^2ƞÜ46Ρg+k[Y1BJzRFs"i=yCVǷO5zUQkTI&K&\ogsMsf0I^aɨDjcҥe jZj֋X{|9 Tb԰C5ȧ5{jKg({\2m𫸚QEٙ ,#-7n*ӰnE2sFr*v38F_TMRdz 3Zj/S3_GTVT543oI}LmE96[ę B?1J.w3BeI[1@ܹ`:.jAQoqW&l/Z)HZJ+s_ Z=_EH+ӊ߉?x41^FS+ϩ/Gc8T$$O(.`Ԡs\x| 7fhW )"Mnd/*23<$֦H4ɭm> 6H jjbns\:ɞ {WժV<1)Ҙ=^[s嶕 L/;kTfJE ¦ޕ 30oJ"IH6ҮFXk(ShI H5ř*7AS-yU76"Tk#K*ʘZӰQ%5עic`qhCNXt椋LEuҦLf? 9v5c "/~7Y/ÓK _#vSEJEpښƧk.l2Qi*dP2˰85vS\diF7f9v<ӕusGȓhj6`ցɭ/"ТzjsAMYflhov ezm\!mHʭe9Z' sC ]KcRBLzC#=*Nk6cԊCP#DA/ ԰5246^i0+vCjݩu$sTI$1;; z+'%E֭pEZdc~E^MMMV6HsJAZN%]2vbG_ʳ١O_M-?:}štp~EP%6FW*^jhŏ3Ik;-QZ͌⢑ IrN5v27J'8^̡s,8٘ g*N>uFǥ[R?ZwE2\ ä&Z̷z+kDr8ld5\Ƒ~ 񃚗ZX|>VL@³bx&V~5$y=$_Ei"쒰M4$@ ,C*$?15;f=4vm_Z2ČMI߯MU躙aS}MƮ>Z(Us&͝+byjNJn1l'SI 10bdt j"W`&nfTL18jЇD;`TR;5W߱l?S?!^Ưy L[1<r#y(cҥNơ$ny}b'׊vԋjDhNjűa5{rVͫU@XS|sȮϳ=;ҽ9Mp@FMrNzƠ5\ÿ$YZɓھ&qc $,/ {5~+֌(E_C;P5-M+66w=ժȫkC5g^pX3XlkY ->!SPޫC+ߡǾa_^BQ^S-҃h/SZ#+@xt5(! G%t)_[ҸyDCGZjz}8;^L W_Ddq&W|7I,Ƞq^n{q^t:c+?5zE#xnT}[L TX@OZ)XHXvi,tkk\U.e‘BՐn\k#"94PT1Z~QɽAnDM*FLC_u'$V7$5vnz!SZZDzTn^nzFָvٝMɁUedLֵ@ח);FT^=M΅"TYăV&EmX)Rz ME) vjrKc3`7g%O6wLpHZIVPS8*/#Oj7͡.]M9ZAϭl%q5drIj[mRs9%r۱NKdIY:. n~ε:MYy5eyV A9MxhЍ= mkH:֕ ff͗cֺw UE͗jbf,nXֲvyv&nk9qH,jMn.2g=2$8{Tkr;Xb{)@\P$>] IYM>y5-ux6 s"nYD54ݦH4 ejvBXfzૡ\"yD57UB9X7>O`Mt~6As^5xgP]@\UϭRuԠY<Ж YqAU 5QV>qOjޡDM;TB+'WGё)hyέt; Dw gtsz?<ՏmCBP:jڞ#c,'ҲL& 8pjҝje5bjmVkqNVEh[mk[ -Ũ~wG˓O_JV+zw5 5hHX2hr2sfqKU_隦0R>lH= {!8u7 sJw9[úCLdIUk+UWkUjE=@iQ2\uc5~A\Lyi5zC}:TlgB~[56n^^xX~٨̧_0y-!u8GE/kYzgcu~ZyKZk4rXU3Q/r!Ilk6+ȡ1 ϔ޺n5X-J=hSIl[iIq_s-Q᧨ՀXBc Kr&QCwweY5MKMe&j'bhӎjx`⵵:+(.HV}k%uZWMdۊى¯5q1$dbͅeF0 䜜FfMrH? t5K!ĩ eMH*֋z29n}ǵ4LAN{mM &FT6O:k&ǭvhݧ'g#d isYx +HE&k"˹Xa{cPhમy}֪+S->mށ^B$*FyMMFEםV:|drD y!TCVbcoӡlUpwrjtlKdұˊqR[p,{gש_ڞVlz[pG6&澕9ZG@ZD@+2\+;i;j]|&ňը᪮&q#ZQ2t&O֩[1w< 4nR) '5"b!Zώ=DbͫcaL_=iGɁ<+[5Ԯ%B r!8yG5uY 5Ia3ԤuzRgzz ьRenqD`\F-9J`jǔJg;Yi#D|ڙiMjsnӕ-bdejfsqI=JNQa 59Z咹-Qvl7r&,**I.Cp|z5Fб(˞>ðTX[!S!hZ3oS5jIvFnVM5KF]#RYj(I5c- Qbq =?T$iZl6M2-F(?+źchfV !P2Z=9 mhjŦdu5 5/Rx̭D~龕?zZ)1~C+Std3uNa?J6lG_1Z >?xw'^毚kY:045å.k6U ē92nH ɭ+I|u5 )y5Hpi)= Z5d(b:RlmۉHZZi;0Dj5lF7aN*Pxw5$Iy5:i42Q] x ɖ{UKf2k S ȍ>K%cWau4{UM2;SB³:[zXJW< Sp.A߸aYS);6K fr).:3.櫲IB0沔t.,E\Tdȹ5~,8D܈q &7FHSX'dk*kH=He5ۦ+la@}P,"䏣>?ٺhrŒW`YzZs^L|grh1إF0j4IHn֪Z;9{gd]2rCֽkM;lzS#rVgDD#f)4i9 з9gOԠ6zTdXI$HUi1*Zle$j#gm -\tj4<mI5P=>o3`ir.ҧ/sZ!lsSU )#&Hh@3H:ɰ8ɪgֲ[s^{~`47G5idHrFO45r&wQ/z['s&Vr59ohK^Ƴ׺CW5tȶx{|+\6GMySkUv8rQz/j&r@$W~zke# ]x9{9r+>ԠHenr+0E_Pm]!Yx{t}@8iԱiRdO 8>Vz02ԜԋpP%[ixshwQ1q$~EVvjBg|^A7rºe%v+nlֈKCv\&:[vtPru5#\Q<\rc^(Lw.wOҳFM?ƾZg! g.!8jk$>k6LRq(ǭ"[viU+|95NƼ3LdTfFҒ{O4cg9Q"BGjFQ3ԌNJa\UrU2LiEr#5,¹5i&KB(ZҸ$΄;h/q~+Hə!sEyޥ1vcCbTxCOmO_ 6pԽ=/u 6٬lc 8űdz:SWЦ?5$5ԥi#'$ֽ Lk&29$w7E-#_q} fFG\ ƒѢ@1KڥLHc".A.kwEA;%s|sK0.5ſ3޷Y6ry9屷 dV$0V3NLk#|->[k˩6q\5Ϣ>`Ri]6Z+Dʦ T~ (S@9̃X!s1y dKXrq]Yk&!ZIJTH'@g8\3R+41hLjF JWaj9C/y6Xr:Q\v;NMsc̐{\968g"<,a<'ҊI,N>mk$|ՖpO+`UvJ%Pfb>RDKp{Gz DK#.bv’3Yi|Eg˩NlFm>p+'JDNdR se(8PvU֣V a03 FAZvktsInYq[``=e5mTU&tk%8ic kǻRg+'Gf5qx-f~\j 5q]oQJrP}NilDsj*1ԑF@憬gq"ZRh)c} 9Cۖ5X=[s#ORմE15FXԡ''5lWsўr5{4CZZVqKRrvW>U9^\Vua#k-jp\wԥj)sRR}kxҖg>Q [bĂȽk#,@㊁+zLRllԚϚZfŌsW K=*H1R#/}.f#z/Ӎ|5sq_Kf2ε>$m"gBѸϚIϾY<Ωjm'ּΧ4hi!pzBM9夌YݎV0f'q5\Ɇŝ%1{UjYuL%W޵"Ls锍-2-͸YHPh`89pvf=+ vWFk"H洠ɭ(EgQ7Fry22 jm$Wb5cZ%щt$?xfOK&_ ׸^ ':wgcaU9m hir so7>W1wFu߆m$jȻERk fLLL2CGCe{gxpɓ*h?wO! Sh?)9V$.[ڡ:#ZYlxzwjZJEk)`+r;F+xF+j*mNC@KH#A|E⵶Me#=+̝3J|.}U|&#X>* \|R~D\#6ޘЩchI=i0&P01R*HSqY"8%HO`Ed݃q<))1>ҩHRɭH+Xg5c6q5 Q:}k٘ZKwzW_:'=;UVDsju\OC\Z[篆AsC ]8>@LZ i >*]C6EY"IPѢԮ f~彅qrD0Nzzx}D y +W*7,sI_+ݤv|n9~񝇊tiu_!Wk5k4{^ܩHd'^yu2Z 'CuOTw=,Z;T?Jq1yUEh20ƚbv3h'5Zr-Ny2+Q4i1d-LN85RѼcf6%8V +XІon(8YĽ p`khv(ՈZH7V {vuB&lJl&sB7qF'x_G|:Ey;xw6ò,]TҺ4J)ց fpjijIMBhmQ^9۷RثBt de-Ir/SvAF) bңhÌUAlPF_7 ^폺&Ϸ> +§kQwG9Τ ַIhH3XTѻ 9֭I4}vƬg婐7$4[ҫWE6G+ұqՕMZm³FńcQ13TTFq[-pBW'%V,:趗%k+?m5!ɒnMvw!>m \lߏ5kEbV6Egh9mHagrZ)LgӠkִ8djIWCV0['*жA6oХrcU&Lo|XsZf"]1>aqԡI j'4=Cjzw2#Z+S/|n5_Kkk0Kx.>`=E{}h4kV3n\)#\Sɯ-nŕ,9B}+םZ\M%- 7b*f8+j?xCjufZrERqRWCv&}Mm;X3U'bsZ1FMiYGEѴ=*Mfni)!sRɥ-6ކT=~I-JHI&E5p"q2ZEel* ݛB)#!֖)8O _?g}9NMH |;}MM!uV"lLnic2 BVd3 uIp 5aQcQ4^Gz 7<1Q(MDʍgAp9)EjAglw.áUDomG[VE"],hV#rl"ZJV&Oj;G8ʥM 3Q#hz +R>sIYtd!Dȯ# ls+;5]M>y&~ґQXgb,Ak[})E=Z I)QAXNMkX }8"V&ms55 7jLbO@<Ѳ\JC)rjr!,Ⱦ'mom:; 4dfxަ*m6\Д'1kՠnU_SKݜ$r}+wGa@ҜeʎiǙЁ #T9r,L#mK8&ˤbEzpID; ֛<~m ַ.V婭C*8psЉ\ M"0m;Ux⤸!`5̩]ĺU+X%\fG#T̸8O#W=ߖQѯlV-'ޣqFZ cJt5Kc1.5bO?"砪rIiqVa4a\qS, lԋ.zՍ?#1k9 "ըp)XWnaښJrG5y6eO/y_ft!ѷW95|Tw2[s{3Jҹm4NA jȓ'F=+$y|)j~hnO±uh6^ۖFA*LB}+Sb/ލ} Ὁ e+vh[ZXЀbͺ Ku?xVm, ǟ+ h6b'6k&u-O">HLW)3ݩj/A_y~}U~>;Scź. ,CTuMD99Rϒw>6a-֡4 \<2nd׎=IrDy aQJ#U欨$:S_I˻Y& c"͐jyfi¥WAaEzBe5 Ydl>,' U%ҸnRq!##@4[\#QdjyHrPsQC'9%tT]]%X5n.8~`5i*zTh^2R%H{}sp^ <ׂ?)Oz^CGIlfz<ga޽|.FsƘ[޽ձa6׵eRI#XF䪥ERY7Mr՟WMci# NĦZ討Mi 6{+E_N$t9Rzav֌vzcظ~?5f=<2X.M)ZͳX!vRW-2)U8[@bM(H3/.$bz\^rfr3[b Iw u5zg=?/ˌE{l gLUZ&S~CQVHvR#U2X֬GlCN,S،ITPj5r^41iAT̎2ю6_!&F$[)\nnHFh)e<VlV bI|m(Xj2lX:.G4329ZVgrV9m%B9RRskSGOb 4LW BqQaIsT)]bqONh4Kt$xẩQ%/ tt1Jt6Nw7% ֆk}pюmLTK;d RAgPo &eCa8|E]܍Jr<^SiZƬ2z J9c)+$w@ZvV(k)C >ִ \9KR'Z'~F*ֽ;Csx5ɍTסDp)s2T`yUuPCο4',o0i37M3RmsjoEVcisZW!{$*|Ԯb}Xh@'vOVv<5o|f3麻}7V0PfBޭaR%L,:Oh^'@.%j4Kgyg+9Q;b[ZG2X+9 >zhw32|Sݳc^2%]O vaskK>yd.ZÑNjRHHLR2_rm=%#X-{ǭkk jG[|A`TF[(8jy2˨"jjϘM68jPjEiZ']NA?ZO4'J xCb/# qXaJj-wf4jIf*U;3[FJVwg,Ӝש|5lQ[Zș|Gj0p7oYxRqX[SXwDP5й+jmibkт#+jsޣu5-=ǁj-+C?MQk6QY;W2Z0hl^qSvlZ_OzΗzݷgbx&=X~'h a*Bᆇ5dmIN%ןcH娵յ9Nk#D1.ss]QZR֫M81@l2IP3R9-"0ZgSN5j>SQ^ivdѓҚN3I$M158I∐T6E=V*$1m7W!|]Nf{tcd8t0DS LVPGK^rܫ9ےx7Wc9dc;UVm5shBfr3HsH\5sjjƼ'<X)?w&%;ľ]KPW,=+vԷ8#NFщr-F7bXYqZ6zWxt d EH3VhIycuLAKcfJ_S̤x {/J Ta2֏IXi!+*ӟNAуZND2ܱ؊;J1#g= r&2Vfgfz6R@QjjŷF=rhvge""29̆95@ѰJȴ_K\ ]>(A \gr7vd2Xv|&ClY'3Χ]#V3!d1Mʼm+L¤UMPMHk $WMgŽ2+H{"1%?9'֮Ťۓcȩ4KYX`Һ"+5#wcۣoLIe?(zTrB1(fǥRC)0}1OR솏fk/ؔqUd'^K.<Zݕ VWќ+Mji05F LG`Zz4D sꮓD|d%9Eik}hw>UE9FͤkɎ3Ȭj6EahK&|eL\X5`ypE|^%cZc_)?_ńQѯ:+޹ `izma=XHiji槠C<_.Lk%ft;Qּ|d]o0jC9+*SKGfΣH#6 rx_0nD_~)#KӢyGGW'Uƛ_<~4ַ*MDis94 F g]d4lB| aMmc~*ֵT2Ś[ LNjDoΥBnIo1Ĩp}MCu4 $t#- 5 )Ȭ WgdgXy{#6 r<}*--N- AMƔ:,x%85oCctWE;uRp'֟h·/ۂ˞[cE7cqvf֔Udјϵq%iCڦ[ iL}pGЏ؅ݸJ!^kTVS+:/\?x*Bn/onpj+y%2#XG%q3pu9+Ҫ^ɵXc?$+k;nSrIO7)14nC⬽`5dQ`aEZNiHfOG hKR42'{枧`R !j)#yl[)=Yf,(4@`h5L||j-'I`iXlr2Vbv1[F7w!Ώ|!" c "}_Z[sFzT~<+͜8溏7:s^EK-Ox[~2;EɬwGRd,:Ҏ65HQN":ȹBQ+HxKϽlxWXFϝmS=Zy+u{TE9s[?QR+li~db0HzP̔#5;tnnIi'$cI@Njތ}2c(4ήfa}a_ V4*Hmf'&9W\8JfX \G>i~2.(? <5q)Y:cҾn|yYwḡ2+ainY)s ;UsǞ{@druԊq<~Jg-\E z6kSGYA3 VjemLKr'#ږ- T>է"qen!zfԴB1Y򸻝12|@ss^EIvJZR|5Ο&*mU~®15; cW zaK@q'Gj׉YK3%[{ʯ:G2<4OUx]K?.J帄"CA"n*SA5"ΠZ  hIx*[O޵t_iwcAl?Jh= zMܕVǴ_IZpֱ LX!ݦgiR#] n'z!AXG)K"?ܨ? Ц[E|WBdG&Z~BCîqXMNOhKXZFwPY| :a+%|?mO6{ VU.d"jqȝֽӨ0jAИ-N~4Ӎs3Ŋ_L'[ٱ?taTo8.)rYOkN_K1\7:)nx܏SY3J.NՇ;jYyܒ. D=*ӥHT7:[ײgbej>'&cc%er?e_Hs ?΢Os^gS 'njZjnsU3XjԮ(+{N fz7e"FM(6İ'$~=携A J*6fݍ"Vvbxzbu=Ҵk[E+KrF@59Nk+WiI^cҦ,rdոy3ZI3֞_޲$M=jre|՛b|QkcF#* ,(^&5#y5a$KJ{DM>jzȤqUmzV-][N:T< ЫّEY/Z $5/pnF{w, kOZKf!90U0ꈽ^(FCfMɜ})܂xc3\<=).<35HnZφI{FY4 Lkc!wA4=Dьn@ T,V/V5C;wcm J\ɭO\I) \˚O~+|9jۡ'ݧMh"q6 OJqC#1i b'W9)naf, [AmCs xS<Z][7S9w.I$繭vxW7;}ζѾ@kJFdOJjN=z#ֻ&s!i6=D9W2$,C/HgйXszn?oO0՝ALuэg_JĞQ]ׇ Q摒È/VS(n1XVwj$SٳȮm'k쌱 B-#Vm)p~N6OZews?iecb[ +=UJT"ֳFSnW)fR2,c$ N<w 1Ra-CgnTz<.T)5gCbq[U .߅~%ʐk|AŬbfPsjXE7FD%8ZCH#px IrL%o&3\ޟ6#R1 z[m=KZFmU$­ηUl6U8 +/b-'.t%f9?5r{rNKC:EvY#Ĩ ^+C[]=,hڼs6{+5D|ڡ=HYnw+^>? 1aNV_Z{8l- i$V`i]㞣P~zpQC 4}iІ+(9D ֝Z Jԁp)3M#5V% i@1 /֐(@8Q3N95~1/S=姸Xa\s'Y O2GaZ=8o15)$= YCg=[n">¶%ӹD`sah\J[M 㩹 #Gs~59H0usև<`䊆zT-HWr~鍭ǽ~~j?ʽov|&7rΩLOm%Y#,i?Λ.^Z Ʈ-31K6bJr}iB֪1ɭL]#+)'9BJ1N if¥|a"~|CXq=HcЋޝ*wLE%^RK{ҝK" E$FMylPM٪+:`>%#VP׋QYw'`SXae90zօާiDZL3]橹^xST~ɓȭf^lZܚ͍ j彌.CfٲFd'V>'EO0KD6K{)wtݙ&U{5 gsW˩2ewMUg*eWU,5J}UF{eA< U洸#fE$-h0xqCNszҋLztzZ}+m޹Ъ͊CKaԆ fDVB\06ŽIEij=X#drեl5,IU%\G5frGˈ^+GgB0֜e.@\ױxp EhƅO۶LbJ0M53SyShr$tcV?ը+1*XjN:Rպ? "`?s1O󮊊 (vVe@k\V] Wx.s߭{nn#YOp++X)ZTC.,Pk2[ԍTe8zn~bAw)XOCD쏝 nO45SzUzwc49P$8Q@B"#w8漿[7!9#ͨF9ٛXW6hvh="z.kh-G-M{BC8.ϸ-Rʔ7qd[J ؈nbp9{ ъRgV97miv<^)s#o \es^Gb``N8nrѩiG.Ν'Ӝw᷋Vl`jiZإxi:TJWFL֕#jRu.ri8l׺%TW+UJWќO*@M+fxc_`cջ3Et =97Z=N-fiԂ-~LUqwv:+YeO_|k$vQ tv5/xP@̽Ze%'>W/⡺_X+H኏:G9sӑX p>,{hϰ%gޒN<{vM Q*LP}i¨BҁM W5!BqҞW0+NR)@ɩQc+P8G)#W?>mM_uC^ }Ѷ}+v2MlDž#Kƛ8RSyzdy 8+$_^3jxbH Tϯ)d4inVpwy;L=)lY%B9(: 8@⪞T\_z?Wݟ3[}Axsz/iz2,W>!&ԑݦ!VX:[ΫZ=}q0gJpX:3ϒiCSlԇ85DSuMjJ.XH o 0+ ǭE8@=*ћTJMhR-£d857: 7eS*Qp5:_fFn 9C-;hZZk}k&Kv?5pתu#AѪV|ƹ0{cu53is^%}lJ (<)qJ֘SW?h"0Nq[Y4,y5d$ZKfW.Anڴ ]JLv5 ̓V+U*XhGbv=6MAAle6U9'U{[%c+v9nhUTFI+CqlV3NWг'416_M/]X\P-X?CIu05KO=&n)ޫXȤlJjkqmg(T=JJ)[%T9 Ke"޵!2G4%re 1Z TTɪ[KB¸)]^SZoK5S%5v{o{Tv?Liؤ$3֑q4B$hc'ҩGk1^8x\,MB4e.tEuJnOy:20@ϰϫm=yƺ-FI#F[LX ZIG 1׹rj5Vg\gtknXsI M#!PEeݩ*Ʒr֯xğ#¢:!عMU3gW.7u{SqU6&-n[Ԥg!'tzq,N:o^MǮk4هWexuYr1XVd`N1}\"A8\F+)ѱHTzIsT׺mMdH4xw`^Jw6ml#ȻR{0);zD\ ? I;ǐ=+T&x&o#yC|S6,nWw\<[='Uڤ~%ď6`+|GH/ֻ[q*χixbJzzV6Bh#ӼkB*O9 ^Hfimd+HfrɨBʧ[g];VM]6PAG} hdL(21|qዙ>[2?_5w6 trzs9.ElXM5Acze2ܚcXOVi"z (CTKjH8̛D/NMgI~WUfy0F',y5b)s*f{n(Qya5Vwg\cd]*­o@lc&bR|ƦLb:fVwKR`y-6Q}Gsp \֐B=S'yTI$c+7#H]QvESe)wbQ|A\[-Ew뚧%EW,~J#Y M$Shkre~ťEL›dݗ4\mP)SԐ!K 5J|@ɞoKYG=ǒk6t%\z[jz_4Yd+^C +Rg E歅lћzbE9`ey54cҶ ٙsMRu/qzQe7sM=?5xj\\5&qlF6Ǯ+;ƯS֝ y|A]i iP*rOjLՋ܈a]1}Bk9@XsY{ކ8~Mߌq6[FpknmGTȭ.}NzkLAūd R 9Dnk~jhWl\RԵGpsgRz PQ&3J˹Zi3q/C1=G b|#%xݗA_GUoy{|)b V}kP<_NIֹNEcRPi~lBs^]el2Eu]#gxvi䨯Z*V}Q%4BO9|8dͣ&A*7^7ʱޣjtv`<,ݣ^2ܑ^G{2vWp汹Q;FkLZ e55_q#Cs2ҼRI'AXYJw-nd:`u=uQ| l Zu EDra>%k:5xYs_Axk6>$A¨ik~#a&,yԚJ*K=B/FFk:v,вfGŐNaUZ!8&F%dZc4;wtKcք+Y3գ'nuK0ޱڿDdwUMi(NPx\EC^ٓdW!7:6xl5"NFU2M@E6c Rl"̙E)3F[XYDdqCv:$@|S44KAMf@)Bcr)UsWkG-֣fm"> N2ԉ!vB{֮B+ɖD5f dɫKC[lŠi/!*OArjd=̒: Ǘ/gdd|)t)KGTV!TIXiJW;ܣj_ ܿk ֊&1. JW*iU' kTCeYRݰsVeԧ%뚪n$g&4$tU}1n*dޥlQV¢@ V:rS{Ҝ F*Z)d꒘m׭Cyfp'b}k=΅6j(!{˸N5p``]"kd2ެF% R(D5زA[s ժ@fM kCdQPޱSh3b,;rk[HXM'%"˛X{ ū3^eqShLSHKbAJNJ$8ƹ}gVSjJu <>~HD ,kҾ4[_m4=ڙr1ӑrsOߕ-<16ygs^AG{魊U+CO-XӥǽBkCnݼ7ig֔(5kGq"Q0: (")1YwcU$d"0l:䭹M|pq(vrbp~Mzr|ҝsZ:'\q÷t~I2Z)J"fq u:>qfk3]Zu$j˛&,Zs7 tFIzk ackZ-PdAN=S.%5N\2q(X_Yz=}%I]5fxy(n u+*jT1Q9C/◅[×K,+tCOY#< FXAjLۼ2ʹ7沎/à?ڲka*L\fH1Jh"1)UX0*<Ҏk[ ; S*e6!C6xB8"t`ih$SZ4FEs`52 z;W78'n+_C3+;+Z[&H>|VVqW7koS(5Fbr+*_W->1'&9.!!Me;I湍SЦjRjk|/sL٪gԖ.գ `zv4"9`!/[iAk7Lyz3WW-ia_bKb~ /4 -,tݱQ?=#|:5"ca@z̺J)"$,ҵe"5SY܅SqmWv*[гH9_s#&”!X$4ќաsa 8V["Ej5B&H 7 52&)ī6qkr> yO-K{P^K|e;Vk+օ-XrJ#a~uT#n7FwjG'wIl")ֹ'3t;M֡{&$+>K5Bԩ%$9~%nQ5&FoFYIM&8I5h7к D*+ U4: zU5<ւ柊lOK7A\5EJKKua({o UOۓ!aWDud~m*6E)gA$9S͚9[6Z%e VMxSPiNc\4̟M_ԽZƝULk% ,>ʽ%bn?1^Z~ZglFm"?5Ar:|lar5/s]fVcTo=DiL8Sjb+Q1{GޗhMqV$S׭ qfFCu&+f\^{"-d·ֹ-MlkBv'H Q"e#,85kr?Jm})Zk$\\y9KCVKH!Z1[&3d< xҺ#9{hI }(⡈QS#5*g'fMxkٗ9K\Mjn^cOJ!11RI "i<Tȕp]52'5 j4 fA$cZΎɀޡd-&~,cc82տ>\m НNI?5ŔuzXxh|a-Hg$MgLvKcă(cvK{8>r8GCn *rֳ>~ 7u5NDzh2H78 ش}pQEtE'U,>ӯck,20k5+=E^8*;0D6V z ΐdokyvGEy5g]jtti=43$U՜nRP߇5OTfhn%Z*iWGV{iZrEZRl1'b21\ ?tuѵVE^džڲ{ط]֊RYO9 s5ױi[n j>ѱynYqTQz5{ÚUV8g֥KW4]< pJޭV^-Tj5>(u]g 4'#iKPSs<'pϿi/Jൟ j~{FONTygM Tv&jTۦ7jJ|KE5?/Y2ﺷ#/@]ftHwhfnkbDEqUֹZ6Ju`Y70SPGK}W NkXa=G7JPzW;qZ>YWg*4sw;Œ[|4BA$Ezb|? 5:*}MV"[a&HkTsriǼvj٬r<:[iZ'm79AjHwEtܻ^"lاp$W=A%6Z-5y'qsBSZ69LjQTu,5`3;=oݻvz/'1$zڜ#*|VQ85qnI5)#Ckz%eX=ʟQ^K?>7д2n5y+|8?b٬bdͨ5rj=Y3uj6⵴2iGFZ>_2>qqiVaA^Pq &>)H*5-ِxV! A[yGzV sƪp'wDH}B&OzYt=WҤU49-nivZAjKҔEgLvMn!-N3Yf̘"[ұWMκn̟رSÁs٣YۘZE$P4?aA8c>yok<14kcH[~;}B" ү̸֣[9sڧU~[!z5 ʰ߼\nRФOStY @rw s|urGf o»a%Jos͹}}E/5B͹ۅ{}o%0HyKyV<֦Dn3RD7 =i&Sñ]o 7ߺQ9\]ͣLV0:ޘU'kۼ),wBv5Gg#xkqXVelq oy+%J\lA i@5*FLz)+k. PtQGw,;pdkPjZ,`#esg%Pj‡ gWU]Hb%|-sM&Whk32×5xl@NXzݸ0;G|g WQ1^}G.7WT?F}xe-tʹ=oQ|t)`f 2s\.Zq\U;^,dҵ5[F;y5#iNumSNc# gGGc|]$ڑw֚~^/TndV'5_+xr[,foZJV!kgG4 | O ~iLb~\r@H+g%aս)jPVKC뿇 Ò(\޶3Ī=M^ʞmMd4dj2xTV9jӱrMc&](cdޠڣ'L(nC4Z=0f}#0%iksη9=ka~+TfT49Ihrmsj"NF*rj,2j[3kHJGzշ2[# 2J=({S2j.yQ05scϫ;LSV?Z`ɃXSTy$ќӈWPz>ۭUMuc[Kڴ%⓾j!Җ F1ɖ8cK)9H^4su5B53 FR}kg?[QZ\!ԨB%UHGMu0R}+h,{Iw<\Ufkm> G'Ҹ*o\]^*֝T;tfXh1FDlg5qʁ$d>) I(qZSۨZIBs)Nis& G4uDn ܚ'XLHJE8E-NYOC˼KKTZeb?jÞ%/!߼3Q=CMԞ=qڧmvrķ'V[Z2GJ5d*$(Z'i֥ۧ;8%ZT!8u&Y \ےHkc =R1Xlɑ\sMz53FU#\˦@5ݫ*9Z2^92٬\y^s*ax¼LU6JuX菗+R$y[#^pW=zdW]%c̭%ߗ?g6z^G>cqrsQW9Ȯh|mL%YbW[@Yas HI8{t !9,SkH+ަ*\6&bI9涊9X9IfqeZمTjы\䟭`Ѳ*49/rA|@T}~4ę8t)!9seg*G`oʢǪg'n+θ8"&`z|+[GF'Iorr~cG)V=C à3ryUmԿd$;j/Շ'قK$ats43^Q3_cS$ #4sYhy5go#֨los)v*}YQAhoCJ(7V3X"U&C(k8J-IYڑܠXd殚S .-Ss]չ_fMZT5a7d_5nn umGrFe5N튩W- Nr֭o%HWޛ(Dvz *J=~!C_x*_&rsW{hy4>l=*Wq<6q: By'5{hV³:Rh5QsWDj6opzW8i{ٞI0|W3^#Xݹ2t'\rgIT-GI  {W(u2"N}jC{ǃk(d U|K-M[wiLd%yS)9LyT𸯍QNW?IǒDX^t\UZzW>V:?`oLwz؏I?ݭoF\L3&)\6sT* Rɫ!9HbMZ@4+@[G5((RkT6L#.)䊢+cuLVzGcş4H\l+d._ ߲50#IbyHZ. U~;:U=bTl=tCKs#gҸQȺ|te;Xѥ;@j,R(] OZͣXN;R0ה̮}jc;GMhVIZ[u`C~B ZnԏQY1??P1e^uMbvQmWV>MA[qZ$W޻$} tRzUjLms;y).ZC׊|AaO6&4.$H"dT\8Qނ'31|4kade$g޹$haHlD#Қ&8Y0ZWu%(Uɪ(m&qV[ɿ?5F2<+Zu95Y( jȏ \lcŞrix:L|o ?0ŷ֚ؤ˵]֋ƂNUOFW=vXfqv2Hnm4:rx2GTP0>QPf[8g4 hJ#4O+ia*yXhibe]7`KLbW.!|۪e1G<"=6svE:obOu rǟzZ ꍨ&5ĕEs˝F\W-&=A\]yb]D#9'sҳ"sڶe6_dgw*:js vb@Mq=%k9V1m.W^ (IpMkZxh>_o 57DA>Zע5߼pS~o&-SŃ(s]}uBzzܱ{#)4v(qo5!dʧI4L 1Ԟ+۾ xxl'tۂNHd3zSgLElp BRK%EE%94:%j֤zְ%T)~}N++U9f#֫F3g'NS]FJڛMe=jMқߊV cRۀdfh}/G'ݴa䖫 ʙKb8Ft c  i~thn#V"}Tǁ[|iڸ?&13UӼ}+H;Fbҏש;6R֭2(+N )C,J)X#t?JNn\Zf9)hW#-tk%2ZnV`<҅Hu76z?SeC5 i1GnrG$ҸW{z=N4P@S[ȩbKS"!c^1lgLv8dY9c^^j)=f!Li[ZoW Ϊ z?zK ?ֽJtsV&q:@-._Y)+M kRKҚt`j]rj6c79:;M#m'NzLEo)Q.3*g.f&#ï/zŘ&$d+|ѩgu&55?-Nm[_SΚK\ zUɆAni7F .UGZLNAY-,'ݍ #3k#W> mdM{sUbOJ<Ƹ Nj?>\s',]s!lyLu\e\*ax!NkVTZLIqMRs4sI' D+-'lJH85fѕ+|ENp??knNrk2ņO֐A<i-M$RpjhWȣPd; _bF2~j/sEmMX|^&,6Oz36DM?w2z 4cc6C#cjnGk}k CD`#;2𞡢E/.ݗkК;_ga֮(Sc/+wFlC\Z2{%_\^޹f0zS.K5x0fS8Y=0kס$aT=yg]Fߨ?gWS07_ Omz3G|jFιoBmzyp%*NնZ)/.7)1dl ճQcydX°)>iEXHE0%1j3P1ih/1MSH(i+i 4 h% }ihi+:hBv phN!\p&:P Qp\` v_rnkiPMudȮ{=Ʌ-l8fJB[*XFblӔ҆b!8#f/LY-qbKSy.-#zRA"sU䚆͢ttIouԖQkEu]lJR9^ I"UV΍o0nҸI'סL&JtՔIsy7Y qYJ.Ğ2IW1X Cbʚ  !53h`kyR]xl?`6 J+V;]ltkF 1#le k|QjH$?wim\&HP\iMjJC)kpnk;Rp)6/K-'dլ[W$F#8W sNKCSd ɶmY]pJS#:ȟ1jnr֕F6h[Qn攕K&":&ҋ=L`F+LWҍ|ysT<'*OrkaXdv}rbv-هֺx`C+oȪ:2T5q2~53-yyRb@ uH 1g<ј x[]Te cZ1LL iҘ-]Ljr+=' 2x+/.JCÅTY\Ԡcʤ MdF"V[gmlݏ* 1W#cj63t?zOrk&4s_=(|s+ww^-'y^:wuUlh㡿XF9 W̏tݲܪއ-j.gQ I2k,Y,\?FSJ[t<+CFmѾiv ؤ#5'h3NZO{'PpqMc`u2,S)<>k\L}Tќ7CVqF۵i}1֮hђd@5 P<ӈUCE3 e4?.yΦhhC69e6Na$8ۍ&]IgEZ܋ٳ,mGoxcǁ$uÊs}K ۮec;OW#w,59*WɽW2TJ3՜$~Oڥ9f8W] sxMcN+a3ٓM>Sğ9kSjpP t7?QkbAv?(W?{&-tdؒN3/-CzϔiǨP)/$[3f1ԋESk?m圎WzfbyX׿d2[+(t>7EZqOB%.~nCv)ʾ9b E|rkTy%+;}+bcd3fOsۚ瑺8O yJ:Z:h Zt#s%Y 3kթ$Qx{'RrCʇ 㩡z/KejڣԎFlFrMC܄t}OZzW;z"&eXƷnr͟z4h%;W:ѫ4lu%n*Rr+e.4b[]QuE8mNKVP͆Vg8nΜ/&? ]7vv#y']ƔYq Iɪnĥco\WqѬ%vTV[|ȉ\#ұCcHsz.2 ++Λpm#QˬF`袬 Zmp1n8ݏ8\zWDCf1LéVg_72;/@pZ͍lh ZNȆi]ơo1 ocFӹ#bi=5%UӼ!Ѷ8qc{NT 809>콏xc3r=$z0lz­@Ύ;WM墼|Qڡ]IQ;M=jwJC,dp}EY[HcuȯBi-u⩭ YݲL确+eg-Gj4 _DOk =3-|g|uuj' 9L'νS R/VԆ}̍#C}µmJsjRъ/JHŏdh Hw }|M ?mNkmQȭ@-aZDnk֭#Ej6!`\c#/9q'ާ(>e+,>V4ZDOE? ?*K.Yֈ!J# gku7s ^,jOTեWإǵ|iz"jpH(E{nriZt P0'⻱&~ 7-s9VYll> ^8f\OV1##$R rq܍zե@HvkCA@ڂ7pqЖ}%41Uod5=NsKW#ycfǞ*vb8jҥ_ SHVԅe)\f9UK:鳪?/'W)կ^DiJRJ'4(xJM7WHLwu&GHh9qWY/k#͞$[3n׀Uu8I['˃:UQؿ'5UGc]cdm$W2ZJWUqLâxU>qN~ O/^5B8_GBב~[(Ҹ*3фm+?Y[ԮE7YzF 7jЉ֛3McTMȘLi4֨4ҭQGZM TiO4)rhKqXLӳL,h-4HO p4EQޜi\BTLc)#64zK;#ZXtR3Y)C9(Z6 g#GS 1A唍"8;cޭZJsJOySԶ&!`;yR"Jk>蹎uQW'!k▬qR):r*x@tz<^m:#O3*-Uے@`<↥Wdܒ+ RXHb ␜SdG#d+9AWqsjm"'@cךoKTtMKQiAXNЮr_kqc_1|VY.bHZktTYɤi nOjjAɨݸ,K| 1&':j0VlfG>AWh<$?bŭX9Jofx%ˠRbSg#54)! H٫/H*cZÔZ]bk-N%VPa|G}O*"wj&uak[sl9i JGt<WFҺ:EޑTͻ+""q]7o)~6ͼ[+4%ObֆwwJZ~}(kΒϞ7EJpְ[|'+J>dR+҈*SuhhrQڴc Ҕg^!;aoYg5fjBvxbH&b6URʺ|fmw-[Խ$d1^_̄6W5Faάim_=r{מx#\x}暍Cj#oZyr܀}j"dH?Bs+Gh5krM 4Hc4bBlorNڮyh7~N+;+Cִ7Ak.=hފ5<)q5 *2oKحE=,R#M 1 Շ2?NQ³KSh公*Nc*d:i3ͼ#!zW!']c*4S"\; q}Mo݌Wum")Nw]7u$!'50DlqP9c=+djH¤lr`Y-#qX9 R=0R{up[+ *9<ٓ9+6"ve[/x<`l2ǥjgssRgV_g;>u9z|ϞR'֛"Ⱂ:FiZ\o>&tA ҎzBPZ+uQT/rjVy.q[9;3ץ:ێ z_LaW=kxowST|0NnZ{4O _j5ZrGB2%:Tbo^4n:mHn';ՈeEX |6\3GOFnSGPֹ_%ҫ?I( \&BS%ù-U}N լQ2>C.R]e5 ō^FvTATޣc㊑\դPuP]7ғ'BfW@|fH{k:lI2/Hm_srUZE?]; v5!vIj+LTN*R1^L =;H*3\|yZXuvyśU]'s}h}4>)]7G^k)42*' #1J gRIkJ569s#4ZFmg$ k>Rx/YaʷJE)a+]j%.e{?w24q_4nk-V #db0ޙyrchYnlTEHfnO'!:ԜL댮Ǭuj\  MNS5Pڮ2d-߯ .πؗ?F2_q>E6Xٶ56,rrMs@$ɟMP$&=M)6,b^&QZc֡'-(l"Dc4r3F4-N4h͡ f,OzO?RI@. 0Ni.R)&;ib;EjAR.qFMPsKT.J &-R@"&|H#L ډPoU}TEsJcsRUv$R$$v& ;RK@j)5#HCU%mImqGT?0_K[@A ֛"qR$֦ TKZPqV&[=(Ҹ{= @٩lVvY*G?J3xC};%Cg@-c7sx. 8W3!Qj ҫNqPˎ-5?J;6)7JRh馏){צUKUF&sXMk[Fx4HԅRKr75 iF6qnt?7ֲ0µLj{ICZZW4TQna2+Ѡ|2\h~#vr3ٵ$ssd2v=ZG^OjOor䏐.汩KTW#ڢ*±vČ*z,= Pr+[O}{FNkJjoCټ+<+jh菔ŻՉ𵝩 q޺ǝ [x'ҸabOrjzѳe@"=D麵[W;;yhZ,E[vаq~(1Q-`Zִ-_{7_>;˱wgKsͯ"vk}'>nǧvxǻϏRy?pv_%֫gTB3rCU \IjhCw)-y1wd?*nJֽ| ùӗ,܊V}VT]T~SYsj d-w3sa=ۖp]U|!զռE:rϽ'Vp"^?P*;HL7=*NՐ!c -fɪ$a  -biV-l-4HC\kC(4Mb]TIWɔ՜Z#r>v2=F]یH&*noj":%Z5~u=vr0=igG+SM]FZ|PۥqX͝T^^Gx7fXz3[Ԏ۹ԒQfԚ:͟PGMikŒӀ#sZ ֑%Ql@wQIyN+zzKk+*UYOQhU>EYF3cV$RZFL&v[I=fc{1kP9 zigxBQm 㞣ڶVX9tL8(`3%vY|o %Y T"4/ZѠbw/q%4lNs\ƩоS\Fj":=SL[Wd8t?Cli GJxR ?ַ5[x;UdTFQNxV%9UBvfc69ڰ[oi:ƽ&# kv:,5ַ:ݾ ŤG"V&?:ޣVE{d&BA2FoW3d$C5Z"iVD22j2h1PM&a4g4p"!V 0Mf&QY&y@TgJ+#ahCN&hCEK-*RV:v,))X.MHb*z%JJPӰ\xZ @*4B➫M!de8FL)5[5閚ytl5J,ϋP)= m6B觏j15vtp7Nb rբUͩ;ѷ4#ю+i-Dt[dP&e~sFV|YGZOx. ·}|#? ZSrҎ; #6uWqCMK2Mg'xty]eΥs<CLx3SQ\(U9ߓSQWdF@*^^)YȘT!GJۚ#M&D<5@8RAa%RdZ]M U'-J+#aŒ E8q@RhD֦fPNjb8 "qUȨ- #4hM &q𹦑 zR1 ҤU5Dis)EԪ2dԊ#Z%8@9?zIRkcPU!s+?Xn:g=*]:fe W6SSGŸ9]V>p9U8 i74f5/ Y^%snWGhPtk v燌S74*Av9Y;dMgF\>=ɥ-}%y$븚k䥫>{4XQJ|/ίjڛ%=B-0*eIз Br$I))#>B@EWReDn-׊Cmܶs[Rіqu2ZzֆpMVw5x0NDl8gR ta-B&O0L>iŢj@ڧQt^qLЇk6 B2\ۃ7[ ;tK=j3Z[.kDʥ8+q Κ.aY-M*#mgFs<x"_tmGdsd┲m&'rwS 7gr~f0uY^2:O|Bg`5U=a)_AUI3TYS#QE(X4CE+TbsPhBԛ(EBP!jP4"@m4Xi*ǚ\"1S9@\=*{P@oj4V)"7l ҖŢڋՎ+~hImk95W4\zt}^9'^$+GdTNöV$[vg]?M0VDVLH񴰓ЊRZ#$VR7+8ū^ڛCƙbfpk9S*Sֽ[e@9+o}5-=y ࿴`:mX ?Z5sJkᖛ$pC z1,MLUq2i0ܓJkShE=*4nfD[9Y)kwǥxH\YwpGU''( _kb "ʀR- (sW`*++2;xK%{,:Œ2ҽfϏhrKr*kzRkH\=6*V瀜Mu}au6oreq^1M[ڝ@pb1jلJ/a֟fǜY1\Z!L*`$Zlz)ʹ7^)˩I.sc+#uWe@naV'SgCJQ=@VL$ 5z)h){nWi57 V4.].9sLj$Ԋge-綰%UAjlLz7>X2]h8=jF5>h7PqCA<Zuhڵ ^)D b!\5}5ܾ)"GR~4ɰUk }H1+¼v -Ib BGMՄ+*E0-4$WؔX:Vudo]OT3gr|܊e\zW;H෍OnTC^s 2&9qֈخ24B4A3P];5e6t^,5X5++ctѾq9^=t5qX 4̗5u75cqsFG>Akcp؀5dhHVWϹ| d859%s֥.X5ϝoW(3L'd#Fҿ ?hhf>Z6pGo)4ˤFPYT4,5yp؏g%=L? 4?ZUŦe:8S__gkd(^O\comEҞaWr%7sJUVgu!PrjC͐mh1mQR1Zڙ(qHx 5h"Rzc )؂]}Jy3UI[.&(4Nd1h֦CB%*u\k/ږ4& }h捔$+Um`cmHHPԪ_TDAڜDO Z$Zb*8yjA0M=f,Z皉2.oF(גo¶1w f³L&$SR ,Q2՘W.-EQ{2G4+bf{Ȝ̥8)HCŏ%fvW=M`hL0u7.*  s}۾Xh\[F7~>񷉴|8+:wy/+~Gw2 xGC&ܟzsZK˱$zF7j= W\ξ"'`sksӹg #lm= E-) (ۋ>fris-RgWYm@NL;n [wv7^t?1Wf}d{VgkRnXҥ̨so!s$pEa-{3ѕ~K o[V8Tq_?zWL zSN+:em 4=+W#:yi)Lrm*KݟmN:ܞ#C*wVSv⥣64"@u?bWYHPu6:|}L }d?U1_y<$ь+BteUwF(408$*6k hS%{tR7w}Ja8T2$a85!7Rȥj/5-tm=Ea&)2s4)oǥq6|VrڎmI~L>քT&q'G]Ngw}ꔽkЩ8IPM svW+ysQO-[w NzgxeDAW=^+KxVj|/(Hn2z>*zO B"yQz](Hwk_ۨ£Jĭy9htU+"´ʹMjiyAaָ$ՌE2AX iإbH]QLCwQՀ:&&(D&'O`(J4#ucZu2RJ($^Z$%ݗ+:3U{ї)m:X}*^1f55'M=^գ$"̡a3$Ƶxdx YLOwy ##+uW:׈fDZ5xn6VyPmi0xcٜ>\@[9-dd&:mARmqփQc;P.md>2بF'Σdl@H tx$l#'-OgۢE|wK [ [d#kZ 3aGjSV&mD'ŞWXžvJtBqN܎WW'w)mIKV3V:#xfP;fMLBQo}+Rk9niD-GLJCUV3u|׼@is\DT[Y1ͣE?9ϥAjg }ktS~>*OKKq^lWseakنO~rx}+Ĕ/5RhÓxQ،!tEk7 QH=kIcnzUiN+#r9Ոg""<14(iK,pMScMdRE`MOYشs4h<{PIYGz\P0i@j}h[ːU 0* 6Q<-JC.jEZ ()J ;m+pANjU8⨕9"ifEZGDžNsH:B1M#6EBS&WR78y٬Ҧ "dBs]4gy+DRZOZt+q%隥EtL,i0+qT%dnz;u֐6@5AkGZ0@GQbHiXr)1"џp@#kӼ8-(*=K'$PMo0+e!ݴ(~:w"6vao|ҩ5a-wSSs{c@M3- {RcJu+_]Gg was^ge8CҦn%sy.Mf(j3>"ddʳCT,H, iTϱL"9 )l=dIé5_ƲەWir^=*Y6皆Wo:g88kG]ɭL:k/?fYO"HCi!oeF$|[=WsLN m&X}Wi*E`ⴜ9{XX[cs&ҰcS)(էڱ}լ }#Y5e_w-/-*1l D!Z_D[3ԥּsNMh_ :]11DOAuۜq޵7=]Zftjs"gC%\u+٣?B}+t#F"*@թ LғAfg=FJ}+-ՌΈE!Pӷ5/BVg#x}k9Qg# .rGb0u>Yb0"6^* )hƸI5Xj<&jП]jХfzQWa{4}Lۘ~yk6&blLrqWsJ~ dSS >/XD~(G~Uf*x~A$!&FWC3M#4(ZP1SqJ 1!"*"$&Q*Ȥ4/ŚaV[14Wω'ZM5F \g -ϥ &׏?u |&$z {'H7(7rs_~&1-m[ %hҸpn=,?e[jXT\ےմoxYM-<סOO8jGr`J8*gA\XwzH51waTJvKMH^ԘG' ~1a6h`t&i%DlW= |=k9{Qg#+oGb .-k]u!h_kV3j̅T Y6E GVt g3Dbt?Z1+hysr!J"ҶڷS5ԡb#='B__סA-˖?V<xW~._1g?eZk>AșXɥ+A\sPPzo9BxSvN5^f $Ej)_i%QI5՗О$ɭDC؞ OZHُdh81E]Vŏ#"+30QO v꘧`UXW&{S`Sbա!sUs4"-HVc% 8R`9Nj\Pviu vƫHk6 rNkg_V(ߴՊWНP슐RVՓiɽD=*uCEQQܚ!aR~Z:STf;dV2#&wi&kʾ&'c<+ =MeS=83m5dT,qYIfCv^~lT{P- v6xcKB#:xM:Vi\Ho3flJ$`n9g'(i[f'!rj$C]-tPdĊJ-ކ\ޢ?=LV'Qf+u$MY#I"2U֩\GԊ6LA8PJzT0Ey9T(^&nGҥXcwN ͡3{}DeG$O~kZutg#δ=#>$IW;}zϬ'Ɏ@FxӉ:nc5u6gɬ˭^/8Pyh<\Ҋ-CW]&FYr+^dnѾ$W7+1~NOyn5&6--[w0,ƚJm9#khE%O53El,֦ř7>!f8kNA=y3Y=)9&g9'dA`+}+ӡLzs@Gr=iٮ\ ]mpPN9ly]ى\>𑓖8o5TMaBWU;v'd}2=j5bN"Go3SۆV'cҩ5SՈ6STORGtiGZHHxZ~)7/ZdvYdi\'& 4ךn[4mɫ8-(ii#FIKP{hpGV!5Q/ɫnKaLX@1LTHS$MVRLhri'ɛt.**@3Rf;Ӱ }6(Hf-jKؤr஍%U¶H?ZT7/JZA5t9Q($TSmC" ja ux[NZbsiwdWDHdm֫ɞM Iا4%v=xW. m99j#Zr9P=v3gHƥqnIh5Nᰵ h̛gֽ+/7MCsW׭#8yҺڼI +$4'Gi~(j=gSIo&a(l#lc3Y7Z~xsZa\B6f+6Zؽm/˂rj9`$p9.MJ`DLXH85kДMK֡ XjAb@2՞}0zf],qϭJ<;/ $3f$NR+X͡(=khx>+pW`޵Mep\T=fRޕ"6`>~wL~W&m&02)7%=*I$5q]23E;n28j{ى2Wki~~jwyk雐fnUw?KîZi sHS(QF)Ү蛎lG@E-̤OV]1ڻΞ.u%sS-˓z@&U[{*~徕mS޼rnFic_"c=jf-xU,8g}K6N+2y"Aʶ+/?aE*GpŲOjn*Su=Ow';j+_G쯭+S׼!lRy1GջPXԔUH<M3CFϢ ecIj9(&H*fV!jzSJrv86u]͕0 rEZ' TWZ. ֮ʘ?i)\ɻ7`'@sG?Zq)^gֈM'wY=kϾZA1~`Z^#I뺶I}+Kwš[s+FrEvۉ5 ݛI h?mS 5N!Ϡ* 5>Ysڼ'veR FsMI c"A+SL6 l!z` VCK =[Ee3_ԚtZl<&+K ǸH9s5;22`OӒNXёۍ|:NZt=*ІJr*`5J6:T?ۊ،>VW[e]~+]h} fi(+(ܨ uלxyǭJV*#QZmǭ6iԍٟE5 {iYޡgg#lRkMb3>M`j0lzVOpz|֪ˏ^ b:ksYoSGّ^F9O'Zo9Fҹx"3뵫?h7.qMtZI!ڡ bU#^\,Bi9& #rjҶIJI2M@y5&"baFF|йue:ӷfCKTo& &"f)MV'"9ԠԔϭh3EFF(cCX8aEWmIд6,Ղrr~`+~2v095W0\㣖Ԍzk%n裮A smvvnEpGgs՞.Ow) ?|+7&ɓЮcG,i>%7*egC 7h#}ќ\G2=ӕ,{#v i!8 Лi(:gޞv>͒aN?zb3tOYw]4LBM*yz3NI"dG!=ʹQ"pZn2\׏ڿ]礭r:Ɛ@kdK/PElfV#HX2Ṫڹ@%fV<J {٬['l[=~O:Ghg DXW|G5IEB sQ>W=]+am>m=SiDH<8SsS[Gr`}]bkG%3RѪf|I`,ʸ|XWd䋶|>jzDƕEt6#NT17VCl_V|=dUoݱv=SV ,j?*J:)#Ȝ=qUs֢,%0n)B#-M,hhǥ vMPbzQ$sYd"lERriѮ欘+xUH6đUE2AҖ(4 b@ *]sMo׊ш`遄@.ЁvQJ*ЅsIix4tBrNj$fbuSSVW&S CMESB犑': :L-oO,}^3orGn+9&ke&ҭJH*V[".[njnMu5ĴczsQ1&ctKc5!9CqȮ6G.Ʊ:'JųD;IVw) ֦[mDi2R!j%ż|}T/fjԴ-W5eMvEsu%=R,vevoP7chJlJa\5#HuxozKp9He  v'f8#|mC1ǭp<ҴkX79r*IߊCFI2. Y;b6$3,XfF)T`皋NqHfR;tj$%iͿ壖jI"t;S'|Z[C;]pJ28/WhpbF*,w<ɽqIyY FcBF(Oqt9CmfSwWdbgf䣾dƕ$ Y(uHLBj>-.v ݱQD_lܙ+hT^3s0w3&j Z0B zu(fWd8l~3ݣx ;m:|ɴ,=Ocx>U~8Uܮc|pk|4J2[ê]X*ptN4Wi!jZc)⹘%[\C˟:-\ښYu"җ)Z#ǔ5xeQ7tN+NA-Wx{?w]Ї MbQB^ 5x5oD4{]5Q*bD>#Vd/t^M}`Pl֢ZD5% jddK j%{?2Ū>PIr_f/T ,*8"T5xv.\57&.jRjkָEBT"օid}k;RRGn2RP!ZN2k cHk&hSgԮi5EcR5Bb+r:^sfD-Bs]9㡑|I6G?wR-͛LR)! 9VıJv1ckkyq^;e2|YKcjmKqƛ:8p'MZ͎TR3i[WYE_B;[U`,-cבϧ NH^+פV9ߴ埈`M-0Yd ?UѴiR7#5*5y݄?9&t6.c" sFvnF-VQ:U9_Rm܊F5fUW 6/'mSHɕ|HC\wm;OF\d#je#j̿ZG^A ;f;}+nK"r0sU$<6vjTYH7ý9 [z7֩杩C?seJ~c#s7mm~Z4Uǩ7ԾIx႓bCq}aԃ/[E+J5ж׮5jyM[4!R=[R4Oɫ@!cQI&PX&*H)TsRZ'-NJ҄l\Rd1eAS qg NU#RQҝZ(҅4Q"jxH3-J3E( PE00h@t"cHY=MK@-H)),$H㚆TQVF“]'}`rvWfI2*Ah10hQ]L*N4Q"愆P/\s"pF+ʢ*\|j+[ 5YZkg1<"F 3&j{aR p&)G(d8g]6TⲐ;ϭw$*z|F^H:k;qxq[1Dq@+˼mƲH- k57S˩]4ĜS*R'bE\qZ"n8HH(| k6iOQsAJ7(c.*$i= {TܲEZљ B{` ySX-]evS#H}Zg}x'ӥtN1}oJGU,uյH8?cSCHfJۜNEL/9M'tOH+'ܕFj@9OQSH ]kij:LHgzfsVUvjl)k%q!1[ZARb^ #L⥔ԛM IIDLj6Y)x=0@ЭMM(#U2rkqZ Nv &ܚ]mҁɡm"ļϹs3Y=ʎ_PٴPTfU02_QxV4B *g[B9]cGJc%!X7j\n´̓tAO2wpjؙ!ҫEK3F}LnR󒍓XtA'SwW'StQP]k&B V^2k:58Q]\TOh 6iU^FI5f@8l8,X8Z1~Me7seow5"iqWD/Q[%AT taސژM&Qbi@4t+T 9bU3͎%vJnYT#t[4!HSf1`cFVCCRb Nؽ)h$rkHP4*+QFy\t?pKSẠΜ.[?Eto%wc,'}iSPu4$fBSҏGQU`Fi|ޯ 9kJ?e#<67X\ ŵToj6f팧flZڡ58!#-w'7vغ@4 z&Rb I0<0lPC+)1NՉh{s}+BdNcZe#~;3HΉ9eʑU+|7k)\,-^mR6gZϿ {|}E E~) BֽRu)")H݀Eya*3]R2U|ׇngd$w̖^%oѣr{mGIN' zf@QzjS-Ǥۍ^o31#ָԵg5 svWNu[נL VƢU~^Nh:t5r.cMK7G6n i#?hZJ}M|&t5fzufkjj j[cg BZ$w55äy R͎6WJ>9ǎd N2h\4+Nhh㩸)bhcuy5L43d60*RZ%M(KCM%ZCThj$ҨH"(SVlpkZ[LsK]61A֕wZQBh9)H 5]z&a$txrWm_BXM4i`)ɠz6$#3T2QJ^sX6ose]#pAq/F++TbC]} ֤Hiڙ{RB&!9ۼ4* l5VC##׋c ?6e77C579OZ71ni1if ړe+Y v&tr#ͻ3|'5t69$Bdl/STI|1HQ ބ Uk,?:{V[Sv)LJ*@qMh@hOAÚSґ(S &ZO K#m  f@5 |Tmi DVƩ#֚Wҁ&ORGJCd#&>mhAM /{PЅT5*JHo&*+*Қ`FkIl4l6BSApM.@ -N\L)I]4Lݑ~تKӖjhrF6#4]5sinG!POJ#ZTQ2qwrWZ:{Ehn$⑉L$04I68hDiY*$ZD;ҧGyYQã~?]TŘ7~F?:zJ mD} ̱v&)xR V&!@~N\+W/׀5ҥxZE .)kX9{=OlS{RmO~!xs_}cG)ڱ+亍5bi}<:5 +|U2ry_;+Xhs7CWwޅ+yY'$d`jª'w5ZiW4#:gΔk #:5p޵4Gs1>B/Z#GSY&s C=벞SBnNKI?2SbeR5N?hy hvqRS!LqhToxg֏Fr{NLj?W|NI{cL-I.YD2<Y]I0 k4 "?ϵc"M.+m5?uFp;ab#68֠jk>)I(BY2)}`_KLϩK1U}4V:7GZZjh8[#E WFխ;ROy "iNAQ]jtf5=x"7[yeP 0鷑;H2Nk^&:N21)|*#i2Cw lT"Xge|5ڧ ]`y#V;H\+]U6CuoBAYT`z|OdZlןB|Ď2*^+3?uwyXn:#)!h.;&3ɬgc-X8p2k2a:5i%2;doI%8LpҩIl>aȭosM-Mj|%ƭ_wRZe];$UnG ~+hk$kfܚucu#3nwӝ'FF܏~]~N~rj %cҕzZ"C3i }g!P̕VjS eljdj_AiICi(Cl1. Q" M4p%jb@"&(ҷ ik& 1J:԰$6U.['Gr4͚0TF)1J ⡔#NjXU$z&z-VOsl}3*=7E ̸I)pqb+=J iI1푒K8-L;Ezvd+qQHjJ!f%j1h^y*yȮA~jt>zRҹ☓Ԁ8}r6T!ܚ+u民q(Hz)ۊԡ!ɮ3@zKseP B 9̟ǣxzYKm2Gkگgw948;H%8/z1œzU*R 1֛5`i 1|THn*\5DA"e/jڣ,7<ԡ=)b ՈH"C5VHr1шBd~EjDArjER-Ub>,pr*2㨮Ϊz!~,:cҢF,.S[)#?Z͢Kutm7U$Cedixp?:qN):ДZ8{ҫÎ >MOc|.v[iקc[Y70 xeZFShLgE(hby՚oso^.{FZI?g*j#Eꏶ)Ey!&F?CFz2~Sۭ:цsj4Wtr+bžr^E9%0(4);Kteڵ%سO;뺐41'mKnmݾ;85䮗l #yme*>qn G E8ym^3VY :rU#cA{|$k s^ZvpXWV2UGJ%j.ZISqq<Qհs^KAMnqRN{t2-.j# 3_ >)COFgUZd 5VUk)E:53n9}*4pcTkrJO ΟEj*ƕf2w5*|&אb׷Uڊ>vo+{%#cn? aprwZ[0&%ЉFsJBp3T6P#!*R)R編I]1CUH} !r+ꔶit9jW}ұ'p{GC$f1EK܁*k+G|[֤`ۆ+?5SsH\(Ct}F`fڳlCHD]VV<~#HךΙk4kbkPަ= E5õ޻)lq>8kV(9R~u6?TmNjUY&<։R%J+DqHjc&)"a#qTMD]БUrI&1W5 nhHVTVCxȡr\w⠵sApF*hN 1$]=#F2ӛiq ^e9N#)h84 rIqLGj-b}hJ\ӎ@М'4$5!Ɲ`UX. r{>4K$tZ֞3=@mSS]f1VfUS73ֽ^m7m 4f֑?x3ScTYWe\ |3 AQ'CgW&IZh$vx2]뚂Ov@S]0k/.+rxJ!OίCE jjBjH1uꝹB$] 44 p^uE}9wN.T-MuOJPI×'>wM_ BWGE&m!a'ɦj!7KhmPzW lNPm $mbJgs]5uJ3i'&C]kȜluM^W"nVQ\v1*j &UbnE'8]֨G@[ =InkUΞn׫W<ʛÏ(hArkF[=4>X" ^b*Q8UefxJYf l`{W'h5Oxnzaps*Cst3ܚi* p:$IZFcLe1`  BsL`k1j"?MxJfWHk=>OcQףCt.u8m O:yܸI'#ty$ΈI܉U)5t$;QwQsɬˮR)n؜jjl%rȮ`ڋjmS)wj潜~=u1[L\9?JM.$z8">h6y%)\.+H&қ%Fjc9HjYfD QHMK) 4֑,iApi@ڕN N4t2uKLɅBI*' +sҺ snf8c;urFl eIj5)sB,EJS%R*QmI`5Mh4!-n,q9W64Acڢ]4TdfJq"P1RB(EL6tx5y.QWb3OSM'#f59D;¸yO2Gw(ijy+!h5'`8iå"CCv=k7hp̑;7Eiyֶ͊96\ x=:`'E$Coe6L~R+zr0<3Ě֫%9lNIN@*jJ&l*E<֩BqA5Rw%H($flC)\Zk`!$v7tv^tI8^gK뷄t2pwlʢ֗!NQ!u,EBEjp9z֮+]qzKs>tƠz2v&LCVn5Fa{W[g#EbF]N܎@5ϨU@P8 yTw5Hr~ l[ Tfex*ܕ~!%^'W}֥6>ZKH~eZBz֩jr+5#31֫4JvFSѱK'ںx-N,ĶI騬\L҂*c;Hc1Ć~4!i X݀Qz9;?۝!оh'=לk V/XvTʠ3lfad:s.*1\l"5$6[Z҆L9quzqI$Vl5zbEnz֕龆oCZ$ȫ-YiަƉ?ei+N&*i۱j졞|)NX@& wL47sR Kz2ܹI)rsW4fse3)a4t\ SA\xvZt7^5QhJ4Ʈ%"9֯VД( [ hɰ4XPƞ &KCH 4'PWek90IZ/ͪ=PΛ{ 8G47TL!oZk`Ws" ؍vW&iN ڏQMZCa=QLۣPF0zЩ̜yxz/DR~`;iH(r9AvB1}h%fQҼS7xKH;]P|]'p;qTzi k:߂/e B1pTEwK#wvh+;3 O[>ij"뎇5pp"Y|j"r#6Ҫ;DP5zǙ^Iϭ)L?4~x! -0k5˧+TkC?l>ʿ42Iŷ!"CWVZ#$qw("`G4!q֠LH+9WsւYRSj,n>rƅ8ռb MM@jlJ#.=h%cU3H#-fNFaE1x]iXB>@_̳R[#!z^ 7Z$+Ij&)9₉H8Foqۍ&CiN(@8HOC܁jPsL鎇|8ҾFko|]t$I/rEjݜ>dw+dvָO,+ wf d5N4ñhɢ&5 i$4bdӦ%|stғb+)r` \5CI܍O502IM&Yk>\53cTrI幢+Px54EfVcTUQT(Lf?SJ:WA?"$r6jMkDCDPTuAsL\]̚x"Y&ʰ}MM =5kJLMaUڞ^_4xWx/+] g NFUHV&XVJ&LM8֏TAVd櫑d !]oSW \$Qnue&R9Z5Nխ"H܎3XDN8")$)K:[A Sv F^:&EI1M!CdnUFŸi8I5QvdOS#S_jS1)2|8ЮzV$5H^jz\Wr˜Q䛨6Z}SA&+䡦%84) "Z2 XUۜR#U((l)jj62 LT֧\޿Ƭh:#8VGjf2Tf\R)&QY՝Z N HϽ\]{þ70-5FZl9!k[3:>#O\hEcŐ+/ Lmoc:4)u̍Uyz?cuocfܓ_jxMOIUt***Xd 1 'z|9Ë&58#5p{^4ND+Rl|gV.Чޭؒ.^GWcoH/ ~|-ԗPVPR3|*g3ZAw!d{X1nsE#F?m=W 1íIک I rh.LW9T!p9>sY25oG7Ѧ3bf>,Ŗ^=Yay*%hHje82iâ XƓ#s̟֜A~"h/jd֌3~Nع9:ckĚ]ūi0b}Q<#0jm Edr3W`zO?hqM 8Ufmc#"|"bcƲW*1#˸/מ1l}k7%sd6Hƈ@>]i3ݐJz2PT)5NE8KC%Y1B=+k|B?䷿JK+3\=~0ߤtK^iV:.1ZG]6O>:˿c\𪱉y"Q_'C{mF2N2E{5yqtUHqѦ֦ twFr+&jqg;Qj5ͣv#N;Tئzջ3>AǟScJ q\O5B3nGZ brΧNԏ[ՠ+|?؏@vsW]V=_*>5g-$)95IhfWdfHrjHH,kJ-@81TXi⯡H3Bi Bgҗd2*YH'5|>k~wUi?Rƈf^Zw%F#h!ZsȪ,0s]WkX?][x9iؤimٳP|c:5La#t4rj\b(҃CK֡%LVAJ9OA F( .I=kDeˑZnd G+#BTcSDL)xDKVor{y6HȚXu5[FtSG;e{db|Uw?zk;ɗ;p p$V՘ZAȰE=O5ҌG"ȸjs3i{)bUWnp֐4Dۅ.k;+-T`vq\hj;[J]S$ckAJ kr"V%OJtH$6\!) w?!ʺ"CǦ;J#UnU*z Xr݁ j֡o31S )4l:ʳ.llu)3:Z!SEfW5H&4vzʭ+ ȓtJ~Tv%!B iqK~uK`0>N]4wOБ.iM(9[i٘>to A늍`ijaL pҋEy35mƯ|=կHE_?W4Wy}MV}z܂޵-; uPay> qokHnzeF=*YjWZH+Ȍ沾c"RNyںf2:O xWmrE40ƾ9NŪE( X{jJ3tdF}Sca=9eeCq+ߌ_Eih9d!pk Uѩ먪mGk 5wխ*ꤌgֹV2y ֘:2ٞv3q{Ȫc|cыԹQ[њTإV?We6-nJ uMBś$Ƞ}}tς8d}?t7[L=caW+bw'Ϟ}|7{֌A1$hɬޥ$gM36ȤaFZPMY,bmRfi4iB`(""c-.3֞ E(:2QTHRDNhzV2miպ2c2CBܣ#@n xR@8S0iTj+! QmF- EJ is^EHKzT*n;X޻U6xH5e1iIimmc:ȩ9ǩZsj4U;L˞5Fz>h!j+L'5֜zS[ 1Mn K`%9TdD?Jθ~`"g&fryBO&l Jj1D5B*:Q,hg75i- IH Zf-j A1*zH 8 N+DKDVM-ZC|#vo$cp+hmU1ސৣ6l:O)kBqRFSBe_"tS{#FsI+IPPSZm=N*J{a5ꄌZֲ8iⳞ$Tq6ZzjZAyBCsJ%4J8fD1bOSR9a8i3"Q.G5k;NH, cD++D5#52 .IsT 5}HE)bjn*a&]<ᚓɒ_&~(D aUiSZ*P[ JoyQL#!FMhϕCKo"ҶKC z'cQOt\Y}5|>j m k+g]8)E'F{cUԏ]{bVWAyAӕJ|̵R1^sѝuv3A5f(]'$l65F-i'Cfyu{ ĈpA :ZpR2HvL2H̀in&1X4s^LNvn95=M8O2LR! aJDɣ@4"RFRUEӆ{ҹCN%!e"g"[&;5 -J-օ y$$-"g*j,V9 u)15qP" C$t4@85tԌqZW3+hj/'52K9Tԃb[:V)&LsȮ-1IFC6{52 j"&ݛ v߷rqIc,;s*9iZɔR{#4j3I]w,GJʹjF)9&f"NQsCfSP29qVaITKL`І/wy5IuT¶1kQcN5w*+Hx┾5IzWue!汾?G]KTm&u4QOEhs(SMb'9aZp憋pBbPƑl3v .jJd6Z/S6\GӁECHLr)L J]iػ:ooZD$ғO4 )1Z9;REL^.bIH!?ZcCJ"'ydPP͌)@5A H#U9CҚ]! clw{4ArXΘdM13'S؇P1S<i9p+ cuDOs 8劣1VJܥ&NNY05r3<3|TةJVçujQpCgfj9]cr#Fr0+G\[fa,R9%/?"nn{WšW4KSbG'ζ;ԍG|ylGd+I{[8xۨGarKg4LC)+iՌWUTg5$84BVg,{;$lצ;Iy kekrJpotxY_*g7I:L8m ^%089^x-/rCՆ5IxMGR7W8R140Aɦ i GZ!h@/JC5"RRE$lLTfŠbC`SfÚ4e؏5Q ?t'Li=k66L)i!NZ"Fi}iH rwQ jXY&95Q|;M֢Ux58Q68;5b/52THHrը"Lѣ-6 ֦rdlzWM4a's74U4fF55,WHKf=AVOyI(y=N͐3P4vr)2dM͍݊ g$lG5,R ̸27Xm C*i ÇZ~ KcܵIi4&D Z!0j3NBQR (LwIJZ'Z #qIta۳M'U!ٛFI`sG=i5.@c956u]yҞ:RfMiH6,"mS52b:HyRF#)&+"*#Ӣ'i>1Ҷ0;"KCYVnM!ZwҾ(bMۚU-?oj[N۞h]ҸCiAC;.3A6U mmqHG64TRPBt|T3le9#5F_,iV\|ٯIr>=A= j3g%򪲜)#FD<8K*N qY.P *);"õszޑUkNY̎SNuO _-͔FZŠ$p8P?NK50KciҥR'΃+oOCYcwx6ԢC)uog-Әr?:u]Vv5j]ֵa[!@3,/بM%-)`ׅEq,j$uv5gz*l<]ȒQ{py6{g><]|@z K6yx5\G7Cr\BAgqT몟xsUlV 2k>w,x4HHX&"]F44hLBN0g P 5*R{ nqT֠ܙN)Fl((LES'ZV%"Z1rظ)t-:Hz)524lTwaÚObա < Զ+J6Oj-&EvԪ6[JB`d;k8_Zݒ ܌L#U52RZ欫b"`:ѴV9 HbbWmiXX3)$&Ϊ*Z)4!+9b0ގx^) EȤ5iǀ5t4 hSap- r[@5Fwiص3J=H IE&)qTm.d 4I ⧨(M]|`jnpJzM4ҦHj&*1M.r+]G~=Ϥ-VNfmXtH #i"&d|ɗkh 5Jf57G22k4'e cWB1|(_[Gy;!i=lul] ͷKOG;}@)$_~M&vr}ku_ n\esM0øQ U5orEc JWET&q[pߺDž=<ڄ*:w"R$D֩Yu%+_'@w5b3LcV1f1i MS:iI$M"uGN&qNh-(>2=+Bظy[#n S'5- -4P1O42EREŠ)du(4" A{HU6nYmAr-t^kHWc5:r*):Nj&Zf6Ρ =+<޺ki(2*Lf>rbRk/7zćʣ-EH³J"z\8-1*,d cUIĪ5IΡH[Q籪E6AEH%D\*hcW9 "lmw1аDt[C"2FNG(eM SV#4g"]2qZrtV#}Sb pS. a4L^'hLqSWDYR=kݥJn[٬J%a)\OH3FRbTH6ж4LNHiUؗbjFPlU 4[R#cRBHh5C[MVWu%jmTI{ACXc :haSAZ>\XF:ӱҘeOڢFء4[\☪ CbL"dBRE$`n/5ɦɩ吃֩&>5NC/sh@9=O5[PjʹdSfTkpWE'>"e0;CUmLM7lbݴ)q 9q^IYAO ycc+`}!ٟ7X2#qT\JخȈӀ1Κ{HVTܘPJA9ZLSS%`ѮȒ{BDLqL뚤; 'h<Ձ&ii&)f!qLRC icOhhlibextractor-1.3/src/plugins/testdata/matroska_flame.mkv0000644000175000017500000110524212021431245020564 00000000000000EߣBBBBBmatroskaBBSgnMtMSIfSMSTkSMSSkStCMSTgS{OIf@*ױB@Mlibebml v1.2.3 + libmatroska v1.3.0WAmkvmerge v5.7.0 ('The Whirlwind') built on Jul 8 2012 20:08:51DEDpDaA*j{filesegmenttitles1ZTjѧWTk@@ׁsňFࡃV_MS/VFW/FOURCCc(IV41#ツ$"itaSnvideotracknameTTD CuG|GvpY } @lSa1swyyyyyyyxy8yyyyyyyyyxyyyxiyiiyyyy9c9yX" yy9yyyyyyyyyr0<<rāc[c.Qr[tV \+K1!sǬ9Ma7Qdaqu$΀<⌷v1t3Uɍx:1΂4xu{sي9kyO5TXيؚlb9Cn93 fa57$Q\7\3D*o{K9k cm27njG>7gqF6\@FK>xs \y!Y9+6U"FyF >lhT'Q8?g5Y3G|AnXGdjrZrVles𴈐ʋ G;Plł ȀȀA@"3rF2sE20 I3 ɆZ `@$dba`Q0|9Ɖϒe#f^0Fa>kc.HnI6b'XH`ᣵl-_:.$7:OiN%N}P\'k&>&'|fn>asN|vW.>p1|~vG]>,;yNNs'gc$7\=Wͧ0xܝV fI6ss\<=%;.F>ns֜7Oyl=rRny_,Y CA#Nd"'+q6oQ|xeU)WKV 'ԡ8rFqH,bb+b+ŦqM1rȋgO /Ycbe䆕V:bSސ ܾ掝/,:*y^/wOG23 YD @y08#G$XMKř2) $ 3+,l,, $H$xhn&J^u4;4r." \qA20lɀH $"A pcՋ pcՋ Ver 4.11.16.86 CuG`GZTY\3]3@|`r@Qboyyyxyyyyyxygyyyyyyyyyyyyxyyyiyyyyqcy)Yg9yy9yyyyyyyyy PGqU9 Xd/F"d Iy|(xUxEtl3ơXxɑ{;n&c{y9;$kLWu^m/IfmnCYNf΃A>ʩGQkKlb)}j @gr,65^EpDu)Ks !s1:$wPd Lඋf)n2xɋ<`xbe R^8RlJ12׼'ޣ$Kq^yO#;s{I ,J!aW/bև<圭;ni vP!ED=/yW;ϛblm^Y@\qSV dVs^+H2<5BNh'2bxU/Ax‹R2yજcsH>:sq{U##/y<d⃳͛b*nE/+!Y<%#ŋ V增<GDW!Z~GG0$<擑\6k'@>n =X2>69yes[^r+=Y9=q|!FAO}48y┗'xS-O?1#>桬O1!OWzV|>Cq[#'|b-^ <:"D!ًyhn> og>4j!CNx9[Ŏ Ȁ2 3 Il\1330@ BZ b ّ@$@  ·QvyC&^r,Z6'x~Z#JrL,  3;+ ekw 잧b;4>y(|C-s>{cI:t3rg\6hOW.'a||yNc?6w\}0E!||zz|iswJ2Gͱ˳@|uL|͏ +6G3Jnb YY-b'8.+ŮpM1O<1Jp\\M2OًGf憙/ ~/wOoyQ<=ج3nDVd@@og#(D#3023 33,, H H |#^0<͉O#W@ qpu0 Ȏ @A pcՋ pcՋ Ver 4.11.16.86 CuGt9Gnh/YĚŚ@P`P@ar1co?yyyyyyyyyyyyyyyyyyyyyyyyyyyiyyyyf y9Xeyyyiyyyyyy>(kb;ce/b鑅Hb)9XMYxVbFdyc0"#S09]D1r<rMpEr;g,A>{oYVې>"f2sNQN' HȢWr|D4DN\5;H5',QCZ,Ҳ!kѬY0\X\3 IBvp(b؋[6yr<㉵؂4xXEDžl k (Qtq{&^JylȎ\αِ.θʑ"&~*uKj[08`? V,x>=Oy?|bعo ^l< \{Xp%ל3,2^WGAq!4zOt~dOc5hWI>"ۉ/(yYt񑊗rWb_DYCbO#E]ܲo<n=ɫ f增<WGDyQ|yx C|XG>4 dhG>|2秬G`Ӟ2Kk4く<@4"xe`k&>43qܱv#<\#ŧy4|8< 3rُӶ<5&CK 33G\ s)_`K+ffd9&Afv `f'(r5F |r<:<Spg8>OqvȒr u >9yg, y|%^'aOVnkyCYCD|>+,>ermp̧ly:pwcr n@$rx 1>LXq9Kv%ev`'fQ \{sqR8?$3nO0&f⪸Rnc⎥>,+G\>hOo.B0W$ +4"A 3ڑAZN.%f+,ve `fgeF @&i$@G6*N˜41BHLsEA 4I pcՋ pcՋ Ver 4.11.16.86 CuGhVGb\?YLyL@{!+ )<*!Zyyyyyyyyyyyyyyyyyyy<<<<4<j1kFLD2AJb?fGُ %$j7_B]l8|*ez 1RRI 8Q|Fl<1 O5!sj`8Yǒ";#rD̙@.a@ɀyHfEz }1q9m .xf\0Lp1d6ah 8Ti0q28qCP.%&L2 gFpGү8'!XY>>ђxC>pɇIfh OB P\Fzyq>1g7g|`л|)C2 (3B3|%G21O>Vx]dGG]cI]2bb>I[D G|pr_6g̘4Wl3nZ`|Yq~̘x]Oʓ"܅vXGv(_7?|n /(>/Ieafa/Ye>!OͬDŽ% 3n3 =ӉzbId֙ wq2'v9]8r.XXJI\2Q;y (ctsO >Xj|89O>lqħ!3I-!NVHdB`$ NdE+Y)[c.DtzC#$j0qX)Đ!1OĖN4)+"_fr>h/HܯF'?,^ dh*QHA@ H!HB՘`Ow!fn)<̔%id.y}̆~I7pI.)l,BaC%L7ye!C)=K".yL3B3e80i\ƒ z)20%63z pMp~F-a=@z8`yjq,rx\"Oz0=&NXLeC9aeq9`mY9C`cny7sBaG aIa,ጧKc"HqDf 3jQ1gl1q%1!ODO8bHL,X'DY'Bbǜ2L*s N!P@!RD*(:IH /g3AllR̲'KG9!2!  J'Pq)g2(Pg:6Q|,M>qNLbf|){>Kg>a,bl|\ ܄䋱bCsc83#~ꝏ#$`Oe]KV,,)]F2̄D̘ &ggs7fXY8=q8c6DncUPanfWL'@jC?[xYh||G|O-sj&*DB'PD EVʂMb*1 &VL(DdELr׬2pe7,h˝C~?nf2 ĄaJHA@@ T4Y9&D* 23DJ(NE@ R)ȷ%n ] ^>qE>$ ցHSYQ  H@ H@ pcՋ pcՋ Ver 4.11.16.86 CuGl灏Gf`_Y oz o@{!+ <+YyyyyyyyyyyyyyyYyyyyyyyyy9yxyyyyyyyyyyi(yy><O<<`Ԓ~1&J"xώSj$,3 0̬̙&I 9=Mdb@"ZLh:&҂cSB&6@{ TBf#(#Jδ!KN 'Czfǔ)DzK>PXe )S4aIҘRfc3!R5#!ѥ2Ȃ<%9r˚UqC ^ DY, NNM&Zb< SC`e93Ly2 全P„"O#728n>$KeaL^L~6q}|e`CP1XX2g\b$1 Hc Cr:9bx0fxabN @`)9ŒA lkPz>HcO|+ޗ2+>Kab C<\xXC>~;+!H^lgcjoBg? ӄk|(dȧ 8. "fLjq~ƧSbb"1 75t.g' u66D$*w(bbD&.>QBOH#  [H;O 2#:k*՜AM|a[:4SH!Rs "Άš)k.3}㰌KxX\섣knh.|bG Ù+v>OЉH!"H<3%s0Lh;;G);dbOU"$vi@wG V/ƦU8+3p0 / K'|ޠa2ǝ,ɧvĜ]`HcD")DD* 1Ij"8Sh0JT*CFGnB_<CG˸[FW z3wO:$+H!)H@&a1ј\nY!B@ i "JS T B ȷ%p20'EnB!@ap:!@@@A@@ pcՋ pcՋ Ver 4.11.16.86 CuH火H~xoY:u@!*Lp`qyyyyyyyyyyyyyypyyyyyQyyyyyYyyyyyyyyyyyyxq˗s<<×9xi˗ 0ghxA`g9y8 EpoFI<.Da( )KS31*s0+38tjD0;YJ !JTʈ픛JNJ$Q{L6Q736!0IRDŽ%c<12=%QCsf7fÞMNopĆL Ą#Vl aN8:)#T}L CDvA3C 20cƀ|<sN̆J gP$[ c|zj(ʰ-&ũpI.2眆!3$dr`ĄL`C9S`53 3bR00L]*$wdֆÙ d$F ̻n|=n cɁ>9y+'Z[V>RZ3a2p0q6Oò;gO~j5nˤqGKgK1oƞ|c k|lccj |>a|e a3̣6D>pCϋqpi`>}|l+X3SCd|̮`cb"ʼn(_sJacMYS2SH((t +T:@$PR L:ѻ\~G~~PsK*n8 |UmcVwV0|)]yÇ_/?Bi _3 )'1\D?.C|!a9}o|b>ό#VD " DyL|Jfy1LΔF680aVD#0/01?+p1=oͳ>~}-OAhiZFk~z: pvuSeѸƝŜXࣹ6] ?>ϟB>?qG| .a.yBK659%1x|'DT@A" U*MĊ! &*œ MS6Ϝl'ËT :̏x<尘a`'\N~#WSjjbȏGw{t_07&H!R$ FnV$OER$P8 l9 H0ҩ$PH  H  pcՋ pcՋ Ver 4.11.16.86 CuHȣHY;@!*p%=qH6cs&|)Py|ҭ )\ 1SM朇 nf@fHrM ;1r.32Τ&n@#KypId ͒'Yi)Z\yg*GQ2dJH{5|b؅| ȧI+zK-9Vx0x-N’Unc*=3Y髐x~M 0cC$x>3.g)6* (Oc#.x>uypVJo-Ƿ_}ڃ-jx{v:!/.*Bx]BߥM4lX#;JG&HP P* B@ R k6?jC W%n[>IdrOgJRˆu߬ Ô<}y!Yy|9 hyq)`yxi\DP#䦱0x=5&xԐ0wLHR`|&udn(3k,q1f(59LZJ5UYibA[z`>)g"!e:%nTf~tv"U:e}J20QfFTY&ɾQ(̖:1`$*a&9l-wlTV 9|̔8SX3Iˈ",ェ-sqN ^ cʰmm|3v 3I)` B#&s+py[wsD7 LܜL} XeY<1 h3 3/.e50UOx|w<*$+>b4ɘ+W|=r|\) |X27 ]|qxB(,6[s R+!ku>81\],!gv>tRlc )JL|2dg؆'COɘ3Q3g|djJ0iaGx&R 5V 1q]nf|84qǔ8x>DޜJ|R C!%QybK.MʀaBvtzbǐ>fu7>yvx&1Xz)b\^s~WvlxلRK>j}XLF#Cr <GӧyuD3w;A)AS0ܲB{ǃp(GnOl&+n N2$P)T D"N!R"BrȖ<yǞ7eR惫> \.x:r_Noe sO'WmBBw>pR6xQ{+?: ɭa{ɡ)_B\p-u$LQ:.8SXF Z(B$Y)D N! "hKC2<8]41eBTz"P3eՋ\tyEa\}op m .X`uj|9' Gl2?ʄSv/|d+av})\Pk4e=hu~ B~z8j鬏t嵙 n<0 4/pT,% /\ТR H>'(DV$H fǚyC2|0C.x~pfW˱uFck|n:K{Gˠ" XǸ`44 rҼ i:bMctmX鯜v KCh!,{6WO\rK)>֥4(XCڜ8N|0x\*;$(HpÖD JgBgBdB%  pcՋ pcՋ Ver 4.11.16.86 CuJEJ>8 Y>u@!*ȐƊ({&P{P01ax O'M\0Lu \py263Be%rl}=r8,3j 5$IshI9+yG1j)扐1S%a&N\28P)P^0KsʀS_;9 S^L0s=02M6 Cn3s€<֩P 38afg^*)3$9'[x[Wfr@ Ww\y̻T6>P-+dA)|=F G<ډ<8_- oaVb_sex04y&)+C͇ x')B(Ugc[ 28l?d&q2B1!d_ ki졗Q0ayd|quxu8̓?|Qa\Gţ1 ֓7#`She͙Uy7Zn3V=3T>9!_md7|Ƨ&LDI4DO2T9䀵GHLqj08,Sz|Zh20(m!o _9ps{0Äv~el/`d/嶻Ixr8܄g,_>iXqDaxvPmRC}`C޹}7,j@₧z>.x1{K-Ę9VNc[!4W2aE@'S(t!BPF$RF' a^!`2gcjp[;W1Mo:|r>`dgn?p7G ˋc%=.x:}; [Y\ʨ2=4Yc\pޜxM]酐Q^$,9?1 'es~484ӟ<:_ė_utV j>(Nλ>ibɩ&u0ȏqnwWfSͫBaP7e:6ZB,w-y8 euSϟ_1t1%ΏLBkKC)g#n9bNC H 2q3RшiȞ9 f~:6],dS{g삟Ɛ GoC3erH9 NK !]C0q8f,G/bg^*Ö`t 욆ÇZgVч*Y(E(W^1ѩä,BrO7Wm.Zo!l; Aӛx:t_T}L~&0!=c>D>=h"R))GY#$R1B#H!ȇxBHA$ ;nC H!@  pcՋ pcՋ Ver 4.11.16.86 CuJJ Y$:@{!* &yyy9yyyyyyyyyyyyyyqxyxyyyyyy:=<<|<|yyO8ϗ/|9xiK7˃KsK y; ˆQJa'x&Gp5"jOjc!Gu)L RZ(gRGf|ق;)!q7A4`jؤ>W"P59zMc1Abj=>\K| H'|A3(#O!>XpAscE5^K7Ck`"R2|?u 8WvnŶ\ǗSc}[C!4C+3 ,$]RMIJg͘'=>bYhq߹[Os R/⛅֦/3^";Nmt?bPk|GePLR ak8Kg>Uu|9 k=GL5R$ !o8OCuˊm$ΡL$L! TTlP@T DB@ P![cs7ZZ".cN"ѐҡcÖ4o.,W%$U:QOGuu}Eb"wĚ35S!%|%~n!ΰoO] K%~}2G,/1p}w9ٿKGp+Mg4/iYTB T4TP! |rDf މDܐ`)!$)OL5~qes{gcgx!z=ݶ65ΰO7Iypni&bXV 563eKG̈́3 \{TO(aqE|)/t Zugp&qTht)8Cɟ{/Zs8M=Z?^lhq08FykNmEQz\Y%gx"זpV )I,].N~]$AA obG !! "9Xbءb!AAB~a[$^AE  p!Ab!! AH  pcՋ pcՋ Ver 4.11.16.86 CuII:IB< Y:@{!*3!yyy9yiyyyyyyyyxyyyqyyyyyyyyyyyyyyyyyyS<<8˗xyyχr<l)YTrFSGT 3#c*qQ b%$C*X׊O*=縟aQ0nd l 5ATd :G']qNDLj AA2!g ;AlQq{ ;=< b&KBHF#D;tcFXM$6bcN$`9A \ |zV flIQc㈩h0D&lF`AC"1VHQHBñ F#˂3<9=hO3ԸIg89qH3aR"0D#`#˜2F4{#qcTYc1FCAؙeS4a#XA"3 "2~ ap]܅y70 3B:B'(bi w޸&;쟈L8`0 1bL0ĵ!cEL `ƣDP# xvB`H4C{Acx¢tZA BAZ C,t ck 51 !QV)V؞BN8G%D-BsHxЄ HbS3D#טP |&*VB !|G||HOB 1y mphL]Ss| :Ķbv xG">g'x2Z>$>xx&_j.Ո0"'3'$#a?A01$4aj썇Q!$bj \AS>(f ?>o_߅FSro|- sTB:z3 įM-%Ɓ8o~5[ݼt^5:%Tnr\=w6%pGCJ)0R3!L34?(gh9#rx89l#/^ Ƴ  BPP1 O`GH|&x'bqCb 1EBFB15oR#)깂3LΟ qA:8ËeԾV) R5 LN[]_R9I8<, Y+^ q4gX5Co74P`P/|TNF>'lw_>ǡ!@!B Riă!`'R o lxpé^ĮN$*5)WP80n^05q{G30P8ݤ7"#Egx&?xx:SߜN2LI2g0B0 !@8ń"   @ W8K D@!`AB~GxB!!H @$#,б @!@ pcՋ pcՋ Ver 4.11.16.86 CuI)WI" Y<@{!*%2!yyy9yyxyyyyyyqyyyyy<<<<<8<<<<4<<χyyyy|xxyy>|4S<@@@h4S#tJ2(Bs¸9`KK!ɸXb4BCq``c,m,,lЍJXp-: m$L8D!>g OabTba4L]!΍!ymqQ f)$ܣD ET\LA" lqp8 x0A#,Q"fXdTGG Q"2I cD  ܐxx[tƄP1#<b ;d$eL YHD15$7Cbj0E0pq`O$v0ci[;Pq%J4a9D"`4$9ܡ [,!PPQ$0A8-cD q7) E)pO Q8(RhhA*bv"",q K&W/ኊmp?<;"p ؙQP9BǂD13CDuKqP0aqJNBH'(bj רĝ:A ΅:F0aǀp1;F+C1 IvPq?Æ"" ų ь5eը`cpB #h 9J S ckm5lL5<ACl4E4ǴB:Ń S$'cJԉ M1"&M`/xrƄ1R&a1!(-=X^QvJ!s* T'ɘ|7J1`skoic?gѾ'y0UU֌'Z!RE TE>@t{tJ9ė'˧i> qҲIAL/zяacOe3&3?(\?|Û6MPњ~ ?3ϼG;[dt֟E)9'e1L&/KR.!΃r#R!!yBg :!>&H#B@@AEC1EBBBG{$$Bbam8 ~)=CkjbܦT¼Qa28z.M#ԃnDI$(߸VI8sAW˲dkDb㸰,im?`2c   BPP!4 +hĈ0DH|&x+bqEb )Zh(C\G%M8zIʜ9<:u3z1O: !ΰ ?hqD98&`}iKLO}'6^<q"ws- 64Ca>'E#%]|gH(>fBy](yBx=}m.JJI !!|sc Ѱ@APA4;Yxˈq9!S0 #;g R/G8*m 5 G1t 8YRP&k]J57Kӣ7:JN>b5%~ b0Q@!!_?Ä A B@@! 1B;$B @@? $* aHBn@$ L@ !@ pcՋ pcՋ Ver 4.11.16.86 CuI-sI& YT:W@{!*-C!yyy9yyxyyyy9y9Yyyyy<<<<<<<<<<<<<ϗyyyy|xyqy>|| Q9|Y aYpgi)yp9 g8{llCStX;=y4vNa>f&+ b3nrF] xgl0Ež9F3F6 (h#l!x*UD/@z5)쌇@* $3 X" wCP0#pn`c,'! S\c!v7hHKDL)!D|L!YA3:HlAwDWDqm87 !@&" !1a&ܠ̨Ƶ1cA3GPqG;ܻ`"1ȐшdL1xiEѱN0(ƈ@4E"!$q Ih;$ 5p]Љ`ML1Ƅ1xK8@1eD@U"q5$6%F"&GL R!OPO;x88F\OȂe(asGlh؉ca" SG4A#$"<;lh{aDiAi2ﮥn=b!Igx!JyfSBcBΆ&B0&2D0FLF3XF:"Bx 7(׸1p )b@L d,1"Eǟ GgQJ\yFgx$dA<;&pzvBD3 qg,# ,xF'X 2ZV}sq"_xCl> q /cmp$8HNN+ "v'kcd<Ƅ5c0aT yvOF) D8F oE|THJdgbCL6MnA:mxB[L?Ϫ㙾Bxv 'WO~r'q":ՈƚYiN4@;*ޟ;IS2>IL3܇W&}1zD 8YhX#H@|nī|7C)UW$Gq 0.xX! ϫ` t2^pIՐk,@"ljTD5Ll05cc){yk8qSv󜦱M9caS #f㗌,fpj8\8Á2p>~^9W~g8 ZCi98p̚v8.Ck_lE3R:@" !Ah$ Os}i#v$؀ FC1P7fZ)P̙s, ѯOFKwRf8aw SA.=-jL|ƣ{|$ΰ3o Â3\F5hEO)χtl" +w"jx5uWA "΍iDF$PA$,;j?Ye ᙇEP #X&Vj5/TdtOnQ/rۄ3 M(&N+m賐Eyc/> |ZJVy>.r b }2 F A!>Ä A D!1E 4 h!A `| "BؠB wGBBEC@4TBH B  pcՋ pcՋ Ver 4.11.16.86 CuII Y698@{!*/"yyyyyyxyyyyyy9xyyyyyyyyyyyyyyyiyy<<<<ϗ/|zy|ihy˧FQyx/_ix'y9Dy(ig8ChQ:SeLUD\GA1nEv}1C|f?Da35nl F3&;@b(E,tc ?f4 4ф=:>1eqڠiWHBG\ Mco[$$~sb *э AX0cjXb!v7AEt Qx|#:!#"!pn,f؆MD@%F1# x&D<~ ¹CHHX`ihF"1E 4BF3>G d"GkA"q@X@8Ʀ@WXSt,pelLtl BB7vHX2" #D7*FFp5$v%"&880э NYH]XG#Ng4v9Z$'N98!҄9d|7L2a%D<I [57X2c)!1.S«  9> H7LM"F}6q >x+m<&OEԋZo'8GQx$㘽`;J"6!eZ5bǚOkNzד U~O#$C0TQ#SK_|k\]h:wJ8oO&>)Y˾0)Dszx\ZΗ YR]1'~ ѯ^.&>%)kAb|Cg\K&Ua3UI·7v $T#T4BE1FDG#C h uhBRL!XR+|CY.ˮ?1b ?9^۫F_t:\)lJwuۅhO>1>Bo7Q85P] ~b]/RЂmOHg|OvחQ]57 Cx)6Qp_+[W /Jx>!4T$ #t  kH> ,Ή7H$Na'DЍg~|s%[6>3rV[&y3q\>ⅶ_0ȉWo&a ! >y/Fιg|T:(; 6U u( UteL+ pLLТ|?􉣧L)]"B "BXF< DC;~AxTfPϺQ~ 0ւ? M(Q\*=A\07n?m5E|r0)"g˫iC=Xxk5SDrwg\p8!h<3i$9G @! B, | >A A bBH!  D  B%>h) p;CH "A"A B B pcՋ pcՋ Ver 4.11.16.86 CuII Yb>f@{!*%-"yyy9yyyyyyyyyyyxyyy<<, <<<<<<|xyyyyyy_)yy/_<4M<<_.}(Op|axHgQ'yI y)g8CJx*C:xch3p ΰˡp>C!, Fl8 ix׉1BcG /ň] a[0W`ft"*;!Bfi<>OeP)tmDwZI &:8H'ěDNMX&|EJGĄsSA8 L LCa  ^ %t@)!Sx 0ǁ^~HIQioIuoJnˈ8g}5XaR+,}$Z:@8"E £-f:6>B6 ' xGu!7zxǨI 0െ[|վ)=qEY ݹpt605ʳ˯ ת"_&> `qXIT|p#6H $ruu xk5+  ct#c"α!8*056FIs3p߹7Wi_{ %,r4(ӚGe[ʐe#bjO0Y\Mw#$ n\  B!tl@ё "!!  b)lp3LCZ<}֢ھ%MdIYDN&,G3/XO]^įM.b? -z3}91I<\yp"i_cg<OpY*Q3zE_& =׈3<>mCiiAؠkdH8#Mۜ,kYӅp}D3ܵ{S22@"AB skc8A!B{lI'?G|53L͜"MUo%rw{*#~T*V[IgY3pG҄h /8fsR"#! [ύ^xBpŏo#QNKy3 s@!_N| >  !! bBHHHHH6HHB {%>8a$$qkܣH*A pcՋ pcՋ Ver 4.11.16.86 CuJ ɣJ YD9ʼn@{!*%0$yyy9yqy9yyygyyyYyyyyyyyyyyyyyyyiyyyyyy×/_8s<͇/_<MM|͈p)^u>:Dga!P'gSsH"B L%SĵJju >?`QP%GWAFx[ c# (uo%ed -#J.4[y!9-8O5 ,_b8~IM&EՓjOMx1lT#'#|.Dl"\1XT@ 1Ou] x} 5 >'x#&O7l$α4n#F CE5f" kɏ ?mAnӮ0hHʼnt g75kF"=gNsj,'{'%oOϗx"ʑ#!`>dD1|(9cKZ3$28L3pZN3&2-8KZV1qx-=Ņ q'80htdDFGCB!TT@шPQA  BB׻j_L|p;bN%FGT3^bPqc3tFgx9>û:m4|Z hmW{g9^_RpF~1_xQ{!pnr/Ha5ij8#q~zv:FkqQ kELO]S8 ghy:?- Lx  BH*HހXVģF)FB w'yg1^kS6!Yf>]Jŗ০!CQҼC?%E}:UC4{N_ƈ3']'<[24czxgI_~s!7xSSg\;@EB@ p;Ch*2!!BA pcՋ pcՋ Ver 4.11.16.86 CuJJ Y? @{!*$yyyyyyx9yyyg9yyYyiyyyyyyyyyyyyyiyy<<<|QхGĕ"^ Gr <(FxDb!ɂXCܑx1MlALa;Só5jD  1$642HTKp= XG,)ha5:*!{1pgt(XX ,@cDMB3Xk"q'd,D$܃ kGlpc,"!4L!#F"6آ 921""jD@CFDCX$3Qe\ )c!H!816\;+qWi#G‡Đ&Jħ&Ag4f"GX&9$8/Ⓦn$ca { X"Qs{ ~^Ì1ykp3gKXW29RJ1YVv^Q>Z438#͕8Ù%g_'QzEx3j_]HiB<p3<-zŋ6 acKIs R!-4F/qljaęg?jP !q34k &҇pU|3a>?8{p?Fg܂Ӑ>z%1,qv6/<ۦIc&k# <ۃ<?/뇴 >0|҄~U;xR*]ƞ=$H4fKػ'',+ ̻_/2;?u$ĤcEKӗy?6AEȓ9qf*7 5BBXath " !!`5%_>Ɋe ~]ćΝBvGGޓ-2v3 Ql>nᢐpt=y@{!*#yyy9yqy9yyy9yyQyyyy<<<<<<8<<<<4<|yyӓ<˗χ)i <_s,Ep<f6z5:nH^B q1" %0$p3^G1R"g$"~A)">MSz&͕q^J/#BF<&̓ =ŏ$<eb}IW֖  "k9x춃EzVƒqN K`Qуΰq3 1 z"<>x43d0p*" xܙxj8¢4Bdd'QGElkX#HFѰ5:45hTT#aNYH7Kc<eJ 8'Zi}g</MK٧I2fZ 4o6Er4L 'TY% Zp?dMOckbi?aE8pE|jdc B T TtG;"Bhh]H#l42ptTZ 7N8~u~~<7qw8:߬IYDWbt/?S8eJ:?*7᫚p/yt ?PNAi3<#ir| 9۶ Dc8r2"`}.t$&&:my4$LU1i_E G76%CBGP!Hs q'2g{^'4>X@hhcscёP $ D@,ZZ  2ⓑp'b/~v|S&O޴AWLg8'bba^ʉzx#i%4s=^Coi("Qg0vFCAG'QQ@ @)BH B="@ B BH kⓈ5*  ׸PА@4T@$$ @ pcՋ pcՋ Ver 4.11.16.86 CuII ?Y;Ն@{!*-!/'$yyyyyqyYyyy9yyyyyyp<<,<<<8<<<|9yx|<<ϗ,8g Nq'D0ΐ> ˲ēk#Eͱų$"z<;!05eDF0(NV XrF\S4 Dҧa4DCGbZ8RM b"F'DBQ縞X*aq12^|sLq?/h^BU̸|WB; >~눗aL1BOS40j_gnxMB~%$uUVb&Op0 5 *G?PI ]Ȩ/QA橛>)q\nGd g3և-ӛ9QLr\jeϙd\1ܧ!R%^Ug)ԙxj .>#oW.xRĶcE405QThHXBFWءo4o) Oh|AbM>dhj|{ܞi#98sX>w7ɏܼl3$ D\Z=`a ߰g ?ܸA7΍D4$LѐP!!A  )@c-Ή*bA .,p,us50 wݓ#>Ӝ_[ zD~Ɇ9(0Ahz㿆6k^S0 Pc8ޞq8~10 9ډd )0y,җl7'T 67OJI-E`S]\"-t|#kTsg80p?~+FŘ淓qIa>\4RƏ8}ihFg׏!-H`&:s8Ñ;ir''D>q?t'Ť::hBHx;Bs܃m{c1!4 B q-mݮh^` !tLa3<dC3Т3( PDRs ӰO4K>$<~*ZDU*1z5C̏w?n'q'g盛)~Y.8ó ߘIzA %0 A 2΍)qn" b- -#> dE2g_'O'ţ< !Ap 00w}Y>CC9x$1q|"UOKDC@@B@  O)B" aHcB! AB #Y'DB @7HHHAh FAB A B pcՋ pcՋ Ver 4.11.16.86 CuJ ;J OYL:@{!*-$yyy9yyyyyyyyyyYyyyy<<,<<<8<<<<χ@0gx g yygH$yy'IgH M OEg!(Gxm;a?R`#g( 7RHqC/bD%#1(Cl!7XSe b #`D!qR&!XZH&ɳƣFBTXd̰aslMDł cjMD`Lq%:BΉnP]Ė[mz@bDt:"(bIΨX80vC@c EAsD#c;kXC8k8wW# SdT#Xbfhh`2BD(HFhI|+A8ЉqaC#*8!caae:2,!ݘ (16"B a88pnNC&fa}"Hd,;$ؐ;[Y\ňcG p59AQ!XFl6|ŐLi(#@H3<c+) ^w7Vqp583NPO%pˈs $8!1*^7'30Ĉxr ͉6r1d7PD0E<!iB@#V%ߋDƣ#G"޾y.j6DS,=5Fb,Dl)pr6PXD脨b" &Dc:ǝ![%!-HFf4Xc)uG`%$&8F3xecēI`UįoMՎ<>L[RP[I-<ɦps">$cˎek=I|$$e iR| I+Fiod<:1X8Ã~vpԒq2pdi#6qrf?o %7+}69FN<!=?c-b{D|fsq0£iVGRijL# ( x7><#`|X[c;LfT$15 {bgH.$R\֑1|2ΰakRd\35*r6)ݱr@RM~PLG_NR Oy8E X5~CCM87HHe4Pm!IF䐼(鴴/rGC0cl9*" (hH*{\At;/NjfG3凄<<ؤ'/4)2EƯ ([b|~]Ch>Iqp) ǁ2Wp9^ #k2 ?sաd)t͉@:)9'Zi8[樜0=OBpCS32 gD$TTtTS|rڈ4_4PJfg8?`Z*3<`D ApC|?h*Hs<#WF1*bkl_W?ǝ#"b1fi3SW?!\f='єX8j^V)JnB!De%8ã-e:Ie&5 FC|c!/[>Qrs/pp 9j3<9o.iQe61X861p{1ɉOb08N*vHHÌcJ<) ""Xb=~tˈOϸ^rS<CkR A|BllyՏΪ_y4,D @īx[H AbH AB #gD @B@qk h(HAB  pcՋ pcՋ Ver 4.11.16.86 CuJMXJF@ _Y8@{!*%yyy9yyyyyyxyyyyyyyy<<<<<<<<<<<<<<χ/yyy>|yy>=<|<>4<|q|9y0F$γJx0d"XZHXqM p=9;!p'c\g\ ]XD~68G@@5DC7`aLm&b 2Qq%`α FH:")!6  J" F–F2q`l6c 4 WhFX x?D26"bGlpS0PDCGFH0X(xm!qk[ FB!G #͍qo$J, ,{l Hlp- m n#l,!#Tc#j0etc)&uF5Q`*,d\G!Lj 4`cPǹ#H$!H;hh5 Eh 1b)" TO!0 筩=< ^H^HRࡐxh =F!D\۠#:: 0|F F2ƞq-썀gq# 8@BƸes E$KH(8&A,@aD 1^8v7c 81aN0:AA2^`k8 ˈs 4tqϋOCG,"):sLg[p=7]D8DvB&t1nB^>'c h牌E$>WLT[7s|W*8gC*jXT2$*$>S-[O|% 4JP-,3:y 7N2طPG*sE$e iJp$|N*Oi.|$|ncHqp~놋=?yss&nPJ!]Z4??̴dd\W+Fϩn{=O:҃p> SN)i>k ~oHQzZ)) X*U]IiGp!q /AZn08CqmTTl0D@>Fccl9QP@4h O415ûuOwI3lL7>xD|ORJ6'[t4ѷx6%ŗe΃BZ75 ʌÙY>?f0u 멎 Vv#Jƃ4Ete>9D Q-}"`+Ga*F :F8Q&_iTY IG"ΰ.?abI18I#x g`;> (L dž %H>8"2hs\ !c K--iĔRrjsW+r1sN8Vc8Co}|h{pcjK2]Q9YS8 3n'g3gXDG|&@B@@B@ \7*:*F"A H  pcՋ pcՋ Ver 4.11.16.86 CuJuJ oY4<m@{!*%0'yyyyyyxyyyxyy9yyyyq<<<<<<<<<MP\Aacc찓16_myH28D"Bx7$q%FxmxXxh] XG,1n(<qFȘ MCB@}rcu&XCe C h6esxDcǸƕa@5*FFPA@C7X 1b"ƨbjTSl1ĚMb!tmqp}vB``TaI S(876ClCED bDLфc4G.FɌ7B$ " 6x&֎h B)2al%fHIq%E "zD247F $j$n*@bcwk#BBDz@xDj@# $rDCC@5όFa(, ScEcn&]F0Q#!LYdEW1H'F-bĖ X;b&"GDCillbD\#`mS1 | pu>OMEO-qs/3,<fxBRڠ#舑I@bD'F3F0s& `3H(dWphh0X'Ac 80>a㻩[a} z &^FsM'(l#)\OHē8F/dAlpU=S(ģD#a9Ag'A#5i<`D0xD*+ eTVݖpgIsAu)tqËSfp88lKHXGbK (hxLJbB 1cA)ĕͤJDbO q-T9!~evJY1|*cÔ S[ >~ >3L8LFRUk-E>@|nW?O>W.[f> >g.t.4dlqܒ"N$Bܹ"Rw'8WMS gBoGBEUţX|URҷ{9w-S brY\G ^?2<) WZA3WS4f3gܠ_T[Eȟ5~WƷZ~`xbr|6?$LR>g`Ht j/_jixfǑy%+N(zx$WO)Mt:|/F^V`n"SÕ3Cd  NW)0g Q;Rs+"=&MƗ6zBI{=N|(aVy~<2#}[Z,_3 AQ2 ~" x ƈkc$!ց[MC5|jz檽ܧz`* C 1Ƶ%hh " Xb-񉣖On7'9@%Fœw ޞ {1KP?>O{D!%Fccg@ B@!p5 **HB h|.Q@@! W=FHHhB  pcՋ pcՋ Ver 4.11.16.86 CuJJ ~ Y ;@{!*'&yyyyyyyyyyxg9y9yyyyqxyyyyyyyyy=O4<<yyx{8yxhgi=K< C<20OOr, s6I q(mƤxKatUˢŋ>3PYK9%q3aJ#$@|F>3LXtRSKd Oup\38v&c^ Is|jƒ-B[ĚsEk U˔4IH|ixF?_X6"KIի>i0|\/&IJar33P(9$!q}6J)jx2ȇ_{|߶..GC I3qy31\o'!=Qv%SI g=߬[ėgg%`G ZXs[C(i8c#uӘ'jďظd<ojMJYG xY?eJrrJ|Qzk`f# BBE;`=@" :) B3L^'y.a˺ g|_ROᧅZ.|_3DV# )2lN )l"ɗ%&gK!MM:7rBJqb(xA>M3sQs-2 gh5ҟ g&0o,jbbr#9:TJ$vX **#ا(< ׮_L/g=w~}t"ćE98 $T4T|;jL&:2>[Ô c=g  q3ga!tJEe3\r?ebEԑ94g~69585Ƭ g%c$ ?>=ď&!B@$S18G/B1Mk<D;:# eLBH {T|Bi?Ye'A||9uȳ 5bcN_;^~K<+~( ⃰( "(YM-$ BE!؃h H @ B +Il  $$ 7X    DB@  @@ pcՋ pcՋ Ver 4.11.16.86 CuJJzt ~ Y9ř@{!*&yyyyyyyyyyyyyyyyyyyxyyyyyxyyy~yjy>~iy9q9.gx@xc` yq9g8$9"Q0c+X`3a `1:@Whrx$8+Im]1Ĩz0: C4lѰB저f C 4Ae;<sw8 0XD  M-6c!fӀ6ЅkL I4El3fS #x#\B"**1C@*X2)qІBp@BvQ93,Z]q?H8P"#H  B /$p=ZA#z1B+\PFp#"v,a-f CG681@BØBpIK" :e65'9PH Hqp=x(!%EFb@BD&D$2@#`\b0DFF_ٽ50 TS_[ń3 +t#1#,xh(bZ_k.g;:q~3}64Ga95E8$Ԉeu@`\.S`5BSU<8im)d/ K! S_/Ӭ/w@qOnI𹩥 ?73OUYnxjnI@O|3piOOhd(VhuD͡J ۦOH3\ 穅a :Zi\hebTRL>ۉ;3?d4;)³>d|>h<2Oo$G*^Q16`;,vӀ:#E63GϜ&[1pLɱ>z19CRbgg6<=HOwj\2!p3ΰ 7IbR*٫{ }:te;NkP:˧MԼ](_ZA/d\i`4 gX;dIo(2I|rVG%߫:Xu6&p{VIiLq+'yf8<2մEb/yk~Ǎx$IƳ 1^l.<著C^gP낒$ɇ O{t՝.L9vULMsNIIBq5Z>K-Mm'{MPanG@c B?Þ,8O֮ӗm|VFpxp lBp$FF  Xb=*>aTtˈOB4.M )o~X??6-K`)Bᣈ  @${찅`4$$@$$$@$T @!|%AT⓰@# F!pk#"aH pcՋ pcՋ Ver 4.11.16.86 CuJYʣJRL ~ YY;Z@{!*+-%yyyyyyyyyyyyiyxyyyyxyyyyyyyyy>~4<<<<)+y>iyyq CxYy>#)9&hgIyy!ig8$>8" U<5 ^ Lga'c`5SlшAcotE+Gsĝ2")1*gk`A2BX##4tT4l1`d@cdL'(124~z{,(xg=q!!f8+S&qɄc4h,P`tckt,1Ċh8F{)bRH c8@E%Α DU4B{hC5!4h!v4pWB$vXͨ` VaoS%d"FF)^0RDsD7( Dt$$XPxw,n0X,X аD6ƒ':,hLQ!S I”4FH&LB0Q :np!a4LYQ󈭍IģaC%(XK #iDXĔDÈ V X * m=DXvpa8ߥb20(&Ṥh<dĒB3fFA {#KdqaIώ}4JD>9C#!`PsM#Sl%bJ Q;; b/Hg U&>"MPгp/`&Kb!MPOUĽ`(#w$"qSY~_3Ev99w.673}svɗgjh#NИ""5zbt'>Ϲ$D|tzOV|o'ȌH| 񸈗&S>3,|эSxU  b=X##c 4lym&QaL15x ?h pg 10@a P\O< z-jrN ⃍$F7"Xb- ~tˈO6Zs2g|vű 9^;9%:F$v " B0qF"!A =vآ!A BhAB B BJ#'c1B@B@ B "!!"!bA B ! pcՋ pcՋ Ver 4.11.16.86 CuJJ ~ Yd=@{!* {'yyyyyyyyyyyyyyxyyyyxyy>yyy<<<|>yy=<<|||8kq>yyp# || 4E8$ 8<|}=0g8`q 5aqMr :3`IghL%b$, !9B6`W+3iM稌hx36H{G ѐ1a$aQ89O NP0&ictit< [bmF`W3\  *҄3dF&L}u4MAikT,peyĔ p= tb k$bb$#l&`DX"l lD`xőaA8Ԉu@>@ :F hS("ᙀ6CH!bp=3GF, 8ǂ=`+5ʂ>@ #,LG\AL1 pA*HHH” Ub,FC05 G8@E#M0bEaN4zLSi`# ) K\,qMP:M 4XKa.4 !,!a$4|nP80oRRO|x1ogQ8SI1 SNX2jQH, Lam.@Ǹ%v1 RKWjgM۾IE$Yˉf*,z`{ȃ[X]"'uT!x&b!&PF+i>>80ד,j8n=z޲#"JQU΃C EZKrRүt_$X8 *GTrsCÎC4OD%)H \GB peTV`|fˎq;vE:dĞ"J)m #NQ1NΦ6Fo4IB?j=52a'ΰ>w6q>s3<]&ẕmda%THsE ?)פ[|GSsqMR ݎ /$5,gY8 rV /mRڴ*'(Ɠ4x>}(0M8bNGUGI*/3mA~^,IFv"Ɍd,H|ޤ_W'|LRgP !ԀNT.$*XlqQ5`20 hן0rkN)0xmF*1!rnetpE=_ZJܟ8u߭޹h(]O[2RXNiTB9Ng]y2hgs"~҃VO~ãKp8C5dg(a{?ep|oc6 h0 cc5cl! F`H8-}gZFz, U7-ݵi-߃3p$ˈQTpgV;5 So:Č2sU.xk€q t~5UBa8V%~qO&CV9>y(iNYg4:uVr' c3 TD`DQ!$ 9#4>`pAH :*nxo*1K/P kmïhS3<6mYZJ|gx[/Ų S3M2WaU҇tx~3'bV ᪇8jĢ|>g83u\퐃3\ciLiGaso:yT@  `X$tB! SG T? 2 t~y6bN1MLM qKdxs?mE2)I1% @|08^#^@$$T4@lFА@DА @@᳈OF@dtT$B! ps A :*C  pcՋ pcՋ Ver 4.11.16.86 CuJJʁ ~ Y4-;-.@{!* %0'yyyyygyyYyyygyyyxgyyy>yyyxYyyyyy}<<<{yy?5^g`',*ءa)UX4"Xb#8θN8& `W4 "nٚ8ؠJXDh8lD͘ND=Ń XQԀw%vXH. bѰP&!X{BTc1:m0E0RFkL5RD#l3Bb$p=sH&qmLQ#TD X2 T<<+$X@G\ 6!  K$c E$I*y3] JcX܎8fav_Ot$T/SGz׽rSݲ)~[d87%+TZYeHed_rq+[ G]nn!#8SB lK*c g;B skYzΘΖP҇]= [ɰShZ ?')V^uD1K|qGt-x4J?[q3<2 7y⣔`x=9Εz~HJ$Td*Td"JJi9))'U_L)RJby4f,YJK.H%ՈƐQx<;Z?bɹJ|$tM|ا*lG9P8ð>x:\gxܝy p'g`-~Ǥ҇9aT$i2ထ)6h?R=l<]VB=Ӌ>-Nfg&?&,I&3RI!k+T3CF5O!bSi*BD0FF[ckLQ *hhF3=tE;0~wa9Gُva tps%a2Щc400,1~$~")7BXhh *X[ABEC DBS x%x1R 9N&p׌3hSI^}mH_c8>zfJE ġ~BH3<֗88^(-KG /pLy~ieJql}znRv4/~C13sDT.WQuRbC8K"H*hH>*"p"8GB t@A|j.f!5xC|.߄/pγ2ȫ[t^acR Ϥ&8e\_oS)q@ʫ]9DŽ"G_"lXoIZqp\D*.GkWYA?y0wy9!!@ft#aAH AXb= -)|@e'!/q4<Qg|O8(ǣ(|{+ /yBaa,߿ZI#_s’a@|@@@|08^#^E@$[ @4$4$@!A$|9D0 4$ $W8)B B pcՋ pcՋ Ver 4.11.16.86 CuJ Jҁ ~ Y>@{!*'yyyyygyiYyyyyyyxyyx>yyixiyy<<<4<<<<_<98yq'0xyy Y@yHYir`g8nGppqM 6C,ɂBaN,V":hD TGl0>:ᘄX94qq^XP# G8OHQx6fL'`q&2`'%v4.Hypp4!2CxBT\a7Ar#!  Bp Rwc 8d5%s@{G!!0 аe!FFG5Fb!:x&DaD"D974H !@F1"F͐"FHƞhD1 8ņ£x|+khbJC$Bj~>͹Ø#t#ј%B$DG'|Q ft,O% ^E jXllq  &O DFHzdFN@(<҄x$0 5Jzi iش9O4^~i-H~iPC:( uƝdh;TaB*HX`/laKDtlPy{"pe8_e!z3 q;8#cjbIHF4,,q1XBg8% gxh Qළ"!t_D1|H"\hcAX 1mcjaw,) S13<] &`We&^ IOK0|.A#wiGt>I)< GβO<,.,x|ߜgI?~tc W'z1uX5=8c!miߴ"3_΢p˧tp?o|a2l0H1wDȐQGЍcphe0`1A*+ #`|f^l!A,tȈ-/AHE!O|}ZU-XJ8ãa$*1= yi)4i" #83aےOVxtq<"`x+S^ >8$t%|*^ې >dTE=<+)~h$'xm8$Ex MRň!ˣ"`5x}~FlMuQcNØ=4~$| a?95"ΰ3e8m_8sH|j⛟g _T2n#ͅqAQpխEJ@qeyt#ɘ/ROv!98 }qUY[ |Xb0"YB<, vԀ>D 8§x;]X l-Xؠ"#AX HcR "0 oq],vMmY~GXYh_&3L˧N'R8Yq&NDaڐp( ( _lE?̙-UCg 5?6A_g~ž')d&8~NJfLgx" 8y{KC9+ kߴͦ4)_v3tRO·!h|poڴk*g)BK1_6 *I >6r85,Yח8S:?v7@ !$‡ƒxS#aA A81*>u> 2/|p9uȳKo?z7FJ3Q8 gxB,lдӁ->?L8A@ !>0^#^GB@BA$ph A A H  ħ! !@ AH9n0 4t@ A$ pcՋ pcՋ Ver 4.11.16.86 CuJ=J Y < @{!*'yyyyyyxgyyyyyyy><<yy<<<<|yyc<>1E᥈jb:A2`G1’<%05hR1&- ҄3;O=6`& `FB#B$3 @!7!*B8Gg{G!$A4!##IxvHΰji 2p^P#h H@HhHآ D2 mьj2X# !X{"D4FAMOxT#JmZDŽIu<ȿ11E`h$1% ɠt@ BzF;?wЄ`,A,TH6yW 3IzhS&ӂ"IF\;'5mؔ k"EV=aȩ ;.DgDG>\~ez3m$DÈ vB{!$a+`KDL?}{"pmX/RROyx1ogGgPNsgl!(b-F,W)tB2ZF4)A,0@[D|IqCa'(| Oaq ,K 0*h"X`+4C,w:pnC GpWp}B Yx L4OpL$؝`zBGes8.c4&]-=OJ0qmiU㇦G8gq8xǯ:}C b 'u΍Q:$8"FsSt-9}OΦ%,) F'VhSEϱŃD⇜G>OXntYkп_SGRmJFg8<1𫻇QWoB@B^qBmg8BJo(٘) +^Bd>3(-IC#yƞ OT†x+By" U J؆FG5wU54ozeJE\ņ* ^kBi/TDg$()ĚQxz~:]M +__}j?35a[q9<1fg.hh >Q~8˄3 /FaɋfQ"p_Z.R48MO<8-|S__DE!81)DRȌ?t3׈i~Ua$~gg+ю+3~6H**Fa䈻56!Dq.|MXi4:K/l—Zw$}puz=#QUfZ5>paYBVcjƨZNf_3~$4j,w#/=&9JG-ACBE!ci$@ T{tFRxK|?ÇњS<X㇫٘!~z05Sk !@5u$$$D Xc!!h AB B BrY'!! cAH B5n $$44tP B! !@ pcՋ pcՋ Ver 4.11.16.86 CuJYJ BY.8 3@{!*J'yyyyygyyyyy><<<<<9<<<|< K b02 EIhb* f!vb,'h,0"XS#=c#4  1 q="B9* HC $4p7cx،~RX1fGV8YoƸ.%>Tx`q3@}@4P l1"aaD-LhEk0`2,A1bYРS'# UCE\S$hbJ{$QԄѱr0X{Q~^Mer<񛗜߄gLhN )Hܡ!R%hX+wuh64b)q |I'F< C mu4?\<ʻ1xz?I$R7D)0 Ol؆C@0Q@# pXpv~D8,$ʇ gG8Cm28EKx 5S ) epNl2Sd{\C; >>J t h稸p aT"K lXp\+q᏷3<E8?!Fˌ7e&^''g" xMxr6S"ۤ3m K)SքLK5=u@Gpq ?? r$ 'lˊ, ʃIR#g6򹋓g8 IR/xmdGax'Byw"QNJLԈb)cA|LS]UğN)͍iIxeJ߃]IlO\_ΊIQo"d|eT$M/`#˧J߃}&2pOjO1S_&aYpx#3} ?˄3rxgx<<=) X&pʲp4PHh"Lۺw>'GGaڮ13Ŗΰk8}xIΧФc8M,q3܆e}yҒƃ_3 j%1qG,A*zi#WoR"9 E,Kb2MEHʓxߙwG-j =\=9PEύ>uJJp!4T 1Q!4T4T4|4?=Fwim&Bѐ0E@T|y7&hxgy8F'$GF9$c#ޟx%3\{Z۔ "]pE G8Ój<<<|yyy<,<8<4<<ϯyyy3|yyy>}y4q~:8,_~=E<3|>(E#$(yyepz'! 5B*$4Ax SzLS&NC"Eq[gvWmRMx1ۑ?Gp3X,c$ac!6~G3_"Eng(͝1 wq FlWML)4)sb$ % 썅9D0bi<Bg3Ͱ$Fרx( Cui,h[lU"#bC7pBJgXn醿*X|w>! w6<)ԌbDf,%;㘍:4 $@gGVOOYtq2(ylpԧ/zfr$g=}H)!5~13t͹*>pZWMD2d/ !<{Nd>=4>\ZT ɉ# :ΐ Ӳp0SLOe@Q-'.a[<$aΎ ȸƆԧtH,yq1RO'i}%p0Gaz1X5HCu̍фbɄ3\O~:%+}8CxpFM"@jK=C'<-鑿3\p'-4}^zL8C)a!A^F|0SFeA\%2>0" .p-"BDŽ4ⵈmHi294)q#5PI,O\8Hs|*:+>j$DxK$+K$JϞ`/*.Rķ3`3$"_3gEL{U p f|}9g~1qs8ÓzP҄LAQgSgxlG܅H(>i TY.äҌc֗Q-D<,<Ϛad_t2^dlCF5H!bWi)wO&%G_pT3<-[%g3<nQ)'Ӷ~{:5e$~}3eǤ5Rig$X49J\y"Rf&M@{!*&yyyyyy><<<|yyy<<<<<<x>UQx5b:#zxO * I(%LyKԀe(0EXclgXBh8@EhB0?5'E;D%XI|QLR3`4BHHhhSQ1 I4\aDH,$ >8!a1"α!b1b:#H$*,#C8T8H|9 f[{=3iؙ |~AC,хuAS.`C-F$*6h[pB@N F1CZ@p)vC<1q9&LӀ(3~W~ˆ#EŘs<'saC-=`Āa Hp@@P:@ߵKhB =B nT^W`ps"b-ˀ+) /ȇhA8NSshqłsT<ue,"Da2A m!4S/pV[?*PN61͸^xkz=A8?r]T5(!3$4'>u}=׋يM{o$!Sȟ!GWf,Rf3㳟9LyR5,8êl,)lLm{Cᾥ!p~{AEt޵&yyR}&"'8ڿףĞ$)Vξ{C)%k WHe4.tz<p>~L#ţ ȸƆԧbɋDGddc:G5Hs'2-WeL))᪈ly9?Tb|R/]xVlOvԄ8N_ΊI8TN5%϶x;U|t>=wķ1Xgx<|t :_58Ë g_ϴE\99Rgx|q]M鈏 u"y83eٸ`L|ΒVYU%?! ,!YB<_*>^dl5mu%!l:l z=` bA!/& O^?j--(Ռn+p=z/I,>3l9E[׽9\iz3t6l |._DgWΠ}Rb"Q,TY0~M3 V__yGAc`_3\}4M8^Q_^!Nl'sRWf<pM{;[la  \a=ABBCBCA"AhW:Z m'˱ .ϸC:ɴUsiq *엎{TJG,epW Oƛ㹦!D'Y0⟦}J|ZsgWO&nF!\Q<>Jrs /i2I]ljKak) 7,JiX;  ##T4TGI8=](bh0b/ۧhD)P+.1]ٲطwDܻzD 5-ʗgjVo4( xVQw~l8ۤ/yVUr4.8&.YE3|Xca!A KALBBHb=zv1hN]&l`sɆlGGOE [8ҾVDp ߎ)  > ^ ^ `@A A yOBPa@ W8 h0#A pcՋ pcՋ Ver 4.11.16.86 CuJJ BY@>C@N%A&y<<<<<<< xF(< L,<ϣI0ya4@%&Tg" Zk$B0E]UbM94=aj@ Z_$ t)WaN-A@iedFL2HLdhKSEPӑH}(Pv@ epNr9JrO1nGC 5,j Vu[F5"+H)HѐFiJT,)W>T L': oaJ}R!U@MՈ%ZQLm "+A7C%Ԉдr0RHӊׄ D1\ 3/Y3"$~E\k0PB% p Sr pEZ(X+QA B(S%P9@-@)MŤ22(Z PAI+) 5؋7 ORc k鲾}:F0̐e{: C5JʊeDm !(LB@x`QAP1(pv/ӛӟXQf̏*ч[$u= >a#d4A%ĵ@=C%S~9CyJl%mCz?Q0ڌTbDJ?dd[ 2c|nb(dcB6&T gcʕL'TTBH, %8d9M!vߺPa'8+1Դ/@j4 SF`4ѧ4Z+!W?@Ej haR=PI9Z`"U".ti ʶJdٞ5|H%'*\/PQ%GUD|Yn+.B3cy! DS}GU8oV; sń8BR%:Q!䘾~FeʕJd%E(H4"`"RР( D dA#=3 vrkk tia:sF1*Ju(1t2QYE&w#F*!WaIHoGuTJ `6޾;Lft4A6ĐU@V @hP t@m@b% ʢr"G\%'y<<<49yyiyygyy9Yyyyyyyiyy|>yyy>}yyy>}y<_y,MQ$M<_0?]i) \@+Tʤ(8r wOoy` (HH3Sj3ZŵB+CT*҉HCJTR+F \ӻ 3 Z hpWN5JBB5򦦔d"^+EEj)RjPq':xu0Z?9O*D%'u5]m4iј]VB@A*POBՠi T Ң iRS5 Z`XOAFAP0">37ShX#mR$F#`"S/ѨF@PŮFr3O`@D$Vс]N@I%GHuXuI'Ek "MG u9U~Ջ4RCg@[`*F b^(t7!+c&;Rtۄ_S[A!a،TJHJ(T G]'l61h*<,\>٘j0TiW JA&jFE%TrPʊCPo-]JR%jZ=umա9 0;T0Cӄ `'~0 " hdRPI!4@,b⁜I{*1Mrg4"ӹM*1{:"#\u2nrW%ҩ$` Ǡ38*d*s*qc4}:RDQW"H vr=)w-ALpLU'NcA:^XA jxƊSIiG c%~RA+zbB ckJh^|A$U‰ JU"JڵDǓ1P%N%yD3м~vٶ0ɋDd.)u(V:Si5{31ԥ*ՂRX1t8T*נFB h5TPe!ԠQ:pNk*>в 3P *0jU"nfls*qr̀aM w0L4 0xW%'m)d*3d`kJsihD5BX,+5(jCҴ, "EJd%eF^#jB9BX :btLmfKjD΂RG'm8/00A4WsJl)ߏ54J9O9ʳ&QxIY BrI?0]i78 1JՆow5'' 3K0΁Ѩ^ AV"+Q,*H甫UDs*"š  DbQ4im SS+YH%|2IPFWdt]?k1y"Ě\81p"0jwwa*@V T m)(@EQKn3 Д |!Z"ļ"B༁}MXA}mĺB(VDEQQԣ](Q,* dQ ֔,+(ED ((B>}@  (6}Bb*(W@b( (Q pcՋ pcՋ Ver 4.11.16.86 CuJUJNH ?BYO>MS@{!*%yϯyyyy<<<8<<<<<<<<<<<4S<<|<<<<<<\><<<~ ypy`g8n1:=.x !*d,Qgh$˳>9Yib ?->a%)u6&pЈ#W&gxޣϚ.l5ylOw&. 4!co"dX*D(1^"F,+DSpDRĞ8ی M12@PH8@'* /ET ѽfZ ^lаDIqcqN,ІTL2d)HpA%Lkp>bDTlq)d#"`#Ѱc "ĈsLYP#KkL @lpͨ'QLݪT9pm܇h<8D Cv1 RAB0#"K$cHggd0zzij3îIOypq"wBnsg,<E8b˸rgML#28'FB)vKW#f$<C¸~ͫCR41 3cSΎ y("9_8O gh 8rQ(B8^"6qø ?aJ8Uw'Ĉ=b02^x}DNN'#2D K|`$'ȁF !g8Mօ53?/ s=5Ht4֧2E[(&IT3hgxNO367I8 / g5,b&LYI᲼چt2'ӤAyg[?hF/+ czt N2tvL@ uvL@1f:;&MنG54α >i<<7v)$lKЬc?9< 1R” GD:!/0R3FbjbʄG57<6|;-%55DŽ3.δ?Uxt60pT|g8Oh=28cm%WPpp7cgFT3cGD$|%|DD'Gk1ːd<^W5|z|wP__"NA'*b:DOp30~Q_QpI_, g8*tvx68aA##X_~ʲÇ /p L\WpUU7ݞV1)D,<ϝ#u}dpn\S lE#/y֍߃_6Kl4L‡\:Ά ˹xɳa0gx!lk`P0eKR6W%'0Oe /? 5(lAY8cy_?%L`v6&pixmy>G3Fi( Jրw; WhAb!A7aIb"!"V8V8bxlfNHؖWB!|&4\H/ﯞnK))*?3<~Uhs/ ğW-c%PCƃnT }h::"C|Bsk1zkCE6gxĕ_ \n!>Wx#bA^16רh Ix {TFJ-93У5.y60EUa1 JC*|  x @$!!o)4T A$BqP0@4 T4B@@!|>X$   !W hHh*FhB pcՋ pcՋ Ver 4.11.16.86 CuJ1J*$ OBY{;=~@^5P%A?%y<9<<<x|<<ۏ܎ 1rJ 1T-r:R0[ɡ]0pD%FVi:+ ZݬYB]4T`Vl*,r$*ѫ?1T ִ=hH0D&*rP; ' a*C8L`bjRP6˩J,J /bLDHv2`xJ '* @%0nG H"+H?u JJ ̴EH0P[ hj$ "]R>:S%ź$Y7Nj~IWG@X#*h!j [IiDcYItDL(`s˯yyyCX`r`[X*وnTlIآw#l2(7ˌ+XD4F!DCCpK56h1ZƣBī–DA#aj0!::b=f8ÃU7}|t}ڃgxʨXh>b&T$ a-aFLBy !q!<ҸtE0c/#KDP-v")Db(sCX XW(  KBh0łB!# 54CXS–B{01b  BC?$J)ƸB#h-MDYA'4f H*tQG(P(Y`$XӘFh6pgAt&'8eDPq0x%),m@ D18A"p:Zao$ IDr D¨۩g]Ϲ[\x'3r;c!){F,xɘf,)e9HS2jhFGx1I'.4aL\>H~A N|$q'"O2ӌ!}a*oMN &ae<1N|t6ţ+%Mq O :3 i}%CMLOx:O%ڄ qubbkbʄR>y)5#Oj߃3<^p0^3Č3yLs<qqWLH g.|Dď$e#ߨf<3>"E|+"1!a/Bx?fLCd<[l40gX~$g)efA1? +7E̳86<78i! ezqEBY`*9(𺍱pl, ((:2  j,p 8A  DбvX [g4?ru#c234ˇLNn=:+FJ!~1uy $i# JtGZMiK#qHl*W^]pQSuXCF> * > v#6!0c& {9NުFOF/ç`u5 f|8>чH'v I3߽G`A$T,  @/`N\ @{c/(J-9gܡGkN]l`kb0PLd=ijO  @@Bq$B   B@B!@'㉏PP!$@W8  @  pcՋ pcՋ Ver 4.11.16.86 CuJ->J& oBYL8@{!*"3%yyYxyy~=<<<,,<8<<<<<$@wc8a30!,(`/XFC,q ^"X<&c zygxx9AG, !#cai,HC$$cG,0{c0q=#eJ` !v#*ik`0EB=/ pOG!08 6$ BU7]?C"$ƂƳة@!G0rb&QJ8D86" NJH&ˈ pU\n\B(ɂD,-A’4vFW&82ZϹ[\x'f ͝)!)8ftH:'6BMFȘ OaIWN4߳;S+gا3>eBڨ5(~13ڴI.qA[/E v&:rGp -+-jWK,d8*r ♂QvRDбV "戫#xgxa)3)!|Q"ԌbE(xXF0CbT5|!5E|tMKh>ϚA|{N3rOavO=kTQY-q"|*47?w2/$#'RnqSGŒr' fM/馠0\Q/2dcRɗ f^aq6Z8aZN φ83wx6P!_KSN2No9 H|֤qn|L F?L2!XdoJfx{ # !/`NCc"@ 8S_0R o/Bſ;ze &.~‚ėY12*HBB ^ $8"A ;QQ@  bA B>xC|,"Aw #  l !@@ pcՋ pcՋ Ver 4.11.16.86 CuJ1ZJ*$ BY\=5@{!*"K%yyYyyy><<<4<<<,<<<<<<<<<<xyyyO^:yyy_ӯx<<ϓs28<gy<$<˓,ϳ,ϓ4H<8xd(gXElxHSq1b+Q#^hS<4 } Sbñ!"an\4gR2Γ9kEC#FDFw# # #)CX 0*#)fqg#8DFt&8BE RC>;!0%F[#FQ²Dl@,4r)2M>8Qgq*Cݲ_9y?$!>lS"MЌAt4 [cp%B2b$ 'F1c caH\cQt5Fan, BHb4mĂ7>NwȠ=6 AF(hC$4cCb),q poh1pL,A-+aZ`͘qNw IJWPXG t=bA$bdp@"L_8Qv^>gI) G?"$q182 pE -0ϼQOS$H%(xOi_у8o+p`FaJ+!#nF%vώ |HF 3qb 7]9:HhmI4P^i!^/,t“D=3, p?oTSON鹳13lR'ֈ )dpFB2Q#hu'WgxNdcC|$Lq Zm "x6|l*`t4F'ěDUChB qflLĔ 3t)3_sRbO M<R(b jx6f|`D%|, 5}1~U!|jz/g>Y1~שL_S$`_߫ʊlwN|C8oQH8 $*?@ q:eivV"B51т3s?/niZIN^l! 6!<`g0S'٨lX@|g?8Ëq'85\dzApRa5xkVxgJl&x'3<ϝ<^ >dlCIF0NוxQ X`k0!X"`a+ b*}WjU㔒jUb gXeO]Q喏 /Գaz'.kg|{4*%Άy\'\W xO& W+~Bڱ=b1LYX8[ 7>Qi*6658mxHS6}mt~u.qt"iT;9s֐*g x/ W;DD@06 n" hH Q@$tLXO'0s;#Ar">P \"^%E~S H^ =Đ?‹9Cy->%6}J/;8 FH ChH(( FBB t$ƕ%mL*d2~mc4_k8zy0z=ExS iR=>cgx{   3XHhB-T[F|!:S<š  xU ,pÀg)vA BB ^ (8+Slѐ Bq)6HA B O ^a!@  BE1BECKl ! @ pcՋ pcՋ Ver 4.11.16.86 CuIwI BY >$@{!*"-3$yyyyyyyyyy9Yyyyyyyyyyyyy<;" Fl:7fx?骎']3ᇓHh`#8ph0ņˆX\> Elj(@8&6*!*X@BhӹpNw@q>) (^ pJa T0SBX- i"X ?t{IhDpFm+C,p$q0r^I8m<q/F\ eo$-b"bF 0"> GcAlqMX( `[CĒ0 tĈ?3L3îZ: G'SJ"-L3F)ω Ftl2:1 F㵔Dx W^+tFEJ8H_ߊ=8ùA|[z S:!olil|Q8͝=D?q)#8*vѷfJ))?gh@xw3ш Z"Gɸs/L8Ñr_igx&xjB&c!|0UNP'CDW#=o,Fo8>;&HpG3(,uUǩB!?\gOhi㨤/$~C(g gh$6AE}8q\A_Y#>s&8:&)䄬5 p2Z@ GQh?xr3< p Zx8E ٚZ/5L"6l,?A ԧ9!8!FXL6!yvp?zg=8ãg@d:[Tt3X gX&~>-qX#wC) _"A njw"a%|G|bM_~3\&U y<+O U|t£A4'21kOPi|}c˜qSE:7E(| b7L)<'8L?O4xE39#ΰO=vOI%&.ԇ7 5c=/_nڞ `_٨lX_Hƌ34E8q=U^# gx&/벞x@9Q[F$'XQ2 Op@ N ^RyWPO$K;PN]@":` Аp-"ސ3^i}#ijkc8Kgx\KmZ0V̟ `{6 xZqkg棋ڦ~W/ޛG!MFǷܴ{A4Xθh?hK(MxA~YH/ /]ߛB~3nUJɻ1 `d}Lq3Q$nqGl/ , L!1Q6[* Hb*E7E$ U#Z10 Q~du+T2'SK#f|CZB8 Jp} ~9=r>cH *B؁H)8W[ W3Bh _kuuH>Cir|zAx>б! ! 8@1!$ {`y#%@e_}9M |am\ ~X$ O;XS $` !#HH0A+ t@F  !K(# T# F!pkCH **6XbA B pcՋ pcՋ Ver 4.11.16.86 CuIIށ BY=E@{!*"!3$yyy)yyyyyyyyyYyyyy><<6>aAlI#c!F3d,SB=1m&Ga ~B-E%a|)Să8f~3FFsb'LA QMKQ 6 ܒwR"?%TN[G>󽪋up3\O=/Gxxi4u(I!Xkᅰ\ ΦpjSOsq?f {f*s q>>D{o>`z g(w7_ ghS,TSPB:$t|59; k6'Z#k4d4#G8a4^<'H6kA ,ygy|'p*~Å&¯dX&ĶSs| Qxq8A:7|(| *gSP~'8Z8ô g+gup֣ :!y5l8í)_Aq\ԯ g Zse|O ~LqYlX yRI 3Mnp+Y[,MCaov!x>)Zc>Wz2`|N'80>o;cjs' !XXo(@"*Fؠ FB!{U "ߺ}L>lja7Ui38syy6 9&J:Spu3L ODFk,7@ZO1L) z%MZTiv|fh.ց10Xq|Q6)=QO`rJO#~ ԃԾOt9|0gHSc1Wa@<ĀSaW;l1BED@BE0{ #T$4$ Ka%ʀ||hrR#M8c2r 4zk(jQ1VKӿ#5Lˈl#7HN" 8yg: ?BA$BC@B@ÇAQH8;B! S$ĕ51GI#~G ">lڿDGp}Z> _G`B GQP1A A;y#|T3GkN]l`j?tBLs)gSF @ <""! 8F@ @$p%6hA %|AhH B p   l0 !@  pcՋ pcՋ Ver 4.11.16.86 CuII BY\>M@{!*"!3$ygyY1yyyyyyyyyyqyyy><<<<<< C$Ј"vCpۈJ|`;GJAq#ЄmDH/Xq_е끉CAH㳱3ƫ,}Fg!$#:X٠@S"cB?L4!ΐæZ8*G qVI\E³*;8Rb- nqq6cC~x6g8lf 0E>_DUpi)Q`)iF0-JxDxr$h܅h[tvH3<qǂg'Df#xR#|&ēDW"2яZA.SsyvLൂc#.{%Z``=`ѯygɟ8y⋁ ˂Q!5~xΠ,5N|kNkMp`\9ѬٖZCK Q'H$#G8A qD+#\"MWR34n%[ 8h*>W+g@{~ }hP883}` S -~ɅRBGgh)L/OҜ! L.<4G1`?g)Ni(y| topyfg ⻦A4z'8V$ x=ئ|$z@n*it>\W>Q?gٰ2*\ ~6 t&'2/_?N{l?l0AkJق 6vǜ^:֡rrOlϳ3<)k;_ =OM5<7S xucjs'N<:4 kTm<kCD )QCEp4³x8:N['j=mqo,>*$ڑ:k[K "qL"%qvcg$vQCNJ68^߿B )pTFTqu3 #2LK, x4bw8ËzI:״04TFfgJ)0P2LURp+wmو3H12v"#C@@@Q; TdT4 DE16XbH_ϓKTgxR5$-1Y:բ9<[YK3lA1p8L;óL 㿆p_J|͔\|'v)AhH`($@4$t$WxƖC<Ԃp,<(bo $2/L7^~$"8Ҥ{q}8F dLA@D !:У5.y60q1O( b 3 !00q<e񗐠DxvB!7`mD'v~$AOp ^>F%Hh6<5pLy3<R]/9qꥲ%Dƀ3%KX^u1U(ׄӓOjN| vSR~81jƷ& |{Ma(| oZ#xHV~'8V4f էx#>RgaRUqg^՟pf-)U|pȈULuzlO.|g|B1\) ely֍gSW_8jor7_i ڞ*)~l3<?f;)[H|Ygݠp-&1N)1*=tk[|űe$]jWOꀏN8< &x<|T$2SXX{<; $#SOƒm/9,Qk^Jfp3|nk4dıcӇ O_닫:+ Ȫ%s_Cvr8z2/2}EL?Xa3XlĩFO}qu̍)~߸ec?"' Fq@6A0A8 AB*( h ,<23( O]QR^>it{K|Χ PC|Ln֔.@Àb *ިaw4 !!(J`4D@ܒ? ?s4.M | QϢ)- 'a@D@<n; @{Sl @lб A ⃉SO!#!C5n T$ BEC , B pcՋ pcՋ Ver 4.11.16.86 CuII BY :@{!*"c$ygyqqxyyyyyYyiyyyy|><<<9<8q, E`^$õ4 ~ǢgPG?&}˄rZ(a^13/≔Bgx6(8CO.4\pA /E}dp4?oa=c bl<( :gx4njOo4p[# Bq/,5ēDP"a^+X9<;&ZQCg_O̓p^qU$[苉3 r޹lB CIQį?16Rks3YӟE,"QpE@#C<[ėFd|^#|`D"!#*`UJ5#*I'#T#!9W2`;r@As| ' MF.+bYE'*WC+h3Np<74Fgx>sYJHY+؞ pPTqXM2 㬩˿ΆUΰtra~:-l40_{gLCWb_\φmkO(06Ex`3b8F4D~gŏi,g"j?i;%t1|t7/Cs1,"]MG\K/NxGxvsY2΍ϡ|:5Ĺ*Oء"#a+,y9ߏ߸R>UWKs泘_>=P-߽>m"ΰrI+?r@6J+&lr~ g8!\GA5LR0rFeHyba\3W,/( 80 l ѐQ ##F1! @Td4ttlD'j<<3dR1)9`T eNu+k9uo|$v=;<-Mڿ]C3+qdd @$=@@B@A [G7>7> 2sPx9y60qsBa1!Y!%KȸAD! D!@<k   ;l @lб A '[BHHnp{$T$   BFG! pcՋ pcՋ Ver 4.11.16.86 CuJI BY=%@{!*"$yyy9yyyyyyyyiQyyy\><<yyyyyy_ӯyyyy9yI(9y ?8<ͱE<>B2 saGasHR8Fn 0űR9ьl#)B Nc&,bDBc@'aA,Ll*hFwϲ"> 2#`z<6b1Co"qnOO4pB_mgx.xiBWX)/L&jCDgLck#lF:'^9ōQCכW-NڗeVTo,d4C :pVH  g9"|~`Ə\vJrA%쌽F`cpB%89 XLf ь NM[g. !c >x6'F, qZD bIT.( qD?ð ď -R ϓ9BA1,H':[^r`Y5qb= 5Y~gx&"~@xp`##?[j̏" q>NRCʏ`{17GT ,!TE|ė7*I'#TU|NR~%|(Fߗ'H'3a/=T}^AgLpol[7nt caPRԳ7D&NjŔ:kL82Jd/Lφ (/F0g8 ᦄ'"[g9Ά.l֥Oφ 87$1>%Gg|tDj,g|$t ˹xA0g8 sѭ7J-\ǿ}x3܄ 5^vwݶ109 ΍/`) |ӓ>D3F0>XhD{8* hHhBDk* ߺx8.ՕWg^Oa-tBLg^J#ݮѩUq8õi !pJ)$jAzgϝE8`a< ao4l05 QP  6c *H loL|@|)Mf w1==b5y(/ K5ExZQv1Ex?z<#jD 4T44oа@E! D T Dpl,4R;*K/Щ#z8X>ڿ]9^u!BG3*B*a15>> 2sPx9uȳ/sBDOZ%LA4   !< q BBH A cEt@$T<B })M!! !!@+\BE!$$4$X ! pcՋ pcՋ Ver 4.11.16.86 CuJ"J  BY9@{!*"@$yyy9xyyyyyyyiYyyyyyyO\<<</yyy>}a><<9xYy>ϓ(1xaqs4<1<2F 4)f  g%":10"EajE@#! Htd!IT!81 X`i"2N0@cTԂ`H; 363$*6)"a/FRSG$.KͨXDCI12HWqM p #CDC02 4$$b*h868Z)}%-p'ug8 LQGȟMLQ[_82 )/?hўC +OG\0gX68&~/5gbqA‚x| BXi1@–Hƾx3<we2zش{>RSxbnr;cI) qM^7zƖ`:'%ѱX&F^xKU3)qiNx8a7bgd|Fk!?,|mB[%>7H|00g`x?v\q+>s1n#] !"`̢T #2gx9nBOK4pB_mgx)xul =㞨JZw<;&Px W>h~{Cq}nF:K˄3XpRf*Y3V\O#u |R39?b?}3p!CĀsx5㈨'l*`1!N&D28!4!omߴx2>4!M<$IcN"M| yziXD AitьO}42^Vx&}*ֽ4դ!9x gxf_ L;H%/?{ PgPg+ Mζ+x?e:8jaO?r2L|}qB-7)F,=jƫ1?pJX ռ"2jWIP&*I">U@?fZ+UW2`;Wr@A2 Ľ8B$qmx}j'J^E 'q_xZH5#Aa9_l80_޷\φ8Rxa2g[WXu3?ԴF?|}6l3p̛A!aj (+*r?@ Py6xgxįMYҬ?ئG|O؟ĘȥƧUg8i!p~;]5g O-CPϚ#;X^@V'4^`|Hqn$b"E@AEEBC Ǩ^x!tW,b N4Xzj >(xj] >_<5ݱH5e9p:SEO AC ;,Ѱ@G#T7`B @44TL B7&j> _3\bC:_+i{PXݢ߸nRtM oNJB!" F  T,  !$$TDw2C טR.P~C#>7/, :}$⠆ӈ:*k|De^^U<!@X"Ah B=vcj|(/ie (|HCaRx W9H A B {#Ba*k@ !OmuBGCCE@!7=!! !! !! ! pcՋ pcՋ Ver 4.11.16.86 CuJ%?J BY<5@{!*"0I %yyQ9yyyyyyyyiyyyyyyyO  [QX{GAuaGՈZx'-|DD2qń]DBc($78b Aƨdݳ 9 CFlT£xg-HM\2H8p8xPģ"#hy ۪YpVg8On)uOq\㷵^mUx:|^ԟO^FP3<yHQ|p Kj $%gx1vWlE-|;s)I#c*bx3<we2z5ZOm>XR C\373FωsK0bEhVx«Mk) 3Wj?c1Πtaҡ gm1Ҧ$G!g8)ot'8TSc:>+ gx$T⋆*aDLT !h,J o8ӦD 7+uᅈk Xq-,AӣCU}Ύ R+ݜg8JAxg~+Cꯏr$3u!bE<|g8ȟ\Q"qku>w ^%WK,&GD?9 ThB~B P#xU!~<ބÆQg9$ g{B''a4H/Vx;2ΰoOys:\߃3lFt88c?Ega^ſ.VD}tgˈ&z֍߃+])}LTPr}O"O{Mj3ZD,Ԍwcx'bLEx< Mc WB|s)|Q">bI芿$[|?N?fu1`;(A~ ~` ƒ9)؍BM?bZOq<ϙ`{o!8O-^:RPq{M ` F4;[.>3W\ gaþ4\L׏ᑪEi ]2 PقؾMb 3|`30 Ha94~xQ%E:+L_3s pW3ڲ\Ŋ]rPj΃7_, mXVVHK4ƳPq' >/Mpn|9W|> LPC0>$W87:X`+YP!$$l!p;'u&ebiT'C2乣uue {wF,iD:gx3*?Z<-ñ롌Md񩁌Mx  BEC@k!a!!@Hbk\xhkLUP_8EU:Z2|2|-N߭YĮSL]QY+0GLuYuRxˈD_Shͩ@ |~ha3( 4!!"³XF!@ Bx  D@[tT,  D  &A{\ #   pBB pcՋ pcՋ Ver 4.11.16.86 CuJ[I BY=!@{!*"-!0$yyq9yyyyyyyyiy><<<<|yyy_yyy_yyya"zb%̰Ѕ}Ha'(F,371b= )q8`C" qN1BE0X>1HCԀeG<0&񪰄"*P!Zza4̰jAF0FWCHtLF9C,XFˀёNPPC:BD"ēB Ȍ `8 1@1"a"z K1$4LxHhQ^8ؓ8#0c755`MD2z@A") GX 8U@E>h@88E (l$l0XS$,/1mcmߘ.[)3^(0ճOiOi(ADCa$L@lQ*,hP$#_8D!Wxobm<2 #I󌵈GE<4'IxXkLl3c|"6jJFT|l=XtKVGݥJ)8 ݥm|35'ZJqږ3<+=/Fc  >y6 g|"(-_~y6=g9uX?_oy{˲Lk/ZLW+1!΀O]JӮ!7CeE|ފ1F&E<0XYMj>b );{OnS| T]|N"XNonQƏH N&?VĢ8 ~!SUO=$fl8t:ҊM>F!yrS82-KTa0Yga Ίi)NAMWgx,X8\ M4][Q  T9~|99 gSN<`~cŠpf76S?s8F>Vt;n8 뵵*8yn+$yۈdxi>$5s'_@c-㝀f1'tL0e`e@AP 7X`kH:0W$j> >__&qk&gó?(g-nZ~@$MyQ?"2ocT9\×NMXh0BhАP@$B `c!ntp__XHm! Z2|~-Z߭GaĦ;$L{Au8xk'kXY "QCHh0"0a%%@eg|jԥɳ/ryop6! !'`P@@BH Ql* A 8  D A B &kī:C wx F  Dp A  pcՋ pcՋ Ver 4.11.16.86 CuJxJ BYk<n@{!*"$yyyyyyxyyyyyiy>yyyyyy<<)hqy>3hqdz,ď9yO8K'qu,"$Q#j<;!VA x=H<8O8`3H<4'hxV8áy7wӀ 𩯿ccZ =-iiGX ;9dƈ 8Ckg3?8<|̮- 0 #:BDDe# K\\#CY=)1i?q=RR~_"q!cICSՀ0 PtN Kc)Qd^#>e )Y1ZJyxqLIg3g g]x5qTu3<>KMz8U7 O'XS0U\#,nqĀ3<,q'"Z#q8 a21{+eM @8ģ!jεO:>] gXt)p], B$8.}VҚ>p#0&>Zzg4N.9"MN4!F"MBVنuGBX`GƫikEl?'O(|Fo/6 8L(O#D|6ŐWʭ p^cEir+qĞ_;WA?>sr|zt<lφt&҉6_M SʃZo{> b'p{_O|arp1/O_q|5'? 0?;!|_1]XD|&(8ì/ͼ"L})cڅcC|eGw$#Tcz 7ODJ FξCUa?"U69 t$:q8CʇO`;'f⇵΁9_lOÀgR aB-OpKNJW`([A yQ8G t(Hu*aUYDFq>=gNTuO錇hMY(0.))hܙiygX.|P ۩Jǧ. ]>w 14yиNz#|:W&8}X4cc=gaF {$p L_Ԅ؊^OTU<_GI⩴8X~QSDQ̈3lcM+<-88H8, 45##@`= b!0F0*X` +5i8õy?ڻLmĀ_nZV#x)zYG^+=GUSiW h0*4  @P!`aatq՘FW}JO2s[2|-T߭#!a*֧uTG :8$FؠBH Hh0BCH QJxˈO4ͩKg 3zBa1ǓxW5 A "B ;$T#  latP  `  D!!AyyyyyyO<<|y9yן~<<<|~zyyyq/S/E)b&?vgu~ukiF8CK7j« ` bP0Hb*sgxZwφq&d$G8b7[86b' uc'EyG@q/} ?DF^&48JbgЎgxghU48ä gO<^x_lgx*~EuRB2 OEg'o,۩JiU^'a?^M 5Z鴄c8&3Ǘ^NӀq瓗qFg> >__s;x<=[\AΖ_8<[gЩr+wI\ gma~WeAҗ&qr{_V%Ure3(6Mۛ^Cb/"~ 5S @qHψX^x(_3 &(8ì/|o0Bͱ#2+{k,T#z =K| *4~`xgriaH:q8C# ?g՘Ug>ēg˔a5ñ\yLc oRAaw8Ë5z2C#zˬ?e&~3#ljMgx8rڒiƘCͪM'|pI`Kt |$A_0^`4d}|f@ x: {xal@8(H#apbQY*^Oj*&^.$rhzCgnۺ\3M=Z'\ΰ?^D\8kH, h BEFAj@Fq F!$TT4$F`LW&j> >_S8à -b/\Tx#> |W#r8gUcjdw2x*H*CH'J@@4B` D&WU#WjӛGz2s[2|~->G߭G U:߃!ᾆQб! C* b-:>'i S&> f|XC <=M@#L$@!b"0a "H 5@$!kăxx FB! D!7B#AH0 pcՋ pcՋ Ver 4.11.16.86 CuJI ?BY,=@{!*"$yyyyxyy9xyyyi|><<<]><<|yyy<<@?pyg)&yqy'Ig8 R6jER(pG!FPFp"$RT _ăiE#`J0b^sx8B(p4u6"e(c"MQi6θL38ăOP^"#BQ6P0T gG8$zD w $*05'#&3ָ ̰ E$0cB$bȌE!Q5H,#!zxBa 2aE BA 6J$$(<<ij-H  p@hHhhha*4b 2R",вpCAU#:) a9 %l.lG+q/4*B1kE zBS ( xNs,, 8-ZyYzLxgXU}vQ&p\bͯ-&kR+QŌ3*q/_H|:JbwvF`0HALQ%$9Ɉ3fS=ԋ O):`[MJTDA:vWgxRoF1i$p!chS%%@T%b-tSlD /-}8őmЮi(I/ /Q g{g8m~g^>/Π8óݭDƷO2F<5AA!aX`Ac}Dx gx4n?)1 z/ u၈s⭀(x 55*hbzal(3#lFᇣq'KsZᣒNڥ>fp5.8,?U.φ S;aS.g$g {>%$gx(YXO9A Є'D;!ڄhЄH lCţL`AKivMM@bE>3T-x _!(|,qa#xi|ryE@i~֍i2 /T2+a{Ӫ 1g!ΆxFzɳAl3ܹި^(hk:J*R 8弢p]qry68r:8[f Cg)~O7ɛE @{~?~y4<~|db9x߳/SSiz"ΰK劎p1#J#w5).Q"i$|&G||o02U1džʄI𱭞>z*~D9?S|':,<4y 3A¦9'up8tXR ߕj*)W9 |CNp[OkO G>ߤ=/m?ӈ'Haixg]_~Oxa2ޗ]@Bؓxal`8!a=z5 'O]Pjgfa25$nza,9<Ҳn7yR 2!?* ;Xиؠ`а24  hp@Fp  BH(hH #` kRW:p1?1~§x{r^39++c2o&~>hMS;"t$F`4T$ h A08ƃ Fan*5#U|V Ow]:|`}Vx SbC A B  T @lPR[Pxi g3zB|yI)O ( 6DCAlCBGBa [찇a$B! D!$숆B "5/AHh0"C5!@BCEB!숂C  pcՋ pcՋ Ver 4.11.16.86 CuJMΣJF@ OBY$(8)@{!*"G%yyYyyyy9yyyYyF$!1Bv#NB (@xt d" *#X4"ňăP hآJ: `G% &$E4ī%h-.`Jl"i@А`W *#E,j)=CTt%@ClP(ta(l1Fhč }\/Č_zŀk8i| [yx8;G5UC8}q[MN/g-?id rrHO /G|~`qUI"^Ŀy g͑gS)bBx<`N u .T ӹɈ3g&&(@G0b3D*GlRăID4) (2h ^SqHW@qן>=? ߭7i]TPIz/ OO3RW6_3q1)LElQ)G8zx3qMO\7%34KFƒar39q-1Ba%J^ AxKE|&g8n)i_&gpݒ5ѐ#{_+RBNysPJ&b#`U $Y0V "GѸ#Ā3<(q"ΉJaԌWώ ,9ώ 9Qn~C܄ ki qi?[z1o wUgs>Ȣpj\6)m"pȷ+8.|ViV zoX#*Da鳩i'gS%@:!J ROMCBxmxi?O$aV\M|ҋ(|zZ\d| RW~|*>ޅC {ٿwt6U2}e:8ө3W\85rzp0hV kL'bPΜLqX\*$x>RSmog,$z-YALч'a'x8`s|zaj&z~{ p#))rz/8҇>/-IVI9O4`S xD|#HK'SpGYGS`)wE|>'G~~;Us"NqRO`? G&H(|}Nq>!~ XSsig1S+y§f'y#xڒ5/bGO--AU8MpW0.z+ gh>5T85MY_?'|+>F='d0>(ox.@Xb=$aT`Ԁa-j9O+Tj'eLS \)>0%&2q?mqD/3<.-t/+CI*Iqm9>O(Đ ;k ! $, LR@Pp!h* c*,0Eŷ8_,tڷI=s>>L^ ?TSWd'?r4 JA`M,P "A0 "Hx4 @ A${&`JFTPO*ʀj2||c?tէX?AG<<ӟyyyy<<<|9xy<4EqyH0 ?i*Gň`\Opm'x|> $^PDL!{DK2bIFT*8F\G!:OSƈ!1Bv":+i F$bc, DH1Bэ0%`X X{4 I: U22662G*sf|N gxOoTK|7vZT)&NoqTS$0i+1. Wo^'!< RS#T`bd4L;]BCv#W h!PA&Gl#H`'M3Oҥ%a@ᾼs5AؒFk(I KϿв^v3e'xKNAקa) /O<5ټ 9ΐ.\6qHg ذ|y68&Stty68&pǞ_ D=ن q?+1paRq|)]cIhT?2g(3؟`sB4#M~BbdB\-{:4+>`FǢ s>g;Osxd|Շ㟧I|FgXRS>_,YC@L3G~*$ q'Sl4_+.SmJq '}+Άt8:NN?Ӛz-3:\~{bVp֍Ad:NO/W_վ+)ˊz/pYMH>nk$[zOVe$|&QA )>X+9/O?nlT#_ʀ_'j G'hւE Q *I!n s&N~ySFJI9qHapOVO'wbyJ:)HO0ⷆ-cMiF}9 )7)LjT`O p3b\jl >OXq*>ha!|A j#+@":6X`cDECC82>Ԅ/DM54 +&i"߽WӴn'Ie+ň3<p~H4Dk/8pg,vH!FC022n1`BhhH"HK4ߋi8]!~A)cp*|X*1 PCT-0Dч2'V2O tDA BDE bBh  cQءR3Q(z ?5b£+<qc p T4D@{T|(?ȧњS<‚_40(C<<<4}<<ӟyyyy<<<|ys<~ֶhY8qgC<8qU>6i'!$( Z@ hX`KH#TQ84 Дߕx32ăpoa 9q.,:&K0`p,I9%[D|ނ 8þ4qpBNB~Fҋ ? s3? -LO4VxM'דJ:gxh38}2݋CwMg6Q0S-0loO|y62ΆYpQήtaa刦pI#4~ͰZ Jh=qxh<8?!Z zB"eH"e2!݆iG ~^O |8OL|X]P8ֆ qD|̇dbE>?⳴wv| ^0<4>x"NOi?OT φ}K#{$RݕQhu8">v/!_3ܦZ\q/aͳ5 gx~zo*iks3QHo}Dgx>b"nLφ8d,.yDᳮRZ/jQ8#æ(.jFsU>3<1Vd8 މ?I 4?FoFNPpXGJ}ᮈ8 ;{">GCO4<'ܿKI,'FL% ?:HS|;^NC8TKmSyvD/On+Yqb\e C\OT9jH}8ğ#L%`5 @ 7 A4T4 QQ`4Tta@Vu63ܙI=(Gk✼P~>|t[}6XרH "Hx( BC @ǸU@WFT~Ue5>wL}$>?:|xŽ81q %HHh C=vآKJ-#>4.M |7#|B((8`А@@a=vh  ;lQaT$F`$  v B ^! #h*{ PP؀  pcՋ pcՋ Ver 4.11.16.86 CuJ}#Jvp BY >@{!*"o&yyyyygyyyyy>yyy3yxy>{yyă<<<ϯ_yyӟ><<<<<<x6bQ A⎄A|h[*FpO)F0`3 Nl@ pOMN$lBl2^J$R.g1<uX xEJ_ZxI-axgx0 +3h-aϻgX'.ҷTj]{x-)L Olv!#ħ@b]aó<3'~ Sk )&rh4?쵉3/b|z|֍0g8 9p2\_L|#׳qA)}u1[*=6mgxF56it6orK?}G؈Q70) I (+?Q)|ė'|l_I#'ةF> ODJ Q55?tF<59z _4AdւMsyO|er&>x*ʇ|϶E_p)eI`a1\J2'QUM Dqۀ44$LQ2{ps "FCEX4 8 q+Nc{(?kAEїK.n#hMJeϫakt`$  CA08xD]7 ?u+/. :H<}m:*_~>¼ij3<w0BB !cC0bQJxˈD4.M |, фǐx7@8B!a=vh #A8[T F`$$ 8 B x ij aCB!`4 F ${B pcՋ pcՋ Ver 4.11.16.86 CuJu@Jnh BY|8@{!*"!0EK&yyiyygyyyyy>yyy|iyăyyy<,<<~j~=<0pNlB&c*alJ846ΰ3FP@@(X =^gˈm$:Ƽ)@'NQO4!Q3ڄHd!~QG!!~wմ dq''G}H 1" @|`F.|GsC\=]c`)s9~?0U1ClUYx6'1V"\'s(8⣬GA &.39 W>ERǶ)~ 6vo3oz O@?2Ո'G&MY 6Q F2~`C=L`x_&1ؓxA,`BB##lsq?J/8u'ka^yyy<<yyyyyyyy>s0@p<30iqGR884OFgXEgh )`EVXP5hC 1؄eF ͰUp"H8£bӌƈ-K8bÀ>x*-G0b"*#X }8`Iua A,Qr "ĂXJKb~JE<$EHbpOE$pxb5QF*`,0q?8iD"a"!a8bp#ı!\aW&mM% k-38Kqy< WgXպyNk]H*o.?p< qrUq9gn\X HX FV댫cmMH"6*Dtb8B`a.XUcOL³8>+~1?6{&Їg8R(ET5mOy9tE@ҋ8ógx }O/OTpGBĚƓ t hC,XpfS~8Á1#( Cx[l#x|BI<$)`O(X(DQQ8vIcJ( Cgx3lRA;a8 jٴL33!_fGm%Hd,"6XbGGU:ޜEo~) + $f,; wbyqLaPR9pD-H+Oc 'ga]ߪO<8N_Fၚ3<^>٢ c<3<̟mH z綳2dTs&64`1UA0"ʆVxsٸ?=1 Xt8S{L0z TJ&scITu$<'^(Xϵ nzL+8yҥ.& wg43WhV3LRS>`i\"Ά۩P_6=^@<>A#q ˳p/~O'.0꛾՗-~I= ȃ/gz<+F﷿d3\Tgx1~ئӇnKȊi!$Z ZOMeфP >8ixy@l!~wॴ dqpWON@{ `iEk>`F*|Gi|:o >GNB/Ym]fb}Z_':?kw_oGru5~1U# GN%m)qQHnRbƷ?=04ga/O;Ae9~Yg?lj_]J`TG9Rk|4 ੮'QJxhTaV-A ,.3ǚIVO`#GY5pD/[^C'0jS>g?`oz8CD 9cU2aMӈU3 YO0MO#DQ53A!6F'xyޙD6[?E*y@ۀ00 H BE2 p X#:H.YJKp+SN;~E—}pD8xʌp> ͂"O??qBH GF@  @W8nv*T(EWU|Asy x I呈gO#O|KxaDZ qA!!`@4 ; [F| Ơ9uil`Kݼ`OńGx<#x]@!c5H {` A$p5*F0B89B W;@<)FH0"A0P $ @c A B pcՋ pcՋ Ver 4.11.16.86 CuJqyJjd BYj9mm@nUA!Q3&yyyyygyyyy|>8<<<<0 ?qy <<3q%FBRgU 2TQEGUP dB)T3!D2C-dbDSTɀNDjD4ZQCۡރ.GZ Eh+ e, F-(I%Zua$+h( b$PM)ׁPԤ+ MT]FCM) $SS%CP ʔGeHuF0tJG 0ԢP *P PBWPF>36REHy3aEMJiݧpNEn9a"R{,  ǷUGOM5 )ے'c *Q$V%A/;<ČmQU!AXLt/v*~uay8UQPC@]$Cz@PjNJԄS1Rʡ %ZQ2CA}`P+UQ夦)uLP+C`]C*1~Hzg|)8(}e .98GIcJLTBW'l4rAPFSI%)&6"}ڐĔ(*TbPɀVtHOd4S ڈ( k13 uOT% ńNXH $TcyH6*d,2Tb8PA!Lh!S@Ruj %@Q&k4319n6TH?T +8 qH"VA"M 5F@u2ݍJ g"B>P#ЭJNgGq]%Ҁ*1|%3*i88h- *$~<Jƍ6INqd*vccO%dH+BMH-#T!J 8_UbNj 4Ub\I{V{@juXyTT"CiB HiB0vDW3Yݹ#6@rLq'O+ #pTB,UnOq<=\ǐJLqEnw*E8 a=R!^E!psGT88Uuq_J-b즓QZ-5': L<E0Я:rOhmvUb%Tb?4@~rhk,Jljn0 pP R1($1hbsyy/|=<<<<<<> q?Ĉ9j"R1bEH!XI.X̐(0h1"8DLG8 Kkt8D$ =%'HHχr)!owie3<Ǒ/Eu. oԕ 8K7:m#3v #~ 3l?>e/Q~fH؀5cb  ##SaD*C4L EhC\a^!( qaa.XUc\H8CΟl5Dd JV$p>jNL/;F>we<+NxƗOc$XpN[A&Cb*aQc5gٱqA~ pV6b1:M>"IXVfs8^_>i3Ή3 NA%$,&.bG5 zs8óޤ{Дߤ[$7&1ch\SXzƞ&@Xq-l# j(K$cN+rbXN- :qMM͟?%k; <0}3`Ob&g9#Rq'az6 kOd-#Ά8SN>7}Ċ%ru8Oي /~I}lBlq6L'?|z^.J3\Tg2q98 sx99>6#^?!Fěě18"eQ R >8 ?fK 6^Mxćg_4!\DOBWE#6 k]cT, _hW?流o}u6玌`k'S o 33!%R>C'UyOO'i:ϥ<_.␏jTu~牏~{)TF^\.ܔǧ&/H"wx'=h_Tp݄O#"Lm .3 ޓ񱭞>o`'GxV \=s|y'jT9&?Ʀ9 |6:q8L'LV!W4㥓'1&>en:8CD||X| O< y5xkMN 6f'dL@eL ET>x)[.R-l<9zs g _XY/-psiԝq 8¯ߦńA 8GP ˀ Dd4`=vA$T`4@FK|}sԀ||(\2cNLďZV8y[2Yf_ǣK;a8`$FC@BP(X w Q8@WMBi>_V𹭖Q{#vbeWgwXq4+B bQKxˈ4ͩKg_3>gB>ƚ4v 98 !c=vHCBc- "H0B8 B W;@<!aC "np$P 4T$5qB pcՋ pcՋ Ver 4.11.16.86 CuJJ BY5=U7@{!*" &yyyyyyy9yyyy\siyăyyyӣ! gDG$,e[aA᜸" (E,>2-шE!GL34}%f% x5W#ƨ&QE-Dǖ؅cR]b1f\OI>WH$lQP0E$(X,$LU0-k8P ƈNA=tYlOE|gRu|#>x }'#P Z NC% M"6dbD8iD !b(Ă; ıp,xG~l3lޚq(|[dRژg8Eۤy7ny#F0mW/ʩWC>8\ŀ3,w:[3զ.BpiDCCЉT, a@˸qF# NJGG`DQH>|Y.g\M<;!pi}'w?;}{p gހ gx.|4M^vOx06hE@ѱ xhqT!@?9 8óޤk[-p1e4)<+Flx-E@r;a RDbE 3r^,l?[4pQM km#ΰ vU;[S)\a6_ҧnhےMJaJ8q_?{ng5Rz-Fg9WQxg`l8P+*%ė :idT=b aD [HѸ?=gxǢWgx x=`3^2^&scJP.sg M|g2:Nr{6H8äd>80~^nO^,/EEւCg64v_=A{Fup' 'M||ߐLxV8'uOp-2M>q4ʨ'~9W#L=^`yN8.l|&W&6>"oxA@@{\x DC!tS4{/X||_!&Y=+i@J`/|XEΐROZb)UC_^MM #ILRӀ`@ v8A0h бQ] Zk}B,>}Iat\Mp@KA AxC A ` H "H bG$!@BY#44@$ ps@#!h{!@ pcՋ pcՋ Ver 4.11.16.86 CuJϣJ| BY+9-@{!*"/&yyyyyy>yyy3;|yyMxyyO~=<4<ϯ<<<<h2<<<<<1~gڢ匊d@{ ,-i(3Q E>E Gs|0aZԻfhV<2zf(xK4Q !i;?b ^>mmlhA 'DYx߻giU33QL: _44E|s?L GD"IwI$ (+?y7EkлW&|\|ORǶz;9G9$|@ |RSML&?VĮ9 _7Az8J?|>'g\U?B}g<"S& E^|| 0Xw|w6>oMcx}cyxgQO$2^vX8ؠb=I 0a bmw _)~BOXIcJQ0cK./Ԣ%fV"w91!8oy>^"Ѱ@h t#  7` AA l!|׈e@|5~x?*;%E~Rcnq5$/M]|/t|8>,y?WS]61@4,0H0BH0GZ1BE aW8nPUp_\~Yee^G|ˏuTxQ!{!!p"H A aXa>5As>!xƚDq! !c-v AH0b0#h Aa=@ %T44`$  7 B h ĎH C  pcՋ pcՋ Ver 4.11.16.86 CuJJ BY,> @n%AP&yyyyyy>yyy|qyăyyy<@0?'PyO<D$*Zd4v26#= IĄF0VzCzAy T" AȡQ5i(J+EAV!+Q\F(ԯ?F?8_dHg *r[C>Ie=#3/яNJL)vyn&8FJjZTDV"ȢYN*BA *(A JZ(LM+fC1f_b^sz;hY^L61N'zjJ[P (EQ$DeQ#Քb}BHT"δQAp?rH c+%XBPPӢ(hjUCDEABj%(Y(ZдdY,*QDP +DQЈFBeQEAt U(*W*EA(b%VQQb%J+EPQ(DYEQQ pcՋ pcՋ Ver 4.11.16.86 CuJJ BY=<mA@!*p&yyyyyy>yyyyyi,Pxc|y&~xyqy ~=1"^ ŌW-<4⚄(8E]cE&*Fb":F8>1\Gጻ 4><n&x]0FX"g!J)т}Cwe·_^>3xz$pJ8cz g5{/)3 ^N( ͮRLx55 >yK6s8CW3 _*i4|l3AG!~H.L6$ 悥!va@eMF7S(Xa)&E$*e ZO>gc3Pg^at~ ̱0rIo8c`D<M8<8w2 U.lQP_X~uϦ˿? g8guj(<`ak t5HE^(c' ~tT#W8oN7 ?IJ8#1SFƒb~[ F,Ôj9;& X 6^b,_F}3 JJ8:}QhWi pe}埚 q'ga~$=N.Fo<18[ g8HէZj~d"ΰ7CvYJϝXg8םf"ӗ8K2v  0U#F$^X0V ! /]-8 >Ц83⭀ qԌWWp ιpp0?px~IB?SQ+Բg+.Dl\pO ;&->% Bôg7d!}@ uy9gaCpN gp䓋cGVV9-<[p~{{KUsH%ΰ^:Ά// p=~bV,Nqzo:~c /Š<ߏI >曃[r3 Gcrg)gx,U8~؜@@h'F&Z&&3jfB(': cF2 6O6$񦉏 &pBhB|ԇdbE>'s錏_!6 tP,/\CEx#<>gmzQ#A) oIkhZYY >޺S1؎-vwc TLgRpxռ#*ޅq=IVO'ةr^CO@?0U<5ɏs&M2~kՈo`$z0^P?FZ'¯q?OUxG9&৳bnF|/$E|{x{-(d5l| ޚd3fdŃ0;'A26qбA{Oa$$$,p>I)>?$Rx0G.{W lJXVc< Cc ]LifScx$!Lo<t #C2d4 H1A*FHHhSp#Qx>& 4.M |[]0'\a4!>Ia4O H @4@!`-vHHh0 "Aأh0A01ł؀ 5//AH @$P@H ŎBA pcՋ pcՋ Ver 4.11.16.86 CuJ%J BY48@!*p?'yyyyyy>yyyyyi<|yyaN;; Kʳ3l)" pS2?2 F~"\Ƴnt6!b4~p~٨lMry6/ry68Þl>tv%SgX]C$e 5>5:YNϝԤ/f,*tHA6xxRt5`WDE ,n#?1 /z- Mq'"Z=xxMx)^c<x%%`wqq3I'SsPV?S'On]RI O_q0M7όFi% /:˳\{G m?Jye3ŗCm"~l!΀cWDMNRV<q#k|l!ldpp#sݾA9 j0S g)ΆIOL]蹺_qMSWf̙ (*LXpq,0 GN'ij؟b7tbdeiB gl&D&Ot-b#~wॴ 8q׆ qD|ԇK.jEGcQ|:">.|B*x[g.OmDDjkp)7I~Qۢ6ɉ@!?/TE>@XS?O%_d|4b"-b#Np;,&Vܩ3A'2A0ޗ)0XcO< 0Aaa% eǷ:ԄccAN-lx|8>ў/QK+1B   `4< AH  ָU@'# ;XV*++><]|uT[5:tX);bC A D!# {t|¨i S&ڭnbHMGUA d $!@X`:*"A!D!$T4 0ł؁ ^#,"$ BBpk\! *F#bB A  pcՋ pcՋ Ver 4.11.16.86 CuJAJ BY,;@!*Lp0`r'yyyyyyyy>syy<<<_ӯyyy<<<<qhyqzMpyy@#0?<0<q& gEG5@HR2jE^Ȕpq?D"p r(AP,h3K  xF5q0( ڙ#x +zDL)kI^-]aA,;)]#88 #Z`>Fx'#0`JUSP=vǡa+0VX;xN]poiqT?;O֗×?T 8;5?~Y(p$q{ u]a *ѵ[)΀9׹KfO)U Ϣ"6'B Cl0 '!r ߟp}uL_ūp_3g_? P?8Cu#njg3B8CDؓ8'Ѱ RG#v#:28aL r@&bA ;L%Aa[zqG3u ӗ G;#1q#w׿prrIC-#CD*2c5Q8Gg3 ?Q/ȰgXTgx|'_lDwlr;~>gUz>9pQ5્gHJb3AKl bq7g`4؃& 5 $0e4(<1#㭀>ž&`9P XBc7q3/r833<%a?}ʖg=b߃3D+aq :~bl405>quZT|ۧO._ {˳Q0݉6i3[VK**hż?gx2<ڟ>ag=AB^=vVk|@b:&l#j/YaAԀMV F?""|Ղp|w, Mq"0 Xp>78ل+eqzIOu 5j٭5p8YXQ pmy8Q)ci'KVJLP:GG$E p3??o^d9> -esCiZ&T‡FN83< :._ Ok,UptP14e8q6 G?O=t89ΠܧG$i`p3\n(_/Y`2:=pAp'ޡ"@@ЉFЄ ۉLa!~w#~wॴ8qՎ qD|ӁĔ(|NZ`ChyOH X| T ޙ` >) MCXbc=gaаEF2Yߋ9"9q4k |60p ^=10`6;5M'~yH)%87/Cb{w?'x" jPc 7 #A"h0q_g(Ɵ^/xx:VjNW>/]K4%Ux:p~'}K3ƀc H ɀ@, @ A1ƃ 0q)`<٩]_ZIⳚcwI:|$b}uT:%IaqA0BA {,* 0;,AdD  C xx"#!H0* DCE@$@lF`$  pcՋ pcՋ Ver 4.11.16.86 CuJ^J /BY4<]@!*<M2Sg'yy><<<9n|iy<;|yy<|yy<<<ϳ<~}zzyyן~=<44yyyyyy~<hxizͣuAzgxR0γ, ?D9?" ϱ1Ć#ё"nQ1 KBD0>&1:"ňQ3@\ep&Ҹ(0[P=p "Lό  Ü: _[uypgu;O%s[2`X-K9|<0K\r pY g7MC 'gyP8p7I#h-TAh q3؄2c4(0$@l# !b.Ea+\$nq%b/I~r> 9e Oޥt} {7ks|y=n|΀0 Y.lY5ǵ5&X X8 Ѱ!KaGla@e(b`FTbp*0p""W gp =`"f3o0w2 qҧ*s Z Ѝ?SvzyqDb3-$6!шS #j6p.nG0b(l##x*GCQ+$I ||&R$nR.p1z@g=8ì8y:H _pDž;J ҇ 3l 9oqk3Lr_J Y^ |ZW+y>KSqT?W1zbp4^ů=>qUTO/x=DLog|V =Wa F0xsqImfӨzfj}8 9>S905}q"ەw"OSY ΐlPlO!Rd9D Dla#,H<9b#%rZ𜯏E?)Pz@ /55awbKX`ل AC\M|V`Yf_Cdpjig#>_&^0 g؇7`Wҩ=q^:K-yoIVljL3|Ry60JnpͷNYqxA^oZH 5>-x?8y~6 vOҜRpY#{ğhjCVU'>~9=g=`3xvH oB?Y^f-[YY+!w|M\cyBb'N &3j"x; ?p#;}6."c9xB/!Ĕ(|zgiChD>ޣ9C#(*dL".cH`RM£/R:bLId 5'#Fst_/gLPi|_xph$MsWOd|WC\GP#i >/9/>Rxv=ǭGYq_0g'қģ;aŀ#G),OgeO<;6wUV.mx P ;2LCXbc-$AT)@HX"!a caJq6ga"wtiemxm㖪XuBZiǤSE!NJ"SHFY9 1i( sNd& #Ԁ"A0`d4c=@HHh0ha $0#pb^p6b,p})>$3|wugi}@MGd,&~>tS B A4BB  O #A08L(l`N6=RIⳚ P)>C_~SLE?x>Kxyy3.yyy>s.yyă/yyă<<,ϯ__<<|>yyyyyyyy><<y(G |>E8xydz<3> (;yGq ?;B)kBH &̅8xD  C8@$hA!sIH` @'"= Q"!Ve\*a$S$](ň/bm0|R)Ȋc!?0)K |նk; F$#[-`bF#B!GaQDŽhQ!RtA<1"D1C8`C1V4Ҹ+LF`8%a$"x*p;2`"ˮW1vYJJ<8o_M# ;Wn&akѰb)v^ЅbIl_ڪ/.! Іq5 "+0E `u10(8c*ah'&J EF<1" ;̃Ws3g:A(<|G(F%UVa83qvXx(Q8NbOBC&jbD!i U㘡Mȑ ¡P\X0P "O?].`p+Cbħį!"%,C}P+}@bp!Ht o;T&c8L%JDVB2!v}v8`dPT%2%bb|Cp*$Ũ'cCb W'vE;isZ㨏#שMyMsvu'ر)G$v4m.T5d"*Xg+Kt usIG;3JD8F$ G cL)8İ'8!L!MPC".- )j#OvHb ; *1qz\ۊ`}p/& ]e/)7Ἅ[MZ^(vC&nJ8jBJu]cW"`,o`M0#sfCPYg Nm+`&z8t7FG&ߠCGCHCDP8[1\p2 /#vkQKB&O<VxhELSC7Hpġ&tp䐝kyvQ|Owab>tC ,uH/ ZE%v :/;tʿy+ f/h\sq90ʶjB8m))&I0VV[1D`y  uʄG^Q"F G[9g|rSgcAò/I"^ L y\#4.S')/'ޠjb|Fei "_ %C"FC#$i 29-AQ|1-4&co׺@2SY?71ÇyK51|'~YmlӸ#cobEkWAF!Q0?Z㧱tVq|N9m&x*o㧞1qNYX[*Љ00XˢpH3Ia4=*[Au@:i!PPXcD!E#@D02Pab yZ!0xrm1>G'Q(%OKs7PH||n>@)jT *`D0U@ !s @N + 5R%8R r"HofN][ԩhE_*x'p p *1! B#!)2!! 1)^OGAi^j@=u0Ҏ1n!0N"<,@ DDA B 0 !aDBXc) #Ad0"BȐ"FC B {1 Brd`!D0" B#@ad B pcՋ pcՋ Ver 4.11.16.86 CuJJ OBY8@{!*/G'yy>yyy3x<<<<<xn?q&|쩨7@cRjbnҶ͉3l!qZ7j4gC3T+|gxQC{Mx XF!441 `@O"f"PFbp"z.aI7 "q>TGVzlL )%a^>)ř\=8ó 3K Tq \+!>(ck"!KaG2a4 ԀFa)*M@UBvJQ}Mb@ bb<s:oD#8T~gXϚgx(T}T=,G#q͌DL#v!B#v0V@ƾ{vpf$ZVX p^gۈeSx( QA8E&^|qFg3* |f w?F K҂z/N wprIY3HAwv2٘/of$A@[v<gӀ3M8H-p%3f"e1Flq0b!lD<$G<+L)Cv__p'RΰYxRgx8y*l` p'ga~rz^l44yGA 1k_>8[F".Kjra~ob٨l/J vt׉|8Y(֖" +k4P:r{p٧zՙ"kZ|(#xu#b* #,H<:b48}Ղֈ3cQ6."R}A 55a׏bK0zNxγ 'Vؔ!8?$<BZᅠȳxȂzή_l$f18:~[{dNJ1<,$O><X2DGi?!&i#B1-8 ;!Z zBBhG3j")D&ѽ- |6M>V'$># &>BhB|ӁĔ(|zjEby4 L,nDh| Λ#t&z0XP~<+gZ'z ?Ql$ՀM6 `4F`$<0 A 7X(l`yyyx<<<<<<<<<O,1b1W1˜hpBP 4.`?e<*8і0ko1=>7=8q}=D[x!՛ΠGgpĈ9YpǏz*9?BMd,c`Gc cH ($\M"6fqH0h !;aႩX }yg3r7K8r I)>M>' g8CgM[Ӌ4.pܐ8  9xj@7ؠ+S8haa.+B gzqP8ft߅FvI8S˖XJv3XQLkԳa3lf0wA@bFlЅ+5gٱ8ÅHB>-QXF<MgV l2^1R2FgkpTgx<N\[n`7WEtViOg|=?أ,4||Ot>&pS/L3u[ `p%c $bog-Ngxћs$ק["7JĔѸ0`qL 5b;c<-*b GcM$̄)}Mv|=8QJ gxOIgBg5`\ gxcԑŠq4$7=t֌$>-jm |D` &^@ӀET##Fc q9 Ǣg&^h$ x5 *#b9gSwss 7G“_p>e q9_l)?3=*-:%'D|+\-'rU/8CH6~ xy͞3f6*;YM㘕@0>!tb(epB(X"e-2{Fn Ol+g_4!8!>@sO >U l.2_4i _Gp4p+Z&^pYm$Ry~4D xrrŤbc~=ī51 [ՕH $D"~>0=D|S^JRp[cF+O)aG|VUD|\| {xNy?r3Z ~=A:&H|D5G| ǚ>@x >OkIO_h##"Ic'V 8_2 qG}.;j}'QÀi*bSt'',H| fx)`:Gd<:ɂP^qgb)0K0 chB-@X`X;r.ppgS۸#8|spGY" ?mb9YNŢXVXp(ͷL%)>El5|R߬2Q4$#lpsBBFBA4 Ua .8ܙ:y '⣷x&? | Lj8g` 0H , BA B0U@rDaJ\Q">9yyYyy>yyyOShyy'i,J<ǎDǏF4>xǹpǹcH&gG5b8 #p2'`Ds0PSHW  ~K`%0)}4%~'gx2%'}ʹ.ws}9O|g8|߿$: 8#pV}3ň3][cΈ3 9Y /49|6ăd@5uXd)6!(؀Ĉ#uq,i<%la=(I}8F~NǞj_/zPgࠝJ+(!ox"XӐkq~M#4_13T!> Ggv'CH'P!8GGѰ;a"N:jqpdb^LֳjpR 2<߃3 v+"W Ϛ& gx, &# 6Ќ-vA:P[hj@C t 1E 6  UؠKxH`/T|zqTqgGzBƮִh~Yi/.TqPx"qQƿ}Tרg9zgX@pǀ4RhUXJh *6#0lhH&S|B-Lz_vj<O_Ϗ,> 3)ㅥGJ]0>}#>nIܖfp2 ( #|t"{a⯼'%Z=?z 7O৐N'٨'4Uњ eIM]sWOPd|OC\i4|I|Ec/MWO?_49vX|NF̅ܫR&%RAx%'糩3Xc/; xuDL5kuw&l>ՀyB&$'qp h  q !Q`DA 5vآB !h8!!% T qH(hHC(h8A! pcՋ pcՋ Ver 4.11.16.86 CuJJց BY8E@{!*$)'y<<<<|<<|xyy__<<yQhyϣ@y~<=~Dsx~>&gG$R@/&XXH`#8b4`(NI*Qp`DT,#GF]B&ΐ[OUXZb|+|nINRSgu:MLDŽoQ$ S4FM q/}e~d6᳘hSkW1c cnA4l0G%!"<8xv4R@}'N- cph<yL/?H' gX/''9[ ',A8awEZS Gp [gx1bpC|52w`G`) 4\M"6XpzDa"!."FE}yqe=Bp^>.a~.7ɷ)OgؕN<}nM48#@Ɉ6H 2{!F+C;ԀF!6X( S8X!0",l0nV8CxF`!Tg>?iO_N gX/N6g9!gj<,gTh1].` хEqMa_g1FC,+!=^e(,#^ &^Z!IA8'>&M x+܋Gň3 '9<.ɋ_3ܕ3ϯ`2qFF,Nt!.br%0ŏQ\>Tg0.|6, 4; r [O̜Wķ-FbMbE KTXx3d?) ðkob9_|84{L OnTxÙXCgVcȳ>elK\%og|^g9g=gI-}@'gui;놅3܇O҇Oo|6nϛd=~N'ŽW'#FL6SE8#1c3<jj8(+)@V@ x`zkB^?"=9<;&pʳ WH 8~8< WOzԧa[4WT_O:œm.K֧{O' ?@[Ўh281Z!o!~ى~rx ggܣUN~9pO9-{+SV>Lq6 FII7$JZk2hpk{P:ߓP"\֛)+c ɢ\:i"8+8!` ꉑN e#B@(oNCn bӿϦE's VM|ф8">C#\Ds>5-0z:#07>]|&Ϫ &\iƣ GQ3WGx /$3yho׻1~~tG㟘tz ?AOxE|UW>#>*?m,Rxei^UŽ%%Z-\?[<_Jb;׫ւ?A=F\GRm09&X' 4?F3Υ ge!nk(<;#Gc5dz%U)HR0|+~S-+LIx3ՌO!%l_=ƧI;êx}8ǒxfT :6X`c< 060aаp,aO+كGp3,ó&Oފ5!85x3yy#yi#k9kJy>ckK!kkJykxy gG$P!X#jaF8B7JHqPa$,S&~ݦ:j0y㳯P5>KH/Ɯ3(͗i'^V^,ɝpA E<FD aP@&>&!L# iUD"0z6J7"Mz,fT$0 U|<\34~k 2gM5J;N=;'87#@$4cq1CGNPP #$TE‚R•"" gϼCy@g=8C8Ã/g?Ƿ;Vk< G yU<=770W fFspǀ]@ ؀Ta+a1Lŕ#a_g3)<G+p 3<#Fa:K8J"C9 I*J$>&Fԥ33װ[3psU≳-.ٚ4VLr.~*9WFcrP:ofea{SNL3׍YϙDLX`- j c2#"3 î@{C_2Ά9(])G Ob8۔[ΰOšt"n{py_YGЎW' "*!# qAW4 p7 OMq;⭀Ff#xxCy=;&'<ǃsxT`p0?ppO -\*iV'nj$>$-UN'lUSP5u|ᦿJO |T0g|e|.Uyokf.ΠjƏ\aI +NpqQQ $~^V֞MG"vI'D D&ꉡ#e#B5c w{~U vO''L|p]PX~6 r@ah|`Jg,/(hV26po?W4?G`+|ӖFɀY0m8 fI)fG#~#~-PK L_>ژXV}RŽ܆IG%~ Uz'KI,'#:VG>WH;aj|_7A}Opi ~">șM] H8yxi^≆#J\ >}E5o/#$׀_ 9=\P@ (H002+l09! *L OYL}L%᧞w5҃<3`LlN2|{|s+/c_@"A H #ᙀBh0WSBUk) ?2D||1|)7ħ`~~?g /c `$ !  B -6آJJxˈx)҅uYɳs>i< n&8HH !@=6c fa " AH0 ^#^EBGB!$@$pk@ ( H"aH  pcՋ pcՋ Ver 4.11.16.86 CuK &K  $"7@{!*I(y8=<<|xyyyN<AK_YqMT$<8fl"M!>81b1G pQxupB0}l'xJP3nS O6xA9 g`Mz h\l.͛́q2 Oe'a^_83>E" g41F 쌀 #8Dl:363! $ЙёhأcԂ*񀊚Gpp#I1 sF>8IxhGg]/>' W;0 ϧϚ*}@uF@l&Np`bЌ;<8*8@h!`M #Ša+X{,3Ag> cog'l׭:l; Fs\7빞SG gjˇUu=_34 Lf.`Q0qMa_g2FC.+ B⡀> } BM! 4|2>& /ta U _Tf2ΰxu.ldeHϸE}X|q*P /[=l!/51'0_|Y t>~6?|: gWj^łZVv600 ]a9yYEeg8H}O`fr0Jb>v儃pW{ma*>m,SxcLLvħ6|`ǟ~/)z-'8Wŏ=|$n/"#Z'45ZFd|DV_7h}Bh4_ g7횗3xx}<^~d8Á'GOt3<#+ 5ɚhVI<n&8H @$l  !< 8@BE H #A!lQ@ F!$ Dp@@owxxБ0! @$pk H0"!aB pcՋ pcՋ Ver 4.11.16.86 CuJBJҁ  $ƽ@{!*!'y <<ATp%! 7S4E&g_fx<˳ZRăM(&Ig~T۷hpY9#>:~³Jq$0ƫăd;$ XL"0ĈEh1UD⥀: 88AO ",' qJzqO8:~K,zlL OF?U?|gx3\+]= 3T12Sx8 q@D C C"3c1(dء2G!Ӏ;GԂ*gQ܈xT͟]ZqDzpgG+>>:[$]%D^NL:Q L I4$!X ; cmX=` jv3*b"" g#|: B'1 u^Oqb3c>;lFSAD0~ٱq#c1D 0BX⡀W> ӈ&B" hwp1 t>B gx4}a{qjRƧX<18[F Qx}py62ΆmS#/lh"GjY1[Yğp-5ideka')lGop'H"X;lIX ̈3O-B cav~T2(?1^ i+ ۞ {|l4)pS G,%Χc̾C69DgXrSܳǓ˳Q0gx"jhx+gɠ~2VPV* ~OJ yp}}'sGzhZkݾx= /W*y4*/3qJ_e0̎ HzbrpoxOr' F"* F>1wgg5 pw3<6")GxMx+lƞ}vLsMMP!ia"B-+ƢF.a>UK|$a:IgSb*9#~VaL't!|Rs kFE*[ޤgx,8!^(?`0z^A|3m~GH[uO$^GʀN|bPF8"Fg(0wWb?E9ꉉBՆ "OE6i:.bZjڜ48Cv>9%+|E^8%ˋx"6E{foJqs,"~SKId Ī"L11[JVǟ/)z-'8czzO৐N5#֪?Ʒq@ _'#M&~1t}(>KOG8;M[ ďNq0jW.ϡ{,po+5?e*>$Lǎ5|תisxdbZ;#w:I[O@$>oM2^ 8<'| 2d\8XX`〧@FFB#4lAl lq}O9W E58 .m R[4ˀ3<Ό3tov3J<]FߝN/~>qOJ4~}g?q`(!a"p@68b  FQC߸9̘{|W?"~ȧ:&ʱ»qhe/d3 TlЈ FP!d@  B P!ǸUnXBJ,\[IcF7.7}0Jϗ0 xYKhc" A"bC*A0-vQJxK|?t#LبJ |Gu3OM 6pn&8h @$l" s`FB!;lQA$T4B@!$T4@!ăxx  @$P!7=#A bCA !D@ pcՋ pcՋ Ver 4.11.16.86 CuJ_J  $e@{!*D9'y M<<114A8,}$K(:;%p|&|FSKGi6:鹮׿Yڥ';?R\qIW\pZ5 ,#q^>Nۃ/p"#>x Xr 1 vc706؀x?1bQ\ExYn R@,Dqp<@4^FrΦÅU_~$aA̖gqLs>3\)c?qE2ˍMCF;0- r@C6D,< Q v ۀw#Xă4+ g` V+˿gPr3<`!צr]yI=3`RCq&xi aGBH cPpj@A AQ&x ;,cEDх3~P8$g@ [ _wߟ0>xDO:8COl3</ojJ gh.a)4b`a+acfg+ΰ3C@! 1bcI@/P "Ή!ī Rcgϩ gx& /8Óu$f˳Q0_Og˳Q0 Ζx Y|@gh~8'\DmBlESg8s|yycO3'#xGp0!,IX# *gxYO-B cavIJ g8ɑX2)<b;;Xf4by D `~>Hx4FY߭ixgx!P'VZ/2}3p|.:kkpyЈ5 ,"6X'FYa)~E30 wǣ8V s❀p?B5t#b98&8]48' &(|~C\Dx)jVxM Gb4!(ļSLV tAIIORƓƸ8C U8W~*ѪGGz6ٿÏ],)1`G%3>+'F MR&D& (XnjbBKiA|\GyAjC|ЄsĒ >Q 4@Wϡ+N^?|NZ85ZF&8h 'L=Opď1spwCE3Lqg]g:@=Yl?c7z)B&9U&jBӸ+j(1>`<\kNI|*^dp'xPw |l@Ɠ&*6 306hHHh؂@ 77Ӵ8sNV~=8YX2?/VVqq%lGķ^i;suoE \|vhb>g`P` Ah02 ;`$$*"B/^pp6!Zk|ˏc໏=^/IG[%9u[Y?ܫkp##UJcF4$T$BB`$!08qn83-<~IcG1eh)黇!VB~Q߃fxaW!4 4 p F!Ba lQMo::F]Vl`\f0L(@mܡ*  B{BEBa$(`$! FB  DѰ@!!F%FB! q!h0B "B pcՋ pcՋ Ver 4.11.16.86 CuJ{J  $Eq]{@{!*I'x϶qy -"l0dg= 5Ǔeǻyp.0 g|J?hi0)SqJ!qCvq7ʸ$0 m*Km#"b+Fpq<8$ܭK OMqM9V@ *qT{sEsR?j"< _Ьc#FAqy<\$| X;%3`歧ʁ4'r^ Z3z7">7r=O-O9e$Gf:b}>">簏Q)=&U9'6^KJ<ǥ:%;?rڃ^  b Qk-Tj2?9| k4|3'gsg@3ΰ郮ã) ෎s֐>g/$NNMՇT, Sz (<>_fjAx|RI&RA w&| TKP'8 xfJ|`@32Mt,`O *6hHآ$4,gx\/9;qjy;O73Π&4ush?tWzjSJCӤA&6U1>Y"ۀpQ@C4@0@8AkbH0 #,[wu>S%|qK3f|=3<jOt~hs.\+Qa^8gx$F!JFDH*#GZ!!@XLF!Df?^?P|.}0dLO% [~^EBC DA pP@` la|pS[w#t*$&yT7|΄BIM;4v l0BE!!=H BBc- :HA hH^#kK"H0CnpBEѐ`$B!lP` @ pcՋ pcՋ Ver 4.11.16.86 CuJJʁ  $E86@{!*I'yyiyy>b,<<<s~xyyyy~xxyyyyyyyyyyyix縺:z燧:rY zq:zarygvCfa `+ PP' 0nma M3{RZ<6{gOE"|?ٷG }Kp%"WE (gS!!p8nb. lq00XCD98F\⥀l p 0kl' g'>*J߉8#phGitҗg88C_3spI3cԀh:! qNXcTAh !bЙ! u6D>` #zAxѳ"qqIz81pǞEWß0=b!3\ZMm [dDBHT;bE h86p@C6,BM8v WhSqg>@;[. ttq4P"ԟϦYne g@liHEY78 T>صLdfl),B#V^&`=;6ΰ2FC0"a> ӈLᙂ]91HyL_Tngx)g8_%k=b )ۧK0ry68G?5\:I\WA|7gxί/FbKq]o/w< >= py\d%2uV8ÝYgtFP"#hB,"FaK* 6qbgM#~utrr$k m&pP#8ƃX>JpQd@l^p$ kbJR'qUgxJdސ jE y\E|RK]A^Az g(a{SHLҋ&gioRA *aQg\  gx)bDy,~8kp-8T]!I@7TaEyxVxcOk%=7ӮkOHG>l/rX:J k$᥊OJupK| 62~'s_39"\ksHR8s 2 Կ ?FS3 j- 0LJkiQUjokpX۴p|uZ/9R0!~&6(N5\H|~ ;3!9 |u4O$ـ:*^ ]| P tdL\T,Px al` # [0`ms9Mw~f}X"'~R ͆4Q=%>>^-'xqMET[m@ F6BCF 5# 7 #Ah H0TX|(\*OJ{1|Δ`h #6sgHoZs O㪃W[pB,cP|V%"aD`` B` ģ-` !S\P/Tj۸?$%|rs^:"c{y8Ʋ-O?_0-? /!a)  D! @$@,@GL!Q&>ǣ|΄4C>``#TA B{ 1A![TP! FB!D  !@ ^!^BBGC!  W=HhB 6hh0B pcՋ pcՋ Ver 4.11.16.86 CuJJҁ  $7@{!*E 'yy<<~yyyyyyyyyyxyyx繺:y)b1yJZy> Z*xy+g΅G$JB"#@&yaPiI)a!5N=O3,>^ߝs:Fcl\8Π}~3<_q)X4 38xM$]1' pXDy\⥀gN𔰇#p=rc 9=} d>ѯvA8C̟o,f_,!aUޯU4ΐ9O|g8ǜՀk<#!i9K F 2Dlas 0;HLCpAx1):J3"ΰ-w-q"g>@;[?O8c$\Sz.|xJN3% Opn @$f,!FCAء4d;L Xq ;%\) YXb3;g8*gΟpG}F5pi<4V$ERoyғļN =yVguVf yZGД]8y $b d.a*$b K ^&`?/ c1HN1zgx&86~R+ Ue5BD߹_Lĝk]x?i"Lck˳of٨M|^zbp3\g(oڱûmP/xrN gx!]g7\V_[ "<3L̊'>bħ`* X\#d`K* v3<x3î1_')/7$'GbIʸ0nȳnj8yA,A%EDvW"^%.9^GϜ6nq}>?먳>,/l&]!5?h|V"R^n+ɱCaX:r> 1Dՙ;/ 3^"1kc8],eQgx>ٟ ]Opf}gPO֙y:gx?O}QO&yre]9_/8&yiy2A$0]1/f+]Z"ΰ3Xl@~-~bXS;h3Lu=jƒ% /MqUV@#q_VX>P0^۹%<wsgO&(`7?pp~Z wQ+Dx(9V|)^<[gx=9N n&|nXVq|gf}ދf)Š0twoc? WExjz@/d3NN<;#p <#4&G@ho7 K*X?!3V6 a2~HoRtUWK)YW݀=~E3>ǧm$S? >>_=;%nBM)|ɩ;#6?L o͏+لODZ#*7IJ Y /u!M%v?O^^?rւ;A &5,&GX?FЦN8|F ~|1‹b7=KWʴ >G= `%1j!*}8> Un GĶ_0 DU5ـϚZ|kg0A >xMƁaT,`,1QaP! 4 [8`e',F"sƄOUu>1XL+] s0Ư#>?J nZ+a"nI>y 84jp Ӏ Ԁ*a0 ;\D$ DC@0.dt2 |Ta>1ES2NuiV앣Q~9yyyyyyyyy>>yzbyyy燧:zyzy :zz@ga }cAy\c=MsP(}GDF Mgn4NniL9I>ЯbKѢ$8YyeN4 g@x5 gP0> u#}<& ;\`A,x-68x6 uBa'a:`?@p7~+ /ZLņ3<3󧗤jd[|n3|T 7(\}ȵq]=I ?y FA%Khr@eL!$vDFh8F n"鳒Pgx$Vp04ĎH$dL!3!N`eA8 cBEp+,@ap$lCaX>gA@aV39W}3l|vمx(;>~\Q|#{g37ԪVg)"<3<w?ud MⷐIhDyA@ɘ "6 : j4qB603C(G+T,h8}J/M#"sIa4Ƨ+,|03ݛgx(9TO.qDFlNt!w.lH%"Rxኛ-b4Kq_^l\l3 _gZx!_PŌP5.C"ZLDΰ F&5c.rr$; rv+F\>c<#DFEL"^>^i y=C,O>=O櫭၏EJ)Y'tVpīp5d: P_Ob  3>|Vicp;hg8O)ty6C_|rd}g}603C:~o=x{/U>T?xV~q4'ώa?KnӢG* _8Z ??ݧ r"a1q3Lu==;$q(r3m3l"w)T2^rn?9 8~88 7NppΎ <|wNR [O6S+}1[㡃em إ4 a8ܞM a񍺯O}BhB|̇gG|a id|, CF8H%3u1H?Q*E *F9຦)q=xV$_8mc8&媈O)$ű'3jON5}3p<v(~->bZ;.(5?'El'S`'Tp˪ch%mxj*T%~ v?i: z[u X'4UlMhȓs |_#W4+g|_Z"uegk\^HO/5qk'jx?֚d3٘obZ4ggԊ_=A 9W>UoM2^ 8ܩx#$cJ0^3* ς0 ) p ۀK'Ga͜9;H 4KC|-'zďz]+%|}+eKw1CaMO~Ԁ;( ӀP@8= Ap n1@D  DFPQ._8;(Qh<.#8qzV~}lO g8I^2p<.~*>\Y- -9!"O?? +  44T,`  JQHB`[Jx@3[!Y<>BLH|0Ѱء aB B{! A @{E@ F`$4 4t aa AhH A0\PP $ @DBACE! pcՋ pcՋ Ver 4.11.16.86 CuL L  $E@{!*?,yy<<yyyy~xxyᇏyyyyyyyyky>z뫫jkykkJꫫ+xyg6a3JB/88D01FH u2C%K+8 ~w6 zqg8,8ԏL2ao4i^3(h~UƑQ83p>gIR3xSEa+O"D,"<)Lg`9S :`?@p=~c 75깿3D L V^pK /񙖨@ ׹DHyMPx*$E"l b"SflbA2zD!l &U0xT܈xH8ò|ҙwH/FE8ò|ܙwH2Ko(Q&3LJgx1|>qӋ8b⓰`p@F;^"B3iN`e 4,p  XpU(TRD}pLĵ3<3ѓzrwH 'au"ӗ8Cs5۶ۣ0?<348-cK #83_&bP9pZ"aGbQNNg FO ]Ps8ÓKk:~xM8Ë,{;g%w=3kx&^7-뷜-x?peTֳ-2-2~N-x[xry6eB}_'J*A$p>8-G\RYA3!ls~ttpݼfVEH>/5~AI#).M R$c4AU@2pgh"r3î)53HlI=`9#jtxGG0DD8q383^M0\?p=o:e#1Àq?U$cj$~չL">kz(:Guγ)Oe#E"yeU_,xЎH3&T!<3Ц{x:|$c_?U5NO+>v<51&xvH OÎ|:|ap s^?U~ 6T xWOqq8= k}<0U[^{s<8'NV?UxwQ+ W GS|y$~{ |_{N\7d8iޒzO O}UO:5  Ƒ3a ./\$΀$cy" )gxg<5-9"XC#hxZKB4y}?"z{F{ƕ9oᰜM ੽xE 9 SN=y-g 2~򪛃Hj{Xb1 FHMIF7n OjON>A Us&&|HX~v0@(㣅C (3!|e]?{-u6DK-+h󧻳‹IdMM}|I2}$Uiv8W2 MoYhVs,&'?Fs#|bğg`>{J27A=QkaFm_=nWrK-(_aوb:.Vl'N#3dD?8Orޚd$fc|y'xPo||&S`" X`+< I#l ,03-MT-.uņ< 4>N{ӈz~ϟraSH}w.f/mBO⥀;4O `  t,`q $!!0dp00FhH@$а# !M<7!) C *+`$T@1@$ #tbC 9s pcՋ pcՋ Ver 4.11.16.86 CuJ J  $z@{!*'y<<; Њ3|2 / TRpGC }؞E)"82|̲)z͔2(!>),G(ؑH$fL{`q1 (XL0"@7#laap?gZj$8aRc}q~MiDUc: -1g~uFp} y8 /ce`;! ]H2$quR~geP1\ {:ǒ#^  ED\ oW;qO8"&υ3]1.a { gKc[oy,x?pb>8[k,Oζ??pc ?g3a 8r8[ >{pM:f*[+>0ax-`w2ƞ<<'y6!B!nh!.0\ |pc>1uA\$;x*cqϙ/ Oʸw'>]X~6 Rgy?2vRhuJqpuBlNE 鉡#epB 1"jF  m_бi%-2'H|T]0jC|΄ЄώK !8O%3uB|pʸJ-/ )MZ.e~C g(bCzI_+SZO;czs1:>^)N#|{yďI RG'El"~|>">pGwFt o}1|g^ÚJ">)oz*~t"$|I0u1AXؚ,#'#%n,d|_^ӈN||y" 69~x)aϝcS'q_ؿ+ Ԋ$Q>^>"n)O#>x6aU (WD"IF/ؙx$*%n,L,J@B Sܧ}Q"z: A92VǠ)i<{ak7>[[x6p쏽v+)Ro퉥iƑpD5* l ,Z@Ad5@q T$ $*!4 `|B!1f>UBE<_x1|fJ O] =_y !__wf4;ğp'Z9yKZ-k2 h BH '   ! bs,F!xRqYTf>xc>e.?%< ۧa觟~ 9*`BAAQh BBa? GVHle%>.f0O(4T C * B9#!0A =6X* *!H0HhX` &#A0"\ @$T4T@4t  pcՋ pcՋ Ver 4.11.16.86 CuJ 'J / $ŕ=L@{!*K''y療4<<<<xy 6x>|<<<?|<kz1)} Pd %?]$n $Ey2n!E3<<쏚N))>Vjb g8r@&X(fDDBHFdželQh* ; n:L/'fL2Tvv?$Uq>g"^ڄ8@{ [,P02Z{LD ko~0I '99{RwCgxL0.FLqD"j.`D<-$g=nDY>1$|yp*ijEQ83^?i/uf^fQ#=@j|c|XY/&&xT ;@L^>j@Ab0l3<yڢ&$7g*aӚbS-qA%׿wISsMH3k=;՚ 8vhD XDtEt̰^w]Vq:*r3m3L"N@ E,S5 +Vrn sx%ᇃCB:Q+ Wx4+S9~jz 2a(=X4+2uSu1MD;%eܟb:1R qD m`,^"N1}G6LMO14-Jǡ>T>_YLj ^Px%]6\EJ]CWx.)r~ Ò&$~-sk?bJX;M; ?*W#"6?p>³IL u;#:{k>N Ă:~M[⇞@O #~)xtOf[d$?$ wɃ[|?اi >UK'OcJbWx9i/_ȝQeVXd b-ެ+GZd|;eGW|}OLu'/| T[> >.@L2:ؙxF[\Y!4L-26)U|fµ& 7)qo𪒩~ҳ)/3)o]p[*m6Sso ?j`P@LˀPPP2,p!(h BЅxRwtZF*9;a%Qć ˏ{2>~ïy)->p|GvmD r>b:nn|SY-~(>d|8>Q`$ @B“%XH0! A bs\L Ou5IQ|? !{9l4n*K+A0A BA (` T! ;QvSDן :E Fgk3hx*CB !l&ΑP! !$ ;lQ!DCEBB`$  !o -  F`D!7 "@# pcՋ pcՋ Ver 4.11.16.86 CuJ} CJvp ? $ʼn}@>%w&xc @i4Th4ԊFH "RRGSȍ.Wcbt-T>*T3ԔX!}juGSVmǦ1T*% ACF@TLTSw4B(0ՠP mUərYG$P"u5@ JTp)UAx*ц t NPE* JHCHy&-Ą a t4LCoOzb'lLn4j4Te&BXzjk@%vu9LBA( ٘QjJ.gj5ERm!L #/Tt{B@hJ0F .pL8*8Q9Z`bGzy3_V!CWۜ8Zf-;GU9a-L4`UbGjeͿ 4 ڵ,BE7+*.GG~Rf=u}P<9W]1r^Ww *\b ֹ\Ma`oiHyBO 0 tE *hRjHhTL} Te)C*1&PH2Q}%*1VA>rS=F8R[GC:M$Ri:T*ՂjPh}6`MLj=6f^v2 sJ4> Y8l#Q1lkCMTČ're h/?Tb_b<ǜkʤ?UJ*O'qV1>z,8~t zqrt`n6T" IVE48ҮI)*j14])Qšz;C1ի@|\%jJ"F*a'JdD"!:8գʙK5P{NSemjjH X9-8Ոcb6 NFa?5Vd{'Ъ&LM->*_3^܃9}XA>SBR~i Eoq_k~VT@%K"ԯCNC%4YpD3tPa^ԥ};M~u<Zq'G 5pt"3] P>k*js"ő^҈ @,"U"[лA&4J6GJ?ubpVQ3% shHj5p.U**<j*ȣT +*-!R-IEzq.O nάڏQSo g"j֏4M"ՂP?R\SAZ^P_cݫ4M;'P uJW^ DkA ԈtJVAYj(P!ԠPW,Xk|Gg``c3VUh*ԨYQzY (5-DQQԔF5XP *EAY J(Q@ z:G{bJdQe6QPXbJd% d@V@r( pcՋ pcՋ( Ver 4.11.16.86 CuJm `Jf` O $Ŧ]-@N%%P/&yc&x9<<yjyQh%xky>Q:xz)yay&%4u(<I*4j4쉕)3ŕH O B6bd qvb $a0HrQSΫ@%D*qı> u@ЦF#@FCmhV/jTL :6 *n4UEtZPZ )V4Ui*1}?<3JL_!<>OcO8*Zh STjPQDթR֙ 1`0@%"D%,@8ZtJ4Ш@ Ҫt@9Q)M PE:@ jP=*hHVߞT8>A< jB $1Ý c#yHg&?@a aB5С ht*B!O@Ǭ>Tq(NUCC'+qV9k]fBfծY)QAH#7BAg'D?{dm%&NFz7П7NI7 ~6 @IF~S}!"9HyVdH#2gOD*"L}TOH14b Txps %7MgyRS#cX~̶+~` b3~25VGᒾ_k: G\ Ռ"IO+=J""ݯP!?hfSLLcF8h DѡP LTBա7Յ  zC]RU7Bš.Ѫ W^#ZAjYTP Bբt"HuOh1@9A!{zod%}#qͩDžުbG JšRG3QSD6Cʲ QPAVXUrD+Ղ! DYDP +2(h,=/(FPXd8pG]}%TqI5`*1oO&L,J H6{I]_E5Y D A@V lD( d% AЈj@I)ң1{=f7s [?q_! Cؙx31]ƲnS:=*W@AQԆPV"(PDQ5"ф"ݓU"f ÿy+t֩P5jT *E*d( j-@,*A( 4Z#Ȳ A Jd QCEQ((DQQZՊ@ VD( d%JQ pcՋ pcՋ Ver 4.11.16.86 CuJQ }JJD _ $že@^Q %yc6x9<<r)6yy~xxY燏Yyyyyyyyyyyyyay>yzyy8GYx>z'qq gy9ya gxya%pPԡjW&CFCP#MJ:ȑHPq<@,gWӼ|i!IxHD8|< ~J ;A%[LeCc*1Xt6aRCj"@Cmh1PC*FS-tu&C(ۡAMMhҵ@+P [bJTa#Tb!J7/ǿ8>OضδL]UI\!R rtN&(!T# L4 +IVzjH}FPiŃ#SP#aZf֥ PMT"p:UUb=ǡˁ JX7ѝ<C#Ip!v]86 2bÃݐ%JyE R AT`FSM)T ʡTP8TBjgBvX5G$j4PPP%?;q@C%7cJF HVS_>EjB%rP TX.TbY[UbO;TݘSjDB4).Phl$SZ>S tRĺG2FLP%Be ayLt!ց8?ko)8k-~YJ9:φt|h0G7y; ®JrxXTbJ eU#C= ցUb*>>78ڭ쾬+(3aL 䈾Zӄ:# TЖPI>T*дFԤ Bש1B%FD%2D%,D)V9" jqhH[j7sB>Ri4H*5B}wy>Pm*&LrS9P%& 02a0u"I"pa1'mzs- uQTe3 s>Ħ2%Tb- T? q`;{yC SGv yO U*E.2Nu&fEA=QɃ*ɡH1#z%ԫ|p8> STNZB-PALN)Nu_-S=jdZeZ] 9&wȻsZ" &(4j՟գaWu,i9e H} T8G<=^{(PtktB2„)XF'$B(YE1*(Aũ B,C+q kT lt} }>7]@߮ VOD 8PFOO=ѠW~W#uC+ԛLRG[ԧT r?.Im ߮TH1ݐ(L7"~Wd PGݻt-> >S#~r$GziH#>@'U$38|g M#efac'f5XW)8!taJpI߯TyHG#XjFUDJOĻϸG %*D:ǩNHOKqj֏40վcJ'tPM7maBbUF8%ZáXbъȲ*J(Ѐ^T e&#䘝'gz )A bJ8T4MX^&l'đP%R哰J ȃjC!ԪbYBm@X YUhEЊ!+PDJd T^*@navYGF<'r)6yy~xxy燏yyyyyyyyyyyyyyy>9yqixYy>Qj#qqa8y/1#x1yI%pP~xP} $g 5BZ4mrLnL1@Q!t(~zyn#pH|uXU" PwsTP%fo PP%O]0U8;i@gT"VF#(tMkX(QAZ"ŃV)Պ *ʄ*]#"Ț55(ӺE-vZt*1}La P*q2vlU~@02p@{I*q8٣ s*QEW mZ*4X0ԀLPH}FLjTbRDFPəLhK![A3N Ub?>~j*AiJE#Z?9A"ⶽX@_hہ4eѼ6Fx$Fl&"ޡ~45V"%jDъ@d%r(3ՄC53 ˂PB -j?#tP8Aq . \hD|ߥZDP8VD5Z_> bXLE6T Ԣ:)ũniHXSH[v] &wȻsZ%qLtf9M(!RjdV>Пq8؍a\v74^@ t7LCN9P>ĉ:b*B! USabS O-VD +O5CtQf}XAUD:Iepz'4JG˼HV[Nlk1Ty8N7+hQWj*<4+}JѦJ4Q'"A\~NETF f!u"~2P/GWr8)8սP7UƪCMz }C]Rp7Bš.jPCYVXFˊeʂBԀJ4TM1ԦHAT_uHn]*]ćk*1_U$[q8MLhN?(Tq89ՆBUB@ JJ *š QւBV"+EABhHua DtGp'U%j} !9+P^T!@VXT  t"TȢA(Q,(d hQ+a(z4#}~PW{W"oO:dlPE5陈K:eE8 T(WDb%( VTU +QD шbJx(eH3y0@웸n+q7F= CgBm)TP@P@@QuH4@ȲQEAԔF5" WB@DVXDV ʢ(Gz'*PDbQeQDhQ+ *4FTXA%@DEAD pcՋ pcՋ Ver 4.11.16.86 CuJq Jjd  $@Ne G&y#iu-,\DXZR@a5Hb*цBb;.w*qjL?2FáF"-J"T0bA! 5(k ԇjj4dPAHAPT1ҀF*~$g2òFR*Cj*1 8rV%>Guo$?]C J  ]@ m3ɡq(b$#.EPbH(j5MZ4r(Cšzڇ5Q )iZ "ԔP%;F̱ĉ*qG,VXI)4bˇ S)c SnOlOCļKѓW<ѹq@%FFnLj:7:q >T`* Bqx*1ˈST5dcwb퇙.gʵBRy!وJHj"q@G@S!n?GR C30nCg*8)c<#M~TR tGpqP9a] Ksh;9Ρq!6=*0nAa=䅀m 6Foxx./Wqx*1-٨a7͖a 0U@0@=#$NVC(ԇSZH(3CJB֩b"xhDS B%dI%03GTNj@ őhHժ4>Ht0TijAs&ĸh2\&ad}25$l\GudH%&tk\vC;:hP?@Ʉft@+?@J!O@ Ryb!/*VDBРrTOWT횡G@з+4MJه }Z~iEq@SC ME8T_M:4OF1+"]rľB3f_ѷ R$/WQ ~Fԯ LӑHnԧA1b9bPOiW(>Uh+Wd ԛ ґQj #Xm:1' $(q_N~ׄ8 uR_wy$R!,WV5ޘT"PJvB|Sw&Bj3GAA߯Rrľ_JbpP5u($]PoWCęNP7Uz"h81}P~*2*uVo,+Uh@+:XִbAZJhJT/j@#LuX?u0um;I]0$06N&phlcJ %chU STbCJjAP%Fm(ZPT@y@,( QC5UYDTȢ,Sbz!AaEڰ(g8R7Kwق9R03`KF _ }!yQT^T"ʂY +DQgC%zA *Q,*P h@Z3!h F ou~F/鐅:8jO:r%qH"=*W" Q(P*V/+QDQ5\WtYPT< $wn+`>Ud]D#FC%AA@DҠ@%b(Ҩ^ QDeQb (V" Sz(WDEQEYE*ԪP@ QEDDQ pcՋ pcՋ Ver 4.11.16.86 CuJ ңJ  $E@^%AD &y#԰nP*BHnWJ755JC- ɄS2ӚJXQ*QG? \R@%6f;GD.[%bD|p΃ LYl'gJl" Zu8Th HA^CjH}FLŐr!hdGMSڏL9S Z @ K1QZC1f|*H^'{D׎&)h҈'bTb&<4©)܅ vPFC^v }4"XFT+šTPzCj2*!4j%SHӚ6(T)*1|B4<#TbFa@X%c%aX0V*t @fAbwDkm*mȂc 6#20"dS]jĦǨԇ*RjH%rJLj2TbIwPp Ðb ҡ0LV"*t C'" 0\bMuBZ%>%^WԏkwUb0"+qz:*,B Ez"SJBHı~M'}c''7'13tE%`h^!%g>A58ǷWF"Gqf>OJ0եpVg*QPrF5bG Ub>8? [:SIYE* ]֙PyjT#)4Y|FBj0#rV@X2i%:U0+3W0QNuR?K$N(\?''H &U3qC 2qC %Bt*B(HOXS4mP؈9]U[l=_A3ODZQ)>]JNkDTzI$5%!`XdRќ~P&֟'T)31#A_<TdzP+2gOG*"5L%M:!9Jqp'B7Յ8uLPV *uVaZXV!PPgU, *J(P#WF#LuX?i4uF8 H ;Q8G0F"_} DT@YT +EQ'B% A,P,AA#ZBQC2E=Q/ ~ Pg{ w %;3:Pq(),E5{ 4\ DA W*QTBQdjDn% <鲠x&HpW|p# Tz΄ Uh!hBQ( (:^ ZTXT"Ȣ(@ ՈrQz*DQ,*QDYA :QT@DDA,jA%իѠ@%Ab% DADAEA pcՋ pcՋ Ver 4.11.16.86 CuJ} Jvp  $ES@{!*<{&y#QzaqzA8y.hyyyDghq$I1- w7`v2 HbAx2I%<)F<#ΰg{q-E8Ù30~du_&: ]1C|g8OWSm66|n3ܔi U|9ÓƳƮш] 8.D, %bF* p1oGp5~+xGE!<^p?V8uBqbRNEy/ΰhq3^mN&g8H[E}gLz,1Ac| ^ @bÊFhPba"SfSP89љ%$!P " +1gx>|\?ΰLCP?8ewVY5]ߊ3,/4?pLRX.5F|ie lLR >_Hb@$cCg\X`365`AEX8!{*E4aYV P3^Ig=3t:ϴG=TLqZB5zxjY?dD"3ܤ7'ݶ§t60c8<>鯝?Ƴb,/ I|4OSk=I)|be}[Caa*!As=Ś7@ 3p!x4Uq G4!HFEa-H|_+Ǣٔ~ȳ373j-#^-{ZNX-_'gˊp|'gˊpܟ4kJ,޾I"}H8Tq?x;!/qӰkğ{I#av3rb$nHK0$0$U- $<+Ĺ+tr6Nx- 89 XpBLO O4!F*э N0"~vxC/JSv[7L#hB >l|S@ǧQħ !8h۴6|& Fo<$ M_{ D3bQc98!C |Aos y=SF( tOEȹ"RNAWooql3(|ByǯMSV?fS=u $1ܰWN0+[BUP'Ku/`7=`ߦ?'ܓ#3?(?oMFw?R8gƯXgo_m=3,W8BpU xCx>AcR-#/?M'Tq$Rۓj+2F6^ 0*X`PaP! )@h"cmR+6Eƫsb!8QI Jm~CkI‡vW܍~xq4op9z@ X@X$@ H00p@ D HP^Y1YN5Č]'bg r~KC0DB-|Շ!$  P@ B!# A bs\%6 oT*7>}_j3 Xm$ka ‘Qx|$^+:vHB B(* AXb%:^iJG<ߧzWHl>+=>nfp#9 #k4 F6``4$$ @ac#CAc-*a"AH FAH0 A B B`qM!#ah H0׸ #,  FP@ pcՋ pcՋ Ver 4.11.16.86 CuJq Jjd  $E"@^%P 7&y#yy#Qzqqa8y/Yiy90%pOYU$L}*ADFPӨJT"C!$:KD:JPpX3Uh'9~S&:pc3Tb=:ݯĩ8voXuK:*t"b*ւFHTPt?TDH))ӵP3OWнP6*-T^6dZ ֣ԙLVy}ʀjJ@PCթP0RjL HG 4թBѡHZBCA+!@[a ZT%&{.UH}mj`nMqpq0~b*J%*L0dzwq$Rqz u6@}[ }{V?;bQS-*Sա*Q}fj3*ZFCQ+4R+P#K"XYUbPU}"C݅e"9P%VrxX9*'Vo5D?AGsJW"I3H%ңFEAƌ0.(ա P-(΄*13S#SCyX0\-а!Rc#] !وTQ}j "-cM@ !t'gpwxL/9؞%LU`fDz|YxXgz%YʬxLV(,cĄN9Y,C@10 sQ@%5%G8CKs#<S?U `]WuJJL|iN[% X*dB3&PSaDӚRXbN%J TbBgP։J Hh=-,ɑZѐh@18'd#M5REZrPSavoh8t@P%ߙuc6YF<7Ęm, M=|zb%Nұ+pD 8_&A4CqĐ'c(:؏S ;y_a*S#@ ; pLبR6*U0TiRKB^GN S}p&~L%*TuѪDjZ/JB]PmސXSVit4Y|FB9>.iTb1uc H;[@1LT\LTЪ3zT?@P_i4P1ա 'cVQAI| *(QjbM1ӯ+6O+F@vz~05*a } 4MP> } KNkE }[?6#}_[ uEC}E$IHHhNgqi :ѣ@P$*C1MGAW+T3H _)HI5 "IHqbv {s8ΠepzH"og#A &BokKt'#*cMwO (ԏTWyj #),Wj5G*~IgʑWy8Ak*@xA}'G%(J%OO^A8zCbB%?p,*q*t+Luȱ~F{AQ[pC7-zRq @AGT>*uVb뚠XBZłjŢDb %SН:u-L* };7*8T"SPݞ+jfbAF<IzR%yOPPA^T*PXTX,JDkZ (V! 2 (@b=Y`Ngt5d{qQ'֢)v1XүƞCGy W (V!(ȢCA@ȂQAրfh)Q8ouw#':x/ՁtK:eݣu8{J^F((}z DJDYDAԀj (׭"VVyy#uNĤ?T<*a|tI~*GZ=F#1DNC b;'wa=sNoDRHM*ъCAC @:Bh!Z(TOW ãڨPezZ 5ZWu J,o8A~*q  b-@D-U&ϩT6HK$D*1@p}nq4Y#] Cu^ *Pd5@5FCH5e2 HSA$jjOU32B@+H6BȃoT%B%!7\j>FJ/MdgU>qJ DoT9p>ETԇ2 gB(z qjd*QIb(koL)jAeTD DB5QEjǡT h!~,Q'1Ǵuf:A C%܎ea}~ #덶ewvˬ~jJ&FQ1V\=i]D{9_AM1POCtsJ U9J< J$r*˪B^omJlXq bi>9|5€!,݋XJ BT jDr5JB'JLMĄ.'dL% DSpvTԦZU9R (LM&Tj$JFBLՐj'feb1s|'\lxyP%hdF}FSd:;8QCT{- U(a@5Ę+} Q><5r-;\ρ*5={.aWTP0LKr^$GBJ1VFp`Tuц*Pz1TjCj#Fh`ZHMrj@M#`=wDP *-F1MTӓ꽵HI ^k1!cG* Rt&vxBh*** 55|P W'cVRAE|b%fh%ŊiY*&Խ3~0䆾v)iOBӚf~RGj>ш>"աfз$ru4@H-$b{N/k98R<>AJ$z'GxPWG @ U3>;LQ}#}/G#4pO` z/Q뿳epz&4XEq; AWE5\JO'qDypSVhHG~PJ?CI`WG2߅P(3Ŏ8O58G1y#Y!gygAxqy&i%p@!a$ d 5E1"j]\נJAZ BLPH*ӬbĐ1`=>gXAVCvoUb$t]PPHjJ*4~~@} !Ejt;*mrk<*JQs(2柪H<cvXAC|i*Zp"6 DhZ9jFPm*RTj:C81h,1d*CByuJT+CAmjsBHCa*S5P JjLUb4jD$ K.*1Z8C+GIQfAfˀ.ki4UbA8/Ù4]ϠZ9QCHf_UG 4=Œ.fC!siKPPMJ PjD%*BA3c*qPA[:J.P%N֋Pʗu*TA @]Ik J" . !N("T#٘BmHufVSk*t9 !{CdmU4b %8-dzñNH`hC-L,'~FCO JBPPAbXA#ԯ,V+U jD@ oW B HMPǃ>\ NkEoqQ9{ TB ERyԎt # TV|P &H%fqAϫFkR 6L#~IdZtaSTD]uS䀾@AS-GzaH ຾A*^>-C[`\Z)S'BokIOLcM wMDbB?R_yHI]EEJmęZq8LSǚj&|vT`ub,Tb$*KG)U_@*fLpWB%7j4b}P~šҢkU(V(e%"+(QJ4Tm1I ލ4'UbD u%Cퟎ>lY!b4 }ʴZ<(jUC db!TXUhCЂF!(PDV"( QV$*bJ0úÑ9}kz]/UF1 덵:.뇏/?bI1o!}^ 5DV!(V"+СPIBE% ( FӚ 3h0Iu1{xN 菒B,T{vCxY$1SѴADQ$U@(ѠFlCDT3L:Oģy?oW}:jKB*TBEAQuHZТXQԈ5XPB@eըEQГ)= SX @EhQ+*P@V! dQr%JQEADADQ pcՋ pcՋ Ver 4.11.16.86 CuJ aJ  $ŀu)@N%%@$y#9y#0 R%bP%N(SY0j8jo.JDIT%N_"!H`I%h]3uMEZMejJӂ oDJP*t-W !GjԙL'h_%[ļ?q?(BX%cA8ԈJ5(QD8h[%);ح|pX%F}|LhUnT:#ժ ! HQ T"ULMC9R9#F*]F$%t Bh!biҡP%N]F2U"JL O$8*q0Q Ȃv WEl|O%vx SK=a8Fz1c 6"N MSJPSTPzkTyF!R<4*B$RjP-5HZD1}'OS/ԣn& *HP뿜Y|H%VĀJ̇_6OO $~J -UDiRѪPLŀP)*ΔA%NsTՋ<= )4!Mаej5ͩt*h?R) CBiK УGu;̴ T91\>;ea~ 4& ya##A2bgE8)S<(c@_ &(Uk?W_>d'5⽄xTb({= ?A>ϗU5=?U-=C LlypT)>4@e``i?CB)+%0 jJUk:TH֌pX%D%&t9d8NTB1Py^@"nMj1FhN4APyi!$u@90T4"u) Rɩ@Då`sAs-Ma'f sў.B0wUbDa*Sa|p8gİN*աna$ $S+AT 3 ЖNCRδX J$TK)D% HTD%S b  d*1 UTAzB7/CgBtVu{42iMYE~4! 3:R480wDTZ8&fc :R1;|V?y&Խ0@>YUI)f45WG @ 4 ¦)7~pL-PX3ČnMdR^%qDgʉTñH`Ub5L%V¶)+W3G*fLv7B~7z1`:VPTDO(uV`,P^#Z uF5XB D%EJTf-}o048H[C*1b}& MY\TNPӡOj!V81}>T_?z2T9C-*V^uDb +U/(BZ(Q +Jd%A*PLź`Nu5 5{4YhoNo h\?j|YuB,闣Wry%JkTP" D*dY,(ѡPI( YȲj-j!4R@Oz`@obvS߀jG7$:IuѦz)FUkZQEADme(*V" Q Պu"PÂJP BSFCE U! CԂ( F4Ţ\b%AT@5((NSX Y dZѢV%ʕ(V@D@VB (  pcՋ pcՋ Ver 4.11.16.86 CuJ% ~J  $ŒE @!*<q %y#1y#yyy~yyyyyyyy>yyyyyyy>yxyxhc1yidXy'1yCyi yxygE!%lbvQTH8'0ceA`7RE0@ /H}Gt 3g}q^$ΐreOY1AxxĽoWX vc6/$G0*bXpQ ^ eg'C,q,(<# {8it{603pьqaKzKu=xgc4GP|gx"^vV2sᜌV,H,"a؀a["%`ʌ8) A5"El-I*!*`2;_;BÐ=_#q Bp>~/O[ Gg%`TgW.j=e8C*ON߻YxicvI`,/c~Yďe{{8 ]OCp?px2>_yiIe?`ΰI>[-$~Gg7=4l3 ҇M8YԪVg)"<3=SLr2y2{EAFeH p$Lq_`{ 3av-tV8ágYTN p(^4A#1U""؂X!AxS p*a 0NNQJ-ߦ)癌~GR͚XÞw5,[V$~F+ !!ר4k8bx 3Ͱ#=h[g?JgsE/#kCxv" `*bB#e?[W8C<gz4 8CbD#>@<ēX#0a11y6!d~88?6$4YatB=W>ë!!oh0"`|ĉpӪ~Ӭː3ϵl-Poc3\ ؖKGlO."tr6 'gS:!FH' @ BtGnp%|CLk?_'%GceD3}y(xQV|S >*yG4_pk>(`A*>D xdlO(x ,q!$*%X*ݚ4KcMJɉx_>g%ZyR1׋¹VpD+u(BG FC1Q p@\ H  ! Uxa<,bC|aqx~NC3D82hOGCC0H u@ XH0#AH0Xa-6BxLs|Ԃŧp(~t˅1IA z^##xUͰ@!!``@$T$F!K,DţI㈇+46 Tw}3 &J! C>`@@`!!1! !$[T#T4$$T$$$T4,0!S`$@ps@ : !bB  pcՋ pcՋ Ver 4.11.16.86 CuJA J:4  $E?=5@N%Ut %y#~yyy緞4O<<?|<|<<<<<|<<<<<<<<<8<1@Hd: @Q@ńF #5*#Q#*TTQ&b&kj! "hu;~VqR 4FZ $Us~GYpLoOq& Fc3 *Ah7G&L%huXHr䈍H7AoUJ mQ->T: (P$@&+VCM2 Ez জQ4 gCZD5i@8}.jH @*h{((C_J41Z ,9TZUPQ=SUFCPL,v4)GZTIB]D9t0GQ[:C@S!h3jQp\j|Xqx9aht /5,kĊbP"DŽi馾**%UjPPiRj EhZ+JVӡ֌pX%f$R]K8A%d*C]BLA>"*C]SjԪA-H4Pq?@ byb b.64; rQ% u 3Y 7=R`8oPPAB_*ǃ>]DZdE#AX[Ouh]?" 5' HΩ B%GoaWnhU "g1)~IduaSߎD]N) " /Hoi ̨Q Uov6\Z)BSSO*.q$1 ?ÌS'6d$ykFߛ%Y?WE3q^!P?9fR~z5XBdSq[!ԟ2V\j5C3P^Lv%.Nhk"^4SC @A[U }"C]UYB*kPZ uXbYBZ hDT@jjKGJ'P !}e`.7M5 VC8>l9cWPc&Jb(jQT*PP *łzAPЊFAU%J@Q1~úÑF9}ozGO4f5mh\?6˖_iT_FC8vDPDZȂA dzQEQP  hDZ3h4Szs7`m!nAZ! unR:muO/ =Т( A PX, ׀r `()Q%raA} rЏAh]B FC%Ջ((NhT+ZUXT"Ȣ()jD *VXQV" jՋ(3zEJQE d%Y(*(V@DQ pcՋ pcՋ Ver 4.11.16.86 CuJ! J  $]a@N%Q %y#6xpxyy7x""|CS!,Xk隠bW}@jA<TTAU$Bya$3Y]RSnGu?RjjbulFCډ Nj*h'`*P V?7 TB*p43 2 7܀T4~P>Գr}5c\ҏ~C*1c^US#'Gf̸k #'tjB%2RjZD9KшYFCQh4 ZP˕JSj^+!ӥJmuHTkP)Zgu"WcB*fbX%P\*k؈ޛa=0 S*1cCs: u@ q-bBHy*"ySbD*hRSjLȚV9U zG i?R:ZCTJB}xH?Hy֧ _Vty:_.)D+Tb$ٟzvMTb3zt*"Drmk{`Ti5JQD;*BC%PS@Qm(2U0~gGybP6oʳTͩUWja@A(UTMj7_@נbP%EMP Jq b ]T bG%2L"݁J +s 4CUb֨*RrVDM@Yqn1?RO15484# i%աaSN-Dsj#O@Q4(RRFm -TХHg GPP8<`?a=ǏaXSd9aJr0ú41XxX%ȗx#},CP/"wm͌XO j<6ʤb)뗟i :8D_m³r}*CUEOS~iMn@ Ag~zT E*GH1Hu;^Ub/mL4I+.O*J"}o ՉIH! hD#~.) P3S~E$Dz;@'5ulgPSJ1_<45\JNGq$1itq JMې85GJ33:%%yy9yyy9yyy Yyy~yyy>~xyyyyyyxyyyyyxy>xxxy>)xIxh)y>a!9x$I8yqD%0)%Mj5ia(bB9: tڧLNG?Njp:*bp`5N<JT2dB婢VC١hکt *Ԃ j0@ j:P+ZWZHj^+5Ziһ m:AP/ǁ9m *vTp:c_ 9ORcWGfTb;0jX:KysAؐt *P4@ӕzXP ojP1" 4UB ")b-PI$k`[Snڏ+ZCVBmz;'dA%M$Gj I'(~ks/6ımBӤi#]$.*1[pdhmZ#Vb[A@qmZEBFP}^7e֔9 (*B RjP&5QP 22M%P8;p:y{kV<T,$pP%¯L$1D*q\oTW6ߜ3hlbu@(k:T"8TQFw/0Nz R0!őF+ZF:*6HQ4$QR :P] AΥƐ`?X_r0*kytf9>~TVxX<`ui)UD.Yar(hFx>RiaXs/y]I7NI"#2OQrh8jv4gh߈)B(!W iB ՆhT PFSVC1^ *&JvB]d*QČB]BL@>"*ot[m sZ #5@48Ri:k0T0PVhTޙ , LcLƉ-QgȣJQ"H0wP LTo) 3)@舺ud 9aH0r%HMsz *gL@}XrBo8iR rjTA|sFFC`0~d1G 5~}V Pp+~iMHmQ}D!C 9_OrZ?/Pm^Ԉ-_8`M( h21, H%f\G~pH%6d~`Ĥ~;)FuAi4"lۑH2~`LA_ɑތffA@h  3XW+w*ILZ)됇* TAi"_A~SUq2~_%3:<\<C~zNu֩P?qB-T_L?'Ԍ>8Ө}^I:0Bo =!ETVF&2}>C]U9T ׀VtJ5(U@ԋjCVѬZVRvh ij$fdpxP'#kPt:֓}jecӧJ%3^Q (o2bUb^@@XT"(V!+5(hCҠ@ AVDP\Yb SnCNR9E= Ә>89 uۀѸ~T6L$ T!ףFUբ,dJdA) e d dQEY4@Mk*4 S^Zob P/&A # ]Bܤ:Ñ#D:e ƨNШZM ( %BPX (DQ5\gCN **9 $wx:l1B?Уt-b^ C *VQEADQEA jE dAY(+єF5\P QEADj (73zzQ +P" DAeQVA(V (V" ԀzA pcՋ pcՋ Ver 4.11.16.86 CuJ- J& ? $Eo@^%e#,t 3%yysqyyxxyypxyyyyy>~xyyyyyyxyyyyyyy98xy>9xcIx()y>yAYXAay9q%P:l4i`iHAXG^Ҋ>5U  ?B*ƨ`8Qru X:>xT%$CotzA@F+* 囚Δ#R*XHR@B`$RvISڈ+ZBPPBJ _4*nI'(~+Uå$e 9OOoi`:#8q>Fyp=EbO%NDV˺+hb0QŒPqB FPd*6\ZRW r!!ӀLШFHTjP")҈t TpzjhW W@tđD>s_WVy aqcJ3b)u;Tr$jPPPE% F hwz+8sS a )ɍRV)'i N'HQ4$FQ[΄*l:j*/岈y3_V!VTt7>v=#r0zt)UhSfse\ci } [mʬİTڃcg+I֡oTb*݈=08n`OPRy9IĚFUUK(BӡPmH(@ Z jw5X#t0*#x(U.T"PWQ{)aPVjHL2B @q(tՇʗ4p\#!oj ,ecDg0 LV(\Tp#HaEcc M5}qab&L Dgj㭍dm}|ǥq759 ;mJ@r*PM0TbuYF2 b$Ւsj#0RDJ,g7bPxx`JhC P˄"Y. -8Ҵ4!CjzPsL#a`Bǔcj+0;&{IQ񚮱0 5= 4ZQ璼V4'{c=JDYS%FX(R3*Dڵ`N% VX*G }?RjjbCN-``X VPLDbITPb FC]9_L#k~,Aj: BA>5~}\b."}C~iHou@ P?CֹT" 5'5"}Zտ@E)D6f4J4rQ*kSOG 46#k2]+bfj /GzsH #I 2ҟ ,O+2I*~%šKJi8~ЄJ!)&yTM:O+ŕ~Qa9+50@"Tak?+BT_hq\>8Ӣ}^:T%2 UPӢB@DrQbA8T jAXX J QV$*bJ0)]M4T8M W^ZD79EuۀѸ~]f p8z7V GhZ( *dYPXb%+ kPEQ,*AЈ5f P1E= ,{d 7.LuOO:BТ ( } YJQEQ5XgCN *a%Ǒ:|) zZ Uh!TjT *נ,(DAQuBЪA ( 4A (DYE( ՈQQQ&tF/A/*P@,((4Q Ţ@@k@(( pcՋ pcՋ Ver 4.11.16.86 CuJ )J  O $őZ@N%ղ@$yysqyyxYyqpxyyyyy燏>yyyyyyyyyyyyzyyhqgxy9/Yy>G`zqyEgi)y"yqy %Pӛ:1M6Uo)3,i@h8"F "R P LhDQ^!$=?ҟ.=@Z\*_h1PcJ!X/*) CFVu:rРV4>`KTT(4S\i!+TV}!RpNhS2")] v&JH~Aߡ__רĩ) p0ϩ|"Jq*lϵPC)Tj:RJӀHm*Q2Ո(HRTlBP)VJSGԖR2~S 4z-Tb4=SC JWW.8[#LWQD/۸mD*~ud ANw*QEV)MU E%*BQq%h+H(3R677Ն5}*ƔiDq&H$FR BDEѥ:S WJdzeyX%b õ' y #g!̯D*QJ _l8&g*FJ`+W^Z(o~V\c^?Z° )Hhа)&ͩS h!4ECbjKJ'"MV--BR$k⼙/Ě;D? N9aݟhxX%k *`keUa b47xƜ?էTb!~Z!{*gC%"XV"2B VUX-)5*F+h*jTr18GP`:TbO FP L%g.yG:(njSm#jЖj(dVPHPVI*q:x" 21dDIEQcd>dsG 8f{L1L5=ac3QHt&*[ˢE0?Dm"TdqY#܇ZshT 'p e!V3 û*q(J jp[%LU$F )UNPT@xKPQJ <\O, Xwц*!4RO( 5BEȤiBS4d4!`3 "R10wD0'42UTڕgx &"fV&aLsP_j`N%Sm^ysHoU *%QV+(A[>XAA%P+h YIw0Ԩ|sFFD`0dBA>5uS>T]Dz }C/qieT3)}HBMuM9yN[T<Ӥ> .!U"G0IH!K  TDIRJ" s"9қQ~$)z![Ff,*U6S*~ š88<_N+~D-)J}?ې8$y__)EJqZyP?#"϶.BaPAjҭjF+gZ4)V>Wg"H_PVLPhՅrBzZ uXkP(@XՋj2բ::3P;4CX.aTkՌJe"Tw2 JB*P U*PX + QՂF(V" DV" Pb*ץd(]M4H8Mp5'A2A !FQap\1HC4֯wcG4VZb%UD@PEYT  D jjZ j R4Y"_V~_ڈF7.L*uO/:MCӪ5-(6TAX YUkPr0JPɩyyyx>Yyypxgyyyyy燏_>xyyyyyyyyyyyyyyyxYx(8yiHgXyy@yyAiy9!gD(.b22N#"5ı(#q#" "(+aQ1)7i3|Й7Hg mxF3߄a9JI %~j|{6&pPi|)ZP9N p 1gבB5s,Q'Xf  e<9h,S+^OE<* {<x 5Ι7t~~n4Y ~g8ɫq6Gw83: OK!C5"QI&ؑX`ic Ѱ`4y; 5H8ǒ"*qD q`Pf 2^H| 3 J5^?30 ~5BcS89a?wKŦ1gmbQ"~}Ոmߙ /)dʀsg|n)્ 4'F"5'x$1P z'h |w b)QA@@@а@}s|n<#7 q!o/2~]ID256 H@dPn#CB   DUx4爽g$>7YύEGΧc_@~la`H 0gՇ4,q)F *:"HFB@BB@[[lD9 d OO0f?$?rQ]0EƁ39xsqB !@##`B*"! !@)6X48=^e g%[/g;_@!xxָ3F26#0@ 65Hb-H! X`%6 A ⃉;hHh!@A9 4  #ЉB pcՋ pcՋ Ver 4.11.16.86 CuI bIց o $E+T@"< AAqP#yysyyyx>yyyx>yyqpxqyᇏyyy~Yyyyyyyyyyyyyzyyyqgyy(/hx>"zyy`yiy@9qy ;!JEi!U !%@%֢!! aR.E\rt@PT`mZ|l0v,WQ~po}WeQ$v8nv3$K I: 6= L,F pEb )=8 1t(&4V8\-1 qD1.8+q$*p"MTx2 '";Q$7Lm4o^m|U7!Y5;KRk&n8qX @4@  @(Dc jd65'%T%Ymu8E* pG!ѕ8N'N`S;/PRvv^ "!y8>*%vb;0WݿvybEhTM9F6I P!*0)K&g*!YF  ІAQ!ZZB#dTL_fp> ;\[ NGG9pYaMtwQ]-ءR 28i2;4\aʣx BT4nJP F["#>6ۧ5}tB C!!X8.\E*a.ц8 `ޣ !4x<Ÿ`JA@!ON# wҼ8ҿ_+B#msݰOa~}77pBqpW0WQZ!:󃻪E[81v8l8_M#{9Do_t;ZtC1C0A.QI T+Pa޷(ޙCnݐ]v@#!dDC nD}5C nMy 0a_>KA1 UnGfyzA{`mG)o7S9j4M E,s2:[or/5C F9" 1iͮm0 yA.wG9 ~Q4kp+p w9}4 /Dϻ )L?ŻU@3]D!((|'.8L S|,LӬ[QeQL%fQ L" EF+a}? 8pGOH!GG`F"E!B Ȑa O'{7xOYYSϤ6j؋a3UYcV|xiߪP8.vBv.8yyyx>yyqpxgxy>y>y_>yyyyyyyyyyyyyyy)8xy>x:qy%yxix&ik)& yxi;a=@)]H# (1%Ub* Y!1X!d֋*Bp\Gq, 1UFo (Z%!iaaL6H åt&v(2G;ƭB&q 3ƨ& ֨ uD8RHt=:l :NP ^+p %&:G| TGp*N^y ?_y(?G7)ѥ_84v79$v^ޟQҦq)adHEH,8̰Fs(g`QnUbAA` g|HY 8QTЁ!`cj8_ G8,]Od}B#0c_>Fhbjra# 01A/:U6Pa+OIFc|l+ y*FcD FݔH77_ă_Ĥ!Vh7V@,A* DmѬc%LM0X4 Ba-T @wUcq9!0!m y:|,IO"]([x8%H(!_`C7(,B|yyyx>yyy؜yyy~yyy~xyyyyyyy>yyyyyzyyhyxyixy>@ryy 1g9)xa)9yya%0E ֑&Q4R*fu"ttF:B21U SR'HM:j(T}MTU‿_A͋J_ geX*q(~3g28pQ%vУ֝C*; j#5%.FJZ]&+݁TUT.iXPha;n0@7 t*]z2ߧJV.=U" P@:4~S q ƚʡJ** aa^ .dZ!R0&JG2);&P*Q|UBRqicCET'Bu@%.=UT▾]z~*qS*)|ՑJ >*'J\ H%\Sg:RRD%c(E2t*D5 0ڱa^G4<8 N!SjTm*5Jt$)$tv,*&Gx*[%V(5ÿUbi ^}vgz *q!\9aD*q*d55B3= mGPU;BE(@E@_2}DC,4#] 8 u uc=ZE;Mt+ӊN +M} t&DGTxD8rh'/t71Wj_//_,R/kpٗJ\zytl_V-JԲg+y{=S00\Ā~ThxZ%E7E8קUR4+P[%j5PPi(gtPTJP~*1EXA* L%8S1t."  j;S mP+Ƞ>JXGiF$Re ~Q̣'B%B]mɖ<Q8Q0z(LbG7F&R[rY0]l,*12򰞣Cp|xtpX**qJqprU@6JT!T-ÀH%n(&J"2 eD HYXEQCPbۥ]*qE$ 90>(I'4u&a#ht&B4)F&zwEBjZwW3akF) fT**Lg$Ǩr6 śmD9} &c=u!U0}L.ix1T+TSB8/WV+ r|J?MuJwϑ 6'0 0~q~(]P~({ED$>Nj=#%IWȑ~q[:$ʋZy| ߌ$_^R1HHwLtIRF6ԉ~MAi~| ҟ_VB?V9Ȅ$ +"9碔 3#ő ,C9S`H8Cz:AATV@M(QZ[uЏaߎuw݇mP&c*a,i62]P[Q 5PBzAbš:&!*QDD+U@%ʩ\%Th;iTzsF? d}ehiqF v_rߴʈphBmժdAD#PV/ D dQ4ZP T9y !Z?B=*gj݅=ÛQ3AӨf }D( ŢQQj#X   DQTC ( pcՋ pcՋ Ver 4.11.16.86 CuJ5 J.(  $E%u@N%QO%xysyyyxyyygyyy<<<?|<|<<<<<<<<<<<<<<<<8<G 5j StС i*q2J \T}ĊQzyIJĔJ%#FD8m$J-" U@EEM:M:Ft*ӂ8%UTq4Sb+Pi@d$RvP#nP;$3Ӫ}x\ 4P+N*$F|*1h#(yDk}g;wm8H@%``fG*IFJt!j 3ԇT JԋPЁP#j*TTl Tߨ׊F7gcr4bur 4JhNF"Y P%@IS%[vzgGWb)kJ 8U{yDRsyXKq/DartP(NdJB"UQ)h°AЛݨ uT*H"a!bja'ԀN4@ΜEJuP,C+(V<vJ >ONU-_Ea9ja/+a?񰦜Gk`RF]t1tJ K!*qH8N5WcUJlt-ԢZ*4* ֢VԳєC1Է:;P`T ZA^R`A >v0S;)ED QCũ!⠘ P#Ž)5"+A:(T(jTidM|.JL٠od#WZr[%'ۮhVmǗfX( OGcNipp0J,СJ1򿉆^yX%| @W4hUG'83Kh:3#]6;J*9gBDm *5ѐ "2uIh*RO*V2QШPطTATx1qPJ!ԅԋ tImBg')MMM&4hLӄ3wD !aGܙ;"pLqw48RRiwL8V֨9ztM&B .e|QU0L3mMC=`9JTq%P QB8^O(8~)?fOUPrv"O4j4RI&N*CN]HC"wQ9Pb#ꗰ~~;"Pjt_O$ u"Nv+ڂx ջ}A$ B&PBWA8HI?;)%~LI_)R;~t8 &m}R@IWWLy.id +<G ~DյW+#Y4.+~,.eOM)oHbXyyyx}<"zxx d(gy9xdIxyy &(%0.Qi:T )QFwALT@퇩*"Z`EmP-i:U9ƓU"UPt TJDmJJ%pNtXAь (^+UkA$T*u SFJZ WXI*}BDQj@ LKԆ`ZQ[XJJ$KWxU"B<J6T"N8#*,$!Ub-03癡'DjQ#ꊚTkR ҔNeZPUq43r5 hnZQ)fP"Z+6tH@%;Ŀ8>OطJl2J[$CUa^,D##y6Mkg*хCo-`\uMm"Hu@ QV 0ջhB+ê7eFcr4r*ByPBXRhN"Z!#*1_JJd*!V4ЋS2NVK-^*1,ƞj=OQ@ JJdB!z@Ų) UsP` 4vG h?uYT*GH"a>wtM945=avM# TGs"jKQ.W*]J+(nT00ĺGa9h<?O Jmjy!V֚2mq9aUy6_V-J K%).#TyySX :p;Y}q]݁A%|r|}Z%ւ63h@-6t(r&XZQ=)MB<h3Q xAH%gCzљAu)4*O@ RjDTZSC%՜pXSH-D*n oGF6< JLCJA(j2N^) ?3f܍$WŒСJ1+D<=( X_82ƌ̃, gM}~!Ȋcm<,ĂU~L%N1k8ԈFCRA$Q9b;QmGզJATx1iPJL!ԇ+.ɺM줡M=&4%#  ȃTr+JyO ?JNUPrb>F*-Fb'V:z&ߓ?h3A]Q?99B*fIKkz=݃ EHx!_O!}*)BmQ}[If Էd ԯH? 1 ~QHߎD:5BTO9Ȅ$ +">`ɑ^yyyx8}<<<z!qx!giiEyxyey$`%0.Q i0@`Yh hpW]*vAayH̨$4@uZ!UFCr)'JUb">OsTP%fG=1bA%8F`*+A'd-jTH:A@4XR(5* u SFJuZJ\Q[C*}B U>TZ+Lu& FBQimf+P@%laI%f(=8J~fTJ`HX fT^W4Q-TiD#- +U0Z=)D:C*iʕj%ZV)fPaPP :kС@%P:P(v>a <8\X`p,"Զ18`ʉx7^0oX0W~d:T LTDI<H m)j*TTl4]°MKB4rMˡ("TF9B+EB%/JJL?texuz~vg*q$<*~ѥVP#C*PРLB#*HJvU4RGuMȃ*1h'c*ȃ"Ub, 9^uiS=B&1աFB&]N( y`B#ǔ0шcb6J̎ɳz;#jcb^p@SaN:5!@2֙4C10QBmBu+JIx9Jh0T\)8^:q V *TGT Pm(G?UBHT8J18?%5CNS~#BfIH?H~ {-A"~~zZ$ GmM'C]HL}A  DrIBA>"1ԩT_PA'949} AJ dHOT3үLj}ضR_*q3HLi:!'J?<%yR`DJ}6ę~ƄZ?qpN2+Q<hՕx"+S݃3!qoHgT&2jXqO%>tI:jADA 6TeQ re0iK%N88CxԵxrЯ#Lz h!b@ꕫQDQQ'4 ( dA Zj(+EQ^jU mރR W@V" dQ6A dQEQJ+QDQ pcՋ pcՋ Ver 4.11.16.86 CuJ J  $E9@n5P QEd $yy{yyyx>yyyx8}<<<h:xy"yYxIfx"Y $x1q%0ҴtlH]HŲ4=}(*i4:AlCbF* 5@DZT?1e CXT"IJ U"7J~~ 1đ0f[]SH]6Ψz-SQM)i:+ ʩVSYt%0T*%tȚF"40H5PLu&!FҀJ̇~hAx*1ĉJT~sA$C1,ĒLGt|>=)H%6H%fT%B U"T@@Q@NAT"M +TJD:C*jQSP@+ԔʰH13-GPkA@% [YR@%Ƃ 22Tb4Щ!qP~C!"xP_@%* / "@gJx!b GZiYLzQa%UIQ VTCvkThjXɦ%!ҀLV+"XFV9MTi|OF^J*?z*+ac.Ǽo}0BTXJ4"XO&~ ._H%X XL:h$S_)i"tuX` HHTJsPsISrpvMhNz2 J)TQAacT"F*Fhf"aR~jGxVdT @S}_B S?RԏEnj~5o%87wO1H~0LA`WCA!H7uh]) 8H;&S>?"OE)IGG #}AJMfHOT~j207m*J%2HL?RP2l .iBŕ~pXRǦ~C~7H3ۺPhHA'WJ'CZWIh*ϫA&Z&"2NgBHߨ42aR]*>š>Qɡ~҄NUޭW3A+m&2]Z*c +% (-UB *P@#J(єBۣͶf!GMB(C7ctȈk*1$ ±9FUV 5buF@*Ԫ+֨Pb% *Q@@PPbաD:84eAM-L[h6189<8O5~5Rø;G Hbuʕ(V"( % hC AP *P( R"4HSԐuQD  DV鏚C.!LuG0B3pY ƨOhԪQ jCB (TPDQD**~0H*q} Lpԙx~# LCzY[ 4eM D*QB( :m@[BQbZQ,  (*W\ (MރP" U(EAVAb% ((P@ *DQQ pcՋ pcՋ Ver 4.11.16.86 CuJ *II  $E=J@\@!a2 _$yy{yyyx>yyyx>}(z'qy0gh ya@x y ;TaE0Ef!=pؗ8ND8&%8U1N18!@ %dJpG*P,<#Q&ac zc`L?Lp-2PÁ)Ѕ k෉0uK0$q usTp3P.@Bp, Ct VȑY@Tu8y*@c.cC 1arT"_'p5G~4Gዣ2۟1ݬ0ҹ#1~c "LITјaCbc!Jd7S\` R-\bWцH`P#4Bb#8XFap1ǂWa}h Ks]!M;qaxx@s:mR|K,[x B@ BJ 0$m Kt0u p{i !1@ţ !:PDW"$vv p-xGV݌tRRikfGNM-Yxȩ4w*8O0@!̐`ALQ5 іSY휡p5b!NJp` K,C ZECP#0Ğ-KMy1+D,^cy<܍!؜.a8Z nhpSU ^qsݰŮ ?N/k.q B;\t>] ݕÙeiw'^W'COO~ G9R }L@c)2b!vpa[T)M1v Ù(=,q'N (Ic,aQB1,[X*2pLšN_Lth;U v8vǃὌCm};94'GmD8+N;r`4vXÇu?lip4//>,3I]G1\ϝ+px %^0)f5BS0@w+};l“(vh*Y <3 nr0<ݞnM`i={. 5°hh;m<)K <$:4 UuW6x7%Љ±h1 4M D &h.@ m4M 4M VH5? mDPwYm/d٭$|>D_@QC/Ɨxt oFJS5c'1 &GUW"Ygp103, q6z<3|@p%QࣄBQ|/!LQV`F >vY8xa,! Ϡba~ B!,aF!^ {~U'6">6bx?@"oR!a'8YuMBmxK>|F ۼ'2q\#McA@ biQm Bd+M6H<3rq]jܻZwF9$ͷ鷈  "?'[Rx]|wη귈ջ'4#1@<6]FyQ[f Ϸp뷈{8ӻ%nA%^ػz:񻎳здۯ 撻&yB_g{6'ܻѷ2=޻ I񻎳 'T C_k `i }ta ~ 3 ҷ ﷈=  (7 Ez aǩ ~Ȼ 󻎳 : ӷa   )2 FI b#D -' 7. A} շK Uﻎ `" *j=TgObss@chʁ2gȠETITLEDALBUM/TITLEDzundDgȢEARTISTDALBUM/ARTISTDzundDgȝETOTAL_PARTSD20DzundDgȜEPART_OFFSETD5DzundDssNchʁgȝEPART_NUMBERD10DzundDgȚETITLEDTITLEDzundDgȠESUBTITLEDSUBTITLEDzundDgECOPYRIGHTDCOPYRIGHTDzundDgȤEEMAILDCOPYRIGHT/EMAILDzundDgȨEADDRESSDCOPYRIGHT/ADDRESSDzundDgȡEDATE_RELEASEDD1999DzundDgECOMMENTDThe purpose of this file is to hold as many examples of Matroska tags as possible.DzundDgEARTISTDARTISTDzundDgȭEINSTRUMENTSDARTIST/INSTRUMENTSDzundDgȬELEAD_PERFORMERDLEAD_PERFORMERDzundDgȪEACCOMPANIMENTDACCOMPANIMENTDzundDgȠECOMPOSERDCOMPOSERDzundDgȠEARRANGERDARRANGERDzundDgȜELYRICSDLYRICSDzundDgȠELYRICISTDLYRICISTDzundDgȢECONDUCTORDCONDUCTORDzundDgȠEDIRECTORDDIRECTORDzundDgȴEASSISTANT_DIRECTORDASSISTANT_DIRECTORDzundDgȾEDIRECTOR_OF_PHOTOGRAPHYDDIRECTOR_OF_PHOTOGRAPHYDzundDgȬESOUND_ENGINEERDSOUND_ENGINEERDzundDgȨEART_DIRECTORDART_DIRECTORDzundDgȶEPRODUCTION_DESIGNERDPRODUCTION_DESIGNERDzundDgȨECHOREGRAPHERDCHOREGRAPHERDzundDgȰECOSTUME_DESIGNERDCOSTUME_DESIGNERDzundDgȚEACTORDACTORDzundDgȢECHARACTERDCHARACTERDzundDgȤEWRITTEN_BYDWRITTEN_BYDzundDgȪESCREENPLAY_BYDSCREENPLAY_BYDzundDgȢEEDITED_BYDEDITED_BYDzundDgȠEPRODUCERDPRODUCERDzundDgȤECOPRODUCERDCOPRODUCERDzundDgȴEEXECUTIVE_PRODUCERDEXECUTIVE_PRODUCERDzundDgȬEDISTRIBUTED_BYDDISTRIBUTED_BYDzundDgȦEMASTERED_BYDMASTERED_BYDzundDgȤEENCODED_BYDENCODED_BYDzundDgȠEMIXED_BYDMIXED_BYDzundDgȤEREMIXED_BYDREMIXED_BYDzundDgȲEPRODUCTION_STUDIODPRODUCTION_STUDIODzundDgȢETHANKS_TODTHANKS_TODzundDgȢEPUBLISHERDPUBLISHERDzundDgȚELABELDLABELDzundDgȚEGENREDGENREDzundDgȘEMOODDMOODDzundDgȶEORIGINAL_MEDIA_TYPEDORIGINAL_MEDIA_TYPEDzundDgȨECONTENT_TYPEDCONTENT_TYPEDzundDgȞESUBJECTDSUBJECTDzundDgȦEDESCRIPTIONDDESCRIPTIONDzundDgȠEKEYWORDSDKEYWORDSDzundDgȞESUMMARYDSUMMARYDzundDgȠESYNOPSISDSYNOPSISDzundDgȦEINITIAL_KEYDINITIAL_KEYDzundDgȜEPERIODDPERIODDzundDgȤELAW_RATINGDLAW_RATINGDzundDgȪEDATE_RELEASEDDDATE_RELEASEDDzundDgȪEDATE_RECORDEDDDATE_RECORDEDDzundDgȨEDATE_ENCODEDDDATE_ENCODEDDzundDgȦEDATE_TAGGEDDDATE_TAGGEDDzundDgȬEDATE_DIGITIZEDDDATE_DIGITIZEDDzundDgȨEDATE_WRITTENDDATE_WRITTENDzundDgȬEDATE_PURCHASEDDDATE_PURCHASEDDzundDgȴERECORDING_LOCATIONDRECORDING_LOCATIONDzundDgȸECOMPOSITION_LOCATIONDCOMPOSITION_LOCATIONDzundDgȸECOMPOSER_NATIONALITYDCOMPOSER_NATIONALITYDzundDgȨEPLAY_COUNTERDPLAY_COUNTERDzundDgȜERATINGDRATINGDzundDgȞEENCODERDENCODERDzundDgȰEENCODER_SETTINGSDENCODER_SETTINGSDzundDgȖEBPSDBPSDzundDgȖEFPSDFPSDzundDgȖEBPMDBPMDzundDgȞEMEASUREDMEASUREDzundDgȜETUNINGDTUNINGDzundDgȘEISRCDISRCDzundDgȘEISBNDISBNDzundDgȞEBARCODEDBARCODEDzundDgȬECATALOG_NUMBERDCATALOG_NUMBERDzundDgȤELABEL_CODEDLABEL_CODEDzundDgȘELCCNDLCCNDzundDgȪEPURCHASE_ITEMDPURCHASE_ITEMDzundDgȪEPURCHASE_INFODPURCHASE_INFODzundDgȬEPURCHASE_OWNERDPURCHASE_OWNERDzundDgȬEPURCHASE_PRICEDPURCHASE_PRICEDzundDgȲEPURCHASE_CURRENCYDPURCHASE_CURRENCYDzundDgȸEPRODUCTION_COPYRIGHTDPRODUCTION_COPYRIGHTDzundDgȞELICENSEDLICENSEDzundDgȨETERMS_OF_USEDTERMS_OF_USEDzundDg@EORIGINALDzundDgȣETITLEDORIGINAL/TITLEDzundDgEARTISTDORIGINAL/ARTISTDzundDgȲESORT_WITHDORIGINAL/ARTIST/SORT_WITHDzundDsschʁcňFgȠETITLEDVIDEO/TITLEDzundDlibextractor-1.3/src/plugins/testdata/odf_cg.odt0000644000175000017500000006740312016742766017037 00000000000000PK1Y<^2 ''mimetypeapplication/vnd.oasis.opendocument.textPK1Y< content.xml\rۺS`ԙNΌ(Je[n3N|Ll.X^:I R&M`v z}!SKq „'}.'ۛWQ?R0U!{4JxрÆh`AͦKb/՛k/d1P1B',Դ*HeJ&x[8Z8[%q\}"}a :,@a$,vr+-ѵ$,95*J ANb`0T̙člbC_/"*)v0 dޖw[F1r9ϡ;ňAh&$Pyk3nG5Qo)`gl],2 VLՀ 'bh]QrI>jc ؝4ɂ I@#XVcGO٥B^Dwrn:G1a#Dmfg#.'{#_Лu 'rSWC?YOq TVWMX~ Wk榮f6MVM]} @s L% H*@ڭ]Ra0vo큱wx{{kW?nJAo#Ӡtq|z aLaIQ9ݵ§ߑR!0iwy@q4J$JX f4܍\3s}(k`ڞ˿F|f)ym`;b[m]ઈ.Pz>q'q*;9:^+ws8$84c_);sDtD\0,MgTULvA=vUbVK%Su5/Cŵ|J<$s図_%6 dfӛ[r /dI !zsEW ȥt )W#򖙑T_șBngRxVz'8;o%3!S=ӌs`7L}-OJ+fXXP}eҸ3w̗R`SɾRÜ }+Ѯ;]=Y>{e̛gqz' ؝JQtM=M0KhM:˅쯐p䧞MH!4u<{.bn*ɯƥ5)1e` ^3 1$hH! rIPZs{B cO!C=0}̽ \jK e;*!@RasR%pV`ƅz=%>>## 4!lFC) 5>\5v1&jSQ#iG*J~ aT<9[H<)H>'0V8JS]oWTj4$PSG -LGM 0ؠf{#S(9-PVT4`]z_=K{YX'Mڇ[.Dg_?z$,-ҾU-`jPK1Y< styles.xml]6Oa8u|6'L' lgX,:|D I>>syWXR7K(V:X")~UES^BLNloqY+^$ћkt>$}=VÇhl/(7\+=.ٯXtDr,\{Xڛ,k־;+rNz:ޯM0;(3?xKb^r}RvmX8f<ڑE?,[쒷>XujL/τYnZ7b2ʊ^eUwkE&=*yQ-m[X4TQ?f"]@ʢΓC!p";(/kŗGV HB_f~hbMQ[]˾[.mӜ4דM@n5jNXfoa)xnP Sq&I m(;/N@K^[w</,7:ܛe,Z%P{&[Uk:@.zmdܰ;+*TRk$QmOm-B!p8u!z*)l8۽d'sb!w;>{}ha0\>@Dk?Q|A=]_s-yo=K_X{/ VcI}ZYx$δ]>YYMV֕p^#sk֣ҍsZg^qJCcT(Ok mi Bk!['>V2'P1zJH9.Sa p#L]H(ʚCy ԧiErz3U){{jajLDWdgnT{k9^XΔL>͉l ȵ*6O~HA\kba!'+'m &F55\l0 {YYjJtx{V} (E&njgFc\ec{1/ Y0 jh_b}YѾ>~[PEm ΖBN :a? ezDV&x뚓`%-Esr ߁֌hOzԮ6tsp{^V@hzCZnM8JI^&Hwnn5_\0՜(^T %//+'H_ ]H Y޺ (V"~k`{ gقmQ6^ϟs> ml8op WFeE$ȯrN9Hu߽W/ 1yƏȢc@҉-xI9v>}2?'1ϿQ5[N@s(?n0u{H ѻDg>7O keQuW{f7adJ$ u9oCVRw5jIR:BE5;SoMWow6FGmt9FwJGr#u֑Ŏ_cݭfUYUnVՎ[ݡZG?S%w"J ˳Ћ{2'W#8/Y_eRHZO*%^^vu$iΊ rpV8#xZ"m$4owMN9~̧*/f'.Sh3#ok}Fj?v$i.Z0zx1=y!PͥHm<>ݹ&ս\5jUYchT%rMw7aX_^?,[1hҮFrx͑Ύٗ{y:\wg,jB1~Vb?w:Ϧ[׷3'7$u߰|_35) Ã--R9Z(W#ū ^<8" 8x{uKԕIDImF7LNuߙKոKe%FTuTY.]]*;љS5SeHFRܥ59UNQ -VOR.#KEg\\f@T V=v0:Ft`h,h:j hh,h Ya1ܣAdA|Ƃ(|O߳=}׻{l74!Focm,0KM|֡]aCj> hXB01lǨoL`5k;26`Laep!9FiLF|`} l<%K]0.!& EP^ՑhcVDޑOh㉼kpt04s&0\79k?B>} Mʿ7-0ܷʄ&?u!cz[dzƎ s0XP[cΰAh^L>"\m@fXP ҿƴ9% ۂp[07X-(s[mHܖqueVsgc 7˝Bd?v/gȼ?o?3lƒ/π݋9<@`^0Ÿ@h,2^iyIzr "c 1d8qa20\7$L&u y k dېO<$ɕIniʊ έ48H#VJ=厊T=*i#=xF EUnfEqv7xN[AFf#/R](hU1d SGqaj5/w~WtXt B^&i@K$R$RSUOVx́XLQlb ΅bjs5ꀬJ zO20U|J^Kid.ڻ YQ4cȈ|d#oY!dQge/0J<1z\uڶ&))m-eϵ1/>lyEG?7`kyykE\S?n'B aTNFe9#8CAdR,'4U08 ']ΦPK0 V"z4PK1Y Anhang 1: Profile der beteiligten Wissenschaftlerkub2005-11-22T11:44:002010-06-09T13:09:342009-11-03T14:30:0032OpenOffice.org/3.2$Unix OpenOffice.org_project/320m12$Build-9483PK1Y<Thumbnails/thumbnail.png{UX[A.^\ b^w--ESݭ@ -B7]\˓IfͬYTe1H```0?IM000(p'_h>ORޙ'Y>7hQhUqpRكhNIyw;tK fE<\\Rjo#ZahPYa1=>q$ ayS =A\TTTEE):o {Vy_Di,vh _8;'?>.F1t.VԻ_WpQZx9;i\yl;,5@>׫ݦ[g <e zhW.~J;jYk>&A3nEϻסU!Iv"{ir<6O;ƞN -oe9:+}'e_^gN,˹vj:.r%5Q&M~F^Jb#{B^@ޛ)l:˔QWSDžLпRޣiy;Bi_FJ qPweYKq5K("x=<'*Ҵ HNZ*O YlF%/5cYnwRq^~Xsoljf;ߟoRAm@1<,<M"oczpxs<Y&pg$E0II<tbhy%|=,`9S&h5Qt'[L~j }-v;,f}}u,< uۚ0[(d{g4>e̊~V ~ Ps58 ٠ ɂN'7({īw3*EJr Q"3X9}$/~ XҔDIZfm;?:@ԟUG~@Vx.2+UIf ģ0y N  g>GUΥ4aTƚwQqRj8v;s0d`Vv1D!T`n ]ϷTjI=O2AAC<@D0[ 90H!UM#KoXVC::n恂wkp 4z“vZi\bCm^ggm(D ] ;Ҥ֭-0$˓4z+l?S/л$&[(PuDo|njQ"@T'[x`Fa'IPy~'ᔒV<17+=.̽s].y BDJReܵwhFg 2! f2GŖsv02RyQpT>썤 еX= f H+Xk# ~|Wf{EMg:?T 5D x݂Ҋ콆J\cfX#FV$uISfH/A; z~Ă\XJYFm&Y؟~ n0 e 84,Z)e 7@uQJGKˢ JU5yylq(Du>+<)0], z^AC˴SMt+,_mHYF6%ZOq )=PHwB-,tD(>z=qDQ> w~|_0"|t!>6x2'ÐS^`>ZCs7DP0}J˚DޫuΡ@˟d&N籷B>_4)ԨE֟R5JVh :;ueVg4Ř'sjeNI$}пG>7.g Iٖsr~5 {NgX.U/ođisUԔHT (vUK,?0~Co#0\> єyꬩ-NI Ȕ޹A/P7Ⱦx /p7i 8TԔp6[9b[Krjba` &4Hs bQAnbAb푫u.QbYFB˽Ҝt nN~G63XnVJ_JT#GΎ<nJ%< R}8; u-؃C6w5 ci.+iǘr 2KA^@-r o|[sjP8?)/h$Heb b;#gVfw!k$$@UW("bH 5*A515hk]qi1HE@B؟x_25 ( w9b[|l<*>e9+?` l|V7x`jvisdQcX aAUΑ}/ըMʵw?@VpVgSy>`44 s*=~D!3pr-޶(;$[$eI6j V3nRHKBBNcr@UX*:AA0=X6oOUG@D<6PɟIi伜WZ8^Uo(v_A̢w]6RfT8vlF DAF3x Y A,mr;\ ]Ωn!rr`wZvcNb˫sw:懊z.(b{xt!鹄}g[+;998%X6 TU|oE%X!lRFXydEu]`ʬe*Og5=ʗ<-dP/a h+2*kňBIeS2Ԟ Emۤ}:r7ո*_\+sow OqFMB<d*ȓq'ns1vkKeT3夎D=E|\ubevw23DH3% Oj69(ϫV۪+  hT%*$)G O8]&Ϗ]ޔ'\6Qlwc$_1lU8gW[P`t(Y8=>"ǀ+DrDP_A-8gR1-g+(&?A.k2xA񍘿nRԓ:}Yf{wg 9i7~ݚc^٧%:DnRr㥵&kxɛ?!ƚwFObr"43yϽru%,RCI}/Z'7)x#;^` /ķp3 _]->&m[.zΪƑxKUXqfƵJ%CwH7{bVPݬ2)ʬs Zv-Wt9$t j$$ߔ,bswߌCp'h1Wkڛªn?ÎIeBL1C&{P2l"$Qg=rvyvy~jRFQ_0.2̿zRG_1Z(ڸKon0 c^U d@'bwX/b9-bl*IP 2Qr04̾rNy |~PqoWq4`JQi-G rX9#djBg~ ڌ=so3`D"VxBgxv8k9^l&xA@u ]} AP2cRLM,$fE.Sc$?akZfLȆym?OS"{utnvD9jr#eX(ͥ){ULduÔ٠~p ŧhqou-aV=6?dp&OcNh3}~T+;Pk9z#Gm zA)S (Mzsj6<1?&Hj(h|M7flТJݺ|0$qq%_ZZX6{@_0d{8Zՙ"iz9ڿĬӉOoR+k@b> ^a|pX Gg6nq YjvD?y.cl/j3[>nF:qxkkB4Ph۱c72K0_hILŁRo6q3;Jby. z|tC!{YyE73k?[_gz>qh_V&^!)p?%Hϲ V6z0V{BȨ밹`>b3q^a81۶,QLw"sp}> D$㱛aT7+#; ,HK`Xo)TU$N0\/'ݣ*?i\0쭵zrʢ|k {!!u(b'\A⤊{31ɀ+TSvy=ZYhmL$8l"3J~-q:Uv2E)1Nq!C9>.~-QFFV Q_2?~ <.<;`VSGGL9Az:$ϖ4G5ͬ[E[|s.=I  (LR`7Egd*JC-7 $2siŚ03,U,kK%ӮI"wN$<{%w4r6_6vp6H.ADy/}$ ?_:>ǤL~? EixL ߎeaG%2z'(Sq1A5QE C''%߅[p.H*\5,nR Y ؏s#IhKFh=V`m}r6DH{l]8(-ļy6#p58fH+$TI,2k O}\lۮfZcp~a7^ ŭg1SE9]inY^7%w]*oZ^t6\_Ñr׽KB]'U"0+ܶ*ܞ*7H\CBM:x?GM!E8o--Oa)5nOGwg) y C7tie[_WPGL 4*5*BFZ7D1`Ē ٖbт<7 zΖ&ds;R/e^2u⛒L01m,n)֞ZH261irK3|ZUvPesVuNQoy'c3Jn38O/Spȴ!a!aY瓛K(.bnDG-բ.}Kž0ђɺˈ )q9DW[ 4g7/0\QO)om&$JWhۥy'M{M!WLo` \xȺPU*(": }QDs? ڽ(+GCM^0:oDyi/1'}tI0D^%O e7\Y2 '#Qkv#\uvmGl^nj*tuS7Yڋ`<9 6cp?5e _(oO{2T߿{C\XFҴkqdotJZRXm<"ѐT#RBOYR].޸H+;)fΕ%*k֔H-V@\^ \SM$o`c*}';y>Q$.a5iѩbsyRg'MVɓmIAǃ9P{vx)tZ uֆc-x,>Gܑ-l sDiVf#Xo +J7^zPwx]ZRĴG۫h3U1\;'>8HO8DSgAHVխ<)0wЎCJ ^#z/W2oG0(h`J%(j+N`#^y _1DdTy^;Z8?V_@F(ScJEn4Y02:b@lyX{`VP>?GW>5f7?9ql2,ճ=WZ] UЖ.o]_#.= (0;? 2w4q{oJ'oLB3̲rL4-["*AYq80??eQYBc'R+#*t8,o͡+q4EBR"LdDN,#6DMuA]geMV56zMqVFB#B74EvxPH<'q r )ZH{ H_f/g=_$g* , &;BBU,tu~Dzyl)zr:bWCDj/7 4ѸM o]O&QN\1,Hrpʻ6/+Dnj8|,vCd2o˖ 8;=3-pcKEh|':-|V^ CuER~wg'G 'On$"q4p[pt\E|.1&( EY^ Є<~mրuQdTwG9 b&dKp3vea쯥 | u Jr31LpͥϿ8m?TZqj}QP\%q8[b^wM`Ci ]\Tq` 2~]BclL{Yqlt"plJ6ŭČq}rNԝ]wM<3B3Ԑڝvv'yư3AA%zzPmkyveԐcLDxZ[x;g5^n@$:'hy] EK9u/),k<^`%8Ȳc;n ?1:`΂GS>np ǶYEcKbg4L:;D''&OzY=2g3JG-6f kcIm t-{Oxc][ d+ E]IRzn ud-z?ǔq 8&nPt\crԷٺL_(K"ПL+/oC>YyAnd#ߙ%fYr(bsqUa+R!$\ a#HAb>ϏoM+<b .[ǤSOQ7BP_Wy\ HWKO=<أP]M M y2j]l d-v oaS瑱~[M0bh>x+ExB4`4'& ᕕQWxEH -4r%t6ܘPuNfz.5r-[3R1L^Bg9au#,fjk==Y[Tmޛ=:u*TIA⿣Ө3Lр[{R#/$ +Bº#~-ԙ/q  mJawQxhxe9Sb942԰ );|ɐ&+,I a)-<()YP׭&׊JJYh.s cPiV2 [;V`(߂)L&/Z`mw!v9P>U& u #eݭrGp&(KlAn.I >-65X5v^}ǟhsA7n^&))AT`q;lR^˳v/5.sv:V.URMJ;  EգM<@J:DMu'0QY*$KIn8Q EnD<u0O˨?Yl8Kx Bކ$q( ULQ}zB&MlOM3QkA=4Pn6r"Twd_q;P;!'_FeRն$[˝xe/K6ᄎcQ 4 v,Xz+U;H=묋hbˮG,ll]}/iϟJ,4~MWi RBK+>>udmTq͖>vVNIDe>著hiN閪H7tWo T̯Š98ǽ^?ȵBc[n%@ԠrOB Q뉄1PMrǗ;|PBs!I(9vÞڐIK֧E>H9Wڪg>k sy!+mq}3p"+]~u{ +p޲vI띀aQ|,תES~o9زz'!)QcjP~I4 sZiy y_(l@x0ߤ*w̡.FAwU= db|K.N_=[o*'m4[zCD k|:´  *EZtNִE7n~4qp!?hVir#4|'@]fkYQ(d౔Ң%1QsH¦1TT{8\vl~t4 acr~p} =`䤸~h ]GS޳J _Evzh4s"0wzzx, !h ˡb52^kR^,!c&EtK0PSv6*qSݻZ?H+n+(=YNV"+fCmx}%a^/J'*j,9P`+O3[YEU͜i 78~wђu|.$95vUx%>C2]EG]k{UgѲq@٨>'ؗ aα4 9߷g˥Yj# nIZYZ$PKDW94h6PK1Y<'Configurations2/accelerator/current.xmlPK1Y<Configurations2/progressbar/PK1Y<Configurations2/floater/PK1Y<Configurations2/popupmenu/PK1Y<Configurations2/menubar/PK1Y<Configurations2/toolbar/PK1Y<Configurations2/images/Bitmaps/PK1Y<Configurations2/statusbar/PK1Y< settings.xmlZnE)H$$jLv֭Xӈ݉xf53BHۤZ($і#nZb{osrjNݑFԙ䰔%):5M˔͑N&˞_J/4IlB|hbMrQ9_e&[l ٳ5.65:Ƃw ;xg<́ -el]{Kb%NV'K VGv+ipi"9&%k~&O Z55pMDTB<#N۞Zbۥ 赧S1W_UL!Yp!G\< 0Q5(Ñ.5KkeV#j`2}䗑yVKg0٧Y3@C Fqse RF*X1:2K 9"I$ueˎHT؉T0瀾Djyj!ưMX&5+79zfi0MֶIgC`AiGArVmdO] \fLҀ 8.X\HHX\:Je^sZuOJVÍ!;J LFIGO9tVV%xf(X:L @[¸RʲDbyD Z',L +OL@`I&\}^'CH]gטimu[Ŧ%Wuq5,W\a(:&c?=;Y'fg\[+#:bXGb-R`rUmtB.?aƙ]kk:4FTA!blVO}"dqA@/-eBU g+pARrUH.h AV[rq!c3RLCcNyKױH5/L>SMށ (,zZAc%D@yM @嘃Y-4q㗸nXTTĺO2]C{s<'{~vRE;"autL K1{!Tj%܏XvVgkPQ^ `t2B-p0cBT6S :W M" ti #x:) 8 ;%#0tƶb :<ޟBMyyl+lp@<\a7S68 0Pb" )~N ; Wꈪ[65Ȋ87ߴJh{^A`oa};å CL77|ޫ5?]jX2.(HS뙈O{(kepvBL!{K#l֪lpyHeY9){o FIX6-̀z4؏VPKIHXPK1Y<^2 ''mimetypePK1Y and Vidyut Samanta . Use to contact the current maintainer(s). .SH AVAILABILITY You can obtain the original author's latest version from http://www.gnu.org/software/libextractor/ libextractor-1.3/src/plugins/testdata/it_dawn.it0000644000175000017500000036660512016742766017077 00000000000000IMPMDawn  0}8 %+..+&"! @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@   9c 1!qaQS!u)^'R**"&g&'|(P) 7-ŵ7-{DH7-ȅ!7-΋7-7-%7-5P 8-9z<-{cB- Dawn by Gargoyle / funky brains 23.09.2002 Greetings to Cryssalid, Fermus, Christofori, Crimson King, D Fast and Infey, my fellow funky brains. Samples by area51dna (Dan Nyman) - Gargoyle/fb gargoyle@tunestore.de www.tunestore.de - fb homepage: www.lysisfactor.net/funkybrains IMPI<Area51 strings      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvw@,e .pdIMPI<  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvw@@dddIMPI<Area51 deep/high horns      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvw@@d GddIMPI<Area51 violin      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvw@@dddIMPI<Area51 strings      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvw@ ddIMPS@area51dna strings X f*IMPS@@ IMPS@area51dna deep/high horn=P=*IMPS@area51dna violin{Rq+:IMPS@@ IMPS@@ IMPS@@======================== IMPS@@Dawn IMPS@@======================== IMPS@@by Gargoyle/fb in 2002 IMPS@@ IMPS@@gargoyle@tunestore.de IMPS@@www.tunestore.de @ <xADHST!P!TTPTPTP!7!@!C0TOTOTOTO@<ADHSTTT!P!TTPTPTP8x)ViV8!=0!IPU)WiWDUDUDUD!YY@:?CFRR VV!KRKRKRK8x)WiW!;!@0!H!TT)ViVOTOXTXT@<ADHSYTT!T!TYT!WWYTY[[T!7!@!C0[OOT[T[SST[T@<ADHS\TT!T!T\T!WW\T\[[T!7!@!C0^OOX^X^SSX^X@DADMU\WW!U\U!\\\U\``U5000!T\0xT\TY![[TYT-@DADMU\WW!U\U!\\\U\``Uv7!C!F!O0^!b tib r p nU l j h f^ d b ` ^U[ \[ Z X V!<@CL!T[0 Tx R P T    [    T @ 0 @ P@<ADHSTZ}Z!P![i[!TT__P``TPTccP``!7!@!C0TbbOTOT__OT[[O@<ADHST``!P!TTPTPT0P8x8!=0!IPU0xDUDUDUD)^i^@:?CFRR^^!KRKRKR!\\^^K\\!;!@0!H!TT[[OTO!YiYX[[TXT@DADMU\WW!U\U!\\\Ux\`t`pkhUd` 7X!C!F!O0^!bibU^U[[x!<@CL!T[0x@@<xADHSTaPaTTPTPTPTPTPTPTP@ 4GLOSU[JZT!3!F!K!N!R!T!ZaI![!U0P0MP0YH ] W<H!LOR[O _ V@ AMOQTYL O`X!QTYOQTY!aR  K A     )H)H!\  %F(M%R(paU!Y0!T08!bt۪{ZWֲ A zanvk89Da{S)6/|P!|R  6G49TD~CIԩh&8% _E0Vev4$\"{u0=˳8}Z # 7M! (At6tD<T3,xSP7T3R4nP1&zH<fl B Q XLXJ"!:Or%Jr@ek:%4p@9 S['@"0+Qy4_Ju%V21΋5Qk2TxN 9n`}| \[jEu3IAx W?ٝyMnmm̈́&B"-Ȫ"ӪAAGF: @4EM:έm%>ܼX. P\H1io=_rA$ǰ oH#Qk9}X@hI',ȳ~*K1 F%5iK;/NH@ B\w8)C./PB;P{bI]7pS]lP Y_l1 p3=XyCՓ{I9S.62#_hNmmI+Dt !x[BZ!m ~w͖SÉg,{WNF~udN0kZ_NDb ;%5lnF}Nd{Ѓz{T5 bM>q%lGq7$|ט2+Fdio ʾƗ|ȖIYTMjt'w@"'Q 86UB.=jFNiIO*|S|O !ͲJ$ @Xy- Y%Y!d@Mכ}eM%:۰IFav\˃*,IБ|ۂK[s{B5\w[Sh= TQ]8@w2$ /8GH4hZ^@ *5* 4ߌ.w-kK>Oܕq˾K7;N瞊TwN$ףu:3fR^fU6 vM ^kHw5pIX7Lz|X;<M;RvJ㩻zp;3"2?.{"cxE-76@"rfM\'װ!G2 zdDh$bNB?QGyI} *fG;2BU`ytw;@ N0޻zh^@^Qyw0Wh˨"3j%Mr견 S8Q4r #|HAxxO?45W_Ӷ@ j@IցT*afBs䀛vJCpOڝxŇx1pO޲Z B0K{ MyPxٜȭ^HVL%N"^dsQcB脅`fΦ21!Xa$D nnu?/xԌ0\`0@6r:yjnK[m>^DŽ~`sJXhF3&2t&D;;4Z@W ` C`$lR SEhg`+P% !P@dMy:PH WZiƊ.b7կub$kp#s pm-K2ŃzY0'B a i @C2bUr$leu|AĹ+7v#w?0ϱI|OS/ Fk,[Jəˊ/ XJֻ(Jh2њ=G%`UTO@7rY X$E`CK0}%` TΆ#4Ìg7Ov5L5=U{meNVk9&bU;k']½E@4C. &,daVcpI#򥏈dH'<%1]ӧ%tCN+r@ q.TY׍׭ "݁oԕӅ{ o%͍7Mxu|H"r i '@=bEEn0#b,ՙ;|(K+@8o1yޚz ػCn\R1fZ="|wB,]a|7]ڷ:q [[]VoIT+u: ބϘզhDH+lP#gҧNxuQ7}al{b R15C/mms?Aݰe7 G]|`HuɜO ~RQG `@nZd I9Tt44?^-G'a:mGQe3Mꙛ ~9E]yihp_ܭ}l%JI_^IV 1 i=9vC%@UQI21 dpYKFLpׄu -}A oYJPQrŃ,J[[GY˜pins٘:Z؏l^ꮕJlr;̴0#;qux>@R;$!eadUZ%/潘uH"˹B#ʰJ4"hÌS_0l@l [x"'v;iqT-ww9YəqP|Ѓo6UIwUL)`N[aD7pfgI,B)D-365W53uC|'z㒸 p hGL D20.mV_pn#XKZEN>r*7nliUxsw}xow̳ ^+|CQ!PMerF$o'a;SQ8TTz(FwXErf @:z)biyPae@;}P{PJy}]R?u[f$__HUnzekFY2wzk,v6H(V9 ')/|>Wu!W]Ee*lS@;yfn9S"o0~;YޛM9U9ِ]95c# }lg؟h<σek3Hu, 8|#HT"|?luͿ^ j1XA̯aXt];wxL~v&q2+OHwoH"gSa09thaC{*HeaE*rD]yXWr3۟vlkq/@^³v0#/5}TIA8ZCy [hr.c7ܿ5L>[L$>.ՐB楛71_6 Na gM/|鋜ꄉߗ .{;7fiz0FY1Aϥ?\p@rd9GɽW~[׽z%93;Di|&˖b_'w)H -NOP Jڋgqvu؍R $pAPDf 5y*uwh9Zo9"2[k+a+mzҥWI6@ ~ KBD!.. ^4C>LXuhMl*12tt4}Ϊ>v19ȴK3@PꛡT,`M|c~ٔ66 #V("?%Rlfn?.*ۊxEw^ѓ@lBAhH7L02B[A׀1t=857#B"Gh3J.TB34q?4FAA@b_KOF} ˪f<qv00Bs2 s@aچΣdir+@y1 I@n^fФlTDj"1̖@{j pbNpHD/E_.#O3M}vbpdV4t/r:(nV*Zߧs?CKBpL@#:?kȔ 3o%Ix 4U ,)Y"1cJN_[;!@;6viunw"Cł|l8sĴw+97._-LcFmn_LBc r!ѓ&ZRfj_}d֍RF:GIl$K90/FςRXD+hyaz:+v꨼ +eUQ ˻|Ұ4Wi`1@P.>!桾luH|'ԛg4SƣQ+70 /Yٗ]9GbF4-v7o  b} 1tFǟݿB7أjҦn/d\s&cMcn(`@(IwuiA.C*w&\5hq+I 1{Lj`!H焀qv-xQ` [:KG%x(h~Ho0oSJE^xIJHyZƈTHQ+ʅv?*A,fv5 8߹ yI=Ua{|5[qH/2q o5]@;Q2x4nB# ߚE[\cF~IH ÄN v3?bQ ɇ 17||ͬz).erR?;AgXrG]JQ]H3"Aʪ+$N$G78o-qma?ߔ4Sa:8TrȄ'34=t.r^撫9GQS D@V7{ S}LꉭzwfkyUoF@+i|q@@3u l @K鴸[%DžDVXM/?sզz=+~.]y $=*j>_[AN\JF(&{ei ޸fapf ed 2)pu@bf8!+u)ZUOfZ|¿wݵw?*H}8&QM~`ʑ, '@Lo[{yĪAp8UOF؊%RQhܶ"{>~L`NqZ6@|,/k6ޜuY#=/B"7 :5#Q?ZD?`-㣫i"Ca8ػY FG6h@ŶhCbܨK^\Hdumn`Fw2qH GrzX 5-;aq}*Jԥm6hk_y!b0YAѱ YGi_Q4Lo0lw75[7, fۢktLNX=sҎhFר`;oq Aq'{ 4 +láYwV5tyB\C\^hATmZ"^(n{1RRh{ `63r݇um7Ƹ4]9v[+a!\g7ؖ pC!R0b!rx>CAZ S'_hj@4!ł(gԫ/`9;VI5p9[|oB%͆c>~\>c_C+`<9Q0ި@TB_f;0?0=5]a&@\@ ;ԃ_.E :1$c!Zz5hH)oh]֣Oq`qM'5pjvEk`|W.{'?/W|9r'%iH~ /wSڿQ] rbMxB>.iInq, 6b+S<ѣ T0+޾\%@,J(¨'-| A>x*@a {3Jf[)mXquwKϺ -abNɔfH"hh!c>,\m bv%60W>ɭE3Hm']fD sz鍗j hHW @"[\ v}x}uR:?j(c.%Cm,% .;8r8B bϷU!Rdv+@$cJ(6r! 8XWq-xD4Ezm^UVӃUU=:,^+&(3EhyyNRA.L&LPbg -jpBo&Y&wIq; Y{{p-QP6 l}ȷ0̆ţSÅ]UP@4Sxf@I <x\G+Y_^bkG",IԳrr[/f@X!;mޡ+ax"㠧V_pD}& k>[ƴqEOZg*^3gXWE?W.ɋwJ"fv#`YL+T1 ˓,`͍d9/y氵3ӈ߫;JzA}TnY!)vW|}:bEfN_NcwJkg놝IM4$09/0ѭ'\$WMx|e-x~чp(;;v c@6pѾg꼜ct-o>]cCtpEohuU0ݞ{'1I P͏t AtB+l*'" At`l)boYRd^m!K ț}J[e,{IZ;d򲗄5aL;RU[ZvNiN~TfuOb٨wqat.QWEJŢ]Dd( ch~gfu$u-(}?n`6oCHUۡZ1M x۶^71MϦ|cBg6jD*" 蔛˼n$ Ԉ @=(.*{1@Щy]k~NɂW[6t)fc;tpP0R:ID g8ӡ)WXxJ̤u/~L,-0A | &3J)U5;-0:?-E~=v]^ئIj>>b)rp[̯H7ՆZ | B 5|Ϣ]ϴWq@˓=@! f͈vF``.=xC"^E64WT>HtsSy~`62L2O,~_^NД;[S̸ fVBv_B 00lSg-*-SrB뼡9jq= P?V%ȂSv$ (|^pٿWGI{hq^n>CVϟ r !R=n%9xxw@th֩MI̵Cz_"yRmZT8.K l n-Z5,4iQ4rddR#²'j26 lKxAep]Eä?wrKU\;>&>\E- hѾߑv_/*f hoQH J% Ao3;fr`PB* +wZ+ށ?+#pSN12:,Fq?fkOQ H5 _;@9R2* qh&냶K $u>v;tcЃT6u/@њ?TFm|ğ IeOwƍbZz9o>żpbZ<މDkɬ/%5&}ô AG u tH~dkrW}~۪um nR<9_""0C+!<y͚$1^ɔLybqhⴧy4Z$ q'Y=bw^TރCp!n5y*JYxQ"!^]86sV%@Qkp D”f#IpXe4?.pA'#!$r0*|dk,a@|wB3:Xsr%]p"9r\xcFbBj&t!~lȭ7vn%ЇPxp 9C|g6Wt {*) Fhۆqq t:GK%-E'Z:QW\-,@p?C&n<83#0CpPo\M g#K#p&ЯGo%U^SW7Wi{P|P&Xs|1.)*$̡9c ޽őKc &$_ g7IE75}{2Vp 5PpIׇn!$9-7zWgȯ 24_ۜh*P =ās[8up~Ma Z|Y5;ΚrRYvH3+ XQ.~ze D{;g8Ʊ㦳mon~J k<['#u1pD1F1h2D'A,1#QA:l̎b-cߺ3$\ V}{!d"w鎻q5u*Wv8U)lϠ۟}kԊoMD O3FTM1)fIS8'*&Q"Z =IP(pF\jhcE?h5a^470g{ Z% M9g- AQn &*a j#5/7xjY`t$<*3"#Os+XMM4DPmZXX<ɐSNeU}C&VHwK}Jֱ.`(ڒ -݅`IJs7OchfA-_W@ dEvfgN ľOס`r KR[r}xy|s1ǺwN005 X([8|߲/NOUZh9=^z`USR켄 %Gw\k50OҁR5!qDCZ7"H @Z(FZɘlwɟË=gwk̴̀[?Uc#K+DA%8[ ~x )&!,b8 M銴10a)|C~p>"C^}th {I]$.oY$Mm4cS:=IC24Z\3 ;{#9LWpH*%`n)Mڰ0aW-Б rOǭ|ǘ;ǡb~ŐX_Ghᵁ-mC7ptod#g}o1]LGAD<&\{#;[Œ̶p&@9tJpp6골Lj@zTĵLCfZ)1I  EHP/d|p$.4x:/ѿ{Z*R{q vVquњBm 99p&g1 (h & B 1 9v4`Q) U@TfBMQiVre6BiS)?B t w*ru*MiJDmCf]̍]u 8x*G*=ssi2?~LD7 X?<1"j5 LzpG%Cnۚ=uu#= XX4[OY idB@ˎLx0i|)r4⺊a21?Egl=rא1ئ~9 FZ7riܫUUNݙU=4v7 >~l>-/z 388ItHv }RPn.t'SMUROaP^XΦNaؤezj*4g+V (K "- G8,UC\9_Qùy,#uI*{Z*@ N8~_V~8Fa~zU aǂX Jˈ) nXp?7"!F g q;ۣTW@^:m1C9Z|+PK06qM?4[52[/toTa_A!<* =bBK21L"JX)z )ҨE E)QHyp`9 "rH߀OޣP{o&f-a'ջ'axoxZ4c;.Xr:zt@ϲtFih }*C#ͤx;ILQ0d"\4F8{tTOG]SǸO9?^ .-{sG>Vo4@KzMɜR<ҡnwxKU3pӥ*jI2PdKPࡰULȀ E%gn_اޖUyölf_9}b[Cfs近=ll /W?wȫ_$ W  ɚY ~X} \gAO\Dؖz  ># IX#2tӰ #fVCq}W/o8؛Btx +Nj;׼Σ ~<| )G ӝttW\9! "4<5r7Uebj(N%%? " n݉(_/4v؆8o^v~vw{!tlQ[TnhL0@;E0O vtAor&Y7~qw,E6圅0LV'?NQҁs>[,v;񸛛B\:jSkMՔw/m1W FeC3&} #meHdc)GYM)vd\ݪpF"HdKふU_qëxqmuI'42baF*q2ebAs3Ĝ4A(UOn>?'b>obtb|L`!E*^r67*Ume8k8PqLjl0h+`un4PTgCzAGW?,x\_PslkSy&'jUS"`景;!k"}6' qЏHs, q+oL4y 7?m4Vd$0RJQtX^(IJy"nb: @Z5RCJt H8K 5wI`Tv*{-wWU {'׈ie^~S2d*Y]Sh()tEMI}h[8 mMnF^s:+{\/,Tnt.efG7mĤ=R|6pjJhWlB/=;6c=t`LVEYX$}0 ?c7p,U\~Xr:R;*<_45R{ |ɏrQkJ>J&_F=GiQH( Q%U 3 T^vpxpB Kꀷ1 r=pX߸{4[Ű@+w~u5_mD&%D.9Uٯ70T0~DA@4#ܛْK T eF"R0 0?o!꟬wt{mw~!DSQlp |f''<a rO ufD>) Co$wI?ReZ=ԬNDTjG˻ks",@xsD_#+$WxBD4Lp 5~E[\ K$uL k{6wxVhE v(dȂ_fjZղ/&AF`q$[mE|r&(ć';Eh* *mtǿՌ UP  `QTH(7?)PN"Q8&*(3:4Gr(u5_@/O>YFn eG^zH?C* veMXQIŹ]8HHsKvf4'\2q'/#7!rMH0m*nh}ki^.^m:^7a(,B^DIS3A2Iw&"rQ܎XEKP}O258U {A賌4듞h!~'dF;:WW6ct9p],ZN<(g Swu[`B2>R Ca'I*SɴɗH[4>(,th ;E Z{ 7mT۰&.P\;G yywd$L?՗kU_Iys8znYO\I-iI `8 931H w/c?o@?41O̦ +|%6AJEsfFCXoeS-pR"}-ݧ.A 鵾NSb΄|!=SQ= q׍$1J\;1! @>u2*_ht}0)MdbL@]BhmئݿVn~pUYufAf*qIbM 2lj&k 6y""71wNV˖ T͛q%vX%]s D;3QpDDf~Z/>Yep\UE_&`.ux szr 2ZyW yS'*j:ma+"D@z6? dQgƾPR_qGפ;ٶ\',|ݛ W0@- p~LN%Q ea QyL)҆0@Ңg"zt  /J:-#Rnwn6\n15>fu^0Skyvs'xl۲F6)(vVء֌&۹ +b ]!\A*Nq6np|3:,tl3`fb3E@CE@0&F /8iJ%<@]B1w/{aNy/xVS!zKk:#Es"_ G<|HnʶBʌeʺ>$zǨSȢ''tLT, 'IxrlFC7rƱ;l|h.1T;*ޅ<5fLs @(8QĀ\w9o8˃F)~G )؉LF^|k/ĊĝY~'4."ZțDRXV3Y\e?a{_Po>mXVi- #Yl"9" _Mr3 `892؅sGXxSdx9``F١b = t~`}fNDmVi P)H5^"ŮU;hɑ1r-!~hmIǐ:iXnȗkD¿f͠`Ksaz\XLά+9|_Ny .IgV]$f,q6FlX=x K rAA-ɘ؃+? Txz[Q ~x+`O<@$(6[H5phΝV@ ɖOJ 2XHѵNtʴ%hD#{*G?V:vfZwWb;QqHSoW?<@XH)CD@g;@B2 &]8W _"D0hjmKN!avevJF#>f&k>}$co+S[:pY3R32girVEzι'H|G(( Uߐս Eо #e[;yJ1xVJf'a7V~]'QT͖-iVuiH~S"o݃G+0mP8z0+k~lrw*m>5fJkc‹陶X `u^3nݚ}mP/aXA*yl"RҊh.%(׀ԄsN/kS[tpZ/=Xh $n-5&-KKv)&n!rq?Yg/ڋmy# $os7l.ˡ8$hc@ p }C4t qkV K-|sevf@G/r>'Uunbj'i&1ix,s$ GЋ߁8ѕ{4w_fH|J0 `(_>`5\XV/gi/o=hvוR,7~QG9mZw>#Y6i9hwE^yb(i_s #@Vd3Rvf ^~pvbp6 22ZDh4q-85<=5Q/Ov7Ml Xp @2[n`sp@L^ߓ5֣c-g=g߂aQc$)b֠Y2JEsb=I5Șs^JZCtN˿/_Ù LpH5Ǿ hyQ4[`#'[=@%_h b~1?}" YRRFREci0EX${ "7Ee؆ۭ}Ml^k˚;ww"w̾ +hB־X1) @9P-Z}hx@ B#=f qƠme.-Z@ Ec[Ug lĠ.P]OD?&vxeҭQ}1rph 5'r4՘T(-vmzOomx.=?Vd6Ϸ}F(bS;?*m'^׺@~G in&x*EbF!ȴ̖R) +~uz)[{ y൭e7@-K> ~=BiJ/{ڱ%m '$NF^8#LN6V6EU]@ l3=5blpG^ =NžvX-0tɋ]jE/;@1^jd5Ow.T^涢#y?rLkC\n'EW-D dȬX(ͤPENWn[qMz8ӛ=vȿEXk_q7PO`Z9MۨdpfTr:]*h~9Sw~z9ӽlMPR$cܑ֒b*:ζG&I3.G2ݽtZ-[9PN $EI2mO)/֘9o [Ol̆{%dZ\v%#@E hԕk1Gh:S)爖e.TCb:'Vnqy;:0I>Ecw*3BFC#+{w>@/9n!>O`ewV8g!S4:;DUȌ^mJdl[skL]a1Qv"*rmbt}eAλydAuЇY.Ch[ϙ?-i4G ?_0 ͞^ 8Cd@LLyY&YwX"@E2i@~<d $W{n{qgT-VG@y`Va+fВ>TlSw\'nT[~ղ*үr?ڎlqŽv%Xo1 qT_Xi%ihYH>WaYkҷZ8KN wR/ ;{P5렽t|Đw&d9}D|RWG-O&R @\4*Wfeqe%RXA+hS0ݹ[ZJKt.Ѳɱ2+-UTNw>˚i^\σMJY ] @/^( xW/u7yT0$4g "H:Z?Usg'$4Q 1" k+ųel8k.d2UW7vUʉ 5 9#oP@ 6vnѺ[kk\׹28h j*i|7"qkw͍\vؔV;CdP vvbS8/YdOԻbamݩq(@gf;٠30 I))T5n@Awh$-p'6k\P|ճ| 2ѻ0# >L| #{pJ_a.0MD)̈ v )LEHi 2$<" Zu=nx]H-_$r`Pn@=M9'X}[ƹFfKDentދ4BnѝM24iMHAuMntN]SU,UTm &EYqKK8+٪*,kn-vX@?/ ^֤ZSbO`m_nvZi/gw._哙縛ʔbI@<%Wʐ(9&qNOF6㊈j~kl;R[1~{[b} 9"r)eV:Wh\XqBmAOO PD'C&tO7.YRFQZ7q9f8liAG=܁9|U烾cgz=ڵtOຝIl@ pmq.X`3ZX#e*`\2${p9i#FJe#"T}, لLHi)v4Rhn>|X .˟]Lc¿x:?tsTW8_{[o{\S'0&@dK47q2k&qA}>|}-$E2_T)o?O{~۹/K ôL0 (i8V@4 S{=T1po\oR0N(V @4 >e9ա ^(i|d[dPMzb˵W[c7KspKkاq8v)H8=#[`)8@&lbQQ@@KU(R5K},J ο>A{|o XA ǟ OV2 v0]C̤ݒwFyk ӌudG](,Qi>t-`bVo;dq]f9|A&@p> >drjj/f/7M)r)`QL41$u }8~@6)>zHAi(~dfzh+:+%S/+?q kBKF `B*^ @=m*it0B^^yenT&DE`JtWͭVϹL`m/a,Epdohw"dz*esgztRo0#zw[o_F:\ԉOBdĤ [E4ݙ4Mdju0~itDGe59O馐,t> #Yy<"xTKbd2/î,IE 8ܷ;3LwkZI}'h]OX/i0:Q)|ӎ1~߼7U3,6!&F1}I)Y. *ck뛼v8@/766"mʉxN-8E{H\fMwCyI2ͻp^z-RP {:TZ9=maM}kj zY393BFK<=38=uJ,Н`{K`V=w<`daFkx9mY^vn,H(A/ē`αDbJD$-:{@@ 3KhI64Yo̟=Vy=ʕדG|9|uu᝼'\ZgbmٶV˜7&-߿>Sx<޷o6bJM֪) {.ElN8WmxW#:Jhw^QQ, KUecq LY:8 =황se~vVƫ#t%W#b5KsE: CRH(E6)_eUF mԹBtN ]͘r"vĠd>?[?%5C&_ O~ۻ:I8l!:?Y+&͝WT;=TF*'Ȃp [N2X2Βt;:̤>إ] zzEarqcor[11^1M*|y.8ؗݢdfbjЩ[^^˳+jyhO[.A5D'%hU:,*z, + 6= 00#cdn.] /[x|>`#X"%`wsa+ŵ,ϪثɎw, O ,Φ[ot+@N78 (" !OhPD Cu?$y܁#ysZ n@Q̊:ӵ<]Tw<5IWz3_ w w-~n.8M?@Ue6& yi<׵8,tǤ6*{O'Ǣ'7; ۵ XEuӾOe@ݙ1μeH=ۼ^gS^%SH~ 0⢝Y?}3I"UBd lNa;Wu7Ry;` VP'I:Ssa =2+$.:w-V(U`JZo yWh-?ֹDʃqǾ+xa,%rW]dk>~/h~;I,䉼DVi[;w?ZeO[Q[pX|jݧƷ !#_6/XQACft< }g-"0rQS2pH%)V>;h R<^8 P#fP!E$Ģ' Ï+ar+`|b@-t_[Vܝ 0'ChJнBڳnSʔxj(ۤ}$YBxVO/E66Mlt '*쐗r'|x/vAon|J ? Eq(lEg*5m@a/E2TP\ nq]˳*=Ö̏0yxqwPx#3lf0FrL343l]R0lyXl$H\m)m]>P6ں`P:q*=:sYAI$E΄N;UZ9WUs%y8H -r)%@T >0@i&&{3쪥xY1܂C]j~e:_}6&"})|""e gPK At` ['·_,C~@)jՏLi4Lۊ^i*^hux"l] nm'˅ˍx%(CqD\dlq41-z襓!_m8Dp:"ll&B^J{# `5( K>)/k@׺=' jDiu3q_I:iBo ȍ6l>gnU( B|Dq8(XoȮrh{ARmG>F%5*B=g~0҆waLGjپvzD pNpIU QčH;,#S JJ@׼ErW4H9J =. $>1{t>p@6!u1$]0ۇg]kuNd=֩_;4AٌIr߇B/!ݷ܊  qz f#*"|INK~-$-(cDP1;n!hLJ})Ưa`S/|pzJ[RF}w:Z%tZ{hwɈ =]1Q#B!j GZ( Nk .)pQ xe/g`nm@G 4 >đDbǎg=+2M܆V ,pb|$j@AKsτh<3MLn41H] 2f= r ځ3"^#{Y0Y+p 't+Z&aטD*nm#mƄؕj{<(^3'Y8m(S k(^z3 (L0V5pyRJyZAZ[9`<K2ң_m8 WtU]"՟azɋtS]F.ɘXpp/uz$3SC4l;xQ` tppʟSdIc.(W@4o"p:By6uIh/Iwp Aǖ0V=OyWfE =џt&o[/m8eا8r"4 QH4 aUK;PܓH \f@ɘ[H֔NmG2HA]- 7L^\ ?q[fM KѾØ8:) lK$gx }sQ5Ma!:•'VH.qƖLt)T[Ky@B; sX,[lp{0hӎ[LU5䚶2ϐ`Ps7r?J#}OfȤ482}/nQم)%@\n0 |e^կ0Q6F'\\wR+ge5uw6fao;qrs;2loq,O~wmbWHQ}PD;;dɭXETH³"=y?E"7Y BЬH:RTmԬϹEPE]p:^oٯYVxvZzU:pц284ʋ9})B@^1 +|blrfgbqxHOC]Ҋ'Bj+ouLz~g@lg`nEjf[LY.m@4aI(c!c@ Ηi AK@FP$CG%ve*5#4e HFgFB Gm켹MSYD)R(pgb7,r[nxo@J4*G =LGGk״gVՠfheYk%z ,}6h'3:C՗}TN:2&E`C!塝{PM"pqLdvd/uu!V͝ڲlX&*&ö]1@_dQ{ H!1ۑ)y!mͧtbUi'fp_m8pZ;[4*1V5Z/g/9 U `6q|r|;ŸXU+05Tx@q 7ސwm 2`j o,wsgD7K`'h^aԻ7/rMÂk1= +w/ A: w+,Cxz^LyR @/~泔BU4VᣂMkY3DhN,1鷽&$la 5-<z\@wGkؘ}+ /b@xU]H294Ůltk5c he&OZ  9FڤSSFl,m.f#[K4S ٝHFhmSYڬ|<5;ʀD9c>| t`|IY,YTɒRjhY`p%T( *a3^mߠy U׌ .26jI82>q5F`S-X:t./+ ?29ghBli|Iy`Y"  M>c. >_rt}J&H) ᗁkƘ/˜T&oG±.L2ҥx,NT`*nÐ6,.u 5? b!DN7{hUw9sv>#zN˅qtg2X9D֒߂ |Xzo"% !vYTm 40(oId =g#!1tWfƭV3@@(tjĊdSɍlr!T/ NǴ~`VzopB-,g0$obڱr mg*0  A&zcP_ÿcz|ï,~軠%FϢ 8\n'h@@*B<՛;+Bkzpc|>it= nP ` 燨Lɷ(YhEJ$l"3ݿt]B57!(8v@mƌ9VWHhKmDީ@ږxf'VbV`{T4Ge]jF1sU'AXtW%>"M٤Y a<*1oc8[\'+ip//h`݇zyī(i5:~Z$NeUnb\6^ M]O!Cjy0Ĺ|C:@ME潬@$~0s-?; Pj (|evC]5QGr̬"e@(*V^ҵw8n+8矺r͝?k{'%G"t$RPL]q%2HRQF+njג)&ڻ^ e_ߛk0s>5Mx=أ_M.ԏDb.K.Ĭ\^r Re,޽⡟ h@TFhq8iJQ-#'h1C <-xUmjQخ^Иq~Ґs#ӽ} ;J(H\a|xSRcq.Yo!tB9!# e 0 #qR{"nJ NOXe!#X'jľEIp I\m QXJ*岡fP)PevU E}nǽPhQ$9ŤA^28ʪBd0KlU)p5SA8/8 ~=h!/!v~G1|ģ9cZWڬB9mUO5 T~AҮnK^nwxeu~= bG'Y{)Cy,CdٙQ$ 8kαyn#GtVLP9pbsdvԪ:mAь@*dV|GhLqC{}/ŚQHБe$!"Dxb Q6jU)F4 *VF .{C©>{=F{3to#֫Unk sﴉ@f խ8DIw/6[]2MDiH9j`q}$I8SNIz` ľWxB`l)NJr+8+RnP}ݷzJph5hCZ3r]ۿ7aB$:Lfq$$6'ǂ$9@̤L+-/"\fZA` 8 yAy4pUq!5VFn~$=S,o$ViN"&Lǡ,&Nd^&odyl/>| #+@F$Ɗ^o(z }c#SqIL(B;źPɁԀ7>P`9^2M0$DLs,98ޗ> +\}2@$|Z.5ԣۚukjaPUoxo@2iTKMF7tu4@Dr ::NH469dҭq/Xh@ a%BZW5U$PwkEapb%]ٺXSY]iR;VuQTVeБ<ҦJm? βBb6 -I ĉu'Ӆ|_:&'4Hv(ɣ(S閥/SB}&MZO-ɥ[hv[72,s@u^kNqKg%~$$w;B4 FuF#/ o[Un]vZm}MԮzyAw݇sT_}n%1Ruұ3\ IopaOID){4gJC$p>jL<<1.3gO'Ll A1)C՝cu{]^wdVjSgvrn,ow2FdeFr"Wj&LYGC!hБ(@(R {;( - ~ c !lChv\/Dg _wC$А-ʫQ[u=8_A6lr޼A`|k効4A YnulY`*NCi~c|Q*A2dX짞Kj,|d󺌮|ɕKMfc J~:paTmyׂMZ\Ltz7:s YBchrPg@DV+Q5^(.%DjTrWkc\JΓ![&_%fXzیk훣5tGûw"/ QMT39GLzOԯ=Sv2 {;2 FqxLD=@ 5Z:Wnܻ[}VE$"4d,AĽƭ( 0=oCIx;]ΰ'dο6A:isMvΫתs gGİvz&Ks*&>wvXD! v)vs0RyiuUS Z 4 c41@$qן _x :'$`'qj}pkr<Ӻ[e @ DoZRyi<;/ xkK[HK]*"u  @s4&F493ҖJX3BZ*B*N{9Fp6{mv}:6E.8q!_&f\>zbs+5[^kXJc(w$?;櫐WA:!A BQ Ã0Z c%}iiNwk虘ےSIN~2 p1;D@(p:n%+^L$@=#ij #0vgO=FLQJꜚ<)X|@N"P!F290x5rfDZxp=#YWr$u8#>S3 T0%ݰ<Jge8 p/8sl| CI%T^;Js -)yMևBb,O+H{rM1X7$WY)D~\ZŃrg+$cNwց/J=|c/Lj)b ZO)X8ae1p! ;DApGvǖ?!(dۘ@]F$V@ 9 bo\6V`L>]gO̼y=C G;YJ#WmWd/7YS'D=VbwUIWw!n{غ7_s4mf^^y4)pl / h.!p^L%SS +_lIzT5?|4򲉬{۾͝Dg~.VC +/Lj G!f^*c1 F:byw[;g8 gVVAe3#Bſ0Zu^Fzi%;e#*dž^{ĬMϙ 4BP yHkB6x%,/9sl~8z/?.cfFdkΛ΄1ٵ,V2,~\Gż|n4 }@IDctŦP ŵ/a{^xVVړw.$Mr`>;?7{{L`_rYj$Z=@f3ƨ;I 0X;+bFDITl#3KCQ@׽ȩEn0PAju7aw`vZa&;;*W~>u12KPxD+!5KEK"_F6wI<[A @110MDZ7:x~_{a\<f:1 y"ًЖ@QwE >KX]|Mo~6/Xnh;5vg!B `WW5WaQJoGNd}VO1 Gj%l,~9ҪzMr`Bhm-&mX],-66Vj[?8~85,ݔP "[5IF2&𘢷cBЕ.#v>~dx fguP$?}sd:!~[k`љ>Krn8W|,Qf#]L<K=q+Rdq*LlH q:h @^ vߚUzݷ$B4t @Z `ZJ@zpr O>0xC3ŷW`Omf `GdzkGy( r9yf]HRB?Ǟs21coi y[AM>`B4h,g' H ĝ/&;>kX"E /dȍe(gp1n_n5 z@3<bM*b%,oM,zDe| 9Y8,`vO8$` F9+Ш^Bs`mͷfCz&'v]~evry=P彫* Ӥhd'PТ&tՖ'I4' >~}GD*C-B@4B}ftu8v:ݴc#G&ãrNbǦ@3j}g4n|#tPmRxUt@GIl"nTĜdsWq^c}x,,QC&`E>O-'6T dg~)]60Uy)vZPz;4ؿ''Y;uWf- ɸNNf4{&VxzFLEY/B 5%nBjBɟX|^myg~a_ܜ]-cP=]XPu^'LԴZsɨܨ?LJS @5q4z[.0K}7L`Y:/UJQ7ujP.,1l]KIީ;=⺼1ؔ <n ۝kZ"WXG9a 1:%te6~bΞWBOLiS hˆ dsWpUE|VߦzyB5Rn,jo?7F~( ⪻LPDgBf҄R0dDZ&Ӻo]t5sh E[W쭂.!AYMomxVڻOmvY><[/KYNC7g"K:'HNAC5y]YGblksj5P/He-9LJ JFDs !%F\HA"VrR3auo.|S?XK/^y PW/ yờ՚qGX"BAT| *i(P62zIShElrôo=se=?ۜ hsPzdfHm}D)7_ `l|kʏruq<G'EDpXC,ƈtYg* $q}-Œ&y=y_rB8Wk͌s"[4>i&~aE2^9N *w9WePТA)!!j$BPr7(Ƿ'5 A4 q*Hn+fNƬSx'$C?ؙί8Qx!yL oB^k8u1DPB|1ݕ- "eS=nԸ54Z8}Y26ұLDCPEm%ʂ m5-!OJ(95bx LS@}ͫ3bDAaASJ`N l"j40wjuȧ}{w(\>|T}ň lP*E`@cPI%qr\%88&\p5cgc=hE;vˀ;~ިP-/`՝p1=9[8<{HF&f5.Ro]WDg-FHO>_lf9Щ~=? Il]Vbة<.{' Eh܉Y/7^q뿊ߊ(2(o5L2H6CE@ރ (Y%F\°Q=@ Y颧'Py%gЌ𮔌E>]t%]U{=nKYD\TRGσӟVKLЌe\\.YOWkaCԉ1^PQ /.hRL :YJ|u _(&@Ic!R]U(qsty}XdqQ22?WqsUdC=y4n^C\d/^+\?,3[O4h3E*._+b+ ZObNF#p#k& Qz@'-q8*ƞ*&fi-TBu ?'>w|Mvv`^]@(Z00& [אOHeX@(-UrZ E{B]UЃ Au@2Y,ϱ1-vFI$F AO.3C`l)rF+wԗE 'n qp,o%-T.ONrq ty=KkCo._m0N!svX-2\"{ɦ^gJ!lCKQ7h 1N噠lUIrEgrzƥ  !z*HeA2.BŜwdbj=)9ް8Uպ'kl_xɪ/CҷQUbb|o5٫͕/TΦD[AX#%W?)T :Q9^ Nt[Uat1<z Y2FuY2{om=W0@JoߓMEt՝@ȗ 'Bz Im)ڼza@&)$EtHtXd~JUnBhqViM x1?LƵPT }rۑt罥"6iK"Zaݱ%x 6KwQ4*3j`3+8bɿ -( &c(? pk@(f( c(ގڀ*,*>lYZg9'`تz'C: l.g~c7BwK-5vޝR)D {*b,q7x˥Ȑ;|''CimxpfˢG^ߤ@1'u"_'Vf^N2zSDXq -RO+Ժ`-Dm2tP*? B~J=~r!V7|/d*~يf,#U= 79` 8K40 НmTXq-ݰU#_d/u0# w..5xպ T;{K<Hzâ\R#}b'FJ0k0 d(ִQՍ n klu3OVD:K pд<5˂(S戾-bD8?B<& ^2*^-]P hDM_;>߼T/ ,=z0 7M/}x6Zkoyn]>\-6[_;vחY-6YTEVa8"qQ ij3Orj_j b_b+#k uuV迲/^QKF@(O൧5 }u zeȃ[]i. Ӏ]Zb!ғbk8~ {k}!r&OoOL ,%w2T- L͈BD#ȡ2ھ(;HB}&c~Wuooulu5$#s98l{w>[8zN|ŬmĖ-SD3"ōazxQt̤z7d8W4&#AL(కjk c0M{_FhBi3f$sI_DQnQYT)}*!vHhTZU+4d$p❋s-QiJBO_ ԓ=YUjy 8P;CS dipt]J yLcwNaq}|E{B!-uװn`&l;VM}8]aNre]n")MjigMMOcS O m*>Ku϶irdP:6je3r[rC+kp'߆_0J݌CDn3Ę;wb?= lA/7u;to($L4b~_K%HpgB"*H5Jܼz^t CjKk|F!`:'aA`.cb{NJH<'lv4whw椴)UmEFcde:LpRGo҈6HENV*|ċSfR㟄 "a;Vi @x⟛GN` `@eޱjԔYu}3%.s )膐 4nexbRaJ1urRST"r+_Z9D=h"812*\$l >H~D+>,&K|I=VD: J]ZwYs$wq+tE t3FSo_ [N26r@>3 E@':v6M9.1*A +aح#TmJl˵*H]`rj9 K*J: TɛX 8҃O`ƌj-mx @")E|L a89Y\iR_LyM͏|+LF¡8hR/|Gv}۲aK _?;5ӻþ@ S1)̙x{YZY%.x|P7FbB~!ڈ!2F~6 UQ/d½ 濮x0zU *))fmF2KbHFm{N%Q@r|nvT3[g~W_/5ϨpprTPZz4Ee7*">Ѓ͆dzWۭ_Y O{gb!4pfKq7:hҟٕ=h%4l'GT`F D#~og]6{<0=Z\ tv |A2-߸ v Ľw|FuMt<ď AHO `|BA PnBifŜ#-UiTr G\۽le{$cx]p#Azgp3^OsoXEOhrƷ]xh1RBPB9ܕ0>܃GsrV/+ 61bp4lO*aHs kt֎v r<bh1z3/&F)IX?*=}ݜDV~ҥ eGYK1(hjVN{05!k?Yf֮a7%q~".4G;VmJ ^l8V0q 4ִ$rBQv !&'SL])%3d6K`-8v@rv4'En GZ]vQt/55RN Fo~Ty7+;rraۛ T(δ7Ve3ufJG̈vn7 @ Tb9u xzHK.xIa} ?֘sRi:RC7~6pDrI9G: -+IvK䣶M8hq}~lbUJ1:wx}JaT{@>-QEth2Wb+_;}0;/X#8%j0e{TFi H w"K>KYs/( O;qpK_D6G67ccM%܁ oӍ<&aҏqec>hI}P#\=FO&ca|NUOɨEŭz83Sa-U܊+!vo8~on0F^ZƲ-d*Ԛ;M0 dʖUxU$Y*㥐;2B@ %"jQSJM.&H#RfƶrEkjKsibOӇwSNX^Wn=|cZI< c~پU{xB8rA ۝fdwpZ45?6+i,EԆQKGð1*B1.‹IJ꾍z)0uJXkqO>/Тv)Vn1<=H8Hfs+w@fۻPczdq8le!EA5\yOԖz+Y;4?"B70MU_C1L_;qUru o6:Ano],}+vAg}‘nX PQ.Aso /?țؒ5c]hN Jjl イ,5ѡ(%MD.eIW8_~;]KA^幎OݷJ<Ԓڰ!Lū (uGHz, c3aF3ySqnE[&j=tDӳʤ -̗0U% )U;4XaotΌVT1R{>g@黀+qϬnO@Ʊjah{!?T6ѥG }2R|ԡ⊔Ί30z+wVmK; 2@ӫOܕj.Vvc! Lva!.=zO2@ 1J9I2&1A+%)ug`/=ԁ;ZP?%.'KO*w%5[ނtR tǩ**ӈ @>⍰l*t;d@$QGtG6I h4@ )4j(:5i4NMoۄj7^wsXFCrp詇zTrգhf[7r9zwCOC@mT`:jo}J0ԨT*RIG^PQɗfU^̽~ O#bf @X+_n'nR= "~!7,@na3m\<n wtu#o:-;_q^cp,l`zқ|WY mbִAϕ]y_uh`?#Ci$`@t8Z3%LoM38F>ШGeVa;T˾+DQSYz}}x|ڊ^Cltc#Uj,׬ؔgA,0k( Hm)3ONO$XgSb:FYQeX4>rA@'UPӂ0V76[Qg:~_uYQe[Lkn.ug{rA.)=r]6圿T8}]Kn CƌĘfT.:y7P]#mN̙.cS\PCU9ɟ~؈`y7t[ʓ.5O$ms嚇vRw3Wv\Y5/70elS͟Lsd^;{r/6hӞS+ 6Oڣ :"3> X'5:fc؝ ĦĠa5سŧ%;駣O(QfGi;;RVo=޺2{f`})0b]FZsCNY;M :8i42FDFmDngA"LEHDE |8#_!0dbH710Bp׍ݱrk6C]1ű1os],^cgGIq䫯TRĦTt}h},!d8*Xlp8ʥQ٘D9h"LkǮ_ZbRLnsmƃ]C`qЇ6tJ: +J> 9## I?&xW^GN-x\wdpQF3'4p U5J:;hqGU3~e/o2ɐH6l:?ά\[q2AHRDFN2 ]$YbZN9!c؉lB*sO6?$]4Pis$5A0܂˪6fu/kk;rAu^uڨK.*4/̛#?T:uF¨Ty@AF +\|Pm(#rmOxr6WϜv>ڦ8`7nN#W@^[VR5k׮g)`K[笜B3nL= >$T#?TPrPU(4~ .L.$|Æ`5ӵA#Km. eX?ŰU&whZ*؍o=˰W-t.ټw "55I0룈'<{OvQzf#8`P~#%~PQ@@z1Zס=E6zap)imqvՊaL85l9mrͱrt|Au~q"o澿_We9!'rI@b$!By̍X1Ω~4OI6@ n֖,{n?[)[^!XPZ}{g-X9cW3vA>,VmC&MUɢ>hy! JZ\(rOrY^%tz68i24 5KuݱX5O~tty8V_*:܏Wږv >xi~lYQ]=֕]0$͚ ⥋*h\g$fZͳ}@5۔wOZ6IWmM]uBs4Hwy[W5f'69/>o3اn A(%3#:+"XPsVxB*Wt_#;ywF_.~ ,=+HͶNV} q7]-=BdsK/J-Opk[HV#7=隸Ubq(IT1m?h@c45k"c+x@7 Rpƚi@)j?0x$h CrI~ Ge^]uH?K%ڄQ¼k^Vޖ;Ԑ~H%eދ)+@4It~\3u4$B ?A#V ́X<bHhc?MT}^eT<4?LU(vၟ n,]əј,WLqpz*4ި{QiCPIF24!#9) ydh٨gw2o8EhFϨMx p픎Hk)KF&j N8}¬J9C6GGײַT.f}]Qʎ% 0~B{i^2C߻{=4~[DNnĭ6zqgJF u]搻@AۏadpTQkpQ$X]z/"=GKxVBm W^S$HeThC  A<.?  E]Ex8ggnf@{`fKsn xhU6L{ݻ]wLUv"q**g!?ﻻ RQfwET杈"qF"fI}wEHpvs ]HD *{7޻P(QSݻw "I$D$RD$R38#Q3jlCtmݙ&B8̪L(3g͜5sY̩v7 {7YxWY 3H$fWmUVI;  239q<$ f4Umf9#Q"w (tB<3+3XxmDD rfHf$B$y! `!1j=!lDqF"U$ xOY+wHDRHHw\e=b⮺¬Tuyw*H<$"Fdo$~w1T;nС=pfHD$V)h3v~g;4;e3A"$"EU;pEP.K)T@"$23C2/wxDHBwSPi8U'"EH>;c3i BL"KY&E w e:L3wU;3LE}V#$U$Bs1i2}"4thNf`fJ &pW! @CV2/BR!3DexH Fb3(] ݿ;AЩkA,5,*a3DI4! VeH !eS@ kL%~D(b[e/[P2.ۿڡs[3Ĕܝ&Ȅٜ kbmP@Lv1MTqCCMunC|_6M \ d$Q \!C;$*sD@$p!Cmܡwt/{C8+DX(dATuu(d2]l;|MuNyx% ZUPVIt -%fwK{V]Է[ i# b e$7:=; _v!WbzfؕU=?wn'HD"`hzJ  ΃Z@"sИCݓHX#+gRB'o C >w^r_v!^)XC `K“lֳP HL)jA͐d~zNAͿgꊝ!eQҕVaBJфD2s}̀^e3`͡!5Չ@hϒtސD"ǚa S]]>5QԡSfrwMP5R%p-H!AT;Zc-IO9۟r{2%qRn\`~G\ ~ʼfzcK5fpyjc<0=' ĚJB" $R"0CoQB.䅜 @ ΰMu=^2_X~/`kR@Ƅ~e^ S&lFǿ١H yV~wj+W"IHD^q's;m1eɥ/ex8^*" `g ;7x9Lq٦/dynjc<1xqK6)ʼn\`M8z\!Ds;U}q BKS39hE_XTYDyy4wmމ70523K8V/{wƸC ٌFpMP;@[;q5B"<=r=KuwΟr&Ƌj D%#shC^odvY=";`5jϺ6cWwboW2(Uv.{[_v΃x8@0rpe4aӟD`o̿]MF"AͰuWe~#H$P 6|4y!Wu XOy_$4u _vW{S&(OjT84 )b:dM ?J)/" տr{gqrw`7$ $s%x M0dOD/+P_mB.jzI2_vUϿ&Z0͡2ol¢* Zs'n1й{>q K/Uo4( (b Ɖ&.{;G1fW˾tD*[8.~y&>V ٳ7xQngBDg yCdnnpWOVw!7 V|&Y_zM{c\`#ǖC"Pq zX%CBۼTc-+ ܽA17y"EV5E"`_6ߑDmKVWe>9T]踐Me3EsWb >LXc?-U>ƋC\ӭhbB"`wV N\0}nw-FB I ~v.{ӥ_D7 (-YЄvO $C'[qYW=:]v^15n4NKWd AԾE>!$0ΒX\ĭLgA@Aɾ)D^] f)N?eo$vu}ӥWn8?n(_>9ڲlFp,B^'8% [կ(}\3lع'_I",ܮ(Viq0RM?7]~y1 *R4]6>ew`\rWMO[~|й{" Dmp @cMGCڷk{q*էDm,`kbvI8s6-2_vsAqw&kh VbovLÔ1wߡv;t^zEsb (>)hpfnTTf}tQ˞wY~Z4!,ƣY|A< , 8 K8L}ʸ;^9^p< tD&Ƹ4.I^ M7~gS=>nh)PXlF0wo@"T]|6wg~Cg jܝYp^ b -{|'&DHL}kG?eA" 8WnX`+J^q%Le~IQT]hBg$ ˆqwk)(hf~Va⒅DlKuG"cȚfKue>֠s\+\*Ě苓U֛~.AYU} .4u8;@1 =WL%a3QRmw*\{^D`pᆤfh3d|{!O%ςKr5 2MX`s[ΰ!©V8@(`1mwЃl52xvXB"@0^*NxYo,>7xcɰ۝mfhoQm~JwJ*ՈkOfeCH\)ysv(`*> "HnFf&s[w_,WՏf3ߡ~^z~ X##I&(JƴD* 'K2/hb ^{p ݵ „H&VB"A"2lU[';v&~ mO)'Y fV!M w%qQ7M*>]}ʫkq2b3 {$L~1~U va'TO٢ qYKznO* WrVUh_4TŐ&V?@(֛) Z_zĚhx i"^)UC ө>@"R}T]ǿdݐDJ#A"،ӆhh*p"b3[CeXg@,jMe_h?^+ ; ~=Y\5if2G]¢(R:Lסmܽxb ըU`Q2GW'?OAY ;Xco]PC_h$JfWXnHp1m"*Y 4an2]v{0fH(NQ~f$`U geKGIŰc0=~Vzx%ApD\Nq0!UgY_]GlgI|vuB/Lqοqjx: F!y_9OHO?|\șCFlr|>w|g g\.)9B,IAJ%K+6т^"dp:ZE7|֛ηr[޹}!kS+9OHdoP~)<\x%E^pjBϰM|k#MhPxaQYo)h©VN"hBo}q8tAFbnon @Yd%_tSo0@* g K5 o5h2Ʃeo5ƑNѹh"/Y"T2pRpEA1pP_]c_B+͔y=(jMu)(1^TXg5JH$h$P;i愰-[{٥z~n#, %3| K d!D(2z)WR& ̌4pU#PLM6B *> .K" /Q*,/r 7 tHs ʏGX#wX_h[O?+jk!ϡ?ŸlD_b 0ޜ6E5*ȏE6+w~Q|@rT6VGs,?:=Uv[ {pSxxdv4xuXJ9md0[$bm~#evVr D8OB"yb`bFʢv;-ޱID3Pznm݃τhf0(%ּ8 'w#pa9~Wni~6}o`B?8O֛c,R~`$bY N0ێ-i bD@O]a:f 0^D"7(Ig1#i$fbx`6/B~};,Γf#_Yo牒 Gsz^rS=Sw?Ls*$*=bIr2Z\?y{2O|(*@1>1M5D&GoT{%2g A0oV7 ZWZM>z8a3o0h$ S%Q_!k"P曁V!F)aBK`D`Bx%Oy-N:(:~K$C ZED09N9^JR*eQHcȬ6+=VQT?OwpYkvHH_o{f$f R`QT#^6c||K5~.=[ܽ[W/фhm޶f4JFߑԾx яR}PZD입aQlGOx&(E$"_0M_n0ۄFu[UשkO*wHa @[ǃ Y tB)H 1v r4ڱVHf{bQ8(7 5#):2Ay% ‚#f rxq;Oy$„ >Q 7%'IEHn30BadroEqً=Ro ~Y}f4Qo9XhvַB]v2,ܽT{ʟERQ e`[Zrc,/L''c˥z'bh2| 7aȞ{dZr-Nft/,)jwYD 8fP4}qLBʩFN ϓz3-.՗rkxPȫ7  s`OSR5h(fB[KOؒag"@"<9 ap @DɈ&Hx%$b[4 Z|Ren6N, ҟ@"'!?X Xp{o <;oP lOyS}N X4 L=MH"F [a:+|̭+wS~*pw#  96!t(_*;HH[o~~=S%-jgH z`(r ;  Nl}ͭ~P5 L0}GCpq40! ֩HF, Z=8+kܠ֒[򚮩(^ȏ5ùHijHp`B|< d]gW6H΀oSn y*hm[hCI<B[V6O`3HfG^y-Okwq9d]M/|E#a3pH9':͠ @ ~VΡP s=.#΁DS y)L0Շk`B} ۰/HOAmn(VX,P xw4 cOm#Jg*z4pEb @*8 )A]]˿u ;9tpT# k LhUT^`BtYJUȌQN~snl~d\h` @P4d*64D(b+Æbة?"qe{ Y Ӭo*Ѡdq]*"l *1n^H' (f LS2S75^UHpCZlaB0!@"֠eCodຆ&X,i_v6)7^W*W TĄX`d4C0@w>`d͠ijЍUDbgBDGyYrԮ6ħgeY" 0|ȱPHė*rRʏ;+HR<ca G|XALA[UF(Y8:,8e90)aKB~T"㩾~-dMyAoq$(v.H2jv ;귻^l%&U7`|  3)g(:$ƒ;C_!94Q,g.U :Y'z3dO> yu.ЋDM4`¶w2Ό-z~!>`!\W90ʰpHcc3SPpУsvOuhP]1OaZ\pG^劒&8F $lF TV8t2zQ[6j(&[H5h @!QuUP>Z\5ݫ/L=]\ag)f}]4!hl&d) 2ҎTds!yʩk@T!qTG@!k-N]ZEMP H$$ 0m'Tn/D]|=Oq7!x5.W)h/ZpTT:%i&~~ٗjgUH`„ &1 ПTMpFbYWn 9L]v<(9 eX'jD:^јPTZe [4jE][C|Jc @o ޣq'MT#(A†ToعAu_i.۸1v]aZJU0HWa 2|"bT*,yHvt|.;QKKIW ~ꚜqA5J)Nx! 2L޴YFnn-zmy6c/IR4c ]( A"X  7G^GoDoы^u3ab( = ũy4$ݫ㲦zp(D2O+3Z\]q9΁\+ i⳨7\v;Kg7kV~'KbYT#1;(+ o.t,j,iBv 1YjnzCpAɀbc+"?z#0c#ܛ }, :o C{z8g!सGj;B"ՈiW 'scTAmx%Q{bW࢒!h˼GFE7$$Kcش2b;^v)F^Z(F´)iF8f4As[&;GC53 BpAp<@b G_ߢ- 8@RAuCS%> Db 8t4?hCٿEC5LwE|',Elpjb !QA~~3@- C<҃ϰ <<.WG"JE .sf@MԾzvT_klrWJM{,ÇY$rC*WLse;¶Zb瘽ga˞i/\Ԯ7`Q&w FH4[WxTS|K.{w;`Q@@ڕ ;ߑh2|:P[gԇb6?غ{\i|GCď ,YY`+LֈbDPf9Pm's.;?*je~abRFH O - ;{6B|%sEnImGh§˚eV/̟A{˰`ŷ}]!W|GbG8A@^O"\-y3H0=xbfTc_ؐ/zw=- zw@DЃ-e2?WuTN+dOH @ܐ"Z *c @nPYB> `pcp9@*?/qX[0@ ߫"@"(^B>ۜ4+dM'/dP ߑzToqy"`dJ@55E{~Sh>ܣ +waB~@^9Z+Ius;sD#)(&$.Z~o01AE{cw& =*E.ܠN{;X2o3H:Tf${˝V=կ(J5*YÚdYod~t<C֗=DxnPo$|`&bMCwg3Hbi*sCA;N]&T2H7//|Dm̏ ?@Z&Ԗ0̀==.+? *fpn9j~ϓ͸ n,h0vhVFr @P/3*=%rb[ &4.WTX3#H;L6pMdP;(1߇(&_ ⋦F>Y5]?> @TlwO*41{gJ]O>K lҖ豈 }\^z>/'seP  @|95[(C" ޒ;-ٌs_ ;4 y"`~;:GHgM!MF]/'X cM;/7C l{%(8EX}GQ2Z<$ W0 1sDٗ y7ܾ6>1 E=K\Wv/{vq9_p1^d}@27|f0չ0}ou=oJ*UMq6KSfsz0IE \ȿG~Lع2fpѱCOc]ɠET. 9>Y~E9mر@UK7͘z/ۢ7 kڻTC"Tw6X_G)(ɰ9l=dyQ;LMHؐ2_Qt)aBP ^w8Y ia:ʼ+A]ȫĿ8s;'}Hw A~h Amnd+<4@g/N##l5}0-ޱI6 Q<3!$d]OZ30hB|qZE6f,1K-(FD6aPcwMZL FVDAp-L#*7 uwKnE\Q>@ԪZrT YP2mgf\+6tt.)S}KD*\vSPy*SX1ky8pkWb=X^ BN"\TwI_i΄ J i-j *٪HdE&pU&+Hო7<'Zr*$X]q7Y>+/D`Q.;x5ex ?oy{4Ƹo&a;vhB~H{CG@7#ѹ]Os{/Mx%/nߢ t<^)_ieD||E@X6fHD DfP#}!7 M.ߡݿgY6"`HwHpS>^ Esk~٨+8.%Hd>' y᲻S}LA:%Ä(zݷ(,7Cijagg$I}'A%k %C@w߃ & /nЯ7:*T2_ț:Ib "G"!um VTt;*3}ٿG/=O,'t4b Ld}25%T^zp RD\`DN [`BτpRvNw»MͭFۛ.-la;T(?[I ]6ʌltwټ}tIs1lO;s{~x%Zz07@l J*L6)[Ƹ؂('̧.!>vkHь &}IuZr-D@&&xc5ƿ.IU@ maw?w(i՜+F7p7PZzo I1A"\ ؂bH+iKzp<Qu2ONeé*Dm~vb b`3@~<Q2GqovwpWKP.{JuA;2)Ƌ<$ q Op]0b[8U/JD`.3Ǣp[ i$v ~J>Fj쾐ln{pVJ5|dV0 &MX7ݹN쉀 )aBϢ.e|%ٷU91vؙm(RUHO`_ wY[-0*u8B2_92ʯ48 Va\^9.@O:vFYU %EJpW]C~WEOP4qh%qNNx!^V"4-MMgp zsci/ ÚyA.:..G PJ^7eN],܊ڱF6zC6St4 qt5\vٳdvA-?Tο2z;hC rN"|bOSRl: ^|uӍ;Wlٌo} ߡdͅ.07Ý$%Hh$Uh8rhPLD2,N9 y=.C"kGn<@XC׃PݿcAƸle]u3bĚ͠Bnnm eQ%+U#< ل'! ِucC[l}}aJ.=hJofB0!4CgKBz'ǃq6Vȃ(TJ6A"7pw;e_`"ס0tWH Ep 88bơU) 1ŪM4mjU.5puM.p Y|^v=}c;(W;>o N)Hqo&H"LAY/GǕmԋCr3 .<^)_A#H=2 h"#0c(MR5QN4l} H`Q_=W(Dx`38f$"^({0kw=a u xwhS(N_GS _\s˾rvjKpXK+A~b LTf .64% )hhcΓ96'(&ݟh¢`Bd0IU'))sa@LpUV?C)uu xr<;҄jd4Г-6ʼnȿk\?:D9}p~'_&nw~34&+bKE}2 1=>S] wQm}yJ$bYQ? $B,T_ +LǞϿw3z бCѦqy. Ō&+fA.K#¿[Rm?Dd4YH`=a!Q&Q@9u}P'5@M|% /yy~gp -pYiX6Dm\tzG\.:΀D`/ऌ&'Bt1eh|VZ YϢf ʴMf`} S)nhvn VA#wCM&KJV"BB S{wR uhiő^"@4 JFqzC5"77ejQփWTe9 =MȋufΓzCX~8ũ z~dփ%dι{ S dk!oڸ E8E0aQ]ߡsEsE;rϡq [>> '?;,ZbQ8OoPoX/c30!78<9OGqǿ S~0]2z@BfB X~2̇qʢ*& ij&ZuKOw%>:.Yȣk$]=/}f|t5^t ӡ|d1ࣘHb3>y13!' D5Yo%ܖ jh\xnNX^mӆ@oQ9L M$RQ$i(g!}vN^LjH-=e!7$Br6~#7^ps6 1P!ߢ+, 9> _w7 H_. 3^*"N4e6uPzr s$"Yv~Bf` , ZԨxc)N ~-A z,@U RN*Hn`Xb6~JXIe3kǖYoθ| k *drhBR x2ܴkLPqRlǖip,ut„(Mi"ťgI]/5XHLe)N~T_Rg}$926%B:“fsa'wES76MۯUv /L^4^O!dTiS>iVnrѱfHq]7bb ]W27P ;ż"NZ+;# [ew WzЫF:7xSj)˰sZLHZ]`v,bڤU Mh|A|(\ owݷ*tl8Pb39%Sڤ IlH$LH6sDƸ1mА5'h/Q76Ud3ыc3C{ِzbCݻK5G#/f9H0A)?EqZ6@L<V ;Wʼ)6)76CѳiBѱeWȉ>Ժ1,x A fhmKڌDHVAS%)[H(i{wC"t9&} @HTd~S \G1ۏM;#/V2K V~N5 ǫih +QXڛ>- Cr\.ZoWhA -E)խR}!_``}ݩv^XGБm/Mw($-_Q$KwX^/JE3lS֡ bqO"P7fBfgF uPУ费C~H@|&9TБ7ru? Vp! "*\"X.[]/vfv^^!w!?Og)N *(CGɤX-E9t^]c=x3`QV dw`B>ZƑ ex.T7ճZj TϒTsVqY;?*xq񚠘.[uq m.wփAV~YewPӄxdQ["6X*hcf#| .VDa@wn3 q+w!o~c2,y ^8A4AVc|+Wof8`o SvNN;zDbHFtef_С@BVfq{co=w_T`QWb Kc,H޷0jiA-+IߑDn ϒm#ao.~͐S+wu7<{=9l>\xv[9͠UAg;Ěj$/\' zKՎHqYJ ,[$+/ D0*<1,Jr:\ 6 k 1&KC5l@"3FI38@ JΟ >& s2lv'W-Y` #_kM,@8^%{q֡m/[[0-H޹XÎV!"X0ٕ"HD i=ZoPtjˡ5v0]pApkA@n 2e~y_w_xn6P0 n_W!iSS}'E#q*uwy1`n۱uϴF~g _f}:}޷{e}f$q J_9OeT3$:G L"*_8.[jn=lУ`d !3:G;tcgE?zTv"TNQ[] #/z3 * U0 9kc|O^crMpwӡ5ϐ`Q W9_SKlDϒܐo /R}U\`muur/B >sh*upĻ(3+\B W#hB<.stm@):GHSR48Hߕ V{Vf4>S߽Q5Бwb") ,]Hl3ۼk$'2OV 1nn Β kllVb OZr-{R-/9h[`Oys{徂kskQ:h Q09Opyn3AlF݇oB% @/˾(_?PS~8eCu,fp~b nBuTA/*F{C ssPȋ3sݾ <7ue'6ݴ *J&TlBGjG8[Vcne\Rm} @B̯Uы:Hma +=$ZB|*`ָ܃o&bjD5"TӬF65h}au:0+Yv4;9.Tn)@"h^I>we "E1dc*m>d,Sc,ΒazO > 'ultU6cȿݸ{Qo㑈D0 `g(hSWGB/ܤM)(Ρl"Wb$㥑(;Z!_s>ǿm@̿z)ƿMue^柑 F%G1Zs{2 @F/>Y.D(asu*k2?d-sް=䅦 YI2 ܎j1&wEmFHS cܡWx} pŰ y!#aB<姼T;N֎]!y%gno$ĩ<?F"L;Շq)(:vHoؙ%S-SzwX:-?LW'(jpу^`8^)+dY @vlx JmӄA!>#*qo$1]\j/[e @lA}Ěಇ% l>"zrWӕ uhs)rYL"X YKڕb(ՕTceqwnoo=8[GZ)Y$_ th\犚V&˞DPX\yʽh>zFvdxqe~FL8^pw, IВKS~bc<%Fl 6C+6.3w =5TG@0bژ9bB'jnd0% $ x霠 (ꍐf$ :~.-1vVcgpp(h$4?10{@qzqFY?ďF"M Ph0'T/{*<|(Kh$ uyqLi/Zv&q.h-U$ ~ JTh\h.+I2S>-&^H1(bg&EF"/zZ֒Lh,M `_X!N PԈm`n-ư-B"+ *Db`MD(}?(]zfnQJ!wY0{\HE*X4a3p`/$os5UpOh\&$/XCF@,gn`3zۄMT0tm`M)o$ ըVS}g9$Z`(Ƣho8Kud34Ƒb]6W*](w4\/[dE1uhShlO#pJϰ˾ ] Yo`?!)7uKU\8w?aT&~}G1^,:^04wA\G=8pW֓ܮ觜2_`x%{nhB?@$($Гx/$e,]Pߣa$ǹ}\Muع̇qx!wD?@) _I<^,`\.ϸod ^&`-y9OݡLAU rxaBC$ tAqW$q9:&LpwAw}߹{Njo>LG1LuqYtCyׁSy췊wCS e[oteo$K|h7$!/h;ۙ+!x]uFSL6*zok̡ȣ)XP]c/`\ 1VAЊx兩(V?FQޔA|[-jgw#P?(DnRd]S}, <)Dךѡբk$T=Գ#ը9OǰdU9CpA)Yx,fe}Sii$z\#\&19> iכIpbY ~$!@>1Kf0>:a"\'S҄e;^F㥣Ju܏P60k8TOf~n$HubhMtN,:KK|2xq<Ȓq9^`F]v?w@1 n>gzWf}Dfhq7LhJ&LgB&sȚ *+N5P :'Qh˶rD|,oi"!$B"@@Nfww`B @SP0ׁDשUzMm^)5HqxrWf$ ~g`qypTU4<1 cd+7vIc γd?ʥc!/^DXG'" #ђ!k6K&M ?}pT4| Ճ=~~[_i~a?ZͰV!/f T&p5]=}=oQ{?mmzӵrD+!/)OF,#/0go0+ђG]lYnڻ~UN8O]㗝Dh3lEyUT*L@z'`"b;6J sS6_}ו ~xCM ; =e~RՒa>h)cI^\w *`e~S}4)AH@> rdFb3xE}ݟAֵn Xad.W lςʷ{Fq)$y%m;pٕ;q)-c3u]o@c:[ԸuksTaccCyg+ۮ :G"p9TJMo:h۽~g駜 R.!  Hʡz[e[N5Dm^փfc\K~ Ni$xؓ;8eN͠7s]݃xQ:FSVׁ*h$$-Kbς9N"AVeϒ)ME/{vփi]& ȱhH"͊$`Q6wT2F"̟ram=7>m/8 ?jFb/TT؅|m ׁXLO'$#q+ ؛2hb4uܸrŚ"6!k;ՒSxp0$րD/ƫuF&DSr$%[u觼֒emb6J&_*zI+e yAvcc5=YZ*~nLV7|!Z%_DI(~NuzΡd;f`ׅiu9e3 扉D!iX#(h w[^j=u- ZE?je^Ԯ'M4^Q|ţ9Oi^ Bč\c6Ht腼ϡ\A}JVY`B"-#(,=re-7@(B9s谓yhyjJ|1vq >/;@U"(`s2mZtAioXxi3(:;*XwXfe^" VnP!oƋz)S>#;ŵ2<9^3QS]D'D;qyZtA"N(Bɠ>`+سvc^^_ mvIw y})QcUJ d޺O5j"M]PAܡ\PTٌCgXn-8IR9m]o~W @ovA|o~U!҃?O=Z8N7; 9wvjD5:)wY3`B {C 6dgwR}o0ƱMHw!<*qxI8O.ňDt(FӪ7K@j|h}#\Cw03?pl)uIc8O(⌽Gnw~O]2onMOu}*􆈀E݇⒖d+d_U h:t4>+j@g;) g=H0Ƒli4VDHOx~dӄ{3k?Տ3 ^]' UV~ZwyCKdpoY ([/D 9! ``B4 0OL]6v)i -   5'* 84B0C xbB8 |!aBn!|BFĤ1\H!bP aY.M @e% pȗ@6!_0 ` /G4A ȥJdr@BHؗf*_.GpdK'0)#ӉQ#lP6ǀ _@&Aـ/D 0 PA 9!pTY7!(` lJdD o"0B" aW =_"G"`$b$)F/4DEA8# Ŀ A _  Gl X0ȝ !B!g*^yb9I#AF 6B` H+d Ϟ 'hqN xy$dbJD DF8% A"_>b2GM ! \L#0ȝ !g*ycp|AM)J#8a<{|DH/Ȃ@ ! *#yH(o`"0$P0U > gBp$;!NC/D|LF,`rqB"B4Q1 '8',d+8!K!( *#y!ŀAFG ' @!2d&c}A62"nG"yB0$H'T/#<dt& "$]H O(>_ !B0Ɓ_@IB/_AIT 9@ _řXYeANAF 4DoC0Bʅ_x _ ! $8 21!iSH">qx|A509hCD~G2>W%D@\JP#BF '@)3žy$]@@"<i  !.$ @D'M@+H !@B $(@ B/T P D 2n "#DH#žRAʾ +qYDx # M D'T+HH"@B 4g@@ B/T PE T 2 .!#D3žAB& ~ibG" _$g@ !_@oB&|i &$G !!_@^0P6$ S+ @+HL!6'8Aȗ^qBؕg"^O!\Ld'3DH/,dD7D>H!B/ DĈDkr !# Dʆg"^auI *|A6 PHxƉ_a"~FW@ h  &|i& $G X /$8_$& d_#D$L8S! 0D 21@ 1"J!_ đVYAgh ~- Ҥ%?ai$]!+~ "B蹁@i~i"& `$` !y@ i_  $Gd4T04dF/AD|78&F7QпpB`@!Cb ?Dsf du3LD!0QCpH(f@*2p ~y(Cg2GDGQ]dp 81I##L0K G"Egɲ엍p$1  8DD6ɑ:#EK#  4T@(<bc f ! a ǡYgh]GBv 2I C *d+ $6ao:"шO AmaCAy"ع&?W1J_i(zE2&N!yK"HH(#`** qaVřZ~وa@:_b9F_,x p`m% Ol(+46XsJXPacBv qR$/ 8' Pc3B'z% Y p|i&f_4A ٓWh(m8 &Ǖ&" xDŽd+iȮ^A*|%hqNy;*kpO=8,qqVu#_A؛_ &ǗFl BD "~őWkvg*~\a" *L(r~< w#U;#q3u n27H3{JþY4A+H`B^kBD'`CA_y"5]NawB4H7;6&".i񤁈KNy%TyO9pس Ob9g]': v' "#W4U4o𥑪ɑ`i(Hl(/LD~6\ÿ8I`J)r~{t@#UK#r/_a 27Fw YG,QA+LV`B^gBDq'`KA_q3 &C>4Ru;Xw)5 TP0^`2~$LE'LD\3ݾ+y ';eHGx3TI%GˈF2f$OtieO)=R(+tv`CPg>%9_ύRj>5aHGc6;C2 WcpD:'`,/Ld Ek)^Gl)X/MdȈH6OיVt3H;>yCȹz*=3yzfJ x|G: ]+ <#/̯[@3lA_ah(+d8L6ZVkB '(|@ PfȘ< ,1#zg0_*g># ;!~ `d3_+W0!Lg`cNQJ('d8 PK.U(,Eacl@D"Bxi"#Α%2%w2_㕟t ÇPG.# ,qzdc: _Jg<"@3 }̇y( T<1J$o~΄HƏ#L U-A;_F()2 0ql&2ǔ U{=GjRIDŽ {8?xF*o3>)EZtM EkzFR<D`lH(DJ)"JQ3z 3gJHJ!*|Ba3So`+_14I1s$pN(qS)g͸fC 6L 뤇tPXpuo8|L)ȓwC=;)xzJߣ)5l~Lğ`tL)s~](,hVR !c89# A8'/Q ѷR~xTCt `5L`N ;Bia'BX9%6t<`c<DžOϕ\{T; h"s3~)yeZt[)e㹩T滎D`lHCZai"RNQc4Z 3 TJ"B). S_ lF@$_>bi!s%WN1GR)|]eLß`tL)s~](,CRi1_8#α dƉX~ǑTU18%*1bh@\DŽK|+b :)(W %lF+`^ivr1q$WL1gR)QHğ`J+sn ^"Z=1s1ˆ XY_Dn)b*Kΐq/ T J`b`/?"|L NٜR GJv)!;b_nߙTf"d-W*w6bpD)oE>cTZxW n ጧ0|*߱y&Q[B(~!*AH-S KdR.,{;7R+o3Rh+`h\Iu/ `D8)2Bum_>"^Q*wx T3\ C-z:c)EpBo}@ IڅoߙV|6Z-PXm"5bF)k>Nc_wU  n %Jg0|*3iY_~nיX+AƜNHܯBQ&B> !~ }gJt (u 8JP(<C92:f(lNQQs:#Ty_׍R0{i("+ VZ W)Q vk Rf(!^xM({%JI!/S Rɋg‚;`LC Tv갭[8$̚fj;]GJ V(,X[Ie-S_cB*ٳJ&x鵡P*ѷRz&nN*+Ne : 2oU7)"ll¶nٔT^(uIg8=/%U_R P&d0P*oAfNWB)D^{C`|F1,=T 0 `L p1*[SJN@w%V ` In;#Z׊FB9QF)4Ҭ`Tf=J!u;B?BP_~a!n*gRvǘB3RЯR)D;:G+)Vʆ(l I"k8$BoבTZ& aGl}kEZ.Y v3L|04/ 9OPPhP*nJJy `pt+B|_:T*}RDٹB%ʦ(h(g<%oוVvt`lU!.ܹERPs$V:Cp`'`sHS))f*l)Y%0a^/"\_> ,1;`M p",<PƃJ) D;T F'P0eح qq9 1N+`u#NE7P`c JɈP g2 vH/1N)?3L (dXPٹ`]I_@*@kV9W}NL*3vNǕP B uIU;;|eW%;꼟mb>}WJ5S!зJ"Bv9J (2g4FšOϑR tRA6n2Cːq/B{N-WB*;JZ! HhB !}{δ2肋_j5R TuCС_>~)iwjTzmL3<ʬL+8!c0"R82J"sϕT /!P+ ~3ʚ i /B! G)˜Wſ*Jf#RU HlF:Boᰠ:фR*uK F#!<"KFzN'gCcŽ|#)!e#(L.3: JT r\AtJ(#MUz?b[X @ 1Lx~. A_:#xO[h,\1xW:; ER#BAQ#h:)ÂR,*tF'Z! N4Kpb2H/_Pg,DOסVG,cbW~)pǡ\t O(8R ",u }E9|*}Z 4 L(8ѢPN4;L3M @0J. k*ङ@nLjo4e1V(,8C2a 1w)Yv%PFx.HB_\- `A@;r*C|1h@k|Eo׍Tq#Ȳ :c")"(Q_4 Ea# |#+s͏N. }1*#z3nP^uL(c\K:À }wRA%aV->kXߒPH=ύ~ti2_,nt.s6^+žveamS!=ZAOn9SN'Z#>}?$q#0"R-TIW] o.E`P,gv{7$|q%~GJAhq`;c댕ۈ~9Wp4k~džoׅRq*y(wmZok!)!Z iwh(M9uzN(ۣ\ D*OߕP ya }QS/,,mt:cܯB B`mr8QKїVEX NCd τxH/H5{7:lJ6%B X|}GB >!=]Fb%R( DB`r8g۹Ř }|L 0J.y1j#wAuz22B HUY_ǀT %NqբOU n ¾J^I>"f1u&UAbi(.EB@p5:J2P 6T_L-ܜO +Xy PPRm!-C /@$ g6U_ǀuQJ 2_EF= 3qA_8a;Aa*!ZA`WBsmRP!`O~JVeq?Y f'yTEn0P:Bl ~ÿ1J;f058da,X_ ~YN&B dL%PG> Y+Dİ/64UJf,ۣ*ՉLW /! `C-w;&t mpe&#F/ 6/'LHƟM[+AA>$C+V#>( 1~@F` EL`c|'xO !Z528S!@ݞT 0zl+snPO$Bn׍T)H7d;sEj2op V0<Ƴ3 Mu:tD(T vEZA wgJ]*ہ@2wBA`xző"Й)%w{NpLA`],:T8{@B+NnR79"!xyJA |=b^)w{TA,뼓 VL7V`K]I`Ō=B%[@X >?K (:Q -u%TÁ`  s:HJ+aKfh(@ p `1|z/e3 B87@3!,Q`@05CnT(ȳ#E3 X^"9`Pf=}7R%| ,(ṫTb0fh+Rl*8WM(X+Pr HĠ'5w0`Cġ agKt3TwRB$: _pPзLSyoǀLE(2v8d+BWt5 BA O@n#RA8W`[t*QeJTT1&Np':q ƀP0#f2V9f p-=$4ݟoV,"TB l~1~* ~;}+ң`H,3 KBJ+?iAK g0|o<+g" lJϕ5Bl *!FBq(Q s~(Uy J23J^鎂A __#HL :Nb:|)R0cf:yFK3}Uq)5pB+ }#J 3J!`A^CP;I ^#) /2o4BHyDI E/14h]cg'i_A'!WT3 ]+1<\g\A|8#Pz\WBAO b߶%.R6ǾL+\[Xe Dď@'ht AxE2-?U  1/_e1E`D+rv!B#!A)L-;T*1 1e 3Uw`F~*^B%A餇Zd _Qu ®5;)q CtIU[D+o E3C8J\cB#yz=GRdwC"J}L(u9\)S-:f:|'>0|3{: q C| N B@3vI!cz( N-vp$,_@JВ1* aΔsBXL R-j|V0fS\Qlq~*_(|o#2-,xŇb _F,4Bzpa?k)W :+?aZ >wB갥y&X Kr},4]![ʗS8%` }CBCIІ7>]TAhF R%V(B0P"l-uQsH!/c7C2´o5F~)KA[zF 4kB#Ty\t60S2 5'!OPZG0\!ZIc@&)BZy8 GaksW BWc2W4 CJ+cxqJhwIE+١ZeM)?l) ::‚N|Iٞ;2 `:k8x?Zc+HFdLFz'9# aeBo6$U[],~&H)Y}1~WZ` N5'#R!uЅ# }c;)q_`;) H)_!2ϵ S-$:wZ !Je!:BJrJdy"WFUРUbsKS磔0DX+/6T3tu 4ƖOVe"Lů`B>J1`檼! h c'@³% F`$;玭^J(Rt`cs)AgLXVhe-AKl[>P@ "~kM8|8 T.,||sTݑqS+ѸG 1~+!"Pޞ#)؊&R58OTHա_Sp(iE~}zcTV G F#BlL)<Tï ,P0G*0hP @ "Nxّ5QK |A`\WRA Ɉ7&+u q((ˌJ@)^j2_gGpB?τƾad|KdPş`AO*| kn!:J+4^X9aB( TX2>#N/9M 8BI`E# QGId1ݾ|S)aaA@XK` /u{L`[@E82T !N/tJ'wB 4B_+ƕ9K!GTn~(*R+R(Lo<#ع _Sw9ϴ[|(o *eOAhyT+ ϔl:ǙE0WuJxI',(D*#)i%@- k|"\) 3֣ UtH)xNτ(1ҘO lBua;SʼRB WGpr.4{GKõ3}`>5~+M( p7RB P0Gq)UNxIlF @M)`E <7XĜx`q%U9O`0:* : R` >Tf)ȄB2c'|Y d/Q џJ|(4?J &a`4C.Zn2/_VaKf:N)?ƾA#^׬;2)X8HGksnaogiWmHֿ6%_8U6O֠T}*g%z2$ڷxE%B3 W,o7hn/e|ʽqoNP.j [#Qu #nL@otJhK @uik3>xIXٞ! MH|7K(L4;LN!3 Yu1a{=3Bo5׍]xhYwEklq`]($/G J?;8LVvĕf / ) e>W éǒ%͗xP ~zx`l!x7s31eltή`kT{+J?Iv fe+ 6,mpJ!C, dX! 3?lDc8释30Y  ШIqj XɁe/0T&AV;r|h複gE͠},Y%n{#X&/%:WLx uq7xO9/ynWo`9@ykv ^ޠTO5W"_ 쩰fzK&|>~5 ue{ 3`KAmNIWk̳wէ~RCM #_22{(8x`EpXUZaKA6ɔ# BǼhK=5#6,+}C<9MUR ; ?TikpN:&l)/#H]lRL_> p5Uс]1X<Dj< { +e8ح5BB|oaGoJ+Ht v r1s$If^DŽPW2&t*o[i[) V3W0`pF*g ;WB7j1qT "#LP]8Rϳ<ʙRމe @u>  ijۀ-ΌH&9  U ]GB=Gc8AB+*-?m̞MP57"HmZu DŽ:S"g@)Ȱ'1I#`Crq1R~LdFB * }c:oȨfy.Xg<}WZ29Bš^ S8#Dȓʢ {UM-K0Bpu]IUsa_Tg}Et(3⟟֊ 3`&J!hu뽓OLdM'pP꬯HL>J)vδ3# wB`: sU 7~#% ;g G/$![ ?uzBP rHWT`[B3*T%u[i xtF* n GR6x*wd KQs;a :^;obu:l'_|=WJ q뗎 UF) @_4%XoǍb<"d-USB$c~By(%sX? nِN%2_jP"v\E-R6#y_cwbA Wkv_0oL+~:ٌJ~ZM!2~,Q[>BjVh~}~ .* b4t `tLݞ:̱e/B |0/g@To@3l!KH;& p[6#DoPJєP{&J**,~ш c}3z"BߒAVz&DpjG~ |WZw*+>ժJ 3BA_*V[:n W~ a2aP(/|V6!`%BA&`_xo!aKR+^ǐb)L('Pu:S+ˬ-!-]WR RH#)veZPuE#>nHW`W@*VnXcTPW>uiJ8EO`DX;:|{(s$`RrLh[ R?#9 S+>S q$R# ľUsd vBaBa+WNSgpˆ_ʼu Tc==GZ <&jCtW#H+j! ?_ύRO(s΄Jqxa!pGy&D8@@Iu;T 240 E8`cB)+S :eCJ@I1Ag* inp++LT vsBпun2anL,'@ ֊f"b[|(LNfy%~LjT*ȣ'0vx, 1AV 7N1xd~τP0:wĂͺfC/`1 &C hRـDz߄xFCd |/HTA D^ǑVi,CzdO "LďoQ<@T`C:q r$ x}wJyp NB|y "B,@3<e 3 6y_HBgwU # ?|L(ؼ8L0!80P7:%@| 48?]Ǐ'18P`Kun # @+}X7u ;HLӁM ,0 '̀ ~#A<@`Kz. <7\wu | BeKT@oC`CAhG@R~ CF8SaL{Ft1 %LXcHu1B#AtGB6Hw\@ :S#_l_GHr}~P=0;PꌿO^Br /&4lwyNaN'J=`h2J {C_xSxz@ sDdr|͠1-,ErFB/<U C8" 29WF"d]:!v k|F={+O3`|.To ف!_$TΕl:umz"Ưϓ:b<3%>"g@A_Bues[gz- X lA+A[wF]֘>F';.8 l_#-С_Nwto !Z o|%`:x K/} o-|NuDPU-Aξm9S(̞p{<"Co6Ǥ[#l9Ͼ!>)Ӂ+R!6`S@M! {^I!wHǙc*Љw~\2Lg qF ¿928*VvM r T BQdvn#(l1xC+Vx'^! =0l| 16‚_@ 4up X-&ZPX *As~)h:`LO ön)oi:l&$x2L Wl)ւB D6'fKft L/";" k(`$[/oVp=gZA ,"pl z:esX"y~ `+3Tv F+ vz6E !P|H`kB ktF2d 0e0 ų'E/)1Q!,#Oe#X{%Bv7J:&T3;$ e2~,";y$,^@nf}Rq$*?*2~*NǀN J?jA}i"N~ 8ϱ[-ҡHTX]׶(j Z\ī/(ښG~磆eҏ$ .='C e 4Ãb``Y|| $ڀ9ah7#9p08{~\RQ!YC9.ÊA_t 4o Sj!Ws@?)’AA),RP=ȥo7H@J'NnX?׾CI?\ ;s&`kjk21!I EIK~'SrH{pu2Z6KiS!Po쀕u QvɊSbA OEFqyju)%KKU #X[Zq{,./1/Xj"j~,e+)SD1 Ȅ:uKP*-U!lF#AC`K}c:˜^*!Ht 2 C<(X-=¡P+JNFc\;>Axn68"UBW@Ā;s2m n#1HC`[.\9g\*1O:%$Г*n{nbUy:\բJ(Ȱ'QTp Br)u)աOPO~ #㩴PJNn E8!81 dWJ)?TblW WH(x ß,NMqAWDTtF^ t WGrJw *-T)@*5G[Rfso 훐PK8tD(3錫g|- ? !a]'ɩ88U7m W"8c;pę5OheG:-$9_ ~;=#l::3Bjjf,xaJ%V9fj48P#\aK#`S@L%V(,8fb g:- )‚SyoD'В1{§z;"{XI\_2$ĠVy-T2 -,b 'PBo:^ l(Dɀ6*Awf 9tlz( P/_u TL hvis_ㄖ'8Q&:g2#؂;}ĴDO 't A-B| r?,|o0~}xGP,1WA`KJW%>z/s1^sDU CB|o|[ U[RI(66Xğo! TZ_jџNx?*~|_ 2RJѧJzYO2~\3 D!e>`[-wNK'<ХT0PWɐ2?y{}\JUdi"&YϨc'Njilւ|jB :{*6w4Sd݉4`yB!1K١R>7BA(F:e(;B]*uuDx! o:`]Q`̿/![ѡT~'B@F9C(5Xlibextractor-1.3/src/plugins/testdata/png_image.png0000644000175000017500000000031712016742766017531 00000000000000PNG  IHDRgAMA a pHYs  d_ IDATxc/2*tEXtSignaturedc6c58c971715e8043baef058b675eecH#tEXtCommentTesting keyword extraction `C IENDB`libextractor-1.3/src/plugins/testdata/html_grothoff.html0000644000175000017500000000315312016742766020626 00000000000000 Christian Grothoff

    Welcome to Christian Grothoff




    grothoff@cs.purdue.edu libextractor-1.3/src/plugins/testdata/s3m_2nd_pm.s3m0000644000175000017500000222543412016742766017475 00000000000000UnreaL ][ / PM d6MSCRM@   I'2A"  /.) !34&67+,01B8C((5@:>9*==;-==<<#$%%DEFGH"',16;@EJOTY^chmrw| !&+k'uO%5i/b ImR Z5  - s x v y   C h ,=bxZ~@!By Purple Motion ofSCRS]" " @ " Future Crew 1993SCRSp> <Big thanx to Skaven / FCSCRSwp+@BzSCRS.!JJ@JSCRS@ /@ Greeting : ----->SCRS1@!KwisatzHaderachPurpleBanditSCRS1@!LouisCrespoGreenJester/S!PSCRS2RR5 SNicolasAymeTonedeaf/ExtremeSCRS3 @ @Lizardking&Vogue/TritonSCRS4@ ToniVuoristo(CDs/Samples)SCRS@ TimoFlinkDruid/EMF@ ALLMEMBERSOFTHEFUTURECREW@ @ @ @ 5AN-AN@ :ANSCRS@ @ @ @ :Tb#T@2TSCRS@HH@:9WHSCRSD>!SCRSsH___@V8SCRSqN!@BSCRSPQAP@*PSCRSsurroundUQAP@**!PSCRS@ Z@ #SCRS[< #SCRSH\4+@ $SCRS^ @S%SCRS_l l l @S9&SCRSB`> > > @S&SCRS` @S&SCRSa @S3'SCRS!b   @S'SCRSb @S'SCRSac> > > @S*(SCRSd @S~(SCRSd   @S(SCRSFeOO@U#)SCRSHo@XM&.SCRSwp@XM.SCRSq!!!@XMZ/SCRSr9@U/SCRSbvFFF@U1SCRSz@|V3SCRS@ blank|ʿ@U4SCRS@U;SCRS:A"@"cK@$P %@&C'3#Jk@aHEAe@&C'3$:Je@&S'C%EEb:e@&C'3&@JJEcK$P %@&C 'C'@EFAJe@&S '3(@J :AEe@&C'3)FBEAJ%@&S'C*a:BJE$P e@&C'3+@EBEb:e@&C'3,@JJAEe@&S'C+@EFAJe@&C'3*@JB AAE$P %@&C 'C)FB@AJe@&S '3(aAB8F%@&C'3'@B@bAe@&S'C&8 :@$P %@&C'3#A@8e@&C'3$a:JBe@&S'C%@AEb:e@&C'3&@JJAB$P %@&C 'C'@EFAJe@&S '3(@JB :AEe@&C'3)FB@AJ%@&S'C*a:BJE$P e@&C'3+@ABEb:e@&C'3,@JJABe@&S'C+@EFAJe@&C'3*@JB AAE$P %@&C 'C)FB@ AJe@&S '3(aABEFcI%@&C'3'@ABcI HbAcIe@&S'C&@EcI :A"KC$P %@&A'1#JKLMNaHEAe@&A'1$:Je@&Q'A%EE:$P e@&A'1&@JJE$P%@&A 'A'@EFAJe@&Q '1(@J :AEdP e@&A'1)FBEAJ$P%@&Q'A*a:BJF$P e@&A'1+@EBEb:$Pe@&A'1,@JJAEe@&Q'A+@EFAJdP e@&A'1*@JB AAE$P%@&A 'A)FB@AJe@&Q '1(aAB8F%@&A'1'@B@bAdP e@&Q'A&8 :@$P %@&H'(#A@8e@&H'($a:JBe@&X'8%@AEb:$P e@&H'(&@JJAB$P%@&H '8'@EFAJe@&X '((@JB :AEdP e@&H'()FB@AJ$P%@&X'8*a:BJF$P e@&H'(+@ABEb:e@&H'(,@JJABe@&X'8+@EFAJe@&H'(*@JB AAE$P%@&F '8)FB@ AJdP e@&V '((aABEbI$P%@&F'('@AbI HbIdPe@&V'8&@EbIK1XB#T0$K%P KJAXiC @(AhfcT0@AX K1CdK @(i%XcT0 %P @AX0hC@(Ai5X C@Ah@i%@(AXEX0%P @AhPi5@(A XUh@@AX`XE@(AiehP%P @AXpXU@(AiuX`@Afie@AXuXp%P @(AXpiu@(Ahef@AX`Xu@(AiUXp%P @AXPhe@(AiEX`@Ah@iUeP @(AePX5XP"P#P %P@Ah0iE"P@(A X%h@eP@AX X5"P%G@(Aih0#P K@AbPXX%"P#@eGJ@(AiX "P#P %BK@AbP(fi"P#@Q@(AbP(K1X#P $KEKJAXi@(Ahf#B@AX K1dK @(i%X#P %P@AX0h@(Ai5X #B@Ah@i%@(AXEX0#P @AhPi5@(A XUh@#B@AX`XE@(AiehP#P %P@AXpXU@(AiuX`#B@AfieeP@AXuXp#P @(AXpiu@(Ahef#B@AX`Xu@(AiUXp#P %P@AXPhe@(AiEX`#B@Ah@iU@(AX5XP#P %;2@Ah0iE@(A X%h@b;2(#B@AB2X X5B<fP @(AB@fP ih0B@#P d@e@&P K@AB@DEXX%B cP> F k`bY#P?cP@K1XB#P $KJ&X 'S!AXi&H @(Ahf#B&8 gS!@AG X K1dX fS!H!@(i%X#P dH @AG X0hd8 fS! X!@(AFG i5X #BH!R!@Ah@i%dX @(AFXEX0#P dH X!@AFhPi5d8 R!@(A G XUh@#BI!@AX`XEY!@(AG iehP#P X!@AFXpXUI!@(AG iuX`#BY!R!@AFfieX!@AG XuXp#P $X I!%@(AFXpiu$H R!@(Ahef#B$8 I!%@AFG X`XudX I!%H!@(AiUXp#P dH @AG XPhed8 I! %X!@(AFG iEX`#BH!R!@Ah@iU@(AFX5XP#P X!@AFh0iER!@(A G X%h@#BI!@AX X5Y!@(AG ih0#P KX!@AFXX%JI!@(AG iX #BKY!Y!@AFfiQX!@(AG " C h@dK0"02KX@ h02X02 @@e@"e@"N@aKBKDP X0'hFGf XFGXX FGfhh0FG%P XX@FGX X PFGh0f`FGX@XpFG%P XPXFGf`iFGXpXFGXXpFG%P iiPFGXX0FGXpf FGiPXFG%P X0'hFGf XFGXX FGfhh0FG%P XX@FGX XPFGh0f`FGX@XpFG%P XPXFGf`iFGXpXFGXXpFG%P iiPFGXX0FGXpf FGiPXFGA3bK#TDX0'h@FG A3f X@FG Q3#TXX @aA3FG A3A fhh0@aA3FG K3A %PXX@@aQ3FG Q3A X X P@aA3FG D3A h0f`@aK3FG R3A #T%PX@Xp@aQ3FG A3A #TXPX@aD3FG A3A %Pf`i@aR3FG Q3A XpX@aA3FG A3A #TXXp@aA3FG K3A %PiiP@aQ3FG Q3A XX0@aA3FG D3A Xpf @aK3FG R3A %PiPX@aQ3FG A3A #TX0'h@aD3FG A3A f X@aR3FG Q3A #TXX @aA3FG A3A fhh0@aA3FG K3A %PXX@@aQ3FG Q3A X XP@aA3FG D3A h0f`@aK3FG R3A #T%PX@Xp@aQ3FG A3A #TXPX@aD3FG A3A %Pf`i@aR3FG Q3A XpX@aA3FG A3A #TXXp@aA3FG K3A %PiiP@aQ3FG Q3A XX0@aA3ePFG D3A #T%PXpf @aK3cT%PFG R3A #T%PiPX@aQ3#T%PFG @-abcdPf'P fP a@-PPPbI #T#T#T#T;3#TEV0'f@FG ;3d V@FG K3#TVV @a;3FG ;3A fff0@a;3FG I3A %PVV@@aK3FG K3A V V P@a;3FG B3A f0d`@aI3FG P3A #T%PV@Vp@aK3FG ;3A #TVPV@aB3FG ;3A %Pd`g@aP3FG K3A VpV@a;3FG ;3A #TVVp@a;3FG I3A %PggP@aK3FG K3A VV0@a;3FG B3A Vpd @aI3FG P3A %PgPV@aK3FG ;3A #TV0'f@aB3FG ;3A d V@aP3FG K3A #TVV @a;3FG ;3A fff0@a;3FG I3A %PVV@@aK3FG K3A V VP@a;3FG B3A f0d`@aI3FG P3A #T%PV@Vp@aK3FG ;3A #TVPV@aB3FG ;3A %Pd`g@aP3FG K3A VpV@a;3FG ;3A #TVVp@a;3FG I3A %PggP@aK3FG K3A VV0@a;3ePFG B3A #T%PVpd @aI3cTFG P3A #T%PgPV@aK3#TFGA3B#JDEX0'h@FG A3Cf X@FG Q3CXX @A3FG A3A #Jfhh0@aA3FG K3A CXX@@aQ3FG Q3A CX X P@aA3FG D3A h0f`@aK3FG R3A X@Xp@aQ3FG A3A XPX@aD3FG A3A f`i@aR3FG Q3A XpX@aA3FG A3A XXp@aA3FG K3A iiP@aQ3FG Q3A XX0@aA3FG D3A Xpf @aK3FG R3A iPX@aQ3FG A3A X0'h@aD3FG A3A f X@aR3FG Q3A XX @aA3FG A3A fhh0@aA3FG K3A XX@@aQ3FG Q3A X XP@aA3FG D3A h0f`@aK3FG R3A X@Xp@aQ3FG A3A #TXPX@aD3FG A3A %Pf`i@aR3FG Q3A XpX@aA3FG A3A #TXXp@aA3FG K3A %PiiP@aQ3FG Q3A XX0@aA3dG ePFG D3A #TdG%PXpk @aK3cTFG R3A #T%PiPiP@aQ3#TFG?@ABCDP X0'hFGf XFGXX FGfhh0FG%P XX@FGX X PFGh0f`FGX@XpFG%P XPXFGf`iFGXpXFGXXpFG%P iiPFGXX0FGXpf FGiPXFG%P X0'hFGf XFGXX FGfhh0FG%P XX@FGX XPFGh0f`FGX@XpFG%P XPXFGf`iFGXpXFGXXpFG%P iiPFGXX0FGXpf FGiPXFGA3#TX0'h@FG A3f X@FG Q3#TXX @aA3FG A3A fhh0@aA3FG K3A %PXX@@aQ3FG Q3A X X P@aA3FG D3A h0f`@aK3FG R3A #T%PX@Xp@aQ3FG A3A #TXPX@aD3FG A3A %Pf`i@aR3FG Q3A XpX@aA3FG A3A #TXXp@aA3FG K3A %PiiP@aQ3FG Q3A XX0@aA3FG D3A Xpf @aK3FG R3A %PiPX@aQ3FG A3A #TX0'h@aD3FG A3A f X@aR3FG Q3A #TXX @aA3FG A3A fhh0@aA3FG K3A %PXX@@aQ3FG Q3A X XP@aA3FG D3A h0f`@aK3FG R3A #T%PX@Xp@aQ3FG A3A #TXPX@aD3FG A3A %Pf`i@aR3FG Q3A XpX@aA3FG A3A #TXXp@aA3FG K3A %PiiP@aQ3FG Q3A XX0@aA3FG D3A #T%PXpf @aK3cT%PFG R3A #T%PiPX@aQ3#T%PFG6:AB#A$C @"fK '@"aHC EAE#A$C :BC JH#1$3 EEBEb:CdAE @JDEJEdA@@EDFAJd1@J :AEDFBEAJa:BJE@EBEb:@JJAE@EFAJ@JB AAE@FB@AJaAB8F@B@bA8 :@A@8a:JB@AEb:@JJAB@@EFAJ@JB :AEFB@AJa:BJE@ABEb:@JJAB@EFAJ@JB AAE@FB@ AJaABEF#;fK @ABC HbA#+@EC :A"AcK@$P %@&;'+#aHB EA"Ae@&;'+$:B J"1e@&K';%EBEb:e@&;'+&@JJE$P %@&; ';'@EFAJe@&K '+(@J :AEe@&;'+)FBEAJ%@&K';*a:BJE$P e@&;'++@EBEb:e@&;'+,@JJAEe@&K';+@EFAJe@&;'+*@JB AAE$P %@&; ';)FB@AJe@&K '+(aAB8F%@&;'+'@B@bAe@&K';&8 :@$P %@&H'(#A@8e@&H'($a:JBe@&X'8%@AEb:e@&H'(&@JJAB$P %@&H '8'@EFAJe@&X '((@JB :AEe@&H'()FB@AJ%@&X'8*a:BJE$P e@&H'(+@ABEb:e@&H'(,@JJABe@&X'8+@EFAJe@&H'(*@JB AAE$P %@&F '6)FB@ AJe@&V '&(aABEFcI%@&F'&'@ABcI HbAcIe@&V'6&@EcI@:AB#A$C EfK GaHC EAE#A$C :BC JH#1$3 EBEb:CdA@JDJEdA@@EDFAJd1@J :AEDFBEAJa:BJE@EBEb:@JJAE@EFAJ@JB AAE@FB@AJaAB8F@B@bA8 :@A@8a:JB@AEb:@JJAB@@EFAJ@JB :AEFB@AJa:BJE@@ABEb:@JJAB@EFAJ@JB AAE@FB@ AJ@aABEF#;fK @@ABC HbA#+@(@EC :A"@"cK2$P %@&C'3#JaHEAe@&C'3$:Je@&S'C%EEb:e@&C'3&@JJEcK$P %@&C 'C'@EFAJe@&S '3(@J :AEe@&C'3)FBEAJ%@&S'C*a:BJE$P e@&C'3+@EBEb:e@&C'3,@JJAEe@&S'C+@EFAJe@&C'3*@JB AAE$P %@&C 'C)FB@AJe@&S '3(aAB8F%@&C'3'@B@bAe@&S'C&8 :@$P %@&C'3#A@8e@&C'3$a:JBe@&S'C%@AEb:e@&C'3&@JJAB$P %@&C 'C'@EFAJe@&S '3(@JB :AEe@&C'3)FB@AJ%@&S'C*a:BJE$P e@&C'3+@ABEb:e@&C'3,@JJABe@&S'C+@EFAJe@&C'3*@JB AAE$P %@&C 'C)FB@ AJe@&S '3(aABEFcI%@&C'3'@ABcI HbAcIe@&S'C&@EcIa@ABdAEFg@"(@A:@5:A5@A:f@" @5:A5@A:@5:A g@"5@ A: @5 :dC 5A C@ f@"A5@C5AC@A5@C5AC@A5@C5AC@A5@"@dEg@"(5CEAC5AE5 CE Af@" C 5A E5 CE AC 5A Eg@"5 C E A!C 5!A dE"5 C#E A#f@"C 5$A E%5 C&E A&C 5'A E(5 C(E A)C5*AE*5C+EA,55-@5BdA-EFgP5(@-A:-@6-:A-6@-a@5A:-@6-:A-6@-A:-@6-b@5 :A-6@-A:-@6-:dC-6A-C@-A6-@C-6A-C@-A6-@C-6A-C@-A6-@C-6A-C@-A6-@dF-6E-FC-E:-CF-:E-FC-E:-CF-:E-FC-E:-CF-:E-FC-E:-CdH-:F-HE-F:-EH-:F-HE-fP F:-fPEJ-&P:H-JF-X fPH:-FJ-Z0&I:H-JF-[0&EH:- @5!P "AdA-HFT"A@-!P "1A:-H B @5-:A-X0bA5@-aP bAA:-H@b1 @5-aP B:A-VP5@-A:-X`@5-:A-E 5@-A:-H @5-!P :dC-E 5A-!P C@-H A5-@C-Xp5A-aP C@-H A5-aP @C-E 5A-C@-V A5-";@C-X05A-C@-P A5-!P "A@dE-H"A5C-!P "1EA-H B C5-AE-X0bA5C-aP bAEA-H@b1 C5-aP BAE-VP5C-EA-X`C5-AE-E 5C-EA-H C5-!P AdE-E 5C-!P EA-H C5-`S AE-Xp`S5C- SaP EA-H C5- PaP AE-E 5C-`JEA-X `PC5- J";AE-Z05C- EAEA-[0C55- @5!P "9dA-TP"9@-!P ")A:-T B @6-:A-d0b96@-aP b9A:-T@b) @6-aP b@5:A-cP6@-A:-d`@6-:A-E 6@-A:-T @6-!P :dC-E 6A-!P C@-T A6-@C-dp6A-aP C@-T A6-aP @C-E 6A-C@-c A6-"8@C-d06A-C@-P A6-!P "F@dF-QI"F6E-!P "6FC-Q B E:-CF-a0bF:E-aP bFFC-Q@b6 E:-aP BCF-[P:E-FC-a`E:-CF-E :E-FC-Q `SE:- S!P CdH-E :F-`S!P HE-Q  JF:-EH-ap`S:F- GaP HE-Q F:-`GaP EJ-E :H- BJF-a H:-`B aIFJ-f 'P`B:H-fG `BJF-fP`B(H:-f(P(K1X#P $KEKJAXi@(Ahf#B@AX K1dK @(i%X#P @AX0h@(Ai5X #B@Ah@i%@(AXEX0#P @AhPi5@(A XUh@#B@AX`XE@(AiehP#P @AXpXU@(AiuX`#B@Afie@AXuXp#P @(AXpiu@(Ahef#B@AX`Xu@(AiUXp#P @AXPhe@(AiEX`#B@Ah@iU@(AX5XP#P @Ah0iE@(A X%h@#B@AX X5@(Aih0#P K@AXX%J@(AiX #BK@AfiQ@(A`H!XcH dKK '1"J!BcJ K!H!ҢX cK X S!J!BcS E H!K!BcH X  J!S!cJ E K!H!cK EC!J!cC H! K!cH J! C!cJ K! H!cK S! J!cS H! K!cH J!S!cJ K!H!cK C!J!cC `H!K!d0cH d@6('@6J!C!BcJ K!H!Ңd@cK d 0f@6T!J!BcT E H!K!BcH d @J!T!cJ E K!H!cK ED!J!cD H!K!cH J!D!cJ K!H!cK T!J! cT H!K! cH J!T! cJ K!H! c0cK D! J! cD `H!!K! a cH c 0J!"D! BcJ Q!#H! ҢacQ a  T!$J! BcT E H!%Q! BcH a J!&T! cJ E Q!'H! cQ ED!(J! cD H!)Q! cH J!*D! cJ Q!+H!cQ T!,J!cT H!-Q!cH J!.T!cJ Q!/H!cQ D!0J!cD `H!1Q!X cH J!2D!BcJ K!3H!ҢX0cK X  S!4J!BcS E H!5K!BcH X 0J!6S!cJ E K!7H!cK EC!8J!cC H!9K!cH J!:C!cJ K!;H!cK S!<J!cS H!=K!V cH J!>S!cJ K!?H!cK C!@J!cC " H!K!XcH fK'1"J!C!BcJ K!H!ҢX cK X S!J!BcS E H!K!BcH X  J!S!cJ E K!H!cK EC!J!cC H!K!cH @J!C!cJ K!H!cK S!J!cS H!K!cH J!S!cJ K!H!VcK C!J!X(cC H!K!d0cH @6(@@6@J!C!BcJ K!H!Ңd@cK d 0@6@T!J!BcT E H!K!BcH d @FJ!T!cJ E K!H!cK @FD!J!cD @H!K!cH @FJ!D!cJ K!H!cK T!J!cT H!K!cH J!T!cJ K!H!c0cK D!J!cD H!K!a cH c 0J!D!BcJ Q!H!ҢacQ a  T!J!BcT E H!Q!BcH a J!T!cJ E Q!H!cQ ED!J!cD H!Q!cH @J!D!cJ Q!H!cQ T!J!cT H!Q!cH J!T!cJ Q!H!cQ D!J!cD H!Q!X cH J!D!BcJ K!H!ҢX0cK X  S!J!BcS E H!K!BcH X 0J!S!cJ E K!H!cK EC!J!cC H!K!X cH @J!C!cJ K!H!cK S!J!cS H!K!cH @(J!S!cJ K!H!cK C!J!cC  H!K!X#TfK'T J!C!B(K!H!ҢX X 'T S!J!BE H!K!BX  J!S!E K!H!XEgT C!J!B(PH!K!X @'PJ!C!BK!H!B@gP S!J!H!K!@J!S!K!H!@ C!J! H!K!d0$P'T J!C!BK!H!Ңd@d 0'T T!J!BE H!K!Bd @J!T!E K!H!d0EgT D!J!BPH!K!d@@'PJ!D!BK!H!B@gP T!J!H!K!@J!T!K!H!c0@ D!J! H!K!a #Ic 0'T J!D!BQ!H!Ңaa  'T T!J!BE H!Q!Ba J!T!E Q!H!a EgT D!J!BPH!Q!a@'PJ!D!BQ!H!B@gP T!J!H!Q!@J!T!Q!H!@ D!J! H!Q!X $T'T J!D!BK!H!ҢX0X  'T S!J!BE H!K!BX 0J!S!E K!H!X EgT C!J!BPH!K!X0@'PJ!C!BK!H!B@gP S!J!H!K!@(J!S!K!H!bG@ C!J!;3#TV0'f@FG ;3d V@FG K3#TVV @a;3FG ;3A fff0@a;3FG I3A %PVV@@aK3FG K3A V V P@a;3FG B3A f0d`@aI3FG P3A #T%PV@Vp@aK3FG ;3A #TVPV@aB3FG ;3A %Pd`g@aP3FG K3A VpV@a;3FG ;3A #TVVp@a;3FG I3A %PggP@aK3FG K3A VV0@a;3FG B3A Vpd @aI3FG P3A %PgPV@aK3FG ;3A #TV0'f@aB3FG ;3A d V@aP3FG K3A #TVV @a;3FG ;3A fff0@a;3FG I3A %PVV@@aK3FG K3A V VP@a;3FG B3A f0d`@aI3FG P3A #T%PV@Vp@aK3FG ;3A #TVPV@aB3FG ;3A %Pd`g@aP3FG K3A VpV@a;3FG ;3A #TVVp@a;3FG I3A %PggP@aK3FG K3A VV0@a;3FG B3A bI#T%PVpd @aI3cTFG P3A #T%PgPV@aK3#TFG`b#A$C efK gC #A$C C #1$3 CdADdA@Dd1D@@@#;fK C #+C Q C: "A3#P dK @ c 'hFG(@XXFG(@(fhXFG( C"A3dK @XhFG(#P @XXFG(@hXFG(`CbA3@(XfFG(@XXFG(#P @fXFG(@XhFG(@(XXFG(@hXFG(#P @XfFG(@XXFG( D"B3#P @(fhFG(CA3@XXFG( C"A3#P @hiFG(@XXFG(@(iXFG( C"A3@XiFG(#P @XXFG(@iЧXFG(`CbA3@(XfFG(@XXFG(#P @fXFG(@XhpFG(@(XX`FG(@hpXPFG( A"P#P %P X`f@FG(bP@XPX0FG("PdI%P f@c bPdIFG("PdI%P X0XbPdI FG(Me@"e@"B CZ"A3CdK%hF'hE(hehXE( C"A3fh(GTThXE `CbA3EFTTE D"B3ECA3 Fa"D3 H"F3TcTE `HbF3EZ"BcBV gT VpgTV`gTVPgTdIV@gTdIV#0gTdIV( gT#dI V-gT(S! !TcS $K@gh-K! cK @X-H! S!bS cH @(X- S!K!bK cS @fh GK!H!bH cK @X H!S!bS cH @X  S!K!bK cS dK@(FK!H!bH cK @Q!S!bS cQ @K!K!bK cK @H!Q!bQ cH @(Q!K!bK cQ @K!H!bH cK @H!Q!bQ cH @Q!!K! bK cQ !@(K!#H! bH cK #@Q!%Q! bQ cQ %@J!&K! bK cJ &@F!(Q! bQ cF (@(Q!*J! bJ cQ *@J!+F! bF cJ +@F!-Q!bQ cF -@Q!/J!bJ cQ /@(J!0F!bF cJ 0@T!2Q!bQ cT 2@Q!4J!bJ cQ 4@J!5T!bT cJ 5@(T!7Q!bQ cT 7@Q!9J!bJ cQ 9@gf-J!:T!bT cJ :@T!<Q!bQ cT <@(Q!>J!bJ cQ >eTff S!@T!bT cS @%Tgh-K!Q!bQ #K X-H!S!bS #H @(X- S!K!bK #S @fh GK!H!bH #K @X H!S!bS #H @X  S!K!bK #S @(FK!H!bH #K @Q!S!bS #Q @K!K!bK #K @H!Q!bQ #H @(Q!K!bK #Q @K!H!bH #K @H!Q!bQ #H @Q!K!bK #Q @(K!H!bH #K @Q!Q!bQ #Q @J!K!bK #J @F!Q!bQ #F @(Q!J!bJ #Q @J!F!bF #J @F!Q!bQ #F @Q!J!bJ #Q @(J!F!bF #J @T!Q!bQ #T @Q!J!bJ #Q @J!T!bT #J @(T!Q!bQ #T @Q!J!bJ #Q %Tgc-J!T!bT #J T!Q!bQ #T @(Q!J!bJ #Q @fc T!T! bT #T %Tgt-K!Q! bQ #K d-H!T! bT #H eT2d- T!K! bK #T ft GK!H! bH #K @d H!T! bT #H @d  T!K! bK #T @(FK!H! bH #K @S!T! bT #S @K!K! bK #K @H!S! bS #H @(T!K! bK #T @K!H! bH #K @H!T! bT #H @S!K! bK #S %Ts- K!H! bH #K d-T!S! bS #T %Tgq-K!K! bK #K a-H!T! bT #H eT2s  a- T!K! bK #T d GK!H! bH #K @fq H!T! bT #H @a T!K! bK #T @(a  K!H! bH #K @FS!T! bT #S @K!K! bK #K @H!S! bS #H @(T!K! bK #T @K!H! bH #K @H!T! bT #H @S!K! bK #S %Tv- K!H! bH #K tPS!S! bS #S %Tgh-K!K! bK #K X-H!S! bS #H eT2X- S!K! bK #S v  GK!H! bH #K @tPH!S! bS #H @fh S!K! bK #S @(X K!H! bH #K @X  Q!S! bS #Q @FK!K! bK #K @H!Q! bQ #H @(S!K! bK #S @K!H! bH #K @H!S! bS #H @Q!K! bK #Q @(K!H! bH #K @Q!Q! bQ #Q @J!K! bK #J @F!Q! bQ #F @(Q!J! bJ #Q @J!F! bF #J @F!Q! bQ #F @Q!J! bJ #Q @(J!F! bF #J U@T!Q! bQ #T $U@Q!J! bJ #Q @J!T! bT #J dU@(T!Q! bQ #T $P@Q!J! bJ #Q eTgfJ!T! bT #J dP eTgfT!Q! bQ #T $GeT(gf#Q!J! bJ #Q $EeT2ff gf-Q"D3#[D%Tp  '[C(FGD3i [FG"T3c[%Tf[ kaD3 C FG"D3[ [D3 FG"U3#Pk paT3 FGbT3[ [aD3 FG"U3p paU3 FG"T3#P%T[ kaT3 FGbU3%Tp [aU3 FG"T3#Pk [aT3 FGT3[ kaU3 FG"D3%T[ [aT3 FG"U3#Pk pT3 FGbD3[ [aD3 FG"U3p paU3 FG"R3#P[ iaD3 FGT"D3%Tp [aU3 FGD3i [aR3 FG"T3%T[ kaD3 FG"D3[ [D3 FGV"U3#Pk paT3 FGbT3[ Ч[aD3 FG"U3p paU3 FG"T3#P%T[ kaT3 FGQbU3%Tp [aU3 FGbT32#Pk [paT3FGT3([ k`aU3FGbD3%T[ p[PaT3FGbU3#Pk `p@T3FGbD3[ P[0aD3 cPFGbU3 #P%Tp @p aU3eTFGbW3#P%T[ 0iaD3%TFG C h"A#P dK&E0G`C XA &E0 CA"1eE0&H.@BeE0fH.#P eH.&E0eH.&H.eE0fH.eH.&H.#P eH.&E0eH.&E0eE0&H.eE0fH.#P eH.&E0eH.&H.eE0fH.eH.&H.#P eH.&E0eH.&E0eE0&J/eE0fJ/#P eJ/&E0eJ/&J/eE0fJ/eJ/&J/`C #P eJ/&E0'P CeJ/&E0 C #P eE0&H/'P CeE0fH/'P D #P eH/&E0'P`C#P eH/&J/'P D fbI#P eE0fJ/'PcP gP( F V#P eJ/&J/'PcP gP( C h"A#P dK&E0G`C XA &E0 CA"1eE0&H.@BeE0fH.#P eH.&E0eH.&H.eE0fH.eH.&H.#P eH.&E0eH.&E0eE0&H.eE0fH.#P eH.&E0eH.&H.eE0fH.eH.&H.#P eH.&E0eH.&E0eE0&J/eE0fJ/#P eJ/&E0eJ/&J/eE0fJ/eJ/&J/#P eJ/&E0eJ/&E0#P eE0&H/eE0fH/#P eH/&E0'P#P eH/&J/'Pf#P eE0fJ/'PcP 'PV#P eJ/&J/'PcP 'P0S!!TbT #S %AX0gh-K!bQ #K @k X-H!aT2bS #H Ai PX- S!bK #S dA fhh-0K!@bH #K @ XX-@H!@bS #H A X XPS!@(bK #S h0f-`K!@bH #K X@X-pQ!@bS #Q XPX-K!@bK #K f`h-H!@(bQ #H XpX-Q!@bK #Q XX-pK!@bH #K hh-PH!@bQ #H XX-0Q!!TbK #Q %@Xpf- K!bH #K E(hPX-Q!!TbQ #Q %3X0gh-J!bK #J d@ 5f X-F!aT2bQ #F DXX- Q!bJ #Q d3 fhh-0J!@bF #J 5 XX-@F!@bQ #F X X-PQ!@(bJ #Q h0f-`J!@bF #J X@X-pT!@bQ #T XPX-Q!@bJ #Q f`h-J!@(bT #J XpX-T!@bQ #T XX-pQ!@bJ #Q hh-PJ!@bT #J XX-0T!!TbQ #T Xpk- Q!bJ #Q hPjPS!!TbT #S %AX0gh-K!bQ #K %@k X-H!aT2bS #H %Aj PX- S!bK #S dA fhh-0K!@bH #K d@ XX-@H!@bS #H dA X XPS!@(bK #S h0f-`K!@bH #K X@X-pQ!@bS #Q %CXPX-K!@bK #K f`h-H!@(bQ #H XpX-Q!@bK #Q dC XX-pK!@bH #K %Ehh-PH!@bQ #H XX-0Q!!TbK #Q eCXpf- K!bH #K dE hPX-Q!!TbQ #Q %3X0gh-J!bK #J dC 5f X-F!aT2bQ #F XX- Q!bJ #Q d3 fhh-0J!@bF #J 5 XX-@F!@bQ #F X X-PQ!@(bJ #Q h0f-`J!@bF #J X@X-pT!@bQ #T 6XPX-Q!@bJ #Q f`h-J!@(bT #J XpX-T!@bQ #T 6 XX-pQ!@bJ #Q 5hh-PJ!@bT #J XX-0T!!TbQ #T 3Xpk- Q!bJ #Q 5 hPjPT!!TbT #T %AX0gt-K!bQ #K @k d-H!aT2bT #H Aj Pd- T!bK #T dA ftt-0K!@bH #K @ dd-@H!@bT #H A d dPT!@(bK #T t0s-`K!@bH #K d@d-pS!@bT #S dPd-K!@bK #K s`t-H!@(bS #H dpd-T!@bK #T dd-pK!@bH #K tt-PH!@bT #H dd-0S!!TbK #S %@dps- K!bH #K %AtPd-T!!TbS #T %Cd0gq-K!bK #K d@ s a-H!aT2bT #H dA da- T!bK #T dC fqq-0K!@bH #K %Eaa-@H!@bT #H a a-PT!@(bK #T eCq0k-`K!@bH #K dE a@a-pS!@bT #S %AaPa-K!@bK #K dC k`q-H!@(bS #H eEapa-T!@bK #T dA aa-pK!@bH #K e@qq-PH!@bT #H dE aa-0S!!TbK #S %Aapv- K!bH #K d@ qPtPS!!TbS #S %Aa0gh-K!bK #K dA @v X-H!aT2bS #H At PX- S!bK #S dA fhh-0K!@bH #K @ XX-@H!@bS #H A X XPS!@(bK #S h0f-`K!@bH #K X@X-pQ!@bS #Q XPX-K!@bK #K f`h-H!@(bQ #H XpX-S!@bK #S XX-pK!@bH #K hh-PH!@bS #H XX-0Q!!TbK #Q  Xpf- K!bH #K  hPX-Q!!TbQ #Q  X0gh-J!bK #J  f X-F!aT2bQ #F XX- Q!bJ #Q fhh-0J!@bF #J XX-@F!@bQ #F X X-PQ!@(bJ #Q h0f-`J!@bF #J X@X-pT!@bQ #T XPX-Q!@bJ #Q f`h-J!@(bT #J XpX-T!@bQ #T XX-pQ!@bJ #Q hh-PJ!@bT #J XX-0T!!TbQ #T Xpk- Q!bJ #Q hPiP7@AB#A$C EfK gQ"C #A$C C #1$3 CdADdA@Dd1D@@@ AAA(2@ <B@B @#;fK C #+d@" C d@"`A@cKeX0'hFG@ f XFGXX FGdK fhh0FGXX@FGX X PFGcKh0f`FGX@XpFGXPXFGf`iFGXpXFGXXpFGiiPFGXX0FGXpf FGiPXFGX0'hFGf XFGXX FGfhh0FGXX@FGX XPFGh0f`FGX@XpFGXPXFGf`iFGXpXFGXXpFGiiPFGXX0FGXpf FGiPXFGA@ABCDEX0'hFGf XFGXX FGfhh0FGXX@FGX X PFGh0f`FGX@XpFGXPXFGf`iFGXpXFGXXpFGiiPFGXX0FGXpf FGiPXFGX0'hFGf XFGXX FGfhh0FGXX@FGX XPFGh0f`FGX@XpFGXPXFGf`iFGXpXFGXXpFG%P iiPeP FG%P XX0eP FG%P Xpf %P FG%P iPX%P FGb FA "D3#P dR @ f 'kFG(@[[FG(@(fk[FG( F"D3dR @[kFG(#P $P@[[FG(@k[FG(`FbD3dP@([iFG($P@[[FG(#P @i[FG(dP@[kFG(@([[FG(@k[FG(#P $P@[iFG(@[[FG( G"E3#P dP@(ikFG(FD3@[[FG( F"D3#P @kpFG(@[[FG(@(p[FG( F"D3@[pFG(#P $P@[[FG(@pЧ[FG(`FbD3dP@([iFG($P@[[FG(#P @i[FG(dP@[kpFG(@([[`FG(@kp[PFG( D#P $P%P [`i@FG(@[P[0FG(dP%P i@f dPFG(dP%P [0[dP FG(;3#TdIEV0'f@FG ;3d V@FG K3#TVV @a;3FG ;3A dI fff0@a;3FG I3A %PVV@@aK3FG K3A V V P@a;3FG B3A f0d`@aI3FG P3A #T%PV@Vp@aK3FG ;3A #TVPV@aB3FG ;3A %Pd`g@aP3FG K3A VpV@a;3FG ;3A #TVVp@a;3FG I3A %PggP@aK3FG K3A VV0@a;3FG B3A Vpd @aI3FG P3A %PgPV@aK3FG ;3A #TV0'f@aB3FG ;3A d V@aP3FG K3A #TVV @a;3FG ;3A fff0@a;3FG I3A %PVV@@aK3FG K3A V VP@a;3FG B3A f0d`@aI3FG P3A #T%PV@Vp@aK3FG ;3A #TVPV@aB3FG ;3A %Pd`g@aP3FG K3A VpV@a;3FG ;3A #TVVp@a;3FG I3A %PggP@aK3FG K3A VV0@a;3ePFG B3A #T%PVpd @aI3cTFG P3A #T%PgPV@aK3#TFG;302#T$@EV0'f@FG ;3d V@FG K3 #TVV @a;3FG ;3A fff0@a;3FG I3A 0%PVV@@aK3FG K3A V V P@a;3FG B3A f0d`@aI3FG P3A #T%PV@Vp@aK3FG ;3A #TVPV@aB3FG ;3A %Pd`g@aP3FG K3A VpV@a;3FG ;3A #TVVp@a;3FG I3A %PggP@aK3FG K3A VV0@a;3FG B3A Vpd @aI3FG P3A %PgPV@aK3FG ;3A #TV0'f@aB3FG ;3A d V@aP3FG K3A #TVV @a;3FG ;3A fff0@a;3FG I3A %PVV@@aK3FG K3A V VP@a;3FG B3A f0d`@aI3FG P3A #T%PV@Vp@aK3FG ;3A #TVPV@AFG@FG"9191`IfP F( 2<@ C!A3KS!@@ c 'hFG(K!?@XXFG(S! H!=@(fhXFG( C!A3K!S!;@XhFG(H!K!:@XXFG(S!H!8@hXFG(`CaA3720K!S!6@(XfFG(H!K!4@XXFG(S!S!3@fXFG(K!K!1@XhFG(`7 a7 S!H!/@(XX@AFG(@AK!S!-@hX@(A(FG(@2A2H!K!,@Xf@FG(@"E@X0XFG(|H!K!ҢXcH %T fK'CJ!C!H(cJ EK!H!ҢX cK %T S!J!HcS fC H!K!BcH E J!S!cJ K!H!XcK eT GC!J!H(cC PH!K!X cH %P@J!C!HcJ F K!H!BcK eP S!J!cS @ H!K!cH AJ!S!cJ GK!H!VPcK "8C!J!FcC $A  H!K!XcH %%T FJ!C!H(cJ '8 K!H!ҢX cK )%T S!J!HcS +H!K!BcH ,J!S!cJ .K!H!XcK 0eT C!J!H(cC 2PH!K!X cH 3%PJ!C!HcJ 5K!H!BcK 7eP S!J!cS 9H!K!"VcH :J!S!cJ <K!H!cK >C!J!cC @ H!K!X#H %T 'CJ!C!H(#J EK!H!ҢX #K %T S!J!H#S fC H!K!B#H E J!S!#J K!H!X#K eT GC!J!H(#C PH!K!X #H %P@J!C!H#J F K!H!B#K eP S!J!#S @ H!K!#H AJ!S!#J GK!H!UP#K ;C!J!E#C A  F!K!V#F R%T FH!C!F(#H ; I!F!ҢV #I %T Q!H!F#Q F!I!B#F eJ H!Q!#H EI!F!V#I eT A!H!F(#A PF!I!V #F %PH!A!F#H I!F!B#I %@Q!H!U#Q F!I!"U#F f@H!Q!"Q#H I!F!#I A!H!"H#A H!I!ҢX#H $T%T fK'CJ!A!H(#J EK!H!ҢX #K %T S!J!H#S fC H!K!B#H E J!S!#J K!H!X#K eT H(C!J!H(#C PH!K!X #H %P@J!C!H#J HK!H!B#K eP S!J!#S @ H!K!#H AJ!S!#J GK!H!VP#K 8C!J!F#C A  H!K!X#H %T FJ!C!H(#J 8 K!H!ҢX #K %T S!J!H#S H!K!B#H J!S!#J K!H!X#K eT C!J!H(#C PH!K!X #H %PJ!C!H#J K!H!B#K eP S!J!#S H!K!"V#H  J!S!#J K!H!#K CC!J!#C  E( H!K!X#H %T 'CJ!C!H(#J CEK!H!ҢX #K %T ES!J!H#S fC H!K!B#H E J!S!#J K!H!X#K eT H(C!J!H(#C PH!K!X #H %P@J!C!H#J HK!H!B#K eP S!J!#S @ H!K!#H AJ!S!#J GK!H!UP#K CC!J!E#C A  F!K!V#F R%T FH!C!F(#H C I!F!ҢV #I %T Q!H!F#Q F!I!B#F eJ H!Q!#H EI!F!V#I eT A!H!F(#A PF!I!V #F %PH!A!F#H I!F!B#I %@Q!H!U#Q F!I!"U#F f@H!Q!"Q#H I!F!#I A!H!"H#A K!I!Ң[#K $W%T fR'FQ!A!K(#Q HR!K!Ң[ #R %T V!Q!K#V fF K!R!B#K H Q!V!#Q R!K![#R eT K(F!Q!K(#F PK!R![ #K %PCQ!F!K#Q KR!K!B#R eP V!Q!#V C K!R!#K DQ!V!#Q GR!K!YP#R ;F!Q!I#F D  K!R![#K %T FQ!F!K(#Q ; R!K!Ң[ #R %T V!Q!K#V K!R!B#K Q!V!#Q R!K![#R eT F!Q!K(#F PK!R![ #K %PAQ!F!K#Q R!K!B#R eP V!Q!#V A K!R!"Y#K 'CQ!V!#Q R!K!#R AF!Q!#F fC C( K!R![#K %T 'FQ!F!K(#Q AHR!K!Ң[ #R %T CV!Q!K#V fF K!R!B#K H Q!V!#Q R!K![#R eT K(F!Q!K(#F PK!R![ #K %PCQ!F!K#Q KR!K!B#R eP V!Q!#V C K!R!#K DQ!V!#Q GR!K!XP#R BF!Q!H#F D  I!R!Y#I U%T FK!F!I(#K B P!I!ҢY #P %T T!K!I#T I!P!B#I eP K!T!#K EP!I!Y#P eT D!K!I(#D PI!P!Y #I %PK!D!I#K P!I!B#P %@T!K!X#T I!P!"X#I f@K!T!"T#K P!I!#P D!K!"K#D K!P!Ң[#K $W%T fR'FQ!D!K(#Q HR!K!Ң[ #R %T V!Q!K#V fF K!R!B#K H Q!V!#Q R!K![#R eT K(F!Q!K(#F PK!R![ #K %PFQ!F!K#Q KR!K!B#R eP V!Q!#V F K!R!#K DQ!V!#Q GR!K!YP#R ;F!Q!I#F D  K!R![#K %T FQ!F!K(#Q ; R!K!Ң[ #R %T V!Q!K#V K!R!B#K Q!V!#Q R!K![#R eT F!Q!K(#F PK!R![ #K %PA Q!F!K#Q ;R!K!B#R eP AV!Q!#V AC(K!R!"Y#K ; D2Q!V!#Q AC<R!K!#R CA@F!Q!#F DC@ K!R![cK @%T C'FQ!F!K(#Q A HR!K!Ң[ #R %T C V!Q!K#V fF K!R!B#K H Q!V!#Q R!K![#R eT K(F!Q!K(#F PK!R![ #K %PCQ!F!K#Q KR!K!B#R eP V!Q!#V C K!R!#K DQ!V!#Q GR!K!XP#R FF!Q!H#F D  I!R!Y#I U%T FK!F!I(#K F P!I!ҢY #P %T T!K!I#T I!P!B#I eP K!T!#K EP!I!Y#P eT D!K!I(#D PI!P!Y #I %PDK!D!I#K P!I!B#P %@T!K!X#T D I!P!#I f@BK!T!bR#K P!I!#P GD!K!#D 7K!B@"AWeT R('@eT K!eT PAePeP`01 eT `eT eT PeP ePgPg72eP 0"GcPeP@c!P #B$RGbPbePegabcdefgBBB~}vlsFJ=^SN)q6ã64X>|4"W&CV!;ubҗkxSc:cJ2En2j2 ]OD%R}Q_HH`G+UPn\IzpJ_tp,wo۔ם믫׻IlwƬL{kLTTu9ks\rfOa~BSqs}n?dgK4YO{c{noaֻoLJvޣ~xOS6IE|1e\81o9 I,!#.( 5#A"\Q.P\#O&&+12156D9DHCPCULVUT[`Zaebijmnnwvzwýzzyuyrqmpgneiac^`[YT[RTPMOKLFEEG;C?::>49543/2.*/+'+&&("$$!#  !!"$%&&')++,.0124478:;=?@BCEGIOMOPRUWU\X^_c`eiclmgorqusxw|zz}·þ~{uwxvsqtiqnfnddiad^_\]XZVRZNTOLOQGJHIFECA?@A<:>4?9387372132,2/,/..)-+,++&&.+&&-%-'')'(,'**&-**))0*++1*1//.13144637956@9?=?B==>9A8;;;7;795;76459188029264-832:-662751656647955;6;7=59?:;=;>?AB>C?DFCAHHHGHKNNMKQQQURTSZ\Q^^Xf_^aeghbklknolrquzqx{z~{~~|~z}{u}wuwsruprmpphnlkehnagbcgb\c_^\\X]U\WVZSUUTOSQPNPNLQHKKIJEILBFHCFAEFAC>C@@@>?C;?@<>?@<@<@:?B;>>C9A>=C=@F;?FADADAHBFCGFHHJEJLKLMMOQNQSQRYRWXXYY^^Z^c\ch]lbgkjmjkqslvm{syvz|x}~~||~zz{vxxrzusutntnpplqjipjkhfejfdj]hbdba_a`]_\Z`[\[YX]XYUYWUYPYPUTQWRNULPULVKOOSJOOJRLLOKNOHPNJMPHQKNRMLNPMPKNULPPNRPPPUMUOWSTTURWVVWXTY\YW[Y]\_[\`]`^`acdebf`ihflckmljokmpmvoottuuuvvyyzzz{}~~~{}xuz|u|wvuvsxquprpslrnnnmmkmilfighekffddfeecd^ga^f_a_^`c_\_^cZ_\aZ^__][[bZXa][]\\^ZaY]_W]bX[bX^_X`^^_[]b][b]a^a_]bbab`b`j`afdcdedfegfehgeigigjgmfijljkiojkokkmrhtkpnnroorrnuqpssrvqvuq{uvuywzx}u||yw~{}~~}|{z{|y|{xxywwxyvwsxsvutsxpnysqsnuosopppqnqlpnmlnklolijkmiilhiigfjgficahggcahade`d`dab^d_b_a^_b__\a\e\^__a]_`^`^\``^b_]b`b_ab`dcaadeedcgclafghigjijgqemkkpjmnpntlosrpoussutxruwzvwu|yyy}w~{z~{~}|}{yx|zy|vuxvuvqvqrtoqrnlslmkjpejlihjeifdgaibcadcac_`_a_a^^`_\__Z`\\`[^[_]]\^[_^][^]^^^][a\c_\`c`c^abbd^edcchcdhfghdhihnelljlmjomomnppororqustuswvvvxxyxy{{{|}{|{}}{~~}}}{|}yy}zzyyyy{vwzvt{vsxtuwtutsussqsupqqsotnrqoooqmoonlommomnmojlmljjoiliimijkhkjikgkhkijjihmgijhjghlhjjgkjikiiljjjiklgohklmjllkmlmlnmnmnmomqkqppqoosrptostupsvsvvuswxtyyvw|xw|yz}zxx|}{~{}}|}~~~|~|~|~z~{~z}|{~{y||{|{y{|z{x{x{zxyzyxyyyxzwwxxzvwvxwwwwtvxsvvtxsvstvtvsustvqtursuqtvotsrstprsrqsrpstqptqqspqrsprprptoqrosntmrqqnrqotmroprroqrounrpsrqqqrsrqustssttrvvsxswuuwvvzswywzwwx{{yw|zz|x|{|{}||{}}}|~}p}m{|xr}}{x\r|b|}spzpaivq~vqm{Svp|Erm}sxmQabsqz~W{aextwelu]{rlXwdqec}pp]i`ZKoxspqisoPuMuz[|rdxhq`egOy}f~_yunVzfnw}[ukrpgzdomn{^mAO{Soi{~ufn__tdhlywwz`mxwvcx{pwu||ptotidz||jw}Mr}e]p|zjZhrflokN~{l|{xg[uykŊYhwxe}pxz|qh}ep~Rp]qfk_bysosnwzxyizzu]{b{{u|Kfiwsky`uawjms~zlw|lyd|wtZVQpfoh_eeiTibd{qegarX}Qxm^K?sS^k|qw7s[yGjmwSszJqrZdvve|k}rThh~cvsrrzdsshx~fwsv~|jvm}r{rvuiQ{Wu~}h~rqu{c|uyswkihVpxoc}iy~]zs~~~{jgt{^e}v{}tvrkxdvsz~rtw{uqzqvfVosvp}K~`v|fkfv]ptoiorc]^k|dd`yigkEw|hk]a]akErh}egu|obNdllYufymmaf{xorOSwvrwvxtiwks~f~d}koypbv~}s|v{~wnzqoyr~rqkfqpwo~zzzw}l~z|r}rwu\swufyf~jn^j~{utf|Dznmuom{qsjoo{}[euz~efkooyofpufz`vksp]kp~xy|susrosruj|wtl{cx}ld}q|vsfqxz{vquqgz|}zmuutsu{ym{rwfnpwnrxdzyktZimnwsmryj}zrprxycp]woytw{Ylwuupqbzs^}qhoueumudysyorbtonzh~yoh}}usxp~{jpsnw{uyrkfaw||lwwp{yxivvwxsy~{}{~n}~ugyvu|xwywp|~z~ojnxok~z~vwnwmq~qylezsrtwunotio~|~qqfm~tlq}~wlovqmtnukucj}vnnyzgjrkjnn_}~vqosspl|sftsusyrlvtc}lezmmoovztvbfxnmpyquvoswtzmpstgn|ozusrv[{|qzlnvtwssvo}~v|x|~|{uvtz~y}p~y}~x~ut}wquqz{{}|uw~pvvtryw{{mwonozgt}y}wymvy|nro}|ouppwoquz~nkto{zrgmfdko[qvkutnrrmtn|zmxkyl{{in}vxuptjpqqvi|ypmvattggx|hrmt~rgr|ryrsuwuwzvrwqrg|ur}xwzrx}i~}x|{v~zk}|}xwypw}xu~sw{{owytv~~~qw|ny~z}wwo|~q|yxsssv|z|xqzzspjtl|quuqlsrtuewo|ybpxpkrtzvphy}qzjx}mlcknwiyzwnk|~pey|hzzmxvqtujuhjgo}w{ygw|~qi|ksyhsk}{tysvyrsxxvkhqzpxxvt{v{mzqy{{wwyvz{}sm{~~xtzxv|ut~{syxzz{w|~{~|}w|~|wyyu~{vx|pow}|~yustz~suzoqzxw~v~{k|s{ztwzszn}q~jl~~z}|~v||qouhxv}wg{|tud~xxv~qvm{gm{x\|nz|j}hzsfwo}jxjynutoa{~p}wb}msvcln|yk{iowolxxqw{o~vo|zi~{lrwyl{qp{pwts}}||~~sxzyk|twyzz{}v|unzxwuxr~{os}~}{~q{}}{s}pzuv{z|wzyyt~uq_]yeY`ZQhv_KE_^QsXMzHf]YyGjeul}{pxio:{ł:amZb[PoCYtOW}}Ri|1y:f_j\fozg}^d~iycC_\{mzivbsbftZ}w{;m^aprqj|zm|Kw~|ldrlv[tb||okzz}cyyhwgtetydypxvh|yxvruwvnuscktv|qq~tq{m~sxq~z~issirq|pzu|wrgowpzsuwyytk|jxzr{py~}}xyvfr~us{wxvw}~zz{{}n|pr}t{ww}yrs~l{{}sy{z{yv}ry~l{yy{~zmzu~qrtoq|o}trxv{~qtzuz|yrxvwwwwxx{wz~q{qsw|s|{}v}w{|t{||uv|u|y}~{~vuyu{|w~u|||xu}{|~}~{}|~|}~z}}~}}~|z}x{{z~|~xy|}{|{|~yzzt}s~xxyt~t~|xyuww~y}z|ywzy|zywy~wyy{yvzu~zw~vxyxxzw}vv|{tzz|wvzwx|ztvszxyxy|vzwwx{y|wxzww{}vs}{vvxzy|zxzy|wz}yx{{v|}x{{zzzx|~yy|vzy}y}{}{y~{y||}}z|}|~|{{x|~{~~~}|~~~}{}}}|~|}}}~}~~~{~x|z~x{}|{~}|}}~|~}|~}{{}}}}||z|}y|}~z}}zy{{z~{{~v|}y|~z}{y}{}{w|~~y}{y{{z|}z{zy}{}x}yw|y}~tw||{|zx|{{z{{}{z|z{zz~zz~z|z{{}}|wzxz{}|||z~||}x|}~{{z}z|}}~{~~~z|{|}{~}~~}{~}}}~|}|}}~~~~}~}}~~}~|}}~{~}~|}|~~|}y}}}}}|~~~~{|}~~{~z~|x}~z}}~|z}~||}~}{{}|y|~}z~|{{z}|||}|}|z~yz~{||~{}}}{{z}|x{{z{{{}z}y|~}z}|}|{~}y~|x~}}}zz~|z|{~z||{~z||{|}y|~~}}}}||~{{~}{}{{|}}z||zy~|}|||~{|}|{~~~~|~|~{~}{~}}~}~~}~~~~}~}|w~~{v~xtVPs\/Ve_d`afqj\fPo]&}GrpmlrojHkSrx~ØξȦOԊWl|`LreIm>igb>lDa]Fig/`y7E\ha8S_vwZirK{Rrs[Slx~oGOy{QSluTX9gfQt@O_|pG^VFjM;_`w2BdEHZkJ9rW>jnCzXcq6UHkyyqǻWϙÝⳚYwƵfbʯ|sv@nuX\yiQTfA^}w?Rd'jTK[_FOWZq]7gSsm>Yi_Re`hhOsUmxxboȜǭʸߥϞ˯Ҷūt}{zx~haoj=g]RcjlnMACg89M<.18EA85?7',099$07?Rp FP'6AkvvjX`?c4U]kN]e\"pkku{gboಽʉ©޿¬ñ|uk}xlubLCdfdNbeX<_K)7D6CN=94M,#?*!R/"(+47)10'/ *+3/..20DX@1QC;FFQMRSZW]gffhwklvyy~ԿMǸږѣͣzc_o{son^DZwcr`_YVL&1<[L2fNFHCD@D;?8"#10H)17 '9K47 51)B+<40-+ "<]3(W24P* NS3(33D0=@[Y6NVSH[pogbrks١ӸíٓѸū~}y}wgM[GJAOkPZiVUQONIEFG<9?;- L=0 88/+#0-( !/-()''&$'&'#&'!(*#90+'*+##3@91;=3'3("#O\LGUQTC?J6?-;RSoB`y[`[vUjXSg_Xugձശzx}yvi{kZ]igOah[kozl[ag`V>E[[NNOMHCDFE)6CIG:><86'$4!)@1-(+)')&-+!%!"""#" '%$.)!&&2-.2-317398:986%0=IBANOOJQQRRRX_XMTgW^ZhfIUpr{{swnrvrytyqſĿþ̹w~ypyml~s^gpm\Whw|hPjp]db`RRBZVbV:,BU\N@H]TXTQLCAF>-(!6ALG?@?8:0)05D=4500745/' !*83111410-4-('>30238.&(>;464=;765654=BDE?957>:5"7-,9;;?9=55A>:-06?5964BD:,+)6BUIGBCCC:/AGSMEERBBNVRSTU`XX[XY^ka\SQWgopuecpztolpstzjq}ƺȷƿÿͽ}zoryphoptxrptyv`hkngYbltkaZNVXUfvh_LPVUWdYWB<<:@I;KHA0-4<@>F>KC73EOOJA8>GN[KJCHKHDQea][b\WMVc_b^UXYgleerptlggae|}iywpy}vʽǰũy|~uy}ymsxmmvnvvx~yg\fdotskwdR[_jdbhn]Zgg^[X[ZX^TYafZXSEAVU^aORS[WLLQSKNQ[M4DGJNLM]]YZN@9>9@INIMTN>JQNR[\J?;BIIOLOSNFGSXMKUQWQQRVXROEXSQMXXY\XXXb]T`ZSYd^Zbf_`kbkbgjsxkehZermrllnukq{y|yzzxst{}ntz|~~ty|{kml~z|z{tposmmaespmpijvqtpda`[^e^bakjid[bdjmfXWUY^__hebf^_VVTTbfbX\bZTPRQaSTRpp[X[O]]Wc[PGYSWtMSTRd\Dewg][fJWFN[WgpajiWJOcjs_f`ghVbcaZ^pe_heLV\Wt|aWudnq`\Lq^lIYgsq{ySLjaz|hsi{felsfq`y}|lt~i{vl˓ɠwt~~pwxygvvatzmwtt{xuhcmpgrk^wxfnhugx]X{elzVyka\s\}vlBmstOt`h~UMpIqy=eRd{=P{l_ZhUbR]`KeLaNdybYOAYTPLajJb{Xj^<`~5DjXuUb]adjo{QeaVOOiiyv]nZ]uiBn]rojfwnrcos]tYnyuxzqdaypP|kk`u^w~vxhn|um{|~lr|yX}z~}}u|x|\tskvy}~{~tu|rvu|xtxwpkz}dYrtu|mxgeob`cgrmrh[{hrbPonvh\Gci]fhSgp[c[T\}bYck\]anaLVWvbWSlpbg:U\W^XYw`TL_VkgXUafdfYvmWco_YYVqu\mXkmlao{ZcriprazWpcozlWowp{ytlz|ePmt}ynxyhYq|tyr}tsv}^u~~|{zu{_{xpuz{}n~|}~~oyzf|v}qyzwrlz{lnhtwlu|w|rgu{Sfu|gy}uuOYjmctq}iijdnxmodu\ijgjtn~u`jlWg`clw|rbe_Zf_jrh{r_XjwvgkhSbx^[qkl{{e_heg`lnnddlr[pvauqs|xsVdbnndXf|ozmokss^]{iovzsXjtlvlqtgyprpviv{q}p}w|s~~o~yyz~~|}yu|zzvr~~mvx|wsuug}y}u|quqzpcyuzrs~wlwlqfvryuus|wvsol_wqn}]qrzshkdxr|mlcsqm~{hpxphozvjwwmcmosyk|}qouqqfiz~p|bw|_krcrqfoiwromwrooypv~o`hoirkm|yryer{k|q}fqu}~yv{vppsv{{guxxz{{sr}sx|s~}}vt}vz`smflĬL^cZuhfvEu^yY:>zIhy{NmnspU][d>[8}n|Dez*xB2jDmsPMJz87g0ozRIhbip|lZpx_]9poUmd{p^w{UsRsroik_f`7}GatrRy]yWkbg{cOviyKpzWfstimpowme{b|Wprttglv}~hbbqnuovzws~s]zxjioc{vz{s~}l~mxqzuorbwijoX|w_x|`Tqnn~yjs^eniy_j|qr|o}~sq~z~wk~ypzyl~vzpzozynupqx~uokyfoidsv}sdqwjlssvcsuq}d]yimnuov\wrwcoznclz{y_wyeruzkwsyzojxuxwsxsv}voyuz~t}{h~vw}}x~|{|}}u|{{~~|v{~z{{~}}t{vvrwq~y|y}ur|}~z{}{w~w|vz|tz{v}~{}y~xv|y}|{{vx|qykzzpz~tqzpqtpzx{}utqonmomotstruxyjtostpmtklntpnrkhlsrnvysfpuqopuiwwsvijotunmrvxrw{mplmywrts|tnuuywuusx}uw|}wu}{|~yzz}yy~zz}}~z|}}~{||{v}~w~~~~~zz{}y}zyz~{{}|{z|xyz|~~}~v}|~~z{}{}yz|~{y}}}|}y~z{{~}|~}y}|}~|}|~|~~~~}~~{z~~~~y~{xyyy~|w}|z}|z|yzzxuzv}zw~w{yxx|s|xzywxywwstxsz{~|{}{uz{xxwyzzzxy}yxox~vv}yyuwv{wv{xuyzwzx{turxxyz{xv|zzv|{vyyw|{wzy}yu{~wx{{|x~~w|}||wy}|~}|}{{~}}~|~}}}~}~}|xzw|{zyzy{xwyyxt{|xx|~wyy{v|svvwxvpoxxut{wtzyyuuvtrrrpottvyuvwtvqooswtqvrovqrtqqqmopwvotnrsourpourustupwtmutttpuxprttxrs{wvtvuwwyzuwxyzw}vs}z||w{}|{|}{y}~}~}~~~}~~}|{|x||{{~||{zu}wyzz|xzuw{{z{~vzyy}szzyyvwzyvwozywxwwwys{ssuvuqtsvttvw{rsustsruztvtrswrvrrqsxwsxvtwroqutrsyqu{vuuwvsvtq{ut{stysuuvyxvvxw{wzwv{vx{{xyxuzzzv}{zzx~yz}{}|{z|~~~~~~|}~~~~~}}z|~{||}|w}}{}{x}v~z}|zx||u|zx||}tvxxuw~zxyxxwv|zrxvwtsuyzu{yusyyvuysvysxwurwsquzutxxttwuttsvtxw{pxvrvwtpzuwruyvuswsxtwtwzyytyuxztuvwxvwwyxvxw|zrztvyz||y{|{wvy~|}uw|w{}{x~{{~{{{|~{z~}}~~}}}}|~}~z~|}~||}~~|}}yz{|x|~yx}|{y}{zyytx{|zxyyvyz}{yuzzxzv{x|y{wrwuxxwzw{xwwz{vw{zuwtvztvxz{w}vxxwttt~tyzuuyzwy|twyyqtvxxuz{wwtyyxwywuzyzztww{xtvxz|uxwzzzy}{w|vy|xyy{{zzy{}|zyy}~zx||wy~{z~{|~~}}}}|{~~|}|{~|{~~~}{~}~}|wyz{|{~~|{{|yz|O]dJeZyuqGl|CRatcRirl\tIW|ePtXedsz_e}zo||jus`Vl[sw{wu}UdvnwgsOplr[|wjh{Zzunvzo}wjoqmzw}\zxy~ek|knutruau{uy|u{vmi|zwpsEP`@ijxuEuIt{ipvynjt}mot_v{_lnArm{w_zcmkzfm}rokmwglw~~ps{fklgo]|}sX~jo|gnVxjw~vnwlfy}rjvafyuqenGvy{xn}oe~ttvxjznl[pxtcrdqq}i|x~xpglfdig9\[@_qvTcr>`otSzwb_sE~Qxt-vxh‹zSY[{xggjr^v^`rrh}{plYKf|{}zfzpydnxktuJg~tipozzgt_|evh|wnjqSdgnKwkX{`yJStaroZg{fR_zr~ngW_~h__[xKeXdfnn\_jZ^ȝmVt0afc~)sufyb__qp^mTfcdGalahGiK\b`r|~tscl[Zg>sN`lt|jx~Ialovwxdy|zql_vwxlkNxim\yryy]o]Xr{k~lso}p|egvwn~adq|gub{guptehosbkt{r\cgsyZwxzl]mxy|wkekavo|lxij|]`qtdr~xxldlu~~|{nfuwVotrSmsvcqyenpw|{~tehjxuoxsSh|{xvrihbq]|uX{{rzysx}[QiRm}n^m~l[`w{{qhuXotmpoume~pj|o`hrlzo{zd^|nfnx~y~}[hgjbqurowp|^|q`}xcl{svt~pmvypkm|~p~~tzyu}p{lW{fk{}zwrwrxzVrobu~seoi`wkhltxv{mkz{|dl|u}|}q}iy}~sxerr|skcnqzu{{uu|zvhi|yg{{r~zhmzl~ph^u{Y}awwospuhtz}x{{zhmn|kizjgy_iyuttRr}y}g|{~{lqx`ciiwyq||sy|j{yof`}~sw_h|uyf~uvneu~oe~zi}vpm~ysl{|{oktrmp|~yq{rkxro}nz}vyv|wjpsnevvnckq~m{yYzbbi|iszqcrywywzmeo]oYKfG|sWG7KEmpeúEXTwAW>[`at|igk\GFZ/s|m?g+s5Bk.oa?nCYZhDWnZ>s]sR^kgcfvejv{y{Zϳ۵xՕt|ǩcdde\yqcu[wH?qgbsjTk|\Em\a[SeEvtc{v_lTiwow|^kVSPk4gj_AZcO62;Z>;H=2?72EHF.@EG8?WJMReA4^XWBflOgVau\`hhlu͟uͪȼëȴЧϿ˟ƣmsPruT{_Z^OoP;ij[<_a]E/VKJOEOADMMMMPWqUKamJ\hc]in{eglz|lyϽǫѴȲ˸ẼȽvougpdcEehfSKjN3FN,:?33=A=NI=IUEMSOZ[bleg_ex{u|·ȾμޱǾƽ}{{tsstcah`SKVRRTRB?BL>S41,.#/!#, &!  ,  (%-6++>24CBDCBHJNSW]fbejnxw|zɺsqmkgb\hZVZVOLEF@;DB=97002.%,,%-#%! )!  &5,58/61:OCL=4GELRY^]ocdhrt~}˾ø}}~wyxxungg`ZbXWVQFDBMA>?;99261+,)&$ %%'"%'$6.0%,)/7:7?FB>5?OLQOR[QWSYXRcnmirenkq~x|¿zt{|xpoqoimjsvd\S^eg_YQV?KBPHIOKJD:5DEC>80632.)+,/0%).)'%"%%!##%  ! " !#!!#!!" &)''***+-+,1716<97<=>?>?CFHCDQQQUUUZXU[]heh^eeepoqw{rpkrz}÷ȼǺǿþ}z}x|outupokiwqnf[lgejcZRSS[RRR\ZXIVLAEAKFKGD@BD9FC:<67:=?=.3;2.--;44/'&),03/42/)..++,%"*01+5.,0-&%,231.4.3./0899:73+.8B?B>@:>KEMDLIJNLMQTOMXZXYX^`b_fdggmklvrvxzuqr}ztõƸĿ¿ƾ̿Ľýȿ¼|xtttx}qirmhkimxxve[djjj^VS[Y^abb[VOORSUSLJLMNOMFKE?SC@EFDB<=FGC8>97868:=B?<4+8<==7==/166:2549;66;>79>48:D?DCA>@?;=B@?ICCDIIHGFNTSOKMPYUXXZUUXSJ\`djde`cjijrpmrljpy|xuvvƶý~w|t{~}yvrijotnrqfglgklofjk^d_aefdaWZMOW]Z[WdZMOPJK]ZNJLLMSKHFBBAGJKOHKPCBB=D;;?>?CCC@CGC=D?<4;Ca~R|ed~|{ymnZhq\}h~tq}~SamzXpwqxd{q\y]_st]ssl~vv|ero{ozq}{q~[cq~xxyeuv~g}mm}nep}r|~w|jVxo\i}{pii{_[w}f^fdo`TloNnjtVnoy^jYWrpUq]hhd][pq]pb[if}QnR[if^|tknK_~_lzkvmxfjpvzzp{expov[nr_aq|}mpy}qsrw{jyqvzss~zt{wojr~Yrplw~xjdvpicYpmq}ntp~r{unYj}Wq}m|Zm`~^zsww~wsqvzuqmgj|vzqpg|_r|zzexrtp~{nouvc}{}|sdgxfvqio|rrw_l_cs~zp]\iq}k|usnw{koyoy]rswwwuvr^u{e}Xt|q{{pbzhjj{xuygfpme|yx\yumpzouhkln}|myqvuuir}lsfkmtlpwg{ykzgyro~wuv}sw}|rrpz~is}r}}v{p}zzyytyjr|ovpzpptnysv|zp}q{quvo{}tzl\~}q}wYho|wo}co{r^uqqyd`|jeoxkntcoeUqp{zjwVw^dy}jwomb}t\ixy[kzlf~rjryqt_sdgky~ntmkrgynmzhguywvslaj|oqm~}okxxm{pwqxonvx}rsyxwj|~z{{wynw||u|}y~{{}uwvtw{|zz}typ|ozwryuzy~xj}wtw~x}~yozsozvo|eyqyxulewxximwuwenv{pllxhnfu{epk|rqqyws|kln~hq{nufwonrmrvkg|etple|nb{xuu~ust||no~pmxzlzpuunzvotu}eqwt}fo{wgttzv`xvrur{}v}|z{|r}xyt|}wr{wv|~o|u}}}~r{z|st}|{~}rzhw{zz{}kx|{wvv{{uvkq|}~wvxsruwz}fuzuewpkkysdvwqpwwx}|eq|{rpwx{ssrfznwwprypr}bwporq~wrmojvyuxslq}zywomfvxhyhzoy|risp|}f}zrvg{nspvw{ztnyu|sywiw~t}}v}qzowwy~{{~soq|vqxw{|{w~}|{~~{z~}|}ox~yy}~~wuszvt}xy}w{{{~ws|r|zvpz~jv}y|yzrpqmtn~qc|~|znu}y}fqywyuuytrymzlyxtltwr~nloyykuxprs{rs~uqu{qg|xwozuxm~u|{kyukg{vfq{u{{ww{{sp~to|tqk~z{nqz|uzup{_w}wdr~qupu{|x|u||qoq}xtw|rr|{pqw|yu||zyvz}}usyw~~}~{tz~yr^orjo\Dgs_}^GOXl[PVh_VeW~Rwp|c}u}~gtiqAoAZi^caTuB[tZX{yVgz9{E`ko_hn|f}bd}l{aM^azj}jyds_l{}^n~|Cicauwkqul~{QyxZjaootn{qy{{kxrxiu||zhxzrsk|rt}~wz|woy|wtufq}yz~r|wwtz~n{yv~q{~tf|qjyo}}nuv}dq{llxxw|xvh|m~vxs~pvyztwpcp{~ruy|tv~pz}~w}xsl~|piwp|uytynrzo}}{{vr~xuzwyuwxopzzyzj~{nvxrt|f{rv~|x~qz}u|q{xvx{zwx}r}u}tt}vu|y{s{}t{}u~~{~x~uwv}{uzvx|y{|{t}zu|||~x}{|zuz{~|~~~{|y}~{{|y}~~~{|}z|x|}}wx}{|}~|}|}u}{}z}v}z}yzwwxu{z|uzxwyyy~yu}zts|wyzwy{z{sxwx{t|{ox~uv}zxpux{xvxvtyx}owwxxuzuvvzvxvxzuvxwvy{vwzv}wr|tzzzxsx|yxw}xzyxv}ytvxxvz}wyxz}|yyy|u{~yy}~y{~}z|{~y~v|}}|~|zy}{}{{|}~~~~~}}||~{~y|}}}|~|}|~{~}}~}}z|~{}{~x{z}y~}}z~|{y~y{{x~{~z|~x~zx~zy~|{z{|vz{{ux{x}y{{zzyzy|{vz}wyyv|{}v{xyzyz{xy{|w{{yy|yyzy{zyvz{x}}vy{zyzx~}z|x{y|}z{x{z|}x|}}|{{||y|z}|}w~|{~~}wz|~~~y}|}~~}{}z~~~~}}~~~}~~~}}~~}||~}~}~z{}|{}|}~}|~{~~|}~||||}yz|||||}{~~{z~|{}|||z}z}}{}{~{~z{z~}{~{z{|}|xzz{}yy}yz{}}|x|}|y~}xz{yz~}|}{}|x|{zz~z{}}}zy|~|z{|y}z||{z}{|{}zyzz}z|z}}{{{{yyz~|{~yz|z~y}{|}z~{|}~~{}{~|}}|~}|}~~~||}||~~}~~~|~~|~~~|~}|~~nBzbuZU@8BQoVǑ>f̨jN^pC|Pz{RLggjuzqftNvj>uF\_u8`YAf\|lMoCwUUanYUnqEohuZYlhponouu~yUvԾïǷծВsfmYyky}Xi}byuLp{U@li`isOch}iDyg^m{lcsYDz~GptEfWq~hg~m3r|~}jJbuWXXfND?2dzJQ7MqZ-LsM0XH>KWN?ejP5OjaE[qW6c\ZVopfvfn{UjhlhǤ͚ɺЯ͛|l{xi|wVhSKoZkjc[OkLG3KM`V3PNNOOXRKOTMNSY_SYfjTk\chowoiutǫ̵ˤ|ױңlʬxqzqvh0cuwa)xsWWfU797/2>KG39o[C)HhuKF:?CMMQOSW^V[ga\vzr\z^lqqyyxƬ¥øԴ¸}~|}vyuvmjI3b6IbvdbRC)3*#4YH\]IB>O $B] CX6Ip>JS5 15:JK(IFvq0Pfl'ZxSNR[bdbgoloov~ϙ伕̯íͺĸå½qurYbqwynoohhhea^WO7__H.Z_ATVURCUJXniYaRjSaxpt{fcz]{ķɶżʳðwz}txmhbrwn`Ttg]XTIOf[[k]UOIINY>8?WJ=JE<=7$,'-**:0.+)+4)'(&#!# +&"#!!$""!"!%#"*,#++3,.311563:8-8;FEAB?LKMFSSSVW[WMOFGNdqfrwoutpnvrdo{{unq|Ǽ;ûʺùľŸ͸|vqxynow{xjs|wyihY[f^ahbVPTc]abXSNHLDASXN[TK99+"53*+284@0.-.51$(0-,305-.1.&**03/'-38)'+=95778997556:7.?>HJGHCEPKLNPUQRSH:E]f\_cigfh_ennyrqab\o{~ûëʾĴ۾ļϿɶԸ}y{xvlqs|{ggr|uqmpgXRN^_bUN_kZS_^jinXQMA:FPQIHHLFEIMDE>85DM>*9CC.-9AE?8?@=6%#37>D=80'&$"1978486B82)+==10-(39E?1,8HF=<9<=9796GJCH=:HF=BQROIGBDLTWJGP_f_cZTkhbjifg_ZYbtvu{wwwuuxtu}tþķDZ³ǹ¼ñɾ˽Ż~os~{vo`dcjs{si^alun\djlnZYV^blh]QT`fYRS_\MYRSCEIUSLW[V<:;GSQVZPB0/AC>>JQGCGB99;@>;B?BLF@,4BE;23<@FM;CF9=;D=,0@KPUL76>KRSQTSSRON_iUXZX]TJP_ttck[Yroltmmq`rfhm}{{xy|û¬z}q~vm|{{urlmltuuufims{oXfggtnad_cl]^Zglb[ZafaUYdQTUZIJGOZfviTEI9KOYVNLQSPL;8EHCEKOHPEHIGF?@NVbfWGKG8A?BHW`[GSLSNLQMRTRPS^\^^SCOMXRYeild\ORU]XZ_ofkrmslc_fmjZfuwxeds|jpho{z~{lp|x|}~z{z{y|~ks|y}oqvnoqwrePlhtsVrgRgUojkbbs|b[bj_`_coZ^]`qi^XT^TbXZbkO]WO^jNG]QSfXP[VgS_jC@`]H`ZgvD?rI@]l_PzUGifTC=akusWTZ[c[UIBfhocv_h^Vd]UpNujHW]iren`hp}][gjlaWtpsgudQ`Wgpsivjvhjtvsrummdljqdqxdpzvt}~|gvmqpo_pl`|os}x|utxhP}zyhs~pYTlwl]\=ufnjfswzg|fOqho_bpit]_j\q]EgNomepdUgj`]aVaM[_hgj9HVseEM}P[s{bQJtU>[G^UafUYhbW]L[]\r_QsYioeXKblbcdhucd`taouTHrmTpwlZvgpshjnas|ocgxxtwsdpojrtg|nzrswfzx{q~w}}~{qj~~crtqm}s|{mzyiewwqkdgjhwxxyx{wopx\]wmoyku}Qzc``fjarf^Yir}d|Z[YLaWTanc\sj^MZe\4S[njtrQhW_b[^lV[NN^_wQgk[`^cdTRlxU[[Rn}[`RSlhc_UnodvbrYswYrGXly`t{Qeo{~ix{pvcgl~|py|qo~zo|sr~zz|at}u~umy}|m~ykvs|{s}}|~pl|vxs|}{|yixlvm}kexsvlsjemhuziwnumiuzinw{hsx^iik~|if\clfaf|tuhvsncsncU_vamw]_lk^p}mdoheitmaS_z_syailu{PSekihZerso]nuqU_{lsq_igefmy_o}cj[abuvuu|~qyohomj\yzu{ev~m{t|u{p|o}x}~~{vxv~~~}{x{{|{{}suq{{k{}wk||}sys`uv||vwpxwrtvoun{ytwt{intpkti{tqvmloqyvt|lwnhjpdmsttpopmqupopnuumnhowkmjkxrgqoim}tlcs{|z`^ggmAeK~aN7qsGSj[e]W_3|yoo^{SpH~7zNlpenztngZ]¤WF|Ux;NEru?i]ZrUi}Be|QPpg{\gqt{gzm~umr]ɠ̭ܲƹĝjĠgvqmw\|jcny:i~ojp`}Mf_aKz~Qnryv|g}jyvq|~{WgYTpcRuXS5mgLC@>RM3DP12F78G??3PG@-OC>KPW5_h\?LjRQbMnyiapol{wЪȵ̤˱ğ{xb|~j|pbjqJqgYgTjiGk^Z3IW^_;K^FYFNUIKNUYZTb`U]uPZjgijurarpuõíձʷʹԮʤxo}{{`~qgSnjvULkTJ[Z@T@>P>CIE4:<59777.=B75;3C8A*<=>ALK?LGGPWHQ^^Naacgebosnpvvsv{ŸִտӹȽϻƾïvqybnoZW\^_W\UF>MHE;6G8/16(1 .-! !% !# ''!12.8;=B??CLNIRZ[Y`gllquxʿ~}zwvpjdlcZ[[SPLMGD@?H@>:1...+$#4'* "        ##)$,#+0-471>6ED9HQJXY^Wjhjmonty{̿ĵ{}yssmqigf`U]PSQODJGF@::510/++,))$!!  !!!'&%*.+(3,536;7;@ACBGHJNOKQPTVVW\\`]`daijmhpiowruxtw}{~ĿþƿĿ|~|zw{ypzvvmsjhpfkjakff``_^\[`M^VYSWKSKLNMMLOJHEHE>H9@C;AB?<=7CG=E;?D?@E=AAAACAGC?EDCGGE@LFEGFGGJJJJKJROMMQQPPTTQWRSYWYZZ[]iZZgZegbdhgmgkoompnsuq{tv~~}|{~y|{x}u{twqswsoutolvomnjnndgjgefbceafYia`^^[[_]^Z[WZTSWUVTQXRQPSSRNSJKULJPKNOLKLHOLHNJLKNHKIHLELIJLLGKLIHKJLNJTJCNIMMMLSPORPPORPQNVSTUTXXWW[XU_ZZ_`_]_d``ea_ofmmemlknhptqusuwwxx{u}~~{~}~{y{wyzyx|uxytwostnxsqqnjorjpkjnimkgihghgcjgdcf_ibf`_e^e[c_\a]a_Y]]TaW^\W[]ZXZSZ\XZUX[UVXTT_U[[WZ\WXXWYXV\ZV]W\ZYY\UXZ[b]^_[\_]]`__da]``eeaa`fededfggkhkejnhnkirpmppnrpqrorywytwuxz||x|{z}~~~z{y~{y|xyyxwxxxu{uxruospuqqqppqrmqnolmkngkofllhlijjmdihkddfgffkjhcdeg_hkccdeigff`hc`he_jgbiabhcgfeigachdkfhcggggghhjmdjiiilhkjimgkkjmkmknlnmmmpklknrjrjnkwlrsosmqqpouptuossquttvrvyuvvwvxyyt|v}zw|z{}}x|~~|y}||y{zzy}y}wwwyz|wqz~u{pytzusxuwqypvuwtotovqrnqpqntrmpqmoqlpkdnmkmgnihmikfjhigkifggdcigfaiagccehjfdfcef`dhefgbddeeekgijffejgkikjnneninglkokrporlsqonuqsqnswssuzsyqwtwy|zwvz|wz{{{w~{z{~}|}}}~}}}|w|zzzvwyszysuwpuvpsqtlnurpolloinjjhklkmgkkffgifgeifddhbhfbjeebfeedhbecffdgdjceafcdjcgkifggihkcemgkokgmmimkjpkpkltpptpptoqqrpsusrwxwwvxxxxvzv|{|{~||z|||}y|~~}z~{{}~yy|x{x{|w{{wxywyvyw{vxwzuwvwwuxrvsstwqusqssssuqstsqnsrnsntoonmnpoqmpnnnoqopnoiplnmlpnmomlnnmnmmmmpmmnkmojololqoonooprqnmoopoppvqrqortrtrtwrssytsxvrs|vwyxtzzv|{y{|v|z|~|{{{y{~~{~}~~~}~}}|}|~|~~~{|}~z}||{}~|z{|z~{zzz}|z{|{zz|xv}xxzwzzvyv{xxyxys{wxxxuwuu{tuwvuutuxwsvvutwtqtwsuuruutruttttqvuuquqpssrpuqwspsrsvrpupuqqrtuqrssqvqvtvtttussxrxtuvtvvvxvt|vzwwwy{yxw{:Bt+QbI:Ib+:I2B:tBkZQIIk"Z}ktZt}Q}kZkttk+BIB2tZZBkQtkkIbBbBkkQ"Q"tt}BbbBZIZt}BI+tk+ZtI::2kI:}:+QbZbZ}+tkB+bkB}QQbQbZIBI"ItBB}bIBk"kI}QIk"}Qbkt"++Q2+k"Z"Z2Z}QIZbZtQIBQ+::Q22tt:t"++:tIbZZIb:bkIbZZZBtQtQkbBQkZQQBBQ"ItZZbbIIbb2:IBQIBZQB2}BIkbbI}IZbBBIB:BBIBZ:QtQk}BII"IQQk2}+kbII2kk:BbktBQ}2Z}I:QZ:t+:Zt:}"B:"bIt+k+:2}ZZ}bkZZQ+::2Z2QQI+ZZIIQ+ItQt:Q"B":2:IBQIb+tZQB}2}:k:"bB":t"tQ:B+tB}:"b"bQB:QI22Z+IbbZQQtb2+"Z:+ZIkZb2bBtBbZ}"BBb:bkBI"""+bZ:Bt22tt"ZIIQk"QQ2b"2Z"QttZQ}b::k:B+BbZIIBBZ"bQQIZ2"QI22ZI+BbIZZ"k+:bQ":+QbZZIkQZt"BB2Q+B::bBBQB:BZ:}I::IQ2+kB}kQ2:Q:+t2}BBIk"t+:bQ}ZIbZ}2"t"+B:k"t2:BBQ+I++2Q:Q+Q2b"I"BZZ"ItI+b"bb+k"bQ"kkbB+b:"t:BIIBbbbt:I2B}I""IQt2bB+I"b"QZ+2Z}+kQ"B}+k:B2::Ib+:++BB+2"+Q++QB:ZZIQ:b"ZZ+ZII"Z"2B:+IB"IZ"BB2+IZtI2IIBZ+:2:Bb+"IZBB:+I::QBQZBQ22IZI:Q++bZtBQQ"B+:IZIZIttI:tB:+BQttkIBI+bZItkBZ:ZQtZQ}::+Z2:kZQ2I2BB:"Z:Q2QkBIIBtZ:2}b":2Bb+tbBBZ+IQ:Q}2t"2+:tbB2I:""It+:b2b:}:I2"I:k+2+bQII2Ib22B::bQBZIbIZ}}Q2Bb"Q22"BQ+}+}IkIQbBZ222IZ:"k"ZtIt:k+ZkI"""kBZIB}22I:B+Q+Z2B"k"+}Ztk"kb:QkBtI:QBtBbbBBQZk"+IZ::"Z}b+bIQb"BItB:}IQQ2+ZtbQ2Z+:Z2QbQkQk:+k:BBQ:B+I:IQBZBkk+QZ"ZI:Zb:}B+QZtb+"BB"k2kBt"ZbQb}QIZ2+}QQQ"Z2}BZ:Q""}IkQ"kZ}I+Zbb"QZ2+bQB"2:B+Z+Zk:BZBkZ"ZIBI"Z:+II}:Z"}kQkQ+Zk}Z2tZbQkIB:}"}I}t}Z:bkQbt"ZBkbtBQ2kI"22b2:ZB:ZQQbIb:k:IbIIk::kQZQIIB2ZBI2QQBIkZIBk+QkBB:}IbkQB:I"kBIB:kt2bk:tQZQBB:bB}Z:tI+BbZBB"IkIBIk2tQBZ:Q}+Bk+}bttbt"}kb:IZkk:ZQIZZII2ZkB"BZb"}ZI2}k"Q}:B:tZ"QQtIBbQbZ2ZkI}"t+ZI2ZZ2tZIkB"Z":}b2IBtkIkbQBk"tb}BI+Bbt+ttZBbtBZ:Q:+kb:ZII}tk}b2Q"QZb}btZ+IQ}2bIktb}IZBtI+ktbtb+}IQIbBZb"kk:ZtBItQQt:btIBkbIt+kkIZZ2tQ"tttk"}I"++}IIQZ"kZZ}IbQ}Qbb:t2Bk:BbkItbtI}"}kZ:kZt:2}ZBZZZQtk}btIZt":B2BIk}QZZ:kbktI}kQbZQZkkBItbIQ:ZZItBb}I"ZQQkQ}t:tbbIkZBtkI"}ZBZIk}ttI}kkIk}"b}::BZk+}QQ}k+b+QtbBbkIIIIbQkI}QIbtttxoo~_v>tkdzYMT&z2¬ʜ':9k lգ~"rY'9B:6t5 /+H+ T I"ctX/tLk/Dl r_~1PU 215I+tphxzH>QFIMkI&hg5PgM)== YB"x+to_grQ~{ѝ]ǫU°ՙ˳@trYkcTk5:=:= 5 "6/ F&P Qg`pѥkI㳂`ѰhÊP-IP-gl'>gc]c")@&+ "9/#``toLBzYlzƷӨ[9+&d9zl_@ vL)+=+r]I5Fc[XptϊƑvݎ~˜Ίtzh[ktvT`cXh=v{gTcY]Y1Td6&l`tT92dp>x_xvvoQǀ{ƴǥ`5ӊ[_l9Ho5oDt`'h{BQ{~~Bopz1zQXzD1{hdrcko~rP{xP:kUzzէIYF[1ckrg9YHtPtDFc@IB]][o&Mo@k[l``r†ƾѠx{ⷊvIgPz/chYQt2{c_9P`]pl]Uk2Q[&HT9Fc>dBr@o~crï[_lkdϸp:]kg/]"`6X> 6L{Qz5hlgd-Lx]tcvDUoxPrd~dhlhc9z_/B [dvclt~=vތrx~DFTrY{5pI+`>X=~~cYYxoHL{gXhd{~T]hv`r{kx~pxT[xBg_lYz6oxx~ogQgIo=B]~{@٘~Xkdxvp2zdt>xPXkcgddHL__[kUzdl~~povYhvrhc~t~o~~tctzt{t]_Uro~g+zX{Y{I]HMllFYlP`dt_Lrّӯ{rvpc~klU[gh'Yg-YP=th6zctpto-lvp~rtppzvkz{{`]r``z`]hxh~v{ghr[:rvIkBpTUrvh`czv{~vx_vzgQkY{_XkFodr]XT{lMxorrtx{`zogtvz~d_tDU=ol~z~~l@2HrX`zvz]zhpTg]hzLrloDopgzrh~Åz~t~~gzrppoolg~Mdrttpprxxt{{|qrz|~thb_M:79DOSUc}qhcimqslltmO>=GHQbsrciz}zraZZZcbdsuhM2*7DME>X|labadidhmrsw|wrhWNMQXs}thWMQYWWXWd}uaA21<>>GdmaXYWQXljZM>:47AUqmNMXrzwmYE2!)7>:4AdmSHQals|rW>>LMLQd}wsz|YCGWiujS>9GXXMCD^uwhM>CUm||jYM:3:=Ld|hOHLLN_st^M9.1D_zjaQQMEN_iimwmS<2=Qaqw~}~|hWOOZimstticb^ZUOMCALlmM>AELQXUUXdt~~|qO47CAUs|aOLZzw_QMEA43Ldwwhl|miccq|ulaWSXYMEDOjtS>7LqrjlqumO>:GUYWHGQc|^>7GdSE^zwmhhlhUD*,Ll}^QlS^S>13LqYCLS==2,=duS9'*Dd~t^MC313D^a_9(LwmcXXijltjQL_saN7,7>LdjYDDXtOCGNMO_dhsqrraGLljM(7DZ^CLuhM9HXYYSDQiswwmz³waZWXr|tM24Xm_lrbZd|j_S41d|wtY.1GXzt$XdstOd9:XYdǸ97LdYHLlmM$"LwhXqtsl^QdĘM=WGD_qum> 1s|uܢmC'!,LYE*7X_azθhC):XwaZdY_ME2L܌M"Xͽh9DS>)QdΟY=st>=>!)Lq2 ,>ADWS2 dM=޳mUba_raXǟM( "QrtshZa2La,"13AZzSLhWλ2LLztSLa>. Lh!)LX鸀2shǿM"dğtC$':Xd_cs~thjY!"Gbl߻.1dγblrjM 1zOCGXaQdS$,3dS9$)7XM$'7dܟmM$L41s}Y2,LlhMH<(1Xܧtdsh=ǀM*1߳S=سS=L9$,Gh1.!)aLǝwO$"UdbZllltt>=2 ,LlsǀM7L_MLhS*1X|wizth4:DA*Lγ>shbtqtM '1$)dmLGLz֧h((dΧsijMLms|>1_aSE4'Xz€M1ǧS=dq}γ~aDhzS1bs"lܻtM( d黉|h}M$1jWM1_i}jOGMEOUlijMXYLܳYDuY:QsYd~tO"Xt>*1EGNE:Xsm€WY91LM<$"D^XdM*1rm^M*'7Lbj> dab~umztsrSdǭm9"_ֳh*_mSbimC1L9$=stsqa"!:,(D„aC9Dd~uY Lzj_m*X魂mX_a>1dīYWsmMQlcC,XM sSD^3*:9.*4:CX}|M1Q21zǧ2dǟ|S2DM.dǘM'1$˜t^SQZizmMLM*:}hXMLaXzqlaC _΀"lzt2:dY>=~h9=Ƴwzsu~hE.sh^d߳Ό>"1:4=XdrzY1s­Y=ΘhS>)_}΀9(1Xh^CXƻ>X̟MΘaGsm* 1$)XjtjE$1l§lt!"XҳMX齧h*1YG2 DY!*($ LwY*'Xܢw}j( "Lh2LM,1=GdYLtlds~m>=srQXj97drshczMDu||jZirY=L±Ldmil~}~|alh7s|hMLWzĘa2)DE.1Qr}tM.Dqa"siW>d}th2XM 7M:dh2"dtMA_mA=bM,dthabYE)dܘt΀'AQdwl§Y =aM$sέ2,:GsY dqm4'LγhdS=sǧhMUWZqM1XwaW2)7dYdYbM=_lh$Lumcǯ>"L91_rzSLhGELML^s~a* 1YAGM =M4,L}MdÝhLsmwΟS,2"X}|aQXƻWøtOXq~|}j$=鳀9GwqhM.LaZsaEXqY_„mhr~MLnj>1dm>7X27$DóֳM()dWdֳĀL1DzmWs~}h9 DtQs鳀E shM3_ϳS:CGEG^uh21s“>=dm$,H^Z>$1U黂h9 dǟtE4L“jQSM>.L΂9 "_jM"ǎ|Y$dM)d܀OQM2"CH2"*=_ŸY2!7hE>AHG*(HiܸS"dhEQmY1bdlz~rdzhslYCC>2XǘM17EHdtlwqlt^$=> Lh>LjֻY* "lҩ|2Lm9'),DsǘmlYH4Lt97}黓rS7*!)LzhM,Dm^M$)Qr~jWM_mbh.,QYEd΀$1Xmrzh$)X~aEObqus˜hE21XtrqrSLS2.XԳWsS$=dst27_tmcWC2:Q>Glwr„>=M7_Y$Ls|w2XĨh4 )sSLzY7_mj„2=dǧt>=_zm*)dmZzs֌1cjcl>_YdĹĭm>2!'AQsmiz9!=sϻ(LY'=dƽ> "GWbm}h>srszŒhQE>GSQ><_Y7QSXzcrߧMsmMX€(D21M1dr>1DdY*1lhQYQzY4X޻h1lttO2=lsh2LzS)dM,_shM*1X}zYDQlcdswh2=M"ǘY* LmMAXq|tjS7*3)1dĩS.44LaM_mdmta*D~mC7UzwE'Lγm>:_a>).,=_mE!=zǹǎjS9$=dhMA3=_hz>=}YUzt2"L^zY'1dwa9)swsƧh4:LdY"d鳎h"dܧM"_|̳tH9)la2X̼ƻM"3.*.$ =zYlt>1dh)AUr鳍W>=€>Ldmcdu9Lsrdh _MXs}Y4)_L܀9)72$Lst>"djj2LΓM*)l|hUb“j>(!.ALOLL_^HUswOQY:7dtC=7!L€41lŒa<7C^hbzmMXM LMLh2=zm)2",XM=N_Θh>2!=dh*)7Hs|W31GXhWEQclmsj>(=d~̻j>!,Xsh$DGLΧlcZlrMDC)2!DֳmĄM1DH$L~|^_hlL~ujsYLĽuzmM*1GWYUUsh$,Ll}ql߳hLh4=sSQl}|szjS$ 1s„2DsΧmd黄MAda>XzY=XҌairhO>XŸtW>=dܳwaDAE>7€ch4GhE)1LbhCLΘM7d|Y>* =§A7G_h9=_$=s~t^MLd€2":DOS2 )QaWC:X>7X^MGdtS2"7QM:L©mSUS>73Lst^CLίm> "LdsrWEQsŸY2=stA3,U}ΧhGstY2LhNQl|^MHlSA9!1Qd~¢qaE$)dhS<1LzjQ_}aM9$"X}swtSGs|ܧh1=Ni21˜a9>43LzƳYLbc>stM>73Lq}rS27_}tSA>LM>CA=btM=LM "bzaDdmYYUQZZlh9!"=_©hO<7ALsM1E*,XqhYWOQSELOLMLdYELM47_h1hQED^swM "LΌOA97dtW_h>'"=UXE1G>:LMEE*ܩt_izC(1HQNNNWM*LǓY 1swjY4 sγh2)XO)XҭM)L~YE$aACQduM Dlh$=M=SE"_׳h*):>L_stY9.Dlm97X֭h.=qM(=z~hM_2Lj4DğhLQUW_ZMUqrhZOMOQOdujZl|hELbuuhXWlzhM>Ulh9:NXsW(1UdbMLlwb}ĩhWQXiliW9*$1_~||lchdmz21ltjlibXXltM3DsaQXmUQlhUZYQQQUqh9LwM'DqO"dhimiM$=a> h.1Wj<4CUWH^|tYOZimhaZdcXdz}tY91XaSCDLGL_ǘY>7HdY$L€91dmE3AdwhSXj<=dtaQQzسS"LUdwr^c}wZS_s}mOHXcstYOUdw^<1Gd~aQl}s~tYMHWZbjlraM4,DdtdsYE_Y>9LXiqhZdzthaSXswZ>:XǧtM7DNE3*=_ziqhXaqaE21XmMDHHLZzͳhOXuhOC2.$,AdíW9=b|a>)LimaOH_qis|_aw|jYcmsh<1QY21,:QzC!.LshEDXlhZqwM2*7QzjcmcQC=dC*)=dwhXH*)XtlutYDHstM93)7}ĸuaS_YGXhE=Ls|WAXz|rzt9"sM!"=_rhXbz|Y3=dY.!)DHUQd219!"dY::_b^ci^U_qtOE>LZq}qszmM9DdmSQdj_dtzhUbzm>1Ƴ>3XmWMNW_^MGXlzmlshcstYE=LY2"zh9UajhUsmSE7.1Cl|ihaMEQdiqutWLOQLEADXu|jjdXXzmamS$L}tUQYUXd|WDXz~mU_jX_hS2,XmE:Gd}uzm>"DbziWUCDdzhXd}tS4=Xa$:scXhCLltWQXOLL_maC7LzhUbu|mjt~taO<,)Gl^Uqwciz|mclqccr|tcQHQdO41LjqutZQdtM!)Ll|~wwiWE94AXzY.:XwM7(*LsY4''7_m>3AQsh4!1_tM(1DUcsuuzmSNWXdstb_S<9XƧhD|zwh2)X|wjSLdtN<,,3AXq~}tj__zhW>=zM$7dtYd~rYGLQb}mM2"1LtE,7AXs}^EDQlwmWLLXihlh>79.)DzS9Ds|qhaS>:LbjjaZc_SELW_hjYQXdztbcliW21LsjWSXlԻhO21Uchhhc^Qduih^dwS9)1LcY4'=durswurhba_ZQLXu~hM.)=^zlqYH>=XzaXzlaWM>$!=_rhMDQd~wh^Wc}jN>927HXszmhdu~M(7_~Y$D˜tM<=_mM9=XqtjNH^rtMAEUU>,1UO1=cwjSLXjmmlstWMDCC<=XWQYYZ_l|uj^NXzmZWQdtqzuaMHWc^MEQbaEGdztbqwa2)LWXZqthQCLd|~|thdwYO_hM.)Dltis}hNH_}mbzm2 =qYNdtSONQC113$ "bY>AdҽM$11Lshaq|rWDUrth^b}rYMA=HdwthX_z~taHGNC()XjSUltjhr~|jbj||tthSHLWXO2"1_ļtiaq~|j_Zcu~rc_aYC37ANOOMNbhN_z|msM():GXq}hA2AQ^iǭu}thhdz|cM4:QqrM3*,*=tEGd~> 1Xim$)XhWS_q}|hZ^dlrzthS27Xwhbds|mYUZdlhXNQ_lsu}th_UWYE:Llutm^XZdsjdlWH=DGUlthdZMQd|}hM94Dstcadturssw}zu^GGQ^l|}||tuhOLQ_l}hMA>CLWclmYQ_lurdltsjdqO':_||ts}tZW^lta_l}zY::_tO>Ls~|tilrhMAQWLWXHGb}mquzjM3A_zwibl}|Y2 7Xzmadhlut~hMHOQ^ZUMEL_qlYWcu|rquthZlY4,=Q_dhu^ELbt~}r^C2.1DdmYQ^rwza27HHCDHUYO>=}h_z»h>(*=Xs|raSUdt}rhs}zzwum^H>LblhWNO_lrtriYUXaciuw^MNl}lZXi~hUMAH^rzwmjzhC9AQZWHLS^lwthZXimimwuutwuhWG>HXdbduhA4GrwaU^a^S>2):Ul|h>**7LdrhNEELLEL_wjddcdjlaOHUiz~|zrcWUsjZd~taSUd~|aQMZswmhl|mOHQbhcdhiaSXliSEL^s~th_WNOM>13Xwijqu|hO>DXYZdssrrr|t^ZdqjYOUd}j^Zac_aa_aYMELd~~taWX_s|rh^blmhZbmsjaX_jtu||hbsjhdaOEQiraA3Ab}~thSMUcs~rS<9Ldtrjju|hSLb|lbdjhc^dztcOEGHGMWlhNHUdw}urqu|wrhajqt||~||zjZXSOQ_r|zlUEEXqt_WWZ_Z_lttcUMLUcs}~~taEDXz~mWMGGMXbq}|wtmibZ^dstbYX_diqz}taMQbr|maM>G_}aECN_r}lXOSbu|mWLXs|jZWWbz}h^_XOXj}tsuwtcMGXwiUNQbtzztqrz|wj^XYZXZahlz~|maZltaYWWUSUX^itth^YXZjz~rhhs~~tlhcWMLXlttmbWQSNMOXit}zst}umjcYY_izujijmttldl|hY_z|cYdztWA=L_aYUcuabr|zrhcYMELXcjiltzwmcbr|tjciqutjaSD>:7AUiqlcbdlrutbWWXZdqsmYEAQdrtstmli__l~~m^Zcjs}mWGUirmjs|aHNduwsmrsj^SXlumsjY_ij_WSW^_^XZq~tWDLd~}raSMCDMUd|rcacdcisztaNGHUdu~}uqswthSOZlqhju|mdl|zmdb_YashYQNWbjlaW^luth_lumjaYODDNUYYSXcmrjdwqhlw~|mdcdihcabcchllhihddju~wtlb^Y^cqtmaSSbmjccluwsmquzuu}|uhWMUcih^YdqjaUXistrw~|ts|~rhhbbaMADQYZbjrz|cWSXdjjqz|mYML_t~|thdqrrwrca_ZYSQ_qzzrjmtthY_hhZX_stbM<:DXlzhWXq~ujhiiaXZj}whaacaXZcl}zwtrbMLZlmh^abciqrutjbadqzujcdqtrllmrrlju~uja^birlljhd_YXds~|maXXZairzul_SQXcmsz||~wmhhicXXdqlbbjqrttljlrzwjYQUXbirrmmjdiru~}urlmmiccc^bllhirm^QUdz|tsz}zqhdlzzmYMLXdlmidljils|ztjcc_Y_q}~|wrhZMGQdtutturhYSWY^__aiu|maYX^blM\]Iw|OZuWKU^aQOU`[OQX^SORa[QRUdYZZa^E"ANZYRA)(9CD7:35335A??<46==@BE=@@JNTNLIIKRX^][QTU]aada^^^akijjiggjrrrroopru|yyvvv~|~~~~~_ j1DxS2Q}c\t+ eY4`GHV3+Ub=%:_\3&5EN<@V]B06W[C&)>KX[K7.7WfifWNML\oxsg^[alz~{lnpx}~~÷\v2{8 4wn0!=6 6' $ ),.55D;<=@BB@BIHH &6M^]H718AP^aK..IW^\O?15I`h`UADEOamj`MOQ[holj`Z[epxusgiijy~|rssv~|sj'G3|~<BzH3O,3A K).w%=ynl1+x>g0"rn&9re=0FgaARbUBCB:/3NmgG47DH<9OWP;4>NMHKLOEBFVXTTRQRRT^a^[TW^cadfffdfilooopppruvvvyvy{||` &>~Er Oe Wf$O^;%6I[H1.FcR37UMvZ# .kW$&?D;:2 1jiZ7'%'BTtoQ1.@c||ulUYdqzkit~~Ǽƾ÷rw?3\I%auJ"&^oN)MCE+.0$J^@)8QNA6=RVPRQOWW^[cU3;Wb`LE:1BL`fZJ=AMRecV:$6ET`ZPA34I^^[TI@EOZcb`PFKUbjff\XTblospid^luxvuumopx~|~~|y{y*1T,Mvc+@lV5!@i]HIIX@ 7OXPVpNHgT-0`nT! (F@@B^E#7U[cK' doZF3-TppV:)?[jukb]W[oldgvx~vv{Ŷżþû»ƾ9'w4Eo\LEL[cK?@O{THSmiH 3=)`]!.WiW?JXsjOMSfrykOOC4>@fxgA,LgpYQNO?=TlqgB022AO[XW=+1;]e]N@9@KY`]ZJ~n?1Nma&nW*"-k_!9HIZgZ=7>?/>MDHKI7*9]jnTNMLVajmrrp^^m|{tuvuvu~õĽ̺bP5v}gT,UU4PtajaI4hqYGDOKLfcT@OfiXDUmmXapssgYE!;RibZG9KiwQCY|vi]e~rckwlo|ǻóƵ÷ƾù*Cs;=yY=h+vy2(ZR Ph lw%"`x+ FwV$:meKSl~t[KLF3CP^cX@63C^ekI:7>Q^aQDDE;W^4%05r{pI3'CIYglM7/8Q]jgK:=QX`[Q8.8:P[`N:4@^bZZZPFCIiocKKTb^^hmjcXbluryvscgv~|{|rsv~x|eXVvb]ywlfZad_hj^xwjvfOGaI^O)b}hgf> /h^)3zkDBZkoqxq_Rfq=6tSJNTbsQTf|{os}wut{v|w|xgU{"vd:GWQBUOWjeYTUeg\]ZR^pkY\irfYbkb1$IiaF-6RnjBpz/$M]<+52ACB@PXP)-]{i9%*@[XUE?QgZ@06Q]dV:435GTPOH<1=H_]UN6:D[gjNBEQ[\]dj\QPdrwnpogcfv~{quu|~zخxEoNaiO;~MXai`^~ltmhn_xd#+iTOV:25X\:<`xTCUyweuprsq^]mZmjlxn`X[k~yo`fmzktxvppz}ur}~~|}~f+tBJh]9q.Eq,)Oo>:RhkZ]^trcVTbluN2On]:&A[bNA4HdmXDGTO6>W\C0-03?YZO)";SXLHKLB52IfaE,5G_SQGLOHC?4@MEHHKI=?IO[SQB:LNRWUTEKWZ^[T\ZWUdmifd]mzrrhjrv|{svu|~ǿŨȺ߻Kwǭr^st~sv|onw~l=}˥wpX2blq@.:\j=)Fwb?@l|WX_sje|g06fqSOalUUaneah~eco|e`xpu|||~tzįlw}XFnmY[cjiZ\[cjg]Z[ea^]imjTUdmiU[e|rafdnxfK$7olO("OywL44FZB!!HfdD &KvkB @baG@EOH9=Qb\JCJF?M]iiO=@OhW@C7OMROLVQBDJ^i[LGMTQOW^]NLLfigWTb`^[[kme[bkzwqporuv~|rmy~zsĸɸǷAy^ddHnëo[c{ai~es|\dcYjY̴j!j7+VopsvvlACI}}G/@^JUi}vr}t]Uv~xegjyta`n}silv|ibuyrs{||~|uzɸa!}:!J{4RX7Ls{[KQjzhBE_~vaTFPwTDd{dR,Xrx\*-J`hGW|f&%V_E/-4:6,3FaOB/8GNISRO=.=aeW@DFZf][ZZZPA:=QRX]ZJCJHZcgYOFKU`]``PPQTdlkcW[]`gmld]^nuxvsppsvy|~v|~~ƼDz՜TڦPCs̟ZHxpgqobgpjo{sz{|~Ͱ{^z/4lsQ,-L{xlK@EZmnhfifK@UzWLUdggvxlSYrygs{rWB\htQT`j^Yj|mmgj{ulop~rs}~~|صIi[UYm{uZFajKKczUTWplxn`]^`joicdnjcWjrqrumgsvnI7UKIF? $?NI$6887+&'1<7+*49?<47?KFQa,1\`/+:Wrro_HHQQ[fjfRQLLf^VnnCBo]mrZCEEQLVTfkN7/U]d\ddR6:`~b9$;esV[c|wro\7[koyrgYa]`r{z``a|zlijjrryufi}{{}~{}ʼçlr^V|~ul_URUu{jafxlilsx~lS6UnjOGFIXPB%:HOL@(*@QZU?(/Irn?%R{Z36=N]jg[M@J]jolRFFP_mp`EDM[PVNOephS@JSyy{gVXbtgek{{yy~|кĭҽP|p?6T_((HyoHFJmgJRrv[f~d%'`l%M{B!(diE.?k~^NOc_]NjbRKXp|{{l]QWvlWT`pdsIJXvlo`x|ppwzx{{x~g}Ĕ@Ä8 f>'U~Y91@hkJ;Gazx`OLcvwndfgjzsjadTACM\dm[:9@@T`oe>1hc2!,=KXU]UD2>Wi{cS4@Q^jg]^NRUemfWORUih]Z]^^WQT^K=Qe_]IRa_MFXguk]T[ss||p`hw}nvyly}~ͼҾȨkD$|ҮQ03ZpB"?moLZaqx|yrfjl|xyyз^J^yuN-_<Bz\:7@U{{Z=CZlXUaq~l[evjp|v~~~~eNRmXZ{vv~|mqswz²xu,4hiF0FurWINQg{M4Lvj]Q^^nx|ni^au{~{l^g|rH(FfnklQ:7=LeuiT97H__I?Tc\H1>LU]LIQ]\H@LiugO?NlpcPWaddaZ]`^[^hfVTU_c]=4>^mlXGKHIKRW]]SOIKWk|m`X[]dtvfCCZroXWb~sZ>2Toj[^[K=8RiqdQCII_rsoeNR_jutndagmy|y{x|}omiyur}xy{y||ūůi`jvb{έ_CdX)/hƻsD:M|wOHXr[fw~ĺ[)imE);Ze2/*Jh6-7Y}V<<\~uQIcŰiV`vio{wo{z`py{~~gƦ{I(v\9"0Rw8"CuqC=GtqXR[lr`\grf?,El}W;6Lmw^RFG?,Iv}R-6@XozlO:+($*IPMG3-2FT[SROE:?I`pjZKCMj~|m\AEM]bg_^W[[TOIQi_PIZ^]MELKLTX^ZRN\gjf\`jme^fmxuvsgty~xhqx~y~|{~~}kg~m­uxQU\FE_zX=UpZZrp4MiuV4F^R=79ExmI-4Kr{a?DUn~eR]nbay}xrzuI\ovdamw}÷ûdJatSJb~~~{eWXmwRIX|yhe{~{y{qfiuywaWZ^[[OA?Bemle[XQ;AMKUQB9@Xi]LC?OjndKQRU]agmlshcS`~ymmoll|vfevwz|nwxyw˯Ǩs3/U||UFTswvj]pz|~r-Fmf7Joxacfpm54MlsiWIJ^{qFMh{bVZf~ontssu}zf_yz||onɬrzƸĩrxs{i%:a~}hNJTxz]V_r|nno`rw\Vq~omov~vrv}jcgfK?GVdlkjT95=N`}yq[IH]dsfgifPLOYkro`dK/ *Sp}b2!$;S]ihTF0.9WltfN=DFV]ZZPTTUKHLlzfOGGN\W=IOOQQXW^ZWWWZsxukNMcvsdjz|nvvy{cp~zuĴ̵~j_g;Si~}dTZf}yeck|spswjtyȻ`'Jnxdkx}s\\mm@=etQCJWl}cRQYysVQTisT[||||epzc^lqjy~ɾomrSX`I>DXd|`KSl~xeX^m|}nfjrvvuUTg}{sm_UK3@UgaWLHIFFV]QQRliUH@R~aK7H[rzum_WZ[c`P*>U]TKHLKHILOQRTRF 5`y9($:ZydA"CpuN'+GrT:6[tcWXbt~|p`J:'AX_\[Q?3$*:SXYTEB<@JO[d|~qbUPTd}j`ffpoopsu|tsl\DFZmyq^WNQIL\fps^QLO^alilseZHO^quoslfNCWkxxmcggjjl|vd[mvhYb|paTZdqqpz~vyrms~ƵúvN7L|ťrI0?WxaNKTh}{^KUuj^mҬ{{H :T|Z>=Ilrʰ~o{ô}plt{voov||{ssv}ompwpfe{syzjltop~|{~y|x67auTB:ATkrvspZE?FOampvu[I=FdwXS[d}ym`[b{~{k]I==.7HMWZZJ33--=EN^f\H<9ONZdggfgoldffxymruxlaru\;INm}jF>@TepstumUEARkylcOBOr|i]`aiffpsyyserdLRgumnfifgo{z{{yvvy¼yvlTti`dzmWOVp{kZIbzsdanvjոU/AMblXHDUvyn[`||~{pqryg`gggg{p`UYatphUalyjqwy}ts~}x{gt||~î^rKX`WR`sLDFPev|{`NJ@Q[|zk]NKSi}mfcgl]cioicdgf^XJ7&+@QZSLFF:102Lcaa^RORRQORUdmz]\^n|ys{|l^R\^apssaR?E^injgWNQRZa`a^]`ljc^^RUd|qbbigdads{sool|}yk]`juVCKl{os}ķn6=ap^B=S||hNR_q[Xo~w{|˪yxHAa~}yR6E`}rVVf}rxojs~wyeiuz]Y]`ryuu||~vjgm|rcd~~x~|~{~̷uhtlBRm~uaNBC^}yebWORaw}vh`Xbry|xrsuusu{qf^_`ai]^`a^[ZWWT.&+=KceiR?>BR[SQTfuq]BFMfvzvsglllsruukf?5MNZipqdO5/BSfouoQ84=U~]5(3L^polb]ai[QPUTU_nkcK@DJiosj^NKFL]syrcTQYixrrolijtyyrlgcXbrvhqxmp}x~rnw{v~Xapw|hadfp{~xmrsv||~k^dxzy{~|yƴ~kgrfjzq[VZdsps~sHQRf~j6+Mzpq_F>Ki|`L]cvuzmfefi|n^hxdI>\rytjo{Ŵrs{xu}xovyηfjqzvid[^a{~ofc^l~{{yo~xrmuv~rmprpfc]hgjyw~rocbdz~nf[LRap|opilvo`]Xdwjjlx~||jF0A`p{woRNZgi[WQYoxxu_RMQ[ZRXgzt`IAFNTTUemiaZOVRT`nut`T\okif\`py|tu|ykco~{~}x~~{pweRmoTqU@CFVvfXJSTdym^R\vo^ek{{|~s`>ZvzqVT[dqxw~xi|x}qmTNa^nuf[LU^cvv_eXdq}vvvlafv{ozxzy|~xtpvqSk}jB:IVi|xeXQFMl{~~xmdgfp{th^Zo~_B=Kix{tagiuxp_R[lt_H;?Xo~yl^_aZ]Z[u~xsodky}{v~kOJIBRr{cTYQU]d|~{qf[KHGI]iphf\JCDL\^c``grkbKFWWcbiwwlfaiuyylyxy{{~e8D[xqSKU^dtmZVQRawlZS`uvghuuR5HNhseF7>Xo~~j]UZl~g>346eŦ^J>GEBLYgfff\QFIHHTbdpqf[XLOQadpllssu||zgOV\a~xlQGKWerw|pl`LQGIXff_XZ]d\]Z[^hmy{}daUZsuryqjqĹ{sq};uQCQQGHI_m|teR?4:=^wxi]^^[QRbyvdJCOgݲxlj|Ůym=(+6Idso]YOROLKWx}~olOF9Lo{xrrpryθ˯ecgjtgb^jmx||~|fQQUeoxta[`j|ïƿȮmmiyܷ{umwӺ°\*.66YqwooliC*#6WjwuurhcXTNCJXal{{q_Q=6Cg}xmc[\]oxiNLH]p~ndMB:0-029LcxpdV=.%.7=SfrhaZOE<47Kcrurpoopzyy{lPJOOczfB=?O^r~~eI>6>ShsvsrhiSOU^p{w~|||{ijl|||~h_x»dH$(FUl|rU:&2Rsw^HGCF\q{{|~{}vyҽͼ|c+$,=SvqZ?.*1BXgstSCJKRRad|ujtvƶ~YRMSh~oWOBLfwonf[`aimx|~ľnX67HgkZ8&,0Nd^704AEQZqpXB5@Up{eOQRa_ggjroljg]WWUWWZ[I+#3DOT]SE708GG1$->PT]ZKC?GFEEH^ur^ey}mwrWHIXUWcggigf^XRT`da`aiig]XTW^djfW[]`jfddnspprslfn|~zzvadyoZYN04KrpZTLC?@J_cmvyxZSMX|íw@+.03If}`>,"&8LpeHOW|t]ECOloJORU_jr|gURcrxmtuy~®xmkR*0BYzxuvvsZ7(/;Si~m`XOLFLf{{|{l]NORfszl]XTOIEIXfsxeD@/27HUdszxmw~~d68;AO^pVOFBB[w~{kiil}m^YjwvZFCFI_zvaR\^hrvxlgeg{opʾƾvpG(Ns}gG0)%6Mdx}l^QTW^]dwmnfSHKWZhp{}jSFAGPgosps}y`GAIFNZ]KOLIHHH>:=@Tgs{vsgdX[]^aaiu{vv~{ldiuxrssʲoC/OxiB'&IlrviffgȿyXFNQX^n|~u[SKJ^s~pfX^tļz[dx{pc[WQE<9:Nk{gURXUU]d|x\HA4=F_v~}yslTLFIFIYcgg[WZfiWID9Ln~xa>,/0>=<==@JO_s~zrbUY[][[^mspxskeHA3;:UqeK7/7=P^trtuwhffda^`vz°sI=?BRhxxtp~~ɺ¸Ʈx}{m^Q6 /ARVTUUN>6"&5IUZTKE?:/2*286@M[cggvrsr^QTdm|xhfiso`XI6/&% .>K^ihcRKC??==@B@@Vp~dOJEFHO[^dorvvy|{kiw|{yx}|~~oabddZ[^r{oniq{wZQTm|kZexgG>D=?=?INRX^]SA3,8Moxh`X]^hfdlrôyrcT95=FYdrymaR6#"+;Mcs{j^^XTTUeoxwͽz|v|tz|}gbZWQYix}vv~{~Űʾ~|sors}|y^4!-.5@RgiXG(2I^m~wqR7##2Jaumortjfgggvxu_T92!0>VfmkcF=.',,3:?<=LU`_YTWcgf^XQLLLKR]qzkcfi{yxy{|xhfj{~g]`ljjjl|~u][aluplafg}zƿzqfR?8/&%,@[o}|p[A:@?====:77AELXYZKC36@EQ[cgwympp}l`XTIF?@@OWgowfTIB74003E]sxuprrolbX[[e|z|vvsryɼzvrs}sntĽ̬gL=?JOZ^jg]K@44/*&*49?CIIF?::CR`gjijlv|x{{socZYT\]^^[OQTdluxvslggfWNC??@PZinssv~xruu|~nfjijg[K<-(.<<<=LNUTUWcgffijg]PIEEFNUUUTRZfu}~~~{ž|xs{|ɲm\OJUlxg^QLC?9:BNXj|}{kngcSQLOLKHHOTNE?BN^jmijtpoljjg]ZZ[^nxxsumaQC7=?Q^mp{~~{ldgffillligffgjtpfgiy|xh`QNHC?@@BIIL\fyrrrssuv~~~yorrsrrru~{oloov|ɿ|}|{ô~{vv~~lQ=.!+:H[m~~u]UF0-#*,6:J^iuypf^Z[ZRUUW^cgmy~{lpovxrsvy{surcM/ (8KR[dm|ymSXRNC?:<<=?IO_mu}~y{{~ʻö~~n]FC9013?Sfrwu|tslgmliO=:83667GQ[dgf^ZZWOIC=@BEHKRXh|vaKDGHILLLORZamvw|tusrpijigff^`]MMLLTX]UUT^dpqjlliZ\Z]mvyrlfgjy}snru~||||xutu|Ϸ}ys`UI<47:IXfuyfXQFI=:3-02:JRZ]]dtxec]]SOOQXhox|~ymdads{}mfeXH4$ $0?Rcsrollsx~~{k]NOOLIF?GNfiuxƿ}ujfjy~~vpsuĺ{~yvr}{]OC<@HOgourrppicPLJE?9-**,8CNWadiov||rl`UKC4'"$1?Ufr{sodif\QIEFILTTWgp{~olffff^```^RB:7356BLUV^ju{{susssrolor~|~zvruusppr~xeD4++?FQ[s{wmcf\QB=@@@?=@PZWWTTUWalo}xla^flx{vrsu{l`XOLFFFEB@9&(0@[oi]QC<94BP^tòxidgvyysopsôwjeggv~vYE=9BINTXdlijjig]XQLLIF<94029@LUXhjzuvlfVIDJKRQQQRT^cq{}{kdaZTNB:?IV`dossvy{{ymde^`^]SNB73323?HR]q||~~~nniqvvvv{~vppiiiu}vprryxjH8''>H[Z\]]`jouuuslaXNCDEEFFHOerupnijgda^`gwy{xeXXLQB4'"!#!#$:Ldy~vfXYRRQRUkrɺ}|xsuu|pgadfgjls}nZB:16@ELKL\oxwhaXTNHHE;72'*)*4ATnupla^`^aifdadllsry|ymcZYTUUU_dorpsv~g]IBDEHTX^[ZZ]difgilvu~{{yvussspijjlv~sooov}x{~}yy{|~uaUU\cq~~|sggijty{m`Q=43223:JR]aaifisxvvv~{yrmgc]`lz~{|xlidlz~||~yssgigisx|ql`]]ME:/'(''),8CRZdmuywpmopppor{}~vppswnqyzjegilvu~wdLA>???BR`o{{{sod[QB=@@JNLTT^alkrvuvyyyy{||{soicfgov|||rlggfgiifRS^ky~{vprpsvyyrrbXOLHSbjutu|||{qroorsrpory{}||~|{soit~~~|{{|~{ssrs}vpsuzpf[\TUUWa]SIJKRWUWTQORbliiiilvrogigijjjjrvvyrmilov~|yruv~xsvyvvusroggffijrolifWNE<;45&$(?Qamy~{susuv~~~{yvy{{{{ssgcWHC:;=@JUgs{xmnogcWL<400:GOXY^cq~~~{sooliigijlorsuvyyymcfdn~{pmgiggilvyuk`WOTWclkrruuuu~~|~yrsuvyyv~yuppfgffp{~oqru~{qrcZB1!&-=FORXclkrjigfd]][ZWUTRUdgmxwzl`]`gmxsuvyy{suuvyj]QCCBIOZURHC<<2-&')58FNXadjosrrppoolopoolss}|ȸ~|yorpoor~|}plO:&#/9BKJRXds{~{qrprrrhcPI@ABBEHKRbjuy~{{{{yvuv~~xssrsv~|xlilloru|{~~xrfcWNE7  !4;FZf|ƶ|}nla^Z[ZZal|þ{xla]][]`jills{xmicP=* )5=Q]s~|s\VFF?@?@OXjwiaXN?3,# #3=U]fjosrsu|{p\K@3,+*)!#!09HUiuyyrssrpr~|ysorsvy{{yvprsv~~ɾslcb]^[TOQT`jmsyysmfVN<1* #'?Kgvtk]Z]ZWTRRRUemxɿ~m[RIE?@BEO\dmvw|{{~~|yiaRK<4,))'$!! #-3GTj{}|pwvvslov|þzofilv|{~ƺ|}{y|~ŻrcXXQRQOLKIHIL[cs~jK;*   0>F^p~xh`HB??BEHIX`dt}ysmfZQNHIIKKROQRRU_cjuru~{k^WLC90'!7ER`sz~~~{pqolssuuu|~~xsukVK?@BEHKU`ju{o`RK@6'  (1FRhx}~{sscUIIIL[^cimx|m`]\]`jgjjjlsppoef\^`j]XJ7.(,,697:<<<:::=LUgs~{y|ǽy||˿˿vgULC41--7BQ^fpyym^QI96,# &5HT[c`akuy}xrmfa[[[]]^^^^`glx~vpicWOLHKRRZ`djoss}~|{smaWHC:722*,-7DLUV^dpy~zxmnligisxsd]TK<4,02:@EKO_myxuk`LFB62&$0?KKRX^]`jmsx|yyyrrogmlljjjjllllory{pssrogiiiijgffd]WG5/ "'-30025=HLX`_gfmsy{olgjlvu~ǽɾɿym`XOTUTEI=?<:336@?BBBBB@?BNLOOLIIKLORTU]ZWURQILV`djosru~~|yvv~~~{yvvusvy{{{~~{qlaXTIFIL[cbjjy|~~om_XTTLLIB74025=BIOenv~{odT@4! $/.;?ELXYagff^ZTTQQQQOLI9;135=CNMZ^nvyxmijrx{siWK<&   ',,,69@KO[^cimx}xmpogjjllssu||{qmgjrv||ɿ}Ľ~ymdZHD3,!!0877??KUXcggilsruvvum_LC=;<?==EKWZ`djvy~~{suroea[TNCF??<02*-08?CINRRTUUWWUNOOQXcgmxw~{yrssu}yyvvvvuspfcd]`^]][TOIIIHHHILVUWZZ[]`adaZTOOHIIHFFFHIIIB<<47:BBLOUU_ciigda`gmy~|rspijjrrsvvvvumgcXOLFIHIKRRUdgwy}~{qla^ZZWTQOORZ``a``aimy~{pqdeXO@4,!$*06:@EKOZclov{pmff^`^][ZRRB?4333356=HXdimy{pm_WLC9<47:<<<:7666=:<<=?BNRW^dox}oaRF72-!  )26=CNMZ^dp{}vjgcWNE<4$  !-0FQep~ý{pf[QB:10$  !'259?EKOUU_ciispsu|{|xyopfcWOPCD<<<:<<==?@@BIILVZ`dpyǻ}mdZKC9/$ #'-87?CINUZfoxó~ymcTH<-! #&-38=BIUXcbjouy}ysslggdZ][[ZWTROLKIFEB?==?BIILORU_ciisry{vf^TI@6,!&*0;CKNZcgmy{kdZOL@<15-)$  $*0;?ELWZagllsruv~ƻ|}pqoefWYLII=92'*'$$'*-76@CINTX^^hlsy˿ui]UK@<10$! #-,657??IHOUZ`djjts{pqdg]^]ZRLFB<10))!#!!#$'*-557?=@HLRRZ`dosx~}xrrhd^ZZWUTTRQQOLIHFEB?<4556==@JNU`dosx~{kd[XQFIBB??<:77:::::<=@JNRRUW^^mksx||~~xmid^XQLF?:40*&! #-8@HLWV^cimsy~ysooggfWYQLHH>::2-)***,,,-5:@KJRX^dorx~yrlfa[[TOQIKLLOOOQTW^cglrv|~~vrrpijiiiiiiiijtx~~ospijc]WQLFF??=<45300236@CNKRRTUW^^hlrvv~~yrmfaZTOOHIB=?<:7520--0233556==ELWZaluy~~{sspoooogiffffgilss}||pmiigfd]][ZZ[]]]]^aigiijjlloprsssroe[\OPHIHF?@?=<<<:<<=????@@BBINTZalou|ɿ~~vrrpiljjig]^WQFIB<=<:::<=?@BIIKLORU]aglrru||~~|yolff\^][TUROHIIHFHIKUX]aggouuý~ulc[XRLFF?BEEFHHHHIKRQTWadorvvy{||||||{yvsrrppoogjgf^^][ZRROLKKKLOQRTU]]`jgijlovv~~}xssla^XQLFB<<4655556667:=?BIILVU_cimssu|{|~~~{surpijifda`^^^^``ggjrv|}oma]XTOOEFEEEEEFFFFHIKRQRTU][^^`^][[ZZWUTRRTUUWWWWWZ[]^^`gfilssuvuvv~~û~{qslggf^^]ZWUTROLIFEBBBBBBBEFIKUX^^akjlss}|~~||{|||yvspfgf\XRNCF<=:23222357?CINRRU]cimxuľ~vmicXYRNCD=9:366677:<<<<<=@JNTTW^]`jmrpsu|{|||{yvusrpoliggffd]]ZRNIKKIKLLOQRTU]]^hlsyþ~}pmffW[QNIIIIKIIF??==??@HFHKLORTTU][^aigjloolljifd]XTTQILIIIKKRRTW^ciouyǺ~{ofcXYRNCD==:332356=<=?@@@@@@BIHILTX^^aiiloooooooooopprrppprsuvvvussssrrolloru~þ|yolfa[WRROLIIHHIIKLOQRUWZ[]^`gfilloopruvyvussrpogg]ZTOOEF<=:766667::<=@JILTT^cj=<4"fN"aքhBhm;aS#D X1bY@N|q|6@\4"8#&    /[I88MNShmgty°mhfM;;1 "#&1DF>ISLNgrnrŹĽntwtxp\\aULRRSSRNI=BD4&/6"   "/..=LLMZjqjjxŹ}xtrwqjkjht|qr|}}}vmka\g_SRNIMTL<0,/0440& """#"%..07@J\kdZ`gn˹x~}rdd_MB><1.1. ")(.407=77GUNFMSNYnrgdrwnx|Ľyxxvtx}wrmhgdfgb`\[SGCB<57741660,4<4)*/16/17;@@DGCCGDDLIBFJJIJRYXSZZS[jgbq}~~~ķ}jdba[XSJ@5.)# ,0%,/,054;@==GNT[`dkfY[kpt}t~~y}~Ĺųx~qv}tnnja[[[UXabTINI<@LB18B805;=;=JB/7I>7CB56>@CFGFFIXgd`ny}½¹|mgj`NCDD@>887.%,47=4%##")*0=>741;DLMTUS_jaZdkpqrtvyľþytvpaUTRDBC@78B;0;IMMPXXYXXTS`bZZ\TLT_ZRX`\RP`hjr|rkw¾Ž÷}~xpkdYNG@INGCLGBBC;65*&1887/(/6//0)&5<;<><=7;GTSU_[Zhkhr~~¾¶~mjrmfh[GDD@CDBC@4187584(/<<8<<;<;7<;8DJDFNSR\[U`jgjpmrļ¼|||xrkjg[XXM@>B>50//*.01//1/./8CLPPMRZ\akrrqxvrwy}vv~}x|ľ¹~vkddff`dgf\\dfdjpqwywrqprrpnj_XZ[[[SILPJIJJNU\fd\`ddbjh_Y`jntwqtvw}|~|x~vqk_XSRRI@>;/1<60110=NY\ahmkjt~~|x|~~xvrqtqqwtnx¼~||}ngggfd[PMNT[[XSST\aZZ`_`krqkfdbafjf_fmgabd\TSUTX_a_bghjmrvwytqnf\\ZTRPJD<4.04650)&,6=@=BGDBBFLZfjhddjnqtwy}ýyvmjmmaXZ\UTYPFFMPLJLSPPSMFIMGCGMSSRLGGLPMMSPLR`d_`gjqy~}}|xwwvrkkqnhqxnghd[UYYSPRURJNTMLRNJNRRZbdaabgkkrrkkvrghtwvxytqxyvvvvrt}~~}wyy~}~|rtxvmpwvmmnd[`fa`bd\Y_`ZY[UPU[ZY\aa_ahjmvwrw}|}yyyvvtnkmmkkgff```YTXTJIPSRMNNNMSYXSX__`dfhmnkkpqtwrnpty~~~}||}vrvrpnmkg\[``[YSLJNSPB646786666;>=CLPSUY\dmx|~vknpa[YTLGFFC>@@=@DB<=BCCIMNNRPJJPUSRX_ZSUUSTYZY[dknnw}}~y||}ywvtpjffdgg`ZYUPJLICBCFC>@DFJLF>BLPTY_afkjgjt}|xxy|xqppmmrwqjgfddhjg_\`\TTXRIILMNRUUTTY\`bhkmtvtx|ww}|yxy~~y~yrmjhf`\\\XSRTYYTRNPTZZ[`dfjpnjdfknprpfbghbbfaadfgjgddfkrvy}|xvvvvvtppmjjmkjjkmmkhf_XY\``a[YXXY_aadfdfhhgjjqttv||xy}yy}|}~|xtmmpnjdbdgkkd```djkffgfbaab`\\\ZXZ`bbbbddgkptwyyxwvvy}y~|y|}ywwwwxxrnmnttpkkmmpnjghmnjghjjmnkjkpnmmnkhjkjfhkkjmjghnrvwvttx|yx~xxwwywpqtrqwyx}}|~~}xwyxpjmjgmpgbba_fptrty|vt}}|}qt|wmjjd_`gjfafhjqyyy~~}|}|rmkkjhjga`dgfghjgfghffjhgkpnmjjkmqvww|~|}xqqrrqpnjddkkjkpkgjkmmnmjdgkkjjjgfjjghmmnrrrpkkmnrxvqtwy|~}~}|||vrttrqppqtvvqptwtvqpqqpqrnmnnnqqmmmkmkkmmjjjjjkkhhnprrtvvw|~~}}}~~}|yyxvrnnqrqnnnqqpnpqqpqrqprrttrrrvxyvpnnnrrqqrrtvwwwvtvx|~~~~~}}}yxwwxxvvtvvwwwy|yvtvwvvvvtqrtvqpqqrtwwrnprrqqpqwyxwvvwwvtrppqrtvxy}}y}|xwxyvqppppnkjjhjjd``\ZZ_afgdaaabffddbdhkkjjhgmqvy}~|wqnnmhfb_`a``\ZYYY[_abgjhhhhgffgjjjhjjjkmnppnprtwxx|}|yxy||yxvrrrrvvqnppppqpnmmnmkmkhjmnnmkjmpqqpqnjjmpmmnnmprrrwx|~~~}||yy|yvvxwtvxvtvrttwyywtx|~yxwvtvtrqrqpmkpnnqvvtvwx|}}~}||}~~~~||}|wvx|||}|xy}||xxy~}}}||}~}}}}~~~ywwxwvvvtvwwvvwy|yy}}~}~~}||yyyww|~~|yyy|}~~~~~~~}||yyxyxwttvwvtttvvvxyUR$"(?"C9HPUu{z{Ǹʾqz~}q{}zxgkbig_B0 +#/=@KV^ivx]xlmgb]VRFMP>=2268"@'/8CMV^iqzpxxpgiikgYO>6/' Hg"   ")20)(@FPZdgkuy{¸}k^`gikiibb_^]]^]]]VH@86) (=0"""""##$(,2:::=BOUZbkqvz~}{}}~zyzyvqqqvxyqkdb]QHB=6,)"  '2@CB?>::8668::=>:>:==88229>BFKORUV^`kqxºz{zxvpkgbgdgd`_____bgkig^YQOC@80+'    ",9@FKCBCB>>>>=>@FFB>>?>===@CHORV]``diluxz}½~~~yyuuxvvxvxqqqvyxyvmkb^YRPHC=:660++()#$#"$"$"#""""$/9?BCFCF@C@CCHKQPQQPMMKMKHMKOQRUZ]`bimqvy}~ƽ¾}{z{yy{{yzz{~}~{yyxvqkgdb_ZVRPKKBB@BB>>=>?==:=:9988969=BMQUZ^^]]Z]]YZ]]]]]]YUUUUQRUURUZ]]`bgimquv{~~}{zvqqmppqpuuuvyz~~}}xxqmki`_YVQPMKCBB??@??B?@>>>?=?>@>>=>=@BKORQUQRRRRUVVUUUUVVVVUVVVZY^]__`diipmqquuvx{}~{p{z{x{ "2$@0K)?H(BuP~œVulz`vYYFH_HԾ~Y@(F]kY~㙀Muguu~U{ylƣ±Õ~`= $+@~z}KPviv^~u}l`qxquVvM=2`qzԗ}_>`gxdxi^zvvii~{{q_=}}}Ⱥƣx{qbqugzZ=9=,+" +:KH^uԯgUƵumzql`]RKF?=:8,6(#FQ`_^u⳱{`Zvl}{Rik`yy}}}zgd}羳{mZPOVR^lxȵ(U8@92/'#  08=CMVlvi_QC'8MM]dkqKQdpy}{~}}}}}~{{l^}Ǻdzvqlb``ZVVPPKB/HF>?U]dquyy԰{g{{~i~}Ǹ{yՙ~zvpd^VVOMF>)+0+'>COV^_blq~}vmiZHYZ_dmqiipy}xuʰ~}{vmkg`_]ZVQF:CB?HRZ`giimu}vkVdklmq}vmuz{{~~~~}{{zypiyxz}zuuqx~}zvpkgb_ZYRQF>?@=?MPY^dgkmx}zxvupb]bigiq~~xz~{vuyy{{yupigb^ZQOPPOY^bgqvxyzqvvx{}~{}zyqpuxy{}z{}}yqmkgb_^ZUPOKKQV]`bikluz}zxqppliigb_]^^dpz~{{~~}}{zvxy{~~{zxuumgb`_`dlqux}}}}~}~}z}~}{xumkg_^VQMKCKKPQUVZ]^__iquqkiidb]]ZUQPQUV_dkkpqvvxxuuuqqmiillpqyy}~}{zvqpklpvx}~{{~~}zzvuvz}{xpkd`]VUQKCBCCCKPPRVZZ^^__blqvvqlki`_`^YYZ]`biqqxz{}}{zzxxqmqqqyy{~}yvxx{~{yyyvy~~{xvvvxzz~~~zvqplkggiv~{zyuqlkgb^YRUVZZ^_dgikllplmlqv{}zvqmligg_d_dkuz}{{~zvquxxy{~}yyz~~~{vpliigku}}}yxxquvkV`dx|~~zvwuzxxtwxtyz~~~x{lT佮aШEW>Kt[`h-$Z)w~Go@_Z_lCEPMYreHS_oh0SL5</: 2%IFR@.&%,cloZL\\Rgΰ|r8'F/UDST__h03T0#, ,+tPO`mlkۺh⠫ᠫŸȷxYwPBjrO@g8sg{`?EedS@ 272/#@ /0-&/?uPV[ils˦غh_Qj`Tgb8!/$&(1 Dbg;D4GpKnsnےҸIĢ|HX2j/yWguHGP:P)9Ruz:?6G:R#A/PS8*&O+mr{țy˱̥rWzewd7I6?I?$CH* J$Ox WX%kPoc|Nl}TfʀԤ}rΐ_؞¿㚲޷yay`k]w\E@S81LP>G^:Y(7cHO\P_[}P:OgɼXL<|pkpwXIna^dgpkǤiIJeɐ}P}widS}Hv@o0G8OoX+x0k_GR|f:OKH?"W=ZDW;P¢n{ӤkwѸ¥ȘsĺhhyJwlP?JlO`Ghik7koFW{)w4O{PGr:/_|G@UgyL?gxOx[xРĭtgh{VLWy=IO\?=Kg@?fGNTCo~\XTv}cpoTg`__{`f{ˀƞyhfvt|gamdwphK~kP_gĢʽؘygh_^d9@5+aHL?pi:=UMMWXUUbhrxq{\dZXKoP_pOlͬ§wഴūз¼ҠkvTGW`$\0C% 9>)/@0%.WRE>0`n:3T3^5>L9+=OJ3FTAX?YPaYL}YWtyͲ£ܝúmÔ͸{d~p@&5XG9FZ #)0??T+,%6.$WCNa<_Tuhhjp}bstӭŜԿ±ɺncuxPOSeJ>$?:;^=GC3D;MN3]L/eQbRJN,?QYcbqbn|{~ϥſЬؽqlneyhGxsdNFb4 C6.B#3 32&CHCAPPJQbEcɿǤΩv{vyrmdgou82I9KL3F/-<0>0?E1)["?A6.KCdeb]twrsḬ̑DZǴrvVXekpCckr_U8%n`2,;B61 "(&)+Q`8/M;KDWZ[v~|}w٪ปx`,rp2-\6 -38 ' #$":'CR6CU5OUM[nxwĞqv^^bKX]_GUVeG7=',6A,>?.+$  &-9@+C76DAfJstlql ŶʩĮŝra~l^v_[ho`MW`T@C^S]LwTWWKqcmno{s}Ru|ivayg|y~||xpf[tv|~~mqbq^ufW`AYOR[18<,9D #,)$28'47<;AQsnݽҩǸлzrVnZOp[V<@)=?4#&#*KT$+410:W09D_MEOeVut{оݲ˷irslxna^hXgqRC9LE4'?I%/ 0#6-QTIXUWrvjǴôżŨxcxQXWk``[QNGS\QOgdOValYkimyyzxuf]n]oQgdxQKgA_xbUFYpsjheR{nrqtf{tlxwqxojyyvmzfdN_t^[c`R_ZCE`XEC:*>N6.CE03RF>A=UPYFGlVofop|po|ڠ̳¾xtrcVSR0> '"%"$ /,BC:;CgTOVamndo}pgʮпͰ~lkla`RXJ?aLD6=04J*';7L0);@:'IB4GC?BGE?RdpTdtgwfZ˽ųºܸ´v|solpirv`ae\n`SNJPTZTBYbJINUTJIU45K9?>G<=@6=62GYPPLJ\`vl{p}ǰŸغۺwxvvhbvoVSYSQHVQFE:CAA/GBBD9B:O@JMI`W`ZaWY]tla~ƱİûyelmtdXMDDQLE8K07GDXM=J:6G]S_}v]j{nhkamr~zqqhvtky|tq{bkxYbwpX_ugdbZJ;lji\@Q\MECK[fVTcck^ap~lqz~qu}q{_xu}tjin`i{l\ev`]vnqyfjnt}fgkrqxf_cwbuyzwhXiwx}p{xx~}{utorwwo|pp~p|rw~eszdjyliRw~tx~}hw}nmyancwuwsshYVnx|j^jnosji~yi}zssxYgdijVPIZVFGMJYYPBTaNF_i`[jzjkmg}p_wtutqsxvij{wpkwn]S]XTLRF;9FJB19F>9=GMEDJHZmXUkbfb{~{zyȽƹ~|ujm~q`noffgsjcgg]_[]]q`R_bYogjeXPTk`fpfmcg|ns~www{v{oyz~mo|ps}mZNS[[QgPLNbR?SghXOWejtpjm}zp~rpq~}~oupiwz{zsrppa`sfklUOWJNFBUhZboܺIbT`[Z&I4,,?B=4>F?Pflt~}[/ BtbtoѾΠo[P[TUZI2,,?KP[t̾hK=,  ,>K[o~·tbP?2$,>Pbr÷lT>1 ,4BUfrþ}}rolhfb[ZTPKB>=21,   &/2=BIT[bhot~}ztrolhff`[ZUTTKKFBBB?>>??BFIIIKKPPPTTTTUUUTTTTTTTPPPKKKIKKPKKPPUUUZZ[Z[[`bbflloorrz}}~~}zrolfbb`[UUTKKIIB??=4221,,&$$  $$$&,,//112==>>?BFFFIIPPTUU[``bffhlorttz~~}trlhb`ZUTIIF?>411/&$   $&,/24>?FIKTT[`flrt}¾}tolf`ZUTIF?=21,&$$&/12=>BFKPU[[bhlrtz~¾~}ztolhb`[ZUTTPIFBB?==4411/,,&$$  $$$&&,,,////1112244===>>>?BBFFIIIKKPPTUUUUZ[[`bbbffhlooorrtzz}}}}~~}}}zzzttrrrrrrrollolllhlllllhhhhhhhhfffffffffffbfbbbffbbbbbbbbbbb``bbbbb```````````````````````````````bbbfffffhlllloorrttttzzzz}}~~~~~~~~}}}}}}zztttttttrrrrrrrrrrrrrrrrrrrrrrorroooooolllllllllolooooooooooloooorrooroooooooooooooooolooooollollllllllllllhlllllllhhhhlllhhhhhhlhhhhhhhhhhlhhhlhhlhhlllolllooorrrtrrttzzzzzz}}}}}~~~~~~~~~~~~~~~}~}~}}}}~}}~}~~~~~~~~~}~}~}}}}~}}~qvvyz~~vplgf`^^]Y]`gkkkkgkllpy~vlfglplg^P: ,R~ϷzX2 2MfylP=-)#'1@R`p~q]@8,',--18=FPY`kpzzyvpg^XPMMKI@==:21-122-)''),2:=@IKPY^`^^`ffggggklv~~~z~~~~ypllkg`XK=211-,)#  ##'),-128:=?@FKR]fkpy~vpf]RKF=2-)  '-2=@KPX]`gpvz~yvqplgf`^YRMIFF@@@?==::8211-,)))# #''),-28==@IKPXY^glqy~zyvplkgf`]YXRMKIF?=:21-)'#  #')),--1288:==?@FIKMPRXY]`fgklpqvz~zyvqlkf`^YXRPKIF?=:81-,)#  #')-128=?@FIMPRX]^``gklqvyz~~zyqplgf`^]YXRMKIF@?=:821-,)'#  ##')),,--1288:=?@FIMMPRXYY]^^ffgklpqqvyz~~zyyvqppkkggf``^]YYXXXRPPMMKKIIFF@@@?=====::88222111--,,,)))))))))))'))))))))))))),,,,,--11122888::==??@@FIIKMMPPRXXY]^`ffgklpqvyyz~~~zzyvvqqpllkgggf``^]]YYYXXRRPPMMKKIIFF@@???==::882111--,,))''#######'''')))),,,--1112288::==?@@@IIKKMMPRXXY]^``ffgklppqqvyz~~~zzzyvqqplkgff`^]]YXXRPPMKIIFF@?===:882221111-------,,,,-,,,,,)))))'''##################''''''))))))),,,---1122288::===?@@FIIKKMPPRXXYY]^``ffgkkllpqvvyzz~~~~zzyyvqqqpplkggf``^]]YYYXXRRPMMMKIIIIFF@@@@@??===::::882222111111-----,,,,,,,,,),,,),)),,,,--------------------11111111122228888::::====???@FFFIIIKKKMMMPPPRRXVYYY]]^^^```ffgggkklllpqqvvvyyzzz~~~zzzyyvvqqppplkkkkggfff````^^^^]]]YYYYXXXXXXXRRRRPPPMMMMMMKKKKKIIIIIIIIIFFFFFFFF@@@@@@@@@@@@@?@?@?@@???@@@@@@@FFFFFFIIIKKKKKMKKMMMMMPPPPPPRRRRRRRRXXXXXXXYY]]]]^^^^``ffggggkklllpppqpqqqqqqvvvyyyzzz~~~~~~~zzzzzzyyyyyvvvvvqqqqpppppppppplppplllllklkkkkkkkkgggggfffffffff````````^^^^^^^^^^^^^^]^]]]YYYYYYYYYXXXXXXXXXXXXXXXXXXXRRRRRXXXXXXXXYYYYYY]]]^^^^`````fffffgggggkkkklllllpppppqqqqvvvvvvyyyzzzzz~~~~~~~~~~~~~~~~~z~zzzzzyyyyyvvvvqqqqqqqqppppppllllkkkkkkkggggggfgfffff`fffffff``ff``ff``fffffffffffggfgfggfggggggggggkkkkkkkkkkkklllllllllppppqqqqqqqqqqqqqvvvvvvvyyyyyyyzzzzzzzzzzz~z~~~~~~~~~~~~~~~zzzyyyyyyyyvvvvvvqqppppppppllllllllllllllllllllllllllplplpppppqqqqqvvvvvvvvvvvvvvvvvvvyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyzzzz~~~~~~~~~~~~~~~~~~~~~~zzzzzzzzzzzzzzzzzzzzzzzzzzzzz~zzzzzzzzzzzzyzzzzzzzzzzzyyyyyyyyyyyyyyzzzzyzzzyzzzyzyyyzyzzyyzzyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzzz~zzz~zzzzzzzz~z~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~z~~~~z~zzzzzz~z~~~~~~~~~~~~~~~~~~~~~~~~~}}|}}}~~}~~~}}}|}}}~~}~~~}}}|}}}~~}~~~}}}|}}}~~}~~}}}}|}}}~~}~~}}}}|}}}~~}~~}}}}|}}}~~}~~}}}}|}}}~~}~~}}}}|}}}~~}~~}}}}|}}}~~}~~}}}}}}}}~~}~~}}}}}}}}~~}~~}}}}}}}}~~}~~}}}}}}}}~~}~~}}}}}}}}~~}~~}}}}}}}}~~}~~}}}}}}}~~~}~~}}}}}}}~~~}~~}}}}}}}~~~}~~}}}}}}}~~~}~~}}}}}}}~~~}~~}}}}}}}~~~}~~}}}}}}}~~~}~~}}}}}}}~~}}~~}}}}}}}~~}}~~}}}}}}}~~}}~~}}}}}}}~~}}~~}}}}}}}~~}}~~}}}}}}}~~}}~~}}}}}}}~~}}~}}}}}}}}~~}}~}}}}}}}}~~}}~}}}}}}}}~~}}~}}}~~~}~~}}~}}}}}}}}~~}}~}}}}}}}}~~~~~~}}}}~}}}~~}}~}}}}~~~}}}~~}}~}||}~}}}~~}}~}}~~}}~~}}}~~}}~|||||||||~}}~~~~}~~~~~~}}}}~}}~~~}}~}}}}~}}~~~}}~}}}}~}~~~~~~}}}~}}}}~~~~}}}}~}}~~}}}~~~~}}~~}||||||}~}}~~}}}|||{{{{{{{{{{|{||||||}}~~}}~~}}}~~~}}}~}}~~}}}}}}}~~}}~~}}~~~}}~~}}}~~}}|{||{{{{{||}}~~~||{{{{{}~~~~}~}||}}}}}}~~}}|{{{{{zzz{{z{{{{{zzzzz{|{||}}}~~~}{{{{zzyxyzz{{{|}~~~~~||||}~~~}||{|~~~}|{zzzyzz{|}}}~}|{{{zz{{||}}}}~~~}~~}}}}}}}|||{|{xyyxxxwxyyyz{{|}}}{zxwuttttuwxy{{{{{{{{|{|{{{|||||||||}~}~~}||}~}}~~}{xxwwwwvwwwxxxxyz{|}}~|||~~~}}}~~}|{zyyywxxvwxy{|||{{{{{zzxwwwwy{{|{{|||{{{zyyxwwvuuusrrrsttxz{}~}|{{}~}{zzyz{{~~~}|{{{{yxvusrrqrtuy|~~{yvutuwxxzyxyyxvuttuwx{{{{{{{yxusttvwx{}|yvspnnopqrttuutsrpqrstuvwxxxxxxwxyz{~~}~~}{{zyyzyxyyz}}{wtsstuwxyyyxxwwy{{|~}zyxtrqqqtututtuwxxy{{}~~|{yxwwwz}}{yvsrqppqsuuvuuuvxxutsqpomjfcaabdhms{}|{xxyz{~}}|}~{xsnljhhiloty|~yusqpqsvz|{zxvvussutvvvwwy{{|{{{{{{{|}~~|xtolihgdaabfiloty|~}{wsokihhiloswz|~|{zz{~}zwspmljgfeehknptz~{zwuuusrsstwxwxyy{{}~{yvsstvz|{wtsrssrrqqrrqqqponoqtvxz|}|{zy{||}||~}{vrqpprtwz}|wrmhebaaaacfhlorw{~{xurqqqqpnnkhffgghiknqtwxxwy{{zyz{}}|yuspnjggilnsz~~{uojggilnprux{~|{{zxvuvz|~}{yvtttuxyxxwwy{|~|xsnligeffiknou{~|zywvpmhca`]ZXVTUWY]abgnsy~{yxuqommnprsuvwxyxvtroonkkjlnnprtx{|~~}}|||}~~|{|~~}{{yxvspnnnmnpsx|{xuple`\ZYZ]aels{}|}~zsqonic^ZVUWZ]aelpx}~{zwqnkmquxyz}~{unljhiknu{{vtqmhfgimpppqsw}{somiedeipx}|xutstwyyywusqnlhedgkoqrtx|~~~}{wvwz{}ytpopswz|~{vtrooqsuwy{{{xvronnllmov|~{z}~|yxy{~{tnheffhknnquwxwtonnnpqsz~{|~ytplgdcceimopqppprtwyy{}{wtsuvwwwwvvtqrtx|yrlifddb`_`a`_acjot{~{xxxxxwvx{{wwxyxtollmmjheegkpu{~~~}{wtsstuw{{rg_[WTUVXZ^accdgimorv{|{zxwxz{{|{{ywwy{{}}yuolgca``chnv{|xtpoqstx|~zvtuttssuvuutrrrqpprv{|{{yuohc_^\[^`dlrx{~~wpmic`__chkllhe`XSMHGHLQYfs}~yvsrqonmlnoqw||vqoorx|~~||{zxwwx|~|{yzzuqopsw|~|{yxz}{riaWTU[blv}{wrpqu{}vojghhhhilry}}xof]VRLG@=?DLU^bgnw{}|}~{vqppqponnnoqrppqsy{zwspqstuvuttsopqqsw{~|umd[RMMS[aglqy~zrlea^[XTPONPW_emu{}{qjaZRKHHLVamv}}zvsuy|}uponkkjkmmliknqrrrtw||yvssw{~{vssroorsqnkilnmmlkmpsuz}znb\YTKC<;@GLQU^dmv|{vplgd`\\]afknu{~|zz{{yvuv{~ytokhfdefhlrw|~vnc[WY\^dlt~~{zxsnnpsstsqpoptvwxz}|yuojc^[YWVWW]cjnsx|~}~}{wvxz{}{xtplb[TQNKKNT]fq{~|{zwvuw{{{zy{}}{z|~{}|umjgedeefkpw~~~{vpnouwyz{~{yxyyyxwy~~}}}{vpqyvlfc`\\`bdfghilnmjheeinsvy|zvtplhjnoonoruz|~{xspsy~{vnklpu|ytrsw{}~}{xxsnkecehiknoqv{}}{zz{~|{|ztmijnoopty{}zurqruz|~}zxsnlhfeefksz|rjda^]\]_admvyxustx{ywux~vnf`\YZ^`acfmv~ztnmnqsssuuvtnga_^\[WVWY^dkpw~sha]WQLFA@BGOTX\_bis{|zyz|||{{{{|{zwtrpnigb^Z[_aaaciqytg`XPGCA@>:678559BL[hvztrtwyy|~xrnotuttw|{wqnjjjkkh`XTPPT[]_clzqeZRNMNRV[amuy}|yxttz~}{zwromigfeefimpqrv{~|wpkjhecdilqz{wpkgeehjklnptwwx~{}{toqrspnnotxxvvxzxqorx}~~{tjaUME=;>CJQTW`glorvz{{~o_TLIJPW`jsw|{pf`\]_`aacfkns{ui\PHGLTZ]^_abeggcaacjs}yqlijnsxxria\]][XVW^jx{xzzwuqkaYVXXZ_ckswyywrnhb^]\^cis|xk`XTRW^elprqqqnf\TTW^cgmw}vrqmiiims{zj]TME?=AJXguwnjfa^XTTVYUQOPSW^gp{{xvromg`YTLGCBEKUalxuh`YQKJKOTWZ^clzytnmlmnosy~ysnnnmjghms{{tlfdbcfjox¿zl_TJFDGOW[^agq|{zvuuuronkhd^YUUXany~{tkeeilljhgea^^adfhls|{qg\PGC?AFJTan}|xvvy|~}}~}vpjd`]\\`it~rf\SJFDEHLMU`ipw|}wne]XVVUX]dmv}zrme]TOHFGKS]gpw}|tkb]ZYXUW\bknry|wv{{slda_aemtw{xnga[TPNT_kxsdZTQNIGEHJMQV\ckorw|xk`SGA:5459>ENZhr{nYG=:;>ELUao|~ukc`_[XXXYajr|~sf\UUWVTRPTZbmrz~ofba\VTXcr}{thYOMQV\biqz|yuqomnoqttqlhedd_YUVZ_djmlkjhb^VMHJQZdmwxoga_`adfjp{ungbbaaeluzuonmnr{~nb[USRT\hvxfWKC?>AHR[euwlc_\YY\agmqx|zxrlcZRLGEB>>@EIJMRW[\]\\YWVW^dkrz{qidb`^\[\_fnw~{uolfa`afo}ƿwqqonnnqv|{xuqfWLD<:=CINT]jy}ti`WUY_fnuxodXOGB=::>@?><@HRY\]`gnrtsu{~~~~|{yqi_WTWWVUXam|~wmbZY\clw~}}{yyxz}{voib[TMHGC?8-'(,5CPauȽtfYL@8:CRaq}wqnnkfccfjotrpppqqmjjkloqrsuz~wnf^VUTTTPG@?DHKKIKUao{wnf_ZXakt{}qnonjbYTUYYZ\aflqvz|ʽ{reWONRX]`ahs}}zqidenx|zurnid`^`cgggfghinrtuvx{{}||}}|}wnaTB/$$2DWit~|pd[SNJGGIMRUZcp{}{}zog_ZVTPMLOZiyreYSQTZ_go{wi^USPJFBA@@@EO]gkhdfkr{|yuw|}vnbTG=2&!%-9J`p}~uppwtfXK>88;DLPWalu{}xsonoonrzɻ|l^SGBFLU[^ep{~xofa^[YYZ^ivukeaXQIBAEKNPSX`hjhc]XTRPPSW^gsüuh^TJ?. #(/:I^lu{||~}ztsu{Ƚulc[SMHD@=<=BHSamu|~{tla\\afmt~ȼ~zsi^UQQSRQTVZ]][Z^_]Z\akt|{qgca_\WTRSVWXVTVZ`deb_\[ZUPNPWbmu{ȹxj]TMF<1)# #(-5>INVan|Ļ}n]PFA>:7/,/8ALWdrvi_WQNOT`o¾vdVH=40---29CGGEEKU`hr{Ƽ|ypf\QJGC:1--0:HYiu~{ogbaa`blzsaRB60.-.8GXhqttrpsy}|z|¿tjijg]N?401/-+)-8GYm}ƽ{pcXPHFLTUUTUZ_cehknt~zrnnmf]TNLPU[_`aflv|vqnkhgddhp{}umfaaacggdcdhp{paWQLG=3/16?HOQRSTZbkppsx{~zj[RMKHGFISap||yurmidcgkmmlmnnomga^^ahnpu~{ustx}zma`eknnqy~|o_ROTVTTW]gospmcZUTSUY\ajv}zvqnnnx|kWH?::>HTavӽ}dN:-# *2:@K]tzi\VY_cfknu{|xqi`WQNNRV_n~vldZSRT\hz{rje_XVTRKEB@AFLUap~rnnmhgiow}}{wsqolc^\\adfhhkp{|ocWNHFGN\oĹ}snf]OC?AGMQSUYbn{}pbVRPQPMKMNPT`nz~}qgba_[YX[ajnszsaSGBBCCGSbu}{zyvpf_\YTOMR[jwxkaZUTX`iqx}xeRD8/*%'+5ARaqsdVG;46AOX_enx}oc\UTYcp~ľ{wtnd_]^aehmprv|weTH>86;GS^k{~{{}~ztple^XVYalvzsnd][_bejmnrtv|yeSE7-)*/7AJWepx{~xuw|~vk`XQJEDHQ`mw{vqpqu{o\J=866:BN^pwpjaWRS\hs}wlaYVX[\\Z]epy~paULGFFITaq~}se^[TPPSTW_hq{ui`WTPNLOW^emniedfikjhks~sgYG6*&+2;EPZgt{wvvqliilnoog^ZWUVVY_fnruz~vnkf`\Y[dp{zqg\TRQPPQTY]____ckou{vmffjosrokb[WSNKGBDJTao{ʿ{pcYWXYWTTV[`aabeea][\aimqzvoprrmkouy{|{{ztooorsqps{|vnf^TPTZ`fhkrz}yz|gVMKLKF@>DR_inpppqsvusty}ywxzyyxtqqpqonnqx{smimtuhYH:2/.2:BP^lx~vqlc^XTTTZclqtz}~}vlcaaa``agnu~{shceknnqruyzww{znaTLIHHJR]hp{}rhbddcdgmu|qlnqqprxwmgaUF8.-7EMTYbpŽ|wsqprx~~|{wnbXUU]eigehmqw|wka[YVX[_dlrwyyuspnkhfa\XVY\`a[VX]djov|tdWPLJLPU_jw{smkkmje^VRQRV[_jzŲ{xxz}~yuoke_XRMJKNRVZ\^bn|DZ{pf[TV]itzy{{tnlkkklkhgggffilqyɼsg^XUSTY]agmrsplic^XRKHKPSTX[ajosy~~rf]WQMLOXcnxymc]TPOOPT[aiov~¼|xtqt|~wlc^YVWZahnx}wssrplmnqtvz~~vmaXTOG=9IZn~|{jVI@92..4=JT]bgihikjiggjnx}jYMFA826DWlyysstuwz}~zpga\UPMMQYdn{xmd`ZTSTUZ`fo{}{xnga[SI@846=CDDKWeoqmfgnuwuonou{{z{xwx|}yxxupjehnx{x{~~zvtx||zxyyyut{}}ziYNJKNSU\ft|}}ytnjhmv}Ĺ{kZOLOTW`jw}xrjfefhp{ĸkT@5-$->Qbr}}wpjginpoljkmnmkjmuxnjgedcfjnt{||{zwusnjhhkoqrsx|xnaRF>:9:AKXhs}tlgb]UNLPZgvʿulebfr~~n^I:20256:KemZJ;3358=DO\jxxngb_\Z[_hs||m_SJD?=>AFLVahknvǼ}l[I9*&)5BKQXet{vsrv}κ{`G0  "7HZlƻqf_[YWTV]dlrurkeca]XRMRasǶvhZNFCCFJS]hou{nWH;-#!(19AHTdwýlZMFDFHLQSTW]aa[PGEIR^n|òynaRHGO]gnps~ís[A(")3F^yxttrmaRG?===98:AQi¬mWA4-,/:FUeqx~{unaN;0-/24:GUcryh]XVTPG@?BEFD>515@N[gv˳t\MGC?>GTgxzn`N?9:>?@HYoxpnqx}wgWKGIMKGGO[aipzȻtdUKGGIPX^bjpsqnkklnsy}zpeYNC98>M_n{ɽ}qaN>89977:=ENV`hnsw|ͼ{hYNILPU_kw{n\QNQTUQNLR\jz{z|vk_SKID>::BP]emv}n]LD@>BFILR[gvxtqme^VPQU]cmruy}unke\QD711249?HTcsziZL@:749ETfy}snmmnpx~zy|zwx{{rkc\TJDBCIQV[hz}qaTKHIJJLR\hrxvngcehg_WV\guƾ}uolgglnnkfaZVWVQGB@GT`myx_G2 !.92--3;GUmǬynebabefeaWMGGHG@::BN[achkkea_^aftͼzspnnoorutoicaee`XTTY][ZWTIB=AGKVew{nf_\^elqwyyytnfaba_ZWY_eiknnmgb`afq±rbZ]dkmid_XUWVTRRRU]kx}{zytopy;xk[SVap|~{urssncYQJGHMRRQNLLNPT\l~Ƴ{gZW\agmrtqja[WSMGDDGMYetth^USRRPLNVgz{sjaZXYbnw{||{|~~z{~{rg\TIB:9=DKPT\guƻzjZNHGNU^jz|tmghllf_Z\afgefjt~xngbcefd_WSNIGFA>?DLW`hr|ug[QF5& +9GXi{vkb]ZX[^`clz|z{{{wtplimoqrqonq{vgZRMGFIUgyuniaXWZ`gkilqw{~||zvx|ypi]NA9889=HTctüwhZOD5)!!$*7I[osaK91-.3=M_o}vpnqx}{xuuy|}}{}t`K7,+0?Vq®nd_ZTUVX[agjmoqtz}qke`\]dts^G5)#%.>RfxĻ}xndXI9,$"#(0=Nhs`J1 ,;K]o}}yz~xojb`eouy{~qaUKA:;DTg´udWKC?>?>;=EO`r{xyq\G4%!&0;FRcxwkb^ZRLJE?@AEQduyeQ;(/EZjt{~uj`UORVY[XW]ei^PA:;AJUan{ɾwmbUG9,'+5>EKTf{sd`iup[MD@84:FVfu|n^RJMT\cpʽ}sld[QG;0-1:GQ]gox}{pd_aht}umnry}}}yocS>+&:OcwмxgTD836:AHT`jr{wcQ?635;J\l{yk]TQOIA:;ETcrz{{}ync\^doxxx{x\B,  1Jgɳ}bNC;99:BQd{{gZW]foqsx|pdWNGA=;@IR]jvȽlUF<<<>?@FNXdmsy|o_TMJHGHLPSY_gjiiiggnv{~~yy~~zz{cI1  -C[pź~sjcacjs|paTOPU^hq}ȾrcRFACGINT[bku~|lZMFDFGJOTXansrqnmovz}yndZOGBCKWbioy~{wpmmpw~{wuy~Ϳt\D0#!+9GVbn|{neba`env}~xnd`fxr]ONRX]`aenx{slgb]XX[^cdccb_YVV\ciozķybL;2-06>K]nx}}qga]YWVUXbrvnlnr{ug]TNJGGEDFLVevtgZPOZhs~}unlouyztqsz}{vtw{~~{wrqtxyyx{~{yvpg^SHCCJPU^hxq`SLKMQV[]`enywlaZXYXTST]fouwxxz{}}vlglry{~r`OC8/*,1;GUf{~{zyz{|{{{}}{{{~~wpnpqsvwurqtx}zeTPNG@726DTdpx}xnaTKGDIR[bmx{srtuy|{od\TQLFDGNV_gq}˿|kXG:/**-/6AMZen{|wsruy||tokiijjjjlp{wi\TLGB;::AJRZfsmYG:0--3@Qev{rmifgnx}m_RID?<:@CFHS`n|xgZOHC@?@GUh{Ǻxi\NFFNW^aemz}{z|}xtsspljiijkjjnu|taOC@>?AEO\môsaTJEDFLWftyuuobTILWft{}tj_UQNRW\__cn}}wneZSNOWepsw}qeZOHGGMRV[afmqsrru{¼zna]afkmjebcdea\Y^enty|uha``^ZWW[cnw¹sg^WPKILRYciklmlieba_^Z[`l{~ytmcWOLOOOPTZdpwxw{{xrnnopnjioz{urpmgba]ZXTPNMMOT\gq{}{{{wqmfbadfedeilpw~|{|~|{z{}}vqjedbbdca_`aa_UMJMRX]\]cnv{ɼ~hP<- "0>Oao{~{spqw~{snkjkmpw~~xoe\TMGHOV_hp{qeZQGEHS`iqvyqfa]TMLUar|pllnnnigknttne_]acba`bfkrw|òkS<* !+9HYj|{rlbYQOOS]isx{~~xncakt{{zz{nfa_]^`ckt~zoe_\YWW\hqx~r]H8-,-39@M`v}wvxzxtnkifb_^bjryyy|}vw~ľkWH=5-'+6DTaq{pfVF90/4:?GSapz~xpnry}wqjaYUX]fnvxpmmnnsy}t_L=4,)*1:I[lz~upnnnnoppnihikmnm}}}yyzzzzzzzz}}}}}}}}}~~~~~~~~~~~~~~R\[[[\]]_aacdffhhhilmmnnprrsuuwyyz}}~~RacddddffhiillmmnnhhiillmnnprrssRGLNPRSVWX\]_acdfhillmnprsssuwyzz}}}~~f[WX[\]_aaccdffhhillmmnnprrsssuwwyyz~NVPPRSSVWNGKKKLNPRSSVWX[\\]_acc]=EEGJKLNPSVWXdz}}~V]acfffhihiilmmf[]_accffhilmnyyzz}}~~}h_]_ccccdffhimiPSVW[[LNPSVX[_lliKFJLPSVWW[[[]adfilnprwuyy}~nahimnu}z}}~~~~~~~}zzzlBNRPRSSSVWXX[\\]_aaccdff\SWX[[ilmnpprrspprrrsuuwwyzz]hmnprrsuyz}~V\WX\_chlmpruy}~nS\_cflnrrflnrusVmiimrpswz~[KSX_crЮ}}}zKWW\\\]]]_aaacdffhhhhfffXWWX\\\]_n~wrlcWKJGKLLLNRW_nfihilmmnprsuwwyz~~SSSKLPSW[]adhlliEJLPVXWLSW\_cfllKLlpunnsupruy~h=/9S]fúr~}}zyyuaFAEFFG:FK?69999969:AGJJJJKE9+0015556::?Galiiiha\NPPRVWWX[_}yz}~~smnprssuwyzz}~~~}zwusrsuwyz~wuuyz}rzulsy}wry~y̲ifmsƓladffl~]cSPPNLLLLLN_npnmmlX::==ABBBEBGRVfXPG6#(1?GRczrssssssuuwyzz}}}~~p]]flpsy}W_X_flrswz~f\_adhcW]aflnsw}wa}}~\?KKKM[iV/,5@Rm⑚{ri[{oi][R&/;F[{R{vmc[vld]VF+4=Mddi{vl_dric[V;,5DTv怚lri[{oi]XT+/;Kc{Rood_vlc[VK+4>RoШ{lovl_ori_[V;,;D]zـ]{ri]zlc[VR+4>RlR_zrillc[VR+5D[oǨ{dzmd{ri_[V;/=Kd{Rilzillc[VT/5DXo_[orcvui_XVR,>M_{{Tzlcrd][XF4DTlRlVvivlc][X4;K]vo[_ri{uic][T4DTd{RRdloric][F5K[oRrMvl{li]VV5;R_{{]Rvorlc]VV4D[l5R[r{oi]XVF5R_z…RM_uli][V;D[lR{[Kl{{ricc]V;T_v/RR{micc]R@Vd{RrKTlic][;R_o/m[Kduic][V;T_z;vRF{mi][VFD[dR_{MRvlc][X;M_o‘4]]Kdrlcc]V@Vd{[KdRKli][[KR_o¨4TvK[uic[X[>Td{;V{iMomic[[VD[m;K_R[{vic]X]FRd{4RolMd{rid][]>[o¹R>T{[[iidc[_RKdzǔ4D_Tivricc[d;Voþi;Mml_d{lic[_TDdzǨ;>[{_cdlic]dFRl{5Kdd]dri__ccDd{ǨF5Tori]{iic_dRRo…/>_{r__ri_cdiD_{DZR/Mil_didcdi[Kd‘4;[oi]{{ricdiiRTvþi+Kc{cczldiiicKdè;4Rivlcori_dicVRoþ&@]ooc_zlc_diiK[{ȨR#Rcizr]lvi_diccRl/;VmVic{oc]icdV[{Ǭi#D_idcdi_ciciRdǑ;/TlRvl[rui]iic[VoȾ&D]]R{c_{ldclddVc{˨R#RiR_]ovicdiciTlȅ&5[[Kdl_{vrd_iid]_{ȾiK_KR{_l{lcdiiiTlΨ/#TVK[]{oidiidiVoȀ>[DRdiduriilii[_{αRRRFToc{{liliilTlˑ&4TDK]{dr{lloliiVvξKFFMdiooriliid[_Ш;#K>KXmi{vollmiioTlȑ;>@F_olrrlmlliiV{оiF5DRl{ǬrzmormolimccΨ,/;;F]oiuizoroldoVoȀ=4DRdoǯooi{rulllo]{йR#54FTd{¨{ldrurlioidΨ&4+=M]i{ȹmridrvrllr]vȀ//@R_oȨvlcdvrullovc{ԾR#&5KXc{¾l]ovvullrroШ&+#;M]dȱriXvvvrmozl{ˀ,>R_oȨl]VzuummuiԾR4DVc{Ǿrl[[zvrmmvoԨ&;M[lȱri[czrlo{r{΀ ,>T]uȨl]Xdzvlio{m[4FVd{¾ul]Vlriiroױ/;M[ldzri[Rooilzzԑ&#>T]rȪod[M{voim{{Ȁ /DVc{¨odVTricuپ;4KVlóvicT[oidvvר ;R[vǬui]Rdoil{{Ԁ #DVc{¨oiVRlmdoR ,KTlmiVVoul_oھ&5R[zvm]V[orid{ّ>R_{vo[[]oociԀ#@Rl{vl]][omco& 4F[rui__Vuld{ި4Kczrc__Tuilـ;Rl{lcc[RudoR#>[oiddVRldv޾& /DdvudddTRiizި4Ri{mdi]RKil{ـ4[mlii[KKioR#;coiliVFDlv׾;#Diz¬ilcR>Kl{ڨ&#Rl{li[K=Ko{ԅ 4_mroiVF;DrȀ>drrriTD5Kvо[KdzǾurcR=4M{ШR#Rd{˳zl[K;/R˨//Tl{ȱzi[F54[”&;[m¬viX@4;[ȹ ;[oоriV;/;dñD_vоoiR4/>d#Mc{ԹoiF44DvR#Rd{ηo]=/5K{;4Tl{{ȹoV;/;R{& ;Voz·lR44@[{&D[vviF/4K_{ #M_zvzc>,;Rd{i#Rdzu{ԾrV5/>Td{R5TlvuιlR44D[d{; >VorvȳiD4;M_d{;D[moz³c=5>Rcc{&#K_lo{׾V;5DVdc{i /M_luԾR;=F[d_[;Rclz˹lK=>M_cdvR>Vcm{ȹi@@@Rccdz/D[dr{³[@D@Tccl{&#K_drRD@@Vdcoi/R_lz˾RF>K[dc{V ;Tcm{ȹiKK=M]id{;;[doDZ[KF>Rcicv&#D_iv¬TM>>Rdicv /Kci{ȾRM=DTiiR{[ 4Rdo{óiTK=F]icKF;[ir[TF=KdiVR&#D_lvξVR>>Mdd>dl ,MdozȳRR=DTiVD{R 4Tlu{¯iRK=KVi>R;>]mvξ[RF>M[[>[&#Fdo{˹TMDDM]>KlV,RmvȯRKDKMV>T{;;[ozlRKKKM>D_&#Ddu{ȹ[MKMKF;RoV,Rlv{¬RKKKF/@[/4[o{ξKFRF;/Kd #D_{ȳiFKRD&;R{R,MdVFRK5#>_/;RoȹKKR>/K{ #@[zrFRK/#4RR/Kc{ȹ[KMD+=d&;RlRMK//D{i #D[vԳlKM>#;RF4Md{Ȭ]KK+/>v&#;TlپrTK=#4RR,F]oԱulRK&+>d/4Rd{˨mcR;#4K{i #>[m rlVR&#;d;/M_{ԱiiT;&/D{l #;ToΨrc[R/#;_;#/F[œi_V=,,Dv +;Rvгu[[R;,#4[{R#4D[ȬiVT>;&+Do{ />MovVTF>5&4Rz{R#5F_{˱lMK>@/+>dv 4>[dǨvVK>D>/4Rv{R#=Rco¾lF>>K=/>du ;Fc_þV@;DK;5Rov;/D[dorF5;KF;@_m{ =T_i{ǹ[;4DMF>Rlo;/McdrF54KMFK]i{ @_io{ιi;/;MMKTci;/Xim{¯F54DRRR_]z Ddo{{Ծi;55KTR]cd//[m{{ȱF55=MV[dVv[Kdvv׾;5;@R[cc_//[o{ԱR;;=FV_iVoRKl{Ǩ>;>>M]iid{[& /_v{ԹR>=@DTdl]u; Do˨D>>@K[mclR4[{ԾRD>@DRcodzi/ #Dlά@DDDFTmioR;V{¡R@FFFK[oi{]&#MdԱ>DFFKRdivF;]{Ȩ[>FKKM[ii{i&#RiԾu@@KKMRdcvrR>_{Ȫ[>DKMRVcdi&#RiԾrF>FKTT_]zrRD_{ȱi>DFRVX_dul/ RlԾuR@FFTX_Vvr[#_{ȳi=DDM[][_{mr;RlξvV=DDT]cTouoi ]{Ǻȳo;@FK[c][zirF;l¹i;DKR_dVlloi& R{ȾǹrF>FKVciVo]rR#dǺԾi4>FM[dcddll& ;{ȳuR5DKT_o[iVr[[оl;>KRTdl_Vdr;/oαc4DKRXoccToi Dþ¬rR;DRR_r]RcvR#dùǹl;=KRTli[Moo& ;{±¬rc5>MR[u[K[v[RlR;DRTdlXKlu;/oǹi=;FRXo]KVvi Dïri5=KTclTKdvR#[ȾmR;@KVo[FTrr//{dzl>=DMclRDdzi Dξri;>DRli=RovFdȹo[;@F[oR>_zr&/{³lR>>Kdl;Kl[ K˺ui>>>Rl[4RvF#dǹrc>=D_lR;d{r, /vlT@;Kdi/Do[ D{ȹviR==RdR/TzR#_ȱriF;>]d5>d{r; /ooi>;K_[,Mm{i >{ȹvr[=;R_>4[o[[¬vuR;DT[,D_zv;#mȾzzr==KVR/Rd{r& ;v±zi;@KV5;Td{i R{پ{V>DMR,MVoR#cԱ{F@FM;4R[z>/o¬{{r>DDK4>R_{/Dz繬{{i=DF;5DRll&R{ޱr{i=@F4;KToi#_Աl{z[>@=;=K[zR#oԬi{vR>>4>>Kd{; ;z羬crF=>/=@Ml&R{澬r_l=;;;;DRo [ޱldi;=4>;D[{i#dٯiiv]5=/>;DdR/oԬilvV5;4=5Ko;;{Ԫvio{uR;/;;;Rv& RȪuiml;=,>,;[{&dªrimi;5/>,>cl#oྪrilvi;,4;,Dl[/zڳoidr]5&;5/MrR;{ٱocol[/,>/4R{;R{Աmcol[&4>&;[{/R{ԱvldovlV5=&>_{&dԬuiiouiR#;;+Dd #lԪrmiiri/,;4,Dli#oԬroidri&4>,/KoV;uԬvrcdoi&5>+/RvRDvԯzr[crR+;>&/V{F Rzԯ{oXclF,>=&4[{;[{ԪiV_i>4@;#;d&#d{ȨiV_V>5@/#>ll #d{⾜iR_R=;D&#Doi;lⱔvcKVM=>>#RzRDoިucDKT=@;/[{> R{ԨrV>DX;D/4_{;[{ԠrR5DX>>&;dr&#d iK&R[>;#Doi /o׾]>[[=/#Rv[DzԱV/dR;+/[{R R{ЬrR#l>5&4_{;dΨiF4i;4#>l{&#oȡc/;c4/#Km{i ;vȜV#DR4,/To{[R{оrR#RF4&;[oRd{бi,,]55#D_v/#lΨV+#;T4/+Kd{l DoȜu;+#KF4&4Md{iR{i4&#R;;#;RoR_˱R4&/R4/,>Vv&#o¨l;4>K/,4D_{l D׾V;,K=/&#;KdR d˳>;&#K/,/;Ro;#{¬[@5&;F&&+4>V{r&RԹR>/#@=+/;D_[ {άlK=,/@/=Km;;{ȪVF;+;;&#,;>Rvd׾iTF4,;5&4>D_{V#oԬVT=/;4/##;@Kl;R{ȨlTR;/=,&,@DVo #d{پVTK4;5+4DKc{RDmԱlRVF4@,,#@@Tl/[{˨z[RT=;;&/FD]v#llVRK;D/;@Rd{RDvٱu[TRF=D&#DD[o;[{ԨiXRKDF;/@Rdz#oȚ[VRFFK&#;@[m{RD{ޱiXTFDM>,5Mdv&[Ԩ[TR>KR/45[m{i4oȔlVRK>RF,/Ddv;D{ޱcTKD@V;4/Ro{#RԨ]RF>KR& #/;cz>;{޾oXK@>RF 4/Ko&#K٪iRD>DT, +;[{R5dȜcK>=KK,/Dd/D{ٱ[D;>M/ &>Tz[4RԠlR=;DF&/Kc;@vԱiF;;F4 >Trl/Rԡ[=4=@&#Rc{R>oоuR;4>/ @[o&/K˨iD44;Rd{R>oǾ[;,5&# ;]o&#RœrR4+5# Rd{R@vDZi>,,&#_v&#V׾V;&+#DlRD{άlR/&&[z&#[‘c>,# ;l>D{ԱrV;&&R{&#dΑ{viR4# /d;D׾{o[F,Rz&#dԑuzuiR; /d;#;€oul]K/ D{++dԨrmmiVF +d;4;Ȁlli[R; &;{/4dԨoidcTM#/R;>>ȁii_[R; ,;{i5@d٬rd][RM&5K;MFԑicVVM; +>di;Vo޾c[TRK,;K{;RǺoV;id>+ ;MVVciñFM;K5&MR[]drd@5i{;, ;R[_ii>>;R/#MTcdioǹd4/{;& ;R[ill纳;4;d+ FVimmrбd++{D /K]luo纪;#;d/ ;RiuzuЬd#&zR,F[o{æD;d/ #4Riv{٬d#&{R&&;VrǦ{D>l; #,>c٪[#&z[&&/RlΡ{DRlD#+&;VٱV#&v_#&,,>iСv@R{dR #5+4RrR#&o]; #&5,;[Цo>R{dR;44DiΏK/&o[@ />4;Ruкo>R{cR#&@=4=[ΚR/lrT> 4F;;Fiv@;cK/&FD;=RlαR4[zT>& /M>;D[{D/dD/,KK=>Kcκd5R{[;+ ,TD>DRi¡K#&oK/4 FR>@KXoȹ{;>zc;/# &RK>FR]¦R#{oR/4;V@DKTcǷ{D;vdD/,FR>KRVlo4i{m[54/RK>RT[dz[&vdM5,>MDFTXi¦{DR{m[@;#&KFFRV[зo#zdR@/;FDKRXiǦ{[;o[DD#&D=FRT[u޺vDR{dR@;/D;KRVlбl#v]DF/&;;=TR[zǦ{[/lT@@#,,@4FVRl޺mDR{cKD4+5;4KTVб{d# oVD@,&,=/;RTlæ{R;lK@;##/4;/=TV޺o#V{_D>4&5;,4FTiбdvR>;,#&;;+;FVæ{;;mK=5#&/@/,=Kl⺚{ [_D;/+=@#/>RбR&r{V>4+&&F;&5@[Ǫ{#;oR;/,/K#&;>繦d RdK;#&/=K,;VгD l{_D4,/K>4;lαo#&vV>,/4R/&4R¡_RoR;#;;R#&4i{Ri{dM4&4FK#+;uަoD l{dK+/4T;#+VЅl#/v_D#55],,i{dRo[;&4FR#Rr{R[{oT/,4RD#VЊv; i{mK#/4c;/co#&{l>#4;i4Fid;{_4&5>l#Rr{R R{[/+;Rd/VГzD[vR#/=[[>]o/ ioD#;>[R&Kid#&rd;&>>XD5Rr{[;{_4/D;XD>VrК{R >{[/;@=TKDcuǏoDRzR#>>=MVKcvl;ioD#&D;=R_Ri{d# ll>#/@5>V_Viަ{d#&d;#;@4>i_ViК{[;{[4&=>,FlcXo{ЏzR F{V/&>;+Rrc[rzNjvDRvR/+>5&iodcrv纊u;VoK/,>4&irdiorйo#ilD,4;,/iriimrбl# dD+;;#RiuoiiuΦd&{_>&=5VlvodlvС{R/{[;&>4&[locmΚ{R;{R4/>,/[locoȔ{;RrM/5;&5]rdioǏz/[lD,;4,;ivliro#lc>,>/5;imirκd&{[;,>,=;lmiuαR &vR;;;/;Ru{oivΦ{;;oK5=4;5VvliΚo/RdD;>/=5]viiΏd#i{[D;>4=;idlDž[ oRD;;;;=l_rб{R&lM@=/>=FrcЦz; ;{dK>>4>>Rv{iȚo#Rz[K=;=@>[z{lÏ_#ioTK;4F@=i{rκ{R&llRD5;FD=i{{ȱzD/{_R>4KDD>r{{ǡo/>z[R4;MF@F{Ïc#RoVM,RMD>V{Ⱥ{R i{dT;5VK@;izDZv; &r{dR/RVK==rzz¡m#;vz_D,[TD;Ruv[[o[4>_R;=[rv¹{> i{mM,[_K;>io±o/ ;r{d>5d]>;Firº_#RzT/RdR==Riv{D [oD/idK;@Tlºv/ ,r{d;Rl_D=>crd#FvR4[lR>>>iuºK [lK;ldK>>Rl{/&rz_>Ro[F@;[oºdFvoR=ilRD>;irξD izdDRlcMD=>l¾{//rrTF[oVK@;Rmк[#RvdKTlcTK=5irºD ivVK]oXRF;=iкo/;ulKXldTRD;Rl¾R[v[K[u[RM>5cr±ǹ{; &ooM[ilTRK=;lǹзd#RvcR]r_RRD;RrºЬD ioTccoXRKD4cκбo/;rdV_ldTRK>;lйЦ[[rVi[o_TKD5Ruк˺{; &llddcd[MF>4iǺΦd#Rr]oVicVKF>Frٺœ{R &iollVd_RKD;iй˦l;Friz[]c[KF@;oкǔ{] iouoTc]TDD=VvȱlR;rm{_[][MDD=iǔ{_#[rvV_XTFF@RuDZlR /lud_XVRFD>iǔ{_DRrz]_TTKF>FriR#&idcVRMKD>[”{_>RrvcdRMKK@@uξiR#&i{ii[MKKF>[ú{];FvidRKFFD>¦dM#&]{io[KFFF@Rк{V;RoimTFDDD@ǦlD# /izdocRD@>DRŠ{[4Rlcm[K@>>DЦoD ;u]ldTD@=>R{v_/ &[{dii]M>>;>⡅{lKRoVi_VF=;;RNJ{o[//_cc[R@;5;禅vvdK[vVd[VM=55FД{{m[//dc]RTK55;i{{odD z]_RRRD45FС{miX/;icTKMM;/;i{oi_@ {i]KFMK45F⦊rdcM/;olR>FMD4;[{i_T= {m_@;FK;5Fr籔od[D/;voR5;KD;@VЦ_cF; ud>/=K>>Fl纜ocR=#R{vR4/>D>KVvޱd[>4 vd>+/@>KMlΡ{_F5#R{zR4&5>FTVvේoM>/ {oD+&;>TViЦ[D4#R{[4#,;R[[uΚvR;+ vD,,=V_iٱ[F/#;_;#/R[crСoT;# l{D/&;Tii{_M/;d;#&RVlrצm[># i{K4#;Rcm{dR4/d>+&KRlu٦o]F,RR4#=KTrЅlT;#&v>/+KK]צ{dM4FR;#>MKlNJv[D# i{D//KMRКlR;&d=+DMK[Ա{cK/RR4#/KRFrΚz[@# {K/>RKKڱoR;/_>#5KRFVǦdM,R{R;&DRKFiٱ{_D# dK/;FRFK຦{o[4/[@/FKKKRб{vlR,VoR;FKMKM[⹱{udD#&_D>MKKKRlǷzo[;;{T>VMKDKR籷vmR,VlK>]MDDMTα{odF#&[>[[M>FR[vm]>;R>iVK=KRi窱{ulT4 R{DViTD=RR¬zodM, ld>ddM>>RV󱬱vl_D#&RVidK=FT[⪱ri[;FKci]F=KTiǪ{odR4 [{RiiTD=MR﷬{icK/ vcidR>>MTЬvi_D#&vcicR>FK[Ϊod[;;{di]M=KKi纪{mcT; V{cd[K>FRзzl_R/iocdV@@DRάrd_K#&{lccT@D@[Ǧ{rd[D/zdccR@@@i£{mcV>Rvdc_M>=KlκzlcR;[_d[F=;RDZul_M/ i{cdVD5;VǦ{ol_K#&{ccR>5=cǣzom[D;{d_M;4DiǣvroV> ;{d[D44RlºuvlT5R{dT>/5Vr±{uzdR#i{dR;,>cêzvz_M# {_K4/Fiævv[D&{[@44Rl£zoV; &{R;/;Voо{{lT4;{K5/=]oǺ{dR#RvD44FioԺ{cM#d>/4Rioгv_Dæd;/;Virбo[; Ȧ[;4@Xivñm[;&á[45F[izȹ{lT//˺R/;K[lz˱{dR#Rк{M4=RcruǬzdK[кvK5DTirrrd>зrD;FViorm_4 α{oK=K[il{lR#&˦{lK>Rcli¦ziD#;ÚvlDFVilioc;#RкoiKK[iilm[4б{liKR]idm{iR4ЦziiRTddduvdD/ &ǣvdlRVddio[>#R޺oduR[ccl{lR;гliuT__crzcK4Ϊ{dluV__iur[F4 &êocmo[]]lv{lR@#ٺicoo][[ov{_R>й{diro[V]mvz[R5&αo_luoVVimlTK, RǪodmlRVio¹{cVD# £{{liodR]iuǪv[R; кvvdio[TcivÚlVK4;αucirTVdoº{cVD/ æ{{miov{M[doȱr]T>#&кzzliooR[irǦl[M;/йoriirlV]lu{dVF4[ȱm{oilvzdX]lȷu]T>, ã{r{olrzc[irȦl[M;&кovmmrvz[[lrǏ{cVD4RαiummuuzV]lȷo_R>,ǡ{lzomrvvvXirȦd]M;#+&зorrlluvvo]l”{cXK5&#RΦ{cvollurvdclvȱo_R@//кv]rllrvrdirmȬ{i]M=+4&бdioilrurdl{º{dTF45#Rǡ{]olllur{iooǬodRD4=йoVodloroziuio]F;;/,˦ccmilomromzrDZ{lRD5Fiк{Viillmlrrlo_F@>;бlToiimllov{imXK>K#;ǣ_[diilirooidMFFKκvViiloll{rd{]KDT4&άlTliilil{{coTFRRRá{_[iiliirudidRD[>ȹoVidiidio{][KVT#/ǦlTiiidcl{l_{RK_Kiš{_]dii_drv{_ldK[[5&DZlTicidcivo]_RiR#Rš{cVddlcdl{_c{R]]D&ȷoV[cii]iur[lvRlT/;¦dRicic_idcdi_D#iǺ{[Vdci]co{ciVmV;/ǬlRccid_ivl]rzicR#RȺ{[Kiid_clz_coo]@&ñoRVcid_iroclviR4;údKciiidlzcc{cK+iñvTRiidcir{{]io[;4dK[idcdid_liM/RǷ{_Didc_ir__r{_>/oRRd_cii{]iroT5FǷ{dDcc__ird]ddK5¦{lRFd]cildc_{[>;ǹzdDT_[cil{d_lmM;iæoV;d[ccirviT_D4ǺzdKR_[cdii[[{T>Rªo[>][]dir{dMloR4{dRF]X]civ{[R_K;m[DV[[cimoMi{V;{dT>[X[ciu[KvT4ªo_RK[[]ilKRdK[{dV@V]cclrdK]]4±o_M;X[]clvRM{_Rd[DFV[]im{FRv;z_T;V[]ciudK[m/o_R;[]cilTKrR{dV@R]ccim{RR/v_T;V]ccir{{lK[{Rl[D;V[]ilu_MRªz_R5FVX]io{r[R5l[D4VV]clrovR]{{_R;5VV]il{lvMrRo[K5F[]ciroldRR{dTD4T[]ciu{ir_[oh_h /x 8= _Hh(;L?%?O(;<؈lhj`/X,(o~xxkߨxhnY8!(ϠoLoX(=X_^HG@_ߠX?hx_hبH(|H-\ʈ/ȸުڟH}$_h=(_ߘX/-ظMoxH/8_@Ȉ(?( (ȘH/HSX?hHO+IoH-,oo(_h`h;{`?XO  ,,_̜h_z@Ȉ`?_h_X|x@?8hߨ(,~윌_H/o螘@?Ho@hH[ިX /ȈHʀ,=o(| P[@o\_h(0?HOx/_hX+_8_Ș~XO()7]H(n /@ /oO}ڈ -H_{h hØ?xX3XXH?x?Ș@/@+(؀c/xx(w؈_ nxh?ho؈n܈/8Ksn /HX? _OhHo`($Ȉܠ-_بx.[ߨoAB^ XHM` 'L8?@;h @W0=xHlxH}̿po쪘Ȫ̸Ȁ Zȡ؈Xonh+DH8/8\@?x|hohloH ?̗ȈH8_H.(< gL-MX_جؘnz^xxohlި@;\XLnX,ol~XaXȼxxH<8#X Y`9YHx(?@?{XȈ@?xڨhO8+?9O O~zΜL*O؛h\ ! /_L_xhX_̠XH?Ȝ߸l YNhn\O{ȾI/\OH?g.K\ 48 |l^ȸW_޸XȘxH#ox܈('_ȞX<8(Oh_ȬX7N (H(5( (8 ?xL( ?_n@ȪȸxmȸظhHXHL*7@4OnH_n@;AH8/N^Hx8((/(?h/{\(+8 OȀ_μ`Yl9\xH8'?_cHL  7X( XH8(*()LH4O\hnX +_xxjlx[JHönبH /\CZH MSi~`( <,/S,9OH=M]h /J< !;-oȬxzk\XHHoؘ议xsh88_hH\LLJH8Czh_x^L?@'XX,'o؈<?DH, 8H_x@8HH\@/ ?.=Ȟȹؘ~lN=(_p(849|nhH=/[wk}oX<8+8H[l~\ =h,Exlh8Yh[HMXL-%GIX((( OȸΨȸȨh8Kxjh8(.,'@(#8XH((?{hH_x诼ΨxbAXX+(('Oxh,=lX! =xhXH]gho|بl_λx|{hL8 ?c\L(>(lsoȌhlhmgHS_\H/hhnx1-?L((=(.( (/_X8]lo쬚ظh?PjجX=_ʘ{||h|XX~L'OaO_hL?\ZNXXPN_X:Jzs^nz}x{xH>E,9_zȮΘnXXHKH_nZo~XHoxzXPllhH(8_{|hxllZ\x@/XXH->XhXHȌxN8,S̼޸hhloh._szȸ踨̈Xxؼخ|z|xh+/?hXnhH`l^Ȫxyoh\\]ȨxlxkȜX88'?ohOhxxH?xȘܸ`?jhhHmxE?Xkh  Gjnx|x\F8?H(-(?HMlW|~xL!HJ`z̨xaH,?o|h~Ȱx}hc\XNH__^_xx;OhhX_xz\O]~lO]μ}xhXHxilhHXH(!8_|\_lZH(+]hhX=}hlNL]ȞhhnXOC?yl?LL_xsXH^0#?_X8#?X^c^X\@((/OhhhxȈj̸xwxhK(8KHJKXXXXKoLHMgjnxhoj~xlwxL:OzX_\_xxxXL7NLX\\m{oxhK]h||xxx`H09<(=\H>JkhohHYȘx`olHJ`H8X\LHOhnxp^ȼxȸܮΘlLH?OX>OyH_hOoxhH(6>/5?H88?8HMH?_ol@/_x_hX}hho{LOhxިhȬh_xL8.GX;+(/>$;, ,Xxx@W\Lx|^Oìx]ȮȨ̐h>Yh'3H)=Ȋ~l09}oθȨ̜xlNHoȈ_xhhHXجhHoxC@OZ@((LXH]@,L8)/KNE-+MX8?hHJ_Ȩz̿޸̬Z_ȬnX_hH0!/H8  78,KX^H88HZoܨyx||x|xxИ|nlxxxl(,>8=H8(+[H8.*A8'HLK]ych~hXl̸ʼx`HoJXy\hxl_X`o{x^hxH8LnlzoxoEOiXH(<_h\^`hh\hhl\>-?Q88:Ohczxo^Lzlh_XXhx_ozh_njoh_o^hjnzظϼ||~~~ȬȮzzxX8   #/(*H]nhoȰhHHH_xx|hXL]`L(+$ ,>Xos|okXSXH( 'HXn\@" (! /8HH(?_`X[xhXN`^X_lH?_h\aoo~踬nooc_hoȸx\XXkxhX8?OXHD8(*?O_hhloh(/MH?8')?XhoxhnhX_s|hjxox~x|lhx~xXZ`hmxxj~sho~~zxhZ_hjl^`jxxxjȜʸ|~xlsh\{HX_NOj{xn~ʨȨȸlxπxxXXxhLNXXX;?OhnonxX,(8HZxx`"?X]or\_x|lnhH0#/8888=>8!$7]mxx\XOLHXgoonoz|||ȸڸsȾبnL:89:8DOH0//,/HXXPXZ`MXhhZXXZXX`_x|l\_hH8GoxhL^\ZXDHchIHLXLHN\XC8KlhXHNhp|j|ȸȨκܼϸ|ȼȬ|ls|hGIh}hhhgX<;O\\LMl|gXX[lXHL]hXS]_[XHMh\MMgx|{~~{|hhhh_hhL4 (88/?JH>8?_xxj|n\_xȸȼ\hz|~polXIHH>8M|xh`hX?H^oxlh\aO@Nholh_x|lh\XXX`_mh^XNXX`_h\SZ_\\hhhgh_[_xȮ~~zxz~kXHXXXLLW\^[_lhX\xx__hXHHMY\gxxXJOOX`_oo\IOjl^SXXOHLONCC@J_hXHOhi^^jljmoolh_hlohh\sx_Yhhjxxh^o|x~xhgxn[HXhh\\hf^^_x|lxhjwx{jooxl\LNh{roxhhxxL,7LOH8HXhXOh{xmzxh^mxl`olJL_z|xnh|xo|~noȸxnxyx|xxxh\YZ\^\XMHH?HX\XH,+3?KOJHJMXnxxhjyxxxxmnlhXX^`OABO_hh\hov|~||x~nhlxqloqhXh|xlw~plm|xxchlnh\_hXNZZXLHHLXLAHOSY]mx\OX_ink|x~|~{|nxxsxx|xc_oxhX_x{z|n_nzx_\hooh_hc_\^___hhnwxxμȲxxzxhLHXXHAO\\XH8.'0/7888yT>o|VU:;51`ngkrļevP+dsM\{濙z¾ҵ|!;av}l_~[wOe9CX^\[MBF4Q:)D`(cljéNjDž~nNmő<\y흥{ǃtۦа2/SwTw~UVϻ[o~QFe'HXgcYI"GFGT(3b^6?qfUcUnHOrV)N/l[z¬wlqcxJMoԞgk\"_H?7{aNXb0)u_TxmlaJkK'OxZrn񢐼QgwlU99M'Ίqy͵W={oՇOpj}uͱܸbx{w27g4mH^gFSuP37PI8Fw;4MWdDxZuqb}>Nr>;cegrڔ}ihfgnƼk GO\ьj~ս2TԺɸmuOpۀgvH'MLOWS|KGs"ETZy|4Pe\upPQc_Z~_fxor|}[ߨyxNcvxN<,o܌|unv{lխКwu}x|xwoleJxtiM]x?mrTeDY.GLKMRZ\`hovuuw|wwwwuu|}tuwrghx{ovryxc]eb`U\eb^[L8GGNSRO^_anromy~xpxy{}}|yjpydhqxty{}z~~v{|gKNKIES_dhf[HLOAPQ?O]U[sxn{|wɨu~v~wly®V[K?jmogdvkj\nW9>OJ@Gf`jqW9/D'-5Prc-:R3:T1PFP{g~wtrS~yTx̊pʬxTTy{uyvxyyʸ}޹q^U.v\Imxfy7`^(屝q”cVCNS>0#GqjG;VI9_7-Ug]Bj|[ZM86JgUZsqodoh[udu{^ds^wnqѵm|tgū~\SNcvESkgrWnRjj~ow}ļ}igWYuP?I,0LJ?T~qhwWRLn}cV}k`yhQig`uoqk~rpqZ]qeq}lo{v{trqguqRj`vepf{o^uovi_liggUeE?VVCMqpn{s^UMLxyW`e_qgafnzsj{kvykmqfvyyveдzzmrg^ndTw|r|x}xi|v}ry]l}shjueG[gLEfg_mlY]VQ`pSr~ifzruxnkoyumwu|uyt~}|~}oy~yi]q\Wrtnr{uxbJj~]ZntYUo\K`j`nccaZYl|^`{q`iys{ynjvwv~{z{ovvlye`o[^my{~|{~{uz|}ef}bqfS`aJPnjonui^`riU^q_Qcooqytixxwykmx}y~}|ypfpueeszx}z~z|}o}skyfbib^nnky|hff`cjtmhmp]]ororzonwx}w|ucco~yqtww|u|~~kjtumnqmo}zxx{|rptncejkpwsqrpkjhgcahgadnpr{{y~sn|yw~yy~|xvuturjl_S`puy}{|vnjfehmkikmonmmnnkkgfjikptopsqrwtry}}ywxz{z{{}{zzz|}wussvz}ulrtqpux|~~~~|xvrljkmquttvvwwuqojb^[WYcklops{wz|wssw|~~~|}~skidTWfpw~~|}||~{vtsojdcdb]]fnrtwy|~|~}rhddfkov}yvuuw}~{xuuw{zxy||e^^_bhmu|x{~~}wrrpnoqqtwx{|wpnkfa_`adioswvutwzzxz}|~ytrqquz|}xzvjdcdhmlcku}ruvr{}{wxtmkhfimklotrossprtqlmpnkpqoqz~{wwwuw}trw}|}xrocV_ipt}~wy}tpuzz{vqopi__fqqr|~|z{l`ee^cpjjv{tts|{x}||{}ww~usuxxvurplqe[ivwrzxxmimlkx{}~kcdmociyxottddp^Xlriq{zywopqt||{~yzuz}vhlycWfo\gtr}vgi_]jtvyzsqo}oeqnatfUlpV\tb[psk}nkmuwxvvyyrsz|qtw|rfxjczxlouy}qimqsrvjp}qi\bwi\o~Yaxhf}oXntU`vha]Udv|zkzy{|}|~SNssIS}ytsv|w|wmlekvw`qpvnlxgXriFJZMYhhlvtehHKYje`v~e_ͼŸvs|pȟqoh\lg?ZwA\sqdv~euzb|ewf]}fLvuo{g`|d[t\FHfn`e`[Zmpg^>RhvkohcФٵszw{zy±{c_q~E.VK/Xmw^j}k{}ǾʞÅ\OZtJIeQ`jró}~V8T~a`wiG_lBn}WXw|mRyA*If|v}ylaҽɍԥmq|wrvЋgvhbjujjuwNJjxH8c{YpOryuyuvw*tbht5kWByoޣ|F3f{VExV:v?Bc:`mxhtsOdпьuu}vûzɤmha^]bfmocawo=,[_TWWj]|`o{hX=i0MUrKcڼl9KERy8>i&_>9LWxlbbA\{emwxdM>nɿݖαswnhÁk_fpng`txiQ>Kzy<_īLRN:xvDvynʲx\j_.9\diotjTKSlbzwfudvs~ͺΡpQcŔmfxc[b~orU/4LI!#nduovqsnroquod\XzK^ohYoalɗp]ZpO!UsMap7Ur]Mw]@CJUrsyz~æǮ|mz|oU?IIWmvmZJ@eo:9bxvuqkk|xspzjQi{B:OC32EBJSB?Scbn~xDz}vm[QXlxywtxth`akolijkeimodV_xx|{mfWDO]jxŸļƼ²o{`WpiNA736754)7IBWPFDRado~q|ðz}vhgvkxw}xj\YiohahmeddfTObxthdvzrhRJ]\p}rkq{ëùpiwcdn{oULTI7B=),0>==KHRggbl§uobmqly}kbjbRIYe_]YUIPi{zY\snfXBLWWo{ojyʽ̺ȯar|vuthARcC8A*")046RZCapvvcuw{ɴ͙r|{tuwiwyspq_VSbUHD@CIVjoYqtYXL;=I\uydsȹνðҹ[Trk9YY#-,*1#2A+:U;,MYwxsg~»ʣԬx~xdmyutusmfiN8%%AB4[\TnjSQMLP]c|}dsгֺ߿´ͧpP]ww\CmR/3)) 0#3li0>\c]niamolըĺݠΐu}x}ztmoj^R<5!/LB4kwVT_UMVT7HTUlnb}˴ϮDzģɴqprjyxʊDeP5+3-Qc,/PVHhhPyvQu~̹ƛ专ыq{snЩqe[_bZTM74/S[/9hn]TNGCN:-Z\hwiezu÷ѴǾػ轸mǤzmxZHjG>?J,qsE%T?Gyaaakm~𾠧znlywȦ~~rsKOWb^dZFGUjC7T_F4:?PY4>UPfyt{y~ὼʶѥÜu՟n\wbcs|R+AZJ* !UiCCH,Z~O`[WygxӤtТᬓmpǼsjd|vV_ehVUH@Mam=&2]X&4;[J0;KOly㮶ע}Ȏkjzt[r;)NMI!E|O+G43scC@Cayivp{ӡeǿќxxpdncLWgmVQ:9^xe:+`Q,B57H^[|Ͻ֭֟{plRv_;JVJN.orf95=3JoW>*S~fq`IJñҲzyrmyZ^iocKI7NnlH%;_8(EMOEMPWzƬձÐ{ʛbnjyk^3YO[. Pqm}iKhuxŴyɶWS]}m\mx\TYkvcD&H> !47?Qg}ddϺȯlqcwgh_PV\bck{vQOkaZ]LRgdhvueZcxwy~ro{νzs`Yc\TQG823>L?9BPYRF?GR`u|ivóre{ww|[_bVYals_HXmplebiiszqhbXnxvps|t\doov¿}k_bhYPI@=:79:5>QdcXMJTYaoc`~ϴ|kw|j`tpinnsh[]nrgZdkktyoyw|xhfanvpqgSWgznbqsfbUFNMJ?3.5=BIX]\`floccd_hǻ½{s|}sjlpfkp{ziWSYX_koruba`^]^fm]MJS[\^n~l`bXJADNJA:?BDGILWcehpqpu}zyvtvts}þ{yvzvwxrejstkktxspvuswvv}{}|rfZQNJHFFHQY]dd^]__k}º{rj\LCCCDIMJNPRUVY_ccguuoqx~}}{ƹyxx~}ql_RS]fkr}}~yuz~wseYPB756;EOZcc^Y]fr~Ⱥ}uqke_VRPKKNJDJOSV^ghjuwqifmqsuwwvz{~zzo_Y[XXarwxvoke^TKJC:;BHIJQSS[m{~~ǸsjieXOXdcXPG87GY]Zeum]Z`bbj{~ɽxqz}wzucUW^]]n|{tjgfWEBA<7>LRKHUbehsxpmw|pqpha\WOE<=EIP_jfeki_X]a_fw|wvywvtnhgfb[Z`gp{h\QC>AFIKKH@BJW`egbYYaipzxvtoqvtqpokhmmebcadow~zngc^ZRG?8.-7AIXhgdlu|ŵwlnmd]ZRCLOIJOSWZ[XY_^^dikyyqjorpjc`[QSZbhnsz|{umki^OF=3/3=FN]punks|wv~yvtpnkfh_XNFDGKLMKLNYdegs}ɿ|wvtv}{q[Yc^PLKSS]q{rma\VG??=GRNMW\_gpx}y|ǿ{y}rdVSOLKJEC@BPVW]ckyʿ~tkoyeMKRPQSW[U_t}}|~yx|tnaI=67EHCPbf__jou}{{z}laaVMJKOOQQ??P[eigoxĻÿscfz~taXYSILMXVO`l{tskfcVLGFORIPcqm_X^^jx}|ļǸoie_RGMXUVB3?MVcggu|ƿ½zkjy|ZW\I;FQVMQdn|zyr{opzvqhWOR_f[RRYcaZ_YYdemzƺzwtyzxytp]PW[aW=4=DTgear|dzsxzw`T]T?=PPJ?H[t~}memswnf]dro[LIW]ODKTgl_`g~~}vsw}tcQUcqpOCLOIUfnzìwqotwfROSIEIBLNS_nz{sdjvibhd\dmifXR^]RPKP`VT_fvƿ|}{wouwvi_`rdQT^^]gopz¿Ǵ~svxyreTRN4?F?F>PlozvdtsncT[kgdbUU^^^OJRTGOVe¢zyu~zosttrm}r]`^VS[nvn{ĸy|w~{s]HWWC=5DLA_qcj~|}q~vvd[gia]MBM^bVS``SN\fp~ſyxoyyqpnvs~jko_WTcɷqpuz}|}wy|{^ON@:EISEJfp~wr|~vjjj\ZZLADQZQQMEMZglljms}{smx{{vqwx}uwgYep|ѽghw~~jhzmqymQYaO>=BPO[aq{wxyvsiba_fi[ECSbO?HM\^]rvslllrxfhlsx||pxcr|uty¯}wmxvel|ndV]utggeXVWRMQ`ktuy|}x|tnlbPO^_UNSb`STPCUkycbnyvsv~ompv{ztjisp{z{̥}wxaUlnXR]}xb^lcKSacaW`ruwyzxpaY[WOEBVok_WPSelsunio|{wv|yy~ziew~sn~{qx|xwkisjVEQt}oXUie[fjpl^m|}~xsz{c]XOJBATfmdVTjwsumffr~zxznbkxyykxq{zpmkede_QRi~wiQV]PObnxqyw{{q^X_\VSPSWZYSP^jrwvnnqvumnxhwdas~tqyvpns}{nie^ZQP]hjicVX__cioslz}ysspja]^XJFQ[QJY\^fptpu{mvoqzrlhl{zejtxurzuhhm_X`llbYX^acgjqz}yt}wxzy~zph\TPHGR`b\^_]bgp}}}|xysryyagppoljnwqhenpmqnfa_[Y`cfmmjtww~|}|xz}vokihjliaVORV]ZZbjmu}}~~|[X_]_fdbjv~yy}wmeakqokkkaW_ityysn|yquxuvvmmnknrj^WW\fle_`hswz{}}}i\[YYYZ^dlx{tsvytpkkqttupoorwyxvpddnt{zvz~}~y|ukjjorld^cjklookd`ep|yi[TWXV\gnnq{{~zux~vpljfbdhosnmv}uljh`boy}~zsowzqlnyylimops{yoihjqxxsuvpmqyo[TVZWRQZfsusvz{}u|}uv}zrnjhjjeacc`]eoolkigpwrprqnns~}ysqstwunltuwyvy|yutx~|uu}sWMW`__bb\[bkpqolmquy|~~}{sje_Z[_]XZaejlijkd_fpvxz{yvvtrsvsmjnsu{ut{|yusz~wtw|xrbSPZdkolaZ]_^___\Y_l{}q_WVSPOPU\```dhkmmnsvsojkookkryztgajvyx|mmt~vt~˾}x{uiWU_b^^gofVOS[_ZSR]jt|ykeegcUMRWTQRT]loggoskcejjhgfgnuunjntqkm{||}|{wvxuophTS\flpi]Y[_`\ZWPLP`q{rkdZQKMMOVYZUXceehihhnljpokgefeggksjciw~y~ĿxuyztjgcXOYnusogc_XVTRMHFK[fjt~}|{rgYOMNKIMRW]bfmuskdbflquupg^_ba`cfeitv}¹|tqtqgdhhkqm`[ckkc^^YRKLSZ__eu|rkcZWVTNHJNU[bggjiciu~{rlihgdeb^XSTapuqpuvnkicjtxnfjnprle\VY\`^^]XY\drz~Ļ~ujfebYRQOQU[\WX\ajuuhiornfc_\YW[gjdenv{||~zn^_gf^Satwogmtoebff^\[_eillq{±yxyxtonni_[bidYRUYVT[hrvsr|~pmpplcacb_[X\ee_ctyw}{}wldjoiVTctytpw|tgafkjhihhjov|ɾvmnrnhglmjgaYUZdc\]cg`bqy{}~{{}ysmkkecll`VXaddgkmmw~|wpx}vlcbnnkov{|zy{yrlqyytqrsxylkjecdikfdcfif^UVae_`lsmhr~}y|wibdfgjh`_chjgioqsu~}~vvsekpuxxxz{zz~}{|~|uu||rg^YY]b`^fhbafhebbgmuwvtwzy{v}~skije\WX]cjmggozvkvrfhot||wx}y~{reYQQT[^[]`b^Z`ntnjlz~{~zzzyl^TOLRbgcdmw{|vy|{~tpszwryugXOLLLKOZec[alibcox|ux~xmjkifgf^VW^_bozt~~~|xx{xwy{z{ylbb\QLJJPSRZa[Z`eiozytvx|zrjc^^_[[cklkow}|z{~rxzvx~|~{}{{vlb]ZWOIFHJIMST\gq{y}|tmd\XZ\]chkokbchns}l}}wsqv{{xvvqpw|rmnh`YQMMQMIR^ZUZcm{|zulfba_aeeaYRZbbbekmoqZd}ywz~sbW_tyolrrmd[XWWVTY[RLRRXiv~ykfif`^dlolbQFIRUVcnnRJm~upvy{~}¬~ueSR`dadotk`\^imcXSWVVbog^X[h{tlpupmfbdb]VW]VLIKYe`Vhy~|}vlsxph^DIWahfc`]^ZTYdorjc\aidjv~uyupopsuupe^\\_b_VQRQNOH^y|~|yz~~|wjjnqgLJUXXTT[`_\^dmtpkkq~xlpy{vrsw~}||}vgixra[\WW\`_WPOBLkwtsppw~xj[YWUQKKNS]dgjnollu}zrwtsytnov{tqz{wuowzwuz}sdWT`kk]QVUK]p{l`g|}|nghknbZXFFMUfsvrjhlzueky|pox~urz|y~|z~zyz|wqprupijom`Z[Wemlp{yppu}xqyqedipbcgXOU_gfmuw|~tjcfjmjkv{tikzwy{vprz~{phiki\[ltnsvnt~vwz{w{~~{ul`cjjbekfeoyo_\]aecgllmmkv|uou~~}xqtodgjdbltzt{{zlq}sl{x^\fns{f^aeaVTXZ`gjormkow~~}uoqwwtuurigoy|~~~~vz~ypfotz}tk[RRPW^cgfdcjrrqliq~zysprppy~}z}~{~}{z|rjrpgfa^ZVVXW_feklqulfjprwx~xnps~yx~w|mv|}wuw~pry}~}gXU]abcdb[OP_hiimkgcfox~{|}yvuvz{|{xzzuw~zwvrmlmot~|ygkzyohdeda^ZYbjkc[YX`mnjbbfiikory~wu|||yeaq|}odcdfluwvv~{|}ykpx~|~xojkswmbcmrrma\_`VR[fmhcagrwvopv~|yqpz~xqjmnmcUOV_dnz|x|~{nfit~ywsprsqmpzzmea]]`eaYTR\^`nvqnr{}zsmdih]VVW\fqy}~|~~||wkmqkjosttqnq}wroooib\WTLJNWcgjnuz|~vz|z~||~wpfZZWNJO\jt}~xtsx{mXX_jtvrqqt||{uoj]TSQPOKMYmx~|}}|{tty|ywrpwvkaMFELUbkw~·yv{yofaMCNdrz||upo{peZTLMSWSTY`hvxrmpmpx~~}~wkhgpu~|xiVEIT_fjpz~ɻzvrx|g_^^^aeXVbdfjry}xqlhf_WTROWguxqoiciu|xxzyy|uoga^bmpvyp_MRdnllw~l~X^KQqtyqoQq~V(~ej<#X] IVNwqqO=7I~~eT~KBc~jCT~{}|eXci{}|||war|~{nu~{NI[agl~suganvQLf|ia`no{}re\wslgvwTE_^X}}vdowtwxdd~vqǡfkzkitEHyTKgxoR2)Mur\ET|x{zsrq^ivfix}ybeer×snrkxtbTGRiwOGc|veZmr_so~pjUtrOH}{[PMEBm~˶ÑevU>Uz|eamym||u~sbFDPC.4IhlL5Wxzwpuua{auV_q\{||o]QHMUWkⰈtT_u~pdej`}mW^OXVWLQU[{hN2AZp{tµLL{yh|oqiEOs~wcJBgqpw{v_f~pr˧{t|mQb~uuݵfF_s='McleMYZalvk7D`w|X3-cl||yydMY̭yT5FzhKMJqtCANG\jM7Mɻy{h, Aɴrw]r|F/1&7FNRV\bpsskblwʿȩ|SMNE*1[rٷ[BKN@3''cսězhM\æ}Q>5QaB,5?W^P8>`wvqiVLRĪťpb;()4?Rlܱ|yu\0 ?ZerrabigC:D̿ĹzpumE5?cZ3 725J[mxµqR?9=3762M{cwz@Nzӹsey}zq[G^o[xyq|񸞥s`WOHVtrzlM-.^u\:5Nqqrrck`W_zrY<4%DciSCjڸW3EolDd̻ʢu}k=8EHPSbv{in`C% >`u[Up`WOC?Uqƭ`?/DwhLnp3$0=_vyYox{gk~t77K+ [ٱUEMYa;+lȢͻ}fQLFOuֿwfkpvn}[[`\U39OJ4'),0lеta{ȸ{7(E]n|۟b]cO5?8-Jjs`gõ~lm|ekmfXN>&*75EVǿuWDDToyePDUçhas[ !"$/Zجg3)&үz~Ʈl=@_j[;FXfjhys`<4KlfA%2dnTQSH+&E`ûP=ʐjo{usWH9GVM7Jmı̺Ǻȗsp{SL[voY?0&8Sc^G1/5IB=IKB6$"ACDZjra< +.%LD98<=4($)9ED726Ghs[R\pp> <[j`Wq贕ͷpjpyq]Y[XN<   )&"$.:EHO[ixmTB4+-Dev{z~mjemzżùucZZ`L2'%/-18:4!"6K`h\KLXlobJ:?Q^eyǸǠ˪ºȳws|oUJRZZRCBNSSTXZ^UF>7$ (3($4Tmrt{xgL2,1EW_hsvrolgfXFGOZcnv~dRSK=,*E[dlv}rj`UPS_[KCPh}wt{vzƾʲk__mypZXZZL5 #6J\ghhc[SORcr}ʿ~xxdO<35404=J[lzyuynlpqosytkjq|s_MKZn~~o\S\hzʸbE1%#!3Ony_K:* #4Rjoz}o[QXizøͶkL3&$3I\kwy_H5'.?VoĻgTHA6'!(273)"(5=<1&&$&3CV[P9#  *6/&%*0779CTj|{y}uuuk`[bnzȾxcM>;92%#13475.,/3YmnaUG1 #,8HXcl{Ƽ~~zxt\G;6,$)7M`ov~yjhmstsutmknpoiglsx{y}zwwww|zmhknps~|wwyztlaYVSPG<=DPZ`hrtoiikiaYX[\TB- '6GXgw{pg_UC,-@KR\o{}~sdWPS]gt~zķ|ppwuibfs~{̿pQ?=DGKYq{sl\E9;GX[QF@DMRQQZhkgfkpoou³}fVOLN[u˺|xunjmomigowxpe`\M5#)24+$  "(*/:IYfhgffhp{ƽ{z}yqnqwzvoq}}{vsv{qt}||{ndYSVanx}|xu{ǺkUC4/7FUcp|wpq{¿pjjheit}nhnvth[WWWUSZj}tkgo{z|yrqrv||m^NA5*';C<-$%'((-6BLR^qĽsZIDIPQT\h}|ļĬs]PIA@ELRQLHHQao~{|dRLJ?-'9ENXbmtsopw}zmd[O>/,.2479<=<:?K]kpruzyi\SKFIR`q˺ƾpeesnYW__RC;>HLKN^x~mV9"&4BTl}bH;?Ok}{qin}|trrpmkqzzvogdfny}umidZJ:559@Pctyqf^WM@2&"#'0;IYfq|}zh[RLE?97=I\ovofgry|~Ż}pggnzu_QOXotbQEGUgyŵ|rf^\ZW\j|cMFGC=:>KVVQI=4//9JSMA82-&+8BKT`jowĬlSC?BA946>JSVRKHN_t{²uor|smu}{wst{|y}|wtv{~{m_ULA5*"#*5@HQ\fmruvw{zunhiu|soopsrnkjhd_[[bjlmow~ȸ¶nYKECEHFB?AGNSZchf`XSQNLLMS]gkhefmxzod_]WLDCGHC?AJOMJMZinlgegigdgmrtu|{ohgf`VLJMRW_jqv|xtt{ĺ̾Ǻxv~{iVLKVdmqnf]SE6+""(+(&)5HX_\YYXUNHM[hoomnqsssu}tnnj_RIFFFEGGM\n}~yvsolms{Ƶ}~~qhd`dn}oi_K4#&)& 3K`v{rja^_fpxyvvvoc^ajuyxvzĺ}rjluκuqx~rihpz~xnfaagq}l_`jswrh_[YRE937?B@AHRXYSMHEEHN[o|tf_[TLM[ku{o`TMIKQW\dp{ˬyiSB99?EJS^hlhaaejjhlxoilpolihjklmnsz}zpc[WUXajmmov|{upmnpttonsz{th]Z[]^[URV\_]]`debafnxwplkmpsttrrstzý{uqk`TONPT]jzzrkfhr~zplpwvpkjkmnppqtz~rjggfdejsz}vw|znaVSTW\eoyypg^XVYZ[^cjqvz~üzolpyxm^N?625;@B?938EQVUTYdpwy}wnhjnoi_YWURPPQUWWXXWWVTRQS_rupnoru{~~z{Žz{yqnmkd_ahquqh_YRE80/6<<82/2;FPVWWW_kvz|~ype]SIB@DINU^jrw{yssyztsyĽjZV`twcRF;0)(-6G_xv^G6,&#%).5;?BGKPUZajs|~z}й|hXOPVbtvnkkkmpsttrlhils|sg`cmw{wpmrz~zx}zw|~~~}zy{}|xspnib^[XWY\`iv|uodYSSY`db^\][ULDDHOW[\_gsypg`^bjpsw||yyxxvrppqrstv|ƿ}{{}}|~sdXPPVZ[]bhlkhegloonkjkhaXOF@=?GQWWUV^jtzhVF3 ';LXbo}zurpoos}|zxz~zqg_]\]cikgcchpy}vrpnibZWZ_cgmw}|~whVD5.+-4@JNLHHQ]eiklnomnuԾofkuyww÷}utsohbcjt|{jZOFA???@DHG@J[fmpponostplmpspf[TSUVUQQTZ`dcZK;.'"+9HRX]bjrx|utvuuyǽzw{~z{}~{yz}{pu}ysooruvrmjkqx~zk_ULFCCFJMNKD:-" $,7?EKS\ekorqnlp{øwohdbbdjt~|yuqnnrvxy{}qigjqx|~rf^XST\hvznjklh`YY]_[VTUVUUVWUPKILOLFAACGLPPRW\_^[TMHITfyľžɹ}wtw~ueUMIHGB=:=AB=4-(&$#%-6?FMSX]ahqz{rkkotz|xxy|}ul_QFA?<;AO]fkow}vsv~zoiinsvtrs}{~}sh`ac^SJKT_deglqrlcYMA:9::872.39=FR^fhebchqvuqi^TPNI>0$#-<=DLTXZ\_dlqtv{ýɺtmkijp{}snha^anyrmkkgfjtxl`YWXZZY\blz~{{~~{vpkdZNC?@DINVblty|~{lddiq|ojjkkigc^UJ=439ETblrutronoqv~veUIDEM[k|zvsohc_YTPR[fov}~wrnosvqh`agnruy{yxxusrt{tdR?2)$ !'0:AGOWcrļuiegn{ϼyy|yqkfcabivucRFACHJKMU`joquz~{vtvz{tfWLHJOWam~wkc[RICDJOQSV\bddhnw~|qd]]aehknqplgehnuyxtru{¼ylecfgc\VYbmtwxz|{ocYSOLHC>81+%!+7BMX`fklida_^\WQJFIR_jquuqmlpw~ȿysj_UPRZdoyzmc``bddbdl{}ui\SOMKGEFLRZaegkpqlaVOLLPZentw{yoh_UKDCEGINXgw{vpmnt|yspqvxvtu{|qeYOF?<;=BHQZbjosy{rmid^WRRVZ^`fr|j\RJDCLZlzyph_XSRSTVWWTOOSY\]_hxü~rieb``fkoqrwytqopqqnjjpz|xsolidabgnwrc[WVVTQOKEA@ABBCGLRUVTTTSNHDCEFDEKV_fjmqsuuttsplmswwsty~zxy{|}~wpnnmjebdjptvy{{yyzmU@/"#3BKKF?=>ADLXfs~xqnmjeabfjidabhpvy}~~}vpomkhgeb]YWX^ep|yrmkkoxxtssqle`[TMFABGLLJGFGJQ[dhjpz{wwvtmgegjlmqx{pkjigegmu{||~ƽ~vplg`XRMIC<79@KV]___aca\YZ\][YUOIGHJIFEIS^gmryygVIA:9=EP]kwyttz}}||rkfbcm~Ƚ}{|~~}yrkebcivzj\PHFINTY`l|wnlotuof]UNGBCHPW[[WOHCBFMV_hosvy|wtuvvsqqty~|tj^SKFC@<841015/% *5>BCA>>@AA??AEMV`innlmt|tpqtwz~¾zsolkjkqy~vqnlighoxztniea]\]]\YXXZ^bdcbceimoojebba]UNJGEBBGOW]clv~|zwtu{wux~|wvz~{xxwvwy~}sjaXMB958@HQ[ft|wssuwz}zspqqokihf`WPQYcnu{xhYLA<@N_nzzuqooruw{}{zwtqmieeku~zoigilqw|~{wtssssvy|}|rha^^__^^_^ZTME@??@?==<;877;AJT_hlkhgjoqojfiqyļyqmmnmjda`^YTQRTX]ciprmcXROONNPTWYZYWPIEGNWamz{{ypga_afp||zyz|zpjginv}zxwyz||zwtqmhddgmsx|~xne]WQLHHNV^cgknpqt|{uppqojefkptvwy~{xwvyuh\QG>77?AELXgwzupnmonjggjouy||{xtqqsvwvsrrtw{zmaYVV[aiow~~ytokhfffimsx}ysnh`ZWY]aefda^\\^afkqzzrnllkkknrw|~~|zvqke_YTOIB;61+&##(4G]p|yrmjjkov|wohb__`abeipy|wtrrrqoljhghkqy}xsnie_ZWX[_dlsx~|wrlfb_^]]_`bcdgmv|yzvqsuvtsv||o_OD??AEIMRZco~{||{|z||||||}~}|}~~}|}}}}|{}~~~~~~~~|~{z}~yz}}zyy|}zwx{||zy{|zyz{|~|xvx}|y|~~}{try{}{yyyvuv}zvtwwussvz~|{}~xtrnhgmsxyuy|{yxxwv|}}}|y|}|ytsv{~zutu{~{yz~{vnh``cceejyy~|uxyxshfp{|y}zvv{zwvuuqlhluz{vowxz}y{~||xx{~|z}{|{}~~ystwtldelrurpsyzvss}vqw~~{v|yv~~xqt{}|{wrln{}qkntywv{~wtuz}xrrw{|{yw{zsqvwuy|{x{{{{oeba_]YX^ku{{~skltuxuv{}vu}wqqmihlr|z{}qpsuoebagijhgkovxpdfu|vxxrmollorzzwxz{{yqjhecfq{vvoikmqxzztqwvw{vtx|xv~yzz|~|uvvyxw|}}wjhlo}|~rcVZZ[^XV_^adfpv}zt}}|v{~xxpif]UUWUJA89>BWq~}{vvz|yfdkvjYUV\_VUV`jnmkt}~|}}zsg[\dd^WXituvyrpy}|zshe]]da`hvztuz~tgpwwzp\PPT^aajst{wlhjmyrdkor}zzytzxytm|ypifmz~yvxsjdTS^r|xutyǿ|uuwjYT\ihgfb_Y@39Jex|}|kcixzy}}|dH)%@<&$%)*0BXchmz|qo|mgpr}u]TY_edXL6'):AMQW^fy²yt}xk^Vbx~wky|pkhrvxvciz~twz~vdceuzom|ngdfuxqVR`u~mktwqlju}yxzw{sbXYqveYYkwywim{yZ?[}qpxwS@66;<6Qy{vumķvfitz{|qq}u`Y[OQOCM|Ż~0 3@`}xY;Fib_ngʵrRaJ 8=JxͲxfna^,Fs|eJB[xrfXSNIVNGaZXr{GCKRrxbqѡpʱvvuxytkjڻcozgD$%Gw̺toK3D^466-15]hgRbǺyyK?@hthcP' 9RdZRPINguok~лNcM!6.I |`Vdyc[ntjjeȴpsg\p`QG6>dyaR{:&N}ԓxhE4&7]URZWIG82DJDJWve8)@bzuiODFưϓN/JtYGV^J7G[YG6/׺c/$`ҵyp`*  ;NG03EL:8E5)7h~xurw~Ǭʶ¶ݾóݩpd`b`^OKPL(20,bxmaUM:AOlvdcl{mZB"  )0:<:CFB@8>JNNTZU_qx{znkeRC7+)0>MX^jxɴkG8GWN21'8_smVH@3!4UibM<=EG7* +,-7Lk˫κyqsպ~|sqpfUGHS^`cov|u_Xfv{qelxoZ4 +9AEHLMG7)$'"&5M^o~xlcjwmgginvz{z{ɵmYI>4($$+5@MXbr}vzµ}zvumcdrx`SYm{{uxzqlljlihlokoz{|w{rhcWI@?CA9005G`~̰zoldRC>HV[ao˭re`fpwypZF3+2IZir~̶}xuqmssT9&#'   !,3;DN_psh[SLO\caTIBABLYkungelkfgo̼ówi`^[Z_`gsֹ}j_X\gqsi]RKBACEBENZWJA=@JB3  $5L^floz~zy|wfekhYI=2$(LX^[VSKFIR`llhcbjyvqsof^XaskVOZlsxýƼ{xo`Zbv|xv|xdTUhtaPNWdif`ckourprmf]T_pxwkZH3")+07APPJMVbgdgnuwsxü˾̳~||ufXL>(",29BIMPKB5( )IURQW]ZH5% +7ESaig\Zdmkc[Z_c]SSYXNF=9=DNauɷ~xtt}ǷjO8% ".69CSZVT[iutld`]SH>?JSZ_`adabhquwvuumgkmquvzyogmz~zx|xkaZ[ajwȲsf^\aqvf`adkruuw}zw{kR:%   *6;>L`nrnihilw»ɸztt{ҿyikxr_UU_nyytsxzuquw]D:>=4/.11-()(+0;HXgrvwxvrl`O=2--1430.18>FVgqpkr{raTPPORSVTJ<23@N[p»zkbZVbwĸ}srtvtmaPEFKMF<=Ldp\H3" #4EYp|Ŷwkc^WSSW\`elql_VVXP<-/9BGNV^fjjkf_YTPSSNMJHIShzrmqzugaft~|oc]^_clxzpmok`SE948ESan~ȹtg]XVWXVQMSbnuztbNB=@LU[i~~rmklmpmg\U\mxzvwursrstxnb_bfjpx}xswļɽ~xywofa^\UJ?;BO_smb]WK;*+?LPRX^cfhkoqrrqjZJCAAHVk}~tgYH6-/3434;CKT`nvxxx{|xrjbZQIIPZfhb\]bdZE33>EB82;Spunkp|~ssƺ~}}wpi`WWbmnhejv{oc[Ybszk`SC;9:91&  (4EWcih`SC859AHMV]bel{{qrtqnt}zolxrlrz|usojgecb`ahou˽{fXUXZ\`cc]XW_msWIECEGGKT_fgaZYYZ_hs}xpsrbUPOOUaikllllh_UMHFFLXequpib\XWV[hvƿĶwqtx~ytw¶{rg_XMA98;::DVfic[[drwpd\ZXUV\iqplmosytcWOIA976- !3AIPSPF;38EVchjlnprwukhltz|zwvtqnh`[^fouyʷuouzunfcgpyyn_PA1#*09J_oy{z|{xy}xncYK@ASisfXLB>>BHOQJ=/(-5?GKKIGECDFFEHKHB@Le̴ueZRPVew||qjhggddjsxxqiehmqqme\SLF=1**.246;ETbnx{k\OF@80+1E_ptv~|y~xpihloomoyztrpmms}upz}p_TV[[VPTd||xqdVSWVK>89<:1& 4Shu}wnnqsrpjcadgifdgmqpihp~yvrmdaenwxhXOJGA7/.4?CM^nvvx~wsnkp|þumjmt{~~||yi^YTOGB?=93/25-+11+(! #.9EPW\`dikoxzz~ztnjhkoqpmms{zsnnu|~wqlhfcadktzxv}¹ñ|{}}||{yvronlf\RMKJB4% !(/7?HPX]adhmqtromot{|wvy~qhb^[]gyyphb]YVUTSQLE>=AEECAFMSSPLIKNPQPLHD>:=CKUalswz}yututrqwxwwsgXLFB@AJXiw|sjcdktzyrlhkr}|vphdbdjry}zpaTI?5.++.4=KYhx}}s`J7-%#,5<@ABDDB?>CMSRPUcs}xsqnhbdožxkb]YXZajqw|}zvpiaYTTY[VKB@DINS[fs~xrmhc_[VOHFINQOKKMMLKKOYcjmmie`\TNMOQUZdnw}vtsrrsuy}zrjgoĹ»|snjf_VPLF@:87227>CFJQX\^ajv½~wtv|~qha\VPOYmvi`SB3)%$# %-37Pcqz{uplkmquy{{|}{xsnjgc]XVY^a`\WTUVWXZ]^`cirz{sia][ZZXZ_ekovyrnkgfk{̽zy~~zx{yrjc[RMJHHFB=:;?FPZbgjlmlkmrwxtmd\VTRPNLMPRRQSX_ccaa``_^^`bejqvwvwy}}zz~~wy{uvx{}wutqlgddefgmw~zuohb```^YVX\\ZY\_`[PD:40..2773,(*09BKV_glnmnquvvvvvwzƿ}vqnmkilvº}zxwy~xpkklkg`UKECGNV_jwna[YSLHFEGGB9217BLSZahotsj`ZY\^_`dlt|yjb\VNFA@CGKLOVcsqaWSTW]gq}vnid_]`fnv}~}}yvux{}ø|kYJA?CGILRZ`cca`achlmnpqrrni`XTVZ^^[VOHDDHLPVZZWRMIHHD<410-',=O`n}Ҿrgcdimoquypkmt|}wn`QB8312468:;=BJPTX_hopjaXNF>74453005>GLMNOTY]^`gvǿ|sic`_^`beipz}|}~}{rllpssme]ULC<:9;CLQQNKLNPPRV[_abaabaaaacfhhd]SG<56:?CHNV]acdhnsrmhc_\[^eow~ztrsssuz{vttvwtqnnoprstuw}wj_UNKKJHECCELRW\bjszype\WY`kyvqpqrtvx|~zxxz}xplid`^_`bejpuyyy|~zsolkmpuz}{uk`VPMLJHIP]jsuqnpuxxvuuvvqlgdca]YZbp|{xurrtwyy{ù|tkaVMGEGKQYcnw}snnqv|{wsqrvyz{{vsqrsvy{}zvuy}}zrib_bjt}ukbZVV[bkv}zwrkd``abbdhostrqpomifc`\\`ehikrz{vmfgmtwwvrmgdehnwuh\RNR[dntwy|}|}}|ysjb^\[Z[`hqy}|{{xwxyxvsrvvnjiiikmqu|sh^TLHIMRX^emuxz|tg]Y\aegls|{od\VQNORX`ehfaXQMMQX_dghjmprstvx{{yxtpnou~vpnqw~xmd_\[ZXYZZYWV[dnvz~zrmjihd]UQQRSTUZbnx}~xolosusnjjigc^\_gpx|uolkkmrz}xqicbdhnus`UPOOR\k|xolkh`XROLHFJTalsuurmhdb]VL@70+%  )7FTbqzxy}~}|zz{{|wpllllnt{}wrnnpu|xqjc^[ZXSORZcksz|z||obVLC;50.18@JS\djnpsy~{ywronqvz{{{xutsux}{wrmjjie^UMIKQX]aht{ocZRKFCCEGHIHGEDDEGJQ\m~~zy{}~}~zvuvzytuz~{|xl_UNHCAEMYfpx}xojkpvyzzzz{~ync\Z[]agq|yfWKEA>;8:@IUdvztomlmoqsw{wohedeec`^_bfjnooppqpqrsrmeYK@;?HR[dmtwvrnlkkmopqrsttrolknrvy|upljkmqw}uja\YUQKD<633349@FIKMT]d`TE91)$!#*06=DLT[cillkjhd`ZTMF@@DLU_kxƼǾvnlouz|xrjdcca_^`fnuyxsmhe`WLA;950+,06ENV[_cgmqrnh`WPLJKMMLKKNRW\dlv~~~~zwuvwwvspnnpsxz{zxuqkbYRLKKLPTZ_dilnnory{upqu|~ti`[YZZWPHB@DLValsvvtuz}uokhfgjntz{pfbbefeehlpux|~ztnlid_YXWWWX\biopnifdddda^\\]___^^^]]`fp||tmjiilq{zqic_[WSPNPVaqxk`UKC><;=>>>BIQWZYVQLGA>@EKRY`fikmquz}wtstuw|yrmjigdaaelsy}|xtqprx{rmkklllkgaZTNF=5.*)(''*07?FLRZbhnt|˸}zz||k\QLKKKIGFEFHJJJLOQSTW\adeeehnv}|smkmnmhcdjpv{}xvvwxz|~}zxwutuy~~th^VTXafhfcbdimnmlmoolgbabejosvy}xusqmf]UQPPSW`m|zqkkowXb-`Vk`XubkBLXk]q9``ъ[]YǨ]BLk]v]Bkkl-;"@[ul]I@GPVkѨlohb]TPKGDVckgb_]XTQtpЧ峔fd_]XTQPQTєѨzyrplkhhǧzupu{tmhc_潔vohb]RLod]XMHC=Lvoٯuog^]OG@:42]TMHB;61/ofkѫuqg`]QKD>94Vb`]XPKFC?B~tm{tlf_]RMHFuqlf`]XRMѽ{uoid`]kƾytmhc^^ܨ~xqlhd̔}vqlgbڧ{uoidkѽ{uoid_]ܳ~xqlf_]{uogb]]Q뽝~vqkd^]QQ{umg_]TOHG×yqld^]PIDvphb]TOID?`xыvqib]XOHCVupib]]QKF@=y먑{umg`]RMHDvoic^]RMHD^Ǘ~vqic^]RMkztoic^]ROL梞{toic^]]ytoic^]U`yrmgc_}vqlgb]]Ѵytoid{vqlgb]kⷮ}vqlgu}vqlgb]]ʽ{vqlfbl{vpif`]]]{upid_~tztoid_]XQzuoid_kuXztoid_]XR^{vqlf`^x]k{vqlhc_]XVkytokfbqT{vqmid`]]zzyuplg{]`{xrolgc`{v{vropb^}yvrokg{}{xtqdk~zvtplr}~{xthf~zvtpp~~zvlik{xuro}~{yuvkh{yurp~~z{yvkik}yvtq~}~{}zvmki}zxuru~{{y~{yxqlki~{yvtr}~z}zxpml~{yxu~~{}zrqom~{yx}}utqp~{z{~vtrq~{zz~xvutz}{q~yxvut~}yu~yyxvuu~}}r~zyvvt~~tz}zyxvvu~~vt~{zyxvv~{ux~~{{zyxxv~vv~}{zyyxxxy~}}{zyyxyyx~~}{zzyzyy~~}{{zyzzy~}}{zz}{zzz~~}}{{z{{{z~~}{{{{{{zz~~~}{{{}{{{~~}}}{{}}{{{~~}}}{}}}}{~~~}}}}~}}}{~~}}}~~}}}~~~}}:f}y@U.">ESSfkvX}AvyLNX2@JLZjmyfyLXxk>dE>ELXajr}X>kx@Xf%'EJLZjfy_}Š@xX:mQ9GGSddr}ފ_d]x}2am5AGLZdfyyX¶JmEJv]".J@SXjqyފSšE}f2fqG>GJXadr}SU5Srf.%JASXdmxހX_kJ5kqX 9ELX]fr}ιLƲLk2Xrk>EEQXdkxxXǕX9Aqkf"2EGSZfqyԲLvrS.dmkN@JLZXfvq]Zy,Nkkk,,JESZdrvԨJβ_95fjrX@EJXZfvk]يqS,Xfkk3"JENX]rxңAva,Effrd 3JA]Xfr}]aX:2dfmqEEANXXmvҖA3,Qafrk,.GEUXdrvX]f:]dkvS @ELZXmqNJE)Xafqk>%GEXSdmxS]G_akva 3@NXXmkˈA}3ZafqvJ">GQS]myLaE]akvf2,ELQXkjǀ@_U]dvvX":ENSajvJdޚ@9]]drmE"GLNXfkx@ꯁ:L]avrf',JLQddrAaˊ.SajvqL @JJXakx>ޚ._avrm.,LJQ]fq9f寀NAakvvZ>LLXakyf@΀3Ndfvr9"JLN]avy2aٓ5]fqvd5NJZ]jv]@ޯfAamvxA"JJLZdvy3d€LNfqyf'3LJXXfr}XEҕ}5ajvxN"@LLZdmx)kίx9fkvv3'LJQ]fvJ@yǀXNkqya>LJZaqx)k͕qAZrqxA"JASZfryAJr:frym'3LJXXmv'k}kGrr}S EGN]dvx:LxjLXvyv3,LEZXkv}'dv:km}a":GNXdvv5JxmyLmvyA"EEZXmvv)fd]Xrk.3JLZ]rv2LvqxƯNayyS%EGUXkqyk)ffJkq3.JLXaqq)JrfqQv}]):LSXkqd.d}krLdv>'ELXaqr,Jvy_ƨEv}f,5JNSfmX)fyX}́NvN"ELQdkm"NvajZfym5,NLXdk}Q"f}vX˶JryZ"ELN]frSr}QvΓS}v5'NJXfk}E)fyX_va}a':NJ]jrNvrLXrxJ'JLXakv>,fyEkҨQ}q22QL]fqSq_Lҁ]] JLQdfy.2jx>yamv5)SLZdrvSqJUNf'>LNafx'3dxk>yזXN'LLXakrSm:]vjy33QN]fv3dxSAXyf"EQSakfNkv5jٲNE,QL]dv 3dvEJ}ހdv33QQdk]Sk_3k}dxX,JNXaq5axy3S}y޻]x95NX]fLQjJ:rxff.@SX]v".av]2ZyyvkN.JXXfNUkv3Akv]j53SXav3d}E3arvZZ,GXXdJSkZ,Lkv]E.XXXv}5f}m3>fmvfZ.@XXf:Xrv@,ZfvySX'SZXvv:f}U"EfjvQ2:]Xk3Xrq%3]fmxrL'QXXvx @kv>"S]krX52]Sfy,]vX@XdqvE)LXXrmEff")XZjq52XSfy% ]mEESdkvN,EXXrfGkZ2QXfkx3,QQf"af2LNafv :XXqXJjN :NXfkxU NXf"_X"QL_fr}),XZmULf. AJXdkvA_a)dL.JJ]dmx\QZqNQXJESajv 2]Z2a35JJ]am}}N]m@ LJ GESafr}]]a}2X:@EZakxy"5am@ S2)AAN]avy Nfx 9@>>JX]kvv] _q5L2@>Q]avvy,:jv5)">>GZXmvvXr3: 29>N]_vq}ymr:)5:EXUdvr2Jy5)2>>QUXmkv"a}q 2)5>ASXdrqk:v,,:>LS]kkyNSf " '39ESSfkqGf,")5:NLXdmx΁Gf ).>@NQdaqyvX"")5:JNXdfvޣdvd%25ALS]fqyšd "%3:JJZajv첖qX".2AANZdkxԭm)2:ELXZary@.2AEQXdfvf "39ELXXfk",.>GNXadr '.5@JS]akx",.:ELXXavy ",2EEQX]jv5 ',:EJXXamx").EALZXmqQ))2EAXX]rq"),@>NXSfvya)'5@EXUZmk"''>>LXUfmxL ''3>AUSXmk"''9:NSXdkv''"35ENNZfq}'"")9:JQSadr """55ALNXdm}kX" .5:JNSadr5S"25@LNXdkxZa) ,35EJS]fqEf "23@JJXXfvAfa" ,35EJSZdryLfE'.2>GJXZkv5ff"2:AJNXdmxJkk ",2>>LS]fr}:fkS "2:>JLXaky@mq2",2>EJS]fqyL dfv ""23@EJ]]kv>krj,3>@GSZdvxa]mvA%..>@LXajvԹ2qrv").:AALXaqxvSvqrrX@EJXZfvk]يqS,Xfkk3"JENX]rxңAva,Effrd 3JA]Xfr}]aX:2dfmqEEANXXmvҖA3,Qafrk,.GEUXdrvX]f:]dkvS @ELZXmqNJE)Xafqk>%GEXSdmxS]G_akva 3@NXXmkˈA}3ZafqvJ">GQS]myLaE]akvf2,ELQXkjǀ@_U]dvvX":ENSajvJdޚ@9]]drmE"GLNXfkx@ꯁ:L]avrf',JLQddrAaˊ.SajvqL @JJXakx>ޚ._avrm.,LJQ]fq9f|vulfed]RF:1$->Rkɹ`B'/MqugYMO]sɩj<  #++*1FeؽeL1&27;>CGGFFGHGC=81( %?[{|VE=8)"[̲|iUA/ +JkǶtL/WeĜj, 'Gn¬x\>(  -@Wqȼ{~̠tL* 0656=GR[cltwnZ@)>_uɸn_QC4&  (6KaoqlcVA$ 'Oʼ~phfghjou{Ǹwtsqpqrrrpnke^WNC:9CUi{þķpV8 )5:<;=?AEN[lҶ~^B.# 9QkǺxng`YPE7*  2BNYahkkkns}ȲlYI:,!#,39;;82+" !7Ne{xne\VQNJD<1("  " !&/>PcvžuidejqyŹ|y{xocUE2 #'*-169;IS^gnsvy{~ɹxph_TKD>81+'%%'+18@GLPSUSPKE=2)" "$%$$# #(-04:AFJMORVY_foyƼwpmllmqty}~uoje^WPJEA<7421/./2359>@@=:99;>AFNWalwufXMFA??ADFHIJLQW\_adkt´|upmibZQH@80( !*3:@DGILQW]ciou{ulea`acehknoqty}{skebaaadhlnoqrsqnjea`_``a```adhlpuyzywusqqrtwz}ʾui^TJ@7.& !&*-/1369=@BCEGIKOTWY]cjpuwy{~}}|zyyy{}tj^RG>840-)%"!   &-5>FNU[`dhmqtw{~{vqlhc^YSMF?:7667;BIPYcox~ytoje_YRMIEA<:;<=@DGJOU\bhnty~~xspoopooonmkhd]WQLD=842/+'#! !%),-.01237M72G\w|ZRcodmy~tY^wod|g?G{ſx`cpty}{kTLRGG[ju{}{yyxtdNIN;3MaB&@ioLB`xrU[{}[Sw˿~vYmxvyF;vͳkZ^o{~mUJIJVk}~}|{{{xqaLC@:@[ocEi©vc\cp}wdVNLP`t~~~}{vm]NB;@Sm{nVJVxĮrYLTktSJ[r|vrrr|yqr|{UPvɻxjekx~n^WSUaq~xn`SEANh~q[Tb{vy}{jYUbydOPatyrr|r{ytvy{~wbirmpy{ohc^cp{pcYNLVhy|gUUkxuvyyuh^bq~g\amwxquuv|utvw}y~xux}}~oc\`iy}th\SNUg{|j`cxxvw{{uhbj|wd`hr{{{wu~|rptx{w{~xmddn||y}ync[V[j}ugcn~yy}}rjjxuien{rktxuv}wrprv{ypjn{}~~vkc^ajy|nehr}~{ogn}tmijoxtiky|rqwwtw|}xttw||wy}qe`biu{qnrx{ww{vmit~xpkjmu~qntvrv}||~~{}wrqu{{pggmw|vvy|wttuqnt}}xrjgjq|tkjtypqy}|{{yuuy~~womow~{{}~{vuutv~}|xrpryypjkuqmp{}y||vvx|{vx}}wttw~~}{ywurt|}xrpt}vqor{}ut{|tty}vrtx}}xy~|uru{|y{{yvx|~|{wtt}|xy|xuw}yuw}xomqx~{xy{|}~|yy{}{|{wuuy|ywvy}yy~wv||rnpw}~}}~}||~~{yxy}~~~~~~|yx{~~|yy|~{{|~~xy}yvx~~vqoqv|}{{~~~~~~~}|{yy{~}}~}yx|}wwy}{vw|~xuw|yuqqtx~}{{||~}~~}||}}{{|~~~}|{{{}wuv|yttw}~xuw|yxy}}}{yxy~|xvvvvwy{{{}~{xy{}~yx{|wx}{tqu~~~}~}|{xuux~~}|xutuwxyy{{{}}yx{}~}~|~|{xusw}~~~{yvvwz|}}}|}~|zxy|~wqu~k3&Pmn_lwzpnu]7&9Ojxx^:9FR]elqu{fR]frv{{zwqjn^UYLBTkxuyyjxѢzjNJ`lossuxmX3/@WijnuvvxxcB*?HSY`ekqnHD^elpsrqppknuQL\N>Uprky}i~ؽkaVNcus}{wuzreH":_w{sruwx}|l]C"9Wjmlmpyl@8Qn}}xuw}{zlOFOQPYhoxrzЮ\JDI[ivqkoxnX8%Emvopx~m[B(!2Nev~hD5?[vmO?>CL[frн|[F:;G]yymiuwniaJ0&6[~|{vhV@*(8Ph|{]D=Jav~oXJDCHR`qķoXI>>Lk~vps|phT?9E_|{~reWD68EWl}vcPGK[my{||}~kWJEEISh}¾n\L@BUvywy}reVE7HXqec`hn|~re]UNF@><;9=HK$ "28CHLI9EnrkP.1IYkohSO?ElμȲwswkVPSj|kku{~pke^XRNKKKKRcd62HORVXS@##Y~xwoU0/Ss|hSUJ#Eɺź|fywYHBQkk`hvv`WSSRPKHFIP]plF8Xfe[P@*.Wj^YN82Fe}o^WH+?ʯ´qrʾiQBDVpo``lybRJHKQUSPPXjvlH/OeolbP=B`rd[NCDVl}}qj`J11Uªžvr{~~iXU`uwfbnj[SSW]cfeceq~jD"%@YhhbVHBSsyne]NCIYlsnfd[F7Bfxv}|}xkbhv}phiy}j]Y\_bejnoow}c@(%3Ndlj`UKNb}~uplcSNWfsxwuqdPK^~|qko|¼vjen}~rqop|o_[^cfffhjnuqU8)/D[kok`YYh~|xwsh[W^irxxxseYYjvolrxvuxskou|~sh^^chjjikq||hO72BXjuund^dw~vuxvj__eo}|od]bsynheiw|ux}xlls}|vqnrxxussxxdPCHXjw{wqkir}pikqy}oc]dx~w{||yj^[dyxv{}sqx}ursuwvurrvscSOWfvyx~wplnu|rkisvsy|vuy}|qd\_r{vsy{yyusvy{xurs{~rd[[es}uolp{xqkoyvv}y|vjhs~yxxxwvyyv{}uqruxxwvvyyrjfjq|}~xqnpywojp|{rv|~|{{xljv~|xxxx{~ww{xx{{|}||~}wrru{wrqv~slkrupuy|~}~vqs~xvwy{{}{~xvy}~~}{{~{wvrprxxqnpyvpnnr~|onrx}~xuxxuuvx}|{}wsvy}~|yvsv~~}~vpouxsss{ypnry~~~|~~xuuuv{~yusx}|{xssx}{}yqos{|usrs{unkox~|yy{|}yx|}|yuu|yx}xqqv~ywvw|xojiox~~~~~~}yxyy{~|y{~}{xx{yuw|uqsy}ywxy~|sonqw~}|~~~{wvx|{xvvssx~{uv{xrqv}}{yy{~xuruy~}}~}|}~{wuvy~|xvuvwx{~|xy~wruy~|yy}|xw{}|}}{y{{yxu}|~wcU\tX@v}bsé|}Ŭ|qhb]XROLO`mf_UPJD?;50," (Kgo_E ):MYekol]@&$ClֹpȚk[tѷ¬{~ti_YSNICACP`XMG@=73/,'$"/Q\SD'.'%Twk{wĽjaƮ]Q~Ͼ~|ʫn{ymhb]WPLFFOcocQC?<:8877652%5]uiK%2Rchggf[F6*4gzuɲia~ʺ{WNqַízeiwc[YZ[YSMO[jmbRB:558:;;::82.8P``O0&FcvzuiWG?;Lssyümi~Ļx[Unξ|nst`XRNLMTWW^mwuhYKC><>ADDBCGFENX[XM6#%:QfsxufTJBBUu{oq}xmugU^ο˻~shb`^]_bafoyypeXOKKJLNONNSXSOQQQOE5/7IYfmmeYPMKQbwsmt|wu}ÿzmgtƷʷŶlaaa`]\]bipuuqi_UPMKKNSUXZafa\YUSRMFFQ`owune`acfjs}xtz~{}xxɿ}we^`bba_]_gnsqlc[USSTY\^_`fopg]WSQQOMTbouvslgjpuutu{uu~{y}wjghkkjhgmvytoke][[^cknjeeozyl^WTWXUZeq{~|vpqu{}zww~|uw~ywuqu|~||~snnptwvsu|ztnkjhgjpxzwsu~uh_]`bfmxytv|~xuu~zy}wqt~vsy~|wty|spooquvvz~{wqnkmsy}}||{pnpqsu{yw|{{xu|~wy}}xqns~~wppyzvqu}vttuwwvvxz{||zvqljnv{||}uklsttuz}wyz{~~|wzzqmp||wx~wpnu{wuuvwvwyzyx{ztotzxontxy{}}z}w{yw{wnms}|wx|~zvst{~|{||{xx{}|yx}|xvz~tos{~}z|{x~{xzxssz~zuy{yxy}zy{}}}}||||{z{~~{yz}wuw{|{}~|}~xuvy|}ztps{|ywz}xx{~zy}~|z{||zz{}~~{z|{{~~|}~yx{~~ztpu}~|}}xvvy}|}~}||}}||{|~}~||}}|zwuv{~~|wqpv}~||{xvwy~~~~{yy|}}}{xvvvvy|}xtuz~}}~{{~|{|}~}zvtuy~~|}}yttwyzz{}}yy~~~}~~~zxy{|{yvuw{}}}}|}}{{|{wuux{~~wvvw{~~~~}{z{{}~}zxz~ynkskX]{i[Mv˰ʷysmhgm}rfZUOKGB>:9;?GVmzzj[NE?7# ,SyslrĶ̻ȭθqDZxqlga]^kug\QIC>950,**,1>VkjZI?40+#:exvz|wmkae~{Ǹپĩyaնzsokheky|kYNJGB<8668:;@Nfxv_F86993!&\yy}qo~ι¬ԾŤwasīӭvynjigdbfp{xjWIB?>=;:;;;=FYmzu`H6./35*Ct{v{{sq{{ʲsxл|tskgdbachnokaTH@835;ADEEHVm~zbK925;?5 .Zvw|woox}u}Ȼèxtssqprwywoe[RHABGKMNOOZl{{lXG>?DLK9! (Moqqyyrkluvntþ~zxy|~~{vqnf_WNE>?GMOPQXfv}zn^RKJNUZQ<+ ,Pn}zrrwzpv{{~º{y{}{rjfc`]UJBDNX_adhqxzuk_UOOU]aVA/"&Fh|smr}xlm|yuy|vx|vnigfc_YQOTY\`enw|{uohc][\`ef\K;,-C`uvs~mem~wyyqmp~|}~{|}rnonmkfa`ejmqy~yutsstuuqeSB:F^uwxpdgtytv{{ulhjw~|uu|~wtru~{tstqnlihimrx|yxz}}xl\PRbw|ufahw~wtwxrjden}wnsxruzusty|yywsommnoqty~~|{{}}xj]X^l{peht|wxxsmjnw|trztpv{utw}wpmmoqtw}~uh_\dq~~ugcjvwvyxrkio|tpt}~uv~|wvy{usuwxyz~umiiq{~wkfir{~xyzwrmnuyoov}w|}|~}yy}{wsruwyz~}}zrliks}{nfdkt{}yzwrmms}uoqy~|}}~~|wtuwy|~~~volkpzvlhkrz~{vrpt}|tsw}}{|~}yxyz|}|uomou~~~|uomnpv|}yvronqw}|wvx~{{}~yspu}~|~|wqnnquy~{vutrpprw|~|vstx}~|uokms{~{zzywtqopsxz~|wwxxxx{~~{{~}~~~~}{yvqmjnu|}zxxvuutssuvy{~{xy|~~zunieb_][ZY[d~obWTQOJC?;730-,.25569;8&@rnUfu]YҼƳ~}tbVQPOMKJIHHHJTizvaG5..220,))+05789:8(9wp\`ué|VTpŸȹ۾}rx´yrru|~k\SKHGHGHIIGEHVjxr^F3*''+06:;=>?CGHFEFJH5Mwzj]_p}^Saw˽ָ{r{nf_^bec^ZZ]_cluytfUH?=@FHEDGLQTUTSUXT= >c{mgo~r]]nó{}ƣruphda`dgf`]]afltywn_ODADINPQQRUVUUUUXZR<.Mk|qoxrgm~ȵ{Ϲw{qliffkpogacjotwvpfYMECGOW[\\^a_[XY[]\R<*,?Yp}wsw~{zniq~sxuv~vpnosx}}wqqy~umga]]bjpttrtwvtsssph[KCIYl}zwyvlhltxy{rkvzru~~wronnqw}}~wpkgefkpw||{zyyyz{yqg[RR\oyvux}woklpsuv|n_`t{wx~ytqqtw|}vplmptx{~~|}zsja]bn~~{yy}ywvuvyxg^e}zxy}|~}vrqu|{vpkkpuy}|{}wnfaaiv~{xuuwx|}zvstxxgbq|{||y|zuswzuppu{zpjhkt~zvttw{~|xtqrxqffw||}y{~~|wrrxzvsuwz}}|}vnjimt}~zxz{|~~|yww{|qjn~~{|~xvx~~yuuwz}~}}vpllpx}z{}~}zywy~yspt~~|truy~zvtw|}xuv{~}wqllq{}yursvy|~~~~|yxxxy}~~ywz|{~ywz~~~{vqosz{vuwz|}|zwx|zvttuvvy}}{z~ywz~{{{{}~}~~~{uqnmosx}}~~yuux|~|xwx||xwy}~|~~~}}}ywwz}|{}|xsmjhimquy|~}yvux|}{wvy}~{|~~~}ywwy|~{yz}}xvsoljjlosx}|{yvvz~~zxz~{{~|pcYYasĆ{fQj||xtqmiggqre[TOIB;537DWR7+.3:?DC;;S]T;#&7i¯׫|[_m~ysolfa[WTSQPWnvdWLE>81*#';; %*+$7MC3 Kuqgzxhqطϛb`xspnkgb```^^l~aOJJGA;4.+,3BN? .=BB;15QfbI%!)a~nv}}ոȻƑrtoVSlrihjjgc]YWXYY_st[G<89::61/2=LL9!/?IJA9CWfeQ4#?szqtxȭyjwĶձokzrXRg|i^Y\bddca``adpq]F99==<>?@HPNA0'-;HPUPJN[ejbL6)""7_sonp{Ĵjcy̿uyty}rmpuzzvroops{~kZPNOPNKHFKSSF5+.:EMQQLLU_c_Q>0++4MpsjfejwĿuei¹|yqqvz{xsstrrysg^XVVRNMNRZ^Q?58BOW[\XW^ehd]O@9:BSl}xusw½phsźzsz|tlkpw{zsonnpu~|tmhaWQMNRVX]_XG86BS_ed_[]cgif[LAAJXhy}}|{}Ļzlm|ź|z|trtux{{{{zx}|wsrqmbYUW^cff`Q?7@Q`ikjilmlkli^NFM\jvzz}}}~||ylglzvru|}}~~~vlimtzysh[PQ]lvxvvz}}yvrjZOS`mx|}~|zxwy}}mccm{vnkmu{{{z{}~~}vpqy}sic`eoy|z{|ythZXfw~|~|wpotxz}qd^akw{rkin{~~|{|ztszxldadktz|}}{ui`ds~}yuru|ujdemwyngfn{~}~|xvvx}yvzsjginv{|}wjely~{xurswz}|oeadn{~ukdeozxwy|y}vporuz}~{pggp{|xutwz|zogdjwvldcjx~wuvx{}|ywx~ztqtx|~zsmox|zy{}umgiq}vlghq}ztsvz~}yxz{wuvx|~z|{vstv{}xwvwx|}skkr|~umjpz{vw|}z|ywvy}~~}yvuwz{||}}~zvpnqux|}{~wnhiq}|uonu~~{tru|}}~}zyxyzyyz|{wspruwz~~||{sljp{zursz}toqv~~|zyxyz{yvtutssrrsvz|~}zvustvy{~~xsu|}{{}{{~|tomqw~~|zxwvusstttuutsrqqrtw{~uqprvz~|{~~~o`iЩxnf]VQUfwkX@%)03;@GC;LkpnlgaOEOW\YapwypWLbtn>7B`Ȕt˵`cnw`>18AEPZfjgahkmhZLRUavxciͬoUGZm|ug`[UOG?/ $*>KIKOYfrjZPLKKMPTTK;,,;JSY]\^img_UEANg|~tutb^vƺĽ~kWJSn|n\OFA<:9+ -FTWVXdxwdUPPW]ba]XQB;BP`hkikqvxuePIVusn{{{kVDG\t~taOC<:89;*,ESZ[^frxpaWRS[elkeb^VNNXfouyyy{|m\Xl}¼o_ZirafyrQ6+/6>>/'AT_acisum^TSUTOKOVZ]YNLVcgefkmlhcWIEQg|sxǾtjtmJ32=FH<)/DPUWZalpg]YZYURLQY\^WIL\a]]cghe^RA8CYkxxmlz½y}}|}{gJ34DQTJ:/-7GT]drz|xk]USSTVTOQYdkg_`impvyzxrj`MERi|{t}ŷ|}{~{pW>28DNQF8/-3AR]gu{vnc]]ZQQTPKKQZ_[X\]^`ccddcaXLN`pytnsʿxsw~r\KMXdkiaYUUW\fq|ru}|vrlbYUYac`dilnopojeb]US_pz~zncbhnz}zspmmtyuz}tjfhns~xgckvwldehjnu}woimqrnkosy{zwsmjkg^\l}vliox}qjinqmd^WRT]ba`gr{zobYXakvwoqzzttx{ywx|{tokaW\nrc\]gt~}~vokjihhgcZOIJQZal{~wl_UTZgvuopw|{ywz~|xna]dtufcfp}}tnlnonifeeb]ZX^ep~ymc]\an}wqpt~wrrpt|zl``k|wiabm}{wpf^]addc_]][XTTW^hx~tgXQT^j}wtvy~ztpopw}~qeaep|nc`dr~vnlrtspmif`]\_enyzm^[bn|rjkqxypihhjmos{tf_ajxvhcemz}ww|}uleaels{xkadpyzkcemv~{|wrpnmlnru|zojkuslpw~}~~{umgjrz{vne^Y^iu}xu|wnkq{~}|vpmid__dlx|skhmy{lfiqxyrswzytle`clssjaWQQYft~{vw~wtvwwyuplmkfaafo{zsmmqxznffipx~|toqw}~ytppt{}zrjc`ep}~|~}wtrsv|zxskfiorpmhfghfdcgr{vuttyyrruy}|~|vsx}{upkigimu|wlhfb^\_djnnjggijikpx}yxx{{z{~}}]enwyustx~}{yuoiiow~wfkտjmov~~y}~rh\PIJMS^kid_VK='.ATc_K. "=T\Z[gpvw{oVWizǰżwjkjpu|vzyrklofXSJB=<@GUXTPIB7) )9JTK; +?PPNXdilos{yu{lMRrͿǶiYgwypprj]SMHCCEJRWWRKE@5%!7IVWM: /O_[Xcpxxx}]Sgýĸ{_PTdv|usx{pklkdZOGA?BHOVWUSOJC8+3Naf[A"2Rfjkovg\gƾzr\G&*BV_YL:+'+6EYeknt}~wqilv|mVP\qŷǼ~mcaky|jTFDIKMQRTV[agmx|sgbfkaD,.DX`ZL>427CXkqsvwhettgeo·tsuwrieiq|zui]RG?=FQYWOQ]gmu~xssrcJ67ERUPC4+-7F[fhho|rhnphmyÿøwqomkkmw|wl[ONXitslkqx{~|stxlWC?GOOKE=:>I`y~sf\VZh~o]TRWdu~tjo|yuɿzpoot{ujjq|shbc`\\[UNRc{|o_TS\m~|iXNKNWae]RVdqvw}uos{rptzwhZV[bkt}~tw~zz{tnrzog\QOXeptoeUE=?IX_THJWeorswtd_cttoszvpjefjmt}wvyzwx}~~sebiu}{vqle[UUXci`TR]jt{}j[WZkupryxtpidepurw|~plt}{mbao}zsle\PIKVckc[Y`jrxz~~gSIQfxkfkuzrnh_Z\jwtsty|usywnlv|wof][alz}vmijklpu{whXR`~{{ukgc\W[k~~xy|oijnv}~|{|uno|yplha]cnxwqnrwurszwh]^rwk_YVXcrz|zx{ysqru}~|zvx|~vonwxqiabmz~zvvz{vqrzrbZ_qufZTSXfz}ywyxrkjr~}ytroosuv||sf]^j~ztmc\^hu}~|xtppxth]U[n~vkc^^ftwu{zxwwxzxzyiZRUatxng_WT\kuwvxzyvqjipwj_ZZcvyrmijr|srtsmhjr{xpkijnuwuy}|ug[W_qwnffnz~}wqpuwrokjo{}wtuvvx~{yxwumb_ejic_`ht{}wofabhpux{|tkeep{vw~xpjhkt|xvsrsuwzzskhilostvxzzv|||~w|y|w|xwvyxwyvwytvttxsytyyvryssyq}vvvyswuwxx{vwpnuyutvxvuppzqvuvsqqsqoumysvrkznrovqurotjpqpnxnrpopknqpnrmrqirqmoqnponpmsloksomnrmmmmmjknqnpkonmonmlmllqqiqpomrlpjWalkkohohirhksjkummsqsrtutvwr{wxxwzz~}{}y~s{zyy|}}}z|~{{{{xyw{{uwwttwuqwqsrpponopknhnkjljfgicfkakgfmdb`iagfdbaabbcccg`b]__c^d_d_Za[Z]^\]_Y^XYZYX[[XXWUWXVYWXWVXUWU\W[XY[YYZ\\]][`\Z`^]b__b___b`afadcac`fdefigcffdibmjhjhljolnjmgifciaikhllquzuy}||~{svpnnld_gmpnruuy{yzvyzxxwuyqqwsy}wy~x}}xzxz~~p~{{uqx~{~x{s|{{wƳĺ{~wumkcafeonpv~{~|uhTFBJJOLIKRXhzs{kTPNQ]t~zl`ciktswvikehqw{uvzmk_QIEAGJOUO]bpv|og\__efgmhgd_ny{|y|~~zuwzsosikqssx{{wpqjeabanos|rkSPLRX[ailnmos~rePF>899BHUeq|~qf`YZccds}{ojmkha\cimtu|~sbWRRMLBKT`v|~}{yx}vz~xsvƶ~iUC>779<;AN]tlcSNSPS]lrvzx||lb[[bkhjitwvgN=70-+*,,/=N^n|~y|~ysmg\VG664688?KOWaikmttsllgb\_\ZSZZ]b`fbfffjsuz~zwwwtrhceaedfc[RU^mw{~|~z{{mWF7<:=BCGS`mx|ph^^fn{~ŷtg`]]a]Z^l}shfemwx{{|zwyogju~}Ϻ{_QFEJGGHM]o}rkkjnq}|wgYTSV_gmv~xwqlqtx|{y{|vysqqqsz}zmYKLVgrqia^\iuóo[KC>:/,/1BXo{uja]SMGEDLYfjbWMFFSW\[[boshWNE<:@N[cmpuwwi_aimkfiecdhjrtoqlhbagie`[]bhoty||zveQM`z|vt{ĵvlhgbVHA@Jax}xsfa^ak{ogciyƾ{xujdghywty}}~zx~xokkioww~zbLHb|uvιvhcincSF8;@Us}skgb]ULGGP]lnjca_gvseYY_adbaZ\fmzteYSPRY^bfmty|woiiigigfhfhkntvuum^K=BPh}ymin|þ}uaPJSWXOA:2:F^{hixtd[\XWRJ=249KZaa\]anwh^RPSVWTOLJNWgwzufYNJLUam|yzzzyyxz}z{{yvtpjf_YK>=E_wͿoXQatzug][[duҳtv{yhTGMduƼqfdmzĥzn^J?GWlĺiUU_ispcUKN^pǮsd[RG=0)/?Odurjn|pYD3,4E]sqmmvykc_^`cc`^dpqda`^VG5,2BR]_dy}_I@PphA03F`uïv]IJbx|cSJQ`u{p`NELdɧxoYJEK[slTJRliWLKUjpaSIJQRKC@ENW_pȺ^@1>c~~b7"#(`tI?Pq{iKHPetfbdjqqqqqsvoggt{xvsrphZI:6CTdtɟdKY͡vcmO*&<_ɿgMJXvŢ}rfJ;9R{Ĺ^CCWkĺoucSSV^k|xoi`QECOdvhl̝uiëL,(1Oos^RP^tԷ}eQHSmyWEK[t|ĹxxiZQRXgz|rov|tprwsbOIM]n{eLUmǭ~NJnªzO@DQbtrU8&)=[t`eyiSUs_K>7;I^|lOKgw]OM^u|dOKVgy~}|{wn\F9:IaR6HvǒO8RgKDMWgZ+'Ammjz~ce~zlbVXlfR`ta^j~tlqyrpwxbJBI]wiMQoӹ{C2ZǾkD.+4Sr95fuPIO^hyeKGhld[QQeH,@d}on|jZ\hrqg]^ju}|ztijq~vZ=+,>X|N@Vզ_17^ϹZ6*(:^_4-J}redms{ePQlqbZ\`k}oTXs~h\bvxorusmhkt~||~}uniinu~~tgR@8?Tr~WK[y˩g7-NyævL5(5OrxD-2Yka__gsoajwh`WWaoeOVnxjo{tuuneagvgNCIa}{U]ҤeO\έfRK[yƢnQPfzy~wmhm{b]i{{yvkb[[epz}|yxwutuw|~r`NB@Oct}cE;Lj}[4@\h>& 7U|^?:Kl}m\Vbzq_YcxtiabplVNUfsm__l~yssy}tqmjlqv{~|}}wjZU\m~}RE[~÷I0<_{P;?Q|rTGUkq_[bq|pm~zjabi|gPQb||mhqyole`_ep|{xzyz~whSC:AWn{wXQg;N(6WlE11GnlD8DicPKZtxdcstjdck{`QSgû|uy}tuxyxz~{hSLXi{n]fѾS?XaDFNfaFF^t_TVbv}lmu}dPCBTkyZJOfujder~r_TT^gmje`_afls~o^W\j{~uogZJADKZivwM@\~^,/O}Y@9Lnj@.5ZjPGRitrjQGN`zaOSltgfup_\dtwywz~prx{ti`TKLWhzwhsɸQ8QwbMN^smN8B_ƾcNL_wʵngq{bSNXq|ZFBTr¼}wj_]ekuwtpg_^g{yllq}~|tfSCAL`osun[fɠhSb²]E>BTp]<:G`ʵtb_sϻ}t{s]NMQc~hUUoy}uaTR]ivwtmgb`bnk_aky|vnife`P<.4B[siR]|žpNRs{U:.9JjU90?\pg^djkxnUF@@Ka~eW`|ĸrXGAJ^uma\`h~ysrsw}{iO;4BXku~v]`|ͯrukE+0MokJDPlydVSe}rU<4>Ne|~ŹrW>.4?Tlrjjrxi[SZ_dhpvtjXD:@QcrytiqêtytQ16I_od[j}hS@4Whvwŵvbh~weURX_nql^SP_wuxvg]VOQcyurw}||mfenx~}xsnlow~vaQC9>Rjz|uzpejyi@#5Ngswtqoužjco|qe]WZ_c^SD74=Rjtqwyh]QKORXcox}z{}|xuqooqqnljknqokimv{oZHGYt¿paYcvq]SZj}{z|¹upt~}tibblvug][ev~ogdmy{{ukd`dn~~qjggfgimruuuwxyxuvz}kRGN`ptoijmuƸ~}wiZPLTgw}rlt~wligijkke]UNNWg}xuzyw|}upnnruwwy}xsjfit{}{xwwsnnsz|xpjijmooh\UVbmx}{uqou̿wqfYNEEO]lw~ypgddgjjcbhtrkd__^]\[\coy~ysljoy~~wk]VWbmz}{ywy}{qfacgksz}{vvx|vohgehnv{~}|ytoihlrw{xzzrjc][_ipw{}|~zx{~~~~~{zz||||{{~~~~~}}~}|xpjcbejqz~ywx{~}|z~wsu{}yusv{{smloppqtrnjfgfgksyytnkkqz~~~}zvpoqsxzz{xtpprruyzzvpg`ZZ]aglnmnsxvsrrsuwvroqtuuuwy|~|wqlec`agq}vopv|xrljlklmpopomiilnv}{tpvzzzwrllnqwxuxo_TU^js{|wqkjr~~|{{}|yy{uqrsuutoookiloqroljltzxqpt~~{usw|~xolouz{soprsrrtqlggkr{}}{zy{}}|wrmkjkklllmntwy|}yx|~}zwronjgb^Z]bglkic`agkosrqomiglv}|srvz~~|{zxy~}tlfdgmv}~unkmpsuuutsvy}{wqjcbekpqqnkggipx~{xy}~yqlgfeiqroha`cju~xvwwvusssursrruz~}~~{vvvvwxz|}zxuv{zsollnrvvxz||}}}wroory~zy}}yvvuv{~tmkmooprrqswzyupkhfffkr{}{zwwy{yrpv}}{|xvux{piiow|}{xtqooosvvsojgfehijmrsqommnory~{rjgimqv|~zyyy}{tqrwz~}tjbcgovz}|xtsrty}~|wpjgilprrnijnsxuvzz~~zvuxyzyurmgglu|yvxzg\XZcovvskebdkv{y}|{{}}|wwvyzyuoheiov{|zwtsstsqqpoligkosuupmosx|{xxy{yy{~{yvojjnrpjc`bjrz~|xojhhipxz|zvrrstuuxz||}}zz}yww}ytstz~zroonnnoqttuttvwz|~{vsqomkihec`acegkrz~}~}|}~{zz|~~{}zuvwz~}zyvuutsuxy{{{xuwy|}{wvsponmmoswywtrsw{|zy}}~{xutvyyusqqrqnmpw}xz|~{zytnjfhqyzzxw{}wrqu~|zyyxurommkjjnrttvtqqpsuxyywtuuwx||yustsssuy~{vsqv{truwy~|yywxz{ywurplhceimonpomlmnqssrpopuzzusv{~|vsrvy{{|||~z}ytvxyxwwuohdgny{roszxokjntxzyzyvplhlv}|yrnmosx}}}~|{xtsqnnnonnpuy}{vux{|}||vprux{|zxz~~yy{}~|wuvwwvurpnnpv}{uuw{|ysidcfginsy~~yz|}~yyz}~wokmt|xojkrzztqprxzzzxuqopsuvxvsljjlt}~zvqnpu{||~zxxz{~{xtrty||~zywyzzzxurrrsrqqqnlnptuwy|~xuvxzz{|{}|urw~~z||vqpsvx{~xqjhhknooqvx{}~~{~|yvv}~|{{zxutw{}xtrsvz}~~zxyzusqpqnoonptx|~}{|}wuy~||tsuvwuqkltz{{{{tsojhge`ZVX\dkt}zsmhgnv~{wtw}~xqomlnu|{vrps{}{xwrjaWRRWZ_djrwy||wtutqmjheghigijlmkihmv~vebo}xtppu}tuzzskc]VNJPYdp{}yttssqnhhmy|sqty|~xogcemuzztmhehtyj]VUSPMRXbnv}}{{{~|vnlps{}|zxz~yk]V^o}{y|~xm`TKBCJNPS\k|{uuxxwtuwzzyuld^XZ`dm|xoie__`de`_cmrsqrtvvtsuwfVJBCBEKSY`fkuzupnnmils{{z|ufbiuxqoqsyĸrZMD;:AEIQZi}}tnjf``hqz{yuw}~vrrw{vld^ZZagmsy|~~zwtsphc`ZWWY^ckr{xrsvxzyzvwwmp|xsuy}ƽw^F869?><8;FZs{ngb]XY\bozyrkgiox~sfZMILOXcovyuvzwpotxzvl`WW\ciklkkhgmt{zskgimt}|ywz}|rf`alz~}~vaOA<=DEFFEISe}|ocWTSX`hpx}xolnruxrbRGKOW_cbdn||tjh`YTRRQW[^`go{yqja]\ajruyxiYU_n}мs]L=:?ACCFJUetbUOS[cghlotwvnjnwraPEBKU^_\[^hr~~tomkgd^Z[``]]bor`PIMWhv}zeSFEJWdkmmot|ټeJ945>GQTWZctxog`[WVY_djnppniffilot}yph`YNJMOVbmyyskfd_YSSTVX_huti`ZVOOU\gsoWEL^hkbWTZi}®wW>45?GMP[h~|zqjegmrw{}yrifkrvwshgowoiaZZ_aa^aju{~~|ti\UVUX[\bpn`[Y^_cgmrv}sXLQfwyoc`etDz~lZNA85:>J\rugcgmmjf^VNLPW_fkklrvib\[[_eifb`bp|uoje_ZXWY\_bjr{ymcZVQOS\ly}aNNbuyqc]améw_G79H[hqpnooorz~voqrnjeb[WX]ckopqppu}slebab__fovutuz{sljhdbgo{~~yrkgeehnu~w\KL_p~ykaaj~̹zaLAK`pyukYQRYj{{utx}}xsjb_bfc`^_fq{tne`aeeaXSW]ejoqw|tmg^[amt|~}{~|zxxy|xbNN\t~vw{|z|sa\]ivuk`URTZcmvyx~xldb_^cdfhnurjhfbXNKP]lx~vld__fltzzussrvycG58Qoyqs˲recffc]SGCAGTfwtle]UMGGKUcsvgc`[SONPSWajt}~qie`\_chpruwz{t^PN_w{z`MFFP]_ca`agr~qkhekt~rhfqxlfghnstusw}xstuz~~}zvqlhc[UUSU^k|}}{zwuw}}wrrv}}xng\Zcq}p_brpTD@K[rvf_bm~qhfoxymedlw~zwx~~}wnkotytkb^ajsy|xtwz~|zxuux{}}}zxxx{}}}|{{~zvsuwxz~~xrtz~}ytmghkqxzrpqwxtmc_^cjt|xsrt{zsosvz}}|}|{~~zz||yvrqrrqnptuwronquuuwzzz|}{}~~}||||}{wvy}wpoopommoqvtoklkkpx}|ujdags{|sh_^esytz|rnpw{qhhpywwy||voga\Z[_eioruuuw|}xv{zwwy|vmjnrwvvwzsqtyxqjhjnuz{xng`\ahnv{~}zz|~}zwvxyzyxvvyzxwutuuuwvx}|zz}~zwurpmnqu}zupnoqpopsyznc_j{j_eq{|ui^X\h{xeYU[elsuwvx{zspv}|vphfiq~xtru}woljggilu~{urpt|}zwtrompsuwurqsvyscOFDSn||trǴn`cru`J<>K]vwdTR[hq{qebgv~yz~}vl_TMUct|vvzwnfbentx{yvvwy|~zwvvx|ycSP^s~vt{lXVclxvlaZX]hq{~~woifgozzttwz{qgagv~~~z|paXY`dgiklnt{wvvyytoid_`gq}r[QYryoukUVesythYRRXdp{~sgYSRYguwomrzzuokkjgc_biv|tqrwzxusqljihhmsx}yvspolmnlhcdefhkorqooprw~dI@GZt{y}ɵƧg]_ei_P@8=L[lw||yqnlr{yjaWQVaq~~~uqvwnhglszzqnnox|ysljmprvxz{|ywxwz|zurqrv{tc\crwo~ðiX^mwbOHN]vuhbdlry|}vnnuyy|~tkm|tnpuypg``cipv|wru|~|wspnjjnpqrtv{yyz{z{{z||~xd`ft~pr|qdakzuc[^plYQQZcmleYNLRct~{uty|yz{~~wrmkkmqsuvvsrsx{}vnkkigihglpqonotxxz{}{ytokhhkponmjghhgou|}{wtuz~~~|yuuuvwz{yvw}{vx|urrsuxxzxvqlkklptvvpkfekruy|{ywwx}}spu{}~~|yxrlfcekrvxwyxwvurpswywrmjlmqrspnigjmrw}~~|ywvtvtsqqsvvvxyzzytpnkighjnmmnpppqquy}}~~xrooprrrqqruvxx{|wwuwx}}vojdbbgjjggjnv|~||~~}~yvwwyzwmfgnuwtnfccfjmpqpomjov~}}|{|~skghkprqne__fox{|{{zutvx|}|yusw{wvz}xxy{|zvrngddinswvrkiginsvvvvvtwz{{{{zz|~~xsv}xrorxxeZ\gtzxlb\^eny}|vpkiilnqwyzxwtpnrwx{~~}zz}{ytoqsw{zwssstvx}~zslgdbbbcgijkkgbcgpwyxwwy|qc`ixɼwlkpyzn`\co|}wqmnopoonkhjovzlfgmt{}{vtstz|usrrwz{upooprswzxsrw|}yoeaafjkjhgkmiffoy~zwx||xzofptwzvxzztnfbchljjkqx|yunms||se[X_ly~urqw}{xx{{oicgjloqoorw}utwyxuqononkdb`_^]]aghnty~ylkztp}}smigf]SKLR`o{|se`gs~vmkqxtsrooptvuw|rd]Z]adffffjnvyrrx~|vqomkea]YX[biossruwxcY`s¼xl]QNWZZRIEGQZeu|wrtux}{skhdgmrstx~wcSMNYceiiknt||mfipy}||~}~~yrh_^]]]`djqtutqopsvy{|{~m_dwxvw}~xg]\fmdTD;?K]q|tmf__a_\Z[ZZYZclty{{}}}{~xldfmt||uoiehntpkjlnrxxvuusstwz~z]FG\xxpmzƷ}ppndYNIEJWfqyqdb\Y]cdgihhfdemvwuu}~{}{unjjotuqoosw}}||z{}~yld]Z^hnrssrqrtw{nVGPc|yy̹ojfe_THACKXfumd\WUVY\_bda_^bjou{xogcmry}~}}uomnswxwuuxzz{{xvpjda__`djnqqstuvwztcPITf}~}սlZVZ[YSMKPYdp~pbYUUTUXYXWWY]ckqrwukeejkmprvz~}|wuuuz{{vpigfijfdedhjiimqvrcO?;Lhy{wyiUMSSTROKKPWaniXMFMW^ba_ZWYajuywx}zy~~{piiossqpru{}vsprtpf\WZagkmqkWA37Kg~zqs|ȶuYKHMPRPKGKUeyp`WNLQ[dmojc]_cktzujgedcimrw||xupjjks||z~xohdfkrtwzzwu{~wcI:=J_puuuwónefec_VMGJUfysomnkggmyuog^[Z[ajt}|sry}|yz{sf_[_dggiklmkotx||wncUKKUdt½uvz|zxrqu{~qgfdba]YY^enw}{yvsnmnqsuvutwxy{|~zvuuusqmljiknqrqqvtrortsttrnigijllmry|xvvwz~xssyz{xvrposw}{oe_`bgkljihhijpvyz{xuuy}||~}yrmjkqwypjghfhb][\\XYY`dkuz{wpjimu}|~rlow{qlikt|{yxy|}wpnoqswz}}}~||yuqnkhiinsuuttuxwww{|rhcciqxzvoifdks|~yvx|w{vkgkv}vrpuvnlosx|xtrruz~{xxz}|xtrtx{~vqssuuwtpieeglmoqsqld]\_gr~|}~ywy~|wyxtstw{{wogabis}tqu{zttw||~~|zz}||}|xvspquz{zy}|vomnt|{snnqy~qijp{zytos{{pgfpyvl_]^dssos||tqu{rqwzvstx{}yvwz|~zsnnqtyyuokgeefgglouzzsw~{|{ut{zlcdejqxzsj`_co}ywzuppvvljowxqort{~zrkc_dnx|{rh\PMYgsyrrw~}sou{wqhmsurpmnsy~|}~|}zpjdb`bfo{|xw{}i[[fnvy~zz~zqiaagpvy}}yqg\SS_kv}wdekueQQUbppl^TUcxpu{qkq|utv{~p\QN\s{y|trwyhZT[gusifnyuhchs}}qg]_gvfSK]qpnqdgx®Y88ASewyZEJemUHQiuXLZ}zip~xcW_~ılTQ]mcUXhz|ut{i[W`rwhbhs~}xma`jt}nT=2?cfP]öqfz}cSHUh|N-$EpsgbnsUL]|~~idiz~dOO]ifTVk}}}onvgYV]fkv}zvneciyw_C.$,HjbWtȽ{jowlchq||pV;25Ggq[JFWshbn~qfi}|k_Y\f|_G=?Nf~}pf[Xbq~gTLQ_ju}xnaR8%!5WōM9O}zroh]TPLMTey~hSFDL`uj`dt{icfkxuaL=21Mf~ymebcisuka]dvñue_frt[GFK]t~`C22Gg[@6EYtxgZS[ppa\iyyoluupwqjijwma^jvn_]fx}bMEMgtWD@KcvmYOP[n}nihqshmx||zk`[cpy}~{qicagr}zk`VVX]adkqrmhdddgq}~|~}{}|ww}|rh``cjlnpsvy|~xuqnoqsrrqqty{ttuwypkov{zvvyzvtqru{zvrtw~}ywvrokkr|ztpompuz{zvwyxz{z}}|}~~}yxz}|}}|y|~}{zz}|uoihjkmnmqtututttsuvvwz}}{|~vqqtv{|{xwuvz~|xx|yzxy~}~}}~}zy{{yz||}~~{|{||{yyzxzxrnkiknnoqw|{ux~}wsonov}|smmqruwyxurquvyxvuz~{usrv{|zvtvwusss{~~}|}~}xx{{uruy}~~zxw{~~|z~}}ysoopssv|yusutwwuurommoqqty}|xrrqru|~|{{yxwx{zzxvtstw}zvv{zollry|wttx}yqnnqrtrooquy~|xsqpqrt{{rllns|}xtniikovy|}~{wsvz{xxxxyvutwz|}~}{wvywxyz|~z||~~~{xxz~~}}~{ytrqqpqv{|~{xyz}{vtstvy~zxvtrtvy{~~{ss{~yusrru{{vu|zx|}|{}~{wvw|{wxz~ztrw~~wuy~~~{yuvxy||zxxtqsty}}yuuxyxvuvz|{xz{~|}}{yyz~}yvvx}{xuuv{}}}}||{z{~{yyz||}~yustx{{wtrprsu{~~}xuuttsqmnqux{ysmkqw{y|~}~||}}{z{zzzyxywwvwxy}}www|~zxwsrty}xuutz}}~}xvwvvsstwwwz|~|~~|xronmllnswyyxyy|~}||zsnlpu{~}~~}{unmou}~~}zxvtqqppnquy~~{vuw|{vnghjnswwvvv{zwvwxwtvyy}~|}~~|z{|}}wojkovzz{{{{zxy}yuvtvwwxxxxy{}~~{z~{{{~|{{yzxwwwxzz{~~zuxx{}|zz}~|{wxz}}yvz{yz}~|wvyz~~|{zz{{|{vupsvx{|~~|{z}}}{vuyvrpqv||{xy|~~}zxxyyz{}|z{~}~{yyyz~}vsw}zv{|vrqu{~|}}{xxz|}~}zyyz{|{~zxz}~zz|~||~}{uqonruxuqompv~}|{yyvuttrpoqvz~||}|voljjmov|~z{~{xvvz{zy{|yvrpotzzvz|{zyvuw|~{xwwzx|}|z{|||z{|~ztonqv|~yz~~|{{y{{zxtrrtv||{zuuvyw{}~|{|xzz}|xux|~}{{{|{}}}{}}~{yz}zzyyz|}}z|~{w|yrosvxyupklrx|~}zxx{~~ysquw}{vtqv}~~}z{~zvrqqtz~{yxxwwvw{|~~xvx|~|{yyyxxurtwy|}yzy{}yrsu{~|~{{zroknpuywvsrrst{}~}||{|}~ytsplmsuy}~}~|{xvwz{|{yxx|~~~{xwy|{xvsqqqrwy{|{{{{|~{|}}}{{~~|~~}}|urqswx}~~~{{zy{yz~{{|}yxx}}}{xx{~}xxwxwvuv{|}yvw{}~~}~{{{{y{~}~wrsv{|xyx|~{vsptyxz{{ywtw}{ywvtwy|{zzsoiinv}}{}}yyy}}{||yyz}}{{}}{wrqrsuuxwwvxz|||}{xxxz}|zxxy}~~~~}||~|ywyz~{vsru}|zxwx{~}zwuvx|~{z}|{~zzz~{zxytnjins{~~{zz|xusuu{|wv}~~}}}}||zzx{}{yz~xpnou{~~|zzyy|{wrqsx~}xvx~|}{zzupnrvz|{zwtoru{~}zuqnoopswvvuvvy~}{{}xtqqruwxxyy{}}{zyurrtux|~~~}|{|}{ywwxzy{|~}yx{yyxvuvz{}ywxyz{uoopv||{}|}~}|zx{}~~}xw{z|}}|{}ysppr||zx~}zxxvzzzyyz{}|~zwxz}~ywuuvy}|ywx{}xsquz|||zz~}~~||z{{|~|{yursv{{wuw{~~zzyxtrqv~{xtux|}|{~||}{xxy|}}yy|wwvuuuxyywuuwz}}|}~{yzxvusqtwy}}|}~~{y{}|xy|||{{y~z{}~~zxuux{~|{z|{||}}|||zyuqoppuz}wvuuwyyyzxwvwwvy{{xxx}}yrqxxvstwz|||}}{{{|xolorwy}vy}vruz{tlggq}~~}~~{yvtwy|||ywvvuty}~|xx}rgfn~zvyxoy~sjkmq|zmZJ?IUbdd`diq~ytv{{l^[^elpogddjryrnot|{cQKLWfld[Zbru[KRhxz|{yujXG7/6G\cecesͺwofdjuyy|ypheciqz~xx|}mL4.?Vjj^VWapÑwgN<>N]emuyvneZTSVYWOE?ESczǺƴsebckooe]VYe{zvklqnpsqrv{}{uwz}~}~{V9/=Odh\W\gv’o^P@12AYmncL4%*?]pqh\Zgw\KGWi{{qgclz{skikopqpmpszzbM>>JZbd__grܷxne_VKB?J]e_K4$$3NjŽxcUOXemof__iyyrpv}~vh^Z[dlrtw}vS6+8Siqmdgm۳yhQ:23BSVJ5#&A\w~|gNC>AGQbnz¼yqf\Y\_clu~pV@9?Zr|yuyѺrXD42;GE<1.8No~|eN;6=D\q{o_TROMR^jzyuspmbPDDPgqrswȶqQ)$=PVNFDL[lz|ɽxv~}se_\`hoprv}}|xojhjkmnorvy~|yy|nO53G]quqyûf9 ,Ocif_[Z]air{~vozѯxlcfip|wnlnsrlcbm{sopry}wrlmomllmnu{mG*"1Ler}{ҫH /VtzrgO3",;RfuӾrtxxQ98Fao{}wqov~l^\box~{rbE+ 6_{pnȚsnqG*.;M]kkgW?*1SjkƷnWUh|wrke_^cp}~|tiejr}}|~xT3(:coewݩc>T˭k7&1Ket}}hQ3FvX2):]y{pϖjcîzaUPavrd]fpzzuu{wuzJ'%8XtwX[~ڵq7=jÅD#3Lq}V4&?eqL0'0Gl]Ogylvа\PdkWR\dowsle_cis~wkciǷL#1`ƲxC?m`7Oҫf. 5YY.$7\|oO/#=f~SEUv¡nKLyٳZUzĝmMIKUahknf_]YX[cfigcdn}T8+6aѶv?4kʑH%;t̿R/3Kt{XA7CMY^VH85;Qvw]MKf¿iO]ɻhO_ŗdF?=NjyugQA;=FUdoqtz{skabfuc=J¸̖F ?jȾJ 9fmL5.:Vkuqd[SXi|r[I?JgĽaSxŮXKj͟hB7CjkG5/7EWeojhjou}|hVPYrɯrM[ɧjHT{”I""5IhgI,!"(EezykZW\emzS13DoՒKAftB>kː> A}dH1,1IjiI9>VxlXQYl}g[l̿س{NCNlvaJ2#$0F^s}{ng^`enztU;.?^~êh8>jb39cٹ~<'5NiT#'N_DFZzwhdn}nk{FFkñzdk߶OGZgzrO0$-AXkoqpk_PDEK]zvcI2-FqۘJ8göm%Pi% (Wƻ?1eq]Y^gght~odfx\Jaγʠ|kjpiF1%'3FR_ee`WPICH^yoaalwԱi:@sa5;kc35ZΝR#"=rwngcWLZvZ5.ClltĤæ~~wrmmrso^K:11?HKR]mxvia_brsP43OnלL1L~IDppG2?_}5&RyvbS?3*0PоuVMVarüocWValzxcPE;78DXkwsicdeeadinwlO;;Qnd^zr\c~~eOEQ`kmuǢg7/8Skupljpri[MIP`qtg`kynlyojonqncYRLG?:8;GPX\YOOT\aekov{sbWU\dlxzqry}xodbfmrokmu~zsnmrx~}vlijnw~{tplmq{{tu{}zulb]___cfkmkosvy~yvst{~wrqtrpmorw~|{yxvtx}}ywwvvuolf`_aeknstpkms|{tqppqokhlx|||ust~~zusxy||}}~ytrnptuqnnprokjnv~|vnkjjihegknrqstuzzpmpstpkgkr~~}yw{~xvsnijlprx|zolmlkfbbku|wqv|}|}~{wwy{|uutlfbejsy~zvvy|vrnnpppntyz{zuqrt{{wvy|{xutrrnkfcdels{}y~{slihlq{qhhqy}}}wmehltyz|z{{z|}~}xst{~{xxy}|zxx}ztoje^bmu|{riddhosuyyrv}|sqquxxztmghqzolowy|yoghkorsqruspe^_hv}xqqsw}}yww|||||||zpgbenu}zneehntz}pc^dozzyy}~{yx|}yyxlffiikjijlmkhgmsy~~|wqmrz{srqrsqqqvy|}}xyyz}y{~xuusrqrppqqrolls{yvx|~zstrpry~yzxplkjd^\bks|~}{tu~zxuqptxwuqnkhegikw}|tqrwyz}|~||{{}~vlflr{{rhbchlprvz}}yx|ww|~|}~~~~}zqlfimsvsplmnpppomlnty{yy}{z~xqonsyxroquw{xz|yyyumjkruutoqw{wvtxzzxrnmpqswwtsuw{ywy}~}yurtz~}ywy|zuledkqwwvwywxxwxy|}~~~}{z{yurtw||xvxx{|yuy{xz}}z{~~~{vty|rf_dq{uonxwhabk{zvy|smpz|xx{zy{xvqh_aryjdepwwqmlpuvrolmu{~zk\]jx~|qaX_n{}scYX[fpuvuv~xomq|vjjuyoecdilnklqx~xtzztsux|}|zyzxxxwcfo{yl^X^jurj`ahpxytjlr|}m\]dso[W^a^RB7=JUZRC8:Mgx{{xnnoqof`]]\[Z[_epz~vor}|pmrpia^bmy~}ywxzz|zx|oelt^PQ]if^WRXcorne`gtr]S]uķq`TPMJ=.*/7<<8105BSahpw|vk`XNKQ[_^ZTRV^ckr}{eOADOLGEIVbjnty~Ƭx]G>AGSVOHGNR[`YQUcuusо}tj]QNNPUPB/# *=LTSTYduŻ~rkjmi_[YYX\]ZTS]hry~}|}zywdTHCCE><@NZekpxϿqQ?CMZ]][\adb_\VU^ntlr}oaUKHHA82-*0=KRRT^m|uidjnjbVPOSYTQUaltvwrkjqyuwy{|~s^MLOWXRNUew̿~`KCDN[_XH7,-:AGHRhqkypjzoaYUVVOA6,+1;CB>=Ja}ykhfghgb^[WUVZ\agkpu{zwx||xqjjllaWPU]cieddgisy{{{hK83>MWO?./=HOKLWq}ylfbd`WI<1.4>CFA>BPgyŻypinrql`USZfrtrliov{}vy~}smnopljiijjjlqrld_\\boyxoiinu||jQEGR_gd\MDCO\ju|yr}zqe_YZYXPC738BORPKNXgxtklmomjfc_bfhqx~~zy}{upkjnqz|y{|ttygYV_kljb_^bjxƴscSMOZ_]SGACNV[XS[m||öth^OGKSSE7(!8HPSS[mxhaagonlfehjjhechovuposy|jdjxytroos}~yropqvrlfb^\XTRS`o}ǵnQ;3:CHF<2,/:GPU^qxlb\YVUWTSRNNWix~yr]UZ_fdb_bgikihmx~yvx|{xww|~}zwzy|zuqnmjfflqvusrw~yh[V]aegkqyztpgXE2-5IX[VNFGNV^i|y}tonh_RE7007?B?89>KYn}rjozynnfb[OGMV]]UMHQby{}|y{{qgjnstole`do~yi\URWYZ[ZZ_itzs`D+!7Qc`QD?KXjxz|vno}|i`WQOH@:99@Qcs}~lZNO^p||sggp|ld^\Yalz~xrpvuonje^[^cjou{||~somljjonkknkhegmvxk[QWi|ƽiODAC>:65@NXYZX`stejz~~~|tjZD2-6K^illpzztuto_L?;>Pevxuw~wi\PMU^`]]am}¼th[NEAJQZ_ht|rk`ZTV[dqywtu~{tplkkmty||yrou{tqrpocRGFQblpsrxɯc:$:@=0-7Icvjcm̻rP1%/?IKA=DYwúufUGAJbx}~t_K;:CSZZUQUhļwdUOUlvohgnuz{vt{ynfehptx~~~vwzzxmggkfbagsnP9:Um}smp{ɫi7 AluaYf_G9D[xqYWrȱhYUWa`J/!'L]hgegjmryĭkD$Gwjboy_Uj۽yaK@44;Ni~to|ra\mqdjl^YYTSR_qv~ųwogd_Z[__XMHOb||njnu{ƿwdY]_dbZSNKILUgzyss}ue^_fmmpqtxyyssz{wy{xzxv}tW>9Njztqqxܷ{n[NNbvg:DʬyO@Jc|e_w˲fT[yq`RMVoaOTs{XBJYixwhP=,(>XriVTaowdOBBN]t|}unlr|lYPOYdtywia]bo{jYWWX``VONU`o~}vwy}ztk_SJO\l|~zy{ueSIPeyogfmZ4 <_~o[V_w׶ynkuĶ}e\bgpm`K>>Ke~uoptwxp^@"$C_q~ynorYHEOWaa__aem{|of`^bfeekt|ugZZcqxmfhm{yl`^`hosx}wpvrot}vnswwX@77DUbfdryuns}L).Uy_SWjzssɏ^9/AQj|sg^UVbs}lZYhsfmu~nb__kx|shUCAN`||j`ao~vnovskfmzrghlsx{|yrllvnfhn{tfadq}xu{{wy~|uqrx|~wrplmrx}~|wh_`jrvqkmvpgo|}nTD:DUvv]TUav~}{vfglv}y}ykeiqw{wj]I<8>GUft{zujcadnx~yxz{~~vrlfdbfovy{vss|xtqrtx}~xuomorwz{{zvurnqw{uoihiqw~}{}xyxzxsqqu{~yx{}}{wusqrrttw~~}}z}}rnsz}ysideow~~yn^V`osmlqw}yuokggjpqqtx}|xtuwxz{~|vrpsuvvuqrqqtvvswy}}{~zwx|~|xsrtyzzusqu~zyysot{{yvw}zyyz{{~|}yvuxxxyyxuonsy~}{yvpnkkjksv|zvsuvz|~}}|phgejkmkjnsy{}~~y}|xutuy{xrquvzxvvx||zw}|vuw~{{zxwvxywqmkmrvy{}|}}}{xvsppqux{}|}~zwxz}}{z}~|{x{yrv}}{{ytlgcekrvxwx}~wqoprqmmmorttuqonrx{}zwy}{~zuuxulotx}rlkqx~ssz{{~ulkq~{sqqrswy{~|z{}}vojijpw{}|yzwttz~~}~||zyupljnotw|~}ywqmmqrwxyxwzz|~}~}~~}zslkkjhikkmrwxwvvy}~|yurorvz}zqd][bnz~xroosz|}{z{}{||xwqopuzyxxx{}}~zxy|}wv|~}~zxwx~}||{wwutrrooqrpoppqrvx{}ztux~|vnjfkovzzwuxz~|sjjimsx{xqf]Zcp|yvz||wsssx}}{vnjls||z{|{|}xwustwz~~}}|}|xruy|{{{{|{x||ytrqt{~}}}||wux}}|}~|tqpqrtvsnkllnry~yvyzwtvv|}{x}zvoihkpz{vsuy||{}{wsrw}zxz}~z~ywy}}qh`_elsz|xvtwz~wpnos~~{|~|zvrqosy|uomrv{~{{|~xttuz}~{vsrty~~}}wroor|~xrmnpzzvsvz|rfdhnrx||zvnigglsx{||zwvx|zxx|ujdbhpvtnihmrwzvtw}}}{xuuw}||z~~vplrx~}xz~{xuokijmux{{{}}~yyx~~|vtssswy{}|yuwy|ztty|spr{}}{yz{utwvxz{zwwxyxz{{}{xtvz{ww|tmmqw~unkr}wspsv}{uuuvy{z{}{}wutw}{xwxxz~~|xwuw|zpjikqwz}z{|}yw~}xvy|xjbfrx{ysrpqonqw~}{}}zslijqwyvuokmsx||yzz{yutv}|{|yvy}|vopqx}}xvtwz~}xxx||wrty}|{yywwxy|||yxw|}|{ywwwwz}}yxz}|{wyz~||~}~ytrsty}{|~}tmlouy~~}yuttxzyxwy{{ysruz|{xww{~yut{~ysuw|}zxy}~yxvy~}{||z{{|}wuwxsvvyx{xplovzwz|zxw{wsqrw}|wqmmkov~}~~|}}}zy}}ytquvsrtzwmhkzztqsv}}zxx|zux||tmklnprsqorv|{~xtv{}{|wmjouy{}|zsppsx{{yz~zx|~yuvxxz|}xwtsssux|}}~~|{xvuqqpsvz~~|~~~zywz~{xyyyy|~|~~{y{~{vvwz~}{y{{wusw|{xz~zx|}volnty|}~~ytppx~z~wokmt|ypklpvz|xuuxz~}|zvtqponnorv{~}{|~}}}~|xrpprv{ztqtw|}~}zyz{~zvuuw||yurpnoostwxz||yxwxy}~}xtsw{~{xwwz}zzxyywtplikouwvpkiks{|yvz}}zyxvvux{}{xwwz{||~~~~|{xwuxy{|{|wvy{~}{wttu{zuuvz|zz|{}~~}~wstwz{}}{vsrvz~}zspqy~zuqmmosx~}zz}}vnhehijhhhmtz~~{wtttutspmijmqtvz|~~|zyxusrtwz|~~zvwvwwwvspllmprtvy{zxtssw}~}xtonlmnoqrrrropqv|{{~}||||}~}|ywvwutqqsx}}||zxz}}zwwvxz}}vuuwxvvuurrprtx{~}yyz~~|{z~~yvu{yqpsx{yvsstuttvw}~~zwwz|wwx|{yspoqsuxy|{||zyx|~yvv{{tmkjot{~}yutv|}yz{~{trrx~ytrv}{{|{wstyzupprvz|}~xx|zuqrsx}~zyx}|tposw{{zxwxwwy~}{yz{|{ywtropqsuwz}~}}}|yvtsvy~~{}~}{wsrtz}xxz~|||}}}~~}|{ywwwwzz}}}||}}}|}~~zz|}|~}{xxy||{wtporvz{}}~~~{wwy|}|z|{tqorz{{zy|zxurqqsuxxzz|~zuqruy~zvssw|}xustx|~~}}{zvsqoppqqtvxwvwy}}~{yz|~{{}|wsssvwz{zyvtqqruwxxywuuw}~zutstvwyxyvuuzzvtvy}}|yyyyxvy|zzy|}}zxyz}~}||}~{xwwtttx}|yyy||}~zzz|xtqpsuxuspqsuxxxwyz}~ywwwywvtuy}|zyusqqsuvvvw{~~|}~|xqnou}}vssy~}}~yusuyxtoonoqu{~|yutvz~||{~~zzz~}{{}}xuqpopqrtvyyzyy|~~~zwrqsvz|}{|~}{yxvtvw{||xtrsvx|~}|{yvuu{~~~~~~}}{yvvvwyywtsrrstvwywxy~{zz{yurqrsxz{vuv{~}|{{{{|{|{}|}{{{{|{|{|womnsvy{yyvtrru|{zz}~~}}~}}|yx{~||zxvuuwz}~|{~|ywwz~|xrpqw}}{yz}|}~~~|{}zvpprwz|~|}}xutx|~}~~~|zz|~~|}|zxw{~{xx}}yvvx}wpnkkkmortstsw||~~{xyz}~~{yx||}}{wukdiffLOplf{xghZ]}xd[[ru_V]VF4?RgO -fpRQ/&6-8#CX'Bl1-gmެú˽gLblq}bLYf`ty~hvzY^_ILVzQkycHPqzzzlvul?;[hQ+OXrV8-( -'&M}rઓКQ Fb2(:?XH020:]gDXY1DcikxxMOxƱú˪iTgum[Ihymc_dXqkZ{b=PB2MXP=,=UO@HHDK[rgV^kdGFlvrT~qغldx{ԸƨL$Qk^;?R==xŹq}xZ:8Q`[bO=`iy~uyixkl}}vf[^~zP  $1HYMdvlhx`b~ơO/:YV2&(B;>U^VUrmQcykM:KԬrkm]vűo?1@(6V=8PcgV;BZYcpO,"6:#"6)(Hirkzȡŵιutv_959414COK=Tpg_[cphdllzüƮmP614:)"Gdhuo^o}ikrc]`P69PYQXXQ_ccŧiqvol[D=;=>O]ci_K5GkbD?U}{}ȼ˝кzxyvm__fpxy}ZT]]bb^m·d_bO:>L^fc]]tuflqZCUzi9/@RXZXOGPXQO>-2;+)?LYXR_p}rhhuд`4$&#(@VZYbfhlkkpz}vmkyzuxtp}pto^RF?Rhi^VY`^H9=HUZURUZ]UPf{c^cc_`ZH10Lflfbhrz}}ѳОq[^hcH'&29CVquip{uhUIZrpZQ_glvlcivzpgbiqrl^X]^cvpbm}_OKC/&( (Q[RMZq~{roxùñzZC=Lbr{xiR@;962:O`bM=Mtrpmgkyyzx}zpdXI6(#&4>89Lcid`gq~zkO40?QL4&#(6;DV_cgq¼ȸzz[="#@[dXLU`ZMDO`hbYZbhmxȸükB)+CV^ZUYbotkkmq~tkmmfVFKTL>8F[f_UVcukx}p`XRKQduyvgYbki_^l}Ƚr^K>?HOZhv~rq{}}xux~qVIGKKUgmgddfo~{}}~qfluvrp{zmY@09V_K+01+5M_gfcfqt^Ubz}{ѯcL?9884/-9FKIIGKY`gtzyu}¬ǽxy~zx~~yq}}bQPMLIB89CFLTY_`^^o~bOQcolfT;6=?95@U_Z_~ƹ}kU=126659CKFCGLYmyy}Ⱥʽvl`QH@;BDFPbqyvtttrkbiyyiM?KOKHPY[`cm~ylgg_H519DMMMLC?GRblrzîüպ}gOI[t~{uprx}~}ytcRUk{iq}}q`TRPKPVctyupomh[TYdcQCCIRX[fmlc[bofG1)(0=KRK@?>>HYgprt½ռrZC) 0BFCFPTRXbidXY`gmvyvop}þŵ}tzxtpig]TQV`dfd]U^ouhZX[VLQ_lmgXOPQQOO[hot~{troi]Ygqtl`bkqvƸ³kPKC89Phk_XXdx}uz~kiyx}h_guyvm]PHUkmdVVipmqqv~c=#'02200-1GY^ZZ]fx}y~̴z{rXKMLG?1/06;BHDIVXV^htxttZKB@IOH@FPLFMZchmlhfipgdV:)/@IF@HV_`YYo~xi`[X[ZOF=>FG?62;KU^kplffuʽ~}o`]XURVcpmkq~bLQVMFD?=CMUY^kz~yzur}zqommfYMGLQU^gg^VTdºƳxr~tf_]]cq~xqpotzyz~zuqpzyxz}pkgchpqolx}{{xutu{~yprrh_fu}p]YXQX][]_]YTOLMMIB=BLZ]UR[lxżuqiYF=80/+ #4HV_fg^Y]dhlllmiiot~Ⱥ{o``^TPQMC>IY``[[cormhfddgkokgc[bv}u}q`bmv{¹x`QKMOD0#(6IYcoz{}}}zohfly}vqlhgb_[ROV`gpx}{vofYD4-029FQUV[dktvpg_[TO[hlg[TTY_[MIQ[bhpvyxtpz}yvzztttod]ZXVVYY]dgfmtuphfkutt}iVLD99@FLOOXkǾʺylihdfi`K4/6>GORPPV^c_XUUV_fipvy{~pdfomb_k}ugdhkd]]`[TMHIOV[[^hqplmyxrokiklpy~yv}ƾ}yxvxpgghbY]choomr{~{~~{yxvuvxx}}xy~zpfhlkpytkmzxptuohgqzzuocVPQPF:;GT^bgikqztvocb]O=1025CRRKKMT_iqpihkkkorrpry~}zxtv}}q^OGDGHHHMUZ]cpz{{{yurqolpz{pmpqtqg^`fiov}Ž~{vqoqk^RGB?;;?@>@GLQ]l}}tmikr~}z}}pbTICCKMKO[mt_H>?DD@CM]mz{vphirxukbbp~{qkd]ZZ^b_[`mvuomt{~vyuigkomoppqrpqvxrqtvurqqrx}vpgZUVRHB?CMXfry~vrmhd^VMHHC=;96;KTUZgqqkglog^^`cfgmv}}ru~~~{kb[TOKLKGIVchlpqppqquyvopz{yz{~vrodVMLOOPTXX^iv~yuuuuy~~~~~~vlghgc_]_gqz}tmid^YRIDHPU[ckkiox~xpgb^]ZVU[b`ZXYVRRV^cfkoomkhmu{ul`VU[flmiddioqpmrxvx{~~ulg`YUVY`mxy{{zz{xrokgfc_]Z[_dghkkiili`Z_gkpzxt{ytruxyvtruuvti_[YYblqomqutruxxy~~~}vpmmpu{zvx}Ō~`6K`X4O?]Y ufB(Qvq@5{ƨǢ_Y}ΙԨ˴z[o_[P,PM?=" +L$#) HgOVUkyh}}mmٗ}OVףh PVUkkgӜrzšʨOCbVfuU :; 4RYotVzk?ZiâzڸȯX9Vo]I9',-:= GuiplQBGQ9#2/&Z}zv[Tc{fڵݺf,>b8-iv{zkK6IgcU_iDbgQFIczm]uؾ̯}״ݵѸhd~_biD/Cyq/$1+++ L`ZTcקů}ivB' "( ?co(5XM/2lǡڎlv}r]BVfGLO>5QvuyR>4-BQ_uǡdPqʽm+)60&2DOD  :: -YmT?0'>F=Z_Tq}bfhTqz}zým}RMOCVoXMfoh{̺kVFC9($'-'2Mi{k}ó̯ycO@&  1:'#HhzhLG[oxmY^zq[xyxpXUmlTI^ǧηzcU[p^Ukp`]`QDY~iZLTqr^iuklƮѽpLQqcD8?B6$$1/&"&))Fv_]V@ '#'BR][VXVLB9Krplâvl_PQU@#)LRF=9)#KldzypkuݵǴmG+-GYghQ48U^TI?-8GB,"-:FLDGR[Z_p{~i[t~xq{hltvy}}ydMUxvdiƺ~yhL69Qfy´yikcM, 6^zXDXzvklzηƱiRXi[2&) 4TdZOTftqouuzfb]H9Fbpl[Yoȣrgdb_Y[[M98HPLQ]p~mftԵzyq~o^QR]`]R=5IMFGVqd/  :D:0=LOG?HPU]`YTdurluxudOOhtcI-)?LKLby~~rpqlg_XV`yŹϴkc^Yct~vdQ@;>;-$'$$$ ,KdfRGIUh~vgqlMBObmkizЬhgbbpvmdguݺӹybQ?21;GGB@GXdfZZur_bqåpRMK;,+4=9 (8GLLXguyiruztYB;=2 2Vdoʺ{gUG8-,5DKMTgx}tgu{x˸z_TD5)4ILIC@>=KZi{tkok[H829618DLQYch[?+(0Dg}zxi^i~·ѽvpoi^RG6-=YgbOTzvg]YK-&8Vxθuuxk`X[d[@)$&'  "(6GOQZcgc`k{z¸xpt}iRGFLMLLCCRi~z~vido}{gb^M?8?Xrxmkk`PM]hluȺůqddb`_UH2,&  BYYY_]_k~hF2-,6K_h[HPpŽvlhO;80&&),584@fqfdpx}{ih{ӾȵqgkkhxyplglrfL;5:C>40-1Hckgq`GCD@?KQQ^i`=,28>GT_bco~ʵºƨld`YI4 #5ObiidgkluŴ_]b`P?8G_ZVizfY[V?$  (GOHHPZ`fpo^RYotmry^MFIPGFMUgu~{{zighcchfk³p_[^dgfiruobK;24M`[GDc½q_O@8-"$0990/D^f^VTVgpg_VULD=8=CLXdu}~θǾ~qbRB2#$5@OYflklmttd_duιȾϸtgc[UXh{vrkYMC92562;Roy~pv~pf__p}lYRQKCHKC;BQ_f`Z`lv}zt{˹Ⱦ}u_@,4HZYG==DR_gdbfqzzr_PXggdku}}ʬ}vdI:;?2&2:?KVXV^c]QIM[hux]OKF=99?Qhpgi}yuyz{r`OIVmrr}xk]XVRIFLT[_biutf_huytuھ}iZVPFDB90+(+6>:=DP]cht{}tXORX[RIIRYYXQM[z{{zti^O=0)(,8@GKIGTdklopqrod^chkx´{dV]icTUiu}xkd_VTYckk`[dlqz{pp~~urlfdbYOORVXTR]lo^LGLYgq÷vpg^QD=5--6?O`fdkqtzofgltuk`]VT[dl}ŷxigid[P;'"&  +1854D[`__YLIZmuoiq}o_]XKCCGLRc}{y}x{xqlhhr}{}yovrZLM]kmoliikg_coyù{vrfUD2''))/9BDKXdg_]ivrq~zvqruuldb[PKKOYciuŰyidb[O?::89;9888=LY]_hpogdkvvohcg~ȼt_F;@KYfilu~ul]POT[_^bkt}~uuz}rhc_ZUUZYUVZXOMVfrx~ü~k[ROMLMTUTYckg``gmuyquyurrtxxod`figcchr}ïycVPC81-+,+()4942>KOKFIOQX_YOMT_kt¹tl`RKOZcdcglrtrz~xv~tfYYfoorz{}~rokdgpuohgkf[_hmprrrz~y}~{vqkdYPORVX[_^`c`_ftyxzulo}~ypllklkhqúvi[UTRPMLKKOUXVTROOU[`cfkmqrokm{}yuuututohfhlllqvz~vuz{}~{qkgddghkpuvtv}urptxvrg`clrpkkmqy~xtz}vog_]bikhhgfdit}{rptvvuvxz~umihikq~ǹ~vumbRHLTUQOLKIIKIKLPXblrrpquxxz~vrttld_]]Z[`hlpxztrqtyxru{~{pvzlglimmgkikquvxMDXchnwlJ@<4%&7:@;*+ELGXlk^F:Qkézsl[MM\ldWXVamkrwvly̸}t`QA;EMLF56BJYXSagWXc]P;0EQ=?Vk|zifWMH96L`flaW[bnz~ܱϾ̾|qyqhlmx|k`S`UB]tow~~ryʼƭ|`oiEDRcxgQE,%+ .66%#!/17SPKY[axr~ɻѿʶww|x|ttywˤzo\`iXamXLDEX`U]l`L61==6%!27DL;1.$):;1?HGUUJWryiz~s|whcRJ[hr}wxwx˹ı}rnaOEMfsvv]?DORJ0(1+*,&1>6829FD:9OvyB $9OUmU]2 Cm}gc6=I?HUFVZXFKFV`]ofbgXfmglc]kkbr`__Xlï̾Ʒ~tzgqz[PIBIM:1/6DD++1 "&=6,,4=C=26T[TFHIXffgkmogmrz}xqmvyoovob_OZyyxz̽þvy~ofc]VPT[]XTI??HKMFKQKQVUb`TXfoyzzr~mg_Xc_T]_]g_UF9?VM>>T[ZXO>1-D_lX12Vgl޽}o_OFD?/"1BTbfhqz}qlt}}xk``bkzxttkok]HBbq18g̵l_M4$$&  ,>FMTU[l~qcZXVV]]VKIP]bc`[XZcr}xrr~}kO4>oT-gԵk`ZI+&$"6B>89DZryy~zobZ[bkqrttry~}qP4Box24[xzmԽzvmfbZC( (/2-++4H[kqlffqvcZQQUVK>4/4>FKMIIO]myoQ96Koc&:oεzh[TMPUO=-,16BMQOIQlr_MFKPPD9119FVbcfbfo}yrqorl[PPTXOC82$$DckT>Mm·dzroqgVIFC?CKTQHHQ]ckv}toolf]TKHKQV]fhghmtzztokkomfZVX]`[PHB=49Qov[CH]vȷ÷vh`VOTbh_XUX]blv}}ofbgfb][]ZVX]cgghlmqv~}}yxrqlkkmoxyoO21UZ=C_ξϷtqtroogVMMX`b]XVV_qrgbfff]UPKHIQX[_clrzyxxxxrohhmrxrlbbgmrx}yy}~qVFFhv]bvƵ·~roomlk`M?=COVVUOKTfrxvrqrytmkhhhf``bchmtxvtvxlhkorok`XZclvxvvxx~~~ro`f}royȷxmhgcff`XTUTTUXVQT[flqvxttz~zzxtrok`_``_`fhlrz~zzytqmmqtvxxx}~~}z~~}zxzgH/=ftMBHbʱ̽ýtlltzzkO==DQ_c`VQXht~}vxxorvtrl_TMQVVUQUUTX`mrrtrrtyzy}~zqg``chorvrmqx~}~ymVD/6QyzVFK]êȽrbZ_krhXMKP[gmomqv}yrqlc_ZUMFDIKOPQQOPV[_fkkggr~xrqy~yvrotxxyxyz~}tqqrxxlQ1&HvvT99P~°º̱}tz}ob][fqxyyvqotvmf_VQQKFB:99>FKMOQTX_flqrrx~~}yxz}zyvv}~xtomg_cb`T?1&FgxbPKM]ǷƱ~kbhlfXM?629CKPV[[_clvtgbcfc_XPIFFDDFIOQV`goxyy}}yyzzyvrtxz}}yy~zrooxx}rbP>42F_ztbMDH`ǯzx}~lT?426?OXZTKDHUfyzy}xtxz~~vlb][[ckhbXMIMXfoz~yvxx~}xy~}yvvqmhcfgkgbbcfkrxxvtrtyzrmllmkf`__bfcbb`]_bghlkghhkloomorx}~}}xrmhfcb`bfghgb`bbb`cggkoqtvtvzzvqlhc_[ZVX[][Z]``bfhhlory~~~~~~~zxtrqmhc`bghkmrvtroootz~}}yvolllkhhllkkgfc`bfkoooqqrxytmhkmqrrmhb]][]_bfhkhffhkmrxzz}~~}~~zz~}ytrtrqlgfbbfcb_ZVXXUTTVZ]][TQUZZ[Z]__fgklmrx}}}}zxrqoqtvvxyz~}yxtolhhc_[_bfb]XUTUVUTUZ_bbbb_[[bhotvttrvz~~}}}}zz~}xxz~~~~~~}~}xvy}~~z}}}zyxog_][ZZ[_`bcbb`__`cfhmoqmkkkkkhccfkmrtrqoooqvyz}~}yz~}yxyy}~zxxvrqqlhggc_]]]][[XVVVTQTX[`glqrrrtxyz}~~~}zy}}zyxxz~~~zyyvtvy}}yvqomoommkggfbb```bb`_bglkkkhklmmlkhkllmrvz~~zvrqrxz~zxxyy}~~}yy}~}zxqomoooqommooomhghhhkhkloommmlmoqqooqtvxz~~}}~zxxy}~zyxyz}~~~}}}}~}}}yxyz}zxvrmlmrvxvrtxz~~~~}zvrrtxz}}}}~}}zz~~zz}}yxvtqqqrrqmlkhhlqqqqrrqqqqtz}yvtvxz}}}}}xxz}}yyxtrtvvvtrrqqrtxz}}~~~~~}zxzzyyxvxtqoqrrttqmmqtxxxvxyyyyyxttvy}~~~}zz~~zxxzzyxvvxyxvvxz~}~~}}~~~}zzzzyxy}}z}}~~~~~~~zzzzyvtolllorrtrqqolkhhhkmoqtvxyzzyxyzzz~zxy}~~~~zyyxxyyyvtrromorvxyvttttvvxy}~}zzzyxrrrrtxyxxtqmmmotvvvx~~}zzzzz}~~zyyyxxyzyxvtvxvxvvx}~}fcU`}~~xgq}rqhghfb`_]`bTQXcc`[[UUcmthgvtyzzqozlqxyxozrrzymr}~fmyovllttty~lhzhH16Uzg9,4Zìǚ~qzf8&"+244(2FT[UFBMgogoqg`[bfcb]UPQVbr}~vqqtt~zrroryrkf_I -z]6(CxʾޯyVO_}}F'?F=+&&'4Pozo~rmx}kU?1+2:=946=FQblry}tlhkrrr]=&oo6-H}ϽνѬzQ:=Phxg>+BU_ZMKQVbtvl_blrkXF98CT``ZXVZozxvxth]QPQU]`XMF:/" &MxmKBU~ǼvVFHVgrlT>8>Pbqtkbbckqzzrloxzxl[MCBIUVQKIKP[goqty~xqlhhccmxt_QF9 M]2$1]ñϸǥy[MUhlUKO_vytrt}xkbkxyfP?9?PZ_[UKHP_mxyxy~~rq}}_: DX Hë뾠c>-6OmlM?Iby}vv}q`X[htqcO>8>K[fhb[XX_hrz}~~}y~ymlmogX:?]?PxcOOc~~cKDQr`D42?Q[[PB8:Kg~lcgtxcUOQZ``ZVUUZfmt~ztmmqtof][bkrxq[= ?_64_ƱƌbQZyqxԬymqkM6+1Hcx~vfZZkkXX`lok_O?:CP]`]VTX`lv}~~}xtrqqoox}}lgfqkO6T_MZ徱ӞoTO]}~gcqʳxhhto]TT_rylkx~hZZcmrofZPOXcmrqmlot}~~~~}vrmg_Z[``_[]fhkbZU_rzfH"qȘ_TfȷlKI`¦gftåcUXgzz`C26Hf~rgbgyockzmfco~}~zokfhlhc_]_ghl`TQXgzoT&mvFDcʨΓhV]ԺدfZ`qkI1(-C`xym_UT[rvfboyh`blx~}ytt}}xy}}zyrohhlmhbfttV-bP:P~٬tUTmܽto}̰fTUgztU=/4D[qytgZQTby~lbgtr]QT]my}zvqot}tlhlorqlg]VXbkqqf[]oo9TϰkFOzά؏ZDUÏbT[vƱZCBPhytV/&>]ml`OBBUrocgxxkflyyy~}~qc[ZZ]``]XUUZblmk_Vczh8UرcBMӰӂO:VÏh[kǠx_Zg~gC&(>XllbQFDPlxkhvybQOUgxxqot~yqooryyxvxyytyyqhkv~_tF2Oơk82QغgcqʞqUP]xfB+$1HctzrcTQ_zmUP_t~hK86BUhy}qhly~qlox~}ztqt~xT:o>BoϥٌQ9Myիmoٺo]_rvT1$,B]v}m]QTc~z_QXgrxo]OKMVgxtlmv}rlox}zmccgx}ymB$ϝbF[ᾞr>2Uʪrlt̥xTIZymF,$-?XkvxkUIQmo`]fq~}o]QUgxgVPVbhkhfgghlot~xmhr}b+b}PZΥzm8(Bx̫~xÕgIMbxv_= +H`qyoXFHbvVKQbr}}tg[X`t}tqqrog_Z]gqz~vh`VVI}ԦvcrΡzrvMHfսzǦm9$/Icm_> ChlQQhqTFMZhvztgZU[o}zror}rf_coyv]&hVZ~ިvhؔV=K}ʦf`}K$"=c~lD$+Fk]KUrU6,2I_mmZC9>Of}xot}vtzzttx}xqoqtqhcZQ[mtPl`}ӘkQfZ46]ӫ[Tkԣb(2Uzc9+UP+'Fo_-&?_zrZMTg~qtm[TTZbklf[VXcr~~vmlryxqlgr}g9 +zިٱv~纁XPlǯq`hf4"=[olX=&"1PtvUHUmcQKZqrb]lxr}ygZ[ft}ymmtvkcfhgggffb]_qvB$z꫁hvzOF`Լq]gȱ?+MqxP(:hyK48Kl_?2:Tq~k]]mtozlbcmxymgflrxxrqmlkkmtz~~tbZ[hk4`ϘvyǏkfmFFkǓcP_ãc+1Pm}lD$"Dq~ZFFVr~]HFQg}rc`l~vmhkqy}vfZVV`q}~xtyvlkr~rry4$lrrPVƈF$+U޽_Qcެc'BoV4(4Tyz[DDUmhO:6=I[hmh[KDMbzymhktyym`UOP[m}~~~~ytoqx}yTK彏qhӎQMtzH?X~ϫ}]VgƼI:b~qP6/9TqvX>8BUfoobM>6:FVcmogZTT[kvrytgfl}zrkfbcb`bgkfXOUh~}vttf>I޸ffǕbHMb~v]UcyD:ZqyoZF?I]ovf_cly}rh`]`kx~}}zxxvtxzzxogfky}}}tlfchovzyxrooqvx}yxtv~qI-ȨϞvhtϵ_OTf̾g[hq? 'B[oyzvlcchtzlflx}q`TPU]gox}xqmmry~zxvvxyzzyvvy}}zyvvx}~zyxxy}}o_OB+/góѽ~xyttyrbbmzyhQ>48?FVhr}ymc_]bmxxqf[QHCDOZ_`]VQQZgt~zxyyyrkfcgr}~xrt~yyyy~rT4[ǯƾ~`X`qrf][grZOOV`cbXOHFFHHKQ[hqrog``cggghkfb]VQPU_hoqogbbkrzzvolmt}}yy~~ztmmqokcbbfotqlgghmokX:Fظϰxhfm~o`]hy~lbZTKHHHHIKKIHFKTZclmkgcbbbglqqmkhffffkovzvllr}zy~}xy~~}zzz}~qbK'2h¦mhr}~}y~}th[PF>9=DKOPOQQT[flov}}zvrorvyyyvqhb_bhrz~~}yxy}~}yvz}z~~~ytrrtvvrhH Xʺyrlklvzqmlrv~xgUIHOU]bhlkffhf_[`hov}~qf_[Z_hlhcgmomlqtx}~zz~tg][]_b`ckkcbgkhffb[H&BhƳ}}zvz~thbfoz}xqgZPIFO]lty}ztkcb`_fmlgfkkfbb]VU[kx~}}}}~}y~vrqmkhmvxxztmlklryrmqrttvrlfkqz~~~~x[+$Hlʾ~m_VZgvq`[]fmlhbZUTOKHKPT[kzrc_fmty~yrk`VQQ[cffmyyxvtv}}ytlfflv}}~xtrooty~zy}~zvv}~ztryzxttqmlkk]?''=[}Ͼ}qffktm`VOQUVZ_bb_`b]XV[kxxxtqkc`[VX`hmrvy}zzytrty}~zyttxyyzyyyz~vlghqy~}zzzyvy~~vh`bkxxqoqz~ycM/(Bbȵ~zvx~}qbUKDIXlzobVPMT]fmrqmfbcgq}zxxrmlmr}~yvxzxxz~~~zvqhfc`flrvxyxtogcc`]XVXZ_clomovz~tcM99CUhϼvg_`ftymgc[VZ`fmy}qg``gozzrmklrxvohbZUU]kty}}tomotz}}zyzz}zxx}~}yxy~~vh_`florzzvvy}~}~~}vtrooqrqkkkhkghgfffb`coz~zvolfb[ODFQbr±}xtmmt~vl`VOKKVfrvqf``gqy}zyxvzxlcb`ckoqmkgfkt}zvtvy}}zzzzxttvy~}~}xx}~ytvyyzzyvvx~zvvvrmf[UQV_fovyyy~rhhq}¾ztqmllqx}~rkb_ZXXZ]`fgfb`_[[[]bfkmqrtvy}}yvvx}~~~zyz}}}yxvx}~~zyvrtvtqmmooqry~~}~}tolmrxzxqlkmtz}xvxz~ztqrvvyzzxtrqtzyohkox~zxz~}yyyz}}}}zvrqrrqqooqtxz}~~zz}~~~yxyz~~}yvtvy~~yxy}~zxxyzz}~~}zzz}~~zxxy}~zyyyyz~}zz}}zyxvvvvvtrqrtxxyyyxxz~ytrtxz~~~zyxvvxxxxvrrtvyz}}~~}vrqtvvtttrrtvvxvrollmqrqomotyyyxy}~~}yzztqrvy}}yvtvxz}}zyz~~~}y}~}yyyyxxvtty}}}zyvrqqmkfccfgghhkmqoqrvxyxxvxyyyz~}z}~~vomotz~}z}~}zzz}~~~~}zyyyzzzz}~~zz~~zxvtrqqqrrrrqommortvtromoqtvvvvtomoty~~}}~}yyy~~yy~}}~}~~yyz}}}}zyyzz}~~zvrtvx}~~}}z}~~z}~~}yyz~~}zyz~}}~~zzyz}~yxvvtrtttttrtxyyzz}}}zyxy}}zxvvvxyzzzzzz}}}yvvvxyz}zyxxxy~~~~}}}}~~}z}~}xrommoqoqqtxxvvvyz}}}zz}~~~}}zz}}zyxyz~}zz}~~~zxvxyz}~~zxvxy}}zyvtrtx}~~zz}~~~~~~~~zvrqqvyzyvtvy}~zyzz}}zxvxyz~~}}~}yyyz}}zxtqqrrtxxxromorxz}ytmllmqvyyyxvvz}}~~}}}}zxvxxyyxxz~}zz}~~}}zzyxyxvrrttxyzzzz}~~~~}yyz}zyyz}}xtrrtxzzyvttvy}~}~~}~~}}}}}zyxxxvxz~~}~~~zzz~~zxvvvxxyyxvtrvyzzyxyyz}}}}~~}yyyyxxvvxyyyxxz}~~}yvrtvvttrqomqtxyxxvvxyyz}~}yz}~~}}zz}}zzyxyzzxtqllorttroorx}~zyy}~~~}}zyvvvvtqlmrqqrttttqqqqqqommqrvttrtvxxxyz}~~zyyyyz}~}}zyvtvxyyvrqrtxzzyxxxxy}~zz~}z}~~}}}zxxxy}}zxvrtxz~}yxvtvy~~~zyzzvrtxyz}zyyyz}~}zyyzzzzxvrqrvxyxtqooqty~~~~}}}~~~~}}}}z}}~}}}zz}~~}zz}}}~~zz}}}}~}zzyyvvtttrqqtxz~}zyyzz}}zyyyz}~zz~}yxyz}}}zyyyzzz}}}zyyyz}~~~}}}}}~~zyxxyyyzzyyyyvttvvtrqoqrx}}}z}~~~zzzzz~~~~~}yxvvvvttrrrtxxxvvvx}~~}z}}zzzzzzzyyyyyyzzyxvrrrvxyyyxvxxyz}~~~~~~~~~~}zzz}}}zz}}}}zyyyxxxyz~~zxvxyzzzyzzzz}~~~zyyz~~zyz~zyz}}yvtvxy}~~}xvx}}z}~yvvvxy}~}}}}zyz}~~~}yxy}~yxxy}}}~~}zzyz}~}zzz~~}zzzyyzz}}~~~~}}~zxvvxyyxtqrtxyyzyzyyyyyz~~~}}zz}~}yxvvvvvyyzyxvvxxyz}}zzz}~~}yyyyz}}~~~~}yvrolllkkkkklmmmmmmmoqrrvxyz}~~~}zzyyyyvromlmorvxyz}~}yxy~zxvtttvvtrqoomlmqrttrrrttttvvxxy}~}}zzyyyyz}~~}}}~}~}}}}zyz~~}}~zyyyz}}}}zyxvtvxyzxvvvxyzzyyyyyyz}~~~~}}zzzzyxxxz}}}zyy}~~~~}yyyz}~~}~~}zyyz~~~~zzzyyyzyxvvxyyzzz}}~~~}~~zxxxxxvxxy}~~~~~~}}}}~~}zyyz}zyxxzz~~~~~}yyyyxxyyz}}zzyyz}~}}~~~~}}}~~~}zz}}z}}~~}xrooqrrqommqtyz}}~~}}z}}~~~zz}}yvtttrqmkklmortvvvvvy}~}zz~~~~zzzzzzzyxvxxxzzzxvrtvxzz}}~~~~~~~}zyyyzzyxvrtvy}}zyyyyxxxxxyzz}}}~~}zzyz~~zyyyz}~~}~~}zyxyz}~~~~~}}}}~~}w{pDekkvDnp}m{s}~SfqdHsyfwks}rgljovrri{pqkyyjhxsypyhtxnmva|u~`v^qh_uY|lYc^krgqvm`mlh}y~~vWVus|waddmtdfrtiqPhezngXgvp}txh}mw|~~`^RxrrfktzHc{uxmy{v{orow~od]rdp{zYj}uo{ucnulpak{~~dahn|pnq~wnnsmzmkrz{v]uq{hLfpBm`tZf`vejjvJt]Xs_Tt{LiGlkdxqsJnehfgbYvt|fffnDxniPz}_hlXCYzdwTrejDx_lou|pItz^so|nwyoqsl~{wvm{basm`}wd|i~gdk~tus[tx~g\b[sb_okl}X}o}tshla}Tz\`pJ{ttga}u~b}jh^bszQHO_pgy\kzqvulxoJP[srtwxzjVhvdbtp]vouKvuIih}oe]UWelkerkrnu~lb{~~wrn^vyn~l|zvvqawtoVgk{vtVl}Rc~jetvtazgQwjb|vSezzj}yWvphehhPm`p}iUvvenk|qyrw~oiypUxygaaf|yUrnisp|m{s~\u]kwj\tpsqr^j|Ylv]|xdxiPrrVzzlc~{YwawrUpvx\orp{s{egOvry}m^gYm{tijp}{o{Jr{tib{mpno^~qlwzu~dyi{`\tgi~}r_|p~~unhnmhrVx~Xpzlmftyznxe_Vawpntvz\k~m{xgscotxygz~bYmySwepvz^l}_{fzo~[^[tpXskjfUqhitu]|IzXkNwlv}WNzlgq\klPPgvbfpw|{|duis`r~ewyaspqnx{wzsjr~lsQ|d}}aUnYw~ZpnSdutgfmktqjUhzzcg{{tviqkhxp~K}weS|hzKk~^w^ds\bpfp~oyps>oOrr[rj\PxQifnuMo~iynvr{vd{rp|~{jv_z|c`~YfZyX~Woe~xgB^YYpdnm{cjeZup]idvcogezfvzj{r]Zog[qoYZ_ukvhzw{JFxcslpVyyr|duTokbehffYUrg\fhwnqewֱumsȁnbzmoy}vq}\}pCdmpiZkwzs]]Uto|hwh~hqbuuZolmoVhp{x|ewk^gak|n|dtloidowzl{Aet}eqV^hxb{{glQkpNgFgd_UkWmoy~n\^B{xsnyCh_}khz~rTywAhlyWhxhtht]U{uƄppt:znerl~dytzaZz_M~ur~GyĝhkrwbkwY`jtogyvvtser_ywiWzE}iT;SKLIzlQz`htzwgbdtqhokvzx{om~{nr}ojzxiuXMuin~qZgSUr[|nDmOUX={fhdsΔ>lT{PsNjoroeO{[r_xmltlcppmi5gd_~`[lFksьgkȶ~jozp[Sutxlrc]xQdp`e~z{Xa2aGpURZizqevlup_x@yJ|TyTYo~Fxbovy|lqs}g\c_Gk{^kbyEeWV_Szjz]YkkaQhqNoYdKwXZqpb]qp}i{x{mwkxqpayyӛqmGzpxnu^tUxftlBazXw}vcb~|rJg2aw\ZY_Pioc}{VPnkdzkrw}oi]qNczDvbuhnauv~fl{ztNvyi\kmtoTrc}@yOi}]eSjnR}oq^PedrxTxgf|yN{XlrMyrujaobTnenwcoyuNoWzyuw|hEu~i_otazxzirsf:vxgq\shw\i~wvjsyEWz]{noipK}z}pvzJykhg|tftifCx`d]mvzzoxs}by^aYofNp}nz|ruWfytwq|rx\uZc=iu}ZW~ur{v`uuqi]aSi{s}Zv_P{=_=Ju~aHxwvLObm_xFnm_}2FuDGX[$w7jJ{uEm\w_mpy`qhV`\msdƉqeF{\FKnhsu{}uya~kqx_sZFL{[cujY|kh]{nBwoqbh̫;gqPvnDx|R}}`eTvg P5wIbGfpe]x|}]zEq`Sqlr{kmerswqjt]z|ken~l{icvmhgo}Lcqzllbj`Gr={h{Xg}kMozcjyWrST|Gp@xdmlCjlaȏVf>vd3*kwY=wpAo~9ni~sVruyYβA}{;?_[dzSvncHme0X_`gNnkiDnzau{uiՊacLkk_sQqzsKzkxVaqixYpgXfrrzrz_bS_bkLgQflaYnpYuLb`zkkxtœ@5uEl|vvoyio_:dp^ZF{;|cyk}dŊQVLx}`]cbri`w9:rckl^xsousc[I]o8sjzv]iKptjxfgV^Nya]Vqfz}htwarJjLfshbjYqxzqfNwuTy]Mwnqlxsmhvgf]rlyksmO^mxvxyZ͟eBUTopo(rUD[htddET?Wx6cmgnbqS\6qVNRGtc[dSLHewmuTDhh|ZCjY{}|aOmeF4nv^\yge{H]T^k^p5ƈnxax_juQafdxs[ihWvO:Tx7>W0knxPzFJijoVkVKW_AZP-[jY^uptQcBU{w{eXh{]sxq]FlwzjSk^Ze_Y~coKhb~G|ds^xe~}PCr_Sua}DYaocxQs|{i{־rbezt[f{xkSqUbd_Nw`kp-hT{CqgVSRNr}pygthnwFR^O^vq]i޵nz~{z_y@t|ycop}Zfyzly}yo@Jw1ZYlKyPOoCx[R_,w_ZK\][l]1d{iLӈŃΧr}t}qkvhS0s|iw}uzgن]e[{pbte7QZjsvpT+RzjvX>cdPWo8b[V{%b|}kQinlSsµg}QBXϟDpwclnt`eoAKp|dG{wnm~}nvVtd~xcIBp__=[ba.2)nR-xfvE]+'Pzf~OxwIYuSzw]akw\Kbtg^zs^aUΒ?ptTz~jRO]it`sEvMeqmcR[doaԠ/pfJ]f_no}[P*h-_f@[W[`V0LtD~^p]zBnU8`dmDatίBW[r;VWdPVOzE*TQaYo:}uXzc]ZB~k⮌Qp8s{eHzh0HkeWsˡnzvS[tgyYBY>(¼OI[|{K)ygT?OS|Αno/`|Xs-.jېl(@g/ldrd7[aiMvwƒPao\/N(FYtoQnjUv Q˂Qmk_c+fkbvyq^oZprwƉ8xkayПzɓv`PhIh`UVaGD&dz~t8|;C2sy~p{yu~BImuQxPpYZE˶`leJIbRr{K=i`d!,)fA{EVV)%~v^wHEp]o]GbquKJkwb}G;PuxZ`Yb1{f\UȅIFrnD}Ø{m~ɽ2Qg|lT=ͭ_@_cA@FmmIj;ivnJWe[*]_cmnzGV|H\%zH`X@w_pZxFevu^CtZٵ~?L˶kttÎW~PcȚ:[w~CZ}7`l)uE`[d\Suxm]h4QYhjJa?g*[OOyh[|>Rt:.hCnG[j^qƒMܙ;ͅoOr]Ϣunmyo9}$;iteUxtk5S_E_u]3NejziLbsG˱xz].l“IBsn<5B~R{{=o6AO[G>LF_ט)HQPQZxԓtiV;Xh[bt\WP0]yoKOB@]nkE\uRZV_~ cr dliqVqfPX?ddizn8|acVp0`^}L§[_Er`\ozT;oTfq`T_zBZ8M`v2MoHHgx|oV|1o{Z{WG_u__4YFWiOtrMctq_ic̩~}zZMsu;?mنqb4hei+(h $v{jn}1Dk\atsYn@~ЋBbQeEsCGu`zziu~̳;4nRb\{o5'R}|Bb|mm[_xsr.OpEd?x@ݤzR6HHMb|V{H?m#Sxb[e=VT7Ta?gfYVjy~EBukypUnomvƠ}Q~k-^s4mqO'?[gAXzob%{/b/"S9o;4m>J8'Yf~~qt塎ŢXSZ|~[mF]kieWÈm3{~~hbz[zz_SJ~ig5bWpFZzpA[?TI`2(OW]ocB4j,8{ksƕDX?d4pBaٰckVsR^<짚̼=`<͔pEXӗׄWK9nxyjd7MGy|N^O6)bKESaptX~\Ngf<UHMI{[g\.r[OhcU˕B9X7euru[ћj]ieKuҞDIW~mpDIM7ZD-LZjqv|aqׁwqXz}4tmDJOs[i:x0[Fu_Yi"y^rԆ_XgmZֶdvΈx}}=h-xJ>8qXmcO\|KOTssMwqƭM^TgvCx|KtrrxsoU34vj?F|ba_Ry1gqNzSW82T|Xwzl{HLg}A|Y{vYzzoֵx[[+E]ѭŵwkflkx[Q?dOqXI>V{_v]y hCa[H A7c?k=p?L>jefSS~|y_k~}ןBFhd]qƼp=}ٳcb^Ȗga@6urUtcFmIUG&{z_q*1kK/;:)6uxVF9JHxfmR1ek_cRގuĭ|IU|_z|زuxx~wv[n5pupv\WrgAGha/#J6tdP@K4`tijXnl3>HzTA]VHvW#|sWٻbDbovzf+VHSigs~wkoF}f]r|`>)Yo#;4[YiwUF_[]bm~zWtmU\NYWFsq\fj^glv}f~O]Okо]WQOtY,ʅ:uƓwhJxvɸbfqXTlIbajìeo^XiL@rvexA7wsRqfO}ggPNANwtxo|qTX}KRXeUvs}xmwjtdlmɬx`IJn¸ۙaxWiYiqsW~x!O}\u`PzsCapYWfri;27CLWo{T.Yoquzf|gJbw[hUSuȾXNݫ~fiTuwufõȩҿR5vwlds_vuewqlCͫxY.ugEY{<,KWKDU^?Dlsm5 UxbJdsx'&rae^[fT|^{%Py{09wĚ|f[Jizɦkɣqb rzz|zhLLV{w)=hNVfYa~oKEGtihwZAhw.9e[RI]oND|x{{gFhpuN}gm˟`ϡr{ʿrS{hg瞩ձcϡKShRwjfozl|mNPbfMIWsz?6[YaOaZxiakh9[Pinf][^mgnifs;bmVxuYTuiFrl|{HVxnפлèuYSjQiY`R|u{{tY_{>wfuw@#bEC=JS}ikyc~u/3sX@TjmjU|bkbt}g{vmI޳QaġolrWsikVaFZ|uzyhhmj`tt/~^Qb`TPHS`oH)H~OIbIxwXY^ƃI^TI[aVXicv}~ThDvzv؜o~ogfRߕs|wg_}PfyZ<]o[We[R[Um|tl~|ܵ͆lKwʟiJth}oVafOtq`S?dxQZP&=`mFKH;haPemYSQlXQMedbjhntxypvNn{pTg}ratWEpg֮y¸t๏¢|wtƃ{o\ioW)uLXA]W! 8kkF.TTdwv."OG;nZsgN'NUkdyݦmrq]``rloqfk|hJqjɎyͤ`<>nfounx`pEx>#Eedeu~rTz]n)=9IbI\mt}x`l[vi=>lWqb_mhHH4Gd]KN^wz_kܻKsǩvў\j\wOYvji}|wzi5lfdy`pVZle|d`wqtB521;Gnx_Lcknt{^~Qseqlbtuy_~O_cc^mw\cTv~Ysj]|OKvaS~eWoxsZ]sk`pM&1GiaZ}?YUJc}Fzm@MDdoly`jfz|ppZύmtsm{mɲlşzsߺ|sgLS{wfe|nlx>[5GWo[0'B7RvMe|euvXVl^;KLdmr}~i\p{Ğwě}~i|}iprn{rbp\]|vxnuv]£cVmd}˱Tt[XbEOpERS49,ZgRYQ>.Tvrfmovqy~]wjRȯv|hLMokA\pqYQ:hst˯fj_e|jwuxgҼ~|u}zr7K\h~]dzyzw~qWunwiyipx~xMOj^xT6{zrb^Qeqw{amh}zeykp}i}x_Yox`~xŰn\r{›r1axvg_dUj{|}jM`~hNdbhJgWZldo{iJyxfx|jYeuqmhkdquHH^}~uyum]FD`~~z~ηvqplUwx@(tsW?I7g{cgXPeO[gi}ftu~v^^nIa{dXIBwldUYgYB=EOVW^`d[\emo`Wqs^j~k{nKwcǩea[SkgRFcmUNa=H~m{ydתį~`@ciX~rGWyoMDjv|jsdT[uBdSInL]iW_ys|T_amuxԗ}z–wzhjqzvxh|ewgfgYHjrIQy^v[Von=4J_n|{yifdDcS4Rewd]t\P|r_`:QeGn}lljf}˼wkd[itlNV\KCXY4HsbELf~z/(Ut}qetsarvğ{yᙓܦxhKFbP9LC]WKDTfmuxC`O2g]#PlejyȽƣzuũ[aqd[VYknYgak~}m}~~mitk\koTZVCpwuwuPoeDDX_w{}QHswazprrmszvsÏrvzttPKK`~kX_uhommmz|pw|wtw|oehyhnxqɛg'5RK]\D>hldaqI[qoMu|yvüȪu~hzruk[7?4;EHR`eil~b^s{gžºï~yamuxcmdhZdorR\HPu}mU5GSNMVXW{t]_skylz|kzeJOd^rjhglYNalnaWYmNxg{kطȨƧsd\NRPEB8Q=0ZKSR;9FOjk@ATwzzzqtzeZ;/-+@ACF49[fhW@Cg}{[]yZd{~켲ӾKALDTGN^[]rw\WrvsbZothwwlnfjhm}t[UXlfU]VIZpkopgau~|jy~uȗwkum|mfWcy{vek`TJ>@ETYJEH?9HIGYbt{eSNctnz}lvzmeyuuy}xi~[[zki}bT[ikvrzn^dzhhfZnoVg~wlryb=Zxa`e|zkqrWXpg]cgussbbgtnit{wfqztgkpvyq}wq{xxonpnn|vwbwpYWnncottfdv~vjspgmtx_^XJUPXVMWP6=duiehZPZiml̹ú`ETYhoeVLVIGWU[^ERiKET]_i{virkmje}½{ps}au}|ryucU[LRwumujczriQkyljfukPEbqmozhqmnusvu}|q|}{ɷz}oo~ngmvjAPohaQOtd`nrlOculgrowyrvy\KnrsvXTYtzyvm||{oqq}sww~xwuynxzrspjschteaS\kfYSJBKWYWDH^~h[uYfdnu|vw³soqwygjt~|ru{oxvnboz}khtaMbprfGDPlbQXelYSana;hv^gp^Ubk\RMfpmszamqĶpwxkkf}|qwyaWU_\TYgcHFXc`Q:/QeJHQOMRYUD:MVa[JS`oos}utħҹ¯ɷ~t~mruaHemnwYFLVZF.DV^fWUSVb^\cmttonss}qѲïǽ¶~rmaexXakjTZOHUTQHVobdbATOV_H".77.-AONF9=E@AOcei[Zdd`ak}{¶ǻ~uh`]]aX\dI'.@CD3EC7.(6HNSLJDCDNempwxø{}wyoj}waPmgOp~lTUzsXgtv~sETfqiXMSeeNS\g^J@\]D=9?V[`lfnsж~t~zxsye^ZQKYo`RF=Ehp^ZXigakRKaifoaJ\kopoog|{f|wn~~}{}}uzy|mbhvqnrcYY]PH>BID:=KEOJOa_SKA>?CJPWY]_bcfilrsxy~88:?FIMNQPRSUXZ^^abfgiknpptuwxz{}~wtz~}~}{yxzxxutsrqqqoommlljgifigfbTSY]^bab^\[\]\][\]`___\^\__a`___`_`^b`bbbbacadcffffegfgegfghjjijgijmmmmkmlnmrqoopqpl)Gb]XL?; @F\RJ@:4+7>BIRTWVY^_cenluy{{{}}~zyywxwyvjhinospspoknooompoqkmloklooqpsdAPe`]PJFDFKRSV[]]^^bddhhlnsmioqrt{{jD\vri_VTKS[^hnvt{~¿~~|zymdeegjjhhce_c`_[XVSWWWTUVPPOSNNG:BBFFOKA/68@BGE@A@BGHGDDDGJJMHJLNLPOVQRQQRVUSOOTUZ\_XTV[]^_^_[^]_b`YZ_b`cddU,>YNK951-2ABIORVW[b_bdjkqtxx{}}½z{z}~}~wshapnuosnrprmlmmlknkomprtspqsurqstwwzsvtt.5'[^le^URQMORVQX[^]ecdfgd$Pab_SHG@CVZbenort{{}}upmonoqnnhjkhdTRU[\`\YWXVSQPOMKJJGEIIHDID6,25AFDAAA:@ABC?EFIKKMNJKKOTX[YRSRW[_ZY[]_[^Y\TPUXVY\VVTUV]\]=+7OE@0'+"+8<>BCEKLOMS[]_dfikjkltw||}|vyy~{wlbmqywswuvw|wysuwxxz~|}zz}{w|}}~~~wszsxtvwvvwyxsq#;C70"+-9?EHIMSTU]gjpqxz}{}}{}|zurjmljihoif`]XZ[ZYUXWYUPJCCJLM@??32@?>;1(%")-3:DGIFMNQT\\`ceighisrxyvyx{w}v~~ylmnuy}y{t{uty|||}}zz|~~}{yzy~xyvvquvtxtswxus UXd]Q )2E=<81.3<>EJMS[cgkhjmsv~½Ľxu{zusvvurqkjgfddcbggaYXTTTQNNPOLMG29BFHKOKC4GGJLNPV[afghcjpqxyxvw{w~~rkurw}}z}~~}~x~}||x|{zwtwuzv{PMQgYVJB>3@EMQ[``^S:Sdga[XQPQ[[eflmov~ſĿ{~~~{wuupoliinpqhebaabaVXUZVZVPOFADHNQIJKJGJMPOMNNMOOK6@CKPPKIGGMNQMOG?HEJHNKIKKLNMN'*0C95*&*37>>@?BEJLRX[\^_^_ehkjonss{}|~}}{~||viquzvz~}|{|~~~}~||~|{|}|vuvu|z~r;Se]\ME?9;JQVY^^]chijlppx}|5A;qyzurojmrvzɿû¿{wtxxy|}sqlnloqgieb_a__\_b\TCPNSWVPPQTTNQOOOPUJJKHKQSNNMQMQIID?HGIEGFHGIGB@D>'964) #)23?=BBFIIMOPV\^dba^dgglntnrszx|~~xqwx~|~}~|}}:E:einmfbVXQ_befglkopsoqrsy{ A[u~z{x~}y~{~|xwxxvywxnlrsqptn`cokmlmnilkpnnmb[_hknlmifgghcdhjhiga``_^`_ejgf46-VY]WSDAC@IPTXZ]a_a`_achhooqqqloussrussuyuvwyzw{}|}y}}}}{|}}|}}}}x4a_ww~wyzvxlptyz{z~|{}|z{qCkn}~z}xxzyxwz{~{|x~~}~~}y|x|||{~{{z|~z|}~}~}{~z~zzx}~||xx~y~{|}x}|}|{~{{~}}}x~|~zy~xvy~zvzxy|y}{{~}~}}~|x|~{~wv{xx}xrx|zx|wu}z~{x}y~{{{{v|z|}w~v~wx|xr|x{zw{uw{z{}vv}{{{yxy|xwux|ustxwuuq~vwzu~ts{{y|uw{yy~zvz|yxxz{uwu|yw}uwvx|zww}|x{x{|zyy|{vxv|zwuuty{xvu|zxxv~zz~yy}zyzy|{wvx}wuvvyy~uxwx~wwyz}ty~zxtu{zy|ruyyzvuy}{yw|}|zy{|{zx|}xyw{xy}y}uw|y{{x~t~y}xz{xx}{|{vz||y|xwz|{|wx{{y}yv|z|}z~x}{z|}}z}{~{}}}}{}|x}|z~{~xz}{}yx~y|zz}uw~z{yvwxyz|x|~z{{|||{w|}{}zy~z{~|~xz~}~||{~~}~~|~~~~|z}{{~{vz|{z}vu~y~{x~wy~y||wz|}|z}{|y~{zyxyz}yww{}zyw}{|{y}}yzy}zyyx~{xxxvz|y~vv}y{|{~w}z|~{~z}}x{~zy|vw}w|yu}vw~uy}u}vw{yx{~x||z~z}||{wzz|zyx~yxyzww~u}xx|x}xxz}|{~{|{|~~}y~{{~x~ywx|z~vv~yzz{}w}x~}{{z}}}~~}|}~~~}}|}~|}~z~~~}|}y{|}{{~~|}}}~~}}z|~|}{yy{y|}|~|~{||~~~|z{{|~~~}}}~}}}~~}~}}}~}~|~||||~~~}|}~}{|~~}}}z|{x{}||z|xy}z}|x~zz~x|}|}~|}z}}}~|}|~{|{~}~||zzz~{z||{||y}|}||}}|||}z||}|z|xyyyy|zyv~z{z{{z~y~|~z||}~}~{}}}~}|}~||~z{|}}~{y}|~{{|{}~~~z~}~}|}{}~~y{}~y~~{~{}z{~~~zz{~{{}}~}|~~}{}{~|{{zz|}}~~|~~~}~}~}}~}~~{~~}~|}~}{||}}~|y||~y~}}{}{|}{|}|{{~~{zz~z~z~{|}~}{~{}}}~{~}|{}~~|{}}}}~{~|~}{}}|~~|}zy{|}{~{~|}~y|zv|||{~y|~~~{~|||~{~|||}{z|y~yx}xz|z|y~x}||}{y}}}|y}|{~|z~{z{xz|}{|y}}}|x{~z~}|{~~}~~~~|{zyw~y{|{|vwx~yz~w{y{~}~|{~}~{~}~}|~}}{|}}|}~|~~~|~~}}zy~|{||y{x~z{~z~yx~z{~z|~}}}||~~}~~~}z|}}|z~~}}}{{~~}~~~}~|{~|}~~{|~}}~}~}~~z{}~|{{{~}}||}}}~z||}~~~||~}{~}~|~~~|}|}}|}||}}~{~}|}|~~}}||~~{~|~||}~}}}z~}}}~}}|~}~~{~}}|~~}|}~{}~{}~~}~{|}{}}~}|~}}}{}|{}~{}{z~}~~~}~~~}{|~~}~~~~}}|}~}~}~~~~}~~}~~~~}|}|~|||~}~~}z{|y||||{}xyzw||{|{|y~~z~|}yz|{{{{}~}}}}~}~}|||}}~~z|}}~}}{|~~{~z}|{|{}{}}~{}|}~~|}}|{~|{{~{}}z~|~yy}|}x{|yxyuz{|~z~x~{|{}}y~{}|z~~|}~~|~}}~|{}~}}z~}{}~~{~}~}}||zz~|yvzz~}zz|x|}|~}||z}z~{~~|}~~~~|{}}{~|}}}|~~~~~~|z{~y|~{~zz~xy{{|w}wx~wyy{{}|w||}|{y{~|{|{|~~z|~{}y}{|}~|{z|~{~||~~~}~|~~~|~||}~|}~|{}{}y|vyx~x|{z|zw|y~||zw{xy~yz||z}~|~}|z|{}}||}~z~}}|~}~~|~~}~}z~~|~~~~z{~|y{}||{~{{xx~|~z~}|~~~}~y|~{|}}}~}|~~~~~}|||~|}~|}~|~}~~{~||}}}}|||z~{}|{{y}|}}|z{}|{}}}}~|{~|}~{}|}~zz}|||{}{}~~}{}{~}~|}~|z~}|}~z}}|}~}}||{|~||yy~yxzz||{y}x}{~~z{{y}z|z}y~{~{y|}}}|}z}}~{}{|~}|}}{~}~|~~}|~||||}}||~z~|{~{{{}zy||~|z|{z}|}}~}z~||y~}|~|~y{}|}~~~}|~}~~~}}~}~}~{}~|~~~{{|z|{{~~|{z}|}}~}}|z}{}|}}|z~}~{~|~~|~|}|z~}~~|||~~}~{}|{}|z{}}~}{|}y{~{z||~{|{z~|}|~z||}|}{y~|zy}|{}||y{}|~{y}~z}}}~{}}|{}~~|}|z~|}z}z{|{|{x|{|~|{wz~{~y||z|}{z|{}~x{}|}z|~z|z}{{|~z|}|~{z}~~~{~~~|}|}}{x}}}{|y~|{y~~~z{}{z}|z}{}}{z|{y~{~|}}y{{y~|~}~|{~~}}}~|}}z}}~}}y{{z{|z}{~wzz~w}|{{||zx{x{x{|{yx~xxx|{y}z~xx||}z{}{}}}~~}~{z}}}}{}~{~~|~x|{{}z{|~}~z{||~z{}|}x|xy~yx~wyv|yz|uy{zyw{wwxx}{~~~{|}~yz}{~zz}xwusuvu~zx|y}|}x}z||{zz}w}w~wuwttvrx}x}u}y{x|yy|xy}x{{}z|y~vvus}v}x{zwxyy~}~~~zx~yw{yv}v~tssur}uvzuw{wzt}uuvyzy~}~{~{~~|y}~~v~wz~t|{y|w{ywz{}x}x||x{xstv|sxww|t|pqrps{tztvxt|v~ru~w|wz~||||}zx}|{{vtu}v|yw}xxx|~zzyy}xwrv|wzxv|suqrtr}vzxyyw}swuw{~z~}}}}}{|xxsx~z|xx~w~zy~y}}}zzy{v{}|}v|xvvv~sxuwy|~xztzwz~~{~~|{|~|{xwvv}||zx|xz}z|||~~~~}}yz}z~zw}vvruw}tzxyyyxx}t}v~uv~zx{|{|{}~~~z{}}|z|wvvvyxy}w|ryz}{{y~~~~~~yy{{z|ytvwwz|{{y{x}|}z~xyxz}|~|~}~w~~~{~{{{||uvz}uz~xvxxz}~vy~}}|z{|~|~x~~{}~{~~|~|~~z}}}z~}}~}}{}y}|yzv|y~}y}uwwzz~xzx|}}{y}}}~}{~z~y~|{}}y~~~|}|{~|}}~~{~}}}}|{x}}~z|w{}x}yz{x~zt}x||z|ww}y~z{x~zy|zz|~x~z||~{~|y|}~|{~{}}{}{}~}|}}~{y|}|~}y~|{{}|{~x}|y|{{~{~~z{z~|}~}{{zz~yy{zz}}wy{x~~|~z~{x~~}y}x{y|{|{||~w{y}w|}}zyyxyz{|~~|{~}z|||~{z{zwy~wy}|xx~z|z|wxyv||||z}vvwuw}y|wx|xytwx~x}~|~|}||||~|~}~|y}{~{}x~{{zzyx~vywzyy~y}vw|y}w|yx|z|wuwv}vz|xztu}v}y|{w~{y}z|z}{{y}z{}w||x}y~x~y{~|zx~{}|}}z}}y}|{x~{z~{|{~{yz}{y|{~z~{~|y}{}~|{xz|z}|z}wxy~z{{~{{}~}~~z~}z~~~}|}}}~}~}z~~}~}~~||~{{}}xzyx{}z}zx|~}}|{||{||}~}z{{y~}z|z~xv{w~z{|}y}|z~}}z~{~~}{~}}~~~{{~{}z}xw~zy{|{{x~{{~~{~{x{}~}|z|yz~~yzzzz|{}wyz~z|}}|~||~}}~~}{~|~~~}|{|~|~zx~z{|}|y~wzy}|||~}|}~}|~{{~}{|}|}~z|~~}}~~~~|~~}}~|}z{}zz~z~{~zx}{yw{z{||~}~~~~||~}~}{~}}~~}~{}}}}|z{~ywzv|x|zyxwwvu~v{{{{w~z|}~||~{{~~}~~{~z{||}}|y~}}~}~||~}{}~~{}||}||}}y~{|z}z~}z~yv~ww{vw{x}u~tx~x}yy{z}|~y|~~~}}}}}{y~{{~{{|}}{~}}~}}~|}}}}|}{}~}z}{x{}{}}z~y{wz}~{|}}~}~}}~~}|~}~~z~}|~~~}{}~||}|}~~~|~~{{z}{z~|z|}~}||}}~}{}||~y||}}|{z}}|}||~~~|}~~|z{~~~{~y~~~}{}{~|{{y~~}z~|{~x}{zz|~~z{{~}||}}y{||}~zyzy|wx~xy|~}y|y|~~x}|}||}{}|~~~z~~~{|~{}~~||{y}xzzx~{zw{z{}~||||z||zz||z|vxvw~zz~{u|y~}y{~}~y{}uw|z{yzzz}{wzz~}}{{}|vwu|t|{{zv{||~|}x{|~|~y|y|~u|{{z{}}xz{|yyu}xr~tw}t}uu~rrtu}x{|~|}~|}}y~wzv{{}~~}{~}|y~}}~}|~{~~|x{y{~w{}yy}{|w{srrrtvtrsnps~pzwzwyvx|wyx{v~w~{v~z{~w}w~~y||wz~x}w~yu~xxvyv~twt{wzzzwyzz|yxy|yxywy{syu}s}ovnsupxuuywxu~vuzxy}x}svvu~yyw|y{y{yv|u~u}qrspqppqrrrsopqm~st}r~yv~x}x|s{wyxwyw~suuvzx{xz{zxy}vu~tqrqorm|m~s|o{t|v{p}t|p}o}rwqyuvttwxxtxv{xysyvzwwrzv~s{otqsw}w~}xzw{sxvpws~r~tyo|qypvsyuqutwtsowrynxk}mjimmopoqqrsttsws|y~|{{yyy~zz}|x|x}z{wvzt|szqppqornmojklios~pzx{u{w|{{{{~zyw}vywy}{xy~{}}yz~x{ztwururprop}rzp|rxrwsxuqutyrxn}sp~uy}w~{zyy}z~z~wz~|~}~|{}{}|~~z~z|||~{~y~~z|z|z||z{{y{{yw{w}w{s}w}wyt}t|r}nmnm~pv}u{{~yw{{~~y~|}{}|}{|~}~z}{y~{{y~z|z{}~|z{}|y{|~~}y||{w{vuxtv}v}wyy{}{||{||~}}|~{}{~}{~~~|y~|~wzx{|v}ww}wxwwwxxy{z{~|~y~y~{|x}z}|{w~y~y{x|~|}z|{~}|}|~|}}}}{|}z|{|x|y{{{u}vu}psrptsstut~uwu{wyu|zx}w}|~zzz|}}|z}~z~{~~}z}~z}~z~~}z|{|yyw|wuuvu~yw}vyv|wy~u{{}z|v|{}y}y|}x||~yz}y~}{|~}{|}~~}|}~|~{|z~{~|w}{|z}}~{~z{||{}{y||}{{x}}{{{zy~wxx~yyy{~{z~~~yz}}z~~{~z|y~}}}}{~}~y}y|}x~zz|xzx}wyy~yw~~zx~x~|v}wy~uzwu~{|xy{yx~|zx{{{}vz}x~~wzzx~z|zz|zzy}}xy|}|{wz|}z{zz~z{{{z|{|{}y|}~}}}zzzy~{{}}}{~~~~~}|~}{}{|~|zz|yz}xxx~yx~ywtxuvytvwsvww{}{z}~~}~|}|}~}}}|~~}x~yz~uyxuyxvwuuvuttur~tt~s{vx{uy{|yyzzzz{{~|{|~z{~{}}}{~~x|{{y}xx~yxw~yww~xuu~wu|u|v~t|u|vzswwyvyuwxvyvxt{u}v|sww}wyy}x{|{~y}z{zz}}}||z|zy}{}z~z|{}{y{{}{|yy|z|y{w~{{z{y~{zy|w|x|wsvuuyvxzwyxwz~zz}{~}|~~}~}~|~z}}}{|zx{z~{|}z}{{}w{yuzxvzzy~}}x}y|y{v}yxxwzy|v|{}~y{yy}y{~{}{}~~}}|~~|~}}yy}x~w}{{z~zy~z}zz}}~|y~{}}}y|z{{~y~y|xuyyzy{y{}}|}~}~{}}}}z~}{x}z~yyy}wuvxw}}|{}}z}z~}{~}|x{|}~}}}|}|{y~|{|z~{{{{z~wyz}|}~|{|{z{~{{||}~y|~~|~|~}}z}|x}yw{x{}}}z||}~~|||}}~z}{z~|~{|}y}}||~z|||{~~}}}}~}w~w{zxy{y~v~xz~|{~y{}}{z~{}y}y}{}wyy}vtvw}w}zz{{|zzzwtt}yyvx|v}uzxyx{~}}|{{~|}{{~{~}y~w|uqpp~ss}v~ts~y}u}x{{w|~}}{~||y}www~}z~~zx|}|{~|z~|{xz~y}xwuwssvrvx}v}~}}||~|}}z||~x~w}y}w}y{||zz{z{wwww{}~y|xy{xzyz{|{}|~}}zyzz~xzw}|}wyy}z|rusr~y}u|v}z|y~}z~}}|~~z|{~z}v|{xy}z{z}|~y|}}|y~}~{{y|~y{y}{v|v|z|w|{}z{z|}y}w}~z~|zy{x~z~~{x|{{ywyvuu~wy~y||{{|xvqtw~vz~{z{~|~z||}~~}~}~x}z||~~~}{|~y{yzx~~|w|uw}~w~|}{yzzttvqxyy~}{|}~{|}}|||y}|}y|}|}}z|z~}}y{zx~{|{~{z~yzuux~w|~{~x|{}~|zw}~{}}}}}z}~z{}}z~}|{~{}}|z|}y|~{}|{{~xv|y}z{{w~xwssus~wy{zzz~x~yz}~{z{z~~||v}z}|{|y{{~z|y}~z~{|~}}{|{y}{|z}v{||x|x|tuws~z{|yzwvwwuzz}}}~z{~{|}~y~||{||}}~~|}|{x~}~~}z}|{~}|~}|||~x~y}y~w~{~{y}}~~z{{z{{{~~~~}~}~z{{}x{}~|}~{}{~}~x{y}z}w}||{yy{|x|{|zy~~yzx|}{uwyzzzuz{{{|z}{|}|}|~}}~|~{}~}|{z~||~|y}|}ywy~ww~y~z|z~z{~v~y~x}xz}yx{yzzzx}y{xz{{|}}}{|}~z~{}~zz~{yxzwz{y|~~}}{~{wxzw|w}xw}z|~~}{|~}{~{}~|~{||{~y}wy|y~~~|{~}|~}~{}~~|}y}xy|uz{x|~|x{y~wyv}yz~v~{yz~}{|}z|}~~~{~|~z~~|yw{|x|z{|w}}~~}{~}~~{{}yw|wvxswx~x{|z}~{}|~z}}y~z}}~}y}}}~}{}~}|z}}|y}{zy}}}}~~}~{|}|~z~wz~{}zy}zy~{}{y~}{|~{}|{z{{}}}|~|}}~~|}|}}{{|~~y}~|}|z~{}~}|z~||}~~{{|z~yyzy{}{}~}~~~~}~~}~}}}|~}}||~}|{}~}|{|||}{x}zytwxy~{|{~w}{|}~|{}{}z~{}z}|}~{{z{y{}}~y|}z}{y|||{|~~}}yz{~|yz|}~z{xz~~y}zw{xz|{z|~wxy|w~{~{|z}|{{}~{{y}|z}{zxx}{}~~}y~~}y}|{~~}z}}|}||z{|{zy|yz|vzy|x}{~|z{}z}|{||}}{{yswz}w{{{z}ywz|{||}}y{||xvy|||}~{|zutw|v|x|{yyy}xrvxyv{{zxwx{}w{vzxy~yux~zqqrr{{{}{y~|~ywp|uxzvvzy}xzv{}|~}{~{|{||}zy~vupr~u|vwxx~}y{|z|}|{{{x|yyww~{~zz~y}v{}yx~{|}}{{|}zyrzy{zyzyux}{~x{{{~|||yyyu{|{|zvrt~vu~x{x}tzwzx|wyzwzxuwvxv{wxzxx|u{v{x}wyy|z}||~|{xz}yv~y}z}|w~x}yzt~vsnpm~oo|q~po}q~p|tyx{w~wrqyx}|~{yy~rnv}w|zzz|sw~~tv{{w}{tns|qyst}nno{pussoqus~vpinjps}m|u}sqwy~~{y}{z{||||{~u~w{z|~y}{}y{zrtut|uroqppqpoqstzx{wxxv}x{tqr|s~tvtpuw~{~z~}~}zvttvxvuvtuwu}v{x{tyyy|vyrr{qzs}p|o}o~n}rmnro~t~y{tzy|yyyy~v{w{x{vy|}x{w}|v~}{{|vy~zyuxx|vxu|r|ows{q{r{rmrqquo}p|qxowtxtxsyvvv{t{vzx}wzz{~|~zz||~zzyyy~v{x{{{vyzz{xzwv}vwqqnmso|pojps|rzuzv|vy}z}z|x~xysvxsxuszxy|}y{{xws}utnpprx}tyv{x{u|{z~u~urtupsqryt~wy}v{z{y}}{v{vsumrvsv|t}vy}tso~rsmnnkpqort~ty~z~y~}}~|~yx~y|w~w}xss~v}t~z~{~~x{~{|u~rpmifhjmplpps}|{w}wv{vssur~u}v}vy|z{z{{z|{}|~~zyv}w~u~v|s}r{szo}oqnqu~vwyuxwwu|r~o|loss~w||zy{}|y}z{z}|z~}}{~zz{z{z{v{v~u}v{{|{z~y{~{zzu|wztzr}uzs{ttrrwy{|~}~z}y|~{x{{y{||~u}wws{~{{z}|{{~}zxzu|x{yxvw|vyuyt}syxyw|yyux||z{t~u|uzu|u{wyvyyw~u}uwuxy~w|{z|}|{{{ywzv}wr|suu|xz{|yz}y|v|wzvvtvxvxwxy}x~w{z{~||{|{~~}}|{xtw~y{{w||~zx|{{w{zzw{wzxyw}}zx}{~{x||~zz~{}|~}~z||}w}wu~|}|{z|wx|}|{}~~}~~}zy}z~utnkqplkkot|q}u~z{z{{~y{xsvu}vz{xyx{x}t}vwu}{|xz|~w~sur~r~u{s{w}zzx}{{}}zz{vxyuzwvvyxwwww{uuvx{yyt~z}yyzz}z}{|}z~~||~~~z~~{{}y{y|}x~yy|{|z~~}{sxvxsw~r~st{t{x}z{{y{}|~~y}z}z|||{||}zuyzxzxy}~{|{y{{wyt{v~w{y{{}yy{zy}}|}v||}y{sxtuyv~vz|y~z}||}}}yx}x}v~y}x{ww|vx~y~}z~ywy|{{wt}y}v{vxtvy~~|}z|~z|zy|}{|z~}x{z}~~w|{~yyuz{|x}v|}y|~~zwz{wxv{{uyx{y{v|z~|}zz~~~~z}|}}}{{}{||z{}~{xz{yzz~z}{z}{{w{u~t}rzv}x|s~xxtyus}yzw{xzu}tu{y~zw}yz{||zxx~xuwzw|xz|y{zy{}~v}uz|w}{wprnpm|gjilkouww}~zz{}|z~z}y~w}xv{xyzu~qut~v~yz}twu|tsp{ru}soqqt}v|v|wv{y}}~w{z}yzyy|y{}}ywzw}ulhh~fihgmrzy|v{t}y{rw}}~||{|yz|yy|{wuyuwyz|yvrjkjiklpuyxw|ulek}jym~rzqyw|}uy}yywxt|wyz~}}}}tw{x}xw~x~~y~x|yyyx{rzs~oypwwuotj}m}nzuvw~zw|yyv|xr}sqplj|oystxv|yxyy{|}xx}p~r|pwtxss|ruuv{szw|wsytzws{w}|xstspmnonp{ryyxzzu{ywzz~txzv|tvwuwxquvwtxr}t{|u{~|yz{{{~z~yz{}}yxwu~u|xwx}x|}su}|wy~y{t|tqvm{i}k~l|jgnu{|{z|}}|zzx}uoqqjq}yvzz~|~t}wyv|{|~}{{~w~}}stx|y~}~y{}z|v{rpmsrls}wxt~xxzot}|{}~y{t|||~vuurjot|ttrty~yx|{{x|}|{y{}usy}x~xy|xyzy}|}{{y{~yz{y{xtrrkfkroon~u}{~xy}}z{|x}{{z|xy}z||xw}qr{}zyrou}}|xzwvx~yss{w}y{xyy|y}ww|tyy|xwtzyv{rusqtrvwuw~xw~wy|{}wzwzvw{~xx||}|}~}|wxxzuy|{z}u~{ww~{}yy{|z}~y|qv~ywzqu~ztn{qtryrzrwuxx|x{w|}|~|}||}~~{|~|~}wtyyz|y|yzzyuqss{u|z{~{}{|~y{zs}sw}wxvvstnlw|z|yuvv|qnqqsuv|y~~poosuryszn{otz}~xo}nsvimutx{yz~||~}z|wx}plrlj}usmwrtz{~{~{~x}|{}x~}}xy}tzovne_fls|x{~vvsu{z{xz|yuvy}nmqlm|ttwrxy}}}ywsyz}{|~vu}wyt|m~ijjmtx|rr}vvys|njt}~vx|vywt}tztxtvwuvwsxu|s~u~~~~z|xq}muwr{uxxzwzv~y|w~xz}{~|~v{ysnon}q{yswqpiovzv{}{z~vtopxwuyvw~y|v~uuw}z}}z|}}~}{~{|yy}yz{{{{~yuvssy}zz~w|yyysuy~xwrpqqtux~z|~y{}z{zvrw{ywy{wxyq|opvsux|{v{w}st~swvyxvzx~y~wzux}{{zz{xx|xvy}||v|z|x|prt}v~xt~v|{yx~yytpv{}zzu|zww{zy~|}z~}{|~{z}}z~}}z~z|z~z}|{z~|zxvrnyxu{~|}xy~yss~uyxy{y{x}{ww}~}}}{w||z|~|xz}{wzpsu{{xztx|rq|sttpytxnwmnoz~}{~||x{~vrpoo~q}q|qwvywyyyz{z~}tux~vz|v}y~vxzuwsy}}||y}|z{{|t{}x{yx}qyy{~uzx{y|q}v~~x|s}v}w}qmn{p~v}xsy~x~ss|syqyvrzr{suvy}yz{wuxw|v{vzq~r}q~rsrpuw}s~u~{|wu~yzyvrrv~tpqs~yut~w{qu}zwwxxtjlrztzy{|v}wwzww~zy{qzxv}q|z{{yxzy}z{~u|x}}v{{|x~wu}z}y}|~~{~{zy{y~~~}}{w~nspoonuxxvw{{trq~uzyyxxxqoss~vv~vy}~y~~zw{x~rwvww|x{tuwvxrtpus|qxzw}x}yx}zxtwyx{vywt|prsprqqu~wvzwy~|{vzz{}xx~}||y{{|~{x}zvztxw~v{~w|svquut~x|yw|{{~~~~~}|}{yzt~zzvzur|oqp~suwz{~{{}y~z{|z{wv||z~zyx}||~}yzzy~x{u~xwvuyzwzq{qmmpnrx|z~y|}||wr~w}u{r}yywtzy}www{wv|z|xst{~y|zx}yyx}|{|~}yxz~vxzw~y{z|}||~}{z}su|stvwxs|mnnquow~~y||x|wy|wz}z}|{{y|~}y{x~{}}~{}~~x{thepxpqqo|cclmszv|~|~wz{~{rqijnouvqr|w}w~yzv|~snp{rvvux{{rqqwypllwyf_[ycdwZZaa|rmhxjgk{ptwvu~~u~pvhelzooyomq}}rq~tuzus~y~{x~uu}sw{uux|zryvv~ols~vwwyvofd|gox`\ewshgjuslc`hrxox|{|zxzxmjwpjwwxuwpe_qvt{|w|y{x~}y~rjqrss{niqw{{|{rojyrpihsthbpk|_fdjv{jkytzttq{zyx{vrurq~wux}|yyyno{rvtswpwkhqwtv~yysuzmm{yuv}sqvwuh}he~nyyp|jl~rqxlklo~w|wuppnqu}s{{~z~}{{{t{sonnkzoqzkkgmyqmgk|lvymgm|rv|spvvopv}w|xz{}svswolii~wu}yxwxyqt|sp{mrty}yvpr~uwuyyr|oou~xxxwmkwvvrxqlkxy}|vpuv{o{xwwq}s{uq{plmmo}u}vy{qppl}mvtv{t|r~~}wuuv~tuyvx||x{z}rkrurt|z{{~z}zz~|w~w{|xw~oowstsyruqowm~pr{wv~ywyr~smihqyxvzz}ut|{rt~}|xwt}yy{u}~ztw~vzs}sxyyr}ntzl{vyxxtyywwqrxur~|~~x{}yzy}xvlu}vto|wquuyv~tuwv~{{u{z~|w~wzx{}w~{p~ongej{tw}{w}zy{|wwvzu{w|}s{yyr~spij}zzz|v|}xw~||z|zytwzx|zu|}tw~z|xtz{tuu|mtslqvylpu~wzuvvwu~rnsu~vw|uruuqvz}tzy~}~z{}z{x|{|{{yvtwyspqnsvzlnryp|wwzs{{~{~ytu}zxy~zttrvqv{mlqlq{|{}y~z||}}{{~zvx}y~{x~{tz}w}|yr~vtjlu}y}x{{xv|{}{~{zz}|||}{v~r~yv~m~uvvx~~|z}{z}{vw~|y{nnzow~~xyxoxrt}|yy}yztw|uyww~ux|t~tx}uyrznjwu}}}y}}y~rkxxrp}~|~|x}|tutnw|zrrw|uwz{yzy~yy~trszwv~uzvz~x~|}wu~|~{}z}yyqqryw}xyt|uv|~y||www|x}}|z{uy|xy{{|wzvvty}v~~z|~{uzyytyx}wxx|||x{tw~|x~|vmpu{v}{yty}w{yv|{x|zzy{|ty}wx|xw~}x{z}{|x{~ruyzxywy}y~|{~~z}y}||v}z}||wz~{|}|y~y~{}~{~w|}ws{zx}s}pqmytuo}uvuzzzx{|zy~~z~|~{ytssxkmniowxmsvztw{uv~wxz~yt{}|v}{wu}~}yz}z}~w~xwttryrt~tv{~~{{zwv~{}}zw||x|y|wrr{zyxz|{}ztzy}}w~y|v~||z~|wosw|xz{|z~vz{z{t{|xzz|yvvxvtnqszuy|uv}~wv|z}z~y||vwzw~zt|x~v|rsp|x{w}wz|tsuppsq}tv|xw{|yx}}y|{|z~u}||{rtxxz|zu{vtoy|{|{~{xyrtz|{{~~yx}{spvvv~{{yu~uu}y~zx||yv~ys}vyv{~~y}~{|{}x}zv{xtvs{zxy|zu|upv{zvv|~povw{~~}z{z~tx|~{}{zyz|zzv|vrz{z}zy{u}yxuz|{~||y~~~~}}uw~~}x}zw{{sqlnqzot{opuywzsq~t{{y}z{{|z~{|{}zw}xux|zy|uw|tzxw{s|qrtu~v}{z~z}}zwxs}x|{u~|}w~|z|vt{x{t{rt{||y~{zvztw~zzxz}~}{~~}{}~{xxz}y}|~wxy{|~|zw|{|x~zqquzus~yt~yzx~{~~{}~|||||{wsrv{{y{{uv{z~{||}||}z|}~}}||~~|~~}{||uqt~q{tzzuzrx|z|}{y||xwx|y{zy~x~xyzz~u{qqs{xwx{y}|zs{~|xy~}z|~|x|z~|{|{{{~||ss}{x|{||ws}}y}ru~zv|}~y|z~y|vv}qoqv{|z}{{ws|xysx{xxxtz|sv{y~}|||}v{}}~||y}}|~w}wxw|xsxz|y~{{}{vt}t~{{zu}uv{zzz~~~~}}zv{}usy{{}|ztyuz}{z{}x|z}yy~}xt{xt~swpw}zy~~|~u{x}tw~sq{utxp~orvvw|x~~yv}x}x|y}u~{}yxzuv~ut~xu~ow{wm{qsowuwxyz}u{~~}~z}z}w|zv}yzz{z~zw{yz}vzz}y|wy|zxzvt~yww|~xzyx|~|||{}{{|xxwuuqnnqyyy~uvux{tpnr}s}u{zu~{}|{}yx{|x|y~yss}yxyxmmr|rz{~w{x~{}z~ytrv}y}~xz~z~w}z~z}~}y}|}{x}wrq~vwus~ortx}xwx~s|zpzx{uz{xzx{wyjqxxuz~vl~ryusur~nmqq|yx}v|x~uqz~w~{wrw{zv~y}y|zz~{z}y{|w~w}|yw{wy}z}w|srvxwzwutrotvw{z{{zx|z{y|{~}}~~{|{ty|y}|}uwx~{~zz}x|~xw~~zz~wwt{tvv~}|rsr}u{wsx}|{zz}}}~}}zz{t||{~}}yztwy}w{z|}vt}|w~}|y{~~}~y}zv||xtwxy{{w}qroztw~t~wsqxxx}w{{|~rt}x~w}z||}}ww~~qv}u{xzrv|}xw|{}}u~uxw}x~|utx{x{~~x~wzz~~xz{}y~~zxz}{souv~ryupgp|uytxxsnqv|{|y|y}~{zxqs{zvxxqvz{nuvqw|s|z~y|~x~z|~x~~~{}|yw}|z}uusu~w|z{|utzz~zxrr{ww}zv{y}t{~w|z{yv~xts}wx}y{u~sq{wtusr}pytmos~qqxu}z~}z{|{~~z|~~z}|z|w{{{{xyx~so}{x{zww~mrzywz|y}u}ty|yz|v|y}}~wt|z{|~}~z{|zqvwr~zwpu~z~x}|yuzx{vzz{yy|y|z~~|y}}zy}xwvxs}{yz}y}}~|yywwz}~{}{z~~~||}y~zvx}~{zus|s~vytu{{z|~~~}}~~}~z}w~x~zwzv~xqu~}z|{~|vyz}|yy~~~}xy|yxz||~}}|}}}}z{~uw{xx|yz|}x}x}y}z||x}}{x}}{~{wzvwx}}w~{~{|xy}wu|{|{~||y||}z|~z||x}w}|z}x}y|y|~{u}~{}v{zzx{{~}~~~~~{|{{{||zz{y{yzz|{~}z}}}z|{w~w~~yxz{}}y|~~{z}x}~~y{{}~||}~}~z|~zwz}{{yu~{~y{{}{~z}y|}~}||}|{}z{ttz|w}z{sw~w{y}}u~~w|zw}v|~|~|w|y~~sv||vvzw}x~{w|~{~y~xz|z|{~|~u~|zyu|utpr~s}xz{z|{}y}{~w~{~|~y|{|yy{~v|}zuwxuwz{{x||uxwx|x}~~x{|w}z}yz~}{wz{}~tyy~rz|w~}|~wv~~y~v{zy}x|{wxz~~{zry~}y~~~}}~x||~}{uy{}vyxy{zxx|z}}|}~|~z~|}~|{y||{|w|y{{urwy}u|}|}{}zz{|w}~{}xy|vv}||~v|y~w}x~u~xx~w}~z~}{y|z|{}}~{}{~~}}||y|y}xu|x|}{z}||zz}{||{|~|y}~~|{|z||~z~~|~~|z|{~|}~}~}yzwz}~{}y}~y}z~|}~|~{}wz{{}|}{{}}~}z|z|~|y~|}}~y|~}}~{x}~}~|}~x|~~{z~~x{z~x{zz{}y~{|}{{~{}|}~zv}}}|x{z~tvz|xx~|yx}~zy{{}~{z{|~yz~}}x~}{~}~zz~~z|||~z~|y{yzy~}y}y{{|z~}y|xzy}~wsxsvy~||{xy}wvwyy|z~}~w~}~v|~u{~}~x||}~y}w|~~}{||{}vzwz|~~}{{y~|zz||vu{~|yww{|wtvz|y}|}xzz}x{~tuyz{xy}}w{xx{uz~}zx{zwz}z~~|zz~{w|{}||{~~z{z~z~}~~z~}zx~|}}z{}zz|w|{{xxyw}wrx~v{zvtywtx{ztxvrt|xuy}vot}y{xw|wtw}xxtvzzx}}}x{}y|y|{~py~{s|u}z}~xx{~z~~}z{}{z~z~~}}~}~|}}}~xvy}~|}~z{{~zvz|~xzzy||~{zz}{|{z{wtszy}~yxwvtuzz|~v|x{}|yyxyuy}~}~~~|{~z~~{~}~~}|zz|y{~~}}}}~|w~y{y~{~~y|}twxzy~y}z~~yx~~|}|yy}{}yv}w}|}z}|{}zyx~~z~{}~|}|~}wyw|y}|x~z{{z}{}{z~{xt{{|u~z{}{|~x{wyyw}|z~z|v~{{y~{|~z~}}~w|z|{}yz~xz|~{}||~}}vxwy}z||~}{{zxwu~}~w~{||~~{xz{}{w{{wz~x}{y}}~~wyuvv{y}{~{}~{{z~}~{}~}y|~}x~|{z|~vwzw|~~{|uuxuwwzxzz|yxuyv~y|xvtsxv~yx{zzvwt}{w~{}w{{}~~}w}|y}w}{yztqzzz~y||v|zrurv~r|wuu}}zyq~w|rw}ty{~{|zuzyzv|z|zwm{v|vw|{{}{~y~||}|~vvys||}}yxwvtxzvy|z|~}{}|z}~~x|{z~zy|}xwuy{{y{uu|}t|{~}y~~{{rw}~{z}|}{v~|~z~wwzywozzwzz{|xt}u|wzz|~}||~}{x|w||yz~wsx}outww~w{{{~{|wz}w|z}}~z{|wzz}v||w{v{{x||x|wrvuvv~wwxwy~{xt{tu|~wr}{yvw|v}x{~|{ywz|}x}{||x}zx~x|zw}x~z{ww{{yyys|vvz|{zzxv{z~}|~u~wt}~}{w|x~xy}}w}{{|~|}{}~y}|xx}uz}~{{zw{~y|}~z~vyz}yz~}z{{x}xyz{}zx|}py{{~w~z~utqvr}||~y~~wt|v}{sy}x{txx~tw{zx~y|{}}~~}ww{nw|}quyqzxys}vsmuvsy{yy|{|}}~{~zxp~}sw~ywyyu{nwsqqzxtx}{}~~~}z}xvy~zxxx~{|||~rwymv~{w}|}{~wvtzy{zyvy|x}~}y{{uyyz|~{{{z{w{|ttw|u|~y}}zy|x~tu{xzzx|rsv}w|~{|zy~x}{ws~v{|ww}{~xzzxrtuowx~vz~}x~vzz}|y{u}~}~}~y|~{~y{yvyzytmqu{}|zz~u|{}||}|zwt~|z}w{vts{q~x{~uswn~}ss}wtn}}q}{vz{w~w~z|zvxtz~t~|~zvwm~wtsquvw}wyxz}y{w}{w}x{|~~|{zt}yuwz|v}zyz}|}yxwu~}{zx}xywzxzu|xs{pzwu}v{orwux{|y|y~v}w|zxs}x}{}xwvvw}x{~xz{w~|}|z|}y~||~zyxy{yvz~xwxysx~xu|tupwsvwyl|qtzzw{swwtz{to|qqh{try~wzq|p}vqvt|zox{{{{~}yzvtzxqv~vw|{zz{|zy}xusr|{v~u}|z~{{{}y}{l|yvv~p|l|u~wl}{jowytytwsvz}|~urolyryywtuoznxxw}rxuz~zv~|uwx}vtwv}wx}{zzu{ypvz}osuxt~vwvrslvx{mptrzukzjhq|opypwqlwwqo}vvozwsq|w~|znruo}u}s{o~sp{y~lotfwtz}~yy}~~xx~z{yzqw}m{}|v}|yz|}y~q|xnqw{twyvvy{y{~~{tvox{~z~~sxu}{y}vx|nzno{nr}xnry~tw{}|twv~}}zq}wt|z~y~~vuu}nq}zqq{ozvx~}}xwzuttysvv|zuuxqy|~snykwwswu{u}wxy~z~qwroxjvzgwpru{vrntkquqxru|}szqxuupo|tvqxtx~v{yw|v}yyryuytvsvwx|{|}~u~xx{uww~yx|wyspuwlylqw~vu{~wvx{tyw|xrrrzrzzmwnq|~rvxr{{sq{p{{||z{z{vzz~{zvuzqzyz|~~~x~~tyww}}|v~~}uxytztwsw|u{|~y}z~v{}~|~{~vw}u}{{x{~x|sryzwu|||~utr||vy~{{|~xy~|}zwwxr{{swzz|{{s|xy}zt|z~z}{y~}~{z{zz~{~yyvv}{}z~}z}|~yv{uwusy~u|vztxrz}qu{y~v}{}~y~|}{|}{{wxq|sx|tyw|lyptxzx|yr|r~y~}~|{wzw}{~|z{~{x|z|y}{|wz~~{~y}y{~{}yy{}~|}x||~~~|||~}yz}}z|}~~~z||z~x|wy|~z{~w}|yzz~zz|~{z{}}v|rzx{|yuts}|{ww{sy~~}~{}~zzz{{|yyz{{~rv{~pymzy{xy{}uy{~ssq|zxz~}x~z{~u}{{{wy{v~}xx}yv~y|z|s}ptlpuyst|wzu{{u~wxuwpzsxtxu}z|sy{}r~~s{svzr|}lwr|x{z}yyuxyv{~x||~~|tuz|z~vu|yyww}x{|vvuxvwqzzu{}yv||w|~x{o{ptvqyoisi}r{zvwyy}pyznwy}v}zst}{yxtqwzehpf}v{{v{v|tv}|z{~q|tt|{}wy|~spxn}soq}tvsy|{{{|wr}rrjsoo{ruzt}y~uwx{wktw}qmoukuz~{|rtz}su{wyz{x|yz~x}z|s}owspvq}pyqzux~{x}}r~myvx~x}}}}y~|z}rqs|gprmyruyt|x{w~~}z}ty|z{m|rrxw|v{xwyy{}~x~|}y{y}|u{w{w}wwz|{y}~}}w|||{xw~vuq{~lts}ww~v|{wy|x~y}w}v{ypzutyzttswwvtvs}o|xisqjtv|t}sw~}}|}z~x{|x{vu}yyss~yv}wyy~w~~w|w|{|}z}y~~y~}{|}}~~{|z{zr~w|zvv|z|{~v|~z}y{n{{kyo~tv{u|~{~{}xxuwzruxx~yyyw}yutwn~vsysq{rxvyzy}vyw~{w{|{y~}{}{|t{x~orvu~|vz||{|z}}|{zv}tu|svxw{x~}~{{x}y|}ysvzsyyovt|kvsq{o{mrwuzw}|wwv{xu~|zzpvunvxqvr|p~itxxxwyy{{v~{{yy~tw~{wxzuvy{{}~sxxrtqzukn~{lr~{}x~yuw{yyytt~v|vs{rrtt|jqvjwuvwx{qwx~wrxuotwpxy~z~{}|z|~yz{qn{~rqu~ottxwz~{~yz~x{z|{z}}~}vuywspptfurv{vxuzonxy{x{qsw{lxys{tsrw|syut{{kuul|xlrno|yy{}~}|{vyz}|~yq~ksw|u}wt~vxouz{yyssz{ox|y}zzxv}|vu{xw~szx{zu{qzxwwwys|{oqsmtz|uy|||xw}~}}~z~qm|vmnz~r{{{}~yzyyppzu|~zz}~y~~xt{qymwtx}}|x~~{||yvuym{zy}{x|}zxzovur{z}||z{z{{~zzyus|yzy{vu~uw|~{}zyz}y}y~|{w~wz||wvun{u~}y}}zw|x~x}~zwxuoss}z|~~||~{~z}~~yyxs}lvut{{vyywyxwzr}yy{{zw}}vzuyyt|~tuzuy||wzz||~~z{~tyzw}{}{x|z~y~x}y{x{|~z~{www{st~}y|||wu~uzuwwyw}x|{{{~~~ttqvx||{}xw}vuyy~uyux~~yo|t~x}}z~|~{{{zw~wovrxuzv}x}o{rtquoqwrywyuzxrsnis~mw{l}{qyw~uzzy|tm}lxpvww~{}vvy{txuxqslwj{oxwz~{z|wx{pyx{t{upq~o{|u}s{ywuyp~tx}zyx~{xz{|yv{|uvyx}v{zz|}~y~{~|}||uwtv{rywrwpu{u|vzswzz{s|u|u}z~}~u}vunwozou{zxz{{y}wt}{vr}t{u~w{uuqwi}nnswxwzt{v{{|x}x|s|q}tnyl~zotwu~x{x~yyw}y|x|~x|txvs}zs~y{z{w{~q}o~r}}y|wyuyyu|~|zyy~w~u~x|xytxrzs|~ty~~w~}z}ypwt}u{~{|rz}qyt~y{w{uv}u}zw{xwtyrzyy~u|rwsvz~wxtt}pyw~wvu|s}szuyu~~xupp|pxuzvwvtxrxvyu~|~v}s|w{~{}}{|zx|~~w}ww|{|}z{~~}{{{z~zzw~u}~~}||xxzy{}w{xx~y{||}wzwwzs~szp{r{o}~q|q|vrurvqssswt{vywwsysyq{rytysy~rzszly}osmrquuwwyz~{{ww}~wwsu{x|}}{|~uvysxsxswrx|vxv~}v}|}}~~~~}~{}|y}xz|}w~|z~{yw{zzztt~v|xwwyr{qytwv{|~|y~tztquovnuoxp|{s|u||v}~wx{v~s|q}s|rwmqxmvpwmvmuuk{o~q}t{~x{q~}ty|~wuuxp}r}|vzr{wrvuuz~q~rv|z}~|{|{y{y|y}u~tztur}s~yy~x|z{|~z|x|wyr}r}}pp{t|u}xovssnwvurvtvu|{u~tzsustwoun{i{mq|n|n|q{s|{tvr}u{q}twpxrwqvvr{pv}v{s~~wxv{{x|}y~~{|~z{{t~t~z{{|~x}{zyz~}w}yy{wxuvvs~ry~z|{{w{w|svs{q|ool{rwpyrvnsurzwx{rwqsqrrqqru~o}~s~p}ozp|m~lxrsxs~~z}{v~v}t|vzr}x}y}~|}z}z~z~y~z{~{|z~{yz|zzuzttuw{}y}}s~|u}rzv}x|t|txtxvvtvvsyo~r}rwsrswruk|~k|zrwt{s{p|nznzozowvrvs|wxwtzxtxu|ryv|zztt{s}ww~ww|}zy}{}|~y|~|~x~vv{xvv~z{~{x}xv{us~t|t|pr{q{py}m|~mzpywvxwwuovsuqvrsuvvrwsvlvown|n~j~kzsxwp{i{hzows~x{wyzx~{xvxysyqw}s~|y|~|}wzxu{w|}}x{{y}yz|~xtz~z}z{~~{vy~{|{xvz{yx{xw{tvy}yw{w{wzx||wxop~ls~u~pzqxq{vvwu|pt|u}~xzvzwyxuzt}r~{xxv~o{mupxozx|uuv{}{}s~t~qw|z{z|}yxzy~yy}{|~~{}~|}y|||}yw{wxt}w~z{|}tz}zwtwwvw}uvour~v}zyu|tv~uwyyo}m~lzwyy~zy{}v{rtpuozw{v}y{{u{rwq}lypo}twtw{qzuxw|}~x~~w~xxyytozm}szz~{|}|~|{{ztxv~~}{|z{vryn~k~qxttyxw|{}w|svv|wyqxwtuyt}~u{v}u~yttvn~p|i}mvo|s}yzxryoo}yw{zyyvq}u{q{q|rzxx~}~|||xyzv|ytz}p|luws{~wz}yv~~uxx|w|}xx}wwx{|uv~yvyrutvvqzqwo{}qs~v|}{y{szqzuw{w{uv~{~}||x}~}z}zys|v}yzy~yuyyyzs~rw{|v||zz{|z{{xqw~}|w}~|~y}~|}zw~~w}}}~|vy|r~qywzz~yzvyq{rsy|x|~z|{z}tyw{s{u~u~}xzxvzw}r{vzl~uusyyywxzvsz~w}uzs|o}t}vqx|wxwv||~{~z||{{w}|zu~{}xz|z~w}||}x|w~v~t}wwxzz~zyuzr{o~y}y~}|{zyzy|z}}x~{qxsyvwy~r{q{wxts{mxw{~v}|xqr~xx~uzw}x~zw|v~}}{}~}|{{{y}|~z{zz}z}|{{|x}wz~{~~z}{}z{}|~xw{w}~z|}}}}{}{z~uu|{}z}zr~{rzszu{{vrwtxotwpzt{t}}t~zsx{{{}{yyuxwyz}vy~yzx|zyz~u~s~v}u|zyzy|~xv|}wy~|w~{z|x}{yzz}|~~{zzzw|y{}yxw||{{{~x}wu|uvw~zzyxuzq~s}rzx{t}us|vtzzvxwsx{qr|u~}v}yqts}}vyw{vos{p}sx~}x|t{vt}y{|}z|z}{x|x}|~~~}{y~~{{zv~w~}{{wzz{x~~|{zzv|~wwz{wzvyxwwxw{{~~w~}v~y}|rywxvz|tz}llxt|v}}q~pxruyqxqyo|ppxww{yy}u}uxxwxw{{wzyvyz{y}~{zz}yws{w}zw~xw{z|z{r}xz|z{{{xww}|}xy}yxw}{~||}w}}{{~xzz~vuzp~pvxtyv|w~|z}{{xz{v|t|r~x|w}{~t~tv~x|{~v|xz~}x~y|}w{{w{yyu{w~~wywyxs~t{v}wy{{{z|y{x~yv~vwyxv|x}w{{{}{{~s}ws~t|uwwxv|txzy}|{y}w~sywv{t}sx}uyvx}s}qzr|yy~xvvyzvv{yzv}z}~v{v|v}v}{{~{x~wwvv}uy}~}|||{z{~y}||{}}{~t|yzwx~x~{x~uy|}~~~~}{~y~{~|~z{}y~yu~vyy||yr{~zxwy~~ov{ux{}{~|}~{{|}{}ypxyo~pzz{yzy|~yv}z{}zy}z~y~zzv{y}|~yvy}}{|zyt|~z{xv{|~u~}|tx}~}{x|~{}|v}|{zzzy{~|}|wzw{y{q~~z}wy|}}zz{}{{{~|y}|vv}{x{~|x{z~|}zuy}z{{x~w|vy{v}y|z~z|y|{|||yz~||}|}z|{v}v~yzzv~~vy{x~|z}z}{z~~}w{t}|w~}xz~v|{}|~v}y~{}|{{r}w}||}}x~}z{z~{yz||||x~wzx}ooy{~w{{}|y~|{}{~}}}y{{y{}}{~}y|t}v{|{v{y{x}|x~}}v~u}w}zws}y~~x}v{|twyys|tx}yzu{x~~xw~z~}v~y||y{|{v{x{{|y|~wx{uxw|~xz|y~s~zz~}~{~{y{{y}{|}{r}}}zuvx|rw}z}{|}~~z|}wzz{y~zy~z|yy{zxzut|xv}{z~}}~~|w{uwz{x~|zz|w}w|}}z}}}yyyz}zuyz|x}}{tzx{~t}uw~}w~~zy{v~|z|sw~{~z}w|}|}s{zytytz~y}}v~|wv}v~s|yt}{~t|oww|zrvrmv|t}yxyy|~z}w~uzzz~v{|x}}x~|vy}}yvwx|wx~|}y}||||{{z||x~r}w|u~|~}w|w}}y}|x~w{{{}}x~~{~}}zs~yxww~vxypt|zw}yuw{u|||{|z{|tsyzp}u|y~x~{v||{wy{tzu~v{y}{x~v~yzz}z}}{yzwu~~}}yx||{t|{zv~w|z{~}z|{u|w~x~tv{~}z}|vw~z|{|wssvy|}xu~w}|z~t{zzy|yzu|}w{yxzsyuws{n}nozyr}{qxoxqwlpvs}}u~v}v}tr~xut}uyzx~}|z}y{|~||~||z~}rqww~x~|{}wwtu~|y|~x}}{}{}zzz~~~}}}|zx|}}t|zy|xp{tswtszn|svxnxrxsy}s{pyqtwtsws|o~sxx{v{|v~{w|~ust}{vuxqxvtsssrup{urtuvxp~m|ssmuppv~tsyvs}uyou}|{|~~{}wz}{||~||zv{}yyvzt{v}wz~xz~u{wxztxxt~u}wy}|xy~w}~{vw}y|~y{xwvzuzt~s|}o|tv~|p|nyswyquqrnvovswqk}uozs}wzxy{ww|zw~x|~uz|xyy|x}z{{y}}ux}~uwt|vyzzy}}w{~xy{{}v{uyzwx{x{z~{~sv}|x}}r}tz{w{s~vtyprxs|rxu|py|u||o{|o~~q|~r}|u}{vwwvustwustq~pzywzut|ns~zy|v~tsu}urnpywuwu{wyv}zv~v}}}z|yvuz}}}{~x}x}}zz{}~{~xzz||yvwzyw{~vxwwzu}y|vvw|xytyswsyu|uv}u~x|||m}no{ytzvvtyztwwskwuqxh~vy{s|}po}sy{y{||yxy|{wx|~xv}~~zz}w{||~vz~z~yxv~~~{}~||}|w~|{~u~~wt}{|y}||vzz}u{|y~xyv|||}z~}t~v|xyxuy~vxyyxywu~r{{szz}wsztywzqtyzw~z}~|v|}wqrxyxxz~}}{~x|{zyz}y~z|||w~{~|{}|sw{v{}y|}yw~~|}}~z{}}~y~z}yt}y}|y{ts}}{u|yx~x~u~||t{tuuyzttxyx~z{wzv}q~uzurw}~~}||{~~||w}w}|}u~x~~{{{{xv~vz{~~|~~}v|~{wz~v~{w~|t}x{{||}yz}}{{~~}|y{~~|~}~|}}|}|}}vw}z{~~|~}}{w|y{{vz}~x}t|y|yyv}zz~~~|||{y}{{|}}~~|xu~}wz|~~}}yq~yxwxy{}z}x|{s}y}{x}||{z~|~||z~y{{y~y|~x~{|z}vxv}zzzw}|{{{xyztwx}~|z}v~{}y~|zzx{w{}||z}z{v}z~y|x}~{~yywyw~|xp}v}uz|z~yx{}z~sz~~v~vvw}zx|}{~}~v}{z~{{w}}z~~~{|~z|t}{v~~xxyzxx|v~}|zzz}}~yyx{{w~{{~{|}}~y{~}|y{|}}z}~{zzxz~~xy}}xyy{z|y}z~}}z~{|}}{|{z}~}~|~|||z~|}x}}~w~w{~zz|~|z}}vy}w}vxuvvz~v{xwxzzv||xw~z~vz{}~|z~~~xzzu}yxyzzwynxwy|p~wsxy|}wt{~x|{tx|t~}{v~s{y}ou|u}t~z|zv~~xx{sy|y{||yw~y|~w~}yv~{y}t{r~vvt}zvx}u{|||w}}s|w}p{y{zvzy}}{|~~x~{{~yv|yz}}~}~}|w}xtw~}{{z}v}uy}y}~w}{{{|t}w|z~t~}xzvz~y~x}|vy{|wwxxy}{x}y{ytzn~px~o~{v~u~~vx|y~w|rrsv|t}~{u|zy{~p}{yvzu}w}x|}}~{{pv}zzv|~x}~~{}s{|yvx{tz~{|v}~}~x~v|xxs|yy|~yz|y~xz}zy}{xyvv~zzwzxyyzz{sz|syywtxs}z}|}}wxy}q|yzp~}{x}x{~|z}||{y|~y~uw~~yx|zz~~{yz|}zu|{x}x~x{t{|rou{zw{u~u{wytyw{|y{}|}}{}{}|x}{uv~|syut~wx{{wx{{szz}|r~}ytquxx|~~}|~z~}x~v~wx}}z{|x~}|yy|~{{rxzs{wyvzyzr}u~|xr{z~|vxtyv~wv|u~|z~y|z{}z}~z~}y~{}{zvp|wz}{y|{{|yyw|z}|yt}}u~w{{{|}|~|t~~t~||y}}~w}z~{x|}yuy~yq}n|yzs}qt|{|xx}{~w|l{{susjutsmvmrvq{uv{x~u{xux~tzrovt|swtlyz{~wv~r|}z{{x~~}y|}{zz}vty{~x}}|xvstsuxy~pswp}x{s{q|zs}~mvvszwuvp{}p|us}}rt~~g{ythk|pr{wzwrywwxz}y}zx{o~}txx{wo~m~vy{w|||uzq|xtw}}qzu{u}qzu~xtv}~|~uovzwyrsxzwuy|kpyrvp{rww{s~|uu|sx}yx}v~{p{qzvwuuyxxzzt{x~zpx}ztvurzyyxzyz{~|}nx|ww||x{|~z|vyzvz|}v|wus`vy{y{~z~pls|i|xy|u~{wq~}zr||{~{z~yz{z~}}yvzt~z}|~xy~pv~x{~|s}wv~s~tvvz{wx{qt~tw{{}uzv}wy{{zy{~}v{rr||{sm{sstu|t~}s|{m}mvr}z|x{|y}x~u}txx}{x}}{w{~qywzpunzp~~qrwu|zs|{moz{}ss{{uyntt|qx}ztwz~v{{t}~xx}yxr{tx|zz~{|{}wwmy~yy{{{yxxz~v|zv{xyx|uwy~wyy{z{~|z}u{{v~zw}wyx~yvwo|ztyx|x|~y~}v{~|spv||}~z}|~w~vx|y}~zu|u{y}z}{~}}~z|uzoyt}xzzrw}~z{xx~{xy{yw~zyyw|t~z{tyw~|zys}y{xw{{xr~}q||~|z~rzzx|tx|{s~}wyx}y}}zxxpwtp|}q}~{~z|v{txv}rzyt~}{yyzyv{t~{|{vwx|wz{~www|zzz~y{rq~yo~t}~}~zwzyuq~}y~|}y~pxuzvwzxvqzq}s~||yx{|}t|{{w~~zz}~ux|yz~uzr}x}wzv|yr~}~v~w||{z|{}|~zy~}z}{}}|}|~~x{wyvw}t|zsvw}u~zu{~s||lxqzu~|p}xsxo~~}oxxqrxxyu||w~~}v~z{~}||{}y~z}~}|~wt{qxywu{p}}xzw{|{~{x~{r~{w~st~}y~uzwuxxx|xs}{|s|zssw|w~{x{{t}yz{~vy~y~|yv~{}|{x~~v~rx|~z{~|{}}w|s}|}w|~~}vvv~y}{}v~}z~{z}y{su|||uxvz}~}z{uz|r}}x}}zw~x~}q}}tzv|w~|}w|~zuy}yw~yyz|yxyzx||tx~ww{p{xy|t}|x~{tx~y}y{yv}}|s{wvw|}|{}{~r}svv|tzyz}z|yuw{}~t|zy{t}~}~wy|z|z}~x{yu{|}}uq~{|w{~zz{nww~v|{tv{vr{t}tug}z}yr{wuyruqlx|{l|z~{vw~{ivnwpt{r}xl|g~svpyy}u~{mw}jyo{vyvup~q|r{xyy{~z|vz~x{yz{v|y~v{|s~~|}tpxzv~swvsuv~wtxjrtz{x~~|y}x}zt~uv|oy~uw}z}{x{}wtqzzu{}{p|wzqzwvp}p~orrlzwlzzzo~wrwk~~_yjzxz}jrduce~t{zv{xymrtzuvu~j|q{kuyzr|t~slrsxg}n}ot{zhryyl{o~rzsw|v}i{hwyyxrx~~zo}|}{z|p~v~y~{yyywzypmrq}rx~p{d{jptp|kyj~j{szi{}usy{kfou~ztztwtyzs}xq~y~{o}yuzxv|vsm~wzur{vtyuutmzzzwuz{ov{vx}y~|{zzxw{}yuwsys{~o~~yqousos|r||sp}}w~vuu~u|ozxw{xxv}r}}x~}~xy|vmystx~wwxwxpt}v|{{vxy|yq~syu}}ws}lr~{}|}|~y~u|yw|wxsz}}||wy|{}~xywy|yx~}}zyz~|~{~~|}~~~}x{y~|{yy|w|xq|qyy~||yz|o~uz{u~s{yyu~w|wxvy~st}rzt{r~v|ktyq~q}yswzz}m|q}xtr}{~uztyyzvuwv{{x~xu{yz|y}mz}jxrzzt{sy{o}q{s|ww}yy~p|yx}~w}~yt{s}~wvy}}tt|ys|~z~u{x}{r}o{{~kwkmuvv|t}znluz~sxyqvp}{rw|p{{{wyyowwvrz|t~}}~wr{}uw}m~r~}{~|}v|z|v{wyzy{xzwtrvu|{|}tu}zzx~sztu|o|yrut}|nyvqqz}z|ysw|i}nvq|x{uxwxu}vlsxvxh{v~tywwvwgvku{mwzyxs{zr}s}}rrv{~y|xxrwwxzsyx{ywu|r{syt~o~|}x||wvxsy~v{}tx|vzswxkwxf|ynw~o}twqor{qszz|xz~|wmw|pnrx}x|w|u}x|{z~zyy|py{x~}xytv|p}}s}s}s{q}o}xqzxs}~z||ux{}}}u{~{}u|x|z~}uy}swm||ox{z}|x|z~yyyovwyv{wml{lsjxi{tpsxvkyupv}fz}tx~mq{zr|{vfqriy{pu|xdx{gzm}fz~wyy|sxv|~vsxz}x~vzs|xz|xw~}qz}r~tt~syxzw{yt}ptrzr~xxzv{}~|y}yv{u{~s}~{|{z~sz~}|zurzqs||y{w}{~xtzynorz{s{y}v~vww{wuvw|~v}s~zwxrspwvzzusy}}vvw|e}e{kstv{yx|vz}{}}~w~zlyp}}vy{zxnqntr{{oyww}t|u|zswvvx{|{}n}yt|ut~xxuoyswx{~~{w}}{y|vzr}p}uttysnt{svplw~q~tnzrwynv{sywxs{ppw~wv|uw{uzq}wyv{|~x|{xpoqxwzg~~|tw~~z}pzty|zor|swvwzgmwxs}{wzwypx|zyw|p}n}y|txnylw}g{yttxzyuy}w~{}{sz|rwywzuz{u{s}xm}mofq|u}xy~y}v|vqrr~o}u{|{vx~stsyw}w{uv~ujnxw~ml{vvzq~}{u}zqu}}x~xt{zt{|~qz|utxwwwx}x|}s}{~sxtwz{xov~~n|{z|}~{zy|wnzxsoq{}~xq{z{qs{j~|jpy}rvwzz~vyxv{{yyzpys|y~w{z{}~x}|zy}xz~uzqoym~}xvxmpu|yrxpyvt}wsv|||zl~|v{{w}~{ysux~s}s{wwr}ifyvlqoqpwzvo}qywt~yxzqyxy{|{}sy~zuwuow~{px~kzkvps{utumwtxs}zmvltuy{o|lhwu~u||s}u|v~s}}|}~yw}u|}zv}wq|}x}w~zyy~v{q~y}~v}|wz}}|v|wzmxuk~{|yowclpsgjxqoxnysx|{uxs|x{{yywx{wsyz~ysyu|{y{~|ss|pzvmnt{t~py~p{fz}kyzsuvpmyyr{nnzstww~wwv|qzruxwtx~}stzyxr~t{z~xk}q{nvivpw~o}p|{~{~x|xmu}}wq~zr|ws}jpyvtpsqvwp}xstz~yulwojyj{w~}prq{p}snzpvxwv|swtqz|y|{}~yvy}zt{{xn|sx}{tr{xu}s~ty|}ty~snixut{m{uk}x{{vultzov}yv{wt}~z{z||xu}~{|r~~mxv|{zwv}~zuyyxxyvwuux~{x~q}x}{xtwmruvst}nnrz}n|txszz~l|trsw~x{~u~~r}o|m|p~{~{v~{u~{wuyx|z~ryt|s{w{}twwtn}i~tvtmptrxjv|ir}v|uyo|yvwq||zxxzv}v|s}~usuu{~v|u}{u~|zyn{|tl{x{y}zxuq}~w{tz{v{wyzvyq~tnx}pww~~oxuw|u||}{{zyuw|}xxquz}zt}uw}xz}rtyy~z~pytvxv~{sww}rw~quzjw}ovsvoo~wq~{|}u{p~~r{zyoz}{~tww|q~l{e{m{w{zs}|~nw}wuu{u|~pxo~}y|t~u|~p{xt}vo|~vyw~~~{xyy}l|zwy|ozvw||sq||}uw}x{j{h{wtwqzzl|owv}{lxp~q~yzr~x}zyxyq|yv}w}|rutorup{yvwx}zsxj}vuy~}syoxr}~l}vr{xvz{x|yp}u}{{v||vx{|voxv}wzz{zx{uzxvzrjuow{{~w{{xy|r~zuxqut|vuyh{ry{rhv|~o~lq|yxm{s~l~x~pvwz}y{ws{vhxtyt{~}p}t|}b}rurtzhzuxu}zzm{|z{t{kz~x}zzxnyZn{{zvs{q|owvn}uz}tix{o~cue}qrx{zyzuw~wyz~~{xw~}strt|}uz}wvzrr{}v{k~yz|ymw}zq|rz}}z}~s{qqxy|x}ou}vpputrrywsv|uwt~vvx}}ttxy~|}|~r{|k~n|kszrqlngzqyym}zv}tq{}zqzr~w~xzttw}r|ipsnz~ts~tx|x~xpwt}zux|ztr{u|~vnjyv|~}}mwlvo}gwoy|}xz{zr|~vt}}|z|{zzxutty~wzozwgtv~{zzxwsyrv~yzxx{zxx}lxc~unvt}k|uwvorimyo}~t{{ux~tz{x}wk|u|vnxuzwtov{lw~x}n}xul{v{sx{xzrtss{lkmovsrz}nwyvl}my|txxw~yyx}luzl{qys}x}y}{|z{s}zpsv|~vxq~u}y{qzmx}o}t~yt}|wzs|xhrixw|y~yu{ti}}o}v{~{q~njw~mxrt}{|xws{w}q{|s~vt|t}yspvzztm~rvvnxjurvnnuws}v{nut~y~y~||}xyyu}kxxvv~y}vzvtq{wywzquo}}{u}wnynxpvvx~s~~ryq~wwoy{|zuo~~qyzs}{npmp}u|wz~ns}a{gzuzuxxq}y~{~m~}uzxo~p|rxuyxw|}m~swpzg{vrp{~|vrsp{sy|}{w{q{svzt{p}yp~soxnxfww~|}rptlyz}~{rz}tsr{v{vq{twtw{{x|u}p{x{p|yytz~rxxuxz|zn{{uu}|{{{qy|o~zl{}~j|tu{}wuzr{yv}yz|r~nr~xqq}svvh~~~v{s|ruqev}txnp~zoyqy~wttr|y|v{u|s~|h~xr~osxdzmsuxt|xvz|qx{zyzzy~xyzp|n{{szi{gy~t~y{ruwtw~s{lww|z}wi{|p{}{~}w}qyqw_{aqpswppy{ux{~{zz~|yo|vuvv{t{{}pusw{{w}|~ut{xomwty{}ysvnxwr|wu{|wtwrg~pv|}}tzpuz|{}|~ywpv}{lvpzny~|eyvev|q~s}s|vqyrvwtr}p|j}}h}zqyw}|{|z~}ww|rx~zx}}~qyo~wu~y{y}q}tto{s{x~gz{j|rjlm{qws{{vu|sxzmn|}st}ywuzuwuw|su{z||~{wyu~q{zs{{zw{zrvu~rzyv~vv~}l{}m|xwy|~rz~zz}{{vrl}x}~~w|il{o{~r|~y|~{zuys{||~zzvurs}q}ty~{wrznvrrztrzwo|s|xtx}}o}j}~ymtz{~trsnzgv}px{q}~}u{y}~zpwqzvwx|~~yvq{~mxv~owuxw~vu|y{~kwys}p|}}}{rko}tvtz{n|jq~twu{oxfvtrzxy}sz~~oiyxszu|~v~wiz~{x}~y}wxywtz{|v|~w{z}{xwz}nz|{}zwuywuw~}|}vy}qi{~r}zx}|uz~ws|n{|{t}zqx}jvvx{}|qxwst}~xv{x~{~su~xv|v|yu{yvxyqyvpx}w{yw{pwi~yzy}}r~z}y|~qy|r~~k{suqz}wwx{x|zyu{xqs{{{~yz}{uw}ux|ytuwz{yvzq}uv|zhutzv{}x~z|yxouqzt~~sx|yvxjx|z{xw{yux~rww}|{xtxzw{y{x}}~u}v}~v}}~yvsu~wp~~||y{|{w{uz{s{{}r|}|}~~or}vx~z}vypzxw{}~tyyyzyyxy}{~~z|ostyvo~zu~e~zq~wy{}vyq}zs{y~|z|y{l|ywvrtyyz{x~vyys{}x|x~y}xzzymyx}{vy{z}u~|rtu~~m~zv~www{wxzz|uwp{w{vwp}{x}}x||vmu|yl|yqvyv|u{uks{w{}s|u~s{|w{u{v}wqzv|{{n}wym~wz~}v~swuz~|xw~~w~v~~o~u}stv}~z~p~}|vq{yz~~ru|ww~}y{~zyuo}zuyyx{u|zz~vtuo}|}vvptuywpvw{x~w{x}mxzny}utlo~~yzwsqvwzxxyv}{tr~zx}~y{y~~ow}sxozzy}w{~r|~rsu{l{{u}}v}}~||vyxw|swxuzvz}|uy~xtozzyxl}zrowzwr}||~wy}zy~v|}vyv~ryztzvqw{w{z{{||uvw}zzw{|w{||~zty~~x~pzvy{|ryuq{yyz|vy|yuzt|yyq~zp|t{w{|tuvqy}{oo|gytww~tuw~yuy|wuz|zyz{}osqvy~z~vy|s|q{xpvztyywvsy{zz}zyzs{s{wwx~|z|}x}xwtvm~yx{}{w~~y~}q|w|owv{}zzz|~xy}suzsz~v{ywvw|vpp}s~x|}|~|xx~zzqyy}z~}v~~~s~~hstzw}}y{kzt{~x}xu}rxztvqxw|yxu}}pu}oyp||}uvz}xwo}yzyo~{}xyot}xmunu{~{x}xyn~wptx~~y{uzpz{v}xpzwuyw|tv|}~|vsly~m}|ryr}{|}x}rwmwr}}zy{~{z~osnvwy|yv}}y~{mzj|~ox{}y~s|~p{vt~zu||v}{{{xsi}~r{pyu|~}|~~~}}}~~}|}~~~}}~}||}~}|}~~~|}}~}}~~}|}~~|}~~~}}}~~~}}~~~~}}}~}}|}~~}||~~}||}}|}}~~}}|}~~~}|}~~~}|}}~~~}||}~}}|{~|~}}}|~~~~}}~~~}}{z{y|y{{zv~{wmsjuvwx}wx{uxxyvvxqtyrqsr|rw|rt}rn|u{vos[^tU]r`w`wcr@vuOFg:}>]eTv@wwsu[-Mء3|zRoyuq[fksev~eewYeuioesgwbxl\_gS|hzxqh|y{bgp_}Xww@i_xzx{jxtl^fRPcVL][a[vjj}Wrvlhoxklsi}YfwJn|RzwMoyV~pZq{OY~MImwP^LRazppuzXqQuo~qXukrzz~p}wwVt{vlvnw}_{qyfs{wk|vvfwq{qrylqo}uyakmsxtr{|t{ymsuaxWr_i~drrk|qgt\h|vy_qfoxyyq{zbyyvgy|}{izvzxvq~v~v~y|~vuut}gv~~|z`}nr{}{ttp|kl{n}|}|w{klnzIephnrq}zIpUi^gvckpLcqgpa~xqqoj|x~j|f_{dwWnmPqoly_[vtjvyutiqzozrewnd||t{jcocwia{kgf~lprkmqtMc}nyduxo}armm}vqo|]kukj{qwwsrxxiViodqroodTnu}enwjuujrzqnww{o~s}ic~W[jtbfsvamqr{}pnlwsdzxmnwy~mpyx|{hbmYryla`gcfgfcidwu`puypbaVk~gWvvjk{k[otq|imҰrUtwp{eeTnr[guwqxtuwlrz|xqdkhqh{zyvqyfouqwwe`[Q_}}op}nwt{v{Zekelmkjefwr]kW]yjrnqfOXay}sw}it|vkv[jr{bPjstj~eдW_}yej__l{aUL_pyj]kn`_dkiVJip}yiȗfKLXei^NB_qgTJLSd{yZ;>d^@%VuH3`wkXScl{ǩ|YM\mW<6HY]O4:Hf~{||~H Nr64\hB5FVrٰyM2;T_E08JF'.QaatӃ;/qe,$[PXyܦ̞`:CfrQ! #Yb:$VxDSӦouvy[ 82;qzM()bk]ωlsUL8Ijj?":I<4j{MqX;TȯuTڧì{xb$'kA2aW=M`{ DŽmfBXnC:\tD5RljN/VńN\Żdг|X_z6?V04Rh~ݧjgҏSAc\EK`mj^OW`K>QeR{^iȟɊ<IV1zuH3;Y{mص]Roy`DJhxXS^_LD[|W_kKmor}}f%lx0T\>4CWkhp¾eUmnRLYy}fQevfHDms[u_hqIMu?@uZTbrf^wojΗdboTUm{|tmusWUmr]spf}{m~}TVt}SHbue]io_NPzxmϱ_v}purica[]sn`[nq^`yus}z}cfi]cutmntra_igmukxvq^cu{ibrzaVlus{gj|c_hw}lb\einrlimtxzmwtru|hv~op~q_br{c_{~rrz~wxgjply}klq}qms~c_kz{yxzsqrvoaurgm|lk{mrt}}uoyvym{{rx}pju~jbl{{w|{}rymoor}}|rvlqxmmqoolvpkmuullnoks|vuyxorw}}ylbnfan|yyw~}~rvkvqoospqqwsnuuwoprz||vx{szwhmy{}~z||n|tjzzwslsw{xmn|zw|||wyzousoxvsvzz{~ovvbyo`dqer{yuz|sjes}~{z{x{vsxilwzolvx~wq~vju}|vsykm}ki{}y~~rhs{rnyuo}|zzzwt|xstzthoy}wknwxqrszw~}t{mmszopysv~~x{|{mr~}qozzwvxvvtusv~}stw}tt~v{o}yy}~mlqsspkjzylfqxyw~}}~~uho|~wwy|yzu{}xxv~zxtuuiowroikjpty|~~vkr~xsx}|~|utuvppyuokw|yoo}~|vunhw~whlv{|tuyv{~{}xsuqr}|vkmpjljmfinroiqyoruzllu}{{{xw{xsrztvyrjkmumfentsi^lz}}vxzxjo{ogku~vruy{w{}~su|nckuyiZbsxromw{tnozsgfwsou{y~~}|hdky|qjgovywxy|pqzqpx}torurnfiimntztnl}xornbs|sw{|zyxsttnoihimmptqrlow}||y|ywutv~qfgx~rqz}|zuux{yv|}~z}w{{zkjnvokjlkackwojnpw{w{~~xrwuxwqmn~e^n{{|vqy}~{tpuwonmmfdjtw|wnrw}|vv{|~z{yh_v{}{ur}zvmy~soq~~~tw~{xpxspu|uns{|}~|zquvzysswmqzil~{vv~{~y}{|ottrqgzyhs|^[t{t~s}}nyoqy_arzvnv]s{qpok{tw|~irgTxfdhjOfnPr~pz|cK^kxobk{{e~^iiSqrkgwgWp{qlbkuhsioi\xfTNo\m}w|tkslucpq~dywx|{wxcnc{yZ^sqVz[ny[eFSjVuYzssimm[yz|{jsmiy|ruwk}}{|vz|rxnc{ufpz^l{vuxr}~ue`^t}{mnvyjhkgdy~f[{huwg]|lkoqzk{~znhqswe~ys}iirvrorlruwxuty~uspyfkzlwabuw~|ugps{kgrhsnoyf|irkrptyziy{f}xvrwkabt~yuxyjsi|wzkkl|~ejrh|pxx{iyfei{t_|qntcjRxzfx{kftsyuq{pemnr{p`k~tzuo~vy}~xtjzwo_xxwqn{}zlzuznb|wv{{}{~zquxvwweo{y{~yg{rxru~tnz}xvot}tx~|}yzzn~zv}|phftzkoxdhjrn~uhvytnur}zmt~rznywefiOnhgqbynzmv|uwoyxirumu|}~s|svzvqwtppzpq~z{josu{uw\trbondspjj{ak]z}julvy{zyzs~{ysy{sw~ywsyuxwr{}{t}ztqxqukm}v|~pxehmhvkcxmy~h}mnrx}z~xhlwuxjxoyxmds{wvzkz_}yuwyvtxiofwo~vtwymy{qo^kustvwxz|x~sooouxtcvxop_ek{ysj|p{eo}oqylpf{}wlrzl~xu~o{yj{c}yuzzzy]wlyqlzoxsyt|yrvwqswyj|jozj}wuxmxxcq{vorrjyxcodknogns|ky{owzmdgxzshzxiys~|wqwrv|ya|y\U~xwvpzihvny~x~tk~|xuq}xtstxqsqppus}wuxyvx|uirzusivyxim~onzutv{y}}}ynvrt~exy~qw{trs~yi{u~oy|}~yxqdny}|utyux~qy|y|~svgvmoyrwiqupt~cs}jtzy^luwdujxwz|k{z~wzy{xrngw|u~wrzspiWg{wt~ux{{q{ofbdz|nhrwvxstpu~y|t~st~wtt~hqstsq}kaplfxis]fvty~~{w~uqwynsw^ttlwxt}trwteuki|spu~}}|xxp||w{{|o~~|}vx~}}|}xgwkcjsotqmlkr|y~xutguv~yq|||x}uop|tnlzxYxmmvz|uwoy~hlyrsxvxwxv{}zs{npuuq|mo{}}|{{~t{zzvs{ow~ox{mrolt|Zfzljzlwtfi|{vo~q|vxuqx|lrnrwpkwswyo{vky~vx{mw|nonvtxipdnyqjw~z~zwohoYh}vnywwusoeyxspsxupxv}}y{mvontnztpptpyqmuaaalxmzz}rwkpzy{urw~qr|mlriufla|nhhzWi{wo}lx|vxsuo}rTpvly`Xrp^xZLmaU`sz_c}}kjqxottksommjWm|XW{cplWarth|YQxr`Wf|[amej|xkakrovsl_Yl||̦`?kci|}_PTirio{XW|[^pr]O\wsjdqwqlov}wc~t8JřWDYt{rO?KYV_QNvk{ǬrngrwU$+g}g?Frnuz}zP(gn-+ErY/2GHWvLݮywۓlui\ee@:WcddsvepϺ}}9BfAw{e9+#*]dduܯtRY~}[WZ_j= LotQ^~nsຍrКdCCooJ5g{J,#/fۦբkAKllikQKFMB! /mupvpĽnyw'HG[jntnH0]߻ȩU%(ToqX==HQB0J|omXIj~U$`pH9\rK:V㼈{lw}f!Xw{yWSWefEDvxpw~yoJ3Gtq.KW<[_Sضzf̥vgU13Ngro]UUWDOƣs_unz{_Qbx= ?uq4P|O*zeˤwcM@QPczbD6FZ\iƻgWr||qlp~|= 3o-WsmhPAFȻe\Y_]Ves|u_B8Sj]g\AlѮri{xfu&&~x9Sosl[D\|̢pNbwxlQN]uH?@Xot^BWӫx}w]`^]fkd`q`vƮ͡[TupA)BgyaPIXpYPZ=E͕yvof|dWrbi$7qtslTU|xڶЯ}šlalo`B>Ie{UK\iI2yw@A}߽kTw`|-(Cit<7iyjhF@nŹƲέ~_Z\\L1>\znHCG>5>ly]FUǥ|kwxZ}])0^rT?SdncXSe̵¨ydUU]h^acWB:JZ\LZo[\ɽof{q\csS>:HWTLYfj\TTl˩mUZkbVCF``MKSO>@eiIPȺzn[dyO/+6Up{j\SEH^ýgVfuyeQQbmh`JMXblgjupdkn~toxVM<6WyYED?Zʦwicq||fULTbungdYZo{|}~qv{eYg\QU`ir|~mzv|soyqt}uvtz~wxqoi_e|{utpur{{`gpyyc`d{too||z{ztupz}qkssaczuozy}zwwzyzzyw{{xuyzs}}~y}|~su{||{{yoy~~zvy|wtuy{rv}|||qs}}tks~py|~}|}rg}~qz{|}zzxv~y}y}wwzszvq}wou{yzvu{z~}t{tisz}yy}yyyus~ptv{zzns}snw|rzwoz{tvz|tlq|ylm{zxw}uvyztxsu}wxx{rpzos{snrt~rksojoyvy{zy}tw}~wy{{rytox~xz{|qz|}xzujvpirsin{}|yuyt~|{|wqly}|yzqs}{z|tlxqc_t}ncorv~}{y~}wx{ukyzssw{v|}qx{xokpw{fdprs~z|ootpswy|~xvqsx}}zwxq~mdnzjhu~ym|yr}}~}}xu{v~qsoir|yy}}u|~~}syo}ufjwuo|jquvwqo||||wqw}qhr}sgs~y~}qvyir~~xnlpupqzwldar~wzwtx|umrsqw|ocgjov{|vrjq}uvvypkx{l[jvzxqntytnkvzr}x}yzxcemz}sut|{{zz}zrokio~ummvvls{wqy}~tomtxyz|tw~{yiimjrwpltrowuux~~}v}xy~xwylp{{y~|}|~yqpzurpqzwt|zy}nyonys}{wrr|}}dj}zw{|sy|{uzv}{yux~qswrxutpryumx|ry{qsrtqsssy}ww}}vxuruzqxrpx|~{{yzmky|zpvysxzxzywnwurrtx|pnlxtogomc}l~rzju~rq`s{qgTyyier|mq{qkaerk{{wsqnvYuxu~t~slywtwyo}s~}|}qrqu}uls|y{z|rywwwnuxit{|tustvy{ruyovqmvwqzllw{vovx||y}x|grvcyt}nrvwwvvtx~tij}yzxspyvvtsdoysx|}|zr}qt~lt}zytuww~~u|vjm}yokr}{dhuptzsuuxwru}sruxZ_qywy{ghvx|~~wm}yxzrogqwtoosrim}rnrvrvzwdx{wmdgttny}tl|vv|zrz|zpky{nvkVlus~{zphpxohcuqrtk{|tl|mum|svy}nqux|rotNguqopnswwpx~}mef|ps~hnv}fkvsz`Rlopuwmy|{wv}{fg~luxsobqyw}womyy|x{[Gft\Qmshbeepw|zk`s{y|yzy{hSk|r]_px||obot~g\doXb}\=Sw{nfnqhvjowwvcet|[[z}idqlgt~vcbquomjmiZ\aipcfop~skrogmaPgytljrnfo~hZcbQZuygW]nsg[b{|xedxt^_ys\Wj||tjrtsqt|~umqeUey|j]ftwi__wyZ]zZ\n}]P^~qibeyzrswvebtrnkpo`fqrlgitti]{tbkzp\dq[Xm|~m^`x}eYmsehttw|zoptsz~~~y{whlkrspxtphmzscq}}~blw\Xg{xtnq|tjzurzxwzneipuwn^eltqrxonny}mn}ye]lywqu{sjl}rp~{mh{ti\_nuvrnkw~zt~{hkqni|ztozw|~||woyyihlpqkovuyuz{lcqrrtvyzx{{}{vux~v}y|vmiwwvtfedzuqy}xz||qrro}~yz|q~}{ny_fk`Sn|yvnwvqs}toy{{~~{u_uvkwow|khky}xpr{||qv~wx_wujq~kg^eznkeo}taizvpp|r~}xj^xvjbp~zvuiq}x|vy|zrzwsjo~tsjdoyunlrvnx|u{z{mlkx}tvuwutwtvwx{r{zuvzzovnrurwrttvozwxx{y{}zvrytsxy|xqz{|}y|~s|ulvzyvtwwlu}}}xvyyyxnv|{{~|~mtqt{o|xpmvuj{y~}w~~vxrjwotqryuw~t|ypx~~xysn~oumd~juyxsmxrw{x{~vzs}pm}zpxrg}ptw{|yk{z|wxy|skry}o]ispqmnp{vipliy{h}luxofu|goognd}vejv|wnajwmxubeqikq{mTrkd~yk~}x}~kj}}tuxtpkkwf{p{g{~tzyvrfg|gs|xfhyrpx_zitxx~zhsw~t{z|udoegjrkjY^j[hh}afv{z|vxw~m}jvoo`qz~zyrn}isiY`{utonysgt~}qmwfs\yk~suxwq{zzvn[ps}z~yttkosvst{jkxnoSVrXpqvWwgnfo|}up}ujlgx~f}}}vu{ostrrtszytsog{y{{hzxqz|hgc{ivumvrh~_{_{bwktrk|ivwy||}~m|ywwyx}ujdvz~~tzvqyt|{k{u}{olqpf{qnvypzx}{{mw{zv|tv{slzq~|vr{vo|qpywlq~|pm{|k|el|yrnivk}mvvnxv{qtxv~{ymlz{~wyvvut~~wwomt~mazt|mynt}jn}uxr{vppnlnku|~jscipqsk}wijr{uvtxqvmxqkcy|~iu~|zwz{qwzq|wp{rw{nxm|}|~n|sl{cxikvfbxhrquwv|{~}w{x}uy~y{~}~|qouqyvw`wkrn~ytrzvpq}|~~qwy~qovur{|x}wzslzzxqywyqwq{znuvdcmzfp{{}||v|}wXowlz|wvuxqsvn|kmtlkqop{rq|wrxyuw~v~z}rt|vxzzy{ymiyxvwxy~~xu}ur}m`ny|{hprpsm{ymvouww}t~u{~wxvzvu}|loorlr~kou|osxmsq~|d^p{xcdnvysmywvykrwz~|qv{~v|jvvljxzg`|{oi}{uwmsx{_Yg~bVcw~uqxtqw|z}yzwuodcx{pfgnyiaxy{}|XPswX[k~vnl|ql|}o~xzhhhqwnrwogmmvrgt|}~yuUW{VLitsvwzkip{|w}nv}o~gdkjcj{ve`fmtaWnzgk}wo{t^[|WOj{hq|jVoxyx{tsww{n^domijdm`i{f\Xf}hjv|pbbwLPsaivtgn{}lsoprmvyddlkgmoh_q}mUUtb]}w|cVucMcldponxsyyxwmizscrrnvug^pkosl~gfvofv}u~lz}uzkuwwh`z}wp}sjnzqv{z{ittwn{~ug}lizspzwwt}fqq^mc}{uvju{}ik{rlxkavv}tz|}{zzzyot{yxrsuvyxtovxwrntkmqqg}xhw~|v~zo{okt{zix}xzz|{~y~~~{{~tryqqtuspw~rehqiyrw~~|{su{s|}~{wu~wx~{u}xx{vvmuytx{tuzzryz~}~}zx{}zv{vvx|{u|wtwv}|}~{{|u}{mx}y}~xtw|vyuvuwvkyvqqoz{trly}uv{u|sss}}zwy{}|z~|z|~~~wtzyv|yvxu|uvtrsqwps{|spy{vpyo}z{v{}w{~y~|uw~|z~{~|u~~|}}{{}vy}w{rq{xw{|uu}w~wwsv}uxyzw}w|zz{~{~{w|w}zv}~}~}zyqz~~|{w}w||y}~ywz~zs}~wxy{uwssx|{z}~~t{~v~zs{xx{wu|~~}~|}~{{yy{|yyrr|xyxurzyw|{|||y~w{|~|s{w}{y}||~zy}yy}{}xwz{x{~x{|vyvz}w{|~z}{x~~vy|}zxuu}}|twsfovdq|vv|~{t~}y|v{xf|b|y~m}gwyol~xyulklzzpnvhfyxgqywz~~p{yzwyppz|om~z~opvrr|xpz|fuz{{p{qivw{yogppsb~Uvoiq}zpk_siq|ww|lYhbZnxo}~|znqjs|}tvrnfaxUglursf[mkiuwNfimh~Paztroubxp{vzizodqvtrtgFutWmz\[w}F`aVmnfvZZG{Phklh>ZYH{~dxt|`{eJxkltW6BR~blxq{~I~G_vUm\gwe]`|m_b\M0a|^pzscTVlxOO|bYoU}hrQ:{`]qlidkXvsGpV_HOOIhizIlfjnluxg[fctlm|^t{ZfFUpSUbvR_Gvv{skbkyhiqdc}X~up~bgHir{tdFvI`l_qNoPg\WujcZhg~Gnd>ytsflaOV~iy^yymb||m{Xzms{uyr|oUq{ntcze|{y}g{o`ZwgswkiriMQÎD=xiQHXjd\OXreQg\>Ji_{}|ih^RVZWXXC@GEWegv|~iWVuwU=Jjsf^YeǿtNLo`9dsQ6?clp[(/ps|ssĜ{dfnzd@EyM5SH=`k@@y[bfG9KlfG*-jcB*,_m_urQTxhDAhdSRt~T>R}B+[ںhO{iA3Vp[8*2=ux\Xyzablr;1Q[Fi|v6Ykoݏ=9k~oIB^w> ak16BZ~_Xv}[`f4=nmFP|pT)EœG"L۴iE^|QDiVST+/Wsbg|s|uYHQaKf{Z6Y`FjҩkLhǶXA\~52ps>#2heXscDJm[>eqt\NqxPVkt|FMJ )\W.&?o}ges}vƣUMPwnK;[o_jwlXz~KX˝lf}tYVyL6CktgO97De{}d^gy}Ⱦ}m_`ky}kcTKcxjbjxwgtjYfkwrpo{sXIR]if^O;:ToqdRXirvšomlrwdNDg~\[rrbipf`nuktt}|qnjXRcqyW1/Tpl`HE`}vdJZ]TitIDmwgm~u|orrVUovbJKVjudMNgy{qvlilb}sSUqwtv}u|wpx~wajdYecjni^duttsoqwu{}y}}nsrszqbbqkqpmruqllst{g\ajq}mYZl|vbVbitvkho~mr|~gpxnqwmfltqjrut{yilgk|f^bdqpod]ilql`cpz}vmyz~|q}wsx|}uhexypqqsy||yxxm{wsd]m{{ubXpxahqebqn`gkv}xrtywyzv~uvz|rrw}{wxwrxsoqt}wrmtwpvvuiipskfwtptz||{~xx~xy~z|zz}}w|t~qlwswsijnnupqpt~|{ywvqs{{pq|{yz~ontqrofgpraiqedow{ys}y|}}~|mytu}|}zvt~{tqxupnqnqslk|o^rlcftrnwqrt|{q}svx~z}tr~wnv{uwvmooy|{}}u}nq}sjkmz}qcdntodpolryusztutttzywpnz{sw}sywp||tz}}suy{xstruqttnhghkoouqkkq{~unkmvyyusjl|t|rv~zxzyz~x~}xx{|vssw{|tjrnjlu{wsmrmvrqimvkcrpyvx~||}zyyxhjoxvsrqpuxsw{vlply~rrqj|thu}{}}vzssyw~}mpmupmow}wj\o{c]v~reu}|}tkrxtz}~yx|zy|qzzy}xikwu_irwwhagniuohju{lnr{oiuuwujepo~vlqje~yxw{t{}{urz~qozqouvrposcixssssn}woxxkvlkoryosxssyw{xty}uv~{||t|tnissqx~z{}}{{x~{~xmvzpulhsmo~rr~qwsu}wovvv}|v}wvzzwsxxfzks}t|z{qrpt{krwooflz||qws}}y}u|}kmm{pv{}z|rqhsvyo~sz\zTx|nlsnqqaww~dp~vqvdxliq^{k_mim~zwkthnw~jp}{`zrzt|sasyhosrztcnopy\womsitglgjydvwq,fc)3tg=Spb~|vSYyQ'=rP3B]}fh~sg|y}~[Y|WRlvcYrslqzjquivfU_z^7=Zy?'B{fG]qVf{\}ĐRBf^NjVD^r]fvr|hiorxdWfsNFXxxR>OxlSW{oawy}o]onk|tab|t[ql\{f\owu{y^^szkh`e{rhW[|yov{xzmw{sytq}ki}u~~zkgkvbZg|tfhxzynn~~oxntwy}xxxz~xllr~nhopqtsg^yjoxxm}ms|t|qn|j|}xrzv~||w~vj|{uie~{ccioy~kC`}joqtfVhntvtj{{twp|sOxkyt{~xkrmuza{epiaR[xr|yixptrYxwiwizlVslbiukdSvjeR`cyxqoni}r[|o\oh{|dLmgqww~jvualwywog_|gvbS^ͩ7]unyE2}kd_M]9|jB8SoohkteaZmq/M^t{Zy|R{bUxwhplhn_zsb{w}^~si_suOg]\oOzxq|mn4rɓSswKwd|{cjkb|bxWqf]nchlvsNO]~N~yQk|zscirnXquPZ|a~`Zqzwkcrbkevoray{^`bwjoFhjS{JwvXIO|uuqWNc5rS}~{a|cMWqdq}uxZrpwWb}hlpqwkryZjdvp|ko]g_pucqt~gdl}uiyfkzxqj}oVzrHxcq|}lz]n]o“Om{k^dCi͖AlmWʞ[`g}yct_pvljgjzcrujWnmpe[oxcuofw[}wByuv~Yn~hc[ljtoTpuaPxu{u`m~GrqVopwbgh}r}rZoKkh|swD€^mYxƊ;xTyh\nlzyf|s_=Pɋ9[rr{_ildvotf}zozvlndQeyu``tb9zhq~S[p`vlqhmrjD˃(RlM}{ivUgvg\r^yxlrrMP{xo\q{mLYANuvaU{qkeduw}ysk~fx+gjrPglZt_ZtJeĝLSXWrbZfGWpqRyrav{uZxc|rmoaho_weSdefzumjWtprkas_xa}awt[|WxxbaJzLx|S~wjqxpf}RvCkžWYqPbylu|UdxdpvSsg]ea{whRe_yUTwauzkamXfU_xXhMovit{spbZ]zWioa|FhqwaGgv}\loss_zsoutnm_shpburzysnxqk[o}Si}nqytekrws}psqxkmoylxib}}|ktok|xioa}}gxsbvqd~srpDq`jxjziocufyovhn|\vswwouzxocjwwkui}x}vtljq~eWkzhwy|}xrhd~m[uvwpvssz|qtvuvkjyuUercyqachOduYn}}x}zomyhhzz_fz}aJ`cXqzruv~^IPjYkzy|khp~pUjmgfz}qXtwdiRKHJ;Rha{~cRJYfV_urrdrlpycjsNLqYET\~dWN[i`dʙgL;cpSl~ollxxtv_bhj|eA`NU|oFMqlairKEhvNZtsT]xwwX\ƩpWvkk~dS_\57fc5@oaUgRA\^Rjg[|osNmi`ysX:lJ+EkC@oeOckIMnbX\~nkdgejutq/P{A2iuCKZWaI_ghlhxzaWlyzk`Am`MWliOWkb]TicWbqTZum}]>lb7IslHP~XPpW6UfRS`j5>Ï`hyvx}{S?gN34duJ/Eén6DtNG_`DSmU4AtT}rmlJFrnC?KmsE@V}GGsmMF^yv=8iY;G|ĆYgxp{udJf|`=MhyqJE]M>oc??mF8X^B>p̙_Zwr{vd;eL6`yfFIyœGE}X1L{{:?is?7rʟwpykqjtoI_k8ClaNSvYd}ľY+Miji8B}]TO{lnãfW{nmc6pL8[[Pc_\}ȼ=#^ЙG2kt`hl|ɾirˋTK̦lTlN5p|--kuYLd©qOmȱt4mk0;v`fgahcvֆNIr;bLBwh;uQPSld_k̲j%'{^2uU[irX[ޖ8&e2WG9hn6w}?8XQOwS'64ωJ=onq`Yck'-vѷG!ݡ>$b\ae OB*||JP4's>[Ǽu4QhA:olhv&5vln؞C>ڒINd^wS8e}H=Ul1PΦwM9GݫK %ԫa?HmuŗMDՀLax`^LBooMKcҰhEqӾuND^ܨ9L̐L8Xr|T[׷y\kxsnjc?^tPIYoJEԟ_AAZǢ[:ßW8Lo~hsvkkOGkd?NobJNeqH_њC,NL5UrI9MnǤr\wtxb=cd?Sy`RVdsD]ڐ0%`WBdzyvlM+Xӱb-_P/`ƒo{jDWL6SdQO\{ZRɾu(&p|=E|y^yoT4XF9w>-ùm[Ibw)0ú|DBa`Klp,/fUJnvds{tVWǽ}JRٲsJYu|zxzbKdzMSa\^f@\q{|uutvPG|Ɗ_]eese[z{SZxZXms^n\Njxnsxq{bLc~nzzcc{eg\Yvl\az\`]Hj~utxmb~nLD}X]QNmwqs_dmfu}p`jdTez_f{xiwxfTnlaxgGT{ox~]RxcReaCYjZgoyulgi}n^Yo{Z]sZRkn{suwNP}\Kk_S`xyc`ef^^npa[i~pe}{plwzxajwhj|~yropnov}vtw}}mivytp|nnxdzzv|{~yun|sltwsxxss|v~uot}ytoz}{v~xsuzt|}vywuw}{uxsr{zv|xpwypp{nk}|zuv}pvwuqvyy}~ywqvsw{~kkx|wuzr|u}xtvunluw|vgoyqq~|skoyxolu}}~wttymu}zz|rzxgjsxvrjytdkjan{ynpw}}xzqv}{txyvzzt~olz~up|vllx{wruoenzzwp{worssw|}zstukyndwljnnomhwxxwv}~~}twtu{{v|wy~wxwblxZkrfas{yqqw~xyypn}pt|wqulj|nntqs|rw{{|{u{ysz{zrvnrt~tvx~ukquy~{{uw{y{~}zxyrzru~zv~}vns}whip}edykjv}yynyqdnzovyxuwwp~|}vt||yxtwtqptxtw{|w}urtvuuxv~ws{yq}{|wu~x|vlx|srqzuinryuqlx~qt|refwzpnttzxw}}t{|{~~~{vp|qjszjr~sjy~rrxgkxzxuoyw|uysvon|~hg}}instystylrzpc~x{{x~|ry~yjq}~su{|qr{wxqxxrz}{z}rvqhz}{weoy~~vo}snxvx~~dutpzowqgp}ytvy~z}~|{tj~xyyvoyywut~obzwt{|z{u}xyw~x~x}}yrbqlkxyplox|wxu{~x~~sp}nrto}woo|vp}z{}kizxdet~siiy~nkuodmsZd|rkz}rwfke]ptn{mim~ids{spy}yxwq|~mhwgtqwvluocf~uvxlmv|ts}}zwvoruzt~|s{|wyyusrwvlrr}ywtkltqs}z~~}~uyyv}|}v|zz~zou{qs~|wq}}{z|zw{z~{pt{xxyr}{{|~|ufoogvpuxzsyhk~|~wt~sjrurmxxx{voq|ylzlibextractor-1.3/src/plugins/testdata/deb_bzip2.deb0000644000175000017500000014051212016742766017413 00000000000000! debian-binary 1343575976 0 0 100644 4 ` 2.0 control.tar.gz 1343575976 0 0 100644 1613 ` XYok+rlhqvF|o=z8[vmU?X_9N+rxzWJE`!b R[?0\a F7-W`Q{}ŸU7l\>!f9zhxu_sTK.^?hu[E.yMx6,㽽97‘\\_;nAg1{7n5ӃNM yǡMZ*L?of2ii:{0w,  0=V`.0b+6[AF.I#`L 58UF`W`kCba_ϭؤwԚa62xI7j 9nvbBj6ƣ4a % <C{W8yimAq1fϕ7rN$K#ˊb77+cpa #p$MF~{YRF(`CtZawo3 .z21l>e;/4Igk&i!4%C;@1`bp%CÇr;oj_8߱s^}j_+PqTe @ȿyY[,hCeԺ`RQ)k f]P Ŭ8TVw֬̃WB9_Mp2/EPҶӬ)aȳ_D ,Ch)M%Y5ɲ.'#7Vp^J0 mCzWjEJ2ZC-`;k)V̲SΫ:ǫu% ZQ]VEA1Y1Zr3sRuQaq o3\ ºv5uU!D!eS0aԥۢd50]Һ(>A 8BUS/%-KQRj̯"$01/(녩 *JZS[ 3_(oYTJ֬Ɠ_R>!pfjtVtL'2 9wZŋ)Zjjk'|Qz1QZ{|zTh f&RR*] K>YYN}ut3?2n,X` ,X` |ZI+( data.tar.gz 1343575976 0 0 100644 47676 ` PK/ 0@p-{pd] w {{wyUszf=ӫ~W75]01Co, igecadd,'4G{C; v?ژ r?{ C;S>e{7lM=gcK7rڲ1g`c sSk9d[V.Nؿ矋RYx# G9[}.N)k6 0ܘ`X.,Ԉ*(k9٩ $ hMePtp޻'̽-#;KN^TƒоÛ5ѡ-c)᝾wf /,B\n5P(E^2|3m(-wn(|Q֐?JCWh1 F|ݶ27V0γ,i'ؙ`6yGUje{/N! >M֜Zmwv@'뒪jF*D_L[ 5a"&}iؒi܁{4exHI:ãD$S!b 胓ukl,2͊Ѹ'"/Yp&$6WEӡʚfc0m3O.rm՚'lK_A\p@pBhKvW^g,a r\drΘJ9>6X1}k[84O|C8 '}{iDkC2a^"FL! ez0 9*GH||2Ddȭ;Q]tdEP4o]%m%0-F;JNۜs-#74Noj]d*ΚmFR%^{E9\b%ii]1wG8 b5rpj70/`űgD\Dklu0їRD(p^Lc FGrjC_sCA(_gO2RPe]/Gttgϑvr];t#S/׹Z_㶲۞B\wo ]eV+E⏩e 0n&@͗ŪcÚAZ^׷V/RMs2Ǩkr1M.r,X𧳾:,Aj8uIR!u xmXX.d^z059 ~ZZ6S-ǫP\9"h>zss,pӃVyV͡!>VqzS H=N0kES}y7VN^|OyBg͑Ѫߒ0iNVT`$kQ(J3^CppkwUCw7E?,D;γZgPW'@lw4VNTD@1DG|H䧴ig c!}bf7Asb S~l#Y/Ks QWgCK:Ew _4;XWʻZb=.qZ~lǽa?n%Z9! {r@9!O/'`* .eT Z5!\^#M+/b8ao1 _5"q]/n+b܌65\G;茜|BυO'f\@ i6$dp|M._$;/<jǔn6!_#juF̻Mhoo({cie!Q}I+W'c5X KwFOJk/W$f-wקŵUVTeZHdhE* SIot_]~e QUDO}0v߉Hb!Pڿ|JX[?]V "`:=5nvl![Ƽ|lק) 2l MjqyRb*,!@ʗָ%f~tnctr/SCiS)eY0>|x.hy; ̇3ܑOfPEIYbXd;Qo8uU "5%lA.jF8wqE[]x$Zҁl`=qW`hU_CyxVPQ$FwZԊz. ou93,+9I*gGӦԴmoNI>Ԉ.-eN㼑^VACi?e8syA'^u Z>^^HX޿*є}&l:yK@T FH0sziǯQoɤ7>#&ſ^ߠ!V4B $7.F%04X̮KqyS> BOV8)~-ռ,Q1< s"^a#ϕ|/z*VʢsJKPhAfL?1r. L ~4;i4\aץKhN%{xoEQuQY*5u ;,cq$C :T o5w:w ?5{jæR, R/ئ1B v0؀#Nـҙؑ'75,S*O"dpF{|E)A|/jcjV`yxXG};bq3t; 4_;ԼsZu1.mPM(rrwSd⃰LSiut1rΚ"3w.P&]ٝ$ UcRwx&<bG7޼oޥhLѼ6ub'/lmL`q0חEt{'k KmI9* lr{Lr>C&$hu>~ e=$ځuӷ)#:GR3Y҅Yܱ+7YHk6%e ff}n"bx`^@qTl ʘHսh}:0.7 0HE`##2L ;tQS0YSxխ m-煴q(m޼rhA5f19xRL@rxocѯjǨ{5Zh̿.ϲ0Jr/v$3R>jʯIv9{}=`{o_cM.?VPDuQC۸heh'C$eܒ_RbMGDׄRv$0n4ήțcQXZ nNZ{ q|[f7^<GS{|M%a#Tv޵#>}6FΟ y^p25*8.HُMύսQ:˟J5 * ;^L 1=5ȏ13[` 4zywR&u|9oOSx޻Ԟ{ڈz E4,#Dļ>}jvW_iGW/RvPhFѴjd,ta?hyg)RHC}<&!0|ȹ`qvO9}mSMa&aC]:"iE#'␠{O<0[>Y837;MS;Vy|D)jW6u(Jÿ嚐tmJSVL$9 >uYz^E-3}W8Ff|o;Q^bH`* GY4WDjG)v/'ƻ.(eI?JGrĐ1.lR^ dnSm2x:'*TL4ќI6o& JbR"A$vN IMRјKL^zc7"1J5ߙ-< vst+V!#RY%iL ǙW?y4 6ަԅ\I[.Q#¶.[B Ƞ}'6d_i!6.wF 8@ݳTR"Jjyh{(Oȅ?cۋ)2^}iR j5|ldR ǦWq(5fp> ׻nRӺ7 %SV\ݭv ǒR@-d˟%]]D R?>?k^煯h ^e2+7$ hW@|ʟqU27)Z/"[QY?aj Df/iG3vʖ)נ֥:7ݯit΁EF$ce >;a2m .b%6LX\0'W<wψ7+bȥO4gi1{`P_41Ͱzy&QEn\ϩMKdzKO~8x< O%º/c!JME/AdQW5ЉԛyKz)VТFy4Q]MFC9.&RQA)Svj3|3t3k|M6AE,]$5zϗ[lԕA=k&tZ&G1f!49wEjzǠ SgZre8U6 WEKt(=.|#[5d@,\9ˊN\܇+Wj_DFQKoH6Z7qy5-Sj*~ܝ ,DR-o V, :Q߳|aY~}iY=-!~3@ɟI3~lY-QEk y1OFBɛQ7u;MUՓKLhEHRX;לX{u(J L WIVDP} :Qèf |QbѾHey>L"Z>"FH TFOuPl9 X!g9Zݮ9טZpʊL[ ސ9ZYS?^RCx8$6VMœB@+}ɿǑ+$]{buiRÍ !Tr|)YE"^hBnXEs4yɋ}n?MyÕ/dLzk{Ŧt\ C2 4]^g f*}l\UR<цĞ~ZoL1" Gi, VM׵Y1vY#O8.e)ěM"Y)$9+f7GfݮGO  !_j7g@V9~8aN"C'* N8 1BE|mry-o9N|۸)Sh2aٻ,ݓ M]@KsÉA<а^y:TQF^گjHgz?%ŀя ?k+6)jc_Nʏ*YMLmU= `,E`ڲ)4p|")<_j TFG5G‰ ];Q pͬ=5l-|vW؈鈒)=S|F Љ4l SmWR[IA_׳QnZW5x`!Nh{sV`;{]ښ-ipeOU=afd]&޹ƤEN/w)%D'u;?Ki;)-M< 7wTޱȐ՞WQ<' a?~|?Zf3v/I`)ʹrQ(v!_3WIG3Ęt*Őb)N ҆WbDYSVy@?!ѽ&NߏALvG.#9Jmy9FKI;8*KG:+x?ŧGGwMf=Ԓ/"'tF_'ŷ-pMɒ"i5u6lז2Ƶ򷤭nX$ vp:WZ[sP骗-NT,:Iu>YŸ xzSW~qOt|R]oRP $xў9Uzu~vr6'Jn)byaJ5{6^A%Pc4^ 1|TzY{ړeJ& f㸈_<׎SWvI/V?@h1z:ZqtHej%k} ռΥϜ(l,6Sk yuvb|w1;ŀEleisR%ܕX6Jh80f"^mwQ3ռgP- ]Jk N,vN4g{JMr4%&H]Ap}J}Dbw|3lXu|ܙSqsyxU193˃ sIXuRV0A-[#~(SP(Fe9nK"N,[̪X=F=g/YB~Ep˨f`#/ SuKKKS"I,k$Ss5@pb>.MmM@E([]VV9ue)l*{2,Z_R+YxW@4u[t [%2"m 2NPciv>+L?LwIoe뀤D%لj ogn[2+~kEҒŒ/bP&񣠟 <hX9.A}l.܏›O M4bgártiS (9h((Obɔ yqjs̹g6OT_va)œV΂x|*x6 GR|K鳥(r"C6oӋ]f&\Kӯjh!(75ke6k .'2xYh8zˏ0n_cp/sWʜ5t:"ܙo'EZ,>3bT-W=lUS֗N۸֬* -O&G.آn~7w$dGUA<|,5bG\P,KFx3̟*ll6SF G.[0kki#1?Vr{t09&֞~xR{+攬v&-14EK)]_ *mbaͣ3"fE0'GI pjĂz ,p;+$Nhjxp?)*\pc@ϥ<`DM0GR4^ʔW̙t_P#^-R7I).$>Ql52BwTH `̸IGG=Vs.DOd)˘at:_ݺYs`24ES_ægeJ(s#*wƦ#ZhIȴЉ5RNpBH]vh$/4S|zӸ4%L8 zcFZe2o X)8r4s P| HA}kBzGZ3^b">?6l4:}ƵAB WOű@hL}[79Dhbǚ݅O&=OjNp'Ttr-C_hmUqQ#{[% V~pݰA5CO

    JX@Ia~lS/͞p )nTļEN+u`'uy=~,{*@?^ɲk6|^ SAZ,S{hgQkmf|WX_(&W|6ސ) M5.K'JB$aEҨ+<jp ZDpUa"uo;.oAz< s3ޜaĩz@ELMr'lvڶIrWTzHpUŠXu pKd7tbCZ_aBrWߊk2L/7]_lH1Ud5+ٺ~Mw΢WcT)G⥄|31X1u[S"+W[ ~E KhŷqJf B3*^43+X8 b~VGғ ^G}oP(37Ldf*dȍ"y6AwyT!IHckiF)|%zhdT+w`t)'n EmUm*Q\_i"PPeۭ'˲f\$E%o^s"&_nZoΐS:d弢6ʜ׺U^õHSe6eZ)rUUSێ-hbIFf8&89) j]a`1bc*%,5өVTrյ`=nӒ r+O4|?"]Pw%-#5N5#{:asqsRwEb[6u,3صz)X y>Z |{f&  xߚvp(]CLc"zK,h _G̋ANgOn7&WHzOͱlt0Ke SiGH5y)?V jOIw~# D!0df%c\gRCLDfV~V&5xxCg.UfPCGR+\J?6 <˹XwǏv6JQh8P)6L\ Df>[<|9O•2C=S[C\|yoƭ;,};,C$گڱA'4BbB:Mp8pa%QA١TFKUU7xCJL ԠL:L~$x{aZ;:BByMQ$xީM0wW1wO, +v6vοofngj_z? 5a`""ALĊt/>z/Y.FYոQؑ8ʅdUkL9miIs !5&6 'E' (KGx}%BФp>V '&̊6pæI܈5 4BTc) èϲ WC#]k,"J@I6ctEx@)1vy7o&뻬A4LÆO2N~m_ve ;, _^ $e#yE&`JP+<էTnLk3|%-KƳmR\Aՙ DmfJ]qnMQ@TrhZ|b2[7--m~idOb">u~tA.tl!:eE[6H+01,c[olUЙP*b:7e8o ,UnfZ/X$ ?A7]$j~\cHn}Z={Ư[0P8/-?-?..ο?{&*Rʞx0a3OF fb}s^% + uW<+_Y`gL!juJ*ϬLDz%ԴՇ^1{gԋZ; ^ ƫD+y r3N 4yFʒst &Y˼Os7oetn0ݮ/O*O/##w_{mo16. N{f֦/;s>uxqet^fiY\y$g1}WUbs9;=οJp);Py5Qջ~5i.Jг ;H'.dzܷ 'ՎZ0֭}aMv<;UDw`T/̝ l%~)֣'cԊH/ksX]MML~/*f}']E9!:}y7ܢ]c𛼕KT[=Ks{6 T˾4 gB]O2 h0Ƣ2,N,sɈFli?Qˆ&bAE(qJ]V<~f2)b|gYڷ(O#ۡl]caoО֌#mz KMq4VUQq+ y^lg%y56;^=I^+uz>[{dLmKCE|lt:%M3?qZ?Q# Fq3?DsD1ϿTjF4)JsU2;F-ݤΧ-BZ5rDxOF}Ks9}6^~3XR6P[9F:LӮbMއTQBRBI [(B{i_TZTJ)*e&ds{<}?G}sss飬GBx?&Mk^,vgn}E:w=[bȚIDT2!_ӎCI|=5/myivywe p= \QezwF}/* 0 v6}I7fyṇ3g[N+;}Cn{mM/>>8^ш_f;Nz4OuXwg[%{/v&q2?VuRѭ23ܸ5}mS+oٱ&+rL j[#mybNQ-:xY5zCG{g,_Q>l/}fkG:Tܚӽr3|r>6)VU-f VRŗVvlrgI?GՉ)c/R]LT3wD̅Bjsj\_}USv[w"ĹkCّSŖlq_F4^v]Զ=vn2o 1+8 3I_DٿE1^NɆE'o-bPfH5.gpgF)o+5ޘׯl%<yeY?*MTIxmx~ڙbb 9~C>6E'9z]7mHRi)ޅ8)KҚuהE ϟ)F֓r]޺9O +rҙ =/Ge 3$Gl{5˼W]6_puvOVJno]|sD)lnm2H( ߑ{hQ;RĈr#ԑ66"LiBR&MR )U5΄8u75y(^OH՞`皶uJz#ώ%kt< t׽HuJ}?Sr?9dʫT[.tEՎcկ}k;MS,7n<5}cαi0v63k򿿊4kO{ėo>g=ҍщG>C[_?n4ⓗ\tLY})g0aigrJVը_^l>)ozBꆩSVi^.*1Hzۈ=^^51{2L^CLNzˉ4̱x|M?qDGx{[z;_Gহ鄒>d<*zs(oapy&]Ŗ+7hv*^v[9J蚻&rʊ;WGOUz߂|O]sc㣊iG͊lw~Huj+Z]@u"}߳O˞Mqy>^zlRFˎj!M۾0;dߵgĕs&~W٪Y'l17t-7D& -TbܾIp."/OlƑ%,Wh\).m{ymV3Ʒ\1M\Ara@]B9 nUW(.5rSeFV76dzp٥"+<(RQL a['+/_.qDI&Mar~҈ [&ozܝd?K{كa+SsLj2PUP{C"}/]zD^%yKFYGs҃i_gi]Ԭb⧜M&>Vz|ir4]DcÙs e4):lS.<(CWsZl(zu#W:Y.)NwI?秝H%rU~ܴ4sbWTzTJ/D$&Nm||.գMݜvW 6G;U.}-1SמYTX߿hzˑKs޳.7?E1\r3ge,;ĉ?9iח⍪K7Q ;~;]MWߢޝyQ=I}LUw-*ӾLIYEj\|%7ќ&uG:ʬT"=)ezhMc8s~%GT-Zz8ha)v旀yv"VztXHn`v8)Z&*0S9}Nf˖[MԿ'vbjvg\կJ)&UФ|يo3ӛGU͟O;uaq]3ϷMK\=T%j]3:ߨFG(#,ȴ*\ťQ{E|3kbݶeצP_se1.9lx[bJ-W9M!mPwabâKVu葸,VJ?:mSB^m;@R5577sK.ޚ0aү)#\5o8~Yg..Mh)~Aޠwx\:Uk;ťǃT8=qm_lQ:'jhEo{ӂmU:"J#x5%~=qŧ{&R13mfT/km,%2q;; ^ݱ wi"bś:u|K5֩uYƩoݶii:~z8ϧy̎_5W>Uk K4},s_kVq͑{>O,l>ɺ$#DdJY# k*@ě^Š*yW=>w0tHeN3ŕ͂Nw-l ikD6IW-HV<vlI3'?C9($jV"9'/9Ikzd;r2[¦zAde0q/>j/%R^tSv.uf;z,A2|=ݻsoqU~ϔG]~5<~Iv̭!{Z^EE=%ȝ]'Af-a!>bEkg19u}eƋ,ھ)em9U+葟Ea3iI>x^ ׹M_Hr2[kò3w8挞4g;NN:9xW){<1"&#Ӟ:-Zr6fʋk.חVdGDgڍ'0kbڧ;iy!yR)v]캸3y3N?0a΋U5um{ow_ә (N~0OSv8AwT*GMS\Q_P5v+o릋e=] LYA~J ^))y|Or/j]>ms7Ӛv'W"ŷΑ]WRzO)s>~|O {/k=Wz:2z?aߴ(iw؈sr&u1pzπ^;_~ФqkXy`G]Ed BOߘGBSini2l)/io6M8s޳cK[L.R)ԑzaOe9j1y1 Kv{9-31*tě=TI;6o~`Nμ唱JnuW%</!^=eH OOF Qz?L)ܢq*,+YTCb}ay\AY>D.sxakBzöf{d'$Zn=t|0!*} }F?-E ˄>Bՙ{/rwԓ?yl棘fWe_YWی:FsQއƏuoC95, +6\}rrDs#q;|fDJhIގ ܢIq~Rk^:eǭRT~U/^|h0g {Nj"·bC4TJrvx4&s}ٖ@MI_rYGZt ȎʒY_hdxZu4˴3)y>|>{,jKR*v%OKZR*3r.%yEMJiL='ͭTﺎsWIgt!ukUE j14-ݿ[t|.2admb;r^։]{7 f,ֽyIAƋcP >[u؅}O/$ȧ~=wЙWy 3rBv؛E4 ˻ݬTT=CYܒy78,1J+9\S-ZSLS_d?B2u.J%{6*u%ʸձrM{ΙsOHQyܢgOMW+pLTn[mߴOL*=w G¬e5!Ϲ0П>QVm"r4V1n)v>?NplwÑl6i{o0ix֓wUF93\q (3zw4|Ӷ#o?~{n@9XɬU7h?rwm,H&vy!deҨwF{Jݫ]> lҜTbY)%V3..ͮPօ˗,QbZ{gb'M;^G=."=+Jg#%Շiwl];(ͦ>~N˾E9& 9۳Bmy=l#=7 vZp9&w*x?m<;2n H}2uYٚpϹZX<#dz[Z-b4剳yOJ}3/?]eRt ʑ+ w&KS_>!y_|T_=O@z}6`z?&tW]鼆ersB,O&f;)99{(SAm PlQThSyBz> 7m{bn}{~r}͋99q=TW"5݌VYE>YiԳ/.u$c̈ER* J|nMOqyy~d-]7Ǜa%ս#lk^:{Fra݉W(Dgo$;.MwZψϘHih,:-Yfxhi.7>ƝrW7)3<ע~gMNa_aG/ݧQuOGU_Obt5rۘw^mTuu9'N+~}dr ]^Kۨ'ݰы9t,S/f֖ZJrFOQ{~{؁]rWd$MضdXXg7 ܩR.eV%.oٮw;Up~dMNK7""UL34mدK5§)GGʣj::jF:pyĺ9"8c{{tUsK]_n~W~4sͅGsf]lN jq3(\#;1{:T̝O<}GIз<>m*kyrUjV[zߚ/;G:Pxm˖W'Nd/HqJC4-XΒ jGn N|zHL+YɄ#N9]qDî{V ۝*v;hڍH99NoPZmY8ka ImwW <Y.<TbsxyKw/E>oļKHsiIuv3}Zv,hDDe)ݏ6/SfѕcIY^&:]/|IvNEXk36}q.i3L_M- zvqT,d5i4*wD֘O5~BLe0O/o?1 o? nu^fÿ(OٿcB'\_Zcb{=6 YcV5+Vz\x,,,4Ǵ9>vӾ5_r%6RcSm=K޹[kz9ee 5k]ikPlğ W2_V?~c:l=;sY*ƼUv&w3G鞒]=.קNPتw4fuՉ>4ߌ; ̏߾|Xv[J\](3M6R&T,k7-Ȳ\7eƉ K,XBfKqSΔu?jQ9>bsLRHozƀ'i^j Wʉ~sE~}7 g1.74r8SYJnj *Τ.n0c@iGw$2a枊:SF.dy|ȩ [nn JKUfz:S4gzϬ(#Wӛ5׉jp]V~Ӯ&Y}{2$1C?]Ĝ_(~B`[zTIr ^F?CqqBi6d& J{{Fi,i޶pE՘1?>d P}*_SD^yQE?>_y"#sIJʷL5BJuL H,}d3v 'E=Dƛ}]^! i@[եkUQmeoZ!=/Ho%loP wa}"U?b ϧ3x 9TBs#jp޺EI}u;CJO^L4_ϪMsNFWcյ o6ޝbpORivZeNasGzYc5y;ɱW7^߽#fjIe;߽Nm= K3.Mj̀n1EmI7_SO!E|Q" 扫=~ ߻# UG2 'Z%,o '6o-0V~=>;^7VyٶyDJW>Vϒce F%}S6;2ͤv\X[ɝk뗟1=.5pEw@&"!{G5m޳Uj*ּӿűB^ߔm)^@wbK.ߐ]WuG\ u׭{~?]𝽽֫8<3c7\?@PA:c\8кi1⃇2&du>i-*ۏcC+Z"fO~EY]M_vIg7^ipőGY&>cu.4%?wih},矓? t _?D,B%@IzC I (& x\/xF|`Fx4F/pF atp$"8v:A{'hC X;  `nxV /~ $/^%x 'i hfvp N81*༃ʏze;c֧.<8M yqBJ2\c5 <āy=\x245 \pb41R\fxDo^J%;F8dwf:n1\CR8ߧK\Dp6 % ) k$$$` _F2c[ϫj]9qI[E4wou˕o6hF5{(XPXXa0Yh,=D k1 pl3 ^9 >=lK G 1 ?c(+O~|l=aa  o_n=[Ѱ5iڰvaaa k9 m$I`!u`QpYb$d (0 ½pX3PA$/M4<џӇ@OGeG 2p7GP:'J {EZ f0 oW{ĸPPt ^@z X}:bYx `Pg a!xquPJ1}rgjҽ94Z0@`0}â 4߀P?5 *oH!N`ӽZ 77 ȋpjd ݏf2pT/D 4|`XzWp(WWA-,<Τ!!!t8h(I&!; BB#|%L//;_ftORp,0% %"hG,f` ho&^pWorDQޠU- mu w;CNwCEN&K ݓvQ°X8 œ='ڄrс20"G`u,N؄ #lay{pX8( 9ƖL0{3L@y(E`JQÀ8@9a(%_̡@9p9(e`JY߁ P A(˂$?vI,AB K$~a ֳ iZK r)_0,AK2a (Xg K$XN(AB iL%H6w$` LXd(,A= Kd%H*/$ٰIg,A Kޅ%Ha =+ąH(4d);{+b L:Tz0_<) Ai63C@#J7j/P0"J;4Cԙ`(  k !Z aKCXa]C- Xa  & C pK?ģ#jS@Z?V#jW>~C- 8֏`mg . Pr 0 P#je3~C FG0Ҁ:~Cm #jm@ Z?tA8ɟ׏`?!8 ކl!C(w!C8 !L$!(? $?|–a]g#C$!8Ep |$~[ZԕhAV$QBRjI,){ ŸX1c*D, *k,1v,x&+wP_-S ("n¸bD.=01 ]L{jn's_%b`|ނ8 9h[L!'r*3YL.@dv G(cp 4ZRR5go )2Rn&W$ AG7D,s+d"O ۪$6LKcI5XB;R/xm(6w@3 BЌIŪי8@|#9?|S 2Jtl i>cFHط=@q\>;_d 8Ib .mTlmr"4h6K*>Z9ߊh 9`Zh46Wܞ$AU.*} e@B э%r^Q lnŃdxiM AJ}xSm\| 1Ҩ 遲 _݂z4. 0|)m7 %jKKq!%V2R#T>EB[oAK~&ʅ T n\ǮpϚ%7Öx|D"흂nD^E?!>ϓYWyMh*( bRt= epD2FVx 6cHa@&^B]|RXynuT`ʛ%aSeE"jA*؝D22)J"CAD6:62ٝ*d4hLa'Jɤ݁mF9@P]~"E4AJgJ@Úp\Y5'w Ka}<]t*cg!9A\x'0vB#"0KT5Fz)~5^'zh]^>N?wobd<@HR'2&#aO۪Js輂AX7FOk Hd<ق@ m4+z 9<+G$_ (0};ǟIxpBNPkh>KWh,d}C ]o^PϭT{ ڒ8dLP2ySj) LFx !N|E+ԗ8 |U]C1cC}%nr H:`nL䎢qC!*w:ħ9oIjsPMzQ}B@;7V}9_˺,te.ێیfm9qSLr'?v G&Lq v}zs4WCЏi >56Wh"}´4AjRDYCĒ4O{ZZn3HISy' F|D@\ 1o zy@Cuҟc$ 0$>ct@Xs-1}{Or$5Vu4fz)" 「%`U uJnʠ$%W:NЫo %տ|M%e. m|1t[Xki~6%w5ߡx5 Y *Pv9_"fpgZ0ϯ4IHu<4|? U-ތ^Jp9/% jtTSB&=Tc U:cKXu,; %{tT4gK?MEo&by<,0 RcEi|}_)."}ڰ(qW"#yteJ1vrbrr `&vއޯ.&bKT%֠\X |_(O5cu!p/=+ KЫG%}(~e/I)͔KG'69,ez$v#zTz-9p@! l7C|ܥH4&ϣ"RX-zJdC8 H:r^evn+=:ik>* \BmX{Л'c$F" p8oCHR?Wy~ߗU)dCqs6 |V4;ĝݶS!+G I/ʱCaE @X#/j`X'!5_T!s-G]"`? x(3F|DTU<8CH\wgN SFpJ>3#OGODu\4!uI~͵ >Oz֤%aɤ*`Wt ib~{HȤ|ЌI|'-禐.fwpمMݕ*Bn5ogp*ސ4 ٰ$pWN/ȣsm ^9-?5~ msЭcVD`"rm{X@gwC@Q5d|rKD{1M!r7ti+,ꥥ 4aRh_6{1s p4ο' Nq&X/qy1> # /HlǏI1_%\́_[k;=W:o<~s(_ul *B'˝3E O)M3MQ%s)i%$ %rCs'ZV/hm#C\׋y/ mUBɧrK*!J+/.yڳ_oC` t U oOhOfr-^t@o{b$ѱ!"#u 7t @KW ̾y_ fӇmnV\i0o=@E]Wdȫ{},ؓ9X's`r#l9?ė5/=A}ضT"|wp^€ $0RrйvH #AJthx{ð$$ƶAf(<ɝЧO's7i]k s*%pRyv0 ZҜ|X Bc` hL#xηgC*܇c6g?b~j sxYL5dǔ:o PЩXc(m$T~v7HNjl;D<pL`?4ȹnt/Tɹ3WB/On*!z 鹼 K`])Dg>/C$]&Stsx̷ix1"; $W؛؏{O?qC,b/0,k ],)I`J2S%Rv]EYj!OI`É"pJޥS Ie0M[~j S )T¢S¨L_p4;XE>'GOqC`o?JH!E@De(IЁޙ(~tJ ,I/ K 47]IXL 6P4AR}J{g7Epw1LJ}+7B wpDk0 -۟F.E?=+B}d"J h\ T:bљްg85 dFP}jhި/v0O() '%0 \= ApMgRp]:Fo'4 Z" RC|C@@O)`f6,؛ )I{0Xs8bOgkBo&xGP) `PP(>рK8N Bj4:SGJ9<PʢzӁEaNTt2H$'I10tСP*RR6.dbj -J ȤPLl2+'{`*JeixyGkRW 2Xa3@r8H⊏JIP"ǃZL @lt0+UGnx W IdFSFS40fFhBR:kaPѼ LPc|T$C_S)|B5`*B\@Z (T0ۄҙ6y`Q,hJPgP  f#"74p V J} R4l4)zgӅʵxJ !#f0f-DbRRu . u<Ъ! ʄV:sr֡E  Az::),(zH ~!o&$0208j4Vt,w[FrZm S#P@c*GpbcPV@ηwsJ؅bEqrqqwr88/vDJdQ|A~ ~11&0>\:qY o*060G4FPP([ /T zQ b ePC>(ux fGrj (x<D!} hH IŸlLl0& \ d 0`꽎9 /6;K^ȋb%(0FÛ zH@(h]A2DK)b2(x0L`i`Qh@0 ثoGѡhHQ<a٠DX( ,H[C_zDh3hXL] FboV0s( dƒBDAԿ4ņܟ20]Ptă`Uo7( t-<=1:0 +fQTD;> `R@]5 20$:C8ae/pua}q ٝC>t*ʉXaLi:1AI6bX Ddؘa[]U@L&5$ 1oB[<kɌgP)uI%hrPVu;L"ANldo-3<u ј71JH {Sy:SA2P` hrA\[JZp,5Q.ę/`0p@ 80 pSB:p yM cN$&N02?p V8Up~06LBQ&C(LM2 3\\mA~HC_k??um@n"BY H*,:$wü/ 7HΠI ``xʪ [igB qȥ!]w!B\0: _!|q"(!^~  '\7s;f/0s̑\ qAʆOr.A`P D23Y:4S=- 230ѧ+1<<e3uAfab= V):Y!>D 膉ۇ4y*J j/Px&𥖯8Eզ8D%.S2ԥJ|U*P\&vVGIX 837YFM/ (sgV2?$ 4'p8|d)!3@&Ff]g 2w:˿p.$s\2OƼq'Kg48$=&L=!o#lOf_]eЩq:] qsgl5P_pfz/[!/sUYvB(tBD<箬ڼ=ٵy ysS:qͭ}҂#eq ޷(1)G_$¿_{'~/#+d Xm7AF)Rw2a%6C{;6ESe'[]Uy<˞" ٹYӥtzG>4JC O+jm*awV5.QlVCaP,K(,˺<L]Ӟޝ,Αx8J4mjCβՕKIš .> ivwv]^A,~*TqDCq6NR"N֧]A 'QEȣ1=j*S6usz-^k0Hztla(e_cݬqN,yMڣ mQ%mZ5sI*9sA`\j?Z}u{w;Rg=T$͌\3o7f~{=n0oI2+q{1l$0Ďb8(I9X^wCFn,[XcwÞnf1Ϲd\ /q>J߽LmgtEY<y7 , LktFf7|CdɼB52'kOf%d\C62M{d"3N29Af2K4L7mdvݸ̗n{g ged91Je?0ˆ9u<:9=%wp_螰r>/+Moݲ̸}6CZt3?mV.(Y񟗖->q\ ߈1~q  a ZiECeE?kC!\SXI;qW~՛Jjmmv&1^]@&Prpk#UURv*`<+A\ *qw*ddC  EY.is,G5 4 p9JR2eARu-h.`? )uW*_ٴUiX۬ljS5QZl\ϔpyrT t~5мs8y;Z"n3{9RWmAcR-ҰncKk%/퓻i ;QWS*V|x">{մ`n*iM'R&RQITG^k%Q`-~l$AC*Z Yĭ 'my(Y `24dP+FZl6.#xT`VB*+͡ns&tE3qH]sky%EKggw]_g1.t8nLW v.=*Fbx^{!Yفp? KM&߹!Myb_Z K5Iڿ[rnϓ{_>ۦϿ He[w9a/k=xt3T\oLyT*_V3|0) 9mfo }2F~WB6Q s}CKBOY0%Msm'.H@;J^Ph"usSڗV7VmҚzfZCaT=^&2iS!]NKnA#4~G}7=ƚ=g3RWO?KsFE~mc9VXuM[Z˂%.E搵ٗX4@INKz?8GW< Xhu"q ϣTcsGݘ#)]I2~²{zjrːywb6c#4۩tcT ʢmtb4Id(r cb!9/H=jb4Ĺoz,yO<(ⱊ#\GVRG@Ks^ FTŜU`~,W4\Oz][y"$BL*64ZN*Gr = )F3gU2*}f3֖til/trpBwW3+#vi<|S!|jPLhR1-ߛv'ֿl=7ϐ&zÚkW6@bh>4vL~78o|k築@<- 4;[ {-6c?]O7_@1GU@:kٞNgc}ELk#V]F(U/M)FX%ϋbub7oe2{VG*`AVl2&nanh{MrfuC8n"Ǎ^b(55~;q[Dh@#g.LeWcf w;w^͏3,e<[ XkXkF)_Ginc:v갓!}߈9l~Y`?7/?IP@L<ߋ5ZG%RZb?T4/5W1 e?M4[o*(&9Oܚܘ}mOq1A DkyÛ^zT :'yB@<@?>QP>e,DUqx!  ZCXWA1(L4BgTzŁ"a"Ƒh_DW'bD\[,Tm?7 k!K:V!j! Bg:("^EUUCRRurƚ"ƭ2+H[A=CTq2y 28Y@f 2א&n2wȌykdN@DfmF^G.;Dz]龜}.0V<1F@S]`lgwtr[8.8#NsFb.>zO/wиQ(]`.";{z s3Et٧1ZsKN-wÊ.9m@]Х!wAt\*J]>M1ߋ$w#e).@i]Bgs-`VQ8sӽ FK˖O<@_ @w%6A*g6j q% `RkRM顁NR uh$o *-FD&הǡS7AgBY%5PgZ %%]($Xe >+ ٢jgo (eHr~e?"Ob~&Ykޤ F1dg8ԥ4IyU %SJ XWZB_)4Cͧ^Ƞ'tҒL%=SЈ*f?2btu9?ܠ.]6hW{P8EJQU>PS?G7ԝRKBBl!q?~*3(/hnfc?wHuEFOƝE̿uԮ3"s7b'TVG&`'Z X _rA՗1@wk&-o:'Bqr$VB a g'IinOfcgre|!GerJEL3/Eܜu̐a0qVCCi>NwاIz S<邜wV{ﻐU/6`ki[ۂҞ"3gTJ1$Cnr!ώp:EOPZh"&FZ;6714_z5D7,1TH0Qzu%%]ɸܐu& K|4f\(õ񲴓~_Kgrۋt{25jw@RuS˖Ó\gXT(=Q-9z$U+Ο d8| Tx[{cX*iPʢ |jZݐO0VP ?+vj$rob՞UU4s4gT\H *7A mW[l=Yh,z;Mvv +e%[}k`u Rd>60We!e$)XvRRCxy𤿏D2U@:_%O'Qa <̃+PPWV`PiP;?r~^7rL1A? qRĶ=L {[bR4EG_2`L`u)N/4V~H"$N>8gCHO|BS FOm^aCDNpH&#bRUDRxkûccձ]s;Z݇c*=7pԀ0e!)J|nRSP;+[F8L(nlk >[JWX;PZ$[i9f<³yzoW?M-ZR2ZRN;&6G7k|+U gZݞauɓȭ W"bX+l,T?b@QuX5zVj8+E]`C >q񖄷ɘ|ñ,]Zj6u->C UWZ"Thʢ$skφPL>,0Q(lAc$$ѡb?;H2[1mЊe9Apyc 'RzKwօNV&1ָ K< dP2])kiol-4XDNr٢* 4E+3]P<sCo|64G+ztna^RWP'ݠvf/g@CƄe3=Do4xa֖=pb݆˝rr.1C@5O^E%=ca- 9DP8pJ|(Bbrdʊk64x/R_G>:KYo)YTc~aR܈WJve~GϸRU4 uUFV-rr QK4r+jAiX;uʯunQD۪r%|Y)O\hEW^x,RNB.$8XqW*^iqJ.?cxјćN k OYf2'^Cl[.FJ}) Z5NbN g8M/OX,NR_LeFɨvr|o)>)͔Pq48#èkGCʕ.g\srwX8q55E{7am[o[cJ9Y%Eban a Q+C{M~9ȧI:xBgČN{D2Ą+.""o!Bs}3W[d[xFY?r626.QjmV(|Nn0DqDOH ?"iWl[~^MTQq(pX`(Ƶ4#/ PQ!Ea>y yv>(V %IfT>.9p+'/)!'B`NC"cHؠ7ry ͑4RI)J$])|&NS6Ų3T( )"'to{XVou ^6+ܺn-. & }vZo <#sXXn|RJB! AnZgRh()h5ykc5BԼ 櫸ĵ8J{a⦌/(O~ݙ6̎ۤڽtų5:_|̷^R vJ"= B{>a)=Bg@}^U۳+wfW].Ê@d]fm٥VB$^d)wrq BӠzl/zlѠmb#3얯ݒگC(#[1Dۢ QD{xRԟYiv9n丱"sf  2mz3oFtRLe^~YWUMѮvNb~,FU2^\Id鞹!hVCk3_gJ Joz^Ħ33/A??--[h?OOϼ,^xOQQbXLi? K8sKfY}z|_N @nOLf~3=OZlibextractor-1.3/src/plugins/testdata/archive_test.tar0000644000175000017500000002400012016742766020260 00000000000000test.html0000644000175000017500000000315307477510272014416 0ustar grothoffgrothoff00000000000000 Christian Grothoff

    Welcome to Christian Grothoff




    grothoff@cs.purdue.edu test.jpg0000644000175000017500000000052107477510272014226 0ustar grothoffgrothoff00000000000000JFIFHH2(C) 2001 by Christian Grothoff, using gimp 1.2 1C    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222" ?libextractor-1.3/src/plugins/testdata/wav_noise.wav0000644000175000017500000041004212016742766017606 00000000000000RIFFWAVEfmt wdataqMTy_/L<qn]/yGxA1?^$Q!&@ol(^q/oC'UkK.",t{BY ,5[C$:$(;suZ yG6tOlm2?L NJl*Zq(_3dF0Q%Q!Kg8Mmu*>mM7@S)I<52ullgco[?@ "U!7 !T.*?@mtK[M4+C@k:1rqO#%b/.L |xY/,qJf;5BUh EI=%J_q"XZL:T58S9>_ 9ik_D",dl7o>N2R/`_Xnu<3h8rj|lxz4sJBg=@_0vluj GkSrz68B;Y!A eam75'-kqt>p&P^Hf1cZYB7\R0(`iXzj~/i<5Gd9f_Z!+<(X [on ]u6 F M " t c- 7 Z  - ||8DW dYm{8(h{*DF7kt&$>2wf7xw+A/^.6.]5,]X|P"u)Yi qv6/9sd%?b#@tt 3d<=tX+g; n Gy1Q.cAP{&M0Y`5q")o#  a 1 ~Im p x 3 / a)x7 r Rq p 7=Ze g|mP0< FoQ[rCv$t/&f+HOG?G9G9Q!7Wb\m+ T`b}z_Zj+zC=@(/:I|MCoHZt5EGkri)LV GK(v14Bc\k{auPq Otdz"';Tj@g0~oKsV3`2j$ J} 7oA*Dj&2%t;$E~n3.5%0t *z#OM )0Fw78(+h}"0#w6Oi I>Vck2Zqn~}UA5nfN!uYq6ro~LW0q?uK ~_4GPlk51pvF2M|r:/@ }L>sm#c],h}i@2aq]X^n]raUN !a=*G"1R < }v"x O3;%$s7C=D0`K=G0Y~JhDQa@*uV"b3}G\#G6Kmk1M]U.HA'O6E\+a M"@w#2#A=UBO[!D0{r8W_ iz ~Kfy-#3"p4M%rQ+,c0: a?/CewFXfn!~lu AoW2(j0] m0A,&lVv>lC<I8T}7 fEP5F -g$OSou6)LmOxMfCOon)W #sk+ |+qX/qU3E{jR zPRqEBo=:&MS3"bb4Sn{PR<?mCf9Qk]] 4|( qHQ:4W(T >m*Y*`x ;  ! K  B  IMj 2?`iUv^siuA=oel>Q?C9GV>|U"lZup?4{W]{HA!\m(t 4{%ewQ {G -T; {qbr7Cb[^\COO#|z81Y !Gr`:FvLcU#f3!!|!28$L   w 5 G  * 0  O 6  H ^ C<qL|O5 5Y_'{T~[b~'<= '.hFO_*3r_R/E"k9[d"h[t#vO &`0?kO Ch/]?gp9xc.N3n>donpxBn<?i'RnAti?bT ~4QYG~pd!?`F-.z\_=g`9,_t8,..yb/|\7uy#LW+j>yP.%vyT'!O{?R ^FnZ@7T% <dXU$;(;'E 5Z ?AU%*{-({)r ~.(GfozFr4%"^\s s>qbcB  L X}q~.{S-VPrXk  3l~ MfWwTf}6wvx0Px~s]Azb )6V3 {s |rh8t$ lb'72J`uRcFEuL.+7] op eG eHsS7G:=e+F'x3n^m o% 2X|_S{5LCcgdJ]^vF#|b>Yyy6i'jfGy{cH`Kr'>L479>cNjAsdOXNn{#&f24kBh@u7d[9a9_jv^Rm5c#XIl;xEFNm4|W)[W?Y]Pm~,jh U+Qvp+g; &1?qzOu]tG}|f iwSX( kJP<cHav5 z8c4[ B\AU'f&br~<>^W@nAj>|B<[E pDt5 0S"!k 5 F "9&|.'zzvN` LxnJ ="7^RQ//z Y:LDNT>^~*,5G8XyLGH0t}0p56dWkbuc39EamZ.P:*$]GjCx ! GpF,CwcUcnm$B)hxx3fP99TMf4G#DoqH f[{$P0EJNT#U#4Oe<fMIojgb$A$s| f7Rx#-O@ |\+\DY8h Rh 7Zm8lcpAGr#ZbZDB_> wKQ;8B ?i `MmXvAs2~@'u`N5+!o2~{%6b%NsJ\/ z|)b Cqx<u>Z7'!]A1=o6~=~@&S*IdnV hW4SH'/4'*`S> ;H a9fjkh*H.mn"\"!lio]Ldf1pQ=\hi"eE7lW:>dWM|7' X59Hc1SN^4f~`NB wAVf2Vh~?yYo= C .2<^ANNPU%#t<bSf|yFRK(={BOnv)bd,\owkL=S` tE/sF~C:mKi<"pOv;=4Od=dhh"kcfhJ%vQu|S`0mLG\UAZ<~n?ZTI~ w b } &  f : # Q U\8 {eE*`H:Vs\"5]{{`dAHO[3Yo!@*p3 r&aWMdX?S<CM:kTU4m"maqpA \s@]*{iclA8SL(n*V@0 %2r[|'oWq~\<eN`C?*<k=d a @%R<}ODA}2f39Y`T3*R-?{tiV \(~mSY*5981-5+*H m1+[m"2MH=R|}U=9wUd?\MJY[}-VqwC[<{X}u?=?X@>8VM2@+ \Ksf UJ$:i&W`%sCZA mT:d$}a?`tLz( 5C3 = yrOE:^}P]E&0 X:' :(`[G <bHCGM;lXjOMK&%2G>&V)5&N,HzyVzHxy<'RtcX4dw~oBe{I4dy4 c 6 I     5~a,JuK% jvi{ \ac(cG@L(#m;_KR|Dk&LqN]ns@1I,![e&*Mp7v:8@V7%gRR ((']%}:L,%k"7$ 4=Crkr$~i$}hd^vjmZt3l8 a9tcPO#O,a``?b]&qXJ0poTPJbU%% szZ7X"5Y X*MR wc2j]mxcT=%{vIJ<xQI9YwGuwUHqvNL $nu:5tDi[H{f.Sb:2lkpR#&cA?2'Iu%48Ne$zV3!2rb&>Vpp4;HWepC\i~G ^_25,@uh\wtUcFl/2%<]#~GZPq( n>dI`1F\8'g=U*IM)v,%e/bX3df:V"E5 ZZlo5Qm86 ^V:du{B{e]< Z]\JV8 K0^b0S.fy\vi&b+ ~7f5M3cJ*TSgk;&_mM>O7mu#O{  dY2'J r. 8_hr^T!\.h\{ 7SBe PZN6 !z f4]LsZgQVY:9k0 !5x,S'jcPW$qE*(>X YeN\k d\Ja8 VMT XsaIK0l4h}*bTd'"puT;?zvUVV"yhhC] j8qbZ+4}`c4f2X%axG k-sD@PNsbsX2va8)\L-Ws _uSd5-~qTV255 p_ .K+u %l{% q^CD!KHND~xNS_Xg%td`"Y'KpB U7Jl]L\-c<(_fv-gW`u%qUAL%JnWU0~XX: C^[z0NN+kzN! 5;4wSxz4^nudZ(*@.72 Ri /jK;2Pg>H1 6v5 S({f_&z%G(onCqc~uqaL&.k@* 9iS_S 'AVHV7}2kC#,+(@(@HCFjuq:`5WfuYt{ j,UCyIbc&?EQ}` V 3!+[Yw=SP1FOI 5+OF{ R;KJg#|:RL\5$:2BGIS&gye_ K kPW/ bvj~*t8G=oJOqr Rx LJw gJhAz+^uck8PkaE,7' Y @oU&Sx|=g]-wkC]^Hj IFVM/$>.m@dNzHCJvU0FqZgXQD?MVB=oW$FTu&h{O$B(3[ ,RGk1:XGF**iL}AW!/QiZ&fTVyP_eGuU7o[v/"b%f_Q}fik4ATu'z),*xw(( `!9>+kZGso5 <x /62go}_\jevvu[09VyP a&D=F7Q0Z )$N"|#'%QY=de3(Ct}cO1?1%NViUVBp>AAMi2fK}\w(u:^N"e'HxAB5 P {R  c tbK-M3%t{cW,o-DQAt<T]o}^63V>H<2Fn Moq0*6[1 3[' : XmvLXQux!i3C7i'T'q]yO w9TuAJ}r,1rg/F3a|Jt;tj0%)}!;UYZ*"tX `$[ $ 5ESenB\ 8]Z)G(*nIZ5M 3 jv V g K S | 7 = ]0 M<0BA*A(~O[E'C{ WOnr 6,;Xm&|]>| PFhz-R<}x8P8n}N c}e;1hp`[8U \eo*I*rD^!&E ,1./d)#rT!U * nH4xS P l)*B d ~O"SS`^ I^i _Thl MmrKVof;@0JsNCk$/|6Xn>Y+c?IDA3\ x:H]mtPrIh"DlT4&k.AgeIh:&C UzzF8.i`*i1xUymw*;6"wi[z;.` 0g7|2 LF>wZNm)i Z{N:o]}9[t~ > x=[kJ" `9&oj5_:mGu2vaXm v*=r*P/dx u $'99=rb_Dpdp~cRH<*4Z5&)DAAby7|Dm\M.t#%2 .v{-wdzC x>L->%6`$Oho0'}0KL!jnlD=X{,S~{q?dW,?,e<-['#&q B+?x8.{}\sK8M`6NW4/+Op6uR@[54zIyvD DQveBm$Dg3 PL=hy:g:V0 Lmc YY-G,9EC$u2HE"cq 2\ xZBmm<=8q 4g ;)J?s}?A3Ic2{< ^ C ; ; {I#sO+o(  2kg\uBHF|:QK{ xJzMf3V 4"@pJa3' o!6L%T2_Ul_f'kT]^ - 3\2ek)g{e6##WJA`,|[iLqA:RhmW#dlQ4BM`x_ 'I. k1\3Xn|s =>MVJL+gc[-N]o:`w<#m[BgLfCWQ%yCA_qc'\+oXPcORKfB+>NER\KQB/u>;';E~X q~g- ' O SE # -Vv,  C( 3 r 7 BZ-d%2D'My+uZW?sKuR< }v#@ 4xHds{?te]tOxU&^Bb &1,9(F@62f2JI4$GXlj8 ?9C%l88r|^9>rs?{a_m LXe%Qqa8PZ}r[t?2 k4 Y * b KW0/r83JBj$0(h%2L=4 6O>0a25VK;?yzC6\e ?qSFfZ|IL5U e(#_0oZ'5Mg (WQ7h_x%n o,e6eYvi oP ;3LSaL +SFj\7k%LFPl?r^$p :[J:Y5eTY(SQ:ylH+d!2[*SQIio+xPvv&:uaG&}P?^^LC#|x =^\\4oO:t =&=nyrjgk:B>`&N-E9=PzO4asGTTBY9kjxCK)q^Wsb ~R \Iwz72;ou!'dg{(?F4`%L '90)]Y] \nH_t4s!C`HP~H$co82[>>PDBBtt2q ( >Xs0vu V:V#;(zwMfF9&@*"v#t]veK8YKMU\!OY . 5S? 8 D)b b$E%yyF'}0L$v&,72KbyX>:!P6`2VRzogGO{4^gq #*Vt O#!FH`wXOD XoD8o^GxJ}hqf+dN`=wg9Fj?6tWhh-Bm])} we,yF!0 bk=|r C4HG^g8r gBicoDI$"'(t0 O8. ^`$90h*r8uV& bhjcO,@6BnW 8dEd(={t^iIj_bQV.>(4NG/` WH tMWM97i}fD^G-adin}v`DuSN O i#s DAw5L4:Z &qL  q6 nPkFY7a DQwkiS)mr PLd1Gb6u}{!-.Pff(~w;VXyM/X*or#nPHM0aF3"ff!C}G&=<Ot _]ZCU@Y*lpcp ?Eb}j4T6^zC!C_W3vgI\'5Hfb\wR *.\qIx Q-K.[ph3mpI?8EL3l$e9o=sYjP]_6C5Zye4&]nw(-Qg<s OiS!_ am,)okW06!AbQ3_qGvZ{ 0~O  -AL'\>UYm.E[1T*cP; Bqops7O A4pA [nJ ?Y [kvh %SsAjo%E-c#V ]S& Jb@LfUf r GP5cnSjX?@ ;.a/j"[ /et#ef0A9's"hn?rE. )GBx4D`C@~Pqb3?CKr:fGb3PR3eB$$& LY%\!z PoC j&U|."z: OyIb IbY{&pV4;A*gp~IkN"U9p2ey\u0a!oc|NkD$T}=?jzL{.NqnLoT=g@JB 6b#Wjupxly&"6)W!8r~=s7 2SD'}&dW:edf;u'8mV}nWT@  `v\+HI4)*e-L_c-z cv54 Vu!9hucaxC =fetB@b[UIh,Af"a &Frs Qv<*3aFUsrQ16{>9g42#LP8mS3!g-`'a4(J<d.i,[GZU;G@07GVYr~1<P50]Apt ZHyEyl<*5-c (D"'\cv+h4r!,Xp( W[^m\mS%;SW.7IPa9xy 6F<ANS |`i_]VY7 c{Q|w>aO sG[x 3 %_YO|/~wQgk)+q\ R79f3q0f&V\wDH l K\0&$-'J8b2gpKSYJff^h?({5D=`iqcW Gc^UpLruu(m1X/M]LzXL$<"HI$^c>a#[Ck f\#.~2 TBBI VdhIO BUcM)9HCNYV,/>B2"C( KGg# %|9nVOad%+F%htJxe:(*9hdlsMy'9~~ '=_%>q$F  ;CRgx\H&5J_G5.C>nm)^H@x {Z p,pb<0[exLy R\:;1 'Z>=&p5S]*\Bc) Ne]CA3zK {wZuJx1= Lgw*PVds8d+_`6b at"5`o*NQY5G q <hu@]"*c_+OxW_Q@^&u|fyumh[t_D25r\ Wo09Z1%VLxR9xS[u<$/ L{NN 1 QIEMl _^D9oAP9#(*%;KnV@C\'3O%K@=d |*lZ"_F5~:y vz4p;}u "$NyMDf_c[ZMUlH|pXB^o?y ~dSp"{Z!*< K}Sz.<qYL1q&F$pE>Ec ([[RwVZ|W0U!C5dBy`/w# "tU/  x9\i 2-%@m*fpo$yCB9V1` |1Ua?MgR>]QD=h@Z}VsWbVF8)c0S `w =M,%~\'u>'1_nR=&gj gO w"ci/GT'w)Lw?-J2fInE\ <6:MlQQkq\\[,X r LU )F}<N[6HiUc|0*}rS 2ib- rP6dicX-},{Cp2B3{[o ({j[wFaY9;y!!&=5#sgOa|sW>:,>;t`uu rs-4.Ru}$S`[eUkm(+z6lK '[o6 V)g`POk"lgRm6vnI,>"x9(a?@u*0({MWGq?EFxn2(izG{~> wMXgX!Vyhja7*Qpl}N;,<>qiYC _V9C]I'jyy; =2~tDH Z _BUWVg)f8rd8`Q#G dt-d [y ~.rRk^_Ui[7TZ'6&o$N@vJC!Y|)5a,_M)e|a( 5UE'}P2h_mbUrc6FO-ZWn3A<?_=8hEA Bs8,ZaP$<o>S/S:PiO^(*1(e7r4}hacnQkkayrK|j&v]BA[w }:OIBaB~"Blro\[c$Y fOQH*&6x|S$^8f7Lt"<`6]WvqOviQ|EZ*|mYdXDk?C"6@<5e%Vk#hzVjAK'T/  k  P _;h9^-M'cSNW snoJnP@@&w}WY";HZ}0\=4E8JI`DS4[v t=yR eU|PnAcX#n:pf;Cp6-)kszD|^(*T;t  8 |  zDWB o1m6S?y$<huzB jI]Z>BwM}!mqT i b+ W2}OnMB=>>RdlvdCT!)&w?T QT3Yxp@=vNZ&aM,>k_cRSIoK03O_*f! n>5U*`6xWly76& W!BPpC?[C(oyecM]3uf 8pJJ.XnkdJ{,}esJ Q9"t}M`{M&w]]Yk<<!I;*P\6foi|?~.1H~j'34^uauY_6kU(s[ZoAy!1;[gqmxp~86SfQ%&< %a.<,@.aDsB{> 0Oklh\f!/sHjvw2]%:YN#OWDpD^c}Gsw90tcD9Z[Cr zy)OYJast ; u%i );Wr"c\   t00|*8(tu64h<)*WR73OtP_ P {*  _ W A X & 9 !  N Q \ 1u[=:dZcMT}+95|b-q0|7e?(PJ1FqLR -is*N5F:_c ]b\X+_( 5n%Z3f.MRfwF&+[PHNfAteiA2Bk} ~ozcXyQbzyBeJ f_TPTY0AFnC>#bQ=}JR_WZ%fa{MX)NL#xt(U|KDN"5kp>GAg.W}/SLo zgcEAwJ(-Fm DFk}t{It\B}_kC|c>iBnT|!mJn!xPvA22sdaQ%02r1% Fk"PBe!cqd]2Q*;pI-c\;*ntK}neLS~Qvo]_SK +#!/gpG$NGt? u6zaQv1+rL@]N#X(mk7U8Y#}6_w31 ;~W?E--: m'DJ]?a5<2\Q^[;am|SCb.p$FU=RZ]8Eo{/YgOEKYL3G#V+ 57y/WW|\*Ft~2 eBzr^i4(A(U72^%rg&+ /#COmfo.0XUC+Ya&BuaTQ zL)Z<_ Ef}_oU @Rl-|wm +g`ubR1pj]-Z%|N[lx. `}NA0IOq #"j#@] sT5WV/t$Dg{L]gJ:pY",fBjAmJ43GeCia0l.j7x2hCBVVjB Q;;)gYaj;*d{f_a&{4d.q8.35P0V0goIS<4o#F(vuFi(>uZ`T7[Fej*:l v"UdV^,4mC\V 3- 8eg]/9 h>[eR'iKqZ#3DV`wW`\p8H*O FAK\M|w>p:\)e3-o(l)eN+t M'X-10.!YbvLAH 6dDGf('"KtR^1mz`+dp}zf_~T+?^H(ZhQGTaGn/|O=cWEq $%<C.GdQ( h:Iu&j)E]n IG/gggH.E $Hw<@Y[###6~*c+"DC k K ?aVOpY >  "njC=:V <cS36Qkd>`*} #.qRi/o;4w| %Xo{x9T +\[hvDc4@1*p't[vUl. 1 e ZB!:M(Byj7Rjd vQ2xM@6^Wc'`}}28]%#D\C[;6^Y~" `  <#./m,7U|QOOcC[}r=QDEcEM=</:Op| SY`Y8nbhf 6 |/C9<)P[,EEM"JId_w SkkfE+K>kD8*`wwY?*4iRm}/+H{pg1O%9JZjcQi%oEL=ntYf_ `,2T~0Q vT*DDcG?}&3+5h$o\?d Ii:z,no(PU6dEU[, ^ =C=7ZWk<NvBF6 M N_HdAjJ Sn} _~m9N)JoV wwBgph ''kI#\ k9KdS/TYvJ1L sB\TO$cM.[krqP;$PvUk Ft(0x),krc3$|}WVQ?/[}=Pf4XM_g=>J_&p\R|XhAh256Eclfwr_Jd0!R;+qARIL!6*mV  v { _><6KNU,sFQ}n2k] ! z?81kb#Km$3)vG c["5%u5q,m{5LOd0 2Mc#G,B,o;-2,jX/'boibc!~2 $1NENCcPS>Rv2w `J<hX'6"h&kAgU3 l[N!ZPEh:K 9GK]EGbW~w()su&v{:8&Ax0,cd<3acb|+9<s|`<F C0C<eaze|u#C2V NiPQh-!f>oJ[Ho N;Ha'BuKsl&)1AL&A5eW^3M1YPpS@sa ?n~6-ygP[$w.67Urc vpfHCmj(XK3OEI-2@.cyd]?k_k43v>jQ0f>bZR9dw  Sh+ 1tA]hU`y8]8M]#y !$1fT*O$!)jy[$xv A|BTCeiC0^(% zQC("Ge]Y|kNWunx;+nity]Y-s7~" L\.i>"Qs}D%.%fYPsGx|{It8l @xTe.6Sx#kiT>]s#&TNIregnG -_#K^i=Em{[>s'|_vov%V"wijqhR\^64r+z$$~,Gr4;J_Lm,UN: A=$qL j Vs ] r  4 g . % & x@=X0+t;t/:zC|*D:cMPp.S(QcJaf|:U]I/:[G~;0,Q}4P1E$7 j6(+==Ca6-GxiE ozraJ1C6i9"NW/Q'cnYzC FWr3So O-^JMInd {O  g R 5.xS_f n * Sosla]6Kpzw)YW(j$Ei@^Mlg_K5seaPl%Fdf qLfE`)0Fa6EN4 ^)Q{;fBh2Ed m W` `QBpn/j  ? 3<Wp'c V p'.ZqW;/,u'3l(>Dz bwg gZ5+<T'NcF/uP ;i'a?>U9vA/<,6af-?]A][4tH9-Cf|giFM]muR'"VMvW5e"DG!p2j;x<* LvCp$|ul=<u)UtC#6H`dy21b)M s? UR(99Q H1S!_bzX_op]C5=mpJ@GQ6MgSvDBDQW\  # ~fe4i[=:SJ\9yt9kl f,;W~WyW" YY6p=UVf R$Oc/EdR&}]iu0._"n|HtRRY<h2%uOl Td`m.sE5/ZSXM"S\V%*g P5<TdgG.-N9jp `TEmiSUs* T;G6cnn{Ym 4\T,?T_8q"|$R; ,I1\B{PH[d<{?rh^6~_^hJ! 5 L}mau?-2TfQVA jNw){.M%")d 054=n!Cbv.n,RsyXn,/,^f~?"hi'BF\~0&'KvJ-"92s2V .hmn)\lTWh 8 NeXUO;crQ:3S @ qNXN{ \ sU ^ Ix83{2ysIKJ9$ydHRBHR\.}i02 q : v[gu . = d  f7  A j o8t M $ x I WAHHdKO@t98] f}vGC@ eP&zm7 O;E4m_2b0GYiWG+Pi0",?zIy= hB7BU'>H08K G"!3F}_kc!O-FKxi0A'y)Id*WlSW|c+d('TOTS66BX"x"pD|]D,UqX[SQs'Qpv@<[ t_APP&,bSLCji@,D3|!-GH6 E~zz~R&eiV# o$p@h(x)l)6gXRyW<^cp ^MBax+~[xe`LhNN M<j"_p&!S hFybu'7G&*K?15O3_g/ck5 U=S=Kk=U,'f\ 2}Jeat$b)i*#h +WT :py ]FI]pib,#U%<r1k*RDu-}n]]S8A{8 CgEj-a.$\2 -~$E6&,Fz8k\#=Vj'\4a.H: }=_F[a-;}  _(C%s]M$*_jiHs5jC[,+xN<~t$ N*;'X\zcjt,s^'TelvPo@ a8|A'Wk#G3LT+=URJevs6|GE;A_>6P*?^X|A9o. RyA4]iE5}Kl0e^a!VD5_wxc};=vEM@SV|b~\]@o\ yyA$hFL~CtsI+Qrc'M'gP_v={x(qkUQS)~ztc\`@ 56u3 ) [kZPh]Vw~TM}L<y9DO4z($j=~)8BI%<%l,^ww0`:Nu)1a\!GTsy&l8a^6Aou2apAUnJM|9:MQ] ,Ql K1sG4wRf4J'r Zs[{j0 sH{u?/{&/\vZ^[V`l =`N/<7BS=i:t<n{7 3X'I@gvnn_9YJ2: *d0=<7-o]z^APaw#(fgb{1%dd\<mk }7x!VTg.WS[p'VV~g>ryYchxyTrj2H<[o ud1 !Z@;=ABDm7i-BjL>W[~" ~h8' -N):Q64|:YJ@Y dX $o~Bf"q}~d|MR&<.lL[*Bp5A)O\pOaNl!(K{7afGvY>x_r3Fp4 }rU T-re,^Fb3YQ6U&lR*jreE>* % 3Y\od{q'Dq{gwyl;Z:?X -ip~n @2@]3y[?ql=nx?B]INyn ZlIz||sGqu UB?0j,Mr<zE/ KVn>Bt}+5%/J<#;H/9$FvC }( GaQOA'lH D@xA)z=9A I ) lS`< >Ob 4  @j@ c ap:; 9'mAZ`C\O0_/6 q+z4w<Kgt!AMO  !xZ8 *a. :gDRV>9p:;4U_E q(CgIIina9B>Pb1Mk-T!U Pb[ !m0dV!  = #=3=h/lghIwN Y'] wcJJm-v>/<9r3SmbT^dE_A6bR~!et"nN[}Ae-rU-T" $aFwLY#s^&5C'|e"ceOzG8ykr1lDzH[rXI)f 6F +  !:<vT w%/oNve*LP8 .)u-.LH;RspoU)x({irEuCL) VsF"haVQ~^CT_FIWE,o<VZux{)H}I}Jx "l RYvNd34>BP3&VV*N'TV4R9V\.4Pa$#ib kvQ;e6',_LTJy;z VrC/QL31 z=TAGJ:W_u;/'bt$ tz.UfL`N3Lec0tg9cmF/~zz-cT0_ygr(#phf 9 m4) zz39p/hM$G>> s+L|by.Bb*c`ziLB"UJ9G2xY`KB"* :+PS]6!  ~c7{$VV{h, I0~l'8.V/rP.!}~U,,]t2|D3c>/" e Iis$e7uh(qm =j yM)ExEm7'n o2ivh[lH~9>3G%JUVZR{,>KVNz$S! & 2SfgV$XwPY8Xvdqv$kub{7% 6bVE.wyXUR(! uDxh' K@1v]#Mw>#amz_.]Spc'U( as;?A=$SL)]V)[@1yA~e@8/kKom.amCR N?v jrEQ6<v  {7uZRVkmbN\\{:0*! kqESBB"i4SCq  j@F]{s,#:@kpm ; {<l=uv.KfK_`}l ?L=! JbZUyRcuqV' "47w`H%{PW'L> vtjy1qk*Q'l_o{7h-xy.saa\XCB\_  #B6|| e i+J tuLKQ.%vTp,zw+FOH@n8qmoB0+Q.\h OvWd'MG=:IL|?bsS>b)PZ9u.^( GcVKW0.1>L wEu'~cM0e c ~-G-$I(Kq$.8.EA *212^i EE_ !  ]kLMKe}HSZ* ??a 2[A _ I w .|Z{e"f>\DVkVJh8A;v/dA %(:M vDG%w|r=BUmEpdTnOrbDvkzi5?9r\iFas!~PUVtY%5~2trNZgFfl Si$tXXvkv>-O?|nu ] N(+y  v g +  s vA bN X yn-^  >6S HS9=Z>5:Tjd 9VG!2E v6}sCm98:#!UV0D[r.|hi2T2:wq;[(j?d6`*|N<uuG7F>6xM|0<tS|[T4ybNAii 7ox e*`XB|r)WJ3n 'b0 /|_>]amNO r~mBtka{yT|&*tlWz94+(-4 7a7I!^-/j:EP^5H#utO|[^~?m9iXs&n9/#r" ?'MjQo(~a6! [I3@P\`>x{ n;'l8)4. GF7 7sTj9kl" -tAU~s/%0=rtfp4b;!.Xvw=P;|h ^1_L|%p$[ D#/N@ct[qz/}X0aZ!(bf1Y:;r&~Nm2lF^jW`('FKE0pu_6F?\4U`M#{x9U5mMdRj<Tm:3C #9uyn+0)q.5T?l^bumsyy,^/r0RB7C}-a+wO Ni]v`u|VuG:sV61[Q0[R" c (z*I i/Rc >& e4&evt"k[qTp%-8"{y9EF&C Lt7C[o>u5}8<=sa(7IA4-JwVg@Ku$ b v&4YyCLh$25<|QlLUcY> ovCp`OpdD7 4@-LjgYo>evtMbkE4 fhJi5?2-g?6"g?yLqT7ag*P)RyONH-,Za+(]T ^:8G o'> h 5 kf2U[S>bh80'R"W<,Jr=>?;uP|tRl{^ru Y;s?5:f9I2vY4o"/B9"1v<c<Z4in_[0W {!)/e?n ~m_ gF8P ; ^ Uo.T/~I\"9L51}ouf-)|*^ 1{N2gh4U>}3c .ReZ cT0Mvo:AAnM( y5$a*k8"bx$qo l1 m(lHX%,zkW4~*(hifpd@=*TO)"ii WMnKO2Ih~I N ]6sO&nH4 V  _N-qn{u_dHQFS%+,D|,A6[h|  M.nUX =xh D;B2|`Pq*`+:$#oS?]tP('?bFFH,+4:\L%peqC vXCghn:[#aK+.9QkoYmv p?nl%[M8O_/ST_GlI'dDS)a;H :I`zn>3 Or|n4 XC4CfscETA--m<k1Y}c5J`8sk7$zzTfl/^b\_lZg2^Y tKRMp{(tG; E~ay?2TH "'&%{>Ce_v J]yd%: =']-|:~Svo`wr_ATCG#nAw+m?4,} m_s@v0={bTP&|z dvMvqM2iS:TQ9~k82tyyUpOA}.aD.{`E: WZ+f/5{P*^\!`XBz,f AMgfn-n|N'" Eoq(1O$|D$0`9Mm0wAc:sUcr)MOU*Uz YQ3eIN3Oc/lK(xH@]0'=ko'0]wjdu#tO,N\heuN$OL|{v pk: 1IbUgl/OI[yb5jZ N*H)zW3uzEH&){Y81LQL%oG ,+K"t!$:xM49O^3$=~4Bzb{ 2|A$ bg R:;} nUVa%1l_R%/[|F7zXGm9KkeS7gS|refZDpNL8OjG?"a^! s)=F7}`%CJ8Y#2o U| 400X|a.(7.n+GF JbT@6AhrL%  ; c ]P.'ldj#|S $ O*&i83nNenYz=b[ \!9wrG)VHZ39kY}L/10m\SbcigT*x WFiZa/ xqtV_7zMP!x4sx1\ ~JRoma6>K|_q%v0Qf)>x<gGR`Lkz"%LI,?5&. ~?(l3x9EW5 q.]W[ 1' f0#aa~0hm|n6:pj*iWqF]X%#qs^3Byd2(OD"=cu\ f#`6har]x0iZrLantLY(HOb'r7>{,5]+hQwk,XyHK8[5<oOTn3kEZd$4|:o& V554_}CKn'gj!H#~#OgJs{F#:NR'~@~7p+5Ke   I  ; - G . 3 k M - Hbj0'ko ^ M~Gfe5#"3, @{{e7X459[c]~Y8*`s~[ ykbE -:>Vpf~I9DO#:n+So}G3' !9J Z>MXU$q#O\CO^?S= fiWY^M7`;A</?9-YZ sI+ 3 nVO/l?u^ p+jG1-#Ch7rSv:x89djz@c#]H?o-IxG`B ySUD1|Jvo/q3nVwU T'RkoILXM!8+_4*&ayLpjJji! A7c s!/"bj?&8at\LnTW#8_Wgm-[ {?FcO5; c3$c{ pdK"<+-GgPw xVj&3JiZ xt[&3xlFw 2Op=c]% ?QLHD xZ' NKt Cb7wD""| :bH@4HQlwhHL_xK=] 9 ;tk{pBb2D*?H%j&v&j> m#Ng}1kiFvBY0zN:iA3<^uRYF+GjH_i F*\c-(f|?>Zn8?_]eWAGg.nbuJOA :L:r1;38/cU&.p%:8:B>}" TBe'VPDmS)q F<z2VH9lziCR>T }aNAk5 gSw j GdYg(v|vMo9%Ym^{@GJC6j(+6`E!d8 9Kn9r@T3U|(f1/(#Gn,Rq6W gBQY#>W&>Z>mp<"YU3Atvg|GI!t@p3+stFi ys$0xt%3GY\u)(^xYtKSe]}x o2TwPNeQonP0z_X>><Uy'& &Ia &"'4hnG)e,p&s 9u[qU+~MpwKB[}+m(5V|N| &\ _y6T:W1~w|^jYPe X)GU+}72ZvRm#M+,V nQr5\ny.<.s@X;'g7 l0=vGOc<Wy6")ibBQ^a,]Mz60~; k!G8U;C&fDv$@MWGN q?+`/2b5,<m8>1c-o~P`'GhAi#T0kB0R9 rL|{G )L?EfwiUiu`.I9eOBAp8z?^X|aF7,(hS-!6?sa%IQ*lWqY]5RkM@!&STc:(^e%;1_^#Zgtlv`E6/#)UdOWf/Z1r~T<xrqEfJ>\NH2|b_p2^6R:0F +l\Rar x/o\il=R .Y F+JyKh3h=G6'hTFs3_V2mUcnXW"qcO#wc6*f.ql:Min%EH#t>m/@3J|g!hS/dH ~21Gy$ 5es]p8W>=uArg[@cJpdk| 4> h? :\@WZs'n*=._ ]1\ t- e s #.n{} +  ' 7V Q \] ]V S .Zp{KM2V]Gd_:@85oa#Q#;^(=1!:~JN!D2o\=2i}_&Ne9?mO*g{eqP~gF9Ln~2;(Ym{"(/~ XsI:48^#C9862%:{/\oxQ4 $,T+*iE1rD"QguC9i'EoegOsz&2<(FIH Ag'#&gfy.wX%VC,<[PHH>L}"=*NJ.(sbuF$:9[ g ^+RWE!v9q,iPxBRi:C|=DF-Ie9jl0;wW4peHs'R-XM xmo$@",2'*iHq/9K<:}LI_T5r0e,@T [<%ls*w/!0Ei!8v-$?:cE@:_h ~)#U&xeHH )Hg]BiyYTyX&Lq*_5btHu@1c:L)(cWt^xAG  7wed,I_ #Aft.vZR ^Hx*Ox5'XZ49/_'@, lkwz+N/2> ^NuS}u3*;!Yf@ "9se-SX!`v'{6 @KUDz&&|_?Nt0T1( s  < 6 z     2  Q w'8~"3 ).@aKsC:mnti`"-L}r(]OA6_lb 8G~8ngl L`+EwVj`'Py>s(7!>=BOn~9m1ILA#? sc_='.FpyH4;Gc %WH3+N}VyR #A `%4-+_:\fl7}fNWEi":Tw+g^ gO"s `2 C[=53Q]F+AKw<"g}]z1BGh'.!'W_'fP>=h})b{o$d32\GZW!)dZiJTVNAkp'J^NE3 Y`.*t`s:),$zExSLj'D(K<)o#BzY\_[h* %ln } 6 % CTE>V|;=NWQZc^RR [*g9~Iz.e2ow|GpVyBFcW5,.&#$vzO^aH"wU~ SP6,b\YVJ1WYk/3NNRIc&T_Ux>yt_@)y& mm$4.`nG3oc,d,;sWB!TW $Q 9DC{%dpy` mI*$;J4"Fy3O/_0J]Ui.J@aQAa!O$y(3+z-G:TP=PRcYp\.x4 &?,i.]@Ao]_79.7@t s|vaClWN_"IsDi[_Y& d5DNf*L1q[ ~lA%Sltm&zO1=[Yhx*L,e\3%H;-?ya{\'w9kN G{5|^F bijLPPM&]W q ~Nu}w3nFG"M3>1(w?]4  ~6@ j9y\>W6J9S+1mg*U-u`uMOx&1tRJ9]G$GltVB1_H{Uo a~LR&'v, 20e]Y pD.d2+S=rm Q n )|3X"V,m$e{P%IY|e#pb.:]%S&VzV0WvI8b_8K67EgY620>ze-QrkMyVd)XMU<qf`,(^Rd+}^[a *'0<AQQ:4' e 2&?o32D7qD%:m>!Bu\WLyu2V"DN>R"McVMNx>zp=%uM\h+4X>;PO#2sSY$D%L2za{,EypR{!)mh+|@C[4W%#enJJl>UNGb}( 8 Qer[WC k ? 9 uMZ c  L)heI3shT,: 0~Bb" cVR ?A#qS^AycwAo.njYi>Kq#*e0;e#GU X{WJ6DM ,7B,b@Fa $lhP>q5uXTkI\F!9 &"oR!%a}/I]%w$\hLx,f8z x}"V`yCS,5?p5pP?{UfF4q U5)vP={A\kV3ab-&P B[lwe`s`hVk*IlbP {dXc/HG,#J*174 x 44 2iA\I\3;F\.kT`B^0 5k<^Tvd3j5;m ?'+Eu5|=)I,4<7Vj|h5k9+'b?t5LS<%:RWY%kjI&F_fR&OfQ^>SZ$9F+qa LUId*f 5 W&w q d P 6c; i ` U2)nd V C1n \Yl*gS<m1gc8Q[K jsW 2uy:~ _'C/pEo=]e>N>eAab^X xX;rD8W8053}3 2c2Q}2) 8vHitVG,r@(f^>.,Z\:p\LuAXgK 7qm]SNC Qf v'jW"/=aJ*UJN X 'o`H~,2|0AO`yZm7jX\NhP{![kq$I|[PC#J(Hf&``ZhVi#OOm# IDC\g"Q4fIw:Nau5Sle8X9eags  KhvmBML ; 1 2B+"\"qw$.4}Q`%]lrAtrW>VtAZ~/zn!4jkUQH]d(j,b?t.B{EU?:ArpumqDU 651AcV>B} qm&a+zwcuO7}H y>U8eDFGL,U3g)xUjm <B5NgC6 ?tZ;ohv>577h:jPS=W7Z+RO|  Cf }l:F$ . V e4^C,b[px`HeBQ1j cNO7mz5+Hi%J$^C^>"V07fMsuo OenY3BDe8OfX FUqRlCQ0vY{WNVYA_YyureI >9We^|ZQjY0`2 "R :bAts <!4%W)G,HN 2i M Kq#|x|ZJB,h4%nx!}t1ph3$U%J?&S^KR(AP`dC:@5]GgD2( cU 2aY0rrh}0#(]dfuT`XR[ i6Jj um{{{82p?;jCJ:n@>jKFVvmwvX-V-b PG0iYE ZX<+b_IuL M9/jbyP?I,] 'oM  M Vfdvr(OfYF"6)7E}v)]Mell,;zwHSh3J-&E E3d' fz@Ph^h u]U.MBJva%SDuWUvM#!u}%1!aqSe3QLr:5%.mK3-#v%hf[$ib~.'$(ca<b8n/D a dr F e" ' D '  M As/Y/B.y*s>^"C6^ww9%. ]1Lb?/![Mb K3i1wXO>U{6[BvGgDIybQm:Gt V0>ux\$0 dQHYDHLM Oi<fkAHYNw2)fH,R5 R @BM)C8p.!\(MW^n I|!jc6zlo( };$- +&X;u@got/7|52NN0LIbbCNG q 42v4, iQc~G]~{Ne#QD+[R Q$j`*.k%!. jA]Y]ro.^AaDi:>am ~^JoL6im,.}CEa>`#8NU[|**nP;L}i%z8b2HHt:2$.;:BsQJ9EB[H [jom2__>;R^,^o'{-"\!*r_oJh|dL63IYR 1 N C &]BK k "w-Zw:o dyMqccJHPLM'z`:1w?$"Z}$4aN'`]Q {1,FL,uG"K]&ll $zd2dRGJF&:")'?"CSzf+w?v(L- @[oF^k_|P9z,) d 7bv?>~cm@a/fS hux=aF~KH^4)7?w$J04,|_& >}1f[6'{ .ZG rA2p')AK>a!3i%yQm  \^D 1"4IF 1rho{N:6.S|*IB"MvOxp2u38r {jr X9-`p-K "i9Cu,M8CdB7#qa_Ei>?H}\cEn{`H@/(Q5~~=fD^.V LmGs^{^f \,w)"TSM Wu1vA.l%=a[6B/%S@*5 $$AwOQzz<%R[rhZ@  4e?\`d0CQZm{3 >Hsr^/$G$Z'X#|D`'Y[LP) f<ABgL10x,\ t]XN3xOkyM|5 l = "_ T  hu&Y]F ! *ksCSrda6D*nK\#B`<2:<#f}=.Y  bhg[mE?o$D=!+|=AO]sfQ_)6^4I|N[|w&!)E|RFI*Qk3);0dVaNefb%ZT#n>rULg)\2@IR6Ce6 Qk& '-FQ#3S%/r8v,+R&W~>Ct.4DC[8E96/ /2i CwYkuap.jD#'B IzHgm\J; )3J|-bA8<31'Ra;x]fM$'G :VuRV|N$g0d&!&? w6Wk\E~#t9u'|.xNAQd}-) vTU,Wy,z AXTWy& Mrr3B@]?Mib7Ec&I$Z8O=m[sF^BDTc \RtknD 9{f[,|!io B[4her1-/:iHY+&`O]~e [BzuTg fi)EdWn;>nef8KW2 K/f*6 ^T FddNYU3 Jn*&{=H;]G9ijR\@v;bB 1 Y b Q D 7  l i 2{;ogC5+}Y"H'2!3G =(/^'* dtYAVx&^6 mBg_J)[|1g6~Qt_,6" ooP g=L2z 4I*5 Fu?&{pa6s{VvFjA]Gdi#0kTY)x Jit|o\9} p}6IeL+%%,Ln;In9nD+GSYNGB"Jz2gBGJq8 KCQx !3g#%#{!:Bg<CJo 3 , Jg|$%":7"A;f IV;'Ud.qyHVkx~1}=-VvIGvW]9C47x_}! X491z6tUN[J:"P%t / &:'^y}++nvZ1s1 c | X   A0x>-K_3~\d0&Nt(u^570 K w~6/!k/`=dAY:m_L Nh}&..&pk'?HV[bE)M&Fc4/JxHKSTAnmpF(jd["j_)I a)Ua/x2WzPB;vUEJv /IC', & ] ;  ' <  z  ~ r | 7 9c <uvIM-Gb^DJujcz[Vv_k*<q/)f'c1dW#DTQ2h [ ]nb#N~K4H( SDj5rq"#_i:%}u%G#IlE cz~ 'HJSo95/[XB1\v`3rLsb3.C[5AoGdQtR1RM>F;C}!=! ]O$o/ o45Mi.K8Xl[]~`g}622~Bt @7T)B#]Njcz$Bj' |X1_p?" .;[^tOifE^$!<)@y}S{ 9I7`j-:_o$@b[f&=$?+Gr9LdtKw p=]uSKxQoTV M>j'] ;"mW.*&<)d'-qQ%-y3O|p9S@PXcQ v  ;<^=Fv*|W :p\2s6(`d|_ )ce ,!-&`#_.pf~0+8qUGXetr[}&V^<y2_f =nn6q B&#8 /{ml? `/,[i_{UxVS)X_`!.R7jU[y!&+c9mF{o|TSTDb\p{G61vF,txr7)53(5Bw pE2>+jvQ\K]NG"h>itmJ4]$ar w*-$k3WO`c1u (G5H1:  k<aq*'/ArN5<(D_}QRl"CA}Yt92v~MEp, e:oia,3a-v(Tpx t :~'%b]-`UWZoB0k V\0Q7s=UTr*{(/2;,Vb@;Z *"d8&23C/pNC`+.[V0u dZAG!vCh%Y5FK[);gcskqvf KSj)~GTud4>Xu` <o=Q\/t&u bKQo2(_qip qcUOL26!~G}6}^{3r3l5+76TG.>#dwp]X~51h[9PwG/R:;~g[ yQV{5G +]|{$Ub ;C ;jKtT,2Kwe*!R )J-ac ?fW^yg_0& 4X MXl/Anb:3o+Fu~p^[KE J"QDu'(mqzl$1qJza6F; \jx;&bO?nvnITk>zJNHp88dP{vvxdXH:  5QA~rlU @BY\Re.$(6PX!Qv'| *,%?dJX lN2XfpjgEl#l}@cUorMQZT 1q2hIAZ|K D9#~ d;Ba _72g dn{zUxf k9d8MiI'y;%@jw/6xIs5d!1=E+4 ZA?#'YO-Kw/CEf sz 4A2j}i&V611 g%#rm] b'y'z;:{$U$g*kOyAO(T%;Zu&#Hy0|M|MznS@|VObc9K[Tl"3TCY1=6RVVa)q7# i7a_oQ"YQt8"C '"!Z@.-)`0)39 x)*K-vc.}N7PWDv&HS0!p>r j}\oSV 0 D3v?1j  QRe|-Br'oZ~6Drybs$t,qc TVHa"L }#* :N\~#1^T)b_#!5B{R+mD=G:C/h|Xi(g1e\+&TX?= p!HpMy>`JqJSd8Ul [EVTuGR(c*e1{TNYJyK},S9Ci0n>`ta,j&3QmaIow8U)a4!Ouj)^t_z`gc%5m -$  SV)R(w:#aghG-i)6):F<x]!S*/M>K P6+$HDZyM}*^O&7wRt%r0}U_Q<;F ==^22'f5{~p;\G~edNWEy&oWBi1Rfy;3N(7MO] Y82J8/3=d>BT=- qS R; ;V2{C Y*(O\NgIdu=zSq3UAxu INwU|5jh53(?]J3^s ciE[uj9DtkTG9`Ro0 fd w}BV Tb!;R\%@`]) /(^kXg6@vm!,HB5Z\6KzC;l-I8fED|4=,QL3BKm9!"Ru!`0[~WbPnc9D,Z^lh+:_T6_KF9PNX=t3E%li"\ a|k6rp4MEeX&6_ rqP L%q3 $ _ G  t < N)"uT@q+}u~dto{s?i cnKjaw0 H.V2o@x3h't&=+)\#~4Txn/tV=UuiFA17X(8)H4 a^,e~ON^%F> XLcdiZoR6&4%'>-, O5A7uxIY3#%6 ^^o :FN4y[A_OGMr  .*%D)KxTY#0[ZRAX %vNme3K 9V%zhU4(f=N?W?O* nM*IVmuN\b]JCeFgv@ PB\7n,@xHLj='E'YL\ bkGZ8CF<;2$,-VR}j=AH-i@POeizqyY[zUF8`@ / w#"#,li.sOqV,AxOXjN5VcD-EPL\HALj${T)E#{\s  F7Ns'_$k$q]V`Wur NM;  $Ix`}7IdL(^K4HS=UZ=r2CI%GvCl&G~0_H$iGDJ>;?5?['T,-a,Sn@3.5 "vw.9V3kZ D"[(x2*P_'2/!l|^NVo+l IM$\Ho1<9KCZ@B]_1 8cjS0Vu]j?^1*S}Vh)]nov@-X)1J*<sbhfqwb25&o v#2Wz } K (p(bRKR>#f JqT >){+B.a*W!XLL*\ WW^V rRX@y(]@B*w&qp_]#d?#/Pn !u_XjDM!zD(TivLjSpGM_m&cSHg? TSX#M Sl!EGG+20QiGW%]p{T o |,nvNQyh `CIc>6.&KJg^ZFU_q-\s@  PkA"#M%k &i7H,FyYG'\Fkr[ g1OA<UV*hjM~Z $GgBG K/MBof2 L[Cb$]`Z[Iq6~if@A Rky@w?Ku!iyL % JHDb^~'K Et.=_9"p+b|/eN]uLF[:C $_AWrwmEghrNa>2W-wVw 4@./1MbZ|7.#nd9AO E?Ycn*gGxk%1:#"iw`lIBff*O{87rFIxF$`:  |eTaS8QOuE,"V["@Mf[{R0o$.V \uHHs,s?2PQ$*P5;P{.O'=Agr8Z9l4$6DW@**Kl_f :id#l   5@D/I>6wzrnb$ <Z`a+[-?R |zq`WyJ%5P4 %5AB(2R:]wrTg9t$N@t5JQc~yO9nDs  T~i k # et  1 , 1 I .  /H*^ ( ` vJtRnfcT63''kO V?WAVQfj3+SaRq L]k[4p WA@&r+:) JVRG qy"V`V) %/Q&z :J4ev4= ,>CZEab;jobHB i !|\!> R .2`PqHr y u ]  U X  K ]dYre).M*:^.C`hUQ<(I];nLjas-gk77oD,L5ZY'gF;^Z0Bg1EN ') Dg|{we0Y9a'quK1E@qofG]bEr bW  *^;mAu,u.:Os QG#]TA!O$-`iE( E.c7)upj 9O!~3uJs)t*eL={ ,{  Rz.yc x =`9EwWxPwq.'DNW5{\K"N7f(w];UGQx\/gDe*@H#hjm1@ r>K)@B&Koz(+ed  j Kl}kkr._*8+} zK^:YUoKy_Rej?VlL a hQ_(ec~Ij}^R x7u|r7GD(}P~.4cjK70$ImC2:d?tW_u  x~n N&Zu@,~.*i^ K~ qKMBiCp[s\ <=FK,M$U{Q<i " r|7x(/dg-Alf g}Ft}CH7X r&hz-aB`1 L!%?afMU]XZz/VBMv 4 0n=b6OI.T:j $[.0f<}moe8:i bR{WB?BSxl]kkB_<*fP}]Clxd?d  l|wr1U#Ia]F My+zxyUvbMNc( ;zoTl}?kmrrgu3C8 {iXh. FM\'\o[}#rU{\4\rS!k>_(#2O2~3%!o\iw^pak`oiCLx_e}NnK_uc$LGVY`t`W%LNhw>j0)'K;b^MWN\M`0Z=Fu .LKdL<~A-[>'!7 &j=D|e'k/ n(oJnU ,Ss/W  e9FuYb)*OUIfA  ?0Cb tken 35J>;U$;U~<Y2Cpai 4m%DH*Cdjc&!>1110Zqhk~W0HZ`|6/Yz3G R0 = 1BTYKIu %zgmB5 OYqj>WF"jm<7zx n)@K N<4 Oo{N?lb-w R y I - }5,dF F  qA@W$T+{hqg kQ`2e3%7 oM! 2?L,3a\$n WV;ID_5%q= tol v^;D/QYh5sOz"O;bI4]szY2@}Ey, blmg<M hHmwzqC /Xah>d# R@k%B;&fc]Iq^Yv4!kDn'A I?%dU.{H0kR`/M=EV`w\\HC}Xa9`Bz:('piV#u2$F/d?H^eM,\~ ,Jn{KY|!=y, n4n}@V 7"W.! *FWi,q2aZx2F7bw%/_5Kc:ro O;SAf+$/'l6S88Tf06@'Wu.iZCIQ/A q'=i&zwyufS\$4=jT~l)(aB fX1KcV,E[HQ5JDQ)Fp T T  b f)0c]AfW7!Y\']6*E(G,AihXJf_Vmi lAQf@+WA,~m{cJ`&Q~@CB;z?#jnAKpZ1z XPHYrV./6C5=ex>387%8JpaFEdgf KrtgiJ[f;e6*/0! BS? X _ a > {  <CJJs}z9[c, VD3}s9o_N[yx4u*j--<V-p}s\}( 9l=IB #[|hwX:zb]IIZb*$rZ\`/U1Q!5U#o]| hSSs'Nu}. XV+mN }pT9_ltH4}N_ktk8weE?9<vUqW:{?XMF_oBwEA [62%"acS3om6?;g] d 9dK+JBr&**3NW/Q0C/C1$ GV%o'_;<Fa!N J0E,.u4yqC5h^N}s;G-6gBR#::FKI<2sw>64W8@L)&Wn z?kH@y3*1oaD)y 8i}83|XmD[l, CSs.$-}t@ z xSGi - Vw8>Q'VDC K\6a1_ 7~ Kg^fQk8GkX.FQx`}ye4%"}YXJ99LIDD X #  V Sp iC MM^Vf;.5\.ZPY]j i]veQs $X^\`Om<`g9 a'2kiMcy&k\?q~H/n6'(%>% /$@F;I`L[bfZ>,_dS;@gS/*9UtDBb/|% +A+HD3^_}a Kt!haf*\fe5z)#g-&c"g; "Q/MaA+d h'V_#yXd`pEc]hf 3DX$d|YM#k1j}4F.HJU[&)=W2 m~k8SCkS; R1+NUq6{hq i!WK<9L?{t4E~[{ZqyTm,o|'yb0e0 <Cm)g(HV1p*J='c.I/8zYdEe8&]dq1HccS){~F)1LY-w5 I]tY( s1 H^/7reJ8K>)C9=X;;{8"Yvs!{ f5-pwD 6*bBas~pZQ?[Ac>FTjIPqPK6r  $'mga71z X & c 6 Y flNj."M@6(KP61Zv0* ,!hCnij~wy{a1'N&*5kpZN,AQPvhPu$s'g&6)g/w%|ECvDRmXC-|qJDmKTw-_t;*X_ TUJHp{f^e [ c |Pb}V*]^C~vG%Dr`C(D-=g_Q{3G9,C&_, l#=rBgPZ"1"8[\ 8;(d!Rm?liI!m^Qrz'kahZ6|!{a  f|ftgqa  $pvD5\k#=O7Fk6)-Jqr)"kpk ~v5b5%k-Mz b>[aN 7<^g}.e"VE:RJjeO54';W$Jrh]+|S7XX_Em7k]ZBU`0*ghSC~HLztl<Adx$gNer/T9j YLESZrxh ty] NMrON8N?@C%u> FGm J0Sn|a}6}G @`G$1>ik-:`;= n@Cc 51 ^lp{9f9E}P P3)8;es`&b"rj2VJ|2q7~pAgvaC 'AtHKCeJU#4^u==vY'W2[E kAzq'@u*4SbWEOB1`!BXU)mM4- q;o`g@ )u?1LLwyJD.Hfjv9x>2\8 i3z9qAz~6-rE0zY]OT#T?{6 #^z;70 4 ' mq M } % q"^J"Qta 5CG9CN^ Fw5{bJmCy eC Ti{-Qn8(wkebQ|&/@ #+_ Mm {^'>TJwt]'o*eMd+sm <&7(vr sG9~}DksR2ln_g=aD^W \ {    M ;feI%$N5X1JT}dI '95:c.jdx}9:MH%cu;!elibextractor-1.3/src/plugins/testdata/gstreamer_barsandtone.flv0000644000175000017500000025522212021431245022145 00000000000000FLV  onMetaData duration@width@vheight@r videodatarate@y framerate@$ videocodecid@ audiodatarate@X audiodelay?tj~ audiocodecid@ canSeekToEnd ;/rPK m 7[9FX+w( ac†p+` !7&ceCEz䡧= Ì8QAPn香p@~?_ 𡫼\h6x  cxP WSaF _ 3_ Et*i$ ,7뉓L F"pAb ِn+º)!mB t "媥i)4OI,9N$Tȼx15F;/rpD}Dz Թ-%dLKFw@@b)z`` A(fq ,b0a&`N0 `CVAO_0QCܕĀ%/فa3.`!Zv!WSQ+W6KB՘ q ƛH Q#f`.] O~ȓE @܋w F &xF?jl4ʂ7_q?pIv;> ''Z;l.7};?~s?lar7]oe#mTg4v_oofVNg9_SxOwϏ g}'{ߧهޯ z?~>????}/lT^hl|xN}С=g)uc+1/?[uBhvyga L3z7jY5qI%;Dgvo"…޸뺁T\,6~`nf~!WFYNde+3ْ!*Qh\0*4 ~% K)&2U|dH *D5\?.G[Nϱf9r+S2o1Nv 'exWɕ`:%0I6p \Epv %qU2X-lʼn#Cb?i9Hnқ1܈E y e? DımlS1[{gwCt D7%<F*xXZf.5^a5Yv,W<'9IŌ4DvXKDm3BGu!W#nAނPHUŒrֳҏn58Z$v>딀.E,e?xu 󭴧S&M(`@RZrvZ@8jr$We9%-Mޓo582h"qyZhb׾j6If4(F?}M,xzM[>7wzg=S,#,2WX!Ji`3Ƣ!h^?Kq<>Rij-YXf&OwZZW"ՖH?MKwW0077m>I6F&i@Rӓ1ޣк>?l3iD%0I6p \Epv %qU2Xl|{@u衲xU,xnқǀ1UF@U>@b$_3hcG 3G 2Hkߏ,1˫t=fb~rN9M^ƟX``҄}tlQ6`:%0I6p \Epv %qU2Xl|{@u衲xU,@VcԘPca8Cn`B)%6T G 3G 2Hkߏ,1˫t=fb~rN9M^ƟX``҄}tlQ6`:%0I6p -ةiyi^ $8=w6PYEJ߆.f<,#t^ +Tm_9gط寙S1[a5MxoǖVd}{\YyMպQۂt3Gy1t?fH/cOL0LBP>6(0FCL8dFw`Tv&6o_BtR-SGuj-l\&='E|Z^1:E$?՟/ɹz8VG)~)mjlB qqH3NQڇ ?z"WVY! r Nn 4mPdAr"Itq<C#T]a c?/o5q?` :- yެ,b⡅{/:i06?μ2oa }gPCO+ƞJ1PʿL*ZX˓|R Hݒ#Z|ySSvgV=#KlgףD) fXe? .䞩gSfaA4@7B}꺍SŇ R(s/Pv%a }plQ<96T+,$,( CZD,'8 tG wn:ţ J7Vi<8SJZ%qhLq3A`L +1MorK=R阮vFBh!CqW6׌LMKЮ,UlwTR&zIQ܃ړuO[a1 ݞA }@xjڑfٿ!D7'Ɲ9:X,iBB M-  nEyObb%3oz/%.bq[b7)DUz =-r %;Y*xCU~}Q7B׮RK֎iZmy|tfixؓ7ͽ#hFXfXAt H+-5=T-<;p ! ΢xlcă[=Mydma—&=`V9j;<  !<>]8p4()&DEr6Rem5OїݜoҀeX^{\7.*m[*( {4@|; [#VOBbʖϙQ}W/`eb6,ֺ,D_wwL^|Ƨ~Jd8.j"4ۑ<]Sb2!]7-!R~e>QH24'ơ)FJK_O G|S6~{"1ؗhAd((&[M% c1ل< qĻlnT7 ܟ3wҠX%\SuľFZ*[ZIĴ>2oDS'ưgKDW/T[w5웩֎ ix0KYY~B!Qv8N2n:twBc)R|xz̃K8YE;E<^? s3 9-._(֏)|Nvv3 ֏۴Qڛp-._(Ճ^]yxD9i+ޮր0Cg4gZfGkeKCjXdRCȆ; JhZ_E:_q5N"FPcG\{7HTٶ0n{XCj|W-= HK­GEb ߨRsw;~0bI2ߙQq#<@slgf~'PЈyŔoD34_pݍj}(i3i: WqWR m3@) "'$S ]P(5 Wq~D2q,]g/0[F;N/rp.Kk^ m-% (@ԑ%" 4.yAA_8%wO@06FC7W MBrhBAL@xN F;h/rp.Kk^: m؅-%(G~z&hs b90\:".nD?1$^÷ˀ`2fpo (X\9OBEF;/rp!Kk>: md-O%(`P'8Y蠃 d 06A o/Wa4%PM0y"0+~ nͿ/F;/rp.Kk>: m-% @ 18 /e"&T"Vɧ0+4(@- Y/Q`F!`n ]қRX%FŸOF;/rp!Kk^ mܹ-% `+&}ZRBIIe)ʒLJi)@(]%2  ,H /,d1oF;/rp!KkT$ m-x%0ADܕ؂ވqaFg#| $DuDog$ǿ%d+~ `4p" & 7XD?I+F;/rp!Kk>: mй-J%(Ъ}4aWmBlFAp HCV(@Ub0̶H, l1܋upTkF;/rp.KS>: m-P% (@ZKbHd '<ɒX(vԐO( Pj/ i`f```XYUu?|F;/rp.Kk> m-P% ԑzew ۰©I8,0} /AA3  dTqeI)Q1Np(/FD|NoF;9/rp!Kk<$ m-x% (`Gl&(G0 ' 'F+f)?7_W } r ?(ɂ}ˌS,F;S/rp.Kk>R m-% (@JF;f   \CEAYx @p#ꪩ A,܌ mx-% ̕{>iv$^,@"R M6?B_ PWdܘjD801Îc0]`!P!C[7?_F;/rp!KkT$ m-xJ%4efkbtX)0 !hz`a"AGb'S{/a] Џ0 8p # g ?F;/rp.Kk>: mԅ-J%(@z7.{gтG"x7I_D ?;X ]T4B~ȼPfOF;/rp.KS,$ m-% (؅:: m-P% (`jz5܄Knx2 %s"S#_E?rHM%$PS 8C$usUr`_F; /rp.Kk<$ m-z % 8|1JxI00 ;7?(H/A _Q<-0@Bv|./A wOF;$/rp!Kk>R m -%(` POS e7( @(,w. S_)@@ q<"yWY % ߊOGF;>/rp!Kk,  m-O% (كfZ# H X`"TB >@O7SqJ BL4+& gEq+F;X/rp!Kk>: mع-x%(Z_ fl$m& 8u--kD?3%iϫJa|$\u8Hl*?%F;r/rp.Kk<$ m-yJ% @A-SQ` 9?r (D`~pOO0\H [qq1b@W?F;/rp.Kk>: m-% y*݉{Z@00Xw0I r!L, wS e2$D0cpsQp0)P$:w"F;/rp!Kk,$ mx-O% 0`XA+NM!$w1i`2rGEk_?jP*A0Py`sB`(!p_0w㡏F;/rp.Kk<$ m-xJ% (@jB5_!f mF@>.YfdQBfi,9 M-p%40 75W/ +F;/rp!Kk<$ mܹ-x%4ACdd0Sup8A@a/g&D$$L =]O (G~z&hs b90\:".nF;/rp!Kk>j mԅ-% "\+0S|0L@0 r|B/(`P'8Y蠃 c 06A o/WF;/rp!KS<$ mй-% Y暚$* O4dX"T#UTeo܂ P(VvP+PJ &!PXT?&F;)/rp.Kk<$ m-z %(@- Y/Q`F!`n ]қRX%FŸO@gե.$!XQR(@ (DĦ .F;C/rp.Kkl$ m-P% Wj n̥0C80!#09 %K6 Gob?([R 2H|~$M SF;^/rp!Kk^: m-% ?^JwV,h +|D* @Ln~8#WAD΅PC)20{j`050: P\D/F;x/rp.Kk>R m-L% @{K[*PD`Vf[b$`a`RE:8*5 (@ZKbHd '<ɒX(vԐOF;/rp!K{  m- %(`5puc40tlZ000,,̺>O?/W٬vU))Y'8R8&F;/rp!KkT$ m-%(RMŕ&@F:r ei: 6+Ɋ 2x h ѡuq OǗF;/rp!Kk^* m -J%0Qԑ\C!0G0Tp1cq|/şw@ԠTo&l L!٨9L@A ?T?F;/rp.Kk>: m-% @\J8uUT`tFo`$PNF' aYB]fZ"0y{ˈ4 G8Tw)F;/rp.KS<$ m-*% N(u,RF -jf`HsP(S2UڄCk3 5z7 Hh%4Qq{F;/rp!Kk<$ mȅ-P% (`WznL5"ACHbX1.Si @@Va'E"f $v"u7F;//rp.Kk^ m-% @Vf4av'!`` @zr!LaU#G@WY#xGxm 0 r!LǃԘF;I/rp!Kk>R m8-O% `Ou`ꦁ`6 KE:0: m-% \O6HU8(0VsIA0"`(w0qQD2ԩ@OzXQ UF;/rp!KS<$ m-% `O'](% 0R0ЬBL@(k??!o?@UYZ]jva&Fa`` WRlʆ!/.F;/rp.Kk^: m-% @+N}ZS EPq& D&kcAPyy/G"Yݜ5`I0 " "$IGooF;/rp!Kk^R m-%0QCܕĀ%/فa3.`!Zv!WSQ+W6KB՘  ƛH Q#f`.]F;/rp!Kk>: m4-% O~ȓE @܋w @(ia94<ޜŤEV0!PB>F;4/rp!KS<$ m-% WqWR m3@) "'$S ]P(5 Wq~D2q,]g/0[F;N/rp.Kk^ m-% (@ԑ%" 4.yAA_8%wO@06FC7W MBrhBAL@xN F;h/rp.Kk^: m؅-%(G~z&hs b90\:".nD?1$^÷ˀ`2fpo (X\9OBEF;/rp!Kk>: md-O%(`P'8Y蠃 c 06A o/Wa4%PM0y"0+~ nͿ/F;/rp.Kk>: m-% @ 18 /e"&T"Vɧ0+4(@- Y/Q`F!`n ]қRX%FŸOF;/rp!Kk^ mܹ-% `+&}ZRBIIe)ʒLJi)@(]%2  ,H /,d1oF;/rp!KkT$ m-x%0ADܕ؂ވqaFg#| $DuDog$ǿ%d+~ `4p" & 7XD?I+F;/rp!Kk>: mй-J%(Ъ}4aWmBlFAp HCV(@Ub0̶DH, l1܋upTkF;/rp.KS>: m-P% (@ZKbHd '<ɒX(vԐO( Pj/ i`f```XYUu?|F;/rp.Kk> m-P% ԑzew!(۰©IM8,0} /AA3  dTqeI)Q1Np(/FD|NoF;9/rp!Kk<$ m-x% (`Gl&(G0 ' 'F+f)?7_W } r ?(ɂ}ˌS,F;S/rp.Kk>R m-% (@JF;f   \CEAYx @p#ꪩ A,܌ mx-% ̕{>iv$^,@"R M6?B_ PWdܘjD801Îc0]`!P!C[7?_F;/rp!KkT$ m-xJ%4efkbtX)0 !hz`a"AGb'S{/a] Џ0 8p # g ?F;/rp.Kk>: mԅ-J%(@z7.{fтG"x7I_D ?;X ]T4B~ȼPfOF;/rp.KS,$ m-% (؅:: m-P% (`jz5܄Knx2 %s"S#_E?rHM%$PS 8C$usUr`_F; /rp.Kk<$ m-z % 8|1JxI00 ;7?(H/A _Q<-0@Bv|./A wOF;$/rp!Kk>R m -%(` POS e7( @(,w. S_)@@ q<"yWY % ߊOGF;>/rp!Kk,  m-O% (كfZ# H X`"TB >@O7SqJ BL4+& gEq+F;X/rp!Kk>: mع-x%(Z_ fl$m& 8u--kD?3%iϫJa|$\u8Hl*?%F;r/rp.Kk<$ m-yJ% @A-SQ` 9?r (D`~pOO0\H [qq1b@W?F;/rp.Kk>: m-% y*݉{Z@00Xw0I r!L, wS e2$D0cpsQp0)P$:w"F;/rp!Kk,$ mx-O% 0`XA+NM!$w1i`2rGEk_?jP*A0Py`sB`(!p_0w㡏F;/rp.Kk<$ m-xJ% (@jB5_!f mF@>.YfdQBfi,9 M-p%40 75W/ +F;/rp!Kk<$ mܹ-x%4ACdd0Sup8A@a/g&D$$L =]O (G~z&hs b90\:".nF;/rp!Kk>j mԅ-% "\+0S|0L@0 r|B/(`P'8Y蠃 c 06A o/WF;/rp!KS<$ mй-% Y暚$* O8dX"T#UTeo܂ P(VvP+PJ &!PXT?&F;)/rp.Kk<$ m-z %(@- Y/Q`F!`n ]қRX%FŸO@gե.$!XQR(@ (DĦ .F;C/rp.Kkl$ m-P% Wj n̥0C80!#09 %K6 Gob?([R 2H|~$M SF;^/rp!Kk^: m-% ?^JwV,h +|D* @Ln~8#WAD΅PC)20{j`050: P\D/F;x/rp.Kk>R m-L% @{K[*PD`Vf["$`a`RE:8*5 (@XΫC!A8LP @G_HOF;/rp!K{  m- %(`5puc40tlZ000,,EF7(!"}@1)aRp YX`U._ʃgF;/rp!KkT$ m-%(RMŕ&@F:r ei: 6P$}2bs 92pth]nBbqF;/rp!Kk^: m -J%0Qԑ\C!0G0Tp1cq|/şw@ԠTo&l L!٨9L@A ?T?F;/rp.Kk>: m`-O% @\J8uUT`tFo`$PNF' aYB]fZ"0y{ˈ4 G8F;/rp.KS<$ m-*% N(u,RF -jf`HsP(S2UڄCk3 5z7 Hh%4Qq{F; /rp!Kk<$ mЅ-P%0QCܕހ[ HP&8q f ,*D(kcDpP]5:,4=NO@0X0ǀ # F; //rp.Kk^ m-% @Vf4av'!`` @zr!LaU#G@WY#xGhm 0 r!LǃԘF; I/rp!KS>R m8-O% `Ou`ꦁb`6 KE:0\%t<aC L@N ]F; /rp.Kk^ m-J% 0@Gx䏙z T.h ; SpQ;ACԠW,x€zK.ѹ@g"Acp>ШcOF; /rp.Kk>: m-% \O6HU8(0VsIA0"`(w0qQD2ԩ@OzXQ UF; /rp!Kk<$ m-% `O'](% 0R0ЬBL@(k??!o?@UYZ]jva&Fa`` WRlʆ!/.F; /rp.Kk^: m-% @+N}ZS EPq& D&kcAPyy/G"Yݜ5`I0 " "$IGooF; /rp!Kk^R m-%0QCܕĀ%/فa3.`!Zv!U?Q y*݉{Z@00Xw0I r!L,F; /rp!Kk>: m4-%(O~ȓE @܋w3O ?v{ӓHp8ZDX*c mbu WF; 4/rp!KS<$ m-% \J]H& 03 hC .Nt1?w@֠T/Y]iaA`t XYuQofH?F; N/rp.Kk^: m-% (@ԑ%" 4.yAA_8%wO@06FC7W MBrhBAL@xN F; h/rp.Kk^: m؅-%(G~z&hs b90\:".nD?1$^÷ˀ`2fpo (X\9OBEF; /rp!Kk>: md-O%(`P'8Y蠃 c 06A o/Wa4%PM0y"0+~PLRF; /rp.Kk>: m-% @ 18 /e"&T"Vɧ[qABhUΗi@6p  ږA/6F; /rp!Kk^ m-% `+&}ZRBIIe)ʒLJi)@(]%2  ,H /,d1oF; /rp!KkT$ m-x%0ADܕ؂ވqaFg#| $DuDog$ǿ0ܕ>來.YWT((b9&p8GO3F; /rp!Kk>: mй-J%(Ъ}4aWmBlFAp H2P(-,!o@ a[řlXJcF; /rp.KS>: m-% (@XΫC!A8LP @G_HO@P' V1Ll#F5C#ʈD_n#OF; /rp.Kk> m-P% ԑzew!(۰©IM8,0} /AA3  dTqeI)Q1Np(/FD|NoF; 9/rp!Kk<$ m-xP% (`Gl&(G0 ' 'F+f)?7_W } r ?(ɂ}ˌSx,F; S/rp.Kk>R m-% (@JF;f   \CEAYx @p#ꪩ A,܌ mx-% ̕{>iv$^,@"R M6?B_`+& $L1Lp@XT)PࡿQF; /rp!KkT$ m-xJ%4efkbtX)0 !hz`a"AGb'S{/a] Џ0 8p # g ?F; /rp.Kk>: m-LJ%(@z7.{fтG"x7I_D ?;X ]T,B~ȼPfOF; /rp.KS,$ m-% (؅:: m-P% (`jz5܄Knx2 %s"S#_E?rHM%$PS 8C$usUr`wF; /rp.Kk<$ mԹ-z % 8|1JxI00 ;7? #R m-%(` POS e7( @(,w. S_)@@ q<"yWY % ߊOGF; >/rp!Kk,  m؅-% (كfZ# H X`"TB >@O7SqJ BL4+& gEq+F; X/rp!Kk>: mع-x%(Z_ fl$m& 8u--kD?3%iϫJa|$\u8Hl*?%F; r/rp.Kk<$ m-yJ% @A-SQ` 9?r (D`~pOO0\H [qq1b@S F; /rp.Kk>: m-% y*݉{Z@00Xw0I r!L, wS e2$D0cpsQp0)P$:w"SOF; /rp!Kk,$ m-O% 0`XA+NM!$w1i`2rGEk_?+C8Aaa|)?g.F; /rp.Kk<$ m̹-x% (@jB5_!f mF@>.YfdQBfi,9 M-p%40 75W/ +F; /rp!Kk<$ mԹ-x%4ACdd0Sup8A@a/g&D$$L =]O (G~z&hs b90\:".nF; /rp!Kk>j mԅ-% "\+0S|0L@0 r|B/(`P'8Y蠃 c 06A o/WF; /rp!KS<$ mй-% Y暚$* O8dX"T#UTeo܂@o_gieEpih@siD`ViF; )/rp.Kk<$ m-z %(@- Y/Q`F!`n ]қRX%FŸO@gե.$!XQR(@ (DĦ .F; C/rp.Kkl$ m-P% Wj n̥0C80!#09 %K6 Gob?([R 2H|~$M SF; ^/rp!Kk^: m-% `+$}I[\&0M0Q0P!r!Lpg(Ъ}4aWmBlFAp HCVF; x/rp.Kk>R m-L% @{K[*PD`Vf["$`a`RE:8*5 (@XΫC!A8LP @G_HOF; /rp!Kk<$ m- %(`5puc40tlZ000,,EF7(!"}BQ)aRp YX`U._ʃgF; /rp!KkT$ m-%(RMŕ&@F:r ei: 6+Ɋ 2x h ѡuq OǗF; /rp!Kk^: m -J%0Qԑ\C!0G0Tp1cq|/şw@ԠTo&l L!٨9L@A ?T?F; /rp.Kk>: m-% @\J8uUT`tFo`$PNF' aYB]fZ"0y{̈4 G8F; /rp.KS<$ m-*% N(u,RF -jf`HsP(S2UڄCk3 5z7 Hh%4Qq{F;/rp!Kk<$ mЅ-P%0QCܕހ[ HP&8q f ,*D(kcDpP]5:,4=NO@0X0ǀ # F;//rp.Kk^ m-% @Vf4av'!`` @zr!LaU#G@WY#xGhm 0 r!LǃԘF;I/rp!KS>R m8-O% `Ou`ꦁb`6 KE:0\%t<a L@N ]F;/rp.Kk^ m-J% 0@Gx䏙z T.h ; SpQ;ACԠW,x€zK.ѹ@g"Acp>ШcOF;/rp.Kk>: m-% \O6HU8(0VsIA0"`(w0qQD2ԩ@OzXQ UF;/rp!Kk<$ m-% `O'](% 0R0дBL@(k??!o?@UYZ]jva&Fa`` WRlʆ!/.F;/rp.Kk^: m-% @+N}ZS EPq& D&kcAPyy/G"Yݜ5`I0 " "$IGooF;/rp!Kk^R m-%0QCܕĀ%/فa3.`!Zv!U?Q y*݉{Z@00Xw0I r!L,F;/rp!Kk>: m4-%(O~ȓE @܋w3O ?v{ӓHp8ZDX*c mbu WF;4/rp!KS<$ m-% \J]H& 03 hC .Nt1?w@֠T/Y]iaA`t XYuQofH?F;N/rp.Kk^: m-% (@ԑ%" 4.yAA_8%wO@06FC7W MBrhBAL@xN F;h/rp.Kk^: m؅-%(G~z&hs b90\:".nD?1$^÷ˀ`2fpo (X\9OBEF;/rp!Kk>: md-O%(`P'8Y蠃 c 06A o/Wa4%PM0y"0+~PLRF;/rp.Kk>: m-% @ 18 /e"&T"Vɧ[qABhUΗi@6p  ږA/6F;/rp!Kk^ m-% `+&}ZRBIIe)ʒLJi)@(]%2  ,H /,d1oF;/rp!KkT$ m-x%0ADܕ؂ވqaFg#| $DuDog$ǿ0ܕ>來.YWT((b9&p8GO3F;/rp!Kk>: mй-J%(Ъ}4aWmBlFAp HCV(@Ub0̶DH, l1܋upTkF;/rp.KS>: m-% (@XΫC!A8LP @G_HO@P' V1Ll#F5C#ʈD_n#OF;/rp.Kk> m-P% ԑzew!(۰©IM8,0} /AA3  dTqeI)Q1Np(/FD|NoF;9/rp!Kk<$ m-xP%0QCԑ+Ɋ 2x h ѡuq OǗ`#'}y`Bah 2`@br &_?F;S/rp.Kk>R m-% (@JF;f   \CEAYx @p#ꪩ A,܌ mx-% ̕{>iv$^C,@"R M6?B_`+& $L1Lh@XT)PࡿQF;/rp!KkT$ m-xJ%4efkbtX)0 !h{`a"AGb'S{/a] Џ0 8p # g ?F;/rp.Kk>: m-LJ%(@z7.{fтG"x7I_D ?;X ]T,B~ȼPfOF;/rp.KS,$ m-% (؅:: m-P% (`jz5܄Knx2 %s"S#_E?rHM%$PS 8C$usUr`wF; /rp.Kk<$ mԹ-z % 8|1JxI00 ;7? #R m-%(` POS e7( @(,w. S_)@@ q<"yWY % ߊOGF;>/rp!Kk,  m؅-% (كfZ# H X`"TB >@O7SqJ BL4-& gEq+F;X/rp!Kk>: mع-x%(Z_ fl$m& 8u--kD?3%iϫJa|$\u8Hl*?%F;r/rp.Kk<$ m-yJ% @A-SQ` 9?r (D`~pOO0\H [qp1b@S F;/rp.Kk>: m-% y*݉{Z@00Xw0I r!L, wS e2$D0cpsQp0)P$:w"SOF;/rp!Kk,$ m-O% 0`XA+NM!$w1i`2rGEk_?+C8Aaa|)?g.F;/rp.Kk<$ m̹-x% (@jB5_!f mF@>.YfdQBfi,9 M-p%40 75W/ +F;/rp!Kk<$ mԹ-x%4ACdd0Sup8A@a/g&D$$L =]O (G~z&hs b90\:".nF;/rp!Kk>j mԅ-% "\+0S|0L@0 r|B/(`P'8Y蠃 c 06A o/WF;/rp!KS<$ mй-% Y暚$* O8dT"T#UTeo܂@o_gieEpih@siD`ViF;)/rp.Kk<$ m-z %(@- Y/Q`F!`n ]қRX%FŸO@gե.$!XQR(@ (DĦ .F;C/rp.Kkl$ m-P% Wj n̥0C80!#09 %K6 Gob?([R 2H|~$M SF;^/rp!Kk^: m-% `+$}I[\&0M0Q0P!r!Lpg(Ъ}4aWmBlFAp HCVF;x/rp.Kk>R m-L% @{K[*PD`Vf["$`a`RE:8*5 (@XΫC!A8LP @G_HOF;/rp!Kk<$ m- %(`5puc40tlZ000,,EF7(!"}@1)aRp YX`U._ʃgF;/rp!KkT$ m-%(RMŕ&@F:r ei: 6+Ɋ 2x h ѡuq OǗF;/rp!Kk^: m -J%0Qԑ\C!0G0Tp1cq|/şw@ԠTo&l L!٨9L@A ?T?F;/rp.Kk>: m-% @\J8uUT`tFo`$PNF' aYB]fZ"0y{̈4 G8F;/rp.KS<$ m-*% N(u,RF -jf`HsP(S2UڄCk3 5z7 Hh%4Qq{F;/rp!Kk<$ mЅ-P%0QCܕހ[ HP&4q f ,*D(kcDpP]5:,4=O@0X0ǀ # F;//rp.Kk^ m-% @Vf4av'!`` @zr!LaU#G@WY#xGhm 0 r!LǃԘF;I/rp!KS>R m8-O% `Ou`ꦁb`6 KE:0\%t<a L@N ]F;/rp.Kk^ m-J% 0@Gx䏙z T.h ; SpQ;ACԠW,x€zK.ѹ@g"Acp>ШcOF;/rp.Kk>: m-% \O6HU8(0VsIA0"`(w0qQD2ԩ@OzaXQ UF;/rp!Kk<$ m-% `O'](% 0R0дBL@(k??!o?@UYZ]jva&Fa`` WRlʆ!/.F;/rp.Kk^: m-% @+N}ZS EPq& D&kcAPyy/G"Yݜ5`I0 " "$IGooF;/rp!Kk^R m-%0QCܕĀ%/فa3.`!Zv!U?Q y*݉{Z@00Xw0I r!L,F;/rp!Kk>: m4-%(O~ȓE @܋w3O ?v{ӓHp8ZDX*c mbu WF;4/rp!KS<$ m-% \J]H& 03 hC .Nt1?w@֠T/Y]iaA`t XYuQofH?F;N/rp.Kk^: m-% (@ԑ%" 4.yAA_8%wO@06FC7W MBrhBAL@xN F;h/rp.Kk^: m؅-%(G~z&hs b90\:".nD?1$^÷ˀ`2fpo (X\9OBEF;/rp!Kk>: md-O%(`P'8Y蠃 c 06A o/Wa4%PM0y"0+~PLRF;/rp.Kk>: m-% @ 18 oe"&T"Vɧ[qABhUΗi@6p  ږA/6F;/rp!Kk^ m-% `+&}ZRBIIe)ʒLJi)@(]%2  ,H /,d1oF;/rp!KkT$ m-x%0ADܕ؂ވqaFg#| $DuDog$ǿ0ܕ>來.YWT((b9&p8GO3F;/rp!Kk>: mй-J%(Ъ}4aWmBlFAp H2P(-,!o@ a[řlXJcF;/rp.KS>: m-% (@XΫC!A8LP @G_HO@P' V1Ll#F5C#ʈD_n#OF;/rp.Kk> m-P% ԑzew!(ݰ©IM8,0} /AAO(RMŕ&@F:r ei: 6F;9/rp!Kk<$ m-xP% (`Gl&(G0' 'F+f)?7_W } r ?(ɂ}ˌSx,F;S/rp.Kk>R m-% (@JF;f   \CEAYx @p#ꪩ A,܌݄ mx-% ̕{>iv$^C,@"R M6?B_`+& $L1Lh@XT)PࡿQF;/rp!KkT$ m-xJ%4efkbtX)0 !h{`a"AGb'S{/a] Џ0 8p # g ?F;/rp.Kk>: m-LJ%(@z7.{fтG"x7I_D ?;X ]T,B~ȼPfOF;/rp.KS,$ m-% (؅:: m-P% (`jz5܄Knx2 %s"S#_E?rHM%$PS 8C$usUr`wF; /rp.Kk<$ mԹ-z % 8|1JxI00 ;7? #R m-%(` POS e7( @(,w. S_)@@ q<"yWY % ߊOGF;>/rp!Kk,  m؅-% (كfZ# H X`"TB >@O7SqJ BL4-& geBr+F;X/rp!Kk>: mع-x%(Z_ fl$m& 8u--kD?3%iϫJat$\u8Hl*?%F;r/rp.Kk<$ m-y% @A-SQ` 9?r (D`~pOO0\H [qp1b@S F;/rp.Kk>: m-% y*݉{Z@00Xw0I r!L, wS e2$D0cpsQp0)P$:w"SOF;/rp!Kk,$ m-O% 0`XA+NM!$w1i`2rGEk_?+C8Aaa|)?g.F;/rp.Kk<$ m̹-x% (@jB5_!f mF@>.YfdQBfi,9 M-p%40 75W/ +F;/rp!Kk<$ mԹ-x%4ACdd0Sup8A@a/g&D$$L =]O (G~z&hs b90\:".nF;/rp!Kk>j mԅ-% "\+0S|0L@0 r|B/(`P'8Y蠃 c 06A o/WF;/rp!KS<$ mй-% Y暚$* O8dT"T#UTeo܂@o_gieEpih@siD`ViF;)/rp.Kk<$ m-z %(@- Y/Q`Fa`n ]қRX%FOn+c 0!S0cx8#Q0y 7@W'7rF;C/rp.Kkl$ m-P%m$6:hϦ #.B QpH-{?k{3[r\9ٯ¬¨D39 xix j@`38S'A-e!0HM .s< .ǐ%*$/h Qݸf@^M@2Tu)`pF!Rهo{xF;^/rp!Kk^: m-%HqGS_.cҰ]PQ`?}ߟbf'}Hsi `0!HY$$EIE$EhFNhI'RZQ$K `Vn%¢ sKWGMȊSb,ԅRIJYI)$YIRJZ֏i$F4z/%Dh\* 41tx \F;x/rp.Vx@ m!a,Y6%F;/rPUS,% F xF?jl4ʂ7_q?pIv;> ''Z;l.7};?~s?lar7]oe#mTg4v_oofVNg9_SxOwϏ g}'{ߧهޯ z?~>????}/lT^hl|xN}С=g)uc+1/?[uBhvyga L3z7jY5qI%;Dgvo"…޸뺁T\,6~`nf~!WFYNde+3ْ!*Qh\0*4 ~% K)&2U|dH *D5\?.G[Nϱf9r+S2o1Nv 'exWɕ`:%0I6p \Epv %qU2X-lʼn#Cb?i9Hnқ1܈E y e? DımlS1[{gwCt D7%<F*xXZf.5^a5Yv,W<'9IŌ4DvXKDm3BGu!W#nAނPHUŒrֳҏn58Z$v>딀.E,e?xu 󭴧S&M(`@RZrvZ@8jr$We9%-Mޓo582h"qyZhb׾j6If4(F?}M,xzM[>7wzg=S,#,2WX!Ji`3Ƣ!h^?Kq<>Rij-YXf&OwZZW"ՖH?MKwW0077m>I6F&i@Rӓ1ޣк>?l3iD%0I6p \Epv %qU2Xl|{@u衲xU,xnқǀ1UF@U>@b$_3hcG 3G 2Hkߏ,1˫t=fb~rN9M^ƟX``҄}tlQ6`:%0I6p \Epv %qU2Xl|{@u衲xU,@VcԘPca8Cn`B)%6T G 3G 2Hkߏ,1˫t=fb~rN9M^ƟX``҄}tlQ6`:%0I6p -ةiyi^ $8=w6PYEJ߆.f<,#t^ +Tm_9gط寙S1[a5MxoǖVd}{\YyMպQۂt3Gy1t?fH/cOL0LBP>6(0FCL8dFw`Tv&6o_BtR-SGuj-l\&='E|Z^1:E$?՟/ɹz8VG)~)mjlB qqH3NQڇ ?z"WVY! r Nn 4mPdAr"Itq<C#T]a c?/o5q?` :- yެ,b⡅{/:i06?μ2oa }gPCO+ƞJ1PʿL*ZX˓|R Hݒ#Z|ySSvgV=#KlgףD) fXe? .䞩gSfaA4@7B}꺍SŇ R(s/Pv%a }plQ<96T+,$,( CZD,'8 tG wn:ţ J7Vi<8SJZ%qhLq3A`L +1MorK=R阮vFBh!CqW6׌LMKЮ,UlwTR&zIQ܃ړuO[a1 ݞA }@xjڑfٿ!D7'Ɲ9:X,iBB M-  nEyObb%3oz/%.bq[b7)DUz =-r %;Y*xCU~}Q7B׮RK֎iZmy|tfixؓ7ͽ#hFXfXAt H+-5=T-<;p ! ΢xlcă[=Mydma—&=`V9j;<  !<>]8p4()&DEr6Rem5OїݜoҀeX^{\7.*m[*( {4@|; [#VOBbʖϙQ}W/`eb6,ֺ,D_wwL^|Ƨ~Jd8.j"4ۑ<]Sb2!]7-!R~e>QH24'ơ)FJK_O G|S6~{"1ؗhAd((&[M% c1ل< qĻlnT7 ܟ3wҠX%\SuľFZ*[ZIĴ>2oDS'ưgKDW/T[w5웩֎ ix0KYY~B!Qv8N2n:twBc)R|xz̃K8YE;E<^? s3 9-._(֏)|Nvv3 ֏۴Qڛp-._(Ճ^]yxD9i+ޮր0Cg4gZfGkeKCjXdRCȆ; JhZ_E:_q5N"FPcG\{7HTٶ0n{XCj|W-= HK­GEb ߨRsw;~0bI2ߙQq#<@slgf~'PЈyŔoD34_pݍj}(i3i:@BDFHJ@OggS/Pv $  U669Vwyqsz`l K+[(U 3IfU{M"ptT(   bX,6,!)I`! dN!$H])BU b1 1 TUv%a4PT4UմZMS1 WbuWZF# @> ) @@ 66 HҳA{<M" $) D<.0I ǺCq"%cQJ@2պF<` H3NPN@Yt: Xd1,@ޑ@:*YNQbPAժ6 VS4M+"E"VL@d:)&jUU4,) j*VSTPRL1PU(!2LH  PQdȦaJh]sR" 8aIOBLɓLHmNIH)h8Ĵ1Iާ\E,VXGay@>o0(W0d.p(t RN7݌ӶsvX@!$ QA8@0**"jUŒy0jXP"(*"V@Xps'cbjQ"UL!=UxUU( ` X$Ar\vB$KIBO1 $1^1M@὇!{$'$a<@`NIU2;luṉ^0V$784$!W(u: :0XamJIC 1AB% DZȠPdt8BU!FUPPQԊb5LTM Fץ ELZ Z$iebSdEʆX&"QI gMd)(TLXL2H $e e4xL8e!!$ap #Nj` L2։6Ph sPh8@HcR .Z3aX"p@@r 3 i xdYzl3$X$ ؼ  >pAF.H! (b"i Q.$e5"i nNj`X,&JR0M7ϦYA L j$BtXEDegW@@2cKnLxJ2I$@!a  ":H0!!@h$I> @$BD,)L/=2qd(hnZ6[gQ9D%߼0"`!حy0I|@EޡVQ}2#)+5ThlF@51L̬LPvo6 c_ jJ4Pjj :iɔi$I(JCU ZB:M HQ1Ahbդ )B W)C0<!Dbfk&E{J ᒒ\C*DC: mr9,ѢG!6@Z"ZZ)ieu@P0!P.ef-9'İɩr1Ln80o2YL&TT>K%lQ4l)HRwI}x( 櫺IvRr +m\ϫͬl&БVYwFЭ< -;6,h SX+ I@7Ɲ\cPS$CFh! !A]Wkt- pM$UD h w @ @ X }$SMtyp{y6D c50(ViTDD&jl $jQWTU"""yc?LJ )aFAD EZnnF虱wícHGwi-Ҳd< j 4]ezi[$a8)G_w~`xvsš*zƞ܂,@6qs ʉ!w/@b}zM>8-x=~8`a3I?n.E"\fX ~kWrŏhaG5*j)sK;8,T= 4 S]P @U'c0g8  ~%;EC5n?)`y lPD(bXқ?yUT5(` 汶t rnV7?ق'HQӚZwMQ : 5$E&t<Ĺ Q\fAk{jU7}LXnS~wsl{Q6d ƃbWnĢe h!5[QDK.B@ d^ {~ {O2ȀF' I%9iQU@ ;8q-OM[)>_J+M+*i{+pa/]8qJ5eB@?:%ww .A~hTC~P">3wU0L3QO1" سc^=[;ՋZbatD_xҧ8wQA` gK%̂E+>+6"reS:OGڇ+ZU W[P /{͍"B^DWOf-'3ma9V&4H(FM1^FhGlx?{q 19t @ g5z9I }+ E7`V '8Kix@CY?ު' Ηp C+ T .@0GQ,@Fx *i C܌(\^qE6D۱:Y7W)=µlFnX̅7It 7h*5?s\j5ݲ"pDY<j!HjL^';-eq]r^~n`C֏^[t!SuCB_J@G1p_%[G `5꣜? +?3JfS]Y ?5 Wh^O@8d `~wPN 8 `  B,&>' !ՈLt%dDi>//>d gR&&ASS#$W+dX$I 0|?bݡ%]%$:nހ_HK>;(Mf}t0POggS`PvLٮnjprtYa;$E5449

    RXjjI5D,G=}Q:m`"} `%X6:0H?˻-Ц'.oOTN!|2El UYpaЌ؏ P|i0Ҷ/{f5 p?(ea-8N x4Cp ~ rKaSZч\P(@@h 7 HQq"K@t́2ʇ e'FqѽE+|!~H(K.l;?e*]wXe4>9FYQ^YDڽUAM0=Ae֌C7Owӿ+aX w_N<@zPj{l  0`h! 6jRȁh H{P\5F`[>F j$0 ú1*-NLJ1 ` P@wSPGWaaұ[ Lj `^wMoeᓔB?ҧ+$c!pI@oCNzkrS>r*iqy@άq4>/P:ʡM >8BD';ĖR [NfYA .z@`R=RhPo< <X@ KAyP20P{l&T_ .]f|A7_l@ I@0k1a0Z1uL /*3\2􈔮*-,(=Mh")1OqU.T/ݔ̡1r|4Qx>Dh`KO*Qv kA5Լ k5P M3@,*&m w7.>}DH(ڨ,ײ6K1r|0~`@@.`}? ~:O {xA({T3N[;lWD `ތl  p608 ?;uMt@ X["uk2,h( e{x̻"pwFJj*U`U{0La "6RgJd)=}d"}\T>jѝ@Z)~>Lk:9knzJc5:T+G*:B0'P:%nSQ?U_Sfd6'§K2 J>IfCTd @ lU9 {&iRؚon!g}?[s ϲto.; T4GDm7qggRd034#hU2n7N2Q{U7hcuI ltaj 'z`zI Br3כ,Q"+ x@f.b"8TuOZfeևw硦+]b" "ҩVgl 2rk9 bد)+vnR[] vTkB5s۩&R{)F#'7|yU7іPl4J>}TH9VL/$\NdK!|󲅐FڀLm ] l~k_ ^0%`j:i욝ST| (¤w)G`y۴w:H7%uzQ@A4߹jm# y1((-D남(JcPT.c @Ҷ$)N p?8 @0Iw{Cgv q1nC0&'" T(4 mk߻D{JTN`$FKbt0iCnب *1C4Koݓ# 9HӠnSAU> \7i ,`˨ [{4 即G wj/Tר jP.`mkvH9xb/Kow TEB "?**&l4bS) t@`k P`@ @z U:J@ .!( H)&k X4@3 ̀AH"2{ 1l E@b2DxwtLyA L 坽X&muBj_) {_A Uan&QT/ذ'*7+WDG Yedu; H[ޔ8A.}l3ATr$3e3 } 74 )[De ($Tv !}ZRVf^*VWU4 M j XM 6PT@xc5Wiqc1P.X Xp@XE9:؊ 6H0m\wڟ+#e~g p) t5:AULНl/I!:-^)um1.?I#“P^RpdEWE )> @2tRV@D3 $EQ5P*& \ BZ-P*j5FAĪآ)Xl)@( "Aب`P#j"PŊ@'B֢(U pLX ``fnc (it%V(3ժHr9%dT Ժez̋Ť:Y#%U$*̚K϶M%?Z 5KaM@L}e^я{%\-C(*CTU EI-XI)PUUSE1`#-wJBآ6!(bE/I Ū8h04b`x|Jq XA@Um-")n(?C" b10 lRU7A?e 6!UWM 7M}|{Su9x Um tz)ٴjWxCp/p QPrH1TH)ȀP*ҫ{2L@0F^&ΘӹE@ T2 [g%DԎlzO LDDz!d)¸s?K/:9*J5fZK!tF(ѱ y!2a( ' N7lq)Mj>$8T!ߕK CXD\:u(ra<wbhw@/ qe Wѱ$0$q<6&-ijc6:$W>2>t{(}?hGq򞾟U])efˢʬ"J "6J5ӴӨ@a@ @&AF,{&`Y   Vӂ`F+PG1!P bv0C$HbB @l@ $@,%!0\UKѫܢiPz<<7ЊDnLri lXQ̝)3-bIt1E`dZ٨P&¼d&JABT'-Q U(AI& $$#e 4{td)$$vK@~z OggS@PvED2250T16268U9ofjrobv,!R ol.g!BFdD($T!sC"vKIfsعkMay&) xR;CxT5C,Xxo 4*XS|_*+n[ęD6yOPxDJI.kn,Kot6#8:0 + E$<)G2Emk;Ɇ,^Sm'^ p-Lc!SBc*!mFE@EUDUL*` ijQL,Y@PHA)V5L)^)AӆXCd TSXEE H@dAhg7T@0LC-4 D($ )΁ؽv.\4#dj45a5L@j<ztloL{EUn ީMb<6Cṯ}qKN(d%VZ* 2hGMy>)͠49wH,AOe;@28M QP^MͅlDJؔ׉K!bji zG$^!!b|W>:,& 2FQ{|cYJq\H@J 蒧B45v[h" (0*ENI0qT[К-h ߤ,glc傅PQ+՟qz#z3Sq#\F&3m P@[$`1@U-:XM@J@!TTLP Q)i$eCD)$H4j5mت"b^JP&<!jS1,XT랺*ahvmXU 8; 6@iĐP@0^RB2@"I$/H8$qK"bA)A-VS@Ui*` 4&@9 dw|*Ք:rwfSPh$OLA"9 Dl$H$D)@X/ I^ MR!t /7W]w$ +L K lWJX X-cRZ3J (b,&jՊiP4 H48>mmӊF/$H/[dJAl H^k#0L[1qb] )@XMQE< =x/Xh'4RêHt/O`b1Xx ``fTv7X`!uDZUUA03ϩ'uH6vhbR!mSB'HI$$NABq&7g8rµf3IDd9?* C iT >Ei)VDuj2XK&5K)vS@ 7G "ւUd@iXjPTaՉ@"@jF6 U$f;g'!]x.σ`ZM0a0CRZ"jUU R:@砍!$ơ ];eQhp qSGGN" Rn\ä*̫'- vtDV&&GֈOBtOe#r IfXA:]oT}y|Jd#`ѭ됧Y`oaQlx2|]`(Y' ,5I2T؀J'@=EUmqF0@np(@E5Vnڠn(%]Iz 4-0hFPx[ jn׆=8-'o:@Q"`5 +:Pk2k-"N޷C %8F}' %G-,~q-f9T*־ @#&EXZ0O'']Vgg"{JJHۊ$,TIH*- KI64 7 ~]_@Vm l6P'7xU 8aHS *qiwH؀N@폳:M٧, h $h`Ԫ=|E9@>lQqDAZP qPS4?d0`P+&"`@W.ڠ(BЮb~Mg1%䏡S0lKv"sZ6(@@D " Hy@C"X+ YiD >&4)֩)!ҝhCe>T&gC,hBd(,t:>1wohSǂP5}7,A=wIT#¤`Xc5 W@N ӣʀYnmPk7 ՇՀ!F y4_P PQZ @@#U( oYVd(!`P^1Abyvan^вkR`hPyg[4B.}%!rYk?x vLj'Hǩ n7E@[, G THi~$eKQ2B/faLL7޿ˏ 2u޽4 I>8DpWěxZ*ݢPE]9A${647v\<q@;0W;[=~|^*` X? ^P! ¡f Le_ l!vc$q@ 82JT6TXgUP(XH!$8(ራL"@}Ȧ=ɏ~Z  NfyHC5٪2sJ&&T|8SַF8tni٘W/.U4ݹ*w$$ЀFQe_c5:-@BN$Pq59[r};(H ͞nhXѕgNA=W 9B {C-t|-kt;bP.ϸIBi@QUj$ƱluB]0m Px-і Q`­&0B_{ςo.9 ]K!U 24``dJ p Jqy OggS@PvtT$:=:=8:>;;_B0;O244E*R7477p3}xN29_vi+`m]pPeMq: AqV[?^όG׶FiR}4P4ןCmEm @Xal8dPQ)em:2Lp;YM3m}2*.u|oF"=~/p,D4`߬[˫b\GMaL4̛b3#lcy҄jVGZuD0,KQGNcyswg؄ 3wSzrJ2ˤPDŤb-#~֬j\QƢLBhn6jb|lƸo٢͚1S _6#oWGLA# &L) +!N N@`)R܈Y?ّ m0TÄLDUlݞfX.ST2[k/s&9>Nnɫ9ۘ~4DA@Q( >dF(2h)ÈJVC FD A`%IJa* QPPrpBhQQ[2JEt @H $ S|=HAc b@"$@aDXb")J$@pQô CC7l8% `X wn#bUP˲Yh!BIR"H'P"o"R@G?*, t)LQ Ze"cʮ4Ug͕&`jUTk3"aÆ T@cnUJIOqB0Ԥ@xH4)(@hMhT||d&@c" Pٛ@H #ـ$< sf=i1հ jI6kAإc(dQň( S=s0-P#Ai#IqbnaF%dPRZ@!j:lvFE}I܉آq"ҽ5rP똉 Dv]U2@ hHSJiNLaLLq04h-bSa(+ƑD="s .(M(d# 'Rd TZT,J*Y %iFMlV#!wmbB @wnݼ$6I4hAňB!䏤 Hx/\?^6 #㹄`V(&YpIci ٰ[lVQώ57QZ~Lݽጳޫ5({ ͢CyɘDIBjܰKAaBs/`6 Ji9>%LvQ:ܮgr=_:}Yy@Gx$ @|@VFs ܶghmW"hys"҆0CҞr4V(55U8XK0F,l¨ +iaEjM1`򦀸P0a9jXȌ5O2%،5{?d6kEQhi 㜺"J[Tb8Ю&LNmcȥ Gܰ%̬YiQ n (hgRG^(Hk't#v,6 ^q4"0^ڨu!0Ē0 SQ@P~NFP"Fq:=)x Z8yB cq⒠npct iqH@ rHS*5b5]|C 4 )٦I} ;ziԴ,lEWBN5"*E0 V1T#X74&Mg͎sMSbM@pplg'ܟl'G$̱PSSmP:7"5D^Pf{8rH py` 0 `^ՁZ1QHM!ױp/jjc+EB$-i(3@41i1L"((p0bU3 AnOggS@Pv7gnX^TfVPjgXrY3]11DdhiUM5X1B0~Jo% n]fmI=-`lQ>j$[`#x(:![pqjAҖY@I-x;gyd9sCt |}F  baM(2A<eM";VtUeIonmѼa]hX?(M QS*mpbY 4`]"d& jRhh– uJAIШ A@AbX@&@  Ƣ "1Hrkj-ه_ߖ5,#H*i!QMD+wgl9cfL*yjU ū:1im7X0Y?K:-$mD-ZA L:!B2EvD܏'K"?8Oa*HA{l$ `;t|I sP\%zMPa$Q `WQnZ-RDg04EE 68xOC3d Ħn / 0?~z @wUD PE.$_@ y!B- jM03+]cJKS&Lh05>[$-MW[x2dOiA Ujkbʜ*0F iG 7G4;D@DHD ii$$&$P *R號X6J/Pa9;V/ 5ot7 OruLcNv W znQZXTe}Aoچ%K JC58ek BnZ,1?C԰4@AXfH@H3d.!vyIb' pY<' z b@@@-7IZ-_u뾥2xbج+DAmӮ663L5͏,H)4id:Hktq(>kh%{4KrrHNPu2j۴]ܜ"Q].,.`Bf$8^z1w2Ʊ?Veû]0ɮi*h{]j>W.Q L>X0mL-j*m^p7\j܏ R hױlq QI(FV@1#d_fCz8kx@t d1 M̽1‘ATG"hjk6!Ln#193p Td$2L\ #Lp Ĵ"#\Fmػ5+LCSI 4ISLRa< "&  $1tY*Et1, "b ZUUDmĺ&Xժ@!m[4`BMj h\m@0``# "b2 ADDD,1EԢܷ&3 ё)dbrl2`gaAthBo8md$܊I>s2)axF-a\6rk-a\6Qȭ%X uۦ#kt,H1-6Qİ!*XE6 U.*bEEQ. AM%$FTS&(jr@E@ `yQIPI 6aXVU VD <1꥝ux #I {"cj EP'LUED(Vm5ai2yLƴ*& 1=Bu9X UEP,( Zհ7I1V!,/.4A3);]w̙aΜ^*AUU2'*CԌ U͈d N1$s9=K1.(\M-V+ZD{f2cܗWk 6{y0ZwHaS$z/@yL'}PB\y@+'~@ L>Y}⠇R*^C{;xUՎ}GIO)t5.pE-iiֲhKéz glH"b (QXKu/( i(4peMFvPqws(.=r]=F:p%#k); ͇jKΉ-FUEk{&vdgws׏k$5JokN y`:( !{еG{EDwd  qPabZ{X*%~V@dֳl W'if7d*эpL 8hPZj<Uԋ/_Vx Biޭ* f6$~K;bpP@H}讦,ɕ? j<Վ9=(@# rċ1@* ̃Qi-]u uǥ҂b'S+>&iX(0 EO *;@ Xp,{dK&f|rD XVQH}Rx]A&ʹXYp{ d)2,6Z"hA1G-/П{cpp.'*M0xM}φ#+5&㇂ޖVq?(qhiDP "_M,\G= o FPQ+ "*(wdV/BqOggSPv)$n;<@<;@='95V8)%Ӆd0edlGj2LKנPC,h:Q- 5WpR5qgw7rJ,ZxƟC5)b%`Bl`~00g ^ x$|h:#bdcZ*ݜ <{`͟]@@y7h(K! A`:D~PCdD  @N}X_݅Řej>O9xa<̒XM |>EFU&޲ennFAL{-@v֎θB<#yÒLX%Y8,~,w@GO^S&uCuRVD>'f@ at.^}7p_cЦXhM?ZtBm'8]YD}ix;XC< .hl7lo I  @wRhPg@A?> Ͼ`6@QPԼ\w`E$g^9{@a I`_G5Wptܒd{}%])Zū7|EoyqHSTq@ %&h_bŖs/hY\28D[~x6o@~ʸ>7Dl. Ts!D4& g\!gWH1kf]*DF%=˔32c4 cWh 'IJ.rVuH |*|8@ ?<Ç|>`0ԧa3.6Ǹ4 UҦ}C>} IzQ e.֌,*[XìYw`~ ")d@?ȯJYdƽ4 udigSE÷XA{!][nBegJa 3KfZ^J焮;::$ܒP% H^f H0=lS%WBSb#zb422C#"yK\:H`i^g(K{gU(ʪVuLcC !v`"8) IF^tQr44`,xC lwnP/x y9O 8w8_S#0c#@/9tg;_$w[QE(Q wp 7ժ#<`fO a1T)&y9h۴߲ב(l>˒HV (I駜;&&j>wE ZA@m |.MOF3\vtSh46|n?w=(EX82H$?[OBRpvQ"r$ rlY[3J4;H1jXc8 +oFuUV;>W>zl!3ߧ`Y t8d.@%4Ph"1dдEʟ@8&NAWS=ܽ?ETE@M;h;Z ) E5wtf"҈i w)Cң @XE >`@ 0v(P?ie=Z{RSQ YѽJ%O AH8eA+;^&f95(ǖbET]*"lS暐 ./֫8(ہ7qC݌хޠ#x:r^_=0DC=F.@owe;Aog7M2L_l;@<ra~dl\#'^]Zfl(w<_I ?:/,K5P|rCsy=3:LLNHq\5!cmsf!<LQ/I Ϊ>!HLw'=ΨA~};JWM4NLs!h|ե~~=cbdYyT:8:GCx#Kٗ^V#gѢz܏|9~\1}u-^`,gWz1m+C>WUTXSrt}x:fa<]_ x{ yW1YG1d`:04ڰU2k5"B4ĹAmbWLK0TtY{#.CH+%6X[?R7MrZj;IMB`, o0["("JGg=Ҁ!Kee-&4D0 mQ@@cTmx*QmHNQ?n2MQlQ?n2&gIDf(%BB@!T*H :BQ(+`1R  xX4 x@4$#v@[@$<4bP@<0 @ @&DG6lyDE@AJs4CLi@ ۖ}\ OggSJPv *(8:;zth(Du֋  BG 9n N)7u-&),HZ0_ o$)<0P(T 7J-b c 6TUPZ:b Pp3fcQ53GP4hS{mQ(XQL5aT@0E "0P#$u0&]QB,!_4{a1E]1B6jd4*hHFZh$t0DR+t0DR+IrT E@AlmUyJ&-@QE0ihx@:X*j t#@QSEĴR a 6LTYLUL5@PU 4!@h[T@{L=ڄ j$H JB&@XD ( "" IJg \+Iv$b2t (4QQS@ U5x#LIE^ar! aČAh(@7 L(-QL- [bQSQbb( I![$L7JE P5PUB4 `0EE CEP"j)$x$%x XD@ Ćf:M@Б@=@,0 L j)̠߮ w`d g{=p)mTU t3&Cn: ZMaPMMR$͈ɋ7$#N'[FeT2o*@7"6PmXm` (P@TEpc CERXT L ܑIHu $0;T1@sTCa "Q" @ hP f GL a7`< ` 2Aj:]O%Ld62> BLH٘E) Bl Q 1(3JMl:f$UjH̨ <3*8dEDc-2Z1Ae0L%P'6 )"XSDTMI@M{Ě`(C),A34LTDLa &"6SZUâbaZU0U1Aj`nn  AQaB;@ `/Ņ4`! jg1$Rh 1µ  $$ { )H^&Aa]ǡ1n(!ػ!2X 5 DXeb29X,6/wjtzv0%QZW#` )˭#d!S̚-PUhۡ!P2UJ F05AL12E@Qd uJV1AltaZV&+Qly6 1S!ABg CP[LLʤuWB F5Aj44E U{0Ium784vcQ;)jRb E;eX&td EAD x@2.`2@4 `bYZE;3U !cIjmHaH" OFKOLzp@"hL@"H6Yov8[r{q:Wo>-ZS2f8䭭Z׳K</X J*{4  @!HR2 Qq R=цLjXh$3'm1]d6V> G)fq,Ac&\cz MP hğTAPAM# QQP*"*"Vm&巈t Tݍ(*b6yנt@Ѐ`{Nϧx/|)Sj݆Z 2PDDŽ6"Pk*ay*J`x3"&o3M4R@)ODY8 3De&AL̋U;^==z3- )bBCtP~Mh8t';4Izh.L?D<> L7(P^ @V_u@E[8䁼b4*Z @bL@G&PGkr N֤0M64 $w2 II yHh !D4{b*`@3fĢ&@E @`2@x>#r XP f$5)R>F*uѢu& Bꩻ kٶoyaQF$OU]iHi۪4oo rŽ, RK0bf]>1œ|oO6AmA. 6<I`U a.@ ,>H]t( XS1]0T X@ &YKM!D)2*@J ZE5L  !0b 0B "*r `H6<hD-c#+crke]"@ 觴uP^C?pӚCk#-]$PDTyqAsj3DZKM*%">!HR }pO|0B35 hZ x2Vb'7}˙malnљԕ5cm[}51"ߝ/Zw4R$̼UX  >NnoZ3C;}L1KiwpAbTUX8}^y7w j)* ]چՆ x8m %8_ UeoܓwrE`бmbG۱=T8ϊJ{9u]Y΍,,}OuN:p,]s>:w#谻OUb:{j{ڜľ=|U&M64T`PPHM&O=\{U6W\LpCEUE kr^>, U(IbpN׌EYapWӥ_ Vg]}A#EۦIL;] <)>O$FU;[NGV7)۽˘~+3S政"8)D#tGF1]8b۬?zYÜ˭ %빘Sl<|Bd{\N Cؠ72{pNUu4ŧVcX4 ]֝8f_HӯOF%} 1aQI"(_xBZ#rYI^ \nbg7&Ȣ6m;o/HߝsVPP J͛L|D<."VAnncQ u4R-iSbq܎η$-T^࠙$T5LJ*_`4I B[lAi < kyH{-qLbQ@ SIf ` xcf.nkPA3r<*QOggS@vPv $va898578499:X44967559?}pu BđAnA要(]ӗ׿<`όwO nٿ<w46#cKBIZʈ\{ue$QӖﲙ$|(oY;WuԒL_"7V"Nʦߒ9ȦUpZ61pmc Iʐ]soAtFJv)j%P!I{ $f`5Ji e΄먌G* jPF !E>#`|(^TS/x@G'¯qO$b:P@Ñ1$KqS'0h ]4qqXuZ}s8Ư|͛KդS`䘜rc;(_z:qS_sti|}Z@ֽ,O=-Bmzz6֝E-z*xY')*a}8<- @>kQ9K*N!⥖I&4OHzmL$!s RYǹ_i !Xb!0^ࡩd ^1U*ߏ",[B:Vp~3et~b 1/m]J}Ӎ+gX,0Akr ҭ)oJD(-8Ix]:&|&DW(MT4'Kg5r^uȫMhp㮪 ,d{`zZ[*D qpcHD;wP;<,0SC_d]3C2̄]( 1Bf8LҒ Z\tU hDzʑ)~_$0=Sݏ9@i(U! !cd|g!=HC%bL]mފa2y&x9iIP\ﮅv* 2't0[hF9Df0[h5Qbw1S4SQjTV{-*LJ)JH,°@FŴZ $L3J EnX0!c40 +Eh KM A'ͷBD 03!D)Hh <):*Qk!VT85;T*#?C>+9`)>!h%2@I =J/]uMRvwoJ%ft3!!(fHtByEztMs%׽(s'<$c_- 8 F jwDQ_ 6a0{_d{8ahD %_!7֤T?7[%/I\ 1ٮxAڻ2jF)s+ظ@>.?|iӽh8c//܇׾CsNڡ]]@eF@ FMw2(*>`|< 8օq@@ 8C՟n/ǽ !:>3**4пFQ1(bh7-q\^! AC>> Z0@E^NopEz,V /M4` h֋4>7I/"TjQ) ޫ'װ'&b^~y7=7ȝ)."<^F`jTAz`Bv4#$ō~ƉH\}+w@oؓʍZ1~MS/g< Ip :.|B7D<&Ύj"FƞM6l@ 8Xq??F8h: @):g [Y}jB54"*P.0> 'lA 'o2[V_~6zMqK[/5Ʒ.Ѧ>Zut =a/_UFQ5g:k#SI`U+]K~-Amh *i b\H5XrX̢j~}I(%30 ^\&:w؀4сOeGsߏ+1M`l \yx= Y.8٣~h,@WuC~Ly0A K@s1ru6 ygE sB O4 D+H`-m @8)U!,,M*,jm)~ ޷S?+8e >o<l{=3Atx=1_iާ7bjlYM:(VPiT`zU u6Xs:-ؾ8jU@PD"|Ex@ ~ RRsÑ8ɰ>ӂ1x IFP,iN}Feni͍i2d> Og 0}\A( >@ 0-jqmu)<9¬+ D$rR6701Korhgt%,V ko0~x#~ s=:9=zRwD4(5[ Cuu\ <$+6**($ChlU#UncUEc,`َ ^hQ|] qGRH@3r~V@ MUDhT+P_Syø}4i;QFK qAi/k#:O~si&jYd8=jCDyљY};fMZNhRAQ?Ȗ!{5 OggS@Pv ֓,hyklZjxueN_HrlpA Tmo5L<s/cNn?{]+amztjfxNw nvJnace &XNM.)@. p7&Ѐ}XNJ}!] "'@ @#d @h  ôFeifnyreϙnav g:oh{Zna9AjZ0 ;nu9Vm[*[>5{@^|Hiel7mě)L|*A^ȓ9aT$m_*й7BQ]UvGl,w8UI/.~z48lR(? oHjyPAA@;~@T$  @43Sca( *E!#/)OBEXCb_AvիIŹ@+0E@zZtAm.̷T-7@<PƕˠnvKN1͕ A,Kh(Y#t-pĤt" 0i9 HIl)>̬tM? nA1XxO?Yr3CߢdDt,=l MK/M5eMۻ;Bhd|hfj`Rxg&-QXPzz)FWub(a8]*JE OH*I%33sfU,)*WB.gx݇ޭ#L-`܇hdޱLqbUtq7Qa6)ʉS O?ЀZ}Afm3"5ʚSG}mbm^F6,Y9PXI9̬x} 15vS*{[n DAݧ3B jooۛfi&!8B,0}:1uoi4OuK]+s9) a߂ %BB>Bp|ͱ 6MӶw mWȦ41) K'Բtɉߊw>L%4F;D2UC4@9&bE98A mQTTji:)wSPEj2^Z~^zUr*(zªq;P(}s=U``7-T 4q pd;6wtN<2əb~fא9ȦхHuY d:MB bΘd0ajhYLdʮ$s[4P#/@Q o(4{@d䗄T&¶x,I9D|,(`.!{C͇,4}qA䭡2&BIH'0c0mzk\ Zfk0F *a P@Em06pVP|` :pN`L,02Hdz]"ҷ8͖ZD cnX1MaEq3$dg[Yez'(iNȬaB8]ΐI@"ÜdaA (0 `ObHX4sJ a嚛źͳ>>1Io({$1f b@ P|4XMtm&IJ]L&*@w4r-$!RmPPY C@[ BVi@$禋uF1<?B0lMR7at2p Ԍ m-* vvr3?yY7=nV֤4L1&ȳ^mI<}g7J+ρ"5 (*]N Mm%D@J~VUW[V0CD7n =AI N@ ~rGJ HEݙ1B1HխC֎VCMȣ ? 8G$f!߀> Ǧ?w'tPHs #w@QPhG) hV/a" :OfX@a]CkJ01=BU3}+h{~txMP4>@T5"HD/~V cCp[=^k6 AZ2K_0L5 D@pAȟ|Z2c 0tnV2$hBdyQY6v+=(ȰMSŢՔ' j%%^|p NūȦ~?G㶻Gv"_~pS42_&Tߥ <V<ĵ';Mzȫ ?> 7‡΀%,e7*Ht$O:mxq4(^@d~)46@@kiJc #ܿxO7o:*&c> `zݷ} Ŭ`6f(E_V.bz Fl5CQ8*Xtw66xl?^oߗYZƳ\Z]W'Wet'MӖo.M*ύ NӼIAK|K@9?yɟk_}7(0H}䝅s>|G^+ѵwIǭ( EgV^ K`Ӽp_h`҈lO4;R @VP5xhkk'PEfB!ZҜ[A:p3jU]V>(…}+̴îP**%;&LҎO*EH L|ȮkC}]lX@$ -k#1mq#uvaUdV)7i ZYma?k8|:]=hyWlkJi OpLg&y'Z)FAȑT+k:ނ !]Ae ƮhU91 @xHi8r13Toj.q8NI!"Y6ECU0)'`HBQhl 2qOɻlR#6ie* L mpz;/L&!h$\W!<`ixj ;5|Fer!@‘ cG~~TkDi=Mq;#{|N# $(*Ս P\p(RIET_3@vE2jgI )HZ5{ *(2 ʌic":oS U+ sq4dٳLmEP2x)\ȅB^.kp=aw6kTjQ1GM04bzD'Qn!h2!xKb)~'*'`Mn6X4f?I,ގM C :# Wئ"Єzq|@ hQzo4ho;=dJ{@~^ ESvjA%(EVhi4dXhcXUP (aFc*V`"<,@z_,% hQ x,@H/Y C=@HDQsk!@ ]O $aB:{$u0b}ƹ[PmLD9CU,&bR(@T vb'4:H;WA;Tm9mh7Z֧Xm>dYKL3 ~l"OUYcI ?EPJ.@)Ng@p ݀D@{Ǽ\@5K^ՈGn@ (ݿê&'XPL4RO`@h@B#P A*@x@P׻$ +d EBtj9Q8~T]X}T1EF4$3Ep܋Pij FR֡V)@|j(Tic,L=c=e;-[?z>1v4I"M$U >\"`啨Q,b&|6rmk| Ц/KUxUJ.(24@ R0$lFU@\ 4E r)pXLGt0Hu1 /&4H&6h y@(-@H  -pK@ @"r{g抗eޤf^h0gTLZ<'C`Sl Kal:$_UْskQzRMk% Kgz.aICJlL@6GP 1rIdc_C"GhaXn F*Hl䳀sQB~H,`ـ<(Y%4"@&b-k!PT4 1#@0 `hB nZ s ch! >DAS6ۂYÂX Pr(I&tv9 ౎!` !C7W/R jR/hۗ3h'\l4GjǶh$ izdr4gRj}eEO  P [h`0}(>8 . . U5  th *4Y&@HNb(PU5@Ԫ@()@0&ˆ"`ZQ@L`aBeB0p0 l74l~yOx)3QE{HF؆p]sa&A2Kʅ>&DYIv7Q'88}E^&"e#@@ L%D-D$s;?&+4E^)~A] P@ >  \`/`M̆Q3 @- h`}Ba8@1 Zj<`7%A `LPhm xo O0Taj":Qw;YA "$Fol:tSsB\@[NHs*CƮ&F6 C:qOg '!qݟ9p <`}ÿQ D,.>$K4`jrd5.w #oQ3 % =?y .gff5_ O@PR<@M@\id1RG&  XLDB$4"C""lxG )@aPD^ jA`WSx4 "]bHEb# Nq &P4+i HôЈ12$]ˆī ¼ xX2U,!ޜDJ#j+s96aPWdK8 gfRC9Fp>0ҋ^Y2O v Y*U&. J-0I @ZZk,@zE@UaCPQ!U Uâ B*`A<XH@IAm '@jT-8&P <q0 AWS,-, 9&jL>ErF6I#U¦J- meHl$[D0d: 0#^j&Jy2@ Od٫ٓ<*60"О5 s1S]5\$2 ]EU@Tv` @ AEA"VPI@x)@){<%' 6 ޣ #dpD<$HM.*L1Pd i٪X_p ֳ79cCY@$RdGuoY 33#`gR-AYڲ.N1?5 hf6FHP~x%d6(D2N-@Zjd`b"0P5Q!jtv4E@0)@[FP%D-6 4mL@kY(V1ex(G'ӧbXX' @DM 1,BED1T 6 mŠ!bxBzyS >hm`!'ɀ& !NǡpuP#Gc[ٰ9-aqs|]e0g]׬Ͼ<Я"%gVE-4kֶ=Uj*YJ#LkbQ: RNMPSCRʂTIS3r DnutǒKAeC K@2ML#ȈPɞZ(@SDR%S w3s{mݸ4Vj s*P%gM%7-@i ٦1?J QVo7hW 9L9~ f}x{ Da]r{ZDגv;?>RWS VQ1Q0J-v@1nV?1gOggS@Pv h_oxz;??;8<:=;tVTѿWӶ˧{#1w10H5YݦHYvtBՠLɉ cJ>օmR+ $4ㅼ)%9fF~mܰ"bedˢ!?)S[_?`~gx |脱(?GAuhW;*q'VAGWY(P ]<ъtEA41S ܇=P|ž W8lrڳ\*cBWE~ߢCU1 !L7ݮ "U)D`.`A_XMeݝ'N.^VRCmLaaG3<Na`c"ODkun괖(v|In:ݴQ)uݥ .3j֭.9 O^̂'d9i bfN{/LbZ^ _[IwwkϚ@rI@;D|?vb!kP :qv`jU⽙Qw\c \rS$5Z#* a/kKq2+ʏONAZz `% x<%7 ])Y^h2i(, xh˕|S7#d?{n-0Yt= P ngUI2Y6^_ )}tHZjpg3rnJ8Yx 2 Bܥ`E6ڤl S.(6@ j-G2FW1#,)T@ tlw>2,GTyl< ; ޻|(]P04RB| @"@A4 u0d4n?QZlBIcnA:E挄 hK z\'癀{j jxF,q@8uBIUzfn -9o> Q#Y/I7FrZN#w-R+kv/)3 ޽vr&g1-p:dHj/':킃~JH<` zCMڰ6ϯrJ644P86 (OA=:Vz/H8s;+Hfȯ@Ey`(IP"` ' =qsr3ydE0|-z)HIjF$[nu,$U< khj/!QQOؗrYBa0Gi=xK힜?ZiY`{ZrO%o*=f0+xgWEYCHGT0yw-?Qْ5pš9 5ʹn,J=dTpfi1 z"3>N!&0'mnKgtvmN 3\XfgKK1N[#{M2 y42<XZw`}YgKiD@fN>sxwNkN%AbmcLQ@ǟG¥'C7kW'?Ef:|ZڨKyDK iZ2P܋ cmu9qzayS{LnN%)\*\0n|cӹqEyp" MǙAd"vLT@I(Ա 8\Kκ:A0hP$VqI>ŮTfTa.K~Ʌ˦hOݾƱS#R>ear:ɬ&S}y(7nmk10V9#Ϧ@/ AE#(o),l`~ծqX@,\ cGk#[68KuTI*} 4TAQ<""Yɑ~Sm 1%ºcH-|=bb x(,Zth F%#o v>z)B/{MdʮaReK**A4V;_/zW>ɓe<!q?pg HU55 (;FX},jDfɸk\N<r/a .*n}S'mLIUtx}ks+Mh0[w ΁FKL"NU5?EeN2C~&BGNpDX.U`L$eݦSJ1ۓ' 4)}ϚaؠSt*.pl8!!EOuQMiԘeh^4@UeŽP*0-PO0tUT0E@FUJ-(qv1L?ioJEģTE} T]I&ib *@WxOex0asH7;#4 z97nUVW=9:y ԣT_*S#dQTe㝤8m$RhXE7@of5BTy֐p3rqѦ TҌƑ Ƒ#m2_cr]#6Y~+j ]ʿs붊()<$.6S-*f a s .9Wgtj ;̝9hb@`g݆m$F`@@AXC1QBC@B2$&v?Ī" `Ex`rSYA\v]Xt`]ҖXoAؚxA^˴W؜pEpj5at}AJP7< P HfC5A2aŜi#k12T8 &. 21I"o&TG`| o(-xk] k&<,864? YYYZ#4PTh0*ޑ& (BfXH84pX-( X 4j+!D&P0ZDTL a{ VhT  AsDmP4Kqq.mw';]OggS@4Pv K\IM7LHax[AFCALo fHQ? ,|-v@iZ9/ٓ=ePM/ض4yWL{6*i9#2jdSm @֢>Ք hL?.e3|sk6YLxݖ5nX E\Š2-y/#C(?.@~a?@ͫ,& "*ٶ G@Y=w 4JT4b S=ZB@P[ 84@ ,@K9QftxTS~ !  R x9IxT7oϏ[nVF_Kr3/%*d qZ?CTle2U<7pr;-}W.jgɑ|˩\|OID6%ɥ5Ew]koȿ1AR{T;G@O#} (p2h4"{40٬{ h@4 j0T`04 ``&G 6xy0 l 0  2R5a0@Z!"F(M.L/uRЗZ[x3ٱw3l=0z.P̸zBk|px4:~pW.XSu#0x`@fPh]{" 1˲Dɑ' " 8ػUy }$N~CGx/^8ç=ͱ0K30PҀ VöJSf `5X,!xdhA`%j5Wl apF@7HP XW j YErqU"ju5S]:;Mq6>b ~H pa(VIK!%$f#[ŅN.:NeUV 9rrQ D6/Rs6QRg=N?ݟ r)X}\ؒ/#(Zx?E~ Ǩ,j)F;PHK YHژ (S`(0q`B# @[[V( L@iXGPV/<>Z|& sC=#.`E릆Ļ 9Lf =u,G `B+bFP޴T,!KYrDQ#F"Y;g3;Zv ;Yv.f nI4WTHo=t!3!tIǻNɫG~ Q_)jິSz JGϪh5<ݩmQcujհH/! PulIxV.M6@B|1^Z8 и`nTE;#yM3+B h= Ϭ{hCf*d݉I>bśQ@@7LoM(p1~&6%E#;#uM4CN;J!>.-Ŵb8jn %x& !*bXGU! E'Oc/:5qDXV5lT&m1{o59`d'u0("6&$D.WS6hS _׌JH:&jÕW+ceF ij$u0 #{Iҗ+,lSy9#)B*E5tXHE 5RQ$#BhCCT 1 UO ӻl'# A*7^ Y /i٨p]21rQAD@aUM``P "E0 S-* t P$cJ嘆czP@b8$/3iδ[tBS T%@I.-PK$E ,g 9Zr>rY}E`w)JL2^1r~,U@Or"T=k}R{ЙlWBSG+jYڊ^K3KLB>Ԑ2H)  v ;QdEK9 TEQSnQa$, ` ! &# 0ɫFF܂ICx9#!!xd <,CDc[ACGK`< W J`ta(VԤ@V(|p% vn2R@2@(k3@ ZL@H@!<qDH|(0LĞ)E 0@B2ۋhAւ`rX +` b,]fhtE mυ׸cj[*Z`R&h}Hy~j*DHSQh#u TfE}j -ЬO^\T1 A0Q5w8 8o=SPKb OD#)!@ ^P@1uMlETTҲ P*H ,9U(*I$(!#vi1P[pAyH()@Ԇ)o0T:c, $}@@ *пvjNm.˺$h{؟D5,tk/Hɨ6a|(>&̱ L(!+ni7X5g >F'((8`)roo[H$Yq31]4H @@.@|- @#{7!((ƶwGd(f%"+Vh+/YVP({|Pʹ+ @ VCᅊ0SJZ-d( c Zh((4&zTU) Od3S^YVHauOggShPv Vh5;:88;<:5zHA/?56/=7Bө0;To6;6I;nSH dR|[!I3^q Xh(LNcꞶ:h Z'U_A[*v˒IAReyX2gҨm@[!m ]*jS \70܃![U%"7UM(D!_сHj4J+ P<h!#@)k @)* @"FqzB1`@ $bO,`= ΀Ďi3`i&@( h--dԻ`w=,M.$9a")D8Ig^=)VT#ȥ%';\ S Qg4Bb_pBV՘v̌A1Vk[PtTj6)?9}坁Kis<ONB/39 &']lt`2͊%KqCM +')|2 ۩Q$t#,HH]F 9jm < UMD DMQW$vW-9ዋk>] َY4U˹,e!"]XLt6ũ(K,;'Ӗ"fW=)pX* 9J'"$10>?LI:B@x<Aa~>@J1 ̥Dr'kjΣ .@H3JPQC,U 0<Qh6&kܧ3r},xC428ҧ[3w6 <3|][ ؐ)JsJh2qQu3ߺ䔔j˕`zv\oC"2Woʀkě HZ "St;Fp%6Qlv&!hA@٭jHu@ԓ? bҕUFZz#-R&"Ϗ'S2i.&U*("!Nb`2V KF;{"V*.؏IPf/RAU DQ"WII@V$:*6h *`@HbjEU+D#(|( $Kb,).ŌpƠe'v_U`vCۉݝn`2 V@Ad@a h *VEP R/7$dȮCǀ1z,ѡ@"5H:N,f$JZ#R"I,uGΜ!B myL s֭]( *=f|7&\BN7TWGK7H T$x `9 0"(bU@$!BL`ڊ j`Q4 UL$@&hs@5hh8 'yo&@ͥ QRVu%A@`/FÃ!ag=X@ٟʐ@&'^`QKeJZS NNؽYS,յ=X2Q*ya,X)7јEzɨ%gc/`X~7G'Ȋ@ (dX&Hٗ}(Yytqd)` bڐR,U Hı R@,/ZL@L đ F((*VPHU0 bED]j@00`$`I 0+l+K.Kb;uIS ZU9;^|kn[cl2c:Upmd Kɲ$|GXv7 =n>3s2>z"V(xd(OM s5 @5^**DiJd b (@@ L0bcbPAXH0aX @0 `  BЦdrD|~fY4]n7?qd^&*Dnb*BPt=^x 9:})t` (H $QxQIRPXM 7,"yBQx[V"53*)|H@^*@EQM53.' e) XH.h@m`9<(6Ua[C@PĴ S@0X@* `HD1 Da@46rZs…GMg^/@@r[A(24 VbX0Μ6PS"}Ti}W]MXF(I!I@ $$P#R)P#R)dCA)2E}-`j`batSQA;l54 T"tph JI (0* i`SLH4\(I1 (( 9*"(j!@5QSU5B G\ j6`íE @@xhUITW *X”<b4-C$d R XdAAX@Y@J>0I~hÅޢ3";~hÅ6B^o@4Td t,CP,)J0 (V5cdЉa:".C4S)j5$$d *`(*VjJ@C@bav+F@J>%DjC1HaL18 ( "(P@$ 7a L-&ð`,Hl"> Ձjɧ)XG9vT^ˉFL)*Ma MDCTjy:y45J5OggSPvh"0;imoo=>?>?9<:0#J=rIR6E5"DzTh*t Y0bUZMh9 QED4Y<ÔC ZXA j6 i *jX!< !DDDŴ b Ȅ@#3S^a@"y@@@  A DC(A/dbV,2gnH`m+ PAB p2ۦ.ʫsͅ~鹢OZ-KmXUC5a;tR!5 H¦ HU`;L!sÇ"k E@FD$ -p!`Bd`A1m"i+j(hU /ZbC12B(H-Q!R b%YaZ AѪ b1@mEMI  X ťc=rÔ(`se"<KXDD(^ Ba6-EAx/&& "@`CT)R- #5[EQձdF9 mӶ4B$s2jAb*M'DKCqđ|@Đ r6˝c(X-ɝ(U20'nmL:2uˠ!+k@ckA"2Ͱ28rL`'*œLwv֎=gc'I⭙vtB%*1*$(*OG ]R(A5n0ׅFYXL\ qqP4,$ĨiEb=)4CJ|NwO*M"x%jfo];Kt^~<İxO"`&O5k$5 `1PEm 8Ձ@vV _|H@q4 % 8x'8g7tTW@8H0^7QYݟ+":$~Ĝ"j!:!|y"a\w9hxj% Z<:sy5ZX@'<@lx9]\>pNmjϷmwv:eAnTyb^zh(v;|MPqRU@ϜQUPFj~ME ¢\TOF'B.$ ( ;P&[ueDڹAw t4&8wWa0RxoVш'W`Xնhi-@M I QMSMKw}.pݯ9L 䕡i1܀77?0۫~ Z:xo{mlL ?P@I<6+jc:EiN }M)`: ??0 c7TkUAEE?rsijPTLATT@s pq@%H ~η zVDXtOh \禌r_+tvu(_ CO&_DQBO)9.ڗ0vMO|蒜VDq1@Ā4iF7 ޾G=ǤFT,FHOESGMtESAMaLm^.١=ŷW\ }>4_h`{6is 9n7_`.p_ƵI~ZAw )l Xz$0(Ey9q@z~8"brT[S!$_`PL4pB lӱGnqJ HHۅP." &gۿcU5;"X~ز P޽Jhj/7מ N1:eq"DV8xX{!iYNX@قuNWǟmC>ۓݖyj 4ANCɨ<}_XgPέ~Bqb}UCҽ(59/󆯙$$dIVg_n;f8lil蘏nm$/Ѣ(j2 ,#QSq(ѥ'oI*K)y^z.7qnN* ʏ+H﷐DZ4K-OTCc_lGK()sWwrGEct'ïߺZCk]7zӍsUw"fLM"89^45-yE2MפН$Ń(8OƉk&Klu YyxתW$I?uy(c giIQ mT]K|"/?g9<ӸUDl9}wF^ $j-U}VV׮{+G$Op@txgax,{85$Ko$ZV^Fr +xH7t|ߛjm lMAv(;yP,'x Zg۝zjuWM%6p]D\iWBZifk` ղ l-CO]ftt="{z3.!cvGG}>r% M\n>U%~ҫnS޿X'քnf^emsuۥ`fw, $;H>k~zg#}K{~~QJx||_Thq/ ]k6eq)3zrqDvc1aԯiU^$W%;!+%M ҴBJlq_"$j&ChXZ3|?-q=6, 5։T;6t=튆INC= ioǰ("3PNqăQ I&HqF*I<+[FkqqxOg휅xK4F;ơhAum % :g:?L^F1s&\%r9* ivF)Ě**`XN;1 QULӸHLDJlQ HjI i@S "կzނT=SaAhH u7i 1* d4 ! !1EMx  x!䩔@QZ'$.$1 !`VEix|j5Xnqeǵ&ȋ (i" зUg+UoJj,eOM02 3*,V2 D \_hjfT6IAœadk;Q;4<Cs39048Mv2CgRɗՊy)P$O @Dqr8VQTQhūUabX,C8 f'I C ?ٸIX TQ`nM`#1- T'' cI"on%y IP u1n%%y7붷V_m$C, ؋^ >)`p+d8LX0%$THmRynT)nzjm3 #}W  | o]C4 &ك\0z] 4h\+I) FSvOA(PPҖvTR>ئ[qatjFE .( fjD f@3 3j!" V@} 9׸ k'Z*7CJCM0ԜZ]lqMC֫ NUKAkB\\@ ft7ah4],vOr"t-)ncV^%1,ג+A vjMQOKa.#@AQab1D t&9`k-@ -pH#vp>!&PpgF Qƞ7T*6!p:?G'0>bPTd`j > g@$6Q%PKeo7z6.lHTHzOt&a+}鱪{Y,\ ) ̀ p1bz@2.:/hIHi>%?' V% @ U{G n@$pgWټ~U\D,m! 3"P $:@:Ui({ -peӦH`ߏ-g#<4  0Ss` 4D eo7RgR \8 L@2#AbQF'(CArV@g8lSoKXǁ[U!UnIeLJusNOb6=UNo~L 4L8XnGϿkv!a0 9pn@,i>0Hr to.CurS7ttaMԢla}A07H; h;  E(a@-OC%B |)^!M,@Rzª:<PO㮂z~N0́16/: Hn:;6B 8*Pv9E *fZP/~E," f@ h~J_(pλ*AIG~"]_AkM$-uSƩC+^@pÙO!b8ҽdnJ_"Q@o:2F@`0B G+4xp30@ip޽/EbP@N* F `4 jT#]-VJ Lm4-@b8  qDI!p^ hÏ05,-PxaLl @"ʺu_)׸J-0QE N|>#B[TTIu. 5N<4 % @ѥHֲ$yDb0:Kdz!&Yޘ)4ȐRBxp~SP@56eyppTxZz 4ܞ8!M*P R1@~H1="{b=|RA@P|Us 8)jp¾9fE AQtPp  d08@C+ hTs$g?1"9ChNWH( 4; -OB) &\$u<o!%ME ' hNzmE>!C˗bJAvKF(2!=K(2!= H(>p0 I 8 lCL]w(?YM5EDWⅎgT @ IHE !E wwH@qV@: PDY$@2<@D@1(@L@ &l hԬ|W)~8UMKdSQLa,BRqWCOK{5zQ)`-jI@ _~! h? LPh6ny!$Hˀl4FL'l!gt`<2fa㋷)EB8*Bl€$zN쿹 u H+|% Hu%5p  8h 6byY"s YС0 h#[' @ t?>\ MSTn\ftH'uPV@xdؠ x~䅯A0wCA\C[ػ _ 뙛p dbpH{(H8JMx_2tV+ P kuJ*4r,č2H o'HOggSPvp9<;:9YUekUc`o88644!iNЅHYd5 |RzuۿHw3~=5I2(`_ FcwȪ&aM Ka~[Ͽ&эT#` 0_8P’J#`㧾 4t&&Cƌ,c  `Uu=PUUUt{*ՙ+SCJ @^kq\:5Jb1ܛ ESӻEEb"&%@JT=)̚#f EZ=)ib-!Um%1COFwj kSgz/z…}EM4"N,1f+٭%sEK94'*k5Q]ݚoD!Yy"wHofu.YvK؎48a0zi2wTt#^8\jV裖s^DD>8Go;eǼ|szYTM:4Zyo;b <@WJSO~"ڲڴ !5oVIZlfDU|H!0 E%;v v3ѭ S[* h>n TƋG >snk%t*irV#6}%I*ЎpSeo,bZ(ξJn΄\ Il =@(PP{v<,z'X@ Gj5"wkZ̯(ztHG(*G7ؑ1Ysh|ITeR qsW"I4]?N0 .y}l3Xx1BAj ,\0HK`ᅫ%pT+/ f] T}Gحl?s-⻸vdۧg  p{)wN`հ )c&9K@"  *,Ȋ) J Hm @G7Em@P/@bg;;=U]S~jbBBeG8L|ACˆFLa1M2)w <x<PQH34(t _y|^\ 7&qڤ\ Sgd"21=@쌂!{`?3p^==ň U /@]1QrAkfc O櫀I?P'L{+p,S 49;N^xGC}O`pU) 48@zD+pZð?@'i@P̏dh@?Z_@PJ * w0Bl~aR d.+&".A FXCDU蝣ц}CX|@q yP 4xp^Am >,C#=x#Jl'!5sTY53eFLGs/Z ,l8.fjǁ !. 80j>Ep =eoMO'<<*Yo8 u5`PP0C%kApZugX E : Q `jpQ PLÜfSIO{[ 1>w.- =x#FA@ w^yj;}*@-^@eA@|Lzv@ߊMtj}>=]H]ĨV!YJvz -DFJL/K& @=Q7Aim.KC02oc@˅lB{p>F~X$>@?p hMU-4&GUn@'؜. _9ڍXD-\k0b4 wFTAQ_u/90y.!! DHnu";}phĕ4tJnjdHAcӃtC3Dl-,>\J8&tȲQG-HaWu~%Q%H(>,{;X}T-+®:d!0#ȜP@*+Ф7@2bG ~!aVR~IBU1J% ?.Q @] kP> z\"p4:W5h旅 "߾G#- DZ?hRCޣbp{ciNl5clWQ4!Z<7YplV Q~Fpt@XZJȗ wsdԩ2"W [hʹN| TQܔ} 펎^=]# !)z? 11w X"} E pjӾ[$UOw 4 PEpvd @ 5!^k'pGW?:Cy7q`2ZPM\V z%/QJ@%&]!L"g|ΕA%: (!ہ_|Qж1'X Qe$+@{ EJe28bNĀl(cA-q*ԺΦ5/>YCP\ב+"l?ɼ9e2 :Ni,iI^|ghnw2N7Ԛ5E|tP,=`? 4XG`qX<6>e/Ηx>$@Z}ݠ4DtSPb]v^۽j"w7bG5D8Zy`04Nˆ)w΂`{ -W=@X -~l>]+yfףm" @be?$b!!Cd@^茀D5;R=qV0Eӈ1;zzII"DM)-?ֈ&<-Ixl\t@B?~ @_\5I]"6 `s>F*fo\}/@LìԾ9A pX-&F(uF8n >ҸzkueH;ZRN_ Ϳ?+ // 2LGCv83#<*Qdc>;̾ӞLTi{0){TCR/p j֞YJCt]"R:v*U~qQy7{W.bWc/!KWV吅Ig;}}˺0 + R*RIKj|CD'PD3(H!32-d)VDL+Lt X7J=ȔF$ CRGT3$Zޫ *׃t # fn Z)6`cDpiU(ɖ/VQ^gDu}ޞqgs63TKGdЛ^ni1pv,\lkuko $6}zz9 =c~6oe幬iEk~C7hv܇BIpUAlq62Y7wOt&`{(oDx<@ZQF$HF܋ 6QTŻa0fCxo {:d-r"re/V/pp brw_rƸkq`1 +sBsI?Fa2thcѠ`2&P>b|LKPԚၜܐOis1ط!Y.x3N\0  hP$ >YIN3 )bUGdL>,c4۽}M^҉ll6Y 'd)f$a@4O8{wxFR28qp]$Cp<k\ bRń R@_@pp32ǟ!52 (*4PpY? oASU9+w((Q@@*+CBL@ fNv> lCN'#LHYl:! _̱d'F_z`bäܿp4aJOݩaA20 ( 7od a ӻi@Aas{ h;w=8ooP`tH0_8 ėz6B+Bw`sY c6۞N3TN MFHFh7ڶl@XA+ jEZ$Їam4fܻS+&̱ˬ & Ncs!Ax  #s0"(@ ]8o`y:&lG ]'s{hES*j[Yl)R;#^.,Mϱ98@!HPrv3E@UHV|NEX ҔN P)P▮ 0lDaP>i(DX qe@P{M= HN?5ۯdͦnxA`L8F0vy`(A"D8#'doBΓ #L6YiZ0<[Tw7Ep\  ^ 0Ÿxn#xl߿ [my.pߊҗE0t@G}K,=[۷6hya- |Ӌ4,h#/Z^j򫳚 (G@PPQM*_$ `0;) 0}pC0O{\?LM>JO+v3ˍEsssL9;q}}hzo<@!Cg{ x;| xxg;"x}_aT&888 FLf$Ur( c h!(`4=v.-(*ś*EE `Y' {10H&%ئRX-ٮ>]-:=M7neњ=t4@EjdT7'd C;1C> zy*H|Ct$;gTW)i$fn'L (L[A~x7{5p~re ^DZ7@"Rl59; YNZ 8MEpN11x ōQE(w9!y= }y@Jt [no:\&4>) u0.N\x OoS v nwt"cҼmyt-,vDDAZ]}wm.O%^옛@6rNg!?9]F-K)}Kr\W2Wg&6e=gсTuRa/4-(FTsHi'G=x9|:b0U+X!$HK;,EmQ7C!CVwƒHK݀g9X+sS"_ $ *!YXg&}Nkdޫ*Ί%MLgZ6..>s7(5:UI"Q-rP4 j;$%pnPt0@p :p%E}4p$894Qg4x , 8Qj(s ~Г|x:# CS0ٓ2-WΓ*f k&Fu71#-xŋK1pB]n] +~;FQIJPCtf^d$>cbGP8b]g2e)T#Lj> I9&s쮒h\ -tR%};z\(;d*ƠS9),pT=MIHF>sO(.]@`^ xA|xP}3`#![ PVP:)u@58p +TQ ".==oQӪ0aԈT3s& jP0 D%i}{x7>-#  D4rɹQ5oV2Qp<) ȅ0 ip(B\} K~5o N!prv}kNݏN6D?+"ۅ p|v˻*Ax10@GF<>@PQi5_2@f0PToh rH.M`~@p45|+P(V";'⁛i86QVP[`"e@$HǷ &a=1 p/7ܪl[}^4jJ!Gad?Lީfpp|A񿔑V{-Q- Yg!p .SH >BdI!kVw.*%R{HJkdSBώl6" Crw{bHp2P/@`~w{sB %N6 2G;Qt_WI304JMT<8qV* =&4Vco&w$jGý*b`ٷd}@ 8] ``,xdêlu TjDO%f9Rr@2{ У0UnCHJ iJS*C|rN3w-lJY3iK`BS_s t$a> q(l{aҦAO82/rU,fJ')4XW_ ty@ wR .!xC[F: P}z @YTiy?L!?AMg,>nfB Cy $z=Y^1hKERi.lubWl ଛ b1=~&*ݕ 3~w=ٴ"D4pO֯YXwcGT<M ` ց*? * l'vGa\%;meHEIZʺn%=4:_3D;ʆ_[#@I?7XըɌ@NJY4zY 2_NxXqEf!,n!vdx^QDDWY6}7{Kry1 (Y7׋fD)QRbs.X0.ܣ`8e]oa0JFjYl7) `{QgCЖaT7>7efYܯ^Fl)A.UK="d[x=%^(HN^dpD_j >-tVz :G xr`@ #e~AIH(TH#T6`tp3PxZLbBd=óҫchY&")8jZ0TiY VU\A ,O3q7B&O Q=SOhOq A8hdBV[E T & FA5MSQ5,a a9-DDjbf"VcQhRLSB"5&蓥7-@ Fr^f?t|K$:F] ,,Cp*ncќ֣j ϫy1k]{L9Bjccμlᇅ"BnT HOSX13`1sa$#ù m Be:`fye!ieSzRItwDD4BձW^#adcJi@= E C-V,"XP̙TbASP;aI8;60{X%ϻ&ځbO@Z[QQA/AC/h.4%ɒ#+LHH>@@xJtVH00tVHl%4SuF`Y@x-szfIJv}m l,:BIm{@)EeZ0Pi6H`2q5S@0>3qxls2$&ؙ'= xDtH{+*X@R6:A$"4I]I 0CR"$VþK\0p ˔ʦ KNl$4,hCM64F KN"Cv{DE0(PCĊf&p„a@n" S D['", L85Ŋ xS]FJR*;&XETʗ# Nz/̝Ħ&jP!ND(Hu.n[Q&tYz06" X4lל}R(qD -=HQ,"B#MEp1p`憋3V&Dk!)~O#(ȽS bgHhSeAU02jeT(P,HL 2IRaʤ{V&MW KNP"ZS8T0 @3U,*fi! 31{ $nov8Umy3SZBI=T*-0 6c!uH^#B,BD5fHQU jmya[m[(;I*CH[Bc 3H̜g0`c$P-㊡l\$.ELTEՆ2GC TL5U $?VQb$5;3DLH o#rPҽ05 *XTP I7^Ra%Ѳj1)H`$ha*E0zLjQZ1U(K !z4N@/ q4uFSjc/'XTCCU va7M |ku1Raw Y(۳(wԐ}&E&ן@5G )o/>1&g1D wx[yH_gEl|KO$5E"bKMHVUTи͠R>yJ#EvSJTæ *)xhiA*}>1P-ĂA/GȞO{{N (qIxRL)FrSGt18bHOE4)=aRi0Ŏ~_ K%01QΈ DF4sqU7ח>[9K"BBSZ䩳znI̩ZO:-mQZhR)djPG2]>"fcNfFb"^j }*@P0EЄ$q>U=!Idi)pb*qQ K妖0vSg7R7&VRnYOFӔ9%H ̘uQpaP/Ly (5IP *XP8`؉Q bUL@R %!B"E$qH_jPL"Zћ `2im=!d; _>w|U21 X4/4 ~b{ 5[K':Ƣ”1F3Ay@s^PP(}lp3)ҿ[e45BpnޤۉH.Kb-:&uT-殑KvYa6Kv,'KZ1DU(|lz3 IfY65LSpء 7QMj8DF%eʸJ!F d6F b i4L(qцtҼ 3Es0 e ;bP=X.^oMdL1rMc=*3ea2^R=,>$ÇVnqFH;ɩtذ:2Jvd;TQ:H q(PW/.>s&Rh(A#A[D$~Gucp1߿σpx=\nr LELk=Cx~S u Si<* $`LM 9H'"SQ1WVT?c RSycYgSUXu襷* t2*jsS5jEC!H)@iAC;=ъk@[\ॊiFJ N=BD ð)(Fo:!̍Cf@S{Ѝu&YwH;(ұzyY(-ҒՆĚK(д^{-}*^VF}Ձz@[Ƙi?4gA;>6MPĶ,*VOsDD0]")S}ѧ])є]`& x17kaU{9e4`Ϟt_ɴ bEbX 5Â&jXiIr@T:&Q$02Ղ$Fӳҕ5QUTU$lel#" yxhʤ:eXDLP&dPD@ML,.b (!zbGx R0yL8J F"c> IJR(9Cy`n/ݔjת%MP- |JmH7r |Wnobdlu-peFY[%J^` pZV'5C#V*T5qwx@*`4lx>vT%M&4j; 5Вcȭ,r2fHnATLEU*L0TP,d!VCLUQ2MAUL U@UjPeaLeD1=v cgXJ)%3CPAK'c,Hh3Rt4HR҇6R4aR &'OAÙxivзvG&Cl2ogz(ό_5n5$Q' QK/3gTo&ZVYi-;Y> -l"ʀԖ QYc cJb7U5Dߥ;TlS&Y$ e3Mi4Դag&JġVg0(V0p0πj2( **U>^,2Cl ϼVo:#i)`iUFKvbʂ|/4D(A&#. 齔e-sv78[Av0}hM%U#X$O0諾F@ku0?E>;J[!ƎBIoha)jᎀ" 5PS,2!3!4RfFғEnAn;* @)Dlׄ;? RmKb[V=ɌQ<[TQ033q(j$^ 79QA6)I XXYw 2[ΐ>M="[{+9)$En20Ubd0 |/VC\# !s['r y9; tS|_Tnc?!Ғ( 0MS50)$|TD#Zv$0]<tS8 \G@hS.A:w8;oiBl T̓bR>ey]]@@@MPQf 6&d]z|K='$ɇBQԭu{LLyM`4ױ0"@@w?@lTS &^Pkb @UkwK_ԓs ќD-VHQ+)窙EIWI8j;OH0 6CGw)%wH_y[<5m(;;(g9qjx禋BTSo]]] cEET5ۯ#)>+H_63\,a@jf׏ EMVH"jy_iw Q G-!hGN釪WNpϋ(s@'"( tǤPy!\E'=S<*;x6ii_v܀:8  &% k,:BAQhE@@ȩĈ^?oDMݛһOc1wp}DPDEUTUQRF: f+eɹ*_6: 0w H=bbeͻ3Bhisrk ;X=>"ʆ/k8׏xm):!;{p+L!FHsAxKw"c<԰}h[b;L0z(= ntj>ɕÈ!V,QKoV3SFjDQ=IROF»ni!JnUZyC:cP/i|ʦN|NIL]4;4uҎќȊd yly&ad:7TlΖ 4U㮸RVŨ2\rRuC.oʇ>ylpyq%kv7_W. { @\\sQZg&8hFm% -&"I$y#tdfiVÕ.Ӝ(l_QMDO:IU(.{ +j|AArGpچ{eA*Bɀ3uVPt@'3k^nXQcC41N6SF,20`fj_pG#)2Áu@'>HBIL*32ꡕkk : .<)oR$[,8B;;rKK-G02Dk\l 랂{~D TlމtB0V/y [ux,ɫ!~;p3)mw9+AN1>uNΑ'aa}{}oa9gѶa0&g7L aJ^l>I_b;tFz=o2ɒs&,7%OZͦ/?ʗyӽ]c5a5QlÂ[{:hADr3*':/|<￿{ ?m:\?m+cDHZLhoNeݟsxy@O?FSꠊN@}j4ԇ/vDʹmSA9Ϸh< `(tsaE,*@VP# ʇ ?L1'G QLpj>ڨ-i9~,D3 &O(sv)lP(qM9QYTQ{З7λK鯥f耟vs^0I (VGĒ"fSYH2:^ݠCƌnݚIiY Cl{}/ \hTG⟠^Qdex*˴I:rqy>Pi@ MC.#'GQRRPen`Хƙ}H7w:"T ﲋ ?@PMSfJpby `PcEha<300cѯ( %`h) @(`*X^ rU}ieVl/V/w{JzцK&"_f2eS Lz<|B껈*9&3\  N8= g0^]&Qq!yuYK$H@VS"+`/< ޽)6g a<>(wtPo PsB?94$8.=c<k1^7G84:ԗygS'!z|9N}/3s7FQTU zTUU@Lm`IJ "0a@VUkcU Q:XER TVVN94bf=_h1&.tB5z` b<"I=G3L[fw( 9VnWUP,Sf0$Ám (Dqu 613VfpΒ $x`_!soV} }4#.+A!s\z@Xz@dۇE'p oN(oAbO\Q\xi |nhvA"|8 )ح{l, cB]T L`ż! _U@ \M4>"@Yt-X=Gk$]OaiJv% VȬȇȚkUzZf-k/t]{`T.غtКO ҕp dgߘ%[ۏC#]|)bEÒ!t6¨G2dSv>2H,"C3Ĕnͥ3qWk X /UNh uw#*+MrhÃq'H{KA@ OE5 &A: #F~ui4h SgMe//uԺ$"<3̶ʡIIE :ίϳWiPQa1)S!\ӈƀA;?oc;*J n&3hFmn.i2uw >MXTcxN˴lňf P%Q^B6OggS@PvbIf|s}?:8=::<ňȡn\rM=~n㲷ԆZ6C Q۴wog7-pjapo| `%ZFlRPyLIXE!hPt)=j&`}>o`'R$ɷ@ֈ"vU^U}ƕί3s3hQߍƹOI꽆S>n%HpU 0W^"4YeGߪq7 JĀZ# DΚC;Z];B,n>$ {nk`.FN:׋Hv 4=@ VeO7u츅F ԰ պȊ$/6Yi!(iEt]@P{.h^/0+bhm+ @Z:l/I,Iy0 L(p^{RR@;p-tkx^> ]3FqI L^ ``+ϝAM G\Wy)WLk?u0|**U]frd8| 'P@> ́2F\ )®ɰ=c:RokZ ņQ%Ml=oQVoEY٥49$9 Y( kcF,Z>ŀM0řApӐI&Aܳ1BeLmg@Q2^   0%XA_@;s~ @͇C o;hݷ4 \ )bJwV]F KDm4U2 :n j)D`Whk æh0{Isdf66P[{^vc=8Y7!(auF m+hN8c:G6Ǯ?IF,naZ,Ԡ5atk VbH(}T,ux<.~\1 8F8ok!cp[Wqo@:ɔP!qr2588Rϡ8d \MQDADE?ThQ %B5B@`eQ~)1ƚ*qo]MQ:k6+{EN{ꖙazV9ogCDٹp$<و%4h)@Ǫo3:Hu딹Z\4X>ڄmlP8vˎ-6FFHb /Os`  PUj1 ^ %FDHu?&QG@8(yF] |zɊb#soTmB9xEfL#=r_$OʂNWPۂzSd׷>);TD'G]d5v/YsI<?Qȫ3am)PH lpo= VG|@6fPQr `ը~>ţ@"N:kq=sJBR QR׮=Jh>"& g hhn*<\M/>DQz PG$GP>AW ̠pJH"X b9Zm@G5C:[nj+ۖh7גmk.ŧr\8MS|+Aj#F 0TÞ% /\מ}ڶa%KA*p+R]Ȣ8'}}O6 8ms C 8.Hg| 0"8X)<8`}j*:7^~l O1B9r_',c.qK ˨k^Vi)hMHǥT.d9FqXh^6b<2RNnM$IvvY6בobr0ETCb6VdFm_g+-i'!q f"kϫEKmڵ[8}x tʎ%T#:VsXC L"j;ej r {cUTJ4% i@+FQ փa Zj5-\2AL)!Q\lQ$vfބC~'( lpok5'A` m)1~tll+3dB .P-R$;%OggS@PvgU^Z]^:;?9>6:7~g]Wg`]jN55S4߫<9D/{5(+8,hnI UmaT~\(ApUU-z.F8 /HXhl9D  ZlUH ^֚&6z-xVθipm@M4X@@M) 2,$ <2؝8fZ`Y6!hmg8JkY?;SFtE s~3/0llBUlI`_K.A>}=#9 Y(V.-.f*ZCZ MF MYl#E*jȔ:u02@UsA`,z=޴Ȍ0=i ڈ->A[mr( YTRZ=H|`#H7^$/z Q TgS_ @J*L&*9!n>h LU)`jٽrGm4Vs G!$Msc`/шMG2ф4!;5x#ۄ& -L(rxXU]%mד> 6X " M3f ŞBx4J%f4E`3[Ӏ[\(y.n&4D$1j[&Uk EEXGIOxK ԉc@ "E!j+)|@[݇һ I(yXC٘"RUw E,*vY.hfMl7m9gn f,hH Ι o=3XBJ3HmP<^oPU*0C0h38 T)C xɊB#%X_1"6~#2i 4ߕ2>HZcЙB]&.,[kQi/5"k25|ګoO&aCMsdm&0_* \ϔ]وp16H,hXt|jX۪u.N"v[vNy댐;g7h>Au~|7@7$Xêz khgQ(d&cREJݒ7~0Z)PqמH"CHvz)+&{PI@l)WA#QabziBG1Cxɳ,'^c}cP={ϊK+鴋hBXY˗Wokrw佾wYNU>?:,})B;\rD`+%+=蝙JYz=e|۩tAy<| +;&iĮuch:BvY[Vy!/[?hs<',P2BQqgf6Z离dDžNb(x"d|V|bl'QVH8A٩0GC_Ƽsi؍@LM+u O3D1D4n iۑcCIǭ=y{zrI};5p>"L+# @5{0N\B2$!bhVMOoiWbqF|,?04JT16Á]dViͷ&e||mj Iy?Cc<y)NDjCr̙^0"3N] ZJMjFZ$Q)*=Z#K k<*+ }\3 mij`*;wĤ$PIts7.bL0J :X)V ij'KO4]H,ltj栙E=#l1UQ8W^.IDUD$Q"b.&  ̬Ci`UZ 6QQEwU2d"ikT2"r$WjN@8Q^U:%P!kwUվgƕF Ӱt#m2 @DZ{$/O7 5EB,sstJ8oJc$KD XoK$s%`j+. *&M(QT-_EEUD y,&dŁ-@#` ١Oږ&y7u$o,elZN3}t;11^SG锅 X-h*zUH^TDB'vq Y`(3e9r2pd a1I|͏ : px`XhTGe 0!b5/3]@8͂ACU{$w5j SED mA4Q&aG@V@!{SC$B͝8_"A:-w0!I-.A GOCXUQAE1p6@UQQ5 B0NkEuq'}*0{O{[AGĘQHd7Q3FjoO r%56%zӸؠZ&/klb Ӗ% >T8ˇ 'K5Tqrl9MAi.0`pt&@M<0P~.P B2Hu1( -;fA K@Iy*1.3@`D1uiUNA I 0)FV 0Ql,R`A `:PCkQ~PTBNJt4QW ȜpBFXmb]}6&%JE@f$y&Pog65q H zmJ4lhڗi| &$K~IҸWK0C)É17}<5Q2th@xca< yf TB i:L;cEE&,&"G@ڒbx ܼɚfT+!'AH !0 `LlXZ~(UAl(Ի! ރY6U0p,F$R!98ն^>82+UU30h>{>6.jf㳭&yPцOW0Qf`r$M$f+ZLHO-{" @Z4GCKK`]p>8G`19 YNo'{"@c+*ȏ^ \C<"2 R؁C!pihlbA(\HX'uԢL:t;%-Zs3h|"cuE[R}m;gJ+OggS@2PvT1WVJWQH9`TVCV>0C)"L)a#9YB9!|n'9\_ cm ;~luH҄beCO|q ]8vTi OLxbeZg !Fxi$ 9<1U@;ڝeR(E>U IC}/)CFqR1=joB}^$)^$%Q` _O* `P?`E h({ ઢR5dUjuAC IZ!$R#~ ?6q8;@8H,P@ %DKO(C< B޸3'7a6)Ԡ4` 9Zc( PU+6CB ݝYYkeC?{UOq mqA9. RQ h9-y}$Gfb'm^ZQ5鼑^$oZ~$GRD׊BB,"$~Y0[p > VH޳=Y^=$f`׌b4TZXt +z@h {UhפN &FROXl0\i/p>#8z@e "vS˔dJ@@D $ $N\bqRh5M5DD c&H \vĄ`{sO 6"]C ә0Ӯ\2C;@My(mlZEU&c^Ρ]\>#u6{kbs^ \ @FE"f" ZD^)&bEZyىjӝt3?4Dh#@꿰pAU WT%v ;2%EEHP_47ZpJR34-NM:CXD (hIAX=0 8~$ {B "& PitL&Yy<@XX@DEPZÂE@|i2]3YR!u])HXǍs&l97b R5bAӀ#\h;/2$ :tf I@FӅ)d!>` DJTA ^H *',EJl @cDa3 (i"<0(+4T%kZ`yI-m?Uk(k\,7‪jYHPE@-]i":uv0jN $!&*Є B3a>%@,;i'0EPĊ )EːK6ibbA:]ѐfC0M LA' tn\_ $,fiSy+<rwE}1l H*$bg"- Fg**Xi݅_* R:͔$:f$" R"[T2\AT=UVxmx !e"t{FMnS@A TR@P˳ 8 b\DH ÊUR,$XBA5 'ET `(4jQPA@" "(X%C< D1FAq 1GGF׆2aX)P*Mo'({UU&CFl UT8l %KEJQ"aA6~=Utig*& $ID{c8-磘MH'SQȫ7Lh4nՆxpn`A 6bPAXRRAQ(p-@F#A2 1^i(@'@ /t G>&RBJr9)䉦N/4@^"І3uvm;cm taepL,-;-bADZ8"L1]ٻ1^[0c>4'Խ-5]y Om;[DAp"Y6aDI*Yd=!XKH^¦i$SsS@0р]Nhu bEUh\Qh+??"7T֠@V,B3PDFF1E*U/A"PHid(b娊bbTAI7Ҩ"U C)ڭV%&Hb 48L,´%ggJ:RX;{/#<yf[fO;J0p6qtQ"g"fol$weBd$c'1"?}:g #&]0ajIa?ĕ* YWw5ՊX"Ces2@ٟw (TATs H9 tWi@1IHUD )I(ٌ v*;$Vq``k  /)e> :šΣ$Th:: J )"Iuu!KQ%tB!HԠb"INhxLl@p'4y[BO\M@ gז&W :GdR̤򘯂Dr6IIf Q8=* ,L[" 5;z.5E[ <#?+2b*g-莈)4޷'3a{sJLg2=Dz3Ifx8yB -BDkJ!c'0uNhjDRH$u4(M1|1J>x<}xyVj5GM{KЍi|A *(v Get [ւ(nb""es9Q|hPAj W35;~ȤICɉԂ\(E~sFF޴p  6mw1Jp9@ʳ H#(EoB 7iRyom3,FV*bz  %NLSI0e7SrL& 9@A F=:H!ID j302! !i ăh$OBD[)1yӴrcgX`2I0p*es"20fkvoJ\U™OxD]Scy-.\–^GLoXF&ak'-R9FnEf hKnڦd P"x= 9ș8t窴FW+מ+ 2S L:/ BeX v*(&z)HB*("&]C;`8iC*b11!D<`01rT06j'|(OP 8񈇗.!j4z\9&K˺ VEQW'Jgd] &JTJ}]# '0`4d&"&=qU?ɖ߻ODx̢8G0wVx[G([v_Q r(`E"LIS :e)O\0w@悢pgpB P.=4 $<@*,7 3)4bJ!C-!&# q')Nh;nG0@ 1u(0$/S h8H0 cI!PPHD^ a>̫-慗aO.EB+I!Fpc2t! m4 &4 iӀ'SPd8G'`\( 6` n`00 p0iz<g1  ")R11z KK+[빖߆o-;b1 PL'[@P" jUS(]nbP%tlMuΚd830UTƮHHwPhRYnp <^Ju($ 2 zx~|ISs"[DY(ʯ^ws\ 2> 8ViU>1$hCNZ @2D4 m$5:)Ab8(LS t#"-h@{F-b05a@ 0QӪ*Xp+Fu8$@4Ć*b$2(4<"&&(EMIÂHޓpD ü`HLҐIy*ŦU~6ր0 LYE@,t%7st Ҟ`E{_XM1A."n{VIy;HɩTt}Df%FDI \$pX;*l"q3 o@,*2 5(.*  t,&f (8QpD hjo=ARw- PT1J@EAP),5BE;DcvLJ)$J(֡5E@P0P 1qxHx`L@2h8@x!\A  48@@0 %H( ٚF'[!ZG.Dx.Ȫ1؆Җ fJbC{f%@a-/=X-o5jp9=>^9UCu&袨"m,QTE@jAE *j5@1l( *B\SаG j$'m1AM@- >P 0$@$|BI!R@QE @ #c a``3 @0,d[nǰժBD  %cCEEc&0xyǕ2B'ASNMP~ۮ e͉ yDe%!ib6 >M(L)09 fR8{Ocz&ygh'B @b$"%h*N'Wm(H`"T+ @Ȅl(jF ETT! DSCbq( RSR1C B@A5&< "BB !DD1, JC*EPG*8d8 l/b)Шvw@e4=߈i4v&҈`<lVO'7HUT"m3N19bzDs #Q㙳47ypDH$Mm0匀&9`c*"UȌl| B<-I㶆 0df[0D\ ۴i@U`S:{C(j*"KLG UT@AҩŒ 4FQhf(*{% V1LSQ!!^ X JL2F0zBR )cLJ`UT(jbZ T)?`V~5E QS(@ ʍLuěƒ ".O< XXlfr`lPLYy_1ĘR^64ՄhrUMpjB=Qd2 ٬H9U[if:'" E5ISK,%sMry^PƲ9l0;ߟ{tV $# ! MF}FA$j,JDvEQ5AESث( *4M$FIPqB#a icATPQQL hXpH§DH* X  #Gi(bA @Bx c-?hZ 9 M50'# cB1`0a !ʑDJ B:x.$j->DUO(4{63QF$/ԮG ea0]ln20ɀqb嬙3Ŋ7N S@)8h[ C $ I- JzJ"`J- bEDAL PW$LU"&"VQAUD!!CyʸăƁP@,.A!LhgL ĔbjEU6hh)1hf F  κ3ʀJmH?/BjHK1\_Xk =J,vfќ`[3ԯx!Ce AJa-_L%5BfMPeUբ QTv5-=ZZXPuh´ ި^PNXҙ2䐂4xHv}(""(UI,]c$! @dAyP>:bq&eohʥ\A0*M^N:fP\BF 5U x#s^ô`0xbEHH}2zdS17#0{`°z(TO p}iyi0oE3}xvo*H iMjVI[420/&TȢ xf8RRljc!##ׯeNC?0UfhK#jR*Y"&$ 'ãGaa*T a1E `=U3Qb+* Z04 aU,VU@&`B)0d\HI,fxBF#@4!.љ0@T9@JD"/G`g``QŽh 'RI\̧sK 0:\@ 0`x#r&:9R+q J} i>bS^̧vɈ)>ոDPAXt:lR$Nepf(bbأM1PM1 '@HCE m2yF1LZՠ }1EL< (LJTUU E”Y N(%x%)DJ@ vFLPmA48iS@0AB20\)JqR,8Ap-YߺO麌;r(^\veUjݢM&tImLBaP$ ֙x(ʇbaTU+fHh)v( !Ilj58;dO,! P<&D#DEĪbh"9" IPZa$* fF# RF>.=a5 EDDMl4PC'LȮI27M5JMcBSGⱇޓPD0h* @ AS0U԰ F( bT C2!y q GEPP+(HiG|<lF"3gJ 0!S\yKTypMh%֑p3U`Fz)LW:(P$ALrT)@ؔ"%s*["idzhP 5UC4E! A޴ * @x@l1DV[QPALĈQT 8I@u]6TV@x\Pe6uh#@ "S0FJqA(I(iZE') 54:(5htҲj ZCa)P1aD @"$.kOggS@PvU}5:GP:2AMM*.58XliNTqaTTm2CS:٫C3 H(Hdm,@Xɨ9xAUULoHL BJ. bj `bTBFEԴ b5PUpB$L\@1H 600њKHqo* *B@<"I^x@8J xRHHD0" J5f`6W1E& ́y+[-*(XUՐ%Aa)o dD+`RNGb2컎]tZ0({PkI IS0n(l̩%FʐHƼ*!Y 2`N ޔX$+YdĆl 8l9"ԋ)a/DMԆi5 mx # Ն `**hbEagULT@@ĆlВYCJ/g E ("j FHP@2I| H1 @%1C{Lk@52$$O Ic4rf4@*1q& 1.X aP7eF(eHZBkey&g#% Cn†4<\@ImT퐠MPH†~D  [\Ef92>3 1U,}XF!gX85-*:";a@nVL F "JUTB M VLT"F @Y e4XEP jE8`7%hp }B%v'`ABvPETE$E;j:# bFKLx5 `TMD"J5QQRdd[}7u EC2lYN2Fc!w¨@-~*X5ˎ\7I` &'Pp{uaHj:ͥ:tSab[bRLܜ0Ql~N,rkp- `bRX3uTAΆV&a`)bZM\aR"MWR䀠0AETL &  lb4&Nה$=%UiY FӋp SU bdGN1I K0)9ay<0Ph ^v9Jct!>q9.$'/,ţ8KIO o )%@va0hAf 4˦`gp_|[}o^-ec)N\9RJW U>lzȔ æD-Li"_"\VD }Q4jSj+"!&WN&i==%MS:YAA&4*j*4SAq$H7IP=% n$IT02lz G@a 8a N[w0ay"I[78Q3ԅh1 ځ2<1h՝lQ0m`NۦP% TUiP'p8쮘y>cLDAfK I "*–(Fб"i(iU! !&duK 1=U@E1M(( "@jUUED@p I#dK΋t+`Q1D IH)S(Arx#q8%>p1@ Rރ'xD瀔$`&@,[`>G \Z  [6=5?3i>{'d"*HۤS(N:ui$ Q8ZI nh$;"VhҐ"I`liSQ,V% eiAW j) 8R Q,TMPn 2TR:lqR$]'τJdBaɔ&X5*"XSELOUKl 0J\D փvE0UbDTxb2"BF$!pH)1 idBh#i`A ~ @"& Ӄl9+* XNtL0ihA[bf@-0È`<=3`+EBȢf@ BFm&VS PLlDDeP!^D :P PP"j(`ze 95v`bUDP$xMŴ T,ՠTdwp;0 ص#bc ( L@ @1$R, DC$x (@1 BTUEl |6JD \ 3SA%f# Sx9 u8)"h:Ta˜bUNIts̜̜"h2c#hnڢbEQ 4h 8@ G:/ -aD,ha`\L5T0ɭbDm(lt2*U5(R!xLMHxӆ " !20FfÓ8DL/B+"Qɐb!#@P$HU1 C2"m53P4 LeK1 `X+ULT,^ZY p'd$QQP(MxIJ6LTħ4O;'ICS $H) 12^ J)P=P0^$8 +^ HZ<1r5 swnUg>AhW2{UIH6GDi/#NgriH҉lQ#FX^'YOSM+QCDy($Y&`z!P-".JLPTT# TUFi F mذ0@CtP*VQ a"Zj`+4E bQQbA PL0T UMQQx$\Gm$ pA&Us B2 I1( {dBHJD#> ΠvrCB12dUQd$JTZO0FFqcjk8ךYdYXMH LU-&Ŷ R#Q&O`2RdDma`D@7a <N(@HK9i\ "0 R0ҠI4e 2܃ {b$I1=!9{0D Ajx4 QPu0BA(@Iv^h^QSPHP">C<&N2@d2  N4H!@Aî'hO@IIxI&)BO1AL$}2x-HaDG ,$I8Zp8 Е>9ré1Ib`# h bBm^.Q'L؊&2HE n!A `ol=$̐!P`UO *j5#*h.!Ub7&ҝ &&HhRW L NF $%A!M=1AcI$/3F $DPNEs0Rb{Ժ]ÄbDL89{c"k &(xK`;<[`0 4'*6ĤSl%HҦN3FI=ISMtBI ^ER@H Lv1B+m @Z k6w4DrsBej$jͻ$ EU=7`Nߧi=H޸d9р&i0\/EyI  IB8@LxR̓ ^$RLJ`~K$a905chjC༨c% }J'!X$vmJ]Tv/MLH DƝjpaV Eg”`Q 0 1C*ٝ]v:x74>$a2RG2X53#ɘd0"""(vk0n1?|ysr9^zH(Xa_R5S^Hmg=޻Ip.׭I7w6j֪&M*!@RS;>$uB cيLMvĀnC1Īj D#jՖRQL0 /m(H`12A<  M4:P߸Le"B$& Ӓèqpëƌ;bA.KS\RzCf9U0C֮|Ii). -c\'{QI%bj2"^}7$}p63', |d48HH)#2xa PA z0qaŐ) Cs !SR k9{U>DBKDu@N5v("  5fGd(M$% rLh:>DBk8ձ>;lLQSn֦Z8^6!괙0.,@S_Ah{7E9,:[Tvs5 ضrx\ZϢ_C -QaC;EB*L5BXDbgCI QG3!a*<1 F'$@E HBaBv269g45x7x~,!k9#拰潓5kMz`Q'[hcsN^xRI`Wg B:QUGHiه D!(TCs3'%D(e鷺{z)tPxPGQSZմ*!i]b{,T~@  Ɛ)L=jQ FI/|($OiWđ9؋@zr¬ )H$G BR0MWF*^lSAD3KP)RE#hK Dp8 IJQfc`թ\q}~4P$Haˌ}DVe q~9 Y I'HD2VRtwrdnUCLlpw Nlai  y mèsfB8ny'!A&.A(I"^q11'J< >}(KOO HDa>yfA 'm i c@@+`H^Z&kzO|up`B5$ н|,ULh9Zoq>0,sNcd™SjCbtǪ03,s|Q),DKi0ڦMS!˙Ȕ<*5=U"i$6Ez8"jءHc,S$^E WHP&j D,R"ўu$K>EV``%#瞄8I\! @Hh聣.@xkp p0@(T O4* Iy'OggSPv݋*H737=J!HђZ!Uk( !o^6=ٽ=OF ̨' 5h ef Ѫ`Xd@ML*ڊ"R#VY̬A5A݈R@<72F+78Ȭ P :Sq`"`4d#4d0xtD Дix(IŽ |F  bC>I(`i"4'TnЮ=xo ?7{+_E,$UWζ>`iFlxC3t;oT^wW93ٶ~pF/cэfV0vcqlL3|2+}527̸&}: 4bCA܁)Uz||t0/0!IEO}LFb ܾ`<)'{] sDN|X!SA'33ūxߟ͛x_j[p^YneH0jUlbQU{}M;q{% ro˳=lTU*jbT=Iݝ؉:QB`@6MMd]$UEuoBS1fݼ%. >P cA,؂ZeTu|O8 bF&19ip~KИ.X.ps3"#se,kE"@*\ʙX( |NM$ ,1A 04&&C㉪~#Or+? XԳlbʵHc Qϴ$`gbPnKf`z)\KK5ݜq_.Y8tgV?(݉}~L9nS~"|6ca].1WÒt%=1ɜ*3o) v<#s@j;s菆Z3gC 6o,h_;|@*A3Ԓ&h4/+GE`OT\7_P&a0ޫ p3@*G@@X`@xex4 P_h6wv`;_X]ԈH#~TPDża@ P E@G]z?ŏDBa (̺hZϣ..4P?rETi6+`[/ qF}?Fh xI?铂 S}6PFVcPPa@1mP~c.e514"@@$Oo4`G]r Vnv=uOs5/QN#Ӫi0FWD7PdontGrd]4N ly1d26ghS[<bSF85`OT,T | )2|Z/q9 ??:q MST m+ &Fb5AUͻ~5iQ@1v0dg;o\I|,d #֗S p@X;G|zIނ j@i硴`N _Tk#nEQ9q aT$rw+?A&#OWFLSX !b!oh@i> &Zџ/ hgfv Jx5X sN^6G@u1(ң-H?M@5PP(>  0Mk F-@#iĊ@ 5o( p  j YNCh*ZRaT,p<l%t}0?`mI l)|'y0e`WA]qҩ .-iDUĔr9a@ k,Jt\u)23٠Y@@B +EY&m rQU>[Q3fs @0a_5%.mF7@f Z$^(W~jýDbe^O=hRd"RM&dn` ;~p,xm_|V,&..P[A* ]}$iD( l<@ `Dă1Q_~GC 7S g  *|oE!zCG@%>.ׅvwuЀlȂd*hɹ7RQz[ve* !Mhpm,@v*2^dșvߴ)Hށp_7ZhE%B;>#N/ Bx oh^YbIR!?H |w߭maA؂袡hO8\XRR`P˰5ZO`S3O '3C dyl0uQivd:j-a` Cy+M$ h"qCh]ΧGV?4F;la.D\iLHQr&p>}@@4L ࢂ`eH~BSa#8^xmg~剋"F>""@ Vt7FP2O~yxZa/ s( Zgxk\$?, XRZwGm.@`3@ DC>lh^kAJ`qPQEf a~vKhF!} YLlT@6畋arwX\O7ڋo-i*Fˠդ4qѲ,)2!RwXŶz]DZ_'ωc@|>Qc.8Y V PpHhqz~M@8?6xVEE oXE, }t@h8Xvթ;ɦp1ϣL g8ueؘE"VDo /OggS@9PvZW6fB;@B@>@==yp^P" hu/\#lB#kp T%+wOdåi;9~J[-ACF!@ *aiZ_ {2a2ÍwrVE"R4ˑ})g/U|9"]|p͡3> ~qj`~P$:fĬFQ\IC25Ҕ=H ϴtiCKOv*{ c`nSW&GL5#V\hγ̿]~|>Ogsb7;U挴=c4'LzjX(zxuH_:2Ϣ4{oj0g'3=ゥt(TL>sTeԼ4J|4|dxC4{|t+;U$Fc]<ѵsTѬ"鲏 ܾeS _=;n4U#)S:47J<3>qf&Tֱw׫9w\^@rm{(8c0qL鵏v+7|Kn3k [ 9x=vjjo`’<ԍ+9*qthq׻6[]6VEN}t:NX1#LGP! /Ďsޕ-#!=*>f^`s" 0> `nK;@Zw @5wy_eMGa$0Tii xQH0 | XV$olƟ)4M=>kf߅5(<+J* wCE* (*P.f5 < Qq7E=S&O`No& 5GMC4zKLCvc{xJTQW{w=D|?_WSʑDYA'fHLrr<˚W [&31U7u7ݧX7t4:ȀR`4 SD}GPTpsʉٺË솘e݅Y8ܘU_.ILGawy6uu{}-񟦰n5# g;ΰB<@ܻ7{i3꽬k tuu ~HQC7!n^~0Z96}*/=lj]o  hl 6)i},Wnv2c7` ww俪DoJIcc^fj Ϫ.I'}&s7Ai6G(וzU)ϨhI tbz]Ea~{#@s_ +G@ulTwT&$sG']߃гIxr#F|#k5}˾XNn+mjIϢA@ d c=ץN?R*<ꭾ] YDŽLFM߃Pɩ9h9Ev_}o-Qз;[\% $ AOBDP<[d~OeoǽO7]5oy濫iU2ZqdG̽8ZCǷYc_BN+Dz KoUã ow3&Is3W H_?|ۥ4.Ɗ;IF;"LdI EۭwXɅo=54څE^.KYY |+)q!_Emפ;lxa1HՉ5/W@*%,*h)̻Vkc:O plD (gÃ^^y}] T|'c/]^(%n8NEfA>J~^lSGx6ۿRIDzsym+ICRT4*'zVt|uKuŤ8?>?{V$ w4M-f8K03:K=U^: țuθ,2є|)|JJ`ؤc4: kn5ijj{Z"(Ān1D&)(R!Aզ( ayH6n`MSP0'<{ \IR7T4me4*H[$4E P cw|L%YYYch6hF-&HDx| `@"”ٵIȕD1D@o#.(+acH!A O})}@ @r89Ш#f"H &`"ѝEMbb jQAJ0$qO#(eӳIjEAL/]\ĕW\ ȊB@lAE!<`2W 2HBV$bA'`>$LBB 00 "!ee H#1R%$ ‡$$I/=0Iq"2i t 3ħPtAPf4T2lBm8̞s`rB j+`"b&`DM*f.(>T " bD2P a*a(a*\EQIq^@*! &nJ/yQH"J&IFrb8 (2N*L$P'k>Od $HdD\pi:qb*WIHI&o =p@#I@\ EC46 x,)PjXE)&VQ-B:ukP1 *b( V͕5RVmʄ"gH1OEE1ӊ<^ )Pe*L(,,0i(^BHE(88x0j# #$ $}L `8​HrA$wu=?`3H &f^Zy`d |`d |VHBd`V`!Ȁb "VQD`j0QԚ $FDvݠhiuTJGȮdĽSJPϪ;MV(i醓 2(IHL>ŤO22Ԧ9S"}LHA CB m;hӤ$JH/HރD @ rm d=s 6f4&bR,8!3@"2P& `UQ^);T<{HPUXŢT)T@T,&X*de4I!&,0T(4e$d# qd>q+ &"!y B"b.9/'AB&IJIȀg"FA(H)c>x]#IDst&ni4.[  4 6Ba1$IbQT$CA$CAB$4VPC  QPZMUܙ`X10p/ Jҳ0-4iI8"JdًQ%˖; %1,"Y!F" "L")UTU%ށقx- 'VBa!i"VTP %ETDZ UXPj*4 )T 7,P*dO 1>Id .BɰF H `N1@H0ʞ8>8 M`1  4âuH1$Rܦ pD ,d3 &Dމt"b +"d*UTS:C,TwL"j*("+^M U P1 pgjŰ B:(!*bEAQUPAtE"8Lw0e;i81| R IHB 錚D4 XIg8MPc$H01z((%p3F#C#0اdgxCE $ @bcd fP X2>7X`ŠDF$ X5DPTPՆ*jy6 W=b bbښŢ `) I2 *(Ȟjez{j bza{1$eiMPl$酔I˨Z2\g 4DA# |A$j4hh0 E,YH`X;‚eZ8zJHGig5/b4yJPQ a&BA ܄jYnI) he2YP)Id) ![l)!I$ /H$$;(BF"4 ᅗ$HHJH(LIG"|8= 5`CY >!4 JgS,*ͤP0[Ai((l,dpF mBD -"6ÂZQSU ճFF pkA%8 D!F7 ^3II S:0e E"(%2))dVPA @H$Ž'@I]O1dHO$S@$b202%HbqaD`c l]o8%fdTT)$mb18v<m!PlZj*#aP0,jbTQ 6D R0 4)+EUCS!B S(Td 8!+! Y&eeI \'+<,hTlFPRiAǒ$q$0 |B"|\k#`7IS"'>A0'IH @kA-~Ó. # HDPiT6ET68br(0ΤJ+"2R g7C L*(³r3 SE`԰ *` jD $UDEԪ&*噒%PxTlu($IA%CbC@DP,7B6hH0D A>'dB(ex 0u QHA8HO" %$B@"$Jb@`{ hB";g4ޜK&;`@(L t 0I:ݜ Q3$MJ d~:b5bȀE ALQ5-)*=A=TL łj&TQQ `AAUs $,J*QAMU `TqbH2 躌eZ*t$|)$eO0"#fPD^:/ PRH d @Xx8F&! $DBx< (I'!Es8 jmM. bRm>z,18 ׎0$#6*"V Q L1KYMF"(H ;1PCULC)*`X-0 U%CᩛEx`R t*+I B/=$ ܓIERP*2e.4Dh SjQTD%'bIb1/!i/htXL(bK ) N;N8yw & "00(ax$3W G23qp) ja5TQܠ, ,Ydd@BUbZ{sbXL{ ˲, a=qf /N T$TwJP!HJMtC4 mFalibextractor-1.3/src/plugins/testdata/tiff_haute.tiff0000644000175000017500000020000012016742766020054 00000000000000MM*`F LX``jr(1z2;A1B{CIC~i!ȇs0^HasselbladHasselblad H4D-31-'-'Adobe Photoshop CS5 Macintosh2012:05:15 10:51:47Anders Espersen Anders Espersen © Anders Espersen image/tiff Hejrevej 30 Copenhagen NV 2400 Denmark +4570260800 anders.espersen@hasselblad.dk www.Hasselblad.dk Photographer 2012-04-04T13:55:21 3 Adobe RGB (1998) xmp.did:FB7F1174072068119290947868F5D58C 5 2012-04-04T13:55:21 2012-05-15T10:51:47+02:00 2012-05-15T10:51:47+02:00 Adobe Photoshop CS5 Macintosh HC 120 II DK42015050 xmp.iid:6B4426990F206811B721DC6E2DE829F5 xmp.did:FB7F1174072068119290947868F5D58C xmp.did:FB7F1174072068119290947868F5D58C saved xmp.iid:FB7F1174072068119290947868F5D58C 2012-04-11T16:21:49+02:00 Adobe Photoshop CS5 Macintosh / saved xmp.iid:6A4426990F206811B721DC6E2DE829F5 2012-05-15T10:51:47+02:00 Adobe Photoshop CS5 Macintosh / saved xmp.iid:6B4426990F206811B721DC6E2DE829F5 2012-05-15T10:51:47+02:00 Adobe Photoshop CS5 Macintosh / © Anders EspersenZ%GZ%GPAnders EspersenU Photographer720120404< 135521+0000t© Anders Espersen81355218BIM%|Z8;H8BIM: printOutputClrSenumClrSRGBCNm TEXTStylusPro4000_ILFORDGALLERIInteenumInteClrmMpBlboolprintSixteenBitbool printerNameTEXTStylusPro4000-CAB8738BIM;printOutputOptionsCptnboolClbrboolRgsMboolCrnCboolCntCboolLblsboolNgtvboolEmlDboolIntrboolBckgObjcRGBCRd doub@oGrn doub@oBl doub@oBrdTUntF#RltBld UntF#RltRsltUntF#Pxl@r vectorDataboolPgPsenumPgPsPgPCLeftUntF#RltTop UntF#RltScl UntF#Prc@Y8BIM,,8BIM&?8BIM 8BIM 8BIM8BIM 8BIM' 8BIMH/fflff/ff2Z5-8BIMp8BIM@@8BIM8BIM`)Haute Couture H4D-31 #1_0019_SMART_130_05`nullboundsObjcRct1Top longLeftlongBtomlong`RghtlongslicesVlLsObjcslicesliceIDlonggroupIDlongoriginenum ESliceOrigin autoGeneratedTypeenum ESliceTypeImg boundsObjcRct1Top longLeftlongBtomlong`RghtlongurlTEXTnullTEXTMsgeTEXTaltTagTEXTcellTextIsHTMLboolcellTextTEXT horzAlignenumESliceHorzAligndefault vertAlignenumESliceVertAligndefault bgColorTypeenumESliceBGColorTypeNone topOutsetlong leftOutsetlong bottomOutsetlong rightOutsetlong8BIM( ?8BIM8BIM 1xh Adobe_CMAdobed            x"?   3!1AQa"q2B#$Rb34rC%Scs5&DTdE£t6UeuF'Vfv7GWgw5!1AQaq"2B#R3$brCScs4%&5DTdEU6teuFVfv'7GWgw ?Bt ZI$BPt)BPNI)I(\btP{Oi$}"4r%4Te>Jl ?I2)ZxtN+_tH&@JTmqH|:G60h#cce1*vDrkk?o=VH_4e^bYݎg^^;D=Ѫ%|b oX#sÎXzge94Xw {j#uҢ߮96 p?Kv׻7K䚀z3tm&.G?s̞okMc1}\XNxkFF P6#o=5 GO~;miE]k-[ ;2@8᜺\+.<85;ݷs] v.CװzoXIb^oN٬Rkݳogk~Ec)ecY;,n275"7l/Wc[葸c;w5aEN sMqk?=Upkw##r#O NgI;WQ RsC'L[0lp·Py _nn#=Ȃ;~z(>7踟ZO`A*:AF䖶dZbO;V-/, Lv+, DZCGc+u:E͒f|?4fYm59 s ]}Ofd;5[_U:uUu (̤Vum{S~bfA>KI:[ڜ ڬꔚ"[`nf=;wgcSf-68+@hjeMcYM[  Kdg1w%unYAsHujqMK;tooSOC:u]'FSݫ)vXI႒*@I*XV=n.2k:$ǵ̖A?H(uv؎ei]VTT{Z ?Vy [?E&Q.-Oڻ'0cCbкnGTo*ߤ7QPu l$GzX=(dXn{u`w涺6BJg-."O"Gv?9wּmVil.{mzl)iɰTkǼvʚkk}d}dy-ӑe_{ :l2mTb}Bg.wWC L@0D[iDߍd j(tZ6II1Bp' \)(2D$$9Ba=[PfFWRemkHa{l48%D`/:?V;:YVvKT=Kk_]ZY mo;oNH;inH3':QQ$74{݁_%`{@!PFmԏؿ8|1ç=}j,{q/ywc.~=۟7Zl͏< {:q=>zϮ;gZ9ֻWK> cIUz)C0 ?):  3}Bf@b|Ռwn ĚFokB pӦNf_ CupW`uƑaeSqLrZu_LՓui/5/]f@![5R$ٻ3@rƶ t}9ߦjQY]UX-e?13?C5US$7]U_x]>kvcwMh-2zg/S31*cY(>+&l駃[Ƒ1%4?si$pߗ~3u%8MvIAp%W$on4SR+!5{~Rf}klk;Up;p?NؘE5͒8sL%Ht2NjJNݠhv?oJֵi N&ӻCi#ܝj0;hDNj"`!WeCj2 q/uFkH6S"sohe8~VξZּSK# j?6⑾:OH{8z8,K^-~܌}/^.T"d~Aϩ9tՎLom̽fnVfk=vDl!ϰŎ;~ϽhɱkpݨsFGSҖHt7ki_ȋ_U>y5Esvd6>E`s~tI?oQxb %f]L<Á߈Y\- d:d:hTZ<8Ѩv'N;jp@^zp:yv9Iy2OJN}$U1W:Cw.I%ջSn(Rm+'7ul< s-sZKIh[V>vK0:Z*55э[}w k=:m'kc+1l5tYq*>Ҵ}_e+u;ݐMlS[f?{/ճ|z>Ǘ8KIy6#m6IPS;wzk4'O?CgF;G'(ԍN rH53! 'M`ѽېpdή9=Za}`e,$JJe$?$I I, O\WDp<~hYBOixNL#5Q|T@\\\}'RI"d@sK]&FStsVlLsObjcnullFsIDlongAFrmlongFsFrVlLslongeeLCntlong8BIMRoll8BIMmfri0ADBEmntrRGB XYZ  3;acspAPPLnone-ADBE cprt2desc0kwtptbkptrTRCgTRCbTRCrXYZgXYZbXYZtextCopyright 2000 Adobe Systems IncorporateddescAdobe RGB (1998)XYZ QXYZ curv3curv3curv3XYZ OXYZ 4,XYZ &1/)+))*(,,(-,'-,&-,'-,'(($(($0.)-,&+*$--&-,%.-&/,&-+%.+&-*%.+&-*%-*%-*$.,%.-%.-%/.%..%/.&,,%-,&,,%-,%1.'0-'.+&-+&.+&.-%..%--%,-$..&..&,+%-+%.+&.+&.+&-+&.+'.+(,+),+*,+*.,*,*%,+&.,'-+&.,&-+&-+&/-'.+&.+&.+&.,&.,&-,&-,%.-&.-&,,&,,&-,'-,'-,',,&,,',-(,,',,(*)&,*'/-(.-&--&..',,%.,&0+&0+&.,'.,'-+%.+&0,%0-&0,&0,%1-%1-%/+$.+$/-&.-&/.'++$+,$.-'.-'.-'.-(,+)''%,,)--),-',,&-,&/+%/,%0-&/,&/-'-+%,+%/,'.+&,*$,+%/-'.-&.-&/-'/-'.,'.,'.-'.-&.-&0.&2.'/+&/+&.+'-*&0-(2.)1.(/-'/-(,,&-,'.,'.-&.-%.-%.,%.,%-+%,*%.-'.-'-,%.,%/-%0-%/-%/,&/-&-,&,+&-+'/,(/,(-,%.,&/-&.,%.-%.-%.-$/.%/-&-,%-,%-,%..%.-%.-&-+&-+'-+&.,&.,&.,'-,',+'-+&/,'.,&/,&/-&/-&/-&1.(0.'.+%.,&.-'.,'.,'/-(.,'.+&.,'-+',+(-,(/-'/-&.,&/-'.,'.,(.-(0.)/.'-,%.-&.-&/-'/,'0+'/+'0,'.-'..&--&--&--&.-&.,&.,&/-'/-'.-'-,'-,(-,(-,',,&.-'.-'.-'.,'0-*.-)-,(--'--'/.(..(.-(..(.-(/-'/,'.,'.,'.-'/-'/-'.,&/-'/.(/.'/.(-,&.-'/.(.-&.-&0.(/-'/-&-,%.-%0.&0.&2/(0.(.-%/.&/.&/.&/.&/.'0.'0.(.,'.,'/-'/-(.-'-,'.-(/.).-'/.(..'--'..(--'-,'.,'.,'.,'0.'/.'/-'0-'0,'1,'1-(1-(0-'0.'0.'/.(/-'0.(/-'/-'/-'.,'/-(/.(/-'/-'/-(.-'.-'/-(0.(/-(.-'.-'.-'.-'0.(/.'.-'.-'.-)--(/.)//)/.).-(0/)//).-(.-'.-(/-)/-*0-)1.)/-'/-&0/(/.(/.'0.'3/(2.'0-'0-'1-(0.)/.)/.)/-)/,(/-(/-)/.)0.)0.).-(/.)/.)/.)0.)0.)0.)/.)..(//(/.(/.(0.(/-&/-%21)0/(..'..'..&/.'1/)/.(.,'.,'/-(1.)1.)0-)1.)0.)0.(1.)1-(0-'0-'0-(0.(1.(0.'/-&0.(/.(/.'/.'0.'0/)0/)..(/.)..).-).-)/-)1-)1-)1-)1-(0.(/.'/-'0.)0.)/-'/-'/-'//(0/)//(//(/.(0/)0/(0.(/.(/.(0.)1/)0.(0.(0.(0.(/.(0.)0.)/-(0.)0.)/-(/-(/-(/.(//)./*/.+1.+0-*0.*1/*0/*/.(0.(0.'0.'1.'1/'1/'1/(0.(0/(1/)10)0.(/.'/.(/.'/.&/.&..'..'/.(1/)1/)1.(1.(0.(/-(.-'0.(1/)/-)-,*-,+--+/.*/.(/-'/-'0-'1.(1.(1.'1.'0/(00(00(10(1/(0.'0.(0.)0.)0.)0-(0.(//(..'..&0/'0.&0-&0.(1.*/-(0.)1/)0-(1.)0-(.,'.-(/.).-(.-(0.)1.)0.)0-)/-)/,)/-)/-)/.(0/(0.(0.(1.)1.(1.(1.(1.(1.(0.(0.(0.(0.(0-(0-)1.*1.)1-'1-(2.(3.)2.(1-(2.)1-(0-(1.)1.*1.)1.(1.(1.(1.)2/)1.'0.&2/(10(//(./(./)--).-)1.*2.*2.*2.*2/*2/*1/)0.)0/)2/*2/)2/)1.)1-)2.*2.*1.)1.(30(30(2/(2/)2/)1/)0.)0.)0.)0-(0.)1.*0-*1.)0.)0.'0-'0.'0.)0/*0/*0/)0/)0/(0/(00(//'..&00(00(0/'0/(0.(0.)0/*0.)0/(10(0/(/.(/.'0.(0/(0.(0-(0-(0-(0-(1.)1.*1/*2/+0.*0-*0-*1-)1-)1-(0.(/.'0/(00)0/)/.(0/)1/*/.)0.)/-'0-(1/(0/(0.'0.'0.'0.'0.'1.(1/)1.(0.(0.'0.'1/(1/(0/(..(..(//)0/)/.(0.(0/)0.)0.)0/)0.)0-)0-)0.)/-(/-(2/)1/'10(10(/.(0.(0/(0.(10)20*0.(0.(1/(1/)0/(0/)0/(/.'/.'0/(0/(/.(0.(0.'/.'0/(00)0/)00)0/(/.'0/(0/)10(10(0/'00(10*/.)/.)/.)0/)0/)/.)0/(0.(0.(0.(0.)0.)0.)0.)1/*2/*0-(2.*40,2/*2/*30,0.)0.(11*00)01)22*/.(0.*0.*0.(0/)0/(0/)1/)0/*/.*0/*0/)1/)20*0.)0.)10*0/).-'/.)0/*0/)10)0/)/.(0/)1/*1/*1/*2/*0-)0-)20+20*1/)0/(10)10*/.(/.)0/)0/)1/)1.)0.(0.(0.)/-(0/*00*0/)0/)1/*20+0/)0.'0.'1/)20*1.)1-(1.(2/*30+3/*2.)1-)1.+0.+0.)0.)1/)1/)2/(3/(4/(30(41(2/(1.(20*20,1/*0-)0-)1.)2/)2/(20(11(11(00)0.)1.)1-)2-)1-)2.*2.+1.*1/+0/+00+0/*1/*2/+1.*1.*1.)2.)2/)1/*0/*0/*0/*1/*1/*2/*1/)0.(10*00*//*00*10*10)1/*1/*2/*20*2/*2/)20)20)20(1/'2/(3/)2/*1.*0.)1/+2/+1/*1/)1/)20)20*1/*1/*10*1/*0.)0.)1.*2/*1.*0-*1.*2/*2/*1/)0/)1/*0.)0-)2/*2/)1.(1/(2/*20*10*10*1/*10*20)10)0/(00*0/*0/*10*10*00*00)10*00)10*20*1/*1/*20*20*0/)0/(10)20*20*1/*2/*2/*10*10*00*00*//)//)//)00)/0)00+11+0/*/0*/0*//*0/*/.)/-(1/)20*20*10)10*10)0/)1/*1/*0/)1/*10*0/)0.)10*10)10)10)11*1/*2/*30+3/*2/)2/)2/*2/+2/*2/*2/+2/+3/+2.*2.*31+20*31*20)//'//(11)10)0.(1.)30*30*1.)1/)20*31*31)31*20(1/(20)2/*1.*0.*/-*0/*0/*/.)33,22+00*00*00*00)00)00)10*21*20)1/(2/)1/*0/*0/*00*00)00)1/*10*20+2/*1/*0.*0.*1/*1/+1/+10+20+20,10+0.*0.)2/)40+2/)20*30+3/+30+3/*3/*2.)2/*20+1/*10)00)10)10)2/)30*30*20*10*20*2/)1/)1/)20*2/*1.(1/(2/)2/)1.(1.(1/(20)31)31*20)00)00)00)10*20*0.(0/)10*00)/0)01*11*31+1.*0-)1/+1/*10*00*./(//)20*21+31*31+10)0/)0/)//)0/)0/)00)21+10*/.)0/)10*20+10*0/)0/)1/)20*20*1/*1/*0/*0/*10+//*0/+10+1/*1/*10*10+00*0/*10*10*10*11*10*10*10*11)11)20*30+3/*2/*20*10*00*0/)1/)10*0/*0/*00*10*21*00(0/(20*1/)0.)1/*10*1/*0/*1/*20*21*0/)0/*0/+10+20+21)21)21)10)10)10*1/)1/)1/)1/*0/*/.)0/*0/*10*20*20*20*2/*30+30,2/*30+20*1/)20)20)1/(20*31*0/)1/*31,31+1/)0.)1.)2/*40+2/*1/)20*20*10)20*31+21+10)0/)21*31+1/)1/)0/)1/*20+20*1/)1/)1/)1/*1/*20*20*10*20*21)21)32*21*10*0/*1/*20+0.)/.*10,10+1/*20*1/(20)31*1/)00*00*00)0/)1/)2/*2/*1.)2/)31*31*21*10*00*10+0/*0/)10*10*1/)2/)1/)1/(10)10(10)00(0/(00)10+00*0/*1/+0.*20+20*0/)1/*10)20*20)1/)10*10)10*21*10)1/)1/)10*20*2/*10*20*10*10*10*1/*20*20*20*30*2/)20*20*1.(2/)2/*2/)20*2/)1/(1/)1/*1.)2/*20+20*31+30*0.)1/)10*1/*1/*1/*20*31*21*10)1/)1/)20)2/*20*2/*2/*3/+2/+0/*//*20+20*1/)2/)20)20)20*20)00)11)21)0/'00(22*01)//(10)20)31*10)10)1/(20)20)1/)20*10*10*20*20*20*1.*1.)2/*41*52*41*30*20*1/*1/*1/)1/)2/*1/+1/*1/*20*20*20*20*1/*20*21+10*0/)1/*1/)1/)10*10*10)10)20*30*3/)30*2/(2/(20)2/)2/*2/*20+2/*20*10*0/)1/*20*2/)2/*2/*0.)1/*30*20*20*30+2/)2/)2/)1/)1/)1/)20)20*20)20)00)//(//)0/)20)31)20)1/)1/)10*21+0/).-(0/)20*0/)1/)21*11*10)10)10)1/)20*20*1/)1/)10*1/)0/)1/*1.*1/*2/*20*30+2/*0.(1.)2/)20*2/*1.)0.)10*1/*0.)20*31+20*1/)20)20)20)1/)0.(0/(20*1/)1/)31+20*0.(1/)2/*1.)1.)1/)20*1/)0/(0/(10)20*1/)0.(1/(31)2/(2/*3/*1-)1.)1/*1/*0.)1/*1/)1/*20+20*10)10*20*1/)00)01(00(10)00)21)21)10)10*10*20*2/)1.)2/)2/*1.*2.*40,4/+50+2/*1/)20*1.)2.*40+2/*1.)3/*3/)1.(1/)31*20)10)//(0.(1.(2/(30*20*1/)1/)10*10)20(2/(30(3/)1.(/.(1/*1/*0.)1.*20+1/*1/*20+/.)/.)/.)/.)0/)0/)0/)00)10*12+11+/0*/0*00*0/)1/*2/*1.)1/)0.)0-(1/*20*/.(0.)1/)0.(0-(2/)2/*2/*1/*0/*0/*//*00+1/*20*1/)0-)1.)0.)0.*0.*/.*1/+1/*1/*2/*2/)2/)3/*3/*2.*1.)2/+2/*2.*3/*1.)0.(1.(20)20*1/)/-(.,'/.(20*1/*1/*1/*0.)0.*00+00*0/*20*2/)20*1/*1/)0.)1/)20+2/+2/+30+30+2/*0.)/.(0.(1/)1/*2/+1.*0-)0-(0-)0-)0.(0/)0/)0.)0.)1-)1-)1.)1-)1.)0.)0/)20*0/)..'0/(31*31*2/*0.)0/*..)..*0/*1/*0.)1/)1.)/-(1/)20+0.)/-)1/*0.*0.)0.)0/)20*10)0/(10)10*1/)1/*1/)1.)3/*2.)1.)0-)0-)3/+2.*1-)2.)1.)0-)0.*0.*/.*-,(/-(2/*1/*1.)/.).-(2/*41,1.*/-(20*20*10*0/)10)0/(//(//(//(//(1/)1/(0.(1/)0.(1.(1.(2/)1/)2/)0/)/.)0/*/.(1.(2/)/-&0.'1/(1/)10)./'00(10*2/*2.*3.*3.*3.*3/*1.)0-)2/*1/*0.)0-(0.)10*00)/.(1/*1.)2/+1.*0,)2.+2.*2/+2/,0.*0/*0/*0.)1/(0/)0/)0/)/.(1/*0.)0.)0.)0.)1/*0.(0/(1/)1/(1.(1/)0.(0.)2/)1.(1/(10(10(21)21)10)0/(00)0/)0/)21+0.(0/(0.(/-(1.*1/)2/*20*/.)/.(0/)00)/0(//(//(0/(0/)1.)2.*1-)2.*1.)2/*0.)1/*31,2/*2/*1.)2/*2/+0.)0.(/-(0/*1/*1/*20*1/*1.*0-*/-)/.)/-)0.)/-(0.(0.(/.(0/)0/)1/*10*0.)0/)//)//)00*..(/-)0-)/,(0-)0-)1.).,&/.(10*/.(/.)//*//)//(//)0/)//)/.)1/+/.*/-*0.+1.+.,)/,)0.*/.)/.)0.*0.*/.*--(.-(0/*1/+1/*0.)1.*1.*0-)0.)2/*2/)1.(1/(..'0/*0/)10*1/*1/*0.)0-)0.*20+0.)0.)0.)/-)0.)1.)1.)0-)0.)1.)1.)1.)2/)0.(/-'.-'.-'/-'0-(0.(2/)2/*1.*1.*0-)/-(/-(/-(0.(1.)0-(/-'/.(0.(0/)1/)2/*2/*2/)2/*0-)0.)/-(.,(0-)0-)0-)0-)20+/-)-,(.-(1/)0.(/.(0/(/.'0.(1.),+&.-(0/*/.(.-(/.(20*1/)0.(0.(0.(/.(0/)/-(/-)0-).,(/,(/,(0-)1/*1/*0.)/-)/-)0/*0/)0.)0.)/.)/-)0.)0.)/,)/,)0-*/,(/-)0-)0.*1.*0-)1.)0-)0-(0-)1/*1/*0.).-(.-)/-)/-(0-(1/)1.).,(.,(0-)1.)0.(1-(2.(1-(/,'1.(1/)/.(0.(1.(0-'2.)1.)/,(/,'1/)1/)/-(0.)0.)0-(0,'0,'1.*0-)/-)/-(0.).,'.-'.-'/-'0.(0.)/-(/-).,)-+(0-)0-*.,(0-)1.*0-)0.)0-(/-(/-(/-(.-'0.)0.(2/)2.).+'0-)0.)..'00)..'/.'/.(.-'/.(.-'//)//)//)0/)0/(1/(0.(.,(.,(/-)/-(0.)0.(0.(-,&0/*0.).-'/.(.,'0-(0.(1/)0.)/-'1.)0.)1.(1.(0-'0-(1.)0.)/,(/-(1.*0.)0.)0.)1/*0.)1/)/-(0-)/-(0/)0.)0.(0-)/-(/-(0.)0.(0.)/.(0.)/-'1/*2/+1/+-,(/-*0.*/-),+&32,/.(/-(/-(/-)/-)/-(.-(/-)1.)0.(.-(/.)/-(.,'0.*.,'.,'/,'0.)/.*.-)00+/.)-,'.-'.,'0.)0.)-,(/.*.-).-(/.(0.)/-(/,)0.+0-*/,)0,)0-)/,(.-(.,(0.).,(.-(0.*/-(0-(1.)/-'/-(/-(/-(1/*.-(0/*/-)/-).-(.-(/.(/-(0-(/,'0-'0-'0-'0.(/.'/-'0.(/-'0.(/-'/-(/-(/-(0-(0.)1.*0.)0-(/-(/-(/-(/,(/,(/,(/,(0.(/-(0.)/-(.,&/.(/-'-,'0-)0,(0,(3/*0-(.,'/-(0.)/-'/.(00)00)00).-&/-&2/(/,&/,'-+'-+'.,)/-)1.*/-).,(-,'--'--&--&1/*1/*/-)-*'0-)0.*.,(-+'0-)0.).,'.,(/-(/,(1.)/+'0-(0-(0-(0-(0.(0.(/-'/-'/-(1/*.-(0.)0-'1/(0-'0.)/.(0/)/-(.,(/,(/-(/-(/.).-(.-(.-(.-(/.(00*--(//*-.)/.*/.(0.)0.(0.).-(.-(.-(/-)/-(-+'0.*0-)0-)0.)0.)0.)0.)10+.-(/-*/-)0.*1.*..)..(//*.-(.,(1/*/-(.-(.-).,(1.*1.*1.*0-)1.*0.)/-(0-(0-'40*1-'2.'52*1.'/-'.-(/-(0-(30)2.(0,'0-(/,'/-(20*0.)/-(/.)//)0.*/-(0-*1.*1.*0-)1.*/-'0.(/.(0.)0-)1.)1.)1.)0.(0.(1/(0.(1/)1/*/-(.-(0.)2/*1.)1.)0.)0-(/-'1.(0-(1.)0-(0-)2/+/-*.+)1.*1.*/.)/.)/.)1/*/.(/.(0/)0/)0.).,(/-)2/+0.)10*0/)0/)0/)0.)1/*0-)/-)1/)1/)0.(0/*0.*0.*2/+1.*/-)/-)/-)1/+1/+0/*0/)0.)0.(0.)0-)1.*0.)1/)1/)0.)0.)1/*0.)/.)21,1/+/-)/-)1/*0.)0.)/-(1/)2/*0-(0.)/-(0/)/-(20+0/)/.)21+1/*0.)1/*20+1/*1/*1/*0/)1/*0/)0/*20+1.*2/+0-*/,)0.*/-)0/*10+0/*/.*//*10+0/)20*1/*20*20*21*00)0/)10*20+1/*10*20*1.)2/+30+1/*0.)0/*20,0/*/-(0.)10+0/)/.)0.)20+0.*.,(2/+0.)21*10)/.(0/(21*1/)0.)/-)0.*0.+20,1/+2/+2/,1.*1.*1.*0-(1.)2/*30+42,10*1/*1/*2/+2/+30,30+2/*1.)30+20*1/)0/)10*0/)10*20+1/*1/*1/)31+1/)0/)31+20+30+30+2/*2/+31-20,1.+1/+30,20+21+1/*1/*20+31+1/*1.*2/+41,20+1/+20+20+10*20+21+1/*1/*0.)20*42,10+10+1/*10+0/*0.*0.*30+72,3.(2/)2/*1/*20+2/*20*31+21+1/*1/*0.*20+2/*2/)2/*2/*30,30-0.+0.*20+2/*2/*1.)2/)3/*2/*2.*2/*31+20)1/)2/*20+2/*2/*20*20+1/*1.*2/*1.(3/)30*10*1/)1/*20+2/*20+1/+0/*32,43-10*//*//*0/*0/)1/)31+31*10)1/)30+20*20*31+10+20+20*20*31+20+20+31,20+20+20+1/*20*/-'1/)20*20+20,1/+1/*2/*30*41,31,20*30*30*30*30*30+31+42+20+1/*20+20*30*31*30*2/*31+31*30*1/)21*22+10*10*31+2/*2/*1/*1/,10-0/,0/+2/+2/*2/*20+20+20+20,21,00+11-22-10+31,31+1/*0/)10*10*10*10*10*31-20,1/*2/+20+0/*2/+30,30,20+21,20+20+10+0.*0.*0.*1/+1/+0.*20+31,20+20*10*10*10*00*21+41,41-31,10*20*20*0/*00*00*21+31,2/+2/+41-31,31,20+1/+2/+2/*30+20+20*10+/.)20*41+2/*2/*2/*30+2/*0/)20*20+20+0.+0.+20+31+31+31+41+20*1/*1/*1/*1/*1/*41,52-30,3/,1/,0/+1/*10*20*31,30,20,31,11,00*20+31,20+31,41,0/*/.)/.)20+31,1/*0.)20+20+0/*10*11+21,10+//+0/+21,10+21,21+10*11+//)..)10,11+11+21+32+32+32,31,1/*0.*0.)1/*21+10)//(21*20+0/*21,21,1/+21+42,10*0/)20*20+20+10+0/*20,30,30+20+1.*1/*31*21*22*21)21)32*21)10)11*10*0/)10)10*00)21+20+1.*1/*31+31+1/)20+30,1/+20,30,2/+20+2/*10*23,12+11*10*21+21+10+1/+2/+30,30,20+20+20+21+21*21*30*30+20+1/*20,31-20,2/,1/,20+2/+1/*2/+30+30+20+31+20+20+10*10)20*42+30+2/*2/*30+31+20*20+20,30,40-3/,2.+30,20+0/+0/+10+10+20+21+20*20+1/+20-2/,/.*10+31,21+21+21+30+41+30+30+31,10+20+31,20+21+31,10+10*20+21+31,30,30,30-2/+1/+20,20+10+10*20+21,21,31,20+1/*10+20+32,21,1/*20,31-10+0/*1/+1/*1/*41,42,30+30+41,30+2/*20+20+31+31,20+1/+2/+3/+4/*4/+51,30,2.*2/*20+1/+0/+20,51,3/+2/*30+30+21+21+21+20+31+31+30+30+21,10+10*31+32*21*21+10+/.+0/,20-1/,/.*10,31-10,00.0/-21-43-31+21*31*31+30+1/+1/+1/+20,30,20+2/*2/*20+30,31,41,31,31,21+21*32+32+32+42,32,21+21+30+30+30,40,41,41,21*10)20)30+41,41,30+10*1/*30,30,30+3/*30*30*30*31*1/)/.(1/*20+20*31+30,30+30+30+30+40,40-40-30,30+32,20*20*30*30+30+30+30+31+31*10)0/)2/*30,3/,3/,2/+30*41+31,30+31,42-20+20*31+31+21+20*20+21,20,31,30+1/*1/*2/*30+31,42-31+21+42,20)20*31+20*20+31-21,31-21,1/+20-21,20+21+21+10+20+21,21,21,20+30,3/,2/+20,31,20,20+31,21,10+20,31-20,30,30+3/+51,30+20+42,51,31+31,20+30+31,30,30,30-31,31-31,10+20*41+41+41,41,31,32-21,21,21,30,41,52.41-20,20,1/,20,30,20+1/+2/*30+41+52+52+41+30+2/+20,21,21,20+20+30,50-40,40,41-20+00+22,32-21,10,20,30,30,40,30,30,30+31*41+20+1/*20+31,21,20+21,20,20,20,10+31,31,2/+20+21,31,31,20+31,30,30,40,30+52+53+32*30*31+20+20+30+31,30+20+20+20+30+41,31,30-41.31,20+20+21+32.32020-0/+0/+21-20,2/+3/+41,52,20+2/+20,30,40,30,30,31,42,41+41+51,4/+3/*30+41,30-10.1/.2/-31-20+21+42,22+11+00*10+11,11,21,20*20+21-20-20.10-1/-20-20-21,10+20+31,20,32-32-21-31-31,30*30+31*31+42,31+21+31+30*30+52-41-52.41-30+31+30+30+30+41,42,21*31+42,30+30+41,30,20,42-53-42,21+32,42-41-2/,2/+30,40,40,40,40,40,40,4/,50-51-40,30+31+21*21*31*31+52,51,40+40+50+51+51+50+61-51,2/+31,31,31,30,30,30,20,42.42.20,21,32-32-32,31,21+21+31+42,31+31+32,30+40,51-41,30+40+51-41-40,31,30,30,30,30+30,52-30+30*40*40*51+52,30+30,41-30,30,30+30+30+2/+3/+3/+20+42-42-30+30,41-31,31,20,30,40,3.+4/+51-31-31-31,31+42-31,20,20,20,20,00*//*00+21,10+21+41,40+3/*41,41,31,32,41,41,31+20+31,21,21-31-31-42,52,41+30*40*40+30*20*30+41-41,41,41,41-42-41,42-42-21,21,31,31,41,31+42,42,31,31,31,31,32,33-22,21+32+42+42+32+21+22+22+21*31+52-41+42+52,41+41,41,40,40,41,30+30,31-30,30,41,30+3/+41,30,30,31,51,40+40,51,51,52-31,20,31,31,41,50+40+30+52-41-3/+40,51-41-31+41+42,41+52,51-30,40,30,31+42+52,41,41,51-41,40+40*41+41,41,42-41,31+32+21,21,21,1/+31-41-2/+2/,30-30-30-1/,0/-31/42.41-31,20,31,31,31+20*21+42,52-41,41+63+52+52+51+51+51+41+20+21,32/32/20-2/,2/,20,30.30/40-51,51,51+51+40*41+52-52-41,41,41,41,41,41,40-30.3/.30-40-40,40+40+40+30,31,31,20+2/+20-21-32-22,22,22-21,21,21-32-21,31-11+11*22*32*21*20+42-32-30,3/+3/+30+40,30+41,41,20+20,20,21+31+41,31+30+41,41-52-52,30*2/*31,31-42,40+30+42,41,41,31+41+63,52,30+30,31-31-2/-30.1/-10-31.31+31*31*42+41,30+30-41.41,41+52,51,52,30,1/,2/,30-31-30,41,42-30,20,30,20+31,42-20+30,21-10,2/+20-41.31.20-20,2/,2/,20,30,31,41-30-2/,31-31.20-30,41-30+30+40,41,51,41,21*31*41+31*31,31-21-21,10*31+41,41,31,41,21,22.22/00+30+41,40+51,51,71,81,92-81-92-72,52+42+31,31,31,31,30+30+30+31+42,42,31,42,32-32,20+31-42.41-41-41,41-30+30+42-30,40,40,41-52.41,40,51-41-40,31,41-31-31,32,32+31*31+32+32,10+00+11+21,32-42-20+20+21,20+30,30+31,41.2/,2/,52.52.30+30+30,20,2/+0.*30,41-30+3/+41,41-31,31,21,21,11+21+43-31+0.(20+52-42,31+20+20+20+21,21,10+21,52-51-3/+3/,3/,3/,30,30,41,41,30+30+31,31,42-42,31,31,30,3/-3/,3/,30-20,1/+20,11-11-21-21,10+20+30,31+41+41+52,41+30*31+31,20+31+31+30+30+30+30+41,41+30*30*41,41,40-30-2/-41/31.20,31,31,21+52-62.41,30,41-41-51-52-52-41-21,21,10,21+31,30+3/+50,50,40,41,41,41,42-32-10*1/(31*41+3/+4/,50-4/-4/,40-40-3/.2/-2/-1/.10.20-30.20-20,31,21,10+20+31,41,41,40+31,42,41,51,50+40+41,41,41,41,41,31,0/+10,31-31-41-31,32,21+20+31,20+30,30,30+31+31+40+3/+40+40,30,41,51,62-73-52+52+52,41,41,30+41+42,42+42+31*31+41,41,30+30+41,30,2/,30-40,40+41+30+31,20,21-20,20+21+32,21+20+20+41,21*10)21+31-31-31,42-32,11*01(10)20*42,30+20,31-31-31,20,2/+3/+40,40,2/+20,31,20,20+21+22+22+30+4/,50-40-30-1/+20,42-31,1.*2/,40,40,30,30,31+30+40+50,4/,30,41-20,0/+10,31-51.50.40.3/,30,20+2/+40-60.60.61.62-31,21+31,31,20+21,10+0/*1/*31-52.42.41+3/*30+41,2/,2/,2/,20,31,41,41+41,52-30,20,20,20,21-20,30,63.74.30+2/*2/*31,30+2/+41-41-42.0/,21-31-30-41-41,31+32+32,43.31+1.)30*41,30+20+30,41-40-30,51-41,51,52-30+31+41+42*42*42*32+31+20*21+21+32,31+20*52-41,30+31,30,20+10+0/*31+42,42+60+60+50,40,30,21,21-0/,2/-41-52,42+42+41+62,83-50+40*40+40+40,4/-3/,4/,40,30,2/,1/,1/,20,41,42,31+30,1/,/.,10-21.20-30,31,41,52-30+20*2/*1/*20+30+40+30*41,41,20*2/*21*21*30+2/*30+30-30,20,21,31,20*31+41+41+42,42,20+31+20+20+20+1/+1/+31,20+31,2/+3/+5/+4/*50*50*61+61+60*4-(5/+40,2.+51,61-72-3/,1.+1/-31/20-20+41-2/+1/+0/+0/*11*22+0/*0.*30,51-40,3/+3/+3/+3/+2/,41.30-0/,0.+30,41,40,51,40,2/+1.+3/,3/,30+53,53,20*1/*30,63.41,30+31-1/,2/,2.*3/+30+41-30+30*3/*20+20+20+20+31+52.2/,2/,2.+3/+3/+1/*40+50+4/*72+30(32)32*0/*00,10,20,0/+10,20+21+11*21+21*21+21+0/*//*20,40,41,30*30+3/+2/+3/,3/,2/+2/+50,40,30+0/*0/+0/+20,2/+30+3/*61,50,5/+4-*5/,41,20+1/,2/.2.-4/.3.,4/-1-,/-,0-+50,4/+52,41+20)31*40+30,3/,2/,2/,1/,1/,2/,30-30,30-2.+30-10+//*340./-//-1/-2/-2/,3/,40-2.,2.-1/..--0.,30,30+31+31*31+41+30+30,20,30-20+30+52,52+41+42+30+1/*10*21*20***)**',+'+*%,+%.-(-,'.,'-,'/-(-,&+*$,+$.-&.-&.,&.+&.+&.+&.+&.+&-+%.+%.-&/,&0.&0.&/-&.-%-,%-,&.-&.,&0.'.,&.+&.+'.+&.,%/.&,,%,-%--%..&-,%-+%-,&-+&-+&-+&-+&-+'.,*.,*.,*.-),*%,+&-+&-*%.,'/,'/-'/-'.,'.,'.,'.,'.,&.-'.,&.,&-,&-,&,,&-,'-,'-,'-,'--(--(,+'+*'*)&/-).-'0-'/-'.-'-,&-+%/+%/,&/,'.,'-+%.,&/,%/,%0-'/,&1-&/,%/,%.+%/-&0.'/.'--%..'-,&-,&-,'-+',+()($.-(.-(--'..(-,&-+%/,&/-&.,&/-'.,&-+%/,&-*%-+%,*$.-&/-'-,&-,&.-(-,'.-(.-'.-&.-&0.&1.'/,&.+%.+&-+%.,'0-'/-'.,&/-(/.(-,&-+&.-'.-&.,%.,%.,%-+%.-'.-&.-&.-&.-%/-&/-%/-&/-&.-&,,%.-'.,(.,(/,(-,%.,&/.&.,%/-%/-&0.&.,$/-&/-'/-&.-%0.&.,%/-'/-(/-(.,'.,&.,&/-',+'-,'.-(/-'.,&/-'/,&/-&/-&/-&/,&.,&.,&.,'.,'-,'.,'/,'.,&.+&.,(.,(.,(/-'/-'.,&-+&/-(.,(.,'/-(/.(.-&-,%.-&/-'/,'/+'/+'0-(/.'..&-.&-.&--'-,&.,&.,&.,&.,&/-'-,'.,(.,'/-(.-'.,'-,&-,'.-(.,(,+'.-)..(.-'--'--'-,'.-(.-(.-(.,'/-(/-'.-'0.(/-'-,&.,'/.(/.'..'/.'/.'.-&-,&.-&/.'/-'/.'/.&0.'.,%/-&1/(/.'.-&.-&.-&.-&.-&0.'1/(0.(/,'.,'/-(/-(/-(..(11+.-'.-'/.(/-'/-'/-(/-(-,'.,&/-'/-'0.'/-'/-'1.(0.(/-'1.)0-'0.'0.'0.(/.(.-'/-'/-'/-(/,'/-(0.)0.)/.(.-'.-(.-'.-'/.(0.(/-(0.(0.(/.'0/(/.'.-&0.(/-(/-).-(.-(.-)--(.-(0/)/.(..(.-(/.(.-(/-).,(/-(.,&/-&0/(0/(/.(/-'0-'1.'2/(0-'/,'0.)/.)/-(/-)/-(/-(/.)/-(/-(.-'/-(0.)/-(/-(/-(0.)/-(/.(0.)1/(0.(0.(0.(0.'.-%0/'10(/.(..'/.&/.'0/(/-(.-(/-).,(/,(0-)0.)1.)/-'/-'0-(1.(1-(/,'/-(/.(/-'/-'/-'0.(0/(0.'0.'0/)0/)//)/.)/.)/-)/.)/.)/.(1.)1.)1.)1.)1/*0/)0.)0.)0.)/-(/-(.-'.-(/.)/.(/.(/.(/.(0.(0/)/-(/-(0.)0.)0.(0/)0.(0.(/.(/.(/-(0.(0/)0.(/-(/,'/-'/-'/.(..)-,(.-)/-)1.)0.)0.)0.(0.(/-'/.'1/(0.'0.'0.(0.(0/(10)0/)0.(0.(/-'/.'/.'.-&.-&/.(0.(0.(1.(1.)/-(/-(.-(.-(/.(/-'/-(/-)-,)/-)0.*0.)1/(0.'/-'0.)0-(0.(1.(0.'0.(0/'0.'0.'/-'/-'0.(0.)0-(0.(0.(/.(//(/.(0/(0.'/-'0.)1/*0-(1.)1.)0-(1-(/-(.,'.-(/.)/.).-(/-)/-(/-)/,)/,(/-)/-)/.)..)/.(0/)0.(0.(1.)1.)0.(/-(0.(0/(/.'/.'/-'/-(/,(0-(2/)2.)1-(1-(1-(0-(0-(0.)1/*1.*0-)0.)0-(/,'0-'1.(1-(0-'0-&0.'0.'/.'0/(00)//)/.)/-(0.)3/*2.*1-)/,(0.)1/*0.)0.(20*2/*1.)2.*2.*1.*1.*0-)0.(30)30)1.(1.(1/(30*1/)0.)1/)0-(0-)2.+1.*1.)0.)0.(1.)1/)0/)0.)0/*0.)/.(0/(00(00(0/(/.'//'00(00(/.(0.(0.)/.)0/)//(--&.-'10)1/)/.(0.(/-(.,(/,(0-(30+1/)0.)0.)0.)/-(0.)1.*0,(/-(1.)/.(..'10)21*10*0/)0/)0/)/.)0/)2/*1.(1/)0/(/-'0/(10)0/(/.'0.(1/(1.(1.(0.'1.(30)20)2/)20*0/)..(1/)1/)0/)0/)0/)0/)0/)0.)1/)20*20*/.(0/)20)20(10'10)20*10)0/(/.'1/)1/)0.(0.(0.(/-(/.'0/(0/(//'0/(0/)0/)/.(0/(10)10(0/(00)00)0/)/.(0/(0/)/.(0/)10)0/'0/(10*1/*/.)0.)10*0/*/.)/.(0/)0/)0.(/.(/.(0.(0.(0/)1/)1.(1-(1.)30*30+0.)/-(0.)1/)0/(0/(0/'2/)30+2/*0.)0.(10)10)0/)/.)/.*0/*0.)0.(0.(0/(10*10)0/)0/)0/)/.)1/*1/)1/)10)10)1/)1/)2/*2/*1.)/-'0.(1/)/.(/.'0.)10*1/)1/*1/*1/*1/*1.)2/*2/*2/*0.)0.(0.)0/)0/)0/)10)0/)0/)0/)1/)20*0-(0-'1.(1.)2/*2/*2/*1.*1.*2/+1.*1.)1.(1/(2/)2/(2/(2/(3/(4/)3/)1.)10*10*10+00+1/*20*1/)1/(20*21*1/)1/)2/*2/)3/*3/*2/*2/*1.*1.*1/+/.)/.)0.*0.*0-*0-*1.*0.)1/)20*1/*0/*10+1/+2/+2/*1/)1/)10)//(//(00*10*20*20*1.).,'1/*2/*1.)2/)20*1/(0.'2/)3/*2/*30*1/)20*31+20)20)31+1/)1/*20+10+00*0/*1/*1/*1/*20,0.+-,*0-+1/+0/)0/)00)0/)0/)0.)1/)20)2/(1.(2.)20*10*1/*1/*20*20)20)0/(0/)10*10*10*10+10*00*00)0/)00)10*1/*1/)1/)0/)00)11+//)//)00*0.)0.)1/*1/+0/*10+10+00*//)//)00*00*0/*10*0/*00*0/*0/*10*1/*0.)0/)1/*20*1/)0.(1/)1/*1/*2/*1.)20*21+10*0.)0/)0/*10*1/*0/*0.)1.)2/)1/)20*20*2/*20*20*1/*1/+2/+2.+1-*1.*2.*0,'20)20)11)00)00)00)0.)0.(30*30+20*20*20*20)10)21*10(20*1/*/-)0.*/.*/.)10+10+/.)/.)10*0/*..)/.)0/)0/*0/)/.(/.'31)30)20*1/*0/*0/*0/)1/)1/)0/)0/)20*20*20*20+2/*2/+2/+1/*1/*20+20+1/*1/*2/*3/+3/*2/)2/)1/*0.)1/)20*30+31+30+20*1/*20*1/)0/(1/(1.(20)2/)1/)10*21+20*1/(1.(20*2/*1.)1.)0.(2/)30*1.)2/)2/)20)20)10)10)10)00)10)20*1.)0.)20*21*10*00)10+1.)/,(1.)1/)20*21*//)./(10*20*20*31*31+1/)0/)0/)/.(//)/0)00)10*0/)0/)21*20*10*1/)1/)1/*1/)2/)2/)20*30+1/*0/)/.*/.*0/+10+1/*1/*1/)1/*1/*0/)10*11*11*11*10*11*21*21)10(2/)3/*3/*30*21+10*00*10*10*10*00*0/*00*22+21*10(20*21+20*0/)0.(21*20*10*20+20*20*10)10*10*20+20+20*10*21*10)0/(10)1/)20)20*1/*//)/.)0/*/.)0.(20*30+1/)2/+3/,3/,2/+1/*20*20*21*20)20)20)0/(//)0/*10*1/*0.)1/)1.)2/*40+30*2/)2/)30+20*1/)1/)20*1/*0/)0/)10*0/)0/)10*0/)0/)10*20*10*10*10)1/)10)10*10*1/)20)20)10)10*10+10+00*21+10+/.)0/*10+2/+1/)1.(30*42+10*/0)/0)00)1/)1/*20+1/)1.)2/*31*20*20*21+20+10+0/*1/)21*10)10)20*20)1/)1/)1/(10)00)0/)20+10+10+20+20+0.*1/*31+31+30*30*31*20)10)21*0/)10*32,21*1/)10*20*20)20)20)2/)20*20)10)20*30*30*20)20)2/)0.(1/)1/)2/*2/*2/*2/*2/*20*20*31+20*0.)1.*1.*2/*1/)/-'0.)20*10*10*1/*20+20*1/)10*10*1/*1/)1/)1/*2/*1.*2/*2/*1/*1/*1/+2/+1/*1/)20*1/)1/)10*10*10)0/(0/(21*31*11*0/(1/(20*20*1/(/.(0.(0.(1/(1/)1/)0.)1/)1/)0/)20*2/*1/)2/*31+41*30)30)30*20+2/+1/*1/)20+1/+0/*1/*20*30*2/)0.(1/)2/*1/)10*0/)10*10*10*21+10+10)10)21*20*20*30*20*20)1/)2/)2/*1/)1/*1/)0.(1/)2/*2/*30*3/*2/)20*20*1.)1/)20*30+2/*2.)2.)1.(2/)20*20)20)20)20)20)20*10)0/)0/)20)20(20)31*20*10)10*//)/.)10*10)20*21+10*00)10)10)10)20*20*20*20+2/*20*21*1/*1/*0-)0.*1/*2/*1/)0.(1/)1/)1/)20*2/*2/*1/*0/)20*20*10*1/*1/)1/)20*1/)1/)1/(1/(0/(1/)2/*1.)1.)1/*1.*1.*1.)2/*2/*20*20*1/)1/)20*20*1/)0.(0/(1/(20)30)2.)1-)1-)1.*2/+1/*1.)1/)1/)1/*0/)0/)10*10*1/*1/)10*11)11)10*0/)10*21+10*0/)0/)20*20*2/)1/)1/*2/+2.*4/+3/*2.)31*20)1/)1/)1/)1/)1.)2.)40*3/)0.(1/)30*20)20*10)20)30)2/)30*20*1/*20*20*1/)2/)2/)2/(2/(1.(20)31*0/)0/*1.*1.)20*20*0.)/-).-)..(10*00)-,&/.(00*11+00*/1*/1*./)//)0/)20+30+2/*1.)1/)2/*30+2/*/-(/.(2/*2/)2/)20)2/)2/*0.)0/*10+10,1/+0.)1/*2/*1.)1.)1.)/-)0/*0.*0.)1/*1/*0-(1/)3/*1.)2.*2.*0-)1.*2.*2/+1.)1/*20*1/*1/)0.(0.(/-).,'/.)1/*1/*1/*1/+0.*1/*0/*0/*0/)0.)0.)1.)0.)1/*20*1.)1.*1.*1.*2/+1.*2/+1.*1/*20+1/*1/+1.+0-)2/+3/*3/*52-1.)0-(1/*2/+1.*1-)2.*1-)3/+30+0-)0.)10+/.(10)31*0.(0.(1.)0.)0.*/.*0/+0/+/.*/.)1/*20+2/*1.)1/)2/*0.)0.)1/+0.*0/*1/*1/)10*10)10*1/)0/)20*31+2/)1-'1.(2.)2/+2.*1.)2.)1-)2/*1.*/-)0.*1/+0/+/.*/.)0.)1.)0.)/.).-(1.*30+63.20+0.)0.)0.)/.(0/)0/)0/(//(0/)10*1/)1/)0.(0.)1.)1.(1.)2/)1.(0-(1/)0/*/.)31+2/*1.(0.'0/(0.'/.'0/(11*00)10)2/)2.*3/*1.)0-(0-(0-)1.*2/+1/*1.*1.*10+0/*..(/.(/-(0.(1.)2.)3/+2/*2/)20*0.)0.*0/*0.)0.(-+&/-'0/)1/)0.(0.)1/*1/*1.)0.(1/)1/)0.(0.(1.(1/)0.(1/)2/)2/)1/)0.(0/)10*0/(1/)21*0/)/.(10+21+0/(0/(1/)31+20*1/*1/*20*/.(/.(0/*/.)00)00)//(//(0/)0.)/,'1-(3/+2.*1.)2/*1.*1.*0.)0-(0.)0-)1.*30+2/*0.)/.(10+1/*0.)0.)1/*0-)/-)0.*0.*0.*1/+2/+0.)/-(1/)1/)10*1/*10*10*0/).-'/.(0/*/-)/,(/,(1.*1.*2/*2/*0/)1/)/.)/.)0/*/.)//)//)/.(/.(/.(1/*1/+0/*/-)0.+1.+/,*/,*.,)/.)/-).-).-)//*--(.-(0.)10+1/+0.*0-)1.*0.*1.*2/*2/)2.(2/(/.'.-(/.)0/*1/*1/*1.*0-)/-)0.)/-)0-)0.*0.*0/+1/+0.)0.)1.)1.)1-(2.)2/)0.(0.(0.(1/*1/*/-(0-(0.(0-(/-)1/+0.)/-(0.(/-(1.)1.)0.(/-'0.(0.(1/)1/)0-(1.(1.)0-(/,'0.*1.*0.*0-)/-)0-(0-)0-)0.)0.)0.(1/)1/)/.(/-(0-(0-(0.)1/*0/*/.)/.)/.).-(0.)10*0.(/-'0.(/.'/.(/-(0-(1.*0.*/-)/-).,(/-)/-)/-*/-)0-)/.(0.(/-(/-(/-)/.*/-)/-)0.*/-)0-)0-)/-)0.*0.*/-)/,)0-)0-)0-)0-)0.)0.)/-(/-(/-(/-(0.)1/)/-'0-(1.)0.)0.(1.)/-'/-&/-'1.)1.)0-(1/(1/)0.(1.(0-(/,'0-).+'0-(1/)0.(0-(0.)0.)0-'0-'/,'1.*/-)/-)0.)1/*0.(0.(.-'0.)0.(0.)/-(/,)/-)-+(.,).,(/-).,(0-)0-(1.)0-(0.(0.)/-(.-(0.)0.(/-'0-(/-(/-(0.).-'..'/.(/.(..'/.(/.(..'0/)//).-'1/(1/(0.(1/).-(.,(.,(-+'.-'1/)0/)/.)..).-(/.)/-(0.)-*%/-'0.(0.)/-(1.)0-)0.)0-(1.*1.).,'/-(/-)0-)/-(0.)0-(0.)0.)0-(.,'.,'/-(.,'0.)0.)0-)/-)0.*/-(0.)0.)0.)1/*/-(.,'.,'0.(0.(.,'.,'0.*0.*-,&.-'.-'.,'-+'/-*0.)0.)0.)/-(0-(.,'-+&/.(/.(.,'31,31,.,'/-'0.)/-)-+'.-)/.)//).-'.-'/-(/-).,(.-)/.*/.)/.).-(.,(0.*/-).+'0-)0-*.,(/-)/.*/.*/-)/-)/-)/,'/,'/,(0-(/-'0.(/-(/-(/-(/-(0.*/-)/.)/.).-'.-'1/)1/)0.(1/(/-'/-'0.(1.(/-'1/)/-'/-'/-'/-'0.)0.)/,'0.)1.*1.*/-'0.)/-)/-(.,(.,(0-)/,(0.)0.(/-(/-'-,&/.(/.'.,'0-(0,(3/*2.)0.(/-(/-(0.)/-(.-'..'--&/.(0.(0.(0.'/,&0-'.,&.,(0-*0-)/-)1/*/-).-(..(..'--'1/*1/*/-)1/+,)%.,(/-)/-).+(0-)0.*.-)/-(0.)1.)0-)0-(0.)0.)/,'/-'0-(/-'/-'/.(/-(/-(0-(/,&0-'/-'/-'0/(0/).,'/-(/-(/,(0.)0.)0.).-(.-(/-(.-'..(00*..)/.*/.)/-(0.(/-'0.(/-(.-(0.)0.).,'.,'/-(0.)0-)1.*/,(0.)31+/-(/-(0.)/,(/,)1.*/.)//)/.)0/*/-)1/*0.)/-(/-)/-*1.*0-)1-)0-(2/*1/*0.)1/*1.(2/)1.(1.(0.(/-'0.(0/)0.)/,'1.(2/)/-'1/)0/)/-(0/)22,/.)//)/.)0-)1.*1.+1.+0-*1.+2/+0.(0/)0/*0.)0.)1.*1.)0.(1/)10)/-&0.(1/)0-(0.)0.)0.)0-)1-)1.*2/*1.(/-'1/(2/*1.)/,'.,'0-*.,).,)1.*1.*0.*0.*/-)/.)1/*0.*0.)0.)0/*/-(.,'1/*.,(0.)20*0.)0/)0.)0.)/-)0.)1/)31+0.(0/*0.)0.*1/*1.*/-)/-(/-(0.*1/*0.)0.)0.(0.(30+2/+1/+10*20+1/*1.)1.*0.)0.*20,1/*/.)10+0.)0.)1/)1/*0.)1.)2/*1/*/-(/.)0/)/.(20*1/)0/)0/(21*0/).-'1/*10+1/*20+1/*/.)0/)0.*0.*-*'/-*-*(0-*0.*/.)/.)0/*0/*1/+10+0/*0/)0/)20*20*20*1/)10*10*0/*0/*/.(0/)0.)0.)0-(2/*20+0.)1/+20,/.)0.)0.)1/+0/*0.)1.)2/*0-)2/,20,1/*/.(1/)10)/.'20*20*/-)0.+20,20,30,2/,2/,2.+1-*2/+1.*2/*2/+1/*21+0/)10*0/)1/*31,0-)1.*0-)1.*1.)1.)0-)1/*10*1/+1/+30+42-20+21+1/)20*10*31+21+0.)1/*30+2/*52.20,/-*0.+1/+2/+1/*10*1/*1/*20+20*20+2/+1/*30+1/*0/*20+0/*..(10+21+0/)41,30+42,31+10)21*42+20*0/*1/+/-)/,(61+51+41+20+0.)20,2/+20*41+30+20+1/*20+2/+2/*2/*20*20*0.*20,0.+0.+0.*1/+30+0-(30*40,1/+2/+1/*1.*30,41,2/*2/+1/*20+10+10*10*2/*0-(2/)1-'30+31,20+20+20+2/*20+31,20+1/*21+11+00*10+10*0/)0/)31+31+31+31+20*1/*21+31+21+20*10*20*31+31,1/*20+20+20+1/*1.*31+41,30+20+20+20+20+30+30,30+41,31,31,31+41+40+2/)20*30+31+20*2/*2/*41,2/*1/(2/)31+42+31*30*30*31+32,10*10*20+20+10+20,10,10,10+10+2/*2/*20+20+31+20+20*10+11+11,11,10*10*21+10*10+21+21+32+22,21,21-1/+1/*2/+20+1/*2/+1-)1-)20+20,1/*1/*10+10+1/+1/+31,30+20+20+20*20+21,10*10+21,10*10*31,30+31-42-41-20+0/)//*//)20+41,30,2/*20+42-31,20,20+2/*30+41,20+2/*2/+0.)0.)20+30+2/*2/*2/*1.)20+31,10+10+0/+10,21,31+20*20*31+31-53.20+20+31,31,30+40+30,2.,2/-1/,1/*31+20+20+31,1/*0.)0.)1/*1/*20+31,31,1/*10*43-21+21+31,20+20+20+10+1/*10*11+10*10+21-21-31-20+10+11+10+11+//*..)0/*21+21+21+20*20*30*42,31,20+20+31+31+21+10*21+20+0/+20,20,1/+1/+21,10+0/*0.*1/*1/*0.*41,51-30+30+1/*1/*43-32+11*11)22*21)21)32*32+21*10*10+10*10+21,1/*0.)1/*20+20+1/*1/)2/*30,30,2/+20+30,30,30,20+21*10)00)11*32+31,10+1/*2/+2/+2/+2/+20,31,21*21*31*31+30+1/*20+20+31,20,2/,20,20,1/+2/+2/+2/+30+20+20+20+20+31,31+41+52,41+30+30,20+2/*1/*1/+2/,2/+1.*2.+2/+1.*1/*20+31-20+1/*20+20+10*10+20,0.,1/-0/,0/*20+21+21+20+20*20+30+31+31,21,20+31,20+10*10*10*20+21+21+21+30,30,40-40-2/+1/+20+20+31,10*10*32,42,31,2/*20+20+10+10+1/+1/+30,31,10+20,20+1/*2/*20*30+30+20+30+20+1/*10*20+31,31,20+20+40,50,51,40,2/*2/*20*31+31+10*21+52,41+41+30+31+42-31,20+31+31+30*30+20+20,0/+1/+32,31+10*21,10,/.*10,30-1/+1/+1/,1/+20-21.//,0/,20,10*10)31+20+1/)20+20,20,30,20+2/*20+21+20+31-53.21+1/)20+31,31+30+31,20+1/*20*20+31,31,31,2/*31+42,31+31+31+31+30+41,30+20*20+20+30,41-40,40+40*30*30)30*31+10*31+41,31+30+30+30+20*20*30+30,30,30-30,30+31+31+2/*20*30+30+30,30,30+21*20*20*31+41-3/,3/,2/*2/*3/*30+31,20+20+2/+20+31,20+20*31,32,31,31-31,20*20*20+1/*20+42-42,31+31+42,41+30+31+30+30+31,21,31,31,21,31,20+20+31+31+20+21+31,10+20+31,3/+2.*30,31,31,20,21,31,21,10+21,42.31-30,3/+3/+51,41+20*20*20*31+52,31+20)41+41,30,30,31,20,31-31-20+30*30+51+30,31-43/32-10+20+30,30,30+41,31,20,20,2/,2/+30+20+30+31+41*52+63,52,20+20+21,21,20,20+20,30,30,30,41-41-1/*0/*31,31,31,31-20,30,30,2/+30,51-51,40+31+41,1/*1/+31,31,20+20+31,31,20+20+42-31+41,52-31,31,31,31+30+2/+3/+3/+3/*40*41*31*42+31+1/*2/*30+31,30+20+21,31,20,30,41-30,30,31,20+10*20+31,53/32./.*/.*10,20+2/*30+30+31+31+20+20+20+30+30,2/,20,52-52,40+40+50+51,30*30*31,31,20,20-30,20+1/*20+31+21+20+10+10+32-32-20+20+20,1/,20.21/1/,1/,21,21,20+20+20+31,43.21,21-32.20+2/*20+31,31+31+30+20+31+31+30*41,41-41-41-30,30,2/*1.)30+52,41+20*31*31+30+30,30,2/+2/,30,41-31,20+41-41-30,31-30,2/+2/+40,41-40-40,40,40-51-40,40,30+20*20*30*30+2/*40,62-41,40+41+51,51,61,61-41-20,1/+1/+20+2/+30+30,31,21,1/+20,31-20-31-42-31,20+10+21+31+20*31+31+30+31,30+40+41,51-52-41,20+30,30,30,51-41,2/*31+31+41+50+50+62,62-20+31,41-20+31,41-31,20+30+31,30+30+30,31,30+30,41,41-31,2/+2/+3/+4/,41-41-2/+30,31,41,42,31+41,31,31,31-32-21+20+30,20+20*31+52,41,30,31,42-42,41+52,41+31+32,32-21,21,42-31+30*31*41+30+30+31,31,20+41-41-41,30,41+31+31,43-32-10+21,31,41+51,52,52,42,31+42,31,31,54.32-21+21+31+42+42+32+21+22,32+32,42-42,20*53,63-40+30+40+40+3/+40,31,31-42-31-31,41,31,31,31,41,31,31,51,40,50,51,40+41,41-20,41-41,41+41+40+0.)20+30,20+31,41,52,52-52,41,20+20+30,40-30,2/+20+42+42+42,41,41,31+40+51,41+30+31,31+31*42+42,20+10+20,31,41-41-30,30,31-31-20+20,31.41.41-2/+2/+20,20,31,31,21+20*20*30*30+51+95.73-41*41+41*41+31+20+20,21-21-20,20,30,30,20,2/+40,51,51,41+30*41+41+40,41,41+41+41+41+51,72-40,3/-40.41.40-40,51,50,30,41,42-32,41-20,31-31-21,21,11,21,32-32-21,0/*32,21,00*11+11*21+22,32-31-10+41-40,40,52.51-30+41,20+2/+41,42,31+31+41,20+2/*31+41+41+63-42,20+21,21,41,41+41,30+2/*31+52,52+52+41+30+30+20+20,2/,2/,30,42.31,32+42+31*31*42,31+3/+40-41-31+30+30+42,31,0/+20,42.31,20+31,53-41,31,52-41,30+31,42-41,31,42-42-30,31-30-30-41-20,41-52.41-20,2/,20-31-32.32.31-31-41-20+30+30*41+62-41+21*20*20*42,31+20*21+21+10*41+72,72,62,31+10+10,11.21.42-31,31,31,41,41,30+40+30+30+30+20+31,42-21,10+31,32-31,31,20+30+31,31,42.43.32-21,21+31,31,31,41,41,20+10*20+30,41,51-30+30+52-41,41,41-30,20+31,42-31,21+31+31+31+31+31,00*43-54.0/)31,32,31,42-31,21,31-31,31,31,52.74041-20*20+42,42-31,30,30,31,30,30+40+51+30*20*42,43-21,32,53-42,41+52,41+41+42,30+1/*20+20+21,32-21,31-52.30,30,41-30,30,30,30,31,41,30+30+31,31,43-31,20+31,31,30,30,30,30,41-41-31,21,21-32.31-31,31-31,30+41,41,41+31+31+41,41,31,31,31+31+41+31+41,31+20*30*51,31,20+1/,0/,0/,10-20-21,32,31+21+31+41,41,31,42-63.51-30+31+41,21,11+21,21+21+30+40+40,40+30+42,31,20+31-42-20+21+31,20+30,41-40-41-40-40-40-30.3/-30-41.41.20,31-42-31,41,20+20+42-20+1/*30+42,42-21,20+30+41,40+40,40,62-52,41,42-21,21-31-41-42-31,31,30+31+42,30+30,30+30+41,41,41,40+40+41,41,31+30+30+41+41*41*41+40+3/*40+51+41+52+42,41+30+41,41,2/*30+42,20,2/,30,30+40+3/*40,41,30,20,20,31,21,32,11+11+20+31,22+11*21*31,53.42-31,11*00)11)32+42,21+1/*31,41-30,20,30,31,2/+30+30,20,20,20,20,20,21+21+21+40,40,4/,2/+30,30,20,31-31,2/+30,3/+2/+30,30+20+41,30+41,30+2/+20,31-10+10-1/-3/-50.40-3/+41+30+41,3/-2.,2.,2.,52-42,31,20+20+32,10+22-21,2/+20+31,52.31+30*30+30+30,2/,20,41-41-41,41,52-30+30,41-31-41.42.20,2/+30+63.40,2.*30+41,30+2/+30,1/+21-10-21-20,30,41-41,41+30*20*41+30*1.)30+52,41,30+41,30-2/,30,52-41,30+41,2/*30+41+41+52+31+31+20+20*20+10+31,30+30+42,31+41,31,20+30,63.20+31+31+31+51+4/*40,30+31,31,21-1/,2/,2/,41,52,41+30+51+61+40+51+40+3/*40,40,40-40-30+30+40,30,30,3/+42+42+31+30+20,10-10-21-31-31,3/*52,41,2/*20*20*20+31+31+30*20*31,31,1/*1/*31,31+31+20*30+31,31,41-31,30,20+30+2/*30+32,31,20+31+30+30+30+20+1/+30+31,30,2/+30+4/*50+51+51+51+51+3.)3/)2/)30,2/+3/+1-)30+2/+1.+2/,30.30-3/+41,30,1.+20,21,10*22+21,1/+30,41-30,3/+3/,3/+3/,1.*30.2/,1/,10,31-51-51-40,40,40,30,1.+2/,30+41+53,30+2/*41-74/30+30+30,40,3/+2/*3/*30,30,3/+30+1.)2/*20+10+21+1/*41-42/53/3/+2/+30,1/*30+30+41+52+31)32)21*0/*10,10,20,0.*20,20+20+21+21*21*20*20+20+20+20,20+30+30*30+30+30,41-41-40,30+40,40,2/+1/+43.10+30,30,40,40+51,40+4/+4.+3.*30,31-20,41/5202.,2/+2/,20-/-+2/,40,40+52-52,31+20*30+30,40-3/,2/,2/-30-30,30-30,30-30-1/+10+/-)0/+430//-0.,2/-30,30,3/,3/-1.-1..1/-1.,/,(30+31+30*31+30+2/*20+20,31-30+30+30*41+30*20*20*20+20+20*20*++%+*&-+'-+&,*%-+&-+&.+',*%.,'.,'.,&,+%-,&.,'.,&.,&/,'-+%/,&0-'/,&/-&.+%.+%0-&/,%0-&/-%-,%.-&/-&.,&+*#-+%/,&-*%.,&.,&-,%**#**$++$-,&,+%.,&/-'-+&-+&.+&-*%.+&.,(.,(-+'-,(-+',*%-+&.,&0-'0.'0-'-+%-+&.,&/-'-+&-+&.-'-+&.,&--&..'++%+,%,,&.,'.-'-,'-,'-,'+*&-,'/-(1.(1.'0-'/-'*)#,*$1/(-+$-,%/-'.,&.,'.+&.+&-*&.+&/+&/,&0,&.,&,+%0/(.-',,%--&-,&-,&-+&-+'-,'1/*/-(-+%-+&.-'-+%/-'0.',,%,,&-,'/,'0-'0-'/-&/-&/-&/-'.-'-,&+*%.-(.-(.-'.-&.-&/-&0.&.,%0-&0-'0-'.,&-,&.,&/,'.,&0.(/.'/-&/-'0.'.-&/-&.-&.-&.-&.-&-,&.,&/-'/-'.,&.,&.-&.-',+%,,%-,&-,&/-(/,'.,&.,&.,&.,%.,%/-&0.'-+%.,%/,&/,&.+$.,%.-&.-&.-'.,'0.(.-'/-'/-(*)$,+&/-(.-'.,'/-'.,&/,'/-'.,&.,&/,&.-'.,'/-(.,'-+&.,'/-(.,'-+'/,(/,(/-(/,(/,'.+'.,'.,(.-(-,'-,'/.(-,%-,&.,&/,'/,(/+'1.(/-'.-&..'..(..(,,&.-'/-'.,&.,&/-'.,'.,'/,'1.)0.).,'-,&-,'/.)-,(-,(--(.-(.-'-,&-,&--'-,&.-'/-(/-(/-(/-(/-'0.(/-'-+&/-'/.(/.'..&//'.-&.,&.-&.-&.-&.-&/.&/.'/.&.-%0.'/-'.-'.-'-,&.-'.-'.-'/.(.-'/-(/,'/,'0-(/-(/.(/.(//),,&.-'0.(/-'0-(0-(0.(.,'.,'0.(0-'0-'.,&.,&0.'1/(0.'0.(/-&/-'/.(/.(.-(.-(.,'.,'/-(0-(/-(/-(0.(/.(.-'.-(.-'-,'.-'/-'/-(0.(/-'0.'1/(/.&0/(0.(.,'/-(/-(-,(,,(--(/.)/.)..(.-(.-'..(--(-,(-,(/-(/.'/-&/.'/.'/-'/-'/-'1.'2/(0.(/-(/.)/.(/-'/.(/-(0.)0.)/-(.-'/.(0.(0.(/-'0.(/-(/-(/-'/-(/-'/-'2/)1-(0,'1-(/.'/.'0/(0/(0.(/.'--&.-(/-)/-*/-).,(/-)0.)0-(0.(/-'0-'0-'2/)2/*1.)0.(/-(/-(/-(0.(1/)0/(0.'0/(1/*1/*0.)/-(/-(/-)/.(.-'/-'0.'/-'1.(2/*0-(/,(0.)/-)0.*/-).,'.,(/-*.-).-(/.)/.(/.(0.(0.(/-'/-'/-(/-(/-(/-(0.(0.(/.(0.)/.(/-(0.)0.)/-(/-(0-(/-(/.)/.*.-).-(/-(1.)0-(0-(/-'/-'/.'0/(0.(/-'/.'/-'0/(0/(.-'/-(1.)1.)0.(/.(0.(/.(/.(0/)0.)0.(0-(0.(0.(/.(/-(/.(/.(/-'1.(1.)/,'/-(1.)0.'0.'0.(0.(0.)0.(0-(0.(/.'/.'/.'/.'/-'/-'/-(1.)1.)0-(0.(0/)//)/.(/.)0.)/.(/.(0.(1.)0-(1.)2.)0-(1-(0.)/-(/-(0.)0.*/.)/-(/,(.,(.,(/,(/,(/-).-).-)..)0/)0/)0.(1.)0.(0-)0/*0/)0.(0.(1/(10)0.(0.)1/*2/)1.)1.)1.*1.*0.)/-(0.(1/*0.*/-)0.*0.)0-(0-(1-(2.)2.)1.(0.(1/(0.(0/(/.(0/)/.(0-)0-)1.)2.*1-)0-(0-)0-)0-)2/*2/*1.)2.*2.*2.*1.*1.*/-)/-(20*20*1/)1.(0.(1.(0.(/-(1.)1.)1.)2/+1.*/-(/.(0.)0.)0.)0/)0.)0.)/-(0/(10)10)0/(0/(//'/.'//'//'//(0/)/.).-(/.(0/(//(--'/-(10*10*1/*0/*0/+31-0.)/-(0/)1/)1/*1.)1.)1.)2/)2/*0-)0.)/.'/-'0.(0.'0/)1/*0/*0/*0/)1/*1/*1/)20*20*1/)1/)10)0/(0/(1/)0.(0-'2/(30)30)2/(0.'1/(20*0/)0/(10*0.(0.(0.)0.(0/(1/(1/)10*20*10*10*1/)0.(1/(1/(0/)/.(/.(0/(0.(/.'0.(1/)0/)//)//)/.(/.'0/(00(00(0/(/.(0/)0/)0/(10(00(/.'//)0/*0/*0.)/.(0/)10*00)/.'0/(10*0/)0.)0.)0/)0/)0.)0/*10*0/)0.(0/)0.)0.)1.)1/)1/)2/)2.)1.(1/)1.)0-(0.)0.)0.(0.(1/)0.'0.(2/*2/*0.)1/)20)0/(/.(0/*0/*0/*0/*0/)0.(10)10)0/)0/)0/)/.(0/)30+2/)2/)31*20*1/(1.(2/)1.)1.)1/)1/)1/)1/)0/)0/)20+1/*1/)10*1/*1.)1/*2/*2/*2/*2/*2/*0.)0/)10*10)0/)10*20+1/*1/)20*1/)1.(1/)1/)1.)1.(1.)2/*1.*1.*1/*20*1/)1/(20*2/*0.)/-(1-(2.)2.)1/)1/*20+10+00+1/+0.)1.)1.)1/)1/*0.)1/)2/)1.(1.)2/*2/)2/)2/*0.)0.)0.)/-)/-)0-*/-*/-*1/*1/)20*31*20*10*0/*1/*2/+2/+0.)0/)11*//)00)10+10*2/*2/)2/*2/*2/*2/*2/*1/*1/*2/*2/*2/)2/)3/*2/)20)1/(20)20)1/)1/*/-(/.(1/*10+10+0/*0.)1/*30,30-0.+/.,0.,0/+//*0/)0/)0/)0/)1/)2/)2/(2.(2.(3/*30+10+10*0/)1/)2/)2/)1.)1.)2/*2/+1/*1/)10+0/*/.(0/*00*00*0/*10)20*10*11*11+/0*//)//)00*0.)0/*1/+0/+/.*10+21,//*//)10+//*00*10+10*11+11+00*0/*1/*1/)2/*20*1/)1/)1/)1/*1/*1/*2/*1/*1/*0/*0/*0/*10+20+20+10*10*20+1.*1.)1/)1/)20*1/*20*2/*1/*2/+1.*1-*1.+2-*2-*3/*41+42+32+11*00)11*0/)1/)30*30+2/*1/*20*1/(10(10)0/)2/*1/+1.+0.+/.*10*21*10*0/*/.*/.*/.)/.*10+10*0/)1/*0/)0/(20)10)1/)10+20,20+0/)1/*20*1/)0/)10*20*20*30+1/)1.)2/+2/+20*20*10)1/)1/*2.*3/+3/*3/*30+1/*0.)1/)20*31+31+20*2/*2/*20+1/)1/)20)1/(1.(1/(1/)10*21+20*1/)30*41+2/*1.*2/*1/)0.(1/)2/*2/)1.)1/)20)20)31*20*10*20*1/)1/)10*20)10)20*20*10*0.)1.)20*20)10)10*//)00*21+20*20*30*20*1/)10*10*/.(00*00*//)0/)10*21*20*1/)1/)1/)1/)1/)1/)2/)2/)30*2/*1/*1/*0/*0.*0/+0/+1/*2/*2/*1.)1/*1/*1/)10*10)11)10)11*21*21)10)20)2/)2/*30*2/*1/)10*10*11*00)00*00*00*10*10)1/(21*21+21+20*21*21*11*11*10*20*10)1/)0/)1/)1/*1/*1/)1/*20+10*0/)10)20*31*31+21+20+0/*0/*1/*2/)31*30*1.)3/+40,3/,2/*10*10*10*10*1/(31*1/(/.'0/(0/*1/*0/)1/*20+2/*1.)2/)41*30*2/)30*1/)1/)31*20*10*00*/.)//*10*0/)0/)//)0/)10+0/*/.)10*20*0/(1/)10*1/)1/)31*1/(/.'0/)10*00*0/)00)21+1/*0.)20+2/*1.)1.)30*20*0/)00*00*0/*1/)1/*1/*1/*1/)1.)1/*1/*20+20+1/*0/+0/*0/)20*10)0/(20*21*20*20*21*10)00)00)10*20+20+1/*1.*1/*30+41+31+41+31*20)20)10)10)21*10*10*10*10)10*20*20*30)20)20)30*20*20)20)30)20)31)30)1/(1/)2/*20*20*2/*2/*30*2/)20*31+31+31+1/*0.)1.*1/*0.)1/)20*20*10*0/*1/*30+20+1/*1/*1/*20+20+1/)1/)20+2/*1.*2/*2/*20+1/*2/*30+2/)1.)1/)1/)1/*//(10)31+30*20*1/)2/*31+20*2/*1/*20+10*1/)1/)1/)1/)1/(1/)20*1/)0/(0/(10)10)1/*1/*2/)2/)30)20*1.*2/+20+1/*0.*1/+1/*1/*20*30)30)2/)0.(1.)1/)0/)10*21+0/*..(/.(00)21+00)/.'1/)20*1/)1/)10)1/)1/(30*30*30*0.)0.)20+1/)0.)41+84.41+1/)1/*1/*20*20*2/)2/)2/*30*2.)1.(1/)1/)0.(1/)20)20)20)20*1/)1/)20)2/(31)42+21*0/(10)10*0/)20*20)10)11*10*00)00)0/)20)31+20*1/*1/*20+20+0/*0.*/-)/-)/-)1.*20*1/)0.(20*31+20*1/)2/*20+1/*1/)0/)20*1/*0.)1/*1/*20*20)1/(2/)31+2/*1.)2/*1.*0.)1/*2/+2/+2/*2/*20*30+20*1/)20*30*31*20*1/(1/(20(20)20)1.)0-)2.+30,1/*1/*1/*1/*10*0/)0/)0/)0/)1/*1/*1/)1/)1/)20*10*0.)20*31+0/)-,'/.(1/)1/(0.(20)1/)1/)3/*2.*2.)20*21*00)10)1/)1/)1/)0.(2/(40*2/)0.(2/)20*20*2/)1/)2/)3/*2/)2/*1/)0/)10*1/*0.(20*31*31*20)1/(30*42+10)0/)31+41+31+20*20+/.)/-)0/*//)00)00)/.(//*//*/0*/0).0(01*22+0/)2/*30+30+2/*20+30+30+30+0.)0.)2/*30+30*1/(1/)1/)0.)1/*20+1/*0.)0.)0.)1.*2.*2/*2/+1.*0.)0.*1/*20+1/*0.(0.(1.(2/)30+2/*2/+3/+40,30+1/)1/*1/*20*2/)2/*2/*1/*0.*/.)1/*0/*0/*2/+1/*0.)1.*0/)10*10+0.)0.)1/*0/)1/*10*0.)0.)1/*1/+0-)1.*2/+2/*2/*1/*1/*1/*0-)2.*3/*3/*40+2.)2/*1/*0.*2.*3/+3/*2.*3/+30+1.)0/*/-)1/)52,2/).+%0.(30+30+1/*/.)1/+0.*.-(/-)1/*20+0.)1/*1/)0.)20*0.)0.)1/*0.)1/*20*0/)/.(/.(/.(10*20+0/)1.(2/(3/)2.)1-)1.)1.)2.*1.)1.*1/*0.*0.*0.*0/+/.)0/)20*30*20*/.(/-(2/*51,1.*20+20+0.)1/)1/)/.(0/(20*1/)/.'0/)20*20*1/*0.)0.)1.)1.)1.)1.)1.)0.(..)++&--(1/*1.)0.)0.(0.(2/)0/)//)0/)0/)2/)2/*1.)0-(0-(0-(1.*1.*/.(0.)2/*1/)..'..(0/)0/*/.(0.(30*2/*1/)/.(20)1/)1/)1/*1/)1/)1/)0.(0.)0.)0.)1/)1/*1/)0.)1/)1/)0/)1/)0.(1/)1/)1/(2/)1.(1.(2/*1/)0.(0.(0/)0/)20*1/)/-(1/*10*0/)0.)1/)20*20*20+/-)/-(0.)1/)0.)0/)0.(0/)10*00).-'/.(0/)/-(0-)2/*0.(0.(0.(0.(0/*0.).,'0.)1.)0-)0.)0.)/-(/.(0.(0.'0.(/.(/.(0.)1/*0.*0.)/-)0.)2/+2/+1.)0.)1/)10)--&./(0/*0.(0.(0.)0.)0.)1/*2/*3/*2/*2/*1/*10*/.)/.)0/*0.)/.)0/)//)0/)0.(1/)0.)/-(0.*/.)0-)30,1.+.,)0-*1/*0/*0.)/-(0/*/.(1/)1/)0.)0.)0.*/-)/-)0.*/-)0.(3/)2/(2.(3/)/.(.-(.-)/-)0.*2/+0.)/-)/-)/-)1.*20,1/+,,(00+--(0.)0.)1.(2/)0-(0-(1.(1.)/-(0.)1/*1/)0-(0.)1/*0.*/-(/.(0.(0.(0.(0-(0.(1.)1.(0.(0-(0.(0.(/-'2/)2/*/,'/,'/-(/-(/-(0.)0-)1.*1/+0.)1/)1/)20*2/*0.(.-(/.)1/*0-(0.(0/*0/)0/*0/).-(.-(.-(/.(/-'0.(0.(/.'0.(0.(0.(0-)/,(0-)/-)/-)/.)-,(.,(/-)0.)0.(1/)0-)/-(/-)/-)-,(-,(/-*/,)0-)1.*0.*/.*-+(,*(.+)0-*0-)1.)0.)0.)0.)0.*.-(/-(0.)1/*0.)/-'/-(1/)1.)/-'/-(/-'/.'/-&.-&0.(1/)1.(0.(0.(1-)1-)/,'/,'0-)-*&/-'1.)0-(/,'0-(0-'1-(/,'0-),*&++'.-(0.*/-(/.(/.(/-(/-(/-(0.)/-)/-).,(0.*/.)1/+0-)/-)1.*1.)0.)0.).-(/.)0.)0.).-'0.)/-(0-(/-(/-(.-(/.(/.(/.(..(..(--&--&0/(.-&..'0/'0/(/.(.-(.,(.-(.-(-,'-,&1/)0.)-,'-,(/.)0/*/.)/-(0.)0.(/-'0.)0-(0.)1.)1.)0.)1.*0.)/-(.+'.+'/,(/,(0-)/-(/-(0.(0.).,'/,'1.*1.).,'/,(1.*0-*/-).,(0.*0-)/-)0.*0.)/-(.,'/-'.-'/-'.-(0.),*&.-'0.(0/(/-(.,(-+(0.*0.)/-(/-(0-(.+&0.),+&.-'0/)0.)1/*0.(0.).,'-+'.,(/-(0/)0/)//)/.(.-(.-(.,).,(-,(.-(.-).,(0.*/-)-,'/-(.-(0.).,(.,(.-)/.*.-)/-)0-)/,(0-(0-(0-(1.)/-'/-(0-)/,(0-)/-(0-)/-)-,'.-'0.(/-'0.(0.(0.(/-'0.(0-(0.(/-'1/)1/)/-'1/(1/)/-(,*%.+&0-(,*%0.)/-'/-(-,&-,&.,'0-)/-)0.)1/*/.(/-'/-'-,',+%0.(/-'/,'0-(2/*2/*2/*.,'0.(0.)/-(.-(/.(-,'-,&1.(1.(/,&0-'1.(.,&.,'0-)/-)/-(0.)/-(/.)--'--'-,'0.)1/*.,(.,(0-)/,(/-)0-*0-*.,(.,).-).-(1/*0-(.,'.,'.,'/-(/,'/,'0-(0.(/-'/-'0-(0-(0-'1.(/,&1/(/-'/.'/.(.-(0.)/,(.+'0-)0-)/-(.,'/-(0.)0.).-(/.).-(.-(-,'1/)1/)/-'0/(/.(.-(0.)/-(.,'0.)0.)0.)/.)0/*/-(.-(.-'.,&/-'1/)2/*/,(0-)0-)/-).-(/-)/-(/-(2/*2/*1/+/-)/-(2.*2/*2/*2/*/-(/-(1/*0-(/-(0.)/-'/-'0.(0.)0.)/-(/,(2/*/-(.,'0.(0/)0.(/.(0/)--(-,(.,(2/+0-)1.*0-).,(,*&1/*/-'.-'0.(0.)0.)0.)1/)0.(0/(/.'/.'0.(1/)1.)1/*/.)1.)1.)0-)2.*2/*0.(0.'20)20*0.(0/(0.)0.*.,).,)1.*1.*/-)0.*0.*/-)0.)0.)0.)0.)0.)1.)1/*2/*.,'-*%1/*0-)/-)/-)0-)0-)/-)31+1/*/.)/-(/-)0.*0.)0.)/-(2/*0.)0.)0-)0.)1/)1/)41,2/*0.)0.)20*10*1/)2/*2/*1.*1/*1.*/-)0/*10+10+20+1/*20*1/)2/*2/*0-)/.)0/)/.(..(0/)0/)0/)10*00)1/).-(0.)0/*0/)0/*20+0.)1/*1/*/-)/-)-*'1.+1/+0/*1/*/.)0.*1/+0.)0/*20+0/)10*10*20*20*10)0/)10*0/*0/)/.(10*1/*0-)2/*2/*1/*/.)/.)0/*10+20+1/*20+1/*1.*40,40,0.*1/,0/+10+/.)/.)10*0/)2/*30+1.*0.*1/+20,2/,1.*2.+3.+3/,2/+2/+30,20+2/*10*10*0/)10+21,21,1/+0-)1.*20+41,2/*/-)20+20+10*20+30,41-1/*1/)21+20*0/)10*1/*//*0.*2/+1.*1.*/-*/-*1/+20+1/*20+20+1/*0.)0.)1/*20+2/*20+30+20*0/)//)00*/.)00*00*0.)41,30+20*10)10)32+31*1/*1/*10+/.)1.)41+2/)1.)1/*0.)2/+31,31+30*1/)20*2/*1/*0.*0.*20+20*20+0/)1/+20,20,0/+0/*2/*0-'2/)2/)0/*31,30+2/*30,30+3/*31+21+10+10+21+21*0.)1/)51,52,63-10+10*20+2/*2/*31,20+1/*20*20*10*10*10*10)10)0/)0/)20*31+31,31+31+10*0/*1/*10*31+20*0/)0/*20,31,30+31+1/)0.(30+41+20*31+20*10*20+31,41,2/+1/*1/*1/*20+41+41+41+20*1/*30+41+30*2/*41,52,42+10)21*21+31+41+20*20*22+11*32,20+0/*0/*10,10,32-11+10*2/*20+1/*10*20*21+31+21+11+00*11*32+21*11*10*21+43-42,10*21+21,20,20,1/*20*30*20*41+41,1-)1.*1/*1.*1/*20+10+1/+1/+31,30,30+30+20+10*1/*0/*20+20+20+31,31,1/*0.*0.*30,1/*.-(10+31,2/*20+2/*30+2/*1/)1/*20+20,20+30+30+2/*1/*2/+30,2/+1/*41-41-2/+2/*30,30+1/+1/+21,0/+/.*10+21+20+32-32-/-)1/*30+20+20*20*2/*30+3/+30-31.20-31,20+0.*1/*31,31,20+1/*1/*20+2/+20+31,31+31,11+0/)0/)21+31,10+10+10+10+21+11*11+10+0/+20,20,31,41,20+20+10+00*..)1/*31,20+20*20+30+31+20+1/*20+20+31+21+11*21+10*20,31-1/+20,20+0/*20+21,1/*1/*0/*1.*1/*41,51-41,41+20*0/)10*32+22+21*21*21*1/)10*32+20*10)10*10*20+21,41,31,41-30,1.*1/*30+30+2/+2/+30,30,2/+20,30,30+21+21*10)10)21*31+2/+2/+2/+30+40,41,2/+1/)32+32*31*20+20+20*20+20+1/*20+20,1/+21-31-20,30,40,30+30+30,30+20,2/+30,40+3/+30+20+20+20+31+20+0.*2/+30,2/+1.*2/+30,30,2/+1/+31,20+20+21+10*10+31-30-20-20,21,21,21,21,21,10+10+21,20+20,31,21+10*10*10*10*1/*21+10+0/*10*30+30,2/+30,30-41,20+1/+20+31+10*1/)20+2/*30+41,31,10+10+1/+1/+10+10+21,31,20+2/*20)20*20*30+30+20+20+10+20+20+1/*20+10+0/*0.*30+51,30+1.)1.)31+42,32+31+31+31+41+41+41+41+42,41,20*2/*2/*41+41+2/*30,10,0/+31,32,31+20*10*1/+2/,30,30,30,1/+10,53/31.1/,0.+1/+31,31+42,43,1/*1/*20+20,30,20+20+31+21+00+//+/0+//*10*20+20+31,30+2/+2/*1/*0/*10*20+21,20+1/*20+42,31+20*31+41+40+20+1/*20+31,30+30+30,30,30+30+31+30*21*21+10*31+41,30+30+30+31+20+20*31+30+2/+2/+3/+30+20*41+31+41+30+2/+30,30,2/+20*20*31*41,41-2/+30+51,40*2/(30+31,2/*20+2/+20,31-30,20*20+31,21+21,20+2/+41,41,20*31+63.20*10*31+21*20+20+2/+30+20+20+20+10*20*21,31,31+30+41+30+30+41,41,31,20+31,30+3/+30,31,20,20+20+31,31,30,31-41.41.30,30,40,40+51,21+10*10*20+41,42,31*20*2/*1/*20+20+20+20+20+20+20*2/*41+41,20+21,20+10*10*20+30,2/*30+41,20,1/,1/+30+41+30+30+30*30*31*32+31+20+21,21,21,31,20,20+20,30,30,30,30,20+31+41,30,31-41-2/,20,20,1.*3/+61-61,51,41+30+20+30,30,30,41,30+30+30,3/+30+2/*31*75.63-30+30+41+41,20+30,40,40+40+41*52+42+31+20+20+20+31,31+20+21+21+20,20,20+20+30+30+20,20+20+10*20*31,31,0/*10,21+21+41+41+41+31+31+20+20+30,2/+2/,30-41-52-41,30+30+51,51,30*30+20+31,21,20,31,20,2/*2/*30+20+2/*20*30+31,20+20+20+20,1/,0/-20.20-10,21,32-32-21+20*32,32,10+21.31.20+2/*31,42-30,20+30,30,42-32,21+31+20+20,20,20,30,31,30+41,41+31+21*21*31+31+30,2/,2/,30,20,2/+20+31,41-20,1/+20,41-41-30,30,30,40,40,40,62.62/40,41,41,20*30*41+41+3/*40+40+3/*1/*30+51,40+50,51-51-52.30,30,41,41,40,30,31,10+1/*1.+1.,3/-41-41-30,20+31,31,31+31+31+21+20+20+20+2/+30+30+3/+30,30,20,30,30,52-52-30+20+31+41,40,40,62-41,20+41-30,1/+20+31-31-31,31,30+30+30,20,20,1/+1/*31,31,30+20+30,30+30,30,31,20,41-31+31+31+31+41,31,30,30,52-31,31+30+30+42,41+30+52-31-20,31,31+30+41+41+41+21+21+20+31,42,30+30*41+41+30+2/+1/+31-41-31,31,31,30+41+41,41,43-21,10+31,31,40,40+41,41libextractor-1.3/src/plugins/testdata/ole2_blair.doc0000644000175000017500000017700012016742766017602 00000000000000ࡱ> z|yq rnbjbjt+t+ <AAh]xxxx$PX$|(.L***-------$t/h1.q".o#xx**Go#o#o#x**-xxxx-o# o#{'^,k6-* RuG (-$IRAQ ITS INFRASTRUCTURE OF CONCEALMENT, DECEPTION AND INTIMIDATION This report draws upon a number of sources, including intelligence material, and shows how the Iraqi regime is constructed to have, and to keep, WMD, and is now engaged in a campaign of obstruction of the United Nations Weapons Inspectors. Part One focusses on how Iraqs security organisations operate to conceal Weapons of Mass Destruction from UN Inspectors. It reveals that the inspectors are outnumbered by Iraqi intelligence by a ratio of 200 to 1. Part Two gives up to date details of Iraqs network of intelligence and security organisations whose job it is to keep Saddam and his regime in power, and to prevent the international community from disarming Iraq. Part Three goes on to show the effects of the security apparatus on the ordinary people of Iraq. While the reach of this network outside Iraq may be less apparent since the Gulf War of 1990/1991, inside Iraq, its grip is formidable over all levels of society. Saddam and his inner circle control the State infrastructure of fear. January 2003 Part One: The Effect on UNMOVIC The role of the Inspectors is to monitor and verify the disarmament of Iraq as demanded by the international community at the end of the Gulf War, 12 years ago. Inspectors are not a detective agency: They can only work effectively if the Iraqi Regime co-operates pro-actively with the Inspectors. We know this can be done successfully: South Africa did it. But Iraq has singularly failed to do this. Iraq has deliberately hampered the work of the Weapons Inspectors. There are presently around 108 UN Weapons Inspectors in Iraq a country the size of France. They are vastly outnumbered by over 20,000 Iraqi Intelligence officers, who are engaged in disrupting their inspections and concealing Weapons of Mass Destruction. This is a ratio of 200: 1. Even with the obstruction, concealment and intimidation, the inspectors have made a number of significant and disturbing findings. But as Hans Blix reported to the UN Security Council on 27 January,: It is not enough to open doors. Inspection is not a game of catch as catch can. Documents The Iraqi security organisations work together to conceal documents, equipment, and materials. The Regime has intensified efforts to hide documents in places where they are unlikely to be found, such as private homes of low-level officials and universities. There are prohibited materials and documents being relocated to agricultural areas and private homes or hidden beneath hospitals and even mosques. This material is being moved constantly, making it difficult to trace or find without absolutely fresh intelligence. And those in whose homes this material is concealed have been warned of serious consequences to them and their families if it is discovered. Surveillance The Iraqis have installed surveillance equipment all over the hotels and offices that UN personnel are using All their meetings are monitored, their relationships observed, their conversations listened to. Telephone calls are monitored. Al-Mukhabarat, the main intelligence agency, listen round the clock. Al-Mukhabarat made telephone calls to inspectors at all hours of the night during the days of UNSCOM. Intelligence indicates they have plans to do so again to UNMOVIC. Inspectors meet to co-ordinate activities - the meeting rooms are arranged for the inspectors by the Iraqis and contain eavesdropping devices. Hidden video cameras monitor the progress of meetings, to check the faces of the inspectors and to identify the key personalities. Monitoring From the moment the UNMOVIC personnel enter Iraq, their every movement is monitored. They are escorted by seemingly helpful security guards and almost all of them are members of the Al-Mukhabarat. If the driver is an Iraqi, he is Al-Mukhabarat too. Journeys are monitored by security officers stationed on the route if they have prior intelligence. Any changes of destination are notified ahead by telephone or radio so that arrival is anticipated. The welcoming party is a give away. Escorts are trained, for example, to start long arguments with other Iraqi officials on behalf of UNMOVIC while any incriminating evidence is hastily being hidden behind the scenes. Al Mukhabarat have teams whose role is to organise car crashes to cause traffic jams if the Inspectors suddenly change course towards a target the Iraqi wish to conceal. Crashing into inspectors cars was a ploy often used on UNSCOM. Interviews Venues for any possible interviews between inspectors and scientists or key workers are arranged by Iraqis. They are then monitored by listening devices and sometimes video. Most of the staff in the building where interviews take place are Al-Mukhabarat officers, there to observe any covert behaviour such as whispered conversations, the passing of notes or conversations away from microphones. The interviewees will know that they are being overheard by Iraqi intelligence or security. The inspectors want to interview some key people outside Iraq, without minders. All scientists and key workers have been made to draw up a list of their relatives by Al Mukhabarat. The interviewees know only too well what will happen to them, or their relatives still in Iraq, if it is even suspected that they have said too much or given anything away None have agreed to be interviewed outside Iraq. Inspection Technology The inspectors use sophisticated technology to detect hidden Iraqi programmes. Many of these are safety systems from the nuclear and chemical industries which are also available to the Iraqis. When a detectable chemical or substance is hidden, the Iraqis do not just hide it and hope the Inspectors will not find it. They check that the technologies which they know the Inspectors have and use will not detect what they have hidden. For example when an illicit piece of equipment (say a missile warhead) or substance is buried by the Iraqis, they make sure it stays hidden by using Ground Penetrating Radar to determine whether the inspectors will be able to detect the cache. Psychological Pressure Before UNMOVIC personnel arrive in Iraq, their names are sought by at least one and probably several of the Iraqi intelligence and security services. They will find out as much as possible. Do they have family, do they have any weaknesses that can be exploited? Are they young, nervous, vulnerable in some way? The inspectors' personal security and peace of mind is a concern both to the individual inspectors and to UN management. So the Iraqis disrupt their work and daily lives by staging demonstrations wherever they go and having stooges make threatening approaches to Inspectors - such as the Iraqis who recently tried to enter the Inspectors' compound armed with knives or climbed into UN vehicles which were going out on an inspection. The whole effect is one of intimidation and psychological pressure. Part Two : The Security Apparatus  The Presidential Secretariat The Presidential Secretariat has around 100 staff, who are drawn from the security agencies. The Secretariat is responsible for Saddam's personal security, as well as defence, security and intelligence issues. It is overseen by Saddam's personal secretary, Lieutenant General Abid Hamid Mahmud. Mahmud is Saddam's distant cousin and is the sheikh of both the Al-Bu-Nasir and Al-Khattab tribes. Mahmud is regarded by some as the real number two figure in the Iraqi leadership. He controls all access to Saddam - possibly with the exception of Qusay and Uday Hussein - and has the ability to override government decisions. Al-Majlis Al-Amn Al-Qawni. The National Security Council. Headed by Saddam Hussein but usually chaired by his son Qusay Hussein, it oversees the work of all other security agencies. Membership in Majlis Al-Amn Al-Qawni includes chosen people from; Iraqi Army Special Security Service General Intelligence Directorate Military Intelligence General Security Service Office of the Presidential Palace Majlis Al-Amn Al-Qawni, headquartered at the Presidential Palace in Baghdad, meets on a weekly basis. Special Security Committee Qusay Hussein is the deputy chairman of the Special Security Committee of the Iraqi National Security Council that was created in 1996 as part of the President's office. The Committee membership includes: Tahir Jalil Habbush al-Tikriti, the director of the Public Security Directorate Dahham al-Tikriti, Director of the Iraqi Intelligence Service Al Mukhabarat Abid Hamid Mahmud, the president's personal secretary. Faris 'Abd-al-Hamid al-'Ani, the director general of the Presidential office This special body also includes representatives of the Republican Guard. The Committee is supported by over 2,000 staff. The staff is drawn from the Republican Guard, or the Special Guard, and the intelligence services. Their main task is preventing the United Nations inspectors from uncovering information, documents, and equipment connected with weapons of mass destruction. They are recruited for this specific mission and chosen from the most efficient and loyal units. The work is divided between two sections, each of which has a staff of about 1,000: The first section focuses on the daily work of the UN monitoring commission, including sites to be visit and inspected, escorting UN inspectors, preventing them from carrying out their mission effectively. The second section conceals documents, equipment, and materials and moves them about from one location to another. Several facilities have been especially built for collecting and hiding such selected material. This section is responsible for material that is imported through "special channels" as part of the programme of rebuilding the strategic military arsenal, including chemical and biological weapons as well as missiles and associated technology. Al-Mukhabarat. The Directorate of General Intelligence 4,000 people. Created out of the Baath party. Al-Mukhabarat is roughly divided into a department responsible for internal operations, co-ordinated through provincial offices, and another responsible for international operations, conducted from various Iraqi embassies. Its internal activities include: Spying within the Ba'th Party, as well as other political parties; suppressing Shi'a, Kurdish and other opposition; counter-espionage; targeting threatening individuals and groups inside Iraq; spying on foreign embassies in Iraq and foreigners in Iraq; maintaining an internal network of informants. Its external activities include spying on Iraqi diplomats abroad; collecting overseas intelligence; supporting terrorist organisations in hostile regimes; conducting sabotage, subversion, and terrorist operations against neighbouring countries such as Syria and Iran; murder of opposition elements outside of Iraq; infiltrating Iraqi opposition groups abroad; providing dis-information and exploitation of Arab and other media; maintaining an international network of informants, using popular organisations as well such as the Union of Iraqi Students. It has long been known that Al-Mukhabarat uses intelligence to target Iraqis .It forces Iraqis living abroad to work for Saddam by threatening dire consequences for relatives still inside Iraq. It is reported that an Iraqi cannot work for a foreign firm inside Iraq without also working for Al-Mukhabarat directly or as an informant. This includes those allowed to work with foreign media organisations. All Iraqis working with foreigners have to have a special permit which is not granted unless they work for Al-Mukhabarat. They carry out tests which include approaches to Iraqi officials with false information to see whether they report it to Baghdad or foreigners. Al-Amn al-Aam. The Directorate of General Security 8,000 people. The oldest security agency in the country. The Al-Amn Al-Aam supports the domestic counter-intelligence work of other agencies. As a policy, Saddam staffs key positions in Al-Amn Al-Aam with his relatives or other close members of his regime. In 1980, Saddam appointed 'Ali Hassan al-Majid, who would later be the architect of the regime's anti-Kurdish campaign, as its director to instil the ideology of the Ba'ath Party into the agency. Al-Amn al-Aam was given more political intelligence responsibilities during the Iran-Iraq War. When Majid was put in charge of repressing the Kurdish insurrection in 1987, General 'Abdul Rahman al-Duri replaced him until 1991 when Saddam Hussein's half-brother, Sabawi Ibrahim al-Tikriti, (who had served as its deputy director prior to 1991) then became head of this agency. In 1991, Saddam Hussein provided it with a paramilitary wing, Quwat al-Tawari, to reinforce law and order, although these units are ultimately under Al Amn al-Khas control. After the 1991 Gulf War, Quwat al-Tawari units were believed to be responsible for hiding Iraqi ballistic missile components. It also operates the notorious Abu Ghuraib prison outside of Baghdad, where many of Iraq's political prisoners are held. Each neighbourhood, every office and school every hotel and coffee shop has an officer assigned to cover it and one or more agents in it who report what is said and what is seen. Al-Amn Al-Aam runs a programme of provocation where their agent in a coffee house or work place will voice dissident views and report on anyone who agrees with those views. An Al-Amn Al-Aam agent or officer will sometimes approach an Iraqi official pretending to recruit him for some opposition or espionage purpose and then arrest him if he does not report it. They also look for foreigners who might be breaking Iraqi law or seeking to stir up anti-regime feelings among native Iraqis. Technically, it is illegal for an Iraqi official or military officer to talk to a foreigner without permission from a security officer. Al Amn al-Khas. The Special Security Organisation 2,000 people. The most powerful and most feared agency, headed by Qusay Hussein. It is responsible for the security of the President and of presidential facilities; supervising and checking the loyalty of other security services; monitoring government ministries; supervising operations against Iraqi Kurds and Shias; and securing Iraqs most important military industries, including WMD. The Al-Amn al-Khas is nebulous and highly secretive and operates on a functional, rather than a geographical basis. Qusay Hussein supervises the Special Bureau, the Political Bureau and the Administration Bureau, the agencys own military brigade, and the Special Republican Guard. Its own military brigade serves as a rapid response unit independent of the military establishment or Special Republican Guard. In the event of a coup attempt from within the regular military or Republican Guard, Special Security can easily call up the Special Republican Guard for reinforcements as this unit is also under its control. The Security Bureau: The Security Bureau is divided into a Special Office, which monitors the Special Security agency itself to assure loyalty among its members. If necessary, it conducts operations against suspect members. The Office of Presidential Facilities, another unit of the Security Bureau, guards these places through Jihaz al-Hamaya al-Khas (The Special Protection Apparatus). It is charged with protecting the Presidential Offices, Council of Ministers, National Council, and the Regional and National Command of the Bath Party, and is the only unit responsible for providing bodyguards to leaders. The Political Bureau: The Political Bureau collects and analyses intelligence and prepares operations against "enemies of the state." This unit keeps an extensive file on all Iraqi dissidents or subversives. Under the Political Bureau, the Operations Office implements operations against these "enemies," including arrests, interrogations and executions. Another division is the Public Opinion Office, responsible for collecting and disseminating rumours on behalf of the state. The operations of Special Security are numerous, particularly in suppressing domestic opposition to the regime. After its creation in 1984, Special Security thwarted a plot of disgruntled army officers, who objected to Saddams management of the Iran-Iraq War. It pre-empted other coups such as the January 1990 attempt by members of the Jubur tribe to assassinate him. It played an active role in crushing the March 1991 Shia rebellion in the south of Iraq. Along with General Intelligence, Special Security agents infiltrated the Kurdish enclave in the north of Iraq in August 1996, to hunt down operatives of the Iraqi opposition. It serves as the central co-ordinating body between Military-Industrial Commission, Military Intelligence, General Intelligence, and the military in the covert procurement of the necessary components for Iraqs weapons of mass destruction. During the 1991 Gulf War, it was put in charge of concealing SCUD missiles and afterwards in moving and hiding documents from UNSCOM inspections, relating to Iraqs weapons programmes. It is also thought that Special Security is responsible for commercial trade conducted covertly in violation of UN sanctions. The members of Al-Amn al-Khas are primarily drawn from Saddams own tribe, the Abu Nasr, or from his home district of Tikrit. Jihaz al-Hamaya al-Khas. The Special Protection Apparatus Charged with protecting Presidential Offices, Council of Ministers and the Regional and National Commands of the Baath Party. It is the only organisation responsible for providing bodyguards to the very top of the regime. Approximately 40 personal bodyguards are responsible for Saddam's immediate security. Al-Istikhbarat al-Askariyya. The Directorate of Military Intelligence 6,000 people. Its main functions are ensuring the loyalty of the armys officer corps and gathering military intelligence from abroad. But it is also involved in foreign operations, including assassinations. Unusually the heads of Al-Istikhbarat al-Askariyya have not been immediate relatives of Saddam. Saddam appointed, Sabir 'Abd al-'Aziz al-Duri as head during the 1991 Gulf War. After the Gulf War he was replaced by Wafiq Jasim al-Samarrai. After Samarrai, Muhammad Nimah al-Tikriti headed Al-Istikhbarat al-Askariyya in early 1992 then in late 1992 Fanar Zibin Hassan al-Tikriti was appointed to this post. These shifting appointments are part of Saddam's policy of balancing security positions. By constantly shifting the directors of these agencies, no one can establish a base in a security organisation for a substantial period of time. No one becomes powerful enough to challenge the President. Al-Amn al-Askari. Military Security Service 6,000 people. Established as an independent entity in 1992, its function is to detect disturbances in the military. The Amn was initially headquartered in the Bataween district of Baghdad. In 1990 Amn moved to a new headquarters in the Al Baladiat area of the city, with the Bataween building becoming the agency's main prison. The Secret Police also has a number of additional facilities and office buildings. Amn maintains a presence in every town and village, with personnel stationed in civilian police stations across Iraq -- normally the "ordinary" police are on the ground floor and the Secret Police on the second floor. The Security branch is responsible for monitoring and countering dissent within Amn, and the Military Brigade provides rapid intervention para-military capabilities - the Brigade commander was executed in August 1996 for alleged involvement in a coup attempt. Amn is currently headed by Staff Major General Taha al Ahbabi, who previously headed the Military Security Service and served as the head of the secret service section of the Mukhabarat. As with many other senior Iraqi leaders, he is a native of Saddam's home town of Tikrit. Al-Haris al-Jamhuri al-Khas. The Special Republican Guard 15,000 people Headed by Qusay Hussein, it serves as a praetorian guard, protecting Presidential sites and escorting Saddam Hussein on travels within Iraq. The Al-Haris al-Jamhuri al-Khas are the only troops normally stationed in Baghdad. It consists of four brigades, three infantry and one armoured. Al-Haris al-Jamhuri al-Khas also has its own artillery battalions, air defence and aviation assets. Units consist mainly of individuals from tribes loyal to Saddam Hussein. Al-Haris al-Jamhuri al-Khas has played a role in securing WMD warheads and maintains control of a few launchers. Al Hadi project. Project 858 Al Hadi is estimated to have a staff of about 800. The Al Hadi Project is the organisation responsible for collecting, processing, exploiting and disseminating signals, communications and electronic intelligence. Though it reports directly to the Office of the Presidential Palace, Al Hadi is not represented on the National Security Council, and the intelligence it collects is passed on to other agencies for their use. Fedayeen Saddam. Saddams Martyrs 30,000 to 40,000 young people. It is composed of young militia press ganged from regions known to be loyal to Saddam. The unit reports directly to the Presidential Palace, rather than through the army command, and is responsible for patrol of borders and controlling or facilitating smuggling. The paramilitary Fedayeen Saddam (Saddam's `Men of Sacrifice') was founded by Saddam's son Uday in 1995. In September 1996 Uday was removed from command of the Fedayeen. Uday's removal may have stemmed from an incident in March 1996 when Uday transfered sophisticated weapons from Republican Guards to the Saddam Fedayeen without Saddam's knowledge. Control passed to Qusay, further consolidating his responsibility for the Iraqi security apparatus. The deputy commander is Staff Lieutenant General Mezahem Saab Al Hassan Al-Tikriti. According to reports, control of Saddam Husseins personal militia was later passed back to his eldest son, Uday. It started out as a rag-tag force of some 10,000-15,000 bullies. They are supposed to help protect the President and Uday, and carry out much of the police's dirty work. The Fedayeen Saddam include a special unit known as the death squadron, whose masked members perform certain executions, including in victims' homes. The Fedayeen operate completely outside the law, above and outside political and legal structures. Maktab al-Shuyukh. The Tribal Chiefs Bureau This was created after the Gulf war as a vehicle for paying tribal leaders to control their people, spy on possible dissidents and provide arms to loyal tribesmen to suppress opposition. Part Three: The effect on the people of Iraq The Iraqi on the Street Close monitoring is a feature of everyday life in Iraq. Saddams organisations all run elaborate surveillance systems including mobile teams that follow a target, fixed observation points overlooking key intersections and choke points on routes through Baghdad and other major cities, networks of agents in most streets - the watchmen on buildings, the guards on checkpoints, the staff in newspaper kiosks - all linked by modern real time communications. The effect is to make it extremely difficult and dangerous to try to hide activity from the State. Saddams Favourites Iraqis who are members of Saddam's favourite tribe find it easier to join the Ba'ath Party. Some have even been members since childhood. If they aspire to be part of the inner circles of the regime, they can work their way up the party ladder and work towards the Presidential palace. But they must not show dissent from the Party line or appear too influential. They must always remember that anyone who is a threat to Saddam or his sons will not be tolerated. And if they become a threat, someone will know - they will be reported. Imprisonment or execution may follow. Others Iraqis Iraqis who are not members of the favourite tribe must join the Ba'ath Party to progress in Iraq. They then could join one of the security or intelligence services but they must avoid being seen as a threat. If an Iraqi wants to work for a foreign firm, Al-Mukhabarat would soon know of their application. Whether they get the job depends on their willingness to spy on the firm from inside. If they have an opportunity to travel, Al-Mukhabarat will know and give them instructions about reporting in. If Iraqs do not want to participate, Al-Mukhabarat will know where their family lives inside Iraq. And if they think that living abroad will protect them they must remember that Al-Mukhabarat has a long arm. In September 2001, a report on human rights in Iraq by the UN Special Rapporteur noted that membership of certain political parties is punishable by death, that there is a pervasive fear of death for any act or expression of dissent, and that there are current reports of the use of the death penalty for such offences as "insulting" the President or the Ba'ath Party. The mere suggestion that someone is not a supporter of the President carries the prospect of the death penalty. Iraq Baath Party The Ba'ath Party is central to the Iraqi infrastructure of fear. Everyones name and address is known to district Ba'ath Party representatives. It is they who will know if there are signs of people deviating from unswerving support from Saddam. When the Royal Marines occupied the Ba'ath Party offices in Sirsank in Northern Iraq in 1991, they found records detailing every inhabitant of the town, their political views, habits and associates. This included a map showing every household, colour-coded to show those who had lost sons in the war against Iran and those who had had family members detained or killed by the security apparatus or Ba'ath Party. The Media The Iraqi Regime exerts total control over the media. When the domestic or foreign media interview a seemingly ordinary person on the street in Iraq, they will often be members of one of the security agencies, mouthing platitudes about Saddam and his regime. If the media do manage to find an ordinary voice those people are well aware they are being watched by the Regime. They know they have to say they love Saddam, and that the West is evil. They know if they dont keep to the script, they risk serious consequences including death. Even off-camera, only a few are prepared to run the enormous risk of revealing their true feelings. The overall effect of the systems of control and intimidation is that every Iraqi is suspicious of all except closest family. -  PAGE 19 - The Special Republican Guard Saddams Martyrs Project 858 The Tribal Chiefs Bureau The Directorate of General Intelligence The Directorate of General Security Military Security Service The Directorate of Military Intelligence The Special Protection Apparatus The Special Security Organisation Special Security Committee The National Security Council The Presidential Secretariat SADDAM AND HIS SONS EM>?@H!DPQsL f 3 1?3?Zp23kae~ "9";"\"]""#"$#$ĺ񜔦5CJOJQJ56CJOJQJOJQJjCJOJQJUmH5CJOJQJhnH CJOJQJhnH >*5>*CJ$OJQJ CJ$OJQJ6CJ$OJQJ5CJOJQJ CJOJQJCJ 5CJ:EFGHIJKLM>?@ST=>?@ABCDQs$$$ikk&l'llllllllllqnrn   stu   +,012?@3 $$34?@;<()hi'(YZpq3$ 34%&23klabcde~  8!9!"";"\" $\"]"""#*#D#f#}####"$#$>$?$$$%%a%%%5&6&&&'$$h$ & F$$#$>$?$$%+ +++A+B+Q+--//}2~2222222I3355;6J6K66667G::::;<??iA}AHCICEFFFGGmHoHHHH+IIIJ+J,JJ_K>L?LMMMMMMN6CJOJQJ>*CJOJQJ656CJOJQJOJQJ5CJOJQJ56CJOJQJ CJOJQJ5CJOJQJ 5OJQJH''''((n(o(>)?)+ ++A+B+Q+R+s+t+T,U,w,,,-<-y-$ & F$$h$ & F$y-----.F.../\///00q1r111~22222222$ & F$ & F$$ & F222H3I33344556677X8Y89999F:G::::;;;$$;;X;Y;p;;;<P<<< = ===??hAiAHCICDDE $ee$ & Fe h$$$ & F$EEFFpGqGGGnHoHHHH+I,IIIIIJ+J,J;JO?OmPnPrQsQRRRRRRRbScSS$$NhNiNmNpNNNOOnPrQsQvQ"R,RRRRRRRRUU,U.U:U;UBUsUzUXV_VVVV WFXUXXXgYvYq[[\\g\h\z\|\\T]]]]___Ta'b5bfgii'llllllB*CJ OJQJ5>*CJ$OJQJ>*CJ$5CJOJQJOJQJ5CJOJQJ56CJOJQJ6CJOJQJ CJOJQJ5GSSSSTTUU.U:U;UnUoUVVVVV W W)W+WWW4X5XYYZZ$Zl[m[g\h\|\\\R]S]T]]]]]f_g_____j`k`aaTaUa&b'b$$$$'b5b6bbb c ccc5d6d e e|f}fffggCgDgggiiiikk $$k&l'lllllllllllllllllllllm mmm-m1m$$$llllllllllllllllllmmmFmGmlmmmmmmmmmmmnn:n;nYnZnonqnrn5>*CJ$OJQJ5B*CJhnH hmHjUhnH hnH )1mFmGm[mlmmmwmmmmmmmmmmmmmmmnnn)n:n;nMnYnZn$Znbnonpnqnrn$$. A!"#$%. A!"#$% [$@$NormalmH 88 Heading 1$@& 5CJnH << Heading 2 $<@& 5CJnH <@< Heading 3$@&5CJOJQJ<< Heading 4 $$@& CJOJQJ<@< Heading 5 $$@& CJOJQJ@@@ Heading 6 $$@&6CJOJQJ@@@ Heading 7 $$@&5CJ OJQJ@@ Heading 8 $$@&5CJ$OJQJ@ @@ Heading 9 $$@&5CJOJQJ<A@<Default Paragraph Font@C@Body Text Indent<CJnH 2B@2 Body Text CJOJQJ,@,Header  9r , @",Footer  9r :P@2: Body Text 2$ CJOJQJ(U@A( Hyperlink>*B*DORD Blockquotehhdd CJhnH >Q@b> Body Text 3$5CJOJQJ#%7D`B_rj #%7D`B_     SYrj#$Nlrn8?FKs33\"'y-2;EKSZ'bk1mZnrn9;<=>@ABCDEGHIJLMrn: !8$%@$$(  dT  S # `B  c $Dp `B B c $D`B  c $D@ ` `B  c $D  f  S ̙   `B  c $D0  `B  B c $D`` @ `B   c $D` p r   s *̙  `B  B c $DP`PP`B   c $Dp` 0r  s *̙)r `B  c $DPpP`B  c $D` `B B c $D f  S ̙ @ r  s *̙ H r  s *̙0  r  s *̙ S r  s *̙`   r  s * ̙p ~  r  s * ̙p    f  S  ̙ P  r  s * ̙s   r  s * ̙ p  r  s *̙0 r  s *̙0  r  s *̙ U@ lB  0DlB   0D` @lB ! 0D 0`B " c $DPPlB # 0DP0P@lB $ 0DP@pB S  ?rjxBO#0tIQ3 = oy'.9?"(,/38? D !!!!!#!'!.!a!g!k!r!!!!!!!!!!!!" ''(((( +#+......//x/{///////00000081=1>1D1H1L1111111;2@2D2J222222222M3T3\4_4c4f455556666H7M7C8H88888 99L<Q<U<[<_<c<==@@@@DD D DCDGDfDlDoDtDxD~DDDEEEEG$G(G1GrGwGyG|GGGGGGGGGGGGG HHHH&H1H5H>H_HdHeHjHkHqHuH|HIIIImJpJJJJJJJKKKKLLLLsMvMMMMMNNNNNNNNNNjOoOsOzO~OOOPP PPPPPPPPPQ"Q>QBQvQzQ[R_RRRFTNTTTTTTTTT#U'U(U2UnUvUUU*V1V:V@VDVKVVV6W:WqWyWXXhXnXrXyX[[PaZabb6d=dhhhsjJ/1 ] c <!E\R\kp[g9;Y""%% ''B'O'y))\+g+---.......447767=7P8X8p9x9s;y;==>>@ @9BFBoDDEF,F9FH"HIIIIrN{NNNN OOOOORRhXzX3[9[\\Z`[` azbhhhhh-i/isjcic22JC:\DOCUME~1\phamill\LOCALS~1\Temp\AutoRecovery save of Iraq - security.asdcic22JC:\DOCUME~1\phamill\LOCALS~1\Temp\AutoRecovery save of Iraq - security.asdcic22JC:\DOCUME~1\phamill\LOCALS~1\Temp\AutoRecovery save of Iraq - security.asdJPrattC:\TEMP\Iraq - security.docJPrattA:\Iraq - security.doc ablackshaw!C:\ABlackshaw\Iraq - security.doc ablackshaw#C:\ABlackshaw\A;Iraq - security.doc ablackshawA:\Iraq - security.docMKhanC:\TEMP\Iraq - security.docMKhan(C:\WINNT\Profiles\mkhan\Desktop\Iraq.doc PjzXV*uzLl_bzLl_ f| nR"zLl_ 3Pj0: '0IIPjwPPj|U _PID_GUIDAN{5E2C2E6C-8A16-46F3-8843-7F739FA12901}  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNPQRSTUVWXYZ[\]^_`abcdefghjklmnoprstuvwx{Root Entry Fdt u}1TableO02WordDocument<SummaryInformation(iDocumentSummaryInformation8qCompObjjObjectPool u u  FMicrosoft Word Document MSWordDocWord.Document.89qlibextractor-1.3/src/plugins/testdata/dvi_ora.dvi0000644000175000017500000033177412016742766017242 00000000000000; TeX output 2005.02.06:0725O! /DvipsToPDF { 72.27 mul Resolution div } def /PDFToDvips { 72.27 div Resolution mul } def /HyperBorder { 1 PDFToDvips } def /H.V {pdf@hoff pdf@voff null} def /H.B {/Rect[pdf@llx pdf@lly pdf@urx pdf@ury]} def /H.S { currentpoint HyperBorder add /pdf@lly exch def dup DvipsToPDF /pdf@hoff exch def HyperBorder sub /pdf@llx exch def } def /H.L { 2 sub dup /HyperBasePt exch def PDFToDvips /HyperBaseDvips exch def currentpoint HyperBaseDvips sub /pdf@ury exch def /pdf@urx exch def } def /H.A { H.L currentpoint exch pop vsize 72 sub exch DvipsToPDF HyperBasePt sub sub /pdf@voff exch def } def /H.R { currentpoint HyperBorder sub /pdf@ury exch def HyperBorder add /pdf@urx exch def currentpoint exch pop vsize 72 sub exch DvipsToPDF sub /pdf@voff exch def } def systemdict /pdfmark known not {userdict /pdfmark systemdict /cleartomark get put} if ps:SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if endps:SDict begin [ /Title (Optimal Bitwise Register Allocation using Integer Linear Programming) /Subject (Register Allocation) /Creator (LaTeX with hyperref package) /Author (Rajkishore Barik and Christian Grothoff and Rahul Gupta and Vinayaka Pandit and Raghavendra Udupa) /Producer (dvips + Distiller) /Keywords (register allocation integer linear programming bit-wise spilling coalesing rematerialization) /DOCINFO pdfmark end⍠?color push Blackcolor push gray 0ps:SDict begin H.S endcolor push gray 0 color popps:SDict begin H.R endJps:SDict begin [ /View [/XYZ H.V] /Dest (page.1) cvn H.B /DEST pdfmark end color pop color poppcolor push Blackcolor push Black color popDtGGcmr17Optimal7tBitqwiseRegisterAlloscationusingIntegerLinearProgramming)jwXQ cmr12RajkishoreBarik2K cmsy8K`ChristianGrotho 2yIRahrulGupta2zxVinaryakXaPandit2x9_RagharvendraUdupa2{IBMIndiaResearcrhLab37color push Black color pop color popWps:SDict begin [ /Count -0 /Dest (section.1) cvn /Title (Introduction) /OUT pdfmark endWps:SDict begin [ /Count -0 /Dest (section.2) cvn /Title (Related Work) /OUT pdfmark end[ps:SDict begin [ /Count -9 /Dest (section.3) cvn /Title (ILP Formulations) /OUT pdfmark endaps:SDict begin [ /Count -0 /Dest (subsection.3.1) cvn /Title (Basic formulation) /OUT pdfmark end`ps:SDict begin [ /Count -0 /Dest (subsection.3.2) cvn /Title (Optimal spilling) /OUT pdfmark end_ps:SDict begin [ /Count -0 /Dest (subsection.3.3) cvn /Title (Zero-cost moves) /OUT pdfmark endhps:SDict begin [ /Count -0 /Dest (subsection.3.4) cvn /Title (Optimizations to the ILP) /OUT pdfmark endjps:SDict begin [ /Count -0 /Dest (subsection.3.5) cvn /Title (Graph coloring formulation) /OUT pdfmark endxps:SDict begin [ /Count -0 /Dest (subsection.3.6) cvn /Title (Avoiding to block registers for spilling) /OUT pdfmark endZps:SDict begin [ /Count -0 /Dest (subsection.3.7) cvn /Title (Coalescing) /OUT pdfmark endaps:SDict begin [ /Count -0 /Dest (subsection.3.8) cvn /Title (Rematerialization) /OUT pdfmark endWps:SDict begin [ /Count -0 /Dest (subsection.3.9) cvn /Title (Summary) /OUT pdfmark endRps:SDict begin [ /Count -4 /Dest (section.4) cvn /Title (Results) /OUT pdfmark endZps:SDict begin [ /Count -0 /Dest (subsection.4.1) cvn /Title (Benchmarks) /OUT pdfmark endkps:SDict begin [ /Count -0 /Dest (subsection.4.2) cvn /Title (Impact of the optimizations) /OUT pdfmark end[ps:SDict begin [ /Count -0 /Dest (subsection.4.3) cvn /Title (Performance) /OUT pdfmark endZps:SDict begin [ /Count -0 /Dest (subsection.4.4) cvn /Title (Discussion) /OUT pdfmark endUps:SDict begin [ /Count -0 /Dest (section.5) cvn /Title (Conclusion) /OUT pdfmark endSps:SDict begin [ /Page 1 /View [ /Fit ] /PageMode /FullScreen /DOCVIEW pdfmark endJps:SDict begin [ {Catalog} << /ViewerPreferences << >> >> /PUT pdfmark endps:SDict begin H.S endps:SDict begin 12 H.A endMps:SDict begin [ /View [/XYZ H.V] /Dest (Doc-Start) cvn H.B /DEST pdfmark endpapersize=614.295pt,794.96999pt *"V cmbx10Abstract ps:SDict begin H.S endps:SDict begin 12 H.A endNps:SDict begin [ /View [/XYZ H.V] /Dest (section*.1) cvn H.B /DEST pdfmark end K`y cmr10ThispapGeraddressestheproblemofoptimalglobalreg-isteralloGcation.Theregisterallocationproblemisex-pressed{asanintegerlinearprogrammingproblemandsolvedoptimally*.ThemoGdelismore exiblethanpre-vious]graph-coloringbasedmethoGdsandthusallowsforregisterwLalloGcationswithfewermovesandspills.׬TheformulationqcanmoGdelcomplexarchitecturalfeatures,suchjasbit-wiseaccesstoregisters.#Withbit-wiseaccesstoregistersmultiplesubwordtempGorariescanbestoredinu7asingleregisterandaccessedeciently*,}/resultinginasregisteralloGcationproblemthatcannotbeaddressedwith#simplegraphcoloring.1ThepapGerdescribestech-niquesGthatcanhelpreducetheproblemsizeoftheILPformulationandrepGortspreliminaryempiricalresultsfromUUanimplementationprototypGe.ps:SDict begin H.S endps:SDict begin 12 H.A endMps:SDict begin [ /View [/XYZ H.V] /Dest (section.1) cvn H.B /DEST pdfmark end 91?In9troQductionThe[=traditionalapproachtowardsoptimalregisteral-loGcation$istocolortheinterferencegraph[color push rgb 0 1 0ps:SDict begin H.S endcolor push rgb 0 1 07 color pop9ps:SDict begin H.R endsps:SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (cite.coloring) cvn H.B /ANN pdfmark end color pop].C5IfthenumbGercofcolorsexceedsthenumbercofregisters,gtem-pGorariesbareselectedforspillinguntilthegraphbecomescolorable.jIThe>approachpresentedinthispapGermakesaZradicaldeparturefromthegraphcoloringmoGdelinorder| toavoid| thebGoolean| decisionofspillingornotspillingEatempGorary*.lThebasicideaistoallowtempo-raries6 toswitchregistersatanytimeandtousecon-straints?toforcetempGorariesthatareusedatagiveninstructionintoappropriateregistersonlyatthetime acolor push Blackffff_7 -:q% cmsy6L|{Ycmr8raxjbarik@in.ibm.com [-:yLcÎhristian@grotho .org [-:zLrahÎulgupta@in.ibm.com [-:xLpÎvinayak@in.ibm.com 0m-:{LraghaÎvendraffЎ^udupa@in.ibm.comٛcolor push gray 0ps:SDict begin H.S endcolor push gray 0 color popps:SDict begin H.R end7ps:SDict begin [ /View [/XYZ H.V] H.B /DEST pdfmark end color pop color popcolor push Black color pop" ofURuse.qMovingavqariablebGetweenregistersorbGetween registersdandthestackisassoGciatedwithacostinthe goalfunctionoftheILP*.ThesearchspacefortheILP solver5isreducedusingobservqationsabGoutthetimeat whichitmakessenseforatempGorarytobespilledin anUUoptimalalloGcation.In@ordertoshowtheexpressivepGoweroftheap- proach,AFthisworkdescribGesawaytopGerformoptimal registeralloGcationforarchitecturesthatallowbit-wise access&toregistersaspropGosedin[color push rgb 0 1 0ps:SDict begin H.S endcolor push rgb 0 1 016 color pop 9ps:SDict begin H.R end ups:SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (cite.li02bitarm) cvn H.B /ANN pdfmark end color pop ].bBV*ariousapplica- tions,HFinparticularfromtheembGeddeddomain,make extensivekruseofsub-wordsizedvqalues.Examplesin- cludenetworkstackimplementationsandsignal-and image-proGcessingaswellashardwaredrivers.NF*orthese applications,bit-wiseregisteralloGcationcanreducereg- isterZpressure. Undertheassumptionthatthecost ofaddinginstructionsthatsuppGortsub-wordaccessis smallereQthanthecostofaddingadditionalregisters(or increasingL-theproGcessorspeedtoo setthespill-costs), bit-wiseregisteralloGcationcanhelpreducetotalsystem cost.TheHgoalofthisworkistheformulationandevqal- uation\ofanalgorithmthatproGducesoptimalregister assignments forembGeddedprocessors,+includingproces- sors\withsub-wordaccesstoregisters.xWhileinstruc- tionschedulingisnotwithinthescopGeofthepaper,)the presented=algorithmisabletotakestructuralpropGerties ofsaprogram,zsuchasloGops,intoconsideration.J Given pGerfect5loopinformation(intermsofnumbGerofitera- tions)aswellasexactestimatesforthecostofregister- to-registerkandregister-to-stackmoves,qthealgorithm proGducesUUaregisterassignmentwithminimalcost.ThepropGosedapproachusesIntegerLinearPro- grammingC(ILP)[color push rgb 0 1 0ps:SDict begin H.S endcolor push rgb 0 1 022 color pop 9ps:SDict begin H.R end nps:SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (cite.ilp) cvn H.B /ANN pdfmark end color pop ]forbitwiseregisteralloGcationand assignment.WhilebthefoGcusofthepaperisonbit- wiseregisteralloGcation,-thetechniquepresentedencom- passes.alargebGody.ofpreviousworkonregisterallo- cation.kIn 6additiontobit-wiseregisteralloGcation,6.the moGdelusedintheILPformulationsupportscoalescing, spilling,useofregistersforbGothspillingandordinarycolor push Black color pop*ps:SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end⍠?color push Blackcolor push gray 0ps:SDict begin H.S endcolor push gray 0 color popps:SDict begin H.R endJps:SDict begin [ /View [/XYZ H.V] /Dest (page.2) cvn H.B /DEST pdfmark end color pop color poptempGoraries,Lnon-orthogonalCregistersetsandremate- rialization.6TheILPformulationallowstheILPsolvertoSconsideralloftheseoptionsandtoproGduceaso-lutionwhichresultsinoptimalcoGdeintermsofthecost6Kmetric.ThecostmetricusedmoGdelsthecostofspilling(includingincreasedcostforspillcoGdeinloops)register-to-register{movesaswellasreducedcostsforrematerializedUUconstantvqalues.:TheZinputtothealgorithmconsistsofvqariablelive-nessinformation,Taccesscostforaccessingaspilledtem-pGoraryforeachprogrampointandprocessor-speci ccost&5metricsforthevqariousopGerationsthattheregis-terualloGcatormayuse.&V*ariablelivenessinformationisgivenintheformofthenumbGerofbitsofatempo-rary%thatmaybGeliveateachpGointintheprogram.ThereA*arevqariousknownalgorithmstoconservativelyapproximateXthebit-widthofatempGorary[color push rgb 0 1 0ps:SDict begin H.S endcolor push rgb 0 1 025 color pop 9ps:SDict begin H.R end ps:SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (cite.stephenson00bitwidth) cvn H.B /ANN pdfmark end color pop ,color push rgb 0 1 0ps:SDict begin H.S endcolor push rgb 0 1 026 color pop9ps:SDict begin H.R end{ps:SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (cite.tallam03bitwidth) cvn H.B /ANN pdfmark end color pop Z].FThepresentedalgorithmwouldworkwithanyoftheseal-gorithms.TheexpGerimentalevqaluationgiveninthispapGerusesrangelimitationsbasedonthetypeofthetempGorary*.:TheremainderofthepapGerisorganizedasfollows.Afteranoverviewofrelatedworkinsectioncolor push rgb 1 0 0ps:SDict begin H.S endcolor push rgb 1 0 02 color pop9ps:SDict begin H.R endops:SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (section.2) cvn H.B /ANN pdfmark end color poptheILPformulationhforthebit-wiseregisteralloGcationisintro-duced;#insectioncolor push rgb 1 0 0ps:SDict begin H.S endcolor push rgb 1 0 03 color pop9ps:SDict begin H.R endops:SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (section.3) cvn H.B /ANN pdfmark end color pop.i TheimplementationisdescribGedinsectionacolor push rgb 1 0 0ps:SDict begin H.S endcolor push rgb 1 0 04 color pop9ps:SDict begin H.R endops:SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (section.4) cvn H.B /ANN pdfmark end color pop.Q Sectioncolor push rgb 1 0 0ps:SDict begin H.S endcolor push rgb 1 0 04 color pop9ps:SDict begin H.R endops:SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (section.4) cvn H.B /ANN pdfmark end color poppresentspGerformancedataforvqari-ousbGenchmarksandconcludesthepaperwithadiscus-sionUUofthebGene tsandlimitationsofthisapproach.ps:SDict begin H.S endps:SDict begin 12 H.A endMps:SDict begin [ /View [/XYZ H.V] /Dest (section.2) cvn H.B /DEST pdfmark end 92?RelatedTW orkPrevious workhasfoGcussedonregisterallocationatlo-cal,gglobal,intraproGcedural,andd'interproGcedurallevels.IntraproGceduralQregisterallocationisknowntobeaNP-hardiproblemandseveralheuristicshavebGeenproposedtozsolvetheproblem [color push rgb 0 1 0ps:SDict begin H.S endcolor push rgb 0 1 06 color pop9ps:SDict begin H.R end|ps:SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (cite.chaitin82register) cvn H.B /ANN pdfmark end color pop,color push rgb 0 1 0ps:SDict begin H.S endcolor push rgb 0 1 07 color pop9ps:SDict begin H.R endsps:SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (cite.coloring) cvn H.B /ANN pdfmark end color pop {,color push rgb 0 1 0ps:SDict begin H.S endcolor push rgb 0 1 05 color pop9ps:SDict begin H.R endps:SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (cite.briggs94improvements) cvn H.B /ANN pdfmark end color pop {].6In[color push rgb 0 1 0ps:SDict begin H.S endcolor push rgb 0 1 014 color pop 9ps:SDict begin H.R end sps:SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (cite.kurl2001) cvn H.B /ANN pdfmark end color pop ]apGolynomialtime*algorithmforinterproGceduralregisterallocationispresented.LgThe5algorithmusespro leinformationtodeterminehthealloGcationofregisterstoproceduresandtheV5placementofspilling.tgInterproGceduralregisterallo-cationUasmoGdeledbytheauthorsbelongstoaspecialclasstofILPEcalledminimumcostnetwork owproblem. ILPuhasubGeenusedpreviouslyforregisterallocationand:instructionscheduling.uIn[color push rgb 0 1 0ps:SDict begin H.S endcolor push rgb 0 1 020 color pop 9ps:SDict begin H.R end qps:SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (cite.tecs04) cvn H.B /ANN pdfmark end color pop ]ILP.isusedtoallo-cateAtempGorariestoregistersfortheZ86,xUanarchitecturewith#registerbanksinwhichthesizeofthegeneratedcoGdebdependsonthelocationoftemporarieswithre-spGectdtothecurrentbank.TheresultingILPdformu-lationcanbGeusedtoenforceconstraintsoncodesize.In5[color push rgb 0 1 0ps:SDict begin H.S endcolor push rgb 0 1 021 color pop 9ps:SDict begin H.R end ups:SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (cite.cases03nvk) cvn H.B /ANN pdfmark end color pop ]ILP5isusedto ndoppGortunitiesforperformingparallelloadsoftwospilled32-bitvqaluesona64-bitbusbyUUcomputingoptimalstackco-loGcations. Anqapproachtocombinedinstructionschedulingandregister:alloGcationforDSP:{basedonILPisdescribGedcolor push Black color pop in~[color push rgb 0 1 0ps:SDict begin H.S endcolor push rgb 0 1 012 color pop 9ps:SDict begin H.R end ops:SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (cite.isra) cvn H.B /ANN pdfmark end color pop ].BTheauthordiscussesandenhancesILP#for- mulationsforinstructionschedulingbasedon[color push rgb 0 1 0ps:SDict begin H.S endcolor push rgb 0 1 027 color pop 9ps:SDict begin H.R end pps:SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (cite.zha96) cvn H.B /ANN pdfmark end color pop ]and [color push rgb 0 1 0ps:SDict begin H.S endcolor push rgb 0 1 09 color pop9ps:SDict begin H.R endops:SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (cite.ge92) cvn H.B /ANN pdfmark end color pop,color push rgb 0 1 0ps:SDict begin H.S endcolor push rgb 0 1 010 color pop 9ps:SDict begin H.R end ops:SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (cite.ge93) cvn H.B /ANN pdfmark end color pop ],Uwhichoptimallygroupinstructionsintobundles accordingW!toarchitecturalconstraints.w,TheILPVsolu- tionpincludesafeasibleregisteralloGcation,wbuttheILP solverfailsifafeasiblesolutionforthegiveninstruction sequenceuafeasiblesolutionwouldrequiretheaddition of spill-coGde.XTheauthorclaimsthatspillingcannotbe integrated@sincetheILP?isalwaysconstructedfora xed instruction,sequence.d?Incontrast,4thisworkshowsthat itispGossibletoformulateanILPyforregisterallocation thatÊincludesspilling.fTheintegrationofinstruction schedulingeandregisteralloGcationwithspillingisleft forUUfuturework.In[color push rgb 0 1 0ps:SDict begin H.S endcolor push rgb 0 1 03 color pop9ps:SDict begin H.R endtps:SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (cite.appel2001) cvn H.B /ANN pdfmark end color pop],NtheauthorssolvetheregisteralloGcationprob- lemforCISCmachinesbydividingitintotwosubprob- lemsO-optimalspillingandregistercoalescing.Theopti- malBspillingproblemissolvedoptimallyusingILP*,while avqariantofParkandMoGon'sheuristic[color push rgb 0 1 0ps:SDict begin H.S endcolor push rgb 0 1 023 color pop 9ps:SDict begin H.R end ups:SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (cite.ParkMoon98) cvn H.B /ANN pdfmark end color pop ]isusedfor solvingtheregistercoalescingproblem(sub-optimally). The5YauthorsexploittheCISC5instructionsettoopti- mizefthecostofloadsandstores.Theytakeintoac- countthatnumbGerofavqailableregistersmayvqaryfrom program/dpGointtoprogrampoint,ebutdonotconsider vqariablepbit-widthrequirementsoftempGoraries.gIn[color push rgb 0 1 0ps:SDict begin H.S endcolor push rgb 0 1 017 color pop 9ps:SDict begin H.R end ups:SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (cite.lcpc2004li) cvn H.B /ANN pdfmark end color pop ] anmapproachtospGeculativesubwordregisteralloGcation basedonoptimisticregisteralloGcationisproposed.?The ideabGehindthispaperisthattherearemoreopportuni- tiesK forsubwordK alloGcationatrun-timethanwhatcanbe staticallyNdeterminedtobGesafe..Theauthorsproposeto use"pro lingdatatospGeculativelypackvqariablesthat arexmostofthetimesucientlysmallintoaregister andtohavetheproGcessordynamicallydetectand ag theecasewherethesizeconstraintsarenotmet.This requiressuppGortbytheprocessorwhichneedstokeep anIadditionalbitpGerregister.Ifthe agisraisedfor agivenregister,(%theproGcessorexecutestheappropriate stackaccessesinstead.C]Theproblemwiththisapproach is1thatinadditiontoneedingadditionalproGcessorsup- pGortˊtheauthorsfailtoestablishthattheirdynamic technique-}yieldssigni cantlymoresubwordalloGcation oppGortunitiescomparedtodesignsbasedonstaticanal- ysisUUliketheonespresentedinthispapGer.ApcommoncomplicationinregisteralloGcationisthat notqallregistersareequal,#whichisthecaseformany proGcessors.On0Bsuchprocessors,fregistersaregrouped into'classesorregisterfamilies.>Asimpleexampleis thatGof oatingpGointregistersthatarerequiredfor oating-pGointoperationsandnotsupportedforordi- naryinstructions.$kExtendingtheILPformulationpre- sentedSinthispapGertosupportregisterclassescanbe doneWbyaddingtheappropriateconstraintsandbyad- justingJ$theweightsJ$inthecostfunctionaccordingly*. However,/%in%ordertosimplifythepresentation,therestcolor push Black2 color pop*Dps:SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end⍠?color push Blackcolor push gray 0ps:SDict begin H.S endcolor push gray 0 color popps:SDict begin H.R endJps:SDict begin [ /View [/XYZ H.V] /Dest (page.3) cvn H.B /DEST pdfmark end color pop color popofcthispapGerwillbepresentedforthecasewhereall registersUUareequal.ps:SDict begin H.S endps:SDict begin 12 H.A endMps:SDict begin [ /View [/XYZ H.V] /Dest (section.3) cvn H.B /DEST pdfmark end 93?ILPTF orm9ulationsThekeyideaforthealgorithmistoavoidassigningatempGorarya xedlocationandinsteadtoformulatecertainqconstraintsontheloGcationintheformofanintegerlinearproblem(ILP)K[color push rgb 0 1 0ps:SDict begin H.S endcolor push rgb 0 1 022 color pop 9ps:SDict begin H.R end nps:SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (cite.ilp) cvn H.B /ANN pdfmark end color pop ].}ThegoalfunctionoftheILPgcapturesthecostoftheresultingregisteralloGcation.ThecILPcMisthensolvedusingo -the-shelfILPUUsolvertechnology*. TheCinputtotheILP-solverisasetofconstraintsthatdescribGetheregisterallocationproblem.9ThebasicconstraintsarethateachtempGorarymustbGeassignedtoexactlyoneregister,Eandthataregistermusthaveenough#spacetoholdalltempGorariesassignedtoit.DeadGtempGorariesdonotuseanyspace.GThroughoutthe3papGer,ުthestackismodeledasaspecialregister b> cmmi10thatGhasnospaceconstraints.ϞAllotherregisterscanonlyUUstorebbitsofinformation. InuSordertomaketheILPuKformulationmoreaccessi-ble,therequiredconstraint-systemisgrowninseveralsteps,eachBstepaddingadditionalcapabilities. Sec-tionӎcolor push rgb 1 0 0ps:SDict begin H.S endcolor push rgb 1 0 03.1 color pop 9ps:SDict begin H.R end tps:SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.3.1) cvn H.B /ANN pdfmark end color popintroGducesthebasicILPmformulationthatcom-putesoptimalregisteralloGcationsundertheconstraintthat_tempGorariesare xedtojustoneregister(orthestack)ҽfortheentiredurationofthefunction.There-sultingQsolutionscorrespGondtotraditionalgraphcolor-ingUdesigns,Vexceptthatitalreadyincludesbit-wisereg-ister&(alloGcation.bThe rstextension(sectioncolor push rgb 1 0 0ps:SDict begin H.S endcolor push rgb 1 0 03.2 color pop 9ps:SDict begin H.R end tps:SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.3.2) cvn H.B /ANN pdfmark end color pop)allowsstorage1ofthetempGoraryindi erentregisters(includ-ing]%thestack)atdi erttimes.7Thesecondextension(section0color push rgb 1 0 0ps:SDict begin H.S endcolor push rgb 1 0 03.5 color pop 9ps:SDict begin H.R end tps:SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.3.5) cvn H.B /ANN pdfmark end color pop)removes0thisrestrictionandreplacesthelinearZmoGdeloftimewiththecontrol- owZgraphofthefunction.dThese. rsttwo.moGdelsassumethataccessingspilledtempGorariesmerelyincursanadditionalaccesscost,3theregistersrequiredtoaccessspilledtempGorariesareAnotmadeavqailabletothealloGcator.Thethirdmodel(sectionzcolor push rgb 1 0 0ps:SDict begin H.S endcolor push rgb 1 0 03.6 color pop 9ps:SDict begin H.R end tps:SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.3.6) cvn H.B /ANN pdfmark end color pop)allowsthealloGcatortoassigntemporariestoˊallregisterswiththeadditionalconstraintthatitmustalsoreserveregisterspaceforspilledtempGorariesatthetimeswhereinstructionsaccesssuchvqalues.?V*ar-iousminorextensionsandoptimizationstotheformu-lationUUarediscussedwhereapplicable.ps:SDict begin H.S endps:SDict begin 12 H.A endRps:SDict begin [ /View [/XYZ H.V] /Dest (subsection.3.1) cvn H.B /DEST pdfmark end3.11BasicTform9ulationuTTheQbasicformulationonlyconsidersalloGcatingonereg-isterQpGertemporaryforthelifetimeofthattemporary*.MovingatempGorarybetweenregistersorbetweenregis-tersnandthestackisnotallowedinthismoGdel.VzTheca-sualreadercanignorethebit-wisenatureoftheregisteralloGcation andviewtheprobleminasimpli edmannercolor push Black color pop whereudeadtempGorarieshaveuabit-widthofzeroandall livetempGorariesareword-sized.T ThiswouldalsobGethe natural simpli cationtothealgorithmforarchitectures withoutUUbit-wiseaccesstoregisters.The_inputtotheproblemissetsoftempGorariesi !", cmsy102V and registersr<2˵RDz,8\spillcostsS 0ercmmi7i_AforeachtempGorary icx2VandLthesizewi;t efortempGoraryicx2VatLtime t2Tc.cF*or+now,4alinearmoGdeloftimeisassumedwith timestampst\/2TEbGeforeandaftereachinstruction. TheEtempGorary2W޵RYisusedtorepresentthestack, which isnotconstrainedinsizeandisusedforspilling. Allotherregistersry22{Rwcf[ٸgarelimitedtobbits(b ism>typically32).Theresultofthecomputationisan alloGcation?Xi;r 2Lf0;1g,ywithi2VwandrѸ2RDz,ythat assigns5ReverytempGoraryauniqueregister(orthestack [ٲ).TheproblemcanthenbGestatedinawaysuitable forUUinteger-linearprogramming(ILP):+min7ou cmex10X 7i O!cmsy72Vo͵Si,8xi;8ps:SDict begin H.S endps:SDict begin 15 H.A endNps:SDict begin [ /View [/XYZ H.V] /Dest (equation.1) cvn H.B /DEST pdfmark end8(1)׍-=suchUUthatoI^7fTO \cmmi5r,r 0ncmsy52Rf-g;oDt2TX 7'i2Vsxi;r θ8wi;t3Ӹb8ps:SDict begin H.S endps:SDict begin 15 H.A endNps:SDict begin [ /View [/XYZ H.V] /Dest (equation.2) cvn H.B /DEST pdfmark end8(2) z^ 7)i2V۟X 7vr72Rxi;r3Ӳ=18ps:SDict begin H.S endps:SDict begin 15 H.A endNps:SDict begin [ /View [/XYZ H.V] /Dest (equation.3) cvn H.B /DEST pdfmark end8(3){Hl^ ῍za%i2V;z"r,r2Ri xi;r i2f0;1g8ps:SDict begin H.S endps:SDict begin 15 H.A endNps:SDict begin [ /View [/XYZ H.V] /Dest (equation.4) cvn H.B /DEST pdfmark end8(4)$KEquation/(color push rgb 1 0 0ps:SDict begin H.S endcolor push rgb 1 0 01 color pop9ps:SDict begin H.R endpps:SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (equation.1) cvn H.B /ANN pdfmark end color pop)'}moGdels/thecostofthesolutionbysum- mingh#upthecostsofloadingtempGorariesi2Vthat have7bGeenspilled(xi;IJ=}1)fromthestack. TlEqua- tion?(color push rgb 1 0 0ps:SDict begin H.S endcolor push rgb 1 0 02 color pop9ps:SDict begin H.R endpps:SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (equation.2) cvn H.B /ANN pdfmark end color pop)Gstates?thatatalltimesandforallregistersex- cept7thestack,thetotalsizeofalltempGorariesstoredin any{%registermustnotexceedtheregistersizeb.6Equa- tions#(color push rgb 1 0 0ps:SDict begin H.S endcolor push rgb 1 0 03 color pop9ps:SDict begin H.R endpps:SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (equation.3) cvn H.B /ANN pdfmark end color pop)5and#(color push rgb 1 0 0ps:SDict begin H.S endcolor push rgb 1 0 04 color pop9ps:SDict begin H.R endpps:SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (equation.4) cvn H.B /ANN pdfmark end color pop)state#thateverytempGorarymustbGe assignedUUexactlyoneloGcation. ps:SDict begin H.S endps:SDict begin 12 H.A endRps:SDict begin [ /View [/XYZ H.V] /Dest (subsection.3.2) cvn H.B /DEST pdfmark end 93.21OptimalTspillinguTTheoptimalregisteralloGcationoftenrequiresthatatempGorary~isspilledpartofthetimeorthatitismovedfromoneregistertoanother(inordertoreclaimfrag-mentedx+spaceintheregisters).IThisproblemcanbGeformulatedusinglinearconstraintsbyintroGducingad-ditional`tempGorariesci;r;t`#2f0;1gthatcaptureatwhichtimesmmt@2Tregisterr6]2R4hasbGeenallocatedtoanewtempGorary)i'߸2V8.LettٓRcmr70R2TbGethetimebeforethe rstinstructionofthefunction. Letxi;r;t׸2f0;1gbGethe~decisionfunctionthatplacestempGoraryi ߸2V}intoregisterUUr52Riattimet2Tc. LetAMSi;t bGethespillcostofi2Vz1atAMtimet2Tc.kSi;tiszeroifiisnotaccessedattimet.Si;t 8givesthecostofloadingifromthestackifiisusedattheinstructioncolor push Black3 color pop\ps:SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end⍠?color push Blackcolor push gray 0ps:SDict begin H.S endcolor push gray 0 color popps:SDict begin H.R endJps:SDict begin [ /View [/XYZ H.V] /Dest (page.4) cvn H.B /DEST pdfmark end color pop color popafter:timet.uIfiisde nedattheinstructionbGeforet, thenUUSi;t isthecostofspillingitothestack.:Let4$r42. msbm10RbGethecostofmovingavqaluetoorfromregister׵r 2RDz.PNUsingrm,thecostofamovebGetweenregister+aandbisassumedtobGegivenbya+"bD.cF*orexample,givenpFonlyonefamilyofregisters,thevqalueforrȲforV&r52RNL:f[ٸgishalfthecostofaregister-to-registermove.uIn :thiscase,62ifSDzisthecostofmovingavqaluebGetweenethestackandaregister,then =S rm.TheUUresultingILPformulationis: (minNX ῍i2V;6t2T/WSi;t 8xi;;t߲+繟X ῍i2V;lr,r2RrX 7Vt2TUQci;r;tßps:SDict begin H.S endps:SDict begin 15 H.A endNps:SDict begin [ /View [/XYZ H.V] /Dest (equation.5) cvn H.B /DEST pdfmark endò(5) Kč jsuchUUthatO^7F .r,r2Rf-g;Nt2TqvX 7qZi2Vxi;r;t8wi;tdbßps:SDict begin H.S endps:SDict begin 15 H.A endNps:SDict begin [ /View [/XYZ H.V] /Dest (equation.6) cvn H.B /DEST pdfmark endò(6) nS^ ῍m i2V;n"t2T6OX 7r72R%xi;r;td1ßps:SDict begin H.S endps:SDict begin 15 H.A endNps:SDict begin [ /View [/XYZ H.V] /Dest (equation.7) cvn H.B /DEST pdfmark end(7)&M^ !8i2VX;r,r2Rt2T:ftZcmr50 gGʲ(xi;r;t8xi;r;t1)+ci;r;td0ßps:SDict begin H.S endps:SDict begin 15 H.A endNps:SDict begin [ /View [/XYZ H.V] /Dest (equation.8) cvn H.B /DEST pdfmark end(8)!S\&M^ !8i2VX;r,r2Rt2T:ft0 gGʲ(xi;r;t1_8xi;r;t )+ci;r;td0ßps:SDict begin H.S endps:SDict begin 15 H.A endNps:SDict begin [ /View [/XYZ H.V] /Dest (equation.9) cvn H.B /DEST pdfmark end(9)S_^ ῍Ki2VX;r,r2R;S.t2Ttxi;r;t`#2f0;1gŸps:SDict begin H.S endps:SDict begin 15 H.A endOps:SDict begin [ /View [/XYZ H.V] /Dest (equation.10) cvn H.B /DEST pdfmark end²(10) KčUL^ ῍Mϳi2VX;r,r2R;Tt2Tuci;r;t`#2f0;1gŸps:SDict begin H.S endps:SDict begin 15 H.A endOps:SDict begin [ /View [/XYZ H.V] /Dest (equation.11) cvn H.B /DEST pdfmark end²(11)$K:The(newconstraints(color push rgb 1 0 0ps:SDict begin H.S endcolor push rgb 1 0 08 color pop9ps:SDict begin H.R endpps:SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (equation.8) cvn H.B /ANN pdfmark end color pop)/oand(color push rgb 1 0 0ps:SDict begin H.S endcolor push rgb 1 0 09 color pop9ps:SDict begin H.R endpps:SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (equation.9) cvn H.B /ANN pdfmark end color pop)ensurethatci;r;t mustlbGe1eachtimethatxi;r;tEwchanges.w ThemoGdi edgoalmfunction(color push rgb 1 0 0ps:SDict begin H.S endcolor push rgb 1 0 05 color pop9ps:SDict begin H.R endpps:SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (equation.5) cvn H.B /ANN pdfmark end color pop)makesaccomoGdationsfortheaccu-mulatedcostofallmoves.8$NotethatthisformulationassumesthatthecostofamoveisindepGendentofitsdirection,&Vasimpli cationthatmaynotbGecorrectforsomexarchitectures.gHandlingasymmetricmovecostswouldhincreasethesizeoftheILPhsigni cantly*."TheILPformulationsypresentedinthispapGeronlymodelsym-metricmovecosts;[nevertheless,@thealloGcationscom-putedarestillsound(thoughpGossiblysuboptimal)forarchitecturesMRwithasymmetricmovecosts.YAnevqalu-ation?ofthepGossiblebene tsofmodelingasymmetricmoveUUcostsisleftforfuturework. 6ps:SDict begin H.S endps:SDict begin 12 H.A endRps:SDict begin [ /View [/XYZ H.V] /Dest (subsection.3.3) cvn H.B /DEST pdfmark end3.31Zero-costTmo9vesuTDeadRtempGorariescanbemovedRbetweenRregistersatnocost.3eThemoGdelsofarconsidersallmovestobeofequalcost,LJregardlessofthelivenessofthetempGorary*.AgoGodwaytoallowforzero-costmovesistosplitalltempGorariesZwithmultipledisjointlive-timesintomul-tipletempGoraries,oneforeachlive-time.Whilethiscolor push Black color pop increases#[thesizeofthesetV8,Vthesimpli cationpre- sentedRinthenextsectionavoidssigni cantgrowthof theUUproblemduetothisextension.InȟGCC,data- owoftempGorariesismodeledusing webs,whereLasingleprogramtempGorarycancorrespond to%multiplewebs. ThewayGCC%splitstempGoraries intokwebsexactlyfollowstherequirementsstatedabGove, that.is,tempGorarieswithdisjointlifetimesaresplitinto multipleUUwebs,withexactlyonewebpGerlifetime. ps:SDict begin H.S endps:SDict begin 12 H.A endRps:SDict begin [ /View [/XYZ H.V] /Dest (subsection.3.4) cvn H.B /DEST pdfmark end 93.41OptimizationsTtotheILPuTThe GILPstatedsofarcanbGeoptimizedinordertoachievepfastersolutiontimes.Thebasicideaistore-ducethesearchspacefortheILPsolverbyaddingcon-straintsDmthat xthevqalueofproblemvariableswithoutchanging\nthevqalueofthegoalfunctionfortheoptimalsolution. LetLtcVV5bGethesetoftemporariesthatarenotaccessedattimetn2Tc.XConsideringthatSi;t s'spGeci estheŐspill-costfortempGoraryiattimet#2Tc,theŐexactde nitionUUofLtګisps:SDict begin H.S endps:SDict begin 12 H.A endOps:SDict begin [ /View [/XYZ H.V] /Dest (equation.12) cvn H.B /DEST pdfmark endFLtLn:=fi2V8jSi;t =0g:8(12) LetpMt+DLtƲbGethesetoftemporariesthatarenot accessedattimet2Tlandthatareeitherdeadorhavemaximumsize(inthenumbGerofbits)attimet@2Tc.F*ormallyUUps:SDict begin H.S endps:SDict begin 12 H.A endOps:SDict begin [ /View [/XYZ H.V] /Dest (equation.13) cvn H.B /DEST pdfmark end:3MtLn:=fi2LtVjwi;t 2f0;bgg:8(13) pps:SDict begin H.S endps:SDict begin 12 H.A endKps:SDict begin [ /View [/XYZ H.V] /Dest (Lemma.1) cvn H.B /DEST pdfmark end #color push BlackLemmaT1 color pop3 0': cmti10The optimalityofthesolutionc}'omputed bytheILPsolverispr}'eservedifthec}'onstraintps:SDict begin H.S endps:SDict begin 12 H.A endOps:SDict begin [ /View [/XYZ H.V] /Dest (equation.14) cvn H.B /DEST pdfmark endG'^ ῍F:r,r2R;Flt2TZN^ 7VH*i2MtkZxi;r;t`#=xi;r;t+18(14)isadde}'d.Theconstraintfurtherimpliesthatps:SDict begin H.S endps:SDict begin 12 H.A endOps:SDict begin [ /View [/XYZ H.V] /Dest (equation.15) cvn H.B /DEST pdfmark endqˍS-^ ῍Rar,r2R;Rrt2TfT۟^ 7bNQi2Mtw"ci;r;t`#=0:8(15)#ProQof:}!SuppGose[forsomer2ЎRDz,\mt2Tc,i2LtXan[opti-malsolutiontotheILP|existswithxi;r;t6=`ֵxi;r;t1.Ifxi;r;tu=4j1,gTthen0iwasmovedattimetoutofregisterr2I׵RDz.]Ifȵwi;t y=0,dpGerfomingthemoveearlierattimet/1Pgmakesnodi erenceatall(sincethetempGoraryisdeadsXandonlyassignedaregisterpro-forma).SuppGosewi;t =b.]Inthatcase,%$imustbGemovingfromthestackintoKaregisterorviceversa,(sincemovingifromoneregisterA;r52R$tf[ٸgtoanotherregisterrG^0n2R$tfr;[ٸgmustLbGeauselessmoveinanarchitecturewithorthog-onalregistersandcanthusnotoGccurinanoptimalcolor push Black4 color popps:SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end⍠?color push Blackcolor push gray 0ps:SDict begin H.S endcolor push gray 0 color popps:SDict begin H.R endJps:SDict begin [ /View [/XYZ H.V] /Dest (page.5) cvn H.B /DEST pdfmark end color pop color popsolution.color push rgb 1 0 0ps:SDict begin H.S end^1|sps:SDict begin 12 H.L endqps:SDict begin [ /Subtype /Link /Dest (Hfootnote.1) cvn /H /I /Border [0 0 0] /Color [1 0 0] H.B /ANN pdfmark end color pop sAssume,thatiismoved,fromYtoregister r/2jR&ȸf[ٸg.G_ThenthismovecanbGedeferreduntiltimegtE+1(changetothepreviousoptimalsolutionre-quiresTsettingxi;r;t"=:0andxi;;t=1).@ThisisalwayspGossible,[rsinceZ9deferringthemoveZ9onlyreducesregisterpressure(\˲hasnospaceconstraint).tSimilarly*,+ifthemoveȘisfromregisterrinR3/hf[ٸgto,themoveȘcanbGepGerformedlearlierattE1,againlstrictlyreducingreg-isterApressure.kOThesituationforxi;r;t`#=0isanalogous., msam10Bps:SDict begin H.S endps:SDict begin 12 H.A endRps:SDict begin [ /View [/XYZ H.V] /Dest (subsection.3.5) cvn H.B /DEST pdfmark end3.51GraphTcoloringform9ulationuTTheBILPformulationpresentedsofaronlymoGdelsalinearlinstructionsequenceusingtimestampstn2Tc.Inpractice,yhowever,control- owrisoftennotlinear.TLin-earQmoGdelsoftheinstructionsequenceandinparticularoflive-timesoftempGorariesresultinsuboptimalregis-ter_alloGcations.Thealgorithmspresentedsofarareakinto0linear-scanregisteralloGcation[color push rgb 0 1 0ps:SDict begin H.S endcolor push rgb 0 1 024 color pop 9ps:SDict begin H.R end qps:SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (cite.linear) cvn H.B /ANN pdfmark end color pop ].1fBymodelingtimerelationshipslinagraph,theresultingregisteralloGcationalgorithm,isastrongerformulationofthewell-knowngraphcoloringalgorithms[color push rgb 0 1 0ps:SDict begin H.S endcolor push rgb 0 1 07 color pop9ps:SDict begin H.R endsps:SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (cite.coloring) cvn H.B /ANN pdfmark end color pop],(0onlythatthisapproachintegratesmspillingandtakesvqariablesizetempGorariesintoUUconsideration. Let(N;E)bGethecontrol- owgraphwithnodesn2Nǵanddirectededges(a;b)2NmN.:Notethatthecontrol- owSlgraphdoGesnotusebasicblocks;xinstead,eachEindividualstatementcorrespGondstotwonoGdesinthe_Pgraph,aonefortheregisteralloGcationbeforethein-structionandanotheronefortheregisteralloGcationaf-terUUtheinstruction(seeFigurecolor push rgb 1 0 0ps:SDict begin H.S endcolor push rgb 1 0 01 color pop9ps:SDict begin H.R endnps:SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (figure.1) cvn H.B /ANN pdfmark end color pop). LetBwi;n l bGethenumberBofbitsthattemporaryi2VrequiresatnoGdenPh2N.hLetpred(n)=fpj(p;n)2EgbGeG)thesetofimmediatepredecessorsofnodenZ"2N.Letlr;nSbGethecostofspillingtoorfromregisterr≲atnoGden.-~Theideabehindaddingthedimensionn/a2NtoistoallowthespGeci cationofahighercostforcodewithinloGops.LetSi;n}bethespill-costfortemporaryig2Vat\noGdeng2N.The\spill-costatnodeng2NsӲforanoGdepreceedinganinstructionisthecostofloadingtheԜvqaluefromthestackifthetempGoraryisaccessedbythepinstruction.[&Thespill-costforanoGdesucceedinganinstructionXisthecostofspillingthetempGorarytothestack.qTheUU nalversionoftheILPproblemisthen: acolor push Blackffff_ J= "5-:Aacmr61Lܟcolor push gray 0ps:SDict begin H.S endcolor push gray 0 color popps:SDict begin H.R endOps:SDict begin [ /View [/XYZ H.V] /Dest (Hfootnote.1) cvn H.B /DEST pdfmark end color popLNotea6δ xydash10C;mC28yC\5'C22C,ʟ/=CՁ,HC~8)SCWAQ}}WAֹ{ZY>{]^;{a;8{d^5{g2 {k ҟ/{nb-#{KEIn29M[̴AD7DPU˟eP"efd]In3O[̴SaU,BOeefdKElѿn4r'xQ!!nd+rCk }CgCd^P}!Caz-C]w9CZXutECW,qQC]lѿn5Q}}HB{֍TM{-j`X{Glc{$}xn{2zy{ޟw{߻t{sQn6{נ8R ,Eb}TxנxfdsQn+n7xFigureg1:Ncolor push gray 0ps:SDict begin H.S endcolor push gray 0 color popps:SDict begin H.R endLps:SDict begin [ /View [/XYZ H.V] /Dest (figure.1) cvn H.B /DEST pdfmark end color popNIllustrationoftherelationshipbGetweengthe noGdesUUn2Nlpandtheinstructions. color popermin-;{X ῍-߳i2V;,n2N>؟Si;n ު8xi;;n+ tX ῍ V׳i2V;lr,r2R;n2N% xr;n Ǹci;r;n8ps:SDict begin H.S endps:SDict begin 15 H.A endOps:SDict begin [ /View [/XYZ H.V] /Dest (equation.16) cvn H.B /DEST pdfmark end8(16) {&suchUUthatiA?^7_r,r2Rf-g;gIn2N X 7i2V:ixi;r;n8wi;nE6b8ps:SDict begin H.S endps:SDict begin 15 H.A endOps:SDict begin [ /View [/XYZ H.V] /Dest (equation.17) cvn H.B /DEST pdfmark end8(17) D^ ῍\ӳi2V;Kn2NX 76r72RAϵxi;r;nE618ps:SDict begin H.S endps:SDict begin 15 H.A endOps:SDict begin [ /View [/XYZ H.V] /Dest (equation.18) cvn H.B /DEST pdfmark end8(18) Kč$Q^ ῍i2VX;r,r2R;"'n2NG`^ j;qp2pr7ed(n)iIJ(xi;r;n8xi;r;p)+ci;r;nE608ps:SDict begin H.S endps:SDict begin 15 H.A endOps:SDict begin [ /View [/XYZ H.V] /Dest (equation.19) cvn H.B /DEST pdfmark end8(19)$Q^ ῍i2VX;r,r2R;"'n2NG`^ j;qp2pr7ed(n)iIJ(xi;r;p8xi;r;n3)+ci;r;nE608ps:SDict begin H.S endps:SDict begin 15 H.A endOps:SDict begin [ /View [/XYZ H.V] /Dest (equation.20) cvn H.B /DEST pdfmark end8(20)oa ^ ῍g%8i2VX;r,r2R;mhn2N*xi;r;nLK2f0;1g8ps:SDict begin H.S endps:SDict begin 15 H.A endOps:SDict begin [ /View [/XYZ H.V] /Dest (equation.21) cvn H.B /DEST pdfmark end8(21)pJ^ ῍hyi2VX;r,r2R;n n2Nkci;r;nLK2f0;1g8ps:SDict begin H.S endps:SDict begin 15 H.A endOps:SDict begin [ /View [/XYZ H.V] /Dest (equation.22) cvn H.B /DEST pdfmark end8(22)' OptimizationsTforgraphcoloringform9ulation gps:SDict begin H.S endps:SDict begin 12 H.A endNps:SDict begin [ /View [/XYZ H.V] /Dest (section*.2) cvn H.B /DEST pdfmark end 9Thesearchspacereductionfromcolor push rgb 1 0 0ps:SDict begin H.S endcolor push rgb 1 0 03.4 color pop 9ps:SDict begin H.R end tps:SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.3.4) cvn H.B /ANN pdfmark end color poponlyappliesfor linearCsequencesofcoGdesincemovingamoveacrossabranchmayincreasethetotalnumbGerofmoves.VF*ur-thermore,0the searchspacereductionassumesthatr;nisconstantforsuchlinearcoGdesequences,butconsider-ing%thatr;n moGdelstheimpactofloops,thisassump-tionCshouldbGealwaysCholdinpractice.=However,theoptimizationcanbGeappliedacrossbasicblocksfordeadvqariablesUU(wi;n l=0).color push Black5 color popps:SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end⍠?color push Blackcolor push gray 0ps:SDict begin H.S endcolor push gray 0 color popps:SDict begin H.R endJps:SDict begin [ /View [/XYZ H.V] /Dest (page.6) cvn H.B /DEST pdfmark end color pop color popvps:SDict begin H.S endps:SDict begin 12 H.A endRps:SDict begin [ /View [/XYZ H.V] /Dest (subsection.3.6) cvn H.B /DEST pdfmark end 3.61Av9oidingTtobloQckregistersforspillinguTWheneveraspilledtempGoraryisusedbyaninstruction, itsmustbGeloadedintoaregisterbGeforeexecutionofthatinstruction.GBSimilarly*,JifaninstructionproGducesatem-pGorary)thatisnotallocatedaregisteratthatpoint,theresultumustbGetemporarilystoredinaregisterbeforeitcanIbGespilledontothestack.֢A*commontechniqueistoreserveafewregistersforaccessingthespilledtem-pGoraries.jThese6registersarethenexcludedfromtheordinary registeralloGcationprocess.TheformulationpresentedsofarassumesthatasucientnumbGerofsuchGregistersexistoutsideofthesetofavqailableregis-tersUURithatismadeavqailabletotheILPsolver. Suchvaformulationcanresultinsub-optimalregis-teralloGcation.DThereasonisthatiftheregistersusedforaccessingspilledtempGorariesweremadeavqailabletothe^registeralloGcator,a+spillingmightnotberequiredatall.!MAcpre-passcwithoutthesereservedregistersmaystillnotsbGesucienttocomputetheoptimalsolutionsincespillingmayonlybGerequiredforpartofthetime,(al-lowing forregisterstobGeassignedto(non-spilled)tem-pGoraries:atothertimes,@+evenwithinthesamefunction.F*urthermore,fwhyshouldalwaysthesameregistersbGeusedforspilledtempGoraries?gThefollowingformula-tionCrelaxestheseunnecessarilystrictrestrictionsandinsteadv6merelystatestheexactrequirementsforacor-rect]9registeralloGcationinordertoallowtheILP]7solvertoUUproGducebettersolutions. Letŵai;n(F2|f0;1gbGeaconditiontemporarythatin-dicates(rthatatnoGdentemporaryiisaccessed(usedorde ned).=#SincegSi;n ]1givesthecostforaccessingaspilledvqariable,LTthisJmeansai;n l:=1Zbr;n!listhenum-bGerofregistersassignedtoregistersatthatinstruction.color push Black color pop Equation\m(color push rgb 1 0 0ps:SDict begin H.S endcolor push rgb 1 0 023 color pop 9ps:SDict begin H.R end qps:SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (equation.23) cvn H.B /ANN pdfmark end color pop)describGes\mthatthenumber\mofallocated registersforbGoththespilledandregister-allocatedtem- pGoraries@mustnotexceedthetotalnumbGerofregisters.NotethatthisformulationdoGesnottakebit-wiseac- cess\toregistersintoaccount.BWhiletheILP4solution doGes>5allowassignmentoftempGorariestoallregistersat times,theformulationdoGesnotallowforthepGossibility ofalloGcatingjustsomebitsofregistersforthespilled tempGoraries.mTheIOproblemwithaformulationsupport- ingcthiskindofalloGcationisthatonewouldstillhave to ensurethatthespilledtempGorariesarenotscattered overimultipleregisters.Thisprecludesasimpleformu- lationUUoverthesumofallbitsassignedtotempGoraries. |sps:SDict begin H.S endps:SDict begin 12 H.A endRps:SDict begin [ /View [/XYZ H.V] /Dest (subsection.3.7) cvn H.B /DEST pdfmark end 93.71CoalescinguTCoalescingisanimpGortantstepinregisterallocationthatassignsthesameregistertotempGorariesthatareconnectedlbyamoveinordertoreducethenumbGerof3Xmoveinstructions. TheproblemwithcoalesingforpreviousregisteralloGcatorsisthatforcingtwotempo-rariesitobGeinthesameregistercanresultinadditionalspilling.:Inw[color push rgb 0 1 0ps:SDict begin H.S endcolor push rgb 0 1 011 color pop 9ps:SDict begin H.R end {ps:SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (cite.george96iterated) cvn H.B /ANN pdfmark end color pop ]analgorithmispresentedthatattemptstominimizethenumbGerofmoveswithoutintroducinganyUUadditionalspills. SincetheILPformulationspresentedinthispapGer(withTntheexceptionofthebasicformulationinsec-tioncolor push rgb 1 0 0ps:SDict begin H.S endcolor push rgb 1 0 03.1 color pop 9ps:SDict begin H.R end tps:SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.3.1) cvn H.B /ANN pdfmark end color pop)allowspillingtempGorariesonaper-instructionbasis,<they5donothave5theproblemofadditionalspillsdue+totoGoaggressivecoalesing.cWherein[color push rgb 0 1 0ps:SDict begin H.S endcolor push rgb 0 1 06 color pop9ps:SDict begin H.R end|ps:SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (cite.chaitin82register) cvn H.B /ANN pdfmark end color pop]themerg-ing"ofmove-connected"tempGorarieswouldforcethesetempGorariestobeeitherspilledorkeptinaregisterthroughout@theirlifetime,{theILPformulationallowsforpartialspilling.`LHenceitispGossibletomergealltempGorariesLUthatareconnectedbymovesupfront.nTheILPSsolverSwillinsertthenecessaryminimalnumbGerofmovesUUandspillsasrequired. AlsownotethatcoalesingreducesthetotalnumbGerofivqariablesandthusreducestheproblemsizeoftheILP*.2FromthatpGerspective,i-coalescingshouldalsobeconsideredXanoptimizationthatimprovesXtherun-timeofUUtheregisteralloGcationalgorithm.ps:SDict begin H.S endps:SDict begin 12 H.A endRps:SDict begin [ /View [/XYZ H.V] /Dest (subsection.3.8) cvn H.B /DEST pdfmark end 93.81RematerializationuTRematerialization[color push rgb 0 1 0ps:SDict begin H.S endcolor push rgb 0 1 04 color pop9ps:SDict begin H.R endps:SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (cite.briggs92rematerialization) cvn H.B /ANN pdfmark end color pop]isanimpGortanttechniquebasedon@therealizationthattempGorariesoftenhave@constantvqaluesXandthatloadingaconstantistypicallysignif-icantlycheapGerthanloadingthevqaluefrommemory*.SpillingӽofconstantscanthereforebGeavoided.Still,usingBaninstructiontoloadaconstantcanbGemoreexpGensive< thankeepingtheconstantinaregisterifaregisterˇisavqailable.\Thus,replacingˇallusesofacon-stantwithafreshtempGorarydoesnotresultinoptimalcoGde.color push Black6 color popxps:SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end⍠?color push Blackcolor push gray 0ps:SDict begin H.S endcolor push gray 0 color popps:SDict begin H.R endJps:SDict begin [ /View [/XYZ H.V] /Dest (page.7) cvn H.B /DEST pdfmark end color pop color pop:RematerializationocanbGehandledeasilybytheILP formulation.The_costofloadinganimmediatevqaluecan$bGemodeledexactlyinthegoalfunction.C3ThiscanbGeQachievedbymoGdifyingthegoalfunctiontoallowfortempGorary-speci cspillcosts.tLeti;r;n0ѲbGethecostofspillingtempGoraryi2Vډattimen2NtoorfromregisterɵrK2.RDz.#F*ortempGorariesofconstantvqalue,fthespill-cost+tothestackwouldbGezero. ZJThespill-costforloadingaconstant-vqaluetempGoraryfromthestackwould2bGethecostofaload-immediateinstruction.STheresulting?goalfunctionthatincorpGoratesthedi erenci-atedUUspill-costduetorematerializationisthen:ps:SDict begin H.S endps:SDict begin 12 H.A endOps:SDict begin [ /View [/XYZ H.V] /Dest (equation.26) cvn H.B /DEST pdfmark end 9ߎmin'X ῍(ai2V;'~}n2N9i!Si;n ު8xi;;n+ tX ῍ V׳i2V;lr,r2R;n2N% xi;r;nci;r;n8(26)ps:SDict begin H.S endps:SDict begin 12 H.A endRps:SDict begin [ /View [/XYZ H.V] /Dest (subsection.3.9) cvn H.B /DEST pdfmark endr3.91SummaryuTFigureAcolor push rgb 1 0 0ps:SDict begin H.S endcolor push rgb 1 0 02 color pop9ps:SDict begin H.R endnps:SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (figure.2) cvn H.B /ANN pdfmark end color popsummarizesthe nalformulationoftheILP|includingsuppGortforrematerialization,coalescing,control- owVgraph-basedvqariablelive-times,dreusingregistersforspillingandtempGoraryallocationandbit-wiseregisteralloGcation.TheproblemsizeintermsofmemoryisOG(jV8jbjRǸjjNj)./QThenumberofequationsisOG(jV8jkjRǸj(jNj+jEj))whereE53isthesetofedgesinUUthecontrol- owUUgraph.Mps:SDict begin H.S endps:SDict begin 12 H.A endMps:SDict begin [ /View [/XYZ H.V] /Dest (section.4) cvn H.B /DEST pdfmark end4?ResultsThe5ILP-basedregisteralloGcatorisimplementedforgcch[color push rgb 0 1 0ps:SDict begin H.S endcolor push rgb 0 1 02 color pop9ps:SDict begin H.R endnps:SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (cite.gcc) cvn H.B /ANN pdfmark end color pop]usingtheGNUhPLinearProgrammingKit[color push rgb 0 1 0ps:SDict begin H.S endcolor push rgb 0 1 01 color pop9ps:SDict begin H.R endtps:SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (cite.ilpsolver) cvn H.B /ANN pdfmark end color pop]."ThenumbGerofbitsrequiredforeachtemporaryatvqarioustimesLnintheexecutionisdeterminedusingtypGeinforma-tionRavqailablewithingcc.IThevariouscost-parametersintheILPformulationweresetusinggcc'sbuilt-incostestimationUUfunctions. gccI!wasinstrumentedtooutputanILPIformulationfor ltheregisteralloGcationwhichwasthenpassedtotheILPsolver.MYBinary coGdeisnotgenerated,sinceatargetplatformwithbit-wiseaccessdoGesnotyetexisttothebGestofourknowledge.ѿF*orthesamereasonrun-timepGerformance numbers cannotbegiven.Thebestper-formance6metricisthusthestaticcostestimategivenby2:color push gray 0ps:SDict begin H.S endcolor push gray 0 color popps:SDict begin H.R endLps:SDict begin [ /View [/XYZ H.V] /Dest (figure.2) cvn H.B /DEST pdfmark end color popThecompleteILP formulationwithallfea- tures.Mwi;n isIAthenumbGerIAoflivebitsofvqariableiatnoGdeXn.'Thecostofspillingitoorfromregisterr.uatnoGdenisgivenbyi;r;n3.BZThecostofaccessingthevqari-able-iatnoGdenifiisspilledatthatpointisSi;n ʲ.dTheresultingalloGcationisgivenbyxi;r;n=!1ifandonlyifvqariableiisstoredinregisterr3 atnoGden.5SpillingisindicatedUUusingthespGecialregister"2RDz. color pop ps:SDict begin H.S endps:SDict begin 12 H.A endRps:SDict begin [ /View [/XYZ H.V] /Dest (subsection.4.1) cvn H.B /DEST pdfmark end 4.11Benc9hmarksuTThe+pGerformanceoftheapproachisevqaluatedusing bGenchmarksfromtheMediabench[color push rgb 0 1 0ps:SDict begin H.S endcolor push rgb 0 1 015 color pop 9ps:SDict begin H.R end zps:SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (cite.lee97mediabench) cvn H.B /ANN pdfmark end color pop ],HNetBench[color push rgb 0 1 0ps:SDict begin H.S endcolor push rgb 0 1 019 color pop 9ps:SDict begin H.R end zps:SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (cite.memik01netbench) cvn H.B /ANN pdfmark end color pop ]and=Bitwise[color push rgb 0 1 0ps:SDict begin H.S endcolor push rgb 0 1 025 color pop 9ps:SDict begin H.R end ps:SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (cite.stephenson00bitwidth) cvn H.B /ANN pdfmark end color pop ]suites.ThesebGenchmarksareappropri-atejsincetheycorrespGondtothereal-worldapplicationswhere(hsub-wordaccesstotempGorariesiscommon.bF*ur-thermore,usingethesamebGenchmarksas[color push rgb 0 1 0ps:SDict begin H.S endcolor push rgb 0 1 026 color pop 9ps:SDict begin H.R end {ps:SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (cite.tallam03bitwidth) cvn H.B /ANN pdfmark end color pop ]enablescomparissonGwithpriorworkonbitwiseregisteralloGca-tion.InOadditionaCOFimplementationoftheRipGeMD160cryptographic#hashfunction[color push rgb 0 1 0ps:SDict begin H.S endcolor push rgb 0 1 08 color pop9ps:SDict begin H.R end|ps:SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (cite.dobbertin96ripemd) cvn H.B /ANN pdfmark end color pop]wasevqaluated.gThesefunctionresultsinthelargestILPproblemamongallfunctionsevqaluatedandthusgivesaninsightintothescalabilityUUofthepropGosedapproach.color push Black7 color popps:SDict begin /product where{pop product(Distiller)search{pop pop pop version(.)search{exch pop exch pop(3011)eq{gsave newpath 0 0 moveto closepath clip/Courier findfont 10 scalefont setfont 72 72 moveto(.)show grestore}if}{pop}ifelse}{pop}ifelse}if end⍠?color push Blackcolor push gray 0ps:SDict begin H.S endcolor push gray 0 color popps:SDict begin H.R endJps:SDict begin [ /View [/XYZ H.V] /Dest (page.8) cvn H.B /DEST pdfmark end color pop color popvps:SDict begin H.S endps:SDict begin 12 H.A endRps:SDict begin [ /View [/XYZ H.V] /Dest (subsection.4.2) cvn H.B /DEST pdfmark end 4.21ImpactToftheoptimizationsuTApplyingMQLemmacolor push rgb 1 0 0ps:SDict begin H.S endcolor push rgb 1 0 01 color pop9ps:SDict begin H.R endmps:SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (Lemma.1) cvn H.B /ANN pdfmark end color poptotheILPMOformulationreducesthe numbGer\ofproblemvqariablesbetween\66and98%.MostbGenchmarksseeareductionof85{90%.NotethatthereductionofproblemvqariablesdoGesnotonlyreducethespaceHrequirementsbutalsosigni cantlyreducesthesearchspacefortheILPsolver.cPerformingcoalescingeliminatesintherangeofXXtoYY%ofallvqariables,again=resultingindramaticimprovements=inscalabilityforUUthealgorithm.ps:SDict begin H.S endps:SDict begin 12 H.A endRps:SDict begin [ /View [/XYZ H.V] /Dest (subsection.4.3) cvn H.B /DEST pdfmark end 94.31P9erformanceFigure{color push rgb 1 0 0ps:SDict begin H.S endcolor push rgb 1 0 03 color pop9ps:SDict begin H.R endnps:SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (figure.3) cvn H.B /ANN pdfmark end color popshowsthecostasestimatedbythegoalfunc-tion(color push rgb 1 0 0ps:SDict begin H.S endcolor push rgb 1 0 026 color pop 9ps:SDict begin H.R end qps:SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (equation.26) cvn H.B /ANN pdfmark end color pop)*forthevqariousregisteralloGcationalgorithmsforUUallbGenchmarks. The65impactofchangingthetotalnumbGerofavqail-ableregistersisshowninFigurecolor push rgb 1 0 0ps:SDict begin H.S endcolor push rgb 1 0 04 color pop9ps:SDict begin H.R endnps:SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (figure.4) cvn H.B /ANN pdfmark end color popfortheRipGe160MDbGenchmark. Figure^color push rgb 1 0 0ps:SDict begin H.S endcolor push rgb 1 0 05 color pop9ps:SDict begin H.R endnps:SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (figure.5) cvn H.B /ANN pdfmark end color popliststhetimeittoGoktosolvethedi er-entpILPYproblemsusingtheGLPKILPsolver[color push rgb 0 1 0ps:SDict begin H.S endcolor push rgb 0 1 01 color pop9ps:SDict begin H.R endtps:SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (cite.ilpsolver) cvn H.B /ANN pdfmark end color pop]onaPentiumIVwith3Ghzand512MBmemoryrunningLinux42.4.18.dTheILPapproachisclearlytheslow-estnofthecomparedalgorithms,tbutthetimesarestillfeasiblewhencompilingsmallprogramsforembGeddedsystems{wherehighpGerformanceandlowper-unitcostareUUparamount.ps:SDict begin H.S endps:SDict begin 12 H.A endRps:SDict begin [ /View [/XYZ H.V] /Dest (subsection.4.4) cvn H.B /DEST pdfmark end 94.41DiscussionExtending2theILPformulationtoarchitectureswithnon-orthogonalA+registersets(likex86)isstraightfor-ward.جIfwnoGdenrequirestemporaryitobeinregis-tersdN3RDz,theconstraintP r72N ')xi;r;nLK=1issucienttomoGdeltherequirement.- TheILPoptimizationpre-sentedFinsectioncolor push rgb 1 0 0ps:SDict begin H.S endcolor push rgb 1 0 03.4 color pop 9ps:SDict begin H.R end tps:SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (subsection.3.4) cvn H.B /ANN pdfmark end color popneedstobGerestrictedfurtherfornon-orthogonal}architectures;pequation(color push rgb 1 0 0ps:SDict begin H.S endcolor push rgb 1 0 013 color pop 9ps:SDict begin H.R end qps:SDict begin [ /Color [1 0 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (equation.13) cvn H.B /ANN pdfmark end color pop)LneedstobGerestrictedUUtodeadtempGoraries:qǟps:SDict begin H.S endps:SDict begin 12 H.A endOps:SDict begin [ /View [/XYZ H.V] /Dest (equation.37) cvn H.B /DEST pdfmark endCC3M0፴tl:=fi2LtVjwi;t =0g:8(37) TheրpresentedalgorithmdoGesnottakeintra-register fragmentationsofspaceintoaccount.{Itisthustheo-reticallyDpGossiblethatthecomputedallocationsforagivenregisterwillresultinasituationwhereadditionalmoveswithinthesameregisterarerequiredtoensurethat atempGoraryisusingconsecutivebitsinthesameregister.UTheo/ILPo(doGescurrentlynotmodelthecostofsuch2moves.^]ThisisnotaseriousdrawbacksincesuchmovesshouldbGebothinexpensiveandextraordinarilyrareUUinpractice. TheI!presentationsofarhasfoGcusedonhardwarewithbit-wiseaccesstoregisters.-TheformulationcanbGe?adjustedforprocessorsthatmerelysupportsub-wordiaccess.#-AnexampleofactualhardwaresuppGortingcolor push Black color pop sub-wordaccesstoregistersistheAH/ALzsplitinthe Intel/8086.@Here,ߝthe16-bitAX registerissplitintotwo 8-bitvJregistersthatcanbGeaccessedindividually*.'nTheal- gorithms4presentedinthispapGercanbeappliedtothis proGcessorusingthenumberofbytesinsteadofbitsfor theUUwi;ts(withb=2).Notethatitistrivialtosimplifythepresentedalgo- rithmtohandlemoreordinaryarchitecturesthatonly suppGortword-sizeaccesstoregisters.(FF*orthosearchi- tectures,1theresultingregisteralloGcationwillstillbe optimal,butT-thedi erenceswithconventionalT-heuris- tics[color push rgb 0 1 0ps:SDict begin H.S endcolor push rgb 0 1 011 color pop 9ps:SDict begin H.R end {ps:SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (cite.george96iterated) cvn H.B /ANN pdfmark end color pop ]arelikelytobGelesspronounced.F*uturework will[havetocomparetheintegratedILPformulation withRnotonlytheseheuristicsbutalsowithapproaches thatcombineinstructionschedulingandregisteralloGca- tionUU[color push rgb 0 1 0ps:SDict begin H.S endcolor push rgb 0 1 012 color pop 9ps:SDict begin H.R end ops:SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (cite.isra) cvn H.B /ANN pdfmark end color pop ,color push rgb 0 1 0ps:SDict begin H.S endcolor push rgb 0 1 013 color pop9ps:SDict begin H.R endsps:SDict begin [ /Color [0 1 0] /H /I /Border [0 0 0] /Subtype /Link /Dest (cite.snowbird) cvn H.B /ANN pdfmark end color pop UW].F*uture[workwillhavetofoGcusonimprovingtheILP solutiontimes.\iUsingheuristicstocomputeafeasible register'~alloGcationandfeedingthisasaninputintothe ILPsolver'isonepaththatislikelytoresultinsig- ni cantRimprovements.Withthecurrentapproachthe solversometimesspGendsalotoftimemerelycomputing afeasiblesolution.6Anotherapproachistoavoidcom- putingÍanoptimalsolutionbyabGortingtheILPqsolver if͐thecomputationtakestoGolong.yThiswillallowthe user]rtoselectanappropriatetrade-o bGetween]rregister alloGcationUUqualityandcompile-time. ps:SDict begin H.S endps:SDict begin 12 H.A endMps:SDict begin [ /View [/XYZ H.V] /Dest (section.5) cvn H.B /DEST pdfmark end 95?ConclusionThis papGerintroducedanewILP-basedalgorithmforbit-wiseregisteralloGcation. ThepresentedformulationexpandsbtheexpressivenessofthemoGdelofexistingILP-based!registeralloGcationalgorithmsandhenceallowsformQbGettersolutions.Thealgorithmintegratesprevioustechniquesincludingcoalesing,Џspilling,rematerializa-tionIandregisterfamiliesandallowsfortempGorariestobGetemporarilyspilled.ZTheformulationsupportsusingtheȮsameregisterforaccesstospilledtempGorariesordi-recttempGoraryassignmentatdi erenttimes.AExpGeri-mentalbresultsshowthattheresultingILPbqproblemscanbGe'solvedbymoGdernof-the-shelfILPsoftware,0resultinginregisterassignmentsthatsubstanciallyimproveonassignmentsUUcomputedbystate-of-the-arttechniques.čReferences ps:SDict begin H.S endps:SDict begin 12 H.A endNps:SDict begin [ /View [/XYZ H.V] /Dest (section*.3) cvn H.B /DEST pdfmark endffps:SDict begin H.S endps:SDict begin 12 H.A endRps:SDict begin [ /View [/XYZ H.V] /Dest (cite.ilpsolver) cvn H.B /DEST pdfmark endcolor push Black[1] color popSymp}'osiumon cmmi10 0ercmmi7O \cmmi5K`y cmr10ٓRcmr7Zcmr5u cmex10libextractor-1.3/src/plugins/testdata/nsfe_classics.nsfe0000644000175000017500000002032612016742766020573 00000000000000NSFE INFO BANKJauthAdventures of Dr. Franken,TheMark Cooksey1993 Motivetime LTD.Gil_Galad=tlblBach: Prelude & Fugue In C MinorBeethoven: Moonlight Sonata DATAL   `ɀ( e>@/D>A/E>B/F>C/G>H/IJKLMstuv@@@` % % % %`)`J8JL@DHIH)JJJrh)`L䃦}s)Z! H)J@i@DiDhJJJJ rr{r @rL5ȩbȱ^Zȱȱ ȱnȱjfLȱVȱRNȱbȱ^Zȱȱ ȱnȱjfN=VR3ɀ)) ȱNViVRiRZRb^H'ɀȱbȱ^ZL$} ȱZbib^i^fcnjY))@))@))@)`#4j`߃ڃl)) )J ˄L) L閝@Dsiwi{LwH{h@DsJL%@ȱDJL%Ș}@@DiD`) `NMu5W'Ϧ\:ī|gS@. ɾwqj_Y녅 $'     # $m%,3 (?@ABCDGHK  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFQRSTUV %&'()*0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefvwxyy  !"#$%&'()*+,-./0123456789:;<=>?@AKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~(0 x'@'dX' @FX*@hdX*@X*G@.Tahoma;Lucidasans;Lucida Sans;Arial Unicode MSX*@dX*@XA'O*@MdxdxdxdXXTg@tX0Oq$ZP !''Nimbus Roman No9 L$' *Bitstream Vera Sans**.Tahoma;Lucidasans;Lucida Sans;Arial Unicode MS*'<. . O.  . . . c. (. . . w. Zlibextractor-1.3/src/plugins/gstreamer_extractor.c0000644000175000017500000015403012255653261017512 00000000000000/* This file is part of libextractor. (C) 2002, 2003, 2004, 2009, 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/gstreamer_extractor.c * @brief extracts metadata from files using GStreamer * @author LRN */ #include "platform.h" #include "extractor.h" #include #include #include #include #include #include GST_DEBUG_CATEGORY_STATIC (gstreamer_extractor); #define GST_CAT_DEFAULT gstreamer_extractor /** * Once discoverer has gone for that long without asking for data or * asking to seek, or giving us discovered info, assume it hanged up * and kill it. * In milliseconds. */ #define DATA_TIMEOUT 750 /* 750ms */ pthread_mutex_t pipe_mutex; /** * Struct mapping GSTREAMER tags to LE tags. */ struct KnownTag { /** * GStreamer tag. */ const char *gst_tag_id; /** * Corresponding LE tag. */ enum EXTRACTOR_MetaType le_type; }; /** * Struct mapping known tags (that do occur in GST API) to LE tags. */ static struct KnownTag __known_tags[] = { /** * GST_TAG_TITLE: * * commonly used title (string) * * The title as it should be displayed, e.g. 'The Doll House' */ {GST_TAG_TITLE, EXTRACTOR_METATYPE_TITLE}, /** * GST_TAG_TITLE_SORTNAME: * * commonly used title, as used for sorting (string) * * The title as it should be sorted, e.g. 'Doll House, The' */ {GST_TAG_TITLE_SORTNAME, EXTRACTOR_METATYPE_TITLE}, /** * GST_TAG_ARTIST: * * person(s) responsible for the recording (string) * * The artist name as it should be displayed, e.g. 'Jimi Hendrix' or * 'The Guitar Heroes' */ {GST_TAG_ARTIST, EXTRACTOR_METATYPE_ARTIST}, /** * GST_TAG_ARTIST_SORTNAME: * * person(s) responsible for the recording, as used for sorting (string) * * The artist name as it should be sorted, e.g. 'Hendrix, Jimi' or * 'Guitar Heroes, The' */ {GST_TAG_ARTIST_SORTNAME, EXTRACTOR_METATYPE_ARTIST}, /** * GST_TAG_ALBUM: * * album containing this data (string) * * The album name as it should be displayed, e.g. 'The Jazz Guitar' */ {GST_TAG_ALBUM, EXTRACTOR_METATYPE_ALBUM}, /** * GST_TAG_ALBUM_SORTNAME: * * album containing this data, as used for sorting (string) * * The album name as it should be sorted, e.g. 'Jazz Guitar, The' */ {GST_TAG_ALBUM_SORTNAME, EXTRACTOR_METATYPE_ALBUM}, /** * GST_TAG_ALBUM_ARTIST: * * The artist of the entire album, as it should be displayed. */ {GST_TAG_ALBUM_ARTIST, EXTRACTOR_METATYPE_ARTIST}, /** * GST_TAG_ALBUM_ARTIST_SORTNAME: * * The artist of the entire album, as it should be sorted. */ {GST_TAG_ALBUM_ARTIST_SORTNAME, EXTRACTOR_METATYPE_ARTIST}, /** * GST_TAG_COMPOSER: * * person(s) who composed the recording (string) */ {GST_TAG_COMPOSER, EXTRACTOR_METATYPE_COMPOSER}, /** * GST_TAG_DATE: * * date the data was created (#GDate structure) */ {GST_TAG_DATE, EXTRACTOR_METATYPE_CREATION_TIME}, /** * GST_TAG_DATE_TIME: * * date and time the data was created (#GstDateTime structure) */ {GST_TAG_DATE_TIME, EXTRACTOR_METATYPE_CREATION_TIME}, /** * GST_TAG_GENRE: * * genre this data belongs to (string) */ {GST_TAG_GENRE, EXTRACTOR_METATYPE_GENRE}, /** * GST_TAG_COMMENT: * * free text commenting the data (string) */ {GST_TAG_COMMENT, EXTRACTOR_METATYPE_COMMENT}, /** * GST_TAG_EXTENDED_COMMENT: * * key/value text commenting the data (string) * * Must be in the form of 'key=comment' or * 'key[lc]=comment' where 'lc' is an ISO-639 * language code. * * This tag is used for unknown Vorbis comment tags, * unknown APE tags and certain ID3v2 comment fields. */ {GST_TAG_EXTENDED_COMMENT, EXTRACTOR_METATYPE_COMMENT}, /** * GST_TAG_TRACK_NUMBER: * * track number inside a collection (unsigned integer) */ {GST_TAG_TRACK_NUMBER, EXTRACTOR_METATYPE_TRACK_NUMBER}, /** * GST_TAG_TRACK_COUNT: * * count of tracks inside collection this track belongs to (unsigned integer) */ {GST_TAG_TRACK_COUNT, EXTRACTOR_METATYPE_SONG_COUNT}, /** * GST_TAG_ALBUM_VOLUME_NUMBER: * * disc number inside a collection (unsigned integer) */ {GST_TAG_ALBUM_VOLUME_NUMBER, EXTRACTOR_METATYPE_DISC_NUMBER}, /** * GST_TAG_ALBUM_VOLUME_COUNT: * * count of discs inside collection this disc belongs to (unsigned integer) */ {GST_TAG_ALBUM_VOLUME_NUMBER, EXTRACTOR_METATYPE_DISC_COUNT}, /** * GST_TAG_LOCATION: * * Origin of media as a URI (location, where the original of the file or stream * is hosted) (string) */ {GST_TAG_LOCATION, EXTRACTOR_METATYPE_URL}, /** * GST_TAG_HOMEPAGE: * * Homepage for this media (i.e. artist or movie homepage) (string) */ {GST_TAG_HOMEPAGE, EXTRACTOR_METATYPE_URL}, /** * GST_TAG_DESCRIPTION: * * short text describing the content of the data (string) */ {GST_TAG_DESCRIPTION, EXTRACTOR_METATYPE_DESCRIPTION}, /** * GST_TAG_VERSION: * * version of this data (string) */ {GST_TAG_VERSION, EXTRACTOR_METATYPE_PRODUCT_VERSION}, /** * GST_TAG_ISRC: * * International Standard Recording Code - see http://www.ifpi.org/isrc/ (string) */ {GST_TAG_ISRC, EXTRACTOR_METATYPE_ISRC}, /** * GST_TAG_ORGANIZATION: * * organization (string) */ {GST_TAG_ORGANIZATION, EXTRACTOR_METATYPE_COMPANY}, /** * GST_TAG_COPYRIGHT: * * copyright notice of the data (string) */ {GST_TAG_COPYRIGHT, EXTRACTOR_METATYPE_COPYRIGHT}, /** * GST_TAG_COPYRIGHT_URI: * * URI to location where copyright details can be found (string) */ {GST_TAG_COPYRIGHT_URI, EXTRACTOR_METATYPE_COPYRIGHT}, /** * GST_TAG_ENCODED_BY: * * name of the person or organisation that encoded the file. May contain a * copyright message if the person or organisation also holds the copyright * (string) * * Note: do not use this field to describe the encoding application. Use * #GST_TAG_APPLICATION_NAME or #GST_TAG_COMMENT for that. */ {GST_TAG_ENCODED_BY, EXTRACTOR_METATYPE_ENCODED_BY}, /** * GST_TAG_CONTACT: * * contact information (string) */ {GST_TAG_CONTACT, EXTRACTOR_METATYPE_CONTACT_INFORMATION}, /** * GST_TAG_LICENSE: * * license of data (string) */ {GST_TAG_LICENSE, EXTRACTOR_METATYPE_LICENSE}, /** * GST_TAG_LICENSE_URI: * * URI to location where license details can be found (string) */ {GST_TAG_LICENSE_URI, EXTRACTOR_METATYPE_LICENSE}, /** * GST_TAG_PERFORMER: * * person(s) performing (string) */ {GST_TAG_PERFORMER, EXTRACTOR_METATYPE_PERFORMER}, /** * GST_TAG_DURATION: * * length in GStreamer time units (nanoseconds) (unsigned 64-bit integer) */ {GST_TAG_DURATION, EXTRACTOR_METATYPE_DURATION}, /** * GST_TAG_CODEC: * * codec the data is stored in (string) */ {GST_TAG_CODEC, EXTRACTOR_METATYPE_CODEC}, /** * GST_TAG_VIDEO_CODEC: * * codec the video data is stored in (string) */ {GST_TAG_VIDEO_CODEC, EXTRACTOR_METATYPE_VIDEO_CODEC}, /** * GST_TAG_AUDIO_CODEC: * * codec the audio data is stored in (string) */ {GST_TAG_AUDIO_CODEC, EXTRACTOR_METATYPE_AUDIO_CODEC}, /** * GST_TAG_SUBTITLE_CODEC: * * codec/format the subtitle data is stored in (string) */ {GST_TAG_SUBTITLE_CODEC, EXTRACTOR_METATYPE_SUBTITLE_CODEC}, /** * GST_TAG_CONTAINER_FORMAT: * * container format the data is stored in (string) */ {GST_TAG_CONTAINER_FORMAT, EXTRACTOR_METATYPE_CONTAINER_FORMAT}, /** * GST_TAG_BITRATE: * * exact or average bitrate in bits/s (unsigned integer) */ {GST_TAG_BITRATE, EXTRACTOR_METATYPE_BITRATE}, /** * GST_TAG_NOMINAL_BITRATE: * * nominal bitrate in bits/s (unsigned integer). The actual bitrate might be * different from this target bitrate. */ {GST_TAG_NOMINAL_BITRATE, EXTRACTOR_METATYPE_NOMINAL_BITRATE}, /** * GST_TAG_MINIMUM_BITRATE: * * minimum bitrate in bits/s (unsigned integer) */ {GST_TAG_MINIMUM_BITRATE, EXTRACTOR_METATYPE_MINIMUM_BITRATE}, /** * GST_TAG_MAXIMUM_BITRATE: * * maximum bitrate in bits/s (unsigned integer) */ {GST_TAG_MAXIMUM_BITRATE, EXTRACTOR_METATYPE_MAXIMUM_BITRATE}, /** * GST_TAG_SERIAL: * * serial number of track (unsigned integer) */ {GST_TAG_SERIAL, EXTRACTOR_METATYPE_SERIAL}, /** * GST_TAG_ENCODER: * * encoder used to encode this stream (string) */ {GST_TAG_ENCODER, EXTRACTOR_METATYPE_ENCODER}, /* New */ /** * GST_TAG_ENCODER_VERSION: * * version of the encoder used to encode this stream (unsigned integer) */ {GST_TAG_ENCODER_VERSION, EXTRACTOR_METATYPE_ENCODER_VERSION}, /** * GST_TAG_TRACK_GAIN: * * track gain in db (double) */ {GST_TAG_TRACK_GAIN, EXTRACTOR_METATYPE_TRACK_GAIN}, /** * GST_TAG_TRACK_PEAK: * * peak of the track (double) */ {GST_TAG_TRACK_PEAK, EXTRACTOR_METATYPE_TRACK_PEAK}, /** * GST_TAG_ALBUM_GAIN: * * album gain in db (double) */ {GST_TAG_ALBUM_GAIN, EXTRACTOR_METATYPE_ALBUM_GAIN}, /** * GST_TAG_ALBUM_PEAK: * * peak of the album (double) */ {GST_TAG_ALBUM_PEAK, EXTRACTOR_METATYPE_ALBUM_PEAK}, /** * GST_TAG_REFERENCE_LEVEL: * * reference level of track and album gain values (double) */ {GST_TAG_REFERENCE_LEVEL, EXTRACTOR_METATYPE_REFERENCE_LEVEL}, /** * GST_TAG_LANGUAGE_CODE: * * ISO-639-2 or ISO-639-1 code for the language the content is in (string) * * There is utility API in libgsttag in gst-plugins-base to obtain a translated * language name from the language code: gst_tag_get_language_name() */ {GST_TAG_LANGUAGE_CODE, EXTRACTOR_METATYPE_LANGUAGE}, /** * GST_TAG_LANGUAGE_NAME: * * Name of the language the content is in (string) * * Free-form name of the language the content is in, if a language code * is not available. This tag should not be set in addition to a language * code. It is undefined what language or locale the language name is in. */ {GST_TAG_LANGUAGE_NAME, EXTRACTOR_METATYPE_LANGUAGE}, /** * GST_TAG_IMAGE: * * image (sample) (sample taglist should specify the content type and preferably * also set "image-type" field as #GstTagImageType) */ {GST_TAG_IMAGE, EXTRACTOR_METATYPE_PICTURE}, /** * GST_TAG_PREVIEW_IMAGE: * * image that is meant for preview purposes, e.g. small icon-sized version * (sample) (sample taglist should specify the content type) */ {GST_TAG_IMAGE, EXTRACTOR_METATYPE_THUMBNAIL}, /** * GST_TAG_ATTACHMENT: * * generic file attachment (sample) (sample taglist should specify the content * type and if possible set "filename" to the file name of the * attachment) */ /* No equivalent, and none needed? */ /** * GST_TAG_BEATS_PER_MINUTE: * * number of beats per minute in audio (double) */ {GST_TAG_BEATS_PER_MINUTE, EXTRACTOR_METATYPE_BEATS_PER_MINUTE}, /** * GST_TAG_KEYWORDS: * * comma separated keywords describing the content (string). */ {GST_TAG_KEYWORDS, EXTRACTOR_METATYPE_KEYWORDS}, /** * GST_TAG_GEO_LOCATION_NAME: * * human readable descriptive location of where the media has been recorded or * produced. (string). */ {GST_TAG_GEO_LOCATION_NAME, EXTRACTOR_METATYPE_LOCATION_NAME}, /** * GST_TAG_GEO_LOCATION_LATITUDE: * * geo latitude location of where the media has been recorded or produced in * degrees according to WGS84 (zero at the equator, negative values for southern * latitudes) (double). */ {GST_TAG_GEO_LOCATION_LATITUDE, EXTRACTOR_METATYPE_GPS_LATITUDE}, /** * GST_TAG_GEO_LOCATION_LONGITUDE: * * geo longitude location of where the media has been recorded or produced in * degrees according to WGS84 (zero at the prime meridian in Greenwich/UK, * negative values for western longitudes). (double). */ {GST_TAG_GEO_LOCATION_LONGITUDE, EXTRACTOR_METATYPE_GPS_LONGITUDE}, /** * GST_TAG_GEO_LOCATION_ELEVATION: * * geo elevation of where the media has been recorded or produced in meters * according to WGS84 (zero is average sea level) (double). */ {GST_TAG_GEO_LOCATION_ELEVATION, EXTRACTOR_METATYPE_LOCATION_ELEVATION}, /** * GST_TAG_GEO_LOCATION_COUNTRY: * * The country (english name) where the media has been produced (string). */ {GST_TAG_GEO_LOCATION_COUNTRY, EXTRACTOR_METATYPE_LOCATION_COUNTRY}, /** * GST_TAG_GEO_LOCATION_CITY: * * The city (english name) where the media has been produced (string). */ {GST_TAG_GEO_LOCATION_CITY, EXTRACTOR_METATYPE_LOCATION_CITY}, /** * GST_TAG_GEO_LOCATION_SUBLOCATION: * * A location 'smaller' than GST_TAG_GEO_LOCATION_CITY that specifies better * where the media has been produced. (e.g. the neighborhood) (string). * * This tag has been added as this is how it is handled/named in XMP's * Iptc4xmpcore schema. */ {GST_TAG_GEO_LOCATION_SUBLOCATION, EXTRACTOR_METATYPE_LOCATION_SUBLOCATION}, /** * GST_TAG_GEO_LOCATION_HORIZONTAL_ERROR: * * Represents the expected error on the horizontal positioning in * meters (double). */ {GST_TAG_GEO_LOCATION_HORIZONTAL_ERROR, EXTRACTOR_METATYPE_LOCATION_HORIZONTAL_ERROR}, /** * GST_TAG_GEO_LOCATION_MOVEMENT_SPEED: * * Speed of the capturing device when performing the capture. * Represented in m/s. (double) * * See also #GST_TAG_GEO_LOCATION_MOVEMENT_DIRECTION */ {GST_TAG_GEO_LOCATION_MOVEMENT_SPEED, EXTRACTOR_METATYPE_LOCATION_MOVEMENT_SPEED}, /** * GST_TAG_GEO_LOCATION_MOVEMENT_DIRECTION: * * Indicates the movement direction of the device performing the capture * of a media. It is represented as degrees in floating point representation, * 0 means the geographic north, and increases clockwise (double from 0 to 360) * * See also #GST_TAG_GEO_LOCATION_CAPTURE_DIRECTION */ {GST_TAG_GEO_LOCATION_MOVEMENT_DIRECTION, EXTRACTOR_METATYPE_LOCATION_MOVEMENT_DIRECTION}, /** * GST_TAG_GEO_LOCATION_CAPTURE_DIRECTION: * * Indicates the direction the device is pointing to when capturing * a media. It is represented as degrees in floating point representation, * 0 means the geographic north, and increases clockwise (double from 0 to 360) * * See also #GST_TAG_GEO_LOCATION_MOVEMENT_DIRECTION */ {GST_TAG_GEO_LOCATION_CAPTURE_DIRECTION, EXTRACTOR_METATYPE_LOCATION_CAPTURE_DIRECTION}, /** * GST_TAG_SHOW_NAME: * * Name of the show, used for displaying (string) */ {GST_TAG_SHOW_NAME, EXTRACTOR_METATYPE_SHOW_NAME}, /** * GST_TAG_SHOW_SORTNAME: * * Name of the show, used for sorting (string) */ {GST_TAG_SHOW_SORTNAME, EXTRACTOR_METATYPE_SHOW_NAME}, /** * GST_TAG_SHOW_EPISODE_NUMBER: * * Number of the episode within a season/show (unsigned integer) */ {GST_TAG_SHOW_EPISODE_NUMBER, EXTRACTOR_METATYPE_SHOW_EPISODE_NUMBER}, /** * GST_TAG_SHOW_SEASON_NUMBER: * * Number of the season of a show/series (unsigned integer) */ {GST_TAG_SHOW_SEASON_NUMBER, EXTRACTOR_METATYPE_SHOW_SEASON_NUMBER}, /** * GST_TAG_LYRICS: * * The lyrics of the media (string) */ {GST_TAG_LYRICS, EXTRACTOR_METATYPE_LYRICS}, /** * GST_TAG_COMPOSER_SORTNAME: * * The composer's name, used for sorting (string) */ {GST_TAG_COMPOSER_SORTNAME, EXTRACTOR_METATYPE_COMPOSER}, /** * GST_TAG_GROUPING: * * Groups together media that are related and spans multiple tracks. An * example are multiple pieces of a concerto. (string) */ {GST_TAG_GROUPING, EXTRACTOR_METATYPE_GROUPING}, /** * GST_TAG_USER_RATING: * * Rating attributed by a person (likely the application user). * The higher the value, the more the user likes this media * (unsigned int from 0 to 100) */ {GST_TAG_USER_RATING, EXTRACTOR_METATYPE_POPULARITY_METER}, /** * GST_TAG_DEVICE_MANUFACTURER: * * Manufacturer of the device used to create the media (string) */ {GST_TAG_DEVICE_MANUFACTURER, EXTRACTOR_METATYPE_DEVICE_MANUFACTURER}, /** * GST_TAG_DEVICE_MODEL: * * Model of the device used to create the media (string) */ {GST_TAG_DEVICE_MODEL, EXTRACTOR_METATYPE_DEVICE_MODEL}, /** * GST_TAG_APPLICATION_NAME: * * Name of the application used to create the media (string) */ {GST_TAG_APPLICATION_NAME, EXTRACTOR_METATYPE_CREATED_BY_SOFTWARE}, /** * GST_TAG_APPLICATION_DATA: * * Arbitrary application data (sample) * * Some formats allow applications to add their own arbitrary data * into files. This data is application dependent. */ /* No equivalent, and none needed (not really metadata)? */ /** * GST_TAG_IMAGE_ORIENTATION: * * Represents the 'Orientation' tag from EXIF. Defines how the image * should be rotated and mirrored for display. (string) * * This tag has a predefined set of allowed values: * "rotate-0" * "rotate-90" * "rotate-180" * "rotate-270" * "flip-rotate-0" * "flip-rotate-90" * "flip-rotate-180" * "flip-rotate-270" * * The naming is adopted according to a possible transformation to perform * on the image to fix its orientation, obviously equivalent operations will * yield the same result. * * Rotations indicated by the values are in clockwise direction and * 'flip' means an horizontal mirroring. */ {GST_TAG_IMAGE_ORIENTATION, EXTRACTOR_METATYPE_ORIENTATION} }; /** * Struct mapping named tags (that don't occur in GST API) to LE tags. */ struct NamedTag { /** * tag. */ const char *tag; /** * Corresponding LE tag. */ enum EXTRACTOR_MetaType le_type; }; /** * Mapping from GST tag names to LE types for tags that are not in * the public GST API. */ struct NamedTag named_tags[] = { { "FPS", EXTRACTOR_METATYPE_FRAME_RATE }, { "PLAY_COUNTER", EXTRACTOR_METATYPE_PLAY_COUNTER }, { "RATING", EXTRACTOR_METATYPE_RATING }, { "SUMMARY", EXTRACTOR_METATYPE_SUMMARY }, { "SUBJECT", EXTRACTOR_METATYPE_SUBJECT }, { "MOOD", EXTRACTOR_METATYPE_MOOD }, { "LEAD_PERFORMER", EXTRACTOR_METATYPE_PERFORMER }, { "DIRECTOR", EXTRACTOR_METATYPE_MOVIE_DIRECTOR }, { "WRITTEN_BY", EXTRACTOR_METATYPE_WRITER }, { "PRODUCER", EXTRACTOR_METATYPE_PRODUCER }, { "PUBLISHER", EXTRACTOR_METATYPE_PUBLISHER }, { "ORIGINAL/ARTIST", EXTRACTOR_METATYPE_ORIGINAL_ARTIST }, { "ORIGINAL/TITLE", EXTRACTOR_METATYPE_ORIGINAL_TITLE }, { NULL, EXTRACTOR_METATYPE_UNKNOWN } }; /** * */ enum CurrentStreamType { /** * */ STREAM_TYPE_NONE = 0, /** * */ STREAM_TYPE_AUDIO = 1, /** * */ STREAM_TYPE_VIDEO = 2, /** * */ STREAM_TYPE_SUBTITLE = 3, /** * */ STREAM_TYPE_CONTAINER = 4, /** * */ STREAM_TYPE_IMAGE = 5 }; /** * Closure we pass when processing a request. */ struct PrivStruct { /** * Current read-offset in the 'ec' context (based on our read/seek calls). */ guint64 offset; /** * Overall size of the file we're processing, UINT64_MAX if unknown. */ uint64_t length; /** * */ GstElement *source; /** * Extraction context for IO on the underlying data. */ struct EXTRACTOR_ExtractContext *ec; /** * Glib main loop. */ GMainLoop *loop; /** * Discoverer object we are using. */ GstDiscoverer *dc; /** * Location for building the XML 'table of contents' (EXTRACTOR_METATYPE_TOC) for * the input. Used only during 'send_info'. */ gchar *toc; /** * Length of the 'toc' string. */ size_t toc_length; /** * Current position (used when creating the 'toc' string). */ size_t toc_pos; /** * Identifier of the timeout event source */ guint timeout_id; /** * Counter used to determine our current depth in the TOC hierarchy. */ int toc_depth; /** * */ enum CurrentStreamType st; /** * Last return value from the meta data processor. Set to * 1 to abort, 0 to continue extracting. */ int time_to_leave; /** * TOC generation is executed in two phases. First phase determines * the size of the string and the second phase actually does the * 'printing' (string construction). This bit is TRUE if we are * in the 'printing' phase. */ gboolean toc_print_phase; }; /** * */ static GQuark *audio_quarks; /** * */ static GQuark *video_quarks; /** * */ static GQuark *subtitle_quarks; /** * */ static GQuark duration_quark; static gboolean _data_timeout (struct PrivStruct *ps) { GST_ERROR ("GstDiscoverer I/O timed out"); ps->timeout_id = 0; g_main_loop_quit (ps->loop); return FALSE; } /** * Implementation of GstElement's "need-data" callback. Reads data from * the extraction context and passes it to GStreamer. * * @param appsrc the GstElement for which we are implementing "need-data" * @param size number of bytes requested * @param ps our execution context */ static void feed_data (GstElement * appsrc, guint size, struct PrivStruct * ps) { ssize_t data_len; uint8_t *le_data; guint accumulated; GstMemory *mem; GstMapInfo mi; GstBuffer *buffer; GST_DEBUG ("Request %u bytes", size); if (ps->timeout_id > 0) g_source_remove (ps->timeout_id); ps->timeout_id = g_timeout_add (DATA_TIMEOUT, (GSourceFunc) _data_timeout, ps); if ( (ps->length > 0) && (ps->offset >= ps->length) ) { /* we are at the EOS, send end-of-stream */ gst_app_src_end_of_stream (GST_APP_SRC (ps->source)); return; } if (ps->length > 0 && ps->offset + size > ps->length) size = ps->length - ps->offset; mem = gst_allocator_alloc (NULL, size, NULL); if (!gst_memory_map (mem, &mi, GST_MAP_WRITE)) { gst_memory_unref (mem); GST_DEBUG ("Failed to map the memory"); gst_app_src_end_of_stream (GST_APP_SRC (ps->source)); return; } accumulated = 0; data_len = 1; pthread_mutex_lock (&pipe_mutex); while ( (accumulated < size) && (data_len > 0) ) { data_len = ps->ec->read (ps->ec->cls, (void **) &le_data, size - accumulated); if (data_len > 0) { memcpy (&mi.data[accumulated], le_data, data_len); accumulated += data_len; } } pthread_mutex_unlock (&pipe_mutex); gst_memory_unmap (mem, &mi); if (size == accumulated) { buffer = gst_buffer_new (); gst_buffer_append_memory (buffer, mem); /* we need to set an offset for random access */ GST_BUFFER_OFFSET (buffer) = ps->offset; GST_BUFFER_OFFSET_END (buffer) = ps->offset + size; GST_DEBUG ("feed buffer %p, offset %" G_GUINT64_FORMAT "-%u", buffer, ps->offset, size); gst_app_src_push_buffer (GST_APP_SRC (ps->source), buffer); ps->offset += size; } else { gst_memory_unref (mem); gst_app_src_end_of_stream (GST_APP_SRC (ps->source)); ps->offset = UINT64_MAX; /* set to invalid value */ } if (ps->timeout_id > 0) g_source_remove (ps->timeout_id); ps->timeout_id = g_timeout_add (DATA_TIMEOUT, (GSourceFunc) _data_timeout, ps); } /** * Implementation of GstElement's "seek-data" callback. Seeks to a new * position in the extraction context. * * @param appsrc the GstElement for which we are implementing "need-data" * @param position new desired absolute position in the file * @param ps our execution context * @return TRUE if seeking succeeded, FALSE if not */ static gboolean seek_data (GstElement * appsrc, guint64 position, struct PrivStruct * ps) { GST_DEBUG ("seek to offset %" G_GUINT64_FORMAT, position); pthread_mutex_lock (&pipe_mutex); ps->offset = ps->ec->seek (ps->ec->cls, position, SEEK_SET); pthread_mutex_unlock (&pipe_mutex); if (ps->timeout_id > 0) g_source_remove (ps->timeout_id); ps->timeout_id = g_timeout_add (DATA_TIMEOUT, (GSourceFunc) _data_timeout, ps); return ps->offset == position; } /** * FIXME * * @param field_id FIXME * @param value FIXME * @param user_data our 'struct PrivStruct' * @return TRUE to continue processing, FALSE to abort */ static gboolean send_structure_foreach (GQuark field_id, const GValue *value, gpointer user_data) { struct PrivStruct *ps = user_data; gchar *str; const gchar *field_name = g_quark_to_string (field_id); GType gst_fraction = GST_TYPE_FRACTION; GQuark *quark; switch (ps->st) { case STREAM_TYPE_AUDIO: for (quark = audio_quarks; *quark != 0; quark++) if (*quark == field_id) return TRUE; break; case STREAM_TYPE_VIDEO: case STREAM_TYPE_IMAGE: for (quark = video_quarks; *quark != 0; quark++) if (*quark == field_id) return TRUE; break; case STREAM_TYPE_SUBTITLE: for (quark = subtitle_quarks; *quark != 0; quark++) if (*quark == field_id) return TRUE; break; case STREAM_TYPE_CONTAINER: case STREAM_TYPE_NONE: break; } switch (G_VALUE_TYPE (value)) { case G_TYPE_STRING: str = g_value_dup_string (value); break; case G_TYPE_UINT: case G_TYPE_INT: case G_TYPE_DOUBLE: case G_TYPE_BOOLEAN: str = gst_value_serialize (value); break; default: if (G_VALUE_TYPE (value) == gst_fraction) { str = gst_value_serialize (value); break; } /* This is a potential source of invalid characters */ /* And it also might attempt to serialize binary data - such as images. */ str = gst_value_serialize (value); g_free (str); str = NULL; break; } if (NULL != str) { unsigned int i; for (i=0; NULL != named_tags[i].tag; i++) if (0 == strcmp (named_tags[i].tag, field_name)) { ps->time_to_leave = ps->ec->proc (ps->ec->cls, "gstreamer", named_tags[i].le_type, EXTRACTOR_METAFORMAT_UTF8, "text/plain", (const char *) str, strlen (str) + 1); g_free (str); str = NULL; break; } } if (NULL != str) { gchar *senddata = g_strdup_printf ("%s=%s", field_name, str); ps->time_to_leave = ps->ec->proc (ps->ec->cls, "gstreamer", EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", (const char *) senddata, strlen (senddata) + 1); g_free (senddata); } g_free (str); return ! ps->time_to_leave; } /** * FIXME * * @param info FIXME * @param ps processing context * @return FALSE to continue processing, TRUE to abort */ static gboolean send_audio_info (GstDiscovererAudioInfo *info, struct PrivStruct *ps) { gchar *tmp; const gchar *ctmp; guint u; ctmp = gst_discoverer_audio_info_get_language (info); if (ctmp) if ((ps->time_to_leave = ps->ec->proc (ps->ec->cls, "gstreamer", EXTRACTOR_METATYPE_AUDIO_LANGUAGE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", (const char *) ctmp, strlen (ctmp) + 1))) return TRUE; u = gst_discoverer_audio_info_get_channels (info); if (u > 0) { tmp = g_strdup_printf ("%u", u); ps->time_to_leave = ps->ec->proc (ps->ec->cls, "gstreamer", EXTRACTOR_METATYPE_CHANNELS, EXTRACTOR_METAFORMAT_UTF8, "text/plain", (const char *) tmp, strlen (tmp) + 1); g_free (tmp); if (ps->time_to_leave) return TRUE; } u = gst_discoverer_audio_info_get_sample_rate (info); if (u > 0) { tmp = g_strdup_printf ("%u", u); ps->time_to_leave = ps->ec->proc (ps->ec->cls, "gstreamer", EXTRACTOR_METATYPE_SAMPLE_RATE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", (const char *) tmp, strlen (tmp) + 1); g_free (tmp); if (ps->time_to_leave) return TRUE; } u = gst_discoverer_audio_info_get_depth (info); if (u > 0) { tmp = g_strdup_printf ("%u", u); ps->time_to_leave = ps->ec->proc (ps->ec->cls, "gstreamer", EXTRACTOR_METATYPE_AUDIO_DEPTH, EXTRACTOR_METAFORMAT_UTF8, "text/plain", (const char *) tmp, strlen (tmp) + 1); g_free (tmp); if (ps->time_to_leave) return TRUE; } u = gst_discoverer_audio_info_get_bitrate (info); if (u > 0) { tmp = g_strdup_printf ("%u", u); ps->time_to_leave = ps->ec->proc (ps->ec->cls, "gstreamer", EXTRACTOR_METATYPE_AUDIO_BITRATE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", (const char *) tmp, strlen (tmp) + 1); g_free (tmp); if (ps->time_to_leave) return TRUE; } u = gst_discoverer_audio_info_get_max_bitrate (info); if (u > 0) { tmp = g_strdup_printf ("%u", u); ps->time_to_leave = ps->ec->proc (ps->ec->cls, "gstreamer", EXTRACTOR_METATYPE_MAXIMUM_AUDIO_BITRATE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", (const char *) tmp, strlen (tmp) + 1); g_free (tmp); if (ps->time_to_leave) return TRUE; } return FALSE; } /** * FIXME * * @param info FIXME * @param ps processing context * @return FALSE to continue processing, TRUE to abort */ static int send_video_info (GstDiscovererVideoInfo *info, struct PrivStruct *ps) { gchar *tmp; guint u; guint u2; u = gst_discoverer_video_info_get_width (info); u2 = gst_discoverer_video_info_get_height (info); if ( (u > 0) && (u2 > 0) ) { tmp = g_strdup_printf ("%ux%u", u, u2); ps->time_to_leave = ps->ec->proc (ps->ec->cls, "gstreamer", EXTRACTOR_METATYPE_VIDEO_DIMENSIONS, EXTRACTOR_METAFORMAT_UTF8, "text/plain", (const char *) tmp, strlen (tmp) + 1); g_free (tmp); if (ps->time_to_leave) return TRUE; } u = gst_discoverer_video_info_get_depth (info); if (u > 0) { tmp = g_strdup_printf ("%u", u); ps->time_to_leave = ps->ec->proc (ps->ec->cls, "gstreamer", EXTRACTOR_METATYPE_VIDEO_DEPTH, EXTRACTOR_METAFORMAT_UTF8, "text/plain", (const char *) tmp, strlen (tmp) + 1); g_free (tmp); if (ps->time_to_leave) return TRUE; } u = gst_discoverer_video_info_get_framerate_num (info); u2 = gst_discoverer_video_info_get_framerate_denom (info); if ( (u > 0) && (u2 > 0) ) { tmp = g_strdup_printf ("%u/%u", u, u2); ps->time_to_leave = ps->ec->proc (ps->ec->cls, "gstreamer", EXTRACTOR_METATYPE_FRAME_RATE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", (const char *) tmp, strlen (tmp) + 1); g_free (tmp); if (ps->time_to_leave) return TRUE; } u = gst_discoverer_video_info_get_par_num (info); u2 = gst_discoverer_video_info_get_par_denom (info); if ( (u > 0) && (u2 > 0) ) { tmp = g_strdup_printf ("%u/%u", u, u2); ps->time_to_leave = ps->ec->proc (ps->ec->cls, "gstreamer", EXTRACTOR_METATYPE_PIXEL_ASPECT_RATIO, EXTRACTOR_METAFORMAT_UTF8, "text/plain", (const char *) tmp, strlen (tmp) + 1); g_free (tmp); if (ps->time_to_leave) return TRUE; } /* gst_discoverer_video_info_is_interlaced (info) I don't trust it... */ u = gst_discoverer_video_info_get_bitrate (info); if (u > 0) { tmp = g_strdup_printf ("%u", u); ps->time_to_leave = ps->ec->proc (ps->ec->cls, "gstreamer", EXTRACTOR_METATYPE_VIDEO_BITRATE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", (const char *) tmp, strlen (tmp) + 1); g_free (tmp); if (ps->time_to_leave) return TRUE; } u = gst_discoverer_video_info_get_max_bitrate (info); if (u > 0) { tmp = g_strdup_printf ("%u", u); ps->time_to_leave = ps->ec->proc (ps->ec->cls, "gstreamer", EXTRACTOR_METATYPE_MAXIMUM_VIDEO_BITRATE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", (const char *) tmp, strlen (tmp) + 1); g_free (tmp); if (ps->time_to_leave) return TRUE; } return FALSE; } /** * FIXME * * @param info FIXME * @param ps processing context * @return FALSE to continue processing, TRUE to abort */ static int send_subtitle_info (GstDiscovererSubtitleInfo *info, struct PrivStruct *ps) { const gchar *ctmp; ctmp = gst_discoverer_subtitle_info_get_language (info); if ( (NULL != ctmp) && (0 != (ps->time_to_leave = ps->ec->proc (ps->ec->cls, "gstreamer", EXTRACTOR_METATYPE_SUBTITLE_LANGUAGE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", (const char *) ctmp, strlen (ctmp) + 1))) ) return TRUE; return FALSE; } static void send_tag_foreach (const GstTagList * tags, const gchar * tag, gpointer user_data) { static struct KnownTag unknown_tag = {NULL, EXTRACTOR_METATYPE_UNKNOWN}; struct PrivStruct *ps = user_data; size_t i; size_t tagl = sizeof (__known_tags) / sizeof (struct KnownTag); const struct KnownTag *kt = NULL; GQuark tag_quark; guint vallen; GstSample *sample; if (ps->time_to_leave) return; for (i = 0; i < tagl; i++) { if (strcmp (__known_tags[i].gst_tag_id, tag) != 0) continue; kt = &__known_tags[i]; break; } if (kt == NULL) kt = &unknown_tag; vallen = gst_tag_list_get_tag_size (tags, tag); if (vallen == 0) return; tag_quark = g_quark_from_string (tag); for (i = 0; i < vallen; i++) { GValue val = { 0, }; const GValue *val_ref; gchar *str = NULL; val_ref = gst_tag_list_get_value_index (tags, tag, i); if (val_ref == NULL) { g_value_unset (&val); continue; } g_value_init (&val, G_VALUE_TYPE (val_ref)); g_value_copy (val_ref, &val); switch (G_VALUE_TYPE (&val)) { case G_TYPE_STRING: str = g_value_dup_string (&val); break; case G_TYPE_UINT: case G_TYPE_INT: case G_TYPE_DOUBLE: case G_TYPE_BOOLEAN: str = gst_value_serialize (&val); break; default: if (G_VALUE_TYPE (&val) == GST_TYPE_SAMPLE && (sample = gst_value_get_sample (&val))) { GstMapInfo mi; GstCaps *caps; caps = gst_sample_get_caps (sample); if (caps) { GstTagImageType imagetype; const GstStructure *info; GstBuffer *buf; const gchar *mime_type; enum EXTRACTOR_MetaType le_type; mime_type = gst_structure_get_name (gst_caps_get_structure (caps, 0)); info = gst_sample_get_info (sample); if ( (NULL == info) || (!gst_structure_get (info, "image-type", GST_TYPE_TAG_IMAGE_TYPE, &imagetype, NULL)) ) le_type = EXTRACTOR_METATYPE_PICTURE; else { switch (imagetype) { case GST_TAG_IMAGE_TYPE_NONE: case GST_TAG_IMAGE_TYPE_UNDEFINED: case GST_TAG_IMAGE_TYPE_FISH: case GST_TAG_IMAGE_TYPE_ILLUSTRATION: default: le_type = EXTRACTOR_METATYPE_PICTURE; break; case GST_TAG_IMAGE_TYPE_FRONT_COVER: case GST_TAG_IMAGE_TYPE_BACK_COVER: case GST_TAG_IMAGE_TYPE_LEAFLET_PAGE: case GST_TAG_IMAGE_TYPE_MEDIUM: le_type = EXTRACTOR_METATYPE_COVER_PICTURE; break; case GST_TAG_IMAGE_TYPE_LEAD_ARTIST: case GST_TAG_IMAGE_TYPE_ARTIST: case GST_TAG_IMAGE_TYPE_CONDUCTOR: case GST_TAG_IMAGE_TYPE_BAND_ORCHESTRA: case GST_TAG_IMAGE_TYPE_COMPOSER: case GST_TAG_IMAGE_TYPE_LYRICIST: le_type = EXTRACTOR_METATYPE_CONTRIBUTOR_PICTURE; break; case GST_TAG_IMAGE_TYPE_RECORDING_LOCATION: case GST_TAG_IMAGE_TYPE_DURING_RECORDING: case GST_TAG_IMAGE_TYPE_DURING_PERFORMANCE: case GST_TAG_IMAGE_TYPE_VIDEO_CAPTURE: le_type = EXTRACTOR_METATYPE_EVENT_PICTURE; break; case GST_TAG_IMAGE_TYPE_BAND_ARTIST_LOGO: case GST_TAG_IMAGE_TYPE_PUBLISHER_STUDIO_LOGO: le_type = EXTRACTOR_METATYPE_LOGO; break; } } buf = gst_sample_get_buffer (sample); gst_buffer_map (buf, &mi, GST_MAP_READ); ps->time_to_leave = ps->ec->proc (ps->ec->cls, "gstreamer", le_type, EXTRACTOR_METAFORMAT_BINARY, mime_type, (const char *) mi.data, mi.size); gst_buffer_unmap (buf, &mi); } } else if ((G_VALUE_TYPE (&val) == G_TYPE_UINT64) && (tag_quark == duration_quark)) { GstClockTime duration = (GstClockTime) g_value_get_uint64 (&val); if ((GST_CLOCK_TIME_IS_VALID (duration)) && (duration > 0)) str = g_strdup_printf ("%" GST_TIME_FORMAT, GST_TIME_ARGS (duration)); } else str = gst_value_serialize (&val); break; } if (NULL != str) { /* Discoverer internally uses some tags to provide streaminfo; * ignore these tags to avoid duplicates. * This MIGHT be fixed in new GStreamer versions, but won't affect * this code (we simply won't get the tags that we think we should skip). */ gboolean skip = FALSE; /* We have one tag-processing routine and use it for different * stream types. However, tags themselves don't know the type of the * stream they are attached to. We remember that before listing the * tags, and adjust LE type accordingly. */ enum EXTRACTOR_MetaType le_type = kt->le_type; switch (kt->le_type) { case EXTRACTOR_METATYPE_LANGUAGE: switch (ps->st) { case STREAM_TYPE_AUDIO: skip = TRUE; break; case STREAM_TYPE_SUBTITLE: skip = TRUE; break; case STREAM_TYPE_VIDEO: le_type = EXTRACTOR_METATYPE_VIDEO_LANGUAGE; break; default: break; } break; case EXTRACTOR_METATYPE_BITRATE: switch (ps->st) { case STREAM_TYPE_AUDIO: skip = TRUE; break; case STREAM_TYPE_VIDEO: skip = TRUE; break; default: break; } break; case EXTRACTOR_METATYPE_MAXIMUM_BITRATE: switch (ps->st) { case STREAM_TYPE_AUDIO: skip = TRUE; break; case STREAM_TYPE_VIDEO: skip = TRUE; break; default: break; } break; case EXTRACTOR_METATYPE_NOMINAL_BITRATE: switch (ps->st) { case STREAM_TYPE_AUDIO: skip = TRUE; break; case STREAM_TYPE_VIDEO: skip = TRUE; break; default: break; } break; case EXTRACTOR_METATYPE_IMAGE_DIMENSIONS: switch (ps->st) { case STREAM_TYPE_VIDEO: le_type = EXTRACTOR_METATYPE_VIDEO_DIMENSIONS; break; default: break; } break; case EXTRACTOR_METATYPE_DURATION: switch (ps->st) { case STREAM_TYPE_VIDEO: le_type = EXTRACTOR_METATYPE_VIDEO_DURATION; break; case STREAM_TYPE_AUDIO: le_type = EXTRACTOR_METATYPE_AUDIO_DURATION; break; case STREAM_TYPE_SUBTITLE: le_type = EXTRACTOR_METATYPE_SUBTITLE_DURATION; break; default: break; } break; case EXTRACTOR_METATYPE_UNKNOWN: /* Convert to "key=value" form */ { gchar *new_str; /* GST_TAG_EXTENDED_COMMENT is already in key=value form */ if ((0 != strcmp (tag, "extended-comment")) || !strchr (str, '=')) { new_str = g_strdup_printf ("%s=%s", tag, str); g_free (str); str = new_str; } } break; default: break; } if (!skip) ps->time_to_leave = ps->ec->proc (ps->ec->cls, "gstreamer", le_type, EXTRACTOR_METAFORMAT_UTF8, "text/plain", (const char *) str, strlen (str) + 1); } g_free (str); g_value_unset (&val); } } static void send_streams (GstDiscovererStreamInfo *info, struct PrivStruct *ps); static void send_stream_info (GstDiscovererStreamInfo * info, struct PrivStruct *ps) { const GstStructure *misc; GstCaps *caps; const GstTagList *tags; caps = gst_discoverer_stream_info_get_caps (info); if (GST_IS_DISCOVERER_AUDIO_INFO (info)) ps->st = STREAM_TYPE_AUDIO; else if (GST_IS_DISCOVERER_VIDEO_INFO (info)) ps->st = STREAM_TYPE_VIDEO; else if (GST_IS_DISCOVERER_SUBTITLE_INFO (info)) ps->st = STREAM_TYPE_SUBTITLE; else if (GST_IS_DISCOVERER_CONTAINER_INFO (info)) ps->st = STREAM_TYPE_CONTAINER; if (caps) { GstStructure *structure = gst_caps_get_structure (caps, 0); const gchar *structname = gst_structure_get_name (structure); if (g_str_has_prefix (structname, "image/")) ps->st = STREAM_TYPE_IMAGE; ps->time_to_leave = ps->ec->proc (ps->ec->cls, "gstreamer", EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", (const char *) structname, strlen (structname) + 1); if (!ps->time_to_leave) { gst_structure_foreach (structure, send_structure_foreach, ps); } gst_caps_unref (caps); } if (ps->time_to_leave) { ps->st = STREAM_TYPE_NONE; return; } misc = gst_discoverer_stream_info_get_misc (info); if (misc) { gst_structure_foreach (misc, send_structure_foreach, ps); } if (ps->time_to_leave) { ps->st = STREAM_TYPE_NONE; return; } tags = gst_discoverer_stream_info_get_tags (info); if (tags) { gst_tag_list_foreach (tags, send_tag_foreach, ps); } ps->st = STREAM_TYPE_NONE; if (ps->time_to_leave) return; if (GST_IS_DISCOVERER_AUDIO_INFO (info)) send_audio_info (GST_DISCOVERER_AUDIO_INFO (info), ps); else if (GST_IS_DISCOVERER_VIDEO_INFO (info)) send_video_info (GST_DISCOVERER_VIDEO_INFO (info), ps); else if (GST_IS_DISCOVERER_SUBTITLE_INFO (info)) send_subtitle_info (GST_DISCOVERER_SUBTITLE_INFO (info), ps); else if (GST_IS_DISCOVERER_CONTAINER_INFO (info)) { GList *child; GstDiscovererContainerInfo *c = GST_DISCOVERER_CONTAINER_INFO (info); GList *children = gst_discoverer_container_info_get_streams (c); for (child = children; (NULL != child) && (!ps->time_to_leave); child = child->next) { GstDiscovererStreamInfo *sinfo = child->data; /* send_streams () will unref it */ sinfo = gst_discoverer_stream_info_ref (sinfo); send_streams (sinfo, ps); } if (children) gst_discoverer_stream_info_list_free (children); } } static void send_streams (GstDiscovererStreamInfo *info, struct PrivStruct *ps) { GstDiscovererStreamInfo *next; while ( (NULL != info) && (! ps->time_to_leave) ) { send_stream_info (info, ps); next = gst_discoverer_stream_info_get_next (info); gst_discoverer_stream_info_unref (info); info = next; } } /** * Callback used to construct the XML 'toc'. * * @param tags FIXME * @param tag FIXME * @param user_data the 'struct PrivStruct' with the 'toc' string we are assembling */ static void send_toc_tags_foreach (const GstTagList * tags, const gchar * tag, gpointer user_data) { struct PrivStruct *ps = user_data; GValue val = { 0 }; gchar *topen, *str, *tclose; GType gst_fraction = GST_TYPE_FRACTION; gst_tag_list_copy_value (&val, tags, tag); switch (G_VALUE_TYPE (&val)) { case G_TYPE_STRING: str = g_value_dup_string (&val); break; case G_TYPE_UINT: case G_TYPE_INT: case G_TYPE_DOUBLE: str = gst_value_serialize (&val); break; default: if (G_VALUE_TYPE (&val) == gst_fraction) { str = gst_value_serialize (&val); break; } /* This is a potential source of invalid characters */ /* And it also might attempt to serialize binary data - such as images. */ str = gst_value_serialize (&val); g_free (str); str = NULL; break; } if (str != NULL) { topen = g_strdup_printf ("%*.*s<%s>", ps->toc_depth * 2, ps->toc_depth * 2, " ", tag); tclose = g_strdup_printf ("%*.*s\n", ps->toc_depth * 2, ps->toc_depth * 2, " ", tag); if (ps->toc_print_phase) ps->toc_pos += g_snprintf (&ps->toc[ps->toc_pos], ps->toc_length - ps->toc_pos, "%s%s%s", topen, str, tclose); else ps->toc_length += strlen (topen) + strlen (str) + strlen (tclose); g_free (topen); g_free (tclose); g_free (str); } g_value_unset (&val); } /** * Top-level callback used to construct the XML 'toc'. * * @param data the GstTocEntry we're processing * @param user_data the 'struct PrivStruct' with the 'toc' string we are assembling */ static void send_toc_foreach (gpointer data, gpointer user_data) { GstTocEntry *entry = data; struct PrivStruct *ps = user_data; GstTagList *tags; GList *subentries; gint64 start; gint64 stop; GstTocEntryType entype; gchar *s; entype = gst_toc_entry_get_entry_type (entry); if (GST_TOC_ENTRY_TYPE_INVALID == entype) return; gst_toc_entry_get_start_stop_times (entry, &start, &stop); s = g_strdup_printf ("%*.*s<%s start=\"%" GST_TIME_FORMAT "\" stop=\"%" GST_TIME_FORMAT"\">\n", ps->toc_depth * 2, ps->toc_depth * 2, " ", gst_toc_entry_type_get_nick (entype), GST_TIME_ARGS (start), GST_TIME_ARGS (stop)); if (ps->toc_print_phase) ps->toc_pos += g_snprintf (&ps->toc[ps->toc_pos], ps->toc_length - ps->toc_pos, "%s", s); else ps->toc_length += strlen (s); g_free (s); ps->toc_depth++; tags = gst_toc_entry_get_tags (entry); if (tags) { if (ps->toc_print_phase) ps->toc_pos += g_snprintf (&ps->toc[ps->toc_pos], ps->toc_length - ps->toc_pos, "%*.*s\n", ps->toc_depth * 2, ps->toc_depth * 2, " "); else ps->toc_length += strlen ("\n") + ps->toc_depth * 2; ps->toc_depth++; gst_tag_list_foreach (tags, &send_toc_tags_foreach, ps); ps->toc_depth--; if (ps->toc_print_phase) ps->toc_pos += g_snprintf (&ps->toc[ps->toc_pos], ps->toc_length - ps->toc_pos, "%*.*s\n", ps->toc_depth * 2, ps->toc_depth * 2, " "); else ps->toc_length += strlen ("\n") + ps->toc_depth * 2; } subentries = gst_toc_entry_get_sub_entries (entry); g_list_foreach (subentries, send_toc_foreach, ps); ps->toc_depth--; s = g_strdup_printf ("%*.*s\n", ps->toc_depth * 2, ps->toc_depth * 2, " ", gst_toc_entry_type_get_nick (entype)); if (ps->toc_print_phase) ps->toc_pos += g_snprintf (&ps->toc[ps->toc_pos], ps->toc_length - ps->toc_pos, "%s", s); else ps->toc_length += strlen (s); g_free (s); } /** * XML header for the table-of-contents meta data. */ #define TOC_XML_HEADER "\n" static void send_info (GstDiscovererInfo * info, struct PrivStruct *ps) { const GstToc *toc; gchar *s; GstDiscovererStreamInfo *sinfo; GstClockTime duration; GList *entries; duration = gst_discoverer_info_get_duration (info); if ((GST_CLOCK_TIME_IS_VALID (duration)) && (duration > 0)) { s = g_strdup_printf ("%" GST_TIME_FORMAT, GST_TIME_ARGS (duration)); if (s) ps->time_to_leave = ps->ec->proc (ps->ec->cls, "gstreamer", EXTRACTOR_METATYPE_DURATION, EXTRACTOR_METAFORMAT_UTF8, "text/plain", (const char *) s, strlen (s) + 1); g_free (s); } if (ps->time_to_leave) return; /* Disable this for now (i.e. only print per-stream tags) if ((tags = gst_discoverer_info_get_tags (info))) { gst_tag_list_foreach (tags, send_tag_foreach, ps); } */ if (ps->time_to_leave) return; if ((toc = gst_discoverer_info_get_toc (info))) { entries = gst_toc_get_entries (toc); ps->toc_print_phase = FALSE; ps->toc_length = 0; g_list_foreach (entries, &send_toc_foreach, ps); if (ps->toc_length > 0) { ps->toc_print_phase = TRUE; ps->toc_length += 1 + strlen (TOC_XML_HEADER); ps->toc = g_malloc (ps->toc_length); ps->toc_pos = 0; ps->toc_pos += g_snprintf (&ps->toc[ps->toc_pos], ps->toc_length - ps->toc_pos, "%s", TOC_XML_HEADER); g_list_foreach (entries, &send_toc_foreach, ps); ps->toc[ps->toc_length - 1] = '\0'; ps->time_to_leave = ps->ec->proc (ps->ec->cls, "gstreamer", EXTRACTOR_METATYPE_TOC, EXTRACTOR_METAFORMAT_C_STRING, "application/xml", (const char *) ps->toc, ps->toc_length); g_free (ps->toc); ps->toc = NULL; } } if (0 != ps->time_to_leave) return; sinfo = gst_discoverer_info_get_stream_info (info); send_streams (sinfo, ps); } static void send_discovered_info (GstDiscovererInfo * info, struct PrivStruct * ps) { GstDiscovererResult result; /* Docs don't say that info is guaranteed to be non-NULL */ if (NULL == info) return; result = gst_discoverer_info_get_result (info); switch (result) { case GST_DISCOVERER_OK: break; case GST_DISCOVERER_URI_INVALID: break; case GST_DISCOVERER_ERROR: break; case GST_DISCOVERER_TIMEOUT: break; case GST_DISCOVERER_BUSY: break; case GST_DISCOVERER_MISSING_PLUGINS: break; } pthread_mutex_lock (&pipe_mutex); send_info (info, ps); pthread_mutex_unlock (&pipe_mutex); } static void _new_discovered_uri (GstDiscoverer * dc, GstDiscovererInfo * info, GError * err, struct PrivStruct *ps) { send_discovered_info (info, ps); if (ps->timeout_id > 0) g_source_remove (ps->timeout_id); ps->timeout_id = g_timeout_add (DATA_TIMEOUT, (GSourceFunc) _data_timeout, ps); } static void _discoverer_finished (GstDiscoverer * dc, struct PrivStruct *ps) { if (ps->timeout_id > 0) g_source_remove (ps->timeout_id); ps->timeout_id = 0; g_main_loop_quit (ps->loop); } /** * This callback is called when discoverer has constructed a source object to * read from. Since we provided the appsrc:// uri to discoverer, this will be * the appsrc that we must handle. We set up some signals - one to push data * into appsrc and one to perform a seek. * * @param dc * @param source * @param ps */ static void _source_setup (GstDiscoverer * dc, GstElement * source, struct PrivStruct *ps) { if (ps->source) gst_object_unref (GST_OBJECT (ps->source)); ps->source = source; gst_object_ref (source); /* we can set the length in appsrc. This allows some elements to estimate the * total duration of the stream. It's a good idea to set the property when you * can but it's not required. */ if (ps->length > 0) { g_object_set (ps->source, "size", (gint64) ps->length, NULL); gst_util_set_object_arg (G_OBJECT (ps->source), "stream-type", "random-access"); } else gst_util_set_object_arg (G_OBJECT (ps->source), "stream-type", "seekable"); /* configure the appsrc, we will push a buffer to appsrc when it needs more * data */ g_signal_connect (ps->source, "need-data", G_CALLBACK (feed_data), ps); g_signal_connect (ps->source, "seek-data", G_CALLBACK (seek_data), ps); ps->timeout_id = g_timeout_add (DATA_TIMEOUT, (GSourceFunc) _data_timeout, ps); } static void log_handler (const gchar *log_domain, GLogLevelFlags log_level, const gchar *message, gpointer unused_data) { /* do nothing */ } /** * Task run from the main loop to call 'gst_discoverer_uri_async'. * * @param ps our execution context * @return FALSE (always) */ static gboolean _run_async (struct PrivStruct * ps) { g_log_set_default_handler (&log_handler, NULL); g_log_set_handler (NULL, G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION, &log_handler, NULL); gst_discoverer_discover_uri_async (ps->dc, "appsrc://"); return FALSE; } /** * This will be the main method of your plugin. * Describe a bit what it does here. * * @param ec extraction context, here you get the API * for accessing the file data and for returning * meta data */ void EXTRACTOR_gstreamer_extract_method (struct EXTRACTOR_ExtractContext *ec) { struct PrivStruct ps; GError *err = NULL; memset (&ps, 0, sizeof (ps)); ps.dc = gst_discoverer_new (8 * GST_SECOND, &err); if (NULL == ps.dc) { if (NULL != err) g_error_free (err); return; } if (NULL != err) g_error_free (err); /* connect signals */ g_signal_connect (ps.dc, "discovered", G_CALLBACK (_new_discovered_uri), &ps); g_signal_connect (ps.dc, "finished", G_CALLBACK (_discoverer_finished), &ps); g_signal_connect (ps.dc, "source-setup", G_CALLBACK (_source_setup), &ps); ps.loop = g_main_loop_new (NULL, TRUE); ps.ec = ec; ps.length = ps.ec->get_size (ps.ec->cls); if (ps.length == UINT_MAX) ps.length = 0; g_log_set_default_handler (&log_handler, NULL); g_log_set_handler (NULL, G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION, &log_handler, NULL); gst_discoverer_start (ps.dc); g_idle_add ((GSourceFunc) &_run_async, &ps); g_main_loop_run (ps.loop); if (ps.timeout_id > 0) g_source_remove (ps.timeout_id); gst_discoverer_stop (ps.dc); g_object_unref (ps.dc); g_main_loop_unref (ps.loop); } /** * Initialize glib and globals. */ void __attribute__ ((constructor)) gstreamer_init () { gst_init (NULL, NULL); g_log_set_default_handler (&log_handler, NULL); g_log_set_handler (NULL, G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION, &log_handler, NULL); GST_DEBUG_CATEGORY_INIT (gstreamer_extractor, "GstExtractor", 0, "GStreamer-based libextractor plugin"); audio_quarks = g_new0 (GQuark, 4); audio_quarks[0] = g_quark_from_string ("rate"); audio_quarks[1] = g_quark_from_string ("channels"); audio_quarks[2] = g_quark_from_string ("depth"); audio_quarks[3] = g_quark_from_string (NULL); video_quarks = g_new0 (GQuark, 6); video_quarks[0] = g_quark_from_string ("width"); video_quarks[1] = g_quark_from_string ("height"); video_quarks[2] = g_quark_from_string ("framerate"); video_quarks[3] = g_quark_from_string ("max-framerate"); video_quarks[4] = g_quark_from_string ("pixel-aspect-ratio"); video_quarks[5] = g_quark_from_string (NULL); subtitle_quarks = g_new0 (GQuark, 2); subtitle_quarks[0] = g_quark_from_string ("language-code"); subtitle_quarks[1] = g_quark_from_string (NULL); duration_quark = g_quark_from_string ("duration"); pthread_mutex_init (&pipe_mutex, NULL); } /* end of gstreamer_extractor.c */ libextractor-1.3/src/plugins/test_flac.c0000644000175000017500000000352712007726626015377 00000000000000/* This file is part of libextractor. (C) 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/test_flac.c * @brief testcase for flac plugin * @author Christian Grothoff */ #include "platform.h" #include "test_lib.h" /** * Main function for the FLAC testcase. * * @param argc number of arguments (ignored) * @param argv arguments (ignored) * @return 0 on success */ int main (int argc, char *argv[]) { struct SolutionData kraftwerk_sol[] = { { EXTRACTOR_METATYPE_RESOURCE_TYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "44100 Hz, 2 channels", strlen ("44100 Hz, 2 channels") + 1, 0 }, { EXTRACTOR_METATYPE_TITLE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Test Title", strlen ("Test Title") + 1, 0 }, { 0, 0, NULL, NULL, 0, -1 } }; struct SolutionData alien_sol[] = { { 0, 0, NULL, NULL, 0, -1 } }; struct ProblemSet ps[] = { { "testdata/flac_kraftwerk.flac", kraftwerk_sol }, { "testdata/mpeg_alien.mpg", alien_sol }, { NULL, NULL } }; return ET_main ("flac", ps); } /* end of test_flac.c */ libextractor-1.3/src/plugins/sid_extractor.c0000644000175000017500000001243112016742766016302 00000000000000/* * This file is part of libextractor. * (C) 2006, 2007, 2012 Vidyut Samanta and Christian Grothoff * * libextractor is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published * by the Free Software Foundation; either version 3, or (at your * option) any later version. * * libextractor is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with libextractor; see the file COPYING. If not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. * */ /** * @file plugins/sid_extractor.c * @brief plugin to support Scream Tracker (S3M) files * @author Toni Ruottu * @author Christian Grothoff */ #include "platform.h" #include "extractor.h" /* SID flags */ #define MUSPLAYER_FLAG 0x01 #define PLAYSID_FLAG 0x02 #define PAL_FLAG 0x04 #define NTSC_FLAG 0x08 #define MOS6581_FLAG 0x10 #define MOS8580_FLAG 0x20 /** * A "SID word". */ typedef char sidwrd[2]; /** * A "SID long". */ typedef char sidlongwrd[4]; /** * Header of a SID file. */ struct header { /** * Magic string. */ char magicid[4]; /** * Version number. */ sidwrd sidversion; /** * Unknown. */ sidwrd dataoffset; /** * Unknown. */ sidwrd loadaddr; /** * Unknown. */ sidwrd initaddr; /** * Unknown. */ sidwrd playaddr; /** * Number of songs in file. */ sidwrd songs; /** * Starting song. */ sidwrd firstsong; /** * Unknown. */ sidlongwrd speed; /** * Title of the album. */ char title[32]; /** * Name of the artist. */ char artist[32]; /** * Copyright information. */ char copyright[32]; /* version 2 specific fields start */ /** * Flags */ sidwrd flags; /** * Unknown. */ char startpage; /** * Unknown. */ char pagelength; /** * Unknown. */ sidwrd reserved; }; /** * Convert a 'sidword' to an integer. * * @param data the sidword * @return corresponding integer value */ static int sidword (const sidwrd data) { return (unsigned char) data[0] * 0x100 + (unsigned char) data[1]; } /** * Give metadata to LE; return if 'proc' returns non-zero. * * @param s metadata value as UTF8 * @param t metadata type to use */ #define ADD(s,t) do { if (0 != ec->proc (ec->cls, "sid", t, EXTRACTOR_METAFORMAT_UTF8, "text/plain", s, strlen (s) + 1)) return; } while (0) /** * Extract metadata from SID files. * * @param ec extraction context */ void EXTRACTOR_sid_extract_method (struct EXTRACTOR_ExtractContext *ec) { unsigned int flags; int version; char album[33]; char artist[33]; char copyright[33]; char songs[32]; char startingsong[32]; char sidversion[32]; const struct header *head; void *data; if (sizeof (struct header) > ec->read (ec->cls, &data, sizeof (struct header))) return; head = data; /* Check "magic" id bytes */ if ( (0 != memcmp (head->magicid, "PSID", 4)) && (0 != memcmp (head->magicid, "RSID", 4)) ) return; /* Mime-type */ ADD ("audio/prs.sid", EXTRACTOR_METATYPE_MIMETYPE); /* Version of SID format */ version = sidword (head->sidversion); snprintf (sidversion, sizeof (sidversion), "%d", version); ADD (sidversion, EXTRACTOR_METATYPE_FORMAT_VERSION); /* Get song count */ snprintf (songs, sizeof (songs), "%d", sidword (head->songs)); ADD (songs, EXTRACTOR_METATYPE_SONG_COUNT); /* Get number of the first song to be played */ snprintf (startingsong, sizeof (startingsong), "%d", sidword (head->firstsong)); ADD (startingsong, EXTRACTOR_METATYPE_STARTING_SONG); /* name, artist, copyright fields */ memcpy (&album, head->title, 32); album[32] = '\0'; ADD (album, EXTRACTOR_METATYPE_ALBUM); memcpy (&artist, head->artist, 32); artist[32] = '\0'; ADD (artist, EXTRACTOR_METATYPE_ARTIST); memcpy (©right, head->copyright, 32); copyright[32] = '\0'; ADD (copyright, EXTRACTOR_METATYPE_COPYRIGHT); if (version < 2) return; /* Version 2 specific options follow * * Note: Had some troubles understanding specification * on the flags in version 2. I hope this is correct. */ flags = sidword (head->flags); /* MUS data */ if (0 != (flags & MUSPLAYER_FLAG)) ADD ("Compute!'s Sidplayer", EXTRACTOR_METATYPE_CREATED_BY_SOFTWARE); /* PlaySID data */ if (0 != (flags & PLAYSID_FLAG)) ADD ("PlaySID", EXTRACTOR_METATYPE_CREATED_BY_SOFTWARE); /* PAL or NTSC */ if (0 != (flags & NTSC_FLAG)) ADD ("PAL/NTSC", EXTRACTOR_METATYPE_BROADCAST_TELEVISION_SYSTEM); else if (0 != (flags & PAL_FLAG)) ADD ("PAL", EXTRACTOR_METATYPE_BROADCAST_TELEVISION_SYSTEM); /* Detect SID Chips suitable for play the files */ if (0 != (flags & MOS8580_FLAG)) ADD ("MOS6581/MOS8580", EXTRACTOR_METATYPE_TARGET_ARCHITECTURE); else if (0 != (flags & MOS6581_FLAG)) ADD ("MOS6581", EXTRACTOR_METATYPE_TARGET_ARCHITECTURE); } /* end of sid_extractor.c */ libextractor-1.3/src/plugins/midi_extractor.c0000644000175000017500000001115212016742777016446 00000000000000/* This file is part of libextractor. (C) 2012 Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/midi_extractor.c * @brief plugin to support MIDI files * @author Christian Grothoff */ #include "platform.h" #include "extractor.h" #include /** * Types of events in MIDI. */ enum EventType { ET_SEQUENCE_NUMBER = 0, ET_TEXT_EVENT = 1, ET_COPYRIGHT_NOTICE = 2, ET_TRACK_NAME = 3, ET_INSTRUMENT_NAME = 4, ET_LYRIC_TEXT = 5, ET_MARKER_TEXT = 6, ET_CUE_POINT = 7, ET_CHANNEL_PREFIX_ASSIGNMENT = 0x20, ET_END_OF_TRACK = 0x2F, ET_TEMPO_SETTING = 0x51, ET_SMPTE_OFFSET = 0x54, ET_TIME_SIGNATURE = 0x58, ET_KEY_SIGNATURE = 0x59, ET_SEQUENCE_SPECIRFIC_EVENT = 0x7F }; /** * Main entry method for the 'audio/midi' extraction plugin. * * @param ec extraction context provided to the plugin */ void EXTRACTOR_midi_extract_method (struct EXTRACTOR_ExtractContext *ec) { void *buf; unsigned char *data; uint64_t size; uint64_t off; ssize_t iret; smf_t *m = NULL; smf_event_t *event; uint8_t len; if (4 >= (iret = ec->read (ec->cls, &buf, 1024))) return; data = buf; if ( (data[0] != 0x4D) || (data[1] != 0x54) || (data[2] != 0x68) || (data[3] != 0x64) ) return; /* cannot be MIDI */ size = ec->get_size (ec->cls); if (size > 16 * 1024 * 1024) return; /* too large */ if (NULL == (data = malloc ((size_t) size))) return; /* out of memory */ memcpy (data, buf, iret); off = iret; while (off < size) { if (0 >= (iret = ec->read (ec->cls, &buf, 16 * 1024))) { free (data); return; } memcpy (&data[off], buf, iret); off += iret; } if (0 != ec->proc (ec->cls, "midi", EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "audio/midi", strlen ("audio/midi") + 1)) goto CLEANUP; if (NULL == (m = smf_load_from_memory (data, size))) goto CLEANUP; while (NULL != (event = smf_get_next_event (m))) { if (! smf_event_is_metadata (event)) break; len = event->midi_buffer[2]; if ( (len > 0) && isspace (event->midi_buffer[2 + len])) len--; #if 0 fprintf (stderr, "type: %d, len: %d value: %.*s\n", event->midi_buffer[1], event->midi_buffer[2], (int) event->midi_buffer_length - 3, (char *) &event->midi_buffer[3]); #endif if (1 != event->track_number) continue; /* heuristic to not get instruments */ if (0 == len) continue; switch (event->midi_buffer[1]) { case ET_TEXT_EVENT: if (0 != ec->proc (ec->cls, "midi", EXTRACTOR_METATYPE_COMMENT, EXTRACTOR_METAFORMAT_UTF8, "text/plain", (void*) &event->midi_buffer[3], len)) goto CLEANUP; break; case ET_COPYRIGHT_NOTICE: if (0 != ec->proc (ec->cls, "midi", EXTRACTOR_METATYPE_COPYRIGHT, EXTRACTOR_METAFORMAT_UTF8, "text/plain", (void*) &event->midi_buffer[3], len)) goto CLEANUP; break; case ET_TRACK_NAME: if (0 != ec->proc (ec->cls, "midi", EXTRACTOR_METATYPE_TITLE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", (void*) &event->midi_buffer[3], len)) goto CLEANUP; break; case ET_INSTRUMENT_NAME: if (0 != ec->proc (ec->cls, "midi", EXTRACTOR_METATYPE_SOURCE_DEVICE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", (void*) &event->midi_buffer[3], len)) goto CLEANUP; break; case ET_LYRIC_TEXT: if (0 != ec->proc (ec->cls, "midi", EXTRACTOR_METATYPE_LYRICS, EXTRACTOR_METAFORMAT_UTF8, "text/plain", (void*) &event->midi_buffer[3], len)) goto CLEANUP; break; default: break; } } CLEANUP: if (NULL != m) smf_delete (m); free (data); } /* end of midi_extractor.c */ libextractor-1.3/src/plugins/ole2_extractor.c0000644000175000017500000006152412016742766016373 00000000000000/* This file is part of libextractor. (C) 2004, 2005, 2006, 2007, 2009, 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. This code makes extensive use of libgsf -- the Gnome Structured File Library Copyright (C) 2002-2004 Jody Goldberg (jody@gnome.org) Part of this code was adapted from wordleaker. */ /** * @file plugins/ole2_extractor.c * @brief plugin to support OLE2 (DOC, XLS, etc.) files * @author Christian Grothoff */ #include "platform.h" #include "extractor.h" #include "convert.h" #include #include #include #include #include #include #include #include #include #include #include /** * Set to 1 to use our own GsfInput subclass which supports seeking * and thus can handle very large files. Set to 0 to use the simple * gsf in-memory buffer (which can only access the first ~16k) for * debugging. */ #define USE_LE_INPUT 1 /** * Give the given UTF8 string to LE by calling 'proc'. * * @param proc callback to invoke * @param proc_cls closure for proc * @param phrase metadata string to pass; may include spaces * just double-quotes or just a space in a double quote; * in those cases, nothing should be done * @param type meta data type to use * @return if 'proc' returned 1, otherwise 0 */ static int add_metadata (EXTRACTOR_MetaDataProcessor proc, void *proc_cls, const char *phrase, enum EXTRACTOR_MetaType type) { char *tmp; int ret; if (0 == strlen (phrase)) return 0; if (0 == strcmp (phrase, "\"\"")) return 0; if (0 == strcmp (phrase, "\" \"")) return 0; if (0 == strcmp (phrase, " ")) return 0; if (NULL == (tmp = strdup (phrase))) return 0; while ( (strlen (tmp) > 0) && (isblank ((unsigned char) tmp [strlen (tmp) - 1])) ) tmp [strlen (tmp) - 1] = '\0'; ret = proc (proc_cls, "ole2", type, EXTRACTOR_METAFORMAT_UTF8, "text/plain", tmp, strlen (tmp) + 1); free (tmp); return ret; } /** * Entry in the map from OLE meta type strings * to LE types. */ struct Matches { /** * OLE description. */ const char *text; /** * Corresponding LE type. */ enum EXTRACTOR_MetaType type; }; static struct Matches tmap[] = { { "Title", EXTRACTOR_METATYPE_TITLE }, { "PresentationFormat", EXTRACTOR_METATYPE_FORMAT }, { "Category", EXTRACTOR_METATYPE_SECTION }, { "Manager", EXTRACTOR_METATYPE_MANAGER }, { "Company", EXTRACTOR_METATYPE_COMPANY }, { "Subject", EXTRACTOR_METATYPE_SUBJECT }, { "Author", EXTRACTOR_METATYPE_AUTHOR_NAME }, { "Keywords", EXTRACTOR_METATYPE_KEYWORDS }, { "Comments", EXTRACTOR_METATYPE_COMMENT }, { "Template", EXTRACTOR_METATYPE_TEMPLATE }, { "NumPages", EXTRACTOR_METATYPE_PAGE_COUNT }, { "AppName", EXTRACTOR_METATYPE_PRODUCED_BY_SOFTWARE }, { "RevisionNumber", EXTRACTOR_METATYPE_REVISION_NUMBER }, { "NumBytes", EXTRACTOR_METATYPE_EMBEDDED_FILE_SIZE }, { "CreatedTime", EXTRACTOR_METATYPE_CREATION_DATE }, { "LastSavedTime" , EXTRACTOR_METATYPE_MODIFICATION_DATE }, { "gsf:company", EXTRACTOR_METATYPE_COMPANY }, { "gsf:character-count", EXTRACTOR_METATYPE_CHARACTER_COUNT }, { "gsf:page-count", EXTRACTOR_METATYPE_PAGE_COUNT }, { "gsf:line-count", EXTRACTOR_METATYPE_LINE_COUNT }, { "gsf:word-count", EXTRACTOR_METATYPE_WORD_COUNT }, { "gsf:paragraph-count", EXTRACTOR_METATYPE_PARAGRAPH_COUNT }, { "gsf:last-saved-by", EXTRACTOR_METATYPE_LAST_SAVED_BY }, { "gsf:manager", EXTRACTOR_METATYPE_MANAGER }, { "dc:title", EXTRACTOR_METATYPE_TITLE }, { "dc:creator", EXTRACTOR_METATYPE_CREATOR }, { "dc:date", EXTRACTOR_METATYPE_UNKNOWN_DATE }, { "dc:subject", EXTRACTOR_METATYPE_SUBJECT }, { "dc:keywords", EXTRACTOR_METATYPE_KEYWORDS }, { "dc:last-printed", EXTRACTOR_METATYPE_LAST_PRINTED }, { "dc:description", EXTRACTOR_METATYPE_DESCRIPTION }, { "meta:creation-date", EXTRACTOR_METATYPE_CREATION_DATE }, { "meta:generator", EXTRACTOR_METATYPE_CREATED_BY_SOFTWARE }, { "meta:template", EXTRACTOR_METATYPE_TEMPLATE }, { "meta:editing-cycles", EXTRACTOR_METATYPE_EDITING_CYCLES }, /* { "Dictionary", EXTRACTOR_METATYPE_LANGUAGE }, */ /* { "gsf:security", EXTRACTOR_SECURITY }, */ /* { "gsf:scale", EXTRACTOR_SCALE }, // always "false"? */ /* { "meta:editing-duration", EXTRACTOR_METATYPE_TOTAL_EDITING_TIME }, // encoding? */ /* { "msole:codepage", EXTRACTOR_CHARACTER_SET }, */ { NULL, 0 } }; /** * Closure for 'process_metadata'. */ struct ProcContext { /** * Function to call for meta data that was found. */ EXTRACTOR_MetaDataProcessor proc; /** * Closure for 'proc'. */ void *proc_cls; /** * Return value; 0 to continue to extract, 1 if we are done */ int ret; }; /** * Function invoked by 'gst_msole_metadata_read' with * metadata found in the document. * * @param key 'const char *' describing the meta data * @param value the UTF8 representation of the meta data * @param user_data our 'struct ProcContext' (closure) */ static void process_metadata (gpointer key, gpointer value, gpointer user_data) { const char *type = key; const GsfDocProp *prop = value; struct ProcContext *pc = user_data; const GValue *gval; char *contents; int pos; if ( (NULL == key) || (NULL == value) ) return; if (0 != pc->ret) return; gval = gsf_doc_prop_get_val (prop); if (G_VALUE_TYPE(gval) == G_TYPE_STRING) { contents = strdup (g_value_get_string (gval)); } else { /* convert other formats? */ contents = g_strdup_value_contents (gval); } if (NULL == contents) return; if (0 == strcmp (type, "meta:generator")) { const char *mimetype = "application/vnd.ms-files"; if ( (0 == strncmp (value, "Microsoft Word", 14)) || (0 == strncmp (value, "Microsoft Office Word", 21))) mimetype = "application/msword"; else if ( (0 == strncmp(value, "Microsoft Excel", 15)) || (0 == strncmp(value, "Microsoft Office Excel", 22)) ) mimetype = "application/vnd.ms-excel"; else if ( (0 == strncmp(value, "Microsoft PowerPoint", 20)) || (0 == strncmp(value, "Microsoft Office PowerPoint", 27)) ) mimetype = "application/vnd.ms-powerpoint"; else if (0 == strncmp(value, "Microsoft Project", 17)) mimetype = "application/vnd.ms-project"; else if (0 == strncmp(value, "Microsoft Visio", 15)) mimetype = "application/vnd.visio"; else if (0 == strncmp(value, "Microsoft Office", 16)) mimetype = "application/vnd.ms-office"; if (0 != add_metadata (pc->proc, pc->proc_cls, mimetype, EXTRACTOR_METATYPE_MIMETYPE)) { free (contents); pc->ret = 1; return; } } for (pos = 0; NULL != tmap[pos].text; pos++) if (0 == strcmp (tmap[pos].text, type)) break; if ( (NULL != tmap[pos].text) && (0 != add_metadata (pc->proc, pc->proc_cls, contents, tmap[pos].type)) ) { free (contents); pc->ret = 1; return; } free(contents); } /** * Function called on (Document)SummaryInformation OLE * streams. * * @param in the input OLE stream * @param proc function to call on meta data found * @param proc_cls closure for proc * @return 0 to continue to extract, 1 if we are done */ static int process (GsfInput *in, EXTRACTOR_MetaDataProcessor proc, void *proc_cls) { struct ProcContext pc; GsfDocMetaData *sections; pc.proc = proc; pc.proc_cls = proc_cls; pc.ret = 0; sections = gsf_doc_meta_data_new (); if (NULL == gsf_msole_metadata_read (in, sections)) { gsf_doc_meta_data_foreach (sections, &process_metadata, &pc); } g_object_unref (G_OBJECT (sections)); return pc.ret; } /** * Function called on SfxDocumentInfo OLE * streams. * * @param in the input OLE stream * @param proc function to call on meta data found * @param proc_cls closure for proc * @return 0 to continue to extract, 1 if we are done */ static int process_star_office (GsfInput *src, EXTRACTOR_MetaDataProcessor proc, void *proc_cls) { off_t size = gsf_input_size (src); if ( (size < 0x374) || (size > 4*1024*1024) ) /* == 0x375?? */ return 0; { char buf[size]; gsf_input_read (src, size, (unsigned char*) buf); if ( (buf[0] != 0x0F) || (buf[1] != 0x0) || (0 != strncmp (&buf[2], "SfxDocumentInfo", strlen ("SfxDocumentInfo"))) || (buf[0x11] != 0x0B) || (buf[0x13] != 0x00) || /* pw protected! */ (buf[0x12] != 0x00) ) return 0; buf[0xd3] = '\0'; if ( (buf[0x94] + buf[0x93] > 0) && (0 != add_metadata (proc, proc_cls, &buf[0x95], EXTRACTOR_METATYPE_TITLE)) ) return 1; buf[0x114] = '\0'; if ( (buf[0xd5] + buf[0xd4] > 0) && (0 != add_metadata (proc, proc_cls, &buf[0xd6], EXTRACTOR_METATYPE_SUBJECT)) ) return 1; buf[0x215] = '\0'; if ( (buf[0x115] + buf[0x116] > 0) && (0 != add_metadata (proc, proc_cls, &buf[0x117], EXTRACTOR_METATYPE_COMMENT)) ) return 1; buf[0x296] = '\0'; if ( (buf[0x216] + buf[0x217] > 0) && (0 != add_metadata(proc, proc_cls, &buf[0x218], EXTRACTOR_METATYPE_KEYWORDS)) ) return 1; /* fixme: do timestamps, mime-type, user-defined info's */ } return 0; } /** * We use "__" to translate using iso-639. * * @param a string to translate * @return translated string */ #define __(a) dgettext("iso-639", a) /** * Get the language string for the given language ID (lid) * value. * * @param lid language id value * @return language string corresponding to the lid */ static const char * lid_to_language (unsigned int lid) { switch (lid) { case 0x0400: return _("No Proofing"); case 0x0401: return __("Arabic"); case 0x0402: return __("Bulgarian"); case 0x0403: return __("Catalan"); case 0x0404: return _("Traditional Chinese"); case 0x0804: return _("Simplified Chinese"); case 0x0405: return __("Chechen"); case 0x0406: return __("Danish"); case 0x0407: return __("German"); case 0x0807: return _("Swiss German"); case 0x0408: return __("Greek"); case 0x0409: return _("U.S. English"); case 0x0809: return _("U.K. English"); case 0x0c09: return _("Australian English"); case 0x040a: return _("Castilian Spanish"); case 0x080a: return _("Mexican Spanish"); case 0x040b: return __("Finnish"); case 0x040c: return __("French"); case 0x080c: return _("Belgian French"); case 0x0c0c: return _("Canadian French"); case 0x100c: return _("Swiss French"); case 0x040d: return __("Hebrew"); case 0x040e: return __("Hungarian"); case 0x040f: return __("Icelandic"); case 0x0410: return __("Italian"); case 0x0810: return _("Swiss Italian"); case 0x0411: return __("Japanese"); case 0x0412: return __("Korean"); case 0x0413: return __("Dutch"); case 0x0813: return _("Belgian Dutch"); case 0x0414: return _("Norwegian Bokmal"); case 0x0814: return __("Norwegian Nynorsk"); case 0x0415: return __("Polish"); case 0x0416: return __("Brazilian Portuguese"); case 0x0816: return __("Portuguese"); case 0x0417: return _("Rhaeto-Romanic"); case 0x0418: return __("Romanian"); case 0x0419: return __("Russian"); case 0x041a: return _("Croato-Serbian (Latin)"); case 0x081a: return _("Serbo-Croatian (Cyrillic)"); case 0x041b: return __("Slovak"); case 0x041c: return __("Albanian"); case 0x041d: return __("Swedish"); case 0x041e: return __("Thai"); case 0x041f: return __("Turkish"); case 0x0420: return __("Urdu"); case 0x0421: return __("Bahasa"); case 0x0422: return __("Ukrainian"); case 0x0423: return __("Byelorussian"); case 0x0424: return __("Slovenian"); case 0x0425: return __("Estonian"); case 0x0426: return __("Latvian"); case 0x0427: return __("Lithuanian"); case 0x0429: return _("Farsi"); case 0x042D: return __("Basque"); case 0x042F: return __("Macedonian"); case 0x0436: return __("Afrikaans"); case 0x043E: return __("Malayalam"); default: return NULL; } } /** * Extract editing history from XTable stream. * * @param stream OLE stream to process * @param lcSttbSavedBy length of the revision history in bytes * @param fcSttbSavedBy offset of the revision history in the stream * @param proc function to call on meta data found * @param proc_cls closure for proc * @return 0 to continue to extract, 1 if we are done */ static int history_extract (GsfInput *stream, unsigned int lcbSttbSavedBy, unsigned int fcSttbSavedBy, EXTRACTOR_MetaDataProcessor proc, void *proc_cls) { unsigned int where; unsigned char *lbuffer; unsigned int i; unsigned int length; char *author; char *filename; char *rbuf; unsigned int nRev; int ret; /* goto offset of revision information */ gsf_input_seek (stream, fcSttbSavedBy, G_SEEK_SET); if (gsf_input_remaining (stream) < lcbSttbSavedBy) return 0; if (NULL == (lbuffer = malloc (lcbSttbSavedBy))) return 0; /* read all the revision history */ gsf_input_read (stream, lcbSttbSavedBy, lbuffer); /* there are n strings, so n/2 revisions (author & file) */ nRev = (lbuffer[2] + (lbuffer[3] << 8)) / 2; where = 6; ret = 0; for (i=0; i < nRev; i++) { if (where >= lcbSttbSavedBy) break; length = lbuffer[where++]; if ( (where + 2 * length + 2 >= lcbSttbSavedBy) || (where + 2 * length + 2 <= where) ) break; author = EXTRACTOR_common_convert_to_utf8 ((const char*) &lbuffer[where], length * 2, "UTF-16BE"); where += length * 2 + 1; length = lbuffer[where++]; if ( (where + 2 * length >= lcbSttbSavedBy) || (where + 2 * length + 1 <= where) ) { if (NULL != author) free(author); break; } filename = EXTRACTOR_common_convert_to_utf8 ((const char*) &lbuffer[where], length * 2, "UTF-16BE"); where += length * 2 + 1; if ( (NULL != author) && (NULL != filename) ) { if (NULL != (rbuf = malloc (strlen (author) + strlen (filename) + 512))) { snprintf (rbuf, 512 + strlen (author) + strlen (filename), _("Revision #%u: Author `%s' worked on `%s'"), i, author, filename); ret = add_metadata (proc, proc_cls, rbuf, EXTRACTOR_METATYPE_REVISION_HISTORY); free (rbuf); } } if (NULL != author) free (author); if (NULL != filename) free (filename); if (0 != ret) break; } free (lbuffer); return ret; } /* *************************** custom GSF input method ***************** */ #define LE_TYPE_INPUT (le_input_get_type ()) #define LE_INPUT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LE_TYPE_INPUT, LeInput)) #define LE_INPUT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LE_TYPE_INPUT, LeInputClass)) #define IS_LE_INPUT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LE_TYPE_INPUT)) #define IS_LE_INPUT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LE_TYPE_INPUT)) #define LE_INPUT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LE_TYPE_INPUT, LeInputClass)) /** * Internal state of an "LeInput" object. */ typedef struct _LeInputPrivate { /** * Our extraction context. */ struct EXTRACTOR_ExtractContext *ec; } LeInputPrivate; /** * Overall state of an "LeInput" object. */ typedef struct _LeInput { /** * Inherited state from parent (GsfInput). */ GsfInput input; /*< private > */ /** * Private state of the LeInput. */ LeInputPrivate *priv; } LeInput; /** * LeInput's class state. */ typedef struct _LeInputClass { /** * GsfInput is our parent class. */ GsfInputClass parent_class; /* Padding for future expansion */ void (*_gtk_reserved1) (void); void (*_gtk_reserved2) (void); void (*_gtk_reserved3) (void); void (*_gtk_reserved4) (void); } LeInputClass; /** * Constructor for LeInput objects. * * @param ec extraction context to use * @return the LeInput, NULL on error */ GsfInput * le_input_new (struct EXTRACTOR_ExtractContext *ec); /** * Class initializer for the "LeInput" class. * * @param class class object to initialize */ static void le_input_class_init (LeInputClass *class); /** * Initialize internal state of fresh input object. * * @param input object to initialize */ static void le_input_init (LeInput *input); /** * Macro to create LeInput type definition and register the class. */ GSF_CLASS (LeInput, le_input, le_input_class_init, le_input_init, GSF_INPUT_TYPE) /** * Duplicate input, leaving the new one at the same offset. * * @param input the input to duplicate * @param err location for error reporting, can be NULL * @return NULL on error (always) */ static GsfInput * le_input_dup (GsfInput *input, GError **err) { if (NULL != err) *err = g_error_new (gsf_input_error_id (), 0, "dup not supported on LeInput"); return NULL; } /** * Read at least num_bytes. Does not change the current position if * there is an error. Will only read if the entire amount can be * read. Invalidates the buffer associated with previous calls to * gsf_input_read. * * @param input * @param num_bytes * @param optional_buffer * @return buffer where num_bytes data are available, or NULL on error */ static const guint8 * le_input_read (GsfInput *input, size_t num_bytes, guint8 *optional_buffer) { LeInput *li = LE_INPUT (input); struct EXTRACTOR_ExtractContext *ec; void *buf; uint64_t old_off; ssize_t ret; ec = li->priv->ec; old_off = ec->seek (ec->cls, 0, SEEK_CUR); if (num_bytes != (ret = ec->read (ec->cls, &buf, num_bytes))) { /* we don't support partial reads; most other GsfInput implementations in this case allocate some huge temporary buffer just to avoid the partial read; we might need to do that as well!? */ ec->seek (ec->cls, SEEK_SET, old_off); return NULL; } if (NULL != optional_buffer) { memcpy (optional_buffer, buf, num_bytes); return optional_buffer; } return buf; } /** * Move the current location in an input stream * * @param input stream to seek * @param offset target offset * @param whence determines to what the offset is relative to * @return TRUE on error */ static gboolean le_input_seek (GsfInput *input, gsf_off_t offset, GSeekType whence) { LeInput *li = LE_INPUT (input); struct EXTRACTOR_ExtractContext *ec; int w; int64_t ret; ec = li->priv->ec; switch (whence) { case G_SEEK_SET: w = SEEK_SET; break; case G_SEEK_CUR: w = SEEK_CUR; break; case G_SEEK_END: w = SEEK_END; break; default: return TRUE; } if (-1 == (ret = ec->seek (ec->cls, offset, w))) return TRUE; return FALSE; } /** * Class initializer for the "LeInput" class. * * @param class class object to initialize */ static void le_input_class_init (LeInputClass *class) { GsfInputClass *input_class; input_class = (GsfInputClass *) class; input_class->Dup = le_input_dup; input_class->Read = le_input_read; input_class->Seek = le_input_seek; g_type_class_add_private (class, sizeof (LeInputPrivate)); } /** * Initialize internal state of fresh input object. * * @param input object to initialize */ static void le_input_init (LeInput *input) { LeInputPrivate *priv; input->priv = G_TYPE_INSTANCE_GET_PRIVATE (input, LE_TYPE_INPUT, LeInputPrivate); priv = input->priv; priv->ec = NULL; } /** * Creates a new LeInput object. * * @param ec extractor context to wrap * @return NULL on error */ GsfInput * le_input_new (struct EXTRACTOR_ExtractContext *ec) { LeInput *input; input = g_object_new (LE_TYPE_INPUT, NULL); gsf_input_set_size (GSF_INPUT (input), ec->get_size (ec->cls)); gsf_input_seek_emulate (GSF_INPUT (input), 0); input->input.name = NULL; input->input.container = NULL; input->priv->ec = ec; return GSF_INPUT (input); } /* *********************** end of custom GSF input method ************* */ /** * Main entry method for the OLE2 extraction plugin. * * @param ec extraction context provided to the plugin */ void EXTRACTOR_ole2_extract_method (struct EXTRACTOR_ExtractContext *ec) { GsfInput *input; GsfInfile *infile; GsfInput *src; const char *name; unsigned int i; unsigned int lcb; unsigned int fcb; const unsigned char *data512; unsigned int lid; const char *lang; int ret; void *data; uint64_t fsize; ssize_t data_size; fsize = ec->get_size (ec->cls); if (fsize < 512 + 898) { /* File too small for OLE2 */ return; /* can hardly be OLE2 */ } if (512 + 898 > (data_size = ec->read (ec->cls, &data, fsize))) { /* Failed to read minimum file size to buffer */ return; } data512 = (const unsigned char*) data + 512; lid = data512[6] + (data512[7] << 8); if ( (NULL != (lang = lid_to_language (lid))) && (0 != (ret = add_metadata (ec->proc, ec->cls, lang, EXTRACTOR_METATYPE_LANGUAGE))) ) return; lcb = data512[726] + (data512[727] << 8) + (data512[728] << 16) + (data512[729] << 24); fcb = data512[722] + (data512[723] << 8) + (data512[724] << 16) + (data512[725] << 24); if (0 != ec->seek (ec->cls, 0, SEEK_SET)) { /* seek failed!? */ return; } #if USE_LE_INPUT if (NULL == (input = le_input_new (ec))) { fprintf (stderr, "le_input_new failed\n"); return; } #else input = gsf_input_memory_new ((const guint8 *) data, data_size, FALSE); #endif if (NULL == (infile = gsf_infile_msole_new (input, NULL))) { g_object_unref (G_OBJECT (input)); return; } ret = 0; for (i=0;iproc, ec->cls); if ( (0 == strcmp (name, "SfxDocumentInfo")) && (NULL != (src = gsf_infile_child_by_index (infile, i))) ) ret = process_star_office (src, ec->proc, ec->cls); if (NULL != src) g_object_unref (G_OBJECT (src)); } if (0 != ret) goto CLEANUP; if (lcb < 6) goto CLEANUP; for (i=0;iproc, ec->cls); g_object_unref (G_OBJECT (src)); } } CLEANUP: g_object_unref (G_OBJECT (infile)); g_object_unref (G_OBJECT (input)); } /** * Custom log function we give to GSF to disable logging. * * @param log_domain unused * @param log_level unused * @param message unused * @param user_data unused */ static void nolog (const gchar *log_domain, GLogLevelFlags log_level, const gchar *message, gpointer user_data) { /* do nothing */ } /** * OLE2 plugin constructor. Initializes glib and gsf, in particular * gsf logging is disabled. */ void __attribute__ ((constructor)) ole2_ltdl_init() { g_type_init(); #ifdef HAVE_GSF_INIT gsf_init(); #endif /* disable logging -- thanks, Jody! */ g_log_set_handler ("libgsf:msole", G_LOG_LEVEL_CRITICAL | G_LOG_LEVEL_WARNING, &nolog, NULL); } /** * OLE2 plugin destructor. Shutdown of gsf. */ void __attribute__ ((destructor)) ole2_ltdl_fini() { #ifdef HAVE_GSF_INIT gsf_shutdown(); #endif } /* end of ole2_extractor.c */ libextractor-1.3/src/plugins/test_png.c0000644000175000017500000000401312016742777015252 00000000000000/* This file is part of libextractor. (C) 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/test_png.c * @brief testcase for png plugin * @author Christian Grothoff */ #include "platform.h" #include "test_lib.h" /** * Main function for the PNG testcase. * * @param argc number of arguments (ignored) * @param argv arguments (ignored) * @return 0 on success */ int main (int argc, char *argv[]) { struct SolutionData png_image_sol[] = { { EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "image/png", strlen ("image/png") + 1, 0 }, { EXTRACTOR_METATYPE_IMAGE_DIMENSIONS, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "4x4", strlen ("4x4") + 1, 0 }, { EXTRACTOR_METATYPE_COMMENT, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Testing keyword extraction\n", strlen ("Testing keyword extraction\n") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "dc6c58c971715e8043baef058b675eec", strlen ("dc6c58c971715e8043baef058b675eec") + 1, 0 }, { 0, 0, NULL, NULL, 0, -1 } }; struct ProblemSet ps[] = { { "testdata/png_image.png", png_image_sol }, { NULL, NULL } }; return ET_main ("png", ps); } /* end of test_png.c */ libextractor-1.3/src/plugins/test_midi.c0000644000175000017500000000434512016742777015420 00000000000000/* This file is part of libextractor. (C) 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/test_midi.c * @brief testcase for midi plugin * @author Christian Grothoff */ #include "platform.h" #include "test_lib.h" /** * Main function for the MIDI testcase. * * @param argc number of arguments (ignored) * @param argv arguments (ignored) * @return 0 on success */ int main (int argc, char *argv[]) { struct SolutionData midi_dth_sol[] = { { EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "audio/midi", strlen ("audio/midi") + 1, 0 }, { EXTRACTOR_METATYPE_COPYRIGHT, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "(c) 2012 d-o-o", strlen ("(c) 2012 d-o-o"), 0 }, { EXTRACTOR_METATYPE_TITLE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Tage wie diese T2", strlen ("Tage wie diese T2"), 0 }, { EXTRACTOR_METATYPE_COMMENT, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "XFhd:::Rock:8 Beat:1:m1:-:-:-:-:DD", strlen ("XFhd:::Rock:8 Beat:1:m1:-:-:-:-:DD"), 0 }, { EXTRACTOR_METATYPE_COMMENT, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "XFln:L1:Tage wie diese:von Holst:von Holst:-:Toten Hosen:DD", strlen ("XFln:L1:Tage wie diese:von Holst:von Holst:-:Toten Hosen:DD"), 0 }, { 0, 0, NULL, NULL, 0, -1 } }; struct ProblemSet ps[] = { { "testdata/midi_dth.mid", midi_dth_sol }, { NULL, NULL } }; return ET_main ("midi", ps); } /* end of test_midi.c */ libextractor-1.3/src/plugins/test_sid.c0000644000175000017500000000514012016742777015247 00000000000000/* This file is part of libextractor. (C) 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/test_sid.c * @brief testcase for sid plugin * @author Christian Grothoff */ #include "platform.h" #include "test_lib.h" /** * Main function for the SID testcase. * * @param argc number of arguments (ignored) * @param argv arguments (ignored) * @return 0 on success */ int main (int argc, char *argv[]) { struct SolutionData sid_wizball_sol[] = { { EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "audio/prs.sid", strlen ("audio/prs.sid") + 1, 0 }, { EXTRACTOR_METATYPE_FORMAT_VERSION, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "2", strlen ("2") + 1, 0 }, { EXTRACTOR_METATYPE_SONG_COUNT, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "9", strlen ("9") + 1, 0 }, { EXTRACTOR_METATYPE_STARTING_SONG, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "4", strlen ("4") + 1, 0 }, { EXTRACTOR_METATYPE_ALBUM, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Wizball", strlen ("Wizball") + 1, 0 }, { EXTRACTOR_METATYPE_ARTIST, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Martin Galway", strlen ("Martin Galway") + 1, 0 }, { EXTRACTOR_METATYPE_COPYRIGHT, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "1987 Ocean", strlen ("1987 Ocean") + 1, 0 }, { EXTRACTOR_METATYPE_BROADCAST_TELEVISION_SYSTEM, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "PAL", strlen ("PAL") + 1, 0 }, { EXTRACTOR_METATYPE_TARGET_ARCHITECTURE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "MOS6581", strlen ("MOS6581") + 1, 0 }, { 0, 0, NULL, NULL, 0, -1 } }; struct ProblemSet ps[] = { { "testdata/sid_wizball.sid", sid_wizball_sol }, { NULL, NULL } }; return ET_main ("sid", ps); } /* end of test_sid.c */ libextractor-1.3/src/plugins/test_gstreamer.c0000644000175000017500000010643212163636146016462 00000000000000/* This file is part of libextractor. (C) 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/test_gstreamer.c * @brief testcase for gstreamer plugin * @author LRN */ #include "platform.h" #include "test_lib.h" #include #include #include /** * This is a miniaturized version of gst-discoverer, its only purpose is * to detect missing plugins situations and skip a test in such cases. */ static GstDiscovererResult discoverer_main (GstDiscoverer *dc, const char *filename) { GError *err = NULL; gchar *uri; gchar *path; GstDiscovererInfo *info; GstDiscovererResult result; if (! gst_uri_is_valid (filename)) { if (! g_path_is_absolute (filename)) { gchar *cur_dir; cur_dir = g_get_current_dir (); path = g_build_filename (cur_dir, filename, NULL); g_free (cur_dir); } else { path = g_strdup (filename); } uri = g_filename_to_uri (path, NULL, &err); g_free (path); path = NULL; if (err) { g_warning ("Couldn't convert filename %s to URI: %s\n", filename, err->message); g_error_free (err); return GST_DISCOVERER_ERROR; } } else { uri = g_strdup (filename); } info = gst_discoverer_discover_uri (dc, uri, &err); result = gst_discoverer_info_get_result (info); switch (result) { case GST_DISCOVERER_OK: break; case GST_DISCOVERER_URI_INVALID: g_print ("URI %s is not valid\n", uri); break; case GST_DISCOVERER_ERROR: g_print ("An error was encountered while discovering the file %s\n", filename); g_print (" %s\n", err->message); break; case GST_DISCOVERER_TIMEOUT: g_print ("Analyzing URI %s timed out\n", uri); break; case GST_DISCOVERER_BUSY: g_print ("Discoverer was busy\n"); break; case GST_DISCOVERER_MISSING_PLUGINS: g_print ("Will skip %s: missing plugins\n", filename); break; default: g_print ("Unexpected result %d\n", result); break; } if (err) g_error_free (err); gst_discoverer_info_unref (info); g_free (uri); return result; } /** * Main function for the GStreamer testcase. * * @param argc number of arguments (ignored) * @param argv arguments (ignored) * @return 0 on success */ int main (int argc, char *argv[]) { GError *err = NULL; GstDiscoverer *dc; int result = 0; GstDiscovererResult pre_test; gst_init (&argc, &argv); dc = gst_discoverer_new (10 * GST_SECOND, &err); if (NULL == dc) { g_print ("Error initializing: %s\n", err->message); return 0; } if (NULL != err) g_error_free (err); pre_test = discoverer_main (dc, "testdata/gstreamer_30_and_33.asf"); if (GST_DISCOVERER_MISSING_PLUGINS != pre_test) { int test_result; struct SolutionData thirty_and_thirtythree_sol[] = { { EXTRACTOR_METATYPE_DURATION, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "0:00:05.061000000", strlen ("0:00:05.061000000") + 1, 0 }, { EXTRACTOR_METATYPE_TRACK_NUMBER, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "21", strlen ("21") + 1, 0 }, { EXTRACTOR_METATYPE_ALBUM, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Zee Album", strlen ("Zee Album") + 1, 0 }, { EXTRACTOR_METATYPE_CREATION_TIME, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "9999", strlen ("9999") + 1, 0 }, { EXTRACTOR_METATYPE_ARTIST, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "All performed by Nobody", strlen ("All performed by Nobody") + 1, 0 }, { EXTRACTOR_METATYPE_ARTIST, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "This Artist Contributed", strlen ("This Artist Contributed") + 1, 0 }, { EXTRACTOR_METATYPE_TITLE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Some title", strlen ("Some title") + 1, 0 }, /* Suggest a fix to gst devs; should be a comment, not description */ { EXTRACTOR_METATYPE_DESCRIPTION, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "A witty comment", strlen ("A witty comment") + 1, 0 }, { EXTRACTOR_METATYPE_CONTAINER_FORMAT, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "ASF", strlen ("ASF") + 1, 0 }, { EXTRACTOR_METATYPE_AUDIO_CODEC, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "WMA Version 8", strlen ("WMA Version 8") + 1, 0 }, { EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "video/x-ms-asf", strlen ("video/x-ms-asf") + 1, 0 }, { EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "audio/x-wma", strlen ("audio/x-wma") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "wmaversion=2", strlen ("wmaversion=2") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "bitrate=96024", strlen ("bitrate=96024") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "block_align=4459", strlen ("block_align=4459") + 1, 0 }, { EXTRACTOR_METATYPE_AUDIO_LANGUAGE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "en", strlen ("en") + 1, 0 }, { EXTRACTOR_METATYPE_CHANNELS, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "2", strlen ("2") + 1, 0 }, { EXTRACTOR_METATYPE_SAMPLE_RATE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "44100", strlen ("44100") + 1, 0 }, { EXTRACTOR_METATYPE_AUDIO_DEPTH, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "16", strlen ("16") + 1, 0 }, { 0, 0, NULL, NULL, 0, -1 } }; struct ProblemSet ps[] = { { "testdata/gstreamer_30_and_33.asf", thirty_and_thirtythree_sol }, { NULL, NULL } }; g_print ("Running asf test on GStreamer:\n"); test_result = (0 == ET_main ("gstreamer", ps) ? 0 : 1); g_print ("asf GStreamer test result: %s\n", test_result == 0 ? "OK" : "FAILED"); result += test_result; } pre_test = discoverer_main (dc, "testdata/gstreamer_barsandtone.flv"); if (pre_test != GST_DISCOVERER_MISSING_PLUGINS) { int test_result; struct SolutionData barsandtone_sol[] = { { EXTRACTOR_METATYPE_DURATION, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "0:00:06.060000000", strlen ("0:00:06.060000000") + 1, 0 }, { EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "video/x-flv", strlen ("video/x-flv") + 1, 0 }, { EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "video/x-vp6-flash", strlen ("video/x-vp6-flash") + 1, 0 }, { EXTRACTOR_METATYPE_VIDEO_DURATION, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "0:00:06.000000000", strlen ("0:00:06.000000000") + 1, 0 }, { EXTRACTOR_METATYPE_AUDIO_CODEC, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "MPEG-1 Layer 3 (MP3)", strlen ("MPEG-1 Layer 3 (MP3)") + 1, 0 }, { EXTRACTOR_METATYPE_VIDEO_CODEC, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "On2 VP6/Flash", strlen ("On2 VP6/Flash") + 1, 0 }, { EXTRACTOR_METATYPE_VIDEO_DIMENSIONS, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "368x288", strlen ("368x288") + 1, 0 }, { EXTRACTOR_METATYPE_FRAME_RATE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "10/1", strlen ("10/1") + 1, 0 }, { EXTRACTOR_METATYPE_PIXEL_ASPECT_RATIO, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "1/1", strlen ("1/1") + 1, 0 }, { EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "audio/mpeg", strlen ("audio/mpeg") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "mpegversion=1", strlen ("mpegversion=1") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "mpegaudioversion=1", strlen ("mpegaudioversion=1") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "layer=3", strlen ("layer=3") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "parsed=true", strlen ("parsed=true") + 1, 0 }, { EXTRACTOR_METATYPE_AUDIO_DURATION, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "0:00:06.000000000", strlen ("0:00:06.000000000") + 1, 0 }, /* Yes, again. This seems to be a bug/feature of the element that * gives us these streams; this doesn't happen when discovering * Matroska files, for example. Or maybe file itself is made that way. */ { EXTRACTOR_METATYPE_AUDIO_CODEC, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "MPEG-1 Layer 3 (MP3)", strlen ("MPEG-1 Layer 3 (MP3)") + 1, 0 }, { EXTRACTOR_METATYPE_VIDEO_CODEC, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "On2 VP6/Flash", strlen ("On2 VP6/Flash") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "has-crc=false", strlen ("has-crc=false") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "channel-mode=joint-stereo", strlen ("channel-mode=joint-stereo") + 1, 0 }, { EXTRACTOR_METATYPE_CHANNELS, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "2", strlen ("2") + 1, 0 }, { EXTRACTOR_METATYPE_SAMPLE_RATE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "44100", strlen ("44100") + 1, 0 }, { EXTRACTOR_METATYPE_AUDIO_BITRATE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "96000", strlen ("96000") + 1, 0 }, { 0, 0, NULL, NULL, 0, -1 } }; struct ProblemSet ps[] = { { "testdata/gstreamer_barsandtone.flv", barsandtone_sol }, { NULL, NULL } }; g_print ("Running flv test on GStreamer:\n"); test_result = (0 == ET_main ("gstreamer", ps) ? 0 : 1); g_print ("flv GStreamer test result: %s\n", test_result == 0 ? "OK" : "FAILED"); result += test_result; } pre_test = discoverer_main (dc, "testdata/gstreamer_sample_sorenson.mov"); if (pre_test != GST_DISCOVERER_MISSING_PLUGINS) { int test_result; struct SolutionData sample_sorenson_sol[] = { { EXTRACTOR_METATYPE_DURATION, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "0:00:05.000000000", strlen ("0:00:05.000000000") + 1, 0 }, { EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "video/quicktime", strlen ("video/quicktime") + 1, 0 }, { EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "audio/x-qdm2", strlen ("audio/x-qdm2") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "samplesize=16", strlen ("samplesize=16") + 1, 0 }, { EXTRACTOR_METATYPE_AUDIO_CODEC, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "QDesign Music v.2", strlen ("QDesign Music v.2") + 1, 0 }, { EXTRACTOR_METATYPE_CREATION_TIME, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "2001-02-19T16:45:54Z", strlen ("2001-02-19T16:45:54Z") + 1, 0 }, { EXTRACTOR_METATYPE_TITLE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "QuickTime Sample Movie", strlen ("QuickTime Sample Movie") + 1, 0 }, { EXTRACTOR_METATYPE_COPYRIGHT, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "© Apple Computer, Inc. 2001", strlen ("© Apple Computer, Inc. 2001") + 1, 0 }, { EXTRACTOR_METATYPE_CONTAINER_FORMAT, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "ISO MP4/M4A", strlen ("ISO MP4/M4A") + 1, 0 }, { EXTRACTOR_METATYPE_AUDIO_LANGUAGE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "en", strlen ("en") + 1, 0 }, { EXTRACTOR_METATYPE_CHANNELS, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "2", strlen ("2") + 1, 0 }, { EXTRACTOR_METATYPE_SAMPLE_RATE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "22050", strlen ("22050") + 1, 0 }, { EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "video/x-svq", strlen ("video/x-svq") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "svqversion=1", strlen ("svqversion=1") + 1, 0 }, /* Yep, again... */ { EXTRACTOR_METATYPE_CREATION_TIME, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "2001-02-19T16:45:54Z", strlen ("2001-02-19T16:45:54Z") + 1, 0 }, { EXTRACTOR_METATYPE_TITLE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "QuickTime Sample Movie", strlen ("QuickTime Sample Movie") + 1, 0 }, { EXTRACTOR_METATYPE_COPYRIGHT, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "© Apple Computer, Inc. 2001", strlen ("© Apple Computer, Inc. 2001") + 1, 0 }, { EXTRACTOR_METATYPE_CONTAINER_FORMAT, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "ISO MP4/M4A", strlen ("ISO MP4/M4A") + 1, 0 }, { EXTRACTOR_METATYPE_VIDEO_CODEC, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Sorensen video v.1", strlen ("Sorensen video v.1") + 1, 0 }, { EXTRACTOR_METATYPE_VIDEO_LANGUAGE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "en", strlen ("en") + 1, 0 }, { EXTRACTOR_METATYPE_VIDEO_DIMENSIONS, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "190x240", strlen ("190x240") + 1, 0 }, { EXTRACTOR_METATYPE_FRAME_RATE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "12/1", strlen ("12/1") + 1, 0 }, { EXTRACTOR_METATYPE_PIXEL_ASPECT_RATIO, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "1/1", strlen ("1/1") + 1, 0 }, { 0, 0, NULL, NULL, 0, -1 } }; struct ProblemSet ps[] = { { "testdata/gstreamer_sample_sorenson.mov", sample_sorenson_sol }, { NULL, NULL } }; g_print ("Running mov test on GStreamer:\n"); test_result = (0 == ET_main ("gstreamer", ps) ? 0 : 1); g_print ("mov GStreamer test result: %s\n", test_result == 0 ? "OK" : "FAILED"); result += test_result; } pre_test = discoverer_main (dc, "testdata/matroska_flame.mkv"); if (pre_test != GST_DISCOVERER_MISSING_PLUGINS) { int result_stock; int result_patched; struct SolutionData matroska_flame_stock_sol[] = { { EXTRACTOR_METATYPE_DURATION, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "0:00:03.143000000", strlen ("0:00:03.143000000") + 1, 0 }, { EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "video/x-matroska", strlen ("video/x-matroska") + 1, 0 }, { EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "video/x-indeo", strlen ("video/x-indeo") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "indeoversion=4", strlen ("indeoversion=4") + 1, 0 }, { EXTRACTOR_METATYPE_TITLE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "filesegmenttitle", strlen ("filesegmenttitle") + 1, 0 }, { EXTRACTOR_METATYPE_TITLE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "TITLE", strlen ("TITLE") + 1, 0 }, { EXTRACTOR_METATYPE_ARTIST, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "ALBUM/ARTIST", strlen ("ALBUM/ARTIST") + 1, 0 }, { EXTRACTOR_METATYPE_ARTIST, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "ARTIST", strlen ("ARTIST") + 1, 0 }, { EXTRACTOR_METATYPE_COPYRIGHT, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "COPYRIGHT", strlen ("COPYRIGHT") + 1, 0 }, { EXTRACTOR_METATYPE_COMPOSER, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "COMPOSER", strlen ("COMPOSER") + 1, 0 }, { EXTRACTOR_METATYPE_GENRE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "GENRE", strlen ("GENRE") + 1, 0 }, { EXTRACTOR_METATYPE_ENCODER, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "ENCODER", strlen ("ENCODER") + 1, 0 }, { EXTRACTOR_METATYPE_ISRC, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "ISRC", strlen ("ISRC") + 1, 0 }, { EXTRACTOR_METATYPE_CONTAINER_FORMAT, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Matroska", strlen ("Matroska") + 1, 0 }, { EXTRACTOR_METATYPE_VIDEO_CODEC, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Intel Video 4", strlen ("Intel Video 4") + 1, 0 }, { EXTRACTOR_METATYPE_VIDEO_LANGUAGE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "it", strlen ("it") + 1, 0 }, { EXTRACTOR_METATYPE_VIDEO_DIMENSIONS, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "256x240", strlen ("256x240") + 1, 0 }, { EXTRACTOR_METATYPE_FRAME_RATE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "35/1", strlen ("35/1") + 1, 0 }, { EXTRACTOR_METATYPE_PIXEL_ASPECT_RATIO, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "1/1", strlen ("1/1") + 1, 0 }, { 0, 0, NULL, NULL, 0, -1 } }; struct ProblemSet stock_ps[] = { { "testdata/matroska_flame.mkv", matroska_flame_stock_sol }, { NULL, NULL } }; struct SolutionData matroska_flame_patched_sol[] = { { EXTRACTOR_METATYPE_DURATION, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "0:00:03.143000000", strlen ("0:00:03.143000000") + 1, 0 }, { EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "video/x-matroska", strlen ("video/x-matroska") + 1, 0 }, { EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "video/x-indeo", strlen ("video/x-indeo") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "indeoversion=4", strlen ("indeoversion=4") + 1, 0 }, { EXTRACTOR_METATYPE_TITLE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "filesegmenttitle", strlen ("filesegmenttitle") + 1, 0 }, { EXTRACTOR_METATYPE_ALBUM, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "ALBUM/TITLE", strlen ("ALBUM/TITLE") + 1, 0 }, { EXTRACTOR_METATYPE_TITLE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "TITLE", strlen ("TITLE") + 1, 0 }, { EXTRACTOR_METATYPE_TITLE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "SUBTITLE", strlen ("SUBTITLE") + 1, 0 }, { EXTRACTOR_METATYPE_TITLE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "VIDEO/TITLE", strlen ("VIDEO/TITLE") + 1, 0 }, { EXTRACTOR_METATYPE_ARTIST, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "ALBUM/ARTIST", strlen ("ALBUM/ARTIST") + 1, 0 }, { EXTRACTOR_METATYPE_ARTIST, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "ARTIST", strlen ("ARTIST") + 1, 0 }, { EXTRACTOR_METATYPE_SONG_COUNT, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "20", strlen ("20") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "PART_OFFSET=5", strlen ("PART_OFFSET=5") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "ARTIST/INSTRUMENTS=ARTIST/INSTRUMENTS", strlen ("ARTIST/INSTRUMENTS=ARTIST/INSTRUMENTS") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "LEAD_PERFORMER=LEAD_PERFORMER", strlen ("LEAD_PERFORMER=LEAD_PERFORMER") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "ARRANGER=ARRANGER", strlen ("ARRANGER=ARRANGER") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "LYRICIST=LYRICIST", strlen ("LYRICIST=LYRICIST") + 1, 0 }, { EXTRACTOR_METATYPE_MOVIE_DIRECTOR, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "DIRECTOR", strlen ("DIRECTOR") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "ASSISTANT_DIRECTOR=ASSISTANT_DIRECTOR", strlen ("ASSISTANT_DIRECTOR=ASSISTANT_DIRECTOR") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "DIRECTOR_OF_PHOTOGRAPHY=DIRECTOR_OF_PHOTOGRAPHY", strlen ("DIRECTOR_OF_PHOTOGRAPHY=DIRECTOR_OF_PHOTOGRAPHY") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "SOUND_ENGINEER=SOUND_ENGINEER", strlen ("SOUND_ENGINEER=SOUND_ENGINEER") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "ART_DIRECTOR=ART_DIRECTOR", strlen ("ART_DIRECTOR=ART_DIRECTOR") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "PRODUCTION_DESIGNER=PRODUCTION_DESIGNER", strlen ("PRODUCTION_DESIGNER=PRODUCTION_DESIGNER") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "CHOREGRAPHER=CHOREGRAPHER", strlen ("CHOREGRAPHER=CHOREGRAPHER") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "COSTUME_DESIGNER=COSTUME_DESIGNER", strlen ("COSTUME_DESIGNER=COSTUME_DESIGNER") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "ACTOR=ACTOR", strlen ("ACTOR=ACTOR") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "CHARACTER=CHARACTER", strlen ("CHARACTER=CHARACTER") + 1, 0 }, { EXTRACTOR_METATYPE_WRITER, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "WRITTEN_BY", strlen ("WRITTEN_BY") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "SCREENPLAY_BY=SCREENPLAY_BY", strlen ("SCREENPLAY_BY=SCREENPLAY_BY") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "EDITED_BY=EDITED_BY", strlen ("EDITED_BY=EDITED_BY") + 1, 0 }, { EXTRACTOR_METATYPE_PRODUCER, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "PRODUCER", strlen ("PRODUCER") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "COPRODUCER=COPRODUCER", strlen ("COPRODUCER=COPRODUCER") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "EXECUTIVE_PRODUCER=EXECUTIVE_PRODUCER", strlen ("EXECUTIVE_PRODUCER=EXECUTIVE_PRODUCER") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "DISTRIBUTED_BY=DISTRIBUTED_BY", strlen ("DISTRIBUTED_BY=DISTRIBUTED_BY") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "MASTERED_BY=MASTERED_BY", strlen ("MASTERED_BY=MASTERED_BY") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "MIXED_BY=MIXED_BY", strlen ("MIXED_BY=MIXED_BY") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "REMIXED_BY=REMIXED_BY", strlen ("REMIXED_BY=REMIXED_BY") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "PRODUCTION_STUDIO=PRODUCTION_STUDIO", strlen ("PRODUCTION_STUDIO=PRODUCTION_STUDIO") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "THANKS_TO=THANKS_TO", strlen ("THANKS_TO=THANKS_TO") + 1, 0 }, { EXTRACTOR_METATYPE_PUBLISHER, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "PUBLISHER", strlen ("PUBLISHER") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "LABEL=LABEL", strlen ("LABEL=LABEL") + 1, 0 }, { EXTRACTOR_METATYPE_MOOD, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "MOOD", strlen ("MOOD") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "ORIGINAL_MEDIA_TYPE=ORIGINAL_MEDIA_TYPE", strlen ("ORIGINAL_MEDIA_TYPE=ORIGINAL_MEDIA_TYPE") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "CONTENT_TYPE=CONTENT_TYPE", strlen ("CONTENT_TYPE=CONTENT_TYPE") + 1, 0 }, { EXTRACTOR_METATYPE_SUBJECT, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "SUBJECT", strlen ("SUBJECT") + 1, 0 }, { EXTRACTOR_METATYPE_SUMMARY, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "SUMMARY", strlen ("SUMMARY") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "SYNOPSIS=SYNOPSIS", strlen ("SYNOPSIS=SYNOPSIS") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "INITIAL_KEY=INITIAL_KEY", strlen ("INITIAL_KEY=INITIAL_KEY") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "PERIOD=PERIOD", strlen ("PERIOD=PERIOD") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "LAW_RATING=LAW_RATING", strlen ("LAW_RATING=LAW_RATING") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "COMPOSITION_LOCATION=COMPOSITION_LOCATION", strlen ("COMPOSITION_LOCATION=COMPOSITION_LOCATION") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "COMPOSER_NATIONALITY=COMPOSER_NATIONALITY", strlen ("COMPOSER_NATIONALITY=COMPOSER_NATIONALITY") + 1, 0 }, { EXTRACTOR_METATYPE_PLAY_COUNTER, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "PLAY_COUNTER", strlen ("PLAY_COUNTER") + 1, 0 }, { EXTRACTOR_METATYPE_RATING, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "RATING", strlen ("RATING") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "ENCODER_SETTINGS=ENCODER_SETTINGS", strlen ("ENCODER_SETTINGS=ENCODER_SETTINGS") + 1, 0 }, { EXTRACTOR_METATYPE_FRAME_RATE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "FPS", strlen ("FPS") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "MEASURE=MEASURE", strlen ("MEASURE=MEASURE") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "TUNING=TUNING", strlen ("TUNING=TUNING") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "ISBN=ISBN", strlen ("ISBN=ISBN") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "BARCODE=BARCODE", strlen ("BARCODE=BARCODE") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "CATALOG_NUMBER=CATALOG_NUMBER", strlen ("CATALOG_NUMBER=CATALOG_NUMBER") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "LABEL_CODE=LABEL_CODE", strlen ("LABEL_CODE=LABEL_CODE") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "LCCN=LCCN", strlen ("LCCN=LCCN") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "PURCHASE_ITEM=PURCHASE_ITEM", strlen ("PURCHASE_ITEM=PURCHASE_ITEM") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "PURCHASE_INFO=PURCHASE_INFO", strlen ("PURCHASE_INFO=PURCHASE_INFO") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "PURCHASE_OWNER=PURCHASE_OWNER", strlen ("PURCHASE_OWNER=PURCHASE_OWNER") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "PURCHASE_PRICE=PURCHASE_PRICE", strlen ("PURCHASE_PRICE=PURCHASE_PRICE") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "PURCHASE_CURRENCY=PURCHASE_CURRENCY", strlen ("PURCHASE_CURRENCY=PURCHASE_CURRENCY") + 1, 0 }, { EXTRACTOR_METATYPE_ORIGINAL_TITLE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "ORIGINAL/TITLE", strlen ("ORIGINAL/TITLE") + 1, 0 }, { EXTRACTOR_METATYPE_UNKNOWN, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "ORIGINAL/ARTIST/SORT_WITH=ORIGINAL/ARTIST/SORT_WITH", strlen ("ORIGINAL/ARTIST/SORT_WITH=ORIGINAL/ARTIST/SORT_WITH") + 1, 0 }, { EXTRACTOR_METATYPE_ORIGINAL_ARTIST, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "ORIGINAL/ARTIST", strlen ("ORIGINAL/ARTIST") + 1, 0 }, { EXTRACTOR_METATYPE_TRACK_NUMBER, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "10", strlen ("10") + 1, 0 }, { EXTRACTOR_METATYPE_COPYRIGHT, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "COPYRIGHT", strlen ("COPYRIGHT") + 1, 0 }, { EXTRACTOR_METATYPE_CONTACT_INFORMATION, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "COPYRIGHT/EMAIL", strlen ("COPYRIGHT/EMAIL") + 1, 0 }, { EXTRACTOR_METATYPE_CONTACT_INFORMATION, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "COPYRIGHT/ADDRESS", strlen ("COPYRIGHT/ADDRESS") + 1, 0 }, { EXTRACTOR_METATYPE_CREATION_TIME, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "1999-01-01", strlen ("1999-01-01") + 1, 0 }, { EXTRACTOR_METATYPE_COMMENT, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "The purpose of this file is to hold as many examples of Matroska tags as possible.", strlen ("The purpose of this file is to hold as many examples of Matroska tags as possible.") + 1, 0 }, { EXTRACTOR_METATYPE_COMPOSER, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "COMPOSER", strlen ("COMPOSER") + 1, 0 }, { EXTRACTOR_METATYPE_PERFORMER, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "ACCOMPANIMENT", strlen ("ACCOMPANIMENT") + 1, 0 }, { EXTRACTOR_METATYPE_PERFORMER, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "CONDUCTOR", strlen ("CONDUCTOR") + 1, 0 }, { EXTRACTOR_METATYPE_LYRICS, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "LYRICS", strlen ("LYRICS") + 1, 0 }, { EXTRACTOR_METATYPE_ENCODED_BY, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "ENCODED_BY", strlen ("ENCODED_BY") + 1, 0 }, { EXTRACTOR_METATYPE_GENRE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "GENRE", strlen ("GENRE") + 1, 0 }, { EXTRACTOR_METATYPE_DESCRIPTION, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "DESCRIPTION", strlen ("DESCRIPTION") + 1, 0 }, { EXTRACTOR_METATYPE_KEYWORDS, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "KEYWORDS", strlen ("KEYWORDS") + 1, 0 }, { EXTRACTOR_METATYPE_LOCATION_NAME, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "RECORDING_LOCATION", strlen ("RECORDING_LOCATION") + 1, 0 }, { EXTRACTOR_METATYPE_ENCODER, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "ENCODER", strlen ("ENCODER") + 1, 0 }, { EXTRACTOR_METATYPE_ISRC, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "ISRC", strlen ("ISRC") + 1, 0 }, { EXTRACTOR_METATYPE_LICENSE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "LICENSE", strlen ("LICENSE") + 1, 0 }, { EXTRACTOR_METATYPE_CONTAINER_FORMAT, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Matroska", strlen ("Matroska") + 1, 0 }, { EXTRACTOR_METATYPE_VIDEO_CODEC, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Intel Video 4", strlen ("Intel Video 4") + 1, 0 }, { EXTRACTOR_METATYPE_VIDEO_LANGUAGE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "it", strlen ("it") + 1, 0 }, { EXTRACTOR_METATYPE_VIDEO_DIMENSIONS, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "256x240", strlen ("256x240") + 1, 0 }, { EXTRACTOR_METATYPE_FRAME_RATE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "35/1", strlen ("35/1") + 1, 0 }, { EXTRACTOR_METATYPE_PIXEL_ASPECT_RATIO, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "1/1", strlen ("1/1") + 1, 0 }, { 0, 0, NULL, NULL, 0, -1 } }; struct ProblemSet patched_ps[] = { { "testdata/matroska_flame.mkv", matroska_flame_patched_sol }, { NULL, NULL } }; g_print ("Running mkv test on GStreamer, assuming old version:\n"); result_stock = (0 == ET_main ("gstreamer", stock_ps)); g_print ("Old GStreamer test result: %s\n", result_stock == 0 ? "OK" : "FAILED"); g_print ("Running mkv test on GStreamer, assuming new version:\n"); result_patched = (0 == ET_main ("gstreamer", patched_ps)); g_print ("New GStreamer test result: %s\n", result_patched == 0 ? "OK" : "FAILED"); if ((! result_stock) && (! result_patched)) result++; } g_object_unref (dc); if (0 != result) { fprintf (stderr, "gstreamer library did not work perfectly --- consider updating it.\n"); /* do not fail hard, as we know many users have outdated gstreamer packages */ result = 0; } return result; } /* end of test_gstreamer.c */ libextractor-1.3/src/plugins/test_it.c0000644000175000017500000000344212016742777015107 00000000000000/* This file is part of libextractor. (C) 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/test_it.c * @brief testcase for it plugin * @author Christian Grothoff */ #include "platform.h" #include "test_lib.h" /** * Main function for the IT testcase. * * @param argc number of arguments (ignored) * @param argv arguments (ignored) * @return 0 on success */ int main (int argc, char *argv[]) { struct SolutionData it_dawn_sol[] = { { EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "audio/x-mod", strlen ("audio/x-mod") + 1, 0 }, { EXTRACTOR_METATYPE_TITLE, EXTRACTOR_METAFORMAT_C_STRING, "text/plain", "Dawn", strlen ("Dawn") + 1, 0 }, { EXTRACTOR_METATYPE_FORMAT_VERSION, EXTRACTOR_METAFORMAT_C_STRING, "text/plain", "1.2", strlen ("1.2") + 1, 0 }, { 0, 0, NULL, NULL, 0, -1 } }; struct ProblemSet ps[] = { { "testdata/it_dawn.it", it_dawn_sol }, { NULL, NULL } }; return ET_main ("it", ps); } /* end of test_it.c */ libextractor-1.3/src/plugins/test_ogg.c0000644000175000017500000000420512007055715015232 00000000000000/* This file is part of libextractor. (C) 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/test_ogg.c * @brief testcase for ogg plugin * @author Christian Grothoff */ #include "platform.h" #include "test_lib.h" /** * Main function for the OGG testcase. * * @param argc number of arguments (ignored) * @param argv arguments (ignored) * @return 0 on success */ int main (int argc, char *argv[]) { struct SolutionData courseclear_sol[] = { { EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "application/ogg", strlen ("application/ogg") + 1, 0 }, { EXTRACTOR_METATYPE_VENDOR, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "Xiphophorus libVorbis I 20010813", strlen ("Xiphophorus libVorbis I 20010813") + 1, 0 }, { EXTRACTOR_METATYPE_TITLE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "xoc_SMW_06_courseclear", strlen ("xoc_SMW_06_courseclear") + 1, 0 }, { EXTRACTOR_METATYPE_ARTIST, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "XOC", strlen ("XOC") + 1, 0 }, { EXTRACTOR_METATYPE_TRACK_NUMBER, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "6", strlen ("6") + 1, 0 }, { 0, 0, NULL, NULL, 0, -1 } }; struct ProblemSet ps[] = { { "testdata/ogg_courseclear.ogg", courseclear_sol }, { NULL, NULL } }; return ET_main ("ogg", ps); } /* end of test_ogg.c */ libextractor-1.3/src/plugins/test_lib.c0000644000175000017500000001136712163636047015241 00000000000000/* This file is part of libextractor. (C) 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/test_lib.c * @brief helper library for writing testcases * @author Christian Grothoff */ #include "platform.h" #include "test_lib.h" /** * Function that libextractor calls for each * meta data item found. * * @param cls closure the 'struct SolutionData' we are currently working on * @param plugin_name should be "test" * @param type should be "COMMENT" * @param format should be "UTF8" * @param data_mime_type should be "" * @param data hello world or good bye * @param data_len number of bytes in data * @return 0 (always) */ static int process_replies (void *cls, const char *plugin_name, enum EXTRACTOR_MetaType type, enum EXTRACTOR_MetaFormat format, const char *data_mime_type, const char *data, size_t data_len) { struct SolutionData *sd = cls; unsigned int i; for (i=0; -1 != sd[i].solved; i++) { if ( (0 != sd[i].solved) || (sd[i].type != type) || (sd[i].format != format) ) continue; if ( (EXTRACTOR_METAFORMAT_BINARY != format) && ( (sd[i].data_len != data_len) || (0 != memcmp (sd[i].data, data, data_len)) ) ) continue; if ( (EXTRACTOR_METAFORMAT_BINARY == format) && ( (sd[i].data_len > data_len) || (0 != memcmp (sd[i].data, data, sd[i].data_len)) ) ) continue; if (NULL != sd[i].data_mime_type) { if (NULL == data_mime_type) continue; if (0 != strcmp (sd[i].data_mime_type, data_mime_type)) continue; } else { if (NULL != data_mime_type) continue; } sd[i].solved = 1; return 0; } fprintf (stderr, "Got additional meta data of type %d and format %d with value `%.*s' from plugin `%s'\n", type, format, (int) data_len, data, plugin_name); return 0; } /** * Run a test for the given plugin, problem set and options. * * @param plugin_name name of the plugin to load * @param ps array of problems the plugin should solve; * NULL in filename terminates the array. * @param opt options to use for loading the plugin * @return 0 on success, 1 on failure */ static int run (const char *plugin_name, struct ProblemSet *ps, enum EXTRACTOR_Options opt) { struct EXTRACTOR_PluginList *pl; unsigned int i; unsigned int j; int ret; pl = EXTRACTOR_plugin_add_config (NULL, plugin_name, opt); for (i=0; NULL != ps[i].filename; i++) EXTRACTOR_extract (pl, ps[i].filename, NULL, 0, &process_replies, ps[i].solution); EXTRACTOR_plugin_remove_all (pl); ret = 0; for (i=0; NULL != ps[i].filename; i++) for (j=0; -1 != ps[i].solution[j].solved; j++) if (0 == ps[i].solution[j].solved) { ret = 1; fprintf (stderr, "Did not get expected meta data of type %d and format %d with value `%.*s' from plugin `%s'\n", ps[i].solution[j].type, ps[i].solution[j].format, (int) ps[i].solution[j].data_len, ps[i].solution[j].data, plugin_name); } else ps[i].solution[j].solved = 0; /* reset for next round */ return ret; } /** * Main function to be called to test a plugin. * * @param plugin_name name of the plugin to load * @param ps array of problems the plugin should solve; * NULL in filename terminates the array. * @return 0 on success, 1 on failure */ int ET_main (const char *plugin_name, struct ProblemSet *ps) { int ret; /* change environment to find plugins which may not yet be not installed but should be in the current directory (or .libs) on 'make check' */ if (0 != putenv ("LIBEXTRACTOR_PREFIX=." PATH_SEPARATOR_STR ".libs/")) fprintf (stderr, "Failed to update my environment, plugin loading may fail: %s\n", strerror (errno)); ret = run (plugin_name, ps, EXTRACTOR_OPTION_DEFAULT_POLICY); if (0 != ret) return ret; ret = run (plugin_name, ps, EXTRACTOR_OPTION_IN_PROCESS); if (0 != ret) return ret; return 0; } /* end of test_lib.c */ libextractor-1.3/src/plugins/html_extractor.c0000644000175000017500000003666612016742766016507 00000000000000/* This file is part of libextractor. (C) 2002, 2003, 2004, 2005, 2009, 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/html_extractor.c * @brief plugin to support HTML files * @author Christian Grothoff */ #include "platform.h" #include "extractor.h" #include #include #include /** * Mapping of HTML META names to LE types. */ static struct { /** * HTML META name. */ const char *name; /** * Corresponding LE type. */ enum EXTRACTOR_MetaType type; } tagmap[] = { { "author", EXTRACTOR_METATYPE_AUTHOR_NAME }, { "dc.author", EXTRACTOR_METATYPE_AUTHOR_NAME }, { "title", EXTRACTOR_METATYPE_TITLE }, { "dc.title", EXTRACTOR_METATYPE_TITLE}, { "description", EXTRACTOR_METATYPE_DESCRIPTION }, { "dc.description", EXTRACTOR_METATYPE_DESCRIPTION }, { "subject", EXTRACTOR_METATYPE_SUBJECT}, { "dc.subject", EXTRACTOR_METATYPE_SUBJECT}, { "date", EXTRACTOR_METATYPE_UNKNOWN_DATE }, { "dc.date", EXTRACTOR_METATYPE_UNKNOWN_DATE}, { "publisher", EXTRACTOR_METATYPE_PUBLISHER }, { "dc.publisher", EXTRACTOR_METATYPE_PUBLISHER}, { "rights", EXTRACTOR_METATYPE_RIGHTS }, { "dc.rights", EXTRACTOR_METATYPE_RIGHTS }, { "copyright", EXTRACTOR_METATYPE_COPYRIGHT }, { "language", EXTRACTOR_METATYPE_LANGUAGE }, { "keywords", EXTRACTOR_METATYPE_KEYWORDS }, { "abstract", EXTRACTOR_METATYPE_ABSTRACT }, { "formatter", EXTRACTOR_METATYPE_CREATED_BY_SOFTWARE }, { "dc.creator", EXTRACTOR_METATYPE_CREATOR}, { "dc.identifier", EXTRACTOR_METATYPE_URI }, { "dc.format", EXTRACTOR_METATYPE_FORMAT }, { NULL, EXTRACTOR_METATYPE_RESERVED } }; /** * Global handle to MAGIC data. */ static magic_t magic; /** * Map 'meta' tag to LE type. * * @param tag tag to map * @return EXTRACTOR_METATYPE_RESERVED if the type was not found */ static enum EXTRACTOR_MetaType tag_to_type (const char *tag) { unsigned int i; for (i=0; NULL != tagmap[i].name; i++) if (0 == strcasecmp (tag, tagmap[i].name)) return tagmap[i].type; return EXTRACTOR_METATYPE_RESERVED; } /** * Function called by libtidy for error reporting. * * @param doc tidy doc being processed * @param lvl report level * @param line input line * @param col input column * @param mssg message * @return FALSE (no output) */ static Bool report_cb (TidyDoc doc, TidyReportLevel lvl, uint line, uint col, ctmbstr mssg) { return 0; } /** * Input callback: get next byte of input. * * @param sourceData our 'struct EXTRACTOR_ExtractContext' * @return next byte of input, EndOfStream on errors and EOF */ static int get_byte_cb (void *sourceData) { struct EXTRACTOR_ExtractContext *ec = sourceData; void *data; if (1 != ec->read (ec->cls, &data, 1)) return EndOfStream; return *(unsigned char*) data; } /** * Input callback: unget last byte of input. * * @param sourceData our 'struct EXTRACTOR_ExtractContext' * @param bt byte to unget (ignored) */ static void unget_byte_cb (void *sourceData, byte bt) { struct EXTRACTOR_ExtractContext *ec = sourceData; (void) ec->seek (ec->cls, -1, SEEK_CUR); } /** * Input callback: check for EOF. * * @param sourceData our 'struct EXTRACTOR_ExtractContext' * @return true if we are at the EOF */ static Bool eof_cb (void *sourceData) { struct EXTRACTOR_ExtractContext *ec = sourceData; return ec->seek (ec->cls, 0, SEEK_CUR) == ec->get_size (ec->cls); } /** * Main entry method for the 'text/html' extraction plugin. * * @param ec extraction context provided to the plugin */ void EXTRACTOR_html_extract_method (struct EXTRACTOR_ExtractContext *ec) { TidyDoc doc; TidyNode head; TidyNode child; TidyNode title; TidyInputSource src; const char *name; TidyBuffer tbuf; TidyAttr attr; enum EXTRACTOR_MetaType type; ssize_t iret; void *data; const char *mime; if (-1 == (iret = ec->read (ec->cls, &data, 16 * 1024))) return; if (NULL == (mime = magic_buffer (magic, data, iret))) return; if (0 != strncmp (mime, "text/html", strlen ("text/html"))) return; /* not HTML */ if (0 != ec->seek (ec->cls, 0, SEEK_SET)) return; /* seek failed !? */ tidyInitSource (&src, ec, &get_byte_cb, &unget_byte_cb, &eof_cb); if (NULL == (doc = tidyCreate ())) return; tidySetReportFilter (doc, &report_cb); tidySetAppData (doc, ec); if (0 > tidyParseSource (doc, &src)) { tidyRelease (doc); return; } if (1 != tidyStatus (doc)) { tidyRelease (doc); return; } if (NULL == (head = tidyGetHead (doc))) { fprintf (stderr, "no head\n"); tidyRelease (doc); return; } for (child = tidyGetChild (head); NULL != child; child = tidyGetNext (child)) { switch (tidyNodeGetType(child)) { case TidyNode_Root: break; case TidyNode_DocType: break; case TidyNode_Comment: break; case TidyNode_ProcIns: break; case TidyNode_Text: break; case TidyNode_CDATA: break; case TidyNode_Section: break; case TidyNode_Asp: break; case TidyNode_Jste: break; case TidyNode_Php: break; case TidyNode_XmlDecl: break; case TidyNode_Start: case TidyNode_StartEnd: name = tidyNodeGetName (child); if ( (0 == strcasecmp (name, "title")) && (NULL != (title = tidyGetChild (child))) ) { tidyBufInit (&tbuf); tidyNodeGetValue (doc, title, &tbuf); /* add 0-termination */ tidyBufPutByte (&tbuf, 0); if (0 != ec->proc (ec->cls, "html", EXTRACTOR_METATYPE_TITLE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", (const char *) tbuf.bp, tbuf.size)) { tidyBufFree (&tbuf); goto CLEANUP; } tidyBufFree (&tbuf); break; } if (0 == strcasecmp (name, "meta")) { if (NULL == (attr = tidyAttrGetById (child, TidyAttr_NAME))) break; if (EXTRACTOR_METATYPE_RESERVED == (type = tag_to_type (tidyAttrValue (attr)))) break; if (NULL == (attr = tidyAttrGetById (child, TidyAttr_CONTENT))) break; name = tidyAttrValue (attr); if (0 != ec->proc (ec->cls, "html", type, EXTRACTOR_METAFORMAT_UTF8, "text/plain", name, strlen (name) + 1)) goto CLEANUP; break; } break; case TidyNode_End: break; default: break; } } CLEANUP: tidyRelease (doc); } #if OLD /* ******************** parser helper functions ************** */ static int tagMatch (const char *tag, const char *s, const char *e) { return (((e - s) == strlen (tag)) && (0 == strncasecmp (tag, s, e - s))); } static int lookFor (char c, size_t * pos, const char *data, size_t size) { size_t p = *pos; while ((p < size) && (data[p] != c)) { if (data[p] == '\0') return 0; p++; } *pos = p; return p < size; } static int skipWhitespace (size_t * pos, const char *data, size_t size) { size_t p = *pos; while ((p < size) && (isspace ( (unsigned char) data[p]))) { if (data[p] == '\0') return 0; p++; } *pos = p; return p < size; } static int skipLetters (size_t * pos, const char *data, size_t size) { size_t p = *pos; while ((p < size) && (isalpha ( (unsigned char) data[p]))) { if (data[p] == '\0') return 0; p++; } *pos = p; return p < size; } static int lookForMultiple (const char *c, size_t * pos, const char *data, size_t size) { size_t p = *pos; while ((p < size) && (strchr (c, data[p]) == NULL)) { if (data[p] == '\0') return 0; p++; } *pos = p; return p < size; } static void findEntry (const char *key, const char *start, const char *end, const char **mstart, const char **mend) { size_t len; *mstart = NULL; *mend = NULL; len = strlen (key); while (start < end - len - 1) { start++; if (start[len] != '=') continue; if (0 == strncasecmp (start, key, len)) { start += len + 1; *mstart = start; if ((*start == '\"') || (*start == '\'')) { start++; while ((start < end) && (*start != **mstart)) start++; (*mstart)++; /* skip quote */ } else { while ((start < end) && (!isspace ( (unsigned char) *start))) start++; } *mend = start; return; } } } /** * Search all tags that correspond to "tagname". Example: * If the tag is , and * tagname == "meta", keyname="name", keyvalue="foo", * and searchname="desc", then this function returns a * copy (!) of "bar". Easy enough? * * @return NULL if nothing is found */ static char * findInTags (struct TagInfo * t, const char *tagname, const char *keyname, const char *keyvalue, const char *searchname) { const char *pstart; const char *pend; while (t != NULL) { if (tagMatch (tagname, t->tagStart, t->tagEnd)) { findEntry (keyname, t->tagEnd, t->dataStart, &pstart, &pend); if ((pstart != NULL) && (tagMatch (keyvalue, pstart, pend))) { findEntry (searchname, t->tagEnd, t->dataStart, &pstart, &pend); if (pstart != NULL) { char *ret = malloc (pend - pstart + 1); if (ret == NULL) return NULL; memcpy (ret, pstart, pend - pstart); ret[pend - pstart] = '\0'; return ret; } } } t = t->next; } return NULL; } /* mimetype = text/html */ int EXTRACTOR_html_extract (const char *data, size_t size, EXTRACTOR_MetaDataProcessor proc, void *proc_cls, const char *options) { size_t xsize; struct TagInfo *tags; struct TagInfo *t; struct TagInfo tag; size_t pos; size_t tpos; int i; char *charset; char *tmp; char *xtmp; int ret; ret = 0; if (size == 0) return 0; /* only scan first 32k */ if (size > 1024 * 32) xsize = 1024 * 32; else xsize = size; tags = NULL; tag.next = NULL; pos = 0; while (pos < xsize) { if (!lookFor ('<', &pos, data, size)) break; tag.tagStart = &data[++pos]; if (!skipLetters (&pos, data, size)) break; tag.tagEnd = &data[pos]; if (!skipWhitespace (&pos, data, size)) break; STEP3: if (!lookForMultiple (">\"\'", &pos, data, size)) break; if (data[pos] != '>') { /* find end-quote, ignore escaped quotes (\') */ do { tpos = pos; pos++; if (!lookFor (data[tpos], &pos, data, size)) break; } while (data[pos - 1] == '\\'); pos++; goto STEP3; } pos++; if (!skipWhitespace (&pos, data, size)) break; tag.dataStart = &data[pos]; if (!lookFor ('<', &pos, data, size)) break; tag.dataEnd = &data[pos]; i = 0; while (relevantTags[i] != NULL) { if ((strlen (relevantTags[i]) == tag.tagEnd - tag.tagStart) && (0 == strncasecmp (relevantTags[i], tag.tagStart, tag.tagEnd - tag.tagStart))) { t = malloc (sizeof (struct TagInfo)); if (t == NULL) return 0; *t = tag; t->next = tags; tags = t; break; } i++; } /* abort early if we hit the body tag */ if (tagMatch ("body", tag.tagStart, tag.tagEnd)) break; } /* fast exit */ if (tags == NULL) return 0; charset = NULL; /* first, try to determine mime type and/or character set */ tmp = findInTags (tags, "meta", "http-equiv", "content-type", "content"); if (tmp != NULL) { /* ideally, tmp == "test/html; charset=ISO-XXXX-Y" or something like that; if text/html is present, we take that as the mime-type; if charset= is present, we try to use that for character set conversion. */ if (0 == strncasecmp (tmp, "text/html", strlen ("text/html"))) ret = proc (proc_cls, "html", EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "text/html", strlen ("text/html")+1); charset = strcasestr (tmp, "charset="); if (charset != NULL) charset = strdup (&charset[strlen ("charset=")]); free (tmp); } i = 0; while (tagmap[i].name != NULL) { tmp = findInTags (tags, "meta", "name", tagmap[i].name, "content"); if ( (tmp != NULL) && (ret == 0) ) { if (charset == NULL) { ret = proc (proc_cls, "html", tagmap[i].type, EXTRACTOR_METAFORMAT_C_STRING, "text/plain", tmp, strlen (tmp) + 1); } else { xtmp = EXTRACTOR_common_convert_to_utf8 (tmp, strlen (tmp), charset); if (xtmp != NULL) { ret = proc (proc_cls, "html", tagmap[i].type, EXTRACTOR_METAFORMAT_UTF8, "text/plain", xtmp, strlen (xtmp) + 1); free (xtmp); } } } if (tmp != NULL) free (tmp); i++; } while (tags != NULL) { t = tags; if ( (tagMatch ("title", t->tagStart, t->tagEnd)) && (ret == 0) ) { if (charset == NULL) { xtmp = malloc (t->dataEnd - t->dataStart + 1); if (xtmp != NULL) { memcpy (xtmp, t->dataStart, t->dataEnd - t->dataStart); xtmp[t->dataEnd - t->dataStart] = '\0'; ret = proc (proc_cls, "html", EXTRACTOR_METATYPE_TITLE, EXTRACTOR_METAFORMAT_C_STRING, "text/plain", xtmp, strlen (xtmp) + 1); free (xtmp); } } else { xtmp = EXTRACTOR_common_convert_to_utf8 (t->dataStart, t->dataEnd - t->dataStart, charset); if (xtmp != NULL) { ret = proc (proc_cls, "html", EXTRACTOR_METATYPE_TITLE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", xtmp, strlen (xtmp) + 1); free (xtmp); } } } tags = t->next; free (t); } if (charset != NULL) free (charset); return ret; } #endif /** * Initialize glib and load magic file. */ void __attribute__ ((constructor)) html_gobject_init () { magic = magic_open (MAGIC_MIME_TYPE); if (0 != magic_load (magic, NULL)) { /* FIXME: how to deal with errors? */ } } /** * Destructor for the library, cleans up. */ void __attribute__ ((destructor)) html_ltdl_fini () { if (NULL != magic) { magic_close (magic); magic = NULL; } } /* end of html_extractor.c */ libextractor-1.3/src/plugins/previewopus_extractor.c0000644000175000017500000010161712255665502020115 00000000000000/* This file is part of libextractor. Copyright (C) 2008, 2013 Bruno Cabral and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file previewopus_extractor.c * @author Bruno Cabral * @author Christian Grothoff * @brief this extractor produces a binary encoded * audio snippet of music/video files using ffmpeg libs. * * Based on ffmpeg samples. * * Note that ffmpeg has a few issues: * (1) there are no recent official releases of the ffmpeg libs * (2) ffmpeg has a history of having security issues (parser is not robust) * * So this plugin cannot be recommended for system with high security *requirements. */ #include "platform.h" #include "extractor.h" #include #if HAVE_LIBAVUTIL_AVUTIL_H #include #include #include #include #elif HAVE_FFMPEG_AVUTIL_H #include #include #include #include #endif #if HAVE_LIBAVFORMAT_AVFORMAT_H #include #elif HAVE_FFMPEG_AVFORMAT_H #include #endif #if HAVE_LIBAVCODEC_AVCODEC_H #include #elif HAVE_FFMPEG_AVCODEC_H #include #endif #if HAVE_LIBSWSCALE_SWSCALE_H #include #elif HAVE_FFMPEG_SWSCALE_H #include #endif //TODO: Check for ffmpeg #include /** * Set to 1 to enable debug output. */ #define DEBUG 0 /** * Set to 1 to enable a output file for testing. */ #define OUTPUT_FILE 0 /** * Maximum size in bytes for the preview. */ #define MAX_SIZE (28*1024) /** * HardLimit for file */ #define HARD_LIMIT_SIZE (50*1024) /** The output bit rate in kbit/s */ #define OUTPUT_BIT_RATE 28000 /** The number of output channels */ #define OUTPUT_CHANNELS 2 /** The audio sample output format */ #define OUTPUT_SAMPLE_FORMAT AV_SAMPLE_FMT_S16 /** Our output buffer*/ static unsigned char *buffer; /** Actual output buffer size */ static int totalSize; /** * Convert an error code into a text message. * @param error Error code to be converted * @return Corresponding error text (not thread-safe) */ static char *const get_error_text(const int error) { static char error_buffer[255]; av_strerror(error, error_buffer, sizeof(error_buffer)); return error_buffer; } /** * Read callback. * * @param opaque the 'struct EXTRACTOR_ExtractContext' * @param buf where to write data * @param buf_size how many bytes to read * @return -1 on error (or for unknown file size) */ static int read_cb (void *opaque, uint8_t *buf, int buf_size) { struct EXTRACTOR_ExtractContext *ec = opaque; void *data; ssize_t ret; ret = ec->read (ec->cls, &data, buf_size); if (ret <= 0) return ret; memcpy (buf, data, ret); return ret; } /** * Seek callback. * * @param opaque the 'struct EXTRACTOR_ExtractContext' * @param offset where to seek * @param whence how to seek; AVSEEK_SIZE to return file size without seeking * @return -1 on error (or for unknown file size) */ static int64_t seek_cb (void *opaque, int64_t offset, int whence) { struct EXTRACTOR_ExtractContext *ec = opaque; if (AVSEEK_SIZE == whence) return ec->get_size (ec->cls); return ec->seek (ec->cls, offset, whence); } /** * write callback. * * @param opaque NULL * @param pBuffer to write * @param pBufferSize , amount to write * @return 0 on error */ static int writePacket(void *opaque, unsigned char *pBuffer, int pBufferSize) { int sizeToCopy = pBufferSize; if( (totalSize + pBufferSize) > HARD_LIMIT_SIZE) sizeToCopy = HARD_LIMIT_SIZE - totalSize; memcpy(buffer + totalSize, pBuffer, sizeToCopy); totalSize+= sizeToCopy; return sizeToCopy; } /** * Open an output file and the required encoder. * Also set some basic encoder parameters. * Some of these parameters are based on the input file's parameters. */ static int open_output_file( AVCodecContext *input_codec_context, AVFormatContext **output_format_context, AVCodecContext **output_codec_context) { AVStream *stream = NULL; AVCodec *output_codec = NULL; AVIOContext *io_ctx; int error; unsigned char *iob; if (NULL == (iob = av_malloc (16 * 1024))) return AVERROR_EXIT; if (NULL == (io_ctx = avio_alloc_context (iob, 16 * 1024, AVIO_FLAG_WRITE, NULL, NULL, &writePacket /* no writing */, NULL))) { av_free (iob); return AVERROR_EXIT; } if (NULL == ((*output_format_context) = avformat_alloc_context ())) { av_free (io_ctx); return AVERROR_EXIT; } (*output_format_context)->pb = io_ctx; /** Guess the desired container format based on the file extension. */ if (!((*output_format_context)->oformat = av_guess_format(NULL, "file.ogg", NULL))) { #if DEBUG fprintf(stderr, "Could not find output file format\n"); #endif goto cleanup; } /** Find the encoder to be used by its name. */ if (!(output_codec = avcodec_find_encoder(AV_CODEC_ID_OPUS))) { #if DEBUG fprintf(stderr, "Could not find an OPUS encoder.\n"); #endif goto cleanup; } /** Create a new audio stream in the output file container. */ if (!(stream = avformat_new_stream(*output_format_context, output_codec))) { #if DEBUG fprintf(stderr, "Could not create new stream\n"); #endif error = AVERROR(ENOMEM); goto cleanup; } /** Save the encoder context for easiert access later. */ *output_codec_context = stream->codec; /** * Set the basic encoder parameters. * The input file's sample rate is used to avoid a sample rate conversion. */ (*output_codec_context)->channels = OUTPUT_CHANNELS; (*output_codec_context)->channel_layout = av_get_default_channel_layout(OUTPUT_CHANNELS); (*output_codec_context)->sample_rate = 48000; //Opus need 48000 (*output_codec_context)->sample_fmt = AV_SAMPLE_FMT_S16; (*output_codec_context)->bit_rate = OUTPUT_BIT_RATE; /** Open the encoder for the audio stream to use it later. */ if ((error = avcodec_open2(*output_codec_context, output_codec, NULL)) < 0) { #if DEBUG fprintf(stderr, "Could not open output codec (error '%s')\n", get_error_text(error)); #endif goto cleanup; } return 0; cleanup: return error < 0 ? error : AVERROR_EXIT; } /** Initialize one data packet for reading or writing. */ static void init_packet(AVPacket *packet) { av_init_packet(packet); /** Set the packet data and size so that it is recognized as being empty. */ packet->data = NULL; packet->size = 0; } /** Initialize one audio frame for reading from the input file */ static int init_input_frame(AVFrame **frame) { if (!(*frame = avcodec_alloc_frame())) { #if DEBUG fprintf(stderr, "Could not allocate input frame\n"); #endif return AVERROR(ENOMEM); } return 0; } /** * Initialize the audio resampler based on the input and output codec settings. * If the input and output sample formats differ, a conversion is required * libavresample takes care of this, but requires initialization. */ static int init_resampler(AVCodecContext *input_codec_context, AVCodecContext *output_codec_context, AVAudioResampleContext **resample_context) { /** * Only initialize the resampler if it is necessary, i.e., * if and only if the sample formats differ. */ if (input_codec_context->sample_fmt != output_codec_context->sample_fmt || input_codec_context->channels != output_codec_context->channels) { int error; /** Create a resampler context for the conversion. */ if (!(*resample_context = avresample_alloc_context())) { #if DEBUG fprintf(stderr, "Could not allocate resample context\n"); #endif return AVERROR(ENOMEM); } /** * Set the conversion parameters. * Default channel layouts based on the number of channels * are assumed for simplicity (they are sometimes not detected * properly by the demuxer and/or decoder). */ av_opt_set_int(*resample_context, "in_channel_layout", av_get_default_channel_layout(input_codec_context->channels), 0); av_opt_set_int(*resample_context, "out_channel_layout", av_get_default_channel_layout(output_codec_context->channels), 0); av_opt_set_int(*resample_context, "in_sample_rate", input_codec_context->sample_rate, 0); av_opt_set_int(*resample_context, "out_sample_rate", output_codec_context->sample_rate, 0); av_opt_set_int(*resample_context, "in_sample_fmt", input_codec_context->sample_fmt, 0); av_opt_set_int(*resample_context, "out_sample_fmt", output_codec_context->sample_fmt, 0); /** Open the resampler with the specified parameters. */ if ((error = avresample_open(*resample_context)) < 0) { #if DEBUG fprintf(stderr, "Could not open resample context\n"); #endif avresample_free(resample_context); return error; } } return 0; } /** Initialize a FIFO buffer for the audio samples to be encoded. */ static int init_fifo(AVAudioFifo **fifo) { /** Create the FIFO buffer based on the specified output sample format. */ if (!(*fifo = av_audio_fifo_alloc(OUTPUT_SAMPLE_FORMAT, OUTPUT_CHANNELS, 1))) { #if DEBUG fprintf(stderr, "Could not allocate FIFO\n"); #endif return AVERROR(ENOMEM); } return 0; } /** Write the header of the output file container. */ static int write_output_file_header(AVFormatContext *output_format_context) { int error; if ((error = avformat_write_header(output_format_context, NULL)) < 0) { #if DEBUG fprintf(stderr, "Could not write output file header (error '%s')\n", get_error_text(error)); #endif return error; } return 0; } /** Decode one audio frame from the input file. */ static int decode_audio_frame(AVFrame *frame, AVFormatContext *input_format_context, AVCodecContext *input_codec_context, int audio_stream_index, int *data_present, int *finished) { /** Packet used for temporary storage. */ AVPacket input_packet; int error; init_packet(&input_packet); /** Read one audio frame from the input file into a temporary packet. */ while(1){ if ((error = av_read_frame(input_format_context, &input_packet)) < 0) { /** If we are the the end of the file, flush the decoder below. */ if (error == AVERROR_EOF){ #if DEBUG fprintf(stderr, "EOF in decode_audio\n"); #endif *finished = 1; } else { #if DEBUG fprintf(stderr, "Could not read frame (error '%s')\n", get_error_text(error)); #endif return error; } } if(input_packet.stream_index == audio_stream_index) break; } /** * Decode the audio frame stored in the temporary packet. * The input audio stream decoder is used to do this. * If we are at the end of the file, pass an empty packet to the decoder * to flush it. */ if ((error = avcodec_decode_audio4(input_codec_context, frame, data_present, &input_packet)) < 0) { #if DEBUG fprintf(stderr, "Could not decode frame (error '%s')\n", get_error_text(error)); #endif av_free_packet(&input_packet); return error; } /** * If the decoder has not been flushed completely, we are not finished, * so that this function has to be called again. */ if (*finished && *data_present) *finished = 0; av_free_packet(&input_packet); return 0; } /** * Initialize a temporary storage for the specified number of audio samples. * The conversion requires temporary storage due to the different format. * The number of audio samples to be allocated is specified in frame_size. */ static int init_converted_samples(uint8_t ***converted_input_samples, int* out_linesize, AVCodecContext *output_codec_context, int frame_size) { int error; /** * Allocate as many pointers as there are audio channels. * Each pointer will later point to the audio samples of the corresponding * channels (although it may be NULL for interleaved formats). */ if (!(*converted_input_samples = calloc(output_codec_context->channels, sizeof(**converted_input_samples)))) { #if DEBUG fprintf(stderr, "Could not allocate converted input sample pointers\n"); #endif return AVERROR(ENOMEM); } /** * Allocate memory for the samples of all channels in one consecutive * block for convenience. */ if ((error = av_samples_alloc(*converted_input_samples, out_linesize, output_codec_context->channels, frame_size, output_codec_context->sample_fmt, 0)) < 0) { #if DEBUG fprintf(stderr, "Could not allocate converted input samples (error '%s')\n", get_error_text(error)); #endif av_freep(&(*converted_input_samples)[0]); free(*converted_input_samples); return error; } return 0; } /** * Convert the input audio samples into the output sample format. * The conversion happens on a per-frame basis, the size of which is specified * by frame_size. */ static int convert_samples(uint8_t **input_data, uint8_t **converted_data, const int in_sample, const int out_sample, const int out_linesize, AVAudioResampleContext *resample_context) { int error; /** Convert the samples using the resampler. */ if ((error = avresample_convert(resample_context, converted_data, out_linesize, out_sample, input_data, 0, in_sample)) < 0) { #if DEBUG fprintf(stderr, "Could not convert input samples (error '%s')\n", get_error_text(error)); #endif return error; } /** * Perform a sanity check so that the number of converted samples is * not greater than the number of samples to be converted. * If the sample rates differ, this case has to be handled differently */ if (avresample_available(resample_context)) { #if DEBUG fprintf(stderr, "%i Converted samples left over\n",avresample_available(resample_context)); #endif } return 0; } /** Add converted input audio samples to the FIFO buffer for later processing. */ static int add_samples_to_fifo(AVAudioFifo *fifo, uint8_t **converted_input_samples, const int frame_size) { int error; /** * Make the FIFO as large as it needs to be to hold both, * the old and the new samples. */ if ((error = av_audio_fifo_realloc(fifo, av_audio_fifo_size(fifo) + frame_size)) < 0) { #if DEBUG fprintf(stderr, "Could not reallocate FIFO\n"); #endif return error; } /** Store the new samples in the FIFO buffer. */ if (av_audio_fifo_write(fifo, (void **)converted_input_samples, frame_size) < frame_size) { #if DEBUG fprintf(stderr, "Could not write data to FIFO\n"); #endif return AVERROR_EXIT; } return 0; } /** * Read one audio frame from the input file, decodes, converts and stores * it in the FIFO buffer. */ static int read_decode_convert_and_store(AVAudioFifo *fifo, AVFormatContext *input_format_context, AVCodecContext *input_codec_context, AVCodecContext *output_codec_context, AVAudioResampleContext *resampler_context, int audio_stream_index, int *finished) { /** Temporary storage of the input samples of the frame read from the file. */ AVFrame *input_frame = NULL; /** Temporary storage for the converted input samples. */ uint8_t **converted_input_samples = NULL; int data_present; int ret = AVERROR_EXIT; /** Initialize temporary storage for one input frame. */ if (init_input_frame(&input_frame)){ #if DEBUG fprintf(stderr, "Failed at init frame\n"); #endif goto cleanup; } /** Decode one frame worth of audio samples. */ if (decode_audio_frame(input_frame, input_format_context, input_codec_context, audio_stream_index, &data_present, finished)){ #if DEBUG fprintf(stderr, "Failed at decode audio\n"); #endif goto cleanup; } /** * If we are at the end of the file and there are no more samples * in the decoder which are delayed, we are actually finished. * This must not be treated as an error. */ if (*finished && !data_present) { ret = 0; #if DEBUG fprintf(stderr, "Failed at finished or no data\n"); #endif goto cleanup; } /** If there is decoded data, convert and store it */ if (data_present) { int out_linesize; //FIX ME: I'm losing samples, but can't get it to work. int out_samples = avresample_available(resampler_context) + avresample_get_delay(resampler_context) + input_frame->nb_samples; //fprintf(stderr, "Input nbsamples %i out_samples: %i \n",input_frame->nb_samples,out_samples); /** Initialize the temporary storage for the converted input samples. */ if (init_converted_samples(&converted_input_samples, &out_linesize, output_codec_context, out_samples)){ #if DEBUG fprintf(stderr, "Failed at init_converted_samples\n"); #endif goto cleanup; } /** * Convert the input samples to the desired output sample format. * This requires a temporary storage provided by converted_input_samples. */ if (convert_samples(input_frame->extended_data, converted_input_samples, input_frame->nb_samples, out_samples, out_linesize ,resampler_context)){ #if DEBUG fprintf(stderr, "Failed at convert_samples, input frame %i \n",input_frame->nb_samples); #endif goto cleanup; } /** Add the converted input samples to the FIFO buffer for later processing. */ if (add_samples_to_fifo(fifo, converted_input_samples, out_samples)){ #if DEBUG fprintf(stderr, "Failed at add_samples_to_fifo\n"); #endif goto cleanup; } ret = 0; } ret = 0; cleanup: if (converted_input_samples) { av_freep(&converted_input_samples[0]); free(converted_input_samples); } avcodec_free_frame(&input_frame); return ret; } /** * Initialize one input frame for writing to the output file. * The frame will be exactly frame_size samples large. */ static int init_output_frame(AVFrame **frame, AVCodecContext *output_codec_context, int frame_size) { int error; /** Create a new frame to store the audio samples. */ if (!(*frame = avcodec_alloc_frame())) { #if DEBUG fprintf(stderr, "Could not allocate output frame\n"); #endif return AVERROR_EXIT; } /** * Set the frame's parameters, especially its size and format. * av_frame_get_buffer needs this to allocate memory for the * audio samples of the frame. * Default channel layouts based on the number of channels * are assumed for simplicity. */ (*frame)->nb_samples = frame_size; (*frame)->channel_layout = output_codec_context->channel_layout; (*frame)->format = output_codec_context->sample_fmt; (*frame)->sample_rate = output_codec_context->sample_rate; //fprintf(stderr, "%i %i \n",frame_size , (*frame)->format,(*frame)->sample_rate); /** * Allocate the samples of the created frame. This call will make * sure that the audio frame can hold as many samples as specified. */ if ((error = av_frame_get_buffer(*frame, 0)) < 0) { #if DEBUG fprintf(stderr, "Could allocate output frame samples (error '%s')\n", get_error_text(error)); #endif avcodec_free_frame(frame); return error; } return 0; } /** Encode one frame worth of audio to the output file. */ static int encode_audio_frame(AVFrame *frame, AVFormatContext *output_format_context, AVCodecContext *output_codec_context, int *data_present) { /** Packet used for temporary storage. */ AVPacket output_packet; int error; init_packet(&output_packet); /** * Encode the audio frame and store it in the temporary packet. * The output audio stream encoder is used to do this. */ if ((error = avcodec_encode_audio2(output_codec_context, &output_packet, frame, data_present)) < 0) { #if DEBUG fprintf(stderr, "Could not encode frame (error '%s')\n", get_error_text(error)); #endif av_free_packet(&output_packet); return error; } /** Write one audio frame from the temporary packet to the output file. */ if (*data_present) { if ((error = av_write_frame(output_format_context, &output_packet)) < 0) { #if DEBUG fprintf(stderr, "Could not write frame (error '%s')\n", get_error_text(error)); #endif av_free_packet(&output_packet); return error; } av_free_packet(&output_packet); } return 0; } /** * Load one audio frame from the FIFO buffer, encode and write it to the * output file. */ static int load_encode_and_write(AVAudioFifo *fifo, AVFormatContext *output_format_context, AVCodecContext *output_codec_context) { /** Temporary storage of the output samples of the frame written to the file. */ AVFrame *output_frame; /** * Use the maximum number of possible samples per frame. * If there is less than the maximum possible frame size in the FIFO * buffer use this number. Otherwise, use the maximum possible frame size */ const int frame_size = FFMIN(av_audio_fifo_size(fifo), output_codec_context->frame_size); int data_written; /** Initialize temporary storage for one output frame. */ if (init_output_frame(&output_frame, output_codec_context, frame_size)) return AVERROR_EXIT; /** * Read as many samples from the FIFO buffer as required to fill the frame. * The samples are stored in the frame temporarily. */ if (av_audio_fifo_read(fifo, (void **)output_frame->data, frame_size) < frame_size) { #if DEBUG fprintf(stderr, "Could not read data from FIFO\n"); #endif avcodec_free_frame(&output_frame); return AVERROR_EXIT; } /** Encode one frame worth of audio samples. */ if (encode_audio_frame(output_frame, output_format_context, output_codec_context, &data_written)) { avcodec_free_frame(&output_frame); return AVERROR_EXIT; } avcodec_free_frame(&output_frame); return 0; } /** Write the trailer of the output file container. */ static int write_output_file_trailer(AVFormatContext *output_format_context) { int error; if ((error = av_write_trailer(output_format_context)) < 0) { #if DEBUG fprintf(stderr, "Could not write output file trailer (error '%s')\n", get_error_text(error)); #endif return error; } return 0; } #define ENUM_CODEC_ID enum AVCodecID /** * Perform the audio snippet extraction * * @param ec extraction context to use */ static void extract_audio (struct EXTRACTOR_ExtractContext *ec) { AVIOContext *io_ctx; struct AVFormatContext *format_ctx; AVCodecContext *codec_ctx; AVFormatContext *output_format_context = NULL; AVCodec *codec; AVDictionary *options; AVFrame *frame; AVCodecContext* output_codec_context = NULL; AVAudioResampleContext *resample_context = NULL; AVAudioFifo *fifo = NULL; int audio_stream_index; int i; int err; int duration; unsigned char *iob; totalSize =0; if (NULL == (iob = av_malloc (16 * 1024))) return; if (NULL == (io_ctx = avio_alloc_context (iob, 16 * 1024, 0, ec, &read_cb, NULL /* no writing */, &seek_cb))) { av_free (iob); return; } if (NULL == (format_ctx = avformat_alloc_context ())) { av_free (io_ctx); return; } format_ctx->pb = io_ctx; options = NULL; if (0 != avformat_open_input (&format_ctx, "", NULL, &options)) return; av_dict_free (&options); if (0 > avformat_find_stream_info (format_ctx, NULL)) { #if DEBUG fprintf (stderr, "Failed to read stream info\n"); #endif avformat_close_input (&format_ctx); av_free (io_ctx); return; } codec = NULL; codec_ctx = NULL; audio_stream_index = -1; for (i=0; inb_streams; i++) { codec_ctx = format_ctx->streams[i]->codec; if (AVMEDIA_TYPE_AUDIO != codec_ctx->codec_type) continue; if (NULL == (codec = avcodec_find_decoder (codec_ctx->codec_id))) continue; options = NULL; if (0 != (err = avcodec_open2 (codec_ctx, codec, &options))) { codec = NULL; continue; } av_dict_free (&options); audio_stream_index = i; break; } if ( (-1 == audio_stream_index) || (0 == codec_ctx->channels) ) { #if DEBUG fprintf (stderr, "No audio streams or no suitable codec found\n"); #endif if (NULL != codec) avcodec_close (codec_ctx); avformat_close_input (&format_ctx); av_free (io_ctx); return; } if (NULL == (frame = avcodec_alloc_frame ())) { #if DEBUG fprintf (stderr, "Failed to allocate frame\n"); #endif avcodec_close (codec_ctx); avformat_close_input (&format_ctx); av_free (io_ctx); return; } if(!(buffer = malloc(HARD_LIMIT_SIZE))) goto cleanup; /** Open the output file for writing. */ if (open_output_file( codec_ctx,&output_format_context, &output_codec_context)) goto cleanup; /** Initialize the resampler to be able to convert audio sample formats. */ if (init_resampler(codec_ctx, output_codec_context, &resample_context)) goto cleanup; /** Initialize the FIFO buffer to store audio samples to be encoded. */ if (init_fifo(&fifo)) goto cleanup; /** Write the header of the output file container. */ if (write_output_file_header(output_format_context)) goto cleanup; if (format_ctx->duration == AV_NOPTS_VALUE) { duration = -1; #if DEBUG fprintf (stderr, "Duration unknown\n"); #endif } else { #if DEBUG duration = format_ctx->duration; fprintf (stderr, "Duration: %lld\n", format_ctx->duration); #endif } /* if duration is known, seek to first tried, * else use 10 sec into stream */ if(-1 != duration) err = av_seek_frame (format_ctx, -1, (duration/3), 0); else err = av_seek_frame (format_ctx, -1, 10 * AV_TIME_BASE, 0); if (err >= 0) avcodec_flush_buffers (codec_ctx); /** * Loop as long as we have input samples to read or output samples * to write; abort as soon as we have neither. */ while (1) { /** Use the encoder's desired frame size for processing. */ const int output_frame_size = output_codec_context->frame_size; int finished = 0; /** * Make sure that there is one frame worth of samples in the FIFO * buffer so that the encoder can do its work. * Since the decoder's and the encoder's frame size may differ, we * need to FIFO buffer to store as many frames worth of input samples * that they make up at least one frame worth of output samples. */ while ((av_audio_fifo_size(fifo) < output_frame_size)) { /** * Decode one frame worth of audio samples, convert it to the * output sample format and put it into the FIFO buffer. */ if (read_decode_convert_and_store(fifo, format_ctx,codec_ctx, output_codec_context, resample_context,audio_stream_index, &finished)){ goto cleanup; } /** * If we are at the end of the input file, we continue * encoding the remaining audio samples to the output file. */ if (finished) break; } /* Already over our limit*/ if(totalSize >= MAX_SIZE) finished = 1; /** * If we have enough samples for the encoder, we encode them. * At the end of the file, we pass the remaining samples to * the encoder. */ while (av_audio_fifo_size(fifo) >= output_frame_size || (finished && av_audio_fifo_size(fifo) > 0)){ /** * Take one frame worth of audio samples from the FIFO buffer, * encode it and write it to the output file. */ if (load_encode_and_write(fifo,output_format_context, output_codec_context)) goto cleanup; } /** * If we are at the end of the input file and have encoded * all remaining samples, we can exit this loop and finish. */ if (finished) { int data_written; /** Flush the encoder as it may have delayed frames. */ do { encode_audio_frame(NULL, output_format_context, output_codec_context, &data_written); } while (data_written); break; } } /** Write the trailer of the output file container. */ if (write_output_file_trailer(output_format_context)) goto cleanup; ec->proc (ec->cls, "previewopus", EXTRACTOR_METATYPE_AUDIO_PREVIEW, EXTRACTOR_METAFORMAT_BINARY, "audio/opus", buffer, totalSize); #if OUTPUT_FILE FILE *f; f = fopen("example.opus", "wb"); if (!f) { fprintf(stderr, "Could not open %s\n", "file"); exit(1); } fwrite(buffer, 1, totalSize, f); fclose(f); #endif cleanup: av_free (frame); free(buffer); if (fifo) av_audio_fifo_free(fifo); if (resample_context) { avresample_close(resample_context); avresample_free(&resample_context); } if (output_codec_context) avcodec_close(output_codec_context); if (codec_ctx) avcodec_close(codec_ctx); if (format_ctx) avformat_close_input(&format_ctx); av_free (io_ctx); } /** * Main method for the opus-preview plugin. * * @param ec extraction context */ void EXTRACTOR_previewopus_extract_method (struct EXTRACTOR_ExtractContext *ec) { ssize_t iret; void *data; if (-1 == (iret = ec->read (ec->cls, &data, 16 * 1024))) return; if (0 != ec->seek (ec->cls, 0, SEEK_SET)) return; extract_audio (ec); } /** * Log callback. Does nothing. * * @param ptr NULL * @param level log level * @param format format string * @param ap arguments for format */ static void previewopus_av_log_callback (void* ptr, int level, const char *format, va_list ap) { #if DEBUG vfprintf(stderr, format, ap); #endif } /** * Initialize av-libs */ void __attribute__ ((constructor)) previewopus_lib_init (void) { av_log_set_callback (&previewopus_av_log_callback); av_register_all (); } /** * Destructor for the library, cleans up. */ void __attribute__ ((destructor)) previewopus_ltdl_fini () { } /* end of previewopus_extractor.c */ libextractor-1.3/src/plugins/exiv2_extractor.cc0000644000175000017500000004401612162274255016722 00000000000000// ***************************************************************** -*- C++ -*- /* * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 3 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file plugins/exiv2_extractor.cc * @brief libextractor plugin for Exif using exiv2 * @author Andreas Huggel (ahu) * @author Christian Grothoff */ #include "platform.h" #include "extractor.h" #include #include #include #include #include #include #include #include #include /** * Enable debugging to get error messages. */ #define DEBUG 0 /** * Implementation of EXIV2's BasicIO interface based * on the 'struct EXTRACTOR_ExtractContext. */ class ExtractorIO : public Exiv2::BasicIo { private: /** * Extract context we are using. */ struct EXTRACTOR_ExtractContext *ec; public: /** * Constructor. * * @param s_ec extract context to wrap */ ExtractorIO (struct EXTRACTOR_ExtractContext *s_ec) { ec = s_ec; } /** * Destructor. */ virtual ~ExtractorIO () { /* nothing to do */ } /** * Open stream. * * @return 0 (always successful) */ virtual int open (); /** * Close stream. * * @return 0 (always successful) */ virtual int close (); /** * Read up to 'rcount' bytes into a buffer * * @param rcount number of bytes to read * @return buffer with data read, empty buffer (!) on failure (!) */ virtual Exiv2::DataBuf read (long rcount); /** * Read up to 'rcount' bytes into 'buf'. * * @param buf buffer to fill * @param rcount size of 'buf' * @return number of bytes read successfully, 0 on failure (!) */ virtual long read (Exiv2::byte *buf, long rcount); /** * Read a single character. * * @return the character * @throw exception on errors */ virtual int getb (); /** * Write to stream. * * @param data data to write * @param wcount how many bytes to write * @return -1 (always fails) */ virtual long write (const Exiv2::byte *data, long wcount); /** * Write to stream. * * @param src stream to copy * @return -1 (always fails) */ virtual long write (Exiv2::BasicIo &src); /** * Write a single byte. * * @param data byte to write * @return -1 (always fails) */ virtual int putb (Exiv2::byte data); /** * Not supported. * * @throws error */ virtual void transfer (Exiv2::BasicIo& src); /** * Seek to the given offset. * * @param offset desired offset * @parma pos offset is relative to where? * @return -1 on failure, 0 on success */ virtual int seek (long offset, Exiv2::BasicIo::Position pos); /** * Not supported. * * @throws error */ virtual Exiv2::byte* mmap (bool isWritable); /** * Not supported. * * @return -1 (error) */ virtual int munmap (); /** * Return our current offset in the file. * * @return -1 on error */ virtual long int tell (void) const; /** * Return overall size of the file. * * @return -1 on error */ virtual long int size (void) const; /** * Check if file is open. * * @return true (always). */ virtual bool isopen () const; /** * Check if this file source is in error mode. * * @return 0 (always all is fine). */ virtual int error () const; /** * Check if current position of the file is at the end * * @return true if at EOF, false if not. */ virtual bool eof () const; /** * Not supported. * * @throws error */ virtual std::string path () const; #ifdef EXV_UNICODE_PATH /** * Not supported. * * @throws error */ virtual std::wstring wpath () const; #endif /** * Not supported. * * @throws error */ virtual Exiv2::BasicIo::AutoPtr temporary () const; }; /** * Open stream. * * @return 0 (always successful) */ int ExtractorIO::open () { return 0; } /** * Close stream. * * @return 0 (always successful) */ int ExtractorIO::close () { return 0; } /** * Read up to 'rcount' bytes into a buffer * * @param rcount number of bytes to read * @return buffer with data read, empty buffer (!) on failure (!) */ Exiv2::DataBuf ExtractorIO::read (long rcount) { void *data; ssize_t ret; if (-1 == (ret = ec->read (ec->cls, &data, rcount))) return Exiv2::DataBuf (NULL, 0); return Exiv2::DataBuf ((const Exiv2::byte *) data, ret); } /** * Read up to 'rcount' bytes into 'buf'. * * @param buf buffer to fill * @param rcount size of 'buf' * @return number of bytes read successfully, 0 on failure (!) */ long ExtractorIO::read (Exiv2::byte *buf, long rcount) { void *data; ssize_t ret; long got; got = 0; while (got < rcount) { if (-1 == (ret = ec->read (ec->cls, &data, rcount - got))) return got; if (0 == ret) break; memcpy (&buf[got], data, ret); got += ret; } return got; } /** * Read a single character. * * @return the character * @throw exception on errors */ int ExtractorIO::getb () { void *data; const unsigned char *r; if (1 != ec->read (ec->cls, &data, 1)) throw Exiv2::BasicError (42 /* error code */); r = (const unsigned char *) data; return *r; } /** * Write to stream. * * @param data data to write * @param wcount how many bytes to write * @return -1 (always fails) */ long ExtractorIO::write (const Exiv2::byte *data, long wcount) { return -1; } /** * Write to stream. * * @param src stream to copy * @return -1 (always fails) */ long ExtractorIO::write (Exiv2::BasicIo &src) { return -1; } /** * Write a single byte. * * @param data byte to write * @return -1 (always fails) */ int ExtractorIO::putb (Exiv2::byte data) { return -1; } /** * Not supported. * * @throws error */ void ExtractorIO::transfer (Exiv2::BasicIo& src) { throw Exiv2::BasicError (42 /* error code */); } /** * Seek to the given offset. * * @param offset desired offset * @parma pos offset is relative to where? * @return -1 on failure, 0 on success */ int ExtractorIO::seek (long offset, Exiv2::BasicIo::Position pos) { int rel; switch (pos) { case beg: // Exiv2::BasicIo::beg: rel = SEEK_SET; break; case cur: rel = SEEK_CUR; break; case end: rel = SEEK_END; break; default: abort (); } if (-1 == ec->seek (ec->cls, offset, rel)) return -1; return 0; } /** * Not supported. * * @throws error */ Exiv2::byte * ExtractorIO::mmap (bool isWritable) { throw Exiv2::BasicError (42 /* error code */); } /** * Not supported. * * @return -1 error */ int ExtractorIO::munmap () { return -1; } /** * Return our current offset in the file. * * @return -1 on error */ long int ExtractorIO::tell (void) const { return (long) ec->seek (ec->cls, 0, SEEK_CUR); } /** * Return overall size of the file. * * @return -1 on error */ long int ExtractorIO::size (void) const { return (long) ec->get_size (ec->cls); } /** * Check if file is open. * * @return true (always). */ bool ExtractorIO::isopen () const { return true; } /** * Check if this file source is in error mode. * * @return 0 (always all is fine). */ int ExtractorIO::error () const { return 0; } /** * Check if current position of the file is at the end * * @return true if at EOF, false if not. */ bool ExtractorIO::eof () const { return size () == tell (); } /** * Not supported. * * @throws error */ std::string ExtractorIO::path () const { throw Exiv2::BasicError (42 /* error code */); } #ifdef EXV_UNICODE_PATH /** * Not supported. * * @throws error */ std::wstring ExtractorIO::wpath () const { throw Exiv2::BasicError (42 /* error code */); } #endif /** * Not supported. * * @throws error */ Exiv2::BasicIo::AutoPtr ExtractorIO::temporary () const { fprintf (stderr, "throwing temporary error\n"); throw Exiv2::BasicError (42 /* error code */); } /** * Pass the given UTF-8 string to the 'proc' callback using * the given type. Uses 'return 1' if 'proc' returns non-0. * * @param s 0-terminated UTF8 string value with the meta data * @param type libextractor type for the meta data */ #define ADD(s, type) do { if (0 != proc (proc_cls, "exiv2", type, EXTRACTOR_METAFORMAT_UTF8, "text/plain", s, strlen (s) + 1)) return 1; } while (0) /** * Try to find a given key in the exifData and if a value is * found, pass it to 'proc'. * * @param exifData metadata set to inspect * @param key key to lookup in exifData * @param type extractor type to use * @param proc function to call with results * @param proc_cls closurer for proc * @return 0 to continue extracting, 1 to abort */ static int add_exiv2_tag (const Exiv2::ExifData& exifData, const std::string& key, enum EXTRACTOR_MetaType type, EXTRACTOR_MetaDataProcessor proc, void *proc_cls) { const char *str; Exiv2::ExifKey ek (key); Exiv2::ExifData::const_iterator md = exifData.findKey (ek); if (exifData.end () == md) return 0; /* not found */ std::string ccstr = Exiv2::toString(*md); str = ccstr.c_str(); /* skip over whitespace */ while ( (strlen (str) > 0) && isspace ((unsigned char) str[0])) str++; if (strlen (str) > 0) ADD (str, type); md++; return 0; } /** * Try to find a given key in the iptcData and if a value is * found, pass it to 'proc'. * * @param ipctData metadata set to inspect * @param key key to lookup in exifData * @param type extractor type to use * @param proc function to call with results * @param proc_cls closurer for proc * @return 0 to continue extracting, 1 to abort */ static int add_iptc_data (const Exiv2::IptcData& iptcData, const std::string& key, enum EXTRACTOR_MetaType type, EXTRACTOR_MetaDataProcessor proc, void *proc_cls) { const char *str; Exiv2::IptcKey ek (key); Exiv2::IptcData::const_iterator md = iptcData.findKey (ek); while (iptcData.end () != md) { if (0 != strcmp (Exiv2::toString (md->key ()).c_str (), key.c_str ())) break; std::string ccstr = Exiv2::toString (*md); str = ccstr.c_str (); /* skip over whitespace */ while ((strlen (str) > 0) && isspace ((unsigned char) str[0])) str++; if (strlen (str) > 0) ADD (str, type); md++; } return 0; } /** * Try to find a given key in the xmpData and if a value is * found, pass it to 'proc'. * * @param xmpData metadata set to inspect * @param key key to lookup in exifData * @param type extractor type to use * @param proc function to call with results * @param proc_cls closurer for proc * @return 0 to continue extracting, 1 to abort */ static int add_xmp_data (const Exiv2::XmpData& xmpData, const std::string& key, enum EXTRACTOR_MetaType type, EXTRACTOR_MetaDataProcessor proc, void *proc_cls) { const char * str; Exiv2::XmpKey ek (key); Exiv2::XmpData::const_iterator md = xmpData.findKey (ek); while (xmpData.end () != md) { if (0 != strcmp (Exiv2::toString (md->key ()).c_str (), key.c_str ())) break; std::string ccstr = Exiv2::toString (*md); str = ccstr.c_str (); while ( (strlen (str) > 0) && isspace ((unsigned char) str[0])) str++; if (strlen (str) > 0) ADD (str, type); md++; } return 0; } /** * Call 'add_exiv2_tag' for the given key-type combination. * Uses 'return' if add_exiv2_tag returns non-0. * * @param s key to lookup * @param type libextractor type to use for the meta data found under the given key */ #define ADDEXIV(s,t) do { if (0 != add_exiv2_tag (exifData, s, t, ec->proc, ec->cls)) return; } while (0) /** * Call 'add_iptc_data' for the given key-type combination. * Uses 'return' if add_iptc_data returns non-0. * * @param s key to lookup * @param type libextractor type to use for the meta data found under the given key */ #define ADDIPTC(s,t) do { if (0 != add_iptc_data (iptcData, s, t, ec->proc, ec->cls)) return; } while (0) /** * Call 'add_xmp_data' for the given key-type combination. * Uses 'return' if add_xmp_data returns non-0. * * @param s key to lookup * @param type libextractor type to use for the meta data found under the given key */ #define ADDXMP(s,t) do { if (0 != add_xmp_data (xmpData, s, t, ec->proc, ec->cls)) return; } while (0) /** * Main entry method for the 'exiv2' extraction plugin. * * @param ec extraction context provided to the plugin */ extern "C" void EXTRACTOR_exiv2_extract_method (struct EXTRACTOR_ExtractContext *ec) { try { #if EXIV2_MAKE_VERSION(0,23,0) <= EXIV2_VERSION Exiv2::LogMsg::setLevel (Exiv2::LogMsg::mute); #endif std::auto_ptr eio(new ExtractorIO (ec)); Exiv2::Image::AutoPtr image = Exiv2::ImageFactory::open (eio); if (0 == image.get ()) return; image->readMetadata (); Exiv2::ExifData &exifData = image->exifData (); if (! exifData.empty ()) { ADDEXIV ("Exif.Image.Copyright", EXTRACTOR_METATYPE_COPYRIGHT); ADDEXIV ("Exif.Photo.UserComment", EXTRACTOR_METATYPE_COMMENT); ADDEXIV ("Exif.GPSInfo.GPSLatitudeRef", EXTRACTOR_METATYPE_GPS_LATITUDE_REF); ADDEXIV ("Exif.GPSInfo.GPSLatitude", EXTRACTOR_METATYPE_GPS_LATITUDE); ADDEXIV ("Exif.GPSInfo.GPSLongitudeRef", EXTRACTOR_METATYPE_GPS_LONGITUDE_REF); ADDEXIV ("Exif.GPSInfo.GPSLongitude", EXTRACTOR_METATYPE_GPS_LONGITUDE); ADDEXIV ("Exif.Image.Make", EXTRACTOR_METATYPE_CAMERA_MAKE); ADDEXIV ("Exif.Image.Model", EXTRACTOR_METATYPE_CAMERA_MODEL); ADDEXIV ("Exif.Image.Orientation", EXTRACTOR_METATYPE_ORIENTATION); ADDEXIV ("Exif.Photo.DateTimeOriginal", EXTRACTOR_METATYPE_CREATION_DATE); ADDEXIV ("Exif.Photo.ExposureBiasValue", EXTRACTOR_METATYPE_EXPOSURE_BIAS); ADDEXIV ("Exif.Photo.Flash", EXTRACTOR_METATYPE_FLASH); ADDEXIV ("Exif.CanonSi.FlashBias", EXTRACTOR_METATYPE_FLASH_BIAS); ADDEXIV ("Exif.Panasonic.FlashBias", EXTRACTOR_METATYPE_FLASH_BIAS); ADDEXIV ("Exif.Olympus.FlashBias", EXTRACTOR_METATYPE_FLASH_BIAS); ADDEXIV ("Exif.Photo.FocalLength", EXTRACTOR_METATYPE_FOCAL_LENGTH); ADDEXIV ("Exif.Photo.FocalLengthIn35mmFilm", EXTRACTOR_METATYPE_FOCAL_LENGTH_35MM); ADDEXIV ("Exif.Photo.ISOSpeedRatings", EXTRACTOR_METATYPE_ISO_SPEED); ADDEXIV ("Exif.CanonSi.ISOSpeed", EXTRACTOR_METATYPE_ISO_SPEED); ADDEXIV ("Exif.Nikon1.ISOSpeed", EXTRACTOR_METATYPE_ISO_SPEED); ADDEXIV ("Exif.Nikon2.ISOSpeed", EXTRACTOR_METATYPE_ISO_SPEED); ADDEXIV ("Exif.Nikon3.ISOSpeed", EXTRACTOR_METATYPE_ISO_SPEED); ADDEXIV ("Exif.Photo.ExposureProgram", EXTRACTOR_METATYPE_EXPOSURE_MODE); ADDEXIV ("Exif.CanonCs.ExposureProgram", EXTRACTOR_METATYPE_EXPOSURE_MODE); ADDEXIV ("Exif.Photo.MeteringMode", EXTRACTOR_METATYPE_METERING_MODE); ADDEXIV ("Exif.CanonCs.Macro", EXTRACTOR_METATYPE_MACRO_MODE); ADDEXIV ("Exif.Fujifilm.Macro", EXTRACTOR_METATYPE_MACRO_MODE); ADDEXIV ("Exif.Olympus.Macro", EXTRACTOR_METATYPE_MACRO_MODE); ADDEXIV ("Exif.Panasonic.Macro", EXTRACTOR_METATYPE_MACRO_MODE); ADDEXIV ("Exif.CanonCs.Quality", EXTRACTOR_METATYPE_IMAGE_QUALITY); ADDEXIV ("Exif.Fujifilm.Quality", EXTRACTOR_METATYPE_IMAGE_QUALITY); ADDEXIV ("Exif.Sigma.Quality", EXTRACTOR_METATYPE_IMAGE_QUALITY); ADDEXIV ("Exif.Nikon1.Quality", EXTRACTOR_METATYPE_IMAGE_QUALITY); ADDEXIV ("Exif.Nikon2.Quality", EXTRACTOR_METATYPE_IMAGE_QUALITY); ADDEXIV ("Exif.Nikon3.Quality", EXTRACTOR_METATYPE_IMAGE_QUALITY); ADDEXIV ("Exif.Olympus.Quality", EXTRACTOR_METATYPE_IMAGE_QUALITY); ADDEXIV ("Exif.Panasonic.Quality", EXTRACTOR_METATYPE_IMAGE_QUALITY); ADDEXIV ("Exif.CanonSi.WhiteBalance", EXTRACTOR_METATYPE_WHITE_BALANCE); ADDEXIV ("Exif.Fujifilm.WhiteBalance", EXTRACTOR_METATYPE_WHITE_BALANCE); ADDEXIV ("Exif.Sigma.WhiteBalance", EXTRACTOR_METATYPE_WHITE_BALANCE); ADDEXIV ("Exif.Nikon1.WhiteBalance", EXTRACTOR_METATYPE_WHITE_BALANCE); ADDEXIV ("Exif.Nikon2.WhiteBalance", EXTRACTOR_METATYPE_WHITE_BALANCE); ADDEXIV ("Exif.Nikon3.WhiteBalance", EXTRACTOR_METATYPE_WHITE_BALANCE); ADDEXIV ("Exif.Olympus.WhiteBalance", EXTRACTOR_METATYPE_WHITE_BALANCE); ADDEXIV ("Exif.Panasonic.WhiteBalance", EXTRACTOR_METATYPE_WHITE_BALANCE); ADDEXIV ("Exif.Photo.FNumber", EXTRACTOR_METATYPE_APERTURE); ADDEXIV ("Exif.Photo.ExposureTime", EXTRACTOR_METATYPE_EXPOSURE); } Exiv2::IptcData &iptcData = image->iptcData(); if (! iptcData.empty()) { ADDIPTC ("Iptc.Application2.Keywords", EXTRACTOR_METATYPE_KEYWORDS); ADDIPTC ("Iptc.Application2.City", EXTRACTOR_METATYPE_LOCATION_CITY); ADDIPTC ("Iptc.Application2.SubLocation", EXTRACTOR_METATYPE_LOCATION_SUBLOCATION); ADDIPTC ("Iptc.Application2.CountryName", EXTRACTOR_METATYPE_LOCATION_COUNTRY); } Exiv2::XmpData &xmpData = image->xmpData(); if (! xmpData.empty()) { ADDXMP ("Xmp.photoshop.Country", EXTRACTOR_METATYPE_LOCATION_COUNTRY); ADDXMP ("Xmp.photoshop.City", EXTRACTOR_METATYPE_LOCATION_CITY); ADDXMP ("Xmp.xmp.Rating", EXTRACTOR_METATYPE_RATING); ADDXMP ("Xmp.MicrosoftPhoto.Rating", EXTRACTOR_METATYPE_RATING); ADDXMP ("Xmp.iptc.CountryCode", EXTRACTOR_METATYPE_LOCATION_COUNTRY_CODE); ADDXMP ("Xmp.xmp.CreatorTool", EXTRACTOR_METATYPE_CREATED_BY_SOFTWARE); ADDXMP ("Xmp.lr.hierarchicalSubject", EXTRACTOR_METATYPE_SUBJECT); } } catch (const Exiv2::AnyError& e) { #if DEBUG std::cerr << "Caught Exiv2 exception '" << e << "'\n"; #endif } catch (void *anything) { } } /* end of exiv2_extractor.cc */ libextractor-1.3/src/Makefile.in0000644000175000017500000004760312256015517013652 00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/abi-gsf.m4 \ $(top_srcdir)/m4/ac_define_dir.m4 \ $(top_srcdir)/m4/ax_create_pkgconfig_info.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glib-2.0.m4 \ $(top_srcdir)/m4/gtk-2.0.m4 $(top_srcdir)/m4/gtk-3.0.m4 \ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = include intlemu main common plugins . DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ GLIB_LIBS = @GLIB_LIBS@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GOBJECT_QUERY = @GOBJECT_QUERY@ GREP = @GREP@ GSF_CFLAGS = @GSF_CFLAGS@ GSF_GNOME_CFLAGS = @GSF_GNOME_CFLAGS@ GSF_GNOME_LIBS = @GSF_GNOME_LIBS@ GSF_LIBS = @GSF_LIBS@ GSTREAMER_APP_CFLAGS = @GSTREAMER_APP_CFLAGS@ GSTREAMER_APP_LIBS = @GSTREAMER_APP_LIBS@ GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@ GSTREAMER_LIBS = @GSTREAMER_LIBS@ GSTREAMER_PBUTILS_CFLAGS = @GSTREAMER_PBUTILS_CFLAGS@ GSTREAMER_PBUTILS_LIBS = @GSTREAMER_PBUTILS_LIBS@ GSTREAMER_TAG_CFLAGS = @GSTREAMER_TAG_CFLAGS@ GSTREAMER_TAG_LIBS = @GSTREAMER_TAG_LIBS@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ HAVE_CXX = @HAVE_CXX@ HAVE_ZZUF = @HAVE_ZZUF@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ ISOLOCALEDIR = @ISOLOCALEDIR@ LD = @LD@ LDFLAGS = @LDFLAGS@ LE_INTLINCL = @LE_INTLINCL@ LE_LIBINTL = @LE_LIBINTL@ LE_LIB_LDFLAGS = @LE_LIB_LDFLAGS@ LE_LIB_LIBS = @LE_LIB_LIBS@ LE_PLUGIN_LDFLAGS = @LE_PLUGIN_LDFLAGS@ LIBEXT = @LIBEXT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIB_VERSION_AGE = @LIB_VERSION_AGE@ LIB_VERSION_CURRENT = @LIB_VERSION_CURRENT@ LIB_VERSION_REVISION = @LIB_VERSION_REVISION@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALEDIR = @LOCALEDIR@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACKAGE_VERSION_NOALPHA = @PACKAGE_VERSION_NOALPHA@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ POSUB = @POSUB@ QT_CPPFLAGS = @QT_CPPFLAGS@ QT_LDFLAGS = @QT_LDFLAGS@ RANLIB = @RANLIB@ RPLUGINDIR = @RPLUGINDIR@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKET_LIBS = @SOCKET_LIBS@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XTRA_CPPLIBS = @XTRA_CPPLIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfig_libdir = @pkgconfig_libdir@ pkgconfig_libfile = @pkgconfig_libfile@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @WANT_FRAMEWORK_TRUE@INTLEMU_SUBDIRS = intlemu INCLUDES = -I$(top_srcdir)/src/include SUBDIRS = include $(INTLEMU_SUBDIRS) main common plugins . all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libextractor-1.3/src/Makefile.am0000644000175000017500000000023011313143447013617 00000000000000if WANT_FRAMEWORK INTLEMU_SUBDIRS = intlemu endif INCLUDES = -I$(top_srcdir)/src/include SUBDIRS = include $(INTLEMU_SUBDIRS) main common plugins . libextractor-1.3/src/common/0000755000175000017500000000000012256015537013145 500000000000000libextractor-1.3/src/common/convert.c0000644000175000017500000000465212030327551014710 00000000000000/* This file is part of libextractor. (C) 2004 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "platform.h" #include "extractor.h" #include "convert.h" /** * Convert the len characters long character sequence * given in input that is in the given charset * to UTF-8. * * @param input string to convert * @param len number of bytes in input * @param charset input character set * @return the converted string (0-terminated), NULL on error * @return the converted string (0-terminated), * if conversion fails, a copy of the orignal * string is returned. */ char * EXTRACTOR_common_convert_to_utf8 (const char *input, size_t len, const char *charset) { #if HAVE_ICONV size_t tmpSize; size_t finSize; char *tmp; char *ret; char *itmp; const char *i; iconv_t cd; i = input; cd = iconv_open ("UTF-8", charset); if (cd == (iconv_t) - 1) return strdup (i); if (len > 1024 * 1024) { iconv_close (cd); return NULL; /* too big for meta data */ } tmpSize = 3 * len + 4; tmp = malloc (tmpSize); if (tmp == NULL) { iconv_close (cd); return NULL; } itmp = tmp; finSize = tmpSize; if (iconv (cd, (char **) &input, &len, &itmp, &finSize) == SIZE_MAX) { iconv_close (cd); free (tmp); return strdup (i); } ret = malloc (tmpSize - finSize + 1); if (ret == NULL) { iconv_close (cd); free (tmp); return NULL; } memcpy (ret, tmp, tmpSize - finSize); ret[tmpSize - finSize] = '\0'; free (tmp); iconv_close (cd); return ret; #else char *ret; ret = malloc (len + 1); memcpy (ret, input, len); ret[len] = '\0'; return ret; #endif } /* end of convert.c */ libextractor-1.3/src/common/Makefile.in0000644000175000017500000005223112256015517015133 00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src/common DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/abi-gsf.m4 \ $(top_srcdir)/m4/ac_define_dir.m4 \ $(top_srcdir)/m4/ax_create_pkgconfig_info.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glib-2.0.m4 \ $(top_srcdir)/m4/gtk-2.0.m4 $(top_srcdir)/m4/gtk-3.0.m4 \ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(libdir)" LTLIBRARIES = $(lib_LTLIBRARIES) am__DEPENDENCIES_1 = libextractor_common_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) am__libextractor_common_la_SOURCES_DIST = le_architecture.h unzip.c \ unzip.h convert.c convert.h @HAVE_ZLIB_TRUE@am__objects_1 = unzip.lo am_libextractor_common_la_OBJECTS = $(am__objects_1) convert.lo libextractor_common_la_OBJECTS = $(am_libextractor_common_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libextractor_common_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(libextractor_common_la_LDFLAGS) \ $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libextractor_common_la_SOURCES) DIST_SOURCES = $(am__libextractor_common_la_SOURCES_DIST) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ GLIB_LIBS = @GLIB_LIBS@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GOBJECT_QUERY = @GOBJECT_QUERY@ GREP = @GREP@ GSF_CFLAGS = @GSF_CFLAGS@ GSF_GNOME_CFLAGS = @GSF_GNOME_CFLAGS@ GSF_GNOME_LIBS = @GSF_GNOME_LIBS@ GSF_LIBS = @GSF_LIBS@ GSTREAMER_APP_CFLAGS = @GSTREAMER_APP_CFLAGS@ GSTREAMER_APP_LIBS = @GSTREAMER_APP_LIBS@ GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@ GSTREAMER_LIBS = @GSTREAMER_LIBS@ GSTREAMER_PBUTILS_CFLAGS = @GSTREAMER_PBUTILS_CFLAGS@ GSTREAMER_PBUTILS_LIBS = @GSTREAMER_PBUTILS_LIBS@ GSTREAMER_TAG_CFLAGS = @GSTREAMER_TAG_CFLAGS@ GSTREAMER_TAG_LIBS = @GSTREAMER_TAG_LIBS@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ HAVE_CXX = @HAVE_CXX@ HAVE_ZZUF = @HAVE_ZZUF@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ ISOLOCALEDIR = @ISOLOCALEDIR@ LD = @LD@ LDFLAGS = @LDFLAGS@ LE_INTLINCL = @LE_INTLINCL@ LE_LIBINTL = @LE_LIBINTL@ LE_LIB_LDFLAGS = @LE_LIB_LDFLAGS@ LE_LIB_LIBS = @LE_LIB_LIBS@ LE_PLUGIN_LDFLAGS = @LE_PLUGIN_LDFLAGS@ LIBEXT = @LIBEXT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = \ @LE_LIBINTL@ @LIBS@ LIBTOOL = @LIBTOOL@ LIB_VERSION_AGE = @LIB_VERSION_AGE@ LIB_VERSION_CURRENT = @LIB_VERSION_CURRENT@ LIB_VERSION_REVISION = @LIB_VERSION_REVISION@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALEDIR = @LOCALEDIR@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACKAGE_VERSION_NOALPHA = @PACKAGE_VERSION_NOALPHA@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ POSUB = @POSUB@ QT_CPPFLAGS = @QT_CPPFLAGS@ QT_LDFLAGS = @QT_LDFLAGS@ RANLIB = @RANLIB@ RPLUGINDIR = @RPLUGINDIR@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKET_LIBS = @SOCKET_LIBS@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XTRA_CPPLIBS = @XTRA_CPPLIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfig_libdir = @pkgconfig_libdir@ pkgconfig_libfile = @pkgconfig_libfile@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ INCLUDES = -I$(top_srcdir)/src/include @USE_COVERAGE_TRUE@AM_CFLAGS = --coverage -O0 @USE_COVERAGE_TRUE@XLIB = -lgcov @HAVE_ZLIB_TRUE@zlib = -lz @HAVE_ZLIB_TRUE@LINK_UNZIP = unzip.c unzip.h lib_LTLIBRARIES = \ libextractor_common.la libextractor_common_la_LDFLAGS = \ $(LE_LIB_LDFLAGS) \ -version-info 1:0:0 libextractor_common_la_LIBADD = \ $(LTLIBICONV) $(zlib) libextractor_common_la_SOURCES = \ le_architecture.h \ $(LINK_UNZIP) \ convert.c convert.h all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/common/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/common/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libextractor_common.la: $(libextractor_common_la_OBJECTS) $(libextractor_common_la_DEPENDENCIES) $(EXTRA_libextractor_common_la_DEPENDENCIES) $(AM_V_CCLD)$(libextractor_common_la_LINK) -rpath $(libdir) $(libextractor_common_la_OBJECTS) $(libextractor_common_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/convert.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unzip.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: for dir in "$(DESTDIR)$(libdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-libLTLIBRARIES .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am \ install-libLTLIBRARIES install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags uninstall uninstall-am uninstall-libLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libextractor-1.3/src/common/unzip.c0000644000175000017500000012125712022230713014370 00000000000000/* This file is part of libextractor. (C) 2004, 2008, 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file common/unzip.c * @brief API to access ZIP archives * @author Christian Grothoff * * This code is based in part on * unzip 1.00 Copyright 1998-2003 Gilles Vollant * http://www.winimage.com/zLibDll" * * * The filenames for each file in a zipfile are stored in two locations. * There is one at the start of each entry, just before the compressed data, * and another at the end in a 'central directory structure'. * * In order to catch self-extracting executables, we scan backwards from the end * of the file looking for the central directory structure. The previous version * of this went forewards through the local headers, but that only works for plain * vanilla zip's and I don't feel like writing a special case for each of the dozen * self-extracting executable stubs. * * This assumes that the zip file is considered to be non-corrupt/non-truncated. * If it is truncated then it's not considered to be a zip and skipped. * * ZIP format description from appnote.iz and appnote.txt (more or less): * * (this is why you always need to put in the last floppy if you span disks) * * 0- 3 end of central dir signature 4 bytes (0x06054b50) P K ^E ^F * 4- 5 number of this disk 2 bytes * 6- 7 number of the disk with the * start of the central directory 2 bytes * 8- 9 total number of entries in * the central dir on this disk 2 bytes * 10-11 total number of entries in * the central dir 2 bytes * 12-15 size of the central directory 4 bytes * 16-19 offset of start of central * directory with respect to * the starting disk number 4 bytes * 20-21 zipfile comment length 2 bytes * 22-?? zipfile comment (variable size) max length 65536 bytes */ #include "platform.h" #include #include "extractor.h" #include "unzip.h" #define CASESENSITIVITY (0) #define MAXFILENAME (256) #ifndef UNZ_BUFSIZE #define UNZ_BUFSIZE (16384) #endif #ifndef UNZ_MAXFILENAMEINZIP #define UNZ_MAXFILENAMEINZIP (256) #endif #define SIZECENTRALDIRITEM (0x2e) #define SIZEZIPLOCALHEADER (0x1e) /** * IO callbacks for access to the ZIP data. */ struct FileFuncDefs { /** * Callback for reading 'size' bytes from the ZIP archive into buf. */ uLong (*zread_file) (voidpf opaque, void* buf, uLong size); /** * Callback to obtain the current read offset in the ZIP archive. */ long (*ztell_file) (voidpf opaque); /** * Callback for seeking to a different position in the ZIP archive. */ long (*zseek_file) (voidpf opaque, uLong offset, int origin); /** * Opaque argument to pass to all IO functions. */ voidpf opaque; }; /** * Macro to read using filefunc API. * * @param filefunc filefunc struct * @param buf where to write data * @param size number of bytes to read * @return number of bytes copied to buf */ #define ZREAD(filefunc,buf,size) ((*((filefunc).zread_file)) ((filefunc).opaque, buf, size)) /** * Macro to obtain current offset in file using filefunc API. * * @param filefunc filefunc struct * @return current offset in file */ #define ZTELL(filefunc) ((*((filefunc).ztell_file)) ((filefunc).opaque)) /** * Macro to seek using filefunc API. * * @param filefunc filefunc struct * @param pos position to seek * @param mode seek mode * @return 0 on success */ #define ZSEEK(filefunc,pos,mode) ((*((filefunc).zseek_file)) ((filefunc).opaque, pos, mode)) /** * Global data about the ZIPfile * These data comes from the end of central dir */ struct GlobalInfo { /** * total number of entries in * the central dir on this disk */ uLong number_entry; /** * size of the global comment of the zipfile */ uLong size_comment; /** * offset of the global comment in the zipfile */ uLong offset_comment; }; /** * internal info about a file in zipfile */ struct UnzipFileInfoInternal { /** * relative offset of local header 4 bytes */ uLong offset_curfile; }; /** * Information about a file in zipfile, when reading and * decompressing it */ struct FileInZipReadInfo { /** * internal buffer for compressed data */ char *read_buffer; /** * zLib stream structure for inflate */ z_stream stream; /** * position in byte on the zipfile, for fseek */ uLong pos_in_zipfile; /** * flag set if stream structure is initialised */ uLong stream_initialised; /** * offset of the local extra field */ uLong offset_local_extrafield; /** * size of the local extra field */ uInt size_local_extrafield; /** * position in the local extra field in read */ uLong pos_local_extrafield; /** * crc32 of all data uncompressed so far */ uLong crc32; /** * crc32 we must obtain after decompress all */ uLong crc32_wait; /** * number of bytes to be decompressed */ uLong rest_read_compressed; /** * number of bytes to be obtained after decomp */ uLong rest_read_uncompressed; /** * IO functions. */ struct FileFuncDefs z_filefunc; /** * compression method (0==store) */ uLong compression_method; /** * byte before the zipfile, (>0 for sfx) */ uLong byte_before_the_zipfile; }; /** * Handle for a ZIP archive. * contains internal information about the zipfile */ struct EXTRACTOR_UnzipFile { /** * io structore of the zipfile */ struct FileFuncDefs z_filefunc; /** * public global information */ struct GlobalInfo gi; /** * byte before the zipfile, (>0 for sfx) */ uLong byte_before_the_zipfile; /** * number of the current file in the zipfile */ uLong num_file; /** * pos of the current file in the central dir */ uLong pos_in_central_dir; /** * flag about the usability of the current file */ uLong current_file_ok; /** * position of the beginning of the central dir */ uLong central_pos; /** * size of the central directory */ uLong size_central_dir; /** * offset of start of central directory with respect to the starting * disk number */ uLong offset_central_dir; /** * public info about the current file in zip */ struct EXTRACTOR_UnzipFileInfo cur_file_info; /** * private info about it */ struct UnzipFileInfoInternal cur_file_info_internal; /** * structure about the current file if we are decompressing it */ struct FileInZipReadInfo *pfile_in_zip_read; /** * Is the file encrypted? */ int encrypted; }; /** * Read a byte from a gz_stream; update next_in and avail_in. Return EOF * for end of file. * IN assertion: the stream s has been sucessfully opened for reading. * * @param ffd functions for performing IO operations * @param pi where to store the byte that was read * @return EXTRACTOR_UNZIP_OK on success, or EXTRACTOR_UNZIP_EOF */ static int read_byte_from_ffd (const struct FileFuncDefs *ffd, int *pi) { unsigned char c; if (1 != ZREAD (*ffd, &c, 1)) return EXTRACTOR_UNZIP_EOF; *pi = (int) c; return EXTRACTOR_UNZIP_OK; } /** * Read a short (2 bytes) from a gz_stream; update next_in and avail_in. Return EOF * for end of file. * IN assertion: the stream s has been sucessfully opened for reading. * * @param ffd functions for performing IO operations * @param pi where to store the short that was read * @return EXTRACTOR_UNZIP_OK on success, or EXTRACTOR_UNZIP_EOF */ static int read_short_from_ffd (const struct FileFuncDefs *ffd, uLong *pX) { uLong x; int i; int err; *pX = 0; if (EXTRACTOR_UNZIP_OK != (err = read_byte_from_ffd (ffd, &i))) return err; x = (uLong) i; if (EXTRACTOR_UNZIP_OK != (err = read_byte_from_ffd (ffd, &i))) return err; x += ((uLong) i) << 8; *pX = x; return err; } /** * Read a 'long' (4 bytes) from a gz_stream; update next_in and avail_in. Return EOF * for end of file. * IN assertion: the stream s has been sucessfully opened for reading. * * @param ffd functions for performing IO operations * @param pi where to store the long that was read * @return EXTRACTOR_UNZIP_OK on success, or EXTRACTOR_UNZIP_EOF */ static int read_long_from_ffd (const struct FileFuncDefs *ffd, uLong *pX) { uLong x; int i; int err; *pX = 0; if (EXTRACTOR_UNZIP_OK != (err = read_byte_from_ffd (ffd, &i))) return err; x = (uLong) i; if (EXTRACTOR_UNZIP_OK != (err = read_byte_from_ffd (ffd, &i))) return err; x += ((uLong) i) << 8; if (EXTRACTOR_UNZIP_OK != (err = read_byte_from_ffd (ffd, &i))) return err; x += ((uLong) i) << 16; if (EXTRACTOR_UNZIP_OK != (err = read_byte_from_ffd (ffd, &i))) return err; x += ((uLong) i) << 24; *pX = x; return err; } #ifndef CASESENSITIVITYDEFAULT_NO #if !defined(unix) && !defined(CASESENSITIVITYDEFAULT_YES) #define CASESENSITIVITYDEFAULT_NO #endif #endif #ifdef CASESENSITIVITYDEFAULT_NO #define CASESENSITIVITYDEFAULTVALUE 2 #else #define CASESENSITIVITYDEFAULTVALUE 1 #endif /** * Compare two filenames (fileName1, fileName2). * * @param filename1 name of first file * @param filename2 name of second file * @param iCaseSensitivity, use 1 for case sensitivity (like strcmp); * 2 for no case sensitivity (like strcmpi or strcasecmp); or * 0 for defaut of your operating system (like 1 on Unix, 2 on Windows) * @return 0 if names are equal */ static int EXTRACTOR_common_unzip_string_file_name_compare (const char* fileName1, const char* fileName2, int iCaseSensitivity) { if (0 == iCaseSensitivity) iCaseSensitivity = CASESENSITIVITYDEFAULTVALUE; if (1 == iCaseSensitivity) return strcmp(fileName1, fileName2); return strcasecmp (fileName1, fileName2); } #ifndef BUFREADCOMMENT #define BUFREADCOMMENT (0x400) #endif /** * Locate the central directory in the ZIP file. * * @param ffd IO functions * @return offset of central directory, 0 on error */ static uLong locate_central_directory (const struct FileFuncDefs *ffd) { unsigned char buf[BUFREADCOMMENT + 4]; uLong uSizeFile; uLong uBackRead; uLong uMaxBack = 0xffff; /* maximum size of global comment */ if (0 != ZSEEK (*ffd, 0, SEEK_END)) return 0; uSizeFile = ZTELL (*ffd); if (uMaxBack > uSizeFile) uMaxBack = uSizeFile; uBackRead = 4; while (uBackRead < uMaxBack) { uLong uReadSize; uLong uReadPos; int i; if (uBackRead + BUFREADCOMMENT > uMaxBack) uBackRead = uMaxBack; else uBackRead += BUFREADCOMMENT; uReadPos = uSizeFile - uBackRead; uReadSize = ((BUFREADCOMMENT + 4) < (uSizeFile - uReadPos)) ? (BUFREADCOMMENT + 4) : (uSizeFile - uReadPos); if (0 != ZSEEK (*ffd, uReadPos, SEEK_SET)) break; if (ZREAD (*ffd, buf, uReadSize) != uReadSize) break; i = (int) uReadSize - 3; while (i-- > 0) if ( (0x50 == (*(buf+i))) && (0x4b == (*(buf+i+1))) && (0x05 == (*(buf+i+2))) && (0x06 == (*(buf+i+3))) ) return uReadPos + i; } return 0; } /** * Translate date/time from Dos format to struct * EXTRACTOR_UnzipDateTimeInfo (readable more easilty) * * @param ulDosDate time in DOS format (input) * @param ptm where to write time in readable format */ static void dos_date_to_tmu_date (uLong ulDosDate, struct EXTRACTOR_UnzipDateTimeInfo* ptm) { uLong uDate; uDate = (uLong) (ulDosDate >> 16); ptm->tm_mday = (uInt) (uDate & 0x1f); ptm->tm_mon = (uInt) ((((uDate) & 0x1E0) / 0x20) - 1); ptm->tm_year = (uInt) (((uDate & 0x0FE00) / 0x0200) + 1980); ptm->tm_hour = (uInt) ((ulDosDate & 0xF800) / 0x800); ptm->tm_min = (uInt) ((ulDosDate & 0x7E0) / 0x20); ptm->tm_sec = (uInt) (2 * (ulDosDate & 0x1f)); } /** * Write info about the ZipFile in the *pglobal_info structure. * No preparation of the structure is needed. * * @param file zipfile to manipulate * @param pfile_info file information to initialize * @param pfile_info_internal internal file information to initialize * @param szFileName where to write the name of the current file * @param fileNameBufferSize number of bytes available in szFileName * @param extraField where to write extra data * @param extraFieldBufferSize number of bytes available in extraField * @param szComment where to write the comment on the current file * @param commentBufferSize number of bytes available in szComment * @return EXTRACTOR_UNZIP_OK if there is no problem. */ static int get_current_file_info (struct EXTRACTOR_UnzipFile *file, struct EXTRACTOR_UnzipFileInfo *pfile_info, struct UnzipFileInfoInternal *pfile_info_internal, char *szFileName, uLong fileNameBufferSize, void *extraField, uLong extraFieldBufferSize, char *szComment, uLong commentBufferSize) { struct EXTRACTOR_UnzipFileInfo file_info; struct UnzipFileInfoInternal file_info_internal; uLong uMagic; long lSeek = 0; if (NULL == file) return EXTRACTOR_UNZIP_PARAMERROR; if (0 != ZSEEK (file->z_filefunc, file->pos_in_central_dir + file->byte_before_the_zipfile, SEEK_SET)) return EXTRACTOR_UNZIP_ERRNO; /* we check the magic */ if (EXTRACTOR_UNZIP_OK != read_long_from_ffd(&file->z_filefunc, &uMagic)) return EXTRACTOR_UNZIP_ERRNO; if (0x02014b50 != uMagic) return EXTRACTOR_UNZIP_BADZIPFILE; if ( (EXTRACTOR_UNZIP_OK != read_short_from_ffd (&file->z_filefunc, &file_info.version)) || (EXTRACTOR_UNZIP_OK != read_short_from_ffd (&file->z_filefunc, &file_info.version_needed)) || (EXTRACTOR_UNZIP_OK != read_short_from_ffd (&file->z_filefunc, &file_info.flag)) || (EXTRACTOR_UNZIP_OK != read_short_from_ffd (&file->z_filefunc, &file_info.compression_method)) || (EXTRACTOR_UNZIP_OK != read_long_from_ffd (&file->z_filefunc, &file_info.dosDate)) ) return EXTRACTOR_UNZIP_ERRNO; dos_date_to_tmu_date (file_info.dosDate, &file_info.tmu_date); if ( (EXTRACTOR_UNZIP_OK != read_long_from_ffd(&file->z_filefunc, &file_info.crc)) || (EXTRACTOR_UNZIP_OK != read_long_from_ffd(&file->z_filefunc, &file_info.compressed_size)) || (EXTRACTOR_UNZIP_OK != read_long_from_ffd(&file->z_filefunc, &file_info.uncompressed_size)) || (EXTRACTOR_UNZIP_OK != read_short_from_ffd(&file->z_filefunc, &file_info.size_filename)) || (EXTRACTOR_UNZIP_OK != read_short_from_ffd(&file->z_filefunc, &file_info.size_file_extra)) || (EXTRACTOR_UNZIP_OK != read_short_from_ffd(&file->z_filefunc, &file_info.size_file_comment)) || (EXTRACTOR_UNZIP_OK != read_short_from_ffd(&file->z_filefunc, &file_info.disk_num_start)) || (EXTRACTOR_UNZIP_OK != read_short_from_ffd(&file->z_filefunc, &file_info.internal_fa)) || (EXTRACTOR_UNZIP_OK != read_long_from_ffd(&file->z_filefunc, &file_info.external_fa)) || (EXTRACTOR_UNZIP_OK != read_long_from_ffd (&file->z_filefunc, &file_info_internal.offset_curfile)) ) return EXTRACTOR_UNZIP_ERRNO; lSeek += file_info.size_filename; if (NULL != szFileName) { uLong uSizeRead; if (file_info.size_filename < fileNameBufferSize) { *(szFileName + file_info.size_filename) = '\0'; uSizeRead = file_info.size_filename; } else uSizeRead = fileNameBufferSize; if ( (file_info.size_filename > 0) && (fileNameBufferSize > 0) ) if (ZREAD(file->z_filefunc, szFileName, uSizeRead) != uSizeRead) return EXTRACTOR_UNZIP_ERRNO; lSeek -= uSizeRead; } if (NULL != extraField) { uLong uSizeRead; if (file_info.size_file_extraz_filefunc, lSeek, SEEK_CUR)) lSeek = 0; else return EXTRACTOR_UNZIP_ERRNO; } if ( (file_info.size_file_extra > 0) && (extraFieldBufferSize > 0) && (ZREAD (file->z_filefunc, extraField, uSizeRead) != uSizeRead) ) return EXTRACTOR_UNZIP_ERRNO; lSeek += file_info.size_file_extra - uSizeRead; } else lSeek += file_info.size_file_extra; if (NULL != szComment) { uLong uSizeRead; if (file_info.size_file_comment < commentBufferSize) { *(szComment+file_info.size_file_comment) = '\0'; uSizeRead = file_info.size_file_comment; } else uSizeRead = commentBufferSize; if (0 != lSeek) { if (0 == ZSEEK (file->z_filefunc, lSeek, SEEK_CUR)) lSeek = 0; else return EXTRACTOR_UNZIP_ERRNO; } if ( (file_info.size_file_comment > 0) && (commentBufferSize > 0) && (ZREAD (file->z_filefunc, szComment, uSizeRead) != uSizeRead) ) return EXTRACTOR_UNZIP_ERRNO; lSeek += file_info.size_file_comment - uSizeRead; } else lSeek += file_info.size_file_comment; if (NULL != pfile_info) *pfile_info = file_info; if (NULL != pfile_info_internal) *pfile_info_internal = file_info_internal; return EXTRACTOR_UNZIP_OK; } /** * Set the current file of the zipfile to the first file. * * @param file zipfile to manipulate * @return UNZ_OK if there is no problem */ int EXTRACTOR_common_unzip_go_to_first_file (struct EXTRACTOR_UnzipFile *file) { int err; if (NULL == file) return EXTRACTOR_UNZIP_PARAMERROR; file->pos_in_central_dir = file->offset_central_dir; file->num_file = 0; err = get_current_file_info (file, &file->cur_file_info, &file->cur_file_info_internal, NULL, 0, NULL, 0, NULL, 0); file->current_file_ok = (EXTRACTOR_UNZIP_OK == err); return err; } /** * Open a Zip file. * * @param ffd IO functions * @return NULL on error */ static struct EXTRACTOR_UnzipFile * unzip_open_using_ffd (struct FileFuncDefs *ffd) { struct EXTRACTOR_UnzipFile us; struct EXTRACTOR_UnzipFile *file; uLong central_pos; uLong uL; uLong number_disk; /* number of the current dist, used for spaning ZIP, unsupported, always 0*/ uLong number_disk_with_CD; /* number of the disk with central dir, used for spaning ZIP, unsupported, always 0*/ uLong number_entry_CD; /* total number of entries in the central dir (same than number_entry on nospan) */ memset (&us, 0, sizeof(us)); us.z_filefunc = *ffd; central_pos = locate_central_directory (&us.z_filefunc); if (0 == central_pos) return NULL; if (0 != ZSEEK (us.z_filefunc, central_pos, SEEK_SET)) return NULL; /* the signature, already checked */ if (EXTRACTOR_UNZIP_OK != read_long_from_ffd (&us.z_filefunc, &uL)) return NULL; /* number of this disk */ if (EXTRACTOR_UNZIP_OK != read_short_from_ffd (&us.z_filefunc, &number_disk)) return NULL; /* number of the disk with the start of the central directory */ if (EXTRACTOR_UNZIP_OK != read_short_from_ffd (&us.z_filefunc, &number_disk_with_CD)) return NULL; /* total number of entries in the central dir on this disk */ if (EXTRACTOR_UNZIP_OK != read_short_from_ffd (&us.z_filefunc, &us.gi.number_entry)) return NULL; /* total number of entries in the central dir */ if (EXTRACTOR_UNZIP_OK != read_short_from_ffd (&us.z_filefunc, &number_entry_CD)) return NULL; if ( (number_entry_CD != us.gi.number_entry) || (0 != number_disk_with_CD) || (0 != number_disk) ) return NULL; /* size of the central directory */ if (EXTRACTOR_UNZIP_OK != read_long_from_ffd (&us.z_filefunc, &us.size_central_dir)) return NULL; /* offset of start of central directory with respect to the starting disk number */ if (EXTRACTOR_UNZIP_OK != read_long_from_ffd (&us.z_filefunc, &us.offset_central_dir)) return NULL; /* zipfile comment length */ if (EXTRACTOR_UNZIP_OK != read_short_from_ffd (&us.z_filefunc, &us.gi.size_comment)) return NULL; us.gi.offset_comment = ZTELL (us.z_filefunc); if ((central_pos < us.offset_central_dir + us.size_central_dir)) return NULL; us.byte_before_the_zipfile = central_pos - (us.offset_central_dir + us.size_central_dir); us.central_pos = central_pos; us.pfile_in_zip_read = NULL; us.encrypted = 0; if (NULL == (file = malloc (sizeof(struct EXTRACTOR_UnzipFile)))) return NULL; *file = us; EXTRACTOR_common_unzip_go_to_first_file (file); return file; } /** * Close the file in zip opened with EXTRACTOR_common_unzip_open_current_file. * * @return EXTRACTOR_UNZIP_CRCERROR if all the file was read but the CRC is not good */ int EXTRACTOR_common_unzip_close_current_file (struct EXTRACTOR_UnzipFile *file) { struct FileInZipReadInfo* pfile_in_zip_read_info; int err = EXTRACTOR_UNZIP_OK; if (NULL == file) return EXTRACTOR_UNZIP_PARAMERROR; if (NULL == (pfile_in_zip_read_info = file->pfile_in_zip_read)) return EXTRACTOR_UNZIP_PARAMERROR; if ( (0 == pfile_in_zip_read_info->rest_read_uncompressed) && (pfile_in_zip_read_info->crc32 != pfile_in_zip_read_info->crc32_wait) ) err = EXTRACTOR_UNZIP_CRCERROR; if (NULL != pfile_in_zip_read_info->read_buffer) free (pfile_in_zip_read_info->read_buffer); pfile_in_zip_read_info->read_buffer = NULL; if (pfile_in_zip_read_info->stream_initialised) inflateEnd (&pfile_in_zip_read_info->stream); pfile_in_zip_read_info->stream_initialised = 0; free (pfile_in_zip_read_info); file->pfile_in_zip_read = NULL; return err; } /** * Close a ZipFile. * * @param file zip file to close * @return EXTRACTOR_UNZIP_OK if there is no problem. */ int EXTRACTOR_common_unzip_close (struct EXTRACTOR_UnzipFile *file) { if (NULL == file) return EXTRACTOR_UNZIP_PARAMERROR; if (NULL != file->pfile_in_zip_read) EXTRACTOR_common_unzip_close_current_file (file); free (file); return EXTRACTOR_UNZIP_OK; } /** * Obtain the global comment from a ZIP file. * * @param file unzip file to inspect * @param comment where to copy the comment * @param comment_len maximum number of bytes available in comment * @return EXTRACTOR_UNZIP_OK on success */ int EXTRACTOR_common_unzip_get_global_comment (struct EXTRACTOR_UnzipFile *file, char *comment, size_t comment_len) { if (NULL == file) return EXTRACTOR_UNZIP_PARAMERROR; if (comment_len > file->gi.size_comment) comment_len = file->gi.size_comment + 1; if (0 != ZSEEK (file->z_filefunc, file->gi.offset_comment, SEEK_SET)) return EXTRACTOR_UNZIP_ERRNO; if (comment_len - 1 != ZREAD (file->z_filefunc, comment, comment_len - 1)) return EXTRACTOR_UNZIP_ERRNO; comment[comment_len - 1] = '\0'; return EXTRACTOR_UNZIP_OK; } /** * Write info about the ZipFile in the *pglobal_info structure. * No preparation of the structure is needed. * * @param file zipfile to manipulate * @param pfile_info file information to initialize * @param szFileName where to write the name of the current file * @param fileNameBufferSize number of bytes available in szFileName * @param extraField where to write extra data * @param extraFieldBufferSize number of bytes available in extraField * @param szComment where to write the comment on the current file * @param commentBufferSize number of bytes available in szComment * @return EXTRACTOR_UNZIP_OK if there is no problem. */ int EXTRACTOR_common_unzip_get_current_file_info (struct EXTRACTOR_UnzipFile * file, struct EXTRACTOR_UnzipFileInfo *pfile_info, char *szFileName, uLong fileNameBufferSize, void *extraField, uLong extraFieldBufferSize, char *szComment, uLong commentBufferSize) { return get_current_file_info (file, pfile_info, NULL, szFileName, fileNameBufferSize, extraField, extraFieldBufferSize, szComment, commentBufferSize); } /** * Set the current file of the zipfile to the next file. * * @param file zipfile to manipulate * @return EXTRACTOR_UNZIP_OK if there is no problem, * EXTRACTOR_UNZIP_END_OF_LIST_OF_FILE if the actual file was the latest. */ int EXTRACTOR_common_unzip_go_to_next_file (struct EXTRACTOR_UnzipFile *file) { int err; if (NULL == file) return EXTRACTOR_UNZIP_PARAMERROR; if (! file->current_file_ok) return EXTRACTOR_UNZIP_END_OF_LIST_OF_FILE; if (file->num_file + 1 == file->gi.number_entry) return EXTRACTOR_UNZIP_END_OF_LIST_OF_FILE; file->pos_in_central_dir += SIZECENTRALDIRITEM + file->cur_file_info.size_filename + file->cur_file_info.size_file_extra + file->cur_file_info.size_file_comment; file->num_file++; err = get_current_file_info (file, &file->cur_file_info, &file->cur_file_info_internal, NULL, 0, NULL, 0, NULL, 0); file->current_file_ok = (EXTRACTOR_UNZIP_OK == err); return err; } /** * Try locate the file szFileName in the zipfile. * * @param file zipfile to manipulate * @param szFileName name to find * @param iCaseSensitivity, use 1 for case sensitivity (like strcmp); * 2 for no case sensitivity (like strcmpi or strcasecmp); or * 0 for defaut of your operating system (like 1 on Unix, 2 on Windows) * @return EXTRACTOR_UNZIP_OK if the file is found. It becomes the current file. * EXTRACTOR_UNZIP_END_OF_LIST_OF_FILE if the file is not found */ int EXTRACTOR_common_unzip_go_find_local_file (struct EXTRACTOR_UnzipFile *file, const char *szFileName, int iCaseSensitivity) { int err; /* We remember the 'current' position in the file so that we can jump * back there if we fail. */ struct EXTRACTOR_UnzipFileInfo cur_file_infoSaved; struct UnzipFileInfoInternal cur_file_info_internalSaved; uLong num_fileSaved; uLong pos_in_central_dirSaved; if (NULL == file) return EXTRACTOR_UNZIP_PARAMERROR; if (strlen (szFileName) >= UNZ_MAXFILENAMEINZIP) return EXTRACTOR_UNZIP_PARAMERROR; if (! file->current_file_ok) return EXTRACTOR_UNZIP_END_OF_LIST_OF_FILE; /* Save the current state */ num_fileSaved = file->num_file; pos_in_central_dirSaved = file->pos_in_central_dir; cur_file_infoSaved = file->cur_file_info; cur_file_info_internalSaved = file->cur_file_info_internal; err = EXTRACTOR_common_unzip_go_to_first_file (file); while (EXTRACTOR_UNZIP_OK == err) { char szCurrentFileName[UNZ_MAXFILENAMEINZIP + 1]; if (EXTRACTOR_UNZIP_OK != (err = EXTRACTOR_common_unzip_get_current_file_info (file, NULL, szCurrentFileName, sizeof (szCurrentFileName) - 1, NULL, 0, NULL, 0))) break; if (0 == EXTRACTOR_common_unzip_string_file_name_compare (szCurrentFileName, szFileName, iCaseSensitivity)) return EXTRACTOR_UNZIP_OK; err = EXTRACTOR_common_unzip_go_to_next_file (file); } /* We failed, so restore the state of the 'current file' to where we * were. */ file->num_file = num_fileSaved; file->pos_in_central_dir = pos_in_central_dirSaved; file->cur_file_info = cur_file_infoSaved; file->cur_file_info_internal = cur_file_info_internalSaved; return err; } /** * Read bytes from the current file (must have been opened). * * @param buf contain buffer where data must be copied * @param len the size of buf. * @return the number of byte copied if somes bytes are copied * 0 if the end of file was reached * <0 with error code if there is an error * (EXTRACTOR_UNZIP_ERRNO for IO error, or zLib error for uncompress error) */ ssize_t EXTRACTOR_common_unzip_read_current_file (struct EXTRACTOR_UnzipFile *file, void *buf, size_t len) { int err = EXTRACTOR_UNZIP_OK; uInt iRead = 0; struct FileInZipReadInfo *pfile_in_zip_read_info; if (NULL == file) return EXTRACTOR_UNZIP_PARAMERROR; if (NULL == (pfile_in_zip_read_info = file->pfile_in_zip_read)) return EXTRACTOR_UNZIP_PARAMERROR; if (NULL == pfile_in_zip_read_info->read_buffer) return EXTRACTOR_UNZIP_END_OF_LIST_OF_FILE; if (0 == len) return 0; pfile_in_zip_read_info->stream.next_out = (Bytef *) buf; pfile_in_zip_read_info->stream.avail_out = (uInt) len; if (len > pfile_in_zip_read_info->rest_read_uncompressed) pfile_in_zip_read_info->stream.avail_out = (uInt) pfile_in_zip_read_info->rest_read_uncompressed; while (pfile_in_zip_read_info->stream.avail_out > 0) { if ( (0 == pfile_in_zip_read_info->stream.avail_in) && (pfile_in_zip_read_info->rest_read_compressed > 0) ) { uInt uReadThis = UNZ_BUFSIZE; if (pfile_in_zip_read_info->rest_read_compressedrest_read_compressed; if (0 == uReadThis) return EXTRACTOR_UNZIP_EOF; if (0 != ZSEEK (pfile_in_zip_read_info->z_filefunc, pfile_in_zip_read_info->pos_in_zipfile + pfile_in_zip_read_info->byte_before_the_zipfile, SEEK_SET)) return EXTRACTOR_UNZIP_ERRNO; if (ZREAD (pfile_in_zip_read_info->z_filefunc, pfile_in_zip_read_info->read_buffer, uReadThis) != uReadThis) return EXTRACTOR_UNZIP_ERRNO; pfile_in_zip_read_info->pos_in_zipfile += uReadThis; pfile_in_zip_read_info->rest_read_compressed -= uReadThis; pfile_in_zip_read_info->stream.next_in = (Bytef *) pfile_in_zip_read_info->read_buffer; pfile_in_zip_read_info->stream.avail_in = (uInt) uReadThis; } if (0 == pfile_in_zip_read_info->compression_method) { uInt uDoCopy; if ( (0 == pfile_in_zip_read_info->stream.avail_in) && (0 == pfile_in_zip_read_info->rest_read_compressed) ) return (0 == iRead) ? EXTRACTOR_UNZIP_EOF : iRead; if (pfile_in_zip_read_info->stream.avail_out < pfile_in_zip_read_info->stream.avail_in) uDoCopy = pfile_in_zip_read_info->stream.avail_out; else uDoCopy = pfile_in_zip_read_info->stream.avail_in; memcpy (pfile_in_zip_read_info->stream.next_out, pfile_in_zip_read_info->stream.next_in, uDoCopy); pfile_in_zip_read_info->crc32 = crc32 (pfile_in_zip_read_info->crc32, pfile_in_zip_read_info->stream.next_out, uDoCopy); pfile_in_zip_read_info->rest_read_uncompressed -= uDoCopy; pfile_in_zip_read_info->stream.avail_in -= uDoCopy; pfile_in_zip_read_info->stream.avail_out -= uDoCopy; pfile_in_zip_read_info->stream.next_out += uDoCopy; pfile_in_zip_read_info->stream.next_in += uDoCopy; pfile_in_zip_read_info->stream.total_out += uDoCopy; iRead += uDoCopy; } else { uLong uTotalOutBefore; uLong uTotalOutAfter; const Bytef *bufBefore; uLong uOutThis; int flush = Z_SYNC_FLUSH; uTotalOutBefore = pfile_in_zip_read_info->stream.total_out; bufBefore = pfile_in_zip_read_info->stream.next_out; /* if ((pfile_in_zip_read_info->rest_read_uncompressed == pfile_in_zip_read_info->stream.avail_out) && (pfile_in_zip_read_info->rest_read_compressed == 0)) flush = Z_FINISH; */ err = inflate (&pfile_in_zip_read_info->stream, flush); uTotalOutAfter = pfile_in_zip_read_info->stream.total_out; uOutThis = uTotalOutAfter-uTotalOutBefore; pfile_in_zip_read_info->crc32 = crc32 (pfile_in_zip_read_info->crc32, bufBefore, (uInt) (uOutThis)); pfile_in_zip_read_info->rest_read_uncompressed -= uOutThis; iRead += (uInt) (uTotalOutAfter - uTotalOutBefore); if (Z_STREAM_END == err) return (0 == iRead) ? EXTRACTOR_UNZIP_EOF : iRead; if (Z_OK != err) break; } } if (Z_OK == err) return iRead; return err; } /** * Read the local header of the current zipfile. Check the coherency of * the local header and info in the end of central directory about * this file. Store in *piSizeVar the size of extra info in local * header (filename and size of extra field data) * * @param file zipfile to process * @param piSizeVar where to store the size of the extra info * @param poffset_local_extrafield where to store the offset of the local extrafield * @param psoze_local_extrafield where to store the size of the local extrafield * @return EXTRACTOR_UNZIP_OK on success */ static int parse_current_file_coherency_header (struct EXTRACTOR_UnzipFile *file, uInt *piSizeVar, uLong *poffset_local_extrafield, uInt *psize_local_extrafield) { uLong uMagic; uLong uData; uLong uFlags; uLong size_filename; uLong size_extra_field; *piSizeVar = 0; *poffset_local_extrafield = 0; *psize_local_extrafield = 0; if (0 != ZSEEK (file->z_filefunc, file->cur_file_info_internal.offset_curfile + file->byte_before_the_zipfile, SEEK_SET)) return EXTRACTOR_UNZIP_ERRNO; if (EXTRACTOR_UNZIP_OK != read_long_from_ffd (&file->z_filefunc, &uMagic)) return EXTRACTOR_UNZIP_ERRNO; if (0x04034b50 != uMagic) return EXTRACTOR_UNZIP_BADZIPFILE; if ( (EXTRACTOR_UNZIP_OK != read_short_from_ffd (&file->z_filefunc, &uData)) || (EXTRACTOR_UNZIP_OK != read_short_from_ffd (&file->z_filefunc, &uFlags)) ) return EXTRACTOR_UNZIP_ERRNO; if (EXTRACTOR_UNZIP_OK != read_short_from_ffd (&file->z_filefunc, &uData)) return EXTRACTOR_UNZIP_ERRNO; if (uData != file->cur_file_info.compression_method) return EXTRACTOR_UNZIP_BADZIPFILE; if ( (0 != file->cur_file_info.compression_method) && (Z_DEFLATED != file->cur_file_info.compression_method) ) return EXTRACTOR_UNZIP_BADZIPFILE; if (EXTRACTOR_UNZIP_OK != read_long_from_ffd (&file->z_filefunc, &uData)) /* date/time */ return EXTRACTOR_UNZIP_ERRNO; if (EXTRACTOR_UNZIP_OK != read_long_from_ffd (&file->z_filefunc, &uData)) /* crc */ return EXTRACTOR_UNZIP_ERRNO; if ( (uData != file->cur_file_info.crc) && (0 == (uFlags & 8)) ) return EXTRACTOR_UNZIP_BADZIPFILE; if (EXTRACTOR_UNZIP_OK != read_long_from_ffd(&file->z_filefunc, &uData)) /* size compr */ return EXTRACTOR_UNZIP_ERRNO; if ( (uData != file->cur_file_info.compressed_size) && (0 == (uFlags & 8)) ) return EXTRACTOR_UNZIP_BADZIPFILE; if (EXTRACTOR_UNZIP_OK != read_long_from_ffd (&file->z_filefunc, &uData)) /* size uncompr */ return EXTRACTOR_UNZIP_ERRNO; if ( (uData != file->cur_file_info.uncompressed_size) && (0 == (uFlags & 8))) return EXTRACTOR_UNZIP_BADZIPFILE; if (EXTRACTOR_UNZIP_OK != read_short_from_ffd (&file->z_filefunc, &size_filename)) return EXTRACTOR_UNZIP_ERRNO; if (size_filename != file->cur_file_info.size_filename) return EXTRACTOR_UNZIP_BADZIPFILE; *piSizeVar += (uInt) size_filename; if (EXTRACTOR_UNZIP_OK != read_short_from_ffd (&file->z_filefunc, &size_extra_field)) return EXTRACTOR_UNZIP_ERRNO; *poffset_local_extrafield = file->cur_file_info_internal.offset_curfile + SIZEZIPLOCALHEADER + size_filename; *psize_local_extrafield = (uInt) size_extra_field; *piSizeVar += (uInt)size_extra_field; return EXTRACTOR_UNZIP_OK; } /** * Open for reading data the current file in the zipfile. * * @param file zipfile to manipulate * @return EXTRACTOR_UNZIP_OK on success */ int EXTRACTOR_common_unzip_open_current_file (struct EXTRACTOR_UnzipFile *file) { int err; uInt iSizeVar; struct FileInZipReadInfo *pfile_in_zip_read_info; uLong offset_local_extrafield; /* offset of the local extra field */ uInt size_local_extrafield; /* size of the local extra field */ if (NULL == file) return EXTRACTOR_UNZIP_PARAMERROR; if (! file->current_file_ok) return EXTRACTOR_UNZIP_PARAMERROR; if (NULL != file->pfile_in_zip_read) EXTRACTOR_common_unzip_close_current_file (file); if (EXTRACTOR_UNZIP_OK != parse_current_file_coherency_header (file, &iSizeVar, &offset_local_extrafield, &size_local_extrafield)) return EXTRACTOR_UNZIP_BADZIPFILE; if (NULL == (pfile_in_zip_read_info = malloc (sizeof(struct FileInZipReadInfo)))) return EXTRACTOR_UNZIP_INTERNALERROR; if (NULL == (pfile_in_zip_read_info->read_buffer = malloc (UNZ_BUFSIZE))) { free (pfile_in_zip_read_info); return EXTRACTOR_UNZIP_INTERNALERROR; } pfile_in_zip_read_info->offset_local_extrafield = offset_local_extrafield; pfile_in_zip_read_info->size_local_extrafield = size_local_extrafield; pfile_in_zip_read_info->pos_local_extrafield = 0; pfile_in_zip_read_info->stream_initialised = 0; if ( (0 != file->cur_file_info.compression_method) && (Z_DEFLATED != file->cur_file_info.compression_method) ) { // err = EXTRACTOR_UNZIP_BADZIPFILE; // FIXME: we don't do anything with this 'err' code. // Can this happen? Should we abort in this case? } pfile_in_zip_read_info->crc32_wait = file->cur_file_info.crc; pfile_in_zip_read_info->crc32 = 0; pfile_in_zip_read_info->compression_method = file->cur_file_info.compression_method; pfile_in_zip_read_info->z_filefunc = file->z_filefunc; pfile_in_zip_read_info->byte_before_the_zipfile = file->byte_before_the_zipfile; pfile_in_zip_read_info->stream.total_out = 0; if (Z_DEFLATED == file->cur_file_info.compression_method) { pfile_in_zip_read_info->stream.zalloc = (alloc_func) NULL; pfile_in_zip_read_info->stream.zfree = (free_func) NULL; pfile_in_zip_read_info->stream.opaque = NULL; pfile_in_zip_read_info->stream.next_in = NULL; pfile_in_zip_read_info->stream.avail_in = 0; if (Z_OK != (err = inflateInit2 (&pfile_in_zip_read_info->stream, -MAX_WBITS))) { free (pfile_in_zip_read_info->read_buffer); free (pfile_in_zip_read_info); return err; } pfile_in_zip_read_info->stream_initialised = 1; /* windowBits is passed < 0 to tell that there is no zlib header. * Note that in this case inflate *requires* an extra "dummy" byte * after the compressed stream in order to complete decompression and * return Z_STREAM_END. * In unzip, i don't wait absolutely Z_STREAM_END because I known the * size of both compressed and uncompressed data */ } pfile_in_zip_read_info->rest_read_compressed = file->cur_file_info.compressed_size; pfile_in_zip_read_info->rest_read_uncompressed = file->cur_file_info.uncompressed_size; pfile_in_zip_read_info->pos_in_zipfile = file->cur_file_info_internal.offset_curfile + SIZEZIPLOCALHEADER + iSizeVar; pfile_in_zip_read_info->stream.avail_in = 0; file->pfile_in_zip_read = pfile_in_zip_read_info; return EXTRACTOR_UNZIP_OK; } /** * Callback to perform read operation using LE API. * Note that partial reads are not allowed. * * @param opaque the 'struct EXTRACTOR_ExtractContext' * @param buf where to write bytes read * @param size number of bytes desired * @return number of bytes copied to buf */ static uLong ec_read_file_func (voidpf opaque, void* buf, uLong size) { struct EXTRACTOR_ExtractContext *ec = opaque; void *ptr; ssize_t ret; uLong done; done = 0; while (done < size) { ret = ec->read (ec->cls, &ptr, size); if (ret <= 0) return done; memcpy (buf + done, ptr, ret); done += ret; } return done; } /** * Callback to obtain current offset in file using LE API. * * @param opaque the 'struct EXTRACTOR_ExtractContext' * @return current offset in file, -1 on error */ static long ec_tell_file_func (voidpf opaque) { struct EXTRACTOR_ExtractContext *ec = opaque; return ec->seek (ec->cls, 0, SEEK_CUR); } /** * Callback to perform seek operation using LE API. * * @param opaque the 'struct EXTRACTOR_ExtractContext' * @param offset where to seek * @param origin relative to where should we seek * @return EXTRACTOR_UNZIP_OK on success */ static long ec_seek_file_func (voidpf opaque, uLong offset, int origin) { struct EXTRACTOR_ExtractContext *ec = opaque; if (-1 == ec->seek (ec->cls, offset, origin)) return EXTRACTOR_UNZIP_INTERNALERROR; return EXTRACTOR_UNZIP_OK; } /** * Open a zip file for processing using the data access * functions from the extract context. * * @param ec extract context to use * @return handle to zip data, NULL on error */ struct EXTRACTOR_UnzipFile * EXTRACTOR_common_unzip_open (struct EXTRACTOR_ExtractContext *ec) { struct FileFuncDefs ffd; ffd.zread_file = &ec_read_file_func; ffd.ztell_file = &ec_tell_file_func; ffd.zseek_file = &ec_seek_file_func; ffd.opaque = ec; return unzip_open_using_ffd (&ffd); } /* end of unzip.c */ libextractor-1.3/src/common/convert.h0000644000175000017500000000261012007536143014710 00000000000000/* This file is part of libextractor. (C) 2004 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef CONVERT_H #define CONVERT_H #include "platform.h" #include "extractor.h" #ifdef __cplusplus extern "C" { #endif /** * Convert the 'len' characters long character sequence given in * 'input' that is in the given 'charset' to UTF-8. * * @param input string to convert * @param len number of bytes in input * @param charset input character set * @return the converted string (0-terminated), NULL on error */ char * EXTRACTOR_common_convert_to_utf8 (const char * input, size_t len, const char *charset); #ifdef __cplusplus } #endif #endif libextractor-1.3/src/common/le_architecture.h0000644000175000017500000000644112021437533016377 00000000000000/* This file is part of libextractor. (C) 2002, 2003, 2004, 2009, 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file common/le_architecture.h * @brief support routines and defines to deal with architecture-specific issues */ #ifndef LE_ARCHITECTURE_H #define LE_ARCHITECTURE_H #if WINDOWS #include /* #define BYTE_ORDER */ #endif /* This is copied directly from GNUnet headers */ #ifndef __BYTE_ORDER #ifdef _BYTE_ORDER #define __BYTE_ORDER _BYTE_ORDER #else #ifdef BYTE_ORDER #define __BYTE_ORDER BYTE_ORDER #endif #endif #endif #ifndef __BIG_ENDIAN #ifdef _BIG_ENDIAN #define __BIG_ENDIAN _BIG_ENDIAN #else #ifdef BIG_ENDIAN #define __BIG_ENDIAN BIG_ENDIAN #endif #endif #endif #ifndef __LITTLE_ENDIAN #ifdef _LITTLE_ENDIAN #define __LITTLE_ENDIAN _LITTLE_ENDIAN #else #ifdef LITTLE_ENDIAN #define __LITTLE_ENDIAN LITTLE_ENDIAN #endif #endif #endif /** * Endian operations */ #if __BYTE_ORDER == __LITTLE_ENDIAN #define LE_htobe16(x) __bswap_16 (x) #define LE_htole16(x) (x) #define LE_be16toh(x) __bswap_16 (x) #define LE_le16toh(x) (x) #define LE_htobe32(x) __bswap_32 (x) #define LE_htole32(x) (x) #define LE_be32toh(x) __bswap_32 (x) #define LE_le32toh(x) (x) #define LE_htobe64(x) __bswap_64 (x) #define LE_htole64(x) (x) #define LE_be64toh(x) __bswap_64 (x) #define LE_le64toh(x) (x) #endif #if __BYTE_ORDER == __BIG_ENDIAN #define LE_htobe16(x) (x) #define LE_htole16(x) __bswap_16 (x) #define LE_be16toh(x) (x) #define LE_le16toh(x) __bswap_16 (x) #define LE_htobe32(x) (x) #define LE_htole32(x) __bswap_32 (x) #define LE_be32toh(x) (x) #define LE_le32toh(x) __bswap_32 (x) #define LE_htobe64(x) (x) #define LE_htole64(x) __bswap_64 (x) #define LE_be64toh(x) (x) #define LE_le64toh(x) __bswap_64 (x) #endif /** * gcc-ism to get packed structs. */ #define LE_PACKED __attribute__((packed)) #if MINGW #if __GNUC__ > 3 /** * gcc 4.x-ism to pack structures even on W32 (to be used before structs) */ #define LE_NETWORK_STRUCT_BEGIN \ _Pragma("pack(push)") \ _Pragma("pack(1)") /** * gcc 4.x-ism to pack structures even on W32 (to be used after structs) */ #define LE_NETWORK_STRUCT_END _Pragma("pack(pop)") #else #error gcc 4.x or higher required on W32 systems #endif #else /** * Good luck, LE_PACKED should suffice, but this won't work on W32 */ #define LE_NETWORK_STRUCT_BEGIN /** * Good luck, LE_PACKED should suffice, but this won't work on W32 */ #define LE_NETWORK_STRUCT_END #endif #endif libextractor-1.3/src/common/Makefile.am0000644000175000017500000000074512061155001015110 00000000000000INCLUDES = -I$(top_srcdir)/src/include LIBS = \ @LE_LIBINTL@ @LIBS@ if USE_COVERAGE AM_CFLAGS = --coverage -O0 XLIB = -lgcov endif if HAVE_ZLIB zlib = -lz LINK_UNZIP = unzip.c unzip.h endif lib_LTLIBRARIES = \ libextractor_common.la libextractor_common_la_LDFLAGS = \ $(LE_LIB_LDFLAGS) \ -version-info 1:0:0 libextractor_common_la_LIBADD = \ $(LTLIBICONV) $(zlib) libextractor_common_la_SOURCES = \ le_architecture.h \ $(LINK_UNZIP) \ convert.c convert.h libextractor-1.3/src/common/unzip.h0000644000175000017500000001763712016742777014430 00000000000000/* This file is part of libextractor. (C) 2008, 2012 Christian Grothoff (and other contributing authors) libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file common/unzip.h * @brief API to access ZIP archives * @author Christian Grothoff * * This code is based in part on * unzip 1.00 Copyright 1998-2003 Gilles Vollant * http://www.winimage.com/zLibDll" */ #ifndef LE_COMMON_UNZIP_H #define LE_COMMON_UNZIP_H #include /** * Operation was successful. */ #define EXTRACTOR_UNZIP_OK (0) /** * Cannot move to next file, we are at the end */ #define EXTRACTOR_UNZIP_END_OF_LIST_OF_FILE (-100) /** * IO error, see errno. */ #define EXTRACTOR_UNZIP_ERRNO (Z_ERRNO) /** * Reached end of the file (NOTE: same as OK!) */ #define EXTRACTOR_UNZIP_EOF (0) /** * Invalid arguments to call. */ #define EXTRACTOR_UNZIP_PARAMERROR (-102) /** * Not a zip file (or malformed) */ #define EXTRACTOR_UNZIP_BADZIPFILE (-103) /** * Internal error. */ #define EXTRACTOR_UNZIP_INTERNALERROR (-104) /** * Checksum failure. */ #define EXTRACTOR_UNZIP_CRCERROR (-105) /** * Handle for a ZIP archive. */ struct EXTRACTOR_UnzipFile; /** * date/time information */ struct EXTRACTOR_UnzipDateTimeInfo { /** * seconds after the minute - [0,59] */ uInt tm_sec; /** * minutes after the hour - [0,59] */ uInt tm_min; /** * hours since midnight - [0,23] */ uInt tm_hour; /** * day of the month - [1,31] */ uInt tm_mday; /** * months since January - [0,11] */ uInt tm_mon; /** * years - [1980..2044] */ uInt tm_year; }; /** * Information about a file in the zipfile */ struct EXTRACTOR_UnzipFileInfo { /** * version made by 2 bytes */ uLong version; /** * version needed to extract 2 bytes */ uLong version_needed; /** * general purpose bit flag 2 bytes */ uLong flag; /** * compression method 2 bytes */ uLong compression_method; /** * last mod file date in Dos fmt 4 bytes */ uLong dosDate; /** * crc-32 4 bytes */ uLong crc; /** * compressed size 4 bytes */ uLong compressed_size; /** * uncompressed size 4 bytes */ uLong uncompressed_size; /** * filename length 2 bytes */ uLong size_filename; /** * extra field length 2 bytes */ uLong size_file_extra; /** * file comment length 2 bytes */ uLong size_file_comment; /** * disk number start 2 bytes */ uLong disk_num_start; /** * internal file attributes 2 bytes */ uLong internal_fa; /** * external file attributes 4 bytes */ uLong external_fa; /** * Time and date of last modification. */ struct EXTRACTOR_UnzipDateTimeInfo tmu_date; }; /** * Open a zip file for processing using the data access * functions from the extract context. * * @param ec extract context to use * @return handle to zip data, NULL on error */ struct EXTRACTOR_UnzipFile * EXTRACTOR_common_unzip_open (struct EXTRACTOR_ExtractContext *ec); /** * Obtain the global comment from a ZIP file. * * @param file unzip file to inspect * @param comment where to copy the comment * @param comment_len maximum number of bytes available in comment * @return EXTRACTOR_UNZIP_OK on success */ int EXTRACTOR_common_unzip_get_global_comment (struct EXTRACTOR_UnzipFile *file, char *comment, size_t comment_len); /** * Close a ZipFile. * * @param file zip file to close * @return EXTRACTOR_UNZIP_OK if there is no problem. */ int EXTRACTOR_common_unzip_close (struct EXTRACTOR_UnzipFile *file); /** * Set the current file of the zipfile to the first file. * * @param file zipfile to manipulate * @return UNZ_OK if there is no problem */ int EXTRACTOR_common_unzip_go_to_first_file (struct EXTRACTOR_UnzipFile *file); /** * Set the current file of the zipfile to the next file. * * @param file zipfile to manipulate * @return EXTRACTOR_UNZIP_OK if there is no problem, * EXTRACTOR_UNZIP_END_OF_LIST_OF_FILE if the actual file was the latest. */ int EXTRACTOR_common_unzip_go_to_next_file (struct EXTRACTOR_UnzipFile *file); /** * Try locate the file szFileName in the zipfile. * * @param file zipfile to manipulate * @param szFileName name to find * @param iCaseSensitivity, use 1 for case sensitivity (like strcmp); * 2 for no case sensitivity (like strcmpi or strcasecmp); or * 0 for defaut of your operating system (like 1 on Unix, 2 on Windows) * @return EXTRACTOR_UNZIP_OK if the file is found. It becomes the current file. * EXTRACTOR_UNZIP_END_OF_LIST_OF_FILE if the file is not found */ int EXTRACTOR_common_unzip_go_find_local_file (struct EXTRACTOR_UnzipFile *file, const char *szFileName, int iCaseSensitivity); /** * Write info about the ZipFile in the *pglobal_info structure. * No preparation of the structure is needed. * * @param file zipfile to manipulate * @param pfile_info file information to initialize * @param szFileName where to write the name of the current file * @param fileNameBufferSize number of bytes available in szFileName * @param extraField where to write extra data * @param extraFieldBufferSize number of bytes available in extraField * @param szComment where to write the comment on the current file * @param commentBufferSize number of bytes available in szComment * @return EXTRACTOR_UNZIP_OK if there is no problem. */ int EXTRACTOR_common_unzip_get_current_file_info (struct EXTRACTOR_UnzipFile *file, struct EXTRACTOR_UnzipFileInfo *pfile_info, char *szFileName, uLong fileNameBufferSize, void *extraField, uLong extraFieldBufferSize, char *szComment, uLong commentBufferSize); /** * Open for reading data the current file in the zipfile. * * @param file zipfile to manipulate * @return EXTRACTOR_UNZIP_OK on success */ int EXTRACTOR_common_unzip_open_current_file (struct EXTRACTOR_UnzipFile *file); /** * Read bytes from the current file (must have been opened). * * @param buf contain buffer where data must be copied * @param len the size of buf. * @return the number of byte copied if somes bytes are copied * 0 if the end of file was reached * <0 with error code if there is an error * (EXTRACTOR_UNZIP_ERRNO for IO error, or zLib error for uncompress error) */ ssize_t EXTRACTOR_common_unzip_read_current_file (struct EXTRACTOR_UnzipFile *file, void *buf, size_t len); /** * Close the file in zip opened with EXTRACTOR_common_unzip_open_current_file. * * @return EXTRACTOR_UNZIP_CRCERROR if all the file was read but the CRC is not good */ int EXTRACTOR_common_unzip_close_current_file (struct EXTRACTOR_UnzipFile *file); #endif /* LE_COMMON_UNZIP_H */ libextractor-1.3/src/include/0000755000175000017500000000000012256015537013300 500000000000000libextractor-1.3/src/include/platform.h0000644000175000017500000000365112027417262015217 00000000000000/* This file is part of GNUnet. (C) 2001, 2002, 2003, 2004, 2005 Christian Grothoff (and other contributing authors) libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file include/platform.h * @brief plaform specifics * * @author Nils Durner */ #ifndef PLATFORM_H #define PLATFORM_H #include "config.h" #ifndef FRAMEWORK_BUILD #include "gettext.h" #define _(a) dgettext(PACKAGE, a) #else #include "libintlemu.h" #define _(a) dgettext("org.gnunet.libextractor", a) #endif #include "plibc.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifndef MINGW #include #include #include #include #else #include #endif #include #if HAVE_ICONV_H #include #endif #include #ifndef SIZE_MAX #define SIZE_MAX ((size_t)-1) #endif #if DARWIN #include #include #endif #if !WINDOWS #define ABORT() abort() #else #define ABORT() DebugBreak () #endif #endif libextractor-1.3/src/include/extractor.h0000644000175000017500000005270112255613716015413 00000000000000/* This file is part of libextractor. (C) 2002-2013 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef EXTRACTOR_H #define EXTRACTOR_H #ifdef __cplusplus extern "C" { #if 0 /* keep Emacsens' auto-indent happy */ } #endif #endif #include /** * 0.2.6-1 => 0x00020601 * 4.5.2-0 => 0x04050200 */ #define EXTRACTOR_VERSION 0x01030000 #include /** * Options for how plugin execution should be done. */ enum EXTRACTOR_Options { /** * Run plugin out-of-process, starting the process once the plugin * is to be run. If a plugin crashes, automatically restart the * respective process for the same file and try once more * (since the crash may be caused by the previous file). If * the process crashes immediately again, it is not restarted * until the next file. */ EXTRACTOR_OPTION_DEFAULT_POLICY = 0, /** * Deprecated option. Ignored. */ EXTRACTOR_OPTION_OUT_OF_PROCESS_NO_RESTART = 1, /** * Run plugins in-process. Unsafe, not recommended, * can be nice for debugging. */ EXTRACTOR_OPTION_IN_PROCESS = 2, /** * Internal value for plugins that have been disabled. */ EXTRACTOR_OPTION_DISABLED = 3 }; /** * Format in which the extracted meta data is presented. */ enum EXTRACTOR_MetaFormat { /** * Format is unknown. */ EXTRACTOR_METAFORMAT_UNKNOWN = 0, /** * 0-terminated, UTF-8 encoded string. "data_len" * is strlen(data)+1. */ EXTRACTOR_METAFORMAT_UTF8 = 1, /** * Some kind of binary format, see given Mime type. */ EXTRACTOR_METAFORMAT_BINARY = 2, /** * 0-terminated string. The specific encoding is unknown. * "data_len" is strlen (data)+1. */ EXTRACTOR_METAFORMAT_C_STRING = 3 }; /** * Enumeration defining various sources of keywords. See also * http://dublincore.org/documents/1998/09/dces/ * * @defgroup types meta data types * @{ */ enum EXTRACTOR_MetaType { /* fundamental types */ EXTRACTOR_METATYPE_RESERVED = 0, EXTRACTOR_METATYPE_MIMETYPE = 1, EXTRACTOR_METATYPE_FILENAME = 2, EXTRACTOR_METATYPE_COMMENT = 3, /* Standard types from bibtex */ EXTRACTOR_METATYPE_TITLE = 4, EXTRACTOR_METATYPE_BOOK_TITLE = 5, EXTRACTOR_METATYPE_BOOK_EDITION = 6, EXTRACTOR_METATYPE_BOOK_CHAPTER_NUMBER = 7, EXTRACTOR_METATYPE_JOURNAL_NAME = 8, EXTRACTOR_METATYPE_JOURNAL_VOLUME = 9, EXTRACTOR_METATYPE_JOURNAL_NUMBER = 10, EXTRACTOR_METATYPE_PAGE_COUNT = 11, EXTRACTOR_METATYPE_PAGE_RANGE = 12, EXTRACTOR_METATYPE_AUTHOR_NAME = 13, EXTRACTOR_METATYPE_AUTHOR_EMAIL = 14, EXTRACTOR_METATYPE_AUTHOR_INSTITUTION = 15, EXTRACTOR_METATYPE_PUBLISHER = 16, EXTRACTOR_METATYPE_PUBLISHER_ADDRESS = 17, EXTRACTOR_METATYPE_PUBLISHER_INSTITUTION = 18, EXTRACTOR_METATYPE_PUBLISHER_SERIES = 19, EXTRACTOR_METATYPE_PUBLICATION_TYPE = 20, EXTRACTOR_METATYPE_PUBLICATION_YEAR = 21, EXTRACTOR_METATYPE_PUBLICATION_MONTH = 22, EXTRACTOR_METATYPE_PUBLICATION_DAY = 23, EXTRACTOR_METATYPE_PUBLICATION_DATE = 24, EXTRACTOR_METATYPE_BIBTEX_EPRINT = 25, EXTRACTOR_METATYPE_BIBTEX_ENTRY_TYPE = 26, EXTRACTOR_METATYPE_LANGUAGE = 27, EXTRACTOR_METATYPE_CREATION_TIME = 28, EXTRACTOR_METATYPE_URL = 29, /* "unique" document identifiers */ EXTRACTOR_METATYPE_URI = 30, EXTRACTOR_METATYPE_ISRC = 31, EXTRACTOR_METATYPE_HASH_MD4 = 32, EXTRACTOR_METATYPE_HASH_MD5 = 33, EXTRACTOR_METATYPE_HASH_SHA0 = 34, EXTRACTOR_METATYPE_HASH_SHA1 = 35, EXTRACTOR_METATYPE_HASH_RMD160 = 36, /* identifiers of a location */ EXTRACTOR_METATYPE_GPS_LATITUDE_REF = 37, EXTRACTOR_METATYPE_GPS_LATITUDE = 38, EXTRACTOR_METATYPE_GPS_LONGITUDE_REF = 39, EXTRACTOR_METATYPE_GPS_LONGITUDE = 40, EXTRACTOR_METATYPE_LOCATION_CITY = 41, EXTRACTOR_METATYPE_LOCATION_SUBLOCATION = 42, EXTRACTOR_METATYPE_LOCATION_COUNTRY = 43, EXTRACTOR_METATYPE_LOCATION_COUNTRY_CODE = 44, /* generic attributes */ EXTRACTOR_METATYPE_UNKNOWN = 45, EXTRACTOR_METATYPE_DESCRIPTION = 46, EXTRACTOR_METATYPE_COPYRIGHT = 47, EXTRACTOR_METATYPE_RIGHTS = 48, EXTRACTOR_METATYPE_KEYWORDS = 49, EXTRACTOR_METATYPE_ABSTRACT = 50, EXTRACTOR_METATYPE_SUMMARY = 51, EXTRACTOR_METATYPE_SUBJECT = 52, EXTRACTOR_METATYPE_CREATOR = 53, EXTRACTOR_METATYPE_FORMAT = 54, EXTRACTOR_METATYPE_FORMAT_VERSION = 55, /* processing history */ EXTRACTOR_METATYPE_CREATED_BY_SOFTWARE = 56, EXTRACTOR_METATYPE_UNKNOWN_DATE = 57, EXTRACTOR_METATYPE_CREATION_DATE = 58, EXTRACTOR_METATYPE_MODIFICATION_DATE = 59, EXTRACTOR_METATYPE_LAST_PRINTED = 60, EXTRACTOR_METATYPE_LAST_SAVED_BY = 61, EXTRACTOR_METATYPE_TOTAL_EDITING_TIME = 62, EXTRACTOR_METATYPE_EDITING_CYCLES = 63, EXTRACTOR_METATYPE_MODIFIED_BY_SOFTWARE = 64, EXTRACTOR_METATYPE_REVISION_HISTORY = 65, EXTRACTOR_METATYPE_EMBEDDED_FILE_SIZE = 66, EXTRACTOR_METATYPE_FINDER_FILE_TYPE = 67, EXTRACTOR_METATYPE_FINDER_FILE_CREATOR = 68, /* software package specifics (deb, rpm, tgz, elf) */ EXTRACTOR_METATYPE_PACKAGE_NAME = 69, EXTRACTOR_METATYPE_PACKAGE_VERSION = 70, EXTRACTOR_METATYPE_SECTION = 71, EXTRACTOR_METATYPE_UPLOAD_PRIORITY = 72, EXTRACTOR_METATYPE_PACKAGE_DEPENDENCY = 73, EXTRACTOR_METATYPE_PACKAGE_CONFLICTS = 74, EXTRACTOR_METATYPE_PACKAGE_REPLACES = 75, EXTRACTOR_METATYPE_PACKAGE_PROVIDES = 76, EXTRACTOR_METATYPE_PACKAGE_RECOMMENDS = 77, EXTRACTOR_METATYPE_PACKAGE_SUGGESTS = 78, EXTRACTOR_METATYPE_PACKAGE_MAINTAINER = 79, EXTRACTOR_METATYPE_PACKAGE_INSTALLED_SIZE = 80, EXTRACTOR_METATYPE_PACKAGE_SOURCE = 81, EXTRACTOR_METATYPE_PACKAGE_ESSENTIAL = 82, EXTRACTOR_METATYPE_TARGET_ARCHITECTURE = 83, EXTRACTOR_METATYPE_PACKAGE_PRE_DEPENDENCY = 84, EXTRACTOR_METATYPE_LICENSE = 85, EXTRACTOR_METATYPE_PACKAGE_DISTRIBUTION = 86, EXTRACTOR_METATYPE_BUILDHOST = 87, EXTRACTOR_METATYPE_VENDOR = 88, EXTRACTOR_METATYPE_TARGET_OS = 89, EXTRACTOR_METATYPE_SOFTWARE_VERSION = 90, EXTRACTOR_METATYPE_TARGET_PLATFORM = 91, EXTRACTOR_METATYPE_RESOURCE_TYPE = 92, EXTRACTOR_METATYPE_LIBRARY_SEARCH_PATH = 93, EXTRACTOR_METATYPE_LIBRARY_DEPENDENCY = 94, /* photography specifics */ EXTRACTOR_METATYPE_CAMERA_MAKE = 95, EXTRACTOR_METATYPE_CAMERA_MODEL = 96, EXTRACTOR_METATYPE_EXPOSURE = 97, EXTRACTOR_METATYPE_APERTURE = 98, EXTRACTOR_METATYPE_EXPOSURE_BIAS = 99, EXTRACTOR_METATYPE_FLASH = 100, EXTRACTOR_METATYPE_FLASH_BIAS = 101, EXTRACTOR_METATYPE_FOCAL_LENGTH = 102, EXTRACTOR_METATYPE_FOCAL_LENGTH_35MM = 103, EXTRACTOR_METATYPE_ISO_SPEED = 104, EXTRACTOR_METATYPE_EXPOSURE_MODE = 105, EXTRACTOR_METATYPE_METERING_MODE = 106, EXTRACTOR_METATYPE_MACRO_MODE = 107, EXTRACTOR_METATYPE_IMAGE_QUALITY = 108, EXTRACTOR_METATYPE_WHITE_BALANCE = 109, EXTRACTOR_METATYPE_ORIENTATION = 110, EXTRACTOR_METATYPE_MAGNIFICATION = 111, /* image specifics */ EXTRACTOR_METATYPE_IMAGE_DIMENSIONS = 112, EXTRACTOR_METATYPE_PRODUCED_BY_SOFTWARE = 113, EXTRACTOR_METATYPE_THUMBNAIL = 114, EXTRACTOR_METATYPE_IMAGE_RESOLUTION = 115, EXTRACTOR_METATYPE_SOURCE = 116, /* (text) document processing specifics */ EXTRACTOR_METATYPE_CHARACTER_SET = 117, EXTRACTOR_METATYPE_LINE_COUNT = 118, EXTRACTOR_METATYPE_PARAGRAPH_COUNT = 119, EXTRACTOR_METATYPE_WORD_COUNT = 120, EXTRACTOR_METATYPE_CHARACTER_COUNT = 121, EXTRACTOR_METATYPE_PAGE_ORIENTATION = 122, EXTRACTOR_METATYPE_PAPER_SIZE = 123, EXTRACTOR_METATYPE_TEMPLATE = 124, EXTRACTOR_METATYPE_COMPANY = 125, EXTRACTOR_METATYPE_MANAGER = 126, EXTRACTOR_METATYPE_REVISION_NUMBER = 127, /* music / video specifics */ EXTRACTOR_METATYPE_DURATION = 128, EXTRACTOR_METATYPE_ALBUM = 129, EXTRACTOR_METATYPE_ARTIST = 130, EXTRACTOR_METATYPE_GENRE = 131, EXTRACTOR_METATYPE_TRACK_NUMBER = 132, EXTRACTOR_METATYPE_DISC_NUMBER = 133, EXTRACTOR_METATYPE_PERFORMER = 134, EXTRACTOR_METATYPE_CONTACT_INFORMATION = 135, EXTRACTOR_METATYPE_SONG_VERSION = 136, EXTRACTOR_METATYPE_PICTURE = 137, EXTRACTOR_METATYPE_COVER_PICTURE = 138, EXTRACTOR_METATYPE_CONTRIBUTOR_PICTURE = 139, EXTRACTOR_METATYPE_EVENT_PICTURE = 140, EXTRACTOR_METATYPE_LOGO = 141, EXTRACTOR_METATYPE_BROADCAST_TELEVISION_SYSTEM = 142, EXTRACTOR_METATYPE_SOURCE_DEVICE = 143, EXTRACTOR_METATYPE_DISCLAIMER = 144, EXTRACTOR_METATYPE_WARNING = 145, EXTRACTOR_METATYPE_PAGE_ORDER = 146, EXTRACTOR_METATYPE_WRITER = 147, EXTRACTOR_METATYPE_PRODUCT_VERSION = 148, EXTRACTOR_METATYPE_CONTRIBUTOR_NAME = 149, EXTRACTOR_METATYPE_MOVIE_DIRECTOR = 150, EXTRACTOR_METATYPE_NETWORK_NAME = 151, EXTRACTOR_METATYPE_SHOW_NAME = 152, EXTRACTOR_METATYPE_CHAPTER_NAME = 153, EXTRACTOR_METATYPE_SONG_COUNT = 154, EXTRACTOR_METATYPE_STARTING_SONG = 155, EXTRACTOR_METATYPE_PLAY_COUNTER = 156, EXTRACTOR_METATYPE_CONDUCTOR = 157, EXTRACTOR_METATYPE_INTERPRETATION = 158, EXTRACTOR_METATYPE_COMPOSER = 159, EXTRACTOR_METATYPE_BEATS_PER_MINUTE = 160, EXTRACTOR_METATYPE_ENCODED_BY = 161, EXTRACTOR_METATYPE_ORIGINAL_TITLE = 162, EXTRACTOR_METATYPE_ORIGINAL_ARTIST = 163, EXTRACTOR_METATYPE_ORIGINAL_WRITER = 164, EXTRACTOR_METATYPE_ORIGINAL_RELEASE_YEAR = 165, EXTRACTOR_METATYPE_ORIGINAL_PERFORMER = 166, EXTRACTOR_METATYPE_LYRICS = 167, EXTRACTOR_METATYPE_POPULARITY_METER = 168, EXTRACTOR_METATYPE_LICENSEE = 169, EXTRACTOR_METATYPE_MUSICIAN_CREDITS_LIST = 170, EXTRACTOR_METATYPE_MOOD = 171, EXTRACTOR_METATYPE_SUBTITLE = 172, /* GNUnet specific values (never extracted) */ EXTRACTOR_METATYPE_GNUNET_DISPLAY_TYPE = 173, EXTRACTOR_METATYPE_GNUNET_FULL_DATA = 174, EXTRACTOR_METATYPE_RATING = 175, EXTRACTOR_METATYPE_ORGANIZATION = 176, EXTRACTOR_METATYPE_RIPPER = 177, EXTRACTOR_METATYPE_PRODUCER = 178, EXTRACTOR_METATYPE_GROUP = 179, EXTRACTOR_METATYPE_GNUNET_ORIGINAL_FILENAME = 180, EXTRACTOR_METATYPE_DISC_COUNT = 181, EXTRACTOR_METATYPE_CODEC = 182, EXTRACTOR_METATYPE_VIDEO_CODEC = 183, EXTRACTOR_METATYPE_AUDIO_CODEC = 184, EXTRACTOR_METATYPE_SUBTITLE_CODEC = 185, EXTRACTOR_METATYPE_CONTAINER_FORMAT = 186, EXTRACTOR_METATYPE_BITRATE = 187, EXTRACTOR_METATYPE_NOMINAL_BITRATE = 188, EXTRACTOR_METATYPE_MINIMUM_BITRATE = 189, EXTRACTOR_METATYPE_MAXIMUM_BITRATE = 190, EXTRACTOR_METATYPE_SERIAL = 191, EXTRACTOR_METATYPE_ENCODER = 192, EXTRACTOR_METATYPE_ENCODER_VERSION = 193, EXTRACTOR_METATYPE_TRACK_GAIN = 194, EXTRACTOR_METATYPE_TRACK_PEAK = 195, EXTRACTOR_METATYPE_ALBUM_GAIN = 196, EXTRACTOR_METATYPE_ALBUM_PEAK = 197, EXTRACTOR_METATYPE_REFERENCE_LEVEL = 198, EXTRACTOR_METATYPE_LOCATION_NAME = 199, EXTRACTOR_METATYPE_LOCATION_ELEVATION = 200, EXTRACTOR_METATYPE_LOCATION_HORIZONTAL_ERROR = 201, EXTRACTOR_METATYPE_LOCATION_MOVEMENT_SPEED = 202, EXTRACTOR_METATYPE_LOCATION_MOVEMENT_DIRECTION = 203, EXTRACTOR_METATYPE_LOCATION_CAPTURE_DIRECTION = 204, EXTRACTOR_METATYPE_SHOW_EPISODE_NUMBER = 205, EXTRACTOR_METATYPE_SHOW_SEASON_NUMBER = 206, EXTRACTOR_METATYPE_GROUPING = 207, EXTRACTOR_METATYPE_DEVICE_MANUFACTURER = 208, EXTRACTOR_METATYPE_DEVICE_MODEL = 209, EXTRACTOR_METATYPE_AUDIO_LANGUAGE = 210, EXTRACTOR_METATYPE_CHANNELS = 211, EXTRACTOR_METATYPE_SAMPLE_RATE = 212, EXTRACTOR_METATYPE_AUDIO_DEPTH = 213, EXTRACTOR_METATYPE_AUDIO_BITRATE = 214, EXTRACTOR_METATYPE_MAXIMUM_AUDIO_BITRATE = 215, EXTRACTOR_METATYPE_VIDEO_DIMENSIONS = 216, EXTRACTOR_METATYPE_VIDEO_DEPTH = 217, EXTRACTOR_METATYPE_FRAME_RATE = 218, EXTRACTOR_METATYPE_PIXEL_ASPECT_RATIO = 219, EXTRACTOR_METATYPE_VIDEO_BITRATE = 220, EXTRACTOR_METATYPE_MAXIMUM_VIDEO_BITRATE = 221, EXTRACTOR_METATYPE_SUBTITLE_LANGUAGE = 222, EXTRACTOR_METATYPE_VIDEO_LANGUAGE = 223, EXTRACTOR_METATYPE_TOC = 224, EXTRACTOR_METATYPE_VIDEO_DURATION = 225, EXTRACTOR_METATYPE_AUDIO_DURATION = 226, EXTRACTOR_METATYPE_SUBTITLE_DURATION = 227, EXTRACTOR_METATYPE_AUDIO_PREVIEW = 228, EXTRACTOR_METATYPE_LAST = 229 }; /** @} */ /* end of meta data types */ /** * Get the textual name of the keyword. * * @param type meta type to get a UTF-8 string for * @return NULL if the type is not known, otherwise * an English (locale: C) string describing the type; * translate using `dgettext ("libextractor", rval)` * @ingroup types */ const char * EXTRACTOR_metatype_to_string (enum EXTRACTOR_MetaType type); /** * Get a long description for the meta type. * * @param type meta type to get a UTF-8 description for * @return NULL if the type is not known, otherwise * an English (locale: C) string describing the type; * translate using `dgettext ("libextractor", rval)` * @ingroup types */ const char * EXTRACTOR_metatype_to_description (enum EXTRACTOR_MetaType type); /** * Return the highest type number, exclusive as in [0,max). * * @return highest legal metatype number for this version of libextractor * @ingroup types */ enum EXTRACTOR_MetaType EXTRACTOR_metatype_get_max (void); /** * Type of a function that libextractor calls for each * meta data item found. * * @param cls closure (user-defined) * @param plugin_name name of the plugin that produced this value; * special values can be used (i.e. '<zlib>' for zlib being * used in the main libextractor library and yielding * meta data). * @param type libextractor-type describing the meta data * @param format basic format information about @a data * @param data_mime_type mime-type of @a data (not of the original file); * can be NULL (if mime-type is not known) * @param data actual meta-data found * @param data_len number of bytes in @a data * @return 0 to continue extracting, 1 to abort */ typedef int (*EXTRACTOR_MetaDataProcessor) (void *cls, const char *plugin_name, enum EXTRACTOR_MetaType type, enum EXTRACTOR_MetaFormat format, const char *data_mime_type, const char *data, size_t data_len); /** * Context provided for plugins that perform meta data extraction. */ struct EXTRACTOR_ExtractContext { /** * Closure argument to pass to all callbacks. */ void *cls; /** * Configuration string for the plugin. */ const char *config; /** * Obtain a pointer to up to @a size bytes of data from the file to process. * * @param cls the @e cls member of this struct * @param data pointer to set to the file data, set to NULL on error * @param size maximum number of bytes requested * @return number of bytes now available in @a data (can be smaller than @a size), * -1 on error */ ssize_t (*read) (void *cls, void **data, size_t size); /** * Seek in the file. Use `SEEK_CUR` for @a whence and @a pos of 0 to * obtain the current position in the file. * * @param cls the @e cls member of this struct * @param pos position to seek (see 'man lseek') * @param whence how to see (absolute to start, relative, absolute to end) * @return new absolute position, -1 on error (i.e. desired position * does not exist) */ int64_t (*seek) (void *cls, int64_t pos, int whence); /** * Determine the overall size of the file. * * @param cls the @a cls member of this struct * @return overall file size, `UINT64_MAX` on error (i.e. IPC failure) */ uint64_t (*get_size) (void *cls); /** * Function to call on extracted data. */ EXTRACTOR_MetaDataProcessor proc; }; /** * Signature of the extract method that each plugin * must provide. * * @param ec extraction context provided to the plugin */ typedef void (*EXTRACTOR_extract_method) (struct EXTRACTOR_ExtractContext *ec); /** * Linked list of extractor plugins. An application builds this list * by telling libextractor to load various keyword-extraction * plugins. Libraries can also be unloaded (removed from this list, * see #EXTRACTOR_plugin_remove). */ struct EXTRACTOR_PluginList; /** * Load the default set of plugins. The default can be changed * by setting the LIBEXTRACTOR_LIBRARIES environment variable; * If it is set to "env", then this function will return * #EXTRACTOR_plugin_add_config (NULL, env, flags). * * If LIBEXTRACTOR_LIBRARIES is not set, the function will attempt * to locate the installed plugins and load all of them. * The directory where the code will search for plugins is typically * automatically determined; it can be specified explicitly using the * "LIBEXTRACTOR_PREFIX" environment variable. * * This environment variable must be set to the precise directory with * the plugins (i.e. "/usr/lib/libextractor", not "/usr"). Note that * setting the environment variable will disable all of the methods * that are typically used to determine the location of plugins. * Multiple paths can be specified using ':' to separate them. * * @param flags options for all of the plugins loaded * @return the default set of plugins, NULL if no plugins were found */ struct EXTRACTOR_PluginList * EXTRACTOR_plugin_add_defaults (enum EXTRACTOR_Options flags); /** * Add a library for keyword extraction. * * @param prev the previous list of libraries, may be NULL * @param library the name of the library (short handle, i.e. "mime") * @param options options to give to the library * @param flags options to use * @return the new list of libraries, equal to prev iff an error occured */ struct EXTRACTOR_PluginList * EXTRACTOR_plugin_add (struct EXTRACTOR_PluginList * prev, const char *library, const char *options, enum EXTRACTOR_Options flags); /** * Load multiple libraries as specified by the user. * * @param config a string given by the user that defines which * libraries should be loaded. Has the format * "[[-]LIBRARYNAME[(options)][:[-]LIBRARYNAME[(options)]]]*". * For example, 'mp3:ogg' loads the * mp3 and the ogg plugins. The '-' before the LIBRARYNAME * indicates that the library should be removed from * the library list. * @param prev the previous list of libraries, may be NULL * @param flags options to use * @return the new list of libraries, equal to prev iff an error occured * or if config was empty (or NULL). */ struct EXTRACTOR_PluginList * EXTRACTOR_plugin_add_config (struct EXTRACTOR_PluginList *prev, const char *config, enum EXTRACTOR_Options flags); /** * Remove a plugin from a list. * * @param prev the current list of plugins * @param library the name of the plugin to remove (short handle) * @return the reduced list, unchanged if the plugin was not loaded */ struct EXTRACTOR_PluginList * EXTRACTOR_plugin_remove (struct EXTRACTOR_PluginList *prev, const char *library); /** * Remove all plugins from the given list (destroys the list). * * @param plugin the list of plugins */ void EXTRACTOR_plugin_remove_all (struct EXTRACTOR_PluginList *plugins); /** * Extract keywords from a file using the given set of plugins. * * @param plugins the list of plugins to use * @param filename the name of the file, can be NULL if @a data is not NULL * @param data data of the file in memory, can be NULL (in which * case libextractor will open file) if filename is not NULL * @param size number of bytes in @a data, ignored if @a data is NULL * @param proc function to call for each meta data item found * @param proc_cls cls argument to @a proc */ void EXTRACTOR_extract (struct EXTRACTOR_PluginList *plugins, const char *filename, const void *data, size_t size, EXTRACTOR_MetaDataProcessor proc, void *proc_cls); /** * Simple #EXTRACTOR_MetaDataProcessor implementation that simply * prints the extracted meta data to the given file. Only prints * those keywords that are in UTF-8 format. * * @param handle the file to write to (`stdout`, `stderr`), must NOT be NULL, * must be of type `FILE *`. * @param plugin_name name of the plugin that produced this value * @param type libextractor-type describing the meta data * @param format basic format information about data * @param data_mime_type mime-type of @a data (not of the original file); * can be NULL (if mime-type is not known) * @param data actual meta-data found * @param data_len number of bytes in @a data * @return non-zero if printing failed, otherwise 0. */ int EXTRACTOR_meta_data_print (void *handle, const char *plugin_name, enum EXTRACTOR_MetaType type, enum EXTRACTOR_MetaFormat format, const char *data_mime_type, const char *data, size_t data_len); #if 0 /* keep Emacsens' auto-indent happy */ { #endif #ifdef __cplusplus } #endif #endif libextractor-1.3/src/include/Makefile.in0000644000175000017500000005412712256015517015274 00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src/include DIST_COMMON = $(include_HEADERS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/abi-gsf.m4 \ $(top_srcdir)/m4/ac_define_dir.m4 \ $(top_srcdir)/m4/ax_create_pkgconfig_info.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glib-2.0.m4 \ $(top_srcdir)/m4/gtk-2.0.m4 $(top_srcdir)/m4/gtk-3.0.m4 \ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(includedir)" HEADERS = $(include_HEADERS) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ GLIB_LIBS = @GLIB_LIBS@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GOBJECT_QUERY = @GOBJECT_QUERY@ GREP = @GREP@ GSF_CFLAGS = @GSF_CFLAGS@ GSF_GNOME_CFLAGS = @GSF_GNOME_CFLAGS@ GSF_GNOME_LIBS = @GSF_GNOME_LIBS@ GSF_LIBS = @GSF_LIBS@ GSTREAMER_APP_CFLAGS = @GSTREAMER_APP_CFLAGS@ GSTREAMER_APP_LIBS = @GSTREAMER_APP_LIBS@ GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@ GSTREAMER_LIBS = @GSTREAMER_LIBS@ GSTREAMER_PBUTILS_CFLAGS = @GSTREAMER_PBUTILS_CFLAGS@ GSTREAMER_PBUTILS_LIBS = @GSTREAMER_PBUTILS_LIBS@ GSTREAMER_TAG_CFLAGS = @GSTREAMER_TAG_CFLAGS@ GSTREAMER_TAG_LIBS = @GSTREAMER_TAG_LIBS@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ HAVE_CXX = @HAVE_CXX@ HAVE_ZZUF = @HAVE_ZZUF@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ ISOLOCALEDIR = @ISOLOCALEDIR@ LD = @LD@ LDFLAGS = @LDFLAGS@ LE_INTLINCL = @LE_INTLINCL@ LE_LIBINTL = @LE_LIBINTL@ LE_LIB_LDFLAGS = @LE_LIB_LDFLAGS@ LE_LIB_LIBS = @LE_LIB_LIBS@ LE_PLUGIN_LDFLAGS = @LE_PLUGIN_LDFLAGS@ LIBEXT = @LIBEXT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIB_VERSION_AGE = @LIB_VERSION_AGE@ LIB_VERSION_CURRENT = @LIB_VERSION_CURRENT@ LIB_VERSION_REVISION = @LIB_VERSION_REVISION@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALEDIR = @LOCALEDIR@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACKAGE_VERSION_NOALPHA = @PACKAGE_VERSION_NOALPHA@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ POSUB = @POSUB@ QT_CPPFLAGS = @QT_CPPFLAGS@ QT_LDFLAGS = @QT_LDFLAGS@ RANLIB = @RANLIB@ RPLUGINDIR = @RPLUGINDIR@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKET_LIBS = @SOCKET_LIBS@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XTRA_CPPLIBS = @XTRA_CPPLIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfig_libdir = @pkgconfig_libdir@ pkgconfig_libfile = @pkgconfig_libfile@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = . include_HEADERS = \ extractor.h EXTRA_DIST = \ plibc.h \ platform.h \ gettext.h all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/include/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/include/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-includeHEADERS: $(include_HEADERS) @$(NORMAL_INSTALL) @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \ $(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \ done uninstall-includeHEADERS: @$(NORMAL_UNINSTALL) @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(HEADERS) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(includedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-includeHEADERS install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-includeHEADERS .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-am clean clean-generic clean-libtool \ ctags ctags-recursive distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am \ install-includeHEADERS install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am uninstall-includeHEADERS # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libextractor-1.3/src/include/Makefile.am0000644000175000017500000000014711311206711015241 00000000000000SUBDIRS = . include_HEADERS = \ extractor.h EXTRA_DIST = \ plibc.h \ platform.h \ gettext.h libextractor-1.3/src/include/plibc.h0000644000175000017500000007656512224744177014511 00000000000000/* This file is part of PlibC. (C) 2005, 2006, 2007, 2008, 2009, 2010 Nils Durner (and other contributing authors) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /** * @file include/plibc.h * @brief PlibC header * @attention This file is usually not installed under Unix, * so ship it with your application * @version $Revision: 151 $ */ #ifndef _PLIBC_H_ #define _PLIBC_H_ #ifndef SIGALRM #define SIGALRM 14 #endif #ifdef __cplusplus extern "C" { #endif #include #ifdef Q_OS_WIN32 #define WINDOWS 1 #endif #define HAVE_PLIBC_FD 0 #ifdef WINDOWS #if ENABLE_NLS #include "langinfo.h" #endif #include #include #include #include #include #include #include #include #include #include #define __BYTE_ORDER BYTE_ORDER #define __BIG_ENDIAN BIG_ENDIAN /* Conflicts with our definitions */ #define __G_WIN32_H__ /* Convert LARGE_INTEGER to double */ #define Li2Double(x) ((double)((x).HighPart) * 4.294967296E9 + \ (double)((x).LowPart)) #ifndef __MINGW64_VERSION_MAJOR struct _stati64 { _dev_t st_dev; _ino_t st_ino; _mode_t st_mode; short st_nlink; short st_uid; short st_gid; _dev_t st_rdev; __int64 st_size; time_t st_atime; time_t st_mtime; time_t st_ctime; }; #endif typedef unsigned int sa_family_t; struct sockaddr_un { short sun_family; /*AF_UNIX*/ char sun_path[108]; /*path name */ }; #ifndef pid_t #define pid_t DWORD #endif #ifndef error_t #define error_t int #endif #ifndef WEXITSTATUS #define WEXITSTATUS(status) (((status) & 0xff00) >> 8) #endif #ifndef MSG_DONTWAIT #define MSG_DONTWAIT 0 #endif enum { _SC_PAGESIZE = 30, _SC_PAGE_SIZE = 30 }; #if !defined(EACCESS) # define EACCESS EACCES #endif /* Thanks to the Cygwin project */ #if !defined(ENOCSI) # define ENOCSI 43 /* No CSI structure available */ #endif #if !defined(EL2HLT) # define EL2HLT 44 /* Level 2 halted */ #endif #if !defined(EDEADLK) # define EDEADLK 45 /* Deadlock condition */ #endif #if !defined(ENOLCK) # define ENOLCK 46 /* No record locks available */ #endif #if !defined(EBADE) # define EBADE 50 /* Invalid exchange */ #endif #if !defined(EBADR) # define EBADR 51 /* Invalid request descriptor */ #endif #if !defined(EXFULL) # define EXFULL 52 /* Exchange full */ #endif #if !defined(ENOANO) # define ENOANO 53 /* No anode */ #endif #if !defined(EBADRQC) # define EBADRQC 54 /* Invalid request code */ #endif #if !defined(EBADSLT) # define EBADSLT 55 /* Invalid slot */ #endif #if !defined(EDEADLOCK) # define EDEADLOCK EDEADLK /* File locking deadlock error */ #endif #if !defined(EBFONT) # define EBFONT 57 /* Bad font file fmt */ #endif #if !defined(ENOSTR) # define ENOSTR 60 /* Device not a stream */ #endif #if !defined(ENODATA) # define ENODATA 61 /* No data (for no delay io) */ #endif #if !defined(ETIME) # define ETIME 62 /* Timer expired */ #endif #if !defined(ENOSR) # define ENOSR 63 /* Out of streams resources */ #endif #if !defined(ENONET) # define ENONET 64 /* Machine is not on the network */ #endif #if !defined(ENOPKG) # define ENOPKG 65 /* Package not installed */ #endif #if !defined(EREMOTE) # define EREMOTE 66 /* The object is remote */ #endif #if !defined(ENOLINK) # define ENOLINK 67 /* The link has been severed */ #endif #if !defined(EADV) # define EADV 68 /* Advertise error */ #endif #if !defined(ESRMNT) # define ESRMNT 69 /* Srmount error */ #endif #if !defined(ECOMM) # define ECOMM 70 /* Communication error on send */ #endif #if !defined(EMULTIHOP) # define EMULTIHOP 74 /* Multihop attempted */ #endif #if !defined(ELBIN) # define ELBIN 75 /* Inode is remote (not really error) */ #endif #if !defined(EDOTDOT) # define EDOTDOT 76 /* Cross mount point (not really error) */ #endif #if !defined(EBADMSG) # define EBADMSG 77 /* Trying to read unreadable message */ #endif #if !defined(ENOTUNIQ) # define ENOTUNIQ 80 /* Given log. name not unique */ #endif #if !defined(EBADFD) # define EBADFD 81 /* f.d. invalid for this operation */ #endif #if !defined(EREMCHG) # define EREMCHG 82 /* Remote address changed */ #endif #if !defined(ELIBACC) # define ELIBACC 83 /* Can't access a needed shared lib */ #endif #if !defined(ELIBBAD) # define ELIBBAD 84 /* Accessing a corrupted shared lib */ #endif #if !defined(ELIBSCN) # define ELIBSCN 85 /* .lib section in a.out corrupted */ #endif #if !defined(ELIBMAX) # define ELIBMAX 86 /* Attempting to link in too many libs */ #endif #if !defined(ELIBEXEC) # define ELIBEXEC 87 /* Attempting to exec a shared library */ #endif #if !defined(ENOSYS) # define ENOSYS 88 /* Function not implemented */ #endif #if !defined(ENMFILE) # define ENMFILE 89 /* No more files */ #endif #if !defined(ENOTEMPTY) # define ENOTEMPTY 90 /* Directory not empty */ #endif #if !defined(ENAMETOOLONG) # define ENAMETOOLONG 91 /* File or path name too long */ #endif #if !defined(EPFNOSUPPORT) # define EPFNOSUPPORT 96 /* Protocol family not supported */ #endif #if !defined(ENOSHARE) # define ENOSHARE 97 /* No such host or network path */ #endif #if !defined(ENOMEDIUM) # define ENOMEDIUM 98 /* No medium (in tape drive) */ #endif #if !defined(ESHUTDOWN) # define ESHUTDOWN 99 /* Can't send after socket shutdown */ #endif #if !defined(EADDRINUSE) # define EADDRINUSE 100 /* Address already in use */ #endif #if !defined(EADDRNOTAVAIL) # define EADDRNOTAVAIL 101 /* Address not available */ #endif #if !defined(EAFNOSUPPORT) # define EAFNOSUPPORT 102 /* Address family not supported by protocol family */ #endif #if !defined(EALREADY) # define EALREADY 103 /* Socket already connected */ #endif #if !defined(ECANCELED) # define ECANCELED 105 /* Connection cancelled */ #endif #if !defined(ECONNABORTED) # define ECONNABORTED 106 /* Connection aborted */ #endif #if !defined(ECONNREFUSED) # define ECONNREFUSED 107 /* Connection refused */ #endif #if !defined(ECONNRESET) # define ECONNRESET 108 /* Connection reset by peer */ #endif #if !defined(EDESTADDRREQ) # define EDESTADDRREQ 109 /* Destination address required */ #endif #if !defined(EHOSTUNREACH) # define EHOSTUNREACH 110 /* Host is unreachable */ #endif #if !defined(ECONNABORTED) # define ECONNABORTED 111 /* Connection aborted */ #endif #if !defined(EINPROGRESS) # define EINPROGRESS 112 /* Connection already in progress */ #endif #if !defined(EISCONN) # define EISCONN 113 /* Socket is already connected */ #endif #if !defined(ELOOP) # define ELOOP 114 /* Too many symbolic links */ #endif #if !defined(EMSGSIZE) # define EMSGSIZE 115 /* Message too long */ #endif #if !defined(ENETDOWN) # define ENETDOWN 116 /* Network interface is not configured */ #endif #if !defined(ENETRESET) # define ENETRESET 117 /* Connection aborted by network */ #endif #if !defined(ENETUNREACH) # define ENETUNREACH 118 /* Network is unreachable */ #endif #if !defined(ENOBUFS) # define ENOBUFS 119 /* No buffer space available */ #endif #if !defined(EHOSTDOWN) # define EHOSTDOWN 120 /* Host is down */ #endif #if !defined(EPROCLIM) # define EPROCLIM 121 /* Too many processes */ #endif #if !defined(EDQUOT) # define EDQUOT 122 /* Disk quota exceeded */ #endif #if !defined(ENOPROTOOPT) # define ENOPROTOOPT 123 /* Protocol not available */ #endif #if !defined(ESOCKTNOSUPPORT) # define ESOCKTNOSUPPORT 124 /* Socket type not supported */ #endif #if !defined(ESTALE) # define ESTALE 125 /* Unknown error */ #endif #if !defined(ENOTCONN) # define ENOTCONN 126 /* Socket is not connected */ #endif #if !defined(ETOOMANYREFS) # define ETOOMANYREFS 127 /* Too many references: cannot splice */ #endif #if !defined(ENOTSOCK) # define ENOTSOCK 128 /* Socket operation on non-socket */ #endif #if !defined(ENOTSUP) # define ENOTSUP 129 /* Not supported */ #endif #if !defined(EOPNOTSUPP) # define EOPNOTSUPP 130 /* Operation not supported on transport endpoint */ #endif #if !defined(EUSERS) # define EUSERS 131 /* Too many users */ #endif #if !defined(EOVERFLOW) # define EOVERFLOW 132 /* Value too large for defined data type */ #endif #if !defined(EOWNERDEAD) # define EOWNERDEAD 133 /* Unknown error */ #endif #if !defined(EPROTO) # define EPROTO 134 /* Protocol error */ #endif #if !defined(EPROTONOSUPPORT) # define EPROTONOSUPPORT 135 /* Unknown protocol */ #endif #if !defined(EPROTOTYPE) # define EPROTOTYPE 136 /* Protocol wrong type for socket */ #endif #if !defined(ECASECLASH) # define ECASECLASH 137 /* Filename exists with different case */ #endif #if !defined(ETIMEDOUT) /* Make sure it's the same as WSATIMEDOUT */ # define ETIMEDOUT 138 /* Connection timed out */ #endif #if !defined(EWOULDBLOCK) || EWOULDBLOCK == 140 # undef EWOULDBLOCK /* MinGW-w64 defines it as 140, but we want it as EAGAIN */ # define EWOULDBLOCK EAGAIN /* Operation would block */ #endif #undef HOST_NOT_FOUND #define HOST_NOT_FOUND 1 #undef TRY_AGAIN #define TRY_AGAIN 2 #undef NO_RECOVERY #define NO_RECOVERY 3 #undef NO_ADDRESS #define NO_ADDRESS 4 #define PROT_READ 0x1 #define PROT_WRITE 0x2 #define MAP_SHARED 0x1 #define MAP_PRIVATE 0x2 /* unsupported */ #define MAP_FIXED 0x10 #define MAP_ANONYMOUS 0x20 /* unsupported */ #define MAP_FAILED ((void *)-1) #define MS_ASYNC 1 /* sync memory asynchronously */ #define MS_INVALIDATE 2 /* invalidate the caches */ #define MS_SYNC 4 /* synchronous memory sync */ struct statfs { long f_type; /* type of filesystem (see below) */ long f_bsize; /* optimal transfer block size */ long f_blocks; /* total data blocks in file system */ long f_bfree; /* free blocks in fs */ long f_bavail; /* free blocks avail to non-superuser */ long f_files; /* total file nodes in file system */ long f_ffree; /* free file nodes in fs */ long f_fsid; /* file system id */ long f_namelen; /* maximum length of filenames */ long f_spare[6]; /* spare for later */ }; /* Taken from the Wine project /wine/include/winternl.h */ enum SYSTEM_INFORMATION_CLASS { SystemBasicInformation = 0, Unknown1, SystemPerformanceInformation = 2, SystemTimeOfDayInformation = 3, /* was SystemTimeInformation */ Unknown4, SystemProcessInformation = 5, Unknown6, Unknown7, SystemProcessorPerformanceInformation = 8, Unknown9, Unknown10, SystemDriverInformation, Unknown12, Unknown13, Unknown14, Unknown15, SystemHandleList, Unknown17, Unknown18, Unknown19, Unknown20, SystemCacheInformation, Unknown22, SystemInterruptInformation = 23, SystemExceptionInformation = 33, SystemRegistryQuotaInformation = 37, SystemLookasideInformation = 45 }; typedef struct { LARGE_INTEGER IdleTime; LARGE_INTEGER KernelTime; LARGE_INTEGER UserTime; LARGE_INTEGER Reserved1[2]; ULONG Reserved2; } SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION; #define sleep(secs) (Sleep(secs * 1000)) /*********************** statfs *****************************/ /* fake block size */ #define FAKED_BLOCK_SIZE 512 /* linux-compatible values for fs type */ #define MSDOS_SUPER_MAGIC 0x4d44 #define NTFS_SUPER_MAGIC 0x5346544E /*********************** End of statfs ***********************/ #define SHUT_RDWR SD_BOTH /* Operations for flock() */ #define LOCK_SH 1 /* shared lock */ #define LOCK_EX 2 /* exclusive lock */ #define LOCK_NB 4 /* or'd with one of the above to prevent blocking */ #define LOCK_UN 8 /* remove lock */ /* Not supported under MinGW */ #define S_IRGRP 0 #define S_IWGRP 0 #define S_IROTH 0 #define S_IXGRP 0 #define S_IWOTH 0 #define S_IXOTH 0 #define S_ISUID 0 #define S_ISGID 0 #define S_ISVTX 0 #define S_IRWXG 0 #define S_IRWXO 0 #define SHUT_WR SD_SEND #define SHUT_RD SD_RECEIVE #define SHUT_RDWR SD_BOTH #define SIGKILL 9 #define SIGTERM 15 #define SetErrnoFromWinError(e) _SetErrnoFromWinError(e, __FILE__, __LINE__) BOOL _plibc_CreateShortcut(const char *pszSrc, const char *pszDest); BOOL _plibc_CreateShortcutW(const wchar_t *pwszSrc, const wchar_t *pwszDest); BOOL _plibc_DereferenceShortcut(char *pszShortcut); BOOL _plibc_DereferenceShortcutW(wchar_t *pwszShortcut); char *plibc_ChooseDir(char *pszTitle, unsigned long ulFlags); wchar_t *plibc_ChooseDirW(wchar_t *pwszTitle, unsigned long ulFlags); char *plibc_ChooseFile(char *pszTitle, unsigned long ulFlags); wchar_t *plibc_ChooseFileW(wchar_t *pwszTitle, unsigned long ulFlags); long QueryRegistry(HKEY hMainKey, const char *pszKey, const char *pszSubKey, char *pszBuffer, long *pdLength); long QueryRegistryW(HKEY hMainKey, const wchar_t *pszKey, const wchar_t *pszSubKey, wchar_t *pszBuffer, long *pdLength); BOOL __win_IsHandleMarkedAsBlocking(int hHandle); void __win_SetHandleBlockingMode(int s, BOOL bBlocking); void __win_DiscardHandleBlockingMode(int s); int _win_isSocketValid(int s); int plibc_conv_to_win_path(const char *pszUnix, char *pszWindows); int plibc_conv_to_win_pathw(const wchar_t *pszUnix, wchar_t *pwszWindows); int plibc_conv_to_win_pathwconv(const char *pszUnix, wchar_t *pwszWindows); int plibc_conv_to_win_pathwconv_ex(const char *pszUnix, wchar_t *pszWindows, int derefLinks); unsigned plibc_get_handle_count(); typedef void (*TPanicProc) (int, char *); void plibc_set_panic_proc(TPanicProc proc); int flock(int fd, int operation); int fsync(int fildes); int inet_pton(int af, const char *src, void *dst); int inet_pton4(const char *src, u_char *dst, int pton); #if USE_IPV6 int inet_pton6(const char *src, u_char *dst); #endif int statfs(const char *path, struct statfs *buf); const char *hstrerror(int err); int mkstemp(char *tmplate); char *strptime (const char *buf, const char *format, struct tm *tm); const char *inet_ntop(int af, const void *src, char *dst, size_t size); #ifndef gmtime_r struct tm *gmtime_r(const time_t *clock, struct tm *result); #endif int plibc_init(char *pszOrg, char *pszApp); int plibc_init_utf8(char *pszOrg, char *pszApp, int utf8_mode); void plibc_shutdown(); int plibc_initialized(); void _SetErrnoFromWinError(long lWinError, char *pszCaller, int iLine); void SetErrnoFromWinsockError(long lWinError); void SetHErrnoFromWinError(long lWinError); void SetErrnoFromHRESULT(HRESULT hRes); int GetErrnoFromWinsockError(long lWinError); FILE *_win_fopen(const char *filename, const char *mode); int _win_fclose(FILE *); DIR *_win_opendir(const char *dirname); struct dirent *_win_readdir(DIR *dirp); int _win_closedir(DIR *dirp); int _win_open(const char *filename, int oflag, ...); #ifdef ENABLE_NLS char *_win_bindtextdomain(const char *domainname, const char *dirname); #endif int _win_chdir(const char *path); int _win_close(int fd); int _win_creat(const char *path, mode_t mode); char *_win_ctime(const time_t *clock); char *_win_ctime_r(const time_t *clock, char *buf); int _win_fstat(int handle, struct stat *buffer); int _win_ftruncate(int fildes, off_t length); int _win_truncate(const char *fname, int distance); int _win_kill(pid_t pid, int sig); int _win_pipe(int *phandles); intptr_t _win_mkfifo(const char *path, mode_t mode); int _win_rmdir(const char *path); int _win_access( const char *path, int mode ); int _win_chmod(const char *filename, int pmode); char *realpath(const char *file_name, char *resolved_name); long _win_random(void); void _win_srandom(unsigned int seed); int _win_remove(const char *path); int _win_rename(const char *oldname, const char *newname); int _win_stat(const char *path, struct stat *buffer); int _win_stati64(const char *path, struct _stati64 *buffer); long _win_sysconf(int name); int _win_unlink(const char *filename); int _win_write(int fildes, const void *buf, size_t nbyte); int _win_read(int fildes, void *buf, size_t nbyte); size_t _win_fwrite(const void *buffer, size_t size, size_t count, FILE *stream); size_t _win_fread( void *buffer, size_t size, size_t count, FILE *stream ); int _win_symlink(const char *path1, const char *path2); void *_win_mmap(void *start, size_t len, int access, int flags, int fd, unsigned long long offset); int _win_msync(void *start, size_t length, int flags); int _win_munmap(void *start, size_t length); int _win_lstat(const char *path, struct stat *buf); int _win_lstati64(const char *path, struct _stati64 *buf); int _win_readlink(const char *path, char *buf, size_t bufsize); int _win_accept(int s, struct sockaddr *addr, int *addrlen); pid_t _win_waitpid(pid_t pid, int *stat_loc, int options); int _win_bind(int s, const struct sockaddr *name, int namelen); int _win_connect(int s,const struct sockaddr *name, int namelen); int _win_getpeername(int s, struct sockaddr *name, int *namelen); int _win_getsockname(int s, struct sockaddr *name, int *namelen); int _win_getsockopt(int s, int level, int optname, char *optval, int *optlen); int _win_listen(int s, int backlog); int _win_recv(int s, char *buf, int len, int flags); int _win_recvfrom(int s, void *buf, int len, int flags, struct sockaddr *from, int *fromlen); int _win_select(int max_fd, fd_set * rfds, fd_set * wfds, fd_set * efds, const struct timeval *tv); int _win_send(int s, const char *buf, int len, int flags); int _win_sendto(int s, const char *buf, int len, int flags, const struct sockaddr *to, int tolen); int _win_setsockopt(int s, int level, int optname, const void *optval, int optlen); int _win_shutdown(int s, int how); int _win_socket(int af, int type, int protocol); int _win_socketpair(int af, int type, int protocol, int socket_vector[2]); struct hostent *_win_gethostbyaddr(const char *addr, int len, int type); struct hostent *_win_gethostbyname(const char *name); struct hostent *gethostbyname2(const char *name, int af); char *_win_strerror(int errnum); int IsWinNT(); char *index(const char *s, int c); char *_win_strtok_r (char *ptr, const char *sep, char **end); #if !HAVE_STRNDUP char *strndup (const char *s, size_t n); #endif #if !HAVE_STRNLEN && (!defined(__MINGW64_VERSION_MAJOR) || !defined(_INC_STRING)) size_t strnlen (const char *str, size_t maxlen); #endif char *stpcpy(char *dest, const char *src); char *strcasestr(const char *haystack_start, const char *needle_start); #ifndef __MINGW64_VERSION_MAJOR #define strcasecmp(a, b) stricmp(a, b) #define strncasecmp(a, b, c) strnicmp(a, b, c) #endif #ifndef wcscasecmp #define wcscasecmp(a, b) wcsicmp(a, b) #endif #ifndef wcsncasecmp #define wcsncasecmp(a, b, c) wcsnicmp(a, b, c) #endif #ifndef strtok_r /* winpthreads defines it in pthread.h */ #define strtok_r _win_strtok_r #endif #endif /* WINDOWS */ #ifndef WINDOWS #define DIR_SEPARATOR '/' #define DIR_SEPARATOR_STR "/" #define PATH_SEPARATOR ':' #define PATH_SEPARATOR_STR ":" #define NEWLINE "\n" #ifdef ENABLE_NLS #define BINDTEXTDOMAIN(d, n) bindtextdomain(d, n) #endif #define CREAT(p, m) creat(p, m) #define PLIBC_CTIME(c) ctime(c) #define CTIME_R(c, b) ctime_r(c, b) #undef FOPEN #define FOPEN(f, m) fopen(f, m) #define FCLOSE(f) fclose(f) #define FTRUNCATE(f, l) ftruncate(f, l) #define TRUNCATE(f, l) truncate(f, l) #define OPENDIR(d) opendir(d) #define CLOSEDIR(d) closedir(d) #define READDIR(d) readdir(d) #define OPEN open #define CHDIR(d) chdir(d) #define CLOSE(f) close(f) #define LSEEK(f, o, w) lseek(f, o, w) #define RMDIR(f) rmdir(f) #define ACCESS(p, m) access(p, m) #define CHMOD(f, p) chmod(f, p) #define FSTAT(h, b) fstat(h, b) #define PLIBC_KILL(p, s) kill(p, s) #define PIPE(h) pipe(h) #define REMOVE(p) remove(p) #define RENAME(o, n) rename(o, n) #define STAT(p, b) stat(p, b) #define STAT64(p, b) stat64(p, b) #define SYSCONF(n) sysconf(n) #define UNLINK(f) unlink(f) #define WRITE(f, b, n) write(f, b, n) #define READ(f, b, n) read(f, b, n) #define GN_FREAD(b, s, c, f) fread(b, s, c, f) #define GN_FWRITE(b, s, c, f) fwrite(b, s, c, f) #define SYMLINK(a, b) symlink(a, b) #define MMAP(s, l, p, f, d, o) mmap(s, l, p, f, d, o) #define MKFIFO(p, m) mkfifo(p, m) #define MSYNC(s, l, f) msync(s, l, f) #define MUNMAP(s, l) munmap(s, l) #define STRERROR(i) strerror(i) #define RANDOM() random() #define SRANDOM(s) srandom(s) #define READLINK(p, b, s) readlink(p, b, s) #define LSTAT(p, b) lstat(p, b) #define LSTAT64(p, b) lstat64(p, b) #define PRINTF printf #define FPRINTF fprintf #define VPRINTF(f, a) vprintf(f, a) #define VFPRINTF(s, f, a) vfprintf(s, f, a) #define VSPRINTF(d, f, a) vsprintf(d, f, a) #define VSNPRINTF(str, size, fmt, a) vsnprintf(str, size, fmt, a) #define _REAL_SNPRINTF snprintf #define SPRINTF sprintf #define VSSCANF(s, f, a) vsscanf(s, f, a) #define SSCANF sscanf #define VFSCANF(s, f, a) vfscanf(s, f, a) #define VSCANF(f, a) vscanf(f, a) #define SCANF scanf #define FSCANF fscanf #define WAITPID(p, s, o) waitpid(p, s, o) #define ACCEPT(s, a, l) accept(s, a, l) #define BIND(s, n, l) bind(s, n, l) #define CONNECT(s, n, l) connect(s, n, l) #define GETPEERNAME(s, n, l) getpeername(s, n, l) #define GETSOCKNAME(s, n, l) getsockname(s, n, l) #define GETSOCKOPT(s, l, o, v, p) getsockopt(s, l, o, v, p) #define LISTEN(s, b) listen(s, b) #define RECV(s, b, l, f) recv(s, b, l, f) #define RECVFROM(s, b, l, f, r, o) recvfrom(s, b, l, f, r, o) #define SELECT(n, r, w, e, t) select(n, r, w, e, t) #define SEND(s, b, l, f) send(s, b, l, f) #define SENDTO(s, b, l, f, o, n) sendto(s, b, l, f, o, n) #define SETSOCKOPT(s, l, o, v, n) setsockopt(s, l, o, v, n) #define SHUTDOWN(s, h) shutdown(s, h) #define SOCKET(a, t, p) socket(a, t, p) #define SOCKETPAIR(a, t, p, v) socketpair(a, t, p, v) #define GETHOSTBYADDR(a, l, t) gethostbyaddr(a, l, t) #define GETHOSTBYNAME(n) gethostbyname(n) #define GETTIMEOFDAY(t, n) gettimeofday(t, n) #define INSQUE(e, p) insque(e, p) #define REMQUE(e) remque(e) #define HSEARCH(i, a) hsearch(i, a) #define HCREATE(n) hcreate(n) #define HDESTROY() hdestroy() #define HSEARCH_R(i, a, r, h) hsearch_r(i, a, r, h) #define HCREATE_R(n, h) hcreate_r(n, h) #define HDESTROY_R(h) hdestroy_r(h) #define TSEARCH(k, r, c) tsearch(k, r, c) #define TFIND(k, r, c) tfind(k, r, c) #define TDELETE(k, r, c) tdelete(k, r, c) #define TWALK(r, a) twalk(r, a) #define TDESTROY(r, f) tdestroy(r, f) #define LFIND(k, b, n, s, c) lfind(k, b, n, s, c) #define LSEARCH(k, b, n, s, c) lsearch(k, b, n, s, c) #define STRUCT_STAT64 struct stat64 #else #define DIR_SEPARATOR '\\' #define DIR_SEPARATOR_STR "\\" #define PATH_SEPARATOR ';' #define PATH_SEPARATOR_STR ";" #define NEWLINE "\r\n" #ifdef ENABLE_NLS #define BINDTEXTDOMAIN(d, n) _win_bindtextdomain(d, n) #endif #define CREAT(p, m) _win_creat(p, m) #define PLIBC_CTIME(c) _win_ctime(c) #define CTIME_R(c, b) _win_ctime_r(c, b) #define FOPEN(f, m) _win_fopen(f, m) #define FCLOSE(f) _win_fclose(f) #define FTRUNCATE(f, l) _win_ftruncate(f, l) #define TRUNCATE(f, l) _win_truncate(f, l) #define OPENDIR(d) _win_opendir(d) #define CLOSEDIR(d) _win_closedir(d) #define READDIR(d) _win_readdir(d) #define OPEN _win_open #define CHDIR(d) _win_chdir(d) #define CLOSE(f) _win_close(f) #define PLIBC_KILL(p, s) _win_kill(p, s) #define LSEEK(f, o, w) lseek(f, o, w) #define FSTAT(h, b) _win_fstat(h, b) #define RMDIR(f) _win_rmdir(f) #define ACCESS(p, m) _win_access(p, m) #define CHMOD(f, p) _win_chmod(f, p) #define PIPE(h) _win_pipe(h) #define RANDOM() _win_random() #define SRANDOM(s) _win_srandom(s) #define REMOVE(p) _win_remove(p) #define RENAME(o, n) _win_rename(o, n) #define STAT(p, b) _win_stat(p, b) #define STAT64(p, b) _win_stati64(p, b) #define SYSCONF(n) _win_sysconf(n) #define UNLINK(f) _win_unlink(f) #define WRITE(f, b, n) _win_write(f, b, n) #define READ(f, b, n) _win_read(f, b, n) #define GN_FREAD(b, s, c, f) _win_fread(b, s, c, f) #define GN_FWRITE(b, s, c, f) _win_fwrite(b, s, c, f) #define SYMLINK(a, b) _win_symlink(a, b) #define MMAP(s, l, p, f, d, o) _win_mmap(s, l, p, f, d, o) #define MKFIFO(p, m) _win_mkfifo(p, m) #define MSYNC(s, l, f) _win_msync(s, l, f) #define MUNMAP(s, l) _win_munmap(s, l) #define STRERROR(i) _win_strerror(i) #define READLINK(p, b, s) _win_readlink(p, b, s) #define LSTAT(p, b) _win_lstat(p, b) #define LSTAT64(p, b) _win_lstati64(p, b) #define PRINTF printf #define FPRINTF fprintf #define VPRINTF(f, a) vprintf(f, a) #define VFPRINTF(s, f, a) vfprintf(s, f, a) #define VSPRINTF(d, f, a) vsprintf(d, f, a) #define VSNPRINTF(str, size, fmt, a) vsnprintf(str, size, fmt, a) #define _REAL_SNPRINTF snprintf #define SPRINTF sprintf #define VSSCANF(s, f, a) vsscanf(s, f, a) #define SSCANF sscanf #define VFSCANF(s, f, a) vfscanf(s, f, a) #define VSCANF(f, a) vscanf(f, a) #define SCANF scanf #define FSCANF fscanf #define WAITPID(p, s, o) _win_waitpid(p, s, o) #define ACCEPT(s, a, l) _win_accept(s, a, l) #define BIND(s, n, l) _win_bind(s, n, l) #define CONNECT(s, n, l) _win_connect(s, n, l) #define GETPEERNAME(s, n, l) _win_getpeername(s, n, l) #define GETSOCKNAME(s, n, l) _win_getsockname(s, n, l) #define GETSOCKOPT(s, l, o, v, p) _win_getsockopt(s, l, o, v, p) #define LISTEN(s, b) _win_listen(s, b) #define RECV(s, b, l, f) _win_recv(s, b, l, f) #define RECVFROM(s, b, l, f, r, o) _win_recvfrom(s, b, l, f, r, o) #define SELECT(n, r, w, e, t) _win_select(n, r, w, e, t) #define SEND(s, b, l, f) _win_send(s, b, l, f) #define SENDTO(s, b, l, f, o, n) _win_sendto(s, b, l, f, o, n) #define SETSOCKOPT(s, l, o, v, n) _win_setsockopt(s, l, o, v, n) #define SHUTDOWN(s, h) _win_shutdown(s, h) #define SOCKET(a, t, p) _win_socket(a, t, p) #define SOCKETPAIR(a, t, p, v) _win_socketpair(a, t, p, v) #define GETHOSTBYADDR(a, l, t) _win_gethostbyaddr(a, l, t) #define GETHOSTBYNAME(n) _win_gethostbyname(n) #define GETTIMEOFDAY(t, n) gettimeofday(t, n) #define INSQUE(e, p) _win_insque(e, p) #define REMQUE(e) _win_remque(e) #define HSEARCH(i, a) _win_hsearch(i, a) #define HCREATE(n) _win_hcreate(n) #define HDESTROY() _win_hdestroy() #define HSEARCH_R(i, a, r, h) _win_hsearch_r(i, a, r, h) #define HCREATE_R(n, h) _win_hcreate_r(n, h) #define HDESTROY_R(h) _win_hdestroy_r(h) #define TSEARCH(k, r, c) _win_tsearch(k, r, c) #define TFIND(k, r, c) _win_tfind(k, r, c) #define TDELETE(k, r, c) _win_tdelete(k, r, c) #define TWALK(r, a) _win_twalk(r, a) #define TDESTROY(r, f) _win_tdestroy(r, f) #define LFIND(k, b, n, s, c) _win_lfind(k, b, n, s, c) #define LSEARCH(k, b, n, s, c) _win_lsearch(k, b, n, s, c) #define STRUCT_STAT64 struct _stati64 #endif /* search.h */ /* Prototype structure for a linked-list data structure. This is the type used by the `insque' and `remque' functions. */ struct PLIBC_SEARCH_QELEM { struct qelem *q_forw; struct qelem *q_back; char q_data[1]; }; /* Insert ELEM into a doubly-linked list, after PREV. */ void _win_insque (void *__elem, void *__prev); /* Unlink ELEM from the doubly-linked list that it is in. */ void _win_remque (void *__elem); /* For use with hsearch(3). */ typedef int (*PLIBC_SEARCH__compar_fn_t) (__const void *, __const void *); typedef PLIBC_SEARCH__compar_fn_t _win_comparison_fn_t; /* Action which shall be performed in the call the hsearch. */ typedef enum { PLIBC_SEARCH_FIND, PLIBC_SEARCH_ENTER } PLIBC_SEARCH_ACTION; typedef struct PLIBC_SEARCH_entry { char *key; void *data; } PLIBC_SEARCH_ENTRY; /* The reentrant version has no static variables to maintain the state. Instead the interface of all functions is extended to take an argument which describes the current status. */ typedef struct _PLIBC_SEARCH_ENTRY { unsigned int used; PLIBC_SEARCH_ENTRY entry; } _PLIBC_SEARCH_ENTRY; /* Family of hash table handling functions. The functions also have reentrant counterparts ending with _r. The non-reentrant functions all work on a signle internal hashing table. */ /* Search for entry matching ITEM.key in internal hash table. If ACTION is `FIND' return found entry or signal error by returning NULL. If ACTION is `ENTER' replace existing data (if any) with ITEM.data. */ PLIBC_SEARCH_ENTRY *_win_hsearch (PLIBC_SEARCH_ENTRY __item, PLIBC_SEARCH_ACTION __action); /* Create a new hashing table which will at most contain NEL elements. */ int _win_hcreate (size_t __nel); /* Destroy current internal hashing table. */ void _win_hdestroy (void); /* Data type for reentrant functions. */ struct PLIBC_SEARCH_hsearch_data { struct _PLIBC_SEARCH_ENTRY *table; unsigned int size; unsigned int filled; }; /* Reentrant versions which can handle multiple hashing tables at the same time. */ int _win_hsearch_r (PLIBC_SEARCH_ENTRY __item, PLIBC_SEARCH_ACTION __action, PLIBC_SEARCH_ENTRY **__retval, struct PLIBC_SEARCH_hsearch_data *__htab); int _win_hcreate_r (size_t __nel, struct PLIBC_SEARCH_hsearch_data *__htab); void _win_hdestroy_r (struct PLIBC_SEARCH_hsearch_data *__htab); /* The tsearch routines are very interesting. They make many assumptions about the compiler. It assumes that the first field in node must be the "key" field, which points to the datum. Everything depends on that. */ /* For tsearch */ typedef enum { PLIBC_SEARCH_preorder, PLIBC_SEARCH_postorder, PLIBC_SEARCH_endorder, PLIBC_SEARCH_leaf } PLIBC_SEARCH_VISIT; /* Search for an entry matching the given KEY in the tree pointed to by *ROOTP and insert a new element if not found. */ void *_win_tsearch (__const void *__key, void **__rootp, PLIBC_SEARCH__compar_fn_t __compar); /* Search for an entry matching the given KEY in the tree pointed to by *ROOTP. If no matching entry is available return NULL. */ void *_win_tfind (__const void *__key, void *__const *__rootp, PLIBC_SEARCH__compar_fn_t __compar); /* Remove the element matching KEY from the tree pointed to by *ROOTP. */ void *_win_tdelete (__const void *__restrict __key, void **__restrict __rootp, PLIBC_SEARCH__compar_fn_t __compar); typedef void (*PLIBC_SEARCH__action_fn_t) (__const void *__nodep, PLIBC_SEARCH_VISIT __value, int __level); /* Walk through the whole tree and call the ACTION callback for every node or leaf. */ void _win_twalk (__const void *__root, PLIBC_SEARCH__action_fn_t __action); /* Callback type for function to free a tree node. If the keys are atomic data this function should do nothing. */ typedef void (*PLIBC_SEARCH__free_fn_t) (void *__nodep); /* Destroy the whole tree, call FREEFCT for each node or leaf. */ void _win_tdestroy (void *__root, PLIBC_SEARCH__free_fn_t __freefct); /* Perform linear search for KEY by comparing by COMPAR in an array [BASE,BASE+NMEMB*SIZE). */ void *_win_lfind (__const void *__key, __const void *__base, size_t *__nmemb, size_t __size, PLIBC_SEARCH__compar_fn_t __compar); /* Perform linear search for KEY by comparing by COMPAR function in array [BASE,BASE+NMEMB*SIZE) and insert entry if not found. */ void *_win_lsearch (__const void *__key, void *__base, size_t *__nmemb, size_t __size, PLIBC_SEARCH__compar_fn_t __compar); #ifdef __cplusplus } #endif #endif //_PLIBC_H_ /* end of plibc.h */ libextractor-1.3/src/include/gettext.h0000644000175000017500000000601411260753602015052 00000000000000/* Convenience header for conditional use of GNU . Copyright (C) 1995-1998, 2000-2002 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef _LIBGETTEXT_H #define _LIBGETTEXT_H 1 /* NLS can be disabled through the configure --disable-nls option. */ #if ENABLE_NLS /* Get declarations of GNU message catalog functions. */ # include #else /* Solaris /usr/include/locale.h includes /usr/include/libintl.h, which chokes if dcgettext is defined as a macro. So include it now, to make later inclusions of a NOP. We don't include as well because people using "gettext.h" will not include , and also including would fail on SunOS 4, whereas is OK. */ #if defined(__sun) # include #endif /* Disabled NLS. The casts to 'const char *' serve the purpose of producing warnings for invalid uses of the value returned from these functions. On pre-ANSI systems without 'const', the config.h file is supposed to contain "#define const". */ # define gettext(Msgid) ((const char *) (Msgid)) # define dgettext(Domainname, Msgid) ((const char *) (Msgid)) # define dcgettext(Domainname, Msgid, Category) ((const char *) (Msgid)) # define ngettext(Msgid1, Msgid2, N) \ ((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2)) # define dngettext(Domainname, Msgid1, Msgid2, N) \ ((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2)) # define dcngettext(Domainname, Msgid1, Msgid2, N, Category) \ ((N) == 1 ? (const char *) (Msgid1) : (const char *) (Msgid2)) /* slight modification here to avoid warnings: generate NO code, not even the cast... */ # define textdomain(Domainname) # define bindtextdomain(Domainname, Dirname) # define bind_textdomain_codeset(Domainname, Codeset) ((const char *) (Codeset)) #endif /* A pseudo function call that serves as a marker for the automated extraction of messages, but does not call gettext(). The run-time translation is done at a different place in the code. The argument, String, should be a literal string. Concatenated strings and other string expressions won't work. The macro's expansion is not parenthesized, so that it is suitable as initializer for static 'char[]' or 'const char[]' variables. */ #define gettext_noop(String) String #endif /* _LIBGETTEXT_H */ libextractor-1.3/src/main/0000755000175000017500000000000012256015537012601 500000000000000libextractor-1.3/src/main/extract.c0000644000175000017500000005655612224744177014364 00000000000000/* This file is part of libextractor. (C) 2002, 2003, 2004, 2005, 2006, 2009, 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file main/extract.c * @brief command-line tool to run GNU libextractor * @author Christian Grothoff */ #include "platform.h" #include "extractor.h" #include "getopt.h" #include #define YES 1 #define NO 0 /** * Which keyword types should we print? */ static int *print; /** * How verbose are we supposed to be? */ static int verbose; /** * Run plugins in-process. */ static int in_process; /** * Read file contents into memory, then feed them to extractor. */ static int from_memory; #ifndef WINDOWS /** * Install a signal handler to ignore SIGPIPE. */ static void ignore_sigpipe () { struct sigaction oldsig; struct sigaction sig; memset (&sig, 0, sizeof (struct sigaction)); sig.sa_handler = SIG_IGN; sigemptyset (&sig.sa_mask); #ifdef SA_INTERRUPT sig.sa_flags = SA_INTERRUPT; /* SunOS */ #else sig.sa_flags = SA_RESTART; #endif if (0 != sigaction (SIGPIPE, &sig, &oldsig)) FPRINTF (stderr, "Failed to install SIGPIPE handler: %s\n", strerror (errno)); } #endif /** * Information about command-line options. */ struct Help { /** * Single-character option name, '\0' for none. */ char shortArg; /** * Long name of the option. */ const char * longArg; /** * Name of the mandatory argument, NULL for no argument. */ const char * mandatoryArg; /** * Help text for the option. */ const char * description; }; /** * Indentation for descriptions. */ #define BORDER 29 /** * Display help text (--help). * * @param general binary name * @param description program description * @param opt program options (NULL-terminated array) */ static void format_help (const char *general, const char *description, const struct Help *opt) { size_t slen; unsigned int i; ssize_t j; size_t ml; size_t p; char scp[80]; const char *trans; printf (_("Usage: %s\n%s\n\n"), gettext(general), gettext(description)); printf (_("Arguments mandatory for long options are also mandatory for short options.\n")); slen = 0; i = 0; while (NULL != opt[i].description) { if (0 == opt[i].shortArg) printf (" "); else printf (" -%c, ", opt[i].shortArg); printf ("--%s", opt[i].longArg); slen = 8 + strlen(opt[i].longArg); if (NULL != opt[i].mandatoryArg) { printf ("=%s", opt[i].mandatoryArg); slen += 1+strlen(opt[i].mandatoryArg); } if (slen > BORDER) { printf ("\n%*s", BORDER, ""); slen = BORDER; } if (slen < BORDER) { printf ("%*s", (int) (BORDER - slen), ""); slen = BORDER; } trans = gettext(opt[i].description); ml = strlen(trans); p = 0; OUTER: while (ml - p > 78 - slen) { for (j=p+78-slen;j>p;j--) { if (isspace( (unsigned char) trans[j])) { memcpy(scp, &trans[p], j-p); scp[j-p] = '\0'; printf ("%s\n%*s", scp, BORDER + 2, ""); p = j+1; slen = BORDER + 2; goto OUTER; } } /* could not find space to break line */ memcpy (scp, &trans[p], 78 - slen); scp[78 - slen] = '\0'; printf ("%s\n%*s", scp, BORDER+2, ""); slen = BORDER+2; p = p + 78 - slen; } /* print rest */ if (p < ml) printf("%s\n", &trans[p]); i++; } } /** * Run --help. */ static void print_help () { static struct Help help[] = { { 'b', "bibtex", NULL, gettext_noop("print output in bibtex format") }, { 'g', "grep-friendly", NULL, gettext_noop("produce grep-friendly output (all results on one line per file)") }, { 'h', "help", NULL, gettext_noop("print this help") }, { 'i', "in-process", NULL, gettext_noop("run plugins in-process (simplifies debugging)") }, { 'm', "from-memory", NULL, gettext_noop("read data from file into memory and extract from memory") }, { 'l', "library", "LIBRARY", gettext_noop("load an extractor plugin named LIBRARY") }, { 'L', "list", NULL, gettext_noop("list all keyword types") }, { 'n', "nodefault", NULL, gettext_noop("do not use the default set of extractor plugins") }, { 'p', "print", "TYPE", gettext_noop("print only keywords of the given TYPE (use -L to get a list)") }, { 'v', "version", NULL, gettext_noop("print the version number") }, { 'V', "verbose", NULL, gettext_noop("be verbose") }, { 'x', "exclude", "TYPE", gettext_noop("do not print keywords of the given TYPE") }, { 0, NULL, NULL, NULL }, }; format_help (_("extract [OPTIONS] [FILENAME]*"), _("Extract metadata from files."), help); } #if HAVE_ICONV #include "iconv.c" #endif /** * Print a keyword list to a file. * * @param cls closure, not used * @param plugin_name name of the plugin that produced this value; * special values can be used (i.e. '' for zlib being * used in the main libextractor library and yielding * meta data). * @param type libextractor-type describing the meta data * @param format basic format information about data * @param data_mime_type mime-type of data (not of the original file); * can be NULL (if mime-type is not known) * @param data actual meta-data found * @param data_len number of bytes in data * @return 0 to continue extracting, 1 to abort */ static int print_selected_keywords (void *cls, const char *plugin_name, enum EXTRACTOR_MetaType type, enum EXTRACTOR_MetaFormat format, const char *data_mime_type, const char *data, size_t data_len) { char *keyword; #if HAVE_ICONV iconv_t cd; #endif const char *stype; const char *mt; if (YES != print[type]) return 0; if (verbose > 3) FPRINTF (stdout, _("Found by `%s' plugin:\n"), plugin_name); mt = EXTRACTOR_metatype_to_string (type); stype = (NULL == mt) ? _("unknown") : gettext(mt); switch (format) { case EXTRACTOR_METAFORMAT_UNKNOWN: FPRINTF (stdout, _("%s - (unknown, %u bytes)\n"), stype, (unsigned int) data_len); break; case EXTRACTOR_METAFORMAT_UTF8: #if HAVE_ICONV cd = iconv_open (nl_langinfo(CODESET), "UTF-8"); if (((iconv_t) -1) != cd) keyword = iconv_helper (cd, data, data_len); else #endif keyword = strdup (data); if (NULL != keyword) { FPRINTF (stdout, "%s - %s\n", stype, keyword); free (keyword); } #if HAVE_ICONV if (((iconv_t) -1) != cd) iconv_close (cd); #endif break; case EXTRACTOR_METAFORMAT_BINARY: FPRINTF (stdout, _("%s - (binary, %u bytes)\n"), stype, (unsigned int) data_len); break; case EXTRACTOR_METAFORMAT_C_STRING: FPRINTF (stdout, "%s - %.*s\n", stype, (int) data_len, data); break; default: break; } return 0; } /** * Print a keyword list to a file without new lines. * * @param cls closure, not used * @param plugin_name name of the plugin that produced this value; * special values can be used (i.e. '' for zlib being * used in the main libextractor library and yielding * meta data). * @param type libextractor-type describing the meta data * @param format basic format information about data * @param data_mime_type mime-type of data (not of the original file); * can be NULL (if mime-type is not known) * @param data actual meta-data found * @param data_len number of bytes in data * @return 0 to continue extracting, 1 to abort */ static int print_selected_keywords_grep_friendly (void *cls, const char *plugin_name, enum EXTRACTOR_MetaType type, enum EXTRACTOR_MetaFormat format, const char *data_mime_type, const char *data, size_t data_len) { char *keyword; #if HAVE_ICONV iconv_t cd; #endif const char *mt; if (YES != print[type]) return 0; mt = EXTRACTOR_metatype_to_string (type); if (NULL == mt) mt = gettext_noop ("unknown"); switch (format) { case EXTRACTOR_METAFORMAT_UNKNOWN: break; case EXTRACTOR_METAFORMAT_UTF8: if (verbose > 1) FPRINTF (stdout, "%s: ", gettext(mt)); #if HAVE_ICONV cd = iconv_open (nl_langinfo (CODESET), "UTF-8"); if (((iconv_t) -1) != cd) keyword = iconv_helper (cd, data, data_len); else #endif keyword = strdup (data); if (NULL != keyword) { FPRINTF (stdout, "`%s' ", keyword); free (keyword); } #if HAVE_ICONV if (((iconv_t) -1) != cd) iconv_close (cd); #endif break; case EXTRACTOR_METAFORMAT_BINARY: break; case EXTRACTOR_METAFORMAT_C_STRING: if (verbose > 1) FPRINTF (stdout, "%s ", gettext(mt)); FPRINTF (stdout, "`%s'", data); break; default: break; } return 0; } /** * Entry in the map we construct for each file. */ struct BibTexMap { /** * Name in bibTeX */ const char *bibTexName; /** * Meta type for the value. */ enum EXTRACTOR_MetaType le_type; /** * The value itself. */ char *value; }; /** * Type of the entry for bibtex. */ static char *entry_type; /** * Mapping between bibTeX strings, libextractor * meta data types and values for the current document. */ static struct BibTexMap btm[] = { { "title", EXTRACTOR_METATYPE_TITLE, NULL}, { "year", EXTRACTOR_METATYPE_PUBLICATION_YEAR, NULL }, { "author", EXTRACTOR_METATYPE_AUTHOR_NAME, NULL }, { "book", EXTRACTOR_METATYPE_BOOK_TITLE, NULL}, { "edition", EXTRACTOR_METATYPE_BOOK_EDITION, NULL}, { "chapter", EXTRACTOR_METATYPE_BOOK_CHAPTER_NUMBER, NULL}, { "journal", EXTRACTOR_METATYPE_JOURNAL_NAME, NULL}, { "volume", EXTRACTOR_METATYPE_JOURNAL_VOLUME, NULL}, { "number", EXTRACTOR_METATYPE_JOURNAL_NUMBER, NULL}, { "pages", EXTRACTOR_METATYPE_PAGE_COUNT, NULL }, { "pages", EXTRACTOR_METATYPE_PAGE_RANGE, NULL }, { "school", EXTRACTOR_METATYPE_AUTHOR_INSTITUTION, NULL}, { "publisher", EXTRACTOR_METATYPE_PUBLISHER, NULL }, { "address", EXTRACTOR_METATYPE_PUBLISHER_ADDRESS, NULL }, { "institution", EXTRACTOR_METATYPE_PUBLISHER_INSTITUTION, NULL }, { "series", EXTRACTOR_METATYPE_PUBLISHER_SERIES, NULL}, { "month", EXTRACTOR_METATYPE_PUBLICATION_MONTH, NULL }, { "url", EXTRACTOR_METATYPE_URL, NULL}, { "note", EXTRACTOR_METATYPE_COMMENT, NULL}, { "eprint", EXTRACTOR_METATYPE_BIBTEX_EPRINT, NULL }, { "type", EXTRACTOR_METATYPE_PUBLICATION_TYPE, NULL }, { NULL, 0, NULL } }; /** * Clean up the bibtex processor in preparation for the next round. */ static void cleanup_bibtex () { unsigned int i; for (i = 0; NULL != btm[i].bibTexName; i++) { free (btm[i].value); btm[i].value = NULL; } free (entry_type); entry_type = NULL; } /** * Callback function for printing meta data in bibtex format. * * @param cls closure, not used * @param plugin_name name of the plugin that produced this value; * special values can be used (i.e. '' for zlib being * used in the main libextractor library and yielding * meta data). * @param type libextractor-type describing the meta data * @param format basic format information about data * @param data_mime_type mime-type of data (not of the original file); * can be NULL (if mime-type is not known) * @param data actual meta-data found * @param data_len number of bytes in data * @return 0 to continue extracting (always) */ static int print_bibtex (void *cls, const char *plugin_name, enum EXTRACTOR_MetaType type, enum EXTRACTOR_MetaFormat format, const char *data_mime_type, const char *data, size_t data_len) { unsigned int i; if (YES != print[type]) return 0; if (EXTRACTOR_METAFORMAT_UTF8 != format) return 0; if (EXTRACTOR_METATYPE_BIBTEX_ENTRY_TYPE == type) { entry_type = strdup (data); return 0; } for (i = 0; NULL != btm[i].bibTexName; i++) if ( (NULL == btm[i].value) && (btm[i].le_type == type) ) btm[i].value = strdup (data); return 0; } /** * Print the computed bibTeX entry. * * @param fn file for which the entry was created. */ static void finish_bibtex (const char *fn) { unsigned int i; ssize_t n; const char *et; char temp[20]; if (NULL != entry_type) et = entry_type; else et = "misc"; if ( (NULL == btm[0].value) || (NULL == btm[1].value) || (NULL == btm[2].value) ) FPRINTF (stdout, "@%s %s { ", et, fn); else { snprintf (temp, sizeof (temp), "%.5s%.5s%.5s", btm[2].value, btm[1].value, btm[0].value); for (n=strlen (temp)-1;n>=0;n-- ) if (! isalnum ( (unsigned char) temp[n]) ) temp[n] = '_'; else temp[n] = tolower ( (unsigned char) temp[n]); FPRINTF (stdout, "@%s %s { ", et, temp); } for (i=0; NULL != btm[i].bibTexName; i++) if (NULL != btm[i].value) FPRINTF (stdout, "\t%s = {%s},\n", btm[i].bibTexName, btm[i].value); FPRINTF (stdout, "%s", "}\n\n"); } #ifdef WINDOWS static int _wchar_to_str (const wchar_t *wstr, char **retstr, UINT cp) { char *str; int len, lenc; BOOL lossy = FALSE; DWORD error; SetLastError (0); len = WideCharToMultiByte (cp, 0, wstr, -1, NULL, 0, NULL, (cp == CP_UTF8 || cp == CP_UTF7) ? NULL : &lossy); error = GetLastError (); if (len <= 0) return -1; str = malloc (sizeof (char) * len); SetLastError (0); lenc = WideCharToMultiByte (cp, 0, wstr, -1, str, len, NULL, (cp == CP_UTF8 || cp == CP_UTF7) ? NULL : &lossy); error = GetLastError (); if (lenc != len) { free (str); return -3; } *retstr = str; if (lossy) return 1; return 0; } #endif /** * Makes a copy of argv that consists of a single memory chunk that can be * freed with a single call to free (); */ static char ** _make_continuous_arg_copy (int argc, char *const *argv) { size_t argvsize = 0; int i; char **new_argv; char *p; for (i = 0; i < argc; i++) argvsize += strlen (argv[i]) + 1 + sizeof (char *); new_argv = malloc (argvsize + sizeof (char *)); if (NULL == new_argv) return NULL; p = (char *) &new_argv[argc + 1]; for (i = 0; i < argc; i++) { new_argv[i] = p; strcpy (p, argv[i]); p += strlen (argv[i]) + 1; } new_argv[argc] = NULL; return (char **) new_argv; } /** * Returns utf-8 encoded arguments. * Returned argv has u8argv[u8argc] == NULL. * Returned argv is a single memory block, and can be freed with a single * free () call. * * @param argc argc (as given by main()) * @param argv argv (as given by main()) * @param u8argc a location to store new argc in (though it's th same as argc) * @param u8argv a location to store new argv in * @return 0 on success, -1 on failure */ static int _get_utf8_args (int argc, char *const *argv, int *u8argc, char ***u8argv) { #ifdef WINDOWS wchar_t *wcmd; wchar_t **wargv; int wargc; int i; char **split_u8argv; wcmd = GetCommandLineW (); if (NULL == wcmd) return -1; wargv = CommandLineToArgvW (wcmd, &wargc); if (NULL == wargv) return -1; split_u8argv = malloc (wargc * sizeof (char *)); for (i = 0; i < wargc; i++) { if (_wchar_to_str (wargv[i], &split_u8argv[i], CP_UTF8) != 0) { int j; int e = errno; for (j = 0; j < i; j++) free (split_u8argv[j]); free (split_u8argv); LocalFree (wargv); errno = e; return -1; } } *u8argv = _make_continuous_arg_copy (wargc, split_u8argv); if (NULL == *u8argv) { free (split_u8argv); return -1; } *u8argc = wargc; for (i = 0; i < wargc; i++) free (split_u8argv[i]); free (split_u8argv); #else *u8argv = _make_continuous_arg_copy (argc, argv); if (NULL == *u8argv) return -1; *u8argc = argc; #endif return 0; } /** * Main function for the 'extract' tool. Invoke with a list of * filenames to extract keywords from. * * @param argc number of arguments in argv * @param argv command line options and filename to run on * @return 0 on success */ int main (int argc, char *argv[]) { unsigned int i; struct EXTRACTOR_PluginList *plugins; int option_index; int c; char *libraries = NULL; int nodefault = NO; int defaultAll = YES; int bibtex = NO; int grepfriendly = NO; int ret = 0; EXTRACTOR_MetaDataProcessor processor = NULL; char **utf8_argv; int utf8_argc; #if ENABLE_NLS setlocale(LC_ALL, ""); textdomain(PACKAGE); #endif #ifndef WINDOWS ignore_sigpipe (); #endif if (NULL == (print = malloc (sizeof (int) * EXTRACTOR_metatype_get_max ()))) { FPRINTF (stderr, "malloc failed: %s\n", strerror (errno)); return 1; } for (i = 0; i < EXTRACTOR_metatype_get_max (); i++) print[i] = YES; /* default: print everything */ if (0 != _get_utf8_args (argc, argv, &utf8_argc, &utf8_argv)) { FPRINTF (stderr, "Failed to get arguments: %s\n", strerror (errno)); return 1; } while (1) { static struct option long_options[] = { {"bibtex", 0, 0, 'b'}, {"grep-friendly", 0, 0, 'g'}, {"help", 0, 0, 'h'}, {"in-process", 0, 0, 'i'}, {"from-memory", 0, 0, 'm'}, {"list", 0, 0, 'L'}, {"library", 1, 0, 'l'}, {"nodefault", 0, 0, 'n'}, {"print", 1, 0, 'p'}, {"verbose", 0, 0, 'V'}, {"version", 0, 0, 'v'}, {"exclude", 1, 0, 'x'}, {0, 0, 0, 0} }; option_index = 0; c = getopt_long (utf8_argc, utf8_argv, "abghiml:Lnp:vVx:", long_options, &option_index); if (c == -1) break; /* No more flags to process */ switch (c) { case 'b': bibtex = YES; if (NULL != processor) { FPRINTF (stderr, "%s", _("Illegal combination of options, cannot combine multiple styles of printing.\n")); free (utf8_argv); return 0; } processor = &print_bibtex; break; case 'g': grepfriendly = YES; if (NULL != processor) { FPRINTF (stderr, "%s", _("Illegal combination of options, cannot combine multiple styles of printing.\n")); free (utf8_argv); return 0; } processor = &print_selected_keywords_grep_friendly; break; case 'h': print_help (); free (utf8_argv); return 0; case 'i': in_process = YES; break; case 'm': from_memory = YES; break; case 'l': libraries = optarg; break; case 'L': i = 0; while (NULL != EXTRACTOR_metatype_to_string (i)) printf ("%s\n", gettext(EXTRACTOR_metatype_to_string (i++))); free (utf8_argv); return 0; case 'n': nodefault = YES; break; case 'p': if (NULL == optarg) { FPRINTF(stderr, _("You must specify an argument for the `%s' option (option ignored).\n"), "-p"); break; } if (YES == defaultAll) { defaultAll = NO; i = 0; while (NULL != EXTRACTOR_metatype_to_string (i)) print[i++] = NO; } i = 0; while (NULL != EXTRACTOR_metatype_to_string (i)) { if ( (0 == strcmp (optarg, EXTRACTOR_metatype_to_string (i))) || (0 == strcmp (optarg, gettext(EXTRACTOR_metatype_to_string (i)))) ) { print[i] = YES; break; } i++; } if (NULL == EXTRACTOR_metatype_to_string (i)) { FPRINTF(stderr, "Unknown keyword type `%s', use option `%s' to get a list.\n", optarg, "-L"); free (utf8_argv); return -1; } break; case 'v': printf ("extract v%s\n", PACKAGE_VERSION); free (utf8_argv); return 0; case 'V': verbose++; break; case 'x': i = 0; while (NULL != EXTRACTOR_metatype_to_string (i)) { if ( (0 == strcmp (optarg, EXTRACTOR_metatype_to_string (i))) || (0 == strcmp (optarg, gettext(EXTRACTOR_metatype_to_string (i)))) ) { print[i] = NO; break; } i++; } if (NULL == EXTRACTOR_metatype_to_string (i)) { FPRINTF (stderr, "Unknown keyword type `%s', use option `%s' to get a list.\n", optarg, "-L"); free (utf8_argv); return -1; } break; default: FPRINTF (stderr, "%s", _("Use --help to get a list of options.\n")); free (utf8_argv); return -1; } /* end of parsing commandline */ } /* while (1) */ if (optind < 0) { FPRINTF (stderr, "%s", "Unknown error parsing options\n"); free (print); free (utf8_argv); return -1; } if (utf8_argc - optind < 1) { FPRINTF (stderr, "%s", "Invoke with list of filenames to extract keywords form!\n"); free (print); free (utf8_argv); return -1; } /* build list of libraries */ if (NO == nodefault) plugins = EXTRACTOR_plugin_add_defaults (in_process ? EXTRACTOR_OPTION_IN_PROCESS : EXTRACTOR_OPTION_DEFAULT_POLICY); else plugins = NULL; if (NULL != libraries) plugins = EXTRACTOR_plugin_add_config (plugins, libraries, in_process ? EXTRACTOR_OPTION_IN_PROCESS : EXTRACTOR_OPTION_DEFAULT_POLICY); if (NULL == processor) processor = &print_selected_keywords; /* extract keywords */ if (YES == bibtex) FPRINTF(stdout, "%s", _("% BiBTeX file\n")); for (i = optind; i < utf8_argc; i++) { errno = 0; if (YES == grepfriendly) FPRINTF (stdout, "%s ", utf8_argv[i]); else if (NO == bibtex) FPRINTF (stdout, _("Keywords for file %s:\n"), utf8_argv[i]); else cleanup_bibtex (); if (NO == from_memory) EXTRACTOR_extract (plugins, utf8_argv[i], NULL, 0, processor, NULL); else { struct stat sb; unsigned char *data = NULL; int f = OPEN (utf8_argv[i], O_RDONLY #if WINDOWS | O_BINARY #endif ); if ( (-1 != f) && (0 == FSTAT (f, &sb)) && (NULL != (data = malloc ((size_t) sb.st_size))) && (sb.st_size == READ (f, data, (size_t) sb.st_size) ) ) { EXTRACTOR_extract (plugins, NULL, data, sb.st_size, processor, NULL); } else { if (verbose > 0) FPRINTF(stderr, "%s: %s: %s\n", utf8_argv[0], utf8_argv[i], strerror(errno)); ret = 1; } if (NULL != data) free (data); if (-1 != f) (void) CLOSE (f); } if (YES == grepfriendly) FPRINTF (stdout, "%s", "\n"); continue; } if (YES == grepfriendly) FPRINTF (stdout, "%s", "\n"); if (bibtex) finish_bibtex (utf8_argv[i]); if (verbose > 0) FPRINTF (stdout, "%s", "\n"); free (print); free (utf8_argv); EXTRACTOR_plugin_remove_all (plugins); plugins = NULL; cleanup_bibtex (); /* actually free's stuff */ return ret; } /* end of extract.c */ libextractor-1.3/src/main/extractor_datasource.c0000644000175000017500000010103112224744177017112 00000000000000/* This file is part of libextractor. (C) 2002, 2003, 2004, 2005, 2006, 2009, 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file main/extractor_datasource.c * @brief random access and possibly decompression of data from buffer in memory or file on disk * @author Christian Grothoff */ #include "platform.h" #include "extractor_logging.h" #include "extractor_datasource.h" #if HAVE_LIBBZ2 #include #define MIN_BZ2_HEADER 4 #ifndef MIN_COMPRESSED_HEADER #define MIN_COMPRESSED_HEADER MIN_ZLIB_HEADER #endif #endif #if HAVE_ZLIB #include #define MIN_ZLIB_HEADER 12 #ifndef MIN_COMPRESSED_HEADER #define MIN_COMPRESSED_HEADER MIN_BZ2_HEADER #endif #endif #ifndef MIN_COMPRESSED_HEADER #define MIN_COMPRESSED_HEADER -1 #endif #ifndef O_LARGEFILE #define O_LARGEFILE 0 #endif /** * Maximum size of an IO buffer. */ #define MAX_READ (4 * 1024 * 1024) /** * Data is read from the source and shoved into decompressor * in chunks this big. */ #define COM_CHUNK_SIZE (16 * 1024) /** * Enum with the various possible types of compression supported. */ enum ExtractorCompressionType { /** * We cannot tell from the data (header incomplete). */ COMP_TYPE_UNDEFINED = -1, /** * Invalid header (likely uncompressed) */ COMP_TYPE_INVALID = 0, /** * libz / gzip compression. */ COMP_TYPE_ZLIB = 1, /** * bz2 compression */ COMP_TYPE_BZ2 = 2 }; /** * Abstraction of the data source (file or a memory buffer) * for the decompressor. */ struct BufferedFileDataSource { /** * Pointer to the buffer to read from (may be NULL) */ const void *data; /** * A buffer to read into. For fd != -1: when data != NULL, * data is used directly. */ void *buffer; /** * Size of the file (or the data buffer) */ uint64_t fsize; /** * Position of the buffer in the file. */ uint64_t fpos; /** * Position within the buffer. Our absolute offset in the file * is thus 'fpos + buffer_pos'. */ size_t buffer_pos; /** * Number of valid bytes in the buffer (<= buffer_size) */ size_t buffer_bytes; /** * Allocated size of the buffer */ size_t buffer_size; /** * Descriptor of the file to read data from (may be -1) */ int fd; }; /** * An object from which uncompressed data can be read */ struct CompressedFileSource { /** * The source of data */ struct BufferedFileDataSource *bfds; /** * Decompression target buffer. */ char result[COM_CHUNK_SIZE]; /** * At which offset in 'result' is 'fpos'? */ size_t result_pos; /** * Size of the source (same as bfds->fsize) */ int64_t fsize; /** * Position within the (decompressed) source */ int64_t fpos; /** * Total size of the uncompressed data. Remains -1 until * decompression is finished. */ int64_t uncompressed_size; #if HAVE_LIBBZ2 /** * BZ2 stream object */ bz_stream bstrm; #endif #if HAVE_ZLIB /** * ZLIB stream object */ z_stream strm; /** * Length of gzip header (may be 0, in that case ZLIB parses the header) */ int gzip_header_length; #endif /** * The type of compression used in the source */ enum ExtractorCompressionType compression_type; }; /** * Makes bfds seek to 'pos' and read a chunk of bytes there. * Changes bfds->fpos, bfds->buffer_bytes and bfds->buffer_pos. * Does almost nothing for memory-backed bfds. * * @param bfds bfds * @param pos position * @return 0 on success, -1 on error */ static int bfds_pick_next_buffer_at (struct BufferedFileDataSource *bfds, uint64_t pos) { int64_t position; ssize_t rd; if (pos > bfds->fsize) { LOG ("Invalid seek operation\n"); return -1; /* invalid */ } if (NULL == bfds->buffer) { bfds->buffer_pos = pos; return 0; } position = (int64_t) LSEEK (bfds->fd, pos, SEEK_SET); if (position < 0) { LOG_STRERROR ("lseek"); return -1; } bfds->fpos = position; bfds->buffer_pos = 0; rd = read (bfds->fd, bfds->buffer, bfds->buffer_size); if (rd < 0) { LOG_STRERROR ("read"); return -1; } bfds->buffer_bytes = rd; return 0; } /** * Creates a bfds * * @param data data buffer to use as a source (NULL if fd != -1) * @param fd file descriptor to use as a source (-1 if data != NULL) * @param fsize size of the file (or the buffer) * @return newly allocated bfds */ static struct BufferedFileDataSource * bfds_new (const void *data, int fd, int64_t fsize) { struct BufferedFileDataSource *result; size_t xtra; if (fsize > MAX_READ) xtra = MAX_READ; else xtra = (size_t) fsize; if ( (-1 == fd) && (NULL == data) ) { LOG ("Invalid arguments\n"); return NULL; } if ( (-1 != fd) && (NULL != data) ) fd = -1; /* don't need fd */ if (NULL != data) xtra = 0; if (NULL == (result = malloc (sizeof (struct BufferedFileDataSource) + xtra))) { LOG_STRERROR ("malloc"); return NULL; } memset (result, 0, sizeof (struct BufferedFileDataSource)); result->data = (NULL != data) ? data : &result[1]; result->buffer = (NULL != data) ? NULL : &result[1]; result->buffer_size = (NULL != data) ? fsize : xtra; result->buffer_bytes = (NULL != data) ? fsize : 0; result->fsize = fsize; result->fd = fd; bfds_pick_next_buffer_at (result, 0); return result; } /** * Unallocates bfds * * @param bfds bfds to deallocate */ static void bfds_delete (struct BufferedFileDataSource *bfds) { free (bfds); } /** * Makes bfds seek to 'pos' in 'whence' mode. * Will try to seek within the buffer, will move the buffer location if * the seek request falls outside of the buffer range. * * @param bfds bfds * @param pos position to seek to * @param whence one of the seek constants (SEEK_CUR, SEEK_SET, SEEK_END) * @return new absolute position, -1 on error */ static int64_t bfds_seek (struct BufferedFileDataSource *bfds, int64_t pos, int whence) { uint64_t npos; size_t nbpos; switch (whence) { case SEEK_CUR: npos = bfds->fpos + bfds->buffer_pos + pos; if (npos > bfds->fsize) { LOG ("Invalid seek operation to %lld from %llu (max is %llu)\n", (long long) pos, bfds->fpos + bfds->buffer_pos, (unsigned long long) bfds->fsize); return -1; } nbpos = bfds->buffer_pos + pos; if ( (NULL == bfds->buffer) || (nbpos < bfds->buffer_bytes) ) { bfds->buffer_pos = nbpos; return npos; } if (0 != bfds_pick_next_buffer_at (bfds, npos)) { LOG ("seek operation failed\n"); return -1; } return npos; case SEEK_END: if (pos > 0) { LOG ("Invalid seek operation\n"); return -1; } if (bfds->fsize < - pos) { LOG ("Invalid seek operation\n"); return -1; } pos = bfds->fsize + pos; /* fall-through! */ case SEEK_SET: if (pos < 0) { LOG ("Invalid seek operation\n"); return -1; } if (pos > bfds->fsize) { LOG ("Invalid seek operation (%lld > %llu) %d\n", (long long) pos, (unsigned long long) bfds->fsize, SEEK_SET == whence); return -1; } if ( (NULL == bfds->buffer) || ( (bfds->fpos <= pos) && (bfds->fpos + bfds->buffer_bytes > pos) ) ) { bfds->buffer_pos = pos - bfds->fpos; return pos; } if (0 != bfds_pick_next_buffer_at (bfds, pos)) { LOG ("seek operation failed\n"); return -1; } ASSERT (pos == bfds->fpos + bfds->buffer_pos); return pos; } return -1; } /** * Fills 'buf_ptr' with a chunk of data. Will * fail if 'count' exceeds buffer size. * * @param bfds bfds * @param buf_ptr location to store data * @param count number of bytes to read * @return number of bytes (<= count) available at location pointed by buf_ptr, * 0 for end of stream, -1 on error */ static ssize_t bfds_read (struct BufferedFileDataSource *bfds, void *buf_ptr, size_t count) { char *cbuf = buf_ptr; uint64_t old_off; size_t avail; size_t ret; old_off = bfds->fpos + bfds->buffer_pos; if (old_off == bfds->fsize) return 0; /* end of stream */ ret = 0; while (count > 0) { if ( (bfds->buffer_bytes == bfds->buffer_pos) && (0 != bfds_pick_next_buffer_at (bfds, bfds->fpos + bfds->buffer_bytes)) ) { /* revert to original position, invalidate buffer */ bfds->fpos = old_off; bfds->buffer_bytes = 0; bfds->buffer_pos = 0; LOG ("read operation failed\n"); return -1; /* getting more failed */ } avail = bfds->buffer_bytes - bfds->buffer_pos; if (avail > count) avail = count; if (0 == avail) break; memcpy (&cbuf[ret], bfds->data + bfds->buffer_pos, avail); bfds->buffer_pos += avail; count -= avail; ret += avail; } return ret; } #if HAVE_ZLIB /** * Initializes gz-decompression object. Might report metadata about * compresse stream, if available. Resets the stream to the beginning. * * @param cfs cfs to initialize * @param proc callback for metadata * @param proc_cls callback cls * @return 1 on success, 0 to terminate extraction, -1 on error */ static int cfs_init_decompressor_zlib (struct CompressedFileSource *cfs, EXTRACTOR_MetaDataProcessor proc, void *proc_cls) { unsigned int gzip_header_length = 10; unsigned char hdata[12]; if (0 != bfds_seek (cfs->bfds, 0, SEEK_SET)) { LOG ("Failed to seek to offset 0!\n"); return -1; } /* Process gzip header */ if (sizeof (hdata) > bfds_read (cfs->bfds, hdata, sizeof (hdata))) return -1; if (0 != (hdata[3] & 0x4)) /* FEXTRA set */ gzip_header_length += 2 + (hdata[10] & 0xff) + ((hdata[11] & 0xff) * 256); if (0 != (hdata[3] & 0x8)) { /* FNAME set */ char fname[1024]; char *cptr; size_t len; ssize_t buf_bytes; if (gzip_header_length > bfds_seek (cfs->bfds, gzip_header_length, SEEK_SET)) { LOG ("Corrupt gzip, failed to seek to end of header\n"); return -1; } buf_bytes = bfds_read (cfs->bfds, fname, sizeof (fname)); if (buf_bytes <= 0) { LOG ("Corrupt gzip, failed to read filename\n"); return -1; } if (NULL == (cptr = memchr (fname, 0, buf_bytes))) { LOG ("Corrupt gzip, failed to read filename terminator\n"); return -1; } len = cptr - fname; if ( (NULL != proc) && (0 != proc (proc_cls, "", EXTRACTOR_METATYPE_FILENAME, EXTRACTOR_METAFORMAT_C_STRING, "text/plain", fname, len)) ) return 0; /* done */ gzip_header_length += len + 1; } if (0 != (hdata[3] & 0x16)) { /* FCOMMENT set */ char fcomment[1024]; char *cptr; ssize_t buf_bytes; size_t len; if (gzip_header_length > bfds_seek (cfs->bfds, gzip_header_length, SEEK_SET)) { LOG ("Corrupt gzip, failed to seek to end of header\n"); return -1; } buf_bytes = bfds_read (cfs->bfds, fcomment, sizeof (fcomment)); if (buf_bytes <= 0) { LOG ("Corrupt gzip, failed to read comment\n"); return -1; } if (NULL == (cptr = memchr (fcomment, 0, buf_bytes))) { LOG ("Corrupt gzip, failed to read comment terminator\n"); return -1; } len = cptr - fcomment; if ( (NULL != proc) && (0 != proc (proc_cls, "", EXTRACTOR_METATYPE_COMMENT, EXTRACTOR_METAFORMAT_C_STRING, "text/plain", (const char *) fcomment, len)) ) return 0; /* done */ gzip_header_length += len + 1; } if (0 != (hdata[3] & 0x2)) /* FCHRC set */ gzip_header_length += 2; memset (&cfs->strm, 0, sizeof (z_stream)); #ifdef ZLIB_VERNUM /* zlib will take care of its header */ gzip_header_length = 0; #endif cfs->gzip_header_length = gzip_header_length; if (cfs->gzip_header_length != bfds_seek (cfs->bfds, cfs->gzip_header_length, SEEK_SET)) { LOG ("Failed to seek to start to initialize gzip decompressor\n"); return -1; } cfs->strm.avail_out = COM_CHUNK_SIZE; /* * note: maybe plain inflateInit(&strm) is adequate, * it looks more backward-compatible also ; * * ZLIB_VERNUM isn't defined by zlib version 1.1.4 ; * there might be a better check. */ if (Z_OK != inflateInit2 (&cfs->strm, #ifdef ZLIB_VERNUM 15 + 32 #else - MAX_WBITS #endif )) { LOG ("Failed to initialize zlib decompression\n"); return -1; } return 1; } #endif #if HAVE_LIBBZ2 /** * Initializes bz2-decompression object. Might report metadata about * compresse stream, if available. Resets the stream to the beginning. * * @param cfs cfs to initialize * @param proc callback for metadata * @param proc_cls callback cls * @return 1 on success, -1 on error */ static int cfs_init_decompressor_bz2 (struct CompressedFileSource *cfs, EXTRACTOR_MetaDataProcessor proc, void *proc_cls) { if (0 != bfds_seek (cfs->bfds, 0, SEEK_SET)) { LOG ("Failed to seek to start to initialize BZ2 decompressor\n"); return -1; } memset (&cfs->bstrm, 0, sizeof (bz_stream)); if (BZ_OK != BZ2_bzDecompressInit (&cfs->bstrm, 0, 0)) { LOG ("Failed to initialize BZ2 decompressor\n"); return -1; } cfs->bstrm.avail_out = COM_CHUNK_SIZE; return 1; } #endif /** * Initializes decompression object. Might report metadata about * compresse stream, if available. Resets the stream to the beginning. * * @param cfs cfs to initialize * @param proc callback for metadata * @param proc_cls callback cls * @return 1 on success, 0 to terminate extraction, -1 on error */ static int cfs_init_decompressor (struct CompressedFileSource *cfs, EXTRACTOR_MetaDataProcessor proc, void *proc_cls) { cfs->result_pos = 0; cfs->fpos = 0; switch (cfs->compression_type) { #if HAVE_ZLIB case COMP_TYPE_ZLIB: return cfs_init_decompressor_zlib (cfs, proc, proc_cls); #endif #if HAVE_LIBBZ2 case COMP_TYPE_BZ2: return cfs_init_decompressor_bz2 (cfs, proc, proc_cls); #endif default: LOG ("invalid compression type selected\n"); return -1; } } #if HAVE_ZLIB /** * Deinitializes gz-decompression object. * * @param cfs cfs to deinitialize * @return 1 on success, -1 on error */ static int cfs_deinit_decompressor_zlib (struct CompressedFileSource *cfs) { inflateEnd (&cfs->strm); return 1; } #endif #if HAVE_LIBBZ2 /** * Deinitializes bz2-decompression object. * * @param cfs cfs to deinitialize * @return 1 on success, -1 on error */ static int cfs_deinit_decompressor_bz2 (struct CompressedFileSource *cfs) { BZ2_bzDecompressEnd (&cfs->bstrm); return 1; } #endif /** * Deinitializes decompression object. * * @param cfs cfs to deinitialize * @return 1 on success, -1 on error */ static int cfs_deinit_decompressor (struct CompressedFileSource *cfs) { switch (cfs->compression_type) { #if HAVE_ZLIB case COMP_TYPE_ZLIB: return cfs_deinit_decompressor_zlib (cfs); #endif #if HAVE_LIBBZ2 case COMP_TYPE_BZ2: return cfs_deinit_decompressor_bz2 (cfs); #endif default: LOG ("invalid compression type selected\n"); return -1; } } /** * Resets the compression stream to begin uncompressing * from the beginning. Used at initialization time, and when * seeking backward. * * @param cfs cfs to reset * @return 1 on success, 0 to terminate extraction, * -1 on error */ static int cfs_reset_stream (struct CompressedFileSource *cfs) { if (-1 == cfs_deinit_decompressor (cfs)) return -1; return cfs_init_decompressor (cfs, NULL, NULL); } /** * Destroy compressed file source. * * @param cfs source to destroy */ static void cfs_destroy (struct CompressedFileSource *cfs) { cfs_deinit_decompressor (cfs); free (cfs); } /** * Allocates and initializes new cfs object. * * @param bfds data source to use * @param fsize size of the source * @param compression_type type of compression used * @param proc metadata callback to call with meta data found upon opening * @param proc_cls callback cls * @return newly allocated cfs on success, NULL on error */ struct CompressedFileSource * cfs_new (struct BufferedFileDataSource *bfds, int64_t fsize, enum ExtractorCompressionType compression_type, EXTRACTOR_MetaDataProcessor proc, void *proc_cls) { struct CompressedFileSource *cfs; if (NULL == (cfs = malloc (sizeof (struct CompressedFileSource)))) { LOG_STRERROR ("malloc"); return NULL; } memset (cfs, 0, sizeof (struct CompressedFileSource)); cfs->compression_type = compression_type; cfs->bfds = bfds; cfs->fsize = fsize; cfs->uncompressed_size = -1; if (1 != cfs_init_decompressor (cfs, proc, proc_cls)) { free (cfs); return NULL; } return cfs; } #if HAVE_ZLIB /** * Fills 'data' with new uncompressed data. Does the actual * decompression. Will set uncompressed_size on the end of compressed * stream. * * @param cfds cfs to read from * @param data where to copy the data * @param size number of bytes available in data * @return number of bytes in data. 0 if no more data can be uncompressed, -1 on error */ static ssize_t cfs_read_zlib (struct CompressedFileSource *cfs, void *data, size_t size) { char *dst = data; int ret; size_t rc; ssize_t in; unsigned char buf[COM_CHUNK_SIZE]; if (cfs->fpos == cfs->uncompressed_size) { /* end of file */ return 0; } rc = 0; if (COM_CHUNK_SIZE > cfs->strm.avail_out + cfs->result_pos) { /* got left-over decompressed data from previous round! */ in = COM_CHUNK_SIZE - (cfs->strm.avail_out + cfs->result_pos); if (in > size) in = size; memcpy (&dst[rc], &cfs->result[cfs->result_pos], in); cfs->fpos += in; cfs->result_pos += in; rc += in; } ret = Z_OK; while ( (rc < size) && (Z_STREAM_END != ret) ) { /* read block from original data source */ in = bfds_read (cfs->bfds, buf, sizeof (buf)); if (in < 0) { LOG ("unexpected EOF\n"); return -1; /* unexpected EOF */ } if (0 == in) { cfs->uncompressed_size = cfs->fpos; return rc; } cfs->strm.next_in = buf; cfs->strm.avail_in = (uInt) in; cfs->strm.next_out = (unsigned char *) cfs->result; cfs->strm.avail_out = COM_CHUNK_SIZE; cfs->result_pos = 0; ret = inflate (&cfs->strm, Z_SYNC_FLUSH); if ( (Z_OK != ret) && (Z_STREAM_END != ret) ) { LOG ("unexpected gzip inflate error: %d\n", ret); return -1; /* unexpected error */ } /* go backwards by the number of bytes left in the buffer */ if (-1 == bfds_seek (cfs->bfds, - (int64_t) cfs->strm.avail_in, SEEK_CUR)) { LOG ("seek failed\n"); return -1; } /* copy decompressed bytes to target buffer */ in = COM_CHUNK_SIZE - cfs->strm.avail_out; if (in > size - rc) { if (Z_STREAM_END == ret) { cfs->uncompressed_size = cfs->fpos + in; ret = Z_OK; } in = size - rc; } memcpy (&dst[rc], &cfs->result[cfs->result_pos], in); cfs->fpos += in; cfs->result_pos += in; rc += in; } if (Z_STREAM_END == ret) { cfs->uncompressed_size = cfs->fpos; } return rc; } #endif #if HAVE_LIBBZ2 /** * Fills 'data' with new uncompressed data. Does the actual * decompression. Will set uncompressed_size on the end of compressed * stream. * * @param cfds cfs to read from * @param data where to copy the data * @param size number of bytes available in data * @return number of bytes in data. 0 if no more data can be uncompressed, -1 on error */ static ssize_t cfs_read_bz2 (struct CompressedFileSource *cfs, void *data, size_t size) { char *dst = data; int ret; size_t rc; ssize_t in; char buf[COM_CHUNK_SIZE]; if (cfs->fpos == cfs->uncompressed_size) { /* end of file */ return 0; } rc = 0; if (COM_CHUNK_SIZE > cfs->bstrm.avail_out + cfs->result_pos) { /* got left-over decompressed data from previous round! */ in = COM_CHUNK_SIZE - (cfs->bstrm.avail_out + cfs->result_pos); if (in > size) in = size; memcpy (&dst[rc], &cfs->result[cfs->result_pos], in); cfs->fpos += in; cfs->result_pos += in; rc += in; } ret = BZ_OK; while ( (rc < size) && (BZ_STREAM_END != ret) ) { /* read block from original data source */ in = bfds_read (cfs->bfds, buf, sizeof (buf)); if (in < 0) { LOG ("unexpected EOF\n"); return -1; /* unexpected EOF */ } if (0 == in) { cfs->uncompressed_size = cfs->fpos; return rc; } cfs->bstrm.next_in = buf; cfs->bstrm.avail_in = (unsigned int) in; cfs->bstrm.next_out = cfs->result; cfs->bstrm.avail_out = COM_CHUNK_SIZE; cfs->result_pos = 0; ret = BZ2_bzDecompress (&cfs->bstrm); if ( (BZ_OK != ret) && (BZ_STREAM_END != ret) ) { LOG ("unexpected bzip2 decompress error: %d\n", ret); return -1; /* unexpected error */ } /* go backwards by the number of bytes left in the buffer */ if (-1 == bfds_seek (cfs->bfds, - (int64_t) cfs->bstrm.avail_in, SEEK_CUR)) { LOG ("seek failed\n"); return -1; } /* copy decompressed bytes to target buffer */ in = COM_CHUNK_SIZE - cfs->bstrm.avail_out; if (in > size - rc) { if (BZ_STREAM_END == ret) { cfs->uncompressed_size = cfs->fpos + in; ret = BZ_OK; } in = size - rc; } memcpy (&dst[rc], &cfs->result[cfs->result_pos], in); cfs->fpos += in; cfs->result_pos += in; rc += in; } if (BZ_STREAM_END == ret) { cfs->uncompressed_size = cfs->fpos; } return rc; } #endif /** * Fills 'data' with new uncompressed data. Does the actual * decompression. Will set uncompressed_size on the end of compressed * stream. * * @param cfds cfs to read from * @param data where to copy the data * @param size number of bytes available in data * @return number of bytes in data. 0 if no more data can be uncompressed, -1 on error */ static ssize_t cfs_read (struct CompressedFileSource *cfs, void *data, size_t size) { switch (cfs->compression_type) { #if HAVE_ZLIB case COMP_TYPE_ZLIB: return cfs_read_zlib (cfs, data, size); #endif #if HAVE_LIBBZ2 case COMP_TYPE_BZ2: return cfs_read_bz2 (cfs, data, size); #endif default: LOG ("invalid compression type selected\n"); return -1; } } /** * Moves the buffer to 'position' in uncompressed steam. If position * requires seeking backwards beyond the boundaries of the buffer, resets the * stream and repeats decompression from the beginning to 'position'. * * @param cfs cfs to seek on * @param position new starting point for the buffer * @param whence one of the seek constants (SEEK_CUR, SEEK_SET, SEEK_END) * @return new absolute buffer position, -1 on error or EOS */ static int64_t cfs_seek (struct CompressedFileSource *cfs, int64_t position, int whence) { uint64_t nposition; int64_t delta; switch (whence) { case SEEK_CUR: if (cfs->fpos + position < 0) { /* underflow */ LOG ("Invalid seek operation\n"); return -1; } if ( (-1 != cfs->uncompressed_size) && (cfs->fpos + position > cfs->uncompressed_size) ) { LOG ("Invalid seek operation\n"); return -1; } nposition = cfs->fpos + position; break; case SEEK_END: ASSERT (-1 != cfs->uncompressed_size); if (position > 0) { LOG ("Invalid seek operation\n"); return -1; } if (cfs->uncompressed_size < - position) { LOG ("Invalid seek operation\n"); return -1; } nposition = cfs->uncompressed_size + position; break; case SEEK_SET: if (position < 0) { LOG ("Invalid seek operation\n"); return -1; } if ( (-1 != cfs->uncompressed_size) && (cfs->uncompressed_size < position ) ) { LOG ("Invalid seek operation\n"); return -1; } nposition = (uint64_t) position; break; default: LOG ("Invalid seek operation\n"); return -1; } delta = nposition - cfs->fpos; if (delta < 0) { if (cfs->result_pos >= - delta) { cfs->result_pos += delta; cfs->fpos += delta; delta = 0; } else { if (-1 == cfs_reset_stream (cfs)) { LOG ("Failed to restart compressed stream for seek operation\n"); return -1; } delta = nposition; } } while (delta > 0) { char buf[COM_CHUNK_SIZE]; size_t max; int64_t ret; max = (sizeof (buf) > delta) ? delta : sizeof (buf); ret = cfs_read (cfs, buf, max); if (-1 == ret) { LOG ("Failed to read decompressed stream for seek operation\n"); return -1; } if (0 == ret) { LOG ("Reached unexpected end of stream at %llu during seek operation to %llu (%d left)\n", (unsigned long long) cfs->fpos, (unsigned long long) nposition, delta); return -1; } ASSERT (ret <= delta); delta -= ret; } return cfs->fpos; } /** * Detect if we have compressed data on our hands. * * @param data pointer to a data buffer or NULL (in case fd is not -1) * @param fd a file to read data from, or -1 (if data is not NULL) * @param fsize size of data (if data is not NULL) or of file (if fd is not -1) * @return -1 to indicate an error, 0 to indicate uncompressed data, or a type (> 0) of compression */ static enum ExtractorCompressionType get_compression_type (struct BufferedFileDataSource *bfds) { unsigned char read_data[3]; if (0 != bfds_seek (bfds, 0, SEEK_SET)) return COMP_TYPE_INVALID; if (sizeof (read_data) != bfds_read (bfds, read_data, sizeof (read_data))) return COMP_TYPE_UNDEFINED; #if HAVE_ZLIB if ( (bfds->fsize >= MIN_ZLIB_HEADER) && (read_data[0] == 0x1f) && (read_data[1] == 0x8b) && (read_data[2] == 0x08) ) return COMP_TYPE_ZLIB; #endif #if HAVE_LIBBZ2 if ( (bfds->fsize >= MIN_BZ2_HEADER) && (read_data[0] == 'B') && (read_data[1] == 'Z') && (read_data[2] == 'h')) return COMP_TYPE_BZ2; #endif return COMP_TYPE_INVALID; } /** * Handle to a datasource we can use for the plugins. */ struct EXTRACTOR_Datasource { /** * Underlying buffered data source. */ struct BufferedFileDataSource *bfds; /** * Compressed file source (NULL if not applicable). */ struct CompressedFileSource *cfs; /** * Underlying file descriptor, -1 for none. */ int fd; }; /** * Create a datasource from a file on disk. * * @param filename name of the file on disk * @param proc metadata callback to call with meta data found upon opening * @param proc_cls callback cls * @return handle to the datasource, NULL on error */ struct EXTRACTOR_Datasource * EXTRACTOR_datasource_create_from_file_ (const char *filename, EXTRACTOR_MetaDataProcessor proc, void *proc_cls) { struct BufferedFileDataSource *bfds; struct EXTRACTOR_Datasource *ds; enum ExtractorCompressionType ct; int fd; struct stat sb; int64_t fsize; int winmode = 0; #if WINDOWS winmode = O_BINARY; #endif if (-1 == (fd = OPEN (filename, O_RDONLY | O_LARGEFILE | winmode))) { LOG_STRERROR_FILE ("open", filename); return NULL; } if ( (0 != FSTAT (fd, &sb)) || (S_ISDIR (sb.st_mode)) ) { if (! S_ISDIR (sb.st_mode)) LOG_STRERROR_FILE ("fstat", filename); else LOG ("Skipping directory `%s'\n", filename); (void) CLOSE (fd); return NULL; } fsize = (int64_t) sb.st_size; if (0 == fsize) { (void) CLOSE (fd); return NULL; } bfds = bfds_new (NULL, fd, fsize); if (NULL == bfds) { (void) CLOSE (fd); return NULL; } if (NULL == (ds = malloc (sizeof (struct EXTRACTOR_Datasource)))) { LOG_STRERROR ("malloc"); bfds_delete (bfds); return NULL; } ds->bfds = bfds; ds->fd = fd; ds->cfs = NULL; ct = get_compression_type (bfds); if ( (COMP_TYPE_ZLIB == ct) || (COMP_TYPE_BZ2 == ct) ) { ds->cfs = cfs_new (bfds, fsize, ct, proc, proc_cls); if (NULL == ds->cfs) { LOG ("Failed to initialize decompressor\n"); bfds_delete (bfds); free (ds); (void) CLOSE (fd); return NULL; } } return ds; } /** * Create a datasource from a buffer in memory. * * @param buf data in memory * @param size number of bytes in 'buf' * @param proc metadata callback to call with meta data found upon opening * @param proc_cls callback cls * @return handle to the datasource */ struct EXTRACTOR_Datasource * EXTRACTOR_datasource_create_from_buffer_ (const char *buf, size_t size, EXTRACTOR_MetaDataProcessor proc, void *proc_cls) { struct BufferedFileDataSource *bfds; struct EXTRACTOR_Datasource *ds; enum ExtractorCompressionType ct; if (0 == size) return NULL; if (NULL == (bfds = bfds_new (buf, -1, size))) { LOG ("Failed to initialize buffer data source\n"); return NULL; } if (NULL == (ds = malloc (sizeof (struct EXTRACTOR_Datasource)))) { LOG_STRERROR ("malloc"); bfds_delete (bfds); return NULL; } ds->bfds = bfds; ds->fd = -1; ds->cfs = NULL; ct = get_compression_type (bfds); if ( (COMP_TYPE_ZLIB == ct) || (COMP_TYPE_BZ2 == ct) ) { ds->cfs = cfs_new (bfds, size, ct, proc, proc_cls); if (NULL == ds->cfs) { LOG ("Failed to initialize decompressor\n"); bfds_delete (bfds); free (ds); return NULL; } } return ds; } /** * Destroy a data source. * * @param ds source to destroy */ void EXTRACTOR_datasource_destroy_ (struct EXTRACTOR_Datasource *ds) { if (NULL != ds->cfs) cfs_destroy (ds->cfs); bfds_delete (ds->bfds); if (-1 != ds->fd) (void) CLOSE (ds->fd); free (ds); } /** * Make 'size' bytes of data from the data source available at 'data'. * * @param cls must be a 'struct EXTRACTOR_Datasource' * @param data where the data should be copied to * @param size maximum number of bytes requested * @return number of bytes now available in data (can be smaller than 'size'), * -1 on error */ ssize_t EXTRACTOR_datasource_read_ (void *cls, void *data, size_t size) { struct EXTRACTOR_Datasource *ds = cls; if (NULL != ds->cfs) return cfs_read (ds->cfs, data, size); return bfds_read (ds->bfds, data, size); } /** * Seek in the datasource. Use 'SEEK_CUR' for whence and 'pos' of 0 to * obtain the current position in the file. * * @param cls must be a 'struct EXTRACTOR_Datasource' * @param pos position to seek (see 'man lseek') * @param whence how to see (absolute to start, relative, absolute to end) * @return new absolute position, UINT64_MAX on error (i.e. desired position * does not exist) */ int64_t EXTRACTOR_datasource_seek_ (void *cls, int64_t pos, int whence) { struct EXTRACTOR_Datasource *ds = cls; if (NULL != ds->cfs) { if ( (SEEK_END == whence) && (-1 == ds->cfs->uncompressed_size) ) { /* need to obtain uncompressed size */ (void) EXTRACTOR_datasource_get_size_ (ds, 1); if (-1 == ds->cfs->uncompressed_size) return -1; } return cfs_seek (ds->cfs, pos, whence); } return bfds_seek (ds->bfds, pos, whence); } /** * Determine the overall size of the data source (after compression). * * @param cls must be a 'struct EXTRACTOR_Datasource' * @param force force computing the size if it is unavailable * @return overall file size, UINT64_MAX on error or unknown */ int64_t EXTRACTOR_datasource_get_size_ (void *cls, int force) { struct EXTRACTOR_Datasource *ds = cls; char buf[32 * 1024]; uint64_t pos; if (NULL != ds->cfs) { if ( (force) && (-1 == ds->cfs->uncompressed_size) ) { pos = ds->cfs->fpos; while ( (-1 == ds->cfs->uncompressed_size) && (-1 != cfs_read (ds->cfs, buf, sizeof (buf))) ) ; if (-1 == cfs_seek (ds->cfs, pos, SEEK_SET)) { LOG ("Serious problem, I moved the buffer to determine the file size but could not restore it...\n"); return -1; } if (-1 == ds->cfs->uncompressed_size) return -1; } return ds->cfs->uncompressed_size; } return ds->bfds->fsize; } /* end of extractor_datasource.c */ libextractor-1.3/src/main/extractor_plugpath.h0000644000175000017500000000242712003064155016604 00000000000000/* This file is part of libextractor. (C) 2002, 2003, 2004, 2005, 2006, 2009, 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file main/extractor_plugpath.h * @brief determine path where plugins are installed * @author Christian Grothoff */ #ifndef EXTRACTOR_PLUGPATH_H #define EXTRACTOR_PLUGPATH_H /** * Given a short name of a library (i.e. "mime"), find * the full path of the respective plugin. */ char * EXTRACTOR_find_plugin_ (const char *short_name); #endif /* EXTRACTOR_PLUGPATH_H */ libextractor-1.3/src/main/test_file.dat0000644000175000017500000045400012007054466015172 00000000000000test  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~libextractor-1.3/src/main/test_plugin_load_multi.c0000644000175000017500000000424212006555505017432 00000000000000/* This file is part of libextractor. (C) 2002, 2003, 2004, 2005, 2006, 2009 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file main/test_plugin_load_multi.c * @brief testcase for libextractor plugin loading that loads the same * plugins multiple times! * @author Christian Grothoff */ #include "platform.h" #include "extractor.h" static int testLoadPlugins () { struct EXTRACTOR_PluginList *el1; struct EXTRACTOR_PluginList *el2; el1 = EXTRACTOR_plugin_add_defaults (EXTRACTOR_OPTION_DEFAULT_POLICY); el2 = EXTRACTOR_plugin_add_defaults (EXTRACTOR_OPTION_DEFAULT_POLICY); if ((NULL == el1) || (NULL == el2)) { fprintf (stderr, "Failed to load default plugins!\n"); if (NULL != el1) EXTRACTOR_plugin_remove_all (el1); if (NULL != el2) EXTRACTOR_plugin_remove_all (el2); return 1; } EXTRACTOR_plugin_remove_all (el1); EXTRACTOR_plugin_remove_all (el2); return 0; } int main (int argc, char *argv[]) { int ret = 0; /* change environment to find 'extractor_test' plugin which is not installed but should be in the current directory (or .libs) on 'make check' */ if (0 != putenv ("LIBEXTRACTOR_PREFIX=." PATH_SEPARATOR_STR ".libs/")) fprintf (stderr, "Failed to update my environment, plugin loading may fail: %s\n", strerror (errno)); ret += testLoadPlugins (); ret += testLoadPlugins (); return ret; } /* end of test_plugin_load_multi.c */ libextractor-1.3/src/main/test2_extractor.c0000644000175000017500000000736312007534312016021 00000000000000/* This file is part of libextractor. (C) 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file main/test2_extractor.c * @brief plugin for testing GNU libextractor * Data file (or buffer) for this test must be 150 * 1024 bytes long, * first 4 bytes must be "test", all other bytes should be equal to * % 256. The test client must return 0 after seeing * "Hello World!" metadata, and return 1 after seeing "Goodbye!" * metadata. * @author Christian Grothoff */ #include "platform.h" #include "extractor.h" #include #include #include #include #include #include /** * Signature of the extract method that each plugin * must provide. * * @param ec extraction context provided to the plugin */ void EXTRACTOR_test2_extract_method (struct EXTRACTOR_ExtractContext *ec) { void *dp; if ((NULL == ec->config) || (0 != strcmp (ec->config, "test2"))) return; /* only run in test mode */ if (4 != ec->read (ec->cls, &dp, 4)) { fprintf (stderr, "Reading at offset 0 failed\n"); ABORT (); } if (0 != strncmp ("test", dp, 4)) { fprintf (stderr, "Unexpected data at offset 0\n"); ABORT (); } if ( (1024 * 150 != ec->get_size (ec->cls)) && (UINT64_MAX != ec->get_size (ec->cls)) ) { fprintf (stderr, "Unexpected file size returned (expected 150k)\n"); ABORT (); } if (1024 * 100 + 4 != ec->seek (ec->cls, 1024 * 100 + 4, SEEK_SET)) { fprintf (stderr, "Failure to seek (SEEK_SET)\n"); ABORT (); } if (1 != ec->read (ec->cls, &dp, 1)) { fprintf (stderr, "Failure to read at 100k + 4\n"); ABORT (); } if ((1024 * 100 + 4) % 256 != * (unsigned char *) dp) { fprintf (stderr, "Unexpected data at offset 100k + 4\n"); ABORT (); } if (((1024 * 100 + 4) + 1 - (1024 * 50 + 7)) != ec->seek (ec->cls, - (1024 * 50 + 7), SEEK_CUR)) { fprintf (stderr, "Failure to seek (SEEK_SET)\n"); ABORT (); } if (1 != ec->read (ec->cls, &dp, 1)) { fprintf (stderr, "Failure to read at 50k - 3\n"); ABORT (); } if (((1024 * 100 + 4) + 1 - (1024 * 50 + 7)) % 256 != * (unsigned char *) dp) { fprintf (stderr, "Unexpected data at offset 100k - 3\n"); ABORT (); } if (1024 * 150 != ec->seek (ec->cls, 0, SEEK_END)) { fprintf (stderr, "Failure to seek (SEEK_END)\n"); ABORT (); } if (0 != ec->read (ec->cls, &dp, 1)) { fprintf (stderr, "Failed to receive EOF at 150k\n"); ABORT (); } if (1024 * 150 - 2 != ec->seek (ec->cls, -2, SEEK_END)) { fprintf (stderr, "Failure to seek (SEEK_END - 2)\n"); ABORT (); } if (1 != ec->read (ec->cls, &dp, 1)) { fprintf (stderr, "Failure to read at 150k - 3\n"); ABORT (); } if ((1024 * 150 - 2) % 256 != * (unsigned char *) dp) { fprintf (stderr, "Unexpected data at offset 150k - 3\n"); ABORT (); } } /* end of test2_extractor.c */ libextractor-1.3/src/main/iconv.c0000644000175000017500000000414312027417356014006 00000000000000/* This file is part of libextractor. (C) 2002, 2003, 2004 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file main/iconv.c * @brief convenience functions for character conversion * @author Christian Grothoff */ /** * Convert the given input using the given converter * and return as a 0-terminated string. * * @param cd converter to use * @param in input string * @param inSize number of bytes in 'in' * @return NULL on error, otherwise the converted string (to be free'd by caller) */ static char * iconv_helper (iconv_t cd, const char *in, size_t inSize) { #if HAVE_ICONV char *buf; char *ibuf; const char *i; size_t outSize; size_t outLeft; if (inSize > 1024 * 1024) return NULL; /* too big to be meta data */ i = in; /* reset iconv */ iconv (cd, NULL, NULL, NULL, NULL); outSize = 4 * inSize + 2; outLeft = outSize - 2; /* make sure we have 2 0-terminations! */ if (NULL == (buf = malloc (outSize))) return NULL; ibuf = buf; memset (buf, 0, outSize); if (iconv (cd, (char**) &in, &inSize, &ibuf, &outLeft) == SIZE_MAX) { /* conversion failed */ free (buf); return strdup (i); } return buf; #else /* good luck, just copying string... */ char *buf; buf = malloc (inSize + 1); memcpy (buf, in, inSize); buf[inSize] = '\0'; #endif } /* end of iconv.c */ libextractor-1.3/src/main/test_ipc.c0000644000175000017500000001072612007535541014501 00000000000000/* This file is part of libextractor. (C) 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file main/test_ipc.c * @brief testcase for the extractor IPC using the "test" plugin * @author Christian Grothoff */ #include "platform.h" #include "extractor.h" /** * Return value from main, set to 0 for test to succeed. */ static int ret = 2; #define HLO "Hello world!" #define GOB "Goodbye!" /** * Function that libextractor calls for each * meta data item found. Should be called once * with 'Hello World!" and once with "Goodbye!". * * @param cls closure should be "main-cls" * @param plugin_name should be "test" * @param type should be "COMMENT" * @param format should be "UTF8" * @param data_mime_type should be "" * @param data hello world or good bye * @param data_len number of bytes in data * @return 0 on hello world, 1 on goodbye */ static int process_replies (void *cls, const char *plugin_name, enum EXTRACTOR_MetaType type, enum EXTRACTOR_MetaFormat format, const char *data_mime_type, const char *data, size_t data_len) { if (0 != strcmp (cls, "main-cls")) { fprintf (stderr, "closure invalid\n"); ret = 3; return 1; } if (0 == strcmp (plugin_name, "test2")) return 0; /* ignore 'test2' plugins */ if (0 != strcmp (plugin_name, "test")) { fprintf (stderr, "plugin name invalid\n"); ret = 4; return 1; } if (EXTRACTOR_METATYPE_COMMENT != type) { fprintf (stderr, "type invalid\n"); ret = 5; return 1; } if (EXTRACTOR_METAFORMAT_UTF8 != format) { fprintf (stderr, "format invalid\n"); ret = 6; return 1; } if ( (NULL == data_mime_type) || (0 != strcmp ("", data_mime_type) ) ) { fprintf (stderr, "bad mime type\n"); ret = 7; return 1; } if ( (2 == ret) && (data_len == strlen (HLO) + 1) && (0 == strncmp (data, HLO, strlen (HLO))) ) { #if 0 fprintf (stderr, "Received '%s'\n", HLO); #endif ret = 1; return 0; } if ( (1 == ret) && (data_len == strlen (GOB) + 1) && (0 == strncmp (data, GOB, strlen (GOB))) ) { #if 0 fprintf (stderr, "Received '%s'\n", GOB); #endif ret = 0; return 1; } fprintf (stderr, "Invalid meta data\n"); ret = 8; return 1; } /** * Main function for the IPC testcase. * * @param argc number of arguments (ignored) * @param argv arguments (ignored) * @return 0 on success */ int main (int argc, char *argv[]) { struct EXTRACTOR_PluginList *pl; unsigned char buf[1024 * 150]; size_t i; /* initialize test buffer as expected by test plugin */ for (i=0;iflags) return -1; if (NULL == plugin->libname) plugin->libname = EXTRACTOR_find_plugin_ (plugin->short_libname); if (NULL == plugin->libname) { LOG ("Failed to find plugin `%s'\n", plugin->short_libname); plugin->flags = EXTRACTOR_OPTION_DISABLED; return -1; } lt_dladvise_init (&advise); lt_dladvise_ext (&advise); lt_dladvise_local (&advise); #if WINDOWS wlibname[0] = L'\0'; llibname[0] = '\0'; if ( (MultiByteToWideChar (CP_UTF8, 0, plugin->libname, -1, wlibname, sizeof (wlibname)) <= 0) || (WideCharToMultiByte (CP_ACP, 0, wlibname, -1, llibname, sizeof (llibname), NULL, NULL) < 0) ) { LOG ("Loading `%s' plugin failed: %s\n", plugin->short_libname, "can't convert plugin name to local encoding"); free (plugin->libname); plugin->libname = NULL; plugin->flags = EXTRACTOR_OPTION_DISABLED; return -1; } plugin->libraryHandle = lt_dlopenadvise (llibname, advise); #else plugin->libraryHandle = lt_dlopenadvise (plugin->libname, advise); #endif lt_dladvise_destroy (&advise); if (NULL == plugin->libraryHandle) { LOG ("Loading `%s' plugin failed (using name `%s'): %s\n", plugin->short_libname, plugin->libname, lt_dlerror ()); free (plugin->libname); plugin->libname = NULL; plugin->flags = EXTRACTOR_OPTION_DISABLED; return -1; } plugin->extract_method = get_symbol_with_prefix (plugin->libraryHandle, "_EXTRACTOR_%s_extract_method", plugin->libname, &plugin->specials); if (NULL == plugin->extract_method) { LOG ("Resolving `extract' method of plugin `%s' failed: %s\n", plugin->short_libname, lt_dlerror ()); lt_dlclose (plugin->libraryHandle); free (plugin->libname); plugin->libname = NULL; plugin->flags = EXTRACTOR_OPTION_DISABLED; return -1; } return 0; } /** * Add a library for keyword extraction. * * @param prev the previous list of libraries, may be NULL * @param library the name of the library * @param options options to pass to the plugin * @param flags options to use * @return the new list of libraries, equal to prev iff an error occured */ struct EXTRACTOR_PluginList * EXTRACTOR_plugin_add (struct EXTRACTOR_PluginList *prev, const char *library, const char *options, enum EXTRACTOR_Options flags) { struct EXTRACTOR_PluginList *plugin; struct EXTRACTOR_PluginList *pos; char *libname; for (pos = prev; NULL != pos; pos = pos->next) if (0 == strcmp (pos->short_libname, library)) return prev; /* no change, library already loaded */ if (NULL == (libname = EXTRACTOR_find_plugin_ (library))) { LOG ("Could not load plugin `%s'\n", library); return prev; } if (NULL == (plugin = malloc (sizeof (struct EXTRACTOR_PluginList)))) return prev; memset (plugin, 0, sizeof (struct EXTRACTOR_PluginList)); plugin->next = prev; if (NULL == (plugin->short_libname = strdup (library))) { free (plugin); return NULL; } plugin->libname = libname; plugin->flags = flags; if (NULL != options) plugin->plugin_options = strdup (options); else plugin->plugin_options = NULL; plugin->seek_request = -1; return plugin; } /** * Load multiple libraries as specified by the user. * * @param config a string given by the user that defines which * libraries should be loaded. Has the format * "[[-]LIBRARYNAME[(options)][:[-]LIBRARYNAME[(options)]]]*". * For example, 'mp3:ogg.so' loads the * mp3 and the ogg library. The '-' before the LIBRARYNAME * indicates that the library should be removed from * the library list. * @param prev the previous list of libraries, may be NULL * @param flags options to use * @return the new list of libraries, equal to prev iff an error occured * or if config was empty (or NULL). */ struct EXTRACTOR_PluginList * EXTRACTOR_plugin_add_config (struct EXTRACTOR_PluginList *prev, const char *config, enum EXTRACTOR_Options flags) { char *cpy; size_t pos; size_t last; ssize_t lastconf; size_t len; if (NULL == config) return prev; if (NULL == (cpy = strdup (config))) return prev; len = strlen (config); pos = 0; last = 0; lastconf = 0; while (pos < len) { while ( (':' != cpy[pos]) && ('\0' != cpy[pos]) && ('(' != cpy[pos]) ) pos++; switch (cpy[pos]) { case '(': cpy[pos++] = '\0'; /* replace '(' by termination */ lastconf = pos; /* start config from here, after (. */ while ( ('\0' != cpy[pos]) && (')' != cpy[pos])) pos++; /* config until ) or EOS. */ if (')' == cpy[pos]) { cpy[pos++] = '\0'; /* write end of config here. */ while ( (':' != cpy[pos]) && ('\0' != cpy[pos]) ) pos++; /* forward until real end of string found. */ cpy[pos++] = '\0'; } else { cpy[pos++] = '\0'; /* end of string. */ } break; case ':': case '\0': lastconf = -1; /* NULL config when no (). */ cpy[pos++] = '\0'; /* replace ':' by termination */ break; default: ABORT (); } if ('-' == cpy[last]) { last++; prev = EXTRACTOR_plugin_remove (prev, &cpy[last]); } else { prev = EXTRACTOR_plugin_add (prev, &cpy[last], (-1 != lastconf) ? &cpy[lastconf] : NULL, flags); } last = pos; } free (cpy); return prev; } /** * Remove a plugin from a list. * * @param prev the current list of plugins * @param library the name of the plugin to remove * @return the reduced list, unchanged if the plugin was not loaded */ struct EXTRACTOR_PluginList * EXTRACTOR_plugin_remove (struct EXTRACTOR_PluginList *prev, const char *library) { struct EXTRACTOR_PluginList *pos; struct EXTRACTOR_PluginList *first; pos = prev; first = prev; while ( (NULL != pos) && (0 != strcmp (pos->short_libname, library)) ) { prev = pos; pos = pos->next; } if (NULL == pos) { LOG ("Unloading plugin `%s' failed!\n", library); return first; } /* found, close library */ if (first == pos) first = pos->next; else prev->next = pos->next; if (NULL != pos->channel) EXTRACTOR_IPC_channel_destroy_ (pos->channel); if ( (NULL != pos->shm) && (0 == EXTRACTOR_IPC_shared_memory_change_rc_ (pos->shm, -1)) ) EXTRACTOR_IPC_shared_memory_destroy_ (pos->shm); free (pos->short_libname); free (pos->libname); free (pos->plugin_options); if (NULL != pos->libraryHandle) lt_dlclose (pos->libraryHandle); free (pos); return first; } /** * Remove all plugins from the given list (destroys the list). * * @param plugin the list of plugins */ void EXTRACTOR_plugin_remove_all (struct EXTRACTOR_PluginList *plugins) { while (NULL != plugins) plugins = EXTRACTOR_plugin_remove (plugins, plugins->short_libname); } /* end of extractor_plugins.c */ libextractor-1.3/src/main/extractor_ipc.c0000644000175000017500000000767412255623422015546 00000000000000/* This file is part of libextractor. (C) 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file main/extractor_ipc.c * @brief IPC with plugin (OS-independent parts) * @author Christian Grothoff */ #include "platform.h" #include "extractor_logging.h" #include "extractor_ipc.h" #include "extractor_plugins.h" /** * Process a reply from channel (seek request, metadata and done message) * * @param plugin plugin this communication is about * @param buf buffer with data from IPC channel * @param size number of bytes in buffer * @param proc metadata callback * @param proc_cls callback cls * @return number of bytes processed, -1 on error */ ssize_t EXTRACTOR_IPC_process_reply_ (struct EXTRACTOR_PluginList *plugin, const void *data, size_t size, EXTRACTOR_ChannelMessageProcessor proc, void *proc_cls) { const char *cdata; unsigned char code; struct SeekRequestMessage seek; struct MetaMessage meta; const char *mime_type; const char *value; ssize_t ret; ret = 0; while (size > 0) { cdata = data; code = (unsigned char) cdata[0]; switch (code) { case MESSAGE_DONE: /* Done */ plugin->seek_request = -1; plugin->round_finished = 1; ret++; size--; data++; continue; case MESSAGE_SEEK: /* Seek */ if (size < sizeof (struct SeekRequestMessage)) { plugin->seek_request = -1; return ret; } memcpy (&seek, cdata, sizeof (seek)); plugin->seek_request = (int64_t) seek.file_offset; plugin->seek_whence = seek.whence; ret += sizeof (struct SeekRequestMessage); data += sizeof (struct SeekRequestMessage); size -= sizeof (struct SeekRequestMessage); continue; case MESSAGE_META: /* Meta */ if (size < sizeof (struct MetaMessage)) { plugin->seek_request = -1; return ret; } memcpy (&meta, cdata, sizeof (meta)); /* check hdr for sanity */ if (meta.value_size > MAX_META_DATA) { LOG ("Meta data exceeds size limit\n"); return -1; /* not allowing more than MAX_META_DATA meta data */ } if (size < sizeof (meta) + meta.mime_length + meta.value_size) { plugin->seek_request = -1; return ret; } if (0 == meta.mime_length) { mime_type = NULL; } else { mime_type = &cdata[sizeof (struct MetaMessage)]; if ('\0' != mime_type[meta.mime_length - 1]) { LOG ("Mime type not 0-terminated\n"); return -1; } } if (0 == meta.value_size) value = NULL; else value = &cdata[sizeof (struct MetaMessage) + meta.mime_length]; if (meta.meta_type >= EXTRACTOR_metatype_get_max ()) meta.meta_type = EXTRACTOR_METATYPE_UNKNOWN; proc (proc_cls, plugin, (enum EXTRACTOR_MetaType) meta.meta_type, (enum EXTRACTOR_MetaFormat) meta.meta_format, mime_type, value, meta.value_size); ret += sizeof (struct MetaMessage) + meta.mime_length + meta.value_size; size -= sizeof (struct MetaMessage) + meta.mime_length + meta.value_size; data += sizeof (struct MetaMessage) + meta.mime_length + meta.value_size; continue; default: LOG ("Invalid message type %d\n", (int) code); return -1; } } return ret; } /* end of extractor_ipc.c */ libextractor-1.3/src/main/Makefile.in0000644000175000017500000016071612256015520014571 00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ bin_PROGRAMS = extract$(EXEEXT) check_PROGRAMS = test_trivial$(EXEEXT) test_plugin_loading$(EXEEXT) \ test_plugin_load_multi$(EXEEXT) test_ipc$(EXEEXT) \ test_file$(EXEEXT) $(am__EXEEXT_1) $(am__EXEEXT_2) subdir = src/main DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/abi-gsf.m4 \ $(top_srcdir)/m4/ac_define_dir.m4 \ $(top_srcdir)/m4/ax_create_pkgconfig_info.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glib-2.0.m4 \ $(top_srcdir)/m4/gtk-2.0.m4 $(top_srcdir)/m4/gtk-3.0.m4 \ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES) am__DEPENDENCIES_1 = libextractor_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) am__libextractor_la_SOURCES_DIST = extractor_common.c \ extractor_common.h extractor_datasource.c \ extractor_datasource.h extractor_ipc_gnu.c extractor_ipc_w32.c \ extractor_ipc.c extractor_ipc.h extractor_logging.c \ extractor_logging.h extractor_metatypes.c extractor_plugpath.c \ extractor_plugpath.h extractor_plugins.c extractor_plugins.h \ extractor_print.c extractor_plugin_main.c \ extractor_plugin_main.h extractor.c @WINDOWS_FALSE@am__objects_1 = libextractor_la-extractor_ipc_gnu.lo @WINDOWS_TRUE@am__objects_1 = libextractor_la-extractor_ipc_w32.lo am_libextractor_la_OBJECTS = libextractor_la-extractor_common.lo \ libextractor_la-extractor_datasource.lo $(am__objects_1) \ libextractor_la-extractor_ipc.lo \ libextractor_la-extractor_logging.lo \ libextractor_la-extractor_metatypes.lo \ libextractor_la-extractor_plugpath.lo \ libextractor_la-extractor_plugins.lo \ libextractor_la-extractor_print.lo \ libextractor_la-extractor_plugin_main.lo \ libextractor_la-extractor.lo libextractor_la_OBJECTS = $(am_libextractor_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libextractor_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(libextractor_la_LDFLAGS) $(LDFLAGS) \ -o $@ libextractor_test_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) am_libextractor_test_la_OBJECTS = test_extractor.lo libextractor_test_la_OBJECTS = $(am_libextractor_test_la_OBJECTS) libextractor_test_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(libextractor_test_la_LDFLAGS) \ $(LDFLAGS) -o $@ libextractor_test2_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) am_libextractor_test2_la_OBJECTS = test2_extractor.lo libextractor_test2_la_OBJECTS = $(am_libextractor_test2_la_OBJECTS) libextractor_test2_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(libextractor_test2_la_LDFLAGS) \ $(LDFLAGS) -o $@ @HAVE_ZLIB_TRUE@am__EXEEXT_1 = test_gzip$(EXEEXT) @HAVE_BZ2_TRUE@am__EXEEXT_2 = test_bzip2$(EXEEXT) PROGRAMS = $(bin_PROGRAMS) am_extract_OBJECTS = extract.$(OBJEXT) getopt.$(OBJEXT) \ getopt1.$(OBJEXT) extract_OBJECTS = $(am_extract_OBJECTS) am_test_bzip2_OBJECTS = test_bzip2.$(OBJEXT) test_bzip2_OBJECTS = $(am_test_bzip2_OBJECTS) test_bzip2_DEPENDENCIES = $(top_builddir)/src/main/libextractor.la am_test_file_OBJECTS = test_file.$(OBJEXT) test_file_OBJECTS = $(am_test_file_OBJECTS) test_file_DEPENDENCIES = $(top_builddir)/src/main/libextractor.la am_test_gzip_OBJECTS = test_gzip.$(OBJEXT) test_gzip_OBJECTS = $(am_test_gzip_OBJECTS) test_gzip_DEPENDENCIES = $(top_builddir)/src/main/libextractor.la am_test_ipc_OBJECTS = test_ipc.$(OBJEXT) test_ipc_OBJECTS = $(am_test_ipc_OBJECTS) test_ipc_DEPENDENCIES = $(top_builddir)/src/main/libextractor.la am_test_plugin_load_multi_OBJECTS = test_plugin_load_multi.$(OBJEXT) test_plugin_load_multi_OBJECTS = $(am_test_plugin_load_multi_OBJECTS) test_plugin_load_multi_DEPENDENCIES = \ $(top_builddir)/src/main/libextractor.la am_test_plugin_loading_OBJECTS = test_plugin_loading.$(OBJEXT) test_plugin_loading_OBJECTS = $(am_test_plugin_loading_OBJECTS) test_plugin_loading_DEPENDENCIES = \ $(top_builddir)/src/main/libextractor.la am_test_trivial_OBJECTS = test_trivial.$(OBJEXT) test_trivial_OBJECTS = $(am_test_trivial_OBJECTS) test_trivial_DEPENDENCIES = $(top_builddir)/src/main/libextractor.la DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libextractor_la_SOURCES) $(libextractor_test_la_SOURCES) \ $(libextractor_test2_la_SOURCES) $(extract_SOURCES) \ $(test_bzip2_SOURCES) $(test_file_SOURCES) \ $(test_gzip_SOURCES) $(test_ipc_SOURCES) \ $(test_plugin_load_multi_SOURCES) \ $(test_plugin_loading_SOURCES) $(test_trivial_SOURCES) DIST_SOURCES = $(am__libextractor_la_SOURCES_DIST) \ $(libextractor_test_la_SOURCES) \ $(libextractor_test2_la_SOURCES) $(extract_SOURCES) \ $(test_bzip2_SOURCES) $(test_file_SOURCES) \ $(test_gzip_SOURCES) $(test_ipc_SOURCES) \ $(test_plugin_load_multi_SOURCES) \ $(test_plugin_loading_SOURCES) $(test_trivial_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir ETAGS = etags CTAGS = ctags am__tty_colors = \ red=; grn=; lgn=; blu=; std= DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ GLIB_LIBS = @GLIB_LIBS@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GOBJECT_QUERY = @GOBJECT_QUERY@ GREP = @GREP@ GSF_CFLAGS = @GSF_CFLAGS@ GSF_GNOME_CFLAGS = @GSF_GNOME_CFLAGS@ GSF_GNOME_LIBS = @GSF_GNOME_LIBS@ GSF_LIBS = @GSF_LIBS@ GSTREAMER_APP_CFLAGS = @GSTREAMER_APP_CFLAGS@ GSTREAMER_APP_LIBS = @GSTREAMER_APP_LIBS@ GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@ GSTREAMER_LIBS = @GSTREAMER_LIBS@ GSTREAMER_PBUTILS_CFLAGS = @GSTREAMER_PBUTILS_CFLAGS@ GSTREAMER_PBUTILS_LIBS = @GSTREAMER_PBUTILS_LIBS@ GSTREAMER_TAG_CFLAGS = @GSTREAMER_TAG_CFLAGS@ GSTREAMER_TAG_LIBS = @GSTREAMER_TAG_LIBS@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ HAVE_CXX = @HAVE_CXX@ HAVE_ZZUF = @HAVE_ZZUF@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ ISOLOCALEDIR = @ISOLOCALEDIR@ LD = @LD@ LDFLAGS = @LDFLAGS@ LE_INTLINCL = @LE_INTLINCL@ LE_LIBINTL = @LE_LIBINTL@ LE_LIB_LDFLAGS = @LE_LIB_LDFLAGS@ LE_LIB_LIBS = @LE_LIB_LIBS@ LE_PLUGIN_LDFLAGS = @LE_PLUGIN_LDFLAGS@ LIBEXT = @LIBEXT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = \ @LE_LIBINTL@ @LE_LIB_LIBS@ LIBTOOL = @LIBTOOL@ LIB_VERSION_AGE = @LIB_VERSION_AGE@ LIB_VERSION_CURRENT = @LIB_VERSION_CURRENT@ LIB_VERSION_REVISION = @LIB_VERSION_REVISION@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALEDIR = @LOCALEDIR@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACKAGE_VERSION_NOALPHA = @PACKAGE_VERSION_NOALPHA@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ POSUB = @POSUB@ QT_CPPFLAGS = @QT_CPPFLAGS@ QT_LDFLAGS = @QT_LDFLAGS@ RANLIB = @RANLIB@ RPLUGINDIR = @RPLUGINDIR@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKET_LIBS = @SOCKET_LIBS@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XTRA_CPPLIBS = @XTRA_CPPLIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfig_libdir = @pkgconfig_libdir@ pkgconfig_libfile = @pkgconfig_libfile@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = . INCLUDES = -I$(top_srcdir)/src/include @USE_COVERAGE_TRUE@AM_CFLAGS = --coverage -O0 @USE_COVERAGE_TRUE@XLIB = -lgcov lib_LTLIBRARIES = \ libextractor.la @HAVE_ZLIB_TRUE@zlib = -lz @HAVE_ZLIB_TRUE@TEST_ZLIB = test_gzip @HAVE_BZ2_TRUE@bz2lib = -lbz2 @HAVE_BZ2_TRUE@TEST_BZIP2 = test_bzip2 @WINDOWS_FALSE@EXTRACTOR_IPC = extractor_ipc_gnu.c @WINDOWS_TRUE@EXTRACTOR_IPC = extractor_ipc_w32.c @HAVE_GNU_LD_TRUE@makesymbolic = -Wl,-Bsymbolic PLUGINFLAGS = $(makesymbolic) $(LE_PLUGIN_LDFLAGS) EXTRA_DIST = \ iconv.c \ test_file.dat \ test_file.dat.gz \ test_file.dat.bz2 libextractor_la_CPPFLAGS = \ -DPLUGINDIR=\"@RPLUGINDIR@\" -DPLUGININSTDIR=\"${plugindir}\" $(AM_CPPFLAGS) libextractor_la_SOURCES = \ extractor_common.c extractor_common.h \ extractor_datasource.c extractor_datasource.h \ $(EXTRACTOR_IPC) extractor_ipc.c extractor_ipc.h \ extractor_logging.c extractor_logging.h \ extractor_metatypes.c \ extractor_plugpath.c extractor_plugpath.h \ extractor_plugins.c extractor_plugins.h \ extractor_print.c \ extractor_plugin_main.c extractor_plugin_main.h \ extractor.c libextractor_la_LDFLAGS = \ $(LE_LIB_LDFLAGS) -version-info @LIB_VERSION_CURRENT@:@LIB_VERSION_REVISION@:@LIB_VERSION_AGE@ libextractor_la_LIBADD = \ -lltdl $(zlib) $(bz2lib) $(LTLIBICONV) $(XLIB) $(LE_LIBINTL) extract_SOURCES = \ extract.c \ getopt.c getopt.h getopt1.c extract_DEPENDENCIES = \ libextractor.la extract_LDADD = \ $(top_builddir)/src/main/libextractor.la $(LE_LIBINTL) TESTS_ENVIRONMENT = testdatadir=$(top_srcdir)/test bindir=${bindir} noinst_LTLIBRARIES = \ libextractor_test.la \ libextractor_test2.la libextractor_test_la_SOURCES = \ test_extractor.c libextractor_test_la_LDFLAGS = \ $(PLUGINFLAGS) -rpath /nowhere libextractor_test_la_LIBADD = \ $(LE_LIBINTL) $(XLIB) libextractor_test2_la_SOURCES = \ test2_extractor.c libextractor_test2_la_LDFLAGS = \ $(PLUGINFLAGS) -rpath /nowhere libextractor_test2_la_LIBADD = \ $(LE_LIBINTL) $(XLIB) @ENABLE_TEST_RUN_TRUE@TESTS = $(check_PROGRAMS) test_trivial_SOURCES = \ test_trivial.c test_trivial_LDADD = \ $(top_builddir)/src/main/libextractor.la test_plugin_loading_SOURCES = \ test_plugin_loading.c test_plugin_loading_LDADD = \ $(top_builddir)/src/main/libextractor.la test_plugin_load_multi_SOURCES = \ test_plugin_load_multi.c test_plugin_load_multi_LDADD = \ $(top_builddir)/src/main/libextractor.la test_ipc_SOURCES = \ test_ipc.c test_ipc_LDADD = \ $(top_builddir)/src/main/libextractor.la test_file_SOURCES = \ test_file.c test_file_LDADD = \ $(top_builddir)/src/main/libextractor.la test_gzip_SOURCES = \ test_gzip.c test_gzip_LDADD = \ $(top_builddir)/src/main/libextractor.la test_bzip2_SOURCES = \ test_bzip2.c test_bzip2_LDADD = \ $(top_builddir)/src/main/libextractor.la all: all-recursive .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/main/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/main/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libextractor.la: $(libextractor_la_OBJECTS) $(libextractor_la_DEPENDENCIES) $(EXTRA_libextractor_la_DEPENDENCIES) $(AM_V_CCLD)$(libextractor_la_LINK) -rpath $(libdir) $(libextractor_la_OBJECTS) $(libextractor_la_LIBADD) $(LIBS) libextractor_test.la: $(libextractor_test_la_OBJECTS) $(libextractor_test_la_DEPENDENCIES) $(EXTRA_libextractor_test_la_DEPENDENCIES) $(AM_V_CCLD)$(libextractor_test_la_LINK) $(libextractor_test_la_OBJECTS) $(libextractor_test_la_LIBADD) $(LIBS) libextractor_test2.la: $(libextractor_test2_la_OBJECTS) $(libextractor_test2_la_DEPENDENCIES) $(EXTRA_libextractor_test2_la_DEPENDENCIES) $(AM_V_CCLD)$(libextractor_test2_la_LINK) $(libextractor_test2_la_OBJECTS) $(libextractor_test2_la_LIBADD) $(LIBS) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p || test -f $$p1; \ then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list clean-checkPROGRAMS: @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list extract$(EXEEXT): $(extract_OBJECTS) $(extract_DEPENDENCIES) $(EXTRA_extract_DEPENDENCIES) @rm -f extract$(EXEEXT) $(AM_V_CCLD)$(LINK) $(extract_OBJECTS) $(extract_LDADD) $(LIBS) test_bzip2$(EXEEXT): $(test_bzip2_OBJECTS) $(test_bzip2_DEPENDENCIES) $(EXTRA_test_bzip2_DEPENDENCIES) @rm -f test_bzip2$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_bzip2_OBJECTS) $(test_bzip2_LDADD) $(LIBS) test_file$(EXEEXT): $(test_file_OBJECTS) $(test_file_DEPENDENCIES) $(EXTRA_test_file_DEPENDENCIES) @rm -f test_file$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_file_OBJECTS) $(test_file_LDADD) $(LIBS) test_gzip$(EXEEXT): $(test_gzip_OBJECTS) $(test_gzip_DEPENDENCIES) $(EXTRA_test_gzip_DEPENDENCIES) @rm -f test_gzip$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_gzip_OBJECTS) $(test_gzip_LDADD) $(LIBS) test_ipc$(EXEEXT): $(test_ipc_OBJECTS) $(test_ipc_DEPENDENCIES) $(EXTRA_test_ipc_DEPENDENCIES) @rm -f test_ipc$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_ipc_OBJECTS) $(test_ipc_LDADD) $(LIBS) test_plugin_load_multi$(EXEEXT): $(test_plugin_load_multi_OBJECTS) $(test_plugin_load_multi_DEPENDENCIES) $(EXTRA_test_plugin_load_multi_DEPENDENCIES) @rm -f test_plugin_load_multi$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_plugin_load_multi_OBJECTS) $(test_plugin_load_multi_LDADD) $(LIBS) test_plugin_loading$(EXEEXT): $(test_plugin_loading_OBJECTS) $(test_plugin_loading_DEPENDENCIES) $(EXTRA_test_plugin_loading_DEPENDENCIES) @rm -f test_plugin_loading$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_plugin_loading_OBJECTS) $(test_plugin_loading_LDADD) $(LIBS) test_trivial$(EXEEXT): $(test_trivial_OBJECTS) $(test_trivial_DEPENDENCIES) $(EXTRA_test_trivial_DEPENDENCIES) @rm -f test_trivial$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_trivial_OBJECTS) $(test_trivial_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/extract.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt1.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libextractor_la-extractor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libextractor_la-extractor_common.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libextractor_la-extractor_datasource.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libextractor_la-extractor_ipc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libextractor_la-extractor_ipc_gnu.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libextractor_la-extractor_ipc_w32.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libextractor_la-extractor_logging.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libextractor_la-extractor_metatypes.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libextractor_la-extractor_plugin_main.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libextractor_la-extractor_plugins.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libextractor_la-extractor_plugpath.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libextractor_la-extractor_print.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test2_extractor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_bzip2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_extractor.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_file.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_gzip.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_ipc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_plugin_load_multi.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_plugin_loading.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_trivial.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libextractor_la-extractor_common.lo: extractor_common.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libextractor_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libextractor_la-extractor_common.lo -MD -MP -MF $(DEPDIR)/libextractor_la-extractor_common.Tpo -c -o libextractor_la-extractor_common.lo `test -f 'extractor_common.c' || echo '$(srcdir)/'`extractor_common.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libextractor_la-extractor_common.Tpo $(DEPDIR)/libextractor_la-extractor_common.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='extractor_common.c' object='libextractor_la-extractor_common.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libextractor_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libextractor_la-extractor_common.lo `test -f 'extractor_common.c' || echo '$(srcdir)/'`extractor_common.c libextractor_la-extractor_datasource.lo: extractor_datasource.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libextractor_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libextractor_la-extractor_datasource.lo -MD -MP -MF $(DEPDIR)/libextractor_la-extractor_datasource.Tpo -c -o libextractor_la-extractor_datasource.lo `test -f 'extractor_datasource.c' || echo '$(srcdir)/'`extractor_datasource.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libextractor_la-extractor_datasource.Tpo $(DEPDIR)/libextractor_la-extractor_datasource.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='extractor_datasource.c' object='libextractor_la-extractor_datasource.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libextractor_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libextractor_la-extractor_datasource.lo `test -f 'extractor_datasource.c' || echo '$(srcdir)/'`extractor_datasource.c libextractor_la-extractor_ipc_gnu.lo: extractor_ipc_gnu.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libextractor_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libextractor_la-extractor_ipc_gnu.lo -MD -MP -MF $(DEPDIR)/libextractor_la-extractor_ipc_gnu.Tpo -c -o libextractor_la-extractor_ipc_gnu.lo `test -f 'extractor_ipc_gnu.c' || echo '$(srcdir)/'`extractor_ipc_gnu.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libextractor_la-extractor_ipc_gnu.Tpo $(DEPDIR)/libextractor_la-extractor_ipc_gnu.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='extractor_ipc_gnu.c' object='libextractor_la-extractor_ipc_gnu.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libextractor_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libextractor_la-extractor_ipc_gnu.lo `test -f 'extractor_ipc_gnu.c' || echo '$(srcdir)/'`extractor_ipc_gnu.c libextractor_la-extractor_ipc_w32.lo: extractor_ipc_w32.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libextractor_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libextractor_la-extractor_ipc_w32.lo -MD -MP -MF $(DEPDIR)/libextractor_la-extractor_ipc_w32.Tpo -c -o libextractor_la-extractor_ipc_w32.lo `test -f 'extractor_ipc_w32.c' || echo '$(srcdir)/'`extractor_ipc_w32.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libextractor_la-extractor_ipc_w32.Tpo $(DEPDIR)/libextractor_la-extractor_ipc_w32.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='extractor_ipc_w32.c' object='libextractor_la-extractor_ipc_w32.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libextractor_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libextractor_la-extractor_ipc_w32.lo `test -f 'extractor_ipc_w32.c' || echo '$(srcdir)/'`extractor_ipc_w32.c libextractor_la-extractor_ipc.lo: extractor_ipc.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libextractor_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libextractor_la-extractor_ipc.lo -MD -MP -MF $(DEPDIR)/libextractor_la-extractor_ipc.Tpo -c -o libextractor_la-extractor_ipc.lo `test -f 'extractor_ipc.c' || echo '$(srcdir)/'`extractor_ipc.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libextractor_la-extractor_ipc.Tpo $(DEPDIR)/libextractor_la-extractor_ipc.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='extractor_ipc.c' object='libextractor_la-extractor_ipc.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libextractor_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libextractor_la-extractor_ipc.lo `test -f 'extractor_ipc.c' || echo '$(srcdir)/'`extractor_ipc.c libextractor_la-extractor_logging.lo: extractor_logging.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libextractor_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libextractor_la-extractor_logging.lo -MD -MP -MF $(DEPDIR)/libextractor_la-extractor_logging.Tpo -c -o libextractor_la-extractor_logging.lo `test -f 'extractor_logging.c' || echo '$(srcdir)/'`extractor_logging.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libextractor_la-extractor_logging.Tpo $(DEPDIR)/libextractor_la-extractor_logging.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='extractor_logging.c' object='libextractor_la-extractor_logging.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libextractor_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libextractor_la-extractor_logging.lo `test -f 'extractor_logging.c' || echo '$(srcdir)/'`extractor_logging.c libextractor_la-extractor_metatypes.lo: extractor_metatypes.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libextractor_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libextractor_la-extractor_metatypes.lo -MD -MP -MF $(DEPDIR)/libextractor_la-extractor_metatypes.Tpo -c -o libextractor_la-extractor_metatypes.lo `test -f 'extractor_metatypes.c' || echo '$(srcdir)/'`extractor_metatypes.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libextractor_la-extractor_metatypes.Tpo $(DEPDIR)/libextractor_la-extractor_metatypes.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='extractor_metatypes.c' object='libextractor_la-extractor_metatypes.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libextractor_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libextractor_la-extractor_metatypes.lo `test -f 'extractor_metatypes.c' || echo '$(srcdir)/'`extractor_metatypes.c libextractor_la-extractor_plugpath.lo: extractor_plugpath.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libextractor_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libextractor_la-extractor_plugpath.lo -MD -MP -MF $(DEPDIR)/libextractor_la-extractor_plugpath.Tpo -c -o libextractor_la-extractor_plugpath.lo `test -f 'extractor_plugpath.c' || echo '$(srcdir)/'`extractor_plugpath.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libextractor_la-extractor_plugpath.Tpo $(DEPDIR)/libextractor_la-extractor_plugpath.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='extractor_plugpath.c' object='libextractor_la-extractor_plugpath.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libextractor_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libextractor_la-extractor_plugpath.lo `test -f 'extractor_plugpath.c' || echo '$(srcdir)/'`extractor_plugpath.c libextractor_la-extractor_plugins.lo: extractor_plugins.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libextractor_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libextractor_la-extractor_plugins.lo -MD -MP -MF $(DEPDIR)/libextractor_la-extractor_plugins.Tpo -c -o libextractor_la-extractor_plugins.lo `test -f 'extractor_plugins.c' || echo '$(srcdir)/'`extractor_plugins.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libextractor_la-extractor_plugins.Tpo $(DEPDIR)/libextractor_la-extractor_plugins.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='extractor_plugins.c' object='libextractor_la-extractor_plugins.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libextractor_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libextractor_la-extractor_plugins.lo `test -f 'extractor_plugins.c' || echo '$(srcdir)/'`extractor_plugins.c libextractor_la-extractor_print.lo: extractor_print.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libextractor_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libextractor_la-extractor_print.lo -MD -MP -MF $(DEPDIR)/libextractor_la-extractor_print.Tpo -c -o libextractor_la-extractor_print.lo `test -f 'extractor_print.c' || echo '$(srcdir)/'`extractor_print.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libextractor_la-extractor_print.Tpo $(DEPDIR)/libextractor_la-extractor_print.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='extractor_print.c' object='libextractor_la-extractor_print.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libextractor_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libextractor_la-extractor_print.lo `test -f 'extractor_print.c' || echo '$(srcdir)/'`extractor_print.c libextractor_la-extractor_plugin_main.lo: extractor_plugin_main.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libextractor_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libextractor_la-extractor_plugin_main.lo -MD -MP -MF $(DEPDIR)/libextractor_la-extractor_plugin_main.Tpo -c -o libextractor_la-extractor_plugin_main.lo `test -f 'extractor_plugin_main.c' || echo '$(srcdir)/'`extractor_plugin_main.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libextractor_la-extractor_plugin_main.Tpo $(DEPDIR)/libextractor_la-extractor_plugin_main.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='extractor_plugin_main.c' object='libextractor_la-extractor_plugin_main.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libextractor_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libextractor_la-extractor_plugin_main.lo `test -f 'extractor_plugin_main.c' || echo '$(srcdir)/'`extractor_plugin_main.c libextractor_la-extractor.lo: extractor.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libextractor_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libextractor_la-extractor.lo -MD -MP -MF $(DEPDIR)/libextractor_la-extractor.Tpo -c -o libextractor_la-extractor.lo `test -f 'extractor.c' || echo '$(srcdir)/'`extractor.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libextractor_la-extractor.Tpo $(DEPDIR)/libextractor_la-extractor.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='extractor.c' object='libextractor_la-extractor.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libextractor_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libextractor_la-extractor.lo `test -f 'extractor.c' || echo '$(srcdir)/'`extractor.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags check-TESTS: $(TESTS) @failed=0; all=0; xfail=0; xpass=0; skip=0; \ srcdir=$(srcdir); export srcdir; \ list=' $(TESTS) '; \ $(am__tty_colors); \ if test -n "$$list"; then \ for tst in $$list; do \ if test -f ./$$tst; then dir=./; \ elif test -f $$tst; then dir=; \ else dir="$(srcdir)/"; fi; \ if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ all=`expr $$all + 1`; \ case " $(XFAIL_TESTS) " in \ *[\ \ ]$$tst[\ \ ]*) \ xpass=`expr $$xpass + 1`; \ failed=`expr $$failed + 1`; \ col=$$red; res=XPASS; \ ;; \ *) \ col=$$grn; res=PASS; \ ;; \ esac; \ elif test $$? -ne 77; then \ all=`expr $$all + 1`; \ case " $(XFAIL_TESTS) " in \ *[\ \ ]$$tst[\ \ ]*) \ xfail=`expr $$xfail + 1`; \ col=$$lgn; res=XFAIL; \ ;; \ *) \ failed=`expr $$failed + 1`; \ col=$$red; res=FAIL; \ ;; \ esac; \ else \ skip=`expr $$skip + 1`; \ col=$$blu; res=SKIP; \ fi; \ echo "$${col}$$res$${std}: $$tst"; \ done; \ if test "$$all" -eq 1; then \ tests="test"; \ All=""; \ else \ tests="tests"; \ All="All "; \ fi; \ if test "$$failed" -eq 0; then \ if test "$$xfail" -eq 0; then \ banner="$$All$$all $$tests passed"; \ else \ if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \ banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \ fi; \ else \ if test "$$xpass" -eq 0; then \ banner="$$failed of $$all $$tests failed"; \ else \ if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \ banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \ fi; \ fi; \ dashes="$$banner"; \ skipped=""; \ if test "$$skip" -ne 0; then \ if test "$$skip" -eq 1; then \ skipped="($$skip test was not run)"; \ else \ skipped="($$skip tests were not run)"; \ fi; \ test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ dashes="$$skipped"; \ fi; \ report=""; \ if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \ report="Please report to $(PACKAGE_BUGREPORT)"; \ test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \ dashes="$$report"; \ fi; \ dashes=`echo "$$dashes" | sed s/./=/g`; \ if test "$$failed" -eq 0; then \ col="$$grn"; \ else \ col="$$red"; \ fi; \ echo "$${col}$$dashes$${std}"; \ echo "$${col}$$banner$${std}"; \ test -z "$$skipped" || echo "$${col}$$skipped$${std}"; \ test -z "$$report" || echo "$${col}$$report$${std}"; \ echo "$${col}$$dashes$${std}"; \ test "$$failed" -eq 0; \ else :; fi distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS) $(MAKE) $(AM_MAKEFLAGS) check-TESTS check: check-recursive all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) install-binPROGRAMS: install-libLTLIBRARIES installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-binPROGRAMS clean-checkPROGRAMS clean-generic \ clean-libLTLIBRARIES clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-binPROGRAMS install-libLTLIBRARIES install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-libLTLIBRARIES .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) check-am \ ctags-recursive install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am check check-TESTS check-am clean clean-binPROGRAMS \ clean-checkPROGRAMS clean-generic clean-libLTLIBRARIES \ clean-libtool clean-noinstLTLIBRARIES ctags ctags-recursive \ distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-libLTLIBRARIES \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-recursive uninstall uninstall-am \ uninstall-binPROGRAMS uninstall-libLTLIBRARIES # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libextractor-1.3/src/main/extractor_plugpath.c0000644000175000017500000003407012245731275016612 00000000000000/* This file is part of libextractor. (C) 2002, 2003, 2004, 2005, 2006, 2009, 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file main/extractor_plugpath.c * @brief determine path where plugins are installed * @author Christian Grothoff */ #include "platform.h" #include "plibc.h" #include "extractor.h" #include #include #include #include #include "extractor_plugpath.h" #include "extractor_logging.h" /** * Function to call on paths. * * @param cls closure * @param path a directory path */ typedef void (*EXTRACTOR_PathProcessor) (void *cls, const char *path); /** * Remove a trailing '/bin/' from 'in' (if present). * * @param in input string, modified * @return NULL if 'in' is NULL, otherwise 'in' with '/bin/' removed */ static char * cut_bin (char * in) { size_t p; if (NULL == in) return NULL; p = strlen (in); if (p < 4) return in; if ( ('/' == in[p-1]) || ('\\' == in[p-1]) ) in[--p] = '\0'; if (0 == strcmp (&in[p-4], "/bin")) { in[p-4] = '\0'; p -= 4; } else if (0 == strcmp (&in[p-4], "\\bin")) { in[p-4] = '\0'; p -= 4; } return in; } #if GNU_LINUX /** * Try to determine path by reading /proc/PID/exe or * /proc/PID/maps. * * Note that this may fail if LE is installed in one directory * and the binary linking against it sits elsewhere. */ static char * get_path_from_proc_exe () { char fn[64]; char line[1024]; char dir[1024]; char *lnk; char *ret; char *lestr; ssize_t size; FILE *f; snprintf (fn, sizeof (fn), "/proc/%u/maps", getpid ()); if (NULL != (f = FOPEN (fn, "r"))) { while (NULL != fgets (line, 1024, f)) { if ( (1 == sscanf (line, "%*x-%*x %*c%*c%*c%*c %*x %*2x:%*2x %*u%*[ ]%s", dir)) && (NULL != (lestr = strstr (dir, "libextractor")) ) ) { lestr[0] = '\0'; fclose (f); return strdup (dir); } } fclose (f); } snprintf (fn, sizeof (fn), "/proc/%u/exe", getpid ()); if (NULL == (lnk = malloc (1029))) /* 1024 + 6 for "/lib/" catenation */ return NULL; size = readlink (fn, lnk, 1023); if ( (size <= 0) || (size >= 1024) ) { free (lnk); return NULL; } lnk[size] = '\0'; while ( ('/' != lnk[size]) && (size > 0) ) size--; if ( (size < 4) || ('/' != lnk[size-4]) ) { /* not installed in "/bin/" -- binary path probably useless */ free (lnk); return NULL; } lnk[size] = '\0'; lnk = cut_bin (lnk); if (NULL == (ret = realloc (lnk, strlen(lnk) + 6))) { LOG_STRERROR ("realloc"); free (lnk); return NULL; } strcat (ret, "/lib/"); /* guess "lib/" as the library dir */ return ret; } #endif #if WINDOWS static HMODULE le_dll = NULL; BOOL WINAPI DllMain (HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) { switch (fdwReason) { case DLL_PROCESS_ATTACH: le_dll = (HMODULE) hinstDLL; break; } return TRUE; } /** * Try to determine path with win32-specific function */ static char * get_path_from_module_filename () { char *path; char *ret; char *idx; if (NULL == (path = malloc (4103))) /* 4096+nil+6 for "/lib/" catenation */ return NULL; GetModuleFileName (le_dll, path, 4096); idx = path + strlen (path); while ( (idx > path) && ('\\' != *idx) && ('/' != *idx) ) idx--; *idx = '\0'; path = cut_bin (path); if (NULL == (ret = realloc (path, strlen(path) + 6))) { LOG_STRERROR ("realloc"); free (path); return NULL; } strcat (ret, "/lib/"); /* guess "lib/" as the library dir */ return ret; } #endif #if DARWIN #include #include /** * Signature of the '_NSGetExecutablePath" function. * * @param buf where to write the path * @param number of bytes available in 'buf' * @return 0 on success, otherwise desired number of bytes is stored in 'bufsize' */ typedef int (*MyNSGetExecutablePathProto) (char *buf, size_t *bufsize); /** * Try to obtain the path of our executable using '_NSGetExecutablePath'. * * @return NULL on error */ static char * get_path_from_NSGetExecutablePath () { static char zero; char *path; char *ret; size_t len; MyNSGetExecutablePathProto func; path = NULL; if (NULL == (func = (MyNSGetExecutablePathProto) dlsym (RTLD_DEFAULT, "_NSGetExecutablePath"))) return NULL; path = &zero; len = 0; /* get the path len, including the trailing \0 */ (void) func (path, &len); if (0 == len) return NULL; if (NULL == (path = malloc (len))) { LOG_STRERROR ("malloc"); return NULL; } if (0 != func (path, &len)) { free (path); return NULL; } len = strlen (path); while ((path[len] != '/') && (len > 0)) len--; path[len] = '\0'; if (NULL != strstr (path, "/lib")) return path; path = cut_bin (path); if (NULL == (ret = realloc (path, strlen (path) + 5))) { LOG_STRERROR ("realloc"); free (path); return NULL; } strcat (ret, "/lib/"); return ret; } /** * Try to obtain the path of our executable using '_dyld_image' API. * * @return NULL on error */ static char * get_path_from_dyld_image () { const char *path; char *s; char *p; unsigned int i; int c; c = _dyld_image_count (); for (i = 0; i < c; i++) { if (((void *) _dyld_get_image_header (i)) != (void *) &_mh_dylib_header) continue; path = _dyld_get_image_name (i); if ( (NULL == path) || (0 == strlen (path)) ) continue; if (NULL == (p = strdup (path))) { LOG_STRERROR ("strdup"); return NULL; } s = p + strlen (p); while ( (s > p) && ('/' != *s) ) s--; s++; *s = '\0'; return p; } return NULL; } #endif /** * Return the actual path to a file found in the current * PATH environment variable. * * @return path to binary, NULL if not found */ static char * get_path_from_PATH() { struct stat sbuf; char *path; char *pos; char *end; char *buf; char *ret; const char *p; if (NULL == (p = getenv ("PATH"))) return NULL; if (NULL == (path = strdup (p))) /* because we write on it */ { LOG_STRERROR ("strdup"); return NULL; } if (NULL == (buf = malloc (strlen (path) + 20))) { LOG_STRERROR ("malloc"); free (path); return NULL; } pos = path; while (NULL != (end = strchr(pos, ':'))) { *end = '\0'; sprintf (buf, "%s/%s", pos, "extract"); if (0 == stat(buf, &sbuf)) { free (buf); if (NULL == (pos = strdup (pos))) { LOG_STRERROR ("strdup"); free (path); return NULL; } free (path); pos = cut_bin (pos); if (NULL == (ret = realloc (pos, strlen (pos) + 6))) { LOG_STRERROR ("realloc"); free (pos); return NULL; } strcat (ret, "/lib/"); return ret; } pos = end + 1; } sprintf (buf, "%s/%s", pos, "extract"); if (0 == stat (buf, &sbuf)) { pos = strdup (pos); free (buf); free (path); if (NULL == pos) return NULL; pos = cut_bin (pos); if (NULL == (ret = realloc (pos, strlen (pos) + 6))) { LOG_STRERROR ("realloc"); free (pos); return NULL; } strcat (ret, "/lib/"); return ret; } free (buf); free (path); return NULL; } /** * Create a filename by appending 'fname' to 'path'. * * @param path the base path * @param fname the filename to append * @return '$path/$fname', NULL on error */ static char * append_to_dir (const char *path, const char *fname) { char *ret; size_t slen; if (0 == (slen = strlen (path))) return NULL; if (DIR_SEPARATOR == fname[0]) fname++; ret = malloc (slen + strlen(fname) + 2); if (NULL == ret) return NULL; #ifdef MINGW if ('\\' == path[slen-1]) sprintf (ret, "%s%s", path, fname); else sprintf (ret, "%s\\%s", path, fname); #else if ('/' == path[slen-1]) sprintf (ret, "%s%s", path, fname); else sprintf (ret, "%s/%s", path, fname); #endif return ret; } /** * Iterate over all paths where we expect to find GNU libextractor * plugins. * * @param pp function to call for each path * @param pp_cls cls argument for pp. */ static void get_installation_paths (EXTRACTOR_PathProcessor pp, void *pp_cls) { const char *p; char *path; char *prefix; char *d; char *saveptr; prefix = NULL; if (NULL != (p = getenv ("LIBEXTRACTOR_PREFIX"))) { if (NULL == (d = strdup (p))) { LOG_STRERROR ("strdup"); return; } for (prefix = strtok_r (d, PATH_SEPARATOR_STR, &saveptr); NULL != prefix; prefix = strtok_r (NULL, PATH_SEPARATOR_STR, &saveptr)) pp (pp_cls, prefix); free (d); return; } #if GNU_LINUX if (NULL == prefix) prefix = get_path_from_proc_exe (); #endif #if WINDOWS if (NULL == prefix) prefix = get_path_from_module_filename (); #endif #if DARWIN if (NULL == prefix) prefix = get_path_from_NSGetExecutablePath (); if (NULL == prefix) prefix = get_path_from_dyld_image (); #endif if (NULL == prefix) prefix = get_path_from_PATH (); pp (pp_cls, PLUGININSTDIR); if (NULL == prefix) return; path = append_to_dir (prefix, PLUGINDIR); if (NULL != path) { if (0 != strcmp (path, PLUGININSTDIR)) pp (pp_cls, path); free (path); } free (prefix); } /** * Closure for 'find_plugin_in_path'. */ struct SearchContext { /** * Name of the plugin we are looking for. */ const char *short_name; /** * Location for storing the path to the plugin upon success. */ char *path; }; /** * Load all plugins from the given directory. * * @param cls pointer to the "struct EXTRACTOR_PluginList*" to extend * @param path path to a directory with plugins */ static void find_plugin_in_path (void *cls, const char *path) { struct SearchContext *sc = cls; DIR *dir; struct dirent *ent; const char *sym_name; char *sym; char *dot; size_t dlen; if (NULL != sc->path) return; if (NULL == (dir = OPENDIR (path))) return; while (NULL != (ent = READDIR (dir))) { if ('.' == ent->d_name[0]) continue; dlen = strlen (ent->d_name); if ( (dlen < 4) || ( (0 != strcmp (&ent->d_name[dlen-3], ".so")) && (0 != strcasecmp (&ent->d_name[dlen-4], ".dll")) ) ) continue; /* only load '.so' and '.dll' */ if (NULL == (sym_name = strrchr (ent->d_name, '_'))) continue; sym_name++; if (NULL == (sym = strdup (sym_name))) { LOG_STRERROR ("strdup"); CLOSEDIR (dir); return; } dot = strchr (sym, '.'); if (NULL != dot) *dot = '\0'; if (0 == strcmp (sym, sc->short_name)) { sc->path = append_to_dir (path, ent->d_name); free (sym); break; } free (sym); } CLOSEDIR (dir); } /** * Given a short name of a library (i.e. "mime"), find * the full path of the respective plugin. */ char * EXTRACTOR_find_plugin_ (const char *short_name) { struct SearchContext sc; sc.path = NULL; sc.short_name = short_name; get_installation_paths (&find_plugin_in_path, &sc); return sc.path; } /** * Closure for 'load_plugins_from_dir'. */ struct DefaultLoaderContext { /** * Accumulated result list. */ struct EXTRACTOR_PluginList *res; /** * Flags to use for all plugins. */ enum EXTRACTOR_Options flags; }; /** * Load all plugins from the given directory. * * @param cls pointer to the "struct EXTRACTOR_PluginList*" to extend * @param path path to a directory with plugins */ static void load_plugins_from_dir (void *cls, const char *path) { struct DefaultLoaderContext *dlc = cls; DIR *dir; struct dirent *ent; const char *sym_name; char *sym; char *dot; size_t dlen; if (NULL == (dir = opendir (path))) return; while (NULL != (ent = readdir (dir))) { if (ent->d_name[0] == '.') continue; dlen = strlen (ent->d_name); if ( (dlen < 4) || ( (0 != strcmp (&ent->d_name[dlen-3], ".so")) && (0 != strcasecmp (&ent->d_name[dlen-4], ".dll")) ) ) continue; /* only load '.so' and '.dll' */ if (NULL == (sym_name = strrchr (ent->d_name, '_'))) continue; sym_name++; if (NULL == (sym = strdup (sym_name))) { LOG_STRERROR ("strdup"); closedir (dir); return; } if (NULL != (dot = strchr (sym, '.'))) *dot = '\0'; dlc->res = EXTRACTOR_plugin_add (dlc->res, sym, NULL, dlc->flags); free (sym); } closedir (dir); } /** * Load the default set of plugins. The default can be changed * by setting the LIBEXTRACTOR_LIBRARIES environment variable. * If it is set to "env", then this function will return * EXTRACTOR_plugin_add_config (NULL, env, flags). Otherwise, * it will load all of the installed plugins and return them. * * @param flags options for all of the plugins loaded * @return the default set of plugins, NULL if no plugins were found */ struct EXTRACTOR_PluginList * EXTRACTOR_plugin_add_defaults (enum EXTRACTOR_Options flags) { struct DefaultLoaderContext dlc; char *env; env = getenv ("LIBEXTRACTOR_LIBRARIES"); if (NULL != env) return EXTRACTOR_plugin_add_config (NULL, env, flags); dlc.res = NULL; dlc.flags = flags; get_installation_paths (&load_plugins_from_dir, &dlc); return dlc.res; } /* end of extractor_plugpath.c */ libextractor-1.3/src/main/extractor_logging.c0000644000175000017500000000333412007275723016410 00000000000000/* This file is part of libextractor. (C) 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file main/extractor_logging.c * @brief logging API for GNU libextractor * @author Christian Grothoff */ #include "platform.h" #include "extractor_logging.h" #if DEBUG /** * Log function. * * @param file name of file with the error * @param line line number with the error * @param ... log message and arguments */ void EXTRACTOR_log_ (const char *file, int line, const char *format, ...) { va_list va; fprintf (stderr, "EXTRACTOR %s:%d ", file, line); va_start (va, format); vfprintf (stderr, format, va); va_end (va); fflush (stderr); } #endif /** * Abort the program reporting an assertion failure * * @param file filename with the failure * @param line line number with the failure */ void EXTRACTOR_abort_ (const char *file, int line) { #if DEBUG EXTRACTOR_log_ (file, line, "Assertion failed.\n"); #endif ABORT (); } /* end of extractor_logging.c */ libextractor-1.3/src/main/getopt.h0000644000175000017500000001074311734133541014175 00000000000000/* Declarations for getopt. Copyright (C) 1989,90,91,92,93,94,96,97 Free Software Foundation, Inc. NOTE: The canonical source of this file is maintained with the GNU C Library. Bugs can be reported to bug-glibc@prep.ai.mit.edu. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #ifndef _GETOPT_H #define _GETOPT_H 1 #include "config.h" #ifdef __cplusplus extern "C" { #endif /* For communication from `getopt' to the caller. When `getopt' finds an option that takes an argument, the argument value is returned here. Also, when `ordering' is RETURN_IN_ORDER, each non-option ARGV-element is returned here. */ extern char *optarg; /* Index in ARGV of the next element to be scanned. This is used for communication to and from the caller and for communication between successive calls to `getopt'. On entry to `getopt', zero means this is the first call; initialize. When `getopt' returns -1, this is the index of the first of the non-option elements that the caller should itself scan. Otherwise, `optind' communicates from one call to the next how much of ARGV has been scanned so far. */ extern int optind; /* Callers store zero here to inhibit the error message `getopt' prints for unrecognized options. */ extern int opterr; /* Set to an option character which was unrecognized. */ extern int optopt; /* Describe the long-named options requested by the application. The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector of `struct option' terminated by an element containing a name which is zero. The field `has_arg' is: no_argument (or 0) if the option does not take an argument, required_argument (or 1) if the option requires an argument, optional_argument (or 2) if the option takes an optional argument. If the field `flag' is not NULL, it points to a variable that is set to the value given in the field `val' when the option is found, but left unchanged if the option is not found. To have a long-named option do something other than set an `int' to a compiled-in constant, such as set a value from `optarg', set the option's `flag' field to zero and its `val' field to a nonzero value (the equivalent single-letter option character, if there is one). For long options that have a zero `flag' field, `getopt' returns the contents of the `val' field. */ struct option { #if defined (__STDC__) && __STDC__ const char *name; #else char *name; #endif /* has_arg can't be an enum because some compilers complain about type mismatches in all the code that assumes it is an int. */ int has_arg; int *flag; int val; }; /* Names for the values of the `has_arg' field of `struct option'. */ #define no_argument 0 #define required_argument 1 #define optional_argument 2 #if defined (__STDC__) && __STDC__ #ifdef __GNU_LIBRARY__ /* Many other libraries have conflicting prototypes for getopt, with differences in the consts, in stdlib.h. To avoid compilation errors, only prototype getopt for the GNU C library. */ extern int getopt (int argc, char *const *argv, const char *shortopts); #else /* not __GNU_LIBRARY__ */ extern int getopt (); #endif /* __GNU_LIBRARY__ */ extern int getopt_long (int argc, char *const *argv, const char *shortopts, const struct option *longopts, int *longind); extern int getopt_long_only (int argc, char *const *argv, const char *shortopts, const struct option *longopts, int *longind); /* Internal only. Users should not call this directly. */ extern int _getopt_internal (int argc, char *const *argv, const char *shortopts, const struct option *longopts, int *longind, int long_only); #else /* not __STDC__ */ extern int getopt (); extern int getopt_long (); extern int getopt_long_only (); extern int _getopt_internal (); #endif /* __STDC__ */ #ifdef __cplusplus } #endif #endif /* _GETOPT_H */ libextractor-1.3/src/main/extractor_plugin_main.c0000644000175000017500000004364112255336022017264 00000000000000/* This file is part of libextractor. (C) 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file main/extractor_plugin_main.c * @brief main loop for an out-of-process plugin * @author Christian Grothoff */ #include "platform.h" #include "plibc.h" #include "extractor.h" #include "extractor_common.h" #include "extractor_datasource.h" #include "extractor_plugins.h" #include "extractor_ipc.h" #include "extractor_logging.h" #include "extractor_plugin_main.h" #include #include #if GNU_LINUX #include #include #include #endif /** * Closure we use for processing requests inside the helper process. */ struct ProcessingContext { /** * Our plugin handle. */ struct EXTRACTOR_PluginList *plugin; /** * Shared memory area. */ void *shm; /** * Overall size of the file. */ uint64_t file_size; /** * Current read offset when reading from the SHM. */ uint64_t read_position; /** * Current offset of the SHM in the file. */ uint64_t shm_off; /** * Handle to the shared memory. */ int shm_id; /** * Size of the shared memory map. */ uint32_t shm_map_size; /** * Number of bytes ready in SHM. */ uint32_t shm_ready_bytes; /** * Input stream. */ int in; /** * Output stream. */ int out; }; /** * Moves current absolute buffer position to 'pos' in 'whence' mode. * Will move logical position withouth shifting the buffer, if possible. * Will not move beyond the end of file. * * @param plugin plugin context * @param pos position to move to * @param whence seek mode (SEEK_CUR, SEEK_SET, SEEK_END) * @return new absolute position, -1 on error */ static int64_t plugin_env_seek (void *cls, int64_t pos, int whence) { struct ProcessingContext *pc = cls; struct SeekRequestMessage srm; struct UpdateMessage um; uint64_t npos; unsigned char reply; uint16_t wval; switch (whence) { case SEEK_CUR: if ( (pos < 0) && (pc->read_position < - pos) ) { LOG ("Invalid seek operation\n"); return -1; } if ((pos > 0) && ((pc->read_position + pos < pc->read_position) || (pc->read_position + pos > pc->file_size))) { LOG ("Invalid seek operation\n"); return -1; } npos = (uint64_t) (pc->read_position + pos); wval = 0; break; case SEEK_END: if (pos > 0) { LOG ("Invalid seek operation\n"); return -1; } if (UINT64_MAX == pc->file_size) { wval = 2; npos = (uint64_t) - pos; break; } pos = (int64_t) (pc->file_size + pos); /* fall-through! */ case SEEK_SET: if ( (pos < 0) || (pc->file_size < pos) ) { LOG ("Invalid seek operation\n"); return -1; } npos = (uint64_t) pos; wval = 0; break; default: LOG ("Invalid seek operation\n"); return -1; } if ( (pc->shm_off <= npos) && (pc->shm_off + pc->shm_ready_bytes > npos) && (0 == wval) ) { pc->read_position = npos; return (int64_t) npos; } /* need to seek */ srm.opcode = MESSAGE_SEEK; srm.reserved = 0; srm.whence = wval; srm.requested_bytes = pc->shm_map_size; if (0 == wval) { if (srm.requested_bytes > pc->file_size - npos) srm.requested_bytes = pc->file_size - npos; } else { srm.requested_bytes = npos; } srm.file_offset = npos; if (-1 == EXTRACTOR_write_all_ (pc->out, &srm, sizeof (srm))) { LOG ("Failed to send MESSAGE_SEEK\n"); return -1; } if (-1 == EXTRACTOR_read_all_ (pc->in, &reply, sizeof (reply))) { LOG ("Plugin `%s' failed to read response to MESSAGE_SEEK\n", pc->plugin->short_libname); return -1; } if (MESSAGE_UPDATED_SHM != reply) { LOG ("Unexpected reply %d to seek\n", reply); return -1; /* was likely a MESSAGE_DISCARD_STATE */ } if (-1 == EXTRACTOR_read_all_ (pc->in, &um.reserved, sizeof (um) - 1)) { LOG ("Failed to read MESSAGE_UPDATED_SHM\n"); return -1; } pc->shm_off = um.shm_off; pc->shm_ready_bytes = um.shm_ready_bytes; pc->file_size = um.file_size; if (2 == wval) { /* convert offset to be absolute from beginning of the file */ npos = pc->file_size - npos; } if ( (pc->shm_off <= npos) && ((pc->shm_off + pc->shm_ready_bytes > npos) || (pc->file_size == pc->shm_off)) ) { pc->read_position = npos; return (int64_t) npos; } /* oops, serious missunderstanding, we asked to seek and then were notified about a different position!? */ LOG ("Plugin `%s' got invalid MESSAGE_UPDATED_SHM in response to my %d-seek (%llu not in %llu-%llu)\n", pc->plugin->short_libname, (int) wval, (unsigned long long) npos, (unsigned long long) pc->shm_off, (unsigned long long) pc->shm_off + pc->shm_ready_bytes); return -1; } /** * Fills 'data' with a pointer to the data buffer. * * @param plugin plugin context * @param data location to store data pointer * @param count number of bytes to read * @return number of bytes (<= count) avalable in 'data', -1 on error */ static ssize_t plugin_env_read (void *cls, void **data, size_t count) { struct ProcessingContext *pc = cls; unsigned char *dp; *data = NULL; if ( (count + pc->read_position > pc->file_size) || (count + pc->read_position < pc->read_position) ) count = pc->file_size - pc->read_position; if ((((pc->read_position >= pc->shm_off + pc->shm_ready_bytes) && (pc->read_position < pc->file_size)) || (pc->read_position < pc->shm_off)) && (-1 == plugin_env_seek (pc, pc->read_position, SEEK_SET))) { LOG ("Failed to seek to satisfy read\n"); return -1; } if (pc->read_position + count > pc->shm_off + pc->shm_ready_bytes) count = pc->shm_off + pc->shm_ready_bytes - pc->read_position; dp = pc->shm; *data = &dp[pc->read_position - pc->shm_off]; pc->read_position += count; return count; } /** * Provide the overall file size to plugins. * * @param cls the 'struct ProcessingContext' * @return overall file size of the current file */ static uint64_t plugin_env_get_size (void *cls) { struct ProcessingContext *pc = cls; return pc->file_size; } /** * Function called by a plugin in a child process. Transmits * the meta data back to the parent process. * * @param cls closure, "struct ProcessingContext" with the FD for transmission * @param plugin_name name of the plugin that produced this value; * special values can be used (i.e. '' for zlib being * used in the main libextractor library and yielding * meta data). * @param type libextractor-type describing the meta data * @param format basic format information about data * @param data_mime_type mime-type of data (not of the original file); * can be NULL (if mime-type is not known) * @param data actual meta-data found * @param data_len number of bytes in data * @return 0 to continue extracting, 1 to abort (transmission error) */ static int plugin_env_send_proc (void *cls, const char *plugin_name, enum EXTRACTOR_MetaType type, enum EXTRACTOR_MetaFormat format, const char *data_mime_type, const char *data, size_t data_len) { struct ProcessingContext *pc = cls; struct MetaMessage mm; size_t mime_len; unsigned char reply; if (data_len > MAX_META_DATA) return 0; /* skip, too large */ if (NULL == data_mime_type) mime_len = 0; else mime_len = strlen (data_mime_type) + 1; if (mime_len > UINT16_MAX) mime_len = UINT16_MAX; mm.opcode = MESSAGE_META; mm.reserved = 0; mm.meta_type = type; mm.meta_format = (uint16_t) format; mm.mime_length = (uint16_t) mime_len; mm.value_size = (uint32_t) data_len; if ( (sizeof (mm) != EXTRACTOR_write_all_ (pc->out, &mm, sizeof (mm))) || (mime_len != EXTRACTOR_write_all_ (pc->out, data_mime_type, mime_len)) || (data_len != EXTRACTOR_write_all_ (pc->out, data, data_len)) ) { LOG ("Failed to send meta message\n"); return 1; } if (-1 == EXTRACTOR_read_all_ (pc->in, &reply, sizeof (reply))) { LOG ("Failed to read response to meta message\n"); return 1; } if (MESSAGE_DISCARD_STATE == reply) return 1; if (MESSAGE_CONTINUE_EXTRACTING != reply) { LOG ("Received unexpected reply to meta data: %d\n", reply); return 1; } return 0; } /** * Handle an init message. The opcode itself has already been read. * * @param pc processing context * @return 0 on success, -1 on error */ static int handle_init_message (struct ProcessingContext *pc) { struct InitMessage init; if (NULL != pc->shm) { LOG ("Cannot handle 'init' message, have already been initialized\n"); return -1; } if (sizeof (struct InitMessage) - 1 != EXTRACTOR_read_all_ (pc->in, &init.reserved, sizeof (struct InitMessage) - 1)) { LOG ("Failed to read 'init' message\n"); return -1; } if (init.shm_name_length > MAX_SHM_NAME) { LOG ("Invalid 'init' message\n"); return -1; } { char shm_name[init.shm_name_length + 1]; if (init.shm_name_length != EXTRACTOR_read_all_ (pc->in, shm_name, init.shm_name_length)) { LOG ("Failed to read 'init' message\n"); return -1; } shm_name[init.shm_name_length] = '\0'; pc->shm_map_size = init.shm_map_size; #if WINDOWS /* FIXME: storing pointer in an int */ pc->shm_id = OpenFileMapping (FILE_MAP_READ, FALSE, shm_name); if (NULL == pc->shm_id) return -1; pc->shm = MapViewOfFile (pc->shm_id, FILE_MAP_READ, 0, 0, 0); if (NULL == pc->shm) { CloseHandle (pc->shm_id); return -1; } #else pc->shm_id = shm_open (shm_name, O_RDONLY, 0); if (-1 == pc->shm_id) { LOG_STRERROR_FILE ("open", shm_name); return -1; } pc->shm = mmap (NULL, pc->shm_map_size, PROT_READ, MAP_SHARED, pc->shm_id, 0); if ( ((void*) -1) == pc->shm) { LOG_STRERROR_FILE ("mmap", shm_name); return -1; } #endif } return 0; } /** * Handle a start message. The opcode itself has already been read. * * @param pc processing context * @return 0 on success, -1 on error */ static int handle_start_message (struct ProcessingContext *pc) { struct StartMessage start; struct EXTRACTOR_ExtractContext ec; char done; if (sizeof (struct StartMessage) - 1 != EXTRACTOR_read_all_ (pc->in, &start.reserved, sizeof (struct StartMessage) - 1)) { LOG ("Failed to read 'start' message\n"); return -1; } pc->shm_ready_bytes = start.shm_ready_bytes; pc->file_size = start.file_size; pc->read_position = 0; pc->shm_off = 0; ec.cls = pc; ec.config = pc->plugin->plugin_options; ec.read = &plugin_env_read; ec.seek = &plugin_env_seek; ec.get_size = &plugin_env_get_size; ec.proc = &plugin_env_send_proc; pc->plugin->extract_method (&ec); done = MESSAGE_DONE; if (-1 == EXTRACTOR_write_all_ (pc->out, &done, sizeof (done))) { LOG ("Failed to write 'done' message\n"); return -1; } if ( (NULL != pc->plugin->specials) && (NULL != strstr (pc->plugin->specials, "force-kill")) ) { /* we're required to die after each file since this plugin only supports a single file at a time */ #if !WINDOWS fsync (pc->out); #else _commit (pc->out); #endif _exit (0); } return 0; } /** * Main loop function for plugins. Reads a message from the plugin * input pipe and acts on it. * * @param pc processing context */ static void process_requests (struct ProcessingContext *pc) { while (1) { unsigned char code; if (1 != EXTRACTOR_read_all_ (pc->in, &code, 1)) { LOG ("Failed to read next request\n"); break; } switch (code) { case MESSAGE_INIT_STATE: if (0 != handle_init_message (pc)) { LOG ("Failure to handle INIT\n"); return; } break; case MESSAGE_EXTRACT_START: if (0 != handle_start_message (pc)) { LOG ("Failure to handle START\n"); return; } break; case MESSAGE_UPDATED_SHM: LOG ("Illegal message\n"); /* not allowed here, we're not waiting for SHM to move! */ return; case MESSAGE_DISCARD_STATE: /* odd, we're already in the start state... */ continue; default: LOG ("Received invalid messag %d\n", (int) code); /* error, unexpected message */ return; } } } /** * Open '/dev/null' and make the result the given * file descriptor. * * @param target_fd desired FD to point to /dev/null * @param flags open flags (O_RDONLY, O_WRONLY) */ static void open_dev_null (int target_fd, int flags) { int fd; #ifndef WINDOWS fd = open ("/dev/null", flags); #else fd = open ("\\\\?\\NUL", flags); #endif if (-1 == fd) { LOG_STRERROR_FILE ("open", "/dev/null"); return; /* good luck */ } if (fd == target_fd) return; /* already done */ if (-1 == dup2 (fd, target_fd)) { LOG_STRERROR ("dup2"); (void) close (fd); return; /* good luck */ } /* close original result from 'open' */ if (0 != close (fd)) LOG_STRERROR ("close"); } /** * 'main' function of the child process. Loads the plugin, * sets up its in and out pipes, then runs the request serving function. * * @param plugin extractor plugin to use * @param in stream to read from * @param out stream to write to */ void EXTRACTOR_plugin_main_ (struct EXTRACTOR_PluginList *plugin, int in, int out) { struct ProcessingContext pc; if (0 != EXTRACTOR_plugin_load_ (plugin)) { #if DEBUG fprintf (stderr, "Plugin `%s' failed to load!\n", plugin->short_libname); #endif return; } if ( (NULL != plugin->specials) && (NULL != strstr (plugin->specials, "close-stderr"))) { if (0 != close (2)) LOG_STRERROR ("close"); open_dev_null (2, O_WRONLY); } if ( (NULL != plugin->specials) && (NULL != strstr (plugin->specials, "close-stdout"))) { if (0 != close (1)) LOG_STRERROR ("close"); open_dev_null (1, O_WRONLY); } pc.plugin = plugin; pc.in = in; pc.out = out; pc.shm_id = -1; pc.shm = NULL; pc.shm_map_size = 0; process_requests (&pc); LOG ("IPC error; plugin `%s' terminates!\n", plugin->short_libname); #if WINDOWS if (NULL != pc.shm) UnmapViewOfFile (pc.shm); if (NULL != pc.shm_id) CloseHandle (pc.shm_id); #else if ( (NULL != pc.shm) && (((void*) 1) != pc.shm) ) munmap (pc.shm, pc.shm_map_size); if (-1 != pc.shm_id) { if (0 != close (pc.shm_id)) LOG_STRERROR ("close"); } #endif } #if WINDOWS /** * Reads plugin data from the LE server process. * Also initializes allocation granularity (duh...). * * @param fd the pipe to read from * @return newly allocated plugin context */ static struct EXTRACTOR_PluginList * read_plugin_data (int fd) { struct EXTRACTOR_PluginList *ret; SYSTEM_INFO si; size_t i; // FIXME: check for errors from 'EXTRACTOR_read_all_'! if (NULL == (ret = malloc (sizeof (struct EXTRACTOR_PluginList)))) { LOG_STRERROR ("malloc"); return NULL; } memset (ret, 0, sizeof (struct EXTRACTOR_PluginList)); /*GetSystemInfo (&si); ret->allocation_granularity = si.dwAllocationGranularity;*/ EXTRACTOR_read_all_ (fd, &i, sizeof (size_t)); if (NULL == (ret->libname = malloc (i))) { free (ret); return NULL; } EXTRACTOR_read_all_ (fd, ret->libname, i); ret->libname[i - 1] = '\0'; EXTRACTOR_read_all_ (fd, &i, sizeof (size_t)); if (NULL == (ret->short_libname = malloc (i))) { free (ret->libname); free (ret); return NULL; } EXTRACTOR_read_all_ (fd, ret->short_libname, i); ret->short_libname[i - 1] = '\0'; EXTRACTOR_read_all_ (fd, &i, sizeof (size_t)); if (0 == i) { ret->plugin_options = NULL; return ret; } if (NULL == (ret->plugin_options = malloc (i))) { free (ret->short_libname); free (ret->libname); free (ret); return NULL; } EXTRACTOR_read_all_ (fd, ret->plugin_options, i); ret->plugin_options[i - 1] = '\0'; return ret; } /** * FIXME: document. */ void CALLBACK RundllEntryPoint (HWND hwnd, HINSTANCE hinst, LPSTR lpszCmdLine, int nCmdShow) { struct EXTRACTOR_PluginList *plugin; intptr_t in_h; intptr_t out_h; int in; int out; sscanf (lpszCmdLine, "%lu %lu", &in_h, &out_h); in = _open_osfhandle (in_h, _O_RDONLY); out = _open_osfhandle (out_h, 0); setmode (in, _O_BINARY); setmode (out, _O_BINARY); if (NULL == (plugin = read_plugin_data (in))) { close (in); close (out); return; } EXTRACTOR_plugin_main_ (plugin, in, out); close (in); close (out); /* libgobject may crash us hard if we LoadLibrary() it directly or * indirectly, and then exit normally (causing FreeLibrary() to be * called by the OS) or call FreeLibrary() on it directly or * indirectly. * By terminating here we alleviate that problem. */ TerminateProcess (GetCurrentProcess (), 0); } /** * FIXME: document. */ void CALLBACK RundllEntryPointA (HWND hwnd, HINSTANCE hinst, LPSTR lpszCmdLine, int nCmdShow) { return RundllEntryPoint (hwnd, hinst, lpszCmdLine, nCmdShow); } #endif libextractor-1.3/src/main/test_trivial.c0000644000175000017500000000370412021444173015372 00000000000000/* This file is part of libextractor. (C) 2002, 2003, 2004, 2005, 2006, 2009 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file main/test_trivial.c * @brief trivial testcase for libextractor plugin loading * @author Christian Grothoff */ #include "platform.h" #include "extractor.h" static int testLoadPlugins (enum EXTRACTOR_Options policy) { struct EXTRACTOR_PluginList *pl; if (NULL == (pl = EXTRACTOR_plugin_add_defaults (policy))) { fprintf (stderr, "Failed to load default plugins!\n"); return 1; } EXTRACTOR_plugin_remove_all (pl); return 0; } int main (int argc, char *argv[]) { int ret = 0; /* change environment to find 'extractor_test' plugin which is not installed but should be in the current directory (or .libs) on 'make check' */ if (0 != putenv ("LIBEXTRACTOR_PREFIX=." PATH_SEPARATOR_STR ".libs/")) fprintf (stderr, "Failed to update my environment, plugin loading may fail: %s\n", strerror (errno)); ret += testLoadPlugins (EXTRACTOR_OPTION_DEFAULT_POLICY); ret += testLoadPlugins (EXTRACTOR_OPTION_DEFAULT_POLICY); ret += testLoadPlugins (EXTRACTOR_OPTION_DEFAULT_POLICY); return ret; } /* end of test_trivial.c */ libextractor-1.3/src/main/getopt.c0000644000175000017500000007315012030270204014155 00000000000000/* Getopt for GNU. NOTE: getopt is now part of the C library, so if you don't know what "Keep this file name-space clean" means, talk to roland@gnu.ai.mit.edu before changing it! Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc. NOTE: The canonical source of this file is maintained with the GNU C Library. Bugs can be reported to bug-glibc@prep.ai.mit.edu. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* This tells Alpha OSF/1 not to define a getopt prototype in . Ditto for AIX 3.2 and . */ #ifndef _NO_PROTO #define _NO_PROTO #endif #include "config.h" #if !defined (__STDC__) || !__STDC__ /* This is a separate conditional since some stdc systems reject `defined (const)'. */ #ifndef const #define const #endif #endif #include /* Comment out all this code if we are using the GNU C Library, and are not actually compiling the library itself. This code is part of the GNU C Library, but also included in many other GNU distributions. Compiling and linking in this code is a waste when using the GNU C library (especially if it is a shared library). Rather than having every GNU program understand `configure --with-gnu-libc' and omit the object files, it is simpler to just do this in the source for each such file. */ #define GETOPT_INTERFACE_VERSION 2 #if !defined (_LIBC) && defined (__GLIBC__) && __GLIBC__ >= 2 #include #if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION #define ELIDE_CODE #endif #endif #ifndef ELIDE_CODE /* This needs to come after some library #include to get __GNU_LIBRARY__ defined. */ #ifdef __GNU_LIBRARY__ /* Don't include stdlib.h for non-GNU C libraries because some of them contain conflicting prototypes for getopt. */ #include #include #endif /* GNU C library. */ #ifdef VMS #include #endif #if HAVE_STRING_H #include #endif #if defined (WIN32) && !defined (__CYGWIN32__) /* It's not Unix, really. See? Capital letters. */ #include #define getpid() GetCurrentProcessId() #endif #ifndef _ /* This is for other GNU distributions with internationalized messages. When compiling libc, the _ macro is predefined. */ #ifdef NEVER_HAVE_LIBINTL_H # include # define _(msgid) gettext (msgid) #else # define _(msgid) (msgid) #endif #endif /* This version of `getopt' appears to the caller like standard Unix `getopt' but it behaves differently for the user, since it allows the user to intersperse the options with the other arguments. As `getopt' works, it permutes the elements of ARGV so that, when it is done, all the options precede everything else. Thus all application programs are extended to handle flexible argument order. Setting the environment variable POSIXLY_CORRECT disables permutation. Then the behavior is completely standard. GNU application programs can use a third alternative mode in which they can distinguish the relative order of options and other arguments. */ #include "getopt.h" /* For communication from `getopt' to the caller. When `getopt' finds an option that takes an argument, the argument value is returned here. Also, when `ordering' is RETURN_IN_ORDER, each non-option ARGV-element is returned here. */ char *optarg = NULL; /* Index in ARGV of the next element to be scanned. This is used for communication to and from the caller and for communication between successive calls to `getopt'. On entry to `getopt', zero means this is the first call; initialize. When `getopt' returns -1, this is the index of the first of the non-option elements that the caller should itself scan. Otherwise, `optind' communicates from one call to the next how much of ARGV has been scanned so far. */ /* 1003.2 says this must be 1 before any call. */ int optind = 1; /* Formerly, initialization of getopt depended on optind==0, which causes problems with re-calling getopt as programs generally don't know that. */ int __getopt_initialized = 0; /* The next char to be scanned in the option-element in which the last option character we returned was found. This allows us to pick up the scan where we left off. If this is zero, or a null string, it means resume the scan by advancing to the next ARGV-element. */ static char *nextchar; /* Callers store zero here to inhibit the error message for unrecognized options. */ int opterr = 1; /* Set to an option character which was unrecognized. This must be initialized on some systems to avoid linking in the system's own getopt implementation. */ int optopt = '?'; /* Describe how to deal with options that follow non-option ARGV-elements. If the caller did not specify anything, the default is REQUIRE_ORDER if the environment variable POSIXLY_CORRECT is defined, PERMUTE otherwise. REQUIRE_ORDER means don't recognize them as options; stop option processing when the first non-option is seen. This is what Unix does. This mode of operation is selected by either setting the environment variable POSIXLY_CORRECT, or using `+' as the first character of the list of option characters. PERMUTE is the default. We permute the contents of ARGV as we scan, so that eventually all the non-options are at the end. This allows options to be given in any order, even with programs that were not written to expect this. RETURN_IN_ORDER is an option available to programs that were written to expect options and other ARGV-elements in any order and that care about the ordering of the two. We describe each non-option ARGV-element as if it were the argument of an option with character code 1. Using `-' as the first character of the list of option characters selects this mode of operation. The special argument `--' forces an end of option-scanning regardless of the value of `ordering'. In the case of RETURN_IN_ORDER, only `--' can cause `getopt' to return -1 with `optind' != ARGC. */ static enum { REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER } ordering; /* Value of POSIXLY_CORRECT environment variable. */ static char *posixly_correct; #ifdef __GNU_LIBRARY__ /* We want to avoid inclusion of string.h with non-GNU libraries because there are many ways it can cause trouble. On some systems, it contains special magic macros that don't work in GCC. */ #include #define my_index strchr #else /* Avoid depending on library functions or files whose names are inconsistent. */ char *getenv (); static char * my_index (str, chr) const char *str; int chr; { while (*str) { if (*str == chr) return (char *) str; str++; } return 0; } /* If using GCC, we can safely declare strlen this way. If not using GCC, it is ok not to declare it. */ #ifdef __GNUC__ /* Note that Motorola Delta 68k R3V7 comes with GCC but not stddef.h. That was relevant to code that was here before. */ #if !defined (__STDC__) || !__STDC__ /* gcc with -traditional declares the built-in strlen to return int, and has done so at least since version 2.4.5. -- rms. */ extern int strlen (const char *); #endif /* not __STDC__ */ #if defined(__APPLE__) extern size_t strlen (const char *); #endif #endif /* __GNUC__ */ #endif /* not __GNU_LIBRARY__ */ /* Handle permutation of arguments. */ /* Describe the part of ARGV that contains non-options that have been skipped. `first_nonopt' is the index in ARGV of the first of them; `last_nonopt' is the index after the last of them. */ static int first_nonopt; static int last_nonopt; #ifdef _LIBC /* Bash 2.0 gives us an environment variable containing flags indicating ARGV elements that should not be considered arguments. */ /* Defined in getopt_init.c */ extern char *__getopt_nonoption_flags; static int nonoption_flags_max_len; static int nonoption_flags_len; static int original_argc; static char *const *original_argv; extern pid_t __libc_pid; /* Make sure the environment variable bash 2.0 puts in the environment is valid for the getopt call we must make sure that the ARGV passed to getopt is that one passed to the process. */ static void __attribute__ ((unused)) store_args_and_env (int argc, char *const *argv) { /* XXX This is no good solution. We should rather copy the args so that we can compare them later. But we must not use malloc(3). */ original_argc = argc; original_argv = argv; } text_set_element (__libc_subinit, store_args_and_env); # define SWAP_FLAGS(ch1, ch2) \ if (nonoption_flags_len > 0) \ { \ char __tmp = __getopt_nonoption_flags[ch1]; \ __getopt_nonoption_flags[ch1] = __getopt_nonoption_flags[ch2]; \ __getopt_nonoption_flags[ch2] = __tmp; \ } #else /* !_LIBC */ # define SWAP_FLAGS(ch1, ch2) #endif /* _LIBC */ /* Exchange two adjacent subsequences of ARGV. One subsequence is elements [first_nonopt,last_nonopt) which contains all the non-options that have been skipped so far. The other is elements [last_nonopt,optind), which contains all the options processed since those non-options were skipped. `first_nonopt' and `last_nonopt' are relocated so that they describe the new indices of the non-options in ARGV after they are moved. */ #if defined (__STDC__) && __STDC__ static void exchange (char **); #endif static void exchange (argv) char **argv; { int bottom = first_nonopt; int middle = last_nonopt; int top = optind; char *tem; /* Exchange the shorter segment with the far end of the longer segment. That puts the shorter segment into the right place. It leaves the longer segment in the right place overall, but it consists of two parts that need to be swapped next. */ #ifdef _LIBC /* First make sure the handling of the `__getopt_nonoption_flags' string can work normally. Our top argument must be in the range of the string. */ if (nonoption_flags_len > 0 && top >= nonoption_flags_max_len) { /* We must extend the array. The user plays games with us and presents new arguments. */ char *new_str = malloc (top + 1); if (new_str == NULL) nonoption_flags_len = nonoption_flags_max_len = 0; else { memcpy (new_str, __getopt_nonoption_flags, nonoption_flags_max_len); memset (&new_str[nonoption_flags_max_len], '\0', top + 1 - nonoption_flags_max_len); nonoption_flags_max_len = top + 1; __getopt_nonoption_flags = new_str; } } #endif while (top > middle && middle > bottom) { if (top - middle > middle - bottom) { /* Bottom segment is the short one. */ int len = middle - bottom; register int i; /* Swap it with the top part of the top segment. */ for (i = 0; i < len; i++) { tem = argv[bottom + i]; argv[bottom + i] = argv[top - (middle - bottom) + i]; argv[top - (middle - bottom) + i] = tem; SWAP_FLAGS (bottom + i, top - (middle - bottom) + i); } /* Exclude the moved bottom segment from further swapping. */ top -= len; } else { /* Top segment is the short one. */ int len = top - middle; register int i; /* Swap it with the bottom part of the bottom segment. */ for (i = 0; i < len; i++) { tem = argv[bottom + i]; argv[bottom + i] = argv[middle + i]; argv[middle + i] = tem; SWAP_FLAGS (bottom + i, middle + i); } /* Exclude the moved top segment from further swapping. */ bottom += len; } } /* Update records for the slots the non-options now occupy. */ first_nonopt += (optind - last_nonopt); last_nonopt = optind; } /* Initialize the internal data when the first call is made. */ #if defined (__STDC__) && __STDC__ static const char *_getopt_initialize (int, char *const *, const char *); #endif static const char * _getopt_initialize (argc, argv, optstring) int argc; char *const *argv; const char *optstring; { /* Start processing options with ARGV-element 1 (since ARGV-element 0 is the program name); the sequence of previously skipped non-option ARGV-elements is empty. */ first_nonopt = last_nonopt = optind; nextchar = NULL; posixly_correct = getenv ("POSIXLY_CORRECT"); /* Determine how to handle the ordering of options and nonoptions. */ if (optstring[0] == '-') { ordering = RETURN_IN_ORDER; ++optstring; } else if (optstring[0] == '+') { ordering = REQUIRE_ORDER; ++optstring; } else if (posixly_correct != NULL) ordering = REQUIRE_ORDER; else ordering = PERMUTE; #ifdef _LIBC if (posixly_correct == NULL && argc == original_argc && argv == original_argv) { if (nonoption_flags_max_len == 0) { if (__getopt_nonoption_flags == NULL || __getopt_nonoption_flags[0] == '\0') nonoption_flags_max_len = -1; else { const char *orig_str = __getopt_nonoption_flags; int len = nonoption_flags_max_len = strlen (orig_str); if (nonoption_flags_max_len < argc) nonoption_flags_max_len = argc; __getopt_nonoption_flags = (char *) malloc (nonoption_flags_max_len); if (__getopt_nonoption_flags == NULL) nonoption_flags_max_len = -1; else { memcpy (__getopt_nonoption_flags, orig_str, len); memset (&__getopt_nonoption_flags[len], '\0', nonoption_flags_max_len - len); } } } nonoption_flags_len = nonoption_flags_max_len; } else nonoption_flags_len = 0; #endif return optstring; } /* Scan elements of ARGV (whose length is ARGC) for option characters given in OPTSTRING. If an element of ARGV starts with '-', and is not exactly "-" or "--", then it is an option element. The characters of this element (aside from the initial '-') are option characters. If `getopt' is called repeatedly, it returns successively each of the option characters from each of the option elements. If `getopt' finds another option character, it returns that character, updating `optind' and `nextchar' so that the next call to `getopt' can resume the scan with the following option character or ARGV-element. If there are no more option characters, `getopt' returns -1. Then `optind' is the index in ARGV of the first ARGV-element that is not an option. (The ARGV-elements have been permuted so that those that are not options now come last.) OPTSTRING is a string containing the legitimate option characters. If an option character is seen that is not listed in OPTSTRING, return '?' after printing an error message. If you set `opterr' to zero, the error message is suppressed but we still return '?'. If a char in OPTSTRING is followed by a colon, that means it wants an arg, so the following text in the same ARGV-element, or the text of the following ARGV-element, is returned in `optarg'. Two colons mean an option that wants an optional arg; if there is text in the current ARGV-element, it is returned in `optarg', otherwise `optarg' is set to zero. If OPTSTRING starts with `-' or `+', it requests different methods of handling the non-option ARGV-elements. See the comments about RETURN_IN_ORDER and REQUIRE_ORDER, above. Long-named options begin with `--' instead of `-'. Their names may be abbreviated as long as the abbreviation is unique or is an exact match for some defined option. If they have an argument, it follows the option name in the same ARGV-element, separated from the option name by a `=', or else the in next ARGV-element. When `getopt' finds a long-named option, it returns 0 if that option's `flag' field is nonzero, the value of the option's `val' field if the `flag' field is zero. The elements of ARGV aren't really const, because we permute them. But we pretend they're const in the prototype to be compatible with other systems. LONGOPTS is a vector of `struct option' terminated by an element containing a name which is zero. LONGIND returns the index in LONGOPT of the long-named option found. It is only valid when a long-named option has been found by the most recent call. If LONG_ONLY is nonzero, '-' as well as '--' can introduce long-named options. */ int _getopt_internal (argc, argv, optstring, longopts, longind, long_only) int argc; char *const *argv; const char *optstring; const struct option *longopts; int *longind; int long_only; { optarg = NULL; if (optind == 0 || !__getopt_initialized) { if (optind == 0) optind = 1; /* Don't scan ARGV[0], the program name. */ optstring = _getopt_initialize (argc, argv, optstring); __getopt_initialized = 1; } /* Test whether ARGV[optind] points to a non-option argument. Either it does not have option syntax, or there is an environment flag from the shell indicating it is not an option. The later information is only used when the used in the GNU libc. */ #ifdef _LIBC #define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0' \ || (optind < nonoption_flags_len \ && __getopt_nonoption_flags[optind] == '1')) #else #define NONOPTION_P (argv[optind][0] != '-' || argv[optind][1] == '\0') #endif if (nextchar == NULL || *nextchar == '\0') { /* Advance to the next ARGV-element. */ /* Give FIRST_NONOPT & LAST_NONOPT rational values if OPTIND has been moved back by the user (who may also have changed the arguments). */ if (last_nonopt > optind) last_nonopt = optind; if (first_nonopt > optind) first_nonopt = optind; if (ordering == PERMUTE) { /* If we have just processed some options following some non-options, exchange them so that the options come first. */ if (first_nonopt != last_nonopt && last_nonopt != optind) exchange ((char **) argv); else if (last_nonopt != optind) first_nonopt = optind; /* Skip any additional non-options and extend the range of non-options previously skipped. */ while (optind < argc && NONOPTION_P) optind++; last_nonopt = optind; } /* The special ARGV-element `--' means premature end of options. Skip it like a null option, then exchange with previous non-options as if it were an option, then skip everything else like a non-option. */ if (optind != argc && !strcmp (argv[optind], "--")) { optind++; if (first_nonopt != last_nonopt && last_nonopt != optind) exchange ((char **) argv); else if (first_nonopt == last_nonopt) first_nonopt = optind; last_nonopt = argc; optind = argc; } /* If we have done all the ARGV-elements, stop the scan and back over any non-options that we skipped and permuted. */ if (optind == argc) { /* Set the next-arg-index to point at the non-options that we previously skipped, so the caller will digest them. */ if (first_nonopt != last_nonopt) optind = first_nonopt; return -1; } /* If we have come to a non-option and did not permute it, either stop the scan or describe it to the caller and pass it by. */ if (NONOPTION_P) { if (ordering == REQUIRE_ORDER) return -1; optarg = argv[optind++]; return 1; } /* We have found another option-ARGV-element. Skip the initial punctuation. */ nextchar = (argv[optind] + 1 + (longopts != NULL && argv[optind][1] == '-')); } /* Decode the current option-ARGV-element. */ /* Check whether the ARGV-element is a long option. If long_only and the ARGV-element has the form "-f", where f is a valid short option, don't consider it an abbreviated form of a long option that starts with f. Otherwise there would be no way to give the -f short option. On the other hand, if there's a long option "fubar" and the ARGV-element is "-fu", do consider that an abbreviation of the long option, just like "--fu", and not "-f" with arg "u". This distinction seems to be the most useful approach. */ if (longopts != NULL && (argv[optind][1] == '-' || (long_only && (argv[optind][2] || !my_index (optstring, argv[optind][1]))))) { char *nameend; const struct option *p; const struct option *pfound = NULL; int exact = 0; int ambig = 0; int indfound = -1; int option_index; for (nameend = nextchar; *nameend && *nameend != '='; nameend++) /* Do nothing. */ ; /* Test all long options for either exact match or abbreviated matches. */ for (p = longopts, option_index = 0; p->name; p++, option_index++) if (!strncmp (p->name, nextchar, nameend - nextchar)) { if ((unsigned int) (nameend - nextchar) == (unsigned int) strlen (p->name)) { /* Exact match found. */ pfound = p; indfound = option_index; exact = 1; break; } else if (pfound == NULL) { /* First nonexact match found. */ pfound = p; indfound = option_index; } else /* Second or later nonexact match found. */ ambig = 1; } if (ambig && !exact) { if (opterr) fprintf (stderr, _("%s: option `%s' is ambiguous\n"), argv[0], argv[optind]); nextchar += strlen (nextchar); optind++; optopt = 0; return '?'; } if (pfound != NULL) { option_index = indfound; optind++; if (*nameend) { /* Don't test has_arg with >, because some C compilers don't allow it to be used on enums. */ if (pfound->has_arg) optarg = nameend + 1; else { if (opterr) if (argv[optind - 1][1] == '-') /* --option */ fprintf (stderr, _ ("%s: option `--%s' doesn't allow an argument\n"), argv[0], pfound->name); else /* +option or -option */ fprintf (stderr, _ ("%s: option `%c%s' doesn't allow an argument\n"), argv[0], argv[optind - 1][0], pfound->name); nextchar += strlen (nextchar); optopt = pfound->val; return '?'; } } else if (pfound->has_arg == 1) { if (optind < argc) optarg = argv[optind++]; else { if (opterr) fprintf (stderr, _("%s: option `%s' requires an argument\n"), argv[0], argv[optind - 1]); nextchar += strlen (nextchar); optopt = pfound->val; return optstring[0] == ':' ? ':' : '?'; } } nextchar += strlen (nextchar); if (longind != NULL) *longind = option_index; if (pfound->flag) { *(pfound->flag) = pfound->val; return 0; } return pfound->val; } /* Can't find it as a long option. If this is not getopt_long_only, or the option starts with '--' or is not a valid short option, then it's an error. Otherwise interpret it as a short option. */ if (!long_only || argv[optind][1] == '-' || my_index (optstring, *nextchar) == NULL) { if (opterr) { if (argv[optind][1] == '-') /* --option */ fprintf (stderr, _("%s: unrecognized option `--%s'\n"), argv[0], nextchar); else /* +option or -option */ fprintf (stderr, _("%s: unrecognized option `%c%s'\n"), argv[0], argv[optind][0], nextchar); } nextchar = (char *) ""; optind++; optopt = 0; return '?'; } } /* Look at and handle the next short option-character. */ { char c = *nextchar++; char *temp = my_index (optstring, c); /* Increment `optind' when we start to process its last character. */ if (*nextchar == '\0') ++optind; if (temp == NULL || c == ':') { if (opterr) { if (posixly_correct) /* 1003.2 specifies the format of this message. */ fprintf (stderr, _("%s: illegal option -- %c\n"), argv[0], c); else fprintf (stderr, _("%s: invalid option -- %c\n"), argv[0], c); } optopt = c; return '?'; } /* Convenience. Treat POSIX -W foo same as long option --foo */ if (temp[0] == 'W' && temp[1] == ';') { char *nameend; const struct option *p; const struct option *pfound = NULL; int exact = 0; int ambig = 0; int indfound = 0; int option_index; /* This is an option that requires an argument. */ if (*nextchar != '\0') { optarg = nextchar; /* If we end this ARGV-element by taking the rest as an arg, we must advance to the next element now. */ optind++; } else if (optind == argc) { if (opterr) { /* 1003.2 specifies the format of this message. */ fprintf (stderr, _("%s: option requires an argument -- %c\n"), argv[0], c); } optopt = c; if (optstring[0] == ':') c = ':'; else c = '?'; return c; } else /* We already incremented `optind' once; increment it again when taking next ARGV-elt as argument. */ optarg = argv[optind++]; /* optarg is now the argument, see if it's in the table of longopts. */ for (nextchar = nameend = optarg; *nameend && *nameend != '='; nameend++) /* Do nothing. */ ; /* Test all long options for either exact match or abbreviated matches. */ for (p = longopts, option_index = 0; p->name; p++, option_index++) if (!strncmp (p->name, nextchar, nameend - nextchar)) { if ((unsigned int) (nameend - nextchar) == strlen (p->name)) { /* Exact match found. */ pfound = p; indfound = option_index; exact = 1; break; } else if (pfound == NULL) { /* First nonexact match found. */ pfound = p; indfound = option_index; } else /* Second or later nonexact match found. */ ambig = 1; } if (ambig && !exact) { if (opterr) fprintf (stderr, _("%s: option `-W %s' is ambiguous\n"), argv[0], argv[optind]); nextchar += strlen (nextchar); optind++; return '?'; } if (pfound != NULL) { option_index = indfound; if (*nameend) { /* Don't test has_arg with >, because some C compilers don't allow it to be used on enums. */ if (pfound->has_arg) optarg = nameend + 1; else { if (opterr) fprintf (stderr, _("\ %s: option `-W %s' doesn't allow an argument\n"), argv[0], pfound->name); nextchar += strlen (nextchar); return '?'; } } else if (pfound->has_arg == 1) { if (optind < argc) optarg = argv[optind++]; else { if (opterr) fprintf (stderr, _("%s: option `%s' requires an argument\n"), argv[0], argv[optind - 1]); nextchar += strlen (nextchar); return optstring[0] == ':' ? ':' : '?'; } } nextchar += strlen (nextchar); if (longind != NULL) *longind = option_index; if (pfound->flag) { *(pfound->flag) = pfound->val; return 0; } return pfound->val; } nextchar = NULL; return 'W'; /* Let the application handle it. */ } if (temp[1] == ':') { if (temp[2] == ':') { /* This is an option that accepts an argument optionally. */ if (*nextchar != '\0') { optarg = nextchar; optind++; } else optarg = NULL; nextchar = NULL; } else { /* This is an option that requires an argument. */ if (*nextchar != '\0') { optarg = nextchar; /* If we end this ARGV-element by taking the rest as an arg, we must advance to the next element now. */ optind++; } else if (optind == argc) { if (opterr) { /* 1003.2 specifies the format of this message. */ fprintf (stderr, _("%s: option requires an argument -- %c\n"), argv[0], c); } optopt = c; if (optstring[0] == ':') c = ':'; else c = '?'; } else /* We already incremented `optind' once; increment it again when taking next ARGV-elt as argument. */ optarg = argv[optind++]; nextchar = NULL; } } return c; } } int getopt (argc, argv, optstring) int argc; char *const *argv; const char *optstring; { return _getopt_internal (argc, argv, optstring, (const struct option *) 0, (int *) 0, 0); } #endif /* Not ELIDE_CODE. */ #ifdef TEST /* Compile with -DTEST to make an executable for use in testing the above definition of `getopt'. */ int main (argc, argv) int argc; char **argv; { int c; int digit_optind = 0; while (1) { int this_option_optind = optind ? optind : 1; c = getopt (argc, argv, "abc:d:0123456789"); if (c == -1) break; switch (c) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': if (digit_optind != 0 && digit_optind != this_option_optind) printf ("digits occur in two different argv-elements.\n"); digit_optind = this_option_optind; printf ("option %c\n", c); break; case 'a': printf ("option a\n"); break; case 'b': printf ("option b\n"); break; case 'c': printf ("option c with value `%s'\n", optarg); break; case '?': break; default: printf ("?? getopt returned character code 0%o ??\n", c); } } if (optind < argc) { printf ("non-option ARGV-elements: "); while (optind < argc) printf ("%s ", argv[optind++]); printf ("\n"); } exit (0); } #endif /* TEST */ libextractor-1.3/src/main/Makefile.am0000644000175000017500000000574312220070440014547 00000000000000SUBDIRS = . INCLUDES = -I$(top_srcdir)/src/include LIBS = \ @LE_LIBINTL@ @LE_LIB_LIBS@ if USE_COVERAGE AM_CFLAGS = --coverage -O0 XLIB = -lgcov endif lib_LTLIBRARIES = \ libextractor.la bin_PROGRAMS = extract if HAVE_ZLIB zlib =-lz TEST_ZLIB = test_gzip endif if HAVE_BZ2 bz2lib = -lbz2 TEST_BZIP2 = test_bzip2 endif if WINDOWS EXTRACTOR_IPC=extractor_ipc_w32.c else EXTRACTOR_IPC=extractor_ipc_gnu.c endif if HAVE_GNU_LD makesymbolic=-Wl,-Bsymbolic endif PLUGINFLAGS = $(makesymbolic) $(LE_PLUGIN_LDFLAGS) EXTRA_DIST = \ iconv.c \ test_file.dat \ test_file.dat.gz \ test_file.dat.bz2 libextractor_la_CPPFLAGS = \ -DPLUGINDIR=\"@RPLUGINDIR@\" -DPLUGININSTDIR=\"${plugindir}\" $(AM_CPPFLAGS) libextractor_la_SOURCES = \ extractor_common.c extractor_common.h \ extractor_datasource.c extractor_datasource.h \ $(EXTRACTOR_IPC) extractor_ipc.c extractor_ipc.h \ extractor_logging.c extractor_logging.h \ extractor_metatypes.c \ extractor_plugpath.c extractor_plugpath.h \ extractor_plugins.c extractor_plugins.h \ extractor_print.c \ extractor_plugin_main.c extractor_plugin_main.h \ extractor.c libextractor_la_LDFLAGS = \ $(LE_LIB_LDFLAGS) -version-info @LIB_VERSION_CURRENT@:@LIB_VERSION_REVISION@:@LIB_VERSION_AGE@ libextractor_la_LIBADD = \ -lltdl $(zlib) $(bz2lib) $(LTLIBICONV) $(XLIB) $(LE_LIBINTL) extract_SOURCES = \ extract.c \ getopt.c getopt.h getopt1.c extract_DEPENDENCIES = \ libextractor.la extract_LDADD = \ $(top_builddir)/src/main/libextractor.la $(LE_LIBINTL) TESTS_ENVIRONMENT = testdatadir=$(top_srcdir)/test TESTS_ENVIRONMENT += bindir=${bindir} noinst_LTLIBRARIES = \ libextractor_test.la \ libextractor_test2.la libextractor_test_la_SOURCES = \ test_extractor.c libextractor_test_la_LDFLAGS = \ $(PLUGINFLAGS) -rpath /nowhere libextractor_test_la_LIBADD = \ $(LE_LIBINTL) $(XLIB) libextractor_test2_la_SOURCES = \ test2_extractor.c libextractor_test2_la_LDFLAGS = \ $(PLUGINFLAGS) -rpath /nowhere libextractor_test2_la_LIBADD = \ $(LE_LIBINTL) $(XLIB) check_PROGRAMS = \ test_trivial \ test_plugin_loading \ test_plugin_load_multi \ test_ipc \ test_file \ $(TEST_ZLIB) \ $(TEST_BZIP2) if ENABLE_TEST_RUN TESTS = $(check_PROGRAMS) endif test_trivial_SOURCES = \ test_trivial.c test_trivial_LDADD = \ $(top_builddir)/src/main/libextractor.la test_plugin_loading_SOURCES = \ test_plugin_loading.c test_plugin_loading_LDADD = \ $(top_builddir)/src/main/libextractor.la test_plugin_load_multi_SOURCES = \ test_plugin_load_multi.c test_plugin_load_multi_LDADD = \ $(top_builddir)/src/main/libextractor.la test_ipc_SOURCES = \ test_ipc.c test_ipc_LDADD = \ $(top_builddir)/src/main/libextractor.la test_file_SOURCES = \ test_file.c test_file_LDADD = \ $(top_builddir)/src/main/libextractor.la test_gzip_SOURCES = \ test_gzip.c test_gzip_LDADD = \ $(top_builddir)/src/main/libextractor.la test_bzip2_SOURCES = \ test_bzip2.c test_bzip2_LDADD = \ $(top_builddir)/src/main/libextractor.la libextractor-1.3/src/main/extractor_common.c0000644000175000017500000000453612005511463016247 00000000000000/* This file is part of libextractor. (C) 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file main/extractor_common.c * @brief commonly used functions within the library * @author Christian Grothoff */ #include "platform.h" #include "extractor_common.h" #include "extractor_logging.h" #include "extractor.h" #include #include /** * Writes 'size' bytes from 'buf' to 'fd', returns only when * writing is not possible, or when all 'size' bytes were written * (never does partial writes). * * @param fd fd to write into * @param buf buffer to read from * @param size number of bytes to write * @return number of bytes written (that is 'size'), or -1 on error */ ssize_t EXTRACTOR_write_all_ (int fd, const void *buf, size_t size) { const char *data = buf; size_t off = 0; ssize_t ret; while (off < size) { ret = write (fd, &data[off], size - off); if (ret <= 0) { if (-1 == ret) LOG_STRERROR ("write"); return -1; } off += ret; } return size; } /** * Read a buffer from a given descriptor. * * @param fd descriptor to read from * @param buf buffer to fill * @param size number of bytes to read into 'buf' * @return -1 on error, size on success */ ssize_t EXTRACTOR_read_all_ (int fd, void *buf, size_t size) { char *data = buf; size_t off = 0; ssize_t ret; while (off < size) { ret = read (fd, &data[off], size - off); if (ret <= 0) { if (-1 == ret) LOG_STRERROR ("write"); return -1; } off += ret; } return size; } /* end of extractor_common.c */ libextractor-1.3/src/main/extractor_plugins.h0000644000175000017500000000640312007250647016446 00000000000000/* This file is part of libextractor. (C) 2002, 2003, 2004, 2005, 2006, 2009, 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file main/extractor_plugins.h * @brief code to load plugins * @author Christian Grothoff */ #ifndef EXTRACTOR_PLUGINS_H #define EXTRACTOR_PLUGINS_H #include "platform.h" #include "plibc.h" #include "extractor.h" #include #include /** * Linked list of extractor plugins. An application builds this list * by telling libextractor to load various meta data extraction * plugins. Plugins can also be unloaded (removed from this list, * see EXTRACTOR_plugin_remove). */ struct EXTRACTOR_PluginList { /** * This is a linked list. */ struct EXTRACTOR_PluginList *next; /** * Pointer to the plugin (as returned by lt_dlopen). */ void *libraryHandle; /** * Name of the library (i.e., 'libextractor_foo.so') */ char *libname; /** * Short name of the plugin (i.e., 'foo') */ char *short_libname; /** * Pointer to the function used for meta data extraction. */ EXTRACTOR_extract_method extract_method; /** * Options for the plugin. */ char *plugin_options; /** * Special options for the plugin * (as returned by the plugin's "options" method; * typically NULL). */ const char *specials; /** * Channel to communicate with out-of-process plugin, NULL if not setup. */ struct EXTRACTOR_Channel *channel; /** * Memory segment shared with the channel of this plugin, NULL for none. */ struct EXTRACTOR_SharedMemory *shm; /** * A position this plugin wants us to seek to. -1 if it's finished. * A positive value from the end of the file is used of 'whence' is * SEEK_END; a postive value from the start is used of 'whence' is * SEEK_SET. 'SEEK_CUR' is never used. */ int64_t seek_request; /** * Flags to control how the plugin is executed. */ enum EXTRACTOR_Options flags; /** * Is this plugin finished extracting for this round? * 0: no, 1: yes */ int round_finished; /** * 'whence' value for the seek operation; * 0 = SEEK_SET, 1 = SEEK_CUR, 2 = SEEK_END. * Note that 'SEEK_CUR' is never used here. */ uint16_t seek_whence; }; /** * Load a plugin. * * @param plugin plugin to load * @return 0 on success, -1 on error */ int EXTRACTOR_plugin_load_ (struct EXTRACTOR_PluginList *plugin); #endif /* EXTRACTOR_PLUGINS_H */ libextractor-1.3/src/main/test_file.c0000644000175000017500000000770012007054404014635 00000000000000/* This file is part of libextractor. (C) 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file main/test_file.c * @brief testcase for the extractor file-IO part (using IPC logic) * @author Christian Grothoff */ #include "platform.h" #include "extractor.h" /** * Return value from main, set to 0 for test to succeed. */ static int ret = 2; #define HLO "Hello world!" #define GOB "Goodbye!" /** * Function that libextractor calls for each * meta data item found. Should be called once * with 'Hello World!" and once with "Goodbye!". * * @param cls closure should be "main-cls" * @param plugin_name should be "test" * @param type should be "COMMENT" * @param format should be "UTF8" * @param data_mime_type should be "" * @param data hello world or good bye * @param data_len number of bytes in data * @return 0 on hello world, 1 on goodbye */ static int process_replies (void *cls, const char *plugin_name, enum EXTRACTOR_MetaType type, enum EXTRACTOR_MetaFormat format, const char *data_mime_type, const char *data, size_t data_len) { if (0 != strcmp (cls, "main-cls")) { fprintf (stderr, "closure invalid\n"); ret = 3; return 1; } if (0 != strcmp (plugin_name, "test")) { fprintf (stderr, "plugin name invalid\n"); ret = 4; return 1; } if (EXTRACTOR_METATYPE_COMMENT != type) { fprintf (stderr, "type invalid\n"); ret = 5; return 1; } if (EXTRACTOR_METAFORMAT_UTF8 != format) { fprintf (stderr, "format invalid\n"); ret = 6; return 1; } if ( (NULL == data_mime_type) || (0 != strcmp ("", data_mime_type) ) ) { fprintf (stderr, "bad mime type\n"); ret = 7; return 1; } if ( (2 == ret) && (data_len == strlen (HLO) + 1) && (0 == strncmp (data, HLO, strlen (HLO))) ) { #if 0 fprintf (stderr, "Received '%s'\n", HLO); #endif ret = 1; return 0; } if ( (1 == ret) && (data_len == strlen (GOB) + 1) && (0 == strncmp (data, GOB, strlen (GOB))) ) { #if 0 fprintf (stderr, "Received '%s'\n", GOB); #endif ret = 0; return 1; } fprintf (stderr, "Invalid meta data\n"); ret = 8; return 1; } /** * Main function for the file-IO testcase. * * @param argc number of arguments (ignored) * @param argv arguments (ignored) * @return 0 on success */ int main (int argc, char *argv[]) { struct EXTRACTOR_PluginList *pl; /* change environment to find 'extractor_test' plugin which is not installed but should be in the current directory (or .libs) on 'make check' */ if (0 != putenv ("LIBEXTRACTOR_PREFIX=." PATH_SEPARATOR_STR ".libs/")) fprintf (stderr, "Failed to update my environment, plugin loading may fail: %s\n", strerror (errno)); pl = EXTRACTOR_plugin_add_config (NULL, "test(test)", EXTRACTOR_OPTION_DEFAULT_POLICY); if (NULL == pl) { fprintf (stderr, "failed to load test plugin\n"); return 1; } EXTRACTOR_extract (pl, "test_file.dat", NULL, 0, &process_replies, "main-cls"); EXTRACTOR_plugin_remove_all (pl); return ret; } /* end of test_file.c */ libextractor-1.3/src/main/extractor.c0000644000175000017500000004257312256015511014703 00000000000000/* This file is part of libextractor. (C) 2002, 2003, 2004, 2005, 2006, 2009, 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "platform.h" #include "plibc.h" #include "extractor.h" #include #include #include #include #include "extractor_datasource.h" #include "extractor_ipc.h" #include "extractor_logging.h" #include "extractor_plugpath.h" #include "extractor_plugins.h" /** * Size used for the shared memory segment. */ #define DEFAULT_SHM_SIZE (16 * 1024) /** * Closure for 'process_plugin_reply' */ struct PluginReplyProcessor { /** * Function to call if we receive meta data from the plugin. */ EXTRACTOR_MetaDataProcessor proc; /** * Closure for 'proc'. */ void *proc_cls; /** * Are we done with processing this file? 0 to continue, 1 to terminate. */ int file_finished; }; /** * Send an 'update' message to the plugin. * * @param plugin plugin to notify * @param shm_off new offset for the SHM * @param data_available number of bytes available in shm * @param ds datastore backend we are using */ static void send_update_message (struct EXTRACTOR_PluginList *plugin, int64_t shm_off, size_t data_available, struct EXTRACTOR_Datasource *ds) { struct UpdateMessage um; um.opcode = MESSAGE_UPDATED_SHM; um.reserved = 0; um.reserved2 = 0; um.shm_ready_bytes = (uint32_t) data_available; um.shm_off = (uint64_t) shm_off; um.file_size = EXTRACTOR_datasource_get_size_ (ds, 0); if (sizeof (um) != EXTRACTOR_IPC_channel_send_ (plugin->channel, &um, sizeof (um)) ) { LOG ("Failed to send UPDATED_SHM message to plugin\n"); EXTRACTOR_IPC_channel_destroy_ (plugin->channel); plugin->channel = NULL; plugin->round_finished = 1; } } /** * Send a 'discard state' message to the plugin and mark it as finished * for this round. * * @param plugin plugin to notify */ static void send_discard_message (struct EXTRACTOR_PluginList *plugin) { static unsigned char disc_msg = MESSAGE_DISCARD_STATE; if (sizeof (disc_msg) != EXTRACTOR_IPC_channel_send_ (plugin->channel, &disc_msg, sizeof (disc_msg)) ) { LOG ("Failed to send DISCARD_STATE message to plugin\n"); EXTRACTOR_IPC_channel_destroy_ (plugin->channel); plugin->channel = NULL; plugin->round_finished = 1; } } /** * We had some serious trouble. Abort all channels. * * @param plugins list of plugins with channels to abort */ static void abort_all_channels (struct EXTRACTOR_PluginList *plugins) { struct EXTRACTOR_PluginList *pos; for (pos = plugins; NULL != pos; pos = pos->next) { if (NULL == pos->channel) continue; EXTRACTOR_IPC_channel_destroy_ (pos->channel); pos->channel = NULL; } } /** * Handler for a message from one of the plugins. * * @param cls closure with our 'struct PluginReplyProcessor' * @param plugin plugin of the channel sending the message * @param meta_type type of the meta data * @param meta_format format of the meta data * @param mime mime string send from the plugin * @param value 'data' send from the plugin * @param value_len number of bytes in 'value' */ static void process_plugin_reply (void *cls, struct EXTRACTOR_PluginList *plugin, enum EXTRACTOR_MetaType meta_type, enum EXTRACTOR_MetaFormat meta_format, const char *mime, const void *value, size_t value_len) { static unsigned char cont_msg = MESSAGE_CONTINUE_EXTRACTING; struct PluginReplyProcessor *prp = cls; if (0 != prp->file_finished) { /* client already aborted, ignore message, tell plugin about abort */ return; } if (0 != prp->proc (prp->proc_cls, plugin->short_libname, meta_type, meta_format, mime, value, value_len)) { prp->file_finished = 1; #if DEBUG fprintf (stderr, "Sending ABRT\n"); #endif send_discard_message (plugin); return; } if (sizeof (cont_msg) != EXTRACTOR_IPC_channel_send_ (plugin->channel, &cont_msg, sizeof (cont_msg)) ) { LOG ("Failed to send CONTINUE_EXTRACTING message to plugin\n"); EXTRACTOR_IPC_channel_destroy_ (plugin->channel); plugin->channel = NULL; plugin->round_finished = 1; } } /** * Closure for the in-process callbacks. */ struct InProcessContext { /** * Current plugin. */ struct EXTRACTOR_PluginList *plugin; /** * Data source to use. */ struct EXTRACTOR_Datasource *ds; /** * Function to call with meta data. */ EXTRACTOR_MetaDataProcessor proc; /** * Closure for 'proc'. */ void *proc_cls; /** * IO buffer. */ char buf[DEFAULT_SHM_SIZE]; /** * 0 to continue extracting, 1 if we are finished */ int finished; }; /** * Obtain a pointer to up to 'size' bytes of data from the file to process. * Callback used for in-process plugins. * * @param cls a 'struct InProcessContext' * @param data pointer to set to the file data, set to NULL on error * @param size maximum number of bytes requested * @return number of bytes now available in data (can be smaller than 'size'), * -1 on error * */ static ssize_t in_process_read (void *cls, void **data, size_t size) { struct InProcessContext *ctx = cls; ssize_t ret; size_t bsize; bsize = sizeof (ctx->buf); if (size < bsize) bsize = size; ret = EXTRACTOR_datasource_read_ (ctx->ds, ctx->buf, bsize); if (-1 == ret) *data = NULL; else *data = ctx->buf; return ret; } /** * Seek in the file. Use 'SEEK_CUR' for whence and 'pos' of 0 to * obtain the current position in the file. * Callback used for in-process plugins. * * @param cls a 'struct InProcessContext' * @param pos position to seek (see 'man lseek') * @param whence how to see (absolute to start, relative, absolute to end) * @return new absolute position, -1 on error (i.e. desired position * does not exist) */ static int64_t in_process_seek (void *cls, int64_t pos, int whence) { struct InProcessContext *ctx = cls; return EXTRACTOR_datasource_seek_ (ctx->ds, pos, whence); } /** * Determine the overall size of the file. * Callback used for in-process plugins. * * @param cls a 'struct InProcessContext' * @return overall file size, UINT64_MAX on error (i.e. IPC failure) */ static uint64_t in_process_get_size (void *cls) { struct InProcessContext *ctx = cls; return (uint64_t) EXTRACTOR_datasource_get_size_ (ctx->ds, 0); } /** * Type of a function that libextractor calls for each * meta data item found. * Callback used for in-process plugins. * * @param cls a 'struct InProcessContext' * @param plugin_name name of the plugin that produced this value; * special values can be used (i.e. '<zlib>' for zlib being * used in the main libextractor library and yielding * meta data). * @param type libextractor-type describing the meta data * @param format basic format information about data * @param data_mime_type mime-type of data (not of the original file); * can be NULL (if mime-type is not known) * @param data actual meta-data found * @param data_len number of bytes in data * @return 0 to continue extracting, 1 to abort */ static int in_process_proc (void *cls, const char *plugin_name, enum EXTRACTOR_MetaType type, enum EXTRACTOR_MetaFormat format, const char *data_mime_type, const char *data, size_t data_len) { struct InProcessContext *ctx = cls; int ret; if (0 != ctx->finished) return 1; ret = ctx->proc (ctx->proc_cls, plugin_name, type, format, data_mime_type, data, data_len); if (0 != ret) ctx->finished = 1; return ret; } /** * Extract keywords using the given set of plugins. * * @param plugins the list of plugins to use * @param shm shared memory object used by the plugins (NULL if * all plugins are in-process) * @param ds data to process * @param proc function to call for each meta data item found * @param proc_cls cls argument to proc */ static void do_extract (struct EXTRACTOR_PluginList *plugins, struct EXTRACTOR_SharedMemory *shm, struct EXTRACTOR_Datasource *ds, EXTRACTOR_MetaDataProcessor proc, void *proc_cls) { unsigned int plugin_count; unsigned int plugin_off; struct EXTRACTOR_PluginList *pos; struct StartMessage start; struct EXTRACTOR_Channel *channel; struct PluginReplyProcessor prp; struct InProcessContext ctx; struct EXTRACTOR_ExtractContext ec; int64_t min_seek; int64_t end; ssize_t data_available; ssize_t ready; int done; int have_in_memory; plugin_count = 0; for (pos = plugins; NULL != pos; pos = pos->next) plugin_count++; if (NULL != shm) ready = EXTRACTOR_IPC_shared_memory_set_ (shm, ds, 0, DEFAULT_SHM_SIZE); else ready = 0; have_in_memory = 0; prp.file_finished = 0; prp.proc = proc; prp.proc_cls = proc_cls; /* send 'start' message */ start.opcode = MESSAGE_EXTRACT_START; start.reserved = 0; start.reserved2 = 0; start.shm_ready_bytes = (uint32_t) ready; start.file_size = EXTRACTOR_datasource_get_size_ (ds, 0); for (pos = plugins; NULL != pos; pos = pos->next) { if (EXTRACTOR_OPTION_IN_PROCESS == pos->flags) have_in_memory = 1; if ( (NULL != pos->channel) && (-1 == EXTRACTOR_IPC_channel_send_ (pos->channel, &start, sizeof (start)) ) ) { LOG ("Failed to send EXTRACT_START message to plugin\n"); EXTRACTOR_IPC_channel_destroy_ (pos->channel); pos->channel = NULL; } } if (-1 == ready) { LOG ("Failed to initialize IPC shared memory, cannot extract\n"); done = 1; } else done = 0; while (! done) { struct EXTRACTOR_Channel *channels[plugin_count]; /* calculate current 'channels' array */ plugin_off = 0; for (pos = plugins; NULL != pos; pos = pos->next) { if (-1 == pos->seek_request) { /* channel is not seeking, must be running or done */ channels[plugin_off] = pos->channel; } else { /* not running this round, seeking! */ channels[plugin_off] = NULL; } plugin_off++; } /* give plugins chance to send us meta data, seek or finished messages */ if (-1 == EXTRACTOR_IPC_channel_recv_ (channels, plugin_count, &process_plugin_reply, &prp)) { /* serious problem in IPC; reset *all* channels */ LOG ("Failed to receive message from channels; full reset\n"); abort_all_channels (plugins); break; } /* calculate minimum seek request (or set done=0 to continue here) */ done = 1; min_seek = -1; plugin_off = 0; for (pos = plugins; NULL != pos; pos = pos->next) { plugin_off++; if ( (1 == pos->round_finished) || (NULL == pos->channel) ) { continue; /* inactive plugin */ } if (-1 == pos->seek_request) { /* possibly more meta data at current position, at least this plugin is still working on it... */ done = 0; break; } if (-1 != pos->seek_request) { if (SEEK_END == pos->seek_whence) { /* convert distance from end to absolute position */ pos->seek_whence = 0; end = EXTRACTOR_datasource_get_size_ (ds, 1); if (pos->seek_request > end) { LOG ("Cannot seek to before the beginning of the file!\n"); pos->seek_request = 0; } else { pos->seek_request = end - pos->seek_request; } } if ( (-1 == min_seek) || (min_seek > pos->seek_request) ) { min_seek = pos->seek_request; } } } data_available = -1; if ( (1 == done) && (-1 != min_seek) ) { /* current position done, but seek requested */ done = 0; if (-1 == (data_available = EXTRACTOR_IPC_shared_memory_set_ (shm, ds, min_seek, DEFAULT_SHM_SIZE))) { LOG ("Failed to seek; full reset\n"); abort_all_channels (plugins); break; } } /* if 'prp.file_finished', send 'abort' to plugins; if not, send 'seek' notification to plugins in range */ for (pos = plugins; NULL != pos; pos = pos->next) { if (NULL == (channel = pos->channel)) { /* Skipping plugin: channel down */ continue; } if ( (-1 != pos->seek_request) && (1 == prp.file_finished) ) { send_discard_message (pos); pos->round_finished = 1; pos->seek_request = -1; } if ( (-1 != data_available) && (-1 != pos->seek_request) && (min_seek <= pos->seek_request) && ( (min_seek + data_available > pos->seek_request) || (min_seek == EXTRACTOR_datasource_get_size_ (ds, 0))) ) { /* Notify plugin about seek to 'min_seek' */ send_update_message (pos, min_seek, data_available, ds); pos->seek_request = -1; } if (0 == pos->round_finished) done = 0; /* can't be done, plugin still active */ } } if (0 == have_in_memory) return; /* run in-process plugins */ ctx.finished = 0; ctx.ds = ds; ctx.proc = proc; ctx.proc_cls = proc_cls; ec.cls = &ctx; ec.read = &in_process_read; ec.seek = &in_process_seek; ec.get_size = &in_process_get_size; ec.proc = &in_process_proc; for (pos = plugins; NULL != pos; pos = pos->next) { if (EXTRACTOR_OPTION_IN_PROCESS != pos->flags) continue; if (-1 == EXTRACTOR_plugin_load_ (pos)) continue; ctx.plugin = pos; ec.config = pos->plugin_options; if (-1 == EXTRACTOR_datasource_seek_ (ds, 0, SEEK_SET)) { LOG ("Failed to seek to 0 for in-memory plugins\n"); return; } pos->extract_method (&ec); if (1 == ctx.finished) break; } } /** * Extract keywords from a file using the given set of plugins. * If needed, opens the file and loads its data (via mmap). Then * decompresses it if the data is compressed. Finally runs the * plugins on the (now possibly decompressed) data. * * @param plugins the list of plugins to use * @param filename the name of the file, can be NULL if data is not NULL * @param data data of the file in memory, can be NULL (in which * case libextractor will open file) if filename is not NULL * @param size number of bytes in data, ignored if data is NULL * @param proc function to call for each meta data item found * @param proc_cls cls argument to proc */ void EXTRACTOR_extract (struct EXTRACTOR_PluginList *plugins, const char *filename, const void *data, size_t size, EXTRACTOR_MetaDataProcessor proc, void *proc_cls) { struct EXTRACTOR_Datasource *datasource; struct EXTRACTOR_SharedMemory *shm; struct EXTRACTOR_PluginList *pos; int have_oop; if (NULL == plugins) return; if (NULL == filename) datasource = EXTRACTOR_datasource_create_from_buffer_ (data, size, proc, proc_cls); else datasource = EXTRACTOR_datasource_create_from_file_ (filename, proc, proc_cls); if (NULL == datasource) return; shm = NULL; have_oop = 0; for (pos = plugins; NULL != pos; pos = pos->next) { if (NULL == shm) shm = pos->shm; if (EXTRACTOR_OPTION_IN_PROCESS != pos->flags) have_oop = 1; pos->round_finished = 0; } if ( (NULL == shm) && (1 == have_oop) ) { /* need to create shared memory segment */ shm = EXTRACTOR_IPC_shared_memory_create_ (DEFAULT_SHM_SIZE); if (NULL == shm) { LOG ("Failed to setup IPC\n"); EXTRACTOR_datasource_destroy_ (datasource); return; } } for (pos = plugins; NULL != pos; pos = pos->next) if ( (NULL == pos->channel) && (EXTRACTOR_OPTION_IN_PROCESS != pos->flags) ) { if (NULL == pos->shm) { pos->shm = shm; (void) EXTRACTOR_IPC_shared_memory_change_rc_ (shm, 1); } pos->channel = EXTRACTOR_IPC_channel_create_ (pos, shm); } do_extract (plugins, shm, datasource, proc, proc_cls); EXTRACTOR_datasource_destroy_ (datasource); } /** * Initialize gettext and libltdl (and W32 if needed). */ void __attribute__ ((constructor)) EXTRACTOR_ltdl_init () { int err; #if ENABLE_NLS BINDTEXTDOMAIN (PACKAGE, LOCALEDIR); #endif err = lt_dlinit (); if (err > 0) { #if DEBUG fprintf (stderr, _("Initialization of plugin mechanism failed: %s!\n"), lt_dlerror ()); #endif return; } #if WINDOWS plibc_init_utf8 ("GNU", PACKAGE, 1); plibc_set_stat_size_size (sizeof (((struct stat *) 0)->st_size)); plibc_set_stat_time_size (sizeof (((struct stat *) 0)->st_mtime)); #endif } /** * Deinit. */ void __attribute__ ((destructor)) EXTRACTOR_ltdl_fini () { #if WINDOWS plibc_shutdown (); #endif lt_dlexit (); } /* end of extractor.c */ libextractor-1.3/src/main/extractor_print.c0000644000175000017500000000576512027417662016132 00000000000000/* This file is part of libextractor. (C) 2002, 2003, 2004, 2005, 2006, 2009 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file main/extractor_print.c * @brief convenience functions for printing meta data * @author Christian Grothoff */ #include "platform.h" #include "extractor.h" #include "extractor_logging.h" #if HAVE_ICONV #include "iconv.c" #endif /** * Simple EXTRACTOR_MetaDataProcessor implementation that simply * prints the extracted meta data to the given file. Only prints * those keywords that are in UTF-8 format. * * @param handle the file to write to (stdout, stderr), must NOT be NULL, * must be of type "FILE *". * @param plugin_name name of the plugin that produced this value * @param type libextractor-type describing the meta data * @param format basic format information about data * @param data_mime_type mime-type of data (not of the original file); * can be NULL (if mime-type is not known) * @param data actual meta-data found * @param data_len number of bytes in data * @return non-zero if printing failed, otherwise 0. */ int EXTRACTOR_meta_data_print (void *handle, const char *plugin_name, enum EXTRACTOR_MetaType type, enum EXTRACTOR_MetaFormat format, const char *data_mime_type, const char *data, size_t data_len) { #if HAVE_ICONV iconv_t cd; #endif char * buf; int ret; const char *mt; if (EXTRACTOR_METAFORMAT_UTF8 != format) return 0; #if HAVE_ICONV cd = iconv_open (nl_langinfo(CODESET), "UTF-8"); if (((iconv_t) -1) == cd) { LOG_STRERROR ("iconv_open"); return 1; } buf = iconv_helper (cd, data, data_len); if (NULL == buf) { LOG_STRERROR ("iconv_helper"); ret = -1; } else { mt = EXTRACTOR_metatype_to_string (type); ret = fprintf (handle, "%s - %s\n", (NULL == mt) ? dgettext ("libextractor", gettext_noop ("unknown")) : dgettext ("libextractor", mt), buf); free(buf); } iconv_close(cd); #else ret = fprintf (handle, "%s - %.*s\n", (NULL == mt) ? dgettext ("libextractor", gettext_noop ("unknown")) : dgettext ("libextractor", mt), (int) data_len, data); #endif return (ret < 0) ? 1 : 0; } /* end of extractor_print.c */ libextractor-1.3/src/main/extractor_ipc.h0000644000175000017500000002711312022230713015526 00000000000000/* This file is part of libextractor. (C) 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file main/extractor_ipc.h * @brief IPC with plugin (OS-independent API) * @author Christian Grothoff * * @detail * The IPC communication between plugins and the main library works * as follows. Each message begins with a 1-character opcode which * specifies the message type. The main library starts the plugins * by forking the helper process and establishes two pipes for * communication in both directions. * First, the main library send an 'INIT_STATE' message * to the plugin. The start message specifies the name (and size) * of a shared memory segment which will contain parts of the (uncompressed) * data of the file that is being processed. The same shared memory * segment is used throughout the lifetime of the plugin. * * Then, the following messages are exchanged for each file. * First, an EXTRACT_START message is sent with the specific * size of the file (or -1 if unknown) and the number of bytes * ready in the shared memory segment. The plugin then answers * with either: * 1) MESSAGE_DONE to indicate that no further processing is * required for this file; the IPC continues with the * EXTRACT_START message for the next file afterwards; * 2) MESSAGE_SEEK to indicate that the plugin would like to * read data at a different offset; the main library can * then either * a) respond with a MESSAGE_DISCARD_STATE to * tell the plugin to abort processing (the next message will * then be another EXTRACT_START) * b) respond with a MESSAGE_UPDATED_SHM which notifies the * plugin that the shared memory segment was moved to a * different location in the overall file; the target of the * seek should now be within the new range (but does NOT have * to be at the beginning of the seek) * 3) MESSAGE_META to provide extracted meta data to the main * library. The main library can then either: * a) respond with a MESSAGE_DISCARD_STATE to * tell the plugin to abort processing (the next message will * then be another EXTRACT_START) * b) respond with a MESSAGE_CONTINUE_EXTRACTING to * tell the plugin to continue extracting meta data; in this * case, the plugin is then expected to produce another * MESSAGE_DONE, MESSAGE_SEEK or MESSAGE_META round of messages. */ #ifndef EXTRACTOR_IPC_H #define EXTRACTOR_IPC_H #include "extractor_datasource.h" /** * How long do we allow an individual meta data object to be? * Used to guard against (broken) plugns causing us to use * excessive amounts of memory. */ #define MAX_META_DATA 32 * 1024 * 1024 /** * Maximum length of a shared memory object name */ #define MAX_SHM_NAME 255 /** * Sent from LE to a plugin to initialize it (opens shm). */ #define MESSAGE_INIT_STATE 0x00 /** * IPC message send to plugin to initialize SHM. */ struct InitMessage { /** * Set to MESSAGE_INIT_STATE. */ unsigned char opcode; /** * Always zero. */ unsigned char reserved; /** * Always zero. */ uint16_t reserved2; /** * Name of the shared-memory name. */ uint32_t shm_name_length; /** * Maximum size of the shm map. */ uint32_t shm_map_size; /* followed by name of the SHM */ }; /** * Sent from LE to a plugin to tell it extracting * can now start. The SHM will point to offset 0 * of the file. */ #define MESSAGE_EXTRACT_START 0x01 /** * IPC message send to plugin to start extracting. */ struct StartMessage { /** * Set to MESSAGE_EXTRACT_START. */ unsigned char opcode; /** * Always zero. */ unsigned char reserved; /** * Always zero. */ uint16_t reserved2; /** * Number of bytes ready in SHM. */ uint32_t shm_ready_bytes; /** * Overall size of the file. */ uint64_t file_size; }; /** * Sent from LE to a plugin to tell it that shm contents * were updated. */ #define MESSAGE_UPDATED_SHM 0x02 /** * IPC message send to plugin to notify it about a change in the SHM. */ struct UpdateMessage { /** * Set to MESSAGE_UPDATED_SHM. */ unsigned char opcode; /** * Always zero. */ unsigned char reserved; /** * Always zero. */ uint16_t reserved2; /** * Number of bytes ready in SHM. */ uint32_t shm_ready_bytes; /** * Offset of the shm in the overall file. */ uint64_t shm_off; /** * Overall size of the file. */ uint64_t file_size; }; /** * Sent from plugin to LE to tell LE that plugin is done * analyzing current file and will send no more data. * No message format as this is only one byte. */ #define MESSAGE_DONE 0x03 /** * Sent from plugin to LE to tell LE that plugin needs * to read a different part of the source file. */ #define MESSAGE_SEEK 0x04 /** * IPC message send to plugin to start extracting. */ struct SeekRequestMessage { /** * Set to MESSAGE_SEEK. */ unsigned char opcode; /** * Always zero. */ unsigned char reserved; /** * 'whence' value for the seek operation; * 0 = SEEK_SET, 1 = SEEK_CUR, 2 = SEEK_END. * Note that 'SEEK_CUR' is never used here. */ uint16_t whence; /** * Number of bytes requested for SHM. */ uint32_t requested_bytes; /** * Requested offset; a positive value from the end of the * file is used of 'whence' is SEEK_END; a postive value * from the start is used of 'whence' is SEEK_SET. * 'SEEK_CUR' is never used. */ uint64_t file_offset; }; /** * Sent from plugin to LE to tell LE about metadata discovered. */ #define MESSAGE_META 0x05 /** * Plugin to parent: metadata discovered */ struct MetaMessage { /** * Set to MESSAGE_META. */ unsigned char opcode; /** * Always zero. */ unsigned char reserved; /** * An 'enum EXTRACTOR_MetaFormat' in 16 bits. */ uint16_t meta_format; /** * An 'enum EXTRACTOR_MetaType' in 16 bits. */ uint16_t meta_type; /** * Length of the mime type string. */ uint16_t mime_length; /** * Size of the value. */ uint32_t value_size; /* followed by mime_length bytes of 0-terminated mime-type (unless mime_length is 0) */ /* followed by value_size bytes of value */ }; /** * Sent from LE to plugin to make plugin discard its state * (extraction aborted by application). Only one byte. * Plugin should get ready for next 'StartMessage' after this. * (sent in response to META data or SEEK requests). */ #define MESSAGE_DISCARD_STATE 0x06 /** * Sent from LE to plugin to make plugin continue extraction. * (sent in response to META data). */ #define MESSAGE_CONTINUE_EXTRACTING 0x07 /** * Definition of an IPC communication channel with * some plugin. */ struct EXTRACTOR_Channel; /** * Definition of a shared memory area. */ struct EXTRACTOR_SharedMemory; /** * Create a shared memory area. * * @param size size of the shared area * @return NULL on error */ struct EXTRACTOR_SharedMemory * EXTRACTOR_IPC_shared_memory_create_ (size_t size); /** * Destroy shared memory area. * * @param shm memory area to destroy * @return NULL on error */ void EXTRACTOR_IPC_shared_memory_destroy_ (struct EXTRACTOR_SharedMemory *shm); /** * Change the reference counter for this shm instance. * * @param shm instance to update * @param delta value to change RC by * @return new RC */ unsigned int EXTRACTOR_IPC_shared_memory_change_rc_ (struct EXTRACTOR_SharedMemory *shm, int delta); /** * Initialize shared memory area from data source. * * @param shm memory area to initialize * @param ds data source to use for initialization * @param off offset to use in data source * @param size number of bytes to copy * @return -1 on error, otherwise number of bytes copied */ ssize_t EXTRACTOR_IPC_shared_memory_set_ (struct EXTRACTOR_SharedMemory *shm, struct EXTRACTOR_Datasource *ds, uint64_t off, size_t size); /** * Query datasource for current position * * @param ds data source to query * @return current position in the datasource or UINT_MAX on error */ uint64_t EXTRACTOR_datasource_get_pos_ (struct EXTRACTOR_Datasource *ds); /** * Create a channel to communicate with a process wrapping * the plugin of the given name. Starts the process as well. * * @param plugin the plugin * @param shm memory to share with the process * @return NULL on error, otherwise IPC channel */ struct EXTRACTOR_Channel * EXTRACTOR_IPC_channel_create_ (struct EXTRACTOR_PluginList *plugin, struct EXTRACTOR_SharedMemory *shm); /** * Destroy communication channel with a plugin/process. Also * destroys the process. * * @param channel channel to communicate with the plugin */ void EXTRACTOR_IPC_channel_destroy_ (struct EXTRACTOR_Channel *channel); /** * Send data via the given IPC channel (blocking). * * @param channel channel to communicate with the plugin * @param buf data to send * @param size number of bytes in buf to send * @return -1 on error, number of bytes sent on success * (never does partial writes) */ ssize_t EXTRACTOR_IPC_channel_send_ (struct EXTRACTOR_Channel *channel, const void *data, size_t size); /** * Handler for a message from one of the plugins. * * @param cls closure * @param plugin plugin of the channel sending the message * @param meta_type type of the meta data * @param meta_format format of the meta data * @param mime mime string send from the plugin * @param value 'data' send from the plugin * @param value_len number of bytes in 'value' */ typedef void (*EXTRACTOR_ChannelMessageProcessor) (void *cls, struct EXTRACTOR_PluginList *plugin, enum EXTRACTOR_MetaType meta_type, enum EXTRACTOR_MetaFormat meta_format, const char *mime, const void *value, size_t value_len); /** * Process a reply from channel (seek request, metadata and done message) * * @param plugin plugin this communication is about * @param buf buffer with data from IPC channel * @param size number of bytes in buffer * @param proc metadata callback * @param proc_cls callback cls * @return number of bytes processed, -1 on error */ ssize_t EXTRACTOR_IPC_process_reply_ (struct EXTRACTOR_PluginList *plugin, const void *data, size_t size, EXTRACTOR_ChannelMessageProcessor proc, void *proc_cls); /** * Receive data from any of the given IPC channels (blocking). * Wait for one of the plugins to reply. * * @param channels array of channels, channels that break may be set to NULL * @param num_channels length of the 'channels' array * @param proc function to call to process messages (may be called * more than once) * @param proc_cls closure for 'proc' * @return -1 on error (i.e. no response in 10s), 1 on success */ int EXTRACTOR_IPC_channel_recv_ (struct EXTRACTOR_Channel **channels, unsigned int num_channels, EXTRACTOR_ChannelMessageProcessor proc, void *proc_cls); #endif libextractor-1.3/src/main/extractor_metatypes.c0000644000175000017500000006161112254640524016776 00000000000000/* This file is part of libextractor. (C) 2002, 2003, 2004, 2005, 2006, 2009, 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "platform.h" #include "extractor.h" /** * Description for meta data categories in LE. */ struct MetaTypeDescription { /** * Short (typically 1-word) description. */ const char *short_description; /** * More detailed description. */ const char *long_description; }; /** * The sources of keywords as strings. */ static const struct MetaTypeDescription meta_type_descriptions[] = { /* 0 */ { gettext_noop ("reserved"), gettext_noop ("reserved value, do not use") }, { gettext_noop ("mimetype"), gettext_noop ("mime type") }, { gettext_noop ("embedded filename"), gettext_noop ("filename that was embedded (not necessarily the current filename)") }, { gettext_noop ("comment"), gettext_noop ("comment about the content") }, { gettext_noop ("title"), gettext_noop ("title of the work")}, /* 5 */ { gettext_noop ("book title"), gettext_noop ("title of the book containing the work") }, { gettext_noop ("book edition"), gettext_noop ("edition of the book (or book containing the work)") }, { gettext_noop ("book chapter"), gettext_noop ("chapter number") }, { gettext_noop ("journal name"), gettext_noop ("journal or magazine the work was published in") }, { gettext_noop ("journal volume"), gettext_noop ("volume of a journal or multi-volume book") }, /* 10 */ { gettext_noop ("journal number"), gettext_noop ("number of a journal, magazine or tech-report") }, { gettext_noop ("page count"), gettext_noop ("total number of pages of the work") }, { gettext_noop ("page range"), gettext_noop ("page numbers of the publication in the respective journal or book") }, { gettext_noop ("author name"), gettext_noop ("name of the author(s)") }, { gettext_noop ("author email"), gettext_noop ("e-mail of the author(s)") }, /* 15 */ { gettext_noop ("author institution"), gettext_noop ("institution the author worked for") }, { gettext_noop ("publisher"), gettext_noop ("name of the publisher") }, { gettext_noop ("publisher's address"), gettext_noop ("Address of the publisher (often only the city)") }, { gettext_noop ("publishing institution"), gettext_noop ("institution that was involved in the publishing, but not necessarily the publisher") }, { gettext_noop ("publication series"), gettext_noop ("series of books the book was published in") }, /* 20 */ { gettext_noop ("publication type"), gettext_noop ("type of the tech-report") }, { gettext_noop ("publication year"), gettext_noop ("year of publication (or, if unpublished, the year of creation)") }, { gettext_noop ("publication month"), gettext_noop ("month of publication (or, if unpublished, the month of creation)") }, { gettext_noop ("publication day"), gettext_noop ("day of publication (or, if unpublished, the day of creation), relative to the given month") }, { gettext_noop ("publication date"), gettext_noop ("date of publication (or, if unpublished, the date of creation)") }, /* 25 */ { gettext_noop ("bibtex eprint"), gettext_noop ("specification of an electronic publication") }, { gettext_noop ("bibtex entry type"), gettext_noop ("type of the publication for bibTeX bibliographies") }, { gettext_noop ("language"), gettext_noop ("language the work uses") }, { gettext_noop ("creation time"), gettext_noop ("time and date of creation") }, { gettext_noop ("URL"), gettext_noop ("universal resource location (where the work is made available)") }, /* 30 */ { gettext_noop ("URI"), gettext_noop ("universal resource identifier") }, { gettext_noop ("international standard recording code"), gettext_noop ("ISRC number identifying the work") }, { gettext_noop ("MD4"), gettext_noop ("MD4 hash") }, { gettext_noop ("MD5"), gettext_noop ("MD5 hash") }, { gettext_noop ("SHA-0"), gettext_noop ("SHA-0 hash") }, /* 35 */ { gettext_noop ("SHA-1"), gettext_noop ("SHA-1 hash") }, { gettext_noop ("RipeMD160"), gettext_noop ("RipeMD150 hash") }, { gettext_noop ("GPS latitude ref"), gettext_noop ("GPS latitude ref") }, { gettext_noop ("GPS latitude"), gettext_noop ("GPS latitude") }, { gettext_noop ("GPS longitude ref"), gettext_noop ("GPS longitude ref") }, /* 40 */ { gettext_noop ("GPS longitude"), gettext_noop ("GPS longitude") }, { gettext_noop ("city"), gettext_noop ("name of the city where the document originated") }, { gettext_noop ("sublocation"), gettext_noop ("more specific location of the geographic origin") }, { gettext_noop ("country"), gettext_noop ("name of the country where the document originated") }, { gettext_noop ("country code"), gettext_noop ("ISO 2-letter country code for the country of origin") }, /* 45 */ { gettext_noop ("unknown"), gettext_noop ("specifics are not known") }, { gettext_noop ("description"), gettext_noop ("description") }, { gettext_noop ("copyright"), gettext_noop ("Name of the entity holding the copyright") }, { gettext_noop ("rights"), gettext_noop ("information about rights") }, { gettext_noop ("keywords"), gettext_noop ("keywords") }, /* 50 */ { gettext_noop ("abstract"), gettext_noop ("abstract") }, { gettext_noop ("summary"), gettext_noop ("summary") }, { gettext_noop ("subject"), gettext_noop ("subject matter") }, { gettext_noop ("creator"), gettext_noop ("name of the person who created the document") }, { gettext_noop ("format"), gettext_noop ("name of the document format") }, /* 55 */ { gettext_noop ("format version"), gettext_noop ("version of the document format") }, { gettext_noop ("created by software"), gettext_noop ("name of the software that created the document") }, { gettext_noop ("unknown date"), gettext_noop ("ambiguous date (could specify creation time, modification time or access time)") }, { gettext_noop ("creation date"), gettext_noop ("date the document was created") }, { gettext_noop ("modification date"), gettext_noop ("date the document was modified") }, /* 60 */ { gettext_noop ("last printed"), gettext_noop ("date the document was last printed") }, { gettext_noop ("last saved by"), gettext_noop ("name of the user who saved the document last") }, { gettext_noop ("total editing time"), gettext_noop ("time spent editing the document") }, { gettext_noop ("editing cycles"), gettext_noop ("number of editing cycles") }, { gettext_noop ("modified by software"), gettext_noop ("name of software making modifications") }, /* 65 */ { gettext_noop ("revision history"), gettext_noop ("information about the revision history") }, { gettext_noop ("embedded file size"), gettext_noop ("size of the contents of the container as embedded in the file") }, { gettext_noop ("file type"), gettext_noop ("standard Macintosh Finder file type information") }, { gettext_noop ("creator"), gettext_noop ("standard Macintosh Finder file creator information") }, { gettext_noop ("package name"), gettext_noop ("unique identifier for the package") }, /* 70 */ { gettext_noop ("package version"), gettext_noop ("version of the software and its package") }, { gettext_noop ("section"), gettext_noop ("category the software package belongs to") }, { gettext_noop ("upload priority"), gettext_noop ("priority for promoting the release to production") }, { gettext_noop ("dependencies"), gettext_noop ("packages this package depends upon") }, { gettext_noop ("conflicting packages"), gettext_noop ("packages that cannot be installed with this package") }, /* 75 */ { gettext_noop ("replaced packages"), gettext_noop ("packages made obsolete by this package") }, { gettext_noop ("provides"), gettext_noop ("functionality provided by this package") }, { gettext_noop ("recommendations"), gettext_noop ("packages recommended for installation in conjunction with this package") }, { gettext_noop ("suggestions"), gettext_noop ("packages suggested for installation in conjunction with this package") }, { gettext_noop ("maintainer"), gettext_noop ("name of the maintainer") }, /* 80 */ { gettext_noop ("installed size"), gettext_noop ("space consumption after installation") }, { gettext_noop ("source"), gettext_noop ("original source code") }, { gettext_noop ("is essential"), gettext_noop ("package is marked as essential") }, { gettext_noop ("target architecture"), gettext_noop ("hardware architecture the contents can be used for") }, { gettext_noop ("pre-dependency"), gettext_noop ("dependency that must be satisfied before installation") }, /* 85 */ { gettext_noop ("license"), gettext_noop ("applicable copyright license") }, { gettext_noop ("distribution"), gettext_noop ("distribution the package is a part of") }, { gettext_noop ("build host"), gettext_noop ("machine the package was build on") }, { gettext_noop ("vendor"), gettext_noop ("name of the software vendor") }, { gettext_noop ("target operating system"), gettext_noop ("operating system for which this package was made") }, /* 90 */ { gettext_noop ("software version"), gettext_noop ("version of the software contained in the file") }, { gettext_noop ("target platform"), gettext_noop ("name of the architecture, operating system and distribution this package is for") }, { gettext_noop ("resource type"), gettext_noop ("categorization of the nature of the resource that is more specific than the file format") }, { gettext_noop ("library search path"), gettext_noop ("path in the file system to be considered when looking for required libraries") }, { gettext_noop ("library dependency"), gettext_noop ("name of a library that this file depends on") }, /* 95 */ { gettext_noop ("camera make"), gettext_noop ("camera make") }, { gettext_noop ("camera model"), gettext_noop ("camera model") }, { gettext_noop ("exposure"), gettext_noop ("exposure") }, { gettext_noop ("aperture"), gettext_noop ("aperture") }, { gettext_noop ("exposure bias"), gettext_noop ("exposure bias") }, /* 100 */ { gettext_noop ("flash"), gettext_noop ("flash") }, { gettext_noop ("flash bias"), gettext_noop ("flash bias") }, { gettext_noop ("focal length"), gettext_noop ("focal length") }, { gettext_noop ("focal length 35mm"), gettext_noop ("focal length 35mm") }, { gettext_noop ("iso speed"), gettext_noop ("iso speed") }, /* 105 */ { gettext_noop ("exposure mode"), gettext_noop ("exposure mode") }, { gettext_noop ("metering mode"), gettext_noop ("metering mode") }, { gettext_noop ("macro mode"), gettext_noop ("macro mode") }, { gettext_noop ("image quality"), gettext_noop ("image quality") }, { gettext_noop ("white balance"), gettext_noop ("white balance") }, /* 110 */ { gettext_noop ("orientation"), gettext_noop ("orientation") }, { gettext_noop ("magnification"), gettext_noop ("magnification") }, { gettext_noop ("image dimensions"), gettext_noop ("size of the image in pixels (width times height)") }, { gettext_noop ("produced by software"), gettext_noop ("produced by software") }, /* what is the exact difference between the software creator and the software producer? PDF and DVI both have this distinction (i.e., Writer vs. OpenOffice) */ { gettext_noop ("thumbnail"), gettext_noop ("smaller version of the image for previewing") }, /* 115 */ { gettext_noop ("image resolution"), gettext_noop ("resolution in dots per inch") }, { gettext_noop ("source"), gettext_noop ("Originating entity") }, { gettext_noop ("character set"), gettext_noop ("character encoding used") }, { gettext_noop ("line count"), gettext_noop ("number of lines") }, { gettext_noop ("paragraph count"), gettext_noop ("number of paragraphs") }, /* 120 */ { gettext_noop ("word count"), gettext_noop ("number of words") }, { gettext_noop ("character count"), gettext_noop ("number of characters") }, { gettext_noop ("page orientation"), gettext_noop ("page orientation") }, { gettext_noop ("paper size"), gettext_noop ("paper size") }, { gettext_noop ("template"), gettext_noop ("template the document uses or is based on") }, /* 125 */ { gettext_noop ("company"), gettext_noop ("company") }, { gettext_noop ("manager"), gettext_noop ("manager") }, { gettext_noop ("revision number"), gettext_noop ("revision number") }, { gettext_noop ("duration"), gettext_noop ("play time for the medium") }, { gettext_noop ("album"), gettext_noop ("name of the album") }, /* 130 */ { gettext_noop ("artist"), gettext_noop ("name of the artist or band") }, { gettext_noop ("genre"), gettext_noop ("genre") }, { gettext_noop ("track number"), gettext_noop ("original number of the track on the distribution medium") }, { gettext_noop ("disk number"), gettext_noop ("number of the disk in a multi-disk (or volume) distribution") }, { gettext_noop ("performer"), gettext_noop ("The artist(s) who performed the work (conductor, orchestra, soloists, actor, etc.)") }, /* 135 */ { gettext_noop ("contact"), gettext_noop ("Contact information for the creator or distributor") }, { gettext_noop ("song version"), gettext_noop ("name of the version of the song (i.e. remix information)") }, { gettext_noop ("picture"), gettext_noop ("associated misc. picture") }, { gettext_noop ("cover picture"), gettext_noop ("picture of the cover of the distribution medium") }, { gettext_noop ("contributor picture"), gettext_noop ("picture of one of the contributors") }, /* 140 */ { gettext_noop ("event picture"), gettext_noop ("picture of an associated event") }, { gettext_noop ("logo"), gettext_noop ("logo of an associated organization") }, { gettext_noop ("broadcast television system"), gettext_noop ("name of the television system for which the data is coded") }, { gettext_noop ("source device"), gettext_noop ("device used to create the object") }, { gettext_noop ("disclaimer"), gettext_noop ("legal disclaimer") }, /* 145 */ { gettext_noop ("warning"), gettext_noop ("warning about the nature of the content") }, { gettext_noop ("page order"), gettext_noop ("order of the pages") }, { gettext_noop ("writer"), gettext_noop ("contributing writer") }, { gettext_noop ("product version"), gettext_noop ("product version") }, { gettext_noop ("contributor"), gettext_noop ("name of a contributor") }, /* 150 */ { gettext_noop ("movie director"), gettext_noop ("name of the director") }, { gettext_noop ("network"), gettext_noop ("name of the broadcasting network or station") }, { gettext_noop ("show"), gettext_noop ("name of the show") }, { gettext_noop ("chapter name"), gettext_noop ("name of the chapter") }, { gettext_noop ("song count"), gettext_noop ("number of songs") }, /* 155 */ { gettext_noop ("starting song"), gettext_noop ("number of the first song to play") }, { gettext_noop ("play counter"), gettext_noop ("number of times the media has been played") }, { gettext_noop ("conductor"), gettext_noop ("name of the conductor") }, { gettext_noop ("interpretation"), gettext_noop ("information about the people behind interpretations of an existing piece") }, { gettext_noop ("composer"), gettext_noop ("name of the composer") }, /* 160 */ { gettext_noop ("beats per minute"), gettext_noop ("beats per minute") }, { gettext_noop ("encoded by"), gettext_noop ("name of person or organization that encoded the file") }, { gettext_noop ("original title"), gettext_noop ("title of the original work") }, { gettext_noop ("original artist"), gettext_noop ("name of the original artist") }, { gettext_noop ("original writer"), gettext_noop ("name of the original lyricist or writer") }, /* 165 */ { gettext_noop ("original release year"), gettext_noop ("year of the original release") }, { gettext_noop ("original performer"), gettext_noop ("name of the original performer") }, { gettext_noop ("lyrics"), gettext_noop ("lyrics of the song or text description of vocal activities") }, { gettext_noop ("popularity"), gettext_noop ("information about the file's popularity") }, { gettext_noop ("licensee"), gettext_noop ("name of the owner or licensee of the file") }, /* 170 */ { gettext_noop ("musician credit list"), gettext_noop ("names of contributing musicians") }, { gettext_noop ("mood"), gettext_noop ("keywords reflecting the mood of the piece") }, { gettext_noop ("subtitle"), gettext_noop ("subtitle of this part") }, { gettext_noop ("display type"), gettext_noop ("what rendering method should be used to display this item") }, { gettext_noop ("full data"), gettext_noop ("entry that contains the full, original binary data (not really meta data)") }, /* 175 */ { gettext_noop ("rating"), gettext_noop ("rating of the content") }, { gettext_noop ("organization"), gettext_noop ("organization") }, { gettext_noop ("ripper"), /* any difference to "encoded by"? */ gettext_noop ("ripper") }, { gettext_noop ("producer"), gettext_noop ("producer") }, { gettext_noop ("group"), gettext_noop ("name of the group or band") }, /* 180 */ { gettext_noop ("original filename"), gettext_noop ("name of the original file (reserved for GNUnet)") }, { gettext_noop ("disc count"), gettext_noop ("count of discs inside collection this disc belongs to") }, { gettext_noop ("codec"), gettext_noop ("codec the data is stored in") }, { gettext_noop ("video codec"), gettext_noop ("codec the video data is stored in") }, { gettext_noop ("audio codec"), gettext_noop ("codec the audio data is stored in") }, /* 185 */ { gettext_noop ("subtitle codec"), gettext_noop ("codec/format the subtitle data is stored in") }, { gettext_noop ("container format"), gettext_noop ("container format the data is stored in") }, { gettext_noop ("bitrate"), gettext_noop ("exact or average bitrate in bits/s") }, { gettext_noop ("nominal bitrate"), gettext_noop ("nominal bitrate in bits/s. The actual bitrate might be different from this target bitrate.") }, { gettext_noop ("minimum bitrate"), gettext_noop ("minimum bitrate in bits/s") }, /* 190 */ { gettext_noop ("maximum bitrate"), gettext_noop ("maximum bitrate in bits/s") }, { gettext_noop ("serial"), gettext_noop ("serial number of track") }, { gettext_noop ("encoder"), gettext_noop ("encoder used to encode this stream") }, { gettext_noop ("encoder version"), gettext_noop ("version of the encoder used to encode this stream") }, { gettext_noop ("track gain"), gettext_noop ("track gain in db") }, /* 195 */ { gettext_noop ("track peak"), gettext_noop ("peak of the track") }, { gettext_noop ("album gain"), gettext_noop ("album gain in db") }, { gettext_noop ("album peak"), gettext_noop ("peak of the album") }, { gettext_noop ("reference level"), gettext_noop ("reference level of track and album gain values") }, { gettext_noop ("location name"), gettext_noop ("human readable descriptive location of where the media has been recorded or produced") }, /* 200 */ { gettext_noop ("location elevation"), gettext_noop ("geo elevation of where the media has been recorded or produced in meters according to WGS84 (zero is average sea level)") }, { gettext_noop ("location horizontal error"), gettext_noop ("represents the expected error on the horizontal positioning in meters") }, { gettext_noop ("location movement speed"), gettext_noop ("speed of the capturing device when performing the capture. Represented in m/s") }, { gettext_noop ("location movement direction"), gettext_noop ("indicates the movement direction of the device performing the capture of a media. It is represented as degrees in floating point representation, 0 means the geographic north, and increases clockwise") }, { gettext_noop ("location capture direction"), gettext_noop ("indicates the direction the device is pointing to when capturing a media. It is represented as degrees in floating point representation, 0 means the geographic north, and increases clockwise") }, /* 205 */ { gettext_noop ("show episode number"), gettext_noop ("number of the episode within a season/show") }, { gettext_noop ("show season number"), gettext_noop ("number of the season of a show/series") }, { gettext_noop ("grouping"), gettext_noop ("groups together media that are related and spans multiple tracks. An example are multiple pieces of a concerto") }, { gettext_noop ("device manufacturer"), gettext_noop ("manufacturer of the device used to create the media") }, { gettext_noop ("device model"), gettext_noop ("model of the device used to create the media") }, /* 210 */ { gettext_noop ("audio language"), gettext_noop ("language of the audio track") }, { gettext_noop ("channels"), gettext_noop ("number of audio channels") }, { gettext_noop ("sample rate"), gettext_noop ("sample rate of the audio track") }, { gettext_noop ("audio depth"), gettext_noop ("number of bits per audio sample") }, { gettext_noop ("audio bitrate"), gettext_noop ("bitrate of the audio track") }, /* 215 */ { gettext_noop ("maximum audio bitrate"), gettext_noop ("maximum audio bitrate") }, { gettext_noop ("video dimensions"), gettext_noop ("width and height of the video track (WxH)") }, { gettext_noop ("video depth"), gettext_noop ("numbers of bits per pixel") }, { gettext_noop ("frame rate"), gettext_noop ("number of frames per second (as D/N or floating point)") }, { gettext_noop ("pixel aspect ratio"), gettext_noop ("pixel aspect ratio (as D/N)") }, /* 220 */ { gettext_noop ("video bitrate"), gettext_noop ("video bitrate") }, { gettext_noop ("maximum video bitrate"), gettext_noop ("maximum video bitrate") }, { gettext_noop ("subtitle language"), gettext_noop ("language of the subtitle track") }, { gettext_noop ("video language"), gettext_noop ("language of the video track") }, { gettext_noop ("table of contents"), gettext_noop ("chapters, contents or bookmarks (in xml format)") }, /* 225 */ { gettext_noop ("video duration"), gettext_noop ("duration of a video stream") }, { gettext_noop ("audio duration"), gettext_noop ("duration of an audio stream") }, { gettext_noop ("subtitle duration"), gettext_noop ("duration of a subtitle stream") }, { gettext_noop ("audio preview"), gettext_noop ("a preview of the file audio stream") }, { gettext_noop ("last"), gettext_noop ("last") } }; /** * Total number of keyword types (for bounds-checking) */ #define HIGHEST_METATYPE_NUMBER (sizeof (meta_type_descriptions) / sizeof(*meta_type_descriptions)) /** * Get the textual name of the keyword. * * @param type meta type to get a UTF-8 string for * @return NULL if the type is not known, otherwise * an English (locale: C) string describing the type; * translate using 'dgettext ("libextractor", rval)' */ const char * EXTRACTOR_metatype_to_string (enum EXTRACTOR_MetaType type) { if ( (type < 0) || (type >= HIGHEST_METATYPE_NUMBER) ) return NULL; return meta_type_descriptions[type].short_description; } /** * Get a long description for the meta type. * * @param type meta type to get a UTF-8 description for * @return NULL if the type is not known, otherwise * an English (locale: C) string describing the type; * translate using 'dgettext ("libextractor", rval)' */ const char * EXTRACTOR_metatype_to_description (enum EXTRACTOR_MetaType type) { if ( (type < 0) || (type >= HIGHEST_METATYPE_NUMBER) ) return NULL; return meta_type_descriptions[type].long_description; } /** * Return the highest type number, exclusive as in [0,max). * * @return highest legal metatype number for this version of libextractor */ enum EXTRACTOR_MetaType EXTRACTOR_metatype_get_max () { return HIGHEST_METATYPE_NUMBER; } /* end of extractor_metatypes.c */ libextractor-1.3/src/main/test_extractor.c0000644000175000017500000001051412007275723015737 00000000000000/* This file is part of libextractor. (C) 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file main/test_extractor.c * @brief plugin for testing GNU libextractor * Data file (or buffer) for this test must be 150 * 1024 bytes long, * first 4 bytes must be "test", all other bytes should be equal to * % 256. The test client must return 0 after seeing * "Hello World!" metadata, and return 1 after seeing "Goodbye!" * metadata. * @author Christian Grothoff */ #include "platform.h" #include "extractor.h" #include #include #include #include #include #include /** * Signature of the extract method that each plugin * must provide. * * @param ec extraction context provided to the plugin */ void EXTRACTOR_test_extract_method (struct EXTRACTOR_ExtractContext *ec) { void *dp; if ((NULL == ec->config) || (0 != strcmp (ec->config, "test"))) return; /* only run in test mode */ if (4 != ec->read (ec->cls, &dp, 4)) { fprintf (stderr, "Reading at offset 0 failed\n"); ABORT (); } if (0 != strncmp ("test", dp, 4)) { fprintf (stderr, "Unexpected data at offset 0\n"); ABORT (); } if ( (1024 * 150 != ec->get_size (ec->cls)) && (UINT64_MAX != ec->get_size (ec->cls)) ) { fprintf (stderr, "Unexpected file size returned (expected 150k)\n"); ABORT (); } if (1024 * 100 + 4 != ec->seek (ec->cls, 1024 * 100 + 4, SEEK_SET)) { fprintf (stderr, "Failure to seek (SEEK_SET)\n"); ABORT (); } if (1 != ec->read (ec->cls, &dp, 1)) { fprintf (stderr, "Failure to read at 100k + 4\n"); ABORT (); } if ((1024 * 100 + 4) % 256 != * (unsigned char *) dp) { fprintf (stderr, "Unexpected data at offset 100k + 4\n"); ABORT (); } if (((1024 * 100 + 4) + 1 - (1024 * 50 + 7)) != ec->seek (ec->cls, - (1024 * 50 + 7), SEEK_CUR)) { fprintf (stderr, "Failure to seek (SEEK_SET)\n"); ABORT (); } if (1 != ec->read (ec->cls, &dp, 1)) { fprintf (stderr, "Failure to read at 50k - 3\n"); ABORT (); } if (((1024 * 100 + 4) + 1 - (1024 * 50 + 7)) % 256 != * (unsigned char *) dp) { fprintf (stderr, "Unexpected data at offset 100k - 3\n"); ABORT (); } if (1024 * 150 != ec->seek (ec->cls, 0, SEEK_END)) { fprintf (stderr, "Failure to seek (SEEK_END)\n"); ABORT (); } if (0 != ec->read (ec->cls, &dp, 1)) { fprintf (stderr, "Failed to receive EOF at 150k\n"); ABORT (); } if (1024 * 150 - 2 != ec->seek (ec->cls, -2, SEEK_END)) { fprintf (stderr, "Failure to seek (SEEK_END - 2)\n"); ABORT (); } if (1 != ec->read (ec->cls, &dp, 1)) { fprintf (stderr, "Failure to read at 150k - 3\n"); ABORT (); } if ((1024 * 150 - 2) % 256 != * (unsigned char *) dp) { fprintf (stderr, "Unexpected data at offset 150k - 3\n"); ABORT (); } if (0 != ec->proc (ec->cls, "test", EXTRACTOR_METATYPE_COMMENT, EXTRACTOR_METAFORMAT_UTF8, "", "Hello world!", strlen ("Hello world!") + 1)) { fprintf (stderr, "Unexpected return value from 'proc'\n"); ABORT (); } /* The test assumes that client orders us to stop extraction * after seeing "Goodbye!". */ if (1 != ec->proc (ec->cls, "test", EXTRACTOR_METATYPE_COMMENT, EXTRACTOR_METAFORMAT_UTF8, "", "Goodbye!", strlen ("Goodbye!") + 1)) { fprintf (stderr, "Unexpected return value from 'proc'\n"); ABORT (); } } /* end of test_extractor.c */ libextractor-1.3/src/main/getopt1.c0000644000175000017500000001060111734133541014242 00000000000000/* getopt_long and getopt_long_only entry points for GNU getopt. Copyright (C) 1987,88,89,90,91,92,93,94,96,97 Free Software Foundation, Inc. NOTE: The canonical source of this file is maintained with the GNU C Library. Bugs can be reported to bug-glibc@prep.ai.mit.edu. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "config.h" #include "getopt.h" #if !defined (__STDC__) || !__STDC__ /* This is a separate conditional since some stdc systems reject `defined (const)'. */ #ifndef const #define const #endif #endif #include /* Comment out all this code if we are using the GNU C Library, and are not actually compiling the library itself. This code is part of the GNU C Library, but also included in many other GNU distributions. Compiling and linking in this code is a waste when using the GNU C library (especially if it is a shared library). Rather than having every GNU program understand `configure --with-gnu-libc' and omit the object files, it is simpler to just do this in the source for each such file. */ #define GETOPT_INTERFACE_VERSION 2 #if !defined (_LIBC) && defined (__GLIBC__) && __GLIBC__ >= 2 #include #if _GNU_GETOPT_INTERFACE_VERSION == GETOPT_INTERFACE_VERSION #define ELIDE_CODE #endif #endif #ifndef ELIDE_CODE /* This needs to come after some library #include to get __GNU_LIBRARY__ defined. */ #ifdef __GNU_LIBRARY__ #include #endif #ifndef NULL #define NULL 0 #endif int getopt_long (argc, argv, options, long_options, opt_index) int argc; char *const *argv; const char *options; const struct option *long_options; int *opt_index; { return _getopt_internal (argc, argv, options, long_options, opt_index, 0); } /* Like getopt_long, but '-' as well as '--' can indicate a long option. If an option that starts with '-' (not '--') doesn't match a long option, but does match a short option, it is parsed as a short option instead. */ int getopt_long_only (argc, argv, options, long_options, opt_index) int argc; char *const *argv; const char *options; const struct option *long_options; int *opt_index; { return _getopt_internal (argc, argv, options, long_options, opt_index, 1); } #endif /* Not ELIDE_CODE. */ #ifdef TEST #include int main (argc, argv) int argc; char **argv; { int c; int digit_optind = 0; while (1) { int this_option_optind = optind ? optind : 1; int option_index = 0; static struct option long_options[] = { {"add", 1, 0, 0}, {"append", 0, 0, 0}, {"delete", 1, 0, 0}, {"verbose", 0, 0, 0}, {"create", 0, 0, 0}, {"file", 1, 0, 0}, {0, 0, 0, 0} }; c = getopt_long (argc, argv, "abc:d:0123456789", long_options, &option_index); if (c == -1) break; switch (c) { case 0: printf ("option %s", long_options[option_index].name); if (optarg) printf (" with arg %s", optarg); printf ("\n"); break; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': if (digit_optind != 0 && digit_optind != this_option_optind) printf ("digits occur in two different argv-elements.\n"); digit_optind = this_option_optind; printf ("option %c\n", c); break; case 'a': printf ("option a\n"); break; case 'b': printf ("option b\n"); break; case 'c': printf ("option c with value `%s'\n", optarg); break; case 'd': printf ("option d with value `%s'\n", optarg); break; case '?': break; default: printf ("?? getopt returned character code 0%o ??\n", c); } } if (optind < argc) { printf ("non-option ARGV-elements: "); while (optind < argc) printf ("%s ", argv[optind++]); printf ("\n"); } exit (0); } #endif /* TEST */ libextractor-1.3/src/main/test_file.dat.bz20000644000175000017500000000173712007054451015665 00000000000000BZh91AY&SYZ5&`L0& LI`&*0@####T# R0H…# 0R0H⑇ F)b" F&)b F.)c" F6)c F>)d" FF) d FN)@e" FV)`e F^)f" Ff)f Fn)g" Fv)g F~)h" F) h F)@i" F)`i F)j" F)j F)k" F)k F)l" F) l‘F)HmBF)hm‘F)nBnb`BF)n‘F)ȤoBF)o‘G)pBG)(p‘ÊG)HqBŊG)hq‘NJG )rBɊG()r‘ˊG0)ȤsB͊G8)s‘ϊG@)tBъGH)(t‘ӊGP)HuBՊGX)hu‘׊G`)vBيGh)v‘ۊGp)ȤwB݊Gx)w‘ߊG)xBG)(x‘G)HyBG)hy‘G)zBG)z‘G)Ȥ{BG){‘G)|BG)(|‘G)H}BG)h}‘G)~BG)~‘G)ȤBG)H  _Flibextractor-1.3/src/main/test_file.dat.gz0000644000175000017500000000170012007054322015573 00000000000000XPtest_file.datӢlle۶Ͷm[6l۶m~Eo "da† !bQFGblj/~'I,yRWgȘ)sٲș+w(XpŊ(YtWXrV^fu֫ߠaM6kޢemڶkߡc]vޣg}?`C>bcƎ?aSN>csΛ`K.[WZf6nڼe;{G;~gΞ;W^~w޻O>{o޾{_~g//\Xlibextractor-1.3/src/main/extractor_ipc_gnu.c0000644000175000017500000003231412255623341016404 00000000000000/* This file is part of libextractor. (C) 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file main/extractor_ipc_gnu.c * @brief IPC with plugin for GNU/POSIX systems * @author Christian Grothoff */ #include "platform.h" #include "plibc.h" #include "extractor.h" #include "extractor_datasource.h" #include "extractor_logging.h" #include "extractor_plugin_main.h" #include "extractor_plugins.h" #include "extractor_ipc.h" #include #include #include #include #include /** * A shared memory resource (often shared with several * other processes). */ struct EXTRACTOR_SharedMemory { /** * Pointer to the mapped region of the shm (covers the whole shm) */ void *shm_ptr; /** * Allocated size of the shm */ size_t shm_size; /** * POSIX id of the shm into which data is uncompressed */ int shm_id; /** * Name of the shm */ char shm_name[MAX_SHM_NAME + 1]; /** * Reference counter describing how many references share this SHM. */ unsigned int rc; }; /** * Definition of an IPC communication channel with * some plugin. */ struct EXTRACTOR_Channel { /** * Buffer for reading data from the plugin. */ char *mdata; /** * Size of the @e mdata buffer. */ size_t mdata_size; /** * Memory segment shared with this process. */ struct EXTRACTOR_SharedMemory *shm; /** * The plugin this channel is to communicate with. */ struct EXTRACTOR_PluginList *plugin; /** * Pipe used to communicate information to the plugin child process. * NULL if not initialized. */ int cpipe_in; /** * Number of valid bytes in the channel's buffer. */ size_t size; /** * Pipe used to read information about extracted meta data from * the plugin child process. -1 if not initialized. */ int cpipe_out; /** * Process ID of the child process for this plugin. 0 for none. */ pid_t cpid; }; /** * Create a shared memory area. * * @param size size of the shared area * @return NULL on error */ struct EXTRACTOR_SharedMemory * EXTRACTOR_IPC_shared_memory_create_ (size_t size) { struct EXTRACTOR_SharedMemory *shm; const char *tpath; if (NULL == (shm = malloc (sizeof (struct EXTRACTOR_SharedMemory)))) { LOG_STRERROR ("malloc"); return NULL; } #if SOMEBSD /* this works on FreeBSD, not sure about others... */ tpath = getenv ("TMPDIR"); if (tpath == NULL) tpath = "/tmp/"; #else tpath = "/"; /* Linux */ #endif snprintf (shm->shm_name, MAX_SHM_NAME, "%sLE-%u-%u", tpath, getpid (), (unsigned int) RANDOM()); if (-1 == (shm->shm_id = shm_open (shm->shm_name, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR))) { LOG_STRERROR_FILE ("shm_open", shm->shm_name); free (shm); return NULL; } if ( (0 != ftruncate (shm->shm_id, size)) || (NULL == (shm->shm_ptr = mmap (NULL, size, PROT_WRITE, MAP_SHARED, shm->shm_id, 0))) || (((void*) -1) == shm->shm_ptr) ) { LOG_STRERROR ("ftruncate/mmap"); (void) close (shm->shm_id); (void) shm_unlink (shm->shm_name); free (shm); return NULL; } shm->shm_size = size; shm->rc = 0; return shm; } /** * Change the reference counter for this shm instance. * * @param shm instance to update * @param delta value to change RC by * @return new RC */ unsigned int EXTRACTOR_IPC_shared_memory_change_rc_ (struct EXTRACTOR_SharedMemory *shm, int delta) { shm->rc += delta; return shm->rc; } /** * Destroy shared memory area. * * @param shm memory area to destroy * @return NULL on error */ void EXTRACTOR_IPC_shared_memory_destroy_ (struct EXTRACTOR_SharedMemory *shm) { munmap (shm->shm_ptr, shm->shm_size); (void) close (shm->shm_id); (void) shm_unlink (shm->shm_name); free (shm); } /** * Initialize shared memory area from data source. * * @param shm memory area to initialize * @param ds data source to use for initialization * @param off offset to use in data source * @param size number of bytes to copy * @return -1 on error, otherwise number of bytes copied */ ssize_t EXTRACTOR_IPC_shared_memory_set_ (struct EXTRACTOR_SharedMemory *shm, struct EXTRACTOR_Datasource *ds, uint64_t off, size_t size) { if (-1 == EXTRACTOR_datasource_seek_ (ds, off, SEEK_SET)) { LOG ("Failed to set IPC memory due to seek error\n"); return -1; } if (size > shm->shm_size) size = shm->shm_size; return EXTRACTOR_datasource_read_ (ds, shm->shm_ptr, size); } /** * Query datasource for current position * * @param ds data source to query * @return current position in the datasource or UINT_MAX on error */ uint64_t EXTRACTOR_datasource_get_pos_ (struct EXTRACTOR_Datasource *ds) { int64_t pos = EXTRACTOR_datasource_seek_ (ds, 0, SEEK_CUR); if (-1 == pos) return UINT_MAX; return pos; } /** * Create a channel to communicate with a process wrapping * the plugin of the given name. Starts the process as well. * * @param plugin the plugin * @param shm memory to share with the process * @return NULL on error, otherwise IPC channel */ struct EXTRACTOR_Channel * EXTRACTOR_IPC_channel_create_ (struct EXTRACTOR_PluginList *plugin, struct EXTRACTOR_SharedMemory *shm) { struct EXTRACTOR_Channel *channel; int p1[2]; int p2[2]; pid_t pid; struct InitMessage *init; size_t slen; if (NULL == (channel = malloc (sizeof (struct EXTRACTOR_Channel)))) { LOG_STRERROR ("malloc"); return NULL; } channel->mdata_size = 1024; if (NULL == (channel->mdata = malloc (channel->mdata_size))) { LOG_STRERROR ("malloc"); free (channel); return NULL; } channel->shm = shm; channel->plugin = plugin; channel->size = 0; if (0 != pipe (p1)) { LOG_STRERROR ("pipe"); free (channel->mdata); free (channel); return NULL; } if (0 != pipe (p2)) { LOG_STRERROR ("pipe"); (void) close (p1[0]); (void) close (p1[1]); free (channel->mdata); free (channel); return NULL; } pid = fork (); if (pid == -1) { LOG_STRERROR ("fork"); (void) close (p1[0]); (void) close (p1[1]); (void) close (p2[0]); (void) close (p2[1]); free (channel->mdata); free (channel); return NULL; } if (0 == pid) { (void) close (p1[1]); (void) close (p2[0]); free (channel->mdata); free (channel); EXTRACTOR_plugin_main_ (plugin, p1[0], p2[1]); _exit (0); } (void) close (p1[0]); (void) close (p2[1]); channel->cpipe_in = p1[1]; channel->cpipe_out = p2[0]; channel->cpid = pid; slen = strlen (shm->shm_name) + 1; if (NULL == (init = malloc (sizeof (struct InitMessage) + slen))) { LOG_STRERROR ("malloc"); EXTRACTOR_IPC_channel_destroy_ (channel); return NULL; } init->opcode = MESSAGE_INIT_STATE; init->reserved = 0; init->reserved2 = 0; init->shm_name_length = slen; init->shm_map_size = shm->shm_size; memcpy (&init[1], shm->shm_name, slen); if (sizeof (struct InitMessage) + slen != EXTRACTOR_IPC_channel_send_ (channel, init, sizeof (struct InitMessage) + slen) ) { LOG ("Failed to send INIT_STATE message to plugin\n"); EXTRACTOR_IPC_channel_destroy_ (channel); free (init); return NULL; } free (init); return channel; } /** * Destroy communication channel with a plugin/process. Also * destroys the process. * * @param channel channel to communicate with the plugin */ void EXTRACTOR_IPC_channel_destroy_ (struct EXTRACTOR_Channel *channel) { int status; if (0 != kill (channel->cpid, SIGKILL)) LOG_STRERROR ("kill"); if (-1 == waitpid (channel->cpid, &status, 0)) LOG_STRERROR ("waitpid"); if (0 != close (channel->cpipe_out)) LOG_STRERROR ("close"); if (0 != close (channel->cpipe_in)) LOG_STRERROR ("close"); if (NULL != channel->plugin) channel->plugin->channel = NULL; free (channel->mdata); free (channel); } /** * Send data via the given IPC channel (blocking). * * @param channel channel to communicate with the plugin * @param buf data to send * @param size number of bytes in buf to send * @return -1 on error, number of bytes sent on success * (never does partial writes) */ ssize_t EXTRACTOR_IPC_channel_send_ (struct EXTRACTOR_Channel *channel, const void *data, size_t size) { const char *cdata = data; size_t off = 0; ssize_t ret; while (off < size) { ret = write (channel->cpipe_in, &cdata[off], size - off); if (ret <= 0) { if (-1 == ret) LOG_STRERROR ("write"); return -1; } off += ret; } return size; } /** * Receive data from any of the given IPC channels (blocking). * Wait for one of the plugins to reply. * Selects on plugin output pipes, runs 'receive_reply' * on each activated pipe until it gets a seek request * or a done message. Called repeatedly by the user until all pipes are dry or * broken. * * @param channels array of channels, channels that break may be set to NULL * @param num_channels length of the @a channels array * @param proc function to call to process messages (may be called * more than once) * @param proc_cls closure for @a proc * @return -1 on error, 1 on success */ int EXTRACTOR_IPC_channel_recv_ (struct EXTRACTOR_Channel **channels, unsigned int num_channels, EXTRACTOR_ChannelMessageProcessor proc, void *proc_cls) { struct timeval tv; fd_set to_check; int max; unsigned int i; struct EXTRACTOR_Channel *channel; ssize_t ret; ssize_t iret; char *ndata; int closed_channel; FD_ZERO (&to_check); max = -1; for (i=0;icpipe_out, &to_check); if (max < channel->cpipe_out) max = channel->cpipe_out; } if (-1 == max) { return 1; /* nothing left to do! */ } tv.tv_sec = 0; tv.tv_usec = 500000; /* 500 ms */ if (0 >= select (max + 1, &to_check, NULL, NULL, &tv)) { /* an error or timeout -> something's wrong or all plugins hung up */ closed_channel = 0; for (i=0;iplugin->seek_request) { /* plugin blocked for too long, kill channel */ LOG ("Channel blocked, closing channel to %s\n", channel->plugin->libname); channel->plugin->channel = NULL; channel->plugin->round_finished = 1; EXTRACTOR_IPC_channel_destroy_ (channel); channels[i] = NULL; closed_channel = 1; } } if (1 == closed_channel) return 1; /* strange, no channel is to blame, let's die just to be safe */ if ((EINTR != errno) && (0 != errno)) LOG_STRERROR ("select"); return -1; } for (i=0;icpipe_out, &to_check)) continue; if (channel->mdata_size == channel->size) { /* not enough space, need to grow allocation (if allowed) */ if (MAX_META_DATA == channel->mdata_size) { LOG ("Inbound message from channel too large, aborting\n"); EXTRACTOR_IPC_channel_destroy_ (channel); channels[i] = NULL; } channel->mdata_size *= 2; if (channel->mdata_size > MAX_META_DATA) channel->mdata_size = MAX_META_DATA; if (NULL == (ndata = realloc (channel->mdata, channel->mdata_size))) { LOG_STRERROR ("realloc"); EXTRACTOR_IPC_channel_destroy_ (channel); channels[i] = NULL; } channel->mdata = ndata; } if ( (-1 == (iret = read (channel->cpipe_out, &channel->mdata[channel->size], channel->mdata_size - channel->size)) ) || (0 == iret) || (-1 == (ret = EXTRACTOR_IPC_process_reply_ (channel->plugin, channel->mdata, channel->size + iret, proc, proc_cls)) ) ) { if (-1 == iret) LOG_STRERROR ("read"); LOG ("Read error from channel, closing channel %s\n", channel->plugin->libname); EXTRACTOR_IPC_channel_destroy_ (channel); channels[i] = NULL; } else { channel->size = channel->size + iret - ret; memmove (channel->mdata, &channel->mdata[ret], channel->size); } } return 1; } /* end of extractor_ipc_gnu.c */ libextractor-1.3/src/main/extractor_common.h0000644000175000017500000000332512005511144016243 00000000000000/* This file is part of libextractor. (C) 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file main/extractor_common.h * @brief commonly used functions within the library * @author Christian Grothoff */ #ifndef EXTRACTOR_COMMON_H #define EXTRACTOR_COMMON_H /** * Writes 'size' bytes from 'buf' to 'fd', returns only when * writing is not possible, or when all 'size' bytes were written * (never does partial writes). * * @param fd fd to write into * @param buf buffer to read from * @param size number of bytes to write * @return number of bytes written (that is 'size'), or -1 on error */ ssize_t EXTRACTOR_write_all_ (int fd, const void *buf, size_t size); /** * Read a buffer from a given descriptor. * * @param fd descriptor to read from * @param buf buffer to fill * @param size number of bytes to read into 'buf' * @return -1 on error, size on success */ ssize_t EXTRACTOR_read_all_ (int fd, void *buf, size_t size); #endif libextractor-1.3/src/main/extractor_plugin_main.h0000644000175000017500000000257612003043163017263 00000000000000/* This file is part of libextractor. (C) 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file main/extractor_plugin_main.c * @brief main loop for an out-of-process plugin * @author Christian Grothoff */ #ifndef EXTRACTOR_PLUGIN_MAIN_H #define EXTRACTOR_PLUGIN_MAIN_H #include "extractor.h" /** * 'main' function of the child process. Loads the plugin, * sets up its in and out pipes, then runs the request serving function. * * @param plugin extractor plugin to use * @param in stream to read from * @param out stream to write to */ void EXTRACTOR_plugin_main_ (struct EXTRACTOR_PluginList *plugin, int in, int out); #endif libextractor-1.3/src/main/extractor_datasource.h0000644000175000017500000000663312021431242017110 00000000000000/* This file is part of libextractor. (C) 2002, 2003, 2004, 2005, 2006, 2009, 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file main/extractor_datasource.h * @brief random access and possibly decompression of data from buffer in memory or file on disk * @author Christian Grothoff */ #ifndef EXTRACTOR_DATASOURCE_H #define EXTRACTOR_DATASOURCE_H #include "extractor.h" /** * Handle to a datasource we can use for the plugins. */ struct EXTRACTOR_Datasource; /** * Create a datasource from a file on disk. * * @param filename name of the file on disk * @param proc metadata callback to call with meta data found upon opening * @param proc_cls callback cls * @return handle to the datasource, NULL on error */ struct EXTRACTOR_Datasource * EXTRACTOR_datasource_create_from_file_ (const char *filename, EXTRACTOR_MetaDataProcessor proc, void *proc_cls); /** * Create a datasource from a buffer in memory. * * @param buf data in memory * @param size number of bytes in 'buf' * @param proc metadata callback to call with meta data found upon opening * @param proc_cls callback cls * @return handle to the datasource, NULL on error */ struct EXTRACTOR_Datasource * EXTRACTOR_datasource_create_from_buffer_ (const char *buf, size_t size, EXTRACTOR_MetaDataProcessor proc, void *proc_cls); /** * Destroy a data source. * * @param ds source to destroy */ void EXTRACTOR_datasource_destroy_ (struct EXTRACTOR_Datasource *ds); /** * Make 'size' bytes of data from the data source available at 'data'. * * @param cls must be a 'struct EXTRACTOR_Datasource' * @param data where the data should be copied to * @param size maximum number of bytes requested * @return number of bytes now available in data (can be smaller than 'size'), * -1 on error */ ssize_t EXTRACTOR_datasource_read_ (void *cls, void *data, size_t size); /** * Seek in the datasource. Use 'SEEK_CUR' for whence and 'pos' of 0 to * obtain the current position in the file. * * @param cls must be a 'struct EXTRACTOR_Datasource' * @param pos position to seek (see 'man lseek')o * @param whence how to see (absolute to start, relative, absolute to end) * @return new absolute position, -1 on error (i.e. desired position * does not exist) */ int64_t EXTRACTOR_datasource_seek_ (void *cls, int64_t pos, int whence); /** * Determine the overall size of the data source (after compression). * * @param cls must be a 'struct EXTRACTOR_Datasource' * @param force force computing the size if it is unavailable * @return overall file size, -1 on error or unknown */ int64_t EXTRACTOR_datasource_get_size_ (void *cls, int force); #endif libextractor-1.3/src/main/test_plugin_loading.c0000644000175000017500000000365712006555744016734 00000000000000/* This file is part of libextractor. (C) 2002, 2003, 2004, 2005, 2006, 2009 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file main/test_plugin_loading.c * @brief testcase for dynamic loading and unloading of plugins */ #include "platform.h" #include "extractor.h" int main (int argc, char *argv[]) { struct EXTRACTOR_PluginList *arg; /* change environment to find 'extractor_test' plugin which is not installed but should be in the current directory (or .libs) on 'make check' */ if (0 != putenv ("LIBEXTRACTOR_PREFIX=." PATH_SEPARATOR_STR ".libs/")) fprintf (stderr, "Failed to update my environment, plugin loading may fail: %s\n", strerror (errno)); /* do some load/unload tests */ arg = EXTRACTOR_plugin_add (NULL, "test", NULL, EXTRACTOR_OPTION_DEFAULT_POLICY); if (arg != EXTRACTOR_plugin_add (arg, "test", NULL, EXTRACTOR_OPTION_DEFAULT_POLICY)) { fprintf (stderr, "Could load plugin twice, that should not be allowed\n"); } arg = EXTRACTOR_plugin_remove (arg, "test"); if (NULL != arg) { fprintf (stderr, "add-remove test failed!\n"); return -1; } return 0; } /* end of test_plugin_loading.c */ libextractor-1.3/src/main/test_bzip2.c0000644000175000017500000000767712007054705014765 00000000000000/* This file is part of libextractor. (C) 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file main/test_bzip2.c * @brief testcase for the bzip2 decompression (using IPC logic) * @author Christian Grothoff */ #include "platform.h" #include "extractor.h" /** * Return value from main, set to 0 for test to succeed. */ static int ret = 2; #define HLO "Hello world!" #define GOB "Goodbye!" /** * Function that libextractor calls for each * meta data item found. Should be called once * with 'Hello World!" and once with "Goodbye!". * * @param cls closure should be "main-cls" * @param plugin_name should be "test" * @param type should be "COMMENT" * @param format should be "UTF8" * @param data_mime_type should be "" * @param data hello world or good bye * @param data_len number of bytes in data * @return 0 on hello world, 1 on goodbye */ static int process_replies (void *cls, const char *plugin_name, enum EXTRACTOR_MetaType type, enum EXTRACTOR_MetaFormat format, const char *data_mime_type, const char *data, size_t data_len) { if (0 != strcmp (cls, "main-cls")) { fprintf (stderr, "closure invalid\n"); ret = 3; return 1; } if (0 != strcmp (plugin_name, "test")) { fprintf (stderr, "plugin name invalid\n"); ret = 4; return 1; } if (EXTRACTOR_METATYPE_COMMENT != type) { fprintf (stderr, "type invalid\n"); ret = 5; return 1; } if (EXTRACTOR_METAFORMAT_UTF8 != format) { fprintf (stderr, "format invalid\n"); ret = 6; return 1; } if ( (NULL == data_mime_type) || (0 != strcmp ("", data_mime_type) ) ) { fprintf (stderr, "bad mime type\n"); ret = 7; return 1; } if ( (2 == ret) && (data_len == strlen (HLO) + 1) && (0 == strncmp (data, HLO, strlen (HLO))) ) { #if 0 fprintf (stderr, "Received '%s'\n", HLO); #endif ret = 1; return 0; } if ( (1 == ret) && (data_len == strlen (GOB) + 1) && (0 == strncmp (data, GOB, strlen (GOB))) ) { #if 0 fprintf (stderr, "Received '%s'\n", GOB); #endif ret = 0; return 1; } fprintf (stderr, "Invalid meta data\n"); ret = 8; return 1; } /** * Main function for the bz2 testcase. * * @param argc number of arguments (ignored) * @param argv arguments (ignored) * @return 0 on success */ int main (int argc, char *argv[]) { struct EXTRACTOR_PluginList *pl; /* change environment to find 'extractor_test' plugin which is not installed but should be in the current directory (or .libs) on 'make check' */ if (0 != putenv ("LIBEXTRACTOR_PREFIX=." PATH_SEPARATOR_STR ".libs/")) fprintf (stderr, "Failed to update my environment, plugin loading may fail: %s\n", strerror (errno)); pl = EXTRACTOR_plugin_add_config (NULL, "test(test)", EXTRACTOR_OPTION_DEFAULT_POLICY); if (NULL == pl) { fprintf (stderr, "failed to load test plugin\n"); return 1; } EXTRACTOR_extract (pl, "test_file.dat.bz2", NULL, 0, &process_replies, "main-cls"); EXTRACTOR_plugin_remove_all (pl); return ret; } /* end of test_bzip2.c */ libextractor-1.3/src/main/extractor_ipc_w32.c0000644000175000017500000005326612255653261016243 00000000000000/* This file is part of libextractor. (C) 2002, 2003, 2004, 2005, 2006, 2009, 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "platform.h" #include "plibc.h" #include "extractor.h" #include "extractor_datasource.h" #include "extractor_plugin_main.h" #include "extractor_plugins.h" #include "extractor_ipc.h" #include "extractor_logging.h" /** */ struct EXTRACTOR_SharedMemory { /** * W32 handle of the shm into which data is uncompressed */ HANDLE map; /** * Name of the shm */ char shm_name[MAX_SHM_NAME + 1]; /** * Pointer to the mapped region of the shm (covers the whole shm) */ void *ptr; /** * Position within shm */ int64_t pos; /** * Allocated size of the shm */ int64_t shm_size; /** * Number of bytes in shm (<= shm_size) */ size_t shm_buf_size; size_t shm_map_size; /** * Reference counter describing how many references share this SHM. */ unsigned int rc; }; /** * Definition of an IPC communication channel with * some plugin. */ struct EXTRACTOR_Channel { /** * Process ID of the child process for this plugin. 0 for none. */ HANDLE hProcess; /** * Pipe used to communicate information to the plugin child process. * NULL if not initialized. */ HANDLE cpipe_in; /** * Handle of the shm object */ HANDLE map_handle; /** * Pipe used to read information about extracted meta data from * the plugin child process. -1 if not initialized. */ HANDLE cpipe_out; /** * A structure for overlapped reads on W32. */ OVERLAPPED ov_read; /** * A structure for overlapped writes on W32. */ OVERLAPPED ov_write; /** * A write buffer for overlapped writes on W32 */ unsigned char *ov_write_buffer; /** * The plugin this channel is to communicate with. */ struct EXTRACTOR_PluginList *plugin; /** * Memory segment shared with this process. */ struct EXTRACTOR_SharedMemory *shm; void *old_buf; /** * Buffer for reading data from the plugin. */ char *mdata; /** * Size of the 'mdata' buffer. */ size_t mdata_size; /** * Number of valid bytes in the channel's buffer. */ size_t size; }; /** * Create a shared memory area. * * @param size size of the shared area * @return NULL on error */ struct EXTRACTOR_SharedMemory * EXTRACTOR_IPC_shared_memory_create_ (size_t size) { struct EXTRACTOR_SharedMemory *shm; const char *tpath = "Local\\"; if (NULL == (shm = malloc (sizeof (struct EXTRACTOR_SharedMemory)))) return NULL; snprintf (shm->shm_name, MAX_SHM_NAME, "%slibextractor-shm-%u-%u", tpath, getpid(), (unsigned int) RANDOM()); shm->map = CreateFileMapping (INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, size, shm->shm_name); shm->ptr = MapViewOfFile (shm->map, FILE_MAP_WRITE, 0, 0, size); if (shm->ptr == NULL) { CloseHandle (shm->map); free (shm); return NULL; } shm->shm_size = size; shm->rc = 0; return shm; } /** * Change the reference counter for this shm instance. * * @param shm instance to update * @param delta value to change RC by * @return new RC */ unsigned int EXTRACTOR_IPC_shared_memory_change_rc_ (struct EXTRACTOR_SharedMemory *shm, int delta) { shm->rc += delta; return shm->rc; } /** * Destroy shared memory area. * * @param shm memory area to destroy * @return NULL on error */ void EXTRACTOR_IPC_shared_memory_destroy_ (struct EXTRACTOR_SharedMemory *shm) { if (shm->ptr != NULL) UnmapViewOfFile (shm->ptr); if (shm->map != 0) CloseHandle (shm->map); free (shm); } /** * Initialize shared memory area from data source. * * @param shm memory area to initialize * @param ds data source to use for initialization * @param off offset to use in data source * @param size number of bytes to copy * @return -1 on error, otherwise number of bytes copied */ ssize_t EXTRACTOR_IPC_shared_memory_set_ (struct EXTRACTOR_SharedMemory *shm, struct EXTRACTOR_Datasource *ds, uint64_t off, size_t size) { if (-1 == EXTRACTOR_datasource_seek_ (ds, off, SEEK_SET)) { LOG ("Failed to set IPC memory due to seek error\n"); return -1; } if (size > shm->shm_size) size = shm->shm_size; return EXTRACTOR_datasource_read_ (ds, shm->ptr, size); } /** * Query datasource for current position * * @param ds data source to query * @return current position in the datasource or UINT_MAX on error */ uint64_t EXTRACTOR_datasource_get_pos_ (struct EXTRACTOR_Datasource *ds) { int64_t pos = EXTRACTOR_datasource_seek_ (ds, 0, SEEK_CUR); if (-1 == pos) return UINT_MAX; return pos; } #ifndef PIPE_BUF #define PIPE_BUF 512 #endif /* Copyright Bob Byrnes curl.com> http://permalink.gmane.org/gmane.os.cygwin.patches/2121 */ /* Create a pipe, and return handles to the read and write ends, just like CreatePipe, but ensure that the write end permits FILE_READ_ATTRIBUTES access, on later versions of win32 where this is supported. This access is needed by NtQueryInformationFile, which is used to implement select and nonblocking writes. Note that the return value is either NO_ERROR or GetLastError, unlike CreatePipe, which returns a bool for success or failure. */ static int create_selectable_pipe (PHANDLE read_pipe_ptr, PHANDLE write_pipe_ptr, LPSECURITY_ATTRIBUTES sa_ptr, DWORD psize, DWORD dwReadMode, DWORD dwWriteMode) { /* Default to error. */ *read_pipe_ptr = *write_pipe_ptr = INVALID_HANDLE_VALUE; HANDLE read_pipe = INVALID_HANDLE_VALUE, write_pipe = INVALID_HANDLE_VALUE; /* Ensure that there is enough pipe buffer space for atomic writes. */ if (psize < PIPE_BUF) psize = PIPE_BUF; char pipename[MAX_PATH]; /* Retry CreateNamedPipe as long as the pipe name is in use. * Retrying will probably never be necessary, but we want * to be as robust as possible. */ while (1) { static volatile LONG pipe_unique_id; snprintf (pipename, sizeof pipename, "\\\\.\\pipe\\gnunet-%d-%ld", getpid (), InterlockedIncrement ((LONG *) & pipe_unique_id)); /* Use CreateNamedPipe instead of CreatePipe, because the latter * returns a write handle that does not permit FILE_READ_ATTRIBUTES * access, on versions of win32 earlier than WinXP SP2. * CreatePipe also stupidly creates a full duplex pipe, which is * a waste, since only a single direction is actually used. * It's important to only allow a single instance, to ensure that * the pipe was not created earlier by some other process, even if * the pid has been reused. We avoid FILE_FLAG_FIRST_PIPE_INSTANCE * because that is only available for Win2k SP2 and WinXP. */ read_pipe = CreateNamedPipeA (pipename, PIPE_ACCESS_INBOUND | dwReadMode, PIPE_TYPE_BYTE | PIPE_READMODE_BYTE, 1, /* max instances */ psize, /* output buffer size */ psize, /* input buffer size */ NMPWAIT_USE_DEFAULT_WAIT, sa_ptr); if (read_pipe != INVALID_HANDLE_VALUE) { break; } DWORD err = GetLastError (); switch (err) { case ERROR_PIPE_BUSY: /* The pipe is already open with compatible parameters. * Pick a new name and retry. */ continue; case ERROR_ACCESS_DENIED: /* The pipe is already open with incompatible parameters. * Pick a new name and retry. */ continue; case ERROR_CALL_NOT_IMPLEMENTED: /* We are on an older Win9x platform without named pipes. * Return an anonymous pipe as the best approximation. */ if (CreatePipe (read_pipe_ptr, write_pipe_ptr, sa_ptr, psize)) { return 0; } err = GetLastError (); return err; default: return err; } /* NOTREACHED */ } /* Open the named pipe for writing. * Be sure to permit FILE_READ_ATTRIBUTES access. */ write_pipe = CreateFileA (pipename, GENERIC_WRITE | FILE_READ_ATTRIBUTES, 0, /* share mode */ sa_ptr, OPEN_EXISTING, dwWriteMode, /* flags and attributes */ 0); /* handle to template file */ if (write_pipe == INVALID_HANDLE_VALUE) { /* Failure. */ DWORD err = GetLastError (); CloseHandle (read_pipe); return err; } /* Success. */ *read_pipe_ptr = read_pipe; *write_pipe_ptr = write_pipe; return 0; } /** * Communicates plugin data (library name, options) to the plugin * process. This is only necessary on W32, where this information * is not inherited by the plugin, because it is not forked. * * @param plugin plugin context * * @return 0 on success, -1 on failure */ static int write_plugin_data (struct EXTRACTOR_PluginList *plugin, struct EXTRACTOR_Channel *channel) { size_t libname_len, shortname_len, opts_len; DWORD len; char *str; size_t total_len = 0; unsigned char *buf, *ptr; ssize_t write_result; libname_len = strlen (plugin->libname) + 1; total_len += sizeof (size_t) + libname_len; shortname_len = strlen (plugin->short_libname) + 1; total_len += sizeof (size_t) + shortname_len; if (plugin->plugin_options != NULL) { opts_len = strlen (plugin->plugin_options) + 1; total_len += opts_len; } else { opts_len = 0; } total_len += sizeof (size_t); buf = malloc (total_len); if (buf == NULL) return -1; ptr = buf; memcpy (ptr, &libname_len, sizeof (size_t)); ptr += sizeof (size_t); memcpy (ptr, plugin->libname, libname_len); ptr += libname_len; memcpy (ptr, &shortname_len, sizeof (size_t)); ptr += sizeof (size_t); memcpy (ptr, plugin->short_libname, shortname_len); ptr += shortname_len; memcpy (ptr, &opts_len, sizeof (size_t)); ptr += sizeof (size_t); if (opts_len > 0) { memcpy (ptr, plugin->plugin_options, opts_len); ptr += opts_len; } write_result = EXTRACTOR_IPC_channel_send_ (channel, buf, total_len); free (buf); return total_len == write_result; } /** * Create a channel to communicate with a process wrapping * the plugin of the given name. Starts the process as well. * * @param plugin the plugin * @param shm memory to share with the process * @return NULL on error, otherwise IPC channel */ struct EXTRACTOR_Channel * EXTRACTOR_IPC_channel_create_ (struct EXTRACTOR_PluginList *plugin, struct EXTRACTOR_SharedMemory *shm) { struct EXTRACTOR_Channel *channel; HANDLE p1[2]; HANDLE p2[2]; struct InitMessage *init; size_t slen; STARTUPINFOA startup; PROCESS_INFORMATION proc; char cmd[MAX_PATH + 1]; char arg1[10], arg2[10]; HANDLE p10_os_inh = INVALID_HANDLE_VALUE; HANDLE p21_os_inh = INVALID_HANDLE_VALUE; SECURITY_ATTRIBUTES sa; if (NULL == (channel = malloc (sizeof (struct EXTRACTOR_Channel)))) { LOG_STRERROR ("malloc"); return NULL; } memset (channel, 0, sizeof (struct EXTRACTOR_Channel)); channel->mdata_size = 1024; if (NULL == (channel->mdata = malloc (channel->mdata_size))) { LOG_STRERROR ("malloc"); free (channel); return NULL; } channel->shm = shm; channel->plugin = plugin; channel->size = 0; sa.nLength = sizeof (sa); sa.lpSecurityDescriptor = NULL; sa.bInheritHandle = FALSE; if (0 != create_selectable_pipe (&p1[0], &p1[1], &sa, 1024, FILE_FLAG_OVERLAPPED, FILE_FLAG_OVERLAPPED)) { LOG_STRERROR ("pipe"); free (channel); return NULL; } if (0 != create_selectable_pipe (&p2[0], &p2[1], &sa, 1024, FILE_FLAG_OVERLAPPED, FILE_FLAG_OVERLAPPED)) { LOG_STRERROR ("pipe"); CloseHandle (p1[0]); CloseHandle (p1[1]); free (channel); return NULL; } if (!DuplicateHandle (GetCurrentProcess (), p1[0], GetCurrentProcess (), &p10_os_inh, 0, TRUE, DUPLICATE_SAME_ACCESS) || !DuplicateHandle (GetCurrentProcess (), p2[1], GetCurrentProcess (), &p21_os_inh, 0, TRUE, DUPLICATE_SAME_ACCESS)) { LOG_STRERROR ("DuplicateHandle"); if (p10_os_inh != INVALID_HANDLE_VALUE) CloseHandle (p10_os_inh); if (p21_os_inh != INVALID_HANDLE_VALUE) CloseHandle (p21_os_inh); CloseHandle (p1[0]); CloseHandle (p1[1]); CloseHandle (p2[0]); CloseHandle (p2[1]); CloseHandle (p1[0]); CloseHandle (p1[1]); free (channel); return NULL; } memset (&proc, 0, sizeof (PROCESS_INFORMATION)); memset (&startup, 0, sizeof (STARTUPINFOA)); /* TODO: write our own plugin-hosting executable? rundll32, for once, has smaller than usual stack size. * Also, users might freak out seeing over 9000 rundll32 processes (seeing over 9000 processes named * "libextractor_plugin_helper" is probably less confusing). */ snprintf(cmd, MAX_PATH, "rundll32.exe libextractor-3.dll,RundllEntryPoint@16 %lu %lu", p10_os_inh, p21_os_inh); cmd[MAX_PATH] = '\0'; startup.cb = sizeof (STARTUPINFOA); if (CreateProcessA (NULL, cmd, NULL, NULL, TRUE, CREATE_SUSPENDED, NULL, NULL, &startup, &proc)) { channel->hProcess = proc.hProcess; ResumeThread (proc.hThread); CloseHandle (proc.hThread); } else { LOG_STRERROR ("CreateProcess"); CloseHandle (p1[0]); CloseHandle (p1[1]); CloseHandle (p2[0]); CloseHandle (p2[1]); free (channel); return NULL; } CloseHandle (p1[0]); CloseHandle (p2[1]); CloseHandle (p10_os_inh); CloseHandle (p21_os_inh); channel->cpipe_in = p1[1]; channel->cpipe_out = p2[0]; memset (&channel->ov_read, 0, sizeof (OVERLAPPED)); memset (&channel->ov_write, 0, sizeof (OVERLAPPED)); channel->ov_write_buffer = NULL; channel->ov_write.hEvent = CreateEvent (NULL, TRUE, TRUE, NULL); channel->ov_read.hEvent = CreateEvent (NULL, TRUE, TRUE, NULL); if (!write_plugin_data (plugin, channel)) { LOG_STRERROR ("write_plugin_data"); EXTRACTOR_IPC_channel_destroy_ (channel); return NULL; } slen = strlen (shm->shm_name) + 1; if (NULL == (init = malloc (sizeof (struct InitMessage) + slen))) { LOG_STRERROR ("malloc"); EXTRACTOR_IPC_channel_destroy_ (channel); return NULL; } init->opcode = MESSAGE_INIT_STATE; init->reserved = 0; init->reserved2 = 0; init->shm_name_length = slen; init->shm_map_size = shm->shm_size; memcpy (&init[1], shm->shm_name, slen); if (sizeof (struct InitMessage) + slen != EXTRACTOR_IPC_channel_send_ (channel, init, sizeof (struct InitMessage) + slen)) { LOG ("Failed to send INIT_STATE message to plugin\n"); EXTRACTOR_IPC_channel_destroy_ (channel); free (init); return NULL; } free (init); return channel; } /** * Destroy communication channel with a plugin/process. Also * destroys the process. * * @param channel channel to communicate with the plugin */ void EXTRACTOR_IPC_channel_destroy_ (struct EXTRACTOR_Channel *channel) { int status; CloseHandle (channel->cpipe_out); CloseHandle (channel->cpipe_in); CloseHandle (channel->ov_read.hEvent); CloseHandle (channel->ov_write.hEvent); if (channel->ov_write_buffer != NULL) { free (channel->ov_write_buffer); channel->ov_write_buffer = NULL; } if (NULL != channel->plugin) channel->plugin->channel = NULL; free (channel->mdata); WaitForSingleObject (channel->hProcess, 1000); TerminateProcess (channel->hProcess, 0); CloseHandle (channel->hProcess); free (channel); } /** * Send data via the given IPC channel (blocking). * * @param channel channel to communicate with the plugin * @param buf data to send * @param size number of bytes in buf to send * @return -1 on error, number of bytes sent on success * (never does partial writes) */ ssize_t EXTRACTOR_IPC_channel_send_ (struct EXTRACTOR_Channel *channel, const void *data, size_t size) { DWORD written; DWORD err; BOOL bresult; const char *cdata = data; if (WAIT_OBJECT_0 != WaitForSingleObject (channel->ov_write.hEvent, INFINITE)) return -1; ResetEvent (channel->ov_write.hEvent); if (channel->old_buf != NULL) free (channel->old_buf); channel->old_buf = malloc (size); if (channel->old_buf == NULL) return -1; memcpy (channel->old_buf, data, size); written = 0; channel->ov_write.Offset = 0; channel->ov_write.OffsetHigh = 0; channel->ov_write.Pointer = 0; channel->ov_write.Internal = 0; channel->ov_write.InternalHigh = 0; bresult = WriteFile (channel->cpipe_in, channel->old_buf, size, &written, &channel->ov_write); if (bresult == TRUE) { SetEvent (channel->ov_write.hEvent); free (channel->old_buf); channel->old_buf = NULL; return written; } err = GetLastError (); if (err == ERROR_IO_PENDING) return size; SetEvent (channel->ov_write.hEvent); free (channel->old_buf); channel->old_buf = NULL; SetLastError (err); return -1; } /** * Receive data from any of the given IPC channels (blocking). * Wait for one of the plugins to reply. * Selects on plugin output pipes, runs 'receive_reply' * on each activated pipe until it gets a seek request * or a done message. Called repeatedly by the user until all pipes are dry or * broken. * * @param channels array of channels, channels that break may be set to NULL * @param num_channels length of the 'channels' array * @param proc function to call to process messages (may be called * more than once) * @param proc_cls closure for 'proc' * @return -1 on error, 1 on success */ int EXTRACTOR_IPC_channel_recv_ (struct EXTRACTOR_Channel **channels, unsigned int num_channels, EXTRACTOR_ChannelMessageProcessor proc, void *proc_cls) { DWORD ms; DWORD first_ready; DWORD dwresult; DWORD bytes_read; BOOL bresult; unsigned int i; unsigned int c; char *ndata; HANDLE events[MAXIMUM_WAIT_OBJECTS]; int closed_channel; c = 0; for (i = 0; i < num_channels; i++) { if (NULL == channels[i]) continue; if (MAXIMUM_WAIT_OBJECTS == c) return -1; if (WaitForSingleObject (channels[i]->ov_read.hEvent, 0) == WAIT_OBJECT_0) { ResetEvent (channels[i]->ov_read.hEvent); bresult = ReadFile (channels[i]->cpipe_out, &i, 0, &bytes_read, &channels[i]->ov_read); if (bresult == TRUE) { SetEvent (channels[i]->ov_read.hEvent); } else { DWORD err = GetLastError (); if (err != ERROR_IO_PENDING) SetEvent (channels[i]->ov_read.hEvent); } } events[c] = channels[i]->ov_read.hEvent; c++; } if (c == 0) return 1; /* nothing left to do! */ ms = 500; first_ready = WaitForMultipleObjects (c, events, FALSE, ms); if (first_ready == WAIT_TIMEOUT || first_ready == WAIT_FAILED) { /* an error or timeout -> something's wrong or all plugins hung up */ closed_channel = 0; for (i = 0; i < num_channels; i++) { struct EXTRACTOR_Channel *channel = channels[i]; if (NULL == channel) continue; if (-1 == channel->plugin->seek_request) { /* plugin blocked for too long, kill the channel */ LOG ("Channel blocked, closing channel to %s\n", channel->plugin->libname); channel->plugin->channel = NULL; channel->plugin->round_finished = 1; EXTRACTOR_IPC_channel_destroy_ (channel); channels[i] = NULL; closed_channel = 1; } } if (1 == closed_channel) return 1; LOG_STRERROR ("WaitForMultipleObjects"); return -1; } i = 0; for (i = 0; i < num_channels; i++) { if (NULL == channels[i]) continue; dwresult = WaitForSingleObject (channels[i]->ov_read.hEvent, 0); if (dwresult == WAIT_OBJECT_0) { int ret; if (channels[i]->mdata_size == channels[i]->size) { /* not enough space, need to grow allocation (if allowed) */ if (MAX_META_DATA == channels[i]->mdata_size) { LOG ("Inbound message from channel too large, aborting\n"); EXTRACTOR_IPC_channel_destroy_ (channels[i]); channels[i] = NULL; } channels[i]->mdata_size *= 2; if (channels[i]->mdata_size > MAX_META_DATA) channels[i]->mdata_size = MAX_META_DATA; if (NULL == (ndata = realloc (channels[i]->mdata, channels[i]->mdata_size))) { LOG_STRERROR ("realloc"); EXTRACTOR_IPC_channel_destroy_ (channels[i]); channels[i] = NULL; } channels[i]->mdata = ndata; } bresult = ReadFile (channels[i]->cpipe_out, &channels[i]->mdata[channels[i]->size], channels[i]->mdata_size - channels[i]->size, &bytes_read, NULL); if (bresult) ret = EXTRACTOR_IPC_process_reply_ (channels[i]->plugin, channels[i]->mdata, channels[i]->size + bytes_read, proc, proc_cls); if (!bresult || -1 == ret) { DWORD error = GetLastError (); SetErrnoFromWinError (error); if (!bresult) LOG_STRERROR ("ReadFile"); EXTRACTOR_IPC_channel_destroy_ (channels[i]); channels[i] = NULL; } else { memmove (channels[i]->mdata, &channels[i]->mdata[ret], channels[i]->size + bytes_read - ret); channels[i]->size = channels[i]->size + bytes_read- ret; } } } return 1; } libextractor-1.3/src/main/extractor_logging.h0000644000175000017500000000502412255336022016406 00000000000000/* This file is part of libextractor. (C) 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file main/extractor_logging.h * @brief logging API for GNU libextractor * @author Christian Grothoff */ #ifndef EXTRACTOR_LOGGING_H #define EXTRACTOR_LOGGING_H #define DEBUG 0 #if DEBUG /** * Log function. * * @param file name of file with the error * @param line line number with the error * @param ... log message and arguments */ void EXTRACTOR_log_ (const char *file, int line, const char *format, ...); /** * Log a message. * * @param ... format string and arguments for fmt (printf-style) */ #define LOG(...) EXTRACTOR_log_(__FILE__, __LINE__, __VA_ARGS__) #else /** * Log a message. * * @param ... format string and arguments for fmt (printf-style) */ #define LOG(...) #endif /** * Log an error message about a failed system/libc call * using an error message based on 'errno'. * * @param syscall name of the syscall that failed */ #define LOG_STRERROR(syscall) LOG("System call `%s' failed: %s\n", syscall, STRERROR (errno)) /** * Log an error message about a failed system/libc call * involving a file using an error message based on 'errno'. * * @param syscall name of the syscall that failed * @param filename name of the file that was involved */ #define LOG_STRERROR_FILE(syscall,filename) LOG("System call `%s' failed for file `%s': %s\n", syscall, filename, STRERROR (errno)) /** * Abort the program reporting an assertion failure * * @param file filename with the failure * @param line line number with the failure */ void EXTRACTOR_abort_ (const char *file, int line); /** * Abort program if assertion fails. * * @param cond assertion that must hold. */ #define ASSERT(cond) do { if (! (cond)) EXTRACTOR_abort_ (__FILE__, __LINE__); } while (0) #endif libextractor-1.3/src/main/test_gzip.c0000644000175000017500000001004412007241350014660 00000000000000/* This file is part of libextractor. (C) 2012 Vidyut Samanta and Christian Grothoff libextractor is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. libextractor is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with libextractor; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @file main/test_gzip.c * @brief testcase for gzip decompression in the extractor * @author Christian Grothoff */ #include "platform.h" #include "extractor.h" /** * Return value from main, set to 0 for test to succeed. */ static int ret = 2; #define HLO "Hello world!" #define GOB "Goodbye!" /** * Function that libextractor calls for each * meta data item found. Should be called once * with 'Hello World!" and once with "Goodbye!". * * @param cls closure should be "main-cls" * @param plugin_name should be "test" * @param type should be "COMMENT" * @param format should be "UTF8" * @param data_mime_type should be "" * @param data hello world or good bye * @param data_len number of bytes in data * @return 0 on hello world, 1 on goodbye */ static int process_replies (void *cls, const char *plugin_name, enum EXTRACTOR_MetaType type, enum EXTRACTOR_MetaFormat format, const char *data_mime_type, const char *data, size_t data_len) { if (0 != strcmp (cls, "main-cls")) { fprintf (stderr, "closure invalid\n"); ret = 3; return 1; } if (0 == strcmp (plugin_name, "")) return 0; /* skip this one */ if (0 != strcmp (plugin_name, "test")) { fprintf (stderr, "plugin name invalid: `%s'\n", plugin_name); ret = 4; return 1; } if (EXTRACTOR_METATYPE_COMMENT != type) { fprintf (stderr, "type invalid\n"); ret = 5; return 1; } if (EXTRACTOR_METAFORMAT_UTF8 != format) { fprintf (stderr, "format invalid\n"); ret = 6; return 1; } if ( (NULL == data_mime_type) || (0 != strcmp ("", data_mime_type) ) ) { fprintf (stderr, "bad mime type\n"); ret = 7; return 1; } if ( (2 == ret) && (data_len == strlen (HLO) + 1) && (0 == strncmp (data, HLO, strlen (HLO))) ) { #if 0 fprintf (stderr, "Received '%s'\n", HLO); #endif ret = 1; return 0; } if ( (1 == ret) && (data_len == strlen (GOB) + 1) && (0 == strncmp (data, GOB, strlen (GOB))) ) { #if 0 fprintf (stderr, "Received '%s'\n", GOB); #endif ret = 0; return 1; } fprintf (stderr, "Invalid meta data\n"); ret = 8; return 1; } /** * Main function for the gzip testcase. * * @param argc number of arguments (ignored) * @param argv arguments (ignored) * @return 0 on success */ int main (int argc, char *argv[]) { struct EXTRACTOR_PluginList *pl; /* change environment to find 'extractor_test' plugin which is not installed but should be in the current directory (or .libs) on 'make check' */ if (0 != putenv ("LIBEXTRACTOR_PREFIX=." PATH_SEPARATOR_STR ".libs/")) fprintf (stderr, "Failed to update my environment, plugin loading may fail: %s\n", strerror (errno)); pl = EXTRACTOR_plugin_add_config (NULL, "test(test)", EXTRACTOR_OPTION_DEFAULT_POLICY); if (NULL == pl) { fprintf (stderr, "failed to load test plugin\n"); return 1; } EXTRACTOR_extract (pl, "test_file.dat.gz", NULL, 0, &process_replies, "main-cls"); EXTRACTOR_plugin_remove_all (pl); return ret; } /* end of test_gzip.c */ libextractor-1.3/src/intlemu/0000755000175000017500000000000012256015537013332 500000000000000libextractor-1.3/src/intlemu/Makefile.in0000644000175000017500000004402512256015520015314 00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = src/intlemu DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/abi-gsf.m4 \ $(top_srcdir)/m4/ac_define_dir.m4 \ $(top_srcdir)/m4/ax_create_pkgconfig_info.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glib-2.0.m4 \ $(top_srcdir)/m4/gtk-2.0.m4 $(top_srcdir)/m4/gtk-3.0.m4 \ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libintlemu_la_LIBADD = am_libintlemu_la_OBJECTS = intlemu.lo libintlemu_la_OBJECTS = $(am_libintlemu_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent libintlemu_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libintlemu_la_LDFLAGS) $(LDFLAGS) -o $@ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(libintlemu_la_SOURCES) DIST_SOURCES = $(libintlemu_la_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ GLIB_LIBS = @GLIB_LIBS@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GOBJECT_QUERY = @GOBJECT_QUERY@ GREP = @GREP@ GSF_CFLAGS = @GSF_CFLAGS@ GSF_GNOME_CFLAGS = @GSF_GNOME_CFLAGS@ GSF_GNOME_LIBS = @GSF_GNOME_LIBS@ GSF_LIBS = @GSF_LIBS@ GSTREAMER_APP_CFLAGS = @GSTREAMER_APP_CFLAGS@ GSTREAMER_APP_LIBS = @GSTREAMER_APP_LIBS@ GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@ GSTREAMER_LIBS = @GSTREAMER_LIBS@ GSTREAMER_PBUTILS_CFLAGS = @GSTREAMER_PBUTILS_CFLAGS@ GSTREAMER_PBUTILS_LIBS = @GSTREAMER_PBUTILS_LIBS@ GSTREAMER_TAG_CFLAGS = @GSTREAMER_TAG_CFLAGS@ GSTREAMER_TAG_LIBS = @GSTREAMER_TAG_LIBS@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ HAVE_CXX = @HAVE_CXX@ HAVE_ZZUF = @HAVE_ZZUF@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ ISOLOCALEDIR = @ISOLOCALEDIR@ LD = @LD@ LDFLAGS = @LDFLAGS@ LE_INTLINCL = @LE_INTLINCL@ LE_LIBINTL = @LE_LIBINTL@ LE_LIB_LDFLAGS = @LE_LIB_LDFLAGS@ LE_LIB_LIBS = @LE_LIB_LIBS@ LE_PLUGIN_LDFLAGS = @LE_PLUGIN_LDFLAGS@ LIBEXT = @LIBEXT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIB_VERSION_AGE = @LIB_VERSION_AGE@ LIB_VERSION_CURRENT = @LIB_VERSION_CURRENT@ LIB_VERSION_REVISION = @LIB_VERSION_REVISION@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALEDIR = @LOCALEDIR@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACKAGE_VERSION_NOALPHA = @PACKAGE_VERSION_NOALPHA@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ POSUB = @POSUB@ QT_CPPFLAGS = @QT_CPPFLAGS@ QT_LDFLAGS = @QT_LDFLAGS@ RANLIB = @RANLIB@ RPLUGINDIR = @RPLUGINDIR@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKET_LIBS = @SOCKET_LIBS@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XTRA_CPPLIBS = @XTRA_CPPLIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfig_libdir = @pkgconfig_libdir@ pkgconfig_libfile = @pkgconfig_libfile@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ noinst_LTLIBRARIES = \ libintlemu.la libintlemu_la_SOURCES = \ libintlemu.h \ intlemu.c libintlemu_la_LDFLAGS = \ -framework CoreFoundation all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/intlemu/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/intlemu/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; for p in $$list; do \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ test "$$dir" != "$$p" || dir=.; \ echo "rm -f \"$${dir}/so_locations\""; \ rm -f "$${dir}/so_locations"; \ done libintlemu.la: $(libintlemu_la_OBJECTS) $(libintlemu_la_DEPENDENCIES) $(EXTRA_libintlemu_la_DEPENDENCIES) $(AM_V_CCLD)$(libintlemu_la_LINK) $(libintlemu_la_OBJECTS) $(libintlemu_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/intlemu.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(LTLIBRARIES) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstLTLIBRARIES ctags distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libextractor-1.3/src/intlemu/Makefile.am0000644000175000017500000000022511260753602015301 00000000000000noinst_LTLIBRARIES = \ libintlemu.la libintlemu_la_SOURCES = \ libintlemu.h \ intlemu.c libintlemu_la_LDFLAGS = \ -framework CoreFoundation libextractor-1.3/src/intlemu/libintlemu.h0000644000175000017500000000137011260753602015564 00000000000000/* * libintlemu - A Core Foundation libintl emulator * Copyright (C) 2008 Heikki Lindholm * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. */ #ifndef LIBINTLEMU_H #define LIBINTLEMU_H #include #define gettext(msgid) \ intlemu_bgettext(CFBundleGetMainBundle(), msgid) #define dgettext(domainname, msgid) \ intlemu_bgettext(CFBundleGetBundleWithIdentifier(CFSTR(domainname)), msgid) #define gettext_noop(s) s extern char * intlemu_bgettext (CFBundleRef bundle, const char *msgid); #endif libextractor-1.3/src/intlemu/intlemu.c0000644000175000017500000000553411260753602015076 00000000000000/* * libintlemu - A Core Foundation libintl emulator * Copyright (C) 2008 Heikki Lindholm * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. */ #include #include #include static pthread_mutex_t intlemu_lock; static CFMutableDictionaryRef intlemu_dict; static void intlemu_cstring_release(CFAllocatorRef allocator, const void *value) { free((void *)value); } void __attribute__ ((constructor)) intlemu_init_() { CFDictionaryValueCallBacks cstring_value_callbacks = { 0, /* version */ NULL, /* retain callback */ &intlemu_cstring_release, /* release callback */ NULL, /* copy description */ NULL /* equal */ }; if (pthread_mutex_init(&intlemu_lock, NULL) != 0) abort(); intlemu_dict = CFDictionaryCreateMutable( kCFAllocatorDefault, 0, &kCFCopyStringDictionaryKeyCallBacks, &cstring_value_callbacks); if (intlemu_dict == NULL) abort(); } void __attribute__ ((destructor)) intlemu_fini_() { if (intlemu_dict) CFRelease(intlemu_dict); pthread_mutex_destroy(&intlemu_lock); } char * intlemu_bgettext (CFBundleRef bundle, const char *msgid) { CFStringRef key; const char *value; CFStringRef s; CFRange r; CFIndex len; CFIndex clen; char *buf; if (msgid == NULL) return NULL; if (bundle == NULL) return msgid; key = CFStringCreateWithBytes( kCFAllocatorDefault, (const UInt8 *)msgid, (CFIndex)strlen(msgid), kCFStringEncodingUTF8, false); if (pthread_mutex_lock(&intlemu_lock) != 0) abort(); value = (char *)CFDictionaryGetValue(intlemu_dict, key); if (pthread_mutex_unlock(&intlemu_lock) != 0) abort(); if (value != NULL) { CFRelease(key); return (char *)value; } /* no cached translaation, so, find one from the bundle */ s = CFBundleCopyLocalizedString( bundle, key, NULL, NULL); if (s == key) { CFRelease(key); return (char *)msgid; } /* get the length in bytes */ r.location = 0; r.length = CFStringGetLength(s); len = 0; clen = CFStringGetBytes( s, r, kCFStringEncodingUTF8, 0, false, NULL, 0, &len); buf = NULL; if (clen == r.length) { buf = malloc(len + 1); } if (buf == NULL) { CFRelease(s); CFRelease(key); return (char *)msgid; } clen = CFStringGetBytes( s, r, kCFStringEncodingUTF8, 0, false, (UInt8 *)buf, len, &len); buf[len] = '\0'; if (clen == r.length) { if (pthread_mutex_lock(&intlemu_lock) != 0) abort(); CFDictionaryAddValue(intlemu_dict, key, buf); if (pthread_mutex_unlock(&intlemu_lock) != 0) abort(); value = buf; } else { free(buf); value = msgid; } CFRelease(s); CFRelease(key); return (char *)value; } libextractor-1.3/NEWS0000644000175000017500000001122412030337353011476 00000000000000Tue Sep 25 16:25:05 CEST 2012 Releasing GNU libextractor 1.0.0. Fri Aug 17 21:28:33 CEST 2012 Major changes to plugin mechanism now allow out-of-process plugins full random-access to the entire file. Most plugins have now been rewritten to the new plugin API (0.7). The external (libextractor) API will remain unchanged and compatible with LE 0.6. As part of the rewrite, many plugins were changed to use standard 3rd party libraries (libjpeg, libtiff, libgif, libtidy, libmagic) for parsing. A new plugin based on gstreamer replaces many existing multimedia plugins. Automated testcases for (almost all) of the plugins were also written and the documentation was updated. The license was changed to GNU GPL v3+. PDF support removed (GPLv2-only). REAL support removed (not yet ported). Mon Nov 28 12:17:42 CET 2011 Added MKV (Matroska) plugin. Releasing libextractor 0.6.3. Sun Jun 13 13:15:43 CEST 2010 Releasing libextractor 0.6.2. Sun Mar 14 00:09:45 CET 2010 Releasing libextractor 0.6.1. Wed Jan 13 17:11:07 CET 2010 Major API change (no longer returning linked lists, using callbacks instead). Releasing libextractor 0.6.0. Sat Jul 4 23:05:22 CEST 2009 Releasing libextractor 0.5.23. Fri Feb 20 00:28:00 MST 2009 Releasing libextractor 0.5.22. Sun Nov 2 20:19:02 MST 2008 Releasing libextractor 0.5.21. Tue Aug 12 04:40:49 EEST 2008 Added an S3M (Scream Tracker 3 Module) plugin. Added an XM (eXtended Module) plugin. Added an IT (Impulse Tracker) plugin. Mon Jun 23 19:05:07 EET 2008 Fixed concurrency issues in plugin (un-)loading by adding locking around libltdl functions. Fri Jun 20 23:34:02 EET 2008 Added an FFmpeg-based thumbnail extractor plugin, initially supporting only bmp and png files. Mon Mar 21 00:00:52 MDT 2008 Releasing libextractor 0.5.20a. Thu Mar 20 23:38:47 MDT 2008 Releasing libextractor 0.5.20. Wed Feb 13 10:16:55 EET 2008 Added a plugin for AppleSingle/AppleDouble files. Sat Jan 12 14:14:32 MST 2008 Releasing libextractor 0.5.19a. Mon Jan 7 08:46:40 MST 2008 Releasing libextractor 0.5.19. Wed Dec 26 19:38:22 MST 2007 Added a FLAC (.flac) plugin. Wed Dec 26 14:50:11 EET 2007 Added a Flash Video (.flv) plugin. Sat Jan 6 14:27:18 EET 2007 Added an NSFE (Extended Nintendo Sound Format) plugin. Mon Jan 1 19:10:40 MST 2007 Added pkgconfig support. Releasing libextractor 0.5.17. Mon Nov 20 22:08:55 EET 2006 Added an SID (C64 music file) plugin. Sat Nov 11 00:04:34 EET 2006 Added an NSF (NES Sound Format) plugin. Tue Apr 18 14:44:37 PDT 2006 Added dictionaries for Finnish, French, Gaelic and Swedish (for printable extractors). Thu Mar 9 17:55:09 PST 2006 Word history extraction works (wordleaker). Sat Feb 18 17:39:10 PST 2006 Releasing libextractor 0.5.10. Fri Dec 23 11:28:23 PST 2005 Releasing libextractor 0.5.9. Thu Jul 14 22:30:45 CEST 2005 exiv2 works. Sat May 21 13:42:46 EST 2005 Releasing libextractor 0.5.0. Fri May 6 06:02:02 EST 2005 Added Python binding. Thu Mar 17 08:07:04 EST 2005 libextractor becomes a GNU package. Thu Feb 24 00:34:15 EST 2005 Thumbnails work. Sun Feb 20 16:36:17 EST 2005 Helix works (new Real format). Sat Nov 13 13:23:23 EST 2004 Releasing libextractor 0.3.11. Sat Oct 23 13:21:23 EST 2004 Releasing libextractor 0.3.10. Fri Oct 22 19:18:38 EST 2004 id3v2.3 and id3v2.4 work. Sun Oct 17 18:12:11 EST 2004 tar and tar.gz work. Sun Oct 17 17:42:16 EST 2004 deb works. Sun Oct 17 13:52:25 EST 2004 man works. Sat Oct 2 18:02:56 EST 2004 dvi works. Thu Sep 23 11:25:42 EST 2004 Added support for StarOffice and ID3v2. Fri Sep 10 22:00:09 EST 2004 Added support for RipeMD-160. Fri Sep 10 19:49:39 EST 2004 Added support for SHA-1 and MD5. Fri Sep 10 10:35:27 EST 2004 OpenOffice works. Mon Aug 30 23:16:17 IST 2004 ole2 works (WinWord, Excel, PowerPoint). Wed Apr 28 19:28:39 EST 2004 Releasing libextractor 0.3.1. Wed Aug 25 18:59:13 IST 2004 GNU gettext support added. Wed Apr 28 01:26:53 EST 2004 elf works. Sat Apr 10 01:34:04 EST 2004 riff / avi works. Sat Apr 10 00:30:19 EST 2004 mpeg works. Sun Apr 4 20:24:39 EST 2004 tiff works. Wed Jul 16 13:41:34 EST 2003 Releasing 0.2.5. Mon Jun 30 21:27:42 EST 2003 Releasing 0.2.4. Thu Jan 23 00:34:20 EST 2003 rpm works. Tue Jan 7 18:31:41 CET 2003 ps works. Tue Dec 31 15:26:00 EST 2002 pdf works. Tue Dec 17 20:36:13 CET 2002 MIME-type detection works. Fri Jun 7 01:48:34 EST 2002 real meta formats (rm, ra) work. Tue Jun 4 23:21:38 EST 2002 png works. Sun Jun 2 22:49:17 EST 2002 jpeg and HTML work. Sat May 18 02:35:39 EST 2002 ogg works. Thu May 16 00:04:03 EST 2002 mp3 works. Wed May 15 21:38:31 EST 2002 Project started. libextractor-1.3/ChangeLog0000644000175000017500000006243112255661647012576 00000000000000Sun Dec 22 23:11:28 CET 2013 Releasing GNU libextractor 1.3. -CG Sun Dec 22 17:47:38 CET 2013 Fixing issue where one plugin blocked indefinitely could prevent others from ever (successfully) seeking and thus extracting data. -CG Sat Dec 21 00:26:34 CET 2013 Fix check for Gtk3. -CG Added opus audio-preview plugin. -bratao Sat Oct 19 16:30:37 CEST 2013 Increase select() timeout, handle timeout case better. Releasing GNU libextractor 1.2. -CG Mon Sep 23 14:42:58 CEST 2013 Required external installation of libltdl. Check for presence of tidyNodeGetValue in libtidy. -CG Wed Aug 21 18:42:04 CEST 2013 Updated Dutch translation. -CG Sun Aug 18 21:28:58 CEST 2013 Fix build with libavcodec >= 54.25.0. -CG Sat Jun 29 21:28:39 CEST 2013 Releasing GNU libextractor 1.1. -CG Tue Jun 25 14:24:00 CEST 2013 Fixing bug where LE could hang due to failure to process all received data from the plugin. -CG Sun Dec 2 08:31:17 CET 2012 Added Polish translation. -CG Thu Oct 11 15:51:06 CEST 2012 Fixing test for ffmpeg to not accept ancient ffmpeg library. -CG Thu Oct 11 09:19:42 CEST 2012 Fixing archive-plugin crash on ".lnk" files (#2586). -bratao Tue Oct 9 22:28:50 CEST 2012 Fixing use-after-free in plugin IPC if plugin crashes while no seek is pending. -CG Sat Oct 6 15:24:20 CEST 2012 Fixing installation path discovery on Darwin (#2562). Releasing GNU libextractor 1.0.1. -CG Tue Sep 25 16:25:05 CEST 2012 Releasing GNU libextractor 1.0.0. -CG Thu Sep 6 09:52:13 CEST 2012 Updated Ukrainian translation. -CG Tue Mar 27 15:04:00 CEST 2012 Refactoring plugin API to allow seeks to arbitrary positions in the file (breaks existing plugins, so the current version will not work). -LRN Sun Jan 29 17:27:08 CET 2012 Documented recently discovered issues with pthreads and out-of-process plugin executions in the manual. -CG Tue Nov 29 12:55:40 CET 2011 Improved IPC code on W32 to use APIs correctly and make it work on NT 6.1. -LRN Mon Nov 28 17:16:16 CET 2011 Reduce false-positives in MP3 extractor file format detection. -LRN Mon Nov 28 17:15:59 CET 2011 Improved winsock2 detection. -LRN Mon Nov 28 12:17:42 CET 2011 Fixing compiler warnings, cleaning up ASF plugin. Finishing Matroska plugin. -CG Releasing libextractor 0.6.3. Fri Jul 22 21:46:32 CEST 2011 Added Ukrainian translation. -CG Sat Aug 14 23:01:59 CEST 2010 Various minor bugfixes (largely resource leaks on error paths). -CG Sun Jun 13 13:15:43 CEST 2010 Releasing libextractor 0.6.2. Sat Jun 12 22:32:32 CEST 2010 Fixing various bugs, including some that can cause crashes given malformed inputs. -CG Sat Jun 12 16:23:14 CEST 2010 Only pass 'unsigned char's to 'isspace' and similar functions. -CG Sun Mar 14 00:09:45 CET 2010 Releasing libextractor 0.6.1. Wed Jan 13 17:11:07 CET 2010 Releasing libextractor 0.6.0. Wed Jan 13 14:36:24 CET 2010 Adding support for extracting data from the end of files. -CG Sun Dec 13 16:53:35 CET 2009 Starting with major API breakage with the goal to fix all of the not-so-nice things that have accumulated since version 0.0.0. Added support for out-of-process execution from plugins. -CG Sat Dec 5 11:32:30 CET 2009 Adding extraction of Iptc data using exiv2. Sat Jul 4 23:05:22 CEST 2009 Fixed code to work with RPM 4.7. Releasing libextractor 0.5.23. Sat Apr 11 20:46:14 MDT 2009 Removed code from libexiv2, linking against it instead. Fri Feb 20 00:28:00 MST 2009 Releasing libextractor 0.5.22. Sun Feb 15 16:57:46 MST 2009 Upgraded to libtool 2.x (and the libltdl from that release). Sun Nov 2 20:19:02 MST 2008 Releasing libextractor 0.5.21. Tue Aug 12 04:40:49 EEST 2008 Added an S3M (Scream Tracker 3 Module) plugin. Tue Aug 12 03:55:01 EEST 2008 Added an XM (eXtended Module) plugin. Mon Aug 11 00:43:46 EEST 2008 Added an IT (Impulse Tracker) plugin. Tue Jul 22 02:51:33 MDT 2008 Changed RPM extractor to use librpm. Fixed crash in OpenOffice extractor. Fixed crash in tiff extractor. Sun Jul 13 19:31:35 MDT 2008 Fixed endianess issues in mp3 extractor. Fixed build issues (need to link C++ code explicitly against libstdc++ on BSD). Releasing libextractor 0.5.20c. Mon Jun 23 19:05:07 EET 2008 Fixed concurrency issues in plugin (un-)loading by adding locking around libltdl functions. Fri Jun 20 23:34:02 EET 2008 Added an FFmpeg-based thumbnail extractor plugin, initially supporting only bmp and png files. Mon Apr 28 08:40:43 MDT 2008 Updated Dutch translation. Fri Apr 25 08:29:29 MDT 2008 Fixed security issues in XPDF-based PDF extractor. Releasing libextractor 0.5.20b. Mon Mar 21 00:00:52 MDT 2008 Releasing libextractor 0.5.20a. Tue Apr 1 10:06:03 MDT 2008 Updated Swedish translation. Sun Mar 30 08:31:11 MDT 2008 Updated Vietnamese translation. Sun Mar 23 14:40:58 MDT 2008 Updated German translation. Sat Mar 22 19:29:49 MDT 2008 Updated Gaelic translation. Fri Mar 21 13:26:33 MDT 2008 Added Dutch translation. Thu Mar 20 23:38:47 MDT 2008 Releasing libextractor 0.5.20. Fri Mar 7 13:29:01 EET 2008 Added disc number. Thu Mar 6 23:11:39 MST 2008 Added track number and ISRC for FLAC/mp3/ogg files. Wed Feb 13 10:16:55 EET 2008 Added a plugin for AppleSingle/AppleDouble files. Mon Feb 11 22:58:48 MST 2008 Various minor code cleanups. Sat Jan 12 14:14:32 MST 2008 Fixed security issues in XPDF-based PDF extractor. Releasing libextractor 0.5.19a. Mon Jan 7 08:46:40 MST 2008 Releasing libextractor 0.5.19. Wed Dec 26 19:38:22 MST 2007 Added a FLAC (.flac) plugin. Wed Dec 26 14:50:11 EET 2007 Added a Flash Video (.flv) plugin. Mon Dec 24 18:26:56 MST 2007 Add support for some common iTunes tags to qtextractor. Mon Dec 10 17:27:28 MST 2007 Disable libgsf logging (for corrupt files). Sun Jul 29 02:30:40 MDT 2007 Added escape (\n) handling to split extractor. Wed Jul 4 17:36:53 MDT 2007 Fixed problem with newer versions of libgsf. Fixed problem with automake 1.10 not setting MKDIR_P. Releasing libextractor 0.5.18a. Sat Jun 9 01:34:21 MDT 2007 Working on Qt build process. Created TexInfo manual. Sun Mar 11 17:58:14 MDT 2007 Releasing libextractor 0.5.18. Fri Feb 23 18:43:33 MST 2007 Fixing symbols for thumbnail extractors. Thu Feb 8 13:01:34 MST 2007 Upgrade to gettext-0.16.1. Sun Feb 4 23:51:08 MST 2007 Better handling of build process without C++ compiler. Sun Jan 28 20:54:35 MST 2007 Biased removal of duplicate keywords against those obtained from splitting. Do not allow splitextractor to produce mere copy of original keyword. Fixed two minor bugs. Sat Jan 6 14:27:18 EET 2007 Added an NSFE (Extended Nintendo Sound Format) plugin. Tue Jan 2 19:38:10 MST 2007 Fixed various build issues. Releasing libextractor 0.5.17a. Mon Jan 1 19:10:40 MST 2007 Added pkgconfig support. Releasing libextractor 0.5.17. Thu Dec 28 20:22:20 MST 2006 Fixed bug in splitextractor, addressing also Mantis #1125. Thu Dec 28 18:12:15 MST 2006 Added -g (greppable output, Mantis #1157) option to extact. Mon Nov 20 22:08:55 EET 2006 Added an SID (C64 music file) plugin. Sat Nov 11 16:04:38 MST 2006 Fixed libltdl side-effect of loading libextractor; code now preserves the old library search path and only appends its own. Linking main libextractor library against libgsf (as workaround for GSF bug). Releasing libextractor 0.5.16. Sat Nov 11 00:04:34 EET 2006 Added an NSF (NES Sound Format) plugin. Sat Sep 16 12:36:42 MDT 2006 Added support for various additional tags to ID3v2 extractors. Now (again) trimming whitespace at the end of ID3v1 tags. Wed Sep 6 13:38:55 PDT 2006 Added tIME support to PNG extractor. Bugfixes in PDF extractors. Made libextractor relocateable (plugin path no longer hardwired into binary, using various tricks instead to find path). Translation updates. Releasing libextractor 0.5.15. Wed May 17 02:05:37 PDT 2006 Switched mpegextractor to use libmpeg2 (improves correctness, adds dependency!). Releasing libextractor 0.5.14. Tue May 16 20:08:30 PDT 2006 Dramatically improved qt extractor (essentially re-written from scratch). Fri Apr 28 22:26:43 PDT 2006 Integrated wordleaker into OLE2 plugin. Changed OLE2 plugin to use libgsf (new dependency!). Releasing libextractor 0.5.13. Fri Apr 28 16:18:26 PDT 2006 Fixing some i18n issues. Specifically, EXTRACTOR_getKeywordTypeAsString will now never return the translated version of the keyword type (before, it *sometimes* returned the translated version, depending on the default gettext domain and translation availability). If translation is desired, clients should use 'dgettext("libextractor", ret-value)' to translate the returned value. Wed Apr 26 12:20:00 PDT 2006 Some improvements for OpenBSD portability. Wed Apr 26 10:28:11 PDT 2006 Added Vietnamese and Swedish translations. Sat Apr 22 11:18:56 PDT 2006 Final touches to new build of printable extractors. Releasing libextractor 0.5.12. Tue Apr 18 14:44:37 PDT 2006 Improved memory utilization for printable extractors at compile time. Added dictionaries for Finnish, French, Gaelic and Swedish (for printable extractors). Fri Mar 24 21:43:43 PST 2006 Started re-implementation of PDF support from scratch (incomplete but working). Improvements to the build system. Thu Mar 9 17:46:39 PST 2006 Added support for wordleaker (additional meta-data for OLE2 streams). Releasing libextractor 0.5.11. Sat Feb 18 17:39:10 PST 2006 Yet another round of XPDF-related security fixes. Releasing libextractor 0.5.10. Tue Jan 31 12:51:55 PST 2006 Mis-detection of man pages as part of TAR archives fixed. Wed Jan 11 11:33:46 PST 2006 More Mime-types for the OLE2 extractor. Also ignore (harmless) libc errors in plugins when extracting. Thu Jan 5 16:51:36 PST 2006 More TAR improvements: keywords 'date' and 'format' are extracted. More checksums variants were added. Long filenames as produced by GNU and Schilling tar (possibly Solaris pax also) are extracted. Fri Dec 23 11:28:23 PST 2005 Releasing libextractor 0.5.9. Sun Dec 11 23:52:50 PST 2005 Made TAR extractor parsing more robust. Fri Dec 9 23:17:21 PST 2005 Fixing crash in MIME-extractor due to typo in the code. Tue Dec 6 13:25:56 PST 2005 Fixed security problems in PDF extractor (http://www.idefense.com/application/poi/display?id=344&type=vulnerabilities) Releasing libextractor 0.5.8. Sun Dec 4 23:36:00 PST 2005 Fixed AVI mime-type to be video/x-msvideo. Sat Nov 12 10:50:46 PST 2005 Releasing libextractor 0.5.7. Wed Nov 9 12:51:52 PST 2005 Fix in LE unload code (potential double-free, maybe BSD-specific). Tue Sep 27 11:01:57 PDT 2005 Again better Mime-type detection for OLE2 streams. Mon Sep 26 20:44:10 PDT 2005 Minor improvements to the PDF extractor: - first change is to avoid outputting keywords with empty values (for now the new check is only effective when the value is seen as a string of 8-bit characters; I'm not sure how to rewrite it for the Unicode case in the if branch just above.) - second change is to remap PDF Creator as 'software' keyword instead of 'creator'. Sun Sep 25 11:31:51 PDT 2005 Made sure extract returns error code (1) if some files could not be accessed. Thu Sep 22 21:05:53 PDT 2005 Improved TAR extractor: - it now accepts old-style (UNIX V7) archives - it produces a mimetype for old-style archives - it outputs the file names in the same order as in the TAR file - its end-of-file mark detection is more robust Updated German translation. Wed Sep 21 13:54:19 PDT 2005 Added Irish translation. Wed Sep 21 00:01:01 PDT 2005 Fixed gettext build problem. Removed warning that the OLE2 extractor was printing. Sun Sep 18 19:34:48 PDT 2005 Major rewrite of the HTML extractor. Should extract more, is simpler and probably more robust. Releasing libextractor 0.5.6. Fri Sep 16 16:41:04 PDT 2005 Made LE malloc file READ-ONLY. This should help the VM conserve memory, however this breaks the HTML extractor. Thu Sep 15 21:55:19 PDT 2005 Fixing compiler warnings given by gcc 4.0. Thu Sep 15 00:56:51 PDT 2005 Fixed incorrectly handled integer overflow in png extractor. Wed Sep 14 15:02:49 PDT 2005 Avoid malloc/memcpy of file in exiv2 extractor (optimization, avoids problems with very large files where malloc may run into problems). Wed Sep 14 13:50:15 PDT 2005 Changed code for backwards-compatibility with zlib 1.1 (thanks to Ronan Melennec). Tue Sep 13 04:49:43 PDT 2005 Fixed segmentation fault in bz2 processing. Fri Sep 9 14:57:10 PDT 2005 Fixed bug in decompression code that occured if the compressed file expanded to more than twice its original size. Wed Sep 7 21:41:35 PDT 2005 Added decompression of gz and bz2 streams to the LE core library (avoids need to do this, possibly repeatedly, in plugins and makes sure that all plugins work with compressed files). Eliminated gz decompression from man and tar extractors. Releasing libextractor 0.5.5. Sun Sep 4 02:08:56 PDT 2005 Changed code to export fewer symbols (refactoring plus linker options, goal is to address Mantis #925. Changed debian extractor to no longer require threads. Dead code elimination in OO and OLE2 extractors. Minor bugfixes ported from libgsf 1.12.2 to OLE2 extractor. Fri Sep 2 03:17:10 PDT 2005 Added support for Mime-types for Microsoft Office formats. Fri Aug 26 22:32:06 PDT 2005 Added workaround libstdc++ bug #23591 (Mantis bug #907). Releasing libextractor 0.5.4. Tue Aug 23 15:39:37 PDT 2005 Fixed build on OS X. Tue Aug 23 12:35:35 PDT 2005 Fixed character set conversion in OLE2 extractor (big thanks to Jody Goldberg). Sat Aug 20 21:27:17 PDT 2005 Fixed memory leak in thumbnail extractor. Thu Aug 18 21:18:28 PDT 2005 Made quotations match GNU standards. Sat Aug 13 18:41:02 PDT 2005 Fixed problems with ole2 extractor. Also removed requirement for static version of glib (!). Releasing libextractor 0.5.3. Fri Aug 12 23:53:54 PDT 2005 Fixed bug in OO extractor that made it not work. Fixed bug in exiv2 extractor that killed keywords found by other extractors. Improved OO extractor mime-type detection. Mon Aug 8 12:18:44 PDT 2005 Somehow addKeyword2 got lost. Added (again?). Fixed compilation problems with gcc-2.95. Thu Jul 14 18:52:17 CEST 2005 Bugfixes in exiv2 extractor fixing remaining issues. Changed plugins to not use filename but always only rely on mmapped memory. Extended API with function that allows running getKeywords on data in memory (instead of filename). Extended API with encode and decode functions for binary metadata. Releasing libextractor 0.5.2. Mon Jul 4 18:10:14 CEST 2005 Preliminary integration of exiv2 support (not enabled by default due to bugs). Moved Python and Java bindings into separate packages. Releasing libextractor 0.5.1. Wed Jun 29 15:37:51 CEST 2005 Finally found out how to disable building static libs. This should cut down compile time and installed size by about a factor of 2 -- especially good since the static version of the plugins is pretty, well, useless. Sat Jun 18 14:56:38 EST 2005 Fixed a score of compiler warnings and some minor bugs, none of which should have been observable. Sat May 21 13:42:46 EST 2005 Releasing libextractor 0.5.0. Fri May 6 14:54:58 EST 2005 Added flag to disable building of printable extractors (important for systems with not that much memory). Fri May 6 06:02:02 EST 2005 Added Python binding. Tue Apr 5 17:22:28 EST 2005 Added translation to Kinyarwanda. Thu Feb 24 00:32:44 EST 2005 Added extractor that extracts binary (!) thumbnails from images using ImageMagick. Decoder function for the binary string is in the thumbnailextractor.c source. Releasing libextractor 0.4.2. Wed Feb 23 22:42:08 EST 2005 Comment tag was not extracted from ID3 tags. Fixed. Sun Feb 20 16:36:17 EST 2005 Fixed similar problem in REAL extractor. Added support for new Helix/Real format to REAL extractor. Sun Feb 20 12:48:15 EST 2005 Fixed (rare) integer overflow bug in PNG extractor. Sat Feb 19 22:58:30 EST 2005 Fixed problems with wrong byteorder for Unicode decoding in PDF meta-data. Fixed minor problems with character set conversion error handling. Wed Jan 26 19:31:04 EST 2005 Workaround possible bug in glib quarks (OLE2 extractor). Improved QT support (?nam tag, support for description). Releasing libextractor 0.4.1. Fri Jan 21 15:23:43 PST 2005 Adding support for creation date for tar files. Fixed security problem in PDF extractor. Sun Jan 2 21:12:52 EST 2005 Fixing some linking problems. Fri Dec 31 20:26:43 EST 2004 Excluding executables from printable extractors. Sat Dec 25 19:24:54 CET 2004 PDF fixes. Fixing mantis bug (PDF charset conversion for UTF-8 console). Releasing libextractor 0.4.0. Fri Dec 24 15:43:35 CET 2004 Adding support calling LE for python (draft, not tested, possibly not working yet). Fri Dec 24 13:28:59 CET 2004 Added support for Unicode to the pdf extractor. Fri Dec 24 09:14:08 CET 2004 Improving mp3 (Id3v1): adding genres, minor bugfixes. Fri Dec 24 07:23:03 CET 2004 Improving PNG: converting to utf-8 and handling compressed comments. Thu Dec 23 18:14:10 CET 2004 Avoided exporting symbol OPEN (conflicts on OSX with same symbol from GNUnet). Added conversion to utf8 to various plugqins (see todo) and added conversion from utf8 to current locale to print keywords. Sat Nov 13 13:23:23 EST 2004 Releasing libextractor 0.3.11. Fri Nov 12 19:20:37 EST 2004 Fixed bug in PDF extractor (extremely rare segfault). Fixed #787. Fixed bug in man extractor (undocumented return value running on 4 GB file not taken care of properly). Sat Oct 30 20:18:21 EST 2004 Fixing various problems on Sparc64 (bus errors). Workaround for re-load glib problem of OLE2 extractor. Sat Oct 23 13:21:23 EST 2004 Releasing libextractor 0.3.10. Fri Oct 22 22:22:28 EST 2004 Fixing memory leak after extensive valgrinding. Fri Oct 22 19:18:38 EST 2004 id3v2.3 and id3v2.4 work. Some bugfixes. Sun Oct 17 18:12:11 EST 2004 tar and tar.gz work. Releasing libextractor 0.3.9. Sun Oct 17 17:42:16 EST 2004 deb works. Sun Oct 17 13:52:25 EST 2004 man works. Tue Oct 5 14:29:31 EST 2004 Updated xpdf extractor (to fix Mantis #754). Fixed bug in Id3v2 extractor (potential segfault). Added support for extracting image size from jpeg. General code cleanup. 64-bit file support. Mon Oct 4 20:28:52 EST 2004 Fixed jpeg extractor to not hang on certain malformed JPEG files. Sat Oct 2 18:02:56 EST 2004 Added support for dvi. Removed special code for OS X, normal libtool works fine now (and suddenly LE works for OS X). Releasing libextractor 0.3.8. Sun Sep 26 19:25:10 EST 2004 Moved libextactor plugins to separate directory, building plugins as plugins and not as libraries. Thu Sep 23 11:25:42 EST 2004 Added support for ID3v2. Added support for StarOffice (OLE2). Fixed some minor build issues. Releasing libextractor 0.3.7. Tue Sep 14 21:25:22 EST 2004 Improved performance of the HTML extractor by avoiding parsing after the header (factor of 25 improvement for a 4 MB HTML file resulting in a total improvement for total extraction time for running all extractors of about 50%). Improved performance of the ZIP extractor for non-zip files by testing for the ZIP header before trying to locate the central directory (for 5 MB /dev/random time improves by a factor of about 15). Same change was also applied to the OO extractor (since OO is effectively a zip). Overall improvement for 5 MB /dev/random for running all extractors is a factor of 10 (now takes 100ms on my machine to run 720 times on the same 5 MB file passing that file as an argument; the remaining time is pretty much doing 720x mmap and related system calls). Fri Sep 10 22:00:09 EST 2004 Added support for RipeMD-160. Fri Sep 10 19:49:39 EST 2004 Added support for SHA-1 and MD5. Releasing libextractor 0.3.6. Fri Sep 10 10:35:27 EST 2004 Added support for OpenOffice documents (meta.xml in zip-file). Mon Aug 30 23:16:17 IST 2004 Added support for OLE2 (WinWord, Excel, PowerPoint). Fixed various bugs (Segfault in elf, leaks in zip and RPM, out-of-bounds access in QT). Releasing libextractor 0.3.5. Wed Aug 25 18:42:11 IST 2004 Added support for GNU gettext. Releasing libextractor 0.3.4. Fri Jul 2 20:10:54 IST 2004 Using mime-types to selectively disable parsing extractors to increase performance. Wed Jun 23 13:37:02 IST 2004 Added support for wav. Fixed problems in mpeg and riff extractors. Releasing libextractor 0.3.3. Sun Jun 6 18:42:28 IST 2004 Fixed segfault in qtextractor. Mon May 31 18:19:07 EST 2004 Fixed more minor bugs. Releasing libextractor 0.3.2. Mon May 31 17:14:55 EST 2004 Removed comment extraction from RIFF extractor (format detection is not good enough to avoid garbage for non-RIFF files). Also fixed rare seg-fault in PDF-extractor (xpdf author notified). Mon May 24 13:40:27 EST 2004 Changed build system to avoid having an extra library (libextractor_util is gone). Wed Apr 28 19:28:39 EST 2004 Releasing libextractor 0.3.1. Wed Apr 28 01:26:53 EST 2004 Added ELF extractor. Sat Apr 24 00:07:31 EST 2004 Fixed memory leak in PDF-extractor. Mon Apr 12 01:30:20 EST 2004 Added Java binding. If jni.h is present (and working!), libextractor is build with a couple of tiny additional methods that are sufficient to build a Java class to access libextractor. The API is still incomplete but already basically functional. Releasing 0.3.0 Sat Apr 10 01:34:04 EST 2004 Added RIFF/AVI extractor based on AVInfo. Fixed memory-leak and potential segfault in zipextractor. Sat Apr 10 00:30:19 EST 2004 Added MPEG (video) extractor based on AVInfo. Improved output of mp3 extractor. Fri Apr 9 22:58:51 EST 2004 Improved library initialization (and destruction) code. Thu Apr 8 22:25:19 EST 2004 Revisited type signatures adding const where applicable. Improved formatting of --help for extract. Added some testcases. Updated man-pages. Wed Apr 7 00:26:29 EST 2004 Made HTML and ZIP extractors re-entrant. Fixed minor problems in ZIP extractor (possible segfault, possible memory leaks; both for invalid ZIP files). Sun Apr 4 20:24:39 EST 2004 Added TIFF extractor. Fixed segfault in removeLibrary. Port to mingw. Releasing 0.2.7. Tue Oct 14 17:43:09 EST 2003 Fixed segfault in PDF and RPM extractors. Fixed BSD compile errors. Port to OSX. Releasing 0.2.6. Sun Oct 12 18:05:37 EST 2003 Ported to OSX, fixing endianess issues with printable extractors. Tue Jul 22 11:38:42 CET 2003 Fixed segfault with option -b for no keywords found. Wed Jul 16 13:41:34 EST 2003 Releasing 0.2.5. Mon Jun 30 21:27:42 EST 2003 Releasing 0.2.4. Sun Jun 15 18:05:24 EST 2003 Added support for pspell to printableextractor. Sat Apr 19 04:11:14 EST 2003 Fixed missing delete operation in PDF extractor for non-PDF files (caused memory leak and file-handle leak). Thu Apr 10 23:54:17 EST 2003 Fixed segmentation violation in png extractor. Thu Apr 10 01:34:49 EST 2003 Rewrote RPM extractor to make it no longer depend on rpmlib. Fri Apr 4 21:39:55 EST 2003 Added QT extractor, but again not really tested due to lack of QuickTime file with meta-data in it. Thu Apr 3 23:09:44 EST 2003 Added ASF extractor, but not really tested due to lack of ASF file with meta-data in it. Thu Apr 3 04:04:19 EST 2003 Fixing ogg-extractor to work with new version of libvorbis that requires us to link against libvorbisfile. Wed Apr 2 22:22:16 EST 2003 Cleaned up plugin mechanism (ltdl). Wed Apr 2 12:09:27 EST 2003 zipextractor now works with self-extracting zip executables. Sat Feb 01 05:35:24 EST 2003 Changed loading of dynamic libraries to the more portable libltdl. Thu Jan 23 00:34:20 EST 2003 Wrote RPM extractor. Tue Jan 21 03:11:02 EST 2003 Fixed minor bug in ps extractor (now stops parsing at %%EndComments). Thu Jan 9 18:41:01 EST 2003 License changed to GPL (required for pdf extractor), releasing 0.1.4. Tue Jan 7 18:31:38 EST 2003 Added postscript (ps) extractor. Tue Dec 31 15:26:00 EST 2002 Added pdf extractor based on xpdf code. Tue Dec 17 20:36:13 CET 2002 Added MIME-extractor. Fri Nov 22 21:54:10 EST 2002 Fixed portability problems with the gifextractor, in particular the code now ensures that C compilers that do not pack the structs are still going to result in working code. Tue Oct 1 14:01:16 EST 2002 Fixed segmentation fault in ogg extractor. Fri Jul 26 16:25:38 EST 2002 Added EXTRACTOR_ to every symbol in the extractor API to avoid name-clashes. Wed Jun 12 23:42:55 EST 2002 Added a dozen options to extract. Fri Jun 7 01:48:34 EST 2002 Added support for real (real.com). Fri Jun 7 00:21:40 EST 2002 Added support for GIF (what a crazy format). Tue Jun 4 23:21:38 EST 2002 Added support for PNG, no longer reading the file again and again for each extractor (slight interface change, mmapping). Sun Jun 2 22:49:17 EST 2002 Added support for JPEG and HTML. HTML does not support concurrent use, though (inherent problem with libhtmlparse). Released v0.0.2. Sat May 25 16:56:59 EST 2002 Added building of a description from artist, title and album, fixed bugs. Tue May 21 22:24:07 EST 2002 Added removing of duplicates, splitting keywords, extraction of keywords from filenames. Sat May 18 16:33:28 EST 2002 more convenience methods ('configuration', default set of libraries, remove all libraries) Sat May 18 02:33:28 EST 2002 ogg extractor works, mp3 extractor now always works Thu May 16 00:04:03 EST 2002 MP3 extractor mostly works. Wed May 15 23:38:31 EST 2002 The basics are there, let's write extractors! libextractor-1.3/config.guess0000755000175000017500000012743212255663141013336 00000000000000#! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, # 2011, 2012 Free Software Foundation, Inc. timestamp='2012-02-10' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner. Please send patches (context # diff format) to and include a ChangeLog # entry. # # This script attempts to guess a canonical system name similar to # config.sub. If it succeeds, it prints the system name on stdout, and # exits with 0. Otherwise, it exits with 1. # # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` # Reset EXIT trap before exiting to avoid spurious non-zero exit code. exitcode=$? trap '' 0 exit $exitcode ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm:riscos:*:*|arm:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) echo i386-pc-auroraux${UNAME_RELEASE} exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build SUN_ARCH="i386" # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH="x86_64" fi fi echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) UNAME_PROCESSOR=`/usr/bin/uname -p` case ${UNAME_PROCESSOR} in amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:MSYS*:*) echo ${UNAME_MACHINE}-pc-msys exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; authenticamd | genuineintel | EM64T) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) echo ia64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; 8664:Windows_NT:*) echo x86_64-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; aarch64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then echo ${UNAME_MACHINE}-unknown-linux-gnu else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then echo ${UNAME_MACHINE}-unknown-linux-gnueabi else echo ${UNAME_MACHINE}-unknown-linux-gnueabihf fi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; cris:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-gnu exit ;; crisv32:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-gnu exit ;; frv:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; hexagon:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; i*86:Linux:*:*) LIBC=gnu eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __dietlibc__ LIBC=dietlibc #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` echo "${UNAME_MACHINE}-pc-linux-${LIBC}" exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; mips:Linux:*:* | mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef ${UNAME_MACHINE} #undef ${UNAME_MACHINE}el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=${UNAME_MACHINE}el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=${UNAME_MACHINE} #else CPU= #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; or32:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; padre:Linux:*:*) echo sparc-unknown-linux-gnu exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-gnu ;; PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; tile*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-gnu exit ;; x86_64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configury will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. echo i586-pc-haiku exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown case $UNAME_PROCESSOR in i386) eval $set_cc_for_build if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then UNAME_PROCESSOR="x86_64" fi fi ;; unknown) UNAME_PROCESSOR=powerpc ;; esac echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NEO-?:NONSTOP_KERNEL:*:*) echo neo-tandem-nsk${UNAME_RELEASE} exit ;; NSE-?:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; i*86:AROS:*:*) echo ${UNAME_MACHINE}-pc-aros exit ;; x86_64:VMkernel:*:*) echo ${UNAME_MACHINE}-unknown-esx exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 eval $set_cc_for_build cat >$dummy.c < # include #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 < in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: libextractor-1.3/contrib/0000755000175000017500000000000012256015536012525 500000000000000libextractor-1.3/contrib/macosx/0000755000175000017500000000000012256015537014020 500000000000000libextractor-1.3/contrib/macosx/Info.plist.in0000644000175000017500000000175411260753602016320 00000000000000 CFBundleDevelopmentRegion English CFBundleExecutable Extractor CFBundleName Extractor CFBundleGetInfoString Extractor (@PACKAGE_STRING@), Copyright 2002-2009 Vidyut Samanta and Christian Grothoff CFBundleIconFile CFBundleIdentifier org.gnunet.libextractor CFBundleInfoDictionaryVersion 6.0 CFBundlePackageType FMWK CFBundleShortVersionString @PACKAGE_VERSION@ CFBundleSignature ???? CFBundleVersion Extractor @PACKAGE_VERSION@-@FRAMEWORK_REVISION@ libextractor-1.3/contrib/macosx/Pkg-Info.plist.in0000644000175000017500000000240611260753602017032 00000000000000 CFBundleGetInfoString Extractor (@PACKAGE_STRING@), Copyright 2002-2009 Vidyut Samanta and Christian Grothoff CFBundleIdentifier org.gnunet.libextractor.pkg CFBundleShortVersionString @PACKAGE_VERSION_NOALPHA@ IFPkgFlagAllowBackRev IFPkgFlagAuthorizationAction RootAuthorization IFPkgFlagBackgroundAlignment topleft IFPkgFlagBackgroundScaling none IFPkgFlagDefaultLocation /Library/Frameworks IFPkgFlagFollowLinks IFPkgFlagInstalledSize 0 IFPkgFlagIsRequired IFPkgFlagOverwritePermissions IFPkgFlagRelocatable IFPkgFlagRestartAction NoRestart IFPkgFlagRootVolumeOnly IFPkgFlagUpdateInstalledLanguages IFPkgFormatVersion 0.10000000149011612 libextractor-1.3/INSTALL0000644000175000017500000003660012255663142012044 00000000000000Installation Instructions ************************* Copyright (C) 1994-1996, 1999-2002, 2004-2011 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. This file is offered as-is, without warranty of any kind. Basic Installation ================== Briefly, the shell commands `./configure; make; make install' should configure, build, and install this package. The following more-detailed instructions are generic; see the `README' file for instructions specific to this package. Some packages provide this `INSTALL' file but do not implement all of the features documented below. The lack of an optional feature in a given package is not necessarily a bug. More recommendations for GNU packages can be found in *note Makefile Conventions: (standards)Makefile Conventions. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). It can also use an optional file (typically called `config.cache' and enabled with `--cache-file=config.cache' or simply `-C') that saves the results of its tests to speed up reconfiguring. Caching is disabled by default to prevent problems with accidental use of stale cache files. If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If you are using the cache, and at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.ac' (or `configure.in') is used to create `configure' by a program called `autoconf'. You need `configure.ac' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. Running `configure' might take a while. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package, generally using the just-built uninstalled binaries. 4. Type `make install' to install the programs and any data files and documentation. When installing into a prefix owned by root, it is recommended that the package be configured and built as a regular user, and only the `make install' phase executed with root privileges. 5. Optionally, type `make installcheck' to repeat any self-tests, but this time using the binaries in their final installed location. This target does not install anything. Running this target as a regular user, particularly if the prior `make install' required root privileges, verifies that the installation completed correctly. 6. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. 7. Often, you can also type `make uninstall' to remove the installed files again. In practice, not all packages have tested that uninstallation works correctly, even though it is required by the GNU Coding Standards. 8. Some packages, particularly those that use Automake, provide `make distcheck', which can by used by developers to test that all other targets like `make install' and `make uninstall' work correctly. This target is generally not run by end users. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. Run `./configure --help' for details on some of the pertinent environment variables. You can give `configure' initial values for configuration parameters by setting variables in the command line or in the environment. Here is an example: ./configure CC=c99 CFLAGS=-g LIBS=-lposix *Note Defining Variables::, for more details. Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you can use GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. This is known as a "VPATH" build. With a non-GNU `make', it is safer to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. On MacOS X 10.5 and later systems, you can create libraries and executables that work on multiple system types--known as "fat" or "universal" binaries--by specifying multiple `-arch' options to the compiler but only a single `-arch' option to the preprocessor. Like this: ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ CPP="gcc -E" CXXCPP="g++ -E" This is not guaranteed to produce working output in all cases, you may have to build one architecture at a time and combine the results using the `lipo' tool if you have problems. Installation Names ================== By default, `make install' installs the package's commands under `/usr/local/bin', include files under `/usr/local/include', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PREFIX', where PREFIX must be an absolute file name. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you pass the option `--exec-prefix=PREFIX' to `configure', the package uses PREFIX as the prefix for installing programs and libraries. Documentation and other data files still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=DIR' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. In general, the default for these options is expressed in terms of `${prefix}', so that specifying just `--prefix' will affect all of the other directory specifications that were not explicitly provided. The most portable way to affect installation locations is to pass the correct locations to `configure'; however, many packages provide one or both of the following shortcuts of passing variable assignments to the `make install' command line to change installation locations without having to reconfigure or recompile. The first method involves providing an override variable for each affected directory. For example, `make install prefix=/alternate/directory' will choose an alternate location for all directory configuration variables that were expressed in terms of `${prefix}'. Any directories that were specified during `configure', but not in terms of `${prefix}', must each be overridden at install time for the entire installation to be relocated. The approach of makefile variable overrides for each directory variable is required by the GNU Coding Standards, and ideally causes no recompilation. However, some platforms have known limitations with the semantics of shared libraries that end up requiring recompilation when using this method, particularly noticeable in packages that use GNU Libtool. The second method involves providing the `DESTDIR' variable. For example, `make install DESTDIR=/alternate/directory' will prepend `/alternate/directory' before all installation names. The approach of `DESTDIR' overrides is not required by the GNU Coding Standards, and does not work on platforms that have drive letters. On the other hand, it does better at avoiding recompilation issues, and works well even when some directory options were not specified in terms of `${prefix}' at `configure' time. Optional Features ================= If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Some packages offer the ability to configure how verbose the execution of `make' will be. For these packages, running `./configure --enable-silent-rules' sets the default to minimal output, which can be overridden with `make V=1'; while running `./configure --disable-silent-rules' sets the default to verbose, which can be overridden with `make V=0'. Particular systems ================== On HP-UX, the default C compiler is not ANSI C compatible. If GNU CC is not installed, it is recommended to use the following options in order to use an ANSI C compiler: ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" and if that doesn't work, install pre-built binaries of GCC for HP-UX. HP-UX `make' updates targets which have the same time stamps as their prerequisites, which makes it generally unusable when shipped generated files such as `configure' are involved. Use GNU `make' instead. On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot parse its `' header file. The option `-nodtk' can be used as a workaround. If GNU CC is not installed, it is therefore recommended to try ./configure CC="cc" and if that doesn't work, try ./configure CC="cc -nodtk" On Solaris, don't put `/usr/ucb' early in your `PATH'. This directory contains several dysfunctional programs; working variants of these programs are available in `/usr/bin'. So, if you need `/usr/ucb' in your `PATH', put it _after_ `/usr/bin'. On Haiku, software installed for all users goes in `/boot/common', not `/usr/local'. It is recommended to use the following options: ./configure --prefix=/boot/common Specifying the System Type ========================== There may be some features `configure' cannot figure out automatically, but needs to determine by the type of machine the package will run on. Usually, assuming the package is built to be run on the _same_ architectures, `configure' can figure that out, but if it prints a message saying it cannot guess the machine type, give it the `--build=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name which has the form: CPU-COMPANY-SYSTEM where SYSTEM can have one of these forms: OS KERNEL-OS See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the machine type. If you are _building_ compiler tools for cross-compiling, you should use the option `--target=TYPE' to select the type of system they will produce code for. If you want to _use_ a cross compiler, that generates code for a platform different from the build platform, you should specify the "host" platform (i.e., that on which the generated programs will eventually be run) with `--host=TYPE'. Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Defining Variables ================== Variables not defined in a site shell script can be set in the environment passed to `configure'. However, some packages may run configure again during the build, and the customized values of these variables may be lost. In order to avoid this problem, you should set them in the `configure' command line, using `VAR=value'. For example: ./configure CC=/usr/local2/bin/gcc causes the specified `gcc' to be used as the C compiler (unless it is overridden in the site shell script). Unfortunately, this technique does not work for `CONFIG_SHELL' due to an Autoconf bug. Until the bug is fixed you can use this workaround: CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash `configure' Invocation ====================== `configure' recognizes the following options to control how it operates. `--help' `-h' Print a summary of all of the options to `configure', and exit. `--help=short' `--help=recursive' Print a summary of the options unique to this package's `configure', and exit. The `short' variant lists options used only in the top level, while the `recursive' variant lists options also present in any nested packages. `--version' `-V' Print the version of Autoconf used to generate the `configure' script, and exit. `--cache-file=FILE' Enable the cache: use and save the results of the tests in FILE, traditionally `config.cache'. FILE defaults to `/dev/null' to disable caching. `--config-cache' `-C' Alias for `--cache-file=config.cache'. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to `/dev/null' (any error messages will still be shown). `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `--prefix=DIR' Use DIR as the installation prefix. *note Installation Names:: for more details, including other options available for fine-tuning the installation locations. `--no-create' `-n' Run the configure checks, but stop before creating any output files. `configure' also accepts some other, not widely useful, options. Run `configure --help' for more details. libextractor-1.3/Makefile.in0000644000175000017500000007172612256015520013060 00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = . DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/config.h.in \ $(top_srcdir)/configure \ $(top_srcdir)/contrib/macosx/Info.plist.in \ $(top_srcdir)/contrib/macosx/Pkg-Info.plist.in ABOUT-NLS \ AUTHORS COPYING ChangeLog INSTALL NEWS TODO compile \ config.guess config.rpath config.sub depcomp install-sh \ ltmain.sh missing ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/abi-gsf.m4 \ $(top_srcdir)/m4/ac_define_dir.m4 \ $(top_srcdir)/m4/ax_create_pkgconfig_info.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glib-2.0.m4 \ $(top_srcdir)/m4/gtk-2.0.m4 $(top_srcdir)/m4/gtk-3.0.m4 \ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = contrib/macosx/Info.plist \ contrib/macosx/Pkg-Info.plist CONFIG_CLEAN_VPATH_FILES = AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ html-recursive info-recursive install-data-recursive \ install-dvi-recursive install-exec-recursive \ install-html-recursive install-info-recursive \ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(pkgconfigdatadir)" DATA = $(pkgconfigdata_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ distdir dist dist-all distcheck ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ if test -d "$(distdir)"; then \ find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -rf "$(distdir)" \ || { sleep 5 && rm -rf "$(distdir)"; }; \ else :; fi am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ GLIB_LIBS = @GLIB_LIBS@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GOBJECT_QUERY = @GOBJECT_QUERY@ GREP = @GREP@ GSF_CFLAGS = @GSF_CFLAGS@ GSF_GNOME_CFLAGS = @GSF_GNOME_CFLAGS@ GSF_GNOME_LIBS = @GSF_GNOME_LIBS@ GSF_LIBS = @GSF_LIBS@ GSTREAMER_APP_CFLAGS = @GSTREAMER_APP_CFLAGS@ GSTREAMER_APP_LIBS = @GSTREAMER_APP_LIBS@ GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@ GSTREAMER_LIBS = @GSTREAMER_LIBS@ GSTREAMER_PBUTILS_CFLAGS = @GSTREAMER_PBUTILS_CFLAGS@ GSTREAMER_PBUTILS_LIBS = @GSTREAMER_PBUTILS_LIBS@ GSTREAMER_TAG_CFLAGS = @GSTREAMER_TAG_CFLAGS@ GSTREAMER_TAG_LIBS = @GSTREAMER_TAG_LIBS@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ HAVE_CXX = @HAVE_CXX@ HAVE_ZZUF = @HAVE_ZZUF@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ ISOLOCALEDIR = @ISOLOCALEDIR@ LD = @LD@ LDFLAGS = @LDFLAGS@ LE_INTLINCL = @LE_INTLINCL@ LE_LIBINTL = @LE_LIBINTL@ LE_LIB_LDFLAGS = @LE_LIB_LDFLAGS@ LE_LIB_LIBS = @LE_LIB_LIBS@ LE_PLUGIN_LDFLAGS = @LE_PLUGIN_LDFLAGS@ LIBEXT = @LIBEXT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIB_VERSION_AGE = @LIB_VERSION_AGE@ LIB_VERSION_CURRENT = @LIB_VERSION_CURRENT@ LIB_VERSION_REVISION = @LIB_VERSION_REVISION@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALEDIR = @LOCALEDIR@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACKAGE_VERSION_NOALPHA = @PACKAGE_VERSION_NOALPHA@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ POSUB = @POSUB@ QT_CPPFLAGS = @QT_CPPFLAGS@ QT_LDFLAGS = @QT_LDFLAGS@ RANLIB = @RANLIB@ RPLUGINDIR = @RPLUGINDIR@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKET_LIBS = @SOCKET_LIBS@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XTRA_CPPLIBS = @XTRA_CPPLIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfig_libdir = @pkgconfig_libdir@ pkgconfig_libfile = @pkgconfig_libfile@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = m4 po src doc . EXTRA_DIST = config.rpath \ ABOUT-NLS install-sh pkgconfigdatadir = $(libdir)/pkgconfig pkgconfigdata_DATA = libextractor.pc ACLOCAL_AMFLAGS = -I m4 all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: am--refresh: Makefile @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): config.h: stamp-h1 @if test ! -f $@; then rm -f stamp-h1; else :; fi @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status config.h $(srcdir)/config.h.in: $(am__configure_deps) ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) rm -f stamp-h1 touch $@ distclean-hdr: -rm -f config.h stamp-h1 contrib/macosx/Info.plist: $(top_builddir)/config.status $(top_srcdir)/contrib/macosx/Info.plist.in cd $(top_builddir) && $(SHELL) ./config.status $@ contrib/macosx/Pkg-Info.plist: $(top_builddir)/config.status $(top_srcdir)/contrib/macosx/Pkg-Info.plist.in cd $(top_builddir) && $(SHELL) ./config.status $@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool config.lt install-pkgconfigdataDATA: $(pkgconfigdata_DATA) @$(NORMAL_INSTALL) @list='$(pkgconfigdata_DATA)'; test -n "$(pkgconfigdatadir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdatadir)'"; \ $(MKDIR_P) "$(DESTDIR)$(pkgconfigdatadir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdatadir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdatadir)" || exit $$?; \ done uninstall-pkgconfigdataDATA: @$(NORMAL_UNINSTALL) @list='$(pkgconfigdata_DATA)'; test -n "$(pkgconfigdatadir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(pkgconfigdatadir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. # To change the values of `make' variables: instead of editing Makefiles, # (1) if the variable is set in `config.status', edit `config.status' # (which will cause the Makefiles to be regenerated when you run `make'); # (2) otherwise, pass the desired values on the `make' command line. $(RECURSIVE_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ list='$(SUBDIRS)'; for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" $(RECURSIVE_CLEAN_TARGETS): @fail= failcom='exit 1'; \ for f in x $$MAKEFLAGS; do \ case $$f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ rev=''; for subdir in $$list; do \ if test "$$subdir" = "."; then :; else \ rev="$$subdir $$rev"; \ fi; \ done; \ rev="$$rev ."; \ target=`echo $@ | sed s/-recursive//`; \ for subdir in $$rev; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done && test -z "$$fail" tags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ done ctags-recursive: list='$(SUBDIRS)'; for subdir in $$list; do \ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ done ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-lzip: distdir tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz $(am__remove_distdir) dist-lzma: distdir tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma $(am__remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz $(am__remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lzma*) \ lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ *.tar.lz*) \ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod u+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @test -n '$(distuninstallcheck_dir)' || { \ echo 'ERROR: trying to run $@ with an empty' \ '$$(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ $(am__cd) '$(distuninstallcheck_dir)' || { \ echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile $(DATA) config.h installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(pkgconfigdatadir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-hdr \ distclean-libtool distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-pkgconfigdataDATA install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-pkgconfigdataDATA .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \ ctags-recursive install-am install-strip tags-recursive .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ all all-am am--refresh check check-am clean clean-generic \ clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \ dist-gzip dist-lzip dist-lzma dist-shar dist-tarZ dist-xz \ dist-zip distcheck distclean distclean-generic distclean-hdr \ distclean-libtool distclean-tags distcleancheck distdir \ distuninstallcheck dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-pkgconfigdataDATA \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ uninstall uninstall-am uninstall-pkgconfigdataDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libextractor-1.3/doc/0000755000175000017500000000000012256015540011625 500000000000000libextractor-1.3/doc/texinfo.tex0000644000175000017500000116130512255663141013757 00000000000000% texinfo.tex -- TeX macros to handle Texinfo files. % % Load plain if necessary, i.e., if running under initex. \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi % \def\texinfoversion{2012-03-11.15} % % Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, % 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. % % This texinfo.tex file is free software: you can redistribute it and/or % modify it under the terms of the GNU General Public License as % published by the Free Software Foundation, either version 3 of the % License, or (at your option) any later version. % % This texinfo.tex file is distributed in the hope that it will be % useful, but WITHOUT ANY WARRANTY; without even the implied warranty % of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU % General Public License for more details. % % You should have received a copy of the GNU General Public License % along with this program. If not, see . % % As a special exception, when this file is read by TeX when processing % a Texinfo source document, you may use the result without % restriction. (This has been our intent since Texinfo was invented.) % % Please try the latest version of texinfo.tex before submitting bug % reports; you can get the latest version from: % http://www.gnu.org/software/texinfo/ (the Texinfo home page), or % ftp://tug.org/tex/texinfo.tex % (and all CTAN mirrors, see http://www.ctan.org). % The texinfo.tex in any given distribution could well be out % of date, so if that's what you're using, please check. % % Send bug reports to bug-texinfo@gnu.org. Please include including a % complete document in each bug report with which we can reproduce the % problem. Patches are, of course, greatly appreciated. % % To process a Texinfo manual with TeX, it's most reliable to use the % texi2dvi shell script that comes with the distribution. For a simple % manual foo.texi, however, you can get away with this: % tex foo.texi % texindex foo.?? % tex foo.texi % tex foo.texi % dvips foo.dvi -o # or whatever; this makes foo.ps. % The extra TeX runs get the cross-reference information correct. % Sometimes one run after texindex suffices, and sometimes you need more % than two; texi2dvi does it as many times as necessary. % % It is possible to adapt texinfo.tex for other languages, to some % extent. You can get the existing language-specific files from the % full Texinfo distribution. % % The GNU Texinfo home page is http://www.gnu.org/software/texinfo. \message{Loading texinfo [version \texinfoversion]:} % If in a .fmt file, print the version number % and turn on active characters that we couldn't do earlier because % they might have appeared in the input file name. \everyjob{\message{[Texinfo version \texinfoversion]}% \catcode`+=\active \catcode`\_=\active} \chardef\other=12 % We never want plain's \outer definition of \+ in Texinfo. % For @tex, we can use \tabalign. \let\+ = \relax % Save some plain tex macros whose names we will redefine. \let\ptexb=\b \let\ptexbullet=\bullet \let\ptexc=\c \let\ptexcomma=\, \let\ptexdot=\. \let\ptexdots=\dots \let\ptexend=\end \let\ptexequiv=\equiv \let\ptexexclam=\! \let\ptexfootnote=\footnote \let\ptexgtr=> \let\ptexhat=^ \let\ptexi=\i \let\ptexindent=\indent \let\ptexinsert=\insert \let\ptexlbrace=\{ \let\ptexless=< \let\ptexnewwrite\newwrite \let\ptexnoindent=\noindent \let\ptexplus=+ \let\ptexraggedright=\raggedright \let\ptexrbrace=\} \let\ptexslash=\/ \let\ptexstar=\* \let\ptext=\t \let\ptextop=\top {\catcode`\'=\active \global\let\ptexquoteright'}% active in plain's math mode % If this character appears in an error message or help string, it % starts a new line in the output. \newlinechar = `^^J % Use TeX 3.0's \inputlineno to get the line number, for better error % messages, but if we're using an old version of TeX, don't do anything. % \ifx\inputlineno\thisisundefined \let\linenumber = \empty % Pre-3.0. \else \def\linenumber{l.\the\inputlineno:\space} \fi % Set up fixed words for English if not already set. \ifx\putwordAppendix\undefined \gdef\putwordAppendix{Appendix}\fi \ifx\putwordChapter\undefined \gdef\putwordChapter{Chapter}\fi \ifx\putworderror\undefined \gdef\putworderror{error}\fi \ifx\putwordfile\undefined \gdef\putwordfile{file}\fi \ifx\putwordin\undefined \gdef\putwordin{in}\fi \ifx\putwordIndexIsEmpty\undefined \gdef\putwordIndexIsEmpty{(Index is empty)}\fi \ifx\putwordIndexNonexistent\undefined \gdef\putwordIndexNonexistent{(Index is nonexistent)}\fi \ifx\putwordInfo\undefined \gdef\putwordInfo{Info}\fi \ifx\putwordInstanceVariableof\undefined \gdef\putwordInstanceVariableof{Instance Variable of}\fi \ifx\putwordMethodon\undefined \gdef\putwordMethodon{Method on}\fi \ifx\putwordNoTitle\undefined \gdef\putwordNoTitle{No Title}\fi \ifx\putwordof\undefined \gdef\putwordof{of}\fi \ifx\putwordon\undefined \gdef\putwordon{on}\fi \ifx\putwordpage\undefined \gdef\putwordpage{page}\fi \ifx\putwordsection\undefined \gdef\putwordsection{section}\fi \ifx\putwordSection\undefined \gdef\putwordSection{Section}\fi \ifx\putwordsee\undefined \gdef\putwordsee{see}\fi \ifx\putwordSee\undefined \gdef\putwordSee{See}\fi \ifx\putwordShortTOC\undefined \gdef\putwordShortTOC{Short Contents}\fi \ifx\putwordTOC\undefined \gdef\putwordTOC{Table of Contents}\fi % \ifx\putwordMJan\undefined \gdef\putwordMJan{January}\fi \ifx\putwordMFeb\undefined \gdef\putwordMFeb{February}\fi \ifx\putwordMMar\undefined \gdef\putwordMMar{March}\fi \ifx\putwordMApr\undefined \gdef\putwordMApr{April}\fi \ifx\putwordMMay\undefined \gdef\putwordMMay{May}\fi \ifx\putwordMJun\undefined \gdef\putwordMJun{June}\fi \ifx\putwordMJul\undefined \gdef\putwordMJul{July}\fi \ifx\putwordMAug\undefined \gdef\putwordMAug{August}\fi \ifx\putwordMSep\undefined \gdef\putwordMSep{September}\fi \ifx\putwordMOct\undefined \gdef\putwordMOct{October}\fi \ifx\putwordMNov\undefined \gdef\putwordMNov{November}\fi \ifx\putwordMDec\undefined \gdef\putwordMDec{December}\fi % \ifx\putwordDefmac\undefined \gdef\putwordDefmac{Macro}\fi \ifx\putwordDefspec\undefined \gdef\putwordDefspec{Special Form}\fi \ifx\putwordDefvar\undefined \gdef\putwordDefvar{Variable}\fi \ifx\putwordDefopt\undefined \gdef\putwordDefopt{User Option}\fi \ifx\putwordDeffunc\undefined \gdef\putwordDeffunc{Function}\fi % Since the category of space is not known, we have to be careful. \chardef\spacecat = 10 \def\spaceisspace{\catcode`\ =\spacecat} % sometimes characters are active, so we need control sequences. \chardef\ampChar = `\& \chardef\colonChar = `\: \chardef\commaChar = `\, \chardef\dashChar = `\- \chardef\dotChar = `\. \chardef\exclamChar= `\! \chardef\hashChar = `\# \chardef\lquoteChar= `\` \chardef\questChar = `\? \chardef\rquoteChar= `\' \chardef\semiChar = `\; \chardef\slashChar = `\/ \chardef\underChar = `\_ % Ignore a token. % \def\gobble#1{} % The following is used inside several \edef's. \def\makecsname#1{\expandafter\noexpand\csname#1\endcsname} % Hyphenation fixes. \hyphenation{ Flor-i-da Ghost-script Ghost-view Mac-OS Post-Script ap-pen-dix bit-map bit-maps data-base data-bases eshell fall-ing half-way long-est man-u-script man-u-scripts mini-buf-fer mini-buf-fers over-view par-a-digm par-a-digms rath-er rec-tan-gu-lar ro-bot-ics se-vere-ly set-up spa-ces spell-ing spell-ings stand-alone strong-est time-stamp time-stamps which-ever white-space wide-spread wrap-around } % Margin to add to right of even pages, to left of odd pages. \newdimen\bindingoffset \newdimen\normaloffset \newdimen\pagewidth \newdimen\pageheight % For a final copy, take out the rectangles % that mark overfull boxes (in case you have decided % that the text looks ok even though it passes the margin). % \def\finalout{\overfullrule=0pt } % Sometimes it is convenient to have everything in the transcript file % and nothing on the terminal. We don't just call \tracingall here, % since that produces some useless output on the terminal. We also make % some effort to order the tracing commands to reduce output in the log % file; cf. trace.sty in LaTeX. % \def\gloggingall{\begingroup \globaldefs = 1 \loggingall \endgroup}% \def\loggingall{% \tracingstats2 \tracingpages1 \tracinglostchars2 % 2 gives us more in etex \tracingparagraphs1 \tracingoutput1 \tracingmacros2 \tracingrestores1 \showboxbreadth\maxdimen \showboxdepth\maxdimen \ifx\eTeXversion\thisisundefined\else % etex gives us more logging \tracingscantokens1 \tracingifs1 \tracinggroups1 \tracingnesting2 \tracingassigns1 \fi \tracingcommands3 % 3 gives us more in etex \errorcontextlines16 }% % @errormsg{MSG}. Do the index-like expansions on MSG, but if things % aren't perfect, it's not the end of the world, being an error message, % after all. % \def\errormsg{\begingroup \indexnofonts \doerrormsg} \def\doerrormsg#1{\errmessage{#1}} % add check for \lastpenalty to plain's definitions. If the last thing % we did was a \nobreak, we don't want to insert more space. % \def\smallbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\smallskipamount \removelastskip\penalty-50\smallskip\fi\fi} \def\medbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\medskipamount \removelastskip\penalty-100\medskip\fi\fi} \def\bigbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\bigskipamount \removelastskip\penalty-200\bigskip\fi\fi} % Do @cropmarks to get crop marks. % \newif\ifcropmarks \let\cropmarks = \cropmarkstrue % % Dimensions to add cropmarks at corners. % Added by P. A. MacKay, 12 Nov. 1986 % \newdimen\outerhsize \newdimen\outervsize % set by the paper size routines \newdimen\cornerlong \cornerlong=1pc \newdimen\cornerthick \cornerthick=.3pt \newdimen\topandbottommargin \topandbottommargin=.75in % Output a mark which sets \thischapter, \thissection and \thiscolor. % We dump everything together because we only have one kind of mark. % This works because we only use \botmark / \topmark, not \firstmark. % % A mark contains a subexpression of the \ifcase ... \fi construct. % \get*marks macros below extract the needed part using \ifcase. % % Another complication is to let the user choose whether \thischapter % (\thissection) refers to the chapter (section) in effect at the top % of a page, or that at the bottom of a page. The solution is % described on page 260 of The TeXbook. It involves outputting two % marks for the sectioning macros, one before the section break, and % one after. I won't pretend I can describe this better than DEK... \def\domark{% \toks0=\expandafter{\lastchapterdefs}% \toks2=\expandafter{\lastsectiondefs}% \toks4=\expandafter{\prevchapterdefs}% \toks6=\expandafter{\prevsectiondefs}% \toks8=\expandafter{\lastcolordefs}% \mark{% \the\toks0 \the\toks2 \noexpand\or \the\toks4 \the\toks6 \noexpand\else \the\toks8 }% } % \topmark doesn't work for the very first chapter (after the title % page or the contents), so we use \firstmark there -- this gets us % the mark with the chapter defs, unless the user sneaks in, e.g., % @setcolor (or @url, or @link, etc.) between @contents and the very % first @chapter. \def\gettopheadingmarks{% \ifcase0\topmark\fi \ifx\thischapter\empty \ifcase0\firstmark\fi \fi } \def\getbottomheadingmarks{\ifcase1\botmark\fi} \def\getcolormarks{\ifcase2\topmark\fi} % Avoid "undefined control sequence" errors. \def\lastchapterdefs{} \def\lastsectiondefs{} \def\prevchapterdefs{} \def\prevsectiondefs{} \def\lastcolordefs{} % Main output routine. \chardef\PAGE = 255 \output = {\onepageout{\pagecontents\PAGE}} \newbox\headlinebox \newbox\footlinebox % \onepageout takes a vbox as an argument. Note that \pagecontents % does insertions, but you have to call it yourself. \def\onepageout#1{% \ifcropmarks \hoffset=0pt \else \hoffset=\normaloffset \fi % \ifodd\pageno \advance\hoffset by \bindingoffset \else \advance\hoffset by -\bindingoffset\fi % % Do this outside of the \shipout so @code etc. will be expanded in % the headline as they should be, not taken literally (outputting ''code). \ifodd\pageno \getoddheadingmarks \else \getevenheadingmarks \fi \setbox\headlinebox = \vbox{\let\hsize=\pagewidth \makeheadline}% \ifodd\pageno \getoddfootingmarks \else \getevenfootingmarks \fi \setbox\footlinebox = \vbox{\let\hsize=\pagewidth \makefootline}% % {% % Have to do this stuff outside the \shipout because we want it to % take effect in \write's, yet the group defined by the \vbox ends % before the \shipout runs. % \indexdummies % don't expand commands in the output. \normalturnoffactive % \ in index entries must not stay \, e.g., if % the page break happens to be in the middle of an example. % We don't want .vr (or whatever) entries like this: % \entry{{\tt \indexbackslash }acronym}{32}{\code {\acronym}} % "\acronym" won't work when it's read back in; % it needs to be % {\code {{\tt \backslashcurfont }acronym} \shipout\vbox{% % Do this early so pdf references go to the beginning of the page. \ifpdfmakepagedest \pdfdest name{\the\pageno} xyz\fi % \ifcropmarks \vbox to \outervsize\bgroup \hsize = \outerhsize \vskip-\topandbottommargin \vtop to0pt{% \line{\ewtop\hfil\ewtop}% \nointerlineskip \line{% \vbox{\moveleft\cornerthick\nstop}% \hfill \vbox{\moveright\cornerthick\nstop}% }% \vss}% \vskip\topandbottommargin \line\bgroup \hfil % center the page within the outer (page) hsize. \ifodd\pageno\hskip\bindingoffset\fi \vbox\bgroup \fi % \unvbox\headlinebox \pagebody{#1}% \ifdim\ht\footlinebox > 0pt % Only leave this space if the footline is nonempty. % (We lessened \vsize for it in \oddfootingyyy.) % The \baselineskip=24pt in plain's \makefootline has no effect. \vskip 24pt \unvbox\footlinebox \fi % \ifcropmarks \egroup % end of \vbox\bgroup \hfil\egroup % end of (centering) \line\bgroup \vskip\topandbottommargin plus1fill minus1fill \boxmaxdepth = \cornerthick \vbox to0pt{\vss \line{% \vbox{\moveleft\cornerthick\nsbot}% \hfill \vbox{\moveright\cornerthick\nsbot}% }% \nointerlineskip \line{\ewbot\hfil\ewbot}% }% \egroup % \vbox from first cropmarks clause \fi }% end of \shipout\vbox }% end of group with \indexdummies \advancepageno \ifnum\outputpenalty>-20000 \else\dosupereject\fi } \newinsert\margin \dimen\margin=\maxdimen \def\pagebody#1{\vbox to\pageheight{\boxmaxdepth=\maxdepth #1}} {\catcode`\@ =11 \gdef\pagecontents#1{\ifvoid\topins\else\unvbox\topins\fi % marginal hacks, juha@viisa.uucp (Juha Takala) \ifvoid\margin\else % marginal info is present \rlap{\kern\hsize\vbox to\z@{\kern1pt\box\margin \vss}}\fi \dimen@=\dp#1\relax \unvbox#1\relax \ifvoid\footins\else\vskip\skip\footins\footnoterule \unvbox\footins\fi \ifr@ggedbottom \kern-\dimen@ \vfil \fi} } % Here are the rules for the cropmarks. Note that they are % offset so that the space between them is truly \outerhsize or \outervsize % (P. A. MacKay, 12 November, 1986) % \def\ewtop{\vrule height\cornerthick depth0pt width\cornerlong} \def\nstop{\vbox {\hrule height\cornerthick depth\cornerlong width\cornerthick}} \def\ewbot{\vrule height0pt depth\cornerthick width\cornerlong} \def\nsbot{\vbox {\hrule height\cornerlong depth\cornerthick width\cornerthick}} % Parse an argument, then pass it to #1. The argument is the rest of % the input line (except we remove a trailing comment). #1 should be a % macro which expects an ordinary undelimited TeX argument. % \def\parsearg{\parseargusing{}} \def\parseargusing#1#2{% \def\argtorun{#2}% \begingroup \obeylines \spaceisspace #1% \parseargline\empty% Insert the \empty token, see \finishparsearg below. } {\obeylines % \gdef\parseargline#1^^M{% \endgroup % End of the group started in \parsearg. \argremovecomment #1\comment\ArgTerm% }% } % First remove any @comment, then any @c comment. \def\argremovecomment#1\comment#2\ArgTerm{\argremovec #1\c\ArgTerm} \def\argremovec#1\c#2\ArgTerm{\argcheckspaces#1\^^M\ArgTerm} % Each occurrence of `\^^M' or `\^^M' is replaced by a single space. % % \argremovec might leave us with trailing space, e.g., % @end itemize @c foo % This space token undergoes the same procedure and is eventually removed % by \finishparsearg. % \def\argcheckspaces#1\^^M{\argcheckspacesX#1\^^M \^^M} \def\argcheckspacesX#1 \^^M{\argcheckspacesY#1\^^M} \def\argcheckspacesY#1\^^M#2\^^M#3\ArgTerm{% \def\temp{#3}% \ifx\temp\empty % Do not use \next, perhaps the caller of \parsearg uses it; reuse \temp: \let\temp\finishparsearg \else \let\temp\argcheckspaces \fi % Put the space token in: \temp#1 #3\ArgTerm } % If a _delimited_ argument is enclosed in braces, they get stripped; so % to get _exactly_ the rest of the line, we had to prevent such situation. % We prepended an \empty token at the very beginning and we expand it now, % just before passing the control to \argtorun. % (Similarly, we have to think about #3 of \argcheckspacesY above: it is % either the null string, or it ends with \^^M---thus there is no danger % that a pair of braces would be stripped. % % But first, we have to remove the trailing space token. % \def\finishparsearg#1 \ArgTerm{\expandafter\argtorun\expandafter{#1}} % \parseargdef\foo{...} % is roughly equivalent to % \def\foo{\parsearg\Xfoo} % \def\Xfoo#1{...} % % Actually, I use \csname\string\foo\endcsname, ie. \\foo, as it is my % favourite TeX trick. --kasal, 16nov03 \def\parseargdef#1{% \expandafter \doparseargdef \csname\string#1\endcsname #1% } \def\doparseargdef#1#2{% \def#2{\parsearg#1}% \def#1##1% } % Several utility definitions with active space: { \obeyspaces \gdef\obeyedspace{ } % Make each space character in the input produce a normal interword % space in the output. Don't allow a line break at this space, as this % is used only in environments like @example, where each line of input % should produce a line of output anyway. % \gdef\sepspaces{\obeyspaces\let =\tie} % If an index command is used in an @example environment, any spaces % therein should become regular spaces in the raw index file, not the % expansion of \tie (\leavevmode \penalty \@M \ ). \gdef\unsepspaces{\let =\space} } \def\flushcr{\ifx\par\lisppar \def\next##1{}\else \let\next=\relax \fi \next} % Define the framework for environments in texinfo.tex. It's used like this: % % \envdef\foo{...} % \def\Efoo{...} % % It's the responsibility of \envdef to insert \begingroup before the % actual body; @end closes the group after calling \Efoo. \envdef also % defines \thisenv, so the current environment is known; @end checks % whether the environment name matches. The \checkenv macro can also be % used to check whether the current environment is the one expected. % % Non-false conditionals (@iftex, @ifset) don't fit into this, so they % are not treated as environments; they don't open a group. (The % implementation of @end takes care not to call \endgroup in this % special case.) % At run-time, environments start with this: \def\startenvironment#1{\begingroup\def\thisenv{#1}} % initialize \let\thisenv\empty % ... but they get defined via ``\envdef\foo{...}'': \long\def\envdef#1#2{\def#1{\startenvironment#1#2}} \def\envparseargdef#1#2{\parseargdef#1{\startenvironment#1#2}} % Check whether we're in the right environment: \def\checkenv#1{% \def\temp{#1}% \ifx\thisenv\temp \else \badenverr \fi } % Environment mismatch, #1 expected: \def\badenverr{% \errhelp = \EMsimple \errmessage{This command can appear only \inenvironment\temp, not \inenvironment\thisenv}% } \def\inenvironment#1{% \ifx#1\empty outside of any environment% \else in environment \expandafter\string#1% \fi } % @end foo executes the definition of \Efoo. % But first, it executes a specialized version of \checkenv % \parseargdef\end{% \if 1\csname iscond.#1\endcsname \else % The general wording of \badenverr may not be ideal. \expandafter\checkenv\csname#1\endcsname \csname E#1\endcsname \endgroup \fi } \newhelp\EMsimple{Press RETURN to continue.} % Be sure we're in horizontal mode when doing a tie, since we make space % equivalent to this in @example-like environments. Otherwise, a space % at the beginning of a line will start with \penalty -- and % since \penalty is valid in vertical mode, we'd end up putting the % penalty on the vertical list instead of in the new paragraph. {\catcode`@ = 11 % Avoid using \@M directly, because that causes trouble % if the definition is written into an index file. \global\let\tiepenalty = \@M \gdef\tie{\leavevmode\penalty\tiepenalty\ } } % @: forces normal size whitespace following. \def\:{\spacefactor=1000 } % @* forces a line break. \def\*{\hfil\break\hbox{}\ignorespaces} % @/ allows a line break. \let\/=\allowbreak % @. is an end-of-sentence period. \def\.{.\spacefactor=\endofsentencespacefactor\space} % @! is an end-of-sentence bang. \def\!{!\spacefactor=\endofsentencespacefactor\space} % @? is an end-of-sentence query. \def\?{?\spacefactor=\endofsentencespacefactor\space} % @frenchspacing on|off says whether to put extra space after punctuation. % \def\onword{on} \def\offword{off} % \parseargdef\frenchspacing{% \def\temp{#1}% \ifx\temp\onword \plainfrenchspacing \else\ifx\temp\offword \plainnonfrenchspacing \else \errhelp = \EMsimple \errmessage{Unknown @frenchspacing option `\temp', must be on|off}% \fi\fi } % @w prevents a word break. Without the \leavevmode, @w at the % beginning of a paragraph, when TeX is still in vertical mode, would % produce a whole line of output instead of starting the paragraph. \def\w#1{\leavevmode\hbox{#1}} % @group ... @end group forces ... to be all on one page, by enclosing % it in a TeX vbox. We use \vtop instead of \vbox to construct the box % to keep its height that of a normal line. According to the rules for % \topskip (p.114 of the TeXbook), the glue inserted is % max (\topskip - \ht (first item), 0). If that height is large, % therefore, no glue is inserted, and the space between the headline and % the text is small, which looks bad. % % Another complication is that the group might be very large. This can % cause the glue on the previous page to be unduly stretched, because it % does not have much material. In this case, it's better to add an % explicit \vfill so that the extra space is at the bottom. The % threshold for doing this is if the group is more than \vfilllimit % percent of a page (\vfilllimit can be changed inside of @tex). % \newbox\groupbox \def\vfilllimit{0.7} % \envdef\group{% \ifnum\catcode`\^^M=\active \else \errhelp = \groupinvalidhelp \errmessage{@group invalid in context where filling is enabled}% \fi \startsavinginserts % \setbox\groupbox = \vtop\bgroup % Do @comment since we are called inside an environment such as % @example, where each end-of-line in the input causes an % end-of-line in the output. We don't want the end-of-line after % the `@group' to put extra space in the output. Since @group % should appear on a line by itself (according to the Texinfo % manual), we don't worry about eating any user text. \comment } % % The \vtop produces a box with normal height and large depth; thus, TeX puts % \baselineskip glue before it, and (when the next line of text is done) % \lineskip glue after it. Thus, space below is not quite equal to space % above. But it's pretty close. \def\Egroup{% % To get correct interline space between the last line of the group % and the first line afterwards, we have to propagate \prevdepth. \endgraf % Not \par, as it may have been set to \lisppar. \global\dimen1 = \prevdepth \egroup % End the \vtop. % \dimen0 is the vertical size of the group's box. \dimen0 = \ht\groupbox \advance\dimen0 by \dp\groupbox % \dimen2 is how much space is left on the page (more or less). \dimen2 = \pageheight \advance\dimen2 by -\pagetotal % if the group doesn't fit on the current page, and it's a big big % group, force a page break. \ifdim \dimen0 > \dimen2 \ifdim \pagetotal < \vfilllimit\pageheight \page \fi \fi \box\groupbox \prevdepth = \dimen1 \checkinserts } % % TeX puts in an \escapechar (i.e., `@') at the beginning of the help % message, so this ends up printing `@group can only ...'. % \newhelp\groupinvalidhelp{% group can only be used in environments such as @example,^^J% where each line of input produces a line of output.} % @need space-in-mils % forces a page break if there is not space-in-mils remaining. \newdimen\mil \mil=0.001in \parseargdef\need{% % Ensure vertical mode, so we don't make a big box in the middle of a % paragraph. \par % % If the @need value is less than one line space, it's useless. \dimen0 = #1\mil \dimen2 = \ht\strutbox \advance\dimen2 by \dp\strutbox \ifdim\dimen0 > \dimen2 % % Do a \strut just to make the height of this box be normal, so the % normal leading is inserted relative to the preceding line. % And a page break here is fine. \vtop to #1\mil{\strut\vfil}% % % TeX does not even consider page breaks if a penalty added to the % main vertical list is 10000 or more. But in order to see if the % empty box we just added fits on the page, we must make it consider % page breaks. On the other hand, we don't want to actually break the % page after the empty box. So we use a penalty of 9999. % % There is an extremely small chance that TeX will actually break the % page at this \penalty, if there are no other feasible breakpoints in % sight. (If the user is using lots of big @group commands, which % almost-but-not-quite fill up a page, TeX will have a hard time doing % good page breaking, for example.) However, I could not construct an % example where a page broke at this \penalty; if it happens in a real % document, then we can reconsider our strategy. \penalty9999 % % Back up by the size of the box, whether we did a page break or not. \kern -#1\mil % % Do not allow a page break right after this kern. \nobreak \fi } % @br forces paragraph break (and is undocumented). \let\br = \par % @page forces the start of a new page. % \def\page{\par\vfill\supereject} % @exdent text.... % outputs text on separate line in roman font, starting at standard page margin % This records the amount of indent in the innermost environment. % That's how much \exdent should take out. \newskip\exdentamount % This defn is used inside fill environments such as @defun. \parseargdef\exdent{\hfil\break\hbox{\kern -\exdentamount{\rm#1}}\hfil\break} % This defn is used inside nofill environments such as @example. \parseargdef\nofillexdent{{\advance \leftskip by -\exdentamount \leftline{\hskip\leftskip{\rm#1}}}} % @inmargin{WHICH}{TEXT} puts TEXT in the WHICH margin next to the current % paragraph. For more general purposes, use the \margin insertion % class. WHICH is `l' or `r'. Not documented, written for gawk manual. % \newskip\inmarginspacing \inmarginspacing=1cm \def\strutdepth{\dp\strutbox} % \def\doinmargin#1#2{\strut\vadjust{% \nobreak \kern-\strutdepth \vtop to \strutdepth{% \baselineskip=\strutdepth \vss % if you have multiple lines of stuff to put here, you'll need to % make the vbox yourself of the appropriate size. \ifx#1l% \llap{\ignorespaces #2\hskip\inmarginspacing}% \else \rlap{\hskip\hsize \hskip\inmarginspacing \ignorespaces #2}% \fi \null }% }} \def\inleftmargin{\doinmargin l} \def\inrightmargin{\doinmargin r} % % @inmargin{TEXT [, RIGHT-TEXT]} % (if RIGHT-TEXT is given, use TEXT for left page, RIGHT-TEXT for right; % else use TEXT for both). % \def\inmargin#1{\parseinmargin #1,,\finish} \def\parseinmargin#1,#2,#3\finish{% not perfect, but better than nothing. \setbox0 = \hbox{\ignorespaces #2}% \ifdim\wd0 > 0pt \def\lefttext{#1}% have both texts \def\righttext{#2}% \else \def\lefttext{#1}% have only one text \def\righttext{#1}% \fi % \ifodd\pageno \def\temp{\inrightmargin\righttext}% odd page -> outside is right margin \else \def\temp{\inleftmargin\lefttext}% \fi \temp } % @| inserts a changebar to the left of the current line. It should % surround any changed text. This approach does *not* work if the % change spans more than two lines of output. To handle that, we would % have adopt a much more difficult approach (putting marks into the main % vertical list for the beginning and end of each change). This command % is not documented, not supported, and doesn't work. % \def\|{% % \vadjust can only be used in horizontal mode. \leavevmode % % Append this vertical mode material after the current line in the output. \vadjust{% % We want to insert a rule with the height and depth of the current % leading; that is exactly what \strutbox is supposed to record. \vskip-\baselineskip % % \vadjust-items are inserted at the left edge of the type. So % the \llap here moves out into the left-hand margin. \llap{% % % For a thicker or thinner bar, change the `1pt'. \vrule height\baselineskip width1pt % % This is the space between the bar and the text. \hskip 12pt }% }% } % @include FILE -- \input text of FILE. % \def\include{\parseargusing\filenamecatcodes\includezzz} \def\includezzz#1{% \pushthisfilestack \def\thisfile{#1}% {% \makevalueexpandable % we want to expand any @value in FILE. \turnoffactive % and allow special characters in the expansion \indexnofonts % Allow `@@' and other weird things in file names. \wlog{texinfo.tex: doing @include of #1^^J}% \edef\temp{\noexpand\input #1 }% % % This trickery is to read FILE outside of a group, in case it makes % definitions, etc. \expandafter }\temp \popthisfilestack } \def\filenamecatcodes{% \catcode`\\=\other \catcode`~=\other \catcode`^=\other \catcode`_=\other \catcode`|=\other \catcode`<=\other \catcode`>=\other \catcode`+=\other \catcode`-=\other \catcode`\`=\other \catcode`\'=\other } \def\pushthisfilestack{% \expandafter\pushthisfilestackX\popthisfilestack\StackTerm } \def\pushthisfilestackX{% \expandafter\pushthisfilestackY\thisfile\StackTerm } \def\pushthisfilestackY #1\StackTerm #2\StackTerm {% \gdef\popthisfilestack{\gdef\thisfile{#1}\gdef\popthisfilestack{#2}}% } \def\popthisfilestack{\errthisfilestackempty} \def\errthisfilestackempty{\errmessage{Internal error: the stack of filenames is empty.}} % \def\thisfile{} % @center line % outputs that line, centered. % \parseargdef\center{% \ifhmode \let\centersub\centerH \else \let\centersub\centerV \fi \centersub{\hfil \ignorespaces#1\unskip \hfil}% \let\centersub\relax % don't let the definition persist, just in case } \def\centerH#1{{% \hfil\break \advance\hsize by -\leftskip \advance\hsize by -\rightskip \line{#1}% \break }} % \newcount\centerpenalty \def\centerV#1{% % The idea here is the same as in \startdefun, \cartouche, etc.: if % @center is the first thing after a section heading, we need to wipe % out the negative parskip inserted by \sectionheading, but still % prevent a page break here. \centerpenalty = \lastpenalty \ifnum\centerpenalty>10000 \vskip\parskip \fi \ifnum\centerpenalty>9999 \penalty\centerpenalty \fi \line{\kern\leftskip #1\kern\rightskip}% } % @sp n outputs n lines of vertical space % \parseargdef\sp{\vskip #1\baselineskip} % @comment ...line which is ignored... % @c is the same as @comment % @ignore ... @end ignore is another way to write a comment % \def\comment{\begingroup \catcode`\^^M=\other% \catcode`\@=\other \catcode`\{=\other \catcode`\}=\other% \commentxxx} {\catcode`\^^M=\other \gdef\commentxxx#1^^M{\endgroup}} % \let\c=\comment % @paragraphindent NCHARS % We'll use ems for NCHARS, close enough. % NCHARS can also be the word `asis' or `none'. % We cannot feasibly implement @paragraphindent asis, though. % \def\asisword{asis} % no translation, these are keywords \def\noneword{none} % \parseargdef\paragraphindent{% \def\temp{#1}% \ifx\temp\asisword \else \ifx\temp\noneword \defaultparindent = 0pt \else \defaultparindent = #1em \fi \fi \parindent = \defaultparindent } % @exampleindent NCHARS % We'll use ems for NCHARS like @paragraphindent. % It seems @exampleindent asis isn't necessary, but % I preserve it to make it similar to @paragraphindent. \parseargdef\exampleindent{% \def\temp{#1}% \ifx\temp\asisword \else \ifx\temp\noneword \lispnarrowing = 0pt \else \lispnarrowing = #1em \fi \fi } % @firstparagraphindent WORD % If WORD is `none', then suppress indentation of the first paragraph % after a section heading. If WORD is `insert', then do indent at such % paragraphs. % % The paragraph indentation is suppressed or not by calling % \suppressfirstparagraphindent, which the sectioning commands do. % We switch the definition of this back and forth according to WORD. % By default, we suppress indentation. % \def\suppressfirstparagraphindent{\dosuppressfirstparagraphindent} \def\insertword{insert} % \parseargdef\firstparagraphindent{% \def\temp{#1}% \ifx\temp\noneword \let\suppressfirstparagraphindent = \dosuppressfirstparagraphindent \else\ifx\temp\insertword \let\suppressfirstparagraphindent = \relax \else \errhelp = \EMsimple \errmessage{Unknown @firstparagraphindent option `\temp'}% \fi\fi } % Here is how we actually suppress indentation. Redefine \everypar to % \kern backwards by \parindent, and then reset itself to empty. % % We also make \indent itself not actually do anything until the next % paragraph. % \gdef\dosuppressfirstparagraphindent{% \gdef\indent{% \restorefirstparagraphindent \indent }% \gdef\noindent{% \restorefirstparagraphindent \noindent }% \global\everypar = {% \kern -\parindent \restorefirstparagraphindent }% } \gdef\restorefirstparagraphindent{% \global \let \indent = \ptexindent \global \let \noindent = \ptexnoindent \global \everypar = {}% } % @refill is a no-op. \let\refill=\relax % If working on a large document in chapters, it is convenient to % be able to disable indexing, cross-referencing, and contents, for test runs. % This is done with @novalidate (before @setfilename). % \newif\iflinks \linkstrue % by default we want the aux files. \let\novalidate = \linksfalse % @setfilename is done at the beginning of every texinfo file. % So open here the files we need to have open while reading the input. % This makes it possible to make a .fmt file for texinfo. \def\setfilename{% \fixbackslash % Turn off hack to swallow `\input texinfo'. \iflinks \tryauxfile % Open the new aux file. TeX will close it automatically at exit. \immediate\openout\auxfile=\jobname.aux \fi % \openindices needs to do some work in any case. \openindices \let\setfilename=\comment % Ignore extra @setfilename cmds. % % If texinfo.cnf is present on the system, read it. % Useful for site-wide @afourpaper, etc. \openin 1 texinfo.cnf \ifeof 1 \else \input texinfo.cnf \fi \closein 1 % \comment % Ignore the actual filename. } % Called from \setfilename. % \def\openindices{% \newindex{cp}% \newcodeindex{fn}% \newcodeindex{vr}% \newcodeindex{tp}% \newcodeindex{ky}% \newcodeindex{pg}% } % @bye. \outer\def\bye{\pagealignmacro\tracingstats=1\ptexend} \message{pdf,} % adobe `portable' document format \newcount\tempnum \newcount\lnkcount \newtoks\filename \newcount\filenamelength \newcount\pgn \newtoks\toksA \newtoks\toksB \newtoks\toksC \newtoks\toksD \newbox\boxA \newcount\countA \newif\ifpdf \newif\ifpdfmakepagedest % when pdftex is run in dvi mode, \pdfoutput is defined (so \pdfoutput=1 % can be set). So we test for \relax and 0 as well as being undefined. \ifx\pdfoutput\thisisundefined \else \ifx\pdfoutput\relax \else \ifcase\pdfoutput \else \pdftrue \fi \fi \fi % PDF uses PostScript string constants for the names of xref targets, % for display in the outlines, and in other places. Thus, we have to % double any backslashes. Otherwise, a name like "\node" will be % interpreted as a newline (\n), followed by o, d, e. Not good. % % See http://www.ntg.nl/pipermail/ntg-pdftex/2004-July/000654.html and % related messages. The final outcome is that it is up to the TeX user % to double the backslashes and otherwise make the string valid, so % that's what we do. pdftex 1.30.0 (ca.2005) introduced a primitive to % do this reliably, so we use it. % #1 is a control sequence in which to do the replacements, % which we \xdef. \def\txiescapepdf#1{% \ifx\pdfescapestring\relax % No primitive available; should we give a warning or log? % Many times it won't matter. \else % The expandable \pdfescapestring primitive escapes parentheses, % backslashes, and other special chars. \xdef#1{\pdfescapestring{#1}}% \fi } \newhelp\nopdfimagehelp{Texinfo supports .png, .jpg, .jpeg, and .pdf images with PDF output, and none of those formats could be found. (.eps cannot be supported due to the design of the PDF format; use regular TeX (DVI output) for that.)} \ifpdf % % Color manipulation macros based on pdfcolor.tex, % except using rgb instead of cmyk; the latter is said to render as a % very dark gray on-screen and a very dark halftone in print, instead % of actual black. \def\rgbDarkRed{0.50 0.09 0.12} \def\rgbBlack{0 0 0} % % k sets the color for filling (usual text, etc.); % K sets the color for stroking (thin rules, e.g., normal _'s). \def\pdfsetcolor#1{\pdfliteral{#1 rg #1 RG}} % % Set color, and create a mark which defines \thiscolor accordingly, % so that \makeheadline knows which color to restore. \def\setcolor#1{% \xdef\lastcolordefs{\gdef\noexpand\thiscolor{#1}}% \domark \pdfsetcolor{#1}% } % \def\maincolor{\rgbBlack} \pdfsetcolor{\maincolor} \edef\thiscolor{\maincolor} \def\lastcolordefs{} % \def\makefootline{% \baselineskip24pt \line{\pdfsetcolor{\maincolor}\the\footline}% } % \def\makeheadline{% \vbox to 0pt{% \vskip-22.5pt \line{% \vbox to8.5pt{}% % Extract \thiscolor definition from the marks. \getcolormarks % Typeset the headline with \maincolor, then restore the color. \pdfsetcolor{\maincolor}\the\headline\pdfsetcolor{\thiscolor}% }% \vss }% \nointerlineskip } % % \pdfcatalog{/PageMode /UseOutlines} % % #1 is image name, #2 width (might be empty/whitespace), #3 height (ditto). \def\dopdfimage#1#2#3{% \def\pdfimagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}% \def\pdfimageheight{#3}\setbox2 = \hbox{\ignorespaces #3}% % % pdftex (and the PDF format) support .pdf, .png, .jpg (among % others). Let's try in that order, PDF first since if % someone has a scalable image, presumably better to use that than a % bitmap. \let\pdfimgext=\empty \begingroup \openin 1 #1.pdf \ifeof 1 \openin 1 #1.PDF \ifeof 1 \openin 1 #1.png \ifeof 1 \openin 1 #1.jpg \ifeof 1 \openin 1 #1.jpeg \ifeof 1 \openin 1 #1.JPG \ifeof 1 \errhelp = \nopdfimagehelp \errmessage{Could not find image file #1 for pdf}% \else \gdef\pdfimgext{JPG}% \fi \else \gdef\pdfimgext{jpeg}% \fi \else \gdef\pdfimgext{jpg}% \fi \else \gdef\pdfimgext{png}% \fi \else \gdef\pdfimgext{PDF}% \fi \else \gdef\pdfimgext{pdf}% \fi \closein 1 \endgroup % % without \immediate, ancient pdftex seg faults when the same image is % included twice. (Version 3.14159-pre-1.0-unofficial-20010704.) \ifnum\pdftexversion < 14 \immediate\pdfimage \else \immediate\pdfximage \fi \ifdim \wd0 >0pt width \pdfimagewidth \fi \ifdim \wd2 >0pt height \pdfimageheight \fi \ifnum\pdftexversion<13 #1.\pdfimgext \else {#1.\pdfimgext}% \fi \ifnum\pdftexversion < 14 \else \pdfrefximage \pdflastximage \fi} % \def\pdfmkdest#1{{% % We have to set dummies so commands such as @code, and characters % such as \, aren't expanded when present in a section title. \indexnofonts \turnoffactive \makevalueexpandable \def\pdfdestname{#1}% \txiescapepdf\pdfdestname \safewhatsit{\pdfdest name{\pdfdestname} xyz}% }} % % used to mark target names; must be expandable. \def\pdfmkpgn#1{#1} % % by default, use a color that is dark enough to print on paper as % nearly black, but still distinguishable for online viewing. \def\urlcolor{\rgbDarkRed} \def\linkcolor{\rgbDarkRed} \def\endlink{\setcolor{\maincolor}\pdfendlink} % % Adding outlines to PDF; macros for calculating structure of outlines % come from Petr Olsak \def\expnumber#1{\expandafter\ifx\csname#1\endcsname\relax 0% \else \csname#1\endcsname \fi} \def\advancenumber#1{\tempnum=\expnumber{#1}\relax \advance\tempnum by 1 \expandafter\xdef\csname#1\endcsname{\the\tempnum}} % % #1 is the section text, which is what will be displayed in the % outline by the pdf viewer. #2 is the pdf expression for the number % of subentries (or empty, for subsubsections). #3 is the node text, % which might be empty if this toc entry had no corresponding node. % #4 is the page number % \def\dopdfoutline#1#2#3#4{% % Generate a link to the node text if that exists; else, use the % page number. We could generate a destination for the section % text in the case where a section has no node, but it doesn't % seem worth the trouble, since most documents are normally structured. \edef\pdfoutlinedest{#3}% \ifx\pdfoutlinedest\empty \def\pdfoutlinedest{#4}% \else \txiescapepdf\pdfoutlinedest \fi % % Also escape PDF chars in the display string. \edef\pdfoutlinetext{#1}% \txiescapepdf\pdfoutlinetext % \pdfoutline goto name{\pdfmkpgn{\pdfoutlinedest}}#2{\pdfoutlinetext}% } % \def\pdfmakeoutlines{% \begingroup % Read toc silently, to get counts of subentries for \pdfoutline. \def\partentry##1##2##3##4{}% ignore parts in the outlines \def\numchapentry##1##2##3##4{% \def\thischapnum{##2}% \def\thissecnum{0}% \def\thissubsecnum{0}% }% \def\numsecentry##1##2##3##4{% \advancenumber{chap\thischapnum}% \def\thissecnum{##2}% \def\thissubsecnum{0}% }% \def\numsubsecentry##1##2##3##4{% \advancenumber{sec\thissecnum}% \def\thissubsecnum{##2}% }% \def\numsubsubsecentry##1##2##3##4{% \advancenumber{subsec\thissubsecnum}% }% \def\thischapnum{0}% \def\thissecnum{0}% \def\thissubsecnum{0}% % % use \def rather than \let here because we redefine \chapentry et % al. a second time, below. \def\appentry{\numchapentry}% \def\appsecentry{\numsecentry}% \def\appsubsecentry{\numsubsecentry}% \def\appsubsubsecentry{\numsubsubsecentry}% \def\unnchapentry{\numchapentry}% \def\unnsecentry{\numsecentry}% \def\unnsubsecentry{\numsubsecentry}% \def\unnsubsubsecentry{\numsubsubsecentry}% \readdatafile{toc}% % % Read toc second time, this time actually producing the outlines. % The `-' means take the \expnumber as the absolute number of % subentries, which we calculated on our first read of the .toc above. % % We use the node names as the destinations. \def\numchapentry##1##2##3##4{% \dopdfoutline{##1}{count-\expnumber{chap##2}}{##3}{##4}}% \def\numsecentry##1##2##3##4{% \dopdfoutline{##1}{count-\expnumber{sec##2}}{##3}{##4}}% \def\numsubsecentry##1##2##3##4{% \dopdfoutline{##1}{count-\expnumber{subsec##2}}{##3}{##4}}% \def\numsubsubsecentry##1##2##3##4{% count is always zero \dopdfoutline{##1}{}{##3}{##4}}% % % PDF outlines are displayed using system fonts, instead of % document fonts. Therefore we cannot use special characters, % since the encoding is unknown. For example, the eogonek from % Latin 2 (0xea) gets translated to a | character. Info from % Staszek Wawrykiewicz, 19 Jan 2004 04:09:24 +0100. % % TODO this right, we have to translate 8-bit characters to % their "best" equivalent, based on the @documentencoding. Too % much work for too little return. Just use the ASCII equivalents % we use for the index sort strings. % \indexnofonts \setupdatafile % We can have normal brace characters in the PDF outlines, unlike % Texinfo index files. So set that up. \def\{{\lbracecharliteral}% \def\}{\rbracecharliteral}% \catcode`\\=\active \otherbackslash \input \tocreadfilename \endgroup } {\catcode`[=1 \catcode`]=2 \catcode`{=\other \catcode`}=\other \gdef\lbracecharliteral[{]% \gdef\rbracecharliteral[}]% ] % \def\skipspaces#1{\def\PP{#1}\def\D{|}% \ifx\PP\D\let\nextsp\relax \else\let\nextsp\skipspaces \ifx\p\space\else\addtokens{\filename}{\PP}% \advance\filenamelength by 1 \fi \fi \nextsp} \def\getfilename#1{% \filenamelength=0 % If we don't expand the argument now, \skipspaces will get % snagged on things like "@value{foo}". \edef\temp{#1}% \expandafter\skipspaces\temp|\relax } \ifnum\pdftexversion < 14 \let \startlink \pdfannotlink \else \let \startlink \pdfstartlink \fi % make a live url in pdf output. \def\pdfurl#1{% \begingroup % it seems we really need yet another set of dummies; have not % tried to figure out what each command should do in the context % of @url. for now, just make @/ a no-op, that's the only one % people have actually reported a problem with. % \normalturnoffactive \def\@{@}% \let\/=\empty \makevalueexpandable % do we want to go so far as to use \indexnofonts instead of just % special-casing \var here? \def\var##1{##1}% % \leavevmode\setcolor{\urlcolor}% \startlink attr{/Border [0 0 0]}% user{/Subtype /Link /A << /S /URI /URI (#1) >>}% \endgroup} \def\pdfgettoks#1.{\setbox\boxA=\hbox{\toksA={#1.}\toksB={}\maketoks}} \def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks} \def\adn#1{\addtokens{\toksC}{#1}\global\countA=1\let\next=\maketoks} \def\poptoks#1#2|ENDTOKS|{\let\first=#1\toksD={#1}\toksA={#2}} \def\maketoks{% \expandafter\poptoks\the\toksA|ENDTOKS|\relax \ifx\first0\adn0 \else\ifx\first1\adn1 \else\ifx\first2\adn2 \else\ifx\first3\adn3 \else\ifx\first4\adn4 \else\ifx\first5\adn5 \else\ifx\first6\adn6 \else\ifx\first7\adn7 \else\ifx\first8\adn8 \else\ifx\first9\adn9 \else \ifnum0=\countA\else\makelink\fi \ifx\first.\let\next=\done\else \let\next=\maketoks \addtokens{\toksB}{\the\toksD} \ifx\first,\addtokens{\toksB}{\space}\fi \fi \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi \next} \def\makelink{\addtokens{\toksB}% {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0} \def\pdflink#1{% \startlink attr{/Border [0 0 0]} goto name{\pdfmkpgn{#1}} \setcolor{\linkcolor}#1\endlink} \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st} \else % non-pdf mode \let\pdfmkdest = \gobble \let\pdfurl = \gobble \let\endlink = \relax \let\setcolor = \gobble \let\pdfsetcolor = \gobble \let\pdfmakeoutlines = \relax \fi % \ifx\pdfoutput \message{fonts,} % Change the current font style to #1, remembering it in \curfontstyle. % For now, we do not accumulate font styles: @b{@i{foo}} prints foo in % italics, not bold italics. % \def\setfontstyle#1{% \def\curfontstyle{#1}% not as a control sequence, because we are \edef'd. \csname ten#1\endcsname % change the current font } % Select #1 fonts with the current style. % \def\selectfonts#1{\csname #1fonts\endcsname \csname\curfontstyle\endcsname} \def\rm{\fam=0 \setfontstyle{rm}} \def\it{\fam=\itfam \setfontstyle{it}} \def\sl{\fam=\slfam \setfontstyle{sl}} \def\bf{\fam=\bffam \setfontstyle{bf}}\def\bfstylename{bf} \def\tt{\fam=\ttfam \setfontstyle{tt}} % Unfortunately, we have to override this for titles and the like, since % in those cases "rm" is bold. Sigh. \def\rmisbold{\rm\def\curfontstyle{bf}} % Texinfo sort of supports the sans serif font style, which plain TeX does not. % So we set up a \sf. \newfam\sffam \def\sf{\fam=\sffam \setfontstyle{sf}} \let\li = \sf % Sometimes we call it \li, not \sf. % We don't need math for this font style. \def\ttsl{\setfontstyle{ttsl}} % Default leading. \newdimen\textleading \textleading = 13.2pt % Set the baselineskip to #1, and the lineskip and strut size % correspondingly. There is no deep meaning behind these magic numbers % used as factors; they just match (closely enough) what Knuth defined. % \def\lineskipfactor{.08333} \def\strutheightpercent{.70833} \def\strutdepthpercent {.29167} % % can get a sort of poor man's double spacing by redefining this. \def\baselinefactor{1} % \def\setleading#1{% \dimen0 = #1\relax \normalbaselineskip = \baselinefactor\dimen0 \normallineskip = \lineskipfactor\normalbaselineskip \normalbaselines \setbox\strutbox =\hbox{% \vrule width0pt height\strutheightpercent\baselineskip depth \strutdepthpercent \baselineskip }% } % PDF CMaps. See also LaTeX's t1.cmap. % % do nothing with this by default. \expandafter\let\csname cmapOT1\endcsname\gobble \expandafter\let\csname cmapOT1IT\endcsname\gobble \expandafter\let\csname cmapOT1TT\endcsname\gobble % if we are producing pdf, and we have \pdffontattr, then define cmaps. % (\pdffontattr was introduced many years ago, but people still run % older pdftex's; it's easy to conditionalize, so we do.) \ifpdf \ifx\pdffontattr\thisisundefined \else \begingroup \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char. \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap %%DocumentNeededResources: ProcSet (CIDInit) %%IncludeResource: ProcSet (CIDInit) %%BeginResource: CMap (TeX-OT1-0) %%Title: (TeX-OT1-0 TeX OT1 0) %%Version: 1.000 %%EndComments /CIDInit /ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo << /Registry (TeX) /Ordering (OT1) /Supplement 0 >> def /CMapName /TeX-OT1-0 def /CMapType 2 def 1 begincodespacerange <00> <7F> endcodespacerange 8 beginbfrange <00> <01> <0393> <09> <0A> <03A8> <23> <26> <0023> <28> <3B> <0028> <3F> <5B> <003F> <5D> <5E> <005D> <61> <7A> <0061> <7B> <7C> <2013> endbfrange 40 beginbfchar <02> <0398> <03> <039B> <04> <039E> <05> <03A0> <06> <03A3> <07> <03D2> <08> <03A6> <0B> <00660066> <0C> <00660069> <0D> <0066006C> <0E> <006600660069> <0F> <00660066006C> <10> <0131> <11> <0237> <12> <0060> <13> <00B4> <14> <02C7> <15> <02D8> <16> <00AF> <17> <02DA> <18> <00B8> <19> <00DF> <1A> <00E6> <1B> <0153> <1C> <00F8> <1D> <00C6> <1E> <0152> <1F> <00D8> <21> <0021> <22> <201D> <27> <2019> <3C> <00A1> <3D> <003D> <3E> <00BF> <5C> <201C> <5F> <02D9> <60> <2018> <7D> <02DD> <7E> <007E> <7F> <00A8> endbfchar endcmap CMapName currentdict /CMap defineresource pop end end %%EndResource %%EOF }\endgroup \expandafter\edef\csname cmapOT1\endcsname#1{% \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}% }% % % \cmapOT1IT \begingroup \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char. \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap %%DocumentNeededResources: ProcSet (CIDInit) %%IncludeResource: ProcSet (CIDInit) %%BeginResource: CMap (TeX-OT1IT-0) %%Title: (TeX-OT1IT-0 TeX OT1IT 0) %%Version: 1.000 %%EndComments /CIDInit /ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo << /Registry (TeX) /Ordering (OT1IT) /Supplement 0 >> def /CMapName /TeX-OT1IT-0 def /CMapType 2 def 1 begincodespacerange <00> <7F> endcodespacerange 8 beginbfrange <00> <01> <0393> <09> <0A> <03A8> <25> <26> <0025> <28> <3B> <0028> <3F> <5B> <003F> <5D> <5E> <005D> <61> <7A> <0061> <7B> <7C> <2013> endbfrange 42 beginbfchar <02> <0398> <03> <039B> <04> <039E> <05> <03A0> <06> <03A3> <07> <03D2> <08> <03A6> <0B> <00660066> <0C> <00660069> <0D> <0066006C> <0E> <006600660069> <0F> <00660066006C> <10> <0131> <11> <0237> <12> <0060> <13> <00B4> <14> <02C7> <15> <02D8> <16> <00AF> <17> <02DA> <18> <00B8> <19> <00DF> <1A> <00E6> <1B> <0153> <1C> <00F8> <1D> <00C6> <1E> <0152> <1F> <00D8> <21> <0021> <22> <201D> <23> <0023> <24> <00A3> <27> <2019> <3C> <00A1> <3D> <003D> <3E> <00BF> <5C> <201C> <5F> <02D9> <60> <2018> <7D> <02DD> <7E> <007E> <7F> <00A8> endbfchar endcmap CMapName currentdict /CMap defineresource pop end end %%EndResource %%EOF }\endgroup \expandafter\edef\csname cmapOT1IT\endcsname#1{% \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}% }% % % \cmapOT1TT \begingroup \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char. \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap %%DocumentNeededResources: ProcSet (CIDInit) %%IncludeResource: ProcSet (CIDInit) %%BeginResource: CMap (TeX-OT1TT-0) %%Title: (TeX-OT1TT-0 TeX OT1TT 0) %%Version: 1.000 %%EndComments /CIDInit /ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo << /Registry (TeX) /Ordering (OT1TT) /Supplement 0 >> def /CMapName /TeX-OT1TT-0 def /CMapType 2 def 1 begincodespacerange <00> <7F> endcodespacerange 5 beginbfrange <00> <01> <0393> <09> <0A> <03A8> <21> <26> <0021> <28> <5F> <0028> <61> <7E> <0061> endbfrange 32 beginbfchar <02> <0398> <03> <039B> <04> <039E> <05> <03A0> <06> <03A3> <07> <03D2> <08> <03A6> <0B> <2191> <0C> <2193> <0D> <0027> <0E> <00A1> <0F> <00BF> <10> <0131> <11> <0237> <12> <0060> <13> <00B4> <14> <02C7> <15> <02D8> <16> <00AF> <17> <02DA> <18> <00B8> <19> <00DF> <1A> <00E6> <1B> <0153> <1C> <00F8> <1D> <00C6> <1E> <0152> <1F> <00D8> <20> <2423> <27> <2019> <60> <2018> <7F> <00A8> endbfchar endcmap CMapName currentdict /CMap defineresource pop end end %%EndResource %%EOF }\endgroup \expandafter\edef\csname cmapOT1TT\endcsname#1{% \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}% }% \fi\fi % Set the font macro #1 to the font named #2, adding on the % specified font prefix (normally `cm'). % #3 is the font's design size, #4 is a scale factor, #5 is the CMap % encoding (currently only OT1, OT1IT and OT1TT are allowed, pass % empty to omit). \def\setfont#1#2#3#4#5{% \font#1=\fontprefix#2#3 scaled #4 \csname cmap#5\endcsname#1% } % This is what gets called when #5 of \setfont is empty. \let\cmap\gobble % emacs-page end of cmaps % Use cm as the default font prefix. % To specify the font prefix, you must define \fontprefix % before you read in texinfo.tex. \ifx\fontprefix\thisisundefined \def\fontprefix{cm} \fi % Support font families that don't use the same naming scheme as CM. \def\rmshape{r} \def\rmbshape{bx} %where the normal face is bold \def\bfshape{b} \def\bxshape{bx} \def\ttshape{tt} \def\ttbshape{tt} \def\ttslshape{sltt} \def\itshape{ti} \def\itbshape{bxti} \def\slshape{sl} \def\slbshape{bxsl} \def\sfshape{ss} \def\sfbshape{ss} \def\scshape{csc} \def\scbshape{csc} % Definitions for a main text size of 11pt. This is the default in % Texinfo. % \def\definetextfontsizexi{% % Text fonts (11.2pt, magstep1). \def\textnominalsize{11pt} \edef\mainmagstep{\magstephalf} \setfont\textrm\rmshape{10}{\mainmagstep}{OT1} \setfont\texttt\ttshape{10}{\mainmagstep}{OT1TT} \setfont\textbf\bfshape{10}{\mainmagstep}{OT1} \setfont\textit\itshape{10}{\mainmagstep}{OT1IT} \setfont\textsl\slshape{10}{\mainmagstep}{OT1} \setfont\textsf\sfshape{10}{\mainmagstep}{OT1} \setfont\textsc\scshape{10}{\mainmagstep}{OT1} \setfont\textttsl\ttslshape{10}{\mainmagstep}{OT1TT} \font\texti=cmmi10 scaled \mainmagstep \font\textsy=cmsy10 scaled \mainmagstep \def\textecsize{1095} % A few fonts for @defun names and args. \setfont\defbf\bfshape{10}{\magstep1}{OT1} \setfont\deftt\ttshape{10}{\magstep1}{OT1TT} \setfont\defttsl\ttslshape{10}{\magstep1}{OT1TT} \def\df{\let\tentt=\deftt \let\tenbf = \defbf \let\tenttsl=\defttsl \bf} % Fonts for indices, footnotes, small examples (9pt). \def\smallnominalsize{9pt} \setfont\smallrm\rmshape{9}{1000}{OT1} \setfont\smalltt\ttshape{9}{1000}{OT1TT} \setfont\smallbf\bfshape{10}{900}{OT1} \setfont\smallit\itshape{9}{1000}{OT1IT} \setfont\smallsl\slshape{9}{1000}{OT1} \setfont\smallsf\sfshape{9}{1000}{OT1} \setfont\smallsc\scshape{10}{900}{OT1} \setfont\smallttsl\ttslshape{10}{900}{OT1TT} \font\smalli=cmmi9 \font\smallsy=cmsy9 \def\smallecsize{0900} % Fonts for small examples (8pt). \def\smallernominalsize{8pt} \setfont\smallerrm\rmshape{8}{1000}{OT1} \setfont\smallertt\ttshape{8}{1000}{OT1TT} \setfont\smallerbf\bfshape{10}{800}{OT1} \setfont\smallerit\itshape{8}{1000}{OT1IT} \setfont\smallersl\slshape{8}{1000}{OT1} \setfont\smallersf\sfshape{8}{1000}{OT1} \setfont\smallersc\scshape{10}{800}{OT1} \setfont\smallerttsl\ttslshape{10}{800}{OT1TT} \font\smalleri=cmmi8 \font\smallersy=cmsy8 \def\smallerecsize{0800} % Fonts for title page (20.4pt): \def\titlenominalsize{20pt} \setfont\titlerm\rmbshape{12}{\magstep3}{OT1} \setfont\titleit\itbshape{10}{\magstep4}{OT1IT} \setfont\titlesl\slbshape{10}{\magstep4}{OT1} \setfont\titlett\ttbshape{12}{\magstep3}{OT1TT} \setfont\titlettsl\ttslshape{10}{\magstep4}{OT1TT} \setfont\titlesf\sfbshape{17}{\magstep1}{OT1} \let\titlebf=\titlerm \setfont\titlesc\scbshape{10}{\magstep4}{OT1} \font\titlei=cmmi12 scaled \magstep3 \font\titlesy=cmsy10 scaled \magstep4 \def\titleecsize{2074} % Chapter (and unnumbered) fonts (17.28pt). \def\chapnominalsize{17pt} \setfont\chaprm\rmbshape{12}{\magstep2}{OT1} \setfont\chapit\itbshape{10}{\magstep3}{OT1IT} \setfont\chapsl\slbshape{10}{\magstep3}{OT1} \setfont\chaptt\ttbshape{12}{\magstep2}{OT1TT} \setfont\chapttsl\ttslshape{10}{\magstep3}{OT1TT} \setfont\chapsf\sfbshape{17}{1000}{OT1} \let\chapbf=\chaprm \setfont\chapsc\scbshape{10}{\magstep3}{OT1} \font\chapi=cmmi12 scaled \magstep2 \font\chapsy=cmsy10 scaled \magstep3 \def\chapecsize{1728} % Section fonts (14.4pt). \def\secnominalsize{14pt} \setfont\secrm\rmbshape{12}{\magstep1}{OT1} \setfont\secit\itbshape{10}{\magstep2}{OT1IT} \setfont\secsl\slbshape{10}{\magstep2}{OT1} \setfont\sectt\ttbshape{12}{\magstep1}{OT1TT} \setfont\secttsl\ttslshape{10}{\magstep2}{OT1TT} \setfont\secsf\sfbshape{12}{\magstep1}{OT1} \let\secbf\secrm \setfont\secsc\scbshape{10}{\magstep2}{OT1} \font\seci=cmmi12 scaled \magstep1 \font\secsy=cmsy10 scaled \magstep2 \def\sececsize{1440} % Subsection fonts (13.15pt). \def\ssecnominalsize{13pt} \setfont\ssecrm\rmbshape{12}{\magstephalf}{OT1} \setfont\ssecit\itbshape{10}{1315}{OT1IT} \setfont\ssecsl\slbshape{10}{1315}{OT1} \setfont\ssectt\ttbshape{12}{\magstephalf}{OT1TT} \setfont\ssecttsl\ttslshape{10}{1315}{OT1TT} \setfont\ssecsf\sfbshape{12}{\magstephalf}{OT1} \let\ssecbf\ssecrm \setfont\ssecsc\scbshape{10}{1315}{OT1} \font\sseci=cmmi12 scaled \magstephalf \font\ssecsy=cmsy10 scaled 1315 \def\ssececsize{1200} % Reduced fonts for @acro in text (10pt). \def\reducednominalsize{10pt} \setfont\reducedrm\rmshape{10}{1000}{OT1} \setfont\reducedtt\ttshape{10}{1000}{OT1TT} \setfont\reducedbf\bfshape{10}{1000}{OT1} \setfont\reducedit\itshape{10}{1000}{OT1IT} \setfont\reducedsl\slshape{10}{1000}{OT1} \setfont\reducedsf\sfshape{10}{1000}{OT1} \setfont\reducedsc\scshape{10}{1000}{OT1} \setfont\reducedttsl\ttslshape{10}{1000}{OT1TT} \font\reducedi=cmmi10 \font\reducedsy=cmsy10 \def\reducedecsize{1000} \textleading = 13.2pt % line spacing for 11pt CM \textfonts % reset the current fonts \rm } % end of 11pt text font size definitions % Definitions to make the main text be 10pt Computer Modern, with % section, chapter, etc., sizes following suit. This is for the GNU % Press printing of the Emacs 22 manual. Maybe other manuals in the % future. Used with @smallbook, which sets the leading to 12pt. % \def\definetextfontsizex{% % Text fonts (10pt). \def\textnominalsize{10pt} \edef\mainmagstep{1000} \setfont\textrm\rmshape{10}{\mainmagstep}{OT1} \setfont\texttt\ttshape{10}{\mainmagstep}{OT1TT} \setfont\textbf\bfshape{10}{\mainmagstep}{OT1} \setfont\textit\itshape{10}{\mainmagstep}{OT1IT} \setfont\textsl\slshape{10}{\mainmagstep}{OT1} \setfont\textsf\sfshape{10}{\mainmagstep}{OT1} \setfont\textsc\scshape{10}{\mainmagstep}{OT1} \setfont\textttsl\ttslshape{10}{\mainmagstep}{OT1TT} \font\texti=cmmi10 scaled \mainmagstep \font\textsy=cmsy10 scaled \mainmagstep \def\textecsize{1000} % A few fonts for @defun names and args. \setfont\defbf\bfshape{10}{\magstephalf}{OT1} \setfont\deftt\ttshape{10}{\magstephalf}{OT1TT} \setfont\defttsl\ttslshape{10}{\magstephalf}{OT1TT} \def\df{\let\tentt=\deftt \let\tenbf = \defbf \let\tenttsl=\defttsl \bf} % Fonts for indices, footnotes, small examples (9pt). \def\smallnominalsize{9pt} \setfont\smallrm\rmshape{9}{1000}{OT1} \setfont\smalltt\ttshape{9}{1000}{OT1TT} \setfont\smallbf\bfshape{10}{900}{OT1} \setfont\smallit\itshape{9}{1000}{OT1IT} \setfont\smallsl\slshape{9}{1000}{OT1} \setfont\smallsf\sfshape{9}{1000}{OT1} \setfont\smallsc\scshape{10}{900}{OT1} \setfont\smallttsl\ttslshape{10}{900}{OT1TT} \font\smalli=cmmi9 \font\smallsy=cmsy9 \def\smallecsize{0900} % Fonts for small examples (8pt). \def\smallernominalsize{8pt} \setfont\smallerrm\rmshape{8}{1000}{OT1} \setfont\smallertt\ttshape{8}{1000}{OT1TT} \setfont\smallerbf\bfshape{10}{800}{OT1} \setfont\smallerit\itshape{8}{1000}{OT1IT} \setfont\smallersl\slshape{8}{1000}{OT1} \setfont\smallersf\sfshape{8}{1000}{OT1} \setfont\smallersc\scshape{10}{800}{OT1} \setfont\smallerttsl\ttslshape{10}{800}{OT1TT} \font\smalleri=cmmi8 \font\smallersy=cmsy8 \def\smallerecsize{0800} % Fonts for title page (20.4pt): \def\titlenominalsize{20pt} \setfont\titlerm\rmbshape{12}{\magstep3}{OT1} \setfont\titleit\itbshape{10}{\magstep4}{OT1IT} \setfont\titlesl\slbshape{10}{\magstep4}{OT1} \setfont\titlett\ttbshape{12}{\magstep3}{OT1TT} \setfont\titlettsl\ttslshape{10}{\magstep4}{OT1TT} \setfont\titlesf\sfbshape{17}{\magstep1}{OT1} \let\titlebf=\titlerm \setfont\titlesc\scbshape{10}{\magstep4}{OT1} \font\titlei=cmmi12 scaled \magstep3 \font\titlesy=cmsy10 scaled \magstep4 \def\titleecsize{2074} % Chapter fonts (14.4pt). \def\chapnominalsize{14pt} \setfont\chaprm\rmbshape{12}{\magstep1}{OT1} \setfont\chapit\itbshape{10}{\magstep2}{OT1IT} \setfont\chapsl\slbshape{10}{\magstep2}{OT1} \setfont\chaptt\ttbshape{12}{\magstep1}{OT1TT} \setfont\chapttsl\ttslshape{10}{\magstep2}{OT1TT} \setfont\chapsf\sfbshape{12}{\magstep1}{OT1} \let\chapbf\chaprm \setfont\chapsc\scbshape{10}{\magstep2}{OT1} \font\chapi=cmmi12 scaled \magstep1 \font\chapsy=cmsy10 scaled \magstep2 \def\chapecsize{1440} % Section fonts (12pt). \def\secnominalsize{12pt} \setfont\secrm\rmbshape{12}{1000}{OT1} \setfont\secit\itbshape{10}{\magstep1}{OT1IT} \setfont\secsl\slbshape{10}{\magstep1}{OT1} \setfont\sectt\ttbshape{12}{1000}{OT1TT} \setfont\secttsl\ttslshape{10}{\magstep1}{OT1TT} \setfont\secsf\sfbshape{12}{1000}{OT1} \let\secbf\secrm \setfont\secsc\scbshape{10}{\magstep1}{OT1} \font\seci=cmmi12 \font\secsy=cmsy10 scaled \magstep1 \def\sececsize{1200} % Subsection fonts (10pt). \def\ssecnominalsize{10pt} \setfont\ssecrm\rmbshape{10}{1000}{OT1} \setfont\ssecit\itbshape{10}{1000}{OT1IT} \setfont\ssecsl\slbshape{10}{1000}{OT1} \setfont\ssectt\ttbshape{10}{1000}{OT1TT} \setfont\ssecttsl\ttslshape{10}{1000}{OT1TT} \setfont\ssecsf\sfbshape{10}{1000}{OT1} \let\ssecbf\ssecrm \setfont\ssecsc\scbshape{10}{1000}{OT1} \font\sseci=cmmi10 \font\ssecsy=cmsy10 \def\ssececsize{1000} % Reduced fonts for @acro in text (9pt). \def\reducednominalsize{9pt} \setfont\reducedrm\rmshape{9}{1000}{OT1} \setfont\reducedtt\ttshape{9}{1000}{OT1TT} \setfont\reducedbf\bfshape{10}{900}{OT1} \setfont\reducedit\itshape{9}{1000}{OT1IT} \setfont\reducedsl\slshape{9}{1000}{OT1} \setfont\reducedsf\sfshape{9}{1000}{OT1} \setfont\reducedsc\scshape{10}{900}{OT1} \setfont\reducedttsl\ttslshape{10}{900}{OT1TT} \font\reducedi=cmmi9 \font\reducedsy=cmsy9 \def\reducedecsize{0900} \divide\parskip by 2 % reduce space between paragraphs \textleading = 12pt % line spacing for 10pt CM \textfonts % reset the current fonts \rm } % end of 10pt text font size definitions % We provide the user-level command % @fonttextsize 10 % (or 11) to redefine the text font size. pt is assumed. % \def\xiword{11} \def\xword{10} \def\xwordpt{10pt} % \parseargdef\fonttextsize{% \def\textsizearg{#1}% %\wlog{doing @fonttextsize \textsizearg}% % % Set \globaldefs so that documents can use this inside @tex, since % makeinfo 4.8 does not support it, but we need it nonetheless. % \begingroup \globaldefs=1 \ifx\textsizearg\xword \definetextfontsizex \else \ifx\textsizearg\xiword \definetextfontsizexi \else \errhelp=\EMsimple \errmessage{@fonttextsize only supports `10' or `11', not `\textsizearg'} \fi\fi \endgroup } % In order for the font changes to affect most math symbols and letters, % we have to define the \textfont of the standard families. Since % texinfo doesn't allow for producing subscripts and superscripts except % in the main text, we don't bother to reset \scriptfont and % \scriptscriptfont (which would also require loading a lot more fonts). % \def\resetmathfonts{% \textfont0=\tenrm \textfont1=\teni \textfont2=\tensy \textfont\itfam=\tenit \textfont\slfam=\tensl \textfont\bffam=\tenbf \textfont\ttfam=\tentt \textfont\sffam=\tensf } % The font-changing commands redefine the meanings of \tenSTYLE, instead % of just \STYLE. We do this because \STYLE needs to also set the % current \fam for math mode. Our \STYLE (e.g., \rm) commands hardwire % \tenSTYLE to set the current font. % % Each font-changing command also sets the names \lsize (one size lower) % and \lllsize (three sizes lower). These relative commands are used in % the LaTeX logo and acronyms. % % This all needs generalizing, badly. % \def\textfonts{% \let\tenrm=\textrm \let\tenit=\textit \let\tensl=\textsl \let\tenbf=\textbf \let\tentt=\texttt \let\smallcaps=\textsc \let\tensf=\textsf \let\teni=\texti \let\tensy=\textsy \let\tenttsl=\textttsl \def\curfontsize{text}% \def\lsize{reduced}\def\lllsize{smaller}% \resetmathfonts \setleading{\textleading}} \def\titlefonts{% \let\tenrm=\titlerm \let\tenit=\titleit \let\tensl=\titlesl \let\tenbf=\titlebf \let\tentt=\titlett \let\smallcaps=\titlesc \let\tensf=\titlesf \let\teni=\titlei \let\tensy=\titlesy \let\tenttsl=\titlettsl \def\curfontsize{title}% \def\lsize{chap}\def\lllsize{subsec}% \resetmathfonts \setleading{27pt}} \def\titlefont#1{{\titlefonts\rmisbold #1}} \def\chapfonts{% \let\tenrm=\chaprm \let\tenit=\chapit \let\tensl=\chapsl \let\tenbf=\chapbf \let\tentt=\chaptt \let\smallcaps=\chapsc \let\tensf=\chapsf \let\teni=\chapi \let\tensy=\chapsy \let\tenttsl=\chapttsl \def\curfontsize{chap}% \def\lsize{sec}\def\lllsize{text}% \resetmathfonts \setleading{19pt}} \def\secfonts{% \let\tenrm=\secrm \let\tenit=\secit \let\tensl=\secsl \let\tenbf=\secbf \let\tentt=\sectt \let\smallcaps=\secsc \let\tensf=\secsf \let\teni=\seci \let\tensy=\secsy \let\tenttsl=\secttsl \def\curfontsize{sec}% \def\lsize{subsec}\def\lllsize{reduced}% \resetmathfonts \setleading{16pt}} \def\subsecfonts{% \let\tenrm=\ssecrm \let\tenit=\ssecit \let\tensl=\ssecsl \let\tenbf=\ssecbf \let\tentt=\ssectt \let\smallcaps=\ssecsc \let\tensf=\ssecsf \let\teni=\sseci \let\tensy=\ssecsy \let\tenttsl=\ssecttsl \def\curfontsize{ssec}% \def\lsize{text}\def\lllsize{small}% \resetmathfonts \setleading{15pt}} \let\subsubsecfonts = \subsecfonts \def\reducedfonts{% \let\tenrm=\reducedrm \let\tenit=\reducedit \let\tensl=\reducedsl \let\tenbf=\reducedbf \let\tentt=\reducedtt \let\reducedcaps=\reducedsc \let\tensf=\reducedsf \let\teni=\reducedi \let\tensy=\reducedsy \let\tenttsl=\reducedttsl \def\curfontsize{reduced}% \def\lsize{small}\def\lllsize{smaller}% \resetmathfonts \setleading{10.5pt}} \def\smallfonts{% \let\tenrm=\smallrm \let\tenit=\smallit \let\tensl=\smallsl \let\tenbf=\smallbf \let\tentt=\smalltt \let\smallcaps=\smallsc \let\tensf=\smallsf \let\teni=\smalli \let\tensy=\smallsy \let\tenttsl=\smallttsl \def\curfontsize{small}% \def\lsize{smaller}\def\lllsize{smaller}% \resetmathfonts \setleading{10.5pt}} \def\smallerfonts{% \let\tenrm=\smallerrm \let\tenit=\smallerit \let\tensl=\smallersl \let\tenbf=\smallerbf \let\tentt=\smallertt \let\smallcaps=\smallersc \let\tensf=\smallersf \let\teni=\smalleri \let\tensy=\smallersy \let\tenttsl=\smallerttsl \def\curfontsize{smaller}% \def\lsize{smaller}\def\lllsize{smaller}% \resetmathfonts \setleading{9.5pt}} % Fonts for short table of contents. \setfont\shortcontrm\rmshape{12}{1000}{OT1} \setfont\shortcontbf\bfshape{10}{\magstep1}{OT1} % no cmb12 \setfont\shortcontsl\slshape{12}{1000}{OT1} \setfont\shortconttt\ttshape{12}{1000}{OT1TT} % Define these just so they can be easily changed for other fonts. \def\angleleft{$\langle$} \def\angleright{$\rangle$} % Set the fonts to use with the @small... environments. \let\smallexamplefonts = \smallfonts % About \smallexamplefonts. If we use \smallfonts (9pt), @smallexample % can fit this many characters: % 8.5x11=86 smallbook=72 a4=90 a5=69 % If we use \scriptfonts (8pt), then we can fit this many characters: % 8.5x11=90+ smallbook=80 a4=90+ a5=77 % For me, subjectively, the few extra characters that fit aren't worth % the additional smallness of 8pt. So I'm making the default 9pt. % % By the way, for comparison, here's what fits with @example (10pt): % 8.5x11=71 smallbook=60 a4=75 a5=58 % --karl, 24jan03. % Set up the default fonts, so we can use them for creating boxes. % \definetextfontsizexi \message{markup,} % Check if we are currently using a typewriter font. Since all the % Computer Modern typewriter fonts have zero interword stretch (and % shrink), and it is reasonable to expect all typewriter fonts to have % this property, we can check that font parameter. % \def\ifmonospace{\ifdim\fontdimen3\font=0pt } % Markup style infrastructure. \defmarkupstylesetup\INITMACRO will % define and register \INITMACRO to be called on markup style changes. % \INITMACRO can check \currentmarkupstyle for the innermost % style and the set of \ifmarkupSTYLE switches for all styles % currently in effect. \newif\ifmarkupvar \newif\ifmarkupsamp \newif\ifmarkupkey %\newif\ifmarkupfile % @file == @samp. %\newif\ifmarkupoption % @option == @samp. \newif\ifmarkupcode \newif\ifmarkupkbd %\newif\ifmarkupenv % @env == @code. %\newif\ifmarkupcommand % @command == @code. \newif\ifmarkuptex % @tex (and part of @math, for now). \newif\ifmarkupexample \newif\ifmarkupverb \newif\ifmarkupverbatim \let\currentmarkupstyle\empty \def\setupmarkupstyle#1{% \csname markup#1true\endcsname \def\currentmarkupstyle{#1}% \markupstylesetup } \let\markupstylesetup\empty \def\defmarkupstylesetup#1{% \expandafter\def\expandafter\markupstylesetup \expandafter{\markupstylesetup #1}% \def#1% } % Markup style setup for left and right quotes. \defmarkupstylesetup\markupsetuplq{% \expandafter\let\expandafter \temp \csname markupsetuplq\currentmarkupstyle\endcsname \ifx\temp\relax \markupsetuplqdefault \else \temp \fi } \defmarkupstylesetup\markupsetuprq{% \expandafter\let\expandafter \temp \csname markupsetuprq\currentmarkupstyle\endcsname \ifx\temp\relax \markupsetuprqdefault \else \temp \fi } { \catcode`\'=\active \catcode`\`=\active \gdef\markupsetuplqdefault{\let`\lq} \gdef\markupsetuprqdefault{\let'\rq} \gdef\markupsetcodequoteleft{\let`\codequoteleft} \gdef\markupsetcodequoteright{\let'\codequoteright} \gdef\markupsetnoligaturesquoteleft{\let`\noligaturesquoteleft} } \let\markupsetuplqcode \markupsetcodequoteleft \let\markupsetuprqcode \markupsetcodequoteright % \let\markupsetuplqexample \markupsetcodequoteleft \let\markupsetuprqexample \markupsetcodequoteright % \let\markupsetuplqsamp \markupsetcodequoteleft \let\markupsetuprqsamp \markupsetcodequoteright % \let\markupsetuplqverb \markupsetcodequoteleft \let\markupsetuprqverb \markupsetcodequoteright % \let\markupsetuplqverbatim \markupsetcodequoteleft \let\markupsetuprqverbatim \markupsetcodequoteright \let\markupsetuplqkbd \markupsetnoligaturesquoteleft % Allow an option to not use regular directed right quote/apostrophe % (char 0x27), but instead the undirected quote from cmtt (char 0x0d). % The undirected quote is ugly, so don't make it the default, but it % works for pasting with more pdf viewers (at least evince), the % lilypond developers report. xpdf does work with the regular 0x27. % \def\codequoteright{% \expandafter\ifx\csname SETtxicodequoteundirected\endcsname\relax \expandafter\ifx\csname SETcodequoteundirected\endcsname\relax '% \else \char'15 \fi \else \char'15 \fi } % % and a similar option for the left quote char vs. a grave accent. % Modern fonts display ASCII 0x60 as a grave accent, so some people like % the code environments to do likewise. % \def\codequoteleft{% \expandafter\ifx\csname SETtxicodequotebacktick\endcsname\relax \expandafter\ifx\csname SETcodequotebacktick\endcsname\relax % [Knuth] pp. 380,381,391 % \relax disables Spanish ligatures ?` and !` of \tt font. \relax`% \else \char'22 \fi \else \char'22 \fi } % Commands to set the quote options. % \parseargdef\codequoteundirected{% \def\temp{#1}% \ifx\temp\onword \expandafter\let\csname SETtxicodequoteundirected\endcsname = t% \else\ifx\temp\offword \expandafter\let\csname SETtxicodequoteundirected\endcsname = \relax \else \errhelp = \EMsimple \errmessage{Unknown @codequoteundirected value `\temp', must be on|off}% \fi\fi } % \parseargdef\codequotebacktick{% \def\temp{#1}% \ifx\temp\onword \expandafter\let\csname SETtxicodequotebacktick\endcsname = t% \else\ifx\temp\offword \expandafter\let\csname SETtxicodequotebacktick\endcsname = \relax \else \errhelp = \EMsimple \errmessage{Unknown @codequotebacktick value `\temp', must be on|off}% \fi\fi } % [Knuth] pp. 380,381,391, disable Spanish ligatures ?` and !` of \tt font. \def\noligaturesquoteleft{\relax\lq} % Count depth in font-changes, for error checks \newcount\fontdepth \fontdepth=0 % Font commands. % #1 is the font command (\sl or \it), #2 is the text to slant. % If we are in a monospaced environment, however, 1) always use \ttsl, % and 2) do not add an italic correction. \def\dosmartslant#1#2{% \ifusingtt {{\ttsl #2}\let\next=\relax}% {\def\next{{#1#2}\futurelet\next\smartitaliccorrection}}% \next } \def\smartslanted{\dosmartslant\sl} \def\smartitalic{\dosmartslant\it} % Output an italic correction unless \next (presumed to be the following % character) is such as not to need one. \def\smartitaliccorrection{% \ifx\next,% \else\ifx\next-% \else\ifx\next.% \else\ptexslash \fi\fi\fi \aftersmartic } % like \smartslanted except unconditionally uses \ttsl, and no ic. % @var is set to this for defun arguments. \def\ttslanted#1{{\ttsl #1}} % @cite is like \smartslanted except unconditionally use \sl. We never want % ttsl for book titles, do we? \def\cite#1{{\sl #1}\futurelet\next\smartitaliccorrection} \def\aftersmartic{} \def\var#1{% \let\saveaftersmartic = \aftersmartic \def\aftersmartic{\null\let\aftersmartic=\saveaftersmartic}% \smartslanted{#1}% } \let\i=\smartitalic \let\slanted=\smartslanted \let\dfn=\smartslanted \let\emph=\smartitalic % Explicit font changes: @r, @sc, undocumented @ii. \def\r#1{{\rm #1}} % roman font \def\sc#1{{\smallcaps#1}} % smallcaps font \def\ii#1{{\it #1}} % italic font % @b, explicit bold. Also @strong. \def\b#1{{\bf #1}} \let\strong=\b % @sansserif, explicit sans. \def\sansserif#1{{\sf #1}} % We can't just use \exhyphenpenalty, because that only has effect at % the end of a paragraph. Restore normal hyphenation at the end of the % group within which \nohyphenation is presumably called. % \def\nohyphenation{\hyphenchar\font = -1 \aftergroup\restorehyphenation} \def\restorehyphenation{\hyphenchar\font = `- } % Set sfcode to normal for the chars that usually have another value. % Can't use plain's \frenchspacing because it uses the `\x notation, and % sometimes \x has an active definition that messes things up. % \catcode`@=11 \def\plainfrenchspacing{% \sfcode\dotChar =\@m \sfcode\questChar=\@m \sfcode\exclamChar=\@m \sfcode\colonChar=\@m \sfcode\semiChar =\@m \sfcode\commaChar =\@m \def\endofsentencespacefactor{1000}% for @. and friends } \def\plainnonfrenchspacing{% \sfcode`\.3000\sfcode`\?3000\sfcode`\!3000 \sfcode`\:2000\sfcode`\;1500\sfcode`\,1250 \def\endofsentencespacefactor{3000}% for @. and friends } \catcode`@=\other \def\endofsentencespacefactor{3000}% default % @t, explicit typewriter. \def\t#1{% {\tt \rawbackslash \plainfrenchspacing #1}% \null } % @samp. \def\samp#1{{\setupmarkupstyle{samp}\lq\tclose{#1}\rq\null}} % definition of @key that produces a lozenge. Doesn't adjust to text size. %\setfont\keyrm\rmshape{8}{1000}{OT1} %\font\keysy=cmsy9 %\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{% % \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{% % \vbox{\hrule\kern-0.4pt % \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}% % \kern-0.4pt\hrule}% % \kern-.06em\raise0.4pt\hbox{\angleright}}}} % definition of @key with no lozenge. If the current font is already % monospace, don't change it; that way, we respect @kbdinputstyle. But % if it isn't monospace, then use \tt. % \def\key#1{{\setupmarkupstyle{key}% \nohyphenation \ifmonospace\else\tt\fi #1}\null} % ctrl is no longer a Texinfo command. \def\ctrl #1{{\tt \rawbackslash \hat}#1} % @file, @option are the same as @samp. \let\file=\samp \let\option=\samp % @code is a modification of @t, % which makes spaces the same size as normal in the surrounding text. \def\tclose#1{% {% % Change normal interword space to be same as for the current font. \spaceskip = \fontdimen2\font % % Switch to typewriter. \tt % % But `\ ' produces the large typewriter interword space. \def\ {{\spaceskip = 0pt{} }}% % % Turn off hyphenation. \nohyphenation % \rawbackslash \plainfrenchspacing #1% }% \null % reset spacefactor to 1000 } % We *must* turn on hyphenation at `-' and `_' in @code. % Otherwise, it is too hard to avoid overfull hboxes % in the Emacs manual, the Library manual, etc. % Unfortunately, TeX uses one parameter (\hyphenchar) to control % both hyphenation at - and hyphenation within words. % We must therefore turn them both off (\tclose does that) % and arrange explicitly to hyphenate at a dash. % -- rms. { \catcode`\-=\active \catcode`\_=\active \catcode`\'=\active \catcode`\`=\active \global\let'=\rq \global\let`=\lq % default definitions % \global\def\code{\begingroup \setupmarkupstyle{code}% % The following should really be moved into \setupmarkupstyle handlers. \catcode\dashChar=\active \catcode\underChar=\active \ifallowcodebreaks \let-\codedash \let_\codeunder \else \let-\realdash \let_\realunder \fi \codex } } \def\codex #1{\tclose{#1}\endgroup} \def\realdash{-} \def\codedash{-\discretionary{}{}{}} \def\codeunder{% % this is all so @math{@code{var_name}+1} can work. In math mode, _ % is "active" (mathcode"8000) and \normalunderscore (or \char95, etc.) % will therefore expand the active definition of _, which is us % (inside @code that is), therefore an endless loop. \ifusingtt{\ifmmode \mathchar"075F % class 0=ordinary, family 7=ttfam, pos 0x5F=_. \else\normalunderscore \fi \discretionary{}{}{}}% {\_}% } % An additional complication: the above will allow breaks after, e.g., % each of the four underscores in __typeof__. This is undesirable in % some manuals, especially if they don't have long identifiers in % general. @allowcodebreaks provides a way to control this. % \newif\ifallowcodebreaks \allowcodebreakstrue \def\keywordtrue{true} \def\keywordfalse{false} \parseargdef\allowcodebreaks{% \def\txiarg{#1}% \ifx\txiarg\keywordtrue \allowcodebreakstrue \else\ifx\txiarg\keywordfalse \allowcodebreaksfalse \else \errhelp = \EMsimple \errmessage{Unknown @allowcodebreaks option `\txiarg', must be true|false}% \fi\fi } % @uref (abbreviation for `urlref') takes an optional (comma-separated) % second argument specifying the text to display and an optional third % arg as text to display instead of (rather than in addition to) the url % itself. First (mandatory) arg is the url. % (This \urefnobreak definition isn't used now, leaving it for a while % for comparison.) \def\urefnobreak#1{\dourefnobreak #1,,,\finish} \def\dourefnobreak#1,#2,#3,#4\finish{\begingroup \unsepspaces \pdfurl{#1}% \setbox0 = \hbox{\ignorespaces #3}% \ifdim\wd0 > 0pt \unhbox0 % third arg given, show only that \else \setbox0 = \hbox{\ignorespaces #2}% \ifdim\wd0 > 0pt \ifpdf \unhbox0 % PDF: 2nd arg given, show only it \else \unhbox0\ (\code{#1})% DVI: 2nd arg given, show both it and url \fi \else \code{#1}% only url given, so show it \fi \fi \endlink \endgroup} % This \urefbreak definition is the active one. \def\urefbreak{\begingroup \urefcatcodes \dourefbreak} \let\uref=\urefbreak \def\dourefbreak#1{\urefbreakfinish #1,,,\finish} \def\urefbreakfinish#1,#2,#3,#4\finish{% doesn't work in @example \unsepspaces \pdfurl{#1}% \setbox0 = \hbox{\ignorespaces #3}% \ifdim\wd0 > 0pt \unhbox0 % third arg given, show only that \else \setbox0 = \hbox{\ignorespaces #2}% \ifdim\wd0 > 0pt \ifpdf \unhbox0 % PDF: 2nd arg given, show only it \else \unhbox0\ (\urefcode{#1})% DVI: 2nd arg given, show both it and url \fi \else \urefcode{#1}% only url given, so show it \fi \fi \endlink \endgroup} % Allow line breaks around only a few characters (only). \def\urefcatcodes{% \catcode\ampChar=\active \catcode\dotChar=\active \catcode\hashChar=\active \catcode\questChar=\active \catcode\slashChar=\active } { \urefcatcodes % \global\def\urefcode{\begingroup \setupmarkupstyle{code}% \urefcatcodes \let&\urefcodeamp \let.\urefcodedot \let#\urefcodehash \let?\urefcodequest \let/\urefcodeslash \codex } % % By default, they are just regular characters. \global\def&{\normalamp} \global\def.{\normaldot} \global\def#{\normalhash} \global\def?{\normalquest} \global\def/{\normalslash} } % we put a little stretch before and after the breakable chars, to help % line breaking of long url's. The unequal skips make look better in % cmtt at least, especially for dots. \def\urefprestretch{\urefprebreak \hskip0pt plus.13em } \def\urefpoststretch{\urefpostbreak \hskip0pt plus.1em } % \def\urefcodeamp{\urefprestretch \&\urefpoststretch} \def\urefcodedot{\urefprestretch .\urefpoststretch} \def\urefcodehash{\urefprestretch \#\urefpoststretch} \def\urefcodequest{\urefprestretch ?\urefpoststretch} \def\urefcodeslash{\futurelet\next\urefcodeslashfinish} { \catcode`\/=\active \global\def\urefcodeslashfinish{% \urefprestretch \slashChar % Allow line break only after the final / in a sequence of % slashes, to avoid line break between the slashes in http://. \ifx\next/\else \urefpoststretch \fi } } % One more complication: by default we'll break after the special % characters, but some people like to break before the special chars, so % allow that. Also allow no breaking at all, for manual control. % \parseargdef\urefbreakstyle{% \def\txiarg{#1}% \ifx\txiarg\wordnone \def\urefprebreak{\nobreak}\def\urefpostbreak{\nobreak} \else\ifx\txiarg\wordbefore \def\urefprebreak{\allowbreak}\def\urefpostbreak{\nobreak} \else\ifx\txiarg\wordafter \def\urefprebreak{\nobreak}\def\urefpostbreak{\allowbreak} \else \errhelp = \EMsimple \errmessage{Unknown @urefbreakstyle setting `\txiarg'}% \fi\fi\fi } \def\wordafter{after} \def\wordbefore{before} \def\wordnone{none} \urefbreakstyle after % @url synonym for @uref, since that's how everyone uses it. % \let\url=\uref % rms does not like angle brackets --karl, 17may97. % So now @email is just like @uref, unless we are pdf. % %\def\email#1{\angleleft{\tt #1}\angleright} \ifpdf \def\email#1{\doemail#1,,\finish} \def\doemail#1,#2,#3\finish{\begingroup \unsepspaces \pdfurl{mailto:#1}% \setbox0 = \hbox{\ignorespaces #2}% \ifdim\wd0>0pt\unhbox0\else\code{#1}\fi \endlink \endgroup} \else \let\email=\uref \fi % @kbd is like @code, except that if the argument is just one @key command, % then @kbd has no effect. \def\kbd#1{{\setupmarkupstyle{kbd}\def\look{#1}\expandafter\kbdfoo\look??\par}} % @kbdinputstyle -- arg is `distinct' (@kbd uses slanted tty font always), % `example' (@kbd uses ttsl only inside of @example and friends), % or `code' (@kbd uses normal tty font always). \parseargdef\kbdinputstyle{% \def\txiarg{#1}% \ifx\txiarg\worddistinct \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl}% \else\ifx\txiarg\wordexample \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\tt}% \else\ifx\txiarg\wordcode \gdef\kbdexamplefont{\tt}\gdef\kbdfont{\tt}% \else \errhelp = \EMsimple \errmessage{Unknown @kbdinputstyle setting `\txiarg'}% \fi\fi\fi } \def\worddistinct{distinct} \def\wordexample{example} \def\wordcode{code} % Default is `distinct'. \kbdinputstyle distinct \def\xkey{\key} \def\kbdfoo#1#2#3\par{\def\one{#1}\def\three{#3}\def\threex{??}% \ifx\one\xkey\ifx\threex\three \key{#2}% \else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi \else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi} % For @indicateurl, @env, @command quotes seem unnecessary, so use \code. \let\indicateurl=\code \let\env=\code \let\command=\code % @clicksequence{File @click{} Open ...} \def\clicksequence#1{\begingroup #1\endgroup} % @clickstyle @arrow (by default) \parseargdef\clickstyle{\def\click{#1}} \def\click{\arrow} % Typeset a dimension, e.g., `in' or `pt'. The only reason for the % argument is to make the input look right: @dmn{pt} instead of @dmn{}pt. % \def\dmn#1{\thinspace #1} % @l was never documented to mean ``switch to the Lisp font'', % and it is not used as such in any manual I can find. We need it for % Polish suppressed-l. --karl, 22sep96. %\def\l#1{{\li #1}\null} % @acronym for "FBI", "NATO", and the like. % We print this one point size smaller, since it's intended for % all-uppercase. % \def\acronym#1{\doacronym #1,,\finish} \def\doacronym#1,#2,#3\finish{% {\selectfonts\lsize #1}% \def\temp{#2}% \ifx\temp\empty \else \space ({\unsepspaces \ignorespaces \temp \unskip})% \fi \null % reset \spacefactor=1000 } % @abbr for "Comput. J." and the like. % No font change, but don't do end-of-sentence spacing. % \def\abbr#1{\doabbr #1,,\finish} \def\doabbr#1,#2,#3\finish{% {\plainfrenchspacing #1}% \def\temp{#2}% \ifx\temp\empty \else \space ({\unsepspaces \ignorespaces \temp \unskip})% \fi \null % reset \spacefactor=1000 } % @asis just yields its argument. Used with @table, for example. % \def\asis#1{#1} % @math outputs its argument in math mode. % % One complication: _ usually means subscripts, but it could also mean % an actual _ character, as in @math{@var{some_variable} + 1}. So make % _ active, and distinguish by seeing if the current family is \slfam, % which is what @var uses. { \catcode`\_ = \active \gdef\mathunderscore{% \catcode`\_=\active \def_{\ifnum\fam=\slfam \_\else\sb\fi}% } } % Another complication: we want \\ (and @\) to output a math (or tt) \. % FYI, plain.tex uses \\ as a temporary control sequence (for no % particular reason), but this is not advertised and we don't care. % % The \mathchar is class=0=ordinary, family=7=ttfam, position=5C=\. \def\mathbackslash{\ifnum\fam=\ttfam \mathchar"075C \else\backslash \fi} % \def\math{% \tex \mathunderscore \let\\ = \mathbackslash \mathactive % make the texinfo accent commands work in math mode \let\"=\ddot \let\'=\acute \let\==\bar \let\^=\hat \let\`=\grave \let\u=\breve \let\v=\check \let\~=\tilde \let\dotaccent=\dot $\finishmath } \def\finishmath#1{#1$\endgroup} % Close the group opened by \tex. % Some active characters (such as <) are spaced differently in math. % We have to reset their definitions in case the @math was an argument % to a command which sets the catcodes (such as @item or @section). % { \catcode`^ = \active \catcode`< = \active \catcode`> = \active \catcode`+ = \active \catcode`' = \active \gdef\mathactive{% \let^ = \ptexhat \let< = \ptexless \let> = \ptexgtr \let+ = \ptexplus \let' = \ptexquoteright } } % @inlinefmt{FMTNAME,PROCESSED-TEXT} and @inlineraw{FMTNAME,RAW-TEXT}. % Ignore unless FMTNAME == tex; then it is like @iftex and @tex, % except specified as a normal braced arg, so no newlines to worry about. % \def\outfmtnametex{tex} % \long\def\inlinefmt#1{\doinlinefmt #1,\finish} \long\def\doinlinefmt#1,#2,\finish{% \def\inlinefmtname{#1}% \ifx\inlinefmtname\outfmtnametex \ignorespaces #2\fi } % For raw, must switch into @tex before parsing the argument, to avoid % setting catcodes prematurely. Doing it this way means that, for % example, @inlineraw{html, foo{bar} gets a parse error instead of being % ignored. But this isn't important because if people want a literal % *right* brace they would have to use a command anyway, so they may as % well use a command to get a left brace too. We could re-use the % delimiter character idea from \verb, but it seems like overkill. % \long\def\inlineraw{\tex \doinlineraw} \long\def\doinlineraw#1{\doinlinerawtwo #1,\finish} \def\doinlinerawtwo#1,#2,\finish{% \def\inlinerawname{#1}% \ifx\inlinerawname\outfmtnametex \ignorespaces #2\fi \endgroup % close group opened by \tex. } \message{glyphs,} % and logos. % @@ prints an @, as does @atchar{}. \def\@{\char64 } \let\atchar=\@ % @{ @} @lbracechar{} @rbracechar{} all generate brace characters. % Unless we're in typewriter, use \ecfont because the CM text fonts do % not have braces, and we don't want to switch into math. \def\mylbrace{{\ifmonospace\else\ecfont\fi \char123}} \def\myrbrace{{\ifmonospace\else\ecfont\fi \char125}} \let\{=\mylbrace \let\lbracechar=\{ \let\}=\myrbrace \let\rbracechar=\} \begingroup % Definitions to produce \{ and \} commands for indices, % and @{ and @} for the aux/toc files. \catcode`\{ = \other \catcode`\} = \other \catcode`\[ = 1 \catcode`\] = 2 \catcode`\! = 0 \catcode`\\ = \other !gdef!lbracecmd[\{]% !gdef!rbracecmd[\}]% !gdef!lbraceatcmd[@{]% !gdef!rbraceatcmd[@}]% !endgroup % @comma{} to avoid , parsing problems. \let\comma = , % Accents: @, @dotaccent @ringaccent @ubaraccent @udotaccent % Others are defined by plain TeX: @` @' @" @^ @~ @= @u @v @H. \let\, = \ptexc \let\dotaccent = \ptexdot \def\ringaccent#1{{\accent23 #1}} \let\tieaccent = \ptext \let\ubaraccent = \ptexb \let\udotaccent = \d % Other special characters: @questiondown @exclamdown @ordf @ordm % Plain TeX defines: @AA @AE @O @OE @L (plus lowercase versions) @ss. \def\questiondown{?`} \def\exclamdown{!`} \def\ordf{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{a}}} \def\ordm{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{o}}} % Dotless i and dotless j, used for accents. \def\imacro{i} \def\jmacro{j} \def\dotless#1{% \def\temp{#1}% \ifx\temp\imacro \ifmmode\imath \else\ptexi \fi \else\ifx\temp\jmacro \ifmmode\jmath \else\j \fi \else \errmessage{@dotless can be used only with i or j}% \fi\fi } % The \TeX{} logo, as in plain, but resetting the spacing so that a % period following counts as ending a sentence. (Idea found in latex.) % \edef\TeX{\TeX \spacefactor=1000 } % @LaTeX{} logo. Not quite the same results as the definition in % latex.ltx, since we use a different font for the raised A; it's most % convenient for us to use an explicitly smaller font, rather than using % the \scriptstyle font (since we don't reset \scriptstyle and % \scriptscriptstyle). % \def\LaTeX{% L\kern-.36em {\setbox0=\hbox{T}% \vbox to \ht0{\hbox{% \ifx\textnominalsize\xwordpt % for 10pt running text, \lllsize (8pt) is too small for the A in LaTeX. % Revert to plain's \scriptsize, which is 7pt. \count255=\the\fam $\fam\count255 \scriptstyle A$% \else % For 11pt, we can use our lllsize. \selectfonts\lllsize A% \fi }% \vss }}% \kern-.15em \TeX } % Some math mode symbols. \def\bullet{$\ptexbullet$} \def\geq{\ifmmode \ge\else $\ge$\fi} \def\leq{\ifmmode \le\else $\le$\fi} \def\minus{\ifmmode -\else $-$\fi} % @dots{} outputs an ellipsis using the current font. % We do .5em per period so that it has the same spacing in the cm % typewriter fonts as three actual period characters; on the other hand, % in other typewriter fonts three periods are wider than 1.5em. So do % whichever is larger. % \def\dots{% \leavevmode \setbox0=\hbox{...}% get width of three periods \ifdim\wd0 > 1.5em \dimen0 = \wd0 \else \dimen0 = 1.5em \fi \hbox to \dimen0{% \hskip 0pt plus.25fil .\hskip 0pt plus1fil .\hskip 0pt plus1fil .\hskip 0pt plus.5fil }% } % @enddots{} is an end-of-sentence ellipsis. % \def\enddots{% \dots \spacefactor=\endofsentencespacefactor } % @point{}, @result{}, @expansion{}, @print{}, @equiv{}. % % Since these characters are used in examples, they should be an even number of % \tt widths. Each \tt character is 1en, so two makes it 1em. % \def\point{$\star$} \def\arrow{\leavevmode\raise.05ex\hbox to 1em{\hfil$\rightarrow$\hfil}} \def\result{\leavevmode\raise.05ex\hbox to 1em{\hfil$\Rightarrow$\hfil}} \def\expansion{\leavevmode\hbox to 1em{\hfil$\mapsto$\hfil}} \def\print{\leavevmode\lower.1ex\hbox to 1em{\hfil$\dashv$\hfil}} \def\equiv{\leavevmode\hbox to 1em{\hfil$\ptexequiv$\hfil}} % The @error{} command. % Adapted from the TeXbook's \boxit. % \newbox\errorbox % {\tentt \global\dimen0 = 3em}% Width of the box. \dimen2 = .55pt % Thickness of rules % The text. (`r' is open on the right, `e' somewhat less so on the left.) \setbox0 = \hbox{\kern-.75pt \reducedsf \putworderror\kern-1.5pt} % \setbox\errorbox=\hbox to \dimen0{\hfil \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right. \advance\hsize by -2\dimen2 % Rules. \vbox{% \hrule height\dimen2 \hbox{\vrule width\dimen2 \kern3pt % Space to left of text. \vtop{\kern2.4pt \box0 \kern2.4pt}% Space above/below. \kern3pt\vrule width\dimen2}% Space to right. \hrule height\dimen2} \hfil} % \def\error{\leavevmode\lower.7ex\copy\errorbox} % @pounds{} is a sterling sign, which Knuth put in the CM italic font. % \def\pounds{{\it\$}} % @euro{} comes from a separate font, depending on the current style. % We use the free feym* fonts from the eurosym package by Henrik % Theiling, which support regular, slanted, bold and bold slanted (and % "outlined" (blackboard board, sort of) versions, which we don't need). % It is available from http://www.ctan.org/tex-archive/fonts/eurosym. % % Although only regular is the truly official Euro symbol, we ignore % that. The Euro is designed to be slightly taller than the regular % font height. % % feymr - regular % feymo - slanted % feybr - bold % feybo - bold slanted % % There is no good (free) typewriter version, to my knowledge. % A feymr10 euro is ~7.3pt wide, while a normal cmtt10 char is ~5.25pt wide. % Hmm. % % Also doesn't work in math. Do we need to do math with euro symbols? % Hope not. % % \def\euro{{\eurofont e}} \def\eurofont{% % We set the font at each command, rather than predefining it in % \textfonts and the other font-switching commands, so that % installations which never need the symbol don't have to have the % font installed. % % There is only one designed size (nominal 10pt), so we always scale % that to the current nominal size. % % By the way, simply using "at 1em" works for cmr10 and the like, but % does not work for cmbx10 and other extended/shrunken fonts. % \def\eurosize{\csname\curfontsize nominalsize\endcsname}% % \ifx\curfontstyle\bfstylename % bold: \font\thiseurofont = \ifusingit{feybo10}{feybr10} at \eurosize \else % regular: \font\thiseurofont = \ifusingit{feymo10}{feymr10} at \eurosize \fi \thiseurofont } % Glyphs from the EC fonts. We don't use \let for the aliases, because % sometimes we redefine the original macro, and the alias should reflect % the redefinition. % % Use LaTeX names for the Icelandic letters. \def\DH{{\ecfont \char"D0}} % Eth \def\dh{{\ecfont \char"F0}} % eth \def\TH{{\ecfont \char"DE}} % Thorn \def\th{{\ecfont \char"FE}} % thorn % \def\guillemetleft{{\ecfont \char"13}} \def\guillemotleft{\guillemetleft} \def\guillemetright{{\ecfont \char"14}} \def\guillemotright{\guillemetright} \def\guilsinglleft{{\ecfont \char"0E}} \def\guilsinglright{{\ecfont \char"0F}} \def\quotedblbase{{\ecfont \char"12}} \def\quotesinglbase{{\ecfont \char"0D}} % % This positioning is not perfect (see the ogonek LaTeX package), but % we have the precomposed glyphs for the most common cases. We put the % tests to use those glyphs in the single \ogonek macro so we have fewer % dummy definitions to worry about for index entries, etc. % % ogonek is also used with other letters in Lithuanian (IOU), but using % the precomposed glyphs for those is not so easy since they aren't in % the same EC font. \def\ogonek#1{{% \def\temp{#1}% \ifx\temp\macrocharA\Aogonek \else\ifx\temp\macrochara\aogonek \else\ifx\temp\macrocharE\Eogonek \else\ifx\temp\macrochare\eogonek \else \ecfont \setbox0=\hbox{#1}% \ifdim\ht0=1ex\accent"0C #1% \else\ooalign{\unhbox0\crcr\hidewidth\char"0C \hidewidth}% \fi \fi\fi\fi\fi }% } \def\Aogonek{{\ecfont \char"81}}\def\macrocharA{A} \def\aogonek{{\ecfont \char"A1}}\def\macrochara{a} \def\Eogonek{{\ecfont \char"86}}\def\macrocharE{E} \def\eogonek{{\ecfont \char"A6}}\def\macrochare{e} % % Use the ec* fonts (cm-super in outline format) for non-CM glyphs. \def\ecfont{% % We can't distinguish serif/sans and italic/slanted, but this % is used for crude hacks anyway (like adding French and German % quotes to documents typeset with CM, where we lose kerning), so % hopefully nobody will notice/care. \edef\ecsize{\csname\curfontsize ecsize\endcsname}% \edef\nominalsize{\csname\curfontsize nominalsize\endcsname}% \ifx\curfontstyle\bfstylename % bold: \font\thisecfont = ecb\ifusingit{i}{x}\ecsize \space at \nominalsize \else % regular: \font\thisecfont = ec\ifusingit{ti}{rm}\ecsize \space at \nominalsize \fi \thisecfont } % @registeredsymbol - R in a circle. The font for the R should really % be smaller yet, but lllsize is the best we can do for now. % Adapted from the plain.tex definition of \copyright. % \def\registeredsymbol{% $^{{\ooalign{\hfil\raise.07ex\hbox{\selectfonts\lllsize R}% \hfil\crcr\Orb}}% }$% } % @textdegree - the normal degrees sign. % \def\textdegree{$^\circ$} % Laurent Siebenmann reports \Orb undefined with: % Textures 1.7.7 (preloaded format=plain 93.10.14) (68K) 16 APR 2004 02:38 % so we'll define it if necessary. % \ifx\Orb\thisisundefined \def\Orb{\mathhexbox20D} \fi % Quotes. \chardef\quotedblleft="5C \chardef\quotedblright=`\" \chardef\quoteleft=`\` \chardef\quoteright=`\' \message{page headings,} \newskip\titlepagetopglue \titlepagetopglue = 1.5in \newskip\titlepagebottomglue \titlepagebottomglue = 2pc % First the title page. Must do @settitle before @titlepage. \newif\ifseenauthor \newif\iffinishedtitlepage % Do an implicit @contents or @shortcontents after @end titlepage if the % user says @setcontentsaftertitlepage or @setshortcontentsaftertitlepage. % \newif\ifsetcontentsaftertitlepage \let\setcontentsaftertitlepage = \setcontentsaftertitlepagetrue \newif\ifsetshortcontentsaftertitlepage \let\setshortcontentsaftertitlepage = \setshortcontentsaftertitlepagetrue \parseargdef\shorttitlepage{% \begingroup \hbox{}\vskip 1.5in \chaprm \centerline{#1}% \endgroup\page\hbox{}\page} \envdef\titlepage{% % Open one extra group, as we want to close it in the middle of \Etitlepage. \begingroup \parindent=0pt \textfonts % Leave some space at the very top of the page. \vglue\titlepagetopglue % No rule at page bottom unless we print one at the top with @title. \finishedtitlepagetrue % % Most title ``pages'' are actually two pages long, with space % at the top of the second. We don't want the ragged left on the second. \let\oldpage = \page \def\page{% \iffinishedtitlepage\else \finishtitlepage \fi \let\page = \oldpage \page \null }% } \def\Etitlepage{% \iffinishedtitlepage\else \finishtitlepage \fi % It is important to do the page break before ending the group, % because the headline and footline are only empty inside the group. % If we use the new definition of \page, we always get a blank page % after the title page, which we certainly don't want. \oldpage \endgroup % % Need this before the \...aftertitlepage checks so that if they are % in effect the toc pages will come out with page numbers. \HEADINGSon % % If they want short, they certainly want long too. \ifsetshortcontentsaftertitlepage \shortcontents \contents \global\let\shortcontents = \relax \global\let\contents = \relax \fi % \ifsetcontentsaftertitlepage \contents \global\let\contents = \relax \global\let\shortcontents = \relax \fi } \def\finishtitlepage{% \vskip4pt \hrule height 2pt width \hsize \vskip\titlepagebottomglue \finishedtitlepagetrue } % Macros to be used within @titlepage: \let\subtitlerm=\tenrm \def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines} \parseargdef\title{% \checkenv\titlepage \leftline{\titlefonts\rmisbold #1} % print a rule at the page bottom also. \finishedtitlepagefalse \vskip4pt \hrule height 4pt width \hsize \vskip4pt } \parseargdef\subtitle{% \checkenv\titlepage {\subtitlefont \rightline{#1}}% } % @author should come last, but may come many times. % It can also be used inside @quotation. % \parseargdef\author{% \def\temp{\quotation}% \ifx\thisenv\temp \def\quotationauthor{#1}% printed in \Equotation. \else \checkenv\titlepage \ifseenauthor\else \vskip 0pt plus 1filll \seenauthortrue \fi {\secfonts\rmisbold \leftline{#1}}% \fi } % Set up page headings and footings. \let\thispage=\folio \newtoks\evenheadline % headline on even pages \newtoks\oddheadline % headline on odd pages \newtoks\evenfootline % footline on even pages \newtoks\oddfootline % footline on odd pages % Now make TeX use those variables \headline={{\textfonts\rm \ifodd\pageno \the\oddheadline \else \the\evenheadline \fi}} \footline={{\textfonts\rm \ifodd\pageno \the\oddfootline \else \the\evenfootline \fi}\HEADINGShook} \let\HEADINGShook=\relax % Commands to set those variables. % For example, this is what @headings on does % @evenheading @thistitle|@thispage|@thischapter % @oddheading @thischapter|@thispage|@thistitle % @evenfooting @thisfile|| % @oddfooting ||@thisfile \def\evenheading{\parsearg\evenheadingxxx} \def\evenheadingxxx #1{\evenheadingyyy #1\|\|\|\|\finish} \def\evenheadingyyy #1\|#2\|#3\|#4\finish{% \global\evenheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}} \def\oddheading{\parsearg\oddheadingxxx} \def\oddheadingxxx #1{\oddheadingyyy #1\|\|\|\|\finish} \def\oddheadingyyy #1\|#2\|#3\|#4\finish{% \global\oddheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}} \parseargdef\everyheading{\oddheadingxxx{#1}\evenheadingxxx{#1}}% \def\evenfooting{\parsearg\evenfootingxxx} \def\evenfootingxxx #1{\evenfootingyyy #1\|\|\|\|\finish} \def\evenfootingyyy #1\|#2\|#3\|#4\finish{% \global\evenfootline={\rlap{\centerline{#2}}\line{#1\hfil#3}}} \def\oddfooting{\parsearg\oddfootingxxx} \def\oddfootingxxx #1{\oddfootingyyy #1\|\|\|\|\finish} \def\oddfootingyyy #1\|#2\|#3\|#4\finish{% \global\oddfootline = {\rlap{\centerline{#2}}\line{#1\hfil#3}}% % % Leave some space for the footline. Hopefully ok to assume % @evenfooting will not be used by itself. \global\advance\pageheight by -12pt \global\advance\vsize by -12pt } \parseargdef\everyfooting{\oddfootingxxx{#1}\evenfootingxxx{#1}} % @evenheadingmarks top \thischapter <- chapter at the top of a page % @evenheadingmarks bottom \thischapter <- chapter at the bottom of a page % % The same set of arguments for: % % @oddheadingmarks % @evenfootingmarks % @oddfootingmarks % @everyheadingmarks % @everyfootingmarks \def\evenheadingmarks{\headingmarks{even}{heading}} \def\oddheadingmarks{\headingmarks{odd}{heading}} \def\evenfootingmarks{\headingmarks{even}{footing}} \def\oddfootingmarks{\headingmarks{odd}{footing}} \def\everyheadingmarks#1 {\headingmarks{even}{heading}{#1} \headingmarks{odd}{heading}{#1} } \def\everyfootingmarks#1 {\headingmarks{even}{footing}{#1} \headingmarks{odd}{footing}{#1} } % #1 = even/odd, #2 = heading/footing, #3 = top/bottom. \def\headingmarks#1#2#3 {% \expandafter\let\expandafter\temp \csname get#3headingmarks\endcsname \global\expandafter\let\csname get#1#2marks\endcsname \temp } \everyheadingmarks bottom \everyfootingmarks bottom % @headings double turns headings on for double-sided printing. % @headings single turns headings on for single-sided printing. % @headings off turns them off. % @headings on same as @headings double, retained for compatibility. % @headings after turns on double-sided headings after this page. % @headings doubleafter turns on double-sided headings after this page. % @headings singleafter turns on single-sided headings after this page. % By default, they are off at the start of a document, % and turned `on' after @end titlepage. \def\headings #1 {\csname HEADINGS#1\endcsname} \def\headingsoff{% non-global headings elimination \evenheadline={\hfil}\evenfootline={\hfil}% \oddheadline={\hfil}\oddfootline={\hfil}% } \def\HEADINGSoff{{\globaldefs=1 \headingsoff}} % global setting \HEADINGSoff % it's the default % When we turn headings on, set the page number to 1. % For double-sided printing, put current file name in lower left corner, % chapter name on inside top of right hand pages, document % title on inside top of left hand pages, and page numbers on outside top % edge of all pages. \def\HEADINGSdouble{% \global\pageno=1 \global\evenfootline={\hfil} \global\oddfootline={\hfil} \global\evenheadline={\line{\folio\hfil\thistitle}} \global\oddheadline={\line{\thischapter\hfil\folio}} \global\let\contentsalignmacro = \chapoddpage } \let\contentsalignmacro = \chappager % For single-sided printing, chapter title goes across top left of page, % page number on top right. \def\HEADINGSsingle{% \global\pageno=1 \global\evenfootline={\hfil} \global\oddfootline={\hfil} \global\evenheadline={\line{\thischapter\hfil\folio}} \global\oddheadline={\line{\thischapter\hfil\folio}} \global\let\contentsalignmacro = \chappager } \def\HEADINGSon{\HEADINGSdouble} \def\HEADINGSafter{\let\HEADINGShook=\HEADINGSdoublex} \let\HEADINGSdoubleafter=\HEADINGSafter \def\HEADINGSdoublex{% \global\evenfootline={\hfil} \global\oddfootline={\hfil} \global\evenheadline={\line{\folio\hfil\thistitle}} \global\oddheadline={\line{\thischapter\hfil\folio}} \global\let\contentsalignmacro = \chapoddpage } \def\HEADINGSsingleafter{\let\HEADINGShook=\HEADINGSsinglex} \def\HEADINGSsinglex{% \global\evenfootline={\hfil} \global\oddfootline={\hfil} \global\evenheadline={\line{\thischapter\hfil\folio}} \global\oddheadline={\line{\thischapter\hfil\folio}} \global\let\contentsalignmacro = \chappager } % Subroutines used in generating headings % This produces Day Month Year style of output. % Only define if not already defined, in case a txi-??.tex file has set % up a different format (e.g., txi-cs.tex does this). \ifx\today\thisisundefined \def\today{% \number\day\space \ifcase\month \or\putwordMJan\or\putwordMFeb\or\putwordMMar\or\putwordMApr \or\putwordMMay\or\putwordMJun\or\putwordMJul\or\putwordMAug \or\putwordMSep\or\putwordMOct\or\putwordMNov\or\putwordMDec \fi \space\number\year} \fi % @settitle line... specifies the title of the document, for headings. % It generates no output of its own. \def\thistitle{\putwordNoTitle} \def\settitle{\parsearg{\gdef\thistitle}} \message{tables,} % Tables -- @table, @ftable, @vtable, @item(x). % default indentation of table text \newdimen\tableindent \tableindent=.8in % default indentation of @itemize and @enumerate text \newdimen\itemindent \itemindent=.3in % margin between end of table item and start of table text. \newdimen\itemmargin \itemmargin=.1in % used internally for \itemindent minus \itemmargin \newdimen\itemmax % Note @table, @ftable, and @vtable define @item, @itemx, etc., with % these defs. % They also define \itemindex % to index the item name in whatever manner is desired (perhaps none). \newif\ifitemxneedsnegativevskip \def\itemxpar{\par\ifitemxneedsnegativevskip\nobreak\vskip-\parskip\nobreak\fi} \def\internalBitem{\smallbreak \parsearg\itemzzz} \def\internalBitemx{\itemxpar \parsearg\itemzzz} \def\itemzzz #1{\begingroup % \advance\hsize by -\rightskip \advance\hsize by -\tableindent \setbox0=\hbox{\itemindicate{#1}}% \itemindex{#1}% \nobreak % This prevents a break before @itemx. % % If the item text does not fit in the space we have, put it on a line % by itself, and do not allow a page break either before or after that % line. We do not start a paragraph here because then if the next % command is, e.g., @kindex, the whatsit would get put into the % horizontal list on a line by itself, resulting in extra blank space. \ifdim \wd0>\itemmax % % Make this a paragraph so we get the \parskip glue and wrapping, % but leave it ragged-right. \begingroup \advance\leftskip by-\tableindent \advance\hsize by\tableindent \advance\rightskip by0pt plus1fil\relax \leavevmode\unhbox0\par \endgroup % % We're going to be starting a paragraph, but we don't want the % \parskip glue -- logically it's part of the @item we just started. \nobreak \vskip-\parskip % % Stop a page break at the \parskip glue coming up. However, if % what follows is an environment such as @example, there will be no % \parskip glue; then the negative vskip we just inserted would % cause the example and the item to crash together. So we use this % bizarre value of 10001 as a signal to \aboveenvbreak to insert % \parskip glue after all. Section titles are handled this way also. % \penalty 10001 \endgroup \itemxneedsnegativevskipfalse \else % The item text fits into the space. Start a paragraph, so that the % following text (if any) will end up on the same line. \noindent % Do this with kerns and \unhbox so that if there is a footnote in % the item text, it can migrate to the main vertical list and % eventually be printed. \nobreak\kern-\tableindent \dimen0 = \itemmax \advance\dimen0 by \itemmargin \advance\dimen0 by -\wd0 \unhbox0 \nobreak\kern\dimen0 \endgroup \itemxneedsnegativevskiptrue \fi } \def\item{\errmessage{@item while not in a list environment}} \def\itemx{\errmessage{@itemx while not in a list environment}} % @table, @ftable, @vtable. \envdef\table{% \let\itemindex\gobble \tablecheck{table}% } \envdef\ftable{% \def\itemindex ##1{\doind {fn}{\code{##1}}}% \tablecheck{ftable}% } \envdef\vtable{% \def\itemindex ##1{\doind {vr}{\code{##1}}}% \tablecheck{vtable}% } \def\tablecheck#1{% \ifnum \the\catcode`\^^M=\active \endgroup \errmessage{This command won't work in this context; perhaps the problem is that we are \inenvironment\thisenv}% \def\next{\doignore{#1}}% \else \let\next\tablex \fi \next } \def\tablex#1{% \def\itemindicate{#1}% \parsearg\tabley } \def\tabley#1{% {% \makevalueexpandable \edef\temp{\noexpand\tablez #1\space\space\space}% \expandafter }\temp \endtablez } \def\tablez #1 #2 #3 #4\endtablez{% \aboveenvbreak \ifnum 0#1>0 \advance \leftskip by #1\mil \fi \ifnum 0#2>0 \tableindent=#2\mil \fi \ifnum 0#3>0 \advance \rightskip by #3\mil \fi \itemmax=\tableindent \advance \itemmax by -\itemmargin \advance \leftskip by \tableindent \exdentamount=\tableindent \parindent = 0pt \parskip = \smallskipamount \ifdim \parskip=0pt \parskip=2pt \fi \let\item = \internalBitem \let\itemx = \internalBitemx } \def\Etable{\endgraf\afterenvbreak} \let\Eftable\Etable \let\Evtable\Etable \let\Eitemize\Etable \let\Eenumerate\Etable % This is the counter used by @enumerate, which is really @itemize \newcount \itemno \envdef\itemize{\parsearg\doitemize} \def\doitemize#1{% \aboveenvbreak \itemmax=\itemindent \advance\itemmax by -\itemmargin \advance\leftskip by \itemindent \exdentamount=\itemindent \parindent=0pt \parskip=\smallskipamount \ifdim\parskip=0pt \parskip=2pt \fi % % Try typesetting the item mark that if the document erroneously says % something like @itemize @samp (intending @table), there's an error % right away at the @itemize. It's not the best error message in the % world, but it's better than leaving it to the @item. This means if % the user wants an empty mark, they have to say @w{} not just @w. \def\itemcontents{#1}% \setbox0 = \hbox{\itemcontents}% % % @itemize with no arg is equivalent to @itemize @bullet. \ifx\itemcontents\empty\def\itemcontents{\bullet}\fi % \let\item=\itemizeitem } % Definition of @item while inside @itemize and @enumerate. % \def\itemizeitem{% \advance\itemno by 1 % for enumerations {\let\par=\endgraf \smallbreak}% reasonable place to break {% % If the document has an @itemize directly after a section title, a % \nobreak will be last on the list, and \sectionheading will have % done a \vskip-\parskip. In that case, we don't want to zero % parskip, or the item text will crash with the heading. On the % other hand, when there is normal text preceding the item (as there % usually is), we do want to zero parskip, or there would be too much % space. In that case, we won't have a \nobreak before. At least % that's the theory. \ifnum\lastpenalty<10000 \parskip=0in \fi \noindent \hbox to 0pt{\hss \itemcontents \kern\itemmargin}% % \vadjust{\penalty 1200}}% not good to break after first line of item. \flushcr } % \splitoff TOKENS\endmark defines \first to be the first token in % TOKENS, and \rest to be the remainder. % \def\splitoff#1#2\endmark{\def\first{#1}\def\rest{#2}}% % Allow an optional argument of an uppercase letter, lowercase letter, % or number, to specify the first label in the enumerated list. No % argument is the same as `1'. % \envparseargdef\enumerate{\enumeratey #1 \endenumeratey} \def\enumeratey #1 #2\endenumeratey{% % If we were given no argument, pretend we were given `1'. \def\thearg{#1}% \ifx\thearg\empty \def\thearg{1}\fi % % Detect if the argument is a single token. If so, it might be a % letter. Otherwise, the only valid thing it can be is a number. % (We will always have one token, because of the test we just made. % This is a good thing, since \splitoff doesn't work given nothing at % all -- the first parameter is undelimited.) \expandafter\splitoff\thearg\endmark \ifx\rest\empty % Only one token in the argument. It could still be anything. % A ``lowercase letter'' is one whose \lccode is nonzero. % An ``uppercase letter'' is one whose \lccode is both nonzero, and % not equal to itself. % Otherwise, we assume it's a number. % % We need the \relax at the end of the \ifnum lines to stop TeX from % continuing to look for a . % \ifnum\lccode\expandafter`\thearg=0\relax \numericenumerate % a number (we hope) \else % It's a letter. \ifnum\lccode\expandafter`\thearg=\expandafter`\thearg\relax \lowercaseenumerate % lowercase letter \else \uppercaseenumerate % uppercase letter \fi \fi \else % Multiple tokens in the argument. We hope it's a number. \numericenumerate \fi } % An @enumerate whose labels are integers. The starting integer is % given in \thearg. % \def\numericenumerate{% \itemno = \thearg \startenumeration{\the\itemno}% } % The starting (lowercase) letter is in \thearg. \def\lowercaseenumerate{% \itemno = \expandafter`\thearg \startenumeration{% % Be sure we're not beyond the end of the alphabet. \ifnum\itemno=0 \errmessage{No more lowercase letters in @enumerate; get a bigger alphabet}% \fi \char\lccode\itemno }% } % The starting (uppercase) letter is in \thearg. \def\uppercaseenumerate{% \itemno = \expandafter`\thearg \startenumeration{% % Be sure we're not beyond the end of the alphabet. \ifnum\itemno=0 \errmessage{No more uppercase letters in @enumerate; get a bigger alphabet} \fi \char\uccode\itemno }% } % Call \doitemize, adding a period to the first argument and supplying the % common last two arguments. Also subtract one from the initial value in % \itemno, since @item increments \itemno. % \def\startenumeration#1{% \advance\itemno by -1 \doitemize{#1.}\flushcr } % @alphaenumerate and @capsenumerate are abbreviations for giving an arg % to @enumerate. % \def\alphaenumerate{\enumerate{a}} \def\capsenumerate{\enumerate{A}} \def\Ealphaenumerate{\Eenumerate} \def\Ecapsenumerate{\Eenumerate} % @multitable macros % Amy Hendrickson, 8/18/94, 3/6/96 % % @multitable ... @end multitable will make as many columns as desired. % Contents of each column will wrap at width given in preamble. Width % can be specified either with sample text given in a template line, % or in percent of \hsize, the current width of text on page. % Table can continue over pages but will only break between lines. % To make preamble: % % Either define widths of columns in terms of percent of \hsize: % @multitable @columnfractions .25 .3 .45 % @item ... % % Numbers following @columnfractions are the percent of the total % current hsize to be used for each column. You may use as many % columns as desired. % Or use a template: % @multitable {Column 1 template} {Column 2 template} {Column 3 template} % @item ... % using the widest term desired in each column. % Each new table line starts with @item, each subsequent new column % starts with @tab. Empty columns may be produced by supplying @tab's % with nothing between them for as many times as empty columns are needed, % ie, @tab@tab@tab will produce two empty columns. % @item, @tab do not need to be on their own lines, but it will not hurt % if they are. % Sample multitable: % @multitable {Column 1 template} {Column 2 template} {Column 3 template} % @item first col stuff @tab second col stuff @tab third col % @item % first col stuff % @tab % second col stuff % @tab % third col % @item first col stuff @tab second col stuff % @tab Many paragraphs of text may be used in any column. % % They will wrap at the width determined by the template. % @item@tab@tab This will be in third column. % @end multitable % Default dimensions may be reset by user. % @multitableparskip is vertical space between paragraphs in table. % @multitableparindent is paragraph indent in table. % @multitablecolmargin is horizontal space to be left between columns. % @multitablelinespace is space to leave between table items, baseline % to baseline. % 0pt means it depends on current normal line spacing. % \newskip\multitableparskip \newskip\multitableparindent \newdimen\multitablecolspace \newskip\multitablelinespace \multitableparskip=0pt \multitableparindent=6pt \multitablecolspace=12pt \multitablelinespace=0pt % Macros used to set up halign preamble: % \let\endsetuptable\relax \def\xendsetuptable{\endsetuptable} \let\columnfractions\relax \def\xcolumnfractions{\columnfractions} \newif\ifsetpercent % #1 is the @columnfraction, usually a decimal number like .5, but might % be just 1. We just use it, whatever it is. % \def\pickupwholefraction#1 {% \global\advance\colcount by 1 \expandafter\xdef\csname col\the\colcount\endcsname{#1\hsize}% \setuptable } \newcount\colcount \def\setuptable#1{% \def\firstarg{#1}% \ifx\firstarg\xendsetuptable \let\go = \relax \else \ifx\firstarg\xcolumnfractions \global\setpercenttrue \else \ifsetpercent \let\go\pickupwholefraction \else \global\advance\colcount by 1 \setbox0=\hbox{#1\unskip\space}% Add a normal word space as a % separator; typically that is always in the input, anyway. \expandafter\xdef\csname col\the\colcount\endcsname{\the\wd0}% \fi \fi \ifx\go\pickupwholefraction % Put the argument back for the \pickupwholefraction call, so % we'll always have a period there to be parsed. \def\go{\pickupwholefraction#1}% \else \let\go = \setuptable \fi% \fi \go } % multitable-only commands. % % @headitem starts a heading row, which we typeset in bold. % Assignments have to be global since we are inside the implicit group % of an alignment entry. \everycr resets \everytab so we don't have to % undo it ourselves. \def\headitemfont{\b}% for people to use in the template row; not changeable \def\headitem{% \checkenv\multitable \crcr \global\everytab={\bf}% can't use \headitemfont since the parsing differs \the\everytab % for the first item }% % % A \tab used to include \hskip1sp. But then the space in a template % line is not enough. That is bad. So let's go back to just `&' until % we again encounter the problem the 1sp was intended to solve. % --karl, nathan@acm.org, 20apr99. \def\tab{\checkenv\multitable &\the\everytab}% % @multitable ... @end multitable definitions: % \newtoks\everytab % insert after every tab. % \envdef\multitable{% \vskip\parskip \startsavinginserts % % @item within a multitable starts a normal row. % We use \def instead of \let so that if one of the multitable entries % contains an @itemize, we don't choke on the \item (seen as \crcr aka % \endtemplate) expanding \doitemize. \def\item{\crcr}% % \tolerance=9500 \hbadness=9500 \setmultitablespacing \parskip=\multitableparskip \parindent=\multitableparindent \overfullrule=0pt \global\colcount=0 % \everycr = {% \noalign{% \global\everytab={}% \global\colcount=0 % Reset the column counter. % Check for saved footnotes, etc. \checkinserts % Keeps underfull box messages off when table breaks over pages. %\filbreak % Maybe so, but it also creates really weird page breaks when the % table breaks over pages. Wouldn't \vfil be better? Wait until the % problem manifests itself, so it can be fixed for real --karl. }% }% % \parsearg\domultitable } \def\domultitable#1{% % To parse everything between @multitable and @item: \setuptable#1 \endsetuptable % % This preamble sets up a generic column definition, which will % be used as many times as user calls for columns. % \vtop will set a single line and will also let text wrap and % continue for many paragraphs if desired. \halign\bgroup &% \global\advance\colcount by 1 \multistrut \vtop{% % Use the current \colcount to find the correct column width: \hsize=\expandafter\csname col\the\colcount\endcsname % % In order to keep entries from bumping into each other % we will add a \leftskip of \multitablecolspace to all columns after % the first one. % % If a template has been used, we will add \multitablecolspace % to the width of each template entry. % % If the user has set preamble in terms of percent of \hsize we will % use that dimension as the width of the column, and the \leftskip % will keep entries from bumping into each other. Table will start at % left margin and final column will justify at right margin. % % Make sure we don't inherit \rightskip from the outer environment. \rightskip=0pt \ifnum\colcount=1 % The first column will be indented with the surrounding text. \advance\hsize by\leftskip \else \ifsetpercent \else % If user has not set preamble in terms of percent of \hsize % we will advance \hsize by \multitablecolspace. \advance\hsize by \multitablecolspace \fi % In either case we will make \leftskip=\multitablecolspace: \leftskip=\multitablecolspace \fi % Ignoring space at the beginning and end avoids an occasional spurious % blank line, when TeX decides to break the line at the space before the % box from the multistrut, so the strut ends up on a line by itself. % For example: % @multitable @columnfractions .11 .89 % @item @code{#} % @tab Legal holiday which is valid in major parts of the whole country. % Is automatically provided with highlighting sequences respectively % marking characters. \noindent\ignorespaces##\unskip\multistrut }\cr } \def\Emultitable{% \crcr \egroup % end the \halign \global\setpercentfalse } \def\setmultitablespacing{% \def\multistrut{\strut}% just use the standard line spacing % % Compute \multitablelinespace (if not defined by user) for use in % \multitableparskip calculation. We used define \multistrut based on % this, but (ironically) that caused the spacing to be off. % See bug-texinfo report from Werner Lemberg, 31 Oct 2004 12:52:20 +0100. \ifdim\multitablelinespace=0pt \setbox0=\vbox{X}\global\multitablelinespace=\the\baselineskip \global\advance\multitablelinespace by-\ht0 \fi % Test to see if parskip is larger than space between lines of % table. If not, do nothing. % If so, set to same dimension as multitablelinespace. \ifdim\multitableparskip>\multitablelinespace \global\multitableparskip=\multitablelinespace \global\advance\multitableparskip-7pt % to keep parskip somewhat smaller % than skip between lines in the table. \fi% \ifdim\multitableparskip=0pt \global\multitableparskip=\multitablelinespace \global\advance\multitableparskip-7pt % to keep parskip somewhat smaller % than skip between lines in the table. \fi} \message{conditionals,} % @iftex, @ifnotdocbook, @ifnothtml, @ifnotinfo, @ifnotplaintext, % @ifnotxml always succeed. They currently do nothing; we don't % attempt to check whether the conditionals are properly nested. But we % have to remember that they are conditionals, so that @end doesn't % attempt to close an environment group. % \def\makecond#1{% \expandafter\let\csname #1\endcsname = \relax \expandafter\let\csname iscond.#1\endcsname = 1 } \makecond{iftex} \makecond{ifnotdocbook} \makecond{ifnothtml} \makecond{ifnotinfo} \makecond{ifnotplaintext} \makecond{ifnotxml} % Ignore @ignore, @ifhtml, @ifinfo, and the like. % \def\direntry{\doignore{direntry}} \def\documentdescription{\doignore{documentdescription}} \def\docbook{\doignore{docbook}} \def\html{\doignore{html}} \def\ifdocbook{\doignore{ifdocbook}} \def\ifhtml{\doignore{ifhtml}} \def\ifinfo{\doignore{ifinfo}} \def\ifnottex{\doignore{ifnottex}} \def\ifplaintext{\doignore{ifplaintext}} \def\ifxml{\doignore{ifxml}} \def\ignore{\doignore{ignore}} \def\menu{\doignore{menu}} \def\xml{\doignore{xml}} % Ignore text until a line `@end #1', keeping track of nested conditionals. % % A count to remember the depth of nesting. \newcount\doignorecount \def\doignore#1{\begingroup % Scan in ``verbatim'' mode: \obeylines \catcode`\@ = \other \catcode`\{ = \other \catcode`\} = \other % % Make sure that spaces turn into tokens that match what \doignoretext wants. \spaceisspace % % Count number of #1's that we've seen. \doignorecount = 0 % % Swallow text until we reach the matching `@end #1'. \dodoignore{#1}% } { \catcode`_=11 % We want to use \_STOP_ which cannot appear in texinfo source. \obeylines % % \gdef\dodoignore#1{% % #1 contains the command name as a string, e.g., `ifinfo'. % % Define a command to find the next `@end #1'. \long\def\doignoretext##1^^M@end #1{% \doignoretextyyy##1^^M@#1\_STOP_}% % % And this command to find another #1 command, at the beginning of a % line. (Otherwise, we would consider a line `@c @ifset', for % example, to count as an @ifset for nesting.) \long\def\doignoretextyyy##1^^M@#1##2\_STOP_{\doignoreyyy{##2}\_STOP_}% % % And now expand that command. \doignoretext ^^M% }% } \def\doignoreyyy#1{% \def\temp{#1}% \ifx\temp\empty % Nothing found. \let\next\doignoretextzzz \else % Found a nested condition, ... \advance\doignorecount by 1 \let\next\doignoretextyyy % ..., look for another. % If we're here, #1 ends with ^^M\ifinfo (for example). \fi \next #1% the token \_STOP_ is present just after this macro. } % We have to swallow the remaining "\_STOP_". % \def\doignoretextzzz#1{% \ifnum\doignorecount = 0 % We have just found the outermost @end. \let\next\enddoignore \else % Still inside a nested condition. \advance\doignorecount by -1 \let\next\doignoretext % Look for the next @end. \fi \next } % Finish off ignored text. { \obeylines% % Ignore anything after the last `@end #1'; this matters in verbatim % environments, where otherwise the newline after an ignored conditional % would result in a blank line in the output. \gdef\enddoignore#1^^M{\endgroup\ignorespaces}% } % @set VAR sets the variable VAR to an empty value. % @set VAR REST-OF-LINE sets VAR to the value REST-OF-LINE. % % Since we want to separate VAR from REST-OF-LINE (which might be % empty), we can't just use \parsearg; we have to insert a space of our % own to delimit the rest of the line, and then take it out again if we % didn't need it. % We rely on the fact that \parsearg sets \catcode`\ =10. % \parseargdef\set{\setyyy#1 \endsetyyy} \def\setyyy#1 #2\endsetyyy{% {% \makevalueexpandable \def\temp{#2}% \edef\next{\gdef\makecsname{SET#1}}% \ifx\temp\empty \next{}% \else \setzzz#2\endsetzzz \fi }% } % Remove the trailing space \setxxx inserted. \def\setzzz#1 \endsetzzz{\next{#1}} % @clear VAR clears (i.e., unsets) the variable VAR. % \parseargdef\clear{% {% \makevalueexpandable \global\expandafter\let\csname SET#1\endcsname=\relax }% } % @value{foo} gets the text saved in variable foo. \def\value{\begingroup\makevalueexpandable\valuexxx} \def\valuexxx#1{\expandablevalue{#1}\endgroup} { \catcode`\- = \active \catcode`\_ = \active % \gdef\makevalueexpandable{% \let\value = \expandablevalue % We don't want these characters active, ... \catcode`\-=\other \catcode`\_=\other % ..., but we might end up with active ones in the argument if % we're called from @code, as @code{@value{foo-bar_}}, though. % So \let them to their normal equivalents. \let-\realdash \let_\normalunderscore } } % We have this subroutine so that we can handle at least some @value's % properly in indexes (we call \makevalueexpandable in \indexdummies). % The command has to be fully expandable (if the variable is set), since % the result winds up in the index file. This means that if the % variable's value contains other Texinfo commands, it's almost certain % it will fail (although perhaps we could fix that with sufficient work % to do a one-level expansion on the result, instead of complete). % \def\expandablevalue#1{% \expandafter\ifx\csname SET#1\endcsname\relax {[No value for ``#1'']}% \message{Variable `#1', used in @value, is not set.}% \else \csname SET#1\endcsname \fi } % @ifset VAR ... @end ifset reads the `...' iff VAR has been defined % with @set. % % To get special treatment of `@end ifset,' call \makeond and the redefine. % \makecond{ifset} \def\ifset{\parsearg{\doifset{\let\next=\ifsetfail}}} \def\doifset#1#2{% {% \makevalueexpandable \let\next=\empty \expandafter\ifx\csname SET#2\endcsname\relax #1% If not set, redefine \next. \fi \expandafter }\next } \def\ifsetfail{\doignore{ifset}} % @ifclear VAR ... @end ifclear reads the `...' iff VAR has never been % defined with @set, or has been undefined with @clear. % % The `\else' inside the `\doifset' parameter is a trick to reuse the % above code: if the variable is not set, do nothing, if it is set, % then redefine \next to \ifclearfail. % \makecond{ifclear} \def\ifclear{\parsearg{\doifset{\else \let\next=\ifclearfail}}} \def\ifclearfail{\doignore{ifclear}} % @dircategory CATEGORY -- specify a category of the dir file % which this file should belong to. Ignore this in TeX. \let\dircategory=\comment % @defininfoenclose. \let\definfoenclose=\comment \message{indexing,} % Index generation facilities % Define \newwrite to be identical to plain tex's \newwrite % except not \outer, so it can be used within macros and \if's. \edef\newwrite{\makecsname{ptexnewwrite}} % \newindex {foo} defines an index named foo. % It automatically defines \fooindex such that % \fooindex ...rest of line... puts an entry in the index foo. % It also defines \fooindfile to be the number of the output channel for % the file that accumulates this index. The file's extension is foo. % The name of an index should be no more than 2 characters long % for the sake of vms. % \def\newindex#1{% \iflinks \expandafter\newwrite \csname#1indfile\endcsname \openout \csname#1indfile\endcsname \jobname.#1 % Open the file \fi \expandafter\xdef\csname#1index\endcsname{% % Define @#1index \noexpand\doindex{#1}} } % @defindex foo == \newindex{foo} % \def\defindex{\parsearg\newindex} % Define @defcodeindex, like @defindex except put all entries in @code. % \def\defcodeindex{\parsearg\newcodeindex} % \def\newcodeindex#1{% \iflinks \expandafter\newwrite \csname#1indfile\endcsname \openout \csname#1indfile\endcsname \jobname.#1 \fi \expandafter\xdef\csname#1index\endcsname{% \noexpand\docodeindex{#1}}% } % @synindex foo bar makes index foo feed into index bar. % Do this instead of @defindex foo if you don't want it as a separate index. % % @syncodeindex foo bar similar, but put all entries made for index foo % inside @code. % \def\synindex#1 #2 {\dosynindex\doindex{#1}{#2}} \def\syncodeindex#1 #2 {\dosynindex\docodeindex{#1}{#2}} % #1 is \doindex or \docodeindex, #2 the index getting redefined (foo), % #3 the target index (bar). \def\dosynindex#1#2#3{% % Only do \closeout if we haven't already done it, else we'll end up % closing the target index. \expandafter \ifx\csname donesynindex#2\endcsname \relax % The \closeout helps reduce unnecessary open files; the limit on the % Acorn RISC OS is a mere 16 files. \expandafter\closeout\csname#2indfile\endcsname \expandafter\let\csname donesynindex#2\endcsname = 1 \fi % redefine \fooindfile: \expandafter\let\expandafter\temp\expandafter=\csname#3indfile\endcsname \expandafter\let\csname#2indfile\endcsname=\temp % redefine \fooindex: \expandafter\xdef\csname#2index\endcsname{\noexpand#1{#3}}% } % Define \doindex, the driver for all \fooindex macros. % Argument #1 is generated by the calling \fooindex macro, % and it is "foo", the name of the index. % \doindex just uses \parsearg; it calls \doind for the actual work. % This is because \doind is more useful to call from other macros. % There is also \dosubind {index}{topic}{subtopic} % which makes an entry in a two-level index such as the operation index. \def\doindex#1{\edef\indexname{#1}\parsearg\singleindexer} \def\singleindexer #1{\doind{\indexname}{#1}} % like the previous two, but they put @code around the argument. \def\docodeindex#1{\edef\indexname{#1}\parsearg\singlecodeindexer} \def\singlecodeindexer #1{\doind{\indexname}{\code{#1}}} % Take care of Texinfo commands that can appear in an index entry. % Since there are some commands we want to expand, and others we don't, % we have to laboriously prevent expansion for those that we don't. % \def\indexdummies{% \escapechar = `\\ % use backslash in output files. \def\@{@}% change to @@ when we switch to @ as escape char in index files. \def\ {\realbackslash\space }% % % Need these unexpandable (because we define \tt as a dummy) % definitions when @{ or @} appear in index entry text. Also, more % complicated, when \tex is in effect and \{ is a \delimiter again. % We can't use \lbracecmd and \rbracecmd because texindex assumes % braces and backslashes are used only as delimiters. Perhaps we % should define @lbrace and @rbrace commands a la @comma. \def\{{{\tt\char123}}% \def\}{{\tt\char125}}% % % I don't entirely understand this, but when an index entry is % generated from a macro call, the \endinput which \scanmacro inserts % causes processing to be prematurely terminated. This is, % apparently, because \indexsorttmp is fully expanded, and \endinput % is an expandable command. The redefinition below makes \endinput % disappear altogether for that purpose -- although logging shows that % processing continues to some further point. On the other hand, it % seems \endinput does not hurt in the printed index arg, since that % is still getting written without apparent harm. % % Sample source (mac-idx3.tex, reported by Graham Percival to % help-texinfo, 22may06): % @macro funindex {WORD} % @findex xyz % @end macro % ... % @funindex commtest % % The above is not enough to reproduce the bug, but it gives the flavor. % % Sample whatsit resulting: % .@write3{\entry{xyz}{@folio }{@code {xyz@endinput }}} % % So: \let\endinput = \empty % % Do the redefinitions. \commondummies } % For the aux and toc files, @ is the escape character. So we want to % redefine everything using @ as the escape character (instead of % \realbackslash, still used for index files). When everything uses @, % this will be simpler. % \def\atdummies{% \def\@{@@}% \def\ {@ }% \let\{ = \lbraceatcmd \let\} = \rbraceatcmd % % Do the redefinitions. \commondummies \otherbackslash } % Called from \indexdummies and \atdummies. % \def\commondummies{% % % \definedummyword defines \#1 as \string\#1\space, thus effectively % preventing its expansion. This is used only for control words, % not control letters, because the \space would be incorrect for % control characters, but is needed to separate the control word % from whatever follows. % % For control letters, we have \definedummyletter, which omits the % space. % % These can be used both for control words that take an argument and % those that do not. If it is followed by {arg} in the input, then % that will dutifully get written to the index (or wherever). % \def\definedummyword ##1{\def##1{\string##1\space}}% \def\definedummyletter##1{\def##1{\string##1}}% \let\definedummyaccent\definedummyletter % \commondummiesnofonts % \definedummyletter\_% \definedummyletter\-% % % Non-English letters. \definedummyword\AA \definedummyword\AE \definedummyword\DH \definedummyword\L \definedummyword\O \definedummyword\OE \definedummyword\TH \definedummyword\aa \definedummyword\ae \definedummyword\dh \definedummyword\exclamdown \definedummyword\l \definedummyword\o \definedummyword\oe \definedummyword\ordf \definedummyword\ordm \definedummyword\questiondown \definedummyword\ss \definedummyword\th % % Although these internal commands shouldn't show up, sometimes they do. \definedummyword\bf \definedummyword\gtr \definedummyword\hat \definedummyword\less \definedummyword\sf \definedummyword\sl \definedummyword\tclose \definedummyword\tt % \definedummyword\LaTeX \definedummyword\TeX % % Assorted special characters. \definedummyword\arrow \definedummyword\bullet \definedummyword\comma \definedummyword\copyright \definedummyword\registeredsymbol \definedummyword\dots \definedummyword\enddots \definedummyword\entrybreak \definedummyword\equiv \definedummyword\error \definedummyword\euro \definedummyword\expansion \definedummyword\geq \definedummyword\guillemetleft \definedummyword\guillemetright \definedummyword\guilsinglleft \definedummyword\guilsinglright \definedummyword\leq \definedummyword\minus \definedummyword\ogonek \definedummyword\pounds \definedummyword\point \definedummyword\print \definedummyword\quotedblbase \definedummyword\quotedblleft \definedummyword\quotedblright \definedummyword\quoteleft \definedummyword\quoteright \definedummyword\quotesinglbase \definedummyword\result \definedummyword\textdegree % % We want to disable all macros so that they are not expanded by \write. \macrolist % \normalturnoffactive % % Handle some cases of @value -- where it does not contain any % (non-fully-expandable) commands. \makevalueexpandable } % \commondummiesnofonts: common to \commondummies and \indexnofonts. % \def\commondummiesnofonts{% % Control letters and accents. \definedummyletter\!% \definedummyaccent\"% \definedummyaccent\'% \definedummyletter\*% \definedummyaccent\,% \definedummyletter\.% \definedummyletter\/% \definedummyletter\:% \definedummyaccent\=% \definedummyletter\?% \definedummyaccent\^% \definedummyaccent\`% \definedummyaccent\~% \definedummyword\u \definedummyword\v \definedummyword\H \definedummyword\dotaccent \definedummyword\ogonek \definedummyword\ringaccent \definedummyword\tieaccent \definedummyword\ubaraccent \definedummyword\udotaccent \definedummyword\dotless % % Texinfo font commands. \definedummyword\b \definedummyword\i \definedummyword\r \definedummyword\sansserif \definedummyword\sc \definedummyword\slanted \definedummyword\t % % Commands that take arguments. \definedummyword\acronym \definedummyword\anchor \definedummyword\cite \definedummyword\code \definedummyword\command \definedummyword\dfn \definedummyword\dmn \definedummyword\email \definedummyword\emph \definedummyword\env \definedummyword\file \definedummyword\indicateurl \definedummyword\kbd \definedummyword\key \definedummyword\math \definedummyword\option \definedummyword\pxref \definedummyword\ref \definedummyword\samp \definedummyword\strong \definedummyword\tie \definedummyword\uref \definedummyword\url \definedummyword\var \definedummyword\verb \definedummyword\w \definedummyword\xref } % \indexnofonts is used when outputting the strings to sort the index % by, and when constructing control sequence names. It eliminates all % control sequences and just writes whatever the best ASCII sort string % would be for a given command (usually its argument). % \def\indexnofonts{% % Accent commands should become @asis. \def\definedummyaccent##1{\let##1\asis}% % We can just ignore other control letters. \def\definedummyletter##1{\let##1\empty}% % All control words become @asis by default; overrides below. \let\definedummyword\definedummyaccent % \commondummiesnofonts % % Don't no-op \tt, since it isn't a user-level command % and is used in the definitions of the active chars like <, >, |, etc. % Likewise with the other plain tex font commands. %\let\tt=\asis % \def\ { }% \def\@{@}% \def\_{\normalunderscore}% \def\-{}% @- shouldn't affect sorting % % Unfortunately, texindex is not prepared to handle braces in the % content at all. So for index sorting, we map @{ and @} to strings % starting with |, since that ASCII character is between ASCII { and }. \def\{{|a}% \def\}{|b}% % % Non-English letters. \def\AA{AA}% \def\AE{AE}% \def\DH{DZZ}% \def\L{L}% \def\OE{OE}% \def\O{O}% \def\TH{ZZZ}% \def\aa{aa}% \def\ae{ae}% \def\dh{dzz}% \def\exclamdown{!}% \def\l{l}% \def\oe{oe}% \def\ordf{a}% \def\ordm{o}% \def\o{o}% \def\questiondown{?}% \def\ss{ss}% \def\th{zzz}% % \def\LaTeX{LaTeX}% \def\TeX{TeX}% % % Assorted special characters. % (The following {} will end up in the sort string, but that's ok.) \def\arrow{->}% \def\bullet{bullet}% \def\comma{,}% \def\copyright{copyright}% \def\dots{...}% \def\enddots{...}% \def\equiv{==}% \def\error{error}% \def\euro{euro}% \def\expansion{==>}% \def\geq{>=}% \def\guillemetleft{<<}% \def\guillemetright{>>}% \def\guilsinglleft{<}% \def\guilsinglright{>}% \def\leq{<=}% \def\minus{-}% \def\point{.}% \def\pounds{pounds}% \def\print{-|}% \def\quotedblbase{"}% \def\quotedblleft{"}% \def\quotedblright{"}% \def\quoteleft{`}% \def\quoteright{'}% \def\quotesinglbase{,}% \def\registeredsymbol{R}% \def\result{=>}% \def\textdegree{o}% % \expandafter\ifx\csname SETtxiindexlquoteignore\endcsname\relax \else \indexlquoteignore \fi % % We need to get rid of all macros, leaving only the arguments (if present). % Of course this is not nearly correct, but it is the best we can do for now. % makeinfo does not expand macros in the argument to @deffn, which ends up % writing an index entry, and texindex isn't prepared for an index sort entry % that starts with \. % % Since macro invocations are followed by braces, we can just redefine them % to take a single TeX argument. The case of a macro invocation that % goes to end-of-line is not handled. % \macrolist } % Undocumented (for FSFS 2nd ed.): @set txiindexlquoteignore makes us % ignore left quotes in the sort term. {\catcode`\`=\active \gdef\indexlquoteignore{\let`=\empty}} \let\indexbackslash=0 %overridden during \printindex. \let\SETmarginindex=\relax % put index entries in margin (undocumented)? % Most index entries go through here, but \dosubind is the general case. % #1 is the index name, #2 is the entry text. \def\doind#1#2{\dosubind{#1}{#2}{}} % Workhorse for all \fooindexes. % #1 is name of index, #2 is stuff to put there, #3 is subentry -- % empty if called from \doind, as we usually are (the main exception % is with most defuns, which call us directly). % \def\dosubind#1#2#3{% \iflinks {% % Store the main index entry text (including the third arg). \toks0 = {#2}% % If third arg is present, precede it with a space. \def\thirdarg{#3}% \ifx\thirdarg\empty \else \toks0 = \expandafter{\the\toks0 \space #3}% \fi % \edef\writeto{\csname#1indfile\endcsname}% % \safewhatsit\dosubindwrite }% \fi } % Write the entry in \toks0 to the index file: % \def\dosubindwrite{% % Put the index entry in the margin if desired. \ifx\SETmarginindex\relax\else \insert\margin{\hbox{\vrule height8pt depth3pt width0pt \the\toks0}}% \fi % % Remember, we are within a group. \indexdummies % Must do this here, since \bf, etc expand at this stage \def\backslashcurfont{\indexbackslash}% \indexbackslash isn't defined now % so it will be output as is; and it will print as backslash. % % Process the index entry with all font commands turned off, to % get the string to sort by. {\indexnofonts \edef\temp{\the\toks0}% need full expansion \xdef\indexsorttmp{\temp}% }% % % Set up the complete index entry, with both the sort key and % the original text, including any font commands. We write % three arguments to \entry to the .?? file (four in the % subentry case), texindex reduces to two when writing the .??s % sorted result. \edef\temp{% \write\writeto{% \string\entry{\indexsorttmp}{\noexpand\folio}{\the\toks0}}% }% \temp } % Take care of unwanted page breaks/skips around a whatsit: % % If a skip is the last thing on the list now, preserve it % by backing up by \lastskip, doing the \write, then inserting % the skip again. Otherwise, the whatsit generated by the % \write or \pdfdest will make \lastskip zero. The result is that % sequences like this: % @end defun % @tindex whatever % @defun ... % will have extra space inserted, because the \medbreak in the % start of the @defun won't see the skip inserted by the @end of % the previous defun. % % But don't do any of this if we're not in vertical mode. We % don't want to do a \vskip and prematurely end a paragraph. % % Avoid page breaks due to these extra skips, too. % % But wait, there is a catch there: % We'll have to check whether \lastskip is zero skip. \ifdim is not % sufficient for this purpose, as it ignores stretch and shrink parts % of the skip. The only way seems to be to check the textual % representation of the skip. % % The following is almost like \def\zeroskipmacro{0.0pt} except that % the ``p'' and ``t'' characters have catcode \other, not 11 (letter). % \edef\zeroskipmacro{\expandafter\the\csname z@skip\endcsname} % \newskip\whatsitskip \newcount\whatsitpenalty % % ..., ready, GO: % \def\safewhatsit#1{\ifhmode #1% \else % \lastskip and \lastpenalty cannot both be nonzero simultaneously. \whatsitskip = \lastskip \edef\lastskipmacro{\the\lastskip}% \whatsitpenalty = \lastpenalty % % If \lastskip is nonzero, that means the last item was a % skip. And since a skip is discardable, that means this % -\whatsitskip glue we're inserting is preceded by a % non-discardable item, therefore it is not a potential % breakpoint, therefore no \nobreak needed. \ifx\lastskipmacro\zeroskipmacro \else \vskip-\whatsitskip \fi % #1% % \ifx\lastskipmacro\zeroskipmacro % If \lastskip was zero, perhaps the last item was a penalty, and % perhaps it was >=10000, e.g., a \nobreak. In that case, we want % to re-insert the same penalty (values >10000 are used for various % signals); since we just inserted a non-discardable item, any % following glue (such as a \parskip) would be a breakpoint. For example: % @deffn deffn-whatever % @vindex index-whatever % Description. % would allow a break between the index-whatever whatsit % and the "Description." paragraph. \ifnum\whatsitpenalty>9999 \penalty\whatsitpenalty \fi \else % On the other hand, if we had a nonzero \lastskip, % this make-up glue would be preceded by a non-discardable item % (the whatsit from the \write), so we must insert a \nobreak. \nobreak\vskip\whatsitskip \fi \fi} % The index entry written in the file actually looks like % \entry {sortstring}{page}{topic} % or % \entry {sortstring}{page}{topic}{subtopic} % The texindex program reads in these files and writes files % containing these kinds of lines: % \initial {c} % before the first topic whose initial is c % \entry {topic}{pagelist} % for a topic that is used without subtopics % \primary {topic} % for the beginning of a topic that is used with subtopics % \secondary {subtopic}{pagelist} % for each subtopic. % Define the user-accessible indexing commands % @findex, @vindex, @kindex, @cindex. \def\findex {\fnindex} \def\kindex {\kyindex} \def\cindex {\cpindex} \def\vindex {\vrindex} \def\tindex {\tpindex} \def\pindex {\pgindex} \def\cindexsub {\begingroup\obeylines\cindexsub} {\obeylines % \gdef\cindexsub "#1" #2^^M{\endgroup % \dosubind{cp}{#2}{#1}}} % Define the macros used in formatting output of the sorted index material. % @printindex causes a particular index (the ??s file) to get printed. % It does not print any chapter heading (usually an @unnumbered). % \parseargdef\printindex{\begingroup \dobreak \chapheadingskip{10000}% % \smallfonts \rm \tolerance = 9500 \plainfrenchspacing \everypar = {}% don't want the \kern\-parindent from indentation suppression. % % See if the index file exists and is nonempty. % Change catcode of @ here so that if the index file contains % \initial {@} % as its first line, TeX doesn't complain about mismatched braces % (because it thinks @} is a control sequence). \catcode`\@ = 11 \openin 1 \jobname.#1s \ifeof 1 % \enddoublecolumns gets confused if there is no text in the index, % and it loses the chapter title and the aux file entries for the % index. The easiest way to prevent this problem is to make sure % there is some text. \putwordIndexNonexistent \else % % If the index file exists but is empty, then \openin leaves \ifeof % false. We have to make TeX try to read something from the file, so % it can discover if there is anything in it. \read 1 to \temp \ifeof 1 \putwordIndexIsEmpty \else % Index files are almost Texinfo source, but we use \ as the escape % character. It would be better to use @, but that's too big a change % to make right now. \def\indexbackslash{\backslashcurfont}% \catcode`\\ = 0 \escapechar = `\\ \begindoublecolumns \input \jobname.#1s \enddoublecolumns \fi \fi \closein 1 \endgroup} % These macros are used by the sorted index file itself. % Change them to control the appearance of the index. \def\initial#1{{% % Some minor font changes for the special characters. \let\tentt=\sectt \let\tt=\sectt \let\sf=\sectt % % Remove any glue we may have, we'll be inserting our own. \removelastskip % % We like breaks before the index initials, so insert a bonus. \nobreak \vskip 0pt plus 3\baselineskip \penalty 0 \vskip 0pt plus -3\baselineskip % % Typeset the initial. Making this add up to a whole number of % baselineskips increases the chance of the dots lining up from column % to column. It still won't often be perfect, because of the stretch % we need before each entry, but it's better. % % No shrink because it confuses \balancecolumns. \vskip 1.67\baselineskip plus .5\baselineskip \leftline{\secbf #1}% % Do our best not to break after the initial. \nobreak \vskip .33\baselineskip plus .1\baselineskip }} % \entry typesets a paragraph consisting of the text (#1), dot leaders, and % then page number (#2) flushed to the right margin. It is used for index % and table of contents entries. The paragraph is indented by \leftskip. % % A straightforward implementation would start like this: % \def\entry#1#2{... % But this freezes the catcodes in the argument, and can cause problems to % @code, which sets - active. This problem was fixed by a kludge--- % ``-'' was active throughout whole index, but this isn't really right. % The right solution is to prevent \entry from swallowing the whole text. % --kasal, 21nov03 \def\entry{% \begingroup % % Start a new paragraph if necessary, so our assignments below can't % affect previous text. \par % % Do not fill out the last line with white space. \parfillskip = 0in % % No extra space above this paragraph. \parskip = 0in % % Do not prefer a separate line ending with a hyphen to fewer lines. \finalhyphendemerits = 0 % % \hangindent is only relevant when the entry text and page number % don't both fit on one line. In that case, bob suggests starting the % dots pretty far over on the line. Unfortunately, a large % indentation looks wrong when the entry text itself is broken across % lines. So we use a small indentation and put up with long leaders. % % \hangafter is reset to 1 (which is the value we want) at the start % of each paragraph, so we need not do anything with that. \hangindent = 2em % % When the entry text needs to be broken, just fill out the first line % with blank space. \rightskip = 0pt plus1fil % % A bit of stretch before each entry for the benefit of balancing % columns. \vskip 0pt plus1pt % % When reading the text of entry, convert explicit line breaks % from @* into spaces. The user might give these in long section % titles, for instance. \def\*{\unskip\space\ignorespaces}% \def\entrybreak{\hfil\break}% % % Swallow the left brace of the text (first parameter): \afterassignment\doentry \let\temp = } \def\entrybreak{\unskip\space\ignorespaces}% \def\doentry{% \bgroup % Instead of the swallowed brace. \noindent \aftergroup\finishentry % And now comes the text of the entry. } \def\finishentry#1{% % #1 is the page number. % % The following is kludged to not output a line of dots in the index if % there are no page numbers. The next person who breaks this will be % cursed by a Unix daemon. \setbox\boxA = \hbox{#1}% \ifdim\wd\boxA = 0pt \ % \else % % If we must, put the page number on a line of its own, and fill out % this line with blank space. (The \hfil is overwhelmed with the % fill leaders glue in \indexdotfill if the page number does fit.) \hfil\penalty50 \null\nobreak\indexdotfill % Have leaders before the page number. % % The `\ ' here is removed by the implicit \unskip that TeX does as % part of (the primitive) \par. Without it, a spurious underfull % \hbox ensues. \ifpdf \pdfgettoks#1.% \ \the\toksA \else \ #1% \fi \fi \par \endgroup } % Like plain.tex's \dotfill, except uses up at least 1 em. \def\indexdotfill{\cleaders \hbox{$\mathsurround=0pt \mkern1.5mu.\mkern1.5mu$}\hskip 1em plus 1fill} \def\primary #1{\line{#1\hfil}} \newskip\secondaryindent \secondaryindent=0.5cm \def\secondary#1#2{{% \parfillskip=0in \parskip=0in \hangindent=1in \hangafter=1 \noindent\hskip\secondaryindent\hbox{#1}\indexdotfill \ifpdf \pdfgettoks#2.\ \the\toksA % The page number ends the paragraph. \else #2 \fi \par }} % Define two-column mode, which we use to typeset indexes. % Adapted from the TeXbook, page 416, which is to say, % the manmac.tex format used to print the TeXbook itself. \catcode`\@=11 \newbox\partialpage \newdimen\doublecolumnhsize \def\begindoublecolumns{\begingroup % ended by \enddoublecolumns % Grab any single-column material above us. \output = {% % % Here is a possibility not foreseen in manmac: if we accumulate a % whole lot of material, we might end up calling this \output % routine twice in a row (see the doublecol-lose test, which is % essentially a couple of indexes with @setchapternewpage off). In % that case we just ship out what is in \partialpage with the normal % output routine. Generally, \partialpage will be empty when this % runs and this will be a no-op. See the indexspread.tex test case. \ifvoid\partialpage \else \onepageout{\pagecontents\partialpage}% \fi % \global\setbox\partialpage = \vbox{% % Unvbox the main output page. \unvbox\PAGE \kern-\topskip \kern\baselineskip }% }% \eject % run that output routine to set \partialpage % % Use the double-column output routine for subsequent pages. \output = {\doublecolumnout}% % % Change the page size parameters. We could do this once outside this % routine, in each of @smallbook, @afourpaper, and the default 8.5x11 % format, but then we repeat the same computation. Repeating a couple % of assignments once per index is clearly meaningless for the % execution time, so we may as well do it in one place. % % First we halve the line length, less a little for the gutter between % the columns. We compute the gutter based on the line length, so it % changes automatically with the paper format. The magic constant % below is chosen so that the gutter has the same value (well, +-<1pt) % as it did when we hard-coded it. % % We put the result in a separate register, \doublecolumhsize, so we % can restore it in \pagesofar, after \hsize itself has (potentially) % been clobbered. % \doublecolumnhsize = \hsize \advance\doublecolumnhsize by -.04154\hsize \divide\doublecolumnhsize by 2 \hsize = \doublecolumnhsize % % Double the \vsize as well. (We don't need a separate register here, % since nobody clobbers \vsize.) \vsize = 2\vsize } % The double-column output routine for all double-column pages except % the last. % \def\doublecolumnout{% \splittopskip=\topskip \splitmaxdepth=\maxdepth % Get the available space for the double columns -- the normal % (undoubled) page height minus any material left over from the % previous page. \dimen@ = \vsize \divide\dimen@ by 2 \advance\dimen@ by -\ht\partialpage % % box0 will be the left-hand column, box2 the right. \setbox0=\vsplit255 to\dimen@ \setbox2=\vsplit255 to\dimen@ \onepageout\pagesofar \unvbox255 \penalty\outputpenalty } % % Re-output the contents of the output page -- any previous material, % followed by the two boxes we just split, in box0 and box2. \def\pagesofar{% \unvbox\partialpage % \hsize = \doublecolumnhsize \wd0=\hsize \wd2=\hsize \hbox to\pagewidth{\box0\hfil\box2}% } % % All done with double columns. \def\enddoublecolumns{% % The following penalty ensures that the page builder is exercised % _before_ we change the output routine. This is necessary in the % following situation: % % The last section of the index consists only of a single entry. % Before this section, \pagetotal is less than \pagegoal, so no % break occurs before the last section starts. However, the last % section, consisting of \initial and the single \entry, does not % fit on the page and has to be broken off. Without the following % penalty the page builder will not be exercised until \eject % below, and by that time we'll already have changed the output % routine to the \balancecolumns version, so the next-to-last % double-column page will be processed with \balancecolumns, which % is wrong: The two columns will go to the main vertical list, with % the broken-off section in the recent contributions. As soon as % the output routine finishes, TeX starts reconsidering the page % break. The two columns and the broken-off section both fit on the % page, because the two columns now take up only half of the page % goal. When TeX sees \eject from below which follows the final % section, it invokes the new output routine that we've set after % \balancecolumns below; \onepageout will try to fit the two columns % and the final section into the vbox of \pageheight (see % \pagebody), causing an overfull box. % % Note that glue won't work here, because glue does not exercise the % page builder, unlike penalties (see The TeXbook, pp. 280-281). \penalty0 % \output = {% % Split the last of the double-column material. Leave it on the % current page, no automatic page break. \balancecolumns % % If we end up splitting too much material for the current page, % though, there will be another page break right after this \output % invocation ends. Having called \balancecolumns once, we do not % want to call it again. Therefore, reset \output to its normal % definition right away. (We hope \balancecolumns will never be % called on to balance too much material, but if it is, this makes % the output somewhat more palatable.) \global\output = {\onepageout{\pagecontents\PAGE}}% }% \eject \endgroup % started in \begindoublecolumns % % \pagegoal was set to the doubled \vsize above, since we restarted % the current page. We're now back to normal single-column % typesetting, so reset \pagegoal to the normal \vsize (after the % \endgroup where \vsize got restored). \pagegoal = \vsize } % % Called at the end of the double column material. \def\balancecolumns{% \setbox0 = \vbox{\unvbox255}% like \box255 but more efficient, see p.120. \dimen@ = \ht0 \advance\dimen@ by \topskip \advance\dimen@ by-\baselineskip \divide\dimen@ by 2 % target to split to %debug\message{final 2-column material height=\the\ht0, target=\the\dimen@.}% \splittopskip = \topskip % Loop until we get a decent breakpoint. {% \vbadness = 10000 \loop \global\setbox3 = \copy0 \global\setbox1 = \vsplit3 to \dimen@ \ifdim\ht3>\dimen@ \global\advance\dimen@ by 1pt \repeat }% %debug\message{split to \the\dimen@, column heights: \the\ht1, \the\ht3.}% \setbox0=\vbox to\dimen@{\unvbox1}% \setbox2=\vbox to\dimen@{\unvbox3}% % \pagesofar } \catcode`\@ = \other \message{sectioning,} % Chapters, sections, etc. % Let's start with @part. \outer\parseargdef\part{\partzzz{#1}} \def\partzzz#1{% \chapoddpage \null \vskip.3\vsize % move it down on the page a bit \begingroup \noindent \titlefonts\rmisbold #1\par % the text \let\lastnode=\empty % no node to associate with \writetocentry{part}{#1}{}% but put it in the toc \headingsoff % no headline or footline on the part page \chapoddpage \endgroup } % \unnumberedno is an oxymoron. But we count the unnumbered % sections so that we can refer to them unambiguously in the pdf % outlines by their "section number". We avoid collisions with chapter % numbers by starting them at 10000. (If a document ever has 10000 % chapters, we're in trouble anyway, I'm sure.) \newcount\unnumberedno \unnumberedno = 10000 \newcount\chapno \newcount\secno \secno=0 \newcount\subsecno \subsecno=0 \newcount\subsubsecno \subsubsecno=0 % This counter is funny since it counts through charcodes of letters A, B, ... \newcount\appendixno \appendixno = `\@ % % \def\appendixletter{\char\the\appendixno} % We do the following ugly conditional instead of the above simple % construct for the sake of pdftex, which needs the actual % letter in the expansion, not just typeset. % \def\appendixletter{% \ifnum\appendixno=`A A% \else\ifnum\appendixno=`B B% \else\ifnum\appendixno=`C C% \else\ifnum\appendixno=`D D% \else\ifnum\appendixno=`E E% \else\ifnum\appendixno=`F F% \else\ifnum\appendixno=`G G% \else\ifnum\appendixno=`H H% \else\ifnum\appendixno=`I I% \else\ifnum\appendixno=`J J% \else\ifnum\appendixno=`K K% \else\ifnum\appendixno=`L L% \else\ifnum\appendixno=`M M% \else\ifnum\appendixno=`N N% \else\ifnum\appendixno=`O O% \else\ifnum\appendixno=`P P% \else\ifnum\appendixno=`Q Q% \else\ifnum\appendixno=`R R% \else\ifnum\appendixno=`S S% \else\ifnum\appendixno=`T T% \else\ifnum\appendixno=`U U% \else\ifnum\appendixno=`V V% \else\ifnum\appendixno=`W W% \else\ifnum\appendixno=`X X% \else\ifnum\appendixno=`Y Y% \else\ifnum\appendixno=`Z Z% % The \the is necessary, despite appearances, because \appendixletter is % expanded while writing the .toc file. \char\appendixno is not % expandable, thus it is written literally, thus all appendixes come out % with the same letter (or @) in the toc without it. \else\char\the\appendixno \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi} % Each @chapter defines these (using marks) as the number+name, number % and name of the chapter. Page headings and footings can use % these. @section does likewise. \def\thischapter{} \def\thischapternum{} \def\thischaptername{} \def\thissection{} \def\thissectionnum{} \def\thissectionname{} \newcount\absseclevel % used to calculate proper heading level \newcount\secbase\secbase=0 % @raisesections/@lowersections modify this count % @raisesections: treat @section as chapter, @subsection as section, etc. \def\raisesections{\global\advance\secbase by -1} \let\up=\raisesections % original BFox name % @lowersections: treat @chapter as section, @section as subsection, etc. \def\lowersections{\global\advance\secbase by 1} \let\down=\lowersections % original BFox name % we only have subsub. \chardef\maxseclevel = 3 % % A numbered section within an unnumbered changes to unnumbered too. % To achieve this, remember the "biggest" unnum. sec. we are currently in: \chardef\unnlevel = \maxseclevel % % Trace whether the current chapter is an appendix or not: % \chapheadtype is "N" or "A", unnumbered chapters are ignored. \def\chapheadtype{N} % Choose a heading macro % #1 is heading type % #2 is heading level % #3 is text for heading \def\genhead#1#2#3{% % Compute the abs. sec. level: \absseclevel=#2 \advance\absseclevel by \secbase % Make sure \absseclevel doesn't fall outside the range: \ifnum \absseclevel < 0 \absseclevel = 0 \else \ifnum \absseclevel > 3 \absseclevel = 3 \fi \fi % The heading type: \def\headtype{#1}% \if \headtype U% \ifnum \absseclevel < \unnlevel \chardef\unnlevel = \absseclevel \fi \else % Check for appendix sections: \ifnum \absseclevel = 0 \edef\chapheadtype{\headtype}% \else \if \headtype A\if \chapheadtype N% \errmessage{@appendix... within a non-appendix chapter}% \fi\fi \fi % Check for numbered within unnumbered: \ifnum \absseclevel > \unnlevel \def\headtype{U}% \else \chardef\unnlevel = 3 \fi \fi % Now print the heading: \if \headtype U% \ifcase\absseclevel \unnumberedzzz{#3}% \or \unnumberedseczzz{#3}% \or \unnumberedsubseczzz{#3}% \or \unnumberedsubsubseczzz{#3}% \fi \else \if \headtype A% \ifcase\absseclevel \appendixzzz{#3}% \or \appendixsectionzzz{#3}% \or \appendixsubseczzz{#3}% \or \appendixsubsubseczzz{#3}% \fi \else \ifcase\absseclevel \chapterzzz{#3}% \or \seczzz{#3}% \or \numberedsubseczzz{#3}% \or \numberedsubsubseczzz{#3}% \fi \fi \fi \suppressfirstparagraphindent } % an interface: \def\numhead{\genhead N} \def\apphead{\genhead A} \def\unnmhead{\genhead U} % @chapter, @appendix, @unnumbered. Increment top-level counter, reset % all lower-level sectioning counters to zero. % % Also set \chaplevelprefix, which we prepend to @float sequence numbers % (e.g., figures), q.v. By default (before any chapter), that is empty. \let\chaplevelprefix = \empty % \outer\parseargdef\chapter{\numhead0{#1}} % normally numhead0 calls chapterzzz \def\chapterzzz#1{% % section resetting is \global in case the chapter is in a group, such % as an @include file. \global\secno=0 \global\subsecno=0 \global\subsubsecno=0 \global\advance\chapno by 1 % % Used for \float. \gdef\chaplevelprefix{\the\chapno.}% \resetallfloatnos % % \putwordChapter can contain complex things in translations. \toks0=\expandafter{\putwordChapter}% \message{\the\toks0 \space \the\chapno}% % % Write the actual heading. \chapmacro{#1}{Ynumbered}{\the\chapno}% % % So @section and the like are numbered underneath this chapter. \global\let\section = \numberedsec \global\let\subsection = \numberedsubsec \global\let\subsubsection = \numberedsubsubsec } \outer\parseargdef\appendix{\apphead0{#1}} % normally calls appendixzzz % \def\appendixzzz#1{% \global\secno=0 \global\subsecno=0 \global\subsubsecno=0 \global\advance\appendixno by 1 \gdef\chaplevelprefix{\appendixletter.}% \resetallfloatnos % % \putwordAppendix can contain complex things in translations. \toks0=\expandafter{\putwordAppendix}% \message{\the\toks0 \space \appendixletter}% % \chapmacro{#1}{Yappendix}{\appendixletter}% % \global\let\section = \appendixsec \global\let\subsection = \appendixsubsec \global\let\subsubsection = \appendixsubsubsec } % normally unnmhead0 calls unnumberedzzz: \outer\parseargdef\unnumbered{\unnmhead0{#1}} \def\unnumberedzzz#1{% \global\secno=0 \global\subsecno=0 \global\subsubsecno=0 \global\advance\unnumberedno by 1 % % Since an unnumbered has no number, no prefix for figures. \global\let\chaplevelprefix = \empty \resetallfloatnos % % This used to be simply \message{#1}, but TeX fully expands the % argument to \message. Therefore, if #1 contained @-commands, TeX % expanded them. For example, in `@unnumbered The @cite{Book}', TeX % expanded @cite (which turns out to cause errors because \cite is meant % to be executed, not expanded). % % Anyway, we don't want the fully-expanded definition of @cite to appear % as a result of the \message, we just want `@cite' itself. We use % \the to achieve this: TeX expands \the only once, % simply yielding the contents of . (We also do this for % the toc entries.) \toks0 = {#1}% \message{(\the\toks0)}% % \chapmacro{#1}{Ynothing}{\the\unnumberedno}% % \global\let\section = \unnumberedsec \global\let\subsection = \unnumberedsubsec \global\let\subsubsection = \unnumberedsubsubsec } % @centerchap is like @unnumbered, but the heading is centered. \outer\parseargdef\centerchap{% % Well, we could do the following in a group, but that would break % an assumption that \chapmacro is called at the outermost level. % Thus we are safer this way: --kasal, 24feb04 \let\centerparametersmaybe = \centerparameters \unnmhead0{#1}% \let\centerparametersmaybe = \relax } % @top is like @unnumbered. \let\top\unnumbered % Sections. % \outer\parseargdef\numberedsec{\numhead1{#1}} % normally calls seczzz \def\seczzz#1{% \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1 \sectionheading{#1}{sec}{Ynumbered}{\the\chapno.\the\secno}% } % normally calls appendixsectionzzz: \outer\parseargdef\appendixsection{\apphead1{#1}} \def\appendixsectionzzz#1{% \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1 \sectionheading{#1}{sec}{Yappendix}{\appendixletter.\the\secno}% } \let\appendixsec\appendixsection % normally calls unnumberedseczzz: \outer\parseargdef\unnumberedsec{\unnmhead1{#1}} \def\unnumberedseczzz#1{% \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1 \sectionheading{#1}{sec}{Ynothing}{\the\unnumberedno.\the\secno}% } % Subsections. % % normally calls numberedsubseczzz: \outer\parseargdef\numberedsubsec{\numhead2{#1}} \def\numberedsubseczzz#1{% \global\subsubsecno=0 \global\advance\subsecno by 1 \sectionheading{#1}{subsec}{Ynumbered}{\the\chapno.\the\secno.\the\subsecno}% } % normally calls appendixsubseczzz: \outer\parseargdef\appendixsubsec{\apphead2{#1}} \def\appendixsubseczzz#1{% \global\subsubsecno=0 \global\advance\subsecno by 1 \sectionheading{#1}{subsec}{Yappendix}% {\appendixletter.\the\secno.\the\subsecno}% } % normally calls unnumberedsubseczzz: \outer\parseargdef\unnumberedsubsec{\unnmhead2{#1}} \def\unnumberedsubseczzz#1{% \global\subsubsecno=0 \global\advance\subsecno by 1 \sectionheading{#1}{subsec}{Ynothing}% {\the\unnumberedno.\the\secno.\the\subsecno}% } % Subsubsections. % % normally numberedsubsubseczzz: \outer\parseargdef\numberedsubsubsec{\numhead3{#1}} \def\numberedsubsubseczzz#1{% \global\advance\subsubsecno by 1 \sectionheading{#1}{subsubsec}{Ynumbered}% {\the\chapno.\the\secno.\the\subsecno.\the\subsubsecno}% } % normally appendixsubsubseczzz: \outer\parseargdef\appendixsubsubsec{\apphead3{#1}} \def\appendixsubsubseczzz#1{% \global\advance\subsubsecno by 1 \sectionheading{#1}{subsubsec}{Yappendix}% {\appendixletter.\the\secno.\the\subsecno.\the\subsubsecno}% } % normally unnumberedsubsubseczzz: \outer\parseargdef\unnumberedsubsubsec{\unnmhead3{#1}} \def\unnumberedsubsubseczzz#1{% \global\advance\subsubsecno by 1 \sectionheading{#1}{subsubsec}{Ynothing}% {\the\unnumberedno.\the\secno.\the\subsecno.\the\subsubsecno}% } % These macros control what the section commands do, according % to what kind of chapter we are in (ordinary, appendix, or unnumbered). % Define them by default for a numbered chapter. \let\section = \numberedsec \let\subsection = \numberedsubsec \let\subsubsection = \numberedsubsubsec % Define @majorheading, @heading and @subheading % NOTE on use of \vbox for chapter headings, section headings, and such: % 1) We use \vbox rather than the earlier \line to permit % overlong headings to fold. % 2) \hyphenpenalty is set to 10000 because hyphenation in a % heading is obnoxious; this forbids it. % 3) Likewise, headings look best if no \parindent is used, and % if justification is not attempted. Hence \raggedright. \def\majorheading{% {\advance\chapheadingskip by 10pt \chapbreak }% \parsearg\chapheadingzzz } \def\chapheading{\chapbreak \parsearg\chapheadingzzz} \def\chapheadingzzz#1{% {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 \parindent=0pt\ptexraggedright \rmisbold #1\hfill}}% \bigskip \par\penalty 200\relax \suppressfirstparagraphindent } % @heading, @subheading, @subsubheading. \parseargdef\heading{\sectionheading{#1}{sec}{Yomitfromtoc}{} \suppressfirstparagraphindent} \parseargdef\subheading{\sectionheading{#1}{subsec}{Yomitfromtoc}{} \suppressfirstparagraphindent} \parseargdef\subsubheading{\sectionheading{#1}{subsubsec}{Yomitfromtoc}{} \suppressfirstparagraphindent} % These macros generate a chapter, section, etc. heading only % (including whitespace, linebreaking, etc. around it), % given all the information in convenient, parsed form. % Args are the skip and penalty (usually negative) \def\dobreak#1#2{\par\ifdim\lastskip<#1\removelastskip\penalty#2\vskip#1\fi} % Parameter controlling skip before chapter headings (if needed) \newskip\chapheadingskip % Define plain chapter starts, and page on/off switching for it. \def\chapbreak{\dobreak \chapheadingskip {-4000}} \def\chappager{\par\vfill\supereject} % Because \domark is called before \chapoddpage, the filler page will % get the headings for the next chapter, which is wrong. But we don't % care -- we just disable all headings on the filler page. \def\chapoddpage{% \chappager \ifodd\pageno \else \begingroup \headingsoff \null \chappager \endgroup \fi } \def\setchapternewpage #1 {\csname CHAPPAG#1\endcsname} \def\CHAPPAGoff{% \global\let\contentsalignmacro = \chappager \global\let\pchapsepmacro=\chapbreak \global\let\pagealignmacro=\chappager} \def\CHAPPAGon{% \global\let\contentsalignmacro = \chappager \global\let\pchapsepmacro=\chappager \global\let\pagealignmacro=\chappager \global\def\HEADINGSon{\HEADINGSsingle}} \def\CHAPPAGodd{% \global\let\contentsalignmacro = \chapoddpage \global\let\pchapsepmacro=\chapoddpage \global\let\pagealignmacro=\chapoddpage \global\def\HEADINGSon{\HEADINGSdouble}} \CHAPPAGon % Chapter opening. % % #1 is the text, #2 is the section type (Ynumbered, Ynothing, % Yappendix, Yomitfromtoc), #3 the chapter number. % % To test against our argument. \def\Ynothingkeyword{Ynothing} \def\Yomitfromtockeyword{Yomitfromtoc} \def\Yappendixkeyword{Yappendix} % \def\chapmacro#1#2#3{% % Insert the first mark before the heading break (see notes for \domark). \let\prevchapterdefs=\lastchapterdefs \let\prevsectiondefs=\lastsectiondefs \gdef\lastsectiondefs{\gdef\thissectionname{}\gdef\thissectionnum{}% \gdef\thissection{}}% % \def\temptype{#2}% \ifx\temptype\Ynothingkeyword \gdef\lastchapterdefs{\gdef\thischaptername{#1}\gdef\thischapternum{}% \gdef\thischapter{\thischaptername}}% \else\ifx\temptype\Yomitfromtockeyword \gdef\lastchapterdefs{\gdef\thischaptername{#1}\gdef\thischapternum{}% \gdef\thischapter{}}% \else\ifx\temptype\Yappendixkeyword \toks0={#1}% \xdef\lastchapterdefs{% \gdef\noexpand\thischaptername{\the\toks0}% \gdef\noexpand\thischapternum{\appendixletter}% % \noexpand\putwordAppendix avoids expanding indigestible % commands in some of the translations. \gdef\noexpand\thischapter{\noexpand\putwordAppendix{} \noexpand\thischapternum: \noexpand\thischaptername}% }% \else \toks0={#1}% \xdef\lastchapterdefs{% \gdef\noexpand\thischaptername{\the\toks0}% \gdef\noexpand\thischapternum{\the\chapno}% % \noexpand\putwordChapter avoids expanding indigestible % commands in some of the translations. \gdef\noexpand\thischapter{\noexpand\putwordChapter{} \noexpand\thischapternum: \noexpand\thischaptername}% }% \fi\fi\fi % % Output the mark. Pass it through \safewhatsit, to take care of % the preceding space. \safewhatsit\domark % % Insert the chapter heading break. \pchapsepmacro % % Now the second mark, after the heading break. No break points % between here and the heading. \let\prevchapterdefs=\lastchapterdefs \let\prevsectiondefs=\lastsectiondefs \domark % {% \chapfonts \rmisbold % % Have to define \lastsection before calling \donoderef, because the % xref code eventually uses it. On the other hand, it has to be called % after \pchapsepmacro, or the headline will change too soon. \gdef\lastsection{#1}% % % Only insert the separating space if we have a chapter/appendix % number, and don't print the unnumbered ``number''. \ifx\temptype\Ynothingkeyword \setbox0 = \hbox{}% \def\toctype{unnchap}% \else\ifx\temptype\Yomitfromtockeyword \setbox0 = \hbox{}% contents like unnumbered, but no toc entry \def\toctype{omit}% \else\ifx\temptype\Yappendixkeyword \setbox0 = \hbox{\putwordAppendix{} #3\enspace}% \def\toctype{app}% \else \setbox0 = \hbox{#3\enspace}% \def\toctype{numchap}% \fi\fi\fi % % Write the toc entry for this chapter. Must come before the % \donoderef, because we include the current node name in the toc % entry, and \donoderef resets it to empty. \writetocentry{\toctype}{#1}{#3}% % % For pdftex, we have to write out the node definition (aka, make % the pdfdest) after any page break, but before the actual text has % been typeset. If the destination for the pdf outline is after the % text, then jumping from the outline may wind up with the text not % being visible, for instance under high magnification. \donoderef{#2}% % % Typeset the actual heading. \nobreak % Avoid page breaks at the interline glue. \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \ptexraggedright \hangindent=\wd0 \centerparametersmaybe \unhbox0 #1\par}% }% \nobreak\bigskip % no page break after a chapter title \nobreak } % @centerchap -- centered and unnumbered. \let\centerparametersmaybe = \relax \def\centerparameters{% \advance\rightskip by 3\rightskip \leftskip = \rightskip \parfillskip = 0pt } % I don't think this chapter style is supported any more, so I'm not % updating it with the new noderef stuff. We'll see. --karl, 11aug03. % \def\setchapterstyle #1 {\csname CHAPF#1\endcsname} % \def\unnchfopen #1{% \chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 \parindent=0pt\ptexraggedright \rmisbold #1\hfill}}\bigskip \par\nobreak } \def\chfopen #1#2{\chapoddpage {\chapfonts \vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}% \par\penalty 5000 % } \def\centerchfopen #1{% \chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000 \parindent=0pt \hfill {\rmisbold #1}\hfill}}\bigskip \par\nobreak } \def\CHAPFopen{% \global\let\chapmacro=\chfopen \global\let\centerchapmacro=\centerchfopen} % Section titles. These macros combine the section number parts and % call the generic \sectionheading to do the printing. % \newskip\secheadingskip \def\secheadingbreak{\dobreak \secheadingskip{-1000}} % Subsection titles. \newskip\subsecheadingskip \def\subsecheadingbreak{\dobreak \subsecheadingskip{-500}} % Subsubsection titles. \def\subsubsecheadingskip{\subsecheadingskip} \def\subsubsecheadingbreak{\subsecheadingbreak} % Print any size, any type, section title. % % #1 is the text, #2 is the section level (sec/subsec/subsubsec), #3 is % the section type for xrefs (Ynumbered, Ynothing, Yappendix), #4 is the % section number. % \def\seckeyword{sec} % \def\sectionheading#1#2#3#4{% {% \checkenv{}% should not be in an environment. % % Switch to the right set of fonts. \csname #2fonts\endcsname \rmisbold % \def\sectionlevel{#2}% \def\temptype{#3}% % % Insert first mark before the heading break (see notes for \domark). \let\prevsectiondefs=\lastsectiondefs \ifx\temptype\Ynothingkeyword \ifx\sectionlevel\seckeyword \gdef\lastsectiondefs{\gdef\thissectionname{#1}\gdef\thissectionnum{}% \gdef\thissection{\thissectionname}}% \fi \else\ifx\temptype\Yomitfromtockeyword % Don't redefine \thissection. \else\ifx\temptype\Yappendixkeyword \ifx\sectionlevel\seckeyword \toks0={#1}% \xdef\lastsectiondefs{% \gdef\noexpand\thissectionname{\the\toks0}% \gdef\noexpand\thissectionnum{#4}% % \noexpand\putwordSection avoids expanding indigestible % commands in some of the translations. \gdef\noexpand\thissection{\noexpand\putwordSection{} \noexpand\thissectionnum: \noexpand\thissectionname}% }% \fi \else \ifx\sectionlevel\seckeyword \toks0={#1}% \xdef\lastsectiondefs{% \gdef\noexpand\thissectionname{\the\toks0}% \gdef\noexpand\thissectionnum{#4}% % \noexpand\putwordSection avoids expanding indigestible % commands in some of the translations. \gdef\noexpand\thissection{\noexpand\putwordSection{} \noexpand\thissectionnum: \noexpand\thissectionname}% }% \fi \fi\fi\fi % % Go into vertical mode. Usually we'll already be there, but we % don't want the following whatsit to end up in a preceding paragraph % if the document didn't happen to have a blank line. \par % % Output the mark. Pass it through \safewhatsit, to take care of % the preceding space. \safewhatsit\domark % % Insert space above the heading. \csname #2headingbreak\endcsname % % Now the second mark, after the heading break. No break points % between here and the heading. \let\prevsectiondefs=\lastsectiondefs \domark % % Only insert the space after the number if we have a section number. \ifx\temptype\Ynothingkeyword \setbox0 = \hbox{}% \def\toctype{unn}% \gdef\lastsection{#1}% \else\ifx\temptype\Yomitfromtockeyword % for @headings -- no section number, don't include in toc, % and don't redefine \lastsection. \setbox0 = \hbox{}% \def\toctype{omit}% \let\sectionlevel=\empty \else\ifx\temptype\Yappendixkeyword \setbox0 = \hbox{#4\enspace}% \def\toctype{app}% \gdef\lastsection{#1}% \else \setbox0 = \hbox{#4\enspace}% \def\toctype{num}% \gdef\lastsection{#1}% \fi\fi\fi % % Write the toc entry (before \donoderef). See comments in \chapmacro. \writetocentry{\toctype\sectionlevel}{#1}{#4}% % % Write the node reference (= pdf destination for pdftex). % Again, see comments in \chapmacro. \donoderef{#3}% % % Interline glue will be inserted when the vbox is completed. % That glue will be a valid breakpoint for the page, since it'll be % preceded by a whatsit (usually from the \donoderef, or from the % \writetocentry if there was no node). We don't want to allow that % break, since then the whatsits could end up on page n while the % section is on page n+1, thus toc/etc. are wrong. Debian bug 276000. \nobreak % % Output the actual section heading. \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \ptexraggedright \hangindent=\wd0 % zero if no section number \unhbox0 #1}% }% % Add extra space after the heading -- half of whatever came above it. % Don't allow stretch, though. \kern .5 \csname #2headingskip\endcsname % % Do not let the kern be a potential breakpoint, as it would be if it % was followed by glue. \nobreak % % We'll almost certainly start a paragraph next, so don't let that % glue accumulate. (Not a breakpoint because it's preceded by a % discardable item.) However, when a paragraph is not started next % (\startdefun, \cartouche, \center, etc.), this needs to be wiped out % or the negative glue will cause weirdly wrong output, typically % obscuring the section heading with something else. \vskip-\parskip % % This is so the last item on the main vertical list is a known % \penalty > 10000, so \startdefun, etc., can recognize the situation % and do the needful. \penalty 10001 } \message{toc,} % Table of contents. \newwrite\tocfile % Write an entry to the toc file, opening it if necessary. % Called from @chapter, etc. % % Example usage: \writetocentry{sec}{Section Name}{\the\chapno.\the\secno} % We append the current node name (if any) and page number as additional % arguments for the \{chap,sec,...}entry macros which will eventually % read this. The node name is used in the pdf outlines as the % destination to jump to. % % We open the .toc file for writing here instead of at @setfilename (or % any other fixed time) so that @contents can be anywhere in the document. % But if #1 is `omit', then we don't do anything. This is used for the % table of contents chapter openings themselves. % \newif\iftocfileopened \def\omitkeyword{omit}% % \def\writetocentry#1#2#3{% \edef\writetoctype{#1}% \ifx\writetoctype\omitkeyword \else \iftocfileopened\else \immediate\openout\tocfile = \jobname.toc \global\tocfileopenedtrue \fi % \iflinks {\atdummies \edef\temp{% \write\tocfile{@#1entry{#2}{#3}{\lastnode}{\noexpand\folio}}}% \temp }% \fi \fi % % Tell \shipout to create a pdf destination on each page, if we're % writing pdf. These are used in the table of contents. We can't % just write one on every page because the title pages are numbered % 1 and 2 (the page numbers aren't printed), and so are the first % two pages of the document. Thus, we'd have two destinations named % `1', and two named `2'. \ifpdf \global\pdfmakepagedesttrue \fi } % These characters do not print properly in the Computer Modern roman % fonts, so we must take special care. This is more or less redundant % with the Texinfo input format setup at the end of this file. % \def\activecatcodes{% \catcode`\"=\active \catcode`\$=\active \catcode`\<=\active \catcode`\>=\active \catcode`\\=\active \catcode`\^=\active \catcode`\_=\active \catcode`\|=\active \catcode`\~=\active } % Read the toc file, which is essentially Texinfo input. \def\readtocfile{% \setupdatafile \activecatcodes \input \tocreadfilename } \newskip\contentsrightmargin \contentsrightmargin=1in \newcount\savepageno \newcount\lastnegativepageno \lastnegativepageno = -1 % Prepare to read what we've written to \tocfile. % \def\startcontents#1{% % If @setchapternewpage on, and @headings double, the contents should % start on an odd page, unlike chapters. Thus, we maintain % \contentsalignmacro in parallel with \pagealignmacro. % From: Torbjorn Granlund \contentsalignmacro \immediate\closeout\tocfile % % Don't need to put `Contents' or `Short Contents' in the headline. % It is abundantly clear what they are. \chapmacro{#1}{Yomitfromtoc}{}% % \savepageno = \pageno \begingroup % Set up to handle contents files properly. \raggedbottom % Worry more about breakpoints than the bottom. \advance\hsize by -\contentsrightmargin % Don't use the full line length. % % Roman numerals for page numbers. \ifnum \pageno>0 \global\pageno = \lastnegativepageno \fi } % redefined for the two-volume lispref. We always output on % \jobname.toc even if this is redefined. % \def\tocreadfilename{\jobname.toc} % Normal (long) toc. % \def\contents{% \startcontents{\putwordTOC}% \openin 1 \tocreadfilename\space \ifeof 1 \else \readtocfile \fi \vfill \eject \contentsalignmacro % in case @setchapternewpage odd is in effect \ifeof 1 \else \pdfmakeoutlines \fi \closein 1 \endgroup \lastnegativepageno = \pageno \global\pageno = \savepageno } % And just the chapters. \def\summarycontents{% \startcontents{\putwordShortTOC}% % \let\partentry = \shortpartentry \let\numchapentry = \shortchapentry \let\appentry = \shortchapentry \let\unnchapentry = \shortunnchapentry % We want a true roman here for the page numbers. \secfonts \let\rm=\shortcontrm \let\bf=\shortcontbf \let\sl=\shortcontsl \let\tt=\shortconttt \rm \hyphenpenalty = 10000 \advance\baselineskip by 1pt % Open it up a little. \def\numsecentry##1##2##3##4{} \let\appsecentry = \numsecentry \let\unnsecentry = \numsecentry \let\numsubsecentry = \numsecentry \let\appsubsecentry = \numsecentry \let\unnsubsecentry = \numsecentry \let\numsubsubsecentry = \numsecentry \let\appsubsubsecentry = \numsecentry \let\unnsubsubsecentry = \numsecentry \openin 1 \tocreadfilename\space \ifeof 1 \else \readtocfile \fi \closein 1 \vfill \eject \contentsalignmacro % in case @setchapternewpage odd is in effect \endgroup \lastnegativepageno = \pageno \global\pageno = \savepageno } \let\shortcontents = \summarycontents % Typeset the label for a chapter or appendix for the short contents. % The arg is, e.g., `A' for an appendix, or `3' for a chapter. % \def\shortchaplabel#1{% % This space should be enough, since a single number is .5em, and the % widest letter (M) is 1em, at least in the Computer Modern fonts. % But use \hss just in case. % (This space doesn't include the extra space that gets added after % the label; that gets put in by \shortchapentry above.) % % We'd like to right-justify chapter numbers, but that looks strange % with appendix letters. And right-justifying numbers and % left-justifying letters looks strange when there is less than 10 % chapters. Have to read the whole toc once to know how many chapters % there are before deciding ... \hbox to 1em{#1\hss}% } % These macros generate individual entries in the table of contents. % The first argument is the chapter or section name. % The last argument is the page number. % The arguments in between are the chapter number, section number, ... % Parts, in the main contents. Replace the part number, which doesn't % exist, with an empty box. Let's hope all the numbers have the same width. % Also ignore the page number, which is conventionally not printed. \def\numeralbox{\setbox0=\hbox{8}\hbox to \wd0{\hfil}} \def\partentry#1#2#3#4{\dochapentry{\numeralbox\labelspace#1}{}} % % Parts, in the short toc. \def\shortpartentry#1#2#3#4{% \penalty-300 \vskip.5\baselineskip plus.15\baselineskip minus.1\baselineskip \shortchapentry{{\bf #1}}{\numeralbox}{}{}% } % Chapters, in the main contents. \def\numchapentry#1#2#3#4{\dochapentry{#2\labelspace#1}{#4}} % % Chapters, in the short toc. % See comments in \dochapentry re vbox and related settings. \def\shortchapentry#1#2#3#4{% \tocentry{\shortchaplabel{#2}\labelspace #1}{\doshortpageno\bgroup#4\egroup}% } % Appendices, in the main contents. % Need the word Appendix, and a fixed-size box. % \def\appendixbox#1{% % We use M since it's probably the widest letter. \setbox0 = \hbox{\putwordAppendix{} M}% \hbox to \wd0{\putwordAppendix{} #1\hss}} % \def\appentry#1#2#3#4{\dochapentry{\appendixbox{#2}\labelspace#1}{#4}} % Unnumbered chapters. \def\unnchapentry#1#2#3#4{\dochapentry{#1}{#4}} \def\shortunnchapentry#1#2#3#4{\tocentry{#1}{\doshortpageno\bgroup#4\egroup}} % Sections. \def\numsecentry#1#2#3#4{\dosecentry{#2\labelspace#1}{#4}} \let\appsecentry=\numsecentry \def\unnsecentry#1#2#3#4{\dosecentry{#1}{#4}} % Subsections. \def\numsubsecentry#1#2#3#4{\dosubsecentry{#2\labelspace#1}{#4}} \let\appsubsecentry=\numsubsecentry \def\unnsubsecentry#1#2#3#4{\dosubsecentry{#1}{#4}} % And subsubsections. \def\numsubsubsecentry#1#2#3#4{\dosubsubsecentry{#2\labelspace#1}{#4}} \let\appsubsubsecentry=\numsubsubsecentry \def\unnsubsubsecentry#1#2#3#4{\dosubsubsecentry{#1}{#4}} % This parameter controls the indentation of the various levels. % Same as \defaultparindent. \newdimen\tocindent \tocindent = 15pt % Now for the actual typesetting. In all these, #1 is the text and #2 is the % page number. % % If the toc has to be broken over pages, we want it to be at chapters % if at all possible; hence the \penalty. \def\dochapentry#1#2{% \penalty-300 \vskip1\baselineskip plus.33\baselineskip minus.25\baselineskip \begingroup \chapentryfonts \tocentry{#1}{\dopageno\bgroup#2\egroup}% \endgroup \nobreak\vskip .25\baselineskip plus.1\baselineskip } \def\dosecentry#1#2{\begingroup \secentryfonts \leftskip=\tocindent \tocentry{#1}{\dopageno\bgroup#2\egroup}% \endgroup} \def\dosubsecentry#1#2{\begingroup \subsecentryfonts \leftskip=2\tocindent \tocentry{#1}{\dopageno\bgroup#2\egroup}% \endgroup} \def\dosubsubsecentry#1#2{\begingroup \subsubsecentryfonts \leftskip=3\tocindent \tocentry{#1}{\dopageno\bgroup#2\egroup}% \endgroup} % We use the same \entry macro as for the index entries. \let\tocentry = \entry % Space between chapter (or whatever) number and the title. \def\labelspace{\hskip1em \relax} \def\dopageno#1{{\rm #1}} \def\doshortpageno#1{{\rm #1}} \def\chapentryfonts{\secfonts \rm} \def\secentryfonts{\textfonts} \def\subsecentryfonts{\textfonts} \def\subsubsecentryfonts{\textfonts} \message{environments,} % @foo ... @end foo. % @tex ... @end tex escapes into raw TeX temporarily. % One exception: @ is still an escape character, so that @end tex works. % But \@ or @@ will get a plain @ character. \envdef\tex{% \setupmarkupstyle{tex}% \catcode `\\=0 \catcode `\{=1 \catcode `\}=2 \catcode `\$=3 \catcode `\&=4 \catcode `\#=6 \catcode `\^=7 \catcode `\_=8 \catcode `\~=\active \let~=\tie \catcode `\%=14 \catcode `\+=\other \catcode `\"=\other \catcode `\|=\other \catcode `\<=\other \catcode `\>=\other \catcode`\`=\other \catcode`\'=\other \escapechar=`\\ % % ' is active in math mode (mathcode"8000). So reset it, and all our % other math active characters (just in case), to plain's definitions. \mathactive % \let\b=\ptexb \let\bullet=\ptexbullet \let\c=\ptexc \let\,=\ptexcomma \let\.=\ptexdot \let\dots=\ptexdots \let\equiv=\ptexequiv \let\!=\ptexexclam \let\i=\ptexi \let\indent=\ptexindent \let\noindent=\ptexnoindent \let\{=\ptexlbrace \let\+=\tabalign \let\}=\ptexrbrace \let\/=\ptexslash \let\*=\ptexstar \let\t=\ptext \expandafter \let\csname top\endcsname=\ptextop % outer \let\frenchspacing=\plainfrenchspacing % \def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}% \def\enddots{\relax\ifmmode\endldots\else$\mathsurround=0pt \endldots\,$\fi}% \def\@{@}% } % There is no need to define \Etex. % Define @lisp ... @end lisp. % @lisp environment forms a group so it can rebind things, % including the definition of @end lisp (which normally is erroneous). % Amount to narrow the margins by for @lisp. \newskip\lispnarrowing \lispnarrowing=0.4in % This is the definition that ^^M gets inside @lisp, @example, and other % such environments. \null is better than a space, since it doesn't % have any width. \def\lisppar{\null\endgraf} % This space is always present above and below environments. \newskip\envskipamount \envskipamount = 0pt % Make spacing and below environment symmetrical. We use \parskip here % to help in doing that, since in @example-like environments \parskip % is reset to zero; thus the \afterenvbreak inserts no space -- but the % start of the next paragraph will insert \parskip. % \def\aboveenvbreak{{% % =10000 instead of <10000 because of a special case in \itemzzz and % \sectionheading, q.v. \ifnum \lastpenalty=10000 \else \advance\envskipamount by \parskip \endgraf \ifdim\lastskip<\envskipamount \removelastskip % it's not a good place to break if the last penalty was \nobreak % or better ... \ifnum\lastpenalty<10000 \penalty-50 \fi \vskip\envskipamount \fi \fi }} \let\afterenvbreak = \aboveenvbreak % \nonarrowing is a flag. If "set", @lisp etc don't narrow margins; it will % also clear it, so that its embedded environments do the narrowing again. \let\nonarrowing=\relax % @cartouche ... @end cartouche: draw rectangle w/rounded corners around % environment contents. \font\circle=lcircle10 \newdimen\circthick \newdimen\cartouter\newdimen\cartinner \newskip\normbskip\newskip\normpskip\newskip\normlskip \circthick=\fontdimen8\circle % \def\ctl{{\circle\char'013\hskip -6pt}}% 6pt from pl file: 1/2charwidth \def\ctr{{\hskip 6pt\circle\char'010}} \def\cbl{{\circle\char'012\hskip -6pt}} \def\cbr{{\hskip 6pt\circle\char'011}} \def\carttop{\hbox to \cartouter{\hskip\lskip \ctl\leaders\hrule height\circthick\hfil\ctr \hskip\rskip}} \def\cartbot{\hbox to \cartouter{\hskip\lskip \cbl\leaders\hrule height\circthick\hfil\cbr \hskip\rskip}} % \newskip\lskip\newskip\rskip \envdef\cartouche{% \ifhmode\par\fi % can't be in the midst of a paragraph. \startsavinginserts \lskip=\leftskip \rskip=\rightskip \leftskip=0pt\rightskip=0pt % we want these *outside*. \cartinner=\hsize \advance\cartinner by-\lskip \advance\cartinner by-\rskip \cartouter=\hsize \advance\cartouter by 18.4pt % allow for 3pt kerns on either % side, and for 6pt waste from % each corner char, and rule thickness \normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip % Flag to tell @lisp, etc., not to narrow margin. \let\nonarrowing = t% % % If this cartouche directly follows a sectioning command, we need the % \parskip glue (backspaced over by default) or the cartouche can % collide with the section heading. \ifnum\lastpenalty>10000 \vskip\parskip \penalty\lastpenalty \fi % \vbox\bgroup \baselineskip=0pt\parskip=0pt\lineskip=0pt \carttop \hbox\bgroup \hskip\lskip \vrule\kern3pt \vbox\bgroup \kern3pt \hsize=\cartinner \baselineskip=\normbskip \lineskip=\normlskip \parskip=\normpskip \vskip -\parskip \comment % For explanation, see the end of def\group. } \def\Ecartouche{% \ifhmode\par\fi \kern3pt \egroup \kern3pt\vrule \hskip\rskip \egroup \cartbot \egroup \checkinserts } % This macro is called at the beginning of all the @example variants, % inside a group. \newdimen\nonfillparindent \def\nonfillstart{% \aboveenvbreak \hfuzz = 12pt % Don't be fussy \sepspaces % Make spaces be word-separators rather than space tokens. \let\par = \lisppar % don't ignore blank lines \obeylines % each line of input is a line of output \parskip = 0pt % Turn off paragraph indentation but redefine \indent to emulate % the normal \indent. \nonfillparindent=\parindent \parindent = 0pt \let\indent\nonfillindent % \emergencystretch = 0pt % don't try to avoid overfull boxes \ifx\nonarrowing\relax \advance \leftskip by \lispnarrowing \exdentamount=\lispnarrowing \else \let\nonarrowing = \relax \fi \let\exdent=\nofillexdent } \begingroup \obeyspaces % We want to swallow spaces (but not other tokens) after the fake % @indent in our nonfill-environments, where spaces are normally % active and set to @tie, resulting in them not being ignored after % @indent. \gdef\nonfillindent{\futurelet\temp\nonfillindentcheck}% \gdef\nonfillindentcheck{% \ifx\temp % \expandafter\nonfillindentgobble% \else% \leavevmode\nonfillindentbox% \fi% }% \endgroup \def\nonfillindentgobble#1{\nonfillindent} \def\nonfillindentbox{\hbox to \nonfillparindent{\hss}} % If you want all examples etc. small: @set dispenvsize small. % If you want even small examples the full size: @set dispenvsize nosmall. % This affects the following displayed environments: % @example, @display, @format, @lisp % \def\smallword{small} \def\nosmallword{nosmall} \let\SETdispenvsize\relax \def\setnormaldispenv{% \ifx\SETdispenvsize\smallword % end paragraph for sake of leading, in case document has no blank % line. This is redundant with what happens in \aboveenvbreak, but % we need to do it before changing the fonts, and it's inconvenient % to change the fonts afterward. \ifnum \lastpenalty=10000 \else \endgraf \fi \smallexamplefonts \rm \fi } \def\setsmalldispenv{% \ifx\SETdispenvsize\nosmallword \else \ifnum \lastpenalty=10000 \else \endgraf \fi \smallexamplefonts \rm \fi } % We often define two environments, @foo and @smallfoo. % Let's do it in one command. #1 is the env name, #2 the definition. \def\makedispenvdef#1#2{% \expandafter\envdef\csname#1\endcsname {\setnormaldispenv #2}% \expandafter\envdef\csname small#1\endcsname {\setsmalldispenv #2}% \expandafter\let\csname E#1\endcsname \afterenvbreak \expandafter\let\csname Esmall#1\endcsname \afterenvbreak } % Define two environment synonyms (#1 and #2) for an environment. \def\maketwodispenvdef#1#2#3{% \makedispenvdef{#1}{#3}% \makedispenvdef{#2}{#3}% } % % @lisp: indented, narrowed, typewriter font; % @example: same as @lisp. % % @smallexample and @smalllisp: use smaller fonts. % Originally contributed by Pavel@xerox. % \maketwodispenvdef{lisp}{example}{% \nonfillstart \tt\setupmarkupstyle{example}% \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special. \gobble % eat return } % @display/@smalldisplay: same as @lisp except keep current font. % \makedispenvdef{display}{% \nonfillstart \gobble } % @format/@smallformat: same as @display except don't narrow margins. % \makedispenvdef{format}{% \let\nonarrowing = t% \nonfillstart \gobble } % @flushleft: same as @format, but doesn't obey \SETdispenvsize. \envdef\flushleft{% \let\nonarrowing = t% \nonfillstart \gobble } \let\Eflushleft = \afterenvbreak % @flushright. % \envdef\flushright{% \let\nonarrowing = t% \nonfillstart \advance\leftskip by 0pt plus 1fill\relax \gobble } \let\Eflushright = \afterenvbreak % @raggedright does more-or-less normal line breaking but no right % justification. From plain.tex. \envdef\raggedright{% \rightskip0pt plus2em \spaceskip.3333em \xspaceskip.5em\relax } \let\Eraggedright\par \envdef\raggedleft{% \parindent=0pt \leftskip0pt plus2em \spaceskip.3333em \xspaceskip.5em \parfillskip=0pt \hbadness=10000 % Last line will usually be underfull, so turn off % badness reporting. } \let\Eraggedleft\par \envdef\raggedcenter{% \parindent=0pt \rightskip0pt plus1em \leftskip0pt plus1em \spaceskip.3333em \xspaceskip.5em \parfillskip=0pt \hbadness=10000 % Last line will usually be underfull, so turn off % badness reporting. } \let\Eraggedcenter\par % @quotation does normal linebreaking (hence we can't use \nonfillstart) % and narrows the margins. We keep \parskip nonzero in general, since % we're doing normal filling. So, when using \aboveenvbreak and % \afterenvbreak, temporarily make \parskip 0. % \makedispenvdef{quotation}{\quotationstart} % \def\quotationstart{% {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip \parindent=0pt % % @cartouche defines \nonarrowing to inhibit narrowing at next level down. \ifx\nonarrowing\relax \advance\leftskip by \lispnarrowing \advance\rightskip by \lispnarrowing \exdentamount = \lispnarrowing \else \let\nonarrowing = \relax \fi \parsearg\quotationlabel } % We have retained a nonzero parskip for the environment, since we're % doing normal filling. % \def\Equotation{% \par \ifx\quotationauthor\thisisundefined\else % indent a bit. \leftline{\kern 2\leftskip \sl ---\quotationauthor}% \fi {\parskip=0pt \afterenvbreak}% } \def\Esmallquotation{\Equotation} % If we're given an argument, typeset it in bold with a colon after. \def\quotationlabel#1{% \def\temp{#1}% \ifx\temp\empty \else {\bf #1: }% \fi } % LaTeX-like @verbatim...@end verbatim and @verb{...} % If we want to allow any as delimiter, % we need the curly braces so that makeinfo sees the @verb command, eg: % `@verbx...x' would look like the '@verbx' command. --janneke@gnu.org % % [Knuth]: Donald Ervin Knuth, 1996. The TeXbook. % % [Knuth] p.344; only we need to do the other characters Texinfo sets % active too. Otherwise, they get lost as the first character on a % verbatim line. \def\dospecials{% \do\ \do\\\do\{\do\}\do\$\do\&% \do\#\do\^\do\^^K\do\_\do\^^A\do\%\do\~% \do\<\do\>\do\|\do\@\do+\do\"% % Don't do the quotes -- if we do, @set txicodequoteundirected and % @set txicodequotebacktick will not have effect on @verb and % @verbatim, and ?` and !` ligatures won't get disabled. %\do\`\do\'% } % % [Knuth] p. 380 \def\uncatcodespecials{% \def\do##1{\catcode`##1=\other}\dospecials} % % Setup for the @verb command. % % Eight spaces for a tab \begingroup \catcode`\^^I=\active \gdef\tabeightspaces{\catcode`\^^I=\active\def^^I{\ \ \ \ \ \ \ \ }} \endgroup % \def\setupverb{% \tt % easiest (and conventionally used) font for verbatim \def\par{\leavevmode\endgraf}% \setupmarkupstyle{verb}% \tabeightspaces % Respect line breaks, % print special symbols as themselves, and % make each space count % must do in this order: \obeylines \uncatcodespecials \sepspaces } % Setup for the @verbatim environment % % Real tab expansion. \newdimen\tabw \setbox0=\hbox{\tt\space} \tabw=8\wd0 % tab amount % % We typeset each line of the verbatim in an \hbox, so we can handle % tabs. The \global is in case the verbatim line starts with an accent, % or some other command that starts with a begin-group. Otherwise, the % entire \verbbox would disappear at the corresponding end-group, before % it is typeset. Meanwhile, we can't have nested verbatim commands % (can we?), so the \global won't be overwriting itself. \newbox\verbbox \def\starttabbox{\global\setbox\verbbox=\hbox\bgroup} % \begingroup \catcode`\^^I=\active \gdef\tabexpand{% \catcode`\^^I=\active \def^^I{\leavevmode\egroup \dimen\verbbox=\wd\verbbox % the width so far, or since the previous tab \divide\dimen\verbbox by\tabw \multiply\dimen\verbbox by\tabw % compute previous multiple of \tabw \advance\dimen\verbbox by\tabw % advance to next multiple of \tabw \wd\verbbox=\dimen\verbbox \box\verbbox \starttabbox }% } \endgroup % start the verbatim environment. \def\setupverbatim{% \let\nonarrowing = t% \nonfillstart \tt % easiest (and conventionally used) font for verbatim % The \leavevmode here is for blank lines. Otherwise, we would % never \starttabox and the \egroup would end verbatim mode. \def\par{\leavevmode\egroup\box\verbbox\endgraf}% \tabexpand \setupmarkupstyle{verbatim}% % Respect line breaks, % print special symbols as themselves, and % make each space count. % Must do in this order: \obeylines \uncatcodespecials \sepspaces \everypar{\starttabbox}% } % Do the @verb magic: verbatim text is quoted by unique % delimiter characters. Before first delimiter expect a % right brace, after last delimiter expect closing brace: % % \def\doverb'{'#1'}'{#1} % % [Knuth] p. 382; only eat outer {} \begingroup \catcode`[=1\catcode`]=2\catcode`\{=\other\catcode`\}=\other \gdef\doverb{#1[\def\next##1#1}[##1\endgroup]\next] \endgroup % \def\verb{\begingroup\setupverb\doverb} % % % Do the @verbatim magic: define the macro \doverbatim so that % the (first) argument ends when '@end verbatim' is reached, ie: % % \def\doverbatim#1@end verbatim{#1} % % For Texinfo it's a lot easier than for LaTeX, % because texinfo's \verbatim doesn't stop at '\end{verbatim}': % we need not redefine '\', '{' and '}'. % % Inspired by LaTeX's verbatim command set [latex.ltx] % \begingroup \catcode`\ =\active \obeylines % % ignore everything up to the first ^^M, that's the newline at the end % of the @verbatim input line itself. Otherwise we get an extra blank % line in the output. \xdef\doverbatim#1^^M#2@end verbatim{#2\noexpand\end\gobble verbatim}% % We really want {...\end verbatim} in the body of the macro, but % without the active space; thus we have to use \xdef and \gobble. \endgroup % \envdef\verbatim{% \setupverbatim\doverbatim } \let\Everbatim = \afterenvbreak % @verbatiminclude FILE - insert text of file in verbatim environment. % \def\verbatiminclude{\parseargusing\filenamecatcodes\doverbatiminclude} % \def\doverbatiminclude#1{% {% \makevalueexpandable \setupverbatim \indexnofonts % Allow `@@' and other weird things in file names. \wlog{texinfo.tex: doing @verbatiminclude of #1^^J}% \input #1 \afterenvbreak }% } % @copying ... @end copying. % Save the text away for @insertcopying later. % % We save the uninterpreted tokens, rather than creating a box. % Saving the text in a box would be much easier, but then all the % typesetting commands (@smallbook, font changes, etc.) have to be done % beforehand -- and a) we want @copying to be done first in the source % file; b) letting users define the frontmatter in as flexible order as % possible is very desirable. % \def\copying{\checkenv{}\begingroup\scanargctxt\docopying} \def\docopying#1@end copying{\endgroup\def\copyingtext{#1}} % \def\insertcopying{% \begingroup \parindent = 0pt % paragraph indentation looks wrong on title page \scanexp\copyingtext \endgroup } \message{defuns,} % @defun etc. \newskip\defbodyindent \defbodyindent=.4in \newskip\defargsindent \defargsindent=50pt \newskip\deflastargmargin \deflastargmargin=18pt \newcount\defunpenalty % Start the processing of @deffn: \def\startdefun{% \ifnum\lastpenalty<10000 \medbreak \defunpenalty=10003 % Will keep this @deffn together with the % following @def command, see below. \else % If there are two @def commands in a row, we'll have a \nobreak, % which is there to keep the function description together with its % header. But if there's nothing but headers, we need to allow a % break somewhere. Check specifically for penalty 10002, inserted % by \printdefunline, instead of 10000, since the sectioning % commands also insert a nobreak penalty, and we don't want to allow % a break between a section heading and a defun. % % As a further refinement, we avoid "club" headers by signalling % with penalty of 10003 after the very first @deffn in the % sequence (see above), and penalty of 10002 after any following % @def command. \ifnum\lastpenalty=10002 \penalty2000 \else \defunpenalty=10002 \fi % % Similarly, after a section heading, do not allow a break. % But do insert the glue. \medskip % preceded by discardable penalty, so not a breakpoint \fi % \parindent=0in \advance\leftskip by \defbodyindent \exdentamount=\defbodyindent } \def\dodefunx#1{% % First, check whether we are in the right environment: \checkenv#1% % % As above, allow line break if we have multiple x headers in a row. % It's not a great place, though. \ifnum\lastpenalty=10002 \penalty3000 \else \defunpenalty=10002 \fi % % And now, it's time to reuse the body of the original defun: \expandafter\gobbledefun#1% } \def\gobbledefun#1\startdefun{} % \printdefunline \deffnheader{text} % \def\printdefunline#1#2{% \begingroup % call \deffnheader: #1#2 \endheader % common ending: \interlinepenalty = 10000 \advance\rightskip by 0pt plus 1fil\relax \endgraf \nobreak\vskip -\parskip \penalty\defunpenalty % signal to \startdefun and \dodefunx % Some of the @defun-type tags do not enable magic parentheses, % rendering the following check redundant. But we don't optimize. \checkparencounts \endgroup } \def\Edefun{\endgraf\medbreak} % \makedefun{deffn} creates \deffn, \deffnx and \Edeffn; % the only thing remaining is to define \deffnheader. % \def\makedefun#1{% \expandafter\let\csname E#1\endcsname = \Edefun \edef\temp{\noexpand\domakedefun \makecsname{#1}\makecsname{#1x}\makecsname{#1header}}% \temp } % \domakedefun \deffn \deffnx \deffnheader % % Define \deffn and \deffnx, without parameters. % \deffnheader has to be defined explicitly. % \def\domakedefun#1#2#3{% \envdef#1{% \startdefun \doingtypefnfalse % distinguish typed functions from all else \parseargusing\activeparens{\printdefunline#3}% }% \def#2{\dodefunx#1}% \def#3% } \newif\ifdoingtypefn % doing typed function? \newif\ifrettypeownline % typeset return type on its own line? % @deftypefnnewline on|off says whether the return type of typed functions % are printed on their own line. This affects @deftypefn, @deftypefun, % @deftypeop, and @deftypemethod. % \parseargdef\deftypefnnewline{% \def\temp{#1}% \ifx\temp\onword \expandafter\let\csname SETtxideftypefnnl\endcsname = \empty \else\ifx\temp\offword \expandafter\let\csname SETtxideftypefnnl\endcsname = \relax \else \errhelp = \EMsimple \errmessage{Unknown @txideftypefnnl value `\temp', must be on|off}% \fi\fi } % Untyped functions: % @deffn category name args \makedefun{deffn}{\deffngeneral{}} % @deffn category class name args \makedefun{defop}#1 {\defopon{#1\ \putwordon}} % \defopon {category on}class name args \def\defopon#1#2 {\deffngeneral{\putwordon\ \code{#2}}{#1\ \code{#2}} } % \deffngeneral {subind}category name args % \def\deffngeneral#1#2 #3 #4\endheader{% % Remember that \dosubind{fn}{foo}{} is equivalent to \doind{fn}{foo}. \dosubind{fn}{\code{#3}}{#1}% \defname{#2}{}{#3}\magicamp\defunargs{#4\unskip}% } % Typed functions: % @deftypefn category type name args \makedefun{deftypefn}{\deftypefngeneral{}} % @deftypeop category class type name args \makedefun{deftypeop}#1 {\deftypeopon{#1\ \putwordon}} % \deftypeopon {category on}class type name args \def\deftypeopon#1#2 {\deftypefngeneral{\putwordon\ \code{#2}}{#1\ \code{#2}} } % \deftypefngeneral {subind}category type name args % \def\deftypefngeneral#1#2 #3 #4 #5\endheader{% \dosubind{fn}{\code{#4}}{#1}% \doingtypefntrue \defname{#2}{#3}{#4}\defunargs{#5\unskip}% } % Typed variables: % @deftypevr category type var args \makedefun{deftypevr}{\deftypecvgeneral{}} % @deftypecv category class type var args \makedefun{deftypecv}#1 {\deftypecvof{#1\ \putwordof}} % \deftypecvof {category of}class type var args \def\deftypecvof#1#2 {\deftypecvgeneral{\putwordof\ \code{#2}}{#1\ \code{#2}} } % \deftypecvgeneral {subind}category type var args % \def\deftypecvgeneral#1#2 #3 #4 #5\endheader{% \dosubind{vr}{\code{#4}}{#1}% \defname{#2}{#3}{#4}\defunargs{#5\unskip}% } % Untyped variables: % @defvr category var args \makedefun{defvr}#1 {\deftypevrheader{#1} {} } % @defcv category class var args \makedefun{defcv}#1 {\defcvof{#1\ \putwordof}} % \defcvof {category of}class var args \def\defcvof#1#2 {\deftypecvof{#1}#2 {} } % Types: % @deftp category name args \makedefun{deftp}#1 #2 #3\endheader{% \doind{tp}{\code{#2}}% \defname{#1}{}{#2}\defunargs{#3\unskip}% } % Remaining @defun-like shortcuts: \makedefun{defun}{\deffnheader{\putwordDeffunc} } \makedefun{defmac}{\deffnheader{\putwordDefmac} } \makedefun{defspec}{\deffnheader{\putwordDefspec} } \makedefun{deftypefun}{\deftypefnheader{\putwordDeffunc} } \makedefun{defvar}{\defvrheader{\putwordDefvar} } \makedefun{defopt}{\defvrheader{\putwordDefopt} } \makedefun{deftypevar}{\deftypevrheader{\putwordDefvar} } \makedefun{defmethod}{\defopon\putwordMethodon} \makedefun{deftypemethod}{\deftypeopon\putwordMethodon} \makedefun{defivar}{\defcvof\putwordInstanceVariableof} \makedefun{deftypeivar}{\deftypecvof\putwordInstanceVariableof} % \defname, which formats the name of the @def (not the args). % #1 is the category, such as "Function". % #2 is the return type, if any. % #3 is the function name. % % We are followed by (but not passed) the arguments, if any. % \def\defname#1#2#3{% \par % Get the values of \leftskip and \rightskip as they were outside the @def... \advance\leftskip by -\defbodyindent % % Determine if we are typesetting the return type of a typed function % on a line by itself. \rettypeownlinefalse \ifdoingtypefn % doing a typed function specifically? % then check user option for putting return type on its own line: \expandafter\ifx\csname SETtxideftypefnnl\endcsname\relax \else \rettypeownlinetrue \fi \fi % % How we'll format the category name. Putting it in brackets helps % distinguish it from the body text that may end up on the next line % just below it. \def\temp{#1}% \setbox0=\hbox{\kern\deflastargmargin \ifx\temp\empty\else [\rm\temp]\fi} % % Figure out line sizes for the paragraph shape. We'll always have at % least two. \tempnum = 2 % % The first line needs space for \box0; but if \rightskip is nonzero, % we need only space for the part of \box0 which exceeds it: \dimen0=\hsize \advance\dimen0 by -\wd0 \advance\dimen0 by \rightskip % % If doing a return type on its own line, we'll have another line. \ifrettypeownline \advance\tempnum by 1 \def\maybeshapeline{0in \hsize}% \else \def\maybeshapeline{}% \fi % % The continuations: \dimen2=\hsize \advance\dimen2 by -\defargsindent % % The final paragraph shape: \parshape \tempnum 0in \dimen0 \maybeshapeline \defargsindent \dimen2 % % Put the category name at the right margin. \noindent \hbox to 0pt{% \hfil\box0 \kern-\hsize % \hsize has to be shortened this way: \kern\leftskip % Intentionally do not respect \rightskip, since we need the space. }% % % Allow all lines to be underfull without complaint: \tolerance=10000 \hbadness=10000 \exdentamount=\defbodyindent {% % defun fonts. We use typewriter by default (used to be bold) because: % . we're printing identifiers, they should be in tt in principle. % . in languages with many accents, such as Czech or French, it's % common to leave accents off identifiers. The result looks ok in % tt, but exceedingly strange in rm. % . we don't want -- and --- to be treated as ligatures. % . this still does not fix the ?` and !` ligatures, but so far no % one has made identifiers using them :). \df \tt \def\temp{#2}% text of the return type \ifx\temp\empty\else \tclose{\temp}% typeset the return type \ifrettypeownline % put return type on its own line; prohibit line break following: \hfil\vadjust{\nobreak}\break \else \space % type on same line, so just followed by a space \fi \fi % no return type #3% output function name }% {\rm\enskip}% hskip 0.5 em of \tenrm % \boldbrax % arguments will be output next, if any. } % Print arguments in slanted roman (not ttsl), inconsistently with using % tt for the name. This is because literal text is sometimes needed in % the argument list (groff manual), and ttsl and tt are not very % distinguishable. Prevent hyphenation at `-' chars. % \def\defunargs#1{% % use sl by default (not ttsl), % tt for the names. \df \sl \hyphenchar\font=0 % % On the other hand, if an argument has two dashes (for instance), we % want a way to get ttsl. Let's try @var for that. \def\var##1{{\setupmarkupstyle{var}\ttslanted{##1}}}% #1% \sl\hyphenchar\font=45 } % We want ()&[] to print specially on the defun line. % \def\activeparens{% \catcode`\(=\active \catcode`\)=\active \catcode`\[=\active \catcode`\]=\active \catcode`\&=\active } % Make control sequences which act like normal parenthesis chars. \let\lparen = ( \let\rparen = ) % Be sure that we always have a definition for `(', etc. For example, % if the fn name has parens in it, \boldbrax will not be in effect yet, % so TeX would otherwise complain about undefined control sequence. { \activeparens \global\let(=\lparen \global\let)=\rparen \global\let[=\lbrack \global\let]=\rbrack \global\let& = \& \gdef\boldbrax{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb} \gdef\magicamp{\let&=\amprm} } \newcount\parencount % If we encounter &foo, then turn on ()-hacking afterwards \newif\ifampseen \def\amprm#1 {\ampseentrue{\bf\ }} \def\parenfont{% \ifampseen % At the first level, print parens in roman, % otherwise use the default font. \ifnum \parencount=1 \rm \fi \else % The \sf parens (in \boldbrax) actually are a little bolder than % the contained text. This is especially needed for [ and ] . \sf \fi } \def\infirstlevel#1{% \ifampseen \ifnum\parencount=1 #1% \fi \fi } \def\bfafterword#1 {#1 \bf} \def\opnr{% \global\advance\parencount by 1 {\parenfont(}% \infirstlevel \bfafterword } \def\clnr{% {\parenfont)}% \infirstlevel \sl \global\advance\parencount by -1 } \newcount\brackcount \def\lbrb{% \global\advance\brackcount by 1 {\bf[}% } \def\rbrb{% {\bf]}% \global\advance\brackcount by -1 } \def\checkparencounts{% \ifnum\parencount=0 \else \badparencount \fi \ifnum\brackcount=0 \else \badbrackcount \fi } % these should not use \errmessage; the glibc manual, at least, actually % has such constructs (when documenting function pointers). \def\badparencount{% \message{Warning: unbalanced parentheses in @def...}% \global\parencount=0 } \def\badbrackcount{% \message{Warning: unbalanced square brackets in @def...}% \global\brackcount=0 } \message{macros,} % @macro. % To do this right we need a feature of e-TeX, \scantokens, % which we arrange to emulate with a temporary file in ordinary TeX. \ifx\eTeXversion\thisisundefined \newwrite\macscribble \def\scantokens#1{% \toks0={#1}% \immediate\openout\macscribble=\jobname.tmp \immediate\write\macscribble{\the\toks0}% \immediate\closeout\macscribble \input \jobname.tmp } \fi \def\scanmacro#1{\begingroup \newlinechar`\^^M \let\xeatspaces\eatspaces % % Undo catcode changes of \startcontents and \doprintindex % When called from @insertcopying or (short)caption, we need active % backslash to get it printed correctly. Previously, we had % \catcode`\\=\other instead. We'll see whether a problem appears % with macro expansion. --kasal, 19aug04 \catcode`\@=0 \catcode`\\=\active \escapechar=`\@ % % ... and for \example: \spaceisspace % % The \empty here causes a following catcode 5 newline to be eaten as % part of reading whitespace after a control sequence. It does not % eat a catcode 13 newline. There's no good way to handle the two % cases (untried: maybe e-TeX's \everyeof could help, though plain TeX % would then have different behavior). See the Macro Details node in % the manual for the workaround we recommend for macros and % line-oriented commands. % \scantokens{#1\empty}% \endgroup} \def\scanexp#1{% \edef\temp{\noexpand\scanmacro{#1}}% \temp } \newcount\paramno % Count of parameters \newtoks\macname % Macro name \newif\ifrecursive % Is it recursive? % List of all defined macros in the form % \definedummyword\macro1\definedummyword\macro2... % Currently is also contains all @aliases; the list can be split % if there is a need. \def\macrolist{} % Add the macro to \macrolist \def\addtomacrolist#1{\expandafter \addtomacrolistxxx \csname#1\endcsname} \def\addtomacrolistxxx#1{% \toks0 = \expandafter{\macrolist\definedummyword#1}% \xdef\macrolist{\the\toks0}% } % Utility routines. % This does \let #1 = #2, with \csnames; that is, % \let \csname#1\endcsname = \csname#2\endcsname % (except of course we have to play expansion games). % \def\cslet#1#2{% \expandafter\let \csname#1\expandafter\endcsname \csname#2\endcsname } % Trim leading and trailing spaces off a string. % Concepts from aro-bend problem 15 (see CTAN). {\catcode`\@=11 \gdef\eatspaces #1{\expandafter\trim@\expandafter{#1 }} \gdef\trim@ #1{\trim@@ @#1 @ #1 @ @@} \gdef\trim@@ #1@ #2@ #3@@{\trim@@@\empty #2 @} \def\unbrace#1{#1} \unbrace{\gdef\trim@@@ #1 } #2@{#1} } % Trim a single trailing ^^M off a string. {\catcode`\^^M=\other \catcode`\Q=3% \gdef\eatcr #1{\eatcra #1Q^^MQ}% \gdef\eatcra#1^^MQ{\eatcrb#1Q}% \gdef\eatcrb#1Q#2Q{#1}% } % Macro bodies are absorbed as an argument in a context where % all characters are catcode 10, 11 or 12, except \ which is active % (as in normal texinfo). It is necessary to change the definition of \ % to recognize macro arguments; this is the job of \mbodybackslash. % % Non-ASCII encodings make 8-bit characters active, so un-activate % them to avoid their expansion. Must do this non-globally, to % confine the change to the current group. % % It's necessary to have hard CRs when the macro is executed. This is % done by making ^^M (\endlinechar) catcode 12 when reading the macro % body, and then making it the \newlinechar in \scanmacro. % \def\scanctxt{% used as subroutine \catcode`\"=\other \catcode`\+=\other \catcode`\<=\other \catcode`\>=\other \catcode`\@=\other \catcode`\^=\other \catcode`\_=\other \catcode`\|=\other \catcode`\~=\other \ifx\declaredencoding\ascii \else \setnonasciicharscatcodenonglobal\other \fi } \def\scanargctxt{% used for copying and captions, not macros. \scanctxt \catcode`\\=\other \catcode`\^^M=\other } \def\macrobodyctxt{% used for @macro definitions \scanctxt \catcode`\{=\other \catcode`\}=\other \catcode`\^^M=\other \usembodybackslash } \def\macroargctxt{% used when scanning invocations \scanctxt \catcode`\\=0 } % why catcode 0 for \ in the above? To recognize \\ \{ \} as "escapes" % for the single characters \ { }. Thus, we end up with the "commands" % that would be written @\ @{ @} in a Texinfo document. % % We already have @{ and @}. For @\, we define it here, and only for % this purpose, to produce a typewriter backslash (so, the @\ that we % define for @math can't be used with @macro calls): % \def\\{\normalbackslash}% % % We would like to do this for \, too, since that is what makeinfo does. % But it is not possible, because Texinfo already has a command @, for a % cedilla accent. Documents must use @comma{} instead. % % \anythingelse will almost certainly be an error of some kind. % \mbodybackslash is the definition of \ in @macro bodies. % It maps \foo\ => \csname macarg.foo\endcsname => #N % where N is the macro parameter number. % We define \csname macarg.\endcsname to be \realbackslash, so % \\ in macro replacement text gets you a backslash. % {\catcode`@=0 @catcode`@\=@active @gdef@usembodybackslash{@let\=@mbodybackslash} @gdef@mbodybackslash#1\{@csname macarg.#1@endcsname} } \expandafter\def\csname macarg.\endcsname{\realbackslash} \def\margbackslash#1{\char`\#1 } \def\macro{\recursivefalse\parsearg\macroxxx} \def\rmacro{\recursivetrue\parsearg\macroxxx} \def\macroxxx#1{% \getargs{#1}% now \macname is the macname and \argl the arglist \ifx\argl\empty % no arguments \paramno=0\relax \else \expandafter\parsemargdef \argl;% \if\paramno>256\relax \ifx\eTeXversion\thisisundefined \errhelp = \EMsimple \errmessage{You need eTeX to compile a file with macros with more than 256 arguments} \fi \fi \fi \if1\csname ismacro.\the\macname\endcsname \message{Warning: redefining \the\macname}% \else \expandafter\ifx\csname \the\macname\endcsname \relax \else \errmessage{Macro name \the\macname\space already defined}\fi \global\cslet{macsave.\the\macname}{\the\macname}% \global\expandafter\let\csname ismacro.\the\macname\endcsname=1% \addtomacrolist{\the\macname}% \fi \begingroup \macrobodyctxt \ifrecursive \expandafter\parsermacbody \else \expandafter\parsemacbody \fi} \parseargdef\unmacro{% \if1\csname ismacro.#1\endcsname \global\cslet{#1}{macsave.#1}% \global\expandafter\let \csname ismacro.#1\endcsname=0% % Remove the macro name from \macrolist: \begingroup \expandafter\let\csname#1\endcsname \relax \let\definedummyword\unmacrodo \xdef\macrolist{\macrolist}% \endgroup \else \errmessage{Macro #1 not defined}% \fi } % Called by \do from \dounmacro on each macro. The idea is to omit any % macro definitions that have been changed to \relax. % \def\unmacrodo#1{% \ifx #1\relax % remove this \else \noexpand\definedummyword \noexpand#1% \fi } % This makes use of the obscure feature that if the last token of a % is #, then the preceding argument is delimited by % an opening brace, and that opening brace is not consumed. \def\getargs#1{\getargsxxx#1{}} \def\getargsxxx#1#{\getmacname #1 \relax\getmacargs} \def\getmacname#1 #2\relax{\macname={#1}} \def\getmacargs#1{\def\argl{#1}} % For macro processing make @ a letter so that we can make Texinfo private macro names. \edef\texiatcatcode{\the\catcode`\@} \catcode `@=11\relax % Parse the optional {params} list. Set up \paramno and \paramlist % so \defmacro knows what to do. Define \macarg.BLAH for each BLAH % in the params list to some hook where the argument si to be expanded. If % there are less than 10 arguments that hook is to be replaced by ##N where N % is the position in that list, that is to say the macro arguments are to be % defined `a la TeX in the macro body. % % That gets used by \mbodybackslash (above). % % We need to get `macro parameter char #' into several definitions. % The technique used is stolen from LaTeX: let \hash be something % unexpandable, insert that wherever you need a #, and then redefine % it to # just before using the token list produced. % % The same technique is used to protect \eatspaces till just before % the macro is used. % % If there are 10 or more arguments, a different technique is used, where the % hook remains in the body, and when macro is to be expanded the body is % processed again to replace the arguments. % % In that case, the hook is \the\toks N-1, and we simply set \toks N-1 to the % argument N value and then \edef the body (nothing else will expand because of % the catcode regime underwhich the body was input). % % If you compile with TeX (not eTeX), and you have macros with 10 or more % arguments, you need that no macro has more than 256 arguments, otherwise an % error is produced. \def\parsemargdef#1;{% \paramno=0\def\paramlist{}% \let\hash\relax \let\xeatspaces\relax \parsemargdefxxx#1,;,% % In case that there are 10 or more arguments we parse again the arguments % list to set new definitions for the \macarg.BLAH macros corresponding to % each BLAH argument. It was anyhow needed to parse already once this list % in order to count the arguments, and as macros with at most 9 arguments % are by far more frequent than macro with 10 or more arguments, defining % twice the \macarg.BLAH macros does not cost too much processing power. \ifnum\paramno<10\relax\else \paramno0\relax \parsemmanyargdef@@#1,;,% 10 or more arguments \fi } \def\parsemargdefxxx#1,{% \if#1;\let\next=\relax \else \let\next=\parsemargdefxxx \advance\paramno by 1 \expandafter\edef\csname macarg.\eatspaces{#1}\endcsname {\xeatspaces{\hash\the\paramno}}% \edef\paramlist{\paramlist\hash\the\paramno,}% \fi\next} \def\parsemmanyargdef@@#1,{% \if#1;\let\next=\relax \else \let\next=\parsemmanyargdef@@ \edef\tempb{\eatspaces{#1}}% \expandafter\def\expandafter\tempa \expandafter{\csname macarg.\tempb\endcsname}% % Note that we need some extra \noexpand\noexpand, this is because we % don't want \the to be expanded in the \parsermacbody as it uses an % \xdef . \expandafter\edef\tempa {\noexpand\noexpand\noexpand\the\toks\the\paramno}% \advance\paramno by 1\relax \fi\next} % These two commands read recursive and nonrecursive macro bodies. % (They're different since rec and nonrec macros end differently.) % \catcode `\@\texiatcatcode \long\def\parsemacbody#1@end macro% {\xdef\temp{\eatcr{#1}}\endgroup\defmacro}% \long\def\parsermacbody#1@end rmacro% {\xdef\temp{\eatcr{#1}}\endgroup\defmacro}% \catcode `\@=11\relax \let\endargs@\relax \let\nil@\relax \def\nilm@{\nil@}% \long\def\nillm@{\nil@}% % This macro is expanded during the Texinfo macro expansion, not during its % definition. It gets all the arguments values and assigns them to macros % macarg.ARGNAME % % #1 is the macro name % #2 is the list of argument names % #3 is the list of argument values \def\getargvals@#1#2#3{% \def\macargdeflist@{}% \def\saveparamlist@{#2}% Need to keep a copy for parameter expansion. \def\paramlist{#2,\nil@}% \def\macroname{#1}% \begingroup \macroargctxt \def\argvaluelist{#3,\nil@}% \def\@tempa{#3}% \ifx\@tempa\empty \setemptyargvalues@ \else \getargvals@@ \fi } % \def\getargvals@@{% \ifx\paramlist\nilm@ % Some sanity check needed here that \argvaluelist is also empty. \ifx\argvaluelist\nillm@ \else \errhelp = \EMsimple \errmessage{Too many arguments in macro `\macroname'!}% \fi \let\next\macargexpandinbody@ \else \ifx\argvaluelist\nillm@ % No more arguments values passed to macro. Set remaining named-arg % macros to empty. \let\next\setemptyargvalues@ \else % pop current arg name into \@tempb \def\@tempa##1{\pop@{\@tempb}{\paramlist}##1\endargs@}% \expandafter\@tempa\expandafter{\paramlist}% % pop current argument value into \@tempc \def\@tempa##1{\longpop@{\@tempc}{\argvaluelist}##1\endargs@}% \expandafter\@tempa\expandafter{\argvaluelist}% % Here \@tempb is the current arg name and \@tempc is the current arg value. % First place the new argument macro definition into \@tempd \expandafter\macname\expandafter{\@tempc}% \expandafter\let\csname macarg.\@tempb\endcsname\relax \expandafter\def\expandafter\@tempe\expandafter{% \csname macarg.\@tempb\endcsname}% \edef\@tempd{\long\def\@tempe{\the\macname}}% \push@\@tempd\macargdeflist@ \let\next\getargvals@@ \fi \fi \next } \def\push@#1#2{% \expandafter\expandafter\expandafter\def \expandafter\expandafter\expandafter#2% \expandafter\expandafter\expandafter{% \expandafter#1#2}% } % Replace arguments by their values in the macro body, and place the result % in macro \@tempa \def\macvalstoargs@{% % To do this we use the property that token registers that are \the'ed % within an \edef expand only once. So we are going to place all argument % values into respective token registers. % % First we save the token context, and initialize argument numbering. \begingroup \paramno0\relax % Then, for each argument number #N, we place the corresponding argument % value into a new token list register \toks#N \expandafter\putargsintokens@\saveparamlist@,;,% % Then, we expand the body so that argument are replaced by their % values. The trick for values not to be expanded themselves is that they % are within tokens and that tokens expand only once in an \edef . \edef\@tempc{\csname mac.\macroname .body\endcsname}% % Now we restore the token stack pointer to free the token list registers % which we have used, but we make sure that expanded body is saved after % group. \expandafter \endgroup \expandafter\def\expandafter\@tempa\expandafter{\@tempc}% } \def\macargexpandinbody@{% %% Define the named-macro outside of this group and then close this group. \expandafter \endgroup \macargdeflist@ % First the replace in body the macro arguments by their values, the result % is in \@tempa . \macvalstoargs@ % Then we point at the \norecurse or \gobble (for recursive) macro value % with \@tempb . \expandafter\let\expandafter\@tempb\csname mac.\macroname .recurse\endcsname % Depending on whether it is recursive or not, we need some tailing % \egroup . \ifx\@tempb\gobble \let\@tempc\relax \else \let\@tempc\egroup \fi % And now we do the real job: \edef\@tempd{\noexpand\@tempb{\macroname}\noexpand\scanmacro{\@tempa}\@tempc}% \@tempd } \def\putargsintokens@#1,{% \if#1;\let\next\relax \else \let\next\putargsintokens@ % First we allocate the new token list register, and give it a temporary % alias \@tempb . \toksdef\@tempb\the\paramno % Then we place the argument value into that token list register. \expandafter\let\expandafter\@tempa\csname macarg.#1\endcsname \expandafter\@tempb\expandafter{\@tempa}% \advance\paramno by 1\relax \fi \next } % Save the token stack pointer into macro #1 \def\texisavetoksstackpoint#1{\edef#1{\the\@cclvi}} % Restore the token stack pointer from number in macro #1 \def\texirestoretoksstackpoint#1{\expandafter\mathchardef\expandafter\@cclvi#1\relax} % newtoks that can be used non \outer . \def\texinonouternewtoks{\alloc@ 5\toks \toksdef \@cclvi} % Tailing missing arguments are set to empty \def\setemptyargvalues@{% \ifx\paramlist\nilm@ \let\next\macargexpandinbody@ \else \expandafter\setemptyargvaluesparser@\paramlist\endargs@ \let\next\setemptyargvalues@ \fi \next } \def\setemptyargvaluesparser@#1,#2\endargs@{% \expandafter\def\expandafter\@tempa\expandafter{% \expandafter\def\csname macarg.#1\endcsname{}}% \push@\@tempa\macargdeflist@ \def\paramlist{#2}% } % #1 is the element target macro % #2 is the list macro % #3,#4\endargs@ is the list value \def\pop@#1#2#3,#4\endargs@{% \def#1{#3}% \def#2{#4}% } \long\def\longpop@#1#2#3,#4\endargs@{% \long\def#1{#3}% \long\def#2{#4}% } % This defines a Texinfo @macro. There are eight cases: recursive and % nonrecursive macros of zero, one, up to nine, and many arguments. % Much magic with \expandafter here. % \xdef is used so that macro definitions will survive the file % they're defined in; @include reads the file inside a group. % \def\defmacro{% \let\hash=##% convert placeholders to macro parameter chars \ifrecursive \ifcase\paramno % 0 \expandafter\xdef\csname\the\macname\endcsname{% \noexpand\scanmacro{\temp}}% \or % 1 \expandafter\xdef\csname\the\macname\endcsname{% \bgroup\noexpand\macroargctxt \noexpand\braceorline \expandafter\noexpand\csname\the\macname xxx\endcsname}% \expandafter\xdef\csname\the\macname xxx\endcsname##1{% \egroup\noexpand\scanmacro{\temp}}% \else \ifnum\paramno<10\relax % at most 9 \expandafter\xdef\csname\the\macname\endcsname{% \bgroup\noexpand\macroargctxt \noexpand\csname\the\macname xx\endcsname}% \expandafter\xdef\csname\the\macname xx\endcsname##1{% \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}% \expandafter\expandafter \expandafter\xdef \expandafter\expandafter \csname\the\macname xxx\endcsname \paramlist{\egroup\noexpand\scanmacro{\temp}}% \else % 10 or more \expandafter\xdef\csname\the\macname\endcsname{% \noexpand\getargvals@{\the\macname}{\argl}% }% \global\expandafter\let\csname mac.\the\macname .body\endcsname\temp \global\expandafter\let\csname mac.\the\macname .recurse\endcsname\gobble \fi \fi \else \ifcase\paramno % 0 \expandafter\xdef\csname\the\macname\endcsname{% \noexpand\norecurse{\the\macname}% \noexpand\scanmacro{\temp}\egroup}% \or % 1 \expandafter\xdef\csname\the\macname\endcsname{% \bgroup\noexpand\macroargctxt \noexpand\braceorline \expandafter\noexpand\csname\the\macname xxx\endcsname}% \expandafter\xdef\csname\the\macname xxx\endcsname##1{% \egroup \noexpand\norecurse{\the\macname}% \noexpand\scanmacro{\temp}\egroup}% \else % at most 9 \ifnum\paramno<10\relax \expandafter\xdef\csname\the\macname\endcsname{% \bgroup\noexpand\macroargctxt \expandafter\noexpand\csname\the\macname xx\endcsname}% \expandafter\xdef\csname\the\macname xx\endcsname##1{% \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}% \expandafter\expandafter \expandafter\xdef \expandafter\expandafter \csname\the\macname xxx\endcsname \paramlist{% \egroup \noexpand\norecurse{\the\macname}% \noexpand\scanmacro{\temp}\egroup}% \else % 10 or more: \expandafter\xdef\csname\the\macname\endcsname{% \noexpand\getargvals@{\the\macname}{\argl}% }% \global\expandafter\let\csname mac.\the\macname .body\endcsname\temp \global\expandafter\let\csname mac.\the\macname .recurse\endcsname\norecurse \fi \fi \fi} \catcode `\@\texiatcatcode\relax \def\norecurse#1{\bgroup\cslet{#1}{macsave.#1}} % \braceorline decides whether the next nonwhitespace character is a % {. If so it reads up to the closing }, if not, it reads the whole % line. Whatever was read is then fed to the next control sequence % as an argument (by \parsebrace or \parsearg). % \def\braceorline#1{\let\macnamexxx=#1\futurelet\nchar\braceorlinexxx} \def\braceorlinexxx{% \ifx\nchar\bgroup\else \expandafter\parsearg \fi \macnamexxx} % @alias. % We need some trickery to remove the optional spaces around the equal % sign. Make them active and then expand them all to nothing. % \def\alias{\parseargusing\obeyspaces\aliasxxx} \def\aliasxxx #1{\aliasyyy#1\relax} \def\aliasyyy #1=#2\relax{% {% \expandafter\let\obeyedspace=\empty \addtomacrolist{#1}% \xdef\next{\global\let\makecsname{#1}=\makecsname{#2}}% }% \next } \message{cross references,} \newwrite\auxfile \newif\ifhavexrefs % True if xref values are known. \newif\ifwarnedxrefs % True if we warned once that they aren't known. % @inforef is relatively simple. \def\inforef #1{\inforefzzz #1,,,,**} \def\inforefzzz #1,#2,#3,#4**{% \putwordSee{} \putwordInfo{} \putwordfile{} \file{\ignorespaces #3{}}, node \samp{\ignorespaces#1{}}} % @node's only job in TeX is to define \lastnode, which is used in % cross-references. The @node line might or might not have commas, and % might or might not have spaces before the first comma, like: % @node foo , bar , ... % We don't want such trailing spaces in the node name. % \parseargdef\node{\checkenv{}\donode #1 ,\finishnodeparse} % % also remove a trailing comma, in case of something like this: % @node Help-Cross, , , Cross-refs \def\donode#1 ,#2\finishnodeparse{\dodonode #1,\finishnodeparse} \def\dodonode#1,#2\finishnodeparse{\gdef\lastnode{#1}} \let\nwnode=\node \let\lastnode=\empty % Write a cross-reference definition for the current node. #1 is the % type (Ynumbered, Yappendix, Ynothing). % \def\donoderef#1{% \ifx\lastnode\empty\else \setref{\lastnode}{#1}% \global\let\lastnode=\empty \fi } % @anchor{NAME} -- define xref target at arbitrary point. % \newcount\savesfregister % \def\savesf{\relax \ifhmode \savesfregister=\spacefactor \fi} \def\restoresf{\relax \ifhmode \spacefactor=\savesfregister \fi} \def\anchor#1{\savesf \setref{#1}{Ynothing}\restoresf \ignorespaces} % \setref{NAME}{SNT} defines a cross-reference point NAME (a node or an % anchor), which consists of three parts: % 1) NAME-title - the current sectioning name taken from \lastsection, % or the anchor name. % 2) NAME-snt - section number and type, passed as the SNT arg, or % empty for anchors. % 3) NAME-pg - the page number. % % This is called from \donoderef, \anchor, and \dofloat. In the case of % floats, there is an additional part, which is not written here: % 4) NAME-lof - the text as it should appear in a @listoffloats. % \def\setref#1#2{% \pdfmkdest{#1}% \iflinks {% \atdummies % preserve commands, but don't expand them \edef\writexrdef##1##2{% \write\auxfile{@xrdef{#1-% #1 of \setref, expanded by the \edef ##1}{##2}}% these are parameters of \writexrdef }% \toks0 = \expandafter{\lastsection}% \immediate \writexrdef{title}{\the\toks0 }% \immediate \writexrdef{snt}{\csname #2\endcsname}% \Ynumbered etc. \safewhatsit{\writexrdef{pg}{\folio}}% will be written later, at \shipout }% \fi } % @xrefautosectiontitle on|off says whether @section(ing) names are used % automatically in xrefs, if the third arg is not explicitly specified. % This was provided as a "secret" @set xref-automatic-section-title % variable, now it's official. % \parseargdef\xrefautomaticsectiontitle{% \def\temp{#1}% \ifx\temp\onword \expandafter\let\csname SETxref-automatic-section-title\endcsname = \empty \else\ifx\temp\offword \expandafter\let\csname SETxref-automatic-section-title\endcsname = \relax \else \errhelp = \EMsimple \errmessage{Unknown @xrefautomaticsectiontitle value `\temp', must be on|off}% \fi\fi } % @xref, @pxref, and @ref generate cross-references. For \xrefX, #1 is % the node name, #2 the name of the Info cross-reference, #3 the printed % node name, #4 the name of the Info file, #5 the name of the printed % manual. All but the node name can be omitted. % \def\pxref#1{\putwordsee{} \xrefX[#1,,,,,,,]} \def\xref#1{\putwordSee{} \xrefX[#1,,,,,,,]} \def\ref#1{\xrefX[#1,,,,,,,]} % \newbox\topbox \newbox\printedrefnamebox \newbox\printedmanualbox % \def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup \unsepspaces % \def\printedrefname{\ignorespaces #3}% \setbox\printedrefnamebox = \hbox{\printedrefname\unskip}% % \def\printedmanual{\ignorespaces #5}% \setbox\printedmanualbox = \hbox{\printedmanual\unskip}% % % If the printed reference name (arg #3) was not explicitly given in % the @xref, figure out what we want to use. \ifdim \wd\printedrefnamebox = 0pt % No printed node name was explicitly given. \expandafter\ifx\csname SETxref-automatic-section-title\endcsname \relax % Not auto section-title: use node name inside the square brackets. \def\printedrefname{\ignorespaces #1}% \else % Auto section-title: use chapter/section title inside % the square brackets if we have it. \ifdim \wd\printedmanualbox > 0pt % It is in another manual, so we don't have it; use node name. \def\printedrefname{\ignorespaces #1}% \else \ifhavexrefs % We (should) know the real title if we have the xref values. \def\printedrefname{\refx{#1-title}{}}% \else % Otherwise just copy the Info node name. \def\printedrefname{\ignorespaces #1}% \fi% \fi \fi \fi % % Make link in pdf output. \ifpdf {\indexnofonts \turnoffactive \makevalueexpandable % This expands tokens, so do it after making catcode changes, so _ % etc. don't get their TeX definitions. \getfilename{#4}% % \edef\pdfxrefdest{#1}% \txiescapepdf\pdfxrefdest % \leavevmode \startlink attr{/Border [0 0 0]}% \ifnum\filenamelength>0 goto file{\the\filename.pdf} name{\pdfxrefdest}% \else goto name{\pdfmkpgn{\pdfxrefdest}}% \fi }% \setcolor{\linkcolor}% \fi % % Float references are printed completely differently: "Figure 1.2" % instead of "[somenode], p.3". We distinguish them by the % LABEL-title being set to a magic string. {% % Have to otherify everything special to allow the \csname to % include an _ in the xref name, etc. \indexnofonts \turnoffactive \expandafter\global\expandafter\let\expandafter\Xthisreftitle \csname XR#1-title\endcsname }% \iffloat\Xthisreftitle % If the user specified the print name (third arg) to the ref, % print it instead of our usual "Figure 1.2". \ifdim\wd\printedrefnamebox = 0pt \refx{#1-snt}{}% \else \printedrefname \fi % % if the user also gave the printed manual name (fifth arg), append % "in MANUALNAME". \ifdim \wd\printedmanualbox > 0pt \space \putwordin{} \cite{\printedmanual}% \fi \else % node/anchor (non-float) references. % % If we use \unhbox to print the node names, TeX does not insert % empty discretionaries after hyphens, which means that it will not % find a line break at a hyphen in a node names. Since some manuals % are best written with fairly long node names, containing hyphens, % this is a loss. Therefore, we give the text of the node name % again, so it is as if TeX is seeing it for the first time. % % Cross-manual reference. Only include the "Section ``foo'' in" if % the foo is neither missing or Top. Thus, @xref{,,,foo,The Foo Manual} % outputs simply "see The Foo Manual". \ifdim \wd\printedmanualbox > 0pt % What is the 7sp about? The idea is that we also want to omit % the Section part if we would be printing "Top", since they are % clearly trying to refer to the whole manual. But, this being % TeX, we can't easily compare strings while ignoring the possible % spaces before and after in the input. By adding the arbitrary % 7sp, we make it much less likely that a real node name would % happen to have the same width as "Top" (e.g., in a monospaced font). % I hope it will never happen in practice. % % For the same basic reason, we retypeset the "Top" at every % reference, since the current font is indeterminate. % \setbox\topbox = \hbox{Top\kern7sp}% \setbox2 = \hbox{\ignorespaces \printedrefname \unskip \kern7sp}% \ifdim \wd2 > 7sp \ifdim \wd2 = \wd\topbox \else \putwordSection{} ``\printedrefname'' \putwordin{}\space \fi \fi \cite{\printedmanual}% \else % Reference in this manual. % % _ (for example) has to be the character _ for the purposes of the % control sequence corresponding to the node, but it has to expand % into the usual \leavevmode...\vrule stuff for purposes of % printing. So we \turnoffactive for the \refx-snt, back on for the % printing, back off for the \refx-pg. {\turnoffactive % Only output a following space if the -snt ref is nonempty; for % @unnumbered and @anchor, it won't be. \setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}% \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi }% % output the `[mynode]' via the macro below so it can be overridden. \xrefprintnodename\printedrefname % % But we always want a comma and a space: ,\space % % output the `page 3'. \turnoffactive \putwordpage\tie\refx{#1-pg}{}% \fi \fi \endlink \endgroup} % This macro is called from \xrefX for the `[nodename]' part of xref % output. It's a separate macro only so it can be changed more easily, % since square brackets don't work well in some documents. Particularly % one that Bob is working on :). % \def\xrefprintnodename#1{[#1]} % Things referred to by \setref. % \def\Ynothing{} \def\Yomitfromtoc{} \def\Ynumbered{% \ifnum\secno=0 \putwordChapter@tie \the\chapno \else \ifnum\subsecno=0 \putwordSection@tie \the\chapno.\the\secno \else \ifnum\subsubsecno=0 \putwordSection@tie \the\chapno.\the\secno.\the\subsecno \else \putwordSection@tie \the\chapno.\the\secno.\the\subsecno.\the\subsubsecno \fi\fi\fi } \def\Yappendix{% \ifnum\secno=0 \putwordAppendix@tie @char\the\appendixno{}% \else \ifnum\subsecno=0 \putwordSection@tie @char\the\appendixno.\the\secno \else \ifnum\subsubsecno=0 \putwordSection@tie @char\the\appendixno.\the\secno.\the\subsecno \else \putwordSection@tie @char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno \fi\fi\fi } % Define \refx{NAME}{SUFFIX} to reference a cross-reference string named NAME. % If its value is nonempty, SUFFIX is output afterward. % \def\refx#1#2{% {% \indexnofonts \otherbackslash \expandafter\global\expandafter\let\expandafter\thisrefX \csname XR#1\endcsname }% \ifx\thisrefX\relax % If not defined, say something at least. \angleleft un\-de\-fined\angleright \iflinks \ifhavexrefs {\toks0 = {#1}% avoid expansion of possibly-complex value \message{\linenumber Undefined cross reference `\the\toks0'.}}% \else \ifwarnedxrefs\else \global\warnedxrefstrue \message{Cross reference values unknown; you must run TeX again.}% \fi \fi \fi \else % It's defined, so just use it. \thisrefX \fi #2% Output the suffix in any case. } % This is the macro invoked by entries in the aux file. Usually it's % just a \def (we prepend XR to the control sequence name to avoid % collisions). But if this is a float type, we have more work to do. % \def\xrdef#1#2{% {% The node name might contain 8-bit characters, which in our current % implementation are changed to commands like @'e. Don't let these % mess up the control sequence name. \indexnofonts \turnoffactive \xdef\safexrefname{#1}% }% % \expandafter\gdef\csname XR\safexrefname\endcsname{#2}% remember this xref % % Was that xref control sequence that we just defined for a float? \expandafter\iffloat\csname XR\safexrefname\endcsname % it was a float, and we have the (safe) float type in \iffloattype. \expandafter\let\expandafter\floatlist \csname floatlist\iffloattype\endcsname % % Is this the first time we've seen this float type? \expandafter\ifx\floatlist\relax \toks0 = {\do}% yes, so just \do \else % had it before, so preserve previous elements in list. \toks0 = \expandafter{\floatlist\do}% \fi % % Remember this xref in the control sequence \floatlistFLOATTYPE, % for later use in \listoffloats. \expandafter\xdef\csname floatlist\iffloattype\endcsname{\the\toks0 {\safexrefname}}% \fi } % Read the last existing aux file, if any. No error if none exists. % \def\tryauxfile{% \openin 1 \jobname.aux \ifeof 1 \else \readdatafile{aux}% \global\havexrefstrue \fi \closein 1 } \def\setupdatafile{% \catcode`\^^@=\other \catcode`\^^A=\other \catcode`\^^B=\other \catcode`\^^C=\other \catcode`\^^D=\other \catcode`\^^E=\other \catcode`\^^F=\other \catcode`\^^G=\other \catcode`\^^H=\other \catcode`\^^K=\other \catcode`\^^L=\other \catcode`\^^N=\other \catcode`\^^P=\other \catcode`\^^Q=\other \catcode`\^^R=\other \catcode`\^^S=\other \catcode`\^^T=\other \catcode`\^^U=\other \catcode`\^^V=\other \catcode`\^^W=\other \catcode`\^^X=\other \catcode`\^^Z=\other \catcode`\^^[=\other \catcode`\^^\=\other \catcode`\^^]=\other \catcode`\^^^=\other \catcode`\^^_=\other % It was suggested to set the catcode of ^ to 7, which would allow ^^e4 etc. % in xref tags, i.e., node names. But since ^^e4 notation isn't % supported in the main text, it doesn't seem desirable. Furthermore, % that is not enough: for node names that actually contain a ^ % character, we would end up writing a line like this: 'xrdef {'hat % b-title}{'hat b} and \xrdef does a \csname...\endcsname on the first % argument, and \hat is not an expandable control sequence. It could % all be worked out, but why? Either we support ^^ or we don't. % % The other change necessary for this was to define \auxhat: % \def\auxhat{\def^{'hat }}% extra space so ok if followed by letter % and then to call \auxhat in \setq. % \catcode`\^=\other % % Special characters. Should be turned off anyway, but... \catcode`\~=\other \catcode`\[=\other \catcode`\]=\other \catcode`\"=\other \catcode`\_=\other \catcode`\|=\other \catcode`\<=\other \catcode`\>=\other \catcode`\$=\other \catcode`\#=\other \catcode`\&=\other \catcode`\%=\other \catcode`+=\other % avoid \+ for paranoia even though we've turned it off % % This is to support \ in node names and titles, since the \ % characters end up in a \csname. It's easier than % leaving it active and making its active definition an actual \ % character. What I don't understand is why it works in the *value* % of the xrdef. Seems like it should be a catcode12 \, and that % should not typeset properly. But it works, so I'm moving on for % now. --karl, 15jan04. \catcode`\\=\other % % Make the characters 128-255 be printing characters. {% \count1=128 \def\loop{% \catcode\count1=\other \advance\count1 by 1 \ifnum \count1<256 \loop \fi }% }% % % @ is our escape character in .aux files, and we need braces. \catcode`\{=1 \catcode`\}=2 \catcode`\@=0 } \def\readdatafile#1{% \begingroup \setupdatafile \input\jobname.#1 \endgroup} \message{insertions,} % including footnotes. \newcount \footnoteno % The trailing space in the following definition for supereject is % vital for proper filling; pages come out unaligned when you do a % pagealignmacro call if that space before the closing brace is % removed. (Generally, numeric constants should always be followed by a % space to prevent strange expansion errors.) \def\supereject{\par\penalty -20000\footnoteno =0 } % @footnotestyle is meaningful for Info output only. \let\footnotestyle=\comment {\catcode `\@=11 % % Auto-number footnotes. Otherwise like plain. \gdef\footnote{% \let\indent=\ptexindent \let\noindent=\ptexnoindent \global\advance\footnoteno by \@ne \edef\thisfootno{$^{\the\footnoteno}$}% % % In case the footnote comes at the end of a sentence, preserve the % extra spacing after we do the footnote number. \let\@sf\empty \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\ptexslash\fi % % Remove inadvertent blank space before typesetting the footnote number. \unskip \thisfootno\@sf \dofootnote }% % Don't bother with the trickery in plain.tex to not require the % footnote text as a parameter. Our footnotes don't need to be so general. % % Oh yes, they do; otherwise, @ifset (and anything else that uses % \parseargline) fails inside footnotes because the tokens are fixed when % the footnote is read. --karl, 16nov96. % \gdef\dofootnote{% \insert\footins\bgroup % We want to typeset this text as a normal paragraph, even if the % footnote reference occurs in (for example) a display environment. % So reset some parameters. \hsize=\pagewidth \interlinepenalty\interfootnotelinepenalty \splittopskip\ht\strutbox % top baseline for broken footnotes \splitmaxdepth\dp\strutbox \floatingpenalty\@MM \leftskip\z@skip \rightskip\z@skip \spaceskip\z@skip \xspaceskip\z@skip \parindent\defaultparindent % \smallfonts \rm % % Because we use hanging indentation in footnotes, a @noindent appears % to exdent this text, so make it be a no-op. makeinfo does not use % hanging indentation so @noindent can still be needed within footnote % text after an @example or the like (not that this is good style). \let\noindent = \relax % % Hang the footnote text off the number. Use \everypar in case the % footnote extends for more than one paragraph. \everypar = {\hang}% \textindent{\thisfootno}% % % Don't crash into the line above the footnote text. Since this % expands into a box, it must come within the paragraph, lest it % provide a place where TeX can split the footnote. \footstrut % % Invoke rest of plain TeX footnote routine. \futurelet\next\fo@t } }%end \catcode `\@=11 % In case a @footnote appears in a vbox, save the footnote text and create % the real \insert just after the vbox finished. Otherwise, the insertion % would be lost. % Similarly, if a @footnote appears inside an alignment, save the footnote % text to a box and make the \insert when a row of the table is finished. % And the same can be done for other insert classes. --kasal, 16nov03. % Replace the \insert primitive by a cheating macro. % Deeper inside, just make sure that the saved insertions are not spilled % out prematurely. % \def\startsavinginserts{% \ifx \insert\ptexinsert \let\insert\saveinsert \else \let\checkinserts\relax \fi } % This \insert replacement works for both \insert\footins{foo} and % \insert\footins\bgroup foo\egroup, but it doesn't work for \insert27{foo}. % \def\saveinsert#1{% \edef\next{\noexpand\savetobox \makeSAVEname#1}% \afterassignment\next % swallow the left brace \let\temp = } \def\makeSAVEname#1{\makecsname{SAVE\expandafter\gobble\string#1}} \def\savetobox#1{\global\setbox#1 = \vbox\bgroup \unvbox#1} \def\checksaveins#1{\ifvoid#1\else \placesaveins#1\fi} \def\placesaveins#1{% \ptexinsert \csname\expandafter\gobblesave\string#1\endcsname {\box#1}% } % eat @SAVE -- beware, all of them have catcode \other: { \def\dospecials{\do S\do A\do V\do E} \uncatcodespecials % ;-) \gdef\gobblesave @SAVE{} } % initialization: \def\newsaveins #1{% \edef\next{\noexpand\newsaveinsX \makeSAVEname#1}% \next } \def\newsaveinsX #1{% \csname newbox\endcsname #1% \expandafter\def\expandafter\checkinserts\expandafter{\checkinserts \checksaveins #1}% } % initialize: \let\checkinserts\empty \newsaveins\footins \newsaveins\margin % @image. We use the macros from epsf.tex to support this. % If epsf.tex is not installed and @image is used, we complain. % % Check for and read epsf.tex up front. If we read it only at @image % time, we might be inside a group, and then its definitions would get % undone and the next image would fail. \openin 1 = epsf.tex \ifeof 1 \else % Do not bother showing banner with epsf.tex v2.7k (available in % doc/epsf.tex and on ctan). \def\epsfannounce{\toks0 = }% \input epsf.tex \fi \closein 1 % % We will only complain once about lack of epsf.tex. \newif\ifwarnednoepsf \newhelp\noepsfhelp{epsf.tex must be installed for images to work. It is also included in the Texinfo distribution, or you can get it from ftp://tug.org/tex/epsf.tex.} % \def\image#1{% \ifx\epsfbox\thisisundefined \ifwarnednoepsf \else \errhelp = \noepsfhelp \errmessage{epsf.tex not found, images will be ignored}% \global\warnednoepsftrue \fi \else \imagexxx #1,,,,,\finish \fi } % % Arguments to @image: % #1 is (mandatory) image filename; we tack on .eps extension. % #2 is (optional) width, #3 is (optional) height. % #4 is (ignored optional) html alt text. % #5 is (ignored optional) extension. % #6 is just the usual extra ignored arg for parsing stuff. \newif\ifimagevmode \def\imagexxx#1,#2,#3,#4,#5,#6\finish{\begingroup \catcode`\^^M = 5 % in case we're inside an example \normalturnoffactive % allow _ et al. in names % If the image is by itself, center it. \ifvmode \imagevmodetrue \else \ifx\centersub\centerV % for @center @image, we need a vbox so we can have our vertical space \imagevmodetrue \vbox\bgroup % vbox has better behavior than vtop herev \fi\fi % \ifimagevmode \nobreak\medskip % Usually we'll have text after the image which will insert % \parskip glue, so insert it here too to equalize the space % above and below. \nobreak\vskip\parskip \nobreak \fi % % Leave vertical mode so that indentation from an enclosing % environment such as @quotation is respected. % However, if we're at the top level, we don't want the % normal paragraph indentation. % On the other hand, if we are in the case of @center @image, we don't % want to start a paragraph, which will create a hsize-width box and % eradicate the centering. \ifx\centersub\centerV\else \noindent \fi % % Output the image. \ifpdf \dopdfimage{#1}{#2}{#3}% \else % \epsfbox itself resets \epsf?size at each figure. \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \epsfxsize=#2\relax \fi \setbox0 = \hbox{\ignorespaces #3}\ifdim\wd0 > 0pt \epsfysize=#3\relax \fi \epsfbox{#1.eps}% \fi % \ifimagevmode \medskip % space after a standalone image \fi \ifx\centersub\centerV \egroup \fi \endgroup} % @float FLOATTYPE,LABEL,LOC ... @end float for displayed figures, tables, % etc. We don't actually implement floating yet, we always include the % float "here". But it seemed the best name for the future. % \envparseargdef\float{\eatcommaspace\eatcommaspace\dofloat#1, , ,\finish} % There may be a space before second and/or third parameter; delete it. \def\eatcommaspace#1, {#1,} % #1 is the optional FLOATTYPE, the text label for this float, typically % "Figure", "Table", "Example", etc. Can't contain commas. If omitted, % this float will not be numbered and cannot be referred to. % % #2 is the optional xref label. Also must be present for the float to % be referable. % % #3 is the optional positioning argument; for now, it is ignored. It % will somehow specify the positions allowed to float to (here, top, bottom). % % We keep a separate counter for each FLOATTYPE, which we reset at each % chapter-level command. \let\resetallfloatnos=\empty % \def\dofloat#1,#2,#3,#4\finish{% \let\thiscaption=\empty \let\thisshortcaption=\empty % % don't lose footnotes inside @float. % % BEWARE: when the floats start float, we have to issue warning whenever an % insert appears inside a float which could possibly float. --kasal, 26may04 % \startsavinginserts % % We can't be used inside a paragraph. \par % \vtop\bgroup \def\floattype{#1}% \def\floatlabel{#2}% \def\floatloc{#3}% we do nothing with this yet. % \ifx\floattype\empty \let\safefloattype=\empty \else {% % the floattype might have accents or other special characters, % but we need to use it in a control sequence name. \indexnofonts \turnoffactive \xdef\safefloattype{\floattype}% }% \fi % % If label is given but no type, we handle that as the empty type. \ifx\floatlabel\empty \else % We want each FLOATTYPE to be numbered separately (Figure 1, % Table 1, Figure 2, ...). (And if no label, no number.) % \expandafter\getfloatno\csname\safefloattype floatno\endcsname \global\advance\floatno by 1 % {% % This magic value for \lastsection is output by \setref as the % XREFLABEL-title value. \xrefX uses it to distinguish float % labels (which have a completely different output format) from % node and anchor labels. And \xrdef uses it to construct the % lists of floats. % \edef\lastsection{\floatmagic=\safefloattype}% \setref{\floatlabel}{Yfloat}% }% \fi % % start with \parskip glue, I guess. \vskip\parskip % % Don't suppress indentation if a float happens to start a section. \restorefirstparagraphindent } % we have these possibilities: % @float Foo,lbl & @caption{Cap}: Foo 1.1: Cap % @float Foo,lbl & no caption: Foo 1.1 % @float Foo & @caption{Cap}: Foo: Cap % @float Foo & no caption: Foo % @float ,lbl & Caption{Cap}: 1.1: Cap % @float ,lbl & no caption: 1.1 % @float & @caption{Cap}: Cap % @float & no caption: % \def\Efloat{% \let\floatident = \empty % % In all cases, if we have a float type, it comes first. \ifx\floattype\empty \else \def\floatident{\floattype}\fi % % If we have an xref label, the number comes next. \ifx\floatlabel\empty \else \ifx\floattype\empty \else % if also had float type, need tie first. \appendtomacro\floatident{\tie}% \fi % the number. \appendtomacro\floatident{\chaplevelprefix\the\floatno}% \fi % % Start the printed caption with what we've constructed in % \floatident, but keep it separate; we need \floatident again. \let\captionline = \floatident % \ifx\thiscaption\empty \else \ifx\floatident\empty \else \appendtomacro\captionline{: }% had ident, so need a colon between \fi % % caption text. \appendtomacro\captionline{\scanexp\thiscaption}% \fi % % If we have anything to print, print it, with space before. % Eventually this needs to become an \insert. \ifx\captionline\empty \else \vskip.5\parskip \captionline % % Space below caption. \vskip\parskip \fi % % If have an xref label, write the list of floats info. Do this % after the caption, to avoid chance of it being a breakpoint. \ifx\floatlabel\empty \else % Write the text that goes in the lof to the aux file as % \floatlabel-lof. Besides \floatident, we include the short % caption if specified, else the full caption if specified, else nothing. {% \atdummies % % since we read the caption text in the macro world, where ^^M % is turned into a normal character, we have to scan it back, so % we don't write the literal three characters "^^M" into the aux file. \scanexp{% \xdef\noexpand\gtemp{% \ifx\thisshortcaption\empty \thiscaption \else \thisshortcaption \fi }% }% \immediate\write\auxfile{@xrdef{\floatlabel-lof}{\floatident \ifx\gtemp\empty \else : \gtemp \fi}}% }% \fi \egroup % end of \vtop % % place the captured inserts % % BEWARE: when the floats start floating, we have to issue warning % whenever an insert appears inside a float which could possibly % float. --kasal, 26may04 % \checkinserts } % Append the tokens #2 to the definition of macro #1, not expanding either. % \def\appendtomacro#1#2{% \expandafter\def\expandafter#1\expandafter{#1#2}% } % @caption, @shortcaption % \def\caption{\docaption\thiscaption} \def\shortcaption{\docaption\thisshortcaption} \def\docaption{\checkenv\float \bgroup\scanargctxt\defcaption} \def\defcaption#1#2{\egroup \def#1{#2}} % The parameter is the control sequence identifying the counter we are % going to use. Create it if it doesn't exist and assign it to \floatno. \def\getfloatno#1{% \ifx#1\relax % Haven't seen this figure type before. \csname newcount\endcsname #1% % % Remember to reset this floatno at the next chap. \expandafter\gdef\expandafter\resetallfloatnos \expandafter{\resetallfloatnos #1=0 }% \fi \let\floatno#1% } % \setref calls this to get the XREFLABEL-snt value. We want an @xref % to the FLOATLABEL to expand to "Figure 3.1". We call \setref when we % first read the @float command. % \def\Yfloat{\floattype@tie \chaplevelprefix\the\floatno}% % Magic string used for the XREFLABEL-title value, so \xrefX can % distinguish floats from other xref types. \def\floatmagic{!!float!!} % #1 is the control sequence we are passed; we expand into a conditional % which is true if #1 represents a float ref. That is, the magic % \lastsection value which we \setref above. % \def\iffloat#1{\expandafter\doiffloat#1==\finish} % % #1 is (maybe) the \floatmagic string. If so, #2 will be the % (safe) float type for this float. We set \iffloattype to #2. % \def\doiffloat#1=#2=#3\finish{% \def\temp{#1}% \def\iffloattype{#2}% \ifx\temp\floatmagic } % @listoffloats FLOATTYPE - print a list of floats like a table of contents. % \parseargdef\listoffloats{% \def\floattype{#1}% floattype {% % the floattype might have accents or other special characters, % but we need to use it in a control sequence name. \indexnofonts \turnoffactive \xdef\safefloattype{\floattype}% }% % % \xrdef saves the floats as a \do-list in \floatlistSAFEFLOATTYPE. \expandafter\ifx\csname floatlist\safefloattype\endcsname \relax \ifhavexrefs % if the user said @listoffloats foo but never @float foo. \message{\linenumber No `\safefloattype' floats to list.}% \fi \else \begingroup \leftskip=\tocindent % indent these entries like a toc \let\do=\listoffloatsdo \csname floatlist\safefloattype\endcsname \endgroup \fi } % This is called on each entry in a list of floats. We're passed the % xref label, in the form LABEL-title, which is how we save it in the % aux file. We strip off the -title and look up \XRLABEL-lof, which % has the text we're supposed to typeset here. % % Figures without xref labels will not be included in the list (since % they won't appear in the aux file). % \def\listoffloatsdo#1{\listoffloatsdoentry#1\finish} \def\listoffloatsdoentry#1-title\finish{{% % Can't fully expand XR#1-lof because it can contain anything. Just % pass the control sequence. On the other hand, XR#1-pg is just the % page number, and we want to fully expand that so we can get a link % in pdf output. \toksA = \expandafter{\csname XR#1-lof\endcsname}% % % use the same \entry macro we use to generate the TOC and index. \edef\writeentry{\noexpand\entry{\the\toksA}{\csname XR#1-pg\endcsname}}% \writeentry }} \message{localization,} % For single-language documents, @documentlanguage is usually given very % early, just after @documentencoding. Single argument is the language % (de) or locale (de_DE) abbreviation. % { \catcode`\_ = \active \globaldefs=1 \parseargdef\documentlanguage{\begingroup \let_=\normalunderscore % normal _ character for filenames \tex % read txi-??.tex file in plain TeX. % Read the file by the name they passed if it exists. \openin 1 txi-#1.tex \ifeof 1 \documentlanguagetrywithoutunderscore{#1_\finish}% \else \globaldefs = 1 % everything in the txi-LL files needs to persist \input txi-#1.tex \fi \closein 1 \endgroup % end raw TeX \endgroup} % % If they passed de_DE, and txi-de_DE.tex doesn't exist, % try txi-de.tex. % \gdef\documentlanguagetrywithoutunderscore#1_#2\finish{% \openin 1 txi-#1.tex \ifeof 1 \errhelp = \nolanghelp \errmessage{Cannot read language file txi-#1.tex}% \else \globaldefs = 1 % everything in the txi-LL files needs to persist \input txi-#1.tex \fi \closein 1 } }% end of special _ catcode % \newhelp\nolanghelp{The given language definition file cannot be found or is empty. Maybe you need to install it? Putting it in the current directory should work if nowhere else does.} % This macro is called from txi-??.tex files; the first argument is the % \language name to set (without the "\lang@" prefix), the second and % third args are \{left,right}hyphenmin. % % The language names to pass are determined when the format is built. % See the etex.log file created at that time, e.g., % /usr/local/texlive/2008/texmf-var/web2c/pdftex/etex.log. % % With TeX Live 2008, etex now includes hyphenation patterns for all % available languages. This means we can support hyphenation in % Texinfo, at least to some extent. (This still doesn't solve the % accented characters problem.) % \catcode`@=11 \def\txisetlanguage#1#2#3{% % do not set the language if the name is undefined in the current TeX. \expandafter\ifx\csname lang@#1\endcsname \relax \message{no patterns for #1}% \else \global\language = \csname lang@#1\endcsname \fi % but there is no harm in adjusting the hyphenmin values regardless. \global\lefthyphenmin = #2\relax \global\righthyphenmin = #3\relax } % Helpers for encodings. % Set the catcode of characters 128 through 255 to the specified number. % \def\setnonasciicharscatcode#1{% \count255=128 \loop\ifnum\count255<256 \global\catcode\count255=#1\relax \advance\count255 by 1 \repeat } \def\setnonasciicharscatcodenonglobal#1{% \count255=128 \loop\ifnum\count255<256 \catcode\count255=#1\relax \advance\count255 by 1 \repeat } % @documentencoding sets the definition of non-ASCII characters % according to the specified encoding. % \parseargdef\documentencoding{% % Encoding being declared for the document. \def\declaredencoding{\csname #1.enc\endcsname}% % % Supported encodings: names converted to tokens in order to be able % to compare them with \ifx. \def\ascii{\csname US-ASCII.enc\endcsname}% \def\latnine{\csname ISO-8859-15.enc\endcsname}% \def\latone{\csname ISO-8859-1.enc\endcsname}% \def\lattwo{\csname ISO-8859-2.enc\endcsname}% \def\utfeight{\csname UTF-8.enc\endcsname}% % \ifx \declaredencoding \ascii \asciichardefs % \else \ifx \declaredencoding \lattwo \setnonasciicharscatcode\active \lattwochardefs % \else \ifx \declaredencoding \latone \setnonasciicharscatcode\active \latonechardefs % \else \ifx \declaredencoding \latnine \setnonasciicharscatcode\active \latninechardefs % \else \ifx \declaredencoding \utfeight \setnonasciicharscatcode\active \utfeightchardefs % \else \message{Unknown document encoding #1, ignoring.}% % \fi % utfeight \fi % latnine \fi % latone \fi % lattwo \fi % ascii } % A message to be logged when using a character that isn't available % the default font encoding (OT1). % \def\missingcharmsg#1{\message{Character missing in OT1 encoding: #1.}} % Take account of \c (plain) vs. \, (Texinfo) difference. \def\cedilla#1{\ifx\c\ptexc\c{#1}\else\,{#1}\fi} % First, make active non-ASCII characters in order for them to be % correctly categorized when TeX reads the replacement text of % macros containing the character definitions. \setnonasciicharscatcode\active % % Latin1 (ISO-8859-1) character definitions. \def\latonechardefs{% \gdef^^a0{\tie} \gdef^^a1{\exclamdown} \gdef^^a2{\missingcharmsg{CENT SIGN}} \gdef^^a3{{\pounds}} \gdef^^a4{\missingcharmsg{CURRENCY SIGN}} \gdef^^a5{\missingcharmsg{YEN SIGN}} \gdef^^a6{\missingcharmsg{BROKEN BAR}} \gdef^^a7{\S} \gdef^^a8{\"{}} \gdef^^a9{\copyright} \gdef^^aa{\ordf} \gdef^^ab{\guillemetleft} \gdef^^ac{$\lnot$} \gdef^^ad{\-} \gdef^^ae{\registeredsymbol} \gdef^^af{\={}} % \gdef^^b0{\textdegree} \gdef^^b1{$\pm$} \gdef^^b2{$^2$} \gdef^^b3{$^3$} \gdef^^b4{\'{}} \gdef^^b5{$\mu$} \gdef^^b6{\P} % \gdef^^b7{$^.$} \gdef^^b8{\cedilla\ } \gdef^^b9{$^1$} \gdef^^ba{\ordm} % \gdef^^bb{\guillemetright} \gdef^^bc{$1\over4$} \gdef^^bd{$1\over2$} \gdef^^be{$3\over4$} \gdef^^bf{\questiondown} % \gdef^^c0{\`A} \gdef^^c1{\'A} \gdef^^c2{\^A} \gdef^^c3{\~A} \gdef^^c4{\"A} \gdef^^c5{\ringaccent A} \gdef^^c6{\AE} \gdef^^c7{\cedilla C} \gdef^^c8{\`E} \gdef^^c9{\'E} \gdef^^ca{\^E} \gdef^^cb{\"E} \gdef^^cc{\`I} \gdef^^cd{\'I} \gdef^^ce{\^I} \gdef^^cf{\"I} % \gdef^^d0{\DH} \gdef^^d1{\~N} \gdef^^d2{\`O} \gdef^^d3{\'O} \gdef^^d4{\^O} \gdef^^d5{\~O} \gdef^^d6{\"O} \gdef^^d7{$\times$} \gdef^^d8{\O} \gdef^^d9{\`U} \gdef^^da{\'U} \gdef^^db{\^U} \gdef^^dc{\"U} \gdef^^dd{\'Y} \gdef^^de{\TH} \gdef^^df{\ss} % \gdef^^e0{\`a} \gdef^^e1{\'a} \gdef^^e2{\^a} \gdef^^e3{\~a} \gdef^^e4{\"a} \gdef^^e5{\ringaccent a} \gdef^^e6{\ae} \gdef^^e7{\cedilla c} \gdef^^e8{\`e} \gdef^^e9{\'e} \gdef^^ea{\^e} \gdef^^eb{\"e} \gdef^^ec{\`{\dotless i}} \gdef^^ed{\'{\dotless i}} \gdef^^ee{\^{\dotless i}} \gdef^^ef{\"{\dotless i}} % \gdef^^f0{\dh} \gdef^^f1{\~n} \gdef^^f2{\`o} \gdef^^f3{\'o} \gdef^^f4{\^o} \gdef^^f5{\~o} \gdef^^f6{\"o} \gdef^^f7{$\div$} \gdef^^f8{\o} \gdef^^f9{\`u} \gdef^^fa{\'u} \gdef^^fb{\^u} \gdef^^fc{\"u} \gdef^^fd{\'y} \gdef^^fe{\th} \gdef^^ff{\"y} } % Latin9 (ISO-8859-15) encoding character definitions. \def\latninechardefs{% % Encoding is almost identical to Latin1. \latonechardefs % \gdef^^a4{\euro} \gdef^^a6{\v S} \gdef^^a8{\v s} \gdef^^b4{\v Z} \gdef^^b8{\v z} \gdef^^bc{\OE} \gdef^^bd{\oe} \gdef^^be{\"Y} } % Latin2 (ISO-8859-2) character definitions. \def\lattwochardefs{% \gdef^^a0{\tie} \gdef^^a1{\ogonek{A}} \gdef^^a2{\u{}} \gdef^^a3{\L} \gdef^^a4{\missingcharmsg{CURRENCY SIGN}} \gdef^^a5{\v L} \gdef^^a6{\'S} \gdef^^a7{\S} \gdef^^a8{\"{}} \gdef^^a9{\v S} \gdef^^aa{\cedilla S} \gdef^^ab{\v T} \gdef^^ac{\'Z} \gdef^^ad{\-} \gdef^^ae{\v Z} \gdef^^af{\dotaccent Z} % \gdef^^b0{\textdegree} \gdef^^b1{\ogonek{a}} \gdef^^b2{\ogonek{ }} \gdef^^b3{\l} \gdef^^b4{\'{}} \gdef^^b5{\v l} \gdef^^b6{\'s} \gdef^^b7{\v{}} \gdef^^b8{\cedilla\ } \gdef^^b9{\v s} \gdef^^ba{\cedilla s} \gdef^^bb{\v t} \gdef^^bc{\'z} \gdef^^bd{\H{}} \gdef^^be{\v z} \gdef^^bf{\dotaccent z} % \gdef^^c0{\'R} \gdef^^c1{\'A} \gdef^^c2{\^A} \gdef^^c3{\u A} \gdef^^c4{\"A} \gdef^^c5{\'L} \gdef^^c6{\'C} \gdef^^c7{\cedilla C} \gdef^^c8{\v C} \gdef^^c9{\'E} \gdef^^ca{\ogonek{E}} \gdef^^cb{\"E} \gdef^^cc{\v E} \gdef^^cd{\'I} \gdef^^ce{\^I} \gdef^^cf{\v D} % \gdef^^d0{\DH} \gdef^^d1{\'N} \gdef^^d2{\v N} \gdef^^d3{\'O} \gdef^^d4{\^O} \gdef^^d5{\H O} \gdef^^d6{\"O} \gdef^^d7{$\times$} \gdef^^d8{\v R} \gdef^^d9{\ringaccent U} \gdef^^da{\'U} \gdef^^db{\H U} \gdef^^dc{\"U} \gdef^^dd{\'Y} \gdef^^de{\cedilla T} \gdef^^df{\ss} % \gdef^^e0{\'r} \gdef^^e1{\'a} \gdef^^e2{\^a} \gdef^^e3{\u a} \gdef^^e4{\"a} \gdef^^e5{\'l} \gdef^^e6{\'c} \gdef^^e7{\cedilla c} \gdef^^e8{\v c} \gdef^^e9{\'e} \gdef^^ea{\ogonek{e}} \gdef^^eb{\"e} \gdef^^ec{\v e} \gdef^^ed{\'{\dotless{i}}} \gdef^^ee{\^{\dotless{i}}} \gdef^^ef{\v d} % \gdef^^f0{\dh} \gdef^^f1{\'n} \gdef^^f2{\v n} \gdef^^f3{\'o} \gdef^^f4{\^o} \gdef^^f5{\H o} \gdef^^f6{\"o} \gdef^^f7{$\div$} \gdef^^f8{\v r} \gdef^^f9{\ringaccent u} \gdef^^fa{\'u} \gdef^^fb{\H u} \gdef^^fc{\"u} \gdef^^fd{\'y} \gdef^^fe{\cedilla t} \gdef^^ff{\dotaccent{}} } % UTF-8 character definitions. % % This code to support UTF-8 is based on LaTeX's utf8.def, with some % changes for Texinfo conventions. It is included here under the GPL by % permission from Frank Mittelbach and the LaTeX team. % \newcount\countUTFx \newcount\countUTFy \newcount\countUTFz \gdef\UTFviiiTwoOctets#1#2{\expandafter \UTFviiiDefined\csname u8:#1\string #2\endcsname} % \gdef\UTFviiiThreeOctets#1#2#3{\expandafter \UTFviiiDefined\csname u8:#1\string #2\string #3\endcsname} % \gdef\UTFviiiFourOctets#1#2#3#4{\expandafter \UTFviiiDefined\csname u8:#1\string #2\string #3\string #4\endcsname} \gdef\UTFviiiDefined#1{% \ifx #1\relax \message{\linenumber Unicode char \string #1 not defined for Texinfo}% \else \expandafter #1% \fi } \begingroup \catcode`\~13 \catcode`\"12 \def\UTFviiiLoop{% \global\catcode\countUTFx\active \uccode`\~\countUTFx \uppercase\expandafter{\UTFviiiTmp}% \advance\countUTFx by 1 \ifnum\countUTFx < \countUTFy \expandafter\UTFviiiLoop \fi} \countUTFx = "C2 \countUTFy = "E0 \def\UTFviiiTmp{% \xdef~{\noexpand\UTFviiiTwoOctets\string~}} \UTFviiiLoop \countUTFx = "E0 \countUTFy = "F0 \def\UTFviiiTmp{% \xdef~{\noexpand\UTFviiiThreeOctets\string~}} \UTFviiiLoop \countUTFx = "F0 \countUTFy = "F4 \def\UTFviiiTmp{% \xdef~{\noexpand\UTFviiiFourOctets\string~}} \UTFviiiLoop \endgroup \begingroup \catcode`\"=12 \catcode`\<=12 \catcode`\.=12 \catcode`\,=12 \catcode`\;=12 \catcode`\!=12 \catcode`\~=13 \gdef\DeclareUnicodeCharacter#1#2{% \countUTFz = "#1\relax %\wlog{\space\space defining Unicode char U+#1 (decimal \the\countUTFz)}% \begingroup \parseXMLCharref \def\UTFviiiTwoOctets##1##2{% \csname u8:##1\string ##2\endcsname}% \def\UTFviiiThreeOctets##1##2##3{% \csname u8:##1\string ##2\string ##3\endcsname}% \def\UTFviiiFourOctets##1##2##3##4{% \csname u8:##1\string ##2\string ##3\string ##4\endcsname}% \expandafter\expandafter\expandafter\expandafter \expandafter\expandafter\expandafter \gdef\UTFviiiTmp{#2}% \endgroup} \gdef\parseXMLCharref{% \ifnum\countUTFz < "A0\relax \errhelp = \EMsimple \errmessage{Cannot define Unicode char value < 00A0}% \else\ifnum\countUTFz < "800\relax \parseUTFviiiA,% \parseUTFviiiB C\UTFviiiTwoOctets.,% \else\ifnum\countUTFz < "10000\relax \parseUTFviiiA;% \parseUTFviiiA,% \parseUTFviiiB E\UTFviiiThreeOctets.{,;}% \else \parseUTFviiiA;% \parseUTFviiiA,% \parseUTFviiiA!% \parseUTFviiiB F\UTFviiiFourOctets.{!,;}% \fi\fi\fi } \gdef\parseUTFviiiA#1{% \countUTFx = \countUTFz \divide\countUTFz by 64 \countUTFy = \countUTFz \multiply\countUTFz by 64 \advance\countUTFx by -\countUTFz \advance\countUTFx by 128 \uccode `#1\countUTFx \countUTFz = \countUTFy} \gdef\parseUTFviiiB#1#2#3#4{% \advance\countUTFz by "#10\relax \uccode `#3\countUTFz \uppercase{\gdef\UTFviiiTmp{#2#3#4}}} \endgroup \def\utfeightchardefs{% \DeclareUnicodeCharacter{00A0}{\tie} \DeclareUnicodeCharacter{00A1}{\exclamdown} \DeclareUnicodeCharacter{00A3}{\pounds} \DeclareUnicodeCharacter{00A8}{\"{ }} \DeclareUnicodeCharacter{00A9}{\copyright} \DeclareUnicodeCharacter{00AA}{\ordf} \DeclareUnicodeCharacter{00AB}{\guillemetleft} \DeclareUnicodeCharacter{00AD}{\-} \DeclareUnicodeCharacter{00AE}{\registeredsymbol} \DeclareUnicodeCharacter{00AF}{\={ }} \DeclareUnicodeCharacter{00B0}{\ringaccent{ }} \DeclareUnicodeCharacter{00B4}{\'{ }} \DeclareUnicodeCharacter{00B8}{\cedilla{ }} \DeclareUnicodeCharacter{00BA}{\ordm} \DeclareUnicodeCharacter{00BB}{\guillemetright} \DeclareUnicodeCharacter{00BF}{\questiondown} \DeclareUnicodeCharacter{00C0}{\`A} \DeclareUnicodeCharacter{00C1}{\'A} \DeclareUnicodeCharacter{00C2}{\^A} \DeclareUnicodeCharacter{00C3}{\~A} \DeclareUnicodeCharacter{00C4}{\"A} \DeclareUnicodeCharacter{00C5}{\AA} \DeclareUnicodeCharacter{00C6}{\AE} \DeclareUnicodeCharacter{00C7}{\cedilla{C}} \DeclareUnicodeCharacter{00C8}{\`E} \DeclareUnicodeCharacter{00C9}{\'E} \DeclareUnicodeCharacter{00CA}{\^E} \DeclareUnicodeCharacter{00CB}{\"E} \DeclareUnicodeCharacter{00CC}{\`I} \DeclareUnicodeCharacter{00CD}{\'I} \DeclareUnicodeCharacter{00CE}{\^I} \DeclareUnicodeCharacter{00CF}{\"I} \DeclareUnicodeCharacter{00D0}{\DH} \DeclareUnicodeCharacter{00D1}{\~N} \DeclareUnicodeCharacter{00D2}{\`O} \DeclareUnicodeCharacter{00D3}{\'O} \DeclareUnicodeCharacter{00D4}{\^O} \DeclareUnicodeCharacter{00D5}{\~O} \DeclareUnicodeCharacter{00D6}{\"O} \DeclareUnicodeCharacter{00D8}{\O} \DeclareUnicodeCharacter{00D9}{\`U} \DeclareUnicodeCharacter{00DA}{\'U} \DeclareUnicodeCharacter{00DB}{\^U} \DeclareUnicodeCharacter{00DC}{\"U} \DeclareUnicodeCharacter{00DD}{\'Y} \DeclareUnicodeCharacter{00DE}{\TH} \DeclareUnicodeCharacter{00DF}{\ss} \DeclareUnicodeCharacter{00E0}{\`a} \DeclareUnicodeCharacter{00E1}{\'a} \DeclareUnicodeCharacter{00E2}{\^a} \DeclareUnicodeCharacter{00E3}{\~a} \DeclareUnicodeCharacter{00E4}{\"a} \DeclareUnicodeCharacter{00E5}{\aa} \DeclareUnicodeCharacter{00E6}{\ae} \DeclareUnicodeCharacter{00E7}{\cedilla{c}} \DeclareUnicodeCharacter{00E8}{\`e} \DeclareUnicodeCharacter{00E9}{\'e} \DeclareUnicodeCharacter{00EA}{\^e} \DeclareUnicodeCharacter{00EB}{\"e} \DeclareUnicodeCharacter{00EC}{\`{\dotless{i}}} \DeclareUnicodeCharacter{00ED}{\'{\dotless{i}}} \DeclareUnicodeCharacter{00EE}{\^{\dotless{i}}} \DeclareUnicodeCharacter{00EF}{\"{\dotless{i}}} \DeclareUnicodeCharacter{00F0}{\dh} \DeclareUnicodeCharacter{00F1}{\~n} \DeclareUnicodeCharacter{00F2}{\`o} \DeclareUnicodeCharacter{00F3}{\'o} \DeclareUnicodeCharacter{00F4}{\^o} \DeclareUnicodeCharacter{00F5}{\~o} \DeclareUnicodeCharacter{00F6}{\"o} \DeclareUnicodeCharacter{00F8}{\o} \DeclareUnicodeCharacter{00F9}{\`u} \DeclareUnicodeCharacter{00FA}{\'u} \DeclareUnicodeCharacter{00FB}{\^u} \DeclareUnicodeCharacter{00FC}{\"u} \DeclareUnicodeCharacter{00FD}{\'y} \DeclareUnicodeCharacter{00FE}{\th} \DeclareUnicodeCharacter{00FF}{\"y} \DeclareUnicodeCharacter{0100}{\=A} \DeclareUnicodeCharacter{0101}{\=a} \DeclareUnicodeCharacter{0102}{\u{A}} \DeclareUnicodeCharacter{0103}{\u{a}} \DeclareUnicodeCharacter{0104}{\ogonek{A}} \DeclareUnicodeCharacter{0105}{\ogonek{a}} \DeclareUnicodeCharacter{0106}{\'C} \DeclareUnicodeCharacter{0107}{\'c} \DeclareUnicodeCharacter{0108}{\^C} \DeclareUnicodeCharacter{0109}{\^c} \DeclareUnicodeCharacter{0118}{\ogonek{E}} \DeclareUnicodeCharacter{0119}{\ogonek{e}} \DeclareUnicodeCharacter{010A}{\dotaccent{C}} \DeclareUnicodeCharacter{010B}{\dotaccent{c}} \DeclareUnicodeCharacter{010C}{\v{C}} \DeclareUnicodeCharacter{010D}{\v{c}} \DeclareUnicodeCharacter{010E}{\v{D}} \DeclareUnicodeCharacter{0112}{\=E} \DeclareUnicodeCharacter{0113}{\=e} \DeclareUnicodeCharacter{0114}{\u{E}} \DeclareUnicodeCharacter{0115}{\u{e}} \DeclareUnicodeCharacter{0116}{\dotaccent{E}} \DeclareUnicodeCharacter{0117}{\dotaccent{e}} \DeclareUnicodeCharacter{011A}{\v{E}} \DeclareUnicodeCharacter{011B}{\v{e}} \DeclareUnicodeCharacter{011C}{\^G} \DeclareUnicodeCharacter{011D}{\^g} \DeclareUnicodeCharacter{011E}{\u{G}} \DeclareUnicodeCharacter{011F}{\u{g}} \DeclareUnicodeCharacter{0120}{\dotaccent{G}} \DeclareUnicodeCharacter{0121}{\dotaccent{g}} \DeclareUnicodeCharacter{0124}{\^H} \DeclareUnicodeCharacter{0125}{\^h} \DeclareUnicodeCharacter{0128}{\~I} \DeclareUnicodeCharacter{0129}{\~{\dotless{i}}} \DeclareUnicodeCharacter{012A}{\=I} \DeclareUnicodeCharacter{012B}{\={\dotless{i}}} \DeclareUnicodeCharacter{012C}{\u{I}} \DeclareUnicodeCharacter{012D}{\u{\dotless{i}}} \DeclareUnicodeCharacter{0130}{\dotaccent{I}} \DeclareUnicodeCharacter{0131}{\dotless{i}} \DeclareUnicodeCharacter{0132}{IJ} \DeclareUnicodeCharacter{0133}{ij} \DeclareUnicodeCharacter{0134}{\^J} \DeclareUnicodeCharacter{0135}{\^{\dotless{j}}} \DeclareUnicodeCharacter{0139}{\'L} \DeclareUnicodeCharacter{013A}{\'l} \DeclareUnicodeCharacter{0141}{\L} \DeclareUnicodeCharacter{0142}{\l} \DeclareUnicodeCharacter{0143}{\'N} \DeclareUnicodeCharacter{0144}{\'n} \DeclareUnicodeCharacter{0147}{\v{N}} \DeclareUnicodeCharacter{0148}{\v{n}} \DeclareUnicodeCharacter{014C}{\=O} \DeclareUnicodeCharacter{014D}{\=o} \DeclareUnicodeCharacter{014E}{\u{O}} \DeclareUnicodeCharacter{014F}{\u{o}} \DeclareUnicodeCharacter{0150}{\H{O}} \DeclareUnicodeCharacter{0151}{\H{o}} \DeclareUnicodeCharacter{0152}{\OE} \DeclareUnicodeCharacter{0153}{\oe} \DeclareUnicodeCharacter{0154}{\'R} \DeclareUnicodeCharacter{0155}{\'r} \DeclareUnicodeCharacter{0158}{\v{R}} \DeclareUnicodeCharacter{0159}{\v{r}} \DeclareUnicodeCharacter{015A}{\'S} \DeclareUnicodeCharacter{015B}{\'s} \DeclareUnicodeCharacter{015C}{\^S} \DeclareUnicodeCharacter{015D}{\^s} \DeclareUnicodeCharacter{015E}{\cedilla{S}} \DeclareUnicodeCharacter{015F}{\cedilla{s}} \DeclareUnicodeCharacter{0160}{\v{S}} \DeclareUnicodeCharacter{0161}{\v{s}} \DeclareUnicodeCharacter{0162}{\cedilla{t}} \DeclareUnicodeCharacter{0163}{\cedilla{T}} \DeclareUnicodeCharacter{0164}{\v{T}} \DeclareUnicodeCharacter{0168}{\~U} \DeclareUnicodeCharacter{0169}{\~u} \DeclareUnicodeCharacter{016A}{\=U} \DeclareUnicodeCharacter{016B}{\=u} \DeclareUnicodeCharacter{016C}{\u{U}} \DeclareUnicodeCharacter{016D}{\u{u}} \DeclareUnicodeCharacter{016E}{\ringaccent{U}} \DeclareUnicodeCharacter{016F}{\ringaccent{u}} \DeclareUnicodeCharacter{0170}{\H{U}} \DeclareUnicodeCharacter{0171}{\H{u}} \DeclareUnicodeCharacter{0174}{\^W} \DeclareUnicodeCharacter{0175}{\^w} \DeclareUnicodeCharacter{0176}{\^Y} \DeclareUnicodeCharacter{0177}{\^y} \DeclareUnicodeCharacter{0178}{\"Y} \DeclareUnicodeCharacter{0179}{\'Z} \DeclareUnicodeCharacter{017A}{\'z} \DeclareUnicodeCharacter{017B}{\dotaccent{Z}} \DeclareUnicodeCharacter{017C}{\dotaccent{z}} \DeclareUnicodeCharacter{017D}{\v{Z}} \DeclareUnicodeCharacter{017E}{\v{z}} \DeclareUnicodeCharacter{01C4}{D\v{Z}} \DeclareUnicodeCharacter{01C5}{D\v{z}} \DeclareUnicodeCharacter{01C6}{d\v{z}} \DeclareUnicodeCharacter{01C7}{LJ} \DeclareUnicodeCharacter{01C8}{Lj} \DeclareUnicodeCharacter{01C9}{lj} \DeclareUnicodeCharacter{01CA}{NJ} \DeclareUnicodeCharacter{01CB}{Nj} \DeclareUnicodeCharacter{01CC}{nj} \DeclareUnicodeCharacter{01CD}{\v{A}} \DeclareUnicodeCharacter{01CE}{\v{a}} \DeclareUnicodeCharacter{01CF}{\v{I}} \DeclareUnicodeCharacter{01D0}{\v{\dotless{i}}} \DeclareUnicodeCharacter{01D1}{\v{O}} \DeclareUnicodeCharacter{01D2}{\v{o}} \DeclareUnicodeCharacter{01D3}{\v{U}} \DeclareUnicodeCharacter{01D4}{\v{u}} \DeclareUnicodeCharacter{01E2}{\={\AE}} \DeclareUnicodeCharacter{01E3}{\={\ae}} \DeclareUnicodeCharacter{01E6}{\v{G}} \DeclareUnicodeCharacter{01E7}{\v{g}} \DeclareUnicodeCharacter{01E8}{\v{K}} \DeclareUnicodeCharacter{01E9}{\v{k}} \DeclareUnicodeCharacter{01F0}{\v{\dotless{j}}} \DeclareUnicodeCharacter{01F1}{DZ} \DeclareUnicodeCharacter{01F2}{Dz} \DeclareUnicodeCharacter{01F3}{dz} \DeclareUnicodeCharacter{01F4}{\'G} \DeclareUnicodeCharacter{01F5}{\'g} \DeclareUnicodeCharacter{01F8}{\`N} \DeclareUnicodeCharacter{01F9}{\`n} \DeclareUnicodeCharacter{01FC}{\'{\AE}} \DeclareUnicodeCharacter{01FD}{\'{\ae}} \DeclareUnicodeCharacter{01FE}{\'{\O}} \DeclareUnicodeCharacter{01FF}{\'{\o}} \DeclareUnicodeCharacter{021E}{\v{H}} \DeclareUnicodeCharacter{021F}{\v{h}} \DeclareUnicodeCharacter{0226}{\dotaccent{A}} \DeclareUnicodeCharacter{0227}{\dotaccent{a}} \DeclareUnicodeCharacter{0228}{\cedilla{E}} \DeclareUnicodeCharacter{0229}{\cedilla{e}} \DeclareUnicodeCharacter{022E}{\dotaccent{O}} \DeclareUnicodeCharacter{022F}{\dotaccent{o}} \DeclareUnicodeCharacter{0232}{\=Y} \DeclareUnicodeCharacter{0233}{\=y} \DeclareUnicodeCharacter{0237}{\dotless{j}} \DeclareUnicodeCharacter{02DB}{\ogonek{ }} \DeclareUnicodeCharacter{1E02}{\dotaccent{B}} \DeclareUnicodeCharacter{1E03}{\dotaccent{b}} \DeclareUnicodeCharacter{1E04}{\udotaccent{B}} \DeclareUnicodeCharacter{1E05}{\udotaccent{b}} \DeclareUnicodeCharacter{1E06}{\ubaraccent{B}} \DeclareUnicodeCharacter{1E07}{\ubaraccent{b}} \DeclareUnicodeCharacter{1E0A}{\dotaccent{D}} \DeclareUnicodeCharacter{1E0B}{\dotaccent{d}} \DeclareUnicodeCharacter{1E0C}{\udotaccent{D}} \DeclareUnicodeCharacter{1E0D}{\udotaccent{d}} \DeclareUnicodeCharacter{1E0E}{\ubaraccent{D}} \DeclareUnicodeCharacter{1E0F}{\ubaraccent{d}} \DeclareUnicodeCharacter{1E1E}{\dotaccent{F}} \DeclareUnicodeCharacter{1E1F}{\dotaccent{f}} \DeclareUnicodeCharacter{1E20}{\=G} \DeclareUnicodeCharacter{1E21}{\=g} \DeclareUnicodeCharacter{1E22}{\dotaccent{H}} \DeclareUnicodeCharacter{1E23}{\dotaccent{h}} \DeclareUnicodeCharacter{1E24}{\udotaccent{H}} \DeclareUnicodeCharacter{1E25}{\udotaccent{h}} \DeclareUnicodeCharacter{1E26}{\"H} \DeclareUnicodeCharacter{1E27}{\"h} \DeclareUnicodeCharacter{1E30}{\'K} \DeclareUnicodeCharacter{1E31}{\'k} \DeclareUnicodeCharacter{1E32}{\udotaccent{K}} \DeclareUnicodeCharacter{1E33}{\udotaccent{k}} \DeclareUnicodeCharacter{1E34}{\ubaraccent{K}} \DeclareUnicodeCharacter{1E35}{\ubaraccent{k}} \DeclareUnicodeCharacter{1E36}{\udotaccent{L}} \DeclareUnicodeCharacter{1E37}{\udotaccent{l}} \DeclareUnicodeCharacter{1E3A}{\ubaraccent{L}} \DeclareUnicodeCharacter{1E3B}{\ubaraccent{l}} \DeclareUnicodeCharacter{1E3E}{\'M} \DeclareUnicodeCharacter{1E3F}{\'m} \DeclareUnicodeCharacter{1E40}{\dotaccent{M}} \DeclareUnicodeCharacter{1E41}{\dotaccent{m}} \DeclareUnicodeCharacter{1E42}{\udotaccent{M}} \DeclareUnicodeCharacter{1E43}{\udotaccent{m}} \DeclareUnicodeCharacter{1E44}{\dotaccent{N}} \DeclareUnicodeCharacter{1E45}{\dotaccent{n}} \DeclareUnicodeCharacter{1E46}{\udotaccent{N}} \DeclareUnicodeCharacter{1E47}{\udotaccent{n}} \DeclareUnicodeCharacter{1E48}{\ubaraccent{N}} \DeclareUnicodeCharacter{1E49}{\ubaraccent{n}} \DeclareUnicodeCharacter{1E54}{\'P} \DeclareUnicodeCharacter{1E55}{\'p} \DeclareUnicodeCharacter{1E56}{\dotaccent{P}} \DeclareUnicodeCharacter{1E57}{\dotaccent{p}} \DeclareUnicodeCharacter{1E58}{\dotaccent{R}} \DeclareUnicodeCharacter{1E59}{\dotaccent{r}} \DeclareUnicodeCharacter{1E5A}{\udotaccent{R}} \DeclareUnicodeCharacter{1E5B}{\udotaccent{r}} \DeclareUnicodeCharacter{1E5E}{\ubaraccent{R}} \DeclareUnicodeCharacter{1E5F}{\ubaraccent{r}} \DeclareUnicodeCharacter{1E60}{\dotaccent{S}} \DeclareUnicodeCharacter{1E61}{\dotaccent{s}} \DeclareUnicodeCharacter{1E62}{\udotaccent{S}} \DeclareUnicodeCharacter{1E63}{\udotaccent{s}} \DeclareUnicodeCharacter{1E6A}{\dotaccent{T}} \DeclareUnicodeCharacter{1E6B}{\dotaccent{t}} \DeclareUnicodeCharacter{1E6C}{\udotaccent{T}} \DeclareUnicodeCharacter{1E6D}{\udotaccent{t}} \DeclareUnicodeCharacter{1E6E}{\ubaraccent{T}} \DeclareUnicodeCharacter{1E6F}{\ubaraccent{t}} \DeclareUnicodeCharacter{1E7C}{\~V} \DeclareUnicodeCharacter{1E7D}{\~v} \DeclareUnicodeCharacter{1E7E}{\udotaccent{V}} \DeclareUnicodeCharacter{1E7F}{\udotaccent{v}} \DeclareUnicodeCharacter{1E80}{\`W} \DeclareUnicodeCharacter{1E81}{\`w} \DeclareUnicodeCharacter{1E82}{\'W} \DeclareUnicodeCharacter{1E83}{\'w} \DeclareUnicodeCharacter{1E84}{\"W} \DeclareUnicodeCharacter{1E85}{\"w} \DeclareUnicodeCharacter{1E86}{\dotaccent{W}} \DeclareUnicodeCharacter{1E87}{\dotaccent{w}} \DeclareUnicodeCharacter{1E88}{\udotaccent{W}} \DeclareUnicodeCharacter{1E89}{\udotaccent{w}} \DeclareUnicodeCharacter{1E8A}{\dotaccent{X}} \DeclareUnicodeCharacter{1E8B}{\dotaccent{x}} \DeclareUnicodeCharacter{1E8C}{\"X} \DeclareUnicodeCharacter{1E8D}{\"x} \DeclareUnicodeCharacter{1E8E}{\dotaccent{Y}} \DeclareUnicodeCharacter{1E8F}{\dotaccent{y}} \DeclareUnicodeCharacter{1E90}{\^Z} \DeclareUnicodeCharacter{1E91}{\^z} \DeclareUnicodeCharacter{1E92}{\udotaccent{Z}} \DeclareUnicodeCharacter{1E93}{\udotaccent{z}} \DeclareUnicodeCharacter{1E94}{\ubaraccent{Z}} \DeclareUnicodeCharacter{1E95}{\ubaraccent{z}} \DeclareUnicodeCharacter{1E96}{\ubaraccent{h}} \DeclareUnicodeCharacter{1E97}{\"t} \DeclareUnicodeCharacter{1E98}{\ringaccent{w}} \DeclareUnicodeCharacter{1E99}{\ringaccent{y}} \DeclareUnicodeCharacter{1EA0}{\udotaccent{A}} \DeclareUnicodeCharacter{1EA1}{\udotaccent{a}} \DeclareUnicodeCharacter{1EB8}{\udotaccent{E}} \DeclareUnicodeCharacter{1EB9}{\udotaccent{e}} \DeclareUnicodeCharacter{1EBC}{\~E} \DeclareUnicodeCharacter{1EBD}{\~e} \DeclareUnicodeCharacter{1ECA}{\udotaccent{I}} \DeclareUnicodeCharacter{1ECB}{\udotaccent{i}} \DeclareUnicodeCharacter{1ECC}{\udotaccent{O}} \DeclareUnicodeCharacter{1ECD}{\udotaccent{o}} \DeclareUnicodeCharacter{1EE4}{\udotaccent{U}} \DeclareUnicodeCharacter{1EE5}{\udotaccent{u}} \DeclareUnicodeCharacter{1EF2}{\`Y} \DeclareUnicodeCharacter{1EF3}{\`y} \DeclareUnicodeCharacter{1EF4}{\udotaccent{Y}} \DeclareUnicodeCharacter{1EF8}{\~Y} \DeclareUnicodeCharacter{1EF9}{\~y} \DeclareUnicodeCharacter{2013}{--} \DeclareUnicodeCharacter{2014}{---} \DeclareUnicodeCharacter{2018}{\quoteleft} \DeclareUnicodeCharacter{2019}{\quoteright} \DeclareUnicodeCharacter{201A}{\quotesinglbase} \DeclareUnicodeCharacter{201C}{\quotedblleft} \DeclareUnicodeCharacter{201D}{\quotedblright} \DeclareUnicodeCharacter{201E}{\quotedblbase} \DeclareUnicodeCharacter{2022}{\bullet} \DeclareUnicodeCharacter{2026}{\dots} \DeclareUnicodeCharacter{2039}{\guilsinglleft} \DeclareUnicodeCharacter{203A}{\guilsinglright} \DeclareUnicodeCharacter{20AC}{\euro} \DeclareUnicodeCharacter{2192}{\expansion} \DeclareUnicodeCharacter{21D2}{\result} \DeclareUnicodeCharacter{2212}{\minus} \DeclareUnicodeCharacter{2217}{\point} \DeclareUnicodeCharacter{2261}{\equiv} }% end of \utfeightchardefs % US-ASCII character definitions. \def\asciichardefs{% nothing need be done \relax } % Make non-ASCII characters printable again for compatibility with % existing Texinfo documents that may use them, even without declaring a % document encoding. % \setnonasciicharscatcode \other \message{formatting,} \newdimen\defaultparindent \defaultparindent = 15pt \chapheadingskip = 15pt plus 4pt minus 2pt \secheadingskip = 12pt plus 3pt minus 2pt \subsecheadingskip = 9pt plus 2pt minus 2pt % Prevent underfull vbox error messages. \vbadness = 10000 % Don't be very finicky about underfull hboxes, either. \hbadness = 6666 % Following George Bush, get rid of widows and orphans. \widowpenalty=10000 \clubpenalty=10000 % Use TeX 3.0's \emergencystretch to help line breaking, but if we're % using an old version of TeX, don't do anything. We want the amount of % stretch added to depend on the line length, hence the dependence on % \hsize. We call this whenever the paper size is set. % \def\setemergencystretch{% \ifx\emergencystretch\thisisundefined % Allow us to assign to \emergencystretch anyway. \def\emergencystretch{\dimen0}% \else \emergencystretch = .15\hsize \fi } % Parameters in order: 1) textheight; 2) textwidth; % 3) voffset; 4) hoffset; 5) binding offset; 6) topskip; % 7) physical page height; 8) physical page width. % % We also call \setleading{\textleading}, so the caller should define % \textleading. The caller should also set \parskip. % \def\internalpagesizes#1#2#3#4#5#6#7#8{% \voffset = #3\relax \topskip = #6\relax \splittopskip = \topskip % \vsize = #1\relax \advance\vsize by \topskip \outervsize = \vsize \advance\outervsize by 2\topandbottommargin \pageheight = \vsize % \hsize = #2\relax \outerhsize = \hsize \advance\outerhsize by 0.5in \pagewidth = \hsize % \normaloffset = #4\relax \bindingoffset = #5\relax % \ifpdf \pdfpageheight #7\relax \pdfpagewidth #8\relax % if we don't reset these, they will remain at "1 true in" of % whatever layout pdftex was dumped with. \pdfhorigin = 1 true in \pdfvorigin = 1 true in \fi % \setleading{\textleading} % \parindent = \defaultparindent \setemergencystretch } % @letterpaper (the default). \def\letterpaper{{\globaldefs = 1 \parskip = 3pt plus 2pt minus 1pt \textleading = 13.2pt % % If page is nothing but text, make it come out even. \internalpagesizes{607.2pt}{6in}% that's 46 lines {\voffset}{.25in}% {\bindingoffset}{36pt}% {11in}{8.5in}% }} % Use @smallbook to reset parameters for 7x9.25 trim size. \def\smallbook{{\globaldefs = 1 \parskip = 2pt plus 1pt \textleading = 12pt % \internalpagesizes{7.5in}{5in}% {-.2in}{0in}% {\bindingoffset}{16pt}% {9.25in}{7in}% % \lispnarrowing = 0.3in \tolerance = 700 \hfuzz = 1pt \contentsrightmargin = 0pt \defbodyindent = .5cm }} % Use @smallerbook to reset parameters for 6x9 trim size. % (Just testing, parameters still in flux.) \def\smallerbook{{\globaldefs = 1 \parskip = 1.5pt plus 1pt \textleading = 12pt % \internalpagesizes{7.4in}{4.8in}% {-.2in}{-.4in}% {0pt}{14pt}% {9in}{6in}% % \lispnarrowing = 0.25in \tolerance = 700 \hfuzz = 1pt \contentsrightmargin = 0pt \defbodyindent = .4cm }} % Use @afourpaper to print on European A4 paper. \def\afourpaper{{\globaldefs = 1 \parskip = 3pt plus 2pt minus 1pt \textleading = 13.2pt % % Double-side printing via postscript on Laserjet 4050 % prints double-sided nicely when \bindingoffset=10mm and \hoffset=-6mm. % To change the settings for a different printer or situation, adjust % \normaloffset until the front-side and back-side texts align. Then % do the same for \bindingoffset. You can set these for testing in % your texinfo source file like this: % @tex % \global\normaloffset = -6mm % \global\bindingoffset = 10mm % @end tex \internalpagesizes{673.2pt}{160mm}% that's 51 lines {\voffset}{\hoffset}% {\bindingoffset}{44pt}% {297mm}{210mm}% % \tolerance = 700 \hfuzz = 1pt \contentsrightmargin = 0pt \defbodyindent = 5mm }} % Use @afivepaper to print on European A5 paper. % From romildo@urano.iceb.ufop.br, 2 July 2000. % He also recommends making @example and @lisp be small. \def\afivepaper{{\globaldefs = 1 \parskip = 2pt plus 1pt minus 0.1pt \textleading = 12.5pt % \internalpagesizes{160mm}{120mm}% {\voffset}{\hoffset}% {\bindingoffset}{8pt}% {210mm}{148mm}% % \lispnarrowing = 0.2in \tolerance = 800 \hfuzz = 1.2pt \contentsrightmargin = 0pt \defbodyindent = 2mm \tableindent = 12mm }} % A specific text layout, 24x15cm overall, intended for A4 paper. \def\afourlatex{{\globaldefs = 1 \afourpaper \internalpagesizes{237mm}{150mm}% {\voffset}{4.6mm}% {\bindingoffset}{7mm}% {297mm}{210mm}% % % Must explicitly reset to 0 because we call \afourpaper. \globaldefs = 0 }} % Use @afourwide to print on A4 paper in landscape format. \def\afourwide{{\globaldefs = 1 \afourpaper \internalpagesizes{241mm}{165mm}% {\voffset}{-2.95mm}% {\bindingoffset}{7mm}% {297mm}{210mm}% \globaldefs = 0 }} % @pagesizes TEXTHEIGHT[,TEXTWIDTH] % Perhaps we should allow setting the margins, \topskip, \parskip, % and/or leading, also. Or perhaps we should compute them somehow. % \parseargdef\pagesizes{\pagesizesyyy #1,,\finish} \def\pagesizesyyy#1,#2,#3\finish{{% \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \hsize=#2\relax \fi \globaldefs = 1 % \parskip = 3pt plus 2pt minus 1pt \setleading{\textleading}% % \dimen0 = #1\relax \advance\dimen0 by \voffset % \dimen2 = \hsize \advance\dimen2 by \normaloffset % \internalpagesizes{#1}{\hsize}% {\voffset}{\normaloffset}% {\bindingoffset}{44pt}% {\dimen0}{\dimen2}% }} % Set default to letter. % \letterpaper \message{and turning on texinfo input format.} \def^^L{\par} % remove \outer, so ^L can appear in an @comment % DEL is a comment character, in case @c does not suffice. \catcode`\^^? = 14 % Define macros to output various characters with catcode for normal text. \catcode`\"=\other \def\normaldoublequote{"} \catcode`\$=\other \def\normaldollar{$}%$ font-lock fix \catcode`\+=\other \def\normalplus{+} \catcode`\<=\other \def\normalless{<} \catcode`\>=\other \def\normalgreater{>} \catcode`\^=\other \def\normalcaret{^} \catcode`\_=\other \def\normalunderscore{_} \catcode`\|=\other \def\normalverticalbar{|} \catcode`\~=\other \def\normaltilde{~} % This macro is used to make a character print one way in \tt % (where it can probably be output as-is), and another way in other fonts, % where something hairier probably needs to be done. % % #1 is what to print if we are indeed using \tt; #2 is what to print % otherwise. Since all the Computer Modern typewriter fonts have zero % interword stretch (and shrink), and it is reasonable to expect all % typewriter fonts to have this, we can check that font parameter. % \def\ifusingtt#1#2{\ifdim \fontdimen3\font=0pt #1\else #2\fi} % Same as above, but check for italic font. Actually this also catches % non-italic slanted fonts since it is impossible to distinguish them from % italic fonts. But since this is only used by $ and it uses \sl anyway % this is not a problem. \def\ifusingit#1#2{\ifdim \fontdimen1\font>0pt #1\else #2\fi} % Turn off all special characters except @ % (and those which the user can use as if they were ordinary). % Most of these we simply print from the \tt font, but for some, we can % use math or other variants that look better in normal text. \catcode`\"=\active \def\activedoublequote{{\tt\char34}} \let"=\activedoublequote \catcode`\~=\active \def~{{\tt\char126}} \chardef\hat=`\^ \catcode`\^=\active \def^{{\tt \hat}} \catcode`\_=\active \def_{\ifusingtt\normalunderscore\_} \let\realunder=_ % Subroutine for the previous macro. \def\_{\leavevmode \kern.07em \vbox{\hrule width.3em height.1ex}\kern .07em } \catcode`\|=\active \def|{{\tt\char124}} \chardef \less=`\< \catcode`\<=\active \def<{{\tt \less}} \chardef \gtr=`\> \catcode`\>=\active \def>{{\tt \gtr}} \catcode`\+=\active \def+{{\tt \char 43}} \catcode`\$=\active \def${\ifusingit{{\sl\$}}\normaldollar}%$ font-lock fix % If a .fmt file is being used, characters that might appear in a file % name cannot be active until we have parsed the command line. % So turn them off again, and have \everyjob (or @setfilename) turn them on. % \otherifyactive is called near the end of this file. \def\otherifyactive{\catcode`+=\other \catcode`\_=\other} % Used sometimes to turn off (effectively) the active characters even after % parsing them. \def\turnoffactive{% \normalturnoffactive \otherbackslash } \catcode`\@=0 % \backslashcurfont outputs one backslash character in current font, % as in \char`\\. \global\chardef\backslashcurfont=`\\ \global\let\rawbackslashxx=\backslashcurfont % let existing .??s files work % \realbackslash is an actual character `\' with catcode other, and % \doublebackslash is two of them (for the pdf outlines). {\catcode`\\=\other @gdef@realbackslash{\} @gdef@doublebackslash{\\}} % In texinfo, backslash is an active character; it prints the backslash % in fixed width font. \catcode`\\=\active % @ for escape char from now on. % The story here is that in math mode, the \char of \backslashcurfont % ends up printing the roman \ from the math symbol font (because \char % in math mode uses the \mathcode, and plain.tex sets % \mathcode`\\="026E). It seems better for @backslashchar{} to always % print a typewriter backslash, hence we use an explicit \mathchar, % which is the decimal equivalent of "715c (class 7, e.g., use \fam; % ignored family value; char position "5C). We can't use " for the % usual hex value because it has already been made active. @def@normalbackslash{{@tt @ifmmode @mathchar29020 @else @backslashcurfont @fi}} @let@backslashchar = @normalbackslash % @backslashchar{} is for user documents. % On startup, @fixbackslash assigns: % @let \ = @normalbackslash % \rawbackslash defines an active \ to do \backslashcurfont. % \otherbackslash defines an active \ to be a literal `\' character with % catcode other. We switch back and forth between these. @gdef@rawbackslash{@let\=@backslashcurfont} @gdef@otherbackslash{@let\=@realbackslash} % Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of % the literal character `\'. % @def@normalturnoffactive{% @let"=@normaldoublequote @let$=@normaldollar %$ font-lock fix @let+=@normalplus @let<=@normalless @let>=@normalgreater @let\=@normalbackslash @let^=@normalcaret @let_=@normalunderscore @let|=@normalverticalbar @let~=@normaltilde @markupsetuplqdefault @markupsetuprqdefault @unsepspaces } % Make _ and + \other characters, temporarily. % This is canceled by @fixbackslash. @otherifyactive % If a .fmt file is being used, we don't want the `\input texinfo' to show up. % That is what \eatinput is for; after that, the `\' should revert to printing % a backslash. % @gdef@eatinput input texinfo{@fixbackslash} @global@let\ = @eatinput % On the other hand, perhaps the file did not have a `\input texinfo'. Then % the first `\' in the file would cause an error. This macro tries to fix % that, assuming it is called before the first `\' could plausibly occur. % Also turn back on active characters that might appear in the input % file name, in case not using a pre-dumped format. % @gdef@fixbackslash{% @ifx\@eatinput @let\ = @normalbackslash @fi @catcode`+=@active @catcode`@_=@active } % Say @foo, not \foo, in error messages. @escapechar = `@@ % These (along with & and #) are made active for url-breaking, so need % active definitions as the normal characters. @def@normaldot{.} @def@normalquest{?} @def@normalslash{/} % These look ok in all fonts, so just make them not special. % @hashchar{} gets its own user-level command, because of #line. @catcode`@& = @other @def@normalamp{&} @catcode`@# = @other @def@normalhash{#} @catcode`@% = @other @def@normalpercent{%} @let @hashchar = @normalhash @c Finally, make ` and ' active, so that txicodequoteundirected and @c txicodequotebacktick work right in, e.g., @w{@code{`foo'}}. If we @c don't make ` and ' active, @code will not get them as active chars. @c Do this last of all since we use ` in the previous @catcode assignments. @catcode`@'=@active @catcode`@`=@active @markupsetuplqdefault @markupsetuprqdefault @c Local variables: @c eval: (add-hook 'write-file-hooks 'time-stamp) @c page-delimiter: "^\\\\message" @c time-stamp-start: "def\\\\texinfoversion{" @c time-stamp-format: "%:y-%02m-%02d.%02H" @c time-stamp-end: "}" @c End: @c vim:sw=2: @ignore arch-tag: e1b36e32-c96e-4135-a41a-0b2efa2ea115 @end ignore libextractor-1.3/doc/gpl.texi0000644000175000017500000004363312017603551013233 00000000000000@node Copying @appendix GNU GENERAL PUBLIC LICENSE @cindex GPL, GNU General Public License @center Version 2, June 1991 @display Copyright @copyright{} 1989, 1991 Free Software Foundation, Inc. 59 Temple Place -- Suite 330, Boston, MA 02111-1307, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. @end display @appendixsubsec Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software---to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. @iftex @appendixsubsec TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION @end iftex @ifinfo @center TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION @end ifinfo @enumerate @item This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The ``Program'', below, refers to any such program or work, and a ``work based on the Program'' means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term ``modification''.) Each licensee is addressed as ``you''. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. @item You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. @item You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: @enumerate a @item You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. @item You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. @item If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) @end enumerate These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. @item You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: @enumerate a @item Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, @item Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, @item Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) @end enumerate The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. @item You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. @item You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. @item Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. @item If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. @item If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. @item The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and ``any later version'', you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. @item If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. @item BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM ``AS IS'' WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. @item IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. @end enumerate @iftex @heading END OF TERMS AND CONDITIONS @end iftex @ifinfo @center END OF TERMS AND CONDITIONS @end ifinfo @page @unnumberedsec How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the ``copyright'' line and a pointer to where the full notice is found. @smallexample @var{one line to give the program's name and an idea of what it does.} Copyright (C) 19@var{yy} @var{name of author} This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. @end smallexample Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: @smallexample Gnomovision version 69, Copyright (C) 19@var{yy} @var{name of author} Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. @end smallexample The hypothetical commands @samp{show w} and @samp{show c} should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than @samp{show w} and @samp{show c}; they could even be mouse-clicks or menu items---whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a ``copyright disclaimer'' for the program, if necessary. Here is a sample; alter the names: @smallexample @group Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. @var{signature of Ty Coon}, 1 April 1989 Ty Coon, President of Vice @end group @end smallexample This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. libextractor-1.3/doc/fdl-1.3.texi0000644000175000017500000005601512022601045013503 00000000000000@c The GNU Free Documentation License. @center Version 1.3, 3 November 2008 @c This file is intended to be included within another document, @c hence no sectioning command or @node. @display Copyright @copyright{} 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. @uref{http://fsf.org/} Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. @end display @enumerate 0 @item PREAMBLE The purpose of this License is to make a manual, textbook, or other functional and useful document @dfn{free} in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others. This License is a kind of ``copyleft'', which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software. We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference. @item APPLICABILITY AND DEFINITIONS This License applies to any manual or other work, in any medium, that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. Such a notice grants a world-wide, royalty-free license, unlimited in duration, to use that work under the conditions stated herein. The ``Document'', below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as ``you''. You accept the license if you copy, modify or distribute the work in a way requiring permission under copyright law. A ``Modified Version'' of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language. A ``Secondary Section'' is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (Thus, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them. The ``Invariant Sections'' are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. If a section does not fit the above definition of Secondary then it is not allowed to be designated as Invariant. The Document may contain zero Invariant Sections. If the Document does not identify any Invariant Sections then there are none. The ``Cover Texts'' are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License. A Front-Cover Text may be at most 5 words, and a Back-Cover Text may be at most 25 words. A ``Transparent'' copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, that is suitable for revising the document straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup, or absence of markup, has been arranged to thwart or discourage subsequent modification by readers is not Transparent. An image format is not Transparent if used for any substantial amount of text. A copy that is not ``Transparent'' is called ``Opaque''. Examples of suitable formats for Transparent copies include plain @sc{ascii} without markup, Texinfo input format, La@TeX{} input format, @acronym{SGML} or @acronym{XML} using a publicly available @acronym{DTD}, and standard-conforming simple @acronym{HTML}, PostScript or @acronym{PDF} designed for human modification. Examples of transparent image formats include @acronym{PNG}, @acronym{XCF} and @acronym{JPG}. Opaque formats include proprietary formats that can be read and edited only by proprietary word processors, @acronym{SGML} or @acronym{XML} for which the @acronym{DTD} and/or processing tools are not generally available, and the machine-generated @acronym{HTML}, PostScript or @acronym{PDF} produced by some word processors for output purposes only. The ``Title Page'' means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, ``Title Page'' means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text. The ``publisher'' means any person or entity that distributes copies of the Document to the public. A section ``Entitled XYZ'' means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a specific section name mentioned below, such as ``Acknowledgements'', ``Dedications'', ``Endorsements'', or ``History''.) To ``Preserve the Title'' of such a section when you modify the Document means that it remains a section ``Entitled XYZ'' according to this definition. The Document may include Warranty Disclaimers next to the notice which states that this License applies to the Document. These Warranty Disclaimers are considered to be included by reference in this License, but only as regards disclaiming warranties: any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License. @item VERBATIM COPYING You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3. You may also lend copies, under the same conditions stated above, and you may publicly display copies. @item COPYING IN QUANTITY If you publish printed copies (or copies in media that commonly have printed covers) of the Document, numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects. If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages. If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a computer-network location from which the general network-using public has access to download using public-standard network protocols a complete Transparent copy of the Document, free of added material. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public. It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document. @item MODIFICATIONS You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version: @enumerate A @item Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission. @item List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has fewer than five), unless they release you from this requirement. @item State on the Title page the name of the publisher of the Modified Version, as the publisher. @item Preserve all the copyright notices of the Document. @item Add an appropriate copyright notice for your modifications adjacent to the other copyright notices. @item Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below. @item Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice. @item Include an unaltered copy of this License. @item Preserve the section Entitled ``History'', Preserve its Title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section Entitled ``History'' in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence. @item Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the ``History'' section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission. @item For any section Entitled ``Acknowledgements'' or ``Dedications'', Preserve the Title of the section, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein. @item Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles. @item Delete any section Entitled ``Endorsements''. Such a section may not be included in the Modified Version. @item Do not retitle any existing section to be Entitled ``Endorsements'' or to conflict in title with any Invariant Section. @item Preserve any Warranty Disclaimers. @end enumerate If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles. You may add a section Entitled ``Endorsements'', provided it contains nothing but endorsements of your Modified Version by various parties---for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard. You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one. The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version. @item COMBINING DOCUMENTS You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice, and that you preserve all their Warranty Disclaimers. The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work. In the combination, you must combine any sections Entitled ``History'' in the various original documents, forming one section Entitled ``History''; likewise combine any sections Entitled ``Acknowledgements'', and any sections Entitled ``Dedications''. You must delete all sections Entitled ``Endorsements.'' @item COLLECTIONS OF DOCUMENTS You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects. You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document. @item AGGREGATION WITH INDEPENDENT WORKS A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, is called an ``aggregate'' if the copyright resulting from the compilation is not used to limit the legal rights of the compilation's users beyond what the individual works permit. When the Document is included in an aggregate, this License does not apply to the other works in the aggregate which are not themselves derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one half of the entire aggregate, the Document's Cover Texts may be placed on covers that bracket the Document within the aggregate, or the electronic equivalent of covers if the Document is in electronic form. Otherwise they must appear on printed covers that bracket the whole aggregate. @item TRANSLATION Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License, and all the license notices in the Document, and any Warranty Disclaimers, provided that you also include the original English version of this License and the original versions of those notices and disclaimers. In case of a disagreement between the translation and the original version of this License or a notice or disclaimer, the original version will prevail. If a section in the Document is Entitled ``Acknowledgements'', ``Dedications'', or ``History'', the requirement (section 4) to Preserve its Title (section 1) will typically require changing the actual title. @item TERMINATION You may not copy, modify, sublicense, or distribute the Document except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, or distribute it is void, and will automatically terminate your rights under this License. However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, receipt of a copy of some or all of the same material does not give you any rights to use it. @item FUTURE REVISIONS OF THIS LICENSE The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See @uref{http://www.gnu.org/copyleft/}. Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License ``or any later version'' applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation. If the Document specifies that a proxy can decide which future versions of this License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Document. @item RELICENSING ``Massive Multiauthor Collaboration Site'' (or ``MMC Site'') means any World Wide Web server that publishes copyrightable works and also provides prominent facilities for anybody to edit those works. A public wiki that anybody can edit is an example of such a server. A ``Massive Multiauthor Collaboration'' (or ``MMC'') contained in the site means any set of copyrightable works thus published on the MMC site. ``CC-BY-SA'' means the Creative Commons Attribution-Share Alike 3.0 license published by Creative Commons Corporation, a not-for-profit corporation with a principal place of business in San Francisco, California, as well as future copyleft versions of that license published by that same organization. ``Incorporate'' means to publish or republish a Document, in whole or in part, as part of another Document. An MMC is ``eligible for relicensing'' if it is licensed under this License, and if all works that were first published under this License somewhere other than this MMC, and subsequently incorporated in whole or in part into the MMC, (1) had no cover texts or invariant sections, and (2) were thus incorporated prior to November 1, 2008. The operator of an MMC Site may republish an MMC contained in the site under CC-BY-SA on the same site at any time before August 1, 2009, provided the MMC is eligible for relicensing. @end enumerate @page @heading ADDENDUM: How to use this License for your documents To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page: @smallexample @group Copyright (C) @var{year} @var{your name}. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled ``GNU Free Documentation License''. @end group @end smallexample If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, replace the ``with@dots{}Texts.'' line with this: @smallexample @group with the Invariant Sections being @var{list their titles}, with the Front-Cover Texts being @var{list}, and with the Back-Cover Texts being @var{list}. @end group @end smallexample If you have Invariant Sections without Cover Texts, or some other combination of the three, merge those two alternatives to suit the situation. If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software. @c Local Variables: @c ispell-local-pdict: "ispell-dict" @c End: libextractor-1.3/doc/Makefile.in0000644000175000017500000007143312256015517013626 00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = doc DIST_COMMON = $(libextractor_TEXINFOS) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/stamp-vti \ $(srcdir)/version.texi mdate-sh texinfo.tex ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/abi-gsf.m4 \ $(top_srcdir)/m4/ac_define_dir.m4 \ $(top_srcdir)/m4/ax_create_pkgconfig_info.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glib-2.0.m4 \ $(top_srcdir)/m4/gtk-2.0.m4 $(top_srcdir)/m4/gtk-3.0.m4 \ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ SOURCES = DIST_SOURCES = INFO_DEPS = $(srcdir)/libextractor.info am__TEXINFO_TEX_DIR = $(srcdir) DVIS = libextractor.dvi PDFS = libextractor.pdf PSS = libextractor.ps HTMLS = libextractor.html TEXINFOS = libextractor.texi TEXI2DVI = texi2dvi TEXI2PDF = $(TEXI2DVI) --pdf --batch MAKEINFOHTML = $(MAKEINFO) --html AM_MAKEINFOHTMLFLAGS = $(AM_MAKEINFOFLAGS) DVIPS = dvips am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__installdirs = "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)" \ "$(DESTDIR)$(man3dir)" am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } man1dir = $(mandir)/man1 man3dir = $(mandir)/man3 NROFF = nroff MANS = $(man_MANS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ GLIB_LIBS = @GLIB_LIBS@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GOBJECT_QUERY = @GOBJECT_QUERY@ GREP = @GREP@ GSF_CFLAGS = @GSF_CFLAGS@ GSF_GNOME_CFLAGS = @GSF_GNOME_CFLAGS@ GSF_GNOME_LIBS = @GSF_GNOME_LIBS@ GSF_LIBS = @GSF_LIBS@ GSTREAMER_APP_CFLAGS = @GSTREAMER_APP_CFLAGS@ GSTREAMER_APP_LIBS = @GSTREAMER_APP_LIBS@ GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@ GSTREAMER_LIBS = @GSTREAMER_LIBS@ GSTREAMER_PBUTILS_CFLAGS = @GSTREAMER_PBUTILS_CFLAGS@ GSTREAMER_PBUTILS_LIBS = @GSTREAMER_PBUTILS_LIBS@ GSTREAMER_TAG_CFLAGS = @GSTREAMER_TAG_CFLAGS@ GSTREAMER_TAG_LIBS = @GSTREAMER_TAG_LIBS@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ HAVE_CXX = @HAVE_CXX@ HAVE_ZZUF = @HAVE_ZZUF@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ ISOLOCALEDIR = @ISOLOCALEDIR@ LD = @LD@ LDFLAGS = @LDFLAGS@ LE_INTLINCL = @LE_INTLINCL@ LE_LIBINTL = @LE_LIBINTL@ LE_LIB_LDFLAGS = @LE_LIB_LDFLAGS@ LE_LIB_LIBS = @LE_LIB_LIBS@ LE_PLUGIN_LDFLAGS = @LE_PLUGIN_LDFLAGS@ LIBEXT = @LIBEXT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIB_VERSION_AGE = @LIB_VERSION_AGE@ LIB_VERSION_CURRENT = @LIB_VERSION_CURRENT@ LIB_VERSION_REVISION = @LIB_VERSION_REVISION@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALEDIR = @LOCALEDIR@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACKAGE_VERSION_NOALPHA = @PACKAGE_VERSION_NOALPHA@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ POSUB = @POSUB@ QT_CPPFLAGS = @QT_CPPFLAGS@ QT_LDFLAGS = @QT_LDFLAGS@ RANLIB = @RANLIB@ RPLUGINDIR = @RPLUGINDIR@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKET_LIBS = @SOCKET_LIBS@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XTRA_CPPLIBS = @XTRA_CPPLIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfig_libdir = @pkgconfig_libdir@ pkgconfig_libfile = @pkgconfig_libfile@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ man_MANS = extract.1 libextractor.3 EXTRA_DIST = $(man_MANS) DISTCLEANFILES = libextractor.cps info_TEXINFOS = libextractor.texi libextractor_TEXINFOS = gpl.texi fdl-1.3.texi all: all-am .SUFFIXES: .SUFFIXES: .dvi .html .info .pdf .ps .texi $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs .texi.info: restore=: && backupdir="$(am__leading_dot)am$$$$" && \ am__cwd=`pwd` && $(am__cd) $(srcdir) && \ rm -rf $$backupdir && mkdir $$backupdir && \ if ($(MAKEINFO) --version) >/dev/null 2>&1; then \ for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \ if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \ done; \ else :; fi && \ cd "$$am__cwd"; \ if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \ -o $@ $<; \ then \ rc=0; \ $(am__cd) $(srcdir); \ else \ rc=$$?; \ $(am__cd) $(srcdir) && \ $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \ fi; \ rm -rf $$backupdir; exit $$rc .texi.dvi: TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \ $(TEXI2DVI) $< .texi.pdf: TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \ $(TEXI2PDF) $< .texi.html: rm -rf $(@:.html=.htp) if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \ -o $(@:.html=.htp) $<; \ then \ rm -rf $@; \ if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \ mv $(@:.html=) $@; else mv $(@:.html=.htp) $@; fi; \ else \ if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \ rm -rf $(@:.html=); else rm -Rf $(@:.html=.htp) $@; fi; \ exit 1; \ fi $(srcdir)/libextractor.info: libextractor.texi $(srcdir)/version.texi $(libextractor_TEXINFOS) libextractor.dvi: libextractor.texi $(srcdir)/version.texi $(libextractor_TEXINFOS) libextractor.pdf: libextractor.texi $(srcdir)/version.texi $(libextractor_TEXINFOS) libextractor.html: libextractor.texi $(srcdir)/version.texi $(libextractor_TEXINFOS) $(srcdir)/version.texi: $(srcdir)/stamp-vti $(srcdir)/stamp-vti: libextractor.texi $(top_srcdir)/configure @(dir=.; test -f ./libextractor.texi || dir=$(srcdir); \ set `$(SHELL) $(srcdir)/mdate-sh $$dir/libextractor.texi`; \ echo "@set UPDATED $$1 $$2 $$3"; \ echo "@set UPDATED-MONTH $$2 $$3"; \ echo "@set EDITION $(VERSION)"; \ echo "@set VERSION $(VERSION)") > vti.tmp @cmp -s vti.tmp $(srcdir)/version.texi \ || (echo "Updating $(srcdir)/version.texi"; \ cp vti.tmp $(srcdir)/version.texi) -@rm -f vti.tmp @cp $(srcdir)/version.texi $@ mostlyclean-vti: -rm -f vti.tmp maintainer-clean-vti: -rm -f $(srcdir)/stamp-vti $(srcdir)/version.texi .dvi.ps: TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ $(DVIPS) -o $@ $< uninstall-dvi-am: @$(NORMAL_UNINSTALL) @list='$(DVIS)'; test -n "$(dvidir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(dvidir)/$$f'"; \ rm -f "$(DESTDIR)$(dvidir)/$$f"; \ done uninstall-html-am: @$(NORMAL_UNINSTALL) @list='$(HTMLS)'; test -n "$(htmldir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " rm -rf '$(DESTDIR)$(htmldir)/$$f'"; \ rm -rf "$(DESTDIR)$(htmldir)/$$f"; \ done uninstall-info-am: @$(PRE_UNINSTALL) @if test -d '$(DESTDIR)$(infodir)' && $(am__can_run_installinfo); then \ list='$(INFO_DEPS)'; \ for file in $$list; do \ relfile=`echo "$$file" | sed 's|^.*/||'`; \ echo " install-info --info-dir='$(DESTDIR)$(infodir)' --remove '$(DESTDIR)$(infodir)/$$relfile'"; \ if install-info --info-dir="$(DESTDIR)$(infodir)" --remove "$(DESTDIR)$(infodir)/$$relfile"; \ then :; else test ! -f "$(DESTDIR)$(infodir)/$$relfile" || exit 1; fi; \ done; \ else :; fi @$(NORMAL_UNINSTALL) @list='$(INFO_DEPS)'; \ for file in $$list; do \ relfile=`echo "$$file" | sed 's|^.*/||'`; \ relfile_i=`echo "$$relfile" | sed 's|\.info$$||;s|$$|.i|'`; \ (if test -d "$(DESTDIR)$(infodir)" && cd "$(DESTDIR)$(infodir)"; then \ echo " cd '$(DESTDIR)$(infodir)' && rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]"; \ rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]; \ else :; fi); \ done uninstall-pdf-am: @$(NORMAL_UNINSTALL) @list='$(PDFS)'; test -n "$(pdfdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(pdfdir)/$$f'"; \ rm -f "$(DESTDIR)$(pdfdir)/$$f"; \ done uninstall-ps-am: @$(NORMAL_UNINSTALL) @list='$(PSS)'; test -n "$(psdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(psdir)/$$f'"; \ rm -f "$(DESTDIR)$(psdir)/$$f"; \ done dist-info: $(INFO_DEPS) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ list='$(INFO_DEPS)'; \ for base in $$list; do \ case $$base in \ $(srcdir)/*) base=`echo "$$base" | sed "s|^$$srcdirstrip/||"`;; \ esac; \ if test -f $$base; then d=.; else d=$(srcdir); fi; \ base_i=`echo "$$base" | sed 's|\.info$$||;s|$$|.i|'`; \ for file in $$d/$$base $$d/$$base-[0-9] $$d/$$base-[0-9][0-9] $$d/$$base_i[0-9] $$d/$$base_i[0-9][0-9]; do \ if test -f $$file; then \ relfile=`expr "$$file" : "$$d/\(.*\)"`; \ test -f "$(distdir)/$$relfile" || \ cp -p $$file "$(distdir)/$$relfile"; \ else :; fi; \ done; \ done mostlyclean-aminfo: -rm -rf libextractor.aux libextractor.cp libextractor.cps libextractor.fn \ libextractor.ky libextractor.log libextractor.pg \ libextractor.tmp libextractor.toc libextractor.tp \ libextractor.vr clean-aminfo: -test -z "libextractor.dvi libextractor.pdf libextractor.ps libextractor.html" \ || rm -rf libextractor.dvi libextractor.pdf libextractor.ps libextractor.html maintainer-clean-aminfo: @list='$(INFO_DEPS)'; for i in $$list; do \ i_i=`echo "$$i" | sed 's|\.info$$||;s|$$|.i|'`; \ echo " rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]"; \ rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]; \ done install-man1: $(man_MANS) @$(NORMAL_INSTALL) @list1=''; \ list2='$(man_MANS)'; \ test -n "$(man1dir)" \ && test -n "`echo $$list1$$list2`" \ || exit 0; \ echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \ $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \ { for i in $$list1; do echo "$$i"; done; \ if test -n "$$list2"; then \ for i in $$list2; do echo "$$i"; done \ | sed -n '/\.1[a-z]*$$/p'; \ fi; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ done | \ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ sed 'N;N;s,\n, ,g' | { \ list=; while read file base inst; do \ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ fi; \ done; \ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ while read files; do \ test -z "$$files" || { \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ done; } uninstall-man1: @$(NORMAL_UNINSTALL) @list=''; test -n "$(man1dir)" || exit 0; \ files=`{ for i in $$list; do echo "$$i"; done; \ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ sed -n '/\.1[a-z]*$$/p'; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir) install-man3: $(man_MANS) @$(NORMAL_INSTALL) @list1=''; \ list2='$(man_MANS)'; \ test -n "$(man3dir)" \ && test -n "`echo $$list1$$list2`" \ || exit 0; \ echo " $(MKDIR_P) '$(DESTDIR)$(man3dir)'"; \ $(MKDIR_P) "$(DESTDIR)$(man3dir)" || exit 1; \ { for i in $$list1; do echo "$$i"; done; \ if test -n "$$list2"; then \ for i in $$list2; do echo "$$i"; done \ | sed -n '/\.3[a-z]*$$/p'; \ fi; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ done | \ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^3][0-9a-z]*$$,3,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ sed 'N;N;s,\n, ,g' | { \ list=; while read file base inst; do \ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man3dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man3dir)/$$inst" || exit $$?; \ fi; \ done; \ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ while read files; do \ test -z "$$files" || { \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man3dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(man3dir)" || exit $$?; }; \ done; } uninstall-man3: @$(NORMAL_UNINSTALL) @list=''; test -n "$(man3dir)" || exit 0; \ files=`{ for i in $$list; do echo "$$i"; done; \ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ sed -n '/\.3[a-z]*$$/p'; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^3][0-9a-z]*$$,3,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ dir='$(DESTDIR)$(man3dir)'; $(am__uninstall_files_from_dir) tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @list='$(MANS)'; if test -n "$$list"; then \ list=`for p in $$list; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \ if test -n "$$list" && \ grep 'ab help2man is required to generate this page' $$list >/dev/null; then \ echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \ grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \ echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \ echo " typically \`make maintainer-clean' will remove them" >&2; \ exit 1; \ else :; fi; \ else :; fi @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" distdir="$(distdir)" \ dist-info check-am: all-am check: check-am all-am: Makefile $(INFO_DEPS) $(MANS) installdirs: for dir in "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man3dir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-aminfo clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: $(DVIS) html: html-am html-am: $(HTMLS) info: info-am info-am: $(INFO_DEPS) install-data-am: install-info-am install-man install-dvi: install-dvi-am install-dvi-am: $(DVIS) @$(NORMAL_INSTALL) @list='$(DVIS)'; test -n "$(dvidir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(dvidir)'"; \ $(MKDIR_P) "$(DESTDIR)$(dvidir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(dvidir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(dvidir)" || exit $$?; \ done install-exec-am: install-html: install-html-am install-html-am: $(HTMLS) @$(NORMAL_INSTALL) @list='$(HTMLS)'; list2=; test -n "$(htmldir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(htmldir)'"; \ $(MKDIR_P) "$(DESTDIR)$(htmldir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p" || test -d "$$p"; then d=; else d="$(srcdir)/"; fi; \ $(am__strip_dir) \ d2=$$d$$p; \ if test -d "$$d2"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(htmldir)/$$f'"; \ $(MKDIR_P) "$(DESTDIR)$(htmldir)/$$f" || exit 1; \ echo " $(INSTALL_DATA) '$$d2'/* '$(DESTDIR)$(htmldir)/$$f'"; \ $(INSTALL_DATA) "$$d2"/* "$(DESTDIR)$(htmldir)/$$f" || exit $$?; \ else \ list2="$$list2 $$d2"; \ fi; \ done; \ test -z "$$list2" || { echo "$$list2" | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(htmldir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(htmldir)" || exit $$?; \ done; } install-info: install-info-am install-info-am: $(INFO_DEPS) @$(NORMAL_INSTALL) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(infodir)'"; \ $(MKDIR_P) "$(DESTDIR)$(infodir)" || exit 1; \ fi; \ for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ esac; \ if test -f $$file; then d=.; else d=$(srcdir); fi; \ file_i=`echo "$$file" | sed 's|\.info$$||;s|$$|.i|'`; \ for ifile in $$d/$$file $$d/$$file-[0-9] $$d/$$file-[0-9][0-9] \ $$d/$$file_i[0-9] $$d/$$file_i[0-9][0-9] ; do \ if test -f $$ifile; then \ echo "$$ifile"; \ else : ; fi; \ done; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(infodir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(infodir)" || exit $$?; done @$(POST_INSTALL) @if $(am__can_run_installinfo); then \ list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \ for file in $$list; do \ relfile=`echo "$$file" | sed 's|^.*/||'`; \ echo " install-info --info-dir='$(DESTDIR)$(infodir)' '$(DESTDIR)$(infodir)/$$relfile'";\ install-info --info-dir="$(DESTDIR)$(infodir)" "$(DESTDIR)$(infodir)/$$relfile" || :;\ done; \ else : ; fi install-man: install-man1 install-man3 install-pdf: install-pdf-am install-pdf-am: $(PDFS) @$(NORMAL_INSTALL) @list='$(PDFS)'; test -n "$(pdfdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(pdfdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(pdfdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pdfdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(pdfdir)" || exit $$?; done install-ps: install-ps-am install-ps-am: $(PSS) @$(NORMAL_INSTALL) @list='$(PSS)'; test -n "$(psdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(psdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(psdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(psdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(psdir)" || exit $$?; done installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-aminfo \ maintainer-clean-generic maintainer-clean-vti mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-aminfo mostlyclean-generic \ mostlyclean-libtool mostlyclean-vti pdf: pdf-am pdf-am: $(PDFS) ps: ps-am ps-am: $(PSS) uninstall-am: uninstall-dvi-am uninstall-html-am uninstall-info-am \ uninstall-man uninstall-pdf-am uninstall-ps-am uninstall-man: uninstall-man1 uninstall-man3 .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-aminfo clean-generic \ clean-libtool dist-info distclean distclean-generic \ distclean-libtool distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-man1 install-man3 install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-aminfo maintainer-clean-generic \ maintainer-clean-vti mostlyclean mostlyclean-aminfo \ mostlyclean-generic mostlyclean-libtool mostlyclean-vti pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-dvi-am \ uninstall-html-am uninstall-info-am uninstall-man \ uninstall-man1 uninstall-man3 uninstall-pdf-am uninstall-ps-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libextractor-1.3/doc/Makefile.am0000644000175000017500000000026412030403045013572 00000000000000man_MANS = extract.1 libextractor.3 EXTRA_DIST = $(man_MANS) DISTCLEANFILES = libextractor.cps info_TEXINFOS = libextractor.texi libextractor_TEXINFOS = gpl.texi fdl-1.3.texi libextractor-1.3/doc/mdate-sh0000755000175000017500000001371712255663141013213 00000000000000#!/bin/sh # Get modification time of a file or directory and pretty-print it. scriptversion=2010-08-21.06; # UTC # Copyright (C) 1995, 1996, 1997, 2003, 2004, 2005, 2007, 2009, 2010 # Free Software Foundation, Inc. # written by Ulrich Drepper , June 1995 # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # This file is maintained in Automake, please report # bugs to or send patches to # . if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST fi case $1 in '') echo "$0: No file. Try \`$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: mdate-sh [--help] [--version] FILE Pretty-print the modification day of FILE, in the format: 1 January 1970 Report bugs to . EOF exit $? ;; -v | --v*) echo "mdate-sh $scriptversion" exit $? ;; esac error () { echo "$0: $1" >&2 exit 1 } # Prevent date giving response in another language. LANG=C export LANG LC_ALL=C export LC_ALL LC_TIME=C export LC_TIME # GNU ls changes its time format in response to the TIME_STYLE # variable. Since we cannot assume `unset' works, revert this # variable to its documented default. if test "${TIME_STYLE+set}" = set; then TIME_STYLE=posix-long-iso export TIME_STYLE fi save_arg1=$1 # Find out how to get the extended ls output of a file or directory. if ls -L /dev/null 1>/dev/null 2>&1; then ls_command='ls -L -l -d' else ls_command='ls -l -d' fi # Avoid user/group names that might have spaces, when possible. if ls -n /dev/null 1>/dev/null 2>&1; then ls_command="$ls_command -n" fi # A `ls -l' line looks as follows on OS/2. # drwxrwx--- 0 Aug 11 2001 foo # This differs from Unix, which adds ownership information. # drwxrwx--- 2 root root 4096 Aug 11 2001 foo # # To find the date, we split the line on spaces and iterate on words # until we find a month. This cannot work with files whose owner is a # user named `Jan', or `Feb', etc. However, it's unlikely that `/' # will be owned by a user whose name is a month. So we first look at # the extended ls output of the root directory to decide how many # words should be skipped to get the date. # On HPUX /bin/sh, "set" interprets "-rw-r--r--" as options, so the "x" below. set x`$ls_command /` # Find which argument is the month. month= command= until test $month do test $# -gt 0 || error "failed parsing \`$ls_command /' output" shift # Add another shift to the command. command="$command shift;" case $1 in Jan) month=January; nummonth=1;; Feb) month=February; nummonth=2;; Mar) month=March; nummonth=3;; Apr) month=April; nummonth=4;; May) month=May; nummonth=5;; Jun) month=June; nummonth=6;; Jul) month=July; nummonth=7;; Aug) month=August; nummonth=8;; Sep) month=September; nummonth=9;; Oct) month=October; nummonth=10;; Nov) month=November; nummonth=11;; Dec) month=December; nummonth=12;; esac done test -n "$month" || error "failed parsing \`$ls_command /' output" # Get the extended ls output of the file or directory. set dummy x`eval "$ls_command \"\\\$save_arg1\""` # Remove all preceding arguments eval $command # Because of the dummy argument above, month is in $2. # # On a POSIX system, we should have # # $# = 5 # $1 = file size # $2 = month # $3 = day # $4 = year or time # $5 = filename # # On Darwin 7.7.0 and 7.6.0, we have # # $# = 4 # $1 = day # $2 = month # $3 = year or time # $4 = filename # Get the month. case $2 in Jan) month=January; nummonth=1;; Feb) month=February; nummonth=2;; Mar) month=March; nummonth=3;; Apr) month=April; nummonth=4;; May) month=May; nummonth=5;; Jun) month=June; nummonth=6;; Jul) month=July; nummonth=7;; Aug) month=August; nummonth=8;; Sep) month=September; nummonth=9;; Oct) month=October; nummonth=10;; Nov) month=November; nummonth=11;; Dec) month=December; nummonth=12;; esac case $3 in ???*) day=$1;; *) day=$3; shift;; esac # Here we have to deal with the problem that the ls output gives either # the time of day or the year. case $3 in *:*) set `date`; eval year=\$$# case $2 in Jan) nummonthtod=1;; Feb) nummonthtod=2;; Mar) nummonthtod=3;; Apr) nummonthtod=4;; May) nummonthtod=5;; Jun) nummonthtod=6;; Jul) nummonthtod=7;; Aug) nummonthtod=8;; Sep) nummonthtod=9;; Oct) nummonthtod=10;; Nov) nummonthtod=11;; Dec) nummonthtod=12;; esac # For the first six month of the year the time notation can also # be used for files modified in the last year. if (expr $nummonth \> $nummonthtod) > /dev/null; then year=`expr $year - 1` fi;; *) year=$3;; esac # The result. echo $day $month $year # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: libextractor-1.3/doc/libextractor.30000644000175000017500000000741712161402424014340 00000000000000.TH LIBEXTRACTOR 3 "Sept 4, 2012" "GNU libextractor 1.0.0" .SH NAME libextractor \- meta\-information extraction library 1.0.0 .SH SYNOPSIS \fB#include \fBconst char *EXTRACTOR_metatype_to_string (enum EXTRACTOR_MetaType \fItype\fB); \fBconst char *EXTRACTOR_metatype_to_description (enum EXTRACTOR_MetaType \fItype\fB); \fBenum EXTRACTOR_MetaTypeEXTRACTOR_metatype_get_max (void); \fBstruct EXTRACTOR_PluginList *EXTRACTOR_plugin_add_defaults (enum EXTRACTOR_Options \fIflags\fB); \fBstruct EXTRACTOR_PluginList *EXTRACTOR_plugin_add (struct EXTRACTOR_PluginList *\fIprev\fB, const char *\fIlibrary\fB, const char *\fIoptions\fB, enum EXTRACTOR_Options \fIflags\fB); \fBstruct EXTRACTOR_PluginList *EXTRACTOR_plugin_add_last (struct EXTRACTOR_PluginList *\fIprev\fB, const char *\fIlibrary\fB, const char *\fIoptions\fB, enum EXTRACTOR_Options \fIflags\fB); \fBstruct EXTRACTOR_PluginList *EXTRACTOR_plugin_add_config (struct EXTRACTOR_PluginList *\fIprev\fB, const char *\fIconfig\fB, enum EXTRACTOR_Options \fIflags\fB); \fBstruct EXTRACTOR_PluginList *EXTRACTOR_plugin_remove (struct EXTRACTOR_PluginList *\fIprev\fB, const char *\fIlibrary\fB); \fBvoid EXTRACTOR_plugin_remove_all (struct EXTRACTOR_PluginList *\fIplugins\fB); \fBvoid EXTRACTOR_extract (struct EXTRACTOR_PluginList *\fIplugins\fB, const char *\fIfilename\fB, const void *\fIdata\fB, size_t \fIsize\fB, EXTRACTOR_MetaDataProcessor \fIproc\fB, void *\fIproc_cls\fB); \fBint EXTRACTOR_meta_data_prin t(void *\fIhandle\fB, const char *\fIplugin_name\fB, enum EXTRACTOR_MetaType \fItype\fB, enum EXTRACTOR_MetaFormat \fIformat\fB, const char *\fIdata_mime_type\fB, const char *\fIdata\fB, size_t \fIdata_len\fB); \fBEXTRACTOR_VERSION .SH DESCRIPTION .P GNU libextractor is a simple library for keyword extraction. libextractor does not support all formats but supports a simple plugging mechanism such that you can quickly add extractors for additional formats, even without recompiling libextractor. libextractor typically ships with dozens of plugins that can be used to obtain meta data from common file-types. If you want to write your own plugin for some filetype, all you need to do is write a little library that implements a single method with this signature: \fBvoid EXTRACTOR_XXX_extract_method (struct EXTRACTOR_ExtractContext *\fIec\fB);\fP .P \fIec\fP contains function pointers for reading, seeking, getting the overall file size and returning meta data. There is also a field with options for the plugin. New plugins will be automatically located and used once they are installed in the respective directory (typically something like /usr/lib/libextractor/). .P The application \fBextract\fP gives an example how to use libextractor. .P The basic use of libextractor is to load the plugins (for example with \fBEXTRACTOR_plugin_add_defaults\fP), then to extract the keyword list using \fBEXTRACTOR_extract\fP, and finally unloading the plugins (with \fBEXTRACTOR_plugin_remove_all\fP). .P Textual meta data obtained from libextractor is supposed to be UTF-8 encoded if the text encoding is known. Plugins are supposed to convert meta\-data to UTF\-8 if necessary. The \fBEXTRACTOR_meta_data_print\fP function converts the UTF-8 keywords to the character set from the current locale before printing them. .P .SH "SEE ALSO" extract(1) .SH "LEGAL NOTICE" libextractor is released under the GPL and a GNU package (http://www.gnu.org/). .SH BUGS A couple of file-formats (on the order of 10^3) are not recognized... .SH AUTHORS extract was originally written by Christian Grothoff and Vidyut Samanta . Use to contact the current maintainer(s). .SH AVAILABILITY You can obtain the original author's latest version from http://www.gnu.org/software/libextractor/. libextractor-1.3/doc/version.texi0000644000175000017500000000013612255614107014130 00000000000000@set UPDATED 9 October 2012 @set UPDATED-MONTH October 2012 @set EDITION 1.3 @set VERSION 1.3 libextractor-1.3/doc/stamp-vti0000644000175000017500000000013612256015540013414 00000000000000@set UPDATED 9 October 2012 @set UPDATED-MONTH October 2012 @set EDITION 1.3 @set VERSION 1.3 libextractor-1.3/doc/libextractor.info0000644000175000017500000017777612255614107015160 00000000000000This is libextractor.info, produced by makeinfo version 4.13 from libextractor.texi. This manual is for GNU libextractor (version 1.2, 9 October 2012), a library for metadata extraction. Copyright (C) 2007, 2010, 2012 Christian Grothoff Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". INFO-DIR-SECTION Software libraries START-INFO-DIR-ENTRY * Libextractor: (libextractor). Metadata extraction library. END-INFO-DIR-ENTRY  File: libextractor.info, Node: Top, Next: Introduction, Up: (dir) The GNU libextractor Reference Manual ************************************* This manual is for GNU libextractor (version 1.2, 9 October 2012), a library for metadata extraction. Copyright (C) 2007, 2010, 2012 Christian Grothoff Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". * Menu: * Introduction:: What is GNU libextractor. * Preparation:: What you should do before using the library. * Generalities:: General library functions and data types. * Extracting meta data:: How to use GNU libextractor to obtain meta data. * Language bindings:: How to use GNU libextractor from languages other than C. * Utility functions:: Utility functions of GNU libextractor. * Existing Plugins:: What plugins are available. * Writing new Plugins:: How to write new plugins for GNU libextractor. * Internal utility functions:: Utility functions of GNU libextractor for writing plugins. * Reporting bugs:: How to report bugs or request new features. Appendices * GNU Free Documentation License:: Copying this manual. Indices * Index:: Index  File: libextractor.info, Node: Introduction, Next: Preparation, Prev: Top, Up: Top 1 Introduction ************** GNU libextractor is GNU's library for extracting meta data from files. Meta data includes format information (such as mime type, image dimensions, color depth, recording frequency), content descriptions (such as document title or document description) and copyright information (such as license, author and contributors). Meta data extraction is an inherently uncertain business -- a parse error can be a corrupt file, an incompatibility in the file format version, an entirely different file format or a bug in the parser. As a result of this uncertainty, GNU libextractor deliberately avoids to ever report any errors. Unexpected file contents simply result in less or possibly no meta data being extracted. GNU libextractor uses plugins to handle various file formats. Technically a plugin can support multiple file formats; however, most plugins only support one particular format. By default, GNU libextractor will use all plugins that are available and found in the plugin installation directory. Applications can request the use of only specific plugins or the exclusion of certain plugins. GNU libextractor is distributed with the `extract' command(1) which is a command-line tool for extracting meta data. `extract' is given a list of filenames and prints the resulting meta data to the console. The `extract' source code also serves as an advanced example for how to use GNU libextractor. This manual focuses on providing documentation for writing software with GNU libextractor. The only relevant parts for end-users are the chapter on compiling and installing GNU libextractor (*Note Preparation::.). Also, the chapter on existing plugins maybe of interest (*Note Existing Plugins::.). Additional documentation for end-users can be find in the man page on `extract' (using man extract). GNU libextractor is licensed under the GNU General Public License, specifically, since version 0.7, GNU libextractor is licensed under GPLv3 _or any later version_. ---------- Footnotes ---------- (1) Some distributions ship `extract' in a seperate package.  File: libextractor.info, Node: Preparation, Next: Generalities, Prev: Introduction, Up: Top 2 Preparation ************* This chapter first describes the general build instructions that should apply to all systems. Specific instructions for known problems for particular platforms are then described in individual sections afterwards. Compiling GNU libextractor follows the standard GNU autotools build process using `configure' and `make'. For details on the GNU autotools build process, read the `INSTALL' file and query ./configure --help for additional options. GNU libextractor has various dependencies, most of which are optional. Instead of specifying the names of the software packages, we will give the list in terms of the names of the respective Debian (wheezy) packages that should be installed. You absolutely need: * libtool * gcc * make * g++ * libltdl7-dev Recommended dependencies are: * zlib1g-dev * libbz2-dev * libgif-dev * libvorbis-dev * libflac-dev * libmpeg2-4-dev * librpm-dev * libgtk2.0-dev or libgtk3.0-dev * libgsf-1-dev * libqt4-dev * libpoppler-dev * libexiv2-dev * libavformat-dev * libswscale-dev * libgstreamer1.0-dev For Subversion access and compilation one also needs: * subversion * autoconf * automake Please notify us if we missed some dependencies (note that the list is supposed to only list direct dependencies, not transitive dependencies). Once you have compiled and installed GNU libextractor, you should have a file `extractor.h' installed in your `include/' directory. This file should be the starting point for your C and C++ development with GNU libextractor. The build process also installs the `extract' binary and man pages for `extract' and GNU libextractor. The `extract' man page documents the `extract' tool. The GNU libextractor man page gives a brief summary of the C API for GNU libextractor. When you install GNU libextractor, various plugins will be installed in the `lib/libextractor/' directory. The main library will be installed as `lib/libextractor.so'. Note that GNU libextractor will attempt to find the plugins relative to the path of the main library. Consequently, a package manager can move the library and its plugins to a different location later -- as long as the relative path between the main library and the plugins is preserved. As a method of last resort, the user can specify an environment variable LIBEXTRACTOR_PREFIX. If GNU libextractor cannot locate a plugin, it will look in LIBEXTRACTOR_PREFIX/lib/libextractor/. 2.1 Installation on GNU/Linux ============================= Should work using the standard instructions without problems. 2.2 Installation on FreeBSD =========================== Should work using the standard instructions without problems. 2.3 Installation on OpenBSD =========================== OpenBSD 3.8 also doesn't have CODESET in `langinfo.h'. CODESET is used in GNU libextractor in about three places. This causes problems during compilation. 2.4 Installation on NetBSD ========================== No reports so far. 2.5 Installation using MinGW ============================ Linking -lstdc++ with the provided libtool fails on Cygwin, this is a problem with libtool, there is unfortunately no flag to tell libtool how to do its job on Cygwin and it seems that it cannot be the default to set the library check to 'pass_all'. Patching libtool may help. Note: this is a rather dated report and may no longer apply. 2.6 Installation on OS X ======================== libextractor has two installation methods on Mac OS X: it can be installed as a Mac OS X framework or with the standard `./configure; make; make install' shell commands. The framework package is self-contained, but currently omits some of the extractor plugins that can be compiled in if libextractor is installed with `./configure; make; make install' (provided that the required dependencies exist.) 2.6.1 Installing and uninstalling the framework ----------------------------------------------- The binary framework is distributed as a disk image (`Extractor-x.x.xx.dmg'). Installation is done by opening the disk image and clicking `Extractor.pkg' inside it. The Mac OS X installer application will then run. The framework is installed to the root volume's `/Library/Frameworks' folder and installing will require admin privileges. The framework can be uninstalled by dragging `/Library/Frameworks/Extractor.framework' to the `Trash'. 2.6.2 Using the framework ------------------------- In the framework, the `extract' command line tool can be found at `/Library/Frameworks/Extractor.framework/Versions/Current/bin/extract' The framework can be used in software projects as a framework or as a dynamic library. When using the framework as a dynamic library in projects using autotools, one would most likely want to add "-I/Library/Frameworks/Extractor.framework/Versions/Current/include" to CPPFLAGS and "-L/Library/Frameworks/Extractor.framework/Versions/Current/lib" to LDFLAGS. 2.6.3 Example for using the framework ------------------------------------- // hello.c #include int main (int argc, char **argv) { struct EXTRACTOR_PluginList *el; el = EXTRACTOR_plugin_load_defaults (EXTRACTOR_OPTION_DEFAULT_POLICY); // ... EXTRACTOR_plugin_remove_all (el); return 0; } You can then compile the example using $ gcc -o hello hello.c -framework Extractor 2.6.4 Example for using the dynamic library ------------------------------------------- // hello.c #include int main() { struct EXTRACTOR_PluginList *el; el = EXTRACTOR_plugin_load_defaults (EXTRACTOR_OPTION_DEFAULT_POLICY); // ... EXTRACTOR_plugin_remove_all (el); return 0; } You can then compile the example using $ gcc -I/Library/Frameworks/Extractor.framework/Versions/Current/include \ -o hello hello.c \ -L/Library/Frameworks/Extractor.framework/Versions/Current/lib \ -lextractor Notice the difference in the `#include' line. 2.7 Note to package maintainers =============================== The suggested way to package GNU libextractor is to split it into roughly the following binary packages: * libextractor (main library only, only hard dependency for other packages depending on GNU libextractor) * extract (command-line tool and man page extract.1) * libextractor-dev (extractor.h header and man page libextractor.3) * libextractor-doc (this manual) * libextractor-plugins (plugins without external dependencies; recommended but not required by extract and libextractor package) * libextractor-plugin-XXX (plugin with dependency on libXXX, for example for XXX=mpeg this would be `libextractor_mpeg.so') * libextractor-plugins-all (meta package that requires all plugins except experimental plugins) This would enable minimal installations (i.e. for embedded systems) to not include any plugins, as well as moderate-size installations (that do not trigger GTK and X11) for systems that have limited resources. Right now, the MP4 plugin is experimental and does nothing and should thus never be included at all. The gstreamer plugin is experimental but largely works with the correct version of gstreamer and can thus be packaged (especially if the dependency is available on the target system) but should probably not be part of libextractor-plugins-all.  File: libextractor.info, Node: Generalities, Next: Extracting meta data, Prev: Preparation, Up: Top 3 Generalities ************** 3.1 Introduction to the "extract" command ========================================= The `extract' command takes a list of file names as arguments, extracts meta data from each of those files and prints the result to the console. By default, `extract' will use all available plugins and print all (non-binary) meta data that is found. The set of plugins used by `extract' can be controlled using the "-l" and "-n" options. Use "-n" to not load all of the default plugins. Use "-l NAME" to specifically load a certain plugin. For example, specify "-n -l mime" to only use the MIME plugin. Using the "-p" option the output of `extract' can be limited to only certain keyword types. Similarly, using the "-x" option, certain keyword types can be excluded. A list of all known keyword types can be obtained using the "-L" option. The output format of `extract' can be influenced with the "-V" (more verbose, lists filenames), "-g" (grep-friendly, all meta data on a single line per file) and "-b" (bibTeX style) options. 3.2 Common usage examples for "extract" ======================================= $ extract test/test.jpg comment - (C) 2001 by Christian Grothoff, using gimp 1.2 1 mimetype - image/jpeg $ extract -V -x comment test/test.jpg Keywords for file test/test.jpg: mimetype - image/jpeg $ extract -p comment test/test.jpg comment - (C) 2001 by Christian Grothoff, using gimp 1.2 1 $ extract -nV -l png.so -p comment test/test.jpg test/test.png Keywords for file test/test.jpg: Keywords for file test/test.png: comment - Testing keyword extraction 3.3 Introduction to the libextractor library ============================================ Each public symbol exported by GNU libextractor has the prefix EXTRACTOR_. All-caps names are used for constants. For the impatient, the minimal C code for using GNU libextractor (on the executing binary itself) looks like this: #include int main (int argc, char ** argv) { struct EXTRACTOR_PluginList *plugins = EXTRACTOR_plugin_add_defaults (EXTRACTOR_OPTION_DEFAULT_POLICY); EXTRACTOR_extract (plugins, argv[1], NULL, 0, &EXTRACTOR_meta_data_print, stdout); EXTRACTOR_plugin_remove_all (plugins); return 0; } The minimal API illustrated by this example is actually sufficient for many applications. The full external C API of GNU libextractor is described in chapter *Note Extracting meta data::. Bindings for other languages are described in chapter *Note Language bindings::. The API for writing new plugins is described in chapter *Note Writing new Plugins::. Note that it is possible for GNU libextractor to encounter a `SIGPIPE' during its execution. GNU libextractor -- as it is a library and as such should not interfere with your main application -- does NOT install a signal handler for `SIGPIPE'. You thus need to install a signal handler (or at least tell your system to ignore `SIGPIPE') if you want to avoid unexpected problems during calls to GNU libextractor.  File: libextractor.info, Node: Extracting meta data, Next: Language bindings, Prev: Generalities, Up: Top 4 Extracting meta data ********************** In order to extract meta data with GNU libextractor you first need to load the respective plugins and then call the extraction API with the plugins and the data to process. This section documents how to load and unload plugins, the various types and formats in which meta data is returned to the application and finally the extraction API itself. * Menu: * Plugin management:: How to load and unload plugins * Meta types:: About meta types * Meta formats:: About meta formats * Extracting:: How to use the extraction API  File: libextractor.info, Node: Plugin management, Next: Meta types, Up: Extracting meta data 4.1 Plugin management ===================== Using GNU libextractor from a multi-threaded parent process requires some care. The problem is that on most platforms GNU libextractor starts sub-processes for the actual extraction work. This is useful to isolate the parent process from potential bugs; however, it can cause problems if the parent process is multi-threaded. The issue is that at the time of the fork, another thread of the application may hold a lock (i.e. in gettext or libc). That lock would then never be released in the child process (as the other thread is not present in the child process). As a result, the child process would then deadlock on trying to acquire the lock and never terminate. This has actually been observed with a lock in GNU gettext that is triggered by the plugin startup code when it interacts with libltdl. The problem can be solved by loading the plugins using the `EXTRACTOR_OPTION_IN_PROCESS' option, which will run GNU libextractor in-process and thus avoid the locking issue. In this case, all of the functions for loading and unloading plugins, including EXTRACTOR_plugin_add_defaults and EXTRACTOR_plugin_remove_all, are thread-safe and reentrant. However, using the same plugin list from multiple threads at the same time is not safe. All plugin code is expected required to be reentrant and state-less, but due to the extensive use of 3rd party libraries this cannot be guaranteed. -- C Struct: EXTRACTOR_PluginList A plugin list represents a set of GNU libextractor plugins. Most of the GNU libextractor API is concerned with either constructing a plugin list or using it to extract meta data. The internal representation of the plugin list is of no concern to users or plugin developers. -- Function: void EXTRACTOR_plugin_remove_all (struct EXTRACTOR_PluginList *plugins) Unload all of the plugins in the given list. -- Function: struct EXTRACTOR_PluginList * EXTRACTOR_plugin_remove (struct EXTRACTOR_PluginList *plugins, const char*name) Unloads a particular plugin. The given name should be the short name of the plugin, for example "mime" for the mime-type extractor or "mpeg" for the MPEG extractor. -- Function: struct EXTRACTOR_PluginList * EXTRACTOR_plugin_add (struct EXTRACTOR_PluginList *plugins, const char* name,const char* options, enum EXTRACTOR_Options flags) Loads a particular plugin. The plugin is added to the existing list, which can be `NULL'. The second argument specifies the name of the plugin (i.e. "ogg"). The third argument can be `NULL' and specifies plugin-specific options. Finally, the last argument specifies if the plugin should be executed out-of-process (`EXTRACTOR_OPTION_DEFAULT_POLICY') or not. -- Function: struct EXTRACTOR_PluginList * EXTRACTOR_plugin_add_config (struct EXTRACTOR_PluginList *plugins, const char* config, enum EXTRACTOR_Options flags) Loads and unloads plugins based on a configuration string, modifying the existing list, which can be `NULL'. The string has the format "[-]NAME(OPTIONS){:[-]NAME(OPTIONS)}*". Prefixing the plugin name with a "-" means that the plugin should be unloaded. -- Function: struct EXTRACTOR_PluginList * EXTRACTOR_plugin_add_defaults (enum EXTRACTOR_Options flags) Loads all of the plugins in the plugin directory. This function is what most GNU libextractor applications should use to setup the plugins.  File: libextractor.info, Node: Meta types, Next: Meta formats, Prev: Plugin management, Up: Extracting meta data 4.2 Meta types ============== enum EXTRACTOR_MetaType is a C enum which defines a list of over 100 different types of meta data. The total number can differ between different GNU libextractor releases; the maximum value for the current release can be obtained using the EXTRACTOR_metatype_get_max function. All values in this enumeration are of the form EXTRACTOR_METATYPE_XXX. -- Function: const char * EXTRACTOR_metatype_to_string (enum EXTRACTOR_MetaType type) The function EXTRACTOR_metatype_to_string can be used to obtain a short English string `s' describing the meta data type. The string can be translated into other languages using GNU gettext with the domain set to GNU libextractor (dgettext("libextractor", s)). -- Function: const char * EXTRACTOR_metatype_to_description (enum EXTRACTOR_MetaType type) The function EXTRACTOR_metatype_to_description can be used to obtain a longer English string `s' describing the meta data type. The description may be empty if the short description returned by `EXTRACTOR_metatype_to_string' is already comprehensive. The string can be translated into other languages using GNU gettext with the domain set to GNU libextractor (dgettext("libextractor", s)).  File: libextractor.info, Node: Meta formats, Next: Extracting, Prev: Meta types, Up: Extracting meta data 4.3 Meta formats ================ enum EXTRACTOR_MetaFormat is a C enum which defines on a high level how the extracted meta data is represented. Currently, the library uses three formats: UTF-8 strings, C strings and binary data. A fourth value, `EXTRACTOR_METAFORMAT_UNKNOWN' is defined but not used. UTF-8 strings are 0-terminated strings that have been converted to UTF-8. The format code is `EXTRACTOR_METAFORMAT_UTF8'. Ideally, most text meta data will be of this format. Some file formats fail to specify the encoding used for the text. In this case, the text cannot be converted to UTF-8. However, the meta data is still known to be 0-terminated and presumably human-readable. In this case, the format code used is `EXTRACTOR_METAFORMAT_C_STRING'; however, this should not be understood to mean that the encoding is the same as that used by the C compiler. Finally, for binary data (mostly images), the format `EXTRACTOR_METAFORMAT_BINARY' is used. Naturally this is not a precise description of the meta format. Plugins can provide a more precise description (if known) by providing the respective mime type of the meta data. For example, binary image meta data could be also tagged as "image/png" and normal text would typically be tagged as "text/plain".  File: libextractor.info, Node: Extracting, Prev: Meta formats, Up: Extracting meta data 4.4 Extracting ============== -- Function Pointer: int (*EXTRACTOR_MetaDataProcessor)(void *cls, const char *plugin_name, enum EXTRACTOR_MetaType type, enum EXTRACTOR_MetaFormat format, const char *data_mime_type, const char *data, size_t data_len) Type of a function that libextractor calls for each meta data item found. CLS closure (user-defined) PLUGIN_NAME name of the plugin that produced this value; special values can be used (i.e. '' for zlib being used in the main libextractor library and yielding meta data); TYPE libextractor-type describing the meta data; FORMAT BASIC format information about data DATA_MIME_TYPE mime-type of data (not of the original file); can be `NULL' (if mime-type is not known); DATA actual meta-data found DATA_LEN number of bytes in data Return 0 to continue extracting, 1 to abort. -- Function: void EXTRACTOR_extract (struct EXTRACTOR_PluginList *plugins, const char *filename, const void *data, size_t size, EXTRACTOR_MetaDataProcessor proc, void *proc_cls) This is the main function for extracting keywords with GNU libextractor. The first argument is a plugin list which specifies the set of plugins that should be used for extracting meta data. The `filename' argument is optional and can be used to specify the name of a file to process. If `filename' is `NULL', then the `data' argument must point to the in-memory data to extract meta data from. If `filename' is non-`NULL', `data' can be `NULL'. If `data' is non-null, then `size' is the size of `data' in bytes. Otherwise `size' should be zero. For each meta data item found, GNU libextractor will call the `proc' function, passing `proc_cls' as the first argument to `proc'. The other arguments to `proc' depend on the specific meta data found. Meta data extraction should never really fail -- at worst, GNU libextractor should not call `proc' with any meta data. By design, GNU libextractor should never crash or leak memory, even given corrupt files as input. Note however, that running GNU libextractor on a corrupt file system (or incorrectly mmaped files) can result in the operating system sending a SIGBUS (bus error) to the process. As GNU libextractor typically runs plugins out-of-process, it first maps the file into memory and then attempts to decompress it. During decompression it is possible to encounter a SIGBUS. GNU libextractor will _not_ attempt to catch this signal and your application is likely to crash. Note again that this should only happen if the file _system_ is corrupt (not if individual files are corrupt). If this is not acceptable, you might want to consider running GNU libextractor itself also out-of-process (as done, for example, by doodle (http://grothoff.org/christian/doodle/)).  File: libextractor.info, Node: Language bindings, Next: Utility functions, Prev: Extracting meta data, Up: Top 5 Language bindings ******************* GNU libextractor works immediately with C and C++ code. Bindings for Java, Mono, Ruby, Perl, PHP and Python are available for download from the main GNU libextractor website. Documentation for these bindings (if available) is part of the downloads for the respective binding. In all cases, a full installation of the C library is required before the binding can be installed. 5.1 Java ======== Compiling the GNU libextractor Java binding follows the usual process of running `configure' and `make'. The result will be a shared C library `libextractor_java.so' with the native code and a JAR file (installed to `$PREFIX/share/java/libextractor.java'). A minimal example for using GNU libextractor's Java binding would look like this: import org.gnu.libextractor.*; import java.util.ArrayList; public static void main(String[] args) { Extractor ex = Extractor.getDefault(); for (int i=0;iread (ec->cls, &data, 4))) return; /* read error */ if (data_size < 4) return; /* file too small */ if (0 != memcmp (data, "\177ELF", 4)) return; /* not ELF */ if (0 != ec->proc (ec->cls, "mymime", EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "application/x-executable", 1 + strlen("application/x-executable"))) return; /* more calls to 'proc' here as needed */ }  File: libextractor.info, Node: Internal utility functions, Next: Reporting bugs, Prev: Writing new Plugins, Up: Top 9 Internal utility functions **************************** Some plugins link against the `libextractor_common' library which provides common abstractions needed by many plugins. This section documents this internal API for plugin developers. Note that the headers for this library are (intentionally) not installed: we do not consider this API stable and it should hence only be used by plugins that are build and shipped with GNU libextractor. Third-party plugins should not use it. `convert_numeric.h' defines various conversion functions for numbers (in particular, byte-order conversion for floating point numbers). `unzip.h' defines an API for accessing compressed files. `pack.h' provides an interpreter for unpacking structs of integer numbers from streams and converting from big or little endian to host byte order at the same time. `convert.h' provides a function for character set conversion described below. -- Function: char * EXTRACTOR_common_convert_to_utf8 (const char *input, size_t len, const char *charset) Various GNU libextractor plugins make use of the internal `convert.h' header which defines a function EXTRACTOR_common_convert_to_utf8 which can be used to easily convert text from any character set to UTF-8. This conversion is important since the linked list of keywords that is returned by GNU libextractor is expected to contain only UTF-8 strings. Naturally, proper conversion may not always be possible since some file formats fail to specify the character set. In that case, it is often better to not convert at all. The arguments to EXTRACTOR_common_convert_to_utf8 are the input string (which does _not_ have to be zero-terminated), the length of the input string, and the character set (which _must_ be zero-terminated). Which character sets are supported depends on the platform, a list can generally be obtained using the `iconv -l' command. The return value from EXTRACTOR_common_convert_to_utf8 is a zero-terminated string in UTF-8 format. The responsibility to free the string is with the caller, so storing the string in the keyword list is acceptable.  File: libextractor.info, Node: Reporting bugs, Next: GNU Free Documentation License, Prev: Internal utility functions, Up: Top 10 Reporting bugs ***************** GNU libextractor uses the Mantis bugtracking system (https://gnunet.org/bugs/). If possible, please report bugs there. You can also e-mail the GNU libextractor mailinglist at `libextractor@gnu.org'.  File: libextractor.info, Node: GNU Free Documentation License, Next: Index, Prev: Reporting bugs, Up: Top Appendix A GNU Free Documentation License ***************************************** Version 1.3, 3 November 2008 Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. `http://fsf.org/' Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. 0. PREAMBLE The purpose of this License is to make a manual, textbook, or other functional and useful document "free" in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others. This License is a kind of "copyleft", which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software. We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference. 1. APPLICABILITY AND DEFINITIONS This License applies to any manual or other work, in any medium, that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. Such a notice grants a world-wide, royalty-free license, unlimited in duration, to use that work under the conditions stated herein. The "Document", below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as "you". You accept the license if you copy, modify or distribute the work in a way requiring permission under copyright law. A "Modified Version" of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language. A "Secondary Section" is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (Thus, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them. The "Invariant Sections" are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. If a section does not fit the above definition of Secondary then it is not allowed to be designated as Invariant. The Document may contain zero Invariant Sections. If the Document does not identify any Invariant Sections then there are none. The "Cover Texts" are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License. A Front-Cover Text may be at most 5 words, and a Back-Cover Text may be at most 25 words. A "Transparent" copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, that is suitable for revising the document straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup, or absence of markup, has been arranged to thwart or discourage subsequent modification by readers is not Transparent. An image format is not Transparent if used for any substantial amount of text. A copy that is not "Transparent" is called "Opaque". Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML, PostScript or PDF designed for human modification. Examples of transparent image formats include PNG, XCF and JPG. Opaque formats include proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML, PostScript or PDF produced by some word processors for output purposes only. The "Title Page" means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, "Title Page" means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text. The "publisher" means any person or entity that distributes copies of the Document to the public. A section "Entitled XYZ" means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a specific section name mentioned below, such as "Acknowledgements", "Dedications", "Endorsements", or "History".) To "Preserve the Title" of such a section when you modify the Document means that it remains a section "Entitled XYZ" according to this definition. The Document may include Warranty Disclaimers next to the notice which states that this License applies to the Document. These Warranty Disclaimers are considered to be included by reference in this License, but only as regards disclaiming warranties: any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License. 2. VERBATIM COPYING You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3. You may also lend copies, under the same conditions stated above, and you may publicly display copies. 3. COPYING IN QUANTITY If you publish printed copies (or copies in media that commonly have printed covers) of the Document, numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects. If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages. If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a computer-network location from which the general network-using public has access to download using public-standard network protocols a complete Transparent copy of the Document, free of added material. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public. It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document. 4. MODIFICATIONS You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version: A. Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission. B. List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has fewer than five), unless they release you from this requirement. C. State on the Title page the name of the publisher of the Modified Version, as the publisher. D. Preserve all the copyright notices of the Document. E. Add an appropriate copyright notice for your modifications adjacent to the other copyright notices. F. Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below. G. Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice. H. Include an unaltered copy of this License. I. Preserve the section Entitled "History", Preserve its Title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section Entitled "History" in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence. J. Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the "History" section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission. K. For any section Entitled "Acknowledgements" or "Dedications", Preserve the Title of the section, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein. L. Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles. M. Delete any section Entitled "Endorsements". Such a section may not be included in the Modified Version. N. Do not retitle any existing section to be Entitled "Endorsements" or to conflict in title with any Invariant Section. O. Preserve any Warranty Disclaimers. If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles. You may add a section Entitled "Endorsements", provided it contains nothing but endorsements of your Modified Version by various parties--for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard. You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one. The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version. 5. COMBINING DOCUMENTS You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice, and that you preserve all their Warranty Disclaimers. The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work. In the combination, you must combine any sections Entitled "History" in the various original documents, forming one section Entitled "History"; likewise combine any sections Entitled "Acknowledgements", and any sections Entitled "Dedications". You must delete all sections Entitled "Endorsements." 6. COLLECTIONS OF DOCUMENTS You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects. You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document. 7. AGGREGATION WITH INDEPENDENT WORKS A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, is called an "aggregate" if the copyright resulting from the compilation is not used to limit the legal rights of the compilation's users beyond what the individual works permit. When the Document is included in an aggregate, this License does not apply to the other works in the aggregate which are not themselves derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one half of the entire aggregate, the Document's Cover Texts may be placed on covers that bracket the Document within the aggregate, or the electronic equivalent of covers if the Document is in electronic form. Otherwise they must appear on printed covers that bracket the whole aggregate. 8. TRANSLATION Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License, and all the license notices in the Document, and any Warranty Disclaimers, provided that you also include the original English version of this License and the original versions of those notices and disclaimers. In case of a disagreement between the translation and the original version of this License or a notice or disclaimer, the original version will prevail. If a section in the Document is Entitled "Acknowledgements", "Dedications", or "History", the requirement (section 4) to Preserve its Title (section 1) will typically require changing the actual title. 9. TERMINATION You may not copy, modify, sublicense, or distribute the Document except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, or distribute it is void, and will automatically terminate your rights under this License. However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, receipt of a copy of some or all of the same material does not give you any rights to use it. 10. FUTURE REVISIONS OF THIS LICENSE The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See `http://www.gnu.org/copyleft/'. Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License "or any later version" applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation. If the Document specifies that a proxy can decide which future versions of this License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Document. 11. RELICENSING "Massive Multiauthor Collaboration Site" (or "MMC Site") means any World Wide Web server that publishes copyrightable works and also provides prominent facilities for anybody to edit those works. A public wiki that anybody can edit is an example of such a server. A "Massive Multiauthor Collaboration" (or "MMC") contained in the site means any set of copyrightable works thus published on the MMC site. "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0 license published by Creative Commons Corporation, a not-for-profit corporation with a principal place of business in San Francisco, California, as well as future copyleft versions of that license published by that same organization. "Incorporate" means to publish or republish a Document, in whole or in part, as part of another Document. An MMC is "eligible for relicensing" if it is licensed under this License, and if all works that were first published under this License somewhere other than this MMC, and subsequently incorporated in whole or in part into the MMC, (1) had no cover texts or invariant sections, and (2) were thus incorporated prior to November 1, 2008. The operator of an MMC Site may republish an MMC contained in the site under CC-BY-SA on the same site at any time before August 1, 2009, provided the MMC is eligible for relicensing. ADDENDUM: How to use this License for your documents ==================================================== To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page: Copyright (C) YEAR YOUR NAME. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled ``GNU Free Documentation License''. If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, replace the "with...Texts." line with this: with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. If you have Invariant Sections without Cover Texts, or some other combination of the three, merge those two alternatives to suit the situation. If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software.  File: libextractor.info, Node: Index, Prev: GNU Free Documentation License, Up: Top Index ***** [index] * Menu: * (: Extracting. (line 10) * bug: Reporting bugs. (line 6) * bus error: Extracting. (line 56) * character set: Internal utility functions. (line 28) * concurrency <1>: Utility functions. (line 6) * concurrency <2>: Extracting. (line 43) * concurrency: Plugin management. (line 6) * directory structure: Preparation. (line 83) * enum EXTRACTOR_MetaFormat: Meta formats. (line 6) * enum EXTRACTOR_MetaType: Meta types. (line 6) * enum EXTRACTOR_Options: Plugin management. (line 6) * environment variables: Preparation. (line 83) * error handling: Introduction. (line 6) * EXTRACTOR_common_convert_to_utf8: Internal utility functions. (line 28) * EXTRACTOR_extract: Extracting. (line 43) * EXTRACTOR_meta_data_print: Meta data printing. (line 6) * EXTRACTOR_MetaDataProcessor: Extracting. (line 10) * EXTRACTOR_metatype_get_max: Meta types. (line 6) * EXTRACTOR_metatype_to_description: Meta types. (line 22) * EXTRACTOR_metatype_to_string: Meta types. (line 14) * EXTRACTOR_plugin_add: Plugin management. (line 51) * EXTRACTOR_plugin_add_config: Plugin management. (line 61) * EXTRACTOR_plugin_add_defaults: Plugin management. (line 68) * EXTRACTOR_plugin_remove: Plugin management. (line 44) * EXTRACTOR_plugin_remove_all: Plugin management. (line 40) * EXTRACTOR_PluginList: Plugin management. (line 32) * EXTRACTOR_VERSION: Utility Constants. (line 6) * gettext: Meta types. (line 14) * internationalization: Meta types. (line 14) * Java: Language bindings. (line 6) * LIBEXTRACTOR_PREFIX: Preparation. (line 83) * license: Introduction. (line 38) * Mono: Language bindings. (line 6) * packageing: Preparation. (line 83) * Perl: Language bindings. (line 6) * PHP: Language bindings. (line 6) * plugin <1>: Preparation. (line 83) * plugin: Introduction. (line 18) * Python: Language bindings. (line 6) * reentrant <1>: Utility functions. (line 6) * reentrant <2>: Extracting. (line 43) * reentrant: Plugin management. (line 6) * Ruby: Language bindings. (line 6) * SIGBUS: Extracting. (line 56) * SIGPIPE: Generalities. (line 81) * struct EXTRACTOR_PluginList: Plugin management. (line 32) * thread-safety <1>: Utility functions. (line 6) * thread-safety <2>: Extracting. (line 43) * thread-safety: Plugin management. (line 6) * threads <1>: Utility functions. (line 6) * threads <2>: Extracting. (line 43) * threads: Plugin management. (line 6) * UTF-8: Internal utility functions. (line 28)  Tag Table: Node: Top784 Node: Introduction2384 Ref: Introduction-Footnote-14531 Node: Preparation4596 Node: Generalities12212 Node: Extracting meta data15446 Node: Plugin management16158 Node: Meta types19811 Node: Meta formats21226 Node: Extracting22619 Node: Language bindings25803 Node: Utility functions27700 Node: Utility Constants28024 Node: Meta data printing28643 Node: Existing Plugins29184 Node: Writing new Plugins30224 Node: Internal utility functions32848 Node: Reporting bugs35194 Node: GNU Free Documentation License35566 Node: Index60740  End Tag Table libextractor-1.3/doc/extract.10000644000175000017500000000667212021444064013311 00000000000000.TH EXTRACT 1 "Aug 7, 2012" "libextractor 1.0.0" .\" $Id .SH NAME extract \- determine meta-information about a file .SH SYNOPSIS .B extract [ .B \-bgihLmnvV ] [ .B \-l .I library ] [ .B \-p .I type ] [ .B \-x .I type ] .I file \&... .br .SH DESCRIPTION This manual page documents version 1.0.0 of the .B extract command. .PP .B extract tests each file specified in the argument list in an attempt to infer meta\-information from it. Each file is subjected to the meta\-data extraction libraries from .I libextractor. .PP libextractor classifies meta\-information (also referred to as keywords) into types. A list of all types can be obtained with the .B \-L option. .SH OPTIONS .TP 8 .B \-b Display the output in BiBTeX format. .TP 8 .B \-g Use grep\-friendly output (all keywords on a single line for each file). Use the verbose option to print the filename first, followed by the keywords. Use the verbose option twice to also display the keyword types. This option will not print keyword types or non\-textual metadata. .TP 8 .B \-h Print a brief summary of the options. .TP 8 .B \-i Run plugins in\-process (for debugging). By default, each plugin is run in its own process. .TP 8 .BI \-l " libraries" Use the specified libraries to extract keywords. The general format of libraries is .I [[\-]LIBRARYNAME[:[\-]LIBRARYNAME]*] where LIBRARYNAME is a libextractor compatible library and typically of the form .Ijpeg\. The minus before the libraryname indicates that this library should be removed from the existing list. To run only a few selected plugins, use \-l in combination with \-n. .TP 8 .B \-L Print a list of all known keyword types. .TP 8 .B \-m Load the file into memory and perform extraction from memory (for debugging). .TP 8 .B \-n Do not use the default set of extractors (typically all standard extractors, currently mp3, ogg, jpg, gif, png, tiff, real, html, pdf and mime\-types), use only the extractors specified with the .B \-l option. .TP .B \-p " type" Print only the keywords matching the specified type. By default, all keywords that are found and not removed as duplicates are printed. .TP 8 .B \-v Print the version number and exit. .TP 8 .B \-V Be verbose. This option can be specified multiple times to increase verbosity further. .TP 8 .I \-x " type" Exclude keywords of the specified type from the output. By default, all keywords that are found and not removed as duplicates are printed. .SH "SEE ALSO" .BR libextractor (3) \- description of the libextractor library .br .SH EXAMPLES .nf $ extract test/test.jpg comment \- (C) 2001 by Christian Grothoff, using gimp 1.2 1 mimetype \- image/jpeg $ extract \-V \-x comment test/test.jpg Keywords for file test/test.jpg: mimetype \- image/jpeg $ extract \-p comment test/test.jpg comment \- (C) 2001 by Christian Grothoff, using gimp 1.2 1 $ extract \-nV \-l png.so \-p comment test/test.jpg test/test.png Keywords for file test/test.jpg: Keywords for file test/test.png: comment \- Testing keyword extraction .SH "LEGAL NOTICE" libextractor and the extract tool are released under the GPL. libextractor is a GNU package. .SH BUGS A couple of file\-formats (on the order of 10^3) are not recognized... .SH AUTHORS .B extract was originally written by Christian Grothoff and Vidyut Samanta . Use to contact the current maintainer(s). .SH AVAILABILITY You can obtain the original author's latest version from http://www.gnu.org/software/libextractor/ libextractor-1.3/doc/libextractor.texi0000644000175000017500000010641012035101004015126 00000000000000\input texinfo @c -*- Texinfo -*- @c % The structure of this document is based on the @c % Texinfo manual from libgcrypt by Werner Koch and @c % and Moritz Schulte. @c %**start of header @setfilename libextractor.info @include version.texi @settitle The GNU libextractor Reference Manual @c Unify all the indices into concept index. @syncodeindex fn cp @syncodeindex vr cp @syncodeindex ky cp @syncodeindex pg cp @syncodeindex tp cp @c %**end of header @copying This manual is for GNU libextractor (version @value{VERSION}, @value{UPDATED}), a library for metadata extraction. Copyright @copyright{} 2007, 2010, 2012 Christian Grothoff @quotation Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled ``GNU Free Documentation License''. @end quotation @end copying @dircategory Software libraries @direntry * Libextractor: (libextractor). Metadata extraction library. @end direntry @c @c Titlepage @c @titlepage @title The GNU libextractor Reference Manual @subtitle Version @value{VERSION} @subtitle @value{UPDATED} @author Christian Grothoff (@email{christian@@grothoff.org}) @page @vskip 0pt plus 1filll @insertcopying @end titlepage @summarycontents @contents @ifnottex @node Top @top The GNU libextractor Reference Manual @insertcopying @end ifnottex @menu * Introduction:: What is GNU libextractor. * Preparation:: What you should do before using the library. * Generalities:: General library functions and data types. * Extracting meta data:: How to use GNU libextractor to obtain meta data. * Language bindings:: How to use GNU libextractor from languages other than C. * Utility functions:: Utility functions of GNU libextractor. * Existing Plugins:: What plugins are available. * Writing new Plugins:: How to write new plugins for GNU libextractor. * Internal utility functions:: Utility functions of GNU libextractor for writing plugins. * Reporting bugs:: How to report bugs or request new features. Appendices * GNU Free Documentation License:: Copying this manual. Indices * Index:: Index @c * Function and Data Index:: Index of functions, variables and data types. @c * Type Index:: Index of data types. @end menu @c ********************************************************** @c ******************* Introduction *********************** @c ********************************************************** @node Introduction @chapter Introduction @cindex error handling GNU libextractor is GNU's library for extracting meta data from files. Meta data includes format information (such as mime type, image dimensions, color depth, recording frequency), content descriptions (such as document title or document description) and copyright information (such as license, author and contributors). Meta data extraction is an inherently uncertain business --- a parse error can be a corrupt file, an incompatibility in the file format version, an entirely different file format or a bug in the parser. As a result of this uncertainty, GNU libextractor deliberately avoids to ever report any errors. Unexpected file contents simply result in less or possibly no meta data being extracted. @cindex plugin GNU libextractor uses plugins to handle various file formats. Technically a plugin can support multiple file formats; however, most plugins only support one particular format. By default, GNU libextractor will use all plugins that are available and found in the plugin installation directory. Applications can request the use of only specific plugins or the exclusion of certain plugins. GNU libextractor is distributed with the @command{extract} command@footnote{Some distributions ship @command{extract} in a seperate package.} which is a command-line tool for extracting meta data. @command{extract} is given a list of filenames and prints the resulting meta data to the console. The @command{extract} source code also serves as an advanced example for how to use GNU libextractor. This manual focuses on providing documentation for writing software with GNU libextractor. The only relevant parts for end-users are the chapter on compiling and installing GNU libextractor (@xref{Preparation}.). Also, the chapter on existing plugins maybe of interest (@xref{Existing Plugins}.). Additional documentation for end-users can be find in the man page on @command{extract} (using @verb{|man extract|}). @cindex license GNU libextractor is licensed under the GNU General Public License, specifically, since version 0.7, GNU libextractor is licensed under GPLv3 @emph{or any later version}. @node Preparation @chapter Preparation This chapter first describes the general build instructions that should apply to all systems. Specific instructions for known problems for particular platforms are then described in individual sections afterwards. Compiling GNU libextractor follows the standard GNU autotools build process using @command{configure} and @command{make}. For details on the GNU autotools build process, read the @file{INSTALL} file and query @verb{|./configure --help|} for additional options. GNU libextractor has various dependencies, most of which are optional. Instead of specifying the names of the software packages, we will give the list in terms of the names of the respective Debian (wheezy) packages that should be installed. You absolutely need: @itemize @bullet @item libtool @item gcc @item make @item g++ @item libltdl7-dev @end itemize Recommended dependencies are: @itemize @bullet @item zlib1g-dev @item libbz2-dev @item libgif-dev @item libvorbis-dev @item libflac-dev @item libmpeg2-4-dev @item librpm-dev @item libgtk2.0-dev or libgtk3.0-dev @item libgsf-1-dev @item libqt4-dev @item libpoppler-dev @item libexiv2-dev @item libavformat-dev @item libswscale-dev @item libgstreamer1.0-dev @end itemize For Subversion access and compilation one also needs: @itemize @bullet @item subversion @item autoconf @item automake @end itemize Please notify us if we missed some dependencies (note that the list is supposed to only list direct dependencies, not transitive dependencies). Once you have compiled and installed GNU libextractor, you should have a file @file{extractor.h} installed in your @file{include/} directory. This file should be the starting point for your C and C++ development with GNU libextractor. The build process also installs the @file{extract} binary and man pages for @file{extract} and GNU libextractor. The @file{extract} man page documents the @file{extract} tool. The GNU libextractor man page gives a brief summary of the C API for GNU libextractor. @cindex packageing @cindex directory structure @cindex plugin @cindex environment variables @vindex LIBEXTRACTOR_PREFIX When you install GNU libextractor, various plugins will be installed in the @file{lib/libextractor/} directory. The main library will be installed as @file{lib/libextractor.so}. Note that GNU libextractor will attempt to find the plugins relative to the path of the main library. Consequently, a package manager can move the library and its plugins to a different location later --- as long as the relative path between the main library and the plugins is preserved. As a method of last resort, the user can specify an environment variable @verb{|LIBEXTRACTOR_PREFIX|}. If GNU libextractor cannot locate a plugin, it will look in @verb{|LIBEXTRACTOR_PREFIX/lib/libextractor/|}. @section Installation on GNU/Linux Should work using the standard instructions without problems. @section Installation on FreeBSD Should work using the standard instructions without problems. @section Installation on OpenBSD OpenBSD 3.8 also doesn't have CODESET in @file{langinfo.h}. CODESET is used in GNU libextractor in about three places. This causes problems during compilation. @section Installation on NetBSD No reports so far. @section Installation using MinGW Linking -lstdc++ with the provided libtool fails on Cygwin, this is a problem with libtool, there is unfortunately no flag to tell libtool how to do its job on Cygwin and it seems that it cannot be the default to set the library check to 'pass_all'. Patching libtool may help. Note: this is a rather dated report and may no longer apply. @section Installation on OS X libextractor has two installation methods on Mac OS X: it can be installed as a Mac OS X framework or with the standard @command{./configure; make; make install} shell commands. The framework package is self-contained, but currently omits some of the extractor plugins that can be compiled in if libextractor is installed with @command{./configure; make; make install} (provided that the required dependencies exist.) @subsection Installing and uninstalling the framework The binary framework is distributed as a disk image (@file{Extractor-x.x.xx.dmg}). Installation is done by opening the disk image and clicking @file{Extractor.pkg} inside it. The Mac OS X installer application will then run. The framework is installed to the root volume's @file{/Library/Frameworks} folder and installing will require admin privileges. The framework can be uninstalled by dragging @* @file{/Library/Frameworks/Extractor.framework} to the @file{Trash}. @subsection Using the framework In the framework, the @command{extract} command line tool can be found at @* @file{/Library/Frameworks/Extractor.framework/Versions/Current/bin/extract} The framework can be used in software projects as a framework or as a dynamic library. When using the framework as a dynamic library in projects using autotools, one would most likely want to add @* "-I/Library/Frameworks/Extractor.framework/Versions/Current/include" to CPPFLAGS and @* "-L/Library/Frameworks/Extractor.framework/Versions/Current/lib" to LDFLAGS. @subsection Example for using the framework @example @verbatim // hello.c #include int main (int argc, char **argv) { struct EXTRACTOR_PluginList *el; el = EXTRACTOR_plugin_load_defaults (EXTRACTOR_OPTION_DEFAULT_POLICY); // ... EXTRACTOR_plugin_remove_all (el); return 0; } @end verbatim @end example You can then compile the example using @verbatim $ gcc -o hello hello.c -framework Extractor @end verbatim @subsection Example for using the dynamic library @example @verbatim // hello.c #include int main() { struct EXTRACTOR_PluginList *el; el = EXTRACTOR_plugin_load_defaults (EXTRACTOR_OPTION_DEFAULT_POLICY); // ... EXTRACTOR_plugin_remove_all (el); return 0; } @end verbatim @end example You can then compile the example using @verbatim $ gcc -I/Library/Frameworks/Extractor.framework/Versions/Current/include \ -o hello hello.c \ -L/Library/Frameworks/Extractor.framework/Versions/Current/lib \ -lextractor @end verbatim Notice the difference in the @code{#include} line. @section Note to package maintainers The suggested way to package GNU libextractor is to split it into roughly the following binary packages: @itemize @bullet @item libextractor (main library only, only hard dependency for other packages depending on GNU libextractor) @item extract (command-line tool and man page extract.1) @item libextractor-dev (extractor.h header and man page libextractor.3) @item libextractor-doc (this manual) @item libextractor-plugins (plugins without external dependencies; recommended but not required by extract and libextractor package) @item libextractor-plugin-XXX (plugin with dependency on libXXX, for example for XXX=mpeg this would be @file{libextractor_mpeg.so}) @item libextractor-plugins-all (meta package that requires all plugins except experimental plugins) @end itemize This would enable minimal installations (i.e. for embedded systems) to not include any plugins, as well as moderate-size installations (that do not trigger GTK and X11) for systems that have limited resources. Right now, the MP4 plugin is experimental and does nothing and should thus never be included at all. The gstreamer plugin is experimental but largely works with the correct version of gstreamer and can thus be packaged (especially if the dependency is available on the target system) but should probably not be part of libextractor-plugins-all. @node Generalities @chapter Generalities @section Introduction to the ``extract'' command The @command{extract} command takes a list of file names as arguments, extracts meta data from each of those files and prints the result to the console. By default, @command{extract} will use all available plugins and print all (non-binary) meta data that is found. The set of plugins used by @command{extract} can be controlled using the ``-l'' and ``-n'' options. Use ``-n'' to not load all of the default plugins. Use ``-l NAME'' to specifically load a certain plugin. For example, specify ``-n -l mime'' to only use the MIME plugin. Using the ``-p'' option the output of @command{extract} can be limited to only certain keyword types. Similarly, using the ``-x'' option, certain keyword types can be excluded. A list of all known keyword types can be obtained using the ``-L'' option. The output format of @command{extract} can be influenced with the ``-V'' (more verbose, lists filenames), ``-g'' (grep-friendly, all meta data on a single line per file) and ``-b'' (bibTeX style) options. @section Common usage examples for ``extract'' @example $ extract test/test.jpg comment - (C) 2001 by Christian Grothoff, using gimp 1.2 1 mimetype - image/jpeg $ extract -V -x comment test/test.jpg Keywords for file test/test.jpg: mimetype - image/jpeg $ extract -p comment test/test.jpg comment - (C) 2001 by Christian Grothoff, using gimp 1.2 1 $ extract -nV -l png.so -p comment test/test.jpg test/test.png Keywords for file test/test.jpg: Keywords for file test/test.png: comment - Testing keyword extraction @end example @section Introduction to the libextractor library Each public symbol exported by GNU libextractor has the prefix @verb{|EXTRACTOR_|}. All-caps names are used for constants. For the impatient, the minimal C code for using GNU libextractor (on the executing binary itself) looks like this: @verbatim #include int main (int argc, char ** argv) { struct EXTRACTOR_PluginList *plugins = EXTRACTOR_plugin_add_defaults (EXTRACTOR_OPTION_DEFAULT_POLICY); EXTRACTOR_extract (plugins, argv[1], NULL, 0, &EXTRACTOR_meta_data_print, stdout); EXTRACTOR_plugin_remove_all (plugins); return 0; } @end verbatim The minimal API illustrated by this example is actually sufficient for many applications. The full external C API of GNU libextractor is described in chapter @xref{Extracting meta data}. Bindings for other languages are described in chapter @xref{Language bindings}. The API for writing new plugins is described in chapter @xref{Writing new Plugins}. Note that it is possible for GNU libextractor to encounter a @code{SIGPIPE} during its execution. GNU libextractor --- as it is a library and as such should not interfere with your main application --- does NOT install a signal handler for @code{SIGPIPE}. You thus need to install a signal handler (or at least tell your system to ignore @code{SIGPIPE}) if you want to avoid unexpected problems during calls to GNU libextractor. @cindex SIGPIPE @node Extracting meta data @chapter Extracting meta data In order to extract meta data with GNU libextractor you first need to load the respective plugins and then call the extraction API with the plugins and the data to process. This section documents how to load and unload plugins, the various types and formats in which meta data is returned to the application and finally the extraction API itself. @menu * Plugin management:: How to load and unload plugins * Meta types:: About meta types * Meta formats:: About meta formats * Extracting:: How to use the extraction API @end menu @node Plugin management @section Plugin management @cindex reentrant @cindex concurrency @cindex threads @cindex thread-safety @tindex enum EXTRACTOR_Options Using GNU libextractor from a multi-threaded parent process requires some care. The problem is that on most platforms GNU libextractor starts sub-processes for the actual extraction work. This is useful to isolate the parent process from potential bugs; however, it can cause problems if the parent process is multi-threaded. The issue is that at the time of the fork, another thread of the application may hold a lock (i.e. in gettext or libc). That lock would then never be released in the child process (as the other thread is not present in the child process). As a result, the child process would then deadlock on trying to acquire the lock and never terminate. This has actually been observed with a lock in GNU gettext that is triggered by the plugin startup code when it interacts with libltdl. The problem can be solved by loading the plugins using the @code{EXTRACTOR_OPTION_IN_PROCESS} option, which will run GNU libextractor in-process and thus avoid the locking issue. In this case, all of the functions for loading and unloading plugins, including @verb{|EXTRACTOR_plugin_add_defaults|} and @verb{|EXTRACTOR_plugin_remove_all|}, are thread-safe and reentrant. However, using the same plugin list from multiple threads at the same time is not safe. All plugin code is expected required to be reentrant and state-less, but due to the extensive use of 3rd party libraries this cannot be guaranteed. @deftp {C Struct} EXTRACTOR_PluginList @tindex struct EXTRACTOR_PluginList A plugin list represents a set of GNU libextractor plugins. Most of the GNU libextractor API is concerned with either constructing a plugin list or using it to extract meta data. The internal representation of the plugin list is of no concern to users or plugin developers. @end deftp @deftypefun void EXTRACTOR_plugin_remove_all (struct EXTRACTOR_PluginList *plugins) @findex EXTRACTOR_plugin_remove_all Unload all of the plugins in the given list. @end deftypefun @deftypefun {struct EXTRACTOR_PluginList *} EXTRACTOR_plugin_remove (struct EXTRACTOR_PluginList *plugins, const char*name) @findex EXTRACTOR_plugin_remove Unloads a particular plugin. The given name should be the short name of the plugin, for example ``mime'' for the mime-type extractor or ``mpeg'' for the MPEG extractor. @end deftypefun @deftypefun {struct EXTRACTOR_PluginList *} EXTRACTOR_plugin_add (struct EXTRACTOR_PluginList *plugins, const char* name,const char* options, enum EXTRACTOR_Options flags) @findex EXTRACTOR_plugin_add Loads a particular plugin. The plugin is added to the existing list, which can be @code{NULL}. The second argument specifies the name of the plugin (i.e. ``ogg''). The third argument can be @code{NULL} and specifies plugin-specific options. Finally, the last argument specifies if the plugin should be executed out-of-process (@code{EXTRACTOR_OPTION_DEFAULT_POLICY}) or not. @end deftypefun @deftypefun {struct EXTRACTOR_PluginList *} EXTRACTOR_plugin_add_config (struct EXTRACTOR_PluginList *plugins, const char* config, enum EXTRACTOR_Options flags) @findex EXTRACTOR_plugin_add_config Loads and unloads plugins based on a configuration string, modifying the existing list, which can be @code{NULL}. The string has the format ``[-]NAME(OPTIONS)@{:[-]NAME(OPTIONS)@}*''. Prefixing the plugin name with a ``-'' means that the plugin should be unloaded. @end deftypefun @deftypefun {struct EXTRACTOR_PluginList *} EXTRACTOR_plugin_add_defaults (enum EXTRACTOR_Options flags) @findex EXTRACTOR_plugin_add_defaults Loads all of the plugins in the plugin directory. This function is what most GNU libextractor applications should use to setup the plugins. @end deftypefun @node Meta types @section Meta types @tindex enum EXTRACTOR_MetaType @findex EXTRACTOR_metatype_get_max @verb{|enum EXTRACTOR_MetaType|} is a C enum which defines a list of over 100 different types of meta data. The total number can differ between different GNU libextractor releases; the maximum value for the current release can be obtained using the @verb{|EXTRACTOR_metatype_get_max|} function. All values in this enumeration are of the form @verb{|EXTRACTOR_METATYPE_XXX|}. @deftypefun {const char *} EXTRACTOR_metatype_to_string (enum EXTRACTOR_MetaType type) @findex EXTRACTOR_metatype_to_string @cindex gettext @cindex internationalization The function @verb{|EXTRACTOR_metatype_to_string|} can be used to obtain a short English string @samp{s} describing the meta data type. The string can be translated into other languages using GNU gettext with the domain set to GNU libextractor (@verb{|dgettext("libextractor", s)|}). @end deftypefun @deftypefun {const char *} EXTRACTOR_metatype_to_description (enum EXTRACTOR_MetaType type) @findex EXTRACTOR_metatype_to_description @cindex gettext @cindex internationalization The function @verb{|EXTRACTOR_metatype_to_description|} can be used to obtain a longer English string @samp{s} describing the meta data type. The description may be empty if the short description returned by @code{EXTRACTOR_metatype_to_string} is already comprehensive. The string can be translated into other languages using GNU gettext with the domain set to GNU libextractor (@verb{|dgettext("libextractor", s)|}). @end deftypefun @node Meta formats @section Meta formats @tindex enum EXTRACTOR_MetaFormat @verb{|enum EXTRACTOR_MetaFormat|} is a C enum which defines on a high level how the extracted meta data is represented. Currently, the library uses three formats: UTF-8 strings, C strings and binary data. A fourth value, @code{EXTRACTOR_METAFORMAT_UNKNOWN} is defined but not used. UTF-8 strings are 0-terminated strings that have been converted to UTF-8. The format code is @code{EXTRACTOR_METAFORMAT_UTF8}. Ideally, most text meta data will be of this format. Some file formats fail to specify the encoding used for the text. In this case, the text cannot be converted to UTF-8. However, the meta data is still known to be 0-terminated and presumably human-readable. In this case, the format code used is @code{EXTRACTOR_METAFORMAT_C_STRING}; however, this should not be understood to mean that the encoding is the same as that used by the C compiler. Finally, for binary data (mostly images), the format @code{EXTRACTOR_METAFORMAT_BINARY} is used. Naturally this is not a precise description of the meta format. Plugins can provide a more precise description (if known) by providing the respective mime type of the meta data. For example, binary image meta data could be also tagged as ``image/png'' and normal text would typically be tagged as ``text/plain''. @node Extracting @section Extracting @deftypefn {Function Pointer} int (*EXTRACTOR_MetaDataProcessor)(void *cls, const char *plugin_name, enum EXTRACTOR_MetaType type, enum EXTRACTOR_MetaFormat format, const char *data_mime_type, const char *data, size_t data_len) @tindex EXTRACTOR_MetaDataProcessor Type of a function that libextractor calls for each meta data item found. @table @var @item cls closure (user-defined) @item plugin_name name of the plugin that produced this value; special values can be used (i.e. '' for zlib being used in the main libextractor library and yielding meta data); @item type libextractor-type describing the meta data; @item format basic format information about data @item data_mime_type mime-type of data (not of the original file); can be @code{NULL} (if mime-type is not known); @item data actual meta-data found @item data_len number of bytes in data @end table Return 0 to continue extracting, 1 to abort. @end deftypefn @deftypefun void EXTRACTOR_extract (struct EXTRACTOR_PluginList *plugins, const char *filename, const void *data, size_t size, EXTRACTOR_MetaDataProcessor proc, void *proc_cls) @findex EXTRACTOR_extract @cindex reentrant @cindex concurrency @cindex threads @cindex thread-safety This is the main function for extracting keywords with GNU libextractor. The first argument is a plugin list which specifies the set of plugins that should be used for extracting meta data. The @samp{filename} argument is optional and can be used to specify the name of a file to process. If @samp{filename} is @code{NULL}, then the @samp{data} argument must point to the in-memory data to extract meta data from. If @samp{filename} is non-@code{NULL}, @samp{data} can be @code{NULL}. If @samp{data} is non-null, then @samp{size} is the size of @samp{data} in bytes. Otherwise @samp{size} should be zero. For each meta data item found, GNU libextractor will call the @samp{proc} function, passing @samp{proc_cls} as the first argument to @samp{proc}. The other arguments to @samp{proc} depend on the specific meta data found. @cindex SIGBUS @cindex bus error Meta data extraction should never really fail --- at worst, GNU libextractor should not call @samp{proc} with any meta data. By design, GNU libextractor should never crash or leak memory, even given corrupt files as input. Note however, that running GNU libextractor on a corrupt file system (or incorrectly @verb{|mmap|}ed files) can result in the operating system sending a SIGBUS (bus error) to the process. As GNU libextractor typically runs plugins out-of-process, it first maps the file into memory and then attempts to decompress it. During decompression it is possible to encounter a SIGBUS. GNU libextractor will @emph{not} attempt to catch this signal and your application is likely to crash. Note again that this should only happen if the file @emph{system} is corrupt (not if individual files are corrupt). If this is not acceptable, you might want to consider running GNU libextractor itself also out-of-process (as done, for example, by @url{http://grothoff.org/christian/doodle/,doodle}). @end deftypefun @node Language bindings @chapter Language bindings @cindex Java @cindex Mono @cindex Perl @cindex Python @cindex PHP @cindex Ruby GNU libextractor works immediately with C and C++ code. Bindings for Java, Mono, Ruby, Perl, PHP and Python are available for download from the main GNU libextractor website. Documentation for these bindings (if available) is part of the downloads for the respective binding. In all cases, a full installation of the C library is required before the binding can be installed. @section Java Compiling the GNU libextractor Java binding follows the usual process of running @command{configure} and @command{make}. The result will be a shared C library @file{libextractor_java.so} with the native code and a JAR file (installed to @file{$PREFIX/share/java/libextractor.java}). A minimal example for using GNU libextractor's Java binding would look like this: @verbatim import org.gnu.libextractor.*; import java.util.ArrayList; public static void main(String[] args) { Extractor ex = Extractor.getDefault(); for (int i=0;iread (ec->cls, &data, 4))) return; /* read error */ if (data_size < 4) return; /* file too small */ if (0 != memcmp (data, "\177ELF", 4)) return; /* not ELF */ if (0 != ec->proc (ec->cls, "mymime", EXTRACTOR_METATYPE_MIMETYPE, EXTRACTOR_METAFORMAT_UTF8, "text/plain", "application/x-executable", 1 + strlen("application/x-executable"))) return; /* more calls to 'proc' here as needed */ } @end verbatim @end example @node Internal utility functions @chapter Internal utility functions Some plugins link against the @code{libextractor_common} library which provides common abstractions needed by many plugins. This section documents this internal API for plugin developers. Note that the headers for this library are (intentionally) not installed: we do not consider this API stable and it should hence only be used by plugins that are build and shipped with GNU libextractor. Third-party plugins should not use it. @file{convert_numeric.h} defines various conversion functions for numbers (in particular, byte-order conversion for floating point numbers). @file{unzip.h} defines an API for accessing compressed files. @file{pack.h} provides an interpreter for unpacking structs of integer numbers from streams and converting from big or little endian to host byte order at the same time. @file{convert.h} provides a function for character set conversion described below. @deftypefun {char *} EXTRACTOR_common_convert_to_utf8 (const char *input, size_t len, const char *charset) @cindex UTF-8 @cindex character set @findex EXTRACTOR_common_convert_to_utf8 Various GNU libextractor plugins make use of the internal @file{convert.h} header which defines a function @verb{|EXTRACTOR_common_convert_to_utf8|} which can be used to easily convert text from any character set to UTF-8. This conversion is important since the linked list of keywords that is returned by GNU libextractor is expected to contain only UTF-8 strings. Naturally, proper conversion may not always be possible since some file formats fail to specify the character set. In that case, it is often better to not convert at all. The arguments to @verb{|EXTRACTOR_common_convert_to_utf8|} are the input string (which does @emph{not} have to be zero-terminated), the length of the input string, and the character set (which @emph{must} be zero-terminated). Which character sets are supported depends on the platform, a list can generally be obtained using the @command{iconv -l} command. The return value from @verb{|EXTRACTOR_common_convert_to_utf8|} is a zero-terminated string in UTF-8 format. The responsibility to free the string is with the caller, so storing the string in the keyword list is acceptable. @end deftypefun @node Reporting bugs @chapter Reporting bugs @cindex bug GNU libextractor uses the @url{https://gnunet.org/bugs/,Mantis bugtracking system}. If possible, please report bugs there. You can also e-mail the GNU libextractor mailinglist at @url{libextractor@@gnu.org}. @c ********************************************************** @c ******************* Appendices ************************* @c ********************************************************** @node GNU Free Documentation License @appendix GNU Free Documentation License @include fdl-1.3.texi @node Index @unnumbered Index @printindex cp @c @node Function and Data Index @c @unnumbered Function and Data Index @c @printindex fn @c @node Type Index @c @unnumbered Type Index @c @printindex tp @bye libextractor-1.3/aclocal.m40000644000175000017500000011330212256015516012643 00000000000000# generated automatically by aclocal 1.11.6 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, # Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, [m4_warning([this file was generated for autoconf 2.69. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])]) # Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008, 2011 Free Software # Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 1 # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.11' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.11.6], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.11.6])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 1 # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to # `$srcdir', `$srcdir/..', or `$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is `.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. AC_PREREQ([2.50])dnl # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 9 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ(2.52)dnl ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl m4_define([_AM_COND_VALUE_$1], [$2])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009, # 2010, 2011 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 12 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "GCJ", or "OBJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl ifelse([$1], CC, [depcc="$CC" am_compiler_list=], [$1], CXX, [depcc="$CXX" am_compiler_list=], [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], UPC, [depcc="$UPC" am_compiler_list=], [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi am__universal=false m4_case([$1], [CC], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac], [CXX], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac]) for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE(dependency-tracking, [ --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl AC_SUBST([am__nodep])dnl _AM_SUBST_NOTMAKE([am__nodep])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. #serial 5 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` AS_MKDIR_P([$dirpart/$fdir]) # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each `.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2008, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 16 # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.62])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) AM_MISSING_PROG(AUTOCONF, autoconf) AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) AM_MISSING_PROG(AUTOHEADER, autoheader) AM_MISSING_PROG(MAKEINFO, makeinfo) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AM_PROG_MKDIR_P])dnl # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES(CC)], [define([AC_PROG_CC], defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES(CXX)], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES(OBJC)], [define([AC_PROG_OBJC], defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl ]) _AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl dnl The `parallel-tests' driver may need to know about EXEEXT, so add the dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl ]) dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001, 2003, 2005, 2008, 2011 Free Software Foundation, # Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 1 # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST(install_sh)]) # Copyright (C) 2003, 2005 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 4 # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 6 # AM_PROG_CC_C_O # -------------- # Like AC_PROG_CC_C_O, but changed for automake. AC_DEFUN([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC_C_O])dnl AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([compile])dnl # FIXME: we rely on the cache variable name because # there is no other way. set dummy $CC am_cc=`echo $[2] | sed ['s/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/']` eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o if test "$am_t" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi dnl Make sure AC_PROG_CC is never called again, or it will override our dnl setting of CC. m4_define([AC_PROG_CC], [m4_fatal([AC_PROG_CC cannot be called after AM_PROG_CC_C_O])]) ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 6 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it supports --run. # If it does, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= AC_MSG_WARN([`missing' script is too old or missing]) fi ]) # Copyright (C) 2003, 2004, 2005, 2006, 2011 Free Software Foundation, # Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 1 # AM_PROG_MKDIR_P # --------------- # Check for `mkdir -p'. AC_DEFUN([AM_PROG_MKDIR_P], [AC_PREREQ([2.60])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, dnl while keeping a definition of mkdir_p for backward compatibility. dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of dnl Makefile.ins that do not define MKDIR_P, so we do our own dnl adjustment using top_builddir (which is defined more often than dnl MKDIR_P). AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl case $mkdir_p in [[\\/$]]* | ?:[[\\/]]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003, 2005, 2008, 2010 Free Software # Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 5 # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # -------------------- # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) # _AM_SET_OPTIONS(OPTIONS) # ------------------------ # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 # Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 5 # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT(yes)]) # Copyright (C) 2009, 2011 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # AM_SILENT_RULES([DEFAULT]) # -------------------------- # Enable less verbose build rules; with the default set to DEFAULT # (`yes' being less verbose, `no' or empty being verbose). AC_DEFUN([AM_SILENT_RULES], [AC_ARG_ENABLE([silent-rules], [ --enable-silent-rules less verbose build output (undo: `make V=1') --disable-silent-rules verbose build output (undo: `make V=0')]) case $enable_silent_rules in yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; esac dnl dnl A few `make' implementations (e.g., NonStop OS and NextStep) dnl do not support nested variable expansions. dnl See automake bug#9928 and bug#10237. am_make=${MAKE-make} AC_CACHE_CHECK([whether $am_make supports nested variables], [am_cv_make_support_nested_variables], [if AS_ECHO([['TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi]) if test $am_cv_make_support_nested_variables = yes; then dnl Using `$V' instead of `$(V)' breaks IRIX make. AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AC_SUBST([AM_V])dnl AM_SUBST_NOTMAKE([AM_V])dnl AC_SUBST([AM_DEFAULT_V])dnl AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl AC_SUBST([AM_DEFAULT_VERBOSITY])dnl AM_BACKSLASH='\' AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) # Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 1 # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor `install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in `make install-strip', and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be `maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 3 # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) # -------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004, 2005, 2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of `v7', `ustar', or `pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AC_SUBST([AMTAR], ['$${TAR-tar}']) m4_if([$1], [v7], [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], [m4_case([$1], [ustar],, [pax],, [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' _am_tools=${am_cv_prog_tar_$1-$_am_tools} # Do not fold the above two line into one, because Tru64 sh and # Solaris sh will not grok spaces in the rhs of `-'. for _am_tool in $_am_tools do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR m4_include([m4/abi-gsf.m4]) m4_include([m4/ac_define_dir.m4]) m4_include([m4/ax_create_pkgconfig_info.m4]) m4_include([m4/gettext.m4]) m4_include([m4/glib-2.0.m4]) m4_include([m4/gtk-2.0.m4]) m4_include([m4/gtk-3.0.m4]) m4_include([m4/iconv.m4]) m4_include([m4/lib-ld.m4]) m4_include([m4/lib-link.m4]) m4_include([m4/lib-prefix.m4]) m4_include([m4/libtool.m4]) m4_include([m4/ltoptions.m4]) m4_include([m4/ltsugar.m4]) m4_include([m4/ltversion.m4]) m4_include([m4/lt~obsolete.m4]) m4_include([m4/nls.m4]) m4_include([m4/pkg.m4]) m4_include([m4/po.m4]) m4_include([m4/progtest.m4]) m4_include([acinclude.m4]) libextractor-1.3/ltmain.sh0000644000175000017500000105202612255663135012636 00000000000000 # libtool (GNU libtool) 2.4.2 # Written by Gordon Matzigkeit , 1996 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, # 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # GNU Libtool is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, # or obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # Usage: $progname [OPTION]... [MODE-ARG]... # # Provide generalized library-building support services. # # --config show all configuration variables # --debug enable verbose shell tracing # -n, --dry-run display commands without modifying any files # --features display basic configuration information and exit # --mode=MODE use operation mode MODE # --preserve-dup-deps don't remove duplicate dependency libraries # --quiet, --silent don't print informational messages # --no-quiet, --no-silent # print informational messages (default) # --no-warn don't display warning messages # --tag=TAG use configuration variables from tag TAG # -v, --verbose print more informational messages than default # --no-verbose don't print the extra informational messages # --version print version information # -h, --help, --help-all print short, long, or detailed help message # # MODE must be one of the following: # # clean remove files from the build directory # compile compile a source file into a libtool object # execute automatically set library path, then run a program # finish complete the installation of libtool libraries # install install libraries or executables # link create a library or an executable # uninstall remove libraries from an installed directory # # MODE-ARGS vary depending on the MODE. When passed as first option, # `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that. # Try `$progname --help --mode=MODE' for a more detailed description of MODE. # # When reporting a bug, please describe a test case to reproduce it and # include the following information: # # host-triplet: $host # shell: $SHELL # compiler: $LTCC # compiler flags: $LTCFLAGS # linker: $LD (gnu? $with_gnu_ld) # $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1.1 # automake: $automake_version # autoconf: $autoconf_version # # Report bugs to . # GNU libtool home page: . # General help using GNU software: . PROGRAM=libtool PACKAGE=libtool VERSION="2.4.2 Debian-2.4.2-1.1" TIMESTAMP="" package_revision=1.3337 # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } # NLS nuisances: We save the old values to restore during execute mode. lt_user_locale= lt_safe_locale= for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${$lt_var+set}\" = set; then save_$lt_var=\$$lt_var $lt_var=C export $lt_var lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" fi" done LC_ALL=C LANGUAGE=C export LANGUAGE LC_ALL $lt_unset CDPATH # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath="$0" : ${CP="cp -f"} test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} : ${SHELL="${CONFIG_SHELL-/bin/sh}"} : ${Xsed="$SED -e 1s/^X//"} # Global variables: EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. exit_status=$EXIT_SUCCESS # Make sure IFS has a sensible default lt_nl=' ' IFS=" $lt_nl" dirname="s,/[^/]*$,," basename="s,^.*/,," # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi } # func_dirname may be replaced by extended shell implementation # func_basename file func_basename () { func_basename_result=`$ECHO "${1}" | $SED "$basename"` } # func_basename may be replaced by extended shell implementation # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` } # func_dirname_and_basename may be replaced by extended shell implementation # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # func_strip_suffix prefix name func_stripname () { case ${2} in .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; esac } # func_stripname may be replaced by extended shell implementation # These SED scripts presuppose an absolute path with a trailing slash. pathcar='s,^/\([^/]*\).*$,\1,' pathcdr='s,^/[^/]*,,' removedotparts=':dotsl s@/\./@/@g t dotsl s,/\.$,/,' collapseslashes='s@/\{1,\}@/@g' finalslash='s,/*$,/,' # func_normal_abspath PATH # Remove doubled-up and trailing slashes, "." path components, # and cancel out any ".." path components in PATH after making # it an absolute path. # value returned in "$func_normal_abspath_result" func_normal_abspath () { # Start from root dir and reassemble the path. func_normal_abspath_result= func_normal_abspath_tpath=$1 func_normal_abspath_altnamespace= case $func_normal_abspath_tpath in "") # Empty path, that just means $cwd. func_stripname '' '/' "`pwd`" func_normal_abspath_result=$func_stripname_result return ;; # The next three entries are used to spot a run of precisely # two leading slashes without using negated character classes; # we take advantage of case's first-match behaviour. ///*) # Unusual form of absolute path, do nothing. ;; //*) # Not necessarily an ordinary path; POSIX reserves leading '//' # and for example Cygwin uses it to access remote file shares # over CIFS/SMB, so we conserve a leading double slash if found. func_normal_abspath_altnamespace=/ ;; /*) # Absolute path, do nothing. ;; *) # Relative path, prepend $cwd. func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath ;; esac # Cancel out all the simple stuff to save iterations. We also want # the path to end with a slash for ease of parsing, so make sure # there is one (and only one) here. func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"` while :; do # Processed it all yet? if test "$func_normal_abspath_tpath" = / ; then # If we ascended to the root using ".." the result may be empty now. if test -z "$func_normal_abspath_result" ; then func_normal_abspath_result=/ fi break fi func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$pathcar"` func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$pathcdr"` # Figure out what to do with it case $func_normal_abspath_tcomponent in "") # Trailing empty path component, ignore it. ;; ..) # Parent dir; strip last assembled component from result. func_dirname "$func_normal_abspath_result" func_normal_abspath_result=$func_dirname_result ;; *) # Actual path component, append it. func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent ;; esac done # Restore leading double-slash if one was found on entry. func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result } # func_relative_path SRCDIR DSTDIR # generates a relative path from SRCDIR to DSTDIR, with a trailing # slash if non-empty, suitable for immediately appending a filename # without needing to append a separator. # value returned in "$func_relative_path_result" func_relative_path () { func_relative_path_result= func_normal_abspath "$1" func_relative_path_tlibdir=$func_normal_abspath_result func_normal_abspath "$2" func_relative_path_tbindir=$func_normal_abspath_result # Ascend the tree starting from libdir while :; do # check if we have found a prefix of bindir case $func_relative_path_tbindir in $func_relative_path_tlibdir) # found an exact match func_relative_path_tcancelled= break ;; $func_relative_path_tlibdir*) # found a matching prefix func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" func_relative_path_tcancelled=$func_stripname_result if test -z "$func_relative_path_result"; then func_relative_path_result=. fi break ;; *) func_dirname $func_relative_path_tlibdir func_relative_path_tlibdir=${func_dirname_result} if test "x$func_relative_path_tlibdir" = x ; then # Have to descend all the way to the root! func_relative_path_result=../$func_relative_path_result func_relative_path_tcancelled=$func_relative_path_tbindir break fi func_relative_path_result=../$func_relative_path_result ;; esac done # Now calculate path; take care to avoid doubling-up slashes. func_stripname '' '/' "$func_relative_path_result" func_relative_path_result=$func_stripname_result func_stripname '/' '/' "$func_relative_path_tcancelled" if test "x$func_stripname_result" != x ; then func_relative_path_result=${func_relative_path_result}/${func_stripname_result} fi # Normalisation. If bindir is libdir, return empty string, # else relative path ending with a slash; either way, target # file name can be directly appended. if test ! -z "$func_relative_path_result"; then func_stripname './' '' "$func_relative_path_result/" func_relative_path_result=$func_stripname_result fi } # The name of this program: func_dirname_and_basename "$progpath" progname=$func_basename_result # Make sure we have an absolute path for reexecution: case $progpath in [\\/]*|[A-Za-z]:\\*) ;; *[\\/]*) progdir=$func_dirname_result progdir=`cd "$progdir" && pwd` progpath="$progdir/$progname" ;; *) save_IFS="$IFS" IFS=${PATH_SEPARATOR-:} for progdir in $PATH; do IFS="$save_IFS" test -x "$progdir/$progname" && break done IFS="$save_IFS" test -n "$progdir" || progdir=`pwd` progpath="$progdir/$progname" ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed="${SED}"' -e 1s/^X//' sed_quote_subst='s/\([`"$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution that turns a string into a regex matching for the # string literally. sed_make_literal_regex='s,[].[^$\\*\/],\\&,g' # Sed substitution that converts a w32 file name or path # which contains forward slashes, into one that contains # (escaped) backslashes. A very naive implementation. lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' # Re-`\' parameter expansions in output of double_quote_subst that were # `\'-ed in input to the same. If an odd number of `\' preceded a '$' # in input to double_quote_subst, that '$' was protected from expansion. # Since each input `\' is now two `\'s, look for any number of runs of # four `\'s followed by two `\'s and then a '$'. `\' that '$'. bs='\\' bs2='\\\\' bs4='\\\\\\\\' dollar='\$' sed_double_backslash="\ s/$bs4/&\\ /g s/^$bs2$dollar/$bs&/ s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g s/\n//g" # Standard options: opt_dry_run=false opt_help=false opt_quiet=false opt_verbose=false opt_warning=: # func_echo arg... # Echo program name prefixed message, along with the current mode # name if it has been set yet. func_echo () { $ECHO "$progname: ${opt_mode+$opt_mode: }$*" } # func_verbose arg... # Echo program name prefixed message in verbose mode only. func_verbose () { $opt_verbose && func_echo ${1+"$@"} # A bug in bash halts the script if the last line of a function # fails when set -e is in force, so we need another command to # work around that: : } # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } # func_error arg... # Echo program name prefixed message to standard error. func_error () { $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2 } # func_warning arg... # Echo program name prefixed warning message to standard error. func_warning () { $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2 # bash bug again: : } # func_fatal_error arg... # Echo program name prefixed message to standard error, and exit. func_fatal_error () { func_error ${1+"$@"} exit $EXIT_FAILURE } # func_fatal_help arg... # Echo program name prefixed message to standard error, followed by # a help hint, and exit. func_fatal_help () { func_error ${1+"$@"} func_fatal_error "$help" } help="Try \`$progname --help' for more information." ## default # func_grep expression filename # Check whether EXPRESSION matches any line of FILENAME, without output. func_grep () { $GREP "$1" "$2" >/dev/null 2>&1 } # func_mkdir_p directory-path # Make sure the entire path to DIRECTORY-PATH is available. func_mkdir_p () { my_directory_path="$1" my_dir_list= if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then # Protect directory names starting with `-' case $my_directory_path in -*) my_directory_path="./$my_directory_path" ;; esac # While some portion of DIR does not yet exist... while test ! -d "$my_directory_path"; do # ...make a list in topmost first order. Use a colon delimited # list incase some portion of path contains whitespace. my_dir_list="$my_directory_path:$my_dir_list" # If the last portion added has no slash in it, the list is done case $my_directory_path in */*) ;; *) break ;; esac # ...otherwise throw away the child directory and loop my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"` done my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'` save_mkdir_p_IFS="$IFS"; IFS=':' for my_dir in $my_dir_list; do IFS="$save_mkdir_p_IFS" # mkdir can fail with a `File exist' error if two processes # try to create one of the directories concurrently. Don't # stop in that case! $MKDIR "$my_dir" 2>/dev/null || : done IFS="$save_mkdir_p_IFS" # Bail out if we (or some other process) failed to create a directory. test -d "$my_directory_path" || \ func_fatal_error "Failed to create \`$1'" fi } # func_mktempdir [string] # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, STRING is the basename for that directory. func_mktempdir () { my_template="${TMPDIR-/tmp}/${1-$progname}" if test "$opt_dry_run" = ":"; then # Return a directory name, but don't create it in dry-run mode my_tmpdir="${my_template}-$$" else # If mktemp works, use that first and foremost my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` if test ! -d "$my_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race my_tmpdir="${my_template}-${RANDOM-0}$$" save_mktempdir_umask=`umask` umask 0077 $MKDIR "$my_tmpdir" umask $save_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$my_tmpdir" || \ func_fatal_error "cannot create temporary directory \`$my_tmpdir'" fi $ECHO "$my_tmpdir" } # func_quote_for_eval arg # Aesthetically quote ARG to be evaled later. # This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT # is double-quoted, suitable for a subsequent eval, whereas # FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters # which are still active within double quotes backslashified. func_quote_for_eval () { case $1 in *[\\\`\"\$]*) func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;; *) func_quote_for_eval_unquoted_result="$1" ;; esac case $func_quote_for_eval_unquoted_result in # Double-quote args containing shell metacharacters to delay # word splitting, command substitution and and variable # expansion for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" ;; *) func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" esac } # func_quote_for_expand arg # Aesthetically quote ARG to be evaled later; same as above, # but do not quote variable references. func_quote_for_expand () { case $1 in *[\\\`\"]*) my_arg=`$ECHO "$1" | $SED \ -e "$double_quote_subst" -e "$sed_double_backslash"` ;; *) my_arg="$1" ;; esac case $my_arg in # Double-quote args containing shell metacharacters to delay # word splitting and command substitution for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") my_arg="\"$my_arg\"" ;; esac func_quote_for_expand_result="$my_arg" } # func_show_eval cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. func_show_eval () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$my_cmd" my_status=$? if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_show_eval_locale cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. Use the saved locale for evaluation. func_show_eval_locale () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$lt_user_locale $my_cmd" my_status=$? eval "$lt_safe_locale" if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_tr_sh # Turn $1 into a string suitable for a shell variable name. # Result is stored in $func_tr_sh_result. All characters # not in the set a-zA-Z0-9_ are replaced with '_'. Further, # if $1 begins with a digit, a '_' is prepended as well. func_tr_sh () { case $1 in [0-9]* | *[!a-zA-Z0-9_]*) func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'` ;; * ) func_tr_sh_result=$1 ;; esac } # func_version # Echo version message to standard output and exit. func_version () { $opt_debug $SED -n '/(C)/!b go :more /\./!{ N s/\n# / / b more } :go /^# '$PROGRAM' (GNU /,/# warranty; / { s/^# // s/^# *$// s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ p }' < "$progpath" exit $? } # func_usage # Echo short help message to standard output and exit. func_usage () { $opt_debug $SED -n '/^# Usage:/,/^# *.*--help/ { s/^# // s/^# *$// s/\$progname/'$progname'/ p }' < "$progpath" echo $ECHO "run \`$progname --help | more' for full usage" exit $? } # func_help [NOEXIT] # Echo long help message to standard output and exit, # unless 'noexit' is passed as argument. func_help () { $opt_debug $SED -n '/^# Usage:/,/# Report bugs to/ { :print s/^# // s/^# *$// s*\$progname*'$progname'* s*\$host*'"$host"'* s*\$SHELL*'"$SHELL"'* s*\$LTCC*'"$LTCC"'* s*\$LTCFLAGS*'"$LTCFLAGS"'* s*\$LD*'"$LD"'* s/\$with_gnu_ld/'"$with_gnu_ld"'/ s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/ s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/ p d } /^# .* home page:/b print /^# General help using/b print ' < "$progpath" ret=$? if test -z "$1"; then exit $ret fi } # func_missing_arg argname # Echo program name prefixed message to standard error and set global # exit_cmd. func_missing_arg () { $opt_debug func_error "missing argument for $1." exit_cmd=exit } # func_split_short_opt shortopt # Set func_split_short_opt_name and func_split_short_opt_arg shell # variables after splitting SHORTOPT after the 2nd character. func_split_short_opt () { my_sed_short_opt='1s/^\(..\).*$/\1/;q' my_sed_short_rest='1s/^..\(.*\)$/\1/;q' func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"` func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"` } # func_split_short_opt may be replaced by extended shell implementation # func_split_long_opt longopt # Set func_split_long_opt_name and func_split_long_opt_arg shell # variables after splitting LONGOPT at the `=' sign. func_split_long_opt () { my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q' my_sed_long_arg='1s/^--[^=]*=//' func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"` func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"` } # func_split_long_opt may be replaced by extended shell implementation exit_cmd=: magic="%%%MAGIC variable%%%" magic_exe="%%%MAGIC EXE variable%%%" # Global variables. nonopt= preserve_args= lo2o="s/\\.lo\$/.${objext}/" o2lo="s/\\.${objext}\$/.lo/" extracted_archives= extracted_serial=0 # If this variable is set in any of the actions, the command in it # will be execed at the end. This prevents here-documents from being # left over by shells. exec_cmd= # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "${1}=\$${1}\${2}" } # func_append may be replaced by extended shell implementation # func_append_quoted var value # Quote VALUE and append to the end of shell variable VAR, separated # by a space. func_append_quoted () { func_quote_for_eval "${2}" eval "${1}=\$${1}\\ \$func_quote_for_eval_result" } # func_append_quoted may be replaced by extended shell implementation # func_arith arithmetic-term... func_arith () { func_arith_result=`expr "${@}"` } # func_arith may be replaced by extended shell implementation # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len` } # func_len may be replaced by extended shell implementation # func_lo2o object func_lo2o () { func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` } # func_lo2o may be replaced by extended shell implementation # func_xform libobj-or-source func_xform () { func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` } # func_xform may be replaced by extended shell implementation # func_fatal_configuration arg... # Echo program name prefixed message to standard error, followed by # a configuration failure hint, and exit. func_fatal_configuration () { func_error ${1+"$@"} func_error "See the $PACKAGE documentation for more information." func_fatal_error "Fatal configuration error." } # func_config # Display the configuration for all the tags in this script. func_config () { re_begincf='^# ### BEGIN LIBTOOL' re_endcf='^# ### END LIBTOOL' # Default configuration. $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" # Now print the configurations for the tags. for tagname in $taglist; do $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" done exit $? } # func_features # Display the features supported by this script. func_features () { echo "host: $host" if test "$build_libtool_libs" = yes; then echo "enable shared libraries" else echo "disable shared libraries" fi if test "$build_old_libs" = yes; then echo "enable static libraries" else echo "disable static libraries" fi exit $? } # func_enable_tag tagname # Verify that TAGNAME is valid, and either flag an error and exit, or # enable the TAGNAME tag. We also add TAGNAME to the global $taglist # variable here. func_enable_tag () { # Global variable: tagname="$1" re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" sed_extractcf="/$re_begincf/,/$re_endcf/p" # Validate tagname. case $tagname in *[!-_A-Za-z0-9,/]*) func_fatal_error "invalid tag name: $tagname" ;; esac # Don't test for the "default" C tag, as we know it's # there but not specially marked. case $tagname in CC) ;; *) if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then taglist="$taglist $tagname" # Evaluate the configuration. Be careful to quote the path # and the sed script, to avoid splitting on whitespace, but # also don't use non-portable quotes within backquotes within # quotes we have to do it in 2 steps: extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` eval "$extractedcf" else func_error "ignoring unknown tag $tagname" fi ;; esac } # func_check_version_match # Ensure that we are using m4 macros, and libtool script from the same # release of libtool. func_check_version_match () { if test "$package_revision" != "$macro_revision"; then if test "$VERSION" != "$macro_version"; then if test -z "$macro_version"; then cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from an older release. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from $PACKAGE $macro_version. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF fi else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, $progname: but the definition of this LT_INIT comes from revision $macro_revision. $progname: You should recreate aclocal.m4 with macros from revision $package_revision $progname: of $PACKAGE $VERSION and run autoconf again. _LT_EOF fi exit $EXIT_MISMATCH fi } # Shorthand for --mode=foo, only valid as the first argument case $1 in clean|clea|cle|cl) shift; set dummy --mode clean ${1+"$@"}; shift ;; compile|compil|compi|comp|com|co|c) shift; set dummy --mode compile ${1+"$@"}; shift ;; execute|execut|execu|exec|exe|ex|e) shift; set dummy --mode execute ${1+"$@"}; shift ;; finish|finis|fini|fin|fi|f) shift; set dummy --mode finish ${1+"$@"}; shift ;; install|instal|insta|inst|ins|in|i) shift; set dummy --mode install ${1+"$@"}; shift ;; link|lin|li|l) shift; set dummy --mode link ${1+"$@"}; shift ;; uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) shift; set dummy --mode uninstall ${1+"$@"}; shift ;; esac # Option defaults: opt_debug=: opt_dry_run=false opt_config=false opt_preserve_dup_deps=false opt_features=false opt_finish=false opt_help=false opt_help_all=false opt_silent=: opt_warning=: opt_verbose=: opt_silent=false opt_verbose=false # Parse options once, thoroughly. This comes as soon as possible in the # script to make things like `--version' happen as quickly as we can. { # this just eases exit handling while test $# -gt 0; do opt="$1" shift case $opt in --debug|-x) opt_debug='set -x' func_echo "enabling shell trace mode" $opt_debug ;; --dry-run|--dryrun|-n) opt_dry_run=: ;; --config) opt_config=: func_config ;; --dlopen|-dlopen) optarg="$1" opt_dlopen="${opt_dlopen+$opt_dlopen }$optarg" shift ;; --preserve-dup-deps) opt_preserve_dup_deps=: ;; --features) opt_features=: func_features ;; --finish) opt_finish=: set dummy --mode finish ${1+"$@"}; shift ;; --help) opt_help=: ;; --help-all) opt_help_all=: opt_help=': help-all' ;; --mode) test $# = 0 && func_missing_arg $opt && break optarg="$1" opt_mode="$optarg" case $optarg in # Valid mode arguments: clean|compile|execute|finish|install|link|relink|uninstall) ;; # Catch anything else as an error *) func_error "invalid argument for $opt" exit_cmd=exit break ;; esac shift ;; --no-silent|--no-quiet) opt_silent=false func_append preserve_args " $opt" ;; --no-warning|--no-warn) opt_warning=false func_append preserve_args " $opt" ;; --no-verbose) opt_verbose=false func_append preserve_args " $opt" ;; --silent|--quiet) opt_silent=: func_append preserve_args " $opt" opt_verbose=false ;; --verbose|-v) opt_verbose=: func_append preserve_args " $opt" opt_silent=false ;; --tag) test $# = 0 && func_missing_arg $opt && break optarg="$1" opt_tag="$optarg" func_append preserve_args " $opt $optarg" func_enable_tag "$optarg" shift ;; -\?|-h) func_usage ;; --help) func_help ;; --version) func_version ;; # Separate optargs to long options: --*=*) func_split_long_opt "$opt" set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"} shift ;; # Separate non-argument short options: -\?*|-h*|-n*|-v*) func_split_short_opt "$opt" set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"} shift ;; --) break ;; -*) func_fatal_help "unrecognized option \`$opt'" ;; *) set dummy "$opt" ${1+"$@"}; shift; break ;; esac done # Validate options: # save first non-option argument if test "$#" -gt 0; then nonopt="$opt" shift fi # preserve --debug test "$opt_debug" = : || func_append preserve_args " --debug" case $host in *cygwin* | *mingw* | *pw32* | *cegcc*) # don't eliminate duplications in $postdeps and $predeps opt_duplicate_compiler_generated_deps=: ;; *) opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps ;; esac $opt_help || { # Sanity checks first: func_check_version_match if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then func_fatal_configuration "not configured to build any kind of library" fi # Darwin sucks eval std_shrext=\"$shrext_cmds\" # Only execute mode is allowed to have -dlopen flags. if test -n "$opt_dlopen" && test "$opt_mode" != execute; then func_error "unrecognized option \`-dlopen'" $ECHO "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help="$help" help="Try \`$progname --help --mode=$opt_mode' for more information." } # Bail if the options were screwed $exit_cmd $EXIT_FAILURE } ## ----------- ## ## Main. ## ## ----------- ## # func_lalib_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_lalib_p () { test -f "$1" && $SED -e 4q "$1" 2>/dev/null \ | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 } # func_lalib_unsafe_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function implements the same check as func_lalib_p without # resorting to external programs. To this end, it redirects stdin and # closes it afterwards, without saving the original file descriptor. # As a safety measure, use it only where a negative result would be # fatal anyway. Works if `file' does not exist. func_lalib_unsafe_p () { lalib_p=no if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then for lalib_p_l in 1 2 3 4 do read lalib_p_line case "$lalib_p_line" in \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; esac done exec 0<&5 5<&- fi test "$lalib_p" = yes } # func_ltwrapper_script_p file # True iff FILE is a libtool wrapper script # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_script_p () { func_lalib_p "$1" } # func_ltwrapper_executable_p file # True iff FILE is a libtool wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_executable_p () { func_ltwrapper_exec_suffix= case $1 in *.exe) ;; *) func_ltwrapper_exec_suffix=.exe ;; esac $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 } # func_ltwrapper_scriptname file # Assumes file is an ltwrapper_executable # uses $file to determine the appropriate filename for a # temporary ltwrapper_script. func_ltwrapper_scriptname () { func_dirname_and_basename "$1" "" "." func_stripname '' '.exe' "$func_basename_result" func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" } # func_ltwrapper_p file # True iff FILE is a libtool wrapper script or wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_p () { func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" } # func_execute_cmds commands fail_cmd # Execute tilde-delimited COMMANDS. # If FAIL_CMD is given, eval that upon failure. # FAIL_CMD may read-access the current command in variable CMD! func_execute_cmds () { $opt_debug save_ifs=$IFS; IFS='~' for cmd in $1; do IFS=$save_ifs eval cmd=\"$cmd\" func_show_eval "$cmd" "${2-:}" done IFS=$save_ifs } # func_source file # Source FILE, adding directory component if necessary. # Note that it is not necessary on cygwin/mingw to append a dot to # FILE even if both FILE and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. func_source () { $opt_debug case $1 in */* | *\\*) . "$1" ;; *) . "./$1" ;; esac } # func_resolve_sysroot PATH # Replace a leading = in PATH with a sysroot. Store the result into # func_resolve_sysroot_result func_resolve_sysroot () { func_resolve_sysroot_result=$1 case $func_resolve_sysroot_result in =*) func_stripname '=' '' "$func_resolve_sysroot_result" func_resolve_sysroot_result=$lt_sysroot$func_stripname_result ;; esac } # func_replace_sysroot PATH # If PATH begins with the sysroot, replace it with = and # store the result into func_replace_sysroot_result. func_replace_sysroot () { case "$lt_sysroot:$1" in ?*:"$lt_sysroot"*) func_stripname "$lt_sysroot" '' "$1" func_replace_sysroot_result="=$func_stripname_result" ;; *) # Including no sysroot. func_replace_sysroot_result=$1 ;; esac } # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. # arg is usually of the form 'gcc ...' func_infer_tag () { $opt_debug if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do func_append_quoted CC_quoted "$arg" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. func_append_quoted CC_quoted "$arg" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` case "$@ " in " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then func_echo "unable to infer tagged configuration" func_fatal_error "specify a tag with \`--tag'" # else # func_verbose "using $tagname tagged configuration" fi ;; esac fi } # func_write_libtool_object output_name pic_name nonpic_name # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. func_write_libtool_object () { write_libobj=${1} if test "$build_libtool_libs" = yes; then write_lobj=\'${2}\' else write_lobj=none fi if test "$build_old_libs" = yes; then write_oldobj=\'${3}\' else write_oldobj=none fi $opt_dry_run || { cat >${write_libobj}T </dev/null` if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | $SED -e "$lt_sed_naive_backslashify"` else func_convert_core_file_wine_to_w32_result= fi fi } # end: func_convert_core_file_wine_to_w32 # func_convert_core_path_wine_to_w32 ARG # Helper function used by path conversion functions when $build is *nix, and # $host is mingw, cygwin, or some other w32 environment. Relies on a correctly # configured wine environment available, with the winepath program in $build's # $PATH. Assumes ARG has no leading or trailing path separator characters. # # ARG is path to be converted from $build format to win32. # Result is available in $func_convert_core_path_wine_to_w32_result. # Unconvertible file (directory) names in ARG are skipped; if no directory names # are convertible, then the result may be empty. func_convert_core_path_wine_to_w32 () { $opt_debug # unfortunately, winepath doesn't convert paths, only file names func_convert_core_path_wine_to_w32_result="" if test -n "$1"; then oldIFS=$IFS IFS=: for func_convert_core_path_wine_to_w32_f in $1; do IFS=$oldIFS func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" if test -n "$func_convert_core_file_wine_to_w32_result" ; then if test -z "$func_convert_core_path_wine_to_w32_result"; then func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result" else func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" fi fi done IFS=$oldIFS fi } # end: func_convert_core_path_wine_to_w32 # func_cygpath ARGS... # Wrapper around calling the cygpath program via LT_CYGPATH. This is used when # when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) # $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or # (2), returns the Cygwin file name or path in func_cygpath_result (input # file name or path is assumed to be in w32 format, as previously converted # from $build's *nix or MSYS format). In case (3), returns the w32 file name # or path in func_cygpath_result (input file name or path is assumed to be in # Cygwin format). Returns an empty string on error. # # ARGS are passed to cygpath, with the last one being the file name or path to # be converted. # # Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH # environment variable; do not put it in $PATH. func_cygpath () { $opt_debug if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` if test "$?" -ne 0; then # on failure, ensure result is empty func_cygpath_result= fi else func_cygpath_result= func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'" fi } #end: func_cygpath # func_convert_core_msys_to_w32 ARG # Convert file name or path ARG from MSYS format to w32 format. Return # result in func_convert_core_msys_to_w32_result. func_convert_core_msys_to_w32 () { $opt_debug # awkward: cmd appends spaces to result func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` } #end: func_convert_core_msys_to_w32 # func_convert_file_check ARG1 ARG2 # Verify that ARG1 (a file name in $build format) was converted to $host # format in ARG2. Otherwise, emit an error message, but continue (resetting # func_to_host_file_result to ARG1). func_convert_file_check () { $opt_debug if test -z "$2" && test -n "$1" ; then func_error "Could not determine host file name corresponding to" func_error " \`$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback: func_to_host_file_result="$1" fi } # end func_convert_file_check # func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH # Verify that FROM_PATH (a path in $build format) was converted to $host # format in TO_PATH. Otherwise, emit an error message, but continue, resetting # func_to_host_file_result to a simplistic fallback value (see below). func_convert_path_check () { $opt_debug if test -z "$4" && test -n "$3"; then func_error "Could not determine the host path corresponding to" func_error " \`$3'" func_error "Continuing, but uninstalled executables may not work." # Fallback. This is a deliberately simplistic "conversion" and # should not be "improved". See libtool.info. if test "x$1" != "x$2"; then lt_replace_pathsep_chars="s|$1|$2|g" func_to_host_path_result=`echo "$3" | $SED -e "$lt_replace_pathsep_chars"` else func_to_host_path_result="$3" fi fi } # end func_convert_path_check # func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG # Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT # and appending REPL if ORIG matches BACKPAT. func_convert_path_front_back_pathsep () { $opt_debug case $4 in $1 ) func_to_host_path_result="$3$func_to_host_path_result" ;; esac case $4 in $2 ) func_append func_to_host_path_result "$3" ;; esac } # end func_convert_path_front_back_pathsep ################################################## # $build to $host FILE NAME CONVERSION FUNCTIONS # ################################################## # invoked via `$to_host_file_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # Result will be available in $func_to_host_file_result. # func_to_host_file ARG # Converts the file name ARG from $build format to $host format. Return result # in func_to_host_file_result. func_to_host_file () { $opt_debug $to_host_file_cmd "$1" } # end func_to_host_file # func_to_tool_file ARG LAZY # converts the file name ARG from $build format to toolchain format. Return # result in func_to_tool_file_result. If the conversion in use is listed # in (the comma separated) LAZY, no conversion takes place. func_to_tool_file () { $opt_debug case ,$2, in *,"$to_tool_file_cmd",*) func_to_tool_file_result=$1 ;; *) $to_tool_file_cmd "$1" func_to_tool_file_result=$func_to_host_file_result ;; esac } # end func_to_tool_file # func_convert_file_noop ARG # Copy ARG to func_to_host_file_result. func_convert_file_noop () { func_to_host_file_result="$1" } # end func_convert_file_noop # func_convert_file_msys_to_w32 ARG # Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic # conversion to w32 is not available inside the cwrapper. Returns result in # func_to_host_file_result. func_convert_file_msys_to_w32 () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_to_host_file_result="$func_convert_core_msys_to_w32_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_msys_to_w32 # func_convert_file_cygwin_to_w32 ARG # Convert file name ARG from Cygwin to w32 format. Returns result in # func_to_host_file_result. func_convert_file_cygwin_to_w32 () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then # because $build is cygwin, we call "the" cygpath in $PATH; no need to use # LT_CYGPATH in this case. func_to_host_file_result=`cygpath -m "$1"` fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_cygwin_to_w32 # func_convert_file_nix_to_w32 ARG # Convert file name ARG from *nix to w32 format. Requires a wine environment # and a working winepath. Returns result in func_to_host_file_result. func_convert_file_nix_to_w32 () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then func_convert_core_file_wine_to_w32 "$1" func_to_host_file_result="$func_convert_core_file_wine_to_w32_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_nix_to_w32 # func_convert_file_msys_to_cygwin ARG # Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. # Returns result in func_to_host_file_result. func_convert_file_msys_to_cygwin () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_cygpath -u "$func_convert_core_msys_to_w32_result" func_to_host_file_result="$func_cygpath_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_msys_to_cygwin # func_convert_file_nix_to_cygwin ARG # Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed # in a wine environment, working winepath, and LT_CYGPATH set. Returns result # in func_to_host_file_result. func_convert_file_nix_to_cygwin () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. func_convert_core_file_wine_to_w32 "$1" func_cygpath -u "$func_convert_core_file_wine_to_w32_result" func_to_host_file_result="$func_cygpath_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_nix_to_cygwin ############################################# # $build to $host PATH CONVERSION FUNCTIONS # ############################################# # invoked via `$to_host_path_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # The result will be available in $func_to_host_path_result. # # Path separators are also converted from $build format to $host format. If # ARG begins or ends with a path separator character, it is preserved (but # converted to $host format) on output. # # All path conversion functions are named using the following convention: # file name conversion function : func_convert_file_X_to_Y () # path conversion function : func_convert_path_X_to_Y () # where, for any given $build/$host combination the 'X_to_Y' value is the # same. If conversion functions are added for new $build/$host combinations, # the two new functions must follow this pattern, or func_init_to_host_path_cmd # will break. # func_init_to_host_path_cmd # Ensures that function "pointer" variable $to_host_path_cmd is set to the # appropriate value, based on the value of $to_host_file_cmd. to_host_path_cmd= func_init_to_host_path_cmd () { $opt_debug if test -z "$to_host_path_cmd"; then func_stripname 'func_convert_file_' '' "$to_host_file_cmd" to_host_path_cmd="func_convert_path_${func_stripname_result}" fi } # func_to_host_path ARG # Converts the path ARG from $build format to $host format. Return result # in func_to_host_path_result. func_to_host_path () { $opt_debug func_init_to_host_path_cmd $to_host_path_cmd "$1" } # end func_to_host_path # func_convert_path_noop ARG # Copy ARG to func_to_host_path_result. func_convert_path_noop () { func_to_host_path_result="$1" } # end func_convert_path_noop # func_convert_path_msys_to_w32 ARG # Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic # conversion to w32 is not available inside the cwrapper. Returns result in # func_to_host_path_result. func_convert_path_msys_to_w32 () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # Remove leading and trailing path separator characters from ARG. MSYS # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; # and winepath ignores them completely. func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_to_host_path_result="$func_convert_core_msys_to_w32_result" func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_msys_to_w32 # func_convert_path_cygwin_to_w32 ARG # Convert path ARG from Cygwin to w32 format. Returns result in # func_to_host_file_result. func_convert_path_cygwin_to_w32 () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_cygwin_to_w32 # func_convert_path_nix_to_w32 ARG # Convert path ARG from *nix to w32 format. Requires a wine environment and # a working winepath. Returns result in func_to_host_file_result. func_convert_path_nix_to_w32 () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_to_host_path_result="$func_convert_core_path_wine_to_w32_result" func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_nix_to_w32 # func_convert_path_msys_to_cygwin ARG # Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. # Returns result in func_to_host_file_result. func_convert_path_msys_to_cygwin () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_msys_to_w32_result" func_to_host_path_result="$func_cygpath_result" func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" fi } # end func_convert_path_msys_to_cygwin # func_convert_path_nix_to_cygwin ARG # Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a # a wine environment, working winepath, and LT_CYGPATH set. Returns result in # func_to_host_file_result. func_convert_path_nix_to_cygwin () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # Remove leading and trailing path separator characters from # ARG. msys behavior is inconsistent here, cygpath turns them # into '.;' and ';.', and winepath ignores them completely. func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" func_to_host_path_result="$func_cygpath_result" func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" fi } # end func_convert_path_nix_to_cygwin # func_mode_compile arg... func_mode_compile () { $opt_debug # Get the compilation command and the source file. base_compile= srcfile="$nonopt" # always keep a non-empty value in "srcfile" suppress_opt=yes suppress_output= arg_mode=normal libobj= later= pie_flag= for arg do case $arg_mode in arg ) # do not "continue". Instead, add this to base_compile lastarg="$arg" arg_mode=normal ;; target ) libobj="$arg" arg_mode=normal continue ;; normal ) # Accept any command-line options. case $arg in -o) test -n "$libobj" && \ func_fatal_error "you cannot specify \`-o' more than once" arg_mode=target continue ;; -pie | -fpie | -fPIE) func_append pie_flag " $arg" continue ;; -shared | -static | -prefer-pic | -prefer-non-pic) func_append later " $arg" continue ;; -no-suppress) suppress_opt=no continue ;; -Xcompiler) arg_mode=arg # the next one goes into the "base_compile" arg list continue # The current "srcfile" will either be retained or ;; # replaced later. I would guess that would be a bug. -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result lastarg= save_ifs="$IFS"; IFS=',' for arg in $args; do IFS="$save_ifs" func_append_quoted lastarg "$arg" done IFS="$save_ifs" func_stripname ' ' '' "$lastarg" lastarg=$func_stripname_result # Add the arguments to base_compile. func_append base_compile " $lastarg" continue ;; *) # Accept the current argument as the source file. # The previous "srcfile" becomes the current argument. # lastarg="$srcfile" srcfile="$arg" ;; esac # case $arg ;; esac # case $arg_mode # Aesthetically quote the previous argument. func_append_quoted base_compile "$lastarg" done # for arg case $arg_mode in arg) func_fatal_error "you must specify an argument for -Xcompile" ;; target) func_fatal_error "you must specify a target with \`-o'" ;; *) # Get the name of the library object. test -z "$libobj" && { func_basename "$srcfile" libobj="$func_basename_result" } ;; esac # Recognize several different file suffixes. # If the user specifies -o file.o, it is replaced with file.lo case $libobj in *.[cCFSifmso] | \ *.ada | *.adb | *.ads | *.asm | \ *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) func_xform "$libobj" libobj=$func_xform_result ;; esac case $libobj in *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; *) func_fatal_error "cannot determine name of library object from \`$libobj'" ;; esac func_infer_tag $base_compile for arg in $later; do case $arg in -shared) test "$build_libtool_libs" != yes && \ func_fatal_configuration "can not build a shared library" build_old_libs=no continue ;; -static) build_libtool_libs=no build_old_libs=yes continue ;; -prefer-pic) pic_mode=yes continue ;; -prefer-non-pic) pic_mode=no continue ;; esac done func_quote_for_eval "$libobj" test "X$libobj" != "X$func_quote_for_eval_result" \ && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ && func_warning "libobj name \`$libobj' may not contain shell special characters." func_dirname_and_basename "$obj" "/" "" objname="$func_basename_result" xdir="$func_dirname_result" lobj=${xdir}$objdir/$objname test -z "$base_compile" && \ func_fatal_help "you must specify a compilation command" # Delete any leftover library objects. if test "$build_old_libs" = yes; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2* | cegcc*) pic_mode=default ;; esac if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" else output_obj= need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done elif test "$need_locks" = warn; then if test -f "$lockfile"; then $ECHO "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi func_append removelist " $output_obj" $ECHO "$srcfile" > "$lockfile" fi $opt_dry_run || $RM $removelist func_append removelist " $lockfile" trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 srcfile=$func_to_tool_file_result func_quote_for_eval "$srcfile" qsrcfile=$func_quote_for_eval_result # Only build a PIC object if we are building libtool libraries. if test "$build_libtool_libs" = yes; then # Without this assignment, base_compile gets emptied. fbsd_hideous_sh_bug=$base_compile if test "$pic_mode" != no; then command="$base_compile $qsrcfile $pic_flag" else # Don't build PIC code command="$base_compile $qsrcfile" fi func_mkdir_p "$xdir$objdir" if test -z "$output_obj"; then # Place PIC objects in $objdir func_append command " -o $lobj" fi func_show_eval_locale "$command" \ 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then func_show_eval '$MV "$output_obj" "$lobj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi # Allow error messages only from the first compilation. if test "$suppress_opt" = yes; then suppress_output=' >/dev/null 2>&1' fi fi # Only build a position-dependent object if we build old libraries. if test "$build_old_libs" = yes; then if test "$pic_mode" != yes; then # Don't build PIC code command="$base_compile $qsrcfile$pie_flag" else command="$base_compile $qsrcfile $pic_flag" fi if test "$compiler_c_o" = yes; then func_append command " -o $obj" fi # Suppress compiler output if we already did a PIC compilation. func_append command "$suppress_output" func_show_eval_locale "$command" \ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then func_show_eval '$MV "$output_obj" "$obj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi fi $opt_dry_run || { func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" # Unlock the critical section if it was locked if test "$need_locks" != no; then removelist=$lockfile $RM "$lockfile" fi } exit $EXIT_SUCCESS } $opt_help || { test "$opt_mode" = compile && func_mode_compile ${1+"$@"} } func_mode_help () { # We need to display help for each of the modes. case $opt_mode in "") # Generic help is extracted from the usage comments # at the start of this file. func_help ;; clean) $ECHO \ "Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $ECHO \ "Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -no-suppress do not suppress compiler output for multiple passes -prefer-pic try to build PIC objects only -prefer-non-pic try to build non-PIC objects only -shared do not build a \`.o' file suitable for static linking -static only build a \`.o' file suitable for static linking -Wc,FLAG pass FLAG directly to the compiler COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix \`.c' with the library object suffix, \`.lo'." ;; execute) $ECHO \ "Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to \`-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $ECHO \ "Usage: $progname [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the \`--dry-run' option if you just want to see what would be executed." ;; install) $ECHO \ "Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the \`install' or \`cp' program. The following components of INSTALL-COMMAND are treated specially: -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $ECHO \ "Usage: $progname [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -bindir BINDIR specify path to binaries directory (for systems where libraries must be found in the PATH setting at runtime) -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE Use a list of object files found in FILE to specify objects -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -shared only do dynamic linking of libtool libraries -shrext SUFFIX override the standard shared library file extension -static do not do any dynamic linking of uninstalled libtool libraries -static-libtool-libs do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] -weak LIBNAME declare that the target provides the LIBNAME interface -Wc,FLAG -Xcompiler FLAG pass linker-specific FLAG directly to the compiler -Wl,FLAG -Xlinker FLAG pass linker-specific FLAG directly to the linker -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) All other options (arguments beginning with \`-') are ignored. Every other argument is treated as a filename. Files ending in \`.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only library objects (\`.lo' files) may be specified, and \`-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created using \`ar' and \`ranlib', or on Windows using \`lib'. If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $ECHO \ "Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) func_fatal_help "invalid operation mode \`$opt_mode'" ;; esac echo $ECHO "Try \`$progname --help' for more information about other modes." } # Now that we've collected a possible --mode arg, show help if necessary if $opt_help; then if test "$opt_help" = :; then func_mode_help else { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do func_mode_help done } | sed -n '1p; 2,$s/^Usage:/ or: /p' { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do echo func_mode_help done } | sed '1d /^When reporting/,/^Report/{ H d } $x /information about other modes/d /more detailed .*MODE/d s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' fi exit $? fi # func_mode_execute arg... func_mode_execute () { $opt_debug # The first argument is the command name. cmd="$nonopt" test -z "$cmd" && \ func_fatal_help "you must specify a COMMAND" # Handle -dlopen flags immediately. for file in $opt_dlopen; do test -f "$file" \ || func_fatal_help "\`$file' is not a file" dir= case $file in *.la) func_resolve_sysroot "$file" file=$func_resolve_sysroot_result # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$lib' is not a valid libtool archive" # Read the libtool library. dlname= library_names= func_source "$file" # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && \ func_warning "\`$file' was not linked with \`-export-dynamic'" continue fi func_dirname "$file" "" "." dir="$func_dirname_result" if test -f "$dir/$objdir/$dlname"; then func_append dir "/$objdir" else if test ! -f "$dir/$dlname"; then func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" fi fi ;; *.lo) # Just add the directory containing the .lo file. func_dirname "$file" "" "." dir="$func_dirname_result" ;; *) func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir="$absdir" # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic="$magic" # Check if any of the arguments is a wrapper script. args= for file do case $file in -* | *.la | *.lo ) ;; *) # Do a test to see if this is really a libtool program. if func_ltwrapper_script_p "$file"; then func_source "$file" # Transform arg to wrapped name. file="$progdir/$program" elif func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" func_source "$func_ltwrapper_scriptname_result" # Transform arg to wrapped name. file="$progdir/$program" fi ;; esac # Quote arguments (to preserve shell metacharacters). func_append_quoted args "$file" done if test "X$opt_dry_run" = Xfalse; then if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${save_$lt_var+set}\" = set; then $lt_var=\$save_$lt_var; export $lt_var else $lt_unset $lt_var fi" done # Now prepare to actually exec the command. exec_cmd="\$cmd$args" else # Display what would be done. if test -n "$shlibpath_var"; then eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" echo "export $shlibpath_var" fi $ECHO "$cmd$args" exit $EXIT_SUCCESS fi } test "$opt_mode" = execute && func_mode_execute ${1+"$@"} # func_mode_finish arg... func_mode_finish () { $opt_debug libs= libdirs= admincmds= for opt in "$nonopt" ${1+"$@"} do if test -d "$opt"; then func_append libdirs " $opt" elif test -f "$opt"; then if func_lalib_unsafe_p "$opt"; then func_append libs " $opt" else func_warning "\`$opt' is not a valid libtool archive" fi else func_fatal_error "invalid argument \`$opt'" fi done if test -n "$libs"; then if test -n "$lt_sysroot"; then sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" else sysroot_cmd= fi # Remove sysroot references if $opt_dry_run; then for lib in $libs; do echo "removing references to $lt_sysroot and \`=' prefixes from $lib" done else tmpdir=`func_mktempdir` for lib in $libs; do sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ > $tmpdir/tmp-la mv -f $tmpdir/tmp-la $lib done ${RM}r "$tmpdir" fi fi if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. func_execute_cmds "$finish_cmds" 'admincmds="$admincmds '"$cmd"'"' fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $opt_dry_run || eval "$cmds" || func_append admincmds " $cmds" fi done fi # Exit here if they wanted silent mode. $opt_silent && exit $EXIT_SUCCESS if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then echo "----------------------------------------------------------------------" echo "Libraries have been installed in:" for libdir in $libdirs; do $ECHO " $libdir" done echo echo "If you ever happen to want to link against installed libraries" echo "in a given directory, LIBDIR, you must either use libtool, and" echo "specify the full pathname of the library, or use the \`-LLIBDIR'" echo "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then echo " - add LIBDIR to the \`$shlibpath_var' environment variable" echo " during execution" fi if test -n "$runpath_var"; then echo " - add LIBDIR to the \`$runpath_var' environment variable" echo " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" $ECHO " - use the \`$flag' linker flag" fi if test -n "$admincmds"; then $ECHO " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" fi echo echo "See any operating system documentation about shared libraries for" case $host in solaris2.[6789]|solaris2.1[0-9]) echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" echo "pages." ;; *) echo "more information, such as the ld(1) and ld.so(8) manual pages." ;; esac echo "----------------------------------------------------------------------" fi exit $EXIT_SUCCESS } test "$opt_mode" = finish && func_mode_finish ${1+"$@"} # func_mode_install arg... func_mode_install () { $opt_debug # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. case $nonopt in *shtool*) :;; *) false;; esac; then # Aesthetically quote it. func_quote_for_eval "$nonopt" install_prog="$func_quote_for_eval_result " arg=$1 shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. func_quote_for_eval "$arg" func_append install_prog "$func_quote_for_eval_result" install_shared_prog=$install_prog case " $install_prog " in *[\\\ /]cp\ *) install_cp=: ;; *) install_cp=false ;; esac # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= no_mode=: for arg do arg2= if test -n "$dest"; then func_append files " $dest" dest=$arg continue fi case $arg in -d) isdir=yes ;; -f) if $install_cp; then :; else prev=$arg fi ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then if test "x$prev" = x-m && test -n "$install_override_mode"; then arg2=$install_override_mode no_mode=false fi prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. func_quote_for_eval "$arg" func_append install_prog " $func_quote_for_eval_result" if test -n "$arg2"; then func_quote_for_eval "$arg2" fi func_append install_shared_prog " $func_quote_for_eval_result" done test -z "$install_prog" && \ func_fatal_help "you must specify an install program" test -n "$prev" && \ func_fatal_help "the \`$prev' option requires an argument" if test -n "$install_override_mode" && $no_mode; then if $install_cp; then :; else func_quote_for_eval "$install_override_mode" func_append install_shared_prog " -m $func_quote_for_eval_result" fi fi if test -z "$files"; then if test -z "$dest"; then func_fatal_help "no file or destination specified" else func_fatal_help "you must specify a destination" fi fi # Strip any trailing slash from the destination. func_stripname '' '/' "$dest" dest=$func_stripname_result # Check to see that the destination is a directory. test -d "$dest" && isdir=yes if test "$isdir" = yes; then destdir="$dest" destname= else func_dirname_and_basename "$dest" "" "." destdir="$func_dirname_result" destname="$func_basename_result" # Not a directory, so check to see that there is only one file specified. set dummy $files; shift test "$#" -gt 1 && \ func_fatal_help "\`$dest' is not a directory" fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) func_fatal_help "\`$destdir' must be an absolute directory name" ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. func_append staticlibs " $file" ;; *.la) func_resolve_sysroot "$file" file=$func_resolve_sysroot_result # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$file' is not a valid libtool archive" library_names= old_library= relink_command= func_source "$file" # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) func_append current_libdirs " $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) func_append future_libdirs " $libdir" ;; esac fi func_dirname "$file" "/" "" dir="$func_dirname_result" func_append dir "$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. test "$inst_prefix_dir" = "$destdir" && \ func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` fi func_warning "relinking \`$file'" func_show_eval "$relink_command" \ 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' fi # See the names of the shared library. set dummy $library_names; shift if test -n "$1"; then realname="$1" shift srcname="$realname" test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ 'exit $?' tstripme="$stripme" case $host_os in cygwin* | mingw* | pw32* | cegcc*) case $realname in *.dll.a) tstripme="" ;; esac ;; esac if test -n "$tstripme" && test -n "$striplib"; then func_show_eval "$striplib $destdir/$realname" 'exit $?' fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. # Try `ln -sf' first, because the `ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname do test "$linkname" != "$realname" \ && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" done fi # Do each command in the postinstall commands. lib="$destdir/$realname" func_execute_cmds "$postinstall_cmds" 'exit $?' fi # Install the pseudo-library for information purposes. func_basename "$file" name="$func_basename_result" instname="$dir/$name"i func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' # Maybe install the static library, too. test -n "$old_library" && func_append staticlibs " $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) func_lo2o "$destfile" staticdest=$func_lo2o_result ;; *.$objext) staticdest="$destfile" destfile= ;; *) func_fatal_help "cannot copy a libtool object to \`$destfile'" ;; esac # Install the libtool object if requested. test -n "$destfile" && \ func_show_eval "$install_prog $file $destfile" 'exit $?' # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. func_lo2o "$file" staticobj=$func_lo2o_result func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext="" case $file in *.exe) if test ! -f "$file"; then func_stripname '' '.exe' "$file" file=$func_stripname_result stripped_ext=".exe" fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin* | *mingw*) if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" wrapper=$func_ltwrapper_scriptname_result else func_stripname '' '.exe' "$file" wrapper=$func_stripname_result fi ;; *) wrapper=$file ;; esac if func_ltwrapper_script_p "$wrapper"; then notinst_deplibs= relink_command= func_source "$wrapper" # Check the variables that should have been set. test -z "$generated_by_libtool_version" && \ func_fatal_error "invalid libtool wrapper script \`$wrapper'" finalize=yes for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then func_source "$lib" fi libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then func_warning "\`$lib' has not been installed in \`$libdir'" finalize=no fi done relink_command= func_source "$wrapper" outputname= if test "$fast_install" = no && test -n "$relink_command"; then $opt_dry_run || { if test "$finalize" = yes; then tmpdir=`func_mktempdir` func_basename "$file$stripped_ext" file="$func_basename_result" outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` $opt_silent || { func_quote_for_expand "$relink_command" eval "func_echo $func_quote_for_expand_result" } if eval "$relink_command"; then : else func_error "error: relink \`$file' with the above command before installing it" $opt_dry_run || ${RM}r "$tmpdir" continue fi file="$outputname" else func_warning "cannot relink \`$file'" fi } else # Install the binary that we compiled earlier. file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) func_stripname '' '.exe' "$destfile" destfile=$func_stripname_result ;; esac ;; esac func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' $opt_dry_run || if test -n "$outputname"; then ${RM}r "$tmpdir" fi ;; esac done for file in $staticlibs; do func_basename "$file" name="$func_basename_result" # Set up the ranlib parameters. oldlib="$destdir/$name" func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 tool_oldlib=$func_to_tool_file_result func_show_eval "$install_prog \$file \$oldlib" 'exit $?' if test -n "$stripme" && test -n "$old_striplib"; then func_show_eval "$old_striplib $tool_oldlib" 'exit $?' fi # Do each command in the postinstall commands. func_execute_cmds "$old_postinstall_cmds" 'exit $?' done test -n "$future_libdirs" && \ func_warning "remember to run \`$progname --finish$future_libdirs'" if test -n "$current_libdirs"; then # Maybe just do a dry run. $opt_dry_run && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi } test "$opt_mode" = install && func_mode_install ${1+"$@"} # func_generate_dlsyms outputname originator pic_p # Extract symbols from dlprefiles and create ${outputname}S.o with # a dlpreopen symbol table. func_generate_dlsyms () { $opt_debug my_outputname="$1" my_originator="$2" my_pic_p="${3-no}" my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` my_dlsyms= if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then my_dlsyms="${my_outputname}S.c" else func_error "not configured to extract global symbols from dlpreopened files" fi fi if test -n "$my_dlsyms"; then case $my_dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist="$output_objdir/${my_outputname}.nm" func_show_eval "$RM $nlist ${nlist}S ${nlist}T" # Parse the name list into a source file. func_verbose "creating $output_objdir/$my_dlsyms" $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ /* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ /* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ #ifdef __cplusplus extern \"C\" { #endif #if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) #pragma GCC diagnostic ignored \"-Wstrict-prototypes\" #endif /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST #elif defined(__osf__) /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else # define LT_DLSYM_CONST const #endif /* External symbol declarations for the compiler. */\ " if test "$dlself" = yes; then func_verbose "generating symbol list for \`$output'" $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` for progfile in $progfiles; do func_to_tool_file "$progfile" func_convert_file_msys_to_w32 func_verbose "extracting global C symbols from \`$func_to_tool_file_result'" $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $opt_dry_run || { eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi if test -n "$export_symbols_regex"; then $opt_dry_run || { eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols="$output_objdir/$outputname.exp" $opt_dry_run || { $RM $export_symbols eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac } else $opt_dry_run || { eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac } fi fi for dlprefile in $dlprefiles; do func_verbose "extracting global C symbols from \`$dlprefile'" func_basename "$dlprefile" name="$func_basename_result" case $host in *cygwin* | *mingw* | *cegcc* ) # if an import library, we need to obtain dlname if func_win32_import_lib_p "$dlprefile"; then func_tr_sh "$dlprefile" eval "curr_lafile=\$libfile_$func_tr_sh_result" dlprefile_dlbasename="" if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then # Use subshell, to avoid clobbering current variable values dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` if test -n "$dlprefile_dlname" ; then func_basename "$dlprefile_dlname" dlprefile_dlbasename="$func_basename_result" else # no lafile. user explicitly requested -dlpreopen . $sharedlib_from_linklib_cmd "$dlprefile" dlprefile_dlbasename=$sharedlib_from_linklib_result fi fi $opt_dry_run || { if test -n "$dlprefile_dlbasename" ; then eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' else func_warning "Could not compute DLL name from $name" eval '$ECHO ": $name " >> "$nlist"' fi func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" } else # not an import lib $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" } fi ;; *) $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" } ;; esac done $opt_dry_run || { # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $MV "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if $GREP -v "^: " < "$nlist" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else $GREP -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' else echo '/* NONE */' >> "$output_objdir/$my_dlsyms" fi echo >> "$output_objdir/$my_dlsyms" "\ /* The mapping between symbol names and symbols. */ typedef struct { const char *name; void *address; } lt_dlsymlist; extern LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[]; LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[] = {\ { \"$my_originator\", (void *) 0 }," case $need_lib_prefix in no) eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; *) eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; esac echo >> "$output_objdir/$my_dlsyms" "\ {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_${my_prefix}_LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " } # !$opt_dry_run pic_flag_for_symtable= case "$compile_command " in *" -static "*) ;; *) case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; *-*-hpux*) pic_flag_for_symtable=" $pic_flag" ;; *) if test "X$my_pic_p" != Xno; then pic_flag_for_symtable=" $pic_flag" fi ;; esac ;; esac symtab_cflags= for arg in $LTCFLAGS; do case $arg in -pie | -fpie | -fPIE) ;; *) func_append symtab_cflags " $arg" ;; esac done # Now compile the dynamic symbol file. func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' # Clean up the generated files. func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' # Transform the symbol file into the correct name. symfileobj="$output_objdir/${my_outputname}S.$objext" case $host in *cygwin* | *mingw* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` else compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` fi ;; *) compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` ;; esac ;; *) func_fatal_error "unknown suffix for \`$my_dlsyms'" ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` fi } # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. # Despite the name, also deal with 64 bit binaries. func_win32_libid () { $opt_debug win32_libid_type="unknown" win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then func_to_tool_file "$1" func_convert_file_msys_to_w32 win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | $SED -n -e ' 1,100{ / I /{ s,.*,import, p q } }'` case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; esac fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $ECHO "$win32_libid_type" } # func_cygming_dll_for_implib ARG # # Platform-specific function to extract the # name of the DLL associated with the specified # import library ARG. # Invoked by eval'ing the libtool variable # $sharedlib_from_linklib_cmd # Result is available in the variable # $sharedlib_from_linklib_result func_cygming_dll_for_implib () { $opt_debug sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` } # func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs # # The is the core of a fallback implementation of a # platform-specific function to extract the name of the # DLL associated with the specified import library LIBNAME. # # SECTION_NAME is either .idata$6 or .idata$7, depending # on the platform and compiler that created the implib. # # Echos the name of the DLL associated with the # specified import library. func_cygming_dll_for_implib_fallback_core () { $opt_debug match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` $OBJDUMP -s --section "$1" "$2" 2>/dev/null | $SED '/^Contents of section '"$match_literal"':/{ # Place marker at beginning of archive member dllname section s/.*/====MARK====/ p d } # These lines can sometimes be longer than 43 characters, but # are always uninteresting /:[ ]*file format pe[i]\{,1\}-/d /^In archive [^:]*:/d # Ensure marker is printed /^====MARK====/p # Remove all lines with less than 43 characters /^.\{43\}/!d # From remaining lines, remove first 43 characters s/^.\{43\}//' | $SED -n ' # Join marker and all lines until next marker into a single line /^====MARK====/ b para H $ b para b :para x s/\n//g # Remove the marker s/^====MARK====// # Remove trailing dots and whitespace s/[\. \t]*$// # Print /./p' | # we now have a list, one entry per line, of the stringified # contents of the appropriate section of all members of the # archive which possess that section. Heuristic: eliminate # all those which have a first or second character that is # a '.' (that is, objdump's representation of an unprintable # character.) This should work for all archives with less than # 0x302f exports -- but will fail for DLLs whose name actually # begins with a literal '.' or a single character followed by # a '.'. # # Of those that remain, print the first one. $SED -e '/^\./d;/^.\./d;q' } # func_cygming_gnu_implib_p ARG # This predicate returns with zero status (TRUE) if # ARG is a GNU/binutils-style import library. Returns # with nonzero status (FALSE) otherwise. func_cygming_gnu_implib_p () { $opt_debug func_to_tool_file "$1" func_convert_file_msys_to_w32 func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` test -n "$func_cygming_gnu_implib_tmp" } # func_cygming_ms_implib_p ARG # This predicate returns with zero status (TRUE) if # ARG is an MS-style import library. Returns # with nonzero status (FALSE) otherwise. func_cygming_ms_implib_p () { $opt_debug func_to_tool_file "$1" func_convert_file_msys_to_w32 func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` test -n "$func_cygming_ms_implib_tmp" } # func_cygming_dll_for_implib_fallback ARG # Platform-specific function to extract the # name of the DLL associated with the specified # import library ARG. # # This fallback implementation is for use when $DLLTOOL # does not support the --identify-strict option. # Invoked by eval'ing the libtool variable # $sharedlib_from_linklib_cmd # Result is available in the variable # $sharedlib_from_linklib_result func_cygming_dll_for_implib_fallback () { $opt_debug if func_cygming_gnu_implib_p "$1" ; then # binutils import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` elif func_cygming_ms_implib_p "$1" ; then # ms-generated import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` else # unknown sharedlib_from_linklib_result="" fi } # func_extract_an_archive dir oldlib func_extract_an_archive () { $opt_debug f_ex_an_ar_dir="$1"; shift f_ex_an_ar_oldlib="$1" if test "$lock_old_archive_extraction" = yes; then lockfile=$f_ex_an_ar_oldlib.lock until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done fi func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ 'stat=$?; rm -f "$lockfile"; exit $stat' if test "$lock_old_archive_extraction" = yes; then $opt_dry_run || rm -f "$lockfile" fi if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" fi } # func_extract_archives gentop oldlib ... func_extract_archives () { $opt_debug my_gentop="$1"; shift my_oldlibs=${1+"$@"} my_oldobjs="" my_xlib="" my_xabs="" my_xdir="" for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac func_basename "$my_xlib" my_xlib="$func_basename_result" my_xlib_u=$my_xlib while :; do case " $extracted_archives " in *" $my_xlib_u "*) func_arith $extracted_serial + 1 extracted_serial=$func_arith_result my_xlib_u=lt$extracted_serial-$my_xlib ;; *) break ;; esac done extracted_archives="$extracted_archives $my_xlib_u" my_xdir="$my_gentop/$my_xlib_u" func_mkdir_p "$my_xdir" case $host in *-darwin*) func_verbose "Extracting $my_xabs" # Do not bother doing anything if just a dry run $opt_dry_run || { darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` darwin_base_archive=`basename "$darwin_archive"` darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` if test -n "$darwin_arches"; then darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches ; do func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" func_extract_an_archive "`pwd`" "${darwin_base_archive}" cd "$darwin_curdir" $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" done # $darwin_arches ## Okay now we've a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` $LIPO -create -output "$darwin_file" $darwin_files done # $darwin_filelist $RM -rf unfat-$$ cd "$darwin_orig_dir" else cd $darwin_orig_dir func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches } # !$opt_dry_run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` done func_extract_archives_result="$my_oldobjs" } # func_emit_wrapper [arg=no] # # Emit a libtool wrapper script on stdout. # Don't directly open a file because we may want to # incorporate the script contents within a cygwin/mingw # wrapper executable. Must ONLY be called from within # func_mode_link because it depends on a number of variables # set therein. # # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR # variable will take. If 'yes', then the emitted script # will assume that the directory in which it is stored is # the $objdir directory. This is a cygwin/mingw-specific # behavior. func_emit_wrapper () { func_emit_wrapper_arg1=${1-no} $ECHO "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. sed_quote_subst='$sed_quote_subst' # Be Bourne compatible if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variables: generated_by_libtool_version='$macro_version' notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$ECHO are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then file=\"\$0\"" qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` $ECHO "\ # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } ECHO=\"$qECHO\" fi # Very basic option parsing. These options are (a) specific to # the libtool wrapper, (b) are identical between the wrapper # /script/ and the wrapper /executable/ which is used only on # windows platforms, and (c) all begin with the string "--lt-" # (application programs are unlikely to have options which match # this pattern). # # There are only two supported options: --lt-debug and # --lt-dump-script. There is, deliberately, no --lt-help. # # The first argument to this parsing function should be the # script's $0 value, followed by "$@". lt_option_debug= func_parse_lt_options () { lt_script_arg0=\$0 shift for lt_opt do case \"\$lt_opt\" in --lt-debug) lt_option_debug=1 ;; --lt-dump-script) lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` cat \"\$lt_dump_D/\$lt_dump_F\" exit 0 ;; --lt-*) \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 exit 1 ;; esac done # Print the debug banner immediately: if test -n \"\$lt_option_debug\"; then echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2 fi } # Used when --lt-debug. Prints its arguments to stdout # (redirection is the responsibility of the caller) func_lt_dump_args () { lt_dump_args_N=1; for lt_arg do \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\" lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` done } # Core function for launching the target application func_exec_program_core () { " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2* | *-cegcc*) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $ECHO "\ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 exit 1 } # A function to encapsulate launching the target application # Strips options in the --lt-* namespace from \$@ and # launches target application with the remaining arguments. func_exec_program () { case \" \$* \" in *\\ --lt-*) for lt_wr_arg do case \$lt_wr_arg in --lt-*) ;; *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; esac shift done ;; esac func_exec_program_core \${1+\"\$@\"} } # Parse options func_parse_lt_options \"\$0\" \${1+\"\$@\"} # Find the directory that this script lives in. thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` done # Usually 'no', except on cygwin/mingw when embedded into # the cwrapper. WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then # special case for '.' if test \"\$thisdir\" = \".\"; then thisdir=\`pwd\` fi # remove .libs from thisdir case \"\$thisdir\" in *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; $objdir ) thisdir=. ;; esac fi # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test "$fast_install" = yes; then $ECHO "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $MKDIR \"\$progdir\" else $RM \"\$progdir/\$file\" fi" $ECHO "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else $ECHO \"\$relink_command_output\" >&2 $RM \"\$progdir/\$file\" exit 1 fi fi $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $RM \"\$progdir/\$program\"; $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } $RM \"\$progdir/\$file\" fi" else $ECHO "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $ECHO "\ if test -f \"\$progdir/\$program\"; then" # fixup the dll searchpath if we need to. # # Fix the DLL searchpath if we need to. Do this before prepending # to shlibpath, because on Windows, both are PATH and uninstalled # libraries must come first. if test -n "$dllsearchpath"; then $ECHO "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $ECHO "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` export $shlibpath_var " fi $ECHO "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. func_exec_program \${1+\"\$@\"} fi else # The program doesn't exist. \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 exit 1 fi fi\ " } # func_emit_cwrapperexe_src # emit the source code for a wrapper executable on stdout # Must ONLY be called from within func_mode_link because # it depends on a number of variable set therein. func_emit_cwrapperexe_src () { cat < #include #ifdef _MSC_VER # include # include # include #else # include # include # ifdef __CYGWIN__ # include # endif #endif #include #include #include #include #include #include #include #include /* declarations of non-ANSI functions */ #if defined(__MINGW32__) # ifdef __STRICT_ANSI__ int _putenv (const char *); # endif #elif defined(__CYGWIN__) # ifdef __STRICT_ANSI__ char *realpath (const char *, char *); int putenv (char *); int setenv (const char *, const char *, int); # endif /* #elif defined (other platforms) ... */ #endif /* portability defines, excluding path handling macros */ #if defined(_MSC_VER) # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv # define S_IXUSR _S_IEXEC # ifndef _INTPTR_T_DEFINED # define _INTPTR_T_DEFINED # define intptr_t int # endif #elif defined(__MINGW32__) # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv #elif defined(__CYGWIN__) # define HAVE_SETENV # define FOPEN_WB "wb" /* #elif defined (other platforms) ... */ #endif #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef S_IXOTH # define S_IXOTH 0 #endif #ifndef S_IXGRP # define S_IXGRP 0 #endif /* path handling portability macros */ #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' #endif #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ defined (__OS2__) # define HAVE_DOS_BASED_FILE_SYSTEM # define FOPEN_WB "wb" # ifndef DIR_SEPARATOR_2 # define DIR_SEPARATOR_2 '\\' # endif # ifndef PATH_SEPARATOR_2 # define PATH_SEPARATOR_2 ';' # endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #ifndef PATH_SEPARATOR_2 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) #else /* PATH_SEPARATOR_2 */ # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ #ifndef FOPEN_WB # define FOPEN_WB "w" #endif #ifndef _O_BINARY # define _O_BINARY 0 #endif #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free ((void *) stale); stale = 0; } \ } while (0) #if defined(LT_DEBUGWRAPPER) static int lt_debug = 1; #else static int lt_debug = 0; #endif const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ void *xmalloc (size_t num); char *xstrdup (const char *string); const char *base_name (const char *name); char *find_executable (const char *wrapper); char *chase_symlinks (const char *pathspec); int make_executable (const char *path); int check_executable (const char *path); char *strendzap (char *str, const char *pat); void lt_debugprintf (const char *file, int line, const char *fmt, ...); void lt_fatal (const char *file, int line, const char *message, ...); static const char *nonnull (const char *s); static const char *nonempty (const char *s); void lt_setenv (const char *name, const char *value); char *lt_extend_str (const char *orig_value, const char *add, int to_end); void lt_update_exe_path (const char *name, const char *value); void lt_update_lib_path (const char *name, const char *value); char **prepare_spawn (char **argv); void lt_dump_script (FILE *f); EOF cat <= 0) && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) return 1; else return 0; } int make_executable (const char *path) { int rval = 0; struct stat st; lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", nonempty (path)); if ((!path) || (!*path)) return 0; if (stat (path, &st) >= 0) { rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); } return rval; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise Does not chase symlinks, even on platforms that support them. */ char * find_executable (const char *wrapper) { int has_slash = 0; const char *p; const char *p_next; /* static buffer for getcwd */ char tmp[LT_PATHMAX + 1]; int tmp_len; char *concat_name; lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", nonempty (wrapper)); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; /* Absolute path? */ #if defined (HAVE_DOS_BASED_FILE_SYSTEM) if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } else { #endif if (IS_DIR_SEPARATOR (wrapper[0])) { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } #if defined (HAVE_DOS_BASED_FILE_SYSTEM) } #endif for (p = wrapper; *p; p++) if (*p == '/') { has_slash = 1; break; } if (!has_slash) { /* no slashes; search PATH */ const char *path = getenv ("PATH"); if (path != NULL) { for (p = path; *p; p = p_next) { const char *q; size_t p_len; for (q = p; *q; q++) if (IS_PATH_SEPARATOR (*q)) break; p_len = q - p; p_next = (*q == '\0' ? q : q + 1); if (p_len == 0) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); } else { concat_name = XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, p, p_len); concat_name[p_len] = '/'; strcpy (concat_name + p_len + 1, wrapper); } if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } } /* not found in PATH; assume curdir */ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); return NULL; } char * chase_symlinks (const char *pathspec) { #ifndef S_ISLNK return xstrdup (pathspec); #else char buf[LT_PATHMAX]; struct stat s; char *tmp_pathspec = xstrdup (pathspec); char *p; int has_symlinks = 0; while (strlen (tmp_pathspec) && !has_symlinks) { lt_debugprintf (__FILE__, __LINE__, "checking path component for symlinks: %s\n", tmp_pathspec); if (lstat (tmp_pathspec, &s) == 0) { if (S_ISLNK (s.st_mode) != 0) { has_symlinks = 1; break; } /* search backwards for last DIR_SEPARATOR */ p = tmp_pathspec + strlen (tmp_pathspec) - 1; while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) p--; if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) { /* no more DIR_SEPARATORS left */ break; } *p = '\0'; } else { lt_fatal (__FILE__, __LINE__, "error accessing file \"%s\": %s", tmp_pathspec, nonnull (strerror (errno))); } } XFREE (tmp_pathspec); if (!has_symlinks) { return xstrdup (pathspec); } tmp_pathspec = realpath (pathspec, buf); if (tmp_pathspec == 0) { lt_fatal (__FILE__, __LINE__, "could not follow symlinks for %s", pathspec); } return xstrdup (tmp_pathspec); #endif } char * strendzap (char *str, const char *pat) { size_t len, patlen; assert (str != NULL); assert (pat != NULL); len = strlen (str); patlen = strlen (pat); if (patlen <= len) { str += len - patlen; if (strcmp (str, pat) == 0) *str = '\0'; } return str; } void lt_debugprintf (const char *file, int line, const char *fmt, ...) { va_list args; if (lt_debug) { (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); va_start (args, fmt); (void) vfprintf (stderr, fmt, args); va_end (args); } } static void lt_error_core (int exit_status, const char *file, int line, const char *mode, const char *message, va_list ap) { fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *file, int line, const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); va_end (ap); } static const char * nonnull (const char *s) { return s ? s : "(null)"; } static const char * nonempty (const char *s) { return (s && !*s) ? "(empty)" : nonnull (s); } void lt_setenv (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_setenv) setting '%s' to '%s'\n", nonnull (name), nonnull (value)); { #ifdef HAVE_SETENV /* always make a copy, for consistency with !HAVE_SETENV */ char *str = xstrdup (value); setenv (name, str, 1); #else int len = strlen (name) + 1 + strlen (value) + 1; char *str = XMALLOC (char, len); sprintf (str, "%s=%s", name, value); if (putenv (str) != EXIT_SUCCESS) { XFREE (str); } #endif } } char * lt_extend_str (const char *orig_value, const char *add, int to_end) { char *new_value; if (orig_value && *orig_value) { int orig_value_len = strlen (orig_value); int add_len = strlen (add); new_value = XMALLOC (char, add_len + orig_value_len + 1); if (to_end) { strcpy (new_value, orig_value); strcpy (new_value + orig_value_len, add); } else { strcpy (new_value, add); strcpy (new_value + add_len, orig_value); } } else { new_value = xstrdup (add); } return new_value; } void lt_update_exe_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (value)); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); /* some systems can't cope with a ':'-terminated path #' */ int len = strlen (new_value); while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) { new_value[len-1] = '\0'; } lt_setenv (name, new_value); XFREE (new_value); } } void lt_update_lib_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (value)); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); } } EOF case $host_os in mingw*) cat <<"EOF" /* Prepares an argument vector before calling spawn(). Note that spawn() does not by itself call the command interpreter (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); GetVersionEx(&v); v.dwPlatformId == VER_PLATFORM_WIN32_NT; }) ? "cmd.exe" : "command.com"). Instead it simply concatenates the arguments, separated by ' ', and calls CreateProcess(). We must quote the arguments since Win32 CreateProcess() interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a special way: - Space and tab are interpreted as delimiters. They are not treated as delimiters if they are surrounded by double quotes: "...". - Unescaped double quotes are removed from the input. Their only effect is that within double quotes, space and tab are treated like normal characters. - Backslashes not followed by double quotes are not special. - But 2*n+1 backslashes followed by a double quote become n backslashes followed by a double quote (n >= 0): \" -> " \\\" -> \" \\\\\" -> \\" */ #define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" #define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" char ** prepare_spawn (char **argv) { size_t argc; char **new_argv; size_t i; /* Count number of arguments. */ for (argc = 0; argv[argc] != NULL; argc++) ; /* Allocate new argument vector. */ new_argv = XMALLOC (char *, argc + 1); /* Put quoted arguments into the new argument vector. */ for (i = 0; i < argc; i++) { const char *string = argv[i]; if (string[0] == '\0') new_argv[i] = xstrdup ("\"\""); else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) { int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); size_t length; unsigned int backslashes; const char *s; char *quoted_string; char *p; length = 0; backslashes = 0; if (quote_around) length++; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') length += backslashes + 1; length++; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) length += backslashes + 1; quoted_string = XMALLOC (char, length + 1); p = quoted_string; backslashes = 0; if (quote_around) *p++ = '"'; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') { unsigned int j; for (j = backslashes + 1; j > 0; j--) *p++ = '\\'; } *p++ = c; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) { unsigned int j; for (j = backslashes; j > 0; j--) *p++ = '\\'; *p++ = '"'; } *p = '\0'; new_argv[i] = quoted_string; } else new_argv[i] = (char *) string; } new_argv[argc] = NULL; return new_argv; } EOF ;; esac cat <<"EOF" void lt_dump_script (FILE* f) { EOF func_emit_wrapper yes | $SED -n -e ' s/^\(.\{79\}\)\(..*\)/\1\ \2/ h s/\([\\"]\)/\\\1/g s/$/\\n/ s/\([^\n]*\).*/ fputs ("\1", f);/p g D' cat <<"EOF" } EOF } # end: func_emit_cwrapperexe_src # func_win32_import_lib_p ARG # True if ARG is an import lib, as indicated by $file_magic_cmd func_win32_import_lib_p () { $opt_debug case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in *import*) : ;; *) false ;; esac } # func_mode_link arg... func_mode_link () { $opt_debug case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) # It is impossible to link a dll without this setting, and # we shouldn't force the makefile maintainer to figure out # which system we are compiling for in order to pass an extra # flag for every libtool invocation. # allow_undefined=no # FIXME: Unfortunately, there are problems with the above when trying # to make a dll which has undefined symbols, in which case not # even a static library is built. For now, we need to specify # -no-undefined on the libtool link line when we can be certain # that all symbols are satisfied, otherwise we get a static library. allow_undefined=yes ;; *) allow_undefined=yes ;; esac libtool_args=$nonopt base_compile="$nonopt $@" compile_command=$nonopt finalize_command=$nonopt compile_rpath= finalize_rpath= compile_shlibpath= finalize_shlibpath= convenience= old_convenience= deplibs= old_deplibs= compiler_flags= linker_flags= dllsearchpath= lib_search_path=`pwd` inst_prefix_dir= new_inherited_linker_flags= avoid_version=no bindir= dlfiles= dlprefiles= dlself=no export_dynamic=no export_symbols= export_symbols_regex= generated= libobjs= ltlibs= module=no no_install=no objs= non_pic_objects= precious_files_regex= prefer_static_libs=no preload=no prev= prevarg= release= rpath= xrpath= perm_rpath= temp_rpath= thread_safe=no vinfo= vinfo_number=no weak_libs= single_module="${wl}-single_module" func_infer_tag $base_compile # We need to know -static, to get the right output filenames. for arg do case $arg in -shared) test "$build_libtool_libs" != yes && \ func_fatal_configuration "can not build a shared library" build_old_libs=no break ;; -all-static | -static | -static-libtool-libs) case $arg in -all-static) if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then func_warning "complete static linking is impossible in this configuration" fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; -static) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=built ;; -static-libtool-libs) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; esac build_libtool_libs=no build_old_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg="$1" shift func_quote_for_eval "$arg" qarg=$func_quote_for_eval_unquoted_result func_append libtool_args " $func_quote_for_eval_result" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) func_append compile_command " @OUTPUT@" func_append finalize_command " @OUTPUT@" ;; esac case $prev in bindir) bindir="$arg" prev= continue ;; dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. func_append compile_command " @SYMFILE@" func_append finalize_command " @SYMFILE@" preload=yes fi case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test "$dlself" = no; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test "$prev" = dlprefiles; then dlself=yes elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test "$prev" = dlfiles; then func_append dlfiles " $arg" else func_append dlprefiles " $arg" fi prev= continue ;; esac ;; expsyms) export_symbols="$arg" test -f "$arg" \ || func_fatal_error "symbol file \`$arg' does not exist" prev= continue ;; expsyms_regex) export_symbols_regex="$arg" prev= continue ;; framework) case $host in *-*-darwin*) case "$deplibs " in *" $qarg.ltframework "*) ;; *) func_append deplibs " $qarg.ltframework" # this is fixed later ;; esac ;; esac prev= continue ;; inst_prefix) inst_prefix_dir="$arg" prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat "$save_arg"` do # func_append moreargs " $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then func_append dlfiles " $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. func_append dlprefiles " $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi done else func_fatal_error "link input file \`$arg' does not exist" fi arg=$save_arg prev= continue ;; precious_regex) precious_files_regex="$arg" prev= continue ;; release) release="-$arg" prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; *) func_append rpath " $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) func_append xrpath " $arg" ;; esac fi prev= continue ;; shrext) shrext_cmds="$arg" prev= continue ;; weak) func_append weak_libs " $arg" prev= continue ;; xcclinker) func_append linker_flags " $qarg" func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xcompiler) func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xlinker) func_append linker_flags " $qarg" func_append compiler_flags " $wl$qarg" prev= func_append compile_command " $wl$qarg" func_append finalize_command " $wl$qarg" continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg="$arg" case $arg in -all-static) if test -n "$link_static_flag"; then # See comment for -static flag below, for more details. func_append compile_command " $link_static_flag" func_append finalize_command " $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. func_fatal_error "\`-allow-undefined' must not be used because it is the default" ;; -avoid-version) avoid_version=yes continue ;; -bindir) prev=bindir continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then func_fatal_error "more than one -exported-symbols argument is not allowed" fi if test "X$arg" = "X-export-symbols"; then prev=expsyms else prev=expsyms_regex fi continue ;; -framework) prev=framework continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) func_append compile_command " $arg" func_append finalize_command " $arg" ;; esac continue ;; -L*) func_stripname "-L" '' "$arg" if test -z "$func_stripname_result"; then if test "$#" -gt 0; then func_fatal_error "require no space between \`-L' and \`$1'" else func_fatal_error "need path for \`-L' option" fi fi func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` test -z "$absdir" && \ func_fatal_error "cannot determine absolute directory name of \`$dir'" dir="$absdir" ;; esac case "$deplibs " in *" -L$dir "* | *" $arg "*) # Will only happen for absolute or sysroot arguments ;; *) # Preserve sysroot, but never include relative directories case $dir in [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; *) func_append deplibs " -L$dir" ;; esac func_append lib_search_path " $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; ::) dllsearchpath=$dir;; *) func_append dllsearchpath ":$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) func_append dllsearchpath ":$testbindir";; esac ;; esac continue ;; -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) # These systems don't actually have a C or math library (as such) continue ;; *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework func_append deplibs " System.ltframework" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test "X$arg" = "X-lc" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test "X$arg" = "X-lc" && continue ;; esac elif test "X$arg" = "X-lc_r"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi func_append deplibs " $arg" continue ;; -module) module=yes continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. # Darwin uses the -arch flag to determine output architecture. -model|-arch|-isysroot|--sysroot) func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" prev=xcompiler continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case "$new_inherited_linker_flags " in *" $arg "*) ;; * ) func_append new_inherited_linker_flags " $arg" ;; esac continue ;; -multi_module) single_module="${wl}-multi_module" continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) # The PATH hackery in wrapper scripts is required on Windows # and Darwin in order for the loader to find any dlls it needs. func_warning "\`-no-install' is ignored for $host" func_warning "assuming \`-no-fast-install' instead" fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) func_stripname '-R' '' "$arg" dir=$func_stripname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; =*) func_stripname '=' '' "$dir" dir=$lt_sysroot$func_stripname_result ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac case "$xrpath " in *" $dir "*) ;; *) func_append xrpath " $dir" ;; esac continue ;; -shared) # The effects of -shared are defined in a previous loop. continue ;; -shrext) prev=shrext continue ;; -static | -static-libtool-libs) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -weak) prev=weak continue ;; -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" func_append arg " $func_quote_for_eval_result" func_append compiler_flags " $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Wl,*) func_stripname '-Wl,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" func_append arg " $wl$func_quote_for_eval_result" func_append compiler_flags " $wl$func_quote_for_eval_result" func_append linker_flags " $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # -msg_* for osf cc -msg_*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; # Flags to be passed through unchanged, with rationale: # -64, -mips[0-9] enable 64-bit mode for the SGI compiler # -r[0-9][0-9]* specify processor for the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler # +DA*, +DD* enable 64-bit mode for the HP compiler # -q* compiler args for the IBM compiler # -m*, -t[45]*, -txscale* architecture-specific flags for GCC # -F/path path to uninstalled frameworks, gcc on darwin # -p, -pg, --coverage, -fprofile-* profiling flags for GCC # @file GCC response files # -tp=* Portland pgcc target processor selection # --sysroot=* for sysroot support # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ -O*|-flto*|-fwhopr*|-fuse-linker-plugin) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" func_append compile_command " $arg" func_append finalize_command " $arg" func_append compiler_flags " $arg" continue ;; # Some other compiler flag. -* | +*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; *.$objext) # A standard object. func_append objs " $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then func_append dlfiles " $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. func_append dlprefiles " $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi ;; *.$libext) # An archive. func_append deplibs " $arg" func_append old_deplibs " $arg" continue ;; *.la) # A libtool-controlled library. func_resolve_sysroot "$arg" if test "$prev" = dlfiles; then # This library was specified with -dlopen. func_append dlfiles " $func_resolve_sysroot_result" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. func_append dlprefiles " $func_resolve_sysroot_result" prev= else func_append deplibs " $func_resolve_sysroot_result" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then func_append compile_command " $arg" func_append finalize_command " $arg" fi done # argument parsing loop test -n "$prev" && \ func_fatal_help "the \`$prevarg' option requires an argument" if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" func_append compile_command " $arg" func_append finalize_command " $arg" fi oldlibs= # calculate the name of the file, without its directory func_basename "$output" outputname="$func_basename_result" libobjs_save="$libobjs" if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" func_dirname "$output" "/" "" output_objdir="$func_dirname_result$objdir" func_to_tool_file "$output_objdir/" tool_output_objdir=$func_to_tool_file_result # Create the object directory. func_mkdir_p "$output_objdir" # Determine the type of output case $output in "") func_fatal_help "you must specify an output file" ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if $opt_preserve_dup_deps ; then case "$libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append libs " $deplib" done if test "$linkmode" = lib; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if $opt_duplicate_compiler_generated_deps; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; esac func_append pre_post_deps " $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries notinst_path= # paths that contain not-installed libtool libraries case $linkmode in lib) passes="conv dlpreopen link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=no newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do # The preopen pass in lib mode reverses $deplibs; put it back here # so that -L comes before libs that need it for instance... if test "$linkmode,$pass" = "lib,link"; then ## FIXME: Find the place where the list is rebuilt in the wrong ## order, and fix it there properly tmp_deplibs= for deplib in $deplibs; do tmp_deplibs="$deplib $tmp_deplibs" done deplibs="$tmp_deplibs" fi if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan"; then libs="$deplibs" deplibs= fi if test "$linkmode" = prog; then case $pass in dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; link) libs="$deplibs %DEPLIBS%" test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" ;; esac fi if test "$linkmode,$pass" = "lib,dlpreopen"; then # Collect and forward deplibs of preopened libtool libs for lib in $dlprefiles; do # Ignore non-libtool-libs dependency_libs= func_resolve_sysroot "$lib" case $lib in *.la) func_source "$func_resolve_sysroot_result" ;; esac # Collect preopened libtool deplibs, except any this library # has declared as weak libs for deplib in $dependency_libs; do func_basename "$deplib" deplib_base=$func_basename_result case " $weak_libs " in *" $deplib_base "*) ;; *) func_append deplibs " $deplib" ;; esac done done libs="$dlprefiles" fi if test "$pass" = dlopen; then # Collect dlpreopened libraries save_deplibs="$deplibs" deplibs= fi for deplib in $libs; do lib= found=no case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else func_append compiler_flags " $deplib" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi continue ;; -l*) if test "$linkmode" != lib && test "$linkmode" != prog; then func_warning "\`-l' is ignored for archives/objects" continue fi func_stripname '-l' '' "$deplib" name=$func_stripname_result if test "$linkmode" = lib; then searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" else searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" fi for searchdir in $searchdirs; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib="$searchdir/lib${name}${search_ext}" if test -f "$lib"; then if test "$search_ext" = ".la"; then found=yes else found=no fi break 2 fi done done if test "$found" != yes; then # deplib doesn't seem to be a libtool library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue else # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $deplib "*) if func_lalib_p "$lib"; then library_names= old_library= func_source "$lib" for l in $old_library $library_names; do ll="$l" done if test "X$ll" = "X$old_library" ; then # only static version available found=no func_dirname "$lib" "" "." ladir="$func_dirname_result" lib=$ladir/$old_library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi fi ;; # -l *.ltframework) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi continue ;; -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; prog) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi if test "$pass" = scan; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; *) func_warning "\`-L' is ignored for archives/objects" ;; esac # linkmode continue ;; # -L -R*) if test "$pass" = link; then func_stripname '-R' '' "$deplib" func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) func_append xrpath " $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) func_resolve_sysroot "$deplib" lib=$func_resolve_sysroot_result ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) # Linking convenience modules into shared libraries is allowed, # but linking other static libraries is non-portable. case " $dlpreconveniencelibs " in *" $deplib "*) ;; *) valid_a_lib=no case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi ;; pass_all) valid_a_lib=yes ;; esac if test "$valid_a_lib" != yes; then echo $ECHO "*** Warning: Trying to link with static lib archive $deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because the file extensions .$libext of this argument makes me believe" echo "*** that it is just a static archive that I should not use here." else echo $ECHO "*** Warning: Linking the shared library $output against the" $ECHO "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi ;; esac continue ;; prog) if test "$pass" != link; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test "$pass" = conv; then deplibs="$deplib $deplibs" elif test "$linkmode" = prog; then if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. func_append newdlprefiles " $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else func_append newdlfiles " $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=yes continue ;; esac # case $deplib if test "$found" = yes || test -f "$lib"; then : else func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" fi # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$lib" \ || func_fatal_error "\`$lib' is not a valid libtool archive" func_dirname "$lib" "" "." ladir="$func_dirname_result" dlname= dlopen= dlpreopen= libdir= library_names= old_library= inherited_linker_flags= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no avoidtemprpath= # Read the .la file func_source "$lib" # Convert "-framework foo" to "foo.ltframework" if test -n "$inherited_linker_flags"; then tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do case " $new_inherited_linker_flags " in *" $tmp_inherited_linker_flag "*) ;; *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; esac done fi dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then test -n "$dlopen" && func_append dlfiles " $dlopen" test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" fi if test "$pass" = conv; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # It is a libtool convenience library, so add in its objects. func_append convenience " $ladir/$objdir/$old_library" func_append old_convenience " $ladir/$objdir/$old_library" tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if $opt_preserve_dup_deps ; then case "$tmp_libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append tmp_libs " $deplib" done elif test "$linkmode" != prog && test "$linkmode" != lib; then func_fatal_error "\`$lib' is not a convenience library" fi continue fi # $pass = conv # Get the name of the library we link against. linklib= if test -n "$old_library" && { test "$prefer_static_libs" = yes || test "$prefer_static_libs,$installed" = "built,no"; }; then linklib=$old_library else for l in $old_library $library_names; do linklib="$l" done fi if test -z "$linklib"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # This library was specified with -dlopen. if test "$pass" = dlopen; then if test -z "$libdir"; then func_fatal_error "cannot -dlopen a convenience library: \`$lib'" fi if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. func_append dlprefiles " $lib $dependency_libs" else func_append newdlfiles " $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then func_warning "cannot determine absolute directory name of \`$ladir'" func_warning "passing it literally to the linker, although it might fail" abs_ladir="$ladir" fi ;; esac func_basename "$lib" laname="$func_basename_result" # Find the relevant object directory and library name. if test "X$installed" = Xyes; then if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then func_warning "library \`$lib' was moved." dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$lt_sysroot$libdir" absdir="$lt_sysroot$libdir" fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir="$ladir" absdir="$abs_ladir" # Remove this search path later func_append notinst_path " $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later func_append notinst_path " $abs_ladir" fi fi # $installed = yes func_stripname 'lib' '.la' "$laname" name=$func_stripname_result # This library was specified with -dlpreopen. if test "$pass" = dlpreopen; then if test -z "$libdir" && test "$linkmode" = prog; then func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" fi case "$host" in # special handling for platforms with PE-DLLs. *cygwin* | *mingw* | *cegcc* ) # Linker will automatically link against shared library if both # static and shared are present. Therefore, ensure we extract # symbols from the import library if a shared library is present # (otherwise, the dlopen module name will be incorrect). We do # this by putting the import library name into $newdlprefiles. # We recover the dlopen module name by 'saving' the la file # name in a special purpose variable, and (later) extracting the # dlname from the la file. if test -n "$dlname"; then func_tr_sh "$dir/$linklib" eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" func_append newdlprefiles " $dir/$linklib" else func_append newdlprefiles " $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ func_append dlpreconveniencelibs " $dir/$old_library" fi ;; * ) # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then func_append newdlprefiles " $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ func_append dlpreconveniencelibs " $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then func_append newdlprefiles " $dir/$dlname" else func_append newdlprefiles " $dir/$linklib" fi ;; esac fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test "$linkmode" = lib; then deplibs="$dir/$old_library $deplibs" elif test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test "$linkmode" = prog && test "$pass" != link; then func_append newlib_search_path " $ladir" deplibs="$lib $deplibs" linkalldeplibs=no if test "$link_all_deplibs" != no || test -z "$library_names" || test "$build_libtool_libs" = no; then linkalldeplibs=yes fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; esac # Need to link against all dependency_libs? if test "$linkalldeplibs" = yes; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if $opt_preserve_dup_deps ; then case "$tmp_libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append tmp_libs " $deplib" done # for deplib continue fi # $linkmode = prog... if test "$linkmode,$pass" = "prog,link"; then if test -n "$library_names" && { { test "$prefer_static_libs" = no || test "$prefer_static_libs,$installed" = "built,yes"; } || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then # Make sure the rpath contains only unique directories. case "$temp_rpath:" in *"$absdir:"*) ;; *) func_append temp_rpath "$absdir:" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) func_append compile_rpath " $absdir" ;; esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac ;; esac fi # $linkmode,$pass = prog,link... if test "$alldeplibs" = yes && { test "$deplibs_check_method" = pass_all || { test "$build_libtool_libs" = yes && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi link_static=no # Whether the deplib will be linked statically use_static_libs=$prefer_static_libs if test "$use_static_libs" = built && test "$installed" = yes; then use_static_libs=no fi if test -n "$library_names" && { test "$use_static_libs" = no || test -z "$old_library"; }; then case $host in *cygwin* | *mingw* | *cegcc*) # No point in relinking DLLs because paths are not encoded func_append notinst_deplibs " $lib" need_relink=no ;; *) if test "$installed" = no; then func_append notinst_deplibs " $lib" need_relink=yes fi ;; esac # This is a shared library # Warn about portability, can't link against -module's on some # systems (darwin). Don't bleat about dlopened modules though! dlopenmodule="" for dlpremoduletest in $dlprefiles; do if test "X$dlpremoduletest" = "X$lib"; then dlopenmodule="$dlpremoduletest" break fi done if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then echo if test "$linkmode" = prog; then $ECHO "*** Warning: Linking the executable $output against the loadable module" else $ECHO "*** Warning: Linking the shared library $output against the loadable module" fi $ECHO "*** $linklib is not portable!" fi if test "$linkmode" = lib && test "$hardcode_into_libs" = yes; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) func_append compile_rpath " $absdir" ;; esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names shift realname="$1" shift libname=`eval "\\$ECHO \"$libname_spec\""` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname="$dlname" elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw* | *cegcc*) func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; esac eval soname=\"$soname_spec\" else soname="$realname" fi # Make a new name for the extract_expsyms_cmds to use soroot="$soname" func_basename "$soroot" soname="$func_basename_result" func_stripname 'lib' '.dll' "$soname" newlib=libimp-$func_stripname_result.a # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else func_verbose "extracting exported symbol list from \`$soname'" func_execute_cmds "$extract_expsyms_cmds" 'exit $?' fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else func_verbose "generating import library for \`$soname'" func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test "$linkmode" = prog || test "$opt_mode" != relink; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test "$hardcode_direct" = no; then add="$dir/$linklib" case $host in *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; *-*-sysv4*uw2*) add_dir="-L$dir" ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ *-*-unixware7*) add_dir="-L$dir" ;; *-*-darwin* ) # if the lib is a (non-dlopened) module then we can not # link against it, someone is ignoring the earlier warnings if /usr/bin/file -L $add 2> /dev/null | $GREP ": [^:]* bundle" >/dev/null ; then if test "X$dlopenmodule" != "X$lib"; then $ECHO "*** Warning: lib $linklib is a module, not a shared library" if test -z "$old_library" ; then echo echo "*** And there doesn't seem to be a static archive available" echo "*** The link will probably fail, sorry" else add="$dir/$old_library" fi elif test -n "$old_library"; then add="$dir/$old_library" fi fi esac elif test "$hardcode_minus_L" = no; then case $host in *-*-sunos*) add_shlibpath="$dir" ;; esac add_dir="-L$dir" add="-l$name" elif test "$hardcode_shlibpath_var" = no; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; relink) if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$absdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; *) lib_linked=no ;; esac if test "$lib_linked" != yes; then func_fatal_configuration "unsupported hardcode properties" fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) func_append compile_shlibpath "$add_shlibpath:" ;; esac fi if test "$linkmode" = prog; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test "$hardcode_direct" != yes && test "$hardcode_minus_L" != yes && test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) func_append finalize_shlibpath "$libdir:" ;; esac fi fi fi if test "$linkmode" = prog || test "$opt_mode" = relink; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$libdir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$libdir" add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) func_append finalize_shlibpath "$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then add="$inst_prefix_dir$libdir/$linklib" else add="$libdir/$linklib" fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir="-L$libdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" fi if test "$linkmode" = prog; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test "$linkmode" = prog; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test "$hardcode_direct" != unsupported; then test -n "$old_library" && linklib="$old_library" compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test "$build_libtool_libs" = yes; then # Not a shared library if test "$deplibs_check_method" != pass_all; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. echo $ECHO "*** Warning: This system can not link to static lib archive $lib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then echo "*** But as you try to build a module library, libtool will still create " echo "*** a static module, that should work as long as the dlopening application" echo "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" echo "*** lists from a program, using \`nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test "$linkmode" = lib; then if test -n "$dependency_libs" && { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || test "$link_static" = yes; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) func_stripname '-R' '' "$libdir" temp_xrpath=$func_stripname_result case " $xrpath " in *" $temp_xrpath "*) ;; *) func_append xrpath " $temp_xrpath";; esac;; *) func_append temp_deplibs " $libdir";; esac done dependency_libs="$temp_deplibs" fi func_append newlib_search_path " $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" case $deplib in -L*) func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result";; *) func_resolve_sysroot "$deplib" ;; esac if $opt_preserve_dup_deps ; then case "$tmp_libs " in *" $func_resolve_sysroot_result "*) func_append specialdeplibs " $func_resolve_sysroot_result" ;; esac fi func_append tmp_libs " $func_resolve_sysroot_result" done if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do path= case $deplib in -L*) path="$deplib" ;; *.la) func_resolve_sysroot "$deplib" deplib=$func_resolve_sysroot_result func_dirname "$deplib" "" "." dir=$func_dirname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then func_warning "cannot determine absolute directory name of \`$dir'" absdir="$dir" fi ;; esac if $GREP "^installed=no" $deplib > /dev/null; then case $host in *-*-darwin*) depdepl= eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names" ; then for tmp in $deplibrary_names ; do depdepl=$tmp done if test -f "$absdir/$objdir/$depdepl" ; then depdepl="$absdir/$objdir/$depdepl" darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` if test -z "$darwin_install_name"; then darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` fi func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}" path= fi fi ;; *) path="-L$absdir/$objdir" ;; esac else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" test "$absdir" != "$libdir" && \ func_warning "\`$deplib' seems to be moved" path="-L$absdir" fi ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$path $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs if test "$pass" = link; then if test "$linkmode" = "prog"; then compile_deplibs="$new_inherited_linker_flags $compile_deplibs" finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" else compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` fi fi dependency_libs="$newdependency_libs" if test "$pass" = dlpreopen; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test "$pass" != dlopen; then if test "$pass" != conv; then # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) func_append lib_search_path " $dir" ;; esac done newlib_search_path= fi if test "$linkmode,$pass" != "prog,link"; then vars="deplibs" else vars="compile_deplibs finalize_deplibs" fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so # that some nasty dependency loop isn't accidentally # broken: #new_libs="$deplib $new_libs" # Pragmatically, this seems to cause very few problems in # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; -R*) ;; *) # And here is the reason: when a library appears more # than once as an explicit dependence of a library, or # is implicitly linked in more than once by the # compiler, it is considered special, and multiple # occurrences thereof are not removed. Compare this # with having the same library being listed as a # dependency of multiple other libraries: in this case, # we know (pedantically, we assume) the library does not # need to be listed more than once, so we keep only the # last copy. This is not always right, but it is rare # enough that we require users that really mean to play # such unportable linking tricks to link the library # using -Wl,-lname, so that libtool does not consider it # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) func_append tmp_libs " $deplib" ;; esac ;; *) func_append tmp_libs " $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= for i in $dependency_libs ; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i="" ;; esac if test -n "$i" ; then func_append tmp_libs " $i" fi done dependency_libs=$tmp_libs done # for pass if test "$linkmode" = prog; then dlfiles="$newdlfiles" fi if test "$linkmode" = prog || test "$linkmode" = lib; then dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for archives" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for archives" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for archives" test -n "$xrpath" && \ func_warning "\`-R' is ignored for archives" test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for archives" test -n "$release" && \ func_warning "\`-release' is ignored for archives" test -n "$export_symbols$export_symbols_regex" && \ func_warning "\`-export-symbols' is ignored for archives" # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" func_append objs "$old_deplibs" ;; lib) # Make sure we only generate libraries of the form `libNAME.la'. case $outputname in lib*) func_stripname 'lib' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) test "$module" = no && \ func_fatal_help "libtool library \`$output' must begin with \`lib'" if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required func_stripname '' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else func_stripname '' '.la' "$outputname" libname=$func_stripname_result fi ;; esac if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" else echo $ECHO "*** Warning: Linking the shared library $output against the non-libtool" $ECHO "*** objects $objs is not portable!" func_append libobjs " $objs" fi fi test "$dlself" != no && \ func_warning "\`-dlopen self' is ignored for libtool libraries" set dummy $rpath shift test "$#" -gt 1 && \ func_warning "ignoring multiple \`-rpath's for a libtool library" install_libdir="$1" oldlibs= if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. # Some compilers have problems with a `.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for convenience libraries" test -n "$release" && \ func_warning "\`-release' is ignored for convenience libraries" else # Parse the version information argument. save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 shift IFS="$save_ifs" test -n "$7" && \ func_fatal_help "too many parameters to \`-version-info'" # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major="$1" number_minor="$2" number_revision="$3" # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # which has an extra 1 added just for fun # case $version_type in # correct linux to gnu/linux during the next big refactor darwin|linux|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_revision" ;; freebsd-aout|freebsd-elf|qnx|sunos) current="$number_major" revision="$number_minor" age="0" ;; irix|nonstopux) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_minor" lt_irix_increment=no ;; *) func_fatal_configuration "$modename: unknown library version type \`$version_type'" ;; esac ;; no) current="$1" revision="$2" age="$3" ;; esac # Check that each of the things are valid numbers. case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "CURRENT \`$current' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "REVISION \`$revision' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "AGE \`$age' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac if test "$age" -gt "$current"; then func_error "AGE \`$age' is greater than the current interface number \`$current'" func_fatal_error "\`$vinfo' is not valid version information" fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... func_arith $current + 1 minor_current=$func_arith_result xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ;; freebsd-aout) major=".$current" versuffix=".$current.$revision"; ;; freebsd-elf) major=".$current" versuffix=".$current" ;; irix | nonstopux) if test "X$lt_irix_increment" = "Xno"; then func_arith $current - $age else func_arith $current - $age + 1 fi major=$func_arith_result case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring="$verstring_prefix$major.$revision" # Add in all the interfaces that we are compatible with. loop=$revision while test "$loop" -ne 0; do func_arith $revision - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. major=.$major versuffix="$major.$revision" ;; linux) # correct to gnu/linux during the next big refactor func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" ;; osf) func_arith $current - $age major=.$func_arith_result versuffix=".$current.$age.$revision" verstring="$current.$age.$revision" # Add in all the interfaces that we are compatible with. loop=$age while test "$loop" -ne 0; do func_arith $current - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring:${iface}.0" done # Make executables depend on our current version. func_append verstring ":${current}.0" ;; qnx) major=".$current" versuffix=".$current" ;; sunos) major=".$current" versuffix=".$current.$revision" ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 filesystems. func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; *) func_fatal_configuration "unknown library version type \`$version_type'" ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring="0.0" ;; esac if test "$need_version" = no; then versuffix= else versuffix=".0.0" fi fi # Remove version info from name if versioning should be avoided if test "$avoid_version" = yes && test "$need_version" = no; then major= versuffix= verstring="" fi # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then func_warning "undefined symbols not allowed in $host shared libraries" build_libtool_libs=no build_old_libs=yes fi else # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi fi func_generate_dlsyms "$libname" "$libname" "yes" func_append libobjs " $symfileobj" test "X$libobjs" = "X " && libobjs= if test "$opt_mode" != relink; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$ECHO "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext | *.gcno) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) if test "X$precious_files_regex" != "X"; then if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi func_append removelist " $p" ;; *) ;; esac done test -n "$removelist" && \ func_show_eval "${RM}r \$removelist" fi # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then func_append oldlibs " $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` fi # Eliminate all temporary directories. #for path in $notinst_path; do # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` #done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do func_replace_sysroot "$libdir" func_append temp_xrpath " -R$func_replace_sysroot_result" case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles="$dlfiles" dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) func_append dlfiles " $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles="$dlprefiles" dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) func_append dlprefiles " $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework func_append deplibs " System.ltframework" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work ;; *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then func_append deplibs " -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release="" versuffix="" major="" newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $opt_dry_run || $RM conftest.c cat > conftest.c </dev/null` $nocaseglob else potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` fi for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null | $GREP " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib="$potent_lib" while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | $SED -e 10q | $EGREP "$file_magic_regex" > /dev/null; then func_append newdeplibs " $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for file magic test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a file magic. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` for a_deplib in $deplibs; do case $a_deplib in -l*) func_stripname -l '' "$a_deplib" name=$func_stripname_result if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) func_append newdeplibs " $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; then libname=`eval "\\$ECHO \"$libname_spec\""` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib="$potent_lib" # see symlink-check above in file_magic test if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ $EGREP "$match_pattern_regex" > /dev/null; then func_append newdeplibs " $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a regex pattern. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"` done fi case $tmp_deplibs in *[!\ \ ]*) echo if test "X$deplibs_check_method" = "Xnone"; then echo "*** Warning: inter-library dependencies are not supported in this platform." else echo "*** Warning: inter-library dependencies are not known to be supported." fi echo "*** All declared inter-library dependencies are being dropped." droppeddeps=yes ;; esac ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library with the System framework newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then echo echo "*** Warning: libtool could not satisfy all declared inter-library" $ECHO "*** dependencies of module $libname. Therefore, libtool will create" echo "*** a static module, that should work as long as the dlopening" echo "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" echo "*** lists from a program, using \`nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else echo "*** The inter-library dependencies that have been dropped here will be" echo "*** automatically added whenever a program is linked with this library" echo "*** or is declared to -dlopen it." if test "$allow_undefined" = no; then echo echo "*** Since this library must not contain undefined symbols," echo "*** because either the platform does not support them or" echo "*** it was explicitly requested with -no-undefined," echo "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" case $host in *-*-darwin*) newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $deplibs " in *" -L$path/$objdir "*) func_append new_libs " -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) func_append new_libs " $deplib" ;; esac ;; *) func_append new_libs " $deplib" ;; esac done deplibs="$new_libs" # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then # Remove ${wl} instances when linking with ld. # FIXME: should test the right _cmds variable. case $archive_cmds in *\$LD\ *) wl= ;; esac if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" test "$opt_mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then func_replace_sysroot "$libdir" libdir=$func_replace_sysroot_result if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append dep_rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) func_append perm_rpath " $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do func_append rpath "$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath="$finalize_shlibpath" test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names shift realname="$1" shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname="$realname" fi if test -z "$dlname"; then dlname=$soname fi lib="$output_objdir/$realname" linknames= for link do func_append linknames " $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` test "X$libobjs" = "X " && libobjs= delfiles= if test -n "$export_symbols" && test -n "$include_expsyms"; then $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" export_symbols="$output_objdir/$libname.uexp" func_append delfiles " $export_symbols" fi orig_export_symbols= case $host_os in cygwin* | mingw* | cegcc*) if test -n "$export_symbols" && test -z "$export_symbols_regex"; then # exporting using user supplied symfile if test "x`$SED 1q $export_symbols`" != xEXPORTS; then # and it's NOT already a .def file. Must figure out # which of the given symbols are data symbols and tag # them as such. So, trigger use of export_symbols_cmds. # export_symbols gets reassigned inside the "prepare # the list of exported symbols" if statement, so the # include_expsyms logic still works. orig_export_symbols="$export_symbols" export_symbols= always_export_symbols=yes fi fi ;; esac # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' for cmd1 in $cmds; do IFS="$save_ifs" # Take the normal branch if the nm_file_list_spec branch # doesn't work or if tool conversion is not needed. case $nm_file_list_spec~$to_tool_file_cmd in *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) try_normal_branch=yes eval cmd=\"$cmd1\" func_len " $cmd" len=$func_len_result ;; *) try_normal_branch=no ;; esac if test "$try_normal_branch" = yes \ && { test "$len" -lt "$max_cmd_len" \ || test "$max_cmd_len" -le -1; } then func_show_eval "$cmd" 'exit $?' skipped_export=false elif test -n "$nm_file_list_spec"; then func_basename "$output" output_la=$func_basename_result save_libobjs=$libobjs save_output=$output output=${output_objdir}/${output_la}.nm func_to_tool_file "$output" libobjs=$nm_file_list_spec$func_to_tool_file_result func_append delfiles " $output" func_verbose "creating $NM input file list: $output" for obj in $save_libobjs; do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" done > "$output" eval cmd=\"$cmd1\" func_show_eval "$cmd" 'exit $?' output=$save_output libobjs=$save_libobjs skipped_export=false else # The command line is too long to execute in one step. func_verbose "using reloadable object file for export list..." skipped_export=: # Break out early, otherwise skipped_export may be # set to false by a later but shorter cmd. break fi done IFS="$save_ifs" if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter func_append delfiles " $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) func_append tmp_deplibs " $test_deplib" ;; esac done deplibs="$tmp_deplibs" if test -n "$convenience"; then if test -n "$whole_archive_flag_spec" && test "$compiler_needs_object" = yes && test -z "$libobjs"; then # extract the archives, so we have objects to list. # TODO: could optimize this to just extract one archive. whole_archive_flag_spec= fi if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= else gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $convenience func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" func_append linker_flags " $flag" fi # Make a backup of the uninstalled library when relinking if test "$opt_mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test "X$skipped_export" != "X:" && func_len " $test_cmds" && len=$func_len_result && test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise # or, if using GNU ld and skipped_export is not :, use a linker # script. # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output func_basename "$output" output_la=$func_basename_result # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= last_robj= k=1 if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then output=${output_objdir}/${output_la}.lnkscript func_verbose "creating GNU ld script: $output" echo 'INPUT (' > $output for obj in $save_libobjs do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" >> $output done echo ')' >> $output func_append delfiles " $output" func_to_tool_file "$output" output=$func_to_tool_file_result elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then output=${output_objdir}/${output_la}.lnk func_verbose "creating linker input file list: $output" : > $output set x $save_libobjs shift firstobj= if test "$compiler_needs_object" = yes; then firstobj="$1 " shift fi for obj do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" >> $output done func_append delfiles " $output" func_to_tool_file "$output" output=$firstobj\"$file_list_spec$func_to_tool_file_result\" else if test -n "$save_libobjs"; then func_verbose "creating reloadable object files..." output=$output_objdir/$output_la-${k}.$objext eval test_cmds=\"$reload_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 # Loop over the list of objects to be linked. for obj in $save_libobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result if test "X$objlist" = X || test "$len" -lt "$max_cmd_len"; then func_append objlist " $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. reload_objs=$objlist eval concat_cmds=\"$reload_cmds\" else # All subsequent reloadable object files will link in # the last one created. reload_objs="$objlist $last_robj" eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" fi last_robj=$output_objdir/$output_la-${k}.$objext func_arith $k + 1 k=$func_arith_result output=$output_objdir/$output_la-${k}.$objext objlist=" $obj" func_len " $last_robj" func_arith $len0 + $func_len_result len=$func_arith_result fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ reload_objs="$objlist $last_robj" eval concat_cmds=\"\${concat_cmds}$reload_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" fi func_append delfiles " $output" else output= fi if ${skipped_export-false}; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols libobjs=$output # Append the command to create the export file. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" fi fi test -n "$save_libobjs" && func_verbose "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. save_ifs="$IFS"; IFS='~' for cmd in $concat_cmds; do IFS="$save_ifs" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$opt_mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" if test -n "$export_symbols_regex" && ${skipped_export-false}; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi if ${skipped_export-false}; then if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter func_append delfiles " $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi fi libobjs=$output # Restore the value of output. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi fi if test -n "$delfiles"; then # Append the command to remove temporary files to $cmds. eval cmds=\"\$cmds~\$RM $delfiles\" fi # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $dlprefiles func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$opt_mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$opt_mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? if test -n "$convenience"; then if test -z "$whole_archive_flag_spec"; then func_show_eval '${RM}r "$gentop"' fi fi exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' fi done # If -module or -export-dynamic was specified, set the dlname. if test "$module" = yes || test "$export_dynamic" = yes; then # On all known operating systems, these are identical. dlname="$soname" fi fi ;; obj) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for objects" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for objects" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for objects" test -n "$xrpath" && \ func_warning "\`-R' is ignored for objects" test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for objects" test -n "$release" && \ func_warning "\`-release' is ignored for objects" case $output in *.lo) test -n "$objs$old_deplibs" && \ func_fatal_error "cannot build library object \`$output' from non-libtool objects" libobj=$output func_lo2o "$libobj" obj=$func_lo2o_result ;; *) libobj= obj="$output" ;; esac # Delete the old objects. $opt_dry_run || $RM $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # reload_cmds runs $LD directly, so let us get rid of # -Wl from whole_archive_flag_spec and hope we can get by with # turning comma into space.. wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` else gentop="$output_objdir/${obj}x" func_append generated " $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # If we're not building shared, we need to use non_pic_objs test "$build_libtool_libs" != yes && libobjs="$non_pic_objects" # Create the old-style object. reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" func_execute_cmds "$reload_cmds" 'exit $?' # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" func_execute_cmds "$reload_cmds" 'exit $?' fi if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) func_stripname '' '.exe' "$output" output=$func_stripname_result.exe;; esac test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for programs" test -n "$release" && \ func_warning "\`-release' is ignored for programs" test "$preload" = yes \ && test "$dlopen_support" = unknown \ && test "$dlopen_self" = unknown \ && test "$dlopen_self_static" = unknown && \ func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac case $host in *-*-darwin*) # Don't allow lazy linking, it breaks C++ global constructors # But is supposedly fixed on 10.4 or later (yay!). if test "$tagname" = CXX ; then case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 10.[0123]) func_append compile_command " ${wl}-bind_at_load" func_append finalize_command " ${wl}-bind_at_load" ;; esac fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $compile_deplibs " in *" -L$path/$objdir "*) func_append new_libs " -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) func_append new_libs " $deplib" ;; esac ;; *) func_append new_libs " $deplib" ;; esac done compile_deplibs="$new_libs" func_append compile_command " $compile_deplibs" func_append finalize_command " $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) func_append perm_rpath " $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; ::) dllsearchpath=$libdir;; *) func_append dllsearchpath ":$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) func_append dllsearchpath ":$testbindir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath="$rpath" rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) func_append finalize_perm_rpath " $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath="$rpath" if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` fi func_generate_dlsyms "$outputname" "@PROGRAM@" "no" # template prelinking step if test -n "$prelink_cmds"; then func_execute_cmds "$prelink_cmds" 'exit $?' fi wrappers_required=yes case $host in *cegcc* | *mingw32ce*) # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. wrappers_required=no ;; *cygwin* | *mingw* ) if test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; *) if test "$need_relink" = no || test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; esac if test "$wrappers_required" = no; then # Replace the output file specification. compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. exit_status=0 func_show_eval "$link_command" 'exit_status=$?' if test -n "$postlink_cmds"; then func_to_tool_file "$output" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi # Delete the generated files. if test -f "$output_objdir/${outputname}S.${objext}"; then func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' fi exit $exit_status fi if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do func_append rpath "$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do func_append rpath "$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test "$no_install" = yes; then # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $opt_dry_run || $RM $output # Link the executable and exit func_show_eval "$link_command" 'exit $?' if test -n "$postlink_cmds"; then func_to_tool_file "$output" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi exit $EXIT_SUCCESS fi if test "$hardcode_action" = relink; then # Fast installation is not supported link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" func_warning "this platform does not like uninstalled shared libraries" func_warning "\`$output' will be relinked during installation" else if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= fi else link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" fi fi # Replace the output file specification. link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname func_show_eval "$link_command" 'exit $?' if test -n "$postlink_cmds"; then func_to_tool_file "$output_objdir/$outputname" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi # Now create the wrapper script. func_verbose "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` fi # Only actually do things if not in dry run mode. $opt_dry_run || { # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) func_stripname '' '.exe' "$output" output=$func_stripname_result ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe func_stripname '' '.exe' "$outputname" outputname=$func_stripname_result ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) func_dirname_and_basename "$output" "" "." output_name=$func_basename_result output_path=$func_dirname_result cwrappersource="$output_path/$objdir/lt-$output_name.c" cwrapper="$output_path/$output_name.exe" $RM $cwrappersource $cwrapper trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 func_emit_cwrapperexe_src > $cwrappersource # The wrapper executable is built using the $host compiler, # because it contains $host paths and files. If cross- # compiling, it, like the target executable, must be # executed on the $host or under an emulation environment. $opt_dry_run || { $LTCC $LTCFLAGS -o $cwrapper $cwrappersource $STRIP $cwrapper } # Now, create the wrapper script for func_source use: func_ltwrapper_scriptname $cwrapper $RM $func_ltwrapper_scriptname_result trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 $opt_dry_run || { # note: this script will not be executed, so do not chmod. if test "x$build" = "x$host" ; then $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result else func_emit_wrapper no > $func_ltwrapper_scriptname_result fi } ;; * ) $RM $output trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 func_emit_wrapper no > $output chmod +x $output ;; esac } exit $EXIT_SUCCESS ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do if test "$build_libtool_libs" = convenience; then oldobjs="$libobjs_save $symfileobj" addlibs="$convenience" build_libtool_libs=no else if test "$build_libtool_libs" = module; then oldobjs="$libobjs_save" build_libtool_libs=no else oldobjs="$old_deplibs $non_pic_objects" if test "$preload" = yes && test -f "$symfileobj"; then func_append oldobjs " $symfileobj" fi fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $addlibs func_append oldobjs " $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then cmds=$old_archive_from_new_cmds else # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $dlprefiles func_append oldobjs " $func_extract_archives_result" fi # POSIX demands no paths to be encoded in archives. We have # to avoid creating archives with duplicate basenames if we # might have to extract them afterwards, e.g., when creating a # static archive out of a convenience library, or when linking # the entirety of a libtool archive into another (currently # not supported by libtool). if (for obj in $oldobjs do func_basename "$obj" $ECHO "$func_basename_result" done | sort | sort -uc >/dev/null 2>&1); then : else echo "copying selected object files to avoid basename conflicts..." gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_mkdir_p "$gentop" save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do func_basename "$obj" objbase="$func_basename_result" case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. newobj=lt$counter-$objbase func_arith $counter + 1 counter=$func_arith_result case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" func_append oldobjs " $gentop/$newobj" ;; *) func_append oldobjs " $obj" ;; esac done fi func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 tool_oldlib=$func_to_tool_file_result eval cmds=\"$old_archive_cmds\" func_len " $cmds" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds elif test -n "$archiver_list_spec"; then func_verbose "using command file archive linking..." for obj in $oldobjs do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" done > $output_objdir/$libname.libcmd func_to_tool_file "$output_objdir/$libname.libcmd" oldobjs=" $archiver_list_spec$func_to_tool_file_result" cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts func_verbose "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs oldobjs= # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done eval test_cmds=\"$old_archive_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 for obj in $save_oldobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result func_append objlist " $obj" if test "$len" -lt "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj" ; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" objlist= len=$len0 fi done RANLIB=$save_RANLIB oldobjs=$objlist if test "X$oldobjs" = "X" ; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi func_execute_cmds "$cmds" 'exit $?' done test -n "$generated" && \ func_show_eval "${RM}r$generated" # Now create the libtool archive. case $output in *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.$libext" func_verbose "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then relink_command= fi # Only create the output if not a dry run. $opt_dry_run || { for installed in no yes; do if test "$installed" = yes; then if test -z "$install_libdir"; then break fi output="$output_objdir/$outputname"i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) func_basename "$deplib" name="$func_basename_result" func_resolve_sysroot "$deplib" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" ;; -L*) func_stripname -L '' "$deplib" func_replace_sysroot "$func_stripname_result" func_append newdependency_libs " -L$func_replace_sysroot_result" ;; -R*) func_stripname -R '' "$deplib" func_replace_sysroot "$func_stripname_result" func_append newdependency_libs " -R$func_replace_sysroot_result" ;; *) func_append newdependency_libs " $deplib" ;; esac done dependency_libs="$newdependency_libs" newdlfiles= for lib in $dlfiles; do case $lib in *.la) func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" ;; *) func_append newdlfiles " $lib" ;; esac done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in *.la) # Only pass preopened files to the pseudo-archive (for # eventual linking with the app. that links it) if we # didn't already link the preopened objects directly into # the library: func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" ;; esac done dlprefiles="$newdlprefiles" else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac func_append newdlfiles " $abs" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac func_append newdlprefiles " $abs" done dlprefiles="$newdlprefiles" fi $RM $output # place dlname in correct position for cygwin # In fact, it would be nice if we could use this code for all target # systems that can't hard-code library paths into their executables # and that have no shared library path variable independent of PATH, # but it turns out we can't easily determine that from inspecting # libtool variables, so we have to hard-code the OSs to which it # applies here; at the moment, that means platforms that use the PE # object format with DLL files. See the long comment at the top of # tests/bindir.at for full details. tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) # If a -bindir argument was supplied, place the dll there. if test "x$bindir" != x ; then func_relative_path "$install_libdir" "$bindir" tdlname=$func_relative_path_result$dlname else # Otherwise fall back on heuristic. tdlname=../bin/$dlname fi ;; esac $ECHO > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Linker flags that can not go in dependency_libs. inherited_linker_flags='$new_inherited_linker_flags' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Names of additional weak libraries provided by this library weak_library_names='$weak_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test "$installed" = no && test "$need_relink" = yes; then $ECHO >> $output "\ relink_command=\"$relink_command\"" fi done } # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' ;; esac exit $EXIT_SUCCESS } { test "$opt_mode" = link || test "$opt_mode" = relink; } && func_mode_link ${1+"$@"} # func_mode_uninstall arg... func_mode_uninstall () { $opt_debug RM="$nonopt" files= rmforce= exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" for arg do case $arg in -f) func_append RM " $arg"; rmforce=yes ;; -*) func_append RM " $arg" ;; *) func_append files " $arg" ;; esac done test -z "$RM" && \ func_fatal_help "you must specify an RM program" rmdirs= for file in $files; do func_dirname "$file" "" "." dir="$func_dirname_result" if test "X$dir" = X.; then odir="$objdir" else odir="$dir/$objdir" fi func_basename "$file" name="$func_basename_result" test "$opt_mode" = uninstall && odir="$dir" # Remember odir for removal later, being careful to avoid duplicates if test "$opt_mode" = clean; then case " $rmdirs " in *" $odir "*) ;; *) func_append rmdirs " $odir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if { test -L "$file"; } >/dev/null 2>&1 || { test -h "$file"; } >/dev/null 2>&1 || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif test "$rmforce" = yes; then continue fi rmfiles="$file" case $name in *.la) # Possibly a libtool archive, so verify it. if func_lalib_p "$file"; then func_source $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do func_append rmfiles " $odir/$n" done test -n "$old_library" && func_append rmfiles " $odir/$old_library" case "$opt_mode" in clean) case " $library_names " in *" $dlname "*) ;; *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; esac test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" ;; uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi # FIXME: should reinstall the best remaining shared library. ;; esac fi ;; *.lo) # Possibly a libtool object, so verify it. if func_lalib_p "$file"; then # Read the .lo file func_source $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" && test "$pic_object" != none; then func_append rmfiles " $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" && test "$non_pic_object" != none; then func_append rmfiles " $dir/$non_pic_object" fi fi ;; *) if test "$opt_mode" = clean ; then noexename=$name case $file in *.exe) func_stripname '' '.exe' "$file" file=$func_stripname_result func_stripname '' '.exe' "$name" noexename=$func_stripname_result # $file with .exe has already been added to rmfiles, # add $file without .exe func_append rmfiles " $file" ;; esac # Do a test to see if this is a libtool program. if func_ltwrapper_p "$file"; then if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" relink_command= func_source $func_ltwrapper_scriptname_result func_append rmfiles " $func_ltwrapper_scriptname_result" else relink_command= func_source $dir/$noexename fi # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles func_append rmfiles " $odir/$name $odir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then func_append rmfiles " $odir/lt-$name" fi if test "X$noexename" != "X$name" ; then func_append rmfiles " $odir/lt-${noexename}.c" fi fi fi ;; esac func_show_eval "$RM $rmfiles" 'exit_status=1' done # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then func_show_eval "rmdir $dir >/dev/null 2>&1" fi done exit $exit_status } { test "$opt_mode" = uninstall || test "$opt_mode" = clean; } && func_mode_uninstall ${1+"$@"} test -z "$opt_mode" && { help="$generic_help" func_fatal_help "you must specify a MODE" } test -z "$exec_cmd" && \ func_fatal_help "invalid operation mode \`$opt_mode'" if test -n "$exec_cmd"; then eval exec "$exec_cmd" exit $EXIT_FAILURE fi exit $exit_status # The TAGs below are defined such that we never get into a situation # in which we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared build_libtool_libs=no build_old_libs=yes # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: # vi:sw=2 libextractor-1.3/Makefile.am0000644000175000017500000000027211764202166013042 00000000000000SUBDIRS = m4 po src doc . EXTRA_DIST = config.rpath \ ABOUT-NLS install-sh pkgconfigdatadir = $(libdir)/pkgconfig pkgconfigdata_DATA = libextractor.pc ACLOCAL_AMFLAGS = -I m4 libextractor-1.3/configure0000755000175000017500000316302012256015520012712 00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69 for libextractor 1.3. # # Report bugs to . # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 as_fn_exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1 test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO PATH=/empty FPATH=/empty; export PATH FPATH test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org and $0: bug-libextractor@gnu.org about your system, including $0: any error possibly output before this message. Then $0: install a modern shell, or manually run the script $0: under such a shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" SHELL=${CONFIG_SHELL-/bin/sh} test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='libextractor' PACKAGE_TARNAME='libextractor' PACKAGE_VERSION='1.3' PACKAGE_STRING='libextractor 1.3' PACKAGE_BUGREPORT='bug-libextractor@gnu.org' PACKAGE_URL='' # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_header_list= gt_needs= ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS pkgconfig_libfile pkgconfig_libdir USE_COVERAGE_FALSE USE_COVERAGE_TRUE PACKAGE_VERSION_NOALPHA LIBEXT XTRA_CPPLIBS QT_LDFLAGS QT_CPPFLAGS LE_LIB_LIBS LE_LIBINTL LE_INTLINCL LE_PLUGIN_LDFLAGS LE_LIB_LDFLAGS WANT_FRAMEWORK_FALSE WANT_FRAMEWORK_TRUE HAVE_FFMPEG_NEW_FALSE HAVE_FFMPEG_NEW_TRUE HAVE_FFMPEG_FALSE HAVE_FFMPEG_TRUE HAVE_ZZUF_FALSE HAVE_ZZUF_TRUE HAVE_ZZUF HAVE_GSF_FALSE HAVE_GSF_TRUE WITH_GSF_GNOME_FALSE WITH_GSF_GNOME_TRUE WITH_GSF_FALSE WITH_GSF_TRUE GSF_GNOME_LIBS GSF_GNOME_CFLAGS GSF_LIBS GSF_CFLAGS HAVE_GSTREAMER_FALSE HAVE_GSTREAMER_TRUE GSTREAMER_APP_LIBS GSTREAMER_APP_CFLAGS GSTREAMER_TAG_LIBS GSTREAMER_TAG_CFLAGS GSTREAMER_PBUTILS_LIBS GSTREAMER_PBUTILS_CFLAGS GSTREAMER_LIBS GSTREAMER_CFLAGS HAVE_GTK_FALSE HAVE_GTK_TRUE GTK_LIBS GTK_CFLAGS HAVE_SMF_FALSE HAVE_SMF_TRUE HAVE_GLIB_FALSE HAVE_GLIB_TRUE GLIB_MKENUMS GOBJECT_QUERY GLIB_GENMARSHAL GLIB_LIBS GLIB_CFLAGS PKG_CONFIG POSUB LTLIBINTL LIBINTL INTLLIBS INTL_MACOSX_LIBS XGETTEXT_EXTRA_OPTIONS MSGMERGE XGETTEXT_015 XGETTEXT GMSGFMT_015 MSGFMT_015 GMSGFMT MSGFMT GETTEXT_MACRO_VERSION USE_NLS SOCKET_LIBS LIBOBJS ENABLE_TEST_RUN_FALSE ENABLE_TEST_RUN_TRUE HAVE_TIDY_FALSE HAVE_TIDY_TRUE HAVE_MAGIC_FALSE HAVE_MAGIC_TRUE HAVE_GIF_FALSE HAVE_GIF_TRUE HAVE_EXIV2_FALSE HAVE_EXIV2_TRUE HAVE_EXPERIMENTAL_FALSE HAVE_EXPERIMENTAL_TRUE HAVE_ARCHIVE_FALSE HAVE_ARCHIVE_TRUE HAVE_TIFF_FALSE HAVE_TIFF_TRUE HAVE_JPEG_FALSE HAVE_JPEG_TRUE HAVE_MP4_FALSE HAVE_MP4_TRUE HAVE_MPEG2_FALSE HAVE_MPEG2_TRUE HAVE_LIBRPM_FALSE HAVE_LIBRPM_TRUE HAVE_BZ2_FALSE HAVE_BZ2_TRUE HAVE_ZLIB_FALSE HAVE_ZLIB_TRUE NEED_VORBIS_FALSE NEED_VORBIS_TRUE NEED_OGG_FALSE NEED_OGG_TRUE HAVE_FLAC_FALSE HAVE_FLAC_TRUE HAVE_VORBISFILE_FALSE HAVE_VORBISFILE_TRUE HAVE_CXX_FALSE HAVE_CXX_TRUE MINGW_FALSE MINGW_TRUE CYGWIN_FALSE CYGWIN_TRUE RPLUGINDIR ISOLOCALEDIR LOCALEDIR LTLIBICONV LIBICONV WINDOWS_FALSE WINDOWS_TRUE SOMEBSD_FALSE SOMEBSD_TRUE HAVE_GNU_LD_FALSE HAVE_GNU_LD_TRUE CXXCPP OTOOL64 OTOOL LIPO NMEDIT DSYMUTIL MANIFEST_TOOL RANLIB ac_ct_AR AR DLLTOOL OBJDUMP NM ac_ct_DUMPBIN DUMPBIN LD FGREP SED LIBTOOL LN_S HAVE_CXX am__fastdepCXX_FALSE am__fastdepCXX_TRUE CXXDEPMODE ac_ct_CXX CXXFLAGS CXX EGREP GREP CPP am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE am__nodep AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__quote am__include DEPDIR OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC AM_BACKSLASH AM_DEFAULT_VERBOSITY AM_DEFAULT_V AM_V am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM LIB_VERSION_AGE LIB_VERSION_REVISION LIB_VERSION_CURRENT target_os target_vendor target_cpu target host_os host_vendor host_cpu host build_os build_vendor build_cpu build target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_silent_rules enable_dependency_tracking enable_shared enable_static with_pic enable_fast_install with_gnu_ld with_sysroot enable_libtool_lock with_plibc enable_rpath with_libiconv_prefix with_plugindirname enable_largefile enable_gcc_hardening enable_linker_hardening with_ltdl enable_experimental enable_testruns enable_nls with_libintl_prefix enable_glibtest enable_glib with_gtk_version enable_gtktest with_gstreamer enable_gsf enable_gsf_gnome enable_ffmpeg enable_framework enable_coverage ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP CXX CXXFLAGS CCC CXXCPP PKG_CONFIG GSTREAMER_CFLAGS GSTREAMER_LIBS GSTREAMER_PBUTILS_CFLAGS GSTREAMER_PBUTILS_LIBS GSTREAMER_TAG_CFLAGS GSTREAMER_TAG_LIBS GSTREAMER_APP_CFLAGS GSTREAMER_APP_LIBS GSF_CFLAGS GSF_LIBS GSF_GNOME_CFLAGS GSF_GNOME_LIBS' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures libextractor 1.3 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/libextractor] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] --target=TARGET configure for building compilers for TARGET [HOST] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of libextractor 1.3:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-silent-rules less verbose build output (undo: `make V=1') --disable-silent-rules verbose build output (undo: `make V=0') --disable-dependency-tracking speeds up one-time build --enable-dependency-tracking do not reject slow dependency extractors --enable-shared[=PKGS] build shared libraries [default=yes] --enable-static[=PKGS] build static libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) --disable-rpath do not hardcode runtime library paths --disable-largefile omit support for large files --enable-gcc-hardening enable compiler security checks --enable-linker-hardening enable linker security fixups --enable-experimental enable compiling experimental code --disable-testruns disable running tests on make check (default is YES) --disable-nls do not use Native Language Support --disable-glibtest do not try to compile and run a test GLIB program --disable-glib disable glib support --disable-gtktest do not try to compile and run a test GTK+ program --disable-gsf Turn off gsf --disable-gnome Turn off gsf-gnome --enable-ffmpeg Enable FFmpeg support --disable-ffmpeg Disable FFmpeg support --enable-framework enable Mac OS X framework build helpers --enable-coverage compile the library with code coverage support Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-sysroot=DIR Search for dependent libraries within DIR (or the compiler's sysroot if not specified). --with-plibc=PFX Base of PliBC installation --with-gnu-ld assume the C compiler uses GNU ld default=no --with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib --without-libiconv-prefix don't search for libiconv in includedir and libdir --with-plugindirname install directory for plugins (always relative to libdir) --with-ltdl=PFX base of libltdl installation --with-libintl-prefix[=DIR] search for libintl in DIR/include and DIR/lib --without-libintl-prefix don't search for libintl in includedir and libdir --with-gtk-version=VERSION version number of gtk to use (>=3.0.0 by default) --with-gstreamer Build with the GStreamer plugin Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor CXX C++ compiler command CXXFLAGS C++ compiler flags CXXCPP C++ preprocessor PKG_CONFIG path to pkg-config utility GSTREAMER_CFLAGS C compiler flags for GSTREAMER, overriding pkg-config GSTREAMER_LIBS linker flags for GSTREAMER, overriding pkg-config GSTREAMER_PBUTILS_CFLAGS C compiler flags for GSTREAMER_PBUTILS, overriding pkg-config GSTREAMER_PBUTILS_LIBS linker flags for GSTREAMER_PBUTILS, overriding pkg-config GSTREAMER_TAG_CFLAGS C compiler flags for GSTREAMER_TAG, overriding pkg-config GSTREAMER_TAG_LIBS linker flags for GSTREAMER_TAG, overriding pkg-config GSTREAMER_APP_CFLAGS C compiler flags for GSTREAMER_APP, overriding pkg-config GSTREAMER_APP_LIBS linker flags for GSTREAMER_APP, overriding pkg-config GSF_CFLAGS C compiler flags for GSF, overriding pkg-config GSF_LIBS linker flags for GSF, overriding pkg-config GSF_GNOME_CFLAGS C compiler flags for GSF_GNOME, overriding pkg-config GSF_GNOME_LIBS linker flags for GSF_GNOME, overriding pkg-config Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF libextractor configure 1.3 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_cpp # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using # the include files in INCLUDES and setting the cache variable VAR # accordingly. ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if eval \${$3+:} false; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 $as_echo_n "checking $2 usability... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_header_compiler=yes else ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 $as_echo_n "checking $2 presence... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$2> _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : ac_header_preproc=yes else ac_header_preproc=no fi rm -f conftest.err conftest.i conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( yes:no: ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; no:yes:* ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ( $as_echo "## --------------------------------------- ## ## Report this to bug-libextractor@gnu.org ## ## --------------------------------------- ##" ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_mongrel # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_run # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile # ac_fn_cxx_try_compile LINENO # ---------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_compile # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$2 || defined __stub___$2 choke me #endif int main () { return $2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func # ac_fn_cxx_try_cpp LINENO # ------------------------ # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_cpp # ac_fn_cxx_try_link LINENO # ------------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_link # ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES # --------------------------------------------- # Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR # accordingly. ac_fn_c_check_decl () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack as_decl_name=`echo $2|sed 's/ *(.*//'` as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 $as_echo_n "checking whether $as_decl_name is declared... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { #ifndef $as_decl_name #ifdef __cplusplus (void) $as_decl_use; #else (void) $as_decl_name; #endif #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_decl # ac_fn_c_check_type LINENO TYPE VAR INCLUDES # ------------------------------------------- # Tests whether TYPE exists after having included INCLUDES, setting cache # variable VAR accordingly. ac_fn_c_check_type () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof ($2)) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof (($2))) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else eval "$3=yes" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_type cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by libextractor $as_me 1.3, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi as_fn_append ac_header_list " stdlib.h" as_fn_append ac_header_list " unistd.h" as_fn_append ac_header_list " sys/param.h" gt_needs="$gt_needs " # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_config_headers="$ac_config_headers config.h" ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } if ${ac_cv_build+:} false; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } if ${ac_cv_host+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5 $as_echo_n "checking target system type... " >&6; } if ${ac_cv_target+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$target_alias" = x; then ac_cv_target=$ac_cv_host else ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5 $as_echo "$ac_cv_target" >&6; } case $ac_cv_target in *-*-*) ;; *) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;; esac target=$ac_cv_target ac_save_IFS=$IFS; IFS='-' set x $ac_cv_target shift target_cpu=$1 target_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: target_os=$* IFS=$ac_save_IFS case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac # The aliases save the names the user supplied, while $host etc. # will get canonicalized. test -n "$target_alias" && test "$program_prefix$program_suffix$program_transform_name" = \ NONENONEs,x,x, && program_prefix=${target_alias}- LIB_VERSION_CURRENT=4 LIB_VERSION_REVISION=3 LIB_VERSION_AGE=1 am__api_version='1.11' # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Just in case sleep 1 echo timestamp > conftest.file # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;; esac # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". as_fn_error $? "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi test "$2" = conftest.file ) then # Ok. : else as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if ${ac_cv_path_mkdir+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } mkdir_p="$MKDIR_P" case $mkdir_p in [\\/$]* | ?:[\\/]*) ;; */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; esac for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null # Check whether --enable-silent-rules was given. if test "${enable_silent_rules+set}" = set; then : enableval=$enable_silent_rules; fi case $enable_silent_rules in yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=1;; esac am_make=${MAKE-make} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 $as_echo_n "checking whether $am_make supports nested variables... " >&6; } if ${am_cv_make_support_nested_variables+:} false; then : $as_echo_n "(cached) " >&6 else if $as_echo 'TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 $as_echo "$am_cv_make_support_nested_variables" >&6; } if test $am_cv_make_support_nested_variables = yes; then AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AM_BACKSLASH='\' if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='libextractor' VERSION='1.3' cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AMTAR='$${TAR-tar}' am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' # Checks for programs. DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 $as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from `make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 $as_echo "$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then : enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi if test -z "$ac_file"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables See \`config.log' for more details" "$LINENO" 5; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if ${ac_cv_prog_CPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_GREP" || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_EGREP" || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default" if test "x$ac_cv_header_minix_config_h" = xyes; then : MINIX=yes else MINIX= fi if test "$MINIX" = yes; then $as_echo "#define _POSIX_SOURCE 1" >>confdefs.h $as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h $as_echo "#define _MINIX 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 $as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; } if ${ac_cv_safe_to_define___extensions__+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ # define __EXTENSIONS__ 1 $ac_includes_default int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_safe_to_define___extensions__=yes else ac_cv_safe_to_define___extensions__=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5 $as_echo "$ac_cv_safe_to_define___extensions__" >&6; } test $ac_cv_safe_to_define___extensions__ = yes && $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h $as_echo "#define _ALL_SOURCE 1" >>confdefs.h $as_echo "#define _GNU_SOURCE 1" >>confdefs.h $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi if test "x$CC" != xcc; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC and cc understand -c and -o together" >&5 $as_echo_n "checking whether $CC and cc understand -c and -o together... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cc understands -c and -o together" >&5 $as_echo_n "checking whether cc understands -c and -o together... " >&6; } fi set dummy $CC; ac_cc=`$as_echo "$2" | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` if eval \${ac_cv_prog_cc_${ac_cc}_c_o+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF # Make sure it works both with $CC and with simple cc. # We do the test twice because some compilers refuse to overwrite an # existing .o file with -o, though they will create one. ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5' rm -f conftest2.* if { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -f conftest2.$ac_objext && { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then eval ac_cv_prog_cc_${ac_cc}_c_o=yes if test "x$CC" != xcc; then # Test first that cc exists at all. if { ac_try='cc -c conftest.$ac_ext >&5' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then ac_try='cc -c conftest.$ac_ext -o conftest2.$ac_objext >&5' rm -f conftest2.* if { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -f conftest2.$ac_objext && { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # cc works too. : else # cc exists but doesn't like -o. eval ac_cv_prog_cc_${ac_cc}_c_o=no fi fi fi else eval ac_cv_prog_cc_${ac_cc}_c_o=no fi rm -f core conftest* fi if eval test \$ac_cv_prog_cc_${ac_cc}_c_o = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "#define NO_MINUS_C_MINUS_O 1" >>confdefs.h fi # FIXME: we rely on the cache variable name because # there is no other way. set dummy $CC am_cc=`echo $2 | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o if test "$am_t" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if ${ac_cv_prog_CPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -z "$CXX"; then if test -n "$CCC"; then CXX=$CCC else if test -n "$ac_tool_prefix"; then for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CXX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 $as_echo "$CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CXX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CXX="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 $as_echo "$ac_ct_CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CXX" && break done if test "x$ac_ct_CXX" = x; then CXX="g++" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CXX=$ac_ct_CXX fi fi fi fi # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 $as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } if ${ac_cv_cxx_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 $as_echo "$ac_cv_cxx_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GXX=yes else GXX= fi ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 $as_echo_n "checking whether $CXX accepts -g... " >&6; } if ${ac_cv_prog_cxx_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_cxx_werror_flag=$ac_cxx_werror_flag ac_cxx_werror_flag=yes ac_cv_prog_cxx_g=no CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes else CXXFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : else ac_cxx_werror_flag=$ac_save_cxx_werror_flag CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cxx_werror_flag=$ac_save_cxx_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 $as_echo "$ac_cv_prog_cxx_g" >&6; } if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu depcc="$CXX" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if ${am_cv_CXX_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named `D' -- because `-MD' means `put the output # in D'. rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CXX_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with # Solaris 8's {/usr,}/bin/sh. touch sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with `-c' and `-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle `-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # after this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok `-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CXX_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CXX_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5 $as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; } CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then am__fastdepCXX_TRUE= am__fastdepCXX_FALSE='#' else am__fastdepCXX_TRUE='#' am__fastdepCXX_FALSE= fi # Extract the first word of "$CXX", so it can be a program name with args. set dummy $CXX; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_HAVE_CXX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$HAVE_CXX"; then ac_cv_prog_HAVE_CXX="$HAVE_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_HAVE_CXX="yes" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_HAVE_CXX" && ac_cv_prog_HAVE_CXX="no" fi fi HAVE_CXX=$ac_cv_prog_HAVE_CXX if test -n "$HAVE_CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HAVE_CXX" >&5 $as_echo "$HAVE_CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 $as_echo_n "checking whether ln -s works... " >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 $as_echo "no, using $LN_S" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi case `pwd` in *\ * | *\ *) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 $as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; esac macro_version='2.4.2' macro_revision='1.3337' ltmain="$ac_aux_dir/ltmain.sh" # Backslashify metacharacters that are still active within # double-quoted strings. sed_quote_subst='s/\(["`$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 $as_echo_n "checking how to print strings... " >&6; } # Test print first, because it will be a builtin if present. if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='printf %s\n' else # Use this function as a fallback that always works. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } ECHO='func_fallback_echo' fi # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "" } case "$ECHO" in printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 $as_echo "printf" >&6; } ;; print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 $as_echo "print -r" >&6; } ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 $as_echo "cat" >&6; } ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 $as_echo_n "checking for a sed that does not truncate output... " >&6; } if ${ac_cv_path_SED+:} false; then : $as_echo_n "(cached) " >&6 else ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for ac_i in 1 2 3 4 5 6 7; do ac_script="$ac_script$as_nl$ac_script" done echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed { ac_script=; unset ac_script;} if test -z "$SED"; then ac_path_SED_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_SED" || continue # Check for GNU ac_path_SED and select it if it is found. # Check for GNU $ac_path_SED case `"$ac_path_SED" --version 2>&1` in *GNU*) ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo '' >> "conftest.nl" "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_SED_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_SED="$ac_path_SED" ac_path_SED_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_SED_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_SED"; then as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 fi else ac_cv_path_SED=$SED fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 $as_echo "$ac_cv_path_SED" >&6; } SED="$ac_cv_path_SED" rm -f conftest.sed test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 $as_echo_n "checking for fgrep... " >&6; } if ${ac_cv_path_FGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 then ac_cv_path_FGREP="$GREP -F" else if test -z "$FGREP"; then ac_path_FGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in fgrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_FGREP" || continue # Check for GNU ac_path_FGREP and select it if it is found. # Check for GNU $ac_path_FGREP case `"$ac_path_FGREP" --version 2>&1` in *GNU*) ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'FGREP' >> "conftest.nl" "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_FGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_FGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_FGREP"; then as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_FGREP=$FGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 $as_echo "$ac_cv_path_FGREP" >&6; } FGREP="$ac_cv_path_FGREP" test -z "$GREP" && GREP=grep # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if ${lt_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if ${lt_cv_prog_gnu_ld+:} false; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 $as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 $as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } if ${lt_cv_path_NM+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done : ${lt_cv_path_NM=no} fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 $as_echo "$lt_cv_path_NM" >&6; } if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : # Let the user override the test. else if test -n "$ac_tool_prefix"; then for ac_prog in dumpbin "link -dump" do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DUMPBIN+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DUMPBIN"; then ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DUMPBIN=$ac_cv_prog_DUMPBIN if test -n "$DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 $as_echo "$DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$DUMPBIN" && break done fi if test -z "$DUMPBIN"; then ac_ct_DUMPBIN=$DUMPBIN for ac_prog in dumpbin "link -dump" do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DUMPBIN"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN if test -n "$ac_ct_DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 $as_echo "$ac_ct_DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_DUMPBIN" && break done if test "x$ac_ct_DUMPBIN" = x; then DUMPBIN=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DUMPBIN=$ac_ct_DUMPBIN fi fi case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols" ;; *) DUMPBIN=: ;; esac fi if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm { $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 $as_echo_n "checking the name lister ($NM) interface... " >&6; } if ${lt_cv_nm_interface+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 $as_echo "$lt_cv_nm_interface" >&6; } # find the maximum length of command line arguments { $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 $as_echo_n "checking the maximum length of command line arguments... " >&6; } if ${lt_cv_sys_max_cmd_len+:} false; then : $as_echo_n "(cached) " >&6 else i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; mint*) # On MiNT this can take a long time and run out of memory. lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; os2*) # The test takes a long time on OS/2. lt_cv_sys_max_cmd_len=8192 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8 ; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac fi if test -n $lt_cv_sys_max_cmd_len ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 $as_echo "$lt_cv_sys_max_cmd_len" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 $as_echo "none" >&6; } fi max_cmd_len=$lt_cv_sys_max_cmd_len : ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,b/c, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 $as_echo "$xsi_shell" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 $as_echo_n "checking whether the shell understands \"+=\"... " >&6; } lt_shell_append=no ( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 $as_echo "$lt_shell_append" >&6; } if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 $as_echo_n "checking how to convert $build file names to $host format... " >&6; } if ${lt_cv_to_host_file_cmd+:} false; then : $as_echo_n "(cached) " >&6 else case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ;; esac ;; *-*-cygwin* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_noop ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ;; esac ;; * ) # unhandled hosts (and "normal" native builds) lt_cv_to_host_file_cmd=func_convert_file_noop ;; esac fi to_host_file_cmd=$lt_cv_to_host_file_cmd { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 $as_echo "$lt_cv_to_host_file_cmd" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 $as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } if ${lt_cv_to_tool_file_cmd+:} false; then : $as_echo_n "(cached) " >&6 else #assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ;; esac ;; esac fi to_tool_file_cmd=$lt_cv_to_tool_file_cmd { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 $as_echo "$lt_cv_to_tool_file_cmd" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 $as_echo_n "checking for $LD option to reload object files... " >&6; } if ${lt_cv_ld_reload_flag+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_reload_flag='-r' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 $as_echo "$lt_cv_ld_reload_flag" >&6; } reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; *) reload_flag=" $reload_flag" ;; esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in cygwin* | mingw* | pw32* | cegcc*) if test "$GCC" != yes; then reload_cmds=false fi ;; darwin*) if test "$GCC" = yes; then reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' else reload_cmds='$LD$reload_flag -o $output$reload_objs' fi ;; esac if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OBJDUMP=$ac_cv_prog_OBJDUMP if test -n "$OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 $as_echo "$OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OBJDUMP"; then ac_ct_OBJDUMP=$OBJDUMP # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJDUMP"; then ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OBJDUMP="objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP if test -n "$ac_ct_OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 $as_echo "$ac_ct_OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OBJDUMP" = x; then OBJDUMP="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OBJDUMP=$ac_ct_OBJDUMP fi else OBJDUMP="$ac_cv_prog_OBJDUMP" fi test -z "$OBJDUMP" && OBJDUMP=objdump { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 $as_echo_n "checking how to recognize dependent libraries... " >&6; } if ${lt_cv_deplibs_check_method+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # `unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # which responds to the $file_magic_cmd with a given extended regex. # If you have `file' or equivalent on your system and you're not sure # whether `pass_all' will *always* work, you probably want this one. case $host_os in aix[4-9]*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi[45]*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' ;; mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else # Keep this pattern in sync with the one in func_win32_libid. lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc*) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; haiku*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[3-9]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) lt_cv_deplibs_check_method=pass_all ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 $as_echo "$lt_cv_deplibs_check_method" >&6; } file_magic_glob= want_nocaseglob=no if test "$build" = "$host"; then case $host_os in mingw* | pw32*) if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then want_nocaseglob=yes else file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` fi ;; esac fi file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. set dummy ${ac_tool_prefix}dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DLLTOOL"; then ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DLLTOOL=$ac_cv_prog_DLLTOOL if test -n "$DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 $as_echo "$DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DLLTOOL"; then ac_ct_DLLTOOL=$DLLTOOL # Extract the first word of "dlltool", so it can be a program name with args. set dummy dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DLLTOOL"; then ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DLLTOOL="dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL if test -n "$ac_ct_DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 $as_echo "$ac_ct_DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DLLTOOL" = x; then DLLTOOL="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DLLTOOL=$ac_ct_DLLTOOL fi else DLLTOOL="$ac_cv_prog_DLLTOOL" fi test -z "$DLLTOOL" && DLLTOOL=dlltool { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 $as_echo_n "checking how to associate runtime and link libraries... " >&6; } if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in cygwin* | mingw* | pw32* | cegcc*) # two different shell functions defined in ltmain.sh # decide which to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in *--identify-strict*) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ;; *) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ;; esac ;; *) # fallback: assume linklib IS sharedlib lt_cv_sharedlib_from_linklib_cmd="$ECHO" ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 $as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO if test -n "$ac_tool_prefix"; then for ac_prog in ar do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 $as_echo "$AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AR" && break done fi if test -z "$AR"; then ac_ct_AR=$AR for ac_prog in ar do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 $as_echo "$ac_ct_AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_AR" && break done if test "x$ac_ct_AR" = x; then AR="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi fi : ${AR=ar} : ${AR_FLAGS=cru} { $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 $as_echo_n "checking for archiver @FILE support... " >&6; } if ${lt_cv_ar_at_file+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ar_at_file=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : echo conftest.$ac_objext > conftest.lst lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test "$ac_status" -eq 0; then # Ensure the archiver fails upon bogus file names. rm -f conftest.$ac_objext libconftest.a { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test "$ac_status" -ne 0; then lt_cv_ar_at_file=@ fi fi rm -f conftest.* libconftest.a fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 $as_echo "$lt_cv_ar_at_file" >&6; } if test "x$lt_cv_ar_at_file" = xno; then archiver_list_spec= else archiver_list_spec=$lt_cv_ar_at_file fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi test -z "$STRIP" && STRIP=: if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 $as_echo "$RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 $as_echo "$ac_ct_RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi test -z "$RANLIB" && RANLIB=: # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi case $host_os in darwin*) lock_old_archive_extraction=yes ;; *) lock_old_archive_extraction=no ;; esac # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Check for command to grab the raw symbol name followed by C symbol from nm. { $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 $as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } if ${lt_cv_sys_global_symbol_pipe+:} false; then : $as_echo_n "(cached) " >&6 else # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[BCDEGRST]' # Regexp to match symbols that can be accessed directly from C. sympat='\([_A-Za-z][_A-Za-z0-9]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[BCDT]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[ABCDGISTW]' ;; hpux*) if test "$host_cpu" = ia64; then symcode='[ABCDEGRST]' fi ;; irix* | nonstopux*) symcode='[BCDEGRST]' ;; osf*) symcode='[BCDEGQRST]' ;; solaris*) symcode='[BDRT]' ;; sco3.2v5*) symcode='[DT]' ;; sysv4.2uw2*) symcode='[DT]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[ABDT]' ;; sysv4) symcode='[DFNSTU]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[ABCDGIRSTW]' ;; esac # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function # and D for any global variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK '"\ " {last_section=section; section=\$ 3};"\ " /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ " s[1]~/^[@?]/{print s[1], s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # Now try to grab the symbols. nlist=conftest.nm if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST #elif defined(__osf__) /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else # define LT_DLSYM_CONST const #endif #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ LT_DLSYM_CONST struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_globsym_save_LIBS=$LIBS lt_globsym_save_CFLAGS=$CFLAGS LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS=$lt_globsym_save_LIBS CFLAGS=$lt_globsym_save_CFLAGS else echo "cannot find nm_test_func in $nlist" >&5 fi else echo "cannot find nm_test_var in $nlist" >&5 fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 fi else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done fi if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 $as_echo "failed" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 $as_echo "ok" >&6; } fi # Response file support. if test "$lt_cv_nm_interface" = "MS dumpbin"; then nm_file_list_spec='@' elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then nm_file_list_spec='@' fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 $as_echo_n "checking for sysroot... " >&6; } # Check whether --with-sysroot was given. if test "${with_sysroot+set}" = set; then : withval=$with_sysroot; else with_sysroot=no fi lt_sysroot= case ${with_sysroot} in #( yes) if test "$GCC" = yes; then lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( /*) lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` ;; #( no|'') ;; #( *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5 $as_echo "${with_sysroot}" >&6; } as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 $as_echo "${lt_sysroot:-no}" >&6; } # Check whether --enable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then : enableval=$enable_libtool_lock; fi test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '#line '$LINENO' "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 $as_echo_n "checking whether the C compiler needs -belf... " >&6; } if ${lt_cv_cc_needs_belf+:} false; then : $as_echo_n "(cached) " >&6 else ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_cc_needs_belf=yes else lt_cv_cc_needs_belf=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 $as_echo "$lt_cv_cc_needs_belf" >&6; } if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; *-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) case $host in i?86-*-solaris*) LD="${LD-ld} -m elf_x86_64" ;; sparc*-*-solaris*) LD="${LD-ld} -m elf64_sparc" ;; esac # GNU ld 2.21 introduced _sol2 emulations. Use them if available. if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then LD="${LD-ld}_sol2" fi ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. set dummy ${ac_tool_prefix}mt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$MANIFEST_TOOL"; then ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL if test -n "$MANIFEST_TOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 $as_echo "$MANIFEST_TOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_MANIFEST_TOOL"; then ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL # Extract the first word of "mt", so it can be a program name with args. set dummy mt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_MANIFEST_TOOL"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL if test -n "$ac_ct_MANIFEST_TOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 $as_echo "$ac_ct_MANIFEST_TOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_MANIFEST_TOOL" = x; then MANIFEST_TOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL fi else MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" fi test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 $as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } if ${lt_cv_path_mainfest_tool+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_path_mainfest_tool=no echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out cat conftest.err >&5 if $GREP 'Manifest Tool' conftest.out > /dev/null; then lt_cv_path_mainfest_tool=yes fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 $as_echo "$lt_cv_path_mainfest_tool" >&6; } if test "x$lt_cv_path_mainfest_tool" != xyes; then MANIFEST_TOOL=: fi case $host_os in rhapsody* | darwin*) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DSYMUTIL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DSYMUTIL"; then ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DSYMUTIL=$ac_cv_prog_DSYMUTIL if test -n "$DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 $as_echo "$DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DSYMUTIL"; then ac_ct_DSYMUTIL=$DSYMUTIL # Extract the first word of "dsymutil", so it can be a program name with args. set dummy dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DSYMUTIL"; then ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL if test -n "$ac_ct_DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 $as_echo "$ac_ct_DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DSYMUTIL" = x; then DSYMUTIL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DSYMUTIL=$ac_ct_DSYMUTIL fi else DSYMUTIL="$ac_cv_prog_DSYMUTIL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. set dummy ${ac_tool_prefix}nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_NMEDIT+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$NMEDIT"; then ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi NMEDIT=$ac_cv_prog_NMEDIT if test -n "$NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 $as_echo "$NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_NMEDIT"; then ac_ct_NMEDIT=$NMEDIT # Extract the first word of "nmedit", so it can be a program name with args. set dummy nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_NMEDIT"; then ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_NMEDIT="nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT if test -n "$ac_ct_NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 $as_echo "$ac_ct_NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_NMEDIT" = x; then NMEDIT=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac NMEDIT=$ac_ct_NMEDIT fi else NMEDIT="$ac_cv_prog_NMEDIT" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. set dummy ${ac_tool_prefix}lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_LIPO+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$LIPO"; then ac_cv_prog_LIPO="$LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_LIPO="${ac_tool_prefix}lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi LIPO=$ac_cv_prog_LIPO if test -n "$LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 $as_echo "$LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_LIPO"; then ac_ct_LIPO=$LIPO # Extract the first word of "lipo", so it can be a program name with args. set dummy lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_LIPO+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_LIPO"; then ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_LIPO="lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO if test -n "$ac_ct_LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 $as_echo "$ac_ct_LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_LIPO" = x; then LIPO=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac LIPO=$ac_ct_LIPO fi else LIPO="$ac_cv_prog_LIPO" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. set dummy ${ac_tool_prefix}otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL"; then ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OTOOL="${ac_tool_prefix}otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL=$ac_cv_prog_OTOOL if test -n "$OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 $as_echo "$OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL"; then ac_ct_OTOOL=$OTOOL # Extract the first word of "otool", so it can be a program name with args. set dummy otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL"; then ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OTOOL="otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL if test -n "$ac_ct_OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 $as_echo "$ac_ct_OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL" = x; then OTOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL=$ac_ct_OTOOL fi else OTOOL="$ac_cv_prog_OTOOL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. set dummy ${ac_tool_prefix}otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OTOOL64+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL64"; then ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL64=$ac_cv_prog_OTOOL64 if test -n "$OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 $as_echo "$OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL64"; then ac_ct_OTOOL64=$OTOOL64 # Extract the first word of "otool64", so it can be a program name with args. set dummy otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL64"; then ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OTOOL64="otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 if test -n "$ac_ct_OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 $as_echo "$ac_ct_OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL64" = x; then OTOOL64=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL64=$ac_ct_OTOOL64 fi else OTOOL64="$ac_cv_prog_OTOOL64" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 $as_echo_n "checking for -single_module linker flag... " >&6; } if ${lt_cv_apple_cc_single_mod+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&5 $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? # If there is a non-empty error log, and "single_module" # appears in it, assume the flag caused a linker warning if test -s conftest.err && $GREP single_module conftest.err; then cat conftest.err >&5 # Otherwise, if the output was created with a 0 exit code from # the compiler, it worked. elif test -f libconftest.dylib && test $_lt_result -eq 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&5 fi rm -rf libconftest.dylib* rm -f conftest.* fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 $as_echo "$lt_cv_apple_cc_single_mod" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } if ${lt_cv_ld_exported_symbols_list+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_ld_exported_symbols_list=yes else lt_cv_ld_exported_symbols_list=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 $as_echo_n "checking for -force_load linker flag... " >&6; } if ${lt_cv_ld_force_load+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 echo "$AR cru libconftest.a conftest.o" >&5 $AR cru libconftest.a conftest.o 2>&5 echo "$RANLIB libconftest.a" >&5 $RANLIB libconftest.a 2>&5 cat > conftest.c << _LT_EOF int main() { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? if test -s conftest.err && $GREP force_load conftest.err; then cat conftest.err >&5 elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then lt_cv_ld_force_load=yes else cat conftest.err >&5 fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 $as_echo "$lt_cv_ld_force_load" >&6; } case $host_os in rhapsody* | darwin1.[012]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[91]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 10.[012]*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test "$lt_cv_apple_cc_single_mod" = "yes"; then _lt_dar_single_mod='$single_module' fi if test "$lt_cv_ld_exported_symbols_list" = "yes"; then _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac for ac_header in dlfcn.h do : ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default " if test "x$ac_cv_header_dlfcn_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DLFCN_H 1 _ACEOF fi done func_stripname_cnf () { case ${2} in .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; esac } # func_stripname_cnf # Set options enable_dlopen=no enable_win32_dll=no # Check whether --enable-shared was given. if test "${enable_shared+set}" = set; then : enableval=$enable_shared; p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac else enable_shared=yes fi # Check whether --enable-static was given. if test "${enable_static+set}" = set; then : enableval=$enable_static; p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac else enable_static=yes fi # Check whether --with-pic was given. if test "${with_pic+set}" = set; then : withval=$with_pic; lt_p=${PACKAGE-default} case $withval in yes|no) pic_mode=$withval ;; *) pic_mode=default # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for lt_pkg in $withval; do IFS="$lt_save_ifs" if test "X$lt_pkg" = "X$lt_p"; then pic_mode=yes fi done IFS="$lt_save_ifs" ;; esac else pic_mode=default fi test -z "$pic_mode" && pic_mode=default # Check whether --enable-fast-install was given. if test "${enable_fast_install+set}" = set; then : enableval=$enable_fast_install; p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac else enable_fast_install=yes fi # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' test -z "$LN_S" && LN_S="ln -s" if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 $as_echo_n "checking for objdir... " >&6; } if ${lt_cv_objdir+:} false; then : $as_echo_n "(cached) " >&6 else rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 $as_echo "$lt_cv_objdir" >&6; } objdir=$lt_cv_objdir cat >>confdefs.h <<_ACEOF #define LT_OBJDIR "$lt_cv_objdir/" _ACEOF case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld="$lt_cv_prog_gnu_ld" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 $as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } if ${lt_cv_path_MAGIC_CMD+:} false; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/${ac_tool_prefix}file; then lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 $as_echo_n "checking for file... " >&6; } if ${lt_cv_path_MAGIC_CMD+:} false; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/file; then lt_cv_path_MAGIC_CMD="$ac_dir/file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi else MAGIC_CMD=: fi fi fi ;; esac # Use C for the default configuration in the libtool script lt_save_CC="$CC" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o objext=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then lt_prog_compiler_no_builtin_flag= if test "$GCC" = yes; then case $cc_basename in nvcc*) lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; *) lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 $as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 $as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl= lt_prog_compiler_pic= lt_prog_compiler_static= if test "$GCC" = yes; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. lt_prog_compiler_static= ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) lt_prog_compiler_pic='-fPIC' ;; esac ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic=-Kconform_pic fi ;; *) lt_prog_compiler_pic='-fPIC' ;; esac case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 lt_prog_compiler_wl='-Xlinker ' if test -n "$lt_prog_compiler_pic"; then lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" fi ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; # Lahey Fortran 8.1. lf95*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='--shared' lt_prog_compiler_static='--static' ;; nagfor*) # NAG Fortran compiler lt_prog_compiler_wl='-Wl,-Wl,,' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; ccc*) lt_prog_compiler_wl='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; xl* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-qpic' lt_prog_compiler_static='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='' ;; *Sun\ F* | *Sun*Fortran*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Qoption ld ' ;; *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Wl,' ;; *Intel*\ [CF]*Compiler*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; *Portland\ Group*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; esac ;; esac ;; newsos6) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static='-non_shared' ;; rdos*) lt_prog_compiler_static='-non_shared' ;; solaris*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) lt_prog_compiler_wl='-Qoption ld ';; *) lt_prog_compiler_wl='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl='-Qoption ld ' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic='-Kconform_pic' lt_prog_compiler_static='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; unicos*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_can_build_shared=no ;; uts4*) lt_prog_compiler_pic='-pic' lt_prog_compiler_static='-Bstatic' ;; *) lt_prog_compiler_can_build_shared=no ;; esac fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; *) lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } if ${lt_cv_prog_compiler_pic+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic=$lt_prog_compiler_pic fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 $as_echo "$lt_cv_prog_compiler_pic" >&6; } lt_prog_compiler_pic=$lt_cv_prog_compiler_pic # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } if ${lt_cv_prog_compiler_pic_works+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 $as_echo "$lt_cv_prog_compiler_pic_works" >&6; } if test x"$lt_cv_prog_compiler_pic_works" = xyes; then case $lt_prog_compiler_pic in "" | " "*) ;; *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; esac else lt_prog_compiler_pic= lt_prog_compiler_can_build_shared=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if ${lt_cv_prog_compiler_static_works+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works=yes fi else lt_cv_prog_compiler_static_works=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 $as_echo "$lt_cv_prog_compiler_static_works" >&6; } if test x"$lt_cv_prog_compiler_static_works" = xyes; then : else lt_prog_compiler_static= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test "$hard_links" = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 $as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } runpath_var= allow_undefined_flag= always_export_symbols=no archive_cmds= archive_expsym_cmds= compiler_needs_object=no enable_shared_with_static_runtimes=no export_dynamic_flag_spec= export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' hardcode_automatic=no hardcode_direct=no hardcode_direct_absolute=no hardcode_libdir_flag_spec= hardcode_libdir_separator= hardcode_minus_L=no hardcode_shlibpath_var=unsupported inherit_rpath=no link_all_deplibs=unknown module_cmds= module_expsym_cmds= old_archive_from_new_cmds= old_archive_from_expsyms_cmds= thread_safe_flag_spec= whole_archive_flag_spec= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; linux* | k*bsd*-gnu | gnu*) link_all_deplibs=no ;; esac ld_shlibs=yes # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test "$with_gnu_ld" = yes; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; *\ \(GNU\ Binutils\)\ [3-9]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test "$lt_use_gnu_ld_interface" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec= fi supports_anon_versioning=no case `$LD -v 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[3-9]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.19, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then allow_undefined_flag=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' export_dynamic_flag_spec='${wl}--export-all-symbols' allow_undefined_flag=unsupported always_export_symbols=no enable_shared_with_static_runtimes=yes export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs=no fi ;; haiku*) archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' link_all_deplibs=yes ;; interix[3-9]*) hardcode_direct=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group f77 and f90 compilers whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 whole_archive_flag_spec= tmp_sharedflag='--shared' ;; xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object=yes ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else ld_shlibs=no fi ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac ;; sunos4*) archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct=yes hardcode_shlibpath_var=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then runpath_var= hardcode_libdir_flag_spec= export_dynamic_flag_spec= whole_archive_flag_spec= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag=unsupported always_export_symbols=yes archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix[4-9]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm # Also, AIX nm treats weak defined symbols like other global # defined symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds='' hardcode_direct=yes hardcode_direct_absolute=yes hardcode_libdir_separator=':' link_all_deplibs=yes file_list_spec='${wl}-f,' if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi link_all_deplibs=no else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi export_dynamic_flag_spec='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an # empty executable. if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath_+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_="/usr/lib:/lib" fi fi aix_libpath=$lt_cv_aix_libpath_ fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag="-z nodefs" archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath_+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_="/usr/lib:/lib" fi fi aix_libpath=$lt_cv_aix_libpath_ fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag=' ${wl}-bernotok' allow_undefined_flag=' ${wl}-berok' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' fi archive_cmds_need_lc=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; bsdi[45]*) export_dynamic_flag_spec=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. case $cc_basename in cl*) # Native MSVC hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported always_export_symbols=yes file_list_spec='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; else sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, )='true' enable_shared_with_static_runtimes=yes exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' # Don't use ranlib old_postinstall_cmds='chmod 644 $oldlib' postlink_cmds='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile="$lt_outputfile.exe" lt_tool_outputfile="$lt_tool_outputfile.exe" ;; esac~ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # Assume MSVC wrapper hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_from_new_cmds='true' # FIXME: Should let the user specify the lib program. old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' enable_shared_with_static_runtimes=yes ;; esac ;; darwin* | rhapsody*) archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported if test "$lt_cv_ld_force_load" = "yes"; then whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' else whole_archive_flag_spec='' fi link_all_deplibs=yes allow_undefined_flag="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=func_echo_all archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" else ld_shlibs=no fi ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2.*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes export_dynamic_flag_spec='${wl}-E' ;; hpux10*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 $as_echo_n "checking if $CC understands -b... " >&6; } if ${lt_cv_prog_compiler__b+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler__b=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -b" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler__b=yes fi else lt_cv_prog_compiler__b=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 $as_echo "$lt_cv_prog_compiler__b" >&6; } if test x"$lt_cv_prog_compiler__b" = xyes; then archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_direct=no hardcode_shlibpath_var=no ;; *) hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. # This should be the same for all languages, so no per-tag cache variable. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 $as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } if ${lt_cv_irix_exported_symbol+:} false; then : $as_echo_n "(cached) " >&6 else save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int foo (void) { return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_irix_exported_symbol=yes else lt_cv_irix_exported_symbol=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 $as_echo "$lt_cv_irix_exported_symbol" >&6; } if test "$lt_cv_irix_exported_symbol" = yes; then archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' fi else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: inherit_rpath=yes link_all_deplibs=yes ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes hardcode_shlibpath_var=no hardcode_direct_absolute=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-R$libdir' ;; *) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi else ld_shlibs=no fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi archive_cmds_need_lc='no' hardcode_libdir_separator=: ;; solaris*) no_undefined_flag=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='${wl}' archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else whole_archive_flag_spec='-z allextract$convenience -z defaultextract' fi ;; esac link_all_deplibs=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; sysv4) case $host_vendor in sni) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds='$CC -r -o $output$reload_objs' hardcode_direct=no ;; motorola) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; sysv4.3*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no export_dynamic_flag_spec='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag='${wl}-z,text' archive_cmds_need_lc=no hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag='${wl}-z,text' allow_undefined_flag='${wl}-z,nodefs' archive_cmds_need_lc=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-R,$libdir' hardcode_libdir_separator=':' link_all_deplibs=yes export_dynamic_flag_spec='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; *) ld_shlibs=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) export_dynamic_flag_spec='${wl}-Blargedynsym' ;; esac fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 $as_echo "$ld_shlibs" >&6; } test "$ld_shlibs" = no && can_build_shared=no with_gnu_ld=$with_gnu_ld # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc" in x|xyes) # Assume -lc should be added archive_cmds_need_lc=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } if ${lt_cv_archive_cmds_need_lc+:} false; then : $as_echo_n "(cached) " >&6 else $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl pic_flag=$lt_prog_compiler_pic compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag allow_undefined_flag= if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then lt_cv_archive_cmds_need_lc=no else lt_cv_archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 $as_echo "$lt_cv_archive_cmds_need_lc" >&6; } archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc ;; esac fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac case $host_os in mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;; *) lt_sed_strip_eq="s,=/,/,g" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in *\;*) # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` ;; *) lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ;; esac # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path/$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" else test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo="/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[lt_foo]++; } if (lt_freq[lt_foo] == 1) { print lt_foo; } }'` # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's,/\([A-Za-z]:\),\1,g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[4-9]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux # correct to gnu/linux during the next big refactor need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$cc_basename in yes,*) # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' library_names_spec='${libname}.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec="$LIB" if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[23].*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LIBRARY_PATH shlibpath_overrides_runpath=yes sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' # or fails outright, so override atomically: install_override_mode=555 ;; interix[3-9]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH if ${lt_cv_shlibpath_overrides_runpath+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : lt_cv_shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir fi shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsdelf*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='NetBSD ld.elf_so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action= if test -n "$hardcode_libdir_flag_spec" || test -n "$runpath_var" || test "X$hardcode_automatic" = "Xyes" ; then # We can hardcode non-existent directories. if test "$hardcode_direct" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && test "$hardcode_minus_L" != no; then # Linking always hardcodes the temporary library directory. hardcode_action=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action=unsupported fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 $as_echo "$hardcode_action" >&6; } if test "$hardcode_action" = relink || test "$inherit_rpath" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if ${ac_cv_lib_dl_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes fi ;; *) ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" if test "x$ac_cv_func_shl_load" = xyes; then : lt_cv_dlopen="shl_load" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 $as_echo_n "checking for shl_load in -ldld... " >&6; } if ${ac_cv_lib_dld_shl_load+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shl_load (); int main () { return shl_load (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_shl_load=yes else ac_cv_lib_dld_shl_load=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 $as_echo "$ac_cv_lib_dld_shl_load" >&6; } if test "x$ac_cv_lib_dld_shl_load" = xyes; then : lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" else ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" if test "x$ac_cv_func_dlopen" = xyes; then : lt_cv_dlopen="dlopen" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if ${ac_cv_lib_dl_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 $as_echo_n "checking for dlopen in -lsvld... " >&6; } if ${ac_cv_lib_svld_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_svld_dlopen=yes else ac_cv_lib_svld_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 $as_echo "$ac_cv_lib_svld_dlopen" >&6; } if test "x$ac_cv_lib_svld_dlopen" = xyes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 $as_echo_n "checking for dld_link in -ldld... " >&6; } if ${ac_cv_lib_dld_dld_link+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dld_link (); int main () { return dld_link (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_dld_link=yes else ac_cv_lib_dld_dld_link=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 $as_echo "$ac_cv_lib_dld_dld_link" >&6; } if test "x$ac_cv_lib_dld_dld_link" = xyes; then : lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" fi fi fi fi fi fi ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 $as_echo_n "checking whether a program can dlopen itself... " >&6; } if ${lt_cv_dlopen_self+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisbility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed lt_cv_dlopen_self=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 $as_echo "$lt_cv_dlopen_self" >&6; } if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } if ${lt_cv_dlopen_self_static+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisbility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed lt_cv_dlopen_self_static=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 $as_echo "$lt_cv_dlopen_self_static" >&6; } fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi striplib= old_striplib= { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 $as_echo_n "checking whether stripping libraries is possible... " >&6; } if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } ;; esac fi # Report which library types will actually be built { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 $as_echo_n "checking if libtool supports shared libraries... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 $as_echo "$can_build_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 $as_echo_n "checking whether to build shared libraries... " >&6; } test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[4-9]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 $as_echo "$enable_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 $as_echo_n "checking whether to build static libraries... " >&6; } # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 $as_echo "$enable_static" >&6; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5 $as_echo_n "checking how to run the C++ preprocessor... " >&6; } if test -z "$CXXCPP"; then if ${ac_cv_prog_CXXCPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CXXCPP needs to be expanded for CXXCPP in "$CXX -E" "/lib/cpp" do ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CXXCPP=$CXXCPP fi CXXCPP=$ac_cv_prog_CXXCPP else ac_cv_prog_CXXCPP=$CXXCPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5 $as_echo "$CXXCPP" >&6; } ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu else _lt_caught_CXX_error=yes fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu archive_cmds_need_lc_CXX=no allow_undefined_flag_CXX= always_export_symbols_CXX=no archive_expsym_cmds_CXX= compiler_needs_object_CXX=no export_dynamic_flag_spec_CXX= hardcode_direct_CXX=no hardcode_direct_absolute_CXX=no hardcode_libdir_flag_spec_CXX= hardcode_libdir_separator_CXX= hardcode_minus_L_CXX=no hardcode_shlibpath_var_CXX=unsupported hardcode_automatic_CXX=no inherit_rpath_CXX=no module_cmds_CXX= module_expsym_cmds_CXX= link_all_deplibs_CXX=unknown old_archive_cmds_CXX=$old_archive_cmds reload_flag_CXX=$reload_flag reload_cmds_CXX=$reload_cmds no_undefined_flag_CXX= whole_archive_flag_spec_CXX= enable_shared_with_static_runtimes_CXX=no # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o objext_CXX=$objext # No sense in running all these tests if we already determined that # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_caught_CXX_error" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} CFLAGS=$CXXFLAGS compiler=$CC compiler_CXX=$CC for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' else lt_prog_compiler_no_builtin_flag_CXX= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if ${lt_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if ${lt_cv_prog_gnu_ld+:} false; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 $as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | $GREP 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_CXX= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } ld_shlibs_CXX=yes case $host_os in aix3*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aix[4-9]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_CXX='' hardcode_direct_CXX=yes hardcode_direct_absolute_CXX=yes hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes file_list_spec_CXX='${wl}-f,' if test "$GXX" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct_CXX=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_CXX=yes hardcode_libdir_flag_spec_CXX='-L$libdir' hardcode_libdir_separator_CXX= fi esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi export_dynamic_flag_spec_CXX='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. always_export_symbols_CXX=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_CXX='-berok' # Determine the default libpath from the value encoded in an empty # executable. if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath__CXX+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath__CXX"; then lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath__CXX"; then lt_cv_aix_libpath__CXX="/usr/lib:/lib" fi fi aix_libpath=$lt_cv_aix_libpath__CXX fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_CXX="-z nodefs" archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath__CXX+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath__CXX"; then lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath__CXX"; then lt_cv_aix_libpath__CXX="/usr/lib:/lib" fi fi aix_libpath=$lt_cv_aix_libpath__CXX fi hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_CXX=' ${wl}-bernotok' allow_undefined_flag_CXX=' ${wl}-berok' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_CXX='$convenience' fi archive_cmds_need_lc_CXX=yes # This is similar to how AIX traditionally builds its shared # libraries. archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_CXX=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_CXX=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; cygwin* | mingw* | pw32* | cegcc*) case $GXX,$cc_basename in ,cl* | no,cl*) # Native MSVC # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec_CXX=' ' allow_undefined_flag_CXX=unsupported always_export_symbols_CXX=yes file_list_spec_CXX='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; else $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, CXX)='true' enable_shared_with_static_runtimes_CXX=yes # Don't use ranlib old_postinstall_cmds_CXX='chmod 644 $oldlib' postlink_cmds_CXX='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile="$lt_outputfile.exe" lt_tool_outputfile="$lt_tool_outputfile.exe" ;; esac~ func_to_tool_file "$lt_outputfile"~ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # g++ # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_CXX='-L$libdir' export_dynamic_flag_spec_CXX='${wl}--export-all-symbols' allow_undefined_flag_CXX=unsupported always_export_symbols_CXX=no enable_shared_with_static_runtimes_CXX=yes if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_CXX=no fi ;; esac ;; darwin* | rhapsody*) archive_cmds_need_lc_CXX=no hardcode_direct_CXX=no hardcode_automatic_CXX=yes hardcode_shlibpath_var_CXX=unsupported if test "$lt_cv_ld_force_load" = "yes"; then whole_archive_flag_spec_CXX='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' else whole_archive_flag_spec_CXX='' fi link_all_deplibs_CXX=yes allow_undefined_flag_CXX="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=func_echo_all archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" if test "$lt_cv_apple_cc_single_mod" != "yes"; then archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" fi else ld_shlibs_CXX=no fi ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; freebsd2.*) # C++ shared libraries reported to be fairly broken before # switch to ELF ld_shlibs_CXX=no ;; freebsd-elf*) archive_cmds_need_lc_CXX=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions ld_shlibs_CXX=yes ;; haiku*) archive_cmds_CXX='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' link_all_deplibs_CXX=yes ;; hpux9*) hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: export_dynamic_flag_spec_CXX='${wl}-E' hardcode_direct_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) archive_cmds_CXX='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: case $host_cpu in hppa*64*|ia64*) ;; *) export_dynamic_flag_spec_CXX='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no ;; *) hardcode_direct_CXX=yes hardcode_direct_absolute_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; interix[3-9]*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' fi fi link_all_deplibs_CXX=yes ;; esac hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: inherit_rpath_CXX=yes ;; linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc* | ecpc* ) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac archive_cmds_need_lc_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [1-5].* | *pgcpp\ [1-5].*) prelink_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' old_archive_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ $RANLIB $oldlib' archive_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' archive_expsym_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; *) # Version 6 and above use weak symbols archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; esac hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_CXX='-rpath $libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' ;; xl* | mpixl* | bgxl*) # IBM XL 8.0 on PPC, with GNU ld hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec_CXX='${wl}--export-dynamic' archive_cmds_CXX='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds_CXX='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 no_undefined_flag_CXX=' -zdefs' archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' hardcode_libdir_flag_spec_CXX='-R$libdir' whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object_CXX=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; m88k*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; *nto* | *qnx*) ld_shlibs_CXX=yes ;; openbsd2*) # C++ shared libraries are fairly broken ld_shlibs_CXX=no ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no hardcode_direct_absolute_CXX=yes archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' export_dynamic_flag_spec_CXX='${wl}-E' whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd=func_echo_all else ld_shlibs_CXX=no fi ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' hardcode_libdir_separator_CXX=: # Archives containing C++ object files must be created using # the KAI C++ compiler. case $host in osf3*) old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; *) old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;; esac ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; cxx*) case $host in osf3*) allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' ;; *) allow_undefined_flag_CXX=' -expect_unresolved \*' archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' hardcode_libdir_flag_spec_CXX='-rpath $libdir' ;; esac hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' case $host in osf3*) archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) archive_cmds_CXX='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ archive_cmds_need_lc_CXX=yes no_undefined_flag_CXX=' -zdefs' archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_shlibpath_var_CXX=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract' ;; esac link_all_deplibs_CXX=yes output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then no_undefined_flag_CXX=' ${wl}-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' fi hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag_CXX='${wl}-z,text' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag_CXX='${wl}-z,text' allow_undefined_flag_CXX='${wl}-z,nodefs' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='${wl}-R,$libdir' hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes export_dynamic_flag_spec_CXX='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' old_archive_cmds_CXX='$CC -Tprelink_objects $oldobjs~ '"$old_archive_cmds_CXX" reload_cmds_CXX='$CC -Tprelink_objects $reload_objs~ '"$reload_cmds_CXX" ;; *) archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 $as_echo "$ld_shlibs_CXX" >&6; } test "$ld_shlibs_CXX" = no && can_build_shared=no GCC_CXX="$GXX" LD_CXX="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... # Dependencies to place before and after the object being linked: predep_objects_CXX= postdep_objects_CXX= predeps_CXX= postdeps_CXX= compiler_lib_search_path_CXX= cat > conftest.$ac_ext <<_LT_EOF class Foo { public: Foo (void) { a = 0; } private: int a; }; _LT_EOF _lt_libdeps_save_CFLAGS=$CFLAGS case "$CC $CFLAGS " in #( *\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; *\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; *\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; esac if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do case ${prev}${p} in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" || test $p = "-R"; then prev=$p continue fi # Expand the sysroot to ease extracting the directories later. if test -z "$prev"; then case $p in -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; esac fi case $p in =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; esac if test "$pre_test_object_deps_done" = no; then case ${prev} in -L | -R) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$compiler_lib_search_path_CXX"; then compiler_lib_search_path_CXX="${prev}${p}" else compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$postdeps_CXX"; then postdeps_CXX="${prev}${p}" else postdeps_CXX="${postdeps_CXX} ${prev}${p}" fi fi prev= ;; *.lto.$objext) ;; # Ignore GCC LTO objects *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$predep_objects_CXX"; then predep_objects_CXX="$p" else predep_objects_CXX="$predep_objects_CXX $p" fi else if test -z "$postdep_objects_CXX"; then postdep_objects_CXX="$p" else postdep_objects_CXX="$postdep_objects_CXX $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling CXX test program" fi $RM -f confest.$objext CFLAGS=$_lt_libdeps_save_CFLAGS # PORTME: override above test on systems where it is broken case $host_os in interix[3-9]*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. predep_objects_CXX= postdep_objects_CXX= postdeps_CXX= ;; linux*) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac if test "$solaris_use_stlport4" != yes; then postdeps_CXX='-library=Cstd -library=Crun' fi ;; esac ;; solaris*) case $cc_basename in CC* | sunCC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. if test "$solaris_use_stlport4" != yes; then postdeps_CXX='-library=Cstd -library=Crun' fi ;; esac ;; esac case " $postdeps_CXX " in *" -lc "*) archive_cmds_need_lc_CXX=no ;; esac compiler_lib_search_dirs_CXX= if test -n "${compiler_lib_search_path_CXX}"; then compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` fi lt_prog_compiler_wl_CXX= lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX= # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic_CXX='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic_CXX='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_CXX='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all lt_prog_compiler_pic_CXX= ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. lt_prog_compiler_static_CXX= ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_CXX=-Kconform_pic fi ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic_CXX='-fPIC -shared' ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac else case $host_os in aix[4-9]*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' else lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_CXX='-DDLL_EXPORT' ;; dgux*) case $cc_basename in ec++*) lt_prog_compiler_pic_CXX='-KPIC' ;; ghcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then lt_prog_compiler_pic_CXX='+Z' fi ;; aCC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_CXX='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in KCC*) # KAI C++ Compiler lt_prog_compiler_wl_CXX='--backend -Wl,' lt_prog_compiler_pic_CXX='-fPIC' ;; ecpc* ) # old Intel C++ for x86_64 which still supported -KPIC. lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-static' ;; icpc* ) # Intel C++, used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-fPIC' lt_prog_compiler_static_CXX='-static' ;; pgCC* | pgcpp*) # Portland Group C++ compiler lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-fpic' lt_prog_compiler_static_CXX='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; xlc* | xlC* | bgxl[cC]* | mpixl[cC]*) # IBM XL 8.0, 9.0 on PPC and BlueGene lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-qpic' lt_prog_compiler_static_CXX='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' lt_prog_compiler_wl_CXX='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) lt_prog_compiler_pic_CXX='-W c,exportall' ;; *) ;; esac ;; netbsd* | netbsdelf*-gnu) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic_CXX='-fPIC -shared' ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) lt_prog_compiler_wl_CXX='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 lt_prog_compiler_pic_CXX='-pic' ;; cxx*) # Digital/Compaq C++ lt_prog_compiler_wl_CXX='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' lt_prog_compiler_wl_CXX='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x lt_prog_compiler_pic_CXX='-pic' lt_prog_compiler_static_CXX='-Bstatic' ;; lcc*) # Lucid lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 lt_prog_compiler_pic_CXX='-KPIC' ;; *) ;; esac ;; vxworks*) ;; *) lt_prog_compiler_can_build_shared_CXX=no ;; esac fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_CXX= ;; *) lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } if ${lt_cv_prog_compiler_pic_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_CXX=$lt_prog_compiler_pic_CXX fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_CXX" >&5 $as_echo "$lt_cv_prog_compiler_pic_CXX" >&6; } lt_prog_compiler_pic_CXX=$lt_cv_prog_compiler_pic_CXX # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; } if ${lt_cv_prog_compiler_pic_works_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works_CXX=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works_CXX=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_CXX" >&5 $as_echo "$lt_cv_prog_compiler_pic_works_CXX" >&6; } if test x"$lt_cv_prog_compiler_pic_works_CXX" = xyes; then case $lt_prog_compiler_pic_CXX in "" | " "*) ;; *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; esac else lt_prog_compiler_pic_CXX= lt_prog_compiler_can_build_shared_CXX=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if ${lt_cv_prog_compiler_static_works_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works_CXX=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works_CXX=yes fi else lt_cv_prog_compiler_static_works_CXX=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_CXX" >&5 $as_echo "$lt_cv_prog_compiler_static_works_CXX" >&6; } if test x"$lt_cv_prog_compiler_static_works_CXX" = xyes; then : else lt_prog_compiler_static_CXX= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_CXX=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_CXX=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5 $as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_CXX=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_CXX=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5 $as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test "$hard_links" = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 $as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' case $host_os in aix[4-9]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm # Also, AIX nm treats weak defined symbols like other global defined # symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) export_symbols_cmds_CXX="$ltdll_cmds" ;; cygwin* | mingw* | cegcc*) case $cc_basename in cl*) exclude_expsyms_CXX='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' ;; *) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' exclude_expsyms_CXX='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' ;; esac ;; linux* | k*bsd*-gnu | gnu*) link_all_deplibs_CXX=no ;; *) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 $as_echo "$ld_shlibs_CXX" >&6; } test "$ld_shlibs_CXX" = no && can_build_shared=no with_gnu_ld_CXX=$with_gnu_ld # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_CXX" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_CXX=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_CXX in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } if ${lt_cv_archive_cmds_need_lc_CXX+:} false; then : $as_echo_n "(cached) " >&6 else $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_CXX pic_flag=$lt_prog_compiler_pic_CXX compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_CXX allow_undefined_flag_CXX= if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then lt_cv_archive_cmds_need_lc_CXX=no else lt_cv_archive_cmds_need_lc_CXX=yes fi allow_undefined_flag_CXX=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc_CXX" >&5 $as_echo "$lt_cv_archive_cmds_need_lc_CXX" >&6; } archive_cmds_need_lc_CXX=$lt_cv_archive_cmds_need_lc_CXX ;; esac fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[4-9]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux # correct to gnu/linux during the next big refactor need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$cc_basename in yes,*) # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' library_names_spec='${libname}.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec="$LIB" if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[23].*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LIBRARY_PATH shlibpath_overrides_runpath=yes sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' # or fails outright, so override atomically: install_override_mode=555 ;; interix[3-9]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH if ${lt_cv_shlibpath_overrides_runpath+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\"" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : lt_cv_shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir fi shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsdelf*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='NetBSD ld.elf_so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action_CXX= if test -n "$hardcode_libdir_flag_spec_CXX" || test -n "$runpath_var_CXX" || test "X$hardcode_automatic_CXX" = "Xyes" ; then # We can hardcode non-existent directories. if test "$hardcode_direct_CXX" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, CXX)" != no && test "$hardcode_minus_L_CXX" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_CXX=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_CXX=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_CXX=unsupported fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_CXX" >&5 $as_echo "$hardcode_action_CXX" >&6; } if test "$hardcode_action_CXX" = relink || test "$inherit_rpath_CXX" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi fi # test -n "$compiler" CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld fi # test "$_lt_caught_CXX_error" != yes ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_config_commands="$ac_config_commands libtool" # Only expand once: # save LIBS, libtool does a AC_SEARCH_LIBS(dlopen, dl), but plugins # need not have -ldl added LIBSOLD=$LIBS ac_fn_c_check_decl "$LINENO" "_stati64" "ac_cv_have_decl__stati64" "$ac_includes_default" if test "x$ac_cv_have_decl__stati64" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL__STATI64 $ac_have_decl _ACEOF case "$target_os" in *linux-gnu) $as_echo "#define GNU_LINUX 1" >>confdefs.h cat >>confdefs.h <<_ACEOF #define GNU_LINUX 1 _ACEOF if true; then HAVE_GNU_LD_TRUE= HAVE_GNU_LD_FALSE='#' else HAVE_GNU_LD_TRUE='#' HAVE_GNU_LD_FALSE= fi if false; then SOMEBSD_TRUE= SOMEBSD_FALSE='#' else SOMEBSD_TRUE='#' SOMEBSD_FALSE= fi if false; then WINDOWS_TRUE= WINDOWS_FALSE='#' else WINDOWS_TRUE='#' WINDOWS_FALSE= fi XTRA_CPPLIBS=-lstdc++ LIBEXT=.so ;; freebsd*) cat >>confdefs.h <<_ACEOF #define SOMEBSD 1 _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_create in -lc_r" >&5 $as_echo_n "checking for pthread_create in -lc_r... " >&6; } if ${ac_cv_lib_c_r_pthread_create+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lc_r $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char pthread_create (); int main () { return pthread_create (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_c_r_pthread_create=yes else ac_cv_lib_c_r_pthread_create=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_r_pthread_create" >&5 $as_echo "$ac_cv_lib_c_r_pthread_create" >&6; } if test "x$ac_cv_lib_c_r_pthread_create" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBC_R 1 _ACEOF LIBS="-lc_r $LIBS" fi if true; then HAVE_GNU_LD_TRUE= HAVE_GNU_LD_FALSE='#' else HAVE_GNU_LD_TRUE='#' HAVE_GNU_LD_FALSE= fi if true; then SOMEBSD_TRUE= SOMEBSD_FALSE='#' else SOMEBSD_TRUE='#' SOMEBSD_FALSE= fi if false; then WINDOWS_TRUE= WINDOWS_FALSE='#' else WINDOWS_TRUE='#' WINDOWS_FALSE= fi XTRA_CPPLIBS=-lstdc++ LIBEXT=.so ;; openbsd*) cat >>confdefs.h <<_ACEOF #define SOMEBSD 1 _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_create in -lc_r" >&5 $as_echo_n "checking for pthread_create in -lc_r... " >&6; } if ${ac_cv_lib_c_r_pthread_create+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lc_r $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char pthread_create (); int main () { return pthread_create (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_c_r_pthread_create=yes else ac_cv_lib_c_r_pthread_create=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_r_pthread_create" >&5 $as_echo "$ac_cv_lib_c_r_pthread_create" >&6; } if test "x$ac_cv_lib_c_r_pthread_create" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBC_R 1 _ACEOF LIBS="-lc_r $LIBS" fi if true; then HAVE_GNU_LD_TRUE= HAVE_GNU_LD_FALSE='#' else HAVE_GNU_LD_TRUE='#' HAVE_GNU_LD_FALSE= fi if true; then SOMEBSD_TRUE= SOMEBSD_FALSE='#' else SOMEBSD_TRUE='#' SOMEBSD_FALSE= fi if false; then WINDOWS_TRUE= WINDOWS_FALSE='#' else WINDOWS_TRUE='#' WINDOWS_FALSE= fi XTRA_CPPLIBS=-lstdc++ LIBEXT=.so ;; netbsd*) cat >>confdefs.h <<_ACEOF #define SOMEBSD 1 _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_create in -lc_r" >&5 $as_echo_n "checking for pthread_create in -lc_r... " >&6; } if ${ac_cv_lib_c_r_pthread_create+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lc_r $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char pthread_create (); int main () { return pthread_create (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_c_r_pthread_create=yes else ac_cv_lib_c_r_pthread_create=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_r_pthread_create" >&5 $as_echo "$ac_cv_lib_c_r_pthread_create" >&6; } if test "x$ac_cv_lib_c_r_pthread_create" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBC_R 1 _ACEOF LIBS="-lc_r $LIBS" fi if true; then HAVE_GNU_LD_TRUE= HAVE_GNU_LD_FALSE='#' else HAVE_GNU_LD_TRUE='#' HAVE_GNU_LD_FALSE= fi if true; then SOMEBSD_TRUE= SOMEBSD_FALSE='#' else SOMEBSD_TRUE='#' SOMEBSD_FALSE= fi if false; then WINDOWS_TRUE= WINDOWS_FALSE='#' else WINDOWS_TRUE='#' WINDOWS_FALSE= fi XTRA_CPPLIBS=-lstdc++ LIBEXT=.so ;; *solaris*) cat >>confdefs.h <<_ACEOF #define SOLARIS 1 _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking for res_init in -lresolv" >&5 $as_echo_n "checking for res_init in -lresolv... " >&6; } if ${ac_cv_lib_resolv_res_init+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lresolv $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char res_init (); int main () { return res_init (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_resolv_res_init=yes else ac_cv_lib_resolv_res_init=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolv_res_init" >&5 $as_echo "$ac_cv_lib_resolv_res_init" >&6; } if test "x$ac_cv_lib_resolv_res_init" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBRESOLV 1 _ACEOF LIBS="-lresolv $LIBS" fi XTRA_CPPLIBS=-lstdc++ if false; then HAVE_GNU_LD_TRUE= HAVE_GNU_LD_FALSE='#' else HAVE_GNU_LD_TRUE='#' HAVE_GNU_LD_FALSE= fi if false; then SOMEBSD_TRUE= SOMEBSD_FALSE='#' else SOMEBSD_TRUE='#' SOMEBSD_FALSE= fi if false; then WINDOWS_TRUE= WINDOWS_FALSE='#' else WINDOWS_TRUE='#' WINDOWS_FALSE= fi CFLAGS="-D_POSIX_PTHREAD_SEMANTICS $CFLAGS" LIBEXT=.so ;; darwin*) cat >>confdefs.h <<_ACEOF #define DARWIN 1 _ACEOF if false; then HAVE_GNU_LD_TRUE= HAVE_GNU_LD_FALSE='#' else HAVE_GNU_LD_TRUE='#' HAVE_GNU_LD_FALSE= fi if false; then SOMEBSD_TRUE= SOMEBSD_FALSE='#' else SOMEBSD_TRUE='#' SOMEBSD_FALSE= fi if false; then WINDOWS_TRUE= WINDOWS_FALSE='#' else WINDOWS_TRUE='#' WINDOWS_FALSE= fi CFLAGS="-fno-common $CFLAGS" LIBEXT=.so ;; cygwin*) cat >>confdefs.h <<_ACEOF #define CYGWIN 1 _ACEOF LDFLAGS="$LDFLAGS -no-undefined" if false; then SOMEBSD_TRUE= SOMEBSD_FALSE='#' else SOMEBSD_TRUE='#' SOMEBSD_FALSE= fi if false; then HAVE_GNU_LD_TRUE= HAVE_GNU_LD_FALSE='#' else HAVE_GNU_LD_TRUE='#' HAVE_GNU_LD_FALSE= fi if false; then WINDOWS_TRUE= WINDOWS_FALSE='#' else WINDOWS_TRUE='#' WINDOWS_FALSE= fi LIBEXT=.dll ;; mingw*) cat >>confdefs.h <<_ACEOF #define MINGW 1 _ACEOF cat >>confdefs.h <<_ACEOF #define WINDOWS 1 _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gettext in -lintl" >&5 $as_echo_n "checking for gettext in -lintl... " >&6; } if ${ac_cv_lib_intl_gettext+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char gettext (); int main () { return gettext (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_gettext=yes else ac_cv_lib_intl_gettext=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_gettext" >&5 $as_echo "$ac_cv_lib_intl_gettext" >&6; } if test "x$ac_cv_lib_intl_gettext" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBINTL 1 _ACEOF LIBS="-lintl $LIBS" fi # Sufficiently new Windows XP CFLAGS="-D__MSVCRT_VERSION__=0x0601 $CFLAGS" CPPFLAGS="-DFTRUNCATE_DEFINED=1 $CPPFLAGS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for PlibC" >&5 $as_echo_n "checking for PlibC... " >&6; } plibc=0 # Check whether --with-plibc was given. if test "${with_plibc+set}" = set; then : withval=$with_plibc; { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_plibc" >&5 $as_echo "$with_plibc" >&6; } case $with_plibc in no) ;; yes) for ac_header in plibc.h do : ac_fn_c_check_header_mongrel "$LINENO" "plibc.h" "ac_cv_header_plibc_h" "$ac_includes_default" if test "x$ac_cv_header_plibc_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_PLIBC_H 1 _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking for plibc_init in -lplibc" >&5 $as_echo_n "checking for plibc_init in -lplibc... " >&6; } if ${ac_cv_lib_plibc_plibc_init+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lplibc $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char plibc_init (); int main () { return plibc_init (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_plibc_plibc_init=yes else ac_cv_lib_plibc_plibc_init=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_plibc_plibc_init" >&5 $as_echo "$ac_cv_lib_plibc_plibc_init" >&6; } if test "x$ac_cv_lib_plibc_plibc_init" = xyes; then : plibc=1 fi fi done ;; *) LDFLAGS="-L$with_plibc/lib $LDFLAGS" CPPFLAGS="-I$with_plibc/include $CPPFLAGS" for ac_header in plibc.h do : ac_fn_c_check_header_mongrel "$LINENO" "plibc.h" "ac_cv_header_plibc_h" "$ac_includes_default" if test "x$ac_cv_header_plibc_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_PLIBC_H 1 _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking for plibc_init in -lplibc" >&5 $as_echo_n "checking for plibc_init in -lplibc... " >&6; } if ${ac_cv_lib_plibc_plibc_init+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lplibc $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char plibc_init (); int main () { return plibc_init (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_plibc_plibc_init=yes else ac_cv_lib_plibc_plibc_init=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_plibc_plibc_init" >&5 $as_echo "$ac_cv_lib_plibc_plibc_init" >&6; } if test "x$ac_cv_lib_plibc_plibc_init" = xyes; then : EXT_LIB_PATH="-L$with_plibc/lib $EXT_LIB_PATH" plibc=1 fi fi done ;; esac else { $as_echo "$as_me:${as_lineno-$LINENO}: result: --with-plibc not specified" >&5 $as_echo "--with-plibc not specified" >&6; } LDFLAGS="-L/usr/lib $LDFLAGS" CPPFLAGS="-I/usr/include $CPPFLAGS" for ac_header in plibc.h do : ac_fn_c_check_header_mongrel "$LINENO" "plibc.h" "ac_cv_header_plibc_h" "$ac_includes_default" if test "x$ac_cv_header_plibc_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_PLIBC_H 1 _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking for plibc_init in -lplibc" >&5 $as_echo_n "checking for plibc_init in -lplibc... " >&6; } if ${ac_cv_lib_plibc_plibc_init+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lplibc $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char plibc_init (); int main () { return plibc_init (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_plibc_plibc_init=yes else ac_cv_lib_plibc_plibc_init=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_plibc_plibc_init" >&5 $as_echo "$ac_cv_lib_plibc_plibc_init" >&6; } if test "x$ac_cv_lib_plibc_plibc_init" = xyes; then : EXT_LIB_PATH="-L$with_plibc/lib $EXT_LIB_PATH" plibc=1 fi fi done fi if test $plibc -ne 1; then as_fn_error $? "libextractor requires PlibC" "$LINENO" 5 else LIBS="$LIBS -lplibc" fi LDFLAGS="$LDFLAGS -Wl,-no-undefined -Wl,--export-all-symbols" LIBSOLD=$LIBS if true; then HAVE_GNU_LD_TRUE= HAVE_GNU_LD_FALSE='#' else HAVE_GNU_LD_TRUE='#' HAVE_GNU_LD_FALSE= fi if false; then SOMEBSD_TRUE= SOMEBSD_FALSE='#' else SOMEBSD_TRUE='#' SOMEBSD_FALSE= fi if true; then WINDOWS_TRUE= WINDOWS_FALSE='#' else WINDOWS_TRUE='#' WINDOWS_FALSE= fi LIBEXT=.dll ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: Unrecognised OS $host_os" >&5 $as_echo "Unrecognised OS $host_os" >&6; } cat >>confdefs.h <<_ACEOF #define OTHEROS 1 _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: result: otheros" >&5 $as_echo "otheros" >&6; } $as_echo "#define GNU_LINUX 1" >>confdefs.h cat >>confdefs.h <<_ACEOF #define GNU_LINUX 1 _ACEOF if false; then HAVE_GNU_LD_TRUE= HAVE_GNU_LD_FALSE='#' else HAVE_GNU_LD_TRUE='#' HAVE_GNU_LD_FALSE= fi if false; then SOMEBSD_TRUE= SOMEBSD_FALSE='#' else SOMEBSD_TRUE='#' SOMEBSD_FALSE= fi if false; then WINDOWS_TRUE= WINDOWS_FALSE='#' else WINDOWS_TRUE='#' WINDOWS_FALSE= fi LIBEXT=.so ;; esac if test "X$prefix" = "XNONE"; then acl_final_prefix="$ac_default_prefix" else acl_final_prefix="$prefix" fi if test "X$exec_prefix" = "XNONE"; then acl_final_exec_prefix='${prefix}' else acl_final_exec_prefix="$exec_prefix" fi acl_save_prefix="$prefix" prefix="$acl_final_prefix" eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" prefix="$acl_save_prefix" # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by GCC" >&5 $as_echo_n "checking for ld used by GCC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | [A-Za-z]:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the path of ld ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if ${acl_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then acl_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some GNU ld's only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in *GNU* | *'with BFD'*) test "$with_gnu_ld" != no && break ;; *) test "$with_gnu_ld" != yes && break ;; esac fi done IFS="$ac_save_ifs" else acl_cv_path_LD="$LD" # Let the user override the test with a path. fi fi LD="$acl_cv_path_LD" if test -n "$LD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if ${acl_cv_prog_gnu_ld+:} false; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU ld's only accept -v. case `$LD -v 2>&1 &5 $as_echo "$acl_cv_prog_gnu_ld" >&6; } with_gnu_ld=$acl_cv_prog_gnu_ld { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5 $as_echo_n "checking for shared library run path origin... " >&6; } if ${acl_cv_rpath+:} false; then : $as_echo_n "(cached) " >&6 else CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh . ./conftest.sh rm -f ./conftest.sh acl_cv_rpath=done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_rpath" >&5 $as_echo "$acl_cv_rpath" >&6; } wl="$acl_cv_wl" libext="$acl_cv_libext" shlibext="$acl_cv_shlibext" hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" hardcode_direct="$acl_cv_hardcode_direct" hardcode_minus_L="$acl_cv_hardcode_minus_L" # Check whether --enable-rpath was given. if test "${enable_rpath+set}" = set; then : enableval=$enable_rpath; : else enable_rpath=yes fi acl_libdirstem=lib searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` if test -n "$searchpath"; then acl_save_IFS="${IFS= }"; IFS=":" for searchdir in $searchpath; do if test -d "$searchdir"; then case "$searchdir" in */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; *) searchdir=`cd "$searchdir" && pwd` case "$searchdir" in */lib64 ) acl_libdirstem=lib64 ;; esac ;; esac fi done IFS="$acl_save_IFS" fi use_additional=yes acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" # Check whether --with-libiconv-prefix was given. if test "${with_libiconv_prefix+set}" = set; then : withval=$with_libiconv_prefix; if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" fi fi fi LIBICONV= LTLIBICONV= INCICONV= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='iconv ' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIBICONV="${LIBICONV}${LIBICONV:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$value" else : fi else found_dir= found_la= found_so= found_a= if test $use_additional = yes; then if test -n "$shlibext" \ && { test -f "$additional_libdir/lib$name.$shlibext" \ || { test "$shlibext" = dll \ && test -f "$additional_libdir/lib$name.dll.a"; }; }; then found_dir="$additional_libdir" if test -f "$additional_libdir/lib$name.$shlibext"; then found_so="$additional_libdir/lib$name.$shlibext" else found_so="$additional_libdir/lib$name.dll.a" fi if test -f "$additional_libdir/lib$name.la"; then found_la="$additional_libdir/lib$name.la" fi else if test -f "$additional_libdir/lib$name.$libext"; then found_dir="$additional_libdir" found_a="$additional_libdir/lib$name.$libext" if test -f "$additional_libdir/lib$name.la"; then found_la="$additional_libdir/lib$name.la" fi fi fi fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` if test -n "$shlibext" \ && { test -f "$dir/lib$name.$shlibext" \ || { test "$shlibext" = dll \ && test -f "$dir/lib$name.dll.a"; }; }; then found_dir="$dir" if test -f "$dir/lib$name.$shlibext"; then found_so="$dir/lib$name.$shlibext" else found_so="$dir/lib$name.dll.a" fi if test -f "$dir/lib$name.la"; then found_la="$dir/lib$name.la" fi else if test -f "$dir/lib$name.$libext"; then found_dir="$dir" found_a="$dir/lib$name.$libext" if test -f "$dir/lib$name.la"; then found_la="$dir/lib$name.la" fi fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/$acl_libdirstem"; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" else haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi if test "$hardcode_direct" = yes; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" else if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else haveit= for x in $LDFLAGS $LIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir" fi if test "$hardcode_minus_L" != no; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" else LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_a" else LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir -l$name" fi fi additional_includedir= case "$found_dir" in */$acl_libdirstem | */$acl_libdirstem/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INCICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then INCICONV="${INCICONV}${INCICONV:+ }-I$additional_includedir" fi fi fi fi fi if test -n "$found_la"; then save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" for dep in $dependency_libs; do case "$dep" in -L*) additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then haveit= if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LIBICONV="${LIBICONV}${LIBICONV:+ }-L$additional_libdir" fi fi haveit= for x in $LDFLAGS $LTLIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$additional_libdir" fi fi fi fi ;; -R*) dir=`echo "X$dep" | sed -e 's/^X-R//'` if test "$enable_rpath" != no; then haveit= for x in $rpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $dir" fi haveit= for x in $ltrpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $dir" fi fi ;; -l*) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ;; *.la) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ;; *) LIBICONV="${LIBICONV}${LIBICONV:+ }$dep" LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$dep" ;; esac done fi else LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$hardcode_libdir_separator"; then alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir" done acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" else for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then for found_dir in $ltrpathdirs; do LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-R$found_dir" done fi am_save_CPPFLAGS="$CPPFLAGS" for element in $INCICONV; do haveit= for x in $CPPFLAGS; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5 $as_echo_n "checking for iconv... " >&6; } if ${am_cv_func_iconv+:} false; then : $as_echo_n "(cached) " >&6 else am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_func_iconv=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test "$am_cv_func_iconv" != yes; then am_save_LIBS="$LIBS" LIBS="$LIBS $LIBICONV" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_lib_iconv=yes am_cv_func_iconv=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$am_save_LIBS" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5 $as_echo "$am_cv_func_iconv" >&6; } if test "$am_cv_func_iconv" = yes; then $as_echo "#define HAVE_ICONV 1" >>confdefs.h fi if test "$am_cv_lib_iconv" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5 $as_echo_n "checking how to link with libiconv... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5 $as_echo "$LIBICONV" >&6; } else CPPFLAGS="$am_save_CPPFLAGS" LIBICONV= LTLIBICONV= fi if test "$am_cv_func_iconv" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv declaration" >&5 $as_echo_n "checking for iconv declaration... " >&6; } if ${am_cv_proto_iconv+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include extern #ifdef __cplusplus "C" #endif #if defined(__STDC__) || defined(__cplusplus) size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); #else size_t iconv(); #endif int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : am_cv_proto_iconv_arg1="" else am_cv_proto_iconv_arg1="const" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);" fi am_cv_proto_iconv=`echo "$am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${ac_t:- }$am_cv_proto_iconv" >&5 $as_echo "${ac_t:- }$am_cv_proto_iconv" >&6; } cat >>confdefs.h <<_ACEOF #define ICONV_CONST $am_cv_proto_iconv_arg1 _ACEOF fi # We define the paths here, because MinGW/GCC expands paths # passed through the command line ("-DLOCALEDIR=..."). This would # lead to hard-coded paths ("C:\mingw\mingw\bin...") that do # not contain the actual installation. prefix_NONE= exec_prefix_NONE= test "x$prefix" = xNONE && prefix_NONE=yes && prefix=$ac_default_prefix test "x$exec_prefix" = xNONE && exec_prefix_NONE=yes && exec_prefix=$prefix eval ac_define_dir="\"$datarootdir/locale\"" LOCALEDIR="$ac_define_dir" cat >>confdefs.h <<_ACEOF #define LOCALEDIR "$ac_define_dir" _ACEOF test "$prefix_NONE" && prefix=NONE test "$exec_prefix_NONE" && exec_prefix=NONE ISOPFX=`pkg-config --variable=prefix iso-codes` pkg-config --variable=prefix iso-codes 2> /dev/null || ISOPFX=/usr prefix_NONE= exec_prefix_NONE= test "x$prefix" = xNONE && prefix_NONE=yes && prefix=$ac_default_prefix test "x$exec_prefix" = xNONE && exec_prefix_NONE=yes && exec_prefix=$prefix eval ac_define_dir="\"$ISOPFX/share/locale\"" ISOLOCALEDIR="$ac_define_dir" cat >>confdefs.h <<_ACEOF #define ISOLOCALEDIR "$ac_define_dir" _ACEOF test "$prefix_NONE" && prefix=NONE test "$exec_prefix_NONE" && exec_prefix=NONE # relative plugin directory rplugindir="libextractor" # Check whether --with-plugindirname was given. if test "${with_plugindirname+set}" = set; then : withval=$with_plugindirname; rplugindir=$withval fi RPLUGINDIR=$rplugindir # large file support # Check whether --enable-largefile was given. if test "${enable_largefile+set}" = set; then : enableval=$enable_largefile; fi if test "$enable_largefile" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5 $as_echo_n "checking for special C compiler options needed for large files... " >&6; } if ${ac_cv_sys_largefile_CC+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_sys_largefile_CC=no if test "$GCC" != yes; then ac_save_CC=$CC while :; do # IRIX 6.2 and later do not support large files by default, # so use the C compiler's -n32 option if that helps. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : break fi rm -f core conftest.err conftest.$ac_objext CC="$CC -n32" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_largefile_CC=' -n32'; break fi rm -f core conftest.err conftest.$ac_objext break done CC=$ac_save_CC rm -f conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5 $as_echo "$ac_cv_sys_largefile_CC" >&6; } if test "$ac_cv_sys_largefile_CC" != no; then CC=$CC$ac_cv_sys_largefile_CC fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5 $as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; } if ${ac_cv_sys_file_offset_bits+:} false; then : $as_echo_n "(cached) " >&6 else while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_file_offset_bits=no; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _FILE_OFFSET_BITS 64 #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_file_offset_bits=64; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_sys_file_offset_bits=unknown break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5 $as_echo "$ac_cv_sys_file_offset_bits" >&6; } case $ac_cv_sys_file_offset_bits in #( no | unknown) ;; *) cat >>confdefs.h <<_ACEOF #define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits _ACEOF ;; esac rm -rf conftest* if test $ac_cv_sys_file_offset_bits = unknown; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5 $as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; } if ${ac_cv_sys_large_files+:} false; then : $as_echo_n "(cached) " >&6 else while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_large_files=no; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _LARGE_FILES 1 #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_large_files=1; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_sys_large_files=unknown break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5 $as_echo "$ac_cv_sys_large_files" >&6; } case $ac_cv_sys_large_files in #( no | unknown) ;; *) cat >>confdefs.h <<_ACEOF #define _LARGE_FILES $ac_cv_sys_large_files _ACEOF ;; esac rm -rf conftest* fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGEFILE_SOURCE value needed for large files" >&5 $as_echo_n "checking for _LARGEFILE_SOURCE value needed for large files... " >&6; } if ${ac_cv_sys_largefile_source+:} false; then : $as_echo_n "(cached) " >&6 else while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* for off_t */ #include int main () { int (*fp) (FILE *, off_t, int) = fseeko; return fseeko (stdin, 0, 0) && fp (stdin, 0, 0); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_sys_largefile_source=no; break fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _LARGEFILE_SOURCE 1 #include /* for off_t */ #include int main () { int (*fp) (FILE *, off_t, int) = fseeko; return fseeko (stdin, 0, 0) && fp (stdin, 0, 0); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_sys_largefile_source=1; break fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ac_cv_sys_largefile_source=unknown break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_source" >&5 $as_echo "$ac_cv_sys_largefile_source" >&6; } case $ac_cv_sys_largefile_source in #( no | unknown) ;; *) cat >>confdefs.h <<_ACEOF #define _LARGEFILE_SOURCE $ac_cv_sys_largefile_source _ACEOF ;; esac rm -rf conftest* # We used to try defining _XOPEN_SOURCE=500 too, to work around a bug # in glibc 2.1.3, but that breaks too many other things. # If you want fseeko and ftello with glibc, upgrade to a fixed glibc. if test $ac_cv_sys_largefile_source != unknown; then $as_echo "#define HAVE_FSEEKO 1" >>confdefs.h fi if test "$build_os" = "cygwin"; then CYGWIN_TRUE= CYGWIN_FALSE='#' else CYGWIN_TRUE='#' CYGWIN_FALSE= fi if test "$build_os" = "mingw32"; then MINGW_TRUE= MINGW_FALSE='#' else MINGW_TRUE='#' MINGW_FALSE= fi # use '-fno-strict-aliasing', but only if the compiler can take it if gcc -fno-strict-aliasing -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then CFLAGS="-fno-strict-aliasing $CFLAGS" fi if test "x$HAVE_CXX" = "xyes"; then HAVE_CXX_TRUE= HAVE_CXX_FALSE='#' else HAVE_CXX_TRUE='#' HAVE_CXX_FALSE= fi # Adam shostack suggests the following for Windows: # -D_FORTIFY_SOURCE=2 -fstack-protector-all # Check whether --enable-gcc-hardening was given. if test "${enable_gcc_hardening+set}" = set; then : enableval=$enable_gcc_hardening; if test x$enableval = xyes; then CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=2 -fstack-protector-all" CFLAGS="$CFLAGS -fwrapv -fPIE -Wstack-protector" CFLAGS="$CFLAGS --param ssp-buffer-size=1" LDFLAGS="$LDFLAGS -pie" fi fi # Linker hardening options # Currently these options are ELF specific - you can't use this with MacOSX # Check whether --enable-linker-hardening was given. if test "${enable_linker_hardening+set}" = set; then : enableval=$enable_linker_hardening; if test x$enableval = xyes; then LDFLAGS="$LDFLAGS -z relro -z now" fi fi # Checks for libraries. for ac_header in langinfo.h do : ac_fn_c_check_header_mongrel "$LINENO" "langinfo.h" "ac_cv_header_langinfo_h" "$ac_includes_default" if test "x$ac_cv_header_langinfo_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LANGINFO_H 1 _ACEOF fi done # Check for libltdl header (#2999) ltdl=0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libltdl" >&5 $as_echo_n "checking for libltdl... " >&6; } # Check whether --with-ltdl was given. if test "${with_ltdl+set}" = set; then : withval=$with_ltdl; { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_ltdl" >&5 $as_echo "$with_ltdl" >&6; } case $with_ltdl in no) ;; yes) for ac_header in ltdl.h do : ac_fn_c_check_header_mongrel "$LINENO" "ltdl.h" "ac_cv_header_ltdl_h" "$ac_includes_default" if test "x$ac_cv_header_ltdl_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LTDL_H 1 _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lt_dlopenext in -lltdl" >&5 $as_echo_n "checking for lt_dlopenext in -lltdl... " >&6; } if ${ac_cv_lib_ltdl_lt_dlopenext+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lltdl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char lt_dlopenext (); int main () { return lt_dlopenext (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_ltdl_lt_dlopenext=yes else ac_cv_lib_ltdl_lt_dlopenext=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ltdl_lt_dlopenext" >&5 $as_echo "$ac_cv_lib_ltdl_lt_dlopenext" >&6; } if test "x$ac_cv_lib_ltdl_lt_dlopenext" = xyes; then : ltdl=1 fi fi done ;; *) LDFLAGS="-L$with_ltdl/lib $LDFLAGS" CPPFLAGS="-I$with_ltdl/include $CPPFLAGS" for ac_header in ltdl.h do : ac_fn_c_check_header_mongrel "$LINENO" "ltdl.h" "ac_cv_header_ltdl_h" "$ac_includes_default" if test "x$ac_cv_header_ltdl_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LTDL_H 1 _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lt_dlopenext in -lltdl" >&5 $as_echo_n "checking for lt_dlopenext in -lltdl... " >&6; } if ${ac_cv_lib_ltdl_lt_dlopenext+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lltdl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char lt_dlopenext (); int main () { return lt_dlopenext (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_ltdl_lt_dlopenext=yes else ac_cv_lib_ltdl_lt_dlopenext=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ltdl_lt_dlopenext" >&5 $as_echo "$ac_cv_lib_ltdl_lt_dlopenext" >&6; } if test "x$ac_cv_lib_ltdl_lt_dlopenext" = xyes; then : EXT_LIB_PATH="-L$with_ltdl/lib $EXT_LIB_PATH" ltdl=1 fi fi done ;; esac else { $as_echo "$as_me:${as_lineno-$LINENO}: result: --with-ltdl not specified" >&5 $as_echo "--with-ltdl not specified" >&6; } for ac_header in ltdl.h do : ac_fn_c_check_header_mongrel "$LINENO" "ltdl.h" "ac_cv_header_ltdl_h" "$ac_includes_default" if test "x$ac_cv_header_ltdl_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LTDL_H 1 _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lt_dlopenext in -lltdl" >&5 $as_echo_n "checking for lt_dlopenext in -lltdl... " >&6; } if ${ac_cv_lib_ltdl_lt_dlopenext+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lltdl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char lt_dlopenext (); int main () { return lt_dlopenext (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_ltdl_lt_dlopenext=yes else ac_cv_lib_ltdl_lt_dlopenext=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ltdl_lt_dlopenext" >&5 $as_echo "$ac_cv_lib_ltdl_lt_dlopenext" >&6; } if test "x$ac_cv_lib_ltdl_lt_dlopenext" = xyes; then : ltdl=1 fi fi done fi if test x$ltdl = x1 then { $as_echo "$as_me:${as_lineno-$LINENO}: result: libltdl found" >&5 $as_echo "libltdl found" >&6; } else as_fn_error $? "libextractor requires libltdl (from GNU libtool), try installing libltdl-dev" "$LINENO" 5 fi # restore LIBS LIBS=$LIBSOLD # FIXME: allow --with-oggvorbis=PFX # test if we have vorbisfile # prior versions had ov_open_callbacks in libvorbis, test that, too. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ov_open_callbacks in -lvorbisfile" >&5 $as_echo_n "checking for ov_open_callbacks in -lvorbisfile... " >&6; } if ${ac_cv_lib_vorbisfile_ov_open_callbacks+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lvorbisfile -lvorbis -logg $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char ov_open_callbacks (); int main () { return ov_open_callbacks (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_vorbisfile_ov_open_callbacks=yes else ac_cv_lib_vorbisfile_ov_open_callbacks=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_vorbisfile_ov_open_callbacks" >&5 $as_echo "$ac_cv_lib_vorbisfile_ov_open_callbacks" >&6; } if test "x$ac_cv_lib_vorbisfile_ov_open_callbacks" = xyes; then : for ac_header in vorbis/vorbisfile.h do : ac_fn_c_check_header_mongrel "$LINENO" "vorbis/vorbisfile.h" "ac_cv_header_vorbis_vorbisfile_h" "$ac_includes_default" if test "x$ac_cv_header_vorbis_vorbisfile_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_VORBIS_VORBISFILE_H 1 _ACEOF if true; then HAVE_VORBISFILE_TRUE= HAVE_VORBISFILE_FALSE='#' else HAVE_VORBISFILE_TRUE='#' HAVE_VORBISFILE_FALSE= fi $as_echo "#define HAVE_VORBISFILE 1" >>confdefs.h else if false; then HAVE_VORBISFILE_TRUE= HAVE_VORBISFILE_FALSE='#' else HAVE_VORBISFILE_TRUE='#' HAVE_VORBISFILE_FALSE= fi $as_echo "#define HAVE_VORBISFILE 0" >>confdefs.h fi done else if false; then HAVE_VORBISFILE_TRUE= HAVE_VORBISFILE_FALSE='#' else HAVE_VORBISFILE_TRUE='#' HAVE_VORBISFILE_FALSE= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for FLAC__stream_decoder_init_stream in -lFLAC" >&5 $as_echo_n "checking for FLAC__stream_decoder_init_stream in -lFLAC... " >&6; } if ${ac_cv_lib_FLAC_FLAC__stream_decoder_init_stream+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lFLAC -logg $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char FLAC__stream_decoder_init_stream (); int main () { return FLAC__stream_decoder_init_stream (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_FLAC_FLAC__stream_decoder_init_stream=yes else ac_cv_lib_FLAC_FLAC__stream_decoder_init_stream=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_FLAC_FLAC__stream_decoder_init_stream" >&5 $as_echo "$ac_cv_lib_FLAC_FLAC__stream_decoder_init_stream" >&6; } if test "x$ac_cv_lib_FLAC_FLAC__stream_decoder_init_stream" = xyes; then : for ac_header in FLAC/all.h do : ac_fn_c_check_header_mongrel "$LINENO" "FLAC/all.h" "ac_cv_header_FLAC_all_h" "$ac_includes_default" if test "x$ac_cv_header_FLAC_all_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_FLAC_ALL_H 1 _ACEOF if true; then HAVE_FLAC_TRUE= HAVE_FLAC_FALSE='#' else HAVE_FLAC_TRUE='#' HAVE_FLAC_FALSE= fi $as_echo "#define HAVE_FLAC 1" >>confdefs.h else if false; then HAVE_FLAC_TRUE= HAVE_FLAC_FALSE='#' else HAVE_FLAC_TRUE='#' HAVE_FLAC_FALSE= fi fi done else if false; then HAVE_FLAC_TRUE= HAVE_FLAC_FALSE='#' else HAVE_FLAC_TRUE='#' HAVE_FLAC_FALSE= fi fi # test without -logg to see whether we really need it (libflac can be without) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for FLAC__stream_decoder_init_ogg_stream in -lFLAC" >&5 $as_echo_n "checking for FLAC__stream_decoder_init_ogg_stream in -lFLAC... " >&6; } if ${ac_cv_lib_FLAC_FLAC__stream_decoder_init_ogg_stream+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lFLAC $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char FLAC__stream_decoder_init_ogg_stream (); int main () { return FLAC__stream_decoder_init_ogg_stream (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_FLAC_FLAC__stream_decoder_init_ogg_stream=yes else ac_cv_lib_FLAC_FLAC__stream_decoder_init_ogg_stream=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_FLAC_FLAC__stream_decoder_init_ogg_stream" >&5 $as_echo "$ac_cv_lib_FLAC_FLAC__stream_decoder_init_ogg_stream" >&6; } if test "x$ac_cv_lib_FLAC_FLAC__stream_decoder_init_ogg_stream" = xyes; then : if true; then HAVE_FLAC_TRUE= HAVE_FLAC_FALSE='#' else HAVE_FLAC_TRUE='#' HAVE_FLAC_FALSE= fi $as_echo "#define HAVE_FLAC 1" >>confdefs.h if false; then NEED_OGG_TRUE= NEED_OGG_FALSE='#' else NEED_OGG_TRUE='#' NEED_OGG_FALSE= fi else if true; then NEED_OGG_TRUE= NEED_OGG_FALSE='#' else NEED_OGG_TRUE='#' NEED_OGG_FALSE= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for vorbis_comment_query in -lvorbisfile" >&5 $as_echo_n "checking for vorbis_comment_query in -lvorbisfile... " >&6; } if ${ac_cv_lib_vorbisfile_vorbis_comment_query+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lvorbisfile -logg $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char vorbis_comment_query (); int main () { return vorbis_comment_query (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_vorbisfile_vorbis_comment_query=yes else ac_cv_lib_vorbisfile_vorbis_comment_query=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_vorbisfile_vorbis_comment_query" >&5 $as_echo "$ac_cv_lib_vorbisfile_vorbis_comment_query" >&6; } if test "x$ac_cv_lib_vorbisfile_vorbis_comment_query" = xyes; then : if false; then NEED_VORBIS_TRUE= NEED_VORBIS_FALSE='#' else NEED_VORBIS_TRUE='#' NEED_VORBIS_FALSE= fi else if true; then NEED_VORBIS_TRUE= NEED_VORBIS_FALSE='#' else NEED_VORBIS_TRUE='#' NEED_VORBIS_FALSE= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inflate in -lz" >&5 $as_echo_n "checking for inflate in -lz... " >&6; } if ${ac_cv_lib_z_inflate+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lz $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char inflate (); int main () { return inflate (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_z_inflate=yes else ac_cv_lib_z_inflate=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_inflate" >&5 $as_echo "$ac_cv_lib_z_inflate" >&6; } if test "x$ac_cv_lib_z_inflate" = xyes; then : for ac_header in zlib.h do : ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default" if test "x$ac_cv_header_zlib_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_ZLIB_H 1 _ACEOF if true; then HAVE_ZLIB_TRUE= HAVE_ZLIB_FALSE='#' else HAVE_ZLIB_TRUE='#' HAVE_ZLIB_FALSE= fi $as_echo "#define HAVE_ZLIB 1" >>confdefs.h else if false; then HAVE_ZLIB_TRUE= HAVE_ZLIB_FALSE='#' else HAVE_ZLIB_TRUE='#' HAVE_ZLIB_FALSE= fi fi done else if false; then HAVE_ZLIB_TRUE= HAVE_ZLIB_FALSE='#' else HAVE_ZLIB_TRUE='#' HAVE_ZLIB_FALSE= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BZ2_bzDecompress in -lbz2" >&5 $as_echo_n "checking for BZ2_bzDecompress in -lbz2... " >&6; } if ${ac_cv_lib_bz2_BZ2_bzDecompress+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lbz2 $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char BZ2_bzDecompress (); int main () { return BZ2_bzDecompress (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_bz2_BZ2_bzDecompress=yes else ac_cv_lib_bz2_BZ2_bzDecompress=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bz2_BZ2_bzDecompress" >&5 $as_echo "$ac_cv_lib_bz2_BZ2_bzDecompress" >&6; } if test "x$ac_cv_lib_bz2_BZ2_bzDecompress" = xyes; then : for ac_header in bzlib.h do : ac_fn_c_check_header_mongrel "$LINENO" "bzlib.h" "ac_cv_header_bzlib_h" "$ac_includes_default" if test "x$ac_cv_header_bzlib_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_BZLIB_H 1 _ACEOF if true; then HAVE_BZ2_TRUE= HAVE_BZ2_FALSE='#' else HAVE_BZ2_TRUE='#' HAVE_BZ2_FALSE= fi $as_echo "#define HAVE_LIBBZ2 1" >>confdefs.h else if false; then HAVE_BZ2_TRUE= HAVE_BZ2_FALSE='#' else HAVE_BZ2_TRUE='#' HAVE_BZ2_FALSE= fi fi done else if false; then HAVE_BZ2_TRUE= HAVE_BZ2_FALSE='#' else HAVE_BZ2_TRUE='#' HAVE_BZ2_FALSE= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for rpmReadPackageFile in -lrpm" >&5 $as_echo_n "checking for rpmReadPackageFile in -lrpm... " >&6; } if ${ac_cv_lib_rpm_rpmReadPackageFile+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lrpm $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char rpmReadPackageFile (); int main () { return rpmReadPackageFile (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_rpm_rpmReadPackageFile=yes else ac_cv_lib_rpm_rpmReadPackageFile=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rpm_rpmReadPackageFile" >&5 $as_echo "$ac_cv_lib_rpm_rpmReadPackageFile" >&6; } if test "x$ac_cv_lib_rpm_rpmReadPackageFile" = xyes; then : for ac_header in rpm/rpmlib.h do : ac_fn_c_check_header_mongrel "$LINENO" "rpm/rpmlib.h" "ac_cv_header_rpm_rpmlib_h" "$ac_includes_default" if test "x$ac_cv_header_rpm_rpmlib_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_RPM_RPMLIB_H 1 _ACEOF if true; then HAVE_LIBRPM_TRUE= HAVE_LIBRPM_FALSE='#' else HAVE_LIBRPM_TRUE='#' HAVE_LIBRPM_FALSE= fi $as_echo "#define HAVE_LIBRPM 1" >>confdefs.h else if false; then HAVE_LIBRPM_TRUE= HAVE_LIBRPM_FALSE='#' else HAVE_LIBRPM_TRUE='#' HAVE_LIBRPM_FALSE= fi fi done else if false; then HAVE_LIBRPM_TRUE= HAVE_LIBRPM_FALSE='#' else HAVE_LIBRPM_TRUE='#' HAVE_LIBRPM_FALSE= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mpeg2_init in -lmpeg2" >&5 $as_echo_n "checking for mpeg2_init in -lmpeg2... " >&6; } if ${ac_cv_lib_mpeg2_mpeg2_init+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lmpeg2 $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char mpeg2_init (); int main () { return mpeg2_init (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_mpeg2_mpeg2_init=yes else ac_cv_lib_mpeg2_mpeg2_init=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mpeg2_mpeg2_init" >&5 $as_echo "$ac_cv_lib_mpeg2_mpeg2_init" >&6; } if test "x$ac_cv_lib_mpeg2_mpeg2_init" = xyes; then : for ac_header in mpeg2dec/mpeg2.h do : ac_fn_c_check_header_mongrel "$LINENO" "mpeg2dec/mpeg2.h" "ac_cv_header_mpeg2dec_mpeg2_h" "$ac_includes_default" if test "x$ac_cv_header_mpeg2dec_mpeg2_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_MPEG2DEC_MPEG2_H 1 _ACEOF if true; then HAVE_MPEG2_TRUE= HAVE_MPEG2_FALSE='#' else HAVE_MPEG2_TRUE='#' HAVE_MPEG2_FALSE= fi $as_echo "#define HAVE_MPEG2 1" >>confdefs.h else if false; then HAVE_MPEG2_TRUE= HAVE_MPEG2_FALSE='#' else HAVE_MPEG2_TRUE='#' HAVE_MPEG2_FALSE= fi fi done else if false; then HAVE_MPEG2_TRUE= HAVE_MPEG2_FALSE='#' else HAVE_MPEG2_TRUE='#' HAVE_MPEG2_FALSE= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MP4ReadProvider in -lmp4v2" >&5 $as_echo_n "checking for MP4ReadProvider in -lmp4v2... " >&6; } if ${ac_cv_lib_mp4v2_MP4ReadProvider+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lmp4v2 $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char MP4ReadProvider (); int main () { return MP4ReadProvider (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_mp4v2_MP4ReadProvider=yes else ac_cv_lib_mp4v2_MP4ReadProvider=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mp4v2_MP4ReadProvider" >&5 $as_echo "$ac_cv_lib_mp4v2_MP4ReadProvider" >&6; } if test "x$ac_cv_lib_mp4v2_MP4ReadProvider" = xyes; then : for ac_header in mp4v2/mp4v2.h do : ac_fn_c_check_header_mongrel "$LINENO" "mp4v2/mp4v2.h" "ac_cv_header_mp4v2_mp4v2_h" "$ac_includes_default" if test "x$ac_cv_header_mp4v2_mp4v2_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_MP4V2_MP4V2_H 1 _ACEOF if true; then HAVE_MP4_TRUE= HAVE_MP4_FALSE='#' else HAVE_MP4_TRUE='#' HAVE_MP4_FALSE= fi $as_echo "#define HAVE_MP4 1" >>confdefs.h else if false; then HAVE_MP4_TRUE= HAVE_MP4_FALSE='#' else HAVE_MP4_TRUE='#' HAVE_MP4_FALSE= fi fi done else if false; then HAVE_MP4_TRUE= HAVE_MP4_FALSE='#' else HAVE_MP4_TRUE='#' HAVE_MP4_FALSE= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for jpeg_mem_src in -ljpeg" >&5 $as_echo_n "checking for jpeg_mem_src in -ljpeg... " >&6; } if ${ac_cv_lib_jpeg_jpeg_mem_src+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ljpeg $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char jpeg_mem_src (); int main () { return jpeg_mem_src (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_jpeg_jpeg_mem_src=yes else ac_cv_lib_jpeg_jpeg_mem_src=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_jpeg_jpeg_mem_src" >&5 $as_echo "$ac_cv_lib_jpeg_jpeg_mem_src" >&6; } if test "x$ac_cv_lib_jpeg_jpeg_mem_src" = xyes; then : for ac_header in jpeglib.h do : ac_fn_c_check_header_mongrel "$LINENO" "jpeglib.h" "ac_cv_header_jpeglib_h" "$ac_includes_default" if test "x$ac_cv_header_jpeglib_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_JPEGLIB_H 1 _ACEOF if true; then HAVE_JPEG_TRUE= HAVE_JPEG_FALSE='#' else HAVE_JPEG_TRUE='#' HAVE_JPEG_FALSE= fi $as_echo "#define HAVE_JPEG 1" >>confdefs.h else if false; then HAVE_JPEG_TRUE= HAVE_JPEG_FALSE='#' else HAVE_JPEG_TRUE='#' HAVE_JPEG_FALSE= fi fi done else if false; then HAVE_JPEG_TRUE= HAVE_JPEG_FALSE='#' else HAVE_JPEG_TRUE='#' HAVE_JPEG_FALSE= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for TIFFClientOpen in -ltiff" >&5 $as_echo_n "checking for TIFFClientOpen in -ltiff... " >&6; } if ${ac_cv_lib_tiff_TIFFClientOpen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ltiff $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char TIFFClientOpen (); int main () { return TIFFClientOpen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_tiff_TIFFClientOpen=yes else ac_cv_lib_tiff_TIFFClientOpen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_tiff_TIFFClientOpen" >&5 $as_echo "$ac_cv_lib_tiff_TIFFClientOpen" >&6; } if test "x$ac_cv_lib_tiff_TIFFClientOpen" = xyes; then : for ac_header in tiffio.h do : ac_fn_c_check_header_mongrel "$LINENO" "tiffio.h" "ac_cv_header_tiffio_h" "$ac_includes_default" if test "x$ac_cv_header_tiffio_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_TIFFIO_H 1 _ACEOF if true; then HAVE_TIFF_TRUE= HAVE_TIFF_FALSE='#' else HAVE_TIFF_TRUE='#' HAVE_TIFF_FALSE= fi $as_echo "#define HAVE_TIFF 1" >>confdefs.h else if false; then HAVE_TIFF_TRUE= HAVE_TIFF_FALSE='#' else HAVE_TIFF_TRUE='#' HAVE_TIFF_FALSE= fi fi done else if false; then HAVE_TIFF_TRUE= HAVE_TIFF_FALSE='#' else HAVE_TIFF_TRUE='#' HAVE_TIFF_FALSE= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for archive_read_open in -larchive" >&5 $as_echo_n "checking for archive_read_open in -larchive... " >&6; } if ${ac_cv_lib_archive_archive_read_open+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-larchive $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char archive_read_open (); int main () { return archive_read_open (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_archive_archive_read_open=yes else ac_cv_lib_archive_archive_read_open=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_archive_archive_read_open" >&5 $as_echo "$ac_cv_lib_archive_archive_read_open" >&6; } if test "x$ac_cv_lib_archive_archive_read_open" = xyes; then : for ac_header in archive.h do : ac_fn_c_check_header_mongrel "$LINENO" "archive.h" "ac_cv_header_archive_h" "$ac_includes_default" if test "x$ac_cv_header_archive_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_ARCHIVE_H 1 _ACEOF if true; then HAVE_ARCHIVE_TRUE= HAVE_ARCHIVE_FALSE='#' else HAVE_ARCHIVE_TRUE='#' HAVE_ARCHIVE_FALSE= fi $as_echo "#define HAVE_ARCHIVE 1" >>confdefs.h else if false; then HAVE_ARCHIVE_TRUE= HAVE_ARCHIVE_FALSE='#' else HAVE_ARCHIVE_TRUE='#' HAVE_ARCHIVE_FALSE= fi fi done else if false; then HAVE_ARCHIVE_TRUE= HAVE_ARCHIVE_FALSE='#' else HAVE_ARCHIVE_TRUE='#' HAVE_ARCHIVE_FALSE= fi fi # should experimental code be compiled (code that may not yet compile)? { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to compile experimental code" >&5 $as_echo_n "checking whether to compile experimental code... " >&6; } # Check whether --enable-experimental was given. if test "${enable_experimental+set}" = set; then : enableval=$enable_experimental; enable_experimental=${enableval} else enable_experimental=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_experimental" >&5 $as_echo "$enable_experimental" >&6; } if test "x$enable_experimental" = "xyes"; then HAVE_EXPERIMENTAL_TRUE= HAVE_EXPERIMENTAL_FALSE='#' else HAVE_EXPERIMENTAL_TRUE='#' HAVE_EXPERIMENTAL_FALSE= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ImageFactory::iptcData in -lexiv2" >&5 $as_echo_n "checking for ImageFactory::iptcData in -lexiv2... " >&6; } ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu SAVED_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -lexiv2" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { Exiv2::Image *foo = NULL; foo->iptcData(); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if true; then HAVE_EXIV2_TRUE= HAVE_EXIV2_FALSE='#' else HAVE_EXIV2_TRUE='#' HAVE_EXIV2_FALSE= fi $as_echo "#define HAVE_EXIV2 1" >>confdefs.h else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if false; then HAVE_EXIV2_TRUE= HAVE_EXIV2_FALSE='#' else HAVE_EXIV2_TRUE='#' HAVE_EXIV2_FALSE= fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$SAVED_LDFLAGS ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for DGifOpen -lgif" >&5 $as_echo_n "checking for DGifOpen -lgif... " >&6; } SAVED_LDFLAGS=$LDFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking for DGifOpen in -lgif" >&5 $as_echo_n "checking for DGifOpen in -lgif... " >&6; } if ${ac_cv_lib_gif_DGifOpen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lgif $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char DGifOpen (); int main () { return DGifOpen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_gif_DGifOpen=yes else ac_cv_lib_gif_DGifOpen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gif_DGifOpen" >&5 $as_echo "$ac_cv_lib_gif_DGifOpen" >&6; } if test "x$ac_cv_lib_gif_DGifOpen" = xyes; then : for ac_header in gif_lib.h do : ac_fn_c_check_header_mongrel "$LINENO" "gif_lib.h" "ac_cv_header_gif_lib_h" "$ac_includes_default" if test "x$ac_cv_header_gif_lib_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GIF_LIB_H 1 _ACEOF if true; then HAVE_GIF_TRUE= HAVE_GIF_FALSE='#' else HAVE_GIF_TRUE='#' HAVE_GIF_FALSE= fi else if false; then HAVE_GIF_TRUE= HAVE_GIF_FALSE='#' else HAVE_GIF_TRUE='#' HAVE_GIF_FALSE= fi fi done else if false; then HAVE_GIF_TRUE= HAVE_GIF_FALSE='#' else HAVE_GIF_TRUE='#' HAVE_GIF_FALSE= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for magic_open -lmagic" >&5 $as_echo_n "checking for magic_open -lmagic... " >&6; } SAVED_LDFLAGS=$LDFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking for magic_open in -lmagic" >&5 $as_echo_n "checking for magic_open in -lmagic... " >&6; } if ${ac_cv_lib_magic_magic_open+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lmagic $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char magic_open (); int main () { return magic_open (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_magic_magic_open=yes else ac_cv_lib_magic_magic_open=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_magic_magic_open" >&5 $as_echo "$ac_cv_lib_magic_magic_open" >&6; } if test "x$ac_cv_lib_magic_magic_open" = xyes; then : for ac_header in magic.h do : ac_fn_c_check_header_mongrel "$LINENO" "magic.h" "ac_cv_header_magic_h" "$ac_includes_default" if test "x$ac_cv_header_magic_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_MAGIC_H 1 _ACEOF if true; then HAVE_MAGIC_TRUE= HAVE_MAGIC_FALSE='#' else HAVE_MAGIC_TRUE='#' HAVE_MAGIC_FALSE= fi else if false; then HAVE_MAGIC_TRUE= HAVE_MAGIC_FALSE='#' else HAVE_MAGIC_TRUE='#' HAVE_MAGIC_FALSE= fi fi done else if false; then HAVE_MAGIC_TRUE= HAVE_MAGIC_FALSE='#' else HAVE_MAGIC_TRUE='#' HAVE_MAGIC_FALSE= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tidyNodeGetValue -ltidy" >&5 $as_echo_n "checking for tidyNodeGetValue -ltidy... " >&6; } ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu SAVED_LIBS=$LIBS LIBS="$LIBS -ltidy" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { Bool b = tidyNodeGetValue (NULL, NULL, NULL); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } if true; then HAVE_TIDY_TRUE= HAVE_TIDY_FALSE='#' else HAVE_TIDY_TRUE='#' HAVE_TIDY_FALSE= fi $as_echo "#define HAVE_TIDY 1" >>confdefs.h else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if false; then HAVE_TIDY_TRUE= HAVE_TIDY_FALSE='#' else HAVE_TIDY_TRUE='#' HAVE_TIDY_FALSE= fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$SAVED_LIBS ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # restore LIBS LIBS=$LIBSOLD # should 'make check' run tests? { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to run tests" >&5 $as_echo_n "checking whether to run tests... " >&6; } # Check whether --enable-testruns was given. if test "${enable_testruns+set}" = set; then : enableval=$enable_testruns; enable_tests_run=${enableval} else enable_tests_run=yes fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_test_run" >&5 $as_echo "$enable_test_run" >&6; } if test "x$enable_tests_run" = "xyes"; then ENABLE_TEST_RUN_TRUE= ENABLE_TEST_RUN_FALSE='#' else ENABLE_TEST_RUN_TRUE='#' ENABLE_TEST_RUN_FALSE= fi # Checks for header files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi ac_header_dirent=no for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do as_ac_Header=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5 $as_echo_n "checking for $ac_hdr that defines DIR... " >&6; } if eval \${$as_ac_Header+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include <$ac_hdr> int main () { if ((DIR *) 0) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$as_ac_Header=yes" else eval "$as_ac_Header=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$as_ac_Header { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_hdr" | $as_tr_cpp` 1 _ACEOF ac_header_dirent=$ac_hdr; break fi done # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. if test $ac_header_dirent = dirent.h; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 $as_echo_n "checking for library containing opendir... " >&6; } if ${ac_cv_search_opendir+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char opendir (); int main () { return opendir (); ; return 0; } _ACEOF for ac_lib in '' dir; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_opendir=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_opendir+:} false; then : break fi done if ${ac_cv_search_opendir+:} false; then : else ac_cv_search_opendir=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5 $as_echo "$ac_cv_search_opendir" >&6; } ac_res=$ac_cv_search_opendir if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5 $as_echo_n "checking for library containing opendir... " >&6; } if ${ac_cv_search_opendir+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char opendir (); int main () { return opendir (); ; return 0; } _ACEOF for ac_lib in '' x; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_opendir=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_opendir+:} false; then : break fi done if ${ac_cv_search_opendir+:} false; then : else ac_cv_search_opendir=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5 $as_echo "$ac_cv_search_opendir" >&6; } ac_res=$ac_cv_search_opendir if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdbool.h that conforms to C99" >&5 $as_echo_n "checking for stdbool.h that conforms to C99... " >&6; } if ${ac_cv_header_stdbool_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifndef bool "error: bool is not defined" #endif #ifndef false "error: false is not defined" #endif #if false "error: false is not 0" #endif #ifndef true "error: true is not defined" #endif #if true != 1 "error: true is not 1" #endif #ifndef __bool_true_false_are_defined "error: __bool_true_false_are_defined is not defined" #endif struct s { _Bool s: 1; _Bool t; } s; char a[true == 1 ? 1 : -1]; char b[false == 0 ? 1 : -1]; char c[__bool_true_false_are_defined == 1 ? 1 : -1]; char d[(bool) 0.5 == true ? 1 : -1]; /* See body of main program for 'e'. */ char f[(_Bool) 0.0 == false ? 1 : -1]; char g[true]; char h[sizeof (_Bool)]; char i[sizeof s.t]; enum { j = false, k = true, l = false * true, m = true * 256 }; /* The following fails for HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */ _Bool n[m]; char o[sizeof n == m * sizeof n[0] ? 1 : -1]; char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1]; /* Catch a bug in an HP-UX C compiler. See http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html */ _Bool q = true; _Bool *pq = &q; int main () { bool e = &s; *pq |= q; *pq |= ! q; /* Refer to every declared value, to avoid compiler optimizations. */ return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l + !m + !n + !o + !p + !q + !pq); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdbool_h=yes else ac_cv_header_stdbool_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdbool_h" >&5 $as_echo "$ac_cv_header_stdbool_h" >&6; } ac_fn_c_check_type "$LINENO" "_Bool" "ac_cv_type__Bool" "$ac_includes_default" if test "x$ac_cv_type__Bool" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE__BOOL 1 _ACEOF fi if test $ac_cv_header_stdbool_h = yes; then $as_echo "#define HAVE_STDBOOL_H 1" >>confdefs.h fi for ac_header in iconv.h fcntl.h netinet/in.h stdlib.h string.h unistd.h libintl.h limits.h stddef.h zlib.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done # Checks for typedefs, structures, and compiler characteristics. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 $as_echo_n "checking for inline... " >&6; } if ${ac_cv_c_inline+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __cplusplus typedef int foo_t; static $ac_kw foo_t static_foo () {return 0; } $ac_kw foo_t foo () {return 0; } #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_inline=$ac_kw fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext test "$ac_cv_c_inline" != no && break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 $as_echo "$ac_cv_c_inline" >&6; } case $ac_cv_c_inline in inline | yes) ;; *) case $ac_cv_c_inline in no) ac_val=;; *) ac_val=$ac_cv_c_inline;; esac cat >>confdefs.h <<_ACEOF #ifndef __cplusplus #define inline $ac_val #endif _ACEOF ;; esac ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" if test "x$ac_cv_type_size_t" = xyes; then : else cat >>confdefs.h <<_ACEOF #define size_t unsigned int _ACEOF fi ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default" if test "x$ac_cv_type_pid_t" = xyes; then : else cat >>confdefs.h <<_ACEOF #define pid_t int _ACEOF fi if test "$cross_compiling" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cross compiling; assuming big endianess" >&5 $as_echo "$as_me: WARNING: cross compiling; assuming big endianess" >&2;} fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking endianess" >&5 $as_echo_n "checking endianess... " >&6; } if ${gnupg_cv_c_endian+:} false; then : $as_echo_n "(cached) " >&6 else gnupg_cv_c_endian=unknown # See if sys/param.h defines the BYTE_ORDER macro. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { #if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN bogus endian macros #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : # It does; now see whether it defined to BIG_ENDIAN or not. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { #if BYTE_ORDER != BIG_ENDIAN not big endian #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gnupg_cv_c_endian=big else gnupg_cv_c_endian=little fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test "$gnupg_cv_c_endian" = unknown; then if test "$cross_compiling" = yes; then : gnupg_cv_c_endian=big else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ main () { /* Are we little or big endian? From Harbison&Steele. */ union { long l; char c[sizeof (long)]; } u; u.l = 1; exit (u.c[sizeof (long) - 1] == 1); } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gnupg_cv_c_endian=little else gnupg_cv_c_endian=big fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gnupg_cv_c_endian" >&5 $as_echo "$gnupg_cv_c_endian" >&6; } if test "$gnupg_cv_c_endian" = little; then $as_echo "#define LITTLE_ENDIAN_HOST 1" >>confdefs.h else $as_echo "#define BIG_ENDIAN_HOST 1" >>confdefs.h fi # Checks for library functions. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working memcmp" >&5 $as_echo_n "checking for working memcmp... " >&6; } if ${ac_cv_func_memcmp_working+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_func_memcmp_working=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { /* Some versions of memcmp are not 8-bit clean. */ char c0 = '\100', c1 = '\200', c2 = '\201'; if (memcmp(&c0, &c2, 1) >= 0 || memcmp(&c1, &c2, 1) >= 0) return 1; /* The Next x86 OpenStep bug shows up only when comparing 16 bytes or more and with at least one buffer not starting on a 4-byte boundary. William Lewis provided this test program. */ { char foo[21]; char bar[21]; int i; for (i = 0; i < 4; i++) { char *a = foo + i; char *b = bar + i; strcpy (a, "--------01111111"); strcpy (b, "--------10000000"); if (memcmp (a, b, 16) >= 0) return 1; } return 0; } ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_memcmp_working=yes else ac_cv_func_memcmp_working=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_memcmp_working" >&5 $as_echo "$ac_cv_func_memcmp_working" >&6; } test $ac_cv_func_memcmp_working = no && case " $LIBOBJS " in *" memcmp.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS memcmp.$ac_objext" ;; esac for ac_func in vprintf do : ac_fn_c_check_func "$LINENO" "vprintf" "ac_cv_func_vprintf" if test "x$ac_cv_func_vprintf" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_VPRINTF 1 _ACEOF ac_fn_c_check_func "$LINENO" "_doprnt" "ac_cv_func__doprnt" if test "x$ac_cv_func__doprnt" = xyes; then : $as_echo "#define HAVE_DOPRNT 1" >>confdefs.h fi fi done for ac_header in $ac_header_list do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_func in getpagesize do : ac_fn_c_check_func "$LINENO" "getpagesize" "ac_cv_func_getpagesize" if test "x$ac_cv_func_getpagesize" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GETPAGESIZE 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working mmap" >&5 $as_echo_n "checking for working mmap... " >&6; } if ${ac_cv_func_mmap_fixed_mapped+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_func_mmap_fixed_mapped=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default /* malloc might have been renamed as rpl_malloc. */ #undef malloc /* Thanks to Mike Haertel and Jim Avera for this test. Here is a matrix of mmap possibilities: mmap private not fixed mmap private fixed at somewhere currently unmapped mmap private fixed at somewhere already mapped mmap shared not fixed mmap shared fixed at somewhere currently unmapped mmap shared fixed at somewhere already mapped For private mappings, we should verify that changes cannot be read() back from the file, nor mmap's back from the file at a different address. (There have been systems where private was not correctly implemented like the infamous i386 svr4.0, and systems where the VM page cache was not coherent with the file system buffer cache like early versions of FreeBSD and possibly contemporary NetBSD.) For shared mappings, we should conversely verify that changes get propagated back to all the places they're supposed to be. Grep wants private fixed already mapped. The main things grep needs to know about mmap are: * does it exist and is it safe to write into the mmap'd area * how to use it (BSD variants) */ #include #include #if !defined STDC_HEADERS && !defined HAVE_STDLIB_H char *malloc (); #endif /* This mess was copied from the GNU getpagesize.h. */ #ifndef HAVE_GETPAGESIZE # ifdef _SC_PAGESIZE # define getpagesize() sysconf(_SC_PAGESIZE) # else /* no _SC_PAGESIZE */ # ifdef HAVE_SYS_PARAM_H # include # ifdef EXEC_PAGESIZE # define getpagesize() EXEC_PAGESIZE # else /* no EXEC_PAGESIZE */ # ifdef NBPG # define getpagesize() NBPG * CLSIZE # ifndef CLSIZE # define CLSIZE 1 # endif /* no CLSIZE */ # else /* no NBPG */ # ifdef NBPC # define getpagesize() NBPC # else /* no NBPC */ # ifdef PAGESIZE # define getpagesize() PAGESIZE # endif /* PAGESIZE */ # endif /* no NBPC */ # endif /* no NBPG */ # endif /* no EXEC_PAGESIZE */ # else /* no HAVE_SYS_PARAM_H */ # define getpagesize() 8192 /* punt totally */ # endif /* no HAVE_SYS_PARAM_H */ # endif /* no _SC_PAGESIZE */ #endif /* no HAVE_GETPAGESIZE */ int main () { char *data, *data2, *data3; const char *cdata2; int i, pagesize; int fd, fd2; pagesize = getpagesize (); /* First, make a file with some known garbage in it. */ data = (char *) malloc (pagesize); if (!data) return 1; for (i = 0; i < pagesize; ++i) *(data + i) = rand (); umask (0); fd = creat ("conftest.mmap", 0600); if (fd < 0) return 2; if (write (fd, data, pagesize) != pagesize) return 3; close (fd); /* Next, check that the tail of a page is zero-filled. File must have non-zero length, otherwise we risk SIGBUS for entire page. */ fd2 = open ("conftest.txt", O_RDWR | O_CREAT | O_TRUNC, 0600); if (fd2 < 0) return 4; cdata2 = ""; if (write (fd2, cdata2, 1) != 1) return 5; data2 = (char *) mmap (0, pagesize, PROT_READ | PROT_WRITE, MAP_SHARED, fd2, 0L); if (data2 == MAP_FAILED) return 6; for (i = 0; i < pagesize; ++i) if (*(data2 + i)) return 7; close (fd2); if (munmap (data2, pagesize)) return 8; /* Next, try to mmap the file at a fixed address which already has something else allocated at it. If we can, also make sure that we see the same garbage. */ fd = open ("conftest.mmap", O_RDWR); if (fd < 0) return 9; if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_FIXED, fd, 0L)) return 10; for (i = 0; i < pagesize; ++i) if (*(data + i) != *(data2 + i)) return 11; /* Finally, make sure that changes to the mapped area do not percolate back to the file as seen by read(). (This is a bug on some variants of i386 svr4.0.) */ for (i = 0; i < pagesize; ++i) *(data2 + i) = *(data2 + i) + 1; data3 = (char *) malloc (pagesize); if (!data3) return 12; if (read (fd, data3, pagesize) != pagesize) return 13; for (i = 0; i < pagesize; ++i) if (*(data + i) != *(data3 + i)) return 14; close (fd); return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_mmap_fixed_mapped=yes else ac_cv_func_mmap_fixed_mapped=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_mmap_fixed_mapped" >&5 $as_echo "$ac_cv_func_mmap_fixed_mapped" >&6; } if test $ac_cv_func_mmap_fixed_mapped = yes; then $as_echo "#define HAVE_MMAP 1" >>confdefs.h fi rm -f conftest.mmap conftest.txt { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether lstat correctly handles trailing slash" >&5 $as_echo_n "checking whether lstat correctly handles trailing slash... " >&6; } if ${ac_cv_func_lstat_dereferences_slashed_symlink+:} false; then : $as_echo_n "(cached) " >&6 else rm -f conftest.sym conftest.file echo >conftest.file if test "$as_ln_s" = "ln -s" && ln -s conftest.file conftest.sym; then if test "$cross_compiling" = yes; then : ac_cv_func_lstat_dereferences_slashed_symlink=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { struct stat sbuf; /* Linux will dereference the symlink and fail, as required by POSIX. That is better in the sense that it means we will not have to compile and use the lstat wrapper. */ return lstat ("conftest.sym/", &sbuf) == 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_lstat_dereferences_slashed_symlink=yes else ac_cv_func_lstat_dereferences_slashed_symlink=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi else # If the `ln -s' command failed, then we probably don't even # have an lstat function. ac_cv_func_lstat_dereferences_slashed_symlink=no fi rm -f conftest.sym conftest.file fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_lstat_dereferences_slashed_symlink" >&5 $as_echo "$ac_cv_func_lstat_dereferences_slashed_symlink" >&6; } test $ac_cv_func_lstat_dereferences_slashed_symlink = yes && cat >>confdefs.h <<_ACEOF #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 _ACEOF if test "x$ac_cv_func_lstat_dereferences_slashed_symlink" = xno; then case " $LIBOBJS " in *" lstat.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS lstat.$ac_objext" ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat accepts an empty string" >&5 $as_echo_n "checking whether stat accepts an empty string... " >&6; } if ${ac_cv_func_stat_empty_string_bug+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_func_stat_empty_string_bug=yes else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { struct stat sbuf; return stat ("", &sbuf) == 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_stat_empty_string_bug=no else ac_cv_func_stat_empty_string_bug=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_stat_empty_string_bug" >&5 $as_echo "$ac_cv_func_stat_empty_string_bug" >&6; } if test $ac_cv_func_stat_empty_string_bug = yes; then case " $LIBOBJS " in *" stat.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS stat.$ac_objext" ;; esac cat >>confdefs.h <<_ACEOF #define HAVE_STAT_EMPTY_STRING_BUG 1 _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for error_at_line" >&5 $as_echo_n "checking for error_at_line... " >&6; } if ${ac_cv_lib_error_at_line+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { error_at_line (0, 0, "", 0, "an error occurred"); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_error_at_line=yes else ac_cv_lib_error_at_line=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_error_at_line" >&5 $as_echo "$ac_cv_lib_error_at_line" >&6; } if test $ac_cv_lib_error_at_line = no; then case " $LIBOBJS " in *" error.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS error.$ac_objext" ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5 $as_echo_n "checking for library containing dlopen... " >&6; } if ${ac_cv_search_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF for ac_lib in '' dl; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_dlopen=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_dlopen+:} false; then : break fi done if ${ac_cv_search_dlopen+:} false; then : else ac_cv_search_dlopen=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5 $as_echo "$ac_cv_search_dlopen" >&6; } ac_res=$ac_cv_search_dlopen if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing shm_open" >&5 $as_echo_n "checking for library containing shm_open... " >&6; } if ${ac_cv_search_shm_open+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shm_open (); int main () { return shm_open (); ; return 0; } _ACEOF for ac_lib in '' rt; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_shm_open=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_shm_open+:} false; then : break fi done if ${ac_cv_search_shm_open+:} false; then : else ac_cv_search_shm_open=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_shm_open" >&5 $as_echo "$ac_cv_search_shm_open" >&6; } ac_res=$ac_cv_search_shm_open if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi for ac_func in mkstemp strndup munmap strcasecmp strdup strncasecmp memmove memset strtoul floor getcwd pow setenv sqrt strchr strcspn strrchr strnlen strndup ftruncate shm_open shm_unlink lseek64 do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done sockets=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sockets" >&5 $as_echo_n "checking for sockets... " >&6; } ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu SAVED_LIBS="$LIBS" SOCKET_LIBS= cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { int s = socket (AF_INET, SOCK_STREAM, 6); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : sockets=yes else LIBS="$SAVED_LIBS -lsocket" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { int s = socket (AF_INET, SOCK_STREAM, 6); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : sockets=yes SOCKET_LIBS="-lsocket" else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { int s = socket (AF_INET, SOCK_STREAM, 6); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : sockets=yes else LIBS="$SAVED_LIBS -lws2_32" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { int s = socket (AF_INET, SOCK_STREAM, 6); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : sockets=yes SOCKET_LIBS="-lws2_32" else sockets=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$SAVED_LIBS $SOCKET_LIBS" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: result: $sockets" >&5 $as_echo "$sockets" >&6; } if test "x$sockets" = "xno" then as_fn_error $? "libextractor requires some kind of socket library" "$LINENO" 5 fi SOCKET_LIBS=$SOCKET_LIBS LE_LIB_LIBS=$LIBS LIBS=$LIBSOLD { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 $as_echo_n "checking whether NLS is requested... " >&6; } # Check whether --enable-nls was given. if test "${enable_nls+set}" = set; then : enableval=$enable_nls; USE_NLS=$enableval else USE_NLS=yes fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 $as_echo "$USE_NLS" >&6; } GETTEXT_MACRO_VERSION=0.18 # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case "$MSGFMT" in [\\/]* | ?:[\\/]*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then echo "$as_me: trying $ac_dir/$ac_word..." >&5 if $ac_dir/$ac_word --statistics /dev/null >&5 2>&1 && (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then ac_cv_path_MSGFMT="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":" ;; esac fi MSGFMT="$ac_cv_path_MSGFMT" if test "$MSGFMT" != ":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 $as_echo "$MSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_GMSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case $GMSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" ;; esac fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 $as_echo "$GMSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;; *) MSGFMT_015=$MSGFMT ;; esac case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; *) GMSGFMT_015=$GMSGFMT ;; esac # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_XGETTEXT+:} false; then : $as_echo_n "(cached) " >&6 else case "$XGETTEXT" in [\\/]* | ?:[\\/]*) ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then echo "$as_me: trying $ac_dir/$ac_word..." >&5 if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&5 2>&1 && (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then ac_cv_path_XGETTEXT="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" ;; esac fi XGETTEXT="$ac_cv_path_XGETTEXT" if test "$XGETTEXT" != ":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 $as_echo "$XGETTEXT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi rm -f messages.po case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; *) XGETTEXT_015=$XGETTEXT ;; esac # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "msgmerge", so it can be a program name with args. set dummy msgmerge; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGMERGE+:} false; then : $as_echo_n "(cached) " >&6 else case "$MSGMERGE" in [\\/]* | ?:[\\/]*) ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then echo "$as_me: trying $ac_dir/$ac_word..." >&5 if $ac_dir/$ac_word --update -q /dev/null /dev/null >&5 2>&1; then ac_cv_path_MSGMERGE="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":" ;; esac fi MSGMERGE="$ac_cv_path_MSGMERGE" if test "$MSGMERGE" != ":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 $as_echo "$MSGMERGE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$localedir" || localedir='${datadir}/locale' test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= ac_config_commands="$ac_config_commands po-directories" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5 $as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; } if ${gt_cv_func_CFPreferencesCopyAppValue+:} false; then : $as_echo_n "(cached) " >&6 else gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { CFPreferencesCopyAppValue(NULL, NULL) ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_CFPreferencesCopyAppValue=yes else gt_cv_func_CFPreferencesCopyAppValue=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$gt_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5 $as_echo "$gt_cv_func_CFPreferencesCopyAppValue" >&6; } if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then $as_echo "#define HAVE_CFPREFERENCESCOPYAPPVALUE 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyCurrent" >&5 $as_echo_n "checking for CFLocaleCopyCurrent... " >&6; } if ${gt_cv_func_CFLocaleCopyCurrent+:} false; then : $as_echo_n "(cached) " >&6 else gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { CFLocaleCopyCurrent(); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_CFLocaleCopyCurrent=yes else gt_cv_func_CFLocaleCopyCurrent=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$gt_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFLocaleCopyCurrent" >&5 $as_echo "$gt_cv_func_CFLocaleCopyCurrent" >&6; } if test $gt_cv_func_CFLocaleCopyCurrent = yes; then $as_echo "#define HAVE_CFLOCALECOPYCURRENT 1" >>confdefs.h fi INTL_MACOSX_LIBS= if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" fi LIBINTL= LTLIBINTL= POSUB= case " $gt_needs " in *" need-formatstring-macros "*) gt_api_version=3 ;; *" need-ngettext "*) gt_api_version=2 ;; *) gt_api_version=1 ;; esac gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" if test "$USE_NLS" = "yes"; then gt_use_preinstalled_gnugettext=no if test $gt_api_version -ge 3; then gt_revision_test_code=' #ifndef __GNU_GETTEXT_SUPPORTED_REVISION #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) #endif typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; ' else gt_revision_test_code= fi if test $gt_api_version -ge 2; then gt_expression_test_code=' + * ngettext ("", "", 0)' else gt_expression_test_code= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5 $as_echo_n "checking for GNU gettext in libc... " >&6; } if eval \${$gt_func_gnugettext_libc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern int *_nl_domain_bindings; int main () { bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$gt_func_gnugettext_libc=yes" else eval "$gt_func_gnugettext_libc=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$gt_func_gnugettext_libc { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then am_save_CPPFLAGS="$CPPFLAGS" for element in $INCICONV; do haveit= for x in $CPPFLAGS; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5 $as_echo_n "checking for iconv... " >&6; } if ${am_cv_func_iconv+:} false; then : $as_echo_n "(cached) " >&6 else am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_func_iconv=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test "$am_cv_func_iconv" != yes; then am_save_LIBS="$LIBS" LIBS="$LIBS $LIBICONV" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_lib_iconv=yes am_cv_func_iconv=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$am_save_LIBS" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5 $as_echo "$am_cv_func_iconv" >&6; } if test "$am_cv_func_iconv" = yes; then $as_echo "#define HAVE_ICONV 1" >>confdefs.h fi if test "$am_cv_lib_iconv" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5 $as_echo_n "checking how to link with libiconv... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5 $as_echo "$LIBICONV" >&6; } else CPPFLAGS="$am_save_CPPFLAGS" LIBICONV= LTLIBICONV= fi use_additional=yes acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" # Check whether --with-libintl-prefix was given. if test "${with_libintl_prefix+set}" = set; then : withval=$with_libintl_prefix; if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" fi fi fi LIBINTL= LTLIBINTL= INCINTL= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='intl ' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIBINTL="${LIBINTL}${LIBINTL:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$value" else : fi else found_dir= found_la= found_so= found_a= if test $use_additional = yes; then if test -n "$shlibext" \ && { test -f "$additional_libdir/lib$name.$shlibext" \ || { test "$shlibext" = dll \ && test -f "$additional_libdir/lib$name.dll.a"; }; }; then found_dir="$additional_libdir" if test -f "$additional_libdir/lib$name.$shlibext"; then found_so="$additional_libdir/lib$name.$shlibext" else found_so="$additional_libdir/lib$name.dll.a" fi if test -f "$additional_libdir/lib$name.la"; then found_la="$additional_libdir/lib$name.la" fi else if test -f "$additional_libdir/lib$name.$libext"; then found_dir="$additional_libdir" found_a="$additional_libdir/lib$name.$libext" if test -f "$additional_libdir/lib$name.la"; then found_la="$additional_libdir/lib$name.la" fi fi fi fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` if test -n "$shlibext" \ && { test -f "$dir/lib$name.$shlibext" \ || { test "$shlibext" = dll \ && test -f "$dir/lib$name.dll.a"; }; }; then found_dir="$dir" if test -f "$dir/lib$name.$shlibext"; then found_so="$dir/lib$name.$shlibext" else found_so="$dir/lib$name.dll.a" fi if test -f "$dir/lib$name.la"; then found_la="$dir/lib$name.la" fi else if test -f "$dir/lib$name.$libext"; then found_dir="$dir" found_a="$dir/lib$name.$libext" if test -f "$dir/lib$name.la"; then found_la="$dir/lib$name.la" fi fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/$acl_libdirstem"; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" else haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi if test "$hardcode_direct" = yes; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" else if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else haveit= for x in $LDFLAGS $LIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir" fi if test "$hardcode_minus_L" != no; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" else LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_a" else LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir -l$name" fi fi additional_includedir= case "$found_dir" in */$acl_libdirstem | */$acl_libdirstem/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INCINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then INCINTL="${INCINTL}${INCINTL:+ }-I$additional_includedir" fi fi fi fi fi if test -n "$found_la"; then save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" for dep in $dependency_libs; do case "$dep" in -L*) additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then haveit= if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LIBINTL="${LIBINTL}${LIBINTL:+ }-L$additional_libdir" fi fi haveit= for x in $LDFLAGS $LTLIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$additional_libdir" fi fi fi fi ;; -R*) dir=`echo "X$dep" | sed -e 's/^X-R//'` if test "$enable_rpath" != no; then haveit= for x in $rpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $dir" fi haveit= for x in $ltrpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $dir" fi fi ;; -l*) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ;; *.la) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ;; *) LIBINTL="${LIBINTL}${LIBINTL:+ }$dep" LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$dep" ;; esac done fi else LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$hardcode_libdir_separator"; then alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir" done acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" else for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then for found_dir in $ltrpathdirs; do LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-R$found_dir" done fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5 $as_echo_n "checking for GNU gettext in libintl... " >&6; } if eval \${$gt_func_gnugettext_libintl+:} false; then : $as_echo_n "(cached) " >&6 else gt_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $INCINTL" gt_save_LIBS="$LIBS" LIBS="$LIBS $LIBINTL" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *); int main () { bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$gt_func_gnugettext_libintl=yes" else eval "$gt_func_gnugettext_libintl=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then LIBS="$LIBS $LIBICONV" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *); int main () { bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : LIBINTL="$LIBINTL $LIBICONV" LTLIBINTL="$LTLIBINTL $LTLIBICONV" eval "$gt_func_gnugettext_libintl=yes" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi CPPFLAGS="$gt_save_CPPFLAGS" LIBS="$gt_save_LIBS" fi eval ac_res=\$$gt_func_gnugettext_libintl { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ && test "$PACKAGE" != gettext-runtime \ && test "$PACKAGE" != gettext-tools; }; then gt_use_preinstalled_gnugettext=yes else LIBINTL= LTLIBINTL= INCINTL= fi if test -n "$INTL_MACOSX_LIBS"; then if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" fi fi if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then $as_echo "#define ENABLE_NLS 1" >>confdefs.h else USE_NLS=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use NLS" >&5 $as_echo_n "checking whether to use NLS... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 $as_echo "$USE_NLS" >&6; } if test "$USE_NLS" = "yes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking where the gettext function comes from" >&5 $as_echo_n "checking where the gettext function comes from... " >&6; } if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then gt_source="external libintl" else gt_source="libc" fi else gt_source="included intl directory" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_source" >&5 $as_echo "$gt_source" >&6; } fi if test "$USE_NLS" = "yes"; then if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libintl" >&5 $as_echo_n "checking how to link with libintl... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBINTL" >&5 $as_echo "$LIBINTL" >&6; } for element in $INCINTL; do haveit= for x in $CPPFLAGS; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" fi done fi $as_echo "#define HAVE_GETTEXT 1" >>confdefs.h $as_echo "#define HAVE_DCGETTEXT 1" >>confdefs.h fi POSUB=po fi INTLLIBS="$LIBINTL" # check for GNU LD { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if ${acl_cv_prog_gnu_ld+:} false; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU ld's only accept -v. case `$LD -v 2>&1 &5 $as_echo "$acl_cv_prog_gnu_ld" >&6; } with_gnu_ld=$acl_cv_prog_gnu_ld # check for glib >= 2.0.0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for glib" >&5 $as_echo_n "checking for glib... " >&6; } # Check whether --enable-glibtest was given. if test "${enable_glibtest+set}" = set; then : enableval=$enable_glibtest; else enable_glibtest=yes fi pkg_config_args=glib-2.0 for module in . do case "$module" in gmodule) pkg_config_args="$pkg_config_args gmodule-2.0" ;; gobject) pkg_config_args="$pkg_config_args gobject-2.0" ;; gthread) pkg_config_args="$pkg_config_args gthread-2.0" ;; esac done # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 $as_echo "$PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi no_glib="" if test x$PKG_CONFIG != xno ; then if $PKG_CONFIG --atleast-pkgconfig-version 0.7 ; then : else echo *** pkg-config too old; version 0.7 or better required. no_glib=yes PKG_CONFIG=no fi else no_glib=yes fi min_glib_version=2.0.0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GLIB - version >= $min_glib_version" >&5 $as_echo_n "checking for GLIB - version >= $min_glib_version... " >&6; } if test x$PKG_CONFIG != xno ; then ## don't try to run the test against uninstalled libtool libs if $PKG_CONFIG --uninstalled $pkg_config_args; then echo "Will use uninstalled version of GLib found in PKG_CONFIG_PATH" enable_glibtest=no fi if $PKG_CONFIG --atleast-version $min_glib_version $pkg_config_args; then : else no_glib=yes fi fi if test x"$no_glib" = x ; then GLIB_GENMARSHAL=`$PKG_CONFIG --variable=glib_genmarshal glib-2.0` GOBJECT_QUERY=`$PKG_CONFIG --variable=gobject_query glib-2.0` GLIB_MKENUMS=`$PKG_CONFIG --variable=glib_mkenums glib-2.0` GLIB_CFLAGS=`$PKG_CONFIG --cflags $pkg_config_args` GLIB_LIBS=`$PKG_CONFIG --libs $pkg_config_args` glib_config_major_version=`$PKG_CONFIG --modversion glib-2.0 | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'` glib_config_minor_version=`$PKG_CONFIG --modversion glib-2.0 | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'` glib_config_micro_version=`$PKG_CONFIG --modversion glib-2.0 | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'` if test "x$enable_glibtest" = "xyes" ; then ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $GLIB_CFLAGS" LIBS="$GLIB_LIBS $LIBS" rm -f conf.glibtest if test "$cross_compiling" = yes; then : echo $ac_n "cross compiling; assumed OK... $ac_c" else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include int main () { int major, minor, micro; char *tmp_version; system ("touch conf.glibtest"); /* HP/UX 9 (%@#!) writes to sscanf strings */ tmp_version = g_strdup("$min_glib_version"); if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { printf("%s, bad version string\n", "$min_glib_version"); exit(1); } if ((glib_major_version != $glib_config_major_version) || (glib_minor_version != $glib_config_minor_version) || (glib_micro_version != $glib_config_micro_version)) { printf("\n*** 'pkg-config --modversion glib-2.0' returned %d.%d.%d, but GLIB (%d.%d.%d)\n", $glib_config_major_version, $glib_config_minor_version, $glib_config_micro_version, glib_major_version, glib_minor_version, glib_micro_version); printf ("*** was found! If pkg-config was correct, then it is best\n"); printf ("*** to remove the old version of GLib. You may also be able to fix the error\n"); printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n"); printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n"); printf("*** required on your system.\n"); printf("*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n"); printf("*** to point to the correct configuration files\n"); } else if ((glib_major_version != GLIB_MAJOR_VERSION) || (glib_minor_version != GLIB_MINOR_VERSION) || (glib_micro_version != GLIB_MICRO_VERSION)) { printf("*** GLIB header files (version %d.%d.%d) do not match\n", GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION, GLIB_MICRO_VERSION); printf("*** library (version %d.%d.%d)\n", glib_major_version, glib_minor_version, glib_micro_version); } else { if ((glib_major_version > major) || ((glib_major_version == major) && (glib_minor_version > minor)) || ((glib_major_version == major) && (glib_minor_version == minor) && (glib_micro_version >= micro))) { return 0; } else { printf("\n*** An old version of GLIB (%d.%d.%d) was found.\n", glib_major_version, glib_minor_version, glib_micro_version); printf("*** You need a version of GLIB newer than %d.%d.%d. The latest version of\n", major, minor, micro); printf("*** GLIB is always available from ftp://ftp.gtk.org.\n"); printf("***\n"); printf("*** If you have already installed a sufficiently new version, this error\n"); printf("*** probably means that the wrong copy of the pkg-config shell script is\n"); printf("*** being found. The easiest way to fix this is to remove the old version\n"); printf("*** of GLIB, but you can also set the PKG_CONFIG environment to point to the\n"); printf("*** correct copy of pkg-config. (In this case, you will have to\n"); printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); printf("*** so that the correct libraries are found at run-time))\n"); } } return 1; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else no_glib=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi if test "x$no_glib" = x ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (version $glib_config_major_version.$glib_config_minor_version.$glib_config_micro_version)" >&5 $as_echo "yes (version $glib_config_major_version.$glib_config_minor_version.$glib_config_micro_version)" >&6; } without_glib=false else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if test "$PKG_CONFIG" = "no" ; then echo "*** A new enough version of pkg-config was not found." echo "*** See http://www.freedesktop.org/software/pkgconfig/" else if test -f conf.glibtest ; then : else echo "*** Could not run GLIB test program, checking why..." ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $GLIB_CFLAGS" LIBS="$LIBS $GLIB_LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { return ((glib_major_version) || (glib_minor_version) || (glib_micro_version)); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : echo "*** The test program compiled, but did not run. This usually means" echo "*** that the run-time linker is not finding GLIB or finding the wrong" echo "*** version of GLIB. If it is not finding GLIB, you'll need to set your" echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" echo "*** to the installed location Also, make sure you have run ldconfig if that" echo "*** is required on your system" echo "***" echo "*** If you have an old version installed, it is best to remove it, although" echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" else echo "*** The test program failed to compile or link. See the file config.log for the" echo "*** exact error that occured. This usually means GLIB is incorrectly installed." fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi GLIB_CFLAGS="" GLIB_LIBS="" GLIB_GENMARSHAL="" GOBJECT_QUERY="" GLIB_MKENUMS="" without_glib=true fi rm -f conf.glibtest { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether glib is disabled" >&5 $as_echo_n "checking whether glib is disabled... " >&6; } # Check whether --enable-glib was given. if test "${enable_glib+set}" = set; then : enableval=$enable_glib; case "$enableval" in no) { $as_echo "$as_me:${as_lineno-$LINENO}: result: disabled" >&5 $as_echo "disabled" >&6; } without_glib=true ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: allowed" >&5 $as_echo "allowed" >&6; } ;; esac else { $as_echo "$as_me:${as_lineno-$LINENO}: result: allowed" >&5 $as_echo "allowed" >&6; } fi if test x$without_glib != xtrue then if test $with_gnu_ld = yes then # We need both GNU LD and GLIB here! if true; then HAVE_GLIB_TRUE= HAVE_GLIB_FALSE='#' else HAVE_GLIB_TRUE='#' HAVE_GLIB_FALSE= fi $as_echo "#define HAVE_GLIB 1" >>confdefs.h else # We may have GLIB, but without GNU LD we must not use it! if false; then HAVE_GLIB_TRUE= HAVE_GLIB_FALSE='#' else HAVE_GLIB_TRUE='#' HAVE_GLIB_FALSE= fi $as_echo "#define HAVE_GLIB 0" >>confdefs.h fi else if false; then HAVE_GLIB_TRUE= HAVE_GLIB_FALSE='#' else HAVE_GLIB_TRUE='#' HAVE_GLIB_FALSE= fi $as_echo "#define HAVE_GLIB 0" >>confdefs.h fi # smf requires glib.h CFLAGS_OLD="$CFLAGS" CPPFLAGS_OLD="$CPPFLAGS" CFLAGS="$CFLAGS $GLIB_CFLAGS" CPPFLAGS="$CPPFLAGS $GLIB_CFLAGS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for smf_load_from_memory in -lsmf" >&5 $as_echo_n "checking for smf_load_from_memory in -lsmf... " >&6; } if ${ac_cv_lib_smf_smf_load_from_memory+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsmf $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char smf_load_from_memory (); int main () { return smf_load_from_memory (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_smf_smf_load_from_memory=yes else ac_cv_lib_smf_smf_load_from_memory=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_smf_smf_load_from_memory" >&5 $as_echo "$ac_cv_lib_smf_smf_load_from_memory" >&6; } if test "x$ac_cv_lib_smf_smf_load_from_memory" = xyes; then : for ac_header in smf.h do : ac_fn_c_check_header_mongrel "$LINENO" "smf.h" "ac_cv_header_smf_h" "$ac_includes_default" if test "x$ac_cv_header_smf_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SMF_H 1 _ACEOF if true; then HAVE_SMF_TRUE= HAVE_SMF_FALSE='#' else HAVE_SMF_TRUE='#' HAVE_SMF_FALSE= fi $as_echo "#define HAVE_MPEG2 1" >>confdefs.h else if false; then HAVE_SMF_TRUE= HAVE_SMF_FALSE='#' else HAVE_SMF_TRUE='#' HAVE_SMF_FALSE= fi fi done else if false; then HAVE_SMF_TRUE= HAVE_SMF_FALSE='#' else HAVE_SMF_TRUE='#' HAVE_SMF_FALSE= fi fi CFLAGS="$CFLAGS_OLD" CPPFLAGS="$CPPFLAGS_OLD" # check for gtk >= 2.6.0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gtk" >&5 $as_echo_n "checking for gtk... " >&6; } check_for_3=3.0.0 check_for_2=2.6.0 # Check whether --with-gtk_version was given. if test "${with_gtk_version+set}" = set; then : withval=$with_gtk_version; { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_gtk_version" >&5 $as_echo "$with_gtk_version" >&6; } case $with_gtk_version in *) if test "x${with_gtk_version:0:1}" == "x2" then check_for_3=false check_for_2=$with_gtk_version elif test "x${with_gtk_version:0:1}" == "x3" then check_for_3=$with_gtk_version check_for_2=false fi ;; esac else { $as_echo "$as_me:${as_lineno-$LINENO}: result: --with-gtk-version not specified" >&5 $as_echo "--with-gtk-version not specified" >&6; } fi without_gtk=false if test "x$check_for_3" != "xfalse" then # Check whether --enable-gtktest was given. if test "${enable_gtktest+set}" = set; then : enableval=$enable_gtktest; else enable_gtktest=yes fi pkg_config_args=gtk+-3.0 for module in . do case "$module" in gthread) pkg_config_args="$pkg_config_args gthread-2.0" ;; esac done no_gtk="" # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 $as_echo "$PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test x$PKG_CONFIG != xno ; then if $PKG_CONFIG --atleast-pkgconfig-version 0.7 ; then : else echo "*** pkg-config too old; version 0.7 or better required." no_gtk=yes PKG_CONFIG=no fi else no_gtk=yes fi min_gtk_version=$check_for_3 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK+ - version >= $min_gtk_version" >&5 $as_echo_n "checking for GTK+ - version >= $min_gtk_version... " >&6; } if test x$PKG_CONFIG != xno ; then ## don't try to run the test against uninstalled libtool libs if $PKG_CONFIG --uninstalled $pkg_config_args; then echo "Will use uninstalled version of GTK+ found in PKG_CONFIG_PATH" enable_gtktest=no fi if $PKG_CONFIG --atleast-version $min_gtk_version $pkg_config_args; then : else no_gtk=yes fi fi if test x"$no_gtk" = x ; then GTK_CFLAGS=`$PKG_CONFIG $pkg_config_args --cflags` GTK_LIBS=`$PKG_CONFIG $pkg_config_args --libs` gtk_config_major_version=`$PKG_CONFIG --modversion gtk+-3.0 | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'` gtk_config_minor_version=`$PKG_CONFIG --modversion gtk+-3.0 | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'` gtk_config_micro_version=`$PKG_CONFIG --modversion gtk+-3.0 | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'` if test "x$enable_gtktest" = "xyes" ; then ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $GTK_CFLAGS" LIBS="$GTK_LIBS $LIBS" rm -f conf.gtktest if test "$cross_compiling" = yes; then : echo $ac_n "cross compiling; assumed OK... $ac_c" else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include int main () { int major, minor, micro; char *tmp_version; fclose (fopen ("conf.gtktest", "w")); /* HP/UX 9 (%@#!) writes to sscanf strings */ tmp_version = g_strdup("$min_gtk_version"); if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { printf("%s, bad version string\n", "$min_gtk_version"); exit(1); } if ((gtk_major_version != $gtk_config_major_version) || (gtk_minor_version != $gtk_config_minor_version) || (gtk_micro_version != $gtk_config_micro_version)) { printf("\n*** 'pkg-config --modversion gtk+-3.0' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n", $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version, gtk_major_version, gtk_minor_version, gtk_micro_version); printf ("*** was found! If pkg-config was correct, then it is best\n"); printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n"); printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n"); printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n"); printf("*** required on your system.\n"); printf("*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n"); printf("*** to point to the correct configuration files\n"); } else if ((gtk_major_version != GTK_MAJOR_VERSION) || (gtk_minor_version != GTK_MINOR_VERSION) || (gtk_micro_version != GTK_MICRO_VERSION)) { printf("*** GTK+ header files (version %d.%d.%d) do not match\n", GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION); printf("*** library (version %d.%d.%d)\n", gtk_major_version, gtk_minor_version, gtk_micro_version); } else { if ((gtk_major_version > major) || ((gtk_major_version == major) && (gtk_minor_version > minor)) || ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro))) { return 0; } else { printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n", gtk_major_version, gtk_minor_version, gtk_micro_version); printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n", major, minor, micro); printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n"); printf("***\n"); printf("*** If you have already installed a sufficiently new version, this error\n"); printf("*** probably means that the wrong copy of the pkg-config shell script is\n"); printf("*** being found. The easiest way to fix this is to remove the old version\n"); printf("*** of GTK+, but you can also set the PKG_CONFIG environment to point to the\n"); printf("*** correct copy of pkg-config. (In this case, you will have to\n"); printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); printf("*** so that the correct libraries are found at run-time))\n"); } } return 1; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else no_gtk=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi if test "x$no_gtk" = x ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (version $gtk_config_major_version.$gtk_config_minor_version.$gtk_config_micro_version)" >&5 $as_echo "yes (version $gtk_config_major_version.$gtk_config_minor_version.$gtk_config_micro_version)" >&6; } without_gtk=false else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if test "$PKG_CONFIG" = "no" ; then echo "*** A new enough version of pkg-config was not found." echo "*** See http://pkgconfig.sourceforge.net" else if test -f conf.gtktest ; then : else echo "*** Could not run GTK+ test program, checking why..." ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $GTK_CFLAGS" LIBS="$LIBS $GTK_LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : echo "*** The test program compiled, but did not run. This usually means" echo "*** that the run-time linker is not finding GTK+ or finding the wrong" echo "*** version of GTK+. If it is not finding GTK+, you'll need to set your" echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" echo "*** to the installed location Also, make sure you have run ldconfig if that" echo "*** is required on your system" echo "***" echo "*** If you have an old version installed, it is best to remove it, although" echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" else echo "*** The test program failed to compile or link. See the file config.log for the" echo "*** exact error that occured. This usually means GTK+ is incorrectly installed." fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi GTK_CFLAGS="" GTK_LIBS="" without_gtk=true fi rm -f conf.gtktest fi if test "x$without_gtk" == "xtrue" -a "x$check_for_2" != "xfalse" then # Check whether --enable-gtktest was given. if test "${enable_gtktest+set}" = set; then : enableval=$enable_gtktest; else enable_gtktest=yes fi pkg_config_args=gtk+-2.0 for module in . do case "$module" in gthread) pkg_config_args="$pkg_config_args gthread-2.0" ;; esac done no_gtk="" # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no" ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 $as_echo "$PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test x$PKG_CONFIG != xno ; then if pkg-config --atleast-pkgconfig-version 0.7 ; then : else echo "*** pkg-config too old; version 0.7 or better required." no_gtk=yes PKG_CONFIG=no fi else no_gtk=yes fi min_gtk_version=$check_for_2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK+ - version >= $min_gtk_version" >&5 $as_echo_n "checking for GTK+ - version >= $min_gtk_version... " >&6; } if test x$PKG_CONFIG != xno ; then ## don't try to run the test against uninstalled libtool libs if $PKG_CONFIG --uninstalled $pkg_config_args; then echo "Will use uninstalled version of GTK+ found in PKG_CONFIG_PATH" enable_gtktest=no fi if $PKG_CONFIG --atleast-version $min_gtk_version $pkg_config_args; then : else no_gtk=yes fi fi if test x"$no_gtk" = x ; then GTK_CFLAGS=`$PKG_CONFIG $pkg_config_args --cflags` GTK_LIBS=`$PKG_CONFIG $pkg_config_args --libs` gtk_config_major_version=`$PKG_CONFIG --modversion gtk+-2.0 | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'` gtk_config_minor_version=`$PKG_CONFIG --modversion gtk+-2.0 | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'` gtk_config_micro_version=`$PKG_CONFIG --modversion gtk+-2.0 | \ sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'` if test "x$enable_gtktest" = "xyes" ; then ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $GTK_CFLAGS" LIBS="$GTK_LIBS $LIBS" rm -f conf.gtktest if test "$cross_compiling" = yes; then : echo $ac_n "cross compiling; assumed OK... $ac_c" else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include int main () { int major, minor, micro; char *tmp_version; system ("touch conf.gtktest"); /* HP/UX 9 (%@#!) writes to sscanf strings */ tmp_version = g_strdup("$min_gtk_version"); if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { printf("%s, bad version string\n", "$min_gtk_version"); exit(1); } if ((gtk_major_version != $gtk_config_major_version) || (gtk_minor_version != $gtk_config_minor_version) || (gtk_micro_version != $gtk_config_micro_version)) { printf("\n*** 'pkg-config --modversion gtk+-2.0' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n", $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version, gtk_major_version, gtk_minor_version, gtk_micro_version); printf ("*** was found! If pkg-config was correct, then it is best\n"); printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n"); printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n"); printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n"); printf("*** required on your system.\n"); printf("*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n"); printf("*** to point to the correct configuration files\n"); } else if ((gtk_major_version != GTK_MAJOR_VERSION) || (gtk_minor_version != GTK_MINOR_VERSION) || (gtk_micro_version != GTK_MICRO_VERSION)) { printf("*** GTK+ header files (version %d.%d.%d) do not match\n", GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION); printf("*** library (version %d.%d.%d)\n", gtk_major_version, gtk_minor_version, gtk_micro_version); } else { if ((gtk_major_version > major) || ((gtk_major_version == major) && (gtk_minor_version > minor)) || ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro))) { return 0; } else { printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n", gtk_major_version, gtk_minor_version, gtk_micro_version); printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n", major, minor, micro); printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n"); printf("***\n"); printf("*** If you have already installed a sufficiently new version, this error\n"); printf("*** probably means that the wrong copy of the pkg-config shell script is\n"); printf("*** being found. The easiest way to fix this is to remove the old version\n"); printf("*** of GTK+, but you can also set the PKG_CONFIG environment to point to the\n"); printf("*** correct copy of pkg-config. (In this case, you will have to\n"); printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); printf("*** so that the correct libraries are found at run-time))\n"); } } return 1; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else no_gtk=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi if test "x$no_gtk" = x ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes (version $gtk_config_major_version.$gtk_config_minor_version.$gtk_config_micro_version)" >&5 $as_echo "yes (version $gtk_config_major_version.$gtk_config_minor_version.$gtk_config_micro_version)" >&6; } without_gtk=false else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } if test "$PKG_CONFIG" = "no" ; then echo "*** A new enough version of pkg-config was not found." echo "*** See http://pkgconfig.sourceforge.net" else if test -f conf.gtktest ; then : else echo "*** Could not run GTK+ test program, checking why..." ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $GTK_CFLAGS" LIBS="$LIBS $GTK_LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : echo "*** The test program compiled, but did not run. This usually means" echo "*** that the run-time linker is not finding GTK+ or finding the wrong" echo "*** version of GTK+. If it is not finding GTK+, you'll need to set your" echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" echo "*** to the installed location Also, make sure you have run ldconfig if that" echo "*** is required on your system" echo "***" echo "*** If you have an old version installed, it is best to remove it, although" echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" else echo "*** The test program failed to compile or link. See the file config.log for the" echo "*** exact error that occured. This usually means GTK+ is incorrectly installed." fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi GTK_CFLAGS="" GTK_LIBS="" without_gtk=true fi rm -f conf.gtktest fi if test x$without_gtk != xtrue; then HAVE_GTK_TRUE= HAVE_GTK_FALSE='#' else HAVE_GTK_TRUE='#' HAVE_GTK_FALSE= fi if test $without_gtk != true then cat >>confdefs.h <<_ACEOF #define HAVE_GTK 1 _ACEOF else { $as_echo "$as_me:${as_lineno-$LINENO}: Cannot find GTK: Is pkg-config in path?" >&5 $as_echo "$as_me: Cannot find GTK: Is pkg-config in path?" >&6;} fi CFLAGS="$CFLAGS $GTK_CFLAGS" CPPFLAGS="$CPPFLAGS $GTK_CFLAGS" LIBS="$LIBS $GTK_LIBS" # Check whether --with-gstreamer was given. if test "${with_gstreamer+set}" = set; then : withval=$with_gstreamer; else with_gstreamer=yes fi have_gstreamer=no have_gstreamer_pbutils=no have_gstreamer_tag=no have_gstreamer_app=no if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 $as_echo "$PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_path_PKG_CONFIG"; then ac_pt_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $ac_pt_PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG if test -n "$ac_pt_PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 $as_echo "$ac_pt_PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_pt_PKG_CONFIG" = x; then PKG_CONFIG="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac PKG_CONFIG=$ac_pt_PKG_CONFIG fi else PKG_CONFIG="$ac_cv_path_PKG_CONFIG" fi fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.9.0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 $as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } PKG_CONFIG="" fi fi if test "x$with_gstreamer" = "xyes"; then : pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GSTREAMER" >&5 $as_echo_n "checking for GSTREAMER... " >&6; } if test -n "$PKG_CONFIG"; then if test -n "$GSTREAMER_CFLAGS"; then pkg_cv_GSTREAMER_CFLAGS="$GSTREAMER_CFLAGS" else if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gstreamer-1.0 >= 0.11.93\""; } >&5 ($PKG_CONFIG --exists --print-errors "gstreamer-1.0 >= 0.11.93") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GSTREAMER_CFLAGS=`$PKG_CONFIG --cflags "gstreamer-1.0 >= 0.11.93" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test -n "$PKG_CONFIG"; then if test -n "$GSTREAMER_LIBS"; then pkg_cv_GSTREAMER_LIBS="$GSTREAMER_LIBS" else if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gstreamer-1.0 >= 0.11.93\""; } >&5 ($PKG_CONFIG --exists --print-errors "gstreamer-1.0 >= 0.11.93") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GSTREAMER_LIBS=`$PKG_CONFIG --libs "gstreamer-1.0 >= 0.11.93" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test $pkg_failed = yes; then if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then GSTREAMER_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gstreamer-1.0 >= 0.11.93"` else GSTREAMER_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gstreamer-1.0 >= 0.11.93"` fi # Put the nasty error message in config.log where it belongs echo "$GSTREAMER_PKG_ERRORS" >&5 have_gstreamer=no elif test $pkg_failed = untried; then have_gstreamer=no else GSTREAMER_CFLAGS=$pkg_cv_GSTREAMER_CFLAGS GSTREAMER_LIBS=$pkg_cv_GSTREAMER_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } have_gstreamer=yes fi pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GSTREAMER_PBUTILS" >&5 $as_echo_n "checking for GSTREAMER_PBUTILS... " >&6; } if test -n "$PKG_CONFIG"; then if test -n "$GSTREAMER_PBUTILS_CFLAGS"; then pkg_cv_GSTREAMER_PBUTILS_CFLAGS="$GSTREAMER_PBUTILS_CFLAGS" else if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gstreamer-pbutils-1.0 >= 0.11.93\""; } >&5 ($PKG_CONFIG --exists --print-errors "gstreamer-pbutils-1.0 >= 0.11.93") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GSTREAMER_PBUTILS_CFLAGS=`$PKG_CONFIG --cflags "gstreamer-pbutils-1.0 >= 0.11.93" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test -n "$PKG_CONFIG"; then if test -n "$GSTREAMER_PBUTILS_LIBS"; then pkg_cv_GSTREAMER_PBUTILS_LIBS="$GSTREAMER_PBUTILS_LIBS" else if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gstreamer-pbutils-1.0 >= 0.11.93\""; } >&5 ($PKG_CONFIG --exists --print-errors "gstreamer-pbutils-1.0 >= 0.11.93") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GSTREAMER_PBUTILS_LIBS=`$PKG_CONFIG --libs "gstreamer-pbutils-1.0 >= 0.11.93" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test $pkg_failed = yes; then if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then GSTREAMER_PBUTILS_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gstreamer-pbutils-1.0 >= 0.11.93"` else GSTREAMER_PBUTILS_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gstreamer-pbutils-1.0 >= 0.11.93"` fi # Put the nasty error message in config.log where it belongs echo "$GSTREAMER_PBUTILS_PKG_ERRORS" >&5 have_gstreamer_pbutils=no elif test $pkg_failed = untried; then have_gstreamer_pbutils=no else GSTREAMER_PBUTILS_CFLAGS=$pkg_cv_GSTREAMER_PBUTILS_CFLAGS GSTREAMER_PBUTILS_LIBS=$pkg_cv_GSTREAMER_PBUTILS_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } have_gstreamer_pbutils=yes fi pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GSTREAMER_TAG" >&5 $as_echo_n "checking for GSTREAMER_TAG... " >&6; } if test -n "$PKG_CONFIG"; then if test -n "$GSTREAMER_TAG_CFLAGS"; then pkg_cv_GSTREAMER_TAG_CFLAGS="$GSTREAMER_TAG_CFLAGS" else if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gstreamer-tag-1.0 >= 0.11.93\""; } >&5 ($PKG_CONFIG --exists --print-errors "gstreamer-tag-1.0 >= 0.11.93") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GSTREAMER_TAG_CFLAGS=`$PKG_CONFIG --cflags "gstreamer-tag-1.0 >= 0.11.93" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test -n "$PKG_CONFIG"; then if test -n "$GSTREAMER_TAG_LIBS"; then pkg_cv_GSTREAMER_TAG_LIBS="$GSTREAMER_TAG_LIBS" else if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gstreamer-tag-1.0 >= 0.11.93\""; } >&5 ($PKG_CONFIG --exists --print-errors "gstreamer-tag-1.0 >= 0.11.93") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GSTREAMER_TAG_LIBS=`$PKG_CONFIG --libs "gstreamer-tag-1.0 >= 0.11.93" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test $pkg_failed = yes; then if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then GSTREAMER_TAG_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gstreamer-tag-1.0 >= 0.11.93"` else GSTREAMER_TAG_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gstreamer-tag-1.0 >= 0.11.93"` fi # Put the nasty error message in config.log where it belongs echo "$GSTREAMER_TAG_PKG_ERRORS" >&5 have_gstreamer_tag=no elif test $pkg_failed = untried; then have_gstreamer_tag=no else GSTREAMER_TAG_CFLAGS=$pkg_cv_GSTREAMER_TAG_CFLAGS GSTREAMER_TAG_LIBS=$pkg_cv_GSTREAMER_TAG_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } have_gstreamer_tag=yes fi pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GSTREAMER_APP" >&5 $as_echo_n "checking for GSTREAMER_APP... " >&6; } if test -n "$PKG_CONFIG"; then if test -n "$GSTREAMER_APP_CFLAGS"; then pkg_cv_GSTREAMER_APP_CFLAGS="$GSTREAMER_APP_CFLAGS" else if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gstreamer-app-1.0 >= 0.11.93\""; } >&5 ($PKG_CONFIG --exists --print-errors "gstreamer-app-1.0 >= 0.11.93") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GSTREAMER_APP_CFLAGS=`$PKG_CONFIG --cflags "gstreamer-app-1.0 >= 0.11.93" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test -n "$PKG_CONFIG"; then if test -n "$GSTREAMER_APP_LIBS"; then pkg_cv_GSTREAMER_APP_LIBS="$GSTREAMER_APP_LIBS" else if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gstreamer-app-1.0 >= 0.11.93\""; } >&5 ($PKG_CONFIG --exists --print-errors "gstreamer-app-1.0 >= 0.11.93") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GSTREAMER_APP_LIBS=`$PKG_CONFIG --libs "gstreamer-app-1.0 >= 0.11.93" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test $pkg_failed = yes; then if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then GSTREAMER_APP_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gstreamer-app-1.0 >= 0.11.93"` else GSTREAMER_APP_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gstreamer-app-1.0 >= 0.11.93"` fi # Put the nasty error message in config.log where it belongs echo "$GSTREAMER_APP_PKG_ERRORS" >&5 have_gstreamer_app=no elif test $pkg_failed = untried; then have_gstreamer_app=no else GSTREAMER_APP_CFLAGS=$pkg_cv_GSTREAMER_APP_CFLAGS GSTREAMER_APP_LIBS=$pkg_cv_GSTREAMER_APP_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } have_gstreamer_app=yes fi fi if test x$have_gstreamer = xyes -a x$have_gstreamer_pbutils = xyes -a x$have_gstreamer_tag = xyes -a x$have_gstreamer_app = xyes -a ! x$without_glib = xtrue; then HAVE_GSTREAMER_TRUE= HAVE_GSTREAMER_FALSE='#' else HAVE_GSTREAMER_TRUE='#' HAVE_GSTREAMER_FALSE= fi test_gsf=true have_gsf=false test_gsf_gnome=true have_gsf_gnome=false # Check whether --enable-gsf was given. if test "${enable_gsf+set}" = set; then : enableval=$enable_gsf; if test "x$enableval" = "xno"; then test_gsf=false fi fi # Check whether --enable-gsf-gnome was given. if test "${enable_gsf_gnome+set}" = set; then : enableval=$enable_gsf_gnome; if test "x$enableval" = "xno"; then test_gsf_gnome=false fi fi if test "x$test_gsf" = "xtrue" ; then pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GSF" >&5 $as_echo_n "checking for GSF... " >&6; } if test -n "$PKG_CONFIG"; then if test -n "$GSF_CFLAGS"; then pkg_cv_GSF_CFLAGS="$GSF_CFLAGS" else if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libgsf-1 >= 1.10\""; } >&5 ($PKG_CONFIG --exists --print-errors "libgsf-1 >= 1.10") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GSF_CFLAGS=`$PKG_CONFIG --cflags "libgsf-1 >= 1.10" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test -n "$PKG_CONFIG"; then if test -n "$GSF_LIBS"; then pkg_cv_GSF_LIBS="$GSF_LIBS" else if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libgsf-1 >= 1.10\""; } >&5 ($PKG_CONFIG --exists --print-errors "libgsf-1 >= 1.10") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GSF_LIBS=`$PKG_CONFIG --libs "libgsf-1 >= 1.10" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test $pkg_failed = yes; then if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then GSF_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libgsf-1 >= 1.10"` else GSF_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libgsf-1 >= 1.10"` fi # Put the nasty error message in config.log where it belongs echo "$GSF_PKG_ERRORS" >&5 have_gsf=false elif test $pkg_failed = untried; then have_gsf=false else GSF_CFLAGS=$pkg_cv_GSF_CFLAGS GSF_LIBS=$pkg_cv_GSF_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } have_gsf=true GSF_CFLAGS="$GSF_CFLAGS -DHAVE_GSF" fi fi if test "x$have_gsf" = "xtrue" -a "x$test_gsf_gnome" = "xtrue" ; then pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GSF_GNOME" >&5 $as_echo_n "checking for GSF_GNOME... " >&6; } if test -n "$PKG_CONFIG"; then if test -n "$GSF_GNOME_CFLAGS"; then pkg_cv_GSF_GNOME_CFLAGS="$GSF_GNOME_CFLAGS" else if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libgsf-gnome-1 >= 1.10\""; } >&5 ($PKG_CONFIG --exists --print-errors "libgsf-gnome-1 >= 1.10") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GSF_GNOME_CFLAGS=`$PKG_CONFIG --cflags "libgsf-gnome-1 >= 1.10" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test -n "$PKG_CONFIG"; then if test -n "$GSF_GNOME_LIBS"; then pkg_cv_GSF_GNOME_LIBS="$GSF_GNOME_LIBS" else if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libgsf-gnome-1 >= 1.10\""; } >&5 ($PKG_CONFIG --exists --print-errors "libgsf-gnome-1 >= 1.10") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_GSF_GNOME_LIBS=`$PKG_CONFIG --libs "libgsf-gnome-1 >= 1.10" 2>/dev/null` else pkg_failed=yes fi fi else pkg_failed=untried fi if test $pkg_failed = yes; then if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then GSF_GNOME_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libgsf-gnome-1 >= 1.10"` else GSF_GNOME_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libgsf-gnome-1 >= 1.10"` fi # Put the nasty error message in config.log where it belongs echo "$GSF_GNOME_PKG_ERRORS" >&5 have_gsf_gnome=false elif test $pkg_failed = untried; then have_gsf_gnome=false else GSF_GNOME_CFLAGS=$pkg_cv_GSF_GNOME_CFLAGS GSF_GNOME_LIBS=$pkg_cv_GSF_GNOME_LIBS { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } have_gsf_gnome=true GSF_GNOME_CFLAGS="$GSF_GNOME_CFLAGS -DHAVE_GSF_GNOME" fi fi if test "x$have_gsf" = "xtrue"; then WITH_GSF_TRUE= WITH_GSF_FALSE='#' else WITH_GSF_TRUE='#' WITH_GSF_FALSE= fi if test "x$have_gsf_gnome" = "xtrue"; then WITH_GSF_GNOME_TRUE= WITH_GSF_GNOME_FALSE='#' else WITH_GSF_GNOME_TRUE='#' WITH_GSF_GNOME_FALSE= fi if test "x$have_gsf_gnome" = "xtrue" ; then abi_gsf_message="yes, with GNOME support" $as_echo "#define HAVE_GSF 1" >>confdefs.h else if test "x$have_gsf" = "xtrue" ; then abi_gsf_message="yes, without GNOME support" $as_echo "#define HAVE_GSF 1" >>confdefs.h else abi_gsf_message="no" $as_echo "#define HAVE_GSF 0" >>confdefs.h fi fi if test "x$have_gsf" = "xtrue"; then HAVE_GSF_TRUE= HAVE_GSF_FALSE='#' else HAVE_GSF_TRUE='#' HAVE_GSF_FALSE= fi # produce new line echo "" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gsf_init in -lgsf-1" >&5 $as_echo_n "checking for gsf_init in -lgsf-1... " >&6; } if ${ac_cv_lib_gsf_1_gsf_init+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lgsf-1 $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char gsf_init (); int main () { return gsf_init (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_gsf_1_gsf_init=yes else ac_cv_lib_gsf_1_gsf_init=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gsf_1_gsf_init" >&5 $as_echo "$ac_cv_lib_gsf_1_gsf_init" >&6; } if test "x$ac_cv_lib_gsf_1_gsf_init" = xyes; then : $as_echo "#define HAVE_GSF_INIT 1" >>confdefs.h fi # Extract the first word of "zzuf", so it can be a program name with args. set dummy zzuf; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_HAVE_ZZUF+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$HAVE_ZZUF"; then ac_cv_prog_HAVE_ZZUF="$HAVE_ZZUF" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_HAVE_ZZUF="1" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_HAVE_ZZUF" && ac_cv_prog_HAVE_ZZUF="0" fi fi HAVE_ZZUF=$ac_cv_prog_HAVE_ZZUF if test -n "$HAVE_ZZUF"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HAVE_ZZUF" >&5 $as_echo "$HAVE_ZZUF" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test 0 != $HAVE_ZZUF; then HAVE_ZZUF_TRUE= HAVE_ZZUF_FALSE='#' else HAVE_ZZUF_TRUE='#' HAVE_ZZUF_FALSE= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable the FFmpeg thumbnail extractor" >&5 $as_echo_n "checking whether to enable the FFmpeg thumbnail extractor... " >&6; } new_ffmpeg=0 # Check whether --enable-ffmpeg was given. if test "${enable_ffmpeg+set}" = set; then : enableval=$enable_ffmpeg; case "$enableval" in no) { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } ffmpeg_enabled=0 ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } ffmpeg_enabled=1 ;; esac else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } ffmpeg_enabled=1 fi if test x$ffmpeg_enabled = x1 then ffmpeg_enabled=0 new_ffmpeg=0 for ac_header in libavutil/avutil.h libavformat/avformat.h libavcodec/avcodec.h libavutil/frame.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF for ac_header in libavresample/avresample.h do : ac_fn_c_check_header_mongrel "$LINENO" "libavresample/avresample.h" "ac_cv_header_libavresample_avresample_h" "$ac_includes_default" if test "x$ac_cv_header_libavresample_avresample_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBAVRESAMPLE_AVRESAMPLE_H 1 _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking for av_audio_fifo_alloc in -lavutil" >&5 $as_echo_n "checking for av_audio_fifo_alloc in -lavutil... " >&6; } if ${ac_cv_lib_avutil_av_audio_fifo_alloc+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lavutil $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char av_audio_fifo_alloc (); int main () { return av_audio_fifo_alloc (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_avutil_av_audio_fifo_alloc=yes else ac_cv_lib_avutil_av_audio_fifo_alloc=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_avutil_av_audio_fifo_alloc" >&5 $as_echo "$ac_cv_lib_avutil_av_audio_fifo_alloc" >&6; } if test "x$ac_cv_lib_avutil_av_audio_fifo_alloc" = xyes; then : new_ffmpeg=1 fi fi done fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sws_getContext in -lswscale" >&5 $as_echo_n "checking for sws_getContext in -lswscale... " >&6; } if ${ac_cv_lib_swscale_sws_getContext+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lswscale $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char sws_getContext (); int main () { return sws_getContext (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_swscale_sws_getContext=yes else ac_cv_lib_swscale_sws_getContext=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_swscale_sws_getContext" >&5 $as_echo "$ac_cv_lib_swscale_sws_getContext" >&6; } if test "x$ac_cv_lib_swscale_sws_getContext" = xyes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for avcodec_alloc_context3 in -lavcodec" >&5 $as_echo_n "checking for avcodec_alloc_context3 in -lavcodec... " >&6; } if ${ac_cv_lib_avcodec_avcodec_alloc_context3+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lavcodec $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char avcodec_alloc_context3 (); int main () { return avcodec_alloc_context3 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_avcodec_avcodec_alloc_context3=yes else ac_cv_lib_avcodec_avcodec_alloc_context3=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_avcodec_avcodec_alloc_context3" >&5 $as_echo "$ac_cv_lib_avcodec_avcodec_alloc_context3" >&6; } if test "x$ac_cv_lib_avcodec_avcodec_alloc_context3" = xyes; then : ffmpeg_enabled=1 fi fi for ac_header in libavutil/avutil.h ffmpeg/avutil.h libavformat/avformat.h ffmpeg/avformat.h libavcodec/avcodec.h ffmpeg/avcodec.h libswscale/swscale.h ffmpeg/swscale.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done fi if test x$ffmpeg_enabled != x0; then HAVE_FFMPEG_TRUE= HAVE_FFMPEG_FALSE='#' else HAVE_FFMPEG_TRUE='#' HAVE_FFMPEG_FALSE= fi if test x$new_ffmpeg != x0; then HAVE_FFMPEG_NEW_TRUE= HAVE_FFMPEG_NEW_FALSE='#' else HAVE_FFMPEG_NEW_TRUE='#' HAVE_FFMPEG_NEW_FALSE= fi LE_INTLINCL="" LE_LIBINTL="$LTLIBINTL" # Check whether --enable-framework was given. if test "${enable_framework+set}" = set; then : enableval=$enable_framework; enable_framework_build=$enableval fi if test x$enable_framework_build = xyes; then WANT_FRAMEWORK_TRUE= WANT_FRAMEWORK_FALSE='#' else WANT_FRAMEWORK_TRUE='#' WANT_FRAMEWORK_FALSE= fi if test x$enable_framework_build = xyes then $as_echo "#define FRAMEWORK_BUILD 1" >>confdefs.h LE_INTLINCL='-I$(top_srcdir)/src/intlemu' LE_LIBINTL='$(top_builddir)/src/intlemu/libintlemu.la -framework CoreFoundation' for element in $LE_INTLINCL; do haveit= for x in $CPPFLAGS; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" fi done fi LE_LIB_LDFLAGS="-export-dynamic -no-undefined" LE_PLUGIN_LDFLAGS="-export-dynamic -avoid-version -module -no-undefined" # TODO insert a proper check here { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -export-symbols-regex works" >&5 $as_echo_n "checking whether -export-symbols-regex works... " >&6; } if ${gn_cv_export_symbols_regex_works+:} false; then : $as_echo_n "(cached) " >&6 else case "$host_os" in mingw*) gn_cv_export_symbols_regex_works=no;; *) gn_cv_export_symbols_regex_works=yes;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gn_cv_export_symbols_regex_works" >&5 $as_echo "$gn_cv_export_symbols_regex_works" >&6; } if test "x$gn_cv_export_symbols_regex_works" = "xyes" then LE_LIB_LDFLAGS="$LE_LIB_LDFLAGS -export-symbols-regex \"(EXTRACTOR|pl)_[a-zA-Z0-9_]*\"" LE_PLUGIN_LDFLAGS="$LE_PLUGIN_LDFLAGS -export-symbols-regex \"(EXTRACTOR|pl)_[a-zA-Z0-9_]*_.......\"" fi # restore LIBS LIBS=$LIBSOLD PACKAGE_VERSION_NOALPHA=`echo $PACKAGE_VERSION | sed "s/[A-Za-z]*//g;"` # gcov compilation { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to compile with support for code coverage analysis" >&5 $as_echo_n "checking whether to compile with support for code coverage analysis... " >&6; } # Check whether --enable-coverage was given. if test "${enable_coverage+set}" = set; then : enableval=$enable_coverage; use_gcov=${enableval} else use_gcov=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_gcov" >&5 $as_echo "$use_gcov" >&6; } if test "x$use_gcov" = "xyes"; then USE_COVERAGE_TRUE= USE_COVERAGE_FALSE='#' else USE_COVERAGE_TRUE='#' USE_COVERAGE_FALSE= fi ac_config_files="$ac_config_files Makefile po/Makefile.in m4/Makefile contrib/macosx/Info.plist contrib/macosx/Pkg-Info.plist doc/Makefile src/Makefile src/include/Makefile src/intlemu/Makefile src/common/Makefile src/main/Makefile src/plugins/Makefile" # we need the expanded forms... test "x$prefix" = xNONE && prefix=$ac_default_prefix test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' { $as_echo "$as_me:${as_lineno-$LINENO}: checking our pkgconfig libname" >&5 $as_echo_n "checking our pkgconfig libname... " >&6; } test ".$ax_create_pkgconfig_libname" != "." || \ ax_create_pkgconfig_libname="`basename libextractor.pc .pc`" test ".$ax_create_pkgconfig_libname" != "." || \ ax_create_pkgconfig_libname="$PACKAGE" ax_create_pkgconfig_libname=`eval echo "$ax_create_pkgconfig_libname"` ax_create_pkgconfig_libname=`eval echo "$ax_create_pkgconfig_libname"` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_create_pkgconfig_libname" >&5 $as_echo "$ax_create_pkgconfig_libname" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking our pkgconfig version" >&5 $as_echo_n "checking our pkgconfig version... " >&6; } test ".$ax_create_pkgconfig_version" != "." || \ ax_create_pkgconfig_version="${PACKAGE_VERSION}" test ".$ax_create_pkgconfig_version" != "." || \ ax_create_pkgconfig_version="$VERSION" ax_create_pkgconfig_version=`eval echo "$ax_create_pkgconfig_version"` ax_create_pkgconfig_version=`eval echo "$ax_create_pkgconfig_version"` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_create_pkgconfig_version" >&5 $as_echo "$ax_create_pkgconfig_version" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking our pkgconfig_libdir" >&5 $as_echo_n "checking our pkgconfig_libdir... " >&6; } test ".$pkgconfig_libdir" = "." && \ pkgconfig_libdir='${libdir}/pkgconfig' ax_create_pkgconfig_libdir=`eval echo "$pkgconfig_libdir"` ax_create_pkgconfig_libdir=`eval echo "$ax_create_pkgconfig_libdir"` ax_create_pkgconfig_libdir=`eval echo "$ax_create_pkgconfig_libdir"` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pkgconfig_libdir" >&5 $as_echo "$pkgconfig_libdir" >&6; } test "$pkgconfig_libdir" != "$ax_create_pkgconfig_libdir" && ( { $as_echo "$as_me:${as_lineno-$LINENO}: result: expanded our pkgconfig_libdir... $ax_create_pkgconfig_libdir" >&5 $as_echo "expanded our pkgconfig_libdir... $ax_create_pkgconfig_libdir" >&6; }) { $as_echo "$as_me:${as_lineno-$LINENO}: checking our pkgconfig_libfile" >&5 $as_echo_n "checking our pkgconfig_libfile... " >&6; } test ".$pkgconfig_libfile" != "." || \ pkgconfig_libfile="`basename libextractor.pc`" ax_create_pkgconfig_libfile=`eval echo "$pkgconfig_libfile"` ax_create_pkgconfig_libfile=`eval echo "$ax_create_pkgconfig_libfile"` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pkgconfig_libfile" >&5 $as_echo "$pkgconfig_libfile" >&6; } test "$pkgconfig_libfile" != "$ax_create_pkgconfig_libfile" && ( { $as_echo "$as_me:${as_lineno-$LINENO}: result: expanded our pkgconfig_libfile... $ax_create_pkgconfig_libfile" >&5 $as_echo "expanded our pkgconfig_libfile... $ax_create_pkgconfig_libfile" >&6; }) { $as_echo "$as_me:${as_lineno-$LINENO}: checking our package / suffix" >&5 $as_echo_n "checking our package / suffix... " >&6; } ax_create_pkgconfig_suffix="$program_suffix" test ".$ax_create_pkgconfig_suffix" != .NONE || ax_create_pkgconfig_suffix="" { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${PACKAGE_NAME} / ${ax_create_pkgconfig_suffix}" >&5 $as_echo "${PACKAGE_NAME} / ${ax_create_pkgconfig_suffix}" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking our pkgconfig description" >&5 $as_echo_n "checking our pkgconfig description... " >&6; } ax_create_pkgconfig_description="Metadata extraction library" test ".$ax_create_pkgconfig_description" != "." || \ ax_create_pkgconfig_description="$ax_create_pkgconfig_libname Library" ax_create_pkgconfig_description=`eval echo "$ax_create_pkgconfig_description"` ax_create_pkgconfig_description=`eval echo "$ax_create_pkgconfig_description"` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_create_pkgconfig_description" >&5 $as_echo "$ax_create_pkgconfig_description" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking our pkgconfig requires" >&5 $as_echo_n "checking our pkgconfig requires... " >&6; } ax_create_pkgconfig_requires="$PACKAGE_REQUIRES" ax_create_pkgconfig_requires=`eval echo "$ax_create_pkgconfig_requires"` ax_create_pkgconfig_requires=`eval echo "$ax_create_pkgconfig_requires"` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_create_pkgconfig_requires" >&5 $as_echo "$ax_create_pkgconfig_requires" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking our pkgconfig ext libs" >&5 $as_echo_n "checking our pkgconfig ext libs... " >&6; } ax_create_pkgconfig_pkglibs="$PACKAGE_LIBS" test ".$ax_create_pkgconfig_pkglibs" != "." || ax_create_pkgconfig_pkglibs="-l$ax_create_pkgconfig_libname" ax_create_pkgconfig_libs="-lextractor" ax_create_pkgconfig_libs=`eval echo "$ax_create_pkgconfig_libs"` ax_create_pkgconfig_libs=`eval echo "$ax_create_pkgconfig_libs"` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_create_pkgconfig_libs" >&5 $as_echo "$ax_create_pkgconfig_libs" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking our pkgconfig cppflags" >&5 $as_echo_n "checking our pkgconfig cppflags... " >&6; } ax_create_pkgconfig_cppflags="$CPPFLAGS $PACKAGE_CFLAGS" ax_create_pkgconfig_cppflags=`eval echo "$ax_create_pkgconfig_cppflags"` ax_create_pkgconfig_cppflags=`eval echo "$ax_create_pkgconfig_cppflags"` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_create_pkgconfig_cppflags" >&5 $as_echo "$ax_create_pkgconfig_cppflags" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking our pkgconfig ldflags" >&5 $as_echo_n "checking our pkgconfig ldflags... " >&6; } ax_create_pkgconfig_ldflags="$LDFLAGS $PACKAGE_LDFLAGS" ax_create_pkgconfig_ldflags=`eval echo "$ax_create_pkgconfig_ldflags"` ax_create_pkgconfig_ldflags=`eval echo "$ax_create_pkgconfig_ldflags"` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_create_pkgconfig_ldflags" >&5 $as_echo "$ax_create_pkgconfig_ldflags" >&6; } test ".$ax_create_pkgconfig_generate" != "." || \ ax_create_pkgconfig_generate="libextractor.pc" ax_create_pkgconfig_generate=`eval echo "$ax_create_pkgconfig_generate"` ax_create_pkgconfig_generate=`eval echo "$ax_create_pkgconfig_generate"` test "$pkgconfig_libfile" != "$ax_create_pkgconfig_generate" && ( { $as_echo "$as_me:${as_lineno-$LINENO}: result: generate the pkgconfig later... $ax_create_pkgconfig_generate" >&5 $as_echo "generate the pkgconfig later... $ax_create_pkgconfig_generate" >&6; }) if test ".$ax_create_pkgconfig_src_libdir" = "." ; then ax_create_pkgconfig_src_libdir=`pwd` ax_create_pkgconfig_src_libdir=`$as_dirname -- "$ax_create_pkgconfig_src_libdir/$ax_create_pkgconfig_generate" || $as_expr X"$ax_create_pkgconfig_src_libdir/$ax_create_pkgconfig_generate" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ax_create_pkgconfig_src_libdir/$ax_create_pkgconfig_generate" : 'X\(//\)[^/]' \| \ X"$ax_create_pkgconfig_src_libdir/$ax_create_pkgconfig_generate" : 'X\(//\)$' \| \ X"$ax_create_pkgconfig_src_libdir/$ax_create_pkgconfig_generate" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ax_create_pkgconfig_src_libdir/$ax_create_pkgconfig_generate" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test ! -d $ax_create_pkgconfig_src_libdir/src || \ ax_create_pkgconfig_src_libdir="$ax_create_pkgconfig_src_libdir/src" case ".$objdir" in *libs) ax_create_pkgconfig_src_libdir="$ax_create_pkgconfig_src_libdir/$objdir" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: noninstalled pkgconfig -L $ax_create_pkgconfig_src_libdir" >&5 $as_echo "noninstalled pkgconfig -L $ax_create_pkgconfig_src_libdir" >&6; } fi if test ".$ax_create_pkgconfig_src_headers" = "." ; then ax_create_pkgconfig_src_headers=`pwd` v="$ac_top_srcdir" ; test ".$v" != "." || v="$ax_spec_dir" test ".$v" != "." || v="$srcdir" case "$v" in /*) PKG_CONFIG_src_headers="" ;; esac ax_create_pkgconfig_src_headers=`$as_dirname -- "$ax_create_pkgconfig_src_headers/$v/x" || $as_expr X"$ax_create_pkgconfig_src_headers/$v/x" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ax_create_pkgconfig_src_headers/$v/x" : 'X\(//\)[^/]' \| \ X"$ax_create_pkgconfig_src_headers/$v/x" : 'X\(//\)$' \| \ X"$ax_create_pkgconfig_src_headers/$v/x" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ax_create_pkgconfig_src_headers/$v/x" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test ! -d $ax_create_pkgconfig_src_headers/include || \ ax_create_pkgconfig_src_headers="$ax_create_pkgconfig_src_headers/include" { $as_echo "$as_me:${as_lineno-$LINENO}: result: noninstalled pkgconfig -I $ax_create_pkgconfig_src_headers" >&5 $as_echo "noninstalled pkgconfig -I $ax_create_pkgconfig_src_headers" >&6; } fi ac_config_commands="$ac_config_commands $ax_create_pkgconfig_generate" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error $? "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_GNU_LD_TRUE}" && test -z "${HAVE_GNU_LD_FALSE}"; then as_fn_error $? "conditional \"HAVE_GNU_LD\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${SOMEBSD_TRUE}" && test -z "${SOMEBSD_FALSE}"; then as_fn_error $? "conditional \"SOMEBSD\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${WINDOWS_TRUE}" && test -z "${WINDOWS_FALSE}"; then as_fn_error $? "conditional \"WINDOWS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_GNU_LD_TRUE}" && test -z "${HAVE_GNU_LD_FALSE}"; then as_fn_error $? "conditional \"HAVE_GNU_LD\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${SOMEBSD_TRUE}" && test -z "${SOMEBSD_FALSE}"; then as_fn_error $? "conditional \"SOMEBSD\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${WINDOWS_TRUE}" && test -z "${WINDOWS_FALSE}"; then as_fn_error $? "conditional \"WINDOWS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_GNU_LD_TRUE}" && test -z "${HAVE_GNU_LD_FALSE}"; then as_fn_error $? "conditional \"HAVE_GNU_LD\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${SOMEBSD_TRUE}" && test -z "${SOMEBSD_FALSE}"; then as_fn_error $? "conditional \"SOMEBSD\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${WINDOWS_TRUE}" && test -z "${WINDOWS_FALSE}"; then as_fn_error $? "conditional \"WINDOWS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_GNU_LD_TRUE}" && test -z "${HAVE_GNU_LD_FALSE}"; then as_fn_error $? "conditional \"HAVE_GNU_LD\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${SOMEBSD_TRUE}" && test -z "${SOMEBSD_FALSE}"; then as_fn_error $? "conditional \"SOMEBSD\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${WINDOWS_TRUE}" && test -z "${WINDOWS_FALSE}"; then as_fn_error $? "conditional \"WINDOWS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_GNU_LD_TRUE}" && test -z "${HAVE_GNU_LD_FALSE}"; then as_fn_error $? "conditional \"HAVE_GNU_LD\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${SOMEBSD_TRUE}" && test -z "${SOMEBSD_FALSE}"; then as_fn_error $? "conditional \"SOMEBSD\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${WINDOWS_TRUE}" && test -z "${WINDOWS_FALSE}"; then as_fn_error $? "conditional \"WINDOWS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_GNU_LD_TRUE}" && test -z "${HAVE_GNU_LD_FALSE}"; then as_fn_error $? "conditional \"HAVE_GNU_LD\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${SOMEBSD_TRUE}" && test -z "${SOMEBSD_FALSE}"; then as_fn_error $? "conditional \"SOMEBSD\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${WINDOWS_TRUE}" && test -z "${WINDOWS_FALSE}"; then as_fn_error $? "conditional \"WINDOWS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${SOMEBSD_TRUE}" && test -z "${SOMEBSD_FALSE}"; then as_fn_error $? "conditional \"SOMEBSD\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_GNU_LD_TRUE}" && test -z "${HAVE_GNU_LD_FALSE}"; then as_fn_error $? "conditional \"HAVE_GNU_LD\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${WINDOWS_TRUE}" && test -z "${WINDOWS_FALSE}"; then as_fn_error $? "conditional \"WINDOWS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_GNU_LD_TRUE}" && test -z "${HAVE_GNU_LD_FALSE}"; then as_fn_error $? "conditional \"HAVE_GNU_LD\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${SOMEBSD_TRUE}" && test -z "${SOMEBSD_FALSE}"; then as_fn_error $? "conditional \"SOMEBSD\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${WINDOWS_TRUE}" && test -z "${WINDOWS_FALSE}"; then as_fn_error $? "conditional \"WINDOWS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_GNU_LD_TRUE}" && test -z "${HAVE_GNU_LD_FALSE}"; then as_fn_error $? "conditional \"HAVE_GNU_LD\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${SOMEBSD_TRUE}" && test -z "${SOMEBSD_FALSE}"; then as_fn_error $? "conditional \"SOMEBSD\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${WINDOWS_TRUE}" && test -z "${WINDOWS_FALSE}"; then as_fn_error $? "conditional \"WINDOWS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${CYGWIN_TRUE}" && test -z "${CYGWIN_FALSE}"; then as_fn_error $? "conditional \"CYGWIN\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${MINGW_TRUE}" && test -z "${MINGW_FALSE}"; then as_fn_error $? "conditional \"MINGW\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_CXX_TRUE}" && test -z "${HAVE_CXX_FALSE}"; then as_fn_error $? "conditional \"HAVE_CXX\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_VORBISFILE_TRUE}" && test -z "${HAVE_VORBISFILE_FALSE}"; then as_fn_error $? "conditional \"HAVE_VORBISFILE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_VORBISFILE_TRUE}" && test -z "${HAVE_VORBISFILE_FALSE}"; then as_fn_error $? "conditional \"HAVE_VORBISFILE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_VORBISFILE_TRUE}" && test -z "${HAVE_VORBISFILE_FALSE}"; then as_fn_error $? "conditional \"HAVE_VORBISFILE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_FLAC_TRUE}" && test -z "${HAVE_FLAC_FALSE}"; then as_fn_error $? "conditional \"HAVE_FLAC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_FLAC_TRUE}" && test -z "${HAVE_FLAC_FALSE}"; then as_fn_error $? "conditional \"HAVE_FLAC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_FLAC_TRUE}" && test -z "${HAVE_FLAC_FALSE}"; then as_fn_error $? "conditional \"HAVE_FLAC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_FLAC_TRUE}" && test -z "${HAVE_FLAC_FALSE}"; then as_fn_error $? "conditional \"HAVE_FLAC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${NEED_OGG_TRUE}" && test -z "${NEED_OGG_FALSE}"; then as_fn_error $? "conditional \"NEED_OGG\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${NEED_OGG_TRUE}" && test -z "${NEED_OGG_FALSE}"; then as_fn_error $? "conditional \"NEED_OGG\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${NEED_VORBIS_TRUE}" && test -z "${NEED_VORBIS_FALSE}"; then as_fn_error $? "conditional \"NEED_VORBIS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${NEED_VORBIS_TRUE}" && test -z "${NEED_VORBIS_FALSE}"; then as_fn_error $? "conditional \"NEED_VORBIS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_ZLIB_TRUE}" && test -z "${HAVE_ZLIB_FALSE}"; then as_fn_error $? "conditional \"HAVE_ZLIB\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_ZLIB_TRUE}" && test -z "${HAVE_ZLIB_FALSE}"; then as_fn_error $? "conditional \"HAVE_ZLIB\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_ZLIB_TRUE}" && test -z "${HAVE_ZLIB_FALSE}"; then as_fn_error $? "conditional \"HAVE_ZLIB\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_BZ2_TRUE}" && test -z "${HAVE_BZ2_FALSE}"; then as_fn_error $? "conditional \"HAVE_BZ2\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_BZ2_TRUE}" && test -z "${HAVE_BZ2_FALSE}"; then as_fn_error $? "conditional \"HAVE_BZ2\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_BZ2_TRUE}" && test -z "${HAVE_BZ2_FALSE}"; then as_fn_error $? "conditional \"HAVE_BZ2\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_LIBRPM_TRUE}" && test -z "${HAVE_LIBRPM_FALSE}"; then as_fn_error $? "conditional \"HAVE_LIBRPM\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_LIBRPM_TRUE}" && test -z "${HAVE_LIBRPM_FALSE}"; then as_fn_error $? "conditional \"HAVE_LIBRPM\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_LIBRPM_TRUE}" && test -z "${HAVE_LIBRPM_FALSE}"; then as_fn_error $? "conditional \"HAVE_LIBRPM\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_MPEG2_TRUE}" && test -z "${HAVE_MPEG2_FALSE}"; then as_fn_error $? "conditional \"HAVE_MPEG2\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_MPEG2_TRUE}" && test -z "${HAVE_MPEG2_FALSE}"; then as_fn_error $? "conditional \"HAVE_MPEG2\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_MPEG2_TRUE}" && test -z "${HAVE_MPEG2_FALSE}"; then as_fn_error $? "conditional \"HAVE_MPEG2\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_MP4_TRUE}" && test -z "${HAVE_MP4_FALSE}"; then as_fn_error $? "conditional \"HAVE_MP4\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_MP4_TRUE}" && test -z "${HAVE_MP4_FALSE}"; then as_fn_error $? "conditional \"HAVE_MP4\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_MP4_TRUE}" && test -z "${HAVE_MP4_FALSE}"; then as_fn_error $? "conditional \"HAVE_MP4\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_JPEG_TRUE}" && test -z "${HAVE_JPEG_FALSE}"; then as_fn_error $? "conditional \"HAVE_JPEG\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_JPEG_TRUE}" && test -z "${HAVE_JPEG_FALSE}"; then as_fn_error $? "conditional \"HAVE_JPEG\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_JPEG_TRUE}" && test -z "${HAVE_JPEG_FALSE}"; then as_fn_error $? "conditional \"HAVE_JPEG\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_TIFF_TRUE}" && test -z "${HAVE_TIFF_FALSE}"; then as_fn_error $? "conditional \"HAVE_TIFF\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_TIFF_TRUE}" && test -z "${HAVE_TIFF_FALSE}"; then as_fn_error $? "conditional \"HAVE_TIFF\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_TIFF_TRUE}" && test -z "${HAVE_TIFF_FALSE}"; then as_fn_error $? "conditional \"HAVE_TIFF\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_ARCHIVE_TRUE}" && test -z "${HAVE_ARCHIVE_FALSE}"; then as_fn_error $? "conditional \"HAVE_ARCHIVE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_ARCHIVE_TRUE}" && test -z "${HAVE_ARCHIVE_FALSE}"; then as_fn_error $? "conditional \"HAVE_ARCHIVE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_ARCHIVE_TRUE}" && test -z "${HAVE_ARCHIVE_FALSE}"; then as_fn_error $? "conditional \"HAVE_ARCHIVE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_EXPERIMENTAL_TRUE}" && test -z "${HAVE_EXPERIMENTAL_FALSE}"; then as_fn_error $? "conditional \"HAVE_EXPERIMENTAL\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_EXIV2_TRUE}" && test -z "${HAVE_EXIV2_FALSE}"; then as_fn_error $? "conditional \"HAVE_EXIV2\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_EXIV2_TRUE}" && test -z "${HAVE_EXIV2_FALSE}"; then as_fn_error $? "conditional \"HAVE_EXIV2\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_GIF_TRUE}" && test -z "${HAVE_GIF_FALSE}"; then as_fn_error $? "conditional \"HAVE_GIF\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_GIF_TRUE}" && test -z "${HAVE_GIF_FALSE}"; then as_fn_error $? "conditional \"HAVE_GIF\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_GIF_TRUE}" && test -z "${HAVE_GIF_FALSE}"; then as_fn_error $? "conditional \"HAVE_GIF\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_MAGIC_TRUE}" && test -z "${HAVE_MAGIC_FALSE}"; then as_fn_error $? "conditional \"HAVE_MAGIC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_MAGIC_TRUE}" && test -z "${HAVE_MAGIC_FALSE}"; then as_fn_error $? "conditional \"HAVE_MAGIC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_MAGIC_TRUE}" && test -z "${HAVE_MAGIC_FALSE}"; then as_fn_error $? "conditional \"HAVE_MAGIC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_TIDY_TRUE}" && test -z "${HAVE_TIDY_FALSE}"; then as_fn_error $? "conditional \"HAVE_TIDY\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_TIDY_TRUE}" && test -z "${HAVE_TIDY_FALSE}"; then as_fn_error $? "conditional \"HAVE_TIDY\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${ENABLE_TEST_RUN_TRUE}" && test -z "${ENABLE_TEST_RUN_FALSE}"; then as_fn_error $? "conditional \"ENABLE_TEST_RUN\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_GLIB_TRUE}" && test -z "${HAVE_GLIB_FALSE}"; then as_fn_error $? "conditional \"HAVE_GLIB\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_GLIB_TRUE}" && test -z "${HAVE_GLIB_FALSE}"; then as_fn_error $? "conditional \"HAVE_GLIB\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_GLIB_TRUE}" && test -z "${HAVE_GLIB_FALSE}"; then as_fn_error $? "conditional \"HAVE_GLIB\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_SMF_TRUE}" && test -z "${HAVE_SMF_FALSE}"; then as_fn_error $? "conditional \"HAVE_SMF\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_SMF_TRUE}" && test -z "${HAVE_SMF_FALSE}"; then as_fn_error $? "conditional \"HAVE_SMF\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_SMF_TRUE}" && test -z "${HAVE_SMF_FALSE}"; then as_fn_error $? "conditional \"HAVE_SMF\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_GTK_TRUE}" && test -z "${HAVE_GTK_FALSE}"; then as_fn_error $? "conditional \"HAVE_GTK\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_GSTREAMER_TRUE}" && test -z "${HAVE_GSTREAMER_FALSE}"; then as_fn_error $? "conditional \"HAVE_GSTREAMER\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${WITH_GSF_TRUE}" && test -z "${WITH_GSF_FALSE}"; then as_fn_error $? "conditional \"WITH_GSF\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${WITH_GSF_GNOME_TRUE}" && test -z "${WITH_GSF_GNOME_FALSE}"; then as_fn_error $? "conditional \"WITH_GSF_GNOME\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_GSF_TRUE}" && test -z "${HAVE_GSF_FALSE}"; then as_fn_error $? "conditional \"HAVE_GSF\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_ZZUF_TRUE}" && test -z "${HAVE_ZZUF_FALSE}"; then as_fn_error $? "conditional \"HAVE_ZZUF\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_FFMPEG_TRUE}" && test -z "${HAVE_FFMPEG_FALSE}"; then as_fn_error $? "conditional \"HAVE_FFMPEG\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_FFMPEG_NEW_TRUE}" && test -z "${HAVE_FFMPEG_NEW_FALSE}"; then as_fn_error $? "conditional \"HAVE_FFMPEG_NEW\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${WANT_FRAMEWORK_TRUE}" && test -z "${WANT_FRAMEWORK_FALSE}"; then as_fn_error $? "conditional \"WANT_FRAMEWORK\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${USE_COVERAGE_TRUE}" && test -z "${USE_COVERAGE_FALSE}"; then as_fn_error $? "conditional \"USE_COVERAGE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by libextractor $as_me 1.3, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration commands: $config_commands Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ libextractor config.status 1.3 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header as_fn_error $? "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`' hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' compiler_lib_search_dirs='`$ECHO "$compiler_lib_search_dirs" | $SED "$delay_single_quote_subst"`' predep_objects='`$ECHO "$predep_objects" | $SED "$delay_single_quote_subst"`' postdep_objects='`$ECHO "$postdep_objects" | $SED "$delay_single_quote_subst"`' predeps='`$ECHO "$predeps" | $SED "$delay_single_quote_subst"`' postdeps='`$ECHO "$postdeps" | $SED "$delay_single_quote_subst"`' compiler_lib_search_path='`$ECHO "$compiler_lib_search_path" | $SED "$delay_single_quote_subst"`' LD_CXX='`$ECHO "$LD_CXX" | $SED "$delay_single_quote_subst"`' reload_flag_CXX='`$ECHO "$reload_flag_CXX" | $SED "$delay_single_quote_subst"`' reload_cmds_CXX='`$ECHO "$reload_cmds_CXX" | $SED "$delay_single_quote_subst"`' old_archive_cmds_CXX='`$ECHO "$old_archive_cmds_CXX" | $SED "$delay_single_quote_subst"`' compiler_CXX='`$ECHO "$compiler_CXX" | $SED "$delay_single_quote_subst"`' GCC_CXX='`$ECHO "$GCC_CXX" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "$lt_prog_compiler_no_builtin_flag_CXX" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_pic_CXX='`$ECHO "$lt_prog_compiler_pic_CXX" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_wl_CXX='`$ECHO "$lt_prog_compiler_wl_CXX" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_static_CXX='`$ECHO "$lt_prog_compiler_static_CXX" | $SED "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o_CXX='`$ECHO "$lt_cv_prog_compiler_c_o_CXX" | $SED "$delay_single_quote_subst"`' archive_cmds_need_lc_CXX='`$ECHO "$archive_cmds_need_lc_CXX" | $SED "$delay_single_quote_subst"`' enable_shared_with_static_runtimes_CXX='`$ECHO "$enable_shared_with_static_runtimes_CXX" | $SED "$delay_single_quote_subst"`' export_dynamic_flag_spec_CXX='`$ECHO "$export_dynamic_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' whole_archive_flag_spec_CXX='`$ECHO "$whole_archive_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' compiler_needs_object_CXX='`$ECHO "$compiler_needs_object_CXX" | $SED "$delay_single_quote_subst"`' old_archive_from_new_cmds_CXX='`$ECHO "$old_archive_from_new_cmds_CXX" | $SED "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds_CXX='`$ECHO "$old_archive_from_expsyms_cmds_CXX" | $SED "$delay_single_quote_subst"`' archive_cmds_CXX='`$ECHO "$archive_cmds_CXX" | $SED "$delay_single_quote_subst"`' archive_expsym_cmds_CXX='`$ECHO "$archive_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`' module_cmds_CXX='`$ECHO "$module_cmds_CXX" | $SED "$delay_single_quote_subst"`' module_expsym_cmds_CXX='`$ECHO "$module_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`' with_gnu_ld_CXX='`$ECHO "$with_gnu_ld_CXX" | $SED "$delay_single_quote_subst"`' allow_undefined_flag_CXX='`$ECHO "$allow_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`' no_undefined_flag_CXX='`$ECHO "$no_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_CXX='`$ECHO "$hardcode_libdir_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' hardcode_libdir_separator_CXX='`$ECHO "$hardcode_libdir_separator_CXX" | $SED "$delay_single_quote_subst"`' hardcode_direct_CXX='`$ECHO "$hardcode_direct_CXX" | $SED "$delay_single_quote_subst"`' hardcode_direct_absolute_CXX='`$ECHO "$hardcode_direct_absolute_CXX" | $SED "$delay_single_quote_subst"`' hardcode_minus_L_CXX='`$ECHO "$hardcode_minus_L_CXX" | $SED "$delay_single_quote_subst"`' hardcode_shlibpath_var_CXX='`$ECHO "$hardcode_shlibpath_var_CXX" | $SED "$delay_single_quote_subst"`' hardcode_automatic_CXX='`$ECHO "$hardcode_automatic_CXX" | $SED "$delay_single_quote_subst"`' inherit_rpath_CXX='`$ECHO "$inherit_rpath_CXX" | $SED "$delay_single_quote_subst"`' link_all_deplibs_CXX='`$ECHO "$link_all_deplibs_CXX" | $SED "$delay_single_quote_subst"`' always_export_symbols_CXX='`$ECHO "$always_export_symbols_CXX" | $SED "$delay_single_quote_subst"`' export_symbols_cmds_CXX='`$ECHO "$export_symbols_cmds_CXX" | $SED "$delay_single_quote_subst"`' exclude_expsyms_CXX='`$ECHO "$exclude_expsyms_CXX" | $SED "$delay_single_quote_subst"`' include_expsyms_CXX='`$ECHO "$include_expsyms_CXX" | $SED "$delay_single_quote_subst"`' prelink_cmds_CXX='`$ECHO "$prelink_cmds_CXX" | $SED "$delay_single_quote_subst"`' postlink_cmds_CXX='`$ECHO "$postlink_cmds_CXX" | $SED "$delay_single_quote_subst"`' file_list_spec_CXX='`$ECHO "$file_list_spec_CXX" | $SED "$delay_single_quote_subst"`' hardcode_action_CXX='`$ECHO "$hardcode_action_CXX" | $SED "$delay_single_quote_subst"`' compiler_lib_search_dirs_CXX='`$ECHO "$compiler_lib_search_dirs_CXX" | $SED "$delay_single_quote_subst"`' predep_objects_CXX='`$ECHO "$predep_objects_CXX" | $SED "$delay_single_quote_subst"`' postdep_objects_CXX='`$ECHO "$postdep_objects_CXX" | $SED "$delay_single_quote_subst"`' predeps_CXX='`$ECHO "$predeps_CXX" | $SED "$delay_single_quote_subst"`' postdeps_CXX='`$ECHO "$postdeps_CXX" | $SED "$delay_single_quote_subst"`' compiler_lib_search_path_CXX='`$ECHO "$compiler_lib_search_path_CXX" | $SED "$delay_single_quote_subst"`' LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } # Quote evaled strings. for var in SHELL \ ECHO \ PATH_SEPARATOR \ SED \ GREP \ EGREP \ FGREP \ LD \ NM \ LN_S \ lt_SP2NL \ lt_NL2SP \ reload_flag \ OBJDUMP \ deplibs_check_method \ file_magic_cmd \ file_magic_glob \ want_nocaseglob \ DLLTOOL \ sharedlib_from_linklib_cmd \ AR \ AR_FLAGS \ archiver_list_spec \ STRIP \ RANLIB \ CC \ CFLAGS \ compiler \ lt_cv_sys_global_symbol_pipe \ lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ nm_file_list_spec \ lt_prog_compiler_no_builtin_flag \ lt_prog_compiler_pic \ lt_prog_compiler_wl \ lt_prog_compiler_static \ lt_cv_prog_compiler_c_o \ need_locks \ MANIFEST_TOOL \ DSYMUTIL \ NMEDIT \ LIPO \ OTOOL \ OTOOL64 \ shrext_cmds \ export_dynamic_flag_spec \ whole_archive_flag_spec \ compiler_needs_object \ with_gnu_ld \ allow_undefined_flag \ no_undefined_flag \ hardcode_libdir_flag_spec \ hardcode_libdir_separator \ exclude_expsyms \ include_expsyms \ file_list_spec \ variables_saved_for_relink \ libname_spec \ library_names_spec \ soname_spec \ install_override_mode \ finish_eval \ old_striplib \ striplib \ compiler_lib_search_dirs \ predep_objects \ postdep_objects \ predeps \ postdeps \ compiler_lib_search_path \ LD_CXX \ reload_flag_CXX \ compiler_CXX \ lt_prog_compiler_no_builtin_flag_CXX \ lt_prog_compiler_pic_CXX \ lt_prog_compiler_wl_CXX \ lt_prog_compiler_static_CXX \ lt_cv_prog_compiler_c_o_CXX \ export_dynamic_flag_spec_CXX \ whole_archive_flag_spec_CXX \ compiler_needs_object_CXX \ with_gnu_ld_CXX \ allow_undefined_flag_CXX \ no_undefined_flag_CXX \ hardcode_libdir_flag_spec_CXX \ hardcode_libdir_separator_CXX \ exclude_expsyms_CXX \ include_expsyms_CXX \ file_list_spec_CXX \ compiler_lib_search_dirs_CXX \ predep_objects_CXX \ postdep_objects_CXX \ predeps_CXX \ postdeps_CXX \ compiler_lib_search_path_CXX; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in reload_cmds \ old_postinstall_cmds \ old_postuninstall_cmds \ old_archive_cmds \ extract_expsyms_cmds \ old_archive_from_new_cmds \ old_archive_from_expsyms_cmds \ archive_cmds \ archive_expsym_cmds \ module_cmds \ module_expsym_cmds \ export_symbols_cmds \ prelink_cmds \ postlink_cmds \ postinstall_cmds \ postuninstall_cmds \ finish_cmds \ sys_lib_search_path_spec \ sys_lib_dlsearch_path_spec \ reload_cmds_CXX \ old_archive_cmds_CXX \ old_archive_from_new_cmds_CXX \ old_archive_from_expsyms_cmds_CXX \ archive_cmds_CXX \ archive_expsym_cmds_CXX \ module_cmds_CXX \ module_expsym_cmds_CXX \ export_symbols_cmds_CXX \ prelink_cmds_CXX \ postlink_cmds_CXX; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done ac_aux_dir='$ac_aux_dir' xsi_shell='$xsi_shell' lt_shell_append='$lt_shell_append' # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile' # Capture the value of obsolete ALL_LINGUAS because we need it to compute # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it # from automake < 1.5. eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' # Capture the value of LINGUAS because we need it to compute CATALOGS. LINGUAS="${LINGUAS-%UNSET%}" ax_create_pkgconfig_generate="$ax_create_pkgconfig_generate" pkgconfig_prefix='$prefix' pkgconfig_execprefix='$exec_prefix' pkgconfig_bindir='$bindir' pkgconfig_libdir='$libdir' pkgconfig_includedir='$includedir' pkgconfig_sysconfdir='$sysconfdir' pkgconfig_suffix='$ax_create_pkgconfig_suffix' pkgconfig_package='$PACKAGE_NAME' pkgconfig_libname='$ax_create_pkgconfig_libname' pkgconfig_description='$ax_create_pkgconfig_description' pkgconfig_version='$ax_create_pkgconfig_version' pkgconfig_requires='$ax_create_pkgconfig_requires' pkgconfig_libs='$ax_create_pkgconfig_libs' pkgconfig_ldflags='$ax_create_pkgconfig_ldflags' pkgconfig_cppflags='$ax_create_pkgconfig_cppflags' pkgconfig_src_libdir='$ax_create_pkgconfig_src_libdir' pkgconfig_src_headers='$ax_create_pkgconfig_src_headers' _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; "po-directories") CONFIG_COMMANDS="$CONFIG_COMMANDS po-directories" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; "m4/Makefile") CONFIG_FILES="$CONFIG_FILES m4/Makefile" ;; "contrib/macosx/Info.plist") CONFIG_FILES="$CONFIG_FILES contrib/macosx/Info.plist" ;; "contrib/macosx/Pkg-Info.plist") CONFIG_FILES="$CONFIG_FILES contrib/macosx/Pkg-Info.plist" ;; "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; "src/include/Makefile") CONFIG_FILES="$CONFIG_FILES src/include/Makefile" ;; "src/intlemu/Makefile") CONFIG_FILES="$CONFIG_FILES src/intlemu/Makefile" ;; "src/common/Makefile") CONFIG_FILES="$CONFIG_FILES src/common/Makefile" ;; "src/main/Makefile") CONFIG_FILES="$CONFIG_FILES src/main/Makefile" ;; "src/plugins/Makefile") CONFIG_FILES="$CONFIG_FILES src/plugins/Makefile" ;; "$ax_create_pkgconfig_generate") CONFIG_COMMANDS="$CONFIG_COMMANDS $ax_create_pkgconfig_generate" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_tt=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_tt"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers. _am_arg="$ac_file" _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || $as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$_am_arg" : 'X\(//\)[^/]' \| \ X"$_am_arg" : 'X\(//\)$' \| \ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$_am_arg" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'`/stamp-h$_am_stamp_count ;; :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 $as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || { # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named `Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # When using ansi2knr, U may be empty or an underscore; expand it U=`sed -n 's/^U = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir=$dirpart/$fdir; as_fn_mkdir_p # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ;; "libtool":C) # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of # the License, or (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # The names of the tagged configurations supported by this script. available_tags="CXX " # ### BEGIN LIBTOOL CONFIG # Which release of libtool.m4 was used? macro_version=$macro_version macro_revision=$macro_revision # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # What type of objects to build. pic_mode=$pic_mode # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # An echo program that protects backslashes. ECHO=$lt_ECHO # The PATH separator for the build system. PATH_SEPARATOR=$lt_PATH_SEPARATOR # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # A sed program that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="\$SED -e 1s/^X//" # A grep program that handles long lines. GREP=$lt_GREP # An ERE matcher. EGREP=$lt_EGREP # A literal string matcher. FGREP=$lt_FGREP # A BSD- or MS-compatible name lister. NM=$lt_NM # Whether we need soft or hard links. LN_S=$lt_LN_S # What is the maximum length of a command? max_cmd_len=$max_cmd_len # Object file suffix (normally "o"). objext=$ac_objext # Executable file suffix (normally ""). exeext=$exeext # whether the shell understands "unset". lt_unset=$lt_unset # turn spaces into newlines. SP2NL=$lt_lt_SP2NL # turn newlines into spaces. NL2SP=$lt_lt_NL2SP # convert \$build file names to \$host format. to_host_file_cmd=$lt_cv_to_host_file_cmd # convert \$build files to toolchain format. to_tool_file_cmd=$lt_cv_to_tool_file_cmd # An object symbol dumper. OBJDUMP=$lt_OBJDUMP # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method = "file_magic". file_magic_cmd=$lt_file_magic_cmd # How to find potential files when deplibs_check_method = "file_magic". file_magic_glob=$lt_file_magic_glob # Find potential files using nocaseglob when deplibs_check_method = "file_magic". want_nocaseglob=$lt_want_nocaseglob # DLL creation program. DLLTOOL=$lt_DLLTOOL # Command to associate shared and link libraries. sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd # The archiver. AR=$lt_AR # Flags to create an archive. AR_FLAGS=$lt_AR_FLAGS # How to feed a file listing to the archiver. archiver_list_spec=$lt_archiver_list_spec # A symbol stripping program. STRIP=$lt_STRIP # Commands used to install an old-style archive. RANLIB=$lt_RANLIB old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Whether to use a lock for old archive extraction. lock_old_archive_extraction=$lock_old_archive_extraction # A C compiler. LTCC=$lt_CC # LTCC compiler flags. LTCFLAGS=$lt_CFLAGS # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration. global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair. global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # Transform the output of nm in a C name address pair when lib prefix is needed. global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix # Specify filename containing input files for \$NM. nm_file_list_spec=$lt_nm_file_list_spec # The root where to search for dependent libraries,and in which our libraries should be installed. lt_sysroot=$lt_sysroot # The name of the directory that contains temporary libtool files. objdir=$objdir # Used to examine libraries when file_magic_cmd begins with "file". MAGIC_CMD=$MAGIC_CMD # Must we lock files when doing compilation? need_locks=$lt_need_locks # Manifest tool. MANIFEST_TOOL=$lt_MANIFEST_TOOL # Tool to manipulate archived DWARF debug symbol files on Mac OS X. DSYMUTIL=$lt_DSYMUTIL # Tool to change global to local symbols on Mac OS X. NMEDIT=$lt_NMEDIT # Tool to manipulate fat objects and archives on Mac OS X. LIPO=$lt_LIPO # ldd/readelf like tool for Mach-O binaries on Mac OS X. OTOOL=$lt_OTOOL # ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. OTOOL64=$lt_OTOOL64 # Old archive suffix (normally "a"). libext=$libext # Shared library suffix (normally ".so"). shrext_cmds=$lt_shrext_cmds # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Variables whose values should be saved in libtool wrapper scripts and # restored at link time. variables_saved_for_relink=$lt_variables_saved_for_relink # Do we need the "lib" prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Library versioning type. version_type=$version_type # Shared library runtime path variable. runpath_var=$runpath_var # Shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Permission mode override for installation of shared libraries. install_override_mode=$lt_install_override_mode # Command to use after installation of a shared archive. postinstall_cmds=$lt_postinstall_cmds # Command to use after uninstallation of a shared archive. postuninstall_cmds=$lt_postuninstall_cmds # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # As "finish_cmds", except a single script fragment to be evaled but # not shown. finish_eval=$lt_finish_eval # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Compile-time system search path for libraries. sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries. sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # The linker used to build libraries. LD=$lt_LD # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds # A language specific compiler. CC=$lt_compiler # Is the compiler the GNU compiler? with_gcc=$GCC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds # Commands used to build a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds module_expsym_cmds=$lt_module_expsym_cmds # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting \${shlibpath_var} if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=$hardcode_minus_L # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var # Set to "yes" if building a shared library automatically hardcodes DIR # into the library and all subsequent libraries and executables linked # against it. hardcode_automatic=$hardcode_automatic # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms # Symbols that must always be exported. include_expsyms=$lt_include_expsyms # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds # Commands necessary for finishing linking programs. postlink_cmds=$lt_postlink_cmds # Specify filename containing input files. file_list_spec=$lt_file_list_spec # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # The directories searched by this compiler when creating a shared library. compiler_lib_search_dirs=$lt_compiler_lib_search_dirs # Dependencies to place before and after the objects being linked to # create a shared library. predep_objects=$lt_predep_objects postdep_objects=$lt_postdep_objects predeps=$lt_predeps postdeps=$lt_postdeps # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path # ### END LIBTOOL CONFIG _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac ltmain="$ac_aux_dir/ltmain.sh" # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) if test x"$xsi_shell" = xyes; then sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ func_dirname ()\ {\ \ case ${1} in\ \ */*) func_dirname_result="${1%/*}${2}" ;;\ \ * ) func_dirname_result="${3}" ;;\ \ esac\ } # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_basename ()$/,/^} # func_basename /c\ func_basename ()\ {\ \ func_basename_result="${1##*/}"\ } # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ func_dirname_and_basename ()\ {\ \ case ${1} in\ \ */*) func_dirname_result="${1%/*}${2}" ;;\ \ * ) func_dirname_result="${3}" ;;\ \ esac\ \ func_basename_result="${1##*/}"\ } # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ func_stripname ()\ {\ \ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ \ # positional parameters, so assign one to ordinary parameter first.\ \ func_stripname_result=${3}\ \ func_stripname_result=${func_stripname_result#"${1}"}\ \ func_stripname_result=${func_stripname_result%"${2}"}\ } # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ func_split_long_opt ()\ {\ \ func_split_long_opt_name=${1%%=*}\ \ func_split_long_opt_arg=${1#*=}\ } # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ func_split_short_opt ()\ {\ \ func_split_short_opt_arg=${1#??}\ \ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ } # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ func_lo2o ()\ {\ \ case ${1} in\ \ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ \ *) func_lo2o_result=${1} ;;\ \ esac\ } # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_xform ()$/,/^} # func_xform /c\ func_xform ()\ {\ func_xform_result=${1%.*}.lo\ } # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_arith ()$/,/^} # func_arith /c\ func_arith ()\ {\ func_arith_result=$(( $* ))\ } # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_len ()$/,/^} # func_len /c\ func_len ()\ {\ func_len_result=${#1}\ } # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: fi if test x"$lt_shell_append" = xyes; then sed -e '/^func_append ()$/,/^} # func_append /c\ func_append ()\ {\ eval "${1}+=\\${2}"\ } # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ func_append_quoted ()\ {\ \ func_quote_for_eval "${2}"\ \ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ } # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: # Save a `func_append' function call where possible by direct use of '+=' sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: else # Save a `func_append' function call even when '+=' is not available sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: fi if test x"$_lt_function_replace_fail" = x":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 $as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} fi mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" cat <<_LT_EOF >> "$ofile" # ### BEGIN LIBTOOL TAG CONFIG: CXX # The linker used to build libraries. LD=$lt_LD_CXX # How to create reloadable object files. reload_flag=$lt_reload_flag_CXX reload_cmds=$lt_reload_cmds_CXX # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds_CXX # A language specific compiler. CC=$lt_compiler_CXX # Is the compiler the GNU compiler? with_gcc=$GCC_CXX # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_CXX # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_CXX # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_CXX # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_CXX # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object_CXX # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX # Commands used to build a shared archive. archive_cmds=$lt_archive_cmds_CXX archive_expsym_cmds=$lt_archive_expsym_cmds_CXX # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds_CXX module_expsym_cmds=$lt_module_expsym_cmds_CXX # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld_CXX # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_CXX # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_CXX # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct_CXX # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting \${shlibpath_var} if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute_CXX # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=$hardcode_minus_L_CXX # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX # Set to "yes" if building a shared library automatically hardcodes DIR # into the library and all subsequent libraries and executables linked # against it. hardcode_automatic=$hardcode_automatic_CXX # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath_CXX # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_CXX # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols_CXX # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_CXX # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_CXX # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_CXX # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds_CXX # Commands necessary for finishing linking programs. postlink_cmds=$lt_postlink_cmds_CXX # Specify filename containing input files. file_list_spec=$lt_file_list_spec_CXX # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_CXX # The directories searched by this compiler when creating a shared library. compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX # Dependencies to place before and after the objects being linked to # create a shared library. predep_objects=$lt_predep_objects_CXX postdep_objects=$lt_postdep_objects_CXX predeps=$lt_predeps_CXX postdeps=$lt_postdeps_CXX # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_CXX # ### END LIBTOOL TAG CONFIG: CXX _LT_EOF ;; "po-directories":C) for ac_file in $CONFIG_FILES; do # Support "outfile[:infile[:infile...]]" case "$ac_file" in *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; esac # PO directories have a Makefile.in generated from Makefile.in.in. case "$ac_file" in */Makefile.in) # Adjust a relative srcdir. ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` # In autoconf-2.13 it is called $ac_given_srcdir. # In autoconf-2.50 it is called $srcdir. test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" case "$ac_given_srcdir" in .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; /*) top_srcdir="$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;; esac # Treat a directory as a PO directory if and only if it has a # POTFILES.in file. This allows packages to have multiple PO # directories under different names or in different locations. if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then rm -f "$ac_dir/POTFILES" test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" POMAKEFILEDEPS="POTFILES.in" # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend # on $ac_dir but don't depend on user-specified configuration # parameters. if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then # The LINGUAS file contains the set of available languages. if test -n "$OBSOLETE_ALL_LINGUAS"; then test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" fi ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` # Hide the ALL_LINGUAS assigment from automake < 1.5. eval 'ALL_LINGUAS''=$ALL_LINGUAS_' POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" else # The set of available languages was given in configure.in. # Hide the ALL_LINGUAS assigment from automake < 1.5. eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' fi # Compute POFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) # Compute UPDATEPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) # Compute DUMMYPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) # Compute GMOFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) case "$ac_given_srcdir" in .) srcdirpre= ;; *) srcdirpre='$(srcdir)/' ;; esac POFILES= UPDATEPOFILES= DUMMYPOFILES= GMOFILES= for lang in $ALL_LINGUAS; do POFILES="$POFILES $srcdirpre$lang.po" UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" DUMMYPOFILES="$DUMMYPOFILES $lang.nop" GMOFILES="$GMOFILES $srcdirpre$lang.gmo" done # CATALOGS depends on both $ac_dir and the user's LINGUAS # environment variable. INST_LINGUAS= if test -n "$ALL_LINGUAS"; then for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "$LINGUAS"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then INST_LINGUAS="$INST_LINGUAS $presentlang" fi done fi CATALOGS= if test -n "$INST_LINGUAS"; then for lang in $INST_LINGUAS; do CATALOGS="$CATALOGS $lang.gmo" done fi test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do if test -f "$f"; then case "$f" in *.orig | *.bak | *~) ;; *) cat "$f" >> "$ac_dir/Makefile" ;; esac fi done fi ;; esac done ;; "$ax_create_pkgconfig_generate":C) pkgconfig_generate="$ax_create_pkgconfig_generate" if test ! -f "$pkgconfig_generate.in" then generate="true" elif grep ' generated by configure ' $pkgconfig_generate.in >/dev/null then generate="true" else generate="false"; fi if $generate ; then { $as_echo "$as_me:${as_lineno-$LINENO}: creating $pkgconfig_generate.in" >&5 $as_echo "$as_me: creating $pkgconfig_generate.in" >&6;} cat > $pkgconfig_generate.in <&5 $as_echo "$as_me: creating $pkgconfig_generate" >&6;} cat >conftest.sed < $pkgconfig_generate if test ! -s $pkgconfig_generate ; then as_fn_error $? "$pkgconfig_generate is empty" "$LINENO" 5 fi ; rm conftest.sed # DONE generate $pkgconfig_generate pkgconfig_uninstalled=`echo $pkgconfig_generate |sed 's/.pc$/-uninstalled.pc/'` { $as_echo "$as_me:${as_lineno-$LINENO}: creating $pkgconfig_uninstalled" >&5 $as_echo "$as_me: creating $pkgconfig_uninstalled" >&6;} cat >conftest.sed < $pkgconfig_uninstalled if test ! -s $pkgconfig_uninstalled ; then as_fn_error $? "$pkgconfig_uninstalled is empty" "$LINENO" 5 fi ; rm conftest.sed # DONE generate $pkgconfig_uninstalled pkgconfig_requires_add=`echo ${pkgconfig_requires}` if test ".$pkgconfig_requires_add" != "." ; then pkgconfig_requires_add="pkg-config $pkgconfig_requires_add" else pkgconfig_requires_add=":" ; fi pkgconfig_uninstalled=`echo $pkgconfig_generate |sed 's/.pc$/-uninstalled.sh/'` { $as_echo "$as_me:${as_lineno-$LINENO}: creating $pkgconfig_uninstalled" >&5 $as_echo "$as_me: creating $pkgconfig_uninstalled" >&6;} cat >conftest.sed <Name:>for option\\; do case \"\$option\" in --list-all|--name) echo > s>Description: *>\\;\\; --help) pkg-config --help \\; echo Buildscript Of > s>Version: *>\\;\\; --modversion|--version) echo > s>Requires:>\\;\\; --requires) echo $pkgconfig_requires_add> s>Libs: *>\\;\\; --libs) echo > s>Cflags: *>\\;\\; --cflags) echo > /--libs)/a\\ $pkgconfig_requires_add /--cflags)/a\\ $pkgconfig_requires_add\\ ;; --variable=*) eval echo '\$'\`echo \$option | sed -e 's/.*=//'\`\\ ;; --uninstalled) exit 0 \\ ;; *) ;; esac done AXEOF sed -f conftest.sed $pkgconfig_generate.in > $pkgconfig_uninstalled if test ! -s $pkgconfig_uninstalled ; then as_fn_error $? "$pkgconfig_uninstalled is empty" "$LINENO" 5 fi ; rm conftest.sed # DONE generate $pkgconfig_uninstalled ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi if test "x$HAVE_ZLIB_TRUE" = "x#" then { $as_echo "$as_me:${as_lineno-$LINENO}: NOTICE: zlib not found, zlib support disabled" >&5 $as_echo "$as_me: NOTICE: zlib not found, zlib support disabled" >&6;} fi if test "x$HAVE_BZ2_TRUE" = "x#" then { $as_echo "$as_me:${as_lineno-$LINENO}: NOTICE: libbz2 not found, bz2 support disabled" >&5 $as_echo "$as_me: NOTICE: libbz2 not found, bz2 support disabled" >&6;} fi if test "x$HAVE_EXIV2_TRUE" = "x#" then { $as_echo "$as_me:${as_lineno-$LINENO}: NOTICE: libexiv2 not found, exiv2 disabled" >&5 $as_echo "$as_me: NOTICE: libexiv2 not found, exiv2 disabled" >&6;} fi if test "x$HAVE_TIFF_TRUE" = "x#" then { $as_echo "$as_me:${as_lineno-$LINENO}: NOTICE: libtiff not found, tiff disabled" >&5 $as_echo "$as_me: NOTICE: libtiff not found, tiff disabled" >&6;} fi if test "x$HAVE_JPEG_TRUE" = "x#" then { $as_echo "$as_me:${as_lineno-$LINENO}: NOTICE: libjpeg not found, jpeg disabled" >&5 $as_echo "$as_me: NOTICE: libjpeg not found, jpeg disabled" >&6;} fi if test "x$HAVE_GIF_TRUE" = "x#" then { $as_echo "$as_me:${as_lineno-$LINENO}: NOTICE: libgif not found, gif disabled" >&5 $as_echo "$as_me: NOTICE: libgif not found, gif disabled" >&6;} fi if test "x$have_gsf" != "xtrue" then { $as_echo "$as_me:${as_lineno-$LINENO}: NOTICE: libgsf not found, no OLE2 (MS Office) support" >&5 $as_echo "$as_me: NOTICE: libgsf not found, no OLE2 (MS Office) support" >&6;} fi if test "x$ffmpeg_enabled" = "x0" then { $as_echo "$as_me:${as_lineno-$LINENO}: NOTICE: FFmpeg thumbnailer plugin disabled" >&5 $as_echo "$as_me: NOTICE: FFmpeg thumbnailer plugin disabled" >&6;} fi if test "x$new_ffmpeg" = "x0" then { $as_echo "$as_me:${as_lineno-$LINENO}: NOTICE: FFmpeg/opus audio preview plugin disabled, It needs libav >= 10, or a FFmpeg with --enable-libavresample" >&5 $as_echo "$as_me: NOTICE: FFmpeg/opus audio preview plugin disabled, It needs libav >= 10, or a FFmpeg with --enable-libavresample" >&6;} fi if test "x$without_gtk" = "xtrue" then { $as_echo "$as_me:${as_lineno-$LINENO}: NOTICE: libgtk3+ not found, gtk thumbnail support disabled" >&5 $as_echo "$as_me: NOTICE: libgtk3+ not found, gtk thumbnail support disabled" >&6;} fi if test "x$HAVE_VORBISFILE_TRUE" = "x#" then { $as_echo "$as_me:${as_lineno-$LINENO}: NOTICE: libvorbis not found, vorbis support disabled" >&5 $as_echo "$as_me: NOTICE: libvorbis not found, vorbis support disabled" >&6;} fi if test "x$HAVE_FLAC_TRUE" = "x#" then { $as_echo "$as_me:${as_lineno-$LINENO}: NOTICE: libflac not found, flac support disabled" >&5 $as_echo "$as_me: NOTICE: libflac not found, flac support disabled" >&6;} fi if test "x$HAVE_SMF_TRUE" = "x#" then { $as_echo "$as_me:${as_lineno-$LINENO}: NOTICE: libsmf not found, midi support disabled" >&5 $as_echo "$as_me: NOTICE: libsmf not found, midi support disabled" >&6;} fi if test "x$HAVE_MPEG2_TRUE" = "x#" then { $as_echo "$as_me:${as_lineno-$LINENO}: NOTICE: libmpeg2 not found, mpeg2 support disabled" >&5 $as_echo "$as_me: NOTICE: libmpeg2 not found, mpeg2 support disabled" >&6;} fi if test "x$HAVE_MP4V2_TRUE" = "x#" then { $as_echo "$as_me:${as_lineno-$LINENO}: NOTICE: libmp4v2 not found, mp4 support disabled" >&5 $as_echo "$as_me: NOTICE: libmp4v2 not found, mp4 support disabled" >&6;} fi if test "x$HAVE_CXX" != "xyes" then { $as_echo "$as_me:${as_lineno-$LINENO}: NOTICE: no C++ compiler found (not compiling plugins that require C++)" >&5 $as_echo "$as_me: NOTICE: no C++ compiler found (not compiling plugins that require C++)" >&6;} fi if test x$have_gstreamer = xyes -a x$have_gstreamer_pbutils = xyes -a x$have_gstreamer_tag = xyes -a x$have_gstreamer_app = xyes -a ! x$without_glib = xtrue then if test x$enable_experimental = xyes then { $as_echo "$as_me:${as_lineno-$LINENO}: NOTICE: gstreamer enabled" >&5 $as_echo "$as_me: NOTICE: gstreamer enabled" >&6;} fi else { $as_echo "$as_me:${as_lineno-$LINENO}: NOTICE: gstreamer not found, gstreamer support disabled" >&5 $as_echo "$as_me: NOTICE: gstreamer not found, gstreamer support disabled" >&6;} fi libextractor-1.3/depcomp0000755000175000017500000005064312255663141012372 00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2012-03-27.16; # UTC # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010, # 2011, 2012 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try '$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by 'PROGRAMS ARGS'. object Object file output by 'PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputting dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac # A tabulation character. tab=' ' # A newline character. nl=' ' if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi cygpath_u="cygpath -u -f -" if test "$depmode" = msvcmsys; then # This is just like msvisualcpp but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u='sed s,\\\\,/,g' depmode=msvisualcpp fi if test "$depmode" = msvc7msys; then # This is just like msvc7 but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u='sed s,\\\\,/,g' depmode=msvc7 fi if test "$depmode" = xlc; then # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency informations. gccflag=-qmakedep=gcc,-MF depmode=gcc fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. ## Unfortunately, FreeBSD c89 acceptance of flags depends upon ## the command line argument order; so add the flags where they ## appear in depend2.am. Note that the slowdown incurred here ## affects only configure: in makefiles, %FASTDEP% shortcuts this. for arg do case $arg in -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; *) set fnord "$@" "$arg" ;; esac shift # fnord shift # $arg done "$@" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the "deleted header file" problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' "$nl" < "$tmpdepfile" | ## Some versions of gcc put a space before the ':'. On the theory ## that the space means something, we add a space to the output as ## well. hp depmode also adds that space, but also prefixes the VPATH ## to the object. Take care to not repeat it in the output. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like '#:fec' to the end of the # dependency line. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr "$nl" ' ' >> "$depfile" echo >> "$depfile" # The second pass generates a dummy entry for each header file. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; xlc) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts '$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.u tmpdepfile2=$base.u tmpdepfile3=$dir.libs/$base.u "$@" -Wc,-M else tmpdepfile1=$dir$base.u tmpdepfile2=$dir$base.u tmpdepfile3=$dir$base.u "$@" -M fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then # Each line is of the form 'foo.o: dependent.h'. # Do two passes, one to just change these to # '$object: dependent.h' and one to simply 'dependent.h:'. sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler anf tcc (Tiny C Compiler) understand '-MD -MF file'. # However on # $CC -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using '\': # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... # tcc 0.9.26 (FIXME still under development at the moment of writing) # will emit a similar output, but also prepend the continuation lines # with horizontal tabulation characters. "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form 'foo.o: dependent.h', # or 'foo.o: dep1.h dep2.h \', or ' dep3.h dep4.h \'. # Do two passes, one to just change these to # '$object: dependent.h' and one to simply 'dependent.h:'. sed -e "s/^[ $tab][ $tab]*/ /" -e "s,^[^:]*:,$object :," \ < "$tmpdepfile" > "$depfile" sed ' s/[ '"$tab"'][ '"$tab"']*/ /g s/^ *// s/ *\\*$// s/^[^:]*: *// /^$/d /:$/d s/$/ :/ ' < "$tmpdepfile" >> "$depfile" rm -f "$tmpdepfile" ;; hp2) # The "hp" stanza above does not work with aCC (C++) and HP's ia64 # compilers, which have integrated preprocessors. The correct option # to use with these is +Maked; it writes dependencies to a file named # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.d tmpdepfile2=$dir.libs/$base.d "$@" -Wc,+Maked else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d "$@" +Maked fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" # Add 'dependent.h:' lines. sed -ne '2,${ s/^ *// s/ \\*$// s/$/:/ p }' "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in 'foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a # static library. This mechanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two # compilations output dependencies in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.o.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; msvc7) if test "$libtool" = yes; then showIncludes=-Wc,-showIncludes else showIncludes=-showIncludes fi "$@" $showIncludes > "$tmpdepfile" stat=$? grep -v '^Note: including file: ' "$tmpdepfile" if test "$stat" = 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" # The first sed program below extracts the file names and escapes # backslashes for cygpath. The second sed program outputs the file # name when reading, but also accumulates all include files in the # hold buffer in order to output them again at the end. This only # works with sed implementations that can handle large buffers. sed < "$tmpdepfile" -n ' /^Note: including file: *\(.*\)/ { s//\1/ s/\\/\\\\/g p }' | $cygpath_u | sort -u | sed -n ' s/ /\\ /g s/\(.*\)/'"$tab"'\1 \\/p s/.\(.*\) \\/\1:/ H $ { s/.*/'"$tab"'/ G p }' >> "$depfile" rm -f "$tmpdepfile" ;; msvc7msys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove '-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for ':' # in the target name. This is to cope with DOS-style filenames: # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. "$@" $dashmflag | sed 's:^['"$tab"' ]*[^:'"$tab"' ][^:][^:]*\:['"$tab"' ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' "$nl" < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # X makedepend shift cleared=no eat=no for arg do case $cleared in no) set ""; shift cleared=yes ;; esac if test $eat = yes; then eat=no continue fi case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -arch) eat=yes ;; -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix=`echo "$object" | sed 's/^.*\././'` touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" # makedepend may prepend the VPATH from the source file name to the object. # No need to regex-escape $object, excess matching of '.' is harmless. sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' "$nl" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove '-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi IFS=" " for arg do case "$arg" in -o) shift ;; $object) shift ;; "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E 2>/dev/null | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile" echo "$tab" >> "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; msvcmsys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: libextractor-1.3/AUTHORS0000644000175000017500000000627412255155444012070 00000000000000Current core team (and security contacts): Christian Grothoff LRN Developers: Andreas Huggel Blake Matheny Bruno Cabral Bruno Haible Christopher Adam Telfer Filip Pizlo Gabriel Peixoto George Shuklin, gs]AT[shounen.ru Heikki Lindholm Heiko Wundram James Blackwell Mark Nelson [delirium] Milan mooneer@translator.cx Nils Durner Pavol Rusnak Ronan MELENNEC Toni Ruottu Vasil Dimov Vidyut Samanta Yuri N. Sedunov Translations: Dutch - Benno Schulenberg French - Nicolas Provost German - Karl Eichwalder Irish - Kevin Patrick Scannell Italian - Sergio Zanchetta Kinyarwanda - Steve Murphy Romanian - Laurentiu Buzdugan Swedish - Daniel Nylander Ukrainian - Yuri Chornoivan Vietnamese - Clytie Siddall Polish - Jakub Bogusz Plugins and primary authors: deb - Christian Grothoff dvi - Christian Grothoff exiv2 - Andreas Huggel flac - Christian Grothoff gif - Christian Grothoff gstreamer - LRN html - Christian Grothoff it - Toni Ruottu jpeg - Christian Grothoff man - Christian Grothoff mime - Christian Grothoff mpeg - Christian Grothoff nsf - Toni Ruottu nsfe - Toni Ruottu odf - Christian Grothoff ole2 - Christian Grothoff ogg - Christian Grothoff png - Christian Grothoff previewopus - Bruno Cabral ps - Christian Grothoff riff - Christian Grothoff rpm - Christian Grothoff s3m - Toni Ruottu sid - Toni Ruottu tiff - Christian Grothoff thumbnailffmpeg- Heikki Lindholm thumbnailgtk - Christian Grothoff wav - Christian Grothoff xm - Toni Ruottu zip - Christian Grothoff Currently dead (plugins/old/): tar - Christian Grothoff and Ronan MELENNEC [to be ported to 0.7] applefile - Heikki Lindholm [to be ported to 0.7] elf - Christian Grothoff [to be ported to 0.7] asf - Christian Grothoff [to be replaced by gstreamer?] avi - Christian Grothoff [to be replaced by gstreamer?] flv - Heikki Lindholm [to be replaced by gstreamer?] id3v2 - Milan [to be replaced by gstreamer?] mkv - Gabriel Peixoto [to be replaced by gstreamer?] mp3 - Christian Grothoff and James Blackwell [to be replaced by gstreamer?] qt - Heikki Lindholm [to be replaced by gstreamer?] real - Christian Grothoff [to be replaced by gstreamer???] pdf - Christian Grothoff [GPLv2-only issue] libextractor-1.3/COPYING0000644000175000017500000010451312016743000012030 00000000000000 GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . libextractor-1.3/m4/0000755000175000017500000000000012256015537011406 500000000000000libextractor-1.3/m4/lcmessage.m40000644000175000017500000000240411260753602013527 00000000000000# lcmessage.m4 serial 4 (gettext-0.14.2) dnl Copyright (C) 1995-2002, 2004-2005 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995. # Check whether LC_MESSAGES is available in . AC_DEFUN([gt_LC_MESSAGES], [ AC_CACHE_CHECK([for LC_MESSAGES], gt_cv_val_LC_MESSAGES, [AC_TRY_LINK([#include ], [return LC_MESSAGES], gt_cv_val_LC_MESSAGES=yes, gt_cv_val_LC_MESSAGES=no)]) if test $gt_cv_val_LC_MESSAGES = yes; then AC_DEFINE(HAVE_LC_MESSAGES, 1, [Define if your file defines LC_MESSAGES.]) fi ]) libextractor-1.3/m4/intmax.m40000644000175000017500000000201111260753602013056 00000000000000# intmax.m4 serial 3 (gettext-0.16) dnl Copyright (C) 2002-2005 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Test whether the system has the 'intmax_t' type, but don't attempt to dnl find a replacement if it is lacking. AC_DEFUN([gt_TYPE_INTMAX_T], [ AC_REQUIRE([gl_AC_HEADER_INTTYPES_H]) AC_REQUIRE([gl_AC_HEADER_STDINT_H]) AC_CACHE_CHECK(for intmax_t, gt_cv_c_intmax_t, [AC_TRY_COMPILE([ #include #include #if HAVE_STDINT_H_WITH_UINTMAX #include #endif #if HAVE_INTTYPES_H_WITH_UINTMAX #include #endif ], [intmax_t x = -1; return !x;], gt_cv_c_intmax_t=yes, gt_cv_c_intmax_t=no)]) if test $gt_cv_c_intmax_t = yes; then AC_DEFINE(HAVE_INTMAX_T, 1, [Define if you have the 'intmax_t' type in or .]) fi ]) libextractor-1.3/m4/stdint_h.m40000644000175000017500000000161411260753602013402 00000000000000# stdint_h.m4 serial 6 dnl Copyright (C) 1997-2004, 2006 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Paul Eggert. # Define HAVE_STDINT_H_WITH_UINTMAX if exists, # doesn't clash with , and declares uintmax_t. AC_DEFUN([gl_AC_HEADER_STDINT_H], [ AC_CACHE_CHECK([for stdint.h], gl_cv_header_stdint_h, [AC_TRY_COMPILE( [#include #include ], [uintmax_t i = (uintmax_t) -1; return !i;], gl_cv_header_stdint_h=yes, gl_cv_header_stdint_h=no)]) if test $gl_cv_header_stdint_h = yes; then AC_DEFINE_UNQUOTED(HAVE_STDINT_H_WITH_UINTMAX, 1, [Define if exists, doesn't clash with , and declares uintmax_t. ]) fi ]) libextractor-1.3/m4/lock.m40000644000175000017500000002770511260753602012527 00000000000000# lock.m4 serial 6 (gettext-0.16) dnl Copyright (C) 2005-2006 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Tests for a multithreading library to be used. dnl Defines at most one of the macros USE_POSIX_THREADS, USE_SOLARIS_THREADS, dnl USE_PTH_THREADS, USE_WIN32_THREADS dnl Sets the variables LIBTHREAD and LTLIBTHREAD to the linker options for use dnl in a Makefile (LIBTHREAD for use without libtool, LTLIBTHREAD for use with dnl libtool). dnl Sets the variables LIBMULTITHREAD and LTLIBMULTITHREAD similarly, for dnl programs that really need multithread functionality. The difference dnl between LIBTHREAD and LIBMULTITHREAD is that on platforms supporting weak dnl symbols, typically LIBTHREAD="" whereas LIBMULTITHREAD="-lpthread". dnl Adds to CPPFLAGS the flag -D_REENTRANT or -D_THREAD_SAFE if needed for dnl multithread-safe programs. AC_DEFUN([gl_LOCK_EARLY], [ AC_REQUIRE([gl_LOCK_EARLY_BODY]) ]) dnl The guts of gl_LOCK_EARLY. Needs to be expanded only once. AC_DEFUN([gl_LOCK_EARLY_BODY], [ dnl Ordering constraints: This macro modifies CPPFLAGS in a way that dnl influences the result of the autoconf tests that test for *_unlocked dnl declarations, on AIX 5 at least. Therefore it must come early. AC_BEFORE([$0], [gl_FUNC_GLIBC_UNLOCKED_IO])dnl AC_BEFORE([$0], [gl_ARGP])dnl AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AC_GNU_SOURCE]) dnl needed for pthread_rwlock_t on glibc systems dnl Check for multithreading. AC_ARG_ENABLE(threads, AC_HELP_STRING([--enable-threads={posix|solaris|pth|win32}], [specify multithreading API]) AC_HELP_STRING([--disable-threads], [build without multithread safety]), [gl_use_threads=$enableval], [case "$host_os" in dnl Disable multithreading by default on OSF/1, because it interferes dnl with fork()/exec(): When msgexec is linked with -lpthread, its child dnl process gets an endless segmentation fault inside execvp(). osf*) gl_use_threads=no ;; *) gl_use_threads=yes ;; esac ]) if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then # For using : case "$host_os" in osf*) # On OSF/1, the compiler needs the flag -D_REENTRANT so that it # groks . cc also understands the flag -pthread, but # we don't use it because 1. gcc-2.95 doesn't understand -pthread, # 2. putting a flag into CPPFLAGS that has an effect on the linker # causes the AC_TRY_LINK test below to succeed unexpectedly, # leading to wrong values of LIBTHREAD and LTLIBTHREAD. CPPFLAGS="$CPPFLAGS -D_REENTRANT" ;; esac # Some systems optimize for single-threaded programs by default, and # need special flags to disable these optimizations. For example, the # definition of 'errno' in . case "$host_os" in aix* | freebsd*) CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" ;; solaris*) CPPFLAGS="$CPPFLAGS -D_REENTRANT" ;; esac fi ]) dnl The guts of gl_LOCK. Needs to be expanded only once. AC_DEFUN([gl_LOCK_BODY], [ AC_REQUIRE([gl_LOCK_EARLY_BODY]) gl_threads_api=none LIBTHREAD= LTLIBTHREAD= LIBMULTITHREAD= LTLIBMULTITHREAD= if test "$gl_use_threads" != no; then dnl Check whether the compiler and linker support weak declarations. AC_MSG_CHECKING([whether imported symbols can be declared weak]) gl_have_weak=no AC_TRY_LINK([extern void xyzzy (); #pragma weak xyzzy], [xyzzy();], [gl_have_weak=yes]) AC_MSG_RESULT([$gl_have_weak]) if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then # On OSF/1, the compiler needs the flag -pthread or -D_REENTRANT so that # it groks . It's added above, in gl_LOCK_EARLY_BODY. AC_CHECK_HEADER(pthread.h, gl_have_pthread_h=yes, gl_have_pthread_h=no) if test "$gl_have_pthread_h" = yes; then # Other possible tests: # -lpthreads (FSU threads, PCthreads) # -lgthreads gl_have_pthread= # Test whether both pthread_mutex_lock and pthread_mutexattr_init exist # in libc. IRIX 6.5 has the first one in both libc and libpthread, but # the second one only in libpthread, and lock.c needs it. AC_TRY_LINK([#include ], [pthread_mutex_lock((pthread_mutex_t*)0); pthread_mutexattr_init((pthread_mutexattr_t*)0);], [gl_have_pthread=yes]) # Test for libpthread by looking for pthread_kill. (Not pthread_self, # since it is defined as a macro on OSF/1.) if test -n "$gl_have_pthread"; then # The program links fine without libpthread. But it may actually # need to link with libpthread in order to create multiple threads. AC_CHECK_LIB(pthread, pthread_kill, [LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread # On Solaris and HP-UX, most pthread functions exist also in libc. # Therefore pthread_in_use() needs to actually try to create a # thread: pthread_create from libc will fail, whereas # pthread_create will actually create a thread. case "$host_os" in solaris* | hpux*) AC_DEFINE([PTHREAD_IN_USE_DETECTION_HARD], 1, [Define if the pthread_in_use() detection is hard.]) esac ]) else # Some library is needed. Try libpthread and libc_r. AC_CHECK_LIB(pthread, pthread_kill, [gl_have_pthread=yes LIBTHREAD=-lpthread LTLIBTHREAD=-lpthread LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread]) if test -z "$gl_have_pthread"; then # For FreeBSD 4. AC_CHECK_LIB(c_r, pthread_kill, [gl_have_pthread=yes LIBTHREAD=-lc_r LTLIBTHREAD=-lc_r LIBMULTITHREAD=-lc_r LTLIBMULTITHREAD=-lc_r]) fi fi if test -n "$gl_have_pthread"; then gl_threads_api=posix AC_DEFINE([USE_POSIX_THREADS], 1, [Define if the POSIX multithreading library can be used.]) if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then if test $gl_have_weak = yes; then AC_DEFINE([USE_POSIX_THREADS_WEAK], 1, [Define if references to the POSIX multithreading library should be made weak.]) LIBTHREAD= LTLIBTHREAD= fi fi # OSF/1 4.0 and MacOS X 10.1 lack the pthread_rwlock_t type and the # pthread_rwlock_* functions. AC_CHECK_TYPE([pthread_rwlock_t], [AC_DEFINE([HAVE_PTHREAD_RWLOCK], 1, [Define if the POSIX multithreading library has read/write locks.])], [], [#include ]) # glibc defines PTHREAD_MUTEX_RECURSIVE as enum, not as a macro. AC_TRY_COMPILE([#include ], [#if __FreeBSD__ == 4 error "No, in FreeBSD 4.0 recursive mutexes actually don't work." #else int x = (int)PTHREAD_MUTEX_RECURSIVE; return !x; #endif], [AC_DEFINE([HAVE_PTHREAD_MUTEX_RECURSIVE], 1, [Define if the defines PTHREAD_MUTEX_RECURSIVE.])]) fi fi fi if test -z "$gl_have_pthread"; then if test "$gl_use_threads" = yes || test "$gl_use_threads" = solaris; then gl_have_solaristhread= gl_save_LIBS="$LIBS" LIBS="$LIBS -lthread" AC_TRY_LINK([#include #include ], [thr_self();], [gl_have_solaristhread=yes]) LIBS="$gl_save_LIBS" if test -n "$gl_have_solaristhread"; then gl_threads_api=solaris LIBTHREAD=-lthread LTLIBTHREAD=-lthread LIBMULTITHREAD="$LIBTHREAD" LTLIBMULTITHREAD="$LTLIBTHREAD" AC_DEFINE([USE_SOLARIS_THREADS], 1, [Define if the old Solaris multithreading library can be used.]) if test $gl_have_weak = yes; then AC_DEFINE([USE_SOLARIS_THREADS_WEAK], 1, [Define if references to the old Solaris multithreading library should be made weak.]) LIBTHREAD= LTLIBTHREAD= fi fi fi fi if test "$gl_use_threads" = pth; then gl_save_CPPFLAGS="$CPPFLAGS" AC_LIB_LINKFLAGS(pth) gl_have_pth= gl_save_LIBS="$LIBS" LIBS="$LIBS -lpth" AC_TRY_LINK([#include ], [pth_self();], gl_have_pth=yes) LIBS="$gl_save_LIBS" if test -n "$gl_have_pth"; then gl_threads_api=pth LIBTHREAD="$LIBPTH" LTLIBTHREAD="$LTLIBPTH" LIBMULTITHREAD="$LIBTHREAD" LTLIBMULTITHREAD="$LTLIBTHREAD" AC_DEFINE([USE_PTH_THREADS], 1, [Define if the GNU Pth multithreading library can be used.]) if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then if test $gl_have_weak = yes; then AC_DEFINE([USE_PTH_THREADS_WEAK], 1, [Define if references to the GNU Pth multithreading library should be made weak.]) LIBTHREAD= LTLIBTHREAD= fi fi else CPPFLAGS="$gl_save_CPPFLAGS" fi fi if test -z "$gl_have_pthread"; then if test "$gl_use_threads" = yes || test "$gl_use_threads" = win32; then if { case "$host_os" in mingw*) true;; *) false;; esac }; then gl_threads_api=win32 AC_DEFINE([USE_WIN32_THREADS], 1, [Define if the Win32 multithreading API can be used.]) fi fi fi fi AC_MSG_CHECKING([for multithread API to use]) AC_MSG_RESULT([$gl_threads_api]) AC_SUBST(LIBTHREAD) AC_SUBST(LTLIBTHREAD) AC_SUBST(LIBMULTITHREAD) AC_SUBST(LTLIBMULTITHREAD) ]) AC_DEFUN([gl_LOCK], [ AC_REQUIRE([gl_LOCK_EARLY]) AC_REQUIRE([gl_LOCK_BODY]) gl_PREREQ_LOCK ]) # Prerequisites of lib/lock.c. AC_DEFUN([gl_PREREQ_LOCK], [ AC_REQUIRE([AC_C_INLINE]) ]) dnl Survey of platforms: dnl dnl Platform Available Compiler Supports test-lock dnl flavours option weak result dnl --------------- --------- --------- -------- --------- dnl Linux 2.4/glibc posix -lpthread Y OK dnl dnl GNU Hurd/glibc posix dnl dnl FreeBSD 5.3 posix -lc_r Y dnl posix -lkse ? Y dnl posix -lpthread ? Y dnl posix -lthr Y dnl dnl FreeBSD 5.2 posix -lc_r Y dnl posix -lkse Y dnl posix -lthr Y dnl dnl FreeBSD 4.0,4.10 posix -lc_r Y OK dnl dnl NetBSD 1.6 -- dnl dnl OpenBSD 3.4 posix -lpthread Y OK dnl dnl MacOS X 10.[123] posix -lpthread Y OK dnl dnl Solaris 7,8,9 posix -lpthread Y Sol 7,8: 0.0; Sol 9: OK dnl solaris -lthread Y Sol 7,8: 0.0; Sol 9: OK dnl dnl HP-UX 11 posix -lpthread N (cc) OK dnl Y (gcc) dnl dnl IRIX 6.5 posix -lpthread Y 0.5 dnl dnl AIX 4.3,5.1 posix -lpthread N AIX 4: 0.5; AIX 5: OK dnl dnl OSF/1 4.0,5.1 posix -pthread (cc) N OK dnl -lpthread (gcc) Y dnl dnl Cygwin posix -lpthread Y OK dnl dnl Any of the above pth -lpth 0.0 dnl dnl Mingw win32 N OK dnl dnl BeOS 5 -- dnl dnl The test-lock result shows what happens if in test-lock.c EXPLICIT_YIELD is dnl turned off: dnl OK if all three tests terminate OK, dnl 0.5 if the first test terminates OK but the second one loops endlessly, dnl 0.0 if the first test already loops endlessly. libextractor-1.3/m4/glibc2.m40000644000175000017500000000135411260753602012731 00000000000000# glibc2.m4 serial 1 dnl Copyright (C) 2000-2002, 2004 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # Test for the GNU C Library, version 2.0 or newer. # From Bruno Haible. AC_DEFUN([gt_GLIBC2], [ AC_CACHE_CHECK(whether we are using the GNU C Library 2 or newer, ac_cv_gnu_library_2, [AC_EGREP_CPP([Lucky GNU user], [ #include #ifdef __GNU_LIBRARY__ #if (__GLIBC__ >= 2) Lucky GNU user #endif #endif ], ac_cv_gnu_library_2=yes, ac_cv_gnu_library_2=no) ] ) AC_SUBST(GLIBC2) GLIBC2="$ac_cv_gnu_library_2" ] ) libextractor-1.3/m4/ltversion.m40000644000175000017500000000126212255663135013620 00000000000000# ltversion.m4 -- version numbers -*- Autoconf -*- # # Copyright (C) 2004 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # @configure_input@ # serial 3337 ltversion.m4 # This file is part of GNU Libtool m4_define([LT_PACKAGE_VERSION], [2.4.2]) m4_define([LT_PACKAGE_REVISION], [1.3337]) AC_DEFUN([LTVERSION_VERSION], [macro_version='2.4.2' macro_revision='1.3337' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) libextractor-1.3/m4/lib-link.m40000644000175000017500000006424411260753602013277 00000000000000# lib-link.m4 serial 9 (gettext-0.16) dnl Copyright (C) 2001-2006 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. AC_PREREQ(2.50) dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and dnl the libraries corresponding to explicit and implicit dependencies. dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and dnl augments the CPPFLAGS variable. AC_DEFUN([AC_LIB_LINKFLAGS], [ AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) define([Name],[translit([$1],[./-], [___])]) define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [ AC_LIB_LINKFLAGS_BODY([$1], [$2]) ac_cv_lib[]Name[]_libs="$LIB[]NAME" ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME" ac_cv_lib[]Name[]_cppflags="$INC[]NAME" ]) LIB[]NAME="$ac_cv_lib[]Name[]_libs" LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs" INC[]NAME="$ac_cv_lib[]Name[]_cppflags" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) AC_SUBST([LIB]NAME) AC_SUBST([LTLIB]NAME) dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the dnl results of this search when this library appears as a dependency. HAVE_LIB[]NAME=yes undefine([Name]) undefine([NAME]) ]) dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode) dnl searches for libname and the libraries corresponding to explicit and dnl implicit dependencies, together with the specified include files and dnl the ability to compile and link the specified testcode. If found, it dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty. AC_DEFUN([AC_LIB_HAVE_LINKFLAGS], [ AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) define([Name],[translit([$1],[./-], [___])]) define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME dnl accordingly. AC_LIB_LINKFLAGS_BODY([$1], [$2]) dnl Add $INC[]NAME to CPPFLAGS before performing the following checks, dnl because if the user has installed lib[]Name and not disabled its use dnl via --without-lib[]Name-prefix, he wants to use it. ac_save_CPPFLAGS="$CPPFLAGS" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [ ac_save_LIBS="$LIBS" LIBS="$LIBS $LIB[]NAME" AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no]) LIBS="$ac_save_LIBS" ]) if test "$ac_cv_lib[]Name" = yes; then HAVE_LIB[]NAME=yes AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.]) AC_MSG_CHECKING([how to link with lib[]$1]) AC_MSG_RESULT([$LIB[]NAME]) else HAVE_LIB[]NAME=no dnl If $LIB[]NAME didn't lead to a usable library, we don't need dnl $INC[]NAME either. CPPFLAGS="$ac_save_CPPFLAGS" LIB[]NAME= LTLIB[]NAME= fi AC_SUBST([HAVE_LIB]NAME) AC_SUBST([LIB]NAME) AC_SUBST([LTLIB]NAME) undefine([Name]) undefine([NAME]) ]) dnl Determine the platform dependent parameters needed to use rpath: dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator, dnl hardcode_direct, hardcode_minus_L. AC_DEFUN([AC_LIB_RPATH], [ dnl Tell automake >= 1.10 to complain if config.rpath is missing. m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])]) AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [ CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh . ./conftest.sh rm -f ./conftest.sh acl_cv_rpath=done ]) wl="$acl_cv_wl" libext="$acl_cv_libext" shlibext="$acl_cv_shlibext" hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" hardcode_direct="$acl_cv_hardcode_direct" hardcode_minus_L="$acl_cv_hardcode_minus_L" dnl Determine whether the user wants rpath handling at all. AC_ARG_ENABLE(rpath, [ --disable-rpath do not hardcode runtime library paths], :, enable_rpath=yes) ]) dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and dnl the libraries corresponding to explicit and implicit dependencies. dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. AC_DEFUN([AC_LIB_LINKFLAGS_BODY], [ AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])]) dnl By default, look in $includedir and $libdir. use_additional=yes AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) AC_LIB_ARG_WITH([lib$1-prefix], [ --with-lib$1-prefix[=DIR] search for lib$1 in DIR/include and DIR/lib --without-lib$1-prefix don't search for lib$1 in includedir and libdir], [ if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" fi fi ]) dnl Search the library and its dependencies in $additional_libdir and dnl $LDFLAGS. Using breadth-first-seach. LIB[]NAME= LTLIB[]NAME= INC[]NAME= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='$1 $2' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" dnl See if it was already located by an earlier AC_LIB_LINKFLAGS dnl or AC_LIB_HAVE_LINKFLAGS call. uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" else dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined dnl that this library doesn't exist. So just drop it. : fi else dnl Search the library lib$name in $additional_libdir and $LDFLAGS dnl and the already constructed $LIBNAME/$LTLIBNAME. found_dir= found_la= found_so= found_a= if test $use_additional = yes; then if test -n "$shlibext" \ && { test -f "$additional_libdir/lib$name.$shlibext" \ || { test "$shlibext" = dll \ && test -f "$additional_libdir/lib$name.dll.a"; }; }; then found_dir="$additional_libdir" if test -f "$additional_libdir/lib$name.$shlibext"; then found_so="$additional_libdir/lib$name.$shlibext" else found_so="$additional_libdir/lib$name.dll.a" fi if test -f "$additional_libdir/lib$name.la"; then found_la="$additional_libdir/lib$name.la" fi else if test -f "$additional_libdir/lib$name.$libext"; then found_dir="$additional_libdir" found_a="$additional_libdir/lib$name.$libext" if test -f "$additional_libdir/lib$name.la"; then found_la="$additional_libdir/lib$name.la" fi fi fi fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` if test -n "$shlibext" \ && { test -f "$dir/lib$name.$shlibext" \ || { test "$shlibext" = dll \ && test -f "$dir/lib$name.dll.a"; }; }; then found_dir="$dir" if test -f "$dir/lib$name.$shlibext"; then found_so="$dir/lib$name.$shlibext" else found_so="$dir/lib$name.dll.a" fi if test -f "$dir/lib$name.la"; then found_la="$dir/lib$name.la" fi else if test -f "$dir/lib$name.$libext"; then found_dir="$dir" found_a="$dir/lib$name.$libext" if test -f "$dir/lib$name.la"; then found_la="$dir/lib$name.la" fi fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then dnl Found the library. LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then dnl Linking with a shared library. We attempt to hardcode its dnl directory into the executable's runpath, unless it's the dnl standard /usr/lib. if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/$acl_libdirstem"; then dnl No hardcoding is needed. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else dnl Use an explicit option to hardcode DIR into the resulting dnl binary. dnl Potentially add DIR to ltrpathdirs. dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi dnl The hardcoding into $LIBNAME is system dependent. if test "$hardcode_direct" = yes; then dnl Using DIR/libNAME.so during linking hardcodes DIR into the dnl resulting binary. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then dnl Use an explicit option to hardcode DIR into the resulting dnl binary. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" dnl Potentially add DIR to rpathdirs. dnl The rpathdirs will be appended to $LIBNAME at the end. haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else dnl Rely on "-L$found_dir". dnl But don't add it if it's already contained in the LDFLAGS dnl or the already constructed $LIBNAME haveit= for x in $LDFLAGS $LIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" fi if test "$hardcode_minus_L" != no; then dnl FIXME: Not sure whether we should use dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" dnl here. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH dnl here, because this doesn't fit in flags passed to the dnl compiler. So give up. No hardcoding. This affects only dnl very old systems. dnl FIXME: Not sure whether we should use dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" dnl here. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then dnl Linking with a static library. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" else dnl We shouldn't come here, but anyway it's good to have a dnl fallback. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" fi fi dnl Assume the include files are nearby. additional_includedir= case "$found_dir" in */$acl_libdirstem | */$acl_libdirstem/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then dnl Potentially add $additional_includedir to $INCNAME. dnl But don't add it dnl 1. if it's the standard /usr/include, dnl 2. if it's /usr/local/include and we are using GCC on Linux, dnl 3. if it's already present in $CPPFLAGS or the already dnl constructed $INCNAME, dnl 4. if it doesn't exist as a directory. if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INC[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then dnl Really add $additional_includedir to $INCNAME. INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir" fi fi fi fi fi dnl Look for dependencies. if test -n "$found_la"; then dnl Read the .la file. It defines the variables dnl dlname, library_names, old_library, dependency_libs, current, dnl age, revision, installed, dlopen, dlpreopen, libdir. save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" dnl We use only dependency_libs. for dep in $dependency_libs; do case "$dep" in -L*) additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME. dnl But don't add it dnl 1. if it's the standard /usr/lib, dnl 2. if it's /usr/local/lib and we are using GCC on Linux, dnl 3. if it's already present in $LDFLAGS or the already dnl constructed $LIBNAME, dnl 4. if it doesn't exist as a directory. if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then haveit= if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LIBNAME. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir" fi fi haveit= for x in $LDFLAGS $LTLIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LTLIBNAME. LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir" fi fi fi fi ;; -R*) dir=`echo "X$dep" | sed -e 's/^X-R//'` if test "$enable_rpath" != no; then dnl Potentially add DIR to rpathdirs. dnl The rpathdirs will be appended to $LIBNAME at the end. haveit= for x in $rpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $dir" fi dnl Potentially add DIR to ltrpathdirs. dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. haveit= for x in $ltrpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $dir" fi fi ;; -l*) dnl Handle this in the next round. names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ;; *.la) dnl Handle this in the next round. Throw away the .la's dnl directory; it is already contained in a preceding -L dnl option. names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ;; *) dnl Most likely an immediate library name. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep" LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep" ;; esac done fi else dnl Didn't find the library; assume it is in the system directories dnl known to the linker and runtime loader. (All the system dnl directories known to the linker should also be known to the dnl runtime loader, otherwise the system is severely misconfigured.) LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$hardcode_libdir_separator"; then dnl Weird platform: only the last -rpath option counts, the user must dnl pass all path elements in one option. We can arrange that for a dnl single library, but not when more than one $LIBNAMEs are used. alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir" done dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl. acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" else dnl The -rpath options are cumulative. for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then dnl When using libtool, the option that works for both libraries and dnl executables is -R. The -R options are cumulative. for found_dir in $ltrpathdirs; do LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" done fi ]) dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, dnl unless already present in VAR. dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes dnl contains two or three consecutive elements that belong together. AC_DEFUN([AC_LIB_APPENDTOVAR], [ for element in [$2]; do haveit= for x in $[$1]; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then [$1]="${[$1]}${[$1]:+ }$element" fi done ]) dnl For those cases where a variable contains several -L and -l options dnl referring to unknown libraries and directories, this macro determines the dnl necessary additional linker options for the runtime path. dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL]) dnl sets LDADDVAR to linker options needed together with LIBSVALUE. dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed, dnl otherwise linking without libtool is assumed. AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS], [ AC_REQUIRE([AC_LIB_RPATH]) AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) $1= if test "$enable_rpath" != no; then if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then dnl Use an explicit option to hardcode directories into the resulting dnl binary. rpathdirs= next= for opt in $2; do if test -n "$next"; then dir="$next" dnl No need to hardcode the standard /usr/lib. if test "X$dir" != "X/usr/$acl_libdirstem"; then rpathdirs="$rpathdirs $dir" fi next= else case $opt in -L) next=yes ;; -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'` dnl No need to hardcode the standard /usr/lib. if test "X$dir" != "X/usr/$acl_libdirstem"; then rpathdirs="$rpathdirs $dir" fi next= ;; *) next= ;; esac fi done if test "X$rpathdirs" != "X"; then if test -n ""$3""; then dnl libtool is used for linking. Use -R options. for dir in $rpathdirs; do $1="${$1}${$1:+ }-R$dir" done else dnl The linker is used for linking directly. if test -n "$hardcode_libdir_separator"; then dnl Weird platform: only the last -rpath option counts, the user dnl must pass all path elements in one option. alldirs= for dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$dir" done acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" $1="$flag" else dnl The -rpath options are cumulative. for dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$dir" eval flag=\"$hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" $1="${$1}${$1:+ }$flag" done fi fi fi fi fi AC_SUBST([$1]) ]) libextractor-1.3/m4/isc-posix.m40000644000175000017500000000213311260753602013501 00000000000000# isc-posix.m4 serial 2 (gettext-0.11.2) dnl Copyright (C) 1995-2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. # This file is not needed with autoconf-2.53 and newer. Remove it in 2005. # This test replaces the one in autoconf. # Currently this macro should have the same name as the autoconf macro # because gettext's gettext.m4 (distributed in the automake package) # still uses it. Otherwise, the use in gettext.m4 makes autoheader # give these diagnostics: # configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX # configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX undefine([AC_ISC_POSIX]) AC_DEFUN([AC_ISC_POSIX], [ dnl This test replaces the obsolescent AC_ISC_POSIX kludge. AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"]) ] ) libextractor-1.3/m4/inttypes_h.m40000644000175000017500000000164411260753602013757 00000000000000# inttypes_h.m4 serial 7 dnl Copyright (C) 1997-2004, 2006 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Paul Eggert. # Define HAVE_INTTYPES_H_WITH_UINTMAX if exists, # doesn't clash with , and declares uintmax_t. AC_DEFUN([gl_AC_HEADER_INTTYPES_H], [ AC_CACHE_CHECK([for inttypes.h], gl_cv_header_inttypes_h, [AC_TRY_COMPILE( [#include #include ], [uintmax_t i = (uintmax_t) -1; return !i;], gl_cv_header_inttypes_h=yes, gl_cv_header_inttypes_h=no)]) if test $gl_cv_header_inttypes_h = yes; then AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H_WITH_UINTMAX, 1, [Define if exists, doesn't clash with , and declares uintmax_t. ]) fi ]) libextractor-1.3/m4/Makefile.in0000644000175000017500000003244012256015517013374 00000000000000# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ subdir = m4 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/abi-gsf.m4 \ $(top_srcdir)/m4/ac_define_dir.m4 \ $(top_srcdir)/m4/ax_create_pkgconfig_info.m4 \ $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/glib-2.0.m4 \ $(top_srcdir)/m4/gtk-2.0.m4 $(top_srcdir)/m4/gtk-3.0.m4 \ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/m4/po.m4 \ $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/acinclude.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GLIB_CFLAGS = @GLIB_CFLAGS@ GLIB_GENMARSHAL = @GLIB_GENMARSHAL@ GLIB_LIBS = @GLIB_LIBS@ GLIB_MKENUMS = @GLIB_MKENUMS@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GOBJECT_QUERY = @GOBJECT_QUERY@ GREP = @GREP@ GSF_CFLAGS = @GSF_CFLAGS@ GSF_GNOME_CFLAGS = @GSF_GNOME_CFLAGS@ GSF_GNOME_LIBS = @GSF_GNOME_LIBS@ GSF_LIBS = @GSF_LIBS@ GSTREAMER_APP_CFLAGS = @GSTREAMER_APP_CFLAGS@ GSTREAMER_APP_LIBS = @GSTREAMER_APP_LIBS@ GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@ GSTREAMER_LIBS = @GSTREAMER_LIBS@ GSTREAMER_PBUTILS_CFLAGS = @GSTREAMER_PBUTILS_CFLAGS@ GSTREAMER_PBUTILS_LIBS = @GSTREAMER_PBUTILS_LIBS@ GSTREAMER_TAG_CFLAGS = @GSTREAMER_TAG_CFLAGS@ GSTREAMER_TAG_LIBS = @GSTREAMER_TAG_LIBS@ GTK_CFLAGS = @GTK_CFLAGS@ GTK_LIBS = @GTK_LIBS@ HAVE_CXX = @HAVE_CXX@ HAVE_ZZUF = @HAVE_ZZUF@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ ISOLOCALEDIR = @ISOLOCALEDIR@ LD = @LD@ LDFLAGS = @LDFLAGS@ LE_INTLINCL = @LE_INTLINCL@ LE_LIBINTL = @LE_LIBINTL@ LE_LIB_LDFLAGS = @LE_LIB_LDFLAGS@ LE_LIB_LIBS = @LE_LIB_LIBS@ LE_PLUGIN_LDFLAGS = @LE_PLUGIN_LDFLAGS@ LIBEXT = @LIBEXT@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIB_VERSION_AGE = @LIB_VERSION_AGE@ LIB_VERSION_CURRENT = @LIB_VERSION_CURRENT@ LIB_VERSION_REVISION = @LIB_VERSION_REVISION@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALEDIR = @LOCALEDIR@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PACKAGE_VERSION_NOALPHA = @PACKAGE_VERSION_NOALPHA@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ POSUB = @POSUB@ QT_CPPFLAGS = @QT_CPPFLAGS@ QT_LDFLAGS = @QT_LDFLAGS@ RANLIB = @RANLIB@ RPLUGINDIR = @RPLUGINDIR@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SOCKET_LIBS = @SOCKET_LIBS@ STRIP = @STRIP@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ XTRA_CPPLIBS = @XTRA_CPPLIBS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ pkgconfig_libdir = @pkgconfig_libdir@ pkgconfig_libfile = @pkgconfig_libfile@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target = @target@ target_alias = @target_alias@ target_cpu = @target_cpu@ target_os = @target_os@ target_vendor = @target_vendor@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = glibc2.m4 intl.m4 intldir.m4 lock.m4 visibility.m4 \ ac_python_devel.m4 \ abi-gsf.m4 \ ax_create_pkgconfig_info.m4 \ python.m4 \ codeset.m4 \ gettext.m4 \ glibc21.m4 \ glib-2.0.m4 \ gtk-2.0.m4\ iconv.m4 \ intdiv0.m4 \ intmax.m4 \ inttypes.m4 \ inttypes_h.m4 \ inttypes-pri.m4 \ isc-posix.m4 \ lcmessage.m4 \ lib-ld.m4 \ lib-link.m4 \ lib-prefix.m4 \ longdouble.m4 \ longlong.m4 \ nls.m4 \ pkg.m4 \ po.m4 \ printf-posix.m4 \ progtest.m4 \ signed.m4 \ size_max.m4 \ stdint_h.m4 \ uintmax_t.m4 \ ulonglong.m4 \ wchar_t.m4 \ wint_t.m4 \ xsize.m4 all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu m4/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu m4/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ distclean distclean-generic distclean-libtool distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libextractor-1.3/m4/ulonglong.m40000644000175000017500000000353211260753602013573 00000000000000# ulonglong.m4 serial 6 dnl Copyright (C) 1999-2006 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Paul Eggert. # Define HAVE_UNSIGNED_LONG_LONG_INT if 'unsigned long long int' works. # This fixes a bug in Autoconf 2.60, but can be removed once we # assume 2.61 everywhere. # Note: If the type 'unsigned long long int' exists but is only 32 bits # large (as on some very old compilers), AC_TYPE_UNSIGNED_LONG_LONG_INT # will not be defined. In this case you can treat 'unsigned long long int' # like 'unsigned long int'. AC_DEFUN([AC_TYPE_UNSIGNED_LONG_LONG_INT], [ AC_CACHE_CHECK([for unsigned long long int], [ac_cv_type_unsigned_long_long_int], [AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[unsigned long long int ull = 18446744073709551615ULL; typedef int a[(18446744073709551615ULL <= (unsigned long long int) -1 ? 1 : -1)]; int i = 63;]], [[unsigned long long int ullmax = 18446744073709551615ull; return (ull << 63 | ull >> 63 | ull << i | ull >> i | ullmax / ull | ullmax % ull);]])], [ac_cv_type_unsigned_long_long_int=yes], [ac_cv_type_unsigned_long_long_int=no])]) if test $ac_cv_type_unsigned_long_long_int = yes; then AC_DEFINE([HAVE_UNSIGNED_LONG_LONG_INT], 1, [Define to 1 if the system has the type `unsigned long long int'.]) fi ]) # This macro is obsolescent and should go away soon. AC_DEFUN([gl_AC_TYPE_UNSIGNED_LONG_LONG], [ AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT]) ac_cv_type_unsigned_long_long=$ac_cv_type_unsigned_long_long_int if test $ac_cv_type_unsigned_long_long = yes; then AC_DEFINE(HAVE_UNSIGNED_LONG_LONG, 1, [Define if you have the 'unsigned long long' type.]) fi ]) libextractor-1.3/m4/pkg.m40000644000175000017500000001211411260753602012344 00000000000000# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- # # Copyright © 2004 Scott James Remnant . # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # PKG_PROG_PKG_CONFIG([MIN-VERSION]) # ---------------------------------- AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) fi if test -n "$PKG_CONFIG"; then _pkg_min_version=m4_default([$1], [0.9.0]) AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) PKG_CONFIG="" fi fi[]dnl ])# PKG_PROG_PKG_CONFIG # PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) # # Check to see whether a particular set of modules exists. Similar # to PKG_CHECK_MODULES(), but does not set variables or print errors. # # # Similar to PKG_CHECK_MODULES, make sure that the first instance of # this or PKG_CHECK_MODULES is called, or make sure to call # PKG_CHECK_EXISTS manually # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_EXISTS], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl if test -n "$PKG_CONFIG" && \ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then m4_ifval([$2], [$2], [:]) m4_ifvaln([$3], [else $3])dnl fi]) # _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) # --------------------------------------------- m4_define([_PKG_CONFIG], [if test -n "$PKG_CONFIG"; then if test -n "$$1"; then pkg_cv_[]$1="$$1" else PKG_CHECK_EXISTS([$3], [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], [pkg_failed=yes]) fi else pkg_failed=untried fi[]dnl ])# _PKG_CONFIG # _PKG_SHORT_ERRORS_SUPPORTED # ----------------------------- AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], [AC_REQUIRE([PKG_PROG_PKG_CONFIG]) if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi[]dnl ])# _PKG_SHORT_ERRORS_SUPPORTED # PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], # [ACTION-IF-NOT-FOUND]) # # # Note that if there is a possibility the first call to # PKG_CHECK_MODULES might not happen, you should be sure to include an # explicit call to PKG_PROG_PKG_CONFIG in your configure.ac # # # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_MODULES], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl pkg_failed=no AC_MSG_CHECKING([for $1]) _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) _PKG_CONFIG([$1][_LIBS], [libs], [$2]) m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS and $1[]_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.]) if test $pkg_failed = yes; then _PKG_SHORT_ERRORS_SUPPORTED if test $_pkg_short_errors_supported = yes; then $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2"` else $1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"` fi # Put the nasty error message in config.log where it belongs echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD ifelse([$4], , [AC_MSG_ERROR(dnl [Package requirements ($2) were not met: $$1_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. _PKG_TEXT ])], [$4]) elif test $pkg_failed = untried; then ifelse([$4], , [AC_MSG_FAILURE(dnl [The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. _PKG_TEXT To get pkg-config, see .])], [$4]) else $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS $1[]_LIBS=$pkg_cv_[]$1[]_LIBS AC_MSG_RESULT([yes]) ifelse([$3], , :, [$3]) fi[]dnl ])# PKG_CHECK_MODULES libextractor-1.3/m4/po.m40000644000175000017500000004461612220070440012202 00000000000000# po.m4 serial 17 (gettext-0.18) dnl Copyright (C) 1995-2010 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995-2000. dnl Bruno Haible , 2000-2003. AC_PREREQ([2.50]) dnl Checks for all prerequisites of the po subdirectory. AC_DEFUN([AM_PO_SUBDIRS], [ AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake AC_REQUIRE([AM_NLS])dnl dnl Release version of the gettext macros. This is used to ensure that dnl the gettext macros and po/Makefile.in.in are in sync. AC_SUBST([GETTEXT_MACRO_VERSION], [0.18]) dnl Perform the following tests also if --disable-nls has been given, dnl because they are needed for "make dist" to work. dnl Search for GNU msgfmt in the PATH. dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions. dnl The second test excludes FreeBSD msgfmt. AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, [$ac_dir/$ac_word --statistics /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], :) AC_PATH_PROG([GMSGFMT], [gmsgfmt], [$MSGFMT]) dnl Test whether it is GNU msgfmt >= 0.15. changequote(,)dnl case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;; *) MSGFMT_015=$MSGFMT ;; esac changequote([,])dnl AC_SUBST([MSGFMT_015]) changequote(,)dnl case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; *) GMSGFMT_015=$GMSGFMT ;; esac changequote([,])dnl AC_SUBST([GMSGFMT_015]) dnl Search for GNU xgettext 0.12 or newer in the PATH. dnl The first test excludes Solaris xgettext and early GNU xgettext versions. dnl The second test excludes FreeBSD xgettext. AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], :) dnl Remove leftover from FreeBSD xgettext call. rm -f messages.po dnl Test whether it is GNU xgettext >= 0.15. changequote(,)dnl case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; *) XGETTEXT_015=$XGETTEXT ;; esac changequote([,])dnl AC_SUBST([XGETTEXT_015]) dnl Search for GNU msgmerge 0.11 or newer in the PATH. AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge, [$ac_dir/$ac_word --update -q /dev/null /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1], :) dnl Installation directories. dnl Autoconf >= 2.60 defines localedir. For older versions of autoconf, we dnl have to define it here, so that it can be used in po/Makefile. test -n "$localedir" || localedir='${datadir}/locale' AC_SUBST([localedir]) dnl Support for AM_XGETTEXT_OPTION. test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= AC_SUBST([XGETTEXT_EXTRA_OPTIONS]) AC_CONFIG_COMMANDS([po-directories], [[ for ac_file in $CONFIG_FILES; do # Support "outfile[:infile[:infile...]]" case "$ac_file" in *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; esac # PO directories have a Makefile.in generated from Makefile.in.in. case "$ac_file" in */Makefile.in) # Adjust a relative srcdir. ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` # In autoconf-2.13 it is called $ac_given_srcdir. # In autoconf-2.50 it is called $srcdir. test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" case "$ac_given_srcdir" in .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; /*) top_srcdir="$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;; esac # Treat a directory as a PO directory if and only if it has a # POTFILES.in file. This allows packages to have multiple PO # directories under different names or in different locations. if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then rm -f "$ac_dir/POTFILES" test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" POMAKEFILEDEPS="POTFILES.in" # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend # on $ac_dir but don't depend on user-specified configuration # parameters. if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then # The LINGUAS file contains the set of available languages. if test -n "$OBSOLETE_ALL_LINGUAS"; then test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" fi ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` # Hide the ALL_LINGUAS assigment from automake < 1.5. eval 'ALL_LINGUAS''=$ALL_LINGUAS_' POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" else # The set of available languages was given in configure.in. # Hide the ALL_LINGUAS assigment from automake < 1.5. eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' fi # Compute POFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) # Compute UPDATEPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) # Compute DUMMYPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) # Compute GMOFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) case "$ac_given_srcdir" in .) srcdirpre= ;; *) srcdirpre='$(srcdir)/' ;; esac POFILES= UPDATEPOFILES= DUMMYPOFILES= GMOFILES= for lang in $ALL_LINGUAS; do POFILES="$POFILES $srcdirpre$lang.po" UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" DUMMYPOFILES="$DUMMYPOFILES $lang.nop" GMOFILES="$GMOFILES $srcdirpre$lang.gmo" done # CATALOGS depends on both $ac_dir and the user's LINGUAS # environment variable. INST_LINGUAS= if test -n "$ALL_LINGUAS"; then for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "$LINGUAS"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then INST_LINGUAS="$INST_LINGUAS $presentlang" fi done fi CATALOGS= if test -n "$INST_LINGUAS"; then for lang in $INST_LINGUAS; do CATALOGS="$CATALOGS $lang.gmo" done fi test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do if test -f "$f"; then case "$f" in *.orig | *.bak | *~) ;; *) cat "$f" >> "$ac_dir/Makefile" ;; esac fi done fi ;; esac done]], [# Capture the value of obsolete ALL_LINGUAS because we need it to compute # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it # from automake < 1.5. eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' # Capture the value of LINGUAS because we need it to compute CATALOGS. LINGUAS="${LINGUAS-%UNSET%}" ]) ]) dnl Postprocesses a Makefile in a directory containing PO files. AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE], [ # When this code is run, in config.status, two variables have already been # set: # - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in, # - LINGUAS is the value of the environment variable LINGUAS at configure # time. changequote(,)dnl # Adjust a relative srcdir. ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` # In autoconf-2.13 it is called $ac_given_srcdir. # In autoconf-2.50 it is called $srcdir. test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" case "$ac_given_srcdir" in .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; /*) top_srcdir="$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;; esac # Find a way to echo strings without interpreting backslash. if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then gt_echo='echo' else if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then gt_echo='printf %s\n' else echo_func () { cat < "$ac_file.tmp" if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then # Add dependencies that cannot be formulated as a simple suffix rule. for lang in $ALL_LINGUAS; do frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` cat >> "$ac_file.tmp" < /dev/null; then # Add dependencies that cannot be formulated as a simple suffix rule. for lang in $ALL_LINGUAS; do frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'` cat >> "$ac_file.tmp" <> "$ac_file.tmp" <= $min_gtk_version) if test x$PKG_CONFIG != xno ; then ## don't try to run the test against uninstalled libtool libs if $PKG_CONFIG --uninstalled $pkg_config_args; then echo "Will use uninstalled version of GTK+ found in PKG_CONFIG_PATH" enable_gtktest=no fi if $PKG_CONFIG --atleast-version $min_gtk_version $pkg_config_args; then : else no_gtk=yes fi fi if test x"$no_gtk" = x ; then GTK_CFLAGS=`$PKG_CONFIG $pkg_config_args --cflags` GTK_LIBS=`$PKG_CONFIG $pkg_config_args --libs` gtk_config_major_version=`$PKG_CONFIG --modversion gtk+-2.0 | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` gtk_config_minor_version=`$PKG_CONFIG --modversion gtk+-2.0 | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` gtk_config_micro_version=`$PKG_CONFIG --modversion gtk+-2.0 | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` if test "x$enable_gtktest" = "xyes" ; then ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $GTK_CFLAGS" LIBS="$GTK_LIBS $LIBS" dnl dnl Now check if the installed GTK+ is sufficiently new. (Also sanity dnl checks the results of pkg-config to some extent) dnl rm -f conf.gtktest AC_TRY_RUN([ #include #include #include int main () { int major, minor, micro; char *tmp_version; system ("touch conf.gtktest"); /* HP/UX 9 (%@#!) writes to sscanf strings */ tmp_version = g_strdup("$min_gtk_version"); if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { printf("%s, bad version string\n", "$min_gtk_version"); exit(1); } if ((gtk_major_version != $gtk_config_major_version) || (gtk_minor_version != $gtk_config_minor_version) || (gtk_micro_version != $gtk_config_micro_version)) { printf("\n*** 'pkg-config --modversion gtk+-2.0' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n", $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version, gtk_major_version, gtk_minor_version, gtk_micro_version); printf ("*** was found! If pkg-config was correct, then it is best\n"); printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n"); printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n"); printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n"); printf("*** required on your system.\n"); printf("*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n"); printf("*** to point to the correct configuration files\n"); } else if ((gtk_major_version != GTK_MAJOR_VERSION) || (gtk_minor_version != GTK_MINOR_VERSION) || (gtk_micro_version != GTK_MICRO_VERSION)) { printf("*** GTK+ header files (version %d.%d.%d) do not match\n", GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION); printf("*** library (version %d.%d.%d)\n", gtk_major_version, gtk_minor_version, gtk_micro_version); } else { if ((gtk_major_version > major) || ((gtk_major_version == major) && (gtk_minor_version > minor)) || ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro))) { return 0; } else { printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n", gtk_major_version, gtk_minor_version, gtk_micro_version); printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n", major, minor, micro); printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n"); printf("***\n"); printf("*** If you have already installed a sufficiently new version, this error\n"); printf("*** probably means that the wrong copy of the pkg-config shell script is\n"); printf("*** being found. The easiest way to fix this is to remove the old version\n"); printf("*** of GTK+, but you can also set the PKG_CONFIG environment to point to the\n"); printf("*** correct copy of pkg-config. (In this case, you will have to\n"); printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); printf("*** so that the correct libraries are found at run-time))\n"); } } return 1; } ],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi if test "x$no_gtk" = x ; then AC_MSG_RESULT(yes (version $gtk_config_major_version.$gtk_config_minor_version.$gtk_config_micro_version)) ifelse([$2], , :, [$2]) else AC_MSG_RESULT(no) if test "$PKG_CONFIG" = "no" ; then echo "*** A new enough version of pkg-config was not found." echo "*** See http://pkgconfig.sourceforge.net" else if test -f conf.gtktest ; then : else echo "*** Could not run GTK+ test program, checking why..." ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $GTK_CFLAGS" LIBS="$LIBS $GTK_LIBS" AC_TRY_LINK([ #include #include ], [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ], [ echo "*** The test program compiled, but did not run. This usually means" echo "*** that the run-time linker is not finding GTK+ or finding the wrong" echo "*** version of GTK+. If it is not finding GTK+, you'll need to set your" echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" echo "*** to the installed location Also, make sure you have run ldconfig if that" echo "*** is required on your system" echo "***" echo "*** If you have an old version installed, it is best to remove it, although" echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ], [ echo "*** The test program failed to compile or link. See the file config.log for the" echo "*** exact error that occured. This usually means GTK+ is incorrectly installed."]) CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi GTK_CFLAGS="" GTK_LIBS="" ifelse([$3], , :, [$3]) fi AC_SUBST(GTK_CFLAGS) AC_SUBST(GTK_LIBS) rm -f conf.gtktest ]) libextractor-1.3/m4/uintmax_t.m40000644000175000017500000000207611260753602013601 00000000000000# uintmax_t.m4 serial 9 dnl Copyright (C) 1997-2004 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Paul Eggert. AC_PREREQ(2.13) # Define uintmax_t to 'unsigned long' or 'unsigned long long' # if it is not already defined in or . AC_DEFUN([gl_AC_TYPE_UINTMAX_T], [ AC_REQUIRE([gl_AC_HEADER_INTTYPES_H]) AC_REQUIRE([gl_AC_HEADER_STDINT_H]) if test $gl_cv_header_inttypes_h = no && test $gl_cv_header_stdint_h = no; then AC_REQUIRE([gl_AC_TYPE_UNSIGNED_LONG_LONG]) test $ac_cv_type_unsigned_long_long = yes \ && ac_type='unsigned long long' \ || ac_type='unsigned long' AC_DEFINE_UNQUOTED(uintmax_t, $ac_type, [Define to unsigned long or unsigned long long if and don't define.]) else AC_DEFINE(HAVE_UINTMAX_T, 1, [Define if you have the 'uintmax_t' type in or .]) fi ]) libextractor-1.3/m4/iconv.m40000644000175000017500000000642612030336300012676 00000000000000# iconv.m4 serial AM4 (gettext-0.11.3) dnl Copyright (C) 2000-2002 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. AC_DEFUN([AM_ICONV_LINKFLAGS_BODY], [ dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV dnl accordingly. AC_LIB_LINKFLAGS_BODY([iconv]) ]) AC_DEFUN([AM_ICONV_LINK], [ dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and dnl those with the standalone portable GNU libiconv installed). dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV dnl accordingly. AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) dnl Add $INCICONV to CPPFLAGS before performing the following checks, dnl because if the user has installed libiconv and not disabled its use dnl via --without-libiconv-prefix, he wants to use it. The first dnl AC_TRY_LINK will then fail, the second AC_TRY_LINK will succeed. am_save_CPPFLAGS="$CPPFLAGS" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV]) AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [ am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no AC_TRY_LINK([#include #include ], [iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd);], am_cv_func_iconv=yes) if test "$am_cv_func_iconv" != yes; then am_save_LIBS="$LIBS" LIBS="$LIBS $LIBICONV" AC_TRY_LINK([#include #include ], [iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd);], am_cv_lib_iconv=yes am_cv_func_iconv=yes) LIBS="$am_save_LIBS" fi ]) if test "$am_cv_func_iconv" = yes; then AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.]) fi if test "$am_cv_lib_iconv" = yes; then AC_MSG_CHECKING([how to link with libiconv]) AC_MSG_RESULT([$LIBICONV]) else dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV dnl either. CPPFLAGS="$am_save_CPPFLAGS" LIBICONV= LTLIBICONV= fi AC_SUBST(LIBICONV) AC_SUBST(LTLIBICONV) ]) AC_DEFUN([AM_ICONV], [ AM_ICONV_LINK if test "$am_cv_func_iconv" = yes; then AC_MSG_CHECKING([for iconv declaration]) AC_CACHE_VAL(am_cv_proto_iconv, [ AC_TRY_COMPILE([ #include #include extern #ifdef __cplusplus "C" #endif #if defined(__STDC__) || defined(__cplusplus) size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); #else size_t iconv(); #endif ], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const") am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"]) am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` AC_MSG_RESULT([$]{ac_t:- }[$]am_cv_proto_iconv) AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1, [Define as const if the declaration of iconv() needs const.]) fi ]) libextractor-1.3/m4/Makefile.am0000644000175000017500000000111611665143740013362 00000000000000EXTRA_DIST = glibc2.m4 intl.m4 intldir.m4 lock.m4 visibility.m4 \ ac_python_devel.m4 \ abi-gsf.m4 \ ax_create_pkgconfig_info.m4 \ python.m4 \ codeset.m4 \ gettext.m4 \ glibc21.m4 \ glib-2.0.m4 \ gtk-2.0.m4\ iconv.m4 \ intdiv0.m4 \ intmax.m4 \ inttypes.m4 \ inttypes_h.m4 \ inttypes-pri.m4 \ isc-posix.m4 \ lcmessage.m4 \ lib-ld.m4 \ lib-link.m4 \ lib-prefix.m4 \ longdouble.m4 \ longlong.m4 \ nls.m4 \ pkg.m4 \ po.m4 \ printf-posix.m4 \ progtest.m4 \ signed.m4 \ size_max.m4 \ stdint_h.m4 \ uintmax_t.m4 \ ulonglong.m4 \ wchar_t.m4 \ wint_t.m4 \ xsize.m4 libextractor-1.3/m4/visibility.m40000644000175000017500000000413011260753602013751 00000000000000# visibility.m4 serial 1 (gettext-0.15) dnl Copyright (C) 2005 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Tests whether the compiler supports the command-line option dnl -fvisibility=hidden and the function and variable attributes dnl __attribute__((__visibility__("hidden"))) and dnl __attribute__((__visibility__("default"))). dnl Does *not* test for __visibility__("protected") - which has tricky dnl semantics (see the 'vismain' test in glibc) and does not exist e.g. on dnl MacOS X. dnl Does *not* test for __visibility__("internal") - which has processor dnl dependent semantics. dnl Does *not* test for #pragma GCC visibility push(hidden) - which is dnl "really only recommended for legacy code". dnl Set the variable CFLAG_VISIBILITY. dnl Defines and sets the variable HAVE_VISIBILITY. AC_DEFUN([gl_VISIBILITY], [ AC_REQUIRE([AC_PROG_CC]) CFLAG_VISIBILITY= HAVE_VISIBILITY=0 if test -n "$GCC"; then AC_MSG_CHECKING([for simple visibility declarations]) AC_CACHE_VAL(gl_cv_cc_visibility, [ gl_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -fvisibility=hidden" AC_TRY_COMPILE( [extern __attribute__((__visibility__("hidden"))) int hiddenvar; extern __attribute__((__visibility__("default"))) int exportedvar; extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void); extern __attribute__((__visibility__("default"))) int exportedfunc (void);], [], gl_cv_cc_visibility=yes, gl_cv_cc_visibility=no) CFLAGS="$gl_save_CFLAGS"]) AC_MSG_RESULT([$gl_cv_cc_visibility]) if test $gl_cv_cc_visibility = yes; then CFLAG_VISIBILITY="-fvisibility=hidden" HAVE_VISIBILITY=1 fi fi AC_SUBST([CFLAG_VISIBILITY]) AC_SUBST([HAVE_VISIBILITY]) AC_DEFINE_UNQUOTED([HAVE_VISIBILITY], [$HAVE_VISIBILITY], [Define to 1 or 0, depending whether the compiler supports simple visibility declarations.]) ]) libextractor-1.3/m4/gettext.m40000644000175000017500000003773211260753602013264 00000000000000# gettext.m4 serial 59 (gettext-0.16.1) dnl Copyright (C) 1995-2006 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995-2000. dnl Bruno Haible , 2000-2006. dnl Macro to add for using GNU gettext. dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]). dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The dnl default (if it is not specified or empty) is 'no-libtool'. dnl INTLSYMBOL should be 'external' for packages with no intl directory, dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory. dnl If INTLSYMBOL is 'use-libtool', then a libtool library dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static, dnl depending on --{enable,disable}-{shared,static} and on the presence of dnl AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library dnl $(top_builddir)/intl/libintl.a will be created. dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext dnl implementations (in libc or libintl) without the ngettext() function dnl will be ignored. If NEEDSYMBOL is specified and is dnl 'need-formatstring-macros', then GNU gettext implementations that don't dnl support the ISO C 99 formatstring macros will be ignored. dnl INTLDIR is used to find the intl libraries. If empty, dnl the value `$(top_builddir)/intl/' is used. dnl dnl The result of the configuration is one of three cases: dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled dnl and used. dnl Catalog format: GNU --> install in $(datadir) dnl Catalog extension: .mo after installation, .gmo in source tree dnl 2) GNU gettext has been found in the system's C library. dnl Catalog format: GNU --> install in $(datadir) dnl Catalog extension: .mo after installation, .gmo in source tree dnl 3) No internationalization, always use English msgid. dnl Catalog format: none dnl Catalog extension: none dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur. dnl The use of .gmo is historical (it was needed to avoid overwriting the dnl GNU format catalogs when building on a platform with an X/Open gettext), dnl but we keep it in order not to force irrelevant filename changes on the dnl maintainers. dnl AC_DEFUN([AM_GNU_GETTEXT], [ dnl Argument checking. ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], , [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT ])])])])]) ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], , [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT ])])])]) define([gt_included_intl], ifelse([$1], [external], ifdef([AM_GNU_GETTEXT_][INTL_SUBDIR], [yes], [no]), [yes])) define([gt_libtool_suffix_prefix], ifelse([$1], [use-libtool], [l], [])) gt_NEEDS_INIT AM_GNU_GETTEXT_NEED([$2]) AC_REQUIRE([AM_PO_SUBDIRS])dnl ifelse(gt_included_intl, yes, [ AC_REQUIRE([AM_INTL_SUBDIR])dnl ]) dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) dnl Sometimes libintl requires libiconv, so first search for libiconv. dnl Ideally we would do this search only after the dnl if test "$USE_NLS" = "yes"; then dnl if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT dnl the configure script would need to contain the same shell code dnl again, outside any 'if'. There are two solutions: dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'. dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE. dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not dnl documented, we avoid it. ifelse(gt_included_intl, yes, , [ AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) ]) dnl Sometimes, on MacOS X, libintl requires linking with CoreFoundation. gt_INTL_MACOSX dnl Set USE_NLS. AC_REQUIRE([AM_NLS]) ifelse(gt_included_intl, yes, [ BUILD_INCLUDED_LIBINTL=no USE_INCLUDED_LIBINTL=no ]) LIBINTL= LTLIBINTL= POSUB= dnl Add a version number to the cache macros. case " $gt_needs " in *" need-formatstring-macros "*) gt_api_version=3 ;; *" need-ngettext "*) gt_api_version=2 ;; *) gt_api_version=1 ;; esac gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" dnl If we use NLS figure out what method if test "$USE_NLS" = "yes"; then gt_use_preinstalled_gnugettext=no ifelse(gt_included_intl, yes, [ AC_MSG_CHECKING([whether included gettext is requested]) AC_ARG_WITH(included-gettext, [ --with-included-gettext use the GNU gettext library included here], nls_cv_force_use_gnu_gettext=$withval, nls_cv_force_use_gnu_gettext=no) AC_MSG_RESULT($nls_cv_force_use_gnu_gettext) nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" if test "$nls_cv_force_use_gnu_gettext" != "yes"; then ]) dnl User does not insist on using GNU NLS library. Figure out what dnl to use. If GNU gettext is available we use this. Else we have dnl to fall back to GNU NLS library. if test $gt_api_version -ge 3; then gt_revision_test_code=' #ifndef __GNU_GETTEXT_SUPPORTED_REVISION #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) #endif changequote(,)dnl typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; changequote([,])dnl ' else gt_revision_test_code= fi if test $gt_api_version -ge 2; then gt_expression_test_code=' + * ngettext ("", "", 0)' else gt_expression_test_code= fi AC_CACHE_CHECK([for GNU gettext in libc], [$gt_func_gnugettext_libc], [AC_TRY_LINK([#include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern int *_nl_domain_bindings;], [bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings], [eval "$gt_func_gnugettext_libc=yes"], [eval "$gt_func_gnugettext_libc=no"])]) if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then dnl Sometimes libintl requires libiconv, so first search for libiconv. ifelse(gt_included_intl, yes, , [ AM_ICONV_LINK ]) dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv]) dnl because that would add "-liconv" to LIBINTL and LTLIBINTL dnl even if libiconv doesn't exist. AC_LIB_LINKFLAGS_BODY([intl]) AC_CACHE_CHECK([for GNU gettext in libintl], [$gt_func_gnugettext_libintl], [gt_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $INCINTL" gt_save_LIBS="$LIBS" LIBS="$LIBS $LIBINTL" dnl Now see whether libintl exists and does not depend on libiconv. AC_TRY_LINK([#include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *);], [bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")], [eval "$gt_func_gnugettext_libintl=yes"], [eval "$gt_func_gnugettext_libintl=no"]) dnl Now see whether libintl exists and depends on libiconv. if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then LIBS="$LIBS $LIBICONV" AC_TRY_LINK([#include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *);], [bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")], [LIBINTL="$LIBINTL $LIBICONV" LTLIBINTL="$LTLIBINTL $LTLIBICONV" eval "$gt_func_gnugettext_libintl=yes" ]) fi CPPFLAGS="$gt_save_CPPFLAGS" LIBS="$gt_save_LIBS"]) fi dnl If an already present or preinstalled GNU gettext() is found, dnl use it. But if this macro is used in GNU gettext, and GNU dnl gettext is already preinstalled in libintl, we update this dnl libintl. (Cf. the install rule in intl/Makefile.in.) if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ && test "$PACKAGE" != gettext-runtime \ && test "$PACKAGE" != gettext-tools; }; then gt_use_preinstalled_gnugettext=yes else dnl Reset the values set by searching for libintl. LIBINTL= LTLIBINTL= INCINTL= fi ifelse(gt_included_intl, yes, [ if test "$gt_use_preinstalled_gnugettext" != "yes"; then dnl GNU gettext is not found in the C library. dnl Fall back on included GNU gettext library. nls_cv_use_gnu_gettext=yes fi fi if test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Mark actions used to generate GNU NLS library. BUILD_INCLUDED_LIBINTL=yes USE_INCLUDED_LIBINTL=yes LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV $LIBTHREAD" LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV $LTLIBTHREAD" LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` fi CATOBJEXT= if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Mark actions to use GNU gettext tools. CATOBJEXT=.gmo fi ]) if test -n "$INTL_MACOSX_LIBS"; then if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Some extra flags are needed during linking. LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" fi fi if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then AC_DEFINE(ENABLE_NLS, 1, [Define to 1 if translation of program messages to the user's native language is requested.]) else USE_NLS=no fi fi AC_MSG_CHECKING([whether to use NLS]) AC_MSG_RESULT([$USE_NLS]) if test "$USE_NLS" = "yes"; then AC_MSG_CHECKING([where the gettext function comes from]) if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then gt_source="external libintl" else gt_source="libc" fi else gt_source="included intl directory" fi AC_MSG_RESULT([$gt_source]) fi if test "$USE_NLS" = "yes"; then if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then AC_MSG_CHECKING([how to link with libintl]) AC_MSG_RESULT([$LIBINTL]) AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL]) fi dnl For backward compatibility. Some packages may be using this. AC_DEFINE(HAVE_GETTEXT, 1, [Define if the GNU gettext() function is already present or preinstalled.]) AC_DEFINE(HAVE_DCGETTEXT, 1, [Define if the GNU dcgettext() function is already present or preinstalled.]) fi dnl We need to process the po/ directory. POSUB=po fi ifelse(gt_included_intl, yes, [ dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL dnl to 'yes' because some of the testsuite requires it. if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then BUILD_INCLUDED_LIBINTL=yes fi dnl Make all variables we use known to autoconf. AC_SUBST(BUILD_INCLUDED_LIBINTL) AC_SUBST(USE_INCLUDED_LIBINTL) AC_SUBST(CATOBJEXT) dnl For backward compatibility. Some configure.ins may be using this. nls_cv_header_intl= nls_cv_header_libgt= dnl For backward compatibility. Some Makefiles may be using this. DATADIRNAME=share AC_SUBST(DATADIRNAME) dnl For backward compatibility. Some Makefiles may be using this. INSTOBJEXT=.mo AC_SUBST(INSTOBJEXT) dnl For backward compatibility. Some Makefiles may be using this. GENCAT=gencat AC_SUBST(GENCAT) dnl For backward compatibility. Some Makefiles may be using this. INTLOBJS= if test "$USE_INCLUDED_LIBINTL" = yes; then INTLOBJS="\$(GETTOBJS)" fi AC_SUBST(INTLOBJS) dnl Enable libtool support if the surrounding package wishes it. INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX) ]) dnl For backward compatibility. Some Makefiles may be using this. INTLLIBS="$LIBINTL" AC_SUBST(INTLLIBS) dnl Make all documented variables known to autoconf. AC_SUBST(LIBINTL) AC_SUBST(LTLIBINTL) AC_SUBST(POSUB) ]) dnl Checks for special options needed on MacOS X. dnl Defines INTL_MACOSX_LIBS. AC_DEFUN([gt_INTL_MACOSX], [ dnl Check for API introduced in MacOS X 10.2. AC_CACHE_CHECK([for CFPreferencesCopyAppValue], gt_cv_func_CFPreferencesCopyAppValue, [gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" AC_TRY_LINK([#include ], [CFPreferencesCopyAppValue(NULL, NULL)], [gt_cv_func_CFPreferencesCopyAppValue=yes], [gt_cv_func_CFPreferencesCopyAppValue=no]) LIBS="$gt_save_LIBS"]) if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], 1, [Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in the CoreFoundation framework.]) fi dnl Check for API introduced in MacOS X 10.3. AC_CACHE_CHECK([for CFLocaleCopyCurrent], gt_cv_func_CFLocaleCopyCurrent, [gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" AC_TRY_LINK([#include ], [CFLocaleCopyCurrent();], [gt_cv_func_CFLocaleCopyCurrent=yes], [gt_cv_func_CFLocaleCopyCurrent=no]) LIBS="$gt_save_LIBS"]) if test $gt_cv_func_CFLocaleCopyCurrent = yes; then AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], 1, [Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the CoreFoundation framework.]) fi INTL_MACOSX_LIBS= if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" fi AC_SUBST([INTL_MACOSX_LIBS]) ]) dnl gt_NEEDS_INIT ensures that the gt_needs variable is initialized. m4_define([gt_NEEDS_INIT], [ m4_divert_text([DEFAULTS], [gt_needs=]) m4_define([gt_NEEDS_INIT], []) ]) dnl Usage: AM_GNU_GETTEXT_NEED([NEEDSYMBOL]) AC_DEFUN([AM_GNU_GETTEXT_NEED], [ m4_divert_text([INIT_PREPARE], [gt_needs="$gt_needs $1"]) ]) dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version]) AC_DEFUN([AM_GNU_GETTEXT_VERSION], []) libextractor-1.3/m4/ltoptions.m40000644000175000017500000003007312255663135013630 00000000000000# Helper functions for option handling. -*- Autoconf -*- # # Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation, # Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 7 ltoptions.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) # _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) # ------------------------------------------ m4_define([_LT_MANGLE_OPTION], [[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) # _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) # --------------------------------------- # Set option OPTION-NAME for macro MACRO-NAME, and if there is a # matching handler defined, dispatch to it. Other OPTION-NAMEs are # saved as a flag. m4_define([_LT_SET_OPTION], [m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), _LT_MANGLE_DEFUN([$1], [$2]), [m4_warning([Unknown $1 option `$2'])])[]dnl ]) # _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) # ------------------------------------------------------------ # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. m4_define([_LT_IF_OPTION], [m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) # _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) # ------------------------------------------------------- # Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME # are set. m4_define([_LT_UNLESS_OPTIONS], [m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), [m4_define([$0_found])])])[]dnl m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 ])[]dnl ]) # _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) # ---------------------------------------- # OPTION-LIST is a space-separated list of Libtool options associated # with MACRO-NAME. If any OPTION has a matching handler declared with # LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about # the unknown option and exit. m4_defun([_LT_SET_OPTIONS], [# Set options m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [_LT_SET_OPTION([$1], _LT_Option)]) m4_if([$1],[LT_INIT],[ dnl dnl Simply set some default values (i.e off) if boolean options were not dnl specified: _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no ]) _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no ]) dnl dnl If no reference was made to various pairs of opposing options, then dnl we run the default mode handler for the pair. For example, if neither dnl `shared' nor `disable-shared' was passed, we enable building of shared dnl archives by default: _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], [_LT_ENABLE_FAST_INSTALL]) ]) ])# _LT_SET_OPTIONS ## --------------------------------- ## ## Macros to handle LT_INIT options. ## ## --------------------------------- ## # _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) # ----------------------------------------- m4_define([_LT_MANGLE_DEFUN], [[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) # LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) # ----------------------------------------------- m4_define([LT_OPTION_DEFINE], [m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl ])# LT_OPTION_DEFINE # dlopen # ------ LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes ]) AU_DEFUN([AC_LIBTOOL_DLOPEN], [_LT_SET_OPTION([LT_INIT], [dlopen]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `dlopen' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) # win32-dll # --------- # Declare package support for building win32 dll's. LT_OPTION_DEFINE([LT_INIT], [win32-dll], [enable_win32_dll=yes case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) ;; esac test -z "$AS" && AS=as _LT_DECL([], [AS], [1], [Assembler program])dnl test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl ])# win32-dll AU_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_REQUIRE([AC_CANONICAL_HOST])dnl _LT_SET_OPTION([LT_INIT], [win32-dll]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `win32-dll' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) # _LT_ENABLE_SHARED([DEFAULT]) # ---------------------------- # implement the --enable-shared flag, and supports the `shared' and # `disable-shared' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_SHARED], [m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([shared], [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) _LT_DECL([build_libtool_libs], [enable_shared], [0], [Whether or not to build shared libraries]) ])# _LT_ENABLE_SHARED LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) # Old names: AC_DEFUN([AC_ENABLE_SHARED], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) ]) AC_DEFUN([AC_DISABLE_SHARED], [_LT_SET_OPTION([LT_INIT], [disable-shared]) ]) AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_SHARED], []) dnl AC_DEFUN([AM_DISABLE_SHARED], []) # _LT_ENABLE_STATIC([DEFAULT]) # ---------------------------- # implement the --enable-static flag, and support the `static' and # `disable-static' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_STATIC], [m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([static], [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_static=]_LT_ENABLE_STATIC_DEFAULT) _LT_DECL([build_old_libs], [enable_static], [0], [Whether or not to build static libraries]) ])# _LT_ENABLE_STATIC LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) # Old names: AC_DEFUN([AC_ENABLE_STATIC], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) ]) AC_DEFUN([AC_DISABLE_STATIC], [_LT_SET_OPTION([LT_INIT], [disable-static]) ]) AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_STATIC], []) dnl AC_DEFUN([AM_DISABLE_STATIC], []) # _LT_ENABLE_FAST_INSTALL([DEFAULT]) # ---------------------------------- # implement the --enable-fast-install flag, and support the `fast-install' # and `disable-fast-install' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_FAST_INSTALL], [m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([fast-install], [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) _LT_DECL([fast_install], [enable_fast_install], [0], [Whether or not to optimize for fast installation])dnl ])# _LT_ENABLE_FAST_INSTALL LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) # Old names: AU_DEFUN([AC_ENABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `fast-install' option into LT_INIT's first parameter.]) ]) AU_DEFUN([AC_DISABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], [disable-fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `disable-fast-install' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) # _LT_WITH_PIC([MODE]) # -------------------- # implement the --with-pic flag, and support the `pic-only' and `no-pic' # LT_INIT options. # MODE is either `yes' or `no'. If omitted, it defaults to `both'. m4_define([_LT_WITH_PIC], [AC_ARG_WITH([pic], [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], [lt_p=${PACKAGE-default} case $withval in yes|no) pic_mode=$withval ;; *) pic_mode=default # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for lt_pkg in $withval; do IFS="$lt_save_ifs" if test "X$lt_pkg" = "X$lt_p"; then pic_mode=yes fi done IFS="$lt_save_ifs" ;; esac], [pic_mode=default]) test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl ])# _LT_WITH_PIC LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) # Old name: AU_DEFUN([AC_LIBTOOL_PICMODE], [_LT_SET_OPTION([LT_INIT], [pic-only]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `pic-only' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) ## ----------------- ## ## LTDL_INIT Options ## ## ----------------- ## m4_define([_LTDL_MODE], []) LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], [m4_define([_LTDL_MODE], [nonrecursive])]) LT_OPTION_DEFINE([LTDL_INIT], [recursive], [m4_define([_LTDL_MODE], [recursive])]) LT_OPTION_DEFINE([LTDL_INIT], [subproject], [m4_define([_LTDL_MODE], [subproject])]) m4_define([_LTDL_TYPE], []) LT_OPTION_DEFINE([LTDL_INIT], [installable], [m4_define([_LTDL_TYPE], [installable])]) LT_OPTION_DEFINE([LTDL_INIT], [convenience], [m4_define([_LTDL_TYPE], [convenience])]) libextractor-1.3/m4/progtest.m40000644000175000017500000000555011260753602013440 00000000000000# progtest.m4 serial 4 (gettext-0.14.2) dnl Copyright (C) 1996-2003, 2005 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1996. AC_PREREQ(2.50) # Search path for a program which passes the given test. dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) AC_DEFUN([AM_PATH_PROG_WITH_TEST], [ # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then echo "#! /bin/sh" >conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "$2", so it can be a program name with args. set dummy $2; ac_word=[$]2 AC_MSG_CHECKING([for $ac_word]) AC_CACHE_VAL(ac_cv_path_$1, [case "[$]$1" in [[\\/]]* | ?:[[\\/]]*) ac_cv_path_$1="[$]$1" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in ifelse([$5], , $PATH, [$5]); do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then echo "$as_me: trying $ac_dir/$ac_word..." >&AS_MESSAGE_LOG_FD if [$3]; then ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" dnl If no 4th arg is given, leave the cache variable unset, dnl so AC_PATH_PROGS will keep looking. ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" ])dnl ;; esac])dnl $1="$ac_cv_path_$1" if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then AC_MSG_RESULT([$]$1) else AC_MSG_RESULT(no) fi AC_SUBST($1)dnl ]) libextractor-1.3/m4/glib-2.0.m40000644000175000017500000001776211260753602013013 00000000000000# Configure paths for GLIB # Owen Taylor 1997-2001 dnl AM_PATH_GLIB_2_0([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]]) dnl Test for GLIB, and define GLIB_CFLAGS and GLIB_LIBS, if gmodule, gobject or dnl gthread is specified in MODULES, pass to pkg-config dnl AC_DEFUN([AM_PATH_GLIB_2_0], [dnl dnl Get the cflags and libraries from pkg-config dnl AC_ARG_ENABLE(glibtest, [ --disable-glibtest do not try to compile and run a test GLIB program], , enable_glibtest=yes) pkg_config_args=glib-2.0 for module in . $4 do case "$module" in gmodule) pkg_config_args="$pkg_config_args gmodule-2.0" ;; gobject) pkg_config_args="$pkg_config_args gobject-2.0" ;; gthread) pkg_config_args="$pkg_config_args gthread-2.0" ;; esac done AC_PATH_PROG(PKG_CONFIG, pkg-config, no) no_glib="" if test x$PKG_CONFIG != xno ; then if $PKG_CONFIG --atleast-pkgconfig-version 0.7 ; then : else echo *** pkg-config too old; version 0.7 or better required. no_glib=yes PKG_CONFIG=no fi else no_glib=yes fi min_glib_version=ifelse([$1], ,2.0.0,$1) AC_MSG_CHECKING(for GLIB - version >= $min_glib_version) if test x$PKG_CONFIG != xno ; then ## don't try to run the test against uninstalled libtool libs if $PKG_CONFIG --uninstalled $pkg_config_args; then echo "Will use uninstalled version of GLib found in PKG_CONFIG_PATH" enable_glibtest=no fi if $PKG_CONFIG --atleast-version $min_glib_version $pkg_config_args; then : else no_glib=yes fi fi if test x"$no_glib" = x ; then GLIB_GENMARSHAL=`$PKG_CONFIG --variable=glib_genmarshal glib-2.0` GOBJECT_QUERY=`$PKG_CONFIG --variable=gobject_query glib-2.0` GLIB_MKENUMS=`$PKG_CONFIG --variable=glib_mkenums glib-2.0` GLIB_CFLAGS=`$PKG_CONFIG --cflags $pkg_config_args` GLIB_LIBS=`$PKG_CONFIG --libs $pkg_config_args` glib_config_major_version=`$PKG_CONFIG --modversion glib-2.0 | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` glib_config_minor_version=`$PKG_CONFIG --modversion glib-2.0 | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` glib_config_micro_version=`$PKG_CONFIG --modversion glib-2.0 | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` if test "x$enable_glibtest" = "xyes" ; then ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $GLIB_CFLAGS" LIBS="$GLIB_LIBS $LIBS" dnl dnl Now check if the installed GLIB is sufficiently new. (Also sanity dnl checks the results of pkg-config to some extent) dnl rm -f conf.glibtest AC_TRY_RUN([ #include #include #include int main () { int major, minor, micro; char *tmp_version; system ("touch conf.glibtest"); /* HP/UX 9 (%@#!) writes to sscanf strings */ tmp_version = g_strdup("$min_glib_version"); if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { printf("%s, bad version string\n", "$min_glib_version"); exit(1); } if ((glib_major_version != $glib_config_major_version) || (glib_minor_version != $glib_config_minor_version) || (glib_micro_version != $glib_config_micro_version)) { printf("\n*** 'pkg-config --modversion glib-2.0' returned %d.%d.%d, but GLIB (%d.%d.%d)\n", $glib_config_major_version, $glib_config_minor_version, $glib_config_micro_version, glib_major_version, glib_minor_version, glib_micro_version); printf ("*** was found! If pkg-config was correct, then it is best\n"); printf ("*** to remove the old version of GLib. You may also be able to fix the error\n"); printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n"); printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n"); printf("*** required on your system.\n"); printf("*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n"); printf("*** to point to the correct configuration files\n"); } else if ((glib_major_version != GLIB_MAJOR_VERSION) || (glib_minor_version != GLIB_MINOR_VERSION) || (glib_micro_version != GLIB_MICRO_VERSION)) { printf("*** GLIB header files (version %d.%d.%d) do not match\n", GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION, GLIB_MICRO_VERSION); printf("*** library (version %d.%d.%d)\n", glib_major_version, glib_minor_version, glib_micro_version); } else { if ((glib_major_version > major) || ((glib_major_version == major) && (glib_minor_version > minor)) || ((glib_major_version == major) && (glib_minor_version == minor) && (glib_micro_version >= micro))) { return 0; } else { printf("\n*** An old version of GLIB (%d.%d.%d) was found.\n", glib_major_version, glib_minor_version, glib_micro_version); printf("*** You need a version of GLIB newer than %d.%d.%d. The latest version of\n", major, minor, micro); printf("*** GLIB is always available from ftp://ftp.gtk.org.\n"); printf("***\n"); printf("*** If you have already installed a sufficiently new version, this error\n"); printf("*** probably means that the wrong copy of the pkg-config shell script is\n"); printf("*** being found. The easiest way to fix this is to remove the old version\n"); printf("*** of GLIB, but you can also set the PKG_CONFIG environment to point to the\n"); printf("*** correct copy of pkg-config. (In this case, you will have to\n"); printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); printf("*** so that the correct libraries are found at run-time))\n"); } } return 1; } ],, no_glib=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi if test "x$no_glib" = x ; then AC_MSG_RESULT(yes (version $glib_config_major_version.$glib_config_minor_version.$glib_config_micro_version)) ifelse([$2], , :, [$2]) else AC_MSG_RESULT(no) if test "$PKG_CONFIG" = "no" ; then echo "*** A new enough version of pkg-config was not found." echo "*** See http://www.freedesktop.org/software/pkgconfig/" else if test -f conf.glibtest ; then : else echo "*** Could not run GLIB test program, checking why..." ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $GLIB_CFLAGS" LIBS="$LIBS $GLIB_LIBS" AC_TRY_LINK([ #include #include ], [ return ((glib_major_version) || (glib_minor_version) || (glib_micro_version)); ], [ echo "*** The test program compiled, but did not run. This usually means" echo "*** that the run-time linker is not finding GLIB or finding the wrong" echo "*** version of GLIB. If it is not finding GLIB, you'll need to set your" echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" echo "*** to the installed location Also, make sure you have run ldconfig if that" echo "*** is required on your system" echo "***" echo "*** If you have an old version installed, it is best to remove it, although" echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ], [ echo "*** The test program failed to compile or link. See the file config.log for the" echo "*** exact error that occured. This usually means GLIB is incorrectly installed."]) CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi GLIB_CFLAGS="" GLIB_LIBS="" GLIB_GENMARSHAL="" GOBJECT_QUERY="" GLIB_MKENUMS="" ifelse([$3], , :, [$3]) fi AC_SUBST(GLIB_CFLAGS) AC_SUBST(GLIB_LIBS) AC_SUBST(GLIB_GENMARSHAL) AC_SUBST(GOBJECT_QUERY) AC_SUBST(GLIB_MKENUMS) rm -f conf.glibtest ]) libextractor-1.3/m4/codeset.m40000644000175000017500000000136611260753602013220 00000000000000# codeset.m4 serial 2 (gettext-0.16) dnl Copyright (C) 2000-2002, 2006 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. AC_DEFUN([AM_LANGINFO_CODESET], [ AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset, [AC_TRY_LINK([#include ], [char* cs = nl_langinfo(CODESET); return !cs;], am_cv_langinfo_codeset=yes, am_cv_langinfo_codeset=no) ]) if test $am_cv_langinfo_codeset = yes; then AC_DEFINE(HAVE_LANGINFO_CODESET, 1, [Define if you have and nl_langinfo(CODESET).]) fi ]) libextractor-1.3/m4/libtool.m40000644000175000017500000105754212255663135013254 00000000000000# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. m4_define([_LT_COPYING], [dnl # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of # the License, or (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ]) # serial 57 LT_INIT # LT_PREREQ(VERSION) # ------------------ # Complain and exit if this libtool version is less that VERSION. m4_defun([LT_PREREQ], [m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, [m4_default([$3], [m4_fatal([Libtool version $1 or higher is required], 63)])], [$2])]) # _LT_CHECK_BUILDDIR # ------------------ # Complain if the absolute build directory name contains unusual characters m4_defun([_LT_CHECK_BUILDDIR], [case `pwd` in *\ * | *\ *) AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; esac ]) # LT_INIT([OPTIONS]) # ------------------ AC_DEFUN([LT_INIT], [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl AC_BEFORE([$0], [LT_LANG])dnl AC_BEFORE([$0], [LT_OUTPUT])dnl AC_BEFORE([$0], [LTDL_INIT])dnl m4_require([_LT_CHECK_BUILDDIR])dnl dnl Autoconf doesn't catch unexpanded LT_ macros by default: m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 dnl unless we require an AC_DEFUNed macro: AC_REQUIRE([LTOPTIONS_VERSION])dnl AC_REQUIRE([LTSUGAR_VERSION])dnl AC_REQUIRE([LTVERSION_VERSION])dnl AC_REQUIRE([LTOBSOLETE_VERSION])dnl m4_require([_LT_PROG_LTMAIN])dnl _LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) dnl Parse OPTIONS _LT_SET_OPTIONS([$0], [$1]) # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' AC_SUBST(LIBTOOL)dnl _LT_SETUP # Only expand once: m4_define([LT_INIT]) ])# LT_INIT # Old names: AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PROG_LIBTOOL], []) dnl AC_DEFUN([AM_PROG_LIBTOOL], []) # _LT_CC_BASENAME(CC) # ------------------- # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. m4_defun([_LT_CC_BASENAME], [for cc_temp in $1""; do case $cc_temp in compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` ]) # _LT_FILEUTILS_DEFAULTS # ---------------------- # It is okay to use these file commands and assume they have been set # sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. m4_defun([_LT_FILEUTILS_DEFAULTS], [: ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} ])# _LT_FILEUTILS_DEFAULTS # _LT_SETUP # --------- m4_defun([_LT_SETUP], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl _LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl dnl _LT_DECL([], [host_alias], [0], [The host system])dnl _LT_DECL([], [host], [0])dnl _LT_DECL([], [host_os], [0])dnl dnl _LT_DECL([], [build_alias], [0], [The build system])dnl _LT_DECL([], [build], [0])dnl _LT_DECL([], [build_os], [0])dnl dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl dnl AC_REQUIRE([AC_PROG_LN_S])dnl test -z "$LN_S" && LN_S="ln -s" _LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl dnl AC_REQUIRE([LT_CMD_MAX_LEN])dnl _LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl m4_require([_LT_CMD_RELOAD])dnl m4_require([_LT_CHECK_MAGIC_METHOD])dnl m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl m4_require([_LT_CMD_OLD_ARCHIVE])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_WITH_SYSROOT])dnl _LT_CONFIG_LIBTOOL_INIT([ # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi ]) if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi _LT_CHECK_OBJDIR m4_require([_LT_TAG_COMPILER])dnl case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld="$lt_cv_prog_gnu_ld" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o _LT_CC_BASENAME([$compiler]) # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then _LT_PATH_MAGIC fi ;; esac # Use C for the default configuration in the libtool script LT_SUPPORTED_TAG([CC]) _LT_LANG_C_CONFIG _LT_LANG_DEFAULT_CONFIG _LT_CONFIG_COMMANDS ])# _LT_SETUP # _LT_PREPARE_SED_QUOTE_VARS # -------------------------- # Define a few sed substitution that help us do robust quoting. m4_defun([_LT_PREPARE_SED_QUOTE_VARS], [# Backslashify metacharacters that are still active within # double-quoted strings. sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\([["`\\]]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' ]) # _LT_PROG_LTMAIN # --------------- # Note that this code is called both from `configure', and `config.status' # now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, # `config.status' has no value for ac_aux_dir unless we are using Automake, # so we pass a copy along to make sure it has a sensible value anyway. m4_defun([_LT_PROG_LTMAIN], [m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl _LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) ltmain="$ac_aux_dir/ltmain.sh" ])# _LT_PROG_LTMAIN ## ------------------------------------- ## ## Accumulate code for creating libtool. ## ## ------------------------------------- ## # So that we can recreate a full libtool script including additional # tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS # in macros and then make a single call at the end using the `libtool' # label. # _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) # ---------------------------------------- # Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL_INIT], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_INIT], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_INIT]) # _LT_CONFIG_LIBTOOL([COMMANDS]) # ------------------------------ # Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) # _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) # ----------------------------------------------------- m4_defun([_LT_CONFIG_SAVE_COMMANDS], [_LT_CONFIG_LIBTOOL([$1]) _LT_CONFIG_LIBTOOL_INIT([$2]) ]) # _LT_FORMAT_COMMENT([COMMENT]) # ----------------------------- # Add leading comment marks to the start of each line, and a trailing # full-stop to the whole comment if one is not present already. m4_define([_LT_FORMAT_COMMENT], [m4_ifval([$1], [ m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) )]) ## ------------------------ ## ## FIXME: Eliminate VARNAME ## ## ------------------------ ## # _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) # ------------------------------------------------------------------- # CONFIGNAME is the name given to the value in the libtool script. # VARNAME is the (base) name used in the configure script. # VALUE may be 0, 1 or 2 for a computed quote escaped value based on # VARNAME. Any other value will be used directly. m4_define([_LT_DECL], [lt_if_append_uniq([lt_decl_varnames], [$2], [, ], [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], [m4_ifval([$1], [$1], [$2])]) lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) m4_ifval([$4], [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) lt_dict_add_subkey([lt_decl_dict], [$2], [tagged?], [m4_ifval([$5], [yes], [no])])]) ]) # _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) # -------------------------------------------------------- m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) # lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_tag_varnames], [_lt_decl_filter([tagged?], [yes], $@)]) # _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) # --------------------------------------------------------- m4_define([_lt_decl_filter], [m4_case([$#], [0], [m4_fatal([$0: too few arguments: $#])], [1], [m4_fatal([$0: too few arguments: $#: $1])], [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], [lt_dict_filter([lt_decl_dict], $@)])[]dnl ]) # lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) # -------------------------------------------------- m4_define([lt_decl_quote_varnames], [_lt_decl_filter([value], [1], $@)]) # lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_dquote_varnames], [_lt_decl_filter([value], [2], $@)]) # lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_varnames_tagged], [m4_assert([$# <= 2])dnl _$0(m4_quote(m4_default([$1], [[, ]])), m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) m4_define([_lt_decl_varnames_tagged], [m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) # lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_all_varnames], [_$0(m4_quote(m4_default([$1], [[, ]])), m4_if([$2], [], m4_quote(lt_decl_varnames), m4_quote(m4_shift($@))))[]dnl ]) m4_define([_lt_decl_all_varnames], [lt_join($@, lt_decl_varnames_tagged([$1], lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl ]) # _LT_CONFIG_STATUS_DECLARE([VARNAME]) # ------------------------------------ # Quote a variable value, and forward it to `config.status' so that its # declaration there will have the same value as in `configure'. VARNAME # must have a single quote delimited value for this to work. m4_define([_LT_CONFIG_STATUS_DECLARE], [$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) # _LT_CONFIG_STATUS_DECLARATIONS # ------------------------------ # We delimit libtool config variables with single quotes, so when # we write them to config.status, we have to be sure to quote all # embedded single quotes properly. In configure, this macro expands # each variable declared with _LT_DECL (and _LT_TAGDECL) into: # # ='`$ECHO "$" | $SED "$delay_single_quote_subst"`' m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAGS # ---------------- # Output comment and list of tags supported by the script m4_defun([_LT_LIBTOOL_TAGS], [_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl available_tags="_LT_TAGS"dnl ]) # _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) # ----------------------------------- # Extract the dictionary values for VARNAME (optionally with TAG) and # expand to a commented shell variable setting: # # # Some comment about what VAR is for. # visible_name=$lt_internal_name m4_define([_LT_LIBTOOL_DECLARE], [_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [description])))[]dnl m4_pushdef([_libtool_name], m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), [0], [_libtool_name=[$]$1], [1], [_libtool_name=$lt_[]$1], [2], [_libtool_name=$lt_[]$1], [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl ]) # _LT_LIBTOOL_CONFIG_VARS # ----------------------- # Produce commented declarations of non-tagged libtool config variables # suitable for insertion in the LIBTOOL CONFIG section of the `libtool' # script. Tagged libtool config variables (even for the LIBTOOL CONFIG # section) are produced by _LT_LIBTOOL_TAG_VARS. m4_defun([_LT_LIBTOOL_CONFIG_VARS], [m4_foreach([_lt_var], m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAG_VARS(TAG) # ------------------------- m4_define([_LT_LIBTOOL_TAG_VARS], [m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) # _LT_TAGVAR(VARNAME, [TAGNAME]) # ------------------------------ m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) # _LT_CONFIG_COMMANDS # ------------------- # Send accumulated output to $CONFIG_STATUS. Thanks to the lists of # variables for single and double quote escaping we saved from calls # to _LT_DECL, we can put quote escaped variables declarations # into `config.status', and then the shell code to quote escape them in # for loops in `config.status'. Finally, any additional code accumulated # from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. m4_defun([_LT_CONFIG_COMMANDS], [AC_PROVIDE_IFELSE([LT_OUTPUT], dnl If the libtool generation code has been placed in $CONFIG_LT, dnl instead of duplicating it all over again into config.status, dnl then we will have config.status run $CONFIG_LT later, so it dnl needs to know what name is stored there: [AC_CONFIG_COMMANDS([libtool], [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], dnl If the libtool generation code is destined for config.status, dnl expand the accumulated commands and init code now: [AC_CONFIG_COMMANDS([libtool], [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) ])#_LT_CONFIG_COMMANDS # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], [ # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' _LT_CONFIG_STATUS_DECLARATIONS LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$[]1 _LTECHO_EOF' } # Quote evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_quote_varnames); do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_dquote_varnames); do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done _LT_OUTPUT_LIBTOOL_INIT ]) # _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) # ------------------------------------ # Generate a child script FILE with all initialization necessary to # reuse the environment learned by the parent script, and make the # file executable. If COMMENT is supplied, it is inserted after the # `#!' sequence but before initialization text begins. After this # macro, additional text can be appended to FILE to form the body of # the child script. The macro ends with non-zero status if the # file could not be fully written (such as if the disk is full). m4_ifdef([AS_INIT_GENERATED], [m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], [m4_defun([_LT_GENERATED_FILE_INIT], [m4_require([AS_PREPARE])]dnl [m4_pushdef([AS_MESSAGE_LOG_FD])]dnl [lt_write_fail=0 cat >$1 <<_ASEOF || lt_write_fail=1 #! $SHELL # Generated by $as_me. $2 SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$1 <<\_ASEOF || lt_write_fail=1 AS_SHELL_SANITIZE _AS_PREPARE exec AS_MESSAGE_FD>&1 _ASEOF test $lt_write_fail = 0 && chmod +x $1[]dnl m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT # LT_OUTPUT # --------- # This macro allows early generation of the libtool script (before # AC_OUTPUT is called), incase it is used in configure for compilation # tests. AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt} AC_MSG_NOTICE([creating $CONFIG_LT]) _LT_GENERATED_FILE_INIT(["$CONFIG_LT"], [# Run this file to recreate a libtool stub with the current configuration.]) cat >>"$CONFIG_LT" <<\_LTEOF lt_cl_silent=false exec AS_MESSAGE_LOG_FD>>config.log { echo AS_BOX([Running $as_me.]) } >&AS_MESSAGE_LOG_FD lt_cl_help="\ \`$as_me' creates a local libtool stub from the current configuration, for use in further configure time tests before the real libtool is generated. Usage: $[0] [[OPTIONS]] -h, --help print this help, then exit -V, --version print version number, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files Report bugs to ." lt_cl_version="\ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) configured by $[0], generated by m4_PACKAGE_STRING. Copyright (C) 2011 Free Software Foundation, Inc. This config.lt script is free software; the Free Software Foundation gives unlimited permision to copy, distribute and modify it." while test $[#] != 0 do case $[1] in --version | --v* | -V ) echo "$lt_cl_version"; exit 0 ;; --help | --h* | -h ) echo "$lt_cl_help"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --quiet | --q* | --silent | --s* | -q ) lt_cl_silent=: ;; -*) AC_MSG_ERROR([unrecognized option: $[1] Try \`$[0] --help' for more information.]) ;; *) AC_MSG_ERROR([unrecognized argument: $[1] Try \`$[0] --help' for more information.]) ;; esac shift done if $lt_cl_silent; then exec AS_MESSAGE_FD>/dev/null fi _LTEOF cat >>"$CONFIG_LT" <<_LTEOF _LT_OUTPUT_LIBTOOL_COMMANDS_INIT _LTEOF cat >>"$CONFIG_LT" <<\_LTEOF AC_MSG_NOTICE([creating $ofile]) _LT_OUTPUT_LIBTOOL_COMMANDS AS_EXIT(0) _LTEOF chmod +x "$CONFIG_LT" # configure is writing to config.log, but config.lt does its own redirection, # appending to config.log, which fails on DOS, as config.log is still kept # open by configure. Here we exec the FD to /dev/null, effectively closing # config.log, so it can be properly (re)opened and appended to by config.lt. lt_cl_success=: test "$silent" = yes && lt_config_lt_args="$lt_config_lt_args --quiet" exec AS_MESSAGE_LOG_FD>/dev/null $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false exec AS_MESSAGE_LOG_FD>>config.log $lt_cl_success || AS_EXIT(1) ])# LT_OUTPUT # _LT_CONFIG(TAG) # --------------- # If TAG is the built-in tag, create an initial libtool script with a # default configuration from the untagged config vars. Otherwise add code # to config.status for appending the configuration named by TAG from the # matching tagged config vars. m4_defun([_LT_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_CONFIG_SAVE_COMMANDS([ m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl m4_if(_LT_TAG, [C], [ # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # _LT_COPYING _LT_LIBTOOL_TAGS # ### BEGIN LIBTOOL CONFIG _LT_LIBTOOL_CONFIG_VARS _LT_LIBTOOL_TAG_VARS # ### END LIBTOOL CONFIG _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac _LT_PROG_LTMAIN # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) _LT_PROG_REPLACE_SHELLFNS mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ], [cat <<_LT_EOF >> "$ofile" dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded dnl in a comment (ie after a #). # ### BEGIN LIBTOOL TAG CONFIG: $1 _LT_LIBTOOL_TAG_VARS(_LT_TAG) # ### END LIBTOOL TAG CONFIG: $1 _LT_EOF ])dnl /m4_if ], [m4_if([$1], [], [ PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile'], []) ])dnl /_LT_CONFIG_SAVE_COMMANDS ])# _LT_CONFIG # LT_SUPPORTED_TAG(TAG) # --------------------- # Trace this macro to discover what tags are supported by the libtool # --tag option, using: # autoconf --trace 'LT_SUPPORTED_TAG:$1' AC_DEFUN([LT_SUPPORTED_TAG], []) # C support is built-in for now m4_define([_LT_LANG_C_enabled], []) m4_define([_LT_TAGS], []) # LT_LANG(LANG) # ------------- # Enable libtool support for the given language if not already enabled. AC_DEFUN([LT_LANG], [AC_BEFORE([$0], [LT_OUTPUT])dnl m4_case([$1], [C], [_LT_LANG(C)], [C++], [_LT_LANG(CXX)], [Go], [_LT_LANG(GO)], [Java], [_LT_LANG(GCJ)], [Fortran 77], [_LT_LANG(F77)], [Fortran], [_LT_LANG(FC)], [Windows Resource], [_LT_LANG(RC)], [m4_ifdef([_LT_LANG_]$1[_CONFIG], [_LT_LANG($1)], [m4_fatal([$0: unsupported language: "$1"])])])dnl ])# LT_LANG # _LT_LANG(LANGNAME) # ------------------ m4_defun([_LT_LANG], [m4_ifdef([_LT_LANG_]$1[_enabled], [], [LT_SUPPORTED_TAG([$1])dnl m4_append([_LT_TAGS], [$1 ])dnl m4_define([_LT_LANG_]$1[_enabled], [])dnl _LT_LANG_$1_CONFIG($1)])dnl ])# _LT_LANG m4_ifndef([AC_PROG_GO], [ ############################################################ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_GO. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # ############################################################ m4_defun([AC_PROG_GO], [AC_LANG_PUSH(Go)dnl AC_ARG_VAR([GOC], [Go compiler command])dnl AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl _AC_ARG_VAR_LDFLAGS()dnl AC_CHECK_TOOL(GOC, gccgo) if test -z "$GOC"; then if test -n "$ac_tool_prefix"; then AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo]) fi fi if test -z "$GOC"; then AC_CHECK_PROG(GOC, gccgo, gccgo, false) fi ])#m4_defun ])#m4_ifndef # _LT_LANG_DEFAULT_CONFIG # ----------------------- m4_defun([_LT_LANG_DEFAULT_CONFIG], [AC_PROVIDE_IFELSE([AC_PROG_CXX], [LT_LANG(CXX)], [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) AC_PROVIDE_IFELSE([AC_PROG_F77], [LT_LANG(F77)], [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) AC_PROVIDE_IFELSE([AC_PROG_FC], [LT_LANG(FC)], [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal dnl pulling things in needlessly. AC_PROVIDE_IFELSE([AC_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([LT_PROG_GCJ], [LT_LANG(GCJ)], [m4_ifdef([AC_PROG_GCJ], [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([A][M_PROG_GCJ], [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([LT_PROG_GCJ], [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) AC_PROVIDE_IFELSE([AC_PROG_GO], [LT_LANG(GO)], [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])]) AC_PROVIDE_IFELSE([LT_PROG_RC], [LT_LANG(RC)], [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) ])# _LT_LANG_DEFAULT_CONFIG # Obsolete macros: AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_CXX], []) dnl AC_DEFUN([AC_LIBTOOL_F77], []) dnl AC_DEFUN([AC_LIBTOOL_FC], []) dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) dnl AC_DEFUN([AC_LIBTOOL_RC], []) # _LT_TAG_COMPILER # ---------------- m4_defun([_LT_TAG_COMPILER], [AC_REQUIRE([AC_PROG_CC])dnl _LT_DECL([LTCC], [CC], [1], [A C compiler])dnl _LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl _LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl _LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC ])# _LT_TAG_COMPILER # _LT_COMPILER_BOILERPLATE # ------------------------ # Check for compiler boilerplate output or warnings with # the simple compiler test code. m4_defun([_LT_COMPILER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ])# _LT_COMPILER_BOILERPLATE # _LT_LINKER_BOILERPLATE # ---------------------- # Check for linker boilerplate output or warnings with # the simple link test code. m4_defun([_LT_LINKER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ])# _LT_LINKER_BOILERPLATE # _LT_REQUIRED_DARWIN_CHECKS # ------------------------- m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ case $host_os in rhapsody* | darwin*) AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) AC_CHECK_TOOL([LIPO], [lipo], [:]) AC_CHECK_TOOL([OTOOL], [otool], [:]) AC_CHECK_TOOL([OTOOL64], [otool64], [:]) _LT_DECL([], [DSYMUTIL], [1], [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) _LT_DECL([], [NMEDIT], [1], [Tool to change global to local symbols on Mac OS X]) _LT_DECL([], [LIPO], [1], [Tool to manipulate fat objects and archives on Mac OS X]) _LT_DECL([], [OTOOL], [1], [ldd/readelf like tool for Mach-O binaries on Mac OS X]) _LT_DECL([], [OTOOL64], [1], [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], [lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? # If there is a non-empty error log, and "single_module" # appears in it, assume the flag caused a linker warning if test -s conftest.err && $GREP single_module conftest.err; then cat conftest.err >&AS_MESSAGE_LOG_FD # Otherwise, if the output was created with a 0 exit code from # the compiler, it worked. elif test -f libconftest.dylib && test $_lt_result -eq 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -rf libconftest.dylib* rm -f conftest.* fi]) AC_CACHE_CHECK([for -exported_symbols_list linker flag], [lt_cv_ld_exported_symbols_list], [lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [lt_cv_ld_exported_symbols_list=yes], [lt_cv_ld_exported_symbols_list=no]) LDFLAGS="$save_LDFLAGS" ]) AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], [lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD cat > conftest.c << _LT_EOF int main() { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? if test -s conftest.err && $GREP force_load conftest.err; then cat conftest.err >&AS_MESSAGE_LOG_FD elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then lt_cv_ld_force_load=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM ]) case $host_os in rhapsody* | darwin1.[[012]]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 10.[[012]]*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test "$lt_cv_apple_cc_single_mod" = "yes"; then _lt_dar_single_mod='$single_module' fi if test "$lt_cv_ld_exported_symbols_list" = "yes"; then _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac ]) # _LT_DARWIN_LINKER_FEATURES([TAG]) # --------------------------------- # Checks for linker and compiler features on darwin m4_defun([_LT_DARWIN_LINKER_FEATURES], [ m4_require([_LT_REQUIRED_DARWIN_CHECKS]) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported if test "$lt_cv_ld_force_load" = "yes"; then _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes], [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes]) else _LT_TAGVAR(whole_archive_flag_spec, $1)='' fi _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=func_echo_all _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" m4_if([$1], [CXX], [ if test "$lt_cv_apple_cc_single_mod" != "yes"; then _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" fi ],[]) else _LT_TAGVAR(ld_shlibs, $1)=no fi ]) # _LT_SYS_MODULE_PATH_AIX([TAGNAME]) # ---------------------------------- # Links a minimal program and checks the executable # for the system default hardcoded library path. In most cases, # this is /usr/lib:/lib, but when the MPI compilers are used # the location of the communication and MPI libs are included too. # If we don't find anything, use the default library path according # to the aix ld manual. # Store the results from the different compilers for each TAGNAME. # Allow to override them for all tags through lt_cv_aix_libpath. m4_defun([_LT_SYS_MODULE_PATH_AIX], [m4_require([_LT_DECL_SED])dnl if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ lt_aix_libpath_sed='[ /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }]' _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi],[]) if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib" fi ]) aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) fi ])# _LT_SYS_MODULE_PATH_AIX # _LT_SHELL_INIT(ARG) # ------------------- m4_define([_LT_SHELL_INIT], [m4_divert_text([M4SH-INIT], [$1 ])])# _LT_SHELL_INIT # _LT_PROG_ECHO_BACKSLASH # ----------------------- # Find how we can fake an echo command that does not interpret backslash. # In particular, with Autoconf 2.60 or later we add some code to the start # of the generated configure script which will find a shell with a builtin # printf (which we can use as an echo command). m4_defun([_LT_PROG_ECHO_BACKSLASH], [ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO AC_MSG_CHECKING([how to print strings]) # Test print first, because it will be a builtin if present. if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='printf %s\n' else # Use this function as a fallback that always works. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $[]1 _LTECHO_EOF' } ECHO='func_fallback_echo' fi # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } case "$ECHO" in printf*) AC_MSG_RESULT([printf]) ;; print*) AC_MSG_RESULT([print -r]) ;; *) AC_MSG_RESULT([cat]) ;; esac m4_ifdef([_AS_DETECT_SUGGESTED], [_AS_DETECT_SUGGESTED([ test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO PATH=/empty FPATH=/empty; export PATH FPATH test "X`printf %s $ECHO`" = "X$ECHO" \ || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) _LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) ])# _LT_PROG_ECHO_BACKSLASH # _LT_WITH_SYSROOT # ---------------- AC_DEFUN([_LT_WITH_SYSROOT], [AC_MSG_CHECKING([for sysroot]) AC_ARG_WITH([sysroot], [ --with-sysroot[=DIR] Search for dependent libraries within DIR (or the compiler's sysroot if not specified).], [], [with_sysroot=no]) dnl lt_sysroot will always be passed unquoted. We quote it here dnl in case the user passed a directory name. lt_sysroot= case ${with_sysroot} in #( yes) if test "$GCC" = yes; then lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( /*) lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` ;; #( no|'') ;; #( *) AC_MSG_RESULT([${with_sysroot}]) AC_MSG_ERROR([The sysroot must be an absolute path.]) ;; esac AC_MSG_RESULT([${lt_sysroot:-no}]) _LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl [dependent libraries, and in which our libraries should be installed.])]) # _LT_ENABLE_LOCK # --------------- m4_defun([_LT_ENABLE_LOCK], [AC_ARG_ENABLE([libtool-lock], [AS_HELP_STRING([--disable-libtool-lock], [avoid locking (might break parallel builds)])]) test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, [AC_LANG_PUSH(C) AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) AC_LANG_POP]) if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; *-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) case $host in i?86-*-solaris*) LD="${LD-ld} -m elf_x86_64" ;; sparc*-*-solaris*) LD="${LD-ld} -m elf64_sparc" ;; esac # GNU ld 2.21 introduced _sol2 emulations. Use them if available. if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then LD="${LD-ld}_sol2" fi ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" ])# _LT_ENABLE_LOCK # _LT_PROG_AR # ----------- m4_defun([_LT_PROG_AR], [AC_CHECK_TOOLS(AR, [ar], false) : ${AR=ar} : ${AR_FLAGS=cru} _LT_DECL([], [AR], [1], [The archiver]) _LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], [lt_cv_ar_at_file=no AC_COMPILE_IFELSE([AC_LANG_PROGRAM], [echo conftest.$ac_objext > conftest.lst lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' AC_TRY_EVAL([lt_ar_try]) if test "$ac_status" -eq 0; then # Ensure the archiver fails upon bogus file names. rm -f conftest.$ac_objext libconftest.a AC_TRY_EVAL([lt_ar_try]) if test "$ac_status" -ne 0; then lt_cv_ar_at_file=@ fi fi rm -f conftest.* libconftest.a ]) ]) if test "x$lt_cv_ar_at_file" = xno; then archiver_list_spec= else archiver_list_spec=$lt_cv_ar_at_file fi _LT_DECL([], [archiver_list_spec], [1], [How to feed a file listing to the archiver]) ])# _LT_PROG_AR # _LT_CMD_OLD_ARCHIVE # ------------------- m4_defun([_LT_CMD_OLD_ARCHIVE], [_LT_PROG_AR AC_CHECK_TOOL(STRIP, strip, :) test -z "$STRIP" && STRIP=: _LT_DECL([], [STRIP], [1], [A symbol stripping program]) AC_CHECK_TOOL(RANLIB, ranlib, :) test -z "$RANLIB" && RANLIB=: _LT_DECL([], [RANLIB], [1], [Commands used to install an old-style archive]) # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi case $host_os in darwin*) lock_old_archive_extraction=yes ;; *) lock_old_archive_extraction=no ;; esac _LT_DECL([], [old_postinstall_cmds], [2]) _LT_DECL([], [old_postuninstall_cmds], [2]) _LT_TAGDECL([], [old_archive_cmds], [2], [Commands used to build an old-style archive]) _LT_DECL([], [lock_old_archive_extraction], [0], [Whether to use a lock for old archive extraction]) ])# _LT_CMD_OLD_ARCHIVE # _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------------------- # Check whether the given compiler option works AC_DEFUN([_LT_COMPILER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$3" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi fi $RM conftest* ]) if test x"[$]$2" = xyes; then m4_if([$5], , :, [$5]) else m4_if([$6], , :, [$6]) fi ])# _LT_COMPILER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) # _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------- # Check whether the given linker option works AC_DEFUN([_LT_LINKER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $3" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&AS_MESSAGE_LOG_FD $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi else $2=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" ]) if test x"[$]$2" = xyes; then m4_if([$4], , :, [$4]) else m4_if([$5], , :, [$5]) fi ])# _LT_LINKER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) # LT_CMD_MAX_LEN #--------------- AC_DEFUN([LT_CMD_MAX_LEN], [AC_REQUIRE([AC_CANONICAL_HOST])dnl # find the maximum length of command line arguments AC_MSG_CHECKING([the maximum length of command line arguments]) AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; mint*) # On MiNT this can take a long time and run out of memory. lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; os2*) # The test takes a long time on OS/2. lt_cv_sys_max_cmd_len=8192 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8 ; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac ]) if test -n $lt_cv_sys_max_cmd_len ; then AC_MSG_RESULT($lt_cv_sys_max_cmd_len) else AC_MSG_RESULT(none) fi max_cmd_len=$lt_cv_sys_max_cmd_len _LT_DECL([], [max_cmd_len], [0], [What is the maximum length of a command?]) ])# LT_CMD_MAX_LEN # Old name: AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) # _LT_HEADER_DLFCN # ---------------- m4_defun([_LT_HEADER_DLFCN], [AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl ])# _LT_HEADER_DLFCN # _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, # ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) # ---------------------------------------------------------------- m4_defun([_LT_TRY_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test "$cross_compiling" = yes; then : [$4] else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF [#line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisbility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; }] _LT_EOF if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) $1 ;; x$lt_dlneed_uscore) $2 ;; x$lt_dlunknown|x*) $3 ;; esac else : # compilation failed $3 fi fi rm -fr conftest* ])# _LT_TRY_DLOPEN_SELF # LT_SYS_DLOPEN_SELF # ------------------ AC_DEFUN([LT_SYS_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ]) ;; *) AC_CHECK_FUNC([shl_load], [lt_cv_dlopen="shl_load"], [AC_CHECK_LIB([dld], [shl_load], [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], [AC_CHECK_FUNC([dlopen], [lt_cv_dlopen="dlopen"], [AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], [AC_CHECK_LIB([svld], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], [AC_CHECK_LIB([dld], [dld_link], [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) ]) ]) ]) ]) ]) ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" AC_CACHE_CHECK([whether a program can dlopen itself], lt_cv_dlopen_self, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) ]) if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" AC_CACHE_CHECK([whether a statically linked program can dlopen itself], lt_cv_dlopen_self_static, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) ]) fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi _LT_DECL([dlopen_support], [enable_dlopen], [0], [Whether dlopen is supported]) _LT_DECL([dlopen_self], [enable_dlopen_self], [0], [Whether dlopen of programs is supported]) _LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], [Whether dlopen of statically linked programs is supported]) ])# LT_SYS_DLOPEN_SELF # Old name: AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) # _LT_COMPILER_C_O([TAGNAME]) # --------------------------- # Check to see if options -c and -o are simultaneously supported by compiler. # This macro does not hard code the compiler like AC_PROG_CC_C_O. m4_defun([_LT_COMPILER_C_O], [m4_require([_LT_DECL_SED])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes fi fi chmod u+w . 2>&AS_MESSAGE_LOG_FD $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* ]) _LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], [Does compiler simultaneously support -c and -o options?]) ])# _LT_COMPILER_C_O # _LT_COMPILER_FILE_LOCKS([TAGNAME]) # ---------------------------------- # Check to see if we can do hard links to lock some files if needed m4_defun([_LT_COMPILER_FILE_LOCKS], [m4_require([_LT_ENABLE_LOCK])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_COMPILER_C_O([$1]) hard_links="nottested" if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user AC_MSG_CHECKING([if we can lock with hard links]) hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no AC_MSG_RESULT([$hard_links]) if test "$hard_links" = no; then AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) need_locks=warn fi else need_locks=no fi _LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) ])# _LT_COMPILER_FILE_LOCKS # _LT_CHECK_OBJDIR # ---------------- m4_defun([_LT_CHECK_OBJDIR], [AC_CACHE_CHECK([for objdir], [lt_cv_objdir], [rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null]) objdir=$lt_cv_objdir _LT_DECL([], [objdir], [0], [The name of the directory that contains temporary libtool files])dnl m4_pattern_allow([LT_OBJDIR])dnl AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", [Define to the sub-directory in which libtool stores uninstalled libraries.]) ])# _LT_CHECK_OBJDIR # _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) # -------------------------------------- # Check hardcoding attributes. m4_defun([_LT_LINKER_HARDCODE_LIBPATH], [AC_MSG_CHECKING([how to hardcode library paths into programs]) _LT_TAGVAR(hardcode_action, $1)= if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || test -n "$_LT_TAGVAR(runpath_var, $1)" || test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then # We can hardcode non-existent directories. if test "$_LT_TAGVAR(hardcode_direct, $1)" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no && test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then # Linking always hardcodes the temporary library directory. _LT_TAGVAR(hardcode_action, $1)=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. _LT_TAGVAR(hardcode_action, $1)=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. _LT_TAGVAR(hardcode_action, $1)=unsupported fi AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi _LT_TAGDECL([], [hardcode_action], [0], [How to hardcode a shared library path into an executable]) ])# _LT_LINKER_HARDCODE_LIBPATH # _LT_CMD_STRIPLIB # ---------------- m4_defun([_LT_CMD_STRIPLIB], [m4_require([_LT_DECL_EGREP]) striplib= old_striplib= AC_MSG_CHECKING([whether stripping libraries is possible]) if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" AC_MSG_RESULT([yes]) else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi ;; *) AC_MSG_RESULT([no]) ;; esac fi _LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) _LT_DECL([], [striplib], [1]) ])# _LT_CMD_STRIPLIB # _LT_SYS_DYNAMIC_LINKER([TAG]) # ----------------------------- # PORTME Fill in your ld.so characteristics m4_defun([_LT_SYS_DYNAMIC_LINKER], [AC_REQUIRE([AC_CANONICAL_HOST])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_OBJDUMP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl AC_MSG_CHECKING([dynamic linker characteristics]) m4_if([$1], [], [ if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac case $host_os in mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;; *) lt_sed_strip_eq="s,=/,/,g" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in *\;*) # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` ;; *) lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ;; esac # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path/$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" else test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo="/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[[lt_foo]]++; } if (lt_freq[[lt_foo]] == 1) { print lt_foo; } }'` # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's,/\([[A-Za-z]]:\),\1,g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi]) library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[[4-9]]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[[01]] | aix4.[[01]].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[[45]]*) version_type=linux # correct to gnu/linux during the next big refactor need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$cc_basename in yes,*) # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ;; esac dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' library_names_spec='${libname}.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec="$LIB" if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then # It is most probably a Windows format PATH. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[[23]].*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[[01]]* | freebsdelf3.[[01]]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LIBRARY_PATH shlibpath_overrides_runpath=yes sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' # or fails outright, so override atomically: install_override_mode=555 ;; interix[[3-9]]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], [lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], [lt_cv_shlibpath_overrides_runpath=yes])]) LDFLAGS=$save_LDFLAGS libdir=$save_libdir ]) shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsdelf*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='NetBSD ld.elf_so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[[89]] | openbsd2.[[89]].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac AC_MSG_RESULT([$dynamic_linker]) test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi _LT_DECL([], [variables_saved_for_relink], [1], [Variables whose values should be saved in libtool wrapper scripts and restored at link time]) _LT_DECL([], [need_lib_prefix], [0], [Do we need the "lib" prefix for modules?]) _LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) _LT_DECL([], [version_type], [0], [Library versioning type]) _LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) _LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) _LT_DECL([], [shlibpath_overrides_runpath], [0], [Is shlibpath searched before the hard-coded library search path?]) _LT_DECL([], [libname_spec], [1], [Format of library name prefix]) _LT_DECL([], [library_names_spec], [1], [[List of archive names. First name is the real one, the rest are links. The last name is the one that the linker finds with -lNAME]]) _LT_DECL([], [soname_spec], [1], [[The coded name of the library, if different from the real name]]) _LT_DECL([], [install_override_mode], [1], [Permission mode override for installation of shared libraries]) _LT_DECL([], [postinstall_cmds], [2], [Command to use after installation of a shared archive]) _LT_DECL([], [postuninstall_cmds], [2], [Command to use after uninstallation of a shared archive]) _LT_DECL([], [finish_cmds], [2], [Commands used to finish a libtool library installation in a directory]) _LT_DECL([], [finish_eval], [1], [[As "finish_cmds", except a single script fragment to be evaled but not shown]]) _LT_DECL([], [hardcode_into_libs], [0], [Whether we should hardcode library paths into libraries]) _LT_DECL([], [sys_lib_search_path_spec], [2], [Compile-time system search path for libraries]) _LT_DECL([], [sys_lib_dlsearch_path_spec], [2], [Run-time system search path for libraries]) ])# _LT_SYS_DYNAMIC_LINKER # _LT_PATH_TOOL_PREFIX(TOOL) # -------------------------- # find a file program which can recognize shared library AC_DEFUN([_LT_PATH_TOOL_PREFIX], [m4_require([_LT_DECL_EGREP])dnl AC_MSG_CHECKING([for $1]) AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, [case $MAGIC_CMD in [[\\/*] | ?:[\\/]*]) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR dnl $ac_dummy forces splitting on constant user-supplied paths. dnl POSIX.2 word splitting is done only on the output of word expansions, dnl not every word. This closes a longstanding sh security hole. ac_dummy="m4_if([$2], , $PATH, [$2])" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$1; then lt_cv_path_MAGIC_CMD="$ac_dir/$1" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac]) MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then AC_MSG_RESULT($MAGIC_CMD) else AC_MSG_RESULT(no) fi _LT_DECL([], [MAGIC_CMD], [0], [Used to examine libraries when file_magic_cmd begins with "file"])dnl ])# _LT_PATH_TOOL_PREFIX # Old name: AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) # _LT_PATH_MAGIC # -------------- # find a file program which can recognize a shared library m4_defun([_LT_PATH_MAGIC], [_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) else MAGIC_CMD=: fi fi ])# _LT_PATH_MAGIC # LT_PATH_LD # ---------- # find the pathname to the GNU or non-GNU linker AC_DEFUN([LT_PATH_LD], [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_PROG_ECHO_BACKSLASH])dnl AC_ARG_WITH([gnu-ld], [AS_HELP_STRING([--with-gnu-ld], [assume the C compiler uses GNU ld @<:@default=no@:>@])], [test "$withval" = no || with_gnu_ld=yes], [with_gnu_ld=no])dnl ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by $CC]) case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [[\\/]]* | ?:[[\\/]]*) re_direlt='/[[^/]][[^/]]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL(lt_cv_path_LD, [if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else # Keep this pattern in sync with the one in func_win32_libid. lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc*) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; haiku*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[[3-9]]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) lt_cv_deplibs_check_method=pass_all ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; esac ]) file_magic_glob= want_nocaseglob=no if test "$build" = "$host"; then case $host_os in mingw* | pw32*) if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then want_nocaseglob=yes else file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` fi ;; esac fi file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown _LT_DECL([], [deplibs_check_method], [1], [Method to check whether dependent libraries are shared objects]) _LT_DECL([], [file_magic_cmd], [1], [Command to use when deplibs_check_method = "file_magic"]) _LT_DECL([], [file_magic_glob], [1], [How to find potential files when deplibs_check_method = "file_magic"]) _LT_DECL([], [want_nocaseglob], [1], [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) ])# _LT_CHECK_MAGIC_METHOD # LT_PATH_NM # ---------- # find the pathname to a BSD- or MS-compatible name lister AC_DEFUN([LT_PATH_NM], [AC_REQUIRE([AC_PROG_CC])dnl AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, [if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done : ${lt_cv_path_NM=no} fi]) if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : # Let the user override the test. else AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols" ;; *) DUMPBIN=: ;; esac fi AC_SUBST([DUMPBIN]) if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm AC_SUBST([NM]) _LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], [lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) cat conftest.out >&AS_MESSAGE_LOG_FD if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest*]) ])# LT_PATH_NM # Old names: AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_PROG_NM], []) dnl AC_DEFUN([AC_PROG_NM], []) # _LT_CHECK_SHAREDLIB_FROM_LINKLIB # -------------------------------- # how to determine the name of the shared library # associated with a specific link library. # -- PORTME fill in with the dynamic library characteristics m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], [m4_require([_LT_DECL_EGREP]) m4_require([_LT_DECL_OBJDUMP]) m4_require([_LT_DECL_DLLTOOL]) AC_CACHE_CHECK([how to associate runtime and link libraries], lt_cv_sharedlib_from_linklib_cmd, [lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in cygwin* | mingw* | pw32* | cegcc*) # two different shell functions defined in ltmain.sh # decide which to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in *--identify-strict*) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ;; *) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ;; esac ;; *) # fallback: assume linklib IS sharedlib lt_cv_sharedlib_from_linklib_cmd="$ECHO" ;; esac ]) sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO _LT_DECL([], [sharedlib_from_linklib_cmd], [1], [Command to associate shared and link libraries]) ])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB # _LT_PATH_MANIFEST_TOOL # ---------------------- # locate the manifest tool m4_defun([_LT_PATH_MANIFEST_TOOL], [AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], [lt_cv_path_mainfest_tool=no echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out cat conftest.err >&AS_MESSAGE_LOG_FD if $GREP 'Manifest Tool' conftest.out > /dev/null; then lt_cv_path_mainfest_tool=yes fi rm -f conftest*]) if test "x$lt_cv_path_mainfest_tool" != xyes; then MANIFEST_TOOL=: fi _LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl ])# _LT_PATH_MANIFEST_TOOL # LT_LIB_M # -------- # check for math library AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in *-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") ;; *) AC_CHECK_LIB(m, cos, LIBM="-lm") ;; esac AC_SUBST([LIBM]) ])# LT_LIB_M # Old name: AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_CHECK_LIBM], []) # _LT_COMPILER_NO_RTTI([TAGNAME]) # ------------------------------- m4_defun([_LT_COMPILER_NO_RTTI], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= if test "$GCC" = yes; then case $cc_basename in nvcc*) _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; *) _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; esac _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], lt_cv_prog_compiler_rtti_exceptions, [-fno-rtti -fno-exceptions], [], [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) fi _LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], [Compiler flag to turn off builtin functions]) ])# _LT_COMPILER_NO_RTTI # _LT_CMD_GLOBAL_SYMBOLS # ---------------------- m4_defun([_LT_CMD_GLOBAL_SYMBOLS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([LT_PATH_NM])dnl AC_REQUIRE([LT_PATH_LD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_TAG_COMPILER])dnl # Check for command to grab the raw symbol name followed by C symbol from nm. AC_MSG_CHECKING([command to parse $NM output from $compiler object]) AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], [ # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[[BCDEGRST]]' # Regexp to match symbols that can be accessed directly from C. sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[[BCDT]]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[[ABCDGISTW]]' ;; hpux*) if test "$host_cpu" = ia64; then symcode='[[ABCDEGRST]]' fi ;; irix* | nonstopux*) symcode='[[BCDEGRST]]' ;; osf*) symcode='[[BCDEGQRST]]' ;; solaris*) symcode='[[BDRT]]' ;; sco3.2v5*) symcode='[[DT]]' ;; sysv4.2uw2*) symcode='[[DT]]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[[ABDT]]' ;; sysv4) symcode='[[DFNSTU]]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[[ABCDGIRSTW]]' ;; esac # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function # and D for any global variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK ['"\ " {last_section=section; section=\$ 3};"\ " /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ " s[1]~/^[@?]/{print s[1], s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx]" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if AC_TRY_EVAL(ac_compile); then # Now try to grab the symbols. nlist=conftest.nm if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT@&t@_DLSYM_CONST #elif defined(__osf__) /* This system does not cope well with relocations in const data. */ # define LT@&t@_DLSYM_CONST #else # define LT@&t@_DLSYM_CONST const #endif #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ LT@&t@_DLSYM_CONST struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[[]] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_globsym_save_LIBS=$LIBS lt_globsym_save_CFLAGS=$CFLAGS LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS=$lt_globsym_save_LIBS CFLAGS=$lt_globsym_save_CFLAGS else echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD fi else echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done ]) if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then AC_MSG_RESULT(failed) else AC_MSG_RESULT(ok) fi # Response file support. if test "$lt_cv_nm_interface" = "MS dumpbin"; then nm_file_list_spec='@' elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then nm_file_list_spec='@' fi _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], [Take the output of nm and produce a listing of raw symbols and C names]) _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], [Transform the output of nm in a proper C declaration]) _LT_DECL([global_symbol_to_c_name_address], [lt_cv_sys_global_symbol_to_c_name_address], [1], [Transform the output of nm in a C name address pair]) _LT_DECL([global_symbol_to_c_name_address_lib_prefix], [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], [Transform the output of nm in a C name address pair when lib prefix is needed]) _LT_DECL([], [nm_file_list_spec], [1], [Specify filename containing input files for $NM]) ]) # _LT_CMD_GLOBAL_SYMBOLS # _LT_COMPILER_PIC([TAGNAME]) # --------------------------- m4_defun([_LT_COMPILER_PIC], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_wl, $1)= _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)= m4_if([$1], [CXX], [ # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. _LT_TAGVAR(lt_prog_compiler_static, $1)= ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else case $host_os in aix[[4-9]]*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; dgux*) case $cc_basename in ec++*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; ghcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' fi ;; aCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in KCC*) # KAI C++ Compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; ecpc* ) # old Intel C++ for x86_64 which still supported -KPIC. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; icpc* ) # Intel C++, used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; pgCC* | pgcpp*) # Portland Group C++ compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL 8.0, 9.0 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' ;; *) ;; esac ;; netbsd* | netbsdelf*-gnu) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; cxx*) # Digital/Compaq C++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; lcc*) # Lucid _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; *) ;; esac ;; vxworks*) ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ], [ if test "$GCC" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. _LT_TAGVAR(lt_prog_compiler_static, $1)= ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)" fi ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; hpux9* | hpux10* | hpux11*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC (with -KPIC) is the default. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # Lahey Fortran 8.1. lf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' ;; nagfor*) # NAG Fortran compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; ccc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All Alpha code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xl* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) # Sun Fortran 8.3 passes all unrecognized flags to the linker _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='' ;; *Sun\ F* | *Sun*Fortran*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; *Intel*\ [[CF]]*Compiler*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; *Portland\ Group*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; esac ;; newsos6) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All OSF/1 code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; rdos*) _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; solaris*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; *) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; esac ;; sunos4*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; unicos*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; uts4*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ]) case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" ;; esac AC_CACHE_CHECK([for $compiler option to produce PIC], [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) _LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) # # Check to make sure the PIC flag actually works. # if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in "" | " "*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; esac], [_LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) fi _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], [Additional compiler flags for building library objects]) _LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], [How to pass a linker flag through the compiler]) # # Check to make sure the static flag actually works. # wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), $lt_tmp_static_flag, [], [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) _LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], [Compiler flag to prevent dynamic linking]) ])# _LT_COMPILER_PIC # _LT_LINKER_SHLIBS([TAGNAME]) # ---------------------------- # See if the linker supports building shared libraries. m4_defun([_LT_LINKER_SHLIBS], [AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl m4_require([_LT_PATH_MANIFEST_TOOL])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) m4_if([$1], [CXX], [ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] case $host_os in aix[[4-9]]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm # Also, AIX nm treats weak defined symbols like other global defined # symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" ;; cygwin* | mingw* | cegcc*) case $cc_basename in cl*) _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] ;; esac ;; linux* | k*bsd*-gnu | gnu*) _LT_TAGVAR(link_all_deplibs, $1)=no ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac ], [ runpath_var= _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_cmds, $1)= _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(old_archive_from_new_cmds, $1)= _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= _LT_TAGVAR(thread_safe_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list _LT_TAGVAR(include_expsyms, $1)= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. dnl Note also adjust exclude_expsyms for C++ above. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; linux* | k*bsd*-gnu | gnu*) _LT_TAGVAR(link_all_deplibs, $1)=no ;; esac _LT_TAGVAR(ld_shlibs, $1)=yes # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test "$with_gnu_ld" = yes; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test "$lt_use_gnu_ld_interface" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi supports_anon_versioning=no case `$LD -v 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[[3-9]]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.19, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=yes ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group f77 and f90 compilers _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 _LT_TAGVAR(whole_archive_flag_spec, $1)= tmp_sharedflag='--shared' ;; xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; sunos4*) _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then runpath_var= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. _LT_TAGVAR(hardcode_minus_L, $1)=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. _LT_TAGVAR(hardcode_direct, $1)=unsupported fi ;; aix[[4-9]]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm # Also, AIX nm treats weak defined symbols like other global # defined symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' if test "$GCC" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi _LT_TAGVAR(link_all_deplibs, $1)=no else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. _LT_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; bsdi[[45]]*) _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. case $cc_basename in cl*) # Native MSVC _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; else sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' # Don't use ranlib _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile="$lt_outputfile.exe" lt_tool_outputfile="$lt_tool_outputfile.exe" ;; esac~ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # Assume MSVC wrapper _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' # FIXME: Should let the user specify the lib program. _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; esac ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2.*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; hpux9*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; hpux10*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes fi ;; hpux11*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) m4_if($1, [], [ # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) _LT_LINKER_OPTION([if $CC understands -b], _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) ;; esac fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. # This should be the same for all languages, so no per-tag cache variable. AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], [lt_cv_irix_exported_symbol], [save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" AC_LINK_IFELSE( [AC_LANG_SOURCE( [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], [C++], [[int foo (void) { return 0; }]], [Fortran 77], [[ subroutine foo end]], [Fortran], [[ subroutine foo end]])])], [lt_cv_irix_exported_symbol=yes], [lt_cv_irix_exported_symbol=no]) LDFLAGS="$save_LDFLAGS"]) if test "$lt_cv_irix_exported_symbol" = yes; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' fi else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes _LT_TAGVAR(link_all_deplibs, $1)=yes ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; newsos6) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' else case $host_os in openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' ;; esac fi else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; os2*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; solaris*) _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' fi ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4) case $host_vendor in sni) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' _LT_TAGVAR(hardcode_direct, $1)=no ;; motorola) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4.3*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes _LT_TAGVAR(ld_shlibs, $1)=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(ld_shlibs, $1)=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' ;; esac fi fi ]) AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld _LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl _LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl _LT_DECL([], [extract_expsyms_cmds], [2], [The commands to extract the exported symbol list from a shared archive]) # # Do we need to explicitly link libc? # case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in x|xyes) # Assume -lc should be added _LT_TAGVAR(archive_cmds_need_lc, $1)=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $_LT_TAGVAR(archive_cmds, $1) in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. AC_CACHE_CHECK([whether -lc should be explicitly linked in], [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), [$RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if AC_TRY_EVAL(ac_compile) 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) _LT_TAGVAR(allow_undefined_flag, $1)= if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) then lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no else lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes fi _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* ]) _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) ;; esac fi ;; esac _LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], [Whether or not to add -lc for building shared libraries]) _LT_TAGDECL([allow_libtool_libs_with_static_runtimes], [enable_shared_with_static_runtimes], [0], [Whether or not to disallow shared libs when runtime libs are static]) _LT_TAGDECL([], [export_dynamic_flag_spec], [1], [Compiler flag to allow reflexive dlopens]) _LT_TAGDECL([], [whole_archive_flag_spec], [1], [Compiler flag to generate shared objects directly from archives]) _LT_TAGDECL([], [compiler_needs_object], [1], [Whether the compiler copes with passing no objects directly]) _LT_TAGDECL([], [old_archive_from_new_cmds], [2], [Create an old-style archive from a shared archive]) _LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], [Create a temporary old-style archive to link instead of a shared archive]) _LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) _LT_TAGDECL([], [archive_expsym_cmds], [2]) _LT_TAGDECL([], [module_cmds], [2], [Commands used to build a loadable module if different from building a shared archive.]) _LT_TAGDECL([], [module_expsym_cmds], [2]) _LT_TAGDECL([], [with_gnu_ld], [1], [Whether we are building with GNU ld or not]) _LT_TAGDECL([], [allow_undefined_flag], [1], [Flag that allows shared libraries with undefined symbols to be built]) _LT_TAGDECL([], [no_undefined_flag], [1], [Flag that enforces no undefined symbols]) _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], [Flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]) _LT_TAGDECL([], [hardcode_libdir_separator], [1], [Whether we need a single "-rpath" flag with a separated argument]) _LT_TAGDECL([], [hardcode_direct], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_direct_absolute], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary and the resulting library dependency is "absolute", i.e impossible to change by setting ${shlibpath_var} if the library is relocated]) _LT_TAGDECL([], [hardcode_minus_L], [0], [Set to "yes" if using the -LDIR flag during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_shlibpath_var], [0], [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_automatic], [0], [Set to "yes" if building a shared library automatically hardcodes DIR into the library and all subsequent libraries and executables linked against it]) _LT_TAGDECL([], [inherit_rpath], [0], [Set to yes if linker adds runtime paths of dependent libraries to runtime path list]) _LT_TAGDECL([], [link_all_deplibs], [0], [Whether libtool must link a program against all its dependency libraries]) _LT_TAGDECL([], [always_export_symbols], [0], [Set to "yes" if exported symbols are required]) _LT_TAGDECL([], [export_symbols_cmds], [2], [The commands to list exported symbols]) _LT_TAGDECL([], [exclude_expsyms], [1], [Symbols that should not be listed in the preloaded symbols]) _LT_TAGDECL([], [include_expsyms], [1], [Symbols that must always be exported]) _LT_TAGDECL([], [prelink_cmds], [2], [Commands necessary for linking programs (against libraries) with templates]) _LT_TAGDECL([], [postlink_cmds], [2], [Commands necessary for finishing linking programs]) _LT_TAGDECL([], [file_list_spec], [1], [Specify filename containing input files]) dnl FIXME: Not yet implemented dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], dnl [Compiler flag to generate thread safe objects]) ])# _LT_LINKER_SHLIBS # _LT_LANG_C_CONFIG([TAG]) # ------------------------ # Ensure that the configuration variables for a C compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_C_CONFIG], [m4_require([_LT_DECL_EGREP])dnl lt_save_CC="$CC" AC_LANG_PUSH(C) # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' _LT_TAG_COMPILER # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) LT_SYS_DLOPEN_SELF _LT_CMD_STRIPLIB # Report which library types will actually be built AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_CONFIG($1) fi AC_LANG_POP CC="$lt_save_CC" ])# _LT_LANG_C_CONFIG # _LT_LANG_CXX_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a C++ compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_CXX_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_PATH_MANIFEST_TOOL])dnl if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then AC_PROG_CXXCPP else _lt_caught_CXX_error=yes fi AC_LANG_PUSH(C++) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_caught_CXX_error" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} CFLAGS=$CXXFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' else _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration LT_PATH_LD # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) _LT_TAGVAR(ld_shlibs, $1)=yes case $host_os in aix3*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aix[[4-9]]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' if test "$GXX" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. _LT_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an empty # executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared # libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; cygwin* | mingw* | pw32* | cegcc*) case $GXX,$cc_basename in ,cl* | no,cl*) # Native MSVC # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; else $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes # Don't use ranlib _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile="$lt_outputfile.exe" lt_tool_outputfile="$lt_tool_outputfile.exe" ;; esac~ func_to_tool_file "$lt_outputfile"~ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # g++ # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; freebsd2.*) # C++ shared libraries reported to be fairly broken before # switch to ELF _LT_TAGVAR(ld_shlibs, $1)=no ;; freebsd-elf*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions _LT_TAGVAR(ld_shlibs, $1)=yes ;; haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=yes ;; hpux9*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) ;; *) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' fi fi _LT_TAGVAR(link_all_deplibs, $1)=yes ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes ;; linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc* | ecpc* ) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ $RANLIB $oldlib' _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; *) # Version 6 and above use weak symbols _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' ;; xl* | mpixl* | bgxl*) # IBM XL 8.0 on PPC, with GNU ld _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; m88k*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; *nto* | *qnx*) _LT_TAGVAR(ld_shlibs, $1)=yes ;; openbsd2*) # C++ shared libraries are fairly broken _LT_TAGVAR(ld_shlibs, $1)=no ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd=func_echo_all else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Archives containing C++ object files must be created using # the KAI C++ compiler. case $host in osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; esac ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; cxx*) case $host in osf3*) _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ;; *) _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ;; esac _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' case $host in osf3*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(archive_cmds_need_lc,$1)=yes _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ '"$_LT_TAGVAR(old_archive_cmds, $1)" _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ '"$_LT_TAGVAR(reload_cmds, $1)" ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(GCC, $1)="$GXX" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld fi # test "$_lt_caught_CXX_error" != yes AC_LANG_POP ])# _LT_LANG_CXX_CONFIG # _LT_FUNC_STRIPNAME_CNF # ---------------------- # func_stripname_cnf prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # # This function is identical to the (non-XSI) version of func_stripname, # except this one can be used by m4 code that may be executed by configure, # rather than the libtool script. m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl AC_REQUIRE([_LT_DECL_SED]) AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) func_stripname_cnf () { case ${2} in .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; esac } # func_stripname_cnf ])# _LT_FUNC_STRIPNAME_CNF # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) # --------------------------------- # Figure out "hidden" library dependencies from verbose # compiler output when linking a shared library. # Parse the compiler output and extract the necessary # objects, libraries and library flags. m4_defun([_LT_SYS_HIDDEN_LIBDEPS], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl # Dependencies to place before and after the object being linked: _LT_TAGVAR(predep_objects, $1)= _LT_TAGVAR(postdep_objects, $1)= _LT_TAGVAR(predeps, $1)= _LT_TAGVAR(postdeps, $1)= _LT_TAGVAR(compiler_lib_search_path, $1)= dnl we can't use the lt_simple_compile_test_code here, dnl because it contains code intended for an executable, dnl not a library. It's possible we should let each dnl tag define a new lt_????_link_test_code variable, dnl but it's only used here... m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF int a; void foo (void) { a = 0; } _LT_EOF ], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF class Foo { public: Foo (void) { a = 0; } private: int a; }; _LT_EOF ], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer*4 a a=0 return end _LT_EOF ], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer a a=0 return end _LT_EOF ], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF public class foo { private int a; public void bar (void) { a = 0; } }; _LT_EOF ], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF package foo func foo() { } _LT_EOF ]) _lt_libdeps_save_CFLAGS=$CFLAGS case "$CC $CFLAGS " in #( *\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; *\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; *\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; esac dnl Parse the compiler output and extract the necessary dnl objects, libraries and library flags. if AC_TRY_EVAL(ac_compile); then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do case ${prev}${p} in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" || test $p = "-R"; then prev=$p continue fi # Expand the sysroot to ease extracting the directories later. if test -z "$prev"; then case $p in -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; esac fi case $p in =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; esac if test "$pre_test_object_deps_done" = no; then case ${prev} in -L | -R) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" else _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$_LT_TAGVAR(postdeps, $1)"; then _LT_TAGVAR(postdeps, $1)="${prev}${p}" else _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" fi fi prev= ;; *.lto.$objext) ;; # Ignore GCC LTO objects *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$_LT_TAGVAR(predep_objects, $1)"; then _LT_TAGVAR(predep_objects, $1)="$p" else _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" fi else if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then _LT_TAGVAR(postdep_objects, $1)="$p" else _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling $1 test program" fi $RM -f confest.$objext CFLAGS=$_lt_libdeps_save_CFLAGS # PORTME: override above test on systems where it is broken m4_if([$1], [CXX], [case $host_os in interix[[3-9]]*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. _LT_TAGVAR(predep_objects,$1)= _LT_TAGVAR(postdep_objects,$1)= _LT_TAGVAR(postdeps,$1)= ;; linux*) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac if test "$solaris_use_stlport4" != yes; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; solaris*) case $cc_basename in CC* | sunCC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. if test "$solaris_use_stlport4" != yes; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; esac ]) case " $_LT_TAGVAR(postdeps, $1) " in *" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; esac _LT_TAGVAR(compiler_lib_search_dirs, $1)= if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` fi _LT_TAGDECL([], [compiler_lib_search_dirs], [1], [The directories searched by this compiler when creating a shared library]) _LT_TAGDECL([], [predep_objects], [1], [Dependencies to place before and after the objects being linked to create a shared library]) _LT_TAGDECL([], [postdep_objects], [1]) _LT_TAGDECL([], [predeps], [1]) _LT_TAGDECL([], [postdeps], [1]) _LT_TAGDECL([], [compiler_lib_search_path], [1], [The library search path used internally by the compiler when linking a shared library]) ])# _LT_SYS_HIDDEN_LIBDEPS # _LT_LANG_F77_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a Fortran 77 compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_F77_CONFIG], [AC_LANG_PUSH(Fortran 77) if test -z "$F77" || test "X$F77" = "Xno"; then _lt_disable_F77=yes fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the F77 compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_F77" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC lt_save_CFLAGS=$CFLAGS CC=${F77-"f77"} CFLAGS=$FFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) GCC=$G77 if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)="$G77" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC="$lt_save_CC" CFLAGS="$lt_save_CFLAGS" fi # test "$_lt_disable_F77" != yes AC_LANG_POP ])# _LT_LANG_F77_CONFIG # _LT_LANG_FC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for a Fortran compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_FC_CONFIG], [AC_LANG_PUSH(Fortran) if test -z "$FC" || test "X$FC" = "Xno"; then _lt_disable_FC=yes fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for fc test sources. ac_ext=${ac_fc_srcext-f} # Object file extension for compiled fc test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the FC compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_FC" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC lt_save_CFLAGS=$CFLAGS CC=${FC-"f95"} CFLAGS=$FCFLAGS compiler=$CC GCC=$ac_cv_fc_compiler_gnu _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS fi # test "$_lt_disable_FC" != yes AC_LANG_POP ])# _LT_LANG_FC_CONFIG # _LT_LANG_GCJ_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Java Compiler compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_GCJ_CONFIG], [AC_REQUIRE([LT_PROG_GCJ])dnl AC_LANG_SAVE # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="class foo {}" # Code to be used in simple link tests lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC=yes CC=${GCJ-"gcj"} CFLAGS=$GCJFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)="$LD" _LT_CC_BASENAME([$compiler]) # GCJ did not exist at the time GCC didn't implicitly link libc in. _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi AC_LANG_RESTORE GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_GCJ_CONFIG # _LT_LANG_GO_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Go compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_GO_CONFIG], [AC_REQUIRE([LT_PROG_GO])dnl AC_LANG_SAVE # Source file extension for Go test sources. ac_ext=go # Object file extension for compiled Go test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="package main; func main() { }" # Code to be used in simple link tests lt_simple_link_test_code='package main; func main() { }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC=yes CC=${GOC-"gccgo"} CFLAGS=$GOFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)="$LD" _LT_CC_BASENAME([$compiler]) # Go did not exist at the time GCC didn't implicitly link libc in. _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi AC_LANG_RESTORE GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_GO_CONFIG # _LT_LANG_RC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for the Windows resource compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_RC_CONFIG], [AC_REQUIRE([LT_PROG_RC])dnl AC_LANG_SAVE # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' # Code to be used in simple link tests lt_simple_link_test_code="$lt_simple_compile_test_code" # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC= CC=${RC-"windres"} CFLAGS= compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes if test -n "$compiler"; then : _LT_CONFIG($1) fi GCC=$lt_save_GCC AC_LANG_RESTORE CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_RC_CONFIG # LT_PROG_GCJ # ----------- AC_DEFUN([LT_PROG_GCJ], [m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], [AC_CHECK_TOOL(GCJ, gcj,) test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" AC_SUBST(GCJFLAGS)])])[]dnl ]) # Old name: AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_GCJ], []) # LT_PROG_GO # ---------- AC_DEFUN([LT_PROG_GO], [AC_CHECK_TOOL(GOC, gccgo,) ]) # LT_PROG_RC # ---------- AC_DEFUN([LT_PROG_RC], [AC_CHECK_TOOL(RC, windres,) ]) # Old name: AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_RC], []) # _LT_DECL_EGREP # -------------- # If we don't have a new enough Autoconf to choose the best grep # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_EGREP], [AC_REQUIRE([AC_PROG_EGREP])dnl AC_REQUIRE([AC_PROG_FGREP])dnl test -z "$GREP" && GREP=grep _LT_DECL([], [GREP], [1], [A grep program that handles long lines]) _LT_DECL([], [EGREP], [1], [An ERE matcher]) _LT_DECL([], [FGREP], [1], [A literal string matcher]) dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too AC_SUBST([GREP]) ]) # _LT_DECL_OBJDUMP # -------------- # If we don't have a new enough Autoconf to choose the best objdump # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_OBJDUMP], [AC_CHECK_TOOL(OBJDUMP, objdump, false) test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) AC_SUBST([OBJDUMP]) ]) # _LT_DECL_DLLTOOL # ---------------- # Ensure DLLTOOL variable is set. m4_defun([_LT_DECL_DLLTOOL], [AC_CHECK_TOOL(DLLTOOL, dlltool, false) test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [1], [DLL creation program]) AC_SUBST([DLLTOOL]) ]) # _LT_DECL_SED # ------------ # Check for a fully-functional sed program, that truncates # as few characters as possible. Prefer GNU sed if found. m4_defun([_LT_DECL_SED], [AC_PROG_SED test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" _LT_DECL([], [SED], [1], [A sed program that does not truncate output]) _LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], [Sed that helps us avoid accidentally triggering echo(1) options like -n]) ])# _LT_DECL_SED m4_ifndef([AC_PROG_SED], [ ############################################################ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_SED. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # ############################################################ m4_defun([AC_PROG_SED], [AC_MSG_CHECKING([for a sed that does not truncate output]) AC_CACHE_VAL(lt_cv_path_SED, [# Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for lt_ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done done done IFS=$as_save_IFS lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do test ! -f $lt_ac_sed && continue cat /dev/null > conftest.in lt_ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >conftest.in # Check for GNU sed and select it if it is found. if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then lt_cv_path_SED=$lt_ac_sed break fi while true; do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >>conftest.nl $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough test $lt_ac_count -gt 10 && break lt_ac_count=`expr $lt_ac_count + 1` if test $lt_ac_count -gt $lt_ac_max; then lt_ac_max=$lt_ac_count lt_cv_path_SED=$lt_ac_sed fi done done ]) SED=$lt_cv_path_SED AC_SUBST([SED]) AC_MSG_RESULT([$SED]) ])#AC_PROG_SED ])#m4_ifndef # Old name: AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_SED], []) # _LT_CHECK_SHELL_FEATURES # ------------------------ # Find out whether the shell is Bourne or XSI compatible, # or has some other useful features. m4_defun([_LT_CHECK_SHELL_FEATURES], [AC_MSG_CHECKING([whether the shell understands some XSI constructs]) # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,b/c, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes AC_MSG_RESULT([$xsi_shell]) _LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) AC_MSG_CHECKING([whether the shell understands "+="]) lt_shell_append=no ( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes AC_MSG_RESULT([$lt_shell_append]) _LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi _LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac _LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl ])# _LT_CHECK_SHELL_FEATURES # _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY) # ------------------------------------------------------ # In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and # '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY. m4_defun([_LT_PROG_FUNCTION_REPLACE], [dnl { sed -e '/^$1 ()$/,/^} # $1 /c\ $1 ()\ {\ m4_bpatsubsts([$2], [$], [\\], [^\([ ]\)], [\\\1]) } # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: ]) # _LT_PROG_REPLACE_SHELLFNS # ------------------------- # Replace existing portable implementations of several shell functions with # equivalent extended shell implementations where those features are available.. m4_defun([_LT_PROG_REPLACE_SHELLFNS], [if test x"$xsi_shell" = xyes; then _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac]) _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl func_basename_result="${1##*/}"]) _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac func_basename_result="${1##*/}"]) _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are # positional parameters, so assign one to ordinary parameter first. func_stripname_result=${3} func_stripname_result=${func_stripname_result#"${1}"} func_stripname_result=${func_stripname_result%"${2}"}]) _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl func_split_long_opt_name=${1%%=*} func_split_long_opt_arg=${1#*=}]) _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl func_split_short_opt_arg=${1#??} func_split_short_opt_name=${1%"$func_split_short_opt_arg"}]) _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl case ${1} in *.lo) func_lo2o_result=${1%.lo}.${objext} ;; *) func_lo2o_result=${1} ;; esac]) _LT_PROG_FUNCTION_REPLACE([func_xform], [ func_xform_result=${1%.*}.lo]) _LT_PROG_FUNCTION_REPLACE([func_arith], [ func_arith_result=$(( $[*] ))]) _LT_PROG_FUNCTION_REPLACE([func_len], [ func_len_result=${#1}]) fi if test x"$lt_shell_append" = xyes; then _LT_PROG_FUNCTION_REPLACE([func_append], [ eval "${1}+=\\${2}"]) _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl func_quote_for_eval "${2}" dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \ eval "${1}+=\\\\ \\$func_quote_for_eval_result"]) # Save a `func_append' function call where possible by direct use of '+=' sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: else # Save a `func_append' function call even when '+=' is not available sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: fi if test x"$_lt_function_replace_fail" = x":"; then AC_MSG_WARN([Unable to substitute extended shell functions in $ofile]) fi ]) # _LT_PATH_CONVERSION_FUNCTIONS # ----------------------------- # Determine which file name conversion functions should be used by # func_to_host_file (and, implicitly, by func_to_host_path). These are needed # for certain cross-compile configurations and native mingw. m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_MSG_CHECKING([how to convert $build file names to $host format]) AC_CACHE_VAL(lt_cv_to_host_file_cmd, [case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ;; esac ;; *-*-cygwin* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_noop ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ;; esac ;; * ) # unhandled hosts (and "normal" native builds) lt_cv_to_host_file_cmd=func_convert_file_noop ;; esac ]) to_host_file_cmd=$lt_cv_to_host_file_cmd AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) _LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], [0], [convert $build file names to $host format])dnl AC_MSG_CHECKING([how to convert $build file names to toolchain format]) AC_CACHE_VAL(lt_cv_to_tool_file_cmd, [#assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ;; esac ;; esac ]) to_tool_file_cmd=$lt_cv_to_tool_file_cmd AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) _LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], [0], [convert $build files to toolchain format])dnl ])# _LT_PATH_CONVERSION_FUNCTIONS libextractor-1.3/m4/inttypes-pri.m40000644000175000017500000000215211260753602014233 00000000000000# inttypes-pri.m4 serial 4 (gettext-0.16) dnl Copyright (C) 1997-2002, 2006 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. AC_PREREQ(2.52) # Define PRI_MACROS_BROKEN if exists and defines the PRI* # macros to non-string values. This is the case on AIX 4.3.3. AC_DEFUN([gt_INTTYPES_PRI], [ AC_CHECK_HEADERS([inttypes.h]) if test $ac_cv_header_inttypes_h = yes; then AC_CACHE_CHECK([whether the inttypes.h PRIxNN macros are broken], gt_cv_inttypes_pri_broken, [ AC_TRY_COMPILE([#include #ifdef PRId32 char *p = PRId32; #endif ], [], gt_cv_inttypes_pri_broken=no, gt_cv_inttypes_pri_broken=yes) ]) fi if test "$gt_cv_inttypes_pri_broken" = yes; then AC_DEFINE_UNQUOTED(PRI_MACROS_BROKEN, 1, [Define if exists and defines unusable PRI* macros.]) PRI_MACROS_BROKEN=1 else PRI_MACROS_BROKEN=0 fi AC_SUBST([PRI_MACROS_BROKEN]) ]) libextractor-1.3/m4/signed.m40000644000175000017500000000140111260753602013031 00000000000000# signed.m4 serial 1 (gettext-0.10.40) dnl Copyright (C) 2001-2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl From Bruno Haible. AC_DEFUN([bh_C_SIGNED], [ AC_CACHE_CHECK([for signed], bh_cv_c_signed, [AC_TRY_COMPILE(, [signed char x;], bh_cv_c_signed=yes, bh_cv_c_signed=no)]) if test $bh_cv_c_signed = no; then AC_DEFINE(signed, , [Define to empty if the C compiler doesn't support this keyword.]) fi ]) libextractor-1.3/m4/ac_python_devel.m40000644000175000017500000000370511260753602014734 00000000000000dnl Available from the GNU Autoconf Macro Archive at: dnl http://www.gnu.org/software/ac-archive/htmldoc/ac_python_devel.html dnl AC_DEFUN([AC_PYTHON_DEVEL],[ # # should allow for checking of python version here... # AC_REQUIRE([AM_PATH_PYTHON]) # Check for Python include path AC_MSG_CHECKING([for Python include path]) python_path=`echo $PYTHON | sed "s,/bin.*$,,"` for i in "$python_path/include/python$PYTHON_VERSION/" "$python_path/include/python/" "$python_path/" ; do python_path=`find $i -type f -name Python.h -print | sed "1q"` if test -n "$python_path" ; then break fi done python_path=`echo $python_path | sed "s,/Python.h$,,"` AC_MSG_RESULT([$python_path]) if test -z "$python_path" ; then AC_MSG_WARN([cannot find Python include path]) else AC_SUBST([PYTHON_CPPFLAGS],[-I$python_path]) # Check for Python library path AC_MSG_CHECKING([for Python library path]) python_path=`echo $PYTHON | sed "s,/bin.*$,,"` for i in "$python_path/lib/python$PYTHON_VERSION/config/" "$python_path/lib/python$PYTHON_VERSION/" "$python_path/lib/python/config/" "$python_path/lib/python/" "$python_path/" ; do python_path=`find $i -type f -name libpython$PYTHON_VERSION.* -print | sed "1q"` if test -n "$python_path" ; then break fi done python_path=`echo $python_path | sed "s,/libpython.*$,,"` AC_MSG_RESULT([$python_path]) if test -z "$python_path" ; then AC_MSG_ERROR([cannot find Python library path]) fi AC_SUBST([PYTHON_LDFLAGS],["-L$python_path -lpython$PYTHON_VERSION"]) # python_site=`echo $python_path | sed "s/config/site-packages/"` AC_SUBST([PYTHON_SITE_PKG],[$python_site]) # # libraries which must be linked in when embedding # AC_MSG_CHECKING(python extra libraries) PYTHON_EXTRA_LIBS=`$PYTHON -c "import distutils.sysconfig; \ conf = distutils.sysconfig.get_config_var; \ print conf('LOCALMODLIBS')+' '+conf('LIBS')" AC_MSG_RESULT($PYTHON_EXTRA_LIBS)` AC_SUBST(PYTHON_EXTRA_LIBS) fi ]) libextractor-1.3/m4/glibc21.m40000644000175000017500000000144511260753602013013 00000000000000# glibc21.m4 serial 3 dnl Copyright (C) 2000-2002, 2004 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # Test for the GNU C Library, version 2.1 or newer. # From Bruno Haible. AC_DEFUN([gl_GLIBC21], [ AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer, ac_cv_gnu_library_2_1, [AC_EGREP_CPP([Lucky GNU user], [ #include #ifdef __GNU_LIBRARY__ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2) Lucky GNU user #endif #endif ], ac_cv_gnu_library_2_1=yes, ac_cv_gnu_library_2_1=no) ] ) AC_SUBST(GLIBC21) GLIBC21="$ac_cv_gnu_library_2_1" ] ) libextractor-1.3/m4/inttypes.m40000644000175000017500000000171711260753602013451 00000000000000# inttypes.m4 serial 1 (gettext-0.11.4) dnl Copyright (C) 1997-2002 Free Software Foundation, Inc. dnl This file is free software, distributed under the terms of the GNU dnl General Public License. As a special exception to the GNU General dnl Public License, this file may be distributed as part of a program dnl that contains a configuration script generated by Autoconf, under dnl the same distribution terms as the rest of that program. dnl From Paul Eggert. # Define HAVE_INTTYPES_H if exists and doesn't clash with # . AC_DEFUN([gt_HEADER_INTTYPES_H], [ AC_CACHE_CHECK([for inttypes.h], gt_cv_header_inttypes_h, [ AC_TRY_COMPILE( [#include #include ], [], gt_cv_header_inttypes_h=yes, gt_cv_header_inttypes_h=no) ]) if test $gt_cv_header_inttypes_h = yes; then AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H, 1, [Define if exists and doesn't clash with .]) fi ]) libextractor-1.3/m4/abi-gsf.m40000644000175000017500000000364011260753602013077 00000000000000# start: abi/ac-helpers/abi-gsf.m4 # # Copyright (C) 2005 Christian Neumair # # This file is free software; you may copy and/or distribute it with # or without modifications, as long as this notice is preserved. # This software is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY, to the extent permitted by law; without even # the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR # PURPOSE. # # The above license applies to THIS FILE ONLY, the GNUnet code # itself may be copied and distributed under the terms of the GNU # GPL, see COPYING for more details # # Usage: ABI_GSF # Check for gsf AC_DEFUN([ABI_GSF], [ test_gsf=true have_gsf=false test_gsf_gnome=true have_gsf_gnome=false AC_ARG_ENABLE(gsf,[ --disable-gsf Turn off gsf], [ if test "x$enableval" = "xno"; then test_gsf=false fi ]) AC_ARG_ENABLE(gsf-gnome,[ --disable-gnome Turn off gsf-gnome], [ if test "x$enableval" = "xno"; then test_gsf_gnome=false fi ]) if test "x$test_gsf" = "xtrue" ; then PKG_CHECK_MODULES(GSF,[libgsf-1 >= 1.10], [ have_gsf=true GSF_CFLAGS="$GSF_CFLAGS -DHAVE_GSF" ], [ have_gsf=false ]) fi if test "x$have_gsf" = "xtrue" -a "x$test_gsf_gnome" = "xtrue" ; then PKG_CHECK_MODULES(GSF_GNOME, [libgsf-gnome-1 >= 1.10], [ have_gsf_gnome=true GSF_GNOME_CFLAGS="$GSF_GNOME_CFLAGS -DHAVE_GSF_GNOME" ], [ have_gsf_gnome=false ]) fi AC_SUBST(GSF_CFLAGS) AC_SUBST(GSF_LIBS) AC_SUBST(GSF_GNOME_CFLAGS) AC_SUBST(GSF_GNOME_LIBS) AM_CONDITIONAL(WITH_GSF, test "x$have_gsf" = "xtrue") AM_CONDITIONAL(WITH_GSF_GNOME, test "x$have_gsf_gnome" = "xtrue") if test "x$have_gsf_gnome" = "xtrue" ; then abi_gsf_message="yes, with GNOME support" AC_DEFINE(HAVE_GSF, 1, [Have gsf]) else if test "x$have_gsf" = "xtrue" ; then abi_gsf_message="yes, without GNOME support" AC_DEFINE(HAVE_GSF, 1, [Have gsf]) else abi_gsf_message="no" AC_DEFINE(HAVE_GSF, 0, [Have gsf]) fi fi ]) libextractor-1.3/m4/lib-prefix.m40000644000175000017500000001503611260753602013632 00000000000000# lib-prefix.m4 serial 5 (gettext-0.15) dnl Copyright (C) 2001-2005 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't dnl require excessive bracketing. ifdef([AC_HELP_STRING], [AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])], [AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])]) dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed dnl to access previously installed libraries. The basic assumption is that dnl a user will want packages to use other packages he previously installed dnl with the same --prefix option. dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate dnl libraries, but is otherwise very convenient. AC_DEFUN([AC_LIB_PREFIX], [ AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) dnl By default, look in $includedir and $libdir. use_additional=yes AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) AC_LIB_ARG_WITH([lib-prefix], [ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib --without-lib-prefix don't search for libraries in includedir and libdir], [ if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" fi fi ]) if test $use_additional = yes; then dnl Potentially add $additional_includedir to $CPPFLAGS. dnl But don't add it dnl 1. if it's the standard /usr/include, dnl 2. if it's already present in $CPPFLAGS, dnl 3. if it's /usr/local/include and we are using GCC on Linux, dnl 4. if it doesn't exist as a directory. if test "X$additional_includedir" != "X/usr/include"; then haveit= for x in $CPPFLAGS; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then if test -d "$additional_includedir"; then dnl Really add $additional_includedir to $CPPFLAGS. CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" fi fi fi fi dnl Potentially add $additional_libdir to $LDFLAGS. dnl But don't add it dnl 1. if it's the standard /usr/lib, dnl 2. if it's already present in $LDFLAGS, dnl 3. if it's /usr/local/lib and we are using GCC on Linux, dnl 4. if it doesn't exist as a directory. if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then haveit= for x in $LDFLAGS; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then if test -n "$GCC"; then case $host_os in linux*) haveit=yes;; esac fi fi if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LDFLAGS. LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" fi fi fi fi fi ]) dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, dnl acl_final_exec_prefix, containing the values to which $prefix and dnl $exec_prefix will expand at the end of the configure script. AC_DEFUN([AC_LIB_PREPARE_PREFIX], [ dnl Unfortunately, prefix and exec_prefix get only finally determined dnl at the end of configure. if test "X$prefix" = "XNONE"; then acl_final_prefix="$ac_default_prefix" else acl_final_prefix="$prefix" fi if test "X$exec_prefix" = "XNONE"; then acl_final_exec_prefix='${prefix}' else acl_final_exec_prefix="$exec_prefix" fi acl_save_prefix="$prefix" prefix="$acl_final_prefix" eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" prefix="$acl_save_prefix" ]) dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the dnl variables prefix and exec_prefix bound to the values they will have dnl at the end of the configure script. AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], [ acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" $1 exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" ]) dnl AC_LIB_PREPARE_MULTILIB creates a variable acl_libdirstem, containing dnl the basename of the libdir, either "lib" or "lib64". AC_DEFUN([AC_LIB_PREPARE_MULTILIB], [ dnl There is no formal standard regarding lib and lib64. The current dnl practice is that on a system supporting 32-bit and 64-bit instruction dnl sets or ABIs, 64-bit libraries go under $prefix/lib64 and 32-bit dnl libraries go under $prefix/lib. We determine the compiler's default dnl mode by looking at the compiler's library search path. If at least dnl of its elements ends in /lib64 or points to a directory whose absolute dnl pathname ends in /lib64, we assume a 64-bit ABI. Otherwise we use the dnl default, namely "lib". acl_libdirstem=lib searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` if test -n "$searchpath"; then acl_save_IFS="${IFS= }"; IFS=":" for searchdir in $searchpath; do if test -d "$searchdir"; then case "$searchdir" in */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; *) searchdir=`cd "$searchdir" && pwd` case "$searchdir" in */lib64 ) acl_libdirstem=lib64 ;; esac ;; esac fi done IFS="$acl_save_IFS" fi ]) libextractor-1.3/m4/longdouble.m40000644000175000017500000000227711260753602013726 00000000000000# longdouble.m4 serial 2 (gettext-0.15) dnl Copyright (C) 2002-2003, 2006 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Test whether the compiler supports the 'long double' type. dnl Prerequisite: AC_PROG_CC dnl This file is only needed in autoconf <= 2.59. Newer versions of autoconf dnl have a macro AC_TYPE_LONG_DOUBLE with identical semantics. AC_DEFUN([gt_TYPE_LONGDOUBLE], [ AC_CACHE_CHECK([for long double], gt_cv_c_long_double, [if test "$GCC" = yes; then gt_cv_c_long_double=yes else AC_TRY_COMPILE([ /* The Stardent Vistra knows sizeof(long double), but does not support it. */ long double foo = 0.0; /* On Ultrix 4.3 cc, long double is 4 and double is 8. */ int array [2*(sizeof(long double) >= sizeof(double)) - 1]; ], , gt_cv_c_long_double=yes, gt_cv_c_long_double=no) fi]) if test $gt_cv_c_long_double = yes; then AC_DEFINE(HAVE_LONG_DOUBLE, 1, [Define if you have the 'long double' type.]) fi ]) libextractor-1.3/m4/nls.m40000644000175000017500000000226611260753602012366 00000000000000# nls.m4 serial 3 (gettext-0.15) dnl Copyright (C) 1995-2003, 2005-2006 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995-2000. dnl Bruno Haible , 2000-2003. AC_PREREQ(2.50) AC_DEFUN([AM_NLS], [ AC_MSG_CHECKING([whether NLS is requested]) dnl Default is enabled NLS AC_ARG_ENABLE(nls, [ --disable-nls do not use Native Language Support], USE_NLS=$enableval, USE_NLS=yes) AC_MSG_RESULT($USE_NLS) AC_SUBST(USE_NLS) ]) libextractor-1.3/m4/ax_create_pkgconfig_info.m40000644000175000017500000003341011260753602016562 00000000000000##### http://autoconf-archive.cryp.to/ax_create_pkgconfig_info.html # # SYNOPSIS # # AX_CREATE_PKGCONFIG_INFO [(outputfile, [requires [,libs [,summary [,cflags [, ldflags]]]]])] # # DESCRIPTION # # defaults: # # $1 = $PACKAGE_NAME.pc # $2 = (empty) # $3 = $PACKAGE_LIBS $LIBS (as set at that point in configure.ac) # $4 = $PACKAGE_SUMMARY (or $1 Library) # $5 = $CPPFLAGS $PACKAGE_CFLAGS (as set at the point in configure.ac) # $6 = $LDFLAGS $PACKAGE_LDFLAGS (as set at the point in configure.ac) # # PACKAGE_NAME defaults to $PACKAGE if not set. # PACKAGE_LIBS defaults to -l$PACKAGE_NAME if not set. # # the resulting file is called $PACKAGE.pc.in / $PACKAGE.pc # # You will find this macro most useful in conjunction with # ax_spec_defaults that can read good initializers from the .spec # file. In consequencd, most of the generatable installable stuff can # be made from information being updated in a single place for the # whole project. # # LAST MODIFICATION # # 2006-10-13 # # COPYLEFT # # Copyright (c) 2006 Sven Verdoolaege # Copyright (c) 2006 Guido U. Draheim # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2 of the # License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # # As a special exception, the respective Autoconf Macro's copyright # owner gives unlimited permission to copy, distribute and modify the # configure scripts that are the output of Autoconf when processing # the Macro. You need not follow the terms of the GNU General Public # License when using or distributing such scripts, even though # portions of the text of the Macro appear in them. The GNU General # Public License (GPL) does govern all other use of the material that # constitutes the Autoconf Macro. # # This special exception to the GPL applies to versions of the # Autoconf Macro released by the Autoconf Macro Archive. When you # make and distribute a modified version of the Autoconf Macro, you # may extend this special exception to the GPL to apply to your # modified version as well. AC_DEFUN([AX_CREATE_PKGCONFIG_INFO],[dnl AS_VAR_PUSHDEF([PKGCONFIG_suffix],[ax_create_pkgconfig_suffix])dnl AS_VAR_PUSHDEF([PKGCONFIG_libdir],[ax_create_pkgconfig_libdir])dnl AS_VAR_PUSHDEF([PKGCONFIG_libfile],[ax_create_pkgconfig_libfile])dnl AS_VAR_PUSHDEF([PKGCONFIG_libname],[ax_create_pkgconfig_libname])dnl AS_VAR_PUSHDEF([PKGCONFIG_version],[ax_create_pkgconfig_version])dnl AS_VAR_PUSHDEF([PKGCONFIG_description],[ax_create_pkgconfig_description])dnl AS_VAR_PUSHDEF([PKGCONFIG_requires],[ax_create_pkgconfig_requires])dnl AS_VAR_PUSHDEF([PKGCONFIG_pkglibs],[ax_create_pkgconfig_pkglibs])dnl AS_VAR_PUSHDEF([PKGCONFIG_libs],[ax_create_pkgconfig_libs])dnl AS_VAR_PUSHDEF([PKGCONFIG_ldflags],[ax_create_pkgconfig_ldflags])dnl AS_VAR_PUSHDEF([PKGCONFIG_cppflags],[ax_create_pkgconfig_cppflags])dnl AS_VAR_PUSHDEF([PKGCONFIG_generate],[ax_create_pkgconfig_generate])dnl AS_VAR_PUSHDEF([PKGCONFIG_src_libdir],[ax_create_pkgconfig_src_libdir])dnl AS_VAR_PUSHDEF([PKGCONFIG_src_headers],[ax_create_pkgconfig_src_headers])dnl # we need the expanded forms... test "x$prefix" = xNONE && prefix=$ac_default_prefix test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' AC_MSG_CHECKING(our pkgconfig libname) test ".$PKGCONFIG_libname" != "." || \ PKGCONFIG_libname="ifelse($1,,${PACKAGE_NAME},`basename $1 .pc`)" test ".$PKGCONFIG_libname" != "." || \ PKGCONFIG_libname="$PACKAGE" PKGCONFIG_libname=`eval echo "$PKGCONFIG_libname"` PKGCONFIG_libname=`eval echo "$PKGCONFIG_libname"` AC_MSG_RESULT($PKGCONFIG_libname) AC_MSG_CHECKING(our pkgconfig version) test ".$PKGCONFIG_version" != "." || \ PKGCONFIG_version="${PACKAGE_VERSION}" test ".$PKGCONFIG_version" != "." || \ PKGCONFIG_version="$VERSION" PKGCONFIG_version=`eval echo "$PKGCONFIG_version"` PKGCONFIG_version=`eval echo "$PKGCONFIG_version"` AC_MSG_RESULT($PKGCONFIG_version) AC_MSG_CHECKING(our pkgconfig_libdir) test ".$pkgconfig_libdir" = "." && \ pkgconfig_libdir='${libdir}/pkgconfig' PKGCONFIG_libdir=`eval echo "$pkgconfig_libdir"` PKGCONFIG_libdir=`eval echo "$PKGCONFIG_libdir"` PKGCONFIG_libdir=`eval echo "$PKGCONFIG_libdir"` AC_MSG_RESULT($pkgconfig_libdir) test "$pkgconfig_libdir" != "$PKGCONFIG_libdir" && ( AC_MSG_RESULT(expanded our pkgconfig_libdir... $PKGCONFIG_libdir)) AC_SUBST([pkgconfig_libdir]) AC_MSG_CHECKING(our pkgconfig_libfile) test ".$pkgconfig_libfile" != "." || \ pkgconfig_libfile="ifelse($1,,$PKGCONFIG_libname.pc,`basename $1`)" PKGCONFIG_libfile=`eval echo "$pkgconfig_libfile"` PKGCONFIG_libfile=`eval echo "$PKGCONFIG_libfile"` AC_MSG_RESULT($pkgconfig_libfile) test "$pkgconfig_libfile" != "$PKGCONFIG_libfile" && ( AC_MSG_RESULT(expanded our pkgconfig_libfile... $PKGCONFIG_libfile)) AC_SUBST([pkgconfig_libfile]) AC_MSG_CHECKING(our package / suffix) PKGCONFIG_suffix="$program_suffix" test ".$PKGCONFIG_suffix" != .NONE || PKGCONFIG_suffix="" AC_MSG_RESULT(${PACKAGE_NAME} / ${PKGCONFIG_suffix}) AC_MSG_CHECKING(our pkgconfig description) PKGCONFIG_description="ifelse($4,,$PACKAGE_SUMMARY,$4)" test ".$PKGCONFIG_description" != "." || \ PKGCONFIG_description="$PKGCONFIG_libname Library" PKGCONFIG_description=`eval echo "$PKGCONFIG_description"` PKGCONFIG_description=`eval echo "$PKGCONFIG_description"` AC_MSG_RESULT($PKGCONFIG_description) AC_MSG_CHECKING(our pkgconfig requires) PKGCONFIG_requires="ifelse($2,,$PACKAGE_REQUIRES,$2)" PKGCONFIG_requires=`eval echo "$PKGCONFIG_requires"` PKGCONFIG_requires=`eval echo "$PKGCONFIG_requires"` AC_MSG_RESULT($PKGCONFIG_requires) AC_MSG_CHECKING(our pkgconfig ext libs) PKGCONFIG_pkglibs="$PACKAGE_LIBS" test ".$PKGCONFIG_pkglibs" != "." || PKGCONFIG_pkglibs="-l$PKGCONFIG_libname" PKGCONFIG_libs="ifelse($3,,$PKGCONFIG_pkglibs $LIBS,$3)" PKGCONFIG_libs=`eval echo "$PKGCONFIG_libs"` PKGCONFIG_libs=`eval echo "$PKGCONFIG_libs"` AC_MSG_RESULT($PKGCONFIG_libs) AC_MSG_CHECKING(our pkgconfig cppflags) PKGCONFIG_cppflags="ifelse($5,,$CPPFLAGS $PACKAGE_CFLAGS,$5)" PKGCONFIG_cppflags=`eval echo "$PKGCONFIG_cppflags"` PKGCONFIG_cppflags=`eval echo "$PKGCONFIG_cppflags"` AC_MSG_RESULT($PKGCONFIG_cppflags) AC_MSG_CHECKING(our pkgconfig ldflags) PKGCONFIG_ldflags="ifelse($6,,$LDFLAGS $PACKAGE_LDFLAGS,$5)" PKGCONFIG_ldflags=`eval echo "$PKGCONFIG_ldflags"` PKGCONFIG_ldflags=`eval echo "$PKGCONFIG_ldflags"` AC_MSG_RESULT($PKGCONFIG_ldflags) test ".$PKGCONFIG_generate" != "." || \ PKGCONFIG_generate="ifelse($1,,$PKGCONFIG_libname.pc,$1)" PKGCONFIG_generate=`eval echo "$PKGCONFIG_generate"` PKGCONFIG_generate=`eval echo "$PKGCONFIG_generate"` test "$pkgconfig_libfile" != "$PKGCONFIG_generate" && ( AC_MSG_RESULT(generate the pkgconfig later... $PKGCONFIG_generate)) if test ".$PKGCONFIG_src_libdir" = "." ; then PKGCONFIG_src_libdir=`pwd` PKGCONFIG_src_libdir=`AS_DIRNAME("$PKGCONFIG_src_libdir/$PKGCONFIG_generate")` test ! -d $PKGCONFIG_src_libdir/src || \ PKGCONFIG_src_libdir="$PKGCONFIG_src_libdir/src" case ".$objdir" in *libs) PKGCONFIG_src_libdir="$PKGCONFIG_src_libdir/$objdir" ;; esac AC_MSG_RESULT(noninstalled pkgconfig -L $PKGCONFIG_src_libdir) fi if test ".$PKGCONFIG_src_headers" = "." ; then PKGCONFIG_src_headers=`pwd` v="$ac_top_srcdir" ; test ".$v" != "." || v="$ax_spec_dir" test ".$v" != "." || v="$srcdir" case "$v" in /*) PKG_CONFIG_src_headers="" ;; esac PKGCONFIG_src_headers=`AS_DIRNAME("$PKGCONFIG_src_headers/$v/x")` test ! -d $PKGCONFIG_src_headers/incl[]ude || \ PKGCONFIG_src_headers="$PKGCONFIG_src_headers/incl[]ude" AC_MSG_RESULT(noninstalled pkgconfig -I $PKGCONFIG_src_headers) fi dnl AC_CONFIG_COMMANDS crap disallows to use $PKGCONFIG_libfile here... AC_CONFIG_COMMANDS([$ax_create_pkgconfig_generate],[ pkgconfig_generate="$ax_create_pkgconfig_generate" if test ! -f "$pkgconfig_generate.in" then generate="true" elif grep ' generated by configure ' $pkgconfig_generate.in >/dev/null then generate="true" else generate="false"; fi if $generate ; then AC_MSG_NOTICE(creating $pkgconfig_generate.in) cat > $pkgconfig_generate.in <conftest.sed < $pkgconfig_generate if test ! -s $pkgconfig_generate ; then AC_MSG_ERROR([$pkgconfig_generate is empty]) fi ; rm conftest.sed # DONE generate $pkgconfig_generate pkgconfig_uninstalled=`echo $pkgconfig_generate |sed 's/.pc$/-uninstalled.pc/'` AC_MSG_NOTICE(creating $pkgconfig_uninstalled) cat >conftest.sed < $pkgconfig_uninstalled if test ! -s $pkgconfig_uninstalled ; then AC_MSG_ERROR([$pkgconfig_uninstalled is empty]) fi ; rm conftest.sed # DONE generate $pkgconfig_uninstalled pkgconfig_requires_add=`echo ${pkgconfig_requires}` if test ".$pkgconfig_requires_add" != "." ; then pkgconfig_requires_add="pkg-config $pkgconfig_requires_add" else pkgconfig_requires_add=":" ; fi pkgconfig_uninstalled=`echo $pkgconfig_generate |sed 's/.pc$/-uninstalled.sh/'` AC_MSG_NOTICE(creating $pkgconfig_uninstalled) cat >conftest.sed <Name:>for option\\; do case \"\$option\" in --list-all|--name) echo > s>Description: *>\\;\\; --help) pkg-config --help \\; echo Buildscript Of > s>Version: *>\\;\\; --modversion|--version) echo > s>Requires:>\\;\\; --requires) echo $pkgconfig_requires_add> s>Libs: *>\\;\\; --libs) echo > s>Cflags: *>\\;\\; --cflags) echo > /--libs)/a\\ $pkgconfig_requires_add /--cflags)/a\\ $pkgconfig_requires_add\\ ;; --variable=*) eval echo '\$'\`echo \$option | sed -e 's/.*=//'\`\\ ;; --uninstalled) exit 0 \\ ;; *) ;; esac done AXEOF sed -f conftest.sed $pkgconfig_generate.in > $pkgconfig_uninstalled if test ! -s $pkgconfig_uninstalled ; then AC_MSG_ERROR([$pkgconfig_uninstalled is empty]) fi ; rm conftest.sed # DONE generate $pkgconfig_uninstalled ],[ dnl AC_CONFIG_COMMANDS crap, the AS_PUSHVAR defines are invalid here... ax_create_pkgconfig_generate="$ax_create_pkgconfig_generate" pkgconfig_prefix='$prefix' pkgconfig_execprefix='$exec_prefix' pkgconfig_bindir='$bindir' pkgconfig_libdir='$libdir' pkgconfig_includedir='$includedir' pkgconfig_sysconfdir='$sysconfdir' pkgconfig_suffix='$ax_create_pkgconfig_suffix' pkgconfig_package='$PACKAGE_NAME' pkgconfig_libname='$ax_create_pkgconfig_libname' pkgconfig_description='$ax_create_pkgconfig_description' pkgconfig_version='$ax_create_pkgconfig_version' pkgconfig_requires='$ax_create_pkgconfig_requires' pkgconfig_libs='$ax_create_pkgconfig_libs' pkgconfig_ldflags='$ax_create_pkgconfig_ldflags' pkgconfig_cppflags='$ax_create_pkgconfig_cppflags' pkgconfig_src_libdir='$ax_create_pkgconfig_src_libdir' pkgconfig_src_headers='$ax_create_pkgconfig_src_headers' ])dnl AS_VAR_POPDEF([PKGCONFIG_suffix])dnl AS_VAR_POPDEF([PKGCONFIG_libdir])dnl AS_VAR_POPDEF([PKGCONFIG_libfile])dnl AS_VAR_POPDEF([PKGCONFIG_libname])dnl AS_VAR_POPDEF([PKGCONFIG_version])dnl AS_VAR_POPDEF([PKGCONFIG_description])dnl AS_VAR_POPDEF([PKGCONFIG_requires])dnl AS_VAR_POPDEF([PKGCONFIG_pkglibs])dnl AS_VAR_POPDEF([PKGCONFIG_libs])dnl AS_VAR_POPDEF([PKGCONFIG_ldflags])dnl AS_VAR_POPDEF([PKGCONFIG_cppflags])dnl AS_VAR_POPDEF([PKGCONFIG_generate])dnl AS_VAR_POPDEF([PKGCONFIG_src_libdir])dnl AS_VAR_POPDEF([PKGCONFIG_src_headers])dnl ]) libextractor-1.3/m4/size_max.m40000644000175000017500000000461011260753602013404 00000000000000# size_max.m4 serial 5 dnl Copyright (C) 2003, 2005-2006 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. AC_DEFUN([gl_SIZE_MAX], [ AC_CHECK_HEADERS(stdint.h) dnl First test whether the system already has SIZE_MAX. AC_MSG_CHECKING([for SIZE_MAX]) AC_CACHE_VAL([gl_cv_size_max], [ gl_cv_size_max= AC_EGREP_CPP([Found it], [ #include #if HAVE_STDINT_H #include #endif #ifdef SIZE_MAX Found it #endif ], gl_cv_size_max=yes) if test -z "$gl_cv_size_max"; then dnl Define it ourselves. Here we assume that the type 'size_t' is not wider dnl than the type 'unsigned long'. Try hard to find a definition that can dnl be used in a preprocessor #if, i.e. doesn't contain a cast. _AC_COMPUTE_INT([sizeof (size_t) * CHAR_BIT - 1], size_t_bits_minus_1, [#include #include ], size_t_bits_minus_1=) _AC_COMPUTE_INT([sizeof (size_t) <= sizeof (unsigned int)], fits_in_uint, [#include ], fits_in_uint=) if test -n "$size_t_bits_minus_1" && test -n "$fits_in_uint"; then if test $fits_in_uint = 1; then dnl Even though SIZE_MAX fits in an unsigned int, it must be of type dnl 'unsigned long' if the type 'size_t' is the same as 'unsigned long'. AC_TRY_COMPILE([#include extern size_t foo; extern unsigned long foo; ], [], fits_in_uint=0) fi dnl We cannot use 'expr' to simplify this expression, because 'expr' dnl works only with 'long' integers in the host environment, while we dnl might be cross-compiling from a 32-bit platform to a 64-bit platform. if test $fits_in_uint = 1; then gl_cv_size_max="(((1U << $size_t_bits_minus_1) - 1) * 2 + 1)" else gl_cv_size_max="(((1UL << $size_t_bits_minus_1) - 1) * 2 + 1)" fi else dnl Shouldn't happen, but who knows... gl_cv_size_max='((size_t)~(size_t)0)' fi fi ]) AC_MSG_RESULT([$gl_cv_size_max]) if test "$gl_cv_size_max" != yes; then AC_DEFINE_UNQUOTED([SIZE_MAX], [$gl_cv_size_max], [Define as the maximum value of type 'size_t', if the system doesn't define it.]) fi ]) libextractor-1.3/m4/printf-posix.m40000644000175000017500000000266111260753602014233 00000000000000# printf-posix.m4 serial 2 (gettext-0.13.1) dnl Copyright (C) 2003 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Test whether the printf() function supports POSIX/XSI format strings with dnl positions. AC_DEFUN([gt_PRINTF_POSIX], [ AC_REQUIRE([AC_PROG_CC]) AC_CACHE_CHECK([whether printf() supports POSIX/XSI format strings], gt_cv_func_printf_posix, [ AC_TRY_RUN([ #include #include /* The string "%2$d %1$d", with dollar characters protected from the shell's dollar expansion (possibly an autoconf bug). */ static char format[] = { '%', '2', '$', 'd', ' ', '%', '1', '$', 'd', '\0' }; static char buf[100]; int main () { sprintf (buf, format, 33, 55); return (strcmp (buf, "55 33") != 0); }], gt_cv_func_printf_posix=yes, gt_cv_func_printf_posix=no, [ AC_EGREP_CPP(notposix, [ #if defined __NetBSD__ || defined _MSC_VER || defined __MINGW32__ || defined __CYGWIN__ notposix #endif ], gt_cv_func_printf_posix="guessing no", gt_cv_func_printf_posix="guessing yes") ]) ]) case $gt_cv_func_printf_posix in *yes) AC_DEFINE(HAVE_POSIX_PRINTF, 1, [Define if your printf() function supports format strings with positions.]) ;; esac ]) libextractor-1.3/m4/intldir.m40000644000175000017500000000161611260753602013235 00000000000000# intldir.m4 serial 1 (gettext-0.16) dnl Copyright (C) 2006 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. AC_PREREQ(2.52) dnl Tells the AM_GNU_GETTEXT macro to consider an intl/ directory. AC_DEFUN([AM_GNU_GETTEXT_INTL_SUBDIR], []) libextractor-1.3/m4/intdiv0.m40000644000175000017500000000334011260753602013141 00000000000000# intdiv0.m4 serial 1 (gettext-0.11.3) dnl Copyright (C) 2002 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. AC_DEFUN([gt_INTDIV0], [ AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_CACHE_CHECK([whether integer division by zero raises SIGFPE], gt_cv_int_divbyzero_sigfpe, [ AC_TRY_RUN([ #include #include static void #ifdef __cplusplus sigfpe_handler (int sig) #else sigfpe_handler (sig) int sig; #endif { /* Exit with code 0 if SIGFPE, with code 1 if any other signal. */ exit (sig != SIGFPE); } int x = 1; int y = 0; int z; int nan; int main () { signal (SIGFPE, sigfpe_handler); /* IRIX and AIX (when "xlc -qcheck" is used) yield signal SIGTRAP. */ #if (defined (__sgi) || defined (_AIX)) && defined (SIGTRAP) signal (SIGTRAP, sigfpe_handler); #endif /* Linux/SPARC yields signal SIGILL. */ #if defined (__sparc__) && defined (__linux__) signal (SIGILL, sigfpe_handler); #endif z = x / y; nan = y / y; exit (1); } ], gt_cv_int_divbyzero_sigfpe=yes, gt_cv_int_divbyzero_sigfpe=no, [ # Guess based on the CPU. case "$host_cpu" in alpha* | i[34567]86 | m68k | s390*) gt_cv_int_divbyzero_sigfpe="guessing yes";; *) gt_cv_int_divbyzero_sigfpe="guessing no";; esac ]) ]) case "$gt_cv_int_divbyzero_sigfpe" in *yes) value=1;; *) value=0;; esac AC_DEFINE_UNQUOTED(INTDIV0_RAISES_SIGFPE, $value, [Define if integer division by zero raises signal SIGFPE.]) ]) libextractor-1.3/m4/python.m40000644000175000017500000001672111260753602013114 00000000000000## ------------------------ ## Python file handling ## From Andrew Dalke ## Updated by James Henstridge ## ------------------------ # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 # Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # AM_PATH_PYTHON([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) # Adds support for distributing Python modules and packages. To # install modules, copy them to $(pythondir), using the python_PYTHON # automake variable. To install a package with the same name as the # automake package, install to $(pkgpythondir), or use the # pkgpython_PYTHON automake variable. # The variables $(pyexecdir) and $(pkgpyexecdir) are provided as # locations to install python extension modules (shared libraries). # Another macro is required to find the appropriate flags to compile # extension modules. # If your package is configured with a different prefix to python, # users will have to add the install directory to the PYTHONPATH # environment variable, or create a .pth file (see the python # documentation for details). # If the MINIMUM-VERSION argument is passed, AM_PATH_PYTHON will # cause an error if the version of python installed on the system # doesn't meet the requirement. MINIMUM-VERSION should consist of # numbers and dots only. AC_DEFUN([AM_PATH_PYTHON], [ dnl Find a Python interpreter. Python versions prior to 1.5 are not dnl supported because the default installation locations changed from dnl $prefix/lib/site-python in 1.4 to $prefix/lib/python1.5/site-packages dnl in 1.5. m4_define([_AM_PYTHON_INTERPRETER_LIST], [python python2 python2.4 python2.3 python2.2 dnl python2.1 python2.0 python1.6 python1.5]) m4_if([$1],[],[ dnl No version check is needed. # Find any Python interpreter. if test -z "$PYTHON"; then PYTHON=: AC_PATH_PROGS([PYTHON], _AM_PYTHON_INTERPRETER_LIST) fi am_display_PYTHON=python ], [ dnl A version check is needed. if test -n "$PYTHON"; then # If the user set $PYTHON, use it and don't search something else. AC_MSG_CHECKING([whether $PYTHON version >= $1]) AM_PYTHON_CHECK_VERSION([$PYTHON], [$1], [AC_MSG_RESULT(yes)], [AC_MSG_ERROR(too old)]) am_display_PYTHON=$PYTHON else # Otherwise, try each interpreter until we find one that satisfies # VERSION. AC_CACHE_CHECK([for a Python interpreter with version >= $1], [am_cv_pathless_PYTHON],[ for am_cv_pathless_PYTHON in _AM_PYTHON_INTERPRETER_LIST none; do test "$am_cv_pathless_PYTHON" = none && break AM_PYTHON_CHECK_VERSION([$am_cv_pathless_PYTHON], [$1], [break]) done]) # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON. if test "$am_cv_pathless_PYTHON" = none; then PYTHON=: else AC_PATH_PROG([PYTHON], [$am_cv_pathless_PYTHON]) fi am_display_PYTHON=$am_cv_pathless_PYTHON fi ]) if test "$PYTHON" = :; then dnl Run any user-specified action, or abort. m4_default([$3], [AC_MSG_ERROR([no suitable Python interpreter found])]) else dnl Query Python for its version number. Getting [:3] seems to be dnl the best way to do this; it's what "site.py" does in the standard dnl library. AC_CACHE_CHECK([for $am_display_PYTHON version], [am_cv_python_version], [am_cv_python_version=`$PYTHON -c "import sys; print sys.version[[:3]]"`]) AC_SUBST([PYTHON_VERSION], [$am_cv_python_version]) dnl Use the values of $prefix and $exec_prefix for the corresponding dnl values of PYTHON_PREFIX and PYTHON_EXEC_PREFIX. These are made dnl distinct variables so they can be overridden if need be. However, dnl general consensus is that you shouldn't need this ability. AC_SUBST([PYTHON_PREFIX], ['${prefix}']) AC_SUBST([PYTHON_EXEC_PREFIX], ['${exec_prefix}']) dnl At times (like when building shared libraries) you may want dnl to know which OS platform Python thinks this is. AC_CACHE_CHECK([for $am_display_PYTHON platform], [am_cv_python_platform], [am_cv_python_platform=`$PYTHON -c "import sys; print sys.platform"`]) AC_SUBST([PYTHON_PLATFORM], [$am_cv_python_platform]) dnl Set up 4 directories: dnl pythondir -- where to install python scripts. This is the dnl site-packages directory, not the python standard library dnl directory like in previous automake betas. This behavior dnl is more consistent with lispdir.m4 for example. dnl Query distutils for this directory. distutils does not exist in dnl Python 1.5, so we fall back to the hardcoded directory if it dnl doesn't work. AC_CACHE_CHECK([for $am_display_PYTHON script directory], [am_cv_python_pythondir], [am_cv_python_pythondir=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib(0,0,prefix='$PYTHON_PREFIX')" 2>/dev/null || echo "$PYTHON_PREFIX/lib/python$PYTHON_VERSION/site-packages"`]) AC_SUBST([pythondir], [$am_cv_python_pythondir]) dnl pkgpythondir -- $PACKAGE directory under pythondir. Was dnl PYTHON_SITE_PACKAGE in previous betas, but this naming is dnl more consistent with the rest of automake. AC_SUBST([pkgpythondir], [\${pythondir}/$PACKAGE]) dnl pyexecdir -- directory for installing python extension modules dnl (shared libraries) dnl Query distutils for this directory. distutils does not exist in dnl Python 1.5, so we fall back to the hardcoded directory if it dnl doesn't work. AC_CACHE_CHECK([for $am_display_PYTHON extension module directory], [am_cv_python_pyexecdir], [am_cv_python_pyexecdir=`$PYTHON -c "from distutils import sysconfig; print sysconfig.get_python_lib(1,0,prefix='$PYTHON_EXEC_PREFIX')" 2>/dev/null || echo "${PYTHON_EXEC_PREFIX}/lib/python${PYTHON_VERSION}/site-packages"`]) AC_SUBST([pyexecdir], [$am_cv_python_pyexecdir]) dnl pkgpyexecdir -- $(pyexecdir)/$(PACKAGE) AC_SUBST([pkgpyexecdir], [\${pyexecdir}/$PACKAGE]) dnl Run any user-specified action. $2 fi ]) # AM_PYTHON_CHECK_VERSION(PROG, VERSION, [ACTION-IF-TRUE], [ACTION-IF-FALSE]) # --------------------------------------------------------------------------- # Run ACTION-IF-TRUE if the Python interpreter PROG has version >= VERSION. # Run ACTION-IF-FALSE otherwise. # This test uses sys.hexversion instead of the string equivalent (first # word of sys.version), in order to cope with versions such as 2.2c1. # hexversion has been introduced in Python 1.5.2; it's probably not # worth to support older versions (1.5.1 was released on October 31, 1998). AC_DEFUN([AM_PYTHON_CHECK_VERSION], [prog="import sys, string # split strings by '.' and convert to numeric. Append some zeros # because we need at least 4 digits for the hex conversion. minver = map(int, string.split('$2', '.')) + [[0, 0, 0]] minverhex = 0 for i in xrange(0, 4): minverhex = (minverhex << 8) + minver[[i]] sys.exit(sys.hexversion < minverhex)" AS_IF([AM_RUN_LOG([$1 -c "$prog"])], [$3], [$4])]) libextractor-1.3/m4/lib-ld.m40000644000175000017500000000653111260753602012734 00000000000000# lib-ld.m4 serial 3 (gettext-0.13) dnl Copyright (C) 1996-2003 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Subroutines of libtool.m4, dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision dnl with libtool.m4. dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no. AC_DEFUN([AC_LIB_PROG_LD_GNU], [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld, [# I'd rather use --version here, but apparently some GNU ld's only accept -v. case `$LD -v 2>&1 conf$$.sh echo "exit 0" >>conf$$.sh chmod +x conf$$.sh if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then PATH_SEPARATOR=';' else PATH_SEPARATOR=: fi rm -f conf$$.sh fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by GCC]) case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [[\\/]* | [A-Za-z]:[\\/]*)] [re_direlt='/[^/][^/]*/\.\./'] # Canonicalize the path of ld ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL(acl_cv_path_LD, [if test -z "$LD"; then IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then acl_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some GNU ld's only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in *GNU* | *'with BFD'*) test "$with_gnu_ld" != no && break ;; *) test "$with_gnu_ld" != yes && break ;; esac fi done IFS="$ac_save_ifs" else acl_cv_path_LD="$LD" # Let the user override the test with a path. fi]) LD="$acl_cv_path_LD" if test -n "$LD"; then AC_MSG_RESULT($LD) else AC_MSG_RESULT(no) fi test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) AC_LIB_PROG_LD_GNU ]) libextractor-1.3/m4/xsize.m40000644000175000017500000000064511260753602012733 00000000000000# xsize.m4 serial 3 dnl Copyright (C) 2003-2004 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_XSIZE], [ dnl Prerequisites of lib/xsize.h. AC_REQUIRE([gl_SIZE_MAX]) AC_REQUIRE([AC_C_INLINE]) AC_CHECK_HEADERS(stdint.h) ]) libextractor-1.3/m4/ac_define_dir.m40000644000175000017500000000231411260753602014317 00000000000000dnl @synopsis AC_DEFINE_DIR(VARNAME, DIR [, DESCRIPTION]) dnl dnl This macro _AC_DEFINEs VARNAME to the expansion of the DIR dnl variable, taking care of fixing up ${prefix} and such. dnl dnl VARNAME is offered as both a C preprocessor symbol, and an output dnl variable. dnl dnl Note that the 3 argument form is only supported with autoconf 2.13 dnl and later (i.e. only where _AC_DEFINE supports 3 arguments). dnl dnl Examples: dnl dnl AC_DEFINE_DIR(DATADIR, datadir) dnl AC_DEFINE_DIR(PROG_PATH, bindir, [Location of installed binaries]) dnl dnl @category Misc dnl @author Stepan Kasal dnl @author Andreas Schwab dnl @author Guido Draheim dnl @author Alexandre Oliva dnl @version 2005-01-17 dnl @license AllPermissive AC_DEFUN([AC_DEFINE_DIR], [ prefix_NONE= exec_prefix_NONE= test "x$prefix" = xNONE && prefix_NONE=yes && prefix=$ac_default_prefix test "x$exec_prefix" = xNONE && exec_prefix_NONE=yes && exec_prefix=$prefix eval ac_define_dir="\"[$]$2\"" AC_SUBST($1, "$ac_define_dir") AC_DEFINE_UNQUOTED($1, "$ac_define_dir", [$3]) test "$prefix_NONE" && prefix=NONE test "$exec_prefix_NONE" && exec_prefix=NONE ]) libextractor-1.3/m4/wint_t.m40000644000175000017500000000130411260753602013066 00000000000000# wint_t.m4 serial 1 (gettext-0.12) dnl Copyright (C) 2003 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Test whether has the 'wint_t' type. dnl Prerequisite: AC_PROG_CC AC_DEFUN([gt_TYPE_WINT_T], [ AC_CACHE_CHECK([for wint_t], gt_cv_c_wint_t, [AC_TRY_COMPILE([#include wint_t foo = (wchar_t)'\0';], , gt_cv_c_wint_t=yes, gt_cv_c_wint_t=no)]) if test $gt_cv_c_wint_t = yes; then AC_DEFINE(HAVE_WINT_T, 1, [Define if you have the 'wint_t' type.]) fi ]) libextractor-1.3/m4/longlong.m40000644000175000017500000000327411260753602013411 00000000000000# longlong.m4 serial 8 dnl Copyright (C) 1999-2006 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Paul Eggert. # Define HAVE_LONG_LONG_INT if 'long long int' works. # This fixes a bug in Autoconf 2.60, but can be removed once we # assume 2.61 everywhere. # Note: If the type 'long long int' exists but is only 32 bits large # (as on some very old compilers), AC_TYPE_LONG_LONG_INT will not be # defined. In this case you can treat 'long long int' like 'long int'. AC_DEFUN([AC_TYPE_LONG_LONG_INT], [ AC_CACHE_CHECK([for long long int], [ac_cv_type_long_long_int], [AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[long long int ll = 9223372036854775807ll; long long int nll = -9223372036854775807LL; typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll) ? 1 : -1)]; int i = 63;]], [[long long int llmax = 9223372036854775807ll; return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i) | (llmax / ll) | (llmax % ll));]])], [ac_cv_type_long_long_int=yes], [ac_cv_type_long_long_int=no])]) if test $ac_cv_type_long_long_int = yes; then AC_DEFINE([HAVE_LONG_LONG_INT], 1, [Define to 1 if the system has the type `long long int'.]) fi ]) # This macro is obsolescent and should go away soon. AC_DEFUN([gl_AC_TYPE_LONG_LONG], [ AC_REQUIRE([AC_TYPE_LONG_LONG_INT]) ac_cv_type_long_long=$ac_cv_type_long_long_int if test $ac_cv_type_long_long = yes; then AC_DEFINE(HAVE_LONG_LONG, 1, [Define if you have the 'long long' type.]) fi ]) libextractor-1.3/m4/intl.m40000644000175000017500000002333011260753602012533 00000000000000# intl.m4 serial 3 (gettext-0.16) dnl Copyright (C) 1995-2006 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper , 1995-2000. dnl Bruno Haible , 2000-2006. AC_PREREQ(2.52) dnl Checks for all prerequisites of the intl subdirectory, dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS, dnl USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL. AC_DEFUN([AM_INTL_SUBDIR], [ AC_REQUIRE([AC_PROG_INSTALL])dnl AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([gt_GLIBC2])dnl AC_REQUIRE([AC_PROG_RANLIB])dnl AC_REQUIRE([gl_VISIBILITY])dnl AC_REQUIRE([gt_INTL_SUBDIR_CORE])dnl AC_REQUIRE([AC_TYPE_LONG_LONG_INT])dnl AC_REQUIRE([gt_TYPE_LONGDOUBLE])dnl AC_REQUIRE([gt_TYPE_WCHAR_T])dnl AC_REQUIRE([gt_TYPE_WINT_T])dnl AC_REQUIRE([gl_AC_HEADER_INTTYPES_H]) AC_REQUIRE([gt_TYPE_INTMAX_T]) AC_REQUIRE([gt_PRINTF_POSIX]) AC_REQUIRE([gl_GLIBC21])dnl AC_REQUIRE([gl_XSIZE])dnl AC_REQUIRE([gt_INTL_MACOSX])dnl AC_CHECK_TYPE([ptrdiff_t], , [AC_DEFINE([ptrdiff_t], [long], [Define as the type of the result of subtracting two pointers, if the system doesn't define it.]) ]) AC_CHECK_HEADERS([stddef.h stdlib.h string.h]) AC_CHECK_FUNCS([asprintf fwprintf putenv setenv setlocale snprintf wcslen]) dnl Use the _snprintf function only if it is declared (because on NetBSD it dnl is defined as a weak alias of snprintf; we prefer to use the latter). gt_CHECK_DECL(_snprintf, [#include ]) gt_CHECK_DECL(_snwprintf, [#include ]) dnl Use the *_unlocked functions only if they are declared. dnl (because some of them were defined without being declared in Solaris dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built dnl on Solaris 2.5.1 to run on Solaris 2.6). dnl Don't use AC_CHECK_DECLS because it isn't supported in autoconf-2.13. gt_CHECK_DECL(getc_unlocked, [#include ]) case $gt_cv_func_printf_posix in *yes) HAVE_POSIX_PRINTF=1 ;; *) HAVE_POSIX_PRINTF=0 ;; esac AC_SUBST([HAVE_POSIX_PRINTF]) if test "$ac_cv_func_asprintf" = yes; then HAVE_ASPRINTF=1 else HAVE_ASPRINTF=0 fi AC_SUBST([HAVE_ASPRINTF]) if test "$ac_cv_func_snprintf" = yes; then HAVE_SNPRINTF=1 else HAVE_SNPRINTF=0 fi AC_SUBST([HAVE_SNPRINTF]) if test "$ac_cv_func_wprintf" = yes; then HAVE_WPRINTF=1 else HAVE_WPRINTF=0 fi AC_SUBST([HAVE_WPRINTF]) AM_LANGINFO_CODESET gt_LC_MESSAGES dnl Compilation on mingw and Cygwin needs special Makefile rules, because dnl 1. when we install a shared library, we must arrange to export dnl auxiliary pointer variables for every exported variable, dnl 2. when we install a shared library and a static library simultaneously, dnl the include file specifies __declspec(dllimport) and therefore we dnl must arrange to define the auxiliary pointer variables for the dnl exported variables _also_ in the static library. if test "$enable_shared" = yes; then case "$host_os" in cygwin*) is_woe32dll=yes ;; *) is_woe32dll=no ;; esac else is_woe32dll=no fi WOE32DLL=$is_woe32dll AC_SUBST([WOE32DLL]) dnl Rename some macros and functions used for locking. AH_BOTTOM([ #define __libc_lock_t gl_lock_t #define __libc_lock_define gl_lock_define #define __libc_lock_define_initialized gl_lock_define_initialized #define __libc_lock_init gl_lock_init #define __libc_lock_lock gl_lock_lock #define __libc_lock_unlock gl_lock_unlock #define __libc_lock_recursive_t gl_recursive_lock_t #define __libc_lock_define_recursive gl_recursive_lock_define #define __libc_lock_define_initialized_recursive gl_recursive_lock_define_initialized #define __libc_lock_init_recursive gl_recursive_lock_init #define __libc_lock_lock_recursive gl_recursive_lock_lock #define __libc_lock_unlock_recursive gl_recursive_lock_unlock #define glthread_in_use libintl_thread_in_use #define glthread_lock_init libintl_lock_init #define glthread_lock_lock libintl_lock_lock #define glthread_lock_unlock libintl_lock_unlock #define glthread_lock_destroy libintl_lock_destroy #define glthread_rwlock_init libintl_rwlock_init #define glthread_rwlock_rdlock libintl_rwlock_rdlock #define glthread_rwlock_wrlock libintl_rwlock_wrlock #define glthread_rwlock_unlock libintl_rwlock_unlock #define glthread_rwlock_destroy libintl_rwlock_destroy #define glthread_recursive_lock_init libintl_recursive_lock_init #define glthread_recursive_lock_lock libintl_recursive_lock_lock #define glthread_recursive_lock_unlock libintl_recursive_lock_unlock #define glthread_recursive_lock_destroy libintl_recursive_lock_destroy #define glthread_once libintl_once #define glthread_once_call libintl_once_call #define glthread_once_singlethreaded libintl_once_singlethreaded ]) ]) dnl Checks for the core files of the intl subdirectory: dnl dcigettext.c dnl eval-plural.h dnl explodename.c dnl finddomain.c dnl gettextP.h dnl gmo.h dnl hash-string.h hash-string.c dnl l10nflist.c dnl libgnuintl.h.in (except the *printf stuff) dnl loadinfo.h dnl loadmsgcat.c dnl localealias.c dnl log.c dnl plural-exp.h plural-exp.c dnl plural.y dnl Used by libglocale. AC_DEFUN([gt_INTL_SUBDIR_CORE], [ AC_REQUIRE([AC_C_INLINE])dnl AC_REQUIRE([AC_TYPE_SIZE_T])dnl AC_REQUIRE([gl_AC_HEADER_STDINT_H]) AC_REQUIRE([AC_FUNC_ALLOCA])dnl AC_REQUIRE([AC_FUNC_MMAP])dnl AC_REQUIRE([gt_INTDIV0])dnl AC_REQUIRE([gl_AC_TYPE_UINTMAX_T])dnl AC_REQUIRE([gt_INTTYPES_PRI])dnl AC_REQUIRE([gl_LOCK])dnl AC_TRY_LINK( [int foo (int a) { a = __builtin_expect (a, 10); return a == 10 ? 0 : 1; }], [], [AC_DEFINE([HAVE_BUILTIN_EXPECT], 1, [Define to 1 if the compiler understands __builtin_expect.])]) AC_CHECK_HEADERS([argz.h inttypes.h limits.h unistd.h sys/param.h]) AC_CHECK_FUNCS([getcwd getegid geteuid getgid getuid mempcpy munmap \ stpcpy strcasecmp strdup strtoul tsearch argz_count argz_stringify \ argz_next __fsetlocking]) dnl Use the *_unlocked functions only if they are declared. dnl (because some of them were defined without being declared in Solaris dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built dnl on Solaris 2.5.1 to run on Solaris 2.6). dnl Don't use AC_CHECK_DECLS because it isn't supported in autoconf-2.13. gt_CHECK_DECL(feof_unlocked, [#include ]) gt_CHECK_DECL(fgets_unlocked, [#include ]) AM_ICONV dnl glibc >= 2.4 has a NL_LOCALE_NAME macro when _GNU_SOURCE is defined, dnl and a _NL_LOCALE_NAME macro always. AC_CACHE_CHECK([for NL_LOCALE_NAME macro], gt_cv_nl_locale_name, [AC_TRY_LINK([#include #include ], [char* cs = nl_langinfo(_NL_LOCALE_NAME(LC_MESSAGES));], gt_cv_nl_locale_name=yes, gt_cv_nl_locale_name=no) ]) if test $gt_cv_nl_locale_name = yes; then AC_DEFINE(HAVE_NL_LOCALE_NAME, 1, [Define if you have and it defines the NL_LOCALE_NAME macro if _GNU_SOURCE is defined.]) fi dnl intl/plural.c is generated from intl/plural.y. It requires bison, dnl because plural.y uses bison specific features. It requires at least dnl bison-1.26 because earlier versions generate a plural.c that doesn't dnl compile. dnl bison is only needed for the maintainer (who touches plural.y). But in dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put dnl the rule in general Makefile. Now, some people carelessly touch the dnl files or have a broken "make" program, hence the plural.c rule will dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not dnl present or too old. AC_CHECK_PROGS([INTLBISON], [bison]) if test -z "$INTLBISON"; then ac_verc_fail=yes else dnl Found it, now check the version. AC_MSG_CHECKING([version of bison]) changequote(<<,>>)dnl ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'` case $ac_prog_version in '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;; 1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*) changequote([,])dnl ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;; *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;; esac AC_MSG_RESULT([$ac_prog_version]) fi if test $ac_verc_fail = yes; then INTLBISON=: fi ]) dnl gt_CHECK_DECL(FUNC, INCLUDES) dnl Check whether a function is declared. AC_DEFUN([gt_CHECK_DECL], [ AC_CACHE_CHECK([whether $1 is declared], ac_cv_have_decl_$1, [AC_TRY_COMPILE([$2], [ #ifndef $1 char *p = (char *) $1; #endif ], ac_cv_have_decl_$1=yes, ac_cv_have_decl_$1=no)]) if test $ac_cv_have_decl_$1 = yes; then gt_value=1 else gt_value=0 fi AC_DEFINE_UNQUOTED([HAVE_DECL_]translit($1, [a-z], [A-Z]), [$gt_value], [Define to 1 if you have the declaration of `$1', and to 0 if you don't.]) ]) libextractor-1.3/m4/wchar_t.m40000644000175000017500000000132611260753602013215 00000000000000# wchar_t.m4 serial 1 (gettext-0.12) dnl Copyright (C) 2002-2003 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Test whether has the 'wchar_t' type. dnl Prerequisite: AC_PROG_CC AC_DEFUN([gt_TYPE_WCHAR_T], [ AC_CACHE_CHECK([for wchar_t], gt_cv_c_wchar_t, [AC_TRY_COMPILE([#include wchar_t foo = (wchar_t)'\0';], , gt_cv_c_wchar_t=yes, gt_cv_c_wchar_t=no)]) if test $gt_cv_c_wchar_t = yes; then AC_DEFINE(HAVE_WCHAR_T, 1, [Define if you have the 'wchar_t' type.]) fi ]) libextractor-1.3/m4/ltsugar.m40000644000175000017500000001042412255663135013254 00000000000000# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 6 ltsugar.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) # lt_join(SEP, ARG1, [ARG2...]) # ----------------------------- # Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their # associated separator. # Needed until we can rely on m4_join from Autoconf 2.62, since all earlier # versions in m4sugar had bugs. m4_define([lt_join], [m4_if([$#], [1], [], [$#], [2], [[$2]], [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) m4_define([_lt_join], [m4_if([$#$2], [2], [], [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) # lt_car(LIST) # lt_cdr(LIST) # ------------ # Manipulate m4 lists. # These macros are necessary as long as will still need to support # Autoconf-2.59 which quotes differently. m4_define([lt_car], [[$1]]) m4_define([lt_cdr], [m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], [$#], 1, [], [m4_dquote(m4_shift($@))])]) m4_define([lt_unquote], $1) # lt_append(MACRO-NAME, STRING, [SEPARATOR]) # ------------------------------------------ # Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. # Note that neither SEPARATOR nor STRING are expanded; they are appended # to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). # No SEPARATOR is output if MACRO-NAME was previously undefined (different # than defined and empty). # # This macro is needed until we can rely on Autoconf 2.62, since earlier # versions of m4sugar mistakenly expanded SEPARATOR but not STRING. m4_define([lt_append], [m4_define([$1], m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) # lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) # ---------------------------------------------------------- # Produce a SEP delimited list of all paired combinations of elements of # PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list # has the form PREFIXmINFIXSUFFIXn. # Needed until we can rely on m4_combine added in Autoconf 2.62. m4_define([lt_combine], [m4_if(m4_eval([$# > 3]), [1], [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl [[m4_foreach([_Lt_prefix], [$2], [m4_foreach([_Lt_suffix], ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) # lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) # ----------------------------------------------------------------------- # Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited # by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. m4_define([lt_if_append_uniq], [m4_ifdef([$1], [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], [lt_append([$1], [$2], [$3])$4], [$5])], [lt_append([$1], [$2], [$3])$4])]) # lt_dict_add(DICT, KEY, VALUE) # ----------------------------- m4_define([lt_dict_add], [m4_define([$1($2)], [$3])]) # lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) # -------------------------------------------- m4_define([lt_dict_add_subkey], [m4_define([$1($2:$3)], [$4])]) # lt_dict_fetch(DICT, KEY, [SUBKEY]) # ---------------------------------- m4_define([lt_dict_fetch], [m4_ifval([$3], m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) # lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) # ----------------------------------------------------------------- m4_define([lt_if_dict_fetch], [m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], [$5], [$6])]) # lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) # -------------------------------------------------------------- m4_define([lt_dict_filter], [m4_if([$5], [], [], [lt_join(m4_quote(m4_default([$4], [[, ]])), lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl ]) libextractor-1.3/m4/lt~obsolete.m40000644000175000017500000001375612255663135014160 00000000000000# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004. # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 5 lt~obsolete.m4 # These exist entirely to fool aclocal when bootstrapping libtool. # # In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) # which have later been changed to m4_define as they aren't part of the # exported API, or moved to Autoconf or Automake where they belong. # # The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN # in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us # using a macro with the same name in our local m4/libtool.m4 it'll # pull the old libtool.m4 in (it doesn't see our shiny new m4_define # and doesn't know about Autoconf macros at all.) # # So we provide this file, which has a silly filename so it's always # included after everything else. This provides aclocal with the # AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything # because those macros already exist, or will be overwritten later. # We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. # # Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. # Yes, that means every name once taken will need to remain here until # we give up compatibility with versions before 1.7, at which point # we need to keep only those names which we still refer to. # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) libextractor-1.3/m4/gtk-3.0.m40000644000175000017500000001776712017603551012667 00000000000000# Configure paths for GTK+ # Owen Taylor 1997-2001 dnl AM_PATH_GTK_3_0([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]]) dnl Test for GTK+, and define GTK_CFLAGS and GTK_LIBS, if gthread is specified in MODULES, dnl pass to pkg-config dnl AC_DEFUN([AM_PATH_GTK_3_0], [dnl dnl Get the cflags and libraries from pkg-config dnl AC_ARG_ENABLE(gtktest, [ --disable-gtktest do not try to compile and run a test GTK+ program], , enable_gtktest=yes) pkg_config_args=gtk+-3.0 for module in . $4 do case "$module" in gthread) pkg_config_args="$pkg_config_args gthread-2.0" ;; esac done no_gtk="" AC_PATH_PROG(PKG_CONFIG, pkg-config, no) if test x$PKG_CONFIG != xno ; then if $PKG_CONFIG --atleast-pkgconfig-version 0.7 ; then : else echo "*** pkg-config too old; version 0.7 or better required." no_gtk=yes PKG_CONFIG=no fi else no_gtk=yes fi min_gtk_version=ifelse([$1], ,3.0.0,$1) AC_MSG_CHECKING(for GTK+ - version >= $min_gtk_version) if test x$PKG_CONFIG != xno ; then ## don't try to run the test against uninstalled libtool libs if $PKG_CONFIG --uninstalled $pkg_config_args; then echo "Will use uninstalled version of GTK+ found in PKG_CONFIG_PATH" enable_gtktest=no fi if $PKG_CONFIG --atleast-version $min_gtk_version $pkg_config_args; then : else no_gtk=yes fi fi if test x"$no_gtk" = x ; then GTK_CFLAGS=`$PKG_CONFIG $pkg_config_args --cflags` GTK_LIBS=`$PKG_CONFIG $pkg_config_args --libs` gtk_config_major_version=`$PKG_CONFIG --modversion gtk+-3.0 | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` gtk_config_minor_version=`$PKG_CONFIG --modversion gtk+-3.0 | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` gtk_config_micro_version=`$PKG_CONFIG --modversion gtk+-3.0 | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` if test "x$enable_gtktest" = "xyes" ; then ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $GTK_CFLAGS" LIBS="$GTK_LIBS $LIBS" dnl dnl Now check if the installed GTK+ is sufficiently new. (Also sanity dnl checks the results of pkg-config to some extent) dnl rm -f conf.gtktest AC_TRY_RUN([ #include #include #include int main () { int major, minor, micro; char *tmp_version; fclose (fopen ("conf.gtktest", "w")); /* HP/UX 9 (%@#!) writes to sscanf strings */ tmp_version = g_strdup("$min_gtk_version"); if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { printf("%s, bad version string\n", "$min_gtk_version"); exit(1); } if ((gtk_major_version != $gtk_config_major_version) || (gtk_minor_version != $gtk_config_minor_version) || (gtk_micro_version != $gtk_config_micro_version)) { printf("\n*** 'pkg-config --modversion gtk+-3.0' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n", $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version, gtk_major_version, gtk_minor_version, gtk_micro_version); printf ("*** was found! If pkg-config was correct, then it is best\n"); printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n"); printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n"); printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n"); printf("*** required on your system.\n"); printf("*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n"); printf("*** to point to the correct configuration files\n"); } else if ((gtk_major_version != GTK_MAJOR_VERSION) || (gtk_minor_version != GTK_MINOR_VERSION) || (gtk_micro_version != GTK_MICRO_VERSION)) { printf("*** GTK+ header files (version %d.%d.%d) do not match\n", GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION); printf("*** library (version %d.%d.%d)\n", gtk_major_version, gtk_minor_version, gtk_micro_version); } else { if ((gtk_major_version > major) || ((gtk_major_version == major) && (gtk_minor_version > minor)) || ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro))) { return 0; } else { printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n", gtk_major_version, gtk_minor_version, gtk_micro_version); printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n", major, minor, micro); printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n"); printf("***\n"); printf("*** If you have already installed a sufficiently new version, this error\n"); printf("*** probably means that the wrong copy of the pkg-config shell script is\n"); printf("*** being found. The easiest way to fix this is to remove the old version\n"); printf("*** of GTK+, but you can also set the PKG_CONFIG environment to point to the\n"); printf("*** correct copy of pkg-config. (In this case, you will have to\n"); printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); printf("*** so that the correct libraries are found at run-time))\n"); } } return 1; } ],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi if test "x$no_gtk" = x ; then AC_MSG_RESULT(yes (version $gtk_config_major_version.$gtk_config_minor_version.$gtk_config_micro_version)) ifelse([$2], , :, [$2]) else AC_MSG_RESULT(no) if test "$PKG_CONFIG" = "no" ; then echo "*** A new enough version of pkg-config was not found." echo "*** See http://pkgconfig.sourceforge.net" else if test -f conf.gtktest ; then : else echo "*** Could not run GTK+ test program, checking why..." ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $GTK_CFLAGS" LIBS="$LIBS $GTK_LIBS" AC_TRY_LINK([ #include #include ], [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ], [ echo "*** The test program compiled, but did not run. This usually means" echo "*** that the run-time linker is not finding GTK+ or finding the wrong" echo "*** version of GTK+. If it is not finding GTK+, you'll need to set your" echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" echo "*** to the installed location Also, make sure you have run ldconfig if that" echo "*** is required on your system" echo "***" echo "*** If you have an old version installed, it is best to remove it, although" echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ], [ echo "*** The test program failed to compile or link. See the file config.log for the" echo "*** exact error that occured. This usually means GTK+ is incorrectly installed."]) CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi fi GTK_CFLAGS="" GTK_LIBS="" ifelse([$3], , :, [$3]) fi AC_SUBST(GTK_CFLAGS) AC_SUBST(GTK_LIBS) rm -f conf.gtktest ]) dnl GTK_CHECK_BACKEND(BACKEND-NAME [, MINIMUM-VERSION [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) dnl Tests for BACKEND-NAME in the GTK targets list dnl AC_DEFUN([GTK_CHECK_BACKEND], [ pkg_config_args=ifelse([$1],,gtk+-3.0, gtk+-$1-3.0) min_gtk_version=ifelse([$2],,3.0.0,$2) AC_PATH_PROG(PKG_CONFIG, [pkg-config], [AC_MSG_ERROR([No pkg-config found])]) if $PKG_CONFIG --atleast-version $min_gtk_version $pkg_config_args ; then target_found=yes else target_found=no fi if test "x$target_found" = "xno"; then ifelse([$4],,[AC_MSG_ERROR([Backend $backend not found.])],[$4]) else ifelse([$3],,[:],[$3]) fi ]) libextractor-1.3/install-sh0000755000175000017500000003325612255663141013022 00000000000000#!/bin/sh # install - install a program, script, or datafile scriptversion=2011-01-19.21; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. nl=' ' IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} if test -z "$doit"; then doit_exec=exec else doit_exec=$doit fi # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_glob='?' initialize_posix_glob=' test "$posix_glob" != "?" || { if (set -f) 2>/dev/null; then posix_glob= else posix_glob=: fi } ' posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false no_target_directory= usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *' '* | *' '* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 # Protect names problematic for `test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg # Protect names problematic for `test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call `install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then do_exit='(exit $ret); exit $ret' trap "ret=129; $do_exit" 1 trap "ret=130; $do_exit" 2 trap "ret=141; $do_exit" 13 trap "ret=143; $do_exit" 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names problematic for `test' and other utilities. case $src in -* | [=\(\)!]) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writeable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; [-=\(\)!]*) prefix='./';; *) prefix='';; esac eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob set +f IFS=$oIFS prefixes= for d do test X"$d" = X && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && eval "$initialize_posix_glob" && $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && $posix_glob set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: libextractor-1.3/configure.ac0000644000175000017500000006067112255773050013306 00000000000000# Process this file with autoconf to produce a configure script. AC_PREREQ(2.61) AC_INIT([libextractor], [1.3], [bug-libextractor@gnu.org]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_MACRO_DIR([m4]) AH_TOP([#define _GNU_SOURCE 1]) AC_CANONICAL_TARGET AC_CANONICAL_HOST AC_CANONICAL_SYSTEM LIB_VERSION_CURRENT=4 LIB_VERSION_REVISION=3 LIB_VERSION_AGE=1 AC_SUBST(LIB_VERSION_CURRENT) AC_SUBST(LIB_VERSION_REVISION) AC_SUBST(LIB_VERSION_AGE) AM_INIT_AUTOMAKE([silent-rules]) # Checks for programs. AC_USE_SYSTEM_EXTENSIONS AC_PROG_AWK AC_PROG_CC AM_PROG_CC_C_O AC_PROG_CPP AC_PROG_CXX AC_CHECK_PROG(HAVE_CXX, $CXX, yes, no) AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_MAKE_SET AC_CANONICAL_HOST AC_PROG_LIBTOOL # save LIBS, libtool does a AC_SEARCH_LIBS(dlopen, dl), but plugins # need not have -ldl added LIBSOLD=$LIBS LT_INIT([disable-static dlopen win32-dll]) AC_SUBST(MKDIR_P) AC_CHECK_DECLS([_stati64]) case "$target_os" in *linux-gnu) AC_DEFINE(GNU_LINUX,1,[This is a GNU/Linux system]) AC_DEFINE_UNQUOTED(GNU_LINUX,1,[This is a GNU/Linux system]) AM_CONDITIONAL(HAVE_GNU_LD, true) AM_CONDITIONAL(SOMEBSD, false) AM_CONDITIONAL(WINDOWS, false) XTRA_CPPLIBS=-lstdc++ LIBEXT=.so ;; freebsd*) AC_DEFINE_UNQUOTED(SOMEBSD,1,[This is a BSD system]) AC_CHECK_LIB(c_r, pthread_create) AM_CONDITIONAL(HAVE_GNU_LD, true) AM_CONDITIONAL(SOMEBSD, true) AM_CONDITIONAL(WINDOWS, false) XTRA_CPPLIBS=-lstdc++ LIBEXT=.so ;; openbsd*) AC_DEFINE_UNQUOTED(SOMEBSD,1,[This is a BSD system]) AC_CHECK_LIB(c_r, pthread_create) AM_CONDITIONAL(HAVE_GNU_LD, true) AM_CONDITIONAL(SOMEBSD, true) AM_CONDITIONAL(WINDOWS, false) XTRA_CPPLIBS=-lstdc++ LIBEXT=.so ;; netbsd*) AC_DEFINE_UNQUOTED(SOMEBSD,1,[This is a BSD system]) AC_CHECK_LIB(c_r, pthread_create) AM_CONDITIONAL(HAVE_GNU_LD, true) AM_CONDITIONAL(SOMEBSD, true) AM_CONDITIONAL(WINDOWS, false) XTRA_CPPLIBS=-lstdc++ LIBEXT=.so ;; *solaris*) AC_DEFINE_UNQUOTED(SOLARIS,1,[This is a Solaris system]) AC_CHECK_LIB(resolv, res_init) XTRA_CPPLIBS=-lstdc++ AM_CONDITIONAL(HAVE_GNU_LD, false) AM_CONDITIONAL(SOMEBSD, false) AM_CONDITIONAL(WINDOWS, false) CFLAGS="-D_POSIX_PTHREAD_SEMANTICS $CFLAGS" LIBEXT=.so ;; darwin*) AC_DEFINE_UNQUOTED(DARWIN,1,[This is a Darwin system]) AM_CONDITIONAL(HAVE_GNU_LD, false) AM_CONDITIONAL(SOMEBSD, false) AM_CONDITIONAL(WINDOWS, false) CFLAGS="-fno-common $CFLAGS" LIBEXT=.so ;; cygwin*) AC_DEFINE_UNQUOTED(CYGWIN,1,[This is a CYGWIN system]) LDFLAGS="$LDFLAGS -no-undefined" AM_CONDITIONAL(SOMEBSD, false) AM_CONDITIONAL(HAVE_GNU_LD, false) AM_CONDITIONAL(WINDOWS, false) LIBEXT=.dll ;; mingw*) AC_DEFINE_UNQUOTED(MINGW,1,[This is a MinGW system]) AC_DEFINE_UNQUOTED(WINDOWS,1,[This is a Windows system]) AC_CHECK_LIB(intl, gettext) # Sufficiently new Windows XP CFLAGS="-D__MSVCRT_VERSION__=0x0601 $CFLAGS" CPPFLAGS="-DFTRUNCATE_DEFINED=1 $CPPFLAGS" AC_MSG_CHECKING(for PlibC) plibc=0 AC_ARG_WITH(plibc, [ --with-plibc=PFX Base of PliBC installation], [AC_MSG_RESULT([$with_plibc]) case $with_plibc in no) ;; yes) AC_CHECK_HEADERS([plibc.h], AC_CHECK_LIB([plibc], [plibc_init], plibc=1)) ;; *) LDFLAGS="-L$with_plibc/lib $LDFLAGS" CPPFLAGS="-I$with_plibc/include $CPPFLAGS" AC_CHECK_HEADERS([plibc.h], AC_CHECK_LIB([plibc], [plibc_init], EXT_LIB_PATH="-L$with_plibc/lib $EXT_LIB_PATH" plibc=1)) ;; esac ], [AC_MSG_RESULT([--with-plibc not specified]) LDFLAGS="-L/usr/lib $LDFLAGS" CPPFLAGS="-I/usr/include $CPPFLAGS" AC_CHECK_HEADERS([plibc.h], AC_CHECK_LIB([plibc], [plibc_init], EXT_LIB_PATH="-L$with_plibc/lib $EXT_LIB_PATH" plibc=1))]) if test $plibc -ne 1; then AC_MSG_ERROR([libextractor requires PlibC]) else LIBS="$LIBS -lplibc" fi LDFLAGS="$LDFLAGS -Wl,-no-undefined -Wl,--export-all-symbols" LIBSOLD=$LIBS AM_CONDITIONAL(HAVE_GNU_LD, true) AM_CONDITIONAL(SOMEBSD, false) AM_CONDITIONAL(WINDOWS, true) LIBEXT=.dll ;; *) AC_MSG_RESULT(Unrecognised OS $host_os) AC_DEFINE_UNQUOTED(OTHEROS,1,[Some strange OS]) AC_MSG_RESULT(otheros) AC_DEFINE(GNU_LINUX,1,[We hope this is a GNU/Linux-compatible system]) AC_DEFINE_UNQUOTED(GNU_LINUX,1,[We hope this is a GNU/Linux-compatible system]) AM_CONDITIONAL(HAVE_GNU_LD, false) AM_CONDITIONAL(SOMEBSD, false) AM_CONDITIONAL(WINDOWS, false) LIBEXT=.so ;; esac AM_ICONV # We define the paths here, because MinGW/GCC expands paths # passed through the command line ("-DLOCALEDIR=..."). This would # lead to hard-coded paths ("C:\mingw\mingw\bin...") that do # not contain the actual installation. AC_DEFINE_DIR([LOCALEDIR], [datarootdir/locale], [gettext catalogs]) ISOPFX=`pkg-config --variable=prefix iso-codes` pkg-config --variable=prefix iso-codes 2> /dev/null || ISOPFX=/usr AC_DEFINE_DIR([ISOLOCALEDIR], [ISOPFX/share/locale], [iso-639 catalog]) # relative plugin directory rplugindir="libextractor" AC_ARG_WITH(plugindirname, AC_HELP_STRING( [--with-plugindirname], [install directory for plugins (always relative to libdir)]), [rplugindir=$withval]) AC_SUBST(RPLUGINDIR, $rplugindir) # large file support AC_SYS_LARGEFILE AC_FUNC_FSEEKO AM_CONDITIONAL(CYGWIN, test "$build_os" = "cygwin") AM_CONDITIONAL(MINGW, test "$build_os" = "mingw32") # use '-fno-strict-aliasing', but only if the compiler can take it if gcc -fno-strict-aliasing -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then CFLAGS="-fno-strict-aliasing $CFLAGS" fi AM_CONDITIONAL(HAVE_CXX, test "x$HAVE_CXX" = "xyes") # Adam shostack suggests the following for Windows: # -D_FORTIFY_SOURCE=2 -fstack-protector-all AC_ARG_ENABLE(gcc-hardening, AS_HELP_STRING(--enable-gcc-hardening, enable compiler security checks), [if test x$enableval = xyes; then CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=2 -fstack-protector-all" CFLAGS="$CFLAGS -fwrapv -fPIE -Wstack-protector" CFLAGS="$CFLAGS --param ssp-buffer-size=1" LDFLAGS="$LDFLAGS -pie" fi]) # Linker hardening options # Currently these options are ELF specific - you can't use this with MacOSX AC_ARG_ENABLE(linker-hardening, AS_HELP_STRING(--enable-linker-hardening, enable linker security fixups), [if test x$enableval = xyes; then LDFLAGS="$LDFLAGS -z relro -z now" fi]) # Checks for libraries. AC_CHECK_HEADERS(langinfo.h) # Check for libltdl header (#2999) ltdl=0 AC_MSG_CHECKING(for libltdl) AC_ARG_WITH(ltdl, [ --with-ltdl=PFX base of libltdl installation], [AC_MSG_RESULT([$with_ltdl]) case $with_ltdl in no) ;; yes) AC_CHECK_HEADERS(ltdl.h, AC_CHECK_LIB([ltdl], [lt_dlopenext], ltdl=1)) ;; *) LDFLAGS="-L$with_ltdl/lib $LDFLAGS" CPPFLAGS="-I$with_ltdl/include $CPPFLAGS" AC_CHECK_HEADERS(ltdl.h, AC_CHECK_LIB([ltdl], [lt_dlopenext], EXT_LIB_PATH="-L$with_ltdl/lib $EXT_LIB_PATH" ltdl=1)) ;; esac ], [AC_MSG_RESULT([--with-ltdl not specified]) AC_CHECK_HEADERS(ltdl.h, AC_CHECK_LIB([ltdl], [lt_dlopenext], ltdl=1))]) if test x$ltdl = x1 then AC_MSG_RESULT([libltdl found]) else AC_MSG_ERROR([libextractor requires libltdl (from GNU libtool), try installing libltdl-dev]) fi # restore LIBS LIBS=$LIBSOLD # FIXME: allow --with-oggvorbis=PFX # test if we have vorbisfile # prior versions had ov_open_callbacks in libvorbis, test that, too. AC_CHECK_LIB(vorbisfile, ov_open_callbacks, [AC_CHECK_HEADERS([vorbis/vorbisfile.h], AM_CONDITIONAL(HAVE_VORBISFILE, true) AC_DEFINE(HAVE_VORBISFILE,1,[Have vorbisfile]), AM_CONDITIONAL(HAVE_VORBISFILE, false) AC_DEFINE(HAVE_VORBISFILE,0,[lacking vorbisfile]))], AM_CONDITIONAL(HAVE_VORBISFILE, false), -lvorbis -logg) AC_CHECK_LIB(FLAC, FLAC__stream_decoder_init_stream, [AC_CHECK_HEADERS([FLAC/all.h], AM_CONDITIONAL(HAVE_FLAC, true) AC_DEFINE(HAVE_FLAC,1,[Have flac]), AM_CONDITIONAL(HAVE_FLAC, false))], AM_CONDITIONAL(HAVE_FLAC, false), -logg) # test without -logg to see whether we really need it (libflac can be without) AC_CHECK_LIB(FLAC, FLAC__stream_decoder_init_ogg_stream, AM_CONDITIONAL(HAVE_FLAC, true) AC_DEFINE(HAVE_FLAC,1,[Have flac]) AM_CONDITIONAL(NEED_OGG, false), [AM_CONDITIONAL(NEED_OGG, true)]) AC_CHECK_LIB(vorbisfile, vorbis_comment_query, AM_CONDITIONAL(NEED_VORBIS, false), AM_CONDITIONAL(NEED_VORBIS, true), -logg) AC_CHECK_LIB(z, inflate, [AC_CHECK_HEADERS([zlib.h], AM_CONDITIONAL(HAVE_ZLIB, true) AC_DEFINE(HAVE_ZLIB,1,[Have zlib]), AM_CONDITIONAL(HAVE_ZLIB, false))], AM_CONDITIONAL(HAVE_ZLIB, false)) AC_CHECK_LIB(bz2, BZ2_bzDecompress, [AC_CHECK_HEADERS([bzlib.h], AM_CONDITIONAL(HAVE_BZ2, true) AC_DEFINE(HAVE_LIBBZ2,1,[Have libbz2]), AM_CONDITIONAL(HAVE_BZ2, false))], AM_CONDITIONAL(HAVE_BZ2, false)) AC_CHECK_LIB(rpm, rpmReadPackageFile, [AC_CHECK_HEADERS([rpm/rpmlib.h], AM_CONDITIONAL(HAVE_LIBRPM, true) AC_DEFINE(HAVE_LIBRPM,1,[Have librpm]), AM_CONDITIONAL(HAVE_LIBRPM, false))], AM_CONDITIONAL(HAVE_LIBRPM, false)) AC_CHECK_LIB(mpeg2, mpeg2_init, [AC_CHECK_HEADERS([mpeg2dec/mpeg2.h], AM_CONDITIONAL(HAVE_MPEG2, true) AC_DEFINE(HAVE_MPEG2,1,[Have libmpeg2]), AM_CONDITIONAL(HAVE_MPEG2, false))], AM_CONDITIONAL(HAVE_MPEG2, false)) AC_CHECK_LIB(mp4v2, MP4ReadProvider, [AC_CHECK_HEADERS([mp4v2/mp4v2.h], AM_CONDITIONAL(HAVE_MP4, true) AC_DEFINE(HAVE_MP4,1,[Have libmp4v2]), AM_CONDITIONAL(HAVE_MP4, false))], AM_CONDITIONAL(HAVE_MP4, false)) AC_CHECK_LIB(jpeg, jpeg_mem_src, [AC_CHECK_HEADERS([jpeglib.h], AM_CONDITIONAL(HAVE_JPEG, true) AC_DEFINE(HAVE_JPEG,1,[Have libjpeg]), AM_CONDITIONAL(HAVE_JPEG, false))], AM_CONDITIONAL(HAVE_JPEG, false)) AC_CHECK_LIB(tiff, TIFFClientOpen, [AC_CHECK_HEADERS([tiffio.h], AM_CONDITIONAL(HAVE_TIFF, true) AC_DEFINE(HAVE_TIFF,1,[Have libtiff]), AM_CONDITIONAL(HAVE_TIFF, false))], AM_CONDITIONAL(HAVE_TIFF, false)) AC_CHECK_LIB(archive, archive_read_open, [AC_CHECK_HEADERS([archive.h], AM_CONDITIONAL(HAVE_ARCHIVE, true) AC_DEFINE(HAVE_ARCHIVE,1,[Have libarchive]), AM_CONDITIONAL(HAVE_ARCHIVE, false))], AM_CONDITIONAL(HAVE_ARCHIVE, false)) # should experimental code be compiled (code that may not yet compile)? AC_MSG_CHECKING(whether to compile experimental code) AC_ARG_ENABLE([experimental], [AS_HELP_STRING([--enable-experimental], [enable compiling experimental code])], [enable_experimental=${enableval}], [enable_experimental=no]) AC_MSG_RESULT($enable_experimental) AM_CONDITIONAL([HAVE_EXPERIMENTAL], [test "x$enable_experimental" = "xyes"]) AC_MSG_CHECKING(for ImageFactory::iptcData in -lexiv2) AC_LANG_PUSH(C++) SAVED_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -lexiv2" AC_LINK_IFELSE( [AC_LANG_PROGRAM([[#include #include #include #include ]], [[Exiv2::Image *foo = NULL; foo->iptcData(); ]])], [AC_MSG_RESULT(yes) AM_CONDITIONAL(HAVE_EXIV2, true) AC_DEFINE(HAVE_EXIV2,1,[Have exifData in libexiv2])], [AC_MSG_RESULT(no) AM_CONDITIONAL(HAVE_EXIV2, false)]) LDFLAGS=$SAVED_LDFLAGS AC_LANG_POP(C++) AC_MSG_CHECKING(for DGifOpen -lgif) SAVED_LDFLAGS=$LDFLAGS AC_CHECK_LIB(gif, DGifOpen, [AC_CHECK_HEADERS([gif_lib.h], AM_CONDITIONAL(HAVE_GIF, true), AM_CONDITIONAL(HAVE_GIF, false))], AM_CONDITIONAL(HAVE_GIF, false)) AC_MSG_CHECKING(for magic_open -lmagic) SAVED_LDFLAGS=$LDFLAGS AC_CHECK_LIB(magic, magic_open, [AC_CHECK_HEADERS([magic.h], AM_CONDITIONAL(HAVE_MAGIC, true), AM_CONDITIONAL(HAVE_MAGIC, false))], AM_CONDITIONAL(HAVE_MAGIC, false)) AC_MSG_CHECKING(for tidyNodeGetValue -ltidy) AC_LANG_PUSH(C++) SAVED_LIBS=$LIBS LIBS="$LIBS -ltidy" AC_LINK_IFELSE( [AC_LANG_PROGRAM([[#include ]], [[ Bool b = tidyNodeGetValue (NULL, NULL, NULL); ]])], [AC_MSG_RESULT(yes) AM_CONDITIONAL(HAVE_TIDY, true) AC_DEFINE(HAVE_TIDY,1,[Have tidyNodeGetValue in libtidy])], [AC_MSG_RESULT(no) AM_CONDITIONAL(HAVE_TIDY, false)]) LIBS=$SAVED_LIBS AC_LANG_POP(C++) # restore LIBS LIBS=$LIBSOLD # should 'make check' run tests? AC_MSG_CHECKING(whether to run tests) AC_ARG_ENABLE([testruns], [AS_HELP_STRING([--disable-testruns], [disable running tests on make check (default is YES)])], [enable_tests_run=${enableval}], [enable_tests_run=yes]) AC_MSG_RESULT($enable_test_run) AM_CONDITIONAL([ENABLE_TEST_RUN], [test "x$enable_tests_run" = "xyes"]) # Checks for header files. AC_HEADER_STDC AC_HEADER_DIRENT AC_HEADER_STDBOOL AC_CHECK_HEADERS([iconv.h fcntl.h netinet/in.h stdlib.h string.h unistd.h libintl.h limits.h stddef.h zlib.h]) # Checks for typedefs, structures, and compiler characteristics. AC_C_INLINE AC_TYPE_SIZE_T AC_TYPE_PID_T GNUPG_CHECK_ENDIAN # Checks for library functions. AC_FUNC_MEMCMP AC_FUNC_VPRINTF AC_FUNC_MMAP AC_FUNC_STAT AC_FUNC_ERROR_AT_LINE AC_SEARCH_LIBS(dlopen, dl) AC_SEARCH_LIBS(shm_open, rt) AC_CHECK_FUNCS([mkstemp strndup munmap strcasecmp strdup strncasecmp memmove memset strtoul floor getcwd pow setenv sqrt strchr strcspn strrchr strnlen strndup ftruncate shm_open shm_unlink lseek64]) dnl This is kind of tedious, but simple and straightforward sockets=no AC_MSG_CHECKING(for sockets) AC_LANG_PUSH(C) SAVED_LIBS="$LIBS" SOCKET_LIBS= AC_LINK_IFELSE( [ AC_LANG_PROGRAM( [[#include ]], [[int s = socket (AF_INET, SOCK_STREAM, 6);]] ) ], [ sockets=yes ], [ LIBS="$SAVED_LIBS -lsocket" AC_LINK_IFELSE( [ AC_LANG_PROGRAM( [[#include ]], [[int s = socket (AF_INET, SOCK_STREAM, 6);]] ) ], [ sockets=yes SOCKET_LIBS="-lsocket" ], [ AC_LINK_IFELSE( [ AC_LANG_PROGRAM( [[#include ]], [[int s = socket (AF_INET, SOCK_STREAM, 6);]] ) ], [ sockets=yes ], [ LIBS="$SAVED_LIBS -lws2_32" AC_LINK_IFELSE( [ AC_LANG_PROGRAM( [[#include ]], [[int s = socket (AF_INET, SOCK_STREAM, 6);]] ) ], [ sockets=yes SOCKET_LIBS="-lws2_32" ], [ sockets=no ] ) ] ) ] ) ] ) LIBS="$SAVED_LIBS $SOCKET_LIBS" AC_LANG_POP(C) AC_MSG_RESULT([$sockets]) if test "x$sockets" = "xno" then AC_MSG_ERROR([libextractor requires some kind of socket library]) fi AC_SUBST([SOCKET_LIBS],[$SOCKET_LIBS]) LE_LIB_LIBS=$LIBS LIBS=$LIBSOLD AM_GNU_GETTEXT_VERSION([0.16.1]) AM_GNU_GETTEXT([external]) # check for GNU LD AC_LIB_PROG_LD_GNU # check for glib >= 2.0.0 AC_MSG_CHECKING(for glib) AM_PATH_GLIB_2_0(2.0.0, without_glib=false, without_glib=true) AC_MSG_CHECKING([whether glib is disabled]) AC_ARG_ENABLE(glib, [AC_HELP_STRING([--disable-glib],[disable glib support])], [case "$enableval" in no) AC_MSG_RESULT(disabled) without_glib=true ;; *) AC_MSG_RESULT(allowed) ;; esac], AC_MSG_RESULT(allowed)) if test x$without_glib != xtrue then if test $with_gnu_ld = yes then # We need both GNU LD and GLIB here! AM_CONDITIONAL(HAVE_GLIB,true) AC_DEFINE(HAVE_GLIB, 1, [Have glib]) else # We may have GLIB, but without GNU LD we must not use it! AM_CONDITIONAL(HAVE_GLIB,false) AC_DEFINE(HAVE_GLIB, 0, [Have glib, but not GNU LD]) fi else AM_CONDITIONAL(HAVE_GLIB,false) AC_DEFINE(HAVE_GLIB, 0, [Have glib]) fi # smf requires glib.h CFLAGS_OLD="$CFLAGS" CPPFLAGS_OLD="$CPPFLAGS" CFLAGS="$CFLAGS $GLIB_CFLAGS" CPPFLAGS="$CPPFLAGS $GLIB_CFLAGS" AC_CHECK_LIB(smf, smf_load_from_memory, [AC_CHECK_HEADERS([smf.h], AM_CONDITIONAL(HAVE_SMF, true) AC_DEFINE(HAVE_MPEG2,1,[Have libsmf]), AM_CONDITIONAL(HAVE_SMF, false))], AM_CONDITIONAL(HAVE_SMF, false)) CFLAGS="$CFLAGS_OLD" CPPFLAGS="$CPPFLAGS_OLD" # check for gtk >= 2.6.0 AC_MSG_CHECKING(for gtk) check_for_3=3.0.0 check_for_2=2.6.0 AC_ARG_WITH(gtk_version, [ --with-gtk-version=VERSION version number of gtk to use (>=3.0.0 by default)], [AC_MSG_RESULT([$with_gtk_version]) case $with_gtk_version in *) if test "x${with_gtk_version:0:1}" == "x2" then check_for_3=false check_for_2=$with_gtk_version elif test "x${with_gtk_version:0:1}" == "x3" then check_for_3=$with_gtk_version check_for_2=false fi ;; esac ], [AC_MSG_RESULT([--with-gtk-version not specified])]) without_gtk=false if test "x$check_for_3" != "xfalse" then AM_PATH_GTK_3_0([$check_for_3],without_gtk=false,without_gtk=true) fi if test "x$without_gtk" == "xtrue" -a "x$check_for_2" != "xfalse" then AM_PATH_GTK_2_0([$check_for_2],without_gtk=false,without_gtk=true) fi AM_CONDITIONAL(HAVE_GTK, test x$without_gtk != xtrue) if test $without_gtk != true then AC_DEFINE_UNQUOTED([HAVE_GTK], 1, [We have GTK]) else AC_MSG_NOTICE([Cannot find GTK: Is pkg-config in path?]) fi CFLAGS="$CFLAGS $GTK_CFLAGS" CPPFLAGS="$CPPFLAGS $GTK_CFLAGS" LIBS="$LIBS $GTK_LIBS" AC_ARG_WITH([gstreamer], AS_HELP_STRING([--with-gstreamer], [Build with the GStreamer plugin]), [], [with_gstreamer=yes]) have_gstreamer=no have_gstreamer_pbutils=no have_gstreamer_tag=no have_gstreamer_app=no AS_IF([test "x$with_gstreamer" = "xyes"], [ PKG_CHECK_MODULES([GSTREAMER], [gstreamer-1.0 >= 0.11.93], [have_gstreamer=yes], [have_gstreamer=no]) PKG_CHECK_MODULES([GSTREAMER_PBUTILS], [gstreamer-pbutils-1.0 >= 0.11.93], [have_gstreamer_pbutils=yes], [have_gstreamer_pbutils=no]) PKG_CHECK_MODULES([GSTREAMER_TAG], [gstreamer-tag-1.0 >= 0.11.93], [have_gstreamer_tag=yes], [have_gstreamer_tag=no]) PKG_CHECK_MODULES([GSTREAMER_APP], [gstreamer-app-1.0 >= 0.11.93], [have_gstreamer_app=yes], [have_gstreamer_app=no]) ]) AM_CONDITIONAL(HAVE_GSTREAMER, test x$have_gstreamer = xyes -a x$have_gstreamer_pbutils = xyes -a x$have_gstreamer_tag = xyes -a x$have_gstreamer_app = xyes -a ! x$without_glib = xtrue) ABI_GSF AM_CONDITIONAL(HAVE_GSF, test "x$have_gsf" = "xtrue") # produce new line echo "" AC_CHECK_LIB(gsf-1, gsf_init, AC_DEFINE(HAVE_GSF_INIT,1,[gsf_init supported])) AC_CHECK_PROG([HAVE_ZZUF],[zzuf], 1, 0) AM_CONDITIONAL(HAVE_ZZUF, test 0 != $HAVE_ZZUF) AC_MSG_CHECKING([whether to enable the FFmpeg thumbnail extractor]) new_ffmpeg=0 AC_ARG_ENABLE(ffmpeg, [AC_HELP_STRING([--enable-ffmpeg],[Enable FFmpeg support]) AC_HELP_STRING([--disable-ffmpeg],[Disable FFmpeg support])], [case "$enableval" in no) AC_MSG_RESULT(no) ffmpeg_enabled=0 ;; *) AC_MSG_RESULT(yes) ffmpeg_enabled=1 ;; esac], [ AC_MSG_RESULT(yes) ffmpeg_enabled=1]) if test x$ffmpeg_enabled = x1 then ffmpeg_enabled=0 new_ffmpeg=0 AC_CHECK_HEADERS([libavutil/avutil.h libavformat/avformat.h libavcodec/avcodec.h libavutil/frame.h], AC_CHECK_HEADERS([libavresample/avresample.h], AC_CHECK_LIB(avutil, av_audio_fifo_alloc, new_ffmpeg=1))) AC_CHECK_LIB(swscale, sws_getContext, AC_CHECK_LIB(avcodec, avcodec_alloc_context3, ffmpeg_enabled=1)) AC_CHECK_HEADERS([libavutil/avutil.h ffmpeg/avutil.h libavformat/avformat.h ffmpeg/avformat.h libavcodec/avcodec.h ffmpeg/avcodec.h libswscale/swscale.h ffmpeg/swscale.h]) fi AM_CONDITIONAL(HAVE_FFMPEG, test x$ffmpeg_enabled != x0) AM_CONDITIONAL(HAVE_FFMPEG_NEW, test x$new_ffmpeg != x0) LE_INTLINCL="" LE_LIBINTL="$LTLIBINTL" AC_ARG_ENABLE(framework, [ --enable-framework enable Mac OS X framework build helpers],enable_framework_build=$enableval) AM_CONDITIONAL(WANT_FRAMEWORK, test x$enable_framework_build = xyes) if test x$enable_framework_build = xyes then AC_DEFINE([FRAMEWORK_BUILD], 1, [Build a Mac OS X Framework]) LE_INTLINCL='-I$(top_srcdir)/src/intlemu' LE_LIBINTL='$(top_builddir)/src/intlemu/libintlemu.la -framework CoreFoundation' AC_LIB_APPENDTOVAR([CPPFLAGS], [$LE_INTLINCL]) fi LE_LIB_LDFLAGS="-export-dynamic -no-undefined" LE_PLUGIN_LDFLAGS="-export-dynamic -avoid-version -module -no-undefined" # TODO insert a proper check here AC_CACHE_CHECK([whether -export-symbols-regex works], gn_cv_export_symbols_regex_works, [ case "$host_os" in mingw*) gn_cv_export_symbols_regex_works=no;; *) gn_cv_export_symbols_regex_works=yes;; esac ]) if test "x$gn_cv_export_symbols_regex_works" = "xyes" then LE_LIB_LDFLAGS="$LE_LIB_LDFLAGS -export-symbols-regex \"(EXTRACTOR|pl)_@<:@a-zA-Z0-9_@:>@*\"" LE_PLUGIN_LDFLAGS="$LE_PLUGIN_LDFLAGS -export-symbols-regex \"(EXTRACTOR|pl)_@<:@a-zA-Z0-9_@:>@*_.......\"" fi # restore LIBS LIBS=$LIBSOLD AC_SUBST(LE_LIB_LDFLAGS) AC_SUBST(LE_PLUGIN_LDFLAGS) AC_SUBST(LE_INTLINCL) AC_SUBST(LE_LIBINTL) AC_SUBST(LE_LIB_LIBS) AC_SUBST(CPPFLAGS) AC_SUBST(LDFLAGS) AC_SUBST(QT_CPPFLAGS) AC_SUBST(QT_LDFLAGS) AC_SUBST(XTRA_CPPLIBS) AC_SUBST(LIBEXT) PACKAGE_VERSION_NOALPHA=`echo $PACKAGE_VERSION | sed "s/@<:@A-Za-z@:>@*//g;"` AC_SUBST(PACKAGE_VERSION_NOALPHA) # gcov compilation AC_MSG_CHECKING(whether to compile with support for code coverage analysis) AC_ARG_ENABLE([coverage], AS_HELP_STRING([--enable-coverage], [compile the library with code coverage support]), [use_gcov=${enableval}], [use_gcov=no]) AC_MSG_RESULT($use_gcov) AM_CONDITIONAL([USE_COVERAGE], [test "x$use_gcov" = "xyes"]) AC_CONFIG_FILES([Makefile po/Makefile.in m4/Makefile contrib/macosx/Info.plist contrib/macosx/Pkg-Info.plist doc/Makefile src/Makefile src/include/Makefile src/intlemu/Makefile src/common/Makefile src/main/Makefile src/plugins/Makefile ]) AX_CREATE_PKGCONFIG_INFO([libextractor.pc],,[-lextractor],[Metadata extraction library],,) AC_OUTPUT if test "x$HAVE_ZLIB_TRUE" = "x#" then AC_MSG_NOTICE([NOTICE: zlib not found, zlib support disabled]) fi if test "x$HAVE_BZ2_TRUE" = "x#" then AC_MSG_NOTICE([NOTICE: libbz2 not found, bz2 support disabled]) fi if test "x$HAVE_EXIV2_TRUE" = "x#" then AC_MSG_NOTICE([NOTICE: libexiv2 not found, exiv2 disabled]) fi if test "x$HAVE_TIFF_TRUE" = "x#" then AC_MSG_NOTICE([NOTICE: libtiff not found, tiff disabled]) fi if test "x$HAVE_JPEG_TRUE" = "x#" then AC_MSG_NOTICE([NOTICE: libjpeg not found, jpeg disabled]) fi if test "x$HAVE_GIF_TRUE" = "x#" then AC_MSG_NOTICE([NOTICE: libgif not found, gif disabled]) fi if test "x$have_gsf" != "xtrue" then AC_MSG_NOTICE([NOTICE: libgsf not found, no OLE2 (MS Office) support]) fi if test "x$ffmpeg_enabled" = "x0" then AC_MSG_NOTICE([NOTICE: FFmpeg thumbnailer plugin disabled]) fi if test "x$new_ffmpeg" = "x0" then AC_MSG_NOTICE([NOTICE: FFmpeg/opus audio preview plugin disabled, It needs libav >= 10, or a FFmpeg with --enable-libavresample]) fi if test "x$without_gtk" = "xtrue" then AC_MSG_NOTICE([NOTICE: libgtk3+ not found, gtk thumbnail support disabled]) fi if test "x$HAVE_VORBISFILE_TRUE" = "x#" then AC_MSG_NOTICE([NOTICE: libvorbis not found, vorbis support disabled]) fi if test "x$HAVE_FLAC_TRUE" = "x#" then AC_MSG_NOTICE([NOTICE: libflac not found, flac support disabled]) fi if test "x$HAVE_SMF_TRUE" = "x#" then AC_MSG_NOTICE([NOTICE: libsmf not found, midi support disabled]) fi if test "x$HAVE_MPEG2_TRUE" = "x#" then AC_MSG_NOTICE([NOTICE: libmpeg2 not found, mpeg2 support disabled]) fi if test "x$HAVE_MP4V2_TRUE" = "x#" then AC_MSG_NOTICE([NOTICE: libmp4v2 not found, mp4 support disabled]) fi if test "x$HAVE_CXX" != "xyes" then AC_MSG_NOTICE([NOTICE: no C++ compiler found (not compiling plugins that require C++)]) fi if test x$have_gstreamer = xyes -a x$have_gstreamer_pbutils = xyes -a x$have_gstreamer_tag = xyes -a x$have_gstreamer_app = xyes -a ! x$without_glib = xtrue then if test x$enable_experimental = xyes then AC_MSG_NOTICE([NOTICE: gstreamer enabled]) fi else AC_MSG_NOTICE([NOTICE: gstreamer not found, gstreamer support disabled]) fi libextractor-1.3/TODO0000644000175000017500000000075712016743000011472 00000000000000* tests needed: - gstreamer (testcase file exists, but does not test everything important) Desirable missing formats: * mbox / various e-mail formats * info pages (scan for 'Node: %s^?ID' - see end of .info files!) * sources (Java, C, C++, see doxygen!) * a.out (== ar?) * rtf * applefile (0.6.x-plugin exists) * EXE * ELF (linkage information, 0.6.x-plugin exists) * PRC (Palm module, http://web.mit.edu/tytso/www/pilot/prc-format.html) * KOffice * TGA * Microsoft OOXML (MS Office >= 2007) libextractor-1.3/config.sub0000755000175000017500000010532712255663141013000 00000000000000#! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, # 2011, 2012 Free Software Foundation, Inc. timestamp='2012-04-18' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software # can handle that machine. It does not imply ALL GNU software can. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . Submit a context # diff and a properly formatted GNU ChangeLog entry. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ knetbsd*-gnu* | netbsd*-gnu* | \ kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; android-linux) os=-linux-android basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray | -microblaze) os= basic_machine=$1 ;; -bluegene*) os=-cnk ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*178) os=-lynxos178 ;; -lynx*5) os=-lynxos5 ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | aarch64 | aarch64_be \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ | be32 | be64 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | epiphany \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | hexagon \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | le32 | le64 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64octeon | mips64octeonel \ | mips64orion | mips64orionel \ | mips64r5900 | mips64r5900el \ | mips64vr | mips64vrel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | moxie \ | mt \ | msp430 \ | nds32 | nds32le | nds32be \ | nios | nios2 \ | ns16k | ns32k \ | open8 \ | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle \ | pyramid \ | rl78 | rx \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu \ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ | ubicom32 \ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ | we32k \ | x86 | xc16x | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; c54x) basic_machine=tic54x-unknown ;; c55x) basic_machine=tic55x-unknown ;; c6x) basic_machine=tic6x-unknown ;; m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip) basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; strongarm | thumb | xscale) basic_machine=arm-unknown ;; xgate) basic_machine=$basic_machine-unknown os=-none ;; xscaleeb) basic_machine=armeb-unknown ;; xscaleel) basic_machine=armel-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | aarch64-* | aarch64_be-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | be32-* | be64-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | hexagon-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | le32-* | le64-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64octeon-* | mips64octeonel-* \ | mips64orion-* | mips64orionel-* \ | mips64r5900-* | mips64r5900el-* \ | mips64vr-* | mips64vrel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nds32-* | nds32le-* | nds32be-* \ | nios-* | nios2-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | open8-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ | pyramid-* \ | rl78-* | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ | tahoe-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tile*-* \ | tron-* \ | ubicom32-* \ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-* | z80-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aros) basic_machine=i386-pc os=-aros ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; bluegene*) basic_machine=powerpc-ibm os=-cnk ;; c54x-*) basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c55x-*) basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c6x-*) basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c90) basic_machine=c90-cray os=-unicos ;; cegcc) basic_machine=arm-unknown os=-cegcc ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16 | cr16-*) basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; dicos) basic_machine=i686-pc os=-dicos ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; microblaze) basic_machine=microblaze-xilinx ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; msys) basic_machine=i386-pc os=-msys ;; mvs) basic_machine=i370-ibm os=-mvs ;; nacl) basic_machine=le32-unknown os=-nacl ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; neo-tandem) basic_machine=neo-tandem ;; nse-tandem) basic_machine=nse-tandem ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc | ppcbe) basic_machine=powerpc-unknown ;; ppc-* | ppcbe-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; strongarm-* | thumb-*) basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tile*) basic_machine=$basic_machine-unknown os=-linux-gnu ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; xscale-* | xscalee[bl]-*) basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; z80-*-coff) basic_machine=z80-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -auroraux) os=-auroraux ;; -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ | -sym* | -kopensolaris* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -linux-gnu* | -linux-android* \ | -linux-newlib* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -kaos*) os=-kaos ;; -zvmoe) os=-zvmoe ;; -dicos*) os=-dicos ;; -nacl*) ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; hexagon-*) os=-elf ;; tic54x-*) os=-coff ;; tic55x-*) os=-coff ;; tic6x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -cnk*|-aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: libextractor-1.3/ABOUT-NLS0000644000175000017500000023334011260753602012236 000000000000001 Notes on the Free Translation Project *************************************** Free software is going international! The Free Translation Project is a way to get maintainers of free software, translators, and users all together, so that free software will gradually become able to speak many languages. A few packages already provide translations for their messages. If you found this `ABOUT-NLS' file inside a distribution, you may assume that the distributed package does use GNU `gettext' internally, itself available at your nearest GNU archive site. But you do _not_ need to install GNU `gettext' prior to configuring, installing or using this package with messages translated. Installers will find here some useful hints. These notes also explain how users should proceed for getting the programs to use the available translations. They tell how people wanting to contribute and work on translations can contact the appropriate team. When reporting bugs in the `intl/' directory or bugs which may be related to internationalization, you should tell about the version of `gettext' which is used. The information can be found in the `intl/VERSION' file, in internationalized packages. 1.1 Quick configuration advice ============================== If you want to exploit the full power of internationalization, you should configure it using ./configure --with-included-gettext to force usage of internationalizing routines provided within this package, despite the existence of internationalizing capabilities in the operating system where this package is being installed. So far, only the `gettext' implementation in the GNU C library version 2 provides as many features (such as locale alias, message inheritance, automatic charset conversion or plural form handling) as the implementation here. It is also not possible to offer this additional functionality on top of a `catgets' implementation. Future versions of GNU `gettext' will very likely convey even more functionality. So it might be a good idea to change to GNU `gettext' as soon as possible. So you need _not_ provide this option if you are using GNU libc 2 or you have installed a recent copy of the GNU gettext package with the included `libintl'. 1.2 INSTALL Matters =================== Some packages are "localizable" when properly installed; the programs they contain can be made to speak your own native language. Most such packages use GNU `gettext'. Other packages have their own ways to internationalization, predating GNU `gettext'. By default, this package will be installed to allow translation of messages. It will automatically detect whether the system already provides the GNU `gettext' functions. If not, the included GNU `gettext' library will be used. This library is wholly contained within this package, usually in the `intl/' subdirectory, so prior installation of the GNU `gettext' package is _not_ required. Installers may use special options at configuration time for changing the default behaviour. The commands: ./configure --with-included-gettext ./configure --disable-nls will, respectively, bypass any pre-existing `gettext' to use the internationalizing routines provided within this package, or else, _totally_ disable translation of messages. When you already have GNU `gettext' installed on your system and run configure without an option for your new package, `configure' will probably detect the previously built and installed `libintl.a' file and will decide to use this. This might not be desirable. You should use the more recent version of the GNU `gettext' library. I.e. if the file `intl/VERSION' shows that the library which comes with this package is more recent, you should use ./configure --with-included-gettext to prevent auto-detection. The configuration process will not test for the `catgets' function and therefore it will not be used. The reason is that even an emulation of `gettext' on top of `catgets' could not provide all the extensions of the GNU `gettext' library. Internationalized packages usually have many `po/LL.po' files, where LL gives an ISO 639 two-letter code identifying the language. Unless translations have been forbidden at `configure' time by using the `--disable-nls' switch, all available translations are installed together with the package. However, the environment variable `LINGUAS' may be set, prior to configuration, to limit the installed set. `LINGUAS' should then contain a space separated list of two-letter codes, stating which languages are allowed. 1.3 Using This Package ====================== As a user, if your language has been installed for this package, you only have to set the `LANG' environment variable to the appropriate `LL_CC' combination. Here `LL' is an ISO 639 two-letter language code, and `CC' is an ISO 3166 two-letter country code. For example, let's suppose that you speak German and live in Germany. At the shell prompt, merely execute `setenv LANG de_DE' (in `csh'), `export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash'). This can be done from your `.login' or `.profile' file, once and for all. You might think that the country code specification is redundant. But in fact, some languages have dialects in different countries. For example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The country code serves to distinguish the dialects. The locale naming convention of `LL_CC', with `LL' denoting the language and `CC' denoting the country, is the one use on systems based on GNU libc. On other systems, some variations of this scheme are used, such as `LL' or `LL_CC.ENCODING'. You can get the list of locales supported by your system for your language by running the command `locale -a | grep '^LL''. Not all programs have translations for all languages. By default, an English message is shown in place of a nonexistent translation. If you understand other languages, you can set up a priority list of languages. This is done through a different environment variable, called `LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG' for the purpose of message handling, but you still need to have `LANG' set to the primary language; this is required by other parts of the system libraries. For example, some Swedish users who would rather read translations in German than English for when Swedish is not available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'. Special advice for Norwegian users: The language code for Norwegian bokma*l changed from `no' to `nb' recently (in 2003). During the transition period, while some message catalogs for this language are installed under `nb' and some older ones under `no', it's recommended for Norwegian users to set `LANGUAGE' to `nb:no' so that both newer and older translations are used. In the `LANGUAGE' environment variable, but not in the `LANG' environment variable, `LL_CC' combinations can be abbreviated as `LL' to denote the language's main dialect. For example, `de' is equivalent to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT' (Portuguese as spoken in Portugal) in this context. 1.4 Translating Teams ===================== For the Free Translation Project to be a success, we need interested people who like their own language and write it well, and who are also able to synergize with other translators speaking the same language. Each translation team has its own mailing list. The up-to-date list of teams can be found at the Free Translation Project's homepage, `http://www.iro.umontreal.ca/contrib/po/HTML/', in the "National teams" area. If you'd like to volunteer to _work_ at translating messages, you should become a member of the translating team for your own language. The subscribing address is _not_ the same as the list itself, it has `-request' appended. For example, speakers of Swedish can send a message to `sv-request@li.org', having this message body: subscribe Keep in mind that team members are expected to participate _actively_ in translations, or at solving translational difficulties, rather than merely lurking around. If your team does not exist yet and you want to start one, or if you are unsure about what to do or how to get started, please write to `translation@iro.umontreal.ca' to reach the coordinator for all translator teams. The English team is special. It works at improving and uniformizing the terminology in use. Proven linguistic skills are praised more than programming skills, here. 1.5 Available Packages ====================== Languages are not equally supported in all packages. The following matrix shows the current state of internationalization, as of October 2006. The matrix shows, in regard of each package, for which languages PO files have been submitted to translation coordination, with a translation percentage of at least 50%. Ready PO files af am ar az be bg bs ca cs cy da de el en en_GB eo +----------------------------------------------------+ GNUnet | [] | a2ps | [] [] [] [] [] | aegis | () | ant-phone | () | anubis | [] | ap-utils | | aspell | [] [] [] [] [] | bash | [] [] [] | batchelor | [] | bfd | | bibshelf | [] | binutils | [] | bison | [] [] | bison-runtime | | bluez-pin | [] [] [] [] [] | cflow | [] | clisp | [] [] | console-tools | [] [] | coreutils | [] [] [] | cpio | | cpplib | [] [] [] | cryptonit | [] | darkstat | [] () [] | dialog | [] [] [] [] [] [] | diffutils | [] [] [] [] [] [] | doodle | [] | e2fsprogs | [] [] | enscript | [] [] [] [] | error | [] [] [] [] | fetchmail | [] [] () [] | fileutils | [] [] | findutils | [] [] [] | flex | [] [] [] | fslint | [] | gas | | gawk | [] [] [] | gbiff | [] | gcal | [] | gcc | [] | gettext-examples | [] [] [] [] [] | gettext-runtime | [] [] [] [] [] | gettext-tools | [] [] | gimp-print | [] [] [] [] | gip | [] | gliv | [] | glunarclock | [] | gmult | [] [] | gnubiff | () | gnucash | () () [] | gnucash-glossary | [] () | gnuedu | | gnulib | [] [] [] [] [] [] | gnunet-gtk | | gnutls | | gpe-aerial | [] [] | gpe-beam | [] [] | gpe-calendar | | gpe-clock | [] [] | gpe-conf | [] [] | gpe-contacts | | gpe-edit | [] | gpe-filemanager | | gpe-go | [] | gpe-login | [] [] | gpe-ownerinfo | [] [] | gpe-package | | gpe-sketchbook | [] [] | gpe-su | [] [] | gpe-taskmanager | [] [] | gpe-timesheet | [] | gpe-today | [] [] | gpe-todo | | gphoto2 | [] [] [] [] | gprof | [] [] | gpsdrive | () () | gramadoir | [] [] | grep | [] [] [] [] [] [] | gretl | | gsasl | | gss | | gst-plugins | [] [] [] [] | gst-plugins-base | [] [] [] | gst-plugins-good | [] [] [] [] [] [] [] | gstreamer | [] [] [] [] [] [] [] | gtick | () | gtkam | [] [] [] | gtkorphan | [] [] | gtkspell | [] [] [] [] | gutenprint | [] | hello | [] [] [] [] [] | id-utils | [] [] | impost | | indent | [] [] [] | iso_3166 | [] [] | iso_3166_2 | | iso_4217 | [] | iso_639 | [] [] | jpilot | [] | jtag | | jwhois | | kbd | [] [] [] [] | keytouch | | keytouch-editor | | keytouch-keyboa... | | latrine | () | ld | [] | leafpad | [] [] [] [] [] | libc | [] [] [] [] [] | libexif | [] | libextractor | [] | libgpewidget | [] [] [] | libgpg-error | [] | libgphoto2 | [] [] | libgphoto2_port | [] [] | libgsasl | | libiconv | [] [] | libidn | [] [] | lifelines | [] () | lilypond | [] | lingoteach | | lynx | [] [] [] [] | m4 | [] [] [] [] | mailutils | [] | make | [] [] | man-db | [] () [] [] | minicom | [] [] [] | mysecretdiary | [] [] | nano | [] [] [] | nano_1_0 | [] () [] [] | opcodes | [] | parted | | pilot-qof | [] | psmisc | [] | pwdutils | | python | | qof | | radius | [] | recode | [] [] [] [] [] [] | rpm | [] [] | screem | | scrollkeeper | [] [] [] [] [] [] [] [] | sed | [] [] [] | sh-utils | [] [] | shared-mime-info | [] [] [] [] | sharutils | [] [] [] [] [] [] | shishi | | silky | | skencil | [] () | sketch | [] () | solfege | | soundtracker | [] [] | sp | [] | stardict | [] | system-tools-ba... | [] [] [] [] [] [] [] [] [] | tar | [] | texinfo | [] [] [] | textutils | [] [] [] | tin | () () | tp-robot | [] | tuxpaint | [] [] [] [] [] | unicode-han-tra... | | unicode-transla... | | util-linux | [] [] [] [] | vorbis-tools | [] [] [] [] | wastesedge | () | wdiff | [] [] [] [] | wget | [] [] | xchat | [] [] [] [] [] [] | xkeyboard-config | | xpad | [] [] | +----------------------------------------------------+ af am ar az be bg bs ca cs cy da de el en en_GB eo 10 0 1 2 9 22 1 42 41 2 60 95 16 1 17 16 es et eu fa fi fr ga gl gu he hi hr hu id is it +--------------------------------------------------+ GNUnet | | a2ps | [] [] [] () | aegis | | ant-phone | [] | anubis | [] | ap-utils | [] [] | aspell | [] [] [] | bash | [] [] [] | batchelor | [] [] | bfd | [] | bibshelf | [] [] [] | binutils | [] [] [] | bison | [] [] [] [] [] [] | bison-runtime | [] [] [] [] [] | bluez-pin | [] [] [] [] [] | cflow | [] | clisp | [] [] | console-tools | | coreutils | [] [] [] [] [] [] | cpio | [] [] [] | cpplib | [] [] | cryptonit | [] | darkstat | [] () [] [] [] | dialog | [] [] [] [] [] [] [] [] | diffutils | [] [] [] [] [] [] [] [] [] | doodle | [] [] | e2fsprogs | [] [] [] | enscript | [] [] [] | error | [] [] [] [] [] | fetchmail | [] | fileutils | [] [] [] [] [] [] | findutils | [] [] [] [] | flex | [] [] [] | fslint | [] | gas | [] [] | gawk | [] [] [] [] | gbiff | [] | gcal | [] [] | gcc | [] | gettext-examples | [] [] [] [] [] [] | gettext-runtime | [] [] [] [] [] [] | gettext-tools | [] [] [] | gimp-print | [] [] | gip | [] [] [] | gliv | () | glunarclock | [] [] [] | gmult | [] [] [] | gnubiff | () () | gnucash | () () () | gnucash-glossary | [] [] | gnuedu | [] | gnulib | [] [] [] [] [] [] [] [] | gnunet-gtk | | gnutls | | gpe-aerial | [] [] | gpe-beam | [] [] | gpe-calendar | | gpe-clock | [] [] [] [] | gpe-conf | [] | gpe-contacts | [] [] | gpe-edit | [] [] [] [] | gpe-filemanager | [] | gpe-go | [] [] [] | gpe-login | [] [] [] | gpe-ownerinfo | [] [] [] [] [] | gpe-package | [] | gpe-sketchbook | [] [] | gpe-su | [] [] [] [] | gpe-taskmanager | [] [] [] | gpe-timesheet | [] [] [] [] | gpe-today | [] [] [] [] | gpe-todo | [] | gphoto2 | [] [] [] [] [] | gprof | [] [] [] [] | gpsdrive | () () [] () | gramadoir | [] [] | grep | [] [] [] [] [] [] [] [] [] [] [] [] | gretl | [] [] [] | gsasl | [] [] | gss | [] | gst-plugins | [] [] [] | gst-plugins-base | [] [] | gst-plugins-good | [] [] [] | gstreamer | [] [] [] | gtick | [] | gtkam | [] [] [] [] | gtkorphan | [] [] | gtkspell | [] [] [] [] [] [] | gutenprint | [] | hello | [] [] [] [] [] [] [] [] [] [] [] [] [] | id-utils | [] [] [] [] [] | impost | [] [] | indent | [] [] [] [] [] [] [] [] [] [] | iso_3166 | [] [] [] | iso_3166_2 | [] | iso_4217 | [] [] [] [] | iso_639 | [] [] [] [] [] | jpilot | [] [] | jtag | [] | jwhois | [] [] [] [] [] | kbd | [] [] | keytouch | [] | keytouch-editor | [] | keytouch-keyboa... | [] | latrine | [] [] [] | ld | [] [] | leafpad | [] [] [] [] [] [] | libc | [] [] [] [] [] | libexif | [] | libextractor | [] | libgpewidget | [] [] [] [] [] | libgpg-error | | libgphoto2 | [] [] [] | libgphoto2_port | [] [] | libgsasl | [] [] | libiconv | [] [] | libidn | [] [] | lifelines | () | lilypond | [] | lingoteach | [] [] [] | lynx | [] [] [] | m4 | [] [] [] [] | mailutils | [] [] | make | [] [] [] [] [] [] [] [] | man-db | () | minicom | [] [] [] [] | mysecretdiary | [] [] [] | nano | [] [] [] [] [] [] | nano_1_0 | [] [] [] [] [] | opcodes | [] [] [] [] | parted | [] [] [] [] | pilot-qof | | psmisc | [] [] [] | pwdutils | | python | | qof | [] | radius | [] [] | recode | [] [] [] [] [] [] [] [] | rpm | [] [] | screem | | scrollkeeper | [] [] [] | sed | [] [] [] [] [] | sh-utils | [] [] [] [] [] [] [] | shared-mime-info | [] [] [] [] [] [] | sharutils | [] [] [] [] [] [] [] [] | shishi | | silky | [] | skencil | [] [] | sketch | [] [] | solfege | [] | soundtracker | [] [] [] | sp | [] | stardict | [] | system-tools-ba... | [] [] [] [] [] [] [] [] | tar | [] [] [] [] [] [] [] | texinfo | [] [] | textutils | [] [] [] [] [] | tin | [] () | tp-robot | [] [] [] [] | tuxpaint | [] [] | unicode-han-tra... | | unicode-transla... | [] [] | util-linux | [] [] [] [] [] [] [] | vorbis-tools | [] [] | wastesedge | () | wdiff | [] [] [] [] [] [] [] [] | wget | [] [] [] [] [] [] [] [] | xchat | [] [] [] [] [] [] [] [] | xkeyboard-config | [] [] [] [] | xpad | [] [] [] | +--------------------------------------------------+ es et eu fa fi fr ga gl gu he hi hr hu id is it 88 22 14 2 40 115 61 14 1 8 1 6 59 31 0 52 ja ko ku ky lg lt lv mk mn ms mt nb ne nl nn no +-------------------------------------------------+ GNUnet | | a2ps | () [] [] () | aegis | () | ant-phone | [] | anubis | [] [] [] | ap-utils | [] | aspell | [] [] | bash | [] | batchelor | [] [] | bfd | | bibshelf | [] | binutils | | bison | [] [] [] | bison-runtime | [] [] [] | bluez-pin | [] [] [] | cflow | | clisp | [] | console-tools | | coreutils | [] | cpio | | cpplib | [] | cryptonit | [] | darkstat | [] [] | dialog | [] [] | diffutils | [] [] [] | doodle | | e2fsprogs | [] | enscript | [] | error | [] | fetchmail | [] [] | fileutils | [] [] | findutils | [] | flex | [] [] | fslint | [] [] | gas | | gawk | [] [] | gbiff | [] | gcal | | gcc | | gettext-examples | [] [] | gettext-runtime | [] [] [] | gettext-tools | [] [] | gimp-print | [] [] | gip | [] [] | gliv | [] | glunarclock | [] [] | gmult | [] [] | gnubiff | | gnucash | () () | gnucash-glossary | [] | gnuedu | | gnulib | [] [] [] [] | gnunet-gtk | | gnutls | | gpe-aerial | [] | gpe-beam | [] | gpe-calendar | [] | gpe-clock | [] [] [] | gpe-conf | [] [] | gpe-contacts | [] | gpe-edit | [] [] [] | gpe-filemanager | [] [] | gpe-go | [] [] [] | gpe-login | [] [] [] | gpe-ownerinfo | [] [] | gpe-package | [] [] | gpe-sketchbook | [] [] | gpe-su | [] [] [] | gpe-taskmanager | [] [] [] [] | gpe-timesheet | [] | gpe-today | [] [] | gpe-todo | [] | gphoto2 | [] [] | gprof | | gpsdrive | () () () | gramadoir | () | grep | [] [] [] [] | gretl | | gsasl | [] | gss | | gst-plugins | [] | gst-plugins-base | | gst-plugins-good | [] | gstreamer | [] | gtick | | gtkam | [] | gtkorphan | [] | gtkspell | [] [] | gutenprint | | hello | [] [] [] [] [] [] | id-utils | [] | impost | | indent | [] [] | iso_3166 | [] | iso_3166_2 | [] | iso_4217 | [] [] [] | iso_639 | [] [] | jpilot | () () () | jtag | | jwhois | [] | kbd | [] | keytouch | [] | keytouch-editor | | keytouch-keyboa... | | latrine | [] | ld | | leafpad | [] [] | libc | [] [] [] [] [] | libexif | | libextractor | | libgpewidget | [] | libgpg-error | | libgphoto2 | [] | libgphoto2_port | [] | libgsasl | [] | libiconv | | libidn | [] [] | lifelines | [] | lilypond | | lingoteach | [] | lynx | [] [] | m4 | [] [] | mailutils | | make | [] [] [] | man-db | () | minicom | [] | mysecretdiary | [] | nano | [] [] [] | nano_1_0 | [] [] [] | opcodes | [] | parted | [] [] | pilot-qof | | psmisc | [] [] [] | pwdutils | | python | | qof | | radius | | recode | [] | rpm | [] [] | screem | [] | scrollkeeper | [] [] [] [] | sed | [] [] | sh-utils | [] [] | shared-mime-info | [] [] [] [] [] | sharutils | [] [] | shishi | | silky | [] | skencil | | sketch | | solfege | | soundtracker | | sp | () | stardict | [] [] | system-tools-ba... | [] [] [] [] | tar | [] [] [] | texinfo | [] [] [] | textutils | [] [] [] | tin | | tp-robot | [] | tuxpaint | [] | unicode-han-tra... | | unicode-transla... | | util-linux | [] [] | vorbis-tools | [] | wastesedge | [] | wdiff | [] [] | wget | [] [] | xchat | [] [] [] [] | xkeyboard-config | [] | xpad | [] [] [] | +-------------------------------------------------+ ja ko ku ky lg lt lv mk mn ms mt nb ne nl nn no 52 24 2 2 1 3 0 2 3 21 0 15 1 97 5 1 nso or pa pl pt pt_BR rm ro ru rw sk sl sq sr sv ta +------------------------------------------------------+ GNUnet | | a2ps | () [] [] [] [] [] [] | aegis | () () | ant-phone | [] [] | anubis | [] [] [] | ap-utils | () | aspell | [] [] | bash | [] [] [] | batchelor | [] [] | bfd | | bibshelf | [] | binutils | [] [] | bison | [] [] [] [] [] | bison-runtime | [] [] [] [] | bluez-pin | [] [] [] [] [] [] [] [] [] | cflow | [] | clisp | [] | console-tools | [] | coreutils | [] [] [] [] | cpio | [] [] [] | cpplib | [] | cryptonit | [] [] | darkstat | [] [] [] [] [] [] | dialog | [] [] [] [] [] [] [] [] [] | diffutils | [] [] [] [] [] [] | doodle | [] [] | e2fsprogs | [] [] | enscript | [] [] [] [] [] | error | [] [] [] [] | fetchmail | [] [] [] | fileutils | [] [] [] [] [] | findutils | [] [] [] [] [] [] | flex | [] [] [] [] [] | fslint | [] [] [] [] | gas | | gawk | [] [] [] [] | gbiff | [] | gcal | [] | gcc | [] | gettext-examples | [] [] [] [] [] [] [] [] | gettext-runtime | [] [] [] [] [] [] [] [] | gettext-tools | [] [] [] [] [] [] [] | gimp-print | [] [] | gip | [] [] [] [] | gliv | [] [] [] [] | glunarclock | [] [] [] [] [] [] | gmult | [] [] [] [] | gnubiff | () | gnucash | () [] | gnucash-glossary | [] [] [] | gnuedu | | gnulib | [] [] [] [] [] | gnunet-gtk | [] | gnutls | [] [] | gpe-aerial | [] [] [] [] [] [] [] | gpe-beam | [] [] [] [] [] [] [] | gpe-calendar | [] | gpe-clock | [] [] [] [] [] [] [] [] | gpe-conf | [] [] [] [] [] [] [] | gpe-contacts | [] [] [] [] [] | gpe-edit | [] [] [] [] [] [] [] [] | gpe-filemanager | [] [] | gpe-go | [] [] [] [] [] [] | gpe-login | [] [] [] [] [] [] [] [] | gpe-ownerinfo | [] [] [] [] [] [] [] [] | gpe-package | [] [] | gpe-sketchbook | [] [] [] [] [] [] [] [] | gpe-su | [] [] [] [] [] [] [] [] | gpe-taskmanager | [] [] [] [] [] [] [] [] | gpe-timesheet | [] [] [] [] [] [] [] [] | gpe-today | [] [] [] [] [] [] [] [] | gpe-todo | [] [] [] [] | gphoto2 | [] [] [] [] [] | gprof | [] [] [] | gpsdrive | [] [] [] | gramadoir | [] [] | grep | [] [] [] [] [] [] [] [] | gretl | [] | gsasl | [] [] [] | gss | [] [] [] | gst-plugins | [] [] [] [] | gst-plugins-base | [] | gst-plugins-good | [] [] [] [] | gstreamer | [] [] [] | gtick | [] | gtkam | [] [] [] [] | gtkorphan | [] | gtkspell | [] [] [] [] [] [] [] [] | gutenprint | [] | hello | [] [] [] [] [] [] [] [] | id-utils | [] [] [] [] | impost | [] | indent | [] [] [] [] [] [] | iso_3166 | [] [] [] [] [] [] | iso_3166_2 | | iso_4217 | [] [] [] [] | iso_639 | [] [] [] [] | jpilot | | jtag | [] | jwhois | [] [] [] [] | kbd | [] [] [] | keytouch | [] | keytouch-editor | [] | keytouch-keyboa... | [] | latrine | [] [] | ld | [] | leafpad | [] [] [] [] [] [] | libc | [] [] [] [] [] | libexif | [] | libextractor | [] [] | libgpewidget | [] [] [] [] [] [] [] | libgpg-error | [] [] | libgphoto2 | [] | libgphoto2_port | [] [] [] | libgsasl | [] [] [] [] | libiconv | [] [] | libidn | [] [] () | lifelines | [] [] | lilypond | | lingoteach | [] | lynx | [] [] [] | m4 | [] [] [] [] [] | mailutils | [] [] [] [] | make | [] [] [] [] | man-db | [] [] | minicom | [] [] [] [] [] | mysecretdiary | [] [] [] [] | nano | [] [] [] | nano_1_0 | [] [] [] [] | opcodes | [] [] | parted | [] | pilot-qof | [] | psmisc | [] [] | pwdutils | [] [] | python | | qof | [] [] | radius | [] [] | recode | [] [] [] [] [] [] [] | rpm | [] [] [] [] | screem | | scrollkeeper | [] [] [] [] [] [] [] | sed | [] [] [] [] [] [] [] [] [] | sh-utils | [] [] [] | shared-mime-info | [] [] [] [] [] | sharutils | [] [] [] [] | shishi | [] | silky | [] | skencil | [] [] [] | sketch | [] [] [] | solfege | [] | soundtracker | [] [] | sp | | stardict | [] [] [] | system-tools-ba... | [] [] [] [] [] [] [] [] [] | tar | [] [] [] [] [] | texinfo | [] [] [] [] | textutils | [] [] [] | tin | () | tp-robot | [] | tuxpaint | [] [] [] [] [] | unicode-han-tra... | | unicode-transla... | | util-linux | [] [] [] [] | vorbis-tools | [] [] | wastesedge | | wdiff | [] [] [] [] [] [] | wget | [] [] [] [] | xchat | [] [] [] [] [] [] [] | xkeyboard-config | [] [] | xpad | [] [] [] | +------------------------------------------------------+ nso or pa pl pt pt_BR rm ro ru rw sk sl sq sr sv ta 0 2 3 58 30 54 5 73 72 4 40 46 11 50 128 2 tg th tk tr uk ven vi wa xh zh_CN zh_HK zh_TW zu +---------------------------------------------------+ GNUnet | [] | 2 a2ps | [] [] [] | 19 aegis | | 0 ant-phone | [] [] | 6 anubis | [] [] [] | 11 ap-utils | () [] | 4 aspell | [] [] [] | 15 bash | [] | 11 batchelor | [] [] | 9 bfd | | 1 bibshelf | [] | 7 binutils | [] [] [] | 9 bison | [] [] [] | 19 bison-runtime | [] [] [] | 15 bluez-pin | [] [] [] [] [] [] | 28 cflow | [] [] | 5 clisp | | 6 console-tools | [] [] | 5 coreutils | [] [] | 16 cpio | [] [] [] | 9 cpplib | [] [] [] [] | 11 cryptonit | | 5 darkstat | [] () () | 15 dialog | [] [] [] [] [] | 30 diffutils | [] [] [] [] | 28 doodle | [] | 6 e2fsprogs | [] [] | 10 enscript | [] [] [] | 16 error | [] [] [] [] | 18 fetchmail | [] [] | 12 fileutils | [] [] [] | 18 findutils | [] [] [] | 17 flex | [] [] | 15 fslint | [] | 9 gas | [] | 3 gawk | [] [] | 15 gbiff | [] | 5 gcal | [] | 5 gcc | [] [] [] | 6 gettext-examples | [] [] [] [] [] [] | 27 gettext-runtime | [] [] [] [] [] [] | 28 gettext-tools | [] [] [] [] [] | 19 gimp-print | [] [] | 12 gip | [] [] | 12 gliv | [] [] | 8 glunarclock | [] [] [] | 15 gmult | [] [] [] [] | 15 gnubiff | [] | 1 gnucash | () | 2 gnucash-glossary | [] [] | 9 gnuedu | [] | 2 gnulib | [] [] [] [] [] | 28 gnunet-gtk | | 1 gnutls | | 2 gpe-aerial | [] [] | 14 gpe-beam | [] [] | 14 gpe-calendar | [] | 3 gpe-clock | [] [] [] [] | 21 gpe-conf | [] [] | 14 gpe-contacts | [] [] | 10 gpe-edit | [] [] [] [] | 20 gpe-filemanager | [] | 6 gpe-go | [] [] | 15 gpe-login | [] [] [] [] [] | 21 gpe-ownerinfo | [] [] [] [] | 21 gpe-package | [] | 6 gpe-sketchbook | [] [] | 16 gpe-su | [] [] [] | 20 gpe-taskmanager | [] [] [] | 20 gpe-timesheet | [] [] [] [] | 18 gpe-today | [] [] [] [] [] | 21 gpe-todo | [] | 7 gphoto2 | [] [] [] [] | 20 gprof | [] [] | 11 gpsdrive | | 4 gramadoir | [] | 7 grep | [] [] [] [] | 34 gretl | | 4 gsasl | [] [] | 8 gss | [] | 5 gst-plugins | [] [] [] | 15 gst-plugins-base | [] [] [] | 9 gst-plugins-good | [] [] [] [] [] | 20 gstreamer | [] [] [] | 17 gtick | [] | 3 gtkam | [] | 13 gtkorphan | [] | 7 gtkspell | [] [] [] [] [] [] | 26 gutenprint | | 3 hello | [] [] [] [] [] | 37 id-utils | [] [] | 14 impost | [] | 4 indent | [] [] [] [] | 25 iso_3166 | [] [] [] [] | 16 iso_3166_2 | | 2 iso_4217 | [] [] | 14 iso_639 | [] | 14 jpilot | [] [] [] [] | 7 jtag | [] | 3 jwhois | [] [] [] | 13 kbd | [] [] | 12 keytouch | [] | 4 keytouch-editor | | 2 keytouch-keyboa... | [] | 3 latrine | [] [] | 8 ld | [] [] [] [] | 8 leafpad | [] [] [] [] | 23 libc | [] [] [] | 23 libexif | [] | 4 libextractor | [] | 5 libgpewidget | [] [] [] | 19 libgpg-error | [] | 4 libgphoto2 | [] | 8 libgphoto2_port | [] [] [] | 11 libgsasl | [] | 8 libiconv | [] | 7 libidn | [] [] | 10 lifelines | | 4 lilypond | | 2 lingoteach | [] | 6 lynx | [] [] [] | 15 m4 | [] [] [] | 18 mailutils | [] | 8 make | [] [] [] | 20 man-db | [] | 6 minicom | [] | 14 mysecretdiary | [] [] | 12 nano | [] [] | 17 nano_1_0 | [] [] [] | 18 opcodes | [] [] | 10 parted | [] [] [] | 10 pilot-qof | [] | 3 psmisc | [] | 10 pwdutils | [] | 3 python | | 0 qof | [] | 4 radius | [] | 6 recode | [] [] [] | 25 rpm | [] [] [] [] | 14 screem | [] | 2 scrollkeeper | [] [] [] [] | 26 sed | [] [] [] | 22 sh-utils | [] | 15 shared-mime-info | [] [] [] [] | 24 sharutils | [] [] [] | 23 shishi | | 1 silky | [] | 4 skencil | [] | 7 sketch | | 6 solfege | | 2 soundtracker | [] [] | 9 sp | [] | 3 stardict | [] [] [] [] | 11 system-tools-ba... | [] [] [] [] [] [] [] | 37 tar | [] [] [] [] | 20 texinfo | [] [] [] | 15 textutils | [] [] [] | 17 tin | | 1 tp-robot | [] [] [] | 10 tuxpaint | [] [] [] | 16 unicode-han-tra... | | 0 unicode-transla... | | 2 util-linux | [] [] [] | 20 vorbis-tools | [] [] | 11 wastesedge | | 1 wdiff | [] [] | 22 wget | [] [] [] | 19 xchat | [] [] [] [] | 29 xkeyboard-config | [] [] [] [] | 11 xpad | [] [] [] | 14 +---------------------------------------------------+ 77 teams tg th tk tr uk ven vi wa xh zh_CN zh_HK zh_TW zu 170 domains 0 1 1 77 39 0 136 10 1 48 5 54 0 2028 Some counters in the preceding matrix are higher than the number of visible blocks let us expect. This is because a few extra PO files are used for implementing regional variants of languages, or language dialects. For a PO file in the matrix above to be effective, the package to which it applies should also have been internationalized and distributed as such by its maintainer. There might be an observable lag between the mere existence a PO file and its wide availability in a distribution. If October 2006 seems to be old, you may fetch a more recent copy of this `ABOUT-NLS' file on most GNU archive sites. The most up-to-date matrix with full percentage details can be found at `http://www.iro.umontreal.ca/contrib/po/HTML/matrix.html'. 1.6 Using `gettext' in new packages =================================== If you are writing a freely available program and want to internationalize it you are welcome to use GNU `gettext' in your package. Of course you have to respect the GNU Library General Public License which covers the use of the GNU `gettext' library. This means in particular that even non-free programs can use `libintl' as a shared library, whereas only free software can use `libintl' as a static library or use modified versions of `libintl'. Once the sources are changed appropriately and the setup can handle the use of `gettext' the only thing missing are the translations. The Free Translation Project is also available for packages which are not developed inside the GNU project. Therefore the information given above applies also for every other Free Software Project. Contact `translation@iro.umontreal.ca' to make the `.pot' files available to the translation teams. libextractor-1.3/README0000644000175000017500000000441712022230713011656 00000000000000About ===== GNU libextractor is a library used to extract meta data from files of arbitrary type. It is designed to use helper-libraries to perform the actual extraction, and to be trivially extendable by linking against external extractors for additional file types. Common use-cases for GNU libextractor include detail-views in file managers, detailed search results in file-sharing networks and general information gathering in forensics investigations and penetration testing. GNU libextractor is a simple C library with a small API. Bindings for GNU libextractor exists for many languages in addition to the standard C/C++ API (we know about bindings for Java, Perl, PHP, Mono, Python, Ruby). libextractor uses a plugin mechanism to enable developers to quickly add extractors for additional formats. Plugins are executed out-of-process and can thus bugs in them (or the libraries that they use) cannot crash the main application. libextractor typically ships with a few dozen plugins that can be used to obtain keywords from common file types. More detailed documentation is available in the GNU libextractor manual. libextractor is an official GNU package and available from http://www.gnu.org/s/libextractor/. extract ======= extract is a simple command-line interface to GNU libextractor. Dependencies ============ * GNU C/C++ compiler * libltdl 2.2.x (from GNU libtool) * GNU libtool 2.2 or higher * GNU gettext The following dependencies are all optional, but should be available in order for maximum coverage: * libarchive * libavutil / libavformat / libavcodec / libswscale (ffmpeg) * libbz2 (bzip2) * libexiv2 * libflac * libgif (giflib) * libglib (glib) * libgtk+ * libgsf * libgstreamer * libjpeg (v8 or later) * libmagic (file) * libmpeg2 * libmp4v2 * librpm * libsmf * libtidy * libtiff * libvorbis / libogg * libz (zlib) When building libextractor binaries, please make sure all of these dependencies are available and configure detects a sufficiently recent installation. Otherwise the build system may automatically build only a subset of GNU libextractor resulting in mediocre meta data production. Finally, 'zzuf' is a fuzzing tool that can optionally be detected by the build system and be used for debugging / testing. It is not required at runtime or for normal builds. libextractor-1.3/po/0000755000175000017500000000000012256015537011504 500000000000000libextractor-1.3/po/Rules-quot0000644000175000017500000000337611260753602013434 00000000000000# Special Makefile rules for English message catalogs with quotation marks. DISTFILES.common.extra1 = quot.sed boldquot.sed en@quot.header en@boldquot.header insert-header.sin Rules-quot .SUFFIXES: .insert-header .po-update-en en@quot.po-create: $(MAKE) en@quot.po-update en@boldquot.po-create: $(MAKE) en@boldquot.po-update en@quot.po-update: en@quot.po-update-en en@boldquot.po-update: en@boldquot.po-update-en .insert-header.po-update-en: @lang=`echo $@ | sed -e 's/\.po-update-en$$//'`; \ if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; GETTEXTLIBDIR=`cd $(top_srcdir)/src && pwd`; export GETTEXTLIBDIR; fi; \ tmpdir=`pwd`; \ echo "$$lang:"; \ ll=`echo $$lang | sed -e 's/@.*//'`; \ LC_ALL=C; export LC_ALL; \ cd $(srcdir); \ if $(MSGINIT) -i $(DOMAIN).pot --no-translator -l $$ll -o - 2>/dev/null | sed -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | $(MSGFILTER) sed -f `echo $$lang | sed -e 's/.*@//'`.sed 2>/dev/null > $$tmpdir/$$lang.new.po; then \ if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ rm -f $$tmpdir/$$lang.new.po; \ else \ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ :; \ else \ echo "creation of $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ exit 1; \ fi; \ fi; \ else \ echo "creation of $$lang.po failed!" 1>&2; \ rm -f $$tmpdir/$$lang.new.po; \ fi en@quot.insert-header: insert-header.sin sed -e '/^#/d' -e 's/HEADER/en@quot.header/g' $(srcdir)/insert-header.sin > en@quot.insert-header en@boldquot.insert-header: insert-header.sin sed -e '/^#/d' -e 's/HEADER/en@boldquot.header/g' $(srcdir)/insert-header.sin > en@boldquot.insert-header mostlyclean: mostlyclean-quot mostlyclean-quot: rm -f *.insert-header libextractor-1.3/po/ChangeLog0000644000175000017500000000052411260753602013173 000000000000002008-05-21 gettextize * Makefile.in.in: Upgrade to gettext-0.16.1. * Rules-quot: New file, from gettext-0.16.1. * boldquot.sed: New file, from gettext-0.16.1. * en@boldquot.header: New file, from gettext-0.16.1. * en@quot.header: New file, from gettext-0.16.1. * quot.sed: New file, from gettext-0.16.1. libextractor-1.3/po/Makefile.in.in0000644000175000017500000003322111260753602014073 00000000000000# Makefile for PO directory in any package using GNU gettext. # Copyright (C) 1995-1997, 2000-2006 by Ulrich Drepper # # This file can be copied and used freely without restrictions. It can # be used in projects which are not available under the GNU General Public # License but which still want to provide support for the GNU gettext # functionality. # Please note that the actual code of GNU gettext is covered by the GNU # General Public License and is *not* in the public domain. # # Origin: gettext-0.16 PACKAGE = @PACKAGE@ VERSION = @VERSION@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ SHELL = /bin/sh @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ datarootdir = @datarootdir@ datadir = @datadir@ localedir = @localedir@ gettextsrcdir = $(datadir)/gettext/po INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ # We use $(mkdir_p). # In automake <= 1.9.x, $(mkdir_p) is defined either as "mkdir -p --" or as # "$(mkinstalldirs)" or as "$(install_sh) -d". For these automake versions, # @install_sh@ does not start with $(SHELL), so we add it. # In automake >= 1.10, @mkdir_p@ is derived from ${MKDIR_P}, which is defined # either as "/path/to/mkdir -p" or ".../install-sh -c -d". For these automake # versions, $(mkinstalldirs) and $(install_sh) are unused. mkinstalldirs = $(SHELL) @install_sh@ -d install_sh = $(SHELL) @install_sh@ MKDIR_P = @MKDIR_P@ mkdir_p = @mkdir_p@ GMSGFMT_ = @GMSGFMT@ GMSGFMT_no = @GMSGFMT@ GMSGFMT_yes = @GMSGFMT_015@ GMSGFMT = $(GMSGFMT_$(USE_MSGCTXT)) MSGFMT_ = @MSGFMT@ MSGFMT_no = @MSGFMT@ MSGFMT_yes = @MSGFMT_015@ MSGFMT = $(MSGFMT_$(USE_MSGCTXT)) XGETTEXT_ = @XGETTEXT@ XGETTEXT_no = @XGETTEXT@ XGETTEXT_yes = @XGETTEXT_015@ XGETTEXT = $(XGETTEXT_$(USE_MSGCTXT)) MSGMERGE = msgmerge MSGMERGE_UPDATE = @MSGMERGE@ --update MSGINIT = msginit MSGCONV = msgconv MSGFILTER = msgfilter POFILES = @POFILES@ GMOFILES = @GMOFILES@ UPDATEPOFILES = @UPDATEPOFILES@ DUMMYPOFILES = @DUMMYPOFILES@ DISTFILES.common = Makefile.in.in remove-potcdate.sin \ $(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3) DISTFILES = $(DISTFILES.common) Makevars POTFILES.in \ $(POFILES) $(GMOFILES) \ $(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3) POTFILES = \ CATALOGS = @CATALOGS@ # Makevars gets inserted here. (Don't remove this line!) .SUFFIXES: .SUFFIXES: .po .gmo .mo .sed .sin .nop .po-create .po-update .po.mo: @echo "$(MSGFMT) -c -o $@ $<"; \ $(MSGFMT) -c -o t-$@ $< && mv t-$@ $@ .po.gmo: @lang=`echo $* | sed -e 's,.*/,,'`; \ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o $${lang}.gmo $${lang}.po"; \ cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo .sin.sed: sed -e '/^#/d' $< > t-$@ mv t-$@ $@ all: all-@USE_NLS@ all-yes: stamp-po all-no: # $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no # internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because # we don't want to bother translators with empty POT files). We assume that # LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty. # In this case, stamp-po is a nop (i.e. a phony target). # stamp-po is a timestamp denoting the last time at which the CATALOGS have # been loosely updated. Its purpose is that when a developer or translator # checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS, # "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent # invocations of "make" will do nothing. This timestamp would not be necessary # if updating the $(CATALOGS) would always touch them; however, the rule for # $(POFILES) has been designed to not touch files that don't need to be # changed. stamp-po: $(srcdir)/$(DOMAIN).pot test ! -f $(srcdir)/$(DOMAIN).pot || \ test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES) @test ! -f $(srcdir)/$(DOMAIN).pot || { \ echo "touch stamp-po" && \ echo timestamp > stamp-poT && \ mv stamp-poT stamp-po; \ } # Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', # otherwise packages like GCC can not be built if only parts of the source # have been downloaded. # This target rebuilds $(DOMAIN).pot; it is an expensive operation. # Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. $(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed if test -n '$(MSGID_BUGS_ADDRESS)' || test '$(PACKAGE_BUGREPORT)' = '@'PACKAGE_BUGREPORT'@'; then \ msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ else \ msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \ fi; \ $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \ --files-from=$(srcdir)/POTFILES.in \ --copyright-holder='$(COPYRIGHT_HOLDER)' \ --msgid-bugs-address="$$msgid_bugs_address" test ! -f $(DOMAIN).po || { \ if test -f $(srcdir)/$(DOMAIN).pot; then \ sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ else \ rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ fi; \ else \ mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ fi; \ } # This rule has no dependencies: we don't need to update $(DOMAIN).pot at # every "make" invocation, only create it when it is missing. # Only "make $(DOMAIN).pot-update" or "make dist" will force an update. $(srcdir)/$(DOMAIN).pot: $(MAKE) $(DOMAIN).pot-update # This target rebuilds a PO file if $(DOMAIN).pot has changed. # Note that a PO file is not touched if it doesn't need to be changed. $(POFILES): $(srcdir)/$(DOMAIN).pot @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ if test -f "$(srcdir)/$${lang}.po"; then \ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \ cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot; \ else \ $(MAKE) $${lang}.po-create; \ fi install: install-exec install-data install-exec: install-data: install-data-@USE_NLS@ if test "$(PACKAGE)" = "gettext-tools"; then \ $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ for file in $(DISTFILES.common) Makevars.template; do \ $(INSTALL_DATA) $(srcdir)/$$file \ $(DESTDIR)$(gettextsrcdir)/$$file; \ done; \ for file in Makevars; do \ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ done; \ else \ : ; \ fi install-data-no: all install-data-yes: all $(mkdir_p) $(DESTDIR)$(datadir) @catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ dir=$(localedir)/$$lang/LC_MESSAGES; \ $(mkdir_p) $(DESTDIR)$$dir; \ if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \ echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \ for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ if test -n "$$lc"; then \ if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ for file in *; do \ if test -f $$file; then \ ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ fi; \ done); \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ else \ if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ :; \ else \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ fi; \ fi; \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \ fi; \ done; \ done install-strip: install installdirs: installdirs-exec installdirs-data installdirs-exec: installdirs-data: installdirs-data-@USE_NLS@ if test "$(PACKAGE)" = "gettext-tools"; then \ $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ else \ : ; \ fi installdirs-data-no: installdirs-data-yes: $(mkdir_p) $(DESTDIR)$(datadir) @catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ dir=$(localedir)/$$lang/LC_MESSAGES; \ $(mkdir_p) $(DESTDIR)$$dir; \ for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ if test -n "$$lc"; then \ if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ for file in *; do \ if test -f $$file; then \ ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ fi; \ done); \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ else \ if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ :; \ else \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ fi; \ fi; \ fi; \ done; \ done # Define this as empty until I found a useful application. installcheck: uninstall: uninstall-exec uninstall-data uninstall-exec: uninstall-data: uninstall-data-@USE_NLS@ if test "$(PACKAGE)" = "gettext-tools"; then \ for file in $(DISTFILES.common) Makevars.template; do \ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ done; \ else \ : ; \ fi uninstall-data-no: uninstall-data-yes: catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ done; \ done check: all info dvi ps pdf html tags TAGS ctags CTAGS ID: mostlyclean: rm -f remove-potcdate.sed rm -f stamp-poT rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po rm -fr *.o clean: mostlyclean distclean: clean rm -f Makefile Makefile.in POTFILES *.mo maintainer-clean: distclean @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." rm -f stamp-po $(GMOFILES) distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) dist distdir: $(MAKE) update-po @$(MAKE) dist2 # This is a separate target because 'update-po' must be executed before. dist2: stamp-po $(DISTFILES) dists="$(DISTFILES)"; \ if test "$(PACKAGE)" = "gettext-tools"; then \ dists="$$dists Makevars.template"; \ fi; \ if test -f $(srcdir)/$(DOMAIN).pot; then \ dists="$$dists $(DOMAIN).pot stamp-po"; \ fi; \ if test -f $(srcdir)/ChangeLog; then \ dists="$$dists ChangeLog"; \ fi; \ for i in 0 1 2 3 4 5 6 7 8 9; do \ if test -f $(srcdir)/ChangeLog.$$i; then \ dists="$$dists ChangeLog.$$i"; \ fi; \ done; \ if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \ for file in $$dists; do \ if test -f $$file; then \ cp -p $$file $(distdir) || exit 1; \ else \ cp -p $(srcdir)/$$file $(distdir) || exit 1; \ fi; \ done update-po: Makefile $(MAKE) $(DOMAIN).pot-update test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) $(MAKE) update-gmo # General rule for creating PO files. .nop.po-create: @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ exit 1 # General rule for updating PO files. .nop.po-update: @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; fi; \ tmpdir=`pwd`; \ echo "$$lang:"; \ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ echo "$${cdcmd}$(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ cd $(srcdir); \ if $(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$tmpdir/$$lang.new.po; then \ if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ rm -f $$tmpdir/$$lang.new.po; \ else \ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ :; \ else \ echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ exit 1; \ fi; \ fi; \ else \ echo "msgmerge for $$lang.po failed!" 1>&2; \ rm -f $$tmpdir/$$lang.new.po; \ fi $(DUMMYPOFILES): update-gmo: Makefile $(GMOFILES) @: Makefile: Makefile.in.in Makevars $(top_builddir)/config.status @POMAKEFILEDEPS@ cd $(top_builddir) \ && $(SHELL) ./config.status $(subdir)/$@.in po-directories force: # Tell versions [3.59,3.63) of GNU make not to export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libextractor-1.3/po/en@quot.header0000644000175000017500000000226311260753602014210 00000000000000# All this catalog "translates" are quotation characters. # The msgids must be ASCII and therefore cannot contain real quotation # characters, only substitutes like grave accent (0x60), apostrophe (0x27) # and double quote (0x22). These substitutes look strange; see # http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html # # This catalog translates grave accent (0x60) and apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019). # It also translates pairs of apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019) # and pairs of quotation mark (0x22) to # left double quotation mark (U+201C) and right double quotation mark (U+201D). # # When output to an UTF-8 terminal, the quotation characters appear perfectly. # When output to an ISO-8859-1 terminal, the single quotation marks are # transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to # grave/acute accent (by libiconv), and the double quotation marks are # transliterated to 0x22. # When output to an ASCII terminal, the single quotation marks are # transliterated to apostrophes, and the double quotation marks are # transliterated to 0x22. # libextractor-1.3/po/sv.po0000644000175000017500000016147312255661612012430 00000000000000# Swedish translation of libextractor # Copyright (C) 2006, 2007, 2008, 2009 Free Software Foundation, Inc. # This file is distributed under the same license as the libextractor package. # Daniel Nylander , 2006, 2007, 2008, 2009. # msgid "" msgstr "" "Project-Id-Version: libextractor 0.5.22\n" "Report-Msgid-Bugs-To: libextractor@gnu.org\n" "POT-Creation-Date: 2013-12-22 23:11+0100\n" "PO-Revision-Date: 2009-05-12 17:45+0100\n" "Last-Translator: Daniel Nylander \n" "Language-Team: Swedish \n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" #: src/main/extract.c:132 #, c-format msgid "" "Usage: %s\n" "%s\n" "\n" msgstr "" "Användning: %s\n" "%s\n" "\n" #: src/main/extract.c:135 #, c-format msgid "" "Arguments mandatory for long options are also mandatory for short options.\n" msgstr "" "Argument som är obligatoriska för långa flaggor är också obligatoriska för " "korta flaggor.\n" #: src/main/extract.c:217 msgid "print output in bibtex format" msgstr "skriv ut i bibtex-format" #: src/main/extract.c:219 msgid "produce grep-friendly output (all results on one line per file)" msgstr "producera grep-vänligt utdata (alla resultat på en rad per fil)" #: src/main/extract.c:221 msgid "print this help" msgstr "skriv ut denna hjälp" #: src/main/extract.c:223 msgid "run plugins in-process (simplifies debugging)" msgstr "" #: src/main/extract.c:225 msgid "read data from file into memory and extract from memory" msgstr "" #: src/main/extract.c:227 msgid "load an extractor plugin named LIBRARY" msgstr "läser in instick för uppackning med namnet BIBLIOTEK" #: src/main/extract.c:229 msgid "list all keyword types" msgstr "lista alla typer av nyckelord" #: src/main/extract.c:231 msgid "do not use the default set of extractor plugins" msgstr "använd inte förvalda uppsättningen av uppackningsinstick" #: src/main/extract.c:233 msgid "print only keywords of the given TYPE (use -L to get a list)" msgstr "skriv endast ut nyckelord av angiven TYP (använd -L för lista)" #: src/main/extract.c:235 msgid "print the version number" msgstr "skriv ut versionsnummer" #: src/main/extract.c:237 msgid "be verbose" msgstr "var informativ" #: src/main/extract.c:239 msgid "do not print keywords of the given TYPE" msgstr "skriv inte ut nyckelord av angiven TYP" #: src/main/extract.c:242 msgid "extract [OPTIONS] [FILENAME]*" msgstr "extract [FLAGGOR] [FILNAMN]*" #: src/main/extract.c:243 msgid "Extract metadata from files." msgstr "Extrahera metadata från filer." #: src/main/extract.c:288 #, fuzzy, c-format msgid "Found by `%s' plugin:\n" msgstr "Inläsning av instick \"%s\" misslyckades: %s\n" #: src/main/extract.c:291 src/main/extract.c:378 #: src/main/extractor_metatypes.c:145 src/main/extractor_print.c:86 #: src/main/extractor_print.c:96 msgid "unknown" msgstr "okänd" #: src/main/extract.c:296 #, c-format msgid "%s - (unknown, %u bytes)\n" msgstr "" #: src/main/extract.c:325 #, fuzzy, c-format msgid "%s - (binary, %u bytes)\n" msgstr "%s - (binär)\n" #: src/main/extract.c:809 src/main/extract.c:821 msgid "" "Illegal combination of options, cannot combine multiple styles of printing.\n" msgstr "" #: src/main/extract.c:854 #, c-format msgid "You must specify an argument for the `%s' option (option ignored).\n" msgstr "Du måste ange ett argument för flaggan \"%s\" (flagga ignoreras).\n" #: src/main/extract.c:923 msgid "Use --help to get a list of options.\n" msgstr "Använd --help för att få en lista på flaggor.\n" #: src/main/extract.c:964 #, fuzzy msgid "% BiBTeX file\n" msgstr "%% BiBTeX-fil\n" #: src/main/extract.c:972 #, c-format msgid "Keywords for file %s:\n" msgstr "Nyckelord för filen %s:\n" #: src/main/extractor.c:676 #, c-format msgid "Initialization of plugin mechanism failed: %s!\n" msgstr "Initiering av insticksmekanism misslyckades: %s!\n" #: src/main/extractor_metatypes.c:46 msgid "reserved" msgstr "" #: src/main/extractor_metatypes.c:47 msgid "reserved value, do not use" msgstr "" #: src/main/extractor_metatypes.c:48 msgid "mimetype" msgstr "MIME-typ" #: src/main/extractor_metatypes.c:49 #, fuzzy msgid "mime type" msgstr "MIME-typ" #: src/main/extractor_metatypes.c:50 #, fuzzy msgid "embedded filename" msgstr "filnamn" #: src/main/extractor_metatypes.c:51 msgid "filename that was embedded (not necessarily the current filename)" msgstr "" #: src/main/extractor_metatypes.c:52 msgid "comment" msgstr "kommentar" #: src/main/extractor_metatypes.c:53 msgid "comment about the content" msgstr "" #: src/main/extractor_metatypes.c:54 msgid "title" msgstr "titel" #: src/main/extractor_metatypes.c:55 msgid "title of the work" msgstr "" #: src/main/extractor_metatypes.c:57 msgid "book title" msgstr "boktitel" #: src/main/extractor_metatypes.c:58 msgid "title of the book containing the work" msgstr "" #: src/main/extractor_metatypes.c:59 #, fuzzy msgid "book edition" msgstr "boktitel" #: src/main/extractor_metatypes.c:60 msgid "edition of the book (or book containing the work)" msgstr "" #: src/main/extractor_metatypes.c:61 #, fuzzy msgid "book chapter" msgstr "kapitel" #: src/main/extractor_metatypes.c:62 #, fuzzy msgid "chapter number" msgstr "spårnummer" #: src/main/extractor_metatypes.c:63 #, fuzzy msgid "journal name" msgstr "fullständigt namn" #: src/main/extractor_metatypes.c:64 msgid "journal or magazine the work was published in" msgstr "" #: src/main/extractor_metatypes.c:65 msgid "journal volume" msgstr "" #: src/main/extractor_metatypes.c:66 msgid "volume of a journal or multi-volume book" msgstr "" #: src/main/extractor_metatypes.c:68 #, fuzzy msgid "journal number" msgstr "spårnummer" #: src/main/extractor_metatypes.c:69 msgid "number of a journal, magazine or tech-report" msgstr "" #: src/main/extractor_metatypes.c:70 msgid "page count" msgstr "sidantal" #: src/main/extractor_metatypes.c:71 msgid "total number of pages of the work" msgstr "" #: src/main/extractor_metatypes.c:72 #, fuzzy msgid "page range" msgstr "sidordning" #: src/main/extractor_metatypes.c:73 msgid "page numbers of the publication in the respective journal or book" msgstr "" #: src/main/extractor_metatypes.c:74 #, fuzzy msgid "author name" msgstr "upphovsman" #: src/main/extractor_metatypes.c:75 msgid "name of the author(s)" msgstr "" #: src/main/extractor_metatypes.c:76 #, fuzzy msgid "author email" msgstr "upphovsman" #: src/main/extractor_metatypes.c:77 msgid "e-mail of the author(s)" msgstr "" #: src/main/extractor_metatypes.c:79 #, fuzzy msgid "author institution" msgstr "orientering" #: src/main/extractor_metatypes.c:80 msgid "institution the author worked for" msgstr "" #: src/main/extractor_metatypes.c:81 msgid "publisher" msgstr "publicerad av" #: src/main/extractor_metatypes.c:82 #, fuzzy msgid "name of the publisher" msgstr "publicerad av" #: src/main/extractor_metatypes.c:83 #, fuzzy msgid "publisher's address" msgstr "publicerad av" #: src/main/extractor_metatypes.c:84 msgid "Address of the publisher (often only the city)" msgstr "" #: src/main/extractor_metatypes.c:85 msgid "publishing institution" msgstr "" #: src/main/extractor_metatypes.c:86 msgid "" "institution that was involved in the publishing, but not necessarily the " "publisher" msgstr "" #: src/main/extractor_metatypes.c:87 #, fuzzy msgid "publication series" msgstr "publiceringsdatum" #: src/main/extractor_metatypes.c:88 msgid "series of books the book was published in" msgstr "" #: src/main/extractor_metatypes.c:90 #, fuzzy msgid "publication type" msgstr "publiceringsdatum" #: src/main/extractor_metatypes.c:91 msgid "type of the tech-report" msgstr "" #: src/main/extractor_metatypes.c:92 #, fuzzy msgid "publication year" msgstr "publiceringsdatum" #: src/main/extractor_metatypes.c:93 msgid "year of publication (or, if unpublished, the year of creation)" msgstr "" #: src/main/extractor_metatypes.c:94 #, fuzzy msgid "publication month" msgstr "publiceringsdatum" #: src/main/extractor_metatypes.c:95 msgid "month of publication (or, if unpublished, the month of creation)" msgstr "" #: src/main/extractor_metatypes.c:96 #, fuzzy msgid "publication day" msgstr "publiceringsdatum" #: src/main/extractor_metatypes.c:97 msgid "" "day of publication (or, if unpublished, the day of creation), relative to " "the given month" msgstr "" #: src/main/extractor_metatypes.c:98 msgid "publication date" msgstr "publiceringsdatum" #: src/main/extractor_metatypes.c:99 msgid "date of publication (or, if unpublished, the date of creation)" msgstr "" #: src/main/extractor_metatypes.c:101 msgid "bibtex eprint" msgstr "" #: src/main/extractor_metatypes.c:102 msgid "specification of an electronic publication" msgstr "" #: src/main/extractor_metatypes.c:103 #, fuzzy msgid "bibtex entry type" msgstr "innehållstyp" #: src/main/extractor_metatypes.c:104 msgid "type of the publication for bibTeX bibliographies" msgstr "" #: src/main/extractor_metatypes.c:105 msgid "language" msgstr "språk" #: src/main/extractor_metatypes.c:106 msgid "language the work uses" msgstr "" #: src/main/extractor_metatypes.c:107 #, fuzzy msgid "creation time" msgstr "skapad den" #: src/main/extractor_metatypes.c:108 msgid "time and date of creation" msgstr "" #: src/main/extractor_metatypes.c:109 msgid "URL" msgstr "" #: src/main/extractor_metatypes.c:110 msgid "universal resource location (where the work is made available)" msgstr "" #: src/main/extractor_metatypes.c:112 msgid "URI" msgstr "" #: src/main/extractor_metatypes.c:113 #, fuzzy msgid "universal resource identifier" msgstr "resursidentifierare" #: src/main/extractor_metatypes.c:114 msgid "international standard recording code" msgstr "internationell standardkod för inspelning" #: src/main/extractor_metatypes.c:115 msgid "ISRC number identifying the work" msgstr "" #: src/main/extractor_metatypes.c:116 msgid "MD4" msgstr "MD4" #: src/main/extractor_metatypes.c:117 msgid "MD4 hash" msgstr "" #: src/main/extractor_metatypes.c:118 msgid "MD5" msgstr "MD5" #: src/main/extractor_metatypes.c:119 msgid "MD5 hash" msgstr "" #: src/main/extractor_metatypes.c:120 msgid "SHA-0" msgstr "SHA-0" #: src/main/extractor_metatypes.c:121 #, fuzzy msgid "SHA-0 hash" msgstr "SHA-0" #: src/main/extractor_metatypes.c:123 msgid "SHA-1" msgstr "SHA-1" #: src/main/extractor_metatypes.c:124 #, fuzzy msgid "SHA-1 hash" msgstr "SHA-1" #: src/main/extractor_metatypes.c:125 msgid "RipeMD160" msgstr "RipeMD160" #: src/main/extractor_metatypes.c:126 #, fuzzy msgid "RipeMD150 hash" msgstr "RipeMD160" #: src/main/extractor_metatypes.c:127 src/main/extractor_metatypes.c:128 msgid "GPS latitude ref" msgstr "" #: src/main/extractor_metatypes.c:129 src/main/extractor_metatypes.c:130 msgid "GPS latitude" msgstr "" #: src/main/extractor_metatypes.c:131 src/main/extractor_metatypes.c:132 msgid "GPS longitude ref" msgstr "" #: src/main/extractor_metatypes.c:134 src/main/extractor_metatypes.c:135 msgid "GPS longitude" msgstr "" #: src/main/extractor_metatypes.c:136 msgid "city" msgstr "" #: src/main/extractor_metatypes.c:137 msgid "name of the city where the document originated" msgstr "" #: src/main/extractor_metatypes.c:138 #, fuzzy msgid "sublocation" msgstr "plats" #: src/main/extractor_metatypes.c:139 msgid "more specific location of the geographic origin" msgstr "" #: src/main/extractor_metatypes.c:140 #, fuzzy msgid "country" msgstr "Country" #: src/main/extractor_metatypes.c:141 msgid "name of the country where the document originated" msgstr "" #: src/main/extractor_metatypes.c:142 #, fuzzy msgid "country code" msgstr "Country" #: src/main/extractor_metatypes.c:143 msgid "ISO 2-letter country code for the country of origin" msgstr "" #: src/main/extractor_metatypes.c:146 msgid "specifics are not known" msgstr "" #: src/main/extractor_metatypes.c:147 src/main/extractor_metatypes.c:148 msgid "description" msgstr "beskrivning" #: src/main/extractor_metatypes.c:149 msgid "copyright" msgstr "copyright" #: src/main/extractor_metatypes.c:150 msgid "Name of the entity holding the copyright" msgstr "" #: src/main/extractor_metatypes.c:151 #, fuzzy msgid "rights" msgstr "copyright" #: src/main/extractor_metatypes.c:152 #, fuzzy msgid "information about rights" msgstr "information" #: src/main/extractor_metatypes.c:153 src/main/extractor_metatypes.c:154 msgid "keywords" msgstr "nyckelord" #: src/main/extractor_metatypes.c:156 src/main/extractor_metatypes.c:157 msgid "abstract" msgstr "" #: src/main/extractor_metatypes.c:158 src/main/extractor_metatypes.c:159 msgid "summary" msgstr "sammanfattning" #: src/main/extractor_metatypes.c:160 msgid "subject" msgstr "ämne" #: src/main/extractor_metatypes.c:161 #, fuzzy msgid "subject matter" msgstr "ämne" #: src/main/extractor_metatypes.c:162 src/main/extractor_metatypes.c:195 msgid "creator" msgstr "skapare" #: src/main/extractor_metatypes.c:163 msgid "name of the person who created the document" msgstr "" #: src/main/extractor_metatypes.c:164 msgid "format" msgstr "format" #: src/main/extractor_metatypes.c:165 msgid "name of the document format" msgstr "" #: src/main/extractor_metatypes.c:167 msgid "format version" msgstr "formatversion" #: src/main/extractor_metatypes.c:168 msgid "version of the document format" msgstr "" #: src/main/extractor_metatypes.c:169 msgid "created by software" msgstr "skapad med programvaran" #: src/main/extractor_metatypes.c:170 msgid "name of the software that created the document" msgstr "" #: src/main/extractor_metatypes.c:171 #, fuzzy msgid "unknown date" msgstr "okänd" #: src/main/extractor_metatypes.c:172 msgid "" "ambiguous date (could specify creation time, modification time or access " "time)" msgstr "" #: src/main/extractor_metatypes.c:173 msgid "creation date" msgstr "skapad den" #: src/main/extractor_metatypes.c:174 msgid "date the document was created" msgstr "" #: src/main/extractor_metatypes.c:175 msgid "modification date" msgstr "ändringsdatum" #: src/main/extractor_metatypes.c:176 msgid "date the document was modified" msgstr "" #: src/main/extractor_metatypes.c:178 msgid "last printed" msgstr "senast utskriven" #: src/main/extractor_metatypes.c:179 msgid "date the document was last printed" msgstr "" #: src/main/extractor_metatypes.c:180 msgid "last saved by" msgstr "senast sparad av" #: src/main/extractor_metatypes.c:181 msgid "name of the user who saved the document last" msgstr "" #: src/main/extractor_metatypes.c:182 msgid "total editing time" msgstr "total redigeringstid" #: src/main/extractor_metatypes.c:183 msgid "time spent editing the document" msgstr "" #: src/main/extractor_metatypes.c:184 msgid "editing cycles" msgstr "redigeringscykler" #: src/main/extractor_metatypes.c:185 #, fuzzy msgid "number of editing cycles" msgstr "redigeringscykler" #: src/main/extractor_metatypes.c:186 msgid "modified by software" msgstr "ändrad av programvaran" #: src/main/extractor_metatypes.c:187 msgid "name of software making modifications" msgstr "" #: src/main/extractor_metatypes.c:189 msgid "revision history" msgstr "revisionshistorik" #: src/main/extractor_metatypes.c:190 msgid "information about the revision history" msgstr "" #: src/main/extractor_metatypes.c:191 #, fuzzy msgid "embedded file size" msgstr "filstorlek" #: src/main/extractor_metatypes.c:192 msgid "size of the contents of the container as embedded in the file" msgstr "" #: src/main/extractor_metatypes.c:193 #, fuzzy msgid "file type" msgstr "MIME-typ" #: src/main/extractor_metatypes.c:194 msgid "standard Macintosh Finder file type information" msgstr "" #: src/main/extractor_metatypes.c:196 msgid "standard Macintosh Finder file creator information" msgstr "" #: src/main/extractor_metatypes.c:197 #, fuzzy msgid "package name" msgstr "paketerare" #: src/main/extractor_metatypes.c:198 msgid "unique identifier for the package" msgstr "" #: src/main/extractor_metatypes.c:200 #, fuzzy msgid "package version" msgstr "paketerare" #: src/main/extractor_metatypes.c:201 msgid "version of the software and its package" msgstr "" #: src/main/extractor_metatypes.c:202 #, fuzzy msgid "section" msgstr "beskrivning" #: src/main/extractor_metatypes.c:203 msgid "category the software package belongs to" msgstr "" #: src/main/extractor_metatypes.c:204 #, fuzzy msgid "upload priority" msgstr "prioritet" #: src/main/extractor_metatypes.c:205 msgid "priority for promoting the release to production" msgstr "" #: src/main/extractor_metatypes.c:206 #, fuzzy msgid "dependencies" msgstr "beroende av" #: src/main/extractor_metatypes.c:207 msgid "packages this package depends upon" msgstr "" #: src/main/extractor_metatypes.c:208 #, fuzzy msgid "conflicting packages" msgstr "konflikt med" #: src/main/extractor_metatypes.c:209 msgid "packages that cannot be installed with this package" msgstr "" #: src/main/extractor_metatypes.c:211 #, fuzzy msgid "replaced packages" msgstr "ersätter" #: src/main/extractor_metatypes.c:212 msgid "packages made obsolete by this package" msgstr "" #: src/main/extractor_metatypes.c:213 msgid "provides" msgstr "ger" #: src/main/extractor_metatypes.c:214 msgid "functionality provided by this package" msgstr "" #: src/main/extractor_metatypes.c:215 #, fuzzy msgid "recommendations" msgstr "kommentar" #: src/main/extractor_metatypes.c:216 msgid "packages recommended for installation in conjunction with this package" msgstr "" #: src/main/extractor_metatypes.c:217 msgid "suggestions" msgstr "" #: src/main/extractor_metatypes.c:218 msgid "packages suggested for installation in conjunction with this package" msgstr "" #: src/main/extractor_metatypes.c:219 msgid "maintainer" msgstr "" #: src/main/extractor_metatypes.c:220 msgid "name of the maintainer" msgstr "" #: src/main/extractor_metatypes.c:222 #, fuzzy msgid "installed size" msgstr "filstorlek" #: src/main/extractor_metatypes.c:223 msgid "space consumption after installation" msgstr "" #: src/main/extractor_metatypes.c:224 src/main/extractor_metatypes.c:304 msgid "source" msgstr "källa" #: src/main/extractor_metatypes.c:225 msgid "original source code" msgstr "" #: src/main/extractor_metatypes.c:226 msgid "is essential" msgstr "" #: src/main/extractor_metatypes.c:227 msgid "package is marked as essential" msgstr "" #: src/main/extractor_metatypes.c:228 msgid "target architecture" msgstr "" #: src/main/extractor_metatypes.c:229 msgid "hardware architecture the contents can be used for" msgstr "" #: src/main/extractor_metatypes.c:230 #, fuzzy msgid "pre-dependency" msgstr "beroende av" #: src/main/extractor_metatypes.c:231 msgid "dependency that must be satisfied before installation" msgstr "" #: src/main/extractor_metatypes.c:233 msgid "license" msgstr "licens" #: src/main/extractor_metatypes.c:234 msgid "applicable copyright license" msgstr "" #: src/main/extractor_metatypes.c:235 msgid "distribution" msgstr "distribution" #: src/main/extractor_metatypes.c:236 msgid "distribution the package is a part of" msgstr "" #: src/main/extractor_metatypes.c:237 #, fuzzy msgid "build host" msgstr "byggd på" #: src/main/extractor_metatypes.c:238 msgid "machine the package was build on" msgstr "" #: src/main/extractor_metatypes.c:239 msgid "vendor" msgstr "tillverkare" #: src/main/extractor_metatypes.c:240 msgid "name of the software vendor" msgstr "" #: src/main/extractor_metatypes.c:241 #, fuzzy msgid "target operating system" msgstr "operativsystem" #: src/main/extractor_metatypes.c:242 msgid "operating system for which this package was made" msgstr "" #: src/main/extractor_metatypes.c:244 #, fuzzy msgid "software version" msgstr "programvara" #: src/main/extractor_metatypes.c:245 msgid "version of the software contained in the file" msgstr "" #: src/main/extractor_metatypes.c:246 msgid "target platform" msgstr "" #: src/main/extractor_metatypes.c:247 msgid "" "name of the architecture, operating system and distribution this package is " "for" msgstr "" #: src/main/extractor_metatypes.c:248 #, fuzzy msgid "resource type" msgstr "resurstyp" #: src/main/extractor_metatypes.c:249 msgid "" "categorization of the nature of the resource that is more specific than the " "file format" msgstr "" #: src/main/extractor_metatypes.c:250 msgid "library search path" msgstr "" #: src/main/extractor_metatypes.c:251 msgid "" "path in the file system to be considered when looking for required libraries" msgstr "" #: src/main/extractor_metatypes.c:252 #, fuzzy msgid "library dependency" msgstr "hårdvaruberoende" #: src/main/extractor_metatypes.c:253 msgid "name of a library that this file depends on" msgstr "" #: src/main/extractor_metatypes.c:255 src/main/extractor_metatypes.c:256 msgid "camera make" msgstr "kameratillverkare" #: src/main/extractor_metatypes.c:257 src/main/extractor_metatypes.c:258 msgid "camera model" msgstr "kameramodell" #: src/main/extractor_metatypes.c:259 src/main/extractor_metatypes.c:260 msgid "exposure" msgstr "exponering" #: src/main/extractor_metatypes.c:261 src/main/extractor_metatypes.c:262 msgid "aperture" msgstr "bländare" # Kallas även för slutartid #: src/main/extractor_metatypes.c:263 src/main/extractor_metatypes.c:264 msgid "exposure bias" msgstr "exponeringskompensation" #: src/main/extractor_metatypes.c:266 src/main/extractor_metatypes.c:267 msgid "flash" msgstr "blixt" # Hjälp! Är detta rätt? #: src/main/extractor_metatypes.c:268 src/main/extractor_metatypes.c:269 msgid "flash bias" msgstr "blixttidskompensation" #: src/main/extractor_metatypes.c:270 src/main/extractor_metatypes.c:271 msgid "focal length" msgstr "brännvidd" #: src/main/extractor_metatypes.c:272 src/main/extractor_metatypes.c:273 #, fuzzy msgid "focal length 35mm" msgstr "brännvidd" #: src/main/extractor_metatypes.c:274 src/main/extractor_metatypes.c:275 msgid "iso speed" msgstr "ISO-hastighet" #: src/main/extractor_metatypes.c:277 src/main/extractor_metatypes.c:278 msgid "exposure mode" msgstr "exponeringsläge" #: src/main/extractor_metatypes.c:279 src/main/extractor_metatypes.c:280 msgid "metering mode" msgstr "mätarläge" #: src/main/extractor_metatypes.c:281 src/main/extractor_metatypes.c:282 msgid "macro mode" msgstr "makroläge" #: src/main/extractor_metatypes.c:283 src/main/extractor_metatypes.c:284 msgid "image quality" msgstr "bildkvalitet" #: src/main/extractor_metatypes.c:285 src/main/extractor_metatypes.c:286 msgid "white balance" msgstr "vitbalans" #: src/main/extractor_metatypes.c:288 src/main/extractor_metatypes.c:289 msgid "orientation" msgstr "orientering" #: src/main/extractor_metatypes.c:290 src/main/extractor_metatypes.c:291 msgid "magnification" msgstr "förstoring" #: src/main/extractor_metatypes.c:292 #, fuzzy msgid "image dimensions" msgstr "sidorientering" #: src/main/extractor_metatypes.c:293 msgid "size of the image in pixels (width times height)" msgstr "" #: src/main/extractor_metatypes.c:294 src/main/extractor_metatypes.c:295 #, fuzzy msgid "produced by software" msgstr "ändrad av programvaran" #: src/main/extractor_metatypes.c:299 #, fuzzy msgid "thumbnail" msgstr "miniatyrbilder" #: src/main/extractor_metatypes.c:300 msgid "smaller version of the image for previewing" msgstr "" #: src/main/extractor_metatypes.c:302 #, fuzzy msgid "image resolution" msgstr "upplösning" #: src/main/extractor_metatypes.c:303 #, fuzzy msgid "resolution in dots per inch" msgstr "%u×%u punkter per tum" #: src/main/extractor_metatypes.c:305 msgid "Originating entity" msgstr "" #: src/main/extractor_metatypes.c:306 msgid "character set" msgstr "teckenuppsättning" #: src/main/extractor_metatypes.c:307 #, fuzzy msgid "character encoding used" msgstr "teckenantal" #: src/main/extractor_metatypes.c:308 msgid "line count" msgstr "radantal" #: src/main/extractor_metatypes.c:309 msgid "number of lines" msgstr "" #: src/main/extractor_metatypes.c:310 msgid "paragraph count" msgstr "antal stycken" #: src/main/extractor_metatypes.c:311 msgid "number of paragraphs" msgstr "" #: src/main/extractor_metatypes.c:313 msgid "word count" msgstr "antal ord" #: src/main/extractor_metatypes.c:314 msgid "number of words" msgstr "" #: src/main/extractor_metatypes.c:315 msgid "character count" msgstr "teckenantal" #: src/main/extractor_metatypes.c:316 #, fuzzy msgid "number of characters" msgstr "teckenuppsättning" #: src/main/extractor_metatypes.c:317 src/main/extractor_metatypes.c:318 msgid "page orientation" msgstr "sidorientering" #: src/main/extractor_metatypes.c:319 src/main/extractor_metatypes.c:320 msgid "paper size" msgstr "pappersstorlek" #: src/main/extractor_metatypes.c:321 msgid "template" msgstr "mall" #: src/main/extractor_metatypes.c:322 msgid "template the document uses or is based on" msgstr "" #: src/main/extractor_metatypes.c:324 src/main/extractor_metatypes.c:325 msgid "company" msgstr "företag" #: src/main/extractor_metatypes.c:326 src/main/extractor_metatypes.c:327 msgid "manager" msgstr "ansvarig" #: src/main/extractor_metatypes.c:328 src/main/extractor_metatypes.c:329 #, fuzzy msgid "revision number" msgstr "skriv ut versionsnummer" # Detta rör sig om film och musik annars skulle det vara Varaktighet #: src/main/extractor_metatypes.c:330 msgid "duration" msgstr "speltid" #: src/main/extractor_metatypes.c:331 msgid "play time for the medium" msgstr "" #: src/main/extractor_metatypes.c:332 msgid "album" msgstr "album" #: src/main/extractor_metatypes.c:333 msgid "name of the album" msgstr "" #: src/main/extractor_metatypes.c:335 msgid "artist" msgstr "artist" #: src/main/extractor_metatypes.c:336 msgid "name of the artist or band" msgstr "" #: src/main/extractor_metatypes.c:337 src/main/extractor_metatypes.c:338 msgid "genre" msgstr "genre" #: src/main/extractor_metatypes.c:339 msgid "track number" msgstr "spårnummer" #: src/main/extractor_metatypes.c:340 msgid "original number of the track on the distribution medium" msgstr "" #: src/main/extractor_metatypes.c:341 #, fuzzy msgid "disk number" msgstr "skivnummer" #: src/main/extractor_metatypes.c:342 msgid "number of the disk in a multi-disk (or volume) distribution" msgstr "" #: src/main/extractor_metatypes.c:343 msgid "performer" msgstr "" #: src/main/extractor_metatypes.c:344 msgid "" "The artist(s) who performed the work (conductor, orchestra, soloists, actor, " "etc.)" msgstr "" #: src/main/extractor_metatypes.c:346 msgid "contact" msgstr "kontakt" #: src/main/extractor_metatypes.c:347 msgid "Contact information for the creator or distributor" msgstr "" #: src/main/extractor_metatypes.c:348 #, fuzzy msgid "song version" msgstr "version" #: src/main/extractor_metatypes.c:349 msgid "name of the version of the song (i.e. remix information)" msgstr "" #: src/main/extractor_metatypes.c:350 #, fuzzy msgid "picture" msgstr "bländare" #: src/main/extractor_metatypes.c:351 msgid "associated misc. picture" msgstr "" #: src/main/extractor_metatypes.c:352 msgid "cover picture" msgstr "" #: src/main/extractor_metatypes.c:353 msgid "picture of the cover of the distribution medium" msgstr "" #: src/main/extractor_metatypes.c:354 #, fuzzy msgid "contributor picture" msgstr "bidragsgivare" #: src/main/extractor_metatypes.c:355 msgid "picture of one of the contributors" msgstr "" #: src/main/extractor_metatypes.c:357 msgid "event picture" msgstr "" #: src/main/extractor_metatypes.c:358 msgid "picture of an associated event" msgstr "" #: src/main/extractor_metatypes.c:359 msgid "logo" msgstr "" #: src/main/extractor_metatypes.c:360 msgid "logo of an associated organization" msgstr "" #: src/main/extractor_metatypes.c:361 #, fuzzy msgid "broadcast television system" msgstr "tv-system" #: src/main/extractor_metatypes.c:362 msgid "name of the television system for which the data is coded" msgstr "" #: src/main/extractor_metatypes.c:363 #, fuzzy msgid "source device" msgstr "källa" #: src/main/extractor_metatypes.c:364 msgid "device used to create the object" msgstr "" #: src/main/extractor_metatypes.c:365 msgid "disclaimer" msgstr "disclaimer" #: src/main/extractor_metatypes.c:366 #, fuzzy msgid "legal disclaimer" msgstr "disclaimer" #: src/main/extractor_metatypes.c:368 msgid "warning" msgstr "varning" #: src/main/extractor_metatypes.c:369 msgid "warning about the nature of the content" msgstr "" #: src/main/extractor_metatypes.c:370 msgid "page order" msgstr "sidordning" #: src/main/extractor_metatypes.c:371 msgid "order of the pages" msgstr "" #: src/main/extractor_metatypes.c:372 msgid "writer" msgstr "" #: src/main/extractor_metatypes.c:373 #, fuzzy msgid "contributing writer" msgstr "bidragsgivare" #: src/main/extractor_metatypes.c:374 src/main/extractor_metatypes.c:375 msgid "product version" msgstr "produktversion" #: src/main/extractor_metatypes.c:376 msgid "contributor" msgstr "bidragsgivare" #: src/main/extractor_metatypes.c:377 #, fuzzy msgid "name of a contributor" msgstr "bidragsgivare" #: src/main/extractor_metatypes.c:379 #, fuzzy msgid "movie director" msgstr "regissör" #: src/main/extractor_metatypes.c:380 msgid "name of the director" msgstr "" #: src/main/extractor_metatypes.c:381 msgid "network" msgstr "" #: src/main/extractor_metatypes.c:382 msgid "name of the broadcasting network or station" msgstr "" #: src/main/extractor_metatypes.c:383 msgid "show" msgstr "" #: src/main/extractor_metatypes.c:384 msgid "name of the show" msgstr "" #: src/main/extractor_metatypes.c:385 #, fuzzy msgid "chapter name" msgstr "kapitel" #: src/main/extractor_metatypes.c:386 msgid "name of the chapter" msgstr "" #: src/main/extractor_metatypes.c:387 msgid "song count" msgstr "låtantal" #: src/main/extractor_metatypes.c:388 msgid "number of songs" msgstr "" #: src/main/extractor_metatypes.c:390 msgid "starting song" msgstr "startlåt" #: src/main/extractor_metatypes.c:391 msgid "number of the first song to play" msgstr "" #: src/main/extractor_metatypes.c:392 msgid "play counter" msgstr "antal spelningar" #: src/main/extractor_metatypes.c:393 msgid "number of times the media has been played" msgstr "" # Osäker! #: src/main/extractor_metatypes.c:394 msgid "conductor" msgstr "dirigent" # Osäker! #: src/main/extractor_metatypes.c:395 #, fuzzy msgid "name of the conductor" msgstr "dirigent" #: src/main/extractor_metatypes.c:396 #, fuzzy msgid "interpretation" msgstr "uttolkare" #: src/main/extractor_metatypes.c:397 msgid "" "information about the people behind interpretations of an existing piece" msgstr "" #: src/main/extractor_metatypes.c:398 msgid "composer" msgstr "" #: src/main/extractor_metatypes.c:399 msgid "name of the composer" msgstr "" #: src/main/extractor_metatypes.c:401 src/main/extractor_metatypes.c:402 msgid "beats per minute" msgstr "" #: src/main/extractor_metatypes.c:403 msgid "encoded by" msgstr "kodad av" #: src/main/extractor_metatypes.c:404 msgid "name of person or organization that encoded the file" msgstr "" #: src/main/extractor_metatypes.c:405 #, fuzzy msgid "original title" msgstr "original" #: src/main/extractor_metatypes.c:406 msgid "title of the original work" msgstr "" #: src/main/extractor_metatypes.c:407 #, fuzzy msgid "original artist" msgstr "original" #: src/main/extractor_metatypes.c:408 msgid "name of the original artist" msgstr "" #: src/main/extractor_metatypes.c:409 #, fuzzy msgid "original writer" msgstr "original" #: src/main/extractor_metatypes.c:410 msgid "name of the original lyricist or writer" msgstr "" #: src/main/extractor_metatypes.c:412 msgid "original release year" msgstr "" #: src/main/extractor_metatypes.c:413 msgid "year of the original release" msgstr "" #: src/main/extractor_metatypes.c:414 #, fuzzy msgid "original performer" msgstr "original" #: src/main/extractor_metatypes.c:415 msgid "name of the original performer" msgstr "" #: src/main/extractor_metatypes.c:416 msgid "lyrics" msgstr "texter" #: src/main/extractor_metatypes.c:417 msgid "lyrics of the song or text description of vocal activities" msgstr "" #: src/main/extractor_metatypes.c:418 #, fuzzy msgid "popularity" msgstr "popularitetsmätare" #: src/main/extractor_metatypes.c:419 msgid "information about the file's popularity" msgstr "" #: src/main/extractor_metatypes.c:420 #, fuzzy msgid "licensee" msgstr "licens" #: src/main/extractor_metatypes.c:421 msgid "name of the owner or licensee of the file" msgstr "" #: src/main/extractor_metatypes.c:423 #, fuzzy msgid "musician credit list" msgstr "lista över medverkande musiker" #: src/main/extractor_metatypes.c:424 msgid "names of contributing musicians" msgstr "" #: src/main/extractor_metatypes.c:425 msgid "mood" msgstr "sinnesstämning" #: src/main/extractor_metatypes.c:426 msgid "keywords reflecting the mood of the piece" msgstr "" #: src/main/extractor_metatypes.c:427 #, fuzzy msgid "subtitle" msgstr "titel" #: src/main/extractor_metatypes.c:428 msgid "subtitle of this part" msgstr "" #: src/main/extractor_metatypes.c:429 #, fuzzy msgid "display type" msgstr "mediatyp" #: src/main/extractor_metatypes.c:430 msgid "what rendering method should be used to display this item" msgstr "" #: src/main/extractor_metatypes.c:431 #, fuzzy msgid "full data" msgstr "fullständigt namn" #: src/main/extractor_metatypes.c:432 msgid "" "entry that contains the full, original binary data (not really meta data)" msgstr "" #: src/main/extractor_metatypes.c:434 #, fuzzy msgid "rating" msgstr "Latin" #: src/main/extractor_metatypes.c:435 msgid "rating of the content" msgstr "" #: src/main/extractor_metatypes.c:436 src/main/extractor_metatypes.c:437 msgid "organization" msgstr "organisation" #: src/main/extractor_metatypes.c:438 src/main/extractor_metatypes.c:439 msgid "ripper" msgstr "rippare" #: src/main/extractor_metatypes.c:440 src/main/extractor_metatypes.c:441 msgid "producer" msgstr "producent" #: src/main/extractor_metatypes.c:442 msgid "group" msgstr "grupp" #: src/main/extractor_metatypes.c:443 msgid "name of the group or band" msgstr "" #: src/main/extractor_metatypes.c:445 #, fuzzy msgid "original filename" msgstr "filnamn" #: src/main/extractor_metatypes.c:446 msgid "name of the original file (reserved for GNUnet)" msgstr "" #: src/main/extractor_metatypes.c:447 #, fuzzy msgid "disc count" msgstr "antal ord" #: src/main/extractor_metatypes.c:448 msgid "count of discs inside collection this disc belongs to" msgstr "" #: src/main/extractor_metatypes.c:449 msgid "codec" msgstr "" #: src/main/extractor_metatypes.c:450 msgid "codec the data is stored in" msgstr "" #: src/main/extractor_metatypes.c:451 msgid "video codec" msgstr "" #: src/main/extractor_metatypes.c:452 msgid "codec the video data is stored in" msgstr "" #: src/main/extractor_metatypes.c:453 msgid "audio codec" msgstr "" #: src/main/extractor_metatypes.c:454 msgid "codec the audio data is stored in" msgstr "" #: src/main/extractor_metatypes.c:456 msgid "subtitle codec" msgstr "" #: src/main/extractor_metatypes.c:457 msgid "codec/format the subtitle data is stored in" msgstr "" #: src/main/extractor_metatypes.c:458 msgid "container format" msgstr "" #: src/main/extractor_metatypes.c:459 msgid "container format the data is stored in" msgstr "" #: src/main/extractor_metatypes.c:460 msgid "bitrate" msgstr "" #: src/main/extractor_metatypes.c:461 msgid "exact or average bitrate in bits/s" msgstr "" #: src/main/extractor_metatypes.c:462 msgid "nominal bitrate" msgstr "" #: src/main/extractor_metatypes.c:463 msgid "" "nominal bitrate in bits/s. The actual bitrate might be different from this " "target bitrate." msgstr "" #: src/main/extractor_metatypes.c:464 msgid "minimum bitrate" msgstr "" #: src/main/extractor_metatypes.c:465 msgid "minimum bitrate in bits/s" msgstr "" #: src/main/extractor_metatypes.c:467 msgid "maximum bitrate" msgstr "" #: src/main/extractor_metatypes.c:468 msgid "maximum bitrate in bits/s" msgstr "" #: src/main/extractor_metatypes.c:469 #, fuzzy msgid "serial" msgstr "Industriell" #: src/main/extractor_metatypes.c:470 msgid "serial number of track" msgstr "" #: src/main/extractor_metatypes.c:471 #, fuzzy msgid "encoder" msgstr "kodad av" #: src/main/extractor_metatypes.c:472 msgid "encoder used to encode this stream" msgstr "" #: src/main/extractor_metatypes.c:473 #, fuzzy msgid "encoder version" msgstr "formatversion" #: src/main/extractor_metatypes.c:474 msgid "version of the encoder used to encode this stream" msgstr "" #: src/main/extractor_metatypes.c:475 #, fuzzy msgid "track gain" msgstr "spårnummer" #: src/main/extractor_metatypes.c:476 msgid "track gain in db" msgstr "" #: src/main/extractor_metatypes.c:478 #, fuzzy msgid "track peak" msgstr "spårnummer" #: src/main/extractor_metatypes.c:479 msgid "peak of the track" msgstr "" #: src/main/extractor_metatypes.c:480 #, fuzzy msgid "album gain" msgstr "album" #: src/main/extractor_metatypes.c:481 msgid "album gain in db" msgstr "" #: src/main/extractor_metatypes.c:482 #, fuzzy msgid "album peak" msgstr "album" #: src/main/extractor_metatypes.c:483 msgid "peak of the album" msgstr "" #: src/main/extractor_metatypes.c:484 msgid "reference level" msgstr "" #: src/main/extractor_metatypes.c:485 msgid "reference level of track and album gain values" msgstr "" #: src/main/extractor_metatypes.c:486 #, fuzzy msgid "location name" msgstr "plats" #: src/main/extractor_metatypes.c:487 msgid "" "human readable descriptive location of where the media has been recorded or " "produced" msgstr "" #: src/main/extractor_metatypes.c:489 #, fuzzy msgid "location elevation" msgstr "plats" #: src/main/extractor_metatypes.c:490 msgid "" "geo elevation of where the media has been recorded or produced in meters " "according to WGS84 (zero is average sea level)" msgstr "" #: src/main/extractor_metatypes.c:491 msgid "location horizontal error" msgstr "" #: src/main/extractor_metatypes.c:492 msgid "represents the expected error on the horizontal positioning in meters" msgstr "" #: src/main/extractor_metatypes.c:493 msgid "location movement speed" msgstr "" #: src/main/extractor_metatypes.c:494 msgid "" "speed of the capturing device when performing the capture. Represented in m/s" msgstr "" #: src/main/extractor_metatypes.c:495 msgid "location movement direction" msgstr "" #: src/main/extractor_metatypes.c:496 msgid "" "indicates the movement direction of the device performing the capture of a " "media. It is represented as degrees in floating point representation, 0 " "means the geographic north, and increases clockwise" msgstr "" #: src/main/extractor_metatypes.c:497 msgid "location capture direction" msgstr "" #: src/main/extractor_metatypes.c:498 msgid "" "indicates the direction the device is pointing to when capturing a media. It " "is represented as degrees in floating point representation, 0 means the " "geographic north, and increases clockwise" msgstr "" #: src/main/extractor_metatypes.c:500 #, fuzzy msgid "show episode number" msgstr "skivnummer" #: src/main/extractor_metatypes.c:501 msgid "number of the episode within a season/show" msgstr "" #: src/main/extractor_metatypes.c:502 #, fuzzy msgid "show season number" msgstr "skriv ut versionsnummer" #: src/main/extractor_metatypes.c:503 msgid "number of the season of a show/series" msgstr "" #: src/main/extractor_metatypes.c:504 #, fuzzy msgid "grouping" msgstr "grupp" #: src/main/extractor_metatypes.c:505 msgid "" "groups together media that are related and spans multiple tracks. An example " "are multiple pieces of a concerto" msgstr "" #: src/main/extractor_metatypes.c:506 msgid "device manufacturer" msgstr "" #: src/main/extractor_metatypes.c:507 msgid "manufacturer of the device used to create the media" msgstr "" #: src/main/extractor_metatypes.c:508 #, fuzzy msgid "device model" msgstr "kameramodell" #: src/main/extractor_metatypes.c:509 msgid "model of the device used to create the media" msgstr "" #: src/main/extractor_metatypes.c:511 #, fuzzy msgid "audio language" msgstr "språk" #: src/main/extractor_metatypes.c:512 msgid "language of the audio track" msgstr "" #: src/main/extractor_metatypes.c:513 #, fuzzy msgid "channels" msgstr "dual channel" #: src/main/extractor_metatypes.c:514 msgid "number of audio channels" msgstr "" #: src/main/extractor_metatypes.c:515 msgid "sample rate" msgstr "" #: src/main/extractor_metatypes.c:516 msgid "sample rate of the audio track" msgstr "" #: src/main/extractor_metatypes.c:517 msgid "audio depth" msgstr "" #: src/main/extractor_metatypes.c:518 msgid "number of bits per audio sample" msgstr "" #: src/main/extractor_metatypes.c:519 msgid "audio bitrate" msgstr "" #: src/main/extractor_metatypes.c:520 msgid "bitrate of the audio track" msgstr "" #: src/main/extractor_metatypes.c:522 src/main/extractor_metatypes.c:523 msgid "maximum audio bitrate" msgstr "" #: src/main/extractor_metatypes.c:524 msgid "video dimensions" msgstr "" #: src/main/extractor_metatypes.c:525 msgid "width and height of the video track (WxH)" msgstr "" #: src/main/extractor_metatypes.c:526 msgid "video depth" msgstr "" #: src/main/extractor_metatypes.c:527 msgid "numbers of bits per pixel" msgstr "" #: src/main/extractor_metatypes.c:528 msgid "frame rate" msgstr "" #: src/main/extractor_metatypes.c:529 msgid "number of frames per second (as D/N or floating point)" msgstr "" #: src/main/extractor_metatypes.c:530 msgid "pixel aspect ratio" msgstr "" #: src/main/extractor_metatypes.c:531 msgid "pixel aspect ratio (as D/N)" msgstr "" #: src/main/extractor_metatypes.c:533 src/main/extractor_metatypes.c:534 msgid "video bitrate" msgstr "" #: src/main/extractor_metatypes.c:535 src/main/extractor_metatypes.c:536 msgid "maximum video bitrate" msgstr "" #: src/main/extractor_metatypes.c:537 #, fuzzy msgid "subtitle language" msgstr "språk" #: src/main/extractor_metatypes.c:538 msgid "language of the subtitle track" msgstr "" #: src/main/extractor_metatypes.c:539 #, fuzzy msgid "video language" msgstr "språk" #: src/main/extractor_metatypes.c:540 msgid "language of the video track" msgstr "" #: src/main/extractor_metatypes.c:541 msgid "table of contents" msgstr "" #: src/main/extractor_metatypes.c:542 msgid "chapters, contents or bookmarks (in xml format)" msgstr "" # Detta rör sig om film och musik annars skulle det vara Varaktighet #: src/main/extractor_metatypes.c:544 #, fuzzy msgid "video duration" msgstr "speltid" #: src/main/extractor_metatypes.c:545 msgid "duration of a video stream" msgstr "" # Detta rör sig om film och musik annars skulle det vara Varaktighet #: src/main/extractor_metatypes.c:546 #, fuzzy msgid "audio duration" msgstr "speltid" #: src/main/extractor_metatypes.c:547 msgid "duration of an audio stream" msgstr "" # Detta rör sig om film och musik annars skulle det vara Varaktighet #: src/main/extractor_metatypes.c:548 #, fuzzy msgid "subtitle duration" msgstr "speltid" #: src/main/extractor_metatypes.c:549 msgid "duration of a subtitle stream" msgstr "" #: src/main/extractor_metatypes.c:551 msgid "audio preview" msgstr "" #: src/main/extractor_metatypes.c:552 msgid "a preview of the file audio stream" msgstr "" #: src/main/extractor_metatypes.c:554 src/main/extractor_metatypes.c:555 msgid "last" msgstr "" #: src/main/getopt.c:684 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: flagga \"%s\" är tvetydig\n" #: src/main/getopt.c:709 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: flagga \"--%s\" tillåter inte ett argument\n" #: src/main/getopt.c:715 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: flagga \"%c%s\" tillåter inte ett argument\n" #: src/main/getopt.c:732 src/main/getopt.c:903 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: flagga \"%s\" kräver ett argument\n" #: src/main/getopt.c:761 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: okänd flagga \"--%s\"\n" #: src/main/getopt.c:765 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: okänd flagga \"%c%s\"\n" #: src/main/getopt.c:791 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: ej tillåten flagga -- %c\n" #: src/main/getopt.c:793 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: ogiltig flagga -- %c\n" #: src/main/getopt.c:822 src/main/getopt.c:952 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: flagga kräver ett argument -- %c\n" #: src/main/getopt.c:870 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: flagga \"-W %s\" är tvetydig\n" #: src/main/getopt.c:888 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: flagga \"-W %s\" tillåter inte ett argument\n" #: src/plugins/flac_extractor.c:322 #, fuzzy, c-format msgid "%u Hz, %u channels" msgstr "dual channel" #: src/plugins/man_extractor.c:215 msgid "Commands" msgstr "Kommandon" #: src/plugins/man_extractor.c:219 msgid "System calls" msgstr "Systemanrop" #: src/plugins/man_extractor.c:223 msgid "Library calls" msgstr "Biblioteksanrop" #: src/plugins/man_extractor.c:227 msgid "Special files" msgstr "Specialfiler" #: src/plugins/man_extractor.c:231 msgid "File formats and conventions" msgstr "Filformat och konventioner" #: src/plugins/man_extractor.c:235 msgid "Games" msgstr "Spel" #: src/plugins/man_extractor.c:239 msgid "Conventions and miscellaneous" msgstr "Konventioner och diverse" #: src/plugins/man_extractor.c:243 msgid "System management commands" msgstr "Kommandon för systemhantering" #: src/plugins/man_extractor.c:247 msgid "Kernel routines" msgstr "Kärnrutiner" # Hjälp! Rätt översättning? #: src/plugins/ole2_extractor.c:387 msgid "No Proofing" msgstr "Ingen korrekturläsning" #: src/plugins/ole2_extractor.c:395 msgid "Traditional Chinese" msgstr "Traditionell kinesiska" #: src/plugins/ole2_extractor.c:397 msgid "Simplified Chinese" msgstr "Förenklad kinesiska" #: src/plugins/ole2_extractor.c:405 msgid "Swiss German" msgstr "Schweizisk tyska" #: src/plugins/ole2_extractor.c:409 msgid "U.S. English" msgstr "Amerikansk engelska" #: src/plugins/ole2_extractor.c:411 msgid "U.K. English" msgstr "Brittisk engelska" #: src/plugins/ole2_extractor.c:413 msgid "Australian English" msgstr "Australisk engelska" #: src/plugins/ole2_extractor.c:415 msgid "Castilian Spanish" msgstr "Kastiliansk spanska" #: src/plugins/ole2_extractor.c:417 msgid "Mexican Spanish" msgstr "Mexikansk spanska" #: src/plugins/ole2_extractor.c:423 msgid "Belgian French" msgstr "Belgisk franska" #: src/plugins/ole2_extractor.c:425 msgid "Canadian French" msgstr "Kanadensisk franska" #: src/plugins/ole2_extractor.c:427 msgid "Swiss French" msgstr "Schweizisk franska" #: src/plugins/ole2_extractor.c:437 msgid "Swiss Italian" msgstr "Schweizisk italienska" #: src/plugins/ole2_extractor.c:445 msgid "Belgian Dutch" msgstr "Belgisk holländska" #: src/plugins/ole2_extractor.c:447 msgid "Norwegian Bokmal" msgstr "Norska (Bokmål)" #: src/plugins/ole2_extractor.c:457 msgid "Rhaeto-Romanic" msgstr "Rätoromanska" #: src/plugins/ole2_extractor.c:463 msgid "Croato-Serbian (Latin)" msgstr "Kroatoserbiska (Latin)" #: src/plugins/ole2_extractor.c:465 msgid "Serbo-Croatian (Cyrillic)" msgstr "Serbokroatiska (Kyrillisk)" #: src/plugins/ole2_extractor.c:493 msgid "Farsi" msgstr "Farsi" #: src/plugins/ole2_extractor.c:578 #, fuzzy, c-format msgid "Revision #%u: Author `%s' worked on `%s'" msgstr "Revision %u: Upphovsmannen \"%s\" arbetade på \"%s\"" #: src/plugins/riff_extractor.c:145 #, c-format msgid "codec: %s, %u fps, %u ms" msgstr "kodek: %s, %u bilder/s, %u ms" #: src/plugins/wav_extractor.c:120 msgid "mono" msgstr "mono" #: src/plugins/wav_extractor.c:120 msgid "stereo" msgstr "stereo" #~ msgid "do not remove any duplicates" #~ msgstr "ta inte bort några dubbletter" #~ msgid "" #~ "use the generic plaintext extractor for the language with the 2-letter " #~ "language code LANG" #~ msgstr "" #~ "använd den generiska klartextuppackaren för språket med 2-bokstavskoden i " #~ "LANG" #~ msgid "remove duplicates only if types match" #~ msgstr "ta bort dubbletter endast om typen stämmer" #~ msgid "use the filename as a keyword (loads filename-extractor plugin)" #~ msgstr "" #~ "använd filnamnet som ett nyckelord (läser in insticket filename-extractor)" #~ msgid "compute hash using the given ALGORITHM (currently sha1 or md5)" #~ msgstr "beräkna hash med angiven ALGORITM (för närvarande sha1 eller md5)" #~ msgid "remove duplicates even if keyword types do not match" #~ msgstr "ta bort dubbletter även om nyckelordstyp inte stämmer" #~ msgid "use keyword splitting (loads split-extractor plugin)" #~ msgstr "använd delning av nyckelord (läser in insticket split-extractor)" #~ msgid "INVALID TYPE - %s\n" #~ msgstr "OGILTIG TYP - %s\n" #~ msgid "date" #~ msgstr "datum" #~ msgid "relation" #~ msgstr "relation" #~ msgid "coverage" #~ msgstr "täckning" #~ msgid "translated" #~ msgstr "översatt" #~ msgid "used fonts" #~ msgstr "använda typsnitt" #~ msgid "created for" #~ msgstr "skapad för" #~ msgid "release" #~ msgstr "utgåva" #~ msgid "size" #~ msgstr "storlek" #~ msgid "category" #~ msgstr "kategori" #~ msgid "owner" #~ msgstr "ägare" # Förslag på bättre önskas #~ msgid "binary thumbnail data" #~ msgstr "binär miniatyrbilddata" #~ msgid "focal length (35mm equivalent)" #~ msgstr "brännvidd (35mm motsvarande)" # Hjälp! En grovgissning. #~ msgid "split" #~ msgstr "delning" #~ msgid "security" #~ msgstr "säkerhet" #~ msgid "lower case conversion" #~ msgstr "gemenkonvertering" #~ msgid "generator" #~ msgstr "skapare" #~ msgid "scale" #~ msgstr "skala" #~ msgid "year" #~ msgstr "år" #~ msgid "link" #~ msgstr "länk" #~ msgid "music CD identifier" #~ msgstr "Identifierare för musik-cd" #~ msgid "time" #~ msgstr "tid" #~ msgid "preferred display style (GNUnet)" #~ msgstr "föredragen visningsstil (GNUnet)" #~ msgid "GNUnet URI of ECBC data" #~ msgstr "GNUnet-URI för ECBC-data" #~ msgid "" #~ "Resolving symbol `%s' in library `%s' failed, so I tried `%s', but that " #~ "failed also. Errors are: `%s' and `%s'.\n" #~ msgstr "" #~ "Uppslag av symbol \"%s\" i bibliotek \"%s\" misslyckades så jag försökte " #~ "med \"%s\" men det misslyckades också. Felen är: \"%s\" och \"%s\".\n" #~ msgid "Unloading plugin `%s' failed!\n" #~ msgstr "Urläsning av instick \"%s\" misslyckades!\n" #~ msgid "GB" #~ msgstr "GB" #~ msgid "MB" #~ msgstr "MB" #~ msgid "KB" #~ msgstr "KB" #~ msgid "Bytes" #~ msgstr "Byte" #~ msgid "%ux%u dots per cm" #~ msgstr "%u×%u punkter per cm" #~ msgid "%ux%u dots per inch?" #~ msgstr "%u×%u punkter per tum?" #~ msgid "Blues" #~ msgstr "Blues" #~ msgid "Classic Rock" #~ msgstr "Klassisk rock" #~ msgid "Dance" #~ msgstr "Dans" #~ msgid "Disco" #~ msgstr "Disco" #~ msgid "Funk" #~ msgstr "Funk" #~ msgid "Grunge" #~ msgstr "Grunge" #~ msgid "Hip-Hop" #~ msgstr "Hip-Hop" #~ msgid "Jazz" #~ msgstr "Jazz" #~ msgid "Metal" #~ msgstr "Metal" #~ msgid "New Age" #~ msgstr "New Age" #~ msgid "Oldies" #~ msgstr "Gamla godingar" #~ msgid "Other" #~ msgstr "Övrigt" #~ msgid "Pop" #~ msgstr "Pop" #~ msgid "R&B" #~ msgstr "R&B" #~ msgid "Rap" #~ msgstr "Rap" #~ msgid "Reggae" #~ msgstr "Reggae" #~ msgid "Rock" #~ msgstr "Rock" #~ msgid "Techno" #~ msgstr "Techno" #~ msgid "Alternative" #~ msgstr "Alternativ" #~ msgid "Ska" #~ msgstr "Ska" #~ msgid "Death Metal" #~ msgstr "Death Metal" #~ msgid "Pranks" #~ msgstr "Skämt" #~ msgid "Soundtrack" #~ msgstr "Soundtrack" #~ msgid "Euro-Techno" #~ msgstr "Euro-Techno" #~ msgid "Ambient" #~ msgstr "Ambient" #~ msgid "Trip-Hop" #~ msgstr "Trip-Hop" #~ msgid "Vocal" #~ msgstr "Vocal" #~ msgid "Jazz+Funk" #~ msgstr "Jazz+Funk" #~ msgid "Fusion" #~ msgstr "Fusion" #~ msgid "Trance" #~ msgstr "Trance" #~ msgid "Classical" #~ msgstr "Klassisk" #~ msgid "Instrumental" #~ msgstr "Instrumental" #~ msgid "Acid" #~ msgstr "Acid" #~ msgid "House" #~ msgstr "House" #~ msgid "Game" #~ msgstr "Spel" #~ msgid "Sound Clip" #~ msgstr "Ljudklipp" #~ msgid "Gospel" #~ msgstr "Gospel" #~ msgid "Noise" #~ msgstr "Noise" #~ msgid "Alt. Rock" #~ msgstr "Alt. Rock" #~ msgid "Bass" #~ msgstr "Bas" #~ msgid "Soul" #~ msgstr "Soul" #~ msgid "Punk" #~ msgstr "Punk" #~ msgid "Space" #~ msgstr "Space" #~ msgid "Meditative" #~ msgstr "Meditativ" #~ msgid "Instrumental Pop" #~ msgstr "Instrumental Pop" #~ msgid "Instrumental Rock" #~ msgstr "Instrumental Rock" #~ msgid "Ethnic" #~ msgstr "Ethnic" #~ msgid "Gothic" #~ msgstr "Gothic" #~ msgid "Darkwave" #~ msgstr "Darkwave" #~ msgid "Techno-Industrial" #~ msgstr "Techno-Industrial" #~ msgid "Electronic" #~ msgstr "Elektronisk" #~ msgid "Pop-Folk" #~ msgstr "Pop-Folk" #~ msgid "Eurodance" #~ msgstr "Eurodance" #~ msgid "Dream" #~ msgstr "Dream" #~ msgid "Southern Rock" #~ msgstr "Southern Rock" #~ msgid "Comedy" #~ msgstr "Komedi" #~ msgid "Cult" #~ msgstr "Kult" #~ msgid "Gangsta Rap" #~ msgstr "Gangsta Rap" #~ msgid "Top 40" #~ msgstr "Topp 40" #~ msgid "Christian Rap" #~ msgstr "Kristen rap" #~ msgid "Pop/Funk" #~ msgstr "Pop/Funk" #~ msgid "Jungle" #~ msgstr "Jungle" #~ msgid "Native American" #~ msgstr "Native American" #~ msgid "Cabaret" #~ msgstr "Kabaret" #~ msgid "New Wave" #~ msgstr "New Wave" #~ msgid "Psychedelic" #~ msgstr "Psykadelisk" #~ msgid "Rave" #~ msgstr "Rave" #~ msgid "Showtunes" #~ msgstr "Showtunes" #~ msgid "Trailer" #~ msgstr "Trailer" #~ msgid "Lo-Fi" #~ msgstr "Lo-Fi" #~ msgid "Tribal" #~ msgstr "Tribal" #~ msgid "Acid Punk" #~ msgstr "Acid Punk" #~ msgid "Acid Jazz" #~ msgstr "Acid Jazz" #~ msgid "Polka" #~ msgstr "Polka" #~ msgid "Retro" #~ msgstr "Retro" #~ msgid "Musical" #~ msgstr "Musikal" #~ msgid "Rock & Roll" #~ msgstr "Rock & Roll" #~ msgid "Hard Rock" #~ msgstr "Hårdrock" #~ msgid "Folk" #~ msgstr "Folk" #~ msgid "Folk/Rock" #~ msgstr "Folk/Rock" #~ msgid "National Folk" #~ msgstr "National Folk" #~ msgid "Swing" #~ msgstr "Swing" #~ msgid "Fast-Fusion" #~ msgstr "Fast-Fusion" #~ msgid "Bebob" #~ msgstr "Bebob" #~ msgid "Revival" #~ msgstr "Revival" #~ msgid "Celtic" #~ msgstr "Keltisk" #~ msgid "Bluegrass" #~ msgstr "Bluegrass" #~ msgid "Avantgarde" #~ msgstr "Avantgarde" #~ msgid "Gothic Rock" #~ msgstr "Gothisk rock" #~ msgid "Progressive Rock" #~ msgstr "Progressiv rock" #~ msgid "Psychedelic Rock" #~ msgstr "Psykedelisk rock" #~ msgid "Symphonic Rock" #~ msgstr "Symfonisk rock" #~ msgid "Slow Rock" #~ msgstr "Långsam rock" #~ msgid "Big Band" #~ msgstr "Storband" #~ msgid "Chorus" #~ msgstr "Chorus" #~ msgid "Easy Listening" #~ msgstr "Lättsam lyssning" #~ msgid "Acoustic" #~ msgstr "Ackustisk" #~ msgid "Humour" #~ msgstr "Humor" #~ msgid "Speech" #~ msgstr "Tal" #~ msgid "Chanson" #~ msgstr "Chanson" #~ msgid "Opera" #~ msgstr "Opera" #~ msgid "Chamber Music" #~ msgstr "Kammarmusik" #~ msgid "Sonata" #~ msgstr "Sonata" #~ msgid "Symphony" #~ msgstr "Symfoni" #~ msgid "Booty Bass" #~ msgstr "Booty Bass" #~ msgid "Primus" #~ msgstr "Primus" #~ msgid "Porn Groove" #~ msgstr "Porn Groove" #~ msgid "Satire" #~ msgstr "Satir" #~ msgid "Slow Jam" #~ msgstr "Slow Jam" #~ msgid "Club" #~ msgstr "Club" #~ msgid "Tango" #~ msgstr "Tango" #~ msgid "Samba" #~ msgstr "Samba" #~ msgid "Folklore" #~ msgstr "Folklore" #~ msgid "Ballad" #~ msgstr "Ballad" #~ msgid "Power Ballad" #~ msgstr "Power Ballad" #~ msgid "Rhythmic Soul" #~ msgstr "Rhythmic Soul" #~ msgid "Freestyle" #~ msgstr "Freestyle" #~ msgid "Duet" #~ msgstr "Duet" #~ msgid "Punk Rock" #~ msgstr "Punk Rock" #~ msgid "Drum Solo" #~ msgstr "Trumsolo" #~ msgid "A Cappella" #~ msgstr "A cappella" #~ msgid "Euro-House" #~ msgstr "Euro-House" #~ msgid "Dance Hall" #~ msgstr "Dance Hall" #~ msgid "Goa" #~ msgstr "Goa" #~ msgid "Drum & Bass" #~ msgstr "Drum & Bass" #~ msgid "Club-House" #~ msgstr "Club-House" #~ msgid "Hardcore" #~ msgstr "Hardcore" #~ msgid "Terror" #~ msgstr "Terror" #~ msgid "Indie" #~ msgstr "Indie" #~ msgid "BritPop" #~ msgstr "BritPop" #~ msgid "Negerpunk" #~ msgstr "Negerpunk" #~ msgid "Polsk Punk" #~ msgstr "Polsk Punk" #~ msgid "Beat" #~ msgstr "Beat" #~ msgid "Christian Gangsta Rap" #~ msgstr "Christian Gangsta Rap" #~ msgid "Heavy Metal" #~ msgstr "Heavy Metal" #~ msgid "Black Metal" #~ msgstr "Black Metal" #~ msgid "Crossover" #~ msgstr "Crossover" #~ msgid "Contemporary Christian" #~ msgstr "Contemporary Christian" #~ msgid "Christian Rock" #~ msgstr "Kristen rock" #~ msgid "Merengue" #~ msgstr "Merengue" #~ msgid "Salsa" #~ msgstr "Salsa" #~ msgid "Thrash Metal" #~ msgstr "Thrash Metal" #~ msgid "Anime" #~ msgstr "Anime" #~ msgid "JPop" #~ msgstr "JPop" #~ msgid "Synthpop" #~ msgstr "Synthpop" #~ msgid "joint stereo" #~ msgstr "joint stereo" #~ msgid "MPEG-1" #~ msgstr "MPEG-1" #~ msgid "MPEG-2" #~ msgstr "MPEG-2" #~ msgid "MPEG-2.5" #~ msgstr "MPEG-2.5" #~ msgid "Layer I" #~ msgstr "Layer I" #~ msgid "Layer II" #~ msgstr "Layer II" #~ msgid "Layer III" #~ msgstr "Layer III" #~ msgid "VBR" #~ msgstr "VBR" #~ msgid "CBR" #~ msgstr "CBR" #~ msgid "no copyright" #~ msgstr "ingen copyright" #~ msgid "copy" #~ msgstr "kopia" #~ msgid "" #~ "Please provide the name of the language you are building\n" #~ "a dictionary for. For example:\n" #~ msgstr "" #~ "Vänligen ange namnet på det språk du bygger en\n" #~ "ordbok för. Till exempel:\n" #~ msgid "Error opening file `%s': %s\n" #~ msgstr "Fel vid öppning av fil \"%s\": %s\n" #~ msgid "" #~ "Error allocating: %s\n" #~ "." #~ msgstr "" #~ "Fel vid allokering: %s\n" #~ "." #~ msgid "Increase ALLOCSIZE (in %s).\n" #~ msgstr "Öka ALLOCSIZE (i %s).\n" #~ msgid "(variable bps)" #~ msgstr "(variabel bithastighet)" #~ msgid "Source RPM %d.%d" #~ msgstr "Källkods-RPM %d.%d" #~ msgid "Binary RPM %d.%d" #~ msgstr "Binär RPM %d.%d" #~ msgid "Please provide a list of klp files as arguments.\n" #~ msgstr "Vänligen ange en lista av klp-filer som argument.\n" #~ msgid "os" #~ msgstr "operativsystem" libextractor-1.3/po/LINGUAS0000644000175000017500000000004212056602022012432 00000000000000rw fr de ga ro sv vi nl it uk pl libextractor-1.3/po/vi.po0000644000175000017500000017553012255661612012415 00000000000000# Vietnamese translation for LibExtractor. # Copyright © 2010 Free Software Foundation, Inc. # Copyright © 2010 Christian Grothoff # This file is distributed under the same license as the libextractor package. # Clytie Siddall , 2005-2010. # msgid "" msgstr "" "Project-Id-Version: libextractor 0.6.0\n" "Report-Msgid-Bugs-To: libextractor@gnu.org\n" "POT-Creation-Date: 2013-12-22 23:11+0100\n" "PO-Revision-Date: 2010-02-11 00:13+0930\n" "Last-Translator: Clytie Siddall \n" "Language-Team: Vietnamese \n" "Language: vi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: LocFactoryEditor 1.8\n" #: src/main/extract.c:132 #, c-format msgid "" "Usage: %s\n" "%s\n" "\n" msgstr "" "Cách sử dụng: %s\n" "%s\n" "\n" #: src/main/extract.c:135 #, c-format msgid "" "Arguments mandatory for long options are also mandatory for short options.\n" msgstr "" "Mọi đối số bắt buộc phải sử dụng với tùy chọn dài cũng bắt buộc với tùy chọn " "ngắn.\n" #: src/main/extract.c:217 msgid "print output in bibtex format" msgstr "hiển thị dữ liệu xuất có dạng bibtex" #: src/main/extract.c:219 msgid "produce grep-friendly output (all results on one line per file)" msgstr "" "tạo ra kết xuất thân thiện với grep (mọi kết quả trên cùng dòng của mỗi tập " "tin)" #: src/main/extract.c:221 msgid "print this help" msgstr "hiển thị trợ giúp này" #: src/main/extract.c:223 msgid "run plugins in-process (simplifies debugging)" msgstr "chạy phần bổ sung bên trong tiến trình (giản dị hoá chức năng gỡ rối)" #: src/main/extract.c:225 msgid "read data from file into memory and extract from memory" msgstr "" #: src/main/extract.c:227 msgid "load an extractor plugin named LIBRARY" msgstr "tải một trình cầm phít rút có tên LIBRARY (THƯ VIÊN)" #: src/main/extract.c:229 msgid "list all keyword types" msgstr "liệt kê mọi kiểu từ khoá" #: src/main/extract.c:231 msgid "do not use the default set of extractor plugins" msgstr "đừng dùng bộ trình rút mặc định" #: src/main/extract.c:233 msgid "print only keywords of the given TYPE (use -L to get a list)" msgstr "" "hiển thị chỉ từ khoá KIỂU (TYPE) đã cho thôi (dùng « -L » để xem danh sách)" #: src/main/extract.c:235 msgid "print the version number" msgstr "hiển thị số thứ tự phiên bản" #: src/main/extract.c:237 msgid "be verbose" msgstr "xuất chi tiết" #: src/main/extract.c:239 msgid "do not print keywords of the given TYPE" msgstr "đừng hiển thị từ khoá KIỂU (TYPE) đã cho" #: src/main/extract.c:242 msgid "extract [OPTIONS] [FILENAME]*" msgstr "" "extract [TÙY_CHỌN] [TÊN_TẬP_TIN]*\n" "[extract: trích ra]" #: src/main/extract.c:243 msgid "Extract metadata from files." msgstr "Rút siêu dữ liệu ra tập tin." #: src/main/extract.c:288 #, c-format msgid "Found by `%s' plugin:\n" msgstr "Tìm bởi phần bổ sung « %s »:\n" #: src/main/extract.c:291 src/main/extract.c:378 #: src/main/extractor_metatypes.c:145 src/main/extractor_print.c:86 #: src/main/extractor_print.c:96 msgid "unknown" msgstr "không rõ" #: src/main/extract.c:296 #, c-format msgid "%s - (unknown, %u bytes)\n" msgstr "%s - (không rõ, %u byte)\n" #: src/main/extract.c:325 #, c-format msgid "%s - (binary, %u bytes)\n" msgstr "%s - (nhị phân, %u byte)\n" #: src/main/extract.c:809 src/main/extract.c:821 msgid "" "Illegal combination of options, cannot combine multiple styles of printing.\n" msgstr "sai tổ hợp các tuỳ chọn này, không thể kết hợp nhiều cách in.\n" #: src/main/extract.c:854 #, c-format msgid "You must specify an argument for the `%s' option (option ignored).\n" msgstr "Bạn phải ghi rõ một đối số cho tùy chọn « %s » (tùy chọn bị bỏ qua).\n" #: src/main/extract.c:923 msgid "Use --help to get a list of options.\n" msgstr "" "Hãy sử dụng lệnh « --help » (trợ giúp) để xem một danh sách các tùy chọn.\n" #: src/main/extract.c:964 #, fuzzy msgid "% BiBTeX file\n" msgstr "%% tập tin BiBTeX\n" #: src/main/extract.c:972 #, c-format msgid "Keywords for file %s:\n" msgstr "Từ khoá cho tập tin %s:\n" #: src/main/extractor.c:676 #, c-format msgid "Initialization of plugin mechanism failed: %s!\n" msgstr "Việc khởi động cơ chế cầm phít bị lỗi: %s\n" #: src/main/extractor_metatypes.c:46 msgid "reserved" msgstr "dành riêng" #: src/main/extractor_metatypes.c:47 msgid "reserved value, do not use" msgstr "giá trị dành riêng, đừng dùng" #: src/main/extractor_metatypes.c:48 msgid "mimetype" msgstr "kiểu MIME" #: src/main/extractor_metatypes.c:49 msgid "mime type" msgstr "kiểu MIME" #: src/main/extractor_metatypes.c:50 msgid "embedded filename" msgstr "tên tập tin nhúng" #: src/main/extractor_metatypes.c:51 msgid "filename that was embedded (not necessarily the current filename)" msgstr "tên tập tin nhúng (không nhất thiết tên tập tin hiện thời)" #: src/main/extractor_metatypes.c:52 msgid "comment" msgstr "chú thích" #: src/main/extractor_metatypes.c:53 msgid "comment about the content" msgstr "ghi chú về nội dung" #: src/main/extractor_metatypes.c:54 msgid "title" msgstr "tựa" #: src/main/extractor_metatypes.c:55 msgid "title of the work" msgstr "tên của tác phẩm" #: src/main/extractor_metatypes.c:57 msgid "book title" msgstr "tên sách" #: src/main/extractor_metatypes.c:58 msgid "title of the book containing the work" msgstr "tên của cuốn sách chứa tác phẩm" #: src/main/extractor_metatypes.c:59 msgid "book edition" msgstr "bản in sách" #: src/main/extractor_metatypes.c:60 msgid "edition of the book (or book containing the work)" msgstr "bản in của cuốn sách (hoặc cuốn sách chứa tác phẩm)" #: src/main/extractor_metatypes.c:61 msgid "book chapter" msgstr "chương sách" #: src/main/extractor_metatypes.c:62 msgid "chapter number" msgstr "số thứ tự chương" #: src/main/extractor_metatypes.c:63 msgid "journal name" msgstr "tên tạp chí" #: src/main/extractor_metatypes.c:64 msgid "journal or magazine the work was published in" msgstr "tạp chí đã xuất bản tác phẩm" #: src/main/extractor_metatypes.c:65 msgid "journal volume" msgstr "tập tạp chí" #: src/main/extractor_metatypes.c:66 msgid "volume of a journal or multi-volume book" msgstr "tập của một tạp chí hay cuốn sách đa tập" #: src/main/extractor_metatypes.c:68 msgid "journal number" msgstr "số thứ tự tạp chí" #: src/main/extractor_metatypes.c:69 msgid "number of a journal, magazine or tech-report" msgstr "số thứ tự của một tạp chí hay bản báo cáo kỹ thuật" #: src/main/extractor_metatypes.c:70 msgid "page count" msgstr "tổng số trang" #: src/main/extractor_metatypes.c:71 msgid "total number of pages of the work" msgstr "tổng số các trang trong tác phẩm" #: src/main/extractor_metatypes.c:72 msgid "page range" msgstr "phạm vi trang" #: src/main/extractor_metatypes.c:73 msgid "page numbers of the publication in the respective journal or book" msgstr "(các) số thứ tự trang của tác phẩm trong tạp chí hay cuốn sách" #: src/main/extractor_metatypes.c:74 msgid "author name" msgstr "tên tác giả" #: src/main/extractor_metatypes.c:75 msgid "name of the author(s)" msgstr "tên của (các) tác giả" #: src/main/extractor_metatypes.c:76 msgid "author email" msgstr "địa chỉ thư tác giả" #: src/main/extractor_metatypes.c:77 msgid "e-mail of the author(s)" msgstr "địa chỉ thư điện tử của (các) tác giả" #: src/main/extractor_metatypes.c:79 msgid "author institution" msgstr "tổ chức tác giả" #: src/main/extractor_metatypes.c:80 msgid "institution the author worked for" msgstr "tổ chức của tác giả" #: src/main/extractor_metatypes.c:81 msgid "publisher" msgstr "nhà xuất bản" #: src/main/extractor_metatypes.c:82 msgid "name of the publisher" msgstr "tên nhà xuất bản" #: src/main/extractor_metatypes.c:83 msgid "publisher's address" msgstr "địa chỉ nhà xuất bản" #: src/main/extractor_metatypes.c:84 msgid "Address of the publisher (often only the city)" msgstr "Địa chỉ của nhà xuất bản (thường chỉ là tên thành phố)" #: src/main/extractor_metatypes.c:85 msgid "publishing institution" msgstr "tổ chức xuất bản" #: src/main/extractor_metatypes.c:86 msgid "" "institution that was involved in the publishing, but not necessarily the " "publisher" msgstr "tổ chức liên quan đến xuất bản, không nhất thiết là nhà xuất bản" #: src/main/extractor_metatypes.c:87 msgid "publication series" msgstr "bộ sự xuất bản" #: src/main/extractor_metatypes.c:88 msgid "series of books the book was published in" msgstr "bộ các cuốn sách theo đó xuất bản cuốn sách này" #: src/main/extractor_metatypes.c:90 msgid "publication type" msgstr "kiểu xuất bản" #: src/main/extractor_metatypes.c:91 msgid "type of the tech-report" msgstr "kiểu bản báo cáo kỹ thuật" #: src/main/extractor_metatypes.c:92 msgid "publication year" msgstr "năm xuất bản" #: src/main/extractor_metatypes.c:93 msgid "year of publication (or, if unpublished, the year of creation)" msgstr "năm xuất bản (chưa xuất bản thì năm tạo)" #: src/main/extractor_metatypes.c:94 msgid "publication month" msgstr "tháng xuất bản" #: src/main/extractor_metatypes.c:95 msgid "month of publication (or, if unpublished, the month of creation)" msgstr "tháng xuất bản (chưa xuất bản thì tháng tạo)" #: src/main/extractor_metatypes.c:96 msgid "publication day" msgstr "ngày xuất bản" #: src/main/extractor_metatypes.c:97 msgid "" "day of publication (or, if unpublished, the day of creation), relative to " "the given month" msgstr "ngày xuất bản (chưa xuất bản thì ngày tạo), tương đối với tháng đưa ra" #: src/main/extractor_metatypes.c:98 msgid "publication date" msgstr "ngày xuất bản" #: src/main/extractor_metatypes.c:99 msgid "date of publication (or, if unpublished, the date of creation)" msgstr "ngày tháng xuất bản (chưa xuất bản thì ngày tháng tạo)" #: src/main/extractor_metatypes.c:101 msgid "bibtex eprint" msgstr "bibtex eprint" #: src/main/extractor_metatypes.c:102 msgid "specification of an electronic publication" msgstr "đặc tả của một sự xuất bản điện tử" #: src/main/extractor_metatypes.c:103 msgid "bibtex entry type" msgstr "kiểu mục nhập bibtex" #: src/main/extractor_metatypes.c:104 msgid "type of the publication for bibTeX bibliographies" msgstr "kiểu xuất bản cho thư tịch bibTeX" #: src/main/extractor_metatypes.c:105 msgid "language" msgstr "ngôn ngữ" #: src/main/extractor_metatypes.c:106 msgid "language the work uses" msgstr "ngôn ngữ của tác phẩm" #: src/main/extractor_metatypes.c:107 msgid "creation time" msgstr "giờ tạo" #: src/main/extractor_metatypes.c:108 msgid "time and date of creation" msgstr "ngày/giờ tạo" #: src/main/extractor_metatypes.c:109 msgid "URL" msgstr "URL" #: src/main/extractor_metatypes.c:110 msgid "universal resource location (where the work is made available)" msgstr "địa chỉ Internet có sẵn tác phẩm" #: src/main/extractor_metatypes.c:112 msgid "URI" msgstr "URI" #: src/main/extractor_metatypes.c:113 msgid "universal resource identifier" msgstr "dấu nhận diện tài nguyên thống nhất" #: src/main/extractor_metatypes.c:114 msgid "international standard recording code" msgstr "mã thu tiêu chuẩn quốc tế" #: src/main/extractor_metatypes.c:115 msgid "ISRC number identifying the work" msgstr "Số thứ tự ISRC nhận diện tác phẩm" # Name: don't translate / Tên: đừng dịch #: src/main/extractor_metatypes.c:116 msgid "MD4" msgstr "MD4" #: src/main/extractor_metatypes.c:117 msgid "MD4 hash" msgstr "Chuỗi duy nhất MD4" # Name: don't translate / Tên: đừng dịch #: src/main/extractor_metatypes.c:118 msgid "MD5" msgstr "MD5" #: src/main/extractor_metatypes.c:119 msgid "MD5 hash" msgstr "Chuỗi duy nhất MD5" # Name: don't translate / Tên: đừng dịch #: src/main/extractor_metatypes.c:120 msgid "SHA-0" msgstr "SHA-0" #: src/main/extractor_metatypes.c:121 msgid "SHA-0 hash" msgstr "Chuỗi duy nhất SHA-0" # Name: don't translate / Tên: đừng dịch #: src/main/extractor_metatypes.c:123 msgid "SHA-1" msgstr "SHA-1" #: src/main/extractor_metatypes.c:124 msgid "SHA-1 hash" msgstr "Chuỗi duy nhất SHA-1" # Name: don't translate / Tên: đừng dịch #: src/main/extractor_metatypes.c:125 msgid "RipeMD160" msgstr "RipeMD160" #: src/main/extractor_metatypes.c:126 msgid "RipeMD150 hash" msgstr "Chuỗi duy nhất RipeMD150" #: src/main/extractor_metatypes.c:127 src/main/extractor_metatypes.c:128 msgid "GPS latitude ref" msgstr "Tham chiếu độ vĩ GPS" #: src/main/extractor_metatypes.c:129 src/main/extractor_metatypes.c:130 msgid "GPS latitude" msgstr "Độ vĩ GPS" #: src/main/extractor_metatypes.c:131 src/main/extractor_metatypes.c:132 msgid "GPS longitude ref" msgstr "Tham chiếu độ kinh GPS" #: src/main/extractor_metatypes.c:134 src/main/extractor_metatypes.c:135 msgid "GPS longitude" msgstr "Độ kinh GPS" #: src/main/extractor_metatypes.c:136 msgid "city" msgstr "t.p." #: src/main/extractor_metatypes.c:137 msgid "name of the city where the document originated" msgstr "tên của thành phố ở đó tài liệu được tạo" #: src/main/extractor_metatypes.c:138 msgid "sublocation" msgstr "vị trí con" #: src/main/extractor_metatypes.c:139 msgid "more specific location of the geographic origin" msgstr "vị trí chính xác hơn của gốc địa lý" #: src/main/extractor_metatypes.c:140 msgid "country" msgstr "quốc gia" #: src/main/extractor_metatypes.c:141 msgid "name of the country where the document originated" msgstr "tên của quốc gia ở đó tài liệu được tạo" #: src/main/extractor_metatypes.c:142 msgid "country code" msgstr "mã quốc gia" #: src/main/extractor_metatypes.c:143 msgid "ISO 2-letter country code for the country of origin" msgstr "Mã ISO chữ đôi của quốc gia gốc" #: src/main/extractor_metatypes.c:146 msgid "specifics are not known" msgstr "chưa biết chính xác" #: src/main/extractor_metatypes.c:147 src/main/extractor_metatypes.c:148 msgid "description" msgstr "mô tả" #: src/main/extractor_metatypes.c:149 msgid "copyright" msgstr "bản quyền" #: src/main/extractor_metatypes.c:150 msgid "Name of the entity holding the copyright" msgstr "Tên của người/nhà giữ bản quyền" #: src/main/extractor_metatypes.c:151 msgid "rights" msgstr "quyền" #: src/main/extractor_metatypes.c:152 msgid "information about rights" msgstr "thông tin về quyền" #: src/main/extractor_metatypes.c:153 src/main/extractor_metatypes.c:154 msgid "keywords" msgstr "từ khoá" #: src/main/extractor_metatypes.c:156 src/main/extractor_metatypes.c:157 msgid "abstract" msgstr "trích yếu" #: src/main/extractor_metatypes.c:158 src/main/extractor_metatypes.c:159 msgid "summary" msgstr "tóm tắt" #: src/main/extractor_metatypes.c:160 msgid "subject" msgstr "chủ đề" #: src/main/extractor_metatypes.c:161 msgid "subject matter" msgstr "chủ đề" #: src/main/extractor_metatypes.c:162 src/main/extractor_metatypes.c:195 msgid "creator" msgstr "người tạo" #: src/main/extractor_metatypes.c:163 msgid "name of the person who created the document" msgstr "tên của người đã tạo tài liệu này" #: src/main/extractor_metatypes.c:164 msgid "format" msgstr "định dạng" #: src/main/extractor_metatypes.c:165 msgid "name of the document format" msgstr "tên của định dạng tài liệu" #: src/main/extractor_metatypes.c:167 msgid "format version" msgstr "phiên bản định dạng" #: src/main/extractor_metatypes.c:168 msgid "version of the document format" msgstr "phiên bản của định dạng tài liệu" #: src/main/extractor_metatypes.c:169 msgid "created by software" msgstr "bị phần mềm tạo" #: src/main/extractor_metatypes.c:170 msgid "name of the software that created the document" msgstr "tên của phần mềm đã tạo tài liệu" #: src/main/extractor_metatypes.c:171 msgid "unknown date" msgstr "không rõ ngày tháng" #: src/main/extractor_metatypes.c:172 msgid "" "ambiguous date (could specify creation time, modification time or access " "time)" msgstr "" "ngày tháng không rõ (có thể đưa ra giờ tạo, giờ sửa đổi hay giờ truy cập)" #: src/main/extractor_metatypes.c:173 msgid "creation date" msgstr "ngày tạo" #: src/main/extractor_metatypes.c:174 msgid "date the document was created" msgstr "ngày tháng tạo tài liệu" #: src/main/extractor_metatypes.c:175 msgid "modification date" msgstr "ngày sửa đổi" #: src/main/extractor_metatypes.c:176 msgid "date the document was modified" msgstr "ngày tháng sửa đổi tài liệu" #: src/main/extractor_metatypes.c:178 msgid "last printed" msgstr "in cuối cùng" #: src/main/extractor_metatypes.c:179 msgid "date the document was last printed" msgstr "ngày tháng in tài liệu lần cuối" #: src/main/extractor_metatypes.c:180 msgid "last saved by" msgstr "lưu cuối cùng bởi" #: src/main/extractor_metatypes.c:181 msgid "name of the user who saved the document last" msgstr "tên của người dùng lưu tài liệu lần cuối" #: src/main/extractor_metatypes.c:182 msgid "total editing time" msgstr "tổng thời gian sửa" #: src/main/extractor_metatypes.c:183 msgid "time spent editing the document" msgstr "thời gian mất khi chỉnh sửa tài liệu" #: src/main/extractor_metatypes.c:184 msgid "editing cycles" msgstr "chu kỳ hiệu chỉnh" #: src/main/extractor_metatypes.c:185 msgid "number of editing cycles" msgstr "số các chu kỳ hiệu chỉnh" #: src/main/extractor_metatypes.c:186 msgid "modified by software" msgstr "bị phần mềm sửa đổi" #: src/main/extractor_metatypes.c:187 msgid "name of software making modifications" msgstr "tên của phần mềm sửa đổi" #: src/main/extractor_metatypes.c:189 msgid "revision history" msgstr "lược sử sửa đổi" #: src/main/extractor_metatypes.c:190 msgid "information about the revision history" msgstr "thông tin về lịch sử duyệt lại" #: src/main/extractor_metatypes.c:191 msgid "embedded file size" msgstr "cỡ tập tin nhúng" #: src/main/extractor_metatypes.c:192 msgid "size of the contents of the container as embedded in the file" msgstr "kích cỡ của nội dung đồ chứa nhúng trong tập tin" #: src/main/extractor_metatypes.c:193 msgid "file type" msgstr "kiểu tập tin" #: src/main/extractor_metatypes.c:194 msgid "standard Macintosh Finder file type information" msgstr "thông tin kiểu tập tin Finder Mac tiêu chuẩn" #: src/main/extractor_metatypes.c:196 msgid "standard Macintosh Finder file creator information" msgstr "thông tin trình tạo tập tin Finder Mac tiêu chuẩn" #: src/main/extractor_metatypes.c:197 msgid "package name" msgstr "tên gói" #: src/main/extractor_metatypes.c:198 msgid "unique identifier for the package" msgstr "dấu nhận diện duy nhất cho gói" #: src/main/extractor_metatypes.c:200 msgid "package version" msgstr "phiên bản gói" #: src/main/extractor_metatypes.c:201 msgid "version of the software and its package" msgstr "phiên bản của phần mềm và gói nó" #: src/main/extractor_metatypes.c:202 msgid "section" msgstr "phần" #: src/main/extractor_metatypes.c:203 msgid "category the software package belongs to" msgstr "phân loại của gói phần mềm" #: src/main/extractor_metatypes.c:204 msgid "upload priority" msgstr "ưu tiên tải lên" #: src/main/extractor_metatypes.c:205 msgid "priority for promoting the release to production" msgstr "độ ưu tiên để đẩy mạnh bản phát hành lên mức sản xuất" #: src/main/extractor_metatypes.c:206 msgid "dependencies" msgstr "phụ thuộc" #: src/main/extractor_metatypes.c:207 msgid "packages this package depends upon" msgstr "các gói về chúng gói này phụ thuộc" #: src/main/extractor_metatypes.c:208 msgid "conflicting packages" msgstr "gói xung đột" #: src/main/extractor_metatypes.c:209 msgid "packages that cannot be installed with this package" msgstr "các gói không thể được cài đặt cùng với gói này" #: src/main/extractor_metatypes.c:211 msgid "replaced packages" msgstr "gói bị thay thế" #: src/main/extractor_metatypes.c:212 msgid "packages made obsolete by this package" msgstr "các gói bị gói này làm cũ" #: src/main/extractor_metatypes.c:213 msgid "provides" msgstr "cung cấp" #: src/main/extractor_metatypes.c:214 msgid "functionality provided by this package" msgstr "chức năng được gói này cung cấp" #: src/main/extractor_metatypes.c:215 msgid "recommendations" msgstr "khuyến khích" #: src/main/extractor_metatypes.c:216 msgid "packages recommended for installation in conjunction with this package" msgstr "các gói nên cài đặt cùng với gói này" #: src/main/extractor_metatypes.c:217 msgid "suggestions" msgstr "góp ý" #: src/main/extractor_metatypes.c:218 msgid "packages suggested for installation in conjunction with this package" msgstr "các gói có thể cài đặt cùng với gói này" #: src/main/extractor_metatypes.c:219 msgid "maintainer" msgstr "nhà duy trì" #: src/main/extractor_metatypes.c:220 msgid "name of the maintainer" msgstr "tên của nhà duy trì" #: src/main/extractor_metatypes.c:222 msgid "installed size" msgstr "cỡ đã cài đặt" #: src/main/extractor_metatypes.c:223 msgid "space consumption after installation" msgstr "sức chứa được chiếm sau khi cài đặt" #: src/main/extractor_metatypes.c:224 src/main/extractor_metatypes.c:304 msgid "source" msgstr "nguồn" #: src/main/extractor_metatypes.c:225 msgid "original source code" msgstr "mã nguồn gốc" #: src/main/extractor_metatypes.c:226 msgid "is essential" msgstr "cần yếu" #: src/main/extractor_metatypes.c:227 msgid "package is marked as essential" msgstr "gói có nhãn « cần yếu »" #: src/main/extractor_metatypes.c:228 msgid "target architecture" msgstr "kiến trúc đích" #: src/main/extractor_metatypes.c:229 msgid "hardware architecture the contents can be used for" msgstr "kiến trúc phần cứng trên đó có thể sử dụng nội dung" #: src/main/extractor_metatypes.c:230 msgid "pre-dependency" msgstr "phụ thuộc trước" #: src/main/extractor_metatypes.c:231 msgid "dependency that must be satisfied before installation" msgstr "quan hệ phụ thuộc phải thoả trước khi cài đặt" #: src/main/extractor_metatypes.c:233 msgid "license" msgstr "quyền phép" #: src/main/extractor_metatypes.c:234 msgid "applicable copyright license" msgstr "giấy phép tác quyền thích hợp" #: src/main/extractor_metatypes.c:235 msgid "distribution" msgstr "bản phân phối" #: src/main/extractor_metatypes.c:236 msgid "distribution the package is a part of" msgstr "bản phân phối chứa gói này" #: src/main/extractor_metatypes.c:237 msgid "build host" msgstr "máy hỗ trợ xây dựng" #: src/main/extractor_metatypes.c:238 msgid "machine the package was build on" msgstr "máy trên đó gói này được xây dựng" #: src/main/extractor_metatypes.c:239 msgid "vendor" msgstr "nhà bán" #: src/main/extractor_metatypes.c:240 msgid "name of the software vendor" msgstr "tên của nhà sản xuất phần mềm" #: src/main/extractor_metatypes.c:241 msgid "target operating system" msgstr "hệ điều hành đích" #: src/main/extractor_metatypes.c:242 msgid "operating system for which this package was made" msgstr "hệ điều hành cho đó gói này được tạo" #: src/main/extractor_metatypes.c:244 msgid "software version" msgstr "phiên bản phần mềm" #: src/main/extractor_metatypes.c:245 msgid "version of the software contained in the file" msgstr "phiên bản của phần mềm nằm trong tập tin" #: src/main/extractor_metatypes.c:246 msgid "target platform" msgstr "nền tảng đích" #: src/main/extractor_metatypes.c:247 msgid "" "name of the architecture, operating system and distribution this package is " "for" msgstr "" "tên của kiến trúc, hệ điều hành và bản phân phối cho chúng gói này được " "thiết kế" #: src/main/extractor_metatypes.c:248 msgid "resource type" msgstr "kiểu tài nguyên" #: src/main/extractor_metatypes.c:249 msgid "" "categorization of the nature of the resource that is more specific than the " "file format" msgstr "phân loại tài nguyên một cách chính xác hơn định dạng tập tin" #: src/main/extractor_metatypes.c:250 msgid "library search path" msgstr "đường dẫn tìm kiếm thư viện" #: src/main/extractor_metatypes.c:251 msgid "" "path in the file system to be considered when looking for required libraries" msgstr "" "đường dẫn trong hệ thống tập tin cần theo khi quét tìm các thư viện cần thiết" #: src/main/extractor_metatypes.c:252 msgid "library dependency" msgstr "phụ thuộc vào thư viện" #: src/main/extractor_metatypes.c:253 msgid "name of a library that this file depends on" msgstr "tên của một thư viện vào đó tập tin này phụ thuộc" #: src/main/extractor_metatypes.c:255 src/main/extractor_metatypes.c:256 msgid "camera make" msgstr "nhà chế tạo máy ảnh" #: src/main/extractor_metatypes.c:257 src/main/extractor_metatypes.c:258 msgid "camera model" msgstr "mô hình máy ảnh" #: src/main/extractor_metatypes.c:259 src/main/extractor_metatypes.c:260 msgid "exposure" msgstr "sự phơi nắng" #: src/main/extractor_metatypes.c:261 src/main/extractor_metatypes.c:262 msgid "aperture" msgstr "lỗ ống kính" #: src/main/extractor_metatypes.c:263 src/main/extractor_metatypes.c:264 msgid "exposure bias" msgstr "khuynh hướng phơi nắng" #: src/main/extractor_metatypes.c:266 src/main/extractor_metatypes.c:267 msgid "flash" msgstr "đèn nháy" #: src/main/extractor_metatypes.c:268 src/main/extractor_metatypes.c:269 msgid "flash bias" msgstr "khuynh hướng đèn nháy" #: src/main/extractor_metatypes.c:270 src/main/extractor_metatypes.c:271 msgid "focal length" msgstr "tiêu cự" #: src/main/extractor_metatypes.c:272 src/main/extractor_metatypes.c:273 msgid "focal length 35mm" msgstr "tiêu cự 35mm" #: src/main/extractor_metatypes.c:274 src/main/extractor_metatypes.c:275 msgid "iso speed" msgstr "tốc độ ISO" #: src/main/extractor_metatypes.c:277 src/main/extractor_metatypes.c:278 msgid "exposure mode" msgstr "chế độ phơi nắng" #: src/main/extractor_metatypes.c:279 src/main/extractor_metatypes.c:280 msgid "metering mode" msgstr "chế độ do" #: src/main/extractor_metatypes.c:281 src/main/extractor_metatypes.c:282 msgid "macro mode" msgstr "chế độ macrô" #: src/main/extractor_metatypes.c:283 src/main/extractor_metatypes.c:284 msgid "image quality" msgstr "chất lượng ảnh" #: src/main/extractor_metatypes.c:285 src/main/extractor_metatypes.c:286 msgid "white balance" msgstr "cán cân trắng" #: src/main/extractor_metatypes.c:288 src/main/extractor_metatypes.c:289 msgid "orientation" msgstr "hướng" #: src/main/extractor_metatypes.c:290 src/main/extractor_metatypes.c:291 msgid "magnification" msgstr "phóng to" #: src/main/extractor_metatypes.c:292 msgid "image dimensions" msgstr "các chiều ảnh" #: src/main/extractor_metatypes.c:293 msgid "size of the image in pixels (width times height)" msgstr "kích cỡ của ảnh theo điểm ảnh (chiều rộng×cao)" #: src/main/extractor_metatypes.c:294 src/main/extractor_metatypes.c:295 msgid "produced by software" msgstr "xuất bởi phần mềm" #: src/main/extractor_metatypes.c:299 msgid "thumbnail" msgstr "ảnh mẫu" #: src/main/extractor_metatypes.c:300 msgid "smaller version of the image for previewing" msgstr "phiên bản nhỏ hơn của ảnh để xem thử" #: src/main/extractor_metatypes.c:302 msgid "image resolution" msgstr "độ phân giải ảnh" #: src/main/extractor_metatypes.c:303 msgid "resolution in dots per inch" msgstr "độ phân giải theo chấm trên mỗi insơ" #: src/main/extractor_metatypes.c:305 msgid "Originating entity" msgstr "Người/nhà nguồn gốc" #: src/main/extractor_metatypes.c:306 msgid "character set" msgstr "bộ ký tự" #: src/main/extractor_metatypes.c:307 msgid "character encoding used" msgstr "bảng mã ký tự được dùng" #: src/main/extractor_metatypes.c:308 msgid "line count" msgstr "số đếm trang" #: src/main/extractor_metatypes.c:309 msgid "number of lines" msgstr "số các dòng" #: src/main/extractor_metatypes.c:310 msgid "paragraph count" msgstr "số đếm đoạn văn" #: src/main/extractor_metatypes.c:311 #, fuzzy msgid "number of paragraphs" msgstr "số các đoạn văn" #: src/main/extractor_metatypes.c:313 msgid "word count" msgstr "tổng số từ" #: src/main/extractor_metatypes.c:314 msgid "number of words" msgstr "số các từ" #: src/main/extractor_metatypes.c:315 msgid "character count" msgstr "tổng số ký tự" #: src/main/extractor_metatypes.c:316 msgid "number of characters" msgstr "số các ký tự" #: src/main/extractor_metatypes.c:317 src/main/extractor_metatypes.c:318 msgid "page orientation" msgstr "hướng trang" #: src/main/extractor_metatypes.c:319 src/main/extractor_metatypes.c:320 msgid "paper size" msgstr "cỡ giấy" #: src/main/extractor_metatypes.c:321 msgid "template" msgstr "mẫu" #: src/main/extractor_metatypes.c:322 msgid "template the document uses or is based on" msgstr "mẫu được tài liệu dùng hay vào đó tài liệu dựa" #: src/main/extractor_metatypes.c:324 src/main/extractor_metatypes.c:325 msgid "company" msgstr "công ty" #: src/main/extractor_metatypes.c:326 src/main/extractor_metatypes.c:327 msgid "manager" msgstr "nhà quản lý" #: src/main/extractor_metatypes.c:328 src/main/extractor_metatypes.c:329 msgid "revision number" msgstr "số thứ tự bản sửa đổi" #: src/main/extractor_metatypes.c:330 msgid "duration" msgstr "thời lượng" #: src/main/extractor_metatypes.c:331 msgid "play time for the medium" msgstr "thời gian phát của phương tiện" #: src/main/extractor_metatypes.c:332 msgid "album" msgstr "tập" #: src/main/extractor_metatypes.c:333 msgid "name of the album" msgstr "tên của tập nhạc" #: src/main/extractor_metatypes.c:335 msgid "artist" msgstr "nhạc sĩ" #: src/main/extractor_metatypes.c:336 msgid "name of the artist or band" msgstr "tên của nhạc sĩ hay dàn nhạc" #: src/main/extractor_metatypes.c:337 src/main/extractor_metatypes.c:338 msgid "genre" msgstr "thể loại" #: src/main/extractor_metatypes.c:339 msgid "track number" msgstr "số thứ tự rãnh" #: src/main/extractor_metatypes.c:340 msgid "original number of the track on the distribution medium" msgstr "số thứ tự gốc của rãnh trên phương tiện phát hành" #: src/main/extractor_metatypes.c:341 msgid "disk number" msgstr "số thứ tự đĩa" #: src/main/extractor_metatypes.c:342 msgid "number of the disk in a multi-disk (or volume) distribution" msgstr "số thứ tự của đĩa trong bản phân phối đa đĩa (hay đa tập)" #: src/main/extractor_metatypes.c:343 msgid "performer" msgstr "người biểu diễn" #: src/main/extractor_metatypes.c:344 msgid "" "The artist(s) who performed the work (conductor, orchestra, soloists, actor, " "etc.)" msgstr "" "Các nhạc sĩ đã biểu diễn tác phẩm (nhạc trưởng, dàn nhạc hợp tấu, người diễn " "đơn, diễn viên v.v.)" #: src/main/extractor_metatypes.c:346 msgid "contact" msgstr "liên lạc" #: src/main/extractor_metatypes.c:347 msgid "Contact information for the creator or distributor" msgstr "Chi tiết liên lạc cho nhà tạo hay nhà phân phối" #: src/main/extractor_metatypes.c:348 msgid "song version" msgstr "phiên bản bài hát" #: src/main/extractor_metatypes.c:349 msgid "name of the version of the song (i.e. remix information)" msgstr "tên của phiên bản bài hát (tức là thông tin hoà lại)" #: src/main/extractor_metatypes.c:350 msgid "picture" msgstr "hình ảnh" #: src/main/extractor_metatypes.c:351 msgid "associated misc. picture" msgstr "hình ảnh linh tinh liên quan" #: src/main/extractor_metatypes.c:352 msgid "cover picture" msgstr "ảnh bìa" #: src/main/extractor_metatypes.c:353 msgid "picture of the cover of the distribution medium" msgstr "hình ảnh của bìa của phương tiện phân phối" #: src/main/extractor_metatypes.c:354 msgid "contributor picture" msgstr "hình ảnh người đóng góp" #: src/main/extractor_metatypes.c:355 msgid "picture of one of the contributors" msgstr "hình ảnh của một của các người đóng góp" #: src/main/extractor_metatypes.c:357 msgid "event picture" msgstr "hình ảnh sự kiện" #: src/main/extractor_metatypes.c:358 msgid "picture of an associated event" msgstr "hình ảnh của một sự kiện liên quan" #: src/main/extractor_metatypes.c:359 msgid "logo" msgstr "biểu hình" #: src/main/extractor_metatypes.c:360 msgid "logo of an associated organization" msgstr "biểu hình của một tổ chức liên quan" #: src/main/extractor_metatypes.c:361 msgid "broadcast television system" msgstr "hệ thống phát thanh TV" #: src/main/extractor_metatypes.c:362 msgid "name of the television system for which the data is coded" msgstr "tên của hệ thống TV cho đó dữ liệu được mã hoá (v.d. PAL, NTSC)" #: src/main/extractor_metatypes.c:363 msgid "source device" msgstr "thiết bị nguồn" #: src/main/extractor_metatypes.c:364 msgid "device used to create the object" msgstr "thiết bị được dùng để tạo đối tượng" #: src/main/extractor_metatypes.c:365 msgid "disclaimer" msgstr "từ chối trách nhiệm" #: src/main/extractor_metatypes.c:366 msgid "legal disclaimer" msgstr "từ chối trách nhiệm hợp pháp" #: src/main/extractor_metatypes.c:368 msgid "warning" msgstr "cảnh báo" #: src/main/extractor_metatypes.c:369 msgid "warning about the nature of the content" msgstr "cảnh báo về kiểu nội dung (v.d. Chỉ co người trên 18 tuổi)" #: src/main/extractor_metatypes.c:370 msgid "page order" msgstr "thứ tự trang" #: src/main/extractor_metatypes.c:371 msgid "order of the pages" msgstr "thứ tự các trang" #: src/main/extractor_metatypes.c:372 msgid "writer" msgstr "tác giả" #: src/main/extractor_metatypes.c:373 msgid "contributing writer" msgstr "tác giả đóng góp" #: src/main/extractor_metatypes.c:374 src/main/extractor_metatypes.c:375 msgid "product version" msgstr "phiên bản sản phẩm" #: src/main/extractor_metatypes.c:376 msgid "contributor" msgstr "người đóng góp" #: src/main/extractor_metatypes.c:377 msgid "name of a contributor" msgstr "tên của một người đóng góp" #: src/main/extractor_metatypes.c:379 msgid "movie director" msgstr "người đạo diễn phim" #: src/main/extractor_metatypes.c:380 msgid "name of the director" msgstr "tên của người đạo diễn" #: src/main/extractor_metatypes.c:381 msgid "network" msgstr "mạng" #: src/main/extractor_metatypes.c:382 msgid "name of the broadcasting network or station" msgstr "tên của mạng hay đài phát thanh" #: src/main/extractor_metatypes.c:383 msgid "show" msgstr "buổi TV" #: src/main/extractor_metatypes.c:384 msgid "name of the show" msgstr "tên của buổi TV" #: src/main/extractor_metatypes.c:385 msgid "chapter name" msgstr "tên chương" #: src/main/extractor_metatypes.c:386 msgid "name of the chapter" msgstr "tên của chương" #: src/main/extractor_metatypes.c:387 msgid "song count" msgstr "số đếm bài hát" #: src/main/extractor_metatypes.c:388 msgid "number of songs" msgstr "số các bài hát" #: src/main/extractor_metatypes.c:390 msgid "starting song" msgstr "bài hát bắt đầu" #: src/main/extractor_metatypes.c:391 msgid "number of the first song to play" msgstr "số thứ tự của bài hát đầu tiên cần phát" #: src/main/extractor_metatypes.c:392 msgid "play counter" msgstr "bộ đếm chơi" #: src/main/extractor_metatypes.c:393 msgid "number of times the media has been played" msgstr "số các lần đã phát phương tiện này" #: src/main/extractor_metatypes.c:394 msgid "conductor" msgstr "người chỉ huy" #: src/main/extractor_metatypes.c:395 msgid "name of the conductor" msgstr "tên của nhạc trưởng" #: src/main/extractor_metatypes.c:396 msgid "interpretation" msgstr "thể hiện" #: src/main/extractor_metatypes.c:397 msgid "" "information about the people behind interpretations of an existing piece" msgstr "thông tin về các người đã thể hiện một bản nhạc đã có" #: src/main/extractor_metatypes.c:398 msgid "composer" msgstr "người soạn" #: src/main/extractor_metatypes.c:399 msgid "name of the composer" msgstr "tên của người soạn" #: src/main/extractor_metatypes.c:401 src/main/extractor_metatypes.c:402 msgid "beats per minute" msgstr "nhịp/phút" #: src/main/extractor_metatypes.c:403 msgid "encoded by" msgstr "má hoá theo" #: src/main/extractor_metatypes.c:404 msgid "name of person or organization that encoded the file" msgstr "tên của người hay tổ chức đã mã hoá tập tin" #: src/main/extractor_metatypes.c:405 msgid "original title" msgstr "tên gốc" #: src/main/extractor_metatypes.c:406 msgid "title of the original work" msgstr "tên của tác phẩm gốc" #: src/main/extractor_metatypes.c:407 msgid "original artist" msgstr "nhạc sĩ gốc" #: src/main/extractor_metatypes.c:408 msgid "name of the original artist" msgstr "tên của nhạc sĩ gốc" #: src/main/extractor_metatypes.c:409 msgid "original writer" msgstr "tác giả gốc" #: src/main/extractor_metatypes.c:410 msgid "name of the original lyricist or writer" msgstr "tên của nhà thơ trữ tình hay tác giả gốc" #: src/main/extractor_metatypes.c:412 msgid "original release year" msgstr "năm phát hành gốc" #: src/main/extractor_metatypes.c:413 msgid "year of the original release" msgstr "năm của bản phát hành gốc" #: src/main/extractor_metatypes.c:414 msgid "original performer" msgstr "người biểu diễn gốc" #: src/main/extractor_metatypes.c:415 msgid "name of the original performer" msgstr "tên của người biểu diễn gốc" #: src/main/extractor_metatypes.c:416 msgid "lyrics" msgstr "lời bài hát" #: src/main/extractor_metatypes.c:417 msgid "lyrics of the song or text description of vocal activities" msgstr "lời ca của bài hát, hay mô tả văn bản về hoạt động phát âm" #: src/main/extractor_metatypes.c:418 msgid "popularity" msgstr "tính phổ biến" #: src/main/extractor_metatypes.c:419 msgid "information about the file's popularity" msgstr "thông tin về tính phổ biến của tập tin" #: src/main/extractor_metatypes.c:420 msgid "licensee" msgstr "người được cấp tác quyền" #: src/main/extractor_metatypes.c:421 msgid "name of the owner or licensee of the file" msgstr "tên của người sở hữu hay người được cấp giấy phép sử dụng tập tin" #: src/main/extractor_metatypes.c:423 msgid "musician credit list" msgstr "danh sách công trạng nhạc sĩ" #: src/main/extractor_metatypes.c:424 msgid "names of contributing musicians" msgstr "tên của (các) nhạc sĩ đóng góp" #: src/main/extractor_metatypes.c:425 msgid "mood" msgstr "tâm trạng" #: src/main/extractor_metatypes.c:426 msgid "keywords reflecting the mood of the piece" msgstr "(các) từ khoá phản ánh tâm trạng của bản nhạc" #: src/main/extractor_metatypes.c:427 msgid "subtitle" msgstr "phụ đề" #: src/main/extractor_metatypes.c:428 msgid "subtitle of this part" msgstr "phụ đề của phần này" #: src/main/extractor_metatypes.c:429 msgid "display type" msgstr "kiểu trình bày" #: src/main/extractor_metatypes.c:430 msgid "what rendering method should be used to display this item" msgstr "phương pháp vẽ nên dùng để hiển thị mục này" #: src/main/extractor_metatypes.c:431 msgid "full data" msgstr "dữ liệu đầy đủ" #: src/main/extractor_metatypes.c:432 msgid "" "entry that contains the full, original binary data (not really meta data)" msgstr "" "mục nhập chứa dữ liệu nhị phân gốc hoàn toàn (không phải siêu dữ liệu thật)" #: src/main/extractor_metatypes.c:434 msgid "rating" msgstr "đánh giá" #: src/main/extractor_metatypes.c:435 msgid "rating of the content" msgstr "đánh giá nội dung" #: src/main/extractor_metatypes.c:436 src/main/extractor_metatypes.c:437 msgid "organization" msgstr "tổ chức" #: src/main/extractor_metatypes.c:438 src/main/extractor_metatypes.c:439 msgid "ripper" msgstr "bộ trích ra" #: src/main/extractor_metatypes.c:440 src/main/extractor_metatypes.c:441 msgid "producer" msgstr "người cung cấp" #: src/main/extractor_metatypes.c:442 msgid "group" msgstr "nhóm" #: src/main/extractor_metatypes.c:443 msgid "name of the group or band" msgstr "tên của nhóm hay dàn nhạc" #: src/main/extractor_metatypes.c:445 #, fuzzy msgid "original filename" msgstr "tên gốc" #: src/main/extractor_metatypes.c:446 #, fuzzy msgid "name of the original file (reserved for GNUnet)" msgstr "tên của người biểu diễn gốc" #: src/main/extractor_metatypes.c:447 #, fuzzy msgid "disc count" msgstr "số đếm trang" #: src/main/extractor_metatypes.c:448 msgid "count of discs inside collection this disc belongs to" msgstr "" #: src/main/extractor_metatypes.c:449 msgid "codec" msgstr "" #: src/main/extractor_metatypes.c:450 msgid "codec the data is stored in" msgstr "" #: src/main/extractor_metatypes.c:451 msgid "video codec" msgstr "" #: src/main/extractor_metatypes.c:452 msgid "codec the video data is stored in" msgstr "" #: src/main/extractor_metatypes.c:453 msgid "audio codec" msgstr "" #: src/main/extractor_metatypes.c:454 msgid "codec the audio data is stored in" msgstr "" #: src/main/extractor_metatypes.c:456 #, fuzzy msgid "subtitle codec" msgstr "phụ đề" #: src/main/extractor_metatypes.c:457 msgid "codec/format the subtitle data is stored in" msgstr "" #: src/main/extractor_metatypes.c:458 msgid "container format" msgstr "" #: src/main/extractor_metatypes.c:459 msgid "container format the data is stored in" msgstr "" #: src/main/extractor_metatypes.c:460 msgid "bitrate" msgstr "" #: src/main/extractor_metatypes.c:461 msgid "exact or average bitrate in bits/s" msgstr "" #: src/main/extractor_metatypes.c:462 #, fuzzy msgid "nominal bitrate" msgstr "tên gốc" #: src/main/extractor_metatypes.c:463 msgid "" "nominal bitrate in bits/s. The actual bitrate might be different from this " "target bitrate." msgstr "" #: src/main/extractor_metatypes.c:464 msgid "minimum bitrate" msgstr "" #: src/main/extractor_metatypes.c:465 msgid "minimum bitrate in bits/s" msgstr "" #: src/main/extractor_metatypes.c:467 msgid "maximum bitrate" msgstr "" #: src/main/extractor_metatypes.c:468 msgid "maximum bitrate in bits/s" msgstr "" #: src/main/extractor_metatypes.c:469 #, fuzzy msgid "serial" msgstr "Công nghiệp" #: src/main/extractor_metatypes.c:470 #, fuzzy msgid "serial number of track" msgstr "số các ký tự" #: src/main/extractor_metatypes.c:471 #, fuzzy msgid "encoder" msgstr "má hoá theo" #: src/main/extractor_metatypes.c:472 msgid "encoder used to encode this stream" msgstr "" #: src/main/extractor_metatypes.c:473 #, fuzzy msgid "encoder version" msgstr "phiên bản định dạng" #: src/main/extractor_metatypes.c:474 msgid "version of the encoder used to encode this stream" msgstr "" #: src/main/extractor_metatypes.c:475 #, fuzzy msgid "track gain" msgstr "số thứ tự rãnh" #: src/main/extractor_metatypes.c:476 msgid "track gain in db" msgstr "" #: src/main/extractor_metatypes.c:478 #, fuzzy msgid "track peak" msgstr "số thứ tự rãnh" #: src/main/extractor_metatypes.c:479 #, fuzzy msgid "peak of the track" msgstr "tên của tác phẩm" #: src/main/extractor_metatypes.c:480 #, fuzzy msgid "album gain" msgstr "tập" #: src/main/extractor_metatypes.c:481 msgid "album gain in db" msgstr "" #: src/main/extractor_metatypes.c:482 #, fuzzy msgid "album peak" msgstr "tập" #: src/main/extractor_metatypes.c:483 #, fuzzy msgid "peak of the album" msgstr "tên của tập nhạc" #: src/main/extractor_metatypes.c:484 msgid "reference level" msgstr "" #: src/main/extractor_metatypes.c:485 msgid "reference level of track and album gain values" msgstr "" #: src/main/extractor_metatypes.c:486 #, fuzzy msgid "location name" msgstr "giờ tạo" #: src/main/extractor_metatypes.c:487 msgid "" "human readable descriptive location of where the media has been recorded or " "produced" msgstr "" #: src/main/extractor_metatypes.c:489 msgid "location elevation" msgstr "" #: src/main/extractor_metatypes.c:490 msgid "" "geo elevation of where the media has been recorded or produced in meters " "according to WGS84 (zero is average sea level)" msgstr "" #: src/main/extractor_metatypes.c:491 msgid "location horizontal error" msgstr "" #: src/main/extractor_metatypes.c:492 msgid "represents the expected error on the horizontal positioning in meters" msgstr "" #: src/main/extractor_metatypes.c:493 #, fuzzy msgid "location movement speed" msgstr "tháng xuất bản" #: src/main/extractor_metatypes.c:494 msgid "" "speed of the capturing device when performing the capture. Represented in m/s" msgstr "" #: src/main/extractor_metatypes.c:495 msgid "location movement direction" msgstr "" #: src/main/extractor_metatypes.c:496 msgid "" "indicates the movement direction of the device performing the capture of a " "media. It is represented as degrees in floating point representation, 0 " "means the geographic north, and increases clockwise" msgstr "" #: src/main/extractor_metatypes.c:497 msgid "location capture direction" msgstr "" #: src/main/extractor_metatypes.c:498 msgid "" "indicates the direction the device is pointing to when capturing a media. It " "is represented as degrees in floating point representation, 0 means the " "geographic north, and increases clockwise" msgstr "" #: src/main/extractor_metatypes.c:500 #, fuzzy msgid "show episode number" msgstr "số thứ tự bản sửa đổi" #: src/main/extractor_metatypes.c:501 msgid "number of the episode within a season/show" msgstr "" #: src/main/extractor_metatypes.c:502 #, fuzzy msgid "show season number" msgstr "số thứ tự bản sửa đổi" #: src/main/extractor_metatypes.c:503 #, fuzzy msgid "number of the season of a show/series" msgstr "số thứ tự của bài hát đầu tiên cần phát" #: src/main/extractor_metatypes.c:504 #, fuzzy msgid "grouping" msgstr "nhóm" #: src/main/extractor_metatypes.c:505 msgid "" "groups together media that are related and spans multiple tracks. An example " "are multiple pieces of a concerto" msgstr "" #: src/main/extractor_metatypes.c:506 msgid "device manufacturer" msgstr "" #: src/main/extractor_metatypes.c:507 #, fuzzy msgid "manufacturer of the device used to create the media" msgstr "thiết bị được dùng để tạo đối tượng" #: src/main/extractor_metatypes.c:508 #, fuzzy msgid "device model" msgstr "mô hình máy ảnh" #: src/main/extractor_metatypes.c:509 #, fuzzy msgid "model of the device used to create the media" msgstr "thiết bị được dùng để tạo đối tượng" #: src/main/extractor_metatypes.c:511 #, fuzzy msgid "audio language" msgstr "ngôn ngữ" #: src/main/extractor_metatypes.c:512 #, fuzzy msgid "language of the audio track" msgstr "ngôn ngữ của tác phẩm" #: src/main/extractor_metatypes.c:513 #, fuzzy msgid "channels" msgstr "kênh đôi" #: src/main/extractor_metatypes.c:514 #, fuzzy msgid "number of audio channels" msgstr "số các dòng" #: src/main/extractor_metatypes.c:515 msgid "sample rate" msgstr "" #: src/main/extractor_metatypes.c:516 #, fuzzy msgid "sample rate of the audio track" msgstr "tên của người đạo diễn" #: src/main/extractor_metatypes.c:517 msgid "audio depth" msgstr "" #: src/main/extractor_metatypes.c:518 #, fuzzy msgid "number of bits per audio sample" msgstr "số các lần đã phát phương tiện này" #: src/main/extractor_metatypes.c:519 msgid "audio bitrate" msgstr "" #: src/main/extractor_metatypes.c:520 #, fuzzy msgid "bitrate of the audio track" msgstr "tên của tác phẩm" #: src/main/extractor_metatypes.c:522 src/main/extractor_metatypes.c:523 msgid "maximum audio bitrate" msgstr "" #: src/main/extractor_metatypes.c:524 #, fuzzy msgid "video dimensions" msgstr "các chiều ảnh" #: src/main/extractor_metatypes.c:525 msgid "width and height of the video track (WxH)" msgstr "" #: src/main/extractor_metatypes.c:526 msgid "video depth" msgstr "" #: src/main/extractor_metatypes.c:527 #, fuzzy msgid "numbers of bits per pixel" msgstr "số các dòng" #: src/main/extractor_metatypes.c:528 #, fuzzy msgid "frame rate" msgstr "phạm vi trang" #: src/main/extractor_metatypes.c:529 msgid "number of frames per second (as D/N or floating point)" msgstr "" #: src/main/extractor_metatypes.c:530 msgid "pixel aspect ratio" msgstr "" #: src/main/extractor_metatypes.c:531 msgid "pixel aspect ratio (as D/N)" msgstr "" #: src/main/extractor_metatypes.c:533 src/main/extractor_metatypes.c:534 msgid "video bitrate" msgstr "" #: src/main/extractor_metatypes.c:535 src/main/extractor_metatypes.c:536 msgid "maximum video bitrate" msgstr "" #: src/main/extractor_metatypes.c:537 #, fuzzy msgid "subtitle language" msgstr "ngôn ngữ" #: src/main/extractor_metatypes.c:538 #, fuzzy msgid "language of the subtitle track" msgstr "tên nhà xuất bản" #: src/main/extractor_metatypes.c:539 #, fuzzy msgid "video language" msgstr "ngôn ngữ" #: src/main/extractor_metatypes.c:540 #, fuzzy msgid "language of the video track" msgstr "ngôn ngữ của tác phẩm" #: src/main/extractor_metatypes.c:541 #, fuzzy msgid "table of contents" msgstr "đánh giá nội dung" #: src/main/extractor_metatypes.c:542 msgid "chapters, contents or bookmarks (in xml format)" msgstr "" #: src/main/extractor_metatypes.c:544 #, fuzzy msgid "video duration" msgstr "thời lượng" #: src/main/extractor_metatypes.c:545 msgid "duration of a video stream" msgstr "" #: src/main/extractor_metatypes.c:546 #, fuzzy msgid "audio duration" msgstr "thời lượng" #: src/main/extractor_metatypes.c:547 msgid "duration of an audio stream" msgstr "" #: src/main/extractor_metatypes.c:548 #, fuzzy msgid "subtitle duration" msgstr "vị trí con" #: src/main/extractor_metatypes.c:549 msgid "duration of a subtitle stream" msgstr "" #: src/main/extractor_metatypes.c:551 msgid "audio preview" msgstr "" #: src/main/extractor_metatypes.c:552 #, fuzzy msgid "a preview of the file audio stream" msgstr "tên của người đạo diễn" #: src/main/extractor_metatypes.c:554 src/main/extractor_metatypes.c:555 msgid "last" msgstr "cuối" #: src/main/getopt.c:684 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: tùy chọn « %s » là mơ hồ\n" #: src/main/getopt.c:709 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: tùy chọn « --%s » không cho phép đối số\n" #: src/main/getopt.c:715 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: tùy chọn « %c%s » không cho phép đối số\n" #: src/main/getopt.c:732 src/main/getopt.c:903 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: tùy chọn « %s » cần đến đối số\n" #: src/main/getopt.c:761 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: không nhận ra tùy chọn « --%s »\n" #: src/main/getopt.c:765 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: không nhận ra tùy chọn « %c%s »\n" #: src/main/getopt.c:791 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: không cho phép tùy chọn « -- %c »\n" #: src/main/getopt.c:793 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: tùy chọn không hợp lệ « -- %c »\n" #: src/main/getopt.c:822 src/main/getopt.c:952 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: tùy chọn cần đến đối số « -- %c »\n" #: src/main/getopt.c:870 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: tùy chọn « -W %s » là mơ hồ\n" #: src/main/getopt.c:888 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: tùy chọn « -W %s » không cho phép đối số\n" #: src/plugins/flac_extractor.c:322 #, c-format msgid "%u Hz, %u channels" msgstr "%u Hz, %u kênh" #: src/plugins/man_extractor.c:215 msgid "Commands" msgstr "Lệnh" #: src/plugins/man_extractor.c:219 msgid "System calls" msgstr "Cuộc gọi hệ thống" #: src/plugins/man_extractor.c:223 msgid "Library calls" msgstr "Cuộc gọi thư viện" #: src/plugins/man_extractor.c:227 msgid "Special files" msgstr "Tập tin đặc biệt" #: src/plugins/man_extractor.c:231 msgid "File formats and conventions" msgstr "Khuôn dang tập tin và quy ước" #: src/plugins/man_extractor.c:235 msgid "Games" msgstr "Trò chơi" #: src/plugins/man_extractor.c:239 msgid "Conventions and miscellaneous" msgstr "Quy ước và linh tinh" #: src/plugins/man_extractor.c:243 msgid "System management commands" msgstr "Lệnh quản lý hệ thống" #: src/plugins/man_extractor.c:247 msgid "Kernel routines" msgstr "Thao tác hạt nhân" #: src/plugins/ole2_extractor.c:387 msgid "No Proofing" msgstr "Đừng bắt lỗi" #: src/plugins/ole2_extractor.c:395 msgid "Traditional Chinese" msgstr "Tiếng Hoa truyền thống" #: src/plugins/ole2_extractor.c:397 msgid "Simplified Chinese" msgstr "Tiếng Hoa giản thể" #: src/plugins/ole2_extractor.c:405 msgid "Swiss German" msgstr "Đức Thụy Sĩ" #: src/plugins/ole2_extractor.c:409 msgid "U.S. English" msgstr "Tiếng Anh (Mỹ)" #: src/plugins/ole2_extractor.c:411 msgid "U.K. English" msgstr "Tiếng Anh (Quốc Anh)" #: src/plugins/ole2_extractor.c:413 msgid "Australian English" msgstr "Tiếng Anh (Úc)" #: src/plugins/ole2_extractor.c:415 msgid "Castilian Spanish" msgstr "Tây Ban Nha (Căt-tín)" #: src/plugins/ole2_extractor.c:417 msgid "Mexican Spanish" msgstr "Tây Ban Nha (Mê-hi-cô)" #: src/plugins/ole2_extractor.c:423 msgid "Belgian French" msgstr "Pháp (Bỉ)" #: src/plugins/ole2_extractor.c:425 msgid "Canadian French" msgstr "Pháp (Ca-na-đa)" #: src/plugins/ole2_extractor.c:427 msgid "Swiss French" msgstr "Pháp (Thuỵ sĩ)" #: src/plugins/ole2_extractor.c:437 msgid "Swiss Italian" msgstr "Ý (Thuỵ sĩ)" #: src/plugins/ole2_extractor.c:445 msgid "Belgian Dutch" msgstr "Hoà Lan (Bỉ)" #: src/plugins/ole2_extractor.c:447 msgid "Norwegian Bokmal" msgstr "Na Uy (Bóc-măn)" #: src/plugins/ole2_extractor.c:457 msgid "Rhaeto-Romanic" msgstr "Rai-tô-Rô-ma-ni" #: src/plugins/ole2_extractor.c:463 msgid "Croato-Serbian (Latin)" msgstr "Xéc-bi Cợ-rô-a-ti-a (La-tinh)" #: src/plugins/ole2_extractor.c:465 msgid "Serbo-Croatian (Cyrillic)" msgstr "Xéc-bi Cợ-rô-a-ti-a (Ki-rin)" #: src/plugins/ole2_extractor.c:493 msgid "Farsi" msgstr "Pha-xi" #: src/plugins/ole2_extractor.c:578 #, fuzzy, c-format msgid "Revision #%u: Author `%s' worked on `%s'" msgstr "Bản sửa đổi #%u: Tác giả « %s » đã làm việc « %s »." #: src/plugins/riff_extractor.c:145 #, c-format msgid "codec: %s, %u fps, %u ms" msgstr "codec: %s, %u khung/giây, %u miligiây" #: src/plugins/wav_extractor.c:120 msgid "mono" msgstr "một nguồn" #: src/plugins/wav_extractor.c:120 msgid "stereo" msgstr "âm lập thể" #~ msgid "Blues" #~ msgstr "Blu" #~ msgid "Classic Rock" #~ msgstr "Rốc cổ điển" #~ msgid "Country" #~ msgstr "Quốc gia" #~ msgid "Dance" #~ msgstr "Khiêu vũ" #~ msgid "Disco" #~ msgstr "Đít-xcô" #~ msgid "Funk" #~ msgstr "Sôi nổi" #~ msgid "Grunge" #~ msgstr "Vỡ mộng" #~ msgid "Hip-Hop" #~ msgstr "Hít-họt" #~ msgid "Jazz" #~ msgstr "Ja" #~ msgid "Metal" #~ msgstr "Kim" #~ msgid "New Age" #~ msgstr "Thời kỳ mới" #~ msgid "Oldies" #~ msgstr "Cũ" #~ msgid "Other" #~ msgstr "Khác" #~ msgid "Pop" #~ msgstr "Pốp" #~ msgid "R&B" #~ msgstr "Nhịp điệu và blu" #~ msgid "Rap" #~ msgstr "Rap" #~ msgid "Reggae" #~ msgstr "Re-gê" #~ msgid "Rock" #~ msgstr "Rốc" #~ msgid "Techno" #~ msgstr "Kỹ thuật" #~ msgid "Alternative" #~ msgstr "Sự chọn khác" #~ msgid "Ska" #~ msgstr "Ska" #~ msgid "Death Metal" #~ msgstr "Kim chết" #~ msgid "Pranks" #~ msgstr "Trò chơi ác" #~ msgid "Soundtrack" #~ msgstr "Nhạc của phím" #~ msgid "Euro-Techno" #~ msgstr "Kỹ thuật Âu" #~ msgid "Ambient" #~ msgstr "Chung quanh" #~ msgid "Trip-Hop" #~ msgstr "Tợ-rít-Hot" #~ msgid "Vocal" #~ msgstr "Thanh nhạc" #~ msgid "Jazz+Funk" #~ msgstr "Ja và Sôi nổi" #~ msgid "Fusion" #~ msgstr "Nóng chảy" #~ msgid "Trance" #~ msgstr "Hôn mê" #~ msgid "Classical" #~ msgstr "Cổ điển" #~ msgid "Instrumental" #~ msgstr "Bằng nhạc khí" #~ msgid "Acid" #~ msgstr "Axit" #~ msgid "House" #~ msgstr "Nhà" #~ msgid "Game" #~ msgstr "Trò chơi" #~ msgid "Sound Clip" #~ msgstr "Trích đoạn âm thanh" #~ msgid "Gospel" #~ msgstr "Phúc âm" #~ msgid "Noise" #~ msgstr "Ồn" #~ msgid "Alt. Rock" #~ msgstr "Rốc thay thế" #~ msgid "Bass" #~ msgstr "Trầm" #~ msgid "Soul" #~ msgstr "Hồn" #~ msgid "Punk" #~ msgstr "Rốc dữ dội" #~ msgid "Space" #~ msgstr "Khoảng" #~ msgid "Meditative" #~ msgstr "Tĩnh tọa" #~ msgid "Instrumental Pop" #~ msgstr "Pốp bằng nhac khí" #~ msgid "Instrumental Rock" #~ msgstr "Rốc bằng nhạc khí" #~ msgid "Ethnic" #~ msgstr "Dân tộc" #~ msgid "Gothic" #~ msgstr "Gô-tích" #~ msgid "Darkwave" #~ msgstr "Sóng bóng" #~ msgid "Techno-Industrial" #~ msgstr "Kỹ thuật - Công nghiệp" #~ msgid "Electronic" #~ msgstr "Điện" #~ msgid "Pop-Folk" #~ msgstr "Pốp - Dân ca" #~ msgid "Eurodance" #~ msgstr "Khiêu vũ Âu" #~ msgid "Dream" #~ msgstr "Mơ mộng" #~ msgid "Southern Rock" #~ msgstr "Rốc Nam" #~ msgid "Comedy" #~ msgstr "Kịch vui" #~ msgid "Cult" #~ msgstr "Giáo phái" #~ msgid "Gangsta Rap" #~ msgstr "Rap Kẻ cướp" #~ msgid "Top 40" #~ msgstr "40 tốt nhất" #~ msgid "Christian Rap" #~ msgstr "Ráp Cơ-đốc" #~ msgid "Pop/Funk" #~ msgstr "Pốp/Sôi nổi" #~ msgid "Jungle" #~ msgstr "Rừng" #~ msgid "Native American" #~ msgstr "Mỹ bản xứ" #~ msgid "Cabaret" #~ msgstr "Ca-ba-rê" #~ msgid "New Wave" #~ msgstr "Sóng mới" #~ msgid "Psychedelic" #~ msgstr "Tạo ảo giác" #~ msgid "Rave" #~ msgstr "Rít" #~ msgid "Showtunes" #~ msgstr "Điệu kịch" #~ msgid "Trailer" #~ msgstr "Quảng cáo trước phím" #~ msgid "Lo-Fi" #~ msgstr "Độ trung thực thấp" #~ msgid "Tribal" #~ msgstr "Bộ lạc" #~ msgid "Acid Punk" #~ msgstr "Rốc dữ dội axit" #~ msgid "Acid Jazz" #~ msgstr "Ja axit" #~ msgid "Polka" #~ msgstr "Pôn-ca" #~ msgid "Retro" #~ msgstr "Lại sau" #~ msgid "Musical" #~ msgstr "Kịch nhạc" #~ msgid "Rock & Roll" #~ msgstr "Rốc en rôn" #~ msgid "Hard Rock" #~ msgstr "Rốc cứng" #~ msgid "Folk" #~ msgstr "Dân ca" #~ msgid "Folk/Rock" #~ msgstr "Dân ca/Rốc" #~ msgid "National Folk" #~ msgstr "Dân ca quốc gia" #~ msgid "Swing" #~ msgstr "Xuynh" #~ msgid "Fast-Fusion" #~ msgstr "Nóng chạy nhanh" #~ msgid "Bebob" #~ msgstr "Bí-bọt" #~ msgid "Latin" #~ msgstr "Dân tộc Tây-ban-nha" #~ msgid "Revival" #~ msgstr "Phục âm nhấn mạnh" #~ msgid "Celtic" #~ msgstr "Xen-tơ" #~ msgid "Bluegrass" #~ msgstr "Cỏ xanh" #~ msgid "Avantgarde" #~ msgstr "Đi tiên phong" #~ msgid "Gothic Rock" #~ msgstr "Rốc Gô-tích" #~ msgid "Progressive Rock" #~ msgstr "Rốc tiến lên" #~ msgid "Psychedelic Rock" #~ msgstr "Rốc tạo ảo giác" #~ msgid "Symphonic Rock" #~ msgstr "Rốc giao hưởng" #~ msgid "Slow Rock" #~ msgstr "Rốc chậm" #~ msgid "Big Band" #~ msgstr "Dàn nhạc To" #~ msgid "Chorus" #~ msgstr "Hợp xướng" #~ msgid "Easy Listening" #~ msgstr "Nghe dễ dàng" #~ msgid "Acoustic" #~ msgstr "Độ trung thực âm thanh" #~ msgid "Humour" #~ msgstr "Hài hước" #~ msgid "Speech" #~ msgstr "Nói tiếng" #~ msgid "Chanson" #~ msgstr "Bài hát kiểu Pháp" #~ msgid "Opera" #~ msgstr "Hát kịch" #~ msgid "Chamber Music" #~ msgstr "Nhạc phòng" #~ msgid "Sonata" #~ msgstr "Bản xô-nat" #~ msgid "Symphony" #~ msgstr "Giao hưởng" #~ msgid "Booty Bass" #~ msgstr "Trầm Booty" #~ msgid "Primus" #~ msgstr "Pri-mus" #~ msgid "Porn Groove" #~ msgstr "Porn Groove" #~ msgid "Satire" #~ msgstr "Châm biếm" #~ msgid "Slow Jam" #~ msgstr "Ứng tác chậm" #~ msgid "Club" #~ msgstr "Hội" #~ msgid "Tango" #~ msgstr "Tan-gô" #~ msgid "Samba" #~ msgstr "Sam-ba" #~ msgid "Folklore" #~ msgstr "Truyền thống dân gian" #~ msgid "Ballad" #~ msgstr "Khúc balat" #~ msgid "Power Ballad" #~ msgstr "Khúc balat năng lực" #~ msgid "Rhythmic Soul" #~ msgstr "Hồn nhịp nhàng" #~ msgid "Freestyle" #~ msgstr "Kiểu tự do" #~ msgid "Duet" #~ msgstr "Bản nhạc cho bộ đôi" #~ msgid "Punk Rock" #~ msgstr "Rốc - rốc dữ dội" #~ msgid "Drum Solo" #~ msgstr "Trống diễn đơn" #~ msgid "A Cappella" #~ msgstr "Hát không có nhạc hỗ trợ" #~ msgid "Euro-House" #~ msgstr "Nhà Âu" #~ msgid "Dance Hall" #~ msgstr "Phòng khiêu vũ" #~ msgid "Goa" #~ msgstr "Goa" #~ msgid "Drum & Bass" #~ msgstr "Trống và Trầm" #~ msgid "Club-House" #~ msgstr "Nhà hội" #~ msgid "Hardcore" #~ msgstr "Lõi cứng" #~ msgid "Terror" #~ msgstr "Kinh hãi" #~ msgid "Indie" #~ msgstr "In-đi" #~ msgid "BritPop" #~ msgstr "Pốp quốc Anh" #~ msgid "Negerpunk" #~ msgstr "Rốc dữ dội đen" #~ msgid "Polsk Punk" #~ msgstr "Rốc dữ dội Ba-lan" #~ msgid "Beat" #~ msgstr "Nhịp phách" #~ msgid "Christian Gangsta Rap" #~ msgstr "Rap kẻ cướp Cơ đốc" #~ msgid "Heavy Metal" #~ msgstr "Kim nặng" #~ msgid "Black Metal" #~ msgstr "Kim đen" #~ msgid "Crossover" #~ msgstr "Xuyên chéo" #~ msgid "Contemporary Christian" #~ msgstr "Cơ-đốc đương thời" #~ msgid "Christian Rock" #~ msgstr "Rốc Cơ-đốc" #~ msgid "Merengue" #~ msgstr "Me-ren-gê" #~ msgid "Salsa" #~ msgstr "San-sa" #~ msgid "Thrash Metal" #~ msgstr "Kim quẫy đập" #~ msgid "Anime" #~ msgstr "A-ni-mê" #~ msgid "JPop" #~ msgstr "JPốp" #~ msgid "Synthpop" #~ msgstr "Pốp tổng hợp" #~ msgid "GB" #~ msgstr "GB" #~ msgid "MB" #~ msgstr "MB" #~ msgid "KB" #~ msgstr "KB" #~ msgid "Bytes" #~ msgstr "Byte" #~ msgid "joint stereo" #~ msgstr "âm lập thể chung" #~ msgid "MPEG-1" #~ msgstr "MPEG-1" #~ msgid "MPEG-2" #~ msgstr "MPEG-2" #~ msgid "MPEG-2.5" #~ msgstr "MPEG-2.5" #~ msgid "Layer I" #~ msgstr "Lớp 1" #~ msgid "Layer II" #~ msgstr "Lớp 2" #~ msgid "Layer III" #~ msgstr "Lớp 3" #~ msgid "VBR" #~ msgstr "VBR" #~ msgid "CBR" #~ msgstr "CBR" #~ msgid "no copyright" #~ msgstr "không có tác quyền" #~ msgid "original" #~ msgstr "gốc" #~ msgid "copy" #~ msgstr "chép" #~ msgid "%ux%u dots per inch" #~ msgstr "%ux%u chấm trên mỗi insơ" #~ msgid "%ux%u dots per cm" #~ msgstr "%ux%u chấm trên mỗi cm" #~ msgid "%ux%u dots per inch?" #~ msgstr "%ux%u chấm trên mỗi insơ?" libextractor-1.3/po/ro.po0000644000175000017500000017741712255661612012425 00000000000000# Mesajele n limba romn pentru libextractor. # Copyright (C) 2003 Free Software Foundation, Inc. # Acest fiier este distribuit sub aceeai licen ca i pachetul libextractor. # Laurentiu Buzdugan , 2005. # # # msgid "" msgstr "" "Project-Id-Version: libextractor 0.5.3\n" "Report-Msgid-Bugs-To: libextractor@gnu.org\n" "POT-Creation-Date: 2013-12-22 23:11+0100\n" "PO-Revision-Date: 2005-08-16 12:00-0500\n" "Last-Translator: Laurentiu Buzdugan \n" "Language-Team: Romanian \n" "Language: ro\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-2\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: src/main/extract.c:132 #, c-format msgid "" "Usage: %s\n" "%s\n" "\n" msgstr "" "Folosire: %s\n" "%s\n" "\n" #: src/main/extract.c:135 #, c-format msgid "" "Arguments mandatory for long options are also mandatory for short options.\n" msgstr "" "Argumentele obligatorii pentru opiunile lungi sunt obligatorii i pentru " "opiunile scurte.\n" #: src/main/extract.c:217 msgid "print output in bibtex format" msgstr "afieaz ieirea n format bibtex" #: src/main/extract.c:219 msgid "produce grep-friendly output (all results on one line per file)" msgstr "" #: src/main/extract.c:221 msgid "print this help" msgstr "afieaz acest mesaj de ajutor" #: src/main/extract.c:223 msgid "run plugins in-process (simplifies debugging)" msgstr "" #: src/main/extract.c:225 msgid "read data from file into memory and extract from memory" msgstr "" #: src/main/extract.c:227 msgid "load an extractor plugin named LIBRARY" msgstr "ncarc un plugin extractor numit LIBRRIE" #: src/main/extract.c:229 msgid "list all keyword types" msgstr "listeaz toate tipurile de cuvinte cheie" #: src/main/extract.c:231 msgid "do not use the default set of extractor plugins" msgstr "nu folosi setul implicit de plugin-uri extractor" #: src/main/extract.c:233 msgid "print only keywords of the given TYPE (use -L to get a list)" msgstr "" "afieaz numai cuvintele cheie pentru TIP-ul dat (folosete -L pentru a " "obine o list" #: src/main/extract.c:235 msgid "print the version number" msgstr "afieaz numrul versiunii" #: src/main/extract.c:237 msgid "be verbose" msgstr "fi vorbre" #: src/main/extract.c:239 msgid "do not print keywords of the given TYPE" msgstr "nu afia cuvinte cheie de TIP-ul dat" #: src/main/extract.c:242 msgid "extract [OPTIONS] [FILENAME]*" msgstr "extract [OPIUNI] [NUME_FIIER]*" #: src/main/extract.c:243 msgid "Extract metadata from files." msgstr "Extrage metadata din fiiere." #: src/main/extract.c:288 #, c-format msgid "Found by `%s' plugin:\n" msgstr "" #: src/main/extract.c:291 src/main/extract.c:378 #: src/main/extractor_metatypes.c:145 src/main/extractor_print.c:86 #: src/main/extractor_print.c:96 msgid "unknown" msgstr "necunoscut" #: src/main/extract.c:296 #, c-format msgid "%s - (unknown, %u bytes)\n" msgstr "" #: src/main/extract.c:325 #, fuzzy, c-format msgid "%s - (binary, %u bytes)\n" msgstr "%s - (binar)\n" #: src/main/extract.c:809 src/main/extract.c:821 msgid "" "Illegal combination of options, cannot combine multiple styles of printing.\n" msgstr "" #: src/main/extract.c:854 #, fuzzy, c-format msgid "You must specify an argument for the `%s' option (option ignored).\n" msgstr "" "Trebuie s specificai un argument pentru opiunea '%s' (opiune ignorat).\n" #: src/main/extract.c:923 msgid "Use --help to get a list of options.\n" msgstr "Folosii --help pentru a obine o list de opiuni.\n" #: src/main/extract.c:964 #, fuzzy msgid "% BiBTeX file\n" msgstr "%% BiBTeX file\n" #: src/main/extract.c:972 #, c-format msgid "Keywords for file %s:\n" msgstr "Cuvinte cheie pentru fiier %s:\n" #: src/main/extractor.c:676 #, c-format msgid "Initialization of plugin mechanism failed: %s!\n" msgstr "iniializare mecanismului de plugin a euat: %s!\n" #: src/main/extractor_metatypes.c:46 msgid "reserved" msgstr "" #: src/main/extractor_metatypes.c:47 msgid "reserved value, do not use" msgstr "" #: src/main/extractor_metatypes.c:48 msgid "mimetype" msgstr "mimetype" #: src/main/extractor_metatypes.c:49 #, fuzzy msgid "mime type" msgstr "mimetype" #: src/main/extractor_metatypes.c:50 #, fuzzy msgid "embedded filename" msgstr "nume_fiier" #: src/main/extractor_metatypes.c:51 msgid "filename that was embedded (not necessarily the current filename)" msgstr "" #: src/main/extractor_metatypes.c:52 msgid "comment" msgstr "comentariu" #: src/main/extractor_metatypes.c:53 msgid "comment about the content" msgstr "" #: src/main/extractor_metatypes.c:54 msgid "title" msgstr "titlu" #: src/main/extractor_metatypes.c:55 msgid "title of the work" msgstr "" #: src/main/extractor_metatypes.c:57 msgid "book title" msgstr "titlu de carte" #: src/main/extractor_metatypes.c:58 msgid "title of the book containing the work" msgstr "" #: src/main/extractor_metatypes.c:59 #, fuzzy msgid "book edition" msgstr "titlu de carte" #: src/main/extractor_metatypes.c:60 msgid "edition of the book (or book containing the work)" msgstr "" #: src/main/extractor_metatypes.c:61 #, fuzzy msgid "book chapter" msgstr "titlu de carte" #: src/main/extractor_metatypes.c:62 #, fuzzy msgid "chapter number" msgstr "Numr de fiier incorect" #: src/main/extractor_metatypes.c:63 msgid "journal name" msgstr "" #: src/main/extractor_metatypes.c:64 msgid "journal or magazine the work was published in" msgstr "" #: src/main/extractor_metatypes.c:65 msgid "journal volume" msgstr "" #: src/main/extractor_metatypes.c:66 msgid "volume of a journal or multi-volume book" msgstr "" #: src/main/extractor_metatypes.c:68 #, fuzzy msgid "journal number" msgstr "Numr de fiier incorect" #: src/main/extractor_metatypes.c:69 msgid "number of a journal, magazine or tech-report" msgstr "" #: src/main/extractor_metatypes.c:70 msgid "page count" msgstr "numr de pagini" #: src/main/extractor_metatypes.c:71 msgid "total number of pages of the work" msgstr "" #: src/main/extractor_metatypes.c:72 #, fuzzy msgid "page range" msgstr "ordine pagini" #: src/main/extractor_metatypes.c:73 msgid "page numbers of the publication in the respective journal or book" msgstr "" #: src/main/extractor_metatypes.c:74 #, fuzzy msgid "author name" msgstr "autor" #: src/main/extractor_metatypes.c:75 msgid "name of the author(s)" msgstr "" #: src/main/extractor_metatypes.c:76 #, fuzzy msgid "author email" msgstr "autor" #: src/main/extractor_metatypes.c:77 msgid "e-mail of the author(s)" msgstr "" #: src/main/extractor_metatypes.c:79 #, fuzzy msgid "author institution" msgstr "orientare" #: src/main/extractor_metatypes.c:80 msgid "institution the author worked for" msgstr "" #: src/main/extractor_metatypes.c:81 msgid "publisher" msgstr "publicist" #: src/main/extractor_metatypes.c:82 #, fuzzy msgid "name of the publisher" msgstr "publicist" #: src/main/extractor_metatypes.c:83 #, fuzzy msgid "publisher's address" msgstr "publicist" #: src/main/extractor_metatypes.c:84 msgid "Address of the publisher (often only the city)" msgstr "" #: src/main/extractor_metatypes.c:85 msgid "publishing institution" msgstr "" #: src/main/extractor_metatypes.c:86 msgid "" "institution that was involved in the publishing, but not necessarily the " "publisher" msgstr "" #: src/main/extractor_metatypes.c:87 #, fuzzy msgid "publication series" msgstr "data publicrii" #: src/main/extractor_metatypes.c:88 msgid "series of books the book was published in" msgstr "" #: src/main/extractor_metatypes.c:90 #, fuzzy msgid "publication type" msgstr "data publicrii" #: src/main/extractor_metatypes.c:91 msgid "type of the tech-report" msgstr "" #: src/main/extractor_metatypes.c:92 #, fuzzy msgid "publication year" msgstr "data publicrii" #: src/main/extractor_metatypes.c:93 msgid "year of publication (or, if unpublished, the year of creation)" msgstr "" #: src/main/extractor_metatypes.c:94 #, fuzzy msgid "publication month" msgstr "data publicrii" #: src/main/extractor_metatypes.c:95 msgid "month of publication (or, if unpublished, the month of creation)" msgstr "" #: src/main/extractor_metatypes.c:96 #, fuzzy msgid "publication day" msgstr "data publicrii" #: src/main/extractor_metatypes.c:97 msgid "" "day of publication (or, if unpublished, the day of creation), relative to " "the given month" msgstr "" #: src/main/extractor_metatypes.c:98 msgid "publication date" msgstr "data publicrii" #: src/main/extractor_metatypes.c:99 msgid "date of publication (or, if unpublished, the date of creation)" msgstr "" #: src/main/extractor_metatypes.c:101 msgid "bibtex eprint" msgstr "" #: src/main/extractor_metatypes.c:102 msgid "specification of an electronic publication" msgstr "" #: src/main/extractor_metatypes.c:103 msgid "bibtex entry type" msgstr "" #: src/main/extractor_metatypes.c:104 msgid "type of the publication for bibTeX bibliographies" msgstr "" #: src/main/extractor_metatypes.c:105 msgid "language" msgstr "limb" #: src/main/extractor_metatypes.c:106 msgid "language the work uses" msgstr "" #: src/main/extractor_metatypes.c:107 #, fuzzy msgid "creation time" msgstr "data crerii" #: src/main/extractor_metatypes.c:108 msgid "time and date of creation" msgstr "" #: src/main/extractor_metatypes.c:109 msgid "URL" msgstr "" #: src/main/extractor_metatypes.c:110 msgid "universal resource location (where the work is made available)" msgstr "" #: src/main/extractor_metatypes.c:112 msgid "URI" msgstr "" #: src/main/extractor_metatypes.c:113 #, fuzzy msgid "universal resource identifier" msgstr "identificator-resurs" #: src/main/extractor_metatypes.c:114 msgid "international standard recording code" msgstr "" #: src/main/extractor_metatypes.c:115 msgid "ISRC number identifying the work" msgstr "" #: src/main/extractor_metatypes.c:116 msgid "MD4" msgstr "MD4" #: src/main/extractor_metatypes.c:117 msgid "MD4 hash" msgstr "" #: src/main/extractor_metatypes.c:118 msgid "MD5" msgstr "MD5" #: src/main/extractor_metatypes.c:119 msgid "MD5 hash" msgstr "" #: src/main/extractor_metatypes.c:120 msgid "SHA-0" msgstr "SHA-0" #: src/main/extractor_metatypes.c:121 #, fuzzy msgid "SHA-0 hash" msgstr "SHA-0" #: src/main/extractor_metatypes.c:123 msgid "SHA-1" msgstr "SHA-1" #: src/main/extractor_metatypes.c:124 #, fuzzy msgid "SHA-1 hash" msgstr "SHA-1" #: src/main/extractor_metatypes.c:125 msgid "RipeMD160" msgstr "RipeMD160" #: src/main/extractor_metatypes.c:126 #, fuzzy msgid "RipeMD150 hash" msgstr "RipeMD160" #: src/main/extractor_metatypes.c:127 src/main/extractor_metatypes.c:128 msgid "GPS latitude ref" msgstr "" #: src/main/extractor_metatypes.c:129 src/main/extractor_metatypes.c:130 msgid "GPS latitude" msgstr "" #: src/main/extractor_metatypes.c:131 src/main/extractor_metatypes.c:132 msgid "GPS longitude ref" msgstr "" #: src/main/extractor_metatypes.c:134 src/main/extractor_metatypes.c:135 msgid "GPS longitude" msgstr "" #: src/main/extractor_metatypes.c:136 msgid "city" msgstr "" #: src/main/extractor_metatypes.c:137 msgid "name of the city where the document originated" msgstr "" #: src/main/extractor_metatypes.c:138 #, fuzzy msgid "sublocation" msgstr "locaie" #: src/main/extractor_metatypes.c:139 msgid "more specific location of the geographic origin" msgstr "" #: src/main/extractor_metatypes.c:140 #, fuzzy msgid "country" msgstr "ar" #: src/main/extractor_metatypes.c:141 msgid "name of the country where the document originated" msgstr "" #: src/main/extractor_metatypes.c:142 #, fuzzy msgid "country code" msgstr "ar" #: src/main/extractor_metatypes.c:143 msgid "ISO 2-letter country code for the country of origin" msgstr "" #: src/main/extractor_metatypes.c:146 msgid "specifics are not known" msgstr "" #: src/main/extractor_metatypes.c:147 src/main/extractor_metatypes.c:148 msgid "description" msgstr "descriere" #: src/main/extractor_metatypes.c:149 msgid "copyright" msgstr "copyright" #: src/main/extractor_metatypes.c:150 msgid "Name of the entity holding the copyright" msgstr "" #: src/main/extractor_metatypes.c:151 #, fuzzy msgid "rights" msgstr "copyright" #: src/main/extractor_metatypes.c:152 msgid "information about rights" msgstr "" #: src/main/extractor_metatypes.c:153 src/main/extractor_metatypes.c:154 msgid "keywords" msgstr "cuvinte cheie" #: src/main/extractor_metatypes.c:156 src/main/extractor_metatypes.c:157 msgid "abstract" msgstr "" #: src/main/extractor_metatypes.c:158 src/main/extractor_metatypes.c:159 msgid "summary" msgstr "cuprins" #: src/main/extractor_metatypes.c:160 msgid "subject" msgstr "subiect" #: src/main/extractor_metatypes.c:161 #, fuzzy msgid "subject matter" msgstr "subiect" #: src/main/extractor_metatypes.c:162 src/main/extractor_metatypes.c:195 msgid "creator" msgstr "creator" #: src/main/extractor_metatypes.c:163 msgid "name of the person who created the document" msgstr "" #: src/main/extractor_metatypes.c:164 msgid "format" msgstr "format" #: src/main/extractor_metatypes.c:165 msgid "name of the document format" msgstr "" #: src/main/extractor_metatypes.c:167 #, fuzzy msgid "format version" msgstr "versiune" #: src/main/extractor_metatypes.c:168 msgid "version of the document format" msgstr "" #: src/main/extractor_metatypes.c:169 #, fuzzy msgid "created by software" msgstr "creat pentru" #: src/main/extractor_metatypes.c:170 msgid "name of the software that created the document" msgstr "" #: src/main/extractor_metatypes.c:171 #, fuzzy msgid "unknown date" msgstr "necunoscut" #: src/main/extractor_metatypes.c:172 msgid "" "ambiguous date (could specify creation time, modification time or access " "time)" msgstr "" #: src/main/extractor_metatypes.c:173 msgid "creation date" msgstr "data crerii" #: src/main/extractor_metatypes.c:174 msgid "date the document was created" msgstr "" #: src/main/extractor_metatypes.c:175 msgid "modification date" msgstr "data modificrii" #: src/main/extractor_metatypes.c:176 msgid "date the document was modified" msgstr "" #: src/main/extractor_metatypes.c:178 msgid "last printed" msgstr "" #: src/main/extractor_metatypes.c:179 msgid "date the document was last printed" msgstr "" #: src/main/extractor_metatypes.c:180 msgid "last saved by" msgstr "" #: src/main/extractor_metatypes.c:181 msgid "name of the user who saved the document last" msgstr "" #: src/main/extractor_metatypes.c:182 msgid "total editing time" msgstr "" #: src/main/extractor_metatypes.c:183 msgid "time spent editing the document" msgstr "" #: src/main/extractor_metatypes.c:184 msgid "editing cycles" msgstr "" #: src/main/extractor_metatypes.c:185 msgid "number of editing cycles" msgstr "" #: src/main/extractor_metatypes.c:186 msgid "modified by software" msgstr "" #: src/main/extractor_metatypes.c:187 msgid "name of software making modifications" msgstr "" #: src/main/extractor_metatypes.c:189 msgid "revision history" msgstr "" #: src/main/extractor_metatypes.c:190 msgid "information about the revision history" msgstr "" #: src/main/extractor_metatypes.c:191 msgid "embedded file size" msgstr "" #: src/main/extractor_metatypes.c:192 msgid "size of the contents of the container as embedded in the file" msgstr "" #: src/main/extractor_metatypes.c:193 #, fuzzy msgid "file type" msgstr "mimetype" #: src/main/extractor_metatypes.c:194 msgid "standard Macintosh Finder file type information" msgstr "" #: src/main/extractor_metatypes.c:196 msgid "standard Macintosh Finder file creator information" msgstr "" #: src/main/extractor_metatypes.c:197 #, fuzzy msgid "package name" msgstr "mpachetator" #: src/main/extractor_metatypes.c:198 msgid "unique identifier for the package" msgstr "" #: src/main/extractor_metatypes.c:200 #, fuzzy msgid "package version" msgstr "mpachetator" #: src/main/extractor_metatypes.c:201 msgid "version of the software and its package" msgstr "" #: src/main/extractor_metatypes.c:202 #, fuzzy msgid "section" msgstr "descriere" #: src/main/extractor_metatypes.c:203 msgid "category the software package belongs to" msgstr "" #: src/main/extractor_metatypes.c:204 #, fuzzy msgid "upload priority" msgstr "prioritate" #: src/main/extractor_metatypes.c:205 msgid "priority for promoting the release to production" msgstr "" #: src/main/extractor_metatypes.c:206 #, fuzzy msgid "dependencies" msgstr "dependine" #: src/main/extractor_metatypes.c:207 msgid "packages this package depends upon" msgstr "" #: src/main/extractor_metatypes.c:208 #, fuzzy msgid "conflicting packages" msgstr "conflicte" #: src/main/extractor_metatypes.c:209 msgid "packages that cannot be installed with this package" msgstr "" #: src/main/extractor_metatypes.c:211 #, fuzzy msgid "replaced packages" msgstr "nlocuiete" #: src/main/extractor_metatypes.c:212 msgid "packages made obsolete by this package" msgstr "" #: src/main/extractor_metatypes.c:213 msgid "provides" msgstr "furnizeaz" #: src/main/extractor_metatypes.c:214 msgid "functionality provided by this package" msgstr "" #: src/main/extractor_metatypes.c:215 #, fuzzy msgid "recommendations" msgstr "comentariu" #: src/main/extractor_metatypes.c:216 msgid "packages recommended for installation in conjunction with this package" msgstr "" #: src/main/extractor_metatypes.c:217 msgid "suggestions" msgstr "" #: src/main/extractor_metatypes.c:218 msgid "packages suggested for installation in conjunction with this package" msgstr "" #: src/main/extractor_metatypes.c:219 msgid "maintainer" msgstr "" #: src/main/extractor_metatypes.c:220 msgid "name of the maintainer" msgstr "" #: src/main/extractor_metatypes.c:222 msgid "installed size" msgstr "" #: src/main/extractor_metatypes.c:223 msgid "space consumption after installation" msgstr "" #: src/main/extractor_metatypes.c:224 src/main/extractor_metatypes.c:304 msgid "source" msgstr "surs" #: src/main/extractor_metatypes.c:225 msgid "original source code" msgstr "" #: src/main/extractor_metatypes.c:226 msgid "is essential" msgstr "" #: src/main/extractor_metatypes.c:227 msgid "package is marked as essential" msgstr "" #: src/main/extractor_metatypes.c:228 msgid "target architecture" msgstr "" #: src/main/extractor_metatypes.c:229 msgid "hardware architecture the contents can be used for" msgstr "" #: src/main/extractor_metatypes.c:230 #, fuzzy msgid "pre-dependency" msgstr "dependine" #: src/main/extractor_metatypes.c:231 msgid "dependency that must be satisfied before installation" msgstr "" #: src/main/extractor_metatypes.c:233 msgid "license" msgstr "licen" #: src/main/extractor_metatypes.c:234 msgid "applicable copyright license" msgstr "" #: src/main/extractor_metatypes.c:235 msgid "distribution" msgstr "distribuie" #: src/main/extractor_metatypes.c:236 msgid "distribution the package is a part of" msgstr "" #: src/main/extractor_metatypes.c:237 #, fuzzy msgid "build host" msgstr "gazd-contruit" #: src/main/extractor_metatypes.c:238 msgid "machine the package was build on" msgstr "" #: src/main/extractor_metatypes.c:239 msgid "vendor" msgstr "vnztor" #: src/main/extractor_metatypes.c:240 msgid "name of the software vendor" msgstr "" #: src/main/extractor_metatypes.c:241 msgid "target operating system" msgstr "" #: src/main/extractor_metatypes.c:242 msgid "operating system for which this package was made" msgstr "" #: src/main/extractor_metatypes.c:244 #, fuzzy msgid "software version" msgstr "software" #: src/main/extractor_metatypes.c:245 msgid "version of the software contained in the file" msgstr "" #: src/main/extractor_metatypes.c:246 msgid "target platform" msgstr "" #: src/main/extractor_metatypes.c:247 msgid "" "name of the architecture, operating system and distribution this package is " "for" msgstr "" #: src/main/extractor_metatypes.c:248 #, fuzzy msgid "resource type" msgstr "tip-resurs" #: src/main/extractor_metatypes.c:249 msgid "" "categorization of the nature of the resource that is more specific than the " "file format" msgstr "" #: src/main/extractor_metatypes.c:250 msgid "library search path" msgstr "" #: src/main/extractor_metatypes.c:251 msgid "" "path in the file system to be considered when looking for required libraries" msgstr "" #: src/main/extractor_metatypes.c:252 #, fuzzy msgid "library dependency" msgstr "dependine" #: src/main/extractor_metatypes.c:253 msgid "name of a library that this file depends on" msgstr "" #: src/main/extractor_metatypes.c:255 src/main/extractor_metatypes.c:256 msgid "camera make" msgstr "productor" #: src/main/extractor_metatypes.c:257 src/main/extractor_metatypes.c:258 msgid "camera model" msgstr "model de camer" #: src/main/extractor_metatypes.c:259 src/main/extractor_metatypes.c:260 msgid "exposure" msgstr "expunere" #: src/main/extractor_metatypes.c:261 src/main/extractor_metatypes.c:262 msgid "aperture" msgstr "apertur" #: src/main/extractor_metatypes.c:263 src/main/extractor_metatypes.c:264 msgid "exposure bias" msgstr "predilecie expunere" #: src/main/extractor_metatypes.c:266 src/main/extractor_metatypes.c:267 msgid "flash" msgstr "bli" #: src/main/extractor_metatypes.c:268 src/main/extractor_metatypes.c:269 msgid "flash bias" msgstr "predilecie bli" #: src/main/extractor_metatypes.c:270 src/main/extractor_metatypes.c:271 msgid "focal length" msgstr "lungime focal" #: src/main/extractor_metatypes.c:272 src/main/extractor_metatypes.c:273 #, fuzzy msgid "focal length 35mm" msgstr "lungime focal" #: src/main/extractor_metatypes.c:274 src/main/extractor_metatypes.c:275 msgid "iso speed" msgstr "valoare iso" #: src/main/extractor_metatypes.c:277 src/main/extractor_metatypes.c:278 msgid "exposure mode" msgstr "mod expunere" #: src/main/extractor_metatypes.c:279 src/main/extractor_metatypes.c:280 msgid "metering mode" msgstr "mod de msurare" #: src/main/extractor_metatypes.c:281 src/main/extractor_metatypes.c:282 msgid "macro mode" msgstr "mod macro" #: src/main/extractor_metatypes.c:283 src/main/extractor_metatypes.c:284 msgid "image quality" msgstr "calitate imagine" #: src/main/extractor_metatypes.c:285 src/main/extractor_metatypes.c:286 msgid "white balance" msgstr "balan alb" #: src/main/extractor_metatypes.c:288 src/main/extractor_metatypes.c:289 msgid "orientation" msgstr "orientare" #: src/main/extractor_metatypes.c:290 src/main/extractor_metatypes.c:291 msgid "magnification" msgstr "mrire" #: src/main/extractor_metatypes.c:292 #, fuzzy msgid "image dimensions" msgstr "orientare pagin" #: src/main/extractor_metatypes.c:293 msgid "size of the image in pixels (width times height)" msgstr "" #: src/main/extractor_metatypes.c:294 src/main/extractor_metatypes.c:295 msgid "produced by software" msgstr "" #: src/main/extractor_metatypes.c:299 #, fuzzy msgid "thumbnail" msgstr "data thumbnail binar" #: src/main/extractor_metatypes.c:300 msgid "smaller version of the image for previewing" msgstr "" #: src/main/extractor_metatypes.c:302 #, fuzzy msgid "image resolution" msgstr "rezoluie" #: src/main/extractor_metatypes.c:303 #, fuzzy msgid "resolution in dots per inch" msgstr "%ux%u puncte pe inci (dpi)" #: src/main/extractor_metatypes.c:305 msgid "Originating entity" msgstr "" #: src/main/extractor_metatypes.c:306 msgid "character set" msgstr "" #: src/main/extractor_metatypes.c:307 msgid "character encoding used" msgstr "" #: src/main/extractor_metatypes.c:308 #, fuzzy msgid "line count" msgstr "numr de pagini" #: src/main/extractor_metatypes.c:309 #, fuzzy msgid "number of lines" msgstr "Numr legturi n afara domeniului" #: src/main/extractor_metatypes.c:310 #, fuzzy msgid "paragraph count" msgstr "numr de pagini" #: src/main/extractor_metatypes.c:311 msgid "number of paragraphs" msgstr "" #: src/main/extractor_metatypes.c:313 #, fuzzy msgid "word count" msgstr "numr de pagini" #: src/main/extractor_metatypes.c:314 msgid "number of words" msgstr "" #: src/main/extractor_metatypes.c:315 #, fuzzy msgid "character count" msgstr "numr de pagini" #: src/main/extractor_metatypes.c:316 msgid "number of characters" msgstr "" #: src/main/extractor_metatypes.c:317 src/main/extractor_metatypes.c:318 msgid "page orientation" msgstr "orientare pagin" #: src/main/extractor_metatypes.c:319 src/main/extractor_metatypes.c:320 msgid "paper size" msgstr "dimensiune pagina" #: src/main/extractor_metatypes.c:321 msgid "template" msgstr "" #: src/main/extractor_metatypes.c:322 msgid "template the document uses or is based on" msgstr "" #: src/main/extractor_metatypes.c:324 src/main/extractor_metatypes.c:325 msgid "company" msgstr "" #: src/main/extractor_metatypes.c:326 src/main/extractor_metatypes.c:327 #, fuzzy msgid "manager" msgstr "mpachetator" #: src/main/extractor_metatypes.c:328 src/main/extractor_metatypes.c:329 #, fuzzy msgid "revision number" msgstr "afieaz numrul versiunii" #: src/main/extractor_metatypes.c:330 #, fuzzy msgid "duration" msgstr "relaie" #: src/main/extractor_metatypes.c:331 msgid "play time for the medium" msgstr "" #: src/main/extractor_metatypes.c:332 msgid "album" msgstr "album" #: src/main/extractor_metatypes.c:333 msgid "name of the album" msgstr "" #: src/main/extractor_metatypes.c:335 msgid "artist" msgstr "artist" #: src/main/extractor_metatypes.c:336 msgid "name of the artist or band" msgstr "" #: src/main/extractor_metatypes.c:337 src/main/extractor_metatypes.c:338 msgid "genre" msgstr "gen" #: src/main/extractor_metatypes.c:339 msgid "track number" msgstr "" #: src/main/extractor_metatypes.c:340 msgid "original number of the track on the distribution medium" msgstr "" #: src/main/extractor_metatypes.c:341 #, fuzzy msgid "disk number" msgstr "Numr de fiier incorect" #: src/main/extractor_metatypes.c:342 msgid "number of the disk in a multi-disk (or volume) distribution" msgstr "" #: src/main/extractor_metatypes.c:343 msgid "performer" msgstr "" #: src/main/extractor_metatypes.c:344 msgid "" "The artist(s) who performed the work (conductor, orchestra, soloists, actor, " "etc.)" msgstr "" #: src/main/extractor_metatypes.c:346 msgid "contact" msgstr "contact" #: src/main/extractor_metatypes.c:347 msgid "Contact information for the creator or distributor" msgstr "" #: src/main/extractor_metatypes.c:348 #, fuzzy msgid "song version" msgstr "versiune" #: src/main/extractor_metatypes.c:349 msgid "name of the version of the song (i.e. remix information)" msgstr "" #: src/main/extractor_metatypes.c:350 #, fuzzy msgid "picture" msgstr "apertur" #: src/main/extractor_metatypes.c:351 msgid "associated misc. picture" msgstr "" #: src/main/extractor_metatypes.c:352 msgid "cover picture" msgstr "" #: src/main/extractor_metatypes.c:353 msgid "picture of the cover of the distribution medium" msgstr "" #: src/main/extractor_metatypes.c:354 #, fuzzy msgid "contributor picture" msgstr "contribuitor" #: src/main/extractor_metatypes.c:355 msgid "picture of one of the contributors" msgstr "" #: src/main/extractor_metatypes.c:357 msgid "event picture" msgstr "" #: src/main/extractor_metatypes.c:358 msgid "picture of an associated event" msgstr "" #: src/main/extractor_metatypes.c:359 msgid "logo" msgstr "" #: src/main/extractor_metatypes.c:360 msgid "logo of an associated organization" msgstr "" #: src/main/extractor_metatypes.c:361 msgid "broadcast television system" msgstr "" #: src/main/extractor_metatypes.c:362 msgid "name of the television system for which the data is coded" msgstr "" #: src/main/extractor_metatypes.c:363 #, fuzzy msgid "source device" msgstr "Nici un asemenea dispozitiv" #: src/main/extractor_metatypes.c:364 msgid "device used to create the object" msgstr "" #: src/main/extractor_metatypes.c:365 msgid "disclaimer" msgstr "repudiere" #: src/main/extractor_metatypes.c:366 #, fuzzy msgid "legal disclaimer" msgstr "repudiere" #: src/main/extractor_metatypes.c:368 msgid "warning" msgstr "avertisment" #: src/main/extractor_metatypes.c:369 msgid "warning about the nature of the content" msgstr "" #: src/main/extractor_metatypes.c:370 msgid "page order" msgstr "ordine pagini" #: src/main/extractor_metatypes.c:371 msgid "order of the pages" msgstr "" #: src/main/extractor_metatypes.c:372 msgid "writer" msgstr "" #: src/main/extractor_metatypes.c:373 #, fuzzy msgid "contributing writer" msgstr "contribuitor" #: src/main/extractor_metatypes.c:374 src/main/extractor_metatypes.c:375 #, fuzzy msgid "product version" msgstr "productor" #: src/main/extractor_metatypes.c:376 msgid "contributor" msgstr "contribuitor" #: src/main/extractor_metatypes.c:377 #, fuzzy msgid "name of a contributor" msgstr "contribuitor" #: src/main/extractor_metatypes.c:379 #, fuzzy msgid "movie director" msgstr "Nu este un director" #: src/main/extractor_metatypes.c:380 #, fuzzy msgid "name of the director" msgstr "Nu este un director" #: src/main/extractor_metatypes.c:381 msgid "network" msgstr "" #: src/main/extractor_metatypes.c:382 msgid "name of the broadcasting network or station" msgstr "" #: src/main/extractor_metatypes.c:383 msgid "show" msgstr "" #: src/main/extractor_metatypes.c:384 msgid "name of the show" msgstr "" #: src/main/extractor_metatypes.c:385 msgid "chapter name" msgstr "" #: src/main/extractor_metatypes.c:386 msgid "name of the chapter" msgstr "" #: src/main/extractor_metatypes.c:387 #, fuzzy msgid "song count" msgstr "numr de pagini" #: src/main/extractor_metatypes.c:388 #, fuzzy msgid "number of songs" msgstr "Numr legturi n afara domeniului" #: src/main/extractor_metatypes.c:390 msgid "starting song" msgstr "" #: src/main/extractor_metatypes.c:391 msgid "number of the first song to play" msgstr "" #: src/main/extractor_metatypes.c:392 #, fuzzy msgid "play counter" msgstr "numr de pagini" #: src/main/extractor_metatypes.c:393 msgid "number of times the media has been played" msgstr "" #: src/main/extractor_metatypes.c:394 msgid "conductor" msgstr "conductor" #: src/main/extractor_metatypes.c:395 #, fuzzy msgid "name of the conductor" msgstr "conductor" #: src/main/extractor_metatypes.c:396 #, fuzzy msgid "interpretation" msgstr "interpret()" #: src/main/extractor_metatypes.c:397 msgid "" "information about the people behind interpretations of an existing piece" msgstr "" #: src/main/extractor_metatypes.c:398 msgid "composer" msgstr "" #: src/main/extractor_metatypes.c:399 msgid "name of the composer" msgstr "" #: src/main/extractor_metatypes.c:401 src/main/extractor_metatypes.c:402 msgid "beats per minute" msgstr "" #: src/main/extractor_metatypes.c:403 msgid "encoded by" msgstr "" #: src/main/extractor_metatypes.c:404 msgid "name of person or organization that encoded the file" msgstr "" #: src/main/extractor_metatypes.c:405 msgid "original title" msgstr "" #: src/main/extractor_metatypes.c:406 msgid "title of the original work" msgstr "" #: src/main/extractor_metatypes.c:407 msgid "original artist" msgstr "" #: src/main/extractor_metatypes.c:408 msgid "name of the original artist" msgstr "" #: src/main/extractor_metatypes.c:409 msgid "original writer" msgstr "" #: src/main/extractor_metatypes.c:410 msgid "name of the original lyricist or writer" msgstr "" #: src/main/extractor_metatypes.c:412 msgid "original release year" msgstr "" #: src/main/extractor_metatypes.c:413 msgid "year of the original release" msgstr "" #: src/main/extractor_metatypes.c:414 msgid "original performer" msgstr "" #: src/main/extractor_metatypes.c:415 msgid "name of the original performer" msgstr "" #: src/main/extractor_metatypes.c:416 msgid "lyrics" msgstr "versuri" #: src/main/extractor_metatypes.c:417 msgid "lyrics of the song or text description of vocal activities" msgstr "" #: src/main/extractor_metatypes.c:418 #, fuzzy msgid "popularity" msgstr "prioritate" #: src/main/extractor_metatypes.c:419 msgid "information about the file's popularity" msgstr "" #: src/main/extractor_metatypes.c:420 #, fuzzy msgid "licensee" msgstr "licen" #: src/main/extractor_metatypes.c:421 msgid "name of the owner or licensee of the file" msgstr "" #: src/main/extractor_metatypes.c:423 msgid "musician credit list" msgstr "" #: src/main/extractor_metatypes.c:424 msgid "names of contributing musicians" msgstr "" #: src/main/extractor_metatypes.c:425 msgid "mood" msgstr "" #: src/main/extractor_metatypes.c:426 msgid "keywords reflecting the mood of the piece" msgstr "" #: src/main/extractor_metatypes.c:427 #, fuzzy msgid "subtitle" msgstr "titlu" #: src/main/extractor_metatypes.c:428 msgid "subtitle of this part" msgstr "" #: src/main/extractor_metatypes.c:429 #, fuzzy msgid "display type" msgstr "tipul media" #: src/main/extractor_metatypes.c:430 msgid "what rendering method should be used to display this item" msgstr "" #: src/main/extractor_metatypes.c:431 msgid "full data" msgstr "" #: src/main/extractor_metatypes.c:432 msgid "" "entry that contains the full, original binary data (not really meta data)" msgstr "" #: src/main/extractor_metatypes.c:434 #, fuzzy msgid "rating" msgstr "Latin" #: src/main/extractor_metatypes.c:435 msgid "rating of the content" msgstr "" #: src/main/extractor_metatypes.c:436 src/main/extractor_metatypes.c:437 msgid "organization" msgstr "organizaie" #: src/main/extractor_metatypes.c:438 src/main/extractor_metatypes.c:439 msgid "ripper" msgstr "" #: src/main/extractor_metatypes.c:440 src/main/extractor_metatypes.c:441 msgid "producer" msgstr "productor" #: src/main/extractor_metatypes.c:442 msgid "group" msgstr "grup" #: src/main/extractor_metatypes.c:443 msgid "name of the group or band" msgstr "" #: src/main/extractor_metatypes.c:445 #, fuzzy msgid "original filename" msgstr "nume_fiier" #: src/main/extractor_metatypes.c:446 msgid "name of the original file (reserved for GNUnet)" msgstr "" #: src/main/extractor_metatypes.c:447 #, fuzzy msgid "disc count" msgstr "numr de pagini" #: src/main/extractor_metatypes.c:448 msgid "count of discs inside collection this disc belongs to" msgstr "" #: src/main/extractor_metatypes.c:449 msgid "codec" msgstr "" #: src/main/extractor_metatypes.c:450 msgid "codec the data is stored in" msgstr "" #: src/main/extractor_metatypes.c:451 msgid "video codec" msgstr "" #: src/main/extractor_metatypes.c:452 msgid "codec the video data is stored in" msgstr "" #: src/main/extractor_metatypes.c:453 msgid "audio codec" msgstr "" #: src/main/extractor_metatypes.c:454 msgid "codec the audio data is stored in" msgstr "" #: src/main/extractor_metatypes.c:456 msgid "subtitle codec" msgstr "" #: src/main/extractor_metatypes.c:457 msgid "codec/format the subtitle data is stored in" msgstr "" #: src/main/extractor_metatypes.c:458 msgid "container format" msgstr "" #: src/main/extractor_metatypes.c:459 msgid "container format the data is stored in" msgstr "" #: src/main/extractor_metatypes.c:460 msgid "bitrate" msgstr "" #: src/main/extractor_metatypes.c:461 msgid "exact or average bitrate in bits/s" msgstr "" #: src/main/extractor_metatypes.c:462 msgid "nominal bitrate" msgstr "" #: src/main/extractor_metatypes.c:463 msgid "" "nominal bitrate in bits/s. The actual bitrate might be different from this " "target bitrate." msgstr "" #: src/main/extractor_metatypes.c:464 msgid "minimum bitrate" msgstr "" #: src/main/extractor_metatypes.c:465 msgid "minimum bitrate in bits/s" msgstr "" #: src/main/extractor_metatypes.c:467 msgid "maximum bitrate" msgstr "" #: src/main/extractor_metatypes.c:468 msgid "maximum bitrate in bits/s" msgstr "" #: src/main/extractor_metatypes.c:469 #, fuzzy msgid "serial" msgstr "Industrial" #: src/main/extractor_metatypes.c:470 #, fuzzy msgid "serial number of track" msgstr "Numr canal n afara domeniului" #: src/main/extractor_metatypes.c:471 msgid "encoder" msgstr "" #: src/main/extractor_metatypes.c:472 msgid "encoder used to encode this stream" msgstr "" #: src/main/extractor_metatypes.c:473 #, fuzzy msgid "encoder version" msgstr "versiune" #: src/main/extractor_metatypes.c:474 msgid "version of the encoder used to encode this stream" msgstr "" #: src/main/extractor_metatypes.c:475 msgid "track gain" msgstr "" #: src/main/extractor_metatypes.c:476 msgid "track gain in db" msgstr "" #: src/main/extractor_metatypes.c:478 msgid "track peak" msgstr "" #: src/main/extractor_metatypes.c:479 msgid "peak of the track" msgstr "" #: src/main/extractor_metatypes.c:480 #, fuzzy msgid "album gain" msgstr "album" #: src/main/extractor_metatypes.c:481 msgid "album gain in db" msgstr "" #: src/main/extractor_metatypes.c:482 #, fuzzy msgid "album peak" msgstr "album" #: src/main/extractor_metatypes.c:483 msgid "peak of the album" msgstr "" #: src/main/extractor_metatypes.c:484 msgid "reference level" msgstr "" #: src/main/extractor_metatypes.c:485 msgid "reference level of track and album gain values" msgstr "" #: src/main/extractor_metatypes.c:486 #, fuzzy msgid "location name" msgstr "locaie" #: src/main/extractor_metatypes.c:487 msgid "" "human readable descriptive location of where the media has been recorded or " "produced" msgstr "" #: src/main/extractor_metatypes.c:489 #, fuzzy msgid "location elevation" msgstr "locaie" #: src/main/extractor_metatypes.c:490 msgid "" "geo elevation of where the media has been recorded or produced in meters " "according to WGS84 (zero is average sea level)" msgstr "" #: src/main/extractor_metatypes.c:491 msgid "location horizontal error" msgstr "" #: src/main/extractor_metatypes.c:492 msgid "represents the expected error on the horizontal positioning in meters" msgstr "" #: src/main/extractor_metatypes.c:493 msgid "location movement speed" msgstr "" #: src/main/extractor_metatypes.c:494 msgid "" "speed of the capturing device when performing the capture. Represented in m/s" msgstr "" #: src/main/extractor_metatypes.c:495 msgid "location movement direction" msgstr "" #: src/main/extractor_metatypes.c:496 msgid "" "indicates the movement direction of the device performing the capture of a " "media. It is represented as degrees in floating point representation, 0 " "means the geographic north, and increases clockwise" msgstr "" #: src/main/extractor_metatypes.c:497 msgid "location capture direction" msgstr "" #: src/main/extractor_metatypes.c:498 msgid "" "indicates the direction the device is pointing to when capturing a media. It " "is represented as degrees in floating point representation, 0 means the " "geographic north, and increases clockwise" msgstr "" #: src/main/extractor_metatypes.c:500 msgid "show episode number" msgstr "" #: src/main/extractor_metatypes.c:501 msgid "number of the episode within a season/show" msgstr "" #: src/main/extractor_metatypes.c:502 #, fuzzy msgid "show season number" msgstr "afieaz numrul versiunii" #: src/main/extractor_metatypes.c:503 msgid "number of the season of a show/series" msgstr "" #: src/main/extractor_metatypes.c:504 #, fuzzy msgid "grouping" msgstr "grup" #: src/main/extractor_metatypes.c:505 msgid "" "groups together media that are related and spans multiple tracks. An example " "are multiple pieces of a concerto" msgstr "" #: src/main/extractor_metatypes.c:506 msgid "device manufacturer" msgstr "" #: src/main/extractor_metatypes.c:507 msgid "manufacturer of the device used to create the media" msgstr "" #: src/main/extractor_metatypes.c:508 #, fuzzy msgid "device model" msgstr "model de camer" #: src/main/extractor_metatypes.c:509 msgid "model of the device used to create the media" msgstr "" #: src/main/extractor_metatypes.c:511 #, fuzzy msgid "audio language" msgstr "limb" #: src/main/extractor_metatypes.c:512 msgid "language of the audio track" msgstr "" #: src/main/extractor_metatypes.c:513 msgid "channels" msgstr "" #: src/main/extractor_metatypes.c:514 msgid "number of audio channels" msgstr "" #: src/main/extractor_metatypes.c:515 msgid "sample rate" msgstr "" #: src/main/extractor_metatypes.c:516 msgid "sample rate of the audio track" msgstr "" #: src/main/extractor_metatypes.c:517 msgid "audio depth" msgstr "" #: src/main/extractor_metatypes.c:518 msgid "number of bits per audio sample" msgstr "" #: src/main/extractor_metatypes.c:519 msgid "audio bitrate" msgstr "" #: src/main/extractor_metatypes.c:520 msgid "bitrate of the audio track" msgstr "" #: src/main/extractor_metatypes.c:522 src/main/extractor_metatypes.c:523 msgid "maximum audio bitrate" msgstr "" #: src/main/extractor_metatypes.c:524 msgid "video dimensions" msgstr "" #: src/main/extractor_metatypes.c:525 msgid "width and height of the video track (WxH)" msgstr "" #: src/main/extractor_metatypes.c:526 msgid "video depth" msgstr "" #: src/main/extractor_metatypes.c:527 msgid "numbers of bits per pixel" msgstr "" #: src/main/extractor_metatypes.c:528 msgid "frame rate" msgstr "" #: src/main/extractor_metatypes.c:529 msgid "number of frames per second (as D/N or floating point)" msgstr "" #: src/main/extractor_metatypes.c:530 msgid "pixel aspect ratio" msgstr "" #: src/main/extractor_metatypes.c:531 msgid "pixel aspect ratio (as D/N)" msgstr "" #: src/main/extractor_metatypes.c:533 src/main/extractor_metatypes.c:534 msgid "video bitrate" msgstr "" #: src/main/extractor_metatypes.c:535 src/main/extractor_metatypes.c:536 msgid "maximum video bitrate" msgstr "" #: src/main/extractor_metatypes.c:537 #, fuzzy msgid "subtitle language" msgstr "limb" #: src/main/extractor_metatypes.c:538 msgid "language of the subtitle track" msgstr "" #: src/main/extractor_metatypes.c:539 #, fuzzy msgid "video language" msgstr "limb" #: src/main/extractor_metatypes.c:540 msgid "language of the video track" msgstr "" #: src/main/extractor_metatypes.c:541 msgid "table of contents" msgstr "" #: src/main/extractor_metatypes.c:542 msgid "chapters, contents or bookmarks (in xml format)" msgstr "" #: src/main/extractor_metatypes.c:544 msgid "video duration" msgstr "" #: src/main/extractor_metatypes.c:545 msgid "duration of a video stream" msgstr "" #: src/main/extractor_metatypes.c:546 msgid "audio duration" msgstr "" #: src/main/extractor_metatypes.c:547 msgid "duration of an audio stream" msgstr "" #: src/main/extractor_metatypes.c:548 msgid "subtitle duration" msgstr "" #: src/main/extractor_metatypes.c:549 msgid "duration of a subtitle stream" msgstr "" #: src/main/extractor_metatypes.c:551 msgid "audio preview" msgstr "" #: src/main/extractor_metatypes.c:552 #, fuzzy msgid "a preview of the file audio stream" msgstr "Dispozitivul nu este un flux (stream)" #: src/main/extractor_metatypes.c:554 src/main/extractor_metatypes.c:555 msgid "last" msgstr "" #: src/main/getopt.c:684 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: opiunea `%s' este ambigu\n" #: src/main/getopt.c:709 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: opiunea `--%s' nu permite un argument\n" #: src/main/getopt.c:715 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: opiunea `%c%s' nu permite un argument\n" #: src/main/getopt.c:732 src/main/getopt.c:903 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: opiunea `%s' necesit un argument\n" #: src/main/getopt.c:761 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: opiune nerecunoscut `--%s'\n" #: src/main/getopt.c:765 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: opiune nerecunoscut `%c%s'\n" #: src/main/getopt.c:791 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: opiune ilegal -- %c\n" #: src/main/getopt.c:793 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: opiune ilegal -- %c\n" #: src/main/getopt.c:822 src/main/getopt.c:952 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: opiunea necesit un argument -- %c\n" #: src/main/getopt.c:870 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: opiunea `-W %s' este ambigu\n" #: src/main/getopt.c:888 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: opiunea `-W %s' nu permite un argument\n" #: src/plugins/flac_extractor.c:322 #, c-format msgid "%u Hz, %u channels" msgstr "" #: src/plugins/man_extractor.c:215 msgid "Commands" msgstr "Comenzi" #: src/plugins/man_extractor.c:219 msgid "System calls" msgstr "Apeluri sistem" #: src/plugins/man_extractor.c:223 msgid "Library calls" msgstr "Apeluri de bibliotec" #: src/plugins/man_extractor.c:227 msgid "Special files" msgstr "Fiiere speciale" #: src/plugins/man_extractor.c:231 msgid "File formats and conventions" msgstr "Formate de fiiere i convenii" #: src/plugins/man_extractor.c:235 msgid "Games" msgstr "Jocuri" #: src/plugins/man_extractor.c:239 msgid "Conventions and miscellaneous" msgstr "Convenii i diverse" #: src/plugins/man_extractor.c:243 msgid "System management commands" msgstr "Comenzi pentru managementul sistemului" #: src/plugins/man_extractor.c:247 msgid "Kernel routines" msgstr "Proceduri kernel" #: src/plugins/ole2_extractor.c:387 msgid "No Proofing" msgstr "" #: src/plugins/ole2_extractor.c:395 msgid "Traditional Chinese" msgstr "" #: src/plugins/ole2_extractor.c:397 msgid "Simplified Chinese" msgstr "" #: src/plugins/ole2_extractor.c:405 msgid "Swiss German" msgstr "" #: src/plugins/ole2_extractor.c:409 msgid "U.S. English" msgstr "" #: src/plugins/ole2_extractor.c:411 msgid "U.K. English" msgstr "" #: src/plugins/ole2_extractor.c:413 msgid "Australian English" msgstr "" #: src/plugins/ole2_extractor.c:415 msgid "Castilian Spanish" msgstr "" #: src/plugins/ole2_extractor.c:417 msgid "Mexican Spanish" msgstr "" #: src/plugins/ole2_extractor.c:423 msgid "Belgian French" msgstr "" #: src/plugins/ole2_extractor.c:425 msgid "Canadian French" msgstr "" #: src/plugins/ole2_extractor.c:427 msgid "Swiss French" msgstr "" #: src/plugins/ole2_extractor.c:437 msgid "Swiss Italian" msgstr "" #: src/plugins/ole2_extractor.c:445 msgid "Belgian Dutch" msgstr "" #: src/plugins/ole2_extractor.c:447 msgid "Norwegian Bokmal" msgstr "" #: src/plugins/ole2_extractor.c:457 msgid "Rhaeto-Romanic" msgstr "" #: src/plugins/ole2_extractor.c:463 msgid "Croato-Serbian (Latin)" msgstr "" #: src/plugins/ole2_extractor.c:465 msgid "Serbo-Croatian (Cyrillic)" msgstr "" #: src/plugins/ole2_extractor.c:493 msgid "Farsi" msgstr "" #: src/plugins/ole2_extractor.c:578 #, c-format msgid "Revision #%u: Author `%s' worked on `%s'" msgstr "" #: src/plugins/riff_extractor.c:145 #, c-format msgid "codec: %s, %u fps, %u ms" msgstr "codec: %s, %u fps, %u ms" #: src/plugins/wav_extractor.c:120 msgid "mono" msgstr "mono" #: src/plugins/wav_extractor.c:120 msgid "stereo" msgstr "stereo" #~ msgid "Source RPM %d.%d" #~ msgstr "Surs RPM %d.%d" #~ msgid "Binary RPM %d.%d" #~ msgstr "Binar RPM %d.%d" #~ msgid "" #~ "Please provide the name of the language you are building\n" #~ "a dictionary for. For example:\n" #~ msgstr "" #~ "V rugm furnizai numele limbii pentru care contruii\n" #~ "un dicionar. De exemplu:\n" #~ msgid "Error opening file '%s': %s\n" #~ msgstr "Eroare deschidere fiier '%s': %s\n" #~ msgid "" #~ "Error allocating: %s\n" #~ "." #~ msgstr "" #~ "Eroare de alocare: %s\n" #~ "." #~ msgid "Increase ALLOCSIZE (in %s).\n" #~ msgstr "Cretei ALLOCSIZE (n %s).\n" #~ msgid "Fatal: could not allocate (%s at %s:%d).\n" #~ msgstr "Fatal: nu am putut aloca (%s la %s:%d).\n" #~ msgid "%ux%u dots per cm" #~ msgstr "%ux%u puncte pe cm" #~ msgid "%ux%u dots per inch?" #~ msgstr "%ux%u puncte pe inci?" #~ msgid "Blues" #~ msgstr "Blues" #~ msgid "Classic Rock" #~ msgstr "Rock clasic" #~ msgid "Dance" #~ msgstr "Dance" #~ msgid "Disco" #~ msgstr "Disco" #~ msgid "Funk" #~ msgstr "Funk" #~ msgid "Grunge" #~ msgstr "Grunge" #~ msgid "Hip-Hop" #~ msgstr "Hip-Hop" #~ msgid "Jazz" #~ msgstr "Jazz" #~ msgid "Metal" #~ msgstr "Metal" #~ msgid "New Age" #~ msgstr "New Age" #~ msgid "Oldies" #~ msgstr "Oldies" #~ msgid "Other" #~ msgstr "Altele" #~ msgid "Pop" #~ msgstr "Pop" #~ msgid "R&B" #~ msgstr "R&B" #~ msgid "Rap" #~ msgstr "Rap" #~ msgid "Reggae" #~ msgstr "Reggae" #~ msgid "Rock" #~ msgstr "Rock" #~ msgid "Techno" #~ msgstr "Techno" #~ msgid "Alternative" #~ msgstr "Alternative" #~ msgid "Ska" #~ msgstr "Ska" #~ msgid "Death Metal" #~ msgstr "Death Metal" #~ msgid "Pranks" #~ msgstr "Pranks" #~ msgid "Soundtrack" #~ msgstr "Soundtrack" #~ msgid "Euro-Techno" #~ msgstr "Euro-Techno" #~ msgid "Ambient" #~ msgstr "Ambient" #~ msgid "Trip-Hop" #~ msgstr "Trip-Hop" #~ msgid "Vocal" #~ msgstr "Vocal" #~ msgid "Jazz+Funk" #~ msgstr "Jazz+Funk" #~ msgid "Fusion" #~ msgstr "Fusion" #~ msgid "Trance" #~ msgstr "Trance" #~ msgid "Classical" #~ msgstr "Clasic" #~ msgid "Instrumental" #~ msgstr "Instrumental" #~ msgid "Acid" #~ msgstr "Acid" #~ msgid "House" #~ msgstr "House" #~ msgid "Game" #~ msgstr "Joc" #~ msgid "Sound Clip" #~ msgstr "Clip sonor" #~ msgid "Gospel" #~ msgstr "Gospel" #~ msgid "Noise" #~ msgstr "Zgomot" #~ msgid "Alt. Rock" #~ msgstr "Rock Alternativ" #~ msgid "Bass" #~ msgstr "Bass" #~ msgid "Soul" #~ msgstr "Soul" #~ msgid "Punk" #~ msgstr "Punk" #~ msgid "Space" #~ msgstr "Spaiu" #~ msgid "Meditative" #~ msgstr "Meditativ" #~ msgid "Instrumental Pop" #~ msgstr "Instrumental Pop" #~ msgid "Instrumental Rock" #~ msgstr "Instrumental Rock" #~ msgid "Ethnic" #~ msgstr "Ethnic" #~ msgid "Gothic" #~ msgstr "Gothic" #~ msgid "Darkwave" #~ msgstr "Darkwave" #~ msgid "Techno-Industrial" #~ msgstr "Techno-Industrial" #~ msgid "Electronic" #~ msgstr "Electronic" #~ msgid "Pop-Folk" #~ msgstr "Pop-Folk" #~ msgid "Eurodance" #~ msgstr "Eurodance" #~ msgid "Dream" #~ msgstr "Dream" #~ msgid "Southern Rock" #~ msgstr "Southern Rock" #~ msgid "Comedy" #~ msgstr "Comedy" #~ msgid "Cult" #~ msgstr "Cult" #~ msgid "Gangsta Rap" #~ msgstr "Gangsta Rap" #~ msgid "Top 40" #~ msgstr "Top 40" #~ msgid "Christian Rap" #~ msgstr "Christian Rap" #~ msgid "Pop/Funk" #~ msgstr "Pop/Funk" #~ msgid "Jungle" #~ msgstr "Jungle" #~ msgid "Native American" #~ msgstr "Native American" #~ msgid "Cabaret" #~ msgstr "Cabaret" #~ msgid "New Wave" #~ msgstr "New Wave" #~ msgid "Psychedelic" #~ msgstr "Psychedelic" #~ msgid "Rave" #~ msgstr "Rave" #~ msgid "Showtunes" #~ msgstr "Showtunes" #~ msgid "Trailer" #~ msgstr "Trailer" #~ msgid "Lo-Fi" #~ msgstr "Lo-Fi" #~ msgid "Tribal" #~ msgstr "Tribal" #~ msgid "Acid Punk" #~ msgstr "Acid Punk" #~ msgid "Acid Jazz" #~ msgstr "Acid Jazz" #~ msgid "Polka" #~ msgstr "Polka" #~ msgid "Retro" #~ msgstr "Retro" #~ msgid "Musical" #~ msgstr "Musical" #~ msgid "Rock & Roll" #~ msgstr "Rock & Roll" #~ msgid "Hard Rock" #~ msgstr "Hard Rock" #~ msgid "Folk" #~ msgstr "Folk" #~ msgid "Folk/Rock" #~ msgstr "Folk/Rock" #~ msgid "National Folk" #~ msgstr "National Folk" #~ msgid "Swing" #~ msgstr "Swing" #~ msgid "Fast-Fusion" #~ msgstr "Fast-Fusion" #~ msgid "Bebob" #~ msgstr "Bebob" #~ msgid "Revival" #~ msgstr "Revival" #~ msgid "Celtic" #~ msgstr "Celtic" #~ msgid "Bluegrass" #~ msgstr "Bluegrass" #~ msgid "Avantgarde" #~ msgstr "Avantgarde" #~ msgid "Gothic Rock" #~ msgstr "Gothic Rock" #~ msgid "Progressive Rock" #~ msgstr "Progressive Rock" #~ msgid "Psychedelic Rock" #~ msgstr "Psychedelic Rock" #~ msgid "Symphonic Rock" #~ msgstr "Symphonic Rock" #~ msgid "Slow Rock" #~ msgstr "Slow Rock" #~ msgid "Big Band" #~ msgstr "Big Band" #~ msgid "Chorus" #~ msgstr "Chorus" #~ msgid "Easy Listening" #~ msgstr "Easy Listening" #~ msgid "Acoustic" #~ msgstr "Acoustic" #~ msgid "Humour" #~ msgstr "Umor" #~ msgid "Speech" #~ msgstr "Discurs" #~ msgid "Chanson" #~ msgstr "Chanson" #~ msgid "Opera" #~ msgstr "Oper" #~ msgid "Chamber Music" #~ msgstr "Muzic de camer" #~ msgid "Sonata" #~ msgstr "Sonet" #~ msgid "Symphony" #~ msgstr "Simfonie" #~ msgid "Booty Bass" #~ msgstr "Booty Bass" #~ msgid "Primus" #~ msgstr "Primus" #~ msgid "Porn Groove" #~ msgstr "Porn Groove" #~ msgid "Satire" #~ msgstr "Satire" #~ msgid "Slow Jam" #~ msgstr "Slow Jam" #~ msgid "Club" #~ msgstr "Club" #~ msgid "Tango" #~ msgstr "Tango" #~ msgid "Samba" #~ msgstr "Samba" #~ msgid "Folklore" #~ msgstr "Folklore" #~ msgid "Ballad" #~ msgstr "Ballad" #~ msgid "Power Ballad" #~ msgstr "Power Ballad" #~ msgid "Rhythmic Soul" #~ msgstr "Rhythmic Soul" #~ msgid "Freestyle" #~ msgstr "Freestyle" #~ msgid "Duet" #~ msgstr "Duet" #~ msgid "Punk Rock" #~ msgstr "Punk Rock" #~ msgid "Drum Solo" #~ msgstr "Drum Solo" #~ msgid "A Cappella" #~ msgstr "A Cappella" #~ msgid "Euro-House" #~ msgstr "Euro-House" #~ msgid "Dance Hall" #~ msgstr "Dance Hall" #~ msgid "Goa" #~ msgstr "Goa" #~ msgid "Drum & Bass" #~ msgstr "Drum & Bass" #~ msgid "Club-House" #~ msgstr "Club-House" #~ msgid "Hardcore" #~ msgstr "Hardcore" #~ msgid "Terror" #~ msgstr "Terror" #~ msgid "Indie" #~ msgstr "Indie" #~ msgid "BritPop" #~ msgstr "BritPop" #~ msgid "Negerpunk" #~ msgstr "Negerpunk" #~ msgid "Polsk Punk" #~ msgstr "Polsk Punk" #~ msgid "Beat" #~ msgstr "Beat" #~ msgid "Christian Gangsta Rap" #~ msgstr "Christian Gangsta Rap" #~ msgid "Heavy Metal" #~ msgstr "Heavy Metal" #~ msgid "Black Metal" #~ msgstr "Black Metal" #~ msgid "Crossover" #~ msgstr "Crossover" #~ msgid "Contemporary Christian" #~ msgstr "Contemporary Christian" #~ msgid "Christian Rock" #~ msgstr "Christian Rock" #~ msgid "Merengue" #~ msgstr "Merengue" #~ msgid "Salsa" #~ msgstr "Salsa" #~ msgid "Thrash Metal" #~ msgstr "Thrash Metal" #~ msgid "Anime" #~ msgstr "Anime" #~ msgid "JPop" #~ msgstr "JPop" #~ msgid "Synthpop" #~ msgstr "Synthpop" #~ msgid "(variable bps)" #~ msgstr "(bps variabil)" #~ msgid "do not remove any duplicates" #~ msgstr "nu ndeprta nici un duplicat" #~ msgid "" #~ "use the generic plaintext extractor for the language with the 2-letter " #~ "language code LANG" #~ msgstr "" #~ "folosete extractorul text-simplu generic pentru limba cu codul de limb " #~ "din 2 litere LANG" #~ msgid "remove duplicates only if types match" #~ msgstr "ndeprteaz duplicatele numai dac tipul este acelai" #~ msgid "use the filename as a keyword (loads filename-extractor plugin)" #~ msgstr "" #~ "folosete numele de fiier ca i cuvnt cheie (ncarc plugin nume_fiier-" #~ "extractor)" #~ msgid "compute hash using the given ALGORITHM (currently sha1 or md5)" #~ msgstr "" #~ "calculeaz tabela de dispersie (hash) folosind ALGORITM-ul dat (curent " #~ "sha1 sau md5)" #~ msgid "remove duplicates even if keyword types do not match" #~ msgstr "" #~ "ndeprteaz duplicatele chiar dac tipurile cuvintelor cheie nu sunt " #~ "aceleai" #~ msgid "use keyword splitting (loads split-extractor plugin)" #~ msgstr "" #~ "folosete spargere dup cuvinte cheie (ncarc plugin-ul split-extractor)" #~ msgid "INVALID TYPE - %s\n" #~ msgstr "TIP INVALID - %s\n" #~ msgid "date" #~ msgstr "data" #~ msgid "coverage" #~ msgstr "acoperire" #~ msgid "translated" #~ msgstr "tradus" #~ msgid "used fonts" #~ msgstr "fonturi folosite" #~ msgid "release" #~ msgstr "release" #~ msgid "size" #~ msgstr "mrime" #~ msgid "os" #~ msgstr "sistem operare" #~ msgid "category" #~ msgstr "categorie" #~ msgid "owner" #~ msgstr "proprietar" #~ msgid "focal length (35mm equivalent)" #~ msgstr "lungime focal (echivalent 35mm)" #~ msgid "" #~ "Resolving symbol '%s' in library '%s' failed, so I tried '%s', but that " #~ "failed also. Errors are: '%s' and '%s'.\n" #~ msgstr "" #~ "Rezolvarea simbolului '%s' n biblioteca '%s' a euat, aa c am ncercat " #~ "'%s', dar i acesta a euat. Erorile sunt: '%s' i '%s'.\n" #~ msgid "Loading '%s' plugin failed: %s\n" #~ msgstr "ncrcarea plugin-ului '%s' a euat: %s\n" #~ msgid "Unloading plugin '%s' failed!\n" #~ msgstr "Descrcarea plugin-ului '%s' a euat!\n" #~ msgid "No error" #~ msgstr "Nici o eroare" #~ msgid "Unknown host" #~ msgstr "Gazd necunoscut" #~ msgid "Host name lookup failure" #~ msgstr "Cutarea (lookup) numelui gazdei a euat" #~ msgid "Unknown server error" #~ msgstr "Eroare server necunoscut" #~ msgid "No address associated with name" #~ msgstr "Nici o adres asociat cu numele" #~ msgid "Internal resolver error" #~ msgstr "Eroare resolver intern" #~ msgid "Unknown resolver error" #~ msgstr "Eroare resolver necunoscut" #~ msgid "Cannot determine root directory (%s)\n" #~ msgstr "Nu pot determina directorul root (%s)\n" #~ msgid "Cannot determine home directory (%s)\n" #~ msgstr "Nu pot determina directorul acas (%s)\n" #~ msgid "Not super-user" #~ msgstr "Nu suntei super-utilizator" #~ msgid "No such file or directory" #~ msgstr "Nici un asemenea fiier sau director" #~ msgid "No such process" #~ msgstr "Nici un asemenea proces" #~ msgid "Interrupted system call" #~ msgstr "Apel sistem ntrerupt" #~ msgid "I/O error" #~ msgstr "Eroare I/O" #~ msgid "No such device or address" #~ msgstr "Nici un asemenea dispozitiv sau adres" #~ msgid "Arg list too long" #~ msgstr "List de argumente prea lung" #~ msgid "Exec format error" #~ msgstr "Eroare format exec" #~ msgid "No children" #~ msgstr "Nici un copil" #~ msgid "Resource unavailable or operation would block, try again" #~ msgstr "Resurs indisponibil sau operaia s-ar bloca, ncercai din nou" #~ msgid "Not enough memory" #~ msgstr "Memorie insuficient" #~ msgid "Permission denied" #~ msgstr "Permisiune refuzat" #~ msgid "Bad address" #~ msgstr "Adresa incorect" #~ msgid "Block device required" #~ msgstr "Dispozitiv bloc necesar" #~ msgid "Mount device busy" #~ msgstr "Dispozitiv montare ocupat" #~ msgid "File exists" #~ msgstr "Fiierul exist" #~ msgid "Cross-device link" #~ msgstr "Legtur (link) ntre-dispozitive" #~ msgid "Is a directory" #~ msgstr "Este un director" #~ msgid "Invalid argument" #~ msgstr "Argument invalide" #~ msgid "Too many open files in system" #~ msgstr "Prea multe fiiere deschise n sistem" #~ msgid "Too many open files" #~ msgstr "Prea multe fiiere deschise" #~ msgid "Not a typewriter" #~ msgstr "Nu este o main de scris (typewriter)" #~ msgid "Text file busy" #~ msgstr "Fiier text ocupat" #~ msgid "File too large" #~ msgstr "Fiier prea mare" #~ msgid "No space left on device" #~ msgstr "Spaiu indisponibil pe dispozitiv" #~ msgid "Illegal seek" #~ msgstr "Cutare ilegal" #~ msgid "Read only file system" #~ msgstr "Citete numai sistemul de fiiere" #~ msgid "Too many links" #~ msgstr "Prea multe legturi (links)" #~ msgid "Broken pipe" #~ msgstr "Pipe spart()" #~ msgid "Math arg out of domain of func" #~ msgstr "Argument matematic n afara domeniului funciei" #~ msgid "Math result not representable" #~ msgstr "Rezultatul matematic nu este reprezentabil" #~ msgid "No message of desired type" #~ msgstr "Nici un mesaj de tipul dorit" #~ msgid "Identifier removed" #~ msgstr "Identificator ndeprtat" #~ msgid "Level 2 not synchronized" #~ msgstr "Nivelul 2 nesincronizat" #~ msgid "Level 3 halted" #~ msgstr "Nivelul 3 oprit" #~ msgid "Level 3 reset" #~ msgstr "Nivelul 3 resetat" #~ msgid "Protocol driver not attached" #~ msgstr "Driver-ul de protocol nu este ataat" #~ msgid "No CSI structure available" #~ msgstr "Nici o structur CSI disponibil" #~ msgid "Level 2 halted" #~ msgstr "Nivelul 2 oprit" #~ msgid "Deadlock condition" #~ msgstr "Condiie blocare (Deadlock)" #~ msgid "No record locks available" #~ msgstr "Nici o ncuietoare de articol (record lock) disponibil" #~ msgid "Invalid exchange" #~ msgstr "Schimbare invalid" #~ msgid "Invalid request descriptor" #~ msgstr "Descriptor de cerere invalid" #~ msgid "Exchange full" #~ msgstr "Schimbare ntreag" #~ msgid "No anode" #~ msgstr "Nici un anode" #~ msgid "Invalid request code" #~ msgstr "Cod de cerere invalid" #~ msgid "Invalid slot" #~ msgstr "Loc (slot) invalid" #~ msgid "File locking deadlock error" #~ msgstr "Eroare la descuierea (locking deadlock) fiierului" #~ msgid "Bad font file fmt" #~ msgstr "Format fiier font incorect" #~ msgid "No data (for no delay io)" #~ msgstr "Nici o dat (pentru intrare/ieire fr ntrziere)" #~ msgid "Timer expired" #~ msgstr "Cronometru expirat" #~ msgid "Out of streams resources" #~ msgstr "Resurse n afara fluxurilor" #~ msgid "Machine is not on the network" #~ msgstr "Maina nu este pe reea" #~ msgid "Package not installed" #~ msgstr "Pachet neinstalat" #~ msgid "The object is remote" #~ msgstr "Obiectul este ndeprtat (remote)" #~ msgid "The link has been severed" #~ msgstr "Legtura a fost ntrerupt" #~ msgid "Advertise error" #~ msgstr "Eroare reclamare" #~ msgid "Srmount error" #~ msgstr "Eroare Srmount" #~ msgid "Communication error on send" #~ msgstr "Eroare de comunicare la trimitere" #~ msgid "Protocol error" #~ msgstr "Eroare protocol" #~ msgid "Multihop attempted" #~ msgstr "A fost ncercat multihop" #~ msgid "Inode is remote (not really error)" #~ msgstr "Inode este ndeprtat (n realitate nu este o eroare)" #~ msgid "Cross mount point (not really error)" #~ msgstr "Punct de montare ncruciat (n realitate nu este o eroare)" #~ msgid "Trying to read unreadable message" #~ msgstr "ncercare de citire a unui mesaj de necitit" #~ msgid "Given log. name not unique" #~ msgstr "Numele de jurnal (log) furnizat nu este unic" #~ msgid "f.d. invalid for this operation" #~ msgstr "f.d. invalid pentru aceast operaie" #~ msgid "Remote address changed" #~ msgstr "Adresa ndeprtat (remote) schimbat" #~ msgid "Can't access a needed shared lib" #~ msgstr "Nu pot accesa o bibliotec shared necesar" #~ msgid "Accessing a corrupted shared lib" #~ msgstr "Accesez o bibliotec shared corupt" #~ msgid ".lib section in a.out corrupted" #~ msgstr "seciunea .lib n a.out este corupt" #~ msgid "Attempting to link in too many libs" #~ msgstr "ncercare de legare (link) n prea multe biblioteci" #~ msgid "Attempting to exec a shared library" #~ msgstr "ncercare de executare a unei biblioteci shared" #~ msgid "Function not implemented" #~ msgstr "Funcia nu este implematat" #~ msgid "No more files" #~ msgstr "Nici un alt fiier" #~ msgid "Directory not empty" #~ msgstr "Directorul nu este gol" #~ msgid "File or path name too long" #~ msgstr "Numele fiierului sau cii este prea lung" #~ msgid "Too many symbolic links" #~ msgstr "Pre multe legturi simbolice" #~ msgid "Operation not supported on transport endpoint" #~ msgstr "Operaia nu este suportat pe transport endpoint" #~ msgid "Protocol family not supported" #~ msgstr "Familie de protocoale nesuportat" #~ msgid "Connection reset by peer" #~ msgstr "Conectare resetat de pereche" #~ msgid "No buffer space available" #~ msgstr "Nici un spaiu de buffer disponibil" #~ msgid "Address family not supported by protocol family" #~ msgstr "Familia de adrese nu este suportat de familia de protocoale" #~ msgid "Protocol wrong type for socket" #~ msgstr "Tip greit de protocol pentru socket" #~ msgid "Socket operation on non-socket" #~ msgstr "Operaiune socket pe non-socket" #~ msgid "Protocol not available" #~ msgstr "Protocol indisponibil" #~ msgid "Can't send after socket shutdown" #~ msgstr "Nu pot trimite dup nchiderea (shutdown) socket-ului" #~ msgid "Connection refused" #~ msgstr "Conectare refuzat" #~ msgid "Address already in use" #~ msgstr "Adresa este deja n uz" #~ msgid "Connection aborted" #~ msgstr "Conectare abandonat" #~ msgid "Network is unreachable" #~ msgstr "Reeaua nu poate fi atins" #~ msgid "Network interface is not configured" #~ msgstr "Interfaa de reea nu este configurat" #~ msgid "Connection timed out" #~ msgstr "Conectare expirat (timed out)" #~ msgid "Host is down" #~ msgstr "Gazda este indisponibil (down)" #~ msgid "Host is unreachable" #~ msgstr "Gazda este de neatins (unreachable)" #~ msgid "Connection already in progress" #~ msgstr "Conectare deja n progres" #~ msgid "Socket already connected" #~ msgstr "Socket deja conectat" #~ msgid "Destination address required" #~ msgstr "Adresa destinaie necesar" #~ msgid "Message too long" #~ msgstr "Mesaj prea lung" #~ msgid "Unknown protocol" #~ msgstr "Protocol necunoscut" #~ msgid "Socket type not supported" #~ msgstr "Tip de socket nesuportat" #~ msgid "Address not available" #~ msgstr "Adresa nu este disponibil" #~ msgid "Connection aborted by network" #~ msgstr "Conectare abandonat de reea" #~ msgid "Socket is already connected" #~ msgstr "Socket-ul este deja conectat" #~ msgid "Socket is not connected" #~ msgstr "Socket-ul nu este conectat" #~ msgid "Too many references: cannot splice" #~ msgstr "Prea multe referine: nu le pot mbina" #~ msgid "Too many processes" #~ msgstr "Prea multe procese" #~ msgid "Too many users" #~ msgstr "Prea muli utilizatori" #~ msgid "Disk quota exceeded" #~ msgstr "Cota de disc depit" #~ msgid "Unknown error" #~ msgstr "Eroare necunoscut" #~ msgid "Not supported" #~ msgstr "NU este suportat()" #~ msgid "No medium (in tape drive)" #~ msgstr "Nici un mediu (n unitatea de band)" #~ msgid "No such host or network path" #~ msgstr "Nici o asemenea gazd sau cale de reea" #~ msgid "Filename exists with different case" #~ msgstr "Numele de fiier exist cu cazul caracterelor diferit" #~ msgid "ERROR: Unknown error %i in %s\n" #~ msgstr "EROARE: Eroare necunoscut %i n %s\n" libextractor-1.3/po/it.po0000644000175000017500000014221212255661612012402 00000000000000# Italian translation for libextractor. # Copyright (C) 2010 Free Software Foundation, Inc. # This file is distributed under the same license as the libextractor package. # Sergio Zanchetta , 2010. # msgid "" msgstr "" "Project-Id-Version: libextractor-0.6.0\n" "Report-Msgid-Bugs-To: libextractor@gnu.org\n" "POT-Creation-Date: 2013-12-22 23:11+0100\n" "PO-Revision-Date: 2010-09-30 23:41+0200\n" "Last-Translator: Sergio Zanchetta \n" "Language-Team: Italian \n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: src/main/extract.c:132 #, c-format msgid "" "Usage: %s\n" "%s\n" "\n" msgstr "" "Uso: %s\n" "%s\n" "\n" #: src/main/extract.c:135 #, c-format msgid "" "Arguments mandatory for long options are also mandatory for short options.\n" msgstr "" #: src/main/extract.c:217 msgid "print output in bibtex format" msgstr "" #: src/main/extract.c:219 msgid "produce grep-friendly output (all results on one line per file)" msgstr "" #: src/main/extract.c:221 msgid "print this help" msgstr "" #: src/main/extract.c:223 msgid "run plugins in-process (simplifies debugging)" msgstr "" #: src/main/extract.c:225 msgid "read data from file into memory and extract from memory" msgstr "" #: src/main/extract.c:227 msgid "load an extractor plugin named LIBRARY" msgstr "" #: src/main/extract.c:229 msgid "list all keyword types" msgstr "" #: src/main/extract.c:231 msgid "do not use the default set of extractor plugins" msgstr "" #: src/main/extract.c:233 msgid "print only keywords of the given TYPE (use -L to get a list)" msgstr "" #: src/main/extract.c:235 msgid "print the version number" msgstr "" #: src/main/extract.c:237 msgid "be verbose" msgstr "" #: src/main/extract.c:239 msgid "do not print keywords of the given TYPE" msgstr "" #: src/main/extract.c:242 msgid "extract [OPTIONS] [FILENAME]*" msgstr "" #: src/main/extract.c:243 msgid "Extract metadata from files." msgstr "" #: src/main/extract.c:288 #, c-format msgid "Found by `%s' plugin:\n" msgstr "" #: src/main/extract.c:291 src/main/extract.c:378 #: src/main/extractor_metatypes.c:145 src/main/extractor_print.c:86 #: src/main/extractor_print.c:96 msgid "unknown" msgstr "" #: src/main/extract.c:296 #, c-format msgid "%s - (unknown, %u bytes)\n" msgstr "" #: src/main/extract.c:325 #, c-format msgid "%s - (binary, %u bytes)\n" msgstr "%s - (binario, %u bite)\n" #: src/main/extract.c:809 src/main/extract.c:821 msgid "" "Illegal combination of options, cannot combine multiple styles of printing.\n" msgstr "" #: src/main/extract.c:854 #, c-format msgid "You must specify an argument for the `%s' option (option ignored).\n" msgstr "" "Deve essere specificato un argomento per l'opzione \"%s\" (opzione " "ignorata).\n" #: src/main/extract.c:923 msgid "Use --help to get a list of options.\n" msgstr "Usare --help per ottenere un elenco di opzioni.\n" #: src/main/extract.c:964 #, fuzzy msgid "% BiBTeX file\n" msgstr "%% file BiBTeX\n" #: src/main/extract.c:972 #, c-format msgid "Keywords for file %s:\n" msgstr "" #: src/main/extractor.c:676 #, c-format msgid "Initialization of plugin mechanism failed: %s!\n" msgstr "" #: src/main/extractor_metatypes.c:46 msgid "reserved" msgstr "riservato" #: src/main/extractor_metatypes.c:47 msgid "reserved value, do not use" msgstr "valore riservato, non usare" #: src/main/extractor_metatypes.c:48 msgid "mimetype" msgstr "mimetype" #: src/main/extractor_metatypes.c:49 msgid "mime type" msgstr "mime type" #: src/main/extractor_metatypes.c:50 msgid "embedded filename" msgstr "" #: src/main/extractor_metatypes.c:51 msgid "filename that was embedded (not necessarily the current filename)" msgstr "" #: src/main/extractor_metatypes.c:52 msgid "comment" msgstr "commento" #: src/main/extractor_metatypes.c:53 msgid "comment about the content" msgstr "commento sul contenuto" #: src/main/extractor_metatypes.c:54 msgid "title" msgstr "titolo" #: src/main/extractor_metatypes.c:55 msgid "title of the work" msgstr "titolo del lavoro" #: src/main/extractor_metatypes.c:57 msgid "book title" msgstr "titolo del libro" #: src/main/extractor_metatypes.c:58 msgid "title of the book containing the work" msgstr "titolo del libro contenente il lavoro" #: src/main/extractor_metatypes.c:59 msgid "book edition" msgstr "edizione del libro" #: src/main/extractor_metatypes.c:60 msgid "edition of the book (or book containing the work)" msgstr "edizione del libro (o libro contenente il lavoro)" #: src/main/extractor_metatypes.c:61 msgid "book chapter" msgstr "capitolo del libro" #: src/main/extractor_metatypes.c:62 msgid "chapter number" msgstr "numero del capitolo" #: src/main/extractor_metatypes.c:63 msgid "journal name" msgstr "" #: src/main/extractor_metatypes.c:64 msgid "journal or magazine the work was published in" msgstr "" #: src/main/extractor_metatypes.c:65 msgid "journal volume" msgstr "" #: src/main/extractor_metatypes.c:66 msgid "volume of a journal or multi-volume book" msgstr "" #: src/main/extractor_metatypes.c:68 msgid "journal number" msgstr "" #: src/main/extractor_metatypes.c:69 msgid "number of a journal, magazine or tech-report" msgstr "" #: src/main/extractor_metatypes.c:70 msgid "page count" msgstr "" #: src/main/extractor_metatypes.c:71 msgid "total number of pages of the work" msgstr "numero totale di pagine del lavoro" #: src/main/extractor_metatypes.c:72 msgid "page range" msgstr "" #: src/main/extractor_metatypes.c:73 msgid "page numbers of the publication in the respective journal or book" msgstr "" #: src/main/extractor_metatypes.c:74 msgid "author name" msgstr "nome dell'autore" #: src/main/extractor_metatypes.c:75 msgid "name of the author(s)" msgstr "nome dell'autore(i)" #: src/main/extractor_metatypes.c:76 msgid "author email" msgstr "email dell'autore" #: src/main/extractor_metatypes.c:77 msgid "e-mail of the author(s)" msgstr "email dell'autore(i)" #: src/main/extractor_metatypes.c:79 msgid "author institution" msgstr "" #: src/main/extractor_metatypes.c:80 msgid "institution the author worked for" msgstr "" #: src/main/extractor_metatypes.c:81 msgid "publisher" msgstr "" #: src/main/extractor_metatypes.c:82 msgid "name of the publisher" msgstr "" #: src/main/extractor_metatypes.c:83 msgid "publisher's address" msgstr "" #: src/main/extractor_metatypes.c:84 msgid "Address of the publisher (often only the city)" msgstr "" #: src/main/extractor_metatypes.c:85 msgid "publishing institution" msgstr "" #: src/main/extractor_metatypes.c:86 msgid "" "institution that was involved in the publishing, but not necessarily the " "publisher" msgstr "" #: src/main/extractor_metatypes.c:87 msgid "publication series" msgstr "" #: src/main/extractor_metatypes.c:88 msgid "series of books the book was published in" msgstr "" #: src/main/extractor_metatypes.c:90 msgid "publication type" msgstr "tipo di pubblicazione" #: src/main/extractor_metatypes.c:91 msgid "type of the tech-report" msgstr "" #: src/main/extractor_metatypes.c:92 msgid "publication year" msgstr "anno di pubblicazione" #: src/main/extractor_metatypes.c:93 msgid "year of publication (or, if unpublished, the year of creation)" msgstr "anno di pubblicazione (o, se non pubblicato, l'anno di creazione)" #: src/main/extractor_metatypes.c:94 msgid "publication month" msgstr "mese di pubblicazione" #: src/main/extractor_metatypes.c:95 msgid "month of publication (or, if unpublished, the month of creation)" msgstr "mese di pubblicazione (o, se non pubblicato, il mese di creazione)" #: src/main/extractor_metatypes.c:96 msgid "publication day" msgstr "giorno di pubblicazione" #: src/main/extractor_metatypes.c:97 msgid "" "day of publication (or, if unpublished, the day of creation), relative to " "the given month" msgstr "" "giorno di pubblicazione (o, se non pubblicato, il giorno di creazione), " "relativo al mese dato" #: src/main/extractor_metatypes.c:98 msgid "publication date" msgstr "data di pubblicazione" #: src/main/extractor_metatypes.c:99 msgid "date of publication (or, if unpublished, the date of creation)" msgstr "data di pubblicazione (o, se non pubblicato, la data di creazione)" #: src/main/extractor_metatypes.c:101 msgid "bibtex eprint" msgstr "eprint bibtex" #: src/main/extractor_metatypes.c:102 msgid "specification of an electronic publication" msgstr "" #: src/main/extractor_metatypes.c:103 msgid "bibtex entry type" msgstr "" #: src/main/extractor_metatypes.c:104 msgid "type of the publication for bibTeX bibliographies" msgstr "tipo di pubblicazione per le bibliografie bibTeX" #: src/main/extractor_metatypes.c:105 msgid "language" msgstr "lingua" #: src/main/extractor_metatypes.c:106 msgid "language the work uses" msgstr "lingua usata dal lavoro" #: src/main/extractor_metatypes.c:107 msgid "creation time" msgstr "ora di creazione" #: src/main/extractor_metatypes.c:108 msgid "time and date of creation" msgstr "ora e data di creazione" #: src/main/extractor_metatypes.c:109 msgid "URL" msgstr "URL" #: src/main/extractor_metatypes.c:110 msgid "universal resource location (where the work is made available)" msgstr "" #: src/main/extractor_metatypes.c:112 msgid "URI" msgstr "URI" #: src/main/extractor_metatypes.c:113 msgid "universal resource identifier" msgstr "" #: src/main/extractor_metatypes.c:114 msgid "international standard recording code" msgstr "" #: src/main/extractor_metatypes.c:115 msgid "ISRC number identifying the work" msgstr "" #: src/main/extractor_metatypes.c:116 msgid "MD4" msgstr "MD4" #: src/main/extractor_metatypes.c:117 msgid "MD4 hash" msgstr "hash MD4" #: src/main/extractor_metatypes.c:118 msgid "MD5" msgstr "MD5" #: src/main/extractor_metatypes.c:119 msgid "MD5 hash" msgstr "hash MD5" #: src/main/extractor_metatypes.c:120 msgid "SHA-0" msgstr "SHA-0" #: src/main/extractor_metatypes.c:121 msgid "SHA-0 hash" msgstr "hash SHA-0" #: src/main/extractor_metatypes.c:123 msgid "SHA-1" msgstr "SHA-1" #: src/main/extractor_metatypes.c:124 msgid "SHA-1 hash" msgstr "hash SHA-1" #: src/main/extractor_metatypes.c:125 msgid "RipeMD160" msgstr "RipeMD160" #: src/main/extractor_metatypes.c:126 msgid "RipeMD150 hash" msgstr "hash RipeMD150" #: src/main/extractor_metatypes.c:127 src/main/extractor_metatypes.c:128 msgid "GPS latitude ref" msgstr "" #: src/main/extractor_metatypes.c:129 src/main/extractor_metatypes.c:130 msgid "GPS latitude" msgstr "latitudine GPS" #: src/main/extractor_metatypes.c:131 src/main/extractor_metatypes.c:132 msgid "GPS longitude ref" msgstr "" #: src/main/extractor_metatypes.c:134 src/main/extractor_metatypes.c:135 msgid "GPS longitude" msgstr "longitudine GPS" #: src/main/extractor_metatypes.c:136 msgid "city" msgstr "città" #: src/main/extractor_metatypes.c:137 msgid "name of the city where the document originated" msgstr "nome della città di origine del documento" #: src/main/extractor_metatypes.c:138 msgid "sublocation" msgstr "sublocazione" #: src/main/extractor_metatypes.c:139 msgid "more specific location of the geographic origin" msgstr "" #: src/main/extractor_metatypes.c:140 msgid "country" msgstr "" #: src/main/extractor_metatypes.c:141 msgid "name of the country where the document originated" msgstr "" #: src/main/extractor_metatypes.c:142 msgid "country code" msgstr "" #: src/main/extractor_metatypes.c:143 msgid "ISO 2-letter country code for the country of origin" msgstr "" #: src/main/extractor_metatypes.c:146 msgid "specifics are not known" msgstr "" #: src/main/extractor_metatypes.c:147 src/main/extractor_metatypes.c:148 msgid "description" msgstr "descrizione" #: src/main/extractor_metatypes.c:149 msgid "copyright" msgstr "copyright" #: src/main/extractor_metatypes.c:150 msgid "Name of the entity holding the copyright" msgstr "" #: src/main/extractor_metatypes.c:151 msgid "rights" msgstr "diritti" #: src/main/extractor_metatypes.c:152 msgid "information about rights" msgstr "informazioni sui diritti" #: src/main/extractor_metatypes.c:153 src/main/extractor_metatypes.c:154 msgid "keywords" msgstr "" #: src/main/extractor_metatypes.c:156 src/main/extractor_metatypes.c:157 msgid "abstract" msgstr "" #: src/main/extractor_metatypes.c:158 src/main/extractor_metatypes.c:159 msgid "summary" msgstr "" #: src/main/extractor_metatypes.c:160 msgid "subject" msgstr "" #: src/main/extractor_metatypes.c:161 msgid "subject matter" msgstr "" #: src/main/extractor_metatypes.c:162 src/main/extractor_metatypes.c:195 msgid "creator" msgstr "" #: src/main/extractor_metatypes.c:163 msgid "name of the person who created the document" msgstr "" #: src/main/extractor_metatypes.c:164 msgid "format" msgstr "" #: src/main/extractor_metatypes.c:165 msgid "name of the document format" msgstr "" #: src/main/extractor_metatypes.c:167 msgid "format version" msgstr "" #: src/main/extractor_metatypes.c:168 msgid "version of the document format" msgstr "" #: src/main/extractor_metatypes.c:169 msgid "created by software" msgstr "" #: src/main/extractor_metatypes.c:170 msgid "name of the software that created the document" msgstr "" #: src/main/extractor_metatypes.c:171 msgid "unknown date" msgstr "" #: src/main/extractor_metatypes.c:172 msgid "" "ambiguous date (could specify creation time, modification time or access " "time)" msgstr "" #: src/main/extractor_metatypes.c:173 msgid "creation date" msgstr "data di creazione" #: src/main/extractor_metatypes.c:174 msgid "date the document was created" msgstr "data di creazione del documento" #: src/main/extractor_metatypes.c:175 msgid "modification date" msgstr "data di modifica" #: src/main/extractor_metatypes.c:176 msgid "date the document was modified" msgstr "data di modifica del documento" #: src/main/extractor_metatypes.c:178 msgid "last printed" msgstr "" #: src/main/extractor_metatypes.c:179 msgid "date the document was last printed" msgstr "" #: src/main/extractor_metatypes.c:180 msgid "last saved by" msgstr "" #: src/main/extractor_metatypes.c:181 msgid "name of the user who saved the document last" msgstr "" #: src/main/extractor_metatypes.c:182 msgid "total editing time" msgstr "" #: src/main/extractor_metatypes.c:183 msgid "time spent editing the document" msgstr "" #: src/main/extractor_metatypes.c:184 msgid "editing cycles" msgstr "" #: src/main/extractor_metatypes.c:185 msgid "number of editing cycles" msgstr "" #: src/main/extractor_metatypes.c:186 msgid "modified by software" msgstr "" #: src/main/extractor_metatypes.c:187 msgid "name of software making modifications" msgstr "" #: src/main/extractor_metatypes.c:189 msgid "revision history" msgstr "" #: src/main/extractor_metatypes.c:190 msgid "information about the revision history" msgstr "" #: src/main/extractor_metatypes.c:191 msgid "embedded file size" msgstr "" #: src/main/extractor_metatypes.c:192 msgid "size of the contents of the container as embedded in the file" msgstr "" #: src/main/extractor_metatypes.c:193 msgid "file type" msgstr "tipo di file" #: src/main/extractor_metatypes.c:194 msgid "standard Macintosh Finder file type information" msgstr "" #: src/main/extractor_metatypes.c:196 msgid "standard Macintosh Finder file creator information" msgstr "" #: src/main/extractor_metatypes.c:197 msgid "package name" msgstr "nome del pacchetto" #: src/main/extractor_metatypes.c:198 msgid "unique identifier for the package" msgstr "identificatore univoco per il pacchetto" #: src/main/extractor_metatypes.c:200 msgid "package version" msgstr "versione del pacchetto" #: src/main/extractor_metatypes.c:201 msgid "version of the software and its package" msgstr "versione del software e relativo pacchetto" #: src/main/extractor_metatypes.c:202 msgid "section" msgstr "sezione" #: src/main/extractor_metatypes.c:203 msgid "category the software package belongs to" msgstr "categoria a cui appartiene il pacchetto software" #: src/main/extractor_metatypes.c:204 msgid "upload priority" msgstr "" #: src/main/extractor_metatypes.c:205 msgid "priority for promoting the release to production" msgstr "" #: src/main/extractor_metatypes.c:206 msgid "dependencies" msgstr "dipendenze" #: src/main/extractor_metatypes.c:207 msgid "packages this package depends upon" msgstr "" #: src/main/extractor_metatypes.c:208 msgid "conflicting packages" msgstr "pacchetti in conflitto" #: src/main/extractor_metatypes.c:209 msgid "packages that cannot be installed with this package" msgstr "pacchetti che non possono essere installati con questo pacchetto" #: src/main/extractor_metatypes.c:211 msgid "replaced packages" msgstr "pacchetti sostituiti" #: src/main/extractor_metatypes.c:212 msgid "packages made obsolete by this package" msgstr "pacchetti resi obsoleti da questo pacchetto" #: src/main/extractor_metatypes.c:213 msgid "provides" msgstr "" #: src/main/extractor_metatypes.c:214 msgid "functionality provided by this package" msgstr "funzionalità fornite da questo pacchetto" #: src/main/extractor_metatypes.c:215 msgid "recommendations" msgstr "raccomandati" #: src/main/extractor_metatypes.c:216 msgid "packages recommended for installation in conjunction with this package" msgstr "pacchetti raccomandati per l'installazione insieme a questo pacchetto" #: src/main/extractor_metatypes.c:217 msgid "suggestions" msgstr "suggeriti" #: src/main/extractor_metatypes.c:218 msgid "packages suggested for installation in conjunction with this package" msgstr "pacchetti suggeriti per l'installazione insieme a questo pacchetto" #: src/main/extractor_metatypes.c:219 msgid "maintainer" msgstr "" #: src/main/extractor_metatypes.c:220 msgid "name of the maintainer" msgstr "" #: src/main/extractor_metatypes.c:222 msgid "installed size" msgstr "" #: src/main/extractor_metatypes.c:223 msgid "space consumption after installation" msgstr "" #: src/main/extractor_metatypes.c:224 src/main/extractor_metatypes.c:304 msgid "source" msgstr "sorgente" #: src/main/extractor_metatypes.c:225 msgid "original source code" msgstr "codice sorgente originale" #: src/main/extractor_metatypes.c:226 msgid "is essential" msgstr "" #: src/main/extractor_metatypes.c:227 msgid "package is marked as essential" msgstr "" #: src/main/extractor_metatypes.c:228 msgid "target architecture" msgstr "" #: src/main/extractor_metatypes.c:229 msgid "hardware architecture the contents can be used for" msgstr "" #: src/main/extractor_metatypes.c:230 msgid "pre-dependency" msgstr "" #: src/main/extractor_metatypes.c:231 msgid "dependency that must be satisfied before installation" msgstr "dipendenze che devono essere soddisfatte prima dell'installazione" #: src/main/extractor_metatypes.c:233 msgid "license" msgstr "licenza" #: src/main/extractor_metatypes.c:234 msgid "applicable copyright license" msgstr "" #: src/main/extractor_metatypes.c:235 msgid "distribution" msgstr "distribuzione" #: src/main/extractor_metatypes.c:236 msgid "distribution the package is a part of" msgstr "distribuzione di cui fa parte il pacchetto" #: src/main/extractor_metatypes.c:237 msgid "build host" msgstr "" #: src/main/extractor_metatypes.c:238 msgid "machine the package was build on" msgstr "" #: src/main/extractor_metatypes.c:239 msgid "vendor" msgstr "" #: src/main/extractor_metatypes.c:240 msgid "name of the software vendor" msgstr "" #: src/main/extractor_metatypes.c:241 msgid "target operating system" msgstr "" #: src/main/extractor_metatypes.c:242 msgid "operating system for which this package was made" msgstr "" #: src/main/extractor_metatypes.c:244 msgid "software version" msgstr "versione del software" #: src/main/extractor_metatypes.c:245 msgid "version of the software contained in the file" msgstr "versione del software contenuto nel file" #: src/main/extractor_metatypes.c:246 msgid "target platform" msgstr "" #: src/main/extractor_metatypes.c:247 msgid "" "name of the architecture, operating system and distribution this package is " "for" msgstr "" #: src/main/extractor_metatypes.c:248 msgid "resource type" msgstr "" #: src/main/extractor_metatypes.c:249 msgid "" "categorization of the nature of the resource that is more specific than the " "file format" msgstr "" #: src/main/extractor_metatypes.c:250 msgid "library search path" msgstr "" #: src/main/extractor_metatypes.c:251 msgid "" "path in the file system to be considered when looking for required libraries" msgstr "" #: src/main/extractor_metatypes.c:252 msgid "library dependency" msgstr "" #: src/main/extractor_metatypes.c:253 msgid "name of a library that this file depends on" msgstr "" #: src/main/extractor_metatypes.c:255 src/main/extractor_metatypes.c:256 msgid "camera make" msgstr "" #: src/main/extractor_metatypes.c:257 src/main/extractor_metatypes.c:258 msgid "camera model" msgstr "" #: src/main/extractor_metatypes.c:259 src/main/extractor_metatypes.c:260 msgid "exposure" msgstr "" #: src/main/extractor_metatypes.c:261 src/main/extractor_metatypes.c:262 msgid "aperture" msgstr "" #: src/main/extractor_metatypes.c:263 src/main/extractor_metatypes.c:264 msgid "exposure bias" msgstr "" #: src/main/extractor_metatypes.c:266 src/main/extractor_metatypes.c:267 msgid "flash" msgstr "flash" #: src/main/extractor_metatypes.c:268 src/main/extractor_metatypes.c:269 msgid "flash bias" msgstr "" #: src/main/extractor_metatypes.c:270 src/main/extractor_metatypes.c:271 msgid "focal length" msgstr "lunghezza focale" #: src/main/extractor_metatypes.c:272 src/main/extractor_metatypes.c:273 msgid "focal length 35mm" msgstr "lunghezza focale 35mm" #: src/main/extractor_metatypes.c:274 src/main/extractor_metatypes.c:275 msgid "iso speed" msgstr "" #: src/main/extractor_metatypes.c:277 src/main/extractor_metatypes.c:278 msgid "exposure mode" msgstr "" #: src/main/extractor_metatypes.c:279 src/main/extractor_metatypes.c:280 msgid "metering mode" msgstr "" #: src/main/extractor_metatypes.c:281 src/main/extractor_metatypes.c:282 msgid "macro mode" msgstr "" #: src/main/extractor_metatypes.c:283 src/main/extractor_metatypes.c:284 msgid "image quality" msgstr "qualità dell'immagine" #: src/main/extractor_metatypes.c:285 src/main/extractor_metatypes.c:286 msgid "white balance" msgstr "bilanciamento del bianco" #: src/main/extractor_metatypes.c:288 src/main/extractor_metatypes.c:289 msgid "orientation" msgstr "orientamento" #: src/main/extractor_metatypes.c:290 src/main/extractor_metatypes.c:291 msgid "magnification" msgstr "" #: src/main/extractor_metatypes.c:292 msgid "image dimensions" msgstr "" #: src/main/extractor_metatypes.c:293 msgid "size of the image in pixels (width times height)" msgstr "" #: src/main/extractor_metatypes.c:294 src/main/extractor_metatypes.c:295 msgid "produced by software" msgstr "" #: src/main/extractor_metatypes.c:299 msgid "thumbnail" msgstr "" #: src/main/extractor_metatypes.c:300 msgid "smaller version of the image for previewing" msgstr "" #: src/main/extractor_metatypes.c:302 msgid "image resolution" msgstr "risoluzione dell'immagine" #: src/main/extractor_metatypes.c:303 msgid "resolution in dots per inch" msgstr "" #: src/main/extractor_metatypes.c:305 msgid "Originating entity" msgstr "" #: src/main/extractor_metatypes.c:306 msgid "character set" msgstr "" #: src/main/extractor_metatypes.c:307 msgid "character encoding used" msgstr "" #: src/main/extractor_metatypes.c:308 msgid "line count" msgstr "" #: src/main/extractor_metatypes.c:309 msgid "number of lines" msgstr "" #: src/main/extractor_metatypes.c:310 msgid "paragraph count" msgstr "" #: src/main/extractor_metatypes.c:311 msgid "number of paragraphs" msgstr "" #: src/main/extractor_metatypes.c:313 msgid "word count" msgstr "" #: src/main/extractor_metatypes.c:314 msgid "number of words" msgstr "" #: src/main/extractor_metatypes.c:315 msgid "character count" msgstr "" #: src/main/extractor_metatypes.c:316 msgid "number of characters" msgstr "" #: src/main/extractor_metatypes.c:317 src/main/extractor_metatypes.c:318 msgid "page orientation" msgstr "" #: src/main/extractor_metatypes.c:319 src/main/extractor_metatypes.c:320 msgid "paper size" msgstr "dimensione della carta" #: src/main/extractor_metatypes.c:321 msgid "template" msgstr "" #: src/main/extractor_metatypes.c:322 msgid "template the document uses or is based on" msgstr "" #: src/main/extractor_metatypes.c:324 src/main/extractor_metatypes.c:325 msgid "company" msgstr "" #: src/main/extractor_metatypes.c:326 src/main/extractor_metatypes.c:327 msgid "manager" msgstr "" #: src/main/extractor_metatypes.c:328 src/main/extractor_metatypes.c:329 msgid "revision number" msgstr "" #: src/main/extractor_metatypes.c:330 msgid "duration" msgstr "durata" #: src/main/extractor_metatypes.c:331 msgid "play time for the medium" msgstr "" #: src/main/extractor_metatypes.c:332 msgid "album" msgstr "album" #: src/main/extractor_metatypes.c:333 msgid "name of the album" msgstr "nome dell'album" #: src/main/extractor_metatypes.c:335 msgid "artist" msgstr "artista" #: src/main/extractor_metatypes.c:336 msgid "name of the artist or band" msgstr "nome dell'artista o del gruppo" #: src/main/extractor_metatypes.c:337 src/main/extractor_metatypes.c:338 msgid "genre" msgstr "genere" #: src/main/extractor_metatypes.c:339 msgid "track number" msgstr "numero di traccia" #: src/main/extractor_metatypes.c:340 msgid "original number of the track on the distribution medium" msgstr "" #: src/main/extractor_metatypes.c:341 msgid "disk number" msgstr "" #: src/main/extractor_metatypes.c:342 msgid "number of the disk in a multi-disk (or volume) distribution" msgstr "" #: src/main/extractor_metatypes.c:343 msgid "performer" msgstr "" #: src/main/extractor_metatypes.c:344 msgid "" "The artist(s) who performed the work (conductor, orchestra, soloists, actor, " "etc.)" msgstr "" #: src/main/extractor_metatypes.c:346 msgid "contact" msgstr "" #: src/main/extractor_metatypes.c:347 msgid "Contact information for the creator or distributor" msgstr "" #: src/main/extractor_metatypes.c:348 msgid "song version" msgstr "" #: src/main/extractor_metatypes.c:349 msgid "name of the version of the song (i.e. remix information)" msgstr "" #: src/main/extractor_metatypes.c:350 msgid "picture" msgstr "" #: src/main/extractor_metatypes.c:351 msgid "associated misc. picture" msgstr "" #: src/main/extractor_metatypes.c:352 msgid "cover picture" msgstr "" #: src/main/extractor_metatypes.c:353 msgid "picture of the cover of the distribution medium" msgstr "" #: src/main/extractor_metatypes.c:354 msgid "contributor picture" msgstr "" #: src/main/extractor_metatypes.c:355 msgid "picture of one of the contributors" msgstr "" #: src/main/extractor_metatypes.c:357 msgid "event picture" msgstr "" #: src/main/extractor_metatypes.c:358 msgid "picture of an associated event" msgstr "" #: src/main/extractor_metatypes.c:359 msgid "logo" msgstr "" #: src/main/extractor_metatypes.c:360 msgid "logo of an associated organization" msgstr "" #: src/main/extractor_metatypes.c:361 msgid "broadcast television system" msgstr "" #: src/main/extractor_metatypes.c:362 msgid "name of the television system for which the data is coded" msgstr "" #: src/main/extractor_metatypes.c:363 msgid "source device" msgstr "" #: src/main/extractor_metatypes.c:364 msgid "device used to create the object" msgstr "" #: src/main/extractor_metatypes.c:365 msgid "disclaimer" msgstr "" #: src/main/extractor_metatypes.c:366 msgid "legal disclaimer" msgstr "" #: src/main/extractor_metatypes.c:368 msgid "warning" msgstr "" #: src/main/extractor_metatypes.c:369 msgid "warning about the nature of the content" msgstr "" #: src/main/extractor_metatypes.c:370 msgid "page order" msgstr "" #: src/main/extractor_metatypes.c:371 msgid "order of the pages" msgstr "" #: src/main/extractor_metatypes.c:372 msgid "writer" msgstr "" #: src/main/extractor_metatypes.c:373 msgid "contributing writer" msgstr "" #: src/main/extractor_metatypes.c:374 src/main/extractor_metatypes.c:375 msgid "product version" msgstr "" #: src/main/extractor_metatypes.c:376 msgid "contributor" msgstr "" #: src/main/extractor_metatypes.c:377 msgid "name of a contributor" msgstr "" #: src/main/extractor_metatypes.c:379 msgid "movie director" msgstr "" #: src/main/extractor_metatypes.c:380 msgid "name of the director" msgstr "" #: src/main/extractor_metatypes.c:381 msgid "network" msgstr "" #: src/main/extractor_metatypes.c:382 msgid "name of the broadcasting network or station" msgstr "" #: src/main/extractor_metatypes.c:383 msgid "show" msgstr "" #: src/main/extractor_metatypes.c:384 msgid "name of the show" msgstr "" #: src/main/extractor_metatypes.c:385 msgid "chapter name" msgstr "" #: src/main/extractor_metatypes.c:386 msgid "name of the chapter" msgstr "" #: src/main/extractor_metatypes.c:387 msgid "song count" msgstr "" #: src/main/extractor_metatypes.c:388 msgid "number of songs" msgstr "" #: src/main/extractor_metatypes.c:390 msgid "starting song" msgstr "" #: src/main/extractor_metatypes.c:391 msgid "number of the first song to play" msgstr "" #: src/main/extractor_metatypes.c:392 msgid "play counter" msgstr "" #: src/main/extractor_metatypes.c:393 msgid "number of times the media has been played" msgstr "" #: src/main/extractor_metatypes.c:394 msgid "conductor" msgstr "" #: src/main/extractor_metatypes.c:395 msgid "name of the conductor" msgstr "" #: src/main/extractor_metatypes.c:396 msgid "interpretation" msgstr "" #: src/main/extractor_metatypes.c:397 msgid "" "information about the people behind interpretations of an existing piece" msgstr "" #: src/main/extractor_metatypes.c:398 msgid "composer" msgstr "" #: src/main/extractor_metatypes.c:399 msgid "name of the composer" msgstr "" #: src/main/extractor_metatypes.c:401 src/main/extractor_metatypes.c:402 msgid "beats per minute" msgstr "" #: src/main/extractor_metatypes.c:403 msgid "encoded by" msgstr "" #: src/main/extractor_metatypes.c:404 msgid "name of person or organization that encoded the file" msgstr "" #: src/main/extractor_metatypes.c:405 msgid "original title" msgstr "" #: src/main/extractor_metatypes.c:406 msgid "title of the original work" msgstr "" #: src/main/extractor_metatypes.c:407 msgid "original artist" msgstr "" #: src/main/extractor_metatypes.c:408 msgid "name of the original artist" msgstr "" #: src/main/extractor_metatypes.c:409 msgid "original writer" msgstr "" #: src/main/extractor_metatypes.c:410 msgid "name of the original lyricist or writer" msgstr "" #: src/main/extractor_metatypes.c:412 msgid "original release year" msgstr "" #: src/main/extractor_metatypes.c:413 msgid "year of the original release" msgstr "" #: src/main/extractor_metatypes.c:414 msgid "original performer" msgstr "" #: src/main/extractor_metatypes.c:415 msgid "name of the original performer" msgstr "" #: src/main/extractor_metatypes.c:416 msgid "lyrics" msgstr "" #: src/main/extractor_metatypes.c:417 msgid "lyrics of the song or text description of vocal activities" msgstr "" #: src/main/extractor_metatypes.c:418 msgid "popularity" msgstr "" #: src/main/extractor_metatypes.c:419 msgid "information about the file's popularity" msgstr "" #: src/main/extractor_metatypes.c:420 msgid "licensee" msgstr "" #: src/main/extractor_metatypes.c:421 msgid "name of the owner or licensee of the file" msgstr "" #: src/main/extractor_metatypes.c:423 msgid "musician credit list" msgstr "" #: src/main/extractor_metatypes.c:424 msgid "names of contributing musicians" msgstr "" #: src/main/extractor_metatypes.c:425 msgid "mood" msgstr "" #: src/main/extractor_metatypes.c:426 msgid "keywords reflecting the mood of the piece" msgstr "" #: src/main/extractor_metatypes.c:427 msgid "subtitle" msgstr "" #: src/main/extractor_metatypes.c:428 msgid "subtitle of this part" msgstr "" #: src/main/extractor_metatypes.c:429 msgid "display type" msgstr "" #: src/main/extractor_metatypes.c:430 msgid "what rendering method should be used to display this item" msgstr "" #: src/main/extractor_metatypes.c:431 msgid "full data" msgstr "" #: src/main/extractor_metatypes.c:432 msgid "" "entry that contains the full, original binary data (not really meta data)" msgstr "" #: src/main/extractor_metatypes.c:434 msgid "rating" msgstr "" #: src/main/extractor_metatypes.c:435 msgid "rating of the content" msgstr "" #: src/main/extractor_metatypes.c:436 src/main/extractor_metatypes.c:437 msgid "organization" msgstr "" #: src/main/extractor_metatypes.c:438 src/main/extractor_metatypes.c:439 msgid "ripper" msgstr "" #: src/main/extractor_metatypes.c:440 src/main/extractor_metatypes.c:441 msgid "producer" msgstr "" #: src/main/extractor_metatypes.c:442 msgid "group" msgstr "" #: src/main/extractor_metatypes.c:443 msgid "name of the group or band" msgstr "" #: src/main/extractor_metatypes.c:445 #, fuzzy msgid "original filename" msgstr "originale" #: src/main/extractor_metatypes.c:446 msgid "name of the original file (reserved for GNUnet)" msgstr "" #: src/main/extractor_metatypes.c:447 msgid "disc count" msgstr "" #: src/main/extractor_metatypes.c:448 msgid "count of discs inside collection this disc belongs to" msgstr "" #: src/main/extractor_metatypes.c:449 msgid "codec" msgstr "" #: src/main/extractor_metatypes.c:450 msgid "codec the data is stored in" msgstr "" #: src/main/extractor_metatypes.c:451 msgid "video codec" msgstr "" #: src/main/extractor_metatypes.c:452 msgid "codec the video data is stored in" msgstr "" #: src/main/extractor_metatypes.c:453 msgid "audio codec" msgstr "" #: src/main/extractor_metatypes.c:454 msgid "codec the audio data is stored in" msgstr "" #: src/main/extractor_metatypes.c:456 msgid "subtitle codec" msgstr "" #: src/main/extractor_metatypes.c:457 msgid "codec/format the subtitle data is stored in" msgstr "" #: src/main/extractor_metatypes.c:458 msgid "container format" msgstr "" #: src/main/extractor_metatypes.c:459 msgid "container format the data is stored in" msgstr "" #: src/main/extractor_metatypes.c:460 msgid "bitrate" msgstr "" #: src/main/extractor_metatypes.c:461 msgid "exact or average bitrate in bits/s" msgstr "" #: src/main/extractor_metatypes.c:462 msgid "nominal bitrate" msgstr "" #: src/main/extractor_metatypes.c:463 msgid "" "nominal bitrate in bits/s. The actual bitrate might be different from this " "target bitrate." msgstr "" #: src/main/extractor_metatypes.c:464 msgid "minimum bitrate" msgstr "" #: src/main/extractor_metatypes.c:465 msgid "minimum bitrate in bits/s" msgstr "" #: src/main/extractor_metatypes.c:467 msgid "maximum bitrate" msgstr "" #: src/main/extractor_metatypes.c:468 msgid "maximum bitrate in bits/s" msgstr "" #: src/main/extractor_metatypes.c:469 #, fuzzy msgid "serial" msgstr "Industrial" #: src/main/extractor_metatypes.c:470 msgid "serial number of track" msgstr "" #: src/main/extractor_metatypes.c:471 msgid "encoder" msgstr "" #: src/main/extractor_metatypes.c:472 msgid "encoder used to encode this stream" msgstr "" #: src/main/extractor_metatypes.c:473 #, fuzzy msgid "encoder version" msgstr "versione del pacchetto" #: src/main/extractor_metatypes.c:474 msgid "version of the encoder used to encode this stream" msgstr "" #: src/main/extractor_metatypes.c:475 #, fuzzy msgid "track gain" msgstr "numero di traccia" #: src/main/extractor_metatypes.c:476 msgid "track gain in db" msgstr "" #: src/main/extractor_metatypes.c:478 #, fuzzy msgid "track peak" msgstr "numero di traccia" #: src/main/extractor_metatypes.c:479 #, fuzzy msgid "peak of the track" msgstr "titolo del lavoro" #: src/main/extractor_metatypes.c:480 #, fuzzy msgid "album gain" msgstr "album" #: src/main/extractor_metatypes.c:481 msgid "album gain in db" msgstr "" #: src/main/extractor_metatypes.c:482 #, fuzzy msgid "album peak" msgstr "album" #: src/main/extractor_metatypes.c:483 #, fuzzy msgid "peak of the album" msgstr "nome dell'album" #: src/main/extractor_metatypes.c:484 msgid "reference level" msgstr "" #: src/main/extractor_metatypes.c:485 msgid "reference level of track and album gain values" msgstr "" #: src/main/extractor_metatypes.c:486 #, fuzzy msgid "location name" msgstr "ora di creazione" #: src/main/extractor_metatypes.c:487 msgid "" "human readable descriptive location of where the media has been recorded or " "produced" msgstr "" #: src/main/extractor_metatypes.c:489 msgid "location elevation" msgstr "" #: src/main/extractor_metatypes.c:490 msgid "" "geo elevation of where the media has been recorded or produced in meters " "according to WGS84 (zero is average sea level)" msgstr "" #: src/main/extractor_metatypes.c:491 msgid "location horizontal error" msgstr "" #: src/main/extractor_metatypes.c:492 msgid "represents the expected error on the horizontal positioning in meters" msgstr "" #: src/main/extractor_metatypes.c:493 #, fuzzy msgid "location movement speed" msgstr "mese di pubblicazione" #: src/main/extractor_metatypes.c:494 msgid "" "speed of the capturing device when performing the capture. Represented in m/s" msgstr "" #: src/main/extractor_metatypes.c:495 msgid "location movement direction" msgstr "" #: src/main/extractor_metatypes.c:496 msgid "" "indicates the movement direction of the device performing the capture of a " "media. It is represented as degrees in floating point representation, 0 " "means the geographic north, and increases clockwise" msgstr "" #: src/main/extractor_metatypes.c:497 msgid "location capture direction" msgstr "" #: src/main/extractor_metatypes.c:498 msgid "" "indicates the direction the device is pointing to when capturing a media. It " "is represented as degrees in floating point representation, 0 means the " "geographic north, and increases clockwise" msgstr "" #: src/main/extractor_metatypes.c:500 #, fuzzy msgid "show episode number" msgstr "numero del capitolo" #: src/main/extractor_metatypes.c:501 msgid "number of the episode within a season/show" msgstr "" #: src/main/extractor_metatypes.c:502 msgid "show season number" msgstr "" #: src/main/extractor_metatypes.c:503 msgid "number of the season of a show/series" msgstr "" #: src/main/extractor_metatypes.c:504 msgid "grouping" msgstr "" #: src/main/extractor_metatypes.c:505 msgid "" "groups together media that are related and spans multiple tracks. An example " "are multiple pieces of a concerto" msgstr "" #: src/main/extractor_metatypes.c:506 msgid "device manufacturer" msgstr "" #: src/main/extractor_metatypes.c:507 msgid "manufacturer of the device used to create the media" msgstr "" #: src/main/extractor_metatypes.c:508 msgid "device model" msgstr "" #: src/main/extractor_metatypes.c:509 msgid "model of the device used to create the media" msgstr "" #: src/main/extractor_metatypes.c:511 #, fuzzy msgid "audio language" msgstr "lingua" #: src/main/extractor_metatypes.c:512 #, fuzzy msgid "language of the audio track" msgstr "lingua usata dal lavoro" #: src/main/extractor_metatypes.c:513 msgid "channels" msgstr "" #: src/main/extractor_metatypes.c:514 msgid "number of audio channels" msgstr "" #: src/main/extractor_metatypes.c:515 msgid "sample rate" msgstr "" #: src/main/extractor_metatypes.c:516 msgid "sample rate of the audio track" msgstr "" #: src/main/extractor_metatypes.c:517 msgid "audio depth" msgstr "" #: src/main/extractor_metatypes.c:518 msgid "number of bits per audio sample" msgstr "" #: src/main/extractor_metatypes.c:519 msgid "audio bitrate" msgstr "" #: src/main/extractor_metatypes.c:520 #, fuzzy msgid "bitrate of the audio track" msgstr "titolo del lavoro" #: src/main/extractor_metatypes.c:522 src/main/extractor_metatypes.c:523 msgid "maximum audio bitrate" msgstr "" #: src/main/extractor_metatypes.c:524 msgid "video dimensions" msgstr "" #: src/main/extractor_metatypes.c:525 msgid "width and height of the video track (WxH)" msgstr "" #: src/main/extractor_metatypes.c:526 msgid "video depth" msgstr "" #: src/main/extractor_metatypes.c:527 msgid "numbers of bits per pixel" msgstr "" #: src/main/extractor_metatypes.c:528 msgid "frame rate" msgstr "" #: src/main/extractor_metatypes.c:529 msgid "number of frames per second (as D/N or floating point)" msgstr "" #: src/main/extractor_metatypes.c:530 msgid "pixel aspect ratio" msgstr "" #: src/main/extractor_metatypes.c:531 msgid "pixel aspect ratio (as D/N)" msgstr "" #: src/main/extractor_metatypes.c:533 src/main/extractor_metatypes.c:534 msgid "video bitrate" msgstr "" #: src/main/extractor_metatypes.c:535 src/main/extractor_metatypes.c:536 msgid "maximum video bitrate" msgstr "" #: src/main/extractor_metatypes.c:537 #, fuzzy msgid "subtitle language" msgstr "lingua" #: src/main/extractor_metatypes.c:538 #, fuzzy msgid "language of the subtitle track" msgstr "nome dell'artista o del gruppo" #: src/main/extractor_metatypes.c:539 #, fuzzy msgid "video language" msgstr "lingua" #: src/main/extractor_metatypes.c:540 #, fuzzy msgid "language of the video track" msgstr "lingua usata dal lavoro" #: src/main/extractor_metatypes.c:541 msgid "table of contents" msgstr "" #: src/main/extractor_metatypes.c:542 msgid "chapters, contents or bookmarks (in xml format)" msgstr "" #: src/main/extractor_metatypes.c:544 #, fuzzy msgid "video duration" msgstr "durata" #: src/main/extractor_metatypes.c:545 msgid "duration of a video stream" msgstr "" #: src/main/extractor_metatypes.c:546 #, fuzzy msgid "audio duration" msgstr "durata" #: src/main/extractor_metatypes.c:547 msgid "duration of an audio stream" msgstr "" #: src/main/extractor_metatypes.c:548 #, fuzzy msgid "subtitle duration" msgstr "sublocazione" #: src/main/extractor_metatypes.c:549 msgid "duration of a subtitle stream" msgstr "" #: src/main/extractor_metatypes.c:551 msgid "audio preview" msgstr "" #: src/main/extractor_metatypes.c:552 #, fuzzy msgid "a preview of the file audio stream" msgstr "titolo del lavoro" #: src/main/extractor_metatypes.c:554 src/main/extractor_metatypes.c:555 msgid "last" msgstr "" #: src/main/getopt.c:684 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: l'opzione \"%s\" è ambigua\n" #: src/main/getopt.c:709 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: l'opzione \"--%s\" non ammette un argomento\n" #: src/main/getopt.c:715 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: l'opzione \"%c%s\" non ammette un argomento\n" #: src/main/getopt.c:732 src/main/getopt.c:903 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: l'opzione \"%s\" richiede un argomento\n" #: src/main/getopt.c:761 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: opzione non riconosciuta \"--%s\"\n" #: src/main/getopt.c:765 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: opzione non riconosciuta \"%c%s\"\n" #: src/main/getopt.c:791 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: opzione non lecita -- %c\n" #: src/main/getopt.c:793 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: opzione non valida -- %c\n" #: src/main/getopt.c:822 src/main/getopt.c:952 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: l'opzione richiede un argomento -- %c\n" #: src/main/getopt.c:870 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: l'opzione \"-W %s\" è ambigua\n" #: src/main/getopt.c:888 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: l'opzione \"-W %s\" non ammette un argomento\n" #: src/plugins/flac_extractor.c:322 #, c-format msgid "%u Hz, %u channels" msgstr "" #: src/plugins/man_extractor.c:215 msgid "Commands" msgstr "" #: src/plugins/man_extractor.c:219 msgid "System calls" msgstr "" #: src/plugins/man_extractor.c:223 msgid "Library calls" msgstr "" #: src/plugins/man_extractor.c:227 msgid "Special files" msgstr "" #: src/plugins/man_extractor.c:231 msgid "File formats and conventions" msgstr "" #: src/plugins/man_extractor.c:235 msgid "Games" msgstr "Giochi" #: src/plugins/man_extractor.c:239 msgid "Conventions and miscellaneous" msgstr "" #: src/plugins/man_extractor.c:243 msgid "System management commands" msgstr "" #: src/plugins/man_extractor.c:247 msgid "Kernel routines" msgstr "Routine del kernel" #: src/plugins/ole2_extractor.c:387 msgid "No Proofing" msgstr "" #: src/plugins/ole2_extractor.c:395 msgid "Traditional Chinese" msgstr "Cinese tradizionale" #: src/plugins/ole2_extractor.c:397 msgid "Simplified Chinese" msgstr "Cinese semplificato" #: src/plugins/ole2_extractor.c:405 msgid "Swiss German" msgstr "Tedesco svizzero" #: src/plugins/ole2_extractor.c:409 msgid "U.S. English" msgstr "Inglese americano" #: src/plugins/ole2_extractor.c:411 msgid "U.K. English" msgstr "Inglese britannico" #: src/plugins/ole2_extractor.c:413 msgid "Australian English" msgstr "Inglese australiano" #: src/plugins/ole2_extractor.c:415 msgid "Castilian Spanish" msgstr "" #: src/plugins/ole2_extractor.c:417 msgid "Mexican Spanish" msgstr "Spagnolo messicano" #: src/plugins/ole2_extractor.c:423 msgid "Belgian French" msgstr "Francese belga" #: src/plugins/ole2_extractor.c:425 msgid "Canadian French" msgstr "Franco canadese" #: src/plugins/ole2_extractor.c:427 msgid "Swiss French" msgstr "Francese svizzero" #: src/plugins/ole2_extractor.c:437 msgid "Swiss Italian" msgstr "Italiano svizzero" #: src/plugins/ole2_extractor.c:445 msgid "Belgian Dutch" msgstr "Olandese belga" #: src/plugins/ole2_extractor.c:447 msgid "Norwegian Bokmal" msgstr "Bokmal norvegese" #: src/plugins/ole2_extractor.c:457 msgid "Rhaeto-Romanic" msgstr "" #: src/plugins/ole2_extractor.c:463 msgid "Croato-Serbian (Latin)" msgstr "" #: src/plugins/ole2_extractor.c:465 msgid "Serbo-Croatian (Cyrillic)" msgstr "" #: src/plugins/ole2_extractor.c:493 msgid "Farsi" msgstr "Farsi" #: src/plugins/ole2_extractor.c:578 #, c-format msgid "Revision #%u: Author `%s' worked on `%s'" msgstr "" #: src/plugins/riff_extractor.c:145 #, c-format msgid "codec: %s, %u fps, %u ms" msgstr "codec: %s, %u fps, %u ms" #: src/plugins/wav_extractor.c:120 msgid "mono" msgstr "mono" #: src/plugins/wav_extractor.c:120 msgid "stereo" msgstr "stereo" #~ msgid "Blues" #~ msgstr "Blues" #~ msgid "Classic Rock" #~ msgstr "Rock classico" #~ msgid "Country" #~ msgstr "Country" #~ msgid "Dance" #~ msgstr "Dance" #~ msgid "Disco" #~ msgstr "Disco" #~ msgid "Funk" #~ msgstr "Funk" #~ msgid "Grunge" #~ msgstr "Grunge" #~ msgid "Hip-Hop" #~ msgstr "Hip-Hop" #~ msgid "Jazz" #~ msgstr "Jazz" #~ msgid "Metal" #~ msgstr "Metal" #~ msgid "New Age" #~ msgstr "New Age" #~ msgid "Other" #~ msgstr "Altro" #~ msgid "Pop" #~ msgstr "Pop" #~ msgid "R&B" #~ msgstr "R&B" #~ msgid "Rap" #~ msgstr "Rap" #~ msgid "Reggae" #~ msgstr "Reggae" #~ msgid "Rock" #~ msgstr "Rock" #~ msgid "Techno" #~ msgstr "Techno" #~ msgid "Alternative" #~ msgstr "Alternative" #~ msgid "Ska" #~ msgstr "Ska" #~ msgid "Death Metal" #~ msgstr "Death metal" #~ msgid "Euro-Techno" #~ msgstr "Techno europea" #~ msgid "Ambient" #~ msgstr "Ambient" #~ msgid "Trip-Hop" #~ msgstr "Trip-Hop" #~ msgid "Jazz+Funk" #~ msgstr "Jazz+Funk" #~ msgid "Fusion" #~ msgstr "Fusion" #~ msgid "Trance" #~ msgstr "Trance" #~ msgid "Classical" #~ msgstr "Classica" #~ msgid "Instrumental" #~ msgstr "Strumentale" #~ msgid "Acid" #~ msgstr "Acid" #~ msgid "House" #~ msgstr "House" #~ msgid "Gospel" #~ msgstr "Gospel" #~ msgid "Alt. Rock" #~ msgstr "Alternative rock" #~ msgid "Soul" #~ msgstr "Soul" #~ msgid "Punk" #~ msgstr "Punk" #~ msgid "Ethnic" #~ msgstr "Etnica" #~ msgid "Darkwave" #~ msgstr "Darkwave" #~ msgid "Techno-Industrial" #~ msgstr "Techno-Industrial" #~ msgid "Pop-Folk" #~ msgstr "Pop-Folk" #~ msgid "Eurodance" #~ msgstr "Eurodance" #~ msgid "Dream" #~ msgstr "Dream" #~ msgid "Southern Rock" #~ msgstr "Southern rock" #~ msgid "Pop/Funk" #~ msgstr "Pop/Funk" #~ msgid "Psychedelic" #~ msgstr "Psichedelica" #~ msgid "Rave" #~ msgstr "Rave" #~ msgid "Tribal" #~ msgstr "Tribal" #~ msgid "Acid Punk" #~ msgstr "Acid Punk" #~ msgid "Acid Jazz" #~ msgstr "Acid Jazz" #~ msgid "Polka" #~ msgstr "Polka" #~ msgid "Musical" #~ msgstr "Musical" #~ msgid "Rock & Roll" #~ msgstr "Rock & Roll" #~ msgid "Hard Rock" #~ msgstr "Hard rock" #~ msgid "Folk" #~ msgstr "Folk" #~ msgid "Folk/Rock" #~ msgstr "Folk/Rock" #~ msgid "Swing" #~ msgstr "Swing" #~ msgid "Revival" #~ msgstr "Revival" #~ msgid "Celtic" #~ msgstr "Celtica" #~ msgid "Bluegrass" #~ msgstr "Bluegrass" #~ msgid "Avantgarde" #~ msgstr "Avantgarde" #~ msgid "Gothic Rock" #~ msgstr "Gothic Rock" #~ msgid "Progressive Rock" #~ msgstr "Rock progressivo" #~ msgid "Psychedelic Rock" #~ msgstr "Rock psichedelico" #~ msgid "Symphonic Rock" #~ msgstr "Rock sinfonico" #~ msgid "Opera" #~ msgstr "Opera" #~ msgid "Chamber Music" #~ msgstr "Musica da camera" #~ msgid "Club" #~ msgstr "Club" #~ msgid "Tango" #~ msgstr "Tango" #~ msgid "Samba" #~ msgstr "Samba" #~ msgid "Punk Rock" #~ msgstr "Punk Rock" #~ msgid "Dance Hall" #~ msgstr "Dancehall" #~ msgid "Goa" #~ msgstr "Goa" #~ msgid "Drum & Bass" #~ msgstr "Drum & Bass" #~ msgid "Hardcore" #~ msgstr "Hardcore" #~ msgid "Indie" #~ msgstr "Indie" #~ msgid "BritPop" #~ msgstr "Britpop" #~ msgid "Beat" #~ msgstr "Beat" #~ msgid "Heavy Metal" #~ msgstr "Heavy metal" #~ msgid "Black Metal" #~ msgstr "Black metal" #~ msgid "Crossover" #~ msgstr "Crossover" #~ msgid "Merengue" #~ msgstr "Merengue" #~ msgid "Salsa" #~ msgstr "Salsa" #~ msgid "Synthpop" #~ msgstr "Synthpop" #~ msgid "GB" #~ msgstr "GB" #~ msgid "MB" #~ msgstr "MB" #~ msgid "KB" #~ msgstr "KB" #~ msgid "Bytes" #~ msgstr "Byte" #~ msgid "MPEG-1" #~ msgstr "MPEG-1" #~ msgid "MPEG-2" #~ msgstr "MPEG-2" #~ msgid "MPEG-2.5" #~ msgstr "MPEG-2.5" #~ msgid "Layer I" #~ msgstr "Layer I" #~ msgid "Layer II" #~ msgstr "Layer II" #~ msgid "Layer III" #~ msgstr "Layer III" #~ msgid "VBR" #~ msgstr "VBR" #~ msgid "CBR" #~ msgstr "CBR" #~ msgid "no copyright" #~ msgstr "nessun copyright" #~ msgid "copy" #~ msgstr "copia" #~ msgid "%ux%u dots per inch" #~ msgstr "%ux%u punti per pollice" #~ msgid "%ux%u dots per cm" #~ msgstr "%ux%u punti per cm" #~ msgid "%ux%u dots per inch?" #~ msgstr "%ux%u punti per pollice?" libextractor-1.3/po/en@boldquot.header0000644000175000017500000000247111260753602015052 00000000000000# All this catalog "translates" are quotation characters. # The msgids must be ASCII and therefore cannot contain real quotation # characters, only substitutes like grave accent (0x60), apostrophe (0x27) # and double quote (0x22). These substitutes look strange; see # http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html # # This catalog translates grave accent (0x60) and apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019). # It also translates pairs of apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019) # and pairs of quotation mark (0x22) to # left double quotation mark (U+201C) and right double quotation mark (U+201D). # # When output to an UTF-8 terminal, the quotation characters appear perfectly. # When output to an ISO-8859-1 terminal, the single quotation marks are # transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to # grave/acute accent (by libiconv), and the double quotation marks are # transliterated to 0x22. # When output to an ASCII terminal, the single quotation marks are # transliterated to apostrophes, and the double quotation marks are # transliterated to 0x22. # # This catalog furthermore displays the text between the quotation marks in # bold face, assuming the VT100/XTerm escape sequences. # libextractor-1.3/po/pl.gmo0000644000175000017500000011061412255661613012547 000000000000004Lh(i((((,((%),A)-n) )&))*$*.7*Kf** ****+2 +@+^+u++++ ++ ++ ,3, D,Le,/,,, ---$-(-1-(A- j-v--(--- -- -- . .'. :. H. U. b. p.}.R.. . ///!/%0/CV/// // /N/0(0E0L0 e0 s0 000 00 0 000 111 41 A1 N1Y1 u1 1 1W1(12 #202/?2o22 222!22!2+3<3U3]3w33 3333&33 34 45%4[4 c4 p4~4 4 44>44"565YU5 555 55 6 6 @6 K6 V6 b6 o6%|6'6/667!7<7X7p71777 77"7 8I8 f8"t88 8 88 8A8&9 ,9 79D9V9]9 l9 w9&99w9&:n,:2:T:#; 4;B;S;<<'<H=&c==R=!=%>4> C> P> Z>g>-v>>>)>>> ?*?F?]? b? o?}????? ??&?@*@=@W@s@ @@"@@:@ A $A /A =AHA3PAAAAA A AAA B,%BRBdByB@~BB/BBCC+.C4ZC%CCOCD2D+HDtD.DDD1DE)EEE_EvE/E'EE) F+3F_FuF.FF9F, G88GqGGGZG,H1HJHjHH6HHHH;I*@I kI%I)III0J7J JJ WJcJsJ7JJJJJ KK 9KFK&VKF}KDK3 L"=L `LAkL LL L LLLLRCRWR=jR0R+RS S !S.S 5S$CS*hSSMS2S/,T \TjTqTyT TTTTTT TTT U U8UHU)QU {UUUU%UUVV!+V MVXV iV vV1VV!VV> WJW RW_WoWvW1W'W-W X +X 7XCXTXcX(rXX'X9X Y)Y =YHY>OYYY2[O[m[[-[$[#[-\.K\'z\$\\\\$]W7]]]]]] ]1^9^J^!h^^^ ^^^_ _/_$3_!X_Mz_9_``0`E` I`T` X`c`4|` ```*` aa .a8a >aKa Qa^a|aaaaaaaObfbzbbbbb,b2b c)c/cBcZcKrc cccccd/dBdYd jdxddddddd-d+e?eQebee e eCe3e$f5fFf2Wffffff?f3g9Bg.|gg ggg gghh"h23hfhhhh6hh hii"i2iAiJIii!iiXi Dj;Qjjjj)j j j j k k+&k/Rk*k k kk%kl9}4x}/}%}~ ~r*~&~~#~;* fs;&&"+A m{7ˀ ݀ 5Ti! .A->oJ' !=.l~ ]4 OY a''҄ -;@Pą+݅H R kuȆ߆ *> DCR ɇ1އ %!D ft  >45 <J4bÉ.މ8 #Fj ,&M);w;  $ .8G]m ،% $&:a%h ΍--Hv6  (CA'̏  )(7 `"m> ϐ7ܐ "I)sSs >`q,"e?t{ (y.x4K9!*FVz5E G=T&Xek[+-w jr,A ~iDZJ Klhh1|VDluCr/M0c}S?3NWp!/\OU7zd1=iR;]O6I%JbP)Rmbay32]Q #%'q4QMABZm@ P#wa2_k${WXpEj+_Yg@f5tLH\$~0<7B T&Ho<I[;)Fo`Cvx'c(8Lv|g f }6UuN-n^n*G9.ds^:8: >"Y%s - (binary, %u bytes) %s - (unknown, %u bytes) %s: illegal option -- %c %s: invalid option -- %c %s: option `%c%s' doesn't allow an argument %s: option `%s' is ambiguous %s: option `%s' requires an argument %s: option `--%s' doesn't allow an argument %s: option `-W %s' doesn't allow an argument %s: option `-W %s' is ambiguous %s: option requires an argument -- %c %s: unrecognized option `%c%s' %s: unrecognized option `--%s' %u Hz, %u channelsAddress of the publisher (often only the city)Arguments mandatory for long options are also mandatory for short options. Australian EnglishBelgian DutchBelgian FrenchCanadian FrenchCastilian SpanishCommandsContact information for the creator or distributorConventions and miscellaneousCroato-Serbian (Latin)Extract metadata from files.FarsiFile formats and conventionsFound by `%s' plugin: GPS latitudeGPS latitude refGPS longitudeGPS longitude refGamesISO 2-letter country code for the country of originISRC number identifying the workIllegal combination of options, cannot combine multiple styles of printing. Initialization of plugin mechanism failed: %s! Kernel routinesKeywords for file %s: Library callsMD4MD4 hashMD5MD5 hashMexican SpanishName of the entity holding the copyrightNo ProofingNorwegian BokmalOriginating entityRevision #%u: Author `%s' worked on `%s'Rhaeto-RomanicRipeMD150 hashRipeMD160SHA-0SHA-0 hashSHA-1SHA-1 hashSerbo-Croatian (Cyrillic)Simplified ChineseSpecial filesSwiss FrenchSwiss GermanSwiss ItalianSystem callsSystem management commandsThe artist(s) who performed the work (conductor, orchestra, soloists, actor, etc.)Traditional ChineseU.K. EnglishU.S. EnglishURIURLUsage: %s %s Use --help to get a list of options. You must specify an argument for the `%s' option (option ignored). abstractalbumalbum gainalbum gain in dbalbum peakambiguous date (could specify creation time, modification time or access time)apertureapplicable copyright licenseartistassociated misc. pictureaudio bitrateaudio codecaudio depthaudio durationaudio languageauthor emailauthor institutionauthor namebe verbosebeats per minutebibtex entry typebibtex eprintbitratebitrate of the audio trackbook chapterbook editionbook titlebroadcast television systembuild hostcamera makecamera modelcategorization of the nature of the resource that is more specific than the file formatcategory the software package belongs tochannelschapter namechapter numberchapters, contents or bookmarks (in xml format)character countcharacter encoding usedcharacter setcitycodeccodec the audio data is stored incodec the data is stored incodec the video data is stored incodec/format the subtitle data is stored incodec: %s, %u fps, %u mscommentcomment about the contentcompanycomposerconductorconflicting packagescontactcontainer formatcontainer format the data is stored incontributing writercontributorcontributor picturecopyrightcount of discs inside collection this disc belongs tocountrycountry codecover picturecreated by softwarecreation datecreation timecreatordate of publication (or, if unpublished, the date of creation)date the document was createddate the document was last printeddate the document was modifiedday of publication (or, if unpublished, the day of creation), relative to the given monthdependenciesdependency that must be satisfied before installationdescriptiondevice manufacturerdevice modeldevice used to create the objectdisc countdisclaimerdisk numberdisplay typedistributiondistribution the package is a part ofdo not print keywords of the given TYPEdo not use the default set of extractor pluginsdurationduration of a subtitle streamduration of a video streamduration of an audio streame-mail of the author(s)editing cyclesedition of the book (or book containing the work)embedded file sizeembedded filenameencoded byencoderencoder used to encode this streamencoder versionentry that contains the full, original binary data (not really meta data)event pictureexact or average bitrate in bits/sexposureexposure biasexposure modeextract [OPTIONS] [FILENAME]*file typefilename that was embedded (not necessarily the current filename)flashflash biasfocal lengthfocal length 35mmformatformat versionframe ratefull datafunctionality provided by this packagegenregeo elevation of where the media has been recorded or produced in meters according to WGS84 (zero is average sea level)groupgroups together media that are related and spans multiple tracks. An example are multiple pieces of a concertohardware architecture the contents can be used forhuman readable descriptive location of where the media has been recorded or producedimage dimensionsimage qualityimage resolutionindicates the direction the device is pointing to when capturing a media. It is represented as degrees in floating point representation, 0 means the geographic north, and increases clockwiseindicates the movement direction of the device performing the capture of a media. It is represented as degrees in floating point representation, 0 means the geographic north, and increases clockwiseinformation about rightsinformation about the file's popularityinformation about the people behind interpretations of an existing pieceinformation about the revision historyinstalled sizeinstitution that was involved in the publishing, but not necessarily the publisherinstitution the author worked forinternational standard recording codeinterpretationis essentialiso speedjournal namejournal numberjournal or magazine the work was published injournal volumekeywordskeywords reflecting the mood of the piecelanguagelanguage of the audio tracklanguage of the subtitle tracklanguage of the video tracklanguage the work useslastlast printedlast saved bylegal disclaimerlibrary dependencylibrary search pathlicenselicenseeline countlist all keyword typesload an extractor plugin named LIBRARYlocation capture directionlocation elevationlocation horizontal errorlocation movement directionlocation movement speedlocation namelogologo of an associated organizationlyricslyrics of the song or text description of vocal activitiesmachine the package was build onmacro modemagnificationmaintainermanagermanufacturer of the device used to create the mediamaximum audio bitratemaximum bitratemaximum bitrate in bits/smaximum video bitratemetering modemime typemimetypeminimum bitrateminimum bitrate in bits/smodel of the device used to create the mediamodification datemodified by softwaremonomonth of publication (or, if unpublished, the month of creation)moodmore specific location of the geographic originmovie directormusician credit listname of a contributorname of a library that this file depends onname of person or organization that encoded the filename of software making modificationsname of the albumname of the architecture, operating system and distribution this package is forname of the artist or bandname of the author(s)name of the broadcasting network or stationname of the chaptername of the city where the document originatedname of the composername of the conductorname of the country where the document originatedname of the directorname of the document formatname of the group or bandname of the maintainername of the original artistname of the original file (reserved for GNUnet)name of the original lyricist or writername of the original performername of the owner or licensee of the filename of the person who created the documentname of the publishername of the showname of the software that created the documentname of the software vendorname of the television system for which the data is codedname of the user who saved the document lastname of the version of the song (i.e. remix information)names of contributing musiciansnetworknominal bitratenominal bitrate in bits/s. The actual bitrate might be different from this target bitrate.number of a journal, magazine or tech-reportnumber of audio channelsnumber of bits per audio samplenumber of charactersnumber of editing cyclesnumber of frames per second (as D/N or floating point)number of linesnumber of paragraphsnumber of songsnumber of the disk in a multi-disk (or volume) distributionnumber of the episode within a season/shownumber of the first song to playnumber of the season of a show/seriesnumber of times the media has been playednumber of wordsnumbers of bits per pixeloperating system for which this package was madeorder of the pagesorganizationorientationoriginal artistoriginal filenameoriginal number of the track on the distribution mediumoriginal performeroriginal release yearoriginal source codeoriginal titleoriginal writerpackage is marked as essentialpackage namepackage versionpackages made obsolete by this packagepackages recommended for installation in conjunction with this packagepackages suggested for installation in conjunction with this packagepackages that cannot be installed with this packagepackages this package depends uponpage countpage numbers of the publication in the respective journal or bookpage orderpage orientationpage rangepaper sizeparagraph countpath in the file system to be considered when looking for required librariespeak of the albumpeak of the trackperformerpicturepicture of an associated eventpicture of one of the contributorspicture of the cover of the distribution mediumpixel aspect ratiopixel aspect ratio (as D/N)play counterplay time for the mediumpopularitypre-dependencyprint only keywords of the given TYPE (use -L to get a list)print output in bibtex formatprint the version numberprint this helppriority for promoting the release to productionproduce grep-friendly output (all results on one line per file)produced by softwareproducerproduct versionprovidespublication datepublication daypublication monthpublication seriespublication typepublication yearpublisherpublisher's addresspublishing institutionratingrating of the contentread data from file into memory and extract from memoryrecommendationsreference levelreference level of track and album gain valuesreplaced packagesrepresents the expected error on the horizontal positioning in metersreservedreserved value, do not useresolution in dots per inchresource typerevision historyrevision numberrightsripperrun plugins in-process (simplifies debugging)sample ratesample rate of the audio tracksectionserialserial number of trackseries of books the book was published inshowshow episode numbershow season numbersize of the contents of the container as embedded in the filesize of the image in pixels (width times height)smaller version of the image for previewingsoftware versionsong countsong versionsourcesource devicespace consumption after installationspecification of an electronic publicationspecifics are not knownspeed of the capturing device when performing the capture. Represented in m/sstandard Macintosh Finder file creator informationstandard Macintosh Finder file type informationstarting songstereosubjectsubject mattersublocationsubtitlesubtitle codecsubtitle durationsubtitle languagesubtitle of this partsuggestionssummarytable of contentstarget architecturetarget operating systemtarget platformtemplatetemplate the document uses or is based onthumbnailtime and date of creationtime spent editing the documenttitletitle of the book containing the worktitle of the original worktitle of the worktotal editing timetotal number of pages of the worktrack gaintrack gain in dbtrack numbertrack peaktype of the publication for bibTeX bibliographiestype of the tech-reportunique identifier for the packageuniversal resource identifieruniversal resource location (where the work is made available)unknownunknown dateupload priorityvendorversion of the document formatversion of the encoder used to encode this streamversion of the software and its packageversion of the software contained in the filevideo bitratevideo codecvideo depthvideo dimensionsvideo durationvideo languagevolume of a journal or multi-volume bookwarningwarning about the nature of the contentwhat rendering method should be used to display this itemwhite balancewidth and height of the video track (WxH)word countwriteryear of publication (or, if unpublished, the year of creation)year of the original releaseProject-Id-Version: libextractor 1.0.0-pre1 Report-Msgid-Bugs-To: libextractor@gnu.org POT-Creation-Date: 2013-12-22 23:11+0100 PO-Revision-Date: 2012-12-01 15:45+0100 Last-Translator: Jakub Bogusz Language-Team: Polish Language: pl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit %s - (binarny, bajtów: %u) %s - (nieznany, bajtów: %u) %s: niewłaściwa opcja -- %c %s: błędna opcja -- %c %s: opcja `%c%s' nie może mieć argumentów %s: opcja `%s' jest niejednoznaczna %s: opcja `%s' musi mieć argument %s: opcja `--%s' nie może mieć argumentów %s: opcja `-W %s' nie może mieć argumentów %s: opcja `-W %s' jest niejednoznaczna %s: opcja musi mieć argument -- %c %s: nieznana opcja `%c%s' %s: nieznana opcja `--%s' %u Hz, kanałów: %uadres wydawcy (często tylko miasto)Argumenty obowiązkowe dla opcji długich są obowiązkowe także dla opcji krótkich. angielski australijskiholenderski belgijskifrancuski belgijskifrancuski kanadyjskihiszpański kastylijskiPoleceniainformacje kontaktowe do twórcy lub dystrybutoraKonwencje i innechorwackoserbski (łaciński)Wyciąganie metadanych z plików.perskiFormaty i konwencje plikówZnalezione przez wtyczkę `%s': szerokość geograficzna wg GPSszerokość wg GPSdługość geograficzna wg GPSdługość GPSGry2-literowy kod ISO kraju pochodzenianumer ISRC identyfikujący pracęNiedozwolona kombinacja opcji, nie można łączyć wielu styli wypisywania. Inicjalizacja mechanizmu wtyczek nie powiodła się: %s! Funkcje jądraSłowa kluczowe dla pliku %s: Funkcje biblioteczneMD4skrót MD4MD5skrót MD5hiszpański meksykańskiNazwa podmiotu, do którego należą prawa autorskieBez korektynorweski bokmaalprzedmiot początkowyRewizja #%u: Autor `%s' pracował nad `%s'retoromańskiskrót RipeMD160RipeMD160SHA-0skrót SHA-0SHA-1skrót SHA-1serbsko-chorwacki (cyrylicki)chiński uproszczonyPliki specjalnefrancuski szwajcarskiniemiecki szwajcarskiwłoski szwajcarskiWywołania systemowePolecenia zarządzania systememartysta/artyści wykonujący utwory (dyrygent, orkiestra, soliści, aktor itp.)chiński tradycyjnyangielski brytyjskiangielski amerykańskiURIURLSkładnia: %s %s Opcja --help pozwala uzyskać listę opcji. Opcja `%s' wymaga argumentu (zignorowano opcję). abstraktalbumwzmocnienie albumuwzmocnienie albumu w dbpoziom szczytowy albumudata bez określonego znaczenia (czas utworzenia, modyfikacji lub dostępu)przysłonastosowana licencjaartystadowolna powiązana grafikaprędkosć transmisji dźwiękukodek dźwiękugłębia dźwiękuczas trwania dźwiękujęzyk dźwiękue-mail autorainstytucja autoranazwisko autoratryb szczegółowyuderzeń na minutęrodzaj wpisu bibtexeprint bibtexowyprędkość transmisjiprędkość transmisji ścieżki dźwiękowejrozdział książkiwydanie książkitytuł książkisystem transmisji telewizyjnejhost budowaniamarka aparatumodel aparatukategoryzacja charakteru zasobu bardziej konkretna od formatu plikukategoria, do której należy pakiet oprogramowanialiczba kanałównazwa rozdziałunumer rozdziałurozdziały, treść lub zakładki (w formacie XML)liczba znakówużyte kodowanie znakówzestaw znakówmiastokodekkodek, przy użyciu którego zostały zapisane dane dźwiękowekodek, przy użyciu którego zostały zapisane danekodek, przy użyciu którego zostały zapisane dane wideokodek/format, w jakim zostały zapisane napisykodek: %s, %u fps, %u mskomentarzkomentarz dotyczący treścifirmakompozytordyrygentpakiety w konflikciekontaktformat konteneraformat kontenera, w którym zostały zapisane danepisarz współpracującywspółpracownikzdjęcie współpracownikaprawa autorskieliczba płyt w zestawie, do którego należy ta płytakrajkod krajuobraz okładkiprogram tworzącydata utworzeniaczas powstaniatwórcadata opublikowania (lub powstania, jeśli praca nie została opublikowana)data utworzenia dokumentudata ostatniego wydruku dokumentudata modyfikacji dokumentudzień opublikowania (lub powstania, jeśli praca nie została opublikowana) w miesiącuzależnościzależność, która musi być spełniona przed instalacjąopisproducent urządzeniamodel urządzeniaurządzenie użyte przy tworzeniu obiektuliczba płytzastrzeżenianumer płytyrodzaj ekranudystrybucjadystrybucja, której częścią jest pakietbez wypisywania słów kluczowych podanego TYPUbez domyślnego zestawu wtyczek wyciągówczas trwaniaczas trwania strumienia napisówczas trwania strumienia wideoczas trwania strumienia dźwiękowegoadres e-mail autora/autorówcykle edycyjnewydanie książki (lub książki zawierającej pracę)osadzony rozmiar plikuosadzona nazwa plikukodującykoderprogram kodujący użyty do zakodowania tego strumieniawersja koderawpis zawierający pełne, oryginalne dane binarne (nie metadane)zdjęcie wydarzeniadokładna lub średnia prędkość transmisji w bitach na sekundęekspozycjaodchylenie ekspozycjitryb ekspozycjiextract [OPCJE] [NAZWA_PLIKU]*rodzaj plikuosadzona nazwa pliku (niekoniecznie bieżąca nazwa pliku)fleszodchylenie fleszadługość ogniskowejogniskowa 35mmformatwersja formatuczęstotliwość odświeżaniapełne danefunkcjonalność dostarczana przez ten pakietgatunekwysokość geograficzna miejsca, gdzie wykonano lub wyprodukowano nagranie w metrach zgodnie z WGS84 (zero to średni poziom morza)grupagrupowanie utworów powiązanych ze sobą, zajmujących wiele ścieżek - np. wielu fragmentów koncertuarchitektura sprzętu, dla którego może być użyty pakietczytelny dla człowieka opis miejsca, gdzie wykonano lub wyprodukowano nagraniewymiary obrazujakość obrazurozdzielczość obrazukierunek skierowania urządzenia nagrywającego podczas nagrania; wyrażony w stopniach w reprezentacji zmiennoprzecinkowej, 0 oznacza północ geograficzną i rośnie zgodnie z ruchem wskazówek zegarakierunek ruchu urządzenia nagrywającego podczas nagrania; wyrażony w stopniach w reprezentacji zmiennoprzecinkowej, 0 oznacza północ geograficzną i rośnie zgodnie z ruchem wskazówek zegarainformacje o prawachinformacje o popularności plikuinformacje o osobach odpowiedzialnych za interpretacje istniejącego utworuinformacja o historii wersjirozmiar po instalacjiinstytucja zaangażowana w publikację, ale niekoniecznie wydawcainstytucja, dla której pracował autormiędzynarodowy standardowy kod nagraniainterpretacjajest ważnyczułość ISOnazwa periodykunumer periodykuperiodyk lub magazyn, w którym została opublikowana pracatom periodykusłowa kluczowesłowa kluczowe odzwierciedlające nastrój utworujęzykjęzyk ścieżki dźwiękowejjęzyk ścieżki napisówjęzyk ścieżki wideojęzyk użyty w pracykoniecostatni wydrukostatni zapis przezzastrzeżenia prawnezależność od bibliotekiścieżka poszukiwań biblioteklicencjalicencjobiorcaliczba liniiwypisanie słów kluczowych wszystkich typówodczyt wtyczki wyciągu o nazwie BIBLIOTEKAkierunek wykonywania nagraniawysokość miejscabłąd lokalizacji poziomej miejscakierunek ruchu miejscaszybkość ruchu miejscanazwa miejscalogologo powiązanej organizacjiteksttekst utworu lub tekstowy opis dotyczący wokalumaszyna, na której pakiet został zbudowanytryb makropowiększenieutrzymującyzarządcaproducent urządzenia wykorzystanego do wykonania nagraniamaksymalna prędkość transmisji dźwiękumaksymalna prędkość transmisjimaksymalna prędkość transmisji w bitach na sekundęmaksymalna prędkość transmisji obrazutryb pomiarutyp mimetyp mimeminimalna prędkość transmisjiminimalna prędkość transmisji w bitach na sekundęmodel urządzenia wykorzystanego do wykonania nagraniadata modyfikacjiprogram modyfikującymonomiesiąc opublikowania (lub powstania, jeśli praca nie została opublikowana)nastrójdokładniejsze miejsce pochodzenia geograficznegoreżyser filmulista podziękowań dla muzykównazwisko współpracownikanazwa biblioteki, od której zależy ten pliknazwisko/nazwa osoby lub organizacji, która zakodowała pliknazwa programu wykonującego modyfikacjenazwa albumunazwa architektury, systemu operacyjnego i dystrybucji, dla której jest ten pakietnazwisko/nazwa artysty lub zespołunazwisko autora/autorównazwa sieci lub stacji transmitującejnazwa rozdziałunazwa miasta, z którego pochodzi dokumentnazwisko kompozytoranazwisko dyrygentanazwa kraju, z którego pochodzi dokumentnazwisko reżyseranazwa formatu dokumentunazwa grupy lub zespołunazwisko utrzymującegonazwisko oryginalnego artystynazwa oryginalnego pliku (zarezerwowane dla GNUneta)nazwisko oryginalnego poety lub pisarzanazwa oryginalnego wykonawcynazwisko/nazwa właściciela lub licencjobiorcy plikunazwisko osoby, która stworzyła dokumentnazwa wydawcynazwa przedstawienianazwa programu, który utworzył dokumentnazwa dostawcy oprogramowanianazwa systemu telewizji, dla którego zostały zakodowane danenazwa użytkownika, który ostatni zapisał dokumentnazwa wersji utworu (np. informacje o remiksie)nazwiska muzyków współpracującychsiećnominalna prędkość transmisjinominalna prędkość transmisji w bitach na sekundę; faktyczna prędkość może się różnić od tej docelowejnumer periodyku, magazynu albo raportuliczba kanałów dźwiękuliczba bitów na próbkę dźwiękuliczba znakówliczba cykli edycyjnychliczba klatek na sekundę (jako M/L lub zmiennoprzecinkowa)liczba liniiliczba akapitówliczba utworównumer dysku w wydaniu wielopłytowym (lub wielowoluminowym)numer epizodu w sezonie/przedstawieniunumer pierwszego utworu do odtwarzanianumer sezonu przestawienia/serialuliczba razy, które nośnik był odtwarzanyliczba słówliczba bitów na pikselsystem operacyjny, dla którego pakiet został zrobionykolejność stronorganizacjaorientacjaartysta oryginalnyoryginalna nazwa plikuoryginalny numer ścieżki na nośniku dystrybucyjnymwykonawca oryginalnyoryginalny rok wydaniaoryginalny kod źródłowytytuł oryginalnypisarz oryginalnypakiet jest oznaczony jako ważnynazwa pakietuwersja pakietupakiety wyłączane z użycia przez ten pakietpakiety rekomendowane do instalacji w połączeniu z tym pakietempakiety sugerowane do instalacji w połączeniu z tym pakietempakiety, które nie mogą być zainstalowane równocześnie z tym pakietempakiety, od których zależy ten pakietliczba stronnumery stron publikacji w odpowiednim periodyku lub książcekolejność stronorientacja stronyzakres stronrozmiar papieruliczba akapitówścieżka w systemie plików, która ma być uwzględniana przy szukaniu wymaganych bibliotekpoziom szczytowy albumupoziom szczytowy ścieżkiwykonawcagrafikazdjęcie powiązanego wydarzeniazdjęcie jednego ze współpracownikówobraz okładki nośnika dystrybucyjnegoproporcje pikselaproporcje piksela (jako M/L)liczba odtworzeńczas odtwarzania nośnikapopularnośćwczesna zależnośćwypisanie słów kluczowych tylko podanego TYPU (-L poda listę)wyjście w formacie bibtexwypisanie numeru wersjiwyświetlenie tego opisupriorytet przesłania wydania na produkcjęwyjście przyjazne dla grepa (wszystkie wyniki w jednej linii dla pliku)oprogramowanie tworząceproducentwersja produktudostarczane właściwościdata opublikowaniadzień opublikowaniamiesiąc opublikowaniaseria publikacjirodzaj publikacjirok opublikowaniawydawcaadres wydawcyinstytucja wydawczaocenaocena treściodczyt danych z pliku do pamięci i tworzenie wyciągów z pamięcirekomendacjepoziom odniesieniapoziom odniesieniapakiety zastępowanespodziewany błąd lokalizacji poziomej w metrachzarezerwowanewartość zarezerwowana, nie używaćrozdzielczość w punktach na calrodzaj zasobuhistoria wersjinumer rewizjiprawakopiującyuruchamianie wtyczek wewnątrz procesu (ułatwia diagnostykę)częstotliwość próbkowaniaczęstotliwość próbkowania ścieżki dźwiękowejsekcjanumer seryjnynumer seryjny ścieżkiseria książek, w której została wydana książkaprzedstawienienumer epizodu przedstawienianumer sezonu przestawieniarozmiar treści w kontenerze osadzonym w plikurozmiar obrazu w pikselach (szerokość razy wysokość)mniejsza wersja obrazu do podgląduwersja oprogramowanialiczba utworówwersja utworuźródłourządzenie źródłowemiejsce zajmowane przez pakiet po instalacjispecyfikacja publikacji elektronicznejszczegóły nieznaneszybkość ruchu urządzenia nagrywającego podczas nagrania, wyrażona w m/sstandardowa informacja o twórcy pliku wg Macintosh Finderastandardowa informacja o rodzaju pliku wg Macintosh Finderautwór początkowystereoprzedmiotprzedmiot tematudzielnicapodtytułkodek napisówczas trwania napisówjęzyk napisówpodtytuł tej częścisugestiestreszczeniespis treściarchitektura docelowadocelowy system operacyjnyplatforma docelowaszablonszablon wykorzystywany przez dokumentminiaturkaczas i data powstaniaczas poświęcony na edycję dokumentutytułtytuł książki zawierającej pracętytuł oryginalnego dziełatytuł pracycałkowity czas edycjicałkowita liczba stron pracywzmocnienie ścieżkiwzmocnienie ścieżki w dbnumer ścieżkipoziom szczytowy ścieżkirodzaj publikacji do bibliografii bibTeXowychrodzaj raportuunikalny identyfikator pakietuidentyfikator URI zasobuodnośnik URL do zasobu (miejsca udostępnienia pracy)nieznanynieznana datapriorytet wdrozeniadostawcawersja formatu dokumentuwersja programu kodującego użytego do zakodowania tego strumieniawersja programu i jego pakietuwersja oprogramowania zawartego w plikuprędkość transmisji obrazukodek obrazugłębia obrazuwymiary obrazuczas trwania filmujęzyk obrazutom periodyku lub książki wielotomowejostrzeżenieostrzeżenie o charakterze treścimetoda renderowania, jaka powinna być użyta do wyświetlaniabalans bieliszerokośc i wysokość ścieżki obrazu (szer. x wys.)liczba słówpisarzrok opublikowania (lub powstania, jeśli praca nie została opublikowana)rok oryginalnego wydanialibextractor-1.3/po/fr.po0000644000175000017500000015327612255661612012411 00000000000000# translation of libextractor-0.5.20a to French. # Copyright (C) 2008 Free Software Foundation, Inc. # This file is distributed under the same license as the libextractor package. # # Nicolas Provost , 2008. msgid "" msgstr "" "Project-Id-Version: libextractor-0.5.20a\n" "Report-Msgid-Bugs-To: libextractor@gnu.org\n" "POT-Creation-Date: 2013-12-22 23:11+0100\n" "PO-Revision-Date: 2008-08-24 19:08+0100\n" "Last-Translator: Nicolas Provost \n" "Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" #: src/main/extract.c:132 #, c-format msgid "" "Usage: %s\n" "%s\n" "\n" msgstr "" "Usage: %s\n" "%s\n" "\n" #: src/main/extract.c:135 #, c-format msgid "" "Arguments mandatory for long options are also mandatory for short options.\n" msgstr "" "Les arguments obligatoires pour les options longues le sont aussi pour les " "options courtes.\n" #: src/main/extract.c:217 msgid "print output in bibtex format" msgstr "sortie au format bibtex" #: src/main/extract.c:219 msgid "produce grep-friendly output (all results on one line per file)" msgstr "" "produit une sortie exploitable avec \"grep\" (une ligne contenant tous les " "résultats d'un fichier)" #: src/main/extract.c:221 msgid "print this help" msgstr "affiche cette aide" #: src/main/extract.c:223 msgid "run plugins in-process (simplifies debugging)" msgstr "" #: src/main/extract.c:225 msgid "read data from file into memory and extract from memory" msgstr "" #: src/main/extract.c:227 msgid "load an extractor plugin named LIBRARY" msgstr "charge le module d'extraction nommé LIBRARY" #: src/main/extract.c:229 msgid "list all keyword types" msgstr "liste tous les types de mots-clés" #: src/main/extract.c:231 msgid "do not use the default set of extractor plugins" msgstr "ne pas utiliser les modules d'extraction par défaut" #: src/main/extract.c:233 msgid "print only keywords of the given TYPE (use -L to get a list)" msgstr "" "affiche seulement les mots-clés du TYPE donné (utiliser -L pour avoir la " "liste)" #: src/main/extract.c:235 msgid "print the version number" msgstr "affiche le numéro de version" #: src/main/extract.c:237 msgid "be verbose" msgstr "affichage détaillé" #: src/main/extract.c:239 msgid "do not print keywords of the given TYPE" msgstr "ne pas afficher les mots-clés du TYPE donné" #: src/main/extract.c:242 msgid "extract [OPTIONS] [FILENAME]*" msgstr "extract [OPTIONS] [FICHIER]*" #: src/main/extract.c:243 msgid "Extract metadata from files." msgstr "Extraction des métadonnées des fichiers." #: src/main/extract.c:288 #, fuzzy, c-format msgid "Found by `%s' plugin:\n" msgstr "Le chargement du module `%s' a échoué : %s\n" #: src/main/extract.c:291 src/main/extract.c:378 #: src/main/extractor_metatypes.c:145 src/main/extractor_print.c:86 #: src/main/extractor_print.c:96 msgid "unknown" msgstr "inconnu" #: src/main/extract.c:296 #, c-format msgid "%s - (unknown, %u bytes)\n" msgstr "" #: src/main/extract.c:325 #, fuzzy, c-format msgid "%s - (binary, %u bytes)\n" msgstr "%s - (binaire)\n" #: src/main/extract.c:809 src/main/extract.c:821 msgid "" "Illegal combination of options, cannot combine multiple styles of printing.\n" msgstr "" #: src/main/extract.c:854 #, c-format msgid "You must specify an argument for the `%s' option (option ignored).\n" msgstr "Vous devez préciser un argument pour l'option `%s' (option ignorée).\n" #: src/main/extract.c:923 msgid "Use --help to get a list of options.\n" msgstr "Utilisez --help pour obtenir une liste d'options.\n" #: src/main/extract.c:964 #, fuzzy msgid "% BiBTeX file\n" msgstr "%% fichier BiBTeX\n" #: src/main/extract.c:972 #, c-format msgid "Keywords for file %s:\n" msgstr "Mots-clés pour le fichier %s:\n" #: src/main/extractor.c:676 #, c-format msgid "Initialization of plugin mechanism failed: %s!\n" msgstr "Echec de l'initialisation du module %s !\n" #: src/main/extractor_metatypes.c:46 msgid "reserved" msgstr "" #: src/main/extractor_metatypes.c:47 msgid "reserved value, do not use" msgstr "" #: src/main/extractor_metatypes.c:48 msgid "mimetype" msgstr "type mime" #: src/main/extractor_metatypes.c:49 #, fuzzy msgid "mime type" msgstr "type mime" #: src/main/extractor_metatypes.c:50 #, fuzzy msgid "embedded filename" msgstr "nom de fichier" #: src/main/extractor_metatypes.c:51 msgid "filename that was embedded (not necessarily the current filename)" msgstr "" #: src/main/extractor_metatypes.c:52 msgid "comment" msgstr "commentaire" #: src/main/extractor_metatypes.c:53 msgid "comment about the content" msgstr "" #: src/main/extractor_metatypes.c:54 msgid "title" msgstr "titre" #: src/main/extractor_metatypes.c:55 msgid "title of the work" msgstr "" #: src/main/extractor_metatypes.c:57 msgid "book title" msgstr "titre du livre" #: src/main/extractor_metatypes.c:58 msgid "title of the book containing the work" msgstr "" #: src/main/extractor_metatypes.c:59 #, fuzzy msgid "book edition" msgstr "titre du livre" #: src/main/extractor_metatypes.c:60 msgid "edition of the book (or book containing the work)" msgstr "" #: src/main/extractor_metatypes.c:61 #, fuzzy msgid "book chapter" msgstr "chapitre" #: src/main/extractor_metatypes.c:62 #, fuzzy msgid "chapter number" msgstr "numéro de piste" #: src/main/extractor_metatypes.c:63 #, fuzzy msgid "journal name" msgstr "nom complet" #: src/main/extractor_metatypes.c:64 msgid "journal or magazine the work was published in" msgstr "" #: src/main/extractor_metatypes.c:65 msgid "journal volume" msgstr "" #: src/main/extractor_metatypes.c:66 msgid "volume of a journal or multi-volume book" msgstr "" #: src/main/extractor_metatypes.c:68 #, fuzzy msgid "journal number" msgstr "numéro de piste" #: src/main/extractor_metatypes.c:69 msgid "number of a journal, magazine or tech-report" msgstr "" #: src/main/extractor_metatypes.c:70 msgid "page count" msgstr "nombre de pages" #: src/main/extractor_metatypes.c:71 msgid "total number of pages of the work" msgstr "" #: src/main/extractor_metatypes.c:72 #, fuzzy msgid "page range" msgstr "ordre des pages" #: src/main/extractor_metatypes.c:73 msgid "page numbers of the publication in the respective journal or book" msgstr "" #: src/main/extractor_metatypes.c:74 #, fuzzy msgid "author name" msgstr "auteur" #: src/main/extractor_metatypes.c:75 msgid "name of the author(s)" msgstr "" #: src/main/extractor_metatypes.c:76 #, fuzzy msgid "author email" msgstr "auteur" #: src/main/extractor_metatypes.c:77 msgid "e-mail of the author(s)" msgstr "" #: src/main/extractor_metatypes.c:79 #, fuzzy msgid "author institution" msgstr "orientation" #: src/main/extractor_metatypes.c:80 msgid "institution the author worked for" msgstr "" #: src/main/extractor_metatypes.c:81 msgid "publisher" msgstr "éditeur" #: src/main/extractor_metatypes.c:82 #, fuzzy msgid "name of the publisher" msgstr "éditeur" #: src/main/extractor_metatypes.c:83 #, fuzzy msgid "publisher's address" msgstr "éditeur" #: src/main/extractor_metatypes.c:84 msgid "Address of the publisher (often only the city)" msgstr "" #: src/main/extractor_metatypes.c:85 msgid "publishing institution" msgstr "" #: src/main/extractor_metatypes.c:86 msgid "" "institution that was involved in the publishing, but not necessarily the " "publisher" msgstr "" #: src/main/extractor_metatypes.c:87 #, fuzzy msgid "publication series" msgstr "date de publication" #: src/main/extractor_metatypes.c:88 msgid "series of books the book was published in" msgstr "" #: src/main/extractor_metatypes.c:90 #, fuzzy msgid "publication type" msgstr "date de publication" #: src/main/extractor_metatypes.c:91 msgid "type of the tech-report" msgstr "" #: src/main/extractor_metatypes.c:92 #, fuzzy msgid "publication year" msgstr "date de publication" #: src/main/extractor_metatypes.c:93 msgid "year of publication (or, if unpublished, the year of creation)" msgstr "" #: src/main/extractor_metatypes.c:94 #, fuzzy msgid "publication month" msgstr "date de publication" #: src/main/extractor_metatypes.c:95 msgid "month of publication (or, if unpublished, the month of creation)" msgstr "" #: src/main/extractor_metatypes.c:96 #, fuzzy msgid "publication day" msgstr "date de publication" #: src/main/extractor_metatypes.c:97 msgid "" "day of publication (or, if unpublished, the day of creation), relative to " "the given month" msgstr "" #: src/main/extractor_metatypes.c:98 msgid "publication date" msgstr "date de publication" #: src/main/extractor_metatypes.c:99 msgid "date of publication (or, if unpublished, the date of creation)" msgstr "" #: src/main/extractor_metatypes.c:101 msgid "bibtex eprint" msgstr "" #: src/main/extractor_metatypes.c:102 msgid "specification of an electronic publication" msgstr "" #: src/main/extractor_metatypes.c:103 #, fuzzy msgid "bibtex entry type" msgstr "type de contenu" #: src/main/extractor_metatypes.c:104 msgid "type of the publication for bibTeX bibliographies" msgstr "" #: src/main/extractor_metatypes.c:105 msgid "language" msgstr "langue" #: src/main/extractor_metatypes.c:106 msgid "language the work uses" msgstr "" #: src/main/extractor_metatypes.c:107 #, fuzzy msgid "creation time" msgstr "date de création" #: src/main/extractor_metatypes.c:108 msgid "time and date of creation" msgstr "" #: src/main/extractor_metatypes.c:109 msgid "URL" msgstr "" #: src/main/extractor_metatypes.c:110 msgid "universal resource location (where the work is made available)" msgstr "" #: src/main/extractor_metatypes.c:112 msgid "URI" msgstr "" #: src/main/extractor_metatypes.c:113 #, fuzzy msgid "universal resource identifier" msgstr "identifiant de ressource" #: src/main/extractor_metatypes.c:114 msgid "international standard recording code" msgstr "" #: src/main/extractor_metatypes.c:115 msgid "ISRC number identifying the work" msgstr "" #: src/main/extractor_metatypes.c:116 msgid "MD4" msgstr "MD4" #: src/main/extractor_metatypes.c:117 msgid "MD4 hash" msgstr "" #: src/main/extractor_metatypes.c:118 msgid "MD5" msgstr "MD5" #: src/main/extractor_metatypes.c:119 msgid "MD5 hash" msgstr "" #: src/main/extractor_metatypes.c:120 msgid "SHA-0" msgstr "SHA-0" #: src/main/extractor_metatypes.c:121 #, fuzzy msgid "SHA-0 hash" msgstr "SHA-0" #: src/main/extractor_metatypes.c:123 msgid "SHA-1" msgstr "SHA-1" #: src/main/extractor_metatypes.c:124 #, fuzzy msgid "SHA-1 hash" msgstr "SHA-1" #: src/main/extractor_metatypes.c:125 msgid "RipeMD160" msgstr "RipeMD160" #: src/main/extractor_metatypes.c:126 #, fuzzy msgid "RipeMD150 hash" msgstr "RipeMD160" #: src/main/extractor_metatypes.c:127 src/main/extractor_metatypes.c:128 msgid "GPS latitude ref" msgstr "" #: src/main/extractor_metatypes.c:129 src/main/extractor_metatypes.c:130 msgid "GPS latitude" msgstr "" #: src/main/extractor_metatypes.c:131 src/main/extractor_metatypes.c:132 msgid "GPS longitude ref" msgstr "" #: src/main/extractor_metatypes.c:134 src/main/extractor_metatypes.c:135 msgid "GPS longitude" msgstr "" #: src/main/extractor_metatypes.c:136 msgid "city" msgstr "" #: src/main/extractor_metatypes.c:137 msgid "name of the city where the document originated" msgstr "" #: src/main/extractor_metatypes.c:138 #, fuzzy msgid "sublocation" msgstr "emplacement" #: src/main/extractor_metatypes.c:139 msgid "more specific location of the geographic origin" msgstr "" #: src/main/extractor_metatypes.c:140 #, fuzzy msgid "country" msgstr "Country" #: src/main/extractor_metatypes.c:141 msgid "name of the country where the document originated" msgstr "" #: src/main/extractor_metatypes.c:142 #, fuzzy msgid "country code" msgstr "Country" #: src/main/extractor_metatypes.c:143 msgid "ISO 2-letter country code for the country of origin" msgstr "" #: src/main/extractor_metatypes.c:146 msgid "specifics are not known" msgstr "" #: src/main/extractor_metatypes.c:147 src/main/extractor_metatypes.c:148 msgid "description" msgstr "description" #: src/main/extractor_metatypes.c:149 msgid "copyright" msgstr "copyright" #: src/main/extractor_metatypes.c:150 msgid "Name of the entity holding the copyright" msgstr "" #: src/main/extractor_metatypes.c:151 #, fuzzy msgid "rights" msgstr "copyright" #: src/main/extractor_metatypes.c:152 #, fuzzy msgid "information about rights" msgstr "information" #: src/main/extractor_metatypes.c:153 src/main/extractor_metatypes.c:154 msgid "keywords" msgstr "mots-clés" #: src/main/extractor_metatypes.c:156 src/main/extractor_metatypes.c:157 msgid "abstract" msgstr "" #: src/main/extractor_metatypes.c:158 src/main/extractor_metatypes.c:159 msgid "summary" msgstr "résumé" #: src/main/extractor_metatypes.c:160 msgid "subject" msgstr "sujet" #: src/main/extractor_metatypes.c:161 #, fuzzy msgid "subject matter" msgstr "sujet" #: src/main/extractor_metatypes.c:162 src/main/extractor_metatypes.c:195 msgid "creator" msgstr "créateur" #: src/main/extractor_metatypes.c:163 msgid "name of the person who created the document" msgstr "" #: src/main/extractor_metatypes.c:164 msgid "format" msgstr "format" #: src/main/extractor_metatypes.c:165 msgid "name of the document format" msgstr "" #: src/main/extractor_metatypes.c:167 msgid "format version" msgstr "version du format" #: src/main/extractor_metatypes.c:168 msgid "version of the document format" msgstr "" #: src/main/extractor_metatypes.c:169 msgid "created by software" msgstr "" #: src/main/extractor_metatypes.c:170 msgid "name of the software that created the document" msgstr "" #: src/main/extractor_metatypes.c:171 #, fuzzy msgid "unknown date" msgstr "inconnu" #: src/main/extractor_metatypes.c:172 msgid "" "ambiguous date (could specify creation time, modification time or access " "time)" msgstr "" #: src/main/extractor_metatypes.c:173 msgid "creation date" msgstr "date de création" #: src/main/extractor_metatypes.c:174 msgid "date the document was created" msgstr "" #: src/main/extractor_metatypes.c:175 msgid "modification date" msgstr "date de modification" #: src/main/extractor_metatypes.c:176 msgid "date the document was modified" msgstr "" #: src/main/extractor_metatypes.c:178 msgid "last printed" msgstr "dernière impression par" #: src/main/extractor_metatypes.c:179 msgid "date the document was last printed" msgstr "" #: src/main/extractor_metatypes.c:180 msgid "last saved by" msgstr "dernière sauvegarde par" #: src/main/extractor_metatypes.c:181 msgid "name of the user who saved the document last" msgstr "" #: src/main/extractor_metatypes.c:182 msgid "total editing time" msgstr "temps total d'édition" #: src/main/extractor_metatypes.c:183 msgid "time spent editing the document" msgstr "" #: src/main/extractor_metatypes.c:184 msgid "editing cycles" msgstr "cycles d'édition" #: src/main/extractor_metatypes.c:185 #, fuzzy msgid "number of editing cycles" msgstr "cycles d'édition" #: src/main/extractor_metatypes.c:186 msgid "modified by software" msgstr "" #: src/main/extractor_metatypes.c:187 msgid "name of software making modifications" msgstr "" #: src/main/extractor_metatypes.c:189 msgid "revision history" msgstr "historique de révision" #: src/main/extractor_metatypes.c:190 msgid "information about the revision history" msgstr "" #: src/main/extractor_metatypes.c:191 #, fuzzy msgid "embedded file size" msgstr "taille du fichier" #: src/main/extractor_metatypes.c:192 msgid "size of the contents of the container as embedded in the file" msgstr "" #: src/main/extractor_metatypes.c:193 #, fuzzy msgid "file type" msgstr "type mime" #: src/main/extractor_metatypes.c:194 msgid "standard Macintosh Finder file type information" msgstr "" #: src/main/extractor_metatypes.c:196 msgid "standard Macintosh Finder file creator information" msgstr "" #: src/main/extractor_metatypes.c:197 #, fuzzy msgid "package name" msgstr "conditionneur" #: src/main/extractor_metatypes.c:198 msgid "unique identifier for the package" msgstr "" #: src/main/extractor_metatypes.c:200 #, fuzzy msgid "package version" msgstr "conditionneur" #: src/main/extractor_metatypes.c:201 msgid "version of the software and its package" msgstr "" #: src/main/extractor_metatypes.c:202 #, fuzzy msgid "section" msgstr "description" #: src/main/extractor_metatypes.c:203 msgid "category the software package belongs to" msgstr "" #: src/main/extractor_metatypes.c:204 #, fuzzy msgid "upload priority" msgstr "priorité" #: src/main/extractor_metatypes.c:205 msgid "priority for promoting the release to production" msgstr "" #: src/main/extractor_metatypes.c:206 #, fuzzy msgid "dependencies" msgstr "dépendance" #: src/main/extractor_metatypes.c:207 msgid "packages this package depends upon" msgstr "" #: src/main/extractor_metatypes.c:208 #, fuzzy msgid "conflicting packages" msgstr "conflits" #: src/main/extractor_metatypes.c:209 msgid "packages that cannot be installed with this package" msgstr "" #: src/main/extractor_metatypes.c:211 #, fuzzy msgid "replaced packages" msgstr "remplace" #: src/main/extractor_metatypes.c:212 msgid "packages made obsolete by this package" msgstr "" #: src/main/extractor_metatypes.c:213 msgid "provides" msgstr "" #: src/main/extractor_metatypes.c:214 msgid "functionality provided by this package" msgstr "" #: src/main/extractor_metatypes.c:215 #, fuzzy msgid "recommendations" msgstr "commentaire" #: src/main/extractor_metatypes.c:216 msgid "packages recommended for installation in conjunction with this package" msgstr "" #: src/main/extractor_metatypes.c:217 msgid "suggestions" msgstr "" #: src/main/extractor_metatypes.c:218 msgid "packages suggested for installation in conjunction with this package" msgstr "" #: src/main/extractor_metatypes.c:219 msgid "maintainer" msgstr "" #: src/main/extractor_metatypes.c:220 msgid "name of the maintainer" msgstr "" #: src/main/extractor_metatypes.c:222 #, fuzzy msgid "installed size" msgstr "taille du fichier" #: src/main/extractor_metatypes.c:223 msgid "space consumption after installation" msgstr "" #: src/main/extractor_metatypes.c:224 src/main/extractor_metatypes.c:304 msgid "source" msgstr "source" #: src/main/extractor_metatypes.c:225 msgid "original source code" msgstr "" #: src/main/extractor_metatypes.c:226 msgid "is essential" msgstr "" #: src/main/extractor_metatypes.c:227 msgid "package is marked as essential" msgstr "" #: src/main/extractor_metatypes.c:228 msgid "target architecture" msgstr "" #: src/main/extractor_metatypes.c:229 msgid "hardware architecture the contents can be used for" msgstr "" #: src/main/extractor_metatypes.c:230 #, fuzzy msgid "pre-dependency" msgstr "dépendance" #: src/main/extractor_metatypes.c:231 msgid "dependency that must be satisfied before installation" msgstr "" #: src/main/extractor_metatypes.c:233 msgid "license" msgstr "licence" #: src/main/extractor_metatypes.c:234 msgid "applicable copyright license" msgstr "" #: src/main/extractor_metatypes.c:235 msgid "distribution" msgstr "distribution" #: src/main/extractor_metatypes.c:236 msgid "distribution the package is a part of" msgstr "" #: src/main/extractor_metatypes.c:237 #, fuzzy msgid "build host" msgstr "construit sur" #: src/main/extractor_metatypes.c:238 msgid "machine the package was build on" msgstr "" #: src/main/extractor_metatypes.c:239 msgid "vendor" msgstr "vendeur" #: src/main/extractor_metatypes.c:240 msgid "name of the software vendor" msgstr "" #: src/main/extractor_metatypes.c:241 #, fuzzy msgid "target operating system" msgstr "système d'exploitation" #: src/main/extractor_metatypes.c:242 msgid "operating system for which this package was made" msgstr "" #: src/main/extractor_metatypes.c:244 #, fuzzy msgid "software version" msgstr "logiciel" #: src/main/extractor_metatypes.c:245 msgid "version of the software contained in the file" msgstr "" #: src/main/extractor_metatypes.c:246 msgid "target platform" msgstr "" #: src/main/extractor_metatypes.c:247 msgid "" "name of the architecture, operating system and distribution this package is " "for" msgstr "" #: src/main/extractor_metatypes.c:248 #, fuzzy msgid "resource type" msgstr "type de ressource" #: src/main/extractor_metatypes.c:249 msgid "" "categorization of the nature of the resource that is more specific than the " "file format" msgstr "" #: src/main/extractor_metatypes.c:250 msgid "library search path" msgstr "" #: src/main/extractor_metatypes.c:251 msgid "" "path in the file system to be considered when looking for required libraries" msgstr "" #: src/main/extractor_metatypes.c:252 #, fuzzy msgid "library dependency" msgstr "dépendance" #: src/main/extractor_metatypes.c:253 msgid "name of a library that this file depends on" msgstr "" #: src/main/extractor_metatypes.c:255 src/main/extractor_metatypes.c:256 msgid "camera make" msgstr "fabricant de camera" #: src/main/extractor_metatypes.c:257 src/main/extractor_metatypes.c:258 msgid "camera model" msgstr "modèle de camera" #: src/main/extractor_metatypes.c:259 src/main/extractor_metatypes.c:260 msgid "exposure" msgstr "exposition" #: src/main/extractor_metatypes.c:261 src/main/extractor_metatypes.c:262 msgid "aperture" msgstr "ouverture" #: src/main/extractor_metatypes.c:263 src/main/extractor_metatypes.c:264 msgid "exposure bias" msgstr "" #: src/main/extractor_metatypes.c:266 src/main/extractor_metatypes.c:267 msgid "flash" msgstr "flash" #: src/main/extractor_metatypes.c:268 src/main/extractor_metatypes.c:269 msgid "flash bias" msgstr "" #: src/main/extractor_metatypes.c:270 src/main/extractor_metatypes.c:271 msgid "focal length" msgstr "longueur de focale" #: src/main/extractor_metatypes.c:272 src/main/extractor_metatypes.c:273 #, fuzzy msgid "focal length 35mm" msgstr "longueur de focale" #: src/main/extractor_metatypes.c:274 src/main/extractor_metatypes.c:275 msgid "iso speed" msgstr "vitesse iso" #: src/main/extractor_metatypes.c:277 src/main/extractor_metatypes.c:278 msgid "exposure mode" msgstr "mode d'exposition" #: src/main/extractor_metatypes.c:279 src/main/extractor_metatypes.c:280 msgid "metering mode" msgstr "mode métrique" #: src/main/extractor_metatypes.c:281 src/main/extractor_metatypes.c:282 msgid "macro mode" msgstr "mode macro" #: src/main/extractor_metatypes.c:283 src/main/extractor_metatypes.c:284 msgid "image quality" msgstr "qualité d'image" #: src/main/extractor_metatypes.c:285 src/main/extractor_metatypes.c:286 msgid "white balance" msgstr "balance des blancs" #: src/main/extractor_metatypes.c:288 src/main/extractor_metatypes.c:289 msgid "orientation" msgstr "orientation" #: src/main/extractor_metatypes.c:290 src/main/extractor_metatypes.c:291 msgid "magnification" msgstr "agrandissement" #: src/main/extractor_metatypes.c:292 #, fuzzy msgid "image dimensions" msgstr "orientation de la page" #: src/main/extractor_metatypes.c:293 msgid "size of the image in pixels (width times height)" msgstr "" #: src/main/extractor_metatypes.c:294 src/main/extractor_metatypes.c:295 msgid "produced by software" msgstr "" #: src/main/extractor_metatypes.c:299 #, fuzzy msgid "thumbnail" msgstr "vignettes" #: src/main/extractor_metatypes.c:300 msgid "smaller version of the image for previewing" msgstr "" #: src/main/extractor_metatypes.c:302 #, fuzzy msgid "image resolution" msgstr "résolution" #: src/main/extractor_metatypes.c:303 #, fuzzy msgid "resolution in dots per inch" msgstr "%ux%u points par pouce" #: src/main/extractor_metatypes.c:305 msgid "Originating entity" msgstr "" #: src/main/extractor_metatypes.c:306 msgid "character set" msgstr "jeu de caractères" #: src/main/extractor_metatypes.c:307 #, fuzzy msgid "character encoding used" msgstr "nombre de caractères" #: src/main/extractor_metatypes.c:308 msgid "line count" msgstr "nombre de lignes" #: src/main/extractor_metatypes.c:309 msgid "number of lines" msgstr "" #: src/main/extractor_metatypes.c:310 msgid "paragraph count" msgstr "nombre de paragraphes" #: src/main/extractor_metatypes.c:311 msgid "number of paragraphs" msgstr "" #: src/main/extractor_metatypes.c:313 msgid "word count" msgstr "nombre de mots" #: src/main/extractor_metatypes.c:314 msgid "number of words" msgstr "" #: src/main/extractor_metatypes.c:315 msgid "character count" msgstr "nombre de caractères" #: src/main/extractor_metatypes.c:316 #, fuzzy msgid "number of characters" msgstr "jeu de caractères" #: src/main/extractor_metatypes.c:317 src/main/extractor_metatypes.c:318 msgid "page orientation" msgstr "orientation de la page" #: src/main/extractor_metatypes.c:319 src/main/extractor_metatypes.c:320 msgid "paper size" msgstr "taille du papier" #: src/main/extractor_metatypes.c:321 msgid "template" msgstr "" #: src/main/extractor_metatypes.c:322 msgid "template the document uses or is based on" msgstr "" #: src/main/extractor_metatypes.c:324 src/main/extractor_metatypes.c:325 msgid "company" msgstr "société" #: src/main/extractor_metatypes.c:326 src/main/extractor_metatypes.c:327 msgid "manager" msgstr "directeur" #: src/main/extractor_metatypes.c:328 src/main/extractor_metatypes.c:329 #, fuzzy msgid "revision number" msgstr "affiche le numéro de version" #: src/main/extractor_metatypes.c:330 msgid "duration" msgstr "durée" #: src/main/extractor_metatypes.c:331 msgid "play time for the medium" msgstr "" #: src/main/extractor_metatypes.c:332 msgid "album" msgstr "album" #: src/main/extractor_metatypes.c:333 msgid "name of the album" msgstr "" #: src/main/extractor_metatypes.c:335 msgid "artist" msgstr "artiste" #: src/main/extractor_metatypes.c:336 msgid "name of the artist or band" msgstr "" #: src/main/extractor_metatypes.c:337 src/main/extractor_metatypes.c:338 msgid "genre" msgstr "genre" #: src/main/extractor_metatypes.c:339 msgid "track number" msgstr "numéro de piste" #: src/main/extractor_metatypes.c:340 msgid "original number of the track on the distribution medium" msgstr "" #: src/main/extractor_metatypes.c:341 #, fuzzy msgid "disk number" msgstr "numéro de disque" #: src/main/extractor_metatypes.c:342 msgid "number of the disk in a multi-disk (or volume) distribution" msgstr "" #: src/main/extractor_metatypes.c:343 msgid "performer" msgstr "" #: src/main/extractor_metatypes.c:344 msgid "" "The artist(s) who performed the work (conductor, orchestra, soloists, actor, " "etc.)" msgstr "" #: src/main/extractor_metatypes.c:346 msgid "contact" msgstr "contact" #: src/main/extractor_metatypes.c:347 msgid "Contact information for the creator or distributor" msgstr "" #: src/main/extractor_metatypes.c:348 #, fuzzy msgid "song version" msgstr "version" #: src/main/extractor_metatypes.c:349 msgid "name of the version of the song (i.e. remix information)" msgstr "" #: src/main/extractor_metatypes.c:350 #, fuzzy msgid "picture" msgstr "ouverture" #: src/main/extractor_metatypes.c:351 msgid "associated misc. picture" msgstr "" #: src/main/extractor_metatypes.c:352 msgid "cover picture" msgstr "" #: src/main/extractor_metatypes.c:353 msgid "picture of the cover of the distribution medium" msgstr "" #: src/main/extractor_metatypes.c:354 #, fuzzy msgid "contributor picture" msgstr "contributeur" #: src/main/extractor_metatypes.c:355 msgid "picture of one of the contributors" msgstr "" #: src/main/extractor_metatypes.c:357 msgid "event picture" msgstr "" #: src/main/extractor_metatypes.c:358 msgid "picture of an associated event" msgstr "" #: src/main/extractor_metatypes.c:359 msgid "logo" msgstr "" #: src/main/extractor_metatypes.c:360 msgid "logo of an associated organization" msgstr "" #: src/main/extractor_metatypes.c:361 msgid "broadcast television system" msgstr "" #: src/main/extractor_metatypes.c:362 msgid "name of the television system for which the data is coded" msgstr "" #: src/main/extractor_metatypes.c:363 #, fuzzy msgid "source device" msgstr "source" #: src/main/extractor_metatypes.c:364 msgid "device used to create the object" msgstr "" #: src/main/extractor_metatypes.c:365 msgid "disclaimer" msgstr "avertissement" #: src/main/extractor_metatypes.c:366 #, fuzzy msgid "legal disclaimer" msgstr "avertissement" #: src/main/extractor_metatypes.c:368 msgid "warning" msgstr "alerte" #: src/main/extractor_metatypes.c:369 msgid "warning about the nature of the content" msgstr "" #: src/main/extractor_metatypes.c:370 msgid "page order" msgstr "ordre des pages" #: src/main/extractor_metatypes.c:371 msgid "order of the pages" msgstr "" #: src/main/extractor_metatypes.c:372 msgid "writer" msgstr "" #: src/main/extractor_metatypes.c:373 #, fuzzy msgid "contributing writer" msgstr "contributeur" #: src/main/extractor_metatypes.c:374 src/main/extractor_metatypes.c:375 msgid "product version" msgstr "version de produit" #: src/main/extractor_metatypes.c:376 msgid "contributor" msgstr "contributeur" #: src/main/extractor_metatypes.c:377 #, fuzzy msgid "name of a contributor" msgstr "contributeur" #: src/main/extractor_metatypes.c:379 #, fuzzy msgid "movie director" msgstr "directeur" #: src/main/extractor_metatypes.c:380 msgid "name of the director" msgstr "" #: src/main/extractor_metatypes.c:381 msgid "network" msgstr "" #: src/main/extractor_metatypes.c:382 msgid "name of the broadcasting network or station" msgstr "" #: src/main/extractor_metatypes.c:383 msgid "show" msgstr "" #: src/main/extractor_metatypes.c:384 msgid "name of the show" msgstr "" #: src/main/extractor_metatypes.c:385 #, fuzzy msgid "chapter name" msgstr "chapitre" #: src/main/extractor_metatypes.c:386 msgid "name of the chapter" msgstr "" #: src/main/extractor_metatypes.c:387 msgid "song count" msgstr "nombre de chansons" #: src/main/extractor_metatypes.c:388 msgid "number of songs" msgstr "" #: src/main/extractor_metatypes.c:390 msgid "starting song" msgstr "" #: src/main/extractor_metatypes.c:391 msgid "number of the first song to play" msgstr "" #: src/main/extractor_metatypes.c:392 msgid "play counter" msgstr "" #: src/main/extractor_metatypes.c:393 msgid "number of times the media has been played" msgstr "" #: src/main/extractor_metatypes.c:394 msgid "conductor" msgstr "conducteur" #: src/main/extractor_metatypes.c:395 #, fuzzy msgid "name of the conductor" msgstr "conducteur" #: src/main/extractor_metatypes.c:396 #, fuzzy msgid "interpretation" msgstr "interprète" #: src/main/extractor_metatypes.c:397 msgid "" "information about the people behind interpretations of an existing piece" msgstr "" #: src/main/extractor_metatypes.c:398 msgid "composer" msgstr "" #: src/main/extractor_metatypes.c:399 msgid "name of the composer" msgstr "" #: src/main/extractor_metatypes.c:401 src/main/extractor_metatypes.c:402 msgid "beats per minute" msgstr "" #: src/main/extractor_metatypes.c:403 msgid "encoded by" msgstr "encodé par" #: src/main/extractor_metatypes.c:404 msgid "name of person or organization that encoded the file" msgstr "" #: src/main/extractor_metatypes.c:405 msgid "original title" msgstr "" #: src/main/extractor_metatypes.c:406 msgid "title of the original work" msgstr "" #: src/main/extractor_metatypes.c:407 msgid "original artist" msgstr "" #: src/main/extractor_metatypes.c:408 msgid "name of the original artist" msgstr "" #: src/main/extractor_metatypes.c:409 msgid "original writer" msgstr "" #: src/main/extractor_metatypes.c:410 msgid "name of the original lyricist or writer" msgstr "" #: src/main/extractor_metatypes.c:412 msgid "original release year" msgstr "" #: src/main/extractor_metatypes.c:413 msgid "year of the original release" msgstr "" #: src/main/extractor_metatypes.c:414 msgid "original performer" msgstr "" #: src/main/extractor_metatypes.c:415 msgid "name of the original performer" msgstr "" #: src/main/extractor_metatypes.c:416 msgid "lyrics" msgstr "paroles" #: src/main/extractor_metatypes.c:417 msgid "lyrics of the song or text description of vocal activities" msgstr "" #: src/main/extractor_metatypes.c:418 #, fuzzy msgid "popularity" msgstr "priorité" #: src/main/extractor_metatypes.c:419 msgid "information about the file's popularity" msgstr "" #: src/main/extractor_metatypes.c:420 #, fuzzy msgid "licensee" msgstr "licence" #: src/main/extractor_metatypes.c:421 msgid "name of the owner or licensee of the file" msgstr "" #: src/main/extractor_metatypes.c:423 msgid "musician credit list" msgstr "" #: src/main/extractor_metatypes.c:424 msgid "names of contributing musicians" msgstr "" #: src/main/extractor_metatypes.c:425 msgid "mood" msgstr "" #: src/main/extractor_metatypes.c:426 msgid "keywords reflecting the mood of the piece" msgstr "" #: src/main/extractor_metatypes.c:427 #, fuzzy msgid "subtitle" msgstr "titre" #: src/main/extractor_metatypes.c:428 msgid "subtitle of this part" msgstr "" #: src/main/extractor_metatypes.c:429 #, fuzzy msgid "display type" msgstr "type de média" #: src/main/extractor_metatypes.c:430 msgid "what rendering method should be used to display this item" msgstr "" #: src/main/extractor_metatypes.c:431 #, fuzzy msgid "full data" msgstr "nom complet" #: src/main/extractor_metatypes.c:432 msgid "" "entry that contains the full, original binary data (not really meta data)" msgstr "" #: src/main/extractor_metatypes.c:434 #, fuzzy msgid "rating" msgstr "durée" #: src/main/extractor_metatypes.c:435 msgid "rating of the content" msgstr "" #: src/main/extractor_metatypes.c:436 src/main/extractor_metatypes.c:437 msgid "organization" msgstr "organisation" #: src/main/extractor_metatypes.c:438 src/main/extractor_metatypes.c:439 msgid "ripper" msgstr "" #: src/main/extractor_metatypes.c:440 src/main/extractor_metatypes.c:441 msgid "producer" msgstr "producteur" #: src/main/extractor_metatypes.c:442 msgid "group" msgstr "groupe" #: src/main/extractor_metatypes.c:443 msgid "name of the group or band" msgstr "" #: src/main/extractor_metatypes.c:445 #, fuzzy msgid "original filename" msgstr "nom de fichier" #: src/main/extractor_metatypes.c:446 msgid "name of the original file (reserved for GNUnet)" msgstr "" #: src/main/extractor_metatypes.c:447 #, fuzzy msgid "disc count" msgstr "nombre de mots" #: src/main/extractor_metatypes.c:448 msgid "count of discs inside collection this disc belongs to" msgstr "" #: src/main/extractor_metatypes.c:449 msgid "codec" msgstr "" #: src/main/extractor_metatypes.c:450 msgid "codec the data is stored in" msgstr "" #: src/main/extractor_metatypes.c:451 msgid "video codec" msgstr "" #: src/main/extractor_metatypes.c:452 msgid "codec the video data is stored in" msgstr "" #: src/main/extractor_metatypes.c:453 msgid "audio codec" msgstr "" #: src/main/extractor_metatypes.c:454 msgid "codec the audio data is stored in" msgstr "" #: src/main/extractor_metatypes.c:456 msgid "subtitle codec" msgstr "" #: src/main/extractor_metatypes.c:457 msgid "codec/format the subtitle data is stored in" msgstr "" #: src/main/extractor_metatypes.c:458 msgid "container format" msgstr "" #: src/main/extractor_metatypes.c:459 msgid "container format the data is stored in" msgstr "" #: src/main/extractor_metatypes.c:460 msgid "bitrate" msgstr "" #: src/main/extractor_metatypes.c:461 msgid "exact or average bitrate in bits/s" msgstr "" #: src/main/extractor_metatypes.c:462 msgid "nominal bitrate" msgstr "" #: src/main/extractor_metatypes.c:463 msgid "" "nominal bitrate in bits/s. The actual bitrate might be different from this " "target bitrate." msgstr "" #: src/main/extractor_metatypes.c:464 msgid "minimum bitrate" msgstr "" #: src/main/extractor_metatypes.c:465 msgid "minimum bitrate in bits/s" msgstr "" #: src/main/extractor_metatypes.c:467 msgid "maximum bitrate" msgstr "" #: src/main/extractor_metatypes.c:468 msgid "maximum bitrate in bits/s" msgstr "" #: src/main/extractor_metatypes.c:469 #, fuzzy msgid "serial" msgstr "Industrial" #: src/main/extractor_metatypes.c:470 msgid "serial number of track" msgstr "" #: src/main/extractor_metatypes.c:471 #, fuzzy msgid "encoder" msgstr "encodé par" #: src/main/extractor_metatypes.c:472 msgid "encoder used to encode this stream" msgstr "" #: src/main/extractor_metatypes.c:473 #, fuzzy msgid "encoder version" msgstr "version du format" #: src/main/extractor_metatypes.c:474 msgid "version of the encoder used to encode this stream" msgstr "" #: src/main/extractor_metatypes.c:475 #, fuzzy msgid "track gain" msgstr "numéro de piste" #: src/main/extractor_metatypes.c:476 msgid "track gain in db" msgstr "" #: src/main/extractor_metatypes.c:478 #, fuzzy msgid "track peak" msgstr "numéro de piste" #: src/main/extractor_metatypes.c:479 msgid "peak of the track" msgstr "" #: src/main/extractor_metatypes.c:480 #, fuzzy msgid "album gain" msgstr "album" #: src/main/extractor_metatypes.c:481 msgid "album gain in db" msgstr "" #: src/main/extractor_metatypes.c:482 #, fuzzy msgid "album peak" msgstr "album" #: src/main/extractor_metatypes.c:483 msgid "peak of the album" msgstr "" #: src/main/extractor_metatypes.c:484 msgid "reference level" msgstr "" #: src/main/extractor_metatypes.c:485 msgid "reference level of track and album gain values" msgstr "" #: src/main/extractor_metatypes.c:486 #, fuzzy msgid "location name" msgstr "emplacement" #: src/main/extractor_metatypes.c:487 msgid "" "human readable descriptive location of where the media has been recorded or " "produced" msgstr "" #: src/main/extractor_metatypes.c:489 #, fuzzy msgid "location elevation" msgstr "emplacement" #: src/main/extractor_metatypes.c:490 msgid "" "geo elevation of where the media has been recorded or produced in meters " "according to WGS84 (zero is average sea level)" msgstr "" #: src/main/extractor_metatypes.c:491 msgid "location horizontal error" msgstr "" #: src/main/extractor_metatypes.c:492 msgid "represents the expected error on the horizontal positioning in meters" msgstr "" #: src/main/extractor_metatypes.c:493 msgid "location movement speed" msgstr "" #: src/main/extractor_metatypes.c:494 msgid "" "speed of the capturing device when performing the capture. Represented in m/s" msgstr "" #: src/main/extractor_metatypes.c:495 msgid "location movement direction" msgstr "" #: src/main/extractor_metatypes.c:496 msgid "" "indicates the movement direction of the device performing the capture of a " "media. It is represented as degrees in floating point representation, 0 " "means the geographic north, and increases clockwise" msgstr "" #: src/main/extractor_metatypes.c:497 msgid "location capture direction" msgstr "" #: src/main/extractor_metatypes.c:498 msgid "" "indicates the direction the device is pointing to when capturing a media. It " "is represented as degrees in floating point representation, 0 means the " "geographic north, and increases clockwise" msgstr "" #: src/main/extractor_metatypes.c:500 #, fuzzy msgid "show episode number" msgstr "numéro de disque" #: src/main/extractor_metatypes.c:501 msgid "number of the episode within a season/show" msgstr "" #: src/main/extractor_metatypes.c:502 #, fuzzy msgid "show season number" msgstr "affiche le numéro de version" #: src/main/extractor_metatypes.c:503 msgid "number of the season of a show/series" msgstr "" #: src/main/extractor_metatypes.c:504 #, fuzzy msgid "grouping" msgstr "groupe" #: src/main/extractor_metatypes.c:505 msgid "" "groups together media that are related and spans multiple tracks. An example " "are multiple pieces of a concerto" msgstr "" #: src/main/extractor_metatypes.c:506 msgid "device manufacturer" msgstr "" #: src/main/extractor_metatypes.c:507 msgid "manufacturer of the device used to create the media" msgstr "" #: src/main/extractor_metatypes.c:508 #, fuzzy msgid "device model" msgstr "modèle de camera" #: src/main/extractor_metatypes.c:509 msgid "model of the device used to create the media" msgstr "" #: src/main/extractor_metatypes.c:511 #, fuzzy msgid "audio language" msgstr "langue" #: src/main/extractor_metatypes.c:512 msgid "language of the audio track" msgstr "" #: src/main/extractor_metatypes.c:513 msgid "channels" msgstr "" #: src/main/extractor_metatypes.c:514 msgid "number of audio channels" msgstr "" #: src/main/extractor_metatypes.c:515 msgid "sample rate" msgstr "" #: src/main/extractor_metatypes.c:516 msgid "sample rate of the audio track" msgstr "" #: src/main/extractor_metatypes.c:517 msgid "audio depth" msgstr "" #: src/main/extractor_metatypes.c:518 msgid "number of bits per audio sample" msgstr "" #: src/main/extractor_metatypes.c:519 msgid "audio bitrate" msgstr "" #: src/main/extractor_metatypes.c:520 msgid "bitrate of the audio track" msgstr "" #: src/main/extractor_metatypes.c:522 src/main/extractor_metatypes.c:523 msgid "maximum audio bitrate" msgstr "" #: src/main/extractor_metatypes.c:524 msgid "video dimensions" msgstr "" #: src/main/extractor_metatypes.c:525 msgid "width and height of the video track (WxH)" msgstr "" #: src/main/extractor_metatypes.c:526 msgid "video depth" msgstr "" #: src/main/extractor_metatypes.c:527 msgid "numbers of bits per pixel" msgstr "" #: src/main/extractor_metatypes.c:528 msgid "frame rate" msgstr "" #: src/main/extractor_metatypes.c:529 msgid "number of frames per second (as D/N or floating point)" msgstr "" #: src/main/extractor_metatypes.c:530 msgid "pixel aspect ratio" msgstr "" #: src/main/extractor_metatypes.c:531 msgid "pixel aspect ratio (as D/N)" msgstr "" #: src/main/extractor_metatypes.c:533 src/main/extractor_metatypes.c:534 msgid "video bitrate" msgstr "" #: src/main/extractor_metatypes.c:535 src/main/extractor_metatypes.c:536 msgid "maximum video bitrate" msgstr "" #: src/main/extractor_metatypes.c:537 #, fuzzy msgid "subtitle language" msgstr "langue" #: src/main/extractor_metatypes.c:538 msgid "language of the subtitle track" msgstr "" #: src/main/extractor_metatypes.c:539 #, fuzzy msgid "video language" msgstr "langue" #: src/main/extractor_metatypes.c:540 msgid "language of the video track" msgstr "" #: src/main/extractor_metatypes.c:541 msgid "table of contents" msgstr "" #: src/main/extractor_metatypes.c:542 msgid "chapters, contents or bookmarks (in xml format)" msgstr "" #: src/main/extractor_metatypes.c:544 #, fuzzy msgid "video duration" msgstr "durée" #: src/main/extractor_metatypes.c:545 msgid "duration of a video stream" msgstr "" #: src/main/extractor_metatypes.c:546 #, fuzzy msgid "audio duration" msgstr "durée" #: src/main/extractor_metatypes.c:547 msgid "duration of an audio stream" msgstr "" #: src/main/extractor_metatypes.c:548 #, fuzzy msgid "subtitle duration" msgstr "durée" #: src/main/extractor_metatypes.c:549 msgid "duration of a subtitle stream" msgstr "" #: src/main/extractor_metatypes.c:551 msgid "audio preview" msgstr "" #: src/main/extractor_metatypes.c:552 msgid "a preview of the file audio stream" msgstr "" #: src/main/extractor_metatypes.c:554 src/main/extractor_metatypes.c:555 msgid "last" msgstr "" #: src/main/getopt.c:684 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: l'option `%s' est ambiguë\n" #: src/main/getopt.c:709 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: l'option `--%s' ne prend pas d'argument\n" #: src/main/getopt.c:715 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: l'option `%c%s' ne prend pas d'argument\n" #: src/main/getopt.c:732 src/main/getopt.c:903 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: l'option `%s' requiert un argument\n" #: src/main/getopt.c:761 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: option non reconnue `--%s'\n" #: src/main/getopt.c:765 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: option non reconnue `%c%s'\n" #: src/main/getopt.c:791 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: option illégale -- %c\n" #: src/main/getopt.c:793 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: option invalide -- %c\n" #: src/main/getopt.c:822 src/main/getopt.c:952 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: l'option requiert un argument -- %c\n" #: src/main/getopt.c:870 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: l'option `-W %s' est ambiguë\n" #: src/main/getopt.c:888 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: l'option `-W %s' ne prend pas d'argument\n" #: src/plugins/flac_extractor.c:322 #, c-format msgid "%u Hz, %u channels" msgstr "" #: src/plugins/man_extractor.c:215 msgid "Commands" msgstr "Commandes" #: src/plugins/man_extractor.c:219 msgid "System calls" msgstr "Appels système" #: src/plugins/man_extractor.c:223 msgid "Library calls" msgstr "Appels de librairie" #: src/plugins/man_extractor.c:227 msgid "Special files" msgstr "Fichiers spéciaux" #: src/plugins/man_extractor.c:231 msgid "File formats and conventions" msgstr "Formats et préférences de fichier" #: src/plugins/man_extractor.c:235 msgid "Games" msgstr "Jeux" #: src/plugins/man_extractor.c:239 msgid "Conventions and miscellaneous" msgstr "Préférences - Divers" #: src/plugins/man_extractor.c:243 msgid "System management commands" msgstr "Commandes de gestion système" #: src/plugins/man_extractor.c:247 msgid "Kernel routines" msgstr "Fonctions du Noyau" #: src/plugins/ole2_extractor.c:387 msgid "No Proofing" msgstr "" #: src/plugins/ole2_extractor.c:395 msgid "Traditional Chinese" msgstr "Traditionnel Chinois" #: src/plugins/ole2_extractor.c:397 msgid "Simplified Chinese" msgstr "Chinois simplifié" #: src/plugins/ole2_extractor.c:405 msgid "Swiss German" msgstr "Allemand (Suisse)" #: src/plugins/ole2_extractor.c:409 msgid "U.S. English" msgstr "Anglais (US)" #: src/plugins/ole2_extractor.c:411 msgid "U.K. English" msgstr "Anglais" #: src/plugins/ole2_extractor.c:413 msgid "Australian English" msgstr "Anglais (Australie)" #: src/plugins/ole2_extractor.c:415 msgid "Castilian Spanish" msgstr "Espagnol (castillan)" #: src/plugins/ole2_extractor.c:417 msgid "Mexican Spanish" msgstr "Espagnol (mexicain)" #: src/plugins/ole2_extractor.c:423 msgid "Belgian French" msgstr "Français (Belgique)" #: src/plugins/ole2_extractor.c:425 msgid "Canadian French" msgstr "Français (Canada)" #: src/plugins/ole2_extractor.c:427 msgid "Swiss French" msgstr "Français (Suisse)" #: src/plugins/ole2_extractor.c:437 msgid "Swiss Italian" msgstr "Italien (Suisse)" #: src/plugins/ole2_extractor.c:445 msgid "Belgian Dutch" msgstr "Allemand (Belgique)" #: src/plugins/ole2_extractor.c:447 msgid "Norwegian Bokmal" msgstr "Bokmal (Norvège)" #: src/plugins/ole2_extractor.c:457 msgid "Rhaeto-Romanic" msgstr "Rhaeto-Romanic" #: src/plugins/ole2_extractor.c:463 msgid "Croato-Serbian (Latin)" msgstr "Serbo-Croate (latin)" #: src/plugins/ole2_extractor.c:465 msgid "Serbo-Croatian (Cyrillic)" msgstr "Serbo-Croate (cyrillique)" #: src/plugins/ole2_extractor.c:493 msgid "Farsi" msgstr "Farsi" #: src/plugins/ole2_extractor.c:578 #, fuzzy, c-format msgid "Revision #%u: Author `%s' worked on `%s'" msgstr "Révision #%u: Auteur '%s' sur '%s'" #: src/plugins/riff_extractor.c:145 #, c-format msgid "codec: %s, %u fps, %u ms" msgstr "codec: %s, %u fps, %u ms" #: src/plugins/wav_extractor.c:120 msgid "mono" msgstr "mono" #: src/plugins/wav_extractor.c:120 msgid "stereo" msgstr "stereo" #~ msgid "do not remove any duplicates" #~ msgstr "ne pas enlever les doublons" #~ msgid "" #~ "use the generic plaintext extractor for the language with the 2-letter " #~ "language code LANG" #~ msgstr "" #~ "utiliser l'extracteur de texte générique avec le code de langue LANG " #~ "(deux lettres)" #~ msgid "remove duplicates only if types match" #~ msgstr "enlever les doublons seulement si les types correspondent" #~ msgid "use the filename as a keyword (loads filename-extractor plugin)" #~ msgstr "" #~ "utiliser le nom de fichier comme un mot-clé (charge le module \"filename-" #~ "extractor\")" #~ msgid "compute hash using the given ALGORITHM (currently sha1 or md5)" #~ msgstr "" #~ "calcule l'empreinte (hash) en utilisant l'ALGORITHME donné (pour " #~ "l'instant \"sha1\" ou \"md5\")" #~ msgid "remove duplicates even if keyword types do not match" #~ msgstr "" #~ "supprimer les doublons même si les types de mots-clés ne correspondent pas" #~ msgid "use keyword splitting (loads split-extractor plugin)" #~ msgstr "" #~ "utiliser la césure des mots-clés (charge le module \"split-extractor\")" #~ msgid "INVALID TYPE - %s\n" #~ msgstr "TYPE INCORRECT- %s\n" #~ msgid "date" #~ msgstr "date" #~ msgid "relation" #~ msgstr "relation" #~ msgid "coverage" #~ msgstr "couverture" #~ msgid "translated" #~ msgstr "traduit" #~ msgid "used fonts" #~ msgstr "polices de caractères utilisées" #~ msgid "created for" #~ msgstr "crée pour" #~ msgid "release" #~ msgstr "version du produit" #~ msgid "size" #~ msgstr "taille" #~ msgid "category" #~ msgstr "Catégorie" #~ msgid "owner" #~ msgstr "propriétaire" #~ msgid "binary thumbnail data" #~ msgstr "données binaires de vignette" #~ msgid "focal length (35mm equivalent)" #~ msgstr "longueur de focale (équivalent 35mm)" #~ msgid "security" #~ msgstr "sécurité" #~ msgid "lower case conversion" #~ msgstr "conversion en minuscules" #~ msgid "generator" #~ msgstr "générateur" #~ msgid "scale" #~ msgstr "échelle" #~ msgid "year" #~ msgstr "année" #~ msgid "link" #~ msgstr "lien" #~ msgid "time" #~ msgstr "temps" #~ msgid "" #~ "Resolving symbol `%s' in library `%s' failed, so I tried `%s', but that " #~ "failed also. Errors are: `%s' and `%s'.\n" #~ msgstr "" #~ "Impossible de résoudre le symbole `%s' dans la librairie `%s'; essai avec " #~ "`%s', échec. Erreurs : `%s' et `%s'.\n" #~ msgid "Unloading plugin `%s' failed!\n" #~ msgstr "Le déchargement du module `%s' a échoué !\n" #~ msgid "GB" #~ msgstr "Go" #~ msgid "MB" #~ msgstr "Mo" #~ msgid "KB" #~ msgstr "Ko" #~ msgid "Bytes" #~ msgstr "Octets" #~ msgid "%ux%u dots per cm" #~ msgstr "%ux%u points par cm" #~ msgid "%ux%u dots per inch?" #~ msgstr "%ux%u points par pouce ?" #~ msgid "Blues" #~ msgstr "Blues" #~ msgid "Classic Rock" #~ msgstr "Rock classique" #~ msgid "Dance" #~ msgstr "Dance" #~ msgid "Disco" #~ msgstr "Disco" #~ msgid "Funk" #~ msgstr "Funk" #~ msgid "Grunge" #~ msgstr "Grunge" #~ msgid "Hip-Hop" #~ msgstr "Hip-Hop" #~ msgid "Jazz" #~ msgstr "Jazz" #~ msgid "Metal" #~ msgstr "Metal" #~ msgid "New Age" #~ msgstr "New Age" #~ msgid "Oldies" #~ msgstr "Oldies" #~ msgid "Other" #~ msgstr "Autre" #~ msgid "Pop" #~ msgstr "Pop" #~ msgid "R&B" #~ msgstr "R&B" #~ msgid "Rap" #~ msgstr "Rap" #~ msgid "Reggae" #~ msgstr "Reggae" #~ msgid "Rock" #~ msgstr "Rock" #~ msgid "Techno" #~ msgstr "Techno" #~ msgid "Alternative" #~ msgstr "Alternative" #~ msgid "Ska" #~ msgstr "Ska" #~ msgid "Death Metal" #~ msgstr "Death Metal" #~ msgid "Pranks" #~ msgstr "Pranks" #~ msgid "Vocal" #~ msgstr "Vocal" #~ msgid "Jazz+Funk" #~ msgstr "Jazz+Funk" #~ msgid "Fusion" #~ msgstr "Fusion" #~ msgid "Trance" #~ msgstr "Trance" #~ msgid "Classical" #~ msgstr "Classique" #~ msgid "Instrumental" #~ msgstr "Instrumental" #~ msgid "Acid" #~ msgstr "Acid" #~ msgid "House" #~ msgstr "House" #~ msgid "Gospel" #~ msgstr "Gospel" #~ msgid "Alt. Rock" #~ msgstr "Alt. Rock" #~ msgid "Soul" #~ msgstr "Soul" #~ msgid "Punk" #~ msgstr "Punk" #~ msgid "Instrumental Pop" #~ msgstr "Pop instrumentale" #~ msgid "Instrumental Rock" #~ msgstr "Rock instrumental" #~ msgid "Ethnic" #~ msgstr "Ethnique" #~ msgid "Gothic" #~ msgstr "Gothic" #~ msgid "Electronic" #~ msgstr "Electronique" #~ msgid "Pop-Folk" #~ msgstr "Pop-Folk" #~ msgid "Comedy" #~ msgstr "Comédie" #~ msgid "Gangsta Rap" #~ msgstr "Gangsta Rap" #~ msgid "Top 40" #~ msgstr "Top 40" #~ msgid "Pop/Funk" #~ msgstr "Pop/Funk" #~ msgid "Cabaret" #~ msgstr "Cabaret" #~ msgid "New Wave" #~ msgstr "New Wave" #~ msgid "Rave" #~ msgstr "Rave" #~ msgid "Acid Punk" #~ msgstr "Acid Punk" #~ msgid "Acid Jazz" #~ msgstr "Acid Jazz" #~ msgid "Polka" #~ msgstr "Polka" #~ msgid "Retro" #~ msgstr "Retro" #~ msgid "Musical" #~ msgstr "Musical" #~ msgid "Rock & Roll" #~ msgstr "Rock & Roll" #~ msgid "Hard Rock" #~ msgstr "Hard Rock" #~ msgid "Folk" #~ msgstr "Folk" #~ msgid "Folk/Rock" #~ msgstr "Folk/Rock" #~ msgid "National Folk" #~ msgstr "National Folk" #~ msgid "Bebob" #~ msgstr "Bebob" #~ msgid "Avantgarde" #~ msgstr "Avant-garde" #~ msgid "Gothic Rock" #~ msgstr "Gothic Rock" #~ msgid "Progressive Rock" #~ msgstr "Progressive Rock" #~ msgid "Psychedelic Rock" #~ msgstr "Psychedelic Rock" #~ msgid "Symphonic Rock" #~ msgstr "Symphonic Rock" #~ msgid "Slow Rock" #~ msgstr "Slow Rock" #~ msgid "Big Band" #~ msgstr "Big Band" #~ msgid "Chorus" #~ msgstr "Choeur" #~ msgid "Humour" #~ msgstr "Humour" #~ msgid "Speech" #~ msgstr "Parole" #~ msgid "Chanson" #~ msgstr "Chanson" #~ msgid "Opera" #~ msgstr "Opera" #~ msgid "Chamber Music" #~ msgstr "Musique de chambre" #~ msgid "Sonata" #~ msgstr "Sonate" #~ msgid "Symphony" #~ msgstr "Symphonie" #~ msgid "Booty Bass" #~ msgstr "Booty Bass" #~ msgid "Porn Groove" #~ msgstr "Porn Groove" #~ msgid "Satire" #~ msgstr "Satirique" #~ msgid "Slow Jam" #~ msgstr "Slow Jam" #~ msgid "Club" #~ msgstr "Club" #~ msgid "Tango" #~ msgstr "Tango" #~ msgid "Samba" #~ msgstr "Samba" #~ msgid "Folklore" #~ msgstr "Folklore" #~ msgid "Ballad" #~ msgstr "Ballade" #~ msgid "Rhythmic Soul" #~ msgstr "Rhythmic Soul" #~ msgid "Freestyle" #~ msgstr "Freestyle" #~ msgid "Duet" #~ msgstr "Duo" #~ msgid "Punk Rock" #~ msgstr "Punk Rock" #~ msgid "Drum Solo" #~ msgstr "Drum Solo" #~ msgid "A Cappella" #~ msgstr "A Cappella" #~ msgid "Goa" #~ msgstr "Goa" #~ msgid "BritPop" #~ msgstr "BritPop" #~ msgid "Negerpunk" #~ msgstr "Negerpunk" #~ msgid "Polsk Punk" #~ msgstr "Polsk Punk" #~ msgid "Beat" #~ msgstr "Beat" #~ msgid "Heavy Metal" #~ msgstr "Heavy Metal" #~ msgid "Black Metal" #~ msgstr "Black Metal" #~ msgid "Crossover" #~ msgstr "Crossover" #~ msgid "Salsa" #~ msgstr "Salsa" #~ msgid "Thrash Metal" #~ msgstr "Thrash Metal" #~ msgid "JPop" #~ msgstr "JPop" #~ msgid "Synthpop" #~ msgstr "Synthpop" #~ msgid "(variable bps)" #~ msgstr "(taux bps variable)" #~ msgid "" #~ "Please provide the name of the language you are building\n" #~ "a dictionary for. For example:\n" #~ msgstr "" #~ "SVP précisez la langue du dictionnaire que vous construisez\n" #~ "Par exemple: \n" #~ msgid "Error opening file `%s': %s\n" #~ msgstr "Erreur d'ouverture du fichier `%s': %s\n" #~ msgid "" #~ "Error allocating: %s\n" #~ "." #~ msgstr "" #~ "Erreur d'allocation: %s\n" #~ "." #~ msgid "Increase ALLOCSIZE (in %s).\n" #~ msgstr "Augmenter ALLOCSIZE (%s).\n" #~ msgid "Source RPM %d.%d" #~ msgstr "Paquet RPM source %d.%d" #~ msgid "Binary RPM %d.%d" #~ msgstr "Paquet RPM binaire %d.%d" libextractor-1.3/po/ga.gmo0000644000175000017500000002147312255661612012526 00000000000000< P Q k ,  % , -# Q &r   K % 8FUew/+; R`dh x      *E Y fs%C    $1 AOhp x      '/FO ^i r    % *3 < IW _j&     % 1 <G Xc s<?DM]f w     $/ 5&0F5w6"19UPq&/Mk#,26: P]l |$*Ob r5J  &1EYm       $-5+>3j   0;CV]c(s   !5 J Q [ e q ~         ! "!0!NC!#!!!J! /"9" J"W" f"s"""""""" """" "###+#Bz` "b0l; Gpx^=- 4 K/_A[>fg$D9*\PQjqS,!Oe2)}&]dusi7|o{Z6MEr.8RmYI<X cF@CTWa~wty?hU:(N'%J5nV 1L#H+3vk%s: illegal option -- %c %s: invalid option -- %c %s: option `%c%s' doesn't allow an argument %s: option `%s' is ambiguous %s: option `%s' requires an argument %s: option `--%s' doesn't allow an argument %s: option `-W %s' doesn't allow an argument %s: option `-W %s' is ambiguous %s: option requires an argument -- %c %s: unrecognized option `%c%s' %s: unrecognized option `--%s' Arguments mandatory for long options are also mandatory for short options. Australian EnglishBelgian DutchBelgian FrenchCanadian FrenchCastilian SpanishCommandsConventions and miscellaneousCroato-Serbian (Latin)Extract metadata from files.FarsiFile formats and conventionsGamesInitialization of plugin mechanism failed: %s! Kernel routinesKeywords for file %s: Library callsMD4MD5Mexican SpanishNo ProofingNorwegian BokmalRhaeto-RomanicRipeMD160SHA-0SHA-1Serbo-Croatian (Cyrillic)Simplified ChineseSpecial filesSwiss FrenchSwiss GermanSwiss ItalianSystem callsSystem management commandsTraditional ChineseU.K. EnglishU.S. EnglishUsage: %s %s Use --help to get a list of options. You must specify an argument for the `%s' option (option ignored). albumapertureartistbe verbosebook titlecamera makecamera modelcharacter countcharacter setcodec: %s, %u fps, %u mscommentcompanyconductorcontactcontributorcopyrightcreated by softwarecreation datecreatordescriptiondisclaimerdistributiondo not print keywords of the given TYPEdo not use the default set of extractor pluginsdurationediting cyclesencoded byexposureexposure biasexposure modeextract [OPTIONS] [FILENAME]*flashflash biasfocal lengthformatformat versiongenregroupimage qualityinternational standard recording codeiso speedkeywordslanguagelast printedlast saved bylicenseline countlist all keyword typesload an extractor plugin named LIBRARYlyricsmacro modemagnificationmanagermetering modemimetypemodification datemodified by softwaremonomoodorganizationorientationpage countpage orderpage orientationpaper sizeparagraph countplay counterprint only keywords of the given TYPE (use -L to get a list)print output in bibtex formatprint the version numberprint this helpproduce grep-friendly output (all results on one line per file)producerproduct versionprovidespublication datepublisherrevision historyrippersong countsourcestarting songstereosubjectsummarytemplatetitletotal editing timetrack numberunknownvendorwarningwhite balanceword countProject-Id-Version: libextractor 0.5.20 Report-Msgid-Bugs-To: libextractor@gnu.org POT-Creation-Date: 2013-12-22 23:11+0100 PO-Revision-Date: 2008-03-21 20:46-0700 Last-Translator: Kevin Scannell Language-Team: Irish Language: ga MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit %s: rogha neamhcheadaithe -- %c %s: rogha neamhbhail -- %c %s: n cheadatear argint i ndiaidh na rogha `%c%s' %s: T an rogha `%s' dbhroch %s: t argint de dhth i ndiaidh na rogha `%s' %s: n cheadatear argint i ndiaidh na rogha `--%s' %s: n cheadatear argint i ndiaidh na rogha `-W %s' %s: T an rogha `-W %s' dbhroch %s: t argint de dhth i ndiaidh na rogha -- %c %s: rogha anaithnid `%c%s' %s: rogha anaithnid `--%s' Is riachtanach le rogha ghearr aon argint at riachtanach leis an rogha fhada. Barla AstrlachOllainnis BheilgeachFraincis BheilgeachFraincis CheanadachSpinnis ChaistleachOrduitheCoinbhinsiin agus ruda eileSeirbea-Chritis (Laidineach)Bain meiteashonra as comhaid.FairsisFormid comhaid agus coinbhinsiinCluichTheip ar ths meicnocht na mbreisen: %s! Feidhmeanna eithneLorgfhocail do chomhad %s: Glaonna ar leabharlannaMD4MD5Spinnis MheicsiceachGan PhrofadhIoruais BokmlRaeta-RminsisRipeMD160SHA-0SHA-1Seirbea-Chritis (Coireallach)Snis SimplitheComhaid speisialtaFraincis EilviseachGearminis EilviseachIodilis EilviseachGlaonna ar an chrasOrduithe bainisteoireacht an chraisSnis TraidisintaBarla SasanachBarla S.A.M.sid: %s %s Bain sid as '--help' le haghaidh nos m roghanna. N mr duit argint a thabhairt i ndiaidh na rogha `%s' ( ligean thart). albamcrealaontirb foclachteideal an leabhairdants an cheamaradanamh an cheamaralon na gcarachtartacar carachtarcodec: %s, %u fss, %u msnta trchtacomhlachtstirthirteagmhilcuiditheoircipcheartcruthaithe ag bogearradta a cruthaodhcruthaitheoircur sossanadhdileadhn taispein lorgfhocail den CHINEL tugthan hsid na breisein asbhainteora ramhshocraitheachartimthriallta eagarthireachtaionchdaithe agnochtadhlaofacht nochtamd nochtaextract [ROGHANNA] [COMHADAINM]*splanclaofacht splaincefad fcaisformidleagan na formidesenragrpacilocht omhcd caighdenach idirnisinta taifeadtaluas ISOlorgfhocailteangapriontiltesbhilte is dana agceadnaslon na lntetaispein gach cinel lorgfhocailluchtaigh breisen asbhainteora darb ainm LEABHARLANNliricmd macraformhadbainisteoirmd madrlaCinel MIMEdta mionathraithemionathraithe ag bogearramonafonneagrastreoshuomhlon na leathanachord na leathanachtreoshuomh an leathanaighpiparmhidlon na n-altiritheoir seinnten taispein ach lorgfhocail den CHINEL tugtha (sid -L chun liosta a fhil)priontil aschur i bhformid bibtextaispein an leagantaispein an chabhair seoaschur is fidir priseil le grep (gach toradh ar lne amhin sa chomhad)tirgeoirleagan an tirgesolthraonndta foilsithefoilsitheoirstair leasaithesracairelon na n-amhrnfoinseamhrn tosaighsteiribharachoimreteimpladteidealam iomln eagairuimhir an riainanaithniddoltirrabhadhcothromaocht bhnlon na bhfocallibextractor-1.3/po/sv.gmo0000644000175000017500000002111412255661612012557 00000000000000< P Q k ,  % , -# Q &r   K % 8FUew/+; R`dh x      *E Y fs%C    $1 AOhp x      '/FO ^i r    % *3 < IW _j&     % 1 <G Xc s<?DM]f w     $r/. %(.N/} &`)  $DJe1j   $.4:U jw 2.Ba    /9BK S ak    &;%7 @Kct   *  )0ARYb6      / < H Q \ k z  @    !A!! c!m!|!! !!! !! !!!!!!! "" $"0" 8" B"Bz` "b0l; Gpx^=- 4 K/_A[>fg$D9*\PQjqS,!Oe2)}&]dusi7|o{Z6MEr.8RmYI<X cF@CTWa~wty?hU:(N'%J5nV 1L#H+3vk%s: illegal option -- %c %s: invalid option -- %c %s: option `%c%s' doesn't allow an argument %s: option `%s' is ambiguous %s: option `%s' requires an argument %s: option `--%s' doesn't allow an argument %s: option `-W %s' doesn't allow an argument %s: option `-W %s' is ambiguous %s: option requires an argument -- %c %s: unrecognized option `%c%s' %s: unrecognized option `--%s' Arguments mandatory for long options are also mandatory for short options. Australian EnglishBelgian DutchBelgian FrenchCanadian FrenchCastilian SpanishCommandsConventions and miscellaneousCroato-Serbian (Latin)Extract metadata from files.FarsiFile formats and conventionsGamesInitialization of plugin mechanism failed: %s! Kernel routinesKeywords for file %s: Library callsMD4MD5Mexican SpanishNo ProofingNorwegian BokmalRhaeto-RomanicRipeMD160SHA-0SHA-1Serbo-Croatian (Cyrillic)Simplified ChineseSpecial filesSwiss FrenchSwiss GermanSwiss ItalianSystem callsSystem management commandsTraditional ChineseU.K. EnglishU.S. EnglishUsage: %s %s Use --help to get a list of options. You must specify an argument for the `%s' option (option ignored). albumapertureartistbe verbosebook titlecamera makecamera modelcharacter countcharacter setcodec: %s, %u fps, %u mscommentcompanyconductorcontactcontributorcopyrightcreated by softwarecreation datecreatordescriptiondisclaimerdistributiondo not print keywords of the given TYPEdo not use the default set of extractor pluginsdurationediting cyclesencoded byexposureexposure biasexposure modeextract [OPTIONS] [FILENAME]*flashflash biasfocal lengthformatformat versiongenregroupimage qualityinternational standard recording codeiso speedkeywordslanguagelast printedlast saved bylicenseline countlist all keyword typesload an extractor plugin named LIBRARYlyricsmacro modemagnificationmanagermetering modemimetypemodification datemodified by softwaremonomoodorganizationorientationpage countpage orderpage orientationpaper sizeparagraph countplay counterprint only keywords of the given TYPE (use -L to get a list)print output in bibtex formatprint the version numberprint this helpproduce grep-friendly output (all results on one line per file)producerproduct versionprovidespublication datepublisherrevision historyrippersong countsourcestarting songstereosubjectsummarytemplatetitletotal editing timetrack numberunknownvendorwarningwhite balanceword countProject-Id-Version: libextractor 0.5.22 Report-Msgid-Bugs-To: libextractor@gnu.org POT-Creation-Date: 2013-12-22 23:11+0100 PO-Revision-Date: 2009-05-12 17:45+0100 Last-Translator: Daniel Nylander Language-Team: Swedish Language: sv MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit %s: ej tillåten flagga -- %c %s: ogiltig flagga -- %c %s: flagga "%c%s" tillåter inte ett argument %s: flagga "%s" är tvetydig %s: flagga "%s" kräver ett argument %s: flagga "--%s" tillåter inte ett argument %s: flagga "-W %s" tillåter inte ett argument %s: flagga "-W %s" är tvetydig %s: flagga kräver ett argument -- %c %s: okänd flagga "%c%s" %s: okänd flagga "--%s" Argument som är obligatoriska för långa flaggor är också obligatoriska för korta flaggor. Australisk engelskaBelgisk holländskaBelgisk franskaKanadensisk franskaKastiliansk spanskaKommandonKonventioner och diverseKroatoserbiska (Latin)Extrahera metadata från filer.FarsiFilformat och konventionerSpelInitiering av insticksmekanism misslyckades: %s! KärnrutinerNyckelord för filen %s: BiblioteksanropMD4MD5Mexikansk spanskaIngen korrekturläsningNorska (Bokmål)RätoromanskaRipeMD160SHA-0SHA-1Serbokroatiska (Kyrillisk)Förenklad kinesiskaSpecialfilerSchweizisk franskaSchweizisk tyskaSchweizisk italienskaSystemanropKommandon för systemhanteringTraditionell kinesiskaBrittisk engelskaAmerikansk engelskaAnvändning: %s %s Använd --help för att få en lista på flaggor. Du måste ange ett argument för flaggan "%s" (flagga ignoreras). albumbländareartistvar informativboktitelkameratillverkarekameramodellteckenantalteckenuppsättningkodek: %s, %u bilder/s, %u mskommentarföretagdirigentkontaktbidragsgivarecopyrightskapad med programvaranskapad denskaparebeskrivningdisclaimerdistributionskriv inte ut nyckelord av angiven TYPanvänd inte förvalda uppsättningen av uppackningsinstickspeltidredigeringscyklerkodad avexponeringexponeringskompensationexponeringslägeextract [FLAGGOR] [FILNAMN]*blixtblixttidskompensationbrännviddformatformatversiongenregruppbildkvalitetinternationell standardkod för inspelningISO-hastighetnyckelordspråksenast utskrivensenast sparad avlicensradantallista alla typer av nyckelordläser in instick för uppackning med namnet BIBLIOTEKtextermakrolägeförstoringansvarigmätarlägeMIME-typändringsdatumändrad av programvaranmonosinnesstämningorganisationorienteringsidantalsidordningsidorienteringpappersstorlekantal styckenantal spelningarskriv endast ut nyckelord av angiven TYP (använd -L för lista)skriv ut i bibtex-formatskriv ut versionsnummerskriv ut denna hjälpproducera grep-vänligt utdata (alla resultat på en rad per fil)producentproduktversiongerpubliceringsdatumpublicerad avrevisionshistorikripparelåtantalkällastartlåtstereoämnesammanfattningmalltiteltotal redigeringstidspårnummerokändtillverkarevarningvitbalansantal ordlibextractor-1.3/po/vi.gmo0000644000175000017500000007420312255661612012554 00000000000000< \     , !%3!,Y!-! !&!!"<".O"K~"" """ ##2%#X#v##### ## $$"$3($ \$L}$/$$ % !%/%3%<%@%I%(Y% %%%%% %% %% %%& )& 7& D& Q& _&l&R&& & &' ''%'CE'''N''' (( -(:( M( Y(d(u( ( ( ( (( ( ( (W((R) {)))) ))))) ** *(*=*E* Y*e* y** * ** * **>*+";+^+Y}+ +5+ , &, G, R, ^, k,%x,',/,,,-1&-X-k- }-I- -- - -. #.A-.o. u. .... .&...2.%/ 6/D/U/'n/H/&/0R0!h0%00 0 0 00-0 1/1)81b1k11 1 111111 11& 242"92\2:c2 2 2 2 22 2 23 3333@83y3/~3333+344%I4o4O444+5.5.B5q5515555606'L6t6)6+666.7?79[7,78778,#8P8e8~88;8 8)8%9059f9 y9 997999::':7: V:c:&s:F:D:3&;"Z; };A; ;; ; ;;L < Y<c<k<"</< << ==<=Z=x==0=?=>'>0>@>I>Z>j>|>>> >>>>>??%?.?I? e?s????-??)?@=@0E@+v@@ @ @@ @$@*A0A2HA/{A AAAA AAA BBB*BBBRB)[B BBBB%BBC"C!5C WC1dCC!CC>C-D 5DBDRDYD'xD-D(DD'D9'E aE oEzE>EEEGG-G.H81H&jH2H8H9H)7I5aI,I,IILJvNJJJ JJKK;&KbK!{K$KK$K&K L#L>LML iL*tL.LRL;!M]MsMMMMMMM.M)N=NONkN}N NNNNN NOO4OGOYOiOOO'PDP]PpPtPxP`P]P RQ_QaeQQ&Q Q R+RHR_RoR RR RRR RRRS4SOIS$S SSS"S T+T'0T XTdT}TTTT TTT T U !U,U ;UFU ^U jUvUFUU(U%V^:V V>VV7V'WBWXWkW#~W6W,WX6XMXDeXXX XfXKYcYuYY<YYJY DZPZ lZwZZZZ*Z Z[F [P[c[y[[2[K[))\S\Wi\\!\ ] ]])]9](T]}] ]=] ]]^^^&0^W^'v^ ^$^^"^A_ H_/U__O_._` '` 1`?`O` ^` j`v`` `:` `1`0a#La%paCa;a$b;bmSb%bb'c,c;@c|cc9c!c%d 5dVdod5d'd]d/Gewee.e)eRe7OfCf(ffGfCg!VgxggNg8g/$hTh4chh hhhChi5iLi ^iii zi ii!i0i5 jA@j-jjPjk$k3k CkOkehkk k.k7 l9Xll'lll`l1Wm)mmMmjnnnn nnnoo.oBoTofoo oooo o&o0pKp_p"yppp[pq?q Vq?`q?q3qr.rDr[rcr1xr6rr:r45sjss s s s sss sst"t6t@|M`pvA' H|mr. {P bscS;RbsI5g#M;CQO&( l%/o >dVidO!oz_ue+(Vh,:PH {:-8_m\^"1$f8xfjcW*0It4,}kCJ.Ge])]D61qESln9^U ?79Whk<ELyjiw)@N&%s - (binary, %u bytes) %s - (unknown, %u bytes) %s: illegal option -- %c %s: invalid option -- %c %s: option `%c%s' doesn't allow an argument %s: option `%s' is ambiguous %s: option `%s' requires an argument %s: option `--%s' doesn't allow an argument %s: option `-W %s' doesn't allow an argument %s: option `-W %s' is ambiguous %s: option requires an argument -- %c %s: unrecognized option `%c%s' %s: unrecognized option `--%s' %u Hz, %u channelsAddress of the publisher (often only the city)Arguments mandatory for long options are also mandatory for short options. Australian EnglishBelgian DutchBelgian FrenchCanadian FrenchCastilian SpanishCommandsContact information for the creator or distributorConventions and miscellaneousCroato-Serbian (Latin)Extract metadata from files.FarsiFile formats and conventionsFound by `%s' plugin: GPS latitudeGPS latitude refGPS longitudeGPS longitude refGamesISO 2-letter country code for the country of originISRC number identifying the workIllegal combination of options, cannot combine multiple styles of printing. Initialization of plugin mechanism failed: %s! Kernel routinesKeywords for file %s: Library callsMD4MD4 hashMD5MD5 hashMexican SpanishName of the entity holding the copyrightNo ProofingNorwegian BokmalOriginating entityRhaeto-RomanicRipeMD150 hashRipeMD160SHA-0SHA-0 hashSHA-1SHA-1 hashSerbo-Croatian (Cyrillic)Simplified ChineseSpecial filesSwiss FrenchSwiss GermanSwiss ItalianSystem callsSystem management commandsThe artist(s) who performed the work (conductor, orchestra, soloists, actor, etc.)Traditional ChineseU.K. EnglishU.S. EnglishURIURLUsage: %s %s Use --help to get a list of options. You must specify an argument for the `%s' option (option ignored). abstractalbumambiguous date (could specify creation time, modification time or access time)apertureapplicable copyright licenseartistassociated misc. pictureauthor emailauthor institutionauthor namebe verbosebeats per minutebibtex entry typebibtex eprintbook chapterbook editionbook titlebroadcast television systembuild hostcamera makecamera modelcategorization of the nature of the resource that is more specific than the file formatcategory the software package belongs tochapter namechapter numbercharacter countcharacter encoding usedcharacter setcitycodec: %s, %u fps, %u mscommentcomment about the contentcompanycomposerconductorconflicting packagescontactcontributing writercontributorcontributor picturecopyrightcountrycountry codecover picturecreated by softwarecreation datecreation timecreatordate of publication (or, if unpublished, the date of creation)date the document was createddate the document was last printeddate the document was modifiedday of publication (or, if unpublished, the day of creation), relative to the given monthdependenciesdependency that must be satisfied before installationdescriptiondevice used to create the objectdisclaimerdisk numberdisplay typedistributiondistribution the package is a part ofdo not print keywords of the given TYPEdo not use the default set of extractor pluginsduratione-mail of the author(s)editing cyclesedition of the book (or book containing the work)embedded file sizeembedded filenameencoded byentry that contains the full, original binary data (not really meta data)event pictureexposureexposure biasexposure modeextract [OPTIONS] [FILENAME]*file typefilename that was embedded (not necessarily the current filename)flashflash biasfocal lengthfocal length 35mmformatformat versionfull datafunctionality provided by this packagegenregrouphardware architecture the contents can be used forimage dimensionsimage qualityimage resolutioninformation about rightsinformation about the file's popularityinformation about the people behind interpretations of an existing pieceinformation about the revision historyinstalled sizeinstitution that was involved in the publishing, but not necessarily the publisherinstitution the author worked forinternational standard recording codeinterpretationis essentialiso speedjournal namejournal numberjournal or magazine the work was published injournal volumekeywordskeywords reflecting the mood of the piecelanguagelanguage the work useslastlast printedlast saved bylegal disclaimerlibrary dependencylibrary search pathlicenselicenseeline countlist all keyword typesload an extractor plugin named LIBRARYlogologo of an associated organizationlyricslyrics of the song or text description of vocal activitiesmachine the package was build onmacro modemagnificationmaintainermanagermetering modemime typemimetypemodification datemodified by softwaremonomonth of publication (or, if unpublished, the month of creation)moodmore specific location of the geographic originmovie directormusician credit listname of a contributorname of a library that this file depends onname of person or organization that encoded the filename of software making modificationsname of the albumname of the architecture, operating system and distribution this package is forname of the artist or bandname of the author(s)name of the broadcasting network or stationname of the chaptername of the city where the document originatedname of the composername of the conductorname of the country where the document originatedname of the directorname of the document formatname of the group or bandname of the maintainername of the original artistname of the original lyricist or writername of the original performername of the owner or licensee of the filename of the person who created the documentname of the publishername of the showname of the software that created the documentname of the software vendorname of the television system for which the data is codedname of the user who saved the document lastname of the version of the song (i.e. remix information)names of contributing musiciansnetworknumber of a journal, magazine or tech-reportnumber of charactersnumber of editing cyclesnumber of linesnumber of songsnumber of the disk in a multi-disk (or volume) distributionnumber of the first song to playnumber of times the media has been playednumber of wordsoperating system for which this package was madeorder of the pagesorganizationorientationoriginal artistoriginal number of the track on the distribution mediumoriginal performeroriginal release yearoriginal source codeoriginal titleoriginal writerpackage is marked as essentialpackage namepackage versionpackages made obsolete by this packagepackages recommended for installation in conjunction with this packagepackages suggested for installation in conjunction with this packagepackages that cannot be installed with this packagepackages this package depends uponpage countpage numbers of the publication in the respective journal or bookpage orderpage orientationpage rangepaper sizeparagraph countpath in the file system to be considered when looking for required librariesperformerpicturepicture of an associated eventpicture of one of the contributorspicture of the cover of the distribution mediumplay counterplay time for the mediumpopularitypre-dependencyprint only keywords of the given TYPE (use -L to get a list)print output in bibtex formatprint the version numberprint this helppriority for promoting the release to productionproduce grep-friendly output (all results on one line per file)produced by softwareproducerproduct versionprovidespublication datepublication daypublication monthpublication seriespublication typepublication yearpublisherpublisher's addresspublishing institutionratingrating of the contentrecommendationsreplaced packagesreservedreserved value, do not useresolution in dots per inchresource typerevision historyrevision numberrightsripperrun plugins in-process (simplifies debugging)sectionseries of books the book was published inshowsize of the contents of the container as embedded in the filesize of the image in pixels (width times height)smaller version of the image for previewingsoftware versionsong countsong versionsourcesource devicespace consumption after installationspecification of an electronic publicationspecifics are not knownstandard Macintosh Finder file creator informationstandard Macintosh Finder file type informationstarting songstereosubjectsubject mattersublocationsubtitlesubtitle of this partsuggestionssummarytarget architecturetarget operating systemtarget platformtemplatetemplate the document uses or is based onthumbnailtime and date of creationtime spent editing the documenttitletitle of the book containing the worktitle of the original worktitle of the worktotal editing timetotal number of pages of the worktrack numbertype of the publication for bibTeX bibliographiestype of the tech-reportunique identifier for the packageuniversal resource identifieruniversal resource location (where the work is made available)unknownunknown dateupload priorityvendorversion of the document formatversion of the software and its packageversion of the software contained in the filevolume of a journal or multi-volume bookwarningwarning about the nature of the contentwhat rendering method should be used to display this itemwhite balanceword countwriteryear of publication (or, if unpublished, the year of creation)year of the original releaseProject-Id-Version: libextractor 0.6.0 Report-Msgid-Bugs-To: libextractor@gnu.org POT-Creation-Date: 2013-12-22 23:11+0100 PO-Revision-Date: 2010-02-11 00:13+0930 Last-Translator: Clytie Siddall Language-Team: Vietnamese Language: vi MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=1; plural=0; X-Generator: LocFactoryEditor 1.8 %s - (nhị phân, %u byte) %s - (không rõ, %u byte) %s: không cho phép tùy chọn « -- %c » %s: tùy chọn không hợp lệ « -- %c » %s: tùy chọn « %c%s » không cho phép đối số %s: tùy chọn « %s » là mơ hồ %s: tùy chọn « %s » cần đến đối số %s: tùy chọn « --%s » không cho phép đối số %s: tùy chọn « -W %s » không cho phép đối số %s: tùy chọn « -W %s » là mơ hồ %s: tùy chọn cần đến đối số « -- %c » %s: không nhận ra tùy chọn « %c%s » %s: không nhận ra tùy chọn « --%s » %u Hz, %u kênhĐịa chỉ của nhà xuất bản (thường chỉ là tên thành phố)Mọi đối số bắt buộc phải sử dụng với tùy chọn dài cũng bắt buộc với tùy chọn ngắn. Tiếng Anh (Úc)Hoà Lan (Bỉ)Pháp (Bỉ)Pháp (Ca-na-đa)Tây Ban Nha (Căt-tín)LệnhChi tiết liên lạc cho nhà tạo hay nhà phân phốiQuy ước và linh tinhXéc-bi Cợ-rô-a-ti-a (La-tinh)Rút siêu dữ liệu ra tập tin.Pha-xiKhuôn dang tập tin và quy ướcTìm bởi phần bổ sung « %s »: Độ vĩ GPSTham chiếu độ vĩ GPSĐộ kinh GPSTham chiếu độ kinh GPSTrò chơiMã ISO chữ đôi của quốc gia gốcSố thứ tự ISRC nhận diện tác phẩmsai tổ hợp các tuỳ chọn này, không thể kết hợp nhiều cách in. Việc khởi động cơ chế cầm phít bị lỗi: %s Thao tác hạt nhânTừ khoá cho tập tin %s: Cuộc gọi thư việnMD4Chuỗi duy nhất MD4MD5Chuỗi duy nhất MD5Tây Ban Nha (Mê-hi-cô)Tên của người/nhà giữ bản quyềnĐừng bắt lỗiNa Uy (Bóc-măn)Người/nhà nguồn gốcRai-tô-Rô-ma-niChuỗi duy nhất RipeMD150RipeMD160SHA-0Chuỗi duy nhất SHA-0SHA-1Chuỗi duy nhất SHA-1Xéc-bi Cợ-rô-a-ti-a (Ki-rin)Tiếng Hoa giản thểTập tin đặc biệtPháp (Thuỵ sĩ)Đức Thụy SĩÝ (Thuỵ sĩ)Cuộc gọi hệ thốngLệnh quản lý hệ thốngCác nhạc sĩ đã biểu diễn tác phẩm (nhạc trưởng, dàn nhạc hợp tấu, người diễn đơn, diễn viên v.v.)Tiếng Hoa truyền thốngTiếng Anh (Quốc Anh)Tiếng Anh (Mỹ)URIURLCách sử dụng: %s %s Hãy sử dụng lệnh « --help » (trợ giúp) để xem một danh sách các tùy chọn. Bạn phải ghi rõ một đối số cho tùy chọn « %s » (tùy chọn bị bỏ qua). trích yếutậpngày tháng không rõ (có thể đưa ra giờ tạo, giờ sửa đổi hay giờ truy cập)lỗ ống kínhgiấy phép tác quyền thích hợpnhạc sĩhình ảnh linh tinh liên quanđịa chỉ thư tác giảtổ chức tác giảtên tác giảxuất chi tiếtnhịp/phútkiểu mục nhập bibtexbibtex eprintchương sáchbản in sáchtên sáchhệ thống phát thanh TVmáy hỗ trợ xây dựngnhà chế tạo máy ảnhmô hình máy ảnhphân loại tài nguyên một cách chính xác hơn định dạng tập tinphân loại của gói phần mềmtên chươngsố thứ tự chươngtổng số ký tựbảng mã ký tự được dùngbộ ký tựt.p.codec: %s, %u khung/giây, %u miligiâychú thíchghi chú về nội dungcông tyngười soạnngười chỉ huygói xung độtliên lạctác giả đóng gópngười đóng góphình ảnh người đóng gópbản quyềnquốc giamã quốc giaảnh bìabị phần mềm tạongày tạogiờ tạongười tạongày tháng xuất bản (chưa xuất bản thì ngày tháng tạo)ngày tháng tạo tài liệungày tháng in tài liệu lần cuốingày tháng sửa đổi tài liệungày xuất bản (chưa xuất bản thì ngày tạo), tương đối với tháng đưa raphụ thuộcquan hệ phụ thuộc phải thoả trước khi cài đặtmô tảthiết bị được dùng để tạo đối tượngtừ chối trách nhiệmsố thứ tự đĩakiểu trình bàybản phân phốibản phân phối chứa gói nàyđừng hiển thị từ khoá KIỂU (TYPE) đã chođừng dùng bộ trình rút mặc địnhthời lượngđịa chỉ thư điện tử của (các) tác giảchu kỳ hiệu chỉnhbản in của cuốn sách (hoặc cuốn sách chứa tác phẩm)cỡ tập tin nhúngtên tập tin nhúngmá hoá theomục nhập chứa dữ liệu nhị phân gốc hoàn toàn (không phải siêu dữ liệu thật)hình ảnh sự kiệnsự phơi nắngkhuynh hướng phơi nắngchế độ phơi nắngextract [TÙY_CHỌN] [TÊN_TẬP_TIN]* [extract: trích ra]kiểu tập tintên tập tin nhúng (không nhất thiết tên tập tin hiện thời)đèn nháykhuynh hướng đèn nháytiêu cựtiêu cự 35mmđịnh dạngphiên bản định dạngdữ liệu đầy đủchức năng được gói này cung cấpthể loạinhómkiến trúc phần cứng trên đó có thể sử dụng nội dungcác chiều ảnhchất lượng ảnhđộ phân giải ảnhthông tin về quyềnthông tin về tính phổ biến của tập tinthông tin về các người đã thể hiện một bản nhạc đã cóthông tin về lịch sử duyệt lạicỡ đã cài đặttổ chức liên quan đến xuất bản, không nhất thiết là nhà xuất bảntổ chức của tác giảmã thu tiêu chuẩn quốc tếthể hiệncần yếutốc độ ISOtên tạp chísố thứ tự tạp chítạp chí đã xuất bản tác phẩmtập tạp chítừ khoá(các) từ khoá phản ánh tâm trạng của bản nhạcngôn ngữngôn ngữ của tác phẩmcuốiin cuối cùnglưu cuối cùng bởitừ chối trách nhiệm hợp phápphụ thuộc vào thư việnđường dẫn tìm kiếm thư việnquyền phépngười được cấp tác quyềnsố đếm trangliệt kê mọi kiểu từ khoátải một trình cầm phít rút có tên LIBRARY (THƯ VIÊN)biểu hìnhbiểu hình của một tổ chức liên quanlời bài hátlời ca của bài hát, hay mô tả văn bản về hoạt động phát âmmáy trên đó gói này được xây dựngchế độ macrôphóng tonhà duy trìnhà quản lýchế độ dokiểu MIMEkiểu MIMEngày sửa đổibị phần mềm sửa đổimột nguồntháng xuất bản (chưa xuất bản thì tháng tạo)tâm trạngvị trí chính xác hơn của gốc địa lýngười đạo diễn phimdanh sách công trạng nhạc sĩtên của một người đóng góptên của một thư viện vào đó tập tin này phụ thuộctên của người hay tổ chức đã mã hoá tập tintên của phần mềm sửa đổitên của tập nhạctên của kiến trúc, hệ điều hành và bản phân phối cho chúng gói này được thiết kếtên của nhạc sĩ hay dàn nhạctên của (các) tác giảtên của mạng hay đài phát thanhtên của chươngtên của thành phố ở đó tài liệu được tạotên của người soạntên của nhạc trưởngtên của quốc gia ở đó tài liệu được tạotên của người đạo diễntên của định dạng tài liệutên của nhóm hay dàn nhạctên của nhà duy trìtên của nhạc sĩ gốctên của nhà thơ trữ tình hay tác giả gốctên của người biểu diễn gốctên của người sở hữu hay người được cấp giấy phép sử dụng tập tintên của người đã tạo tài liệu nàytên nhà xuất bảntên của buổi TVtên của phần mềm đã tạo tài liệutên của nhà sản xuất phần mềmtên của hệ thống TV cho đó dữ liệu được mã hoá (v.d. PAL, NTSC)tên của người dùng lưu tài liệu lần cuốitên của phiên bản bài hát (tức là thông tin hoà lại)tên của (các) nhạc sĩ đóng gópmạngsố thứ tự của một tạp chí hay bản báo cáo kỹ thuậtsố các ký tựsố các chu kỳ hiệu chỉnhsố các dòngsố các bài hátsố thứ tự của đĩa trong bản phân phối đa đĩa (hay đa tập)số thứ tự của bài hát đầu tiên cần phátsố các lần đã phát phương tiện nàysố các từhệ điều hành cho đó gói này được tạothứ tự các trangtổ chứchướngnhạc sĩ gốcsố thứ tự gốc của rãnh trên phương tiện phát hànhngười biểu diễn gốcnăm phát hành gốcmã nguồn gốctên gốctác giả gốcgói có nhãn « cần yếu »tên góiphiên bản góicác gói bị gói này làm cũcác gói nên cài đặt cùng với gói nàycác gói có thể cài đặt cùng với gói nàycác gói không thể được cài đặt cùng với gói nàycác gói về chúng gói này phụ thuộctổng số trang(các) số thứ tự trang của tác phẩm trong tạp chí hay cuốn sáchthứ tự tranghướng trangphạm vi trangcỡ giấysố đếm đoạn vănđường dẫn trong hệ thống tập tin cần theo khi quét tìm các thư viện cần thiếtngười biểu diễnhình ảnhhình ảnh của một sự kiện liên quanhình ảnh của một của các người đóng góphình ảnh của bìa của phương tiện phân phốibộ đếm chơithời gian phát của phương tiệntính phổ biếnphụ thuộc trướchiển thị chỉ từ khoá KIỂU (TYPE) đã cho thôi (dùng « -L » để xem danh sách)hiển thị dữ liệu xuất có dạng bibtexhiển thị số thứ tự phiên bảnhiển thị trợ giúp nàyđộ ưu tiên để đẩy mạnh bản phát hành lên mức sản xuấttạo ra kết xuất thân thiện với grep (mọi kết quả trên cùng dòng của mỗi tập tin)xuất bởi phần mềmngười cung cấpphiên bản sản phẩmcung cấpngày xuất bảnngày xuất bảntháng xuất bảnbộ sự xuất bảnkiểu xuất bảnnăm xuất bảnnhà xuất bảnđịa chỉ nhà xuất bảntổ chức xuất bảnđánh giáđánh giá nội dungkhuyến khíchgói bị thay thếdành riênggiá trị dành riêng, đừng dùngđộ phân giải theo chấm trên mỗi insơkiểu tài nguyênlược sử sửa đổisố thứ tự bản sửa đổiquyềnbộ trích rachạy phần bổ sung bên trong tiến trình (giản dị hoá chức năng gỡ rối)phầnbộ các cuốn sách theo đó xuất bản cuốn sách nàybuổi TVkích cỡ của nội dung đồ chứa nhúng trong tập tinkích cỡ của ảnh theo điểm ảnh (chiều rộng×cao)phiên bản nhỏ hơn của ảnh để xem thửphiên bản phần mềmsố đếm bài hátphiên bản bài hátnguồnthiết bị nguồnsức chứa được chiếm sau khi cài đặtđặc tả của một sự xuất bản điện tửchưa biết chính xácthông tin trình tạo tập tin Finder Mac tiêu chuẩnthông tin kiểu tập tin Finder Mac tiêu chuẩnbài hát bắt đầuâm lập thểchủ đềchủ đềvị trí conphụ đềphụ đề của phần nàygóp ýtóm tắtkiến trúc đíchhệ điều hành đíchnền tảng đíchmẫumẫu được tài liệu dùng hay vào đó tài liệu dựaảnh mẫungày/giờ tạothời gian mất khi chỉnh sửa tài liệutựatên của cuốn sách chứa tác phẩmtên của tác phẩm gốctên của tác phẩmtổng thời gian sửatổng số các trang trong tác phẩmsố thứ tự rãnhkiểu xuất bản cho thư tịch bibTeXkiểu bản báo cáo kỹ thuậtdấu nhận diện duy nhất cho góidấu nhận diện tài nguyên thống nhấtđịa chỉ Internet có sẵn tác phẩmkhông rõkhông rõ ngày thángưu tiên tải lênnhà bánphiên bản của định dạng tài liệuphiên bản của phần mềm và gói nóphiên bản của phần mềm nằm trong tập tintập của một tạp chí hay cuốn sách đa tậpcảnh báocảnh báo về kiểu nội dung (v.d. Chỉ co người trên 18 tuổi)phương pháp vẽ nên dùng để hiển thị mục nàycán cân trắngtổng số từtác giảnăm xuất bản (chưa xuất bản thì năm tạo)năm của bản phát hành gốclibextractor-1.3/po/remove-potcdate.sin0000644000175000017500000000066011260753602015233 00000000000000# Sed script that remove the POT-Creation-Date line in the header entry # from a POT file. # # The distinction between the first and the following occurrences of the # pattern is achieved by looking at the hold space. /^"POT-Creation-Date: .*"$/{ x # Test if the hold space is empty. s/P/P/ ta # Yes it was empty. First occurrence. Remove the line. g d bb :a # The hold space was nonempty. Following occurrences. Do nothing. x :b } libextractor-1.3/po/ro.gmo0000644000175000017500000001414112255661612012551 00000000000000c4Lpq,%, -C q &   K E N l   /       # ) / = J e %t         ( 6 > J U 'b /       " ( . < F O X ` &w       ,<7t   #1+G'g+,"( !4!V\x017i z &4(]cl s         $,0Q    .4(<*e     V/!   '/ 5@ I UJ1Z2`: ?G.+\^ W8I bRH)X'aTD;%U 0,C">@EBPK[-Y75#=MVSc_QFO$<3*9A( 4]L/!6 &N%s: illegal option -- %c %s: invalid option -- %c %s: option `%c%s' doesn't allow an argument %s: option `%s' is ambiguous %s: option `%s' requires an argument %s: option `--%s' doesn't allow an argument %s: option `-W %s' doesn't allow an argument %s: option `-W %s' is ambiguous %s: option requires an argument -- %c %s: unrecognized option `%c%s' %s: unrecognized option `--%s' Arguments mandatory for long options are also mandatory for short options. CommandsConventions and miscellaneousExtract metadata from files.File formats and conventionsGamesInitialization of plugin mechanism failed: %s! Kernel routinesKeywords for file %s: Library callsMD4MD5RipeMD160SHA-0SHA-1Special filesSystem callsSystem management commandsUsage: %s %s Use --help to get a list of options. albumapertureartistbe verbosebook titlecamera makecamera modelcodec: %s, %u fps, %u mscommentconductorcontactcontributorcopyrightcreation datecreatordescriptiondisclaimerdistributiondo not print keywords of the given TYPEdo not use the default set of extractor pluginsexposureexposure biasexposure modeextract [OPTIONS] [FILENAME]*flashflash biasfocal lengthformatgenregroupimage qualityiso speedkeywordslanguagelicenselist all keyword typesload an extractor plugin named LIBRARYlyricsmacro modemagnificationmetering modemimetypemodification datemonoorganizationorientationpage countpage orderpage orientationpaper sizeprint only keywords of the given TYPE (use -L to get a list)print output in bibtex formatprint the version numberprint this helpproducerprovidespublication datepublishersourcestereosubjectsummarytitleunknownvendorwarningwhite balanceProject-Id-Version: libextractor 0.5.3 Report-Msgid-Bugs-To: libextractor@gnu.org POT-Creation-Date: 2013-12-22 23:11+0100 PO-Revision-Date: 2005-08-16 12:00-0500 Last-Translator: Laurentiu Buzdugan Language-Team: Romanian Language: ro MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-2 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); %s: opiune ilegal -- %c %s: opiune ilegal -- %c %s: opiunea `%c%s' nu permite un argument %s: opiunea `%s' este ambigu %s: opiunea `%s' necesit un argument %s: opiunea `--%s' nu permite un argument %s: opiunea `-W %s' nu permite un argument %s: opiunea `-W %s' este ambigu %s: opiunea necesit un argument -- %c %s: opiune nerecunoscut `%c%s' %s: opiune nerecunoscut `--%s' Argumentele obligatorii pentru opiunile lungi sunt obligatorii i pentru opiunile scurte. ComenziConvenii i diverseExtrage metadata din fiiere.Formate de fiiere i conveniiJocuriiniializare mecanismului de plugin a euat: %s! Proceduri kernelCuvinte cheie pentru fiier %s: Apeluri de bibliotecMD4MD5RipeMD160SHA-0SHA-1Fiiere specialeApeluri sistemComenzi pentru managementul sistemuluiFolosire: %s %s Folosii --help pentru a obine o list de opiuni. albumaperturartistfi vorbretitlu de carteproductormodel de camercodec: %s, %u fps, %u mscomentariuconductorcontactcontribuitorcopyrightdata creriicreatordescriererepudieredistribuienu afia cuvinte cheie de TIP-ul datnu folosi setul implicit de plugin-uri extractorexpunerepredilecie expuneremod expunereextract [OPIUNI] [NUME_FIIER]*blipredilecie blilungime focalformatgengrupcalitate imaginevaloare isocuvinte cheielimblicenlisteaz toate tipurile de cuvinte cheiencarc un plugin extractor numit LIBRRIEversurimod macromriremod de msuraremimetypedata modificriimonoorganizaieorientarenumr de paginiordine paginiorientare pagindimensiune paginaafieaz numai cuvintele cheie pentru TIP-ul dat (folosete -L pentru a obine o listafieaz ieirea n format bibtexafieaz numrul versiuniiafieaz acest mesaj de ajutorproductorfurnizeazdata publicriipublicistsursstereosubiectcuprinstitlunecunoscutvnztoravertismentbalan alblibextractor-1.3/po/rw.gmo0000644000175000017500000000122612255661612012561 00000000000000L |  `k }CommandsdescriptionsubjecttitleunknownProject-Id-Version: libextractor 0.4.2 Report-Msgid-Bugs-To: libextractor@gnu.org POT-Creation-Date: 2013-12-22 23:11+0100 PO-Revision-Date: 2005-04-04 10:55-0700 Last-Translator: Steven Michael Murphy Language-Team: Kinyarwanda Language: rw MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit amabwirizaIsobanuramiterereIkivugwahoumutweitazwilibextractor-1.3/po/libextractor.pot0000644000175000017500000012276412255661612014666 00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Christian Grothoff # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: libextractor@gnu.org\n" "POT-Creation-Date: 2013-12-22 23:11+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #: src/main/extract.c:132 #, c-format msgid "" "Usage: %s\n" "%s\n" "\n" msgstr "" #: src/main/extract.c:135 #, c-format msgid "" "Arguments mandatory for long options are also mandatory for short options.\n" msgstr "" #: src/main/extract.c:217 msgid "print output in bibtex format" msgstr "" #: src/main/extract.c:219 msgid "produce grep-friendly output (all results on one line per file)" msgstr "" #: src/main/extract.c:221 msgid "print this help" msgstr "" #: src/main/extract.c:223 msgid "run plugins in-process (simplifies debugging)" msgstr "" #: src/main/extract.c:225 msgid "read data from file into memory and extract from memory" msgstr "" #: src/main/extract.c:227 msgid "load an extractor plugin named LIBRARY" msgstr "" #: src/main/extract.c:229 msgid "list all keyword types" msgstr "" #: src/main/extract.c:231 msgid "do not use the default set of extractor plugins" msgstr "" #: src/main/extract.c:233 msgid "print only keywords of the given TYPE (use -L to get a list)" msgstr "" #: src/main/extract.c:235 msgid "print the version number" msgstr "" #: src/main/extract.c:237 msgid "be verbose" msgstr "" #: src/main/extract.c:239 msgid "do not print keywords of the given TYPE" msgstr "" #: src/main/extract.c:242 msgid "extract [OPTIONS] [FILENAME]*" msgstr "" #: src/main/extract.c:243 msgid "Extract metadata from files." msgstr "" #: src/main/extract.c:288 #, c-format msgid "Found by `%s' plugin:\n" msgstr "" #: src/main/extract.c:291 src/main/extract.c:378 #: src/main/extractor_metatypes.c:145 src/main/extractor_print.c:86 #: src/main/extractor_print.c:96 msgid "unknown" msgstr "" #: src/main/extract.c:296 #, c-format msgid "%s - (unknown, %u bytes)\n" msgstr "" #: src/main/extract.c:325 #, c-format msgid "%s - (binary, %u bytes)\n" msgstr "" #: src/main/extract.c:809 src/main/extract.c:821 msgid "" "Illegal combination of options, cannot combine multiple styles of printing.\n" msgstr "" #: src/main/extract.c:854 #, c-format msgid "You must specify an argument for the `%s' option (option ignored).\n" msgstr "" #: src/main/extract.c:923 msgid "Use --help to get a list of options.\n" msgstr "" #: src/main/extract.c:964 msgid "% BiBTeX file\n" msgstr "" #: src/main/extract.c:972 #, c-format msgid "Keywords for file %s:\n" msgstr "" #: src/main/extractor.c:676 #, c-format msgid "Initialization of plugin mechanism failed: %s!\n" msgstr "" #: src/main/extractor_metatypes.c:46 msgid "reserved" msgstr "" #: src/main/extractor_metatypes.c:47 msgid "reserved value, do not use" msgstr "" #: src/main/extractor_metatypes.c:48 msgid "mimetype" msgstr "" #: src/main/extractor_metatypes.c:49 msgid "mime type" msgstr "" #: src/main/extractor_metatypes.c:50 msgid "embedded filename" msgstr "" #: src/main/extractor_metatypes.c:51 msgid "filename that was embedded (not necessarily the current filename)" msgstr "" #: src/main/extractor_metatypes.c:52 msgid "comment" msgstr "" #: src/main/extractor_metatypes.c:53 msgid "comment about the content" msgstr "" #: src/main/extractor_metatypes.c:54 msgid "title" msgstr "" #: src/main/extractor_metatypes.c:55 msgid "title of the work" msgstr "" #: src/main/extractor_metatypes.c:57 msgid "book title" msgstr "" #: src/main/extractor_metatypes.c:58 msgid "title of the book containing the work" msgstr "" #: src/main/extractor_metatypes.c:59 msgid "book edition" msgstr "" #: src/main/extractor_metatypes.c:60 msgid "edition of the book (or book containing the work)" msgstr "" #: src/main/extractor_metatypes.c:61 msgid "book chapter" msgstr "" #: src/main/extractor_metatypes.c:62 msgid "chapter number" msgstr "" #: src/main/extractor_metatypes.c:63 msgid "journal name" msgstr "" #: src/main/extractor_metatypes.c:64 msgid "journal or magazine the work was published in" msgstr "" #: src/main/extractor_metatypes.c:65 msgid "journal volume" msgstr "" #: src/main/extractor_metatypes.c:66 msgid "volume of a journal or multi-volume book" msgstr "" #: src/main/extractor_metatypes.c:68 msgid "journal number" msgstr "" #: src/main/extractor_metatypes.c:69 msgid "number of a journal, magazine or tech-report" msgstr "" #: src/main/extractor_metatypes.c:70 msgid "page count" msgstr "" #: src/main/extractor_metatypes.c:71 msgid "total number of pages of the work" msgstr "" #: src/main/extractor_metatypes.c:72 msgid "page range" msgstr "" #: src/main/extractor_metatypes.c:73 msgid "page numbers of the publication in the respective journal or book" msgstr "" #: src/main/extractor_metatypes.c:74 msgid "author name" msgstr "" #: src/main/extractor_metatypes.c:75 msgid "name of the author(s)" msgstr "" #: src/main/extractor_metatypes.c:76 msgid "author email" msgstr "" #: src/main/extractor_metatypes.c:77 msgid "e-mail of the author(s)" msgstr "" #: src/main/extractor_metatypes.c:79 msgid "author institution" msgstr "" #: src/main/extractor_metatypes.c:80 msgid "institution the author worked for" msgstr "" #: src/main/extractor_metatypes.c:81 msgid "publisher" msgstr "" #: src/main/extractor_metatypes.c:82 msgid "name of the publisher" msgstr "" #: src/main/extractor_metatypes.c:83 msgid "publisher's address" msgstr "" #: src/main/extractor_metatypes.c:84 msgid "Address of the publisher (often only the city)" msgstr "" #: src/main/extractor_metatypes.c:85 msgid "publishing institution" msgstr "" #: src/main/extractor_metatypes.c:86 msgid "" "institution that was involved in the publishing, but not necessarily the " "publisher" msgstr "" #: src/main/extractor_metatypes.c:87 msgid "publication series" msgstr "" #: src/main/extractor_metatypes.c:88 msgid "series of books the book was published in" msgstr "" #: src/main/extractor_metatypes.c:90 msgid "publication type" msgstr "" #: src/main/extractor_metatypes.c:91 msgid "type of the tech-report" msgstr "" #: src/main/extractor_metatypes.c:92 msgid "publication year" msgstr "" #: src/main/extractor_metatypes.c:93 msgid "year of publication (or, if unpublished, the year of creation)" msgstr "" #: src/main/extractor_metatypes.c:94 msgid "publication month" msgstr "" #: src/main/extractor_metatypes.c:95 msgid "month of publication (or, if unpublished, the month of creation)" msgstr "" #: src/main/extractor_metatypes.c:96 msgid "publication day" msgstr "" #: src/main/extractor_metatypes.c:97 msgid "" "day of publication (or, if unpublished, the day of creation), relative to " "the given month" msgstr "" #: src/main/extractor_metatypes.c:98 msgid "publication date" msgstr "" #: src/main/extractor_metatypes.c:99 msgid "date of publication (or, if unpublished, the date of creation)" msgstr "" #: src/main/extractor_metatypes.c:101 msgid "bibtex eprint" msgstr "" #: src/main/extractor_metatypes.c:102 msgid "specification of an electronic publication" msgstr "" #: src/main/extractor_metatypes.c:103 msgid "bibtex entry type" msgstr "" #: src/main/extractor_metatypes.c:104 msgid "type of the publication for bibTeX bibliographies" msgstr "" #: src/main/extractor_metatypes.c:105 msgid "language" msgstr "" #: src/main/extractor_metatypes.c:106 msgid "language the work uses" msgstr "" #: src/main/extractor_metatypes.c:107 msgid "creation time" msgstr "" #: src/main/extractor_metatypes.c:108 msgid "time and date of creation" msgstr "" #: src/main/extractor_metatypes.c:109 msgid "URL" msgstr "" #: src/main/extractor_metatypes.c:110 msgid "universal resource location (where the work is made available)" msgstr "" #: src/main/extractor_metatypes.c:112 msgid "URI" msgstr "" #: src/main/extractor_metatypes.c:113 msgid "universal resource identifier" msgstr "" #: src/main/extractor_metatypes.c:114 msgid "international standard recording code" msgstr "" #: src/main/extractor_metatypes.c:115 msgid "ISRC number identifying the work" msgstr "" #: src/main/extractor_metatypes.c:116 msgid "MD4" msgstr "" #: src/main/extractor_metatypes.c:117 msgid "MD4 hash" msgstr "" #: src/main/extractor_metatypes.c:118 msgid "MD5" msgstr "" #: src/main/extractor_metatypes.c:119 msgid "MD5 hash" msgstr "" #: src/main/extractor_metatypes.c:120 msgid "SHA-0" msgstr "" #: src/main/extractor_metatypes.c:121 msgid "SHA-0 hash" msgstr "" #: src/main/extractor_metatypes.c:123 msgid "SHA-1" msgstr "" #: src/main/extractor_metatypes.c:124 msgid "SHA-1 hash" msgstr "" #: src/main/extractor_metatypes.c:125 msgid "RipeMD160" msgstr "" #: src/main/extractor_metatypes.c:126 msgid "RipeMD150 hash" msgstr "" #: src/main/extractor_metatypes.c:127 src/main/extractor_metatypes.c:128 msgid "GPS latitude ref" msgstr "" #: src/main/extractor_metatypes.c:129 src/main/extractor_metatypes.c:130 msgid "GPS latitude" msgstr "" #: src/main/extractor_metatypes.c:131 src/main/extractor_metatypes.c:132 msgid "GPS longitude ref" msgstr "" #: src/main/extractor_metatypes.c:134 src/main/extractor_metatypes.c:135 msgid "GPS longitude" msgstr "" #: src/main/extractor_metatypes.c:136 msgid "city" msgstr "" #: src/main/extractor_metatypes.c:137 msgid "name of the city where the document originated" msgstr "" #: src/main/extractor_metatypes.c:138 msgid "sublocation" msgstr "" #: src/main/extractor_metatypes.c:139 msgid "more specific location of the geographic origin" msgstr "" #: src/main/extractor_metatypes.c:140 msgid "country" msgstr "" #: src/main/extractor_metatypes.c:141 msgid "name of the country where the document originated" msgstr "" #: src/main/extractor_metatypes.c:142 msgid "country code" msgstr "" #: src/main/extractor_metatypes.c:143 msgid "ISO 2-letter country code for the country of origin" msgstr "" #: src/main/extractor_metatypes.c:146 msgid "specifics are not known" msgstr "" #: src/main/extractor_metatypes.c:147 src/main/extractor_metatypes.c:148 msgid "description" msgstr "" #: src/main/extractor_metatypes.c:149 msgid "copyright" msgstr "" #: src/main/extractor_metatypes.c:150 msgid "Name of the entity holding the copyright" msgstr "" #: src/main/extractor_metatypes.c:151 msgid "rights" msgstr "" #: src/main/extractor_metatypes.c:152 msgid "information about rights" msgstr "" #: src/main/extractor_metatypes.c:153 src/main/extractor_metatypes.c:154 msgid "keywords" msgstr "" #: src/main/extractor_metatypes.c:156 src/main/extractor_metatypes.c:157 msgid "abstract" msgstr "" #: src/main/extractor_metatypes.c:158 src/main/extractor_metatypes.c:159 msgid "summary" msgstr "" #: src/main/extractor_metatypes.c:160 msgid "subject" msgstr "" #: src/main/extractor_metatypes.c:161 msgid "subject matter" msgstr "" #: src/main/extractor_metatypes.c:162 src/main/extractor_metatypes.c:195 msgid "creator" msgstr "" #: src/main/extractor_metatypes.c:163 msgid "name of the person who created the document" msgstr "" #: src/main/extractor_metatypes.c:164 msgid "format" msgstr "" #: src/main/extractor_metatypes.c:165 msgid "name of the document format" msgstr "" #: src/main/extractor_metatypes.c:167 msgid "format version" msgstr "" #: src/main/extractor_metatypes.c:168 msgid "version of the document format" msgstr "" #: src/main/extractor_metatypes.c:169 msgid "created by software" msgstr "" #: src/main/extractor_metatypes.c:170 msgid "name of the software that created the document" msgstr "" #: src/main/extractor_metatypes.c:171 msgid "unknown date" msgstr "" #: src/main/extractor_metatypes.c:172 msgid "" "ambiguous date (could specify creation time, modification time or access " "time)" msgstr "" #: src/main/extractor_metatypes.c:173 msgid "creation date" msgstr "" #: src/main/extractor_metatypes.c:174 msgid "date the document was created" msgstr "" #: src/main/extractor_metatypes.c:175 msgid "modification date" msgstr "" #: src/main/extractor_metatypes.c:176 msgid "date the document was modified" msgstr "" #: src/main/extractor_metatypes.c:178 msgid "last printed" msgstr "" #: src/main/extractor_metatypes.c:179 msgid "date the document was last printed" msgstr "" #: src/main/extractor_metatypes.c:180 msgid "last saved by" msgstr "" #: src/main/extractor_metatypes.c:181 msgid "name of the user who saved the document last" msgstr "" #: src/main/extractor_metatypes.c:182 msgid "total editing time" msgstr "" #: src/main/extractor_metatypes.c:183 msgid "time spent editing the document" msgstr "" #: src/main/extractor_metatypes.c:184 msgid "editing cycles" msgstr "" #: src/main/extractor_metatypes.c:185 msgid "number of editing cycles" msgstr "" #: src/main/extractor_metatypes.c:186 msgid "modified by software" msgstr "" #: src/main/extractor_metatypes.c:187 msgid "name of software making modifications" msgstr "" #: src/main/extractor_metatypes.c:189 msgid "revision history" msgstr "" #: src/main/extractor_metatypes.c:190 msgid "information about the revision history" msgstr "" #: src/main/extractor_metatypes.c:191 msgid "embedded file size" msgstr "" #: src/main/extractor_metatypes.c:192 msgid "size of the contents of the container as embedded in the file" msgstr "" #: src/main/extractor_metatypes.c:193 msgid "file type" msgstr "" #: src/main/extractor_metatypes.c:194 msgid "standard Macintosh Finder file type information" msgstr "" #: src/main/extractor_metatypes.c:196 msgid "standard Macintosh Finder file creator information" msgstr "" #: src/main/extractor_metatypes.c:197 msgid "package name" msgstr "" #: src/main/extractor_metatypes.c:198 msgid "unique identifier for the package" msgstr "" #: src/main/extractor_metatypes.c:200 msgid "package version" msgstr "" #: src/main/extractor_metatypes.c:201 msgid "version of the software and its package" msgstr "" #: src/main/extractor_metatypes.c:202 msgid "section" msgstr "" #: src/main/extractor_metatypes.c:203 msgid "category the software package belongs to" msgstr "" #: src/main/extractor_metatypes.c:204 msgid "upload priority" msgstr "" #: src/main/extractor_metatypes.c:205 msgid "priority for promoting the release to production" msgstr "" #: src/main/extractor_metatypes.c:206 msgid "dependencies" msgstr "" #: src/main/extractor_metatypes.c:207 msgid "packages this package depends upon" msgstr "" #: src/main/extractor_metatypes.c:208 msgid "conflicting packages" msgstr "" #: src/main/extractor_metatypes.c:209 msgid "packages that cannot be installed with this package" msgstr "" #: src/main/extractor_metatypes.c:211 msgid "replaced packages" msgstr "" #: src/main/extractor_metatypes.c:212 msgid "packages made obsolete by this package" msgstr "" #: src/main/extractor_metatypes.c:213 msgid "provides" msgstr "" #: src/main/extractor_metatypes.c:214 msgid "functionality provided by this package" msgstr "" #: src/main/extractor_metatypes.c:215 msgid "recommendations" msgstr "" #: src/main/extractor_metatypes.c:216 msgid "packages recommended for installation in conjunction with this package" msgstr "" #: src/main/extractor_metatypes.c:217 msgid "suggestions" msgstr "" #: src/main/extractor_metatypes.c:218 msgid "packages suggested for installation in conjunction with this package" msgstr "" #: src/main/extractor_metatypes.c:219 msgid "maintainer" msgstr "" #: src/main/extractor_metatypes.c:220 msgid "name of the maintainer" msgstr "" #: src/main/extractor_metatypes.c:222 msgid "installed size" msgstr "" #: src/main/extractor_metatypes.c:223 msgid "space consumption after installation" msgstr "" #: src/main/extractor_metatypes.c:224 src/main/extractor_metatypes.c:304 msgid "source" msgstr "" #: src/main/extractor_metatypes.c:225 msgid "original source code" msgstr "" #: src/main/extractor_metatypes.c:226 msgid "is essential" msgstr "" #: src/main/extractor_metatypes.c:227 msgid "package is marked as essential" msgstr "" #: src/main/extractor_metatypes.c:228 msgid "target architecture" msgstr "" #: src/main/extractor_metatypes.c:229 msgid "hardware architecture the contents can be used for" msgstr "" #: src/main/extractor_metatypes.c:230 msgid "pre-dependency" msgstr "" #: src/main/extractor_metatypes.c:231 msgid "dependency that must be satisfied before installation" msgstr "" #: src/main/extractor_metatypes.c:233 msgid "license" msgstr "" #: src/main/extractor_metatypes.c:234 msgid "applicable copyright license" msgstr "" #: src/main/extractor_metatypes.c:235 msgid "distribution" msgstr "" #: src/main/extractor_metatypes.c:236 msgid "distribution the package is a part of" msgstr "" #: src/main/extractor_metatypes.c:237 msgid "build host" msgstr "" #: src/main/extractor_metatypes.c:238 msgid "machine the package was build on" msgstr "" #: src/main/extractor_metatypes.c:239 msgid "vendor" msgstr "" #: src/main/extractor_metatypes.c:240 msgid "name of the software vendor" msgstr "" #: src/main/extractor_metatypes.c:241 msgid "target operating system" msgstr "" #: src/main/extractor_metatypes.c:242 msgid "operating system for which this package was made" msgstr "" #: src/main/extractor_metatypes.c:244 msgid "software version" msgstr "" #: src/main/extractor_metatypes.c:245 msgid "version of the software contained in the file" msgstr "" #: src/main/extractor_metatypes.c:246 msgid "target platform" msgstr "" #: src/main/extractor_metatypes.c:247 msgid "" "name of the architecture, operating system and distribution this package is " "for" msgstr "" #: src/main/extractor_metatypes.c:248 msgid "resource type" msgstr "" #: src/main/extractor_metatypes.c:249 msgid "" "categorization of the nature of the resource that is more specific than the " "file format" msgstr "" #: src/main/extractor_metatypes.c:250 msgid "library search path" msgstr "" #: src/main/extractor_metatypes.c:251 msgid "" "path in the file system to be considered when looking for required libraries" msgstr "" #: src/main/extractor_metatypes.c:252 msgid "library dependency" msgstr "" #: src/main/extractor_metatypes.c:253 msgid "name of a library that this file depends on" msgstr "" #: src/main/extractor_metatypes.c:255 src/main/extractor_metatypes.c:256 msgid "camera make" msgstr "" #: src/main/extractor_metatypes.c:257 src/main/extractor_metatypes.c:258 msgid "camera model" msgstr "" #: src/main/extractor_metatypes.c:259 src/main/extractor_metatypes.c:260 msgid "exposure" msgstr "" #: src/main/extractor_metatypes.c:261 src/main/extractor_metatypes.c:262 msgid "aperture" msgstr "" #: src/main/extractor_metatypes.c:263 src/main/extractor_metatypes.c:264 msgid "exposure bias" msgstr "" #: src/main/extractor_metatypes.c:266 src/main/extractor_metatypes.c:267 msgid "flash" msgstr "" #: src/main/extractor_metatypes.c:268 src/main/extractor_metatypes.c:269 msgid "flash bias" msgstr "" #: src/main/extractor_metatypes.c:270 src/main/extractor_metatypes.c:271 msgid "focal length" msgstr "" #: src/main/extractor_metatypes.c:272 src/main/extractor_metatypes.c:273 msgid "focal length 35mm" msgstr "" #: src/main/extractor_metatypes.c:274 src/main/extractor_metatypes.c:275 msgid "iso speed" msgstr "" #: src/main/extractor_metatypes.c:277 src/main/extractor_metatypes.c:278 msgid "exposure mode" msgstr "" #: src/main/extractor_metatypes.c:279 src/main/extractor_metatypes.c:280 msgid "metering mode" msgstr "" #: src/main/extractor_metatypes.c:281 src/main/extractor_metatypes.c:282 msgid "macro mode" msgstr "" #: src/main/extractor_metatypes.c:283 src/main/extractor_metatypes.c:284 msgid "image quality" msgstr "" #: src/main/extractor_metatypes.c:285 src/main/extractor_metatypes.c:286 msgid "white balance" msgstr "" #: src/main/extractor_metatypes.c:288 src/main/extractor_metatypes.c:289 msgid "orientation" msgstr "" #: src/main/extractor_metatypes.c:290 src/main/extractor_metatypes.c:291 msgid "magnification" msgstr "" #: src/main/extractor_metatypes.c:292 msgid "image dimensions" msgstr "" #: src/main/extractor_metatypes.c:293 msgid "size of the image in pixels (width times height)" msgstr "" #: src/main/extractor_metatypes.c:294 src/main/extractor_metatypes.c:295 msgid "produced by software" msgstr "" #: src/main/extractor_metatypes.c:299 msgid "thumbnail" msgstr "" #: src/main/extractor_metatypes.c:300 msgid "smaller version of the image for previewing" msgstr "" #: src/main/extractor_metatypes.c:302 msgid "image resolution" msgstr "" #: src/main/extractor_metatypes.c:303 msgid "resolution in dots per inch" msgstr "" #: src/main/extractor_metatypes.c:305 msgid "Originating entity" msgstr "" #: src/main/extractor_metatypes.c:306 msgid "character set" msgstr "" #: src/main/extractor_metatypes.c:307 msgid "character encoding used" msgstr "" #: src/main/extractor_metatypes.c:308 msgid "line count" msgstr "" #: src/main/extractor_metatypes.c:309 msgid "number of lines" msgstr "" #: src/main/extractor_metatypes.c:310 msgid "paragraph count" msgstr "" #: src/main/extractor_metatypes.c:311 msgid "number of paragraphs" msgstr "" #: src/main/extractor_metatypes.c:313 msgid "word count" msgstr "" #: src/main/extractor_metatypes.c:314 msgid "number of words" msgstr "" #: src/main/extractor_metatypes.c:315 msgid "character count" msgstr "" #: src/main/extractor_metatypes.c:316 msgid "number of characters" msgstr "" #: src/main/extractor_metatypes.c:317 src/main/extractor_metatypes.c:318 msgid "page orientation" msgstr "" #: src/main/extractor_metatypes.c:319 src/main/extractor_metatypes.c:320 msgid "paper size" msgstr "" #: src/main/extractor_metatypes.c:321 msgid "template" msgstr "" #: src/main/extractor_metatypes.c:322 msgid "template the document uses or is based on" msgstr "" #: src/main/extractor_metatypes.c:324 src/main/extractor_metatypes.c:325 msgid "company" msgstr "" #: src/main/extractor_metatypes.c:326 src/main/extractor_metatypes.c:327 msgid "manager" msgstr "" #: src/main/extractor_metatypes.c:328 src/main/extractor_metatypes.c:329 msgid "revision number" msgstr "" #: src/main/extractor_metatypes.c:330 msgid "duration" msgstr "" #: src/main/extractor_metatypes.c:331 msgid "play time for the medium" msgstr "" #: src/main/extractor_metatypes.c:332 msgid "album" msgstr "" #: src/main/extractor_metatypes.c:333 msgid "name of the album" msgstr "" #: src/main/extractor_metatypes.c:335 msgid "artist" msgstr "" #: src/main/extractor_metatypes.c:336 msgid "name of the artist or band" msgstr "" #: src/main/extractor_metatypes.c:337 src/main/extractor_metatypes.c:338 msgid "genre" msgstr "" #: src/main/extractor_metatypes.c:339 msgid "track number" msgstr "" #: src/main/extractor_metatypes.c:340 msgid "original number of the track on the distribution medium" msgstr "" #: src/main/extractor_metatypes.c:341 msgid "disk number" msgstr "" #: src/main/extractor_metatypes.c:342 msgid "number of the disk in a multi-disk (or volume) distribution" msgstr "" #: src/main/extractor_metatypes.c:343 msgid "performer" msgstr "" #: src/main/extractor_metatypes.c:344 msgid "" "The artist(s) who performed the work (conductor, orchestra, soloists, actor, " "etc.)" msgstr "" #: src/main/extractor_metatypes.c:346 msgid "contact" msgstr "" #: src/main/extractor_metatypes.c:347 msgid "Contact information for the creator or distributor" msgstr "" #: src/main/extractor_metatypes.c:348 msgid "song version" msgstr "" #: src/main/extractor_metatypes.c:349 msgid "name of the version of the song (i.e. remix information)" msgstr "" #: src/main/extractor_metatypes.c:350 msgid "picture" msgstr "" #: src/main/extractor_metatypes.c:351 msgid "associated misc. picture" msgstr "" #: src/main/extractor_metatypes.c:352 msgid "cover picture" msgstr "" #: src/main/extractor_metatypes.c:353 msgid "picture of the cover of the distribution medium" msgstr "" #: src/main/extractor_metatypes.c:354 msgid "contributor picture" msgstr "" #: src/main/extractor_metatypes.c:355 msgid "picture of one of the contributors" msgstr "" #: src/main/extractor_metatypes.c:357 msgid "event picture" msgstr "" #: src/main/extractor_metatypes.c:358 msgid "picture of an associated event" msgstr "" #: src/main/extractor_metatypes.c:359 msgid "logo" msgstr "" #: src/main/extractor_metatypes.c:360 msgid "logo of an associated organization" msgstr "" #: src/main/extractor_metatypes.c:361 msgid "broadcast television system" msgstr "" #: src/main/extractor_metatypes.c:362 msgid "name of the television system for which the data is coded" msgstr "" #: src/main/extractor_metatypes.c:363 msgid "source device" msgstr "" #: src/main/extractor_metatypes.c:364 msgid "device used to create the object" msgstr "" #: src/main/extractor_metatypes.c:365 msgid "disclaimer" msgstr "" #: src/main/extractor_metatypes.c:366 msgid "legal disclaimer" msgstr "" #: src/main/extractor_metatypes.c:368 msgid "warning" msgstr "" #: src/main/extractor_metatypes.c:369 msgid "warning about the nature of the content" msgstr "" #: src/main/extractor_metatypes.c:370 msgid "page order" msgstr "" #: src/main/extractor_metatypes.c:371 msgid "order of the pages" msgstr "" #: src/main/extractor_metatypes.c:372 msgid "writer" msgstr "" #: src/main/extractor_metatypes.c:373 msgid "contributing writer" msgstr "" #: src/main/extractor_metatypes.c:374 src/main/extractor_metatypes.c:375 msgid "product version" msgstr "" #: src/main/extractor_metatypes.c:376 msgid "contributor" msgstr "" #: src/main/extractor_metatypes.c:377 msgid "name of a contributor" msgstr "" #: src/main/extractor_metatypes.c:379 msgid "movie director" msgstr "" #: src/main/extractor_metatypes.c:380 msgid "name of the director" msgstr "" #: src/main/extractor_metatypes.c:381 msgid "network" msgstr "" #: src/main/extractor_metatypes.c:382 msgid "name of the broadcasting network or station" msgstr "" #: src/main/extractor_metatypes.c:383 msgid "show" msgstr "" #: src/main/extractor_metatypes.c:384 msgid "name of the show" msgstr "" #: src/main/extractor_metatypes.c:385 msgid "chapter name" msgstr "" #: src/main/extractor_metatypes.c:386 msgid "name of the chapter" msgstr "" #: src/main/extractor_metatypes.c:387 msgid "song count" msgstr "" #: src/main/extractor_metatypes.c:388 msgid "number of songs" msgstr "" #: src/main/extractor_metatypes.c:390 msgid "starting song" msgstr "" #: src/main/extractor_metatypes.c:391 msgid "number of the first song to play" msgstr "" #: src/main/extractor_metatypes.c:392 msgid "play counter" msgstr "" #: src/main/extractor_metatypes.c:393 msgid "number of times the media has been played" msgstr "" #: src/main/extractor_metatypes.c:394 msgid "conductor" msgstr "" #: src/main/extractor_metatypes.c:395 msgid "name of the conductor" msgstr "" #: src/main/extractor_metatypes.c:396 msgid "interpretation" msgstr "" #: src/main/extractor_metatypes.c:397 msgid "" "information about the people behind interpretations of an existing piece" msgstr "" #: src/main/extractor_metatypes.c:398 msgid "composer" msgstr "" #: src/main/extractor_metatypes.c:399 msgid "name of the composer" msgstr "" #: src/main/extractor_metatypes.c:401 src/main/extractor_metatypes.c:402 msgid "beats per minute" msgstr "" #: src/main/extractor_metatypes.c:403 msgid "encoded by" msgstr "" #: src/main/extractor_metatypes.c:404 msgid "name of person or organization that encoded the file" msgstr "" #: src/main/extractor_metatypes.c:405 msgid "original title" msgstr "" #: src/main/extractor_metatypes.c:406 msgid "title of the original work" msgstr "" #: src/main/extractor_metatypes.c:407 msgid "original artist" msgstr "" #: src/main/extractor_metatypes.c:408 msgid "name of the original artist" msgstr "" #: src/main/extractor_metatypes.c:409 msgid "original writer" msgstr "" #: src/main/extractor_metatypes.c:410 msgid "name of the original lyricist or writer" msgstr "" #: src/main/extractor_metatypes.c:412 msgid "original release year" msgstr "" #: src/main/extractor_metatypes.c:413 msgid "year of the original release" msgstr "" #: src/main/extractor_metatypes.c:414 msgid "original performer" msgstr "" #: src/main/extractor_metatypes.c:415 msgid "name of the original performer" msgstr "" #: src/main/extractor_metatypes.c:416 msgid "lyrics" msgstr "" #: src/main/extractor_metatypes.c:417 msgid "lyrics of the song or text description of vocal activities" msgstr "" #: src/main/extractor_metatypes.c:418 msgid "popularity" msgstr "" #: src/main/extractor_metatypes.c:419 msgid "information about the file's popularity" msgstr "" #: src/main/extractor_metatypes.c:420 msgid "licensee" msgstr "" #: src/main/extractor_metatypes.c:421 msgid "name of the owner or licensee of the file" msgstr "" #: src/main/extractor_metatypes.c:423 msgid "musician credit list" msgstr "" #: src/main/extractor_metatypes.c:424 msgid "names of contributing musicians" msgstr "" #: src/main/extractor_metatypes.c:425 msgid "mood" msgstr "" #: src/main/extractor_metatypes.c:426 msgid "keywords reflecting the mood of the piece" msgstr "" #: src/main/extractor_metatypes.c:427 msgid "subtitle" msgstr "" #: src/main/extractor_metatypes.c:428 msgid "subtitle of this part" msgstr "" #: src/main/extractor_metatypes.c:429 msgid "display type" msgstr "" #: src/main/extractor_metatypes.c:430 msgid "what rendering method should be used to display this item" msgstr "" #: src/main/extractor_metatypes.c:431 msgid "full data" msgstr "" #: src/main/extractor_metatypes.c:432 msgid "" "entry that contains the full, original binary data (not really meta data)" msgstr "" #: src/main/extractor_metatypes.c:434 msgid "rating" msgstr "" #: src/main/extractor_metatypes.c:435 msgid "rating of the content" msgstr "" #: src/main/extractor_metatypes.c:436 src/main/extractor_metatypes.c:437 msgid "organization" msgstr "" #: src/main/extractor_metatypes.c:438 src/main/extractor_metatypes.c:439 msgid "ripper" msgstr "" #: src/main/extractor_metatypes.c:440 src/main/extractor_metatypes.c:441 msgid "producer" msgstr "" #: src/main/extractor_metatypes.c:442 msgid "group" msgstr "" #: src/main/extractor_metatypes.c:443 msgid "name of the group or band" msgstr "" #: src/main/extractor_metatypes.c:445 msgid "original filename" msgstr "" #: src/main/extractor_metatypes.c:446 msgid "name of the original file (reserved for GNUnet)" msgstr "" #: src/main/extractor_metatypes.c:447 msgid "disc count" msgstr "" #: src/main/extractor_metatypes.c:448 msgid "count of discs inside collection this disc belongs to" msgstr "" #: src/main/extractor_metatypes.c:449 msgid "codec" msgstr "" #: src/main/extractor_metatypes.c:450 msgid "codec the data is stored in" msgstr "" #: src/main/extractor_metatypes.c:451 msgid "video codec" msgstr "" #: src/main/extractor_metatypes.c:452 msgid "codec the video data is stored in" msgstr "" #: src/main/extractor_metatypes.c:453 msgid "audio codec" msgstr "" #: src/main/extractor_metatypes.c:454 msgid "codec the audio data is stored in" msgstr "" #: src/main/extractor_metatypes.c:456 msgid "subtitle codec" msgstr "" #: src/main/extractor_metatypes.c:457 msgid "codec/format the subtitle data is stored in" msgstr "" #: src/main/extractor_metatypes.c:458 msgid "container format" msgstr "" #: src/main/extractor_metatypes.c:459 msgid "container format the data is stored in" msgstr "" #: src/main/extractor_metatypes.c:460 msgid "bitrate" msgstr "" #: src/main/extractor_metatypes.c:461 msgid "exact or average bitrate in bits/s" msgstr "" #: src/main/extractor_metatypes.c:462 msgid "nominal bitrate" msgstr "" #: src/main/extractor_metatypes.c:463 msgid "" "nominal bitrate in bits/s. The actual bitrate might be different from this " "target bitrate." msgstr "" #: src/main/extractor_metatypes.c:464 msgid "minimum bitrate" msgstr "" #: src/main/extractor_metatypes.c:465 msgid "minimum bitrate in bits/s" msgstr "" #: src/main/extractor_metatypes.c:467 msgid "maximum bitrate" msgstr "" #: src/main/extractor_metatypes.c:468 msgid "maximum bitrate in bits/s" msgstr "" #: src/main/extractor_metatypes.c:469 msgid "serial" msgstr "" #: src/main/extractor_metatypes.c:470 msgid "serial number of track" msgstr "" #: src/main/extractor_metatypes.c:471 msgid "encoder" msgstr "" #: src/main/extractor_metatypes.c:472 msgid "encoder used to encode this stream" msgstr "" #: src/main/extractor_metatypes.c:473 msgid "encoder version" msgstr "" #: src/main/extractor_metatypes.c:474 msgid "version of the encoder used to encode this stream" msgstr "" #: src/main/extractor_metatypes.c:475 msgid "track gain" msgstr "" #: src/main/extractor_metatypes.c:476 msgid "track gain in db" msgstr "" #: src/main/extractor_metatypes.c:478 msgid "track peak" msgstr "" #: src/main/extractor_metatypes.c:479 msgid "peak of the track" msgstr "" #: src/main/extractor_metatypes.c:480 msgid "album gain" msgstr "" #: src/main/extractor_metatypes.c:481 msgid "album gain in db" msgstr "" #: src/main/extractor_metatypes.c:482 msgid "album peak" msgstr "" #: src/main/extractor_metatypes.c:483 msgid "peak of the album" msgstr "" #: src/main/extractor_metatypes.c:484 msgid "reference level" msgstr "" #: src/main/extractor_metatypes.c:485 msgid "reference level of track and album gain values" msgstr "" #: src/main/extractor_metatypes.c:486 msgid "location name" msgstr "" #: src/main/extractor_metatypes.c:487 msgid "" "human readable descriptive location of where the media has been recorded or " "produced" msgstr "" #: src/main/extractor_metatypes.c:489 msgid "location elevation" msgstr "" #: src/main/extractor_metatypes.c:490 msgid "" "geo elevation of where the media has been recorded or produced in meters " "according to WGS84 (zero is average sea level)" msgstr "" #: src/main/extractor_metatypes.c:491 msgid "location horizontal error" msgstr "" #: src/main/extractor_metatypes.c:492 msgid "represents the expected error on the horizontal positioning in meters" msgstr "" #: src/main/extractor_metatypes.c:493 msgid "location movement speed" msgstr "" #: src/main/extractor_metatypes.c:494 msgid "" "speed of the capturing device when performing the capture. Represented in m/s" msgstr "" #: src/main/extractor_metatypes.c:495 msgid "location movement direction" msgstr "" #: src/main/extractor_metatypes.c:496 msgid "" "indicates the movement direction of the device performing the capture of a " "media. It is represented as degrees in floating point representation, 0 " "means the geographic north, and increases clockwise" msgstr "" #: src/main/extractor_metatypes.c:497 msgid "location capture direction" msgstr "" #: src/main/extractor_metatypes.c:498 msgid "" "indicates the direction the device is pointing to when capturing a media. It " "is represented as degrees in floating point representation, 0 means the " "geographic north, and increases clockwise" msgstr "" #: src/main/extractor_metatypes.c:500 msgid "show episode number" msgstr "" #: src/main/extractor_metatypes.c:501 msgid "number of the episode within a season/show" msgstr "" #: src/main/extractor_metatypes.c:502 msgid "show season number" msgstr "" #: src/main/extractor_metatypes.c:503 msgid "number of the season of a show/series" msgstr "" #: src/main/extractor_metatypes.c:504 msgid "grouping" msgstr "" #: src/main/extractor_metatypes.c:505 msgid "" "groups together media that are related and spans multiple tracks. An example " "are multiple pieces of a concerto" msgstr "" #: src/main/extractor_metatypes.c:506 msgid "device manufacturer" msgstr "" #: src/main/extractor_metatypes.c:507 msgid "manufacturer of the device used to create the media" msgstr "" #: src/main/extractor_metatypes.c:508 msgid "device model" msgstr "" #: src/main/extractor_metatypes.c:509 msgid "model of the device used to create the media" msgstr "" #: src/main/extractor_metatypes.c:511 msgid "audio language" msgstr "" #: src/main/extractor_metatypes.c:512 msgid "language of the audio track" msgstr "" #: src/main/extractor_metatypes.c:513 msgid "channels" msgstr "" #: src/main/extractor_metatypes.c:514 msgid "number of audio channels" msgstr "" #: src/main/extractor_metatypes.c:515 msgid "sample rate" msgstr "" #: src/main/extractor_metatypes.c:516 msgid "sample rate of the audio track" msgstr "" #: src/main/extractor_metatypes.c:517 msgid "audio depth" msgstr "" #: src/main/extractor_metatypes.c:518 msgid "number of bits per audio sample" msgstr "" #: src/main/extractor_metatypes.c:519 msgid "audio bitrate" msgstr "" #: src/main/extractor_metatypes.c:520 msgid "bitrate of the audio track" msgstr "" #: src/main/extractor_metatypes.c:522 src/main/extractor_metatypes.c:523 msgid "maximum audio bitrate" msgstr "" #: src/main/extractor_metatypes.c:524 msgid "video dimensions" msgstr "" #: src/main/extractor_metatypes.c:525 msgid "width and height of the video track (WxH)" msgstr "" #: src/main/extractor_metatypes.c:526 msgid "video depth" msgstr "" #: src/main/extractor_metatypes.c:527 msgid "numbers of bits per pixel" msgstr "" #: src/main/extractor_metatypes.c:528 msgid "frame rate" msgstr "" #: src/main/extractor_metatypes.c:529 msgid "number of frames per second (as D/N or floating point)" msgstr "" #: src/main/extractor_metatypes.c:530 msgid "pixel aspect ratio" msgstr "" #: src/main/extractor_metatypes.c:531 msgid "pixel aspect ratio (as D/N)" msgstr "" #: src/main/extractor_metatypes.c:533 src/main/extractor_metatypes.c:534 msgid "video bitrate" msgstr "" #: src/main/extractor_metatypes.c:535 src/main/extractor_metatypes.c:536 msgid "maximum video bitrate" msgstr "" #: src/main/extractor_metatypes.c:537 msgid "subtitle language" msgstr "" #: src/main/extractor_metatypes.c:538 msgid "language of the subtitle track" msgstr "" #: src/main/extractor_metatypes.c:539 msgid "video language" msgstr "" #: src/main/extractor_metatypes.c:540 msgid "language of the video track" msgstr "" #: src/main/extractor_metatypes.c:541 msgid "table of contents" msgstr "" #: src/main/extractor_metatypes.c:542 msgid "chapters, contents or bookmarks (in xml format)" msgstr "" #: src/main/extractor_metatypes.c:544 msgid "video duration" msgstr "" #: src/main/extractor_metatypes.c:545 msgid "duration of a video stream" msgstr "" #: src/main/extractor_metatypes.c:546 msgid "audio duration" msgstr "" #: src/main/extractor_metatypes.c:547 msgid "duration of an audio stream" msgstr "" #: src/main/extractor_metatypes.c:548 msgid "subtitle duration" msgstr "" #: src/main/extractor_metatypes.c:549 msgid "duration of a subtitle stream" msgstr "" #: src/main/extractor_metatypes.c:551 msgid "audio preview" msgstr "" #: src/main/extractor_metatypes.c:552 msgid "a preview of the file audio stream" msgstr "" #: src/main/extractor_metatypes.c:554 src/main/extractor_metatypes.c:555 msgid "last" msgstr "" #: src/main/getopt.c:684 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "" #: src/main/getopt.c:709 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "" #: src/main/getopt.c:715 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "" #: src/main/getopt.c:732 src/main/getopt.c:903 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "" #: src/main/getopt.c:761 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "" #: src/main/getopt.c:765 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "" #: src/main/getopt.c:791 #, c-format msgid "%s: illegal option -- %c\n" msgstr "" #: src/main/getopt.c:793 #, c-format msgid "%s: invalid option -- %c\n" msgstr "" #: src/main/getopt.c:822 src/main/getopt.c:952 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "" #: src/main/getopt.c:870 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "" #: src/main/getopt.c:888 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "" #: src/plugins/flac_extractor.c:322 #, c-format msgid "%u Hz, %u channels" msgstr "" #: src/plugins/man_extractor.c:215 msgid "Commands" msgstr "" #: src/plugins/man_extractor.c:219 msgid "System calls" msgstr "" #: src/plugins/man_extractor.c:223 msgid "Library calls" msgstr "" #: src/plugins/man_extractor.c:227 msgid "Special files" msgstr "" #: src/plugins/man_extractor.c:231 msgid "File formats and conventions" msgstr "" #: src/plugins/man_extractor.c:235 msgid "Games" msgstr "" #: src/plugins/man_extractor.c:239 msgid "Conventions and miscellaneous" msgstr "" #: src/plugins/man_extractor.c:243 msgid "System management commands" msgstr "" #: src/plugins/man_extractor.c:247 msgid "Kernel routines" msgstr "" #: src/plugins/ole2_extractor.c:387 msgid "No Proofing" msgstr "" #: src/plugins/ole2_extractor.c:395 msgid "Traditional Chinese" msgstr "" #: src/plugins/ole2_extractor.c:397 msgid "Simplified Chinese" msgstr "" #: src/plugins/ole2_extractor.c:405 msgid "Swiss German" msgstr "" #: src/plugins/ole2_extractor.c:409 msgid "U.S. English" msgstr "" #: src/plugins/ole2_extractor.c:411 msgid "U.K. English" msgstr "" #: src/plugins/ole2_extractor.c:413 msgid "Australian English" msgstr "" #: src/plugins/ole2_extractor.c:415 msgid "Castilian Spanish" msgstr "" #: src/plugins/ole2_extractor.c:417 msgid "Mexican Spanish" msgstr "" #: src/plugins/ole2_extractor.c:423 msgid "Belgian French" msgstr "" #: src/plugins/ole2_extractor.c:425 msgid "Canadian French" msgstr "" #: src/plugins/ole2_extractor.c:427 msgid "Swiss French" msgstr "" #: src/plugins/ole2_extractor.c:437 msgid "Swiss Italian" msgstr "" #: src/plugins/ole2_extractor.c:445 msgid "Belgian Dutch" msgstr "" #: src/plugins/ole2_extractor.c:447 msgid "Norwegian Bokmal" msgstr "" #: src/plugins/ole2_extractor.c:457 msgid "Rhaeto-Romanic" msgstr "" #: src/plugins/ole2_extractor.c:463 msgid "Croato-Serbian (Latin)" msgstr "" #: src/plugins/ole2_extractor.c:465 msgid "Serbo-Croatian (Cyrillic)" msgstr "" #: src/plugins/ole2_extractor.c:493 msgid "Farsi" msgstr "" #: src/plugins/ole2_extractor.c:578 #, c-format msgid "Revision #%u: Author `%s' worked on `%s'" msgstr "" #: src/plugins/riff_extractor.c:145 #, c-format msgid "codec: %s, %u fps, %u ms" msgstr "" #: src/plugins/wav_extractor.c:120 msgid "mono" msgstr "" #: src/plugins/wav_extractor.c:120 msgid "stereo" msgstr "" libextractor-1.3/po/uk.gmo0000644000175000017500000013640512255661613012561 000000000000004Lh(i((((,((%),A)-n) )&))*$*.7*Kf** ****+2 +@+^+u++++ ++ ++ ,3, D,Le,/,,, ---$-(-1-(A- j-v--(--- -- -- . .'. :. H. U. b. p.}.R.. . ///!/%0/CV/// // /N/0(0E0L0 e0 s0 000 00 0 000 111 41 A1 N1Y1 u1 1 1W1(12 #202/?2o22 222!22!2+3<3U3]3w33 3333&33 34 45%4[4 c4 p4~4 4 44>44"565YU5 555 55 6 6 @6 K6 V6 b6 o6%|6'6/667!7<7X7p71777 77"7 8I8 f8"t88 8 88 8A8&9 ,9 79D9V9]9 l9 w9&99w9&:n,:2:T:#; 4;B;S;<<'<H=&c==R=!=%>4> C> P> Z>g>-v>>>)>>> ?*?F?]? b? o?}????? ??&?@*@=@W@s@ @@"@@:@ A $A /A =AHA3PAAAAA A AAA B,%BRBdByB@~BB/BBCC+.C4ZC%CCOCD2D+HDtD.DDD1DE)EEE_EvE/E'EE) F+3F_FuF.FF9F, G88GqGGGZG,H1HJHjHH6HHHH;I*@I kI%I)III0J7J JJ WJcJsJ7JJJJJ KK 9KFK&VKF}KDK3 L"=L `LAkL LL L LLLLRCRWR=jR0R+RS S !S.S 5S$CS*hSSMS2S/,T \TjTqTyT TTTTTT TTT U U8UHU)QU {UUUU%UUVV!+V MVXV iV vV1VV!VV> WJW RW_WoWvW1W'W-W X +X 7XCXTXcX(rXX'X9X Y)Y =YHY>OYYY+[-[4\2Q\H\7\D]HJ]O]:]C^9b^9^^D^6_/_-`+G`'s`)``[`0a2Ia2|a a/a*ab+bAbYbqbHzb7bbnc d0%d!Vdxd |dd d+dJd e!'eIeMieee ee ef f2f#Ffjf+f'f+f g2*g[]g'g)g- h 9h Fh!Shuhii i#i$j*j@jjPjIk3^k*kkkk. l*;lfll7l llm*-m;Xmmmm:mn'3n#[nvntn koxooJo#o:pRp np ypAp2p<pW6q#qq&qqqr'!rIr!XrRzr/r!rs6=s_ts sss# t.tJtdtpwt.tTu;luu7vdLvv!vvTvOw)owwwwEwP xeqxx4x6!y=Xy=y!ySy.Jz(yzzzmz%E{rk{{\{S|h||5||i| X}e}!}}=} }}~"~h<~~~ }kJ!Rt%fW/5F$)k$9SFԆ$,F``ׇTFAO4<ƈ'.#V?z0(%8:XT6#=C@@‹;( dEoK+BiSAANAL!ݎ ?LWe" !-OsX̐iېE,T-Qh[jƒ9>דF0 wF,D"Z=}W:ANS>!#EoaMїpYP4; p?}@=ؚI#`6q-!MoBRҜ@%>f2؝@]5ʞ-ߞ( W6-(0;Pm n0jj cu#٢om%!գ!vϤ0/7E5}\)(:c'|0?&p1jɧ4#ʨ (@^z̩#ݩ' )6PQ*|{?3Csͬ ! f,)E  6OR&(ڮTVX_<Ll?D$8{]^ٱR8  #ʲ'%M'i -:)' Q~^ݴ%M d7o,Ե0D)b*׶B&6>]Dat+.˸|Nweƹ*,Wl!κI,.Edtٻ9-Iga;ɼSs >`q,"e?t{ (y.x4K9!*FVz5E G=T&Xek[+-w jr,A ~iDZJ Klhh1|VDluCr/M0c}S?3NWp!/\OU7zd1=iR;]O6I%JbP)Rmbay32]Q #%'q4QMABZm@ P#wa2_k${WXpEj+_Yg@f5tLH\$~0<7B T&Ho<I[;)Fo`Cvx'c(8Lv|g f }6UuN-n^n*G9.ds^:8: >"Y%s - (binary, %u bytes) %s - (unknown, %u bytes) %s: illegal option -- %c %s: invalid option -- %c %s: option `%c%s' doesn't allow an argument %s: option `%s' is ambiguous %s: option `%s' requires an argument %s: option `--%s' doesn't allow an argument %s: option `-W %s' doesn't allow an argument %s: option `-W %s' is ambiguous %s: option requires an argument -- %c %s: unrecognized option `%c%s' %s: unrecognized option `--%s' %u Hz, %u channelsAddress of the publisher (often only the city)Arguments mandatory for long options are also mandatory for short options. Australian EnglishBelgian DutchBelgian FrenchCanadian FrenchCastilian SpanishCommandsContact information for the creator or distributorConventions and miscellaneousCroato-Serbian (Latin)Extract metadata from files.FarsiFile formats and conventionsFound by `%s' plugin: GPS latitudeGPS latitude refGPS longitudeGPS longitude refGamesISO 2-letter country code for the country of originISRC number identifying the workIllegal combination of options, cannot combine multiple styles of printing. Initialization of plugin mechanism failed: %s! Kernel routinesKeywords for file %s: Library callsMD4MD4 hashMD5MD5 hashMexican SpanishName of the entity holding the copyrightNo ProofingNorwegian BokmalOriginating entityRevision #%u: Author `%s' worked on `%s'Rhaeto-RomanicRipeMD150 hashRipeMD160SHA-0SHA-0 hashSHA-1SHA-1 hashSerbo-Croatian (Cyrillic)Simplified ChineseSpecial filesSwiss FrenchSwiss GermanSwiss ItalianSystem callsSystem management commandsThe artist(s) who performed the work (conductor, orchestra, soloists, actor, etc.)Traditional ChineseU.K. EnglishU.S. EnglishURIURLUsage: %s %s Use --help to get a list of options. You must specify an argument for the `%s' option (option ignored). abstractalbumalbum gainalbum gain in dbalbum peakambiguous date (could specify creation time, modification time or access time)apertureapplicable copyright licenseartistassociated misc. pictureaudio bitrateaudio codecaudio depthaudio durationaudio languageauthor emailauthor institutionauthor namebe verbosebeats per minutebibtex entry typebibtex eprintbitratebitrate of the audio trackbook chapterbook editionbook titlebroadcast television systembuild hostcamera makecamera modelcategorization of the nature of the resource that is more specific than the file formatcategory the software package belongs tochannelschapter namechapter numberchapters, contents or bookmarks (in xml format)character countcharacter encoding usedcharacter setcitycodeccodec the audio data is stored incodec the data is stored incodec the video data is stored incodec/format the subtitle data is stored incodec: %s, %u fps, %u mscommentcomment about the contentcompanycomposerconductorconflicting packagescontactcontainer formatcontainer format the data is stored incontributing writercontributorcontributor picturecopyrightcount of discs inside collection this disc belongs tocountrycountry codecover picturecreated by softwarecreation datecreation timecreatordate of publication (or, if unpublished, the date of creation)date the document was createddate the document was last printeddate the document was modifiedday of publication (or, if unpublished, the day of creation), relative to the given monthdependenciesdependency that must be satisfied before installationdescriptiondevice manufacturerdevice modeldevice used to create the objectdisc countdisclaimerdisk numberdisplay typedistributiondistribution the package is a part ofdo not print keywords of the given TYPEdo not use the default set of extractor pluginsdurationduration of a subtitle streamduration of a video streamduration of an audio streame-mail of the author(s)editing cyclesedition of the book (or book containing the work)embedded file sizeembedded filenameencoded byencoderencoder used to encode this streamencoder versionentry that contains the full, original binary data (not really meta data)event pictureexact or average bitrate in bits/sexposureexposure biasexposure modeextract [OPTIONS] [FILENAME]*file typefilename that was embedded (not necessarily the current filename)flashflash biasfocal lengthfocal length 35mmformatformat versionframe ratefull datafunctionality provided by this packagegenregeo elevation of where the media has been recorded or produced in meters according to WGS84 (zero is average sea level)groupgroups together media that are related and spans multiple tracks. An example are multiple pieces of a concertohardware architecture the contents can be used forhuman readable descriptive location of where the media has been recorded or producedimage dimensionsimage qualityimage resolutionindicates the direction the device is pointing to when capturing a media. It is represented as degrees in floating point representation, 0 means the geographic north, and increases clockwiseindicates the movement direction of the device performing the capture of a media. It is represented as degrees in floating point representation, 0 means the geographic north, and increases clockwiseinformation about rightsinformation about the file's popularityinformation about the people behind interpretations of an existing pieceinformation about the revision historyinstalled sizeinstitution that was involved in the publishing, but not necessarily the publisherinstitution the author worked forinternational standard recording codeinterpretationis essentialiso speedjournal namejournal numberjournal or magazine the work was published injournal volumekeywordskeywords reflecting the mood of the piecelanguagelanguage of the audio tracklanguage of the subtitle tracklanguage of the video tracklanguage the work useslastlast printedlast saved bylegal disclaimerlibrary dependencylibrary search pathlicenselicenseeline countlist all keyword typesload an extractor plugin named LIBRARYlocation capture directionlocation elevationlocation horizontal errorlocation movement directionlocation movement speedlocation namelogologo of an associated organizationlyricslyrics of the song or text description of vocal activitiesmachine the package was build onmacro modemagnificationmaintainermanagermanufacturer of the device used to create the mediamaximum audio bitratemaximum bitratemaximum bitrate in bits/smaximum video bitratemetering modemime typemimetypeminimum bitrateminimum bitrate in bits/smodel of the device used to create the mediamodification datemodified by softwaremonomonth of publication (or, if unpublished, the month of creation)moodmore specific location of the geographic originmovie directormusician credit listname of a contributorname of a library that this file depends onname of person or organization that encoded the filename of software making modificationsname of the albumname of the architecture, operating system and distribution this package is forname of the artist or bandname of the author(s)name of the broadcasting network or stationname of the chaptername of the city where the document originatedname of the composername of the conductorname of the country where the document originatedname of the directorname of the document formatname of the group or bandname of the maintainername of the original artistname of the original file (reserved for GNUnet)name of the original lyricist or writername of the original performername of the owner or licensee of the filename of the person who created the documentname of the publishername of the showname of the software that created the documentname of the software vendorname of the television system for which the data is codedname of the user who saved the document lastname of the version of the song (i.e. remix information)names of contributing musiciansnetworknominal bitratenominal bitrate in bits/s. The actual bitrate might be different from this target bitrate.number of a journal, magazine or tech-reportnumber of audio channelsnumber of bits per audio samplenumber of charactersnumber of editing cyclesnumber of frames per second (as D/N or floating point)number of linesnumber of paragraphsnumber of songsnumber of the disk in a multi-disk (or volume) distributionnumber of the episode within a season/shownumber of the first song to playnumber of the season of a show/seriesnumber of times the media has been playednumber of wordsnumbers of bits per pixeloperating system for which this package was madeorder of the pagesorganizationorientationoriginal artistoriginal filenameoriginal number of the track on the distribution mediumoriginal performeroriginal release yearoriginal source codeoriginal titleoriginal writerpackage is marked as essentialpackage namepackage versionpackages made obsolete by this packagepackages recommended for installation in conjunction with this packagepackages suggested for installation in conjunction with this packagepackages that cannot be installed with this packagepackages this package depends uponpage countpage numbers of the publication in the respective journal or bookpage orderpage orientationpage rangepaper sizeparagraph countpath in the file system to be considered when looking for required librariespeak of the albumpeak of the trackperformerpicturepicture of an associated eventpicture of one of the contributorspicture of the cover of the distribution mediumpixel aspect ratiopixel aspect ratio (as D/N)play counterplay time for the mediumpopularitypre-dependencyprint only keywords of the given TYPE (use -L to get a list)print output in bibtex formatprint the version numberprint this helppriority for promoting the release to productionproduce grep-friendly output (all results on one line per file)produced by softwareproducerproduct versionprovidespublication datepublication daypublication monthpublication seriespublication typepublication yearpublisherpublisher's addresspublishing institutionratingrating of the contentread data from file into memory and extract from memoryrecommendationsreference levelreference level of track and album gain valuesreplaced packagesrepresents the expected error on the horizontal positioning in metersreservedreserved value, do not useresolution in dots per inchresource typerevision historyrevision numberrightsripperrun plugins in-process (simplifies debugging)sample ratesample rate of the audio tracksectionserialserial number of trackseries of books the book was published inshowshow episode numbershow season numbersize of the contents of the container as embedded in the filesize of the image in pixels (width times height)smaller version of the image for previewingsoftware versionsong countsong versionsourcesource devicespace consumption after installationspecification of an electronic publicationspecifics are not knownspeed of the capturing device when performing the capture. Represented in m/sstandard Macintosh Finder file creator informationstandard Macintosh Finder file type informationstarting songstereosubjectsubject mattersublocationsubtitlesubtitle codecsubtitle durationsubtitle languagesubtitle of this partsuggestionssummarytable of contentstarget architecturetarget operating systemtarget platformtemplatetemplate the document uses or is based onthumbnailtime and date of creationtime spent editing the documenttitletitle of the book containing the worktitle of the original worktitle of the worktotal editing timetotal number of pages of the worktrack gaintrack gain in dbtrack numbertrack peaktype of the publication for bibTeX bibliographiestype of the tech-reportunique identifier for the packageuniversal resource identifieruniversal resource location (where the work is made available)unknownunknown dateupload priorityvendorversion of the document formatversion of the encoder used to encode this streamversion of the software and its packageversion of the software contained in the filevideo bitratevideo codecvideo depthvideo dimensionsvideo durationvideo languagevolume of a journal or multi-volume bookwarningwarning about the nature of the contentwhat rendering method should be used to display this itemwhite balancewidth and height of the video track (WxH)word countwriteryear of publication (or, if unpublished, the year of creation)year of the original releaseProject-Id-Version: libextractor 1.0.0-pre1 Report-Msgid-Bugs-To: libextractor@gnu.org POT-Creation-Date: 2013-12-22 23:11+0100 PO-Revision-Date: 2012-09-05 22:36+0300 Last-Translator: Yuri Chornoivan Language-Team: Ukrainian Language: uk MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Generator: Lokalize 1.5 Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2); %s — (бінарний, %u байтів) %s — (невідомий, %u байтів) %s: неправильний параметр -- %c %s: некоректний параметр -- %c %s: параметр «%c%s» не може мати аргументу %s: параметр «%s» неоднозначний %s: параметру «%s» необхідний аргумент %s: параметр «--%s» не може мати аргументу %s: параметр «-W %s» не повинен мати аргументу %s: параметр «-W %s» неоднозначний %s: параметру необхідний аргумент -- %c %s: нерозпізнаний параметр «%c%s» %s: нерозпізнаний параметр «--%s» %u Гц, %u каналівАдреса видавництва (часто лише місто)Обов’язкові аргументи для довгих форм запису параметрів є обов’язковими і для скорочених форм. Австралійська англійськаБельгійська голландськаБельгійська французькаКанадська французькаКастильська іспанськаКомандиДані щодо зв’язку з автором або розповсюджувачемУгоди та іншеХорвато-сербська (латиниця)Видобути метадані з файлів.ФарсіФормати файлів та правилаЗнайдено додатком «%s»: широта за GPSширота за GPSдовгота за GPSдовгота за GPSІгриДволітерний код країни походження за ISOШифр ISRC, що ідентифікує роботуНекоректне поєднання параметрів, не можна визначати декілька стилів виведення даних. Помилка під час спроби ініціалізації механізму додатків: %s! Процедури ядраКлючові слова для файла %s: Виклики бібліотекMD4хеш MD4MD5хеш MD5Мексиканська іспанськаНазва або ім’я власника авторських правБез перевіркиНорвезька (бокмал)Запис походженняМодифікація %u: автор «%s», співробітник «%s»Ретороманськахеш RipeMD150RipeMD160SHA-0хеш SHA-0SHA-1хеш SHA-1Сербо-хорватська (кирилиця)Спрощена китайськаСпеціальні файлиШвейцарська французькаШвейцарська німецькаШвейцарська італійськаСистемні викликиКоманди керування системоюВиконавець твору (диригент, оркестр, солісти тощо)Традиційна китайськаБританська англійськаАмериканська англійськаадресаадресаКористування: %s %s Скористайтеся параметром --help для отримання списку можливих параметрів командного рядка. Параметр «%s» можна використовувати лише з додатковим аргументом (параметр проігноровано). анотаціяальбомпідсилення альбомурівень альбому, у дБпік альбомунеоднозначні дані (можуть відповідати часу створення, часу внесення змін або часу доступу)апертураназва ліцензії, яка захищає авторські прававиконавецьякесь пов’язане зображеннябітова швидкість звукуаудіокодекглибина звукутривалість звукумова звукового супроводуадреса ел. пошти автораустанова автораім’я авторарежим з докладних повідомленьтактів за хвилинутип запису bibtexел. відбиток bibtexщільність потоку бітівбітова швидкість звукових данихглава книгиредакція книгиназва книгисистема телевізійного мовленнявузол збираннявиробник фотоапаратамодель фотоапаратакатегорія, до якої належить ресурс, специфічніша за формат файлакатегорія, до якої належить пакунок з програмним забезпеченнямканалиназва частининомер главичастини, вміст або закладки (у форматі xml)кількість символіввикористане кодування символівнабір символівмістокодеккодек, яким закодовані звукові данікодек, яким закодовано данікодек, яким закодовано відеоданікодек або формат, у якому зберігаються субтитрикодек: %s, %u кд/с, %u мскоментаркоментар щодо вмістукомпаніякомпозитордиригентконфліктуючі пакункиконтактформат контейнераформат контейнера, у якому зберігаються даніавтор тексту або сценаріюучасник створеннязнімок учасниказахищено авторськими правамикількість дисків у збірці, до якої належить цей дисккраїнакод країниобкладинкастворено програмоюдата створеннячас створеннястворювачдата публікації (або, якщо ще не опубліковано, дата створення)дата створення документадата, коли документ було востаннє надрукованодата, коли документ було зміненодень публікації (або, якщо не опубліковано, день створення) у вказаному місяцізалежностізалежність, яку слід задовольнити перед встановленнямописвиробник пристроюмодель пристроюпристрій, використаний для створення об’єктакількість дисківюридичне попередженняномер дискатип показудистрибутивдистрибутив, частиною якого є пакунокне виводити ключових слів вказаного типу TYPEне використовувати типовий набір додатків видобуваннятривалістьтривалість потоку субтитрівтривалість потоку відеоданихтривалість потоку звукових данихадреса електронної пошти авторівцикли редагуванняредакція книги (або книги, яка містить роботу)розмір вбудованого файлавбудована назва файлаавтор кодуваннякодувальниккодувальник, який використовувався для кодування цих данихверсія кодувальниказапис, що містить повні початкові двійкові дані (а не метадані)знімок подіїточна або приблизна щільність потоку бітів у біт/секспозиціяухил експозиціїрежим експозиціїextract [ПАРАМЕТРИ] [НАЗВА_ФАЙЛА]*тип файлавбудована назва файла (необов’язков поточна назва файла)спалахухил спалахуфокальна відстаньфокальна відстань для 35 мм плівкиформатверсія форматучастота кадрівдані повністюфункціональні можливості, які надаються вмістом пакункажанрвисота над рівнем моря, де було записано або створено дані у метрах відповідно до WGS84 (нуль відповідає рівню моря)групагрупування пов’язаних мультимедійних даних з різних доріжок. Прикладом є різні частини одного концерту.апаратна архітектура, для якої можна використовувати данізручний для читання описова назва місцевості, у якій було записано або створено данівиміри зображенняякість зображеньроздільна здатністьнапрямок, у якому було спрямовано об’єктив пристрою, яким виконувалося знімання даних. Визначається у градусах з використанням десяткових дробів, 0 відповідає географічній півночі, відлік ведеться за годинниковою стрілкою.напрямок руху пристрою, яким виконувалося знімання даних. Визначається у градусах з використанням десяткових дробів, 0 відповідає географічній півночі, відлік ведеться за годинниковою стрілкою.дані щодо авторських правдані щодо популярності файладані щодо творців інтерпретації творудані щодо журналу зміноб'єм встановленогоустанова, яка брала участь у опублікуванні, не обов’язково безпосередній видавецьустанова, у якій працював авторкод міжнародного стандарту запису (ISRC)інтерпретаціяє необхіднимсвітлочутливість ISOназва журналуномер журналужурнал або видання, у якому було опубліковано роботутом журналуключові словаключові слова, які відповідають настрою творумовамова, якою записано звукову частинумова, якою записано субтитримова, якою записано відеочастинумова роботитривалістьвостаннє надруковановостаннє збереженопопередження щодо авторських правзалежність від бібліотекишлях пошуку бібліотекліцензіяліцензіаткількість рядківсписок всіх типів ключових слівзавантажити додаток видобування з назвою LIBRARYгеографічний напрямок зйомкигеографічна висотапохибка у даних гор. розташуваннягеографічний напрямок пересуваннягеографічна швидкість пересуванняназва місцялоготиплоготип пов’язаної організаціїтексттекст пісні або текстовий опис вокалукомп’ютер, на якому було зібрано пакунокмакрорежимзбільшеннясупровідниккерівниквиробник пристрою, використаного для створення цих данихмаксимальна щільність потоку бітівмаксимальна щільність потоку бітівмаксимальна щільність потоку бітів у біт/смаксимальна щільність потоку бітів відеорежим вимірюваннятип MIMEтип MIMEмінімальна щільність потоку бітівмінімальна щільність потоку бітів у біт/смодель пристрою, використаного для створення цих данихдата внесення змінзмінено програмоюмономісяць публікації (або, якщо не опубліковано, місяць створення)настрійточніші дані щодо географічного розташування походженнярежисерсписок подяк музикантамім’я учасника створенняназва бібліотеки, від якої залежить цей файлім’я особи або назва установи, якою було закодовано файлназва програмного забезпечення для внесення змінназва альбомуназва архітектури, операційної системи та дистрибутива, для яких призначено цей пакунокім’я виконавця або назва групиімена авторівназва мережі мовлення або станціїназва частининазва міста, з якого походить документім’я композитораім’я диригентаназва країни, з якої походить документім’я режисераназва формату документаназва групиім’я супровідникаім’я або назва першого виконавцяназва початкового файла (зарезервовано для GNUnet)ім’я автора початкового текстуім’я або назва виконавця оригіналуім’я або назва власника або ліцензіата файлаім’я особи, яка створила документназва видавництваназва програминазва програмного забезпечення, яким було створено документназва виробника програмного забезпеченняназва системи телевізійного мовлення, у якій закодовано даніім’я користувача, який останнім зберіг документназва версії пісні (тобто дані щодо реміксу)імена музикантів-виконавцівмережаномінальна щільність потоку бітівномінальна щільність потоку бітів у біт/с. Справжня щільність потоку може відрізнятися від цієї очікуваної щільності.номер журналу або технічного звітукількість каналів звукових данихкількість бітів даних на фрагмент звукукількість символівкількість циклів редагуваннякількість кадрів на секунду (дріб або число з рухомою крапкою)кількість рядківкількість абзацівкількість пісеньномер диска у багатодисковій збірцікількість серій у одному сезоні або програміномер першої пісні для відтворенняномер сезону програми або серіалукількість відтворень данихкількість слівкількість бітів кольору на піксельопераційна система, для якої було створено пакунокпорядок сторінокорганізаціяорієнтаціяоригінальний виконавецьпочаткова назва файлапочатковий номер композиції на носії поширенняоригінальний виконавецьрік випуску оригіналупочатковий кодпочаткова назваоригінальний автор текступакунок позначено як необхіднийназва пакункаверсія пакункапакунки, які застарівають після встановлення цього пакункапакунки, які рекомендується встановити разом з цим пакункомпакунки, які пропонується встановити разом з цим пакункомпакунки, які не може бути встановлено разом з цим пакункомпакунки, від яких залежить встановлення цього пакункакількість сторінокномери сторінок публікації у відповідному журналі або книзіпорядок сторінокорієнтація сторінкидіапазон сторінокрозмір паперукількість абзацівшлях у файловій системі, за яким слід шукати потрібні бібліотекипік альбомупік композиціївиконавецьзображеннязнімок з пов’язаної подіїзнімок одного з учасниківзображення з обкладинки носіяформат зображення у пікселяхспіввідношення сторін у пікселях (у форматі дробу)лічильник відтвореннячас відтворення носіяпопулярністьпопередня залежністьвиводити ключові слова лише вказаного типу TYPE (скористайтеся -L, щоб отримати список)вивести дані у форматі bibtexвивести номер версіїпоказати ці довідкові даніпріоритет переведення цього випуску до основного сховищавиводити дані у режимі сумісності з grep (єдиний рядок для всіх результатів з файла)створено програмоювиробникверсія продуктувмістдата виданнядень публікаціїмісяць виданнясерія публікаційтип публікаціїрік виданнявидавецьадреса видавництваорганізація-видавецьоцінкаоцінка вміступрочитати дані з файла до оперативної пам’яті і видобути метадані з оперативної пам’ятірекомендаціїопорний рівеньопорні рівні гучності композиції чи альбомузамінені пакункиочікувана похибка у вимірюванні горизонтальних координат у метрахзарезервованозарезервовано, не використовуватироздільна здатність у точках на дюймтип ресурсужурнал змінномер редакціїправазасіб видобуваннязапускати додатки у межах процесу (спрощує діагностику)частота дискретизаціїчастота дискретизації звукових данихрозділномерпослідовний номер композиціїсерія, у межах якої було опубліковано книгупрограманомер серії передачіномер сезону передачірозмір даних контейнера, вбудованого до файларозмір зображення у пікселях (ширина на висоту)менша версія зображення для попереднього переглядуверсія програмного забезпеченнякількість пісеньверсія пісніджерелопристрій-джерелооб’єм на диску після встановленняспецифікація електронної публікаціїспецифіка не відомашвидкість руху пристрою для знімання під час виконання зйомки у м/сстандартні дані щодо створювача файла для Finder Macintoshстандартні дані щодо типу файла для Finder Macintoshпочаткова піснястереотемавмістточне розташуванняпідзаголовоккодек субтитрівтривалість субтитрівмова субтитрівпідзаголовок частинипропозиціїрезюмезмістархітектура призначенняопераційна система призначенняплатформа призначенняшаблоншаблон, який використано у документі або на якому засновано документмініатюрадата і час створеннячас, проведений за редагуванням документаназваназва книги, що містить роботуназва початкової роботиназва роботизагальний час редагуваннязагальна кількість сторінок у роботіпідсилення композиціїрівень композиції, у дБномер композиціїпік композиціїтип публікації для бібліографій bibTeXтип технічного звітуунікальний ідентифікатор пакункауніверсальний ідентифікатор ресурсууніверсальне розташування ресурсу (звідки відкрито доступ до роботи)невідомийневідома датапріоритет вивантаженнявиробникверсія формату документаверсія кодувальника, який використовувався для кодування цих данихверсія програмного забезпечення у пакункуверсія програмного забезпечення, яке міститься у файлібітова швидкість відеовідеокодекглибина кольоріввиміри зображеннятривалість відеомова відеотому журналу, або багатотомного виданняпопередженняпопередження щодо вмістуспосіб показу, який має бути використано для переглядубаланс білогоширина і висота відеокадру (ШxВ)кількість слівавтор текстурік публікації (або, якщо не опубліковано, рік створення)рік, коли було випущено оригіналlibextractor-1.3/po/POTFILES.in0000644000175000017500000000261412021445103013166 00000000000000src/common/convert.c src/common/unzip.c src/main/extract.c src/main/extractor.c src/main/extractor_common.c src/main/extractor_datasource.c src/main/extractor_ipc.c src/main/extractor_ipc_gnu.c src/main/extractor_ipc_w32.c src/main/extractor_logging.c src/main/extractor_metatypes.c src/main/extractor_plugin_main.c src/main/extractor_plugins.c src/main/extractor_plugpath.c src/main/extractor_print.c src/main/getopt1.c src/main/getopt.c src/main/iconv.c src/plugins/archive_extractor.c src/plugins/deb_extractor.c src/plugins/dvi_extractor.c src/plugins/flac_extractor.c src/plugins/gif_extractor.c src/plugins/gstreamer_extractor.c src/plugins/html_extractor.c src/plugins/it_extractor.c src/plugins/jpeg_extractor.c src/plugins/man_extractor.c src/plugins/midi_extractor.c src/plugins/mime_extractor.c src/plugins/mp4_extractor.c src/plugins/mpeg_extractor.c src/plugins/nsfe_extractor.c src/plugins/nsf_extractor.c src/plugins/odf_extractor.c src/plugins/ogg_extractor.c src/plugins/ole2_extractor.c src/plugins/png_extractor.c src/plugins/ps_extractor.c src/plugins/riff_extractor.c src/plugins/rpm_extractor.c src/plugins/s3m_extractor.c src/plugins/sid_extractor.c src/plugins/thumbnailffmpeg_extractor.c src/plugins/thumbnailgtk_extractor.c src/plugins/tiff_extractor.c src/plugins/wav_extractor.c src/plugins/xm_extractor.c src/plugins/zip_extractor.c src/common/le_architecture.h src/main/extractor_logging.h libextractor-1.3/po/Makevars0000644000175000017500000000342711260753602013122 00000000000000# Makefile variables for PO directory in any package using GNU gettext. # Usually the message domain is the same as the package name. DOMAIN = $(PACKAGE) # These two variables depend on the location of this directory. subdir = po top_builddir = .. # These options get passed to xgettext. XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ # This is the copyright holder that gets inserted into the header of the # $(DOMAIN).pot file. Set this to the copyright holder of the surrounding # package. (Note that the msgstr strings, extracted from the package's # sources, belong to the copyright holder of the package.) Translators are # expected to transfer the copyright for their translations to this person # or entity, or to disclaim their copyright. The empty string stands for # the public domain; in this case the translators are expected to disclaim # their copyright. COPYRIGHT_HOLDER = Christian Grothoff # This is the email address or URL to which the translators shall report # bugs in the untranslated strings: # - Strings which are not entire sentences, see the maintainer guidelines # in the GNU gettext documentation, section 'Preparing Strings'. # - Strings which use unclear terms or require additional context to be # understood. # - Strings which make invalid assumptions about notation of date, time or # money. # - Pluralisation problems. # - Incorrect English spelling. # - Incorrect formatting. # It can be your email address, or a mailing list address where translators # can write to without being subscribed, or the URL of a web page through # which the translators can contact you. MSGID_BUGS_ADDRESS = libextractor@gnu.org # This is the list of locale categories, beyond LC_MESSAGES, for which the # message catalogs shall be used. It is usually empty. EXTRA_LOCALE_CATEGORIES = libextractor-1.3/po/quot.sed0000644000175000017500000000023111260753602013101 00000000000000s/"\([^"]*\)"/“\1”/g s/`\([^`']*\)'/‘\1’/g s/ '\([^`']*\)' / ‘\1’ /g s/ '\([^`']*\)'$/ ‘\1’/g s/^'\([^`']*\)' /‘\1’ /g s/“”/""/g libextractor-1.3/po/uk.po0000644000175000017500000022410412255661612012406 00000000000000# Ukrainian translation to libextractor # Copyright (C) 2011 Free Software Foundation, Inc. # This file is distributed under the same license as the libextractor package. # # Yuri Chornoivan , 2011, 2012. msgid "" msgstr "" "Project-Id-Version: libextractor 1.0.0-pre1\n" "Report-Msgid-Bugs-To: libextractor@gnu.org\n" "POT-Creation-Date: 2013-12-22 23:11+0100\n" "PO-Revision-Date: 2012-09-05 22:36+0300\n" "Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian \n" "Language: uk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.5\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #: src/main/extract.c:132 #, c-format msgid "" "Usage: %s\n" "%s\n" "\n" msgstr "" "Користування: %s\n" "%s\n" "\n" #: src/main/extract.c:135 #, c-format msgid "" "Arguments mandatory for long options are also mandatory for short options.\n" msgstr "" "Обов’язкові аргументи для довгих форм запису параметрів є обов’язковими і " "для скорочених форм.\n" #: src/main/extract.c:217 msgid "print output in bibtex format" msgstr "вивести дані у форматі bibtex" #: src/main/extract.c:219 msgid "produce grep-friendly output (all results on one line per file)" msgstr "" "виводити дані у режимі сумісності з grep (єдиний рядок для всіх результатів " "з файла)" #: src/main/extract.c:221 msgid "print this help" msgstr "показати ці довідкові дані" #: src/main/extract.c:223 msgid "run plugins in-process (simplifies debugging)" msgstr "запускати додатки у межах процесу (спрощує діагностику)" #: src/main/extract.c:225 msgid "read data from file into memory and extract from memory" msgstr "" "прочитати дані з файла до оперативної пам’яті і видобути метадані з " "оперативної пам’яті" #: src/main/extract.c:227 msgid "load an extractor plugin named LIBRARY" msgstr "завантажити додаток видобування з назвою LIBRARY" #: src/main/extract.c:229 msgid "list all keyword types" msgstr "список всіх типів ключових слів" #: src/main/extract.c:231 msgid "do not use the default set of extractor plugins" msgstr "не використовувати типовий набір додатків видобування" #: src/main/extract.c:233 msgid "print only keywords of the given TYPE (use -L to get a list)" msgstr "" "виводити ключові слова лише вказаного типу TYPE (скористайтеся -L, щоб " "отримати список)" #: src/main/extract.c:235 msgid "print the version number" msgstr "вивести номер версії" #: src/main/extract.c:237 msgid "be verbose" msgstr "режим з докладних повідомлень" #: src/main/extract.c:239 msgid "do not print keywords of the given TYPE" msgstr "не виводити ключових слів вказаного типу TYPE" #: src/main/extract.c:242 msgid "extract [OPTIONS] [FILENAME]*" msgstr "extract [ПАРАМЕТРИ] [НАЗВА_ФАЙЛА]*" #: src/main/extract.c:243 msgid "Extract metadata from files." msgstr "Видобути метадані з файлів." #: src/main/extract.c:288 #, c-format msgid "Found by `%s' plugin:\n" msgstr "Знайдено додатком «%s»:\n" #: src/main/extract.c:291 src/main/extract.c:378 #: src/main/extractor_metatypes.c:145 src/main/extractor_print.c:86 #: src/main/extractor_print.c:96 msgid "unknown" msgstr "невідомий" #: src/main/extract.c:296 #, c-format msgid "%s - (unknown, %u bytes)\n" msgstr "%s — (невідомий, %u байтів)\n" #: src/main/extract.c:325 #, c-format msgid "%s - (binary, %u bytes)\n" msgstr "%s — (бінарний, %u байтів)\n" #: src/main/extract.c:809 src/main/extract.c:821 msgid "" "Illegal combination of options, cannot combine multiple styles of printing.\n" msgstr "" "Некоректне поєднання параметрів, не можна визначати декілька стилів " "виведення даних.\n" #: src/main/extract.c:854 #, c-format msgid "You must specify an argument for the `%s' option (option ignored).\n" msgstr "" "Параметр «%s» можна використовувати лише з додатковим аргументом (параметр " "проігноровано).\n" #: src/main/extract.c:923 msgid "Use --help to get a list of options.\n" msgstr "" "Скористайтеся параметром --help для отримання списку можливих параметрів " "командного рядка.\n" #: src/main/extract.c:964 #, fuzzy msgid "% BiBTeX file\n" msgstr "%% файл BiBTeX\n" #: src/main/extract.c:972 #, c-format msgid "Keywords for file %s:\n" msgstr "Ключові слова для файла %s:\n" #: src/main/extractor.c:676 #, c-format msgid "Initialization of plugin mechanism failed: %s!\n" msgstr "Помилка під час спроби ініціалізації механізму додатків: %s!\n" #: src/main/extractor_metatypes.c:46 msgid "reserved" msgstr "зарезервовано" #: src/main/extractor_metatypes.c:47 msgid "reserved value, do not use" msgstr "зарезервовано, не використовувати" #: src/main/extractor_metatypes.c:48 msgid "mimetype" msgstr "тип MIME" #: src/main/extractor_metatypes.c:49 msgid "mime type" msgstr "тип MIME" #: src/main/extractor_metatypes.c:50 msgid "embedded filename" msgstr "вбудована назва файла" #: src/main/extractor_metatypes.c:51 msgid "filename that was embedded (not necessarily the current filename)" msgstr "вбудована назва файла (необов’язков поточна назва файла)" #: src/main/extractor_metatypes.c:52 msgid "comment" msgstr "коментар" #: src/main/extractor_metatypes.c:53 msgid "comment about the content" msgstr "коментар щодо вмісту" #: src/main/extractor_metatypes.c:54 msgid "title" msgstr "назва" #: src/main/extractor_metatypes.c:55 msgid "title of the work" msgstr "назва роботи" #: src/main/extractor_metatypes.c:57 msgid "book title" msgstr "назва книги" #: src/main/extractor_metatypes.c:58 msgid "title of the book containing the work" msgstr "назва книги, що містить роботу" #: src/main/extractor_metatypes.c:59 msgid "book edition" msgstr "редакція книги" #: src/main/extractor_metatypes.c:60 msgid "edition of the book (or book containing the work)" msgstr "редакція книги (або книги, яка містить роботу)" #: src/main/extractor_metatypes.c:61 msgid "book chapter" msgstr "глава книги" #: src/main/extractor_metatypes.c:62 msgid "chapter number" msgstr "номер глави" #: src/main/extractor_metatypes.c:63 msgid "journal name" msgstr "назва журналу" #: src/main/extractor_metatypes.c:64 msgid "journal or magazine the work was published in" msgstr "журнал або видання, у якому було опубліковано роботу" #: src/main/extractor_metatypes.c:65 msgid "journal volume" msgstr "том журналу" #: src/main/extractor_metatypes.c:66 msgid "volume of a journal or multi-volume book" msgstr "тому журналу, або багатотомного видання" #: src/main/extractor_metatypes.c:68 msgid "journal number" msgstr "номер журналу" #: src/main/extractor_metatypes.c:69 msgid "number of a journal, magazine or tech-report" msgstr "номер журналу або технічного звіту" #: src/main/extractor_metatypes.c:70 msgid "page count" msgstr "кількість сторінок" #: src/main/extractor_metatypes.c:71 msgid "total number of pages of the work" msgstr "загальна кількість сторінок у роботі" #: src/main/extractor_metatypes.c:72 msgid "page range" msgstr "діапазон сторінок" #: src/main/extractor_metatypes.c:73 msgid "page numbers of the publication in the respective journal or book" msgstr "номери сторінок публікації у відповідному журналі або книзі" #: src/main/extractor_metatypes.c:74 msgid "author name" msgstr "ім’я автора" #: src/main/extractor_metatypes.c:75 msgid "name of the author(s)" msgstr "імена авторів" #: src/main/extractor_metatypes.c:76 msgid "author email" msgstr "адреса ел. пошти автора" #: src/main/extractor_metatypes.c:77 msgid "e-mail of the author(s)" msgstr "адреса електронної пошти авторів" #: src/main/extractor_metatypes.c:79 msgid "author institution" msgstr "установа автора" #: src/main/extractor_metatypes.c:80 msgid "institution the author worked for" msgstr "установа, у якій працював автор" #: src/main/extractor_metatypes.c:81 msgid "publisher" msgstr "видавець" #: src/main/extractor_metatypes.c:82 msgid "name of the publisher" msgstr "назва видавництва" #: src/main/extractor_metatypes.c:83 msgid "publisher's address" msgstr "адреса видавництва" #: src/main/extractor_metatypes.c:84 msgid "Address of the publisher (often only the city)" msgstr "Адреса видавництва (часто лише місто)" #: src/main/extractor_metatypes.c:85 msgid "publishing institution" msgstr "організація-видавець" #: src/main/extractor_metatypes.c:86 msgid "" "institution that was involved in the publishing, but not necessarily the " "publisher" msgstr "" "установа, яка брала участь у опублікуванні, не обов’язково безпосередній " "видавець" #: src/main/extractor_metatypes.c:87 msgid "publication series" msgstr "серія публікацій" #: src/main/extractor_metatypes.c:88 msgid "series of books the book was published in" msgstr "серія, у межах якої було опубліковано книгу" #: src/main/extractor_metatypes.c:90 msgid "publication type" msgstr "тип публікації" #: src/main/extractor_metatypes.c:91 msgid "type of the tech-report" msgstr "тип технічного звіту" #: src/main/extractor_metatypes.c:92 msgid "publication year" msgstr "рік видання" #: src/main/extractor_metatypes.c:93 msgid "year of publication (or, if unpublished, the year of creation)" msgstr "рік публікації (або, якщо не опубліковано, рік створення)" #: src/main/extractor_metatypes.c:94 msgid "publication month" msgstr "місяць видання" #: src/main/extractor_metatypes.c:95 msgid "month of publication (or, if unpublished, the month of creation)" msgstr "місяць публікації (або, якщо не опубліковано, місяць створення)" #: src/main/extractor_metatypes.c:96 msgid "publication day" msgstr "день публікації" #: src/main/extractor_metatypes.c:97 msgid "" "day of publication (or, if unpublished, the day of creation), relative to " "the given month" msgstr "" "день публікації (або, якщо не опубліковано, день створення) у вказаному " "місяці" #: src/main/extractor_metatypes.c:98 msgid "publication date" msgstr "дата видання" #: src/main/extractor_metatypes.c:99 msgid "date of publication (or, if unpublished, the date of creation)" msgstr "дата публікації (або, якщо ще не опубліковано, дата створення)" #: src/main/extractor_metatypes.c:101 msgid "bibtex eprint" msgstr "ел. відбиток bibtex" #: src/main/extractor_metatypes.c:102 msgid "specification of an electronic publication" msgstr "специфікація електронної публікації" #: src/main/extractor_metatypes.c:103 msgid "bibtex entry type" msgstr "тип запису bibtex" #: src/main/extractor_metatypes.c:104 msgid "type of the publication for bibTeX bibliographies" msgstr "тип публікації для бібліографій bibTeX" #: src/main/extractor_metatypes.c:105 msgid "language" msgstr "мова" #: src/main/extractor_metatypes.c:106 msgid "language the work uses" msgstr "мова роботи" #: src/main/extractor_metatypes.c:107 msgid "creation time" msgstr "час створення" #: src/main/extractor_metatypes.c:108 msgid "time and date of creation" msgstr "дата і час створення" #: src/main/extractor_metatypes.c:109 msgid "URL" msgstr "адреса" #: src/main/extractor_metatypes.c:110 msgid "universal resource location (where the work is made available)" msgstr "універсальне розташування ресурсу (звідки відкрито доступ до роботи)" #: src/main/extractor_metatypes.c:112 msgid "URI" msgstr "адреса" #: src/main/extractor_metatypes.c:113 msgid "universal resource identifier" msgstr "універсальний ідентифікатор ресурсу" #: src/main/extractor_metatypes.c:114 msgid "international standard recording code" msgstr "код міжнародного стандарту запису (ISRC)" #: src/main/extractor_metatypes.c:115 msgid "ISRC number identifying the work" msgstr "Шифр ISRC, що ідентифікує роботу" #: src/main/extractor_metatypes.c:116 msgid "MD4" msgstr "MD4" #: src/main/extractor_metatypes.c:117 msgid "MD4 hash" msgstr "хеш MD4" #: src/main/extractor_metatypes.c:118 msgid "MD5" msgstr "MD5" #: src/main/extractor_metatypes.c:119 msgid "MD5 hash" msgstr "хеш MD5" #: src/main/extractor_metatypes.c:120 msgid "SHA-0" msgstr "SHA-0" #: src/main/extractor_metatypes.c:121 msgid "SHA-0 hash" msgstr "хеш SHA-0" #: src/main/extractor_metatypes.c:123 msgid "SHA-1" msgstr "SHA-1" #: src/main/extractor_metatypes.c:124 msgid "SHA-1 hash" msgstr "хеш SHA-1" #: src/main/extractor_metatypes.c:125 msgid "RipeMD160" msgstr "RipeMD160" #: src/main/extractor_metatypes.c:126 msgid "RipeMD150 hash" msgstr "хеш RipeMD150" #: src/main/extractor_metatypes.c:127 src/main/extractor_metatypes.c:128 msgid "GPS latitude ref" msgstr "широта за GPS" #: src/main/extractor_metatypes.c:129 src/main/extractor_metatypes.c:130 msgid "GPS latitude" msgstr "широта за GPS" #: src/main/extractor_metatypes.c:131 src/main/extractor_metatypes.c:132 msgid "GPS longitude ref" msgstr "довгота за GPS" #: src/main/extractor_metatypes.c:134 src/main/extractor_metatypes.c:135 msgid "GPS longitude" msgstr "довгота за GPS" #: src/main/extractor_metatypes.c:136 msgid "city" msgstr "місто" #: src/main/extractor_metatypes.c:137 msgid "name of the city where the document originated" msgstr "назва міста, з якого походить документ" #: src/main/extractor_metatypes.c:138 msgid "sublocation" msgstr "точне розташування" #: src/main/extractor_metatypes.c:139 msgid "more specific location of the geographic origin" msgstr "точніші дані щодо географічного розташування походження" #: src/main/extractor_metatypes.c:140 msgid "country" msgstr "країна" #: src/main/extractor_metatypes.c:141 msgid "name of the country where the document originated" msgstr "назва країни, з якої походить документ" #: src/main/extractor_metatypes.c:142 msgid "country code" msgstr "код країни" #: src/main/extractor_metatypes.c:143 msgid "ISO 2-letter country code for the country of origin" msgstr "Дволітерний код країни походження за ISO" #: src/main/extractor_metatypes.c:146 msgid "specifics are not known" msgstr "специфіка не відома" #: src/main/extractor_metatypes.c:147 src/main/extractor_metatypes.c:148 msgid "description" msgstr "опис" #: src/main/extractor_metatypes.c:149 msgid "copyright" msgstr "захищено авторськими правами" #: src/main/extractor_metatypes.c:150 msgid "Name of the entity holding the copyright" msgstr "Назва або ім’я власника авторських прав" #: src/main/extractor_metatypes.c:151 msgid "rights" msgstr "права" #: src/main/extractor_metatypes.c:152 msgid "information about rights" msgstr "дані щодо авторських прав" #: src/main/extractor_metatypes.c:153 src/main/extractor_metatypes.c:154 msgid "keywords" msgstr "ключові слова" #: src/main/extractor_metatypes.c:156 src/main/extractor_metatypes.c:157 msgid "abstract" msgstr "анотація" #: src/main/extractor_metatypes.c:158 src/main/extractor_metatypes.c:159 msgid "summary" msgstr "резюме" #: src/main/extractor_metatypes.c:160 msgid "subject" msgstr "тема" #: src/main/extractor_metatypes.c:161 msgid "subject matter" msgstr "вміст" #: src/main/extractor_metatypes.c:162 src/main/extractor_metatypes.c:195 msgid "creator" msgstr "створювач" #: src/main/extractor_metatypes.c:163 msgid "name of the person who created the document" msgstr "ім’я особи, яка створила документ" #: src/main/extractor_metatypes.c:164 msgid "format" msgstr "формат" #: src/main/extractor_metatypes.c:165 msgid "name of the document format" msgstr "назва формату документа" #: src/main/extractor_metatypes.c:167 msgid "format version" msgstr "версія формату" #: src/main/extractor_metatypes.c:168 msgid "version of the document format" msgstr "версія формату документа" #: src/main/extractor_metatypes.c:169 msgid "created by software" msgstr "створено програмою" #: src/main/extractor_metatypes.c:170 msgid "name of the software that created the document" msgstr "назва програмного забезпечення, яким було створено документ" #: src/main/extractor_metatypes.c:171 msgid "unknown date" msgstr "невідома дата" #: src/main/extractor_metatypes.c:172 msgid "" "ambiguous date (could specify creation time, modification time or access " "time)" msgstr "" "неоднозначні дані (можуть відповідати часу створення, часу внесення змін або " "часу доступу)" #: src/main/extractor_metatypes.c:173 msgid "creation date" msgstr "дата створення" #: src/main/extractor_metatypes.c:174 msgid "date the document was created" msgstr "дата створення документа" #: src/main/extractor_metatypes.c:175 msgid "modification date" msgstr "дата внесення змін" #: src/main/extractor_metatypes.c:176 msgid "date the document was modified" msgstr "дата, коли документ було змінено" #: src/main/extractor_metatypes.c:178 msgid "last printed" msgstr "востаннє надруковано" #: src/main/extractor_metatypes.c:179 msgid "date the document was last printed" msgstr "дата, коли документ було востаннє надруковано" #: src/main/extractor_metatypes.c:180 msgid "last saved by" msgstr "востаннє збережено" #: src/main/extractor_metatypes.c:181 msgid "name of the user who saved the document last" msgstr "ім’я користувача, який останнім зберіг документ" #: src/main/extractor_metatypes.c:182 msgid "total editing time" msgstr "загальний час редагування" #: src/main/extractor_metatypes.c:183 msgid "time spent editing the document" msgstr "час, проведений за редагуванням документа" #: src/main/extractor_metatypes.c:184 msgid "editing cycles" msgstr "цикли редагування" #: src/main/extractor_metatypes.c:185 msgid "number of editing cycles" msgstr "кількість циклів редагування" #: src/main/extractor_metatypes.c:186 msgid "modified by software" msgstr "змінено програмою" #: src/main/extractor_metatypes.c:187 msgid "name of software making modifications" msgstr "назва програмного забезпечення для внесення змін" #: src/main/extractor_metatypes.c:189 msgid "revision history" msgstr "журнал змін" #: src/main/extractor_metatypes.c:190 msgid "information about the revision history" msgstr "дані щодо журналу змін" #: src/main/extractor_metatypes.c:191 msgid "embedded file size" msgstr "розмір вбудованого файла" #: src/main/extractor_metatypes.c:192 msgid "size of the contents of the container as embedded in the file" msgstr "розмір даних контейнера, вбудованого до файла" #: src/main/extractor_metatypes.c:193 msgid "file type" msgstr "тип файла" #: src/main/extractor_metatypes.c:194 msgid "standard Macintosh Finder file type information" msgstr "стандартні дані щодо типу файла для Finder Macintosh" #: src/main/extractor_metatypes.c:196 msgid "standard Macintosh Finder file creator information" msgstr "стандартні дані щодо створювача файла для Finder Macintosh" #: src/main/extractor_metatypes.c:197 msgid "package name" msgstr "назва пакунка" #: src/main/extractor_metatypes.c:198 msgid "unique identifier for the package" msgstr "унікальний ідентифікатор пакунка" #: src/main/extractor_metatypes.c:200 msgid "package version" msgstr "версія пакунка" #: src/main/extractor_metatypes.c:201 msgid "version of the software and its package" msgstr "версія програмного забезпечення у пакунку" #: src/main/extractor_metatypes.c:202 msgid "section" msgstr "розділ" #: src/main/extractor_metatypes.c:203 msgid "category the software package belongs to" msgstr "категорія, до якої належить пакунок з програмним забезпеченням" #: src/main/extractor_metatypes.c:204 msgid "upload priority" msgstr "пріоритет вивантаження" #: src/main/extractor_metatypes.c:205 msgid "priority for promoting the release to production" msgstr "пріоритет переведення цього випуску до основного сховища" #: src/main/extractor_metatypes.c:206 msgid "dependencies" msgstr "залежності" #: src/main/extractor_metatypes.c:207 msgid "packages this package depends upon" msgstr "пакунки, від яких залежить встановлення цього пакунка" #: src/main/extractor_metatypes.c:208 msgid "conflicting packages" msgstr "конфліктуючі пакунки" #: src/main/extractor_metatypes.c:209 msgid "packages that cannot be installed with this package" msgstr "пакунки, які не може бути встановлено разом з цим пакунком" #: src/main/extractor_metatypes.c:211 msgid "replaced packages" msgstr "замінені пакунки" #: src/main/extractor_metatypes.c:212 msgid "packages made obsolete by this package" msgstr "пакунки, які застарівають після встановлення цього пакунка" #: src/main/extractor_metatypes.c:213 msgid "provides" msgstr "вміст" #: src/main/extractor_metatypes.c:214 msgid "functionality provided by this package" msgstr "функціональні можливості, які надаються вмістом пакунка" #: src/main/extractor_metatypes.c:215 msgid "recommendations" msgstr "рекомендації" #: src/main/extractor_metatypes.c:216 msgid "packages recommended for installation in conjunction with this package" msgstr "пакунки, які рекомендується встановити разом з цим пакунком" #: src/main/extractor_metatypes.c:217 msgid "suggestions" msgstr "пропозиції" #: src/main/extractor_metatypes.c:218 msgid "packages suggested for installation in conjunction with this package" msgstr "пакунки, які пропонується встановити разом з цим пакунком" #: src/main/extractor_metatypes.c:219 msgid "maintainer" msgstr "супровідник" #: src/main/extractor_metatypes.c:220 msgid "name of the maintainer" msgstr "ім’я супровідника" #: src/main/extractor_metatypes.c:222 msgid "installed size" msgstr "об'єм встановленого" #: src/main/extractor_metatypes.c:223 msgid "space consumption after installation" msgstr "об’єм на диску після встановлення" #: src/main/extractor_metatypes.c:224 src/main/extractor_metatypes.c:304 msgid "source" msgstr "джерело" #: src/main/extractor_metatypes.c:225 msgid "original source code" msgstr "початковий код" #: src/main/extractor_metatypes.c:226 msgid "is essential" msgstr "є необхідним" #: src/main/extractor_metatypes.c:227 msgid "package is marked as essential" msgstr "пакунок позначено як необхідний" #: src/main/extractor_metatypes.c:228 msgid "target architecture" msgstr "архітектура призначення" #: src/main/extractor_metatypes.c:229 msgid "hardware architecture the contents can be used for" msgstr "апаратна архітектура, для якої можна використовувати дані" #: src/main/extractor_metatypes.c:230 msgid "pre-dependency" msgstr "попередня залежність" #: src/main/extractor_metatypes.c:231 msgid "dependency that must be satisfied before installation" msgstr "залежність, яку слід задовольнити перед встановленням" #: src/main/extractor_metatypes.c:233 msgid "license" msgstr "ліцензія" #: src/main/extractor_metatypes.c:234 msgid "applicable copyright license" msgstr "назва ліцензії, яка захищає авторські права" #: src/main/extractor_metatypes.c:235 msgid "distribution" msgstr "дистрибутив" #: src/main/extractor_metatypes.c:236 msgid "distribution the package is a part of" msgstr "дистрибутив, частиною якого є пакунок" #: src/main/extractor_metatypes.c:237 msgid "build host" msgstr "вузол збирання" #: src/main/extractor_metatypes.c:238 msgid "machine the package was build on" msgstr "комп’ютер, на якому було зібрано пакунок" #: src/main/extractor_metatypes.c:239 msgid "vendor" msgstr "виробник" #: src/main/extractor_metatypes.c:240 msgid "name of the software vendor" msgstr "назва виробника програмного забезпечення" #: src/main/extractor_metatypes.c:241 msgid "target operating system" msgstr "операційна система призначення" #: src/main/extractor_metatypes.c:242 msgid "operating system for which this package was made" msgstr "операційна система, для якої було створено пакунок" #: src/main/extractor_metatypes.c:244 msgid "software version" msgstr "версія програмного забезпечення" #: src/main/extractor_metatypes.c:245 msgid "version of the software contained in the file" msgstr "версія програмного забезпечення, яке міститься у файлі" #: src/main/extractor_metatypes.c:246 msgid "target platform" msgstr "платформа призначення" #: src/main/extractor_metatypes.c:247 msgid "" "name of the architecture, operating system and distribution this package is " "for" msgstr "" "назва архітектури, операційної системи та дистрибутива, для яких призначено " "цей пакунок" #: src/main/extractor_metatypes.c:248 msgid "resource type" msgstr "тип ресурсу" #: src/main/extractor_metatypes.c:249 msgid "" "categorization of the nature of the resource that is more specific than the " "file format" msgstr "категорія, до якої належить ресурс, специфічніша за формат файла" #: src/main/extractor_metatypes.c:250 msgid "library search path" msgstr "шлях пошуку бібліотек" #: src/main/extractor_metatypes.c:251 msgid "" "path in the file system to be considered when looking for required libraries" msgstr "шлях у файловій системі, за яким слід шукати потрібні бібліотеки" #: src/main/extractor_metatypes.c:252 msgid "library dependency" msgstr "залежність від бібліотеки" #: src/main/extractor_metatypes.c:253 msgid "name of a library that this file depends on" msgstr "назва бібліотеки, від якої залежить цей файл" #: src/main/extractor_metatypes.c:255 src/main/extractor_metatypes.c:256 msgid "camera make" msgstr "виробник фотоапарата" #: src/main/extractor_metatypes.c:257 src/main/extractor_metatypes.c:258 msgid "camera model" msgstr "модель фотоапарата" #: src/main/extractor_metatypes.c:259 src/main/extractor_metatypes.c:260 msgid "exposure" msgstr "експозиція" #: src/main/extractor_metatypes.c:261 src/main/extractor_metatypes.c:262 msgid "aperture" msgstr "апертура" #: src/main/extractor_metatypes.c:263 src/main/extractor_metatypes.c:264 msgid "exposure bias" msgstr "ухил експозиції" #: src/main/extractor_metatypes.c:266 src/main/extractor_metatypes.c:267 msgid "flash" msgstr "спалах" #: src/main/extractor_metatypes.c:268 src/main/extractor_metatypes.c:269 msgid "flash bias" msgstr "ухил спалаху" #: src/main/extractor_metatypes.c:270 src/main/extractor_metatypes.c:271 msgid "focal length" msgstr "фокальна відстань" #: src/main/extractor_metatypes.c:272 src/main/extractor_metatypes.c:273 msgid "focal length 35mm" msgstr "фокальна відстань для 35 мм плівки" #: src/main/extractor_metatypes.c:274 src/main/extractor_metatypes.c:275 msgid "iso speed" msgstr "світлочутливість ISO" #: src/main/extractor_metatypes.c:277 src/main/extractor_metatypes.c:278 msgid "exposure mode" msgstr "режим експозиції" #: src/main/extractor_metatypes.c:279 src/main/extractor_metatypes.c:280 msgid "metering mode" msgstr "режим вимірювання" #: src/main/extractor_metatypes.c:281 src/main/extractor_metatypes.c:282 msgid "macro mode" msgstr "макрорежим" #: src/main/extractor_metatypes.c:283 src/main/extractor_metatypes.c:284 msgid "image quality" msgstr "якість зображень" #: src/main/extractor_metatypes.c:285 src/main/extractor_metatypes.c:286 msgid "white balance" msgstr "баланс білого" #: src/main/extractor_metatypes.c:288 src/main/extractor_metatypes.c:289 msgid "orientation" msgstr "орієнтація" #: src/main/extractor_metatypes.c:290 src/main/extractor_metatypes.c:291 msgid "magnification" msgstr "збільшення" #: src/main/extractor_metatypes.c:292 msgid "image dimensions" msgstr "виміри зображення" #: src/main/extractor_metatypes.c:293 msgid "size of the image in pixels (width times height)" msgstr "розмір зображення у пікселях (ширина на висоту)" #: src/main/extractor_metatypes.c:294 src/main/extractor_metatypes.c:295 msgid "produced by software" msgstr "створено програмою" #: src/main/extractor_metatypes.c:299 msgid "thumbnail" msgstr "мініатюра" #: src/main/extractor_metatypes.c:300 msgid "smaller version of the image for previewing" msgstr "менша версія зображення для попереднього перегляду" #: src/main/extractor_metatypes.c:302 msgid "image resolution" msgstr "роздільна здатність" #: src/main/extractor_metatypes.c:303 msgid "resolution in dots per inch" msgstr "роздільна здатність у точках на дюйм" #: src/main/extractor_metatypes.c:305 msgid "Originating entity" msgstr "Запис походження" #: src/main/extractor_metatypes.c:306 msgid "character set" msgstr "набір символів" #: src/main/extractor_metatypes.c:307 msgid "character encoding used" msgstr "використане кодування символів" #: src/main/extractor_metatypes.c:308 msgid "line count" msgstr "кількість рядків" #: src/main/extractor_metatypes.c:309 msgid "number of lines" msgstr "кількість рядків" #: src/main/extractor_metatypes.c:310 msgid "paragraph count" msgstr "кількість абзаців" #: src/main/extractor_metatypes.c:311 msgid "number of paragraphs" msgstr "кількість абзаців" #: src/main/extractor_metatypes.c:313 msgid "word count" msgstr "кількість слів" #: src/main/extractor_metatypes.c:314 msgid "number of words" msgstr "кількість слів" #: src/main/extractor_metatypes.c:315 msgid "character count" msgstr "кількість символів" #: src/main/extractor_metatypes.c:316 msgid "number of characters" msgstr "кількість символів" #: src/main/extractor_metatypes.c:317 src/main/extractor_metatypes.c:318 msgid "page orientation" msgstr "орієнтація сторінки" #: src/main/extractor_metatypes.c:319 src/main/extractor_metatypes.c:320 msgid "paper size" msgstr "розмір паперу" #: src/main/extractor_metatypes.c:321 msgid "template" msgstr "шаблон" #: src/main/extractor_metatypes.c:322 msgid "template the document uses or is based on" msgstr "шаблон, який використано у документі або на якому засновано документ" #: src/main/extractor_metatypes.c:324 src/main/extractor_metatypes.c:325 msgid "company" msgstr "компанія" #: src/main/extractor_metatypes.c:326 src/main/extractor_metatypes.c:327 msgid "manager" msgstr "керівник" #: src/main/extractor_metatypes.c:328 src/main/extractor_metatypes.c:329 msgid "revision number" msgstr "номер редакції" #: src/main/extractor_metatypes.c:330 msgid "duration" msgstr "тривалість" #: src/main/extractor_metatypes.c:331 msgid "play time for the medium" msgstr "час відтворення носія" #: src/main/extractor_metatypes.c:332 msgid "album" msgstr "альбом" #: src/main/extractor_metatypes.c:333 msgid "name of the album" msgstr "назва альбому" #: src/main/extractor_metatypes.c:335 msgid "artist" msgstr "виконавець" #: src/main/extractor_metatypes.c:336 msgid "name of the artist or band" msgstr "ім’я виконавця або назва групи" #: src/main/extractor_metatypes.c:337 src/main/extractor_metatypes.c:338 msgid "genre" msgstr "жанр" #: src/main/extractor_metatypes.c:339 msgid "track number" msgstr "номер композиції" #: src/main/extractor_metatypes.c:340 msgid "original number of the track on the distribution medium" msgstr "початковий номер композиції на носії поширення" #: src/main/extractor_metatypes.c:341 msgid "disk number" msgstr "номер диска" #: src/main/extractor_metatypes.c:342 msgid "number of the disk in a multi-disk (or volume) distribution" msgstr "номер диска у багатодисковій збірці" #: src/main/extractor_metatypes.c:343 msgid "performer" msgstr "виконавець" #: src/main/extractor_metatypes.c:344 msgid "" "The artist(s) who performed the work (conductor, orchestra, soloists, actor, " "etc.)" msgstr "Виконавець твору (диригент, оркестр, солісти тощо)" #: src/main/extractor_metatypes.c:346 msgid "contact" msgstr "контакт" #: src/main/extractor_metatypes.c:347 msgid "Contact information for the creator or distributor" msgstr "Дані щодо зв’язку з автором або розповсюджувачем" #: src/main/extractor_metatypes.c:348 msgid "song version" msgstr "версія пісні" #: src/main/extractor_metatypes.c:349 msgid "name of the version of the song (i.e. remix information)" msgstr "назва версії пісні (тобто дані щодо реміксу)" #: src/main/extractor_metatypes.c:350 msgid "picture" msgstr "зображення" #: src/main/extractor_metatypes.c:351 msgid "associated misc. picture" msgstr "якесь пов’язане зображення" #: src/main/extractor_metatypes.c:352 msgid "cover picture" msgstr "обкладинка" #: src/main/extractor_metatypes.c:353 msgid "picture of the cover of the distribution medium" msgstr "зображення з обкладинки носія" #: src/main/extractor_metatypes.c:354 msgid "contributor picture" msgstr "знімок учасника" #: src/main/extractor_metatypes.c:355 msgid "picture of one of the contributors" msgstr "знімок одного з учасників" #: src/main/extractor_metatypes.c:357 msgid "event picture" msgstr "знімок події" #: src/main/extractor_metatypes.c:358 msgid "picture of an associated event" msgstr "знімок з пов’язаної події" #: src/main/extractor_metatypes.c:359 msgid "logo" msgstr "логотип" #: src/main/extractor_metatypes.c:360 msgid "logo of an associated organization" msgstr "логотип пов’язаної організації" #: src/main/extractor_metatypes.c:361 msgid "broadcast television system" msgstr "система телевізійного мовлення" #: src/main/extractor_metatypes.c:362 msgid "name of the television system for which the data is coded" msgstr "назва системи телевізійного мовлення, у якій закодовано дані" #: src/main/extractor_metatypes.c:363 msgid "source device" msgstr "пристрій-джерело" #: src/main/extractor_metatypes.c:364 msgid "device used to create the object" msgstr "пристрій, використаний для створення об’єкта" #: src/main/extractor_metatypes.c:365 msgid "disclaimer" msgstr "юридичне попередження" #: src/main/extractor_metatypes.c:366 msgid "legal disclaimer" msgstr "попередження щодо авторських прав" #: src/main/extractor_metatypes.c:368 msgid "warning" msgstr "попередження" #: src/main/extractor_metatypes.c:369 msgid "warning about the nature of the content" msgstr "попередження щодо вмісту" #: src/main/extractor_metatypes.c:370 msgid "page order" msgstr "порядок сторінок" #: src/main/extractor_metatypes.c:371 msgid "order of the pages" msgstr "порядок сторінок" #: src/main/extractor_metatypes.c:372 msgid "writer" msgstr "автор тексту" #: src/main/extractor_metatypes.c:373 msgid "contributing writer" msgstr "автор тексту або сценарію" #: src/main/extractor_metatypes.c:374 src/main/extractor_metatypes.c:375 msgid "product version" msgstr "версія продукту" #: src/main/extractor_metatypes.c:376 msgid "contributor" msgstr "учасник створення" #: src/main/extractor_metatypes.c:377 msgid "name of a contributor" msgstr "ім’я учасника створення" #: src/main/extractor_metatypes.c:379 msgid "movie director" msgstr "режисер" #: src/main/extractor_metatypes.c:380 msgid "name of the director" msgstr "ім’я режисера" #: src/main/extractor_metatypes.c:381 msgid "network" msgstr "мережа" #: src/main/extractor_metatypes.c:382 msgid "name of the broadcasting network or station" msgstr "назва мережі мовлення або станції" #: src/main/extractor_metatypes.c:383 msgid "show" msgstr "програма" #: src/main/extractor_metatypes.c:384 msgid "name of the show" msgstr "назва програми" #: src/main/extractor_metatypes.c:385 msgid "chapter name" msgstr "назва частини" #: src/main/extractor_metatypes.c:386 msgid "name of the chapter" msgstr "назва частини" #: src/main/extractor_metatypes.c:387 msgid "song count" msgstr "кількість пісень" #: src/main/extractor_metatypes.c:388 msgid "number of songs" msgstr "кількість пісень" #: src/main/extractor_metatypes.c:390 msgid "starting song" msgstr "початкова пісня" #: src/main/extractor_metatypes.c:391 msgid "number of the first song to play" msgstr "номер першої пісні для відтворення" #: src/main/extractor_metatypes.c:392 msgid "play counter" msgstr "лічильник відтворення" #: src/main/extractor_metatypes.c:393 msgid "number of times the media has been played" msgstr "кількість відтворень даних" #: src/main/extractor_metatypes.c:394 msgid "conductor" msgstr "диригент" #: src/main/extractor_metatypes.c:395 msgid "name of the conductor" msgstr "ім’я диригента" #: src/main/extractor_metatypes.c:396 msgid "interpretation" msgstr "інтерпретація" #: src/main/extractor_metatypes.c:397 msgid "" "information about the people behind interpretations of an existing piece" msgstr "дані щодо творців інтерпретації твору" #: src/main/extractor_metatypes.c:398 msgid "composer" msgstr "композитор" #: src/main/extractor_metatypes.c:399 msgid "name of the composer" msgstr "ім’я композитора" #: src/main/extractor_metatypes.c:401 src/main/extractor_metatypes.c:402 msgid "beats per minute" msgstr "тактів за хвилину" #: src/main/extractor_metatypes.c:403 msgid "encoded by" msgstr "автор кодування" #: src/main/extractor_metatypes.c:404 msgid "name of person or organization that encoded the file" msgstr "ім’я особи або назва установи, якою було закодовано файл" #: src/main/extractor_metatypes.c:405 msgid "original title" msgstr "початкова назва" #: src/main/extractor_metatypes.c:406 msgid "title of the original work" msgstr "назва початкової роботи" #: src/main/extractor_metatypes.c:407 msgid "original artist" msgstr "оригінальний виконавець" #: src/main/extractor_metatypes.c:408 msgid "name of the original artist" msgstr "ім’я або назва першого виконавця" #: src/main/extractor_metatypes.c:409 msgid "original writer" msgstr "оригінальний автор тексту" #: src/main/extractor_metatypes.c:410 msgid "name of the original lyricist or writer" msgstr "ім’я автора початкового тексту" #: src/main/extractor_metatypes.c:412 msgid "original release year" msgstr "рік випуску оригіналу" #: src/main/extractor_metatypes.c:413 msgid "year of the original release" msgstr "рік, коли було випущено оригінал" #: src/main/extractor_metatypes.c:414 msgid "original performer" msgstr "оригінальний виконавець" #: src/main/extractor_metatypes.c:415 msgid "name of the original performer" msgstr "ім’я або назва виконавця оригіналу" #: src/main/extractor_metatypes.c:416 msgid "lyrics" msgstr "текст" #: src/main/extractor_metatypes.c:417 msgid "lyrics of the song or text description of vocal activities" msgstr "текст пісні або текстовий опис вокалу" #: src/main/extractor_metatypes.c:418 msgid "popularity" msgstr "популярність" #: src/main/extractor_metatypes.c:419 msgid "information about the file's popularity" msgstr "дані щодо популярності файла" #: src/main/extractor_metatypes.c:420 msgid "licensee" msgstr "ліцензіат" #: src/main/extractor_metatypes.c:421 msgid "name of the owner or licensee of the file" msgstr "ім’я або назва власника або ліцензіата файла" #: src/main/extractor_metatypes.c:423 msgid "musician credit list" msgstr "список подяк музикантам" #: src/main/extractor_metatypes.c:424 msgid "names of contributing musicians" msgstr "імена музикантів-виконавців" #: src/main/extractor_metatypes.c:425 msgid "mood" msgstr "настрій" #: src/main/extractor_metatypes.c:426 msgid "keywords reflecting the mood of the piece" msgstr "ключові слова, які відповідають настрою твору" #: src/main/extractor_metatypes.c:427 msgid "subtitle" msgstr "підзаголовок" #: src/main/extractor_metatypes.c:428 msgid "subtitle of this part" msgstr "підзаголовок частини" #: src/main/extractor_metatypes.c:429 msgid "display type" msgstr "тип показу" #: src/main/extractor_metatypes.c:430 msgid "what rendering method should be used to display this item" msgstr "спосіб показу, який має бути використано для перегляду" #: src/main/extractor_metatypes.c:431 msgid "full data" msgstr "дані повністю" #: src/main/extractor_metatypes.c:432 msgid "" "entry that contains the full, original binary data (not really meta data)" msgstr "запис, що містить повні початкові двійкові дані (а не метадані)" #: src/main/extractor_metatypes.c:434 msgid "rating" msgstr "оцінка" #: src/main/extractor_metatypes.c:435 msgid "rating of the content" msgstr "оцінка вмісту" #: src/main/extractor_metatypes.c:436 src/main/extractor_metatypes.c:437 msgid "organization" msgstr "організація" #: src/main/extractor_metatypes.c:438 src/main/extractor_metatypes.c:439 msgid "ripper" msgstr "засіб видобування" #: src/main/extractor_metatypes.c:440 src/main/extractor_metatypes.c:441 msgid "producer" msgstr "виробник" #: src/main/extractor_metatypes.c:442 msgid "group" msgstr "група" #: src/main/extractor_metatypes.c:443 msgid "name of the group or band" msgstr "назва групи" #: src/main/extractor_metatypes.c:445 msgid "original filename" msgstr "початкова назва файла" #: src/main/extractor_metatypes.c:446 msgid "name of the original file (reserved for GNUnet)" msgstr "назва початкового файла (зарезервовано для GNUnet)" #: src/main/extractor_metatypes.c:447 msgid "disc count" msgstr "кількість дисків" #: src/main/extractor_metatypes.c:448 msgid "count of discs inside collection this disc belongs to" msgstr "кількість дисків у збірці, до якої належить цей диск" #: src/main/extractor_metatypes.c:449 msgid "codec" msgstr "кодек" #: src/main/extractor_metatypes.c:450 msgid "codec the data is stored in" msgstr "кодек, яким закодовано дані" #: src/main/extractor_metatypes.c:451 msgid "video codec" msgstr "відеокодек" #: src/main/extractor_metatypes.c:452 msgid "codec the video data is stored in" msgstr "кодек, яким закодовано відеодані" #: src/main/extractor_metatypes.c:453 msgid "audio codec" msgstr "аудіокодек" #: src/main/extractor_metatypes.c:454 msgid "codec the audio data is stored in" msgstr "кодек, яким закодовані звукові дані" #: src/main/extractor_metatypes.c:456 msgid "subtitle codec" msgstr "кодек субтитрів" #: src/main/extractor_metatypes.c:457 msgid "codec/format the subtitle data is stored in" msgstr "кодек або формат, у якому зберігаються субтитри" #: src/main/extractor_metatypes.c:458 msgid "container format" msgstr "формат контейнера" #: src/main/extractor_metatypes.c:459 msgid "container format the data is stored in" msgstr "формат контейнера, у якому зберігаються дані" #: src/main/extractor_metatypes.c:460 msgid "bitrate" msgstr "щільність потоку бітів" #: src/main/extractor_metatypes.c:461 msgid "exact or average bitrate in bits/s" msgstr "точна або приблизна щільність потоку бітів у біт/с" #: src/main/extractor_metatypes.c:462 msgid "nominal bitrate" msgstr "номінальна щільність потоку бітів" #: src/main/extractor_metatypes.c:463 msgid "" "nominal bitrate in bits/s. The actual bitrate might be different from this " "target bitrate." msgstr "" "номінальна щільність потоку бітів у біт/с. Справжня щільність потоку може " "відрізнятися від цієї очікуваної щільності." #: src/main/extractor_metatypes.c:464 msgid "minimum bitrate" msgstr "мінімальна щільність потоку бітів" #: src/main/extractor_metatypes.c:465 msgid "minimum bitrate in bits/s" msgstr "мінімальна щільність потоку бітів у біт/с" #: src/main/extractor_metatypes.c:467 msgid "maximum bitrate" msgstr "максимальна щільність потоку бітів" #: src/main/extractor_metatypes.c:468 msgid "maximum bitrate in bits/s" msgstr "максимальна щільність потоку бітів у біт/с" #: src/main/extractor_metatypes.c:469 msgid "serial" msgstr "номер" #: src/main/extractor_metatypes.c:470 msgid "serial number of track" msgstr "послідовний номер композиції" #: src/main/extractor_metatypes.c:471 msgid "encoder" msgstr "кодувальник" #: src/main/extractor_metatypes.c:472 msgid "encoder used to encode this stream" msgstr "кодувальник, який використовувався для кодування цих даних" #: src/main/extractor_metatypes.c:473 msgid "encoder version" msgstr "версія кодувальника" #: src/main/extractor_metatypes.c:474 msgid "version of the encoder used to encode this stream" msgstr "версія кодувальника, який використовувався для кодування цих даних" #: src/main/extractor_metatypes.c:475 msgid "track gain" msgstr "підсилення композиції" #: src/main/extractor_metatypes.c:476 msgid "track gain in db" msgstr "рівень композиції, у дБ" #: src/main/extractor_metatypes.c:478 msgid "track peak" msgstr "пік композиції" #: src/main/extractor_metatypes.c:479 msgid "peak of the track" msgstr "пік композиції" #: src/main/extractor_metatypes.c:480 msgid "album gain" msgstr "підсилення альбому" #: src/main/extractor_metatypes.c:481 msgid "album gain in db" msgstr "рівень альбому, у дБ" #: src/main/extractor_metatypes.c:482 msgid "album peak" msgstr "пік альбому" #: src/main/extractor_metatypes.c:483 msgid "peak of the album" msgstr "пік альбому" #: src/main/extractor_metatypes.c:484 msgid "reference level" msgstr "опорний рівень" #: src/main/extractor_metatypes.c:485 msgid "reference level of track and album gain values" msgstr "опорні рівні гучності композиції чи альбому" #: src/main/extractor_metatypes.c:486 msgid "location name" msgstr "назва місця" #: src/main/extractor_metatypes.c:487 msgid "" "human readable descriptive location of where the media has been recorded or " "produced" msgstr "" "зручний для читання описова назва місцевості, у якій було записано або " "створено дані" #: src/main/extractor_metatypes.c:489 msgid "location elevation" msgstr "географічна висота" #: src/main/extractor_metatypes.c:490 msgid "" "geo elevation of where the media has been recorded or produced in meters " "according to WGS84 (zero is average sea level)" msgstr "" "висота над рівнем моря, де було записано або створено дані у метрах " "відповідно до WGS84 (нуль відповідає рівню моря)" #: src/main/extractor_metatypes.c:491 msgid "location horizontal error" msgstr "похибка у даних гор. розташування" #: src/main/extractor_metatypes.c:492 msgid "represents the expected error on the horizontal positioning in meters" msgstr "очікувана похибка у вимірюванні горизонтальних координат у метрах" #: src/main/extractor_metatypes.c:493 msgid "location movement speed" msgstr "географічна швидкість пересування" #: src/main/extractor_metatypes.c:494 msgid "" "speed of the capturing device when performing the capture. Represented in m/s" msgstr "швидкість руху пристрою для знімання під час виконання зйомки у м/с" #: src/main/extractor_metatypes.c:495 msgid "location movement direction" msgstr "географічний напрямок пересування" #: src/main/extractor_metatypes.c:496 msgid "" "indicates the movement direction of the device performing the capture of a " "media. It is represented as degrees in floating point representation, 0 " "means the geographic north, and increases clockwise" msgstr "" "напрямок руху пристрою, яким виконувалося знімання даних. Визначається у " "градусах з використанням десяткових дробів, 0 відповідає географічній " "півночі, відлік ведеться за годинниковою стрілкою." #: src/main/extractor_metatypes.c:497 msgid "location capture direction" msgstr "географічний напрямок зйомки" #: src/main/extractor_metatypes.c:498 msgid "" "indicates the direction the device is pointing to when capturing a media. It " "is represented as degrees in floating point representation, 0 means the " "geographic north, and increases clockwise" msgstr "" "напрямок, у якому було спрямовано об’єктив пристрою, яким виконувалося " "знімання даних. Визначається у градусах з використанням десяткових дробів, 0 " "відповідає географічній півночі, відлік ведеться за годинниковою стрілкою." #: src/main/extractor_metatypes.c:500 msgid "show episode number" msgstr "номер серії передачі" #: src/main/extractor_metatypes.c:501 msgid "number of the episode within a season/show" msgstr "кількість серій у одному сезоні або програмі" #: src/main/extractor_metatypes.c:502 msgid "show season number" msgstr "номер сезону передачі" #: src/main/extractor_metatypes.c:503 msgid "number of the season of a show/series" msgstr "номер сезону програми або серіалу" #: src/main/extractor_metatypes.c:504 #, fuzzy msgid "grouping" msgstr "групування" #: src/main/extractor_metatypes.c:505 msgid "" "groups together media that are related and spans multiple tracks. An example " "are multiple pieces of a concerto" msgstr "" "групування пов’язаних мультимедійних даних з різних доріжок. Прикладом є " "різні частини одного концерту." #: src/main/extractor_metatypes.c:506 msgid "device manufacturer" msgstr "виробник пристрою" #: src/main/extractor_metatypes.c:507 msgid "manufacturer of the device used to create the media" msgstr "виробник пристрою, використаного для створення цих даних" #: src/main/extractor_metatypes.c:508 msgid "device model" msgstr "модель пристрою" #: src/main/extractor_metatypes.c:509 msgid "model of the device used to create the media" msgstr "модель пристрою, використаного для створення цих даних" #: src/main/extractor_metatypes.c:511 msgid "audio language" msgstr "мова звукового супроводу" #: src/main/extractor_metatypes.c:512 msgid "language of the audio track" msgstr "мова, якою записано звукову частину" #: src/main/extractor_metatypes.c:513 msgid "channels" msgstr "канали" #: src/main/extractor_metatypes.c:514 msgid "number of audio channels" msgstr "кількість каналів звукових даних" #: src/main/extractor_metatypes.c:515 msgid "sample rate" msgstr "частота дискретизації" #: src/main/extractor_metatypes.c:516 msgid "sample rate of the audio track" msgstr "частота дискретизації звукових даних" #: src/main/extractor_metatypes.c:517 msgid "audio depth" msgstr "глибина звуку" #: src/main/extractor_metatypes.c:518 msgid "number of bits per audio sample" msgstr "кількість бітів даних на фрагмент звуку" #: src/main/extractor_metatypes.c:519 msgid "audio bitrate" msgstr "бітова швидкість звуку" #: src/main/extractor_metatypes.c:520 msgid "bitrate of the audio track" msgstr "бітова швидкість звукових даних" #: src/main/extractor_metatypes.c:522 src/main/extractor_metatypes.c:523 msgid "maximum audio bitrate" msgstr "максимальна щільність потоку бітів" #: src/main/extractor_metatypes.c:524 msgid "video dimensions" msgstr "виміри зображення" #: src/main/extractor_metatypes.c:525 msgid "width and height of the video track (WxH)" msgstr "ширина і висота відеокадру (ШxВ)" #: src/main/extractor_metatypes.c:526 msgid "video depth" msgstr "глибина кольорів" #: src/main/extractor_metatypes.c:527 msgid "numbers of bits per pixel" msgstr "кількість бітів кольору на піксель" #: src/main/extractor_metatypes.c:528 msgid "frame rate" msgstr "частота кадрів" #: src/main/extractor_metatypes.c:529 msgid "number of frames per second (as D/N or floating point)" msgstr "кількість кадрів на секунду (дріб або число з рухомою крапкою)" #: src/main/extractor_metatypes.c:530 msgid "pixel aspect ratio" msgstr "формат зображення у пікселях" #: src/main/extractor_metatypes.c:531 msgid "pixel aspect ratio (as D/N)" msgstr "співвідношення сторін у пікселях (у форматі дробу)" #: src/main/extractor_metatypes.c:533 src/main/extractor_metatypes.c:534 msgid "video bitrate" msgstr "бітова швидкість відео" #: src/main/extractor_metatypes.c:535 src/main/extractor_metatypes.c:536 msgid "maximum video bitrate" msgstr "максимальна щільність потоку бітів відео" #: src/main/extractor_metatypes.c:537 msgid "subtitle language" msgstr "мова субтитрів" #: src/main/extractor_metatypes.c:538 msgid "language of the subtitle track" msgstr "мова, якою записано субтитри" #: src/main/extractor_metatypes.c:539 msgid "video language" msgstr "мова відео" #: src/main/extractor_metatypes.c:540 msgid "language of the video track" msgstr "мова, якою записано відеочастину" #: src/main/extractor_metatypes.c:541 msgid "table of contents" msgstr "зміст" #: src/main/extractor_metatypes.c:542 msgid "chapters, contents or bookmarks (in xml format)" msgstr "частини, вміст або закладки (у форматі xml)" #: src/main/extractor_metatypes.c:544 msgid "video duration" msgstr "тривалість відео" #: src/main/extractor_metatypes.c:545 msgid "duration of a video stream" msgstr "тривалість потоку відеоданих" #: src/main/extractor_metatypes.c:546 msgid "audio duration" msgstr "тривалість звуку" #: src/main/extractor_metatypes.c:547 msgid "duration of an audio stream" msgstr "тривалість потоку звукових даних" #: src/main/extractor_metatypes.c:548 msgid "subtitle duration" msgstr "тривалість субтитрів" #: src/main/extractor_metatypes.c:549 msgid "duration of a subtitle stream" msgstr "тривалість потоку субтитрів" #: src/main/extractor_metatypes.c:551 #, fuzzy msgid "audio preview" msgstr "бітова швидкість звуку" #: src/main/extractor_metatypes.c:552 #, fuzzy msgid "a preview of the file audio stream" msgstr "частота дискретизації звукових даних" #: src/main/extractor_metatypes.c:554 src/main/extractor_metatypes.c:555 msgid "last" msgstr "тривалість" #: src/main/getopt.c:684 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: параметр «%s» неоднозначний\n" #: src/main/getopt.c:709 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: параметр «--%s» не може мати аргументу\n" #: src/main/getopt.c:715 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: параметр «%c%s» не може мати аргументу\n" #: src/main/getopt.c:732 src/main/getopt.c:903 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: параметру «%s» необхідний аргумент\n" #: src/main/getopt.c:761 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: нерозпізнаний параметр «--%s»\n" #: src/main/getopt.c:765 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: нерозпізнаний параметр «%c%s»\n" #: src/main/getopt.c:791 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: неправильний параметр -- %c\n" #: src/main/getopt.c:793 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: некоректний параметр -- %c\n" #: src/main/getopt.c:822 src/main/getopt.c:952 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: параметру необхідний аргумент -- %c\n" #: src/main/getopt.c:870 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: параметр «-W %s» неоднозначний\n" #: src/main/getopt.c:888 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: параметр «-W %s» не повинен мати аргументу\n" #: src/plugins/flac_extractor.c:322 #, c-format msgid "%u Hz, %u channels" msgstr "%u Гц, %u каналів" #: src/plugins/man_extractor.c:215 msgid "Commands" msgstr "Команди" #: src/plugins/man_extractor.c:219 msgid "System calls" msgstr "Системні виклики" #: src/plugins/man_extractor.c:223 msgid "Library calls" msgstr "Виклики бібліотек" #: src/plugins/man_extractor.c:227 msgid "Special files" msgstr "Спеціальні файли" #: src/plugins/man_extractor.c:231 msgid "File formats and conventions" msgstr "Формати файлів та правила" #: src/plugins/man_extractor.c:235 msgid "Games" msgstr "Ігри" #: src/plugins/man_extractor.c:239 msgid "Conventions and miscellaneous" msgstr "Угоди та інше" #: src/plugins/man_extractor.c:243 msgid "System management commands" msgstr "Команди керування системою" #: src/plugins/man_extractor.c:247 msgid "Kernel routines" msgstr "Процедури ядра" #: src/plugins/ole2_extractor.c:387 msgid "No Proofing" msgstr "Без перевірки" #: src/plugins/ole2_extractor.c:395 msgid "Traditional Chinese" msgstr "Традиційна китайська" #: src/plugins/ole2_extractor.c:397 msgid "Simplified Chinese" msgstr "Спрощена китайська" #: src/plugins/ole2_extractor.c:405 msgid "Swiss German" msgstr "Швейцарська німецька" #: src/plugins/ole2_extractor.c:409 msgid "U.S. English" msgstr "Американська англійська" #: src/plugins/ole2_extractor.c:411 msgid "U.K. English" msgstr "Британська англійська" #: src/plugins/ole2_extractor.c:413 msgid "Australian English" msgstr "Австралійська англійська" #: src/plugins/ole2_extractor.c:415 msgid "Castilian Spanish" msgstr "Кастильська іспанська" #: src/plugins/ole2_extractor.c:417 msgid "Mexican Spanish" msgstr "Мексиканська іспанська" #: src/plugins/ole2_extractor.c:423 msgid "Belgian French" msgstr "Бельгійська французька" #: src/plugins/ole2_extractor.c:425 msgid "Canadian French" msgstr "Канадська французька" #: src/plugins/ole2_extractor.c:427 msgid "Swiss French" msgstr "Швейцарська французька" #: src/plugins/ole2_extractor.c:437 msgid "Swiss Italian" msgstr "Швейцарська італійська" #: src/plugins/ole2_extractor.c:445 msgid "Belgian Dutch" msgstr "Бельгійська голландська" #: src/plugins/ole2_extractor.c:447 msgid "Norwegian Bokmal" msgstr "Норвезька (бокмал)" #: src/plugins/ole2_extractor.c:457 msgid "Rhaeto-Romanic" msgstr "Ретороманська" #: src/plugins/ole2_extractor.c:463 msgid "Croato-Serbian (Latin)" msgstr "Хорвато-сербська (латиниця)" #: src/plugins/ole2_extractor.c:465 msgid "Serbo-Croatian (Cyrillic)" msgstr "Сербо-хорватська (кирилиця)" #: src/plugins/ole2_extractor.c:493 msgid "Farsi" msgstr "Фарсі" #: src/plugins/ole2_extractor.c:578 #, c-format msgid "Revision #%u: Author `%s' worked on `%s'" msgstr "Модифікація %u: автор «%s», співробітник «%s»" #: src/plugins/riff_extractor.c:145 #, c-format msgid "codec: %s, %u fps, %u ms" msgstr "кодек: %s, %u кд/с, %u мс" #: src/plugins/wav_extractor.c:120 msgid "mono" msgstr "моно" #: src/plugins/wav_extractor.c:120 msgid "stereo" msgstr "стерео" #~ msgid "Blues" #~ msgstr "Блюз" #~ msgid "Classic Rock" #~ msgstr "Класичний рок" #~ msgid "Country" #~ msgstr "Кантрі" #~ msgid "Dance" #~ msgstr "Танцювальна" #~ msgid "Disco" #~ msgstr "Диско" #~ msgid "Funk" #~ msgstr "Фанк" #~ msgid "Grunge" #~ msgstr "Ґрандж" #~ msgid "Hip-Hop" #~ msgstr "Хіп-хоп" #~ msgid "Jazz" #~ msgstr "Джаз" #~ msgid "Metal" #~ msgstr "Метал" #~ msgid "New Age" #~ msgstr "Нью-ейдж" #~ msgid "Oldies" #~ msgstr "Ретро" #~ msgid "Other" #~ msgstr "Інша" #~ msgid "Pop" #~ msgstr "Поп" #~ msgid "R&B" #~ msgstr "Ритм-енд-блюз" #~ msgid "Rap" #~ msgstr "Реп" #~ msgid "Reggae" #~ msgstr "Регі" #~ msgid "Rock" #~ msgstr "Рок" #~ msgid "Techno" #~ msgstr "Техно" #~ msgid "Alternative" #~ msgstr "Альтернативна" #~ msgid "Ska" #~ msgstr "Ска" #~ msgid "Death Metal" #~ msgstr "Деф-метал" #~ msgid "Pranks" #~ msgstr "Жарти-розиграші" #~ msgid "Soundtrack" #~ msgstr "Звукова доріжка" #~ msgid "Euro-Techno" #~ msgstr "Євротехно" #~ msgid "Ambient" #~ msgstr "Ембієнт" #~ msgid "Trip-Hop" #~ msgstr "Тріп-хоп" #~ msgid "Vocal" #~ msgstr "Вокал" #~ msgid "Jazz+Funk" #~ msgstr "Джаз+Фанк" #~ msgid "Fusion" #~ msgstr "Ф’южн" #~ msgid "Trance" #~ msgstr "Транс" #~ msgid "Classical" #~ msgstr "Класика" #~ msgid "Instrumental" #~ msgstr "Інструментальна" #~ msgid "Acid" #~ msgstr "Ейсід" #~ msgid "House" #~ msgstr "Хаус" #~ msgid "Game" #~ msgstr "Гра" #~ msgid "Sound Clip" #~ msgstr "Звуковий уривок" #~ msgid "Gospel" #~ msgstr "Ґоспел" #~ msgid "Noise" #~ msgstr "Шум" #~ msgid "Alt. Rock" #~ msgstr "Альт. рок" #~ msgid "Bass" #~ msgstr "Бейс" #~ msgid "Soul" #~ msgstr "Душа" #~ msgid "Punk" #~ msgstr "Панк" #~ msgid "Space" #~ msgstr "Простір" #~ msgid "Meditative" #~ msgstr "Медитативна" #~ msgid "Instrumental Pop" #~ msgstr "Інструментальний поп" #~ msgid "Instrumental Rock" #~ msgstr "Інструментальний рок" #~ msgid "Ethnic" #~ msgstr "Етнічна" #~ msgid "Gothic" #~ msgstr "Готична" #~ msgid "Darkwave" #~ msgstr "Дарквейв" #~ msgid "Techno-Industrial" #~ msgstr "Техно-індастріал" #~ msgid "Electronic" #~ msgstr "Електронна" #~ msgid "Pop-Folk" #~ msgstr "Поп-фолк" #~ msgid "Eurodance" #~ msgstr "Євроденс" #~ msgid "Dream" #~ msgstr "Дрім" #~ msgid "Southern Rock" #~ msgstr "Південний рок" #~ msgid "Comedy" #~ msgstr "Комедія" #~ msgid "Cult" #~ msgstr "Культова" #~ msgid "Gangsta Rap" #~ msgstr "Гангста-реп" #~ msgid "Top 40" #~ msgstr "Топ-40" #~ msgid "Christian Rap" #~ msgstr "Християнський реп" #~ msgid "Pop/Funk" #~ msgstr "Поп/фанк" #~ msgid "Jungle" #~ msgstr "Джангл" #~ msgid "Native American" #~ msgstr "Індіанська" #~ msgid "Cabaret" #~ msgstr "Кабаре" #~ msgid "New Wave" #~ msgstr "Нью-вейв" #~ msgid "Psychedelic" #~ msgstr "Психоделіка" #~ msgid "Rave" #~ msgstr "Рейв" #~ msgid "Showtunes" #~ msgstr "Шоу-мелодії" #~ msgid "Trailer" #~ msgstr "Трейлер" #~ msgid "Lo-Fi" #~ msgstr "Лоу-фай" #~ msgid "Tribal" #~ msgstr "Племенна" #~ msgid "Acid Punk" #~ msgstr "Ейсід-панк" #~ msgid "Acid Jazz" #~ msgstr "Ейсід-джаз" #~ msgid "Polka" #~ msgstr "Полька" #~ msgid "Retro" #~ msgstr "Ретро" #~ msgid "Musical" #~ msgstr "Музична" #~ msgid "Rock & Roll" #~ msgstr "Рок-н-рол" #~ msgid "Hard Rock" #~ msgstr "Хардрок" #~ msgid "Folk" #~ msgstr "Фольклор" #~ msgid "Folk/Rock" #~ msgstr "Фольклор/рок" #~ msgid "National Folk" #~ msgstr "Народний фольклор" #~ msgid "Swing" #~ msgstr "Свінг" #~ msgid "Fast-Fusion" #~ msgstr "Фаст-ф’южн" #~ msgid "Bebob" #~ msgstr "Бібоб" #~ msgid "Latin" #~ msgstr "Латинська" #~ msgid "Revival" #~ msgstr "Ривайвл" #~ msgid "Celtic" #~ msgstr "Кельтська" #~ msgid "Bluegrass" #~ msgstr "Блюграс" #~ msgid "Avantgarde" #~ msgstr "Авангард" #~ msgid "Gothic Rock" #~ msgstr "Готичний рок" #~ msgid "Progressive Rock" #~ msgstr "Прогресивний рок" #~ msgid "Psychedelic Rock" #~ msgstr "Психоделічний рок" #~ msgid "Symphonic Rock" #~ msgstr "Симфонічний рок" #~ msgid "Slow Rock" #~ msgstr "Повільний рок" #~ msgid "Big Band" #~ msgstr "Біг-бенд" #~ msgid "Chorus" #~ msgstr "Хорова" #~ msgid "Easy Listening" #~ msgstr "Легка музика" #~ msgid "Acoustic" #~ msgstr "Акустична" #~ msgid "Humour" #~ msgstr "Гумор" #~ msgid "Speech" #~ msgstr "Мова" #~ msgid "Chanson" #~ msgstr "Шансон" #~ msgid "Opera" #~ msgstr "Опера" #~ msgid "Chamber Music" #~ msgstr "Камерна музика" #~ msgid "Sonata" #~ msgstr "Соната" #~ msgid "Symphony" #~ msgstr "Симфонія" #~ msgid "Booty Bass" #~ msgstr "Буті-бейс" #~ msgid "Primus" #~ msgstr "Примас" #~ msgid "Porn Groove" #~ msgstr "Порн-рів" #~ msgid "Satire" #~ msgstr "Сатира" #~ msgid "Slow Jam" #~ msgstr "Повільний джем" #~ msgid "Club" #~ msgstr "Клуб" #~ msgid "Tango" #~ msgstr "Танго" #~ msgid "Samba" #~ msgstr "Самба" #~ msgid "Folklore" #~ msgstr "Фольклор" #~ msgid "Ballad" #~ msgstr "Балада" #~ msgid "Power Ballad" #~ msgstr "Пауер-балада" #~ msgid "Rhythmic Soul" #~ msgstr "Ритмічний соул" #~ msgid "Freestyle" #~ msgstr "Вільний стиль" #~ msgid "Duet" #~ msgstr "Дует" #~ msgid "Punk Rock" #~ msgstr "Панк-рок" #~ msgid "Drum Solo" #~ msgstr "Соло ударних" #~ msgid "A Cappella" #~ msgstr "А капелла" #~ msgid "Euro-House" #~ msgstr "Єврохаус" #~ msgid "Dance Hall" #~ msgstr "Танцмайданчик" #~ msgid "Goa" #~ msgstr "Гоа" #~ msgid "Drum & Bass" #~ msgstr "Драм-енд-бейс" #~ msgid "Club-House" #~ msgstr "Клаб-хаус" #~ msgid "Hardcore" #~ msgstr "Хардкор" #~ msgid "Terror" #~ msgstr "Терор" #~ msgid "Indie" #~ msgstr "Інді" #~ msgid "BritPop" #~ msgstr "Бритпоп" #~ msgid "Negerpunk" #~ msgstr "Негритянський панк" #~ msgid "Polsk Punk" #~ msgstr "Польський панк" #~ msgid "Beat" #~ msgstr "Біт" #~ msgid "Christian Gangsta Rap" #~ msgstr "Християнський гангста-реп" #~ msgid "Heavy Metal" #~ msgstr "Важкий метал" #~ msgid "Black Metal" #~ msgstr "Блек-метал" #~ msgid "Crossover" #~ msgstr "Перетин" #~ msgid "Contemporary Christian" #~ msgstr "Сучасна християнська" #~ msgid "Christian Rock" #~ msgstr "Християнський рок" #~ msgid "Merengue" #~ msgstr "Меренга" #~ msgid "Salsa" #~ msgstr "Сальса" #~ msgid "Thrash Metal" #~ msgstr "Треш-метал" #~ msgid "Anime" #~ msgstr "Аніме" #~ msgid "JPop" #~ msgstr "Джей-поп" #~ msgid "Synthpop" #~ msgstr "Синтез-поп" #~ msgid "GB" #~ msgstr "ГБ" #~ msgid "MB" #~ msgstr "МБ" #~ msgid "KB" #~ msgstr "КБ" #~ msgid "Bytes" #~ msgstr "байтів" #~ msgid "joint stereo" #~ msgstr "об'єднане стерео" #~ msgid "MPEG-1" #~ msgstr "MPEG-1" #~ msgid "MPEG-2" #~ msgstr "MPEG-2" #~ msgid "MPEG-2.5" #~ msgstr "MPEG-2.5" #~ msgid "Layer I" #~ msgstr "Layer I" #~ msgid "Layer II" #~ msgstr "Layer II" #~ msgid "Layer III" #~ msgstr "Layer III" #~ msgid "VBR" #~ msgstr "VBR" #~ msgid "CBR" #~ msgstr "CBR" #~ msgid "no copyright" #~ msgstr "без захисту авторськими правами" #~ msgid "original" #~ msgstr "оригінал" #~ msgid "copy" #~ msgstr "копія" #~ msgid "%ux%u dots per inch" #~ msgstr "%ux%u точок на дюйм" #~ msgid "%ux%u dots per cm" #~ msgstr "%ux%u точок на см" #~ msgid "%ux%u dots per inch?" #~ msgstr "%ux%u точок на дюйм?" libextractor-1.3/po/ga.po0000644000175000017500000016432212255661612012363 00000000000000# Irish translations for libextractor # Copyright (C) 2005 Free Software Foundation, Inc. # This file is distributed under the same license as the libextractor package. # Kevin Patrick Scannell , 2005, 2006, 2007, 2008. msgid "" msgstr "" "Project-Id-Version: libextractor 0.5.20\n" "Report-Msgid-Bugs-To: libextractor@gnu.org\n" "POT-Creation-Date: 2013-12-22 23:11+0100\n" "PO-Revision-Date: 2008-03-21 20:46-0700\n" "Last-Translator: Kevin Scannell \n" "Language-Team: Irish \n" "Language: ga\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-1\n" "Content-Transfer-Encoding: 8bit\n" #: src/main/extract.c:132 #, c-format msgid "" "Usage: %s\n" "%s\n" "\n" msgstr "" "sid: %s\n" "%s\n" "\n" #: src/main/extract.c:135 #, c-format msgid "" "Arguments mandatory for long options are also mandatory for short options.\n" msgstr "" "Is riachtanach le rogha ghearr aon argint at riachtanach leis an rogha " "fhada.\n" #: src/main/extract.c:217 msgid "print output in bibtex format" msgstr "priontil aschur i bhformid bibtex" #: src/main/extract.c:219 msgid "produce grep-friendly output (all results on one line per file)" msgstr "" "aschur is fidir priseil le grep (gach toradh ar lne amhin sa chomhad)" #: src/main/extract.c:221 msgid "print this help" msgstr "taispein an chabhair seo" #: src/main/extract.c:223 msgid "run plugins in-process (simplifies debugging)" msgstr "" #: src/main/extract.c:225 msgid "read data from file into memory and extract from memory" msgstr "" #: src/main/extract.c:227 msgid "load an extractor plugin named LIBRARY" msgstr "luchtaigh breisen asbhainteora darb ainm LEABHARLANN" #: src/main/extract.c:229 msgid "list all keyword types" msgstr "taispein gach cinel lorgfhocail" #: src/main/extract.c:231 msgid "do not use the default set of extractor plugins" msgstr "n hsid na breisein asbhainteora ramhshocraithe" #: src/main/extract.c:233 msgid "print only keywords of the given TYPE (use -L to get a list)" msgstr "" "n taispein ach lorgfhocail den CHINEL tugtha (sid -L chun liosta a " "fhil)" #: src/main/extract.c:235 msgid "print the version number" msgstr "taispein an leagan" #: src/main/extract.c:237 msgid "be verbose" msgstr "b foclach" #: src/main/extract.c:239 msgid "do not print keywords of the given TYPE" msgstr "n taispein lorgfhocail den CHINEL tugtha" #: src/main/extract.c:242 msgid "extract [OPTIONS] [FILENAME]*" msgstr "extract [ROGHANNA] [COMHADAINM]*" #: src/main/extract.c:243 msgid "Extract metadata from files." msgstr "Bain meiteashonra as comhaid." #: src/main/extract.c:288 #, fuzzy, c-format msgid "Found by `%s' plugin:\n" msgstr "Theip ar lucht an bhreisein `%s': %s\n" #: src/main/extract.c:291 src/main/extract.c:378 #: src/main/extractor_metatypes.c:145 src/main/extractor_print.c:86 #: src/main/extractor_print.c:96 msgid "unknown" msgstr "anaithnid" #: src/main/extract.c:296 #, c-format msgid "%s - (unknown, %u bytes)\n" msgstr "" #: src/main/extract.c:325 #, fuzzy, c-format msgid "%s - (binary, %u bytes)\n" msgstr "%s - (dnrtha)\n" #: src/main/extract.c:809 src/main/extract.c:821 msgid "" "Illegal combination of options, cannot combine multiple styles of printing.\n" msgstr "" #: src/main/extract.c:854 #, c-format msgid "You must specify an argument for the `%s' option (option ignored).\n" msgstr "" "N mr duit argint a thabhairt i ndiaidh na rogha `%s' ( ligean thart).\n" #: src/main/extract.c:923 msgid "Use --help to get a list of options.\n" msgstr "Bain sid as '--help' le haghaidh nos m roghanna.\n" #: src/main/extract.c:964 #, fuzzy msgid "% BiBTeX file\n" msgstr "%% Comhad BiBTeX\n" #: src/main/extract.c:972 #, c-format msgid "Keywords for file %s:\n" msgstr "Lorgfhocail do chomhad %s:\n" #: src/main/extractor.c:676 #, c-format msgid "Initialization of plugin mechanism failed: %s!\n" msgstr "Theip ar ths meicnocht na mbreisen: %s!\n" #: src/main/extractor_metatypes.c:46 msgid "reserved" msgstr "" #: src/main/extractor_metatypes.c:47 msgid "reserved value, do not use" msgstr "" #: src/main/extractor_metatypes.c:48 msgid "mimetype" msgstr "Cinel MIME" #: src/main/extractor_metatypes.c:49 #, fuzzy msgid "mime type" msgstr "Cinel MIME" #: src/main/extractor_metatypes.c:50 #, fuzzy msgid "embedded filename" msgstr "comhadainm" #: src/main/extractor_metatypes.c:51 msgid "filename that was embedded (not necessarily the current filename)" msgstr "" #: src/main/extractor_metatypes.c:52 msgid "comment" msgstr "nta trchta" #: src/main/extractor_metatypes.c:53 msgid "comment about the content" msgstr "" #: src/main/extractor_metatypes.c:54 msgid "title" msgstr "teideal" #: src/main/extractor_metatypes.c:55 msgid "title of the work" msgstr "" #: src/main/extractor_metatypes.c:57 msgid "book title" msgstr "teideal an leabhair" #: src/main/extractor_metatypes.c:58 msgid "title of the book containing the work" msgstr "" #: src/main/extractor_metatypes.c:59 #, fuzzy msgid "book edition" msgstr "teideal an leabhair" #: src/main/extractor_metatypes.c:60 msgid "edition of the book (or book containing the work)" msgstr "" #: src/main/extractor_metatypes.c:61 #, fuzzy msgid "book chapter" msgstr "caibidil" #: src/main/extractor_metatypes.c:62 #, fuzzy msgid "chapter number" msgstr "uimhir an riain" #: src/main/extractor_metatypes.c:63 #, fuzzy msgid "journal name" msgstr "ainm iomln" #: src/main/extractor_metatypes.c:64 msgid "journal or magazine the work was published in" msgstr "" #: src/main/extractor_metatypes.c:65 msgid "journal volume" msgstr "" #: src/main/extractor_metatypes.c:66 msgid "volume of a journal or multi-volume book" msgstr "" #: src/main/extractor_metatypes.c:68 #, fuzzy msgid "journal number" msgstr "uimhir an riain" #: src/main/extractor_metatypes.c:69 msgid "number of a journal, magazine or tech-report" msgstr "" #: src/main/extractor_metatypes.c:70 msgid "page count" msgstr "lon na leathanach" #: src/main/extractor_metatypes.c:71 msgid "total number of pages of the work" msgstr "" #: src/main/extractor_metatypes.c:72 #, fuzzy msgid "page range" msgstr "ord na leathanach" #: src/main/extractor_metatypes.c:73 msgid "page numbers of the publication in the respective journal or book" msgstr "" #: src/main/extractor_metatypes.c:74 #, fuzzy msgid "author name" msgstr "dar" #: src/main/extractor_metatypes.c:75 msgid "name of the author(s)" msgstr "" #: src/main/extractor_metatypes.c:76 #, fuzzy msgid "author email" msgstr "dar" #: src/main/extractor_metatypes.c:77 msgid "e-mail of the author(s)" msgstr "" #: src/main/extractor_metatypes.c:79 #, fuzzy msgid "author institution" msgstr "treoshuomh" #: src/main/extractor_metatypes.c:80 msgid "institution the author worked for" msgstr "" #: src/main/extractor_metatypes.c:81 msgid "publisher" msgstr "foilsitheoir" #: src/main/extractor_metatypes.c:82 #, fuzzy msgid "name of the publisher" msgstr "foilsitheoir" #: src/main/extractor_metatypes.c:83 #, fuzzy msgid "publisher's address" msgstr "foilsitheoir" #: src/main/extractor_metatypes.c:84 msgid "Address of the publisher (often only the city)" msgstr "" #: src/main/extractor_metatypes.c:85 msgid "publishing institution" msgstr "" #: src/main/extractor_metatypes.c:86 msgid "" "institution that was involved in the publishing, but not necessarily the " "publisher" msgstr "" #: src/main/extractor_metatypes.c:87 #, fuzzy msgid "publication series" msgstr "dta foilsithe" #: src/main/extractor_metatypes.c:88 msgid "series of books the book was published in" msgstr "" #: src/main/extractor_metatypes.c:90 #, fuzzy msgid "publication type" msgstr "dta foilsithe" #: src/main/extractor_metatypes.c:91 msgid "type of the tech-report" msgstr "" #: src/main/extractor_metatypes.c:92 #, fuzzy msgid "publication year" msgstr "dta foilsithe" #: src/main/extractor_metatypes.c:93 msgid "year of publication (or, if unpublished, the year of creation)" msgstr "" #: src/main/extractor_metatypes.c:94 #, fuzzy msgid "publication month" msgstr "dta foilsithe" #: src/main/extractor_metatypes.c:95 msgid "month of publication (or, if unpublished, the month of creation)" msgstr "" #: src/main/extractor_metatypes.c:96 #, fuzzy msgid "publication day" msgstr "dta foilsithe" #: src/main/extractor_metatypes.c:97 msgid "" "day of publication (or, if unpublished, the day of creation), relative to " "the given month" msgstr "" #: src/main/extractor_metatypes.c:98 msgid "publication date" msgstr "dta foilsithe" #: src/main/extractor_metatypes.c:99 msgid "date of publication (or, if unpublished, the date of creation)" msgstr "" #: src/main/extractor_metatypes.c:101 msgid "bibtex eprint" msgstr "" #: src/main/extractor_metatypes.c:102 msgid "specification of an electronic publication" msgstr "" #: src/main/extractor_metatypes.c:103 #, fuzzy msgid "bibtex entry type" msgstr "cinel an bhair" #: src/main/extractor_metatypes.c:104 msgid "type of the publication for bibTeX bibliographies" msgstr "" #: src/main/extractor_metatypes.c:105 msgid "language" msgstr "teanga" #: src/main/extractor_metatypes.c:106 msgid "language the work uses" msgstr "" #: src/main/extractor_metatypes.c:107 #, fuzzy msgid "creation time" msgstr "dta a cruthaodh" #: src/main/extractor_metatypes.c:108 msgid "time and date of creation" msgstr "" #: src/main/extractor_metatypes.c:109 msgid "URL" msgstr "" #: src/main/extractor_metatypes.c:110 msgid "universal resource location (where the work is made available)" msgstr "" #: src/main/extractor_metatypes.c:112 msgid "URI" msgstr "" #: src/main/extractor_metatypes.c:113 #, fuzzy msgid "universal resource identifier" msgstr "aitheantir-acmhainne" #: src/main/extractor_metatypes.c:114 msgid "international standard recording code" msgstr "cd caighdenach idirnisinta taifeadta" #: src/main/extractor_metatypes.c:115 msgid "ISRC number identifying the work" msgstr "" #: src/main/extractor_metatypes.c:116 msgid "MD4" msgstr "MD4" #: src/main/extractor_metatypes.c:117 msgid "MD4 hash" msgstr "" #: src/main/extractor_metatypes.c:118 msgid "MD5" msgstr "MD5" #: src/main/extractor_metatypes.c:119 msgid "MD5 hash" msgstr "" #: src/main/extractor_metatypes.c:120 msgid "SHA-0" msgstr "SHA-0" #: src/main/extractor_metatypes.c:121 #, fuzzy msgid "SHA-0 hash" msgstr "SHA-0" #: src/main/extractor_metatypes.c:123 msgid "SHA-1" msgstr "SHA-1" #: src/main/extractor_metatypes.c:124 #, fuzzy msgid "SHA-1 hash" msgstr "SHA-1" #: src/main/extractor_metatypes.c:125 msgid "RipeMD160" msgstr "RipeMD160" #: src/main/extractor_metatypes.c:126 #, fuzzy msgid "RipeMD150 hash" msgstr "RipeMD160" #: src/main/extractor_metatypes.c:127 src/main/extractor_metatypes.c:128 msgid "GPS latitude ref" msgstr "" #: src/main/extractor_metatypes.c:129 src/main/extractor_metatypes.c:130 msgid "GPS latitude" msgstr "" #: src/main/extractor_metatypes.c:131 src/main/extractor_metatypes.c:132 msgid "GPS longitude ref" msgstr "" #: src/main/extractor_metatypes.c:134 src/main/extractor_metatypes.c:135 msgid "GPS longitude" msgstr "" #: src/main/extractor_metatypes.c:136 msgid "city" msgstr "" #: src/main/extractor_metatypes.c:137 msgid "name of the city where the document originated" msgstr "" #: src/main/extractor_metatypes.c:138 #, fuzzy msgid "sublocation" msgstr "suomh" #: src/main/extractor_metatypes.c:139 msgid "more specific location of the geographic origin" msgstr "" #: src/main/extractor_metatypes.c:140 #, fuzzy msgid "country" msgstr "Ceolta Tuaithe" #: src/main/extractor_metatypes.c:141 msgid "name of the country where the document originated" msgstr "" #: src/main/extractor_metatypes.c:142 #, fuzzy msgid "country code" msgstr "Ceolta Tuaithe" #: src/main/extractor_metatypes.c:143 msgid "ISO 2-letter country code for the country of origin" msgstr "" #: src/main/extractor_metatypes.c:146 msgid "specifics are not known" msgstr "" #: src/main/extractor_metatypes.c:147 src/main/extractor_metatypes.c:148 msgid "description" msgstr "cur sos" #: src/main/extractor_metatypes.c:149 msgid "copyright" msgstr "cipcheart" #: src/main/extractor_metatypes.c:150 msgid "Name of the entity holding the copyright" msgstr "" #: src/main/extractor_metatypes.c:151 #, fuzzy msgid "rights" msgstr "cipcheart" #: src/main/extractor_metatypes.c:152 #, fuzzy msgid "information about rights" msgstr "eolas" #: src/main/extractor_metatypes.c:153 src/main/extractor_metatypes.c:154 msgid "keywords" msgstr "lorgfhocail" #: src/main/extractor_metatypes.c:156 src/main/extractor_metatypes.c:157 msgid "abstract" msgstr "" #: src/main/extractor_metatypes.c:158 src/main/extractor_metatypes.c:159 msgid "summary" msgstr "achoimre" #: src/main/extractor_metatypes.c:160 msgid "subject" msgstr "bhar" #: src/main/extractor_metatypes.c:161 #, fuzzy msgid "subject matter" msgstr "bhar" #: src/main/extractor_metatypes.c:162 src/main/extractor_metatypes.c:195 msgid "creator" msgstr "cruthaitheoir" #: src/main/extractor_metatypes.c:163 msgid "name of the person who created the document" msgstr "" #: src/main/extractor_metatypes.c:164 msgid "format" msgstr "formid" #: src/main/extractor_metatypes.c:165 msgid "name of the document format" msgstr "" #: src/main/extractor_metatypes.c:167 msgid "format version" msgstr "leagan na formide" #: src/main/extractor_metatypes.c:168 msgid "version of the document format" msgstr "" #: src/main/extractor_metatypes.c:169 msgid "created by software" msgstr "cruthaithe ag bogearra" #: src/main/extractor_metatypes.c:170 msgid "name of the software that created the document" msgstr "" #: src/main/extractor_metatypes.c:171 #, fuzzy msgid "unknown date" msgstr "anaithnid" #: src/main/extractor_metatypes.c:172 msgid "" "ambiguous date (could specify creation time, modification time or access " "time)" msgstr "" #: src/main/extractor_metatypes.c:173 msgid "creation date" msgstr "dta a cruthaodh" #: src/main/extractor_metatypes.c:174 msgid "date the document was created" msgstr "" #: src/main/extractor_metatypes.c:175 msgid "modification date" msgstr "dta mionathraithe" #: src/main/extractor_metatypes.c:176 msgid "date the document was modified" msgstr "" #: src/main/extractor_metatypes.c:178 msgid "last printed" msgstr "priontilte" #: src/main/extractor_metatypes.c:179 msgid "date the document was last printed" msgstr "" #: src/main/extractor_metatypes.c:180 msgid "last saved by" msgstr "sbhilte is dana ag" #: src/main/extractor_metatypes.c:181 msgid "name of the user who saved the document last" msgstr "" #: src/main/extractor_metatypes.c:182 msgid "total editing time" msgstr "am iomln eagair" #: src/main/extractor_metatypes.c:183 msgid "time spent editing the document" msgstr "" #: src/main/extractor_metatypes.c:184 msgid "editing cycles" msgstr "timthriallta eagarthireachta" #: src/main/extractor_metatypes.c:185 #, fuzzy msgid "number of editing cycles" msgstr "timthriallta eagarthireachta" #: src/main/extractor_metatypes.c:186 msgid "modified by software" msgstr "mionathraithe ag bogearra" #: src/main/extractor_metatypes.c:187 msgid "name of software making modifications" msgstr "" #: src/main/extractor_metatypes.c:189 msgid "revision history" msgstr "stair leasaithe" #: src/main/extractor_metatypes.c:190 msgid "information about the revision history" msgstr "" #: src/main/extractor_metatypes.c:191 #, fuzzy msgid "embedded file size" msgstr "mid comhaid" #: src/main/extractor_metatypes.c:192 msgid "size of the contents of the container as embedded in the file" msgstr "" #: src/main/extractor_metatypes.c:193 #, fuzzy msgid "file type" msgstr "Cinel MIME" #: src/main/extractor_metatypes.c:194 msgid "standard Macintosh Finder file type information" msgstr "" #: src/main/extractor_metatypes.c:196 msgid "standard Macintosh Finder file creator information" msgstr "" #: src/main/extractor_metatypes.c:197 #, fuzzy msgid "package name" msgstr "pacisteoir" #: src/main/extractor_metatypes.c:198 msgid "unique identifier for the package" msgstr "" #: src/main/extractor_metatypes.c:200 #, fuzzy msgid "package version" msgstr "pacisteoir" #: src/main/extractor_metatypes.c:201 msgid "version of the software and its package" msgstr "" #: src/main/extractor_metatypes.c:202 #, fuzzy msgid "section" msgstr "cur sos" #: src/main/extractor_metatypes.c:203 msgid "category the software package belongs to" msgstr "" #: src/main/extractor_metatypes.c:204 #, fuzzy msgid "upload priority" msgstr "tosaocht" #: src/main/extractor_metatypes.c:205 msgid "priority for promoting the release to production" msgstr "" #: src/main/extractor_metatypes.c:206 #, fuzzy msgid "dependencies" msgstr "splechas" #: src/main/extractor_metatypes.c:207 msgid "packages this package depends upon" msgstr "" #: src/main/extractor_metatypes.c:208 #, fuzzy msgid "conflicting packages" msgstr "coinbhleachta" #: src/main/extractor_metatypes.c:209 msgid "packages that cannot be installed with this package" msgstr "" #: src/main/extractor_metatypes.c:211 #, fuzzy msgid "replaced packages" msgstr "ionadaonn" #: src/main/extractor_metatypes.c:212 msgid "packages made obsolete by this package" msgstr "" #: src/main/extractor_metatypes.c:213 msgid "provides" msgstr "solthraonn" #: src/main/extractor_metatypes.c:214 msgid "functionality provided by this package" msgstr "" #: src/main/extractor_metatypes.c:215 #, fuzzy msgid "recommendations" msgstr "nta trchta" #: src/main/extractor_metatypes.c:216 msgid "packages recommended for installation in conjunction with this package" msgstr "" #: src/main/extractor_metatypes.c:217 msgid "suggestions" msgstr "" #: src/main/extractor_metatypes.c:218 msgid "packages suggested for installation in conjunction with this package" msgstr "" #: src/main/extractor_metatypes.c:219 msgid "maintainer" msgstr "" #: src/main/extractor_metatypes.c:220 msgid "name of the maintainer" msgstr "" #: src/main/extractor_metatypes.c:222 #, fuzzy msgid "installed size" msgstr "mid comhaid" #: src/main/extractor_metatypes.c:223 msgid "space consumption after installation" msgstr "" #: src/main/extractor_metatypes.c:224 src/main/extractor_metatypes.c:304 msgid "source" msgstr "foinse" #: src/main/extractor_metatypes.c:225 msgid "original source code" msgstr "" #: src/main/extractor_metatypes.c:226 msgid "is essential" msgstr "" #: src/main/extractor_metatypes.c:227 msgid "package is marked as essential" msgstr "" #: src/main/extractor_metatypes.c:228 msgid "target architecture" msgstr "" #: src/main/extractor_metatypes.c:229 msgid "hardware architecture the contents can be used for" msgstr "" #: src/main/extractor_metatypes.c:230 #, fuzzy msgid "pre-dependency" msgstr "splechas" #: src/main/extractor_metatypes.c:231 msgid "dependency that must be satisfied before installation" msgstr "" #: src/main/extractor_metatypes.c:233 msgid "license" msgstr "ceadnas" #: src/main/extractor_metatypes.c:234 msgid "applicable copyright license" msgstr "" #: src/main/extractor_metatypes.c:235 msgid "distribution" msgstr "dileadh" #: src/main/extractor_metatypes.c:236 msgid "distribution the package is a part of" msgstr "" #: src/main/extractor_metatypes.c:237 #, fuzzy msgid "build host" msgstr "stromhaire-tgla" #: src/main/extractor_metatypes.c:238 msgid "machine the package was build on" msgstr "" #: src/main/extractor_metatypes.c:239 msgid "vendor" msgstr "doltir" #: src/main/extractor_metatypes.c:240 msgid "name of the software vendor" msgstr "" #: src/main/extractor_metatypes.c:241 #, fuzzy msgid "target operating system" msgstr "cras oibrichin" #: src/main/extractor_metatypes.c:242 msgid "operating system for which this package was made" msgstr "" #: src/main/extractor_metatypes.c:244 #, fuzzy msgid "software version" msgstr "bogearra" #: src/main/extractor_metatypes.c:245 msgid "version of the software contained in the file" msgstr "" #: src/main/extractor_metatypes.c:246 msgid "target platform" msgstr "" #: src/main/extractor_metatypes.c:247 msgid "" "name of the architecture, operating system and distribution this package is " "for" msgstr "" #: src/main/extractor_metatypes.c:248 #, fuzzy msgid "resource type" msgstr "cinel-acmhainne" #: src/main/extractor_metatypes.c:249 msgid "" "categorization of the nature of the resource that is more specific than the " "file format" msgstr "" #: src/main/extractor_metatypes.c:250 msgid "library search path" msgstr "" #: src/main/extractor_metatypes.c:251 msgid "" "path in the file system to be considered when looking for required libraries" msgstr "" #: src/main/extractor_metatypes.c:252 #, fuzzy msgid "library dependency" msgstr "splechas crua-earra" #: src/main/extractor_metatypes.c:253 msgid "name of a library that this file depends on" msgstr "" #: src/main/extractor_metatypes.c:255 src/main/extractor_metatypes.c:256 msgid "camera make" msgstr "dants an cheamara" #: src/main/extractor_metatypes.c:257 src/main/extractor_metatypes.c:258 msgid "camera model" msgstr "danamh an cheamara" #: src/main/extractor_metatypes.c:259 src/main/extractor_metatypes.c:260 msgid "exposure" msgstr "nochtadh" #: src/main/extractor_metatypes.c:261 src/main/extractor_metatypes.c:262 msgid "aperture" msgstr "cr" #: src/main/extractor_metatypes.c:263 src/main/extractor_metatypes.c:264 msgid "exposure bias" msgstr "laofacht nochta" #: src/main/extractor_metatypes.c:266 src/main/extractor_metatypes.c:267 msgid "flash" msgstr "splanc" #: src/main/extractor_metatypes.c:268 src/main/extractor_metatypes.c:269 msgid "flash bias" msgstr "laofacht splaince" #: src/main/extractor_metatypes.c:270 src/main/extractor_metatypes.c:271 msgid "focal length" msgstr "fad fcais" #: src/main/extractor_metatypes.c:272 src/main/extractor_metatypes.c:273 #, fuzzy msgid "focal length 35mm" msgstr "fad fcais" #: src/main/extractor_metatypes.c:274 src/main/extractor_metatypes.c:275 msgid "iso speed" msgstr "luas ISO" #: src/main/extractor_metatypes.c:277 src/main/extractor_metatypes.c:278 msgid "exposure mode" msgstr "md nochta" #: src/main/extractor_metatypes.c:279 src/main/extractor_metatypes.c:280 msgid "metering mode" msgstr "md madrla" #: src/main/extractor_metatypes.c:281 src/main/extractor_metatypes.c:282 msgid "macro mode" msgstr "md macra" #: src/main/extractor_metatypes.c:283 src/main/extractor_metatypes.c:284 msgid "image quality" msgstr "cilocht omh" #: src/main/extractor_metatypes.c:285 src/main/extractor_metatypes.c:286 msgid "white balance" msgstr "cothromaocht bhn" #: src/main/extractor_metatypes.c:288 src/main/extractor_metatypes.c:289 msgid "orientation" msgstr "treoshuomh" #: src/main/extractor_metatypes.c:290 src/main/extractor_metatypes.c:291 msgid "magnification" msgstr "formhad" #: src/main/extractor_metatypes.c:292 #, fuzzy msgid "image dimensions" msgstr "treoshuomh an leathanaigh" #: src/main/extractor_metatypes.c:293 msgid "size of the image in pixels (width times height)" msgstr "" #: src/main/extractor_metatypes.c:294 src/main/extractor_metatypes.c:295 #, fuzzy msgid "produced by software" msgstr "mionathraithe ag bogearra" #: src/main/extractor_metatypes.c:299 #, fuzzy msgid "thumbnail" msgstr "mionsamhlacha" #: src/main/extractor_metatypes.c:300 msgid "smaller version of the image for previewing" msgstr "" #: src/main/extractor_metatypes.c:302 #, fuzzy msgid "image resolution" msgstr "taifeach" #: src/main/extractor_metatypes.c:303 #, fuzzy msgid "resolution in dots per inch" msgstr "%u%u poncanna san orlach" #: src/main/extractor_metatypes.c:305 msgid "Originating entity" msgstr "" #: src/main/extractor_metatypes.c:306 msgid "character set" msgstr "tacar carachtar" #: src/main/extractor_metatypes.c:307 #, fuzzy msgid "character encoding used" msgstr "lon na gcarachtar" #: src/main/extractor_metatypes.c:308 msgid "line count" msgstr "lon na lnte" #: src/main/extractor_metatypes.c:309 msgid "number of lines" msgstr "" #: src/main/extractor_metatypes.c:310 msgid "paragraph count" msgstr "lon na n-alt" #: src/main/extractor_metatypes.c:311 msgid "number of paragraphs" msgstr "" #: src/main/extractor_metatypes.c:313 msgid "word count" msgstr "lon na bhfocal" #: src/main/extractor_metatypes.c:314 msgid "number of words" msgstr "" #: src/main/extractor_metatypes.c:315 msgid "character count" msgstr "lon na gcarachtar" #: src/main/extractor_metatypes.c:316 #, fuzzy msgid "number of characters" msgstr "tacar carachtar" #: src/main/extractor_metatypes.c:317 src/main/extractor_metatypes.c:318 msgid "page orientation" msgstr "treoshuomh an leathanaigh" #: src/main/extractor_metatypes.c:319 src/main/extractor_metatypes.c:320 msgid "paper size" msgstr "piparmhid" #: src/main/extractor_metatypes.c:321 msgid "template" msgstr "teimplad" #: src/main/extractor_metatypes.c:322 msgid "template the document uses or is based on" msgstr "" #: src/main/extractor_metatypes.c:324 src/main/extractor_metatypes.c:325 msgid "company" msgstr "comhlacht" #: src/main/extractor_metatypes.c:326 src/main/extractor_metatypes.c:327 msgid "manager" msgstr "bainisteoir" #: src/main/extractor_metatypes.c:328 src/main/extractor_metatypes.c:329 #, fuzzy msgid "revision number" msgstr "taispein an leagan" #: src/main/extractor_metatypes.c:330 msgid "duration" msgstr "achar" #: src/main/extractor_metatypes.c:331 msgid "play time for the medium" msgstr "" #: src/main/extractor_metatypes.c:332 msgid "album" msgstr "albam" #: src/main/extractor_metatypes.c:333 msgid "name of the album" msgstr "" #: src/main/extractor_metatypes.c:335 msgid "artist" msgstr "ealaontir" #: src/main/extractor_metatypes.c:336 msgid "name of the artist or band" msgstr "" #: src/main/extractor_metatypes.c:337 src/main/extractor_metatypes.c:338 msgid "genre" msgstr "senra" #: src/main/extractor_metatypes.c:339 msgid "track number" msgstr "uimhir an riain" #: src/main/extractor_metatypes.c:340 msgid "original number of the track on the distribution medium" msgstr "" #: src/main/extractor_metatypes.c:341 #, fuzzy msgid "disk number" msgstr "uimhir an diosca" #: src/main/extractor_metatypes.c:342 msgid "number of the disk in a multi-disk (or volume) distribution" msgstr "" #: src/main/extractor_metatypes.c:343 msgid "performer" msgstr "" #: src/main/extractor_metatypes.c:344 msgid "" "The artist(s) who performed the work (conductor, orchestra, soloists, actor, " "etc.)" msgstr "" #: src/main/extractor_metatypes.c:346 msgid "contact" msgstr "teagmhil" #: src/main/extractor_metatypes.c:347 msgid "Contact information for the creator or distributor" msgstr "" #: src/main/extractor_metatypes.c:348 #, fuzzy msgid "song version" msgstr "leagan" #: src/main/extractor_metatypes.c:349 msgid "name of the version of the song (i.e. remix information)" msgstr "" #: src/main/extractor_metatypes.c:350 #, fuzzy msgid "picture" msgstr "cr" #: src/main/extractor_metatypes.c:351 msgid "associated misc. picture" msgstr "" #: src/main/extractor_metatypes.c:352 msgid "cover picture" msgstr "" #: src/main/extractor_metatypes.c:353 msgid "picture of the cover of the distribution medium" msgstr "" #: src/main/extractor_metatypes.c:354 #, fuzzy msgid "contributor picture" msgstr "cuiditheoir" #: src/main/extractor_metatypes.c:355 msgid "picture of one of the contributors" msgstr "" #: src/main/extractor_metatypes.c:357 msgid "event picture" msgstr "" #: src/main/extractor_metatypes.c:358 msgid "picture of an associated event" msgstr "" #: src/main/extractor_metatypes.c:359 msgid "logo" msgstr "" #: src/main/extractor_metatypes.c:360 msgid "logo of an associated organization" msgstr "" #: src/main/extractor_metatypes.c:361 #, fuzzy msgid "broadcast television system" msgstr "cras teilifse" #: src/main/extractor_metatypes.c:362 msgid "name of the television system for which the data is coded" msgstr "" #: src/main/extractor_metatypes.c:363 #, fuzzy msgid "source device" msgstr "foinse" #: src/main/extractor_metatypes.c:364 msgid "device used to create the object" msgstr "" #: src/main/extractor_metatypes.c:365 msgid "disclaimer" msgstr "sanadh" #: src/main/extractor_metatypes.c:366 #, fuzzy msgid "legal disclaimer" msgstr "sanadh" #: src/main/extractor_metatypes.c:368 msgid "warning" msgstr "rabhadh" #: src/main/extractor_metatypes.c:369 msgid "warning about the nature of the content" msgstr "" #: src/main/extractor_metatypes.c:370 msgid "page order" msgstr "ord na leathanach" #: src/main/extractor_metatypes.c:371 msgid "order of the pages" msgstr "" #: src/main/extractor_metatypes.c:372 msgid "writer" msgstr "" #: src/main/extractor_metatypes.c:373 #, fuzzy msgid "contributing writer" msgstr "cuiditheoir" #: src/main/extractor_metatypes.c:374 src/main/extractor_metatypes.c:375 msgid "product version" msgstr "leagan an tirge" #: src/main/extractor_metatypes.c:376 msgid "contributor" msgstr "cuiditheoir" #: src/main/extractor_metatypes.c:377 #, fuzzy msgid "name of a contributor" msgstr "cuiditheoir" #: src/main/extractor_metatypes.c:379 #, fuzzy msgid "movie director" msgstr "stirthir" #: src/main/extractor_metatypes.c:380 msgid "name of the director" msgstr "" #: src/main/extractor_metatypes.c:381 msgid "network" msgstr "" #: src/main/extractor_metatypes.c:382 msgid "name of the broadcasting network or station" msgstr "" #: src/main/extractor_metatypes.c:383 msgid "show" msgstr "" #: src/main/extractor_metatypes.c:384 msgid "name of the show" msgstr "" #: src/main/extractor_metatypes.c:385 #, fuzzy msgid "chapter name" msgstr "caibidil" #: src/main/extractor_metatypes.c:386 msgid "name of the chapter" msgstr "" #: src/main/extractor_metatypes.c:387 msgid "song count" msgstr "lon na n-amhrn" #: src/main/extractor_metatypes.c:388 msgid "number of songs" msgstr "" #: src/main/extractor_metatypes.c:390 msgid "starting song" msgstr "amhrn tosaigh" #: src/main/extractor_metatypes.c:391 msgid "number of the first song to play" msgstr "" #: src/main/extractor_metatypes.c:392 msgid "play counter" msgstr "iritheoir seinnte" #: src/main/extractor_metatypes.c:393 msgid "number of times the media has been played" msgstr "" #: src/main/extractor_metatypes.c:394 msgid "conductor" msgstr "stirthir" #: src/main/extractor_metatypes.c:395 #, fuzzy msgid "name of the conductor" msgstr "stirthir" #: src/main/extractor_metatypes.c:396 #, fuzzy msgid "interpretation" msgstr "lirmhnitheoir" #: src/main/extractor_metatypes.c:397 msgid "" "information about the people behind interpretations of an existing piece" msgstr "" #: src/main/extractor_metatypes.c:398 msgid "composer" msgstr "" #: src/main/extractor_metatypes.c:399 msgid "name of the composer" msgstr "" #: src/main/extractor_metatypes.c:401 src/main/extractor_metatypes.c:402 msgid "beats per minute" msgstr "" #: src/main/extractor_metatypes.c:403 msgid "encoded by" msgstr "ionchdaithe ag" #: src/main/extractor_metatypes.c:404 msgid "name of person or organization that encoded the file" msgstr "" #: src/main/extractor_metatypes.c:405 msgid "original title" msgstr "" #: src/main/extractor_metatypes.c:406 msgid "title of the original work" msgstr "" #: src/main/extractor_metatypes.c:407 msgid "original artist" msgstr "" #: src/main/extractor_metatypes.c:408 msgid "name of the original artist" msgstr "" #: src/main/extractor_metatypes.c:409 msgid "original writer" msgstr "" #: src/main/extractor_metatypes.c:410 msgid "name of the original lyricist or writer" msgstr "" #: src/main/extractor_metatypes.c:412 msgid "original release year" msgstr "" #: src/main/extractor_metatypes.c:413 msgid "year of the original release" msgstr "" #: src/main/extractor_metatypes.c:414 msgid "original performer" msgstr "" #: src/main/extractor_metatypes.c:415 msgid "name of the original performer" msgstr "" #: src/main/extractor_metatypes.c:416 msgid "lyrics" msgstr "liric" #: src/main/extractor_metatypes.c:417 msgid "lyrics of the song or text description of vocal activities" msgstr "" #: src/main/extractor_metatypes.c:418 #, fuzzy msgid "popularity" msgstr "madar ilimh" #: src/main/extractor_metatypes.c:419 msgid "information about the file's popularity" msgstr "" #: src/main/extractor_metatypes.c:420 #, fuzzy msgid "licensee" msgstr "ceadnas" #: src/main/extractor_metatypes.c:421 msgid "name of the owner or licensee of the file" msgstr "" #: src/main/extractor_metatypes.c:423 #, fuzzy msgid "musician credit list" msgstr "admhlacha na gceoltir" #: src/main/extractor_metatypes.c:424 msgid "names of contributing musicians" msgstr "" #: src/main/extractor_metatypes.c:425 msgid "mood" msgstr "fonn" #: src/main/extractor_metatypes.c:426 msgid "keywords reflecting the mood of the piece" msgstr "" #: src/main/extractor_metatypes.c:427 #, fuzzy msgid "subtitle" msgstr "teideal" #: src/main/extractor_metatypes.c:428 msgid "subtitle of this part" msgstr "" #: src/main/extractor_metatypes.c:429 #, fuzzy msgid "display type" msgstr "cinel an mhein" #: src/main/extractor_metatypes.c:430 msgid "what rendering method should be used to display this item" msgstr "" #: src/main/extractor_metatypes.c:431 #, fuzzy msgid "full data" msgstr "ainm iomln" #: src/main/extractor_metatypes.c:432 msgid "" "entry that contains the full, original binary data (not really meta data)" msgstr "" #: src/main/extractor_metatypes.c:434 #, fuzzy msgid "rating" msgstr "Laidineach" #: src/main/extractor_metatypes.c:435 msgid "rating of the content" msgstr "" #: src/main/extractor_metatypes.c:436 src/main/extractor_metatypes.c:437 msgid "organization" msgstr "eagras" #: src/main/extractor_metatypes.c:438 src/main/extractor_metatypes.c:439 msgid "ripper" msgstr "sracaire" #: src/main/extractor_metatypes.c:440 src/main/extractor_metatypes.c:441 msgid "producer" msgstr "tirgeoir" #: src/main/extractor_metatypes.c:442 msgid "group" msgstr "grpa" #: src/main/extractor_metatypes.c:443 msgid "name of the group or band" msgstr "" #: src/main/extractor_metatypes.c:445 #, fuzzy msgid "original filename" msgstr "comhadainm" #: src/main/extractor_metatypes.c:446 msgid "name of the original file (reserved for GNUnet)" msgstr "" #: src/main/extractor_metatypes.c:447 #, fuzzy msgid "disc count" msgstr "lon na bhfocal" #: src/main/extractor_metatypes.c:448 msgid "count of discs inside collection this disc belongs to" msgstr "" #: src/main/extractor_metatypes.c:449 msgid "codec" msgstr "" #: src/main/extractor_metatypes.c:450 msgid "codec the data is stored in" msgstr "" #: src/main/extractor_metatypes.c:451 msgid "video codec" msgstr "" #: src/main/extractor_metatypes.c:452 msgid "codec the video data is stored in" msgstr "" #: src/main/extractor_metatypes.c:453 msgid "audio codec" msgstr "" #: src/main/extractor_metatypes.c:454 msgid "codec the audio data is stored in" msgstr "" #: src/main/extractor_metatypes.c:456 msgid "subtitle codec" msgstr "" #: src/main/extractor_metatypes.c:457 msgid "codec/format the subtitle data is stored in" msgstr "" #: src/main/extractor_metatypes.c:458 msgid "container format" msgstr "" #: src/main/extractor_metatypes.c:459 msgid "container format the data is stored in" msgstr "" #: src/main/extractor_metatypes.c:460 msgid "bitrate" msgstr "" #: src/main/extractor_metatypes.c:461 msgid "exact or average bitrate in bits/s" msgstr "" #: src/main/extractor_metatypes.c:462 msgid "nominal bitrate" msgstr "" #: src/main/extractor_metatypes.c:463 msgid "" "nominal bitrate in bits/s. The actual bitrate might be different from this " "target bitrate." msgstr "" #: src/main/extractor_metatypes.c:464 msgid "minimum bitrate" msgstr "" #: src/main/extractor_metatypes.c:465 msgid "minimum bitrate in bits/s" msgstr "" #: src/main/extractor_metatypes.c:467 msgid "maximum bitrate" msgstr "" #: src/main/extractor_metatypes.c:468 msgid "maximum bitrate in bits/s" msgstr "" #: src/main/extractor_metatypes.c:469 #, fuzzy msgid "serial" msgstr "Tionsclaoch" #: src/main/extractor_metatypes.c:470 msgid "serial number of track" msgstr "" #: src/main/extractor_metatypes.c:471 #, fuzzy msgid "encoder" msgstr "ionchdaithe ag" #: src/main/extractor_metatypes.c:472 msgid "encoder used to encode this stream" msgstr "" #: src/main/extractor_metatypes.c:473 #, fuzzy msgid "encoder version" msgstr "leagan na formide" #: src/main/extractor_metatypes.c:474 msgid "version of the encoder used to encode this stream" msgstr "" #: src/main/extractor_metatypes.c:475 #, fuzzy msgid "track gain" msgstr "uimhir an riain" #: src/main/extractor_metatypes.c:476 msgid "track gain in db" msgstr "" #: src/main/extractor_metatypes.c:478 #, fuzzy msgid "track peak" msgstr "uimhir an riain" #: src/main/extractor_metatypes.c:479 msgid "peak of the track" msgstr "" #: src/main/extractor_metatypes.c:480 #, fuzzy msgid "album gain" msgstr "albam" #: src/main/extractor_metatypes.c:481 msgid "album gain in db" msgstr "" #: src/main/extractor_metatypes.c:482 #, fuzzy msgid "album peak" msgstr "albam" #: src/main/extractor_metatypes.c:483 msgid "peak of the album" msgstr "" #: src/main/extractor_metatypes.c:484 msgid "reference level" msgstr "" #: src/main/extractor_metatypes.c:485 msgid "reference level of track and album gain values" msgstr "" #: src/main/extractor_metatypes.c:486 #, fuzzy msgid "location name" msgstr "suomh" #: src/main/extractor_metatypes.c:487 msgid "" "human readable descriptive location of where the media has been recorded or " "produced" msgstr "" #: src/main/extractor_metatypes.c:489 #, fuzzy msgid "location elevation" msgstr "suomh" #: src/main/extractor_metatypes.c:490 msgid "" "geo elevation of where the media has been recorded or produced in meters " "according to WGS84 (zero is average sea level)" msgstr "" #: src/main/extractor_metatypes.c:491 msgid "location horizontal error" msgstr "" #: src/main/extractor_metatypes.c:492 msgid "represents the expected error on the horizontal positioning in meters" msgstr "" #: src/main/extractor_metatypes.c:493 msgid "location movement speed" msgstr "" #: src/main/extractor_metatypes.c:494 msgid "" "speed of the capturing device when performing the capture. Represented in m/s" msgstr "" #: src/main/extractor_metatypes.c:495 msgid "location movement direction" msgstr "" #: src/main/extractor_metatypes.c:496 msgid "" "indicates the movement direction of the device performing the capture of a " "media. It is represented as degrees in floating point representation, 0 " "means the geographic north, and increases clockwise" msgstr "" #: src/main/extractor_metatypes.c:497 msgid "location capture direction" msgstr "" #: src/main/extractor_metatypes.c:498 msgid "" "indicates the direction the device is pointing to when capturing a media. It " "is represented as degrees in floating point representation, 0 means the " "geographic north, and increases clockwise" msgstr "" #: src/main/extractor_metatypes.c:500 #, fuzzy msgid "show episode number" msgstr "uimhir an diosca" #: src/main/extractor_metatypes.c:501 msgid "number of the episode within a season/show" msgstr "" #: src/main/extractor_metatypes.c:502 #, fuzzy msgid "show season number" msgstr "taispein an leagan" #: src/main/extractor_metatypes.c:503 msgid "number of the season of a show/series" msgstr "" #: src/main/extractor_metatypes.c:504 #, fuzzy msgid "grouping" msgstr "grpa" #: src/main/extractor_metatypes.c:505 msgid "" "groups together media that are related and spans multiple tracks. An example " "are multiple pieces of a concerto" msgstr "" #: src/main/extractor_metatypes.c:506 msgid "device manufacturer" msgstr "" #: src/main/extractor_metatypes.c:507 msgid "manufacturer of the device used to create the media" msgstr "" #: src/main/extractor_metatypes.c:508 #, fuzzy msgid "device model" msgstr "danamh an cheamara" #: src/main/extractor_metatypes.c:509 msgid "model of the device used to create the media" msgstr "" #: src/main/extractor_metatypes.c:511 #, fuzzy msgid "audio language" msgstr "teanga" #: src/main/extractor_metatypes.c:512 msgid "language of the audio track" msgstr "" #: src/main/extractor_metatypes.c:513 msgid "channels" msgstr "" #: src/main/extractor_metatypes.c:514 msgid "number of audio channels" msgstr "" #: src/main/extractor_metatypes.c:515 msgid "sample rate" msgstr "" #: src/main/extractor_metatypes.c:516 msgid "sample rate of the audio track" msgstr "" #: src/main/extractor_metatypes.c:517 msgid "audio depth" msgstr "" #: src/main/extractor_metatypes.c:518 msgid "number of bits per audio sample" msgstr "" #: src/main/extractor_metatypes.c:519 msgid "audio bitrate" msgstr "" #: src/main/extractor_metatypes.c:520 msgid "bitrate of the audio track" msgstr "" #: src/main/extractor_metatypes.c:522 src/main/extractor_metatypes.c:523 msgid "maximum audio bitrate" msgstr "" #: src/main/extractor_metatypes.c:524 msgid "video dimensions" msgstr "" #: src/main/extractor_metatypes.c:525 msgid "width and height of the video track (WxH)" msgstr "" #: src/main/extractor_metatypes.c:526 msgid "video depth" msgstr "" #: src/main/extractor_metatypes.c:527 msgid "numbers of bits per pixel" msgstr "" #: src/main/extractor_metatypes.c:528 msgid "frame rate" msgstr "" #: src/main/extractor_metatypes.c:529 msgid "number of frames per second (as D/N or floating point)" msgstr "" #: src/main/extractor_metatypes.c:530 msgid "pixel aspect ratio" msgstr "" #: src/main/extractor_metatypes.c:531 msgid "pixel aspect ratio (as D/N)" msgstr "" #: src/main/extractor_metatypes.c:533 src/main/extractor_metatypes.c:534 msgid "video bitrate" msgstr "" #: src/main/extractor_metatypes.c:535 src/main/extractor_metatypes.c:536 msgid "maximum video bitrate" msgstr "" #: src/main/extractor_metatypes.c:537 #, fuzzy msgid "subtitle language" msgstr "teanga" #: src/main/extractor_metatypes.c:538 msgid "language of the subtitle track" msgstr "" #: src/main/extractor_metatypes.c:539 #, fuzzy msgid "video language" msgstr "teanga" #: src/main/extractor_metatypes.c:540 msgid "language of the video track" msgstr "" #: src/main/extractor_metatypes.c:541 msgid "table of contents" msgstr "" #: src/main/extractor_metatypes.c:542 msgid "chapters, contents or bookmarks (in xml format)" msgstr "" #: src/main/extractor_metatypes.c:544 #, fuzzy msgid "video duration" msgstr "achar" #: src/main/extractor_metatypes.c:545 msgid "duration of a video stream" msgstr "" #: src/main/extractor_metatypes.c:546 #, fuzzy msgid "audio duration" msgstr "achar" #: src/main/extractor_metatypes.c:547 msgid "duration of an audio stream" msgstr "" #: src/main/extractor_metatypes.c:548 #, fuzzy msgid "subtitle duration" msgstr "achar" #: src/main/extractor_metatypes.c:549 msgid "duration of a subtitle stream" msgstr "" #: src/main/extractor_metatypes.c:551 msgid "audio preview" msgstr "" #: src/main/extractor_metatypes.c:552 msgid "a preview of the file audio stream" msgstr "" #: src/main/extractor_metatypes.c:554 src/main/extractor_metatypes.c:555 msgid "last" msgstr "" #: src/main/getopt.c:684 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: T an rogha `%s' dbhroch\n" #: src/main/getopt.c:709 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: n cheadatear argint i ndiaidh na rogha `--%s'\n" #: src/main/getopt.c:715 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: n cheadatear argint i ndiaidh na rogha `%c%s'\n" #: src/main/getopt.c:732 src/main/getopt.c:903 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: t argint de dhth i ndiaidh na rogha `%s'\n" #: src/main/getopt.c:761 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: rogha anaithnid `--%s'\n" #: src/main/getopt.c:765 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: rogha anaithnid `%c%s'\n" #: src/main/getopt.c:791 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: rogha neamhcheadaithe -- %c\n" #: src/main/getopt.c:793 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: rogha neamhbhail -- %c\n" #: src/main/getopt.c:822 src/main/getopt.c:952 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: t argint de dhth i ndiaidh na rogha -- %c\n" #: src/main/getopt.c:870 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: T an rogha `-W %s' dbhroch\n" #: src/main/getopt.c:888 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: n cheadatear argint i ndiaidh na rogha `-W %s'\n" #: src/plugins/flac_extractor.c:322 #, c-format msgid "%u Hz, %u channels" msgstr "" #: src/plugins/man_extractor.c:215 msgid "Commands" msgstr "Orduithe" #: src/plugins/man_extractor.c:219 msgid "System calls" msgstr "Glaonna ar an chras" #: src/plugins/man_extractor.c:223 msgid "Library calls" msgstr "Glaonna ar leabharlanna" #: src/plugins/man_extractor.c:227 msgid "Special files" msgstr "Comhaid speisialta" #: src/plugins/man_extractor.c:231 msgid "File formats and conventions" msgstr "Formid comhaid agus coinbhinsiin" #: src/plugins/man_extractor.c:235 msgid "Games" msgstr "Cluich" #: src/plugins/man_extractor.c:239 msgid "Conventions and miscellaneous" msgstr "Coinbhinsiin agus ruda eile" #: src/plugins/man_extractor.c:243 msgid "System management commands" msgstr "Orduithe bainisteoireacht an chrais" #: src/plugins/man_extractor.c:247 msgid "Kernel routines" msgstr "Feidhmeanna eithne" #: src/plugins/ole2_extractor.c:387 msgid "No Proofing" msgstr "Gan Phrofadh" #: src/plugins/ole2_extractor.c:395 msgid "Traditional Chinese" msgstr "Snis Traidisinta" #: src/plugins/ole2_extractor.c:397 msgid "Simplified Chinese" msgstr "Snis Simplithe" #: src/plugins/ole2_extractor.c:405 msgid "Swiss German" msgstr "Gearminis Eilviseach" #: src/plugins/ole2_extractor.c:409 msgid "U.S. English" msgstr "Barla S.A.M." #: src/plugins/ole2_extractor.c:411 msgid "U.K. English" msgstr "Barla Sasanach" #: src/plugins/ole2_extractor.c:413 msgid "Australian English" msgstr "Barla Astrlach" #: src/plugins/ole2_extractor.c:415 msgid "Castilian Spanish" msgstr "Spinnis Chaistleach" #: src/plugins/ole2_extractor.c:417 msgid "Mexican Spanish" msgstr "Spinnis Mheicsiceach" #: src/plugins/ole2_extractor.c:423 msgid "Belgian French" msgstr "Fraincis Bheilgeach" #: src/plugins/ole2_extractor.c:425 msgid "Canadian French" msgstr "Fraincis Cheanadach" #: src/plugins/ole2_extractor.c:427 msgid "Swiss French" msgstr "Fraincis Eilviseach" #: src/plugins/ole2_extractor.c:437 msgid "Swiss Italian" msgstr "Iodilis Eilviseach" #: src/plugins/ole2_extractor.c:445 msgid "Belgian Dutch" msgstr "Ollainnis Bheilgeach" #: src/plugins/ole2_extractor.c:447 msgid "Norwegian Bokmal" msgstr "Ioruais Bokml" #: src/plugins/ole2_extractor.c:457 msgid "Rhaeto-Romanic" msgstr "Raeta-Rminsis" #: src/plugins/ole2_extractor.c:463 msgid "Croato-Serbian (Latin)" msgstr "Seirbea-Chritis (Laidineach)" #: src/plugins/ole2_extractor.c:465 msgid "Serbo-Croatian (Cyrillic)" msgstr "Seirbea-Chritis (Coireallach)" #: src/plugins/ole2_extractor.c:493 msgid "Farsi" msgstr "Fairsis" #: src/plugins/ole2_extractor.c:578 #, fuzzy, c-format msgid "Revision #%u: Author `%s' worked on `%s'" msgstr "Leas #%u: D'oibrigh dar '%s' ar '%s'" #: src/plugins/riff_extractor.c:145 #, c-format msgid "codec: %s, %u fps, %u ms" msgstr "codec: %s, %u fss, %u ms" #: src/plugins/wav_extractor.c:120 msgid "mono" msgstr "mona" #: src/plugins/wav_extractor.c:120 msgid "stereo" msgstr "steiri" #~ msgid "do not remove any duplicates" #~ msgstr "n bain macasamhla amach" #~ msgid "" #~ "use the generic plaintext extractor for the language with the 2-letter " #~ "language code LANG" #~ msgstr "" #~ "sid an t-asbhainteoir ginearlta tacs le haghaidh na teanga leis an " #~ "chd LANG de rir ISO-639-1" #~ msgid "remove duplicates only if types match" #~ msgstr "bain macasamhla amach m mheaitselann na cinelacha" #~ msgid "use the filename as a keyword (loads filename-extractor plugin)" #~ msgstr "" #~ "sid an comhadainm mar lorgfhocal (luchtfar breisen asbhainteora na " #~ "gcomhadainmneacha)" #~ msgid "compute hash using the given ALGORITHM (currently sha1 or md5)" #~ msgstr "sid an tALGARTAM haisela tugtha (sha1 n md5 faoi lthair)" #~ msgid "remove duplicates even if keyword types do not match" #~ msgstr "" #~ "bain macasamhla amach, fi mura meaitselann na cinelacha lorgfhocail" #~ msgid "use keyword splitting (loads split-extractor plugin)" #~ msgstr "" #~ "sid scoilteadh lorgfhocal (luchtfar an breisen asbhainteora scoilte)" #~ msgid "INVALID TYPE - %s\n" #~ msgstr "CINEL NEAMHBHAIL - %s\n" #~ msgid "date" #~ msgstr "dta" #~ msgid "relation" #~ msgstr "gaol" #~ msgid "coverage" #~ msgstr "cldach" #~ msgid "translated" #~ msgstr "aistrithe" #~ msgid "used fonts" #~ msgstr "clfhoirne sidte" #~ msgid "created for" #~ msgstr "cruthaithe ar son" #~ msgid "release" #~ msgstr "scaoileadh" #~ msgid "size" #~ msgstr "mid" #~ msgid "category" #~ msgstr "catagir" #~ msgid "owner" #~ msgstr "inir" #~ msgid "binary thumbnail data" #~ msgstr "sonra dnrtha mionsamhla" #~ msgid "focal length (35mm equivalent)" #~ msgstr "fad fcais (35mm coibhiseach)" #~ msgid "split" #~ msgstr "roinn" #~ msgid "security" #~ msgstr "slndil" #~ msgid "lower case conversion" #~ msgstr "tiont go cs ochtair" #~ msgid "generator" #~ msgstr "gineadir" #~ msgid "scale" #~ msgstr "scla" #~ msgid "year" #~ msgstr "bliain" #~ msgid "link" #~ msgstr "nasc" #~ msgid "music CD identifier" #~ msgstr "aitheantas dlthdhiosca ceoil" #~ msgid "time" #~ msgstr "am" #~ msgid "" #~ "Resolving symbol `%s' in library `%s' failed, so I tried `%s', but that " #~ "failed also. Errors are: `%s' and `%s'.\n" #~ msgstr "" #~ "Norbh fhidir siombail `%s' a riteach i leabharlann `%s'. D bhr sin, " #~ "bhain m triail as `%s', ach theip ar an cheann sin freisin. Na " #~ "hearrid: `%s' agus `%s'.\n" #~ msgid "Unloading plugin `%s' failed!\n" #~ msgstr "Theip ar dhlucht an bhreisein `%s'!\n" #~ msgid "GB" #~ msgstr "GB" #~ msgid "MB" #~ msgstr "MB" #~ msgid "KB" #~ msgstr "kB" #~ msgid "Bytes" #~ msgstr "Beart" #~ msgid "%ux%u dots per cm" #~ msgstr "%u%u poncanna sa cm" #~ msgid "%ux%u dots per inch?" #~ msgstr "%u%u poncanna san orlach?" #~ msgid "Blues" #~ msgstr "Gormacha" #~ msgid "Classic Rock" #~ msgstr "Rac Clasaiceach" #~ msgid "Dance" #~ msgstr "Damhsa" #~ msgid "Disco" #~ msgstr "Diosc" #~ msgid "Funk" #~ msgstr "Func" #~ msgid "Grunge" #~ msgstr "Gruinse" #~ msgid "Hip-Hop" #~ msgstr "Hip-Hap" #~ msgid "Jazz" #~ msgstr "Snagcheol" #~ msgid "Metal" #~ msgstr "Miotal" #~ msgid "New Age" #~ msgstr "Nua-Aoiseach" #~ msgid "Oldies" #~ msgstr "Seancheol" #~ msgid "Other" #~ msgstr "Eile" #~ msgid "Pop" #~ msgstr "Popcheol" #~ msgid "R&B" #~ msgstr "Rithim & Gormacha" #~ msgid "Rap" #~ msgstr "Rapcheol" #~ msgid "Reggae" #~ msgstr "Reggae" #~ msgid "Rock" #~ msgstr "Rac-Cheol" #~ msgid "Techno" #~ msgstr "Teicneo" #~ msgid "Alternative" #~ msgstr "Malartach" #~ msgid "Ska" #~ msgstr "Ska" #~ msgid "Death Metal" #~ msgstr "Bsmhiotal" #~ msgid "Pranks" #~ msgstr "Cleasa" #~ msgid "Soundtrack" #~ msgstr "Fuaimrian" #~ msgid "Euro-Techno" #~ msgstr "Eora-Teicneo" #~ msgid "Ambient" #~ msgstr "Timpeallach" #~ msgid "Trip-Hop" #~ msgstr "Truip-Hap" #~ msgid "Vocal" #~ msgstr "Guthach" #~ msgid "Jazz+Funk" #~ msgstr "Snagcheol+Func" #~ msgid "Fusion" #~ msgstr "Comhle" #~ msgid "Trance" #~ msgstr "Tmhnal" #~ msgid "Classical" #~ msgstr "Clasaiceach" #~ msgid "Instrumental" #~ msgstr "Ionstraimeach" #~ msgid "Acid" #~ msgstr "Aigad" #~ msgid "House" #~ msgstr "Teach" #~ msgid "Game" #~ msgstr "Cluiche" #~ msgid "Sound Clip" #~ msgstr "Gearrthg Fhuaime" #~ msgid "Gospel" #~ msgstr "Ceol Gaspal" #~ msgid "Noise" #~ msgstr "Torann" #~ msgid "Alt. Rock" #~ msgstr "Rac-Cheol Mal." #~ msgid "Bass" #~ msgstr "Dord" #~ msgid "Soul" #~ msgstr "Anamcheol" #~ msgid "Punk" #~ msgstr "Punc" #~ msgid "Space" #~ msgstr "Sps" #~ msgid "Meditative" #~ msgstr "Machnamhach" #~ msgid "Instrumental Pop" #~ msgstr "Popcheol Ionstraimeach" #~ msgid "Instrumental Rock" #~ msgstr "Rac Ionstraimeach" #~ msgid "Ethnic" #~ msgstr "Eitneach" #~ msgid "Gothic" #~ msgstr "Gotach" #~ msgid "Darkwave" #~ msgstr "An Tonn Dhubh" #~ msgid "Techno-Industrial" #~ msgstr "Teicneo-Tionsclaoch" #~ msgid "Electronic" #~ msgstr "Leictreonach" #~ msgid "Pop-Folk" #~ msgstr "Popcheol Tre" #~ msgid "Eurodance" #~ msgstr "Eoradamhsa" #~ msgid "Dream" #~ msgstr "Aisling" #~ msgid "Southern Rock" #~ msgstr "Rac Deisceartach" #~ msgid "Comedy" #~ msgstr "Coimide" #~ msgid "Cult" #~ msgstr "Cultas" #~ msgid "Gangsta Rap" #~ msgstr "Rapcheol Gangstaeir" #~ msgid "Top 40" #~ msgstr "Cnagshingil" #~ msgid "Christian Rap" #~ msgstr "Rapcheol Crosta" #~ msgid "Pop/Funk" #~ msgstr "Popcheol/Func" #~ msgid "Jungle" #~ msgstr "Dufair" #~ msgid "Native American" #~ msgstr "Indiach-Mheiricenach" #~ msgid "Cabaret" #~ msgstr "Cabaret" #~ msgid "New Wave" #~ msgstr "Tonn Nua" #~ msgid "Psychedelic" #~ msgstr "Scideileach" #~ msgid "Rave" #~ msgstr "Ribhcheol" #~ msgid "Showtunes" #~ msgstr "Sethiineanna" #~ msgid "Trailer" #~ msgstr "Trilar" #~ msgid "Lo-Fi" #~ msgstr "sle-Dlse" #~ msgid "Tribal" #~ msgstr "Treibheach" #~ msgid "Acid Punk" #~ msgstr "Punc Aigadach" #~ msgid "Acid Jazz" #~ msgstr "Snagcheol Aigadach" #~ msgid "Polka" #~ msgstr "Polca" #~ msgid "Retro" #~ msgstr "Aischeol" #~ msgid "Musical" #~ msgstr "Ceolra" #~ msgid "Rock & Roll" #~ msgstr "Rac Is Roll" #~ msgid "Hard Rock" #~ msgstr "Rac-Cheol Crua" #~ msgid "Folk" #~ msgstr "Ceol na nDaoine" #~ msgid "Folk/Rock" #~ msgstr "Ceol Tre/Rac-Cheol" #~ msgid "National Folk" #~ msgstr "Ceol an Nisiin" #~ msgid "Swing" #~ msgstr "Luasc-Cheol" #~ msgid "Fast-Fusion" #~ msgstr "Comhle Tapa" #~ msgid "Bebob" #~ msgstr "Bap" #~ msgid "Revival" #~ msgstr "Athbheochan" #~ msgid "Celtic" #~ msgstr "Ceilteach" #~ msgid "Bluegrass" #~ msgstr "Bluegrass" #~ msgid "Avantgarde" #~ msgstr "Avant garde" #~ msgid "Gothic Rock" #~ msgstr "Rac Gotach" #~ msgid "Progressive Rock" #~ msgstr "Rac Forsach" #~ msgid "Psychedelic Rock" #~ msgstr "Rac Scideileach" #~ msgid "Symphonic Rock" #~ msgstr "Rac Siansach" #~ msgid "Slow Rock" #~ msgstr "Rac-Cheol Mall" #~ msgid "Big Band" #~ msgstr "Banna Mr" #~ msgid "Chorus" #~ msgstr "Cr" #~ msgid "Easy Listening" #~ msgstr "Rcheol" #~ msgid "Acoustic" #~ msgstr "Fuaimiil" #~ msgid "Humour" #~ msgstr "Greann" #~ msgid "Speech" #~ msgstr "Caint" #~ msgid "Chanson" #~ msgstr "Chanson" #~ msgid "Opera" #~ msgstr "Ceoldrma" #~ msgid "Chamber Music" #~ msgstr "Ceol Aireagail" #~ msgid "Sonata" #~ msgstr "Sonid" #~ msgid "Symphony" #~ msgstr "Siansa" #~ msgid "Booty Bass" #~ msgstr "Dord Bit" #~ msgid "Primus" #~ msgstr "Primus" #~ msgid "Porn Groove" #~ msgstr "PornGribh" #~ msgid "Satire" #~ msgstr "Aoir" #~ msgid "Slow Jam" #~ msgstr "Seam Mall" #~ msgid "Club" #~ msgstr "Club" #~ msgid "Tango" #~ msgstr "Tang" #~ msgid "Samba" #~ msgstr "Samba" #~ msgid "Folklore" #~ msgstr "Baloideas" #~ msgid "Ballad" #~ msgstr "Bailad" #~ msgid "Power Ballad" #~ msgstr "Bailad Cumhachta" #~ msgid "Rhythmic Soul" #~ msgstr "Anamcheol Rithimeach" #~ msgid "Freestyle" #~ msgstr "Saorstl" #~ msgid "Duet" #~ msgstr "Dsad" #~ msgid "Punk Rock" #~ msgstr "Punc-Rac" #~ msgid "Drum Solo" #~ msgstr "Aonrad Druma" #~ msgid "A Cappella" #~ msgstr "A Cappella" #~ msgid "Euro-House" #~ msgstr "Eora-Teach" #~ msgid "Dance Hall" #~ msgstr "Halla Damhsa" #~ msgid "Goa" #~ msgstr "Goa" #~ msgid "Drum & Bass" #~ msgstr "Druma & Dord" #~ msgid "Club-House" #~ msgstr "Clubtheach" #~ msgid "Hardcore" #~ msgstr "Forchrua" #~ msgid "Terror" #~ msgstr "Uafs" #~ msgid "Indie" #~ msgstr "Neamhsplech" #~ msgid "BritPop" #~ msgstr "BriotPhop" #~ msgid "Negerpunk" #~ msgstr "Negerpunk" #~ msgid "Polsk Punk" #~ msgstr "Punc Polannach" #~ msgid "Beat" #~ msgstr "Buille" #~ msgid "Christian Gangsta Rap" #~ msgstr "Rapcheol Crosta Gangstaeir" #~ msgid "Heavy Metal" #~ msgstr "Ceol Trom-Mhiotalach" #~ msgid "Black Metal" #~ msgstr "Miotal Dubh" #~ msgid "Crossover" #~ msgstr "Trasach" #~ msgid "Contemporary Christian" #~ msgstr "Crosta Comhaimseartha" #~ msgid "Christian Rock" #~ msgstr "Rac-Cheol Crosta" #~ msgid "Merengue" #~ msgstr "Meireang" #~ msgid "Salsa" #~ msgstr "Salsa" #~ msgid "Thrash Metal" #~ msgstr "Miotal Traisela" # no "" #~ msgid "Anime" #~ msgstr "Anime" #~ msgid "JPop" #~ msgstr "JPap" #~ msgid "Synthpop" #~ msgstr "Popcheol sintiseach" #~ msgid "(variable bps)" #~ msgstr "(bss athraitheach)" #~ msgid "" #~ "Please provide the name of the language you are building\n" #~ "a dictionary for. For example:\n" #~ msgstr "" #~ "Tabhair uait ainm na teanga ina bhfuil t ag tgil foclra.\n" #~ "Mar shampla:\n" #~ msgid "Error opening file `%s': %s\n" #~ msgstr "Earrid agus comhad `%s' oscailt: %s\n" #~ msgid "" #~ "Error allocating: %s\n" #~ "." #~ msgstr "" #~ "Earrid le linn dilte: %s\n" #~ "." #~ msgid "Increase ALLOCSIZE (in %s).\n" #~ msgstr "Madaigh ALLOCSIZE (i %s).\n" #~ msgid "Source RPM %d.%d" #~ msgstr "RPM Foinse %d.%d" #~ msgid "Binary RPM %d.%d" #~ msgstr "RPM Dnrtha %d.%d" #~ msgid "os" #~ msgstr "cras" #~ msgid "Arabic" #~ msgstr "Araibis" #~ msgid "Bulgarian" #~ msgstr "Bulgiris" #~ msgid "Catalan" #~ msgstr "Catalinis" #~ msgid "Czech" #~ msgstr "Seicis" #~ msgid "Danish" #~ msgstr "Danmhairgis" #~ msgid "German" #~ msgstr "Gearminis" #~ msgid "Greek" #~ msgstr "Grigis" #~ msgid "Finnish" #~ msgstr "Fionlainnis" #~ msgid "French" #~ msgstr "Fraincis" #~ msgid "Hebrew" #~ msgstr "Eabhrais" #~ msgid "Hungarian" #~ msgstr "Ungiris" #~ msgid "Icelandic" #~ msgstr "oslainnis" #~ msgid "Italian" #~ msgstr "Iodilis" #~ msgid "Japanese" #~ msgstr "Seapinis" #~ msgid "Korean" #~ msgstr "Ciris" #~ msgid "Dutch" #~ msgstr "Ollainnis" #~ msgid "Norwegian - Nynorsk" #~ msgstr "Ioruais - Nynorsk" #~ msgid "Polish" #~ msgstr "Polainnis" #~ msgid "Brazilian Portuguese" #~ msgstr "Portaingilis na Brasale" #~ msgid "Portuguese" #~ msgstr "Portaingilis" #~ msgid "Romanian" #~ msgstr "Rminis" #~ msgid "Russian" #~ msgstr "Risis" #~ msgid "Slovak" #~ msgstr "Slvaicis" #~ msgid "Albanian" #~ msgstr "Albinis" #~ msgid "Swedish" #~ msgstr "Sualainnis" #~ msgid "Thai" #~ msgstr "Talainnis" #~ msgid "Turkish" #~ msgstr "Tuircis" #~ msgid "Urdu" #~ msgstr "Urdais" #~ msgid "Bahasa" #~ msgstr "Indinisis" #~ msgid "Ukrainian" #~ msgstr "crinis" #~ msgid "Byelorussian" #~ msgstr "Bealarisis" #~ msgid "Slovenian" #~ msgstr "Slivinis" #~ msgid "Estonian" #~ msgstr "Eastinis" #~ msgid "Latvian" #~ msgstr "Laitvis" #~ msgid "Lithuanian" #~ msgstr "Liotuinis" #~ msgid "Basque" #~ msgstr "Bascais" #~ msgid "Macedonian" #~ msgstr "Macadinis" #~ msgid "Afrikaans" #~ msgstr "Afracinis" #~ msgid "Malaysian" #~ msgstr "Malaeis" #~ msgid "%s (Build %s)" #~ msgstr "%s (Tgil %s)" #~ msgid "Please provide a list of klp files as arguments.\n" #~ msgstr "Tabhair uait liosta de chomhaid klp mar argint, le do thoil.\n" #~ msgid "Fatal: could not allocate (%s at %s:%d).\n" #~ msgstr "Earrid mharfach: norbh fhidir dileadh (%s ag %s:%d).\n" libextractor-1.3/po/insert-header.sin0000644000175000017500000000124011260753602014662 00000000000000# Sed script that inserts the file called HEADER before the header entry. # # At each occurrence of a line starting with "msgid ", we execute the following # commands. At the first occurrence, insert the file. At the following # occurrences, do nothing. The distinction between the first and the following # occurrences is achieved by looking at the hold space. /^msgid /{ x # Test if the hold space is empty. s/m/m/ ta # Yes it was empty. First occurrence. Read the file. r HEADER # Output the file's contents by reading the next line. But don't lose the # current line while doing this. g N bb :a # The hold space was nonempty. Following occurrences. Do nothing. x :b } libextractor-1.3/po/stamp-po0000644000175000017500000000001212255661613013101 00000000000000timestamp libextractor-1.3/po/pl.po0000644000175000017500000015570612255661612012415 00000000000000# Polish translation for libextractor. # Copyright (C) 2012 Free Software Foundation, Inc. # This file is distributed under the same license as the libextractor package. # Jakub Bogusz , 2012. # msgid "" msgstr "" "Project-Id-Version: libextractor 1.0.0-pre1\n" "Report-Msgid-Bugs-To: libextractor@gnu.org\n" "POT-Creation-Date: 2013-12-22 23:11+0100\n" "PO-Revision-Date: 2012-12-01 15:45+0100\n" "Last-Translator: Jakub Bogusz \n" "Language-Team: Polish \n" "Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: src/main/extract.c:132 #, c-format msgid "" "Usage: %s\n" "%s\n" "\n" msgstr "" "Składnia: %s\n" "%s\n" "\n" #: src/main/extract.c:135 #, c-format msgid "" "Arguments mandatory for long options are also mandatory for short options.\n" msgstr "" "Argumenty obowiązkowe dla opcji długich są obowiązkowe także dla opcji " "krótkich.\n" #: src/main/extract.c:217 msgid "print output in bibtex format" msgstr "wyjście w formacie bibtex" #: src/main/extract.c:219 msgid "produce grep-friendly output (all results on one line per file)" msgstr "" "wyjście przyjazne dla grepa (wszystkie wyniki w jednej linii dla pliku)" #: src/main/extract.c:221 msgid "print this help" msgstr "wyświetlenie tego opisu" #: src/main/extract.c:223 msgid "run plugins in-process (simplifies debugging)" msgstr "uruchamianie wtyczek wewnątrz procesu (ułatwia diagnostykę)" #: src/main/extract.c:225 msgid "read data from file into memory and extract from memory" msgstr "odczyt danych z pliku do pamięci i tworzenie wyciągów z pamięci" #: src/main/extract.c:227 msgid "load an extractor plugin named LIBRARY" msgstr "odczyt wtyczki wyciągu o nazwie BIBLIOTEKA" #: src/main/extract.c:229 msgid "list all keyword types" msgstr "wypisanie słów kluczowych wszystkich typów" #: src/main/extract.c:231 msgid "do not use the default set of extractor plugins" msgstr "bez domyślnego zestawu wtyczek wyciągów" #: src/main/extract.c:233 msgid "print only keywords of the given TYPE (use -L to get a list)" msgstr "wypisanie słów kluczowych tylko podanego TYPU (-L poda listę)" #: src/main/extract.c:235 msgid "print the version number" msgstr "wypisanie numeru wersji" #: src/main/extract.c:237 msgid "be verbose" msgstr "tryb szczegółowy" #: src/main/extract.c:239 msgid "do not print keywords of the given TYPE" msgstr "bez wypisywania słów kluczowych podanego TYPU" #: src/main/extract.c:242 msgid "extract [OPTIONS] [FILENAME]*" msgstr "extract [OPCJE] [NAZWA_PLIKU]*" #: src/main/extract.c:243 msgid "Extract metadata from files." msgstr "Wyciąganie metadanych z plików." #: src/main/extract.c:288 #, c-format msgid "Found by `%s' plugin:\n" msgstr "Znalezione przez wtyczkę `%s':\n" #: src/main/extract.c:291 src/main/extract.c:378 #: src/main/extractor_metatypes.c:145 src/main/extractor_print.c:86 #: src/main/extractor_print.c:96 msgid "unknown" msgstr "nieznany" #: src/main/extract.c:296 #, c-format msgid "%s - (unknown, %u bytes)\n" msgstr "%s - (nieznany, bajtów: %u)\n" #: src/main/extract.c:325 #, c-format msgid "%s - (binary, %u bytes)\n" msgstr "%s - (binarny, bajtów: %u)\n" #: src/main/extract.c:809 src/main/extract.c:821 msgid "" "Illegal combination of options, cannot combine multiple styles of printing.\n" msgstr "" "Niedozwolona kombinacja opcji, nie można łączyć wielu styli wypisywania.\n" #: src/main/extract.c:854 #, c-format msgid "You must specify an argument for the `%s' option (option ignored).\n" msgstr "Opcja `%s' wymaga argumentu (zignorowano opcję).\n" #: src/main/extract.c:923 msgid "Use --help to get a list of options.\n" msgstr "Opcja --help pozwala uzyskać listę opcji.\n" #: src/main/extract.c:964 #, fuzzy msgid "% BiBTeX file\n" msgstr "%% plik BiBTeX\n" #: src/main/extract.c:972 #, c-format msgid "Keywords for file %s:\n" msgstr "Słowa kluczowe dla pliku %s:\n" #: src/main/extractor.c:676 #, c-format msgid "Initialization of plugin mechanism failed: %s!\n" msgstr "Inicjalizacja mechanizmu wtyczek nie powiodła się: %s!\n" #: src/main/extractor_metatypes.c:46 msgid "reserved" msgstr "zarezerwowane" #: src/main/extractor_metatypes.c:47 msgid "reserved value, do not use" msgstr "wartość zarezerwowana, nie używać" #: src/main/extractor_metatypes.c:48 msgid "mimetype" msgstr "typ mime" #: src/main/extractor_metatypes.c:49 msgid "mime type" msgstr "typ mime" #: src/main/extractor_metatypes.c:50 msgid "embedded filename" msgstr "osadzona nazwa pliku" #: src/main/extractor_metatypes.c:51 msgid "filename that was embedded (not necessarily the current filename)" msgstr "osadzona nazwa pliku (niekoniecznie bieżąca nazwa pliku)" #: src/main/extractor_metatypes.c:52 msgid "comment" msgstr "komentarz" #: src/main/extractor_metatypes.c:53 msgid "comment about the content" msgstr "komentarz dotyczący treści" #: src/main/extractor_metatypes.c:54 msgid "title" msgstr "tytuł" #: src/main/extractor_metatypes.c:55 msgid "title of the work" msgstr "tytuł pracy" #: src/main/extractor_metatypes.c:57 msgid "book title" msgstr "tytuł książki" #: src/main/extractor_metatypes.c:58 msgid "title of the book containing the work" msgstr "tytuł książki zawierającej pracę" #: src/main/extractor_metatypes.c:59 msgid "book edition" msgstr "wydanie książki" #: src/main/extractor_metatypes.c:60 msgid "edition of the book (or book containing the work)" msgstr "wydanie książki (lub książki zawierającej pracę)" #: src/main/extractor_metatypes.c:61 msgid "book chapter" msgstr "rozdział książki" #: src/main/extractor_metatypes.c:62 msgid "chapter number" msgstr "numer rozdziału" #: src/main/extractor_metatypes.c:63 msgid "journal name" msgstr "nazwa periodyku" #: src/main/extractor_metatypes.c:64 msgid "journal or magazine the work was published in" msgstr "periodyk lub magazyn, w którym została opublikowana praca" #: src/main/extractor_metatypes.c:65 msgid "journal volume" msgstr "tom periodyku" #: src/main/extractor_metatypes.c:66 msgid "volume of a journal or multi-volume book" msgstr "tom periodyku lub książki wielotomowej" #: src/main/extractor_metatypes.c:68 msgid "journal number" msgstr "numer periodyku" #: src/main/extractor_metatypes.c:69 msgid "number of a journal, magazine or tech-report" msgstr "numer periodyku, magazynu albo raportu" #: src/main/extractor_metatypes.c:70 msgid "page count" msgstr "liczba stron" #: src/main/extractor_metatypes.c:71 msgid "total number of pages of the work" msgstr "całkowita liczba stron pracy" #: src/main/extractor_metatypes.c:72 msgid "page range" msgstr "zakres stron" #: src/main/extractor_metatypes.c:73 msgid "page numbers of the publication in the respective journal or book" msgstr "numery stron publikacji w odpowiednim periodyku lub książce" #: src/main/extractor_metatypes.c:74 msgid "author name" msgstr "nazwisko autora" #: src/main/extractor_metatypes.c:75 msgid "name of the author(s)" msgstr "nazwisko autora/autorów" #: src/main/extractor_metatypes.c:76 msgid "author email" msgstr "e-mail autora" #: src/main/extractor_metatypes.c:77 msgid "e-mail of the author(s)" msgstr "adres e-mail autora/autorów" #: src/main/extractor_metatypes.c:79 msgid "author institution" msgstr "instytucja autora" #: src/main/extractor_metatypes.c:80 msgid "institution the author worked for" msgstr "instytucja, dla której pracował autor" #: src/main/extractor_metatypes.c:81 msgid "publisher" msgstr "wydawca" #: src/main/extractor_metatypes.c:82 msgid "name of the publisher" msgstr "nazwa wydawcy" #: src/main/extractor_metatypes.c:83 msgid "publisher's address" msgstr "adres wydawcy" #: src/main/extractor_metatypes.c:84 msgid "Address of the publisher (often only the city)" msgstr "adres wydawcy (często tylko miasto)" #: src/main/extractor_metatypes.c:85 msgid "publishing institution" msgstr "instytucja wydawcza" #: src/main/extractor_metatypes.c:86 msgid "" "institution that was involved in the publishing, but not necessarily the " "publisher" msgstr "instytucja zaangażowana w publikację, ale niekoniecznie wydawca" #: src/main/extractor_metatypes.c:87 msgid "publication series" msgstr "seria publikacji" #: src/main/extractor_metatypes.c:88 msgid "series of books the book was published in" msgstr "seria książek, w której została wydana książka" #: src/main/extractor_metatypes.c:90 msgid "publication type" msgstr "rodzaj publikacji" #: src/main/extractor_metatypes.c:91 msgid "type of the tech-report" msgstr "rodzaj raportu" #: src/main/extractor_metatypes.c:92 msgid "publication year" msgstr "rok opublikowania" #: src/main/extractor_metatypes.c:93 msgid "year of publication (or, if unpublished, the year of creation)" msgstr "" "rok opublikowania (lub powstania, jeśli praca nie została opublikowana)" #: src/main/extractor_metatypes.c:94 msgid "publication month" msgstr "miesiąc opublikowania" #: src/main/extractor_metatypes.c:95 msgid "month of publication (or, if unpublished, the month of creation)" msgstr "" "miesiąc opublikowania (lub powstania, jeśli praca nie została opublikowana)" #: src/main/extractor_metatypes.c:96 msgid "publication day" msgstr "dzień opublikowania" #: src/main/extractor_metatypes.c:97 msgid "" "day of publication (or, if unpublished, the day of creation), relative to " "the given month" msgstr "" "dzień opublikowania (lub powstania, jeśli praca nie została opublikowana) w " "miesiącu" #: src/main/extractor_metatypes.c:98 msgid "publication date" msgstr "data opublikowania" #: src/main/extractor_metatypes.c:99 msgid "date of publication (or, if unpublished, the date of creation)" msgstr "" "data opublikowania (lub powstania, jeśli praca nie została opublikowana)" #: src/main/extractor_metatypes.c:101 msgid "bibtex eprint" msgstr "eprint bibtexowy" #: src/main/extractor_metatypes.c:102 msgid "specification of an electronic publication" msgstr "specyfikacja publikacji elektronicznej" #: src/main/extractor_metatypes.c:103 msgid "bibtex entry type" msgstr "rodzaj wpisu bibtex" #: src/main/extractor_metatypes.c:104 msgid "type of the publication for bibTeX bibliographies" msgstr "rodzaj publikacji do bibliografii bibTeXowych" #: src/main/extractor_metatypes.c:105 msgid "language" msgstr "język" #: src/main/extractor_metatypes.c:106 msgid "language the work uses" msgstr "język użyty w pracy" #: src/main/extractor_metatypes.c:107 msgid "creation time" msgstr "czas powstania" #: src/main/extractor_metatypes.c:108 msgid "time and date of creation" msgstr "czas i data powstania" #: src/main/extractor_metatypes.c:109 msgid "URL" msgstr "URL" #: src/main/extractor_metatypes.c:110 msgid "universal resource location (where the work is made available)" msgstr "odnośnik URL do zasobu (miejsca udostępnienia pracy)" #: src/main/extractor_metatypes.c:112 msgid "URI" msgstr "URI" #: src/main/extractor_metatypes.c:113 msgid "universal resource identifier" msgstr "identyfikator URI zasobu" #: src/main/extractor_metatypes.c:114 msgid "international standard recording code" msgstr "międzynarodowy standardowy kod nagrania" #: src/main/extractor_metatypes.c:115 msgid "ISRC number identifying the work" msgstr "numer ISRC identyfikujący pracę" #: src/main/extractor_metatypes.c:116 msgid "MD4" msgstr "MD4" #: src/main/extractor_metatypes.c:117 msgid "MD4 hash" msgstr "skrót MD4" #: src/main/extractor_metatypes.c:118 msgid "MD5" msgstr "MD5" #: src/main/extractor_metatypes.c:119 msgid "MD5 hash" msgstr "skrót MD5" #: src/main/extractor_metatypes.c:120 msgid "SHA-0" msgstr "SHA-0" #: src/main/extractor_metatypes.c:121 msgid "SHA-0 hash" msgstr "skrót SHA-0" #: src/main/extractor_metatypes.c:123 msgid "SHA-1" msgstr "SHA-1" #: src/main/extractor_metatypes.c:124 msgid "SHA-1 hash" msgstr "skrót SHA-1" #: src/main/extractor_metatypes.c:125 msgid "RipeMD160" msgstr "RipeMD160" #: src/main/extractor_metatypes.c:126 msgid "RipeMD150 hash" msgstr "skrót RipeMD160" #: src/main/extractor_metatypes.c:127 src/main/extractor_metatypes.c:128 msgid "GPS latitude ref" msgstr "szerokość wg GPS" #: src/main/extractor_metatypes.c:129 src/main/extractor_metatypes.c:130 msgid "GPS latitude" msgstr "szerokość geograficzna wg GPS" #: src/main/extractor_metatypes.c:131 src/main/extractor_metatypes.c:132 msgid "GPS longitude ref" msgstr "długość GPS" #: src/main/extractor_metatypes.c:134 src/main/extractor_metatypes.c:135 msgid "GPS longitude" msgstr "długość geograficzna wg GPS" #: src/main/extractor_metatypes.c:136 msgid "city" msgstr "miasto" #: src/main/extractor_metatypes.c:137 msgid "name of the city where the document originated" msgstr "nazwa miasta, z którego pochodzi dokument" #: src/main/extractor_metatypes.c:138 msgid "sublocation" msgstr "dzielnica" #: src/main/extractor_metatypes.c:139 msgid "more specific location of the geographic origin" msgstr "dokładniejsze miejsce pochodzenia geograficznego" #: src/main/extractor_metatypes.c:140 msgid "country" msgstr "kraj" #: src/main/extractor_metatypes.c:141 msgid "name of the country where the document originated" msgstr "nazwa kraju, z którego pochodzi dokument" #: src/main/extractor_metatypes.c:142 msgid "country code" msgstr "kod kraju" #: src/main/extractor_metatypes.c:143 msgid "ISO 2-letter country code for the country of origin" msgstr "2-literowy kod ISO kraju pochodzenia" #: src/main/extractor_metatypes.c:146 msgid "specifics are not known" msgstr "szczegóły nieznane" #: src/main/extractor_metatypes.c:147 src/main/extractor_metatypes.c:148 msgid "description" msgstr "opis" #: src/main/extractor_metatypes.c:149 msgid "copyright" msgstr "prawa autorskie" #: src/main/extractor_metatypes.c:150 msgid "Name of the entity holding the copyright" msgstr "Nazwa podmiotu, do którego należą prawa autorskie" #: src/main/extractor_metatypes.c:151 msgid "rights" msgstr "prawa" #: src/main/extractor_metatypes.c:152 msgid "information about rights" msgstr "informacje o prawach" #: src/main/extractor_metatypes.c:153 src/main/extractor_metatypes.c:154 msgid "keywords" msgstr "słowa kluczowe" #: src/main/extractor_metatypes.c:156 src/main/extractor_metatypes.c:157 msgid "abstract" msgstr "abstrakt" #: src/main/extractor_metatypes.c:158 src/main/extractor_metatypes.c:159 msgid "summary" msgstr "streszczenie" #: src/main/extractor_metatypes.c:160 msgid "subject" msgstr "przedmiot" #: src/main/extractor_metatypes.c:161 msgid "subject matter" msgstr "przedmiot tematu" #: src/main/extractor_metatypes.c:162 src/main/extractor_metatypes.c:195 msgid "creator" msgstr "twórca" #: src/main/extractor_metatypes.c:163 msgid "name of the person who created the document" msgstr "nazwisko osoby, która stworzyła dokument" #: src/main/extractor_metatypes.c:164 msgid "format" msgstr "format" #: src/main/extractor_metatypes.c:165 msgid "name of the document format" msgstr "nazwa formatu dokumentu" #: src/main/extractor_metatypes.c:167 msgid "format version" msgstr "wersja formatu" #: src/main/extractor_metatypes.c:168 msgid "version of the document format" msgstr "wersja formatu dokumentu" #: src/main/extractor_metatypes.c:169 msgid "created by software" msgstr "program tworzący" #: src/main/extractor_metatypes.c:170 msgid "name of the software that created the document" msgstr "nazwa programu, który utworzył dokument" #: src/main/extractor_metatypes.c:171 msgid "unknown date" msgstr "nieznana data" #: src/main/extractor_metatypes.c:172 msgid "" "ambiguous date (could specify creation time, modification time or access " "time)" msgstr "" "data bez określonego znaczenia (czas utworzenia, modyfikacji lub dostępu)" #: src/main/extractor_metatypes.c:173 msgid "creation date" msgstr "data utworzenia" #: src/main/extractor_metatypes.c:174 msgid "date the document was created" msgstr "data utworzenia dokumentu" #: src/main/extractor_metatypes.c:175 msgid "modification date" msgstr "data modyfikacji" #: src/main/extractor_metatypes.c:176 msgid "date the document was modified" msgstr "data modyfikacji dokumentu" #: src/main/extractor_metatypes.c:178 msgid "last printed" msgstr "ostatni wydruk" #: src/main/extractor_metatypes.c:179 msgid "date the document was last printed" msgstr "data ostatniego wydruku dokumentu" #: src/main/extractor_metatypes.c:180 msgid "last saved by" msgstr "ostatni zapis przez" #: src/main/extractor_metatypes.c:181 msgid "name of the user who saved the document last" msgstr "nazwa użytkownika, który ostatni zapisał dokument" #: src/main/extractor_metatypes.c:182 msgid "total editing time" msgstr "całkowity czas edycji" #: src/main/extractor_metatypes.c:183 msgid "time spent editing the document" msgstr "czas poświęcony na edycję dokumentu" #: src/main/extractor_metatypes.c:184 msgid "editing cycles" msgstr "cykle edycyjne" #: src/main/extractor_metatypes.c:185 msgid "number of editing cycles" msgstr "liczba cykli edycyjnych" #: src/main/extractor_metatypes.c:186 msgid "modified by software" msgstr "program modyfikujący" #: src/main/extractor_metatypes.c:187 msgid "name of software making modifications" msgstr "nazwa programu wykonującego modyfikacje" #: src/main/extractor_metatypes.c:189 msgid "revision history" msgstr "historia wersji" #: src/main/extractor_metatypes.c:190 msgid "information about the revision history" msgstr "informacja o historii wersji" #: src/main/extractor_metatypes.c:191 msgid "embedded file size" msgstr "osadzony rozmiar pliku" #: src/main/extractor_metatypes.c:192 msgid "size of the contents of the container as embedded in the file" msgstr "rozmiar treści w kontenerze osadzonym w pliku" #: src/main/extractor_metatypes.c:193 msgid "file type" msgstr "rodzaj pliku" #: src/main/extractor_metatypes.c:194 msgid "standard Macintosh Finder file type information" msgstr "standardowa informacja o rodzaju pliku wg Macintosh Findera" #: src/main/extractor_metatypes.c:196 msgid "standard Macintosh Finder file creator information" msgstr "standardowa informacja o twórcy pliku wg Macintosh Findera" #: src/main/extractor_metatypes.c:197 msgid "package name" msgstr "nazwa pakietu" #: src/main/extractor_metatypes.c:198 msgid "unique identifier for the package" msgstr "unikalny identyfikator pakietu" #: src/main/extractor_metatypes.c:200 msgid "package version" msgstr "wersja pakietu" #: src/main/extractor_metatypes.c:201 msgid "version of the software and its package" msgstr "wersja programu i jego pakietu" #: src/main/extractor_metatypes.c:202 msgid "section" msgstr "sekcja" #: src/main/extractor_metatypes.c:203 msgid "category the software package belongs to" msgstr "kategoria, do której należy pakiet oprogramowania" #: src/main/extractor_metatypes.c:204 msgid "upload priority" msgstr "priorytet wdrozenia" #: src/main/extractor_metatypes.c:205 msgid "priority for promoting the release to production" msgstr "priorytet przesłania wydania na produkcję" #: src/main/extractor_metatypes.c:206 msgid "dependencies" msgstr "zależności" #: src/main/extractor_metatypes.c:207 msgid "packages this package depends upon" msgstr "pakiety, od których zależy ten pakiet" #: src/main/extractor_metatypes.c:208 msgid "conflicting packages" msgstr "pakiety w konflikcie" #: src/main/extractor_metatypes.c:209 msgid "packages that cannot be installed with this package" msgstr "pakiety, które nie mogą być zainstalowane równocześnie z tym pakietem" #: src/main/extractor_metatypes.c:211 msgid "replaced packages" msgstr "pakiety zastępowane" #: src/main/extractor_metatypes.c:212 msgid "packages made obsolete by this package" msgstr "pakiety wyłączane z użycia przez ten pakiet" #: src/main/extractor_metatypes.c:213 msgid "provides" msgstr "dostarczane właściwości" #: src/main/extractor_metatypes.c:214 msgid "functionality provided by this package" msgstr "funkcjonalność dostarczana przez ten pakiet" #: src/main/extractor_metatypes.c:215 msgid "recommendations" msgstr "rekomendacje" #: src/main/extractor_metatypes.c:216 msgid "packages recommended for installation in conjunction with this package" msgstr "pakiety rekomendowane do instalacji w połączeniu z tym pakietem" #: src/main/extractor_metatypes.c:217 msgid "suggestions" msgstr "sugestie" #: src/main/extractor_metatypes.c:218 msgid "packages suggested for installation in conjunction with this package" msgstr "pakiety sugerowane do instalacji w połączeniu z tym pakietem" #: src/main/extractor_metatypes.c:219 msgid "maintainer" msgstr "utrzymujący" #: src/main/extractor_metatypes.c:220 msgid "name of the maintainer" msgstr "nazwisko utrzymującego" #: src/main/extractor_metatypes.c:222 msgid "installed size" msgstr "rozmiar po instalacji" #: src/main/extractor_metatypes.c:223 msgid "space consumption after installation" msgstr "miejsce zajmowane przez pakiet po instalacji" #: src/main/extractor_metatypes.c:224 src/main/extractor_metatypes.c:304 msgid "source" msgstr "źródło" #: src/main/extractor_metatypes.c:225 msgid "original source code" msgstr "oryginalny kod źródłowy" #: src/main/extractor_metatypes.c:226 msgid "is essential" msgstr "jest ważny" #: src/main/extractor_metatypes.c:227 msgid "package is marked as essential" msgstr "pakiet jest oznaczony jako ważny" #: src/main/extractor_metatypes.c:228 msgid "target architecture" msgstr "architektura docelowa" #: src/main/extractor_metatypes.c:229 msgid "hardware architecture the contents can be used for" msgstr "architektura sprzętu, dla którego może być użyty pakiet" #: src/main/extractor_metatypes.c:230 msgid "pre-dependency" msgstr "wczesna zależność" #: src/main/extractor_metatypes.c:231 msgid "dependency that must be satisfied before installation" msgstr "zależność, która musi być spełniona przed instalacją" #: src/main/extractor_metatypes.c:233 msgid "license" msgstr "licencja" #: src/main/extractor_metatypes.c:234 msgid "applicable copyright license" msgstr "stosowana licencja" #: src/main/extractor_metatypes.c:235 msgid "distribution" msgstr "dystrybucja" #: src/main/extractor_metatypes.c:236 msgid "distribution the package is a part of" msgstr "dystrybucja, której częścią jest pakiet" #: src/main/extractor_metatypes.c:237 msgid "build host" msgstr "host budowania" #: src/main/extractor_metatypes.c:238 msgid "machine the package was build on" msgstr "maszyna, na której pakiet został zbudowany" #: src/main/extractor_metatypes.c:239 msgid "vendor" msgstr "dostawca" #: src/main/extractor_metatypes.c:240 msgid "name of the software vendor" msgstr "nazwa dostawcy oprogramowania" #: src/main/extractor_metatypes.c:241 msgid "target operating system" msgstr "docelowy system operacyjny" #: src/main/extractor_metatypes.c:242 msgid "operating system for which this package was made" msgstr "system operacyjny, dla którego pakiet został zrobiony" #: src/main/extractor_metatypes.c:244 msgid "software version" msgstr "wersja oprogramowania" #: src/main/extractor_metatypes.c:245 msgid "version of the software contained in the file" msgstr "wersja oprogramowania zawartego w pliku" #: src/main/extractor_metatypes.c:246 msgid "target platform" msgstr "platforma docelowa" #: src/main/extractor_metatypes.c:247 msgid "" "name of the architecture, operating system and distribution this package is " "for" msgstr "" "nazwa architektury, systemu operacyjnego i dystrybucji, dla której jest ten " "pakiet" #: src/main/extractor_metatypes.c:248 msgid "resource type" msgstr "rodzaj zasobu" #: src/main/extractor_metatypes.c:249 msgid "" "categorization of the nature of the resource that is more specific than the " "file format" msgstr "kategoryzacja charakteru zasobu bardziej konkretna od formatu pliku" #: src/main/extractor_metatypes.c:250 msgid "library search path" msgstr "ścieżka poszukiwań bibliotek" #: src/main/extractor_metatypes.c:251 msgid "" "path in the file system to be considered when looking for required libraries" msgstr "" "ścieżka w systemie plików, która ma być uwzględniana przy szukaniu " "wymaganych bibliotek" #: src/main/extractor_metatypes.c:252 msgid "library dependency" msgstr "zależność od biblioteki" #: src/main/extractor_metatypes.c:253 msgid "name of a library that this file depends on" msgstr "nazwa biblioteki, od której zależy ten plik" #: src/main/extractor_metatypes.c:255 src/main/extractor_metatypes.c:256 msgid "camera make" msgstr "marka aparatu" #: src/main/extractor_metatypes.c:257 src/main/extractor_metatypes.c:258 msgid "camera model" msgstr "model aparatu" #: src/main/extractor_metatypes.c:259 src/main/extractor_metatypes.c:260 msgid "exposure" msgstr "ekspozycja" #: src/main/extractor_metatypes.c:261 src/main/extractor_metatypes.c:262 msgid "aperture" msgstr "przysłona" #: src/main/extractor_metatypes.c:263 src/main/extractor_metatypes.c:264 msgid "exposure bias" msgstr "odchylenie ekspozycji" #: src/main/extractor_metatypes.c:266 src/main/extractor_metatypes.c:267 msgid "flash" msgstr "flesz" #: src/main/extractor_metatypes.c:268 src/main/extractor_metatypes.c:269 msgid "flash bias" msgstr "odchylenie flesza" #: src/main/extractor_metatypes.c:270 src/main/extractor_metatypes.c:271 msgid "focal length" msgstr "długość ogniskowej" #: src/main/extractor_metatypes.c:272 src/main/extractor_metatypes.c:273 msgid "focal length 35mm" msgstr "ogniskowa 35mm" #: src/main/extractor_metatypes.c:274 src/main/extractor_metatypes.c:275 msgid "iso speed" msgstr "czułość ISO" #: src/main/extractor_metatypes.c:277 src/main/extractor_metatypes.c:278 msgid "exposure mode" msgstr "tryb ekspozycji" #: src/main/extractor_metatypes.c:279 src/main/extractor_metatypes.c:280 msgid "metering mode" msgstr "tryb pomiaru" #: src/main/extractor_metatypes.c:281 src/main/extractor_metatypes.c:282 msgid "macro mode" msgstr "tryb makro" #: src/main/extractor_metatypes.c:283 src/main/extractor_metatypes.c:284 msgid "image quality" msgstr "jakość obrazu" #: src/main/extractor_metatypes.c:285 src/main/extractor_metatypes.c:286 msgid "white balance" msgstr "balans bieli" #: src/main/extractor_metatypes.c:288 src/main/extractor_metatypes.c:289 msgid "orientation" msgstr "orientacja" #: src/main/extractor_metatypes.c:290 src/main/extractor_metatypes.c:291 msgid "magnification" msgstr "powiększenie" #: src/main/extractor_metatypes.c:292 msgid "image dimensions" msgstr "wymiary obrazu" #: src/main/extractor_metatypes.c:293 msgid "size of the image in pixels (width times height)" msgstr "rozmiar obrazu w pikselach (szerokość razy wysokość)" #: src/main/extractor_metatypes.c:294 src/main/extractor_metatypes.c:295 msgid "produced by software" msgstr "oprogramowanie tworzące" #: src/main/extractor_metatypes.c:299 msgid "thumbnail" msgstr "miniaturka" #: src/main/extractor_metatypes.c:300 msgid "smaller version of the image for previewing" msgstr "mniejsza wersja obrazu do podglądu" #: src/main/extractor_metatypes.c:302 msgid "image resolution" msgstr "rozdzielczość obrazu" #: src/main/extractor_metatypes.c:303 msgid "resolution in dots per inch" msgstr "rozdzielczość w punktach na cal" #: src/main/extractor_metatypes.c:305 msgid "Originating entity" msgstr "przedmiot początkowy" #: src/main/extractor_metatypes.c:306 msgid "character set" msgstr "zestaw znaków" #: src/main/extractor_metatypes.c:307 msgid "character encoding used" msgstr "użyte kodowanie znaków" #: src/main/extractor_metatypes.c:308 msgid "line count" msgstr "liczba linii" #: src/main/extractor_metatypes.c:309 msgid "number of lines" msgstr "liczba linii" #: src/main/extractor_metatypes.c:310 msgid "paragraph count" msgstr "liczba akapitów" #: src/main/extractor_metatypes.c:311 msgid "number of paragraphs" msgstr "liczba akapitów" #: src/main/extractor_metatypes.c:313 msgid "word count" msgstr "liczba słów" #: src/main/extractor_metatypes.c:314 msgid "number of words" msgstr "liczba słów" #: src/main/extractor_metatypes.c:315 msgid "character count" msgstr "liczba znaków" #: src/main/extractor_metatypes.c:316 msgid "number of characters" msgstr "liczba znaków" #: src/main/extractor_metatypes.c:317 src/main/extractor_metatypes.c:318 msgid "page orientation" msgstr "orientacja strony" #: src/main/extractor_metatypes.c:319 src/main/extractor_metatypes.c:320 msgid "paper size" msgstr "rozmiar papieru" #: src/main/extractor_metatypes.c:321 msgid "template" msgstr "szablon" #: src/main/extractor_metatypes.c:322 msgid "template the document uses or is based on" msgstr "szablon wykorzystywany przez dokument" #: src/main/extractor_metatypes.c:324 src/main/extractor_metatypes.c:325 msgid "company" msgstr "firma" #: src/main/extractor_metatypes.c:326 src/main/extractor_metatypes.c:327 msgid "manager" msgstr "zarządca" #: src/main/extractor_metatypes.c:328 src/main/extractor_metatypes.c:329 msgid "revision number" msgstr "numer rewizji" #: src/main/extractor_metatypes.c:330 msgid "duration" msgstr "czas trwania" #: src/main/extractor_metatypes.c:331 msgid "play time for the medium" msgstr "czas odtwarzania nośnika" #: src/main/extractor_metatypes.c:332 msgid "album" msgstr "album" #: src/main/extractor_metatypes.c:333 msgid "name of the album" msgstr "nazwa albumu" #: src/main/extractor_metatypes.c:335 msgid "artist" msgstr "artysta" #: src/main/extractor_metatypes.c:336 msgid "name of the artist or band" msgstr "nazwisko/nazwa artysty lub zespołu" #: src/main/extractor_metatypes.c:337 src/main/extractor_metatypes.c:338 msgid "genre" msgstr "gatunek" #: src/main/extractor_metatypes.c:339 msgid "track number" msgstr "numer ścieżki" #: src/main/extractor_metatypes.c:340 msgid "original number of the track on the distribution medium" msgstr "oryginalny numer ścieżki na nośniku dystrybucyjnym" #: src/main/extractor_metatypes.c:341 msgid "disk number" msgstr "numer płyty" #: src/main/extractor_metatypes.c:342 msgid "number of the disk in a multi-disk (or volume) distribution" msgstr "numer dysku w wydaniu wielopłytowym (lub wielowoluminowym)" #: src/main/extractor_metatypes.c:343 msgid "performer" msgstr "wykonawca" #: src/main/extractor_metatypes.c:344 msgid "" "The artist(s) who performed the work (conductor, orchestra, soloists, actor, " "etc.)" msgstr "" "artysta/artyści wykonujący utwory (dyrygent, orkiestra, soliści, aktor itp.)" #: src/main/extractor_metatypes.c:346 msgid "contact" msgstr "kontakt" #: src/main/extractor_metatypes.c:347 msgid "Contact information for the creator or distributor" msgstr "informacje kontaktowe do twórcy lub dystrybutora" #: src/main/extractor_metatypes.c:348 msgid "song version" msgstr "wersja utworu" #: src/main/extractor_metatypes.c:349 msgid "name of the version of the song (i.e. remix information)" msgstr "nazwa wersji utworu (np. informacje o remiksie)" #: src/main/extractor_metatypes.c:350 msgid "picture" msgstr "grafika" #: src/main/extractor_metatypes.c:351 msgid "associated misc. picture" msgstr "dowolna powiązana grafika" #: src/main/extractor_metatypes.c:352 msgid "cover picture" msgstr "obraz okładki" #: src/main/extractor_metatypes.c:353 msgid "picture of the cover of the distribution medium" msgstr "obraz okładki nośnika dystrybucyjnego" #: src/main/extractor_metatypes.c:354 msgid "contributor picture" msgstr "zdjęcie współpracownika" #: src/main/extractor_metatypes.c:355 msgid "picture of one of the contributors" msgstr "zdjęcie jednego ze współpracowników" #: src/main/extractor_metatypes.c:357 msgid "event picture" msgstr "zdjęcie wydarzenia" #: src/main/extractor_metatypes.c:358 msgid "picture of an associated event" msgstr "zdjęcie powiązanego wydarzenia" #: src/main/extractor_metatypes.c:359 msgid "logo" msgstr "logo" #: src/main/extractor_metatypes.c:360 msgid "logo of an associated organization" msgstr "logo powiązanej organizacji" #: src/main/extractor_metatypes.c:361 msgid "broadcast television system" msgstr "system transmisji telewizyjnej" #: src/main/extractor_metatypes.c:362 msgid "name of the television system for which the data is coded" msgstr "nazwa systemu telewizji, dla którego zostały zakodowane dane" #: src/main/extractor_metatypes.c:363 msgid "source device" msgstr "urządzenie źródłowe" #: src/main/extractor_metatypes.c:364 msgid "device used to create the object" msgstr "urządzenie użyte przy tworzeniu obiektu" #: src/main/extractor_metatypes.c:365 msgid "disclaimer" msgstr "zastrzeżenia" #: src/main/extractor_metatypes.c:366 msgid "legal disclaimer" msgstr "zastrzeżenia prawne" #: src/main/extractor_metatypes.c:368 msgid "warning" msgstr "ostrzeżenie" #: src/main/extractor_metatypes.c:369 msgid "warning about the nature of the content" msgstr "ostrzeżenie o charakterze treści" #: src/main/extractor_metatypes.c:370 msgid "page order" msgstr "kolejność stron" #: src/main/extractor_metatypes.c:371 msgid "order of the pages" msgstr "kolejność stron" #: src/main/extractor_metatypes.c:372 msgid "writer" msgstr "pisarz" #: src/main/extractor_metatypes.c:373 msgid "contributing writer" msgstr "pisarz współpracujący" #: src/main/extractor_metatypes.c:374 src/main/extractor_metatypes.c:375 msgid "product version" msgstr "wersja produktu" #: src/main/extractor_metatypes.c:376 msgid "contributor" msgstr "współpracownik" #: src/main/extractor_metatypes.c:377 msgid "name of a contributor" msgstr "nazwisko współpracownika" #: src/main/extractor_metatypes.c:379 msgid "movie director" msgstr "reżyser filmu" #: src/main/extractor_metatypes.c:380 msgid "name of the director" msgstr "nazwisko reżysera" #: src/main/extractor_metatypes.c:381 msgid "network" msgstr "sieć" #: src/main/extractor_metatypes.c:382 msgid "name of the broadcasting network or station" msgstr "nazwa sieci lub stacji transmitującej" #: src/main/extractor_metatypes.c:383 msgid "show" msgstr "przedstawienie" #: src/main/extractor_metatypes.c:384 msgid "name of the show" msgstr "nazwa przedstawienia" #: src/main/extractor_metatypes.c:385 msgid "chapter name" msgstr "nazwa rozdziału" #: src/main/extractor_metatypes.c:386 msgid "name of the chapter" msgstr "nazwa rozdziału" #: src/main/extractor_metatypes.c:387 msgid "song count" msgstr "liczba utworów" #: src/main/extractor_metatypes.c:388 msgid "number of songs" msgstr "liczba utworów" #: src/main/extractor_metatypes.c:390 msgid "starting song" msgstr "utwór początkowy" #: src/main/extractor_metatypes.c:391 msgid "number of the first song to play" msgstr "numer pierwszego utworu do odtwarzania" #: src/main/extractor_metatypes.c:392 msgid "play counter" msgstr "liczba odtworzeń" #: src/main/extractor_metatypes.c:393 msgid "number of times the media has been played" msgstr "liczba razy, które nośnik był odtwarzany" #: src/main/extractor_metatypes.c:394 msgid "conductor" msgstr "dyrygent" #: src/main/extractor_metatypes.c:395 msgid "name of the conductor" msgstr "nazwisko dyrygenta" #: src/main/extractor_metatypes.c:396 msgid "interpretation" msgstr "interpretacja" #: src/main/extractor_metatypes.c:397 msgid "" "information about the people behind interpretations of an existing piece" msgstr "" "informacje o osobach odpowiedzialnych za interpretacje istniejącego utworu" #: src/main/extractor_metatypes.c:398 msgid "composer" msgstr "kompozytor" #: src/main/extractor_metatypes.c:399 msgid "name of the composer" msgstr "nazwisko kompozytora" #: src/main/extractor_metatypes.c:401 src/main/extractor_metatypes.c:402 msgid "beats per minute" msgstr "uderzeń na minutę" #: src/main/extractor_metatypes.c:403 msgid "encoded by" msgstr "kodujący" #: src/main/extractor_metatypes.c:404 msgid "name of person or organization that encoded the file" msgstr "nazwisko/nazwa osoby lub organizacji, która zakodowała plik" #: src/main/extractor_metatypes.c:405 msgid "original title" msgstr "tytuł oryginalny" #: src/main/extractor_metatypes.c:406 msgid "title of the original work" msgstr "tytuł oryginalnego dzieła" #: src/main/extractor_metatypes.c:407 msgid "original artist" msgstr "artysta oryginalny" #: src/main/extractor_metatypes.c:408 msgid "name of the original artist" msgstr "nazwisko oryginalnego artysty" #: src/main/extractor_metatypes.c:409 msgid "original writer" msgstr "pisarz oryginalny" #: src/main/extractor_metatypes.c:410 msgid "name of the original lyricist or writer" msgstr "nazwisko oryginalnego poety lub pisarza" #: src/main/extractor_metatypes.c:412 msgid "original release year" msgstr "oryginalny rok wydania" #: src/main/extractor_metatypes.c:413 msgid "year of the original release" msgstr "rok oryginalnego wydania" #: src/main/extractor_metatypes.c:414 msgid "original performer" msgstr "wykonawca oryginalny" #: src/main/extractor_metatypes.c:415 msgid "name of the original performer" msgstr "nazwa oryginalnego wykonawcy" #: src/main/extractor_metatypes.c:416 msgid "lyrics" msgstr "tekst" #: src/main/extractor_metatypes.c:417 msgid "lyrics of the song or text description of vocal activities" msgstr "tekst utworu lub tekstowy opis dotyczący wokalu" #: src/main/extractor_metatypes.c:418 msgid "popularity" msgstr "popularność" #: src/main/extractor_metatypes.c:419 msgid "information about the file's popularity" msgstr "informacje o popularności pliku" #: src/main/extractor_metatypes.c:420 msgid "licensee" msgstr "licencjobiorca" #: src/main/extractor_metatypes.c:421 msgid "name of the owner or licensee of the file" msgstr "nazwisko/nazwa właściciela lub licencjobiorcy pliku" #: src/main/extractor_metatypes.c:423 msgid "musician credit list" msgstr "lista podziękowań dla muzyków" #: src/main/extractor_metatypes.c:424 msgid "names of contributing musicians" msgstr "nazwiska muzyków współpracujących" #: src/main/extractor_metatypes.c:425 msgid "mood" msgstr "nastrój" #: src/main/extractor_metatypes.c:426 msgid "keywords reflecting the mood of the piece" msgstr "słowa kluczowe odzwierciedlające nastrój utworu" #: src/main/extractor_metatypes.c:427 msgid "subtitle" msgstr "podtytuł" #: src/main/extractor_metatypes.c:428 msgid "subtitle of this part" msgstr "podtytuł tej części" #: src/main/extractor_metatypes.c:429 msgid "display type" msgstr "rodzaj ekranu" #: src/main/extractor_metatypes.c:430 msgid "what rendering method should be used to display this item" msgstr "metoda renderowania, jaka powinna być użyta do wyświetlania" #: src/main/extractor_metatypes.c:431 msgid "full data" msgstr "pełne dane" #: src/main/extractor_metatypes.c:432 msgid "" "entry that contains the full, original binary data (not really meta data)" msgstr "wpis zawierający pełne, oryginalne dane binarne (nie metadane)" #: src/main/extractor_metatypes.c:434 msgid "rating" msgstr "ocena" #: src/main/extractor_metatypes.c:435 msgid "rating of the content" msgstr "ocena treści" #: src/main/extractor_metatypes.c:436 src/main/extractor_metatypes.c:437 msgid "organization" msgstr "organizacja" #: src/main/extractor_metatypes.c:438 src/main/extractor_metatypes.c:439 msgid "ripper" msgstr "kopiujący" #: src/main/extractor_metatypes.c:440 src/main/extractor_metatypes.c:441 msgid "producer" msgstr "producent" #: src/main/extractor_metatypes.c:442 msgid "group" msgstr "grupa" #: src/main/extractor_metatypes.c:443 msgid "name of the group or band" msgstr "nazwa grupy lub zespołu" #: src/main/extractor_metatypes.c:445 msgid "original filename" msgstr "oryginalna nazwa pliku" #: src/main/extractor_metatypes.c:446 msgid "name of the original file (reserved for GNUnet)" msgstr "nazwa oryginalnego pliku (zarezerwowane dla GNUneta)" #: src/main/extractor_metatypes.c:447 msgid "disc count" msgstr "liczba płyt" #: src/main/extractor_metatypes.c:448 msgid "count of discs inside collection this disc belongs to" msgstr "liczba płyt w zestawie, do którego należy ta płyta" #: src/main/extractor_metatypes.c:449 msgid "codec" msgstr "kodek" #: src/main/extractor_metatypes.c:450 msgid "codec the data is stored in" msgstr "kodek, przy użyciu którego zostały zapisane dane" #: src/main/extractor_metatypes.c:451 msgid "video codec" msgstr "kodek obrazu" #: src/main/extractor_metatypes.c:452 msgid "codec the video data is stored in" msgstr "kodek, przy użyciu którego zostały zapisane dane wideo" #: src/main/extractor_metatypes.c:453 msgid "audio codec" msgstr "kodek dźwięku" #: src/main/extractor_metatypes.c:454 msgid "codec the audio data is stored in" msgstr "kodek, przy użyciu którego zostały zapisane dane dźwiękowe" #: src/main/extractor_metatypes.c:456 msgid "subtitle codec" msgstr "kodek napisów" #: src/main/extractor_metatypes.c:457 msgid "codec/format the subtitle data is stored in" msgstr "kodek/format, w jakim zostały zapisane napisy" #: src/main/extractor_metatypes.c:458 msgid "container format" msgstr "format kontenera" #: src/main/extractor_metatypes.c:459 msgid "container format the data is stored in" msgstr "format kontenera, w którym zostały zapisane dane" #: src/main/extractor_metatypes.c:460 msgid "bitrate" msgstr "prędkość transmisji" #: src/main/extractor_metatypes.c:461 msgid "exact or average bitrate in bits/s" msgstr "dokładna lub średnia prędkość transmisji w bitach na sekundę" #: src/main/extractor_metatypes.c:462 msgid "nominal bitrate" msgstr "nominalna prędkość transmisji" #: src/main/extractor_metatypes.c:463 msgid "" "nominal bitrate in bits/s. The actual bitrate might be different from this " "target bitrate." msgstr "" "nominalna prędkość transmisji w bitach na sekundę; faktyczna prędkość może " "się różnić od tej docelowej" #: src/main/extractor_metatypes.c:464 msgid "minimum bitrate" msgstr "minimalna prędkość transmisji" #: src/main/extractor_metatypes.c:465 msgid "minimum bitrate in bits/s" msgstr "minimalna prędkość transmisji w bitach na sekundę" #: src/main/extractor_metatypes.c:467 msgid "maximum bitrate" msgstr "maksymalna prędkość transmisji" #: src/main/extractor_metatypes.c:468 msgid "maximum bitrate in bits/s" msgstr "maksymalna prędkość transmisji w bitach na sekundę" #: src/main/extractor_metatypes.c:469 msgid "serial" msgstr "numer seryjny" #: src/main/extractor_metatypes.c:470 msgid "serial number of track" msgstr "numer seryjny ścieżki" #: src/main/extractor_metatypes.c:471 msgid "encoder" msgstr "koder" #: src/main/extractor_metatypes.c:472 msgid "encoder used to encode this stream" msgstr "program kodujący użyty do zakodowania tego strumienia" #: src/main/extractor_metatypes.c:473 msgid "encoder version" msgstr "wersja kodera" #: src/main/extractor_metatypes.c:474 msgid "version of the encoder used to encode this stream" msgstr "wersja programu kodującego użytego do zakodowania tego strumienia" #: src/main/extractor_metatypes.c:475 msgid "track gain" msgstr "wzmocnienie ścieżki" #: src/main/extractor_metatypes.c:476 msgid "track gain in db" msgstr "wzmocnienie ścieżki w db" #: src/main/extractor_metatypes.c:478 msgid "track peak" msgstr "poziom szczytowy ścieżki" #: src/main/extractor_metatypes.c:479 msgid "peak of the track" msgstr "poziom szczytowy ścieżki" #: src/main/extractor_metatypes.c:480 msgid "album gain" msgstr "wzmocnienie albumu" #: src/main/extractor_metatypes.c:481 msgid "album gain in db" msgstr "wzmocnienie albumu w db" #: src/main/extractor_metatypes.c:482 msgid "album peak" msgstr "poziom szczytowy albumu" #: src/main/extractor_metatypes.c:483 msgid "peak of the album" msgstr "poziom szczytowy albumu" #: src/main/extractor_metatypes.c:484 msgid "reference level" msgstr "poziom odniesienia" #: src/main/extractor_metatypes.c:485 msgid "reference level of track and album gain values" msgstr "poziom odniesienia" #: src/main/extractor_metatypes.c:486 msgid "location name" msgstr "nazwa miejsca" #: src/main/extractor_metatypes.c:487 msgid "" "human readable descriptive location of where the media has been recorded or " "produced" msgstr "" "czytelny dla człowieka opis miejsca, gdzie wykonano lub wyprodukowano " "nagranie" #: src/main/extractor_metatypes.c:489 msgid "location elevation" msgstr "wysokość miejsca" #: src/main/extractor_metatypes.c:490 msgid "" "geo elevation of where the media has been recorded or produced in meters " "according to WGS84 (zero is average sea level)" msgstr "" "wysokość geograficzna miejsca, gdzie wykonano lub wyprodukowano nagranie w " "metrach zgodnie z WGS84 (zero to średni poziom morza)" #: src/main/extractor_metatypes.c:491 msgid "location horizontal error" msgstr "błąd lokalizacji poziomej miejsca" #: src/main/extractor_metatypes.c:492 msgid "represents the expected error on the horizontal positioning in meters" msgstr "spodziewany błąd lokalizacji poziomej w metrach" #: src/main/extractor_metatypes.c:493 msgid "location movement speed" msgstr "szybkość ruchu miejsca" #: src/main/extractor_metatypes.c:494 msgid "" "speed of the capturing device when performing the capture. Represented in m/s" msgstr "" "szybkość ruchu urządzenia nagrywającego podczas nagrania, wyrażona w m/s" #: src/main/extractor_metatypes.c:495 msgid "location movement direction" msgstr "kierunek ruchu miejsca" #: src/main/extractor_metatypes.c:496 msgid "" "indicates the movement direction of the device performing the capture of a " "media. It is represented as degrees in floating point representation, 0 " "means the geographic north, and increases clockwise" msgstr "" "kierunek ruchu urządzenia nagrywającego podczas nagrania; wyrażony w " "stopniach w reprezentacji zmiennoprzecinkowej, 0 oznacza północ geograficzną " "i rośnie zgodnie z ruchem wskazówek zegara" #: src/main/extractor_metatypes.c:497 msgid "location capture direction" msgstr "kierunek wykonywania nagrania" #: src/main/extractor_metatypes.c:498 msgid "" "indicates the direction the device is pointing to when capturing a media. It " "is represented as degrees in floating point representation, 0 means the " "geographic north, and increases clockwise" msgstr "" "kierunek skierowania urządzenia nagrywającego podczas nagrania; wyrażony w " "stopniach w reprezentacji zmiennoprzecinkowej, 0 oznacza północ geograficzną " "i rośnie zgodnie z ruchem wskazówek zegara" #: src/main/extractor_metatypes.c:500 msgid "show episode number" msgstr "numer epizodu przedstawienia" #: src/main/extractor_metatypes.c:501 msgid "number of the episode within a season/show" msgstr "numer epizodu w sezonie/przedstawieniu" #: src/main/extractor_metatypes.c:502 msgid "show season number" msgstr "numer sezonu przestawienia" #: src/main/extractor_metatypes.c:503 msgid "number of the season of a show/series" msgstr "numer sezonu przestawienia/serialu" #: src/main/extractor_metatypes.c:504 #, fuzzy msgid "grouping" msgstr "grupowanie" #: src/main/extractor_metatypes.c:505 msgid "" "groups together media that are related and spans multiple tracks. An example " "are multiple pieces of a concerto" msgstr "" "grupowanie utworów powiązanych ze sobą, zajmujących wiele ścieżek - np. " "wielu fragmentów koncertu" #: src/main/extractor_metatypes.c:506 msgid "device manufacturer" msgstr "producent urządzenia" #: src/main/extractor_metatypes.c:507 msgid "manufacturer of the device used to create the media" msgstr "producent urządzenia wykorzystanego do wykonania nagrania" #: src/main/extractor_metatypes.c:508 msgid "device model" msgstr "model urządzenia" #: src/main/extractor_metatypes.c:509 msgid "model of the device used to create the media" msgstr "model urządzenia wykorzystanego do wykonania nagrania" #: src/main/extractor_metatypes.c:511 msgid "audio language" msgstr "język dźwięku" #: src/main/extractor_metatypes.c:512 msgid "language of the audio track" msgstr "język ścieżki dźwiękowej" #: src/main/extractor_metatypes.c:513 msgid "channels" msgstr "liczba kanałów" #: src/main/extractor_metatypes.c:514 msgid "number of audio channels" msgstr "liczba kanałów dźwięku" #: src/main/extractor_metatypes.c:515 msgid "sample rate" msgstr "częstotliwość próbkowania" #: src/main/extractor_metatypes.c:516 msgid "sample rate of the audio track" msgstr "częstotliwość próbkowania ścieżki dźwiękowej" #: src/main/extractor_metatypes.c:517 msgid "audio depth" msgstr "głębia dźwięku" #: src/main/extractor_metatypes.c:518 msgid "number of bits per audio sample" msgstr "liczba bitów na próbkę dźwięku" #: src/main/extractor_metatypes.c:519 msgid "audio bitrate" msgstr "prędkosć transmisji dźwięku" #: src/main/extractor_metatypes.c:520 msgid "bitrate of the audio track" msgstr "prędkość transmisji ścieżki dźwiękowej" #: src/main/extractor_metatypes.c:522 src/main/extractor_metatypes.c:523 msgid "maximum audio bitrate" msgstr "maksymalna prędkość transmisji dźwięku" #: src/main/extractor_metatypes.c:524 msgid "video dimensions" msgstr "wymiary obrazu" #: src/main/extractor_metatypes.c:525 msgid "width and height of the video track (WxH)" msgstr "szerokośc i wysokość ścieżki obrazu (szer. x wys.)" #: src/main/extractor_metatypes.c:526 msgid "video depth" msgstr "głębia obrazu" #: src/main/extractor_metatypes.c:527 msgid "numbers of bits per pixel" msgstr "liczba bitów na piksel" #: src/main/extractor_metatypes.c:528 msgid "frame rate" msgstr "częstotliwość odświeżania" #: src/main/extractor_metatypes.c:529 msgid "number of frames per second (as D/N or floating point)" msgstr "liczba klatek na sekundę (jako M/L lub zmiennoprzecinkowa)" #: src/main/extractor_metatypes.c:530 msgid "pixel aspect ratio" msgstr "proporcje piksela" #: src/main/extractor_metatypes.c:531 msgid "pixel aspect ratio (as D/N)" msgstr "proporcje piksela (jako M/L)" #: src/main/extractor_metatypes.c:533 src/main/extractor_metatypes.c:534 msgid "video bitrate" msgstr "prędkość transmisji obrazu" #: src/main/extractor_metatypes.c:535 src/main/extractor_metatypes.c:536 msgid "maximum video bitrate" msgstr "maksymalna prędkość transmisji obrazu" #: src/main/extractor_metatypes.c:537 msgid "subtitle language" msgstr "język napisów" #: src/main/extractor_metatypes.c:538 msgid "language of the subtitle track" msgstr "język ścieżki napisów" #: src/main/extractor_metatypes.c:539 msgid "video language" msgstr "język obrazu" #: src/main/extractor_metatypes.c:540 msgid "language of the video track" msgstr "język ścieżki wideo" #: src/main/extractor_metatypes.c:541 msgid "table of contents" msgstr "spis treści" #: src/main/extractor_metatypes.c:542 msgid "chapters, contents or bookmarks (in xml format)" msgstr "rozdziały, treść lub zakładki (w formacie XML)" #: src/main/extractor_metatypes.c:544 msgid "video duration" msgstr "czas trwania filmu" #: src/main/extractor_metatypes.c:545 msgid "duration of a video stream" msgstr "czas trwania strumienia wideo" #: src/main/extractor_metatypes.c:546 msgid "audio duration" msgstr "czas trwania dźwięku" #: src/main/extractor_metatypes.c:547 msgid "duration of an audio stream" msgstr "czas trwania strumienia dźwiękowego" #: src/main/extractor_metatypes.c:548 msgid "subtitle duration" msgstr "czas trwania napisów" #: src/main/extractor_metatypes.c:549 msgid "duration of a subtitle stream" msgstr "czas trwania strumienia napisów" #: src/main/extractor_metatypes.c:551 #, fuzzy msgid "audio preview" msgstr "prędkosć transmisji dźwięku" #: src/main/extractor_metatypes.c:552 #, fuzzy msgid "a preview of the file audio stream" msgstr "częstotliwość próbkowania ścieżki dźwiękowej" #: src/main/extractor_metatypes.c:554 src/main/extractor_metatypes.c:555 msgid "last" msgstr "koniec" #: src/main/getopt.c:684 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: opcja `%s' jest niejednoznaczna\n" #: src/main/getopt.c:709 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: opcja `--%s' nie może mieć argumentów\n" #: src/main/getopt.c:715 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: opcja `%c%s' nie może mieć argumentów\n" #: src/main/getopt.c:732 src/main/getopt.c:903 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: opcja `%s' musi mieć argument\n" #: src/main/getopt.c:761 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: nieznana opcja `--%s'\n" #: src/main/getopt.c:765 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: nieznana opcja `%c%s'\n" #: src/main/getopt.c:791 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: niewłaściwa opcja -- %c\n" #: src/main/getopt.c:793 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: błędna opcja -- %c\n" #: src/main/getopt.c:822 src/main/getopt.c:952 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: opcja musi mieć argument -- %c\n" #: src/main/getopt.c:870 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: opcja `-W %s' jest niejednoznaczna\n" #: src/main/getopt.c:888 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: opcja `-W %s' nie może mieć argumentów\n" #: src/plugins/flac_extractor.c:322 #, c-format msgid "%u Hz, %u channels" msgstr "%u Hz, kanałów: %u" #: src/plugins/man_extractor.c:215 msgid "Commands" msgstr "Polecenia" #: src/plugins/man_extractor.c:219 msgid "System calls" msgstr "Wywołania systemowe" #: src/plugins/man_extractor.c:223 msgid "Library calls" msgstr "Funkcje biblioteczne" #: src/plugins/man_extractor.c:227 msgid "Special files" msgstr "Pliki specjalne" #: src/plugins/man_extractor.c:231 msgid "File formats and conventions" msgstr "Formaty i konwencje plików" #: src/plugins/man_extractor.c:235 msgid "Games" msgstr "Gry" #: src/plugins/man_extractor.c:239 msgid "Conventions and miscellaneous" msgstr "Konwencje i inne" #: src/plugins/man_extractor.c:243 msgid "System management commands" msgstr "Polecenia zarządzania systemem" #: src/plugins/man_extractor.c:247 msgid "Kernel routines" msgstr "Funkcje jądra" #: src/plugins/ole2_extractor.c:387 msgid "No Proofing" msgstr "Bez korekty" #: src/plugins/ole2_extractor.c:395 msgid "Traditional Chinese" msgstr "chiński tradycyjny" #: src/plugins/ole2_extractor.c:397 msgid "Simplified Chinese" msgstr "chiński uproszczony" #: src/plugins/ole2_extractor.c:405 msgid "Swiss German" msgstr "niemiecki szwajcarski" #: src/plugins/ole2_extractor.c:409 msgid "U.S. English" msgstr "angielski amerykański" #: src/plugins/ole2_extractor.c:411 msgid "U.K. English" msgstr "angielski brytyjski" #: src/plugins/ole2_extractor.c:413 msgid "Australian English" msgstr "angielski australijski" #: src/plugins/ole2_extractor.c:415 msgid "Castilian Spanish" msgstr "hiszpański kastylijski" #: src/plugins/ole2_extractor.c:417 msgid "Mexican Spanish" msgstr "hiszpański meksykański" #: src/plugins/ole2_extractor.c:423 msgid "Belgian French" msgstr "francuski belgijski" #: src/plugins/ole2_extractor.c:425 msgid "Canadian French" msgstr "francuski kanadyjski" #: src/plugins/ole2_extractor.c:427 msgid "Swiss French" msgstr "francuski szwajcarski" #: src/plugins/ole2_extractor.c:437 msgid "Swiss Italian" msgstr "włoski szwajcarski" #: src/plugins/ole2_extractor.c:445 msgid "Belgian Dutch" msgstr "holenderski belgijski" #: src/plugins/ole2_extractor.c:447 msgid "Norwegian Bokmal" msgstr "norweski bokmaal" #: src/plugins/ole2_extractor.c:457 msgid "Rhaeto-Romanic" msgstr "retoromański" #: src/plugins/ole2_extractor.c:463 msgid "Croato-Serbian (Latin)" msgstr "chorwackoserbski (łaciński)" #: src/plugins/ole2_extractor.c:465 msgid "Serbo-Croatian (Cyrillic)" msgstr "serbsko-chorwacki (cyrylicki)" #: src/plugins/ole2_extractor.c:493 msgid "Farsi" msgstr "perski" #: src/plugins/ole2_extractor.c:578 #, c-format msgid "Revision #%u: Author `%s' worked on `%s'" msgstr "Rewizja #%u: Autor `%s' pracował nad `%s'" #: src/plugins/riff_extractor.c:145 #, c-format msgid "codec: %s, %u fps, %u ms" msgstr "kodek: %s, %u fps, %u ms" #: src/plugins/wav_extractor.c:120 msgid "mono" msgstr "mono" #: src/plugins/wav_extractor.c:120 msgid "stereo" msgstr "stereo" libextractor-1.3/po/nl.gmo0000644000175000017500000010263612255661612012551 00000000000000|ep&q&&&&,&'%#',I'-v' '&'' (,(.?(Kn(( (((( )2)H)f)})))) )) )**3* L*Lm*/*** ++#+,+0+9+(I+ r+~+(++ ++ ++ ++ , , ., ;, H, V,c,R~,, , ,,--%-C<--- -- -N-..+.2. K. Y. e.q.. .. . ... ... / '/ 4/?/ [/ f/ r/W/(/0 00/%0U0e0 }000!00!0+0"1;1C1]1e1 n1x111&11 11 25 2A2 I2 V2d2 x22>22"2Y3 h35u3 33 3 3 3 4 4 4 (4%54'[4/444445)5185j5}5 55"55I5 6"-6P6 Y6 g6u6 6A66 6 6677 %7 07&:7a7g7nm7278 8.8?8'X8H8&88R8!R9%t99 9 9 99-9 ::)":L:U:q::: : :::;;; ';2;&I;p; ;;";;:; ; < '< 5<@<3H<|<<<< < <<<=,=J=\=q=@v==/===>+&>4R>%>>O>?*?+@?l?.???1? @!@=@W@n@/@'@@)A++AWAmA.~AA9A,B80BiBBBZB,B)CBCbCwCCCC;C*D ,D%MDsDD0DD D DD E7ETEgE}EEEE EE&EFFD[F3F"F FAG DGOG `G kGvGLGGG GH H"(H/KH{H HH HH<H I)IBI0RI?IIIIII JJ-J@JQJ bJlJJJJ7JJJ. K;KMKVKqK KKKKK-KKLL)LHLMLaL=tL0L+LM M +M8M ?M$MM*rMM2M/M N&N-N5N DNPNYNhNzNN NNNNNNO) O 7OAOaO%gOOOO!O OO P P1#PUP!mPP PPPP1P' Q-4Q bQ pQ |QQQQ(QQ'Q9R JR)XR RR>RRRTTTT)U!AU$cU)U*U$U%V(VDV`V+rVPVVW WWW 2W'=WeW!|WWW!WW XX %X0XEX-MX&{XLX3X#Y2YPYeYiYrYvYY,Y Y Y(Y Z ZZ Z*Z 0Z$;Z`ZvZZ ZZZZTZ6[ K[X[j[n[r[6[7[ [\ \%\ 7\SA\ \(\\\\ \ ] ] ]$]8] J]!V]x]] ] ]] ] ] ]] ^ ^ ^D)^-n^^ ^^:^ ^ _#_,_1_+7_%c_+_B__ ``4` :`D`M`f`n`1}`` ```9`/a4a=aLa baoaFua&a3anbb>b bb b(c ,c 8c CcMc ]c/ic&c0cc'cd=d\dyd4ddddd<eCeMRee4eeef f AfMNffffffffg(g:g@gcFg<ggg h!h/9hDih&hhPh$>i%ci i i iii6ij j1'jYj^j vjjjjjj k'k:kCk Rk`k(kk kk%kkDk'r1)s[sxsses+s&t>t[t*mtttt*t/t.*u+Yuuu3uu u vv+v;Hvvvvvv#v !w ,w.9wFhwHwBw+;xgxIyxx x x xxI ySyly yy(y$y,yz'z?z XzezJzz%zz{,{[C{{{ {{{ {{ ||#|2|;|K| _|j|8| ||1| } !}$.}S}m}} }}}6}} }}.~E~J~a~;u~6~4~ , 9D I)V-62 8B IS hs| ƀ р ۀ =' e7o%"Ӂ # C$N s 6ׂ '(KP+%ȃ  * 53@ t'< * *E4#zF+-7%SX#684(0<KOL3V&J#vYV$`K"y./owuAk`]:H8ro7xi+h*,2jBPeIb'rw}vl@_H}@]3$({s1B[Oay9u&5A6n %kz2sMWM-g?<U f1RXC0\h^~/b9"t \ G!pD?qEgIS T'>Ympdc P )U_C=^LNjd;FGx5R>=iQlc.| Q);nJ{| z !Tq[WE aD,meft~*Z:Z4N%s - (binary, %u bytes) %s - (unknown, %u bytes) %s: illegal option -- %c %s: invalid option -- %c %s: option `%c%s' doesn't allow an argument %s: option `%s' is ambiguous %s: option `%s' requires an argument %s: option `--%s' doesn't allow an argument %s: option `-W %s' doesn't allow an argument %s: option `-W %s' is ambiguous %s: option requires an argument -- %c %s: unrecognized option `%c%s' %s: unrecognized option `--%s' %u Hz, %u channelsAddress of the publisher (often only the city)Arguments mandatory for long options are also mandatory for short options. Australian EnglishBelgian DutchBelgian FrenchCanadian FrenchCastilian SpanishCommandsContact information for the creator or distributorConventions and miscellaneousCroato-Serbian (Latin)Extract metadata from files.FarsiFile formats and conventionsFound by `%s' plugin: GPS latitudeGPS latitude refGPS longitudeGPS longitude refGamesISO 2-letter country code for the country of originISRC number identifying the workIllegal combination of options, cannot combine multiple styles of printing. Initialization of plugin mechanism failed: %s! Kernel routinesKeywords for file %s: Library callsMD4MD4 hashMD5MD5 hashMexican SpanishName of the entity holding the copyrightNo ProofingNorwegian BokmalRevision #%u: Author `%s' worked on `%s'Rhaeto-RomanicRipeMD160SHA-0SHA-0 hashSHA-1SHA-1 hashSerbo-Croatian (Cyrillic)Simplified ChineseSpecial filesSwiss FrenchSwiss GermanSwiss ItalianSystem callsSystem management commandsThe artist(s) who performed the work (conductor, orchestra, soloists, actor, etc.)Traditional ChineseU.K. EnglishU.S. EnglishURIURLUsage: %s %s Use --help to get a list of options. You must specify an argument for the `%s' option (option ignored). abstractalbumalbum gainalbum gain in dbalbum peakambiguous date (could specify creation time, modification time or access time)apertureapplicable copyright licenseartistassociated misc. pictureaudio bitrateaudio codecaudio depthaudio durationaudio languageauthor emailauthor institutionauthor namebe verbosebeats per minutebibtex entry typebibtex eprintbitratebitrate of the audio trackbook chapterbook editionbook titlebroadcast television systembuild hostcamera makecamera modelcategorization of the nature of the resource that is more specific than the file formatcategory the software package belongs tochannelschapter namechapter numberchapters, contents or bookmarks (in xml format)character countcharacter encoding usedcharacter setcitycodeccodec the audio data is stored incodec the data is stored incodec the video data is stored incodec/format the subtitle data is stored incodec: %s, %u fps, %u mscommentcomment about the contentcompanycomposerconductorconflicting packagescontactcontainer formatcontainer format the data is stored incontributing writercontributorcontributor picturecopyrightcount of discs inside collection this disc belongs tocountrycountry codecover picturecreated by softwarecreation datecreatordate of publication (or, if unpublished, the date of creation)date the document was createddate the document was last printedday of publication (or, if unpublished, the day of creation), relative to the given monthdependenciesdependency that must be satisfied before installationdescriptiondevice manufacturerdevice modeldevice used to create the objectdisc countdisclaimerdisk numberdisplay typedistributiondistribution the package is a part ofdo not print keywords of the given TYPEdo not use the default set of extractor pluginsdurationduration of a subtitle streamduration of a video streamduration of an audio streame-mail of the author(s)editing cyclesedition of the book (or book containing the work)embedded file sizeembedded filenameencoded byencoderencoder used to encode this streamencoder versionentry that contains the full, original binary data (not really meta data)event pictureexact or average bitrate in bits/sexposureexposure biasexposure modeextract [OPTIONS] [FILENAME]*file typefilename that was embedded (not necessarily the current filename)flashflash biasfocal lengthfocal length 35mmformatformat versionframe ratefull datafunctionality provided by this packagegenregroupgroups together media that are related and spans multiple tracks. An example are multiple pieces of a concertohardware architecture the contents can be used forimage dimensionsimage qualityimage resolutioninformation about rightsinformation about the file's popularityinformation about the people behind interpretations of an existing pieceinformation about the revision historyinstalled sizeinstitution that was involved in the publishing, but not necessarily the publisherinstitution the author worked forinternational standard recording codeinterpretationis essentialiso speedjournal namejournal numberjournal or magazine the work was published injournal volumekeywordskeywords reflecting the mood of the piecelanguagelanguage of the audio tracklanguage of the subtitle tracklanguage of the video tracklanguage the work useslast printedlast saved bylegal disclaimerlibrary dependencylibrary search pathlicenselicenseeline countlist all keyword typesload an extractor plugin named LIBRARYlocation elevationlocation namelogologo of an associated organizationlyricslyrics of the song or text description of vocal activitiesmachine the package was build onmacro modemagnificationmaintainermanagermanufacturer of the device used to create the mediamaximum audio bitratemaximum bitratemaximum bitrate in bits/smaximum video bitratemetering modemime typemimetypeminimum bitrateminimum bitrate in bits/smodel of the device used to create the mediamodification datemodified by softwaremonomonth of publication (or, if unpublished, the month of creation)moodmore specific location of the geographic originmovie directormusician credit listname of a contributorname of a library that this file depends onname of person or organization that encoded the filename of software making modificationsname of the albumname of the architecture, operating system and distribution this package is forname of the artist or bandname of the author(s)name of the broadcasting network or stationname of the chaptername of the city where the document originatedname of the composername of the conductorname of the country where the document originatedname of the directorname of the document formatname of the group or bandname of the maintainername of the original artistname of the original file (reserved for GNUnet)name of the original lyricist or writername of the original performername of the owner or licensee of the filename of the person who created the documentname of the publishername of the showname of the software that created the documentname of the software vendorname of the television system for which the data is codedname of the user who saved the document lastname of the version of the song (i.e. remix information)names of contributing musiciansnetworknominal bitratenominal bitrate in bits/s. The actual bitrate might be different from this target bitrate.number of a journal, magazine or tech-reportnumber of audio channelsnumber of bits per audio samplenumber of charactersnumber of editing cyclesnumber of linesnumber of paragraphsnumber of songsnumber of the disk in a multi-disk (or volume) distributionnumber of the episode within a season/shownumber of the first song to playnumber of the season of a show/seriesnumber of wordsnumbers of bits per pixeloperating system for which this package was madeorder of the pagesorganizationorientationoriginal artistoriginal filenameoriginal number of the track on the distribution mediumoriginal performeroriginal release yearoriginal source codeoriginal titleoriginal writerpackage is marked as essentialpackage namepackage versionpackages made obsolete by this packagepackages recommended for installation in conjunction with this packagepackages suggested for installation in conjunction with this packagepackages that cannot be installed with this packagepackages this package depends uponpage countpage numbers of the publication in the respective journal or bookpage orderpage orientationpage rangepaper sizeparagraph countpath in the file system to be considered when looking for required librariespeak of the albumpeak of the trackperformerpicturepicture of an associated eventpicture of one of the contributorspicture of the cover of the distribution mediumpixel aspect ratioplay counterplay time for the mediumpopularitypre-dependencyprint only keywords of the given TYPE (use -L to get a list)print output in bibtex formatprint the version numberprint this helppriority for promoting the release to productionproduce grep-friendly output (all results on one line per file)produced by softwareproducerproduct versionprovidespublication datepublication daypublication monthpublication seriespublication typepublication yearpublisherpublisher's addresspublishing institutionratingrating of the contentread data from file into memory and extract from memoryrecommendationsreference levelreference level of track and album gain valuesreplaced packagesreservedreserved value, do not useresolution in dots per inchresource typerevision historyrevision numberrightsripperrun plugins in-process (simplifies debugging)sectionserialserial number of trackseries of books the book was published inshowshow episode numbershow season numbersize of the contents of the container as embedded in the filesize of the image in pixels (width times height)smaller version of the image for previewingsoftware versionsong countsong versionsourcesource devicespace consumption after installationspecification of an electronic publicationspecifics are not knownstandard Macintosh Finder file creator informationstandard Macintosh Finder file type informationstarting songstereosubjectsubject mattersublocationsubtitlesubtitle codecsubtitle durationsubtitle languagesubtitle of this partsuggestionssummarytable of contentstarget architecturetarget operating systemtarget platformtemplatetemplate the document uses or is based onthumbnailtime spent editing the documenttitletitle of the book containing the worktitle of the original worktitle of the worktotal editing timetotal number of pages of the worktrack gaintrack gain in dbtrack numbertrack peaktype of the publication for bibTeX bibliographiestype of the tech-reportunique identifier for the packageunknownunknown dateupload priorityvendorversion of the document formatversion of the encoder used to encode this streamversion of the software and its packageversion of the software contained in the filevideo bitratevideo codecvideo depthvideo dimensionsvideo durationvideo languagevolume of a journal or multi-volume bookwarningwarning about the nature of the contentwhat rendering method should be used to display this itemwhite balancewidth and height of the video track (WxH)word countwriteryear of publication (or, if unpublished, the year of creation)year of the original releaseProject-Id-Version: libextractor-1.0.0-pre1 Report-Msgid-Bugs-To: libextractor@gnu.org POT-Creation-Date: 2013-12-22 23:11+0100 PO-Revision-Date: 2013-08-21 22:41+0200 Last-Translator: Benno Schulenberg Language-Team: Dutch Language: nl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Generator: Lokalize 1.0 Plural-Forms: nplurals=2; plural=(n != 1); %s - (binair, %u bytes) %s - (onbekend, %u bytes) %s: ongeldige optie -- %c %s: ongeldige optie -- %c %s: optie '%c%s' staat geen argument toe %s: optie '%s' is niet eenduidig %s: optie '%s' vereist een argument %s: optie '--%s' staat geen argument toe %s: optie '-W %s' staat geen argument toe %s: optie '-W %s' is niet eenduidig %s: optie vereist een argument -- %c %s: onbekende optie '%c%s' %s: onbekende optie '--%s' %u Hz, %u kanalenadres van de uitgever (vaak alleen de stad)Argumenten die verplicht zijn voor lange opties zijn dat ook voor korte opties. Australisch EngelsVlaamsWaalsCanadees FransCastilliaans SpaansCommando'scontactinformatie van maker of uitgeverConventies en overigenServo-Kroatisch (latijns schrift)Leest metadata uit bestanden.PerzischBestandsindelingen en -conventiesGevonden door plugin '%s': GPS-breedteGPS-breedtereferentieGPS-lengteGPS-lengtereferentieSpellentweeletterige ISO-code van het oorsprongslandISRC-nummer dat het werk identificeertOngeldige combinatie van opties; kan meerdere printstijlen niet combineren. Initialisatie van plugin-mechanisme is mislukt: %s KernelroutinesTrefwoorden voor bestand %s: BibliotheekaanroepenMD4MD4-hashMD5MD5-hashMexicaans Spaansnaam van de entiteit die het copyright bezitgeen controleNoors BokmålRevisie #%u: Auteur '%s' werkte aan '%s'Reto-RomaansRipeMD160SHA-0SHA-0-hashSHA-1SHA-1-hashServo-Kroatisch (cyrillisch schrift)Vereenvoudigd ChineesSpeciale bestandenZwitsers FransZwitserduitsZwitsers ItaliaansSysteemaanroepenSysteembeheercommando'sde artiest(en) die het werk uitvoerde(n) (dirigent, orkest, solisten, acteurs, enz.)Traditioneel ChineesBrits EngelsAmerikaans EngelsURIURLGebruik: %s %s Gebruik '--help' voor een lijst met mogelijke opties. Optie '%s' vereist een argument -- optie is genegeerd. samenvattingalbumalbum-gainrelatieve sterkte van het album in dBalbumpiekonduidelijke datum (zou creatiedatum, wijzigingsdatum of toegangsdatum kunnen zijn)diafragmavan toepassing zijnde copyright-licentieartiestbijbehorende beeldenaudio-bitsnelheidaudio-codecaudiodiepteaudio-duuraudiotaalauteurs e-mailadresauteurs instituutauteursnaamgedetailleerde uitvoer producerenbeats per minuutBibTeX-itemsoortBibTeX-eprintbitsnelheidbitsnelheid van het audiospoorboekhoofdstukboekeditieboektiteltelevisiesysteembuild-hostcameramerkcameramodelklassering van de bronsoort die preciezer is dan de bestandsindelingcategorie waar het softwarepakket toe behoortkanalenhoofdstuknaamhoofdstuknummerhoofdstukken, inhoudsopgave of bladwijzers (in XML-opmaak)aantal tekensgebruikte tekencoderingtekensetstadcodecde codec waarin de audio-data is opgeslagende codec waarin de data is opgeslagende codec waarin de video-data is opgeslagende codec of indeling waarin de ondertitelsgegevens zijn opgeslagencodec: %s, %u fps, %u msopmerkingopmerking over de inhoudfirmacomponistdirigentconflicterende pakkettencontactcontainersoortde containerindeling waarin de data is opgeslagenbijdragende schrijverbijdragerbijdragersafbeeldingcopyright-houderhet aantal CD's in de verzameling waartoe deze CD behoortlandlandcodehoesafbeeldingdoor software gemaaktaanmaakdatummakerdatum van publicatie (of, indien ongepubliceerd, de datum van creatie)datum dat het document aangemaakt werddatum dat het document voor het laatst geprint werddag van publicatie (of, indien ongepubliceerd, de dag van creatie), relatief ten opzichte van de gegeven maandafhankelijkhedenafhankelijkheid waaraan voldaan moet worden vóór installatieomschrijvingapparaatproducentapparaatmodelapparaat waarmee het object gemaakt werdaantal CD'sdisclaimerCD-nummerweergavemethodedistributiedistributie waarvan het pakket een onderdeel issleutelwoorden van dit TYPE niet tonende standaardset extractor-plugins niet gebruikenduurspeelduur van een ondertitelings-streamspeelduur van een video-streamspeelduur van een audio-streame-mailadres van de auteur(s)bewerkingscyclieditie van het boek (of het boek dat het werk bevat)ingebedde bestandsgrootteingebedde bestandsnaamgecodeerd doorencodercoderingsprogramma dat gebruikt is om deze stream te coderenencoder-versieitem dat de volledige, originele binaire data bevat (feitelijk geen metadata)evenementsafbeeldingprecieze of gemiddelde bitsnelheid (in bits/seconde)belichtingstijdbelichtingsafwijkingbelichtingsmodusextract [OPTIES] [BESTANDSNAAM]*bestandstypebestandsnaam die is ingebed (niet noodzakelijkerwijs de huidige bestandsnaam)flitsflitsafwijkingbrandpuntsafstandbrandpuntsafstand 35mmindelingindelingsversieframe-snelheidvolledige datade functionaliteit die dit pakket levertgenregroepgroepeert gerelateerde media en omvat meerdere tracks; een voorbeeld zijn de delen van een concertohardware-architectuur waarvoor de inhoud gebruikt kan wordenafbeeldingsafmetingenbeeldkwaliteitafbeeldingsresolutieinformatie over rechteninformatie over de populariteit van het bestandinformatie over de mensen achter de vertolking van een bestaand stukinformatie over de revisiegeschiedenisgeïnstalleerde grootteinstituut dat betrokken was bij de uitgave (niet noodzakelijkerwijs de uitgever)instituut waar de auteur voor werkteInternational Standard Recording Codevertolkingis essentieelISO-snelheidtijdschriftnaamtijdschriftnummertijdschrift of blad waar het werk in gepubliceerd werdtijdschriftvolumentrefwoordentrefwoorden die de sfeer van het stuk beschrijventaaltaal van het audiospoortaal van het ondertitelingsspoortaal van het videospoorde taal die het werk gebruiktlaatst afgedruktlaatst opgeslagen doorwettelijke disclaimerbibliotheek-afhankelijkheidbibliotheekzoekpadlicentielicentiehouderaantal regelsalle sleutelwoordtypes opsommenextractor-plugin genaamd 'LIBRARY' ladenlocatie-elevatielocatienaamlogologo van een bijbehorende organisatieteksttekst van de song, of tekstuele omschrijving van vocale activiteitenmachine waar het pakket op gemaakt werdmacromodusvergrotingonderhoudermanagerproducent van het apparaat waarmee het medium gemaakt ismaximum audio-bitsnelheidmaximum bitsnelheidmaximum bitsnelheid in bits/secondemaximum video-bitsnelheidmeetmodusMIME-typeMIME-typeminimum bitsnelheidminimum bitsnelheid in bits/secondemodel van het apparaat waarmee het medium gemaakt iswijzigingsdatumdoor software bewerktmonomaand van publicatie (of, indien ongepubliceerd, de maand van creatie)sfeermeer precieze plaats van oorsprongfilmregisseurdanklijst musicinaam van een bijdragernaam van een bibliotheek waarvan dit bestand afhankelijk isnaam van de persoon of organisatie die het bestand codeerdenaam van het programma dat het document bewerktenaam van het albumnaam van architectuur, besturingssysteem en distributie waar het pakket voor bedoeld isnaam van artiest of bandnaam van de auteur(s)naam van de omroep of het zendstationtitel van het hoofdstuknaam van de stad waar het document z'n oorsprong vondnaam van de componistnaam van de dirigentnaam van het land waar het document z'n oorsprong vondnaam van de regisseurnaam van de indeling van het documentnaam van de groep of bandnaam van de pakketonderhoudernaam van de oorspronkelijke artiestnaam van het oorspronkelijke bestand (gereserveerd voor GNUnet)naam van de oorspronkelijke (tekst)schrijvernaam van de oorspronkelijk uitvoerendenaam van de eigenaar of licentiehouder van het bestandnaam van de persoon die het document creëerdenaam van de uitgevernaam van de shownaam van het programma dat het document maaktenaam van de software-producentnaam van het televisiesysteem waarvoor de data gecodeerd isnaam van de gebruiker die het document voor het laatst opsloegnaam van de versie van de song (remix-informatie)namen van bijdragende musiciomroepnominale bitsnelheidnominale bitsnelheid in bits/seconde; de werkelijke bitsnelheid kan verschillen van deze doelsnelheidnummer van een blad, tijdschrift of rapporthet aantal audiokanalenaantal bits per audio-samplehet aantal tekensaantal keren dat het document bewerkt werdhet aantal regelshet aantal alinea'shet aantal songsnummer van de CD in een meerdelige uitgavenummer van de aflevering binnen seizoen of showhet nummer van de als eerste af te spelen songnummer van het seizoen van de show of seriehet aantal woordenaantal bits per pixelbesturingssysteem waar het pakket voor gemaakt werdvolgorde van de pagina'sorganisatieoriëntatieoorspronkelijke artiestoorspronkelijke bestandsnaamoorspronkelijk nummer van de track op het distributiemediumoorspronkelijk uitvoerendeoorspronkelijk uitgavejaaroriginele broncodeoorspronkelijke titeloorspronkelijke schrijverpakket is gemarkeerd als essentieelpakketnaampakketversiepakketten die door dit pakket vervangen wordenpakketten die aanbevolen worden om samen met dit pakket te installerenpakketten die gesuggereerd worden om samen met dit pakket te installerenpakketten die niet samen met dit pakket geïnstalleerd kunnen zijnpakketten waarvan dit pakket afhankelijk isaantal bladzijdende paginanummers van de publicatie in het betreffende tijdschrift of boekpaginavolgordepaginastandpaginabereikpapiergrootteaantal alinea'spaden in het bestandssysteem waarin naar bibliotheken gezocht moet wordenpiekniveau van het albumpiekniveau van de trackuitvoerendebeeldafbeelding van een bijbehorend evenementafbeelding van een van de bijdragersafbeelding van de hoes van het uitgavemediumpixelzijdenverhoudingaantal malen afgespeeldspeeltijd van het mediumpopulariteitvoor-afhankelijkheidalleen sleutelwoorden van dit TYPE tonen (gebruik '-L' voor een overzicht)uitvoer in bibtex-indeling producerenprogrammaversie tonendeze hulptekst tonenprioriteit voor het uitrollen van de uitgaveuitvoer produceren die makkelijk te greppen is (alle resultaten op één regel per bestand)door software geproduceerdproducerproductversielevertpublicatiedatumpublicatiedagpublicatiemaanduitgavereekspublicatiesoortpublicatiejaaruitgeveruitgevers adresuitgevend instituutwaarderingwaardering van de inhoudalle bestandsdata inlezen in geheugen en daar extraherenaanbevelingenreferentieniveaureferentieniveau voor track- en album-gainwaardenvervangen pakkettengereserveerdgereserveerde waarde; niet gebruikenresoltie in dots per inchinformatiebron-soortrevisiegeschiedenisrevisienummerrechtenripperplugins in-proces draaien (vereenvoudigt het debuggen)sectieserienummerserienummer van de trackde boekenreeks waarin het boek uitgegeven werdshowaflevering van de showseizoen van de showgrootte van de containerinhoud zoals ingebed in het bestandgrootte van de afbeelding in pixels (breedte x hoogte)kleinere versie van de afbeelding voor voorvertoningsoftwareversieaantal songssongversiebronbronapparaatruimte die na installatie ingenomen wordtspecificatie van een elektronische publicatiebijzonderheden zijn niet bekendstandaard Macintosh-Finder-bestandsaanmaker-informatiestandaard Macintosh-Finder-bestandstype-informatiebeginsongstereoonderwerpde onderwerpsmateriesublocatiesubtitelondertitels-codecondertitels-duurondertitels-taalsubtitel van dit deelsuggestiesoverzichtinhoudsopgavedoelarchitectuurdoel-besturingssysteemdoelplatformsjabloonsjabloon dat het document gebruikt of waarop het gebaseerd isminiatuurtijd die besteed werd aan het bewerken van het documenttiteltitel van het boek dat het werk bevattitel van het oorspronkelijke werktitel van het werktotale bewerkingstijdtotaal aantal pagina's van het werktrack-gainrelatieve sterkte van de track in dBtracknummertrack-pieksoort van publicatie volgens BibTeX-boekomschrijvingensoort van het rapportunieke naam voor het pakketonbekendonbekende datumupload-prioriteitproducentversie van de indeling van het documentversie van het coderingsprogramma dat gebruikt is om deze stream te coderenversie van het programma en van zijn pakketversie van de software in het bestandvideo-bitsnelheidvideo-codecvideo-dieptevideo-afmetingenvideo-duurvideo-taalvolumennummer van een tijdschrift of meerdelig boekwaarschuwingwaarschuwing over de aard van de inhoudwelke weergavemethode gebruikt dient te worden voor dit itemwitbalansbreedte en hoogte van het videospoor (bxh)aantal woordenschrijverjaar van publicatie (of, indien ongepubliceerd, het jaar van creatie)jaar van de oorspronkelijke uitgavelibextractor-1.3/po/rw.po0000644000175000017500000022671712255661612012433 00000000000000# Kinyarwanda translations for libextractor package. # Copyright (C) 2005 Free Software Foundation, Inc. # This file is distributed under the same license as the libextractor package. # Steve Murphy , 2005. # Steve performed initial rough translation from compendium built from translations provided by the following translators: # Philibert Ndandali , 2005. # Viateur MUGENZI , 2005. # Noëlla Mupole , 2005. # Carole Karema , 2005. # JEAN BAPTISTE NGENDAHAYO , 2005. # Augustin KIBERWA , 2005. # Donatien NSENGIYUMVA , 2005. # Antoine Bigirimana , 2005. # msgid "" msgstr "" "Project-Id-Version: libextractor 0.4.2\n" "Report-Msgid-Bugs-To: libextractor@gnu.org\n" "POT-Creation-Date: 2013-12-22 23:11+0100\n" "PO-Revision-Date: 2005-04-04 10:55-0700\n" "Last-Translator: Steven Michael Murphy \n" "Language-Team: Kinyarwanda \n" "Language: rw\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: src/main/extract.c:132 #, fuzzy, c-format msgid "" "Usage: %s\n" "%s\n" "\n" msgstr "Ikoresha:" #: src/main/extract.c:135 #, fuzzy, c-format msgid "" "Arguments mandatory for long options are also mandatory for short options.\n" msgstr "kugirango Amahitamo kugirango Amahitamo" #: src/main/extract.c:217 #, fuzzy msgid "print output in bibtex format" msgstr "Gucapa Ibisohoka in Imiterere" #: src/main/extract.c:219 msgid "produce grep-friendly output (all results on one line per file)" msgstr "" #: src/main/extract.c:221 #, fuzzy msgid "print this help" msgstr "Gucapa iyi Ifashayobora" #: src/main/extract.c:223 msgid "run plugins in-process (simplifies debugging)" msgstr "" #: src/main/extract.c:225 msgid "read data from file into memory and extract from memory" msgstr "" #: src/main/extract.c:227 #, fuzzy msgid "load an extractor plugin named LIBRARY" msgstr "Ibirimo" #: src/main/extract.c:229 #, fuzzy msgid "list all keyword types" msgstr "Urutonde Byose Ijambo- banze" #: src/main/extract.c:231 #, fuzzy msgid "do not use the default set of extractor plugins" msgstr "OYA Gukoresha i Mburabuzi Gushyiraho Bya" #: src/main/extract.c:233 #, fuzzy msgid "print only keywords of the given TYPE (use -L to get a list)" msgstr "Gucapa Amagambo fatizo Bya i Gukoresha Kuri Kubona a Urutonde" #: src/main/extract.c:235 #, fuzzy msgid "print the version number" msgstr "Gucapa i Verisiyo Umubare" #: src/main/extract.c:237 msgid "be verbose" msgstr "" #: src/main/extract.c:239 #, fuzzy msgid "do not print keywords of the given TYPE" msgstr "OYA Gucapa Amagambo fatizo Bya i" #: src/main/extract.c:242 msgid "extract [OPTIONS] [FILENAME]*" msgstr "" #: src/main/extract.c:243 #, fuzzy msgid "Extract metadata from files." msgstr "Bivuye Idosiye" #: src/main/extract.c:288 #, fuzzy, c-format msgid "Found by `%s' plugin:\n" msgstr "Byanze" #: src/main/extract.c:291 src/main/extract.c:378 #: src/main/extractor_metatypes.c:145 src/main/extractor_print.c:86 #: src/main/extractor_print.c:96 msgid "unknown" msgstr "itazwi" #: src/main/extract.c:296 #, c-format msgid "%s - (unknown, %u bytes)\n" msgstr "" #: src/main/extract.c:325 #, fuzzy, c-format msgid "%s - (binary, %u bytes)\n" msgstr "%s-(Nyabibiri" #: src/main/extract.c:809 src/main/extract.c:821 msgid "" "Illegal combination of options, cannot combine multiple styles of printing.\n" msgstr "" #: src/main/extract.c:854 #, fuzzy, c-format msgid "You must specify an argument for the `%s' option (option ignored).\n" msgstr "kugirango i Ihitamo Ihitamo" #: src/main/extract.c:923 #, fuzzy msgid "Use --help to get a list of options.\n" msgstr "Ifashayobora Kuri Kubona a Urutonde Bya Amahitamo" #: src/main/extract.c:964 msgid "% BiBTeX file\n" msgstr "" #: src/main/extract.c:972 #, fuzzy, c-format msgid "Keywords for file %s:\n" msgstr "kugirango IDOSIYE" #: src/main/extractor.c:676 #, fuzzy, c-format msgid "Initialization of plugin mechanism failed: %s!\n" msgstr "Bya Byanze" #: src/main/extractor_metatypes.c:46 msgid "reserved" msgstr "" #: src/main/extractor_metatypes.c:47 msgid "reserved value, do not use" msgstr "" #: src/main/extractor_metatypes.c:48 msgid "mimetype" msgstr "" #: src/main/extractor_metatypes.c:49 #, fuzzy msgid "mime type" msgstr "Ibitangazamakuru Ubwoko" #: src/main/extractor_metatypes.c:50 #, fuzzy msgid "embedded filename" msgstr "Izina ry'idosiye" #: src/main/extractor_metatypes.c:51 msgid "filename that was embedded (not necessarily the current filename)" msgstr "" # padmin/source\padialog.src:RID_TXT_TESTPAGE_COMMENT.text #: src/main/extractor_metatypes.c:52 #, fuzzy msgid "comment" msgstr "Icyo wongeraho" #: src/main/extractor_metatypes.c:53 msgid "comment about the content" msgstr "" #: src/main/extractor_metatypes.c:54 msgid "title" msgstr "umutwe" #: src/main/extractor_metatypes.c:55 msgid "title of the work" msgstr "" #: src/main/extractor_metatypes.c:57 #, fuzzy msgid "book title" msgstr "Umutwe w'igitabo" #: src/main/extractor_metatypes.c:58 msgid "title of the book containing the work" msgstr "" #: src/main/extractor_metatypes.c:59 #, fuzzy msgid "book edition" msgstr "Umutwe w'igitabo" #: src/main/extractor_metatypes.c:60 msgid "edition of the book (or book containing the work)" msgstr "" # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Insert.Caption.WriterObject.Table.Settings.Category.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Insert.Caption.WriterObject.Frame.Settings.Category.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Insert.Caption.WriterObject.Graphic.Settings.Category.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Insert.Caption.OfficeObject.Calc.Settings.Category.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Insert.Caption.OfficeObject.Draw.Settings.Category.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Insert.Caption.OfficeObject.Chart.Settings.Category.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Insert.Caption.OfficeObject.Image.Settings.Category.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Insert.Caption.OfficeObject.Formula.Settings.Category.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Insert.Caption.OfficeObject.Impress.Settings.Category.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Insert.Caption.OfficeObject.OLEMisc.Settings.Category.text #: src/main/extractor_metatypes.c:61 #, fuzzy msgid "book chapter" msgstr "Icyiciro" # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Insert.Caption.WriterObject.Table.Settings.Category.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Insert.Caption.WriterObject.Frame.Settings.Category.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Insert.Caption.WriterObject.Graphic.Settings.Category.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Insert.Caption.OfficeObject.Calc.Settings.Category.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Insert.Caption.OfficeObject.Draw.Settings.Category.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Insert.Caption.OfficeObject.Chart.Settings.Category.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Insert.Caption.OfficeObject.Image.Settings.Category.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Insert.Caption.OfficeObject.Formula.Settings.Category.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Insert.Caption.OfficeObject.Impress.Settings.Category.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Insert.Caption.OfficeObject.OLEMisc.Settings.Category.text #: src/main/extractor_metatypes.c:62 #, fuzzy msgid "chapter number" msgstr "Icyiciro" #: src/main/extractor_metatypes.c:63 #, fuzzy msgid "journal name" msgstr "Izina ry'idosiye" #: src/main/extractor_metatypes.c:64 msgid "journal or magazine the work was published in" msgstr "" #: src/main/extractor_metatypes.c:65 msgid "journal volume" msgstr "" #: src/main/extractor_metatypes.c:66 msgid "volume of a journal or multi-volume book" msgstr "" #: src/main/extractor_metatypes.c:68 msgid "journal number" msgstr "" #: src/main/extractor_metatypes.c:69 msgid "number of a journal, magazine or tech-report" msgstr "" # sw/source\ui\inc\swmn.hrc:_MN_INS.MN_SUB_FIELD.FN_INSERT_FLD_PGCOUNT.text #: src/main/extractor_metatypes.c:70 #, fuzzy msgid "page count" msgstr "Kubara amapaje" #: src/main/extractor_metatypes.c:71 msgid "total number of pages of the work" msgstr "" # sc/source\ui\pagedlg\pagedlg.src:RID_SCPAGE_TABLE.FL_PAGEDIR.text #: src/main/extractor_metatypes.c:72 #, fuzzy msgid "page range" msgstr "Ikurikirana rya paji" #: src/main/extractor_metatypes.c:73 msgid "page numbers of the publication in the respective journal or book" msgstr "" # sc/source\ui\miscdlgs\acredlin.src:RID_POPUP_CHANGES.SC_SUB_SORT.SC_SORT_AUTHOR.text #: src/main/extractor_metatypes.c:74 #, fuzzy msgid "author name" msgstr "Umwanditsi" #: src/main/extractor_metatypes.c:75 msgid "name of the author(s)" msgstr "" # sc/source\ui\miscdlgs\acredlin.src:RID_POPUP_CHANGES.SC_SUB_SORT.SC_SORT_AUTHOR.text #: src/main/extractor_metatypes.c:76 #, fuzzy msgid "author email" msgstr "Umwanditsi" #: src/main/extractor_metatypes.c:77 msgid "e-mail of the author(s)" msgstr "" #: src/main/extractor_metatypes.c:79 #, fuzzy msgid "author institution" msgstr "Ipaji Icyerekezo" #: src/main/extractor_metatypes.c:80 msgid "institution the author worked for" msgstr "" #: src/main/extractor_metatypes.c:81 #, fuzzy msgid "publisher" msgstr "Uwasohoye inyandiko" #: src/main/extractor_metatypes.c:82 #, fuzzy msgid "name of the publisher" msgstr "Uwasohoye inyandiko" #: src/main/extractor_metatypes.c:83 #, fuzzy msgid "publisher's address" msgstr "Uwasohoye inyandiko" #: src/main/extractor_metatypes.c:84 msgid "Address of the publisher (often only the city)" msgstr "" #: src/main/extractor_metatypes.c:85 msgid "publishing institution" msgstr "" #: src/main/extractor_metatypes.c:86 msgid "" "institution that was involved in the publishing, but not necessarily the " "publisher" msgstr "" # setup2/source\ui\app.src:FT_INSTINFO_MKDIR.text #: src/main/extractor_metatypes.c:87 #, fuzzy msgid "publication series" msgstr "Irema ry'itariki" #: src/main/extractor_metatypes.c:88 msgid "series of books the book was published in" msgstr "" # setup2/source\ui\app.src:FT_INSTINFO_MKDIR.text #: src/main/extractor_metatypes.c:90 #, fuzzy msgid "publication type" msgstr "Irema ry'itariki" #: src/main/extractor_metatypes.c:91 msgid "type of the tech-report" msgstr "" # setup2/source\ui\app.src:FT_INSTINFO_MKDIR.text #: src/main/extractor_metatypes.c:92 #, fuzzy msgid "publication year" msgstr "Irema ry'itariki" #: src/main/extractor_metatypes.c:93 msgid "year of publication (or, if unpublished, the year of creation)" msgstr "" # setup2/source\ui\app.src:FT_INSTINFO_MKDIR.text #: src/main/extractor_metatypes.c:94 #, fuzzy msgid "publication month" msgstr "Irema ry'itariki" #: src/main/extractor_metatypes.c:95 msgid "month of publication (or, if unpublished, the month of creation)" msgstr "" # setup2/source\ui\app.src:FT_INSTINFO_MKDIR.text #: src/main/extractor_metatypes.c:96 #, fuzzy msgid "publication day" msgstr "Irema ry'itariki" #: src/main/extractor_metatypes.c:97 msgid "" "day of publication (or, if unpublished, the day of creation), relative to " "the given month" msgstr "" # setup2/source\ui\app.src:FT_INSTINFO_MKDIR.text #: src/main/extractor_metatypes.c:98 #, fuzzy msgid "publication date" msgstr "Irema ry'itariki" #: src/main/extractor_metatypes.c:99 msgid "date of publication (or, if unpublished, the date of creation)" msgstr "" #: src/main/extractor_metatypes.c:101 msgid "bibtex eprint" msgstr "" #: src/main/extractor_metatypes.c:102 msgid "specification of an electronic publication" msgstr "" #: src/main/extractor_metatypes.c:103 msgid "bibtex entry type" msgstr "" #: src/main/extractor_metatypes.c:104 msgid "type of the publication for bibTeX bibliographies" msgstr "" # sc/source\ui\src\sortdlg.src:RID_SCPAGE_SORT_OPTIONS.FT_LANGUAGE.text #: src/main/extractor_metatypes.c:105 #, fuzzy msgid "language" msgstr "Ururimi" #: src/main/extractor_metatypes.c:106 msgid "language the work uses" msgstr "" # setup2/source\ui\app.src:FT_INSTINFO_MKDIR.text #: src/main/extractor_metatypes.c:107 #, fuzzy msgid "creation time" msgstr "Irema ry'itariki" #: src/main/extractor_metatypes.c:108 msgid "time and date of creation" msgstr "" #: src/main/extractor_metatypes.c:109 msgid "URL" msgstr "" #: src/main/extractor_metatypes.c:110 msgid "universal resource location (where the work is made available)" msgstr "" #: src/main/extractor_metatypes.c:112 msgid "URI" msgstr "" #: src/main/extractor_metatypes.c:113 #, fuzzy msgid "universal resource identifier" msgstr "Ikiranga" #: src/main/extractor_metatypes.c:114 msgid "international standard recording code" msgstr "" #: src/main/extractor_metatypes.c:115 msgid "ISRC number identifying the work" msgstr "" #: src/main/extractor_metatypes.c:116 msgid "MD4" msgstr "" #: src/main/extractor_metatypes.c:117 msgid "MD4 hash" msgstr "" #: src/main/extractor_metatypes.c:118 msgid "MD5" msgstr "" #: src/main/extractor_metatypes.c:119 msgid "MD5 hash" msgstr "" #: src/main/extractor_metatypes.c:120 #, fuzzy msgid "SHA-0" msgstr "0" #: src/main/extractor_metatypes.c:121 #, fuzzy msgid "SHA-0 hash" msgstr "0" #: src/main/extractor_metatypes.c:123 #, fuzzy msgid "SHA-1" msgstr "1." #: src/main/extractor_metatypes.c:124 #, fuzzy msgid "SHA-1 hash" msgstr "1." #: src/main/extractor_metatypes.c:125 msgid "RipeMD160" msgstr "" #: src/main/extractor_metatypes.c:126 msgid "RipeMD150 hash" msgstr "" #: src/main/extractor_metatypes.c:127 src/main/extractor_metatypes.c:128 msgid "GPS latitude ref" msgstr "" #: src/main/extractor_metatypes.c:129 src/main/extractor_metatypes.c:130 msgid "GPS latitude" msgstr "" #: src/main/extractor_metatypes.c:131 src/main/extractor_metatypes.c:132 msgid "GPS longitude ref" msgstr "" #: src/main/extractor_metatypes.c:134 src/main/extractor_metatypes.c:135 msgid "GPS longitude" msgstr "" #: src/main/extractor_metatypes.c:136 msgid "city" msgstr "" #: src/main/extractor_metatypes.c:137 msgid "name of the city where the document originated" msgstr "" #: src/main/extractor_metatypes.c:138 #, fuzzy msgid "sublocation" msgstr "Inturo" #: src/main/extractor_metatypes.c:139 msgid "more specific location of the geographic origin" msgstr "" #: src/main/extractor_metatypes.c:140 #, fuzzy msgid "country" msgstr "Igihugu" #: src/main/extractor_metatypes.c:141 msgid "name of the country where the document originated" msgstr "" #: src/main/extractor_metatypes.c:142 #, fuzzy msgid "country code" msgstr "Igihugu" #: src/main/extractor_metatypes.c:143 msgid "ISO 2-letter country code for the country of origin" msgstr "" #: src/main/extractor_metatypes.c:146 msgid "specifics are not known" msgstr "" #: src/main/extractor_metatypes.c:147 src/main/extractor_metatypes.c:148 msgid "description" msgstr "Isobanuramiterere" #: src/main/extractor_metatypes.c:149 #, fuzzy msgid "copyright" msgstr "Uburenganzira bw'umuhimbyi" #: src/main/extractor_metatypes.c:150 msgid "Name of the entity holding the copyright" msgstr "" #: src/main/extractor_metatypes.c:151 #, fuzzy msgid "rights" msgstr "Uburenganzira bw'umuhimbyi" #: src/main/extractor_metatypes.c:152 #, fuzzy msgid "information about rights" msgstr "Imiterere" # sfx2/source\dialog\dinfdlg.src:TP_DOCINFODESC.FT_KEYWORDS.text #: src/main/extractor_metatypes.c:153 src/main/extractor_metatypes.c:154 #, fuzzy msgid "keywords" msgstr "Amagambo fatizo" #: src/main/extractor_metatypes.c:156 src/main/extractor_metatypes.c:157 msgid "abstract" msgstr "" #: src/main/extractor_metatypes.c:158 src/main/extractor_metatypes.c:159 #, fuzzy msgid "summary" msgstr "Inshamake" # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Wizard.Agenda.Save.DocInfoSubject.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Wizard.Letter.Elements.Subject.Text.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Wizard.Letter.Save.DocInfoSubject.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Wizard.Fax.Save.DocInfoSubject.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Wizard.Memo.Save.DocInfoSubject.text #: src/main/extractor_metatypes.c:160 msgid "subject" msgstr "Ikivugwaho" # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Wizard.Agenda.Save.DocInfoSubject.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Wizard.Letter.Elements.Subject.Text.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Wizard.Letter.Save.DocInfoSubject.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Wizard.Fax.Save.DocInfoSubject.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Wizard.Memo.Save.DocInfoSubject.text #: src/main/extractor_metatypes.c:161 #, fuzzy msgid "subject matter" msgstr "Ikivugwaho" #: src/main/extractor_metatypes.c:162 src/main/extractor_metatypes.c:195 msgid "creator" msgstr "" #: src/main/extractor_metatypes.c:163 msgid "name of the person who created the document" msgstr "" #: src/main/extractor_metatypes.c:164 #, fuzzy msgid "format" msgstr "Imiterere" #: src/main/extractor_metatypes.c:165 msgid "name of the document format" msgstr "" #: src/main/extractor_metatypes.c:167 #, fuzzy msgid "format version" msgstr "Imiterere" #: src/main/extractor_metatypes.c:168 msgid "version of the document format" msgstr "" #: src/main/extractor_metatypes.c:169 #, fuzzy msgid "created by software" msgstr "Byaremwe kugirango" #: src/main/extractor_metatypes.c:170 msgid "name of the software that created the document" msgstr "" #: src/main/extractor_metatypes.c:171 #, fuzzy msgid "unknown date" msgstr "itazwi" #: src/main/extractor_metatypes.c:172 msgid "" "ambiguous date (could specify creation time, modification time or access " "time)" msgstr "" # setup2/source\ui\app.src:FT_INSTINFO_MKDIR.text #: src/main/extractor_metatypes.c:173 #, fuzzy msgid "creation date" msgstr "Irema ry'itariki" #: src/main/extractor_metatypes.c:174 msgid "date the document was created" msgstr "" # 3880 #: src/main/extractor_metatypes.c:175 #, fuzzy msgid "modification date" msgstr "itariki y'ihindura" #: src/main/extractor_metatypes.c:176 msgid "date the document was modified" msgstr "" #: src/main/extractor_metatypes.c:178 msgid "last printed" msgstr "" #: src/main/extractor_metatypes.c:179 msgid "date the document was last printed" msgstr "" #: src/main/extractor_metatypes.c:180 msgid "last saved by" msgstr "" #: src/main/extractor_metatypes.c:181 msgid "name of the user who saved the document last" msgstr "" #: src/main/extractor_metatypes.c:182 msgid "total editing time" msgstr "" #: src/main/extractor_metatypes.c:183 msgid "time spent editing the document" msgstr "" #: src/main/extractor_metatypes.c:184 msgid "editing cycles" msgstr "" #: src/main/extractor_metatypes.c:185 msgid "number of editing cycles" msgstr "" #: src/main/extractor_metatypes.c:186 msgid "modified by software" msgstr "" #: src/main/extractor_metatypes.c:187 msgid "name of software making modifications" msgstr "" #: src/main/extractor_metatypes.c:189 msgid "revision history" msgstr "" #: src/main/extractor_metatypes.c:190 msgid "information about the revision history" msgstr "" #: src/main/extractor_metatypes.c:191 #, fuzzy msgid "embedded file size" msgstr "ingano" #: src/main/extractor_metatypes.c:192 msgid "size of the contents of the container as embedded in the file" msgstr "" #: src/main/extractor_metatypes.c:193 #, fuzzy msgid "file type" msgstr "Ibitangazamakuru Ubwoko" #: src/main/extractor_metatypes.c:194 msgid "standard Macintosh Finder file type information" msgstr "" #: src/main/extractor_metatypes.c:196 msgid "standard Macintosh Finder file creator information" msgstr "" #: src/main/extractor_metatypes.c:197 #, fuzzy msgid "package name" msgstr "OYA" #: src/main/extractor_metatypes.c:198 msgid "unique identifier for the package" msgstr "" #: src/main/extractor_metatypes.c:200 #, fuzzy msgid "package version" msgstr "Umwanditsi" #: src/main/extractor_metatypes.c:201 msgid "version of the software and its package" msgstr "" #: src/main/extractor_metatypes.c:202 #, fuzzy msgid "section" msgstr "Isobanuramiterere" #: src/main/extractor_metatypes.c:203 msgid "category the software package belongs to" msgstr "" # sw/source\ui\wizard\wizmmdlg.src:DLG_WIZARD_MM.DLG_MM2_Edit_Elem1.text #: src/main/extractor_metatypes.c:204 #, fuzzy msgid "upload priority" msgstr "Icyihutirwa" #: src/main/extractor_metatypes.c:205 msgid "priority for promoting the release to production" msgstr "" #: src/main/extractor_metatypes.c:206 msgid "dependencies" msgstr "" #: src/main/extractor_metatypes.c:207 msgid "packages this package depends upon" msgstr "" #: src/main/extractor_metatypes.c:208 msgid "conflicting packages" msgstr "" #: src/main/extractor_metatypes.c:209 msgid "packages that cannot be installed with this package" msgstr "" #: src/main/extractor_metatypes.c:211 msgid "replaced packages" msgstr "" #: src/main/extractor_metatypes.c:212 msgid "packages made obsolete by this package" msgstr "" #: src/main/extractor_metatypes.c:213 msgid "provides" msgstr "" #: src/main/extractor_metatypes.c:214 msgid "functionality provided by this package" msgstr "" # padmin/source\padialog.src:RID_TXT_TESTPAGE_COMMENT.text #: src/main/extractor_metatypes.c:215 #, fuzzy msgid "recommendations" msgstr "Icyo wongeraho" #: src/main/extractor_metatypes.c:216 msgid "packages recommended for installation in conjunction with this package" msgstr "" #: src/main/extractor_metatypes.c:217 msgid "suggestions" msgstr "" #: src/main/extractor_metatypes.c:218 msgid "packages suggested for installation in conjunction with this package" msgstr "" # sc/source\ui\src\sortdlg.src:RID_SCPAGE_SORT_OPTIONS.FT_LANGUAGE.text #: src/main/extractor_metatypes.c:219 #, fuzzy msgid "maintainer" msgstr "Ururimi" #: src/main/extractor_metatypes.c:220 msgid "name of the maintainer" msgstr "" #: src/main/extractor_metatypes.c:222 #, fuzzy msgid "installed size" msgstr "ingano" #: src/main/extractor_metatypes.c:223 msgid "space consumption after installation" msgstr "" #: src/main/extractor_metatypes.c:224 src/main/extractor_metatypes.c:304 #, fuzzy msgid "source" msgstr "Inkomoko" #: src/main/extractor_metatypes.c:225 msgid "original source code" msgstr "" #: src/main/extractor_metatypes.c:226 msgid "is essential" msgstr "" #: src/main/extractor_metatypes.c:227 msgid "package is marked as essential" msgstr "" #: src/main/extractor_metatypes.c:228 msgid "target architecture" msgstr "" #: src/main/extractor_metatypes.c:229 msgid "hardware architecture the contents can be used for" msgstr "" #: src/main/extractor_metatypes.c:230 msgid "pre-dependency" msgstr "" #: src/main/extractor_metatypes.c:231 msgid "dependency that must be satisfied before installation" msgstr "" #: src/main/extractor_metatypes.c:233 msgid "license" msgstr "" #: src/main/extractor_metatypes.c:234 msgid "applicable copyright license" msgstr "" # svx/source\dialog\dstribut.src:RID_SVXPAGE_DISTRIBUTE.text #: src/main/extractor_metatypes.c:235 #, fuzzy msgid "distribution" msgstr "Ikwirakwiza" #: src/main/extractor_metatypes.c:236 msgid "distribution the package is a part of" msgstr "" #: src/main/extractor_metatypes.c:237 #, fuzzy msgid "build host" msgstr "Ubuturo" #: src/main/extractor_metatypes.c:238 msgid "machine the package was build on" msgstr "" #: src/main/extractor_metatypes.c:239 #, fuzzy msgid "vendor" msgstr "Umucuruzi" #: src/main/extractor_metatypes.c:240 msgid "name of the software vendor" msgstr "" #: src/main/extractor_metatypes.c:241 msgid "target operating system" msgstr "" #: src/main/extractor_metatypes.c:242 msgid "operating system for which this package was made" msgstr "" #: src/main/extractor_metatypes.c:244 #, fuzzy msgid "software version" msgstr "Imiterere" #: src/main/extractor_metatypes.c:245 msgid "version of the software contained in the file" msgstr "" #: src/main/extractor_metatypes.c:246 msgid "target platform" msgstr "" #: src/main/extractor_metatypes.c:247 msgid "" "name of the architecture, operating system and distribution this package is " "for" msgstr "" #: src/main/extractor_metatypes.c:248 #, fuzzy msgid "resource type" msgstr "Ubwoko" #: src/main/extractor_metatypes.c:249 msgid "" "categorization of the nature of the resource that is more specific than the " "file format" msgstr "" #: src/main/extractor_metatypes.c:250 msgid "library search path" msgstr "" #: src/main/extractor_metatypes.c:251 msgid "" "path in the file system to be considered when looking for required libraries" msgstr "" #: src/main/extractor_metatypes.c:252 msgid "library dependency" msgstr "" #: src/main/extractor_metatypes.c:253 msgid "name of a library that this file depends on" msgstr "" #: src/main/extractor_metatypes.c:255 src/main/extractor_metatypes.c:256 msgid "camera make" msgstr "" #: src/main/extractor_metatypes.c:257 src/main/extractor_metatypes.c:258 msgid "camera model" msgstr "" #: src/main/extractor_metatypes.c:259 src/main/extractor_metatypes.c:260 msgid "exposure" msgstr "" #: src/main/extractor_metatypes.c:261 src/main/extractor_metatypes.c:262 msgid "aperture" msgstr "" #: src/main/extractor_metatypes.c:263 src/main/extractor_metatypes.c:264 msgid "exposure bias" msgstr "" #: src/main/extractor_metatypes.c:266 src/main/extractor_metatypes.c:267 msgid "flash" msgstr "" #: src/main/extractor_metatypes.c:268 src/main/extractor_metatypes.c:269 msgid "flash bias" msgstr "" #: src/main/extractor_metatypes.c:270 src/main/extractor_metatypes.c:271 msgid "focal length" msgstr "" #: src/main/extractor_metatypes.c:272 src/main/extractor_metatypes.c:273 msgid "focal length 35mm" msgstr "" #: src/main/extractor_metatypes.c:274 src/main/extractor_metatypes.c:275 msgid "iso speed" msgstr "" #: src/main/extractor_metatypes.c:277 src/main/extractor_metatypes.c:278 msgid "exposure mode" msgstr "" #: src/main/extractor_metatypes.c:279 src/main/extractor_metatypes.c:280 msgid "metering mode" msgstr "" #: src/main/extractor_metatypes.c:281 src/main/extractor_metatypes.c:282 msgid "macro mode" msgstr "" #: src/main/extractor_metatypes.c:283 src/main/extractor_metatypes.c:284 msgid "image quality" msgstr "" #: src/main/extractor_metatypes.c:285 src/main/extractor_metatypes.c:286 msgid "white balance" msgstr "" #: src/main/extractor_metatypes.c:288 src/main/extractor_metatypes.c:289 #, fuzzy msgid "orientation" msgstr "Ipaji Icyerekezo" #: src/main/extractor_metatypes.c:290 src/main/extractor_metatypes.c:291 msgid "magnification" msgstr "" #: src/main/extractor_metatypes.c:292 #, fuzzy msgid "image dimensions" msgstr "Ipaji Icyerekezo" #: src/main/extractor_metatypes.c:293 msgid "size of the image in pixels (width times height)" msgstr "" #: src/main/extractor_metatypes.c:294 src/main/extractor_metatypes.c:295 #, fuzzy msgid "produced by software" msgstr "Byaremwe kugirango" #: src/main/extractor_metatypes.c:299 #, fuzzy msgid "thumbnail" msgstr "Nyabibiri Ibyatanzwe" #: src/main/extractor_metatypes.c:300 msgid "smaller version of the image for previewing" msgstr "" # officecfg/registry\schema\org\openoffice\Office\Common.xcs:....Filter.Graphic.Export.BMP.Resolution.text #: src/main/extractor_metatypes.c:302 #, fuzzy msgid "image resolution" msgstr "Imikemurire" #: src/main/extractor_metatypes.c:303 #, fuzzy msgid "resolution in dots per inch" msgstr "%ux%uUtudomo Inci" #: src/main/extractor_metatypes.c:305 msgid "Originating entity" msgstr "" #: src/main/extractor_metatypes.c:306 msgid "character set" msgstr "" # sw/source\ui\inc\swmn.hrc:_MN_INS.MN_SUB_FIELD.FN_INSERT_FLD_PGCOUNT.text #: src/main/extractor_metatypes.c:307 #, fuzzy msgid "character encoding used" msgstr "Kubara amapaje" # sw/source\ui\inc\swmn.hrc:_MN_INS.MN_SUB_FIELD.FN_INSERT_FLD_PGCOUNT.text #: src/main/extractor_metatypes.c:308 #, fuzzy msgid "line count" msgstr "Kubara amapaje" #: src/main/extractor_metatypes.c:309 #, fuzzy msgid "number of lines" msgstr "Umubare Inyuma Bya Urutonde" # sw/source\ui\inc\swmn.hrc:_MN_INS.MN_SUB_FIELD.FN_INSERT_FLD_PGCOUNT.text #: src/main/extractor_metatypes.c:310 #, fuzzy msgid "paragraph count" msgstr "Kubara amapaje" #: src/main/extractor_metatypes.c:311 #, fuzzy msgid "number of paragraphs" msgstr "Umubare Inyuma Bya Urutonde" # sw/source\ui\inc\swmn.hrc:_MN_INS.MN_SUB_FIELD.FN_INSERT_FLD_PGCOUNT.text #: src/main/extractor_metatypes.c:313 #, fuzzy msgid "word count" msgstr "Kubara amapaje" #: src/main/extractor_metatypes.c:314 msgid "number of words" msgstr "" # sw/source\ui\inc\swmn.hrc:_MN_INS.MN_SUB_FIELD.FN_INSERT_FLD_PGCOUNT.text #: src/main/extractor_metatypes.c:315 #, fuzzy msgid "character count" msgstr "Kubara amapaje" #: src/main/extractor_metatypes.c:316 #, fuzzy msgid "number of characters" msgstr "Umubare Inyuma Bya Urutonde" #: src/main/extractor_metatypes.c:317 src/main/extractor_metatypes.c:318 #, fuzzy msgid "page orientation" msgstr "Ipaji Icyerekezo" # padmin/source\rtsetup.src:RID_RTS_PAPERPAGE.RID_RTS_PAPER_PAPER_TXT.text #: src/main/extractor_metatypes.c:319 src/main/extractor_metatypes.c:320 #, fuzzy msgid "paper size" msgstr "Ingano y'urupapuro" #: src/main/extractor_metatypes.c:321 msgid "template" msgstr "" #: src/main/extractor_metatypes.c:322 msgid "template the document uses or is based on" msgstr "" #: src/main/extractor_metatypes.c:324 src/main/extractor_metatypes.c:325 msgid "company" msgstr "" # sc/source\ui\src\sortdlg.src:RID_SCPAGE_SORT_OPTIONS.FT_LANGUAGE.text #: src/main/extractor_metatypes.c:326 src/main/extractor_metatypes.c:327 #, fuzzy msgid "manager" msgstr "Ururimi" #: src/main/extractor_metatypes.c:328 src/main/extractor_metatypes.c:329 #, fuzzy msgid "revision number" msgstr "Gucapa i Verisiyo Umubare" # 5033 #: src/main/extractor_metatypes.c:330 #, fuzzy msgid "duration" msgstr "Isano" #: src/main/extractor_metatypes.c:331 msgid "play time for the medium" msgstr "" #: src/main/extractor_metatypes.c:332 msgid "album" msgstr "" #: src/main/extractor_metatypes.c:333 #, fuzzy msgid "name of the album" msgstr "Uwasohoye inyandiko" #: src/main/extractor_metatypes.c:335 #, fuzzy msgid "artist" msgstr "Umuhanzi" #: src/main/extractor_metatypes.c:336 #, fuzzy msgid "name of the artist or band" msgstr "Uwasohoye inyandiko" #: src/main/extractor_metatypes.c:337 src/main/extractor_metatypes.c:338 msgid "genre" msgstr "" #: src/main/extractor_metatypes.c:339 msgid "track number" msgstr "" #: src/main/extractor_metatypes.c:340 msgid "original number of the track on the distribution medium" msgstr "" #: src/main/extractor_metatypes.c:341 #, fuzzy msgid "disk number" msgstr "IDOSIYE Umubare" #: src/main/extractor_metatypes.c:342 msgid "number of the disk in a multi-disk (or volume) distribution" msgstr "" # sc/source\ui\pagedlg\pagedlg.src:RID_SCPAGE_TABLE.FL_PAGEDIR.text #: src/main/extractor_metatypes.c:343 #, fuzzy msgid "performer" msgstr "Ikurikirana rya paji" #: src/main/extractor_metatypes.c:344 msgid "" "The artist(s) who performed the work (conductor, orchestra, soloists, actor, " "etc.)" msgstr "" # ***** BEGIN LICENSE BLOCK ***** # Version: MPL 1.1/GPL 2.0/LGPL 2.1 # # The contents of this file are subject to the Mozilla Public License Version # 1.1 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at # http://www.mozilla.org/MPL/ # # Software distributed under the License is distributed on an "AS IS" basis, # WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License # for the specific language governing rights and limitations under the # License. # # The Original Code is Mozilla Communicator client code, released # March 31, 1998. # # The Initial Developer of the Original Code is # Netscape Communications Corporation. # Portions created by the Initial Developer are Copyright (C) 1998-1999 # the Initial Developer. All Rights Reserved. # # Contributor(s): # # Alternatively, the contents of this file may be used under the terms of # either of the GNU General Public License Version 2 or later (the "GPL"), # or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), # in which case the provisions of the GPL or the LGPL are applicable instead # of those above. If you wish to allow use of your version of this file only # under the terms of either the GPL or the LGPL, and not to allow others to # use your version of this file under the terms of the MPL, indicate your # decision by deleting the provisions above and replace them with the notice # and other provisions required by the GPL or the LGPL. If you do not delete # the provisions above, a recipient may use your version of this file under # the terms of any one of the MPL, the GPL or the LGPL. # # ***** END LICENSE BLOCK ***** # Box Headings #: src/main/extractor_metatypes.c:346 #, fuzzy msgid "contact" msgstr "Umuntu" #: src/main/extractor_metatypes.c:347 msgid "Contact information for the creator or distributor" msgstr "" # goodies/source\filter.vcl\eps\dlgeps.src:DLG_EXPORT_EPS.GRP_VERSION.text #: src/main/extractor_metatypes.c:348 #, fuzzy msgid "song version" msgstr "Verisiyo" #: src/main/extractor_metatypes.c:349 msgid "name of the version of the song (i.e. remix information)" msgstr "" #: src/main/extractor_metatypes.c:350 msgid "picture" msgstr "" #: src/main/extractor_metatypes.c:351 msgid "associated misc. picture" msgstr "" #: src/main/extractor_metatypes.c:352 msgid "cover picture" msgstr "" #: src/main/extractor_metatypes.c:353 msgid "picture of the cover of the distribution medium" msgstr "" #: src/main/extractor_metatypes.c:354 msgid "contributor picture" msgstr "" #: src/main/extractor_metatypes.c:355 msgid "picture of one of the contributors" msgstr "" #: src/main/extractor_metatypes.c:357 msgid "event picture" msgstr "" #: src/main/extractor_metatypes.c:358 msgid "picture of an associated event" msgstr "" #: src/main/extractor_metatypes.c:359 msgid "logo" msgstr "" #: src/main/extractor_metatypes.c:360 msgid "logo of an associated organization" msgstr "" #: src/main/extractor_metatypes.c:361 msgid "broadcast television system" msgstr "" #: src/main/extractor_metatypes.c:362 msgid "name of the television system for which the data is coded" msgstr "" #: src/main/extractor_metatypes.c:363 #, fuzzy msgid "source device" msgstr "APAREYE" #: src/main/extractor_metatypes.c:364 msgid "device used to create the object" msgstr "" #: src/main/extractor_metatypes.c:365 msgid "disclaimer" msgstr "" #: src/main/extractor_metatypes.c:366 msgid "legal disclaimer" msgstr "" #: src/main/extractor_metatypes.c:368 #, fuzzy msgid "warning" msgstr "Iburira" #: src/main/extractor_metatypes.c:369 msgid "warning about the nature of the content" msgstr "" # sc/source\ui\pagedlg\pagedlg.src:RID_SCPAGE_TABLE.FL_PAGEDIR.text #: src/main/extractor_metatypes.c:370 #, fuzzy msgid "page order" msgstr "Ikurikirana rya paji" #: src/main/extractor_metatypes.c:371 msgid "order of the pages" msgstr "" #: src/main/extractor_metatypes.c:372 msgid "writer" msgstr "" #: src/main/extractor_metatypes.c:373 msgid "contributing writer" msgstr "" #: src/main/extractor_metatypes.c:374 src/main/extractor_metatypes.c:375 #, fuzzy msgid "product version" msgstr "Umwanditsi" #: src/main/extractor_metatypes.c:376 msgid "contributor" msgstr "" #: src/main/extractor_metatypes.c:377 msgid "name of a contributor" msgstr "" #: src/main/extractor_metatypes.c:379 #, fuzzy msgid "movie director" msgstr "a bushyinguro" #: src/main/extractor_metatypes.c:380 #, fuzzy msgid "name of the director" msgstr "Uwasohoye inyandiko" #: src/main/extractor_metatypes.c:381 msgid "network" msgstr "" #: src/main/extractor_metatypes.c:382 msgid "name of the broadcasting network or station" msgstr "" #: src/main/extractor_metatypes.c:383 msgid "show" msgstr "" #: src/main/extractor_metatypes.c:384 #, fuzzy msgid "name of the show" msgstr "Uwasohoye inyandiko" # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Insert.Caption.WriterObject.Table.Settings.Category.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Insert.Caption.WriterObject.Frame.Settings.Category.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Insert.Caption.WriterObject.Graphic.Settings.Category.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Insert.Caption.OfficeObject.Calc.Settings.Category.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Insert.Caption.OfficeObject.Draw.Settings.Category.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Insert.Caption.OfficeObject.Chart.Settings.Category.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Insert.Caption.OfficeObject.Image.Settings.Category.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Insert.Caption.OfficeObject.Formula.Settings.Category.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Insert.Caption.OfficeObject.Impress.Settings.Category.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Insert.Caption.OfficeObject.OLEMisc.Settings.Category.text #: src/main/extractor_metatypes.c:385 #, fuzzy msgid "chapter name" msgstr "Icyiciro" #: src/main/extractor_metatypes.c:386 #, fuzzy msgid "name of the chapter" msgstr "Uwasohoye inyandiko" # sw/source\ui\inc\swmn.hrc:_MN_INS.MN_SUB_FIELD.FN_INSERT_FLD_PGCOUNT.text #: src/main/extractor_metatypes.c:387 #, fuzzy msgid "song count" msgstr "Kubara amapaje" #: src/main/extractor_metatypes.c:388 #, fuzzy msgid "number of songs" msgstr "Umubare Inyuma Bya Urutonde" #: src/main/extractor_metatypes.c:390 msgid "starting song" msgstr "" #: src/main/extractor_metatypes.c:391 msgid "number of the first song to play" msgstr "" # sw/source\ui\inc\swmn.hrc:_MN_INS.MN_SUB_FIELD.FN_INSERT_FLD_PGCOUNT.text #: src/main/extractor_metatypes.c:392 #, fuzzy msgid "play counter" msgstr "Kubara amapaje" #: src/main/extractor_metatypes.c:393 msgid "number of times the media has been played" msgstr "" #: src/main/extractor_metatypes.c:394 msgid "conductor" msgstr "" #: src/main/extractor_metatypes.c:395 #, fuzzy msgid "name of the conductor" msgstr "Uwasohoye inyandiko" #: src/main/extractor_metatypes.c:396 #, fuzzy msgid "interpretation" msgstr "Ipaji Icyerekezo" #: src/main/extractor_metatypes.c:397 msgid "" "information about the people behind interpretations of an existing piece" msgstr "" #: src/main/extractor_metatypes.c:398 msgid "composer" msgstr "" #: src/main/extractor_metatypes.c:399 #, fuzzy msgid "name of the composer" msgstr "Uwasohoye inyandiko" #: src/main/extractor_metatypes.c:401 src/main/extractor_metatypes.c:402 msgid "beats per minute" msgstr "" #: src/main/extractor_metatypes.c:403 msgid "encoded by" msgstr "" #: src/main/extractor_metatypes.c:404 msgid "name of person or organization that encoded the file" msgstr "" #: src/main/extractor_metatypes.c:405 msgid "original title" msgstr "" #: src/main/extractor_metatypes.c:406 msgid "title of the original work" msgstr "" #: src/main/extractor_metatypes.c:407 msgid "original artist" msgstr "" #: src/main/extractor_metatypes.c:408 #, fuzzy msgid "name of the original artist" msgstr "Uwasohoye inyandiko" #: src/main/extractor_metatypes.c:409 msgid "original writer" msgstr "" #: src/main/extractor_metatypes.c:410 msgid "name of the original lyricist or writer" msgstr "" #: src/main/extractor_metatypes.c:412 msgid "original release year" msgstr "" #: src/main/extractor_metatypes.c:413 msgid "year of the original release" msgstr "" #: src/main/extractor_metatypes.c:414 msgid "original performer" msgstr "" #: src/main/extractor_metatypes.c:415 msgid "name of the original performer" msgstr "" #: src/main/extractor_metatypes.c:416 msgid "lyrics" msgstr "" #: src/main/extractor_metatypes.c:417 msgid "lyrics of the song or text description of vocal activities" msgstr "" # sw/source\ui\wizard\wizmmdlg.src:DLG_WIZARD_MM.DLG_MM2_Edit_Elem1.text #: src/main/extractor_metatypes.c:418 #, fuzzy msgid "popularity" msgstr "Icyihutirwa" #: src/main/extractor_metatypes.c:419 #, fuzzy msgid "information about the file's popularity" msgstr "Imiterere" #: src/main/extractor_metatypes.c:420 msgid "licensee" msgstr "" #: src/main/extractor_metatypes.c:421 msgid "name of the owner or licensee of the file" msgstr "" #: src/main/extractor_metatypes.c:423 msgid "musician credit list" msgstr "" #: src/main/extractor_metatypes.c:424 msgid "names of contributing musicians" msgstr "" #: src/main/extractor_metatypes.c:425 msgid "mood" msgstr "" #: src/main/extractor_metatypes.c:426 msgid "keywords reflecting the mood of the piece" msgstr "" #: src/main/extractor_metatypes.c:427 #, fuzzy msgid "subtitle" msgstr "umutwe" #: src/main/extractor_metatypes.c:428 msgid "subtitle of this part" msgstr "" #: src/main/extractor_metatypes.c:429 #, fuzzy msgid "display type" msgstr "Ibitangazamakuru Ubwoko" #: src/main/extractor_metatypes.c:430 msgid "what rendering method should be used to display this item" msgstr "" #: src/main/extractor_metatypes.c:431 #, fuzzy msgid "full data" msgstr "Izina ry'idosiye" #: src/main/extractor_metatypes.c:432 msgid "" "entry that contains the full, original binary data (not really meta data)" msgstr "" #: src/main/extractor_metatypes.c:434 #, fuzzy msgid "rating" msgstr "Ikiratini" #: src/main/extractor_metatypes.c:435 msgid "rating of the content" msgstr "" #: src/main/extractor_metatypes.c:436 src/main/extractor_metatypes.c:437 #, fuzzy msgid "organization" msgstr "Ihuzagahunda" #: src/main/extractor_metatypes.c:438 src/main/extractor_metatypes.c:439 msgid "ripper" msgstr "" #: src/main/extractor_metatypes.c:440 src/main/extractor_metatypes.c:441 #, fuzzy msgid "producer" msgstr "Umwanditsi" # #-#-#-#-# sc.pot (PACKAGE VERSION) #-#-#-#-# # sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_UNDO_MAKEOUTLINE.text # #-#-#-#-# sc.pot (PACKAGE VERSION) #-#-#-#-# # sc/source\ui\src\miscdlgs.src:RID_SCDLG_GROUP.text #: src/main/extractor_metatypes.c:442 #, fuzzy msgid "group" msgstr "Itsinda" #: src/main/extractor_metatypes.c:443 #, fuzzy msgid "name of the group or band" msgstr "Uwasohoye inyandiko" #: src/main/extractor_metatypes.c:445 #, fuzzy msgid "original filename" msgstr "Izina ry'idosiye" #: src/main/extractor_metatypes.c:446 #, fuzzy msgid "name of the original file (reserved for GNUnet)" msgstr "Uwasohoye inyandiko" # sw/source\ui\inc\swmn.hrc:_MN_INS.MN_SUB_FIELD.FN_INSERT_FLD_PGCOUNT.text #: src/main/extractor_metatypes.c:447 #, fuzzy msgid "disc count" msgstr "Kubara amapaje" #: src/main/extractor_metatypes.c:448 msgid "count of discs inside collection this disc belongs to" msgstr "" #: src/main/extractor_metatypes.c:449 msgid "codec" msgstr "" #: src/main/extractor_metatypes.c:450 msgid "codec the data is stored in" msgstr "" #: src/main/extractor_metatypes.c:451 msgid "video codec" msgstr "" #: src/main/extractor_metatypes.c:452 msgid "codec the video data is stored in" msgstr "" #: src/main/extractor_metatypes.c:453 msgid "audio codec" msgstr "" #: src/main/extractor_metatypes.c:454 msgid "codec the audio data is stored in" msgstr "" #: src/main/extractor_metatypes.c:456 #, fuzzy msgid "subtitle codec" msgstr "umutwe" #: src/main/extractor_metatypes.c:457 msgid "codec/format the subtitle data is stored in" msgstr "" #: src/main/extractor_metatypes.c:458 msgid "container format" msgstr "" #: src/main/extractor_metatypes.c:459 msgid "container format the data is stored in" msgstr "" #: src/main/extractor_metatypes.c:460 msgid "bitrate" msgstr "" #: src/main/extractor_metatypes.c:461 msgid "exact or average bitrate in bits/s" msgstr "" #: src/main/extractor_metatypes.c:462 msgid "nominal bitrate" msgstr "" #: src/main/extractor_metatypes.c:463 msgid "" "nominal bitrate in bits/s. The actual bitrate might be different from this " "target bitrate." msgstr "" #: src/main/extractor_metatypes.c:464 msgid "minimum bitrate" msgstr "" #: src/main/extractor_metatypes.c:465 msgid "minimum bitrate in bits/s" msgstr "" #: src/main/extractor_metatypes.c:467 msgid "maximum bitrate" msgstr "" #: src/main/extractor_metatypes.c:468 msgid "maximum bitrate in bits/s" msgstr "" #: src/main/extractor_metatypes.c:469 msgid "serial" msgstr "" #: src/main/extractor_metatypes.c:470 #, fuzzy msgid "serial number of track" msgstr "Umubare Inyuma Bya Urutonde" #: src/main/extractor_metatypes.c:471 msgid "encoder" msgstr "" #: src/main/extractor_metatypes.c:472 msgid "encoder used to encode this stream" msgstr "" #: src/main/extractor_metatypes.c:473 #, fuzzy msgid "encoder version" msgstr "Imiterere" #: src/main/extractor_metatypes.c:474 msgid "version of the encoder used to encode this stream" msgstr "" #: src/main/extractor_metatypes.c:475 msgid "track gain" msgstr "" #: src/main/extractor_metatypes.c:476 msgid "track gain in db" msgstr "" #: src/main/extractor_metatypes.c:478 msgid "track peak" msgstr "" #: src/main/extractor_metatypes.c:479 #, fuzzy msgid "peak of the track" msgstr "Uwasohoye inyandiko" #: src/main/extractor_metatypes.c:480 msgid "album gain" msgstr "" #: src/main/extractor_metatypes.c:481 msgid "album gain in db" msgstr "" #: src/main/extractor_metatypes.c:482 msgid "album peak" msgstr "" #: src/main/extractor_metatypes.c:483 #, fuzzy msgid "peak of the album" msgstr "Uwasohoye inyandiko" #: src/main/extractor_metatypes.c:484 msgid "reference level" msgstr "" #: src/main/extractor_metatypes.c:485 msgid "reference level of track and album gain values" msgstr "" #: src/main/extractor_metatypes.c:486 #, fuzzy msgid "location name" msgstr "Inturo" #: src/main/extractor_metatypes.c:487 msgid "" "human readable descriptive location of where the media has been recorded or " "produced" msgstr "" #: src/main/extractor_metatypes.c:489 #, fuzzy msgid "location elevation" msgstr "Inturo" #: src/main/extractor_metatypes.c:490 msgid "" "geo elevation of where the media has been recorded or produced in meters " "according to WGS84 (zero is average sea level)" msgstr "" #: src/main/extractor_metatypes.c:491 msgid "location horizontal error" msgstr "" #: src/main/extractor_metatypes.c:492 msgid "represents the expected error on the horizontal positioning in meters" msgstr "" # setup2/source\ui\app.src:FT_INSTINFO_MKDIR.text #: src/main/extractor_metatypes.c:493 #, fuzzy msgid "location movement speed" msgstr "Irema ry'itariki" #: src/main/extractor_metatypes.c:494 msgid "" "speed of the capturing device when performing the capture. Represented in m/s" msgstr "" #: src/main/extractor_metatypes.c:495 msgid "location movement direction" msgstr "" #: src/main/extractor_metatypes.c:496 msgid "" "indicates the movement direction of the device performing the capture of a " "media. It is represented as degrees in floating point representation, 0 " "means the geographic north, and increases clockwise" msgstr "" #: src/main/extractor_metatypes.c:497 msgid "location capture direction" msgstr "" #: src/main/extractor_metatypes.c:498 msgid "" "indicates the direction the device is pointing to when capturing a media. It " "is represented as degrees in floating point representation, 0 means the " "geographic north, and increases clockwise" msgstr "" #: src/main/extractor_metatypes.c:500 #, fuzzy msgid "show episode number" msgstr "Gucapa i Verisiyo Umubare" #: src/main/extractor_metatypes.c:501 msgid "number of the episode within a season/show" msgstr "" #: src/main/extractor_metatypes.c:502 #, fuzzy msgid "show season number" msgstr "Gucapa i Verisiyo Umubare" #: src/main/extractor_metatypes.c:503 msgid "number of the season of a show/series" msgstr "" # #-#-#-#-# sc.pot (PACKAGE VERSION) #-#-#-#-# # sc/source\ui\src\globstr.src:RID_GLOBSTR.STR_UNDO_MAKEOUTLINE.text # #-#-#-#-# sc.pot (PACKAGE VERSION) #-#-#-#-# # sc/source\ui\src\miscdlgs.src:RID_SCDLG_GROUP.text #: src/main/extractor_metatypes.c:504 #, fuzzy msgid "grouping" msgstr "Itsinda" #: src/main/extractor_metatypes.c:505 msgid "" "groups together media that are related and spans multiple tracks. An example " "are multiple pieces of a concerto" msgstr "" #: src/main/extractor_metatypes.c:506 msgid "device manufacturer" msgstr "" #: src/main/extractor_metatypes.c:507 msgid "manufacturer of the device used to create the media" msgstr "" #: src/main/extractor_metatypes.c:508 msgid "device model" msgstr "" #: src/main/extractor_metatypes.c:509 msgid "model of the device used to create the media" msgstr "" # sc/source\ui\src\sortdlg.src:RID_SCPAGE_SORT_OPTIONS.FT_LANGUAGE.text #: src/main/extractor_metatypes.c:511 #, fuzzy msgid "audio language" msgstr "Ururimi" #: src/main/extractor_metatypes.c:512 #, fuzzy msgid "language of the audio track" msgstr "Uwasohoye inyandiko" #: src/main/extractor_metatypes.c:513 msgid "channels" msgstr "" #: src/main/extractor_metatypes.c:514 #, fuzzy msgid "number of audio channels" msgstr "Umubare Inyuma Bya Urutonde" #: src/main/extractor_metatypes.c:515 msgid "sample rate" msgstr "" #: src/main/extractor_metatypes.c:516 #, fuzzy msgid "sample rate of the audio track" msgstr "Uwasohoye inyandiko" #: src/main/extractor_metatypes.c:517 msgid "audio depth" msgstr "" #: src/main/extractor_metatypes.c:518 msgid "number of bits per audio sample" msgstr "" #: src/main/extractor_metatypes.c:519 msgid "audio bitrate" msgstr "" #: src/main/extractor_metatypes.c:520 #, fuzzy msgid "bitrate of the audio track" msgstr "Uwasohoye inyandiko" #: src/main/extractor_metatypes.c:522 src/main/extractor_metatypes.c:523 msgid "maximum audio bitrate" msgstr "" #: src/main/extractor_metatypes.c:524 #, fuzzy msgid "video dimensions" msgstr "Ipaji Icyerekezo" #: src/main/extractor_metatypes.c:525 msgid "width and height of the video track (WxH)" msgstr "" #: src/main/extractor_metatypes.c:526 msgid "video depth" msgstr "" #: src/main/extractor_metatypes.c:527 #, fuzzy msgid "numbers of bits per pixel" msgstr "Umubare Inyuma Bya Urutonde" # sc/source\ui\pagedlg\pagedlg.src:RID_SCPAGE_TABLE.FL_PAGEDIR.text #: src/main/extractor_metatypes.c:528 #, fuzzy msgid "frame rate" msgstr "Ikurikirana rya paji" #: src/main/extractor_metatypes.c:529 msgid "number of frames per second (as D/N or floating point)" msgstr "" #: src/main/extractor_metatypes.c:530 msgid "pixel aspect ratio" msgstr "" #: src/main/extractor_metatypes.c:531 msgid "pixel aspect ratio (as D/N)" msgstr "" #: src/main/extractor_metatypes.c:533 src/main/extractor_metatypes.c:534 msgid "video bitrate" msgstr "" #: src/main/extractor_metatypes.c:535 src/main/extractor_metatypes.c:536 msgid "maximum video bitrate" msgstr "" # sc/source\ui\src\sortdlg.src:RID_SCPAGE_SORT_OPTIONS.FT_LANGUAGE.text #: src/main/extractor_metatypes.c:537 #, fuzzy msgid "subtitle language" msgstr "Ururimi" #: src/main/extractor_metatypes.c:538 #, fuzzy msgid "language of the subtitle track" msgstr "Uwasohoye inyandiko" # sc/source\ui\src\sortdlg.src:RID_SCPAGE_SORT_OPTIONS.FT_LANGUAGE.text #: src/main/extractor_metatypes.c:539 #, fuzzy msgid "video language" msgstr "Ururimi" #: src/main/extractor_metatypes.c:540 #, fuzzy msgid "language of the video track" msgstr "Uwasohoye inyandiko" #: src/main/extractor_metatypes.c:541 msgid "table of contents" msgstr "" #: src/main/extractor_metatypes.c:542 msgid "chapters, contents or bookmarks (in xml format)" msgstr "" # 5033 #: src/main/extractor_metatypes.c:544 #, fuzzy msgid "video duration" msgstr "Isano" #: src/main/extractor_metatypes.c:545 #, fuzzy msgid "duration of a video stream" msgstr "Uwasohoye inyandiko" # 5033 #: src/main/extractor_metatypes.c:546 #, fuzzy msgid "audio duration" msgstr "Isano" #: src/main/extractor_metatypes.c:547 #, fuzzy msgid "duration of an audio stream" msgstr "Uwasohoye inyandiko" # sc/source\ui\src\sortdlg.src:RID_SCPAGE_SORT_OPTIONS.FT_LANGUAGE.text #: src/main/extractor_metatypes.c:548 #, fuzzy msgid "subtitle duration" msgstr "Ururimi" #: src/main/extractor_metatypes.c:549 #, fuzzy msgid "duration of a subtitle stream" msgstr "Uwasohoye inyandiko" #: src/main/extractor_metatypes.c:551 msgid "audio preview" msgstr "" #: src/main/extractor_metatypes.c:552 #, fuzzy msgid "a preview of the file audio stream" msgstr "Uwasohoye inyandiko" #: src/main/extractor_metatypes.c:554 src/main/extractor_metatypes.c:555 #, fuzzy msgid "last" msgstr "Umuhanzi" #: src/main/getopt.c:684 #, fuzzy, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s:Ihitamo ni" #: src/main/getopt.c:709 #, fuzzy, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s:Ihitamo Kwemerera" #: src/main/getopt.c:715 #, fuzzy, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s:Ihitamo Kwemerera" #: src/main/getopt.c:732 src/main/getopt.c:903 #, fuzzy, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s:Ihitamo" #: src/main/getopt.c:761 #, fuzzy, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s:Ihitamo" #: src/main/getopt.c:765 #, fuzzy, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s:Ihitamo" #: src/main/getopt.c:791 #, fuzzy, c-format msgid "%s: illegal option -- %c\n" msgstr "%s:Ihitamo" #: src/main/getopt.c:793 #, fuzzy, c-format msgid "%s: invalid option -- %c\n" msgstr "%s:Sibyo Ihitamo" #: src/main/getopt.c:822 src/main/getopt.c:952 #, fuzzy, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s:Ihitamo" #: src/main/getopt.c:870 #, fuzzy, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s:Ihitamo ni" #: src/main/getopt.c:888 #, fuzzy, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s:Ihitamo Kwemerera" #: src/plugins/flac_extractor.c:322 #, c-format msgid "%u Hz, %u channels" msgstr "" #: src/plugins/man_extractor.c:215 msgid "Commands" msgstr "amabwiriza" #: src/plugins/man_extractor.c:219 #, fuzzy msgid "System calls" msgstr "Amahamagara:" #: src/plugins/man_extractor.c:223 #, fuzzy msgid "Library calls" msgstr "Amahamagara:" #: src/plugins/man_extractor.c:227 #, fuzzy msgid "Special files" msgstr "Idosiye" #: src/plugins/man_extractor.c:231 #, fuzzy msgid "File formats and conventions" msgstr "Idosiye Imiterere Na" #: src/plugins/man_extractor.c:235 msgid "Games" msgstr "" #: src/plugins/man_extractor.c:239 #, fuzzy msgid "Conventions and miscellaneous" msgstr "Na Binyuranye" #: src/plugins/man_extractor.c:243 #, fuzzy msgid "System management commands" msgstr "Amabwiriza" #: src/plugins/man_extractor.c:247 msgid "Kernel routines" msgstr "" #: src/plugins/ole2_extractor.c:387 msgid "No Proofing" msgstr "" #: src/plugins/ole2_extractor.c:395 msgid "Traditional Chinese" msgstr "" #: src/plugins/ole2_extractor.c:397 msgid "Simplified Chinese" msgstr "" #: src/plugins/ole2_extractor.c:405 msgid "Swiss German" msgstr "" #: src/plugins/ole2_extractor.c:409 msgid "U.S. English" msgstr "" #: src/plugins/ole2_extractor.c:411 msgid "U.K. English" msgstr "" #: src/plugins/ole2_extractor.c:413 msgid "Australian English" msgstr "" #: src/plugins/ole2_extractor.c:415 msgid "Castilian Spanish" msgstr "" #: src/plugins/ole2_extractor.c:417 msgid "Mexican Spanish" msgstr "" #: src/plugins/ole2_extractor.c:423 msgid "Belgian French" msgstr "" #: src/plugins/ole2_extractor.c:425 msgid "Canadian French" msgstr "" #: src/plugins/ole2_extractor.c:427 msgid "Swiss French" msgstr "" #: src/plugins/ole2_extractor.c:437 msgid "Swiss Italian" msgstr "" #: src/plugins/ole2_extractor.c:445 msgid "Belgian Dutch" msgstr "" #: src/plugins/ole2_extractor.c:447 msgid "Norwegian Bokmal" msgstr "" #: src/plugins/ole2_extractor.c:457 msgid "Rhaeto-Romanic" msgstr "" #: src/plugins/ole2_extractor.c:463 msgid "Croato-Serbian (Latin)" msgstr "" #: src/plugins/ole2_extractor.c:465 msgid "Serbo-Croatian (Cyrillic)" msgstr "" #: src/plugins/ole2_extractor.c:493 msgid "Farsi" msgstr "" #: src/plugins/ole2_extractor.c:578 #, c-format msgid "Revision #%u: Author `%s' worked on `%s'" msgstr "" #: src/plugins/riff_extractor.c:145 #, c-format msgid "codec: %s, %u fps, %u ms" msgstr "" #: src/plugins/wav_extractor.c:120 msgid "mono" msgstr "" #: src/plugins/wav_extractor.c:120 msgid "stereo" msgstr "" #, fuzzy #~ msgid "no copyright" #~ msgstr "Uburenganzira bw'umuhimbyi" #, fuzzy #~ msgid "original" #~ msgstr "Izina ry'idosiye" #, fuzzy #~ msgid "copy" #~ msgstr "Uburenganzira bw'umuhimbyi" #, fuzzy #~ msgid "Classic Rock" #~ msgstr "Ikinyagotike" #, fuzzy #~ msgid "Country" #~ msgstr "Igihugu" #, fuzzy #~ msgid "Dance" #~ msgstr "Umwanya" #~ msgid "Metal" #~ msgstr "Icyuma" #~ msgid "Other" #~ msgstr "Ikindi" #, fuzzy #~ msgid "Death Metal" #~ msgstr "Icyuma" #, fuzzy #~ msgid "Fusion" #~ msgstr "Isobanuramiterere" #, fuzzy #~ msgid "Trance" #~ msgstr "Umwanya" #, fuzzy #~ msgid "Alt. Rock" #~ msgstr "Ikinyagotike" #~ msgid "Space" #~ msgstr "Umwanya" #, fuzzy #~ msgid "Ethnic" #~ msgstr "Ikinyagotike" #~ msgid "Gothic" #~ msgstr "Ikinyagotike" #~ msgid "Electronic" #~ msgstr "elegitoroniki" #, fuzzy #~ msgid "Southern Rock" #~ msgstr "Ikinyagotike" #, fuzzy #~ msgid "Swing" #~ msgstr "Iburira" #, fuzzy #~ msgid "Fast-Fusion" #~ msgstr "Isobanuramiterere" #, fuzzy #~ msgid "Latin" #~ msgstr "Ikiratini" #, fuzzy #~ msgid "Gothic Rock" #~ msgstr "Ikinyagotike" #, fuzzy #~ msgid "Symphonic Rock" #~ msgstr "Ikinyagotike" #, fuzzy #~ msgid "Slow Rock" #~ msgstr "Ikinyagotike" #, fuzzy #~ msgid "Opera" #~ msgstr "Ikindi" # ***** BEGIN LICENSE BLOCK ***** # Version: MPL 1.1/GPL 2.0/LGPL 2.1 # # The contents of this file are subject to the Mozilla Public License Version # 1.1 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at # http://www.mozilla.org/MPL/ # # Software distributed under the License is distributed on an "AS IS" basis, # WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License # for the specific language governing rights and limitations under the # License. # # The Original Code is Mozilla Communicator client code, released # March 31, 1998. # # The Initial Developer of the Original Code is # Netscape Communications Corporation. # Portions created by the Initial Developer are Copyright (C) 1998-1999 # the Initial Developer. All Rights Reserved. # # Contributor(s): # # Alternatively, the contents of this file may be used under the terms of # either of the GNU General Public License Version 2 or later (the "GPL"), # or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), # in which case the provisions of the GPL or the LGPL are applicable instead # of those above. If you wish to allow use of your version of this file only # under the terms of either the GPL or the LGPL, and not to allow others to # use your version of this file under the terms of the MPL, indicate your # decision by deleting the provisions above and replace them with the notice # and other provisions required by the GPL or the LGPL. If you do not delete # the provisions above, a recipient may use your version of this file under # the terms of any one of the MPL, the GPL or the LGPL. # # ***** END LICENSE BLOCK ***** # Box Headings #, fuzzy #~ msgid "Sonata" #~ msgstr "Umuntu" #, fuzzy #~ msgid "Satire" #~ msgstr "Itariki" #, fuzzy #~ msgid "A Cappella" #~ msgstr "A" #, fuzzy #~ msgid "Dance Hall" #~ msgstr "Umwanya" #, fuzzy #~ msgid "Terror" #~ msgstr "Nta kosa" #, fuzzy #~ msgid "Heavy Metal" #~ msgstr "Icyuma" #, fuzzy #~ msgid "Black Metal" #~ msgstr "Icyuma" #, fuzzy #~ msgid "Thrash Metal" #~ msgstr "Icyuma" #, fuzzy #~ msgid "Anime" #~ msgstr "umutwe" #, fuzzy #~ msgid "%ux%u dots per inch" #~ msgstr "%ux%uUtudomo Inci" #, fuzzy #~ msgid "%ux%u dots per cm" #~ msgstr "%ux%uUtudomo cm" #, fuzzy #~ msgid "%ux%u dots per inch?" #~ msgstr "%ux%uUtudomo Inci" #, fuzzy #~ msgid "compute hash using the given ALGORITHM (currently sha1 or md5)" #~ msgstr "ikoresha i Cyangwa" #, fuzzy #~ msgid "" #~ "use the generic plaintext extractor for the language with the 2-letter " #~ "language code LANG" #~ msgstr "" #~ "Gukoresha i Gifitanye isano kugirango i Ururimi Na: i 2. Ibaruwa... " #~ "Ururimi ITEGEKONGENGA" #, fuzzy #~ msgid "copyright information" #~ msgstr "Imiterere" # sc/source\ui\miscdlgs\acredlin.src:RID_POPUP_CHANGES.SC_SUB_SORT.SC_SORT_AUTHOR.text #, fuzzy #~ msgid "author" #~ msgstr "Umwanditsi" #, fuzzy #~ msgid "resource-type" #~ msgstr "Ubwoko" #, fuzzy #~ msgid "resource-identifier" #~ msgstr "Ikiranga" # 5033 #, fuzzy #~ msgid "relation" #~ msgstr "Isano" #, fuzzy #~ msgid "used fonts" #~ msgstr "Imyandikire" #, fuzzy #~ msgid "created for" #~ msgstr "Byaremwe kugirango" #~ msgid "size" #~ msgstr "ingano" #, fuzzy #~ msgid "build-host" #~ msgstr "Ubuturo" # officecfg/registry\schema\org\openoffice\Office\Common.xcs:....Filter.Graphic.Export.BMP.Resolution.text #, fuzzy #~ msgid "resolution" #~ msgstr "Imikemurire" # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Insert.Caption.WriterObject.Table.Settings.Category.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Insert.Caption.WriterObject.Frame.Settings.Category.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Insert.Caption.WriterObject.Graphic.Settings.Category.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Insert.Caption.OfficeObject.Calc.Settings.Category.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Insert.Caption.OfficeObject.Draw.Settings.Category.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Insert.Caption.OfficeObject.Chart.Settings.Category.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Insert.Caption.OfficeObject.Image.Settings.Category.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Insert.Caption.OfficeObject.Formula.Settings.Category.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Insert.Caption.OfficeObject.Impress.Settings.Category.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Insert.Caption.OfficeObject.OLEMisc.Settings.Category.text #, fuzzy #~ msgid "category" #~ msgstr "Icyiciro" #, fuzzy #~ msgid "binary thumbnail data" #~ msgstr "Nyabibiri Ibyatanzwe" #, fuzzy #~ msgid "information" #~ msgstr "Imiterere" # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Insert.Caption.WriterObject.Table.Settings.Category.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Insert.Caption.WriterObject.Frame.Settings.Category.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Insert.Caption.WriterObject.Graphic.Settings.Category.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Insert.Caption.OfficeObject.Calc.Settings.Category.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Insert.Caption.OfficeObject.Draw.Settings.Category.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Insert.Caption.OfficeObject.Chart.Settings.Category.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Insert.Caption.OfficeObject.Image.Settings.Category.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Insert.Caption.OfficeObject.Formula.Settings.Category.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Insert.Caption.OfficeObject.Impress.Settings.Category.text # #-#-#-#-# officecfg.pot (PACKAGE VERSION) #-#-#-#-# # officecfg/registry\schema\org\openoffice\Office\Writer.xcs:....Insert.Caption.OfficeObject.OLEMisc.Settings.Category.text #, fuzzy #~ msgid "chapter" #~ msgstr "Icyiciro" #, fuzzy #~ msgid "music CD identifier" #~ msgstr "Ikiranga" #, fuzzy #~ msgid "filesize" #~ msgstr "ingano" #, fuzzy #~ msgid "do not remove any duplicates" #~ msgstr "OYA Gukuraho..." #, fuzzy #~ msgid "remove duplicates only if types match" #~ msgstr "Gukuraho... NIBA BIHUYE" #, fuzzy #~ msgid "use the filename as a keyword (loads filename-extractor plugin)" #~ msgstr "Gukoresha i Izina ry'idosiye: Nka a Ijambo- banze Izina ry'idosiye:" #, fuzzy #~ msgid "remove duplicates even if keyword types do not match" #~ msgstr "Gukuraho... ATARIIGIHARWE NIBA Ijambo- banze OYA BIHUYE" #, fuzzy #~ msgid "use keyword splitting (loads split-extractor plugin)" #~ msgstr "Gukoresha Ijambo- banze Gutandukanya" #, fuzzy #~ msgid "" #~ "Resolving symbol `%s' in library `%s' failed, so I tried `%s', but that " #~ "failed also. Errors are: `%s' and `%s'.\n" #~ msgstr "IKIMENYETSO in Isomero Byanze Byanze Na" #, fuzzy #~ msgid "Unloading plugin `%s' failed!\n" #~ msgstr "Byanze" #, fuzzy #~ msgid "" #~ "Please provide the name of the language you are building\n" #~ "a dictionary for. For example:\n" #~ msgstr "i Izina: Bya i Ururimi Inkoranyamagambo kugirango Urugero" # basctl/source\basicide\basidesh.src:RID_STR_ERROROPENSTORAGE.text #, fuzzy #~ msgid "Error opening file `%s': %s\n" #~ msgstr "Hari ikibazo mu gufungura dosiye" #, fuzzy #~ msgid "Increase ALLOCSIZE (in %s).\n" #~ msgstr "in" #, fuzzy #~ msgid "(variable bps)" #~ msgstr "(IMPINDURAGACIRO" #, fuzzy #~ msgid "Unknown host" #~ msgstr "Ubuturo" #, fuzzy #~ msgid "Host name lookup failure" #~ msgstr "Izina: GUSHAKISHA" #, fuzzy #~ msgid "Unknown server error" #~ msgstr "Seriveri Ikosa" #, fuzzy #~ msgid "No address associated with name" #~ msgstr "Aderesi Na: Izina:" #, fuzzy #~ msgid "Internal resolver error" #~ msgstr "Ikosa" #, fuzzy #~ msgid "Unknown resolver error" #~ msgstr "Ikosa" #, fuzzy #~ msgid "Cannot determine root directory (%s)\n" #~ msgstr "Imizi bushyinguro" #, fuzzy #~ msgid "Cannot determine home directory (%s)\n" #~ msgstr "Ku Ntangiriro bushyinguro" #, fuzzy #~ msgid "Not super-user" #~ msgstr "hejuru Ukoresha:" #, fuzzy #~ msgid "No such file or directory" #~ msgstr "IDOSIYE Cyangwa bushyinguro" #, fuzzy #~ msgid "Interrupted system call" #~ msgstr "Sisitemu" #, fuzzy #~ msgid "I/O error" #~ msgstr "Ikosa" #, fuzzy #~ msgid "No such device or address" #~ msgstr "APAREYE Cyangwa Aderesi" #, fuzzy #~ msgid "Arg list too long" #~ msgstr "Urutonde" #, fuzzy #~ msgid "Exec format error" #~ msgstr "Imiterere Ikosa" #, fuzzy #~ msgid "Resource unavailable or operation would block, try again" #~ msgstr "Cyangwa Funga" #~ msgid "Not enough memory" #~ msgstr "Ububiko ntibuhagije" #, fuzzy #~ msgid "Bad address" #~ msgstr "Aderesi" #, fuzzy #~ msgid "Block device required" #~ msgstr "APAREYE Bya ngombwa" #, fuzzy #~ msgid "Mount device busy" #~ msgstr "APAREYE Irahuze" #, fuzzy #~ msgid "File exists" #~ msgstr "Idosiye" #, fuzzy #~ msgid "Cross-device link" #~ msgstr "APAREYE Ihuza" #, fuzzy #~ msgid "Not a directory" #~ msgstr "a bushyinguro" #~ msgid "Invalid argument" #~ msgstr "Inkoresha siyo" #, fuzzy #~ msgid "Too many open files in system" #~ msgstr "Gufungura Idosiye in Sisitemu" #, fuzzy #~ msgid "Too many open files" #~ msgstr "Gufungura Idosiye" #, fuzzy #~ msgid "Not a typewriter" #~ msgstr "a" #, fuzzy #~ msgid "Text file busy" #~ msgstr "IDOSIYE Irahuze" #, fuzzy #~ msgid "File too large" #~ msgstr "Idosiye Binini" #, fuzzy #~ msgid "No space left on device" #~ msgstr "Umwanya Ibumoso: ku APAREYE" #, fuzzy #~ msgid "Read only file system" #~ msgstr "IDOSIYE Sisitemu" #, fuzzy #~ msgid "Too many links" #~ msgstr "amahuza" #, fuzzy #~ msgid "Math arg out of domain of func" #~ msgstr "Inyuma Bya Urwego Bya" #, fuzzy #~ msgid "Math result not representable" #~ msgstr "Igisubizo OYA" #, fuzzy #~ msgid "No message of desired type" #~ msgstr "Ubutumwa Bya Ubwoko" #, fuzzy #~ msgid "Identifier removed" #~ msgstr "Cyavanyweho" #, fuzzy #~ msgid "Channel number out of range" #~ msgstr "Umubare Inyuma Bya Urutonde" #, fuzzy #~ msgid "Level 2 not synchronized" #~ msgstr "2. OYA" #, fuzzy #~ msgid "Level 3 halted" #~ msgstr "3." #, fuzzy #~ msgid "Level 3 reset" #~ msgstr "3. Kugarura" #, fuzzy #~ msgid "Protocol driver not attached" #~ msgstr "Musomyi: OYA" #, fuzzy #~ msgid "No CSI structure available" #~ msgstr "Imiterere Bihari" #, fuzzy #~ msgid "Level 2 halted" #~ msgstr "2." #, fuzzy #~ msgid "Deadlock condition" #~ msgstr "Ibisabwa" #, fuzzy #~ msgid "No record locks available" #~ msgstr "Icyabitswe Bihari" #, fuzzy #~ msgid "Invalid request descriptor" #~ msgstr "Kubaza..." #, fuzzy #~ msgid "Invalid request code" #~ msgstr "Kubaza... ITEGEKONGENGA" #, fuzzy #~ msgid "File locking deadlock error" #~ msgstr "Idosiye Ikosa" #, fuzzy #~ msgid "Bad font file fmt" #~ msgstr "Intego- nyuguti IDOSIYE" #, fuzzy #~ msgid "Device not a stream" #~ msgstr "OYA a" #, fuzzy #~ msgid "No data (for no delay io)" #~ msgstr "Ibyatanzwe kugirango Oya Gutinda io" #, fuzzy #~ msgid "Timer expired" #~ msgstr "Byarengeje igihe" #, fuzzy #~ msgid "Out of streams resources" #~ msgstr "Bya" #, fuzzy #~ msgid "Machine is not on the network" #~ msgstr "ni OYA ku i urusobe" #, fuzzy #~ msgid "The object is remote" #~ msgstr "Igikoresho ni" #, fuzzy #~ msgid "The link has been severed" #~ msgstr "Ihuza" #, fuzzy #~ msgid "Advertise error" #~ msgstr "Ikosa" #, fuzzy #~ msgid "Srmount error" #~ msgstr "Ikosa" #, fuzzy #~ msgid "Communication error on send" #~ msgstr "Ikosa ku Kohereza" #~ msgid "Protocol error" #~ msgstr "Ikosa rya Protocol" #, fuzzy #~ msgid "Inode is remote (not really error)" #~ msgstr "ni OYA Ikosa" #, fuzzy #~ msgid "Cross mount point (not really error)" #~ msgstr "Akadomo OYA Ikosa" #, fuzzy #~ msgid "Trying to read unreadable message" #~ msgstr "Kuri Gusoma Ubutumwa" #, fuzzy #~ msgid "Given log. name not unique" #~ msgstr "LOG Izina: OYA Cyo nyine" #, fuzzy #~ msgid "f.d. invalid for this operation" #~ msgstr "F. D." #, fuzzy #~ msgid "Remote address changed" #~ msgstr "Aderesi Byahinduwe" #, fuzzy #~ msgid "Can't access a needed shared lib" #~ msgstr "a" #, fuzzy #~ msgid "Accessing a corrupted shared lib" #~ msgstr "a" #, fuzzy #~ msgid ".lib section in a.out corrupted" #~ msgstr "" #~ ".Project- Id- Version: basctl\n" #~ "POT- Creation- Date: 2003- 12- 07 17: 13+ 02\n" #~ "PO- Revision- Date: 2004- 11- 04 10: 13- 0700\n" #~ "Last- Translator: Language- Team:< en@ li. org> MIME- Version: 1. 0\n" #~ "Content- Type: text/ plain; charset= UTF- 8\n" #~ "Content- Transfer- Encoding: 8bit\n" #~ "X- Generator: KBabel 1. 0\n" #~ "." #, fuzzy #~ msgid "Attempting to link in too many libs" #~ msgstr "Kuri Ihuza in" #, fuzzy #~ msgid "Attempting to exec a shared library" #~ msgstr "Kuri a Isomero" #, fuzzy #~ msgid "Function not implemented" #~ msgstr "OYA" #~ msgid "No more files" #~ msgstr "Nta yandi madosiye" #, fuzzy #~ msgid "Directory not empty" #~ msgstr "OYA ubusa" #, fuzzy #~ msgid "File or path name too long" #~ msgstr "Idosiye Cyangwa Inzira Izina:" #, fuzzy #~ msgid "Too many symbolic links" #~ msgstr "amahuza" #, fuzzy #~ msgid "Operation not supported on transport endpoint" #~ msgstr "OYA ku" #, fuzzy #~ msgid "Protocol family not supported" #~ msgstr "OYA" #, fuzzy #~ msgid "Connection reset by peer" #~ msgstr "Kugarura ku" #, fuzzy #~ msgid "No buffer space available" #~ msgstr "Umwanya Bihari" #, fuzzy #~ msgid "Address family not supported by protocol family" #~ msgstr "OYA ku Porotokole" #, fuzzy #~ msgid "Protocol wrong type for socket" #~ msgstr "Ubwoko kugirango" #, fuzzy #~ msgid "Socket operation on non-socket" #~ msgstr "ku" #, fuzzy #~ msgid "Protocol not available" #~ msgstr "OYA Bihari" #, fuzzy #~ msgid "Can't send after socket shutdown" #~ msgstr "Kohereza Nyuma Zimya" #, fuzzy #~ msgid "Address already in use" #~ msgstr "in Gukoresha" #, fuzzy #~ msgid "Network is unreachable" #~ msgstr "ni" #, fuzzy #~ msgid "Network interface is not configured" #~ msgstr "ni OYA" #, fuzzy #~ msgid "Connection timed out" #~ msgstr "Inyuma" #, fuzzy #~ msgid "Host is down" #~ msgstr "ni Hasi" #, fuzzy #~ msgid "Host is unreachable" #~ msgstr "ni" #, fuzzy #~ msgid "Connection already in progress" #~ msgstr "in Aho bigeze" #, fuzzy #~ msgid "Destination address required" #~ msgstr "Aderesi Bya ngombwa" #, fuzzy #~ msgid "Unknown protocol" #~ msgstr "Porotokole" #, fuzzy #~ msgid "Socket type not supported" #~ msgstr "Ubwoko OYA" #, fuzzy #~ msgid "Address not available" #~ msgstr "OYA Bihari" #, fuzzy #~ msgid "Connection aborted by network" #~ msgstr "ku urusobe" #, fuzzy #~ msgid "Socket is already connected" #~ msgstr "ni" #, fuzzy #~ msgid "Socket is not connected" #~ msgstr "ni OYA" #, fuzzy #~ msgid "Too many references: cannot splice" #~ msgstr "Indango" #, fuzzy #~ msgid "Disk quota exceeded" #~ msgstr "Igice" #~ msgid "Unknown error" #~ msgstr "Ikosa itazwi" #, fuzzy #~ msgid "No medium (in tape drive)" #~ msgstr "biringaniye in Porogaramu- shoboza" #, fuzzy #~ msgid "No such host or network path" #~ msgstr "Ubuturo Cyangwa urusobe Inzira" #, fuzzy #~ msgid "Filename exists with different case" #~ msgstr "Na:" #, fuzzy #~ msgid "ERROR: Unknown error %i in %s\n" #~ msgstr "Ikosa in" #, fuzzy #~ msgid "Fatal: could not allocate (%s at %s:%d).\n" #~ msgstr "OYA ku" libextractor-1.3/po/it.gmo0000644000175000017500000002221412255661612012545 00000000000000L|H I b | ,  % , -4 b &      * 0 = K Q a e n r {       & 3@DH%WC}      (CRWpx   > *YI 5  %%.1F x &  , 4>GY@^.  2?&OFvD3 6ARbt  "<%Bh!z 1!'-% S>am'E.c)./ !:*\$$(8?RV_cl   (;MQ U0bL 2E0V Bb] A  L X*f1 )CJa{ B' 7 V *j    + E!BX!@!!! "!"7"M" c"p" """"""" " ""#%#=#"O#r#0#'#*#($1$AJ$! t;>C|?adgl4"fyk `Z(A80n'*+{[D&<M\^3wQ i/sr5UX N%,-}679JpO~.bE:=Fje$)K2mBvYGLV_uh1]I R@c#zTSqWPoHx %s - (binary, %u bytes) %s: illegal option -- %c %s: invalid option -- %c %s: option `%c%s' doesn't allow an argument %s: option `%s' is ambiguous %s: option `%s' requires an argument %s: option `--%s' doesn't allow an argument %s: option `-W %s' doesn't allow an argument %s: option `-W %s' is ambiguous %s: option requires an argument -- %c %s: unrecognized option `%c%s' %s: unrecognized option `--%s' Australian EnglishBelgian DutchBelgian FrenchCanadian FrenchFarsiGPS latitudeGPS longitudeGamesKernel routinesMD4MD4 hashMD5MD5 hashMexican SpanishNorwegian BokmalRipeMD150 hashRipeMD160SHA-0SHA-0 hashSHA-1SHA-1 hashSimplified ChineseSwiss FrenchSwiss GermanSwiss ItalianTraditional ChineseU.K. EnglishU.S. EnglishURIURLUsage: %s %s Use --help to get a list of options. You must specify an argument for the `%s' option (option ignored). albumartistauthor emailauthor namebibtex eprintbook chapterbook editionbook titlecategory the software package belongs tochapter numbercitycodec: %s, %u fps, %u mscommentcomment about the contentconflicting packagescopyrightcreation datecreation timedate of publication (or, if unpublished, the date of creation)date the document was createddate the document was modifiedday of publication (or, if unpublished, the day of creation), relative to the given monthdependenciesdependency that must be satisfied before installationdescriptiondistributiondistribution the package is a part ofduratione-mail of the author(s)edition of the book (or book containing the work)file typeflashfocal lengthfocal length 35mmfunctionality provided by this packagegenreimage qualityimage resolutioninformation about rightslanguagelanguage the work useslicensemime typemimetypemodification datemonomonth of publication (or, if unpublished, the month of creation)name of the albumname of the artist or bandname of the author(s)name of the city where the document originatedorientationoriginal source codepackage namepackage versionpackages made obsolete by this packagepackages recommended for installation in conjunction with this packagepackages suggested for installation in conjunction with this packagepackages that cannot be installed with this packagepaper sizepublication datepublication daypublication monthpublication typepublication yearrecommendationsreplaced packagesreservedreserved value, do not userightssectionsoftware versionsourcestereosublocationsuggestionstime and date of creationtitletitle of the book containing the worktitle of the worktotal number of pages of the worktrack numbertype of the publication for bibTeX bibliographiesunique identifier for the packageversion of the software and its packageversion of the software contained in the filewhite balanceyear of publication (or, if unpublished, the year of creation)Project-Id-Version: libextractor-0.6.0 Report-Msgid-Bugs-To: libextractor@gnu.org POT-Creation-Date: 2013-12-22 23:11+0100 PO-Revision-Date: 2010-09-30 23:41+0200 Last-Translator: Sergio Zanchetta Language-Team: Italian Language: it MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit %s - (binario, %u bite) %s: opzione non lecita -- %c %s: opzione non valida -- %c %s: l'opzione "%c%s" non ammette un argomento %s: l'opzione "%s" è ambigua %s: l'opzione "%s" richiede un argomento %s: l'opzione "--%s" non ammette un argomento %s: l'opzione "-W %s" non ammette un argomento %s: l'opzione "-W %s" è ambigua %s: l'opzione richiede un argomento -- %c %s: opzione non riconosciuta "%c%s" %s: opzione non riconosciuta "--%s" Inglese australianoOlandese belgaFrancese belgaFranco canadeseFarsilatitudine GPSlongitudine GPSGiochiRoutine del kernelMD4hash MD4MD5hash MD5Spagnolo messicanoBokmal norvegesehash RipeMD150RipeMD160SHA-0hash SHA-0SHA-1hash SHA-1Cinese semplificatoFrancese svizzeroTedesco svizzeroItaliano svizzeroCinese tradizionaleInglese britannicoInglese americanoURIURLUso: %s %s Usare --help per ottenere un elenco di opzioni. Deve essere specificato un argomento per l'opzione "%s" (opzione ignorata). albumartistaemail dell'autorenome dell'autoreeprint bibtexcapitolo del libroedizione del librotitolo del librocategoria a cui appartiene il pacchetto softwarenumero del capitolocittàcodec: %s, %u fps, %u mscommentocommento sul contenutopacchetti in conflittocopyrightdata di creazioneora di creazionedata di pubblicazione (o, se non pubblicato, la data di creazione)data di creazione del documentodata di modifica del documentogiorno di pubblicazione (o, se non pubblicato, il giorno di creazione), relativo al mese datodipendenzedipendenze che devono essere soddisfatte prima dell'installazionedescrizionedistribuzionedistribuzione di cui fa parte il pacchettodurataemail dell'autore(i)edizione del libro (o libro contenente il lavoro)tipo di fileflashlunghezza focalelunghezza focale 35mmfunzionalità fornite da questo pacchettogenerequalità dell'immaginerisoluzione dell'immagineinformazioni sui dirittilingualingua usata dal lavorolicenzamime typemimetypedata di modificamonomese di pubblicazione (o, se non pubblicato, il mese di creazione)nome dell'albumnome dell'artista o del grupponome dell'autore(i)nome della città di origine del documentoorientamentocodice sorgente originalenome del pacchettoversione del pacchettopacchetti resi obsoleti da questo pacchettopacchetti raccomandati per l'installazione insieme a questo pacchettopacchetti suggeriti per l'installazione insieme a questo pacchettopacchetti che non possono essere installati con questo pacchettodimensione della cartadata di pubblicazionegiorno di pubblicazionemese di pubblicazionetipo di pubblicazioneanno di pubblicazioneraccomandatipacchetti sostituitiriservatovalore riservato, non usaredirittisezioneversione del softwaresorgentestereosublocazionesuggeritiora e data di creazionetitolotitolo del libro contenente il lavorotitolo del lavoronumero totale di pagine del lavoronumero di tracciatipo di pubblicazione per le bibliografie bibTeXidentificatore univoco per il pacchettoversione del software e relativo pacchettoversione del software contenuto nel filebilanciamento del biancoanno di pubblicazione (o, se non pubblicato, l'anno di creazione)libextractor-1.3/po/de.po0000644000175000017500000016011612255661612012361 00000000000000# German translations for libextractor package. # This file is distributed under the same license as the libextractor package. # Christian Grothoff , 2004. # Karl Eichwalder , 2004, 2005, 2006. # Nils Durner , 2007 # msgid "" msgstr "" "Project-Id-Version: libextractor 0.5.14\n" "Report-Msgid-Bugs-To: libextractor@gnu.org\n" "POT-Creation-Date: 2013-12-22 23:11+0100\n" "PO-Revision-Date: 2007-03-23 23:16+0100\n" "Last-Translator: Nils Durner \n" "Language-Team: German \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: src/main/extract.c:132 #, c-format msgid "" "Usage: %s\n" "%s\n" "\n" msgstr "" "Aufruf: %s\n" "%s\n" "\n" #: src/main/extract.c:135 #, c-format msgid "" "Arguments mandatory for long options are also mandatory for short options.\n" msgstr "" "Argumente, die für lange Optionen notwendig sind, sind ebenfalls für die\n" "Optionen in Kurzform notwendig.\n" #: src/main/extract.c:217 msgid "print output in bibtex format" msgstr "Ausgabe im BibTeX format" #: src/main/extract.c:219 msgid "produce grep-friendly output (all results on one line per file)" msgstr "" "grep-freundliche Ausgabe erzeugen (alle Ergebnisse als eine Zeile pro Datei)" #: src/main/extract.c:221 msgid "print this help" msgstr "diese Hilfe anzeigen" #: src/main/extract.c:223 msgid "run plugins in-process (simplifies debugging)" msgstr "" #: src/main/extract.c:225 msgid "read data from file into memory and extract from memory" msgstr "" #: src/main/extract.c:227 msgid "load an extractor plugin named LIBRARY" msgstr "extractor-Erweiterung mit der Bezeichnung LIBRARY laden" #: src/main/extract.c:229 msgid "list all keyword types" msgstr "alle Arten Schlüsselwörter auflisten" #: src/main/extract.c:231 msgid "do not use the default set of extractor plugins" msgstr "Standardsatz der extractor-Erweiterungen nicht verwenden" #: src/main/extract.c:233 msgid "print only keywords of the given TYPE (use -L to get a list)" msgstr "" "nur Schlüsselwörter einer bestimmten ART ausgeben (mit -L die Liste anzeigen " "lassen)" #: src/main/extract.c:235 msgid "print the version number" msgstr "die Versionsnummer anzeigen" #: src/main/extract.c:237 msgid "be verbose" msgstr "viele Informationen ausgeben" #: src/main/extract.c:239 msgid "do not print keywords of the given TYPE" msgstr "Schlüsselwörter einer bestimmten ART nicht ausgeben" #: src/main/extract.c:242 msgid "extract [OPTIONS] [FILENAME]*" msgstr "extract [OPTIONEN] [DATEINAME]*" #: src/main/extract.c:243 msgid "Extract metadata from files." msgstr "Metadaten aus den Dateien extrahieren." #: src/main/extract.c:288 #, fuzzy, c-format msgid "Found by `%s' plugin:\n" msgstr "Laden des »%s«-Plugins ist fehlgeschlagen: %s\n" #: src/main/extract.c:291 src/main/extract.c:378 #: src/main/extractor_metatypes.c:145 src/main/extractor_print.c:86 #: src/main/extractor_print.c:96 msgid "unknown" msgstr "unbekannt" #: src/main/extract.c:296 #, c-format msgid "%s - (unknown, %u bytes)\n" msgstr "" #: src/main/extract.c:325 #, fuzzy, c-format msgid "%s - (binary, %u bytes)\n" msgstr "%s - (binär)\n" #: src/main/extract.c:809 src/main/extract.c:821 msgid "" "Illegal combination of options, cannot combine multiple styles of printing.\n" msgstr "" #: src/main/extract.c:854 #, c-format msgid "You must specify an argument for the `%s' option (option ignored).\n" msgstr "" "Sie müssen ein Argument für die Option »%s« angeben (Option wird " "ignoriert).\n" #: src/main/extract.c:923 msgid "Use --help to get a list of options.\n" msgstr "Verwenden Sie --help, um eine Liste aller Optionen zu sehen.\n" #: src/main/extract.c:964 #, fuzzy msgid "% BiBTeX file\n" msgstr "%% BibTeX Datei\n" #: src/main/extract.c:972 #, c-format msgid "Keywords for file %s:\n" msgstr "Schlüsserwörter für die Datei %s:\n" #: src/main/extractor.c:676 #, c-format msgid "Initialization of plugin mechanism failed: %s!\n" msgstr "Initialisierung des Plugin-Mechanismus' ist fehlgeschlagen: %s.\n" #: src/main/extractor_metatypes.c:46 msgid "reserved" msgstr "" #: src/main/extractor_metatypes.c:47 msgid "reserved value, do not use" msgstr "" #: src/main/extractor_metatypes.c:48 msgid "mimetype" msgstr "MIME-Typ" #: src/main/extractor_metatypes.c:49 #, fuzzy msgid "mime type" msgstr "MIME-Typ" #: src/main/extractor_metatypes.c:50 #, fuzzy msgid "embedded filename" msgstr "Dateiname" #: src/main/extractor_metatypes.c:51 msgid "filename that was embedded (not necessarily the current filename)" msgstr "" #: src/main/extractor_metatypes.c:52 msgid "comment" msgstr "Kommentar" #: src/main/extractor_metatypes.c:53 msgid "comment about the content" msgstr "" #: src/main/extractor_metatypes.c:54 msgid "title" msgstr "Titel" #: src/main/extractor_metatypes.c:55 msgid "title of the work" msgstr "" #: src/main/extractor_metatypes.c:57 msgid "book title" msgstr "Buchtitel" #: src/main/extractor_metatypes.c:58 msgid "title of the book containing the work" msgstr "" #: src/main/extractor_metatypes.c:59 #, fuzzy msgid "book edition" msgstr "Buchtitel" #: src/main/extractor_metatypes.c:60 msgid "edition of the book (or book containing the work)" msgstr "" #: src/main/extractor_metatypes.c:61 #, fuzzy msgid "book chapter" msgstr "Kapitel" #: src/main/extractor_metatypes.c:62 #, fuzzy msgid "chapter number" msgstr "Nummer des Stücks" #: src/main/extractor_metatypes.c:63 #, fuzzy msgid "journal name" msgstr "vollständiger Name" #: src/main/extractor_metatypes.c:64 msgid "journal or magazine the work was published in" msgstr "" #: src/main/extractor_metatypes.c:65 msgid "journal volume" msgstr "" #: src/main/extractor_metatypes.c:66 msgid "volume of a journal or multi-volume book" msgstr "" #: src/main/extractor_metatypes.c:68 #, fuzzy msgid "journal number" msgstr "Nummer des Stücks" #: src/main/extractor_metatypes.c:69 msgid "number of a journal, magazine or tech-report" msgstr "" #: src/main/extractor_metatypes.c:70 msgid "page count" msgstr "Seitenanzahl" #: src/main/extractor_metatypes.c:71 msgid "total number of pages of the work" msgstr "" #: src/main/extractor_metatypes.c:72 #, fuzzy msgid "page range" msgstr "Seitenreihenfolge" #: src/main/extractor_metatypes.c:73 msgid "page numbers of the publication in the respective journal or book" msgstr "" #: src/main/extractor_metatypes.c:74 #, fuzzy msgid "author name" msgstr "Autor" #: src/main/extractor_metatypes.c:75 msgid "name of the author(s)" msgstr "" #: src/main/extractor_metatypes.c:76 #, fuzzy msgid "author email" msgstr "Autor" #: src/main/extractor_metatypes.c:77 msgid "e-mail of the author(s)" msgstr "" #: src/main/extractor_metatypes.c:79 #, fuzzy msgid "author institution" msgstr "Ausrichtung" #: src/main/extractor_metatypes.c:80 msgid "institution the author worked for" msgstr "" #: src/main/extractor_metatypes.c:81 msgid "publisher" msgstr "Herausgeber" #: src/main/extractor_metatypes.c:82 #, fuzzy msgid "name of the publisher" msgstr "Herausgeber" #: src/main/extractor_metatypes.c:83 #, fuzzy msgid "publisher's address" msgstr "Herausgeber" #: src/main/extractor_metatypes.c:84 msgid "Address of the publisher (often only the city)" msgstr "" #: src/main/extractor_metatypes.c:85 msgid "publishing institution" msgstr "" #: src/main/extractor_metatypes.c:86 msgid "" "institution that was involved in the publishing, but not necessarily the " "publisher" msgstr "" #: src/main/extractor_metatypes.c:87 #, fuzzy msgid "publication series" msgstr "Datum der Veröffentlichung" #: src/main/extractor_metatypes.c:88 msgid "series of books the book was published in" msgstr "" #: src/main/extractor_metatypes.c:90 #, fuzzy msgid "publication type" msgstr "Datum der Veröffentlichung" #: src/main/extractor_metatypes.c:91 msgid "type of the tech-report" msgstr "" #: src/main/extractor_metatypes.c:92 #, fuzzy msgid "publication year" msgstr "Datum der Veröffentlichung" #: src/main/extractor_metatypes.c:93 msgid "year of publication (or, if unpublished, the year of creation)" msgstr "" #: src/main/extractor_metatypes.c:94 #, fuzzy msgid "publication month" msgstr "Datum der Veröffentlichung" #: src/main/extractor_metatypes.c:95 msgid "month of publication (or, if unpublished, the month of creation)" msgstr "" #: src/main/extractor_metatypes.c:96 #, fuzzy msgid "publication day" msgstr "Datum der Veröffentlichung" #: src/main/extractor_metatypes.c:97 msgid "" "day of publication (or, if unpublished, the day of creation), relative to " "the given month" msgstr "" #: src/main/extractor_metatypes.c:98 msgid "publication date" msgstr "Datum der Veröffentlichung" #: src/main/extractor_metatypes.c:99 msgid "date of publication (or, if unpublished, the date of creation)" msgstr "" #: src/main/extractor_metatypes.c:101 msgid "bibtex eprint" msgstr "" #: src/main/extractor_metatypes.c:102 msgid "specification of an electronic publication" msgstr "" #: src/main/extractor_metatypes.c:103 #, fuzzy msgid "bibtex entry type" msgstr "Inhaltstyp" #: src/main/extractor_metatypes.c:104 msgid "type of the publication for bibTeX bibliographies" msgstr "" #: src/main/extractor_metatypes.c:105 msgid "language" msgstr "Sprache" #: src/main/extractor_metatypes.c:106 msgid "language the work uses" msgstr "" #: src/main/extractor_metatypes.c:107 #, fuzzy msgid "creation time" msgstr "Datum der Erstellung" #: src/main/extractor_metatypes.c:108 msgid "time and date of creation" msgstr "" #: src/main/extractor_metatypes.c:109 msgid "URL" msgstr "" #: src/main/extractor_metatypes.c:110 msgid "universal resource location (where the work is made available)" msgstr "" #: src/main/extractor_metatypes.c:112 msgid "URI" msgstr "" #: src/main/extractor_metatypes.c:113 #, fuzzy msgid "universal resource identifier" msgstr "Ressourcenbezeichner" #: src/main/extractor_metatypes.c:114 msgid "international standard recording code" msgstr "" #: src/main/extractor_metatypes.c:115 msgid "ISRC number identifying the work" msgstr "" #: src/main/extractor_metatypes.c:116 msgid "MD4" msgstr "MD4" #: src/main/extractor_metatypes.c:117 msgid "MD4 hash" msgstr "" #: src/main/extractor_metatypes.c:118 msgid "MD5" msgstr "MD5" #: src/main/extractor_metatypes.c:119 msgid "MD5 hash" msgstr "" #: src/main/extractor_metatypes.c:120 msgid "SHA-0" msgstr "SHA-0" #: src/main/extractor_metatypes.c:121 #, fuzzy msgid "SHA-0 hash" msgstr "SHA-0" #: src/main/extractor_metatypes.c:123 msgid "SHA-1" msgstr "SHA-1" #: src/main/extractor_metatypes.c:124 #, fuzzy msgid "SHA-1 hash" msgstr "SHA-1" #: src/main/extractor_metatypes.c:125 msgid "RipeMD160" msgstr "RipeMD160" #: src/main/extractor_metatypes.c:126 #, fuzzy msgid "RipeMD150 hash" msgstr "RipeMD160" #: src/main/extractor_metatypes.c:127 src/main/extractor_metatypes.c:128 msgid "GPS latitude ref" msgstr "" #: src/main/extractor_metatypes.c:129 src/main/extractor_metatypes.c:130 msgid "GPS latitude" msgstr "" #: src/main/extractor_metatypes.c:131 src/main/extractor_metatypes.c:132 msgid "GPS longitude ref" msgstr "" #: src/main/extractor_metatypes.c:134 src/main/extractor_metatypes.c:135 msgid "GPS longitude" msgstr "" #: src/main/extractor_metatypes.c:136 msgid "city" msgstr "" #: src/main/extractor_metatypes.c:137 msgid "name of the city where the document originated" msgstr "" #: src/main/extractor_metatypes.c:138 #, fuzzy msgid "sublocation" msgstr "Ort" #: src/main/extractor_metatypes.c:139 msgid "more specific location of the geographic origin" msgstr "" #: src/main/extractor_metatypes.c:140 #, fuzzy msgid "country" msgstr "Country" #: src/main/extractor_metatypes.c:141 msgid "name of the country where the document originated" msgstr "" #: src/main/extractor_metatypes.c:142 #, fuzzy msgid "country code" msgstr "Country" #: src/main/extractor_metatypes.c:143 msgid "ISO 2-letter country code for the country of origin" msgstr "" #: src/main/extractor_metatypes.c:146 msgid "specifics are not known" msgstr "" #: src/main/extractor_metatypes.c:147 src/main/extractor_metatypes.c:148 msgid "description" msgstr "Beschreibung" #: src/main/extractor_metatypes.c:149 msgid "copyright" msgstr "Copyright" #: src/main/extractor_metatypes.c:150 msgid "Name of the entity holding the copyright" msgstr "" #: src/main/extractor_metatypes.c:151 #, fuzzy msgid "rights" msgstr "Copyright" #: src/main/extractor_metatypes.c:152 #, fuzzy msgid "information about rights" msgstr "Information" #: src/main/extractor_metatypes.c:153 src/main/extractor_metatypes.c:154 msgid "keywords" msgstr "Schlüsselwörter" #: src/main/extractor_metatypes.c:156 src/main/extractor_metatypes.c:157 msgid "abstract" msgstr "" #: src/main/extractor_metatypes.c:158 src/main/extractor_metatypes.c:159 msgid "summary" msgstr "Kurzbeschreibung" #: src/main/extractor_metatypes.c:160 msgid "subject" msgstr "Gegenstand" #: src/main/extractor_metatypes.c:161 #, fuzzy msgid "subject matter" msgstr "Gegenstand" #: src/main/extractor_metatypes.c:162 src/main/extractor_metatypes.c:195 msgid "creator" msgstr "Ersteller" #: src/main/extractor_metatypes.c:163 msgid "name of the person who created the document" msgstr "" #: src/main/extractor_metatypes.c:164 msgid "format" msgstr "Format" #: src/main/extractor_metatypes.c:165 msgid "name of the document format" msgstr "" #: src/main/extractor_metatypes.c:167 msgid "format version" msgstr "Formatversion" #: src/main/extractor_metatypes.c:168 msgid "version of the document format" msgstr "" #: src/main/extractor_metatypes.c:169 msgid "created by software" msgstr "erstellt mit der Software" #: src/main/extractor_metatypes.c:170 msgid "name of the software that created the document" msgstr "" #: src/main/extractor_metatypes.c:171 #, fuzzy msgid "unknown date" msgstr "unbekannt" #: src/main/extractor_metatypes.c:172 msgid "" "ambiguous date (could specify creation time, modification time or access " "time)" msgstr "" #: src/main/extractor_metatypes.c:173 msgid "creation date" msgstr "Datum der Erstellung" #: src/main/extractor_metatypes.c:174 msgid "date the document was created" msgstr "" #: src/main/extractor_metatypes.c:175 msgid "modification date" msgstr "Datum der Veränderung" #: src/main/extractor_metatypes.c:176 msgid "date the document was modified" msgstr "" #: src/main/extractor_metatypes.c:178 msgid "last printed" msgstr "zuletzt gedruckt" #: src/main/extractor_metatypes.c:179 msgid "date the document was last printed" msgstr "" #: src/main/extractor_metatypes.c:180 msgid "last saved by" msgstr "zuletzt gespeichert von" #: src/main/extractor_metatypes.c:181 msgid "name of the user who saved the document last" msgstr "" #: src/main/extractor_metatypes.c:182 msgid "total editing time" msgstr "Gesamte Änderungszeit" #: src/main/extractor_metatypes.c:183 msgid "time spent editing the document" msgstr "" #: src/main/extractor_metatypes.c:184 msgid "editing cycles" msgstr "Änderungszyklen" #: src/main/extractor_metatypes.c:185 #, fuzzy msgid "number of editing cycles" msgstr "Änderungszyklen" #: src/main/extractor_metatypes.c:186 msgid "modified by software" msgstr "Geändert von Software" #: src/main/extractor_metatypes.c:187 msgid "name of software making modifications" msgstr "" #: src/main/extractor_metatypes.c:189 msgid "revision history" msgstr "Versionsgeschichte" #: src/main/extractor_metatypes.c:190 msgid "information about the revision history" msgstr "" #: src/main/extractor_metatypes.c:191 #, fuzzy msgid "embedded file size" msgstr "Dateigröße" #: src/main/extractor_metatypes.c:192 msgid "size of the contents of the container as embedded in the file" msgstr "" #: src/main/extractor_metatypes.c:193 #, fuzzy msgid "file type" msgstr "MIME-Typ" #: src/main/extractor_metatypes.c:194 msgid "standard Macintosh Finder file type information" msgstr "" #: src/main/extractor_metatypes.c:196 msgid "standard Macintosh Finder file creator information" msgstr "" #: src/main/extractor_metatypes.c:197 #, fuzzy msgid "package name" msgstr "Paket-Ersteller" #: src/main/extractor_metatypes.c:198 msgid "unique identifier for the package" msgstr "" #: src/main/extractor_metatypes.c:200 #, fuzzy msgid "package version" msgstr "Paket-Ersteller" #: src/main/extractor_metatypes.c:201 msgid "version of the software and its package" msgstr "" #: src/main/extractor_metatypes.c:202 #, fuzzy msgid "section" msgstr "Beschreibung" #: src/main/extractor_metatypes.c:203 msgid "category the software package belongs to" msgstr "" #: src/main/extractor_metatypes.c:204 #, fuzzy msgid "upload priority" msgstr "Priorität" #: src/main/extractor_metatypes.c:205 msgid "priority for promoting the release to production" msgstr "" #: src/main/extractor_metatypes.c:206 #, fuzzy msgid "dependencies" msgstr "Abhängigkeit" #: src/main/extractor_metatypes.c:207 msgid "packages this package depends upon" msgstr "" #: src/main/extractor_metatypes.c:208 #, fuzzy msgid "conflicting packages" msgstr "in Konflikt mit" #: src/main/extractor_metatypes.c:209 msgid "packages that cannot be installed with this package" msgstr "" #: src/main/extractor_metatypes.c:211 #, fuzzy msgid "replaced packages" msgstr "Ersatz für" #: src/main/extractor_metatypes.c:212 msgid "packages made obsolete by this package" msgstr "" #: src/main/extractor_metatypes.c:213 msgid "provides" msgstr "Stellt bereit" #: src/main/extractor_metatypes.c:214 msgid "functionality provided by this package" msgstr "" #: src/main/extractor_metatypes.c:215 #, fuzzy msgid "recommendations" msgstr "Kommentar" #: src/main/extractor_metatypes.c:216 msgid "packages recommended for installation in conjunction with this package" msgstr "" #: src/main/extractor_metatypes.c:217 msgid "suggestions" msgstr "" #: src/main/extractor_metatypes.c:218 msgid "packages suggested for installation in conjunction with this package" msgstr "" #: src/main/extractor_metatypes.c:219 msgid "maintainer" msgstr "" #: src/main/extractor_metatypes.c:220 msgid "name of the maintainer" msgstr "" #: src/main/extractor_metatypes.c:222 #, fuzzy msgid "installed size" msgstr "Dateigröße" #: src/main/extractor_metatypes.c:223 msgid "space consumption after installation" msgstr "" #: src/main/extractor_metatypes.c:224 src/main/extractor_metatypes.c:304 msgid "source" msgstr "Quelle" #: src/main/extractor_metatypes.c:225 msgid "original source code" msgstr "" #: src/main/extractor_metatypes.c:226 msgid "is essential" msgstr "" #: src/main/extractor_metatypes.c:227 msgid "package is marked as essential" msgstr "" #: src/main/extractor_metatypes.c:228 msgid "target architecture" msgstr "" #: src/main/extractor_metatypes.c:229 msgid "hardware architecture the contents can be used for" msgstr "" #: src/main/extractor_metatypes.c:230 #, fuzzy msgid "pre-dependency" msgstr "Abhängigkeit" #: src/main/extractor_metatypes.c:231 msgid "dependency that must be satisfied before installation" msgstr "" #: src/main/extractor_metatypes.c:233 msgid "license" msgstr "Lizenz" #: src/main/extractor_metatypes.c:234 msgid "applicable copyright license" msgstr "" #: src/main/extractor_metatypes.c:235 msgid "distribution" msgstr "Distribution" #: src/main/extractor_metatypes.c:236 msgid "distribution the package is a part of" msgstr "" #: src/main/extractor_metatypes.c:237 #, fuzzy msgid "build host" msgstr "Build-Host" #: src/main/extractor_metatypes.c:238 msgid "machine the package was build on" msgstr "" #: src/main/extractor_metatypes.c:239 msgid "vendor" msgstr "Anbieter" #: src/main/extractor_metatypes.c:240 msgid "name of the software vendor" msgstr "" #: src/main/extractor_metatypes.c:241 #, fuzzy msgid "target operating system" msgstr "Betriebssystem" #: src/main/extractor_metatypes.c:242 msgid "operating system for which this package was made" msgstr "" #: src/main/extractor_metatypes.c:244 #, fuzzy msgid "software version" msgstr "Software" #: src/main/extractor_metatypes.c:245 msgid "version of the software contained in the file" msgstr "" #: src/main/extractor_metatypes.c:246 msgid "target platform" msgstr "" #: src/main/extractor_metatypes.c:247 msgid "" "name of the architecture, operating system and distribution this package is " "for" msgstr "" #: src/main/extractor_metatypes.c:248 #, fuzzy msgid "resource type" msgstr "Art der Ressource" #: src/main/extractor_metatypes.c:249 msgid "" "categorization of the nature of the resource that is more specific than the " "file format" msgstr "" #: src/main/extractor_metatypes.c:250 msgid "library search path" msgstr "" #: src/main/extractor_metatypes.c:251 msgid "" "path in the file system to be considered when looking for required libraries" msgstr "" #: src/main/extractor_metatypes.c:252 #, fuzzy msgid "library dependency" msgstr "Hardwareabhängigkeit" #: src/main/extractor_metatypes.c:253 msgid "name of a library that this file depends on" msgstr "" #: src/main/extractor_metatypes.c:255 src/main/extractor_metatypes.c:256 msgid "camera make" msgstr "Kameramarke" #: src/main/extractor_metatypes.c:257 src/main/extractor_metatypes.c:258 msgid "camera model" msgstr "Kamera-Modell" #: src/main/extractor_metatypes.c:259 src/main/extractor_metatypes.c:260 msgid "exposure" msgstr "Belichtung" #: src/main/extractor_metatypes.c:261 src/main/extractor_metatypes.c:262 msgid "aperture" msgstr "Apertur" #: src/main/extractor_metatypes.c:263 src/main/extractor_metatypes.c:264 msgid "exposure bias" msgstr "Belichtungsausgleich" #: src/main/extractor_metatypes.c:266 src/main/extractor_metatypes.c:267 msgid "flash" msgstr "Blitz" #: src/main/extractor_metatypes.c:268 src/main/extractor_metatypes.c:269 msgid "flash bias" msgstr "Blitzeinrichtung" #: src/main/extractor_metatypes.c:270 src/main/extractor_metatypes.c:271 msgid "focal length" msgstr "Brennweite" #: src/main/extractor_metatypes.c:272 src/main/extractor_metatypes.c:273 #, fuzzy msgid "focal length 35mm" msgstr "Brennweite" #: src/main/extractor_metatypes.c:274 src/main/extractor_metatypes.c:275 msgid "iso speed" msgstr "ISO Geschwindigkeit" #: src/main/extractor_metatypes.c:277 src/main/extractor_metatypes.c:278 msgid "exposure mode" msgstr "Belichtungsmethode" #: src/main/extractor_metatypes.c:279 src/main/extractor_metatypes.c:280 msgid "metering mode" msgstr "Messmethode" #: src/main/extractor_metatypes.c:281 src/main/extractor_metatypes.c:282 msgid "macro mode" msgstr "Makro-Modus" #: src/main/extractor_metatypes.c:283 src/main/extractor_metatypes.c:284 msgid "image quality" msgstr "Bildqualität" #: src/main/extractor_metatypes.c:285 src/main/extractor_metatypes.c:286 msgid "white balance" msgstr "Weißabgleich" #: src/main/extractor_metatypes.c:288 src/main/extractor_metatypes.c:289 msgid "orientation" msgstr "Ausrichtung" #: src/main/extractor_metatypes.c:290 src/main/extractor_metatypes.c:291 msgid "magnification" msgstr "Vergrößerung" #: src/main/extractor_metatypes.c:292 #, fuzzy msgid "image dimensions" msgstr "Seitenausrichtung" #: src/main/extractor_metatypes.c:293 msgid "size of the image in pixels (width times height)" msgstr "" #: src/main/extractor_metatypes.c:294 src/main/extractor_metatypes.c:295 #, fuzzy msgid "produced by software" msgstr "Geändert von Software" #: src/main/extractor_metatypes.c:299 #, fuzzy msgid "thumbnail" msgstr "Vorschau" #: src/main/extractor_metatypes.c:300 msgid "smaller version of the image for previewing" msgstr "" #: src/main/extractor_metatypes.c:302 #, fuzzy msgid "image resolution" msgstr "Auflösung" #: src/main/extractor_metatypes.c:303 #, fuzzy msgid "resolution in dots per inch" msgstr "%ux%u Punkte je Zoll" #: src/main/extractor_metatypes.c:305 msgid "Originating entity" msgstr "" #: src/main/extractor_metatypes.c:306 msgid "character set" msgstr "Zeichensatz" #: src/main/extractor_metatypes.c:307 #, fuzzy msgid "character encoding used" msgstr "Zeichenanzahl" #: src/main/extractor_metatypes.c:308 msgid "line count" msgstr "Zeilenanzahl" #: src/main/extractor_metatypes.c:309 msgid "number of lines" msgstr "" #: src/main/extractor_metatypes.c:310 msgid "paragraph count" msgstr "Absatzanzahl" #: src/main/extractor_metatypes.c:311 msgid "number of paragraphs" msgstr "" #: src/main/extractor_metatypes.c:313 msgid "word count" msgstr "Wortanzahl" #: src/main/extractor_metatypes.c:314 msgid "number of words" msgstr "" #: src/main/extractor_metatypes.c:315 msgid "character count" msgstr "Zeichenanzahl" #: src/main/extractor_metatypes.c:316 #, fuzzy msgid "number of characters" msgstr "Zeichensatz" #: src/main/extractor_metatypes.c:317 src/main/extractor_metatypes.c:318 msgid "page orientation" msgstr "Seitenausrichtung" #: src/main/extractor_metatypes.c:319 src/main/extractor_metatypes.c:320 msgid "paper size" msgstr "Seitengröße" #: src/main/extractor_metatypes.c:321 msgid "template" msgstr "Vorlage" #: src/main/extractor_metatypes.c:322 msgid "template the document uses or is based on" msgstr "" #: src/main/extractor_metatypes.c:324 src/main/extractor_metatypes.c:325 msgid "company" msgstr "Unternehmen" #: src/main/extractor_metatypes.c:326 src/main/extractor_metatypes.c:327 msgid "manager" msgstr "Manager" #: src/main/extractor_metatypes.c:328 src/main/extractor_metatypes.c:329 #, fuzzy msgid "revision number" msgstr "die Versionsnummer anzeigen" #: src/main/extractor_metatypes.c:330 msgid "duration" msgstr "Dauer" #: src/main/extractor_metatypes.c:331 msgid "play time for the medium" msgstr "" #: src/main/extractor_metatypes.c:332 msgid "album" msgstr "Album" #: src/main/extractor_metatypes.c:333 msgid "name of the album" msgstr "" #: src/main/extractor_metatypes.c:335 msgid "artist" msgstr "Künstler" #: src/main/extractor_metatypes.c:336 msgid "name of the artist or band" msgstr "" #: src/main/extractor_metatypes.c:337 src/main/extractor_metatypes.c:338 msgid "genre" msgstr "Fach" #: src/main/extractor_metatypes.c:339 msgid "track number" msgstr "Nummer des Stücks" #: src/main/extractor_metatypes.c:340 msgid "original number of the track on the distribution medium" msgstr "" #: src/main/extractor_metatypes.c:341 #, fuzzy msgid "disk number" msgstr "Nummer der Platte" #: src/main/extractor_metatypes.c:342 msgid "number of the disk in a multi-disk (or volume) distribution" msgstr "" #: src/main/extractor_metatypes.c:343 msgid "performer" msgstr "" #: src/main/extractor_metatypes.c:344 msgid "" "The artist(s) who performed the work (conductor, orchestra, soloists, actor, " "etc.)" msgstr "" #: src/main/extractor_metatypes.c:346 msgid "contact" msgstr "Kontakt" #: src/main/extractor_metatypes.c:347 msgid "Contact information for the creator or distributor" msgstr "" #: src/main/extractor_metatypes.c:348 #, fuzzy msgid "song version" msgstr "Version" #: src/main/extractor_metatypes.c:349 msgid "name of the version of the song (i.e. remix information)" msgstr "" #: src/main/extractor_metatypes.c:350 #, fuzzy msgid "picture" msgstr "Apertur" #: src/main/extractor_metatypes.c:351 msgid "associated misc. picture" msgstr "" #: src/main/extractor_metatypes.c:352 msgid "cover picture" msgstr "" #: src/main/extractor_metatypes.c:353 msgid "picture of the cover of the distribution medium" msgstr "" #: src/main/extractor_metatypes.c:354 #, fuzzy msgid "contributor picture" msgstr "Beiträger" #: src/main/extractor_metatypes.c:355 msgid "picture of one of the contributors" msgstr "" #: src/main/extractor_metatypes.c:357 msgid "event picture" msgstr "" #: src/main/extractor_metatypes.c:358 msgid "picture of an associated event" msgstr "" #: src/main/extractor_metatypes.c:359 msgid "logo" msgstr "" #: src/main/extractor_metatypes.c:360 msgid "logo of an associated organization" msgstr "" #: src/main/extractor_metatypes.c:361 #, fuzzy msgid "broadcast television system" msgstr "TV System" #: src/main/extractor_metatypes.c:362 msgid "name of the television system for which the data is coded" msgstr "" #: src/main/extractor_metatypes.c:363 #, fuzzy msgid "source device" msgstr "Quelle" #: src/main/extractor_metatypes.c:364 msgid "device used to create the object" msgstr "" #: src/main/extractor_metatypes.c:365 msgid "disclaimer" msgstr "Haftungsausschluss" #: src/main/extractor_metatypes.c:366 #, fuzzy msgid "legal disclaimer" msgstr "Haftungsausschluss" #: src/main/extractor_metatypes.c:368 msgid "warning" msgstr "Warnung" #: src/main/extractor_metatypes.c:369 msgid "warning about the nature of the content" msgstr "" #: src/main/extractor_metatypes.c:370 msgid "page order" msgstr "Seitenreihenfolge" #: src/main/extractor_metatypes.c:371 msgid "order of the pages" msgstr "" #: src/main/extractor_metatypes.c:372 msgid "writer" msgstr "" #: src/main/extractor_metatypes.c:373 #, fuzzy msgid "contributing writer" msgstr "Beiträger" #: src/main/extractor_metatypes.c:374 src/main/extractor_metatypes.c:375 msgid "product version" msgstr "Produktversion" #: src/main/extractor_metatypes.c:376 msgid "contributor" msgstr "Beiträger" #: src/main/extractor_metatypes.c:377 #, fuzzy msgid "name of a contributor" msgstr "Beiträger" #: src/main/extractor_metatypes.c:379 #, fuzzy msgid "movie director" msgstr "Direktor" #: src/main/extractor_metatypes.c:380 msgid "name of the director" msgstr "" #: src/main/extractor_metatypes.c:381 msgid "network" msgstr "" #: src/main/extractor_metatypes.c:382 msgid "name of the broadcasting network or station" msgstr "" #: src/main/extractor_metatypes.c:383 msgid "show" msgstr "" #: src/main/extractor_metatypes.c:384 msgid "name of the show" msgstr "" #: src/main/extractor_metatypes.c:385 #, fuzzy msgid "chapter name" msgstr "Kapitel" #: src/main/extractor_metatypes.c:386 msgid "name of the chapter" msgstr "" #: src/main/extractor_metatypes.c:387 msgid "song count" msgstr "Liederanzahl" #: src/main/extractor_metatypes.c:388 msgid "number of songs" msgstr "" #: src/main/extractor_metatypes.c:390 msgid "starting song" msgstr "Anfangssong" #: src/main/extractor_metatypes.c:391 msgid "number of the first song to play" msgstr "" #: src/main/extractor_metatypes.c:392 msgid "play counter" msgstr "Abspielzähler" #: src/main/extractor_metatypes.c:393 msgid "number of times the media has been played" msgstr "" #: src/main/extractor_metatypes.c:394 msgid "conductor" msgstr "Veranstalter" #: src/main/extractor_metatypes.c:395 #, fuzzy msgid "name of the conductor" msgstr "Veranstalter" #: src/main/extractor_metatypes.c:396 #, fuzzy msgid "interpretation" msgstr "Interpret" #: src/main/extractor_metatypes.c:397 msgid "" "information about the people behind interpretations of an existing piece" msgstr "" #: src/main/extractor_metatypes.c:398 msgid "composer" msgstr "" #: src/main/extractor_metatypes.c:399 msgid "name of the composer" msgstr "" #: src/main/extractor_metatypes.c:401 src/main/extractor_metatypes.c:402 msgid "beats per minute" msgstr "" #: src/main/extractor_metatypes.c:403 msgid "encoded by" msgstr "Codiert von" #: src/main/extractor_metatypes.c:404 msgid "name of person or organization that encoded the file" msgstr "" #: src/main/extractor_metatypes.c:405 msgid "original title" msgstr "" #: src/main/extractor_metatypes.c:406 msgid "title of the original work" msgstr "" #: src/main/extractor_metatypes.c:407 msgid "original artist" msgstr "" #: src/main/extractor_metatypes.c:408 msgid "name of the original artist" msgstr "" #: src/main/extractor_metatypes.c:409 msgid "original writer" msgstr "" #: src/main/extractor_metatypes.c:410 msgid "name of the original lyricist or writer" msgstr "" #: src/main/extractor_metatypes.c:412 msgid "original release year" msgstr "" #: src/main/extractor_metatypes.c:413 msgid "year of the original release" msgstr "" #: src/main/extractor_metatypes.c:414 msgid "original performer" msgstr "" #: src/main/extractor_metatypes.c:415 msgid "name of the original performer" msgstr "" #: src/main/extractor_metatypes.c:416 msgid "lyrics" msgstr "Liedtexte" #: src/main/extractor_metatypes.c:417 msgid "lyrics of the song or text description of vocal activities" msgstr "" #: src/main/extractor_metatypes.c:418 #, fuzzy msgid "popularity" msgstr "Beliebtheit" #: src/main/extractor_metatypes.c:419 msgid "information about the file's popularity" msgstr "" #: src/main/extractor_metatypes.c:420 #, fuzzy msgid "licensee" msgstr "Lizenz" #: src/main/extractor_metatypes.c:421 msgid "name of the owner or licensee of the file" msgstr "" #: src/main/extractor_metatypes.c:423 #, fuzzy msgid "musician credit list" msgstr "Musikerehrungen" #: src/main/extractor_metatypes.c:424 msgid "names of contributing musicians" msgstr "" #: src/main/extractor_metatypes.c:425 msgid "mood" msgstr "Stimmung" #: src/main/extractor_metatypes.c:426 msgid "keywords reflecting the mood of the piece" msgstr "" #: src/main/extractor_metatypes.c:427 #, fuzzy msgid "subtitle" msgstr "Titel" #: src/main/extractor_metatypes.c:428 msgid "subtitle of this part" msgstr "" #: src/main/extractor_metatypes.c:429 #, fuzzy msgid "display type" msgstr "Medien-Art" #: src/main/extractor_metatypes.c:430 msgid "what rendering method should be used to display this item" msgstr "" #: src/main/extractor_metatypes.c:431 #, fuzzy msgid "full data" msgstr "vollständiger Name" #: src/main/extractor_metatypes.c:432 msgid "" "entry that contains the full, original binary data (not really meta data)" msgstr "" #: src/main/extractor_metatypes.c:434 #, fuzzy msgid "rating" msgstr "Latin" #: src/main/extractor_metatypes.c:435 msgid "rating of the content" msgstr "" #: src/main/extractor_metatypes.c:436 src/main/extractor_metatypes.c:437 msgid "organization" msgstr "Organisation" #: src/main/extractor_metatypes.c:438 src/main/extractor_metatypes.c:439 msgid "ripper" msgstr "Ripper" #: src/main/extractor_metatypes.c:440 src/main/extractor_metatypes.c:441 msgid "producer" msgstr "Hersteller" #: src/main/extractor_metatypes.c:442 msgid "group" msgstr "Gruppe" #: src/main/extractor_metatypes.c:443 msgid "name of the group or band" msgstr "" #: src/main/extractor_metatypes.c:445 #, fuzzy msgid "original filename" msgstr "Dateiname" #: src/main/extractor_metatypes.c:446 msgid "name of the original file (reserved for GNUnet)" msgstr "" #: src/main/extractor_metatypes.c:447 #, fuzzy msgid "disc count" msgstr "Wortanzahl" #: src/main/extractor_metatypes.c:448 msgid "count of discs inside collection this disc belongs to" msgstr "" #: src/main/extractor_metatypes.c:449 msgid "codec" msgstr "" #: src/main/extractor_metatypes.c:450 msgid "codec the data is stored in" msgstr "" #: src/main/extractor_metatypes.c:451 msgid "video codec" msgstr "" #: src/main/extractor_metatypes.c:452 msgid "codec the video data is stored in" msgstr "" #: src/main/extractor_metatypes.c:453 msgid "audio codec" msgstr "" #: src/main/extractor_metatypes.c:454 msgid "codec the audio data is stored in" msgstr "" #: src/main/extractor_metatypes.c:456 msgid "subtitle codec" msgstr "" #: src/main/extractor_metatypes.c:457 msgid "codec/format the subtitle data is stored in" msgstr "" #: src/main/extractor_metatypes.c:458 msgid "container format" msgstr "" #: src/main/extractor_metatypes.c:459 msgid "container format the data is stored in" msgstr "" #: src/main/extractor_metatypes.c:460 msgid "bitrate" msgstr "" #: src/main/extractor_metatypes.c:461 msgid "exact or average bitrate in bits/s" msgstr "" #: src/main/extractor_metatypes.c:462 msgid "nominal bitrate" msgstr "" #: src/main/extractor_metatypes.c:463 msgid "" "nominal bitrate in bits/s. The actual bitrate might be different from this " "target bitrate." msgstr "" #: src/main/extractor_metatypes.c:464 msgid "minimum bitrate" msgstr "" #: src/main/extractor_metatypes.c:465 msgid "minimum bitrate in bits/s" msgstr "" #: src/main/extractor_metatypes.c:467 msgid "maximum bitrate" msgstr "" #: src/main/extractor_metatypes.c:468 msgid "maximum bitrate in bits/s" msgstr "" #: src/main/extractor_metatypes.c:469 #, fuzzy msgid "serial" msgstr "Industriell" #: src/main/extractor_metatypes.c:470 msgid "serial number of track" msgstr "" #: src/main/extractor_metatypes.c:471 #, fuzzy msgid "encoder" msgstr "Codiert von" #: src/main/extractor_metatypes.c:472 msgid "encoder used to encode this stream" msgstr "" #: src/main/extractor_metatypes.c:473 #, fuzzy msgid "encoder version" msgstr "Formatversion" #: src/main/extractor_metatypes.c:474 msgid "version of the encoder used to encode this stream" msgstr "" #: src/main/extractor_metatypes.c:475 #, fuzzy msgid "track gain" msgstr "Nummer des Stücks" #: src/main/extractor_metatypes.c:476 msgid "track gain in db" msgstr "" #: src/main/extractor_metatypes.c:478 #, fuzzy msgid "track peak" msgstr "Nummer des Stücks" #: src/main/extractor_metatypes.c:479 msgid "peak of the track" msgstr "" #: src/main/extractor_metatypes.c:480 #, fuzzy msgid "album gain" msgstr "Album" #: src/main/extractor_metatypes.c:481 msgid "album gain in db" msgstr "" #: src/main/extractor_metatypes.c:482 #, fuzzy msgid "album peak" msgstr "Album" #: src/main/extractor_metatypes.c:483 msgid "peak of the album" msgstr "" #: src/main/extractor_metatypes.c:484 msgid "reference level" msgstr "" #: src/main/extractor_metatypes.c:485 msgid "reference level of track and album gain values" msgstr "" #: src/main/extractor_metatypes.c:486 #, fuzzy msgid "location name" msgstr "Ort" #: src/main/extractor_metatypes.c:487 msgid "" "human readable descriptive location of where the media has been recorded or " "produced" msgstr "" #: src/main/extractor_metatypes.c:489 #, fuzzy msgid "location elevation" msgstr "Ort" #: src/main/extractor_metatypes.c:490 msgid "" "geo elevation of where the media has been recorded or produced in meters " "according to WGS84 (zero is average sea level)" msgstr "" #: src/main/extractor_metatypes.c:491 msgid "location horizontal error" msgstr "" #: src/main/extractor_metatypes.c:492 msgid "represents the expected error on the horizontal positioning in meters" msgstr "" #: src/main/extractor_metatypes.c:493 msgid "location movement speed" msgstr "" #: src/main/extractor_metatypes.c:494 msgid "" "speed of the capturing device when performing the capture. Represented in m/s" msgstr "" #: src/main/extractor_metatypes.c:495 msgid "location movement direction" msgstr "" #: src/main/extractor_metatypes.c:496 msgid "" "indicates the movement direction of the device performing the capture of a " "media. It is represented as degrees in floating point representation, 0 " "means the geographic north, and increases clockwise" msgstr "" #: src/main/extractor_metatypes.c:497 msgid "location capture direction" msgstr "" #: src/main/extractor_metatypes.c:498 msgid "" "indicates the direction the device is pointing to when capturing a media. It " "is represented as degrees in floating point representation, 0 means the " "geographic north, and increases clockwise" msgstr "" #: src/main/extractor_metatypes.c:500 #, fuzzy msgid "show episode number" msgstr "Nummer der Platte" #: src/main/extractor_metatypes.c:501 msgid "number of the episode within a season/show" msgstr "" #: src/main/extractor_metatypes.c:502 #, fuzzy msgid "show season number" msgstr "die Versionsnummer anzeigen" #: src/main/extractor_metatypes.c:503 msgid "number of the season of a show/series" msgstr "" #: src/main/extractor_metatypes.c:504 #, fuzzy msgid "grouping" msgstr "Gruppe" #: src/main/extractor_metatypes.c:505 msgid "" "groups together media that are related and spans multiple tracks. An example " "are multiple pieces of a concerto" msgstr "" #: src/main/extractor_metatypes.c:506 msgid "device manufacturer" msgstr "" #: src/main/extractor_metatypes.c:507 msgid "manufacturer of the device used to create the media" msgstr "" #: src/main/extractor_metatypes.c:508 #, fuzzy msgid "device model" msgstr "Kamera-Modell" #: src/main/extractor_metatypes.c:509 msgid "model of the device used to create the media" msgstr "" #: src/main/extractor_metatypes.c:511 #, fuzzy msgid "audio language" msgstr "Sprache" #: src/main/extractor_metatypes.c:512 msgid "language of the audio track" msgstr "" #: src/main/extractor_metatypes.c:513 msgid "channels" msgstr "" #: src/main/extractor_metatypes.c:514 msgid "number of audio channels" msgstr "" #: src/main/extractor_metatypes.c:515 msgid "sample rate" msgstr "" #: src/main/extractor_metatypes.c:516 msgid "sample rate of the audio track" msgstr "" #: src/main/extractor_metatypes.c:517 msgid "audio depth" msgstr "" #: src/main/extractor_metatypes.c:518 msgid "number of bits per audio sample" msgstr "" #: src/main/extractor_metatypes.c:519 msgid "audio bitrate" msgstr "" #: src/main/extractor_metatypes.c:520 msgid "bitrate of the audio track" msgstr "" #: src/main/extractor_metatypes.c:522 src/main/extractor_metatypes.c:523 msgid "maximum audio bitrate" msgstr "" #: src/main/extractor_metatypes.c:524 msgid "video dimensions" msgstr "" #: src/main/extractor_metatypes.c:525 msgid "width and height of the video track (WxH)" msgstr "" #: src/main/extractor_metatypes.c:526 msgid "video depth" msgstr "" #: src/main/extractor_metatypes.c:527 msgid "numbers of bits per pixel" msgstr "" #: src/main/extractor_metatypes.c:528 msgid "frame rate" msgstr "" #: src/main/extractor_metatypes.c:529 msgid "number of frames per second (as D/N or floating point)" msgstr "" #: src/main/extractor_metatypes.c:530 msgid "pixel aspect ratio" msgstr "" #: src/main/extractor_metatypes.c:531 msgid "pixel aspect ratio (as D/N)" msgstr "" #: src/main/extractor_metatypes.c:533 src/main/extractor_metatypes.c:534 msgid "video bitrate" msgstr "" #: src/main/extractor_metatypes.c:535 src/main/extractor_metatypes.c:536 msgid "maximum video bitrate" msgstr "" #: src/main/extractor_metatypes.c:537 #, fuzzy msgid "subtitle language" msgstr "Sprache" #: src/main/extractor_metatypes.c:538 msgid "language of the subtitle track" msgstr "" #: src/main/extractor_metatypes.c:539 #, fuzzy msgid "video language" msgstr "Sprache" #: src/main/extractor_metatypes.c:540 msgid "language of the video track" msgstr "" #: src/main/extractor_metatypes.c:541 msgid "table of contents" msgstr "" #: src/main/extractor_metatypes.c:542 msgid "chapters, contents or bookmarks (in xml format)" msgstr "" #: src/main/extractor_metatypes.c:544 #, fuzzy msgid "video duration" msgstr "Dauer" #: src/main/extractor_metatypes.c:545 msgid "duration of a video stream" msgstr "" #: src/main/extractor_metatypes.c:546 #, fuzzy msgid "audio duration" msgstr "Dauer" #: src/main/extractor_metatypes.c:547 msgid "duration of an audio stream" msgstr "" #: src/main/extractor_metatypes.c:548 #, fuzzy msgid "subtitle duration" msgstr "Dauer" #: src/main/extractor_metatypes.c:549 msgid "duration of a subtitle stream" msgstr "" #: src/main/extractor_metatypes.c:551 msgid "audio preview" msgstr "" #: src/main/extractor_metatypes.c:552 msgid "a preview of the file audio stream" msgstr "" #: src/main/extractor_metatypes.c:554 src/main/extractor_metatypes.c:555 msgid "last" msgstr "" #: src/main/getopt.c:684 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: Option »%s« ist mehrdeutig\n" #: src/main/getopt.c:709 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: Option »--%s« erwartet kein Argument\n" #: src/main/getopt.c:715 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: Option »%c%s« erwartet kein Argument\n" #: src/main/getopt.c:732 src/main/getopt.c:903 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: Option »%s« erwartet ein Argument\n" #: src/main/getopt.c:761 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: unbekannte Option »--%s«\n" #: src/main/getopt.c:765 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: unbekannte Option »%c%s«\n" #: src/main/getopt.c:791 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: unzulässige Option -- %c\n" #: src/main/getopt.c:793 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: ungültige Option -- %c\n" #: src/main/getopt.c:822 src/main/getopt.c:952 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: Option erwartet ein Argument -- %c\n" #: src/main/getopt.c:870 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: Option »-W %s« ist mehrdeutig\n" #: src/main/getopt.c:888 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: Option »-W %s« erwartet kein Argument\n" #: src/plugins/flac_extractor.c:322 #, c-format msgid "%u Hz, %u channels" msgstr "" #: src/plugins/man_extractor.c:215 msgid "Commands" msgstr "Befehle" #: src/plugins/man_extractor.c:219 msgid "System calls" msgstr "Systemaufrufe" #: src/plugins/man_extractor.c:223 msgid "Library calls" msgstr "Bibliotheksaufrufe" #: src/plugins/man_extractor.c:227 msgid "Special files" msgstr "Spezialdateien" #: src/plugins/man_extractor.c:231 msgid "File formats and conventions" msgstr "Dateiformate und -konventionen" #: src/plugins/man_extractor.c:235 msgid "Games" msgstr "Spiele" #: src/plugins/man_extractor.c:239 msgid "Conventions and miscellaneous" msgstr "Konventionen und Sonstiges" #: src/plugins/man_extractor.c:243 msgid "System management commands" msgstr "Befehle zur Systemkonfiguration" #: src/plugins/man_extractor.c:247 msgid "Kernel routines" msgstr "Kernelroutinen" #: src/plugins/ole2_extractor.c:387 msgid "No Proofing" msgstr "No Proofing" #: src/plugins/ole2_extractor.c:395 msgid "Traditional Chinese" msgstr "Traditional Chinese" #: src/plugins/ole2_extractor.c:397 msgid "Simplified Chinese" msgstr "Simplified Chinese" #: src/plugins/ole2_extractor.c:405 msgid "Swiss German" msgstr "Schweizerdeutsch" #: src/plugins/ole2_extractor.c:409 msgid "U.S. English" msgstr "U.S. Englisch" #: src/plugins/ole2_extractor.c:411 msgid "U.K. English" msgstr "Britsches Englisch" #: src/plugins/ole2_extractor.c:413 msgid "Australian English" msgstr "Australisches Englisch" #: src/plugins/ole2_extractor.c:415 msgid "Castilian Spanish" msgstr "" #: src/plugins/ole2_extractor.c:417 msgid "Mexican Spanish" msgstr "Mexikanisches Spanisch" #: src/plugins/ole2_extractor.c:423 msgid "Belgian French" msgstr "Belgisches Französisch" #: src/plugins/ole2_extractor.c:425 msgid "Canadian French" msgstr "Kanadisches Französisch" #: src/plugins/ole2_extractor.c:427 msgid "Swiss French" msgstr "Schweizer Französisch" #: src/plugins/ole2_extractor.c:437 msgid "Swiss Italian" msgstr "Schweizer Italienisch" #: src/plugins/ole2_extractor.c:445 msgid "Belgian Dutch" msgstr "Belgisches Holländisch" #: src/plugins/ole2_extractor.c:447 msgid "Norwegian Bokmal" msgstr "" #: src/plugins/ole2_extractor.c:457 msgid "Rhaeto-Romanic" msgstr "" #: src/plugins/ole2_extractor.c:463 msgid "Croato-Serbian (Latin)" msgstr "" #: src/plugins/ole2_extractor.c:465 msgid "Serbo-Croatian (Cyrillic)" msgstr "" #: src/plugins/ole2_extractor.c:493 msgid "Farsi" msgstr "" #: src/plugins/ole2_extractor.c:578 #, c-format msgid "Revision #%u: Author `%s' worked on `%s'" msgstr "" #: src/plugins/riff_extractor.c:145 #, c-format msgid "codec: %s, %u fps, %u ms" msgstr "Codec: %s, %u fps, %u ms" #: src/plugins/wav_extractor.c:120 msgid "mono" msgstr "Mono" #: src/plugins/wav_extractor.c:120 msgid "stereo" msgstr "Stereo" #~ msgid "do not remove any duplicates" #~ msgstr "doppelte Einträge nicht entfernen" #~ msgid "" #~ "use the generic plaintext extractor for the language with the 2-letter " #~ "language code LANG" #~ msgstr "" #~ "generischen Klartext-extractor für die Sprache mit dem 2-Buchstabenkürzel " #~ "LANG verwenden" #~ msgid "remove duplicates only if types match" #~ msgstr "doppelte Einträge nur entfernen, wenn die Art übereinstimmt" #~ msgid "use the filename as a keyword (loads filename-extractor plugin)" #~ msgstr "" #~ "Dateinamen als Schlüsselwort verwenden (filename-extractor-Erweiterung " #~ "wird geladen)" #~ msgid "compute hash using the given ALGORITHM (currently sha1 or md5)" #~ msgstr "" #~ "Hash gemäß dem angegebenen ALGORITHMUS errechnen (z.Zt. »sha1« oder »md5«)" #~ msgid "remove duplicates even if keyword types do not match" #~ msgstr "doppelte Einträge auch entfernen, wenn die Art nicht übereinstimmt" #~ msgid "use keyword splitting (loads split-extractor plugin)" #~ msgstr "Schlüsselwörter splitten (split-extractor-Erweiterung wird geladen)" #~ msgid "INVALID TYPE - %s\n" #~ msgstr "UNGÜLTIGE ART - %s\n" #~ msgid "date" #~ msgstr "Datum" #~ msgid "relation" #~ msgstr "Bezug" #~ msgid "coverage" #~ msgstr "Geltungsbereich" #~ msgid "translated" #~ msgstr "übersetzt" #~ msgid "used fonts" #~ msgstr "verwendete Schriften" #~ msgid "created for" #~ msgstr "erstellt für" #~ msgid "release" #~ msgstr "Release" #~ msgid "size" #~ msgstr "Größe" #~ msgid "category" #~ msgstr "Kategorie" #~ msgid "owner" #~ msgstr "Besitzer" #~ msgid "binary thumbnail data" #~ msgstr "binäre Vorschaudaten" #~ msgid "focal length (35mm equivalent)" #~ msgstr "Brennweite (35mm Equivalent)" #~ msgid "split" #~ msgstr "Teilung" #~ msgid "security" #~ msgstr "Sicherheit" #~ msgid "lower case conversion" #~ msgstr "Kleinschreibung" #~ msgid "generator" #~ msgstr "Erzeuger" #~ msgid "scale" #~ msgstr "Skalierung" #~ msgid "year" #~ msgstr "Jahr" #~ msgid "link" #~ msgstr "Verweis" #~ msgid "music CD identifier" #~ msgstr "Musik CD Bezeichner" #~ msgid "time" #~ msgstr "Zeit" #~ msgid "" #~ "Resolving symbol `%s' in library `%s' failed, so I tried `%s', but that " #~ "failed also. Errors are: `%s' and `%s'.\n" #~ msgstr "" #~ "Das Auflösen von Symbol `%s' in Bibliothek `%s' ist fehlgeschlagen, " #~ "deshalb wurde `%s' versucht, was aber auch fehlschlug. Fehler sind: `%s' " #~ "und `%s'.\n" #~ msgid "Unloading plugin `%s' failed!\n" #~ msgstr "Entladen des »%s«-Plugins ist fehlgeschlagen!\n" #~ msgid "Bytes" #~ msgstr "Bytes" #~ msgid "%ux%u dots per cm" #~ msgstr "%ux%u Punkte je Zentimeter" #~ msgid "%ux%u dots per inch?" #~ msgstr "%ux%u Punkte je Zentimeter?" #~ msgid "Blues" #~ msgstr "Blues" #~ msgid "Classic Rock" #~ msgstr "Klassischer Rock" #~ msgid "Dance" #~ msgstr "Dance" #~ msgid "Disco" #~ msgstr "Disco" #~ msgid "Funk" #~ msgstr "Funk" #~ msgid "Grunge" #~ msgstr "Grunge" #~ msgid "Hip-Hop" #~ msgstr "Hip-Hop" #~ msgid "Jazz" #~ msgstr "Jazz" #~ msgid "Metal" #~ msgstr "Metal" #~ msgid "New Age" #~ msgstr "New Age" #~ msgid "Oldies" #~ msgstr "Oldies" #~ msgid "Other" #~ msgstr "Sonstiges" #~ msgid "Pop" #~ msgstr "Pop" #~ msgid "R&B" #~ msgstr "R&B" #~ msgid "Rap" #~ msgstr "Rap" #~ msgid "Reggae" #~ msgstr "Reggae" #~ msgid "Rock" #~ msgstr "Rock" #~ msgid "Techno" #~ msgstr "Techno" #~ msgid "Alternative" #~ msgstr "Alternative" #~ msgid "Ska" #~ msgstr "Ska" #~ msgid "Death Metal" #~ msgstr "Death Metal" #~ msgid "Pranks" #~ msgstr "Pranks" #~ msgid "Soundtrack" #~ msgstr "Filmmusik (Soundtrack)" #~ msgid "Euro-Techno" #~ msgstr "Euro-Techno" #~ msgid "Ambient" #~ msgstr "Ambient" #~ msgid "Trip-Hop" #~ msgstr "Trip-Hop" #~ msgid "Vocal" #~ msgstr "Vokal" #~ msgid "Jazz+Funk" #~ msgstr "Jazz+Funk" #~ msgid "Fusion" #~ msgstr "Fusion" #~ msgid "Trance" #~ msgstr "Trance" #~ msgid "Classical" #~ msgstr "Klassik" #~ msgid "Instrumental" #~ msgstr "Instrumental" #~ msgid "Acid" #~ msgstr "Acid" #~ msgid "House" #~ msgstr "House" #~ msgid "Game" #~ msgstr "Spiel" #~ msgid "Sound Clip" #~ msgstr "Soundclip" #~ msgid "Gospel" #~ msgstr "Gospel" #~ msgid "Noise" #~ msgstr "Noise" #~ msgid "Alt. Rock" #~ msgstr "Alt. Rock" #~ msgid "Bass" #~ msgstr "Bass" #~ msgid "Soul" #~ msgstr "Soul" #~ msgid "Punk" #~ msgstr "Punk" #~ msgid "Space" #~ msgstr "Space" #~ msgid "Meditative" #~ msgstr "Meditative" #~ msgid "Instrumental Pop" #~ msgstr "Instrumental Pop" #~ msgid "Instrumental Rock" #~ msgstr "Instrumental Rock" #~ msgid "Ethnic" #~ msgstr "Ethnic" #~ msgid "Gothic" #~ msgstr "Gothic" #~ msgid "Darkwave" #~ msgstr "Darkwave" #~ msgid "Techno-Industrial" #~ msgstr "Techno-Industrial" #~ msgid "Electronic" #~ msgstr "Electronic" #~ msgid "Pop-Folk" #~ msgstr "Pop-Folk" #~ msgid "Eurodance" #~ msgstr "Eurodance" #~ msgid "Dream" #~ msgstr "Dream" #~ msgid "Southern Rock" #~ msgstr "Southern Rock" #~ msgid "Comedy" #~ msgstr "Comedy" #~ msgid "Cult" #~ msgstr "Cult" #~ msgid "Gangsta Rap" #~ msgstr "Gangsta Rap" #~ msgid "Top 40" #~ msgstr "Top 40" #~ msgid "Christian Rap" #~ msgstr "Christian Rap" #~ msgid "Pop/Funk" #~ msgstr "Pop/Funk" #~ msgid "Jungle" #~ msgstr "Jungle" #~ msgid "Native American" #~ msgstr "Native American" #~ msgid "Cabaret" #~ msgstr "Cabaret" #~ msgid "New Wave" #~ msgstr "New Wave" #~ msgid "Psychedelic" #~ msgstr "Psychedelic" #~ msgid "Rave" #~ msgstr "Rave" #~ msgid "Showtunes" #~ msgstr "Showtunes" #~ msgid "Trailer" #~ msgstr "Trailer" #~ msgid "Lo-Fi" #~ msgstr "Lo-Fi" #~ msgid "Tribal" #~ msgstr "Tribal" #~ msgid "Acid Punk" #~ msgstr "Acid Punk" #~ msgid "Acid Jazz" #~ msgstr "Acid Jazz" #~ msgid "Polka" #~ msgstr "Polka" #~ msgid "Retro" #~ msgstr "Retro" #~ msgid "Musical" #~ msgstr "Musical" #~ msgid "Rock & Roll" #~ msgstr "Rock & Roll" #~ msgid "Hard Rock" #~ msgstr "Hard Rock" #~ msgid "Folk" #~ msgstr "Folk" #~ msgid "Folk/Rock" #~ msgstr "Folk/Rock" #~ msgid "National Folk" #~ msgstr "National Folk" #~ msgid "Swing" #~ msgstr "Swing" #~ msgid "Fast-Fusion" #~ msgstr "Fast-Fusion" #~ msgid "Bebob" #~ msgstr "Bebob" #~ msgid "Revival" #~ msgstr "Revival" #~ msgid "Celtic" #~ msgstr "Celtic" #~ msgid "Bluegrass" #~ msgstr "Bluegrass" #~ msgid "Avantgarde" #~ msgstr "Avantgarde" #~ msgid "Gothic Rock" #~ msgstr "Gothic Rock" #~ msgid "Progressive Rock" #~ msgstr "Progressive Rock" #~ msgid "Psychedelic Rock" #~ msgstr "Psychedelic Rock" #~ msgid "Symphonic Rock" #~ msgstr "Symphonic Rock" #~ msgid "Slow Rock" #~ msgstr "Slow Rock" #~ msgid "Big Band" #~ msgstr "Big Band" #~ msgid "Chorus" #~ msgstr "Chor" #~ msgid "Easy Listening" #~ msgstr "Easy Listening" #~ msgid "Acoustic" #~ msgstr "Acoustic" #~ msgid "Humour" #~ msgstr "Humor" #~ msgid "Speech" #~ msgstr "Sprache" #~ msgid "Chanson" #~ msgstr "Chanson" #~ msgid "Opera" #~ msgstr "Oper" #~ msgid "Chamber Music" #~ msgstr "Kammermusik" #~ msgid "Sonata" #~ msgstr "Sonate" #~ msgid "Symphony" #~ msgstr "Symphonie" #~ msgid "Booty Bass" #~ msgstr "Booty Bass" #~ msgid "Primus" #~ msgstr "Primus" #~ msgid "Porn Groove" #~ msgstr "Porn Groove" #~ msgid "Satire" #~ msgstr "Satire" #~ msgid "Slow Jam" #~ msgstr "Slow Jam" #~ msgid "Club" #~ msgstr "Club" #~ msgid "Tango" #~ msgstr "Tango" #~ msgid "Samba" #~ msgstr "Samba" #~ msgid "Folklore" #~ msgstr "Folklore" #~ msgid "Ballad" #~ msgstr "Ballad" #~ msgid "Power Ballad" #~ msgstr "Power Ballad" #~ msgid "Rhythmic Soul" #~ msgstr "Rhythmic Soul" #~ msgid "Freestyle" #~ msgstr "Freestyle" #~ msgid "Duet" #~ msgstr "Duet" #~ msgid "Punk Rock" #~ msgstr "Punk Rock" #~ msgid "Drum Solo" #~ msgstr "Drum Solo" #~ msgid "A Cappella" #~ msgstr "A cappella" #~ msgid "Euro-House" #~ msgstr "Euro-House" #~ msgid "Dance Hall" #~ msgstr "Dance Hall" #~ msgid "Goa" #~ msgstr "Goa" #~ msgid "Drum & Bass" #~ msgstr "Drum & Bass" #~ msgid "Club-House" #~ msgstr "Club-House" #~ msgid "Hardcore" #~ msgstr "Hardcore" #~ msgid "Terror" #~ msgstr "Terror" #~ msgid "Indie" #~ msgstr "Indie" #~ msgid "BritPop" #~ msgstr "BritPop" #~ msgid "Negerpunk" #~ msgstr "Negerpunk" #~ msgid "Polsk Punk" #~ msgstr "Polsk Punk" #~ msgid "Beat" #~ msgstr "Beat" #~ msgid "Christian Gangsta Rap" #~ msgstr "Christian Gangsta Rap" #~ msgid "Heavy Metal" #~ msgstr "Heavy Metal" #~ msgid "Black Metal" #~ msgstr "Black Metal" #~ msgid "Crossover" #~ msgstr "Crossover" #~ msgid "Contemporary Christian" #~ msgstr "Contemporary Christian" #~ msgid "Christian Rock" #~ msgstr "Christlicher Rock" #~ msgid "Merengue" #~ msgstr "Merengue" #~ msgid "Salsa" #~ msgstr "Salsa" #~ msgid "Thrash Metal" #~ msgstr "Thrash Metal" #~ msgid "Anime" #~ msgstr "Anime" #~ msgid "JPop" #~ msgstr "JPop" #~ msgid "Synthpop" #~ msgstr "Synthpop" #~ msgid "(variable bps)" #~ msgstr "(variable BPS)" #~ msgid "" #~ "Please provide the name of the language you are building\n" #~ "a dictionary for. For example:\n" #~ msgstr "" #~ "Bitte geben Sie den Namen der Sprache an, für die Sie ein Wörterbuch\n" #~ "erstellen. Zum Beispiel:\n" #~ msgid "Error opening file `%s': %s\n" #~ msgstr "Fehler beim Öffnen der Datei »%s«: %s\n" #~ msgid "" #~ "Error allocating: %s\n" #~ "." #~ msgstr "" #~ "Fehler beim Allokieren: %s\n" #~ "." #~ msgid "Increase ALLOCSIZE (in %s).\n" #~ msgstr "ALLOCSIZE vergrößern (in %s).\n" #~ msgid "Source RPM %d.%d" #~ msgstr "Quell-RPM %d.%d" #~ msgid "Binary RPM %d.%d" #~ msgstr "Binäres RPM %d.%d" #~ msgid "gigabytes" #~ msgstr "Gigabytes" #~ msgid "megabytes" #~ msgstr "Megabytes" #~ msgid "kilobytes" #~ msgstr "Kilobytes" #~ msgid "Fatal: could not allocate (%s at %s:%d).\n" #~ msgstr "Fatal: Allokieren nicht möglich (%s bei %s:%d).\n" libextractor-1.3/po/boldquot.sed0000644000175000017500000000033111260753602013743 00000000000000s/"\([^"]*\)"/“\1”/g s/`\([^`']*\)'/‘\1’/g s/ '\([^`']*\)' / ‘\1’ /g s/ '\([^`']*\)'$/ ‘\1’/g s/^'\([^`']*\)' /‘\1’ /g s/“”/""/g s/“/“/g s/”/”/g s/‘/‘/g s/’/’/g libextractor-1.3/po/nl.po0000644000175000017500000020025312255661612012377 00000000000000# Dutch translations for libextractor. # Copyright (C) 2013 Free Software Foundation, Inc. # This file is distributed under the same license as the libextractor package. # # Benno Schulenberg , 2008, 2013. # Erwin Poeze , 2009. msgid "" msgstr "" "Project-Id-Version: libextractor-1.0.0-pre1\n" "Report-Msgid-Bugs-To: libextractor@gnu.org\n" "POT-Creation-Date: 2013-12-22 23:11+0100\n" "PO-Revision-Date: 2013-08-21 22:41+0200\n" "Last-Translator: Benno Schulenberg \n" "Language-Team: Dutch \n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.0\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: src/main/extract.c:132 #, c-format msgid "" "Usage: %s\n" "%s\n" "\n" msgstr "" "Gebruik: %s\n" "%s\n" "\n" #: src/main/extract.c:135 #, c-format msgid "" "Arguments mandatory for long options are also mandatory for short options.\n" msgstr "" "Argumenten die verplicht zijn voor lange opties zijn dat ook voor korte " "opties.\n" #: src/main/extract.c:217 msgid "print output in bibtex format" msgstr "uitvoer in bibtex-indeling produceren" #: src/main/extract.c:219 msgid "produce grep-friendly output (all results on one line per file)" msgstr "" "uitvoer produceren die makkelijk te greppen is (alle resultaten op één regel " "per bestand)" #: src/main/extract.c:221 msgid "print this help" msgstr "deze hulptekst tonen" #: src/main/extract.c:223 msgid "run plugins in-process (simplifies debugging)" msgstr "plugins in-proces draaien (vereenvoudigt het debuggen)" #: src/main/extract.c:225 msgid "read data from file into memory and extract from memory" msgstr "alle bestandsdata inlezen in geheugen en daar extraheren" #: src/main/extract.c:227 msgid "load an extractor plugin named LIBRARY" msgstr "extractor-plugin genaamd 'LIBRARY' laden" #: src/main/extract.c:229 msgid "list all keyword types" msgstr "alle sleutelwoordtypes opsommen" #: src/main/extract.c:231 msgid "do not use the default set of extractor plugins" msgstr "de standaardset extractor-plugins niet gebruiken" #: src/main/extract.c:233 msgid "print only keywords of the given TYPE (use -L to get a list)" msgstr "" "alleen sleutelwoorden van dit TYPE tonen (gebruik '-L' voor een overzicht)" #: src/main/extract.c:235 msgid "print the version number" msgstr "programmaversie tonen" #: src/main/extract.c:237 msgid "be verbose" msgstr "gedetailleerde uitvoer produceren" #: src/main/extract.c:239 msgid "do not print keywords of the given TYPE" msgstr "sleutelwoorden van dit TYPE niet tonen" #: src/main/extract.c:242 msgid "extract [OPTIONS] [FILENAME]*" msgstr "extract [OPTIES] [BESTANDSNAAM]*" #: src/main/extract.c:243 msgid "Extract metadata from files." msgstr "Leest metadata uit bestanden." #: src/main/extract.c:288 #, c-format msgid "Found by `%s' plugin:\n" msgstr "Gevonden door plugin '%s':\n" #: src/main/extract.c:291 src/main/extract.c:378 #: src/main/extractor_metatypes.c:145 src/main/extractor_print.c:86 #: src/main/extractor_print.c:96 msgid "unknown" msgstr "onbekend" #: src/main/extract.c:296 #, c-format msgid "%s - (unknown, %u bytes)\n" msgstr "%s - (onbekend, %u bytes)\n" #: src/main/extract.c:325 #, c-format msgid "%s - (binary, %u bytes)\n" msgstr "%s - (binair, %u bytes)\n" #: src/main/extract.c:809 src/main/extract.c:821 msgid "" "Illegal combination of options, cannot combine multiple styles of printing.\n" msgstr "" "Ongeldige combinatie van opties; kan meerdere printstijlen niet combineren.\n" #: src/main/extract.c:854 #, c-format msgid "You must specify an argument for the `%s' option (option ignored).\n" msgstr "Optie '%s' vereist een argument -- optie is genegeerd.\n" #: src/main/extract.c:923 msgid "Use --help to get a list of options.\n" msgstr "Gebruik '--help' voor een lijst met mogelijke opties.\n" #: src/main/extract.c:964 #, fuzzy msgid "% BiBTeX file\n" msgstr "%% BiBTeX-bestand\n" #: src/main/extract.c:972 #, c-format msgid "Keywords for file %s:\n" msgstr "Trefwoorden voor bestand %s:\n" #: src/main/extractor.c:676 #, c-format msgid "Initialization of plugin mechanism failed: %s!\n" msgstr "Initialisatie van plugin-mechanisme is mislukt: %s\n" #: src/main/extractor_metatypes.c:46 msgid "reserved" msgstr "gereserveerd" #: src/main/extractor_metatypes.c:47 msgid "reserved value, do not use" msgstr "gereserveerde waarde; niet gebruiken" #: src/main/extractor_metatypes.c:48 msgid "mimetype" msgstr "MIME-type" #: src/main/extractor_metatypes.c:49 msgid "mime type" msgstr "MIME-type" #: src/main/extractor_metatypes.c:50 msgid "embedded filename" msgstr "ingebedde bestandsnaam" #: src/main/extractor_metatypes.c:51 msgid "filename that was embedded (not necessarily the current filename)" msgstr "" "bestandsnaam die is ingebed (niet noodzakelijkerwijs de huidige bestandsnaam)" #: src/main/extractor_metatypes.c:52 msgid "comment" msgstr "opmerking" #: src/main/extractor_metatypes.c:53 msgid "comment about the content" msgstr "opmerking over de inhoud" #: src/main/extractor_metatypes.c:54 msgid "title" msgstr "titel" #: src/main/extractor_metatypes.c:55 msgid "title of the work" msgstr "titel van het werk" #: src/main/extractor_metatypes.c:57 msgid "book title" msgstr "boektitel" #: src/main/extractor_metatypes.c:58 msgid "title of the book containing the work" msgstr "titel van het boek dat het werk bevat" #: src/main/extractor_metatypes.c:59 msgid "book edition" msgstr "boekeditie" #: src/main/extractor_metatypes.c:60 msgid "edition of the book (or book containing the work)" msgstr "editie van het boek (of het boek dat het werk bevat)" #: src/main/extractor_metatypes.c:61 msgid "book chapter" msgstr "boekhoofdstuk" #: src/main/extractor_metatypes.c:62 msgid "chapter number" msgstr "hoofdstuknummer" #: src/main/extractor_metatypes.c:63 msgid "journal name" msgstr "tijdschriftnaam" #: src/main/extractor_metatypes.c:64 msgid "journal or magazine the work was published in" msgstr "tijdschrift of blad waar het werk in gepubliceerd werd" #: src/main/extractor_metatypes.c:65 msgid "journal volume" msgstr "tijdschriftvolumen" #: src/main/extractor_metatypes.c:66 msgid "volume of a journal or multi-volume book" msgstr "volumennummer van een tijdschrift of meerdelig boek" #: src/main/extractor_metatypes.c:68 msgid "journal number" msgstr "tijdschriftnummer" #: src/main/extractor_metatypes.c:69 msgid "number of a journal, magazine or tech-report" msgstr "nummer van een blad, tijdschrift of rapport" #: src/main/extractor_metatypes.c:70 msgid "page count" msgstr "aantal bladzijden" #: src/main/extractor_metatypes.c:71 msgid "total number of pages of the work" msgstr "totaal aantal pagina's van het werk" #: src/main/extractor_metatypes.c:72 msgid "page range" msgstr "paginabereik" #: src/main/extractor_metatypes.c:73 msgid "page numbers of the publication in the respective journal or book" msgstr "" "de paginanummers van de publicatie in het betreffende tijdschrift of boek" #: src/main/extractor_metatypes.c:74 msgid "author name" msgstr "auteursnaam" #: src/main/extractor_metatypes.c:75 msgid "name of the author(s)" msgstr "naam van de auteur(s)" #: src/main/extractor_metatypes.c:76 msgid "author email" msgstr "auteurs e-mailadres" #: src/main/extractor_metatypes.c:77 msgid "e-mail of the author(s)" msgstr "e-mailadres van de auteur(s)" #: src/main/extractor_metatypes.c:79 msgid "author institution" msgstr "auteurs instituut" #: src/main/extractor_metatypes.c:80 msgid "institution the author worked for" msgstr "instituut waar de auteur voor werkte" #: src/main/extractor_metatypes.c:81 msgid "publisher" msgstr "uitgever" #: src/main/extractor_metatypes.c:82 msgid "name of the publisher" msgstr "naam van de uitgever" #: src/main/extractor_metatypes.c:83 msgid "publisher's address" msgstr "uitgevers adres" #: src/main/extractor_metatypes.c:84 msgid "Address of the publisher (often only the city)" msgstr "adres van de uitgever (vaak alleen de stad)" #: src/main/extractor_metatypes.c:85 msgid "publishing institution" msgstr "uitgevend instituut" #: src/main/extractor_metatypes.c:86 msgid "" "institution that was involved in the publishing, but not necessarily the " "publisher" msgstr "" "instituut dat betrokken was bij de uitgave (niet noodzakelijkerwijs de " "uitgever)" #: src/main/extractor_metatypes.c:87 msgid "publication series" msgstr "uitgavereeks" #: src/main/extractor_metatypes.c:88 msgid "series of books the book was published in" msgstr "de boekenreeks waarin het boek uitgegeven werd" #: src/main/extractor_metatypes.c:90 msgid "publication type" msgstr "publicatiesoort" #: src/main/extractor_metatypes.c:91 msgid "type of the tech-report" msgstr "soort van het rapport" #: src/main/extractor_metatypes.c:92 msgid "publication year" msgstr "publicatiejaar" #: src/main/extractor_metatypes.c:93 msgid "year of publication (or, if unpublished, the year of creation)" msgstr "jaar van publicatie (of, indien ongepubliceerd, het jaar van creatie)" #: src/main/extractor_metatypes.c:94 msgid "publication month" msgstr "publicatiemaand" #: src/main/extractor_metatypes.c:95 msgid "month of publication (or, if unpublished, the month of creation)" msgstr "maand van publicatie (of, indien ongepubliceerd, de maand van creatie)" #: src/main/extractor_metatypes.c:96 msgid "publication day" msgstr "publicatiedag" #: src/main/extractor_metatypes.c:97 msgid "" "day of publication (or, if unpublished, the day of creation), relative to " "the given month" msgstr "" "dag van publicatie (of, indien ongepubliceerd, de dag van creatie), relatief " "ten opzichte van de gegeven maand" #: src/main/extractor_metatypes.c:98 msgid "publication date" msgstr "publicatiedatum" #: src/main/extractor_metatypes.c:99 msgid "date of publication (or, if unpublished, the date of creation)" msgstr "datum van publicatie (of, indien ongepubliceerd, de datum van creatie)" #: src/main/extractor_metatypes.c:101 msgid "bibtex eprint" msgstr "BibTeX-eprint" #: src/main/extractor_metatypes.c:102 msgid "specification of an electronic publication" msgstr "specificatie van een elektronische publicatie" #: src/main/extractor_metatypes.c:103 msgid "bibtex entry type" msgstr "BibTeX-itemsoort" #: src/main/extractor_metatypes.c:104 msgid "type of the publication for bibTeX bibliographies" msgstr "soort van publicatie volgens BibTeX-boekomschrijvingen" #: src/main/extractor_metatypes.c:105 msgid "language" msgstr "taal" #: src/main/extractor_metatypes.c:106 msgid "language the work uses" msgstr "de taal die het werk gebruikt" #: src/main/extractor_metatypes.c:107 #, fuzzy msgid "creation time" msgstr "creatietijd" #: src/main/extractor_metatypes.c:108 #, fuzzy msgid "time and date of creation" msgstr "tijd en datum van creatie" #: src/main/extractor_metatypes.c:109 msgid "URL" msgstr "URL" #: src/main/extractor_metatypes.c:110 #, fuzzy msgid "universal resource location (where the work is made available)" msgstr "webadres waar het werk beschikbaar is" #: src/main/extractor_metatypes.c:112 msgid "URI" msgstr "URI" #: src/main/extractor_metatypes.c:113 #, fuzzy msgid "universal resource identifier" msgstr "uniforme ID van informatiebron" #: src/main/extractor_metatypes.c:114 msgid "international standard recording code" msgstr "International Standard Recording Code" #: src/main/extractor_metatypes.c:115 msgid "ISRC number identifying the work" msgstr "ISRC-nummer dat het werk identificeert" #: src/main/extractor_metatypes.c:116 msgid "MD4" msgstr "MD4" #: src/main/extractor_metatypes.c:117 msgid "MD4 hash" msgstr "MD4-hash" #: src/main/extractor_metatypes.c:118 msgid "MD5" msgstr "MD5" #: src/main/extractor_metatypes.c:119 msgid "MD5 hash" msgstr "MD5-hash" #: src/main/extractor_metatypes.c:120 msgid "SHA-0" msgstr "SHA-0" #: src/main/extractor_metatypes.c:121 msgid "SHA-0 hash" msgstr "SHA-0-hash" #: src/main/extractor_metatypes.c:123 msgid "SHA-1" msgstr "SHA-1" #: src/main/extractor_metatypes.c:124 msgid "SHA-1 hash" msgstr "SHA-1-hash" #: src/main/extractor_metatypes.c:125 msgid "RipeMD160" msgstr "RipeMD160" #: src/main/extractor_metatypes.c:126 #, fuzzy msgid "RipeMD150 hash" msgstr "RipeMD150-hash" #: src/main/extractor_metatypes.c:127 src/main/extractor_metatypes.c:128 msgid "GPS latitude ref" msgstr "GPS-breedtereferentie" #: src/main/extractor_metatypes.c:129 src/main/extractor_metatypes.c:130 msgid "GPS latitude" msgstr "GPS-breedte" #: src/main/extractor_metatypes.c:131 src/main/extractor_metatypes.c:132 msgid "GPS longitude ref" msgstr "GPS-lengtereferentie" #: src/main/extractor_metatypes.c:134 src/main/extractor_metatypes.c:135 msgid "GPS longitude" msgstr "GPS-lengte" #: src/main/extractor_metatypes.c:136 msgid "city" msgstr "stad" #: src/main/extractor_metatypes.c:137 msgid "name of the city where the document originated" msgstr "naam van de stad waar het document z'n oorsprong vond" #: src/main/extractor_metatypes.c:138 msgid "sublocation" msgstr "sublocatie" #: src/main/extractor_metatypes.c:139 msgid "more specific location of the geographic origin" msgstr "meer precieze plaats van oorsprong" #: src/main/extractor_metatypes.c:140 msgid "country" msgstr "land" #: src/main/extractor_metatypes.c:141 msgid "name of the country where the document originated" msgstr "naam van het land waar het document z'n oorsprong vond" #: src/main/extractor_metatypes.c:142 msgid "country code" msgstr "landcode" #: src/main/extractor_metatypes.c:143 msgid "ISO 2-letter country code for the country of origin" msgstr "tweeletterige ISO-code van het oorsprongsland" #: src/main/extractor_metatypes.c:146 msgid "specifics are not known" msgstr "bijzonderheden zijn niet bekend" #: src/main/extractor_metatypes.c:147 src/main/extractor_metatypes.c:148 msgid "description" msgstr "omschrijving" #: src/main/extractor_metatypes.c:149 msgid "copyright" msgstr "copyright-houder" #: src/main/extractor_metatypes.c:150 msgid "Name of the entity holding the copyright" msgstr "naam van de entiteit die het copyright bezit" #: src/main/extractor_metatypes.c:151 msgid "rights" msgstr "rechten" #: src/main/extractor_metatypes.c:152 msgid "information about rights" msgstr "informatie over rechten" #: src/main/extractor_metatypes.c:153 src/main/extractor_metatypes.c:154 msgid "keywords" msgstr "trefwoorden" #: src/main/extractor_metatypes.c:156 src/main/extractor_metatypes.c:157 msgid "abstract" msgstr "samenvatting" #: src/main/extractor_metatypes.c:158 src/main/extractor_metatypes.c:159 msgid "summary" msgstr "overzicht" #: src/main/extractor_metatypes.c:160 msgid "subject" msgstr "onderwerp" #: src/main/extractor_metatypes.c:161 msgid "subject matter" msgstr "de onderwerpsmaterie" #: src/main/extractor_metatypes.c:162 src/main/extractor_metatypes.c:195 msgid "creator" msgstr "maker" #: src/main/extractor_metatypes.c:163 msgid "name of the person who created the document" msgstr "naam van de persoon die het document creëerde" #: src/main/extractor_metatypes.c:164 msgid "format" msgstr "indeling" #: src/main/extractor_metatypes.c:165 msgid "name of the document format" msgstr "naam van de indeling van het document" #: src/main/extractor_metatypes.c:167 msgid "format version" msgstr "indelingsversie" #: src/main/extractor_metatypes.c:168 msgid "version of the document format" msgstr "versie van de indeling van het document" #: src/main/extractor_metatypes.c:169 msgid "created by software" msgstr "door software gemaakt" #: src/main/extractor_metatypes.c:170 msgid "name of the software that created the document" msgstr "naam van het programma dat het document maakte" #: src/main/extractor_metatypes.c:171 msgid "unknown date" msgstr "onbekende datum" #: src/main/extractor_metatypes.c:172 msgid "" "ambiguous date (could specify creation time, modification time or access " "time)" msgstr "" "onduidelijke datum (zou creatiedatum, wijzigingsdatum of toegangsdatum " "kunnen zijn)" #: src/main/extractor_metatypes.c:173 msgid "creation date" msgstr "aanmaakdatum" #: src/main/extractor_metatypes.c:174 msgid "date the document was created" msgstr "datum dat het document aangemaakt werd" #: src/main/extractor_metatypes.c:175 msgid "modification date" msgstr "wijzigingsdatum" #: src/main/extractor_metatypes.c:176 #, fuzzy msgid "date the document was modified" msgstr "datum dat het document voor het laatst gewijzigd werd" #: src/main/extractor_metatypes.c:178 msgid "last printed" msgstr "laatst afgedrukt" #: src/main/extractor_metatypes.c:179 msgid "date the document was last printed" msgstr "datum dat het document voor het laatst geprint werd" #: src/main/extractor_metatypes.c:180 msgid "last saved by" msgstr "laatst opgeslagen door" #: src/main/extractor_metatypes.c:181 msgid "name of the user who saved the document last" msgstr "naam van de gebruiker die het document voor het laatst opsloeg" #: src/main/extractor_metatypes.c:182 msgid "total editing time" msgstr "totale bewerkingstijd" #: src/main/extractor_metatypes.c:183 msgid "time spent editing the document" msgstr "tijd die besteed werd aan het bewerken van het document" #: src/main/extractor_metatypes.c:184 msgid "editing cycles" msgstr "bewerkingscycli" #: src/main/extractor_metatypes.c:185 msgid "number of editing cycles" msgstr "aantal keren dat het document bewerkt werd" #: src/main/extractor_metatypes.c:186 msgid "modified by software" msgstr "door software bewerkt" #: src/main/extractor_metatypes.c:187 msgid "name of software making modifications" msgstr "naam van het programma dat het document bewerkte" #: src/main/extractor_metatypes.c:189 msgid "revision history" msgstr "revisiegeschiedenis" #: src/main/extractor_metatypes.c:190 msgid "information about the revision history" msgstr "informatie over de revisiegeschiedenis" #: src/main/extractor_metatypes.c:191 msgid "embedded file size" msgstr "ingebedde bestandsgrootte" #: src/main/extractor_metatypes.c:192 msgid "size of the contents of the container as embedded in the file" msgstr "grootte van de containerinhoud zoals ingebed in het bestand" #: src/main/extractor_metatypes.c:193 msgid "file type" msgstr "bestandstype" #: src/main/extractor_metatypes.c:194 msgid "standard Macintosh Finder file type information" msgstr "standaard Macintosh-Finder-bestandstype-informatie" #: src/main/extractor_metatypes.c:196 msgid "standard Macintosh Finder file creator information" msgstr "standaard Macintosh-Finder-bestandsaanmaker-informatie" #: src/main/extractor_metatypes.c:197 msgid "package name" msgstr "pakketnaam" #: src/main/extractor_metatypes.c:198 msgid "unique identifier for the package" msgstr "unieke naam voor het pakket" #: src/main/extractor_metatypes.c:200 msgid "package version" msgstr "pakketversie" #: src/main/extractor_metatypes.c:201 msgid "version of the software and its package" msgstr "versie van het programma en van zijn pakket" #: src/main/extractor_metatypes.c:202 msgid "section" msgstr "sectie" #: src/main/extractor_metatypes.c:203 msgid "category the software package belongs to" msgstr "categorie waar het softwarepakket toe behoort" #: src/main/extractor_metatypes.c:204 msgid "upload priority" msgstr "upload-prioriteit" #: src/main/extractor_metatypes.c:205 msgid "priority for promoting the release to production" msgstr "prioriteit voor het uitrollen van de uitgave" #: src/main/extractor_metatypes.c:206 msgid "dependencies" msgstr "afhankelijkheden" #: src/main/extractor_metatypes.c:207 msgid "packages this package depends upon" msgstr "pakketten waarvan dit pakket afhankelijk is" #: src/main/extractor_metatypes.c:208 msgid "conflicting packages" msgstr "conflicterende pakketten" #: src/main/extractor_metatypes.c:209 msgid "packages that cannot be installed with this package" msgstr "pakketten die niet samen met dit pakket geïnstalleerd kunnen zijn" #: src/main/extractor_metatypes.c:211 msgid "replaced packages" msgstr "vervangen pakketten" #: src/main/extractor_metatypes.c:212 msgid "packages made obsolete by this package" msgstr "pakketten die door dit pakket vervangen worden" #: src/main/extractor_metatypes.c:213 msgid "provides" msgstr "levert" #: src/main/extractor_metatypes.c:214 msgid "functionality provided by this package" msgstr "de functionaliteit die dit pakket levert" #: src/main/extractor_metatypes.c:215 msgid "recommendations" msgstr "aanbevelingen" #: src/main/extractor_metatypes.c:216 msgid "packages recommended for installation in conjunction with this package" msgstr "pakketten die aanbevolen worden om samen met dit pakket te installeren" #: src/main/extractor_metatypes.c:217 msgid "suggestions" msgstr "suggesties" #: src/main/extractor_metatypes.c:218 msgid "packages suggested for installation in conjunction with this package" msgstr "" "pakketten die gesuggereerd worden om samen met dit pakket te installeren" #: src/main/extractor_metatypes.c:219 msgid "maintainer" msgstr "onderhouder" #: src/main/extractor_metatypes.c:220 msgid "name of the maintainer" msgstr "naam van de pakketonderhouder" #: src/main/extractor_metatypes.c:222 msgid "installed size" msgstr "geïnstalleerde grootte" #: src/main/extractor_metatypes.c:223 msgid "space consumption after installation" msgstr "ruimte die na installatie ingenomen wordt" #: src/main/extractor_metatypes.c:224 src/main/extractor_metatypes.c:304 msgid "source" msgstr "bron" #: src/main/extractor_metatypes.c:225 msgid "original source code" msgstr "originele broncode" #: src/main/extractor_metatypes.c:226 msgid "is essential" msgstr "is essentieel" #: src/main/extractor_metatypes.c:227 msgid "package is marked as essential" msgstr "pakket is gemarkeerd als essentieel" #: src/main/extractor_metatypes.c:228 msgid "target architecture" msgstr "doelarchitectuur" #: src/main/extractor_metatypes.c:229 msgid "hardware architecture the contents can be used for" msgstr "hardware-architectuur waarvoor de inhoud gebruikt kan worden" #: src/main/extractor_metatypes.c:230 msgid "pre-dependency" msgstr "voor-afhankelijkheid" #: src/main/extractor_metatypes.c:231 msgid "dependency that must be satisfied before installation" msgstr "afhankelijkheid waaraan voldaan moet worden vóór installatie" #: src/main/extractor_metatypes.c:233 msgid "license" msgstr "licentie" #: src/main/extractor_metatypes.c:234 msgid "applicable copyright license" msgstr "van toepassing zijnde copyright-licentie" #: src/main/extractor_metatypes.c:235 msgid "distribution" msgstr "distributie" #: src/main/extractor_metatypes.c:236 msgid "distribution the package is a part of" msgstr "distributie waarvan het pakket een onderdeel is" #: src/main/extractor_metatypes.c:237 msgid "build host" msgstr "build-host" #: src/main/extractor_metatypes.c:238 msgid "machine the package was build on" msgstr "machine waar het pakket op gemaakt werd" #: src/main/extractor_metatypes.c:239 msgid "vendor" msgstr "producent" #: src/main/extractor_metatypes.c:240 msgid "name of the software vendor" msgstr "naam van de software-producent" #: src/main/extractor_metatypes.c:241 msgid "target operating system" msgstr "doel-besturingssysteem" #: src/main/extractor_metatypes.c:242 msgid "operating system for which this package was made" msgstr "besturingssysteem waar het pakket voor gemaakt werd" #: src/main/extractor_metatypes.c:244 msgid "software version" msgstr "softwareversie" #: src/main/extractor_metatypes.c:245 msgid "version of the software contained in the file" msgstr "versie van de software in het bestand" #: src/main/extractor_metatypes.c:246 msgid "target platform" msgstr "doelplatform" #: src/main/extractor_metatypes.c:247 msgid "" "name of the architecture, operating system and distribution this package is " "for" msgstr "" "naam van architectuur, besturingssysteem en distributie waar het pakket voor " "bedoeld is" #: src/main/extractor_metatypes.c:248 msgid "resource type" msgstr "informatiebron-soort" #: src/main/extractor_metatypes.c:249 msgid "" "categorization of the nature of the resource that is more specific than the " "file format" msgstr "klassering van de bronsoort die preciezer is dan de bestandsindeling" #: src/main/extractor_metatypes.c:250 msgid "library search path" msgstr "bibliotheekzoekpad" #: src/main/extractor_metatypes.c:251 msgid "" "path in the file system to be considered when looking for required libraries" msgstr "" "paden in het bestandssysteem waarin naar bibliotheken gezocht moet worden" #: src/main/extractor_metatypes.c:252 msgid "library dependency" msgstr "bibliotheek-afhankelijkheid" #: src/main/extractor_metatypes.c:253 msgid "name of a library that this file depends on" msgstr "naam van een bibliotheek waarvan dit bestand afhankelijk is" #: src/main/extractor_metatypes.c:255 src/main/extractor_metatypes.c:256 msgid "camera make" msgstr "cameramerk" #: src/main/extractor_metatypes.c:257 src/main/extractor_metatypes.c:258 msgid "camera model" msgstr "cameramodel" #: src/main/extractor_metatypes.c:259 src/main/extractor_metatypes.c:260 msgid "exposure" msgstr "belichtingstijd" #: src/main/extractor_metatypes.c:261 src/main/extractor_metatypes.c:262 msgid "aperture" msgstr "diafragma" #: src/main/extractor_metatypes.c:263 src/main/extractor_metatypes.c:264 msgid "exposure bias" msgstr "belichtingsafwijking" #: src/main/extractor_metatypes.c:266 src/main/extractor_metatypes.c:267 msgid "flash" msgstr "flits" #: src/main/extractor_metatypes.c:268 src/main/extractor_metatypes.c:269 msgid "flash bias" msgstr "flitsafwijking" #: src/main/extractor_metatypes.c:270 src/main/extractor_metatypes.c:271 msgid "focal length" msgstr "brandpuntsafstand" #: src/main/extractor_metatypes.c:272 src/main/extractor_metatypes.c:273 msgid "focal length 35mm" msgstr "brandpuntsafstand 35mm" #: src/main/extractor_metatypes.c:274 src/main/extractor_metatypes.c:275 msgid "iso speed" msgstr "ISO-snelheid" #: src/main/extractor_metatypes.c:277 src/main/extractor_metatypes.c:278 msgid "exposure mode" msgstr "belichtingsmodus" #: src/main/extractor_metatypes.c:279 src/main/extractor_metatypes.c:280 msgid "metering mode" msgstr "meetmodus" #: src/main/extractor_metatypes.c:281 src/main/extractor_metatypes.c:282 msgid "macro mode" msgstr "macromodus" #: src/main/extractor_metatypes.c:283 src/main/extractor_metatypes.c:284 msgid "image quality" msgstr "beeldkwaliteit" #: src/main/extractor_metatypes.c:285 src/main/extractor_metatypes.c:286 msgid "white balance" msgstr "witbalans" #: src/main/extractor_metatypes.c:288 src/main/extractor_metatypes.c:289 msgid "orientation" msgstr "oriëntatie" #: src/main/extractor_metatypes.c:290 src/main/extractor_metatypes.c:291 msgid "magnification" msgstr "vergroting" #: src/main/extractor_metatypes.c:292 msgid "image dimensions" msgstr "afbeeldingsafmetingen" #: src/main/extractor_metatypes.c:293 msgid "size of the image in pixels (width times height)" msgstr "grootte van de afbeelding in pixels (breedte x hoogte)" #: src/main/extractor_metatypes.c:294 src/main/extractor_metatypes.c:295 msgid "produced by software" msgstr "door software geproduceerd" #: src/main/extractor_metatypes.c:299 msgid "thumbnail" msgstr "miniatuur" #: src/main/extractor_metatypes.c:300 msgid "smaller version of the image for previewing" msgstr "kleinere versie van de afbeelding voor voorvertoning" #: src/main/extractor_metatypes.c:302 msgid "image resolution" msgstr "afbeeldingsresolutie" #: src/main/extractor_metatypes.c:303 msgid "resolution in dots per inch" msgstr "resoltie in dots per inch" #: src/main/extractor_metatypes.c:305 #, fuzzy msgid "Originating entity" msgstr "entiteit van oorsprong" #: src/main/extractor_metatypes.c:306 msgid "character set" msgstr "tekenset" #: src/main/extractor_metatypes.c:307 msgid "character encoding used" msgstr "gebruikte tekencodering" #: src/main/extractor_metatypes.c:308 msgid "line count" msgstr "aantal regels" #: src/main/extractor_metatypes.c:309 msgid "number of lines" msgstr "het aantal regels" #: src/main/extractor_metatypes.c:310 msgid "paragraph count" msgstr "aantal alinea's" #: src/main/extractor_metatypes.c:311 msgid "number of paragraphs" msgstr "het aantal alinea's" #: src/main/extractor_metatypes.c:313 msgid "word count" msgstr "aantal woorden" #: src/main/extractor_metatypes.c:314 msgid "number of words" msgstr "het aantal woorden" #: src/main/extractor_metatypes.c:315 msgid "character count" msgstr "aantal tekens" #: src/main/extractor_metatypes.c:316 msgid "number of characters" msgstr "het aantal tekens" #: src/main/extractor_metatypes.c:317 src/main/extractor_metatypes.c:318 msgid "page orientation" msgstr "paginastand" #: src/main/extractor_metatypes.c:319 src/main/extractor_metatypes.c:320 msgid "paper size" msgstr "papiergrootte" #: src/main/extractor_metatypes.c:321 msgid "template" msgstr "sjabloon" #: src/main/extractor_metatypes.c:322 msgid "template the document uses or is based on" msgstr "sjabloon dat het document gebruikt of waarop het gebaseerd is" #: src/main/extractor_metatypes.c:324 src/main/extractor_metatypes.c:325 msgid "company" msgstr "firma" #: src/main/extractor_metatypes.c:326 src/main/extractor_metatypes.c:327 msgid "manager" msgstr "manager" #: src/main/extractor_metatypes.c:328 src/main/extractor_metatypes.c:329 msgid "revision number" msgstr "revisienummer" #: src/main/extractor_metatypes.c:330 msgid "duration" msgstr "duur" #: src/main/extractor_metatypes.c:331 msgid "play time for the medium" msgstr "speeltijd van het medium" #: src/main/extractor_metatypes.c:332 msgid "album" msgstr "album" #: src/main/extractor_metatypes.c:333 msgid "name of the album" msgstr "naam van het album" #: src/main/extractor_metatypes.c:335 msgid "artist" msgstr "artiest" #: src/main/extractor_metatypes.c:336 msgid "name of the artist or band" msgstr "naam van artiest of band" #: src/main/extractor_metatypes.c:337 src/main/extractor_metatypes.c:338 msgid "genre" msgstr "genre" #: src/main/extractor_metatypes.c:339 msgid "track number" msgstr "tracknummer" #: src/main/extractor_metatypes.c:340 msgid "original number of the track on the distribution medium" msgstr "oorspronkelijk nummer van de track op het distributiemedium" #: src/main/extractor_metatypes.c:341 msgid "disk number" msgstr "CD-nummer" #: src/main/extractor_metatypes.c:342 msgid "number of the disk in a multi-disk (or volume) distribution" msgstr "nummer van de CD in een meerdelige uitgave" #: src/main/extractor_metatypes.c:343 msgid "performer" msgstr "uitvoerende" #: src/main/extractor_metatypes.c:344 msgid "" "The artist(s) who performed the work (conductor, orchestra, soloists, actor, " "etc.)" msgstr "" "de artiest(en) die het werk uitvoerde(n) (dirigent, orkest, solisten, " "acteurs, enz.)" #: src/main/extractor_metatypes.c:346 msgid "contact" msgstr "contact" #: src/main/extractor_metatypes.c:347 msgid "Contact information for the creator or distributor" msgstr "contactinformatie van maker of uitgever" #: src/main/extractor_metatypes.c:348 msgid "song version" msgstr "songversie" #: src/main/extractor_metatypes.c:349 msgid "name of the version of the song (i.e. remix information)" msgstr "naam van de versie van de song (remix-informatie)" #: src/main/extractor_metatypes.c:350 msgid "picture" msgstr "beeld" #: src/main/extractor_metatypes.c:351 msgid "associated misc. picture" msgstr "bijbehorende beelden" #: src/main/extractor_metatypes.c:352 msgid "cover picture" msgstr "hoesafbeelding" #: src/main/extractor_metatypes.c:353 msgid "picture of the cover of the distribution medium" msgstr "afbeelding van de hoes van het uitgavemedium" #: src/main/extractor_metatypes.c:354 msgid "contributor picture" msgstr "bijdragersafbeelding" #: src/main/extractor_metatypes.c:355 msgid "picture of one of the contributors" msgstr "afbeelding van een van de bijdragers" #: src/main/extractor_metatypes.c:357 msgid "event picture" msgstr "evenementsafbeelding" #: src/main/extractor_metatypes.c:358 msgid "picture of an associated event" msgstr "afbeelding van een bijbehorend evenement" #: src/main/extractor_metatypes.c:359 msgid "logo" msgstr "logo" #: src/main/extractor_metatypes.c:360 msgid "logo of an associated organization" msgstr "logo van een bijbehorende organisatie" #: src/main/extractor_metatypes.c:361 msgid "broadcast television system" msgstr "televisiesysteem" #: src/main/extractor_metatypes.c:362 msgid "name of the television system for which the data is coded" msgstr "naam van het televisiesysteem waarvoor de data gecodeerd is" #: src/main/extractor_metatypes.c:363 msgid "source device" msgstr "bronapparaat" #: src/main/extractor_metatypes.c:364 msgid "device used to create the object" msgstr "apparaat waarmee het object gemaakt werd" #: src/main/extractor_metatypes.c:365 msgid "disclaimer" msgstr "disclaimer" #: src/main/extractor_metatypes.c:366 msgid "legal disclaimer" msgstr "wettelijke disclaimer" #: src/main/extractor_metatypes.c:368 msgid "warning" msgstr "waarschuwing" #: src/main/extractor_metatypes.c:369 msgid "warning about the nature of the content" msgstr "waarschuwing over de aard van de inhoud" #: src/main/extractor_metatypes.c:370 msgid "page order" msgstr "paginavolgorde" #: src/main/extractor_metatypes.c:371 msgid "order of the pages" msgstr "volgorde van de pagina's" #: src/main/extractor_metatypes.c:372 msgid "writer" msgstr "schrijver" #: src/main/extractor_metatypes.c:373 msgid "contributing writer" msgstr "bijdragende schrijver" #: src/main/extractor_metatypes.c:374 src/main/extractor_metatypes.c:375 msgid "product version" msgstr "productversie" #: src/main/extractor_metatypes.c:376 msgid "contributor" msgstr "bijdrager" #: src/main/extractor_metatypes.c:377 msgid "name of a contributor" msgstr "naam van een bijdrager" #: src/main/extractor_metatypes.c:379 msgid "movie director" msgstr "filmregisseur" #: src/main/extractor_metatypes.c:380 msgid "name of the director" msgstr "naam van de regisseur" #: src/main/extractor_metatypes.c:381 msgid "network" msgstr "omroep" #: src/main/extractor_metatypes.c:382 msgid "name of the broadcasting network or station" msgstr "naam van de omroep of het zendstation" #: src/main/extractor_metatypes.c:383 msgid "show" msgstr "show" #: src/main/extractor_metatypes.c:384 msgid "name of the show" msgstr "naam van de show" #: src/main/extractor_metatypes.c:385 msgid "chapter name" msgstr "hoofdstuknaam" #: src/main/extractor_metatypes.c:386 msgid "name of the chapter" msgstr "titel van het hoofdstuk" #: src/main/extractor_metatypes.c:387 msgid "song count" msgstr "aantal songs" #: src/main/extractor_metatypes.c:388 msgid "number of songs" msgstr "het aantal songs" #: src/main/extractor_metatypes.c:390 msgid "starting song" msgstr "beginsong" #: src/main/extractor_metatypes.c:391 msgid "number of the first song to play" msgstr "het nummer van de als eerste af te spelen song" #: src/main/extractor_metatypes.c:392 msgid "play counter" msgstr "aantal malen afgespeeld" #: src/main/extractor_metatypes.c:393 #, fuzzy msgid "number of times the media has been played" msgstr "het aantal keren dat het medium is afgespeeld" #: src/main/extractor_metatypes.c:394 msgid "conductor" msgstr "dirigent" #: src/main/extractor_metatypes.c:395 msgid "name of the conductor" msgstr "naam van de dirigent" #: src/main/extractor_metatypes.c:396 msgid "interpretation" msgstr "vertolking" #: src/main/extractor_metatypes.c:397 msgid "" "information about the people behind interpretations of an existing piece" msgstr "informatie over de mensen achter de vertolking van een bestaand stuk" #: src/main/extractor_metatypes.c:398 msgid "composer" msgstr "componist" #: src/main/extractor_metatypes.c:399 msgid "name of the composer" msgstr "naam van de componist" #: src/main/extractor_metatypes.c:401 src/main/extractor_metatypes.c:402 msgid "beats per minute" msgstr "beats per minuut" #: src/main/extractor_metatypes.c:403 msgid "encoded by" msgstr "gecodeerd door" #: src/main/extractor_metatypes.c:404 msgid "name of person or organization that encoded the file" msgstr "naam van de persoon of organisatie die het bestand codeerde" #: src/main/extractor_metatypes.c:405 msgid "original title" msgstr "oorspronkelijke titel" #: src/main/extractor_metatypes.c:406 msgid "title of the original work" msgstr "titel van het oorspronkelijke werk" #: src/main/extractor_metatypes.c:407 msgid "original artist" msgstr "oorspronkelijke artiest" #: src/main/extractor_metatypes.c:408 msgid "name of the original artist" msgstr "naam van de oorspronkelijke artiest" #: src/main/extractor_metatypes.c:409 msgid "original writer" msgstr "oorspronkelijke schrijver" #: src/main/extractor_metatypes.c:410 msgid "name of the original lyricist or writer" msgstr "naam van de oorspronkelijke (tekst)schrijver" #: src/main/extractor_metatypes.c:412 msgid "original release year" msgstr "oorspronkelijk uitgavejaar" #: src/main/extractor_metatypes.c:413 msgid "year of the original release" msgstr "jaar van de oorspronkelijke uitgave" #: src/main/extractor_metatypes.c:414 msgid "original performer" msgstr "oorspronkelijk uitvoerende" #: src/main/extractor_metatypes.c:415 msgid "name of the original performer" msgstr "naam van de oorspronkelijk uitvoerende" #: src/main/extractor_metatypes.c:416 msgid "lyrics" msgstr "tekst" #: src/main/extractor_metatypes.c:417 msgid "lyrics of the song or text description of vocal activities" msgstr "tekst van de song, of tekstuele omschrijving van vocale activiteiten" #: src/main/extractor_metatypes.c:418 msgid "popularity" msgstr "populariteit" #: src/main/extractor_metatypes.c:419 msgid "information about the file's popularity" msgstr "informatie over de populariteit van het bestand" #: src/main/extractor_metatypes.c:420 msgid "licensee" msgstr "licentiehouder" #: src/main/extractor_metatypes.c:421 msgid "name of the owner or licensee of the file" msgstr "naam van de eigenaar of licentiehouder van het bestand" #: src/main/extractor_metatypes.c:423 msgid "musician credit list" msgstr "danklijst musici" #: src/main/extractor_metatypes.c:424 msgid "names of contributing musicians" msgstr "namen van bijdragende musici" #: src/main/extractor_metatypes.c:425 msgid "mood" msgstr "sfeer" #: src/main/extractor_metatypes.c:426 msgid "keywords reflecting the mood of the piece" msgstr "trefwoorden die de sfeer van het stuk beschrijven" #: src/main/extractor_metatypes.c:427 msgid "subtitle" msgstr "subtitel" #: src/main/extractor_metatypes.c:428 msgid "subtitle of this part" msgstr "subtitel van dit deel" #: src/main/extractor_metatypes.c:429 msgid "display type" msgstr "weergavemethode" #: src/main/extractor_metatypes.c:430 msgid "what rendering method should be used to display this item" msgstr "welke weergavemethode gebruikt dient te worden voor dit item" #: src/main/extractor_metatypes.c:431 msgid "full data" msgstr "volledige data" #: src/main/extractor_metatypes.c:432 msgid "" "entry that contains the full, original binary data (not really meta data)" msgstr "" "item dat de volledige, originele binaire data bevat (feitelijk geen metadata)" #: src/main/extractor_metatypes.c:434 msgid "rating" msgstr "waardering" #: src/main/extractor_metatypes.c:435 msgid "rating of the content" msgstr "waardering van de inhoud" #: src/main/extractor_metatypes.c:436 src/main/extractor_metatypes.c:437 msgid "organization" msgstr "organisatie" #: src/main/extractor_metatypes.c:438 src/main/extractor_metatypes.c:439 msgid "ripper" msgstr "ripper" #: src/main/extractor_metatypes.c:440 src/main/extractor_metatypes.c:441 msgid "producer" msgstr "producer" #: src/main/extractor_metatypes.c:442 msgid "group" msgstr "groep" #: src/main/extractor_metatypes.c:443 msgid "name of the group or band" msgstr "naam van de groep of band" #: src/main/extractor_metatypes.c:445 msgid "original filename" msgstr "oorspronkelijke bestandsnaam" #: src/main/extractor_metatypes.c:446 msgid "name of the original file (reserved for GNUnet)" msgstr "naam van het oorspronkelijke bestand (gereserveerd voor GNUnet)" #: src/main/extractor_metatypes.c:447 msgid "disc count" msgstr "aantal CD's" #: src/main/extractor_metatypes.c:448 msgid "count of discs inside collection this disc belongs to" msgstr "het aantal CD's in de verzameling waartoe deze CD behoort" #: src/main/extractor_metatypes.c:449 msgid "codec" msgstr "codec" #: src/main/extractor_metatypes.c:450 msgid "codec the data is stored in" msgstr "de codec waarin de data is opgeslagen" #: src/main/extractor_metatypes.c:451 msgid "video codec" msgstr "video-codec" #: src/main/extractor_metatypes.c:452 msgid "codec the video data is stored in" msgstr "de codec waarin de video-data is opgeslagen" #: src/main/extractor_metatypes.c:453 msgid "audio codec" msgstr "audio-codec" #: src/main/extractor_metatypes.c:454 msgid "codec the audio data is stored in" msgstr "de codec waarin de audio-data is opgeslagen" #: src/main/extractor_metatypes.c:456 msgid "subtitle codec" msgstr "ondertitels-codec" #: src/main/extractor_metatypes.c:457 msgid "codec/format the subtitle data is stored in" msgstr "de codec of indeling waarin de ondertitelsgegevens zijn opgeslagen" #: src/main/extractor_metatypes.c:458 msgid "container format" msgstr "containersoort" #: src/main/extractor_metatypes.c:459 msgid "container format the data is stored in" msgstr "de containerindeling waarin de data is opgeslagen" #: src/main/extractor_metatypes.c:460 msgid "bitrate" msgstr "bitsnelheid" #: src/main/extractor_metatypes.c:461 msgid "exact or average bitrate in bits/s" msgstr "precieze of gemiddelde bitsnelheid (in bits/seconde)" #: src/main/extractor_metatypes.c:462 msgid "nominal bitrate" msgstr "nominale bitsnelheid" #: src/main/extractor_metatypes.c:463 msgid "" "nominal bitrate in bits/s. The actual bitrate might be different from this " "target bitrate." msgstr "" "nominale bitsnelheid in bits/seconde; de werkelijke bitsnelheid kan " "verschillen van deze doelsnelheid" #: src/main/extractor_metatypes.c:464 msgid "minimum bitrate" msgstr "minimum bitsnelheid" #: src/main/extractor_metatypes.c:465 msgid "minimum bitrate in bits/s" msgstr "minimum bitsnelheid in bits/seconde" #: src/main/extractor_metatypes.c:467 msgid "maximum bitrate" msgstr "maximum bitsnelheid" #: src/main/extractor_metatypes.c:468 msgid "maximum bitrate in bits/s" msgstr "maximum bitsnelheid in bits/seconde" #: src/main/extractor_metatypes.c:469 msgid "serial" msgstr "serienummer" #: src/main/extractor_metatypes.c:470 msgid "serial number of track" msgstr "serienummer van de track" #: src/main/extractor_metatypes.c:471 msgid "encoder" msgstr "encoder" #: src/main/extractor_metatypes.c:472 msgid "encoder used to encode this stream" msgstr "coderingsprogramma dat gebruikt is om deze stream te coderen" #: src/main/extractor_metatypes.c:473 msgid "encoder version" msgstr "encoder-versie" #: src/main/extractor_metatypes.c:474 msgid "version of the encoder used to encode this stream" msgstr "" "versie van het coderingsprogramma dat gebruikt is om deze stream te coderen" #: src/main/extractor_metatypes.c:475 msgid "track gain" msgstr "track-gain" #: src/main/extractor_metatypes.c:476 msgid "track gain in db" msgstr "relatieve sterkte van de track in dB" #: src/main/extractor_metatypes.c:478 msgid "track peak" msgstr "track-piek" #: src/main/extractor_metatypes.c:479 msgid "peak of the track" msgstr "piekniveau van de track" #: src/main/extractor_metatypes.c:480 msgid "album gain" msgstr "album-gain" #: src/main/extractor_metatypes.c:481 msgid "album gain in db" msgstr "relatieve sterkte van het album in dB" #: src/main/extractor_metatypes.c:482 msgid "album peak" msgstr "albumpiek" #: src/main/extractor_metatypes.c:483 msgid "peak of the album" msgstr "piekniveau van het album" #: src/main/extractor_metatypes.c:484 msgid "reference level" msgstr "referentieniveau" #: src/main/extractor_metatypes.c:485 msgid "reference level of track and album gain values" msgstr "referentieniveau voor track- en album-gainwaarden" #: src/main/extractor_metatypes.c:486 msgid "location name" msgstr "locatienaam" #: src/main/extractor_metatypes.c:487 #, fuzzy msgid "" "human readable descriptive location of where the media has been recorded or " "produced" msgstr "" "leesbare omschrijving van de locatie waar het medium werd opgenomen of " "geproduceerd" #: src/main/extractor_metatypes.c:489 msgid "location elevation" msgstr "locatie-elevatie" #: src/main/extractor_metatypes.c:490 msgid "" "geo elevation of where the media has been recorded or produced in meters " "according to WGS84 (zero is average sea level)" msgstr "" #: src/main/extractor_metatypes.c:491 msgid "location horizontal error" msgstr "" #: src/main/extractor_metatypes.c:492 msgid "represents the expected error on the horizontal positioning in meters" msgstr "" #: src/main/extractor_metatypes.c:493 msgid "location movement speed" msgstr "" #: src/main/extractor_metatypes.c:494 msgid "" "speed of the capturing device when performing the capture. Represented in m/s" msgstr "" #: src/main/extractor_metatypes.c:495 msgid "location movement direction" msgstr "" #: src/main/extractor_metatypes.c:496 msgid "" "indicates the movement direction of the device performing the capture of a " "media. It is represented as degrees in floating point representation, 0 " "means the geographic north, and increases clockwise" msgstr "" #: src/main/extractor_metatypes.c:497 msgid "location capture direction" msgstr "" #: src/main/extractor_metatypes.c:498 msgid "" "indicates the direction the device is pointing to when capturing a media. It " "is represented as degrees in floating point representation, 0 means the " "geographic north, and increases clockwise" msgstr "" #: src/main/extractor_metatypes.c:500 msgid "show episode number" msgstr "aflevering van de show" #: src/main/extractor_metatypes.c:501 msgid "number of the episode within a season/show" msgstr "nummer van de aflevering binnen seizoen of show" #: src/main/extractor_metatypes.c:502 msgid "show season number" msgstr "seizoen van de show" #: src/main/extractor_metatypes.c:503 msgid "number of the season of a show/series" msgstr "nummer van het seizoen van de show of serie" #: src/main/extractor_metatypes.c:504 #, fuzzy msgid "grouping" msgstr "groepering" #: src/main/extractor_metatypes.c:505 msgid "" "groups together media that are related and spans multiple tracks. An example " "are multiple pieces of a concerto" msgstr "" "groepeert gerelateerde media en omvat meerdere tracks; een voorbeeld zijn de " "delen van een concerto" #: src/main/extractor_metatypes.c:506 msgid "device manufacturer" msgstr "apparaatproducent" #: src/main/extractor_metatypes.c:507 msgid "manufacturer of the device used to create the media" msgstr "producent van het apparaat waarmee het medium gemaakt is" #: src/main/extractor_metatypes.c:508 msgid "device model" msgstr "apparaatmodel" #: src/main/extractor_metatypes.c:509 msgid "model of the device used to create the media" msgstr "model van het apparaat waarmee het medium gemaakt is" #: src/main/extractor_metatypes.c:511 msgid "audio language" msgstr "audiotaal" #: src/main/extractor_metatypes.c:512 msgid "language of the audio track" msgstr "taal van het audiospoor" #: src/main/extractor_metatypes.c:513 msgid "channels" msgstr "kanalen" #: src/main/extractor_metatypes.c:514 msgid "number of audio channels" msgstr "het aantal audiokanalen" #: src/main/extractor_metatypes.c:515 msgid "sample rate" msgstr "" #: src/main/extractor_metatypes.c:516 #, fuzzy msgid "sample rate of the audio track" msgstr "... van het audiospoor" #: src/main/extractor_metatypes.c:517 msgid "audio depth" msgstr "audiodiepte" #: src/main/extractor_metatypes.c:518 msgid "number of bits per audio sample" msgstr "aantal bits per audio-sample" #: src/main/extractor_metatypes.c:519 msgid "audio bitrate" msgstr "audio-bitsnelheid" #: src/main/extractor_metatypes.c:520 msgid "bitrate of the audio track" msgstr "bitsnelheid van het audiospoor" #: src/main/extractor_metatypes.c:522 src/main/extractor_metatypes.c:523 msgid "maximum audio bitrate" msgstr "maximum audio-bitsnelheid" #: src/main/extractor_metatypes.c:524 msgid "video dimensions" msgstr "video-afmetingen" #: src/main/extractor_metatypes.c:525 msgid "width and height of the video track (WxH)" msgstr "breedte en hoogte van het videospoor (bxh)" #: src/main/extractor_metatypes.c:526 msgid "video depth" msgstr "video-diepte" #: src/main/extractor_metatypes.c:527 msgid "numbers of bits per pixel" msgstr "aantal bits per pixel" #: src/main/extractor_metatypes.c:528 msgid "frame rate" msgstr "frame-snelheid" #: src/main/extractor_metatypes.c:529 #, fuzzy msgid "number of frames per second (as D/N or floating point)" msgstr "aantal frames per seconde (als ... of drijvendekomma)" #: src/main/extractor_metatypes.c:530 msgid "pixel aspect ratio" msgstr "pixelzijdenverhouding" #: src/main/extractor_metatypes.c:531 #, fuzzy msgid "pixel aspect ratio (as D/N)" msgstr "pixelzijdenverhouding (als ...)" #: src/main/extractor_metatypes.c:533 src/main/extractor_metatypes.c:534 msgid "video bitrate" msgstr "video-bitsnelheid" #: src/main/extractor_metatypes.c:535 src/main/extractor_metatypes.c:536 msgid "maximum video bitrate" msgstr "maximum video-bitsnelheid" #: src/main/extractor_metatypes.c:537 msgid "subtitle language" msgstr "ondertitels-taal" #: src/main/extractor_metatypes.c:538 msgid "language of the subtitle track" msgstr "taal van het ondertitelingsspoor" #: src/main/extractor_metatypes.c:539 msgid "video language" msgstr "video-taal" #: src/main/extractor_metatypes.c:540 msgid "language of the video track" msgstr "taal van het videospoor" #: src/main/extractor_metatypes.c:541 msgid "table of contents" msgstr "inhoudsopgave" #: src/main/extractor_metatypes.c:542 msgid "chapters, contents or bookmarks (in xml format)" msgstr "hoofdstukken, inhoudsopgave of bladwijzers (in XML-opmaak)" #: src/main/extractor_metatypes.c:544 msgid "video duration" msgstr "video-duur" #: src/main/extractor_metatypes.c:545 msgid "duration of a video stream" msgstr "speelduur van een video-stream" #: src/main/extractor_metatypes.c:546 msgid "audio duration" msgstr "audio-duur" #: src/main/extractor_metatypes.c:547 msgid "duration of an audio stream" msgstr "speelduur van een audio-stream" #: src/main/extractor_metatypes.c:548 msgid "subtitle duration" msgstr "ondertitels-duur" #: src/main/extractor_metatypes.c:549 msgid "duration of a subtitle stream" msgstr "speelduur van een ondertitelings-stream" #: src/main/extractor_metatypes.c:551 #, fuzzy msgid "audio preview" msgstr "audio-bitsnelheid" #: src/main/extractor_metatypes.c:552 #, fuzzy msgid "a preview of the file audio stream" msgstr "... van het audiospoor" #: src/main/extractor_metatypes.c:554 src/main/extractor_metatypes.c:555 #, fuzzy msgid "last" msgstr "laatste" #: src/main/getopt.c:684 #, c-format msgid "%s: option `%s' is ambiguous\n" msgstr "%s: optie '%s' is niet eenduidig\n" #: src/main/getopt.c:709 #, c-format msgid "%s: option `--%s' doesn't allow an argument\n" msgstr "%s: optie '--%s' staat geen argument toe\n" #: src/main/getopt.c:715 #, c-format msgid "%s: option `%c%s' doesn't allow an argument\n" msgstr "%s: optie '%c%s' staat geen argument toe\n" #: src/main/getopt.c:732 src/main/getopt.c:903 #, c-format msgid "%s: option `%s' requires an argument\n" msgstr "%s: optie '%s' vereist een argument\n" #: src/main/getopt.c:761 #, c-format msgid "%s: unrecognized option `--%s'\n" msgstr "%s: onbekende optie '--%s'\n" #: src/main/getopt.c:765 #, c-format msgid "%s: unrecognized option `%c%s'\n" msgstr "%s: onbekende optie '%c%s'\n" #: src/main/getopt.c:791 #, c-format msgid "%s: illegal option -- %c\n" msgstr "%s: ongeldige optie -- %c\n" #: src/main/getopt.c:793 #, c-format msgid "%s: invalid option -- %c\n" msgstr "%s: ongeldige optie -- %c\n" #: src/main/getopt.c:822 src/main/getopt.c:952 #, c-format msgid "%s: option requires an argument -- %c\n" msgstr "%s: optie vereist een argument -- %c\n" #: src/main/getopt.c:870 #, c-format msgid "%s: option `-W %s' is ambiguous\n" msgstr "%s: optie '-W %s' is niet eenduidig\n" #: src/main/getopt.c:888 #, c-format msgid "%s: option `-W %s' doesn't allow an argument\n" msgstr "%s: optie '-W %s' staat geen argument toe\n" #: src/plugins/flac_extractor.c:322 #, c-format msgid "%u Hz, %u channels" msgstr "%u Hz, %u kanalen" #: src/plugins/man_extractor.c:215 msgid "Commands" msgstr "Commando's" #: src/plugins/man_extractor.c:219 msgid "System calls" msgstr "Systeemaanroepen" #: src/plugins/man_extractor.c:223 msgid "Library calls" msgstr "Bibliotheekaanroepen" #: src/plugins/man_extractor.c:227 msgid "Special files" msgstr "Speciale bestanden" #: src/plugins/man_extractor.c:231 msgid "File formats and conventions" msgstr "Bestandsindelingen en -conventies" #: src/plugins/man_extractor.c:235 msgid "Games" msgstr "Spellen" #: src/plugins/man_extractor.c:239 msgid "Conventions and miscellaneous" msgstr "Conventies en overigen" #: src/plugins/man_extractor.c:243 msgid "System management commands" msgstr "Systeembeheercommando's" #: src/plugins/man_extractor.c:247 msgid "Kernel routines" msgstr "Kernelroutines" #: src/plugins/ole2_extractor.c:387 msgid "No Proofing" msgstr "geen controle" #: src/plugins/ole2_extractor.c:395 msgid "Traditional Chinese" msgstr "Traditioneel Chinees" #: src/plugins/ole2_extractor.c:397 msgid "Simplified Chinese" msgstr "Vereenvoudigd Chinees" #: src/plugins/ole2_extractor.c:405 msgid "Swiss German" msgstr "Zwitserduits" #: src/plugins/ole2_extractor.c:409 msgid "U.S. English" msgstr "Amerikaans Engels" #: src/plugins/ole2_extractor.c:411 msgid "U.K. English" msgstr "Brits Engels" #: src/plugins/ole2_extractor.c:413 msgid "Australian English" msgstr "Australisch Engels" #: src/plugins/ole2_extractor.c:415 msgid "Castilian Spanish" msgstr "Castilliaans Spaans" #: src/plugins/ole2_extractor.c:417 msgid "Mexican Spanish" msgstr "Mexicaans Spaans" #: src/plugins/ole2_extractor.c:423 msgid "Belgian French" msgstr "Waals" #: src/plugins/ole2_extractor.c:425 msgid "Canadian French" msgstr "Canadees Frans" #: src/plugins/ole2_extractor.c:427 msgid "Swiss French" msgstr "Zwitsers Frans" #: src/plugins/ole2_extractor.c:437 msgid "Swiss Italian" msgstr "Zwitsers Italiaans" #: src/plugins/ole2_extractor.c:445 msgid "Belgian Dutch" msgstr "Vlaams" #: src/plugins/ole2_extractor.c:447 msgid "Norwegian Bokmal" msgstr "Noors Bokmål" #: src/plugins/ole2_extractor.c:457 msgid "Rhaeto-Romanic" msgstr "Reto-Romaans" #: src/plugins/ole2_extractor.c:463 msgid "Croato-Serbian (Latin)" msgstr "Servo-Kroatisch (latijns schrift)" #: src/plugins/ole2_extractor.c:465 msgid "Serbo-Croatian (Cyrillic)" msgstr "Servo-Kroatisch (cyrillisch schrift)" #: src/plugins/ole2_extractor.c:493 msgid "Farsi" msgstr "Perzisch" #: src/plugins/ole2_extractor.c:578 #, c-format msgid "Revision #%u: Author `%s' worked on `%s'" msgstr "Revisie #%u: Auteur '%s' werkte aan '%s'" #: src/plugins/riff_extractor.c:145 #, c-format msgid "codec: %s, %u fps, %u ms" msgstr "codec: %s, %u fps, %u ms" #: src/plugins/wav_extractor.c:120 msgid "mono" msgstr "mono" #: src/plugins/wav_extractor.c:120 msgid "stereo" msgstr "stereo" #~ msgid "do not remove any duplicates" #~ msgstr "duplicaten niet verwijderen" #~ msgid "" #~ "use the generic plaintext extractor for the language with the 2-letter " #~ "language code LANG" #~ msgstr "de gewone-tekstextractor voor deze (tweelettercode) taal gebruiken" #~ msgid "remove duplicates only if types match" #~ msgstr "duplicaten alleen verwijderen indien van hetzelfde type" #~ msgid "use the filename as a keyword (loads filename-extractor plugin)" #~ msgstr "" #~ "de bestandsnaam als sleutelwoord gebruiken (laadt de " #~ "bestandsnaamextractor-plugin)" #~ msgid "compute hash using the given ALGORITHM (currently sha1 or md5)" #~ msgstr "met dit algoritme ('sha1' of 'md5') de hashwaarde berekenen" #~ msgid "remove duplicates even if keyword types do not match" #~ msgstr "duplicaten verwijderen, ook als de sleutelwoordtypes verschillen" #~ msgid "use keyword splitting (loads split-extractor plugin)" #~ msgstr "sleutelwoordsplitsing gebruiken (laadt de splitextractor-plugin)" #~ msgid "INVALID TYPE - %s\n" #~ msgstr "ONGELDIG TYPE - %s\n" #~ msgid "date" #~ msgstr "datum" #~ msgid "relation" #~ msgstr "relatie" #~ msgid "coverage" #~ msgstr "dekking" #~ msgid "translated" #~ msgstr "vertaald" #~ msgid "used fonts" #~ msgstr "gebruikte lettertypes" #~ msgid "created for" #~ msgstr "gemaakt voor" #~ msgid "release" #~ msgstr "uitgave" #~ msgid "size" #~ msgstr "grootte" #~ msgid "category" #~ msgstr "categorie" #~ msgid "owner" #~ msgstr "eigenaar" #~ msgid "binary thumbnail data" #~ msgstr "binaire gegevens over miniatuur" #~ msgid "focal length (35mm equivalent)" #~ msgstr "brandpuntsafstand (35mm-equivalent)" #~ msgid "split" #~ msgstr "gesplitst" #~ msgid "security" #~ msgstr "veiligheid" #~ msgid "lower case conversion" #~ msgstr "omzetting naar kleine letters" #~ msgid "generator" #~ msgstr "generator" #~ msgid "scale" #~ msgstr "schaal" #~ msgid "year" #~ msgstr "jaar" #~ msgid "link" #~ msgstr "link" #~ msgid "music CD identifier" #~ msgstr "muziek CD-ID" #~ msgid "time" #~ msgstr "tijd" #~ msgid "preferred display style (GNUnet)" #~ msgstr "weergavestijl van voorkeur (GNUnet)" #~ msgid "GNUnet URI of ECBC data" #~ msgstr "GNUnet URI van ECBC-gegevens" #~ msgid "" #~ "Resolving symbol `%s' in library `%s' failed, so I tried `%s', but that " #~ "failed also. Errors are: `%s' and `%s'.\n" #~ msgstr "" #~ "Het herleiden van symbool '%s' uit bibliotheek '%s' is mislukt;\n" #~ "het herleiden van '%s' mislukte ook.\n" #~ "De foutmeldingen waren: '%s' en '%s'.\n" #~ msgid "Unloading plugin `%s' failed!\n" #~ msgstr "Verwijderen van plugin '%s' is mislukt.\n" #~ msgid "GB" #~ msgstr "GB" #~ msgid "MB" #~ msgstr "MB" #~ msgid "KB" #~ msgstr "KB" #~ msgid "Bytes" #~ msgstr "bytes" #~ msgid "%ux%u dots per cm" #~ msgstr "%ux%u dots per cm" #~ msgid "%ux%u dots per inch?" #~ msgstr "%ux%u dots per inch?" #~ msgid "Blues" #~ msgstr "Blues" #~ msgid "Classic Rock" #~ msgstr "Classic rock" #~ msgid "Dance" #~ msgstr "Dance" #~ msgid "Disco" #~ msgstr "Disco" #~ msgid "Funk" #~ msgstr "Funk" #~ msgid "Grunge" #~ msgstr "Grunge" #~ msgid "Hip-Hop" #~ msgstr "Hiphop" #~ msgid "Jazz" #~ msgstr "Jazz" #~ msgid "Metal" #~ msgstr "Metal" #~ msgid "New Age" #~ msgstr "New age" #~ msgid "Oldies" #~ msgstr "Gouwe ouwe" #~ msgid "Other" #~ msgstr "Overige" #~ msgid "Pop" #~ msgstr "Pop" #~ msgid "R&B" #~ msgstr "R&B" #~ msgid "Rap" #~ msgstr "Rap" #~ msgid "Reggae" #~ msgstr "Reggae" #~ msgid "Rock" #~ msgstr "Rock" #~ msgid "Techno" #~ msgstr "Techno" #~ msgid "Alternative" #~ msgstr "Alternatief" #~ msgid "Ska" #~ msgstr "Ska" #~ msgid "Death Metal" #~ msgstr "Death metal" #~ msgid "Pranks" #~ msgstr "Pranks" #~ msgid "Soundtrack" #~ msgstr "Soundtrack" #~ msgid "Euro-Techno" #~ msgstr "Eurotechno" #~ msgid "Ambient" #~ msgstr "Ambient" #~ msgid "Trip-Hop" #~ msgstr "Triphop" #~ msgid "Vocal" #~ msgstr "Vocaal" #~ msgid "Jazz+Funk" #~ msgstr "Jazz+Funk" #~ msgid "Fusion" #~ msgstr "Fusion" #~ msgid "Trance" #~ msgstr "Trance" #~ msgid "Classical" #~ msgstr "Klassiek" #~ msgid "Instrumental" #~ msgstr "Instrumenteel" #~ msgid "Acid" #~ msgstr "Acid house" #~ msgid "House" #~ msgstr "House" #~ msgid "Game" #~ msgstr "Spel" #~ msgid "Sound Clip" #~ msgstr "Soundclip" #~ msgid "Gospel" #~ msgstr "Gospel" #~ msgid "Noise" #~ msgstr "Noise" #~ msgid "Alt. Rock" #~ msgstr "Alternatieve rock" #~ msgid "Bass" #~ msgstr "Bass" #~ msgid "Soul" #~ msgstr "Soul" #~ msgid "Punk" #~ msgstr "Punk" #~ msgid "Space" #~ msgstr "Ruimte" #~ msgid "Meditative" #~ msgstr "New-age" #~ msgid "Instrumental Pop" #~ msgstr "Instrumentele pop" #~ msgid "Instrumental Rock" #~ msgstr "Instrumentele rock" #~ msgid "Ethnic" #~ msgstr "Etnisch" #~ msgid "Gothic" #~ msgstr "Gothic" #~ msgid "Darkwave" #~ msgstr "Darkwave" #~ msgid "Techno-Industrial" #~ msgstr "Techno-Industrial" #~ msgid "Electronic" #~ msgstr "Elektronisch" #~ msgid "Pop-Folk" #~ msgstr "Pop-folk" #~ msgid "Eurodance" #~ msgstr "Eurodance" #~ msgid "Dream" #~ msgstr "Dreampop" #~ msgid "Southern Rock" #~ msgstr "Southern rock" #~ msgid "Comedy" #~ msgstr "Komedie" #~ msgid "Cult" #~ msgstr "Cult" #~ msgid "Gangsta Rap" #~ msgstr "Gangsta rap" #~ msgid "Top 40" #~ msgstr "Top 40" #~ msgid "Christian Rap" #~ msgstr "Christelijke rap" #~ msgid "Pop/Funk" #~ msgstr "Pop/funk" #~ msgid "Jungle" #~ msgstr "Jungle" #~ msgid "Native American" #~ msgstr "Indiaans" #~ msgid "Cabaret" #~ msgstr "Cabaret" #~ msgid "New Wave" #~ msgstr "New wave" #~ msgid "Psychedelic" #~ msgstr "Psychedelisch" #~ msgid "Rave" #~ msgstr "Rave" #~ msgid "Showtunes" #~ msgstr "Showtunes" #~ msgid "Trailer" #~ msgstr "Trailer" #~ msgid "Lo-Fi" #~ msgstr "Lo-Fi" #~ msgid "Tribal" #~ msgstr "Tribal" #~ msgid "Acid Punk" #~ msgstr "Acid punk" #~ msgid "Acid Jazz" #~ msgstr "Acid jazz" #~ msgid "Polka" #~ msgstr "Polka" #~ msgid "Retro" #~ msgstr "Retro" #~ msgid "Musical" #~ msgstr "Musical" #~ msgid "Rock & Roll" #~ msgstr "Rock-'n-roll" #~ msgid "Hard Rock" #~ msgstr "Hardrock" #~ msgid "Folk" #~ msgstr "Folk" #~ msgid "Folk/Rock" #~ msgstr "Folk/rock" #~ msgid "National Folk" #~ msgstr "Nationale folk" #~ msgid "Swing" #~ msgstr "Swing" #~ msgid "Fast-Fusion" #~ msgstr "Fast-Fusion" #~ msgid "Bebob" #~ msgstr "Bop" #~ msgid "Revival" #~ msgstr "Revival" #~ msgid "Celtic" #~ msgstr "Keltisch" #~ msgid "Bluegrass" #~ msgstr "Bluegrass" #~ msgid "Avantgarde" #~ msgstr "Avant-garde" #~ msgid "Gothic Rock" #~ msgstr "Gothic rock" #~ msgid "Progressive Rock" #~ msgstr "Progressieve rock" #~ msgid "Psychedelic Rock" #~ msgstr "Psychedelische rock" #~ msgid "Symphonic Rock" #~ msgstr "Symfonische rock" #~ msgid "Slow Rock" #~ msgstr "Langzame rock" #~ msgid "Big Band" #~ msgstr "Bigband" #~ msgid "Chorus" #~ msgstr "Koor" #~ msgid "Easy Listening" #~ msgstr "Easy listening" #~ msgid "Acoustic" #~ msgstr "Akoestisch" #~ msgid "Humour" #~ msgstr "Humor" #~ msgid "Speech" #~ msgstr "Spraak" #~ msgid "Chanson" #~ msgstr "Chanson" #~ msgid "Opera" #~ msgstr "Opera" #~ msgid "Chamber Music" #~ msgstr "Kamermuziek" #~ msgid "Sonata" #~ msgstr "Sonata" #~ msgid "Symphony" #~ msgstr "Symfonie" #~ msgid "Booty Bass" #~ msgstr "Booty Bass" #~ msgid "Primus" #~ msgstr "Primus" #~ msgid "Porn Groove" #~ msgstr "Porn Groove" #~ msgid "Satire" #~ msgstr "Satire" #~ msgid "Slow Jam" #~ msgstr "Slow Jam" #~ msgid "Club" #~ msgstr "Club" #~ msgid "Tango" #~ msgstr "Tango" #~ msgid "Samba" #~ msgstr "Samba" #~ msgid "Folklore" #~ msgstr "Folklore" #~ msgid "Ballad" #~ msgstr "Ballad" #~ msgid "Power Ballad" #~ msgstr "Power ballad" #~ msgid "Rhythmic Soul" #~ msgstr "Ritmische soul" #~ msgid "Freestyle" #~ msgstr "Freestyle" #~ msgid "Duet" #~ msgstr "Duet" #~ msgid "Punk Rock" #~ msgstr "Punkrock" #~ msgid "Drum Solo" #~ msgstr "Drumsolo" #~ msgid "A Cappella" #~ msgstr "A capella" #~ msgid "Euro-House" #~ msgstr "Eurohouse" #~ msgid "Dance Hall" #~ msgstr "Dancehall" #~ msgid "Goa" #~ msgstr "Goa" #~ msgid "Drum & Bass" #~ msgstr "Drum & Bass" #~ msgid "Club-House" #~ msgstr "Clubhouse" #~ msgid "Hardcore" #~ msgstr "Hardcore" #~ msgid "Terror" #~ msgstr "Terrorcore" #~ msgid "Indie" #~ msgstr "Indie" #~ msgid "BritPop" #~ msgstr "Britpop" #~ msgid "Negerpunk" #~ msgstr "Negerpunk" #~ msgid "Polsk Punk" #~ msgstr "Poolse punk" #~ msgid "Beat" #~ msgstr "Beat" #~ msgid "Christian Gangsta Rap" #~ msgstr "Christelijke gangsta rap" #~ msgid "Heavy Metal" #~ msgstr "Heavy metal" #~ msgid "Black Metal" #~ msgstr "Black metal" #~ msgid "Crossover" #~ msgstr "Cross-over" #~ msgid "Contemporary Christian" #~ msgstr "Modern christelijk" #~ msgid "Christian Rock" #~ msgstr "Christelijke rock" #~ msgid "Merengue" #~ msgstr "Merengue" #~ msgid "Salsa" #~ msgstr "Salsa" #~ msgid "Thrash Metal" #~ msgstr "Thrash metal" #~ msgid "Anime" #~ msgstr "Anime" #~ msgid "JPop" #~ msgstr "J-pop" #~ msgid "Synthpop" #~ msgstr "Synthipop" #~ msgid "joint stereo" #~ msgstr "gezamenlijke stereo" #~ msgid "MPEG-1" #~ msgstr "MPEG-1" #~ msgid "MPEG-2" #~ msgstr "MPEG-2" #~ msgid "MPEG-2.5" #~ msgstr "MPEG-2.5" #~ msgid "Layer I" #~ msgstr "Laag I" #~ msgid "Layer II" #~ msgstr "Laag II" #~ msgid "Layer III" #~ msgstr "Laag III" #~ msgid "VBR" #~ msgstr "VBR" #~ msgid "CBR" #~ msgstr "CBR" #~ msgid "no copyright" #~ msgstr "geen copyright" #~ msgid "copy" #~ msgstr "kopie" #~ msgid "" #~ "Please provide the name of the language you are building\n" #~ "a dictionary for. For example:\n" #~ msgstr "" #~ "Geef de naam op van de taal waarvoor u een woordenboek\n" #~ "aan het maken bent. Bijvoorbeeld:\n" #~ msgid "Error opening file `%s': %s\n" #~ msgstr "Fout bij openen van bestand '%s': %s\n" #~ msgid "" #~ "Error allocating: %s\n" #~ "." #~ msgstr "" #~ "Fout bij reserveren van geheugen: %s\n" #~ "." #~ msgid "Increase ALLOCSIZE (in %s).\n" #~ msgstr "Vergroot de waarde van ALLOCSIZE (in %s).\n" #~ msgid "(variable bps)" #~ msgstr "(variabele bps)" #~ msgid "Source RPM %d.%d" #~ msgstr "Source-RPM %d.%d" #~ msgid "Binary RPM %d.%d" #~ msgstr "Binaire RPM %d.%d" libextractor-1.3/po/fr.gmo0000644000175000017500000002026412255661612012543 00000000000000L|H I c ,}  % , - I &j   K  0 > M ] o x      / #3 JX\`p      1 E R_%nC     -;T\ dn v     '/' 6A JXv |     &A H Sa iw     </Mf?v   $* =JRY a oz ,;h',-" (.Ww\1D Ycz*#)&FZ^bv #3Qf n{2G 2AUg}         -,4Z   &- > JU\u",   # 2<Q V coQ7Uah   0 7 > D M S j {     $% >CxS?P!J[Vb&trA/ikzv|6*s7,L;.uW"+dXg\Yh`f :4- {]5 aQ192^8MKOqR3Gw=oje)0#(_} DFpmZn~BN@T Ul'<IcEyH%s: illegal option -- %c %s: invalid option -- %c %s: option `%c%s' doesn't allow an argument %s: option `%s' is ambiguous %s: option `%s' requires an argument %s: option `--%s' doesn't allow an argument %s: option `-W %s' doesn't allow an argument %s: option `-W %s' is ambiguous %s: option requires an argument -- %c %s: unrecognized option `%c%s' %s: unrecognized option `--%s' Arguments mandatory for long options are also mandatory for short options. Australian EnglishBelgian DutchBelgian FrenchCanadian FrenchCastilian SpanishCommandsConventions and miscellaneousCroato-Serbian (Latin)Extract metadata from files.FarsiFile formats and conventionsGamesInitialization of plugin mechanism failed: %s! Kernel routinesKeywords for file %s: Library callsMD4MD5Mexican SpanishNorwegian BokmalRhaeto-RomanicRipeMD160SHA-0SHA-1Serbo-Croatian (Cyrillic)Simplified ChineseSpecial filesSwiss FrenchSwiss GermanSwiss ItalianSystem callsSystem management commandsTraditional ChineseU.K. EnglishU.S. EnglishUsage: %s %s Use --help to get a list of options. You must specify an argument for the `%s' option (option ignored). albumapertureartistbe verbosebook titlecamera makecamera modelcharacter countcharacter setcodec: %s, %u fps, %u mscommentcompanyconductorcontactcontributorcopyrightcreation datecreatordescriptiondisclaimerdistributiondo not print keywords of the given TYPEdo not use the default set of extractor pluginsdurationediting cyclesencoded byexposureexposure modeextract [OPTIONS] [FILENAME]*flashfocal lengthformatformat versiongenregroupimage qualityiso speedkeywordslanguagelast printedlast saved bylicenseline countlist all keyword typesload an extractor plugin named LIBRARYlyricsmacro modemagnificationmanagermetering modemimetypemodification datemonoorganizationorientationpage countpage orderpage orientationpaper sizeparagraph countprint only keywords of the given TYPE (use -L to get a list)print output in bibtex formatprint the version numberprint this helpproduce grep-friendly output (all results on one line per file)producerproduct versionpublication datepublisherrevision historysong countsourcestereosubjectsummarytitletotal editing timetrack numberunknownvendorwarningwhite balanceword countProject-Id-Version: libextractor-0.5.20a Report-Msgid-Bugs-To: libextractor@gnu.org POT-Creation-Date: 2013-12-22 23:11+0100 PO-Revision-Date: 2008-08-24 19:08+0100 Last-Translator: Nicolas Provost Language-Team: French Language: fr MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Generator: KBabel 1.11.4 %s: option illégale -- %c %s: option invalide -- %c %s: l'option `%c%s' ne prend pas d'argument %s: l'option `%s' est ambiguë %s: l'option `%s' requiert un argument %s: l'option `--%s' ne prend pas d'argument %s: l'option `-W %s' ne prend pas d'argument %s: l'option `-W %s' est ambiguë %s: l'option requiert un argument -- %c %s: option non reconnue `%c%s' %s: option non reconnue `--%s' Les arguments obligatoires pour les options longues le sont aussi pour les options courtes. Anglais (Australie)Allemand (Belgique)Français (Belgique)Français (Canada)Espagnol (castillan)CommandesPréférences - DiversSerbo-Croate (latin)Extraction des métadonnées des fichiers.FarsiFormats et préférences de fichierJeuxEchec de l'initialisation du module %s ! Fonctions du NoyauMots-clés pour le fichier %s: Appels de librairieMD4MD5Espagnol (mexicain)Bokmal (Norvège)Rhaeto-RomanicRipeMD160SHA-0SHA-1Serbo-Croate (cyrillique)Chinois simplifiéFichiers spéciauxFrançais (Suisse)Allemand (Suisse)Italien (Suisse)Appels systèmeCommandes de gestion systèmeTraditionnel ChinoisAnglaisAnglais (US)Usage: %s %s Utilisez --help pour obtenir une liste d'options. Vous devez préciser un argument pour l'option `%s' (option ignorée). albumouvertureartisteaffichage détaillétitre du livrefabricant de cameramodèle de cameranombre de caractèresjeu de caractèrescodec: %s, %u fps, %u mscommentairesociétéconducteurcontactcontributeurcopyrightdate de créationcréateurdescriptionavertissementdistributionne pas afficher les mots-clés du TYPE donnéne pas utiliser les modules d'extraction par défautduréecycles d'éditionencodé parexpositionmode d'expositionextract [OPTIONS] [FICHIER]*flashlongueur de focaleformatversion du formatgenregroupequalité d'imagevitesse isomots-cléslanguedernière impression pardernière sauvegarde parlicencenombre de lignesliste tous les types de mots-cléscharge le module d'extraction nommé LIBRARYparolesmode macroagrandissementdirecteurmode métriquetype mimedate de modificationmonoorganisationorientationnombre de pagesordre des pagesorientation de la pagetaille du papiernombre de paragraphesaffiche seulement les mots-clés du TYPE donné (utiliser -L pour avoir la liste)sortie au format bibtexaffiche le numéro de versionaffiche cette aideproduit une sortie exploitable avec "grep" (une ligne contenant tous les résultats d'un fichier)producteurversion de produitdate de publicationéditeurhistorique de révisionnombre de chansonssourcestereosujetrésumétitretemps total d'éditionnuméro de pisteinconnuvendeuralertebalance des blancsnombre de motslibextractor-1.3/po/de.gmo0000644000175000017500000002075712255661612012533 00000000000000t   , * %H ,n - &  1 KQ      !>/Dt        ,9T h u%C    ' 3@ P^w       '/%U^ mx       % 2@ HS&j       %0 AL \<i?-6FO `j{     +!*(L+u,$';k['/&Jq@%  $( ? KU[at  $=4Qr      +7 P Z fs {    58,ek |    ,@RZk &7    #/8Ofk t    V? X t L   !&!9! @!M! T!`! g!r!!!!! !!! ! !9-Y _w:WZihzTlst!XJIc1r7 $[<S|=ARnk?o '8 &GN5aQU/ x0;f,Fg\. ]*b`@DH(qv2M}^PLd>e+V{6E3"%O#y4)~BKCmjup%s: illegal option -- %c %s: invalid option -- %c %s: option `%c%s' doesn't allow an argument %s: option `%s' is ambiguous %s: option `%s' requires an argument %s: option `--%s' doesn't allow an argument %s: option `-W %s' doesn't allow an argument %s: option `-W %s' is ambiguous %s: option requires an argument -- %c %s: unrecognized option `%c%s' %s: unrecognized option `--%s' Arguments mandatory for long options are also mandatory for short options. Australian EnglishBelgian DutchBelgian FrenchCanadian FrenchCommandsConventions and miscellaneousExtract metadata from files.File formats and conventionsGamesInitialization of plugin mechanism failed: %s! Kernel routinesKeywords for file %s: Library callsMD4MD5Mexican SpanishNo ProofingRipeMD160SHA-0SHA-1Simplified ChineseSpecial filesSwiss FrenchSwiss GermanSwiss ItalianSystem callsSystem management commandsTraditional ChineseU.K. EnglishU.S. EnglishUsage: %s %s Use --help to get a list of options. You must specify an argument for the `%s' option (option ignored). albumapertureartistbe verbosebook titlecamera makecamera modelcharacter countcharacter setcodec: %s, %u fps, %u mscommentcompanyconductorcontactcontributorcopyrightcreated by softwarecreation datecreatordescriptiondisclaimerdistributiondo not print keywords of the given TYPEdo not use the default set of extractor pluginsdurationediting cyclesencoded byexposureexposure biasexposure modeextract [OPTIONS] [FILENAME]*flashflash biasfocal lengthformatformat versiongenregroupimage qualityiso speedkeywordslanguagelast printedlast saved bylicenseline countlist all keyword typesload an extractor plugin named LIBRARYlyricsmacro modemagnificationmanagermetering modemimetypemodification datemodified by softwaremonomoodorganizationorientationpage countpage orderpage orientationpaper sizeparagraph countplay counterprint only keywords of the given TYPE (use -L to get a list)print output in bibtex formatprint the version numberprint this helpproduce grep-friendly output (all results on one line per file)producerproduct versionprovidespublication datepublisherrevision historyrippersong countsourcestarting songstereosubjectsummarytemplatetitletotal editing timetrack numberunknownvendorwarningwhite balanceword countProject-Id-Version: libextractor 0.5.14 Report-Msgid-Bugs-To: libextractor@gnu.org POT-Creation-Date: 2013-12-22 23:11+0100 PO-Revision-Date: 2007-03-23 23:16+0100 Last-Translator: Nils Durner Language-Team: German Language: de MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); %s: unzulässige Option -- %c %s: ungültige Option -- %c %s: Option »%c%s« erwartet kein Argument %s: Option »%s« ist mehrdeutig %s: Option »%s« erwartet ein Argument %s: Option »--%s« erwartet kein Argument %s: Option »-W %s« erwartet kein Argument %s: Option »-W %s« ist mehrdeutig %s: Option erwartet ein Argument -- %c %s: unbekannte Option »%c%s« %s: unbekannte Option »--%s« Argumente, die für lange Optionen notwendig sind, sind ebenfalls für die Optionen in Kurzform notwendig. Australisches EnglischBelgisches HolländischBelgisches FranzösischKanadisches FranzösischBefehleKonventionen und SonstigesMetadaten aus den Dateien extrahieren.Dateiformate und -konventionenSpieleInitialisierung des Plugin-Mechanismus' ist fehlgeschlagen: %s. KernelroutinenSchlüsserwörter für die Datei %s: BibliotheksaufrufeMD4MD5Mexikanisches SpanischNo ProofingRipeMD160SHA-0SHA-1Simplified ChineseSpezialdateienSchweizer FranzösischSchweizerdeutschSchweizer ItalienischSystemaufrufeBefehle zur SystemkonfigurationTraditional ChineseBritsches EnglischU.S. EnglischAufruf: %s %s Verwenden Sie --help, um eine Liste aller Optionen zu sehen. Sie müssen ein Argument für die Option »%s« angeben (Option wird ignoriert). AlbumAperturKünstlerviele Informationen ausgebenBuchtitelKameramarkeKamera-ModellZeichenanzahlZeichensatzCodec: %s, %u fps, %u msKommentarUnternehmenVeranstalterKontaktBeiträgerCopyrighterstellt mit der SoftwareDatum der ErstellungErstellerBeschreibungHaftungsausschlussDistributionSchlüsselwörter einer bestimmten ART nicht ausgebenStandardsatz der extractor-Erweiterungen nicht verwendenDauerÄnderungszyklenCodiert vonBelichtungBelichtungsausgleichBelichtungsmethodeextract [OPTIONEN] [DATEINAME]*BlitzBlitzeinrichtungBrennweiteFormatFormatversionFachGruppeBildqualitätISO GeschwindigkeitSchlüsselwörterSprachezuletzt gedrucktzuletzt gespeichert vonLizenzZeilenanzahlalle Arten Schlüsselwörter auflistenextractor-Erweiterung mit der Bezeichnung LIBRARY ladenLiedtexteMakro-ModusVergrößerungManagerMessmethodeMIME-TypDatum der VeränderungGeändert von SoftwareMonoStimmungOrganisationAusrichtungSeitenanzahlSeitenreihenfolgeSeitenausrichtungSeitengrößeAbsatzanzahlAbspielzählernur Schlüsselwörter einer bestimmten ART ausgeben (mit -L die Liste anzeigen lassen)Ausgabe im BibTeX formatdie Versionsnummer anzeigendiese Hilfe anzeigengrep-freundliche Ausgabe erzeugen (alle Ergebnisse als eine Zeile pro Datei)HerstellerProduktversionStellt bereitDatum der VeröffentlichungHerausgeberVersionsgeschichteRipperLiederanzahlQuelleAnfangssongStereoGegenstandKurzbeschreibungVorlageTitelGesamte ÄnderungszeitNummer des StücksunbekanntAnbieterWarnungWeißabgleichWortanzahllibextractor-1.3/config.h.in0000644000175000017500000002636712256015536013046 00000000000000/* config.h.in. Generated from configure.ac by autoheader. */ #define _GNU_SOURCE 1 /* Defined if the host has big endian byte ordering */ #undef BIG_ENDIAN_HOST /* This is a CYGWIN system */ #undef CYGWIN /* This is a Darwin system */ #undef DARWIN /* Define to 1 if translation of program messages to the user's native language is requested. */ #undef ENABLE_NLS /* Build a Mac OS X Framework */ #undef FRAMEWORK_BUILD /* We hope this is a GNU/Linux-compatible system */ #undef GNU_LINUX /* Have libarchive */ #undef HAVE_ARCHIVE /* Define to 1 if you have the header file. */ #undef HAVE_ARCHIVE_H /* Define to 1 if you have the header file. */ #undef HAVE_BZLIB_H /* Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the CoreFoundation framework. */ #undef HAVE_CFLOCALECOPYCURRENT /* Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in the CoreFoundation framework. */ #undef HAVE_CFPREFERENCESCOPYAPPVALUE /* Define if the GNU dcgettext() function is already present or preinstalled. */ #undef HAVE_DCGETTEXT /* Define to 1 if you have the declaration of `_stati64', and to 0 if you don't. */ #undef HAVE_DECL__STATI64 /* Define to 1 if you have the header file, and it defines `DIR'. */ #undef HAVE_DIRENT_H /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H /* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */ #undef HAVE_DOPRNT /* Have exifData in libexiv2 */ #undef HAVE_EXIV2 /* Define to 1 if you have the header file. */ #undef HAVE_FCNTL_H /* Define to 1 if you have the header file. */ #undef HAVE_FFMPEG_AVCODEC_H /* Define to 1 if you have the header file. */ #undef HAVE_FFMPEG_AVFORMAT_H /* Define to 1 if you have the header file. */ #undef HAVE_FFMPEG_AVUTIL_H /* Define to 1 if you have the header file. */ #undef HAVE_FFMPEG_SWSCALE_H /* Have flac */ #undef HAVE_FLAC /* Define to 1 if you have the header file. */ #undef HAVE_FLAC_ALL_H /* Define to 1 if you have the `floor' function. */ #undef HAVE_FLOOR /* Define to 1 if fseeko (and presumably ftello) exists and is declared. */ #undef HAVE_FSEEKO /* Define to 1 if you have the `ftruncate' function. */ #undef HAVE_FTRUNCATE /* Define to 1 if you have the `getcwd' function. */ #undef HAVE_GETCWD /* Define to 1 if you have the `getpagesize' function. */ #undef HAVE_GETPAGESIZE /* Define if the GNU gettext() function is already present or preinstalled. */ #undef HAVE_GETTEXT /* Define to 1 if you have the header file. */ #undef HAVE_GIF_LIB_H /* Have glib */ #undef HAVE_GLIB /* Have gsf */ #undef HAVE_GSF /* gsf_init supported */ #undef HAVE_GSF_INIT /* We have GTK */ #undef HAVE_GTK /* Define if you have the iconv() function. */ #undef HAVE_ICONV /* Define to 1 if you have the header file. */ #undef HAVE_ICONV_H /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Have libjpeg */ #undef HAVE_JPEG /* Define to 1 if you have the header file. */ #undef HAVE_JPEGLIB_H /* Define to 1 if you have the header file. */ #undef HAVE_LANGINFO_H /* Define to 1 if you have the header file. */ #undef HAVE_LIBAVCODEC_AVCODEC_H /* Define to 1 if you have the header file. */ #undef HAVE_LIBAVFORMAT_AVFORMAT_H /* Define to 1 if you have the header file. */ #undef HAVE_LIBAVRESAMPLE_AVRESAMPLE_H /* Define to 1 if you have the header file. */ #undef HAVE_LIBAVUTIL_AVUTIL_H /* Define to 1 if you have the header file. */ #undef HAVE_LIBAVUTIL_FRAME_H /* Have libbz2 */ #undef HAVE_LIBBZ2 /* Define to 1 if you have the `c_r' library (-lc_r). */ #undef HAVE_LIBC_R /* Define to 1 if you have the `intl' library (-lintl). */ #undef HAVE_LIBINTL /* Define to 1 if you have the header file. */ #undef HAVE_LIBINTL_H /* Define to 1 if you have the `resolv' library (-lresolv). */ #undef HAVE_LIBRESOLV /* Have librpm */ #undef HAVE_LIBRPM /* Define to 1 if you have the header file. */ #undef HAVE_LIBSWSCALE_SWSCALE_H /* Define to 1 if you have the header file. */ #undef HAVE_LIMITS_H /* Define to 1 if you have the `lseek64' function. */ #undef HAVE_LSEEK64 /* Define to 1 if you have the header file. */ #undef HAVE_LTDL_H /* Define to 1 if you have the header file. */ #undef HAVE_MAGIC_H /* Define to 1 if you have the `memmove' function. */ #undef HAVE_MEMMOVE /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 if you have the `memset' function. */ #undef HAVE_MEMSET /* Define to 1 if you have the `mkstemp' function. */ #undef HAVE_MKSTEMP /* Define to 1 if you have a working `mmap' system call. */ #undef HAVE_MMAP /* Have libmp4v2 */ #undef HAVE_MP4 /* Define to 1 if you have the header file. */ #undef HAVE_MP4V2_MP4V2_H /* Have libsmf */ #undef HAVE_MPEG2 /* Define to 1 if you have the header file. */ #undef HAVE_MPEG2DEC_MPEG2_H /* Define to 1 if you have the `munmap' function. */ #undef HAVE_MUNMAP /* Define to 1 if you have the header file, and it defines `DIR'. */ #undef HAVE_NDIR_H /* Define to 1 if you have the header file. */ #undef HAVE_NETINET_IN_H /* Define to 1 if you have the header file. */ #undef HAVE_PLIBC_H /* Define to 1 if you have the `pow' function. */ #undef HAVE_POW /* Define to 1 if you have the header file. */ #undef HAVE_RPM_RPMLIB_H /* Define to 1 if you have the `setenv' function. */ #undef HAVE_SETENV /* Define to 1 if you have the `shm_open' function. */ #undef HAVE_SHM_OPEN /* Define to 1 if you have the `shm_unlink' function. */ #undef HAVE_SHM_UNLINK /* Define to 1 if you have the header file. */ #undef HAVE_SMF_H /* Define to 1 if you have the `sqrt' function. */ #undef HAVE_SQRT /* Define to 1 if `stat' has the bug that it succeeds when given the zero-length file name argument. */ #undef HAVE_STAT_EMPTY_STRING_BUG /* Define to 1 if stdbool.h conforms to C99. */ #undef HAVE_STDBOOL_H /* Define to 1 if you have the header file. */ #undef HAVE_STDDEF_H /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the `strcasecmp' function. */ #undef HAVE_STRCASECMP /* Define to 1 if you have the `strchr' function. */ #undef HAVE_STRCHR /* Define to 1 if you have the `strcspn' function. */ #undef HAVE_STRCSPN /* Define to 1 if you have the `strdup' function. */ #undef HAVE_STRDUP /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the `strncasecmp' function. */ #undef HAVE_STRNCASECMP /* Define to 1 if you have the `strndup' function. */ #undef HAVE_STRNDUP /* Define to 1 if you have the `strnlen' function. */ #undef HAVE_STRNLEN /* Define to 1 if you have the `strrchr' function. */ #undef HAVE_STRRCHR /* Define to 1 if you have the `strtoul' function. */ #undef HAVE_STRTOUL /* Define to 1 if you have the header file, and it defines `DIR'. */ #undef HAVE_SYS_DIR_H /* Define to 1 if you have the header file, and it defines `DIR'. */ #undef HAVE_SYS_NDIR_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_PARAM_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Have tidyNodeGetValue in libtidy */ #undef HAVE_TIDY /* Have libtiff */ #undef HAVE_TIFF /* Define to 1 if you have the header file. */ #undef HAVE_TIFFIO_H /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* lacking vorbisfile */ #undef HAVE_VORBISFILE /* Define to 1 if you have the header file. */ #undef HAVE_VORBIS_VORBISFILE_H /* Define to 1 if you have the `vprintf' function. */ #undef HAVE_VPRINTF /* Have zlib */ #undef HAVE_ZLIB /* Define to 1 if you have the header file. */ #undef HAVE_ZLIB_H /* Define to 1 if the system has the type `_Bool'. */ #undef HAVE__BOOL /* Define as const if the declaration of iconv() needs const. */ #undef ICONV_CONST /* iso-639 catalog */ #undef ISOLOCALEDIR /* Defined if the host has little endian byte ordering */ #undef LITTLE_ENDIAN_HOST /* gettext catalogs */ #undef LOCALEDIR /* Define to 1 if `lstat' dereferences a symlink specified with a trailing slash. */ #undef LSTAT_FOLLOWS_SLASHED_SYMLINK /* Define to the sub-directory in which libtool stores uninstalled libraries. */ #undef LT_OBJDIR /* This is a MinGW system */ #undef MINGW /* Define to 1 if your C compiler doesn't accept -c and -o together. */ #undef NO_MINUS_C_MINUS_O /* Some strange OS */ #undef OTHEROS /* Name of package */ #undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the home page for this package. */ #undef PACKAGE_URL /* Define to the version of this package. */ #undef PACKAGE_VERSION /* This is a Solaris system */ #undef SOLARIS /* This is a BSD system */ #undef SOMEBSD /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Enable extensions on AIX 3, Interix. */ #ifndef _ALL_SOURCE # undef _ALL_SOURCE #endif /* Enable GNU extensions on systems that have them. */ #ifndef _GNU_SOURCE # undef _GNU_SOURCE #endif /* Enable threading extensions on Solaris. */ #ifndef _POSIX_PTHREAD_SEMANTICS # undef _POSIX_PTHREAD_SEMANTICS #endif /* Enable extensions on HP NonStop. */ #ifndef _TANDEM_SOURCE # undef _TANDEM_SOURCE #endif /* Enable general extensions on Solaris. */ #ifndef __EXTENSIONS__ # undef __EXTENSIONS__ #endif /* Version number of package */ #undef VERSION /* This is a Windows system */ #undef WINDOWS /* Enable large inode numbers on Mac OS X 10.5. */ #ifndef _DARWIN_USE_64_BIT_INODE # define _DARWIN_USE_64_BIT_INODE 1 #endif /* Number of bits in a file offset, on hosts where this is settable. */ #undef _FILE_OFFSET_BITS /* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */ #undef _LARGEFILE_SOURCE /* Define for large files, on AIX-style hosts. */ #undef _LARGE_FILES /* Define to 1 if on MINIX. */ #undef _MINIX /* Define to 2 if the system does not provide POSIX.1 features except with this defined. */ #undef _POSIX_1_SOURCE /* Define to 1 if you need to in order for `stat' and other things to work. */ #undef _POSIX_SOURCE /* Define to `__inline__' or `__inline' if that's what the C compiler calls it, or to nothing if 'inline' is not supported under any name. */ #ifndef __cplusplus #undef inline #endif /* Define to `int' if does not define. */ #undef pid_t /* Define to `unsigned int' if does not define. */ #undef size_t libextractor-1.3/acinclude.m40000644000175000017500000000343711260753602013202 00000000000000define(GNUPG_CHECK_ENDIAN, [ if test "$cross_compiling" = yes; then AC_MSG_WARN(cross compiling; assuming big endianess) fi AC_MSG_CHECKING(endianess) AC_CACHE_VAL(gnupg_cv_c_endian, [ gnupg_cv_c_endian=unknown # See if sys/param.h defines the BYTE_ORDER macro. AC_TRY_COMPILE([#include #include ], [ #if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN bogus endian macros #endif], [# It does; now see whether it defined to BIG_ENDIAN or not. AC_TRY_COMPILE([#include #include ], [ #if BYTE_ORDER != BIG_ENDIAN not big endian #endif], gnupg_cv_c_endian=big, gnupg_cv_c_endian=little)]) if test "$gnupg_cv_c_endian" = unknown; then AC_TRY_RUN([main () { /* Are we little or big endian? From Harbison&Steele. */ union { long l; char c[sizeof (long)]; } u; u.l = 1; exit (u.c[sizeof (long) - 1] == 1); }], gnupg_cv_c_endian=little, gnupg_cv_c_endian=big, gnupg_cv_c_endian=big ) fi ]) AC_MSG_RESULT([$gnupg_cv_c_endian]) if test "$gnupg_cv_c_endian" = little; then AC_DEFINE(LITTLE_ENDIAN_HOST,1, [Defined if the host has little endian byte ordering]) else AC_DEFINE(BIG_ENDIAN_HOST,1, [Defined if the host has big endian byte ordering]) fi ]) dnl Checks for all prerequisites of the intl subdirectory, dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS, dnl USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL. AC_DEFUN([AM_INTL_SUBDIR], [])libextractor-1.3/compile0000755000175000017500000001615212255663141012370 00000000000000#! /bin/sh # Wrapper for compilers which do not understand '-c -o'. scriptversion=2012-03-05.13; # UTC # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009, 2010, 2012 Free # Software Foundation, Inc. # Written by Tom Tromey . # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # This file is maintained in Automake, please report # bugs to or send patches to # . nl=' ' # We need space, tab and new line, in precisely that order. Quoting is # there to prevent tools from complaining about whitespace usage. IFS=" "" $nl" file_conv= # func_file_conv build_file lazy # Convert a $build file to $host form and store it in $file # Currently only supports Windows hosts. If the determined conversion # type is listed in (the comma separated) LAZY, no conversion will # take place. func_file_conv () { file=$1 case $file in / | /[!/]*) # absolute file, and not a UNC file if test -z "$file_conv"; then # lazily determine how to convert abs files case `uname -s` in MINGW*) file_conv=mingw ;; CYGWIN*) file_conv=cygwin ;; *) file_conv=wine ;; esac fi case $file_conv/,$2, in *,$file_conv,*) ;; mingw/*) file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` ;; cygwin/*) file=`cygpath -m "$file" || echo "$file"` ;; wine/*) file=`winepath -w "$file" || echo "$file"` ;; esac ;; esac } # func_cl_dashL linkdir # Make cl look for libraries in LINKDIR func_cl_dashL () { func_file_conv "$1" if test -z "$lib_path"; then lib_path=$file else lib_path="$lib_path;$file" fi linker_opts="$linker_opts -LIBPATH:$file" } # func_cl_dashl library # Do a library search-path lookup for cl func_cl_dashl () { lib=$1 found=no save_IFS=$IFS IFS=';' for dir in $lib_path $LIB do IFS=$save_IFS if $shared && test -f "$dir/$lib.dll.lib"; then found=yes lib=$dir/$lib.dll.lib break fi if test -f "$dir/$lib.lib"; then found=yes lib=$dir/$lib.lib break fi done IFS=$save_IFS if test "$found" != yes; then lib=$lib.lib fi } # func_cl_wrapper cl arg... # Adjust compile command to suit cl func_cl_wrapper () { # Assume a capable shell lib_path= shared=: linker_opts= for arg do if test -n "$eat"; then eat= else case $1 in -o) # configure might choose to run compile as 'compile cc -o foo foo.c'. eat=1 case $2 in *.o | *.[oO][bB][jJ]) func_file_conv "$2" set x "$@" -Fo"$file" shift ;; *) func_file_conv "$2" set x "$@" -Fe"$file" shift ;; esac ;; -I) eat=1 func_file_conv "$2" mingw set x "$@" -I"$file" shift ;; -I*) func_file_conv "${1#-I}" mingw set x "$@" -I"$file" shift ;; -l) eat=1 func_cl_dashl "$2" set x "$@" "$lib" shift ;; -l*) func_cl_dashl "${1#-l}" set x "$@" "$lib" shift ;; -L) eat=1 func_cl_dashL "$2" ;; -L*) func_cl_dashL "${1#-L}" ;; -static) shared=false ;; -Wl,*) arg=${1#-Wl,} save_ifs="$IFS"; IFS=',' for flag in $arg; do IFS="$save_ifs" linker_opts="$linker_opts $flag" done IFS="$save_ifs" ;; -Xlinker) eat=1 linker_opts="$linker_opts $2" ;; -*) set x "$@" "$1" shift ;; *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) func_file_conv "$1" set x "$@" -Tp"$file" shift ;; *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) func_file_conv "$1" mingw set x "$@" "$file" shift ;; *) set x "$@" "$1" shift ;; esac fi shift done if test -n "$linker_opts"; then linker_opts="-link$linker_opts" fi exec "$@" $linker_opts exit 1 } eat= case $1 in '') echo "$0: No command. Try '$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: compile [--help] [--version] PROGRAM [ARGS] Wrapper for compilers which do not understand '-c -o'. Remove '-o dest.o' from ARGS, run PROGRAM with the remaining arguments, and rename the output as expected. If you are trying to build a whole package this is not the right script to run: please start by reading the file 'INSTALL'. Report bugs to . EOF exit $? ;; -v | --v*) echo "compile $scriptversion" exit $? ;; cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) func_cl_wrapper "$@" # Doesn't return... ;; esac ofile= cfile= for arg do if test -n "$eat"; then eat= else case $1 in -o) # configure might choose to run compile as 'compile cc -o foo foo.c'. # So we strip '-o arg' only if arg is an object. eat=1 case $2 in *.o | *.obj) ofile=$2 ;; *) set x "$@" -o "$2" shift ;; esac ;; *.c) cfile=$1 set x "$@" "$1" shift ;; *) set x "$@" "$1" shift ;; esac fi shift done if test -z "$ofile" || test -z "$cfile"; then # If no '-o' option was seen then we might have been invoked from a # pattern rule where we don't need one. That is ok -- this is a # normal compilation that the losing compiler can handle. If no # '.c' file was seen then we are probably linking. That is also # ok. exec "$@" fi # Name of file we expect compiler to create. cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` # Create the lock directory. # Note: use '[/\\:.-]' here to ensure that we don't use the same name # that we are using for the .o file. Also, base the name on the expected # object file name, since that is what matters with a parallel build. lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d while true; do if mkdir "$lockdir" >/dev/null 2>&1; then break fi sleep 1 done # FIXME: race condition here if user kills between mkdir and trap. trap "rmdir '$lockdir'; exit 1" 1 2 15 # Run the compile. "$@" ret=$? if test -f "$cofile"; then test "$cofile" = "$ofile" || mv "$cofile" "$ofile" elif test -f "${cofile}bj"; then test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" fi rmdir "$lockdir" exit $ret # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: libextractor-1.3/config.rpath0000755000175000017500000003744412030336300013312 00000000000000#! /bin/sh # Output a system dependent set of variables, describing how to set the # run time search path of shared libraries in an executable. # # Copyright 1996-2006 Free Software Foundation, Inc. # Taken from GNU libtool, 2001 # Originally by Gordon Matzigkeit , 1996 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # # The first argument passed to this file is the canonical host specification, # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld # should be set by the caller. # # The set of defined variables is at the end of this script. # Known limitations: # - On IRIX 6.5 with CC="cc", the run time search patch must not be longer # than 256 bytes, otherwise the compiler driver will dump core. The only # known workaround is to choose shorter directory names for the build # directory and/or the installation directory. # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a shrext=.so host="$1" host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` # Code taken from libtool.m4's _LT_CC_BASENAME. for cc_temp in $CC""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'` # Code taken from libtool.m4's AC_LIBTOOL_PROG_COMPILER_PIC. wl= if test "$GCC" = yes; then wl='-Wl,' else case "$host_os" in aix*) wl='-Wl,' ;; darwin*) case $cc_basename in xlc*) wl='-Wl,' ;; esac ;; mingw* | pw32* | os2*) ;; hpux9* | hpux10* | hpux11*) wl='-Wl,' ;; irix5* | irix6* | nonstopux*) wl='-Wl,' ;; newsos6) ;; linux*) case $cc_basename in icc* | ecc*) wl='-Wl,' ;; pgcc | pgf77 | pgf90) wl='-Wl,' ;; ccc*) wl='-Wl,' ;; como) wl='-lopt=' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) wl='-Wl,' ;; esac ;; esac ;; osf3* | osf4* | osf5*) wl='-Wl,' ;; sco3.2v5*) ;; solaris*) wl='-Wl,' ;; sunos4*) wl='-Qoption ld ' ;; sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) wl='-Wl,' ;; sysv4*MP*) ;; unicos*) wl='-Wl,' ;; uts4*) ;; esac fi # Code taken from libtool.m4's AC_LIBTOOL_PROG_LD_SHLIBS. hardcode_libdir_flag_spec= hardcode_libdir_separator= hardcode_direct=no hardcode_minus_L=no case "$host_os" in cygwin* | mingw* | pw32*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs=yes if test "$with_gnu_ld" = yes; then # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. # Unlike libtool, we use -rpath here, not --rpath, since the documented # option of GNU ld is called -rpath, not --rpath. hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' case "$host_os" in aix3* | aix4* | aix5*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no fi ;; amigaos*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # Samuel A. Falvo II reports # that the semantics of dynamic libraries on AmigaOS, at least up # to version 4, is to share data among multiple programs linked # with the same dynamic library. Since this doesn't match the # behavior of shared libraries on other platforms, we cannot use # them. ld_shlibs=no ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; cygwin* | mingw* | pw32*) # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then : else ld_shlibs=no fi ;; interix3*) hardcode_direct=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; linux*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; netbsd*) ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs=no elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' else ld_shlibs=no fi ;; esac ;; sunos4*) hardcode_direct=yes ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then hardcode_libdir_flag_spec= fi else case "$host_os" in aix3*) # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix4* | aix5*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix5*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac fi hardcode_direct=yes hardcode_libdir_separator=':' if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 hardcode_direct=yes else # We have old collect2 hardcode_direct=unsupported hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac fi # Begin _LT_AC_SYS_LIBPATH_AIX. echo 'int main () { return 0; }' > conftest.c ${CC} ${LDFLAGS} conftest.c -o conftest aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` fi if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib" fi rm -f conftest.c conftest # End _LT_AC_SYS_LIBPATH_AIX. if test "$aix_use_runtimelinking" = yes; then hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' else hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" fi fi ;; amigaos*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes # see comment about different semantics on the GNU ld section ld_shlibs=no ;; bsdi[45]*) ;; cygwin* | mingw* | pw32*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec=' ' libext=lib ;; darwin* | rhapsody*) hardcode_direct=no if test "$GCC" = yes ; then : else case $cc_basename in xlc*) ;; *) ld_shlibs=no ;; esac fi ;; dgux*) hardcode_libdir_flag_spec='-L$libdir' ;; freebsd1*) ld_shlibs=no ;; freebsd2.2*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; freebsd2*) hardcode_direct=yes hardcode_minus_L=yes ;; freebsd* | kfreebsd*-gnu | dragonfly*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; hpux9*) hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; hpux10*) if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_direct=no ;; *) hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; netbsd*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; newsos6) hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; openbsd*) hardcode_direct=yes if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then hardcode_libdir_flag_spec='${wl}-rpath,$libdir' else case "$host_os" in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) hardcode_libdir_flag_spec='-R$libdir' ;; *) hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; osf3*) hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) if test "$GCC" = yes; then hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else # Both cc and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi hardcode_libdir_separator=: ;; solaris*) hardcode_libdir_flag_spec='-R$libdir' ;; sunos4*) hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes ;; sysv4) case $host_vendor in sni) hardcode_direct=yes # is this really true??? ;; siemens) hardcode_direct=no ;; motorola) hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac ;; sysv4.3*) ;; sysv4*MP*) if test -d /usr/nec; then ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) ;; sysv5* | sco3.2v5* | sco5v6*) hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator=':' ;; uts4*) hardcode_libdir_flag_spec='-L$libdir' ;; *) ld_shlibs=no ;; esac fi # Check dynamic linker characteristics # Code taken from libtool.m4's AC_LIBTOOL_SYS_DYNAMIC_LINKER. libname_spec='lib$name' case "$host_os" in aix3*) ;; aix4* | aix5*) ;; amigaos*) ;; beos*) ;; bsdi[45]*) ;; cygwin* | mingw* | pw32*) shrext=.dll ;; darwin* | rhapsody*) shrext=.dylib ;; dgux*) ;; freebsd1*) ;; kfreebsd*-gnu) ;; freebsd* | dragonfly*) ;; gnu*) ;; hpux9* | hpux10* | hpux11*) case $host_cpu in ia64*) shrext=.so ;; hppa*64*) shrext=.sl ;; *) shrext=.sl ;; esac ;; interix3*) ;; irix5* | irix6* | nonstopux*) case "$host_os" in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;; *) libsuff= shlibsuff= ;; esac ;; esac ;; linux*oldld* | linux*aout* | linux*coff*) ;; linux*) ;; knetbsd*-gnu) ;; netbsd*) ;; newsos6) ;; nto-qnx*) ;; openbsd*) ;; os2*) libname_spec='$name' shrext=.dll ;; osf3* | osf4* | osf5*) ;; solaris*) ;; sunos4*) ;; sysv4 | sysv4.3*) ;; sysv4*MP*) ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) ;; uts4*) ;; esac sed_quote_subst='s/\(["`$\\]\)/\\\1/g' escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"` shlibext=`echo "$shrext" | sed -e 's,^\.,,'` escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <, 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' sed_minuso='s/.* -o \([^ ]*\).*/\1/p' # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case $1 in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' autom4te touch the output file, or create a stub one automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file yacc create \`y.tab.[ch]', if possible, from existing .[ch] Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and \`g' are ignored when checking the name. Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; esac # normalize program name to check for. program=`echo "$1" | sed ' s/^gnu-//; t s/^gnu//; t s/^g//; t'` # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). This is about non-GNU programs, so use $1 not # $program. case $1 in lex*|yacc*) # Not GNU programs, they don't have --version. ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running `$TOOL --version' or `$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case $program in aclocal*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case $f in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te*) echo 1>&2 "\ WARNING: \`$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get \`$1' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison*|yacc*) echo 1>&2 "\ WARNING: \`$1' $msg. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if test $# -ne 1; then eval LASTARG=\${$#} case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.h fi ;; esac fi if test ! -f y.tab.h; then echo >y.tab.h fi if test ! -f y.tab.c; then echo 'main() { return 0; }' >y.tab.c fi ;; lex*|flex*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if test $# -ne 1; then eval LASTARG=\${$#} case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if test ! -f lex.yy.c; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit $? fi ;; makeinfo*) echo 1>&2 "\ WARNING: \`$1' is $msg. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n ' /^@setfilename/{ s/.* \([^ ]*\) *$/\1/ p q }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: