From fe7c1046eb8e8115c84d6b3ae701b2bcc7d5a2e5 Mon Sep 17 00:00:00 2001 From: "kshitij.sobti" Date: Thu, 16 Jul 2026 22:59:18 +0530 Subject: [PATCH] feat: Add course completion slot for Progress Tab Introduces `ProgressTabCourseCompletionSlot` to allow customization of the course completion chart in the Progress Tab. Updates related components to use this new slot. --- src/course-home/progress-tab/ProgressTab.jsx | 18 ++++---- .../ProgressTabCourseCompletionSlot/README.md | 42 ++++++++++++++++++ .../images/progress_tab_course_completion.png | Bin 0 -> 25051 bytes ...progress_tab_course_completion_wrapped.png | Bin 0 -> 27863 bytes .../ProgressTabCourseCompletionSlot/index.tsx | 16 +++++++ src/plugin-slots/README.md | 1 + 6 files changed, 67 insertions(+), 10 deletions(-) create mode 100644 src/plugin-slots/ProgressTabCourseCompletionSlot/README.md create mode 100644 src/plugin-slots/ProgressTabCourseCompletionSlot/images/progress_tab_course_completion.png create mode 100644 src/plugin-slots/ProgressTabCourseCompletionSlot/images/progress_tab_course_completion_wrapped.png create mode 100644 src/plugin-slots/ProgressTabCourseCompletionSlot/index.tsx diff --git a/src/course-home/progress-tab/ProgressTab.jsx b/src/course-home/progress-tab/ProgressTab.jsx index 62039d0f26..e182ec5e03 100644 --- a/src/course-home/progress-tab/ProgressTab.jsx +++ b/src/course-home/progress-tab/ProgressTab.jsx @@ -2,22 +2,20 @@ import React, { useMemo } from 'react'; import { useWindowSize } from '@openedx/paragon'; import { useParams } from 'react-router-dom'; -import ProgressTabCertificateStatusSidePanelSlot from '../../plugin-slots/ProgressTabCertificateStatusSidePanelSlot'; - -import CourseCompletion from './course-completion/CourseCompletion'; +import ProgressTabCertificateStatusMainBodySlot from '@src/plugin-slots/ProgressTabCertificateStatusMainBodySlot'; +import ProgressTabCertificateStatusSidePanelSlot from '@src/plugin-slots/ProgressTabCertificateStatusSidePanelSlot'; +import ProgressTabCourseCompletionSlot from '@src/plugin-slots/ProgressTabCourseCompletionSlot'; +import ProgressTabCourseGradeSlot from '@src/plugin-slots/ProgressTabCourseGradeSlot'; +import ProgressTabGradeBreakdownSlot from '@src/plugin-slots/ProgressTabGradeBreakdownSlot'; +import ProgressTabRelatedLinksSlot from '@src/plugin-slots/ProgressTabRelatedLinksSlot'; import ProgressHeader from './ProgressHeader'; - -import ProgressTabCertificateStatusMainBodySlot from '../../plugin-slots/ProgressTabCertificateStatusMainBodySlot'; -import ProgressTabCourseGradeSlot from '../../plugin-slots/ProgressTabCourseGradeSlot'; -import ProgressTabGradeBreakdownSlot from '../../plugin-slots/ProgressTabGradeBreakdownSlot'; -import ProgressTabRelatedLinksSlot from '../../plugin-slots/ProgressTabRelatedLinksSlot'; import { useGetExamsData, useProgressData } from './hooks'; import { useCourseHomeMeta, useProgressTabData } from '../data/apiHooks'; import { TabWithTimer } from '../../tab-page'; const ProgressTabContent = () => { const { courseId } = useParams(); - const { disableProgressGraph, sectionScores } = useProgressData(); + const { sectionScores, disableProgressGraph } = useProgressData(); const sequenceIds = useMemo(() => ( sectionScores.flatMap((section) => (section.subsections)).map((subsection) => subsection.blockKey) @@ -39,7 +37,7 @@ const ProgressTabContent = () => {
{/* Main body */}
- {!disableProgressGraph && } + diff --git a/src/plugin-slots/ProgressTabCourseCompletionSlot/README.md b/src/plugin-slots/ProgressTabCourseCompletionSlot/README.md new file mode 100644 index 0000000000..a34685c9d2 --- /dev/null +++ b/src/plugin-slots/ProgressTabCourseCompletionSlot/README.md @@ -0,0 +1,42 @@ +# Progress Tab Course Completion Slot + +### Slot ID: `org.openedx.frontend.learning.progress_tab_course_completion.v1` + +### Props: +* `enableProgressGraph` — Boolean flag that indicated whether the progress graph is enabled for the coruse. + +## Description + +This slot is used to replace or modify the Course Completion chart view in the Progress Tab. + +## Example + +The following `env.config.jsx` will render a dashed border around the course completion chart component. + +![Progress Page Course Completion Chart](./images/progress_tab_course_completion.png) +![Wrapper Around Course Completion Chart](./images/progress_tab_course_completion_wrapped.png) + +```jsx +import { PLUGIN_OPERATIONS } from '@openedx/frontend-plugin-framework'; + +const config = { + pluginSlots: { + 'org.openedx.frontend.learning.progress_tab_course_completion.v1': { + keepDefault: true, + plugins: [ + { + op: PLUGIN_OPERATIONS.Wrap, + widgetId: 'default_contents', + wrapper: ({ component }) => ( +
+ {component} +
+ ), + }, + ], + }, + }, +} + +export default config; +``` diff --git a/src/plugin-slots/ProgressTabCourseCompletionSlot/images/progress_tab_course_completion.png b/src/plugin-slots/ProgressTabCourseCompletionSlot/images/progress_tab_course_completion.png new file mode 100644 index 0000000000000000000000000000000000000000..edd063983c7d7d8c7664c5ac2d1fccf5039f2f53 GIT binary patch literal 25051 zcmZU)1yo#36E;W)?(P!YU4px7umJ`Q?(R--ch?|+0E4@`OVHpFEV#SvkoWs{_v~`! zTxR-q->$BDO1i3V#1|!LWCQ{P2nYydSs4jc2nZMf2#61gaFE~@esYyY2#Bu*vJ#@| z9?Qq8(6uXkcmdO={^hveaCE%rIVfEpnX@_kTL!o6DZB8Mk-%dh!U6x!^%L*|_{V?O z01IgF_y4XC1=#PM3g%f{-~Ts{Di&zG^}Z7U;a}nZwa((kw7je#Rn=+opzxmfy;+8I zH(Q>rVS(jnenYC9#aY9vBzXq-bn^3kg8aL6;8Q)+;h2l7Z~fs}{em1F+u%c%uxq(>!F+3Fak3}*z&iy2isOGcoz>_} zU-$l4%y0Z`m{eQDh6CT|4qazSDr>lPXO05YxfUnyU3>($LU6nC<*3SaY1!QD{T{2> z>-nz{Tg;^PrYhUl0{j;ymhpu=~GhiqC_GR~e?!i0DffjzFHA1{k8&H0;U^T)U+7x)` zvN*MPJ!PhEr_UMs#mNp7I}LjtVR6$6p6{18ohNtMw%_Nm>7-0g`Kv*>k;1zV;Q$sA z@Xdx)ywsJd;$;Wo1+vgD*2Do8H;M0Kfbwj)abZgVxi{HyLs-VvwqP7_fU(ux+K89x zzM<&v@s)#=KGali1wx|S9K6tgb??ZF`|HmTcGu{4$wp_s|G`gLZREj+Z!-A`!Cc5= z#PffR66IWs`!Col5C(r5dmiY4pzSxvf4tqn0saJrl!C=#aBfd(Q zf5TQSTvH;*qUAsQ>q52PXXoB#WsLHqN9XwrFH#SNPJV+MAIYm?GuxF$(*n%D*$ss^ zF`uQL{z)mIWYAB9!@zIE)91e@-hL!GhOO5@lVF&Rqyd9UhE1r!!PqJCqsQ)aSEwERUVaaRN;iUGoaFy4BB!dSL1OX99k4PMF+F6Gm<~=~`w| zgE0q@^N;H8gX*NFo^ssi<`r>w3hN)&NIPckrZb9NG`?fHn&4DWam_Cg95*< zQwm(0CI8F5eNr)Ak@C*jq}_7)cW(TGZ$Ynfp!|hsZ=Qxo1M!y?nA7RgWOPO5L_>7h zKc!#j7REL-xt843{sk`IGB<2$ec^ zC^{oTJVpTCqW9cBnvV!NH2;t*-x4^K6Z|XuReM~beBwz7>RvRaO&O!->E*Y_)0TV} z1!fkQ0U|uS$J{eup8xB(<+AQO*7nh(37ypTyh916>u^58x_qQ9#hnyk}X@pyvB zpcOZr-y`fN;LD?N{GA3gei6oQnMQ@#6v2rUz=};B!1Q1ipGO_X2>)fk3X#|_&H9F9OXVgy1REMx7|im#T(tM zATM|B$6pvfw4U@FnxpTVLN;F&=lQld!ds8i2s0AejK72_o2;3Cr?-t@dD;cpUy*Sg z43Ij#CE@FP)kvnW);^afxlkn>V@frKo>eX-4tSxC7 zXs$#7{RUKo--REudEI~Noz+bF0}`5I+3fuMWBdEYbJ7@%w~0(NcBY}79=jKNBC-*g^(%T-v=;UE))O?dN3>M{@2f3ke6!YPjw=jVp$X8)`?3&HRNac%hex5iW6 z%&(qWIM+YSJD7;i(@FDIoK5fMOD;+$XPs7%dvlW z+>QlpoC=2G>3HQBp5YE@#y&t>=cU>BT#kn@Fn|_pmK$tN8ihCRR5rsJfHxc;9HdsZ z&(bDU*fx!TE`$lWxnH0E3i=R?ep@01{kq3)BEjt*u0W?#brdnX zA453>K>jHjwuQO>cG9El%WtTRfss`As%^34TXZ(>@4CW2(TX&cQr~)ZQ}9<)x9F@% zCKbhZD1;fbs(BkJQ$E3uBJd;|V#6G0v~6o%uv)BfvhZ@i>U1fFly48aqi3WV`Mz2# z$q1yG+1W}G$3iAS!8O`QRo0^UAxT25wh4>|J_6W1X1%mcKHFK6>T2Nkjz2gHDnF=oRfS$f>ZJDAs?>brK zhi$`827nk-v7_)Q+lih}DFk=JojOlK+pERcak86n&$^Ge?v~h(qkARwVps)qdd$H| zg5E-dD!>c-h{_=9h$%^roC4a&0$Mq!_|#0V25mxH##R+9s^wx0DJg1gu?2wh?H|{{ z54TOnw;hdkVr)SB7AUxulB0x<(^`#v1Q*lu}9M*F$tE#C+7tpFOfoL0yZP^{Q)FlvJc*HhbD0}tqv%RFSf-l#yDW(-5 zN=d(|Jr}3YZY3Ai%gHJh?qO|_#dYe8ntnX9Y?dMp(=t%8h`{2GgtA@k%)1mUK6I(= zUz)}=SA=RV9KwH~u+9&rYwud>=N!Fa;U;rap!RMxmZ%Di6s9@@5{ zhB(fL^O9qN&W7=mUmhjT?<@9&KpuAtA-fbh@YYbTtUPh?#x_{)N@7R(HO}YK>tb3l zS^IRQLVJX4(p1#ziI~f`3#eQjC{FdbLRAveYzAQiA>-I$|KT$xgf)EC0WpKxBO#qm<%qgtaYMd>@NhmatuQlm->Ay zUlJnmhpnKrrt#w$0aF9zjatU4fB34!4MXe!IMT*30rFx6p1yd$66w@Mrc$VUHYbc0 zs7^f_s<9I&uf`k%J!`B!VZ(gY{x~##i}ZWY_UYUFI=R>6m>R#s4&|2csXg7J6pW{e z^(w=n%g%kq=gx967Cx6=0Wc>XM?*clKAC~nO*U!5%aPjsgp27qAv2QvhNX4k-mP{I z!*R)iwk}xZ^rl9dnq)fcVXI*G-;$>*L~Ju@N@?jqq0xEPw(JJ4wUO}nWp+A!uj(xg z=;{`WYloqpEvhq-Gu!$~dC=5j%VA^1#9XG|1!B<*_jXV7C6F-+vX+iDFCM3@| zC#J66XZw7oGxXOf6V{flY}EQNImmc|V~3$*Ne%0x^JnzMDM%y9c8GoVh+S$Z3Y~@T z>KU1sd;2zev|N9|o^BxlHk~&_d>Xk3=3+tT$oOrdI|=q0j2Zd$``tCqX#n-YJ4h)? z_x9_g`8>?W3Zee9FTrEhfm1r|X0S*5TspU0kd_WOpjDgIO^nxdQIY$U^po?d%&K}m zf3}4~aip|l0HUT1JESU>X>@vF{hu{fNGEuZoqzMw$4MWTWWe_-8-4k5^dy{N;Qh1w zAk`{{{1FStq?jqNI#3L-C-_cp0c{38zGhHVL{v*M8fjW`dVFHG!V9%nWHkpq{y|0t z{_{W_veKqm66!-Fic2Af@K)G!wrFK&%bx?q4Bt8@$-F+YI(Qa z6G{%;TN$rB!~IH-TMpx4MawwZ?ub|d;GSLEHZlowtym+RA**CYF4TRxjPt~D32nkPn*IrF%Kwb+HPj~> zIW9_&#eE~Kklowfm1T&PuJ^hn<(mD6l!6^x2`ucQU*GSW7k7#%A&VB-Gkt=Q>2Y^w zRz*Y+6t-_zRe}pj>;HV>2)ifHl$fA!T*%4?hY&L<5}EaovBhCS8tQmjfE zWX(BQhJSt^%T42=h7DSzijsypacF2;Vz|PILpCA;+R(^Tu)jizB(h*eu9-w-i3Un; z?$9D;sbb6lGg!axhjva^)h~9)V(jwS{1-zyBNO8{|5LH((({zC89DuLPvdVIQGAv+ z8W}%oP1@S(jg~32fonHTWaU$}4J!(0opdX!hYIJ0*Z-qqPD|2L3r+GzxIH^MQqz#4 zl=nGs&I3%NWk}v1EFbHn7Lyx5O#LNvo@%qzityT#%B|eDPig%{SdV=f&S{rGAX(6k zy_)K*LZd|y_U=kWu3)HwV;X?0qCyH7Li%s5b6QmW1Cmwc1tP5x^vzp;8#I&i;!y01 z!4_xpgw#qqYg|lYnE;jt7>iu?dyi3@w1N*qMSvO(9MUAsCrDW4hQ|X);C_N*CJpO_ zEIE;$G6Jq+*7V!}fy50}D&n9dV|gW6SI)Q@G*7NZB6#2V0wrL_E9k{a<N`|56wR6zw1^1MIu|2?G}tR{d9iE(1pu5mvGZs64AJW63}4Am))IP)(RvE zWGb>--a2i7ehP%0j-ZYaIPhCXJO5oZ7P*uL5({`)y=`G?Gtu!5K%o()E!yvlgCpf- zg7erkzstwf=i|GDCZc7F-pFxi@p63k-Wn?v8jzjGp^o9^RZjf2 zdk{EH4*ExzN@+8eX)8T9H51nW)+dkbW{Yy_L2F}jFfT17SAPkUzOF8tJ5>X9eNawY zG~!e`b!N9qCbbLEWBbE8vHN%JJf{MUsUae%w23p_i4&$~4yW#XO;QAF7roE#&(8cd z2soISa;i4lE}1H-a^ETn;29{H_y%Qtbt-uwhpma9Vo-mVNv72=w;tt3C-J%7eru~o z*dE2$!gjOd^7-RaKJ{XcbrtiCx^(o=^F?g~FC50Q_@9DZZj6urrH9H*O|?Rx6#%+m z_u}&3!oAz9mSoxj!Am9CF>S4QNjw|t$GNau_{V- zaRn2HfJ#5j6u>{bY;kc@P4n?b@sG@M2oeq;1`K9F0c{)D9vE%QF{iKkz3tbqB#0jS znF?Mm2uka;27-QuUsjI^sK5-5$ylveM<0t<8pZO3N`3e-KK`bBI*@+P2ZD{CNq3() zBt`Y#yV>a)a}{)Y9w$9}V0GyB7k&)6V`}nxiV~Ln*^lILv-}}8mq-4Yz|vYjKZZj0 zTd>3t#%IB+wM@k}$e4N1)EnC3)@S#2?^_=QEdWzuF}Ahn&!62kJgb;_WA5ExM7f*d zf>s%){B>*mylH0;B7Ywnx^6Q`)7aAHkj5X-Adulf&tPs3+5aJ=UJR-6^7OWk{N~}U3(eqS4yL!mD!R`2?CVeT4CbS_!@eOUiVvoSSQJ_; z`#CHxHm*lpHkr6%)Ws<_O&#YHXRJdg=RB7>wfxGtEryW!e)v~rt`tI1-Y8F_`jIhd z6u++4e@CufS$$=ILYk#K`jxOHPuw~;=Yk2L+;4lYG~g}#d+T=CJ7puaY<8qou)=gB zfn(=W?V>OZ{b=Ut%`!@~vJCrw4&KutKyQa19kPd=gMC~B9yJ#Y+0g<2;DEYU1uF$0 zqD_tu+Fp+b04|)W)Kle+-=Ys#H{;{>RwOLqKxTsqI@vEDjbP(-nWsf+wb2#&%XUub zB>I{&bXC89z0*~^?-Zv&3U;0U#i^PMHTV<#S2A`>(9Q4d8oyI-^Vy|1M6d zzT)~(TkC1t;LniuwZ(KGsWsm}DZOpAe>ZLPj~SW5G5%mrn3+H^C#Wr0!gmc%bO=7X z$r|-Tx{|S_w@)oSQ`A{L`FUZ?h8ZLg3w#J$EsBH3{BM27xkkp!l3qfFz_LoLBsAO$ z25jg7u<QTCZpWM< zi|O8_YrjR@I%}t@T$-7;8`fgN^#~cAJNd)TgYkjX1nPTLX0&l)m0Y#DM2l6edWOwW z(`m}gD1A%H3!Fi+6~_G(J#b=I5dLg5k&M=Owq5Gg5?~074Z`%MWvG3Urii><^e(V z*}r_5HBFO`$j+m0qCR0DM3jQH{%qGUCC{DeDdm){*;z)wxcWn7h-{oBlOnDNd&NnW z;$>S=0{`a$A|PwiK{X3Wre+zFG&zISIip2aN>MxAw;p}VO#ZhG7h0@Fl#gWtc-uI- z51Zt!k#$=;Lr7e#v8b7fC7^G%LCUPt#^gRDH`nd8btMN-X5hy-+rwswa`>O66(cT? zL0K6&AA?nAXP=?q-Jz%AU80qfD4dbQ!aZX%83m_DYLTgRA~96@t-r`d^6}F$9nQte zrp2e*5Pd=hX{T-3`)CHCk=PSK7UBi#)i{Rg(m?i#x}{qbpfb zg-0pxz<}ewo5{F_3!$Rw?=>Dc)M1njMqJBkyOHD@%#yR{I#?q=Cb9N05}ya&N^(C- z7SghId2KUevd?k<$>w1n&|+l2|HAQClD#EeaI%rYiOHuN2YQD7$S&imYLs(#cT4ou zEBTThIRVo zW%T1zWo6@z{TdxOY1-+|;K#kEjXRWRng*w>=8$VL^UyUfKJ2+)8PhO|fbSak=|ve| z#_=CL@)-DJS~TpVo3A}~U)guu$>M24KqQ-HY%Sj0Z#1)#hNH6fk(nZ1zDlEk0_L0e zEE=1BE4EUgLIfmab*)?Nq;T_r0MFVX&^=Lvq-Oere>0I;PLIj{BcM-IxV&`wq+T)x zdIj`{f-Awd|3A_KMx?cOqeZ)Lwcs8*^Z}SliVVg835NH)cK(Vb1Hjnm*Ho#_4POqc zICuaA#21a?NH&1iTJ&jnMH&4L(!bipN(G;7(r?^(-CH+?ye(5Q`+r?2&wVvaoiz>B zYJkaWWouSumor0>c+D%e6e2q~G5bz^sKe*OhW^5eA9$Uy-;XD}m`=PPrs)O2^oVxl zwSU>+_Fhqc-63}7`5WdUQZEOt=j3NRPBzyvikZHd zj&A-^OFxG8j~G08u$*^k%cTVOrzJym8WK-?qoO#V{uOoxYvp+Gco36K|A>Ffq)vD* zxUsrLZn1ui`|Gw$=G~u0w?!Ty&-t$`!D`2M0_Y{#8thhSk!AhY&dC0cJ>lp)h(l|Dz34L!)@b zY#uIp$E@5WrLL^(Us0u-=kHzXX^^q{X=d~o*MGC4w3%hzWLg61&TpUcgf5SR$Lu|K zjv3B`&N81W+m1$X4Lm{9$I(xh&sjOC^X~GJP{dPceBgbW3QQoHh z?ksiL>#@mS*KCF9mXCR`f)!Rj_k6HZ+Mv3Z`svksUhlQ``SxwYa4P3k_+$Y#mt~B8 zJWvl+z<4H(P?+SBl?Wvp4QkrzD_C}T*WQ-5V>=xahs*qV&-} zzd3x{gN&*urZShB^t{`|%`a^I-TDNTl^-A9^z84dxMzFpoNZ)Kk%#ud_qL+G0@7nmXZhyn-68+@iI;<#EoM z%;`MZxA>po)^fVM(CKET9c56}DZiov`8mIj1P@K+^_KHIw2ggb#e;zfB9pCxyo;i5 zLp{T!oAv)w-J>Se82AJiC{kKhYJtA~y;G?(PTO;+0$QB%1yRX&HbJUI3WNi^rTSf(9NpQp+bd#ZRR#)kq;!s=YIcVa2l= z$0aKsE0J=$5L*$JExqispk5LoWyLAxXke{)dTdGSmvmSZRFvNrMgyx902L9=+d|P7 zGPLk|jIAu33Shw`$?MAyYQEV0K;`47;Hj8UxN}3Ll~17X`m)NOFnaU0CL7NMkUtCT zUvzwXC0-8VsdbA5yvb%FWf=Axc0_<%=CwUYu|HJO>U$}6EO@=Xwo5U^u1W7${)U2t zt}g>6&_N?f9qco6WFZ*c3_*xP6c9YWyC)P#}_668j1w81aJ#AxQvbVFP6t$U!7R-qFlNFRSW%81MW_0DuKR zO*q-VvDxfE4$54sgoi?~xJlFfXqnYq9xi-iZSX=I#sUD$(~cII;o!9nUJUsCQ$VunZa1ZfbhI%`8eB;`2n`7)HqQXeV=)>q$^IFw8_sH zqdW#7V}T?jGZ%toOmteTmJljQ6~sS-7K(>_?RUQ{jUkQ26ABU&Jg=W48cM`BF2t*e z*dWofBtfsX0Ih9!Fo(R_b5m{KA( zR}dW&g-ncj#FCEjZX}AOm)*H$Z>n=Eku8^xxtB^RoW5Bf{lGi)q2uXXh*AhLGt|vY z`!C&IV@(bERYXXe*yDx#evgCJ8sVKC9jEj|3{6`jIkA681m0q5$I7(RS&hM-;?x4( zVT@-|>G_|4!ve}&^zKbqB?7wxJNJu6>{P_13&@b<2e*F7sm4d|IFfYJ%BW5UreAE6 zo&7i3&yr)i&S@+nrTig@E1vv)vB9wSUxi>}NoSh40&%{(TTD0l@*fcrctq@D?=f(# zgCntL+9gQf*yvawlgJW`0s*tih@_3;i#1jnbyA4YRdhs%>P2n0P!cXxAxt_KFRTYr z1~duJ>~_{!4AJ zhAVES$lX)##dk*=uzUFLa1q{j+0(|z*pZ%$fo;5HBjB}YH8TZ2m5fVu2NEsV$?Krnwag(vxpn7?ufP`YRI=<;#%co ziUFM9O{MpOD(k%5QB`bVO;Kvgv|E-2V8l{*_K(Ki9>4v^Gi~YDnY>r(U^N;L1Z6ZT+mRc5G8MIure9WVZgMo4QvJ~nv`X+L-dh8&*nWLh)QOB zUiVUiHu-kFa?&yjvtomA;Z-Vxf3T=`yV18hd$d@n#D`NFx@bzj>7NIc^}QijfXwP% zRKR|CzmBG|+9Ri4PJ;_A69%h?)d@pvSbp7MMX~Fp$)D2yJ9gR^|DEK=qwy=24%Q-E zZil?4bx-~-w71=|O9=tplyOObeyz|WLq${B^l!3$v+0yHxu({`P-~vq1XA8tvPkxr zGakdMm9x%|$0MBNMHVrNzoD^xptlI1I}_{KBAA^NP1U(>zPCZwbAO}M-ScN*Ga&d< zsJmXqejTW{wjgZS4uE@24CXbHh!W78#G4nEBd1fq41)Z;cLjGUhBhn;>(N@n`aSX9 z_xfUJn*yYc3b;mXfn51Jh(lI2)sV}*AXT^dsd2-4{~!jsk`g&DBbQIuH|Epqu+UXF zKs5Zg`i@!lSl04aZHF@53_fl)Xq=kgM&(sPjP``}FVB5?-;7$SfjRa|p3(^`OX;rP zOqpJyqqr5-MwP^}2ReqqGy>Tnb*){0RU z)y+Rj2wS8nIgB*RmSYhL9hmc#hymxHx+?vKXz*_Ef4`EjEgXD7>D~PP>P0I%Ys_@z zB_mECO#lg;sKFZVVyuys1qz;9SS(LpD@WPtrglB`&=iW0kQ|k&u}oC?UM{6wmGgWY zRL0eJwcbJee)B9}HMQgv{PK2*ws2U-Swx0hlv4ZvXtOi_&1ouh_vb3rpk-d6MXqtp zN-vAWYQyJA(VD$NG^g>r=I!|HQ}xE%rtj19LgB-0TZd^kwM@LB38SjA;9YdKv7Ezl zB)7rin4|dEpH=RiO=DDLYq^XMlYwj*3Q4N521yz+x~5R5JeQl#oaFI3_@8K;v{09( z8(2--65J~?)%hC#)PCP%?-|z3X70RHRlN6?Wk56{yh-rvF~uFJ56R`=SJ2Dv*Ewxx zYRU>qyKebNtA=vCBer1mKv6M?snWb>cC`Btmgk^;E$e$NtFkE3>B>zO5=!%4Jig!`KQ7R4hOhwqNx-(reoP%=v;jkr35UskD=@ zG%X8kkY{fhpxA-+jc<}@-gw&drQ7c=M7c)6jF;8fa1A6ga$-Exs#Rh@u3P_~e*B!Wwu22_(u)gho?|~{ts{z% zVDGxgCZajYJX_! zY=Z{TBl`HJa&6)LVtFq9CS3BL)MfcdSMNq6g|n+3A4g3l+2=V!af^gf=u>tFOlT}} zP5Ga_+=+Y>nY^{vLj-E-$_%=we`QYo<5KT#11*z3Vx+y1UJ!-X8M8x3_po)-M>eKu zM(mjp5K^-mM&=uGQrHbk>IdPq#Ak;1k$#6+$tN>D{ao4iS`XT5H|P)jL(AKbw~Y;6>*ZpZZJ`g-4v)PBt8}mlO^gHLF@yu z!Y@Tmz>q3@{vVuU2wb(g;ikft8uprN*K}RNH4i(2;&6w?5|i3ioRy z&yO{@f#6-*k<#5VoxhMosglcgy2}|&d&{~K>c1_>MJJQ9DZcs`ouM%t8=8Dkr%2P` zg5(f-9Z7qo0KkxcrCMZdks%5vzYK|$`@#2cYTY6SV=rZAJs`izptJDxt?K zM#0vS}(fbAlwK>P?f%X$pw1>@@|2Eoj#|SOI_T= zNJ5rR1i9J?PW=7O%tHP|Mc7D0yv6bE;|)N$C%1y4 zO4$&lKK%lVbzqx9U*eG@1G3rB;RLbVABl&a}Y zT=Di{%>qlY$Ud9)_~V$vFg$KD64nCU%i|&8S^M*{&P5O3$n$2O@~FJu;}p&q-rMi4 z8?X-fJx&X2IYh0+Ep1oN`oC>xPO$Kve6vii2~g*wWltoSb120Z`2-H!HiI<0w^H=kOnX1Q_>@=3T2cvos_DO!J!HJfC#S z>udZu$7(D}k`jqwPm<|%{nCLhLdA&|b8z^3ior`m2Ekt$Z8M&;2BW`{#x8<2$-51T zK9QmVt>kwLjB0I@j9EmNp-HwhAUU8S zv7Fv=C4yYY?Ca|dH{-rMp4CkffX$~T0v4?2Z^e%%Ska@=);@8iDW1tFY26M9TG6a8 zq5j$UMf35YoDyI2u1AKPZNiSL-(;yiHk_%Lml*h;yYEk3p$b0~6p44XH1|gYKG-&` zAMs?QObN4e);uX>-R=tKnS+K`4Pi6gzEK776B^a5VE=QkR(}!!rbZrA_bOW-rX_TW z0@@a0Qvm9#A6;ur%XftY0D;I3D#4vr%D*75NgRjzRLFayu9GMffID!%fh~l7Xh9#R z0&?8!yk*M6S5k%^V?^c-97=~HdL4+p8Qvg(bfg9u0kD`6qto7C)rvSJznFwuBytn+ zCTTxIq5+XZV1CkjO-4DyXlwy1S6C?yxi!zc~ z!FVo!#HxLsui%N%{4Rh#Bh7JBN)|XRh8`f>&N_pEV!Dl)ex8iv4r1pz99Nnt`$ICU z%iN2Y+FJiVuQ-;&-P*Crc1Q#IQwoJqj#>X%ru_C5^&rL=lOMW}eH*w=!RCPXkf3dr z$0AdHNheM)vzqWjAyRhF?n6@0TPt(^iEs+)cFYAmAB#>U|$*S?IS1&RgXkuSpF``qUF~uk_re zYz5?#ab(wjOB)ThL9fgesE0MGLh?nNJ4@Jiz;w>^qe5#d99`wDK%~gyifj$(2%2^& z=b2(a$+f2h9g69{%gHU;j6Vk|Gqp~cF*kGH=1q+txoac~<%Q^?vR6Kp?3`S`O+@9S zuBuKC&0BUM+)^(QFo#m0SV~<{khO1~eha6-2V|ZsW&&%{F%4++mx_LD5AXj=I_F>T zs{#^yYT&#-*5I}o5Rk75)$te2^E?`G-u=z?>!CFVrvNDNINkJjMWIB2Da!aW@q4k? z2Wiw3u>pX+d!o#R^}YN=b-umpvBM&boqbZfAd1gjSFb~w%O+c_04?Zunk;1cxbqU?4Q!Vt%8$4X5nRiH_Z+~S*1~R{uuypxX^AS$Yo*M(jCd6X&-5CU(7aq|Gwn$MLlj&Zx_k zc1Z-BesVzih*pW9B1OrVwZeY&71@biMShZc${*-j*q}uVr%P3lUqDPBS;;kEH-+;3)dDCp7(jV!p(kyD|V*;W&}xYyGEZKi-+ zAT-4kE>s_Rh8`wXhUdZ2r$~d5(&t;f)$yA}Y*V6wlK;y$mC5GYJDGSdp61Pxc3N#X z7)uTRQLu6So|N=EGytHQQ_pug&Tv>XkNWlsxvMeaQO2YV?{lE}YM0UMmPauanFlr1 z`cN6h(z1u*zu|GzK~|yhka1m8N%9`TTJp14$>AL)#hFFs z4>O!r?78ee;)HL44G7H*ge^^tyA4%Dfx&0_QyTDJIjJo}eno7)BrLJ8k~g%-$?AK^ zQq6>Q>O0T6p77P>)jKhr>`$Ja(K*t?fm9D?z*}5R9;P#c{x5u913?z@DJG+QCEv$i#+a1z>bXrzl{I^NdNLxFb$oN|;8A$u=W>y?$w{nr1}x^ z`@QqqJZb=WBP@NFYhw6cKMQ^4oCt=|7^K%-!)UGk5e94XT28|{#R?@WQOYM-Z;?1H)C%MIO&S=q?#89al zncAs`5~^ZN(b&EbLfX=XNJ18A1L9Tk!-o+0bFGE8P>$MHpCORHE?HQ9)vB0yu&%V z_dn5*ldGyqS*B09{0D`K6}Ir8;WeY9SplI68wK>~1;IKNPsc~@-dOmGxCcbWqA&Ws z+YN&SlprSq`l`m^1I%<*!M2!hz3$f3Rv$UOeX{09&x4$-lg1Z6GwHRu-HriwlmM5lzuiUsP>$7=K_%K(v%ew``=l8Wm9Z|gblxy{y%dWkx97$dWap2mcB}}G@BY}P= zHt_c+AoUH0$ILuKqJh8#?Es7L8?Sj6^#-7ta>7UOTa5)1=MTqmh=BnHL^hMPiVFgB zrL%DGC#%Ir3)1W3dTQiJPs+!68(f}=TEp-B?3|oZwVZSlsyw|C~x~YiI2Ny zJ0OZ!tl@CHvR5`l@GS4o6}7dk>@+_FMZK5NQyopix6PTg5!I(Nb13T-`B8O9e=asR zNr*5B%*6@Zie_vE23@7v%RZFF=C2Isr1*9bJ%r;$W z*p=I3SFK5^s?By@uid^-vq!Lacp3|UCHDTjPuAf#%}XA`hsOif3l=x4``Erh;*5MK z={Cf=U45+Z))Up7woJP1~bp{umwq>o|$ zdtmouOc>9flRBdq5M7yA;ksq({P+N&--SyhXPiOT^sSJx0JrK*)g0&b55uKSFz z?23JR{y>r@`TxC6ZGwCX>n6?6wUMk)pqeDqiY)2(a?{Z3e%eA=-!jHsLgcf3D_FDW zzoRhvd&z%X*SFkgd;M|OiiHU*Xr9Ck&XZU`CG7vr$!cDPQijbtd1~~d7=I?|8yD~z^Rv$L+ItPY?XbZWUFr>*M{++IZfH3@!_972WGpVgnX4jO~S$PT8 z(()UxE-&sTdTFb@WH}%%^F}f$_)sm?jSMUAPdat}TjDgh)z+(g+dO!%@)rJZd^sK= z^7rl-#-++cA^I#VM5aOljg$9(CMdUY6-1Ljo|bz_!uj9p?io3jc-d#6e=nMkg|cQi zksbff4G9J`5R&-+aws!NZ zSK4OZ{l>&$=KtIWh#hxhiHAl>!A!$#ptJ1rY}MIWJIDU+#4u84ZfwS%`@H^YGE^YX;;WZlHQR$zpBr8 zaQfK>15`#?OJR`ho9F(jDMHz;`zfZ&#UWK)_ldXrH<;T|okmvsA6YKvmkkW?+(PX1 zPCGkn4-8nl8ZO^;-VE0i`NZ(=_G7jXTiwPU%M`6jSkhxU)2cLGA6irBRHCw^S6ki9 zXJeU6j{s(FbKs(E+jDVwT9%7V#`iC7#~K8``P?3Zw=agKa-%c2zl*(;Szej{V1s7B zDfv1*J$-mO`O@a;8Puq_b~D&NXvUnFlskia7OG;|!5uS;J1j?NvGr)1)ok6++AVeZ z;ef*@;7RbKH0ticoF@lHAL-2s_l3TF=QyNBHjj5CJs!?rol_sdQInkls|HS2$e;PK zS{d4ra}w~G?zS-M$;{rTG>~48M{T=yUqw2Uq4Dp|{2huc-`rgT1_eJ7J<4^~{>_I74IEkyp6*oiB7D#2FG~C@~@=zLK52 zDBu(<1%wNIkd&5u^t22K2`*AMmmm)W5H{MI=?sTr+RYn(Ico(G))se zZrfBc<5=vkReLdRR2RXC2SioczGhP(dvEHv+j}?pUmTkHkLG6L)~-S8sX(L7_+7e{ zLq5fkDCB&`gwE&A@p7-4FA!>|hBs(34Jy1)N9g>{YMSY8DbB)*^HWt$G~4=f73%+0 z$5)3%6})XDigZdzN+?nbB1kLgA}O`N(nxoADxK0PB_-?9EseCm0xq3W(j_6a@9yI7 zyT0#x-{0-S}zGx?E zdsb&MbY?#l_MCHc*k`cB|E#nRcDF$iGIUz3g$j_%U2J7EIufzGEj7p5;UX4zbU^M= zc*ZE6tJr!ZI|uB#N4z%#6~{h%Y}|4kR*jKr%$`!B8e6MhtSS9^mT)q=%~$eHt=?rU zb>I8o>rn##P{v>o7e_9!VH){4Y4yrHDY0d8QgIqzwtOPbbHBV#SE)y?uvL%*|AKTS z&CpiWj*blgO z#lubMBJcK^mCQ1^Sdr;P*t+>iH-yTT%do`@3LwrAD%Jk+xj0TqqreF0su=yo^gIyq zXCXUr@@Fg6Sq`UQnH3dr?O6{{T4$jpAS{)TuJ_MDrvlDLRj8F+Tu)AmXZAeL?E3h| zh~)}02T1ac7>I3%wzRWh@k{e4j#Rl~RUI6Op6zGEY-k2@pH2->Q!>O_ketFZC;WI# zZO5{#roR0l?8JJbW3po6wAtyox~jTpb7(I8N7jRvl`E-Vt&0dJu!vpsoPfnNXul~$ z;@+{?OPX@nSUSE%GM07j!(jHMN4(q1E5HT950YP}DrQ^@J8*z2-;ikG5C{9J?krVy z6~#-MyDiW3lyhxv54ltR-boM`tUcWO;NyufUUV~xdx4o*0h6@rcplG@_Vpu-#KE#V ztXDun(HqELQ{`=aJPd8X%V3E2A>P%pgHcj8JKq_n9Ei(#7LfqbU#Rn7GouFFSEABw zaK`-4?Y7Jb_3_oT9Jxn4G?QGtpT6e#x$ z?+>kTpK%VaOV#Q7(HLwIp{E4xvR)0I9|)QvKH%Q4kj9f1eWDf@Q$Jv+D(@yr<$YV^ zwDTu|I^r*195(l%?K-% zaUAESUC8E84{~BIitowZbUmuLj>-C~O7(Kx{2_fPF4Ivch?ibG4@5r-8|clUHF;bx zkf>_-i@T2nH}nwf_7KPonBOxO$ehI2uzZYi(0H6Swg5JU3;rszD7h#GA!T3Ycu%mV z?b{eTCV*;&d>S(q#S~WWQ;%i}Ndqyt3)aNGB#3UeYILyBl*3%B70nxP0X;u|o{>8J zwJdbHdH93+l5_!cg`TADuo4fE&fb;I%o#d;QK5)(kI;KX zUWbC?cZp!(+P0RlExe`0$~1|0{b~9Le^YVhoHjY_3*#gtg#n`R9c5skww%mKN9gWU z{UE=!nA7zHVJ6({4%CyvU$>buOwx|EhUDja!#KEi^`{U`+DVa}s}h}jM`M3In&eJx z`jcN~MI@zyHGHE5nrJ^7n5UvU)X2>l_U;i`PVm*n{TA^UI@p}T)JZ>f&Gv*-_&=`0 z%%}J_o$Ej~V3)usBFzL*4oUk>u8{hK47Y~aI&O81BZHuxN-uFwyt#az%(R#f@I^t; zn(0o=8`HT3!SANV0gOir{IMBglq>m~3h+Wa3x%C(S3=uC_W2iA5n|rO3(?1^w4NOT z7>tlybSfDPc(!5BszB4FwFAN4Ael zq#!-6f^8A7h2Go!FcdVS{-chC2CO6A{k{YH_)f z?2rZbCp>^k(IhouV@YMeRZY z7I=B6mpi$WAdc0o!T9|NU-JUY`ZU37#sp3(PW2`rauMr;%CjN{?a*F2YSJt0592WT zV?(;@K=rq5_J>T|8F&aJ9LA{;+;=GpByN#NP{*V?2tWjDRv8?`J=Zu5XtDEAxtiIJ zZ1G`y!mEMG`vkFCt5Xvim}5c2vhVNc(IV)9uXob+Ve*d=<_~P(8Weg(ACl+BggyG2 z_bOI=3S-l&yWebeAf3l1YWN9J?4c!;xVC`2rZWyVD*ZWayu6+yr-%KM_ac9X8-tM( zrTe<)IMA;ks!mNj{OOL`Zt1sLZ~&)!Py?u`iK024pG@9<(2bq2ci6YLGZf~&xiBo3Df0c^|oG*FtYS6jk zX(Ow#-gj2K8hLLoyyL!JENK2`=DWf>s9uHu3|hXwj#uA^S((!7k8tHX5f}9h1Fe`V z{z}*_vr~t6m|pa~s83oX3A;F+|CF9teQfKLFhC&do23(dwQbuN#Il7WR_|N#7%Pv$ z$xEBgu7{_e5ZaCh!{Zwo*SI!k%u9xENd;%8FZJk7+8b!ar#+_{S{poVxwxi8jVjtP zM51g`CdF}EWLjK+H~1kQ3B<60CKhi%bB?pL^i_c(3pUR01BtjcKQc?jR(A-1v%KsY zNG!6`UXBq8Vn$EWq^`4hMa5t$UJoq0$uGq_UZp#trf2Mw)N(ft$7x={aml!@u~}k0 zk8!(k*PZWuCl!_@Gh57~Abpd2$C<-!zGa@PZolu&F||;AAJ(u>AiKytV$w)>o|e`P zglLjY_rb;@>73~ks{w5x?AIdpQHdnj2gcvAzw^hY@!w~O)i>SeQz5=bNFuhTz|D>g z#ldmQY6%Y*VyyCC4+UMwNKxqYH2ft(S^HP8q}v74s|Wj~Zap3#@(m0Uwvvd5UGM4) zEEDdCPd{IqESBhF{SwCH#*U*Mc1=s~rly=I#j2^=49|`#cqPkUC{q6Rn7yY$HEf;8 zl7c_Cn1%5b`zb|X)fS&75V#9Gyhigtbn)V}juXLmWOt#q%x4Vwvv9`3U)Ed>MgXkH6ofC~E5My=>5;zKCzON|X&G0KK*pS#=YU8Pj9<9Hi493;GpL8C&|(+@AmDH>nn%RT0)!by}&NpZ_#X@>0BYX1JpCC+e5o?#Ts`7?$zSP!?L~60_a-H# zaG*9z4~8f1dlc@+v!?0pc(nNu4=DbdJC^#h!LP}wwW?>Kis`XhzfW649|?=udp`eW z(h%)b`bj`pisTuQ(z^y~!dycSsR)x35v)-woo;5RKV?|R;eriVyKNF|`-Ku485v7QS9{z&7&B=yetQ1R>hraC zbtV>B*j>(XioVXUpQ@4b4fC|Z(3P!W-QXc~D$7o6Vr!OK`rK9WrC*7Fjf4+{R zF8N8UKijbVJK(zUXL%KTN5FaSYoTrvQN~STv}OiYjH-w3Sr*23_Surj)xX<7B)LST zX_UiN>v`7NtfFN|Jn((kPH@ZqDLri6#^t_yu3komOmRHh?4jv#;(0x$8&z z-B}bf6kp(WJ73{lMO=d#rH@qzKQ;3|v#d4WW-?H#aX-U?c$6(TSG=iLHALuFK2&(& zf^Se~x7fd5_~m1*txfAeqtiw_GpLcXws#?5uJc4RR#B&7nb>RV25Qs=tH3!KPTVL* zAS~8ebLvcBu=JW{*#qr%I;A808WUMrtoBHIFWpUZcNI>WPUuWu;^YkAn*$-eMxSR&t~aCBB5J=obN;CNFZ@Qd+&v zDghPN$9HJf87(PDDc2Dc6e?r{2nFP*_n55F#ec>7xRRf`jd#}oy#_=MBo}y*;vW&D z(m3|#>|F1UT8s2j$jFG4=KOAs@Q1YPuX$hVCGyt{=rtAU1jpqsJPfut6%=y*e-hcdIm*T+wJSs%`>5(;9P8i`JabZmvbx-vMfNs_%iI77 ze5bq%EsNz0u|5ks?SbEW9BXc_4u{6tki{*D73NV`<^8}U6phQp7*?ODvO0UlmCH$3 zfFtK>E14q}0DYQ33;y!D^pEyM*W;erS)#`{P`OfBY8JaLd;bd4r=wYz--tdfA4a%L z3VUloc8y+1a9#|r%3B8@mto1j6CX4-8A+H5TxioM7P-?jTlJ>=U%DCRF&Vxl%P%3{ z)!0`($TeYoq(T6W|GM=7hBwI}Sc6HcBMGtKS$G?&w`p%FTgPP|kCAP=7pr2b;rbrN z@#IMga6oWx*I!0BcK4-g3MT88^Pe)wVp2RXmVp$+(YX^fVjMof` zFBex<(n0;50OUI6U$`M}`KzRtkKAv9HXc=54goAj_nqMndF`3P!?c@oEWS)|Sw=U_ zGJA576iX$(RHwA17VtAm;e)o`d^4#|v0qN%fkj4ZAQJ)`_eFu%cF!>QQ?-;R9tosR zADM1rR-d-NT7w9hjwN*4co1h+arqstFDmI9gkb};TM`Ay%O8B#Clc4dW+|PJ>NN*U z^Lcci_UHqh^p=()qTnnRJoA`S*T}KRzN4*Y$Ur(~daza%#?h{K%8LID=|%tShrD4` zbxKQLkI+ahwkd4-@4j-+Q|!v-Q1QyhSCaF+dC97`7;;CTc z+WmZZJ(3twXe6x~n7XQ4H*=A1vytV)U?nSCu{nMsrY@JAMzqwWk9B68d)DleuSS^y zNT3TyMILQ&jb^F&a24_Q$Uv6i5;a@MBc$zhT*iZ-+B)p~i3$OTojy%C2zmAwL&zou zk7O`u<}UKcaY7rAs=_7 zi>KwEt*VLZZTb-;trpu7WC>?NY6s1S;NNQnD_k1=R5M{)r5Qc#MW5ZR06vfDV$;G^ zdLHvZUkr^I=1-bt`NaBKKh~qV*F3-A6UYuCw*Vw)!j@jB%6C!SbR0nJGs1boE;|N$``?=2}s- zdKa#K5>4Kc=b3c%7dD9LZ}q0aPOKPRmy5PRByxJJ{CnmGMRX6`>qlfY{0vv`>z%J% zNj^ciWpD7uieE7bg(x&JqmF9}nY$_xNY-D(u52$~Tz`6j+UUi|;GI{`@$1l;bTf;qG#og%EQOq))AG7Vc98#9V6)dDQkAEm!65ik{RWSn*zw4 z9V9RpDJg|Hk(KLn=lnLxllwavxBk^4I`W(#F1tz7x?H&uuWN-$>j&BjMvHaI;2wcN zF-{sr-(Krjeeqv@vou!;D99uTmP>KV&%`CWtz*@-hy_DoOCD%vP09vT89pe^)xGwr zj8y-<+n=IFbM*w(jlgEE7I+MMG~(i}%TI7Ium9=;rvQ4iu2j?I={ejc)^ufy zuxmH8zIvvJq%o%*pOt$0%bTB!^M=@{cG_i6RnoK6Rs>i7)U0pbh@iy+ssh%(8-8l2 zBBRcU({5}dLfO0>qV2Nv!Z*6>-QwBlgHu1+Fkn5g{ZL~EBN++~J=3`H@q}C+m>V~@ z!pI1xa>w-vF?zpC0(!EU;1Om>(Og#jt#M&l3o~c$x9-*zFIpB|ufJ?qwnh4i*TiYc zFgTU^GT?P@Wqmff>QY0p&l?6MYer&p&w8O!4YG9UJ;sY3mx0PUx53+>8JD~|bw)L; zNl(}3F@T49GSD8}uP@avpiX^eXTxK^f>=f%MC z6k+>qu)^Pz)Y3XP{dLc6(8(Ww?sXYC4hm`{LGt#*Sk#bMNLGs9ti15cVm129y7ijx z?9B`1RH40sRJZCr?LExmHmL0Up)NPr4E-x~>P%Odbn(tweB`3$p2tn$P2tt<`7(#b zu~^9Ve9dGwAT|VzS$nI47L?a~v3>#uBZf>7<+Hru{{8$k>b!S26t+xZDp}mk(ng^jk_QH80 zw3&Z`i<~@L4BizvmDJW{qCSnl2n27F_h@YinB%SNM%`kQwehg{fTpGAJA2l~G+O+U zz-rB0%Vb(s$}RaZkNKit@$|lr`}Ne>zmhK#G#@lOGL;BANN-^=FjU?IwDhbd(V*37 zj(E2S#RKE+{6`Z%O_;n<+-+12fv~=13KZWqT)ZIZ>?B|wR;!y)}9k)v3%n| zrHl=*&0VxB-^}UQfGPVoRi1DUvTNO1#e$1qy(XHtzU-!-ATBGxOag73bJLB+^*^E( zGoQeQF7~^&w_2r6Pq@)wJ8f;G_jIJ*kwh^kFNr3v$PMmvL$=|iH9yvbz-(v)1N|1) zg<34iGFEE#b??eR>`|Few)c$~aTD5i@C0-|OZ7y3@JZUr_`9LyT8T5sOZbbEEKfreHuz$nF;?p4u*bM{8S zOk*m%F6e1&*FGXa38#^iL)4RRR8J3rt!SlHeW{rWmvj{?$RkkF1HhqA~x^6>Vyy5R_y5|7EC> z|5q@ox{=Rq%eUhHHznH7&^h;?$p2Mv9XccZPm1SjvYTZTowwMc6=N2W_2wx28Ugw? zUv}1dTL!j?&z_KhfVchI5a;LGFOcz%fx%uVr&2qS`B~Fu*HK7uyvCLgRf-K|7O$PK zj{@bLWxM$M_;40-(ITA;BhV|GMPx0@XFom<0E7%$Ku<5Px3{+sJ@sxLqU!xwFf=e= z7WqUBo~MKMOmXyp4`JHYP&7||@5RKHFDA*0aO zP1aC2crX>+)tk4iKf$^-ELxwqyS6L^#^49|sLD4pR@9BwiIxIcs9#3OW>aFQF$AOC e`_>B(<%^z%@eM3U0v1XGoi|gpHYzskfETUP-SH#RiU8ZMWCRd{Sjea?>yWjIzmC&WXVd3 zsk<$M7sW84$lkxJs(cngM-gnMjEx1Cz4n44LwP$x-e5q1asKb?jvBz*twqMSbJhQI zJ*i{G>9kl)X@KHK2i3!w+|Bg9$J!9j?En9UhlgAL_s5#;x_^`Ev}fQ&{8;qT$aME( zf1TDa*e~oEe*4lA zkIP;vamA7)fy;MzDrxEEq-b{%m-)m@Q^U{nF75g*sxVa4((CA3bbaGBRkf91L39Dz z5yc4Kol%*YGj{D-&Izy$p}@_U;zBhx3`fK)H)Venrvex(Ah6JP^jR>o?&~RK3k?`ldoX(Pb?h1 zf3I;jP3udtbJu@^$){uV>3RL1+$`2}WcGQ%z1=l;^nClt(R*9Te`nvH|5|DnC(X0_ z_Ok~7`h7PW2yeZ>l-O!Pg%ctZf1PuFUiW?Ey}VvH-;RD83iUA9n~+QIG_#+*q4$rL zo8D=C=Wk8_!TTSmhyNrxqYv}7LDc$q?|zqNdPuwc^ba1?^_$3Rmle!jCu-X=UsU5_ zGV>(j9Jwxlcdo9Sc?1;hemg+_8{cSEkdPMbnf3ge5p+Wbb{rFhz}V#g}>K7L2AFJy4jE zaH#x5t=3~}L#nnleZlENqy5I)b|Yz0?Qc)l&+6!KdpU_!crJdlEQmmD8sK2R_R^QL zY;+fYTdlA5QQj$#g|+5F@V>ddO_S+f+xp!<su zUnk$EubQGrFKS?#_B@ zYoQ3h5Jx0GpyH;cj+$F~SKrsy`@68Pn8^=gx$IjvB6$ET-oG9vk#OfPhE$@ogE)l5 z@!Z&wh`FHu#st`-=JQU0UA=ML{Y#FDbms@x)zRI37CjV7svWnR$mEljO9^!iV@F6>Hzk#HZ)Q)WMUptZv+#s8V`$%LZfE#3`#a{rn)tb39kA_R;$1mxRRIl_4tBZp3t2v&SLetPo%KJRULAJ-PNfIZnEe672EdAAsF;J%HH1oshM z?!${4guXQ4D?N8AmG$eNLjxkEk1n~=iRmwA#@XlTt|W4o^`d9Xlc6ZXT;Qi}K)u5) zF)+#P&o+bGrW?U$#f-~^48?C%4QA>3u?OxiE2j271$R` zH{WlXe+vBplFzhPPU6}V_j~fY5(^>=Y8*Eci+EMfC`kx2Og(PhFs@!oA1qwVTd(Iw zH!km_2;1)m8vnS_YBuC0K~xMjk23!i+xq+oeAUd@zRXB!2HE$s6S!BL&}KUYQb^U9a;kS=@z4&_%kSud~`| zrVfBX?I3E0zf+-MbN^IOwzXspY&a2a^Imy=SZCP2Gi=-lVnna1T^XQGFFGI~Gxa_Y zVW%G|7{%i-6khdfG=8}ekA=^C4hxG?6J~Ro`l*Q&&KRI!xm32%$H<#NHDiYA@{X8h zRQr6hbyq<^G{3i>y2%IEo0x6r3f$PP4lZiPo;C%pGc00|;HpkveOpZO2~xOO(_6}3 zvZ)4mpk+PQ=n#ghb=Gg$4*1vD16y8%VTftQwBT?omZ5Q3S=Mv^?fDx2-@hf(GBal4 z;^ID#Q|%mUECp>?jEvK)J!|l2HrNH%gO)x1Qgyq4%O^;ma{eUg2G>sMiEV8W)S*8_ zXBiW<8uhTq2zgr6>bB#uY&RUb-1dxDBgP>|hm31J)kKM)HMj@Hpedsxn+%m3rfs^G zBLtjwk{!2`TC5$P=FS|iFs{;w`|a$j_AWL8+9zzjE;Hgu+{y{i{>lKkP)-+uy6r=~ z^UX&lOgo9+*dv1*|JPad?@nEiEFd5TqXEDI;J^y04oDeOR(gi%XZ>sGs@W7d^kxV+SSJO2Z`ExV#`)#jx ztHWK33j|l_VOgZjEt7=d$pE)JI1zPX=|-#87`XY2!JoM2>ym{9Q>d8P%5^+-%9+mY!TsYoZ9up@fyE=x_15RW9c@wf1GJh;B?eN13(bdx^8W~qQAFv-Kx@uZ z)bq-LTq~e*)aP%u;%2#4ai{5c6lz0U81UKodzfL;sg=`)GYJR|qKE+YMnK-ES{h_{ zOI}i!0XD)@vn@3yf)mD0-ijI+;6lphhb1!h^RWoO&gmnN9(|8x#iVpJ z&E*AsO100*H97RVQ<9zff#KbK=EVm(d-dEQSD_cY&^ET2)^(qqI#P2~6&V>-LLN(U zIsc~#kKTE}?n-+WP}pwiQ!;9~K`j9J}>N}}e<{37N+84en8>n68VIEIAO{>fZz z>~)HC$gn;q3Ic*!L=dvRHmRWP4ZwoXl}MRnb52}6hu9+!N>uGAZ1K}9tHds=o9G?$ zVK_czFD>6$9OYt#Ohsi)5xaI}*s*fTsJhvf7M_ zC(hk67$241yjlpl@G|pSb;1ani~{`IDogX_0vnH833D14-!q_|jhH6&OM(I<1e ziQst2PPC)`lDJi`f*OcdoUV`|57Hn5{?%&Ca^4^=5d4Fmfqpj>a=O z@_tCnIWSWlo}D{AXL6%>1hP?ApchVaX(O=f48K!fh?AOB`LnjHH*{|b&xiZ`<>+gk z9r^=g_$GDC#^VPkhjdVGWJZnV5qt^lQCI!pn$j{O{%?BfkLuemqYaYEsqg;@sj5-l zH@&LrEz?)NVblWr`^VxvhUhm$MS~;uM493&cbQUKov(K8${PW6y7mDvGI~R5pO2!w zp6Y}{{)*+Ym)lw)Dc7 zqduN1jciSXS_O>xbfbt)O5N5a{q}!D5$~s%FTOZnkB)VL!w{uVMZ&9AK{o^8s(VrK^fg0FgGZ z!D08Ssr0c+hr5e__kG@r`B(!82EDy(VOpG-M_>YjdepNTfMH%kfdlzgXAktuUK*_h zaBQMf^q~7E;?vzy|Deh%<}d?Fel3(4x?=q2F`aRdALtw9=My2FJ1E5{8|@x2;$id{ zIb^`lA`c;ieDoI~4iIG*;}YX7dAxfv0d{w*c6SpQ8g3aHE~WEp*61ni5{g{m10zET z)`w9-G-9V1{mg)0?G}mmK=AylxQ7XpF0!e9RD3F~t9BCgH0gw&A&{JOYm=$|>!@lt&ap#DA!KP*Z6NWOJ4neaFCc5++&1d5X$Da!I6Ena4cf zYqO&t5g|zf6j6Lf=FE)8b782ho^^olq(W}E|LuKsk88bH8g0_;-GqeFjW4B@P>uh2 zqB8y=p<(Z#C*m+Z27eG)RrD3q(2@7l(V<)HES5P}_eXk-9s;gn=X^YKWE*|z*?kTL z#M}+fZtt}B(`>y_MLhx+m+hZPC?g|mFrXKDC{1yyUYU9Ep=rE4yFRBDprQRpchtJl z2yg@Y*#PxMz9}8mdaroz23j%u%zvWHVCy`_c@w$f%3ngth=Iiz=f7d_bVyh@7JHV& z#SAdTJ>XOV6|U;%_Li9+@H|YBd*z;@eAXY#@U40Ms*;=B5bpiU7AQGZ^tzCTjETo3 zO_7X&%6}A&_#MDHt#5K~3jQ}i2>Kxd&!JR<({!I}!e^^+- zbM)g@Z3&8S+OWW?uE5&Wtt=;?iDWm>t^+k0CqeQq>(#->N-4QxXL@b4KFY~-Q z7BODUG>qM8q$@#7j5qt@z-P-KQxaxE%wp~NZ~bs(M?l=+&ZW9H=U{#T)XfqwjPmAl zOa6F`%3c><<)g=zWZ1p#qj?8c&(q5cYn;p8#>TKn{;E3%1MX@9;#VgXI6Q{ntEIU& zKqoWP%s5qz68J8_T2h=iZph(m^9b#@j&tKJZ14pc!za7j-%_t0wg%x@qTr7R;Rzot zwFlg9LJS=gGrgM&3A&FW)?$Xhth@4-a#;JBH|3($v2U=S9sIL4d+=kD2O50ge{r3d zMj_edSC!aM#b9J|2Z5=sua575k;qoBVVyYD)T?Vci<_|+#r%mzQR`x*bEwdI79|;I zolh=`M4FaFm^`wVPdmYguBC8CmGIU1oe4XEJJkv;)5S zmATjMt;&=$F_r;ZmO|Oj`ktTV)Br``A!^f0A| z`4)dAE_;n)%R7J4K!a+;XKD_p?$YbZe2vY@4Pt3%7Pg{&)bYO}ju>dQJ-!A2o5Xe8 zrMNfbU&M0NV`9s%_BTsv(5LZct~e~{rV}zU{+u{)aug1nQpO&qxI+$K;}blg^V8|2 zY>>ls7O$KK+U;U+VuZb83G03(J%PGw4E_r>$7k_23M#i; z5DX$xtf_BAAQyy{Q42_myS@mGp(T|U-7X!tAtvRtv_FN;keA}Tm8Q#WZde|?HC2Zq zky(PUPERW!a_*SemM9=_cCDN) z!n>naDOFai`AQt;qf$10Ag@ZY8RdXq7@a4%M$#ncDpx+Ac73bVD)@KAFdlbUY-b#5 zF<1rH_w;(dIAzi8Uq0Z^WrM3&3z z*;9Z_7ya?}ARPJj$NZ-CZ}#&D9j9PE@+5@&o;<=Dtu;Bt@Q*Wj8Nw_}MAv=Ci;PE* zFE63}h;H%R`X$^S4nD)i`q`NXg0hByT+qQ>OA z`z`>&z>Om!juuQQD5zsfI(UrbDBD1gr(T!xq3UK**4|IMFqRT`?pM`SJqh$5_*~6- z2=eawOdFPo9D`pIN*P3i{33$>Db2;rvu+I@u^BOj>v726qz zL2#R%H>a9{Lbp-!H2}?QO6zGZ7^$Q*?W*tL7ibXIcyb2qhu`Yqsp0cw5ghI(3`e(= zusIbgElSWnquQG*Wyc=TdGqbO;S1*jUD|v3uO7}uD)DP%rDrztZoz&fo87~7c4%0m zI*8GFCDp5<0CfiUD=8LGY^*%g4HV%{^E*+~FJ< zQmN)fe4yY{wneUY+iXxCftPiuc5Lw8i_L|oZ6F0&Ig2Srv!jU@upuT54D-nNi(BB8 zA{tgdO?vFc?gsp3&L8AejKzlxzh<$}K2B~0cfAIP!BFBZgr2x3aOenk){!lbk#d^F zh;~KYpWc6Du*%29ap9EI!+R#}>rl}|p8MMfzL0RiIV3f7<)?}@tch7g`221ngo;&A z2pkfu$@6M`pjH@f=KiDtEYB(RNLB|y_DNkMGbayz(#yvE$BFvpxJ#{cI4`gHrY3Pg zr-ZzoJ^w*2Non(-<3wmC&LDAJhEYter8Qvky$IxlT(5=-b@MN=hd_hvO4ibQUgHTf zo0ZpVu&MD{gTPV2B?spx?cJYrQYO3nrVFjSUtjclKb~9mY8hld_p?s48hl$+d`%92 zpZ;Mx{>?2z?AwcljHl#Mdpj)luqX&-9tc>0hT0s>Svj)F4FAHo^M1DM(eE|$EUK&F z9u!?z(o;A!o4WoH|D)z0b}``Y-D}RKZ-U}5&N1$cXc2A!qawX_b~P|^&J#jxfj=9 znWMaPexDI0A08{O@Mv4ZEGhy%NJklXf$&zY_@QB@!CM$#-Qwu*?yKkT{zm_wa3gZB zbYLT31CB56{*(v5wLuE8Pk10$~<+VEHJ2&&=SZ?>d*-V6861at>GqwQm zVYi@}zIWoN<$E>KYl44PLt|&F6wtcN4fHzxB>_%bXmRnJU1I8}@l7;6eZ{vkXiqnJ z4AsAnthL;tHl#E9~z7qWhQ;zk%CB98pRF53TADe;BHb+>7=N~4KU zS6kpOhyDC{DD@3|jHt#qxQRT>Z04%OB$jVLoqSj9+#&`t?xNVI~wq z`&RWJ^DAYFFA7_Q|3SEwEod>Xflns#Mt4z|o>|_pdRy#4`4z6v^t~KX1J>Cx*A9>8 z6W8QZx6h{v_Q-G5rX1^)+3iX*KaeA;sZNIBkeIwYJ6GT8hxN-We{~>k_?@R-k|}Tj z<*ly)PwHm~cAL;viTt!p|xb?h@tNhS<;UvyKx!#{+f`Rr~s!;zKGq+ z6K~TECoA~+c)4ttgNZ!ke}spU#PRPyR-)m0|%m_GCYis@Z=S6qrs=TqKD7Ue^#*X-$HxnpvYGl?S~ z1|mUXsXQWLephD#a?$3GoUk3At>^N91f~_11&?Oujh}0U1d%jm2%#lf;#kLz*PrEO zeKAHP-MOrAoJ27Yb5gE0{?Y`o4wwStW>hg0kULt?Ps7>Dyk085?jrJrf>dED*P5%1 zX3_$7dQbg96p%3etU0ThN$N?b^W|M&KIKmMx)|^d$ssPLP!XuM$JDEb>Cs0Vg|%2_ z#eCRH(~BeEfs>3EZQSN~^EFhPNF@5h3lka|3^gckR_d!}!yTeq-Y;(rYZ1MI`I^U& z5CzPJ1L6LgsqmDh-w~Y!0)e|t6X8oRS&TO8_GtDzGd|qZ3fuaozeQkSssWJDqQJ6b z++CyRo}%bYNw?W=5oEVxD8CRL%EoWHUJ)snv+Vk&VXei>%&FV{m-s0yd(zRsRR+6K zHMJJQLkf)J$|q+4JezY@MnB{38`0Y;{2oD6M^`S%9F_e!!C(RQ70>A-XZcvD`YVsb zEC`nF(~JQd7GR08Y7e%;^lppao)ail$(Xs`Sr#<@eqTf3VbrJrqsEBWUJcX(TcJ3S zfDlp>p{k#nn(rq{1_=`d<5UCsd_PZQ8-xv2a;7l8h^_L4L=Ey;ZBj$2m*DqukAt1SlQ3td$(KgKjtz(y` z7BV>hA)7d~WPRy&Y1#0sNcYq+BWuHw%Hh1{_P-Ky!anfOg? zbqd*v8tDsm%N3EIL(t`HR5_#d1&IYbRM#L14!T@!(=v{7HaZ;SQXkhzn;*{Fy^Rq7 z_8REvoz_YjB7u5;qb}Nw;VFX}4zuEuQ4Vu^eC=dL{qP8!Lc6^(khqQ-><>TH@xpg0 zZ<{Ig6Z8IwT=TdRHB(Ib7ULRUSczeX;C8i6kP8z1^<0-_5(?=C5B7OBN2VqMQN*4c%g`m6C@@JU}PUDBt~fCRsm_ z+h|$y+}M%NqgZAGXMj@y)c0ZecLkOS^Af!0xnexgU=}_12DwcE6H`jU)r1b?bpKsWrEFB zE|3(}3_o`dJR1rlC=rqHdE?a~)=GpooNkzMrS@Vejmgv!v`LrU-`3Q?MI@!9z5nK0 z!~J(wM|)^@MO!6GMLSIgH>u3RhABag2}Q>tOlpW9#!f+P&7AvSp5PF5pvL)0j!3Y%V+m@P{Db~aEr*4DFM+3Pq=v=pSeGcr|WrbZ1c3gY!svuvO%8P zR!!DizOv$0U*?(j72&^k>BQu?A*a~pk2B{KD5p~}y#Knpvp-)0@EE~IZ6UzKrXMj6 zlSB%JueVDH9J>*AlT|93E`}Hbsc>Hy?lK-L!%XvvT*kE`BR-udGuvF4C%Ohy{ zFA@Zvbgg4;UHE`A-&NT*V+CcuTB)c0H(O;pQP2PS3mL7~y=+gbyaAY9^EZ3BvW)X5 z&Q_|Ko10hQIRD&znOUnQR{UCRa^iIh4JCq`AaZ*-;rGcMg8UnnV~aGY$Oa^QJ{rGg z(`OY|FM#9Qyl8cE?EToNud=!HG0R$+vs`$qElJxtkQlNA_bX_ZER~F9LQgE=3_Iq% z%xKNCkjHE)6UC58;t)kjqy-*VdyUmXJ(P`=IL(jz_k&xm;g5+xQTjypqs+za%6v=O#RBM}dJMSyrCCe|;*=S-m^Q)dht#jPGy207R7ZPYMWML*8?aZ6| znEBGb?gvdIWAbbvtC*vmfGQp3P0moBw7=aoD)^;VUW01^)%apm8Kb5PT0`&&Dv-wE z_aITG#$D1g!3r|b2&7swNy#iu+W2Xagn$ZzG&VY@L1z-^P6OmYzmJ;-5pdYUz4ng* zNEOupb@a(WkwKi>$UZf_K?$ddoXFIvE0f-?0pj&_P0_T)GxnK^%i}T%)t-Cy=t%}P z%3va&fKVY-2JeO|dKT1X3qDf_p9$#;HrB7{q|ku_q4Am`o3kN}zH>#&a<~}p=H$%`P@$@C)-d2I_f|KQ$#IXDr7Cpc(_#!!&!tzSf zQ*S|Cjb<(fK%5k=Ws@l+=y5%{JzX|dH>lnEaB(C2Scm+ZysibcO%Mb**wIV;mCK~#vQ^gN*I5^n9))0Af3t;NPwean(&dhK|bgm~rAJZXtP(a+Y za*f7fU6{CsoNfBk{nO%+vgCQ|SwQ#S)7ZX2!V=lP-3+(=4f`@^q9#<}#^w#pvhH$2 zTtZFU87jQLC^rHv=|~Q-KA_YrBs6Y1))OeWGru_~6dsBeR;6M@va@6K@EzV(5}{{= z%I9bMm9F;q{woy%1FV_kw+)Bnfow-r_01KfegQUEEZt(EcLDqQF1fC{^yfrW*|Ox9 z_*pWBDp;8A<0;XG0HYwk5?Nw+F(WD^zN3VGnR7&v-+bK6RRGTvzV~+OgYVw9;?$H0 z)2&HA#p#3pBBhPNK?2+fuMHXX!Olg|t;s5{L5eKb$y3r<{gbK;W4nYn%n zc7frgvK%VPMhxUnIK4Y#DK`(K-kskSk6qyPt8Xj?e??+nR1ec*;+1~ZFmyQa`1?FN ziztWqkkd4-9#1Zs!4&KHPQ@WUYKqMHLeBw(tA^ zeCIc;+Or{MA4+^Fcz#Z1vRPAuagg?=7D4YlaKJu5Zxk+ByZ*inO3f8R*yQgC<<#={ zuXTcXbv5qP)XvA_obz-uuS4?@-eNkP7mj2i??b2wz0B2ZPn_HS>;?5_%pz17An2|# zc&3c3_E~8)nue$C;^BQqi`w9Hfa7*4roICAuBs`plfmuN?>jyPIiJMJ}JK zlqrLEViqpW&A1Vn=PZ^p!Eo;=!gn#ji-LK+tWNN1Q%!)BZte?w`iotR03fbD`<1fa z2U4pw^pqV&GJUxIC_)r?V@~`dJT{5Lr+`*$8yZnMk$WBL_h$ax8awIMMR7}*P%C?g zBHL2kfJJ$+KwMa1e|vhUR==|cm#s*Sg(XId0WNGdn;>yV_ph(sQwrcVTaw5Z2|Da- z%2N0%z$~W=v7u9MD+X>f9L3$Ua(6|OFYT^+a9e4r1YHOc;(Fq*&*&*fV`wB@z3%^T zXGzV=#guN7#Lrz5+gp7V*a*x1n zc8b%W6}teZwU2)-@}Kl8(73?a2aWq_OiM!EEi5LPDX4~!t+vw!Z6hr;+NUX`VL{B?Bqj;MK4AfcG8pKAZZVh*{v&} z8tJ`c0ad|4klD(KSa+zMm^b>nr$(ctNM7-7_^90#jd`NWpmXtoS|mBOnFhW_PfYgD z59)fPdOxqEbJz7V?3LnI(CaL~x$16fd2_H3VNV!+jOA}EziPugQJPW%W%JUZ$R;yQ zY7c?0wOuL$huT(0MZfbfS{5ADaohs2eO`>}EbJa0PjTFkJPLRbd6Y*#;5kj`^*wBq zZD4hsaaKMG!8{>+GZ&6f&ta?vaL=i)!85!22zfQEKK$mVZhNl2h+=S<4D}kEYW7P2 zC__kJ%q5;+hfMFxuUjQkH=d7{^ZT6%T!IWUUuwAQ^Y z9I)4&&eYv{ccR^Rh4{j<0z@bT(SM-op!n+-pculv*GS8VN};g|@Lwp3M;Za7hR3J z^)3RU$M8<*Ja+E|S$58wlkAPREcON{qQ5(S8kyDSX7ZF<&yqp)`>7nS!J9{UhcY%9 z1SPZ!)@ak^%iR`$Z;kZF1C)dh+PDde&&cSL?=NbL|42l9uN#}n;h33f$+55Q#>x9< zcSQ`>($$goFLMkilmv@c6zK``znSEP6`qhlbGb;8I^~U3fHqz9~ zUa(J9g7^K!>DRUWza#@0+_#Ni>{9hO{^lJqV1qXtyhbgYZ{V%Ve`# zR<^d(fEFK1?fK{V6u`8~nb8CYi+O2BcJ6q7%W3-8^QQazxD*5#dffQANw9Hg3qM`B zJ3z&^r|(heDo!w69GrM`*%ULduiYLQn13)pG0vE3im*Jy02aa1{~$~qKUs{-*q@FV zMoJ-3SYz?U$;*m!6XaPpvQ#G1ifAT@mYeK=+Ord!W~?MhCq#-CicCpc*viIH0QFq- zs87K*kMn)UnZA^hQ-R0bKO?dhkfooGrkC9RKX%t%LPX!BMPppg@>Vh`929ob0qB7H z6`SsOeuG$VM6x9NL0MOZX_oCCmEu+LmzER~)ObzzA`v%8pz$|n7v(8}c~-rj9)SSG z%ZU@8P|FDPmM?tfY@p-kfolrROD*T)wdRQke9o7aZkOTJU5qO$+Ar@<9+T;Mo3MYV zC~%9h`?bHLDNY1^ACj*|jM>Sgq<9RJ+Bd~awUp|2icvIs8g3yqNa{j|q6!=cqcwQP zrYAPME0K#qwabJg&9Z~B!tKNxB3?}7i+URmTE&9MRfDEGJHxbXKg-d74up2oG&n~O z8Mz>5LG?4>iWR8>#(*x^l#m8cx6HNRi9PN^oiahHF*F$UFGEo`6#Y&apbH7ofk)~K zrj@+()26wX-|q(LI?0`nH8jP>#^hq-v8OpO(oD=2%bH@WD-#>44Y)3iw^*q@I1>mF zmj-Iu-`&U!sa>#=2^hv$IPd)qdQtD$YEhUF1J{1Y5)pooTMo?p*q9e*iLbbS2FB5r z5lai952_nnDChQz#V!zR_6$23#ey(w^M^oZievoLJ=74>dGpNOmP=Qj=2iGT3Y>6a zG(Y)4!rr*`8xYKli!5!{FSSldz*l_N&t%-A1WxpjE0X7)2m^oSE)$@|l5Q!-yR`?MNkuh^Nzc;ALooMI$9iuS@x2EDEnQ#;yE~Xhb zs@SjkSeHQ*Ev)xS3Gqr9aFsLla*K?jtD3{SzXK&{i+&MOEMhSHpF4QI=QH^v8qmA5B zz@ncr&5qP`%#&&X!fhW|KgUMvCI8gG0PuC)uoi|SY~f4}(&`x+&boAkPOvu~u&_&C;vVEKV=t{X*8U13SWu#rvvfI_e+PV~Sv2yAqj~4WJe}>Ie z{7FBJ+iCBgNLi0hq%nACEHRc-Aqr0;GWyRY?h8{q!WrPzjdtq>FO3+R9<4RnD|2>| zlzUGHl98}?8@LY!Xhik3*VBFZloA>!Q2FZ@J_l=!WYr~nP9KVI2Bo4f4Yz+cEK*zu zXvS^eP}KQ5-%r8owxjuukE@Yd@g);WhW*jepFh+9R{b_PQUW&nayTSMj9Sy>QLTqn z@dtXR_70T3oiq^hph!03mT^ZfGTwJ7wqiRKIqj-GmXk5Pr&A9vB*%aWtB3(%VaF1H zH~&`ufiF8+eBkp)#J@+}iyo;}QpS5<_X~LR=sg-+tb}Zl>a}Byc!olQO`13BD&KC2 z#cad=>Nslt7w~jVMO@0cf$p$Hs$XiH*t+iM(FZMkX)}Jv-KkxKJ_ooD;Kx5$rw|za zHu$yU#LUYj?xi;L%6}7}g9yM=2)}|1-Uuj&ZGxs%0?&wvM;RAFkafR=DTC=F``rJ- zjNhX#7(t7hN}Me^;`OhdCf49YTrAJtSKFyS zwpAfX^X$9(Ys*~cQHa6?okLL)hgHr7zE96IYr0ugf!k5<8|qK)Z;;Z3$+8RZ+()0* zu#Vx;5~I+Y=N-}~^LM%)-OW8$*w77jp#7d(e#Z>D(kBo@R26du|qIsccxU z8XM&iO1BDsq=m=_mJ__cYG*Vid5dy7KX90#&%c94%9U4)h1ac2YR8&qW}}~0Prve< z@uwGh5j;a+it8s|-oPBkuJWSy05zH}1Vn?G<)HSa1G-M8>iRjAo2n3Of!d$3ed8Qw`yJr@UnRON|y8ixW- zy88W4m?0HWnDW?oL2>JjJ>~0l)WWBWjK?5KgDP=1L{-C|=~*AWzy2mCB+%hxBR6y= z;~jI&&j3-l)Pz!Zx#D3C3c$)rYP<#^s9sQ)Z!Xi8VY=Oy%H}q1*q^_EDQ17i<3x|7 z1+?A+#P&i?-l;d-{o18WEE*z{FTE=2d%-jWUWk*Vy=sN`QD!Dg&X4%~tI)_1P!ipD z5pb!i!Fom!%Jf&Nhv{1P2{w8BV?##~vsGp=D)}m78DZ>R7pX0m@_CjRQ;4PR0cOpe7-NxTbfNxPC6ZU<`oPxRpr&yqb6^wh@jzy?h|&}$ zg#`}q%XTRl(1GGqACE$yC=el+xr7SWX`~z!2h!=)i?#pQFsc`uLTLolb~DcvEoZEP zHFxZmWvW1W)%34{uw)pQ*6}=$HiMPdFzH+atg%O*NjIlHb6ai9Fcnh>iat4UFSdKf zI#CPg)w%(Uz2?ay3l&^N+A-gSk2Jqb;I210u81%6WICgOWJHZ8fIR_G zoCb@sy9J{Xl@5ih^fsQgv6*-ipfq4LE7{%SW5~q%xBdx1CW}Cc|Fe!Mi^Wt}RG(oQ4&J3WKReXEq zvH9Tx^(iMD)p!cAm@d1?6>|n$Km7$>H~84(?ombBixW#$fo*r`inAbiD)%LHp{@vPm3y)HY!xxx|G6M~zJ!#j~d` z6uo#0-JU8z9l_adT)GO}d!Ib|zTtULR|C$U0RT}Pb|C)e|2f5ssBnWe z9F@t$WG>(OtDz}U4LBC2PPZy8A>re*Jxp*FaQO5%3!N4G33LyD2=0nNAkVXg~yAFmuw5+sSF5_nGe^PG@$RG3X-Y0_t*We>?Vv)!5(TR;W zi%b5<`uRJ?6rjRjD9HdH;h~`HzsM>ab5~6a(Pmv;zI2vIiU#`0RUET;frth9awv zo*o6Eh^^mc+>K8;`CX0&)-m<|+WFVplXxuKqo?qF1^#;Q5h`Y@ z2%aVtbqr%m-Hm&gEM&okZe9Z!_-7cI2jhzCSX;A5EEcSdOpDeZ3&WnCXxE=4z6(6e zFC5!c>~JDu;ni?T4EsSpm`D20+xx9hRJ1gc8H1K{Eo0+Xhcyoy3s&@w zbbv;Gr}IWr!Y}IaW-K*?P|;0SvbGJ>{B2iS?hneW-r9=aXFvfi4XXa*b?PY5JH3*j zn7-2T2MB*?ro`SJT7iPfvQqpoIGUj8u)!$uiL>O!yEvA%^N_~?Z1_B9?0Zl@z6d>{Ybf}>lo5(^Dn&bLn=bJvon z8(S)VuE3>f?5?Uex%GWAcV$LLhJVMhp&g3!&y4}l2wrKh+3hH5?GKyz)^J9&R*@;I!1Z(V(oiyFWxDd)AK6@k$>S@l z4ZUip>9X55XizNsD4(w6T|+U4=q(q7AeMf4Wj(C!-@ys)SW8LAtx7Ersn+(>Dp@Q) zp(wUCob$}nG7bCX;{){P@jK`27Zs&8IdnCrmlLd~Brh2ycC|&;L(h zUjY@>*X|7}f`m#+gCHUy-KhvjNXL+abPnB(2uMpSsURQ>%+Nh_C@tOH9mCLYXU6|~ zzxTc0{nob@>l|k9efD|!+2`!Df4f0+Zs@+w5~f)W#wPO98|1?0>K@{Hoaqzlo6hkh zsP|cpDb!cH`iRD9GlBA{^~)p+eOp1hgxfN+Rd3j{ba897(UD2TXLMEjGnXEHRn=nG zNo4Lc&Won`2Dd|Zq1Ogbx2y^{K8yB_BGx}dHcp8ka24=3ljer*v;(|X1yQ$EjR^nb zlrmtc>V0N#+b9!&dD!8AD#v&=^Z0J!7~Ez@hu0#Cg1Z&Ik1h`!B9GPf30jiK3V(n! zPD(!O89sXh?p(klvG=Ys9$B^Pw9DqG>ld!0ed+6#lJE1G41Hrs7m{)Nga!hzfzCX? z=)Hf~Z+R3n#TM8Iz?i#O3dXZ<^!*)S-q5g=3)MBMZS+T)jvN$MuKgR|V@70**(5zu zP*N-&&sOWoG&Jxhi~7o^ESaEX3-CFvN5)hPs_upGFGR>@LqkK96?QWP06mg)1D z;Q{Gk@WdqqdGCeeIGe!aU0STqXf%Vs0mmJBg;2R2nbLn$pz58(q^}zP0gtxiW2h04O#kMfmRv92mE5J0#g#N!>);Wchxrw6{j7&k zNg|5@7IqTw_^erHp*il&3c!8>GTGJ@JLS6nx!`lxyzo%+&y8~LWxc)5_V%b$F^(pO zKa%CS{p!yEr>|j*3=HqIW@`M(HRkPW6-ZUh_1r;`9ep3HK+A|eafKDFU5B~azHnaV zXezU55w;vyo^9xl2UIS&G=(*YE*UP_skx(nA+(_Ki z>2cx(Un%t;h#&2_velML5ajhcE!vTE*!vEWdiF@uiLRoJLTr9tFd%^IAOMd;5bMt7cQfg?hY12cT z$jZF6eDOItbLdGILC#P&fz6NK3E={Rt>(6X!aHLC!1p00&(WQZ<1=8B5-~r0#-*D_ zxkl`3zZ!mvt+Se=0D!g5@S(ShJy`{UPFRi!zyTh2{#huCY+eICphyd)O>9W$-(|KDC_bonqnGvMTxvbC4 z#`x9o*anz;sH8};&050Kw|Uw+zHz%I7L5HwEE2z+O;3`0Mieg1AU|`%j$rx@kb;^p zIjcVNX4x1$asxMjljj;O-)=Q&oF^TfU#HBE*%@qW<-*5ir`^8BC3I>Q8u^Xih!@-_ z=oY<-tDf_=y@JbkuwA6rI*$3LZ2@32YlhQ9_4$ek4E&#QW-#s*Oc(wsIb@W$g_qAv zy2wa>RLK-4Xf^TuJZl$@D^X6?cYRzf$(jWDJSW~a#LuRnbyV-U8lU#&@RLeq8GLD* zvyoN%+d=I7b&2n+!Y@MkMy()_kNW}bt091qzgD*DVOGGIb;qqoZST-%j}kN@CWaM| zf0QW9+jw~~?JIoTaI^)+OXlQwqAK$z-6-H9*FASD>8j`WdO22Nt^T6n7%{D5Vrn|M zF1S5Hxzqaiob1%(#VZSp5BG|gIQoEm)oPb(4h=Wn60tK|AzDUwGUMh3rt2 za}|fh&_E2DIw$eg;Tl|xR}wOzD&(YOWXWBO9&uM8BxXg!*+HzT^nk|wrgQttxeNrK zSzn&pxAd~PoBf9C82uTOms&sdPY|=Bw7O;W`EmqGwnN{s`j(SVMzuPJV+rLByXFh! zZC*K>9hN{L3X>6657x^(NU~}j1p>6$^e4MfHdM7Y1(f*K4Z}V?HXHaVpp{DOT4kz8 zY`zR}IB}+LJ)QT17Ntne8k2cOVA%x?WwPu3u{QQ|9+07EK1p zMeZLUV4~(WS~H~{`DuTR>pMXHp3RH!_-A>E&9CErSt!{_x6mQ64}yY%1jf5_Jm==i zezdnp>+gxzj8~X~u^-(XW%B2iG(Y35wtW3Kl%vg`)D&|*n=me}yX^MhHM_43KlqgI zs(?p1O^{fzJAIRvtT*O3k_Xu2cJ~R@&MN}*7B!sM?0H-DRZ^`od%W-yx zNd2%_x@)H4`8_Wl8ZmDzHz8i{^$Bn~ySFaB^zCWpJjw9|m*k4#ZGozpy08d!V z!va(&-blSUq-kq(>>#?{xyC*%C4qC=+x-3{Z(1U_KO@4!s-T;lokQti734I2Gy6a* z64s5anfuJ|4-G!<1Br$7x`Y#)fiwW$_ebvC|L-IMT^BYmf>>iGHP!`I}a zv5{Tp=Pzl1+f4ofdu+st!l97oe3rDV7f?RvY2cl3so-FPhKg3H_}(F+ z@K^74{*1^@lmcD7Wnj%D7|FprT9hMZcYh;>?7M&+a>TEAadT!K`MzIa{KmbbvEE-o zanF#a(PgG0+#n`HphZ*WGzeB|1as;m3&V-b!N@dlA|)3$r^c#-?;Dr7BvZRD#FQQm zViU&%HM|c?6M9bRnxK;pKQCW$Ft3pGzS6ksJv!PerDXMNT4) z6rRDm`v|(UiEyx%Agg+D$DgjBDyvf>BMA)+K|qTZZohdQf50RI?K8s|!oI|!4O>=O z2G*T*j!Z#HAA;R{Ljk_R_Z~EdDlheF+c8U;!8klXA)f&x989US;vlsOWyJ4SKqmW9kMO2tvdOW^j&_4zHfGYi zh#R4gw#ETO@OCR|E@!Sz3Ooz2BIzdCxFv#tK1H_<|*<;wKK{({x!zpr$zXX^=3H(Sz56 zpw6E?2hPjVckO3gEY0MF{%}dJIVhYJxQnJT@;n(}#ccXoyLmA0d@)K~#se*W zi0UIx(xKO7A3-8NQxdSLhuL;TEntiYc=v?{J9)z$U5K#aY8V$~&&SY^LY|hVPd~Pp zv~&#R+kBmSb4lC=zWr)d+Vk<^D5GItK$OreO>E}N0YCQh~^ zI_z9v(hT2`0)9NLY2d~~+W*}>37K0p&*LZD!1&U>)s`HcRxE>2vRnu_?l?X+ob_$E zFDrm>zv6ZS-#~V=DroMV`{h*D<$d+7FB_!M9x-f-uEBARzt*d=qNMVkDmZ#$eJRNY z7-GX+-$8!~chG;n#pw^3Cs>XprU-|;gX6|Mq04DaWhY%NT9rKE#O{hARZWH@N+#xxj3H_|z>m0>5&?oZiBqClG5>42F(na?cVmZ%?fmjv+cG!;VPsv|%1nXD$xUU>8N ze;AGnE)4cPYh4Xgd-FoT=13%mzWt_q}oH2y#`Duo>5 zzweqT0ck8hwO_j@D{_31=XRJ6c+(lZ5bp==D~sy-x*0sTlPeZpN3hf3amhEAUSo-5 zwfrrih$XvhnLA=mmB`I86P6A^vHR3V=N+h1<98;o+Jav>uI4w22D|No773U;;1CMymM2_i|qU~T{ z%U)$ZF0j1lgkW$I+7Bw+*btLW)Lwr0@=PP6PeqnlxsP%0_m^KRphkA`%^EkzkB(A5 z@W_qv0i;=aM6p0ZHXD&r!q~Jd-kaRbq-)_&){Q79#TVY@ zPHs>8nKUh*hw5KS@(s0>XAAKmm(WHl{|%g6?^;HBCL`5zs!8JNR*3T@oJVTM;k)ea=O zFzt?8McpMnf5i-fq@V+7_K*9NXA|+zk3j3N#+6uU8Dt#zp<~fQP;vm#OO1ZfqRTqM zp)}Xq8GQU!nKCjChqDT*BwED^oKs|C1o-?y+AXPXSWoCwi@^R&s%yX5gqr1wxVz`X zE^>tQLiP!cXS>6vXpYIE8q|{>D~2e2C9(OHZ888$v(Y_!G5sK7h&+UqoM3^(IJ{f* zfePJ@^r%|qXF)M13^UeEl@BBF3vk@Q<}bXIKN3@G9UnHtv)sQDPXRi8q+2wcN_cUD z42N4oyPRr&-V*YKdMs>w7YJi`lPvY}Y~DKOFwON&&^)|2Nn z`tCc!mCBJ9MP7AxpOnv;=Qz+l4nf&dY z?KM`WZdd6>ug0M~XH6$Qr6lLJu9QL@pB$bK=%>}1U7y}^oEOxq{OJZ&??~A2etO$I zwqNQu@AN3EbN@>1D(#)Q-U;Os8XA|~HQ3NeUBJ>F0pJKSdX9V{_MAtC6cZGtx>+BP z{7WVMN++)P@4lLTN_gCBR(;{B`Qd1eae_`czk@~~tdOb!U(3}V;X#ZXNrjGjLo2e5Q z#R<_=r+W$w&!_H@dM{@%w{6%Ma3X062V|YPR@Ka$0_EXeO>mVBglR z|Gu~JodL16GeBIGeD4Qfqcus<^ZjDD>`Sf?f@uLlGfNd{V)q!Ny|_=b`Z)=#tg+5j z1flF#&t3A0p>uLg^$f&4+e{+1Q1Ryi^<0F6=d65}A$pf?NRj1}>HfhluTP)pNkIx% z&v|o=OWnN9VT_%~=t6Q!`GwDxmDZ7Dp$n^F*&aE7k)3A~BWUR=qQ2;X#%7WCJm_3E zNTJ}k9}Nf!{5lV+_ZYPJ4*08bDj8YnnoNGxf|rMtzHNJg0c;nbyfT^#l}s)ltw>r^ zNtJDV@Cm(JHSp4SFr8>rBr3hGVt%96I&#G8Bws3F4Z=Od79}=RHPFt@n;cyI;?dm; z2}R-Cx>;Ejqq(y68bSY;@wu9J8NXf#RRXjJLeG0Dsl|+qv(#LMNC_4S<`^xzWT0fl zb1jOvi4Odr#fuPd)wq@LLJ}QbOj>2UeqcFr{xjgq5U**tx9_6M-Vi|uq|8UKbo6C~vOzc4PANhV@*H6*>m%8a@&MVZYh1idWnqWn&eqg}gw< z(j>W+A2@=+CMyW`FPiZrtoYcK6)=o{aw^dwof^cF!1(*q@T{m+7Fw>1yi7-sV%uE6_X!TZxGB~HlwPi74R_Fay2HmZ}!*2AP-SAG}_ z@3<3%g(LMN&^b^&wcL(3If?4jhR2*WaLisju=Ey*&j7a>i&vV_Yr6hcD%OC%+<%vO zDH{;50#V?~DR>*gR`pcsGv|9ATIj4rNx`eF50wUQpkEAx9aWzZc{34RGvdZ-tbF3c zQ(%zCRmqaf;mMc;lK;)-MBxSllxJd*(UnYja!y!9lO8L*F8gb6kWH2djU^LpONPQQ zoBCS{JWbG8?4247>z;^cpOWShzOM}0+=wj0dN)DU`El%{tcLcHdS?Rfx`e zXT-#2fL!6yY~xS{=fUca<6-*&3&|vW<_OoDBE7u$X*|Zi!*_;1w$P@%3x%AVoEajG z8uo7hqiC1y({48C)#a}SM4?R1UD!oagyTc+Ir{da^(806SO`tNWY>6fQ>lmhpN6ly zJvo**DqsT&7V9g6841vJuRn=rNA%W4O|6GR<6)@&5?iRXTP@HMGg4Y!k^cEB;u;ne zTEVU|{|V*;Au%yAF0R49PqJt||5hekR59FVCvL6f3oj_Z8(XxICUeJ*3qHL|M-|;O zw%;lz;=b!6^Ya^QpL9;;p)YiY5nFIqtca+3`V#m@%$`uvDpEh)?F-ZnFK0EZX!Z9W zT7XxK^h!pwNG#uExfj24(7u+O>gVloBD{&`L`*C}UoezP$qZCOfKUGs3G!6d@w0uG zuCbAm`IHuIj#AT3MwhYxQm5`RCk(U2N_w}xOWjnyU*Gpm|=xO z6iSEu zRQ1zgV{y>syDQeky%u5a1lc$Hh$1#VCgY03G}i%7K^zT*in2o$X2FperhlM z@Ptq!89%dx3vBrY*Oi(pq#glR;E%t1FQ8AiVEmIV?-Pd|UYi)7?^AR?UYziWNs)f3 zauj!Xq4}NPLzq>KCjX}%-g7ER+tC#-TW~db^V4AQumR0jY6&My=Tl^oo4NCm;A_n% zO5T(r=!Vvi%Thw(E|L+ce+Go;w-$Ut6DNaD&wiWgGuUotns$Jz0P=krWItag! zv+ulCLjs$%*xNBP-#-$_nlenpGAf3=$s1;*eDL!_3gLm3-9&hKioEb`LH#3G&+0hI z&gi%0gZ4bYYZcmhf6{9@ACIV2A;Np_Yete+*-jA?7-RGHrF zj-6EN@*%xd&rKtn+@IURx<;CnKvL8y{^r|O{&k6-;M@xABfwX0iQGhGV&B@9?Ro!6_Ft%Mq5S{HF~Bs~lTeuqr;mjbq700~IeU60{AP zhvrt+r4UgYu;{1Y3M(NIm=E#)qVaaIc>nSWe|vZdZECnZ)ECRzF4Lj9hgv_q!2Rac z>}eUuNhc8mu9SG~yo-w}4jkSbv3;OxI6o3|eNG(#D4YcxzHYw3hvA|R%^8cB+$ z!7$(3N0-3H$h+Bz#d|(*t^pTnk_MRH$Gq|J*bR7W=UGalFLHH$ATw9i0F0xn*oz|I zLO3Qg#>M5>HzxQ4)abScji{dQM6Dh{tH2T_Dk0Ye75L#w+2!f_83lG+|JCw$4^h`^ z+n1av8!NsN*kVB_;mq{uOI-r(w<)n(-0MgEVwLmGsSiG)>2?)yGx*i*RZ!VEn=_Vr zOq3C|{6!tta|*r2e;2WlTgks(<7044R4l&Ci95TEnhQhnAz3}G*G=XTRR)^gCA*Fq zraq`ZcV|qV=N03Bv^u00Subr1(&g}bgooeu7`<9thju4-tPbch!!%}VUnwh@Q281S zmfYz?slJse2Qi;s>Q}7-!GJkgi9R0%q&uayxK zdRM;PK|lP*CWZJTx_bIU*K(MqUtcihSyqn26V_Y@D!dYb>=}s|)$UTkG8nGoefRpu zrgAKaM*}Ff17~-kK%>wc1s0GQCfV|14TUZVPq*{&Y}|g-eAUFP|0k>gA55}ivFJ8O zc&7Kd=^ZrNLjEUPZbDTzKk-U_37;BPhsfAH1b#{sp+^pWh<4pf(u{Cw4F^*WO)2CrRduBsn&k&R~G>^j?8+;F!WF|tNB9wXgwZ9LG@dKV{U9`+!OyM4lA_AaMWbso&N zIsu}+&E{d1=V(9HUJ;u2#_6K$2;_{z@{t?~D2Al{Ac|kB^7g7}`fF8zOMghf%k>$7 zlRR2`4K1wxkv##v+{fJ_My@FI@tW8kL5J34_T!n#XkwjPb(UP)H1kZD-Fq~Ag|*N5 z(W-l+r03`4RmVGQ2eH)3hPmbs^vgJGjf|==PIJ-nw^7`le&noRsIi`Y=TrrNJSVmW zneYC!*7+M9>`z-4K#zHywc27Z0j+*{5se)P$(vBh$*#w9gx?}nd!x@*zNxP0#MDD1 zE<_GOs2!TcT((gN=`=pD2}%n_(z)Kyczv>JKJg<_T?23|7AE>-y`TV`s6O#yJY`9g~#tNJaRWXY00!rzC;`Xi>Y`p^-vm9{;4;#Suf zLnpZ>;rk*0rOL;bl@fLVq2xWXUVMH*>t;&tY_0TMG|u6hL0ek=EV<;%_SI}2NE6iw z)Y4*Bli#}T<5OCt_>ymZ-DQ8wqT_*OYZAeom)O0FvJT*K*c*4uaB*jJc$ON8TSAZU zsAkV-Hf(hw?+&L5)A2jc{N@HgE90|^eVTVM5wqZE-+Cix-AkhOkpu!%-*oO9(d0Ef zGHv96_L)F}J^daX!P5O?a~7&9cEz3gt;fa6E~#6dX;Wy|cwDk|ZG1WOKm|7csC0lO zsqYsHK`Hc9(DGnf0nmj8IDe(E`BCNmtZvk3WuFkfwQh`auMKr51hgj$9u}WXj+wiM z?ukBkwIp`4H?J5x;V~@4(Q_qKYm?de6k(_VSU=q^R??_Lqp`ndOZI9U=IrO{s&E_i z*cEE`%1rhGCNmW$sP}KL95J6i+I-Yg?Byn>1=0tE4cn}XPwTz7kAn6yK{{%Pm%I&7Q%0hrU?6fCHejz)p_0CAXWE|BRQ)eug5Pj>G!Mp-+x(hmX1@aPK?v1oXhx-8nO~=4su&W#CJZu`~r;nuC(`uM+ zYT3U|bZXt2^%S!x+!{GQXwSMoFR2Ra7S1Ixo!NC?Mfv|{b(=!sdKs(K!VBz3NFYCV z2f2oVIohw&KTn+I6WPDpxjdRdbI>fNWKUT45@#A+{aO9!rBpSR@i02%g>H~7u33EY z`x{mtCVN4^FpG*1>%wcEfmH|eU?I?n+^$t*FByz9%z(RSDF2o8ONifvqv-{tPxuL1 zY|S!K0IaNs=-L{&jY4{~WNYNC3`p;tY+Z;L8g<3edC*Cq@^RJE+>y%YIk@U@HAtaA zOyXZk{Of=JCmJ>$K9JGO@mGrvISH_so zJk&oitndA+9E>W9)Xu7cEX!(}H1E{TJLrq;4EnvOO*FIyp6c;y@jv_{>yFl~kT^^3 z#OdhG8vD3jN23Z0DOwN@t#>{sN43lYfP>)fDVPWYSDDiK?H4Ag^uS zRcf=Q3?nz4KQWxszf@zQJ?-cT~WZ8rk4J=;V|5g>eBv`Q)=hBBk^M$VvQ*7 zTup5>ja~6B%GSDT=eHBJ!AU~N$jxc;ZT0$iv4|3slD%@z-sxJH{$ki?0IDW#{B$1| zhkq7r#nMn7Xnx!jTW+OTijd3~Wu`mo!bKa!e{a-LsevR611;kJv4uw^3TWtm)X3ly zRukSzYocntJS869O-!@tFIPbQY;I&NWk&sj*1$hUwC!U2b3|JP23l?Z9RJnS`&Pnv z4i;JMV2aFPNE!d#2juWDd294^-^rVDzOiE*%8g8W7#L>AT}={eS#pNUFDBli3jUKF zWM=tiw-9uQz`#hHVElizI$3<I~!RiUM>ofgJo}U<`Kc zAp_t4wi`(zsyeVK2k16DqKE#ZO+ei?gLT;69a{IvnA`+S!@=3v#IEb<*4`e60Md6b zFep;oD}6>~*w;qUq8)zW%cKI>fI0LsCVkF#>2wG{N}T=vMibLP(~1hIky&skLKjpwY22%^&)L&?Wpz`x4aT+MjTsq%jKwF z-|SggQRf}-&uC?pabC0*Dys8-Ml+24_YWdeixQ~94w`|#R{!s|j}F!UX+UV-`^OCi z-{x={nV>!L3+m4qnOzL53vmvsFwdu z<~N|*Y}3af!jU3Xl0Y?ra;_^-XDe6l|NJ{3kesxnY4CtP>c6E5y>X*%N|_L==EZlv zm{V4pnDh`;yY~zyDm~w{thZliYEwki+}d(_r@fS>-;F|ELv+|IAGE8Pl;Ku+d}_Jw z7c^5H_spqRY}%Sq)D2{*yW`vBo{9bInEc$Ax}4p8Yf5=|;;W^oyvcfFPy;k>KHPb1 zR9S1%S|8aFv(m0X3Jrsko!RtGVr~YcoHxcDc~h^c2Y2Yz%*^I#G)Ry{^>a=9b`k9| zX2uV?vYmhU4&$RSeMBhx$aTIb;OD2uyFMD!D2)D;om|d6CLil!kJEUV8Rw)TVkomQ z0}_uCYanxcU*PBvYVd+#dRJQ!?YF%II%vNwKpV*4fbk!iW*$d7;07hyQPAqi3`TYF z@4= ( + + {enableProgressGraph && } + +); + +export default ProgressTabCourseCompletionSlot; diff --git a/src/plugin-slots/README.md b/src/plugin-slots/README.md index 4519860652..49412e91b9 100644 --- a/src/plugin-slots/README.md +++ b/src/plugin-slots/README.md @@ -21,6 +21,7 @@ * [`org.openedx.frontend.learning.progress_certificate_status.v1`](./ProgressCertificateStatusSlot/) * [`org.openedx.frontend.learning.progress_tab_certificate_status_main_body.v1`](./ProgressTabCertificateStatusMainBodySlot/) * [`org.openedx.frontend.learning.progress_tab_certificate_status_side_panel.v1`](./ProgressTabCertificateStatusSidePanelSlot/) +* [`org.openedx.frontend.learning.progress_tab_course_completion.v1`](./ProgressTabCourseCompletionSlot/) * [`org.openedx.frontend.learning.progress_tab_course_grade.v1`](./ProgressTabCourseGradeSlot/) * [`org.openedx.frontend.learning.progress_tab_grade_breakdown.v1`](./ProgressTabGradeBreakdownSlot/) * [`org.openedx.frontend.learning.progress_tab_related_links.v1`](./ProgressTabRelatedLinksSlot/)