From bb3f60e5397bdd40eee883eef80c2dfe3b45315a Mon Sep 17 00:00:00 2001
From: Dong-hee Na Version 1.0.6 of 6 September 2010 Copyright 1996-2010 Julian Seward This program, Version 1.0.8 of 13 July 2019 Copyright © 1996-2019 Julian Seward This program, Redistribution and use in source and binary forms, with
or without modification, are permitted provided that the
following conditions are met: Redistributions of source code must retain the
above copyright notice, this list of conditions and the
following disclaimer. Table of Contents How to use bzip2 describes how to use
+ How to use bzip2 describes how to use
Programming with libbzip2 describes the
+ Programming with libbzip2 describes the
programming interfaces in detail, and Miscellanea records some
+ Miscellanea records some
miscellaneous notes which I thought ought to be recorded
somewhere. Table of Contents This chapter contains a copy of the
Compress or decompress to standard
output. Suppress non-essential warning messages.
@@ -478,7 +479,7 @@ Set the block size to 100 k, 200 k ... 900 k
- when compressing. Has no effect when decompressing. See MEMORY MANAGEMENT below. The
+ when compressing. Has no effect when decompressing. See MEMORY MANAGEMENT below. The
The sorting phase of compression gathers together similar
strings in the file. Because of this, files containing very long
runs of repeated symbols, like "aabaabaabaab ..." (repeated
@@ -638,14 +639,14 @@ I/O error messages are not as helpful as they could be.
This manual page pertains to version 1.0.6 of
+ This manual page pertains to version 1.0.8 of
Julian Seward,
- The ideas embodied in
Table of Contents For general background information, particularly about
memory use and performance aspects, you'd be well advised to read
-How to use bzip2 as well. To use any part of the library, you need to
This interface provides services for compressing and
decompressing data in memory. There's no provision for dealing
with files, streams or any other I/O mechanisms, just straight
@@ -800,9 +801,9 @@ This interface provides some handy wrappers around the
low-level interface to facilitate reading and writing
A program and library for data compression
bzip2
, the
+bzip2
, the
associated library libbzip2
, and
- all documentation, are copyright 1996-2010 Julian Seward.
+ all documentation, are copyright © 1996-2019 Julian Seward.
All rights reserved.
+
+
@@ -211,9 +212,9 @@
bzip2
compresses files
using the Burrows-Wheeler block-sorting text compression
algorithm, and Huffman coding. Compression is generally
@@ -228,24 +229,24 @@
library interface. Most of the manual is devoted to this
library, not the program, which is good news if your interest is
only in the program.
-
-
+
bzip2
; this is the only part
you need to read if you just want to know how to operate the
program.
+
bzip2
man page, and nothing
else.
bzip2
,
bunzip2
- a block-sorting file
- compressor, v1.0.6bzcat
-
decompresses files to stdoutbzip2recover
-
recovers data from damaged bzip2 files
bzip2
[
-cdfkqstvzVL123456789 ] [ filenames ... ]bunzip2
[
@@ -287,9 +288,9 @@
filename
bzip2
compresses files
using the Burrows-Wheeler block sorting text compression
algorithm, and Huffman coding. Compression is generally
@@ -329,7 +330,7 @@
bzip2
attempts to guess the
filename for the decompressed file from that of the compressed
file as follows:
-
+
filename.bz2
becomes
filename
consistency error (eg, bug) which caused
bzip2
to panic.
-c --stdout
the same figure, at the expense of your compression ratio. In
short, if your machine is low on memory (8 megabytes or less),
use
-s
for everything. See
- MEMORY MANAGEMENT below.
+ MEMORY MANAGEMENT below.
-q --quiet
-9
(or
-best
)
--fast
and
--best
aliases are primarily
for GNU gzip
compatibility.
@@ -502,9 +503,9 @@
renders these flags irrelevant.
bzip2
compresses large
files in blocks. The block size affects both the compression
ratio achieved, and the amount of memory needed for compression
@@ -574,9 +575,9 @@
-8 6800k 3300k 2100k 828642
-9 7600k 3700k 2350k 828642
bzip2
compresses files in
blocks, usually 900kbytes long. Each block is handled
independently. If a media or transmission error causes a
@@ -612,9 +613,9 @@
loss through media or transmission errors, you might consider
compressing with a smaller block size.
bzip2
will perform best on
machines with very large caches.
bzip2
tries hard to detect I/O
errors and exit cleanly, but the details of what the problem is
sometimes seem rather misleading.bzip2
. Compressed data created by
this version is entirely forwards and backwards compatible with the
previous public releases, versions 0.1pl2, 0.9.0 and 0.9.5, 1.0.0,
@@ -665,11 +666,11 @@
MaybeUInt64
set to be an
unsigned 64-bit integer.
jseward@bzip.org
jseward@acm.org
bzip2
are due to (at least) the
following people: Michael Burrows and David Wheeler (for the
@@ -690,14 +691,14 @@
advice and were generally helpful.
+
libbzip2
.
libbzip2
is a flexible
library for compressing and decompressing data in the
bzip2
data format. Although
@@ -765,9 +766,9 @@
#include <bzlib.h>
into your sources.
consumer-pull style of activity, or producer-push, or a mixture
of both.
bzip2
format files
@@ -839,9 +840,9 @@
file operations and file attributes, whilst not being much of an
imposition on the programmer.
For very simple needs,
BZ2_bzBuffToBuffCompress
and
BZ2_bzBuffToBuffDecompress
are
@@ -871,9 +872,9 @@
The library is designed to recover cleanly in all situations, including the worst-case situation of decompressing random data. I'm not 100% sure that it can always do this, so @@ -901,7 +902,7 @@
BZ_OK
The requested action was completed successfully.
The following return values indicate an error of some kind.
-BZ_CONFIG_ERROR
Indicates that the library has been improperly compiled on your platform -- a major configuration error. @@ -1008,12 +1009,12 @@
typedef struct { char *next_in; unsigned int avail_in; @@ -1137,9 +1138,9 @@-if BZ_OK is returned no specific action needed in case of error
int BZ2_bzCompress ( bz_stream *strm, int action );
Provides more input and/or output buffer space for the library. The caller maintains input and output buffers, and @@ -1329,9 +1330,9 @@
BZ_PARAM_ERROR if strm is NULL, or strm->s is NULL-
int BZ2_bzCompressEnd ( bz_stream *strm );
Releases all memory associated with a compression stream.
@@ -1339,9 +1340,9 @@BZ_PARAM_ERROR if strm is NULL or strm->s is NULL BZ_OK otherwise-
int BZ2_bzDecompressInit ( bz_stream *strm, int verbosity, int small );
Prepares for decompression. As with
BZ2_bzCompressInit
, a
@@ -1364,7 +1365,7 @@
Note that the amount of memory needed to decompress a stream cannot be determined until the stream's header has been @@ -1386,9 +1387,9 @@
int BZ2_bzDecompress ( bz_stream *strm );
Provides more input and/out output buffer space for the library. The caller maintains input and output buffers, and uses @@ -1461,9 +1462,9 @@
int BZ2_bzDecompressEnd ( bz_stream *strm );
Releases all memory associated with a decompression stream.
@@ -1476,13 +1477,13 @@None.-
This interface provides functions for reading and writing
bzip2
format files. First, some
general points.
All of the functions take an
int*
first argument,
bzerror
. After each call,
@@ -1532,9 +1533,9 @@
typedef void BZFILE; BZFILE *BZ2_bzReadOpen( int *bzerror, FILE *f, @@ -1594,9 +1595,9 @@-BZ2_bzClose otherwise
int BZ2_bzRead ( int *bzerror, BZFILE *b, void *buf, int len );
Reads up to len
(uncompressed) bytes from the compressed file
@@ -1668,9 +1669,9 @@
void BZ2_bzReadGetUnused( int* bzerror, BZFILE *b, void** unused, int* nUnused );
Returns data which was read from the compressed file but @@ -1697,9 +1698,9 @@
Allowable next actions:
BZ2_bzReadClose-
void BZ2_bzReadClose ( int *bzerror, BZFILE *b );
Releases all memory pertaining to the compressed file
b
.
@@ -1717,9 +1718,9 @@
Allowable next actions:
none-
BZFILE *BZ2_bzWriteOpen( int *bzerror, FILE *f, int blockSize100k, int verbosity, int workFactor );@@ -1763,9 +1764,9 @@
void BZ2_bzWrite ( int *bzerror, BZFILE *b, void *buf, int len );
Absorbs len
bytes from the
buffer buf
, eventually to be
@@ -1781,9 +1782,9 @@
void BZ2_bzWriteClose( int *bzerror, BZFILE* f, int abandon, unsigned int* nbytes_in, @@ -1833,13 +1834,13 @@-BZ_OK otherwise
The high-level library facilitates use of
bzip2
data streams which form
some part of a surrounding, larger data stream.
For writing, the library takes an open file handle,
writes compressed data to it,
fflush
es it but does not
@@ -1882,9 +1883,9 @@
Here's how you'd write data to a compressed file:
FILE* f; BZFILE* b; @@ -1949,12 +1950,12 @@- +}
int BZ2_bzBuffToBuffCompress( char* dest, unsigned int* destLen, char* source, @@ -2005,9 +2006,9 @@-BZ_OK otherwise
int BZ2_bzBuffToBuffDecompress( char* dest, unsigned int* destLen, char* source, @@ -2065,9 +2066,9 @@-otherwise
Yoshioka Tsuneo has contributed some functions to give
better zlib
compatibility.
These functions are BZ2_bzopen
,
@@ -2108,12 +2109,12 @@
*errnum
to its numerical
value.
-In a deeply embedded application, you might want to use just the memory-to-memory functions. You can do this conveniently by compiling the library with preprocessor symbol @@ -2131,9 +2132,9 @@
When compiled like this, all functions will ignore
verbosity
settings.
libbzip2
contains a number
of internal assertion checks which should, needless to say, never
be activated. Nevertheless, if an assertion should fail,
@@ -2143,13 +2144,13 @@
bzip2/libbzip2: internal error number N.
-This is a bug in bzip2/libbzip2, 1.0.6 of 6 September 2010. -Please report it to me at: jseward@bzip.org. If this happened +
This is a bug in bzip2/libbzip2, 1.0.8 of 13 July 2019. +Please report it to: bzip2-devel@sourceware.org. If this happened when you were using some program which uses libbzip2 as a component, you should also report this bug to the author(s) of that program. Please make an effort to report this bug; timely and accurate bug reports eventually lead to higher -quality software. Thanks. Julian Seward, 6 September 2010. +quality software. Thanks.
where N
is some error code
@@ -2176,14 +2177,14 @@
Everything related to Windows has been contributed by
Yoshioka Tsuneo
(tsuneo@rr.iij4u.or.jp
), so
-you should send your queries to him (but perhaps Cc: me,
-jseward@bzip.org
).
bzip2-devel@sourceware.org
).
My vague understanding of what to do is: using Visual C++
5.0, open the project file
libbz2.dsp
, and build. That's
@@ -2218,12 +2219,12 @@
Table of Contents
-These are just some random thoughts of mine. Your mileage may vary.
-bzip2-1.0.X
,
0.9.5
and
0.9.0
use exactly the same file
@@ -2250,7 +2251,7 @@
The run-length encoder, which is the first of the compression transformations, is entirely irrelevant. The original purpose was to protect the sorting algorithm from the @@ -2298,7 +2299,7 @@
Improvements which I was able to incorporate into 0.9.0, despite using the same file format, are:
-Single array implementation of the inverse BWT. This significantly speeds up decompression, presumably because it reduces the number of cache misses.
After some consideration, I have decided not to use GNU
autoconf
to configure 0.9.5 or
1.0.
bzip2.c
, before compiling.
Otherwise the resulting binary won't work correctly.
I tried pretty hard to make sure
bzip2
is bug free, both by
design and by testing. Hopefully you'll never need to read this
@@ -2379,7 +2380,7 @@
Recompile the program with no optimisation, and see if it works. And/or try a different compiler. I heard all @@ -2447,9 +2448,9 @@
bzip2
is a resource hog.
It soaks up large amounts of CPU cycles and memory. Also, it
gives very large latencies. In the worst case, you can feed many
@@ -2472,47 +2473,47 @@
bzip2
is not research
work, in the sense that it doesn't present any new ideas.
Rather, it's an engineering exercise based on existing
ideas.
Four documents describe essentially all the ideas behind
bzip2
:
MichaelBurrowsandD.J.Wheeler:
-"Ablock-sortinglosslessdatacompressionalgorithm"
-10thMay1994.
-DigitalSRCResearchReport124.
-ftp://ftp.digital.com/pub/DEC/SRC/research-reports/SRC-124.ps.gz
-Ifyouhavetroublefindingit,trysearchingatthe
-NewZealandDigitalLibrary,http://www.nzdl.org.
+
Michael Burrows and D. J. Wheeler:
+ "A block-sorting lossless data compression algorithm"
+ 10th May 1994.
+ Digital SRC Research Report 124.
+ ftp://ftp.digital.com/pub/DEC/SRC/research-reports/SRC-124.ps.gz
+ If you have trouble finding it, try searching at the
+ New Zealand Digital Library, http://www.nzdl.org.
-DanielS.HirschbergandDebraA.LeLewer
-"EfficientDecodingofPrefixCodes"
-CommunicationsoftheACM,April1990,Vol33,Number4.
-Youmightbeabletogetanelectroniccopyofthis
-fromtheACMDigitalLibrary.
+Daniel S. Hirschberg and Debra A. LeLewer
+ "Efficient Decoding of Prefix Codes"
+ Communications of the ACM, April 1990, Vol 33, Number 4.
+ You might be able to get an electronic copy of this
+ from the ACM Digital Library.
-DavidJ.Wheeler
-Programbred3.candaccompanyingdocumentbred3.ps.
-Thiscontainstheideabehindthemulti-tableHuffmancodingscheme.
-ftp://ftp.cl.cam.ac.uk/users/djw3/
+David J. Wheeler
+ Program bred3.c and accompanying document bred3.ps.
+ This contains the idea behind the multi-table Huffman coding scheme.
+ ftp://ftp.cl.cam.ac.uk/users/djw3/
-JonL.BentleyandRobertSedgewick
-"FastAlgorithmsforSortingandSearchingStrings"
-AvailablefromSedgewick'swebpage,
-www.cs.princeton.edu/~rs
+Jon L. Bentley and Robert Sedgewick
+ "Fast Algorithms for Sorting and Searching Strings"
+ Available from Sedgewick's web page,
+ www.cs.princeton.edu/~rs
The following paper gives valuable additional insights into the algorithm, but is not immediately the basis of any code used in bzip2.
-PeterFenwick:
-BlockSortingTextCompression
-Proceedingsofthe19thAustralasianComputerScienceConference,
-Melbourne,Australia.Jan31-Feb2,1996.
-ftp://ftp.cs.auckland.ac.nz/pub/peter-f/ACSC96paper.ps
Peter Fenwick:
+ Block Sorting Text Compression
+ Proceedings of the 19th Australasian Computer Science Conference,
+ Melbourne, Australia. Jan 31 - Feb 2, 1996.
+ ftp://ftp.cs.auckland.ac.nz/pub/peter-f/ACSC96paper.ps
Kunihiko Sadakane's sorting algorithm, mentioned above, is available from:
http://naomi.is.s.u-tokyo.ac.jp/~sada/papers/Sada98b.ps.gz
@@ -2524,15 +2525,15 @@
Finally, the following papers document some investigations I made into the performance of sorting and decompression algorithms:
-JulianSeward
-OnthePerformanceofBWTSortingAlgorithms
-ProceedingsoftheIEEEDataCompressionConference2000
-Snowbird,Utah.28-30March2000.
+
Julian Seward
+ On the Performance of BWT Sorting Algorithms
+ Proceedings of the IEEE Data Compression Conference 2000
+ Snowbird, Utah. 28-30 March 2000.
-JulianSeward
-Space-timeTradeoffsintheInverseB-WTransform
-ProceedingsoftheIEEEDataCompressionConference2001
-Snowbird,Utah.27-29March2001.
+Julian Seward
+ Space-time Tradeoffs in the Inverse B-W Transform
+ Proceedings of the IEEE Data Compression Conference 2001
+ Snowbird, Utah. 27-29 March 2001.
UHK)kZCVp)(y{Azq$Y28Cccj#_pus33(E!6p%g?JfYeeV~ z6BDv>=Pg)hF7^9UJP&@SQ<=Ci_9zmih%rgC_fY1k!rKpDK0WMGIuueYb73UIuvSxZ zo-1u#16C&aequOn^Jg}1CkRdy0kXyy$X08=FFKv?ae=a-X>DJNZhn)X?V4;{6yj zQ5cj)5n}xi`kXYL3>B^qg9BuRuN*c*f78sUfhy&Hhm|Xx*Co@;ot6iXbX) zlcfW&5LaucypieoW=Y3~{$EWQ7Un)I@q=CjsZ|DvBy6DwIMP4yS%%$**z<8rO2gJc zU-&7rB!T*0nBcxZk+Cpp TyX2IG+(83s!dFIftPVP z#ZTX||CT)P!p-ww`A53r @$Q(EbhAu*C;ou8SMtiOAdBcA~1 gNT&PPrZg6>lZ6*{Z|r-P z+<<00?zOHnA83P^<_OF+TueK*(qi>ZM%t(64ZNP}NVTVb_KF4T@;a_86E2?6A)w3$ z;+PSm>NYgLve2Tc4Va-U#N0CKcA6LBVC^n`Tv;Cvc;t0Vu?K=4_Og7~taNW**I^VC z&-9m6pgYAJt|wB7J>2XC%VWxrWv~}elmo%#ruSLNG03w(C)9bwHr?_%g()S3Y&-xy zKG^2b&39L4EJ*1!^%Q0w+Y@+2?k)!YY=yd20ISd3% `Cz%^&lL;pJeZ@h71(?Z| zWa$7=Kd|H(%gP$4Z1|&IesnkPkOQX}&?T}pTw)(5Vi<}%8$6?s?P=`UP-}93K7tx` zH=Wm1X)>DC4P`6c4;YOLl6ypHjBB>Jx@X0hgb)65W|@4qSSjL_%u2ML?CW%`D7IN9 zC@ygitFolfU4=uN)fs3Gn($sFKGAD^_09||<;at}=@q*>-yFvM5d&Y|G_FIWZ$5lX zIdM{?tzZtqr=3K3^SQ*nBWQF)nX^+{7~NQbE5G(@j%voCvH#v(4&}io?hyc#Y#`Q1L+o%w| z4wwEL8WgD!B3llDhlPvd|1&@2`I{>KH$P~m)W#j50p^xn9ln)x3NH)9l@jY4W@l20l+c7^3 zjvG$!JnUxs0THvqj2UAl24TuvE*3M7v5?3T{sjFwX@2B4AQM9I$i(Uz0l=WILC+|V z${6m*0s5nqf>}rptwI2j)caJEX=$s-`R_sDEk@r6U@CG*QVN2&j#w?sSj9eX`jsNO z3x8zPLtzcCxFWKokoJI5PK+CyPtn2^8Ren{ww`fmVNPc6xzh0ngK$8=1tGs3S&5vH z)WKFkV6X@m!YL`h+NK~7u?(i06h<4Z@}T>`0B5psKvD@ZakM>9 $zoplJ$;>@^`YvD$07IPxj?9v%X7mnBR_y93x(3G6iSQJF;0oS$Y z=&}GvSsJqY;RtvD`c#x`AHp~0(xC7@+CE}eMX`Pu;mjq`GR=`H04+H aJ;*5(9Rf$QjufJbzADIDM>*Gu9F+3cW6U>Hcaoo9lvziv!OWrqc}D#Zfx=(~ z B-4PvV~bkd!*AAWYTk z-hQ&E4S0h*xAYK1v)Wk^DKidKryvw{;225+-0+c**W>NJ)yMhd@>C2l6V|pjyT8|` z`!?{8U(au5Ji%XSHx`qtMEk#XVt|BSoc=n3F(XVCi_KosaaWYILCa@m`BjtW{$}gw zk3`ww$kV@n;(jf3pHKbHeEsFzll8}z=o{Yt?w4djmz$#o)9^rDhh3$GWQNX36A-&^ z^!3=co0lkr0Ty#GEriVk$7;_E5;Y#CKEhkxOk>NRPtR@gDfrde?HeB?Hs)Abv _MX?ZX2MqHDcD$or&x!0vHPVw zpWf7B&htvGzSup7F#7x^p^A%{G8Yw1N?P(I%)sr z43*A&csk2C^?Uj9VWaDHWioH@OY*SPbHcXX095n~;pwNkM|aMQh9BD+@M-jN+xNcs z-PT}mdk(dK%}?)JK0OO|^_@iZ%O)mKMQnx0ynq{981D$LGvQC-U4qfC##ZIITM7xU z6?&X%(cnRC6fB?aFK@Rc5TMxRuH+{cC>&bWE*mKhwU8dfia!AZ`kNgTGw&KjSGSJ) zsM!zCX!M}~(C#jA2cQNFIATu#@SC1j3WaN2#3;%HF0Vw+1?Lbl%$j!K%PwRfC0t6Q z1<}qjPfEDMS%HLZj$O8OM8Tf@k8m*bhAm2<-QtoxW2fZ=DX~KdJ@8xpHj{a3R+fys zy!d&>dB#QCdK8f(S5Yn5GRqRnO5z2zo1EK}Th+yDN8Zb*Tx2st;#{jp8TJfVo!HV~ z!i)F5iL=+#&J^F~ZiO0%sI0R91UPu{w*-R?GY};qDOfL{f`Om5t7hfvIRv{JhA!Sr zlt}@YQIf$MvjSq-5HN^ Kk!a-i)xH&=p8gvDUhF&;EbICyn| ziS&j;YE8H!*eZ^Y?Kn48L?Fx~O|}oW(Y&|z9*KXiFr#Jq_Wfk= PR46=w!8^RhA3v3d zfOq@PpKI%uk5b(M&PDW;G|;iM_ 0yf<;3spgZ IP+E*j z5Ke?pB*Uj)Oe^G5sHq6&x p){<9%h}>R{ zjS2 tvY4j+Gf(-B;@)r+%hMgB~p7e|lJO zFRI}?4NXUiC7-qksP|tO&%O}rK#iHGPh1Nqz8Nc#X6j(<)jB3zM(1_jz)N-qmJ_CT z@`l6BBN9r_@LJbW1Xf|&pVxEazjRH!Dj-Yh{~+xC0y!jTq5dBTZu*xkC}z4GEGSH) za%D6;I4kFWgZO&eAO!Fm*CB=8Q-e24^cMXa#4vPwwz+D11P^Y*8~S)A#$aG{1rFRv z^U%Ot5RKr0IC*G(dsHg)kkz(y;WUer%l?{rH#On;HaoX+M+$vnBh7@zC^iU&$^;V> z;zZiiB cs-3pb}THwoK7{p`;Pm>=Uw^&>0Yi$a(e9j;aO)3!X^* zWL%@|+444E{H~jA9fL;1HG({cZzu&E&1M@Gi(iRZMQ|cj;UF?THR}AMc5iMjJ44=< zBqVy8-kddJ6J0N(20WeeihQTa;^5Sx3fiyiO1ES qAth9vuyGGcRU0Flvop56J=_5KQ7G}fffMgA2!4MU}{Xk8rkIS&(jaL-#*B(&Kc z`kGE{mC5i50}lNomH0Szh$q7Uc~n%|{#JKJ6p}x>gBW-#+ihzde_Sj<#MG*@2A3(C zA)es20mp%1v3~$DG!7e6jFsCr$J&Gt{TU#9)2a|rgBa#{CIY_u3i{^uMJ?|uEf$_~ z#1F&gL ;PN@L-XvFq0 z1iqy8ivUf{1=cDYjoLRc5Xy*GQ8zq?m5ajl9o101+g*Z})5@S_mcU3&dt0}t$D #PQmW$DdrEhv#9o_y8%upk+- Yl;@G;qnvT9P{MzTs zaR83!=-PEF^FyDKUiO<~r3w*VysnV?Uo8`My`L7^>MdRgFby(-h2=D6%xzy@K~$;W zaEc&D{j@Npm8X;}s-Lt^l(Z*;%wJJ6|K;j;4Yj`o$G_^a N{!=wLUc9+NWe^ zxg51$dQ7~BG$CXT zVqIm3dZ@;*)m(mlysMRMgNeIR5O zc}+T`Y+#an*uvmmVYo<9iW_9bb(3qFni?Rbn ~cv`JMB=kE!M2`ez@8fm5<-dU(b26-Og*7bvKy~e*Nx< z k=n dU {R!t)PO0-jAHUNWnF0Ww;@}Wmv0HoezGENo7{q&lmNBugxz kc;oIrt7`t;}ZJq zVKOZb@#EZti0EOLP6aCR6#j_r*J} FdH&2((h4B#h@pcN$Dp7c`9vsZ* zj)Ue`M`PX_eD1q!cUzD5Gcb!b-uVbR!+RBewlpsu7B1qk=5!| Ng4Bwm72gvdnXUwBF zB$)zZ@6A!($*~UxtBttvq_wZiO^D7P)l697YW!tbBK;$oRM4k49;iFx%On(7yueN% zy2#R$v67$J7j7}P*KqaA0t~U# Jy6ms(av(1b8&ahvjDzf5g~{NO>SB3 z?$A@D*x~DFNA+c_cKXyBM*;EgoSO)i4XWvIwYZ3gP U6Vs#Fc4d+!40gbI{VCtPTs_0+^%)DOSLOg}?wcT+L*JR40;e@a9 z2Rfb=$VshY9ugvQpCp5_fw^{;Hgna084-R_3m1DCNJvDN5s>6yNKJ6eB!|q9bBy%2 zGz6k#$XmFO$%`(#vdWpQ@fKjeO0zUDK4)_8z~-#1OnS(wC>@0rW!)7_r8#?Vxc3*Z z#L%GRLcZkT<3?KT5r$X>)#mD(q%St0p~D!mOj-FZM2kl(%r;T@Moc1KL_APjGI!>L zuYN(i3T8+R9*D_F-W{_Io2oh9rHD(KP^=K9Cx*C<0{Wr4hlT1a6|v_N@mqR!rbvq= zjGPJyW4BcA7YukzThd@iAU9~Re$V+ |LH-b &IrRmwueA!hjkYFMNSa%8 um7nYQ5UAgOK3 z$%W(gp_l*#DCriBog#aYFzjDwy(i(GB+*(a5qRzZIcJ@rKJ*)Ugnb3QV2~%_rV-!h z77=%L!7JZ)=M<*y((0ks7F`t;5UP7qj&om}`}={R`BNJV4E6XKu>;e{P!Mwl18#$( zObrQN u}%2ddslsObZQG|fRx3|Y5B_9#@EOyTl~T}>7u$$ZVV5RUt9yb_C@jNryPbX zd8TSIQF)mCqnzIm_@9u+4**>4(>qs(6|h@aTdh52LR8r%>e^!fm#?GS$h`WY0-+21 zr;$|Q4^A`#Jg#&4DtFy87a|?;GO;0s6Bpf%&F(4zl%HQAAYLG5=dX>11B$T) S~EEwm?jK zIQ{Xc_8CiU_T|^W)cSFE F140S^D9kSqa(Pvnq^i0Ydq~^-}XR`{Z^%T#9IR-SCmw+u(0$Ky(X$ zMXOWBa4V-gw|r|TV$BmTgB=UCH8A_)+)sZEN@6M{Erkq9dce2HQrsYoAjW?2YIo!W zUroNeVfT!?1}+O2SE2rTqV`9>2Fla{^F(kLMD!d-C2l61b#^vwlY_YaqqRD`Z}7%o zt@g;QnfPq9WbKe1dUxIemac(a)OoiQxP^~CwTy!!{X@*nJZSv}uy&ma3k>sguaN_R z`_QwG4LuX6k>$SdL+S7LL*di%#_@#|M&p{}qK_z7dCTe*WVSf&`(Vn-+GNfkt@art z*TR{~61uu)Tvyf(>d%0kdYb3!d>+QI*dn7GscW{ck`eY%HzgJ*C^`wi?$u6J=K667 zR)-FN9$>-!79XwNp`WH%1O%Cuf_*&}XyEEg958Q>lZ1^18J6{fB$B6^^brMAB@g_T z_=$t-j|Or>dl{V?$JLIQb{2N2%`-L0f{~$4p{s!$xbnm7yqvA33VnR3JP z_~n5Y3wuf+_XsXh4y48f+&%67_M-9QsqO$5%?@#*c_TqOsyA0pNmlmn%qwxS->njH zfls1P!A}mc(eKXD`7JK(yg@Ihl11%UXkj)LV tt*=#Zf2 zPcblC>}+__Mgr8MLhLs{*wgHmaHL~!(40HVN`TK6FoO-R>-_9wu8|`}CBQMuW{+!C zhvm!bk$9pXwKJ9W;_A;k^udxmsVQE}e_g0yec)!suE0Rx1u4o?yWWKMwN^9KH~b_% zHurA&UnV>3|FCQ5jry-4h~RAO+^v6$oFEZ+SUH*h|G;h@X4d};cC)gu{uk`d+O#KV zM-96 ABP^4qg0Q-um oW`p1zYiF25#Iyr+52Hn#hDv}H`%7*>eh>n$lGeJiT7lEf8cf4<|B|N3h z1VdBEt0*%SLS4?>^Qql|z&ezn3^^($2*$`$ZcPYGvS$Br)C7= X%u8Sc@Kq%E? z8&pR2^OdVgpXfRzudzvLuTW=g!0Tcx~8)57hjkBae7X5MwBYC%Vj!f8(ra{sv-WZNn zb1r#Y8_PzMnoFW7g95VJ%7Af745lo6VaS)G=Ap7Lt9#LA%g~Put0_ H{(lY!gDz%7xg;KrxZ WoUtY%MsV 4sOsjwz5(2zYrRwe{9bF9sGXk%#x0&D}+CjZ1&m z{w?mssW~p)9!fz~A@dcIqU&eS U _Ml_fIw=$^8{})nc_NTeW8J|D!!f<=}?W1)2=45JLBB`L_5otK* z=8hgJdSSENr(C5&^(RFTs{Tpzo39<&vcmESzx}Cc3(V*G-I2rH(9K9PQ6QC{^3_pL zDyrKQW1Go0?_X2C8NIN?zx;t=v*)8%?$DZ+pHn0{W(UAF`R (OxVpe|tEetrV>N z)Ad(S6cs56+En}WdOBSuE*De*7XOj@Onf7Il01)J`fC8H0DUiRD(B7*jq1H!T%0az zzuI^Hc+|grZ|yyQwp3~GX?=S?C$3EQCK2|Cw3^=G&E(FsO^O7FM;osc_i;K0uE+Zk zdzxwhH@mlSAM<(%Jc!e?uYubqwP?Q;3rW2#zX@^S&QE%#o}|qiB{b5=N-|;j5wlgt zhTdS-uhRpOxrhaFZUhxUME}yX7Ax~sMvhZ3Duy|!3i09v@~*(_4^9fCWtP1R?eK#> zokfe7=A$)A?e5MPjgDS*`?!ngdvBi%BpFpUAulWrM0wa2Pi=V(eCC`HJiF(YR;AWm zCLrIgf!)gHi( 0A&{Nq*Ii|z7Ug2+xUjY zHRE9|yGU1&3E5QEzm*9rfJ|-4qW oqYzu!X)@BZ?PqH+K!q8|J;L7#i72d1 zyF(yd3E|X0V!aZ4>BfmVm)ngp4|wKj;^LlX7@U}#M4t>aX-o5wG6%Y&G6i`0dMZ2l zjHxW$9U5wb&;cysa|BdY30Zj-=wxG=GW!p;i{qaWF)edPIc_|;I+8W@+PjANhVF`r zKVfmprfP~&$Jf!^{ZLF*$zd*b!*i_i{5*jE&F^b=R3L@CcnR%p>;yF0N%fouyliF^ z7pmSuBM{VTg8?QIh=`&HpJBC#BqaMAf=hTeorlxUCv)=sqQeOMd7^UQ=wlN$xcTOo z`USD{!{Hkz&W(I>ECFQ+pc7jncqkQVl`+I??i8R$^qs1)58rzQ+|dyMv}PcztqDM= zA?)Zc9O1Qz=y{=G=LqCq86aU%I7U-6g@KOaVdQjdRmd)(B_UAWQUhxG;-Lu4Cs>6- zZ4>zNuU6-_G51c~Yke IbLajHlM2b!ztQdp2(w z`fVr%2#d2LG)7qglDY;j1#ihHtVDonO1`&G+Ysbx!$Kw+n26$2oD@S4ycTK5qxU11 zOC!GyPTt zLy|0g*h>0owt4IB4P{2S`b6I$ZZSJGWVD(@h+6m#X+jbM6;@>a%I5L1MUWzgyx1X2 zCCrVI3r}BoK}xXiCp-xy{Sr{9EJq8KAn$Q7vny5BIjcdMS_^sXDL?UcB4<2uqW(d| zaLsH$kjpx`fXb1mbr1qz`8aY}cp1YVy8#LDv-gyKan+sv 4yb^~=>E=w^t z7H>wV+Q5fLe0)&2oG-lOD4>eSqunRy+$UZ>^me+wTxi#;N=|_%F3fyfA0HMy{oR1o z0=sUoELGwP#s-{+kmu#D(LL;varBWoj-dBAgSekXFv;}KxuazZ!9^RP=`fO-sk JalkI$=TeERMb)l07+pt=t z$Us@(!T$31La?A1t&vQizhJ@Gxc{jT!)gWR16_en=2}Hcmk$AjZatF(odHjV*+Tla z2~K&?16Xi29-e=JpVny|& gFL4QI0)&A==v {m*qcF`(}MXx#t$VpBjbAi&xGi!HS#W`h>MC0jltC4cC{ zw6d0gl0YYWy!=Nyr~}3S+bBC%di@}%P%Cu@DB|DVaIm!gRpnvQ1z {$f+K z!1wq~PP9LMUvNJJ$AzZOKBbfkri+H5x|=+ !P`ET3~*vx zQ8+pskX50Ibw(AdcTwi4-6D4DoFBF?1!hf~;11>a{CvAQc!@r3b%p&rPX4o?CZ>&~ zzNB2OQTbv`ymfbFsCj>RaJikS=+KiKMmi~~RmjB3 cjQ VTfo975q-9BhQrE`$`bV3yqlc&*h806y!E zgPqA>d)GgHd&!bj8=MUy);BD7Z(mU< VaW9EK8}`N6J9d(gEz2*VC0$!p4hvEEG;zCeR< gCSRmmzJLwS^jmwM9wVUpQJ#fEMzp}lq zbEo<*DcA%lP2NS_viAIYb(P8A^K)@{@qzgIkADXc7En#RHcR)KeF_;{C8el+CSXS; z3!0nIq#O<4lwlU{@&aHKbFR%Pc{*7)rN{J5@(MjdsXvEWORzg+Z!9tY4yd!g=otP{ zGoq1X7i@i%C-8>dbs&~a1zh>~y}I{w{)xV(!q9o$rToeN^UZ+vfWKMCkJ*8a a<49gY_>-e=~1SIG?j*t}R73VVr0H>~(t>#gHWG{~_$1 zV>}JIf5EnG+qSJ~+qP|g+jjS~ZQC}cZQHh{we!Be?7cVH&2G+ Q~Zk~hekcUmiMpz?nuKK o(+{S0C93DM`4PrsGI?#BzQR7F?v&g}friKi3>npZc{xhO}}mmqoGa z-sP+*yfY2j#8s52KJfq=KSoDC$$0y&tDsC7POEaJptLayNEwPL5caG 4^g-rM3#0XU|1YSWQw_ zhfh`I3?P^i?E)cODmH{&qNQ)lRNOv|yV^ITu@;&w&oesZHeG=4!O Z5Kc$~o7e~m*N@xUfsYKJd_RF~H_@MwO|?zggm~7G2c?=| zgE *#sKrf7aY|G+cC4I}jFhN$_nnW_s#;xk2tIDMJHrTT(&T4lHgUtawa;Zr(Gy zx@aBNMLNlGql&$vZbDKMEMzw;B$Ma^*wR&ikhE8m?*EtgC3tqan5VB&|gzPSB%_eA|%w~A%Yqqm>Qp3l?tqnK93$Xs$RRJE2>w*dM zV5yT!)x`m`Nm>||%+G^P@%82!F{YqhHgD9c?a(&4crT`-_>|cp?t_Zf6rbb}qPy42 z^2%YNUuqImlfs}61b$4{i>~a<;iZHDce=Z!5b1sU(rnD0_QZOP2#*N8q6DIhdR;fa zOh8aW0~v{Q`@V)%L*saT6W6eVj;BwI`uPSE!} C z=whtyVb&dxbf9)@b}oEJ<7zz8Q1 J4;XpH69DA|s~9L~(~Xf-C`MR0 z+RlLS7$6Why(}pT*?2+{)W 1+ae{~&l$P9l4OG1vnZ$)wA_Qx9+ UTF?ChUneTo#K3awBt55rf}qx%z}Vz)(c^pda&;osEoe z H+t1f S%bJ1 zr%o=mj~&)D-MfjpCgs;Pf$2!u=}o5ljtW4GVYK1l)1Vogh+r%(mlFvLzM^M{=mvMS zegh8b)N8RIAa)AS4FEfd7E}O-sBY!KXq)y+Fh`U49J5}vTNi5*f1s~pv!ct-fJ_0A z*_8$Rfj0O2HC9^v;m2Ll?7kqRd|ehZXoMI@!7d(w`N`Rx!^q}+>!L12UkE=Dzpk6^ z-P6ad;0Nujh52GF@#A4vBitdH4vJoOi|!kWQnWhO9ZW+4P! na{e#f9y81TWLOx{nvBBZMB84~u*{$ |;gQ!JUfE|po$h{!*p#`kuR|X$pG+Ptd4Fr(N3{dF8tUHB@)P|IW zD9` lt2b+#u|0t*OOhAVZ0S6x%53#qF z7+}(;Cy2(x%7I~;&R~Cn<59&j(Rk9$F%=c8;eoJ4HJUT0!V2)5uJ8g5N-&H_RlG}3 znzV($S0qh^80^0ymZS|tXSNY>kzuhK;dl p)j5hJZBmf!K*aNkfHZ!3H>nCenaRP+KshR>J?W53I;L z(HELJI{&5O7R%DCq~Pnco*)MmwP%Ei^sI3d D3%1br5r&6EKi@o>oNzK zOrw)(VpQB|goxaO=z9^U((2lTr1t>b3S}CC$X`gjTv3NH+ttH)bBd;eA!eb+W3sQa zMjUC|6EKd_*h{?a&^$UiF~`IY{igg^F^#&x{2E{383qyr*m}kOY^sVy-`_v)A1`j(wZj}9{z^0QZT0cM6>xvK z%Iov+ygzuh$095|-2Q%nIJa;Rh*5Co4DY&3>&mi{P*Cf;(eLrP-@9Yb^%4&wOaug+ zVx5ezZw$(~4dOcmSqV7*4FpQ#zBPgK#9V6%AFz!Qfc560#q*o-aGIK@6hVYs6*Ca% z M)8st(MYcEEr@5% FExo_|(;v#rd(i+eKwS4l;@{-wyDH8K9#0 z`64IwEZhvDug uIq|16I2tpNcMIHlRwW#g zigdHt$vnz#BRpKaf3Xpbe}x`Zz*aY|@x!x;^!L5pcN~e#YdGYFJ9+7vJh5);*f49^ za0}dczM9e^rS@=IaXcZrJ_J-t^rhL>9De94xRPmAky;synM}D-FwWQcW B6%jU= zza)pRW_kmG&3YN6v}z86+@xk+*cZkJvmRGE0In?n*FeD2l;B2Tvp|e;O7|B>jTu9H zO)4d00%aaP19fZj7l$3&>2~Tp2luI6#q0;xVYid-#};L;i>_HVM4JJ_!$oP9X$cPQo3+fQX}0>o2B?Nf#oYcU;W{CnN-eMIv M*S8CHZ%!zf7I9=y!M$yL7>=PP!F4Q{3ors8joNzuy8x_^&9Y{XduBKe-0K zJfqdnx|{|#J9N!+Nux?`xm${JS~Q-zEwl7Fdi?jUb4Z-i8Jsy4f T1sCzr{L_bdM(@PPkHqn4tek2VzPqq z+gp?Qvk~vx&c~G0{7G8ZPop1kAAi-`zcAv_sG(Syg12@Q&wkD`;af3-z9G(ykAoE= zf90XnOZQoK>7!Muf8{o-0<8EYzZ|tQE$lPJ i5sx G(@8i=Z_%4d z{dg6P=s!q Kz`AWc=7QI_A3tG^L7xMCAZGWMTW08oRBV^GE%K^CHr ze|8e1`cex;9KE=>B6Z QqzCn2Llhn2Nn3#vc{$ z(X*NT6Y(fq>B5s|NKuH^nAN_kE z2LT7Ut=V~ 3QKhJr1-WggJVEJB4PS6*i6VI;{k5ke+s5gP?rFS)8ytF}S+;@<<)Y zWkOMcdLaW{g5RaKFw|QMlT?*UH!ZT5;d{Wc&fn!sRPL5c )``82J}Q|?ABQxsb@m|(UL*!$EEj2CQIvHyOFs*3v#J6; zVg*`^K=i4%;k*2=0)CeRT`X9=ni4W;8%sy`rJPA<5emiNxVs~;h9l!uu!N`co?v?; z;K8v&Ro;eJI|8w9e6W;daqTLY*KTgBbMVI&2A|hf07~~m(t1fNBvzq95y+4sv<%JL zhm%v5iYY&zdZjbl^*IL1mFSR;Ch94;K)FBp6e`?EHC=|bJV^H(nsAr1FkbylTv?fM zRFc`N^rhr#iaQ#Xw@eEqC&Us_PR)z{z@xj#p)QVFx5D5F+E8rD25p$!ES!#@aIN&( zJj 1FRrxlz4qXO%S2Zb8_t#mIZ^D3 z4v8DL*eaWE-6*^y^=`Y@d>;QAA44Le`C(YPF!gV7tHz8CUN yT($Yh9iU>Nl zI-V3NdCNGc)&Q2KIc3Obmk@=tP>&;XByhe0layS~=sk@?WUZPfWO4wiQQ8I(rTtwa zjY?>E55cycbJ6?( ufj`NxTJgw2cgICBqwa`QkWPu zZ(XS>D#dk~KoP?Rq+|BZI5I*%)EOF2mMvNV^1WZtD}Z)R9#DEuoVTUo+IHpO(Me}) z{((ppFgt5dg=O59@CRY1 o`n; zz2oJ99)P^ZL&LbHX#*?DhhQMOK#uM%J*8pYcztbP%92>UXkRjZP@uq{*hU_a;#T8j z*5VlkXT*(Bp?ADn4v;TWf9R3eezQ?M6H3i>ZRa*6EYA&-FLUhRR+UXEL~B{|zKnk_ z9NGeLHomlrQx}Zxd^1Xk$$COCuEch)4qWm17(jbYy5LkGUrgeNtA=bl8|&w}K!r3K z4$P+d>(t5M7W~kj<~{HY(*98PJSCV9`CQ0gLpW%1@Y$3Hf;@sYRxUey;MwsP(41vA z-pZ=XoX#> i!b0vs{3Ewg4OnYeJnNJh#dM>Zrg?lu6K3J@|+5>HJ zv={ee3@q+5*i!lhjw9}4?VSY?sfVjgl490C!?X>V_l3B!O%MU=_dq*_e~S&V{x(5q z6jXJpLca9w?pJqE+TuAdF(5u>kIOUaR5j0s)pkG#PttKL28CyDB?DE_ehkg)0*f8^ zmyS@d8-G!`3d2A}>I8zh{2_)7HniK`bi>Y20K(0DKFF|wr$=fqSij;p$VH~U_*PjG zGkSbP5T`H=V+Ikr>WQS= WjPMxD3K~ zUx|Vu+tj$;K{ia-3xkP$F$D5iL%GV$1QZ=t37v0oe7Ql{(Uz=SyQ=UoV7)wjB)q?! z1BYM5bWvGOlymppZSBT(D=g9px6|%eZ-1}UE|w68Z!o>AghYk(U(iK{D4BP=syH7U z5Bdoy6Y)@bC}U; q?Ic%h70RDiJ0rUV*7)GssyZ5V1? zjHphg(>g2^7Z&fGMS7)^dj-OlzeK0Iy2bS&?kHLt@*zZViobk0s6gV{8(lWWU5mTJ zm5{Kd8ooq8mni98lPk@G2q3Zpx5po}5jR~v_Ae5$*+bl;nlS4aZ?HI~zefp_Ooxqm zCj7G-_&=rH&H%@RLPzKpv*t>`Jl#}z3~_3Q6MIt8v`^kj5;u_A><~?wMA{PMUI&zj z`MX}3yTNVY1-KN4ry=t?zf>NgNIb3~*?`g76Yg*vj=A~!odeOAyMZ5ixU9?VHs^#K z%YDfDnlIsJnaoVX+TNif(D1#q;qK(Xbp900{#N7t9@Up^%R?FujFgY~qt5Ztbw;+~ z>mQ9BHTWI1elZt9ybiHxCLqyZ4zh8b;%7E@$RGh*S|`)?qyE?TbIHep;mzj5AWA$X zfc`IXVf>}nyv1Lud%dy0tCLMXAS)b;C~1b=z-YkiZK^N8yl`n0vcUgik^^I9`LFvB zO`9n=$U6wYq`fRMns%sC^KU5cqCwj})(tQAt&ihhY3^eqt x16L)DXiH>FsdS4;7azWDM-YTUwO ^@xeTHcu;HjjpI(~DN z8UeFxqT+_~{I=*!?u=JKd~^y!f+5QuYyK$;t~S-a$6>#DJN4W4TRw>pt62O-;prQT zVGgf=>9pk>+a;y>gg32^#5Ds!wHabJM~K-0Z_2Q6K!~KTTF@TD{>3p*J}f0kj3EB% zl4MpAW~WZ*R~Pc^ETFrT&lAc=m<>V{f5dM|25w~9yW=l%@t#fh7h5@7y1GmUC2TKG zo=>XYk1qk{ME{%qF&xOS^H>dwZ!TsY2cKd#RM zuKA`xX%}Iri7F{zb5QLMOssqA_#KfB >+@3=84L0kRYi fP77f9++b2Veq}uZ+;TJ!{KqU^CmQ@6oT9p~b)sC(|oa&H0!R2JU z5}NXagn}>hfdLoGk(rf?i9pYvL2gS{;7Gs_GGBSbDiUELpu!tX5;5!gLzC)+RZ_HQ zf3b{uMG`;whDIqWW;|M>y|ae}fH!`OL>37}$A?u%0G$bIBo3)i%o{eAf+^4{LSGy< zsIGqX_8UV@_}dt0>XfdljAWQC D8GA!zBfjb>Wj%&wE%F9k&Pk){ZD!R7?U`TMgxu#7G z_=vBuMTg)~)AE&25U4rnTuyhiwxQ_oIr4nZU8TaAwD=gp_WJ)Zlr4!V `bI7r_Y(q&xn`bL!Wgh1*_v4Sg%T0mM;SP$ zTJtwj1*e_=Jq8ohTA1%$`K)AmAh;rcX&y~MlP^O_#pp(&)VMk=i6?Gp0=vHVOViGJ zrB+aoqR$cf)9aIv%2N0XGZT=SFCWl}X{7o)J$tmZy4+j}rZ7(nz`rSw6zT8Z`wnMe z)Ix<2ZOUCjh=hcO@@m^Yh!Ia-=7D-Snp%UCnH$|(!T+ajZpt9}o*z!XUkHObp+880 zXb(NF%c5L#nBpNM${uJDpL>N1RseL n;N)tIkS8_ikxm_`0Fr@w+Sbo z%JZZzKPb%>*U;{dk^ov19(s&Ds&on%I4zN)DY1biMr}GIeyEkArtqR)4={WuLq(c| zk-m9yu|6=y+cTdiis;)v=?PrEXI@A& ; zG{}W}uBXI-OQPH%v%cN2$w8^zhT9W#PjKk}qsepxI{8EL@_6O|`KL9W5i?N%W=Lvc zHrCS)c$DcRt>0~%H}Lq^CD@VI-F(MS|I}@}BCWm<>wC!`A9F_5eR;0w!0S(IM~+o# zpRs+`<2UI=!1L|=g4Uh?Pyc#NLbt9Xgx&V?_1rgyP>!ir`q(;JIq^94 jB$G0J#>h19^oh^WsuE;f#ExTUuH;J?e!tyKk0G^Y`*Q2*9k6taro?9 z`0*eweTFZuyWQRyh2}k*c`TBBu4sB>y4UJ1G Ohde@TrHV$RP0KFr`C* zD1gy$iB6hEBm|;Fu_&LvPTz^NEQPMczlcqCD 7xe~5c; zdI)CT= w)wlZD8&||Vo%@!;*YipzozHm7In!-S?3Bb0&fpS6p(W&aF%CM@8pM0))>g|7 zXhKuO7kJN@*mcbY!eb45pd^-mD72Xf&32AxpwxA$U)FwzHc202FV%Nxo+drW!>}~5 z$AJ_*H5yl_SL!)PBJ(fx$s_|cHpJ60DFIF93-WbxYz>|GOw)%8`(}Eo^BsR<+Kk64 zQy17}1iOyG2DxE>xZ~_a`ea&ihvPd32;+C3ikS-NP%(SQe)0kSeC&Y3oby3w^B0)q z0*m;bw$DtlprXypxdBIfcqRli7WZuh_V#dlp5Z-Go+?fWW$zR357+9)*8)q%jJfw6 zopB3bRhwa6Vi?@EQ1l9sQteyW`bepcYlk6te-x--Nigda3}5KD>7IuV^7=q9q&vUe zcLWDV)B<37-T)tmLVM#<>A+?Z;mJa9(u0zV2J4)B?lnStKcM3nQd4Qdb-<{=Ovy&R zsGuxN9BD@Oz%&3Y9hXfG4FA` Y*62~8F1%4@H>UtXUaSKUVdo4tG(C9#2>kdtghq{ z@oXP*>L#kk8+CnU46=9_Mg?gU@(K?PAHq+YTACHMW)pzx%i{Ji=GI)-zZlTmkWNf* zFWD%Tu$qu!DC0V71%XdAPxcr+Z{WZjZ(jbU=OjLIsZ^1!dwYd%=eebZt}nb`zJ~`U zB4DWJ`=92_=_0;o!jXX3;oa%M{xUs>;Uy^Ad3$mdX-V3fi%=U*U+N0q<|@wa4J>XA ziRJ|uwOPOs9rULP5=Ma_Rq2(pq76lBHM)et1*3)19-=#{&B`WqePnN&%8JO+N7rFt z(}fYhd?AdcTTRG>AgoySx}>f9klxPGd7rb{LXRC5I7BP;0zZ|T>Kd&sgUy8j`}!mn ztF`ol{#fqu%{sNTmj%TH8D~{>Cu>D(drBm4;vB#hTbuA&_NyJDO- j|>?)o-t3~9V3xWYRh`-Ai6q?J95Ek{V(dSb ^^ v zIlFaCICKA|60Fb-OAM{z(#HBNgX#pXXqkWESu}GE#k`)mQHkCl{Ap&KI=ww{u@VrZ z%h-au9zVyNr=B4S7-=vWUXB;+j*(Q7ec%GPPLdT(cc0R;@-_$va_UA!CxvJ=&XUJK zMrX ek(PKilwIp RB1=5Wj43q|9$r#yhTz%-|#dNho0?P3X#dqyRh0gH_eu~@c = zTWNtXA*V^E3 ;OQXSjLZe zg7Q_$`PorOY}>Fe 8n8a(?K}Mc|^{rX1`aV@-5PiiM=r?^WU(MD5@E~xQhbl>&X(%;I2koNBJ{ev#b`hv@giT7OWhj! zCbL(H;jKEYz7xJ_Y?w5k5h-2%ExFEpe5oG;(YLQWdDX3M^Yz?))Jwl$OP%-_X;0gu zP4vjR`h&Ttu3-rPT^(ag{o!klf%)9{gDLNO|7J_wW5cGJpJ&IHaSC%s4T0wooUuB9 zwBF@Zd~@uy>lBhul@>s~F+1y#4c_Oyir6iHMf8NzW@`P_gJvUj4Uw9(%v_P17^IGc zV)@FYUo}a&sHWqFw8G2RB3^t+?cu?bi|!IFs#BKwweN1}EpVG>zt?5dVvT>HQVU$9 zHTf-9T}~uBmpT^(_X_JNCDT$4*cpjFOxN#Z@-##C1BG;0I|Q&M*w;6<1Z*{WPrG+_ z3SO{b-rdz}TnAN+fbV)rOt7iPo7=yNPTIwTk2^W=_ynxJpt>ul; *1`w+{ktQvm`sXG8D=u69jrQ2;*4b`Ma~Jh zYxiOUM`ATOycobz2$?cx&J?ld`wyUpH1=B<)Er1~{_8jPG5%lPKRy;NvSDxEQiBt9 z^jy0e^DQ;%tF6^1t{8v$7mt@!(U$_Za0amoTDnlsd4+C*p-r$Rf7ws|($h+0)Fcn3 zo`Ek@Qzp2eJXxhmDnu&RTRUCyS?Ln;AK)pzyDS>GhF1shLvEeN`CaL;c+ )7})K(h!br?--|6r{i9z%NqYYX(qIrPovPh#pT?bpP~UU zrAdDlG9pDEb9hy&DSwrj7*E+Qa2cAT;G!3Zy2Z0YL5$xd*Os GC~tmJO3#zym?g*jH*PpJRlqMVs51Xa0zi>84* zXJQ$ZIaY-inq&p+i%>-|hxkvtN&<8Bj}Oluq@ZcNsNvDW0pF9bBy6%Y6%`(b&=!s} z-Hv<}2|0gu>wOjieT7nhrL4>`L?5eIeL;RR-Tx50tfrj;yroda{SwxiVu~ATqz{g0 z1K~bDF=LyH3;!!J{6p?&dm{wl1_fnj=1gNY2SICNqzCzp`;X=RA9h*_#OEK&!rb<+ zwF~oKiS<7X=xxvbATF~1SoZ(07;S6QAUcfy*#FM*uk{<`O)<^U=bt0Ej56pUHSoXC zv@%rk|JRJ(+)P~m%h836iS2)a*sgW7TsFB-{8#Jtiu80SB5>EF?bPBXY&piJ$TBia z8@&?DHcli^@TLDeU%uKP6;nee87okHG#(cM7Xm-6LgK(D9jKd%kJe17CQ{e1gb(J6 z>!gsNYUi(840gzB{g!f7k}%hHN}*xJs*4$AVpkqD%`Ii-I1DX;)*Tfu04UvKr=g%n zS47s*&9+m|VWS4{n>SD#BB(gk@Avk9rU&_0{mPcirD$eA1?MaWQZ7&e)>rbZypwg5 zLeDQnh7o}t7+9*1l?>XKr9fkL!$7x^fH8(Pi=@_OD}&K)E}bzf;8$acPfXY>GUg5_ zP-_RF _OHt d9Mk($SOsEpc^LDr=A4S5TMsHn^M+Fj_{DKGX-cf zRiGoFr(s+2Ev64r&HU1in8FIoaKbK|`;|UL1C4=Ym@_=p?gXRh3fO10AjX5_+6yWa zdPquk#EBy^;?MHBejm5kp*h2tM#xmI$7F BDlaXE*tF_D(CxQj{|s?)CXu7+fVSJ4#Q)S5 zm2Ic*)-vH6roD>z1mwWV(FAsM)ZZc0^owE? V@iEktwtx^U_*jD? zl9N4yB8tz{xoM(g#@}pVH$blAf}heho?`nv|Basti+lj_&aEq5Y%2nMnrH~hX4{;( z*6a>>_fFkxO{|HcupxL#f^2Ap8~K$RgMD;VP%{28d!aB91PFSjH>4exnXM?iJUpsF z555)RHGHJEXES0tvdRzry7KBM*O)HW4GBQb%uTgee$)S=_EE_Xyt3%=gylGdFbQU^ z*cGBs(VcW1oY&it&E14CdQL@B-;soJ_YkOKUd}=ygoYg%Yh7w!YiMq8ZLozG8fc*R zq7$d$%!d>p1-ux$b;7+WRK9m1cWH21m_3F`U^uJ`u9Lb8?j$IpS`In4Bd@feaf`DS z$T5VB{7K{XCEUJ&80j5fi+`Tv3FeL~U9Q$ J`6QO)1+wDH+Rmg429Jx2ElAtQ^GMc@YIPY+jqWlfk94(mkgo+%O@dc{S!)#t6S z{J^A21KzS9T13B!_wV3*>htzUela-L6Ry&f4Ik%A%ibg~Uay6HJQ?}@I *441+Qb|33)N|dPv%X-JaFVJN3%K}@ZYG?#W*n(G^$s~9C~y*cP<{^<$Zj#o}|&= zTA|S=X#G<^E5L65f=aO(-sKb@dUhqZJbqq%44CFru4EW4RX(SCW0x*LotL1vFp)U_ z_kHEYu%Kr-aZGp;W;uyWp2JyXkMrX%Dk;0$bWi1!to_?W#LLx94sRf67q6E3b9Rqm zp8!B?b-ps=`{T^Hqx&zf38A3>RG)0sVz)iRx1Vpf3E?}8BNJhcBCq41lP%HbY;e~< z{jc7amm>@2+H}mr98ui3HW1y7Tp+#1E`hF}Hb+{O*7{Mh_vl5H^G@e9&KhKM%|q~| zO^pJS1<>jBYaDH7{icl2t|c^_84KVz@*y^vrD??s#mr+qh@DFb2JiYjSK3I=@+Y$@ zEBxe)!TR+nKa4Mv!4@_(cXimOa#0*`n4%n5i~Iz&TkoI&p`Y*ZT0q!R6w4qL-zUkC zA{{}X5uWJjdaTG%xwzc2$>lC5Ftt9tJ1vY=G5qWvBBVk@>MM!}^#i!>$tO3m`+lBr zv!jan+ZXo}?tYny6Mi|_{y9vPG7OHHOM)Dm`U{FOH5a$!Cqf=Ev1@Kopu!G7-%G2C z9KIP=Y2UGkw=K@q6Hx%s2tTBN>D;L(Zj_HG+&~~AfthKHg&W2d|K8OJ9iL@Z$LXEA z5?W~#aq-6p>at<1Q*M0Q2=BraYe8fj=9VZ*alz%lM#hz&D!WE*okKBw1b%|Q*$6Ip z9C-t{fYq%Sa+BCSi8vH0XVV!#rOvn$kjGA(J=${+Fw`-#-#H(SCokz?2V| }mxbnV_eRj~Zv-Zh>=-6jUJL(CDBOiu)Kv%uA0ryr>J!|_jj@PV%Ke!a z!1sB!v9o=+CRwudPpbQ1 AiR1QyrSpi` ztkQ2!t<_tc!p5q`ii;+|A;#Pg%;Fixq4q4i2khJ3drul8ASi%Q{}x5@?P_>&Q+7rw z`meT-qz^B!T7yBql~=DW=AT`$azTH<^HA~_z(;*rUL(5f`Ez2T$J;wKRbDDRUUzli zH$9=I!gztBc65Q`U^T3UYvH~wOUg8&8Lt_7RwHfer)CqQ%>y*RANBoTa?ZE;!(XEB zxoMbH&A!=Ns8ZZ<#MlVVqVG?gzV1|cjl4%HqW6-ps|VX=uWNoU0bl(Djf6wMHwIVC zK7+Z97FU!ntRJELW7t>ZAHTmw{VnR&Y+fL7{~f7(H`eUznkREbr5QUvt&-kg6Xxxj zCv;6t9IpFD3?(_>U0lazJFoKgkJ)aFw@iAy6#qyf;#kLedQL+U_;9svAC7|7yA=!m z>>4+3oj}SJ-WaL-07IrTT jn4p_7tUW1}5vliou->0uK?RfpXxu%&Pr_~S;?X2D+iFpipr>mN`X3V3n z+eogX&tZn`Yc`_pf)|UK+)2F-`I6{ooVSkoQeu1I#+bx;Uzleg2zdId|5S*1*i#kK zYsZxc?w6!!2&?9g1QvqzSE>E_OY%<7e>gm@xP x1&Eg!`ihH-?e1z`*?Z|&hwY$LeK(ur9FCX{80JrXU&*=W h=VsbhXw)A$5wQSTZxM-F|QDD;z Xo~J1`(2x3tIA%a9Q7N z?9l@T9JEgn>^C}8%A)FtTkLo3w0m@nmA1_z5mJp#j{i#IG3?mXjc5^TH? Ty85_z8x}xR~<4bKqt*pcwV&)u) zkvTN1yC7@5A%>_~o6)hxp7C-3SljTIY7np0OZ(-)hU*PJcio z@gb&Ld=)F$_Y1k% n$_1_t>tg@aScu?X^4YH>i2P!#@)@$X~SLF$v z$An71ERxMS@Pf|Tr3TyMq#K312nX(x_}%4}I^`kOImL%Jetld4hY`_8uCj>TJMnEQ zY_D?9x~Xfgv$qv>k6n28U2uud`)dHe7tj+Qj&+A5O0Zqk`{r%Ci{}ibia=@A!{^(D z`&4U!Z4gF_e1D0%pK{5yEbLo*OIM^=Q~gCG%`7b7t*9WcPd7IGz-3e8!KP2oczKfE zn`4K&fjHUjcK okF|ss(E;%tQ%I_aVX9+2P${ zs9oXSO7!6!XgJusb6MOFBUx)CP7{Wht5hK@U(R-lO#~;qxlI4F016=Rfa~*xbYMwR zu8}L3M4J(`kVKfx5r-;-O0aaA{#TbWlkVM zmn>piaz;hWh7Vdd9c-SKPyz!wH$q6-r1;4@uOI(rX^kI5h45Nc_^}G@5u??WLzpd8 zIW7V^BgA!pxa1zX@BlC{TjE4bA_h%*Z68?YR5p5pu4(!A8D=^!s3w#%uv|sVV*GP~ zOf_^1ff_bqqcmazolUvSbHn{wy5<#nYhONgo3Z|PDEzo`J-u&;?7W@prI?Ku7PYci zwS)5S6RAQgGn&>&NvV $hypc)9aNE}fgvUEvAts=12;ODSjNFwwj zEm@waKXJ0yA)J-ygCB@TyNbyxY;`uAM2dJ+hsP182$@Lyf-Zzwq}{F%K_xvs#7$cZ zuvLu{II;?Wjnb;=(7vu6+0FV)z^SDfobqR1pUhK-4N{j+*tL6EJSoibm-N<3f%;aJ zdN{Nkm69c4gmHX3|HaZ;&jHPmB;VAm%2a4ck0_au$%IM>1~n -ofK_AfBr8TPLB+Cc^=aeev(%MDwR23J5y#%pa|7UxAF+Q!e=#$2YQOrSm3h zW^M#QafCLPDY+$2o$#yN`ad<>fbrg2ETL~q@Hx}+|ItHmvZQe}f~x%s?2c;$C1&7e z;$&uJ=4NMNVWVYYp=4sBq=sRXb1)S%ay28O660ZEV*Wq6q-{5X%5kzVu>ZpgXJcYu zW+S3fHPa-LwQ@Hj`qz_{n#jh{$ko!t%!tU{%-O}t!JdeNfti7s8b&~XD2=8R7? Hy1OxQfgpfzp-~#-N?+1)m(5^ zIkw3aSA7mOPoMvUru&ihIdT4@SYo`w5+q54DiICvxH{}_nno(NM)twtOj`<;zr@;! zWns1qMC?a~%D~E?egQx^12C~@2~rOQM&s-NOX5YmbI{Nf>JnxNNpLj4s%en9ilIs9 zFk4x?uH=w_mNX$ZARqy||Ki5J y6Z z4T%`B#5F=vge@$>_z302spU&|#Y|9!+l#;U=61LK09bCZ;)Up+VQ3m@ND_ktn;1i6 zn1zKj6*Z}foH@_!Aqo{xBtl%Ro5Yiuf`DXbdLo+4Hsy;(TJR@H*(O86YT|kM9D?>} zy(v2^(NT*$vdE%}LJF_OqT5+QgpdRV<)GP-pL@iL8sk@ZO_3&E3i059VS7~62s0}o z1|{sVvTi-Ql76<^L#J@e^2AW9VlhIgkq`Bxq-3t95WydDGO`eW5><7IR`zc#1$igs zVWCPULgWN228kJ7CotWQt!6i;t$T=E^#-et;;YW4OHUmiEgg-k$-_V-+*>ATes22l z7W>st_iH4f_tcBOehW7S+CgygitA(wb!njBB3B)5m~+Wj`tj2hv>62tE+6J?>$a5- z=Sv)r0(uxSxQ(8G!(Kx^xK*>Z!`_KOw9}ae%dKVSI0KSNCl!{9LkE9#DX%N3+n^Tp zBCrCPm1})Ki64)IvA^t-q)O7o_Ma7JynP$ zyIeC?Ajl*n>YjtAQV&I~@(X|eiqe#iOBM8<+K?58ffES^uuVGkeKO@1G&M-^CM+%( z48@KeFKKb8o5Y;6nJH~b{(1+c&NrOGlkRlU!@Q w5vobn;sQFmUiEM%8{ngQ<3 z-7R;7ixzGN5K;H8>V6grdzDDH#Mmmu e9dA E$bHZW`r|Y{KJRcpHI2 _0^qMhzkzW+GN1=6{vS z4i2vWDw+RHq5Pi_<_`b3|G*gjhZ7^x;gevOU=!!$5@8jS;1(C=5a(iM=H_JP5NBp* zW#(jKWfx!~`v33qZ=wGi&VrTsKbBo;0RD=Mtf~cC|NX750G1bQL?M-cBA72Q2^3U$ zKz@KKvUr04(S38IpIw&wviNnQT$g2X?L{R=ZfRGm)Z*CS30 SILcI_S>@r00m# zSpez1kAxRS>WCI6O!zbegcmN%1uV)0M`;8mVFV{Xz$M#HmL10Gh*4^YbHI`l-0tdv zr11(eH3UL8D6ScFx`(10X4Vb>p>;&B9iY(-$E}Cp-1lk+Z`()M3UynfGLc=57?A9j z>}OFGK~FJ6WwJ6^z(BQ4Q0>7H3>eVC7r&c`wX6m{>;K<`RpS&HTV ;mQ25Vsw%;`*Vn0D(?ipca8|ZWt%~DAoOH?Z9n& z9JY4_?=pJ%S_@m}p6%f7Lj+t<#TH}^|C>_mbjVx!urO2MnGQJrLrMQnYJ2PX-vj mO b4NC%6M+nK62zdV-K2v-hOPNj9vP4Vd5f zq@{n7nbXc)!1_w%?r(*4D$-9sZgbti;VmG2e$~^{2c|t0^;};gmfw9=+d`}VTm9LY z7UjYbN6sicvn~+7*0?t$Zu!RPpOtF&A9X&qLUhu-)t&8k;-~!XzSQ{X@3Nlgop&|1 zOQ&9n+IPM7N7bI@m)euBsd@76?=DtZ&=Vc4YWvUZ+{6Z>%-qReu0FPKXZHfaQ(vaO z)ONlWJ855~d7L|s7Z9G~^`E)3%=6br$ND`j5>phj*Dsm>{E>{I1}6|YU#s) a#h>S6-|6Lac4rl z?pacA->?3{;j!|O+cVbdbxwJAbTd!f&i>b%JPsc(?8_+O4RejE?<&^WZIrTC^U}q7 z!RI$Bo^Q9zeGxlx-So$urJDOBdTtvm{>n9R;nE6;|96kr8-D!H?F>BbCuh%bbBRWa z>UTc3X6`dKS}!D7tz5^I{XS>U<~Qe-%zbHn`W?^B $hF16I0NKuE`_|az-C484I3<0uZQ4mI>(_65Zbhc2&)vJ{ zoNM`{NA2yMA5heRh_9V)Z zT}5_&=e>DvntAi4l79b4&D{Gw@7#0GJ@>3XvO1>R>xA@oFg4d_(m6`~Z`?k6Ux`U$ z(1JW>DvcOHGZ;rRun2Mvq8XUd^diE%Lj&9c>C8d2QKOW+1HI5MaqutedBpk!vuN&t zUNnC{5A2trv`FvJFu$Nc8k5eT^9B(^xTN_J;sJhv;h{lvmiY7nVtPyTGp`8GaF|at zlObs)VxovJzd#?!iI^;6rm;a$wD2GrybTS5IS3(uG1)Ta3v>_grnALyF?qyvc1E^l zB0x;Oj2XgW0)v9X{K6z>VKLCJBS1#Iajtgu4&yAxiKb%7S_UugFwaoGV3ZJ~*+gq$ zYBtWq$ %G+b}hyjyD^#JdHpwJk7U=ep8?*Q+>a7lP< z(F)j_+1fj~(rk_Fj4aG-%@8|h5lXhKB?$HQ3<7pS*HvO6*rJ7SGBdFsZ{}oaXF)SH zayFuwJK5X9|7_tIrZjU)8?%O2U`s3$BF5vv-k~#sP%if*EjR~TDs-hB%$&^aodCRv z8O_e#S!`O4tR?ewkMwpACsCL~EEl3@Vl>{&$hiR@N7h=oM}+$Zg-TL@BU&jV7w56| zP9j=zWGxhI(BRM@(FQ?;JDDq5ADRPv8tNVp0Mw>M`Gxz6wlqyNIak&~g$D)e`+G-v z`%9waiq^@Q_yR2~JQOx`1QP1qFs;POh%JnFXsEs~NEd%84&aGa#w;{6D3nHgOEf1> z*0T5qMWIj;GFBe3GI}<`Z+QFDKsEtuxO+B0<;hwkUw?hkw>pNf{<00$ f(mR}xUV 8`_I|*bhY?NQ1zL!6V0|la0wRN9`KF*ys!4FtJ3JIf`+SoMADr;Q> z{K7mX4;6uEJ#FDLZ-0OHKyUYkiDa#!zh8i#m^47JgVa#8h&JfQ?x=hZqXo^tsDjcy z)H^K9+lw~C&)=Jd$*2ZG7|L4Q;GocOeZR1<2yYV07>d@`AqWW#cgI&%_*Kyx7|L2w zj|d;qgiMBL8#;NTk3}hreoZtPlObcd5WQe`&slJ0NNyG;L$qL~eqOYgpa`0ecQ{6l zP}n`;G)(u_wq{x=?R-FDb#nWC)kf352?NL@01yD9uUuMX@PmETS8eiN3HCjb>o( z7fzcZrV=rktjwF5avE(x@T7-y&_njFFtRV9bvggxSC bD6+JAH2Q1iEaehoN z^2{)P*La^pW(TUeKlJT%&g+_W|9OL+-LmNI-~B@m?UiG{-+fRXWaZP#TmIr~8=m{^ zv)l5wEV&bQs^{b|#h))tHb&1E6x{w^wx7|Ru}S6n?V-`nH%&dVe*N>2oT)FoN{+vF zt+^~vUCdd(EoHFoqq3Lr2OdxD@(sCIaq7# nRIgD$l+Ym0aj<*bfW)TeGy`YvXkc3OHPanCXt!k=ax+8x -XTE$+?(dnb;ay1`KUOmr{iwk@x
~} z*Z8&%$7nBd(VQ?RL~Y2A)zND{xNN<*V2#02uUkhK(=OJ%9-_5c`|il$+h!M(P2iRc z`xKYqV^;2bR@?f@K0l4!d9f41N|dhcygViE!m{yK7pufBy!zqt%qd|LPikIWvE3(c zd&cmkR|>8yy1sVCP{hvo*wx(;HxIkF*_2|A=(CLcR{4c>8UE$@Oc$2!;;V@tFANys zFehFYS xqThY>?{>Ft{imHi2_E+Ao%-B8y04R#_kgz#?krJU zK0x#L!|iw0ee_%+%6Z9yhd>*WYZ)L`~!T8&5mz$$I-CUM^C9yx+n3$RU5%L*EOk z`)KBUFdF4va9k^CR!xywxb2~CzS=6Q?>vt$8OPnu)t>!CZZ2m{nB$wx`$A8w-Q@Lb z5#1+9=UCp!pA+9-d+$x_oY~$`?c0Avxr4JN2Y2dXH^E*rX;Nj6ecF%vSZ=y9gLUnJ z_eJ@(GYyC8tz3FLG4R3*nu*hl<7TDEU8_;_ITdLyC&bjx&8s~y|FF*KBO7<@J~1hq z^*pfurBub|`cEDd_Kn{5aolTOhS{*V2by=RcRjBgJa|EsMdGz-+?f7DUv1-U9Xu=Q zbyb(H4*oh$ydhI#@A-Wm-giLK);PC9x1r1S=N9hJ8mLo8^H^qjwT`#O%^=cand^-u zg@2G4^S9i2HEi@A-yc@T5{K_nPaCzts6(xV^NAJb;?h^TtnV{5TCH-H)xG!=VMB9I z3}#q=^}e=yz@E|jPFlpo#4Wk&Huk^BWsAlwsxR34@xStLx^um8v}47X%pPqwOq+R8 zFZC&R^Q+Jig?5jJ4D;I9r=4lvRRb!_7VW$^uAS W^RRL-$ z=0y%CPQIO%T*de{7EzutK&enQy+f|*&U?PSJxhbPNB_5Qy#Ecl_LXy^d@8PPKJIrV z&;8^WN0Z?B^e=YZ1l@i-4PYc)E)Ml?^WWtYi8D&7FBKne!|^JOezxp9$NO&Op?%lW zLNsp(RDbPeZk*O}KwXdbJ?1+y#&$XHwU--w`eKJ$Z9I~ jnR~rU)+LkW(su|| {FaL*;ro#{Rl$k$(|H@Y)^Fx3-r9Hn zZqle>j+@?Xkv9x*e$sx~&*Gs bJrGaS!WlxL7o;#=0X>@i{ zy6(dJ-ycj-w;R}Ix!t;(&ad2RXD{q>GG>fp=iH%lJ@qy?eor#jQWVS+tPTCrYxUfx z8VSWi2ZmR>+8NgW(wqCMdP?c0qsg65tTVl`=7+C*=sMG $m4=Mxs_7-?m pPQK#4AmON&o?eKam2;HY zh@Ppwk*h6UU!LRf>XDxFUA-AP-j)2-oq5snwQYhXTt_PJvDIE0zL`AtOkiO4o<6UR zmqom|{!_)|L)k9xwH0;!=I`y1ug~-F{CuUY%RSzy4_%eUjSDDOo1MGj%J#cwH1tP0 zWOrV$Dq+i^ B16~B{_ppsR}b4e7LFZKlWSCVHRpt@`=q-62HNjFtNtlZZWD77uyG%~zkSH1h`nlbhCy-sbO`TzLxY18DAExPBATztbj{P548(63$7 zI<8neS}sOcJBvyiz%?!GBy&b6)d9?4LQ)4%CGKz30nx!uSXdg)TNHs44buh?S?T}_ z*R?4}!NJbs7}D8HuCz+P5>p9;8iCm3(18pdoewIhP?tc&G!Pc9tjl^NSHPsRKwFm5 zLRh%|E^{E4LuWFmunG_$1)-W@>Wd^;E}KW^@|n_)Wa3vM?2(lEh=DnnUzjXRu>(zo zZ3w@hDi&xeVv0&nX-x&!;#jQA8=7*O@&Z06*Mkw)ab*{@=2m>uj6K}v(X04l21nEx zNjtl-l>cENuI>B>gem{3{n~b5=|ntv@SlVuE}?^^ k3Z2e%ows@3X{8Xmgc{D* zLiYQak2+jGt`IfD@rcFB_e1H6s($yqxLMaN@=v!vpY}| )052o!s|K0uwVv#dgwRZRJdVZfD zQH;~ec&E=@J^s9A{&e;rwQ-x(d9`n|+l{=Y+;?L8k;ZAAH%F^YQm>zLbL-~1i`V{> zk2+))GFg91<+GpGakl02d=yScE|UK^m91s}^LV6l$jL#LpC0V|u6k|ol*n7&o9iNP zL@h`^Gqy+V*mYy}xm!iE=3Dhc>~3Fnk2VNj89V&PJFn>2$ha3bqHmA&RT`!|5qWfV z)%YzD^WW}7rXN(_llc3=@9MANaU({A`1Y|fRjFp*@UiE08g$Ea!iqCLix*^mRlfIZ zo#7Hc-?Ndcd#&y=IrYY{ZAPxWN}m`k&D`@*z5mq2-_r%Jt!{qXyU w3gJTBBZI5@5C z$9!wWSE ZcwsD_Whi@ad#W8KaZdtT=FFiq5b;=RfQXdvdF8hFYij zoi|*p89(Wi_Vm5Wcb`79{Z%DP uiCX>SU@rmplou&e01Lq>6Vhr2UJbt=8CdT?_$zd<_JkInwJ zEmEQL621MJ={0AUT#DIw*}UrVZl8o?nr-o^1ogu|raNAk6gu^^6Jlu8CpTKlXJbcW z`uK~nh9#kHMZv1=X6|PsRj|%n<-a+Xdi~sltybUt3dVNqw(qppu*)Xx-VeUSSdr95 znQ=PZ`cgOboB@lUbamutcit8FU;FzdqioiBImRwGXrnyPuC2m({bMr}*saW$a9Q zG;u&u^yc-vP3kJnF1}C7|5R^8UQVm;TK9%CiM}jd5caBEF-JGqp@^P(LsflG=k&^U zI^X_N|754DT{%W?bGIwp>CfcMJf0t_30161=^Qz*-!HG%PP4}5Z2fPqoayaJCOU&( zdl@bt)w%do-%8qA|MMA#N@neCqm);sxgq0+<-DT{ iwEH$^Q)H(6diyXtps^t@z?aQ|x6m@L%=*V v#`}&(9)tu&4>IlYDfL0|QB&(XeV0FdXg^}tDyt8>HT%DL zYsneCY}>duNap_iyKFooMyli )ZOF+vo$M`=_O8ub4ABG<2R);bY$J6~Rx# ztnA`u8|@ihHmzTW%PXcQo!5P{ddvye9Mi1}MqHe~egC*eAI5i$LC#( tF6x#urlutXRjWNTesRQU+K_kFItPND4VgLKY^!ksN2mAm+|SO* z)~Bvi)}2dK$^9C4{BD=0%I )^Q!L}i 6~FskA%)a4~OVM!!e?<4p?p zxw_;TAzi#}9}Qe``N@sgviDXQ KF`nmI STS>av~VPSJW)Y?``j&wbj@-FNl3hJ2b8*zxSe!__)2yn!Q- zuOExOI}9<(Nc{1$AXi&|)26XOx5H*D+qzT?TbP;d%j=k~7k)HiVZ6$Jr+1`%DSJQl zR^;P=R88}^`Fr1=?|r>$=%ea%x0q3R+mYPZEf=yfjSiR%>olcai+Pu+;gI+~XmMiP zXv@;K$dwbW{ci3#Fnmgm>(TDJmSkRbdB(C^%tTH*)F>^gV!8$`4bCm?xaIegar*mv zn%&dNei&f*!Re9f6#9CtR1JBvevH#q -#b?9`uQ<< jdrXmgl7(iUT{CNiW4Gu09GgE0_a~>>tF;J6QSdT*!$# z_saTw_|@@Nzt 3kBgA|`Fc9 7G_U(qOmZmIr>uwki`%JMD>02 z1z4cI3x5g$vKYeoSeS7e{T!bUH&?TS=2IHN5}H 2dz6@PhyC~0Cyt0< zI4lvtS^x`aefiGh&>5h(!O2e-fOf%S!GUNfpd?m+H$sZllA>E{3VU4E;{Y+TA?T^t zD8i-ywp8*91wX3)0cj*v2?h(;j7MXE3c&&0nFpu2A%~jX8sgEUDA%k50BM$vBjPw5 znTX?BhD_`jKyZh9OXV#t*SLnTwr~w$8UoY7wSx;k4F%LpCl*^bhz9m;aVI-=Lut0~ zXjFC(G$Wu9G?Rn|L4V@0trFNs&|3X4;PM4@gb5n}E`D?_=-XTYsEKT9M#EzVrMT=L z4+6M c!Lu$p@aAk9|rxjY`|)WBkFCa@L|i_fJq_|z;WjE^MK3cKBs zm HlyB5U517`b$)Z5)->@lVG(F6|oz+EIN8WgG(Nr4R>=ck4* =B9^t!N+Oz(n+F5il`fPa*3OG}`Jfui9LefX)WH0u$r}n5MXFL*O<_?$Y!3 z*AI&b2!KdVDT1MPiXaa}JnE~ZhmeS1I4}{xnns3DL2G?U&*Z^I1QrtjtAUY%%i_~n zT$IHSY3l^U4a=h0KMH#aS#Qq8p^0cFg7!DaGM_T!H2(E2$z^cpY_NZUZHvwWiy$0{ zz-QEqMMOZ0lL`^nB#3Zuvcmr_vL44LA{7ZABCbhL0hGYk>WV)HF=T kQS=41le$4BC`E0G6ZCXlF(Jt z0_j1a2;u51hl85(QGNr;(Kui_ p7hVVe7f%}Qh1HA)I2Q*xZf_5l4Q^>6o=9f@zRm|7c81>*T z-CRvlL_Qp#i0A$VAVMTJwZfTC5D<+2d~oD2L4*j<-3pga9+QgsfPjb?1*KT8h4%xB zT_K_!j!i^6gT}y7U`sa~+w)&_HV#-B`EbRA%mJ`60)d!@z;R787_mFW;~R-YvsPF> z5sh$oA{vq5iTU3oHUNQ7Ec_DlAvebV&1Zj{yV!<21g!sH(?HJxI7k_M2>s+zQcpaa zP>Q*zPJ`wh1_;@mN>C24VbDaBYbmzIEkP~0f3iXE5P+qS$p`5MmTori9-o?O9 tW07lTP8Nd( {S7^ zKT}94NJfkZgen43+6Iwm+Nd}~niu3C+Lbsu5y@JPPIxV775*p08R~OI&jMIjK1A-Y zxo~I-8rztj{zy=ml 4q`_S3F{)LjA(MDdkzq&H#ieq(;PTI5ZK}S_rL?BcO$Mb~fsI zg)lZWiiHKv05%(Jw=#lQaH5eV8WyRA7TsucfBxn6#9@gD)+8)Miu }5w-pr6UiEcfcd|rW_O%SECJa6 zA^ea9%+7?kNHzm}!7@Txppt`rs8>{|XfxtPN0>w*f>vZL0+)zZRJahlsF4&fJXM@1 zeb5TH2y*dJ+doJy9%|G;fW5%m%B9vY2qUtHTm-6?3401zkGK(>#S-EosMR7^jR<-f z>KN*OZY->m1x`7L!vI$%WW|Bb&*Fm@SVlC9N32K0j2YoU=)Z&|gG4!DIIY;8{1^Tg zQ4Yr_BHdqLgrYZLVNxJl{RY57qdg&PoCOCI8mGbHf$0_vX`$AC8tCXHvI$9nY?T`U zg2nKPD2c-qQIdd3siidwWfR8&y8g{IS`izV1O5R}?ja 1rLzpNFT-$6k(uIou8p{1h z;cE4p0mxq*nTTctGzy+;1X&9&22?&Xg3rLD%mMyFF9tk_aA%?3Z5aVCLSP;-WNlIy z{x2r)$Se6b{4d(2I4}{#S_DjZR@Y(lYy@F&Ibf%Hq=7^VM1W`V8H%Fg&V{^ z$_RqN%W9D~CzeRk2&+*_T7>%aCx}MC5)rKhuo^u9g!Kjf@&sUlp^68oN@yq=4;YOJ z&TX!Y2pF_lm=vWNoB`l76^ll0NpJ#gO(QT7lxij>QBfoomhbbo%SXL>1W)n67XVQ& zEKqgPj5;*>g^NYKG`NXHML&hb(4;8U>H;6lCBsk&35CEaQotgLV#+|(LSawg%n|KB zE+1G4VyeI}1;GbcFal3T?2A}6Hz|7k?Zp7izmuVXi}oN6O~hGngtr75<>dfrQS>Fj zU>q>~qX92q*M@vK>`Emg-UTZ`hgOzoaOkkm%(d2z* +*Bb2iLGg)BoM}u2n;TVwbislpYA-IJqcmy>QLpebyVl{~OCZ#*lM0TTS6XLK$ zeANP2;<5p1xxigen19?@**nmV#f qY#3J8U*lvD$fB}|z{ z-E~9_NR}|Gy4f`#8*=hlc>XpTzJ_KwBVa7V{=>o(xLKGP9@3Zb1a9&4W#M3gy8kAl zp=1*WoIVJe&4982SOPJ}1{Y$TnACRzs-#@ud$b&qL>d$mtOls)6Jde_9|B(>J>@Sk ziHnZL$%HhO<&Dz`Hli?)8VzWI6nHG9fTU73=x!cpd26zC7W#ciZl4y0&M_fW6lxm~ zs37ScqJ>%l3TZ{J4?!vjb>V=FLN6&?Ft2k#R)7hR@*oR9C~hgO= ^xy+ixYr)gFAQjjYmEBlam54@O4Z?K6Rw;Ip5C;TNDjGX3&4XMh3dTxE za|xj@UZ72;XlJt+>FsDnh<%xr+MMhA@1LJIGk^A}PfIkEZOzo}DifU@dmC4_NjSsd z?R+>5x%)WJJ|R0a(IkFR@|me8F1@`nry})yuHs}lg{5waImqrI(}!=F@#3D($^78E zXU910;Iv!ezC*2Dso9&K^7Gcj)OVm=I4oarXl2JD-32zmrKj3f-L0^{bkQF1tr+-u z!i`wOv @f{wu3? zD)g9XlvKtvnsHutbT|K{^Vh0$8gZ$tJre(?UC%fqsb;?3yzCo;4zn%$oKV%e#q*f; z>6uqbe}i>DHFQt7mX1`pWifHPlhJ(drDJMeKVm n`fQi@IM|`rk;8LM`89h| zd<>8!)~REXU6$%j>hqmpvC;k9y1^wYF8b@nmpt-YXRN7iWj;`~!*j#?6XUDT_A2}i zWzcFBf)L(C9e!2YtoRt^yk);mj#k{|*?Y#r6AI}Mo%ZXTGq77#*~amqZpGQ2J@$8M zpHx+J;e+bP#9wUWc28}$-rCy~1Roja-W8SJ4$pmsY;hbm`fU*X_3%U51^o*(PMr=m z+cDSXz#{v)d15rA<%XY8F3ta4!e@UpH?Cdrc0%cVuEu<#E;RTq;$v^nLgB82HP_ zO7FZv!1N1mOp+=+SB9Ea_qgu=*y&o_%T2p&Iw@pK;=j*de!wEZ(THZ&?vhu$@sdd8 z;U5J-e>CDa7mbjWYxn^t+w;|@4ysvY q^My{C1PUhhqMxNxhP%PSwVH|Oh_zb&+0xZ125 zU;FFX;JBBON7p^L#