From 78c8fee8393a680706e13cd765ad6ffab6b53b89 Mon Sep 17 00:00:00 2001 From: Dongri Jin Date: Sun, 10 Nov 2024 15:03:34 +0900 Subject: [PATCH 1/2] Refactoring new client --- examples/assistant.rs | 3 +- examples/audio_speech.rs | 3 +- examples/audio_transcriptions.rs | 3 +- examples/audio_translations.rs | 3 +- examples/batch.rs | 3 +- examples/chat_completion.rs | 3 +- examples/completion.rs | 3 +- examples/data/problem.mp3 | Bin 61440 -> 62880 bytes examples/embedding.rs | 3 +- examples/function_call.rs | 3 +- examples/function_call_role.rs | 3 +- examples/vision.rs | 3 +- src/v1/api.rs | 118 +++++++++++++++++++------------ 13 files changed, 96 insertions(+), 55 deletions(-) diff --git a/examples/assistant.rs b/examples/assistant.rs index 133922e..2e212b8 100644 --- a/examples/assistant.rs +++ b/examples/assistant.rs @@ -9,7 +9,8 @@ use std::env; #[tokio::main] async fn main() -> Result<(), Box> { - let client = OpenAIClient::new(env::var("OPENAI_API_KEY").unwrap().to_string()); + let api_key = env::var("OPENAI_API_KEY").unwrap().to_string(); + let client = OpenAIClient::builder().with_api_key(api_key).build()?; let mut tools = HashMap::new(); tools.insert("type".to_string(), "code_interpreter".to_string()); diff --git a/examples/audio_speech.rs b/examples/audio_speech.rs index c6541d1..9e3af08 100644 --- a/examples/audio_speech.rs +++ b/examples/audio_speech.rs @@ -4,7 +4,8 @@ use std::env; #[tokio::main] async fn main() -> Result<(), Box> { - let client = OpenAIClient::new(env::var("OPENAI_API_KEY").unwrap().to_string()); + let api_key = env::var("OPENAI_API_KEY").unwrap().to_string(); + let client = OpenAIClient::builder().with_api_key(api_key).build()?; let req = AudioSpeechRequest::new( TTS_1.to_string(), diff --git a/examples/audio_transcriptions.rs b/examples/audio_transcriptions.rs index 5a495c8..b2c7ced 100644 --- a/examples/audio_transcriptions.rs +++ b/examples/audio_transcriptions.rs @@ -4,7 +4,8 @@ use std::env; #[tokio::main] async fn main() -> Result<(), Box> { - let client = OpenAIClient::new(env::var("OPENAI_API_KEY").unwrap().to_string()); + let api_key = env::var("OPENAI_API_KEY").unwrap().to_string(); + let client = OpenAIClient::builder().with_api_key(api_key).build()?; let req = AudioTranscriptionRequest::new( "examples/data/problem.mp3".to_string(), diff --git a/examples/audio_translations.rs b/examples/audio_translations.rs index 89bf87c..13b57e0 100644 --- a/examples/audio_translations.rs +++ b/examples/audio_translations.rs @@ -4,7 +4,8 @@ use std::env; #[tokio::main] async fn main() -> Result<(), Box> { - let client = OpenAIClient::new(env::var("OPENAI_API_KEY").unwrap().to_string()); + let api_key = env::var("OPENAI_API_KEY").unwrap().to_string(); + let client = OpenAIClient::builder().with_api_key(api_key).build()?; let req = AudioTranslationRequest::new( "examples/data/problem_cn.mp3".to_string(), diff --git a/examples/batch.rs b/examples/batch.rs index 0924d4f..f14617e 100644 --- a/examples/batch.rs +++ b/examples/batch.rs @@ -9,7 +9,8 @@ use std::str; #[tokio::main] async fn main() -> Result<(), Box> { - let client = OpenAIClient::new(env::var("OPENAI_API_KEY").unwrap().to_string()); + let api_key = env::var("OPENAI_API_KEY").unwrap().to_string(); + let client = OpenAIClient::builder().with_api_key(api_key).build()?; let req = FileUploadRequest::new( "examples/data/batch_request.json".to_string(), diff --git a/examples/chat_completion.rs b/examples/chat_completion.rs index 95a6e7d..7a5791c 100644 --- a/examples/chat_completion.rs +++ b/examples/chat_completion.rs @@ -5,7 +5,8 @@ use std::env; #[tokio::main] async fn main() -> Result<(), Box> { - let client = OpenAIClient::new(env::var("OPENAI_API_KEY").unwrap().to_string()); + let api_key = env::var("OPENAI_API_KEY").unwrap().to_string(); + let client = OpenAIClient::builder().with_api_key(api_key).build()?; let req = ChatCompletionRequest::new( GPT4_O_MINI.to_string(), diff --git a/examples/completion.rs b/examples/completion.rs index e0fab80..138c1fe 100644 --- a/examples/completion.rs +++ b/examples/completion.rs @@ -4,7 +4,8 @@ use std::env; #[tokio::main] async fn main() -> Result<(), Box> { - let client = OpenAIClient::new(env::var("OPENAI_API_KEY").unwrap().to_string()); + let api_key = env::var("OPENAI_API_KEY").unwrap().to_string(); + let client = OpenAIClient::builder().with_api_key(api_key).build()?; let req = CompletionRequest::new( completion::GPT3_TEXT_DAVINCI_003.to_string(), diff --git a/examples/data/problem.mp3 b/examples/data/problem.mp3 index 9fce89ac0f99ce3ec148b002fcbc2a5adc23425a..4f524d9df3aa88cd09d9a8dde39e3d8c0028dc4e 100644 GIT binary patch literal 62880 zcmbT-X;hNy+duq^K}1Bu8O#cC2u%$HOU(*I5fu%`)YOe*&N*dj!v<7D#d1s>DjZX@ za>!C^7dQ`SrdBqqsoTnSmd(TNU%zLqd)@c{S@&AcdahSo@Pf7Ytm8bt9OrTUTwm-5 z*!@s8IRmw;eoRS;pdeK36HL7yU+7nF-oa=A~lJffR5 z+@^u+&)i#ddb4=-b#|R~(5)o%9d7XWmHF(q!=A4;4aHCWpw6bB4|`ci(ZsC=E8B{2 zHC+iyZ+iarT)p}I(FR5qV@$v0A98Dc!Yng+h(#U>IP`5Bi|oOao9)*fW$+d~7;;p- z?LR&%>CQYEJMwI>bpq3eN>Q1+k~8_Hrr!_W382m$J!xk-XT;-~5BFO|`FtotUXQ&2 z{Nrqp_yyNXgtbm=$#$XY-rIcr&h9NsZkj2-zSGC^q#oW!SnY0fT`g$UHSk-<)mvJE ztvHYx=yA%gj}IbUe*U@g^46Mr|LLxh9cTFQt$C_6eW1p-u6JJUbMMOy`oqUJW%gd$ z@p;D9fi;RpruKVoLyet9&-Q8{{UwT^mEKk*tTY8Adc>pAFU#JUn!jK=>W6^d^6bNR zYVzncG*a@xpTB%r5usL#ow+N+gAnd>u z*E^-UxF5OOUKo*SRicjh7 zOFpyb)}@et7bJ1t>Dt+P6Ka^U+c$~c%pauL;Qc{Avki!i3b~BxE?$YRxP+uNA$RJc zWt^L%+gg8WtW7}Q;kr0maI_rv*78CX0=xk+eun#`=i9)`4%^-7ARyaHr zrDEKd2?tQx$-33o5|P@Psz&hURO?8~!T@O1m~Etvm~5$w4vd1w*<- ztDddx2Jq6Zx2JakL+9>4=^iU-dLF14n-G=0%SQ@?{fVAtHFw8>Lgo!fj+I^`;N zMXFgGavd!%S`HIzwp^5j~nNqBv3bpF)DP(zOKU^w{i}L<=$H_l|iL71hC7OgMT2r54>}w+m?(XV!D-d2ron8-xO91&-bfQV^t4 zv|oD7_jS37RyD*ylcG0mx?=RQ=yuLX{yeE-V|!B_z8v$nVs*Jy^tp3C&g`iX0Xwx> z%i5m1&;k&;c~fN$2_wXzzov?;w{6}uxdmcf1-@Kf?=1XWNu)y zk-ZX;bnQJ>l}J}oSwGQYhV9o!;N>Y4%XjORsiWXfz8A>cp&CS`UYQ(b*#_U3QwdM* zKEbsGamOQRc0P`}=O1pb`Z-SwQR?KRf_dTWR?DDL{%_y0_(f|x_)~HL=KE|R(e>mY zCA}}Pgw8Z%}71u}*xllfoOwr7_1Ow0zh>igbRaoaM6?= z0p(F=KWV!*FbGisiaPY*3R)6-bZ%KwCKst9b$Z;a1J33{D0H}dh>}k);k)Ymygi{$ znT9EOXpUEg$V+J8{v_6^^=7|B$y})DUaXj(s;~#8BdST+n9JUn%t2pK6IFO?(>G!S zSoARu5siRyUa@%}_hg1n9%OUB+6LPsR9^^c05yLwbHHAB zgFLJVD;%N-Q)5P$v^*gcjyDEt#pN!lql%aQv8RfQ6_n&5xm>L^DMyB~lw{B|kibkI z6e(ccQ_R1Lzsqu}qn}PmSmqN{gM+1+RIfe_94V*+VM_Sz`|!xBwGHx9ijQxxelSQ| z#Em>P$Wi7x(9xlh<2=r*mi}y^m?a&sg-u`4QP;tu0FEju^eq5YQAVfX(bNirBHF4v zPfi^KQa~~v_t}qu8r;2+aGW911eSA^oBiTMu2QUxraRkmTzBxqLPz4aw79EnW1A8? zPaG=Un>IhT<5Q`{smn=9Q~SUFc{pkHW~Vdx{XM-l%heNJ==c}UZ}&Ca(Klb|!xp&j zaiwideI9eXepIXx%uEgI+Vx_xFsv>GlQ(q>P(hrHXNtRYkbm|Dt0Um9|06Vm}Aqv{GDMJVT3B5}xmUdIN6hdT;F zxjRYnwqQU|7Sn}Nh^B`5r;I2Y^P1PVPhV=5(^w1b$!qoF} zYW2CMiVSKk5z}Nev0q0{x7r}J@H z6ntK3rW_$IXBtUB$Al>dU)_N7Xv+^uSZ-Ki}~#d~tisTPPedWBhcr zXA9C+A}9>Fa1tX!X31 zhg`_s)X<#9;Q)B3ND+9O^*MCoc#%S0mzpR@Zf)2=bVbDF5APCLa0@fz4bcV~7$FCN zw&JF7bHgV)&$_9G&V!*+aDn5Ifk9$^a7oa@G7@hL4K}3f@NHRV z4V7)8>*+SCHm476>unEz%nsF;-++n;H+=60LK59G&?+iWE#z-sX_C;I3H!980Dz%! znj0AMa~;FhuQWri8k7Ri^J6bt9R)CwoTdoCqhh2PVD6;?OS{3|BI?n;6^<9^uy0LX z&-n2^xQhGVVHQk4ox#$9v&9Nx_8cOVcUy7gnbULO%l%Zd3tm5N8K=~F%3fTyTPVK7 z)TLhTV)>ofrsfdR(w%zco^2oIdipB%UCB)Xk~%2t+n%^|?2@(X(PEMzdwZNqEd*sWGnct7;KTURc&WzPQa1cZlJ#yoC*1LF@en?(z-fvK{?QUG) z#4DpTKPT1w7qo+&VqV*eKeb)IB=RE>!@#ty<-q9U+>rwt?%lNZ%@GCDi5+>FVg4Rr!3hXGM4l#Q?(H5rUQgA^C=A;VcQB0;OMN8)M?qA_vKplyh z3_>CZJ~I5gHq#dSNZB%nI2SS5s>j|r!IVIAWX1r=qvhUNJsBx?LjwX-j*Yyar_G^O z$(85og4}ve>VR{KEGsU62484z2>P{%XGLCsa9Bu@cnFDnkSu+|>|S(4j*NSl3?okY zqx<;CR%D;lb&Ei5G8B;s8uST|X7X|V-VF!0*4LT8(^J@LK3@Rm{wF^V9JaH@LVxZM z&tD8UrBEWsvk~NZMhcVH_-bx^C=LrkL$EE$`Oj zHa@K`hvs~aU&cD_`jXfmxYzet_NAMLgzXl9)n&-;(gQQrPjFUFXHp)PK0oL<+@biZBfj z6ll=&QQkwOv07Ou@{lJ|=ZeIE31HO?*#pa=lOciz9_o-2J@8+j^SjbJDxC>;Xjsb5 zEu@iz9Xkpfb+6WxcM``9(P;v-r3``Ew##fJuWJp9!Bp7*P%Ue=1H9mO{q`M>v8LL6 zd|$;YM#qN(lR5B?V2zM{`KXM&I?DsQHS$&8r8qp|STh6^Tkz{jIjSTJs)!{l^okWA zC*clR7AOUkB8bYR;W_=4gK`x7=egn8joPnP(V*;3e$lta+{ec@wxk;9rSS)x(8AJKT zO)u(haM-DpI1GHZNffzq%ruFlCI_VgxM$_F!NGHpM`S3Hd2dz!3$|)<$&OHNQv-vZ z(2f~)4GVf(29eAMorLm{21xYA@70&DV%DfNXrPnN%IL^sgom30cn=RW_P4L(7}S~! z{M^w+3JTe~7e^wr=}~RS=^ZGfsV1co{U~oT0sVxh_qm)|WtpqjYnP52OiD#>8rz%7)i{tG)4JiXy zjso#FEx%!JFxZUKiYkC}>_lLu@Fm9#0foo|WP|s)MrP#-F#pH_HxvhphBHBwMk%m` z>GXi{#>7%amdt8H_#3dAK}b(NAMCA<%<4$x>MA?a3rbpA*ae8-tC&Z4=&zrtka|GR zS<77~ATOXQFHwB5W75+;gkd!tM!&>L4*y4?HI(j5}=XNAu zewUP$XP!tiQ!}fM>#f~PQrBT%GWA2AR!RW(NRSf@k$6v=rBLSylQR$g?OPkVXl)1l zs$Y8m)(X0_tfG5|e2%UYVI16gjttG{l_JqpkiKDUrCD;Z(Ma^Y%KMnlr5>H19!@*| zY2e=Sck>Xo$H;WshuxYNZ9k4Jt!XeY|8%J5IsJX+{M)e!!or@nh9`eK<@=w1(!FPG zS4vgnp^aCb?l|dh{>i_J^W?Cj@=J7Fl>hsy_~+XXm^-tySHklGynLs7ZqJt)g;_>< zX`eVZVBp0&@aMT4=RYwqc^hy^-g4EtFDn}pKg20$ukVfR=^%%Gc#n3Fbb0-ooma=O z4*Hc-+Q~*sVXg-I7|#(o(fQ_7v}1O@Bi;Cly{Z2{h#z_T?8NCzs*63zj7T6f|1Xyg zK!k(PAYg=RX^NgRluE7i(3^NooK_dK8Mi!(x{kgKvEt6c&~hM4iYXd^V?=|BX`l6h ztWnAQyI0|f>lz}a5aT|=|7x0a{rt&4r@!}jIi_?X8z4cix(lyIuCOV(lu%K-{yw5l z%b;G;?kd@E9f2y6u=OB{O2$Yl)QUu!q*cJQRurTZL*9fXRZR^@2efAUor(wYH$B3HfMQ>O*D1bo0Z*{>^} zdp=Q+9@81jLI+DZ*-g;x~OySx{ZGhXGAkk zEiUc=#MbZcaNYBomv6Kmr_JCrst%Fwt=XIe~_E$)>QGxcB7HQJuAEHo3g3XuST&4@q)3TO_Xz5(5c z3Z4?68iN+*^FVa2eTAqhhX3}Kk%LYh`ri}L<*jMJzju!e6rXP%PikF)uva}SXYb44rYk{)p|?QWdnJRe`43#JOE??0iVA2 z!jvi{D9W$5z{?xXD9CbJJVn6C(`cjEY)u^6N`4+LD0PE&#yHLD13i4G?Y9$-pi}w| zncqNY4aDRW-m>|Y9of3ylNStz=(ocN4YiKyKTyG);$JfH;<2-)>FK(rbzl*F+F5l)S9#0+B7ry;{oaTX#3tzjN z)9L<;mru1B%xEg#EREKP%e8LzrD-r{W2?s&PLBDrtQ5Oe2KC$-n6Guk!!;dNW2Exl z{=FtSw3Krz7q@-U6JA4@h(8O{fr`XO^`h`GV!{(`I{h6X<Te4BK4 zlV-sg;zyc{kE{SYfCm`W)FmLrp-YjY%Al>_nzqAJraQ$~;^AseH@C1*-tY{;%z*}` z4I=R3?GBgi3jtilWSQ(nf9(^`@eqHFNjdf(cJC=23-?|HW}5)B&K4GO$kP= zLpU`MB3l9CQmfe@jN49#pON-?V3lbAU*lIu7=+4I&;I4|C8FZ}%`?veoS>JA9t=h7 zD3oi4Q`o_(wk0{XAe*Qp{|sl9fjoMfwze!a;A#T+N_OCH-}lL6YfIph`3(jB!N4Q0 zo#$g67nl*vk^!-XvA411v~_fhMrxbZi}}+wZyI*I*-iNNO#j=Z8^$W$)L_SeGu?;2 zo4w?lJG|{H9Id>8k-v7iz3tXXy}68wR{Gi@K2h81-K8zvyX9?JS_US0vGPrMxw)nZ z{n@H(sS+w-N+%D{jP#p|iPTevYWv4rR9Gr>9o;z$DEe&|u|k~>46kLrznpyt23yZm z9`*#CH%p)d3{I38^!`fQIZiO2^5rKA!SrlId6NK!M=KDvjoc2)wBIq_0kduJR>oU) zUQpUz#P*nw+YnEXLn`zk`(h8vvbkhQjDnC9I6iU!Nzz~{sW5rPF86d?t8{yHw>qyr z7l1E#DHc~6=hH4J2DGjkcxTB#hOLbmIw~S$hW|MAS-NKJ za62Zd(e#R{O_-P%#8gO9RR?3Cp$}_ONIQDFIZ8WMO zpZe5!Lulyzay{5uQDq^P5Q=0^=`WRHuyRl&F5Fi1UN18@hw4~t0|)G^d}!Jj_hs^( z2&m(@ZxLj~lZ{okC!OCfE%7JB*&IkQ z;S0SUG1&le=v`9bePp^+Cg$4j@ew9)bSCMfyG4!1wXY9xFHM^HR|9BGKUehwjzIt$^ zytB*W6w=NpaxOEF$HMTvx=zSD|E%dMDwKh~h zs8qa}9-N>;hydk6Fd%V|ZN0qid3f9P_ja1&972>QaCjl_SzRb# z#fr}uLB2?JGRM2$E*`bkB})W!q5esztEg za%kbOC)r-!t146CDYC3C+XDweq-ZLP2s)bzwk6xpp|+Mf+#!Hxq8Jy%0wq>chr=gI zeK94P8h{R~ zx}xgCs7c@$HPWP*ix&_#n&AZTB~ z`Zj_@hDwGx_p=-BeSPh(WH6BWz;Z=SZvUbF$jzsfIQkTV3fGvCDk@q88OAga9nVIE zXH|4SrYB>Xp#t6B6ohdMt^q68<|iizE3Kq&)k$bICofKrh`GOgA4Vrz`(UTZH*GKH zdR2kB!LZKio2P>)TxASrncb8TUKVa@lxK~YWK~J+c0|dzK##3Fo#3;EThXo$8qCnc zn8TFb<^VA|mEge>pzxfEN>H}ba2C9Qrm6m*%fd++6wkrg%SQT+wIGZY<+hU}nLc{x zxx1S!Vv!GOm9h7`G<{IQ`#aHQT8!}G3b3?)oE0A*f+Fi2w{qD=Y3ChWP8OqVzk;tA zGQ5#FSi6OX=vq4o#{;~;l!)c|pR>i$z`#;-Qfe`ow9 z`QI*0C~7D1^Qlp6=3Ik50oU16hH6FFkh#xdtT&g*!zvNuqnBH=?$;H&<8Y1pN{bKW3Om?L9 z^arC()iRoM_hl23YoOC?^2wJwdK6uBw)4kq-4tdvqZczDZiM+v_s6k zdTgmHtW{(8KXcq6VI~&a*^KVCy3L%tqYGn#s!ktL;5lLn>Cm7;^^kFuEsh+9+VNxe z1c(BQ1m!1viCDzs`ho=;`2#!3Z<)^mf@Iov`N?-`$tH}!UGj88L}bKfZTi2uwz?+?a7F)^x0Nkk#ABj|5N{{Kx?L6V&&&wo`~8qTd0#G= z%dls5=Ac^$tH2?AC~QJ8g-%T92mLy>5)w-! z=H>-a1j02E(%GD4u)}x1b%}Imr?$n0e@UOOIsg%ygV5$dUB+Q^U3Plq&?rnI1w-B> zigH8~lFJ7JPRHMfj*t-Sqy%!GZ46QY?FSd_am=D;Sa?q+RKeAed*mcF>`6WoEJA?0 zV)i6^ekQWlNue5~{_|iSUyfs_EN<9c7@nSEm>}XpwLziVd)ux}j&CcHKIk(ESpVqd z#%n}?ea8?k61bAG8Ry}iWpOCd<{x9`s*{Z`*W=T?B@MRq>lE-E+Z;WjHkvEaY5 z=Uru>E!&fd#{EW1u8xPzF~U7GqF<-g-MU>DkYHDH^7-1EJ+8fsmXDxKS7q!p&p?w0 zZ-`rWzvQ0L`dY#PU0E@R4o)vXj{06G2U)v0+<6lp)NpHaq|;^cy@JuLm5KQh!n?v# zR+nsC{&j9}{jj}c$rxm$e#_G!7)*g~#YG*}0KQrz`l0}s9k>y<`{6!~_%7%6CuLE~ z{&y^9&*Poq;-Bw1dRpaxU&dcbMEj-6;@S6EK4mZ480t^5TheH`Qz*BG8Cv#3CwyvG zAN=)Swfw7_0XXPFMMxw}^1UCe!@RYcId17S2#)EGaaG#HjK7UXGc{=}NvJ$iK}9r# z5+Zkl8>Ipbp%RTCiI{81~+i#*di$0nr#aGzca=8MBe3kH<`s5CssyZTW5U)q++!WWj%-lSAQep}?7Gn*UlNgJ zZwtx{!ozVO)^jxlO&#aAEIo5;Lo0bXE(~NZ-2FJg`DXn`@zjI*qy52H9Pk{s84MK- zTd@d3@*t_9cY2gOjKPdjpqosjrfvQ0`*)nsn!M%dEZ}mPnP?W0=+-#)Hb z7L4sWx$CWAx6{v|bArk;?CXO#om1V($;B=~m-e3QLxvS*zx~#-x>u_vewTQ`sroi= z_NZFnw}1cHrC7*g;5AhmD3PgS28A$RXV=Hrzj3(MmvOIVE-T%>`(LL2ZDs!TlCwXv zo&kp-m88l2j#e^yuRqq3iKMpluilke^I`_)`?k04TfPY`cQMJb=qtF3OhST@#=4fJ zbG@M|ZkEET$i<)n>Occ=N}}QExon^-%1jI+v}H)c74$cvSdm^TnFFvxl*(hl5xS{( zlhA!tNfbk|lrM-kZvF$~zThKsyDNt{MVuQ^YxF%XWa+`-*X(Z*`k<#9b%k~W=5#?I zpQBR1IM^poCc`0e`c7!Wn!QZ`QLY9Zt07BO|5IO4)jW8z$(l*2i@`HA;RkWevv^}< z`fx!#`rz7&+H6 zsBD5l7^sXr!4Geou2zZ{=tUtH;&vx^ZrN^p}IA zZ8@K1g-@)zn0eLz=fIZPs4WG)(KDCS9UmOhN}7CSz%;#BldF?A^R>Cz+U(cR&3tI9 zo?nU|QbD6}{Ol{`Fo*KXS6?gJj_K@pTA1iE)%pH5XYt~=<%15$zM-PXOSn4tBWon} z*`L}M_{-NA$ES1qpISQa$v$xA{F#QH>61%WcWX^gJv06<-~Xor3FZ*sFs2$67)>Jy z&)QOY0f2hmvHICso5WffQ}VRjBoxh2Ed(tGO~W$qbRX29eZk*a)AUbfbSrpBV_{$9 zi&A~7EUaVI%R3#}g`N1w>^h9#gzl{OS@q@%LTulsa z@SXc~{*%;kv{E;I!VlS3HL^S&pDFcFc1eE59OO89ArsKL&|h;OE3-3-T(}sNv3n=^ zP7R)>fkSLS!O@mf(Qn_iU-LN>;Me&+C|d=UDFR+(WPt2A;;_+h1<|_kCzneX65rW{ z5o4(UN8;r{K{rNvQdk;WWjc0%{>ecYiVc{4$>77mDlWCHgAZGJEO39NpM7F6R&sjT z*!yhRcZ>9i6+N<7{n5M8X+e$`KCCzGi(4|p9GG~0Z2dLUBw%9T>G(W;G$s6iqaXe2 zJj`Lv?+(9n&&puMbnktA}6&=5W0 zaS_HSBX8NcEwXi7@cn~Hcy6Lw@aEF{MYO5h|I7D(=`;UdZ)=q3h6(^dU#Ah$lrt%X z%OMfUV<6uNes!*{8!uR)&^fYMpi7Mif=@>6LMBa94q|2cq3GlK62zYSuvQL6gTk z%Vj0&B#zHS3CS4rbeyAxf@d-mnlj+FriVpX9H_>g8o)$9N8s;eLsCFm4(m?(p^lBL zWVRSo<^Ga8{zc9gM?<@(2g3I16#89&9k{%Ulo)*C2f66UtZba| zq4{0Yh0o66hyBWu?_Pdz`pL!cl+|Ae)$yU% z{~NITPa_v*aEE)^G2F#+!Q=jGZdRUA&W`p@{|+_OAG+U12+d~6oTzbL=|4vQ|M+TF zHnu8)xj^rgn0$jV6KsM^0f0&Xq|kauN3w>|Ea!-|MVp~7@+fv_Cx?gfmYwXvseFVcQkO7amxlxE$|GP9fK_x-j8)qJ z#v`3St@hhVZ8Lif;i_yoIx;+{4{Jzi;+CoCM73oV>R>2xzkSCJ{+i!_ew?-}nF~}x z3cPHFb~<5w(QFQifE=)$QZi9l>@q$6&-6D` z&c)Kt(|;e-=It}MVf_IGG}~{Fc3w?|(XX*TMGpU|Jlk8PXG~palWE6aT@xSfA z|8qA+@M=fX5IkwEekwW`gu+84SY-rqmycG@J67 zBCr7JRkkvOuOzV!pWI5f6z@@ji3w@wUwczYb%Kb_QQ%qnqJ1?L&Q_<2;7V_cK$VPy zKC4YmT^|&9n&s9BXFD)fO#lHZQmqT2hkZjK&p$}XHG@Gka5zx`qs_;%kOzR7!wfqo zC3!$_(h%*VfU@G0ZhZLQ8W&S7E$h}!y>sr2D9Fb z1#&>R@I^K^;{cotGJ`01&vSD`C^cc=l^M9MbDeS$h?C>}-6ZNlQhM_MU3+ z!`O>gH)YCx?5Ux%%;F^C`281VR^L`(X5Y<9T0*1U8u6nOLz_1atIXR9*89o^{?wK= z4Jw&;l3hUGzBz;P|5_(yWGZMK+TKMPyvF9eGg;lqA2*H_J}XymNMJo6XNH)(?u@-y z=5o7cC~5zmo{NDWBar#X=HK=EYxM;Q5tQNHwar;vV0h#(GIL&k<}*u3r+x4Ht|gSJ z#*9L(k$^3Jkm0;(j{}{$oi@_%T9ukx5v{?b!EwnK|Ce3@VJocVUS=KJta!K zu6eBIyLg#ph!C8yaHRfSaz|7cYT_WfAp&tDl*7~45t+fzu2z_eLl{jpn{Whg z5Kw3^&gF8a&G$8Y?%imJdZD3OX`%43RN@JQ1u1$7SdJAt{PmnT0^h42Q|r!d!$veH zB@|mn4(tp8Qy3k=2PrHLO0qy@DL6eiW53f8qKxh>G1o=nRP_ys-Celg{h%g2=Pif+ z*b2WTOZ)BnISFcQ@@su=t&%u{|FWIS>(H>fe^tL|*-{4_Q2LH7C{&`&T%^w2q#AoR zB`TpO^BI3#Q2$G;*LYFMVy-oLrx48y)q{2u}@b*EFzDtnkr*>?7opcKqBmF%u_O+HF>M zIVNkMNwpMD@=Kim*eE^!hSe_8`1&7TqAsfA?*1ct&-NA@ZhE+9J@&b)-33ya$8)Iq zPV<|nK8QP+5UZ!AtUE&tP$^cKdq_0cKr*bZCaj|&2wPJNWauLp8@c*!yhC0M)LX17 z9G4YZ+~^u%J|~=~)iqqeVbI4S5`*fB8nRAeyqq-SD}3t0)_jZM20_B>Y_%k&iIig& z;e}FgcWe+(hEOtlMFx91g%MKPvJcyc=m|Q5^?`LNW=5RjZQ0mFB`ZCl{IZz?GA*b7w$< zhtu=jhw=hE^bN=#KELZxJf3(n7uv0{zNEr?=&9V~yPi8%>#f_A<7p#{YeQ%JFyr4H zoBLtW5MapljLb7f2h~3MQ*Xk3{T^tpxR4puMEQYTt^g&&292KQcxidwrBdTTlfqKTmgKCM7DnNC@UU}H4`&d zBjO!v_IR2zDYl)n&jEKwI!<0TJ7T&n|+qW;Q%4+WW$5zWjh`lwGqQc$J+#LMX!}b9a5~6zf zc9OH};*n%EFQ^L_@BCO4GWN$mrskgFwm;o;EqsLL0iFqN1AgU5`^_1MQ7yl~+L|uf za)$1KILj==7s~_4$Txfi5Ks>pkJ1ATJ-I45WBfq5MKz@D@ahwk{AQjz@e<9HSBp#Y zdsXnIBjRwHJ#KB8dDZ$A?Y48p&HBk{F38^VeZX*>$?HVP_8X4>9>fW zcy90C3$`hepMY~O^uM7HJbuUx`#yF8_zxbJpKi+wT#+FD%lCgqWT5GT=ip&trE$RTP0*-z18-zBVq)5+E{Up;;X3;i?Tt6s7Q&Al|%qM9gkW6J&lvYzU(g7V&3I5s)q)~N>I-3;^2R@ z`GcuoRoPoMaVqr1I}q%eKNZhs^}IPV(XlewU}}54t|c% z0oDOSS!t=6_Vq4;R5(^GAY(df8wi`hmE&$}jrio`_h8D!(tA^Zf`)yTX8hTqeCK

c&VVT?# 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 rpkMpo^rr^968Ag@a+|-WVCn#d9Xt>eLaOTb& zWwvnUz;abuR+?5ekJ;|j>8f+xZlCM({o#ANUjM@V^>{v>^XL2J0f231Jpg~!=Bjqe zlW7SFnO{AW)F{gW&=SwGYBDGq;IP4JJI>SwHK-c%kiJHxz;Ln*)h~O4vQfU<9l|oY zvfx``5>MtJR$cljsRL$Jco%$&{S4+}G|Y6aa1rL~#Am>-nmJ&J1Oj4W_lxx~y3t8a z;!}q9RFPhD36zzpY{Fd&koUM_={kkW^?GDvYIlZXg^!tsMYhY z7aj510@s}-kL~|DMUVf3s8;e4dv7j6yv8wc(ZTf13oc%G@}iEde(>Rm`NXC8P|mi^ z*b9%B`8%!{KYH-w?(=gyZQ6W$lma$PuWTH+>TqeYy(M|!}I~ynfl@eEVz5 zG(NxMlBxBSsqZ;QQ9mA{s#a4uo49`0#kN=1RK|wt-kdnoP(z!-D-Fb}DP`DZpCM2E z0A6DEuD$90@b2?T*M5+P3B@gaK|6(ER=p^V*mj&B8G}=y`xjZh3p!+#xQW7p7wGGn zZ27)AKM3X2$+x#Qgq`V->&x6^tyf9?&mMQUI(bw zv-rvum%TRCc$XzsuFhk7f$ciEP)^|}hVXKULr?k#%LvyGkouR2~R zT)nhA%hE8RVb9%#lBUZo=N?FUrrND;P4A~Y(`~vCb6xQk5GlK}wLra9*Qxf50ra0h zWa1TkGJyeO@`X4cRQU3f=J>ZG55}{Lu8*I&I5QqI^OO-4e^zL*V8htMevFA?eH9W| zp+YQcn@pEfCexnq8aNZVGx)TkS!}3iB3zo$A4OBdV<=0m>o;$;EB}1`(2=k-jEjw1 zDIy^DH{a;w8tZxVPimnLBVs3r3yJ2D&oG~9VJcO`J-_q1qmBV+8Al)ZyK?@mS=)!#~rsSTPBz5(RQE6ZZ>&5%5t9J`1 z4qQ+b&>NkLYz^FY0 zakR!%1;yPX#Go{XTLqqtsX14pAxU`*WfL=mH@UZZW%N~nM&RL8IO@c_{@anFsgP^I z9`*|d71o8=L)1;;Iq0x04SOW9w48?AAN^}d7CSClI$WMTt~l^K{FTmzC$C}8F~87)G1?=3ehU*l(3`hq7G3GPV4hvn%2fmXgF~$IiCo%5wg^C*my2P5={f$bNmjaWskUc54Xs7^C(*5}8<@E+stp(eSufv@JGd5GE7 z{zV0P@2q!@%g%7wtTo2GcUIc0i#gd>-#e?!Kmu2Llv!ECv=uQx5NLt1pMaNs zqw)=Rk|mMU!3{&we+J53mrSBYzupMnKPh3lX%>VxAg>%UYtdazTJo&$gfv?3x^c;V z?&QNBT2kHEV%?{ZpVlA9n~dfYHr$Nd?%~~;Mg5v&l0~~yZE_u%dA;EL8_m^kgT}u8 z`P8N|IHYxFibVJXNd4e-3sA zAaZE28h{nkS%<)4i23PP=RcH%LMOx$LJ=5~`lOWhG7G%S!HWqj3doc8iL33mYD^pi z69dGXVB!U;7~BQoxLlP(219G~ws3=O({0vsD`Zz+n)_p@q6-eiAxMY0$8SNRNs1(n zDptA!H6(#J|M6+uO@tQx=6f>syY-LPKM%*N!CsP%zBr|;hl);HPhjRLt0pQMvp7hb zBOc*4^VshwW+!SUL=;oBhBOJygjA(gXu<`SN6$IMB#PVko80nB`a&MQ=LLUnVPx<| zcUGIRJR_Du-YTe7r|-UG)M|gB^ab4e+GxVSUprqdsa(Gm*l^5)du0!SeD_;mx6((V zR+>plQCH2?gMW_R-#qg5_!j&=?e=f|WF!1G7(3f2<~%IN>xXlMvPqTlT|M~lLYdpH zglxLk%(Veg8<@Nk=oo7KNh$fr?IB@YTD}O`qR#DaPa<=>qI!VvwE%yUlELzzFt4_^ zH*gPjXVZNZiZ!q7h|GM*_cn2Ta2ow;n=mm5dS$xf4f*6%(Q8{||CZh9NpnXkKMyvW zTsgmdnKNbk=Ft|~cgtCdvwDk{76vN8+e@rLP$yWNo{bjg6Mllh(o#@ZwIu$d_OV!h zkp#LDo`Zf6e^A+858Nv~Al|1-67zKKpE}vaLqdT3LXZ_|cxyiw>of*XrMo zm2KsT>&vw=8ojqWOq`dgatXs~#r7*qgXe9aVsfzd{|L04Iv-?(g&F_9@>i=h(R zr8fISE8gUxR&XZFhs9(wKE0;tH%JO{!|fZV0_%tZ_-f)63jwl^y^5h zgMM=GHfmOcp~3Y>&MvW@kUaPR(#M@n(xMc`F8B6NSZgRf(H1q^ZBx8k-tp~e(B9ZR zx39fnkovbi?{N(c+G+d!d@=RI*TBA^OFOPUO}J8I_;*yyhb$jP|6%6$4^?E7p~ti5 zg*SY%7=KpyFR5*v{(5Om>jL3*yMWzFe`jUzRQln)_x1yuH}Iu@_Z(_C9#qFP**@9o zpqDkvPh&+W%VBOjt#+op7cKik%L$c7(*Wx%R^=d&`mwe&%W1Jl$E`2BSF+HM79Nwf zq||+3Qh;1l&$fW-*@i$(XdSlgk?DlY1`hIlgUXH4 zH8BvA8$!p)T_z}SSb*M3=uoERB-B(eroL@}E1kyhAMe3P44=92x_C^+Tl|ADIaft` zjP+>cl9Pc3++A%~0RmxK_AOxj{*rO8Da( z-OU5V#V&gIyzYlRpA*kNod1^J&}h;)TP?|3+OciEbt>_sDb~k*=LxOY{DKQM9}bku z+1%QAKi2gi^5W&kBXxm~yA`1w)r$K6sQ4cKoLX9~88q1?nb}=8TDi|2q4}av^k-?` z=lH!=xc2o=yz+m52uL1RLtf+0EH}=AE=Yr@-*DI3S}xWy6q^C!`kpiMkJKf`APS>i zv13C@i~6u0$V97uXO|=QieH+G9aKtD+e+Jw!~z{LXkV(kLw$I2w%pKqWaKtogD=K) zzBz;^_0o3X9SU_iO)`<{+Rx?N2D(iQ`#TvvYYYglf2KiU86dSBqVyw=xkprTybrBk zr>bElUw}seF2a5#SsT+>1FTR7qMkmZaiYhz2P!8vB zvY@JfI$&970UDDhR(&S!9FxbOXv1(>2Hw?Vn8)SS(Yb6L11+kJ3H!wmF%F^$$AE#o zIS>?Q0&{2Qw?|PgH>=b}jB*Y`T&9KG+J^YL$6cp36%3M^)(gFN-q0M)A84Jg`Z%|H>!m%f z2Qz!xzF*(IXU~uOP2gn{!HY9rPh$Vc#D$*{?g{?V^ye<0^mpG&oN5*O9{!`K6l>EQ zBe$VAZhljVL#Ncd|J%Rkb{TKyzcc3snCKi+4NDGPSAF2^rDUNn6W3R)Zm;}D)}~9CA7vhAS| zWQk*f#Gd7j8mw?VZOeIaR!uV?50mc>Nl|bpX`BzyzrJuG&DLxM<$HaRr2Ds7L*k(5 zhO(8uu{yf6zH;60EcG=v?Xc715f7db$FThQGuX?i-EA|wlh5gmZxCK@g@;nUZ`+^z zJ?%;Sf&qNwUO2RFJXYJ|+HKp%Tr7WHwZG6yP)q6jcE)(2K(VQ7s4_zD77#^rzg4iI4_~b#K2ePwAaZX_^s%h!YpS( ze+p9ee1~XeR#j-opC6N)XPlF-8Tw$4VY-mt72dWA%e0iWi7lAoo00uy1(;8KOQm5l zG=k_>(A!Vop|XTHbBhFie{X>Tp3zxMec(DZT7ZONNLE%4UDvkgooU9j8j?qW$>(|~ zsE|un%FMwAqHK*Cc-!GT3$*G$&cedGwEj9Di&9b|K~+3l#Y*+Aoc_(XJ(*!+0{u*_ z7)mr0ceh9LFFO)OR+iSjG&+rSTIngwq^kgiw;M5jQ$F2%w|tG%k(r9Rl(`HfT!Rgy zjj3A<(K1DpeYh+&D??0R^0|2+3(LRlneS)*c8|SenfTJ;-1VKfl89h(sCN1BlUHp?pO+~2>cZMy z<$bT4sd|{R))ErxHB%LP!0v&|qVn^|ql3l$pETYVZC&lXwQngouhOW%CTFIkTYlzV z4P&6w+*rr(o8iQHs}=Tku+0I7YCKmK94sBCvYm7iL%U;1Lq#gz&rf#Q2au2Z|N7on zv#WCzhy>$}rSz&^h2souR{_RcBw?~uPKA>mVV z$s0z>E!j6~N!7g zP~rcsT@8-@+KS(5po)jzPgj%N zwJ%RY$wihSL|P`V{05{mcEm#fOZn-~9o6!HihOCztXT?}Wl$_ho;{ZIVE^vHwUDH@ zJqt;9Z$0bbpKv#f z?mLDEx0`!fW1or>1$)V+Igb)I8TTiqjCmx_AJyJoK@=-4d)_~w7;(D33ZmlO`Iqm7 zqir9Ls6-(o`y}4Z>C6F@QXRhQWd#x=46?l|_iv6P1SPJA?R(`ZA1QA*lnKCKaL4yV zks*OOzTRu6)VEo~O-w8`E~`yV_l!6LeRNXJgEDO~0?oRXO{juNBzDTKASq$(5J;Rf zDz#wq0o_(pbN4z9Rp;I9A5NZ5+ z83<$cg{a6R2xAz7X-%23%UFwGzY}m+gv8tX%Mnjii<=I0&YqP>6qRk7pMM0FHdxpp*bG;hB`af7891 zh7hKsg`lGV$6@-^ccb_eX{f%VXWaDD4T41oQS8D2@_+#i7BTdwo+FF-T&WgYAU)&4ZW_9Xex>#pvpd5Pv`O|j~sRYn=ZgZ3Klm5%4dY*Sm?TVgmE$d8yROFhDz z#V2S*!?2#(5Q#Xo>4X0IPA!}zfij}I9~$Ex>Mn2`Ldhxbwg_6|K`V6;y#XHzO^wK- zHFZWBEB-KmM1(p>@xP>4rzl+xKV@@sBX@>Hl+&TBku)G-@;E=zlyR69=@iKT>TvHI zgagWf>(j|~z~=g@OmTc^dP=Hjjv7#FODU^*JrfIFI96-o-*(+67JV!x(R7Q^q0Ztu z94-e5M+O&Q$QBOMUN=b7dd@g9Z(7rUTF$$fwlz`*7gVt^9jXq9UtQ*2NJoOhL5Jsm z^DT?y+t7het5@~ZO(>FCo(9LG(b7-FV}sx%X$zk926eevc$W%ESKU0AuMiXNaUkf3 z_YpD@x_jD9p67aRw!mPApy#Ss<&f~8)in#vnkGlBW%u>_cE&`IH7-`Y%d8J|v`&l! zi?6l~91A^h`qG~V-xoi>rrv+?&ghOmM0m=T#V&aAgO8FQO#&mVhnvg4m%WEgg~WYP z5#|r;G-l4gTiB~%4-o?z-(v=j%qcWKtXbE@NPp0iN1~+FU$YQu=jMfFe8&l{{CQ%DtVlPBe_(!oYJLOT=%G`#?^QZ%d3zb63X}qsCFK*lt+Jc;@ zx3?pJTOJ#m+CCs`7Tv2>=hLni`3_cI7MMeJSQK3ZkQKMyXX|)8+o&pdM!3j$)CrGI z_xN_-FzZ5V#OPAhzNkWTB(rN*Kpvar`{R0sieh#rV$}xHYHV;OsNEzuJe=n)wcDKO z>s%zfl6gGGQNnb1XYlfRbk>h6dY2`~iPHs$7=U7vCha2ybBsJn61=iMutNi|m_8^H`=fWI!bxe|b8Knq z^U07mV+O%YLrl)YzxJkzbnNaayuPDU-pk|+0QGnU^BQeXH^+?B$Ax6F0%^J^qD)tF z+;L#sPG81^Bkg&rjy!BywIPIubn1Zerq}hU0DuaNV*#`8K-$mvn6Fin?950wIhY)Q zqtpbVU?`vfVn2||K&%wxAV=R$LK3%1AOyOl%Zf;t$lJK4aJ#Qqoej*yA z5g_WsezWi;lwugqcgq-%QPOY>0vC5majCSi4Ex_AjR+?wGavv9nhhEs$-5H2Cf=G# z;J^k5be4mX0ZfN_h=Pek(W&x)<(C^W1zy`du3z7ghsA!Z-UU%+-F($P7d3ga#=w>p zEYfY;U+gCfpsN$8z2{aFg0Uc}q0ws7=+@~@RSxeo8T}6Ni$_@~!n$Jo_WnQA{oq>L zVxJ+9sje=wF6zfmrs*#uR4`M~FnoHE^Rh|(0;;!nk(rfX&QJG2?$hQ4$Xn#^Z;| zJ@tR{eR+^?L;dZ)9Y)U1i3Fvgw%MJ24K&|9M}LH5%y#X?Zuhm{VN^{hE3}I4^Z_&M zvZ7$-kwBlmS>Nhz^Csu?2TAM8cF04Uy5Dt0o=u#C8r$z1vA$ctL?AofA34prAWx7L z4&rtAP0SkQ=1)}q{-d#uh%(0W88}7$zI+0Mu=7w>2>u)Z4ClQS_KXhwn}<%*uRAHn zH4i($8*o(xf?9DG3`jCJgwJ8Pd%a=1F&~>6af9sO)hkL3FobR%o@-FyaJWxRKtC!k z5ISD#9$X#Ex<>x!toy%WuK(}Hm4k8^DZfg3>FZvcsnF$M{5`Q2XTSxk*bk@gBspvG zf=0er)@l;y=EBrU0!#?V^IcPZ873Z{VRF}B+&|>M@9V|4s&X)ITlEo*rZx8B=0~ZX z7&t#j=GK`)@*_%d*xV51fdm2@SU9KWYB^r%eVIudLLAM(Oa88={Vwx^+v+wpY!mG?&d=KFVivki^# zY4wpLBR0n+yRrDyk0vWiYOHzWj^)Ai$7)Iubpx|YYN!D0tVo#p* zJ?5pp;1nr4}=)~s<=#%=h*MLeTPJ7zZk50H9i2nBVR zwC%_Z>tRA9-nO)bvp>bV+6(E31>pdGojBZ>EosPuJdx6I@q{{e3`t@V7+qjb4`hOD zRuG@}bdj`5h8nQp3V2Lh8fhY>x3}=1uT${JLZd6TP3*gcX6G*76!^^9@1DIv@J?KU z@wexp`IR|j4Q-q%j{eeF4ODUARNtB=1UGvg;xV1@e6%pL_NNbES>J)C<>SRY zu@!{9mKr;Aic5FcjX5wc6T+F{uNs#9G7JY)Ti5L}9_j?47j?2MEr--q_C{Aca5Rc+ zb3M6mb)Os(jC@<_pNkgL?RITRENWXU{N&t9o8+!`8`NZ9;i^gex108Y(3d7C(A_C)x8HBKp%D6$xI>rBHn( zoU9C=CVG{OAOe?O&Qe)lJ- zhTa1qF=bdg57CL6$qL?wzWkJjx48tFuxoo+JHGs`5JY#J;<|UgxFmJ6+ji=ZzB7^d}Yhowr z-HRpm7)6I_62R}~6ZjA@lQD$^ic}3EJPXji4)uuj#$0-5mdV#@Gf;0!$c_N9?lYs}^8)tb2`s}{>r*DYUMZ+e9ff%Ri;_a?Tq$?2yz9h&WwT*UpfE2!;r zGI*BLkVUar?=Ah+WdO`HavRzf>HruqO{OFSLjI;t8AgPO9SKVeUko#Fh#$7SyGn10 z%om>m-vX%~7CI(|yEkZ)XJ$57uKH>!kq3D;EUH5_kw6{_{Zxu_JA>Bvt>2YD58E(+ zw@0+-ZUSQ*u547w>>N=O-Yp!2@WTXwuS1{rn+Yg*Y!M1g_O5yjE5_6?M|wGoA-nmu zg=Js3t-241M-QFLZBz%9@bVtAXDHXXnew4ycK}8C{ZTuL5e3JCp)8agP30|E z9oY4h+Wy`9tPpSZR*_%d`w{TpeJUb22sw= zSctF)F`!&Hq@{0B*{`RKs}t&IkVGV6A6MA90x#aR|>@q&*ZbK_|fVj9~&;a zbG!8)CTXWQUqB81)B-W;N*o>G;XKnGo*!wuuK&drmp%RtLj@}xEpP0)l1nUuL%FHd z4o5g?0jl@!WeI@V-+Zfg7utj@OjG6wm`r?Puu)Yk#i6Y|ZdRkRhh^{l)I}77EX8yW zmm?d_kyZPK#B~P8SarUZNNBpVoCD4fRSv3L9TNhxGeLie`%6ATU9pEVAlp^sNl)pG znk}Fn-zUUdX%nQD>s2Yc$X(}BpwYqS04uY6#tUQbA+x>xbbnP+sxDlMNf5O;DBTUs zH?15cJ8Uv>ZKaUQ=vfK%9Qm@rPASCbHGt8GM?HDM@q#z$qT~v&HH40X8-<_T$U6KdZag!tkg8e?md+filg6{R zk8=9e(p`XTyogE6p=vl~#;xBVHo=AR67mtfH`8JXNE}9%wH^k4Y$-vbNbMu}2#myr zGMORe+UKcre$DZ+K07ccBtup26?v{)$6lrcB>5oa!~7O4a&j=$( zFYgAMC|(OvwCy;<**KJSZCr(+D#JNudvs`%3`vffI|@G~R(s#kB&VSb@F;O|Z0Tk` z6Zd52WQMvQe2y;0*!tHbvbR-9H#Zm8A}isR^eQ5K-g>LsTo&-?p%4Ln=VjtMZf} zoC`)IE#WzC;lGOF<?Ajig}dpf2DbbZp+Kld=V@1gW2XQ` z98LK%+-VOjd$3d_c8b+igYfERMj~m8GB;^zM!aN7sb2STp$n=f;v6t~mWj zl`{q{$&x^SLbMTOxIjPLIGNT_8rx(++X}BsX9@fj+x!Ef^HP*I7Vp?*l3fHR|LP#q zU3m~E`7o$RO+~|h{UMA9-2q?0Rzp~F{fGq|j%Oi5vltjO0hHn6OJo#Lt;`*F%F|zs zVF57O19Me(kISpc)DRhtD$4ylIbJ1!cqNSEovIs@zHphV6G%8tnS^c`{@3nxSl`eV zXu-sn^*Utov?iI_MQ#qyMRP#u1VM`FVK3>W4sp8U3I%?V5xUQyc(gGD4`dXghU76T z!_9^%s9p#^cP`V9;Dl%Qxwr;GQGtLYfiKcnQmRw}+gLOuZHApmI1X>9hJ?YXQlRn_ z5|{Ct?^4nS8&c!XWTE)0dePa_3P%UD!PD~6;d0xCwlk%(-F_)cn-rzuF%gDN9qt`) z8j`d{(UBT9p^MMVD3LBMA+%j8>(=SYF`OP_V3MNAhY>HLTlD+4fA!n*=y7s#|AQ}~ zgtph$AO7(tv;T7F&I6&|GF|2IDHlCu+2#jtzos!_-k-bV^Dq9>i|5ab_NEM+H*)eB zhvm^;JDX2M-kUu`W#2DqDBCvtFui!NEV*sjI9raBuhi|Bt9i;KT;wO)W_M5T?Sot2 zTr>ujJzMH@jn}6h+x~A_KW~9{;`8=PLCq$ezImpWa@m)lFAb`CYybQ=GutPkjXHEm zahswkbcOg-7pU1!^2F+e^wyB>$i0_a&>`sn7V^3#a@c6vuT?lYAPq!fvf&FiWp9bDV z^@)m$*vk)G=E^AvSQ3oppW<&$yglAz<)o!$oDi9VUQ zckActgiv$2+yqNzN8x+JH9naO(FSW?voMWsOCn{QLsk=Y?m|r$T=my6)ySWk04cwx( z(OQq{4FqG-O0;FF@Wg_Chk5i5ACmhxsq+lg+`Ad@hb-VFFIMEyWxCV^6!z?vjEUd+ z9f=~^Frl9hZ+(J^Mp6_FLmk)G^zye$q&xoExi{M89-;8!$&%5_9-)8%0e!(`6jmQ| z90`#%2da)c^FPLzy~;~2T}WR_oPBfbnCOFPrF*#I$ZYFRnye2zbF3ng|J{)(JGs~R zWc9?%Ov_wyxY?b{b8**3L}O8#9?wR6EX|sZ=oZ>)3t~dOqdN~E{%Q)z46eHz;P-Re z1l8lP_pB^ylUsnmV(v6kW*Zjxc6=XgEGjH9OC###z}=SZiw(oac5QP!cGA&+KQ&D! zZ+ZzYk2A5t^6wR2CYOHuzX1H-IOXdz`#32~S5n%0OPi~|+9)IdNpecCLUd91hIojx z!;)S>^-ib7U#rrP`cb~&I|FO6Z>L>o2Rg=ucB_J z)R*fK=s;a*fOfjf}RG$otOxjS!e|g|Q{+TOC4DOw; znx9E@AdRTuBWg8P3^ilt$Fn1=8cJ>0<7rUK-+bryE!!}VZ_kn@KjhNoNbZZp(6%OA zm-M-<3m`lP*kTDGnljEe4S_hVk|VS2s~}hGA60=b{QP4e#ez21$-3^ zVMQ6U{h-bP^v8rj?GfaGW-?JyyrEjhc+e+RCOEpYGY5qGV>EH>8FGVgKvXf9*+ z^Sj3u{v{P6@{ylJ1~WDQe_NCA93M9F)7QghxJSmSQN+F`?cc%)# zHgLGD{wN2*6<`h%Mzb0J%@@`ZLVoo(K0Ve#-4De$;D|K39gE+8@0r9VG*aM&*;~C1 zZq~*@p!PR*SVc7!1qC&RRIc$9<)FNP7bu`@GdgV8Pv+OP!{%MOJj9ny->Gh1+8$bC z+-SQ$g2o>{QH1udbFBH-d*ds`!4b1hu;AM1flvE%i{wj!{JO940>9<A~tXad`&YRC_~Y5(s@?Uxo` zGhSX8L^w&MUCuUc?^S0)eq>#UF{|PCo9=CEzH`0kfB5?QlkCtigkIIV40nNCv@{U_oQ=6-jQ1e=$l^;bcmkKOP{pKX41mp z-KEKYsjFecH9N|dZ;Pqd%7zK0#wzNRM_Lu5>aNqJuT{Z|P;qh~=xU~f39b`9PfcFWxO5dS zmnX|Dj%fNYXU8hZXSQjgn~uY`h~pv}NPvuhe}RPfzBm@-FO@K6P4EK{KMvhE?F?mQ zUg7UXanJ13*zP*NB}RX1R@tyt!=L})qI|v_+s_DUc6a)A!@^7@$7=aX`#raBCxU0P z59iKgX{5IdH4c={{L^tvqoCXK=xCR6+P1cS{@c6hmCps6KeEKfwl4SHnhEwL1UxU< zaMjFQpY-b6PuuCKbH{Qf_XiZ1#<{~kTZokoQC9A|<-5;mZ@P2g!l)kjG`CV1cn8eL z9w~fB6AR&snc!aWL9Tb|m!n`}>N~-Nk=PJA$){}vx1^460gBj=>&+2?Vkj`l|561u z3Kn@OYOqwTUPGJ=3-G1!2wAqCSGg(illc}`OjvR!+5x4!*IsA1ZURG}#%bNG*s+Kc zxfv=jC6~{x0}K|A?lP~ zzcMWd$KG*jmaeVN1mCJaLw@u9d3eTJCckF_7=LB50b3I7;eF&yKTEf_Z=rHIf&CT7J>56yrN{QP3s!RD?}tO77Xju|*RzUubeY$k+8XEVxGxty zdhH`8yNvNI#v5H)XHNg|V%y$J{Ep@qHUU>S4DC_>q_W$UGeIX8jqS;zT90W+;+cx1EP_XVS?Y+DDQAu2RL=b&wA^xO^({p*D-E3Hx`KcB>rs%Jx>Su z=3V>EJ?QjvwKopn9)zb>$f=t9j|y%~cx(!QS44VfGh$sKm~^FP!os-RL|`8X!vv2A zrO{g%a1KhEVuV4_%cYQK}mETq(FtFM?f3%K&Es`3KFkHA2Pe|wdsDJJgiY^0rA}gheSHW53^S0ZT1cn zczbi8FVdhsD|iE(Ax4$_oA1BJ=dEQ56|+FRl!9YgpXnfT)Zo=m=#^o{Q zrV`1Wg1rp@9@y{y#82(=RT9Z`9cWb5v<^n>MR>YbC6ssD@6C0T|#l209%^zNo;&(xiq@*z)b}2*LhC~9zbz7Igw(N z#MzJR&^bv^9XLRTYFvlwByf9`N+7-G))Y)gR0WbNl>&rXr{&qj<)NTYhs^LUkvPGO zhMuk%j9l1Fan0yYUBV$Sw+1Q0aig57cjr?QZj&leqs{~_JAa}My%D^c6<4T~seiEl z2E6lW{C>5OO2=ng5n%X}eTPQGoT1osvCJ<#4*;oYqPoEG&9?k0pj!;cBlBccJ18qN zgBcx>`V1=DA{yxLtJV~&_-rZo4A|z9c`yQDlFxD1HH5mr)QY^BeJsCKlPOIwoD$kj z?7Hb@9lrlYVf)8_|C=8@JmzFWeRpO7$Pdbrb5T-9Vlg zaEOyYc*h;EPZ&AHLApB)>K$G?_vGe@MTVx=g{p$#*CX?ern?!~ zt`qY&u#~KG(uRzz!R{yFQW{eWVyiAQ#KE0KZFoAG6x}E|k#zT(^`5^zhW*q0y|+?N zUjeP;qJhM&U%|f^@j!~hCIFiIKA--~<8>+ggT}~(4A`rkS`6((pNF%=f z1*sOe+V~+uSrcq#ht_(MoqzO4Q_ik!Iit3L^CgL0-}fClUibFh&61d;Ysqik-o16} zaF=O7U0+#O%hJv>T>+ohx_&Um+HVyXu8;lA=~ppC`jDk*X_CHbE31s!TiUO(`aVmT_MY;?3DT}$2Z$BhLVJdZjvY~ij+n#?C5u8|R^sYYg2 zKL}*QMe?izxzm&!FS1gklEwEZM;oXkG@GG1YV#m<;tpwrrS^w#bjNV9io(q$<-S8W zAWUfhwh=IG2*-q^mKH(B8ab9Sv@#ScX66;8tK%-0>j_OYGDi^B{)A7MK4fS_DBweG=Q!eP_o;5{5rF&9=5AH zl0(oZY3#aq<1DCJS4;dIpT8t7TQ2}VlMm;KP1DvvuwvH>s64Wg0G5@ZATMSa8FJxL z#|E!V11!K>{FS-Y)`FVm)V>2+sR zM4Y?+rlKA8t$qRWM{Ba*U5yASxe>4F#ko(-wdpq^eBHC`bM9}S?t%StN7nOgLkW-F z!xForo^PHzrUjOJj^>Okrsr3vA2<~MaISRsb1tM#lJ#u0Tck*AOc*^b5v$)Rc5KZd z{!l1>lQhb2f3fTJ(-GEl0a*3t!&%*mr1=@z{Y%IGM~DBr;%#h%X9a_K`7r|DcuiKO zeT8?DxI3#djldO?a(jjKOt1+vk|DMORk;a5LlcmnHkm4sOGk{PM&nU*VplB_K?FY3 zt3qns`FH%CxpYGXdZ;iK#MaL-ByEOJ9gXN-gMP^ihnw7UNR3eN&rMitIje?+^p`(O z?90bO5c8`94!)p9Ltdv6gjG991?b1d%Gmjy?HbPKpi(s)D^F=CMt_h7*f`GtOnZacmyVV1NTCZLTH0CYQXEY|DHT-`;_;?t?;OGjv~^?7J}kODY^V=_ zpnmgRIS99&@ZB>E*tvfW^b_l*Dd38Ed_uMR_XCIpQ(d*X@^acV=5E~}F6WP;{>1Ih z2cyQ_5ykBW=slN>5`8jl3U8@pkCby|a}Xokce>k`nbP1`y`w;uO{-eAt;=V~cE8Lh z_02OpdkE~5u7+99gsvT(-h4;L``vP>zc*m=kQHeBK5E>p==|ZAUgrjR(!;M*zxYk< zG^31Z%^01SFTSJm;OajaU!(_@5~Icw{yDU(#_C7E>*|9`M$RROXEE=d=laZ;x42z; zt9~?WV$4$5q_DDdUCH#yEp#O*`mh8Uf%`Q&61WC{W?8|U1@$aC%RcDwtxe|xIoy`7 zIeZSQvNhs)bxZx}!m~&c;OHo30bymvv`9=&?17uJ-$7ldOcCjn+J<9AWI@A^q9Smd z_*Apa@6{CeJ*$8u!`h*FlF6A}w&Z%eI$*!&=(!{+3`;Z2XIdJ%D^_Tw8F<4RhL0~(6X6owo{k!UK+ z)l+{k^>eu5vuT_8rNz#q(nE!IFeSkCCCe2%oawY0f0xaSXR$O`B)@2`Qz+CY_A8PS zWwmAT@YSj3Yp?&ypHKMN0Fd$(AdHrrJeqjEb3F1*LYZSL^g~L?6B%`)f{ZsJYxP*Y z8>NCI3)F;#sDcFOQ2+xNP-mP`w^5J#c(140`KT1Pg;B=&Y3aTVXC6glWW2h9 zZ!taBbZK?8oj(*GK0p`szFQt*Y7JDa%A_fy`55aE5(7f2(NqH&${U448!?VBZlCGc zq-&ke?Yr95H4jgJ2xuBwx&9hE_o&NY;HlU0@RhqjlY(^=53G zD~ndg`hp5eK>{cS8%wWr#WBdy6jFQ$X+@JXFHZ)&NcHMuhB?VqogBUci;>Zkg$|PF7)!_2C(ZaM{mIrL#MNlaOE)E|3lh)Mm4#1``&jd z2?PibAOU2BD&0Gw2#A`{OHjIiprLmcC?fVGKoum`pOfeI;|@8Ld;Bxx|2+d7n}4@_XKk9$hlew$N5OT z<*~=nuFn|mMRlDEA?n6Z||yA(;?hZpxmhr$n~3vO|~G>CfPyiYu`}A6D}1HMQ}CSBW7VkkVnzF9_}*;W28| z?A+l;Xgpdoy4`Fh%l4`lP*5qO2G@0#_$&##Tr7RgGh+6coe4^5PtNbL9Pl=sI6Pk# zJ+@rfx;hZJ$3*_b)N@la7`evuC2XJhjx#zt2qS$}MMxRKX)=SwbxzjN34Ad~VfES9 z)RKyl_2>N%hWYw-{%d&#uCCY&$(`h?2)(_D`_q@xqm7-Ja9eMD5QA;)2NxC5N~26( zKJw_t)swo0E-#Vt2s2l--PA9>&!aocahR_rruwnf^LM=q#ZoR7 zaqF5t&NsR5`a(H6eEGp_>+@bojb6(ml5P9@45N@=^g;$->5mj-Y`TxocU!i7D2;m8 z?CB*E64#|!6EjuE4EYnWP#P6*rR%|~&BXHqr=Ir4b9V71#SWf&f`HZCnW@;X^ZSd3 ziaN(OUXCA9bFL1S95SSbH96QlPq5MnmJIO`Bc<>^*wh7_|G)A5FT}C6$E75h6WXPA zmECU4`RTsC?ACV2%InUXJx&2_(dZks^F*dm=Y8Xvvxa4G^G6TN8$KHQc$fw|?OxO} zg(MrUz*QriW#T6`E;#4>F$34Btsa?q~vS3F}l-cU3bDSz7N8M^G9;;k9xZ= zsNIJ&pOMp?UJ6y>jY|B{P3SFFYZ<>U>3DQ)99^9d^!^je*lI82^FrIp#UuqaC&z95 zwOy7^^?OS9v=A9-MPe8f@BoEUiOHMk$2svLEg{gc_&>ePlS)HF%&%bJaF|`ejv1jq&|G z(rQ(;4KAu>ipGhash|{P)Vf*Uy62;X9@W{M8R@JOwNqTS1~S=nP$5`5Hn{fs45vK& zl7HjB`TpnoRU_yu3PbjZfXN6eEw`QK8TN+yeYe0uq?#32ZnSJZtxQS)PfN(i7f%`5 zDoiU;!^pk{hA0OQBQNh0`&j-)sWI*s-0R6aoIAEMnAA*7atwR|w#g+aKdLoMJ$vGG zQl*K^k)VT9hQ>B03U;^5ko=(SBK_yVGL)4ZWe;ghX<89@PR8MrV31nSLvlcoqiHCH zlu={>q!q-LeB6FRgq#eqa?vrx_A#eARe8dbPOur_=5RwUQH8i^d3I1uPL(7BfN7<3NMC<%GGw zH&~NH&Relbla=ktZZc5R8tu24Drm{7C_S5TwPNj(lS)Qwjz`Im+<(g#&0N>S>#Nbm2zNmh?}Pc)XmOyF+R<0r?Sj9Py-+x+ zS<%HWowVhiIl%pxQO0F*6U|EJdbyVU3Ku|p+p*HQJqqA(8PpFyysIqq;iZb#T*|@H zuj1tyPWS_G{N1DFU^QNO2i`PL0pQ@530w@4TVagP!g9?a+(co4Q5|21$U-8O#Myh$ zHc+8n6l@{OO8iT|@#gnE;*ANsknM zwEPxvEC2d*(S4_<`>2Dj4cd+eg~PADSupu;`Tjp*`Tx&Xosl9Nx>mBixn&O6gtXm~ z<^|cnI9NCeE3SM7a}p4R6{sxB?7F{-umu~VFKj7A<}C(xoeRU6o~~RAWMBf)y-sAT zhcCy|r{FQpe_x=_2ec{&wT4H~HG|esf&KIVwJ}dQ1#(q2+r)??oS)N|+8tyF6|pYZ z7i!W5AsQMVCaJ+}BuKn1+>qR+rWE<`i7l3iO@UJ4-bTjBU-5gz@3uJw`F=v_TR~QN z@5rb0OLE-qjodPXRX;z)?S!Ew7)$BuE)!~|#wP=*l3KdNyzWZC*@tSO9uOEHoN(D0u+j~IlNekZ{QmSV6b>War_Nu`r77|$ zeZtz?x;C5+*OFR4l1Uc%mWD_N`=T4El-<*F&h2r})Hxk`%Zo zek21(<{+~lHO&E-p7_aW%c&5F`^35MUwk_QF=Ptz%k++#x<~tnG)yiuEnk9LS;>$P z1-LzslR%%2SFp7jgN;EVl@$mu6c)zhz$vI>_KsBzxE6IP?asGw*ZF5IpK{zP9y+C6 zf7NK~_3cKws1AvN!^&Of5!ctHXZ=P!szm=-rN4*Q4qR?Ms@HjF&zj9tO^+mb&R;L* zq+d>2UHVO)?F>S-%ZT#I+d$Wpg{jV;_LVETGna!lxCVz7T4Q9u1FpwUrn%?CMaM+T zV@f$T*6B(Is2RIdvqtUovbPt<{73|g0@?By{PoEb=%|?gG5`MWn3aMMm^>5w$!hJK z@qPGRDGSM_t!2k9H*hA6xYyDb$^zpQ=-DbM_89KIGPAnVckqXk`;u5=6~+^;jfo!# zSn<{?ZOz;S#nUCKTtpHqZ%*|1+ID=V!BwlY}At1zsjm;y^_Su_F` zWQl`lxiW=n{tx5W1>BWGV;4b+dZKi`%jsmkt+*r(mZfS!LYYdVMd7FvjSf3CSxEsD ziA|z1k3W+UVNg9}sak2!s}(m@@5LCs7Bjcb(|oeWrr1Yy&^{+Wzi5XAee}|~vgFLe zbE8lLJ24|piHH`ke^B~Hk-=XCpX1@r;28UV*?luh*BA%@_meDG=cdZUCCNj zEM>2Y)#Ee`Wn<}v5`6dvB;#F#OdFL(Q6S~R$C*K9g&12UsZ@aul4dBzW-Z6j0R}mc zQhL!TgNWc#46rId5`$k2VI?Q=0kdG5999`pY1B`BL|pfl(87{TTZV&^lu!a43Wzeg z-&jqr&U!Iv_LI0!RSg4xYBf0)bh%nGDGRGh;&co$H?dM^TWKZkq-LMM!x>!WjjOBu z;``4j3$q`vqsxFe8xv}ZlEnjLniBQJR~3&vlri6dmOq+&9{;V=;53GWb}us=Qc^H3INxfnrE_dcO)xG6Q1(wO-+oPGuqCARc|xxH$iDaGqxV52}pY z&N7ix6%A?Sf4L29_#4kZ(T=#@WV>JF$(3#A$IlMANu&)$(*#q;cke1MId|ra`YWdu zE@G(Lpt@wX-67CN5TV`ZY)$kZxatM>myle`TK5y!OSXmq#jFvrDw_+;u+b#^SsW0+yGFD>#kn zjRF?Imq6{`jkgDIa0RH6iz5;#Z)2lr5uKG&pN9CU%*1jDAU#%0f*dqd)~hgjs;Kkq z?r{eyR=sru0%uI~;70VIsH_K;S&8Ap4$kqN_byy|_3Xi+Bp3$bU;FN2D(g_gSsYIb z%3iMe#rN|$3$tbPm3d%GQr~c@1&vylN)_j*ROo3X$38nmFYd5b+~GR&`$0~u!eb}x zPias%4%ii}5+^eoueOX=x~a9(V6?vEs@a_?uGVITgyLy?S6~v70?pE*?sr6Anv;|| zkeYYqP)7R@F~`LMOp&xuLE>f`9pR}cimw=}1vPhhV*;ir+UN#2G45wrz%g=qHbHP{ z5hM)2fJ7xqFcmQ)hcf7&qnzM9x^l*|r9r74QBuE$kZHSM*fn%{K{mDfR7c&B=BG$X zCmxOl>O1ly_PKi=HvQT6p@i+Xego(m^m8cu0Rm7W!^P6G{ZvFeaeGoH-q?Ec*xOHc zBxEA6LNgdbX{dypEnH*GK}oaV`Pyp+TelFYk)dgoyT+`jGbpi*&8H^2GJwi*RckOH zd^iw>&K|`9sTs8Xb(!ojUp6N;Le5dY3CAogZKG72z$+x20%&VX$cV#C7Uc- zxY8n^fd9q!@d>!O66w-Bpe!3>w!K9}3bm&IHD2maCMjlfNhS2+i^+|nIn*>ve);e4(H8!>@sQVNfN+ZJQsC#`b>UJjz zs_+zhyb?w(8?E`hURAdzg43yV$hgb6%*T}pp*DC6rVuh2u>NJ*(`#23Q?wCHV?hz3 zm#<)4#}8##-g-EF^Ti&QUav*y`96auql(Ok(g7L**8fsGZiW7qRBUwf^FLjB(E0p3 zrwn%zlnb4yPL8!L6QRTgpSSrBN;X#JTaGUaLrXa}i7kAU)G)gmsH;8k?2QN;EU#YcI0P52~I zDyNi%2h|g^Wd_o*BRb-{NK!^GY;S#z+4oj^jUJ=oQNMWNyo6qPc%hZ7PmGcWzMm@JML~f(h`7Iq1nB9^esu{(AS3>+hP;BfU&7`ltIu!CK9_wVs!GXqGs0< zj@YGHLd0`{nn%pG+Eky&#ZR{}8`B9sXMBrKHdp4~YMy&vi6OjCA1**!jk6lZ4@P?9Yk z{{snYTRgo2;2L%+tR@^k@@Jf?V5G-MwWr$UamKuW(KS7%unc8qp#*S}^-%fiVskZ0a+J&=XN#0x2iWW+Rcj z>wcyPr>ZrmgauJtMganYWoZ91n7QvNPt= z*B;-2E1{i{vJ&>M+`nvG8?T*_zHR=)dLyd+d#I=RTd&mBvGZB#7~xb%MEH%Wf9jx; z%^GKNoeCLf8y^;Iwk1tUeX>@C18vG^94=Q}>yk~Udiv=5sG8ld<@FUJoQubPH=KRh z{p71_S3muxJCU*2u1%|z4aknU(DO)MrL5OQ5B^XYPxzUs1D+uipl_VqTW(^7__E8w zULgsybK5Xkr9hkraxhiO@24arpnh6Hwkplqd!Gw3At;S~DHXoU+Q z560l7i&^88`PkaHD5Dq~)WRM>&^j%_sIOiTt(aV~rx(6|@#X*fkx%ZU(DZF2CHnvtc{6BoHc#san5z`V!*9 zF&}Z)oa0}F@~ui2yq8Qpv(mncvNJ;-x^uQ!*IqN z!3?{7|I)*9n$ca(kam(aLZlk$BF#KXkX`oq-H{=wgz~~C>q}+QeYTMgEe;guU-VJzx|!utFta-Ui*MZ#KXVlB zD>-`WNZ=rt%wG?Gh`#XI6`Ja$W7~8}3H_ zHJ+k==lIwWg*)7I>#(rUklh-mqL17evrBL{dB4YPl-7O2c8BKQ?<5}8f;b)8=iMK_ zMrQ0)Z+9DSm#{kdKi4}2?8`DLk6R`O1> zpVe_wB~mjW^|lDQXtXphc!m8yC;*^lB2H&%oX+ecwMe+uyq-$=BGo1D@T1ou`Rm4* z3n_!WnVWOEga;y24Qrm0vm`AXrmtI(GpcEkMv+0XdeC%5K9;N9M8#7mS}_2G>0Fs5 znJ!m~S0PX3F!6LO7F|Vr*L_h0GW0|*qS|N-KFidcBcHx*(o?Pdh$ty7CI)B1Y4JoC z)9E}oRBiBgZIt$znNh1!r5zf@H#^3Q2Q>A8ps67|pLx!I&J zrm{7J3g|-^TODpIZnSB14HqeX?)9wdO2~9Z)2D$L(m$bZHrX0)%4_n=J4E_!dUeSL zl;QG*Dm}v@jaChdGyZV&I;?kI;rPw#nmZ--qvn_DBMuvW`q_=@(__y4RieXqy4}=$ zw$C|$6Z-sa^V_y*qFq2Cr33qF&rp63uw7e7n_S_nFo)Q3qebOOnmg2_U<7)zRmX$- z(8?FPh}D0ip`|EQYzhv)sxvpXNW6A4DGd_p0Ten_(@3Ne&k(uuF6hurzS<&sE=B`Zfj_h~LJ*wi1 zE-PKS&K6#74}-F5m7k_4dwSM&^4#9ud+(NOh1q+{@#ZB-vI9-uXCVm_>XLSN->C}Z z?Pqr<5~i2Oj+SH~3Z0Ie5@ptn`JOlY@YZ5d_w=!g3OQ{@WsDhVaY`!~HV{Oz2}ZU>C(5qysh}(!_*wZ#SdJv_XWlUb~ws zYFK}sjH8k9k`Yj>RyVPVKKP}6!Irqx8vZEu<%)~Tvo`Ao>dDiArWq#;qji;CvkT+b z3Y^c)Pt8J=MQI0Aw(qM>Y!iJ2C<{7-A3$WLTE`Rb2$YEW|Da@37kkV=&$t)}*gz z!@2q`c1OJ7LHWBett%Pr* z*q=yMa)by>$@ZSyr6eSsEUTCGHQc%1Bs+Q^trmkh24q>G`g!x5SUM^(z(olsfnnj3 zHK!WZm?Q7=7;nFoj`|D{ee&wM8ff$d6n%pj)WSwXXkN-$QepzM0u7I#L3Rkmzcj2! zma#NVSJGv&JtI1qvh4R}@-~(j32e%Gh!1+7k-$VWb1bKe;G>QYidw6Zp^FVS?f+UI ztO4DsrP4&(=?734pHzwgq6+%~muzO4y7`K7*~QQ!YC6l|FyBq@- z#_!iyKTel!gk5QUoJ+UX$~zq5pM*R@V87FdODObl7SncWU7!4&?T!};C&Ko(;QHOcSG-3`J3s#w&y$^hyg^7h6&m0YxAbWDn2%cj_XqD`?3J761Dd^KucXK4_a=@t>2b@GU;OxC@-qw< zog1twdcJAw^4Eng|K ztzBHfN&~yb?8-oTdI&YoF(S2pGf%~gWw%)x(%q3`mNd-F3yjNpL0~fRMp{@A5Jbru zmZ@e<+;(tpatR0*F;bMm#;5fvh0-O?OG`CtDn&>S4PlW!t+iZIFjv(I<^tt>kbC(e zTH3XV8-!fk8OQ6-EDkV`kOd}GV$5R9(mUqfD@hlt929!QXl#FUl%|oE>+1O z)tHsl_hO62cAjq#)4;Sug!1xyl5MPP)I^w=;0Q3%^!-KHS|cXWcdu{#s@^~-MBE-r zTK5n@w%{fFs#P?W#&R^7N*fED=9to&KN?5*joZq|ON!+2v9TOFR070ftg*5MP>HKGAT5HYYoIak%O>60YRP;xg^VK*_<~2t0t}_uZai`90 zw(b$R=bG++-z$0)Q8EwJaUgb68|Wj8I;rh=@f`%m6Y6abj)_`y=2LY_8yQy}xsBuK zeN_&cBl1=09+6v)82_Cce|qH56y|CV(DwDwzkEzjY<^sKiq#6oa4A#J4qJ5OzUCAV9 zAo+CmL0gtQ!4y|UBMw=eno>)KxGQNN*s*^PXXb510l_rKoN7q&CMg9>qBABmFKZL5 zMT1Bx3|J_^hTs!x@toxSX#{|dBY-+7qv&lLQ!fR{)HS7+n-B zICew(P^>(NMj2QnY0xmK!;~zmT98m^tUBx~R!QtTAmNREVH;B2s1N8SSso3U!D{T9 z4a5=m-VG5QOLghQu{3W<6Sdpb{F3;tHIc#eAfncplyUfN=~V|GsQ53w-%rGwO#)xR zbGw4gDv8(Z(7qBlP*y@%S;bk|zQJ2xAarA8@jO(1_K3JrE9id7W@byv*{BbSfE*Cr zR9&CS*G|+pyEJ_trcUDGI`7yw1xnr7f)Od^M^pICn%=&BO~7*L_#P*9&Po5O?;3#` zH-vrAKWHA#IvA_r;No#=zsH;P#A9M1%%zf$>e_eTty|CYWTNk}a5VFO0xab@8q4f!5GvQ*i$Z8S;g zXJiC_w1zR@0#i-T$3gW#l*VJIu+~a~$Pl2ix5Cd+0W zfRY;UxD2rrr<>~g#DFB|DlEOW(WeD6I`ph2yRsHcupHuEulgUNejRqP znAqPuTmxc;uBu{Nu#t&%s{VD;%|t{vhEX(Ob9HCN@mBf0g;!a4M*2x7-|Ok~DbykP z+GSN*+D@OJRbKZsI>S((rrlkGug5z^Wwm||7j#o9y@={A29{bDnK3Omak!Z_kYbOd zSQn8iSWk64GfZaokW&-(T{0$VfXMN+q4R5z&xXmBbrjV)PAQwiL!PM6w18;R0o#}~ zTWxlz9Q0)$p9chnE7840z2sU}Cvu2>i3*K93zs-2MzNyGl%WCqAqLd z7NjEmtxQAc4RGKvFKIBG@TNjS;l0d(y?g9TU`|E``fuv=2^qe3RXiq)qyueg`*iD| z&}2fLf{K1ZD&6s8-2Oq~2n_H9; zUB1>1cg2(YR0rwY7ee!0P4A8MU|_{87`WP+fsU6ljviAE=*OGI3!4ZZU8nAhi$tQt z!`T2I=qvU&x@<$SuQ91{dce^p1|bi3M*ufA&{Sw~y6$Y{X^x6@>mkRs8$qDlmCfNjbv%V?gvQ>hT{-dSIahcd;a}|``(4H9gHW+Wh)@zY$Q#>HdA;- zXx4{XeXu%wOMGxc_V^JJh2bhu!%w8h1+$3ZD%ij@^?=jG;Ts8IAC&07_pfX)CLU>ifx7TE_QlIkVSx70z~IvleeQ6N05Ad!u(~V*#P; zUl%t;Ta*r%Ap<+eI0ta>D!D?N#5qDT$}qH#CkdFwA0B|`rVN*INkdXb!AT^SK*L}S zQd(8^(FQMnM92}{-TFn3OFS=iXX_&}%(nNP5DC(I@*VYw6}sQh*iBZmH88(BA2OA? zyul7EO<&$fR{54pWTsPNwT^=v2_z$c8NuR}wc(GUQXrIA3JR9Sw7%%qcpM7Ig26zw z#0L}5R&>=tBbKxsF>sQ3ha?VB)6X{|GeoMx!Ax3e8`S>sqhr7T>&)2&qP^eEs%0MN zPYsHGk*h3C?jGq|aW{fy4O)@v`Tccj^7&BqyOiR!AON4WFMz+0#7}DkWJ>i4V+tUJ zD9u(tVYxZnT_uO3Dft`TXgQ?K9*g^%WwWLv%56D*d3kx9W3fYTgE{?iGy2%{sT*-3T!psF_og^>o+7+f#<^67LKkLcdR zpPKa)QzawfWs36^N>BM@lIf4$Ldlz#-IIh)w`>9LBs^76xQ7H#?psYuL1}?(66F;c z?|~N-ivIR{p=*gwuh*H&hEF_2He(y)r8@5IU1 zY9gruX$dgTdK@kT5fQlT^_{xe#%p0ilS^mWFbIQR$Df{=CAr<)t6Ug)F!c046HhOO zh@URmb8sr15xtBPb+Lj%XefDbQr$olG}Xe0hPie?2d>XcOXSF(1_X#RokgF4hUnwK z1FHIUo%`htcFt!BV@L1Ey;{6e(@=c!-6HSW@!7v`8-u9>X+~{SAJei}H)BijTVT$? zK@!KMn^eH&k#^d?A*YT}NRx=ypnCFc5^wlB>6x7+sd7ji{Ag(lI#G-~@ zP&l9tr3qB!7lOZ0E`UV-AZSYI0eA3Gpgg4t)aMVA8Rz;ngX~+f`#+kRe;8L?70t`K zfIb3a8Oma4>mg*IVn}H71M!INhin2kq0^-Z$oHd2fFtW8tJN?T#)R^VZ}VB2*$m|Q zGC=mhhI`XNdYWw@r6J16a)8Z9f3GfPAnL|qwr6nCOyE#}If~+C4ij4!7Zvx9EnR+C z$Rgy*@0G$0Da$ogHg|2B1WAQkQNmuPK^eGl%LB75_r^?D$E!95`wG4^?cXPm`)j8j zr0jHptM^^8Xbi+5whM2sye5~HOnhWb^f-!T0X)PhcoxHnJ_zM&j$q&bpyOr@xD;i* z?0us*ffW%at=)ZGDQfY!99kWP{;mY|&D{Jw8R0d+s27OBvvqFYIhG15wd?>xUmTt* zzB5XZvgsHo|4h4lUH_PhCg!mAqmt{j>iZSq)FPW|6b*Of-uo!MWjS42cU>#yOoYZ^ z+Y7gpjlYRI8Vp<~-O0bz^2F$(zpNf(>a(-_ZO@u}QLk42fF?|3S&&#*1_PRV*!ccq z;x?HX>Ox$uwp1U1APqfFNVk}JW9{Qom?(o*5v-&EnF-jY*cFRPsw-=u{#Cy!I6ouI zzegv5{7~A54=_`E7pP?Yw;Y@|3V{t8-IapYZ;1^uF_RrFhM`k3%y<-(1s5GVEMh4p z7p7}bYKkV0VaP?c>IFO8Z4araV>k1Z>?&)J426ACqMG~4DgjGLBtlCx2&qe;Y$;G8 z%=N^vl(T>WEzlCd6wMV*y-apuc!R?tQU?k*ZCUFUp(q#i%_NM33Juf%CyETdQKbiu=;xgJODsv4IobY+Y~{OOg}!~7O?lmo4N=cpllk6nsj?n5eQNN z2N#v_z3YBS^YH?BGRSt;vPCHUD3j7rwnBmI6Drp$+&*7VIWNmX3KZ9)3feMOa zP_Yb{E}XlckrYSVx%SHNRux-UJRM;0DY1}kpH$Y0l6PDDEy7&J)svU> zrY}y5hIJ%UVyEn2NT@&+f=&PH_tS4LIv4$w=;(Lyz=kfgW#9WAk={#QYAWe8Q$2Ec z*Q9L{GIO{TSC4$IJCf&&+16QDubD@f}`2 zyd@rM&RpU|8ckN8P$&?f$k610obOV|%$QT_ZzlE&e^xqq6^>^9X}A}dXS zU6v#ol2mb*oPq^gqK$CNsPhw`uONRv(@`pG&>^+bEZ6E=I?pG^zO|sQ{Al*f&JLqsNyj|LC(!^LQa!?gLQ7f?SbeBdz-hJ@$C$d$d*T&L9=Pc>dk92KaU z3fz|NW%usw*6wt>W8Ayx+xGoaN${bHu1}u#BC`L&`DQkQ*Z;V%RX4q0b@%6($~@Uq zrEu-f2c2C-V#WVZ$vYd5zw+MKvHP}}-UC;?cCT0a&3tp_%qEYt?{_$|cKt`)@p6mP zM+y@CO8YYl|JZr@bw)F|diYLO zWdTpNtxDSwQ7xj0-x8{wYXSn(h;IrJ z0&^MQDI~M_iE#rCcaGnRQHt#0)~F-BPr95Hh{VyZ+i8rm)cwJGOEitw~TSr#1zy;M3qi zSb#nikfmy4h{6sf$tdLf;`=13!dwe3)VK5PR$)kMqDy^DVHz7c0Jv!Ns|Lx6r6vg% zB5{TCN3@)n2<%bzQw5P)1=#XU1r$U#a;Jr}oBG?M-8K^TJ}+i|Hlvbl_z__aa6P;Pb;Fd=-{3Po*%lK$7${#nnlaS;~yPTZ$?TNX5zt z=N?p2!w=*4La0eZZ*KFBZ@KFsTmrPRV8fVDk6uasAcfap$7R$LvN)KGXhZxvQ|rLE z&HQmT9C9l|I+&NHbu0){PcX3X1S#jVND=^d#GFn^56KF(MZlow>Kd3+1twexq<@-| zc6XD*eAr8xTC(qn>>OpYLfxeBpKb=nLX!BlNF3fCsiWi2EtP7CZlt@An90BRuEyLJ z?k^Ma{Sd)KGODFg7@=4gJ`H&UWNe<|^IQP&>PnUb8a_Qw2RfE+9m^p}j=!~DJ{fBb z(}$dVMB`J4jK&!`DXv!F5ssFTk~p}G78l^;gFcsZ zV?q28%iR;?h|z?uic+-uu@u5Fv|8CCuz$qZUZTokV1$ zrX>#~_2-L6(~NkPkdz%Fd)KEujdTZt$5pLXiB;r*rpc3qa*rO7%4#202;1Rgdigh}I8a+TiD7cfB z)rW=AAV5tY->iQns9)1TRj;{r<91~5_=0uT=WuU*2olfM3!kH*Y9cy41c1>aq~&rI zNzIsSAKwFd!j1ycA~=fa4AT`<(JqCe`(Q9gyWKF`B{D$R@@52nb5c*|HdV@$e0>f9G#pUX(1|+c+f1WsPdVk@XKePHF z2Gv|*`B6XdljbO-0ks<$p8=H;wA1{lzDnwuzNVsc!L=XluNv!(zx>0RnC_ANyuemf z+(bn_`)T8k;|WX8_u>C}Fc)t$S6h+stRY+SRO23#KlZmRX><=a4PM`$f5!e~fA(GJ zE=?)LZ(^gz^nUF5v!iG&^X_!+R*8-5=>@$%U@rt69_DC!&XlzD-&XQxr4t|4L&1WOX!Ba#A0;p!($LyV1;cTdanmB1U))$(p~ zq-o*Xj%KNjYWL;I5w2{?3acxP3r&&A(FoJrt$Zpx_K~|T*cInJNefUjD|3XvmVt^9 ztF{0t(P9u1{~;HEuHlhf02u&ueNX`oGMW7->m=bCI#bg=UNt%eLTtwZ0%bX5^to~yS{@l&XV{?cd@o1gF#|j0W;rvQ- zoO6|oO9$Lzq(<5+ygaFb(9Vwj5Vy?p5Lh}{=#w9VRJWVb3$C8eEu9d>_u5Jt)=G9C zdV%aUdSx|pW-MXGR?zrNsh#cB+t_(p=Z^#Lo6S4_dgXWg>6^&MpAUCEzSQZaJmzUo zmVKyr`dFm@@we?-snrCi595)EGemNmU>)m@TNx3HJ{*))ju zZS(8ZTV`clODFwCTQhBK)w#kudLAlH@AhyTkzmOzN~PI&z@fntw03&+#-MN8w`(6K zi4Jy!(q6an>wBDaj72PtkBs$IF9tH8Ie8aTa!Nl=t6~G#xOxy0FXl3!*l-N6f~9kk z4WXDy>pOs^Aq3m;pnXqn)?`hWa72hv{dx7yh4-eCR*xm8-^3-i$N!4o*T-)EFUGz* ztjWFG@=YZ`fCM5W5Hz8NY7&ZosG+xjp@X7?01*(8X2EtsfY1Wc2?z=ZNK%M{tW%;RnPiMXV@$j`{bT0W}c?8^x}e<#qD z<7Z+XMM+6IFI^9p-hSRMr`VwD5l_9%`@qI92T0UByNrK#)tS@_AA8|OS+#y)!{i_; z9(dEi$m{C?Py>naeXa{Bjv26#&@@i9#yiEsaJ`fC!^%J6_**T^6t(ql{0razoRt6b zFC?%}9#omUKop$i;=Z1g7G(3nlbeeLo-W^dzN!i$dAJOJ4LrO@hd)RwL32X?cK=JJ zUj?0t9%Ch|!Si1=JIuQLZmp^bxm)&gQOrJH~cyp2e*!QVW0fvMD zSrT>+!p2cVpjvSOi}f-mSk)zwGI?xgd?n|SCS0Z+g2^e#jA(xZDZ!m7yUtaRyAx$g z9-TouPmOo}#`obtFAI$E7vo6ld)6YG5=pSJCNf?@%j^xFaxu|~KIk#4%&_8SEodfc z5emc2&hF;#*UBJ!e`$rs@ADxH1eMsHaawN;Sg|=&@Izyh(B_?&20Z303bu9itwt-B34G&u*N(t%kCZKGN{;XcvBOOsA>b zg|j=yMs$vKy7I(&olCop4~0&2ZNBtx^)p#vgDEFN8zY+lE5@&ojtH<BD=mm*{K0$j018h>?VkZ8@m$*PdwtJx9TYZT> zWpmm+TV-eQuI#sU5|>4>o=&?faCSw<-`X|YNKThS*{-srq$TlE`D~IC)B2BEadJ_m z2<6{^mZIsFs2$Js_!GgoDP`L|s<{yCCVe^o*y;EC^R`Xb-K2kNAnAof8LsDkE8pWO z|KN(>djI3ByN{*zZf&yoFciG?qtAbhUoa5B?1uhghUG6G5MTbqOx^JLJe1MQPIEy7 zolavgG2D!xguFb~Ug-WH5JbQ{lWrL70X@(B15ro@-JRJeypCBSlAUzd}*`WHr zqhg@tpR~Gm1e_P8msAXuw0_&<%so>cM?SJxU2e zgjZWm*}ajTIOFa~1uAdszL9PFQ+PvaximrlWvI|4DirzKC|_KUQ+M($niWO>)ROCt zY3mW43T;Qu5%S@b2?_8FbCe@s#-;c$<3MMaV4#y(oRH*a-Pb{2bA^bgZ&(eB5V9y! zqBaY^~FKNc$E`a|Wk*ar|^Y zQgr#@HjcKWf&@p*M5&^ba+=mDBaW_yqnQ^lPF~nOY*;j1bX)Ge+O2`J`oh%dS2f!%+!yJn)-n> z!X5nlr4fn-+hi@9U6xO4?JBT&XKuqv6{sjB5<5DY>ud7cOSZcBhF?|tNL$mIa>{h^ zTDr``@5?GzSvf1MX|d)* z?Mw6v{TIIfrM~*tPtN@%N8zB16}OxD@}$;6Dw#P0v&Rg>kJWsFZw1;}bg;daM03z) zG#gEu2^p7SqpU`l0wh~S?R8K*cokf+GYHt|RKmj9Jss#VFMtxHV2Q(EeL%{K6X&oQ z95UXT95(ErKYySfern{1@BwP{dFa6n2{s&=Jm3ERcOJZyAC(UtfN;{8dt+ zv~KKB0Qu=SDtSU1`OUH3WZ3+}Hkt`S3)M>=#J2HBx;{&7ybT%2dJZoOg3lRi=G2Pt z-gf#46J!D$TZ=Y3vO^?p39YUDjqj7lcng&2=l9Jo%Ec$%*q{fA56(7%Ioq=~s=F!t zjT9lX;6-|1!|~JW2g9P~R?!|2?9dknGZ%lJ4rM4b%G`NBAUfPNvg!geBH09X&)|~2 zz-h8Z!7lv^GgC*Zt`w;~aV8AlX8m%VFh`Gk3CL^Mrh2wzb?&5a=qiqTA(PrAy@xYX zEdjZnpl|i+I^6$Tn(JC-$I`86%r5AZmBPAgVyxYA6WH9KCbc+eS%6Z1IgLpCz^2YYPj#@M%{(No=c zv(w2ATfQEB20p$ewKh<$I~UiCKx&}6c_Cb@63Sxt)T~w}NoF?Zo1+Ezk%Soju$`~OC zj^t&j9F%r;CfyinM-3uj&%A7|@o>B-gBaPYB_ZVsRVNRc9Y4W}@h`M_1=`FNQ1IRbrKj+y zky<(S8)6NlR!&~9Y0trTEe(nANE<yF#znnXO?2ozkNx6Lns285kWW1PC+C8H zlRBnAsWKgEyn6FXh-)lb<#f4Vie8!gN7iZenpME1#&_Z!Isb!mt@YnE(s>Lt;6jUZt}X_Jrx zgD<^9;4(NJ8+Sqo94|c?QZ!*r*NEzUV4A7*T zzx=U1;wSZ!!$hjF z7U@5&H*C#TEqB5|CU&0jCkZrD#f$Fd)Zh5tJlShuNn8CC;6A?OX&7phVC5L6OgHIR zh)byc6Q8?w*9;fZ>%hrI_ z&by)r|^H056e;*ZIZ0lZ+Yfca&^H0C?}nqb{YDa7zz)K11Zb8jw)yWnmmPSwWGYD?{wD zy*UzE!OUE+NHlI`_wcyJb3Vp`>AdkTY#;8FHSL?DwvwDgB#nNvVtW*hyZLgh-^3;O z0WW1@)kv>K7L5_lsW;k8Kyn1J#nn=Ug?uQVEJt4JUYfC~!DV~az%oX1T(`})&#Qkh zsdqIrD#q$tQ_%=X?AnIygugUyn0FKjs5Q(SG5}M;0=~giZIU}N689WS%q_xgyu4s^ z>NK~?J|kZibkYA5ry3GcY3rh~$_O^TQ3`+_{;@fC|89hXkRRXE`t^mEKLdW&IV7%3I0&!UG985yg*uZ=_ef=6>-dD| z$_+O`zN6K+N`(4}<4Wn&oQ4nkxn6x1-u~N$+esu=g*zIFciHJyCsVu)vo3*08bG8? zAlDj0AET-@zEzWq7wQ+9T@&C~ImC#iEnv2qpXurs@vn0GfAvxS_b=Jfm35&yXt`&D zZY{b=O`8r-KGj#Pbbl}-j&OegWhqhvV}(WNabX0QAS6OgiA?3@d)|Ntg{q*R!c&NG z;d>}w=nkq79t3`35DYJ13J3rt0Rj-_8wxbZjN>SxK(<-mVsN@YJjYo3JK@MQsmgq0 z9Dti*lg*%&-849UX!zls2Nw)R3?G#1jmvw3Y=g7GjwMjud7Ywv@C|6UfO`EBd_{p| zS+i{b#Z0$X`O#qDAbP-kbcYgq{^-u-dmDFo2~#J?hZRpfmaf!ocvN}WN;Q>;k5Vsa zI+>uiN%|0VH<#M8TpUxJEt^%ImUoSGf3FmMy(?kAJTbb18E9pJR;115X!kRtza3oM z@d+25(-9V{REDvVR;j4KZ$|lGZ?N_nHf}-oS1ZC`Z66!T_aEna@6;*Vf>qjUw(FSd zJ&6yZ>A07pnfT_p;N6SQ!&s7=6>I_WyD*{@j&x-!UIi!k-UF$z`B)3Lt<5!~YZea> ze{BFp#sd0eMZkc3bp&H_6?Bbkn7Bwadk!}BhV+svKnr9;C)75By_5wbQ;#$w$5AtQ z<#v0n$-;LkUEe5eU_(EeihM>jM(Ac~9jvVNlGJkH^vi+jv?U;HDAZmZ${~F0A^*e} z2~IiVa*VM@txCeSVNL%i9kUZeCPPmtpLkxLQ3`IB)Odt}=Fw~7Cq;D5?7g%!S9-4r zz>|$S6kLnP>YFh#49)~0`@^C`MxVKom>X6K7EB3vL8RJN6WUgYC(TsbwY68l2XpXI3Q{8Kl;x<<39eLZyfcr zR#a4!Kq}=%DgCwB`atKt%pcwNn{9H|`j%oJY@IHA=J7{%g8>F*2 z5<9shv)Svl>3)l=-L2?^KND6c$EEN^!3X0%>l_SL5M+!_h-TQ!(Z6Dg|9H0k4Aq~3 zZB$EqR4uKN`lnrtLg>5gvGpM(;*;}f;%_p&r7Uqv%5mPIeW-E%?KH;Z!;^mOaK-tV zo71vA3p;P1#DQlDCLZm7QCFIBlhK~<<`AvJ2PY;9gE)QnCGY}5Ouh=Xj+nMZg_+}T z+5giu+i%>K?h|=mD1`91*5G7RI!Mx4JU4d{?l149!QB*{=Ga=DN!54aVLxbjTsLU2>L3cx{xGyeCrCA9l9GPR~Oh zd!x~@N0#!GP99g&q|>eToV!t8aZ2`=n|nY>;r`$8`z)%=LLc+`V?p&$e(96IljZdu zd3m>Ay)3=uk&k=PHR--vHM$R%QyxL$>do}tm38fPXM{!@DH7658mdVZeB@vF{%fG| z|NMY7?36ZU9X1vCiuoeD=t%wQ3vTg$w0ErZwYi6X^PAuJj)Xxs zb}gSjlB_;bi<9ej2#26fX}|8|N6PB3q>k z-D$YtS9?kmpB+%)M@gKboP44k>$2t0`7p_#s)cBfx?fIu!3UB0~X<%&yK$5qcox8YId@ z4GRzH$$(kxYoEmY<%~j`bYy|Npg^CkWzAo31#~GEqrY!c?$2avCGZ6Ve~``qRYZ83 zSgxpT9GoPJxCC86epXNq9IPUl4&p5os~)~ScQy@!C1MhaqO&(FG%8cf*KtOYxtxWd zlJ8n`X=!-^0K0|f2r6ll9E+<=vr*>6ftPHQq{Z?nZCGcBqK&6{T@tiESW(!PtGNUq z;`~F^IK3Bmti(4~>W4(5;@P=WX0x*`vZ8gb7Lgi$V$iCmA~_86w?lux z*npoBlvdJ_ds%>Mrdhk9z~7r5`ivWb#hpZkm)~9Ev*o(`2Kyw z(gFqk5?dBKpc`u<$;G>P)b*;JXX(hzw`IV-Y z^|}ttv$`+;zhIegIi470CZ ze|NiPon)M+LE0s$QmYp4v0KBs+@UA_(yhJdOCo@y$pawJsRAjr^J&t$$=PQo*aOAB zL;cq`-Kyf!e3LbmyjK&S;~ z3O~wy?d^vc3-3#eiz10%d%~fpX3Gm*5N!Oe5`M(y9oAeK8;e$PRG#NvhbgfcL~qij z=8vUos-6dOJ!S7F`8iya78=1hExcM18TKv>r2+hzMq<1x*U@}qRFgI>x!EWJnyzHq zBeykUOP&1dI3KB9xR6dwukL;a>ViE@OF@1s2Gv`C?okZF?zZ7Me#@#9&oy+UP>X;S z(iWU81dX_kI90VpqWQhlT;C{qhjHzg=S3gGvGs+D9XJTdv8x8i@Qj*6`%u?ly|yx)rkQS^D=I?ZF1^te1YC zY0GWOqnfWWO(!H0ALP6SPU%!W_JNtTg%PNRBc<68$R_u) z%dKaiAxBfTnT*oNO;IfGF`gi>@{RZ5k#uzroM(xz zq$v!ARLfr)K%zE;;Y>So5?i8udZ*>6LeUictvI6s+DRe|3aBgA)tDMKR!C6Da`oqB zAw<`v2y`!hbZ#)+-YQ8MQ_0KG@UOW84R0>nl8_dwFgFPQ9D zLUK<5hOYsPh%_XTRO>ZifhHiVR)>fc27A(|Tlt0K9{CI}7s+%aI3(IhQkyoOMhHqH zNO7r7S&+)-z@!7A!Yq0m;#O9198;1duY@3L^yOnr+g!=&8aX3K+xJ!^S$fLy74^f_ zsOHhp4%XPs{RbsGo1J?b#_M2RR_}^>pItuU;iRG9+99EH)oOY%>gGYi93!P~!b2)w z3X6t)|090&&EJCmZa4E-y%cqbt@~@o_>}WOFE^ysL<^Ba^iT>)2#B8^J~dpP{!K&7 z%(NN`wE@OAR8`E68Qq8eZNR?e{fHC%rfH88*w~TkZ#bjBDTw)O(@Y_?7Wv7n#lOM$ zv+t;8SxZF)N?1R+PP4nA|1KTM6AD*RSdw#~W~++fa<*sQuWC{3x%@!=`edmmx1{UI z1$Qkj_^TM&FTe2BZDRIdqg^zo45bkVdMiX?7hMe#lgVW%v)*KVN#A?Qf@;S>wG}Q` zKnVTnt7FI@niOIB&|1z^B-!Bq`~s7;d$hC&r9sIM=*4zDKQwYsgJ!=odcB{{3Ddn~ zn0A0|4`o2zj5(Mv%0}yhCgGR4!EVC=bsRRlO#M~+wLU?0EWlrA!e zprvffO0KP*JX~8-j-;ufeV?xttxp$G9}ur4Ddaes-D$dZwY}swz8m$G`Pznlo!Rzh z5<6u3DPP{zU$vd7y~@U&xzNafG`0Ho5ITIST z-2k6n@$-DZyE0`Z_cPE;HO-+qTcP8nIJz!54gKA%+7@nQdepL~(T~K<-|ubu9u}9^;OFAP zBrl(cZ7YO!?H03-zpaX&#}$7X9Ss$twr?X#?7D2kt^6O>Wq+#s^W+zmbPfMuIxR)UpzVFMBSf!nPRxHF; zw#_~TWU*^6qFGaARfyfjb@!s1?Sd<5^QqK&SDg>WjO%?rsP;)xX#=H3s|GD8C{{79 zqX$j1OLiItrN}gjwNkdBF^274Nif67ZTSlR)+ltk)OE(~;lr=HrA`Yvv@T+Kdo`*y zkDj}UT$TUT{N*>k6XC|@Uy*;uGhUpxlIc^nbfx`yz01DvkrK=Iy#H-mWtYgjrdLs2 zjP+e7h=AvSKV8ytri`a!-x^pu_Ss%TXZ`%pt!H$J$3%rgRFA(53RJ&N zOm7A9nt=7HN#zYHX+KW&SO&zs)>AQzvSv`$Lu?$`EK$@^p5uP!)roE3{*~t5oh$Bk z<<3|0y7{;BBYTFuqW7)gPC3nY62(z7Wf9x#K1W62TS4Wi!Of?lpdpbwqVnmgn7WH@ zdyXs$;5DlQVBa7dL)<(MLq52ew54A}9Q#-F{yUf(hhA>vFu=yta;AfdfJsqk9{whH zUoWz(u$n>!ZJ{jDmX)CueI$sm=N&?Sh{u_;jh>G%Tj7(IqiA0cj;o6L50#VozUHCh z#$Me!&uw_$X;N?Tc6oGcw{?}Ug3GJbnr!OFOZSM-yzKMutR8@|x@$neJdVF1!P&#l zaeSJOg!(DdLo1d6yJlNqMR=~V464NOZjy2ul>c=d^MaXd@8OsP1y-RLCd9gunLD*b zk@BIJeVB=)Ve)@@kJ4R7)D{xK6YC_7)P2{U=-0pv~e zu2wQ$d%o*?Ak*_=qP^~Q?f=I>3QXTZYwlf`J3FX$e{@iZKSGRrkn1=SAs2tQDUt6W z#`mAvKE&k(S^C10v>cgbF7~(@LP&*CEqP@y#5kTs5`7F%-R3iBas6)wzUW=mbPx*dc8 z@hmYU(~$le4|3gI3V{7uN3}-42_36v4J& z#T;XQXEEXS1sEm3DEeqA9+e!@Ci^t;^KUsE;>o9rs}m6mmp zE@rWH51@w}dt>LEl1=Uv7L=99@ja6hKi;VpPmHbBLXBE0zH9d69!lT1jTYRg2hD`H z3kp))t0JVa4!qn{HPO|TyZrp;dA$i4NdG(43HhX$^Or=T`ibdR^}X+Md)9Fib?>gM zJ+FX^(iRh|4u#hY_?J1m^I#wzGd*#*C0lbbYXX-e23?AHUgi?i*_E68#=lNavK_jZ z#c@vtz2mHW>k^l!Th(=@!?4DnTWQ%H8%~vJ1*MV#Anh&!s>viqlXTxviAf-Yaobyf zQlkNu82Jm@>qKY8kB^StitfYmWd)yUbjgB;d_L+vP)BnN)n*BUyok))9#0hndC})7 zQ>|Yf!vuKTfY7>yCK@7#L$<}zPvr0)j$)#eS<(O0S4U4-Ai-abTCPv+&7jnudh|-^ zk6Lwu$A6!w*yPUer3=DqPj9Nk%d1W}!hCNRl-?*H7@x1d*bw z7h0X+w)3odXzHrD&*krqTi5jVBqpd`C>RPL5#RI0G2h45YvC;*n-8vyUq74NjFZp& zHZ@Z~i~Zr&Tguh8{AI>}t&Q{zd+%^h`@MR(WA&}V&Z{?{S--Lime~p6-^_dV8h`1S zuTe3i3%Tf}5T!h;l|p&0ts4Wc5+MeV}gfD==`A_S(HlIdx3 z8>@)BDPO&?j%ZM3rDVBGz-fr6dcL2U#+9k?s^mKG%669Sz_U|ID*Ys2yOb+hE$58P znn!|SD&4bLJj?#_KXYPd5>~U|O&r`UkKmg6%n`T@4M+C_sp6Pgo779!-jA0InuSagBa(*=bZu3Z+t(+Vk}S_{O3*}Q1{9W zT)b2N={?KPSC0y|NoIr{`RU7e#7=y2EW-9;ozrgH2F3@3j3x-!Ka(P`FLX1ey?HQ$!k=M9SRYJx$JHNk;NoT2Rir zR4aQ44ECcLRJp{jBSiQOkuwk+gt$NEo7?x?*HT?&(2sK#7Tq zfMUez)!Bsd4PyLdfa5og5fPcfW`Zu0fX<@B4{ya`NX&P+{Qtlg|NH$t?%1=jF2W&% zfLJOC-HitwQhVn=(>q)-)B3i5Uya4V_44kpD35og8o*^cSw?&P-lp`{D@99MyTcno z;aODg`(sRp6QKd(=8$b_yvH?F?}tt2)!(>464VP&ywVr*=L^R?CpTn6)jeSI&&DS@ z+K$w;eE-;T!asc<=1kJ|PeE%Vu1$MW_eC6wE9eNG{CZ6LXn99sRm+}SiCP`)Bkk)q zThqOkorVflv{DyJ5wA3?&!1QMt`lPIsdJybL#0T3wf#v=el*^C)Y8|y;r&DSD>;$L z@A}F+ly5nZGkN3iJ(YWA!{vsfja=b~a*b1bcp{A+c`Dg>P;8GFP5Y)a zg01V%80jJn`i^=q`gwd<`}ky5dc}PSxAd=z`q@uWLnyaDY=8c6!!zel{JFZ1Ypxpe z)6OFz;lm4Z(hJ`%Wsw9lUTnWTuQpV@*3FGoQETd^L@=scLgJ0(+gYcDAR3d?4B~*a zNHi>P(X5ZQ4{)q`2`RP@7YLfiC&ZO@i8wJ1o!%H^y) zMpXHaGogpF&h-Txy}jh|;7nCP){1oQ_FXbMd%iF+uM`=hxF=6r>OG?)?rBhDI*}>l zx$Qt@YGCKjkJm0Z%q8z~-4wJADrtB4G|yS&ZRUJ6Sjse3IyBJz7zb&Q6~$^3i#+$7 ze)44^-DMh*5)8y>89ico5;^b57h^q@fNAQo!qSdr6Y>SMDG;DT@ght~Qe-G!Y>gBN zgVYA1CmK+pI?A*`7LHLQfi{_|wxNl+xefL_XqaM%P-y$n<-lpxL=k~zVvmF>$ODS$ z$C^kBAonVCrc?h87*+!xoQJx*KBz_@68h>C%FXH47dQ9|uMPztxl6yGLDibQmwM6C zHS3J8Q7p;7`(SO!KqlLyw8SPOvd+CyvUWTkw-z6fC}AJXj$nhxkq7L8*jlzklsAVX zku#L|*mLj3X%+dk&B4EVNoyQtM=gAROMZfyF!a8cu z&F!e=(ZTs&o3xfKV_7jBs{9X*A&t2K{z+SokKFok@NDY{TdGw$DnfQ(%XKiKKquL? z^3J;Ik7$kf+~ZS!%Xw$pUT|D$G=AKCsIKx7-1_knK9ML;bDlikVEN~O1>xK6kFN}m zo{5k-OZ6MpOcB$ybdG}4>BB`C&rd0d**w)vN33V!{KkjR>A3l%NJekjcEU#c$Jr2r zq&vF{vKbF*XYyx%?UMRG_DBETEB()J2m>VVq{Dej5jb|G=P>*Q_hgR8XbXHUSfxZe zVW;5DIe?%xiHTv37}5wL)M2Ed)ml%;PEl6vd^416!fFOdok0QP5<<-Yv|ak6*^Go`&n#~1xAiMwIp%e+{1_xX7=R+15K$+ z(%!x8*b>N;Y^7jMCF>dy!K(X>bEbe5a4eLwQn3}(_T3aB8@cZJ+kO?_2Zv#8;ltcTcHx`?MD3#Kfpt}LepSvi&U^qwB`B?a0SMdRJ zQ+}MImt|DHjO97(*01!@PMG7I*Bv|f2-czPp)pqcnUW+hUNVt^SWFo~EOKI%>NAlN6DejIiK!M49ZrOT zWTQ}|7shJd&r)j-4$}&*UtjIA;Lr z2?df_GzCX-usZyl6&JDvmgyL(FdO}|zb@Y(5r6@d-}wHD-{^m>|2|&EAb|-WZldn| zUgxaF$rbXqc%x0Z!)3?L%-j2e^{*#fXm8;tIJ3pVS+1(Dx{n0t)$pO3gON8Ps2}4! z9ZSC)#op-TEnve7tcsf zru$PD(Pv8M*OBA1`460j@QPu#3r+OqwnT@xeh?{VT*ucx$4Mu~210J1<(qGcDg0Ob z{`YG^ko8{zAOn42)6J5PRzayjI;BifLN2xtn^i6zWme%3$Xb3ZrB4R>4jncn(1Fst^L9-)PGUYApq7#$jUuMR-VV>AJRaeU@4T zk{h6WaZ&75_u!xV!TEzf&3}e`F)mX+6Kt({V;}pCC-r2U_p@gqv-3Q5_@4V_HRF33 zKD7gKWcckNwRErRek{0DA|ALo8?0W+c*@k%shM`OZ|)9RgLof1iEWp^?ccz&Uun4Z z)>g~yo%U2wnclUs-UZW9d9KIfh4@PSr9)%*qW0_4!GnQ{DKO_y_qy2d{)6{k-cicC ziB>@m^cA_@X}+>+I%xJ)*PyM(4!!%PW9qUy24yd`MjYoh^v~Z^j(%3tY&4-0)NIrG zrdfBi?^0h#%s^0g^%*U}UJ=+>X(!^4amaF0vD5bRKF{= z7ax?uQE^Ozt3%#O#xgbeG8|R9T=bo@8CB+`bzq7Syy9i1k**GZIo9YL;c4j7ZaJA0 zmgSFA>k;{-`(+D4HeqpyoDg6f0rruDCfjqYgvTdOl41Z7pidzONsK!V1b~Pe`=ik< zJ~_Nv5J&)Zl!6MN@yv>ENnp0Dk`Q(LZgTZNTjyPzrFc1PIW_IUm!FS22&11y266*> z+mRJ#sc+S&NEnF-2+h1U7_auwWFb>knb8dZ6`&8+6f9T+T#O@+Y?4AGRnbV|oN-}A zJPnG~H^4T)1=gsuG9czZ`mw*_1I*V6e_Naq(RPsRHoQ&Vm*I^lVAa2lo5n}pL&Zt! z2fcqC^*%dj;!4Q3Jl1%7FrzofZ<57|4?E?>tUu1YaV6L~Hgp0T5`)nopUZLOUd|`+ zY^>3q6guQgm64__;Bh{}hEiH!k3ywF$Jd#(hu5*=%rvqefCyF>rNZn{s>xC#5jqso z@t&Ywml!=RO$u?hs4I!f?Kj$*hO||r5TZFYE^_E4VF;rQmMhm|?)hbYlkgncU#l??_(gK)=y?RL@>*Ty03z=y0$p;Qr1K&{L(hFU z&>-v5&db#$M_btIzq%qDZf@h?x9z*RWA{m^V6tcJPvd&lzw+~c)KS>6ki|1mnd8TE z;jG3dvC2bXxb6f|L|6hdG}Z@85Wp)-yR8Lz-bH8|td)%-kWZ4C!c4}QJy5WP+IY~J zprb5dG84>X-z*CYT4jE{5&Uko`*WBz7v=F?T3YF69R`M=R!r@ZqtuE+xZ7si(56Nl zT2eIG5o?D*0%)w~6_tIjzO!>+f}HeR?{2==2h{LJ2s`mn*{gJm@T6Mh zwV2n54stQZy}1kPK<5&$S(p^;u*O1D>=o&yl zKh$sEir#Mc@-44~=A!2%Vv($2?5#r)I^x&oJrC}D-$RQjmhtFB>ITJ|T)X{!Am7%u z;OK#2|NM$m_{W} zk2!3F3p!n){cqEz^u`KeT+P!j_L~%T4?IsE_S>#?^qkDU@cr-K-`{^JZM-Od(MU%} zywhvRO)*Y}B#s$wLwU5ZY}*J{QwT`DN(#h$*v6h|qi4UQ2%8E>=D$BkdB+!N=EOot zo5@7{=#TYENp^ZqRuk?J_jxGh>Y(?1RBtLE<+h?yjls?BcwXrmN`uL0GF`k zjP1$v90t_jmP)qv5#d{*d^msq>O`eZw8+|sb_r{M4|6`(DI}(A-97CxU((=6rZC1| zOy=%0^00c9ZF$31zC%UBgie)4Pl)zCn_H){v{j^Ejc zdGlq=8)|{W)1?OP1HNZV;hLp63Rt?YYBMBrkW~HREVjY9?c1A>+n7U-#_o=AP-fc5~F3f)qDZ z?NSUeCco$Ij0)KMZ}Y2$268Yt-|an^@)|D2=ZTHdplwdj%j6Euk^)zQ%u)IvZKX$E z*xV*np+=RL0{}X9FugK8o%hO98QB?hB&N}Swfp)xk$(KN)w7@W#qP?6KzKAU)%B7e z221O=CBid+ex@*;3vPTXV&<)4IRGn2fK&8QAfuqrUB`Qqh7cJ%n1rAVQ6l6Znvr*4 zui-!+$0-3TFU6~^=PVecSZ}tqlNurPn_y*&S&pA3GG@F|o@`AgKjC`FW*OuZ@QIM!70m#!wQ70m!}A8rWL=@9#Kd9w-}rurDKH=0 z(DxSP@~#g9rOtj>#cW0CUPqI+0hM*2vi2#I&DJ0!9 zeT=et#Tsd^Fr7Ma8LV~XW_oP(lv8l?wUN5T87;xq8^hM7w=?P^U$T01RH}m9g~;5l zJ32FocOyOxJ~C2rs-83$T941a04p%|AqekJL~4t8OvG!44%6eIhM&Jl`^Kf?kDX@^g9$h6eiXD<-Fqa32VcL{)b)-2B{5u`+8NG& z^^8{mM~?j`e1E6t7f2tlTVlY-5wm;IOCwYI^wR;>-NYWadriY!u~iG7`7Vi&a5E7narpkW*J=zhFfpDIqdZA|M4@r)1Js^X*1X@fsqb-q_YMlIjtT;Zwr$dr+eA$~a z2uY5Fk{eXf%N;yx0vJjM&O@kFsiI8XZ+fwsfSqS+{g5nEwisA+l2tAb3KXjX(agkP z9@f5xsUhh*g*y0KeX z!O24uR8TJ)@h}jcR-B2bq9enU76|dHiZW2OG|L{RP2ApjVW%$gtRuwGnn$`ZPO;-m z`za&*%tk_>&bJcw{Frj9t*?8r^)pkf1TYW3I~8)cp@i%ZiVx_2{ji;PW3TDaJA130 z$VuEI1@hrLW)41V^H4T^kO$H&{n0ZSdm|k#TGlwc-mw37M0!fO?rnr`Jk%H(^qp>;gy|#*G+ES`o+L-p|(rYy8UDJ z^#5mm{`c$+RgTe_#>T0tn6d=A{el^?Al^$kd9jp(6THO=K4bEy%+4e_j)cXz@(pw5 zOQ?x52o4RiN`>}np&f-hYJ9e1EChDmV4U{YCo^4Vsy;}>HNv!2PJ1&EftAd3JA;Xo zeVXY-*1HW$GaHg5H5)?ZOQ7%w<2EVbw1#yHzA8cu+ft0ri7wW(2xI{~LTBVdHG+j# z)!RDhj;s3yW^Yx4!s~yECwgy6*Z12tdxH{#pQjOa5UUN<0x`9Akr`j2pUESs11V(*0xCqLzoQ6ENB=7L}d~u+Cms) zE{FqKYZ1jd7l&Hw?(TlE?|bayJHGGF`}h0z{J);-xYt_uy00@+x4t*azig$mi~LF7 zsl8L~3xB@qlxZmXGJ0nq_*s(`8|`Pv{N*fXpj|ZsTWePAHS6P-`q1GTB6ag&dE&G! z8Y_rmg)}t0bcB!8%E$e?2@4ABU&g-5Il=M6QvJ6}k`VI5M0n$Y#%F&Z{Hjj86r_*i zqx^41m?TgB*0tekAU|CPHQ8bVXC99Tw6FFpJl}ZWTMB(>)5sfxZvI3{>RqdtR+7lU z!YI6As;HkH$n$lKBF|qh-`5>KXwmx7zVzRXs;5t)lTuGT`&UQ5-*)TWedhK1H``8q zdplyVUYLD;!CZqY>R|mx-~X9YnJ+{~%1242@|auH7DzoY#(HZ4Q?n)3>42T1ksB+q z5EH12auQk$AGD4p(U2H`BA3CCX7xCXiLldx9V2~eqkZ(E!+m;cGU)b)xxTG7I;_r_ z{UAU}7!elq9ECcV8sN`HSIX7l?zD6_g(8mlZBsjB4SVtWDB2 zxZs+MU_{O7z~?|YgOs`5B(X+vPa%6Z^p{R`t#*Ptj}g=&ndz9j$cRI|%m3})4)V*aVyb=cNPZVkSef~6xi4Ep9p2DX z{>^uwErm^DKFK*-?{X*Rnphq?Nj=3xgd+R%<@S!Zf4l7Dde6q{!uHlT;rhw8OKpVm zLK|NP>Wcnmyr2`Swc%7rLB4jRShX;S6jMfXQ~z)Ety;P66`CG zkKNO2B}b}SD4$i`u##D_c^O7}N-SCpOK>1pC6bXZ^%Y2MLz4*uf#=4UN!0uZWWHUO zCI??E4NPp+9yKyB99|io!H4AV+GD&a8i$6&EF9Z=9nNe97Te{(?-*C^#_C7|{Up z$qnrR!LO|&7J*sm;+f{hGOOk|(NY4m{=%|}lVxh-&5*lC7+XZlo{THEZ@676P)2db zLWehre|sr;-nHQ82m!Pg9k9?Gg0{x!8nEZ1l2X~@VXopJ2kF_E0UfqQ;uP6F$!na0QYpQxd=4HWiGFzd4i``Au!0_Dy_>Iq-nDR#|V>jPSLC1sqL4B_WM zvQe6>!2ki~=~UE-IdmQA5`Pg#)eDpRO!dQw59|+G?bSJj$yq9Em;IW;RTx-~^&UA< z{N@4ON|AqWHCYwW0SB)9AB7=SIE~1s$8yE=a*Z67h}d8LL;E}v^T+sA#qwq;+PiTS3GkR=r9@~nSU%3i#c zgs03hYPUBLn{1X=ET(vGes`d2L^r=H|F;PsAwEl~I8H>R_xbS~H$6MpX)l8Q6r4R5 z^@YB3>W*C&D*EZ;3t3edRXb?6|2Q?6^G07B87(X|{9t}j9M|WVa(K416kUu5@Yl5# zrM8uEq~ENlLyIK@FG(*1S7M(ax+x0+`-Dg}KkS6He`42J>ewje5lt&*=u@bVL;f%S zW`5K`&IkPQI_1tSh^kV#cVk2J7(DTWm`p0B&MgknrEVBB&t1qcLsh4&hhTb_k?fDICYd2dnKy zttCrncrLwZoV2>9(1m?`4l+n7$aj!}MKsSWewf5}XV)DEOyrk&4T$XyO`yO>Kb4o4 z%6q3`N}If(T}>#)7BGKLMgF?Yidf9w{IV70BliLDmGa(YBTzAgt*29q$(>0_*9vm} zC`3SXUbluM0p@?sUs0*rs(trtG{Yu43{Zv%m-4NmLcSaD^Qb)QQFcb=n%FplXWNRGO84NhOHU2ld>jCzuot5Z&C=eHi%mRc}+kVKe#6_Hln@!R{ z3d_Tc$YZ)!?X7m$jgkKP2WN$Y$L-@P|L{b#1VbQYAv=n_!Vu`=3;7hMi@ID|cMUni z^6`DjcEws!s`b}4RU`^!w|f<31Be`A3Slr&76?Jie0evE`T`Y!;C&h4+vQN;Fu>Fw zmu6uEAYckMui?6?_)syD+e}^Ix2ZaU(oD1JDth5#UY=VC+DKWExWsAc2hftoA`eI# z5gOaFVT3{xkiR<85<}4k8c0*l!D?6zkvWS?X@sbqeV7-<)_btKmZo0keQ)CccevCG zDLwNc&ZE(kns?UR6gND$aJLzSf7G5pTsl{M5ZYqJ<=GviVlr~?r;Yh8>& z1;LL0V2zeXgHMyR^j{Gm1@Sn9fUk!me2!+BZd!Mv?y$+1xU0(-F$T6f=iSpjuCSVZ zsj%g7`2_Eu-0QCx=wuWkh}bt5=A60=(Xl1$DF}A1gzdw3V^ZmZYjeEepynWVlW_k< z^IzbuAC#;N&mnosnZw~vDRcrvvOZjPX+&Ox+*dKLzEvZ@*HY*g8>%a7$%^lkDV1xMzgO5}6$7P$j zY+@t1eAq%NPH36GxYT0Sa+xahH`hL8SN|h+>pQnB8#JTv`*FN`1sZ@Wk7{8-+;uN`=q{f9@nb4XV^t&#LKIXRIovXQ1!&&C zKMO^_{8_Fh4|SkabXE>1&*fEu5a$szAx~P8M)2rVqGdxw$t4?KV7+5l?+%?fJGcOe zW7ucZ7+F@dv&7p7A0*U+OhdjV&bWUsrmr#s^OG&L!wma8UNF^LdXYeL}ywW+| zsFCjS)B>wJuZj|i1!LmTi?~F~M$ki+&g*iGxLaA2SEbiXj0HAR!gOI=a`H<{#8@NR z55I;SQ@L+YWD#T{>U$9f`Fnrz&Cy}^OPKfRk#ssm$h~04=mfz+7kea_D?(?r5+UaB z8HBDfeXu~}yqw^H2iPP+mE9LZxB?_Y3}|fsjkRVuM-%mBz&o>#oNSis3LG9`gA!6}Hd#zLpV%LVm4-t1^G2>O{q zoqUqH+>;Gw{+A%oh+L`BvOarWT2t4M;KG#xa3$swSuzt;EZ_a=;SR<2 zhaId>{vC{Wa35p7T7mPg1e+&XG?#7KU<)go`&~8flefW zy9|3zk$#qYc|GRU0mYFzruNsa9L(9azbej{lgdk!ow;{hZ3b_~UOy0Dij8xK~T<7&NGB|MNT@S z;=%Zdz10b-*l2{;9crvydUP7RYTxQwb=g8dsdH1>len6M{$!Pdl?ehW+w+6i^W)4)<$ z=$lFjf9GHQJ45PziTSEK%mUwIn>A9ARPd6Fy(p8)HBls#3!A(Ok74aAu?xn22Nl82 zJ4X0WFs4w|?OC0kqm?!}YJh^hiE(F zf_<6;O~`n;{o_bE^p+5dB2)QZLwgwvz&HK>8Fzd#D)KZ@w)~~n;46oFsYmY*k*;Sw z8ZuPPu+xWubfXL)A??(wz)vh`tapVLjEWn!InS7L^7EHAy|q%{5)udWCNVUry|Z8d zI_cmlD}vlKMI!T9dMY<13kcG^WeY6dkhCU1OutUtu8JERM2T_X3-RNHgXrw_V@8s7 z3?2TSWA5u5bIfc0NTiJ702F zutj+(FFyq0Qc&6$FEDV;i8F==5OSin^}|`8S>pm*e}CCTYVpax_mXe8PX)hH_HX+> zD0n&iRgKuN>rzgDIij!HFWx1Tyf1OnN69K<)0b?miq($<+VDIWx;67hafw>d_4xd_ zHVc>uJtngA`qSol|6@*7N@am-U0coBoGb*i(lx^JX;=v6v{QNr{yxc`u>~kNK;g3D zO!lWS|Ct)lvXnRTW7V8&(9HaDbwgTlC(Ef1qK^Clwpo~3X-{=t|6AduS!C}Rtvs^#+ul=`s%3k6XPmNHbz_gNmi`ufOGvER=n>-j<^u8T z`gRib_2Afe{Q+zms`LJsp@^UjMVV8rAaU|IRZ2%yd(3P6I3P)gc|#B+xQ*rky)(JE zqY#PqNQzzv^geb^$cITwah3v#Z3$;T$HrrpaW624)H(23_dJEo%9q2XG>RwT^CH4j5iUl6DQsCVTNpz+#}oi)x3B zi?*qtAN|K-Q=ytnfr4WW?awdWnhx!21>#IedqDwlqro7!Cph%Ir2Wo?>Q0W^XaJB40O5RCECk z0zVgJo!lI-;l^F8w0)8@OCA@X<$Quo*2J5 zeCdy%s{C2OEHheJvCA&O_HBd$X(+JV&ET9EHjzu!8D8|B4L@zU(PcTbmPnyK1UCSN z@;{G@u0ky2tp~%!aw>BG8ZPpLJ}B#Oy8nw&w1}YbO28NknSw zk|w7Ow2H?PM&GkfsFIG5Wi{6Hq?oh^l_C*eU4(vYy&4oNq}o+6RnbZ+^A>fVpE8m$ zN$IXC%`V4qP2u@?Tl(#);c9vI2ppd*#>$_QevPWXwQG3fw5ZIMyvP;|OW}SmlHsSE0@_nl zas<8y3|)sOkan)mV5;lz<+AzG6sH3k43kI^ws3MTNh0Lh+8nAuUgnaB4DqfvyR$?{QmQ16#7#nZ!N!sM6=4Ic}Zew7bj1;ueu>^s;a|h;J;1=I6%U zgi}j#k%P>VTCDRo+SN$M))w$ywrO~@+VrXj8s!2BJu-Z~jZ~{-!v!R;0CR3yEOjo0TLrW08!6Nz zKCJ!!ERY4~+ph#|X1k~LocnAYirX~M`9Me2V8^s7h>fS{od*Ol(z`eQIkz<+0!aWnn6PyA4;)AoP@<*d z`Vz2pjx2_$s|=1Kj08g|*_&eoLM~r2UdTR&ZS$vyksjZz^n!o08AbB|# zk!$KP!lS6X0Oj$3=$|jPDjO-E^j$tca-V&7KZPgmXFLgRxZP@Xj|j1xqFQx$^TM;gPTu%ozB4HX(bkq;vukto!0mk6MnAc!<&l87BQ}~S zo7G{NZ9V&aX?OzMI&kAvWZ>zE@XF!-$#yu|k}jCUe);a1JHamanEkEMooTk-Dyr?o z0S-GwowI4z2BsO4za_qf6X$$Me)YJ{tt!K2sV{FLGHGw= z>&gyL8F9D8igP+>tcHXqo&Wgp(A>WguVO77tG^O?^s`LZDP!+49IO&9bSJt;M%Ne0 zc_j0VQ+^w;I;(8YEC30^!vwRcflllYKYfmeyug0yjj{|(c!6il=ac{yP8sO>DjX)P zfF4xPx%Y`Baf7rWRv{5>(Y>Z|Vd}I|^$!rw#-(EIBF2tW~^qzqFb#H&i9kfDRr%z=&=LrUTWW92IPotkb2L zkF7A&4Vcpi2JcM!u7S2#WC^|{2W!X79uj+Pz20+(B2~LJ|KO+Uq*A@JNeDU=4s((X zo)qM9uKRPQ)jB#PQLDjpBv5^soLmkgVA=&n@qP0POyjKej}>&LHc^X-3|bim{mTv0 z3oi4YD^s#R@*g@VFHd!TFLqe|bEoYpwLGJSp-w<;;^HnB%AFvm&s7XW zKE&S5_eKa?CleOeD2)T&fSnuFJsKLJ?6s}zy}ZP|VDR#ba2ltirJZ>TzcjOr>d-+m_gEPnMPEF;%HdkyB_MXmW9k>7OZ+^Q%&mP+VX8o0op0kkrLNmM0oRLEM06+G+Zk~!5lSAV_=at)=X~S)Z-~&{o7Bd9-L^eFA~grS@W^8JKkyU z6OZe7Vw2y>PbV~Uj`Oqcn|rhz2|`EpItSW zx&0xm#3r-ap;IIL_I+I?Y;w(gaj47A{@*T=4u(8=^lynF@1ND%n`*`n?M{HUJhdA$ zue-kv>jB8GskTjTf;<^nwADdgtl~SdC^cnJj**)4nS&V+I1nR01beYC&li;q0?JFUX%g?`AmW0{{)f;k zx8RqYw{8Ik*1@f)Znff$U%(X^apOXBB=p11N zkm5L*;i0lm!=_(1VI*{rK|W<*pCXck8^*>Wdz^`!Ru>e+ABO#J|Mt4~+wUF&4h~G2 z++}ulwarE>ZG_V{gc31YV`tw+BkZ#$^cM&&Q_@un%wQ)I}o579-QCeuJ_z(eZm= z>Uj%MDwPQ$s<2QB7f?fwqc!tLAa=d;*A;&bn4;D}k0V5|HO@>1A{QD*k5w<$rzMlD;L{jFF^;!)!7@GjyyH{6=7acTz~jWw1UQ9` zl*CAYFlbj6z4i|kS)T6D$LXpbdeu;HZ-#U*EVG;2u@P5RkC1xm@h(o0GbYFi7r!}Y zcR%5e*Y>=#58*6TcQ^NN6NQ#0SoUC{zJ(4|K0NV}Uy>{Sr0>Hod)*h>>Sh55Y7)^$+R3U-#nnq91_oYu79!j zHaK2m?&V*2y>Ir`CXRnm*+sPY7IgdMaw52?hUeNVI~aJDbyFOQup%Q92MWnpN(^Av zUX}~Nea!%gh;#kAC&nq~#sqNs3brYp))zz_2KBS9D1h?|A{RIYV9u>j1MjxP{PSx# zK$Ze?m2bab$^9c8*Owd1PDfOp$-8^VS)0A*bA1@0it43;cOma}1_%QjzGB{(v%|_7 zqD^-A`~A9xS0E$u#F1l79NKgfsfa6)QXhJxQ{@6VI*Uae*vMDn6J_;PLJ-egms^xt zdsj7eLI3m5rXy_QXVV`@&Q;SGelzk2mO_m&EN%#L=MgknFzLXEgHfHpWkstEi?ec; zRE?BUs62yU$v{nI%);o7tz4*Y{f+Nc_56}y?`(}Gn?jR^d0Q#^tRPH>qfE+NG1Sx+ zWX55zSUl8W(v&UY`%CR%7~aix%g8UJFfmX^O$6sk#Z)SijKpRc**Op0}iZ(-jOd zk7uZ63hIT#(Xxi*GY_$~H_dmpzB#LVbWxhwbdxRghR`l+$x`lUsdN#fQM5SrFMw!p zEW%Pt%y#gSF`4aYn}e;`^?2QKDE$tI)S;26O+aS?5ba6bGGxCF8#ip5Hti6QM#17E ztBjfT9Y_E=ON|D4$OPQt;`!ho=?7lQS7Bg~IM9y$p!!F8gzFT$YrtN@XM~|OZt?F_u`+dOhza1a7}!Yj5t#W_##doYj1CZsXcpcu{X8L?I^Q>)80aZnqN1Zf3C&n z$|cf%$axGJP@DrqJs^iocmpv&EQ=d0J?|7uQ9SDP7pv6|8n?t^pniG=>5w0_3m7@= zEHv>i(fOK_lv_{!p~`e6y+NqqTf`hT%K?|p->Izo%xqfH`1%_!xh*EQ zdo0T3%H;|~oYVVr!@GL={uI{TPBJ}l*0IRxhCd$ONq^gR<);`Kb|mAvu`v}q{#DM_ z6&3a(dndMZTf#oi YjG5b+nbT6r`Cr#m|5@hw|NY~?0OcFUAOHXW diff --git a/examples/embedding.rs b/examples/embedding.rs index f93a153..8615bdb 100644 --- a/examples/embedding.rs +++ b/examples/embedding.rs @@ -5,7 +5,8 @@ use std::env; #[tokio::main] async fn main() -> Result<(), Box> { - let client = OpenAIClient::new(env::var("OPENAI_API_KEY").unwrap().to_string()); + let api_key = env::var("OPENAI_API_KEY").unwrap().to_string(); + let client = OpenAIClient::builder().with_api_key(api_key).build()?; let mut req = EmbeddingRequest::new( TEXT_EMBEDDING_3_SMALL.to_string(), diff --git a/examples/function_call.rs b/examples/function_call.rs index 95d263f..1858465 100644 --- a/examples/function_call.rs +++ b/examples/function_call.rs @@ -17,7 +17,8 @@ fn get_coin_price(coin: &str) -> f64 { #[tokio::main] async fn main() -> Result<(), Box> { - let client = OpenAIClient::new(env::var("OPENAI_API_KEY").unwrap().to_string()); + let api_key = env::var("OPENAI_API_KEY").unwrap().to_string(); + let client = OpenAIClient::builder().with_api_key(api_key).build()?; let mut properties = HashMap::new(); properties.insert( diff --git a/examples/function_call_role.rs b/examples/function_call_role.rs index 613cd4e..1afc91a 100644 --- a/examples/function_call_role.rs +++ b/examples/function_call_role.rs @@ -17,7 +17,8 @@ fn get_coin_price(coin: &str) -> f64 { #[tokio::main] async fn main() -> Result<(), Box> { - let client = OpenAIClient::new(env::var("OPENAI_API_KEY").unwrap().to_string()); + let api_key = env::var("OPENAI_API_KEY").unwrap().to_string(); + let client = OpenAIClient::builder().with_api_key(api_key).build()?; let mut properties = HashMap::new(); properties.insert( diff --git a/examples/vision.rs b/examples/vision.rs index cbf9e95..6a92c43 100644 --- a/examples/vision.rs +++ b/examples/vision.rs @@ -5,7 +5,8 @@ use std::env; #[tokio::main] async fn main() -> Result<(), Box> { - let client = OpenAIClient::new(env::var("OPENAI_API_KEY").unwrap().to_string()); + let api_key = env::var("OPENAI_API_KEY").unwrap().to_string(); + let client = OpenAIClient::builder().with_api_key(api_key).build()?; let req = ChatCompletionRequest::new( GPT4_O.to_string(), diff --git a/src/v1/api.rs b/src/v1/api.rs index d530ecf..c1b5592 100644 --- a/src/v1/api.rs +++ b/src/v1/api.rs @@ -38,11 +38,13 @@ use crate::v1::run::{ use crate::v1::thread::{CreateThreadRequest, ModifyThreadRequest, ThreadObject}; use bytes::Bytes; +use reqwest::header::{HeaderMap, HeaderName, HeaderValue}; use reqwest::multipart::{Form, Part}; use reqwest::{Client, Method, Response}; use serde::Serialize; use serde_json::Value; +use std::error::Error; use std::fs::{create_dir_all, File}; use std::io::Read; use std::io::Write; @@ -50,61 +52,84 @@ use std::path::Path; const API_URL_V1: &str = "https://api.openai.com/v1"; +#[derive(Default)] +pub struct OpenAIClientBuilder { + api_endpoint: Option, + api_key: Option, + organization: Option, + proxy: Option, + timeout: Option, + headers: Option, +} + pub struct OpenAIClient { - pub api_endpoint: String, - pub api_key: String, - pub organization: Option, - pub proxy: Option, - pub timeout: Option, + api_endpoint: String, + api_key: String, + organization: Option, + proxy: Option, + timeout: Option, + headers: Option, } -impl OpenAIClient { - pub fn new(api_key: String) -> Self { - let endpoint = std::env::var("OPENAI_API_BASE").unwrap_or_else(|_| API_URL_V1.to_owned()); - Self::new_with_endpoint(endpoint, api_key) +impl OpenAIClientBuilder { + pub fn new() -> Self { + Self::default() } - pub fn new_with_endpoint(api_endpoint: String, api_key: String) -> Self { - Self { - api_endpoint, - api_key, - organization: None, - proxy: None, - timeout: None, - } + pub fn with_api_key(mut self, api_key: impl Into) -> Self { + self.api_key = Some(api_key.into()); + self } - pub fn new_with_organization(api_key: String, organization: String) -> Self { - let endpoint = std::env::var("OPENAI_API_BASE").unwrap_or_else(|_| API_URL_V1.to_owned()); - Self { - api_endpoint: endpoint, - api_key, - organization: Some(organization), - proxy: None, - timeout: None, - } + pub fn with_endpoint(mut self, endpoint: impl Into) -> Self { + self.api_endpoint = Some(endpoint.into()); + self } - pub fn new_with_proxy(api_key: String, proxy: String) -> Self { - let endpoint = std::env::var("OPENAI_API_BASE").unwrap_or_else(|_| API_URL_V1.to_owned()); - Self { - api_endpoint: endpoint, - api_key, - organization: None, - proxy: Some(proxy), - timeout: None, - } + pub fn with_organization(mut self, organization: impl Into) -> Self { + self.organization = Some(organization.into()); + self + } + + pub fn with_proxy(mut self, proxy: impl Into) -> Self { + self.proxy = Some(proxy.into()); + self + } + + pub fn with_timeout(mut self, timeout: u64) -> Self { + self.timeout = Some(timeout); + self } - pub fn new_with_timeout(api_key: String, timeout: u64) -> Self { - let endpoint = std::env::var("OPENAI_API_BASE").unwrap_or_else(|_| API_URL_V1.to_owned()); - Self { - api_endpoint: endpoint, + pub fn with_header(mut self, key: impl Into, value: impl Into) -> Self { + let headers = self.headers.get_or_insert_with(HeaderMap::new); + headers.insert( + HeaderName::from_bytes(key.into().as_bytes()).expect("Invalid header name"), + HeaderValue::from_str(&value.into()).expect("Invalid header value"), + ); + self + } + + pub fn build(self) -> Result> { + let api_key = self.api_key.ok_or("API key is required")?; + let api_endpoint = self.api_endpoint.unwrap_or_else(|| { + std::env::var("OPENAI_API_BASE").unwrap_or_else(|_| API_URL_V1.to_owned()) + }); + + Ok(OpenAIClient { + api_endpoint, api_key, - organization: None, - proxy: None, - timeout: Some(timeout), - } + organization: self.organization, + proxy: self.proxy, + timeout: self.timeout, + headers: self.headers, + }) + } +} + +impl OpenAIClient { + pub fn builder() -> OpenAIClientBuilder { + OpenAIClientBuilder::new() } async fn build_request(&self, method: Method, path: &str) -> reqwest::RequestBuilder { @@ -127,13 +152,18 @@ impl OpenAIClient { let mut request = client .request(method, url) - // .header("Content-Type", "application/json") .header("Authorization", format!("Bearer {}", self.api_key)); if let Some(organization) = &self.organization { request = request.header("openai-organization", organization); } + if let Some(headers) = &self.headers { + for (key, value) in headers { + request = request.header(key, value); + } + } + if Self::is_beta(path) { request = request.header("OpenAI-Beta", "assistants=v2"); } From b48f420ab2b169cdcd26890f54bbf16210f1243a Mon Sep 17 00:00:00 2001 From: Dongri Jin Date: Sun, 10 Nov 2024 15:06:58 +0900 Subject: [PATCH 2/2] Fix readme --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 649cc92..8136745 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,8 @@ $ export OPENAI_API_KEY=sk-xxxxxxx ### Create client ```rust -let client = OpenAIClient::new(env::var("OPENAI_API_KEY").unwrap().to_string()); +let api_key = env::var("OPENAI_API_KEY").unwrap().to_string(); +let client = OpenAIClient::builder().with_api_key(api_key).build()?; ``` ### Create request @@ -57,7 +58,8 @@ use std::env; #[tokio::main] async fn main() -> Result<(), Box> { - let client = OpenAIClient::new(env::var("OPENAI_API_KEY").unwrap().to_string()); + let api_key = env::var("OPENAI_API_KEY").unwrap().to_string(); + let client = OpenAIClient::builder().with_api_key(api_key).build()?; let req = ChatCompletionRequest::new( GPT4_O.to_string(),