RE: Crypt framework for PEAR
| From: | Tim Thorpe | Date: | Sun, 23 Feb 2003 00:29:00 +0000 |
| Subject: | RE: Crypt framework for PEAR | ||
| References: | 1 | Groups: | php.pear.dev |
| Request: | Send a blank email to pear-dev+get-13626@lists.php.net to get a copy of this message | ||
Hey everybody.
Sorry for the delay, I had to pretty much rewrite the entire class from
scratch, and documentation is still pretty sparse. Check out the
comments in crypt.php for sample usage. Hopefully this will be enough
of a sample for people to start using. As usual, comments suggestions
etc are requested.
Enjoy!
Tim
-----Original Message-----
From: Michael Bretterklieber [mailto:mbretter@jawa.at]
Sent: Saturday, February 22, 2003 12:10 PM
To: Tim Thorpe; Christian Dickmann
Subject: Re: Crypt framework for PEAR
Hi,
no problem.
after we reviewed it and if there are no big problems, IMO we should add
it to CVS, Christian should make all changes he needs for his RSA
implementation. I would like to add some things I need for my Crypt_CHAP
package.
and If you we all three are happy with them, then we can release the
package.
Does everybody aggree, or are there any other suggestions about the next
steps?
I think this will be an important package for PEAR and also a good
example how many developers can synchronize their work for a better
package.
bye,
Tim Thorpe wrote:
> Having trouble with my PEAR install. Will have it for you early
> tomorrow.
>
> -----Original Message-----
> From: Michael Bretterklieber [mailto:mbretter@jawa.at]
> Sent: Thursday, February 20, 2003 1:10 PM
> To: Tim Thorpe
> Subject: Crypt framework for PEAR
>
>
--
------------------------------- -------------------------------------
Michael Bretterklieber - Michael.Bretterklieber@jawa.at
JAWA Management Software GmbH - http://www.jawa.at
Liebenauer Hauptstr. 200 -------------- privat ---------------
A-8041 GRAZ GSM: ++43-(0)676-93 96 698
Tel: ++43-(0)316-403274-12 E-mail: michael@bretterklieber.com
Fax: ++43-(0)316-403274-10 http://www.bretterklieber.com
------------------------------- -------------------------------------
"...the number of UNIX installations has grown to 10, with more
expected..." - Dennis Ritchie and Ken Thompson, June 1972
begin 666 pear_crypt.zip
M4$L#!!0`
@((&[52[E)1RV9
()<%`+```<&%C:V%G92YX;6R55$UO
M&D$,O>=7N'MG%XA2I=*PJ4216JE1D,(EIVAVUPMNYF,U,TN;?U_/P!)(J4H/
M@,=^MM\\>Q!WO[2"+3I/ULRR23[.`$UM&S+K6?;M\6%T>WOS:33)X*Z\$A^^
M/,Q73\L%=+)^D6N$QZ?'U>(>LCPO]JZ\"4W&T %Q*#W./[(?A)$:R[E[[<)S
M^A9%\G#$]UI+]UHN3!T#G 4_G>PZ=% KZ;TH!@2#&_2UHX3B(]S;IE?2G29
M:UV\S5 M;&2 SMDM<39(Z VUA V0">A:62,$RR"$WJ/+`98#--:1?;!:!JHY
M&B]F6S!\W"*D^A;:WM2QC0=J06XE*5DIS)EK<4I6**K1>"R77Y?P?6>+8G!R
M7$MFQ!^6+M[MZ!R/("*]4LL?].(WV+:B2(X42EJN2,-J8UV'!W$YA%Q&E97J
M_8;:\-E@(.-S_A'%+I10SBHL%<I&%,F,_8L3`L='YL<.AYS@=]C]O$L>MRB&
M0PPT,F Y'8^O1^/I:#IA4:(C1GR(5H5!\H3#X#4V8+H^7X58TSBPCCN1)L,[
M`/NF<60MH@+;!P;YGL=%)DWQ;:S2-*#CAB#XX/HZ] YYOG/;8"P\3$XJJ+@*
M=P;.=%0I;F.KW@?@Q0F11F>Y:IY$.1 4+2GFY<-.P88<1-5G69%!Q119YB"5
M8O\L2RN?)> N#Z+*LZS;=%F9%BEG4Q0QM$>]U3M./O%3MV&EA\B?A:5_U1J#
MH_I]];,LZNOI!3A>ZDM0M$8?+@8^>ZD[?C7_QNNS:IT#-C<7H/Y'H0/V;VQY
MN<GMQW<P#]8.NE\8?F;#ZQ'#?VAY]1M02P,$% "@V[M5+F#Z8W[S!0``
M#P\``D`!C<GEP="YP:'#%5VUO$T<0_NY?,461; ?'#B$%X9
C2*:JJ0(
M:/O%DK5W-\XMN;L]=O=LK(;_WF?VUHZ=0D$45$NQ[W9W7O>99R:/G[S\^65G
MM$MS78[)L2=^7ZLJ\RHA_#EOZN-#<KF>^87.?'Y\.*;=46<THKM[W^1S5W1=
M$[R@/]@Z;2HZI*_\7'][OTY-O;3Z,O?42_MT[]&CAWL'^_OWZ4W.P>?GUC3U
M_^#7FUP[<J:Q*=-,%TSRVB1O.?7D#<UC*@^&^V1FY*.WA4ZY<CS8].L:N\J+
M?-)46<$9+;3/L8B56J57ZA+*JZ B&/KU_/3LXO79@( 2D=K6I>9*%RK!.>CT
M.;)SF0?9A;%%M@<,\=Z"$]G]3+ZN*?>^'H]&B\5B6.?UL&(_B@&,#J;[!T/_
MW@^_#!/7=#ZCI6DHTQE5QI/EE/4<3E**"_Y(BD)TRC(U58@&.5WK,HE7R(C^
MMP`'5!>LH,>Q*!*C4<FV7]'<TQ@@KI063*FJJ$0B@\_11UV6G&GEN5@.OS^^
MGC4^-W9,;W0)K!E;,SU.BB80P5,XJBLG_IY\2>Y?UYQJ5="I10!^_!]J^QH/
M+W2:*R[H)\O>L[TJ-"=LZ7'9KC]-MM:'J2E/OG<]BKJ=\VPG/C[GBJU.J319
M4RA+::&<HYFQQ%5JE[5'98XR?<G.TZRI4GE7A?;+#HAXM[-+9QO'>/5("ZOJ
M&I%N*UIK<!"<:0N=:<[IE:,R' G'57%I+*JZ' A4*QJ.3F5O=*KK'$PQ$E$Y
M5H']/? H>ENO6VXH`>:2*^\"TM?:AI!#8:$09KK*0" F$ >W;!'MARP(A<"2
MAH:9-27DMA3%0\!UX+6%6E+:H/=@@X%#J):*2!ARM67'=BXTE0L=>76EJTM2
MV5Q57K@JUK*K&6?PTKH!5R'\N\.)<7C<N>(E'=.=<DEXNG,D2WHN*Y/]R;W)
MP>3^Y'#RX^3!Y&'8L_RNT9:GIDJYUVU5HF:[_:..2&;L(!J2.AZ'GUX7:[*-
MW5HA2K$FY_9.VM>>>- _(@"F#5H7!<+$E[A_<P]@&DB),9 (6$' C=B5%\W!
M$;/6'&'1ZR*JDIU$VQVL[ ^HRVDB[WK>VCU?94=XO# J0\:T[\*%!,3G\":H
M@#N.@V=NT,8:9+"[,AM7>M&=3UDDL0F(L%UH:%Q%%0+/3 C[K4E@@M/<;-@Y
MD@O#\JJI[;SBN9:G,>T/'] .MIZJ-$6\5#<)&%465JTK7$8X$1CMLX0F1]-
M5%_#-!W,1IVV<H)A^JLCA"-E+;^[F"<JYVV3>F/;E;A^@::D4M\@R\O ^.MC
M;?/54@+2N963>L.K*E F+MP+K@)3&P+7OEA&A0%399A<X&VUT<0;WU@H2AI/
MYVA/++"RZ%7")6+.MZT;!6RDYH=;?OX9^$ ::/ 4-L050@V&8ILI<7FY21Y(
M4F,K.01$S9H"[5.FE*@O40(S8;>HN&62T%Z!29U8( G%)>UX$>>4%5(K(!\M
M.SHX"C\K-FS3#T0&ANN'O?8NY!.7`6!O==E#JKTIS(+M6D#J>GU:YIX+53+.
M=[>)LTO#M;(A=0,E'&V8D31L24XW)&X.ZAGUQ,B4WVOG76]ML=_?\%H^6SQT
M<^Q&U8<;OU?,DG$9X(39P5%N%C*'K"E=2+^]$3(HL$(M!YL*7O.*R$.M1CY
M[BMA(6.%?)W<O(Y ^8>3MS)6;G'G.E.1AR*'3E^$U]]:A]:7LITP[::MX[TH
M_9%D"?36VY]*$FAPP5U,@R5P%<8Z$\=?`XP-A!*EW$J#WNK4+,QQN-<&UQH0
M'@>VUMJF8M0QAD"A<.<5<K'J31$P;9$ZN\:C (+?K?+VA[5$GK@A%T`)1J
M:P1RFZIUE1:-5$&K9$T=( X93CF[J;?V1,:H+!VLW,)G:%V7[*<@7(PKG$WC
M<N]6PG_H*6O5<NI8V33?KIH5T/N#M=8^'1\?@Q$*QY^ZF8H7&T6R>4'$$+LE
MA+ O8F;J0J4RO;\\>_8*,0/,&NV?V%H`%'2'_V/PRTB>(#;F6W@#_N@"21UN
M8*']_M!Y<M+Y&U!+P0*````"CL5$N``````````````!@``$-R>7!T
M+U!+P0*````"XLU4N``````````````#@``$-R>7!T+T-I<&AE<G,O
M4$L#!!0`@(.B[52[COZ*)/@X$%!`5```0W)Y<'0O0VEP:&5R<R]D
M97,N<&AP[9M];QLW$L;_]Z?@!0)J)XJ])/=->6O:-.@5URN")CC@D.:,?:&B
MK65))ZWL&)=\]WN&.]RE9-G:]-H>KF>W6\AK_H;DS.PS)%=]\N6K/[\Z.+DO
M+JKS1V)E:F$^++)966>YP+6JYXNGH5A-JG%]697UY&GX2-P_.3@Y$0\>_BH_
M#\C61X%1B+^9Y:J:ST0H?N'/QU]_7"_FBZME]7Y2B\/B2,C1*'FH@D"+-Q-C
MQ_SM<KY>_!?&]692K<1JOEX61HRKJ1'TZSK_V12UJ.?B@EVIC@,Q'XN:1SNM
M"C-;F:$_KH_X:U83GZ]GY=24XK*J)[B).XNL.,O>P_C,FK =??_=BY<_O'XY
M%,@2HC9M91=9-<URM(/->@+OO)]8]G*^G)8/D4/FX:7)Z:][_/513.IZ\>CD
MY/+R\G@Q61S/3'W"$SA1IX$ZKC_4Q_URXJ/X;BRNYFM15J68S6NQ-(6I+C!(
M42# .UQD9Y<MC5C/[&S@T];6/*\S>*2Z;8)#L9B:#'96A@Q1IVQD<US<W7.>
M($(J+HTHLIDXAR/MF'F,U?FY*:NL-M.KX]\^O[Y:UY/Y\I%X4YTCU^;+A1%/
M\NG:"L%S#+2:K6B\S_KX_O7"%%4V%2^6F$#]Z#]XMC_BPU^K8I*9J?AZ:>K:
M+,^FE<G-4CPY;^X_SS?N'Q?S\V>_]?-(Y@;?E0/^^*V9F655B/-YN9YF2U%,
ML]5*C.=+86;%\FI1X\D\*:OW9E6+\7I6T._9M*JO#B#$]P_NMT_OX$=S4=&G
M1R(XCL4`?WJ>%86!M<4Z1^K0#?>,OB#+MH4-W=[('4#&#Y;FG^MJ:4[GL\(<
M?F%-G+RH%A,,X&1UA8RK,1%Z^KXX>GQPT$S$MCK]YN5KE(H:V>WNO';M#_YU
M0%Z^P-0'IV?FZK'W*S3J+^9J!6-TS\W>.>9P4&9U-A0#4/@O' BM&E071[9U
M8Y9^Z._BJ5C5R]-%5A["*#X>-E0P%.D1KJ$H)LO#X$,0'!T];LEJ+ [_=#@@
M=7OX[-2:>6K-'1UY]FT?W.8\.S.OFU';'CQC?K-F1(-VNO3SJ1MP=;%CO-7%
MON$BE]?+63O>?#HOSEYN^:KU$EEB]M.6?TMSY]^^_OW&?+Y_%]D2SR]ZG"W6
M];8W5W560PX&L_DKVTQ@J/=^PDAP25P*E\85XHIPQ;@27"FN$:X,5XZKP%7B
M,KC&/WV0X"5X"5Z"E^ E> E>@I?@)7@)7H*7X"5X"5Z"5^ 5>
5>@5?@%7@%
M7H%7X!5X!5Z!5^ 5> 5>@=?@-7@-7H/7X#5X#5Z#U^ U> U>@]?@-7@-7H,/
MP8?@0_ A^!!\"#X$'X(/P8?@0_ A^!!\"#X$'X*/P$?@(_ 1^ A\!#X"'X&/
MP$?@(_ 1^ A\!#X"'X&/P<?@8_ Q^!A\##X&'X./P<?@8_ Q^!A\##X&'X-/
MP"?@$_ )^ 1\CX!GX!/P"?@$_ )^ 1\CX!GX!/P:?@4_ I^!1\"CX%GX)/
MP:?@4_ I^!1\"CX%GX(?@1^!'X$?@1^!'X$?@1^!'X$?@1^!'X$?@1^!'X$?
M@<_ 9^ S\!GX#'P&/@.?@<_ 9^
S\!GX#'P&/@.?@<_!Y^!S\#GX''P./@>?
M@\_!Y^!S\#GX''P./@>?@R_ %^ +\ 7XGP!O@!?@"_ %^ +\ 7XGP!O@!?
M@"_!E^!+\"7X$GP)O@1?@B_!E^!+\"7X$GP)O@1?@C?@#7@#WH WX UX`]Z
M-^ -> />@#?@#7@#WH ?@Q^#'X,?@Q^#'X,?@Q^#'X,?@Q^#'X,?@Q^#'X,?
MC^\]OJ8/\[)D@6CT07KZH%@?0M8&IP\I:T/.VN#TP; ^!*P-FK7!Z4/,VN#T
M(6-]*!IM:/4A8&W0K U.'V+6!J</&>M#T6B#U0?IZ8-B?0A9&YP^I*P-.6N#
MTP?#^A"P-FC6!J</,6N#TX>,]:%HM,'J@_3T0;$^A*P-3A]2UH:<M<'I@V%M
M</J@6!]"U@:G#REK0\[:X/3!L#X$K V:M<'I0\S:X/0A8WTH&FUH]2%@;="L
M#4X?8M8&IP\9ZT/1:(/5!^GI@V)]"%D;G#ZDK TY:X/3!\/:X/1!L3Z$K U.
M'U+6AIRUP>F#87T(6!LT:X/3AYBUP>E#QOI0--I@]4%Z^J!8'T+6!J</*6M#
MSMK@],&P/@2L#9JUP>E#S-K@]"%C?2@:;6CU(6!MT*P-3A]BU@:G#QGK0]%H
M@]4'Z>F#8GT(61N</J2L#3EK@],'<^_:(@5+&KNHH27&L%M-##WAN&EY<LKK
MZZ]I?7/#*J6Y2VLLMQBJZM6;^==7M5DYY+IF58O3VFZ0GV*WO,RN#B.LM"(L
MND(U%#H<"A4/A<0]B7M"#0_V;O1B-(P`AX U8 58X9[$/1'V,8"&$> 0L :L
M2O<D[@GXCX&T# "' (.6O "O<D[F$AN=] E `<X9* ->
(,.X)W!.RCP$T
MC "'@#5@!5CBGL0]H?M,`0TCP"%@#5@!5K@G<4]$?0R@800X!*P!:\ *]R3N
MB>2(]V^;F2"W4H%\1PMO\B/YCGQ*?B3_ZCZI8'L623,*ZIE&1*.@T6G9RT)J
M@VZ3@1* $H.2@9($B=''0F)=9EU)[B.WDBO)Q7!K'PNQS5R;T93%E-V4T93I
M*NUE(;)QM_E .4"Y0?E >8+<Z&,AM(^??2SI4:1'E!Y+>EQ5W,N"MLEKDYH2
MF1*<DIJ2745^1HSG2Y,5$W'8J4.V$@/HR;4]8+40QT]9>MY2"_%0R'<[=WC3
MM\$[VN.YO=W"[NVT\D1IL+S>9J,!G<&0EI7F`YK)QX(_/\$OL?OMP8-KPYR^
M;?Y$QM$)4YM#Y0%X#:=^0_&/5ECK939;82CGAYNVAFT+/B5QQHY\A^QTL]SC
MYV(^*[*Z&;V,WXEC&AT^; V_L$<_MDK8N#38[8%IJI/H]M!4,% W4#T.?8,W
MUB8^F[BK37>UZ:XVW=6FN]KTOU&;9((_["I0?[3ZQ ?49^T!]>[#\IVE:?,\
MV\G1HI!=3;I9CV]/?-D\(#OJV:T<U[I=,GX[UTG\=AD\^(5B??O\DN%-U?+V
M<3:5=%>5N97S*M!66=]54!:%:B-(/5+$R#M40B@R>^N8;GJQ)2OF^K='\JW7
M1NUBPT9[7\FWRX*D*=)V1GK_2H<RD:)+D=)<X*(]\Z'(4$FU&14UF1SN&1ME
M#V4^90657\K@:,\"@C*!LIVRWB[ 1JRBUR)DWW>NNB -*2Q4W/;6$S5L_]W7
M5/9OVEJ5FYK/$DF2<),X-EH'*=E3A5SM"+RJ4WBBW[[&L]5)I7YU*G>WVVBT
MGM'W@W!_YPS8X32)Q7Q5D7:NKM?4IHAMR[I?F5A&EW,$TGQOQM1CL56*N@ZV
M+)7[+)4]+'W:KLFN'G>U^'H=]D.I;@KE5JVC:=E:1Z/:JG5-Y)L&MU:ZS1%[
MZ;!9K^W+TQLJG'WM^6)>FNYTD5YZND)WMPV[VX;=;</NMF'_%]LP^@*+53_Z
MXLJ+'__^Z@U]U0F7_;Q#]7_)INVS-FZ_X^9MJY8(,UV9&QSR\H=?VR&?[93?
MY\1UN[[^X?:WGG.Z;X?=]!TFLR7@5/CLAD<U\D,BUJMZ-.VL\))\4Q$0?:2R
M:6<%BF2.Q%+V*'?<S@H\E0DJ-K*'+'*[9GTR:D19]2@KW,X6$BI'5-14#[]P
M.[LFLINVM%\)X79V)6,W;C8N.S=&;>RZ[2M%0^HNDM9#DJ.B>646\P(KXE5*
M8".W/V*!6Q)P/UQF7'^^;<F%0W QZ[64XBVWM9NRW9C[D#P7Q783;SZ1G</^
M#'!\RED>MJNTQE[4'8S8[ K8-S0G?71;!QR B(VE[0*T-=AVEG1.LX/A"<@^
MZQ/-3@D;.[8_U?77VO."(=Q*,NH98&?;V? 3*N*^5&=;Z#;1]@= ,\]C%&Z-
M&79!=C*RX1OKNSX!<!$;=0%H.^'@M([G2;K.^V2HG4#2]=$&-F[W/$UV15U
M7.;VV0NT&>^2Q1TLZ:9/.U[W9*LV<5S0]@>8@RIUE]FNG_:I=@[7;>)P?ST"
M8)VJ.P-^)VW4?2?)[A3LLS)(=D5'1MR/]V2T#I*>@WJ(K__4B,"3,C>OR,O<
ML'..G4_8\PF./%D)NJ1T!=$5U-8W;CYAGP"HSJ%.UUR%%7'G>#<0EPF]'12R
M+;^?9$LBN$Y(%Q2787'/&N "YV=KXCT-(Z]^Q=[3T2,`KA:VCI5;=<Q/J%$G
M@8W/^DB0GW6NP"K/^6Y"VBNB7?'IE:&^9K9:.?(<(KVG,/!J4)\B/.J65GYV
M2[<L=/(7;F8O)UB_`&LO@7C<+F&D"X@KRC'WE_8LPL+/T-"+9MHY?F,5$7G%
MLJ]&!YTL^*N(5FKX]8/MAU=AO9\`KDG2KU7L>+<J<2\;7$*)+M%ZG/9TMBTO
MO6 F7B(%7BU0SF]]G@"]H8GM(^6*E_2*9ZNA-I/49U2Q:+BYG-!>!?.TP7;:
MZ5L_#_DK`]GI3>L)3[P;W:.#MW9YM-^^\G0G\;R?=D6FS="@RZ9F/D<[WV)M
M;>;:MT5]-SD\1?LFZS-"8#=$?9(Z:C9>6O9<Z7+^J+"?K-M3VZ0M-_L?XE'C
M:AWT>RB5ZE)B\_R+(R &LZL<$>CV9/=^"II_[@V%^RS;S]*[+^G^?I?<:[ 6
ME)Y!Z1F4_0U*;X32&Z'T1B@_9X32&Z'T1BB]$4H>X>Y31+/G_,78XQ0ZWMAS
MA&C.Z)#&T-G1QO]JUKT)"IHW02+=_1YH,!^/Z349'5F*^R+>.N%9?5662_H?
M.)^*^;+$P,_>,O'N",V##RH0#W;Z;*NY>( I-$B0]D:40\+>B':(ZHV$0/JV
MC=B\#+8]]:-9K:>U#1P_)6\'=$#W[FWKQ7?O;O_BR;ZSY>9HF7OJ><RV:,_1
M/AU\^>S@WU!+P04("
#KNU4N9@84FU$"`!W!@& ``$-R>7!T+T-I
M<&AE<G,O9&EG97-T+G!H<,5444_;,!!^SZ^XATC0TB9=AS;10>G6(8:T36B@
MO2+'N3;>G#BR+PW5RG_?V02T2M- &VB6(CGGN\_??;Z[P^/S#^=1VH>5*B?@
MD "O:U'E)#+@SY&IC_;!%6I!K<JI.-J?0#^-TA3VAD^R]CS6!I@%?$7KE*E@
M'_YR;9Z>U]S4:ZN6!<&N[,&+@X/7P_%H]!(N"PR<3ZUIZO_ Z[)0#IQIK$18
M*(W@?YOL&TH",K#JI!PG(S +H(ZM5A(KAX-?>6WX5)"/SYHJUYA#JZA@(UMJ
M(;^+)8-72)<]/%L?O+YXF07"4^:AM+K(32(F,_QJ2"U5D6(;8U5N=#KB$<
MMICYTP?TVD!!5$_2M&W;I"[JI$)*NP32\=5HG- U)8^KB0V<+6!M&LA5#I4A
ML"A1K9@D2'[@WT@4LA,6H:E"-JSI/9;)2+ BZD\)#J#6*!C'H0?REW8@V[RZ
MZV9=@ORDT")(44')0@;.'4=5EI@K0:C7R?/7U]N&"F,G<*E*KC5C:X3#3#=A
M$,R8J*J<YSM]C/87-4HE-,PM)T"3?^CM#6\^*5D(U/#.(A':[UIAAA8.RUO[
M+-NR)]*4T^?N1P\7G^5QMSW%"JV24)J\T<*"U,(Y6!@+6$F[KHD[,\W5$AW!
MHJFD_Q=:T3KB0=R/^O?=&W_!E?*["8R25Q#ST4Q(B8Q6-QF7CC?<]>C<(P>/
M\'0/OES$8SRZI19"K]X'1M&/R$MTQPL*X8K=.!<D!A [H0F.8&>G%YQN7?UB
MS1M;[<9^:@RG79I;8;W>F^!]$]U$Q].?4$L#!!0`@(/*[52XW#FN.F00
M"8.`8```0W)Y<'0O0VEP:&5R<R]M8W)Y<'0N<&APW59K;]LV%/WN7W%7
M&(B4.K:7!5OK/)HM*[H`:U<LP;X:%'5M<:%(@:2L&''^^RXI^2';?61M,6!"
M8DL4>>X]A_<>^NS5^]_>=P:',!/Y""PZP/N"J=2Q!.C?.EV<GX#-Q,15(G79
M^<D(#@>=P0">'WV5Z[G'6@!E`7^AL4(K.(%_>2V^?EY7NI@;,<T<1#R&[U^^
M_.GH>#C\`6XS##F_,;HL_H.\;C-AP>K2<(2)D C^L4S^1N[ :9@U4A[WAZ G
MX)ILI>"H+/8V\UK06^;\^J14J<04*N$R&J21@O$[-B5P%2!"H-^OKUZ_NWG=
M`ZH2OZJ-Q69,2);0/,)T&:DSS<+:2AN9'E$-X5&%B7_[";T6D#E7C :#JJKZ
M15;T%;I!0V!P/!X>]]V]ZW]>32S@>@)S74(J4E#:@4&.8D9)`J<-WB-18,<,
M0JD"&])TA:43QT@1\3&"/2@D,L*QZ(%\T :DG5<3[K(A2%L*%0)G"G(2,N3<
MY"CR'%/!',IY_]O7U\^ER[09P:W(J=:T*1#.$ED&([BD1(6R/M^+S]'^ID N
MF(0K0P3<Z MZ>T$W;P7/&$KXQ:!S:.ZDP 0-G.7U^&72&N]SG5]\ZW[T<-WK
MM-O<OD&%1G#(=5I*9H!+9BU,M %4W,P+1YTY2,44K8-)J;A_9E*X>8>,^+!S
MN.K>[I\X$_YN!,/^C]"E5Y>,<R2THDRH=/S LD>O/'*8$;;NDSO7(1OO+,/7
MJ\=O0WI_4'S)YE&7BR)#$W<>.EZU;N#QCN4(YW!0+SB /C333L,D,8$([QW5
M-*&.I68IIM%!'G /XAAJJ #'Y%0;LIK<$EX]8RR%=>/UBR@^7<WWR-]%S!@V
M'UMDAF?+!'N;6#&<GY_#A$F+K7!K!NCC3=&-4Z1GJLEQ,^RCM>;37@:?I3_?
MX3F;"DYU7##CEI:A:ZVH(V^$(B_V8_5^!U?=E'4;NA)20N+-E3@(VI<I3(S.
M?;12W2E=*?IV9 +&?^58.Z[WJ%03!V]CMBP*;7:0R3W"'J36G^:&ZL5O<;!U
M!C-FA+>T'EQ#QE)O2CAC,HJ]T83,4YP()7Q9; ,3:<(6BOJK,:-Z"='?9.I5
M4,'$&FXU,:\(S:2C<P=723)A6F4@1ZK>E'+CNI2I/X;4G8];A<<$-_+U6B-)
M8YHLME'7/,"&S?':!=6I.G00D$FIJZ 7038**= %I4_RT5GXL%L02-;...84
M>ED%V[H1"Z::$EB_#RP+75BOH-X&QGNJ??1I4J4+=V!AJGU-$%]B75J<E++?
M6N0[HM4/UAFGB1"::-VL<6]5]YN]L<7,7T'69W6NF]LY_K7,\SD\/#[;:$=_
M/0(2U-.1EL6YX2A[P-N]N NV@MF-T%JYF]Y>UUO;W?;T78!@)OX7TM'%N%Y%
MEM+RP8\P:670G A1-V6.T4[=X9P^Z>2@_NR*6?RAX#2/0M*&CPN61O3+CVZC
M>O6P!R]HTU_T@&<F&MX/AW%\NA]%S/: B-E3,.BT+8V*&O]>T6F)L^+5D%S3
MBY^F%CGV_TFM%9TO4>O#3TTPA=7^0M^ JQ?6G\VRVB9..X^=5Q?_%!+P04
M`(" #=NU4N[ZSSTIT"``"!P'
``$-R>7!T+T-I<&AE<G,O87-Y;6UE
M=')I8RYP:'#%5-MJVT 0?==7S(,?6L>67#>TQ.3BU(0TT ;3A+Z&U6HL;;/:
M%;LC*R+NOW=6D4,"I0EM0@6"O9XY<W;.[!\M/R^C9 AK5<[ (P'>5,)D)%+@
MWY.M#G;!%VI%C<JH.-B=P3")D@1VQB_R[02L#3 +^([.*VM@%_[RV[P\KX6M
M6J?R@N"-? OO]O8^CJ>3R7NX++#C?.IL7?T'7I>%\N!M[23"2FF$,*W3'R@)
MR,*ZEW(:3\"N@'JV6DDT'D</>6UX5U"XG]8FTYA!HZC@15ZIA+P6.8.;#J(+
M].5L<7)^<3("KI)PZS&66 NE1<KG&),*5B<ONKN-=3H;<PWAN,$T[#ZAUP8*
MHFJ6)$W3Q%51Q08IZ1-(IE>3:4PW%#^O)C9PMH+6UI"I#(PE<"A1K9DD2'[@
MWTC492<<0FVZ;%C3>RR;DF!%U)\2'$&E43".QP`4@O8@CWGUX>9]@ORDT"!(
M8:!D(3O./4=5EI@I0:C;^/7KZ[BFPKH97*J2:\VZ"F$_U777".9,5!D?^!X^
M1_N+"J42&A:.$Z#9/WA[PX.O2A8"-7QR2(3N6BM,T<%^>;<^3Q^MQ]*6AZ_M
MQP`W.,L&_? 4#3HEH;19K84#J87WL+(.T$C75L3.3#*5HR=8U4:&N="*VH@;
M\3 :WKMW\ W7*HQF,(D_P("WYD)*9+2J3KETPL+6HXN W)WHGN[)EXNXC4=W
MU+JK5\>^Y1(C9A[=1D$F3N7<<A\P.62X4H9;0X%LB1:#[Y9:A-[#D:3-N&1M
M63)E+G%QC_,@7Q ZMXX;2^GC+?C2>J]2W7*%Y]9F[)@M8A?4LSFN$2JG2@13
ME^&5\R"M(.O\"%C:KC41YKQCJ[#!D?P6/C@X&#.@,-^+.@^*AQ.]-^/H9W1T
M^ M02P,$%
"@^+M5+J\+Q6P)!0`,Q0!L``!#<GEP="]#:7!H97)S
M+W-Y;6UE=')I8RYP:'#=6&ESXD80_<ZOZ'(I*3"G'5<VBX%U[)"-JYS=+7#R
M)0<EC1HTMI!4HQ&8&/Y[>D: #BY[UTXJD<L&C7I>O^GCS<BM=Y]^^E2H'\.$
MCYL0H@1\"$S/EJ8%]!M*/VB?0>CPH9QR6SKMLR8<UPOU.I2K+W*5%=8<B 7\
MBB+DO@=G\)G7_.5Y7?G!3/"1(Z'(2G#R]NV;ZFFC\0W<.J@YOQ=^%/P+O&X=
M'D+H1X(A#+F+H&XCZPZ9!.G#9!G*TUH#_"'()5N7,_1"K*1YS>FI*=5\*_)L
M%VV8<NG0((T$)KLW1P3N:0CMZ.;ZJONAWZT`58F:E<4R)R9W38OL"%,Z%)V1
MH^=.?>':5:HAK$[14D\/Q&L.CI1!LUZ?3J>UP EJ'LKZ<@'UTT'CM"8?9.UI
M-3&'ZR',_ AL;H/G2Q#(D$^()#!*\)80Z=69`B'R]&HHIFLLWY(F183O6V %
MA=-P@E12FG2Y LKZ6[B^4"*:4P16"F!V,*I.:\Y,C'8[2Y*=&=U5Z_OKZ/
MI..+)MSR,=6:+P*$EN5&6@@NB"CW0L6W\Y38]P-DW'3A2M "9/,+>GM.7W[F
MS#'1A4N!4J*X=SE:** UCL<OK,QXC?GCSFOWHX(SKFUC^?4]>B@X@[%O1ZXI
M@+EF&,+0%X >$[- 4F?6;3["4,(P\IBZ-UTN9P42XN/"\;I[C1Y.N/K6A$;M
M6S#HT87)&!):$%E4.FI@U:-7"EE;Z-0=S%R!9+P04]-3!_T959A4Q!\+*DHK
M:C"P7)_==V/N1<,VI5D!@U9'0F+P"?W1!GW^%Y;TS'B^N@P7O1&I21NHW]QB
M* 4-Q! EJ*<GPG'J[CP!4*8TG68.`M->>X]Q*\ <46P\-!JE4C(G) %C#A0U
MQ5**C;J8:LHC9-91LY"O"Y6BHL')7>.<5@:ME1]]5VYG^#X6MI6IP:CMQ:4R
M4ZPCVD'%FC3/A.I\!P`/'%PC&$J'JYW!LG+T<#'E9#_*+3Y(J+4SH)L3%ALC
MU$-FSC".&[/8EK@9U'G<6U/FD_/_0VCAS_3"=F)FEKXWSB^0&-*V2'@4R01F
M"['=Z1M2V0-)U)6>#C\B;?>7)"!*JW #APP_* O:M_B8]K,Q>E(?#)[NT5]Y
M_!C)()*OYC$)U>X0+0K;=.T'_")=RTA:PH</H5A<67V5J>XV]4"^QO=*UB'9
M>J'^VM(BG]%DFYVZZC,;,WV6.#J(E'3+&G?[E,76T2W%>4C1GJAJ__G(9S5N
M'^[S9.X?RMWSY.QY`G/0^S.E[46\9X.42-TJTJ5SY:,7C\>O;!X/'7*IJR>1
M2T"7UI M1SK[C48H!BB$+XI'<5"ERI\>J=!KX(3.J3:$5(1'%>@.?NEW>X-N
MK_>Q5\I+\:;8<AG>^I<SB6'1H)N^I.6--X25>Q3+F[RZ)O:IHZ%%6&1S]'LC
M^W.4V&QISI0#-50NY[O2H$72!%_8*;^_&?R/7-_%V'=D^H: [J 3.[FK5K?U
MN6;[:-PMU%F8#JW:R]= 9]>3+?V\Y* _.ATXV5<%&CEFJ1M-W>[=&!/[G1NC
MRA(EBU*6,7]BLO+XL:U.POK>]O-A7Z:SL2O*.KB4P>_4YV;:TACQ9ZN5#US:
M)L[OFNJCP1<E>L',A2^A7R[O3\*J4E0.=((54+HM8.JH_Y\4-\HP993D*%?P
M&RD2OC0EWN"03BX:BW:(P ^Y>AKF$[6$76TJF_90RS]L9)ZO2"P*[SI_`U!+
MP04("
#ONU4N5@'^;)8"``!!P'P``$-R>7!T+T-I<&AE<G,O9&EG
M97-T7W-A;7!L92YP:'#%56UOTS 0_IY?<1\JK>W:I)0)M+*70IG&)$ 3F_@Z
M.<ZU,7/LX%R:573_G;.7=4Q";()-1(KDG,_//<_Y[K)W>/KA-$KZL%3%!"HD
MP*M2F(Q$"OQ69,O]':AR-:=&993O[TR@GT1)`MO#)WFV/=8:F 5\15<I:V '
M_O)9/SVOF2U73BUR@J[LP8O=W=?#\6CT$LYS#)R/G:W+_\#K/%<55+9V$F&N
M-(+_K--O* G(PK)-Y3@>@9T#M6RUDF@J'/S*:\V[@OSYM#:9Q@P:13D;V5(*
M>2D6#&X"1 CT\61V]/GL: !<)?[4?2RQ%$J+E/T8DW+.SB(/9QOK=#;D&L)A
M@ZG??2!?:\B)RDF2-$T3EWD9&Z2D%9",+T;CF*XH?EQ-K.%D#BM;0Z8R,);
MH42U9)(@^8)_DZ*@3CB$V@0UG-,-EDU)<$;4GP0.H-0H&*="#^2#MB#W>;7A
MIJU OE)H$*0P4' B`^>6HRH*S)0@U*OX^>OK;4VY=1,X5P77FG4EPEZJZS (
MIDQ4F<KS/7A,[L]*E$IHF#D60)-_Z.TU+SXIF0O4\,XA$;I+K3!%!WO%C7V:
MWK/'TA8'S]V/'JYSDG7:Y3$:=$I"8;-:"P=2BZJ"N76 1KI52=R92:866!',
M:R/]M]"*5A$/XG[4WW1OYPLNE5]-8!2_@@YO3864R&AEG7+I>,-MC\X\<O (
M5_?@S44\QB.'WVOE\,(:B=VM`)',5)DS@9:A;[VMWILHNE$17"[.1,'ES;\*
MXNJ^-;X/_M&/R*>8T_#6`*L2E2][WR"M^(UDKG+MQTTNJKS;\Z,DP[DR;.'F
MN@L>X#9G6I!N)Q,D!M"IA*9><+F)V\8^K<GWC@O@RBSN`%@:QL'U.KJ.#@]^
ME!+P04`("
#UNU4N]$/LSMT"`"&!P%0``$-R>7!T+T-I<&AE<G,O
M;60U+G!H<,5586_3,!#]GE]Q'RJU'6U2Q@!1MC'H)I@$",'$U\EQKHV'8P?[
MW%)1_CMG-QM,0C#!)BQ52LZ7YW?/]Z[[S]Z]>I<5.[!4S10\$N"75IB*1 G\
M\V3;@SWPM9K32E54'^Q-8:?(B@+NC6]EW8M8&V 6\!&=5]; 'OSEVMP^KYEM
MUTXM:H*!',+])T\>CW<GDP=P5F/B_-+9T/X'7F>U\N!M<!)AKC1"? WE!4H"
MLK#LI-S-)V#G0!U;K20:CZ.?>6UX5U#\O@RFTEC!2E'-08ZT0GX2"P8W"2(=
M]/IT=O+VP\D(N$OB5]>QQ%(H+4K.8TRJ69U%G;Y=6:>K,?<0CE=8QMT_Z+6!
MFJB=%L5JM<K;NLT-4M$54.R>3W9S^D+YS7IBZ=S6-LE:K 6 *'$M6228+D
M"_Z%1*DZX1""2=6PIE=8MB3!BJC?%3B"5J-@'(\1*![:@5SGU1UWU!7(5PHK
M!"D,-"QDXMQQ5$V#E1*$>IW??7\]#U1;-X4SU7"O6=<B[)<ZI$%PQ$25\9'O
MX4VT_]"B5$+#S'$!-/T';V_XX8V2M4 -+QP2H?ND%9;H8+_9QH_*:_%<VN;P
MKOT8X7JG5:][?(D&G9+0V"IHX4!JX3W,K0,TTJU;8F<6E5J@)Y@'(^.[T(K6
M&0_BG6SGRKV]][A4\6D*D_P1]'CK2$B)C-:&DELG!BX].HO(*2-=W1]O+N,Q
MGCG\')3#<VLD#OH)HIBIMF8"'<-HO?[P:99MJT@IYV^.'_+_!'%K7T:.4W+V
M-8OZL@;/#7!)PL>>C^[H*K^JEUM<QUE3"U\/AG&.5#A7AB/LK!\G7\+%<<OG
M)\<AF],M0H.&_-:B/C#8&AH41IF%COHP2H3FUU$\?]WGO(O ##M CKEDR$:0
MW!J80=EIP=#E.+ Q*=Y;XV,H%9HG@*LJNK(&O4J0&$'/"TUP`/W^,.5MY8B+
MFS(X,VBJA]O<(4L:X]^R;]FSP^]02P,$%
"@XKM5+O@0387A@B@<
M!<``!#<GEP="]#:7!H97)S+V-R8S,R+G!H<,55[V_3,!#]GK_B/E1J.[JD
M=!.(LHU!F<8D0-,V\75RG&MC<.Q@GULJNO^=LYL-)B% _!"1*B7G\_.[YWO7
M@V?GK\ZS8@>6JIF"1P+\U I3D2B!?YYL>[@/OE9S6JF*ZL/]*>P465' @]V_
M\CR(6!M@%O .G5?6P#[\YK/Y^[QFMET[M:@)!G((#Y\\>;P[&8_WX*K&Q/G4
MV=#^!UY7M?+@;7 28:XT0OP,Y7N4!&1AV4DYR<=@YT =6ZTD&H^C;WEM>%50
MW%\&4VFL8*6HYB!'6B$_B 6#FP21#GI]-CMY>WDR`NZ2N.L^EE@*I47)>8Q)
M-:NSJ-/>E76ZVN4>PMT5EG'U)WIMH"9JIT6Q6JWRMFYS@U1T!123Z_$DIT^4
M_UI/;.!L#FL;H%(5&$O@4*):,DF0?,'?D2A5)QQ",*D:UO0.RY8D6!'UHP)'
MT&H4C.,Q`L5#.Y#[O+KCCKL"^4IAA2"%@8:%3)P[CJIIL%*"4*_S?]]?SP/5
MUDWA2C7<:]:U" >E#FD0'#-197SD>_0KVE^V*)70,'-<`$W_P-L;?GFC9"U0
MPPN'1.@^:(4E.CAHMO'C\EX\E[8Y^M=^C'"]LZK7O9ZB0:<D-+8*6CB06G@/
M<^L`C73KEMB91:46Z GFP<CX+;2B=<:#>"?;N7-O[P*7*KY-89P_@AXO'0LI
MD=':4'+KQ,"M1V<1.66DJ_OIS64\QC.''X-R>&V-Q$$_010SU=9,H&,8K=<?
M/LVR;14IY7IV,=N;\#\%<7/?QEZF].QS%A5F%9X;X**$CUT?_='5?E<Q-[F.
MTZ86OAX,XR2I<*X,1]A;7\^^A8L#EQDDSR';TRU"@X;\UJ0^,-@:&A1&F86.
M"C%*A.;/43Q_W>>\]X$9=H <<\F2C2"YM3"#LM>"H=N!8&-2O+G&QU
J-$\`
M=U5T90UZE2 Q@IX7FN 0^OUARMO*$1]NR^#,0#JY-]EF#UG6N'*3W63/CKX`
M4$L#!!0`@(-F[52X[*PG./04&P2`B```0W)Y<'0O0VEP:&5R<R]S
M>6UM971R:6-?<V%M<&QE+G!H<.U777/;-A!\YZ^X!\WX([+DNIFV<1S'M>*F
MGK:93.WFU0."1Q$Q2# `*$6I\]][!X*TZ#IQ/J</J4:V) @XW"YV5^3!X^>_
M/D^FV[!0Y3XX]("O:U%E7J1 ?\Z;^M%]<(7*_5)EOGAT?Q^VI\ET"O=VOLCC
M'M>Z`NH"7J!URE1P'S[Q<?7E^YJ9>F75O/"P*;?@NP</?MS9V]W]'LX+##T_
MM::I_X.^S@OEP)G&2H1<:03^V*0O47KP!A:1RKW)+I@<?.Q6*XF5P_%Z7U?T
MK?"\/FVJ3&,&2^4+&J216LA+,:?B52@1-OK]=';R[.QD#*027C6L)19":9'2
M/*KI"V)G7H2U2V-UMD,:PITEIOSM'7Q=0>%]O3^=+I?+25W4DPK]- *8[EWL
M[DW\:S_Y,$U<P6D.*]- IC*HC >+$M6"F@1)!WP+10&=L A-%= 0IWTMDWI!
MC*CW`1Q#K5%0'8=<B#>-189]Q>V.(D Z4E@B2%%!242&GF./JBPQ4\*C7DV^
MOKY^;GQA[#Z<JY*T9FR-<)#J)@3!$36J*L?]'GX(]V<U2B4TS"P!\/N?X>TK
M>O.'DH5 #<<6O4=[J16F:.&@;,>/TL'X1)KR\&O[D<N-3K-1?/L4*[1*0FFR
M1@L+4@OG(#<6L))V57MRYC13<W0>\J:2_%EHY5<)!?%VLMV[=_0G+A2_VX?=
MR0\PHJ^.A)1(U>HF)>GP0.?1&5<.,\+1W7ER"<5X8O%5HRQ>F$KBYD8H,9VI
MNJ &IFY%BO,$A-VWL?4P25H@8=;%F2A)X?1KX4G@_6"W)/D[8:(9#K]N=\C;
M3W'LEXB]#:#:F@69QP4SQ>EDA%JDBKGI/!I(17) ='1#'N/QBU0;>7FRO@WD
M*'QCL0^X4F2XEE#DX0'&-O.Z$X$423O4CX"E%75-&N,CY%JQO!1:4R,ABNFY
M)-8P]+0TC<X@,^!\D^?D\4OD,U7Y*K1*2+G:):Y"RIR^`(W5W!=N$@O_AEAS
M=Z6BK]OF6[ <2(IY+[&B@YQ3;P$VR'!F/=!:6,^$E8&-<0`6:Q/<PG#&:QV2
M$!?(4 ,8RG[1\M\NC&2#H>9M.!O%B?N,UEB:Z9HR<KM6OZ<O[!!FXFOEJ E-
M\2:TJ?!ZN\E #S>T'0<)BRB)2<MX1YGP`I[P/PK3@:ANSF1ZS]KW-)5E(O@L
M:?CV^805NP7.BT!OE*+)^$-D+A;;W$"9;HQA0^;\@EYNW5Y7+6YI@WX]*N4I
M%-4;$=A:T ^WL5T%BK#&5K%$.S@-+SV[$?IF(&0<T(Y;#&/>LNVE-2$_1D$F
M9^H-PB/XZ6$_WFZT.>(#W#D<>*@OW1<=KY79VGH(%'4S.L; 4BO#ZWR[[C3#
M7%6D+-)SF,1."_N_36YD1(8?E1%Q^D=GQ!/\/R.^G8P8B.K;RH@(_6MDQ!/\
MY(R(77UB1ES$B#GF:0-E=!;CG5@Y*5T77>\0)#C(-^;9,=]"^H;FKX ,1^XM
MUR] >"D]!3@B67<0R#6,N[/B7XZOOT+VT/[]WE$+/&38CWSE#J9NK_:ZNR="
M7&LAP[V!8]MV`=!;N#U[JKX05IFF\]#QS< 5>FXLW;F5K@7K"F';V#N9'8]A
M=CP+"IQ )U4Z,M=GI+U>W[;%/=/6G(%\/QAW#0B=+*BS,;QLZ +67:JZM?P9
MXO7IA1PTG@.GIEN?BG5,\(GSO-']L;AWF-NJ!=WHO,,K5=WX=UT"W&V*@8 V
MVVKK3OBWXJ)@/T-QT2WO5]R:+^Y4'%,]`!+H+@U'?Y6;CT[,(:<W(O,#.%VG
MZ%9.WR:/#Y-_%!+0(4!0@((&[52[E)1RV9
()<%`+```````
M`$(
"V@0```!P86-K86=E+GAM;%!+0(4!0@(-N[52Y@^F-^\P4
M`\/`)````````$(
"V@8T"`!C<GEP="YP:'!02P$"% *``````"C
ML5$N```````````````!@`````````! _T&G"
`0W)Y<'0O4$L!A0`
M"@`````N+-5+@``````````````X``````````0/]!RP@``$-R>7!T
M+T-I<&AE<G,O4$L!A0%
"@Z+M5+N._HHD^#@`04$!4````````
M0@+:!]P@$-R>7!T+T-I<&AE<G,O9&5S+G!H<%!+0(4!0@(`.N[
M52YF!A2;40(`'<&`8````````$(
"V@6@7``!#<GEP="]#:7!H97)S
M+V1I9V5S="YP:'!02P$"% 4("
#RNU4N-PYKCID$``F#@& `````
M``!"
MH'O&00W)Y<'0O0VEP:&5R<R]M8W)Y<'0N<&AP4$L!A0%
"
M`@W;M5+N^L\]*=@`@<!P````````0@+:!OAX`$-R>7!T+T-I
M<&AE<G,O87-Y;6UE=')I8RYP:'!02P$"% 4("
#XNU4NKPO%; D%```S
M% `&P```````!"
MH&5(0`0W)Y<'0O0VEP:&5R<R]S>6UM971R:6,N
M<&AP4$L!A0%
"@[[M5+E8!_FR6@`0<!\````````0@`+:!
MUR8`$-R>7!T+T-I<&AE<G,O9&EG97-T7W-A;7!L92YP:'!02P$"%
4`(
M" #UNU4N]$/LSMT"`"&!P%0```````!"
MH&J*0`0W)Y<'0O0VEP
M:&5R<R]M9#4N<&AP4$L!A0%
"@XKM5+O@0387A@B@<!<````
M````0@+:!NBP$-R>7!T+T-I<&AE<G,O8W)C,S(N<&AP4$L!A0%
"
M`@V;M5+CLK"<X]!0`;!("(````````0@+:!T"\`$-R>7!T+T-I
M<&AE<G,O<WEM;65T<FEC7W-A;7!L92YP:'!02P4&`````T#0!GP334
#````
`
end