From f7258a72a8fa9810889d5068d9bcde4ea465bf9c Mon Sep 17 00:00:00 2001 From: LoopX Agent <337587101+loopx-agent@users.noreply.github.com> Date: Sun, 25 Oct 2026 21:33:54 +0800 Subject: [PATCH] fix(research): keep read-only saved analysis available Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com> --- .../goal-research-analysis.tsx | 13 +-- .../readonly-analysis-after-desktop.png | Bin 0 -> 119477 bytes .../readonly-analysis-after-phone.png | Bin 0 -> 64052 bytes .../readonly-analysis-before-desktop.png | Bin 0 -> 117548 bytes .../readonly-analysis-before-phone.png | Bin 0 -> 68040 bytes .../readonly-analysis-empty-phone.png | Bin 0 -> 52150 bytes .../readonly-analysis-failed-phone.png | Bin 0 -> 58260 bytes .../readonly-analysis-running-phone.png | Bin 0 -> 69158 bytes .../research-history.mjs | 84 ++++++++++++++++++ 9 files changed, 91 insertions(+), 6 deletions(-) create mode 100644 examples/personal-workspace-browser/evidence/research-finding-reader/readonly-analysis-after-desktop.png create mode 100644 examples/personal-workspace-browser/evidence/research-finding-reader/readonly-analysis-after-phone.png create mode 100644 examples/personal-workspace-browser/evidence/research-finding-reader/readonly-analysis-before-desktop.png create mode 100644 examples/personal-workspace-browser/evidence/research-finding-reader/readonly-analysis-before-phone.png create mode 100644 examples/personal-workspace-browser/evidence/research-finding-reader/readonly-analysis-empty-phone.png create mode 100644 examples/personal-workspace-browser/evidence/research-finding-reader/readonly-analysis-failed-phone.png create mode 100644 examples/personal-workspace-browser/evidence/research-finding-reader/readonly-analysis-running-phone.png diff --git a/apps/presentation/dashboard/src/features/personal-workspace/goal-research-analysis.tsx b/apps/presentation/dashboard/src/features/personal-workspace/goal-research-analysis.tsx index 3958880b0e..1ddb58b09c 100644 --- a/apps/presentation/dashboard/src/features/personal-workspace/goal-research-analysis.tsx +++ b/apps/presentation/dashboard/src/features/personal-workspace/goal-research-analysis.tsx @@ -209,7 +209,7 @@ export function ResearchAnalysisButton({analysis: a}: {analysis: Controller}) { // explanation is optional; cached results and unavailable states are reads. const readOnly = unavailable || a.readError || a.pack?.result || a.pending || a.recordedRunning; return
{reasonCopy(a.pack?.reason_code ?? a.snapshot?.catalog.reason_code, a.zh)}
: null} {a.pack ?{a.zh ? "分析请求设置(固定):" : "Fixed analysis request: "}{a.pack.config.model} / {a.pack.config.effort} / {a.pack.config.service_tier}
: null} @@ -480,8 +480,8 @@ export function ResearchAnalysisPanel({analysis: a, onHistory}: {analysis: Contr const zh = a.zh, p = a.pack, result = p?.result; const resultJob = p?.result_job ?? p?.job; const failed = p?.job?.status === "failed" || p?.job?.status === "cancelled"; - const sourceAvailable = p?.availability === "available" && !a.readOnly; - const available = sourceAvailable && !a.readError; + const sourceAvailable = p?.availability === "available"; + const available = sourceAvailable && !a.readOnly && !a.readError; const benefit = result?.metrics.find(m => m.metric === "benefit_test"); const headline = !result ? null : benefit?.no ? (zh ? "仍有研究片段尚未检验原目标收益" : "Some episodes have not tested original-objective utility") : benefit?.unknown ? (zh ? "原目标收益的检验情况仍未知" : "Original-objective utility testing remains unknown") @@ -507,12 +507,13 @@ export function ResearchAnalysisPanel({analysis: a, onHistory}: {analysis: Contr {zh ? "重新分析完整固定范围,产生新的分析用量;保留上一轮结果。" : "Reanalyzes the full fixed scope with new analysis usage; the previous result is preserved."}{a.pending ?
{a.pending ?
{sourceAvailable ? (zh ? "此来源尚无已保存的分析。" : "This source has no saved analysis yet.") : reasonCopy(p.reason_code, zh)}
> : } - {!result && !a.pending && !a.recordedRunning ? {p.continuation?.can_reuse ? (zh ? "复用已有判读,无需新模型调用。" : "Reuses existing judgments without a new model call.") : zh ? "使用本机 Codex 账户,单独产生分析用量;浏览不调用 Agent。" : "Uses the local Codex account with separate analysis usage. Browsing never invokes an Agent."} : null} + {!result && !a.readOnly && !a.pending && !a.recordedRunning ? {p.continuation?.can_reuse ? (zh ? "复用已有判读,无需新模型调用。" : "Reuses existing judgments without a new model call.") : zh ? "使用本机 Codex 账户,单独产生分析用量;浏览不调用 Agent。" : "Uses the local Codex account with separate analysis usage. Browsing never invokes an Agent."} : null}{p.job?.status === "cancelled" ? (zh ? "分析已取消,研究历史保持可读。" : "Analysis cancelled. Research history remains readable.") : (zh ? "上次分析未完成;可重试,原失败记录会保留。" : "The last analysis did not complete. Retry preserves its failure record.")}
: null} + {failed && !a.pending ?{p.job?.status === "cancelled" ? (zh ? "分析已取消,研究历史保持可读。" : "Analysis cancelled. Research history remains readable.") : a.readOnly ? (zh ? "上次分析未完成;失败记录已保留。" : "The last analysis did not complete; its failure record is preserved.") : (zh ? "上次分析未完成;可重试,原失败记录会保留。" : "The last analysis did not complete. Retry preserves its failure record.")}
: null} {failed && !a.pending ?{zh ? "本次尝试" : "This attempt"} · {p.job?.analysis_wall_seconds == null ? (zh ? "耗时未知" : "Time unknown") : `${p.job.analysis_wall_seconds.toFixed(1)}s`} · {zh ? "输入" : "input"} {p.job?.usage?.input_tokens?.toLocaleString() ?? "—"} / {zh ? "输出" : "output"} {p.job?.usage?.output_tokens?.toLocaleString() ?? "—"} tokens
: null} diff --git a/examples/personal-workspace-browser/evidence/research-finding-reader/readonly-analysis-after-desktop.png b/examples/personal-workspace-browser/evidence/research-finding-reader/readonly-analysis-after-desktop.png new file mode 100644 index 0000000000000000000000000000000000000000..85d9b9b44504650d34dbfa12809ef4513bb4d988 GIT binary patch literal 119477 zcmcG0Ra{kD)Gta12-4k+gmjm5r;3DvAdN^1NJ)1q(hZ{0p)}H+qSDNqm zemhU`_R`2+7r*=_=8N^me=`QHD)}Z_KXRJariRcTITAFBBqwzNu%fB*M&BxK|^7=sdn6PCN)-pj!wCod?z_4kVtTIt?ceIV+1x0gqq0^WFhUvi5&q bTwk(;1i1EanoDI&W(|wFF#cH^?CCaZ-@%!I z0VeH&eFByj6JOZX(?r2WzRfoVLi)?8IudP02uw}F*t&`!{5lky4UkY_@}Xc=5;l*g zr>FV#9H$?R0pdFwAtKV3PhbJq@V^hPo?E8sA;W|Kuva|3W(eMi7Jt&euN|<6awF z^Ri)SZp(>4A_&;^MnX|08$6S7!I%{N0prg-+W%xiq+E%1j-@t-b9?+gN=m~_g<**# zVI(;p3pMpK2pgIG0Of U&(J%|rxE1SM35R9f@zra>*fV1tn^zJcC?--BWF@dr v4ts7BmJtdoIEMAm`IBgIP9bS^xIHBT?!e}df`|a* zU`}AH=B^tACm{py1Fi$ya~y9dIUriWH)7yMBr$7dX<*%=QRUJu&@n1YlJFM)-2I+o zXJzFWp5J6e?Ra1f%@;6u%6osmh3{0L+k-TP3M1r8)WAtQl-UE3gH5O88$}Ck%)ce8 z`Lk 5q?k-xt1I)nb1ke7^LHU$gWG=N zGeq*2$rvdcL9=T8O-K2(m9`m8f?ZJ16=s?gW9ggZ=;9#W0I}t3!YSyL-vqFrbPL?I z-5GSEdoRZH_Fy8g0D_=Kll y#@MQ=mUO=SFO+~zbSaBIX4ty=R>Fb+`2=nnWqNbmpRC6;y&bwS~IrF8? z2Q`X2Buns+yI?dZS@neB1{v@w{8KA2O^s(@w7BU!J7}f&_v=-LsBFEYgI|?VCV_F9 zke1@(;{%H&w@$qtZH`KoGjbirh;56ann`e1$eZyx!;}mjz8*ziW1r}t+k0~ZQRR9* zGO0D!h7)%vH0Rpr10 p;^;uSMASDjE@OX@l@k6J-}5kw7Lxd^;bE1-cMHHg z=1rnKn0H-T?Zlh15Yt@jOa3+FAJ2}eOF#TiIg@fFC`OZlZUy=iz4NDsb4+K3Ux#lX zHm|h;8a#x>#z93zy}uU2#LWREF24^_f25hn3K<@!`#98+khvbj@ci=|B2DtB*VDG6 zp23PtTzXt;DOVJC|7^iwl;fU5qWw{_>AUqZ9wn~5Y)UGnMk8!xk))q(aaElu1yVus zyuzn+GA+U>*W$KV9gOh++>809V{*sHrqdW|4UWJ6m`ECn6?z;tVmW+!0fgqt(|9M7 zH2!T$!OYFpzPqqP^PAMgFL=*Q5Fv!H8bgP3`Ux}UJ4Eh&PlHj`^N#gBjdUPHEioxY z6CPa$F}UXfuTL>x{{$~ck99n9Kb~@d++^rt%ZxtcufF*pMxelKY#5Fu ;zP zNy6iVQ}}1qTbwa$>k5cf04|f>(AtDd2qg0D@Ust1d{NIKAcNDc^-ph;lEIm#GIbg) zF@j85Wu2ri6593XDft)3JKQsDAP*>k*bJ8VNd|yID3%IunTJ+~viDFP7wS2~^eB8J zeEkG<5WrY_n8tFMcDu!c-8NdF%kzMqtrbE+klK!00YzM4$9*l9B&8iQId1>mV*^Ry zOOVGPUEB>ZFao2|U(qzu*v|nVHbN(XI!wi_njiFB+X%NmSpds1>VB($4ECSXQ&lKQ zPS{H>@O3?4@ykBaQ|JDl`=FR6@>js&(4L2H#jyFCspqV1INPp; ^2!>`g?XsEjCNL`E9-`Kqq( z{l|UW$8jIW@AvuZ`dnA>e!pJN=VP4b`8Xdq-2Bh1knpy!>|my+-#ctE<~;bsE2?C| zkNsbQpy#d+UD1<5tZRd!&-~2t^gw{>s~mS5vE$<%={PKf=F(Hws^33BhH2)`V|RDV zG~;__iP44)AvO)6A0xF~=Fj-p#PU5~3C*0Ly`Bh=eB$kMQZ$B0P(EM?hsSFtM1jM8 zPVAk-gSR%no4X_O<8JRpl-^N>kLak`ZdMfkt2+Fu%vTrR$OocG$lMtz!g{$F(}=1? za3=Z4T0pfQ2P6NpCfC7+OEa~x{zxmk%;~7&hc5L5UQjTu_|MHr!Q10a$nS3v)c1UC z!>uuGk3!>b8L1^JjHd9#i`n~UsxN}~ivHEvwY)4;ExiArw{6&> hp0Q#$msp2hX^F zQbq-77tb6iXd;E5`}=!MtGAjQG@h+prFJ+T-*m1v+bX7T?dGI3BV{nX@zlhG!=D<~ zEIIvOsV>4eg7SZixLDD=*Mzi61E*vPIkwv R6LCrJB^kfTz!H3rR>sOR^cA`i?7Hb#yio=?SDiVd8#*iSm zFw8)d)>@*xM=X-GC>{ebaQb=&%C)!s#K3^P`51=8^nrP%7@V8vRP|eNb8v?Q6%w+Y zNA9OE1mYra%h>DZZ~Ll}2m_VBy$iQk%#_-Jy5|obNOEhSp|E2Kb@We9=XuBL6g}1B zv%|c|vIfynl^+eb0z|A(+6F(~hl$e&-s89>bbEe$c*t7TPIym&3%DN5^a1o Jsz-z<)x`CyorNWsOiNX#98rMH>pVVY9MrMTu2qKxQ z2fY!+KPl=(lCIT lo(|0002pT z2+}d6^h-+|=enJJ5pkleUs}P+iBG^dM7WDE-nxCjW ph3iCexlh zrUxc84zhVAdfAMLceVEstp~r-9Ph?y!G{?9FxJGZ5t_E;(WpJB`M0!8D5T>Js(Q_E zUIPaq@7Q&<8Wm`}D J~zGPYGuR6_8||JC1r3{nB57)b2gfhHo7)zpVKT z8d_w5mUxNekQ@$*%`d5LVg9uwghM$@WdZUVOmpMlJWK!;g2G*KyF1saK@9)(fA3Fz z>xCnvPt9l&=Dwp6U$p#b*=^|^l;4_u`TObSXg-QPHuDB)DytyPF3mn&epBH(J36Yl zD~blhMl4j2I5TL+g&>ZrRW6 kSm-hooH0Qp;0aUK;b8jGhmT@pF zS%O5*CJM|K=7vw^^zuUBH{1Wv2D7_&?cRn5qK5b!GY%DeoUnlsgg+<;0k7EqJ01~e z(z_!wGBP-1?9G>?q+H+lVQhk7upIJwVw?l-k---QRqKuIOcsfBw8PMjo_c7l4dfk< z7vrBc%tvu>@J(AVk?z8!;!VGqPIVQ3YINt(7`{jYTrG)XSCX`&WE0}9KzRxjrUIq9 zTKM0P6U7FtJpY?(5la}iWbAj; zM^NhbekGTs!d#6qZsB2B8(aib-KAR0gn! R`@5H-VEH`jXzoY8Jk|5)t7sNpLg zBSeCxQDwYJoigqs%0y@I>I9>}m$j#A-|0{1>7vJ3U<@_nL9y`bV*{b~i?YS+)-jxN z)GgE8!&hqjH_3ihTbnL1)JKhLa(lnsKnYck4(CkTZ}}H %@E!+K?*IHlM{E zKfOgR_0m=0aR}v}gG22T*vzG1T~D#x^~tqrUI$;_U<}ja;=_k9fIvFw++S3)ayc4@ z9&-0YH`I_9{ooqpf%66u@$~EaTrpL8MnM#MC;2+tnX2TPGf|S+&!dF=!7n^ysvDi) zFoixzgEa$c9cW|d6i-+w%$ZoA`GQ;%Vv0`w2l)Wc6kWI1PkfttZL!<3dfigk$ZbLP z1Q6$hnFh(R9mAIwTYe!HAZqQ$iAPoC{WR!@@W`_ir3(d6iNXGEnCpvH> FIoe4jYkbdHjF? ))qMKH*I~uBqr!9*_3C3Fq09=7x~mu0lU9WSpzd zv0Td3?{4U25Ns;f$v>N1L{)tz vE{?waP& zT8|Q~G!k8it*(e+3YuLq*M0ADAQZ>_ziW2qCD=_|pfxyUm@hT4Irb8>0^(Eg`k! w#=TlIe;(D`sZ<%u zQJcV6%UbWdqm`t?Zr3uuL%{!$kAf!GOEl`2+d0CX3mAuff=&(kOdwX55aBR}z#p{v z>1u+MI4}TYFSe80aAT5Lq>H4HAA)b(z7WS{MdzdMShHisg|m}rI8Ir67azl=(~`A^ zOBY2Ep 4I7xO_L;(U9;Sxugtxtb drNdB^zr%i$Pz@cfK%GEZEW2g`!1I=vGay6U{CqYQN3@3#wTCxJa2g> z DBDKpOI|VIprHEmWtM#9}9yAm-#|ni}jt0UdCH$w! z0ng=jL%^Y!u+iYYVV5j3qvv9oBn?E2V`it*W4@;sW_IfPi8*5u(A8;`+o&b?$G962 zc81;V1L>;2)MlV|<(J=^K=CI>_znskP|*&2HCFRHEncM$9tI*Q9UcP-bMWe@UCV~i zRK6C|Xge!AYqPdXg`Q$yRcN~k2j6o)DL1e45Y3`8nnFzhG*NH%*R(on4pI>EV${~> z%0bJsKmzqwkV=05I*F#L>b(qU6jBLCRHV{dgm|f+MqX7bz>V2E9agJy?}S-z !@*?$+`5dn$8~80RU5wH( zoOLGSQ-lGcH^S!Ns{K9Rgy?2NI^MM7m0wpe7Gy-Ge2iP!GyGQIxA&&vW^j&ezp0-b zCY^$YS$l!(7Uz8Yk<5KJz1U|BYpW{wg%kk#kaXJ-8}6hjnttQ2M$B-iHQ!?P+sMaE z;7o76x;~0u7-TkJn0ojS?-!$>#^$VZ2YyNvR?I;!6B8-BY+50^gEamNC28>#Y8s<2 zIlJ~<4YDjKMq<(mOOn)*S{_`D-jmhst_%kiZDsMW+&6o#rzF+E rcYssh}K9#ScV;M=|-&t&=<$lF6X2%>CZ{^XlM8&ZwQo5#9~PMr7?>VOBLX z1DO8s)ZI6?tlGz)Re7s24ym{8lE3Z|#A>4j^#F)PH?t(c{#M44oR;tHOM4r8*NxOl zV|PE#?jL|=YM-@>T)p6O(WraysiQN8yr?VEeHrZf?;erdnqHYM@m5A_8;U{H#P>c^ ziKeMJTAV++ZzYP3Qz80l50|W8r5Dn3-4|2%a5zsE#m<)#^dwNT_N>na`+bg@h(GW* zZb@~_?fKv{&K*ws^a1gPjP^zIu0Nz)nrKmPpP=enZudO$;*pn52Zef0cSxG%Qh&Z9 zjhqxmwXHa`UbYBTSK_IHvzap}3s}s~+>uw3?hQtaNs_YC*zs^Ih%zKi_O57%O)B58 z Fy8bP{5yZDh#7 zjrx1{uJg*4X;jrwl;5Ty3yuAtH!*^(TVVp+u+TVmP-Nws^GIRVhK~CND`;VuDW5t$ zUNxT59!hk%owD8`?P~D)L)DV8WvIed vh~GT@h58b z1E)T6G&nK}JoL6mesDY50ewnt>|ywtAcUG+qPZ*cTIPjH-Lbb46cWC+l|YTI>$h*~ zDcy3c{LuAGhrt6*L1t=0+b=de*;A0!_=(#x$mcpo!HpBd3^pgT(j3eP&~|T?bd1W< zacZ6q-n{#h{%(eXN#Cj-My2;OM}IH-*5+N^%n+Dg^GNq~LJ?(P0p+7#Dx7EA`t*da zTEa{79ax(APnBWx&Iy-EcVTYi?nM|aqE+lXY!+skqgQh_ m1Ce%d;*teO`Z{j&eD+hla%qzBW2$ zZh(=`ntri=ZokVNq-Wc ?HL!g!Da S1K z1=G=8DGx#+m?W%u(yUZDHbD2c$(s!=6Q~C|16d RNat`Eo|yJiqe1=}hlcFYEJMR5GVy z1v?k78V=-hB+0A2vUCWf E%-YRCd;7vT-F*I6UC%n==pic7=@XjyNo<`Wh{5 zl(dcN4#(}Djr%Xq$xaqt3Xh{#a_Uk{JQyeJN3ZT!rM_&P?@zyeeEtMyFXWZSzw13i zL`^*1wPV11Nt_47lw0!U<2`x`W32Zn%Jv=KWEMZVBk+~WaOYsLvRlufh77fVFc1)_ zlj+6*z5CY?h*Za!Z>|M8ckl-Vt&+7ByY7*(3|~!HLH|}VZSg@=KZaksU*K4x+Q5x; z_O`x E4?}`LO~x;y1T0GoG*hwT zjYst|tG7Ez!do uPHSI<+&SS_mWyUFm<#q~;Ho1U7q0ASPgSsM zWnR|(Le%N!19aL6?@ 6aw$ith2kj#BPdHiC)sJDLe?bK^ORoA5C12?`tYxY9Is zwIJtmo8-4KoH=8My) 7(}to>;J0+6?rO?5-3$j@+?PX}uWG zQ5eu{UwR77&mdDzu+qBE+3StD&M|YarYA{K@{I8eDmd8XwdGrs@^9S9bAPMcb&D}G zr3*&Kw^TjAhzC80$=$7?N5_%0E9qglO47+%%^{?5PmaG=@MRd_N_LyI^7-%;Q{G9+ zR%nH$8IGlwr-U$x=m;`RD^raQ(qXK)+SaR&U!37IY-Vm}UOyJ&$rTxyOqJf1?RCm7 zIeInORp2yf7h4}rwF2FzeNna`9E3R5i<_1{T t0->o%^cN_m!~z$5FzpKi3J^C~HRsG}H^syQ3X0`j&$NBFQe zN}P4pnBfOBo4d@RoJBi5lQ+8eUaa@zW&A;Hn#ULPz%?T`hmXPWD5sd%MzGY(FY$bZ z-t1n7sJrMsS}U- ld=9 z+d{;korH$8nOGxD!|1h_0JSET#t-MIh758JI1kM5C$V-r4xG9Hz-lvPfwbZu$~^0a zoBcZ4L&uG?Jzg+yb#{rH>2?I_$E(_t{R%D#RZ8Qa*a%n?AZZ4AnxJ+kII`IHU+fXP z2O1H0G7OEXV*Cw#CLbp7n~AFmKOk7=)pI#dBEFfs`-Co)J>*^%-6b8onNyj9Va4>G z*Xou7H0OLR9TFpZT?ns?#ZSfycf@{=;u3lNs=CPTWiRGZ9vvAhbJ!K#4QRO%;Di9v zPr?AB_aZG<(faNP3`uGpw)*Nh)ko8C=$YR|mw-;m=bW8EGs8E5=t%)VO1fUDnW7w; zoD$C-xv9gxan}iKY w_zShie*Tk_@z`p|29|?d4!YN z!M#~2ny8pbi(Fe0aoI*29s5_FF|v<5xm#69)Ft!Do})0M(PW7SEF?Q59&upb?pN)K z*M>$6)1d}~Yl9D1-}?`h?JZ@soaVae4?Qi1*Ikq=3P`Ca@2wgIfIEf4YAqo6!g%Pl zS$TjykT fX{9U%x zSopIBcG+w@m4$Yh;Vp83Q_yP=&aqJ|sQ%n1Y@Fq=+oAzLShq>-Wf; y*)S-xH;~FsW@9yPU=b^mpx%d>iO&-g6Wj*`iW9d* zdr%nK9C%l(?(taJ|B3Yb*Fne6 a{#lWdqK3;N||*bViX8TbDc zBEexZeDjZ>|MsWU$3_09D$}U{zidkRzj(;}w}hphnXpY^X11lAtyx`6*xu1$qd44M zq}TUz|2OvkR !#L`Gno0++)%-n+QIN^(*>HqQ((FNeGJleBZ22$ zvuV$tKNqT6@32cj0j||6Rzlv3B7@A^{nS@JJ-D_O57MjYAFbFJ4XzIH3-I-=Hy2YB z3aIz+;_;fF6uqkz!gxLXYfS2#qj`?r%}Mu6-@SizTD(}=!YE>>&ou-I &3nUF{o7W-xu#Sc4WU(z}80HUztB`-7vQfh*cjr;h3b1zI^SQ3S|KYj%)sEH! zBm^9X5!wuZfss%iHKT|E8*uXW{+kGc${~s}oX*I&Xm8yR38B1yQZgdwhil>b^c$;H z ;#qEhjf?m1qc`Q46^K_DdU9$)`?k}TOl{AGwaA{I3|Z;Be%7HSXM z!d22ygVC~Qx9dAU1UQgUnwfCIN!N~xE&G%X7nCyRfmlx9h)qZN;S!)@ix1g;s{>et zc6p&i>QmQur6GHm)ZD+0p|zxhFw7VDIVNk&OYCW0?u2* zI6D5!bOzAMMw%3$(||Oxs289!L1TkL-&C(OU0Em?c6r|cYtrjfnuMd#vBxv&b%ulu zri1|-Hc`1vcYD0y!OhelH4% p47F2_bk2;egK+2iX 2h($if*F zUVxVt&Mf022(nDM+xpT8Ok?*MRww$KQ_jR15#)Sg3K%f^u&fH07u<+Z?^8aXg|tS~ z s3^Y HqJe!p`D=tYj?zP%6t!d*O z=Xvd5Qly;a0?$ZHR#@u-r}Bk+t=B+h#cdU+MEc 2GTfn6hF_9ITP_V$WiMJ!!vwykVPtLA-E#S zF2``OjrQxQlUd gWWu1 ze60nzsi|R4BI`o5b#mO*3?XN=Qz~vB)}`?!@~SaJ3rhKW;_5pZHo5+#FKG!=23>k@ zFnvYS>yJp)NOe&Ff`5@JjGEz0U!nT0GFZOY(xN>9J$he; I4lRU9l`s+ zQY6OT;69U#ZRco=t+%j=SB_2uyEwmp_EaWd$9l5l`E>>phnQ1KTA!NcoCX?M==SLH z&&Rs6eHcWb$8X`triLUmyeQ`fH`9p(X~XWoPfyW+B _Ky&1N<+Kb?N7(4y+;NlR1i97c+1d1?nxb2XKs885 zco=Z$PzAMuPJ_a6@4APwHjUJ_bbUNwxI}HvOnpJ#F6=IyoI%{YW6`Pk>Ry5`!>GZ% z@47H)Ch~Go0Qcw))51uY aura!n$U%+?2?bu9BYoLqgu;Q;N(0I>a{XwCFo)< z(1ojSgXv+Y>ZHRUXq8jT%S0r(Q4`2eM{@cr+YSsPh;rH+;WF{|mX^Ge`LO-7?^Xze zI-Cdk546kp0m_)-PSLC Wx<6IEy8EK8j=2xhDpDvYVgS0~Fc zPT=PKP54G2z$lIOz`m+km6A`Sl~eh;B97|zzcGbjCvh|-(a~e@*3W_AY(Vb07n=R} zreoHiRP`s?;fz3s$y{hj@*n&uRXdU+yKjja^N++pqnWA%UpE=s{EZ=?#oodJ4ic2Q z)upJ8ho9jH;P5_-ZJVs4rFLO^eocX#F!}Qs4O)&}WIc4d6NIPVC5yfUCItyZ=4nOQ z9Ld%q#7^!O5I?`+>h@uM?7BENxW`d+q6R^$dcA!CnrATRy|#;J+XLyBh2oovXf*0M zVar*UxP{LI+*HRg3)OX>_ v1%`oa_YQ@*+j z$Gd&dlkko7jas}>V{?^bYEPcDtuSBa*qHOQ+C;Ku=?Dl`PCEK-VrfL%68CoQfuNLq z{;JkDw=_EchXn{`osLjE&A+P4#1v!w=i;a^ct8BQU0u|A=fQ~o1XEO!ht)0-lhA)Y zH>6Gf|L*@|Z2HQ5jh^03UZFo!1 i3T4CQzQ0EjGh_la%KlOc3jLTZf|$(5C_2XL z=Z|JSgm^WzuM+ PEii^JF1P&!UbO-(tkKpBKcsVXWeiW17u7Vrip ztDXOp3BZ4t@w1B{n?=~?|In- z)u&0^4n)bL#*L^J5yDp?f5#V;h5&?^qK}Po!&gd??Z1k=qM<~T%c74_?7@6(9-p63 z{~$g0Ahn>^05m5JDnU><4uvHQUB5z0!sn$sf`B3pUHIW}E0EbgI+J$)8@JF Rh)MMXiu4j-&*KiBdM(zzv1R-woy{Gn9&=Wu{gZhl8o?$8D= zOsJEvDDQu}NX3w^5>B;o#~?fbboc-eAnyd>uK>C^@J)INhzlgyaUP~~hfuscq)OGU zszJAen!y!cMVvnvT(s^6^oKuy96%9tt+mXWT8B!_K_Go@ea53}I#gTL3WEdmn|JW9 zb`>y+9Tw-|nWZz*U+*pcq2k!G*k1FGW1@qb1cbt7=+5)uUSRr(&+AK!xXIi)>G$L| zUxC~W{b@zL&v`RvhpSl=s)Mb#L_eWAHYdbigkRX-3O{R+s3J8<$+|14UhfDGcGRFY zC01x2`l)CLd<3I$*xB{oaZh_AMj}pN5C!x!#q(%iK{fEF&5w}47~Dqgq*<%PUP0 vx^LshWCh~Ow_wq>R=#cuR9A>&Tatah0qTU&LR!W{{!~ zb0!zRfLkfBjq;;SEo7nt6|U*N5{=%dYAb0|xrbyUi R~ zo{y!YZYEhHP>{Oy1*M>x`HdT&a0rSdSYMX0>@*bFM5P(9C8+8N&$VDfWxtg<)bN9+ z<{pRDjH79cX9~Fc8}{tE2h-oBLg8dZ49BdWQ8Se6&?)VPJxMXdLUb9#GCKQ4Ds0*j z3hVz>`dRkun;XI+f5P<0KHmLg!{{p@KAsiF-Mgh^jT0>4YjzVSYUEAgAwi;>#sVV8 zi*!|Lm*FsB!x}Njze`Fgx&Z`d^49WwmW;~VR~z)|r?Okpi#b@lM(QaiFOF9h@eFC! zvKO(g5=sIzrBi7aH=GSA$k9*%#>NzIjHHH}D|mAjg9d>o1Pzi(@n#jc(Rrm~+{Zk~ zNq=v4n*yd_ws~>Yc*5*6rvXAG`j<>HPV`rvpa2r(*;xfemeLtinUDNd&&`OB83FQh zZ*b3fn9Fckk1aa}R;u;iQg|=>Io#dHB$8C!VwzWJh1%AZ_0gu8PV^ AR2C@6%xosw%4s-rR=YVbl%bpw!#q zQ`WhLsjVByBnW>`SV{V3Y0+m9c!g`*40lLv&9OQYsk<|85)S<^S*?>rA@yE-)@st< z@aKz4nhNK^d9x2vWcoSlpH!3SZ#BJjyOiSSjwG`u4`~2or~qj#@+7v&fhl}sV{~;U z=@T?ich-AN^+oK(_(J~T6?8>VLJGZ*fA7bX&PPtAF(IQ-QNa|a{?_ew8I~3%cq7UQ zy}qfNO)0^gPs`X V23@2Vnj)#6 z#88+pUi4jzsT!~=OmN>mCp!%6Ci<*B1ErH^aGTdl@=Fb61}baX3D=dpV>b^9p!BBY zh+24rMxCj#qt3p a%N`&kmC6}S@1cdeK!KwFu z0u1S$RtRs-v)%UX>^YIEoD}cd7xOk)o6D}hjP*lLjeM`DQsZ`3J9&)DR5MD)*lU@N z80=D^ae6qD=86C)E1WqHSRnBnZBEV`T|S7w^=M*4chUT|`Zn1P!Jgi+t4E6$PBSTf z2nPMQ3=!-owPkHaa7Z3wBDTSGvY)w^P(R9LChX&%di|kut*l8`*6{i1Qs>Xt3oOc= zIXq9H8h??htUJ1em0xWEN=C=y-gtLVWbPHC)*x)rNfiJF0v`*MD`DIW!XT%bFGnlLxp?O2V)~`or7D|^ =xNS=h+&(hcZIl<)Ay!?Cfoj7QDwE z&}(VV`w-~+)r~rJ*WPm1XJlJk+wyAA+EH7kU9y!bweHn*P7QjDko#|O?VKKvcX>Bf zpedSF`3oksJ5RT(%A6IBhZ_2AC0Ezw_m`GWAU`#ifEM&V<^3A^$#b5eG@sI(gana{ zwPF*kAseQB)Uea>d(AhRE79zISv~Z=;|DZ;JcX)w47(MIpG5gkp9o+Csqx6Y`;lD= zrOJ@o`5SzNL*46YIFeO;<=D98d8H>_q))_8P+OYmRLv?0ZMPhaJb$aN@Z*)?aEZS& z+^Qi3>UNxoY`=81==Lb_>;IUo6KR{-y8jaMsgVfzcYB#kVzk$W=@Mcju&C`l2;Ipi zgjedf=Y*CMWou_S3Q(P7<79Do%Dgpss+pO&Bba8JJ^2M8>7^}+ahb=iD-}tSr77E^ zNES75U{D@`pbgqW!jaj9yv*csNS=3sgc;ABQNlKxQ}^Tcjob4NZq~d$6&*x5Mw1)o zd)#1JP4Kw+v0;v*p205xn?X|as7>raIJ-1IP}=_R<8>6;M@7x`Q+M37Q}(XU5P8IV z+FY8OOSu4BA=k>kRY+$$DhU?5v%u@dJOV2Ty;@t|85fXF zUUnak@M@Z=TvON+lk}S@b7tna< sI2V-Hbnep zRj-^z hIil>eB*#>qFbR4Uw+|IhweD6y8K#88haz&w| z9vOGUcEk32$?|PCC1<%~Z=|GlzVseKT!W*Pn00%$fT;Xypes| zzFQ zEVp{*MBodADsZ561_ohtG-BK~?Fq7aTDEV&l^NYkIhp;?cnC2e!ueJ=9-?o!NdW!F z^jDbO5(y%!IFbGrV$nL7wVyuAO=<+%*O6a8T4>6ov7zqhN1hDo%tmNd<#V>mdarQD zY)}oU-+hWti5Qgyof!Glbf_`#j*D_|7WT<< hB!S){(fIakJzi@0zxHtGc zkB-qkt6`Ad*2p;W+y7$2rd1qp0PYN `yJ02)5RRS zI`GLZSvS-UcpjX&g Cr-YrTfU`PQ9@4!)$yRmqP|k-LO|L}t^L4dDTw8mHO~5)IuD>yOLrt@P zL###lCWj3!&4JzyKAN?*c52VCETO#VNTmw4!Ntw2H>+E3d<#40r+#xYH|z~dI(g^D zFq&EW47S4$KQRXgj4&(yPQ|zs{0q8U2p_kUr<;90w5O?V3wQ`vg{YGoKJ+pyKnKGh z;QQw_7zeY7rJtk^j90DDYL3~+L+zB#@H bU^ja#IMpMG!C+kKBUd@^D)B1735l?>KBTzD}#U^F{ zuBN8V$0X@DY~Y^uC0@PzXoKlNW4?MOUC+Pk$wnyale5Dc%l>W#LJ_Y*>8Nt>AI?U~ z1cv?hpS7s}qjf3xtVREf#1N OE~%QVRrVcGTMWZEHL%bfdXH{Q3||k&rk$@S^8j3I z?F#~eLwP|{9%Bd?*L}cp@vn-5M4`3@?7$n1BO_+w-{XJ8VW?+n2DoKQ7etl!@nk8d z+o6C~ig~gH)SU#zfad!L;BJWUe)k=7<(nf& C-g}Qm zpo0x8xdrLG95OfTqYqc&QvGqWW$ztIkhXyr%F+AB6}|ir`c;-l<2mfuk0T6neHrKV zHXJbi98mf{#y1D0@C3ijy)Sz0^8VQn7-&v8$e_x(lW J9fqe(61_Va4W7&TW zx*2xPX)Rh~$2zWCzWKwfZy9FzlsF4~qcGs;Beec{_1rTfFh&@P0SW>u%G45XtU>7g z08B|^=mfSg%}U3DU5DL=`I2Q1I!$8o2oxM9_;mDP1wi;2U&aF2lttQ=6ad5+ LT{dRM}98qV`3c}R6g)7q7)ILj85w0FFp%` z1P76Kv%a=gMhVrKZp!x%eF1Vua>A@>8OwUad}3)cIw$$D0xZ(D2UZDO6$s}|rbj6B zFi?t5wal$C4>A%Rzg~jWFw_E{4JC=2$yY@vC%R*X euj(!f@UE}+NoH7SG40GK09;+`d56AAuUaZ%Avgs52Q!j4I4Bzit3 zH*su#sGWgKh**>!0{-}g*n=uYcJ>5xgI=wmY?q)iLua&dyW4~62oXO>c^e6;NfI9g zKmI3rFMW2pxqB7woZglbvwmH^VCZ=n8L-%5f7CrhZ+xUDaEKtY0b=+_@!^oSL0} z*KhnPENgfI-}cOz)Du<9?|g*`#1Nl+gr0SWnP_i4#ew!ZFe1Rpt{`O~31fxDC9paJ ztpaws+s^gn{WTyk4$V!a=YJevRwugU!YlOdQeBL{f Eu*{KL!C!j~UVHg-x za~v*(ir~|s4d9ab*9* z2Kl#Z2W)0%*d6M-qZ76ZMc*PucsX23aSHKP9GK!PVe|@c%>`FZ!k69TFU6sydeV~u zQb3MLzp!6&eVTjAdoN{A*ha#z4Rlco5@7yQ9o(g$h#=DnAXYF(I=W;oo?nQTc64YH zIk{n)3UMZ93{cDmGJ>&+Zek0-9j!OiGI>|&UKh%q5Z$TINM7{}*oxa-Sa;n9XwP!| z11Divc4>=4>x~xUfUC@$@S*^!{)bwtS1EUWZzv&Tl6<_%J7xzK9JXnkII!t7I@ ^7!1K}Vg<7YhSvTSqK_2+iYo(Dd1t{H z4sK-M39cMCIUsb8$B9q^iU8^4KGcu 5zzi=Z=-eQd86aY|d) v_UW_%iF`|~Eyzm?cM&r=Sbz|q1cDn_~Y66)hK=q|>7|`DOd>(RkR6JI3I7PgL zHZ3-z(sY@2^5l1B^KrZ97a?$ILG`2 8Q2G3};>G7pC zxiT)9`CXIM*)ea5#kAl1EzrDToEj!ZxVKLNrhrRDIW8pF0T=`Q%BR^Xf*TGW1`aj9 z$|s3yEw#$n?D!k>O$E^AA4iO?B0e7hz(6dRQ5-oH)(;a3$`+&&g8KX=X0N4gD;T@= zrk eAh7ho5)E_ z^kA!_^_Y6&LMaOM!8Ai!jC`kY80G@(Lg3S&C+wB5jdqL>C>SlDN$bQwhWi R<~7Y(LWEcFimT%Ot*&`O|%M!K}CO@_}Ex_!FSh`12+HtU8Bs2`k^Uu5KlnzR0`1 z0#K{O*{&aIAs(J|$T$RkJX;wF!&xSvr@qk-Jjoaj-VHPg$HqNK!~5JkmV362#;HL& zm>WrQ&JMl!`K1scHzNl8k+<|W?pfc<6_c;b+8tf`lL@Vpe&A(@sWdv$_lx*HfuGb5 zlVu68D|`1|6{_zE`z+w|-d6U`oXWW^8ZP(I6py@dk4iX5_J||3tlx`>{$PqLhX`9{ zCSqrAg=2SZ`$5uqeK?XGbVzF$bP;l{-Cm8vr8<_s@vJ5q9u20xJEog^Trt9oi&)A{ zLKX-rr6I`5`J4qzlJagqH==s_rC?Itodskc0pusBqrg&W0wPUO48=5t*3;U+m`I9H zRR0Rrj8Z9(7dUBiRK{R&w f&{httckO2?) zJGdaD0OUq?1vg7vZ;U4D`N}@yF>!+}BeF=g&LSL}(UG_SyX_1jrp+cty7v&H*97Dx z tOjcgGlMBy%R5)wD3I5X*6632oL z!NKT4Ud>)oUN}VooR!3xLq1;SC8neEh%xI&c~ajiz1(_<)Ij|MT+-<9Y!aU0MU;I2 zL2*?^f7#8d)TfrIWEiJ4n-#VZwi1*kjAVIs2kjLg8-g*1&1ri$C{B!HUSC6k?(^xz z%+we9XAd6W8+g1YfZ(U=P1n(M;bd!_B8 z>QTlX^iU}inA+F4rFaKIwd{n)QAOC~H-4-izKu0c8`PVh&jBBusTWU*itLJjWTAIE z3=S@0PH8J8c;TDie~r9iFyD8sF0tXFd6^T-8iA|{rLjT_(tf=g#HL8lS}1EOXlDz4 zXViDL-zChK#^`0eZi-tl*1 Y3A=s4A6~t7xN&cxFM1M8X za@}dq**@8|tU_YLR8$!#y+ $%0OdL_00Sd`($;cVf{qeLi;((;AJ0 z4TjH+3ws<->Rv4}rPE}5YFh4WF?rYa8IrNc)3tmyGAq Bed}@Lfm|H#o zL$*8j=H3sqlBEnxNM$$*6lqmLs~uL($h7mUO)cOoPmxgu`)6-xZi18P36)YjTYI!E za^~&p8+lg{QdIbdzW7)7WZ)71iN@CJdL6os@CgisDQxbQb~JVAD@+VlC6TX!*cDJV zThB- 2$d%75p4hq#G zQgq#u4{Tq8=jsleKi3S37xW<-jB73`0B(>y^!;GdXY|gt_IH}t)db8$X9`L%q<+ZV zA1}_4HG>|Q;r(PZ4HdnN6nf5?8sk45gO)xo*5RT5SRkE0$W7WS3Y#9tA_#wrAAC^* z!uk4JXLn9kdVbmZ?a+?9NHrDH#xf5#Bd~>>P_%81MwV*yshyAHU7Vj+C(D|r@1oeK z#kJv0p+ *A~aR>|z-{2Od|dnp@JSARm1EDft7rjuA2$ztfWYmfxV@iF5Te6^ue z4OH-NAKK^!($$hh1n50XbE{H3ETTkjML)UYL4M_&?p?OO0D+47SnEw !WD?L6MB~Uj4|IjGtXAseDJ=!8ejiX`nod=_^c}Oz$RV?R z_qHk0u}gixL^na+r#o8Yw`}|KOyK~*%vp{G?Y;Z}!t#Sc1@4&Vrg+*2S(Mv!S;95%* z73gf~gQt5rs5fz8ex_Z-r~Lq>2E)@&10{J2(wQ6qi ilzB()B3>lHk z{~#jcV6sf_AIQ^$gs_vJe-1iT_!-3hS;`B5b$ mCBQz~dC0w)rPx3iS4|027r>eoabRSUmVYSyq}oj4U}1|Bs`uhDyhA^z()6|1F=@ z@D4VAC>y5!>Hk1|P%1OAvpa^+|DXS*A#7rHRx++@qaj7!^*9^tJ^!;@_T73W>H!aA z33N3_YlBQ{D2Ge64h9 LHs26>oh xPv&xKw`Jo%=?OkWh{LjYTmL|*OIeTT8Oi@IX2Dwb+Z=hx$OdU>%L7T| z^-J?1+rB)p`=cAhO2d$RUi@H)h3KfLiUUb ;<|4*YSDyoEZ&pX_}t)83>1!@~gc@}17Swu=@ zI@Rz=REo$emGBo6`wIPI#0D%(@&mFlvr=7M4KxG#u|<@TnJy~?wg#iy-a|->?;wj& zz6;V8^L|RU`#n)d=Ri59B%QK%e=#!tKk4AS8B?aQjzA|8(agK2ZLV&D!F~vjA?T{1 zMq4f8k4jH}4{uFE_EC$-2j5R~Flcq}$>xJHoQ595-|31fIy;m)LWU_T2qeS^d>o;A zCP3mM%WF;LSQgP5%~yx?>^k(=&Kg+*7NH9mdPgjHw@)VsU_|+hF5)^qwqX#E1?Ry^ z=~}c{H}%vPw~54&LE??=wWl;)6u?g77pA5L9sh=9rx HX2)_B-ebS?fLfV)pdhAdi888 z8isrb-zzx`uWa;T{Mdt_2+$GMtBtATJnc_k;s37)5sQ3@sRm9$afhLW3AQWYep`1t z-N2$)1R3s<&)wOZbNNT+vZK_9l=c>4uBLvU85Q|{g)lHE=Eb%lEc-;;0g<8q$M?TK zC P#404*1U@kUoItt4_**Ty nF6w-gLEz3*ydx3l{n?9M%=?cWhK;`}iyf^3C%3MT28LPl7O5W`)n_q=qz+TD@ zP%R$kK@nTWEEs{vK|_yql|g<|)UO|$avl2=Fi`$CUy>Xn!8FFWgoxHE=LWflW;A2oR1*ftY?BwUI|~f z{=w0*P!%x4;VGl?s6DJ$ECGz;Vyf>Ycp>N@w2dB`j`a}Jff}0Kd<^$U(pUn-w72Z* zT3$p6>qm^}iOME_X4;bf3|tanN5%ODIs7-qL83*jghWs#KVU+aMyNeZ2y;>XRnm5F z{QHRw$*Xv ^211ls zBlTx{P}6#u`iO1Iunpjpcj1gAHZG^E07d >pO%`E TLk&b%tPzGYI{nR+V=C5#0rOIE;CW{Vsvb+oe0 z(L@x2c+0vLW%@YVNBzX1(?(a(2V$C8s9o|RP6c+q6(*$PPVai`4sSuAH0Od+{@V9z zsO Iaiu1F+}|$PTg*OyE@aF84HdjvcSiIdZ*H#PD}*aKR%irSgvOWf zYvOqiY%&xsptA~TB}j!4Pxv|^fxSmxQXH=t_pf{+PVEUD2I`YM{;|{o3hoWKiojAY zi;!s*x9+nKvczyinB74JE1je}khuB7*R;#rHeMo{Xg?jq7QS$9pp@S=cHj8agEt9Q z_E1afRN^^Wee-JgsY%rb;Tc!Rkrv5cX$v)c v}5^lyo4iR=neUi zw|CSheU(EhFJLKc&QL8a6A^|faBK3B>*sdRw?pNp)q|IY4Hijga!UU95ljn~@?#y; zV5|EN3jh&z=Jn1S2Xk_DDkYKk(qQ zAC(?@2x(#HkOt{)krWgVl$H>b5=4+3U}y$GX=%ZrM8ZH?P*6%~CB;Cb1SHSC^uC|x zyg6(A*E;9Cy4UY^#Nmql-TPDfmMCOrj>EMrp<3$%H>ZjoUXyp0m`T)Hav^N|P3XEj zNDLT7&r;vgby_NU4$2Kd!;GHOsdKv!k)SHw48zSUr~#04cnIavXw3&TTy`eT`Tzh# z;It0L-R@;)fKU#+AVRNW3UxIuG%((SgOAmt9OyhaVy_IB_d^!n)P^_q4PYv-APN{> z+3Kg`&x0iJ2<#5ODI7<3NTE>l2NasvwPIZ0->-fnVJ%9VMH2$zCZS}Mc*23lsLA^_ z(F<^SybLI2L9l>9;UNMXY6tm4aE` zIu%NtA3%25N5$Y6nEGPBu{Q(NxAqf!4RymA2OT{49YJdog`KS=^W04mc09 zBo)o5Qr>1qwIkwqXmHrazeSMuzKWoNuMKEVAAEf@h=T1)pk}@F3|NNqS<&hr{e_+r zUNl$0LJk{%Wx0?$1Q0s_z{$^J1UmILSWYfRYEH7;f5$uY%_A7vA2=gnYAOUJK2!y* zyT!Oq5CjEtT+p{666ePt)q^%m^y0JnC&4hHA+f_he(b?H3cSbgABBN_=o>&5i`9<{ zld-2)!nA^KF7Y|bVUxn0$Ck)YnkAcmf$kbh!B|p{43>*9RofZw2i2+pA{MO!t%EPy z8tNvoUL9%WHuEC>1pGNW8r?en3G8qb8(?m9>Hu_+B^B`_=tUveBTFtk*6x6&z(HyK z+ yY_nJ0=PDvo0f@JPu%p~Tqy8(OTAlQ^Br z7!NZHJY4(G_GJTP^kddR0v^g#1Hl*2gN8OhswNFA^Q?9H%2O%~si=@19a>70Qv+u_ z6dnHB)Kpr$LI}_|@NE5(qy 7#X?NmS`8=%ss-xnlTFYsSt{u;xNmf-`N zz{U=rk6=iN+Z|*hy#RRCj&4{Q24=IBr%)~CnVBh1{RTJ{JH-)1<9K z1U@Dcg-Gbel(UIac$CoG33o#vi@_x43HK8G<%{tAH*zxMt%8unkzP-SK`&6+s7mVE zt#@zKr=Qz*|7Rj$!aoiL<-4Sd3p}W>Ll4`DI85OE>q!OV?B*lgTgfa^?EyTuz*3`i zl~YqwsNg0~6*)iZ@1Ue()S4J2N%1_1X9>Cik36B_=hA%8l_lVKj!Uufl1z?Q{Q6o# z95?l?58x43+S{KaybFM#gvma*b6$>1IgrZs(D&9Yk-uexM{5Lv{MqaPB8Tl1EZ;9| z;0wMd@ A8kM;VI}u($v4O*2!vNud;HR@{HUXOxFb}ULXbr-l zTEY8R!u?B`JmGJLa3e|Qk5Gvv^&l4d=dHCr>K1l+D#7$bZS-?t3K#W4et&oE;zMLS zFtEU*fvlRo(+DeE&nQK6$G8CX<*qn_aU=x&P`;u+!fCYkGIYFx696tWEHfXzMW*pj zNH7?wFDrEb|F|lt{U3<=Tk6k+9BXkro8=c_XE+9-%ZH)tHDG{Czkhi^Pn$SB3VOY? zhj9Ehy7bcLctK*xvd+h
E?5m=q=lmovGI125fcL* 9xxPTC3`7=b`xeO>jrY0%Cr1#l9!r-Hw4_+ zACEyS<`R(>23c^D!l}9oJrR78djp0S5;8KRMnYc)H&nWJ3?H)6pCN4VEN 0EQnox!*$8 zGq8KDN-I@TXVrj93U@o}&$k&kbr3HT0E}>S!7TZK4x5(-uN|0faqQpWX#zw4S(w;e z!{0UnoCF4ra-c#$4GkXtpMZfK4TJB)nY4Hp{zMMCc(_(A5S0p-K*t48c8<7#d3N=B zC#a}M^5-|^I?I1s(-$GT3C=8!@h8nbNRDpaX1Tv`A|qn5W_$$y(07Huk2YO@uuc?u zv|StR6oIYQm||FrA-U579yjfa=U~@GN#GcsK@rAqV3@&hG%1?injL~H?FcN_MmCjz zwp`=O$m9Ies17Fp)#2r~1ri0iKoH$RKVex3SKcrtt8O+g4L~P}#5>+k0F-(?e#h_# z9!_I>WyWvd(gIxO49NjJdJFM9T}PEbA-KM`Po+eb#2|v6bM&4Ia6S}|S-zfLQ&7a6 z6Fni@0WVW>c61lk6 X!UIHfng&y-}Ki9V{ z!bziW>Cca_<<0{a1zwp3KxvoGF1#ttjyO5qY!6+B7QTkeLrO}@Zht}J5c)EmaKEmc zHEjI-t|e%0p8hQ%I-3G-NF1RosQ+2G4G%>K>IL*fXGf{rw3icMl5fnTB>&)a|LS)n z1fhqMR};x4c+eGlPEH^cZY~nn`Vtvh%$!nsR6rQorI%D@fN!TD`k2mbLiuzS-czS| zvrJRShJ}_XUt6wN3K)-yr%3)&hJadYtaB+vib{D)iu%Ts|NH4Z+8^pC-$w`pgeNpR zc96;~Q03~%P}+kw0{|^4z|NB}SfN}#07wB(gxpfUipBe%Or>eEqn|Dp+2=dW@B7dw zhLo z{|2c`d~gLX<)*DIdQVBgvpo*A3L1q EKOMR1`%q VX7A%nE*NgmH ^U~olW_kF~kfE3UMFb|_d z-Y&m{3QD}X0{dkE9{B=(hS%T36KCg_mg4>lLofi-;O!ncrcpS~#|vgb?NYNYI+>?A zQPv f?6KcT~S|Sy5j3 z^DCEyF-OL`(D|MI`EGyJh4=S9+qk?cA8cC%dUsC5*@>b1#_N`kRDX4yXj2XlNLEO1 z6Mv*7%{=p3QilNm2~wF-_~qQ`H?y28gCnT4)nXX2SCQ0P2J2?Ove%-XdK^60C5J(L z^$Ea#CTLYXx+f)P_X1gUzd4Rz2=V8j5_MhzHsv%RZ9ZObVn?)Z8rY9?W9eE!x?EvZ zUEsQHv3PeHsy)-W23P>Gun0ynygxFk)HKUD2Ei*{7M9A^Y3O(6s+aaVJ~CJU@Aam2 z0zk9r5-JE~Rp;R3J&(_UpO3JMypp1m9-THkhfqi=oC2zq$?D_2 !`k%9 z9U+lJ)NWR}{Ifyh1ZgBtTAmeOZ^yB!5)xdNH3B4~VuWV{5yR~7_|7Gp;_e>**kB;Q zn5e%1ud>mx{wIC0lD|Df9_`#%$=GqOP-FNagoM)lyxg)aL&8hCIL{)%J>KBWUe3kO z7p~F`6ct9fGSMPL@3A61V=yf3QVG<|(trs;bvXxOpnd6+_&VhHA{Ml%0CqY-FaR8| zApfcB=Y20r(w~kPC= b}!KRyOn(PT%+v56NU&N?Z(%PD#!K`iS2@QuF^{WFiR5zhi` z_;@5ht)7!HNjfZ ODvBy542+;?aEgi{kR!##Bw!1%rS$1T!eac>7k?dGoImKh za`^F+n?DW5Cdan_QEm0p(Sne!zO^K&Q9D- I7$MH-41!g(C1 zbd{R&lWA)iJt^NzeD@D9JA4d81eK8fXbJ~X5Uo`4XIS2FCMnD*6{Yp=%#GWscBNuE z9#Xw 3tc$MV?!l zJF}%Ym4=&Nvfa+&41ArU87b6Ip{$*^krbAYFAQ;n^tI4}?NIs z7#2jhw9d20JXnXC| zy%q29k-yGH*^932G{8GH5Tl$@Z FVvF*H`q zk+&lgdBu~YE%04#dQa#5LgCK8uwFKP)5emNJ2LoYPtGbRYV{a+>hlC-2VDanzv{dE z9T9ix%h<9WkF(x|nKJDxNAi!&E*2?dAILu7c)b0f(TqAGw}dx TX!Rmo!ul*G6 z)w~e-zm_IeaQZy!DdQ%PivkSle81cynRV_0OoKdAv+CL`*x`j8BM;r|&OT6Bk5|K+ z W`Dtu<+fLyXx;cnd+l7)b5e-k4_wMa zF9!$-n6Rm*^irY&;eakT{*VirR+tK))Q0?yNqxmp^|$@#=_y^hBIp%QsWSpaeJYooKKeT*-3OQr2`Ia8 z|Cp#{1|+xkZ3$KNWRnzF2Agp (HAawUS$@8W8 z{BRFy?>6`wO~$`a{3=pHIw2wLdKF}d70TPc0Uwiq^#w1PrrI*~#rFW-;FEpbg`VY5 z3*DiXpBezXi1=~HV<*oVA)z@2a>I;ti%D%KgDcEePi6Oy!eh1uot`T@tEon2sJ2o0 zy50UZlr&I04Eer3p>Kn}o`KmXtGTO9`j3d qN5Fjj_{6 z57p+cyUiX{-2ed#`^vvwIPXdluGaye7P`y&0hTeUJuYpvn)wgul4N>kM5Soy)0_{s z2fFI1Q5MV+{fkVsOuifX#UAGL=$sAvng+;qAU;0C=$M`J!Q$uQZ~R@3?&)tcEz7Jm zW7*jmsL|+~n?c1M&Z8R|GiB0eJDU}>QqamdFFVpS#P4rx#ATQa-ImcgKmB&Ghv`uF zUFq+GFGnmMx3HPYhSmDhpoA>F|K;zS)Tyq0A=#92LFWeiuF(OhXiheh6GcX7b_2#z zgSjz>@24gA21n?~Lr {QN?&x{%glQ_^(H;R+J3w25NF2p02o8E3x|T5489M zo=U&}gs%Z~R|7{y>M2 ej&^JKR+S;e 1h1epEdwhn8&U8tPU{s5lmb^7z{|*aJ&(xSAgVA>$Q2}Igtog2QTMx zg#tgTL0wEVd@&E#gy9xd!3pR*DRVCDwR{8l?P9_=bb2|Xw#sK=`Jy~>J#{Xm$(+L_ zk%$l;U{3AOMvL;b)I(Xv9L%^=P#roCxb%4Dm}1~D!qp?5jc&rk^QPJdCtWDVVFpR# zM6=fuk |%rcg{v1Ny>7Fwe$V`$ap@; zS&uftZz~U95gQ;PlRamNTzpn8_`CmZ$^XeU{y(}QJyU&9C!l)b^O2|~$TxLjsJ3ks z4_pGE0#HNz5al@B7gdl6Vy?pyjB5A~&~VTUwZlDH0^|r*8))oXP{B@sbYs^!c(Ot_ z`sFnzU^dhTmjbi_Y{*yVDJf`;*KZB_Xp78f= zWDyNOLO@Qgp7{yw)D`IVydjK`&b|X6rwY M#b62SfhR-=W8^!2MPveW$GpI~3X>a>{=kn!eW2Q%Q&pLK z{U$u_Q*)_>0`w2F^9sQE^f6|$Ah)m&Ud)_ PD+h_QYO(5` zZ&Q(Cvd$*kXf&T5g z1ut`>cZQhl7W9`|)7g(dOMozs8;nfavY)PxUW8xp #WF>MMz7A;Wvrk%yPdfkUeL6l0o$aVx3b2sy#@wd*00@>GLzqs%nzR`|&Xb-( zASL-`eH{~0X=0Hm$G$gkCBMACcLW0o>@KZ@tPq_eq>0({faH+7c7DCa^3#la)$=LJ zG&1?rLx?Q{*{zozUk#!0^8ot~9s{t2L`wT^0m>0{G&CY6z-}JF5a8#-hzaKo4FE$L zg9XpR4(NYht+vA&1}|<)1)yu347ct=Z&=9ged#1~DC|X^SiH44sE_NlFj0(2bA~by zT^}7V>!iTUPOSA_>4&JeK=j*o)Secw5= >&3 8$-*L|gezTO~fpBM#?Y2Q91!E3{6w`8I z-`}uV00cC9;HO}fbZ7;Az@;KB5_wx%F-`0DEj%KAU-}dQSB3{{yc#lhK7vRWiR0pZ zDc-W<6x6rHjU#TiSn-hJ!Q#iv?I0; +iH ZEbDG?*FXyhdQJ ziUvmlO19MDw_k^Tg*JkaQ*yYQ-WcJkYk8Js^3>Y%? ipzK7k77-~n LOxhA>=6Q4>J`M z#7e-=$>Jz}FMtlkWq!;#6)9fcOUU5hvz<|C{^Eu&1D0_SkPP!^pdU(O(Z_TO(?11K z?`)`(bEdyn5C&0$E*34-8*f&SQOB=A%) COijPH9zbXK0 zFr3qe^X6DVoK3MOA`td6q@0Jc!?YHgoPt?+C?*TQq``97neK3Czz5;>z624_$}3bm z>}*h8A;Ac%19tsx<(H0PJ(zj`jt?!?Hgg4MfYuP0L&~8W>(M=m)Cfr#{Dj5x6Ce1$ z6>BUsXwG^o&PZD4|6eTNc~bZ(;4^`lFnGyUuT2-fevP2bYwe*CvG2t>uhEM^(*T(p zFK4`mqthmZ`yGO3k8luQ)StV+-QWgQ(ek()ED_cmNpUj#_G*EhAE&l3lEHibOX>YQ zKSM7=!oenbg;9W1{bDim r65{$$9-z$cm<8?Cv4A=gX)eCYQb{ } 29@Fn zuRUk4gA`th+Nbc$a6bgDIqCwYR1VVhbT06*UVhn6l=K!}JE>jrPG2m8i2}F5sjY%% zxCIPN{P|$mE4iaXgm&fmWH3_;hXov`dex9eGr(yg12smOFt?`xPMN#MM&M%n+-<~; zZB^bc$eG!-i0Xhf^(+TS6dL@|5}ckr^=JitGSGBgwm*p__8?9+w%&nbAoX0ddd$vX zJK%_)y+8YOP|G=HtzLuhxr2KsW8N(gY`dL&O*%^{Gmxhf06sQ&ewvU|=TaWnUMxEo zxE~4eA`L1pvamBd6U6$DE