c++ - Bubble sort bechmark
- Javier Gutiérrez (73/73) Mar 31 2002 I have done a simple benchmark using a bubble sort algorithm with difere...
- Jan Knepper (5/22) Mar 31 2002 I think you have a trade-off here.
- Javier Gutiérrez (8/32) Mar 31 2002 Hi Jan,
- Jan Knepper (2/39) Mar 31 2002
- Javier Gutiérrez (11/52) Mar 31 2002 I' am using 8.27.5
- Walter (31/103) Mar 31 2002 I suppose it depends on what code is generated by the other compilers.
- Javier Gutiérrez (2202/2330) Mar 31 2002 Attached are all the executables compressed using zip.
- Javier Gutiérrez (148/275) Mar 31 2002 Above is the one generated by C++ Builder 6, and VC++ .NET.
- John Culver (107/117) Mar 30 2002 Hi,
- Walter (24/144) Apr 01 2002 Hmm. The cpu specs advertise that complex addressing modes don't add ext...
- Javier Gutiérrez (34/161) Mar 31 2002 Watcom code:
I have done a simple benchmark using a bubble sort algorithm with diferent
compilers.
All the tests have been run in and AMD K7 at 1050 Mhz using Windows XP Pro.
Here are my results:
COMPILER TIME SIZE COMMAND LINE
C++ Builder 6 6168 57.344 BCC32 -6 -O2 -O -a8 -d -r -k- -s -lOS Int.c
CoderWarrior 7.2 Pro 4647 36.864 Within the IDE
DigitalMars 8.27.5 7390 26.140 SC -6 -a8 -f -ff -mn -Nc -o Int.c
Visual C++ .NET 3374 36.864 CL /Ox /Og /Ob2 /Oi /Ot /Oy /GT /G6 /GA /D
"WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /GF /FD /ML /Zp16 /Gy /W4
/nologo /c /Zi /TP Int.c; LINK /OUT:"Int_VC.exe" /INCREMENTAL:NO /NOLOGO
/SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /OPT:WIN98 /MACHINE:IX86 Int.obj
Watcom C++ 11.0c beta 6209 39.424
WCL386 -oneatx -oh -oi -ei -em -zp16 -6 -fp6 -zw -d0 -bt=nt -l=nt Int.c
Why is DMC performing relativelly bad in speed terms? Have I set up the
compiler switches correctly?
Great executable size achieved!
-
Int.c ----------------------------------------------------------------------
------------------
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define SORT_ITER 10
#define SORT_SIZE 10000
void TestSort (void);
void InitSort (int gaiTab[]);
void DoSort(int gaiTab[]);
void main (void)
{
TestSort();
}
void TestSort (void)
{
int i;
int *aiTab;
clock_t clkStart, clkStop;
printf("Testing Int -> Bubble sort ");
aiTab=(int *) malloc(SORT_SIZE*sizeof(int));
clkStart=clock();
for (i=SORT_ITER; i>=0; i--)
{
InitSort(aiTab);
DoSort(aiTab);
}
clkStop=clock();
printf("%d ms.\n", (((clkStop-clkStart)*1000)/CLK_TCK));
free(aiTab);
}
void InitSort (int paiTab[])
{
int iCont;
for (iCont=SORT_SIZE; iCont>=0; iCont--)
paiTab[iCont]=SORT_SIZE-iCont;
}
void DoSort (int paiTab[])
{
int Swap;
int Temp,I;
do
{
Swap = 0;
for (I = 0; I<SORT_SIZE; I++)
if (paiTab[I] > paiTab[I+1])
{
Temp = paiTab[I];
paiTab[I] = paiTab[I+1];
paiTab[I+1] = Temp;
Swap = 1;
}
}
while (Swap);
}
Mar 31 2002
I think you have a trade-off here.
You run full optimization, and that takes time with DMC++...
Now do the same test and remove the optimizer switches from the compilers...
Jan
"Javier Gutiérrez" wrote:
I have done a simple benchmark using a bubble sort algorithm with diferent
compilers.
All the tests have been run in and AMD K7 at 1050 Mhz using Windows XP Pro.
Here are my results:
COMPILER TIME SIZE COMMAND LINE
C++ Builder 6 6168 57.344 BCC32 -6 -O2 -O -a8 -d -r -k- -s -lOS Int.c
CoderWarrior 7.2 Pro 4647 36.864 Within the IDE
DigitalMars 8.27.5 7390 26.140 SC -6 -a8 -f -ff -mn -Nc -o Int.c
Visual C++ .NET 3374 36.864 CL /Ox /Og /Ob2 /Oi /Ot /Oy /GT /G6 /GA /D
"WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /GF /FD /ML /Zp16 /Gy /W4
/nologo /c /Zi /TP Int.c; LINK /OUT:"Int_VC.exe" /INCREMENTAL:NO /NOLOGO
/SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /OPT:WIN98 /MACHINE:IX86 Int.obj
Watcom C++ 11.0c beta 6209 39.424
WCL386 -oneatx -oh -oi -ei -em -zp16 -6 -fp6 -zw -d0 -bt=nt -l=nt Int.c
Why is DMC performing relativelly bad in speed terms? Have I set up the
compiler switches correctly?
Great executable size achieved!
Mar 31 2002
Hi Jan,
The times shown are execution times, not compilation times.
"Jan Knepper" <jan smartsoft.cc> escribió en el mensaje
news:3CA704A5.2AC65F61 smartsoft.cc...
I think you have a trade-off here.
You run full optimization, and that takes time with DMC++...
Now do the same test and remove the optimizer switches from the
compilers...
Jan
"Javier Gutiérrez" wrote:
I have done a simple benchmark using a bubble sort algorithm with
diferent
compilers.
All the tests have been run in and AMD K7 at 1050 Mhz using Windows XP
Pro.
Here are my results:
COMPILER TIME SIZE COMMAND LINE
C++ Builder 6 6168 57.344 BCC32 -6 -O2 -O -a8 -d -r -k- -s -lOS Int.c
CoderWarrior 7.2 Pro 4647 36.864 Within the IDE
DigitalMars 8.27.5 7390 26.140 SC -6 -a8 -f -ff -mn -Nc -o Int.c
Visual C++ .NET 3374 36.864 CL /Ox /Og /Ob2 /Oi /Ot /Oy /GT /G6 /GA /D
"WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /GF /FD /ML /Zp16 /Gy /W4
/nologo /c /Zi /TP Int.c; LINK /OUT:"Int_VC.exe" /INCREMENTAL:NO /NOLOGO
/SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /OPT:WIN98 /MACHINE:IX86 Int.obj
Watcom C++ 11.0c beta 6209 39.424
WCL386 -oneatx -oh -oi -ei -em -zp16 -6 -fp6 -zw -d0 -bt=nt -l=nt Int.c
Why is DMC performing relativelly bad in speed terms? Have I set up
the
compiler switches correctly?
Great executable size achieved!
Mar 31 2002
Sorry, Which version of the compiler are you using?
"Javier Gutiérrez" wrote:
Hi Jan,
The times shown are execution times, not compilation times.
"Jan Knepper" <jan smartsoft.cc> escribió en el mensaje
news:3CA704A5.2AC65F61 smartsoft.cc...
I think you have a trade-off here.
You run full optimization, and that takes time with DMC++...
Now do the same test and remove the optimizer switches from the
compilers...
Jan
"Javier Gutiérrez" wrote:
I have done a simple benchmark using a bubble sort algorithm with
diferent
compilers.
All the tests have been run in and AMD K7 at 1050 Mhz using Windows XP
Pro.
Here are my results:
COMPILER TIME SIZE COMMAND LINE
C++ Builder 6 6168 57.344 BCC32 -6 -O2 -O -a8 -d -r -k- -s -lOS Int.c
CoderWarrior 7.2 Pro 4647 36.864 Within the IDE
DigitalMars 8.27.5 7390 26.140 SC -6 -a8 -f -ff -mn -Nc -o Int.c
Visual C++ .NET 3374 36.864 CL /Ox /Og /Ob2 /Oi /Ot /Oy /GT /G6 /GA /D
"WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /GF /FD /ML /Zp16 /Gy /W4
/nologo /c /Zi /TP Int.c; LINK /OUT:"Int_VC.exe" /INCREMENTAL:NO /NOLOGO
/SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /OPT:WIN98 /MACHINE:IX86 Int.obj
Watcom C++ 11.0c beta 6209 39.424
WCL386 -oneatx -oh -oi -ei -em -zp16 -6 -fp6 -zw -d0 -bt=nt -l=nt Int.c
Why is DMC performing relativelly bad in speed terms? Have I set up
the
compiler switches correctly?
Great executable size achieved!
Mar 31 2002
I' am using 8.27.5
"Jan Knepper" <jan smartsoft.cc> escribió en el mensaje
news:3CA706FD.A89EDE17 smartsoft.cc...
Sorry, Which version of the compiler are you using?
"Javier Gutiérrez" wrote:
Hi Jan,
The times shown are execution times, not compilation times.
"Jan Knepper" <jan smartsoft.cc> escribió en el mensaje
news:3CA704A5.2AC65F61 smartsoft.cc...
I think you have a trade-off here.
You run full optimization, and that takes time with DMC++...
Now do the same test and remove the optimizer switches from the
compilers...
Jan
"Javier Gutiérrez" wrote:
I have done a simple benchmark using a bubble sort algorithm with
diferent
compilers.
All the tests have been run in and AMD K7 at 1050 Mhz using Windows
XP
Pro.
Here are my results:
COMPILER TIME SIZE COMMAND LINE
C++ Builder 6 6168 57.344 BCC32 -6 -O2 -O -a8 -d -r -k- -s -lOS
Int.c
CoderWarrior 7.2 Pro 4647 36.864 Within the IDE
DigitalMars 8.27.5 7390 26.140 SC -6 -a8 -f -ff -mn -Nc -o Int.c
Visual C++ .NET 3374 36.864 CL /Ox /Og /Ob2 /Oi /Ot /Oy /GT /G6 /GA
/D
"WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /GF /FD /ML /Zp16 /Gy
/W4
/nologo /c /Zi /TP Int.c; LINK /OUT:"Int_VC.exe" /INCREMENTAL:NO
/NOLOGO
/SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /OPT:WIN98 /MACHINE:IX86
Int.obj
Watcom C++ 11.0c beta 6209 39.424
WCL386 -oneatx -oh -oi -ei -em -zp16 -6 -fp6 -zw -d0 -bt=nt -l=nt
Int.c
Why is DMC performing relativelly bad in speed terms? Have I set
up
the
compiler switches correctly?
Great executable size achieved!
Mar 31 2002
I suppose it depends on what code is generated by the other compilers.
Here's what DMC generates for the critical loop:
_DoSort:
push EBX
mov EDX,8[ESP]
push ESI
push EDI
L97: xor EDI,EDI
xor EBX,EBX
L9B: mov ECX,[EBX*4][EDX]
mov EAX,4[EBX*4][EDX]
cmp ECX,EAX
jle LB4
mov [EBX*4][EDX],EAX
mov ESI,ECX
mov EDI,1
mov 4[EBX*4][EDX],ESI
LB4: inc EBX
cmp EBX,02710h
jb L9B
test EDI,EDI
jne L97
pop EDI
pop ESI
pop EBX
ret
"Javier Gutiérrez" <nikkho nospam.hotmail.com> wrote in message
news:a86p82$1m3o$1 digitaldaemon.com...
I have done a simple benchmark using a bubble sort algorithm with diferent
compilers.
All the tests have been run in and AMD K7 at 1050 Mhz using Windows XP
Pro.
Here are my results:
COMPILER TIME SIZE COMMAND LINE
C++ Builder 6 6168 57.344 BCC32 -6 -O2 -O -a8 -d -r -k- -s -lOS Int.c
CoderWarrior 7.2 Pro 4647 36.864 Within the IDE
DigitalMars 8.27.5 7390 26.140 SC -6 -a8 -f -ff -mn -Nc -o Int.c
Visual C++ .NET 3374 36.864 CL /Ox /Og /Ob2 /Oi /Ot /Oy /GT /G6 /GA /D
"WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /GF /FD /ML /Zp16 /Gy /W4
/nologo /c /Zi /TP Int.c; LINK /OUT:"Int_VC.exe" /INCREMENTAL:NO /NOLOGO
/SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /OPT:WIN98 /MACHINE:IX86 Int.obj
Watcom C++ 11.0c beta 6209 39.424
WCL386 -oneatx -oh -oi -ei -em -zp16 -6 -fp6 -zw -d0 -bt=nt -l=nt Int.c
Why is DMC performing relativelly bad in speed terms? Have I set up
the
compiler switches correctly?
Great executable size achieved!
-
Int.c ----------------------------------------------------------------------
------------------
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define SORT_ITER 10
#define SORT_SIZE 10000
void TestSort (void);
void InitSort (int gaiTab[]);
void DoSort(int gaiTab[]);
void main (void)
{
TestSort();
}
void TestSort (void)
{
int i;
int *aiTab;
clock_t clkStart, clkStop;
printf("Testing Int -> Bubble sort ");
aiTab=(int *) malloc(SORT_SIZE*sizeof(int));
clkStart=clock();
for (i=SORT_ITER; i>=0; i--)
{
InitSort(aiTab);
DoSort(aiTab);
}
clkStop=clock();
printf("%d ms.\n", (((clkStop-clkStart)*1000)/CLK_TCK));
free(aiTab);
}
void InitSort (int paiTab[])
{
int iCont;
for (iCont=SORT_SIZE; iCont>=0; iCont--)
paiTab[iCont]=SORT_SIZE-iCont;
}
void DoSort (int paiTab[])
{
int Swap;
int Temp,I;
do
{
Swap = 0;
for (I = 0; I<SORT_SIZE; I++)
if (paiTab[I] > paiTab[I+1])
{
Temp = paiTab[I];
paiTab[I] = paiTab[I+1];
paiTab[I+1] = Temp;
Swap = 1;
}
}
while (Swap);
}
Mar 31 2002
Attached are all the executables compressed using zip.
"Walter" <walter digitalmars.com> escribió en el mensaje
news:a87f9l$20q3$1 digitaldaemon.com...
I suppose it depends on what code is generated by the other compilers.
Here's what DMC generates for the critical loop:
_DoSort:
push EBX
mov EDX,8[ESP]
push ESI
push EDI
L97: xor EDI,EDI
xor EBX,EBX
L9B: mov ECX,[EBX*4][EDX]
mov EAX,4[EBX*4][EDX]
cmp ECX,EAX
jle LB4
mov [EBX*4][EDX],EAX
mov ESI,ECX
mov EDI,1
mov 4[EBX*4][EDX],ESI
LB4: inc EBX
cmp EBX,02710h
jb L9B
test EDI,EDI
jne L97
pop EDI
pop ESI
pop EBX
ret
"Javier Gutiérrez" <nikkho nospam.hotmail.com> wrote in message
news:a86p82$1m3o$1 digitaldaemon.com...
I have done a simple benchmark using a bubble sort algorithm with
diferent
compilers.
All the tests have been run in and AMD K7 at 1050 Mhz using Windows XP
Pro.
Here are my results:
COMPILER TIME SIZE COMMAND LINE
C++ Builder 6 6168 57.344 BCC32 -6 -O2 -O -a8 -d -r -k- -s -lOS Int.c
CoderWarrior 7.2 Pro 4647 36.864 Within the IDE
DigitalMars 8.27.5 7390 26.140 SC -6 -a8 -f -ff -mn -Nc -o Int.c
Visual C++ .NET 3374 36.864 CL /Ox /Og /Ob2 /Oi /Ot /Oy /GT /G6 /GA /D
"WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /GF /FD /ML /Zp16 /Gy /W4
/nologo /c /Zi /TP Int.c; LINK /OUT:"Int_VC.exe" /INCREMENTAL:NO /NOLOGO
/SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /OPT:WIN98 /MACHINE:IX86 Int.obj
Watcom C++ 11.0c beta 6209 39.424
WCL386 -oneatx -oh -oi -ei -em -zp16 -6 -fp6 -zw -d0 -bt=nt -l=nt Int.c
Why is DMC performing relativelly bad in speed terms? Have I set up
the
compiler switches correctly?
Great executable size achieved!
-
Int.c ----------------------------------------------------------------------
------------------
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define SORT_ITER 10
#define SORT_SIZE 10000
void TestSort (void);
void InitSort (int gaiTab[]);
void DoSort(int gaiTab[]);
void main (void)
{
TestSort();
}
void TestSort (void)
{
int i;
int *aiTab;
clock_t clkStart, clkStop;
printf("Testing Int -> Bubble sort ");
aiTab=(int *) malloc(SORT_SIZE*sizeof(int));
clkStart=clock();
for (i=SORT_ITER; i>=0; i--)
{
InitSort(aiTab);
DoSort(aiTab);
}
clkStop=clock();
printf("%d ms.\n", (((clkStop-clkStart)*1000)/CLK_TCK));
free(aiTab);
}
void InitSort (int paiTab[])
{
int iCont;
for (iCont=SORT_SIZE; iCont>=0; iCont--)
paiTab[iCont]=SORT_SIZE-iCont;
}
void DoSort (int paiTab[])
{
int Swap;
int Temp,I;
do
{
Swap = 0;
for (I = 0; I<SORT_SIZE; I++)
if (paiTab[I] > paiTab[I+1])
{
Temp = paiTab[I];
paiTab[I] = paiTab[I+1];
paiTab[I+1] = Temp;
Swap = 1;
}
}
while (Swap);
}
begin 666 Executables.zip
M1=8PVCT,,) A,TD 8B1DHI,8S,,98("!&1 Y/T D"?&1 P B4CBT$T>F\<D
M`SHUG7&CJ[ONZKIFHVYT=77W<UU"U A,!!(?2U C"6HP9K7))(J)$D(><\^I
M[N&5^%W_^W_W_O>_]YNDN^MQZE35J5.G3E6=*N87.!B681 E/'X_P]0PTL_&
M:[AB^]2'UA<5ZXHW%:_AN<+[RXHCPO5,; [#S&.#F8U77[($\'8PN]AAK&(D
M_">5;&&8IT.9__)?YI+%"_L\6""NO]R!'Q3YOFEKBPJYPOZR,BIX- V&`VK4
M39^9MW!)KASP/#PCY08:`C?M_HJ*OH"ZH<3H:]>Z:?;BLO5K^FE \WWB!GQ9
MS'___K?^O>^[M =^??Y.[$X>RCB>/$9HSU^45ZI\WL:('T&(\["RQO8LP]1B
M7Q._AQ>I%WNA<Q$O:187H;]YCK 6OM6MV\Z+'1 3UT8:ZCL4<2WU'4$LOJCW
MN9GO+ECA]= 8X0B4;^D2TO V]G+/<PA%NHQ'!&U:KG+'"&>=TMS&7Z ^PI^]
M=Q7B%&8IB8KD*DFG[RNIOOEYSG-*SW1])/E*6*S7$J6^YNQ+4)[H(%K= GN\
M ^F%^2T+T3ROV;\$$I*FZCHNV-GS<66HL:[S$):A=)CSWSW.:]J*X+>Q:_FC
M>O;;&,,98ZM+KT^;^C[ KE0+$<WPA6)I?0KC$1*!H4+$81K&682'(PD%,%^W
MFKVAJRFYL+[.<WIHW0YQ'V A"G"$0^.3(.=A_3W8`OEY2YWG5.0TD% I_ M0
M CR)"I*H)UW !:L**.Z\6D14 QA$#I(4>"7ZD\;J.DW5Q3[J"A&Z-RCI;.;O
M;97!^]!M...:T-](M&$Z3= (05H;LRQS<?;"^;KLN[,G3TZ(U^7QY5,7KWVH
M6%>QN8(K?FB:;M*:.%WV^ V;[6L?*.5T]V_6Y6^^O["B>(IN=OF::3JC.25E
M:KS!8)BFRRPKTU& "IV]N*+87EE<-(WR.S1^BS!*3 2YX,_6TG99M'09=#G!
M2M0TA<KY;P,0)A3H< F0NQ=$&/W=]4HNTO6!X]^]+M%5'J%FW\&DKAD1!W21
M0*0N\5XU97X_%^TNB7"<Z75]Y8+O>TK2Y5H5(?X!E(7N&6H=%UR++"9L5X=]
M!\4AV]52B4 ++=' _NR/. ,1P=^"T[NW`YQ0O[XZ-I$O2 NQVI !KXQEF'T(
M`+UJ1+5?4]T%15O'3O-'S7H<H UW ![AC]H$;F/K/ _VIJ ?WK9AV'X((PW$
M^\=?06B]J)V [5^R[ZF7D42E2D!3LA<]$F/L^PT-K^]5N=H !,JU[QD)<AX4
M`M%Z`$/$IZ"X).(^"? ^K, =>J2L.WK?=$#AN
M?3$'H0H,YE/U.\R''T;C C&N<T <%XZAW]5, O%EWTH(`+8Q4WJ7+O\/&_,.
MOI92FKR]\LU^BJ&;=!'K<D A/G0[%'9J$3AKD!,I^^RA8X 0A82J;N4TI,78
M+A9=\?O)6 P2(F9)TDA#FHW=XER,,&&08/5(A= L [P6(Z?444Z1A*U0EP],
MF1PF9E!TT1"1+_,X_6&_,)['QOP=CG:SAIGK-;M^B64YY?BR1\B.=%Z&H>\`
M#GT0\RB/0G6U5IBI-I_8&"S,G&1L]VS4"5KSL<J1YI.5"O*18%.9N_CS9'6D
M;RX!R-71V7%'R>IH9Z_6'NN)49'5:C**J'#DGJL4<E4D7T56J$B!TC?2OS!&
M3ENNU#RZ"VN6.<GLU>S:"$[?K5 1\*Q#LF3J`('Y(\VC*Q%J>XPP(]K8ZEG(
M7OJ>U)M[*B:!/ZZ'/6+NV1A\ $JJ(+9-T'8WL-PT9Z^?4T')V);9_#EA!F88
M;"0,DF>Y4E :/0>$(ED:;;Y2H4I;H*T,( NT:0LB\1M)"9:?1QKVXD!E; >=
M(<+<8 \C7L *I-Y%(#I0I+J="X9&\(60*#K<U7%!0"1/ <[9,*4IZP=DDJ:L
M,]+GG/3IP \IZ!&R/B8%5YWB%%+0011-2 76G;3 :"_U*=2HE'JG]?U7 -MX
M5*F>1K70. ^X\#H_S
MK21;HL4ME_Q^* SZT ')Q"<G0 U;1!-54U O`L6U08CV9 _3]YC;*D*,=5(.
MSCI+FB+ %2):H*;FY HE:=9?)XI /W2^_FA#G>-,%U% )9^JFX!]6M;)!OZ,
M==ZA^JGSG!8UMEP XL*F1* P=0RF,22[$CT3=<K9I%LK>0,(=EJR:4"5I%<
M(LGQG?Z]VZ_\L"V<*GZ=Y=CY<K0P$4 HMJFZ>YO*V:A>6-V]M:?:OTU#H5 3
ME:CK>12++ 9-H%IL\,%7`*MG61!I >3UIQ6W-=3W*$B]1WF-3O9[<)[10R<9
M%Y:H(*9#B
M=N*XZ<GI$9==]OO%MR"&G+OW)OR(_.">,.)/H$.<Z7&==DG.HTI7%#J$J,^
M]0ZVO$1'SI(:7)017[[ ]X-X&2_YG $?J0?_*#K$U4S!V>%IR,\'K;S7 +.)
M%4K"DKFJIDQ<DV"$;%6C+1(_H&E201.!4,+<B4[O&% P?V?L)J;$-V3-&4:V
M")SFUMT-N'&!2.JK2_MFJ< VA[!\;!W;2+.C O!N0278E+1$W;8(&S\*WBH^
MPMQEUUACH6(5"F.K> 9P9I-FR/,8:9,G4/ET`/(*60%E.2N +,>"BC"*AJ-J
M*G6-SU!<2OIR=Y9:P=]> TM"XDP#PSCFJ'6#H>^EHSL =&Y2 ;0$Z?,Z`!_
M523GE7!^ICM+?8"!R>)^&Y_FF!.A%12-3(1P5XZ0I21WV01[),D"H<B/ X0E
M&MJY(F^6 934%2VDSA36*4DJI%>3=<KJ>CXX;5TD37[G?Y*\+\Q8YVJ3 H;P
M4U4(C 3"L50HTY>Z)^4XKDW 1AA;28?K+($0_Z>=N)I OA)"/(OU]Y'I\(AB
M& :]"ZGNRR$A[AP_0KJFZZ.J8$ ;`7&6<DWU!BBS&S+M]NJXA=U>!S=.&.UL
M4)'1A_-Z(*5V(E% MJ"2\X[.ST"1[?;:-%4B=HH09YV2A BY5Q&N#TQ3O039
MQG+$"=.<[RK)-&')T'H^-+084$$E&2XL& HX?0B 9YZ^3&ZJ(FBJ(L]T?8H8
M/;H;5/Q8QU;]:!T_VKE5KV2V:VI1UI$._Z?^>7JE[RQB]*S4IU37;1^-C.,>
MY?\4<.GF9 .+Z:I;=YR%='I,9^A/I_>=!>:(<ERIX!.ZI^MC=3#C^(I<WMT`
MW/4]\+9O`22:Q&R?B1 GNI<P%.>D.3F <Y+O*\>5?+X_01TF&"LE&#T P3S]
MU<$M,9A&QP:U9AU.E8Z3DXW9HW6B!;I)4S;MS8Z4NWA]/\N!YEO=NDU+/G4_
MK4(1YDB9QL\!-Z)VE\(,^-I=_&T#T:L`?: ,? -6U2"L*M^7;JUG%NOH76 ?
MIWGD%UC:WC+[L,K)CMZ-W$14OAV]I=QDR3$;(B8Z>N=Q5LD_ \M&AWMNK..(
MSN::&TN#Y\9J?6;')C:)-SDV*1+YN]T/CG-\P,) [GIP'(7/'P<S(M+LRA\G
M)W"09MEEDUPX[RQIRHJ%&D8[KDSE0QQS8E6^+,>5.ZB3]24[KDSF1[G7Q8)
M=?E<\/WJFJL UC?.<47'CW1OB>UN4O(C79<=1Q2N.;$^E>.* 1_A*AAMD_"]
M1?%=`"$+;19"CI%3I.&Q>F,=.3[1'9M5U<Z%FGMPM>"[4"S-HJ4AJ$Q^`?W,
MQZT49*(P"F'^*L-T`,QG$ E*-N 0J R%KEH16./!S#XA
M9'?;8W5Q1V8;ZR[\Y=*QV:& /L^"P3J*?.N)F>2)C)OKGN.?,\LUES5?X"]Z
MJ_Q\:-,,%?+NP7"JSI.C5$$7=T#IW>/)>U5G.)5[$9M9U<KW`#S#Q3>RTXQU
M0KDJL_K\]MN-K270U12"1?_ I^& $F2.PM% <(VP(819W/I%(\M AV,=FJH2
M&[A+& YX`M5R+_+/=O1.X]G9;J/CNID;[KIXW>NZ-1 -T+[?('VQXB?<]]SB
M;9?KA%GZN)/"ADEQ1X5-4^(N"*6&N%YA>6+<V;B3U:W; ]EC9)9>UFWW2&.W
M$EBG2<B?1#X
M'<LUNQ;"MS+,4L25=4X'9W?F.);3"6-PQ!TC9%\%542X"X>]NX2<JS!$*3MC
MKV*V*D%AS!(R=9[E+%FA:U2&3*4%B!-B]*!&*2]]= F[I2>;!<4(5P5 1A#L
MR6&A!XNT,%,OK=2K?'>Z,V/W*SG-0$23?2/V*[B( 4$Z=V84[5^6(GNAYI%A
MA9X2S:[?`WQEB>4!S2._H VKJ?H[PA[#Z)F(>BL&YR/JIQBI7?\>A*CC$/4:
M3=5)Q/9'!,_55*6BYRGTY-B5E=-]$99L3=5T\'<Z FC;:F$*TM^0[R%I20/I
MO+E+\]A^^)*')PTL(2!AN53*&1HG[FUIJ=; W>D+I6S$Q6(SY[)D$3:SH<_C
MB0R!)G<IJ%B'<JWGQ[ 7Q1[$ 1Q7V2(&I7)N5ODY96/F:-WNDQ#Q6 /;Y7YX
M'&GJ;F2Y)(AD^"B:MX;FS:LF-F+O\:T0%NE(!WM!C-;3/);S9J#X=]"\/ --
MI:%%[(./`WCL<9#B>" %[G[ WJ74A%!Q\=,>:+$&(!(0Q]RV+92TQ;603#V6
M45/]""Y9-(O_ZI6 `U1R;H9BC09:0?]JRE1&2%.E3"56UU$8>UGNI:1->/ J
MA8JCC7D0AQWLZ1?HEH1X#K
MVD,VQA52?5Y3]0P541CJ=HR'4#U
MP&Q(WGSK$I\<C[L0.!9HAI0<BHVB>G 052Z1HT+D6 V,QC53W!89!>55B.X[
M8,ZH<!>PH-OPYX=N($OC'*GOVSUS%T88SW<?!J&\!2>;WSB^^<Z=J79MCMBO
MT%3]$1MHLTI8K:INUU3A(K3PL)*< DY3]2 N?Y[75._ ]KE(>H5,K3CN#KE2
M?(1[A=KQGHZ\ZUJA]L5 ?XZNP;41\=HXJ$:AVO&^[FUL/5>AFOTT[CC_EB]-
M`I0Y^,8_;$Q<B\?.HA6!":-9K^^!VFA<):*+65U8?2]45B,M':W$I:,_Q> >
MZQF SMHKPKO^M$+\! #WH
MA9T]_64T=H.><1LM7?X, +(\CGM M/3>:/.'6\_2!%*[2P6A*:8:VVEY!'70
M(CF5Y%<&S1!'?PGRT7J&XE":KV_]1)A*BWN>PY7$G ZZN )HA3JD5XWC+1O3
M68[<42>Y&ZG;V:&I[U &/P\AOGR &^#O? $K_3R4V6?>0[^=3TCI]R#TA#WT
MV[E="JN#O'TC]DC?A_;4M+QM"ZR;+2%>*#V'=<Y7D49S"Y?F_ 5(HTDU;P"0
M> )7*M$_7)P($VV8I=%]JR I=ARBG[P$$$Q'TE:H_-EJR5#C)_)P_D+-5-Z5
MEJWBY&9[`9OM\!A 4Z%>0"K4? 3 `T0`_P; W]M'>PBH>IPN0 +SY9%&\)^A
MG'C*[P_L`>8)8[&,SBM^/ W*\!F4H42(P UBXBW9V<LX['J'%;>2E16W`1 W
MVGE%L7$$H8ED>.+U_1NB`ML&4EP??J<5O7Y>WF40Q^/Z/M"!BR<G!0?NA(OK
MB'E O(X1: F6R8A :J>N;N=42/$ICP>V0SUR#N)SN/Y4!V3I0S\2T7<`9%,P
MK0GNN4CS6.QC.ZVX27HFWL9(-B('/S/:F /GX'7H,+S>:8'7VWJ(KID"KUI+
M/&Z0HR0F$50PF;KP;?T!WU-5N->NIKOYD^!]\'F /E"'N*XB+BUXWU8BKFC$
MU' $"^3Y'4.YT]F E0+,)_GO:5>3O.(2*)FX'_A:](;+`D**H?) =M;UP=-N
MPT"I;1-GQD(A&ZN[>75-,%W_AK[B2Q*B$(GY:(5.'A$\,30UV\5>;*)<`,-\
MEKG-?H&84BCM$NF>.5)P;V+ =":PWM\8* ?&&%NKVRO'>M2_E[;4I,(Y+4%^
M3D5Q-F^]D$9SMZ>0EF,];(M-Q&51BC4M^)_0GRN#Q9W8
MC9Q^%+5,\451Y#Y$[OM2`B>)OY+*2EID>X \3V0U8MB+T?)N:<'0<$&I*)!L
M!XB7''?VL/:P2JVS1\%I?='0A2/SUG7[5'GK?O0%Y:W[`3CE8^"4-%KIBO"]
M4KY/^X*I+ >B+B C).*LD_]!,H-DCH ;,R.$L=,A,IO0#SGANTN(LKV,XZOE
M96E\?92.N31L'X:1E7NN$NJ7:]A,Y<:BO+U(.K'MFM^_KALR>3ZP:QN,ZD*P
M6 &%$A<`2ZW[\2:QN)0M&C#VAYO
MU4)-(JR""8MI;*_NWJXS=M,:"9:09=FR;!*F8K2S46GV;3U-8\5U)U! TGK*
M`E+X94O7^?/7L=1LJ08)]B[$OPSQH+.%RC"DJZ1I^O;K '>/3K9X&:"?45'?
M2)J&KI%EPBC6<1RG+E".:#E^&6FN[U1<>-'=[/ RZ,(+JT-)"U+(>\/^ST3(
MM/.P;M60_>W2YN?IR/KFX_)FX"VE'T,(9OIL .F4_E9H ?:!&_72&O4IM\K8
M7G6$4^'R<=5YOL>S(<P=[E)!T$C'90.O<FQA-X%F?'&&+<OW-90DAO14PZ .
MLWUSK<$8O>L0722QCJ5IG\6TK^*,,'N\ NO/0-$[,2I7VW*7G"]B*[=Z,*I
M7VT'NAY'5^(?P873G5H7NK:AZV-TH2%[K7X?N+ 8M5O!13J$%6K1"=V^] W9
M`D5SJS -D<:\&,AC' H>QE.EQY;(]<!,?VB76(23W%Q)2"]7H=JD?$)6:G8>
M/H9M'Q(,TC'#V1.B>70<B[:'^NHJ2-,]$VE[T(VT/HK:CT!WN]&%$^?.M]#U
M2* E#E:A"V>9!W%$H>8VPLQ))8+VX$YP KIYHI<//^C"N*URP/<0\! &/ O
M]L90&=$4*R\>H#FOPXIQH/ ] (445NL,[8YO=ACK2LAJ7>>?J W1FVA3Q,VA
M4UER K0)HV&*\ I54>^&49,SX) YV=D3Q$TD;:X(Q ==' !DW%P86 JI5J^Z
ML'S8.K]L3X<:?C]2V:2(NNEX!3+NF&3P1Y8O-M896XL$F#B1-IA
M*_CE(CS9"O&O:%D>I/ =#NVW9PPY
M%:Q=A5COD;&^$TKE,LS#O++5=Q2:B9&Q^ [8KQ?<U!Y% M\K6ZO%"-'"++W3
M-T4P"KDJ\T74,Y G6JI;^3,2(F-=_YR=>$OQ0,PZ)E?8 -/*'Z2!539B3TH;
M00]6259UOB"ZM\ %D0+E4'V:>+N]0?P4:IQ ;+WT/8"%]4W&#E
MY0F<M!FEAZG:+%WU$4TUXO7LHN95+] B<*.$;*U R4$;*T&9LQ]+,D(*VB,%
M/0:?>K^VOD<;UV0\?XCVIBEZND9?IE<13J\&<();[(OUD=!%RO0ZL>T$W=B-
MMD"/MKY7&]>"A(;I2KX.MT2J6S75?T<!GJ\U?[(]G+8-M2C25!_'X$710G8T
M!&*HN47CL6,>H'W1?"% -YY:ZUQ#FQ1J)5FG-4#SID$F.V8.`-V>ZLL0LG5"
M? P*SG$!BHC::Y0G(_8^(579W+"=S9HC9,:8&W:$TK2R$0&H2]AFDUAJ$?ID
M U+KKS*U5E-JG3S83X<KPEIUW"<8-Q/B0N(:`L$2<9:IC=U(FK%XE"CNI/F3
M<5W U%WD89WS<$Q KQ1DP1)AEDJP WIJ_GYK)'^+,$LIK%.:.[>J^&$"DZ;8
M%BR-E6WW#E2()9E8_PZUJWSZP5!Z*JOMTB7R1?VW"G+)V'H(!5!<$X1ULSWD
MOC"V'D0'Z;ITD6U:Z--07UPCY$M#Y$ \2T8^.J =CD5&L0CQ.2J4A!!J80:&
M*C'TX$,H*'O($H:FK"=71+1TC0,M?ML8S^-8,](B>GK]_F"$G,UZYU2W;SUW
M"#LAF1_IV4D-:N^-$=?UTL8)/H2=]0`N:0(SMDG"+7(&=%/S1UM9&\G1:MY1
MQE,Z]N%0[LF-!!7H??^0Q1;XY;FC$E_%*26\'*>O.CM8%PV ZP92G.,H2Z.E
M"-=QQ]?7$,PD 07FRCO/H8+HGH"AW8=Q__:P0E.-&\=N"NGX4$$ZI$1TW2N7
M4(!9H/V+X;=(=N?'T7"LKL_^6:"E!5Z5TF*!:VDYE])CDFY=U1E-=2X,$!*
M:P(61*IBOWDNXB/'W-'&5L<5 _U61XIY8^2#K>'&=G>TC3WI3G&>-3C\AHIO
MR AY7(.<(V$23\_7:1TIJ3R;0[YU+V&J6KD81^\4[A9'[U28:/9.YB+0,BG8
M.NX<QF+0[,))F<4LG?<`PJM!U1%!,5:B< R/6M0#K[JUY%U';RH_#B!4-G$$
M!AD Z'HJK\9VM8G7<0!^%QA&C8<#E7%H4*="8=%G?PU U$^M^+2 =860CRZU
MDV B. ]'WANP9UHJV< ?<^L.43.NJW/D<K,7'6GS^:!L8S>6DK2!4!0)9MH`
MDLF+9 HGIVWBN6L4K5)/6%S/()E*:K21"9+->5B+DIE*Z5KDIKV4]<8BZTVE
M<O K-'MO%C\&'():+YAH?$/<A^YHB?$<5Z;P$;6HBMC$)DH%=ZK$G [_%/X!
M:!+07&CL/AHTI!,,UM^IS%/1 VZX;^)1CME']T\VAN-2LGJHVK^(G,AU':\_
M8>0H2/E7_%3\#QQ__5&X1R%0JW; VEN%!4IALUH(V?E-$,PX]R72<W7_"O+-
M/X"6[#LOMP%TQ:3N3'40?XMD96_R(B?#L+7\'32"]]WAK!\CP=G;:E(AY!W$
M) X/ !D]LW0'Q] #WL96
M6^F'_?V3'OELC%>J0RTUU5= #I-!_S"_QRE) ^\[]VRUXTB0:ZY:B"9CA"BL
M#ZT4T4JX9#QY
MYX"1TI8K.96 ^O<WOHM2E+2OTR;B_C8]JT2\(C47Q+V*N^D1)KE>=&N??.K<
MI(9YOV32CX?#W/=%&+N[#VNY,.B-O:>0IG0CG.XZ-8O1HR1#Q>&D`68!,/"+
M( ]Y ?(6CMOG*R ZK!%:3\5%25OM8C>P'3B;;-0RM3LS0L7A-B+R3?\.>]>-
MUO; _Z1!7E3(5:).4!-Q0^">FN$W"0O#YD1I2JOE'1"M*A R/VWHMD7H^-N%
M+*VXC7(R-]I=$.%X3^<JB.CVAO(JUPEJ*QIQD_U_:C,(JGD==Q?=>U#DKF/Q
MO1Z&(3VH> DDR+W+ B,P"E1])B#Y<H8[TS_;-<-?5<?_ /))/GL(,P:KX3S
MX=5UVT(NM34JIF:)O\?6;AZP ITG[4//0\W <E4ZHSZH/I+!X'08-A;K+9ZM
M^D1/F9[=W08^VV-UQE;#F1=?)%BZQ?I)+KT>`*9X. ""(*AV(AI!,L)<I7";
MF!8%'+=424+(0B49!V6?XG:483UR\*Q]8DYU.U\/LZ$4AJ\%O\V=XY_OJ6!=
M03#LV
MNM1ZZ3CJ%^ $'<&SB)U)+'J>G8$!I$.,H01Q'E:%2AL%/X/^HZ!X^DSW,T]B
MX5? PD?'S1O Y]!_D'$0\+.QKG/%R 'T=_84;E4Y>[;L"'**NK[R8;T_K:[;
M1.^?`+9\G^J^?EXGVQN 0.^2NV.;&!-)5_AHW9S6KK^ T(K!^,-_H2M36M(+
MHNDOMCX ><S(7P9J3V1 O !Z3>C#CO-$U8 L#HSJSR(M1L^%2V8_(5"Q0:"
M4 3 AO(K"+#C`T S4B+-X2LR:2"%^$N43MW;M?L=O-KQO /D8+/X$83EKY.(
MME2(<>4/H$:P.!_*1?,"^8![*'WH1TGHBP/HJ19,=^D$]2XTC,F5UMO"Q?!1
MLLD9:1L -_(UKX/J)A;_DT["0F%PZKWD]P^<K]+S5^08'4];1 L`^NZ'<2%"
M]05PNA&!&)"]6-\Z\1$THFBGEB*2`4J_^4E[P )I`XJ0RY<"]>O;LY2TGX"1
MS5 #J!W5[=RPM&PE%R+<!NE_[,?Q-.+X^R6TN5$SW 1)91*R5>*/UZ6*\*LD
MP#H
MPN:,HF,)MF(W,(+O-CS4;%>ZL_-(EGHOT 6F;/A6X*TJ<B;-JP;I')(BB5 '
M*5#F&K/R650:^(LRF)RGE!=D$RO,40MCJH](F20=1*5!O!L_)Z'Y3O=Q-"TG
M(+W-V"H?!!3#OO+[Y>8GSF^'' /N_(T?-TUN<AY7J9?51*5>B-+"L GSIIV]
MA\PT!:VW*1)C:]Q[LG5'_5<*5A37_ !TA>G(5"S*/ 21E*M^O7]/OJS02<65
MN][&CW5]X/C YBK%1FX?1KDJG$(XY 6Q.NH2E'MDWH39%ZV1N=D^&D:ZRZSF
M_H>L^U/[!"O>&8*WB]1CIYR*MT,8C\!\GH PHQ_M-GB6LU7=H"2W^2YFNA-(
M6U4W?Y;01'$B*$.47U;\0Y[/RH?C]^6^TV=IXZQ3LLUB\C^HM%Q,F "UL=MX
MA*(?0WI)S(ALM];FRO=7M?(_.NN5;NT,<'U->IJHX1Z#A^ N>I0:8^N^KK>I
M9\B0![A8/L:Y"1>12P1;>(E5"PQ48AW)5(90<GJ-U,82Q; TZCNMD:^A^=P=
MZYA27#E9%P1:`%N*NY"EVI>HI$Z$KKH/H9S6Z!MA%0AK*XT>`(M0B/\<G=Q
M?J* ]D6(P[M'W(%NA/$R[:>'VA/C=F,H6KTH^6B/DJXK"T_'(*/MH6_*C^K/
M1ROZL36X1"H6#HJF0;B6X^Q50%%Z _A "14VEK2?GB?AB*/II 1C<9802!".
M6[UJW.H-E7;(<'^,VNLXK%6OX9[MK=" 92MI^_Q3,F,,;0S&*-98]SQ^J;UA
M'SPW!MIW,+S*T.J*JJ+-2A/0?0G9-J3/MK&SF]K74IE?HZ#VD3C U2.!)F A
M"HY\W<9LNA?X\K*"&^>\',2-$>^\3F7!".<5!:^N_8-T^4L(7447O\'%IZ-4
M+7H2G.(^"394; 6'+UBZ*Z.+[K$]O\K&/ G/*S_SH746'P&LGGRL<>^PC?.G
M7BL68\*P/LK(>Y]X;5NMJJ\3>!*U*" \VY=[_H:\[FQ0P0RHMY3OJ,V%ACRX
M:16J$V_0'6:T`L ;T6 _$9^3=J7NH&MUM!02N]FO!KR4X];0R2",:;4BH#IH
MG\:UT&5:I=[WRQ+G-F#EV
MJI'W:SAA1[ I*=K]05R82VNK/ZJ:S5]<!'41;X.X%<XO [CA+NULB-S SN:"
M7+D*[Q[Z V0/[!_'J8C68U/.YG_ -%SJ;"Z.:$FN<C;)59%<-1>=DJLCN1 2
M4;P8#SD"&P?D4ZZYHV),7,>EMJ6Y,FCC\K20594AX <;9;7N%Z35YS$<SZ_
M/S<?EY0/7D59%A.STX>W'TS%UXZN>Y8C.O$D1*$5G&JR4O^D8%/Z.P:=I[C9
M^0KH>DZK\G647"$PJ7P=%:EG44N1;XBZ+7!#U/A:E% UTD6&])(H37^(&/,%
M=CTQ6%H6H^.#A,<?]3R./"V=N_X^2#FEECHO2
M0 =[U+$^)3D1]WW?/10P)2 8LIZZ!)6EOBGI"*D_MYZ3IZ2^5?*$=&K+7U =
M;60_\BP-;0SA8.;<YNS0S!'QQ%&]3^G*8LU'>1_IJ>]1-LY038.XQAEA'+7S
M=\T()ST0(#Z.5C
M'<87W+">B$J+]3!=:QG9M]*BDBUCO-(:CWH/KC1LE?8M^;Y('#EN9D]$-]T:
M<6%C."1;CO.R1NFFJI[K-.AI*:B:!EWC)QYD`6.-[A!.B\2";[#UC74D" ^[
M$;JBV>FGH%?Y)8- [P;0&C3$^QMK<^W!0"L.T-LOU& ??PL"WZ"!5VG V]*)
M&#SZ2<_1[:.8]TEV$,&2J4Y'+IZR6"D;!\M=+E(Z)C,HZS>_AE(><1?I0T $
M?$(9_KCS.LO?(A.&% O-WN1LB6E(`!/6NBDV[,BF$'$6"JQ+)RZU.T\P8AH]
M W:IS7D2PJ1OV)'-D8%HW'"3W5Y1T^\)) D[PH^9RXW.-G^T,8S4DY:XUDL7
M'T>3`7(T[HC7?,P>PX\T>S<.CVLCWK C<:V2\ ^N]E\]>M2[9.FRN&YRB?S(
MMH\X8A^5`_ _;E2:O97?]8SH'N&?O^GV8R>.M<>UW7KT1_NW+ U1'^L\ULZV
MC3A:\9V/?E$_(UVD=_6J>_NYJKJ55X+ VP.3H5ZTA'Y!]/MW]B*1*X-K\2/L
M>AOG[CW18J886".CNJ>\!B V2L=?`NN=HE) ]-?AX^VWEU9*RRMH!2=?0 KL
M$'B67261>F&DX_1U<XOFD6%8:K4^KH4]1G(8X5:T<PRG=S-VSL>#ZEY64WV"
MWIY'#Y\+F<K=)U'_H44K25NL5_/C!1-ZZ'T'4>;K&U5"")J$;0P3*E48R/N$
M,B/&%?7P6]#SES#FC
M!,1 MV'1? ,XJHT]T1D.M)'M9N2(N :\RG Q\0)-'.^Q>!W'K9X8EM86%#XR
M:O=)W/ N,9_\&=7VSXC&I=LZI7AQ/RXI]N42,%R4FV[ _7![_%&JUW$>Z8]2
MRU\M_2Y:2E<D58()XTD$?1MP6BXHA B$W8<O$E[=#D%!`DVV#U
MDP[R8]R',,VX*+X>PC#TQ
MXLM0"<5=E)-_#I([\;J?#D.[L=45DTBQB<^&2M9M(#IZQ
MZB\K')9;&2Y8C/J3W]^DH!VZ08G[H_Q1.55 O:T"IM: C:%[+UV$&=DI&?Y+
MJ_3T' J&-S'RN ]=L*$GT0?J/_XHG!."[B;I=2NQ!MR7_?M8 ?UL+PP&$_9C
MTZOU,!9,)-\DG<AX!G E!CI8HOY2R_B3X[O"6L W,)5(.G'W,U*\=/< O2 Q
M5L5-IW'CP3=U+P4)\=V.PW(^JB .:?% :6ZKC!!O[44PVJ&]LDS&/DOJC=V
M,/8 /6C:)J[;)^W10\M3QAAS&AD2IHMW-[*XQA;L2,4KP=% $HW3?+A1O-1/
MN^D1?AAHRGB>_\47<%\-[_]<M%0^78)G;*! I?+"?2GJ-'C\*TQT7*;E+ZYN
M!]UVV/"YWR_==DCO.D0;X,-TIC]+6*65%[D6J(,O4".3&9%0C&8HAB?G!Q Q
M>-V+.6JJ[H<"B%/?A23?D'EZ'6X0`[8-B&VZ?I*Q?7<;!"4^5G=H$[TY/OIU
MFR3T,E]\\05"O?*&`9H:D6_$>"#Y
MW%=P7M?R49A$Z][".OR(R[^<#W(V*$"-\TQ!&W+&<,383J^S0-6(-)F[MHU)
M^ST.%96*O[*D3?/Z%^P5L[<"/%F^3],B]3S5MX2M>G6U'VIS"]IEL[QF)YI=
MVHUAQCI7BU-<5N"UK -P>Q\XAE1 R):!(343;C ^TZ?_1)-WZ>*?I/M%ZFNM
MSWS[4YL;N%+DJ6 ;E0J<[K=BOM+1 [DV<3JB]>)Y`3QH0EK$_WA.'N,&88_\
M*=Q!*_61C4&,3XDHT/ R%[4A[&%U] PD*LGBZN>D&_S$I> `43L*6EC+\$_C
M*!;(A(CBD]+YAJ&5<UI[J%I4!B!14'C/<A:4!\WK7O'19^4[86^5!I?D]AO*
MKGD=:$W.BNI R=87E8,6J+/$;2$W)H!XAFIJT8/VI_I68_L;C$"#X
ML)M'.%*MG JZ85;5$?XBCJZ!FJAE5(XM+*-YLD[SEDA5,[DQ,_&Z%KRK4%J:
M/?>R'O5K]! -3%Y,=(,.)CUM(#H6BMG/W(2O`AG*BNA/\14 :9%W_,1GCH/>
M_2A'`M'2W$V[EZJNRDET?J,>T%[2R8%/I.)WOH?V0'>2*U5G-%7_E*X/4HA7
MVI%WP!DD=H'37*^IQC^/!&VHJ78S ;U(<BGNTWJ_` ^*E&' :/(]G0=E*F%2
MXR7)+[2&PI6)!M(A/H?E;3.TBI^ PQ6)?QA'28Z*CV)PLZ%;/(3!G!(-O[X"
M&N96; S,]ZMGJ3EU=K<-5W?%U]X"XJ-YQM>RY6G;$)O"?.)U![EOMV3:0RP%
M6C!3B=7?TL66_I5!9T\FVI<5[ ARUNF\$CV5E)ZG >G3I8EDJU =3.D)ZOI<
M:9LJ&N+;Q$/!5!(.`^='U'[<]SDX)TG;;$K0SW&G7T$G`7*U\!X:F/:WB$$2
M'C4XGP9G-FGP=4+M[[G1_G )3D?(YT;$F5)]OK(`IN5<-%V0 4ELEWA %IG2
M2,]0D[*^]0%2+^W888>6AT?Q% Y13?V2MAB'QN8^41*80\<U'^OQ3*&7`WAR
M%.+F7U,K_,%B)P`+LN:H>.D4\- R!6DI:5). WR:3E&"9K%U]/!:G4(T(8XF
M(>O^W] Q3UM]GG\36TP[>%B#R
M:!J>-46!7H,:JGC 2:3] +8+)-Z'*8 *V'N6DL3H.[D`A^(=9] 9'JJNV[$:
M^Y<,/ NOO;PA=-!8 PBH67>)H"%72J!R527R?9H*\5G<Y*E'=Y"X!]PEYGI^
M+A*/3Y++T177`H*\^CQWNQ!+NNC26BZ,<<(LI;,.N_SW( %&/T5GV!-LOMN1
MW$*VPND%JM?QOY/'!=ZYM^>F8P*U?S$W<+:*21[+&'-3Y7C/1K_'$KW[Y,*0
MQQJN+5AXK+/DXHLCCLR867+QA="K],*/XZ1I]TF(Q4W2BR_B5B=$R?WXF<\-
MSZ ^_;GN&6]^GL/Z,MTU'%VKVPY3SDG;<0/C55P5&OO&Z_1/3>Q]$Z=Y;P71
M+4$/;BG2%+R7GC^C*TA59_ADUP0,-G1/KLMM_^J$1;_<?=C0: GBPT2T9W,U
M9P;PCL.S6D.+%>Y>SH*^F/(>VJH`!E<;S<YU5!H&XUK03 '2H<(2YQU '2;_
M_:WN)C^G)B==R]GZLRJLE&O,/0/LW7&I`_MO*[WK`Z],J&[7/%))M1R&'PGZ
M2C"5ZL8Z<DXV/I8*>RMF.(0"J+MR5AA5T,9C'>N9?Y4T+<*9'FG+S5NGVHN;
M-;GR]3%X8!R/8 DY5TM(".F1T=/^)[OS%RTK$53DHQ+S4;S4I$1(I39;?BZT
M65R[AVJV[^+"R4M8>3^O-';[)I,>\<,!8%E[9&DZ$BKW]\?EM37YN'BDGKP'
MH_%G']R-^XM]MA29PFCH[Z#WI$"1%3UT</ H\0_5,6+%+^4[<MK%Z![93 -J
M.07O66U&>VRHKN^=&PY4E5 +&7M8B74+LY%:Q _M'R6YST"'%$]\^\7E$W4G
M[C?INX>^:^A[#WT_3]\&^OZ8OCOH>PI]4QOA"9_1=PM]GZ'O*OI^ [ZGTS='
MWQ;Z?I6^7?3=1=]/TO=B^BZB[_OH>S=][Z?O3?0]B[X/T[>>OFWT74??\^ [
MA;XWT/=5^FZF[S+Z+J5O!WVOI.^GZ7LY?6^E[W_2=R)]Y]+W^_2-9UG^5_TL
M_7_ZDU$_P3#ZQQEF^H"P6R!LRN,W3ZN7_QYL/'QM\.3"LPJ><GCPDNLGX7D5
M2YGWP/,</*_"TPQ/&SQ?P],-C_K7D->O__]5SR7Y.7D)\=.*RLJ8N3EY"W+F
MR1Z6R2XMM"_9L*'8GHE_2SF[;'U%\:S"\J*R8D;!9-N+"[GBG,KB< YB V3_
MC+5EQ9F,4O8M+H5/$<,$,].+RXJYXFS[6F[MFL*R_.(UW-KUY4R('"ZE"F5R
MXN*<\LJU]O7E#T
M!%6;M[8<2J(9$K*,T=(0WFX'=-/7VJ%HZ^V;H=XC!H3+)9Q=Q(P<$!HHZ: ;
MP "0B<30&XO*1&$XUFKQY W%S&CJX\O*< NYT 6%#T$1F5LP;%YA!9=CMZ^W
M,TPT]:\'PN%?`F686]$_?WT17T;)*Z<:<V/H,H:YK3]4:E^ C,&PA3GSD5IC
MT8W5RRPJLF,C,+$8DL\5R>S C$,_9ERPOKP8J6I_J%!J/1W&+(6&H;[QS.QR
M:-["LK5;;N"&VYEYQ865-P0S=S#SUA=".]QO+Z0TUS/S^3)N;=9F8+#UR]86
M%2.;,A.8?&RS\HKU9<79G+U,*IF=F8CA`RB\M-"^%O\*>29SYT_$+&,FT1AD
MJ\ LHW]E>QJZD5F9N]&%A"HLXXL9`_KR`SXC\Y/(F'AFZ5H[QQ>6R1 3`GZ*
M-3' 6\07VS<SC(E95KB6F['>G ],5E:\\/YU0&,FB0D0<?'Z/LHRR<PR: C*
M)?_]Y[+_/_=C69997%S!`1_H9I=SNJGINBS^?F!^7<5Z.Z=C)A3I'JJ8)NVQ
M5%'\4.&&TO7V8AW^6?N?"9/?%\"7`\R#Q47XEXPW0F]]0+=^8WFQ'?%(8]?T
MUSRH6U]9;"\I6[]1!Z]"2I8-V-_#BP
M&I[#BG"Z0FET'Y03IH<JED%J8+W_X=28%D;-!XKME->*BOLXC28OA]+CH/J?
MZ;/S&.JG#OAEKYXQ>U[.ZMD+9BP<Z,;E?28S:\'"O/F9\W2+<_+FSUZ0N7CV
MX>FZ1I2-B?R?>/"WQV#K>V[R<_S?7)O=9INDK$F_(/RQ-_S"U8-_*7T_.6 Y
M YMK83>)R\E?_+^VDCG3%_^OIC->88=WB^'=>$ KO/\+ORKVQC9XH'3MN ?+
M'BI?O^%A>P7'5V[<M!G_IA%C6V2CS\^%_[EPD7+[!61VT'^![,:K!OSR#W'C
M5R%_!_KQ2G/\IK+2-WB('[_LD'0#T^-UZNA_"KYTW9]J- MES68\'=R["FWT
MP9_N)1NCAV<*/(GP6%Z23N(P82P[+$09'!RL" H9'JP/4;&QMXV,B J*TD>I
MHZ*B0D*B_"'^*+6_[Q<UX*<>Z(G"V% _&Q4<&A)V^Z !"6(`"^(:R]ZA'J:D
MLT>. !_$:_#WV%<IPU=E;XYX__WWU6JO05TK_G'8E*+QPP!/^+X-UG#R^[:P
M55F_" .486]\]I$*Q*RJ2IN%?TPV=&M7?>BCCSX:&LKGAD)6H;1 NVSTV3&2
MT3T[$MRZW%A\NU; NR4/W_>MIF_D&D79=G1W(4SX9R9XCQ-3,*2L`-Z1NY?;
M_EM+^.^?5A*B>H/3,,IXOW&]<:.QVB 8GS;N-1XR-AH5\:KX)?&%\<_%[XNO
MBV^,UR8L2"A+<":0A%\E_"'A3PFO)1Q,R$A<EK _L3-188HPZ4W33-FFA::E
MII6F-:8RTQ;3HZ8G3"^8_FSZ#U.-Z6V3U_0OT\>F=E.'Z6O3!=,UDS)I9%)&
M4G[2JJ3BI*U)!Y,^3?HJ24SJ3KJ2%)(<D3PR>4SRA.2TY 7)BY,?2'XH>7.R
M(_FWR2\GOY[<DGP^N3LY)&5<RITI4:G6U*=27TS]-'5'VA=I*RU_LQ18*ZU_
MM"K3H]+'IR]-+TQ?E[XAG4_?F_YZ^B?IWZ1'9<1F9&>4951E_"V#T>&*.<.,
MOB!^4_RC\;^-?R7^G?B3\;[X[^.OQ(]-2$Z8E< E/)6P-V%_PC\2CB8<2_ Z
MX<>$:8E)B?,3"Q(W)NY(_&7BJXD'$M])_#BQ
M[36]!FWPCJG)]('IF.F4Z8SIK.D*M$!X4FR2/BDNZ>ZDQ*14:(V<I-(D+FE+
MTFO0&I_3]KB:I$B^)7ER<GKR].1%R<N2'TQ^)/F7R2\FOYW\??*EY.O)MZ9,
MS/>;UYL=YFKS[\U_-[>9>\U'H.V^3]6G34Y+2DM/>S[M2-HO+-667UI^:]EG
M><WR#TN]Y3W+2<MWEEY+L%5M'64=8QUOO=MZO_4A:Y759=UMW6-]TOJT]5GK
MMQK,ADQ#H6&=P6UXPO"6X9^&!D.SX6N#SS
M,8F+$N]-_$7BKQ/W)MJ!T]RTE__5]"%PUB53&/ 4]NH-295)GJ0C2?]*:D_Z
M+NG'I-ZD*<G)R9;D_.3"Y%>2OTC^)KDKN0<X2).R.,6>LA%HM"?EURG/IKR8
M\CK0J3:E+N5?*6)*N#G2/-$\P[S&7&[>8W[._*[YC#DUU98Z-W5UZL94=^J>
MU'VIT](2TQ:D+4DK2+LO;4O:SK1'TAY+>R[ME;1/TSY/^PYH&0V4M%BF`\V0
M>R9;$ZPVZQSK(NN]UB+KM]8+UEGI\])STQ>G+T]?F7Y?>E%Z:7H92 TN?4_Z
MS>I,GYH^,_UH& &]<%K2S*3RI(JDJJ1]T+O.0?_2I.Q.^6U*;XH%>&./^:CY
M:_.WYFYS2*HZ=4SJN-2IJ?&I<U+GIY6D5:;M2"-IKZ:]"_7UI2DL&LM42YAU
MI=UC\5C^;;E 28">6VLUI*>D6].S*:?>G[X^?7/Z,\"KKZ3_1WI=^H5T!91R
M!$M"4H(AX:X$?4)L0G3"R 1U0D "D] ;_P.TAQA_.OZS^./Q+?%'XP_''XJO
MB?];_*OQ+\4_'_^[^"?C'XMWQ>^*WQI?&;\A?EU\4?RJ^.7Q>?'S0'[;XE/C
M,<- _C;C3^8?, YGZ"QZ2Y&EU'(T0VOMS6B!OO>L]7GK?NNKUC>L;UIKK*H,
M``!);G1?5D,N97AE[%AO=!15EJ].5Y(*74D5T-%&HW2&J(P9732B<!JDD>X0
M(!TZ!#H
M1I,H`P1<C,*Z88?%:CM'XMB;=* WM?=6=2 X,V<_[8<])^^<JO?J]^Z[[[[[
M[KWOW?*MV\=8&89AX=%UACG"F,7-_._E-#Q%,]\M8 X5_*[TB*7Z=Z6K6S>_
MX&SO>.ZICL>?<?[X\6>??4YR/M'B[)"?=6Y^UNE96>=\YKDG6^XO+)Q2EN7A
MN])SON"U7W6./]_]^KU.FU%?[F2Q_J=CG5.,OG_H7&C [W8^8-1O=')0K]K\
MXU8<-RZ3W\LPU18K\_[E7RT8QP88P6*SY$/GC84MF XO$9Z-V=6*YC>;'3->
M,W^7I8-B-=YB]EN\CHL3='+H:8:9S?P?E(VFOO]<N5]JV29!_<\U68'\WQ,,
MBA.XW-_QY./2X[#B\;4[QW5PHX VW/>;9,R/2N 5RO(*_1%=E)DLDV6R3);)
MVO6'G3;B3Y/VS#L6!$7:G %L"O%GR!P3\K-TC &)I)W-0AQM9\VA+&GGLB!/
MVSD3Y$ [GP6!(6^"/&D7LZ"=MHLF"#SM6=!!V^TF:"?MCBQ80ML=)N [259
M[OT,H[T%+>4X1X>TMY&QIAY%^#T;?.RCIRJBQ.)6$NQ"\1Z&V?E=0/O',5U7
MCK,KY-]KKP!)^8>;HZA0VG/DK.\)<201NYI'/XAI,ZVG5[6>QIF: '] ^P'*
M=YQO;FJ<*)'V- A9$;V.!*A4QD6&I?N4A67[W8PU(!=K2> >B38$I"E^;0K+
M?*)-O?%Q05%P>;IKK A?6VT!S6XSI)9G189E2Z5)99'RE(\$Y?)0X(;\G"&_
MLJ.,'=CZ`UTJ8[5?X_[!R%OF>\HX230PE!&Q+T%7^MQ^F!Q 3OL02!L:XG6!
M^J/;0F[0\GH4-:UZRAQ^(' $M/T"*+^>]FN]1:A_1W,3C:\'H4\#BQPI5_O\
MIC4B*4RA>BO9 \RK4 <X4LQB8PN_^[*^"P;,34._,IHC\;M/XE\6$X -<-8/
M#F
M>/GUN3Q4^EP.WEHJ T[%TR$B7Y ?O"3G!;3.6T&P7\(K64Z] Y2C!<37[Z_5
M-LY 6>,4=D'N5X*7&"3^"1*_"B_%E]'I1VK+"4V$Q<!&X];DR(7*0MR;W ZV
M\$(-%&:8H3!NO8Z-Z 9Q9-KJ!D7?;-? C,?1ECBM+F.5NUCX8)2[.*P.VO?C
M4%*(#M.=ZX W_H-SQP] M\J'#O!&W9F<1E>7L>5^?O=5_$W74:!$[:Y8Q]<P
M+;BL,BA2'T<7BP$J\_5TK'P[KWR4B5T1Z*G-O2R8B[K'X '!B&^(%BT;CEF(
M+R-$/H...K7D`3J=K$G10(:L2=,UJ>$/+*21EZ7857:Y<G71%FO;HG5T!>M:
MP<F/*5>=[^$OPA=FT(_/)M7J'';D;.F&(YZQ`GD6"% Z(UFB+A^XWK/_R'&
M\L8N4$JG3QB+ 18[H?W"7:& P,A%]&-#IV
MK1.H&ECX?M?X_EH-&W(7B-2;(7G$,R=#O4,Z)T1&`#V QA:)"N$+*&!A"7S1
M;%:)H>U+&+E V<B.&8BRC=/ES77 "NV\?LZ ]';QYA/+,'):;) X&XH-Y- >
MYOIF.)-,[H7H4_45NBLF/Z1ZB!]FP:"#X+ HLT$45[<,0:$YKI ^:'ALE $V
MX<G32 VGDT?)3E;/-6:I%!4.0E93LWD"&][,U07H\V)]Q?FDM6] "<3441K?
M?P/;I_XUT\XPKJMD36;K$OIQ^:E8 E>7BHN5JK2N= ["::FK^S)0$1'J*[K>
M[<X,X:>?[0YIT,"/7)QGF?P)70,6E\Y- T#J2IY4L60QIRZ'!D<6L\J3;WK
M-= ['+<($2\TK)^[OA/VNBSHK)G8*+M,&5U$?.DM>6V+&J"FS:RKF9.7**/9
M,'<;NEM:K;88<6X?QKF[S3 W4XD-3.S<O^][H6XE!]P(-EBZBR/;.>H3RT]:
M?!DEF&&$UWZ)_AC,0%2)Z>Q*15^D5C^0P:C73!M3:LDUTBA"G,3QC2)IX, *
M% /+" [>K 9.KN^JSH= ,AV"B0[!))]]H204G([!Y-3$8*)Z]GGHJ:33Z!/5
M#E".:R6>*V/7SY63$/FDO'%]%]TX5VJ,<R7O3RH;SA70]U8CYF[E "N&75FT
MRAER71YS0E]*Y;^EVU&5Y"5#ORO
M<_,-M9Y$M1JAN69 0N?VZVJMF:!6KTBLQ./(P!7AAGG; 7Y""%1BMRH7A^K
M_CUIAW50URQ?>M:8[91L4^)V5V.&-'(=7T$ME]$ODE-OHIB"%/U(H+GZA3!>
M;\D=!L,E(A65JSH$",E.]Q +HCOV><8'/DP-:-::M-*28=0J#WU EIRRG:-R
ML0*0#H3ON((KN!M64&#TW
MM9R3-X";&18:O)N>0O_)J#OF 2F2QL%9&SH]!)XQ0:Z OD&X%I3:DC\"IS+)
M` 2U2$!JN:Q<3:;!VJX;;'!6*& #Q1D6"<YTI< UP78S!3LZ/7BE`)+"&W9;
M\!+>R-3W.[-V:]R7SGY3\ C$MTBO9"-32/54C 40(N4A:Q^Z.T / K>G:%&D
M5]UN(8_*M[GNP!-8G :\7,9M0<[/WG8!(9SZ&&O8_HD3$- A-[-%90?<B.W0
M%BO.C'Q+^Z'%0WTVN9CVT W0L[I,1*POT7>^[^N^?ENOG!KYC Z-/%GF``I/
MF7WDLK6OH\ %=%NYCGP7T&ZQU%2< 8-T_0<B<R); )*#F41
M0% W<M&8E0..=JO9NF ]BV,/?/H*GIF2 'FA?AKN^Y*1-<"%V\ARX4C7%CN,
M1$#JV#V&B:=Q"[#M'OLYMIN 6,^]!$PVC53RO$7VU=6K"R(7, =<Q+R'9Z?L
MK-/F?FNDN21?GJY6VMMR2"5'\M:22 >I9).%=!'9R<$UH<D!%\I-NVOXG*G-
M`21 AX" H2D^O)AW0QZ^G6.D,GT9N\U&IW;FZ!;A[6B2%XY&X=[UN ,S+"6M
MPR&=%]?S,&8%Z%!R.AQD75Y.]_':84R.'M6!3Y!G=GW5U! ?7LJ[87>'Z.=2
MMHYX(582[R#Q0I
M6>26>S$%4WPIG7B/$^\)XKT`Z2J$5N+M3QP&&N"F:$[)I6A6Z3Y%XZ295572
M-/ 2(C_/PV0SS27VF TV\8K9L"2"T CYTJ&$9"(YB:<1N78OY.!>D84C ;HS
M$5CC!4&MS8X>:;R0\.;A??>"</03O&9Z%I\&BL0<)&A),8E[LCSNO)E'2E +
M0[/A3+P/C:[\!0_+]M NRT-RT=*E0! ";2?^'GH65!CX P;>,KH+\2[$GQ3"
M(0FLC%-EK2NNK?IO7>^:N13X7X<6`92X(]?<F?13PMY*,!TEW2*H>,=0TFN%
MO?WX[R/\+XAK2X0PA4_8M'7P!!2-%R+_!HG\IA%O> XGL[A^B+/*J"[GO /6
M=GM/X S)E8JV3EJK: 72\2HA8K<:V^7N] Y.P?.B,7T4+_V1+X5P:0Y&7I%:
M:"VKQ""_%A,/`]3ESG0:_&$(,C0G Q4E>E!=$^Q*NH]6L7 `W#WL'>6$8_C[
MIQ7L\=A!P.8'4SN=8*FYC4#AU^X=-$.A]U,I'_4[E+228 IE 4SR..0WNIPB
M/'J?S('V+96P/P'M$SO$NL1'^ M8`[O%'UF*EBN$?XMF8]Z+JJ0F]/CP6=!5
M8:F,> =?7^6OK].> =U08G.4T?FD,8JL=UJMOM.=137_T][7 $5U78N>F3G
M$0=G5%!4C!.#S0_&$D<2R( 9` /8BAT<F8$:4")#AA&!#N
M;YO>K_?[>IL0FS[;^-JTO36F]<;!,8"I;=3X4A)M0A*:''-,BM'P$Y'SUMKG
MFC$4UK(S(6B"CB57"MR%-*X_C;LT%-9SLV'*!&VBTVL2QT?(V:3,]0O-" L6
MM:"#R7O(+KXUAZ)RRT"U+]MS)Y"U$[J'Q,-(H#E
M8%1I-JI>U9'"SE%L LR=$X]]``#W.:H,%.:.);!E^K$^FT'U&3,7P=(6-XGC
M4.S)\-.I5FKI'5;J(7 "N&YPKX*+`_ ;X#HI<G;D]"96<'%D&*582W=SG-!]
M`%.\M%TLG:OPIP-7!3P>]=+.0 :FB0]-28CQ+BP%D>7LBZ6P!*283 0&]%J^
MR\0?IUM'^_9:J:8/(=D#R<+QKI$8 ?;W=T#X$_[])0(]"$((BR.LXV?(D.GA
MUM%>P&PZAT*0B,<1+=G+'[?BH?C%'" X[-E7B2<M>G+JP<[S-%7B27-2NA*/
M]GT$H.6>[V9 2W\.!0+'A<IV'V-:\,2GK-$ Q"K4%.S+YM!F<CGC- _E9V6L
MTCQ!K>L$+ :Q#F"L\;TCJ5")EY9C3;J%$:A*G%J5'MHR[KM\)!V35]TLF6\V
M4ILKN+E0N9X8K" N">5 OSQ,;H) UA3OD\F<0X"&`$P1`+DM$F=/1 $ :M4H
MD?+TFDDI#S9TAQ,EO;,NZ&O]RS 1 'GR(W-\EX7!KO=UEN\BR."_`S/AO04_
M'O"X%\'SA CD%W,BF1WB,P VFC24YX<D[3NSL83ETK(-01NP!X(EWR\N B+*
M[/+]WJMRDE690JO!"SXK0AV5A2XN '5!]*U(Q[$)T /WJ)W&W>[!_A(]D*$S
M\W$KT6- 'B W01MPP'&\A!*F4^2A)B]ZX-N9-9N='5QEY;OTP56_18CE3SXI
M2%N#M)_$>AMI0-&:3_I/ OB!ZG,9XP>A?1YN--=B.#U?R<"RLEZ<10`P=.20
M_QHW+,QH'?TN186$C$N0P.E[8M#G<1/:T3JZ'U(BL%:$/=HZ^L]1,#RMD-:W
MCGX_"N9'V(.MH\$HV%Z$?:5U](DH&%[^2G-:1[^'L' %UH'WAZ0F7D9^K2Q
MZ"4W Y8KW!PI?74VJREPBHOU,/I!-E;3$?M F/LP2/\'&K+;Q8OOPN"/6*Z5
M!;+Q HV+P1)*%1(ETCU.<6 FWFS;6M9DE[$+2L07`=\2!MV3?<!I%^<;B;[7
M&9W!_1J2Z9;'9 K/HD"P,K2]CD?-S 1"K%6Z7"B]0Y+P%(=O9J(K(^O,YW/-
M\Z'_+*PJ*+T[[I$".?9KW)4.INTD6XCYN' L/QO*9S/]Y]D5 +; </C,T%ZE
MLF[S)O6^WN%TF>6L[$MDKQ4+07QJ698'Q!1&^)+U<9Q1"A/LQ.M;2T\ (Q6
M^$']&LP"&>(Q VVLL.P`WN/"_,-+7=SUH(;%Q9V%4!>TN1"RM^!-Z7GSD"7L
MJ[-N$[K96;J7J[.2N5'%^T3(+H7L#H<CK=MQ9L1J=SH< ;S459!'M$CLRA(Q
M_+8RZ_-2C>P=#D<)F BD`I;\9V"/LR!B%)O>`O87>"35*( #E6$CWO"');OE
MY^80ZP^ N [S]J 92%E9F+^4Y\'&BW>]K= \D'N:($ .H!34$Q.";WR%(]B.
M:-+"EBTTQ3-RMS4F7DA %%".6KLPS=+E>Q=F0S O50][0BT:$_!-J6M WO>
M-I-7:A&(4RLQ+[H2AN *O \\1*'4]'LI5B AL^P?VI,OZ%"2N[^CB!KJTK K
MAKH8;B94TZ/(9;<)/5&BWZO\.TN"=*\P,\ `?GLA76#CPR"C-/VNW'R^$U&"
M!T$:1J3QH$+C>87&\[=*8PW2.'7*<W"ME:KJ)*]#X0EJH
MX!;ML"1[;&/ -4"['PG:!JM0ZZ;"H$Y4!1(P6(8KM#B<C:>1C;.&^W2 9M-^
MZDF!LH>+ ^M2F=:+F'0O?ODU"MJEM%[AA%\CO",P I6V0U5.`1-RH>4!'C8T
M#A/YB[1/S_?K=+URJC]T/W1\:O H).\'WXK^:8"- 3-!Y(XS';'M<1WYFO8"
M34>^%LBV%VCY;AW?0XB?FB >7#N)2[ T?+>6[]$BUD\GL/8K.'PWXO ]&DQM
M!7\$_!'PQ\ ?"])!\LK9H&XDTALR-OH$N-/ !AX %]L5FT^&]V,-H\-*ZU4(
MTG!,UF62,4'D_8] N 7<07 =^;H[SK07Z/B/2>_]C?3>KZ-(8]U4G,FQ^A P
MR2BT1V'NC\(#I,DQ^UC'_PVK;-CKA+D\E?88U(&&H!Y<(K 4<*G EH-[*(N,
M30KT=0KXR> G Y\(?B+X1O"-X.O!UX// ,^ 3X-/3QT;I8]*X7L+N 9P;5E1
M8Y.O UI'C06)3QV':-B4L</+" MAKCZ=.106>KM&8P1]D+#U_B6&E_*Z:+[?
MI8<S0(ZVT&X#WW\]D*\'(72]WL3_0=X,>?AJF K$$DLXU>"0F^$4EU/D?L I
MLAW'.<4SV&B\R&$T+K82.D]8`U)A8):P/CEM9*U?#JRG]R2X[ YQ-EI)V/12
MH>&[-&TA=KT"X/ B8,+P-V+_J_F=/#Z^1W>:'Y3-Q_DN^F>41M/*BD+.&.1<
MV3; IOX,5!J*G?LS5&U8K?3'8(Z,I:1UA8,YXQ.AZQ.A,36$.J2-<8+$UTVN
MQS9D9=2VXR5AM5"DKVX=E:F=*]L9V.6DS& 14^R4,U;Y0=? &+M7$[3I[0!H
M:L=M&*4Z2S<;D\4Q;$)/C :R3W(HZ#EY6$OXTFO 2WU`SP, RT4#R;$$%%H
MKSLC%9#K2:.P$18DX'S!]60BN9XT3EQ/ZG<R/H,%<'?,6)\&"8LVIB::ST.(
MBQ0S6LMB8FV;X!!_2D1./ZRA-&?$5DFQ4D(HMY3/1IM9BET`.N1[RMP^),UR
M>"F7>%&= F29.5U>7<7$BLZ+6M%?';+J>3;!+B[ PE<R)H"?CRQ:3[!D5<]
M_D4BDEYNU I_TOVIV"[&S%:.$KGY?+<Q0F'0J *U%6&%4!HY*CN 7UVCVJ"^
M.%:;L+(D&OJZ=J*A;_<\78/]VT#ZUW
MY&E3`)X&] _8<4Z_KMJE'MC83HQ+-T[D>03S)'A6*X #I1#MQ"\8 =5X%\TN
M#A:-%7OUP:+!8J\&)-U'E,38(1LH20L4,U?:%]]2-,<DW0W++ -"M+2DTZ[
MS9-/H[$$.ZMSHP*(<2!$QE-)O<PQ#M!0VJV4>EU_RB4TI3)2781;D)7O4AG,
MW B#R8XP&$C_4GYR!_"3A0H_F37)3W;+4D)P][C$!'=?EW3!W<A ]&H9BSMF
M\W%B; Y7*X'N`BTU$=D<;E?]*'ZJ=^&1UO< O],!:Y1-31SNUA&CF%0C-Q/D
M4\K AJ 1!O]./)!0:WWO3Z!^[%)>I&'O%1-8?2&+XLP1F :-X\ <\DTS^#T;
MPRZOU1PJ._8TS+(KS_W<'#KPDP"LM2<A>F _?!U['J+//??<9N70.#EF\M 8
M#XR
M)C1;Q6H%_>)GT&92LMT9)$1AHQ)?F*T8?2,<H-=A2YE(=BI9Q3\G3,$9B\;Q
MX.V*BO?+!.3$C^ MT3X;%H>Z\KR6=CP=,G;LBT'J[>TAH"*EH.AD5)),F 1$
MI?=:GL9$"AM_5,J#L1O)\2W 1[ZY,S%"I+>ERZ226,*/5/KF\B/?WCDK0J>W
MY:))ZH^B\I)RHEPA=L/VJMJNI4Q8:H 8QIC/\^/C,"ZNP.(M9'?OB=FB'NC(
M/9\)!;./\:'TA[/Q)L#W4
M#X UUX=0`OX:2K!(ZIC==M;0AC?7AL,YLN'PV8MH=!Y-)ZC?T/4.'2 ?^7GP
M7PNA$ATZX8IT=X<3.=-78$(9#G]FZ=F9*)2,='PO'=*9_=BA5DO/CD_S\SMB
M6H[ON)J3T[);AJG^=5Q]/4H*8\W&->N[+'2+/B!"\ 6RD; 4&UB,OCD46512
M0A89)G:6R &N^*]C:!HGZ4"64D8:^+[XYA".-4\.%6% O==%&B\%>F(N39P!
MW +N8.%_IO^OO67]?^W?K?\KM,> #C0
M#O&,'G<5&E*=#C
M>LK%KR4!CSS(]:_+P'OQKK +E.5 BJ(LZX3+_/M+NM[7=>2ETP<U 7+1T(86
M_*"5-!L#S5<#S9<XT.PN(NP 4:1=KF(QDS3,*.ATW:!?MQC:?D',C$!?UJ,]
MW6 M:)7QAZ*:7L<[8,R1-N*E K9!NTN)V 6=O"I=N8 %27J!8!O4V*Y:>IJ2
M7A7$)ZG.!*I0_8#MJA2>H",=`5%=_.M,4*:D;$$W!#UE96':Z%LR%QK:W 9V
MK>C)^.M. 6Q"?EZ:[1)LNLLP0BFI,Q0M>I+S]P\BYY\\EFK,CCZ3$D[S[RX9
MM)BN"^$O;BZYO23FN>1U&?%_O4P40-1L`CD,F\"OU3,].<F8)LV&"!W,280$
MQ<<08\)TPBE^?1"+6.W5B25_D>53T0\YN(&1]I]EOV$.=8#ZY
M;X#DS^K3SD24+VX(IF _H^M"SPC>*[![PK;$QEYY#K+'*W ?(A[1PG!^*\>I
M0K[>Q;\J'[22$U3IP8,\N\HI9GR(QTTCXK_ /,73U/,SR+F+/]0<`\C2'"$_
M!9>[71SI NI7IU!E0 ]?K0=5/$S>XO>?+W%Q:).>*'YV'+KN(KY' >4E^X<X
MO4/LZD+ <C2O4$Z)E!-1<G)D>!S5/8?X-$Q80?1_5&9HVX^F-,K;VH5.1XGH
M?X68ZD 5:.&:=)]3=/Q1/5)B[Q)RQPI!&] *W7:'2V1 /G2()8049-SY,F9,
M]LO<:N55[R]ZPQL)L2E3Z80^!3HEX ,D?Z+_(VYQ='[')(&[(L=8"R/'6+.=
MHO,T6;8&_R*8!5*FT"/=#PK/>/_.!83*C?EA*L^+Y$YPBLE*;NZ4.52QN7S3
MQ%OLW$(<0)AB)Y0C<!C+,5Z<41%V2C2^<3Y)](?DO75OIF<++E'/``C2Y[,6
MMZ,.E.EPF(?RG9Y'MJEWJ0XYZ2<*-V<"&8 B)4W>=<.R1Q REZSRQ#V+A*)$
MV.S79B:SC-7R!]"W3\HPB]*Z-+;$SG9R&:XUM%U W2AL:#N'PXV:SSC9(0.
MZY3W!\HO9)6;.(8H5P&;R>&0N4386$"%*D\U_" 4I%_&[=LN<R8YZ6EREQW
ML'</X D;WF(/V1)H]MZL\A1%=;,TIQB>^"4YQTB1N>0;LUY\DERSCFE):QY2
ML&:/?D:XA&2,=-I,!CL-F STF>4:=X?,A<1-I"$CEFOL?1"%7-]1<O78>LD!
M`!=RD1EP*KH"`5O($N9H\Y#T
MN"-9Y;WL'2[QE:-0F+10R:-,K*GMRBH_A?U[2GP:,?&W`0Z)5_ME.>Q-\;3C
MVCT$$?-05L8^7+L9>*2 ES!D];KDI$.1A9N][_,+=Y^Z<#OW11;FAS ONPUM
M[U+JPB0':EP__JX!ESPQ?,E.IU)16).<:<J:3%;7)$S\/K]L:,-7LLBK=BD/
M"6%U6&S]ZEX9X,X!HW.*J:.*+3!.Z*3(V-3#F)N'E-G<!UQQO MDEJ<^P"U<
MY2TN5EB,,U1HQDT 5LC&)CK$-T"1)"\1$:,92P][&UJ(!HN,,"?U=I>HI=4Q
MA9K\)8!#EAA
MN8Q)*&6$!CUJ62LL;&HJ>U=PU0Y!_YL`Z#J!0CW?]!N:XN9XR)N">;]A1/SA
M67GC;Q I7/4$N6 C/_:R*6P.50G$XJ)U-XT%<4:A6"]LT&<5,UP,J5O84?Q[
MJQ_F5KP:`!T)7U+-I0/;]&6;0(M"T8)(U"#UT7^T`PJ[*(<?O==WF1^9ZUO,
MCZ3N3%9DW 1BY4'_<:,?;T0`$,X^BJ=#L
M'0V(RZ2EDU(ZJ+8E8]+\+Y+4^5=D?)L?QU+1&:%J)417%"X'5RO:8IRB*Q*M
M3\,^P&?*[,J(H>L2<RBMES6N99FUW%R[]ZK$V+V?2CJ[=TA.^O<M)+,^%L^_
M;J(G1&M"BVZXG0_27:1$G4"%ORAWF%B]-:4F6K(QOX%'<U'%S&D8NS6B[))N
M30="-2XQ&+DB7\W+&I =92TW#U
M)E[I8T$$?> CEW 2K?)T+57I- 7"'CNC1'SQ.O9[TLT;6[YI0G %>77Q089=
M(.] Q&TOR')U:[5^^)HY5!:(Q9<4\^D*]27]B%+2XOZ,\L:2\XFK= ]M1!X/
M;..H4C<B!,=CDO ++5[_*5;*C>^BL D"U ^1"=]Y?HJ. Z),?Z#Y
M56 CYKG B480!J$!N4ZO1CSP#A:L_"+/2D"R1Z-9>KA9H$Z)NW^+DDYSOV3D
MF_MD-A[DT8 &WU8^DM5\ 8USB*6_5= _;*1"T0`.Y4'H2_'I-X SDWE1"+S5
M:-;_B.$OIDLZ%-Q'95:/[V+2.8 B_87_[-X*3CO<1W N\'DT P!N7%&-.[S+
M' HVCU<_!RQ.9'ARA$^UV^+;BV9NQDT4%HM&O8RRC:DW45YMT!:/]U!?'<;Y
MAQKDZ]5\\SC%O3ID&V/8D] )>):/IA6:/7HO4RS.03.?LI/A3GSSTG"8+N3[
MN^UZ>]%8J13?XKX.]<5?.L"*HD 0+(I7K#B
M<%YP3>#V _L)N.?!A<"]#NX3</HZBDH%MP;<1G!5X/: VP_NQ^">!Q<"]PJX
MU\&]"VX('%,/Y8%;":X07 4X+[AO ]L/[FEPOP9W`MQI</W / :'/U8S!]S2
M!J4]RZI,VQM7Q%,;W8UL3=UCIK5UK.G>-::'N4<?K76;&NM]K(G H>5K=Z*5
M>C-1F56Q^ ?3VDCI8JE8K9&VV6PQ^&2DDY_2ITQW9=I+XQCJ ?1TEQT$29,)
M;5<-:_?5;W4W-E+4]L:M]3ZW>T55;2WEX^K8FNUND]OGJ_=!E1- D]ZX[AL.
MAP+!*.58N[X *DKE?:,H9^WZ2<B&^]-79B;$WVOBZBJQ]6R]J::NAJVIK*WY
MMMOD<5<V*/D0[P'$PW_7X*ZKYQ[SF!H;*K>Z3=50=FW]SIJHC)5L37W=9+[[
M;YJOD:WZDGP9F*^!\[E-.VI\+%=9:ZKFZK8BCFEK96TM042\53>EO[F^S V]
M]ROB/' #SG:NEJUA/3YW917TT-9M-^+?O%_43/C_%0`](9[\SXS*AH;:FJVD
MCTR>RD:3S_TM#F8P%,1ZW*8-ZF2 AK!NW_::.FBS"=I<4V>JK(-:<8W8 3LK
M=Z^(M]>Z*QO=V%2V<BM+<D?1OK/1U, U-. J8-V5VTE]ML.<`TH0W$YP5D3Z
M/CWKIFUPU\&HU==M=]>Q (VXF3?%K?0]QB%BXP3=E8A;75M?259H0WT-K%',
M"I J=Y72AT4U6WWUC?75K,E90UJ7FY8VT0_K:A[U5?IV(UX\SG,5;,,AN#T^
MC,AN8_K<YZZ)C^D6/H7 4[[LT_8%GZD8K5$?S2U^HO/OC?IH;_$3R6N:WB)O
MCY&Z$8('.0I_&%]MI;395JK '=F[735U5?4['2QAH O:73[OO&H%_:*M9.<
M#XS7[:L#YMH(-7>O,)DV3B9'_GU38V6UNW8WV5!JZC 02':YMW)DGZJLPVVP
MXF_2(-.M-RC^2QID^J(&P5.BUF^BYM65-;4HPD2U#N?'IT56:K1H<C\IVVBE
M/V3[3S6%()GE X ,;=/ JG'L!A%I^T;8^W,:\VMJW1BB_D:P<FI!*J,>0ZRB
M^BJNUET(HUOKAB5X'==;;OWV[0!85U,'H%[$<KI]C3 );+#FKA *>2!_^>IW
M4Y=)+!>$-A;*+=4Y%7F55*,D$E.*HT8)[ :W$GV.BA;O`QJ57^145?F(O'^?
M;F-DADWH`%]%K%S.YP.)*0+<H7/!='-C"ZD?DW:S54IS*,H]V4),7P\2#K3Q
M85U)G8= 5-EV;74WX/2&9)C0%/4>A56W34IP#M8'<EAC#O40TOI\`C5PDQPN
MJD;GJJERYWHJ?1OKBU B?G W=-(W-2J7(P(9K/4OINNBJ,^T#C>K-"6W'J0X
MX'&(2\9R=X.;^I'2VDKHXP9DI#G4"NTZD!)5`1!:*A'NF0LJ6A/B?L-6A.'+
M9(SMF(4Z3^77<HT>I*DP)>CERU N0NSUA&7 /-86<V[?;KO;1]AUW5:E0I#T
M$M+=6+-UFUK#E5$CM)'(\FNK8"U]?MP`?(W,!P>H6R _:-?E%D&$-!YJ7JR=
MZ+&-]9%NI&Z/QH(>>DKI`8QACT"^9Z9"`.=7V UL;4G=3M ]*+W.,65^+*=R
M:^L;U=E/E9.1J0<-RZUT)[4I,H.ATLC$\ VIB95%^J\\ D$ZB**^;MNPWK8N
M_;2JFWZFGUM]<+XT5"FVK'E5BAEC,OAXD-^R5?E7:AO!GPU^*OAH]$2!/Q>\
M<X]:*?Q';C\"?P'.:? 7 K\:_$7 TX\J+\Y= 'F^"_Q3X.-E]%'POPW^(?#Q
M9>_NO9$+G9^^K?B=SRI^ZU/]V 64=4\+\0\"?M>!-P^8;C)>K>.*;U7]W]XB
M?H[J'P;\5Y\9>&8A]==GQ&<VW9S^GDX2*H8!*7ZSXDT3M?E-[YLK/X__6M];
MODNE7Z:67:O"MV-;*7(E0^:^3ZUKK(K?HM:Y5?7WJNF\FMZFTH$Y2ZR ?JS&
M2P,$% `"`` `4V!_+,?%:#E^,P``'&8```H```!);G1?1$TN97AE[7T+6!1'
M-.7LFKU)ULVZN1J3O=GLWL3=3;(^- J,`5'B*]D8-9OXBMMD3-:H`11T_G.J
M>Q#CWKWYOG__[___^]E^55U==>K4J5-U3IU358/%<Q]A- S#L S/! (,<P/2
M0R!8F/_^>01"2?F/Q26UY74)94NJS<D)"0G&H7>;C[X=\<&H[9H9'XQBK(4,
M,T.CO:7>*>8G]5&:<"M3`!\)2EY' II>QBBM\_ *82AM^(0RD4IB&R56S<.'
M5N'L6? 1Y 6^(V^% ^Q''L OF66</36OGT>Q$&;>AJ_I =KRI36/J6UM4-^/
MWM[N`XO+'Q4?5WC<W_>*V^!:F#O
M^G&LF8?E94L6E^=7+JJ=55,L+A663%HI(%Q!^=)RH1QQ(I"]7)BRJ'KQTO+\
M&K%:8)0<++36+*D6RFLI14MK'KW9;%GM$J5Z?XE*`%(P8U&=4%A;6U.K?N=;
MIU97U"CIAPJ+\ZUJ?IZ2HKCR:ZKK:A1J:!\6*P1A>?[2FKKR_L_)2ZH7TQPU
M/7E);9T0[ A#F;;DB?)9-04U=06+!/JA0LXL7]$/6"(L+:U>#IG8_J(EPN2:
M6CMP;6GY0X]6E3^&+,BO+8?J]O(G%BVKK*E5L)<`UQ;5W<Q4^U%<LUA<2KDQ
M<]$3"F0_KV?5! = Y8586UM>+<RJ!/2+IRZF- /G"JN?7%);4_T$%"GC5Z=R
MFL?*Z^H&TJYP-R\X7C5// $9,Y94TZQB`%[T>/FDFA5YS/3"DIF%,\S)#Q3,
MF,&4V M+U.3_+W)UY_F?^%AE- AF^ZQV1Z6PS,+(,6! 5%HV,8P\`E)2JUP-
MKUUHH4 %1MZUEW/(2: [Y<D03X=OS\F5%^2I`)188.2LE1L0R<%0A+!"IFNO
M.8&XL?B]F7Y'096I&#W"0?1A**V0VE1G 5C[8XPU$,L[;P0"KKV\54X%3D)3
MKIZ $ 4E%E>/1M#Y
M<VG=^.T:2CVMX(,6>++4R&=C+_4>$6*UB(+A ,$3$(RL[,D%I=/1`<-C:L=J
MIB["DY!L+]BS0E[V3Y373Y77!N7UG/+ZF?+Z-^6EQ9<C>P2^*K)?Q-="O[!C
M'33G'[O#A:]1.Y[!U_ =]?B*V>'&EVY'([ZT.SS(KQ&L8&%VPQ S;5I,XN-/
M(B-TF!U%LW7![&%D!(?9+,WF MDAII.>D\(8UPU.' S#PN&$+G$$/ 3^^L/H
M"R8(YVD7AI-H3 <&NVAA'XG#EVLB(YX'),]0<!PCG2,0AY\X#U/E<S )L[$-
M.CIQ?"A_*&$[D=Z+%0&V]&UH4H HD7LCU G.D6 >>&25KT(=J; O"*JCH"L`
M&&VJ0_Y+%L-L?1 %^:^8NHKJZP-(/7.J8NM^^&B6^8JMK9C[&T!88=%[4!=6
M]!SIJ=BZ'3#LJ
M:N/(J[I!1.]J8\]^(Q7U0?F75)8#J;2#YS-!;GV5AS"]'[([0/?HMAB ;R0:
M`: :&H$I9T8VZGUQL%T>!7VT`.\T/F=FMO!W4X!<=F8RPI BAQP6+&IUYC#B
MU][8]U! 2/1>4)8E-OF75'MQTON>)KW[1=3H#QMC060":Z+;"GY%12 _HW?5
M&6:FP6:]O8(PSB%70?\L^9I6`(4V?AUL4!J/Q*&&HNH)E*O/\Y4PBE(UA,SX
M%6.3-T C^4JUKTOE==>I8" Z30?Z$?77%N11&:%<=:9GBX,=\C7=35X`F^ *
M1CX#O
MK7 O,$X'/=1)<5 *0T 1I]CEYZE&9J560!2Y\*:RH5CL4LJ.(GG1+4UWD!%8
MU,;NHFMCWW54U_/F8+_J+_! --%NHPH%Q$WOG X96W"Y(]&X])&4>F?.:+T[
M!;*K[G?()<I:`FW'5.4ZY/S I]X]!"!P84\?*:0TQHYT7ILH1#JO/2QHG=<>
M%$.]3VOTNW4C;7(SSZAC&9[OS!K)J"^QPQ,0]&4.6.;B2^3-%*VNM2 K%I?B
MG912&O6[]1G']6[*F*L)0KCK:H00X \M\O^E`>85!-YTTID[6M2V%AAUFL99
MOTAL.=*#Q*Z)F D&7FL8L[8;,<'JI6UP!/RU3L'(:_P_<H*1PHAEB*(1& >X
M0Z6XW<M08<S#M:^RHP[U/Q=<3.AZ6'^!!3[ $!*W,5:#MO77"H"6HU\=/?W3
M&R35W,E4, S^06#ZZ
M0$%]T#C8>2UA+>\^*NCR&H<Y>Q/6LC"L5^:19A_8.4*_Z8$I;*M*4\F"[,L?
M!U& ,> M,BR<JR(Y96[R7ZK89+7*3\$<^:F%GUWQ*Y]<C99^$^^3RR&A78^K
MTZYR74A"(1",%DH%F([ ':W5(EDPTU-L#KF5:F.=%6:Y`6PW: /RKJQW*'XQ
MT:ND`%AG`_^'.FH]0 15V.%2/"TEX?#Q
M:)AT"PWL_PX-X"+=I*)O`!4='66V+0R855%->L_=P*(]:)GMV P4)1YZ_"QO
M;NJ[_,8.ZN-&(]B<A=2OE;ZP(?'SN5+RA"[PX7Q<F*4+U& %=XE%QU ,4[PJ
M6++0H>.DR.UXJN%3ZY8"N:*.^O9^+B!R\GX3PPS$`W/ =8&'485V+#HPS:L"
MIUT<Y5K-,P*'A1;>'X93R<);26&/5;Z7^L50=!%:\__'XI_20R(8 84+5+O?
MNGT[\,!NE:='42\W%CMGVX69)?;*L5-A<K='TWT( UW^#SI\AB[M7BBV"!%V
M>8[J2 "'%+\*K5CI8!L]4D+_%Y=W:3)'%G"20P?*:HYT D0O!474?":D1*X=
M#E
MPX,NUMOE]8J%X=H;"Q1 J\,D!"DP&JTR+M14VRN%WMH^"1:3C)&U4>A^M2BY
M)"=S):M_%D^3T!XG.0\U_SVTJ/EOH9F]M8-I3HLTLK\!1*[TR!X FN8OH4<;
M9,EP6X^&!'MD$![#D2"K`-$,HU$:3B8XO)-8FQ7+Y%TPC<L /T$N5*8'$*[K
MRD,-N!M 5P>V``9VP3SDK")G(-O1^/9:^TKD/P%349E/CV<89_:J=: D8JN8
M&UI,5O$[G/"2&\%X:=.B_^E4?5<55(A4`+X"`%_E,C,D[XU7MH90]S<T4F4;
M5:4)Q&'ZMGSFUOSUC<%U%%/JU I].FOB&4J_=E]=$&:?LL1TO!V*'CSN3;C/
MB$4DQ-7"NIN$>/<YX>[?P +!"$9)XVIF?X.6EW *>^YKT-!7TM$&38--HV;!
M\^;U]:>N]Z=NJ*E&BO /-\&5<6D$.7 ]5,P O*N)3=\OC 9KXP?I!X61[BXA
MIOE+'K+N BP.LF+<7>(GX-.X9!9"*(00WQ1?(V\!F&[W47$[^CO_Y3Z&^2HU
MV$BA3MU4`'UFE3WHI/VCO8R&(/B O0RK'>>O53ZG;*M88+J"3=_R]4T')$8=
M%)VMQ"Z_I\YY'VHP%&ZM<S4L,Z ]FE#RA%S347* ,48Z/"8`H%W.E3!Q62'6
M/N\J?1^E=>P`6N.#M.(I2>/DT)D-1:$/W:3VJUNH7:A0FPX(GSU)!KF^9B4]
M[M]\SQ308D5:9T(K#X4^-. -+Y7BZY=?ZU/A8.Y5ONT"5^9YG+B!N LQBCI0
MI474O,B3:$S4G\:"S(/"(+DA .Z;>().MLI? \ZK?!VC?2XT1V5H;3/6('$?
M05QY"J)77H-R*>X-A'H3HE;M66B1D6=2)YW;OF&=L -)99]3"-^*1*%=$JYV
M$]DWM>_2F]U'$J^2(V0?Z2:KN:GD\TMO/D3VPZA>?FT'#O,]^R^_2ETID'93
M4R-J)RJ38UAES]MJQ:'1OP7VIR+Z;5]2T8>%BS6*8=!!( 0U`/A_E'YYHD91
M`:P1G4I43& *F4Z:CFZAGDK*!D^7,"QCID&,(MDT)_[G_B63ZJ^A-U-[4GF+
M$40W'I=BZ6F#E,]*=9PT/7XA\:G;UD%^N2X8 <B1X60U3\T;4LQYQ4!#CBL0
M*89[VE>&3N\^/I,TFX]V=Y-]SI8DY[6,-:'.EO"&H5%-XOF9K6'C0R^3#Q(/
MOEW^E>+Z-.;KC/=FA8C)&76<,)Z8R70N\1MA*+'S#EN
MJ>/:\NGU(,GL#Y7JV*Y\7<)N%$$QQ-1EE]M55ZP59[Y]UT:TB^44)1- 76CO
M9 RGGW9Y$^;[$B!=WXM;^K4?S?-59<ES?J :&+B^P<IE'X]H'+^H/X.>2%EH
M2W./UM44"4N9?!AL?5+:E\&^ $ZF&'DQP+Z WJ4_JW\]% =+2FE_64*)/.02
MG<SR!J7^=R""(TGGB XHH 3850(<H2UE00JN4$=!-P:/;*3"'M?J'LVPINY/
M28.G-83 ^D273Y OX!CJL-QJPR48_$!U+YC*70&U4.-!<'58'%_B!8%P5%[)
M`O,MEXHICV*T,L1T$J0&5NU6]F[L-8B'515<0W<S7FH3AB,B,LSE`PN>V/M(
MT G<"FZ^=K>D.("&KO<YX3[]'B!5:D&"U2)$GE._V*C#RW[PIE=]_..ZWN>%
M :]<_(K!+Q:^LO%+NST+7EBK= >>)),+]1=PHXV4\L R;^&F-L\RD(.-="IT
M2,6'VSQ"`*EG&/WNX8%"\*/T;CWZ>KUCA*?T[UXFV8:U%J:K8+G&*:218MZ9
MP>C=7T< 1A 2.M EUD IIQQVZMVGH"A <1*1U^\>"2A1]1RH/XV 9;8!H._<
MJR=)^*&KYW[A?MSBF _U_47U!ZE__G[]09QU_O?J#Z
M,-&ETE RK<_3+A5O6!FAM-4]?T,_/?X);84;Z+TC>>^PX";Z/:1X S=6`IJ\
ML^R'I=(-"FEV>4L01/QK6R'=WG3U/J#W8*K^H%,9!06OJ_=^\;[O4K!1+^%6
M4_WYM< 2%4%G&&YZRD7]C<\DQ1L'-KXQV+CQ9N/^^^H/\ .YYNI=*L;5G_^[
MPNKZ R T"B'(SZ7"85=/)3)PAE#LZIDIS''U3!8J73U5PG)7SU-Z-Q[YNGH$
MG4N4/"#Q
MU[N;:&*QWOU "":6Z-WWTL2C>O?3-%&C=Z^B"5'O?H8FENG=_TX3LZ$)FEBA
M=^^AB0J]>SW>P.B9K'>[:*)<[WZ*) KU[A_3Q.-Z=R5-%.G="VEBD=[MH(D\
MO;N8)JKU[O.0Z'P=C+SN5APU\;[N5N2PF.4MCE68;7/(7_2B9245?BKF^E,4
M0"$&`*!HOUIT2BSU3U/J"HG>TECPXM_JKQ5!HM-!I*3B3TGIIR7R'[Y!-TO&
MP[ '`529+U!A33^N"!(W#BN4GB
M3R:E:J<5V6B<U <5&XHW017_?+7M8?VB4T&P_%R%5'P.*/5GJ=V_BQ3'H HM
MCFVT]7F+-S64;H*>^T>08K6K2F$%P5*H77I.*CYU:\>4C4, <CV8*COQ6!JX
M+95>!(:O!E=4\JQ"XZ;4*16ZI=(&S]&U]ZP"X:L;04J=A)9UG^C^Q'6"42[9
M4"!_B"D K?Z(%'\$2,9> ^IMG7^!TATAM*F+_A_L1!T%C7 ^%O1[\E&A<SLB
ME4(8)7+0^4%(B4V^WH.#AQ [7Z2>`PJ?,A"B046Q$3 !W!6X'=&T_D9%[T'?
M )Z=?']WR,?. R% 0OVF'Z=:,5:97,]!_AA<($Q'I<+UW:V('31 X7K3T:A"
M=U1I0T2+$ M5`*L0OF<*78/V%,)+H4>(<O4N`Y:>WP,<\98>(//7F]JCYKNC
MBANDTBL1QT$L48H_)H57ZL] NV"N2"]4HA7]'L:,$$^*KWA+?9G[Q2&TU3].
MS0>*KRC];A 6T:+W./! 3$\*-X+>Y=4N<P$TN:[XPR%J+3R0Y"WNV(EK<>*^
MW(H/D](-T*ZW6"ZQD=(.$ )\;RQQV -Q&^C&5[S4YEHM!\0"4GI8<U0J/0R5
M;%XOF KR`1XE&W(V0%O>4MF&]:V(`"R(`3 2%!S"G[M;$Z <N0IC=7X68HX4
M=Z#X
M602EXAG/R37IFE]AS>Y6>B/H_NF>DRO&0"5J-I4HJ,20WR<,K!\*H/Z/_TOT
MYY >N '3 7A26G^\Z:3&?-E_4_H?F_QJ0H2.\=;W ="?(Y7KFVTN7HT^O6_
MH>LDH"QI+.Y3<>Y$CR6S!18:'/Y B' W*=;9H-7BZ[=""-6*&96?.5]>]9)_
M6&URQS>JFS];T"I7,6PVJXPW=H'B.;X-03HX>0'0(>NI!NZ3CUSJIP`W!6CC
M.-K8\%UDL/Y=;)DVS&5%"YU9PX4?^%PK`<]9F]PY)&B![?4I3=+8.57'M^51
M7Q/W=1QETGYP9-'%YZ5)7!LJ=J9M$BUW/<6Q=1R]W";5<J06KYQ$DU;]6SYI
M7W\5C:_E0S3MD((INYP[4L$?J=#Y
M$3XOL$O'X.+4?=G+6KPLWCED-)^HYPPV/*V3#H
M.9M!72\^PUR70.;QF9^(WSK((?D>Y"7NWT2IIQP<('.0`_* 4#P2$4(">A Y
MK3=?!^MYD^JW`5T7T,.2#D
M3I0J'3C;">1 F?QORL&>H;^^>HC%*SXI\A:;K[^!IGI=^&Y\^6%"[]*J`Z)I
MEQ49.P`T\IZ ,!&"UKN<<G3G%G"8R$')P0%?2N25*->AY*!\BE%'+0H^?MK_
MA&Q =#AU1ZB *GJ +*61UK);%ZJU4ES>:F,)R#M5EU_^U1^4'R$**FE? 67
MI_+;)S7+]RN8=$ 41X9K1BK8EK%TBN%-;PH;O$],-*'-])P7^IJG<Q [7R9-
MTI&G=:2.EY;S]("#ZB&== !/4N4/ 1<[L%&ZTRI-Y\ !G!\..8RBQD-5*H]$
MDX ;H <HK3W&Y8."][74_0\\1XZ15ZN<W8UC Y<D 8WQ$B?-9J5E7!GT9N,-
M-_O::!(OD>KW:/$&J5?GV0!?F?1>\/+P>>KV_ AZ91AZZ?*QIB:)?DHQ\^B^
M[' :F11K891;3QT=E<OP'C&=;;]2;K //4KE% JKKLNCU#OP]+[W23 ."HSQ
MF4YZ4U[H !+O. I AC;JAI.AML89PT.4E\:F()P*_=D92M'QF _U>XH9;^S4
MS _7?H [<N3SYK/:K?2 [H][`0WEO9< A5*J&[*EZ%6K+>H%><[G:DXHRE2Z
MLGYB_^UXCAZWT+O_>$QMS!R!"(4:4(\Z5^]U(=O5>T.8Y)]V2S^'0C\E"FAJ
M:M-B4W05UZY24_17%W I/Q!WF-Y9\0\)Q'4H*0ZXQD%+G%W^^0W52!&H$.*E
M&1HKE W.I3+YJ^-HIO??>!V*4S\0MQ>/M$!R&["J:[VJ4DSMY(^8;HS,/"C&
MP!<M:9RFD:;S=,O6U1)2?^W4:MP^=]V(6:5WW3"NC=Q.7=-\WC^Z_L:?(;EJ
M2/V-_?!>&[F'.K%/\WYN)[8KV7D%H[+]VV&5K<?I&L8:119O 9%8(]7?D_BV
M=>O5']_,5O3K;?:IP4[F<Z[>K+IYI)B/:A>L7:X+0%BL6 G6LJLW5.^* -I;
MD-BH)G&LK02DMU"VVDH"*;\:NP:8^1, >^Z<J"9A."F4X74W-8IM)?; 81 [
M_U?F)O]7E8A#GH7
M"A"O=U= G;Z1X7ALMBV2W V[]*88.LE_=:'K&BAXZ$1G/MV*`%>8#RV]6.MR
MM;#Z=6AYN,[TE93 Z 4V4E23 K<WKEX!G=E6N QJ;2'B#K T%IX 2''R(UM
MD8 [52KN(X<2#Y)KH4<R2WN6)SI77] (XT S/9 C^URG0R^_>F]%6U$ .K*(
M$_>)(V K .HIEN!MI( M^?.\7]./H?\T)XB<F2J$$E[P%9,\_>07E+()Q;V
M!Y%RN>[G0 0HEGB;_!I53K&FHW;)'B\OQ_MX"? [HT+ :Y<_I"WS2"$`^:JZ
ME$5J*W*\ZEOU8QQ^J,O7UB3X\/F4\P?6TTY8+\*NT+JN9JV*KHJ0Q3Z5A[[6
M3:&N4WVB=COUR%J[/]&<JALK-4N7/?'#ZOVX.5'WK6>8U'G?Z<1(3;*T5[-/
M^IOF/)W7:%8O6#C/YVD7.;#UAW2?]6V ]]#GND\_UWTV](AO`]E'6KK/*A\.
MKK&S\5!C;_))R. V%!XY>^3(CZ^2;V".[R>?F)LJ?K$A\QL]_KR<T:^C%T!Z
M1-I6GE4_`"8V"/,XPBAIGSSWYD=_O<PCXJ 2\]%,GQ"V/'3:7-^DN<HX :5Q
M, /,$6%NQH "$"AQ>$7]*J,AP"RWHN<"%HNA0:/<=T[WHGV:&DLO)3I(-/W1
M4T4&./06L%?R&+''IYP=/FPTU/?BAF!MJ7(+"'!-(A]ZP7)J_I)KF$4O[$>W
M%A ',8ZJ$!*-ZZ47O"X !)I_59FX RO0QE<\0.5*0M#V]%%K)4.+'5D3706J
M8A']N2;GUT.GUEJ8"L+.H56"U]O5<VB2KWO=)42_3N]<?G&*Z K0,*IZ.3U/
M+N?I7::C40<E4&*S\&=M*TXK2DTYQYSC0RN8`W7) 5N7CS\ B+;*FP&S\S%=
MJ=.INZPQ]>C'HF ;E*,^:1EZ]89&F\YY)MEY+43OP3OY_960V4(.S"/,`-[9
M0 KV$,<HOQTU$!NH;EX;W"R*V&513&FNDIYRX:\'JQAE;R!9^6TK0.56::I8
M8AM"<;\C$*908Y FV5BE&SA+Z<$\\H3>DP`(J [4':S 5.Q0IAB/D]$IA!NO
MZS12OJX1Q]WDO*K1>] _IP,K6H&W"BOP:H7*Y<%*=^RR53$[_??3!>U::) K
MVMW(%<H1!\*-O:YR0GP?9DV!H)6_QJ&OX\C3!I+/2^8RAU4^A/LR^2S^/*P]
MLWEM8L9T5AP"W>")7=?5XA0B879][J<70-3;'\%]2A1+:9_B]SBJV$K4[>AB
M6-'7VA1C"=X%CE(<8&6)TAKKJ9"#P&*J?B6+6_.K2M3ZE1RO_,:YO[Y.'%&)
M&V7TJA%?$HC;'&-A!F)$U38"<4G#I3A\J_L,2 /4*[>QDO <MP6_`Q96,<VY
M%[3',Q5[/$FU?,4LL,<5V[!G &UX0J/:ACI2V$-M-;"WNQ6C[MSEH%%WGEXS
M%.8M)/L3#VV+-G==>E/O&0WYF=?T+C32G+F1HI]T2ZO[`F X4R $P5M&F=?J
M4)"J8YVX$:]T]]M+:G<[\:Z D,CSII&SXMN[^]F1N5<,_057D;GVD"D,*85
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
MC> =$0Z9"SPI]X#R4G8
MHMX'05VCV5%M' C _S8`=:0]HE(T_ A)1(?:K.WK[GQ6AGD^J.'2`>95 /DN
MEEVE%?5ODH1$T; -F[R [ />NIH U1OSH,EU:(+:MNXZ-%E+$A)VD&-US_B(
MZ4*ZRL0GJY20EY*FN0S9? V'X,4?NA*$,"!'SG^)$V>?A&*G-!QE0X$ F'](
MEW^%912W)X1O)90X%'T':9-B.P#B[/.Y3N6:2*>J80_,[H9#NU
M`13(:] 17'..8[ACR&T2`OJ4:XZ9EM9PMG$$NYUSRMC!(N'>=7JUQ3-MVCZ)
M&C*2I>QD&/P "KBA!$[(6.R8'V6AG: >.*<?*Q>;>7*E*ID4:IE"6SV 7CR9
M].,T-F" V'V_OA3P-H(C#I1J[<\(:( (:!"R-ZU1D :%!+-E."2G !:ZG7](
MB(0=`:63'6,< V_K(.F_GY2EH5S)MW:3T6O\L_C3( *:RUQ[)'>J<V/*<&&1
M$L8S:&/*"$5%BHS(0$H0=#IP8TJ L-8/QQJ)RX"$3/&0K07'`'L"LT&Q#OBS
MSXL:E")G)X(4H&8.ZI&"`&OA);X3T"]J[K5^]1[_:AC_U,=!9ZV5XV0-\18G
M%% _Z%$D")B0A?*E!J&#R #R
M)L4ZF&?66DQ85'XPK(0:Q;I:5>!#OK?ZC/RW)JN6PN#G4>8BJ+=,S'"R<B<K
M,]N=8 -!QUG0DX8T1<,3N)Y.AU4W&!4O=X(:V&1AH(/J!.NTZVP`W[)S*:QC
M+[WHF'MK_8/,8C$SWC'T]LDM\ >;=['#H&8EUG3X]Y8_R+5 KJ("B%=40 <5
M%= G107VT,5.PVQ%P],NVH:+M)VD!NZV)/70- + U(AD9#ODO
M+7V/WHL^8"G:!ND2&*00#L
M;)O?.V0K=JG7_]"QCJ*:;M**7?L\)5U.I]D^]ZK3R>T)1(+S^29V`*BT2 <J
M2Z.$[_ ]=URB.1!Z`!6!5/'\;NZD9-P!5C(=IJ1*\>AJ)_0-:2/SW #S'/H5
M#D%#NDOT>PTHF#OG'Q3,QU4".:[8106C$V?Q)HO%5)1_:*^[Q_J ZUD?[C;(
M_= /:/]F-AS*09] [9 E12U)X*CN2Z(E^Y(\U0N;-VU,HA7;6_4?U0Y;`LO?
MG?BM#WI*OIJ>L5%1UW2 [JHG&ZW8;K/.])2TNJJDZCM7>];IU);+^DYVB&+G
M="<PTF'NL:]VD!$S05/%\S8LBNHK_R)DJJGNZD"Q`DO7[V<'SG#XN,:O2=VH
M$D7%V<6*BLL+%15.G& &F"H%HA);2918L?,M%>X'N"*S73L!$&R?IS);2U5S
M$[HXVW7%]H.*[<^ ,[+^>^1YPU'+H%NZM.B6!EWH1CYZ0^IR`VELCUH=[5:_
MW4V_(JO1'!*G7-:]B/:_I61_U2-_M_3K(K?X?PG]C7>G_]%[T8^C:1(^(% R
M4HLD,&) A2FV-W/V%*YSO.*1W1[HA35\\CC2`W7U'0_YH$QEF^T&T*VYN: ]
MC$5<9U>MEV*73=]1BU:O#FP
M9EPYT]0VEN]HNB:5'.0OK-KOW71N;& KK6[T(G6 &$K^F=1PF?V8NRZMW0?K
MM(D<^).:T6 #FXJ]LA'MENV[%=L_2I6TH:H1^9.:MG$$5&D<R_Y,6$,6`& E
M6E3A0%,"T";*9P`:9&U7)'WM5RB+!"?U2\A&&ZWM*TBTM4AZA$BQ'12 8M<\
ME9%O)52ME6IL<4#E0_=-QB%I0C;/,=LCKSF=. :IBEUYJFFYN:&'774)XZ<!
MP)^,_H+^&/S6'G$$];.^9J1 N?[+VBN:LXZ1[M;'C(TC4AK'ZO>N'4E&"JJV
M?Z'1J_9GM^LS=J+7^#EB8
MT/, -KABW7I(XPXSQ#JGQ+50P?Q2BW8UH-E7KUH,%91DP2*+55NZ%_!O93"8
M;#I[UE `WTGE`C!U+KN2V^\4 '"-[<(;.V["ZAG:"DI)W6!3U*N D1F;H V>
M!=3+(;?!%W))Y[A6YVTBU6U_]+?_!M,6!#E2A&_1W Z;'7L/N-84?ZM%E9Z-
M: DF!BKJRTB.5%%/D_H2RQ+X(74ODBJT9399;!L\2+&BOHLBV8KZWW:W/$-R
M/!3U)R QY1$< /IA`V!6!\+/'?X_J!5SW34/RQC<"!O!I?C+A$7^7'.GD$0+
M/G98X6MO_ G-\2"'JI^:.E+KN;/$:.?W-5Q6U*NATV GZD(OMKWDX5K?P,4S
MUUWW8(<3"K/\<1=6"D9<S_[9=9H=1;HURY]KZA02:$%#NF6!; WA;7=T[#IV
M[)WNKES'CFWO>:/9J??LV)ES8L=""7UW[=VN]EZ]FROMZ5V+]-;^9:W*[,E2
M>TC<+)Y-66* R/G\%?Z(QJ;_[,(;K$<&?[5AOZ(^#VJ$GN<_;LO$A?%._0F:
MB+^BL;V/6NC"&Z$?MTV6]#D_0
MR"G"=!&\_"BENO._[T[NXSV:;H[EJ^FV-N1CM_P2T"BZ7<B.C9+W)>*&:5[;
MG>*_4]2_)PISNI25[U"33332? >":A07AXW3*,-DB]PPQ2(S*!4-#V.+#TB)
MFJU9*<GN3>S$>Q'KLA^GS73$6T7P*R7FWA""[Z782?OI<;6J>;4? J4=E=F'
M /ONU;QG_J93[%+'_'[6'U 7E^"Z:!7CVV <=P\DO$VD[UT)N/FX\U6GHQ0-
M\ N<I/TBI_OV"M^V1"=>77"_/Y"LDF4+T(4LH50ES\H&!MEE(U!/^.GWL31O
MO>=/Z#G
M+$0O0_1*1.^'Z /MSXP&A\26FUO;W_PC\/JS7W;*CL D],UV!KQE(QI5;4U7
MA86V*GPYF\?ON9,>D --G5(KW8"5):UF% ES5O'Q,!-E5U[&Y<</6O-[G0$[
MH#UO[[=#S
M`?-(SDNMJ_RLT^PKJ954ICG+? B7K-EV;H\_/U,&Y=SQSBS)X4Q8N%H()/M!
M^,G-7=2WDYD`6B9DRK.YDYTYDJ]!2(D),Z3A$*O2V%J2R $X<8GZL5^E_%>
M2=_*[ZN.<;-^">OD A=6V%<MY??IOV)]-3:^6M9S/JYOK?H&>-MIKAHX)\=>
MDI/1PAPYO$H^`E[J1[*>9+ ,1 M*XIJ22!L=?CS-B$)N<\GR 0R:'R"O&\'
M4;1 I&FN58(X^$2:]Q8/.#PX;SQ)\:<LHSAO0#L8T#J&W7X_P)H\N(N7-=_C
M6P%D8P8(A R)3D0)Z4U19 [>H(#A\R,2/DSPXX<*'OQ\6E#P,VF0[D!^K,.+
M&*B>Y-;58[. L^MOXGVZ:L^=&&7;$V"9Y/?F-IQE1Y(ETJW]EIUE'W'=Z42^
MY>9FP?H& L+;44TU]])_6=;5"NPC<O2F&3"8D3$>8*$,S,ZTUSAQAZW!QN]E
MD6L(GK/)W$F"2%\.T(<< +'P!P)Q-KF(%'DF3 4N^ -<HDE[K^_=]%FN]= W
MU3&I%WTI,JY3MGH >$9Z#U"A'DCP5+;5!6L3DG6W*Q)HO\ :T)DMS*?-W/<W
M,^T?`29KDE^N0.7RNS67-?NYDU)6DM"PWQ(`$Q-T'"A>KLFN;P5/1T(V*RUX
MC4*>:;9_= ,YD6GW" 3E*"*%^2E'&?+'\VV8Z6 E!?*A_!R:GP6:2J"?JP0?
M1',(Q3>2I,D.XS[ZRF7 E8K?JSDTJ^&L8 -N$_![K?.OS.)NR%8ON-5_:Y 1
M5' %S?\D^?F7);C=LMLS]5^[DE5O\GMGZ<]4C[JU_[TW<98UR* _`S66T/QW
M5>=X1<MTVL4Z%<RVE 1R0: ?+K^+9W<Y&AOT1G;QM25WU*B+EQTP410[I% .
M5%7Y=]K'KA&TXA)DH^<J_K*7L_FCZZ:R2VZ(?K <G.*)L!+1_JM'`)6TBR*"
MCK.U(S*\8 4XJO\*52/BPE35X2YI`$E0_,6B M ?EPJE7=Z%0',;+N>RWGB8
M)$JW-;M+<U:0XO&7)*7AK,7;.KM+D C%,IA+TSJ%$.YT)[>WDUM'4ZPGOX;F
M P#PYA58P\NEW*'*`%%9 9>QCYQ98,]Q76C8SP9J;.[U-W?UL]4>4,A=3<:Q
MY$Y*P"J7F,C23(1_,,S/9)4.U'OW%-"?4VP(A0F-Q[Y;4-)N?K9ZS-T16A]2
MHMT>F)-IWPX^%8AF+O?#S5R8:RLN]?03Z>L'L;C^$\;\#E5
M;K-O%;Y9`,&08Q_J0QQCA6\/M[?<N,MP\9WB^MEPR!(/BW=?PP(XP)]''GA
M5T7O)'!.IOT`Z989K"7N^$VS??U%U]&C[FXB<0_]#OYYQV'BGQ/OG$;1"T+1
MDZ/H^4-WB&.-QP0*7[/]]:MXE60%*$F%+]A+_#Z7W]SQK_K-/?AWNM 3P<]V
M?2;/XB\2:W'PHMOM+[-03-MC8$V,FYS+V]F.;/LDP'[+2[;'$6+>QIGK#HE]
M(;2]"X^S^--9.Z"QTVPN/C[71!4XHS"[ \F"P%HGE/'B^<_!:9!E3\85?9'
M`P#FQ"&X)6-1%)LRH.#W<K)!8Y&M=-K/RK'2]%%0:?P8BMKB]RWN*\C %_A6
M/SMX5/'A?L7KUQ6O'_C\S,&6*Q?)+D:3XB^=5PI4_I)KH<U\*T#W&W&0.PS6
MPA)L_(OPCP?\WH#N0
M,/>]OQ.ZN\GNF;K*YBT$+(4*DMU')PD!>9!:M=];\M'12=_NY^+G$PLQX-O]
MCJ%WV _?7KW[!";GHUR[V H.]2)_Q;K"UJ*6E/9U'HIU90<4Z]8>5ZQC#PL)
MDH/< 8^:TL'I*$N >%4IMF__=N"&AB/X]LJR'?C]C<-GTPX/<M]Y!]H8?%,J
M4JSP;?$D`P?X_G!D[;DC9>W'4N1'3ARQ';ET9/^Q(T?:O]U_.+ `R. /?S=?
MJMAEDMKEN-GL60QYAX_\X;OC?UPM_\:GDM0H<J9*N79?ON,[BXI^=Z!+?Z1M
MG">G&_]I.T,7K3^I4!2M_TBM+N+].)MTQ?=2QPENC^^1LG- XY!^:-Q2^ +.
M#Z
MU>L&P%=W IE1M[^NJ,DQH-&[\< ,>.]Y]<ZCZ1F-(UW8[SI_B<,$-C:H;XW3
MC9V,]JGF*'2NYP*_!=RZWKX1W^*84\0Q%(M>>M ^.I!RI/6ZW]O)M4B+!)DU
MZ[%?R D`+&39]UC?(]&4!7%3S\']\DARFF&DR$G*?W "(-KO.CQ=74EENCW
M>)<6#SA8[Y7.3/MK--EBMJC,Z'C.:[AL&5'WH _%#BT"NZZHR>Y5Q!WW4KQS
M`$SM"?V9HKI;]BMW3<IZVB\/%Z^#D>]JDCQM=EIS5B5Y%U]!MM%E97TW)M$V
M+OW4E5+HJGWW"-=IM67,W>D$D)FJ3KFD,4EFMPZ#WA
M%; :$N:CYX/ ND$TX&Y-.EY8(S7K?T;)G1DB9"KU!]E!XIVX^N-DEU 5>C"T
ME4\*ZSX?2 K3G-5WX*6=U31O447>ZC2K(E>&+:-1',PKO7/LO\$=^+W8J;,6
M+U-H)[82ZT2+( .V=TB.V3Y1/&E7 S29/)(AU*I,DRWDCI]:DAF"'[ `D-"D
MJV#XN:KD]A(2KU[--(> G1GO #C352KR%0D*L-N9HNLS75WZ';>EH0K_E68_
MU^E7.R+T*G?"PT*'MEY\D6_BCGLTM4DOO 2B!)8`Y/32YZB?-(<:;#EL ,:V
MY,[OG_ 6<D(!-I2U5N&\<>&-+M;#FB
MY3W[<T7 AQ8UG8%9>1)FY6X T2O3_LAH-'"/" O-=??[4991<^Q1Z(LY(N[4
M=5$N<RC=KJ\-^]=ZBS7HQD1/OM7A+:Z1'ERK$RE:*;$?06ZW>-J/B984Y*Q
M416IS>YV'6_;,U'X%A\^W#VPW>ZC8BPZ[+FDY)Y.G2B"Z"'%(^IN! 05N<,'
MU=BQ??"XDF0D?>T)8\3)8[;'(+W]H+F'?_Q+NM<7[:O>T"I>#BX9J!YG`"9:
MK#E F-+BL1)>KH?Q;R%C"KG_'GL(?= GO +HADW "K >6(9=WO,+N_S+^.\,
M:/TE\(C\=,!4<+J3'XL2*KLN4C 5%:<4%9<5%6?[?-\'B#X!1%RG<RN"N<O^
ME-OSP[O=TFB^)WTLTD?H`NK.`G5W[']MP;:$O0>02A\1U"_G<F:V0-H`'7/Z
MQ"A9C%+%MNGBFUF,YHF9\XF<S,QSMB0%B 5!8J04(Y58+41\"Q,CM9 9*;;5
MDYPA6 :11J)]JK$UWVO_T7SDWOMS9%RX3LIRNWUD%M3V'0XTC'+Y#O:\PC>K
MQ1/KXG/7-=5ES]\2/R+Z<]QL0*+X$9N+WV<Q-5P&-0=*SYX$_28,SB72CY7P
M=2=,U9<.D^AM.XE>/XY'V)FTL-:/.UD$EGHH>/=D$); Y%T(4W<1T2S..^VG
M]7'+J\N. POQVT \T19^ W] 9X[9VM )((O5T >SO>:HTREF$%^I&/^H2G$Q
M%G7WSR4E(G$5(G$5(G$5A#B
ME!3CWZ_)= 8<AQ%$S]! =J6=`:?$=2V.&^04]4X_8[>5AN75_?T-G%ANV[BL
MK1W*+^YZ".OZ^P*$<LUEUP)$N *P[#O!)1 "G? A5)![/.('ZYJSN]!&</=]
MF&^.,\ .74OA6 *Y&P-JSP%79/;3/\) =U*Y6^TP.2T XBLO.P/:\89=*1H0
M66;[UINN"P.CMV =3N9TC'5W_PH_/X['&KR7X(/QO 1:0IKL,WE2 .J!;E3M
MB&HVH/K9A6H>H (O7=>-:LB6=A<J_^[[FP3^:,SF/80I&.]+`?CMM^"/[(;?
MT0W_D M^+<('=^[PC1[X'6[A^V V+Q$",-Z7"/ [7/!QBZ\3K$,/HFXZ4 DT
M\WDJI6-D]_WE_4[^NUZWCTV2YKJX>(N=/^88[KJ?S/_4IWQOW5J*8G\,/:;P
M3<FRY_W HEX%<F+Q`=9GFNU_OD"V25H\VP$U%FS!A.#G"+YC?B/\KS2V:;T0
M[*Z+!?C3K)%O$P5HOWK:Z=0<VMIUS 4G5PATJ+K[OP6S^>\03- FC2VQ;T<H
M-'<O'7.9NYAH\22OU%WL8'L]*&/-Y0]Q5N 17D GD#R-VQO(W213P%[_ ]/Y
MW2&2\>T:&]Z/WHH5B'J^A;./_A41\*=AA,$6&XW58;VI)!\QO51_$Y>7#Y\E
M0#S'XFL?Z^I%UIN$+*K)1 [$R'F7DXP3K L<6 >N"C0N\A4BHRI$ME401L'Z
MAVSK=X&"\<=Q) -T^I8$ -HG6K_PDY5 $JT]I5A7]H5B'?N-/?VD2Q\ K>PX
M^P<W$ =4J"C\1%'!?J.H*/OBUM\5P.^+G0&R)E1+&AO112X^*7QA"IOM-TZX
M#KZWHNRR6GOI7>"Y6]^2%#L]S,4A.*R/V5W"YVC[FZ3;/K/'$>6JJ'\9LHBT
MBLQN2>D DF[8)+)3<[FM6.+F^QFPJ/(4.VTN%.$N%):0I(V#ZO=;_!4[FUQ%
M0[NQG][G14UO"Y:(]-7%C6<7)I&+9&U>B. V_\4PG VJ>U RGAVVSVO\=*Y9
MI/JVWQ+Y&HJ,&G]]=*_A^93I-;RO#C
M6(4P76G-"0,KIHH<KUBGAPD9Z4*.<HY9\)IK=N8DB]\"> H98?P W)[#O_-P
M4G9 W0,^E&7T2HG],A 4+28:74RN5;Q]X*) XPQ9W0DO-G"1D!CD[N]/"54A
MI4[OS4I,4*/ZPIW'5> ?RH[\\OLI/D2U_0L74\CXXR9I-NZ29N$V*1[CX1>=
M`_!<QC(&V//5^3O8TVT?N<XRV!C<U/^IVY ,72GIM?%N?ZK_]MQ-">N3J;EL
MSX1Y)TE6!>8*JPP-9RW3A:1T:[K*WRQX9,\Q.[]$*;%9-'WA,F[ WJ;?D+[.
MQB39OB0Y,LF?3PIRM19O&?\KYV?S5&KR_0PQRIMONJ['_ <?SY#S6;S!OB,9
M5A^W^\-Z&2MI3N1L,N[:A-H+=^XF9(L;E"'KKU'=WUW?9DBN'2303Z*_`2LV
M-]39Z.*;YX*=V72/&TGN_#LU*)'D]<Z>+H (II,> '2F=O^1)E7/'VF"+OE_
MZVH\P7/!0\,<^RQ1:JQDN +#LC/)=;D`OR:RQZ*B^+T6\0Z=RGX"$.7"5%!V
M[2%_T8",%F ""E65%+O7[_9 BUA1_."A5_<([KMM*+C?/UB/?T)!XOX08ZT"
MHBPLK'2_TAP%:3=I+O-7'?=MVB Q^+ C\8AAAO[+ZL%U]TN\V4$)23TV3 (8
M*]/XG_$V0-7G0&>R'M"QH0A.LGJ\(/[1$U5=K<3IPPX%D9*L= +V9/LILELE
MX.(HB[_:YAAR^_Q[4ZK8;KN+D4' X[TS\HV7?"X`W2]V+<ZC: #OH8'&O =Q
M\!;V^_V>/-ONCS<K.IVYK.]B5^6>\V5#MGWU-
M!?^$LH[<Q=U?W_2]?T6._^YQ/ ,#U._>?I X,0*!-\/<V0=O2H _=SE/(.MW
MXK]S?$5D][ _ 7YVF%T#KMT
M/*J\B2$ EX(I(&;AEW6B(=!]'<,?$HN)L8!"U7/^W8=_7*>$E6?:BRZ3:SP.
MCTV:RVCX7+[D,GP&`UEHH2QVP2:W/PA,OCH(O^<DN;V_'^OY/IF[+G&G?FL]
M$++*_F][HXR8T'_R)KOW%\%3SLUT_A.,\'M^]-QG?\6G`W?03 M9?MD"*^.]
M4MXJI,I /IEIL3ZL5:?!2^L$+^TX>&E !9?9W6X`<?$UP!X3N&FL/TZ V^5G
M"Q8[/?'7*B<?'0LI,JL\;7U3[9=XZ1<X,X)\6RG7V-PA`,!VW7&0EG;W7<3R
MVM).VMM)^P[2OA/K=V'[2Z0]]3HN#J
MW,/RQW>(`[$<XB"(3;DF2HGY"TR4"N+-BTQ4",8K3508UH-8C?56F:A(S(=8
MA_4A-F YQ":(G?W_"8__/O\'GWF%U9:2\A7*M'*+<HI1F< N6U9:J*RNJ+(H
M^<;3."5M-AK#U)22<O*_C. K)J?,3IA-\LOSRS'&5U>RSU,SU$3-\K\5WH/W
M" BOW9;_[X0S0^Y=IQN_MZO^[?C=P9CFRC_?B\8I;G!B.FFPB2IPA3F]TNZ"
MP15']\J;#R$FP$0E_ O!_Q?F80CM)U_=*XWXEPP''?$O!/]?F(=A9C_Y6;W2
MB%\V#O37
MD,(+2'C':6!UR0.%2Y3QRN"",&59?LT2?">OWM3 29-2YL[-F#MIDC*QM&+Y
M*B4IJV:K*TN6EU2PU:7W*TOSJU84DLH(*Y-=)E:$&9QO4097]H'14UJ47U):
M` (JJ HK0>] WNW$DV<L%4<MH&JHIZBWJ2^HB]1 B5HR6U(FP1(#M9"ZGWJ:
MVDY]25VBAD TD Q)N223+2_(OY^B9E6(\3RVL!H3.84%Y6(*\HK9*E>2FE95
M0E*9^1:VRI7WS1,FZA2$= B7(%!/PKH(P1_"C/QR-K_J?FI:X;(JDH!G5G[5
M7;&Z.XM*+ES>DS8`OF0(9 CS(2R%4 "A%((%0BV$1 B;(#P+H::F1BD&^!=+
MWGEHERO?%;]I^'?78[)G(''&I7 ^9#C<^J'AL'^7P7 I*+[UA;CX]F$+XC?,
MJ8E_)U2(_]#WF?C8PR_'/['AG?BI(_?%K_SM%_$O7C 9'Z<['[^QP!E_Z?T!
M<XPS_IACC/1?;-RYKL XZ,1*8YSN5\;RAC7&YM:UQBF2AXT31S08EX8U&D_'
M.8U/3I(P-Q9+F8N/>3 /--/,4Q<]F?3Q7LQS&3+&^N! 9NR?O)GLSP8QT5?D
M3--H7^9ZHH+YL<B/>80?S'S[ZA#F_
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
MQZ>BJC=96$8HAMH6R"2\3ZDI7*XLJJ JR^_I#M
M*H/<6>X'/N=7 OA45I4 MI**Y992)+.GHRYYPP;+*\J+2E:P501X7QY5HH1;
M$&UB5<4J8&IE264ARB);:NDM-2B?^053*LI!V GG>GB>6;*B' 2SFS546FEI
MX0K(J"XL7$7UXK=+U*FL\E7E%6O*>QHD55545T\1J29CC^?'KCI$.I4AP06A
MW?K:=CP Q40- ' U69R[JKM8&;+/363SA\1NGKHBT!40E"O$<KP1A.!"[ ;S
MD OFH5\&LP- XGW#NUE#LH,NF =_&<SD5TS_1\RE/\)2< 3"H9DFU^XG106Y
MXC&WQ>[R7CYBHHHAS%L`NC-S'F5.GM>S[X8Q*N)9.<J<DO((K7(N6VXI*2.R
ME53! C)$>5Q1"&)77 6RAC,,Q(C\1^]9Y<7YY06X;5Q8L[RP$J4W5AFLUM5X
M)UBZ%5VLLN<A)>0>0D^[E.YVA)YQU9:"V-AE^05+>N"-&]>3WRNOGWIW9KOR
M1\;!Z?QI7?=^7E^1[% GECO_Y?K!P'UQ3U7<Q\T+#X= 4>%YLS+QZ^EP2UDE
MYEN6F: :".N6B3SYU/6WVY(R9F6:4Y*HY64%X84UA=3RBC)0\P7A$%/*J<LI
MI5*L%^["K-MFH SW".O$IT\ZJ=N<6R6>!?\G]N$M/MWM^?? I\V>EC8[;5ZN
MZXPRY,YVKMW<_Y?O`$PU49L9$V5*`MVV",:B%-*E)NJ_S__\QV"[E;ZVFZ+>
M)."9!"$10AX$"X0-$'X'X06D`<(^"(< '(?0OMNU-C?_W\5;0:6 ]9U4!08[
M+(B9A<O%A>);27IA_NK"._(?!8NUQ&)V65O/2J:75BS++TU LY3:ZGJ;5E4(
MZ^X&R?1"R[R2Y:M ^47;_8!T7FFU6)$ZB&E2[1"FH&)V?BE;2$W!-NGYU1;1
M<: ^Q]+,[M*!6)K$5E6!)=M-02F5S%:6EJ!-G$H68VJO)*T<B ;/X8$[R"]&
M")F6`E=5: 2^IY2O+JFJ*$?[.--2!8Y)-=5$(7%W%B10"\#R+07S_7;(6\&C
M5Y3 %"4KT<.X"C$/+" 2#L7V?%2M)9)`97GHD?$,3-E[NR4] AM> &X3U2S
MZCUB9\0NC[7&;HUM-;89KQD]F0 FF5G._)'Y"]/,7,05$^P!/""EU1/4I>H=
MNDNZY_1;XR5&;V.,<89QBW$<,Y&9`JUT3#R3Q*0R6!GMD''14Z+'QTR*B8HQ
M!M[P:\,3AFL&*MXS?E!\8/RX^(GQNOB&^,G&!XTO&4\9VXTIS'IF([.)V<.<
M8BXPE%D\U$Y0SU";U?/5B]75Z ?4CZI]-:,U*DVSYGN-7>.O':--TB[7/J1M
MU#ZI?4;[ G9QQ/T1#T=\%"&-G!&9';DH<F7DALBFR-"HE*BE4:51]5%_BGHC
MZIVHCZ.^BOHI:D"T;_3PZ,G1,=$9T471Y=%KHKEH:W1;],UH:8Q7S(R8C)C\
MX_1)>K/^+_K/]-.!#T6Q%;%L[".QS;&?Q5Z-5<6EQ6V(>R/NK; ]<6UQM&%!
M_)+X O _Q9^(_S'^;/S%^,[X&_$>1IE1R Q OL<Q6$I1M1!YJ$>IDS3+-8]H
M6C03M97:Q[37M,]'M$3((GTB5T3^.?)OD4<C?XQLCTR/>C9J6O3,Z W1MABO
M6+_8X;$38L-!OG;%?A_K$3<T+C$N/VY%W -QI^,D!B^#CV
M6J<VJ$WJ9'6J.AW&9QZ,4)YZJ;I 70S26JFVJ&O4M>HZ=;V:VD11^'],;U:_
MJ'Y9O4W]IOHM]0[U!VJ;>H^Z5?V)^H#Z"_5A]3?JX^I3:KNZ7=VAOJ3N5'>I
M*0VMD6GD&C^-OR90$Z11PJB':,(T:DVD1J<Q:$P E:F:=(U9,T\S7Y.G6:HI
MT!1K2C65&HNF1E.KJ=/4:QHUCVHV:9[0/*UY5K-9\Z+F9<TVS9N:MS0[-!]H
M;)H]FE;-)YH#FB\TAV%^'M><`HEJUW1H+FDZ-5T:2DMK95JYUD_KKPW4!FF5
M6I4V1!NF56LCM3JM06O2)FM3M>E:LW:>=KXV3[M46Z MUI;""%FT-=I:;9VV
MQV%NV;7MV [M)6VGMDM+1= 1L AYA%^$?T1 1%"$,D(5$1(1%J&.B(S011 B
M3!')$:D1Z1'FB'DP%_,BED84P&Q41JFB0J+"HM11D5&ZJ)>CMD6]&?56U(ZH
M#Z)L47NB6J,^B3H0]474_)B\&&HS1:'#DA
MNDI=H^Y1W2;=T[H/='MTW^B.ZTZ!E/OI`_5J?:1>IS?IG]8_J]^L/ZS_1G\J
MMCVV,[8KMC.N*XXRF S)AE1#NL
M7%15VOB=#V"$P1D%%95L5"P4K8'A>_ 8P%'\&!T8`4W)4,"1$ CN-2U1Z$)Y
MN4ZY?>RVJ^WF6KOMUNY6VQ:56P &FF5HK5&:FEE=&BI2&E GY_\\Y]X9!K.V
M?=_?^_O_W]^_ 7/ON><\YSG/><YSGO.<CWNNY18K):<H2DEI*(^'HEHI\6>B
M87C(D *UDGM6Y [QRPD+R$]!!8L>O0R9*85)"77273N,BM+**(O$Q$>5/T*
MH^TFNK+.5[ S(F^H]FO U9:6T"427+\$=^![<-:;UOO!(9>1MLYKX"OS P.>
M$GQO?0_.=%-M667U6 D.>$JJZ\CW\Z5^_OW\^__HY]26KTG-B8G)7;ITT<[>
MAQRB+6PZ9DC5!;=> 1#A?8_'0^+R*E3"=D!J%9Z':T ;$]SZ'0*\" !6JR<!
MWXU07^N1228 2X /`"_?(SP!"?FAUU #V82;X;K")BS&VY)F5_V70C-$QW19
M[:V8_%E(SAY0V80 3+SZUI6 NX#O
MKXL[`,96:' 9CO%F%;]<R:N,']0'<Q%<KO(U[+*RV39EXR5,MN7C9A=S_-:5
MS[[C)J21&X>>X ZDFSW0T]H-Y0+V..K=?+%*>'\\136?8&RO(EG.Q6PZ`E.T
MRD-2.8T.<\\KX<^9*&L%1?YD]F5A*&0O1T- >9=94%'<!(]Y -/ I<CN' M,
MB[[!!#W0,JJ.+DU-75-2NKJDDO0E?P9"AOOYX1\IY\G6`:R_(< 0J.Q34:04
MO$7%C?&8AUJ1>N2-G+><+.5",1G6E$353DI-84E\F>EF4?[4UA%JYUYMC!&G
M(M3FBM26;5I;5D.OKZ[Z'H5[M'_'2D%?!/%1OCI<=L57AUA?)B!5T$,Y' 4]
M7CX!=^"?<(L;UP8R0&J:"T4O;SY9NI?PZE.O/)ULW8WI=Z)T;AB25\CM"" L
M!&>PUP_YCD,?_Z&B9]'"P6/3/X2BHW5D`[VW_GZ*X *;VQBEH<T9Q%W?*A,%
M3-0!_"6^IT)I1ZNCB%=8!2- \_V<H=FE>:2-/2,C AW'EJ:B[],)TC0Y&(3
M0 `><&OX=_FNF/>%*13J5.>XQ Z,;OP*K]!\#P
M.KC90P>R]5J*%'F%_6.$?6L'%*P'&C*&F>U?0)A-Z-B!O+$KGL>'%_$AR#Z%
M//P)P0NTG)S-H.A0-A,:/&_1LBDBS !O>8H[ $ZO7'K&+8.T*XC,BL]6OV>U
M%9I3OF?<< B#BI?D6= '^ 8&-<5 ,!;KC-170&(IF\*^A!X[G3TK0*?<BKZ
M%C]O(NT(LMB;^[S41BIDPE]1LUV=+X3_<CA\F7_X5C'\>W3MW G_.[L"3%(^
M'3O9=/13=*!G')+1 77RBAK5X7B^7=&F"&C"M&T#G$G)F51LN](XK 8+<W8/
MW S'_$ ,ASBKDLM5=0S768&*;S>X&CTH*W4J]J"G]T- W6528>:<5<TE8T58
ME=!5A&X!+-SV'1BQ<R?R8!R&-!^C5=P]^.P,V-L``7LQU/'HPT0:.05[QJWH
M83N4;#I203&S^ 0D3.%B.Q7L9VY'CG(O1O"=PZ!")'"'[53R77,0"RNH8SH=
M5AD7QIYU=\T-4Z+:-08 ECH-WZTXIAA'"M ^X SDQSV,R!8JN45*SJ;BX;I"
M>&),;OZ;F/.\%O)FOU ;SV\D7$*8F7H2RK_)[E=R:BUYZ)JK)>3Q*O9CMS&4
M=GHTH!X^PW*SZ8^22 D6OH,AU%Y\\-93&)$?15O [T T9B"PHI^_CM3X"4V3
M&N2#SU'RW3%AQO,:]FLL<NAN3* QAB*:.B4_`:O#CIF2F(4*C>*X+U(#D:$8
MN6#PZ
M?YQ7Q'0K.H0#E[!MTY/YXS%A,I*TT"8HH/."=F9HZWT<"Z!X!>4> '\E`D]O
M;$J%,>9*D4WXHUMBDW,^2FCV,(/60',F&(6;12:$HO\^\"/ 1%DZ05PPE%_$
MJ7 HI8%?QJK!$_,N:("YX#TNO#SD\<Q,D#C!`P^$UR&$!U6S^"%US&%4.R'X
M>:L;=$#C)93+VF!04L)B0%7<8170ZELAZ3,"K&GZ%FN^S<VK7/OEM ':)R3^
MWZ)"_PH5GP\X1"W&+ 85Z*__-/Q1?QT]2M+1^4K^%B6W7(FJ#JXY
M-0TZ#W0J9+E%I90S-_Y831N/; RR"A^AP2CINCP;*'7H=\SNQ X%FD&?H.IR
MF-W\NP+G(M(<RIK=2M:I!&'C5KA!%%=*/"0L1!NCN".=,'N45?B3.&09R>M"
M8NLP*%^OHTJXHJX+>I7TR8&.6Q7L)VZO$E5!5W\WZ)85QNNDKN"PXA!T-=X>
M&;AO;*=OX-M9W161>:5:Y7?^=0*B#M72NYQHC!W(M_;&2]NQ%E;S^]DVE0\5
MU%R;RFA2TD.0'#IE)=_N3-N#G
MN^Q72H[TET>(:#E6R+A)CA5*+C)8DI-,Q2$%Z>;8_0,\1(!T`)9;L!\'+!)M
MHP`_-^Y:DALAWDD`9(OR* ("%<[)SHF.0E.^\!6TG!50R:,*!0,.9)QRJ9O<
MR_IW^? HD)Y_W%*,1CF165!N%C3&8(0^K.+8BR!6+XMBQ>Y78!5,`MDR'F9
M_ZIZ/T6NZMG/9&AU\\GLYVZV2ZDX;3RLN>\ VEZ>9A=7[Z87((S;2(RNVD"^
MSLO>1./04(=T=WC3W2:E0ZDJ4O(=BLZ8=U$O[SX/_0<HED[N5K>?'B?URZ"U
M"=4>8A.F8G+H)VD8$8$ WH,9.=?Q-C\UKX;L CUB;V0!_W'1! 'M!=DYC0Z;
M!FF<[3 VZO"._6;/,)&QO+ AE&"QVM^+DD)62B'"QVHRF);*BF/N?5"M0F3
M6U_Z[^:+>G!DC%-B!Q1H+="323EM`JYN0!E=9K6,#K()]_1A)?L*3&:R) QG
M5IK BO9-<&&V9"KI25' ";) ' +'4[,?$3%`VX<JH)%A4W(HN6/'NT]VNN^
M\"3:"(H+3ZR^U0]& C!>J9U*S_G.08_V.+9H/ 2.?Q/3L5\IV*\5%YYT.T>[
M\=F'! A"3(3?12UF4,9:0-AR9K ==(>'+B[G AR+)[C+N?ER/FC_%PHZAPOB
MYBL7TGINOHJ;KUY(W\C-UW+SPQ?24[CY$=S\R(7T.&Z^CIL?M9!6<_.CN?FS
M'=OT"YF#G(S+<F-VQ1V<3+RS9Q5TR/: *V_2`>7<W D>,52D!: H!_T#Y7)?
MF>*\#D!=)K>''N,R?>>AU2[3%0\=E!OE=KZ<FYO++XY2YL;LE_*T0:8OXUQV
M="W9\NTY<O"-;\E60.^P/4<!(WMX#ES '.U4H "L])81ZTX+L '5QWJ46^);
MZ)!"& /L()I6S7<0!4[H(_/D3F4VVR8O9Y,IQH5:4K(#H3?XD,SE]! .X1QM
M-]]I_&#CF
M*T>Y=R;.E.9H47'FC(5FE!.)K:!TW1ZP.!2EZ[ IT!X[2M?M!>T\:U9V3LXF
M>RQ_P)/P!+0[6U%A =7#A'L8K8=1>QB5D',[MNOPXEM7KV0/*#M\\P!\O=HU
M7REC)MB-T$CM<2^8*/MDN BNA>(<OEGE,I'X-(Q?AO'I&']<BB]0N;+52HC/
MNAVATA'*F3L,E4VD*E+X6NYEV 1[`8(_CN ;$7R?"$X$+U+H] 'B`.E^[(21
MIK$$CUKXHQ^>E8CG<\3S-.*A<R4)4Q,)P^1+(;GA&, (V&2B6*EY8[-'TX0S
ME"A:FF87Z6JB?K"V^]!H-$<KZI2<68 D2K _$[EZH0 ($B9ZJ6$R7?/52DW3
M:!D[&*&_(D1%4'0:,A$XW(U%=6-1SV-1N?FDJ+A4`OF(-\P+<G%_)^5"7\_6
M+L*G\\3JF"+-W*_G)R *E5 71!)5,'[F9;B4PVAMPE'*6ZM0?6[25+ )SB17
M`26:E^X.5%P6R9M GX)H+R+:+Q%MOI?"6P,5I\K9K03F>H31HB)0HB*X28)Y
M+4CS6EC.?&,WP3L*1+QO>.G$6_MFK5B\84*=< $:E)J72%U#W4Q_Q[5?2]L;
MAO)+E*!5Q=J,MPD-0,X*:Z&P">]\]_(656HP,[[I$#VV
MTR'FG.9A7/>3ZH<]<*#UX(MD.1QR% ZC+(-%S1=KF7B'^>15"]]_C\.!&5?P
MS0>X+.4K)S'(TLV-X<W=?,%!G S N+>X+- GW:"Z%FKYXFZG`BZ\N8>+;$:,
MA'L;%4H)4*K&FF("T&Z\3=1^#AC?%*+>:[KDU7LD. NBQWJC(<^RD='37EGP
M=06 9U<\+DD->(/0\P4$>8><$2^1]B'\=<#C>05AC>,P%3U1FGH 3^C'Y4EA
MQRT4)=R>0_G-+4AB(^2=!&H>QT'\=ZV8 9%DA:NN>!?FD!D1^ULOD>U,[ VX
M$4A>15%[^S]$^O JDORA6'8O?6Z)OM% G_#E"5\>_#B2,%4.W78"TE AJU *
M\CT8X.D62K.]5 Z)M2+N.8 6/ 9<J*- *%_ [9PK^&*W?3?9C30'<FAL(QMC
M";29>K(<:_SLTI>CB>5')IX5Z4<N?3V:#H(;!(^&SN9=82<D%W9#OHW&[RBJ
MC0EGT[6MN$0>8 ^'NW ,_"O8]"&L"CH"+.%\&-=YQN$S:5C$EJD`H;H*8& $
M;E ,-.YG1O&4%,%>]- 74V2TDA_EO,!3G,SI["V\G<S1?,+W>LY '590^79C
M,I8I_79QOTD!Q(1)]8RR8;SNY#X351M
MHZYR!E?(A'H"&M,8]= 92.T!,[L(9Z+45A\M#U2 56]B`H1_`"S?.3P'T'A
M"."E71-FE3& $!!:<4FX$;'V?D61/2O9["5Y'4KO*?*L<BD?^1 `5;2V0EZ!
M\U]Y0I)'[$5 F*ULQD 3,QY2XN(GQ%XD=K2ZEZSH#I
M+8'STH*94+#V.Q6A.9V*X!RG8KLBQ_$(1O.'8]YLO.B!DM>/XCMCNHQF;>V1
MX2A',_KRR*X3X7XQ*X<#PV(^,';0XUD8]0:P;WJ<,-P8BBEP*[KY=N=XF7E(
MPJ6Y9R,::.:A&+-[N,,5+2=%)V[X\.ZC,GCX!&31J[.A23K!_!JKH$=C5TNK
M; )NMUPQG^V(X#O93EP0/D/FI8E1.LS<$*C=-W%C(S2'" I'#KQ%FP>#PWQ>
MV8SU914FK\?]2BHA*) T&K [A]N2UDI D:EIQ#A4%TMR+\H0&?BH 3 E'8S+
MX$([:*X5Y8UKQU[P`,MM:L>B<+*<"P,[.9W1[-F8VA5P\K")VF+!I2!F8I'0
M<(),(F'+*F<7C57"Z.6 QSF.,W PUKP;; "MC G &)6TKNO7$Q:*8XI10IVX
M;:L\=>4$FJ1?A6S:, TH4S%!#ENX,8P9`P;0(I4C)]RH`*/"IN3"T+;DZ]2*
M#U
MS_R3:"Z_]>P GMH;W4HV%7H'(<5D$%*OPB+3B: [R1305!L,8:Q"ICA18R*=
MPF,X.K>XYY,1[VD89^-J7.]]9/L#SK+,-W;6YJ 1]Z;B2/.A+=<U'P/S^DU/
MB)5Q,QA",VV"_ OO$DXD3C_VBJ(*CR S+7.-'F>05'-^\Y%MKZ "<XYB4RE:
M#T8UM^%BNB.\&1_H4,Q:E4LV*C,7H)&-E7KC-8[P!K+&Z%S.!>)$AIOM5':9
MAQ"ET>S>>M-S,M!8_%A7IXI6-!S2N3H;&+ WN#IU^&S:/GH>*$S6/*0$Z&W'
M]I^16^U(9Z&P^W-IM\FM8B<-E<8>>('09A6:2W'CHE2(0([T.ET!42"]RS-P
M<QVW+$KI6!P%*D96BJ/FN5&I/!V5AA-$^!H,/YX+C\*-;.HHAYIC]RN-!S7-
M.'/4-3=*B;V3X<3KI 214?5I+>/G&=I<[3HZ()0"<][5;D*?#GT-=% H;MUT
M0D #H-7DL!\K0 YR&K9+"6FW'. CHQQ*TJLYP;S(X7!=0.HC^R'S_1_+\PI)
MG$VGW\:ZG] X&NGS/HZ&1Q 0. ,;;_"<]GAR<&K^LGQK)WM L:06O#I 2V3Z
M+"C^5G$KY]X=)TV4YK6=S_X3=S<XPP>!X4^\#H+X<5<`1N%"Q-XMH'B)J-F$
MD-%\U=:L0D?!E7Q>DR?\XE/"&]F=*EF2:SZHHNL:+ ?3`0V70YFP(F'^)5$)
M:(BJK^&+U [+E<$/N2)581X/VBY4I,%1Z)$5><F8Y",#TK==]$NO1QJ<LT )
MZ=6+#C
MS+9'L$.*+<Y6'%HZ;+<ZP_F#G7(/`)A$B(4R`)',AW.:UW+&2R:6C G$CMWS
MG1U'KMA_T4%D=A 4Z[%\'(U^2OBF=>1$:%[+A60.,=DH""AOO,V;TF&+<&5C
M1D"9+S A]0K'H ^"R!3`1)"5Q .`1"W4 V)K"IO^T$[FK0:]FXK1>MY6RFH
MXU%\L''1JCNAD[#RMN7Y_")KGLUC6R8.9H*Z<FZ3B9MQ<ZP^^]J&<Q1W6ZU;
M8.C])&D[.:6D<]8:;:LVJ %%BUFU71GBR;%Z<E:)<QN%+P>1K<^XU9MM"^*/
MLV<U[*7 ^J"&=OUVK3. H3UINW;_5\H%N<V'ZC\6U]L:#YRYA-O:Q$$>UVP"
MZ>":T\A5?QDG^U3<(_'HL: Y1S+*#BX6!#C,$=CI<<US(:AERKRF$YJF_: 6
M&R[/8%0M4_"6/ \EVM7P"] 12CJB(8.BPQR/8';Y-F&BN+8,*1W-&&2U"8'2
M:9OF 03P\X<;]I\Q'&LY:CC4TE(+TLU>G'3G,4^40V\V4?O [087.L]$/0/W
M(KAO`/<:N,/ 3H'KA_!=\Z&O`U</[EYP7^1"Q[C01,U98**>`C<-W&/ >A>;
MJ%S+L#L.
MOB 2QF/\0C=GZ:Z?SM9W4_6AO+E[L >&*9"Q,Q!G]0K<I'WVXA(K.Z34-./>
MXE8< DX4 A1O0O??N]*+_7>(W3+D'SO4FTZHUXI%T^-<P3LX_T6>V<^_[KU.
M[G%[`=X `+$$2:(7B9P N>*%V4- DC7-CX)G'L3X4M\'`5WF RJRNQ\\^!*8
M,Q0\6J+O>K<7?(*R:CCD'"7%/B<;[$(BZ0BH'A5OCN2M(,<]O-7-%9SLQ5WY
M UV8F)Y%JL\<V72(Q+U'PP#TO5]SYAZ <]X.?F ,XL.M !$HIF_RI2B').5<
MH9C1N ++A/ %N';HG,*^HVPQ?V*%H=Y!&+\)>1[FI(?I$>XB;^U$(*QF!Z[;
M?Z&<B$R,Y0!GZ>]-PR5 D7J'(Q?'MU "`4:B E4($'NSSF8K1("<7'8\ B 0
MW_M+&>$NI&84( 82HY,(*DND"%?.9P'KFHFWJWDAXJ"ZS.?$A4FAR]Q&FA=V
M12.2M62!*MI.DG42?B$T:"5O`NZ:64^72B'2+V7#U L4$]UE%DI!63FOE[(Q
MSLH<#BQROHV#ND
M'.Q"G/3-.$K<.I.(R:&31$S:0!0:4N8P"H^EC3>[C>:VK:/X`G=,`?0'_6(<
M'4A$)Q*JOR%Y#AV
M_TRS6VP;M):444>K2.EBF% I)01[S$*+S"J<&91RA8;C=H[QDJ,7NL0(0,J:
M^W&\?XX(2PU PK:]CRMX ;>T<99GG#F\>1]KWB<OY[7Y#LN?\X2G`J2:>9:M
M\] D+I,6QUM>`(%BZ]LH.H,WMT&IG!'?HU\GD5G0QD+;A_'_1U (!P+E`4_E
M4BR.!=V(_5SO[P9]?9O8CDCW) "KS +_"+%4M+UW`9"D%\="7N4\,6'*.5GO
M;8-HQ B\ T &]UKA62+**CSDDK+K\YC[6JBF-N:<1(N QZA_HCE$K1"-^4 1
MJ32OAB_HBO,R8\CD&=AI;^!.I7EL1X213*W5?NZ=;,&YXL N,E?,7M)N4X,F
M^&(TK5E(ASMCV2^L=.1">JKS1CX7[4L8QILB>!B'\]8(/EL%=PQ6B\$F+;Y4
MY[73[3A&)1.Q ^).2FENK;%>A2^8:!X4IV5)F)WRPAX>`5NA(X$O^ (Q3$G"
M;_ P#Z"GNQH'!J7[<\'+`Q$V>$1^.C'P6TH*)#P0PS[V"R,\$(/?I/S3R\7
M?_C#ON
M>[&:S.BD\>,(DKM 6#P1XI!W]5K-Z[A[3&DAB#J<$V! Z["H\BMD>14RX4_Y
MA+PKTSND.3;O/&.!6IQ:'(7C5"6T>4(D6. J5Z,X.IC-7I)OF4P&G23;"KFU
M8A0OMPK-^>0=6G$:BYB=.-GL`Y,A6'"><.L(,'']:N=.O_5>). $Y"V^%8)G
MH308*88LXY9WD=&7^!K$<*''D U2AUI"RCG1RG;6P[ BS'6/2'$6>T6^90;"
MPORB"D\A%!]ZB?NMY(WD-N (.W)[?X?'/WRZ%!>;[A+G=QQ2NDZGQE^,9"83
M_R;;#KT?].K)%/-)3">'NZZTUB*P( B'<14?*V>VE(/(8A/?X4QSIOH58%2A
MH\.(+S2FX^C09 7;39EPK6W_RN%YUP$<C'/F`<,)LC][F--;9.*6;4V3^'ZB
MC]0<Y'429%K>F +53QB$^_+$=M<2O%T=`5[6K)83>Q#K`0\ZPF2UA^ !T3D*
M!O)Q`4R;)Q8556V%!U=H1/F 0N>*A3Y!PW! &)(S0C$LAS -U3-2_SJIQM?
M`0:J- %>A^42'CH !Q4A$LV3^244N6^7X*X5MR1Q $=,_2"I73>^+*G=B.3B
MG*S!!30YPB,<YDM&QET_KD6U/;CI$(/O6Y29YF7G0. 6)Q82B[4=0I?ZL4A-
M2JTXR"NCB.?HBA7M*JI 7%];%17.+XZ*"#G
M_1#G!4(.P=,' R?8#RAV4,;WOHS6(Z0TN(Z>.7KLZ/&C[QN_JPVY4VF\4!L0
M &K%]PH0)!7 )U'/=_+O_V )'H2<SU^C" ;(]^:?4 3$/A);PT7=EC$-%TU;
MP* WM'7PW>^>A9OFR?9WSW3XX +W7[J>;^_ VW_][E"'YB_=[U[JN#I=N^'8
MNP*)^T+<DC% (QWNOCZ/IS[DQ)PSRTU4+YHUC9?FAE'45G6KZZ").A'=BR8)
M='<`TH< -V*C;&\^5J_DVP=[^(/LQT'[AQ1/R1QJCH^TF" -5SP`OKG$-U0.
MWESPEG/%;EIS8LY.1+IAX-2A$_4#NXX.X9 ->]FG9!BY>V0D!&I?_ .&S;PZ
M]-EKAKYRS= #UPP]<LW0GFN&GKU6:&L?X8\O%% 2` \]Z4/ )J<"O"NE(S^N
MP#W]:$A[.>B;#S:X";QG! 71GAE*<E61JQJN=BU<A%E3\ 0-NQ']4T3_)O2/
M2^5=YBL9IA,;7%)A4:'PRZ)4Y8UWJ3),=.")6:>3=W7PP9Q*? 7/"W,B^H-/
M</?SA,[ .?.0605J:(W'0!FK!C_D"M2.XGU\UZ]!UY$HH<SM\6Q7^(7D" _
M<,JL`ECV$L4<8X<HYFWGA$4MBK3 >A7;IM\>.,^IDL.XS04^1\$^XX?,V<Y
MT/U::0#EI?F<^-H 6&;!Y2]O-96_6I'I5)6_?"6G_-6WC6"HE/-6%7^IO/%S
MJJ&<JP?/6<^V<C!VMS&:$QO4'Q6?V_61^5POFA_EQC?KQO#F",[<SYLCH0OM
M(*0K`-=MIB$U;/TE4'Z Y8,S3 W<G,'#J;R<\;ZT0-Z[(6]40G5NL4!5;LMM
MA2+'47 2.'*6O..CEG(4;8^*$F!3L/?4$TF.PWWG0[')2D:#BQT1G
MX5 (F.J#WW#SE'P W +Y]EN],D3D1P0,'/Q885:C( ?RER 9/';A$Z1J][T_
MYF4L&FD5HX5;^\$J:+ \G]8V7%['C'&.6FH<K%6"::EMV.;1T]^T:%.+/(QL
MG,>,Y>N'!D\W>[9.!;'HXLQJ9P2$-'NV!8D[H8(;Z ?-C'*^!XQS<Z3547 P
M^;\.'HVYR!^];W!_KYSO\KU&1]Z';[QRQ3]]A9B^^B>EWT:,4$BG1/$#BN?1
M,7"=KVE^#G7,E>\T.Y[R*AMII[<"),K8KWE )P&(UCR VT&:7=LF="KT.2T%
MKNUA.<TN>A0^S8-F.&CP.,P'G:,A> D3),;/-[5HFXXQ?8KZ(6.]NCX2='O,
M._Q%Q6!1A=XF]':1-57%Z27T%&?D$GHBJC8FS(9V?TM!>+Z $C=M\#U &C)*
MS BDGZP10TXM6A/D`-<F,)=:+*[M(3G "_:&,2Z";:J(S1*>)[PBO8'6XU03
M'1K88L9V!3DUG-4UO&E&PC>K!D\A YR06TQ.XQ4\66Y+T.M*LN.-O5(*? 69
M5B6[WSJ51LJA-(+1Z:&G\IU$E'\]>'%10[M>>MH>MA0"N,YF#W-Z1)M%1H.
MG2&L4PY&%<K_N'+V[BMZ^JMR7EMNM%UA%! EO7<GM8'=8AN(_!)GTJD5T+<.
M6I3EK7"SVH0A(ABJ7K+"(PJ]!/C*= +XRH-PR[<)[TB [WNE6U7>I9A#L1UR
MNYT3Q- E3, PZ'Q\HQ&8#R;DQY+H3QDI^E\=$$7? \*O<TY90D\NQ]>:F' B
M>=THY86-X]>^QC&&1-+!Y;P9<"A$'H27LV=UY>R;9JFTF]6#I[RL=B)I,>C[
M7_Q:7YL!NPK?]H.>EIQ\>+++[,9M/EWFH3!LO.9!<"Y9I_E;N ^ NP!F5-]K
MP'1/EUD0EY).< 5GRKF"<YSE+6 O?;U2G]'A,?=A%7D*U"OX'A.CA 2XG:;W
M`%^1)5OH4\.M(M:&>I>,B6BH_Y:BQ[*7%VB:&G ][?(23=.G<J3>16E>,W<8
M>YC(QGI2+DWSWXCP;E7RQW%JBBMP.Y] +^LU.\A+<Y=3- ^0K:E./8COMMF\
M^:WF$^5<!!U,MNWT$K/AB,>+K*D<"V1Q]]Z*X5=&;=/R08HVA[)!T<$%]>)"
MS5?VCH+G5\M(H[NB:<+.2<J747",V^!A+Y=!-5\V,[=TF??)R.;$B$VK1O"'
MK=]'T>. W[L\AS/O0\8.R)P]P&/Z72CTEJE0X&V1_/N*8X[P!Q4?LAW=_.7&
MRV28]W>H:IGS+XC*YBG0DE69O 8R9S!XVE5\`4RU,< ^;^7W/HDCE_H+%&V&
MB+<`X[8&\ 5#H)6/\V8WR&=,>YYB2&B^`.)UHO[D+F <":!DE7R7$]Q CU7(
M^(9$=4-4_> 3&TZ>V-!]ZB*".M72TR%\(BMLHR#D S/XR!= C]LG"R;O*PH<
M>1<<R)'QYC-<EA(:^#DH JHW3'H75,"&OV4TZH-AOOB7P/F[$7*/==(%$LFT
MN;=?\2T8^?95V I];_4]I:1G>!).XL SH0>NY;Q-E>^I4WH,%3+A%)Y6<B#B
MQ0_^YQ3<2^;V_R<57.:%GQ7<?T'!/?'5#RJXXK[_Q0KNR(\IN /_TPKN[(\I
M_2)804ZK64$)& -\$<[9?('J`SE.13JG0N5_)"/>\3 S`1P9(!P9DCCB=I '
MS.F](B//,GC&T4SO5V21N6,&1O*6_ !9F\>SOEMK`77<;3C6DA>D. ;$X4#L
M34?X44=XGB/\%YK7,0P"%>W\P?T7M7]"/V?IHQ4H)O5J&(6-YNO[8M"GV8%;
MHEA/V-: U\/(&T\Q3!\,8'+Y4]#VE
MUJ6:UPNN< 4])\P]/GQ+G2F.I9X\H?(:Z3=. ?:XE"0-'YF49#T?"W8'.15T
M((]4$_L%;A()AX:L>-_ XC^$1M"IH!;!N&$B;^[7O*AO_ RYR+IDS2Y-<R(D
M^>*^F&+UL B KNDDKXS&%(3'?-A\8NMX% K+R3QA]$O2RV G.Y41`-?GFSS]
M.=EL(4KZT4N;%>PQB A\A%? __2"5^"]QS'U7;5>(![O">80,TJ8J,?W09V3
MV"O?P=,[-Y,G-7O%S02)&Z[T4*U0FCYKH3!!3W94A-G[H4L1IN(AS+C6W$$V
M?[RR\Z2)ZI13INQT&1[Z,P"\:/H=F>3IDVGN?01G22SGG5/(.0N.G;C;P!G0
M10^^-RB-,?; ,WB$_3?A*S:'KHQXGSA]>(^05:C_4/Q4 /2^HT5-7GZ&`D6X
M6'$_Q8R&35"64:;F0TP,W^V\$>/V?Z+2O% C"SEE/,S(^6Z3,QA#Q8>6"%/3
M">:??+OO73CQ_4$5:%.'6<N9W<Y(Z".>Q_<9ZM4Q0TO!>)N(1S[>\'?QM2>S
M:7'4V#P
MFH/*:.P<\9WUXHY67%7RKJ&HR7Y=?,6W747MW)D']J R2O =`.\7M)J7NO&5
MNZ!6?"'LE [^O7R[:B/0_M?9Y#TL`&+3HG "%>.=`:UXKO4MXOLAY!R ]";(
MB1(_,-+\.K:+] 8,T30_3PV_8;:6%-;1C$FL8)]5`?:*58Y'\#E?^*6XTD;V
MI9?GQ^32DYQ1(B 9(DT3_=(;"<1/YDR#AV$:#R FLA/5WHI$W$ H5 AXXM&*
MCHKQPK 0; RG\?,ZXEKR\#M
ME DETK-W[1 4EY8;]^A;.$+9N_LMW_JA>(PEC'JD[:(_%":M/PJ'<?VQ[S!Y
M3Q;,%RZT'_Q[!PZ+"-&L8=/[3B$GMN!<R=ZV4QA]"E/M RL?^CCDG2<D_HV<
M-\A==P`"[;/O,E%[,!4,H<=A%N+;P^&$">O$;9R>4,3BU.*)<B(NCH3LP<O>
MP(/)*DS:+1W0"% WO(7O$[K)^;F%_!7VD$=:2;QPWR!_E._:WROWK27>"L/Z
M4WL(Y\81+D;N] 2 9[7O *4!G(PJ=CN8(=!OG$)\)5$<<3OE' 4?TB)+T]&N
M+=A6*#PMUB^!%\GY8IC.R8286;0R+9,)(.M>D&*S7XIA.I_AQX-QX EL]M!A
M9(\>V&<>(O'("37R94#B"Q_2D$+1H4 D*"X->:?%>ZP8*JX]8O%HC56XXS?B
M*X_C#OK+"+X_6*#B50TIJQ
M/Y/7MXP&<^ #KP
M>5DY.Z2CS\-U%-W'AY6SP,9HB!L!,(T.* =!_%**GX+Q$T< ""$("-3G6/O[
MG 8F*-K8-KE5L/Y:E("W) DX 1) HP1,P;>">P^+$D R5)3SU/<H`D'XNT\0
M\I$>9C:2 ++0X:U9,:%$Z6<2I3,03.<E<Q9N&!WR$XM[1R8>48Q'^?'E^)(*
M&R ?*1^[KRT?Y2P(B$8L`XLB,O,J$=FYYRV?C% >E63D+3\9\8H(8%K%`/V;
MY=,8-1]<WB6;1K&4$C\$)HI)H 1S$\*L8FXD,*L(3+1S(D9NEE.T%L6BG!^%
M^7:*ST+CKR1;>,][I[SG[6S L#W=ON?B7Y'RHAY^C^CA;JG<Y)QY-AT?*::.
M42\K$D[]4BH*H> $V>=['/=1\N,P:;Y-V/T'TMDY=8BNFW035F'7'\4I<]F2
M>6R'DE> ]PO'K<H*)7==#X#DV(0O?R'-+(,12+"23XY(Y$<C+LR15T;Q C.8
M*Z;8-Y3SYBM.VP23C\)>9ZPW3X0;<D9:A6EBQG0 K^""G,HE;!>>:N\CXI0?
M)\-(T<+%G3_<.(P03]2'L<G?KI#OC*CM'R._]KNP7DC2O<(I\? P&)*9WB8G
M8QB#Q3,TV*' +1?(_GYQGK&?G+YJP,.8<<-7`<YI<)8AGDK?"6;VMDSQJ-#T
M`'RX3M/T#CS,`7N_0=.$*PBYXJ<X>O&SA7.N`QA-$^I[5KB#CNOM!5] M<>3
M0W$7VNMHHO7^QB^T&4/Q?2:R2\T;BB:NN ?B#F\0;I=Y?0$&W0I/V[S 3BL\
MX=<'7B4KX]GPA"?#B9_BBX>G\;ZG&^!I N\I`IXB?$_2J9+DO-3XQR* Y^P5
M&7D#Y Y\64+<WE!N.,9>EG'A))X.9B\K<-%!SB0+S'&P;3.OQ\\+X>;'/&'3
M<?&--W._%??,\>K'L![S/,?Q!* #ZL'WIV[2.<,<!?VXW=P728;\0R/6Z,FI
MGCF6`Y(\ ^WL9[^2UR;!A8[#B]P9).P8 +%,%)C:D[_%C>>3\)05DLQPK.4A
M.]PKJ/Q"3[?OE$#O
MJG8JR+0 .4&6F<R?-A:[ZV[F.U-S9(S"8Y.S'8$04OL5V"[%;K;CDO'RG6/\
M$1"(*LF8M.4+<K*)S\; S93SM.P9V5X<L ISWP-TA;I\?DEDGE#WOC .G1=M
MY^FM?.'L?&&%N,+'+S'E\?/2("P9<HO/(VOT[ &M,-%;HE1^0M?<7RFQ1BNH
MTBT*,"0O B'Y;8-Q&A/P_+0<9\#S.A+1U$:K4KO!`!W%?(.1RAQOL!+2? MI
MOA'PG$JKC8Q6GHP$KZ<0\H<N2'\>17HJ/PXU- P;<&22MP?'*B*(VBJ$GA</
MWB05SA[8MTRX&S"XYD;-EM%!.(VBAZ8=3"R;N1W"ZY%DX.EM`R]&BLW<^_R,
M_[.T0_6W)$R%840C>._XW4%A*D3&!&R!>NX0OB9'U*"7LB\^0LZ([)F,*N44
M7/?B\8'2:8)X1B3QX"A8/#K/>W*B38A]0.QU$QHO8V]ZYVCA5<[C<36 PI?1
M`<)ST!Z%IR"(W4Z"A-W YQM0*T/C7CE\!F,3A!L?Q7!&(]S)><^%O ( -N'$
M1/01.\?5T0!Q 1CW',8]BG%NIQC7I:5+V4^"%M&AB^B)B^AIK%-.1SMO+H(2
M$.-63= !S0<?>UNP2WO'<(SOA"?G- G*N;&U]0BQ43;88S&;+LSF-<SF$3$;
MYS)O'N&+Z C,(](YM:A0&HXD%18A%CW_OHCW1A+CU+URY(AT#FPQ8OT(L;Z'
M/*:<9R+H(+'SEQM.N,Q:.1W8>!AE<0^1X60Y,QV/</_+$\2&*Q(/6++B0>H5
M,* 2'A%W= ]V8A* ]"VD]#ND]!PI_Q?B).QG04OHT"7T^"5T)/9D4YW1- ^C
M\I#U
M]&6$BT.X20 W5B)AN (F805,<<X 6:BQ88 ^[+7-DL<7\DK*.U(E3,/CW',1
M;R;B?:67X/7.*[2U/O&V>/#KN-]"$X4F^4VSM]G*A4_!WWR"AH9B"U2\2W:(
M+HPGL%&<-9D<V1S.9>E(5 2W, JB.DUF!.W,GBLK!.$!&'9_?IX0]1O",4FP
M9'2(>,PJ'HE;;A,6_9[80[PEWG-'!&^.]]2$\P7QGEHM"5&3$!4)46)(+.33
MQY-DA>_&D44L<NBJU+'Q;['[E7D%A47Y-NLRSQTZZ*'O<'ONB 2^>.X(]]RA
MLP>>Y2WJYD/,^"[SLS>00<4+<F(7.BS/<N8V=H%2WGHW+E?=+7W)^JAP^$]
M!-3#UC_XZN%1<3VP=!TWWO^0<'+^)BGU3:Z<27(ZBL\)YQ.PKARV?,U+N;/S
MDUSSU'(Z7//2O-E6S\;H0D^=21 M8NO,,5.^.<A^_,9'\1!7/\ Q_<*A1H!H
M)?8!H(\.Q#X,T6]%],M$],(3C=X*%'Z-WC .WWV ^!P0*G?I.CZ1?/AY CT1
MD^_"Y(]B\G%B<F-=-"BP)(Q[!>-^CW$7STGKHGC8B.8EJY;/P \\E//AVG(N
M3VL3UQUL'EOD"E]?H/$PR I91:#PV$4Q<?$07S_ ,_T 9F;0-6X^7\UOH/BS
M9\_*'(ORQ9$]U(J,+PCG Q6 NA:9H.*4? 8P]"D]'4S,&O(]A*>TM,Z5HY;1
M\ PDN>$30K*$P6EZ2 L5AP=YV5<CS!*$627"( *(? 0C&S&R'",S/Y'*/(3[
MIX9 SL*%G,>DV1GF1OP`2$$_AGJ8(>&6/008QVN6(:.EGPZ2,BYRF(>L6)P=
M#Q.(W '\\DY.!)3C]RA:-J71% [4X[G(]J<Q\^V8>?M9`DTR/;+;F^E$;W;.
MQ[W92=E FX !+9X^NEF-`OX.HGL#T3V/Z.K.>L]&]F#OI/+40O,>0K+"77Y<
MUCI7%$GA'STDVE2YP.&)13!PRL/0KH?\Z\098[P;.3^(F7V"F;V%F06*F7DQ
M/21B(F^;1T$-*N I5[= *-'BRU(+GDN-D&ERPAUG'L!1*7;"^%U1\,>033#B
M)Y&TO;AFA]\L<). -/PV%(]V=;B\G-N,+SVP7\AJ(]DO%)I[+J,%95NH:<(I
M_MZW\2*(;ZVC^,Z5*_=&0RLL[\H:*Z-LT#N\C*KU5:)?+4.O8IQ0_P0.AXM7
M=!!O[C?J 7$O P5B#SP*C/L"&??V&;&6Q ,P-Z90^ M.7A=Z"B-7..<3`MU\
M.)1-R2MEY#M
MC3(6JS7-AX=W``*K)85_GSA\]0UY\ C'.C&,5Y#N<^6(CW:P'2KG+#Y'B<?)
M\AW.&Z#I;E1#I:H\&Y7">;*-.5SZN&(PVQ'.&BGFJ&_.1-P'A?V6-5+\$A&_
M606F=,Q\):EQ-;]0S>&A4*K&9-_Q]9/ 0!1R#I 3#EW9RD"ZAO16PMO2<K1%
MU9B"?3ZSA+\>RIKKG(''TK ]-6J/`9CHJ47U"[VZL,Q+'1.%GU$'RHZ#BI\B
M'L2H%?LUX<KO/![Q`V'BL&TW47IJ_"(6?O!X.SY>T+RD3(*FR';*0>22N((^
M\/&6/O9B .8^HQPG(1VN1TS4PD=-U-9?F:CCX$;_4GQ&1S9V-7Y!#N0/Z)V%
M*-5)G.4<VZDD>R?/"?P5Z058`0\5TS3A,.M:!EZ,5/HO1]>&$*Z18_3'D6^7
M8\[ \4UZ$9]0)![[9$/_8K=T)I.ZG,=MQ58M6]^G8"9XF $H`RD)B) 6"^*
M^2?=-?S5AE!2 A0YDTW2I)$*4PJ/_0I(ZL'3Q[U&J%LR0MVB$5IZGABAA14!
M%0JA6MPUW^IKL:3M\IU\,;2^`>&SKSV>WK=$0TGDC*;IGZ3T:-OSN,OE)&H9
M7'8X)&]NJX\0I15KRP+\,0_!H$ +(_*ET#B
MQ9,-B[SMV1,"[?D);,];L#WO.
M=WH\T,G*H8>8C&]2OXOXGD9\>2(^]NYH[#XB,7(0(S_$R/B3?B8B7L.A$43P
M8 O611?B(%3H[A<-2Y5D:([;+3Y'4L+-+J\-"N'?[?(9H!, _"J;WKM6'H%F
M4+W*.0<TDZ*+?&U-SE-\F"L;^AT8:D213X.A&0[J<RSIS"(-+ORX>7%XW>'A
MJ?ULNSI?5 C"VX0672\>A!33PYK[U<[?D<_!96D59C0N\ P>Z&7C<%,=2ZP,
MDFD&9MJ%F?X5,QWOEVF1F.D2*5,*,D44?IDN%S/%XFB:,B%G+WVHQD%3]$MP
M`'Y)\C 6<Q864PT7H;)'^M"22I+GMS"^$N-C,7ZQ%&]38W>\4L7?K6OV`-B_
M$&P+ M4AV(P>2>RU>)I0U^ &-V?6 +%0PR\%K![XW7DA=P)]E.8^&E,S&)B
MUD<PZP52UCEJ]HR5';+2^$)U+GLW='?HRR"%#N%M*L5Q_D-^,GXX2QM3-Q2S
MFOZ\%BQH5Q:I^"T(]#H";4$ VT /DM':( N*T!&IV)O)H/\Y=![B1D1'"V(
M;(7[OI.&:OT\4(#Y
M[\8/4I[%%2<%9^[CZY2#G6
MWT'DSR'R]>])M=3'6R%!WV#G
M^1" DY! ]#L
M ]G]0_Q^$"T,&*I0V17'R7[%9N^G5*2D^"$^G,V?,4!E49X90^3J)E=*AE<E
MN:K(54VN6G(-)]<(<HTD5QVY1I%K-+G.)E<]N<:3:S*YII&KB5SGDFLNN2XF
M5RNY+B/7Y>2ZBEQO(]=2<K63:R6YUI K3:Z;R'4+N3:0:Q.Y;B?7'>2ZDUP?
M)M?=Y/HXN3X!UW__RZZNK2RI*M7EQ,3HYNARJFLVUZY?9Z=U<7I]G,X765U;
M,5$'P"W?:J+P\T 4-7381+7AQJHW3=> ;5E9';V^:IUN016MFY.ARV;6K*DL
MYAS _#ELF
M1E%KH"JJ2C=LH.RUI>MK5Z^Y:6VJ;G%U2>GB]6MJ2VHWZZ:FZS9L**VLU'D!
M=>4EZRO+2H<3FK(EG\FVN6Y^&6TIVQ!UQQVUZT=&S*LM*Y-B:C:.C,HO*ZFL
MK%[KBUWOI3O2KYQ1$TQ4&KAEX. )6 :3^%U*7!C!BU;ZOJ2.^M[7*[<_;_(Y
M[^^]*(D/P"?\TBG^SOP`SQY_?B3/_._>M/AKFB'6KQ<W_CJEL*B_FZ ,_- Z
MN*J_B_%5U;JJD UEI;JR36O+:K 5Z&A[;?6=5=2:DA\())SZ?I2YMK:ZEJJ]
MD8]Q5\5>.U'<M8(7V%;;EN47Y$2O*:DK0P!+2=WM,Z\)`:79>$T(;T1.94E=
MW4UTS=IYE27KZG0WZ'+FK<[-LJW.SK*9;?X)HJ.9JKKUZZJ VZM7EY?4ZF;-
MW$B70+NWTK4S5\Z)+=:EI^OT_BE\'*&K:Y9MK $X; QZW0TWZ'ST^:*N222]
M%?3[9%Z%QE?*'T7CR^R_Q_:2TM(1&')*JFZD=26E%4P=K5N+U:U#D
MPV6TT25K;]<MW5A66UY9?>=4*BKUA]*/DE\[/% N:O2K?W*Y^%WAGW\__W[^
M_?S[G_W%X>4VT$22^U_],XGC*2I,+E<&!*I4JO!Q86&CY0'CY5-FSH[&'[D%
M!,R<,&&T_T\S>[I\MF86Q(5-CI3+`S3R"=&SPF9)L=-'!P1,F#XC
M1/_X`)T\+%(9.%H*EX.[(2(B,"S !PJ L6%^OP`"-2O,#T3\38\(N]9/[H?(
MFR -N,G 9H)+!;<$W&W -H';#N[WX/X![AUP_> ".TQ4.+ H< 9P\>!BH1QD
MY `6V(*JC265ZTMUY4S56C*RJ&(VK"FKI994Z^J8M79=.0SZ= `) \2RM71U
MPQB&H)+0PZ /<.E*:LNJ2G1T;4F='8"6`-*RJFIFG5VW <3[J!,?=6M $'2[
MY5^[CB'T9=6NTU6N!\.4!K:M6;^.,F\J6RM1JRLCH[F<VNJZNCDB.H"MNOV:
M+(9\UMK75Y;J:FJKL6PDLY(:>*JI75]"E^D6W+P4R L6;G4EII-F6S [AACB
M8G6LK](Q=674//0C295 *2E$74T)9E]63NM(+9+"+:BL+%M74JFK*RN[G8+A
M>^F<ZJK*S2*FNLUUP*]A6I'R.BJ[MOIVH+EF?4T994'!\7$BOZR.J:3],B4T
ME%36`MK-,-(%)H$ `2O6([&E$(J53RWU%H6(8 T*&M13J:_R)'8`,VA )T/J
M?25RD<HF(BDEK"V[ P')*!U.MH:I$V6DQ$]F%M2->*3F>KVD3"ATFZF"JMNK
M8(0O$9BJHX(I*KJ*J:R<"7>JBF*H2OB;B2II_'C9^ GCX2>GQBN4XT<%>'_C
MO0!N'[ WP!T&=Q3<O\!]".XTN,_ ]8,;`B<[:**"P8T&-Q;<>'"3P$T!-PW<
MA[J92J5FY*;.L*3.L%$S-MP\H_3F&9NI&5FS=3.R=3-*X;:"RK)05 MEJ:XJ
M+=E,+6/*ZO!>5%9:)?J6V9E:XIE7NQYOMA*:J24>AJ2 A) *4R L B$,1E,+
M2ZJ8$E!$\\K6U!*/I:1VK9W* IZD$OR;J85,51E<*C=36<PZI Y2E8%B)1WY
M`[R^2RK)9]JMEGS6#HWDBQJ0IL(;?OGH>-&GV_?:1-&G?/W0Y/OC3;_]1TW,
M4W]YX['UIG_]X1W/ NLWM;]K.K.CM^'0_%<>>BKK_E,7'[OLW/KGO)RN7XS^
M$X6N5'+ PRJZ7)>J*Z^L+B&K#S75$")U^75$XV-7"=52M[:DZJ=!PJ\&<8/;
M(KG_J7SBB-G;L$TL8/^VX9)Z/-NV><CO:^GN\>!9:6T^F.$VX4W7+ZYQ] ]M
M;9E19\G.L>E$PPL9O+YJ/;T>3,.[D,M98+[5$ -%7&.!WGZV:%3!':H"[M0,
M).-&6HXSX+ V:TT5UG\E&E#K:DLV ,$#IE65;XT.?\LWF7SNZO4W,C_J-1M!
ME( 5&S; 6A^AWVOUZ3820^<G0/KF7$="UH 17#XBQ4
M^XU%Q-'*?]Z_BK.FN'X3 ML7Q%4N"K<RX-N9^-HY,<G&[0BY5M_C_],[_OT\
M;=/;(^>B6^__]VE:KTHS]=>F'RU3RJ__/4[U$1&G"OQ] %\%_JOGGZ-1=G#M
MC2[]K^"*WE!>]1\G6KN6KLT25T;$]2_(V?\9I!87:[R/A&&^5<+%,(;RQFRJ
M]/E*:\DRTJ92<WX^CG.0C.'HTKJUWX^&48BXP',52"YHM"P1Q%Y*7Q,$1KRX
M"V!D90Q'2QQ99EF]P+;:NBQ_)%,V7!7[??26?PLA+F8AVN&P[)(Z'\]$PN=D
M510? ZZUSEM.HTB,6.65,A(;&MR]I8F>NRRG<!ZVV\*LQ5O$AWSS,GB8>8U4
M_UDA_2'FK_'U(+-F9>?D;++C+'--./3JNBWDJL?=,;IM-V$_KR4KR+N3X!JP
M*1NNRH$,N 9'W(97O1VOB]?B5;L!KK)(&J]/W E710U:<?)^M#D5K0V()_H^
MO,;C5;</\Z(VX4XAW0[,438]!OU_)OF^D$0 <S#M$,$3O0W]R=M,/T_M_/S[
M^???_YTQ4;O!\<_^W*+^?_RE^8U&GY')*#P
M<'W W.!&RV54%+ T< O!+0=7#FX+N)W =H/[*[ V<,? G04W`$ZID%%:<#IP
MB>"RP2T!=RLX&MR]X!X$]V=P^\ =`?<AN'/ SN,'Y)4R*A+<;'"IX*S 5BE%
MNBO OA%<D_3\OY7N1?YS0P5U9;62E\R +"ZIH\7MI;A:O&D]F3G"62,2FY5C
ME69*"LMJ<:'7O"E+?,X1YUT6KZ\J\X:(BZ;+[+BTMZ#T!V=8Q'!<!B0V-T7E
MLI(:*<1&E]323,V"JO+J+&](J2]K\1E)1CJ+I)!EZ]?>+MK.4JFMF%SB)0[J
MEJW?(*:NK%Y34BDN $-&-$/HP-RS<$))\N.^:0SWVY--2F-A*NGUV9OILF75
M1>M+RW+L)5A!^27KZ\I\0SV$RZ<K"\ $O??8:U4U557EN70M9720% ,1^Y9
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
=%]"0RYE>&502P4&``````4`!0`8`0``FH !````
`
end
Mar 31 2002
Above is the one generated by C++ Builder 6, and VC++ .NET.
The only think I see is the offset calculation, Borland adds 4 to the
offset, while DMC adds 1, and mul it in the Mov. As far as I know, it should
result in the same speed...
But in fact Borland code is faster, 6168 ms against 7390 ms for DMC.
As VC++ .NET, it seems the loop has been unrolled... Maybe this is the
great advantage from 3374 ms...
Why DMC have not unrolled it?
C++ Builder 6
--------------------------------------------------------------------------
_DoSort proc near
14:
push ebp
mov ebp,esp
push ebx
push esi
15:
xor esi,esi
xor edx,edx
mov eax,dword ptr [ebp+8]
16:
mov ebx,dword ptr [eax+4]
mov ecx,dword ptr [eax]
cmp ebx,ecx
jge short 18
mov dword ptr [eax],ebx
mov dword ptr [eax+4],ecx
mov esi,1
18:
inc edx
add eax,4
cmp edx,10000
jl short 16
test esi,esi
jne short 15
21:
pop esi
pop ebx
pop ebp
ret
_DoSort endp
VC++ .NET
----------------------------------------------------------------------------
------------
DoSort 4 PROC NEAR ; COMDAT
push ebx
push esi
push edi
lea ebx, DWORD PTR [ecx+8]
$L1304:
xor ecx, ecx
mov eax, ebx
mov edi, 1000 ; 000003e8H
$L1307:
mov edx, DWORD PTR [eax-4]
mov esi, DWORD PTR [eax-8]
cmp esi, edx
jle SHORT $L1308
mov DWORD PTR [eax-8], edx
mov DWORD PTR [eax-4], esi
mov ecx, 1
$L1308:
mov edx, DWORD PTR [eax]
mov esi, DWORD PTR [eax-4]
cmp esi, edx
jle SHORT $L1332
mov DWORD PTR [eax-4], edx
mov DWORD PTR [eax], esi
mov ecx, 1
$L1332:
mov edx, DWORD PTR [eax+4]
mov esi, DWORD PTR [eax]
cmp esi, edx
jle SHORT $L1333
mov DWORD PTR [eax], edx
mov DWORD PTR [eax+4], esi
mov ecx, 1
$L1333:
mov edx, DWORD PTR [eax+8]
mov esi, DWORD PTR [eax+4]
cmp esi, edx
jle SHORT $L1334
mov DWORD PTR [eax+4], edx
mov DWORD PTR [eax+8], esi
mov ecx, 1
$L1334:
mov edx, DWORD PTR [eax+12]
mov esi, DWORD PTR [eax+8]
cmp esi, edx
jle SHORT $L1335
mov DWORD PTR [eax+8], edx
mov DWORD PTR [eax+12], esi
mov ecx, 1
$L1335:
mov edx, DWORD PTR [eax+16]
mov esi, DWORD PTR [eax+12]
cmp esi, edx
jle SHORT $L1336
mov DWORD PTR [eax+12], edx
mov DWORD PTR [eax+16], esi
mov ecx, 1
$L1336:
mov edx, DWORD PTR [eax+20]
mov esi, DWORD PTR [eax+16]
cmp esi, edx
jle SHORT $L1337
mov DWORD PTR [eax+16], edx
mov DWORD PTR [eax+20], esi
mov ecx, 1
$L1337:
mov edx, DWORD PTR [eax+24]
mov esi, DWORD PTR [eax+20]
cmp esi, edx
jle SHORT $L1338
mov DWORD PTR [eax+20], edx
mov DWORD PTR [eax+24], esi
mov ecx, 1
$L1338:
mov edx, DWORD PTR [eax+28]
mov esi, DWORD PTR [eax+24]
cmp esi, edx
jle SHORT $L1339
mov DWORD PTR [eax+24], edx
mov DWORD PTR [eax+28], esi
mov ecx, 1
$L1339:
mov edx, DWORD PTR [eax+32]
mov esi, DWORD PTR [eax+28]
cmp esi, edx
jle SHORT $L1340
mov DWORD PTR [eax+28], edx
mov DWORD PTR [eax+32], esi
mov ecx, 1
$L1340:
add eax, 40 ; 00000028H
dec edi
jne $L1307
test ecx, ecx
jne $L1304
pop edi
pop esi
pop ebx
ret 0
DoSort 4 ENDP
"Walter" <walter digitalmars.com> escribió en el mensaje
news:a87f9l$20q3$1 digitaldaemon.com...
I suppose it depends on what code is generated by the other compilers.
Here's what DMC generates for the critical loop:
_DoSort:
push EBX
mov EDX,8[ESP]
push ESI
push EDI
L97: xor EDI,EDI
xor EBX,EBX
L9B: mov ECX,[EBX*4][EDX]
mov EAX,4[EBX*4][EDX]
cmp ECX,EAX
jle LB4
mov [EBX*4][EDX],EAX
mov ESI,ECX
mov EDI,1
mov 4[EBX*4][EDX],ESI
LB4: inc EBX
cmp EBX,02710h
jb L9B
test EDI,EDI
jne L97
pop EDI
pop ESI
pop EBX
ret
"Javier Gutiérrez" <nikkho nospam.hotmail.com> wrote in message
news:a86p82$1m3o$1 digitaldaemon.com...
I have done a simple benchmark using a bubble sort algorithm with
diferent
compilers.
All the tests have been run in and AMD K7 at 1050 Mhz using Windows XP
Pro.
Here are my results:
COMPILER TIME SIZE COMMAND LINE
C++ Builder 6 6168 57.344 BCC32 -6 -O2 -O -a8 -d -r -k- -s -lOS Int.c
CoderWarrior 7.2 Pro 4647 36.864 Within the IDE
DigitalMars 8.27.5 7390 26.140 SC -6 -a8 -f -ff -mn -Nc -o Int.c
Visual C++ .NET 3374 36.864 CL /Ox /Og /Ob2 /Oi /Ot /Oy /GT /G6 /GA /D
"WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /GF /FD /ML /Zp16 /Gy /W4
/nologo /c /Zi /TP Int.c; LINK /OUT:"Int_VC.exe" /INCREMENTAL:NO /NOLOGO
/SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /OPT:WIN98 /MACHINE:IX86 Int.obj
Watcom C++ 11.0c beta 6209 39.424
WCL386 -oneatx -oh -oi -ei -em -zp16 -6 -fp6 -zw -d0 -bt=nt -l=nt Int.c
Why is DMC performing relativelly bad in speed terms? Have I set up
the
compiler switches correctly?
Great executable size achieved!
-
Int.c ----------------------------------------------------------------------
------------------
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define SORT_ITER 10
#define SORT_SIZE 10000
void TestSort (void);
void InitSort (int gaiTab[]);
void DoSort(int gaiTab[]);
void main (void)
{
TestSort();
}
void TestSort (void)
{
int i;
int *aiTab;
clock_t clkStart, clkStop;
printf("Testing Int -> Bubble sort ");
aiTab=(int *) malloc(SORT_SIZE*sizeof(int));
clkStart=clock();
for (i=SORT_ITER; i>=0; i--)
{
InitSort(aiTab);
DoSort(aiTab);
}
clkStop=clock();
printf("%d ms.\n", (((clkStop-clkStart)*1000)/CLK_TCK));
free(aiTab);
}
void InitSort (int paiTab[])
{
int iCont;
for (iCont=SORT_SIZE; iCont>=0; iCont--)
paiTab[iCont]=SORT_SIZE-iCont;
}
void DoSort (int paiTab[])
{
int Swap;
int Temp,I;
do
{
Swap = 0;
for (I = 0; I<SORT_SIZE; I++)
if (paiTab[I] > paiTab[I+1])
{
Temp = paiTab[I];
paiTab[I] = paiTab[I+1];
paiTab[I+1] = Temp;
Swap = 1;
}
}
while (Swap);
}
Mar 31 2002
Hi,
From my testing I doubt the speed difference is in the code generated in
DoSort() :
When I compiled with the following 2 fixes:
in DoSort() loop should be :
for (I = 0; I<(SORT_SIZE-1); I++) // I=0..I<SORT_SIZE produces
incorrect
results and reads and writes unallocated memory which could introduce unknown
delays
and in TestSort() loop should be :
for (i=SORT_ITER; i>0; i--) // strictly should be i>0 to generate
SORT_ITER
loops rather than SORT_ITER+1
I get the following results for my system : Athlon 1.33 / Win98 SE (yuk!) / DMC
8.25
With the code as is (fixed) I get approx. 5500ms ()
If I manually unroll the i loop in TestSort() the appropriate 10 time I
consistently
get execution times of only 4000ms !!!
Note that DoSort() and InitSort() have 100% identical code in this case
(according to
obj2asm).
So the unrolled code is noticably more efficient, so it looks like the
identical and
apparently efficent code in DoSort() is being stuffed up by something else.
Perhaps my
Athlons instruction translation techniques are doing something very different
due to
the context (remember it's NOT really an x86 processor - it is really a risc86
faking
it), perhaps it's caches are messed up by the CS or SP alignment ?? It certainly
doesn't look like the low speed is the compiler generating poor code, as the
same code
generates 2 very different speeds in only subtly different contexts.
Unfortunately, these days if you do a one task computational benchmark you are
more
likely to discover some subtle feature of your processor, not of your compiler.
JohnC
PS To clarify things : I love AMD products (well processors and chipsets)
======= int.c (revised, and with brutal UNROLL option - see #define UNROLL ...
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define SORT_ITER 10
#define SORT_SIZE 10000
void TestSort (void);
void InitSort (int gaiTab[]);
void DoSort(int gaiTab[]);
// #define UNROLL 1
void main (void)
{
TestSort();
}
void TestSort (void)
{
int i;
int *aiTab;
clock_t clkStart, clkStop;
printf("Testing Int -> Bubble sort ");
aiTab=(int *) malloc(SORT_SIZE*sizeof(int));
clkStart=clock();
#ifndef UNROLL
for (i=SORT_ITER; i>0; i--) // strictly should be i>0
#endif
{
InitSort(aiTab);
DoSort(aiTab);
#ifdef UNROLL
InitSort(aiTab);
DoSort(aiTab);
InitSort(aiTab);
DoSort(aiTab);
InitSort(aiTab);
DoSort(aiTab);
InitSort(aiTab);
DoSort(aiTab);
InitSort(aiTab);
DoSort(aiTab);
InitSort(aiTab);
DoSort(aiTab);
InitSort(aiTab);
DoSort(aiTab);
InitSort(aiTab);
DoSort(aiTab);
InitSort(aiTab);
DoSort(aiTab);
#endif
}
clkStop=clock();
printf("%d ms.\n", (((clkStop-clkStart)*1000)/CLK_TCK));
free(aiTab);
}
void InitSort (int paiTab[])
{
int iCont;
for (iCont=SORT_SIZE; iCont>=0; iCont--)
paiTab[iCont]=SORT_SIZE-iCont;
}
void DoSort (int paiTab[])
{
int Swap;
int Temp,I;
do
{
Swap = 0;
for (I = 0; I<(SORT_SIZE-1); I++) // I=0..I<SORT_SIZE produces incorrect
results
and reads and writes unallocated memory
if (paiTab[I] > paiTab[I+1])
{
Temp = paiTab[I];
paiTab[I] = paiTab[I+1];
paiTab[I+1] = Temp;
Swap = 1;
}
}
while (Swap);
}
=======
"Javier Gutiérrez" <nikkho nospam.hotmail.com> wrote in message
news:a882ek$2atl$1 digitaldaemon.com...
Above is the one generated by C++ Builder 6, and VC++ .NET.
The only think I see is the offset calculation, Borland adds 4 to the
offset, while DMC adds 1, and mul it in the Mov. As far as I know, it should
result in the same speed...
But in fact Borland code is faster, 6168 ms against 7390 ms for DMC.
As VC++ .NET, it seems the loop has been unrolled... Maybe this is the
great advantage from 3374 ms...
Why DMC have not unrolled it?
C++ Builder 6
--------------------------------------------------------------------------
Mar 30 2002
Hmm. The cpu specs advertise that complex addressing modes don't add extra time. Perhaps this is not true. -Walter "John Culver" <jculver btinternet.spamless.com> wrote in message news:a8844q$2c0c$1 digitaldaemon.com...Hi, From my testing I doubt the speed difference is in the code generatedin DoSort() :When I compiled with the following 2 fixes: in DoSort() loop should be : for (I = 0; I<(SORT_SIZE-1); I++) // I=0..I<SORT_SIZE producesincorrectresults and reads and writes unallocated memory which could introduceunknown delaysand in TestSort() loop should be : for (i=SORT_ITER; i>0; i--) // strictly should be i>0 to generateSORT_ITERloops rather than SORT_ITER+1 I get the following results for my system : Athlon 1.33 / Win98 SE (yuk!)/ DMC 8.25With the code as is (fixed) I get approx. 5500ms () If I manually unroll the i loop in TestSort() the appropriate 10 time Iconsistentlyget execution times of only 4000ms !!! Note that DoSort() and InitSort() have 100% identical code in this case(according toobj2asm). So the unrolled code is noticably more efficient, so it looks like theidentical andapparently efficent code in DoSort() is being stuffed up by somethingelse. Perhaps myAthlons instruction translation techniques are doing something verydifferent due tothe context (remember it's NOT really an x86 processor - it is really arisc86 fakingit), perhaps it's caches are messed up by the CS or SP alignment ?? Itcertainlydoesn't look like the low speed is the compiler generating poor code, asthe same codegenerates 2 very different speeds in only subtly different contexts. Unfortunately, these days if you do a one task computational benchmark youare morelikely to discover some subtle feature of your processor, not of yourcompiler.JohnC PS To clarify things : I love AMD products (well processors and chipsets) ======= int.c (revised, and with brutal UNROLL option - see #define UNROLL...#include <stdio.h> #include <stdlib.h> #include <time.h> #define SORT_ITER 10 #define SORT_SIZE 10000 void TestSort (void); void InitSort (int gaiTab[]); void DoSort(int gaiTab[]); // #define UNROLL 1 void main (void) { TestSort(); } void TestSort (void) { int i; int *aiTab; clock_t clkStart, clkStop; printf("Testing Int -> Bubble sort "); aiTab=(int *) malloc(SORT_SIZE*sizeof(int)); clkStart=clock(); #ifndef UNROLL for (i=SORT_ITER; i>0; i--) // strictly should be i>0 #endif { InitSort(aiTab); DoSort(aiTab); #ifdef UNROLL InitSort(aiTab); DoSort(aiTab); InitSort(aiTab); DoSort(aiTab); InitSort(aiTab); DoSort(aiTab); InitSort(aiTab); DoSort(aiTab); InitSort(aiTab); DoSort(aiTab); InitSort(aiTab); DoSort(aiTab); InitSort(aiTab); DoSort(aiTab); InitSort(aiTab); DoSort(aiTab); InitSort(aiTab); DoSort(aiTab); #endif } clkStop=clock(); printf("%d ms.\n", (((clkStop-clkStart)*1000)/CLK_TCK)); free(aiTab); } void InitSort (int paiTab[]) { int iCont; for (iCont=SORT_SIZE; iCont>=0; iCont--) paiTab[iCont]=SORT_SIZE-iCont; } void DoSort (int paiTab[]) { int Swap; int Temp,I; do { Swap = 0; for (I = 0; I<(SORT_SIZE-1); I++) // I=0..I<SORT_SIZE producesincorrect resultsand reads and writes unallocated memory if (paiTab[I] > paiTab[I+1]) { Temp = paiTab[I]; paiTab[I] = paiTab[I+1]; paiTab[I+1] = Temp; Swap = 1; } } while (Swap); } ======= "Javier Gutiérrez" <nikkho nospam.hotmail.com> wrote in message news:a882ek$2atl$1 digitaldaemon.com...theAbove is the one generated by C++ Builder 6, and VC++ .NET. The only think I see is the offset calculation, Borland adds 4 toshouldoffset, while DMC adds 1, and mul it in the Mov. As far as I know, ittheresult in the same speed... But in fact Borland code is faster, 6168 ms against 7390 ms for DMC. As VC++ .NET, it seems the loop has been unrolled... Maybe this isgreat advantage from 3374 ms... Why DMC have not unrolled it? C++ Builder 6--------------------------------------------------------------------------
Apr 01 2002
Watcom code:
It seems very similar to Borland one...
DoSort_:
push ebx
push ecx
push edx
push esi
push ebp
mov esi,eax
mov ebp,00000001H
lea ebx,9c40H[esi]
L$3:
mov eax,esi
xor ecx,ecx
L$4:
mov edx,dword ptr [eax]
cmp edx,dword ptr 4H[eax]
jg L$6
L$5:
add eax,00000004H
cmp eax,ebx
jne L$4
test ecx,ecx
jne L$3
pop ebp
pop esi
pop edx
pop ecx
pop ebx
ret
"Walter" <walter digitalmars.com> escribió en el mensaje
news:a87f9l$20q3$1 digitaldaemon.com...
I suppose it depends on what code is generated by the other compilers.
Here's what DMC generates for the critical loop:
_DoSort:
push EBX
mov EDX,8[ESP]
push ESI
push EDI
L97: xor EDI,EDI
xor EBX,EBX
L9B: mov ECX,[EBX*4][EDX]
mov EAX,4[EBX*4][EDX]
cmp ECX,EAX
jle LB4
mov [EBX*4][EDX],EAX
mov ESI,ECX
mov EDI,1
mov 4[EBX*4][EDX],ESI
LB4: inc EBX
cmp EBX,02710h
jb L9B
test EDI,EDI
jne L97
pop EDI
pop ESI
pop EBX
ret
"Javier Gutiérrez" <nikkho nospam.hotmail.com> wrote in message
news:a86p82$1m3o$1 digitaldaemon.com...
I have done a simple benchmark using a bubble sort algorithm with
diferent
compilers.
All the tests have been run in and AMD K7 at 1050 Mhz using Windows XP
Pro.
Here are my results:
COMPILER TIME SIZE COMMAND LINE
C++ Builder 6 6168 57.344 BCC32 -6 -O2 -O -a8 -d -r -k- -s -lOS Int.c
CoderWarrior 7.2 Pro 4647 36.864 Within the IDE
DigitalMars 8.27.5 7390 26.140 SC -6 -a8 -f -ff -mn -Nc -o Int.c
Visual C++ .NET 3374 36.864 CL /Ox /Og /Ob2 /Oi /Ot /Oy /GT /G6 /GA /D
"WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /GF /FD /ML /Zp16 /Gy /W4
/nologo /c /Zi /TP Int.c; LINK /OUT:"Int_VC.exe" /INCREMENTAL:NO /NOLOGO
/SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /OPT:WIN98 /MACHINE:IX86 Int.obj
Watcom C++ 11.0c beta 6209 39.424
WCL386 -oneatx -oh -oi -ei -em -zp16 -6 -fp6 -zw -d0 -bt=nt -l=nt Int.c
Why is DMC performing relativelly bad in speed terms? Have I set up
the
compiler switches correctly?
Great executable size achieved!
-
Int.c ----------------------------------------------------------------------
------------------
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define SORT_ITER 10
#define SORT_SIZE 10000
void TestSort (void);
void InitSort (int gaiTab[]);
void DoSort(int gaiTab[]);
void main (void)
{
TestSort();
}
void TestSort (void)
{
int i;
int *aiTab;
clock_t clkStart, clkStop;
printf("Testing Int -> Bubble sort ");
aiTab=(int *) malloc(SORT_SIZE*sizeof(int));
clkStart=clock();
for (i=SORT_ITER; i>=0; i--)
{
InitSort(aiTab);
DoSort(aiTab);
}
clkStop=clock();
printf("%d ms.\n", (((clkStop-clkStart)*1000)/CLK_TCK));
free(aiTab);
}
void InitSort (int paiTab[])
{
int iCont;
for (iCont=SORT_SIZE; iCont>=0; iCont--)
paiTab[iCont]=SORT_SIZE-iCont;
}
void DoSort (int paiTab[])
{
int Swap;
int Temp,I;
do
{
Swap = 0;
for (I = 0; I<SORT_SIZE; I++)
if (paiTab[I] > paiTab[I+1])
{
Temp = paiTab[I];
paiTab[I] = paiTab[I+1];
paiTab[I+1] = Temp;
Swap = 1;
}
}
while (Swap);
}
Mar 31 2002









"Javier Gutiérrez" <nikkho nospam.hotmail.com> 