From 73c8451409844ee7fbffc33dfa53e083aa4d6381 Mon Sep 17 00:00:00 2001 From: DarKylX Date: Sat, 17 Oct 2026 02:24:49 +0300 Subject: [PATCH 1/2] feat(programs): add organizer management panel V1 --- docs/modules/program-management.md | 40 ++ .../participants-desktop.png | Bin 0 -> 68320 bytes .../program-management-v1/projects-mobile.png | Bin 0 -> 46047 bytes .../qa/program-management-v1/team-desktop.png | Bin 0 -> 96434 bytes .../src/app/api/paths/app-routes.ts | 2 + .../program-detail-list-info.service.ts | 5 + .../detail/program-management.service.spec.ts | 119 ++++ .../detail/program-management.service.ts | 154 ++++ .../program-shell-info.service.spec.ts | 75 ++ .../facades/program-shell-info.service.ts | 26 +- .../use-cases/program-management.use-case.ts | 39 ++ .../program-management.repository.port.ts | 37 + .../program/program-management.model.ts | 115 +++ .../domain/program/program-updated.event.ts | 7 + .../program-management-http.adapter.spec.ts | 77 ++ .../program-management-http.adapter.ts | 63 ++ .../program/program-management.repository.ts | 51 ++ .../repository/program/program.repository.ts | 4 + .../program-role-widget.component.html | 2 +- .../management/management.component.html | 661 ++++++++++++++++++ .../management/management.component.scss | 549 +++++++++++++++ .../management/management.component.spec.ts | 94 +++ .../management/management.component.ts | 557 +++++++++++++++ .../app/ui/routes/program/detail.routes.ts | 15 + .../ui/widgets/detail/detail.component.html | 25 +- .../ui/widgets/detail/detail.component.scss | 46 ++ .../src/app/utils/program-management.spec.ts | 29 + .../src/app/utils/program-management.ts | 30 + 28 files changed, 2809 insertions(+), 13 deletions(-) create mode 100644 docs/modules/program-management.md create mode 100644 docs/qa/program-management-v1/participants-desktop.png create mode 100644 docs/qa/program-management-v1/projects-mobile.png create mode 100644 docs/qa/program-management-v1/team-desktop.png create mode 100644 projects/social_platform/src/app/api/program/facades/detail/program-management.service.spec.ts create mode 100644 projects/social_platform/src/app/api/program/facades/detail/program-management.service.ts create mode 100644 projects/social_platform/src/app/api/program/facades/program-shell-info.service.spec.ts create mode 100644 projects/social_platform/src/app/api/program/use-cases/program-management.use-case.ts create mode 100644 projects/social_platform/src/app/domain/program/ports/program-management.repository.port.ts create mode 100644 projects/social_platform/src/app/domain/program/program-management.model.ts create mode 100644 projects/social_platform/src/app/domain/program/program-updated.event.ts create mode 100644 projects/social_platform/src/app/infrastructure/adapters/program/program-management-http.adapter.spec.ts create mode 100644 projects/social_platform/src/app/infrastructure/adapters/program/program-management-http.adapter.ts create mode 100644 projects/social_platform/src/app/infrastructure/repository/program/program-management.repository.ts create mode 100644 projects/social_platform/src/app/ui/pages/program/management/management.component.html create mode 100644 projects/social_platform/src/app/ui/pages/program/management/management.component.scss create mode 100644 projects/social_platform/src/app/ui/pages/program/management/management.component.spec.ts create mode 100644 projects/social_platform/src/app/ui/pages/program/management/management.component.ts create mode 100644 projects/social_platform/src/app/utils/program-management.spec.ts create mode 100644 projects/social_platform/src/app/utils/program-management.ts diff --git a/docs/modules/program-management.md b/docs/modules/program-management.md new file mode 100644 index 000000000..40e6d97e0 --- /dev/null +++ b/docs/modules/program-management.md @@ -0,0 +1,40 @@ + + +# Управление программой · V1 + +Дизайн утверждён пользователем 17.10.2026 («В целом да»). +[Figma V1](https://www.figma.com/design/tvog0fpEgWgEtr7KUTjbyE?node-id=201-5390). + +Организатору доступны два входа вокруг аватара программы: «Оценка проектов» и «Управление программой». Последний открывает участников. Старые отдельные кнопки участников и проектов у организатора убраны. Эксперт без роли организатора сохраняет прежний маршрут оценивания. + +## Границы + +- Участники: таблица ФИО, почты, города и даты регистрации именно в программе; только чтение, поиск по имени/почте, серверная пагинация. +- Проекты: сдача и оценивание раздельно, кейс, руководитель и прямая ссылка на презентацию. Выбор одной строки открывает одну панель с просмотром команды и переходом к оценке. +- Команда: состав и роли; desktop side panel, mobile full screen. Закрытие возвращает фокус; возврат из оценки восстанавливает выбор и query списка. +- Оценивание: чтение оценок выбранного проекта. Существующий эксперт дополнительно получает переход в прежнюю форму с точным `project_id`. Роль организатора сама по себе не даёт право выставлять оценки. Несданное решение и неконкурсная программа блокируют переход из списка. +- Аналитика: существующий компонент и API, без изменения определений показателей. +- Настройки: Основное, Сроки, Материалы. Явное сохранение, предупреждение об уходе, сохранение введённых значений при ошибке, optimistic concurrency. Даты явно в Москве UTC+3. Повторное открытие истёкшего срока требует подтверждения сервера. +- Материалы: файл через существующий FileService либо URL; изменение и удаление записи программы сохраняют исходный UserFile. + +Индивидуальные действия с участниками, массовые операции, исключение проектов, возврат на доработку и смена кейса отложены. + +## Интеграция + +Новый приватный port/use case/repository/HTTP adapter использует `/programs/:id/management/`. CamelcaseInterceptor сохраняет существующее преобразование JSON. Почта и прочие приватные данные не попадают в общий EntityCache. После записи событие ProgramUpdated очищает кеш страницы и списка программ, включая persistent cache; старый ответ списка не заменяет новые данные. + +Backend проверяет manager именно этой программы либо существующий staff/superuser scope. Прямые чужие ID и эксперт без manager не получают доступ. Полный контракт находится в backend `docs/modules/program-management.md`. Backend PR должен попасть в dev раньше UI. + +Native adapters Button/Field/Choice/Table, существующие Modal/Icon/Pagination/Alert и Mont сохраняют PROCOLLAB DS. Foundation подключена локально также на desktop; глобальные компоненты не менялись. + +## Verification · 17.10.2026 + +52 теста Vitest в семи файлах: management facade, компонент, HTTP contract, утилиты дат/статусов, ProgramRepository, ProgramShellInfoService и существующий FileService. Проверены отмена устаревших запросов и сброс приватных данных при 403, выбор, dirty confirmation, версия записи, загрузка multipart через FileService и кеш после сохранения. + +`ng build social_platform --configuration=production` проходит. Сохраняются предупреждения Sass/CommonJS и budget warnings; ошибок сборки нет. Новая SCSS укладывается в error budget. Targeted ESLint, Stylelint и форматирование проверены отдельно. + +Headless Chrome, реальная production-сборка + локальный Django/PostgreSQL: участники, почта, no-results/reset, выбор и команда с возвратом фокуса, возврат из оценки, readonly manager, settings save/error/dirty leave, обновление публичной страницы, повторное открытие срока (cancel/save), material URL CRUD, аналитика, 403. Проверены desktop1440/mobile390/360; переполнения нет. Часовой пояс браузера America/Los_Angeles подтверждает независимость московских полей. + +Снимки локальной проверки: [участники desktop](../qa/program-management-v1/participants-desktop.png), [проекты mobile](../qa/program-management-v1/projects-mobile.png), [команда desktop](../qa/program-management-v1/team-desktop.png). Данные демонстрационные; внешний placeholder аватара заблокирован в тестовом браузере. + +Реальная загрузка в Selectel CDN, dev после merge и production не проверялись. FileService не менялся; ownership, переключение file→URL и сохранность исходного файла проверены backend tests. Нужна обычная приёмка на dev после обоих merge; merge/deploy выполняет пользователь. diff --git a/docs/qa/program-management-v1/participants-desktop.png b/docs/qa/program-management-v1/participants-desktop.png new file mode 100644 index 0000000000000000000000000000000000000000..44feb46fc079d8d6449f5913e53925ea3c554421 GIT binary patch literal 68320 zcmYIQbwHHQ(3r5DzVHP2h#al`xlrxDliFKx0^DcJkPs{Z)l@-ea_227< zh5*i!waVwLRkG(F#KoT@{UoXM_a_Z%+D?JxLnp8hyxIJ@?EsC)vIo zI=K~o7uWy8E4teV7xkGCRkU;1v{gZtD&oNl?J7k^6H1es`9l{^26Yq|hrfTexS=18 z*oVwpgF6xK=J%We%KS%9h6?S=jx!7XQoyzA2rTL3kYA|kzdg8or3U}^v0vs!IDGK1 z*@5m8hJ2Br-)XvL(F@XlFL%XS-9pjN`Pp}uHkK60$~Qrwzl8+*y&e74NJWu}(=PT# ze23`zCm!L&+MgG2aJyn6vjJV_E6+235@hO#o;=w{ztBr zq>Y2!q*8<*JW`SIjuiPn`rZZ)5NQ5Gbj0fcp@R;8d5ZsD^fe$v$w%Ytzk4aZ(=&dW zzxtmLE?8F~AG*)ub0&G*zP|wCWBeU4R^!FEwib(kb7H*FFKnb$_@f35)k3x=Bc4UmqBGX701C( z@^8QeqrqOsdcuK<5UF2RoDGsO=)V`N25-2oAMOZnXz>&fuyu2PD;4Yq1bz~6QSttiT*ej<9dF}K$GU>m!Ka4h^t#)?Djp;vr zbkIs*CP}@*T#H>}5#|?a6X}l2hLNBAo(HxOymb=#hICc63;Jpm6sn{rX`})TxT;24)OtpNT9vNk8u)L@jpv~}qvyDm0`HF+%EXlxU{NNHZ z`+74)mVPD=e9-y~0sh>t+h|>|Ix5cqIKU(@3#X9yhe5bqs&_eGTPN!l=0eXUV*Dsq z+X~A0qdmh$iEnOimmNo!G25?0KIC2zU%^%<)Hcx71(Vq!wBs+&UW7?Neukq9!io+f zNVj9Af7=hcqtCRAIk%x;?KzwF<7L(VP=k zYfP7xe%T_ickru5-)0TIBa97Rg4)+_cgcq~0VGr_v_$Kue@5NVN3Q6rPd?~>Q%_sA zDaj(jI1&n{G{)#G$O-OU`=-f?;NRXA(H;^V?a>Aj^hJSGmV;KCSFn$_}t?ieypf-AO zX8b`Dqf~{_?*Nx|HJEf}@TH}t_alhXG6<(l57m5KYCU+8fM1zq9;3bon$1%ImKDpU z!-;(d;5^zgG5Li~1lHG|=M2>xlY>9}QKal%QY?D^w`1QCk%n__g%j98jQ7PQ;|Ceu zA0b+XhPY5xu5^LITR@cybw(>#^!}z8X%-8dKyMYruA5WCsTgNkoJbW^b%TWxkD~UJ5Mmz{+VPZo2ibOG8&Q>b8z`E>qv|j*)Zdw|- zKC<`9jN~JYe4l>~YA?t(N5HPaWFJUp3JuP4bDKc^=ks>$iNWvk$t6fy7y+}{5qX{x zLe3@SCSMzfH9Trn)&r^S{pyr@Tp~fZ*Y5Q{fZQzs62A zp}P0O$gqsqZ`T@&K926SR0ky16A{z7Fg10dUOKEhw-SiiPABndzdh2&BO4{S!2upe z1rMj`lUo7)-($e7)2c2-)~t;;sNs3&m!(KmNX6SwJScygWpFP~NxyIi|+)hUmlPH5iD(F`aGoT@~yR z6L3Sn2onMn7mMMg`256X4`x<50K~hx?HyPtV)!ukBtrzQq{xsV6>1Y>)%DmON{LHI z5XZ+6I&FWCBm4p1^Xkz3xN!$;?t6dKAm8ky#yoA?u-qe8rPsvE$r=0mtA0tz!$dp8 zS@jFrT}WX{q|EcQw+M9=g@x)lUtcc6?IJJVSv&+@rr5*8Mwquc5sw^J=qRgI;R`0zpKW-Z{j z+X4HOW#oMD+|8(Q*~}CgYx^-SHF!gt=cN7mAx`jC9Yf{W;yrdfgIxWkLVd%66tJaM zAhj^a9_tkJ0rNU?>k7`6wSfd}Dpd+lqT-RNdD1!UsXouYEPtf@>1y=fxKL0uwN(+nvl$EV3wcA@2tt}Zo#-o(`h+W=_ zUx_?kjUo})j-3_x@@zFT6S6;%L~}-!omk=pj*;nAf40UJ)`d9jg|oNLSz+2M)$&iz z+ZbEYPxsi8S!&f-*D77}j*W;7{Z`F2ws_VHDeznOFgt8ot9{z==E1ApvV(gI*;bjh zqpZ8QY1W?G*KXhW&C=F)MI1Mt9hX_?%(yt(*7Ea2RpZ|cHyy>e-qz_}m9}EG^Epc@ zJgdBy2dB(4O4#FzxO_Yk z*JAZDkxcC_glI4-`Na`&C!CjxYkmZ!93RZ~qI(?!QPs<)2~AJ~GkL+2u8GcU$A(x* z^)a-PE1)i{n3$M&CYvR2j12rPMWzpL6KbI2W+Wd>Il)xhlv~!Sk%AgTpKzkS?-ZO< zI=V$g7!US-hNra+_H}4Zr`U2E5*?yS_%s{;i*YuablSAp*$yM~p{H|tjVcekAc2*) z-MAoeE;!}i*&=V{3p)^N1O%&n$3p-3cSuO?{ASMQ*Jk#@VT}?5&0S6}x?E&9+Z=+m z==n| zyHs32X(d}W=AFmpboDqcN!?hum%ltc`BGT8#nhd7$>s}oK$LmaNkd0vx+z+yi!65L zr$MUXq^5ZY#H) z=YrpKJ9odVLSORrG4d_{qQUj3*Mf*KCWBlCK@Xb~STs1_805Z3X6%vNeeq27k)Y!( zB>y2gB=RV~7^$FRKGd-CD?MQXYn%54s`a?CR>V}hBL`@QF~#{ioNILPZ^a@aV6j#<_9r9Ypt+G#IEf9 zaE};eh8PYpSnM>#zldj9TVpn-Tu*@KC#lWZ5+@?&U$?sq!wi_259k{Ce8;;wx^90Z zf_QipB*sUBqW93VO)QVK)GKUCIcs&#?v?U!uw@-0R8*n#?hiN3Qr`+KXlSgl! zB6s9C%VB?zBW2$temt{%FxI(E#nZ1zsJBV8mY0@Bx8}Rn{E6UPzmG6#^!FUwMSdCZ z1E-lt=v=`EJ@npY9$eyOW^5k^B{Rn`i8D|gg6N1Cf@N8INS|L|>)l9iNlflqTt}L5 zHOl%Q)OBo89;1l|PoP&ht+rn>5r1>qn=sosCFcX0P~tu}bd2nlbTS2e z47&bODOh@gwAi@!{@|H`Fw0U~q5&wZ!IkhSE;x{U1;5;Y@#gI4E@B8O5O3znY)_q; z_kJlZ#LO9jGdft?_lnnx~kT(Au}?5#Qi@k;PRB76_pa~IB z`9(#JwD#bJ9O(VO)OTS*4IYJ9qLvFgyK`w-IW?gunBXHwtr76aK4DLBrk$s!%PklG z+O~12b|KvVoxe*Es&b$(FrUr1iL0yhY4pu*kmKD#Fq=0rKYbOXH?=Owbq%HWNEQ6@ zP4YQ46cx2$^&x#)?PUR4WmCiB&ncV846tjzB(?WX$o zOEbRrjd1AfFemJ4FsI(6p_u*lyxWLFqdh^fw#FwZD$%Z=1-IX{54uu(gq!lI=?)kU zb7w>I&Ry(dBBnrZh!{b~)er9b-L#4&N;O?q{lJ$-aqs!4ky#(08J!`?G z?lotuQH=UQGsw0Au;Ejs^~ZwXc54B99UYM__T#L6xmerH*ai5mo=0QTG?_T;1F0*S zMB3s-(7nCArAx9HdA=pk`x-|d4^3s|&L!ZBiC9%jYAA|~9#&QT!ZY_3iB#}D<*p>W?k>AI`;tb0e)~LzV3N3R_#?{b?5UUGp?u8VA0z0uU6RtqW6bf zmG59N3P8vnOIP~buK7#?i0#@EQHC|-Zi;>f{L88v(x?e1N7V+zPS>dxgINMTSn8D# zrMaWklONd>)wZm1GD>k>MxPM?#nRGp=@}BmQoqpOk$yV@1Y~YccnL20m=l@L^VM`Y zC&t%hgxh@4&%ro<(_A<>CtP-e+zm+9L14IhEHMaP`r07tv(w)k1FqfNy#_@xxQFOS zHwhhJvAex4P6~Yf4>?&|Y<`0*c^?dcWy4+!Gh(&q1N;I`xY!kCj!FT-JGVj45KX_JccpWJPibu=>JZhh=SXLmF&#o2zQJ;Ee zB2z5!&}T&9F^Xi9fiuaL=$N@xScx17>pg;#TzarFTJddbq(R>QKr+9Rb4G-jE52KQ{3`Q)0bi%~Jd^dv(vU$y{x5z4=Lej*MfD^9*%^24 ztDP>x%~-$YOZ{?1tS_EJa;CHW&}C z!CMfUkZvR37#7g1C=SWad3B8};F$a$w=Lqm4(QU)h1wjM)r@%4(!^iIr-67p-E@em zB2qg7`7!^|d4yvBfY&GW2;f95{qPE}k(rwWQ&%GjTQ6(^kIx~v;TSvoe|qQ<^Ov@Z zr<74nB^S0TLlnN6$?1)4rhl^~Ra|BEdzSe=(?BDp0X0aj9~Zn6U4*FEc!CH$wjg+b z&xZdf$2@DVSIV3gMxDW@M3wS@*fpL{8J*6nr_#*p6^7FP^e06n=vVTYVZm2o1eRZ6w#!^{@XouuL9Ig|#BQv*V!yMqXa) zY2I~uw_Z^#-k7)sTcuvFa_PNucwn5(;Lo{9HNw=a@+X z4tOu)oZ}B-aqGbW`0+~45Tg{Ke2MGDQFZ)HNqrVdd-#so1A zl9I9eil(|DH4&}HCcNQo@96F2_|0dxXJ@|LiVt8l-rK-i{`#~tbccj=XS}2NAk}C9 zwHhkTlXzcF1Nio6AMS#_LBT`f5WSEWt2rWJET5wH96;t6K%+Ya=DRxL)KKTLZ#H?D zcJLL0?mMsuFDRQckXg5rw0#mYR$)5}BN6u&bS&Skpi^y1WZXtHdTI0Kpv0@$t9JeDX?vA)%k$rEu8=3-8sk9wt>u zUxZNgG#pN_yO#m4+2uT4G!I;wbC$m)1>)dKNVBFHOdK*gVF}p?-X=7buZwLNPHww$ z8?e3FNZh2tzJ&s|%j*|w*{qQYCBk?OP-vRqN8ire+;H7LhCV?@kTPT6AjTRz#umNh6Svn`!Xh~eLZJck`7 zGbI^R(;BoxV0Ni*1ih@dD_pg)m$s#-pav|Wo6o9z|!J(!eTr=C8vfM^c0JNL$K z1ZQ6DczlfbSo-+TyTB36q>{H612|#PQB8IDa?T|1k}vF;ukQ2bdk+b68HzOzfsht_ z(=O~ON(`Iwm(H4(J5ROWug3Ofn(fBJ0blI~dgLnZ-8?Jola)Jdw9-^6Wl`EXqO%s~PkB$&lj*|r6E@W>Wj@+Ef*bl0p0rnI^q$6xW?e0O0(Uhxbj&J} z)9lMBY{KRhd!xjU`RvKhpKn@}241dfY?ErHrdLBY5PU#>rYBVA)C?iXkYi2w)wU7s zZ1a&y>T+Hg&*aazp)UYhR1rRZywuoYEfojon(pilt*zVW>?e?E*v;NXsR((%ZBG`avtf>wDfmTpbu0f7?jaiz0NIJW&>5F-%<)+&NVlxH05A_!Htb(+5yl;Uk?y`se3l;TL%ZV;7pTNXx8 zx8e|}pHkN9mTA$@lsQ8&r4~)5;~NO>UYPDaW~rTh0BW8|I|J`?U;fq#xYcp#_Vwk( zLa<`SkW8Nc_aLcGojT|4D+Jw2x7fF#zFnedv)$4o_*S+&z@4Flgkj=yoDI^lCHY?! z+o}7!c5S&;Akn9KRgKdhkFw0>a@ODWog<@Z?5slcsGc`&(O*r5Up6xRO34Gv!>yf&rOv1kTFb{c>I6E@ z^M2Vsg{QG5?kCxkOW5*CFOPX%=tsN)x01u+g|R>c(~qGu2E^8lH6AjS!}Uk?X5t(4 z=<`vKmV%LUm$I|Djnt}EzB;w6tq{vewBy<(6ZQa z@#lBLk25U>yZc;Gzf$FN4$n5XR_2szAYZ6O{5YgJXoi9vzZg$^kOiP?%!SFMRL>3E zVL($tHlp{j%sMW=lPnxnHxDcoip7p7mu%i6{W)6vRtj$6i1eF}ySfi@&}K=0=+w>I z@WP4-X#91f;GKKz)MQZE>KHfLIa}_O=-?&wl=mZX-3KGS)Z34IsMZdtM4`$fkcRC= zU#lo7w;>B+Orp_86&;P@*KI7%?(Aw$Qk?P1mUr2kfvude+dWKA{4m-l3lW=Q!yjM6 zBV*#bjcV-IMFDXg=$_Uaye{uuYf2ooD1QjxTKl%o*JANiWIY{7 zyqqeUwke8DX2>&ZarEo0{W)K1_)#Qq zv%3(8AE?l8fqeV+wa~8Ra^}mIXEUa|NM0L1Lcw5uUteG3O#DzNB0%>uJKERUnx|03 zmuJ`IL04aylRtbCy3KgpwJ$r9ZbMl}1A=iw9uRfXe9u~xsyyre#AewVWjOp0#^uwy zG4gmxx9WGt8w9#p8*El}ce~?xwW5*{B)E8Zoe)e@H@+1&+7=5-NSPx_-Z1SWlIkFF--qSxl-U9LuJ93C&(w7%!tt+sOO>FPeL1>l5rZ-fKHtG-4= zM9j_2wYT4~gB3D`KCVlB`0&h;UNIPldZor3M@}I_z z`hpAt1H*ATB`GN>E$zUAF+o}~isB>wn>TO9$H#T*ZF0;vH#Qh)&d$ql5YRC&`0Q3> z;pL>I2Y!U&(_tBeB_$+4Z#JXTcx?$@bitDEzkLC@Y6ia0OIUVxVb%B+abR#zA)UX2 zjr{rZw_*ymwrmx^xo?KMjL-gP*q9O}dGgAU$@<3Sne?91Y&fAqHTDFS-5c*a z?xP`5{&9}n;3KV42;?r3Z$-1l4D0$ULg1`{Z^n1z?T9QQfbLB{L)MSpUKJ{_^CWfy z`6{&v^(LEn&b$8f^-iu)Ay_$MOP>LWrpfhWyU^OoDiNSp>YTfL7?JHjl-67>Zd;|f*VVq$jE9k3X!YoMOo@*TCrkQ3#=Az8C+e3rBfQ} z>J!{@wdbFsCMJ{%l-<|b{mFsgm#{j@1bpa+*t9g6s;r9(r&PD=WmiN53h#&BC`y^z zPO$x^E{_VPSW2LF1yJj#-5-%bAyXEgkdRRH>4A%{rn2%lMv|)WYQfs_F4ekH>$^$+ z{&d;XMUkiy-dVKo!)6#uW%g|xz1-b(+mjsHp!2L=gVl7YhJiQF%a<=jMYFb7eV?GJ zHYY1By8Y_piu(HUJPOIL{SgQ>G_V&KmRyvS-;1FELjTsvcG2}5{E=r_euSUF2jVVG z1BPUp7fGK<+1S`PIQ*KG?+U`ogY8%t0=B?W+kR;oFK|gp46Yj`TKFot<5O`(#qhuY z8HdrcB;fNfQ6nRxu<-E4V50D?wkIe%A&IDukagDBn4$)+Sa2p@+~>~-=ki}wSMDWDssqFJaaB3>qY*%S1bBq)L z1%)h6lfk=pECtE$nG?v;m#nj=Xc-xcE094NRUo9Lapua_yZuGGHYf~_F7WGu_6+^i zm^C*2v|zk}2F|K1v1nnrq>wj1wlBT(c_a<0G<#M7dA* zA!QI|HhMY-;8E0R1@{4%77)W!2p|9bq;5}4QW8w(R`nc*dAPY=z51DE*Sfx~f*3_9 zSnqr=W53x`Hw|Y+g+yVyED~hJ@B8TW>C>m+p1!}?oS)0D?H2_4ZG&jmB&>h@)ea## zX7iWN0di@)%kDcFFn3a!5*Qe`>T}OFY_DfLf!7VMrlz(8m8@*J(hht#-e6}Sz>SEE znSJwujqRv$C({#pIs0^3<*P*SF0|`262|9%02XHEyUT;?hx1Vt_Zi&Ua#{MO%Nd=m&B`IB(*)5UhIxfMVM#02W_u946@Z8K0@#B zFZRxTpRRq;(9kM){XUaeQHfLKoH$<~*~!ujYT3pln1;@o_|MUbuE?D1bBy`?egm;ic*H-M0t_ULYVMItyg9 zwfWW%Gec>1FFnGHQ(Jhs$%f0STJMTPp-gmifqzB#mTzB?*sbbvZLL!F?D%VeJ~cXl zakvXo7*(d%ul~eyos4-j>4I2yoNk?X``UDN7c1*lS$gAt8r0Q18PIjmAZIx8y0gjE zVXFtFqr#9~K_c($XMfype;@kg-)HQ`a;PZuQTZV>%WIve>?>~q-&AFv0R#U|1UKdk zxx^zpCSqvK0xAY#8i)Tic{tr%A$0m?A40U=1HM$#k+EmQMgK`1dtfGfHV(5me8f5bYp!ET07r|KFffri?d7C%H~}ETsib|FwR=!2#SU zTR#LEp@w(Uz`_iXPYkX&8da`n9U1>2FfalPeh6SW+sa*j$P+ABlzsoNMXH^y3X$PS zZ^1Rd$HR3O%gR0SnUs0lyGn4K0N3 z@Ux?x2O2So8TxH&{{SdBubJ+9IgmHs2O1@fi{;&1fAN$CcDKLMgo871iK)aVAo_h& z>#kx|%?|0Me{TH`sYyz}xLn)Kr6MYS8MJnOtH+^V^7cjh|1XBc7MXtZa8cVM!9 zNrG@4`0t}&p*kv%Vy$7rA`*hwEKIi4v;o#Nt|vYJb^``2v1Cv(`eo;5vs6;stE~|3 zA-me6|3fkT1{Ka9v5CS9SRfi8u#6NWHx3DjLT_sI8Qj8fzM8e1Y&oWC7*fR$wo(|W zpQNli%GLJXJ~bn96!|nYJM(YB6wfB}fEsxA_F+4O+_#&HD-4&N$0^cm{b+Vn+y>Ni zk_oZi&bc-hsZJce106i5BCnBN<~(_Sqp5lnTM`bG>Ji2 zS_93)Ji4feepDK*kD)rN{I9a=EG8e6me>n?c2)}?ZOwnCvuljXeEKsMj`9Uw=z_sq z3_pm^_9&OU@LLd!9nO%-GEz7JTAQA(1~!q}yC!iKb6@x9&9ckGE$YMC?@HH0(x3KQ zve;L&W{hH9*64$~alK8RZhE4=x?lI2c{f~ypG2v>rr#5^zrw#BmO^!6Deu>B^O(Pr z)4Fi7=&YTOUd>8xu(5af)r`^;$ZvfEn5+Ov{W=sh|G}&mt){bT;8Hx|z1&~(D3B-O zQf*bk=Ur{F6_qQ{`?-e7!{I79NS@JrrmdQu)_og;3we4JRLN*H@!pZb+V+ffa1~-v zV6W|I<+4*=)V&l`SA6YLo$t29H94o=P)g-yqOP5PPe`_4yvlaxHJpP$dzAU(z+BXQ z_0{a;u&eyds|8D|=<7z~2B1#uA*e5c!JJ``oOocd*`j;APiu5o`Z@UML4+%_g{!f; zW2U)+x{{xO>mYD(={vhzk873}WczJQwV`udZnrIE$aWLiZ$Sg>gaSIog!h7G4~leq zjH;dV2H~^0YIUAmpr12rCen0P(_g)*J-uUSHP#Kro(}W0({U;kzum*QW+Rb&TD_NE zcnEm;lB{lFAl@*hT)TjWgI>zb=r*b5UQlMc%I#)FoRnLoJOcAmsRLWaR`8eN=?;Z* zsFlkrjV?0}zz4CwgDK|7(7>U)i{9J*%bht-;{4&&Qp`}*F|?YG8ih03MS!L2FyrN! zX2R&@hTY`QH(Apqlx0yZ-s4515e`3SJ&E##8=UtS@AXp@S50=p@G>=_TZg+uqgK}d zu=S(5^Zj3OuUKlztcTqL4f3%ul#I zV#9pCV}tsU^B%Gzc8k9gV*3tbk;ttSLe25RTA9sJCC{p**3Tm@iAE2taretsyN8Q?{bu7~_vl25OJ9Cl)pDKn!Gg2Swe6kL z$aC#%Ey6f`{exP|+1$l=S#P2D)2FhA`cz2B*8qEw7LyUb9@FolzCoNJUnJF!7a;zb zixBTF7L|9u)Y~5RIA%Bq%!R~@mNKeRMppEQX&LfsuwFK=_(C-Ij}yOn?3 z{+jFZu%zy$hm$yTX<7d(5bh?sZ*f~rjdPk0gX+Z2IihBDyxJHC8eEAR_JO%2OP0KPDJJa>C>KGit2>d!s{tFkq*X#( zp)Q-Q&KxIAwu$Ax>te*mgNmR3oTWvmkq-NnosO8QCoWH>ZWUm(tRDnsfdy{Up9jG9&9Cu)1N;r-*l;+)?(4mYTL-d zVUsVXz7X32zoX*?1l7IDdH%}dDmU7!m&fy6w$tUcRO`<0{QLbPE_JA__@uS$FA-la zpF)B4>VzuUujMzj#ykxM=fe#|f_SKaOi(i|@2cm>uMu9|5XpPp1b5v*8sof#yr7|v znoYX_(L{8Q#psPk38aQf2TU>iu`%6+^jvB^Xp$wGTg5*;@mueA1H{)uR|$iLJnSW; zF77_`V5^iI#5Rgb77Fx&$$^X6&cOGZ5%n%Se?)O@hd#L6P!~RdwM0Oa?aC-5#?Z=o z`KT2jP&+rW^)zTLy^7I$q4&tBn!mrmplh&OD#?! z$?ey*g%@@j-D@@QH}6!UxU5&43apO8GHj-rMd?&}2nFBv*Sfp!2Pvc3S6?Qvm$crm z$|nlgjiAEB#Oyqx#LPK8USPU2%R;7OJbkR&7!GmqOH|7T`OHFRuwPSLwC%aYO~&5#Wn#KxGa0(r@nUTt=bCYb5?)p-IjB> zU{AjIxrrvYx_Z~3!zm$`&U=QQSnUm+>0&ef9Fg$kVO(U~ncNU8|MXr$4|fmTvO7Vj zqBEWn@bqIl;}NqNNW6}QD?S%F2Ni<<#NFGs5Qi-51+b~Uw)pD zr)iQG__&T`?P6x7)i-5+;-uRYbK1^QGb`HM*?4WX5SovNhZl&%v-SJvE1BUjK|FT zC2Lw{|J1AuJ=tKZv1W~9-KWzhqE+X~sE-Y!Ql_L$^~XZ07I;N1r-uY*-T(AT0}*>R zfvFs0t?*lG1i4%y{A+c4C+G;i>>HDP4E9HFiKi%lF!0LQW{^Qp!{pdW2(NeKZl_5> zwqz86=H$WQ{m;(cr?cf8TLX%PZSa8c6k?VeD(lPUg?KUazs@ZKk}*tNZDX%C(zDn{%cl^EvIcXT<{* zp?a=e#HSw&4c8l1eLP{frP=x3C*jANO# ze+ff!VA$GNc2p!eygq&Q+O_yZM5>_ZqV}B8;#GU_QRzfD0BXYIZP85PIJ}b--Z02Po8(bN=RR^Zonx!C2%l zM6XKerp~w*JM|+HxWj;P8`dU_6NE$E>Uj;kzRi=2Uiof17^fh@Z{^Z1Y2NNjA z1H}2{N%g;X=KiG3e58wwND%Ne`X5sFwXd%)IXQV_!w8*UT1JN2>r~8RniMlg^kE%G zOiYZFloX#{7KCL>PE0JxH8?PkI!t}+w!(15YCxV#(|b6x-X^{cb1 zYjAK-uTE(l2GzkDKSf&7FFab5OKdI))7CFw*l57QKNv2Xcwcr0wbEEzqlmnGu;&u) z1oCTurARgf@2AsBXj);)#gsU4(%@E(d@ZW$50(F6ZB3K)wu_7-QnIopBT3H)HwPxe z^K)~JU{(x6(BHWKdga(^GgGehp6Ry%Scr53%tz7)+RKp!t2p z_VG%_4y!ulcCpn0S7(U-|A3M)G-5P<@St+CV_yJ3j!)Ox@ZTsnN~avZJWu51?7BG{ z-XNC$aG>m(g&_jS&iDA^e#L*JYZEil?c=sd1#{`JL_qi5lzFroQd9`eI@R8JR7Oc8 zN$gZnMcN#}kv7z`#JE$`e&3lEf#mgNBXmEz8chsXW5KswaAb%4>RS%ufo6<9 z%S)_KIWiJIdC>2VfV8YLSwVZqTV#6PT?EGi1o`A}Nr}yf2RJ_+?bH0mQge=c}@2;-vF& zim!5P_FlWXh`)}f8Z-)}z2m2Tt@qfND}s0@-PlRmMmn$uk zfxA>I?rn3wQf?LZ;?wCDrjOoWKK|Y?8$`(uysD}hj&CWs&EBGFjLus%cod9x;g?{^ z-RG#9W^6I=PWd`q=fqi2#$Aweaq#f^tu}KEDLS!c(b4nTge>aK`Z{w>05~=ZM5Tm9?BqtU-kZw{XB z$JKY#nD$jXuQHV#x58b#8XYFlcr@JlH%_9pX~3P-GsHl8-zRny^n;=jDxkKjL$~MP z)$Zr}>u8**Bdy2v{VoA>|MF!~TkX2CRs%FHiuq=jdxbV)o+-!j94d83my^*EUhwt% zacccWC%N~~G7;T7nG&$w(@krxinXYIb3xxsGl#5aZY$o7`ee|TAJ->UjJXy1my?-s z3qeMKk`2_1mZn_;GNp*Il`_VXE}7-4kN`;;{35+&1&wj-GYPzsF|+DFkeT0L(k6zy z#>Nzi_APP(Qw;kjR1FE5iY!3X_m#_0-?B;z~2Ps=xp#le;6h86ZUAr86L?|a6ASo@7- z7x?VU^LW?ik084ow90Ah>dHA7Iuv(LGb~lIw3C=@))!y-G%>0C}%=JjQS0TUV zsb*(7@j)-ExuNXQJuOfReYCpzG5{D4y!F6n@|X#MioT&zS{He*OuiYBO#b9mls9(F zo&+iB2lRQco8;hLyC(>-VSn*-wOtOan0k%_~_ z48D8B8-%C_xs%q03ZDbaSlkL5sVo*F#9wpW>1^sOoivQdjRK}mJ>KG7h`xe^y!(5v z>9MfJOcQHS`JLuPS%rJeiCQ}BehdXyD#ZUMlsuGR#knox6UX;qG|O;c%#i#6KmS>% z;m-|rjiZpK^PjEoj}v}Vi)PXGP3))&@AiT=X>g&T34@NvE6_Qq$3*CedGWU#iDfr> zJ1*4&Ex+8+GdwwWre>@zJp|T~|w(|3)O_kXO@{&xCvT5#ZX^?W=%NO(2Qco;#U&8sS zFqIi(TSu#%adX0!>DVBkXP8fMdA(sCs~dDh(yR|3{$N5N(oNU*8*lf5y64j<_K@4R zKCim&dru!tI)K6fcaS;>6P-?EH@xOqwpR@M>K zd`67Qop!?LbVjt3bIL!9Ut)clh*62^3UlwU`d7Z6mxt=f8j1(f zaCg2T1r6Vb?JFk=aIDzPV zu@kyqzg|7|b~w%g>YiT)+u0Dyq;$NHYc(DDaTkROzj@NiQnGhSW;kg!s(F4H+kmZT z7$-);clJp7@kl4jX^67Md2qJ%oIPCCg5&f)qRI0Zl}S*o7&|1&Wk$%}rj+hQcO#@Y z#IJ>}p!`TDO3IiidoRHi^ZkEVz~WDc@LpevtHoo()n-GzRQJ%QSnOt>W7{)ZzM_*z zUx@SYtU=o)tb80n0gBg4&QYzvAi-6Cve-?YdPqIHr1d(beTV2{eI&tr$&w~uyCx|5 z;AGV|lmkBD{k>vX%N6}(cbnQ_EwJf?6&8>LRHpVL<{t?n7IhL?`sL!2mWylH#v=DM zv9=W4VRgcZd-gW%J_P-dmhKg-zH^V^ss_6j3F!c7{Z~42k`6|Q0^F*{OkkBw54isA zi-C>M8@h)_;oC(9$o#7W`2jb#{JM;)LD!$fA^%l}mV2z>QCzjqlYoEQP+?#c@Mnf! zmsyPx#NV^yUp41#^eOim$a(4Q|HcV-=lLPJ{x>z8!PxEZsmBx|82;l+xRMJVr3e4N zB30JJx?eypR@$({`2Vv6M?LQE7jOU;!>5S}`H!WW2p1#@0^7OtG5fzU9vqz4ST`(v z4#M%6}_ewOdqOf{uvVb!)-hUa6yii>K zltX2=QBIZ@1M(O)3J#TSv)kEPM*!1y-@t&!&3bTe1gYbA0W2tYaCFqeDNx?)i=nlo zVPIeo5bzjGWV^7@)m?)1cf7_3wBe#R2eVaGWo0ssxk*4dIV?62 zo4MBmd$22H7J9J$1z27A7%SV{+S=NZhL?ASr>42NxxAc}i7E8&dftxijcJm~{lYj- zC6MOZ{i4W7K(p-U;sHy)d>?Oj#`7e1c6L<8-r~1C{K6P+-u(=_@;cw*$;T(>{sWd3 z*2!ZK1JVUufv|$LmDT>76v)pKt#b#7joxxbQ#W$ z|B|Mqp>f?u8?EbkRLAW-%rmPz!G44||5Xy$UY zF-k&_*Q*yV{QgPSZgV$JY#iBp*|uSE+!|3p>?gPH<3nd>r?@=#*FC77ECV-{=<>j(v)7aD^OFX_q$sAi-Ter8j?(Xis&;tW=0i_lDUq3$%uoh#= zEjf+~$JZ}8P0A5d68(fJ60CuQB#`qzS&_fwTS7jLL&%UAC)vV=HAtk0cne%RkO?^L z7G?QJbL}zBFu{<7!or^EuH4enFiwKNcQ0e4ELzJnP%AoZc<=A;aY$aTrI=^tplM)n zd&AP9{QOta`YRp>6|lrwK9#$qV%ok%s<<6itoK-JhoANMyXx!)5GE}%0eTGZZIRNC zudrWgYHCaj?$HPQ|6}bd!>a1Kc2N|Rl#&KfQcAi(K|+x3R=T?z5fBg%LAqODgVGJs z-CY|+VAHi}Hk`TjdC&Wv^L^*XcU@=w(!E$~&7O0Nao_jIk&4Vtf)j4VZEkJ?+bo&< zS~X9F)v)=heybD{3oF+O;B}ns&akR<5CCDMkoYXi|K^(T)%I)!13y1MEiEkr!#efN z8Tw?a`s(_+`wik$b=hfi;wxrZoQ9^dG6)X+S*DtEcRL%^p)xodBk8r<7NlluxW2wV6u4kFi_7xQfs08fkG#Tc@YfpD9qP+v zHt^uyonhgl0RT-Aaotn{9wD`-hQ7y>-@ZMQeO@~kf(S=cRHoJ zPZ)Gg00^cL3?6_Sa{ng?-z2*Qggan`JM%SQGQ@82;XQcpY&OhQR#LK)xva7L&5w7j zt!997@OYwKEakqZf3v3TG{|8lsmNIDR$ zK!{Dkwkwuf-1b5ceqJy@SNBjpsY=1T{rjGyFjXwmS>VriANb$iWId+1=tsvvm=@3D zh@d>zgel?T+@U}jsfya;-G&y{BqqJEZ@1_Y{h%O{>(s2&(Y5r5+OI0k6PNM=zT=87 zAjYOW;hxFJDE>(EkR#VMI;TRuX-Y%gh*i*fXz&^NadjLMC-}lGAJR z+l{9E#5!qRW+m;X?o9zNyHxKS77QwfoF2h9B?aL^nv*KQU#EMs2?Y1~?$;Z>tv=tc z7QCQKa|xveueuw0UA_u1FeoFF4;+9RO~0tk0zB#A52-QWm%|tP8p`&<=Uq^Z^aIKC#?~aKwyX-HpFOzFh z=*m3JS&@;hK&(2#*h%@}36Ll%FBFuF;1^Q2TCESc2bQ zMI%{lHN_*M0xc}$xxw>(;Oy`;|Q!CnY zH6x8%t}Q+!6^krQa*x z_mM~L8!u?SFAIwYUm@={G zd_%U^gB6M!LQ0kH`VB_64F%!VB|B!Xl0WV6m=4BG-{fy@DVSB9F`F!8xe93w{8x(6 zX3GiR?_DlFiWdeG_qsWp3_odaIXQV8WL3A%YMf5W8Rx$G@$htV@(){xM?cj&Mus5g zWr>den+Rp~!H$E^2bxEdq$hmpBtq$~J zG*?sd{ou~CUc}bTZSIMY-;f{!0lSv9)v7ulF+muF0?|5U$RJXT`1hELtR8a@A%@IX z4?kA?9EoXsT>*%DNd>RYIX=*-!arogQ&?L2@ zcCGKNapxnf3$dfyWfsBLDDx7&z0N+F#;b(-KAfUmvuwk?wyFaC zxK9H5be(-Wr0L|%h2%-i82dJEe_hTi>2F?>R_pA3wZ1pH*e%OAtWj&k7j&3dPyOG* zp9Q+wFRquV7nelx$gBj99&CTyg0v&1^$K*4$^>^aYnjDq;y%Alf6Pe*Irq7LdMhF0!ev>VW2jgAF!w=! zpuff*tGnoHjV13gn+46u6bfHv6E0$mS<9V#LyF;CoF)f}LIugkzB%iDyPr!Eh2sn6 zGH2s|@^ZcAJu(Ort4clpP&2RY8k#9yAo;G&kd#wOvckk z=ENqI_i??BOYXw{QJCXg@XJ?6kTo7H0-qpH^m;lWik@=(Bo3Y?VOZB*LdJ5Pqi2+= zr~Ag*@2k+m894EI#!$s6!G+<`d%k9>2bwn#W%@@7`n&zN zAk^~M5eV;P*U{s$Sk%2q8>nStgQ9*cnUr;l@Auv5`{l)YPcD_J52KVjwQ{|=7NL*z zbbQm`pZ@7#An(Mc9zxmjYBy~+p@*gWp}=88`+0R`Z+S}o{E*uHi_U#5)W`sy?ZxB zS~YD!9wnK(p^#l_y3T14dR+Fg3~V^2@reADYG)(^Ig+n6S>(*Z*Zq)JWo`W_A#2pn zqtySc7jRU@%w`%wkwQ0rc5WDXd<1bbt6mdez|<%bKu?9Xd-@ z-!9FzUT*@!-TU4-=ypXWJJ#U{CBRjdnp~s4E?UFTK4x*kN~_iB%WdmDD2;VK z_z-hNS?crSO-h)_pSPF$by?Fx>-rKO1*p$aDMTNWtSu$Jpc#tLq5NDOR$B)u#{SrUDw?NRb zq^zHuAsq5-XW1!y&)N@rpV~R?vBsO}X~$cki&n-_TN0dG#0R*)UnLq7^jRf6`?NQe zAx^>lQJ482PVJcW`Np zj=DsqTNFdy`rYpKxd|)Rj$It`^^DT&;pj5j#Yh?|YMxUnsMn#GHOufd0Hnn`rshFK z35~{m^*P<>y0s7fSvWOud_#a_2+Iw`r|fNrL&I);-B3mEqfysk*|h1j@8gD+l$sBE zJjEeZAvk{RKZ;zo-sC+kzpQav4bIEFm~XP7@J02n57+;Is64tl2~@V}uJ5XoH>4E~ zdp~JaNQbScIU6~^z*)BB4kL|4let3ODzILy8u0YVb(;E3JZm+%MS^HUL+3D#@vgP` zIypld_-jh+!Su|A>#vKvQZ=qHu@*^eDX)kJQ+sIMv(fbw^mV5XwTJwz_33oHBPxc=URA#d0UfxiN9$ zmhpuU)mijmgP#kcVBwuee&4f$kJ?ezQZPNsf${5_1s(sW35-})>z2{;;kBilMKNWi z>a6-+S4IUM-755?nn@9BfVHww-Cdd+SvZfKlax~w8Yj;6WfWHk>CJg^C*d$ zl5<_`{^=zpqnvEzb-kAEicM`^rP;jO^m)9O_s$N7j3`wsrg?~28kwOQgt)_jof@Z~hIh2v@oXnsf7X&hk2w8(R*X;3ZTNJ!x|MRp8d#N1Uw@EItM|A4Pf?YkUCbm^=YEZZkSmxsA zjOaq}xO^OCBmCaCvPQOkJkO$9v%zpfI{pP$5Ay9E?9$-q=PD0_cIXWA>Bf|e?eS-` z`JbmQKiHYa*Dlg-h||)v75&tGYg5n38jcdH3rt?7euI?=2>#&PBb=xIFO<9?Kb;pQQC2FH)T!vDG{?{I{_)4nSRt&h zKu+S3ETTg1=EdT=zp@;yTTW7jOVGD2M}a`Q!3=EEgI{8~l>^5f9H-3m(lt-^ww@%< z&YeSI=Oaw=e+f$LBo{E#%BCw18`%*_?!IZxOrX5L%ru;-P8-3u~ z{={tOSp;~DR?rFozXJ#!IF~>$@Lp<=irz&0I1uDGTvloKR^9?Effr4V+Gt6y!_1b*mv`x9M?d1Wg$0S5Q z5I>&f{<9?Ka<=ZQXgu;k*$(;^>Zyga^apof141l{7pU4)~xB15{=~!VKDoBi`Cp7fg5~9J{bSl zXd?xV2tk-P=i;N=F)i$Qv%b-!nyo2-}x9`xf z-F2bZu&8eF=_8!|Y3o{YdQX8UT3*tBTVupAH)rs`6#keRVvt!a?BM85yxpJkRK080Ugm>Q~Zj$OM3yI7S7;*;Q06y?C)?r}PK0k#i zwFb_2+hADw@WgDtateiN49 zGDhhK-bI8gm^<=)np-2bMtH#gGA-CV|II&V$;b??3ESBD>=8x=(pmJo7B$KpJt;>b zqq#}p@p?C1#03uFUCDdDWkqq>-=&+?aQ)j=g7odUB7G#o zy~EsTLUvCFIIWp&&2lJ31idKI96!(sn?4g0ROWtDTkD^oA0QtpdJ|ViJDtr`F|}dC zeU+9KDdhI@0UQul>V{0lqxYJ&s;z2G2cz0CHpoaQy@SrSoFFD-#pbe6?*3 z;c}Z?uSq!(vjz}seD5t&*9G{Irq4*?S#|R#tt_KPE%X}PSo!2{^{qsUu_g4E)&9cJ z=>*uTS6OI-1$TZUS$$}^`T5r;^Y(yRb|am1SCdBM7+}2WG^Ev)yMD;4>U;-8(IP0% z3oa&Gq^PC^4kX4Jm5v^e!8T_r%$Xj}u5?gH#LV9Sn92lkfAxgcI;WTTyXeXNab)83M{5VGISo!!mGE8xM_IOjsQQK#;aj zTwGk^(U8z?7FJatXUvBW_hfB7>`rUvtE_>PMll)=MbF>TwVFR#Mq$5)gOko-+;uc8 zrZ|2I^%s-Giqn?KBW`Iy(xj&$y6#|njEszAXFt}7SNR+e5U>XXTc>pG2Zx8*nVF4; z;DKYGZlR(%$SK>2EB65BxsIx8&ZHG!Fb@qDko;=C+-+#xT=F@RFI6Y(?&#{OUsGkP zaQN9aZ`TmHmGc6C(tzlu-1mL}yjw6PvwE6Gj)a0$+swB8XDMYA6$>)B%!dfWUJ9n! z0gRTPpC6$JE(vf6UKIeyXb2?sHT3TnYoal6Z$83nJ@-qJBZ&6VgfORrO zS-MeTIG+&Ioi2HU8Db6;y#xTiyM84~2*d&U{%OkYOmuXQ@a#w!3?@zG*}=080!w1< zyQz9?1qA?m=J>M{fIJyqCn^DIW{o|xy6@hdcOa6dy5tD-Bvq;iMHYOH2Cb@+)9Vo@ z^Gs)%p%}q!CY&P26RLXDktcHU^1j>Oy9*U`8fR7U@bCa&?Mm0ai3mUo54wYJMP(eZ z{s~<|+pRrS&_`%mt}mDojeu&b=j;cj4UI&IL%VtHusx9^IXejIHF_SQ;ZhB-g&352 zHHkiYl&Nix8PS0?hueB^33K>MXeVye#yu(lYqBmk97!|Gh@GkQ@4+ z>;GJ2ftC38%A6+P1i|7T>qnm0e^k}sIwxqnDUr9%u#oYHRiHVZNB$=g#&*B7tORCE zWlEt@{N>ge3i5U^P~a5v{(D>5hoO&uBn8!r;x-Nn?CIYiuR~HMuAeX!uD(E~IVeg1 z+uz92a(SEYiA2{ek$XsIIrSKlp%l>nfD;F%&5wEug?**8-2_=ahw~rOFJLb`R&NC) zyj4^F^H-#z*y4)FXvWg}7IWku1q{C*d4k-t__CxQBY#-tqJiIQ+y*D6eYIum)PLau z68@Bv|IFmxBCfmgEtImK2OfWZLdn3&VgO4EO4*N$KT+o8_<+BEQmLghD&`dgVh zxNQrosITjIjh>^(+Z%r6BHc!n{&0znw{DiG(fqaUI4q#m;l)qVqqX5GjP5QGmpF_C#Xu?fek4aR2aG(d}4e%#xI?p z2`M+F=5^v?rT3nbKYU9-aTFSvuzRK9?jX0AD|Ufsej(;nZ`1LT)cK_UYzG~&C$<41 zZe#7uK`(>4x%06&>29hS5KPgT8!w*Fkta;h=7t|BCed}Rbhmh|GzeR4MQN%|>?7l~SuhNrl|3#vMl{tIxcV?{nJl_&(P34HZO52q0RcfZz`7T?5WHxm~Bf`e_vl+zcR8*?lyMp z{k4fC##k;oizDI%i6B<5K_*|y#u>$>)hNwzo}kq!7*}ZTbP1aA%$GGPr=K?{msRE2myvV4BAbw2 zu4fEUx^lG2_}Oq;WNj^2*P9>`t07-WZ@pDP`lq<9cfq2eC~~Oau<$IVv`^|)=wM%C zn@#1`;^*7Gk@}C8UzxsUG;*!)IuFrlm~8Wa94C!vXzP1oPMUGgNUG4s92BNST61vZ zEFFAO`6&B^=dprEr-}9y&B}G;#g81iw;XMPkeod!(=f@$?swSw-dqRDyT#dyqLSykFK z+ue~_lOlhTDf+I5KWiddQ{RsAnfUhlFtBrYtgKywSs%qI{_NQgQ_&HonH=S#eXODO zd78F=#CnH5DD9#72ze2Lpz9|I}E3!V`e?fawYVrchQB#ZWPccIK|SH2I8BQ=+>+#%8a4AWQAyBU+KT zg9!O>(Iw<}7lc_?AH~V<-)&^3@2&j8Te^xbpr~oe-peE1A%I4jb!PmVP}?Uwhwj!} zpV&Z0&2Afm{5=21_oI`Ed6eSZ+XgZT+U(DdN^YpG+$O#I_q6@&2?u*FHk)=dcrTX3 z=*vr}Z|XMBMuZINd19DTjuFec)m9aL7hW5uDT>9Un54pp-2!Tg^vl`L zC3w-o&qQ;Zy>>>`_gJ-kzqR(5_)0^s*9+_^O9`LFBUY@7qibyBpuN$e&!P|~v;H*| zOwpn`Y!TTUlm*e;(*Q>WmMZ8NPq zL47{qtxu`_8BMS|>AmkG=702ST+6jD((_urqjk)!43ZO)B47MgyO!^H?L;@MWSzi# z-k2{CHfdz<+T3q1#xMB!<4sVbf_ct>_?XMGVnf=7wT%&JvCpJe4S`7UZKjth2*^BM3+dEszk}7Nj<)B0~t*n?1M=SU{ zPH?5@^3opky7upxLI;}9MNZ)LM5iwuoiUs1E~ie*H&c`swr3a0cAF7FEbH%-^ByF5!&5f1o%}__uP4+dRTpZzhs02!&g|Wr))>1=t=$?;sx0$ANS;<_ z{z24?Ctr>LjH4ik97Y?`-j@svWjQ47ubqw=xuqd2HQCy_z7l{Zy4NzN0d3 z70Ne0J523q$AxL>7aaCVH%k=0q)O<6<$HmU#@A&_XxNS^;H}pCdtebn72$7P|3KS# zt6e0Vq0M-|ZMW+8%FW?#*x-$DqHgO<)#(*YYKo9oANOiBIke#>DY<3gSt60W;YEdY zV7O7Z2!04|e8V*U7+?7Joa4Js!(r?Dc=vbj#yPI!cYJr_zdT1B7j0=h>T0y#%|Jj) zItnzQ{ud|f$$C4V8@2;2`(Zb~bgAl|lzNI08t-bJLa&uIe#I8AuPt0(N&Q`isMcT+W<13%+>inWf*-CeOkr`cI-VRvOmaBGtAG8h_@!ksQey| zgOPN7!f@JQQ2278sZ6YC<>a*4cenF9w8^h(tSU8Uyt}hY@egD(;N%ZxgNSHD%x+kz zqGN*{qUH8;A~P(}JHE_+D=M(W<7RF6=6Gsd7bjVT>g$pV7An}au3r}lc$crQ}Y{&IgZ$35s{0oKw(BGgW0 z$JYx|KSUcJ%(!Yx_{?%rhrqhK=Z_%DvOvY`0E+N^%Bi;&$Gzz&Rt^sNyl zG&XSf|8xC6ZKD6*r~CgfxBlbR>7Q<)oZXY_4fFNpni#89UMc;EV}jBw7u)Q)vO(6Z z)=@hfoAc)&1m{P}o1ma90ihDDf(=~1CW{6(AXz^4xo$m^&2*PQ)nV#hbARSIiA~h~ zEMcWUcBGcHjxlcvX@I$)OL!ozDataz(&?kS|91IP zahaUk5HDfA`9qSrf;)BM4wLn{&>CZy~%AW+pZ{7QX=^^ z&EL5hUkm*W$T%43G?WdiX^pqalE@3Og& zTX)~?lsC>&C9%rFIkstWMy9*IpA*OONf`ynrl66)#?#K$N9r-wtV2O6VvAm?i`CPv zE(?6s$Ed%p-ljB6SLJ<4Y9YRd9!+B62z{;Fx#7dh&sN!sIi&J=SJ-E)=XWKym2@$B zGT9rZ-nr&It>D099=pEx7g3TEYrFd@7ktIG`&a0X(OV1}tqcR5lQm97A;9c`56nqY+p<*huqZp2%~YGl^n&6#n{U;+OE)WK}BMu=>v2Ah;zlX{#HYuCDWQB!QuOto$YqU0oP zzA?|7DjhmM7Te%2(woBY`Cq<(uePfwbyeR67yBX8pPHQx=D4nUTIo~13c*`Ci%(a1 zXUztiO)(RwO*wKHK1NOKBD{WL?Cw|bk5q2AnWo6)R?;AXllq~CaOby2YjrJt3uN2X ztVQsPHrr;KT4IBGwoeA@fnOqzESbkJlhrN}W5LvAOiEZz+cO`#PAco#wL1gl#Y%KC zmOfR-+1_0HZ@HOFiuEnj*|qoWcpgV%h4PlpRomIW9rs--d;_gEYrq42-->jHp`3mC z41MU|)X?$f9>wuGQ{d~0mF}RijU#HZovRQ5I@_M9(*#pqLLSoF_8yzpgu7ph(QLJ9 zy{y*?#k6=K#r40k3QBR^2b!H;E}Y(I*Hk#b<&C;JvLsZ-$k@Cr`Gcy6>~!kWhG3~j zX~ijxTPg%5R91i3tzd*m6D1;h!#p8^^(9nFG6d@;b}-;z*j_z(o{~Xz7JBY48}AgU z?DyS4_ag36mAttv?gWo~jWQ(2c-)QKs2?)j!6&(JA52#GJ0pcmt`E-q-h$GpTpwo`F? zfw|FbDMN*lZY2jz5)*3JqP()FKx$?N-5z+m0bet?9BIf;tt*I4OmyP1a=H1C6U{eP`lNPB}H5U#y#8Ezkw z`06TmrlkU935cF9)bX$%uW8NgFK)1Kf6Inp$&tQ1Ci;3?f{0WIN70qSbZ|H5sbuDh zFXnIb7$_uqzd|X`!ygMW3F!Q>Lw%@$KWd)_Z)II1!HjX?bah(Hj#@-fTZ@9@cXQX# zB zS~0~ns6i}-`04?&ZB7l5-H!Sk+0R?v>z==@JFWECV}uB=^jEm@D?Fj0wer9se8+`j z#KKzihuOFvzOT|7c6R*t9P9#~xw>JbeOxPkAI8_w;I-H*&2S2Z&5?SNUn5S;*5d|^ zKIKmgPv(~S2<5yL`vx;PJ<%S>*RI+qMYuHD-$q~Ltv3mN(n(T#Ieqn;v_@CMo}J^{3zd|jM*8i(2K1ftIXr)upD1G* zx4lx=*db>ZS#(SV?r0aPCcbOCymt)AMEp$PQv<^BkBP`DdEmAl z5?NMhfpyIy(;AjqD^Fa%yhwTg8_sR39X+z6+SaI0qUw37TRNh5$d#6$aDG%ZTA=CR ze48jdznIGs_EF^9@m{H}u8{3r`K@Sw#A?#nWja|Ww02lsuV8d0aciP7Tb4ncF|kFZ zs4VlmG~zA~VAB=Um|~{=HsG<(U!h%yJ3xGf2+?E7#@xp?B|D|mSas`_hsSx=IBm$D zpO})9tzFvWMp?CaizR093^-KAw z>x}JEdJo;}=e*rL;EvPv?DvVMs%Du%gGr4fS^jcVR5m2Pdd48a!1zH8kGOd|RpxW! z(=pr9S;+2EYg|J*N&3O)VGx6B5V@CwmKu3NUPZ6s!UNxv;(Q)m*>X-S4yNznGz9rV zrQzi!5Z%v24@a}_X5AXgC(jYMM1&lAqRGKPF0k`c;Cn0F*XLI(W^|3lmo^bG8B0N0DpDQIXdpGqF8;7xF z8AMjf-#^~Q-deXX@@0sNt9-P`j6Tkzc>&~WP*A8tIRIpfFIBAEt6enGc?4bF%Ph

w>+LJ&GMSk@n0{rfpc)4z?@RmDf+{`NMfDJ8Nrq(J=}IbH0J5 z=Gl$%je)4hq=hMMjG9t0MhafD2eDBKq-x+KBFLAaetm(k8(dZ^y$P1tTzKEwsuZlG zsyuXCRaz=z_QF-roywYN_GTsPbJr$Q$Nk@Z%z2RvT|P`T)Ub@o)s1ok^-@j7+hlxV zbiJRyUt+29_c1eSouBplCa+;)r*P`j`cLvsekxWWQ|JzohKkx>I}anE1kPO!|5OQSR8h z-wf5c5u7&nYZ2gb_?`G+D!wLl;Tn;2L77s6=*IFpg!vJB*b>Gigi3WidniiB%Cd6m zv#uQ5CE2HbmuNsqXXv8q4(CRpbu7>Pc(A5om?=xMy@lk9@jzaiU^*))_S`OB7!TQk zA2Q70gO4=U6z?@{Mr$JMH?sZh5-?cN{5sxW?ndU-jju0N+HFkVTotGdVWGXr-ueAZ1pLBk0z)vkeMSmzm;J$r=?<((Fg z{opb|Sy9}qT?NY^uRA~BtD8z}u>8TCQX5adxNqJ)P$@Pz$)31t&PE~j8Ye$YW3U&xou_BwmIS~hP;YKbG7yf1en?wY(uBOS^t1sK!`m)zjJ@lOhtuu3LeUani{QeYJl}9f6yAImM zed`VfgN~27p$7#A5NOFu4qBmsSo|m9fv^& zqG~M`kjv7|kP-j_h70b8y==?0y&V|fN)TrF#^R;Pht%T_IHmfJ2twf-)N9aw0@LCz z!BL5B?Psv`UC&Wn&x>rLe!9c`>lh3lE?|*0q4}Pep`>pBzXHe>t@u@~sGG_gsn_GR z{{!9LC3^$tZvO;f>lRq~KXgxdrR4qHhP`Wmpx{P=SwgA(YU}I007a2dLKr{*fT}r9 zFd@K~Fl(0Ph5;5Uv4O{rH_w!Q?E}DvYU1a_#2FCl2J!tp%!e$1@%qb(enF>FX9o!M zz!-vw0f|%(=yH!_Nib1(p3IuN?=EZ@%-GeaemndbN?l(TWjzM?j?&H~XW=7faWAq; z3S1m^#$a(Y3D2KCAj{xp6pyOdQaFN3GDph13VU9E2aM_wdLOmBiptH;v$_D4cF}w+ zHIkf9MR?T4PwpRnsC?n%CJ6Y)_QHXNj8ZFy?}baUfaMsiEFTV)Fzl&4ZweD6k<%2Z z=#EP%7?+W8lW}tuy7hs>ZF{C5-D~sqmaL-U@ZezH>-WrJepenCLJPXJK;=liSVK8> zA>k<#6Hs?{XQX%wN&~Lt;s*`^#JRb-+$jVbxhh}T>bLozK1YaC==_db*vmtJ_n4fR zu&A2**&gaVeCW{#$hR5%j__7ka(%VQY$cz7{!aT6tG zYcMT)q6o_NT^?p?BBClF#IAV`0`bcA2S|x$Ky)olimPMMtKF}jw{t#5N804zqJA%@ z){3cv%{doq_n;5wA-lm9m}dq6@dD~Vbni}_p3=b2rlOP+k}x&J$$%kumm{Vs|#NOB_$=P0pADW-kOfry#nPO@mhS zgdZH9j4P=g9Ul4t7G|mN7j1U#X0SOZ99L5PfN7~V;eLnp#1wSGGrWU{qhCxpSr2ms-SPzWj zb)<(590LDd|NpTC|GoF|e+FB)Pm1!K-K0v#RZw4FKMgELNv|J9bedKC!Am%_uO9`A zXKAs-%jR(=z0OhsDc8^(!hVg0-9km#M~ji^s5bzlc30ObgR;}3qgWYQ_;m8M*?5N4 z#pNKf)~(pSs4opMM_*CsF+F z>lQjfnT3(@K}08f@ir156u_pWqa$k`%)!B-f1n+OEG)a+$6j<4(LM|AwY9arRVSd} z1TOthQR`6#wu=SHjAoMO_8|bW4i`=vI3=36_O8 z*}TiwK|dV&S!>QNFS!Cvz7`c_mtp3rF#Tz=bcsK2^5wfdW?U7eka9xIWhZ^`~9 z8z~vJ7)w3#@dJ_%MC80SB%N$}q&cI=tpdRFzyYC^K^vmcWB>)p1O7HsB=CTI#=m&K zcJUH>`En!()oYB3AsH!#_mEAG1fW6%I>EGm?s>;K{lE`MKft?mbamy10jjkI99DRE zj^P{QM{9#Q=W1pEOsFV&o-3Xuqo9C9bOM&WZA7Pvo?at>aF*gnX%y>M+mIqmmWy2k z^}D+tLS&(5ThUOSn;M1$&5if& zLomkHhcoRtoJirv1Zxzc*gZh%oY=A)d zfvxkAFqJ)6&-)YD3+}vRO8}w?0V(W+7$Eo4XQNwY}Y}+Vx>nVuf5NjUR)MG?|x;)~s*; zncZ0Kkerx$5nEOH^BY+1tyeLJ4;MxH$KB)lq_O2ns6#vQ1s$_#P55i1Tu;JY%l&?z z6{#IXvp2Dn{7e%ukUuOEAFEoz^(^MH%gRZCV)WFKWvzN=Fr$ch&VM2qHpj}^SF@lQ zMTS8ZIv3ML`!PaO&qHFarol!>-L9*bvnnL);trfT`5EoY87JNFDC*vXak8y3cS1ED zNZ2chG}~&+VRP#K(xNd=%Z&XFJV(UUh&}KbXEuSukyOrGFgipx1BsQ&8@!G;Ddim# zKIu&WUB4r+#Uinpm6dTRK%XJ8yu2KlQwPXG0&MTP890I?^Ny&1wHqkAl;Z;7m2DM5 zI}=r}O`!153^0{o6CbsmuTB~~Q-Ds71`{G47hKUFI#s+AhwcLMk8_Y&*< zA_ufwO7&cY#VQ<=4xdQNPMY_tFFZ-{x~WHm93IEqLzHSZ3PXzcOv-Gf5E?SpbNP^`hrPnM~2db ziCpIx4f)-7^*}P2ii+_Qa}0?PEK-05Zn-`#L#9p1Qc~jOFzqAs@|d@+sgojyl$Krt z`B3C604R+wvPftxI2Z{%efpH19;xZ#yfzRcLkpBKk%p6@_YRNdpj!h1Ac_M61I1|! zHk*L}hKK7t=9RF;y5!{<^3q~OnvlrMd&_4B2uVkR%X&!2P+)Yb64#3@xlU~A_!?jR z-6hqSX>3sO(^l61z(hI;(}1TljTC%UyYK zX>(`JL)VQxVc#JI15@Ry^SGAUD;V57f>~-sgS|?)q&u*VxBOo;O$fpxtE|W)eph58 z3Wh2~3G7J8dhHix;2(Q>@OHLUH)YtuKl-?3MZ8bmVK(B{O%!H(tCejGNs{zbCx(8a z*MaI6siK!_w``S?k?$@f(x8T#QqMXu3W@MS*oO~vZA}L^G3AoBx5t$otq>0-ZhD`D zPE30kO_NUT%`ua2zEaw`@g4q=T1!qKj@;MuD13Qy6fHms>Q-%PkMN~46;)NH#C!KG zou)>v4+uSkm(tvqwAIw$gM3iotNnH#(VL>;QluG;MD2QoGfR98{ckeF^dikbupu-b zbdj$*3FMKmH|~oA-60_BGd@0ER<}m>6e(BJcy-uc>eXrvlE4WX3|Om~61D9EKLE=a zO-=|S&`OKYg8E?}QKVrGy$X%Q9GJDW@MY58juYz=ETDK|V>wJQo32_sbr-9Jz8V!Z zJH2e|Lr~XL0XfdQ{U45R^UNdqwQVvq`h>hb#9c42K=U7@3lOc@De+9ikWLS%K5(J^+?m}BytZ_Q&aE13d=Q`K#oZtJN^PcNE`@dnc>)C5R&${om*1ev)m*54!)Xda~)GCz5NlJIU z#hI}-ROd}w^%LtPJ27x53Hr?mh%~!@I2}auyB|#Wg*^(BWmqByL3gHEV6Kn`0SCJF zrKzoSQo_xBE7`pIZ;}>dCSq_yW<(N(CB*a~BBih>f_xPKJ6-(r# z(gT>JA~W*Lm_`&OEWy3emG8zeN7j!SGkrE{+MjPcIE!cJt477|P!-HBW2mmqiB0{A zFlHU0O+WP!2Ubd>&r0IkSXK3}cb~7&8kuwPaTD%)GLKm1pLpL6yh@O(GxXL~b}$T$ z>B6rr#JeOa4q%l{5-hZ9ds!e6lSg}gu19Y6jxl$g-qk6^QqDx`F9-aLb0`5;YK$6dwS=R@|mCBB1d zLU=|Cvx}o*NJaH~ zZv#qaRHxaK$gH{XO<&GcNoK9qEVGy8Z%y56qoL6)l@%+v>NXRE7OHLMU|ahPj`3s) zWqx^d5~V>t@6C|YF?iXkrdny<;{kcUQmVPKR+y%8R z+n}%a{^Ig>9Tw|@$UhFow6z$gC)-f~)y_hED!VImv254h`NHG6DkFerdv*c#&LP^i zCynar3n@lvQ`!9_=-~|$4n5IP38^i3YmT6T!F?Bxs zftZ%_1&<`E>!r5IhJ^87%ab)iL9R&Tkn=jWgT?%laTjkBC12Q+ah)@puE`2yV}-P! zyw&u-T!8m#YKy9b;U{HaN;*42$?u`n6XWur?xEQozD-%!W1O+c)wU}ou{y<|Q9(-c zJBAa=7L6GY%AlL-%lknjAVu*X@Um)yJrR67vHQDb=lB((#--mgF+~t6tOe2~Tt}-i z^unot-|qZfd$+cKq{-Mtvg)=u2n}*aApVUE{OB?v4gKap3Es-txKMxcK_u(52RS%h zt@?cLL$Z!&4)+)+Fw<{t1E_iEL63j{2JW0RXaT6S3jj(&ccCO&I{cuisk3?6za&gO z;lIlp0AbODMPEGwD4`;ap1b)YHD@q~9ceRmRQ(OD8T$?l27UT;SJ(k;&7Xv02F*Dz z1_}Vm0uB5eA0NQf=I<)6&I;~!4?NsBCiY>-K$u~tg8phtz2)SrwEjkVmlgKuEFEEd zk{5FCg!>M&2MoYeko9O8q4$A(C-{F+|KH7GDJ zFE6jcT34m6T{}d5#r2m1}*49>6b2BmZA`sz!VOiXO zWFa6xi2Ob(zHIyRUlRUqEK4@)g+l>H_+<9891S4W1|a3Xz+ced9Wf`VJixC2LsGw& zLJzEjPQdu3nmeD0ClV;&JJBWo1>(*>#sbqrm1xIe?#LtHM&BbgQj`IFoe!X8K-3-v zgMEAxA(I7g0xb7qWFP0BbeXXGe-H&@mF)rbv4VG% zE}j^BjDN8)%iUd*^S8ebx4j!OVEg}274!d!xuP{eqbQx;@oXBjtvPm=V~BeEfGE7T zmnK+=ZsE{lr`)h=3fn~@O^Pn!``=*%-sioO1+?&yG19P{^?{EL5%q#zUDgE$x1EyOVA0?%K zpv)(RDfvNJJBvYOTy0#&B(h>s+$@8dvEoy#Q0aMeE7%n|;!y{aQ&&^gRv~y!Qdl$y z6HJjrtgXgq%EcaEW_6=^xSIJXy*Uy$cL?`zm=o8$h0iBRGk3xw=pWXz{`OAS<|J+e4VNZ|Km$hZ5hLeD4&mI&T( zcG2xqlTgpy!y|b)N1K~osLc|$wjMh+N&?{)0RK8Zj~lme25RDT9IT1DyGXQPxS_h=s-oa!6Ns~t zC10|rI9BQ-ezqEDT%}Mf9&7cLMgjAAA;YU*ept>%U3%82P6*L5)7m@YmS%~4D~KR;jACLrE0 zf0uC8ex^*I{@?)vc0ZO5FQ$KCZfVjqKf|+0p0_N*TN8^Mg2>Ppm~?sc40O0ySeYF< zOd5G|a_ty6Vc9SL?It}bfz+-9CDbS4s=15@sgayoVy8oEU#e)c9R`I_kgtj3#Lqpj3zJzBh z`P>|W5ObReHLz?os&=gL*|n0$h;Kj?Sch%T6(=i!%vbgT|1O=tg(MfPoemynp-bW> zKiS7KDbpTZ9c`2BFwcZRwhg;C9{8n7XS*7J&E_`-Cj25K!;_ThOuj@R$2UW#NPVO< z(PA<$ep!_T{{B!VrKw+hcpQbKH>s2mBX6e`tkeBq>7Ok_MoMT=G5z4aU!N5oCi%J5 zA{zyBdlvCYwC2vn$j4*x53h+bG@tnZ{mBOdjQ zjFWEZER8V~hrm8`uOCDD)s^Iot2K9B0n^RVVB5ggWx0z?EPVNG#D=~>eODcpsivMc zJc{#jBrY3~LZ7bcBSSdlDfL_e_GiILo|#!)$9jW^O#cT+B0?1Sj_S43>`T1}xVLFG$Sh!3Kh2KMidE-=Ppzj|r z1H4kEN?D6RI{V;Ft0i;goObeS8txg9U#!O;DMocQR0y8s0(Khds{VrdRcF`=?=o&f zmr2?amXvpi%(~PqY4@nxxBle*7>bn9u2w0k(k^6=|J}cn1&~4)Qo&tToCzoV#_)SS zxg_`lzyxFApeH|D%80=!>%{UXC8Wjg{BOl5<%;w#AOiDu;rd0*us|PGhJy6iRAXLT zV+r9u2Id&*=OLY$Dw4#nBZBZzM}?~E^x>u2@Ze)=j>8}Idy+! zAAow?&luh+B21i71O!}9JSBTY%kIMvAUe~^;$x32ARPEY)Uti?M(YH>#)`pJ@TRcO z(*8*mncT&(EF%v|99~bbm6vMjS}>L)!3I z(8sXx9Hn11nlJU3b2Z_$!he^5l~MKj+>LjBpIBqR_tMB3`tq3)I-paDwV@--h@?%I zM#=(pai2y_>MHB^t@90t${W$#MiK(BUHdQ-|XbZ~EuRG+Vf>VT(DK%SL zG5#@E_|*F+Qfq%O<$v0Dp{4S)y!z`+0_XUzrPc1g zZ7asNu=yc+MaBJARb|B=x4RL{d=5I#2Wm2XE5u{Lji~s%i z2Z0JzYEJN5d=-ztkC}rT8(Jd%(G8MJ{-nD8D)B48;>&i^cGW390LTIq=8Y(`X+H-^ zu;j2W1sz$rc=VM%M}Kg?*;>m}ri4d@?Bag2(x3IQ_8e|b&QA!*p}Xk-c)o^zq*Mm9 z@HK&TV0kIygdctR(6Kyt#kc%L%#_7DU`^h2)o^Z3I@FX`hj>`3JEZaRj)*WGd%sTw zi~7cEz7h0YDO7q(*UOsWX_aqH?q#Ku#bf5B{VE!f=U*L+C{NCQ0+x+?l zc|K@)dh+g_R0|RBUS+-pD6x+a6Mx0=NlZi+wW}FI0F-{>_7-a@p}w&qU--G`$JP&QQefjsbv7^1w} z(X8GZ8#}wOuX|eV7Q0ODhTdg>0o$j!r*XNT#=n2WFFFh(@5&n{6KlIK-@%_|{50dM z7#;q{b1YT{IyZvq$(?8=&E7E9-56B)!S~eRoPIz}+B6fkdgvbgZNNM5<4S%hSQqyB zx_nu(AMi*X;e-i$YKWU!pne$MSX<-hl8A`Vk9wTgKQ$#uGrY&IcXM5PK{xKHw+(b^ z{-?Jk;8fUka@+;mK!cXsn20zWg)PLd&hH=JjA^;E-a)nlQKPb-F0qp~|H*Ulw12<9 zyiQBbo6Gv8=QFn#!q7#{Y6{KtCgdn2nI!x7le~!JTUD$94h9Z43J_N^0iXBK4+9MQ z$)R;}l#t@|ffS#;t`)Sg?%XwIayp!dNAMTh!%wzAIMkDpV%`BAA0zG|wLqB#%DM{+ z4(01((+{#-zdF_*xQ4Vvt6>aGn-uvj`a`-G?EQaVD&=Tc<}l4%g>wQI$e*d%XczbJ zi+CNDR-?Hy8<=-PMRH;bbX4>lT)WTE{P|Yx zW$~p3!>P^Snr_f&-EIJ(<^f?fvdt zkdiaDpT5ZumbHG$z(MLFMEALn<=C#Ju6a{;uMgK?USt%G-SR1%3KDDH$1g{343rbT zcayGl>mqU!nA>6(PT;eQUxe(ft@ZwppLge%*EmN z#%bxc?HU)(NDS6`KdyUaUg;D#O{E=8^w0c4ik!;}>%ChC-+sydP5-1tK5@iZJalF* z*1R`Uh98Re0&RnMM*N|mQO%^a3r2FaLJ7}Mo3e${vj$3%)Z*!ZGMg_5^x212Wkkuqq z@t%luBH@`FSK)cyWVmC02p?7r0a?83d^+E-S+7TWbBODFK~10cUT_;}wh*fQy1~}V zP$vs{5F}2?tbKw?WNo}?P26Wq-(>bUou}R_SkWk)J72_NEPttb(tedL)Spo3!3awc zn%63_ZkiIZ6GV-q7oug74QQRzd%900xm6QxC$kO;yku40(^1+Z*hsKFbt#xVK7zRQ z-Y(U~ZdSmrwtMqxM6O%6m@o#&>Y73+QC6tlY5j?Np;bJCxPwRPL- zdO|0F!en(nP7Y5xwdr$FySjj=n)hBFxG@i#6y2OBS>l%TI(c_nUt=2xp3lzj{q&rM zkb;(bv4&UIgU5*FOQmWs+9bI3DY2W$14J%MSSVP$SQ}mFja? z4$QPaG5d@HdJN7>d>4E0+OMz8TSr#oOEh2TS%iZ~2?u$i$6m~`hTJC#?#dtD z>@%}gDrL`x@}h%Zcx*T3f&0MMqj4Eyd6Db0Deo!ubm-OV*1*B#w2h6ceR*N2i<6D4 zls}t(daeD*VYPdjTyqqB^>TR#CEu{S%6F?%qE~O<2MHl4PIBsuwWRcM0996)Ec%nB z&z>VXiA>qK|M<-H`J0 zCk>`cYPBXI;f?t*=Y2Cn?`p&(C(AzRz<4!&_7!HYn2$5n_pvS8MT^c66H#8G>z&oVftR6SUd;cNrxg(g0jJs3?|PR<8~I0j7C&K<}_YN%VY_=PM1J?FJr+ zoMro`3n@%4$R;K8pu20^&V2r^nLAImF^{ZjukTEdXe>z1vlqgr!Y zqniJw%G%7=mR??oNkwZ>O1<_{BUpZqHp}$X)A*x_y?w4ooJK9Hf{0~8I*Dz>%u97~ zEiQQ_s)7-1842PGQje*q@a+6pR{au~^SEcrZnGM)ID_WHNAw2^bvx{?@QZSK{T-H+1!4N>}SFU7&-nPuID_rOctBl z^0A^pt0~4tB*ikDY-Q&xbESrD30ZbCTyOV#phap`PI+PEtFhVrjaiE-KT#a!iUtC> z6t2D)wI14HwW&$GeO!CWrur$a19)~bJEb`J`ir$I z-zaE_ND?nDN8i)A4%uAotSOx2q4l_5tmLPlG9Y^ra%El9aX3Zr0O9RqczAs4eVoU| zq-$hjZP;0$ttU!(woN4%RUO6#B!>Cp%TV{&o^j6|h;p$iu3l)*cB%a=F)E8#3|gx0 zCR$r9`)Y|!a)MvR&dJOB^P!^W5-N`oHeaslGOo8vY*uM3SyzRrrY7oq<7~?voYnXR zvjK`RU@bo)xNb5C1j+5sG85&A7L`^bYbS`exOE^qa>LN9dHz?CrbVWD)5O+6w!ddv-lx5yH9UBNlIM(Pr-f zDVrbDqHz=)8=<&lY@dAV>qU};<3)^=1ciEp8XZ4GT1VXblAbU&fW!gUS?TF;_i$6# zjfVtSSv7wgEOIR0gw_>+y_aMsAMUliIm31EW-#vEV6|u@l!(z{J1vTFJ2lT2vNe5( zN~7A>zL;2?gnGSp*-a-g#7@PFEP*p0HTWaEUtFz`JG|&SY%lT6BfYG#3_Gu@q!pe$ z_?q#jIc^r?E#!^kRBuG^+;u0`lUu~x?Jtlz<=OJBR$0pt7ix%Rn0qX28=kpmTnLN6 zWhAZqev&R(2hk2QOalK$}N!KL})#_{FC;lkYUelvn^|GbN@k4&NQcFrkp!Iig|tG$Ag><0be-$?bA*8w<`E*X`)hJ~Z>F zBmk#2trW2t6*vxWSUsJ;Y(n5(*Fa_Uh~UZCVLSU1ao3tDJw5YDzqeU^;q)$BG2Sk- zZlA-w_uxrO;kijj{k^N6e4y`XOJ{Kb84-y)T{Ws_-gCPiz(}ZxUn0n++ryX?r%%j1 z6e!K0FlWr^FaJ=Kd7LjDScgl2F`XnPEC|E6gtQ1u6Q8= zy^(~T-89Z$Elb{BSJ3Xhb!gk^gkNt1Y2ddv;mrh@=s!eAy{y;!d%w>hP?s6W(92&S z8kFJMEc9l%vzdL(8EUvxe}(D#e3LRG+uZP{XWymk4Ova&h zYlPi`K$A&LFrV|1+ogt0B0fs^DT4Cy8YhQ$I&Xiq*=MI7*JmAp+R)hy__l_PnmOuZ z55FWnUX`5R<9l@R=K$ezHf7UpVFwkWs~6CtFK#$aLC_oxKbLrS;a2>VyLk{*fm`!% zJO)<*huC==rUpGbN6|$oV25F&v~;fg7Ah(zZ+mL?QAdEOnTTvyhu<9TpRh>mncpsz z^{2Es+HO5q>#_CwW!Gy*9p%e$pO;7Yq6HVjd@G4OI5H6GB~ZIURYyCQFS~bDBgRMB zMUMZ=f3q-u!|yko`jPK%A*(s`u(x=(z7`9&tTpR#TpaMc>v2|=3+H*rO6}&bA_4Oj zxw#2HG6sv6#XhGdPBGdCd4#;Ztm{Dvu}+Tt-psy0`r|`;SB32t zfMUl&6E*EQ)y>RQSJ&0|U=bD*b9M1YtG*xIJH6UIjW{&!XAiiM@!2AKpmx1Q51XKI z&I_Yd9W(sy2Jd;3hV+FeuYF(`NmovvPzauSUZ%E7pfcUQU-y|1FPgjEWeuedoQtmR zG%Dw6^+W55&H0hv+3oRp@+JJ%>x(JoKHzWh!tZY6SBsYPj>y4O!7h;=r@_G}<<)r2 z+0D_fv^F@u<7kzC!?bS#x%;bQ>q1b<0h8if)Ez&!&vyT5f5~wD?~C_n=7s~eE{FR# z%-vT9)Iid(;B`S84^G`#2IZC1**RDh{dQU8X*K+?Lhazt73qcrLa| zI)8p9a=l-zmhP~zP{M*-5NF-LI7C3t?10C3C2&yldBNOE0DLw`zhL|b7I88!Zq+4IN!pJI1rUbL;ITYSHAJF5D?e~uIc$#Qt;KuUpn&r#uHxP zkDmtc{zfsP~IL=0w*B)2^319efaR}p6)YYpjGzWS9UpIl=XJ)V+h|A98OaC6Od?lM``%f3r$wL6Bh;`22X1S9Xe*nkHfg;0vF^>WK6v?_u9C~! z;cSPMyYk_Ff*y_&Y-aSd-e)(Yi*f0pKi@rjj2C^1HerumAC9d}O@E6~%w?hETbk=M zZYqwCJS>vUnbi<3HtPzCVWg-BUUK!;RE`dw(PZq*wANsJqWyggy~y--f$UMUqx0NG z3}2JT;YJAXK3wpl^3199E~&=|JlP z)+HoDC`Fi#>mC^~@5T}0dZ#URjrCt|oLHLrKhhpAv6bsn;e&WfgZy{gI>?;dOhxGU zSBuM?x1}nD*^SR)|IG9_VmeZ_1xSQpVX8uC)#I_wxwvgCgsPce!ucnwe@xo8cY%0( z_Ny3aW(fK`ggA^#IwtITw(K&HzLp(~W*%6Ceo~6&+>nstYY*_nQ#*7fI zsVh33D9ekqvz|E_It-|CqeC>j8k>tvOq@8_jg3E#GYhB`(uZ@f!kye07QUN|rIX&7+bvvWAS_gz^*@_Ci+&r^W;{?2-vdepq;>E)5oC#Ko?g5H_!PQLRHr zUZU+&0_jUc%_hUch}bzkr=#8WZJ6y=b3;YJBI?^71(9gy84|fm-UNOrAfN8h@-u(6 z0n;`}BKW)nZr(fcFgUE=J7h#J)t?o+D3K?9`=#eN(Ct!zgyVGcrd=!}>tVwdZAjj1 z3h&~Vdf{CQ${#|Bgu*k?B(sAj_C8MLW?jLZYOK~xoa)~aKWFo;j)r&EW7So2H4qjR zn91kb2{qlvBW*}&tf@D$GFE!gM4#iKKU(|5*bJ`rj9h!9uH5R3BfdnEJg_KPTX_4@ zWN^TuGPTIn=CrWhW>s1}vTk@!tLz+aaHla?UoOQNIRZgUvAGp(Ny&>;rb2w%YvZ}} zm=`w=TEpz*$SZ33^b!RUxA#d^4`U|O#WKW`!!_hz^4Korhb>ubrmiJCk<|%La_)F! zrUose&v~1W;?z2F!aV77_)#>o^mg}$l>iqe= zyE|cNJzX&k*$a6xDqBrmQlDnOFjlwfQnpkU)e*M?_8Q;mIH@647%E3jS#(;?&k)O{ z#6$M^BBY_-%gFTvRo1BKxDm>PntGZ9%HN3^EZUXsgF!`yzf-~(vzfsBnGS=hhbYXX zt1^S(_4RBl*Gx$JdYlRW=hNvV)kLE$a)RKgl5UMJTThnrHQexVnfoU7RZpvWBVJYb zcZL>07^NVW=_|(--8sdf`@D&(@O{S?vGWIYX6Nee1*Ed28;|OBQpQKI zvLx`9&|hfU&Ua3rrl0Ny_38yZ8BgYYQ+-)ya5QTgf5Ak{?r;>U$iq!Z?j^p8j>YgO z2fQj#%-~)@Rb>sHD6cyyww#>dbX!^JzCg<7t!ZlV!MVu<)+CDQC#K^sj}s?!;pGO% zWRR}KJS+N~`kiq%)}-h)6xkq`lCH&;yPNCJCTqGoV78LqMw*gAjN^hr6?8slsv53N z4v_X4VVY@eoieKLlzF;0-j(A;a~~xKheCsU*u}afaI};U{nd+Vdg-M?Exgh!twl?o zk~TSaEW_@^Jvd#^>6`1z3a|wjKoqLq#J44j`U_Zir3mibQf-=19#drVXKO2e-=!~} z7vIPIvX^YAEdbYo@@xj{I3UL5Ou%QW+T5l!!6k1xW%D_et*){<`96j4<)KSd@eXN< zs`~H&vLl{SM(=5CzlVi_r)ZuGZ)LNA{8>eiKsAW7nX|@3^Oj?eKB*Go>&f-GoN=x& zca}7fvx<(tkhg}7Sh&0p{*x+&!&9uSQmWcBjtIeAV%O+%d9W)B!qKlbHRNJIN5!LcZTBT+C z_Yn!8!YHr9=sqP##(-)7`sXcX{Cp2#t2>$`I9*P=KwFj#Ct9|?_1lNS}lG0nZRTOKkl zPCDCH#1=H0q>VK^>2u=Q#bm!Hc^>p~gP7M;em0K?F#by*Nov~<-SKnd=VDI+dKUg9 z6m-0Y*_0}dvdHF(r1#oZN^o)H5Lvzcsy7|&_jXl3@k03KdF5W?4u{K^h5%f;`onLp zQpi)jL+VS6e9nJB4O~`Rz$Ttus5|GT4b)N}9601D zmvC|uGEb<)2ruBz@j#Ex)Z^vx=}`mOYSlx7ihi=TS_l4cGL30|r#AFWd55DlUCvCe zt1Oz@%+yx`lQ9v0BKBBx#zQH%czOAc|14GsxIQG9RThIbtkqu^m(^tu>dsrA`ERS- za*258_K|QQjkzF)3wNek=aLE;Clk*o#tzEvrKgx45HvmNk7;0tW9lP$*08lzeI|56 z!52_NDbl!icyfE#3;T4$m5kn5EIjoWw`|Qb@_Ob!z*oln+?`fC+*+eG{t0*1)QULo;HG>@P5M5sc&!;jHq?{ zGdwHiNT#!wqLUz8LN09A*SHf`eJ;#rEPZ|2)Gy}t8q7q?X&fOlTW*&#Jsl+i;SWCnUXaR={WnP1z*YY7_aknmNl@N!OOp7># ziE-m)xuLbWRta8?yI0{xw=v5xCJTJ&g1wOddxsyxt>jNyY(VxHPnehU1u*}f$Ev+A zJ?|Uw-QQER&!ke9#zYt(Tct96e5~Jmch>vmve&1Nze1$TW^r=D#bLKo^+T-)cdpDe z`7ne&ZeF=&jiYPNqx`mW*(;n-V1n#6uJyW6jf|ctzT8Gjyk*eiQKm4J#a>h8%n+Yq z6EAK2#?0{4K^95yQ8U=BJa#lLF}p;IqppCLvKx1W;Y81-~5%%k)%{AR7D2mA=xM@N)H5fvEznQlx+-7{hsT|5sBFI zeL>mvtK9l|l&9$yY2lKEPbQN|nS%7Qc_oYb;5r+Phj zr)XYtsFwEX&zFzK<;b;Zh91wZ{FUf`xd7Qu> zexa5H?`T`B$5JyIEi(pSbQVg98n*n>%e%_W0U69O$}n_NQ{-vgNPtYO^|au^4idw- z-xc5`#$6-g@^;Ry9n+*l2+f2dkuQLYFkNZ2jI#0RnLHjT>|)f$eYC&hY%Zq;F^5=kvQ~S{&Ls1Wb|@X3Qxny-&zQ_mo*Dx zrd0XkzlWIDwk%GNet{pCGMNiln}Rv$WKXlk2cF0h&{{6N@@zI17w-DTLskPLv$f!v-|lQ8NAW^65O|=+n7o3 zFxJOc*6eFKu2}PSUbErkFzJv$T(a}5!dfNnYIDBlrJ9D;T;ozi$|OjUxdbvrgs&cg zJI17)Sj4v((8}UbZE?ME?BD~N8K!`n*>hvFB)i&`Hl1>~shi2qe6qq$CuCB2#MAxHl+yV6FAt0hHh8tYM3++zOYpgaob*5nQlQ&&RP<4X0&h9 zJ{y1q*U#6BQC4S+=c3bX1Y#5l^A*eq2OHfwpAEcR_tvIfSLoQr!;fmo#J{9tHS^`2 z1+TWfcvvU76xh=-&ehAjS)WnmarUDxo`}z1y=N>7+Ol|p+3WS&g=1VOI*HpuQ%v8m zw1moSrIC+n95#6pL2sSHqFc7XnmzUi6djf*0{7O=My*6M>yA6zh8VU*`hR)a?j*Bb zqDdjIw*o(|AW(Gb5Y5RCyk>pD+-PcZYoD~ zJuXGf(+ygWM)AVoYb^1~Zp+b@RNO0TGH^D^A#uXubu&L+;~cNG_T&M6%`hv#Fh}L{OIYN27&}`p)4iq06Oo60ocyudRhy z>-L(Bx6x2~aeeP<1)?pO>K#(j@*5`%F~rOuKe3e!4oR(4*yt zJeAwX?2EVOE)=BEFt0W68{sJSBvC&PT;ADk*VdE3K3uu0u38)pkr)rROo;est1P9y z+evF}fxzwN_!>t_S=`0)C|67QNR=CORG^OaIiRk9&1*@o@bi#~tmg@3f`$G&h>!Ga zd6~H6BZ@A;_@(4^p-?0E7oknqwC>sO%##lOcke`4*E41Jq2nhUS9Sb_Hy9^6I{mKj z05hz{PI9SCox!~QPE}#T$@cZx5`e`<>+iSJGXlQ8#_*MuHQ1rFf`UGZk581ph&@T( z?@7sUkqxaJOkiuT+fub>pPa9*+yXlM4W}$Iu4LP1`Zk1djISu-hM9?$^&HzwuqQqF zAgylj5ooG(G zlwn5Yi|Zn&rJaBeZY7pg#X{L!v7sf3mox3r<4D4;GFoqUk?|E;1@t{{I7>= zZImc`wAZhJmGv>o703lNZ~Om;Q(pKS_niw)Ec;TR@Hi%WtmgB4s>x1Pc6O28t@hbl z^aY`v_vswe4u(}Hu_fvwaQwz`-Di^S{WT_U98zx`t`sZ+B~>`yDw@Ckb>;sFy>?+& zlgn#t=i9g!4&OlKN=jXDO7KHCA9-I7QPI@Y%(aTsaWzgb%?!Vnu{qia^WgRGHFx`# z>56JkDec{}6w$7Wv8-WRMoLhHNqaW|?krf(SI1>{xG0dS#s5_u>zo6fdr94^u!AIy zJ}mZ7tEDM-#I`L}Y*lv7gnpt2sL55)>>E{bA|)NAhQ7KUo6+x(sxo8M;NNFi1XSGx z+0o&(5LaWb@zSxF;cv6L`a)^mzbCTfuj(YR zP1{-PhmDf1-Orddb>aZ;GPwGg#Qu=OIY?IzO zw7Ay6L>a~Qkp895{IxX5On*<4e`!(vFi6^8)T|g1ny9~pJOM~&y(swT*hqcNwu`Na zJ93$Sy4n@rgebAz@=`@|C3dJa=~Z3M>f}0iO;(V5+eKFm(dtvFPzCwA3a>Rk5OyHp z>O)#BAQ9)dD)t7XKYA$Fwk9MxxI5elwKDMD<^eU0#EUp1^{B8Kw&e5qg~m%!qt5>1 zP;*n!Mu7Sr`jh&<;-D}8;h@$3PaJd};h?YO;V&Z66r0`Na0Qr#hI^{Z%~r<!9xqjLk(g~0v-hY{P0awc#yGja>f_9Cu$`+}O>iE^i}0of)ms8I;Umf{prI@}l=l~^Q>|r3P^bjdw1e6)5U`MK^lF&G{djy)RVJg5uUoGta;pA8x=nc0-u1Ke<kP!$cl+Z<3o6BLQHn4y{C?o4jf;9~jM96W7gz~5IO?!4yq=jey6V>4wlk;}G zhY_u)8ZkHyM+JWstDZJL=jkAGm2plH1YuiK$3dgUIvLxz^{v%UXFYbjJ*ZQG6kHD7 z)vMs>{Hn&lmhGvvot5Y6pgJ&8QHkQ#zK#5ULNmwzOEWwDLo@4~Nr%a*?&oTb_^P{( zgA|EDRrML}7MA^I3Hc?aq@HF4VPrbf8b79{#JkqLo?=O!HVK4<$y2INVbyoC{0Z4z z|HtH;j-NO0-z1XHr4)<9HZ)zv2S@YfQ-o(|z`C3c`l<(IGtIa;H#OvQ1OlWyD~bvB zvw>7bi7+ghdA-=cA;&j(wDT9v#>azYAT{CAR7ZQHy6sB-XC48ShBJTWMA`j>*gknD zNrmE&lKE(>1pk<0>x$H_;t8L_hGJ=*=x^f(suvVicoUvSlan68T( zC%>z7U(GawIX-o@?ZsT*@U87e+89rQ3hhklBY4Q1+tieYXk4RrH=gf5 z#Hp*A$KlKovST_9bQYq(Io@xxL9F(}qoTmH^T303EGA1aF~J%(>HI-@N@G^FOxR^a zFzGv7T@Y&R+1ei}yDcJUH(jnAuM=cyDu$V#BRo~^V!Qb%b-B-7`tqV202zwj>dR#X zC+_lX3#N*SfhM+!RcgZJ4r{0Jmy!~}l)0KGy&I$Id2aq$R6Xf=w~`Nv6itg2_4y_f zUSK{n-rma2v{i@|pPS*{Ta})s$dwySDo+}FJwJm_DPU=k&#%{<3UUEbyHA^n`S1eL zaamy=VxAWV_jcP-ybMvL<^8@nilYS+U%9qbYJ`TVBxY*U^ZDn5ypNW*%gG~D+MM#O zNcHD=kHzwOT88*=`=nXv)aSpA5fyg%YB+SB1$D%&#bR$mJB0kBs{0g6B$Qm+6A7wx zjH9v%#RCY|xiQ)#V^4{kPA1<4*n#V<4$7IaGU6HI$~RV>dO+Nvw^mwKtB=C8n>{s< z*|yh*O%GuSoYzRH{!@-^%)}ugwmjFe498W5)kWyPTmajy(I8T}pc6cHF0l<=ceeF> zBW!EP$wQzbmoh56x5&5bcrL7^Q}#;beCgWa^rSW4e43`8X=1|d_4+J4Z!4Jbg?MOR zO^Ghg1-Z7hxOsT(`VOV^L?cahvUpYM_J)z@Y> zqUr{F7(MHwPb&n9w@Ie2a@p%mT0(G2#2KfN!kT&x467bQ$*s?u5jSKauI?VvyFO%7 zw((=54OD}TrMBZMonzt+bCgit{|!QU@&ATUb~O_ms$c9%8l0D-^wI_ik2t@rJ6{Z_ zZcjM(HR?YyolP$Nbk2G2k-ee7K=pQLx-tkuTy+gU9Ac5e?y=sj7b6?HhW%a7#YN{T z<<(q0hug~M^puL&neuW&QPuN?bmfdUO_Jhw>}vN;yz17|IUlSqS8?+Cb#ITGYn`R~ zGQir2FC*%&rl!W1(cdgL0~vdsb7CSMRjKih_s`haxHhDnfuzhEYJ2q9PzAL_`b_ij*XjKxSkVX+c3i zy3$(+y@o_YIsvJnh0uF%frKPC%=^xH-*fJqbKW_3-L>vocm83)hRtv9wV(a_{qlLf z&-Xbo>;-9{uUrepc&}^058r$-R^8pb^y2U_gFftw0$j!^-GUBG8KU_=cD}M$^SC>~tCf>`Wav*%!e|hz z_=;cjk+;43e5K#)L!Na~Q$=VOu#-|Mdz<&1zf0-o*acZ3WLZM(;_c33A8*R| zfiiqWsZN@QXRxIp>=wq0)?Dqnm0efY6{mL`M=6rcp2M7_4~vnfk>MIE*~QPn3&a^2 z#@_>!mdHAxS%dyJj+_G?Dd!-a_>N!f%mFUn%A7MwFz)YHAs@ftGO!cpuB2KQcgGor z_3`=K`s#DLxaQ!mBuMTcCw!{riM`l_6ovPD50x((pxx}}8^24ZEJ^=tWnNN`yV)cEGgcqFNTls;sDZYQtOa`Gn)Wj*Puaar#gL z1<|2W+3YKo_~)w$Vzrv79C-TSs(*)A#Ik&dwa*0oU7t&$@Re-Kb%T75J5tRGl@lbe znBI%zo~@3Kjt`67j=OlJ&2I9GAWQLhORCCB*EnbMFv|Vlo4RX#^SAYytT+ua4IpQN zOL1<7hu#+ORd&=4hQ4^{FM7k59v=tXvAk{M8nA{rJs$=&sM^O=E2ZcoI-{7x&R20x zhSDZ6a(Ne3)K-7)g&rc+#>QBw&E^QtN(m?RBuo@73Rw3o#%EDUtXi}G4pQ7;y#uNXr)`#4(D1+DwB`Z|1k zk}f$RC%g=M$~U7^Cq%%4jp8Zydo+D0fpKB*zoFuL@9!M>J1UL^Nqr;C^*2i$33JYGswGmOrC5`w6P>S=SJ-IMyw=UoS@8>PCQ< zE!`gGm!2~F{gf_D=vF`JHrft#&%)kkGt!;}CU&j$&q&Lnud{ZRL>?`?kWTwh_;{?K zH@rUzcWLz->FCLm5xw~xW?7t14bj_+g3uexpXat1YB2`j-Ys1y6pwXZ56c+Ly`Jsd zTWFZ4ywYigP1GDM4S4$=C-*7gKu?^qSFEjpU#JZt#UovB2O2sN8e;9 zSglT++q~8CuW{pMf8mWk;Ko>`KjOv}paqjrPH$_JIgolcc;hk3v2{@kD`9;j8@vtw}>b z^7_KghjG!tpyqVUVSZ5F<+Ql!k?la-GAzrGa)TZWk2;Jb{RbSZg!uy;ykt^@kvf~= z7BYH|BY)vOPzaO`tbpIbR+fD|2gRaR_(FobYD167hq#1ibj&O!&t>oJzqSqK^NjG4 z3cWyzJL5Q?tnuJPI64RQDD^z;wz~UZx_yMJ4oaW zpe1c!Y9ToEYzoBEqQgbv)+~E$2R?;K1VX3iiV2$6?MXc^Wrdgxz4Wn=ZuiaESmU;b(TT+`7u8l$ zt~oy{e*X2Nx6%Cm>9(|-(0yb;`GjMKibHQL4M-xmG^b8wPlFbW@X#S-y#cl(aJ%P$ z=kzphQt*o-ZRW=61l5@K>>Bsh(i5T{o>9SHlzPm`Q(4`KJk-R8jE3Zla2)KtmB$4! z!HxeO4!`%&G={tk!{*p%ZHsnTA87H&}yN(t+_ga+o=gFqI_3xY$y1?vP&~F;) zS%D&*ArA<}-jjk+sbzVzQ7yYKq?XV450kMCQQ}sXajefq5Z*lG!aCa(6fKFOGLZM2 zh^vNf<4?&#nyzpO6Epc?uoB~KWEPaiU(Cq31nb_|9U+WGsagFpxd;uTC~Xed{bajc z4|#O82zBe;)$?(#y%Fi`(()^^5O-1|+_XrC)?0DmMSt!RfKz7JnV;a*hPTI&3J5-? zxp1k&m;yibTIzxDWxZ_c*U4AUF5q2_a(`$?Im|4@O-m9i-)y#h$*_yT6|6B&c|&%w zPrCzO{^B_q2-tu8oRto`D4;SEZ#NJw56zLpj11Yyp z5pKOnNKhP0&rq>#^z4#9N#e`ID&$xxm(R^*0XW20LS^}m}dT%ne9)qf?sMmEb(j(8yENo5*}Dt~dcArv5me^xBG zIa|81T~U~bA5nb2ZhcA)NFQ4mfrsWcEwwW#<8OPJ;}p3d*Hz~E?w*TNsu%k}9jJ{X zbP>OD&J2^zp}Yu&M!MCchQqy;OJ&*OS@_B2C*H)aKyDRihnoOKPnDF zO2q#+Y*(0vOSqcDa)qA+r>%M(@Ng9wmDR{37m%eTi(t=|Y1LFrExpM8_TtIshmT90 z6rP^h>3R_r+;QuAa|@}Bqd%}dKVjTybF$sa#`FvxDD{MdJ1ku1FgX^qpO#{^XWL*fj^uqg_z_pSbbQLdIf2h(oMkKQgyiMiyjHz1hGkpV zIXGl-DBgX#g7m1=qah?Z^jX*?021Qgll=7g4=P`~+|PTj4iq`<IJRhb z3Tw>1K6~d+=!_-rIzue4rQ)6L?7bd-1}sPN!@#O81ElFbLC$4>he~m<$D8Iof|)`O zSXtpkl9Ww=BiPcWwpxR0REzWS$fJUpZo(LX8!KJ5$892FHFsX51czO3*~TVmv-l@v zs5akIi?puah!phtU4a}YH8@)Q8!0sE3|+czhx4*t&zY1tKI-JccPB)CF@F6eg+d0s z1jc|<(51I{H7EVxrVuGYHQ$-M?U#0PrANrsZYM ze}{x?XhUyr4SVu0LJUn`N3J8yguYnq2*`&YTX6PsMBCmkz62ijRNO?E;|W>D5&A2R zHpGvYcG~tM-J@hTCtS4en>VbSO%@fo7O-E~J}dsZtQ2CYzV`B!j1_1zttTt`w73J9 zSba_D?sVz8v=122M-2ncth7cfEzkYV0s`)NwSw)=ZugX*Pc6|PV zPuRooaQ@432iW}w3Zkc>reL-2QtRUXrc<8$4c6=7+T}qa)b*tjt04^7k}Zm*84Xr? znX>l7W!pR=zL*&&Q`UwW-FS)rP^LL#oyMO93mAhA;eF)S=Q!Ol|U7rnW5Igxgi$B0IMtR z?ev{)vJmLmQhB4HLc__Xuw}GoQmOiCTSJx-?6;{tiA@O3}JKoF={C)=|=V!@o z^e=w=t7Y!KfLRd4aY!lqhA+6-WwE0cTyhNmV|4T$PTg|Yw`l>}Bf)*rP~f3@ zHGHdkBeDH+EXr*PFBix?#ylv2`Aj|$p?B1H2}2>2)5|Rq1WxG$>GIj+Vc)C4#y4gR z$QUp`4Y;%r=i}#J-lW$V`i>()X_V8jop^ZrnvZ2?qFml8m|;272ZPOOR^`!TkggWP zk2YTNNcw^mrgeqY&4fvJdHI8vLmLe&hT_$V#4XRF&}MtRWpOq78h}&31LSXuQZDrX z2n&R=I4iLBVw7i1$h+#fvmn?_JzFP#zR7JkRB9`igWWyE3YHwX4wbE=)`@SXUb-!iKWYxQ2(J2%9N;mCynheZpO26DW z;z-LMU<5lLMs*Y}7_0f`I`v_yV5WLb^p89)o3f3h{FeSyn|eMF;TpVs!a#b#xq$dT zqRCMxe+g4N*fUJtd#c%+%ZU3Pn~56>O?Dc2CXDWkjGHC^$^#IB<5szZNC4UWv>oZv zlIMEyTqWGq2b}M{l)f&_Adf25tYf{p;)Nq}Z2EoY4RgW;Z){(|62lSsBMF&uwSL~! z(gLrKVZMNRkb#phVdu+!4tu+c9w%}6I0)XMi`-wavN+=Rba&saW006n*!xjSR4S|R zJmKjCxtkwYWZxA=(zYGd7ceQwm0i&{4{Aq<16MGEB%VRidoXS*q%-OIvxOc;sEKI$ zV{_)O*UE+ko8A#pm2VbFTDIN!@~yK*(Td*gxm1;u{&)C>T015WUxevUbRaoHxI$x6o_85<3b zQ=4}>S}v~WqK9(p;+Jls^t6juTgI@o;7vIh8*khF$If3A6_E@0@T5yI&D1Qrq&fG`frBJUbOD9J~jcw@%wn zks6081bD2ok2d!A8R}CKuY}^OTt?cW$~ErA4JFyDVs8?vE@>jVKXFjE0;JGoFuPq- zURJcYx_ZG6?0Mn14!}lp^VQbcIQLMH2JQ2{t$h;HC?(gj=m@Mo!__ZSFRapC#}tnD z+ns76+kLr?rL{c-Q*X>sZNpFkG7UGPU-picyCu9|HDDZ$kbUfLBJOb}WAY0xjE0d{glbYr* z-`HS3$OJhxhlD8PJJs47Y16*#rWn(Qo~TmnILQWFmT%bEV&5U4vN;B}jP$Ja^cm$Z z+M&G7Tfyiy$>;1Ltfs?Kzx4A{YkcTbevMwbuF2)KaQsjwD;xmA7xIE4&LES&Zu!lNmWNwsnRHqoE6dBca}O$yLN#U1(Zm`Ed>Cx)29|* z4J4l*Qj#J%JS7`oMUz`asxq&>1~!C*NNSV_Q+9L84Qm3&Vp5BpwVEV3zi$^|lDyz9 z;Jtf2Z>L6s07F8sQAV(8Tdcj{_hTAHoYK0ron>QdvEXxBUgm9>;$ocG^34+>>v7Fp zKc^k2p+PJ6By6shkx|PqC`#$knt7BtDudR2k_3q_a-3@QscBMz^Q*oaNU6>d-MRz> z0^i==(r`6i>=?PvSD>ZlV)1w4T>en zrVFVzB#Sq*EwR#lRB<(0Pk)>vrE&4;@pFNR!A%so%=fvz<3=+wq2(`Tv@5Ipm;I|OCR@w?lnLu)L3 zp0>6Y=)p5LND2kbME3mLhYyNEvLb3g_>qyVtAXBmuEd6-W} zW~g#MF$Yun2{NxMc545@v)9|#3sHu%pNjG#lz&Mke)sn*!Xc6j43-GvjaPPNv{%L} zvQteK%5Ra{1kIFBJ=#mmor^n5AzL{r#lSzjU)*5#_>Q?L_WO6Fg{bv-5$SU%rZ4TxHC5sI^F{n=}#Jesdk~A zwqBnpz({I$X8%T~zfI3~oy0%Z?hAoFi8hhY4q%%!BFgwRSL*qW@&%WW z>1gM+@}Jf4C$)?E$w|oowY(L*d7cR_x7+L*Iy>V^xM{vah?*^{%R{vhll$Leu`ll?~a68WYiv*?u7%y}D<- zBTEwgp`Er_PTwTGs^d%UK+P|GRiN?Cqh{|-e9B<5&fP?dN|j~Hhx>HgNcoLu@!V7VCD(+{R}~DrflQzfQyFv+D-0 zRoP4ajfaOH<^&Uz11>8&punYbXhyJ%v~;xK$!&rB72gRuq5rf1ZnZB<0*>v<_(1M# zF4GwOeuU`JJvJ#+=F`yMB?|}>-#ql0j3~D;NBvas*7fEJw&tUIzi@x~vlME8l*q6O zvcGy_Pw~!!toi6^(%l#(nPTG}Z`fvJwAQ>SYs7){qPbdR9v4c}vLDXF>X6UT#&wVn zdGdsiTDF>9)f2Ezp@`+9+8!Q!#j;lKAz$}&+l57lalE!YJ*Tq)S1jmH z$T15e#ZPsdQPW>pZT&SW^CLfW;VYeNFH@}t;D>HE#1@f<9B z#rftl-83OkB-3&D!$FQAlK|bxR0z+ZHx~4aTCWy+1^AQ3mg)+;hHC3}`a4HV<46t? zwI3vi)B&(}odi>D3@RCEB)nU$!4k_>|DGkv<`<mkZ;`SN(k4+2nO8#Sn5hGwNLoYD># zkj^p;I7Q$7odt;ZzcD|vwAd`B>ekV`4ORAk+8Uq5XMTkqnzLPZI%9ICQz4~4QasV5 z{5iOZ$;s8;6*{hVs`FA3@rln3c-?--+krm-=V3CEr@MAzTZ5#Jaxj2ktfA%3K>FvU z1@%W-a!Tel0bk=TzAr>=AL;bJ_=j@qze&b5?utUlS1YF85gh^OC%Q97a3y-`DL&}o z4KV>TU1I;&8yN-8OB+g6vO*NozWetOtASSKOMZyH*2d2@=AHP06n>9%j?8C+&p1o; zF)Ky$95%l8$y{Sx7W(~yoG)XHWa5ft-_tHsNZw?4nxmC`4HVd#6$8m-ij6DraYIWS z9b6S>Y5mo98{B7CCy2H@dF;E6XP!x(MU)x|^2qS^Ofl#JMfjA!ysxl`^{L^rckT84 zg}o1eJC>6`=@oC*=ze=8zSP6Qw~dDS<%jF`)5R3i62K)NU$X_u%-~IB=;7H@W^z`s zn&(sgNqSwcgYq|@UQ!|y(#I99ynm!Aaq-L>1K@&Qx5oEYG10inXOq>r1F3!sR)X5F zzBlx(QXS7^3*dZ=Pn%5w*ncy(mrDBbsS6&FMf2l)Zc`-0BtIYd+Wsq zs8NFYV$SCg5LfBdzR`D@rTm%kndAK-e&txAC}4k#H_-D+GE2Hj8f?6=*oA-GocR{S zNu1*KDJO&4u_i={(m{M%ErT2V&?a+O5B&!E^i?e1b}{e; zE|R0mE+S?m1@{_G`mE2(&fMCpA#dH*GM-Xx;P=oamCyc2!)%XFS><;Qc23XG!{;i> z6Dc8yu2z#2kMnN}zGM*q#(R&R3a226^gi6TDxfTQ@JEicNxSXRMV0kx2^n1B2S$-^ z-0`*9&30)Sg^H9DS=I$TmVukKg#E))Q%R$mnzrOH#`U8w#m{|;yMriS9;l-I_{NX4 z)?Fw3RV1Le)*kwNlE*YXKv~*(2XxfuqRTAIP>jc3Czgk6oTJ@>u5!{4ht7Rc zl^o+3e+T^>Sc0^SJrkgF(Cp&Rcy{~=b#~1~u1c=`31K3qc|+wV)NVcC_<1SLCGgZy zjX1s`&buK;IfMU8P9c9{)PHX=@?V}Pe=vSW0*0c%mRQY%@%fH61ys)71X8xTLb)-> zwJa^)y)51c0$}%==uync1MiaA`%6I_Kc1-CZ!tT7fZ3o}uuqSkmiT@q)2nC06vUGI zF2prKtEiM1j8I?CFm$1~9letkz$!1f=s=TsX1&!CqA=pqqdysfF(>wvGV0&HXuriv z4Xb6gY!-hU`&N34Glu-VAdn4fg->fJ7JqRys$##cEC|9JYyj#!&~F}3A<~lo`woz` zx5lHWMMD6|rUx(PXUhMrdQA?DUS#j2Q2@JBN%Dm^SHcto zqPbg?aD5SNkQMQwISbbUa`)8Ps1^r*EwdGvojNVRUNYn<5IQ2l5i)RY`IZ}zzFVx9 zpeA2+-D9~4v%l)5u@z3F(CZ&LdFyT3@uShZ@#86knXyoqnNmi5Xo?nlJE)%+f918c zXw_5-kvS*1sO+CrCfhr=OHC+esl4@x+s#^5*tgSrF26rn(#gheMd+fpD(i{>nvD9L zr8aIk{s=64JlWvXMso#iDmI{ctHRD$qjjS6tSeFFmux}UcT;vn!_kP5yy4{ipcH!>=F%!LO5XSl#hS`;H*%`C z@mY`HTwPixdyAa&(QVcHNlW~)+iZqVBzuQ1k41O0@dy2U?`;dm0%z8IsirN)c`?9q z_wjT6>Y&eg3Cb+kI)FVmVEpves8^33S)TgNCk|<{U3+s=ULV{#6}{v=2h|eTsT~^d zSkKm~so9Ebf0x3VLdM|s?$ah7#IC6Fq~Pa!00J*k5Uf>jUDaAo`0(g=qni5_q6P0Y z3+5sn2m8R;lG4Lv(7;Nsv!{P^TK z*GEp}2InQkMNmqT(6&R2ryI0nJRwOat zQ_T+(n@XqahPA9Wx8cJpHP9~^O{BdYj0}01^>iD6FS`s55wK3YywaHffO!{9j@8Ms z*E%;b3G~Q>Ow@Sh*qSj=v-%mciG@PBe8EUNWbjA7oug6ZYql-qLZD%|8z1Wh9-Ld2s>x=G!BGSZm32BPkDX=Sx``=vsd zDA;B4#Tw*P6H>$7YfdkX){F9`woz@inX6x1tL3_tw#JMh7@m}Nb=j%Z2sRmZnCY^F z{jggcaMx>%gx2uhLxZm6>$~IzvPZl6AX3w0;_Y*DHtdIlD0Yh-)VMLGuE}1ZoPVeu$T69(T(eeN%DlZ)V_crDh}r7VMXw)tfT!k*v+P2~GL=v~CdIR`TZh3+P;2JDoM2BADbFkS+}LDe#SHp3 z0o(~(HbR6CF+17u$iXH|(*96F0BtRA7=6w<(kAC_Bu;a4t|FjPp>p?CWCUv$O)S(Z z>5o06MP*^#)Y+5u-~1XZ&anym#4|TRO;M3v$8JL)`$?gmF9L%$U8}dF7%Ww#{YWan zXPHba+LaZCB#NJ9PHq8j=^C=@!}HDxDGDkePWt2;f^-Tp`%YAp4<$f*%aCU4XB@hX+;zH}GBsy{&W!OncF_#WNd#=!m> zuR=9q%fD8W!3_-CBciv$n}mpwo?YWpI^>6xO$fdA8%nJ_%nx_BbK#)@){^*)G=ZD4 zJ|`t$;{_jllgIuDiy4cuTh%0VHjUly(Q~oh-qxY&yM3N&Xqa4W*}u}3C1Y%uZ&Bgh zg;OBRt<{Adbz_b6BKJ*&D+~9{uE!nY>Ub#-uon0Y*QYA@?y^6xLaTcE<{4h5Fa(dYUDm1w)BODB?V1E3^e%p=;PWl^yiBZR=v2d?=6V0H zVf5NWTEmJ7VDV&Pp<2!ZF#;!rZ-Ng^8nWhnAqZR==VlzAN!<9!XyMVsFowf{kxwUe45l1CsIRA%vYP9eJ?Cfy*uIQ&fnXVm16BAC%=Fm$%s9)dV?MO z+dx_7x$Qm1jNNo?pVdcaE3eKUl-qHV`CMN)`MlrC<-D6Oawfe0qg~Nh;$A0v|Ddl# zqKJp)LH%80$~7*o;zW^+1SH3`3$v?unCr(F#hU?}oZNax9E43LbEX#+#VHi0&CF~h zk<+bOMP>?r@IyDJPcf%zZj_oR=wWm4uiB}K90NE-Xkenkx5vlMG2ptKKxIUjXm>~w zQ@>608ysM91HS+GEf+o_J(ZsVJP?L_s`;t$8?H5i1Z51**`KY(^g=2*7sx($_3@9K zv;8a=zH|ajR8|lE@*+dJ{bA!rSzgZZNQ|hp%E7^v+q#!0cd@RVtNgf~LfIM`dm%B# z6>xK($(bldHPpfnno@j}8RLBA`su&i^Zi$Tbbp3`sB`d8%q6*+%J&hHzEzZRYU u#}*w1n-iRD_Rp{SeK_A7KG@)Kb5)plZRHSnO*lum^mUAG75w!0#s32AdoDr% literal 0 HcmV?d00001 diff --git a/docs/qa/program-management-v1/projects-mobile.png b/docs/qa/program-management-v1/projects-mobile.png new file mode 100644 index 0000000000000000000000000000000000000000..8f7eb90fb36ffbda46325b689a069fbf93af6a25 GIT binary patch literal 46047 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 literal 0 HcmV?d00001 diff --git a/docs/qa/program-management-v1/team-desktop.png b/docs/qa/program-management-v1/team-desktop.png new file mode 100644 index 0000000000000000000000000000000000000000..93f2b571f4b62f415d98844044875b65d258361d GIT binary patch literal 96434 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%0D2iup6|K$0FcE`$LNymg*nC*&lBx2fo;_ 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 literal 0 HcmV?d00001 diff --git a/projects/social_platform/src/app/api/paths/app-routes.ts b/projects/social_platform/src/app/api/paths/app-routes.ts index d0dbd8d7d..f3d49c7d2 100644 --- a/projects/social_platform/src/app/api/paths/app-routes.ts +++ b/projects/social_platform/src/app/api/paths/app-routes.ts @@ -42,6 +42,8 @@ export const AppRoutes = { }, program: { + management: (programId: number | string, section: string = "participants") => + `/office/program/${programId}/management/${section}`, root: () => "/office/program", list: () => "/office/program/all", detail: (programId: number | string) => `/office/program/${programId}`, diff --git a/projects/social_platform/src/app/api/program/facades/detail/program-detail-list-info.service.ts b/projects/social_platform/src/app/api/program/facades/detail/program-detail-list-info.service.ts index ccbed70fc..ddf64ce3e 100644 --- a/projects/social_platform/src/app/api/program/facades/detail/program-detail-list-info.service.ts +++ b/projects/social_platform/src/app/api/program/facades/detail/program-detail-list-info.service.ts @@ -416,6 +416,11 @@ export class ProgramDetailListInfoService { return; } + if (this.listType() === "rating" && key === "project_id") { + extraParams["project_id"] = value; + return; + } + if (this.listType() === "rating" && key === "is_rated_by_expert") { extraParams["is_rated_by_expert"] = value; return; diff --git a/projects/social_platform/src/app/api/program/facades/detail/program-management.service.spec.ts b/projects/social_platform/src/app/api/program/facades/detail/program-management.service.spec.ts new file mode 100644 index 000000000..caca37b1d --- /dev/null +++ b/projects/social_platform/src/app/api/program/facades/detail/program-management.service.spec.ts @@ -0,0 +1,119 @@ +/** @format */ + +import { TestBed } from "@angular/core/testing"; +import { HttpErrorResponse } from "@angular/common/http"; +import { Subject, of, throwError } from "rxjs"; +import { ProgramManagementService, ManagementContext } from "./program-management.service"; +import { ProgramManagementUseCase } from "@api/program/use-cases/program-management.use-case"; +import { ProgramDetailMainUIInfoService } from "./ui/program-detail-main-ui-info.service"; +import { + ManagementProject, + ManagementTeam, + ProgramManagement, +} from "@domain/program/program-management.model"; + +const program = { id: 1, name: "Программа", materials: [] } as unknown as ProgramManagement; +const first = { id: 11, projectId: 91, name: "Первый" } as ManagementProject; +const second = { id: 12, projectId: 92, name: "Второй" } as ManagementProject; +const page = (results: ManagementProject[]) => ({ + results, + count: results.length, + next: null, + previous: null, + caseOptions: [], + isCompetitive: true, +}); +const context = (id = 1): ManagementContext => ({ + programId: id, + section: "projects", + query: { search: "", limit: 25, offset: 0, submission: "all", caseScope: "all" }, +}); + +describe("ProgramManagementService", () => { + function setup() { + const api = { + get: vi.fn(() => of(program)), + projects: vi.fn(() => of(page([first, second]))), + participants: vi.fn(), + team: vi.fn(), + evaluation: vi.fn(), + }; + TestBed.configureTestingModule({ + providers: [ + ProgramManagementService, + ProgramDetailMainUIInfoService, + { provide: ProgramManagementUseCase, useValue: api }, + ], + }); + return { api, service: TestBed.inject(ProgramManagementService) }; + } + it("одновременно выбирает только один проект", () => { + const { service } = setup(); + service.load(context()); + service.select(first); + service.select(second); + expect(service.selected()?.id).toBe(second.id); + }); + it("очищает выбор, если проект исчез после фильтрации", () => { + const { service, api } = setup(); + service.load(context()); + service.select(first); + api.projects.mockReturnValue(of(page([second]))); + service.load({ ...context(), query: { ...context().query, search: "Второй" } }); + expect(service.selected()).toBeNull(); + }); + it("сохраняет выбор при обновлении той же выдачи", () => { + const { service } = setup(); + service.load(context()); + service.select(first); + service.retry(); + expect(service.selected()?.id).toBe(first.id); + }); + it("не применяет поздний ответ предыдущей программы", () => { + const { service, api } = setup(); + const old = new Subject(); + api.get.mockReturnValueOnce(old); + service.load(context()); + api.get.mockReturnValueOnce(of({ ...program, id: 2 })); + service.load(context(2)); + old.next(program); + old.complete(); + expect(service.program()?.id).toBe(2); + }); + it("не показывает команду прошлого выбора", () => { + const { service, api } = setup(); + const team = new Subject(); + api.team.mockReturnValue(team); + service.load(context()); + service.select(first); + service.openTeam(); + service.select(second); + team.next({ projectId: 91, programLinkId: 11, name: "Первый", members: [] }); + expect(service.team()).toBeNull(); + expect(service.teamOpen()).toBe(false); + }); + it("команда использует id связи программы, а не глобальный projectId", () => { + const { service, api } = setup(); + api.team.mockReturnValue(of({ members: [] })); + service.load(context()); + service.select(first); + service.openTeam(); + expect(api.team).toHaveBeenCalledWith(1, 11); + }); + it("после 403 удаляет ранее загруженные приватные данные", () => { + const { service, api } = setup(); + service.load(context()); + service.select(first); + api.get.mockReturnValue(throwError(() => new HttpErrorResponse({ status: 403 }))); + service.retry(); + expect(service.program()).toBeNull(); + expect(service.projects()).toBeNull(); + expect(service.selected()).toBeNull(); + expect(service.error()?.status).toBe(403); + }); + it("восстанавливает выбор после возврата из оценок", () => { + const { service } = setup(); + service.load({ ...context(), selectedId: second.id }); + expect(service.selected()?.id).toBe(second.id); + }); +}); diff --git a/projects/social_platform/src/app/api/program/facades/detail/program-management.service.ts b/projects/social_platform/src/app/api/program/facades/detail/program-management.service.ts new file mode 100644 index 000000000..9d14671a7 --- /dev/null +++ b/projects/social_platform/src/app/api/program/facades/detail/program-management.service.ts @@ -0,0 +1,154 @@ +/** @format */ + +import { DestroyRef, Injectable, inject, signal } from "@angular/core"; +import { takeUntilDestroyed } from "@angular/core/rxjs-interop"; +import { HttpErrorResponse } from "@angular/common/http"; +import { Subject, catchError, forkJoin, map, of, switchMap, takeUntil, tap } from "rxjs"; +import { ProgramManagementUseCase } from "@api/program/use-cases/program-management.use-case"; +import { + ManagementEvaluation, + ManagementPage, + ManagementParticipant, + ManagementProject, + ManagementProjectsPage, + ManagementQuery, + ManagementSection, + ManagementTeam, + ProgramManagement, +} from "@domain/program/program-management.model"; +import { Program } from "@domain/program/program.model"; +import { ProgramDetailMainUIInfoService } from "./ui/program-detail-main-ui-info.service"; + +export interface ManagementContext { + programId: number; + section: ManagementSection; + query: ManagementQuery; + linkId?: number; + selectedId?: number; +} +interface Content { + participants?: ManagementPage; + projects?: ManagementProjectsPage; + evaluation?: ManagementEvaluation; +} + +@Injectable() +export class ProgramManagementService { + readonly api = inject(ProgramManagementUseCase); + private readonly destroyRef = inject(DestroyRef); + private readonly programUI = inject(ProgramDetailMainUIInfoService); + private readonly requests = new Subject(); + private readonly cancelTeam = new Subject(); + readonly program = signal(null); + readonly participants = signal | null>(null); + readonly projects = signal(null); + readonly evaluation = signal(null); + readonly pending = signal(false); + readonly error = signal(null); + readonly selected = signal(null); + readonly team = signal(null); + readonly teamPending = signal(false); + readonly teamError = signal(null); + readonly teamOpen = signal(false); + context: ManagementContext | null = null; + + constructor() { + this.requests + .pipe( + tap(ctx => { + if (this.context?.programId !== ctx.programId) this.program.set(null); + if (this.context?.programId !== ctx.programId || this.context?.section !== ctx.section) + this.clearSelection(); + this.context = ctx; + this.pending.set(true); + this.error.set(null); + this.closeTeam(); + }), + switchMap(ctx => { + const content = + ctx.section === "participants" + ? this.api + .participants(ctx.programId, ctx.query) + .pipe(map(participants => ({ participants }) as Content)) + : ctx.section === "projects" + ? this.api + .projects(ctx.programId, ctx.query) + .pipe(map(projects => ({ projects }) as Content)) + : ctx.section === "evaluation" && ctx.linkId + ? this.api + .evaluation(ctx.programId, ctx.linkId) + .pipe(map(evaluation => ({ evaluation }) as Content)) + : of({} as Content); + return forkJoin({ program: this.api.get(ctx.programId), content }).pipe( + tap(({ program, content }) => { + this.program.set(program); + this.participants.set(content.participants ?? null); + this.projects.set(content.projects ?? null); + this.evaluation.set(content.evaluation ?? null); + const selectedId = ctx.selectedId ?? this.selected()?.id; + this.selected.set(content.projects?.results.find(p => p.id === selectedId) ?? null); + this.programUI.program.set( + Object.assign(new Program(), Program.default(), program, { isUserManager: true }), + ); + }), + catchError((error: HttpErrorResponse) => { + this.error.set(error); + this.program.set(null); + this.participants.set(null); + this.projects.set(null); + this.evaluation.set(null); + this.clearSelection(); + return of(null); + }), + tap(() => this.pending.set(false)), + ); + }), + takeUntilDestroyed(this.destroyRef), + ) + .subscribe(); + } + load(ctx: ManagementContext): void { + this.requests.next(ctx); + } + retry(): void { + if (this.context) this.load(this.context); + } + select(project: ManagementProject): void { + this.closeTeam(); + this.selected.set(project); + } + clearSelection(): void { + this.closeTeam(); + this.selected.set(null); + } + openTeam(): void { + const project = this.selected(), + ctx = this.context; + if (!project || !ctx) return; + this.cancelTeam.next(); + this.team.set(null); + this.teamError.set(null); + this.teamOpen.set(true); + this.teamPending.set(true); + this.api + .team(ctx.programId, project.id) + .pipe(takeUntil(this.cancelTeam), takeUntilDestroyed(this.destroyRef)) + .subscribe({ + next: team => { + this.team.set(team); + this.teamPending.set(false); + }, + error: (error: HttpErrorResponse) => { + this.teamError.set(error); + this.teamPending.set(false); + }, + }); + } + closeTeam(): void { + this.cancelTeam.next(); + this.teamOpen.set(false); + this.teamPending.set(false); + this.team.set(null); + this.teamError.set(null); + } +} diff --git a/projects/social_platform/src/app/api/program/facades/program-shell-info.service.spec.ts b/projects/social_platform/src/app/api/program/facades/program-shell-info.service.spec.ts new file mode 100644 index 000000000..bcdb72e6b --- /dev/null +++ b/projects/social_platform/src/app/api/program/facades/program-shell-info.service.spec.ts @@ -0,0 +1,75 @@ +/** @format */ + +import { TestBed } from "@angular/core/testing"; +import { Subject } from "rxjs"; +import { ProgramShellInfoService } from "./program-shell-info.service"; +import { ParticipatingProgramUseCase } from "../use-cases/participating-program.use-case"; +import { EventBus } from "@domain/shared/event-bus"; +import { ProgramUpdated } from "@domain/program/program-updated.event"; +import { Program } from "@domain/program/program.model"; +import { ApiPagination } from "@domain/other/api-pagination.model"; +import { Result, ok } from "@domain/shared/result.type"; +import { readCache, writeCache } from "@utils/cache"; + +describe("Обновление кеша программ после сохранения организатором", () => { + let facade: ProgramShellInfoService; + let bus: EventBus; + let requests: Subject, unknown>>[]; + const result = (name: string) => + ok({ + count: 1, + next: "", + previous: "", + results: [Object.assign(new Program(), { id: 7, name })], + }); + beforeEach(() => { + TestBed.resetTestingModule(); + localStorage.clear(); + requests = []; + TestBed.configureTestingModule({ + providers: [ + ProgramShellInfoService, + EventBus, + { + provide: ParticipatingProgramUseCase, + useValue: { + execute: vi.fn(() => { + const request = new Subject, unknown>>(); + requests.push(request); + return request; + }), + }, + }, + ], + }); + facade = TestBed.inject(ProgramShellInfoService); + bus = TestBed.inject(EventBus); + }); + afterEach(() => { + TestBed.resetTestingModule(); + localStorage.clear(); + }); + const updated = (): ProgramUpdated => ({ + type: "ProgramUpdated", + payload: { programId: 7 }, + occurredAt: new Date(), + }); + it("очищает сохранённый кеш и запрашивает новое название", () => { + writeCache("programs", 1, [Object.assign(new Program(), { id: 7, name: "Старое" })]); + facade.ensureProgramsLoaded().subscribe(); + expect(facade.programs()[0].name).toBe("Старое"); + bus.emit(updated()); + expect(readCache("programs", 1, 3600000)).toBeNull(); + requests[1].next(result("Новое")); + expect(facade.programs()[0].name).toBe("Новое"); + }); + it("старый запрос не возвращает прежние значения после успешного обновления", () => { + facade.ensureProgramsLoaded().subscribe(); + bus.emit(updated()); + requests[1].next(result("Новое")); + requests[0].next(result("Старое")); + requests[0].complete(); + expect(facade.programs()[0].name).toBe("Новое"); + expect(readCache("programs", 1, 3600000)?.[0].name).toBe("Новое"); + }); +}); diff --git a/projects/social_platform/src/app/api/program/facades/program-shell-info.service.ts b/projects/social_platform/src/app/api/program/facades/program-shell-info.service.ts index 368fd2258..cc4540ce6 100644 --- a/projects/social_platform/src/app/api/program/facades/program-shell-info.service.ts +++ b/projects/social_platform/src/app/api/program/facades/program-shell-info.service.ts @@ -13,12 +13,14 @@ import { success, } from "@domain/shared/async-state"; import { Observable, finalize, shareReplay, of, tap } from "rxjs"; -import { readCache, writeCache } from "@utils/cache"; +import { clearCacheKey, readCache, writeCache } from "@utils/cache"; import { plainToInstance } from "class-transformer"; import { HttpParams } from "@angular/common/http"; import { ParticipatingProgramUseCase } from "../use-cases/participating-program.use-case"; import { Result, ok } from "@domain/shared/result.type"; import { ApiPagination } from "@domain/other/api-pagination.model"; +import { EventBus } from "@domain/shared/event-bus"; +import { ProgramUpdated } from "@domain/program/program-updated.event"; const PROGRAM_CACHE_KEY = "programs"; const CACHE_VERSION = 1; @@ -29,6 +31,15 @@ const CACHE_TTL = 24 * 60 * 60 * 1000; // 24h providedIn: "root", }) export class ProgramShellInfoService { + constructor() { + inject(EventBus) + .on("ProgramUpdated") + .subscribe(() => { + this.invalidatePrograms(); + clearCacheKey(PROGRAM_CACHE_KEY, CACHE_VERSION); + this.ensureProgramsLoaded().subscribe(); + }); + } private readonly participatingProgramUseCase = inject(ParticipatingProgramUseCase); private readonly programs$ = signal>(initial()); @@ -49,6 +60,7 @@ export class ProgramShellInfoService { private allProgramsInflight: Observable, unknown>> | null = null; private filteredInflight: Observable, unknown>> | null = null; + private cacheGeneration = 0; ensureProgramsLoaded(filter?: HttpParams): Observable, unknown>> { const isFiltered = !!filter && filter.keys().length > 0; @@ -94,6 +106,7 @@ export class ProgramShellInfoService { } invalidatePrograms(): void { + this.cacheGeneration++; this.allProgramsInflight = null; this.filteredInflight = null; this.programs$.set(initial()); @@ -107,23 +120,28 @@ export class ProgramShellInfoService { this.programs$.set(loading(prev)); const source$ = this.participatingProgramUseCase.execute(); + const generation = this.cacheGeneration; const request$ = source$.pipe( tap(result => { - if (!result.ok) return; + if (!result.ok || generation !== this.cacheGeneration) return; this.programs$.set(success(result.value.results)); try { writeCache(PROGRAM_CACHE_KEY, CACHE_VERSION, result.value.results); } catch {} }), - finalize(() => (this.allProgramsInflight = null)), + finalize(() => { + if (generation === this.cacheGeneration) this.allProgramsInflight = null; + }), shareReplay({ bufferSize: 1, refCount: true }), ); this.allProgramsInflight = request$; request$.subscribe({ - error: error => this.programs$.set(failure(error, prev)), + error: error => { + if (generation === this.cacheGeneration) this.programs$.set(failure(error, prev)); + }, }); return request$; diff --git a/projects/social_platform/src/app/api/program/use-cases/program-management.use-case.ts b/projects/social_platform/src/app/api/program/use-cases/program-management.use-case.ts new file mode 100644 index 000000000..48aab261e --- /dev/null +++ b/projects/social_platform/src/app/api/program/use-cases/program-management.use-case.ts @@ -0,0 +1,39 @@ +/** @format */ + +import { inject, Injectable } from "@angular/core"; +import { ProgramManagementRepositoryPort } from "@domain/program/ports/program-management.repository.port"; +import { + ManagementMaterial, + ManagementMaterialWrite, + ManagementQuery, + ManagementSettingsWrite, +} from "@domain/program/program-management.model"; + +@Injectable() +export class ProgramManagementUseCase { + private readonly repository = inject(ProgramManagementRepositoryPort); + get(id: number) { + return this.repository.get(id); + } + participants(id: number, q: ManagementQuery) { + return this.repository.participants(id, q); + } + projects(id: number, q: ManagementQuery) { + return this.repository.projects(id, q); + } + team(id: number, linkId: number) { + return this.repository.team(id, linkId); + } + evaluation(id: number, linkId: number) { + return this.repository.evaluation(id, linkId); + } + save(id: number, section: "basic" | "dates", body: ManagementSettingsWrite) { + return this.repository.save(id, section, body); + } + saveMaterial(id: number, body: ManagementMaterialWrite, materialId?: number) { + return this.repository.saveMaterial(id, body, materialId); + } + deleteMaterial(id: number, material: ManagementMaterial) { + return this.repository.deleteMaterial(id, material); + } +} diff --git a/projects/social_platform/src/app/domain/program/ports/program-management.repository.port.ts b/projects/social_platform/src/app/domain/program/ports/program-management.repository.port.ts new file mode 100644 index 000000000..b170d2561 --- /dev/null +++ b/projects/social_platform/src/app/domain/program/ports/program-management.repository.port.ts @@ -0,0 +1,37 @@ +/** @format */ + +import { Observable } from "rxjs"; +import { + ManagementEvaluation, + ManagementMaterial, + ManagementMaterialWrite, + ManagementPage, + ManagementParticipant, + ManagementProjectsPage, + ManagementQuery, + ManagementSettingsWrite, + ManagementTeam, + ProgramManagement, +} from "../program-management.model"; + +export abstract class ProgramManagementRepositoryPort { + abstract get(programId: number): Observable; + abstract participants( + programId: number, + query: ManagementQuery, + ): Observable>; + abstract projects(programId: number, query: ManagementQuery): Observable; + abstract team(programId: number, linkId: number): Observable; + abstract evaluation(programId: number, linkId: number): Observable; + abstract save( + programId: number, + section: "basic" | "dates", + body: ManagementSettingsWrite, + ): Observable; + abstract saveMaterial( + programId: number, + body: ManagementMaterialWrite, + id?: number, + ): Observable; + abstract deleteMaterial(programId: number, material: ManagementMaterial): Observable; +} diff --git a/projects/social_platform/src/app/domain/program/program-management.model.ts b/projects/social_platform/src/app/domain/program/program-management.model.ts new file mode 100644 index 000000000..f5ba6e5e7 --- /dev/null +++ b/projects/social_platform/src/app/domain/program/program-management.model.ts @@ -0,0 +1,115 @@ +/** @format */ + +export type ManagementSection = + | "participants" + | "projects" + | "analytics" + | "settings" + | "evaluation"; +export type SettingsSection = "basic" | "dates" | "materials"; +export interface ManagementMaterial { + id: number; + title: string; + url: string; + file: { link: string; name: string; extension: string; size: number } | null; + updatedAt: string; +} +export interface ManagementBasic { + name: string; + city: string; + tag: string; + description: string | null; + imageAddress: string | null; + coverImageAddress: string | null; + advertisementImageAddress: string | null; + registrationLink: string | null; + presentationAddress: string | null; +} +export interface ManagementDates { + datetimeStarted: string; + datetimeRegistrationEnds: string; + datetimeProjectSubmissionEnds: string | null; + datetimeEvaluationEnds: string | null; + datetimeFinished: string; +} +export interface ProgramManagement extends ManagementBasic, ManagementDates { + id: number; + updatedAt: string; + isCompetitive: boolean; + isDistributedEvaluation: boolean; + materials: ManagementMaterial[]; +} +export interface ManagementParticipant { + id: number; + userId: number; + name: string; + email: string | null; + city: string | null; + registeredAt: string; +} +export type ManagementEvaluationStatus = + | "not_submitted" + | "awaiting_evaluation" + | "partially_evaluated" + | "evaluated" + | "not_applicable"; +export interface ManagementProject { + id: number; + projectId: number; + name: string; + leader: { id: number; name: string }; + submitted: boolean; + evaluationStatus: ManagementEvaluationStatus; + assignmentsTotal: number | null; + assignmentsCompleted: number | null; + caseName: string | null; + presentationUrl: string | null; +} +export interface ManagementPage { + count: number; + results: T[]; + next: string | null; + previous: string | null; +} +export interface ManagementProjectsPage extends ManagementPage { + caseOptions: string[]; + isCompetitive: boolean; +} +export interface ManagementTeam { + projectId: number; + programLinkId: number; + name: string; + members: { id: number; name: string; role: string }[]; +} +export interface ManagementEvaluation { + projectId: number; + programLinkId: number; + name: string; + submitted: boolean; + canRate: boolean; + experts: { + id: number; + name: string; + status: string; + criteria: { id: number; name: string; type: string; value: string | null; isScored: boolean }[]; + }[]; +} +export interface ManagementQuery { + search: string; + offset: number; + limit: number; + submission: "all" | "submitted" | "not_submitted"; + caseScope: "all" | "selected" | "without_case"; + caseName?: string; +} +export interface ManagementSettingsWrite { + expectedUpdatedAt: string; + confirmReopen?: boolean; + [field: string]: string | boolean | null | undefined; +} +export interface ManagementMaterialWrite { + title: string; + url: string | null; + file: string | null; + expectedUpdatedAt?: string; +} diff --git a/projects/social_platform/src/app/domain/program/program-updated.event.ts b/projects/social_platform/src/app/domain/program/program-updated.event.ts new file mode 100644 index 000000000..31e5d3a51 --- /dev/null +++ b/projects/social_platform/src/app/domain/program/program-updated.event.ts @@ -0,0 +1,7 @@ +/** @format */ + +import { DomainEvent } from "@domain/shared/domain-event"; +export interface ProgramUpdated extends DomainEvent { + type: "ProgramUpdated"; + payload: { programId: number }; +} diff --git a/projects/social_platform/src/app/infrastructure/adapters/program/program-management-http.adapter.spec.ts b/projects/social_platform/src/app/infrastructure/adapters/program/program-management-http.adapter.spec.ts new file mode 100644 index 000000000..5567fff22 --- /dev/null +++ b/projects/social_platform/src/app/infrastructure/adapters/program/program-management-http.adapter.spec.ts @@ -0,0 +1,77 @@ +/** @format */ + +import { TestBed } from "@angular/core/testing"; +import { HTTP_INTERCEPTORS, provideHttpClient, withInterceptorsFromDi } from "@angular/common/http"; +import { HttpTestingController, provideHttpClientTesting } from "@angular/common/http/testing"; +import { CamelcaseInterceptor } from "@core/lib/interceptors/camelcase.interceptor"; +import { LoggerService } from "@core/lib/services/logger/logger.service"; +import { ProgramManagementHttpAdapter } from "./program-management-http.adapter"; +import { ManagementMaterial } from "@domain/program/program-management.model"; +import { API_URL } from "@core/lib/providers"; + +describe("Контракт HTTP панели организатора", () => { + let adapter: ProgramManagementHttpAdapter, http: HttpTestingController; + beforeEach(() => { + TestBed.resetTestingModule(); + TestBed.configureTestingModule({ + providers: [ + { provide: API_URL, useValue: "https://local.test" }, + provideHttpClient(withInterceptorsFromDi()), + provideHttpClientTesting(), + ProgramManagementHttpAdapter, + { provide: LoggerService, useValue: { warn: vi.fn(), debug: vi.fn(), error: vi.fn() } }, + { provide: HTTP_INTERCEPTORS, useClass: CamelcaseInterceptor, multi: true }, + ], + }); + adapter = TestBed.inject(ProgramManagementHttpAdapter); + http = TestBed.inject(HttpTestingController); + }); + afterEach(() => { + http?.verify(); + TestBed.resetTestingModule(); + }); + it("фильтры передаются серверу в snake_case, ответ преобразуется в camelCase", () => { + adapter + .projects(4, { + search: "Город", + offset: 25, + limit: 25, + submission: "submitted", + caseScope: "selected", + caseName: "Экология", + }) + .subscribe(page => expect(page.caseOptions).toEqual(["Экология"])); + const request = http.expectOne(r => r.url.endsWith("/programs/4/management/projects/")); + expect(request.request.params.get("case_scope")).toBe("selected"); + expect(request.request.params.get("case_name")).toBe("Экология"); + expect(request.request.params.get("offset")).toBe("25"); + request.flush({ count: 0, results: [], case_options: ["Экология"], is_competitive: true }); + }); + it("версия PATCH не теряет точность при преобразовании JSON", () => { + const version = "2026-10-17T12:34:56.123456Z"; + adapter + .save(4, "dates", { + expectedUpdatedAt: version, + datetimeProjectSubmissionEnds: null, + confirmReopen: true, + }) + .subscribe(p => expect(p.updatedAt).toBe(version)); + const request = http.expectOne(r => r.url.endsWith("/management/settings/dates/")); + expect(request.request.method).toBe("PATCH"); + expect(request.request.body).toEqual({ + expected_updated_at: version, + datetime_project_submission_ends: null, + confirm_reopen: true, + }); + request.flush({ updated_at: version }); + }); + it("удаление материала передаёт версию в query и не вызывает удаление UserFile", () => { + adapter + .deleteMaterial(4, { id: 9, updatedAt: "2026-10-17T15:00:00+03:00" } as ManagementMaterial) + .subscribe(); + const request = http.expectOne(r => r.url.endsWith("/programs/4/management/materials/9/")); + expect(request.request.method).toBe("DELETE"); + expect(request.request.params.get("expected_updated_at")).toBe("2026-10-17T15:00:00+03:00"); + request.flush(null, { status: 204, statusText: "No Content" }); + }); +}); diff --git a/projects/social_platform/src/app/infrastructure/adapters/program/program-management-http.adapter.ts b/projects/social_platform/src/app/infrastructure/adapters/program/program-management-http.adapter.ts new file mode 100644 index 000000000..97cb816e4 --- /dev/null +++ b/projects/social_platform/src/app/infrastructure/adapters/program/program-management-http.adapter.ts @@ -0,0 +1,63 @@ +/** @format */ + +import { inject, Injectable } from "@angular/core"; +import { HttpParams } from "@angular/common/http"; +import { ApiService } from "@corelib"; +import { ProgramManagementRepositoryPort } from "@domain/program/ports/program-management.repository.port"; +import { + ManagementEvaluation, + ManagementMaterial, + ManagementMaterialWrite, + ManagementPage, + ManagementParticipant, + ManagementProjectsPage, + ManagementQuery, + ManagementSettingsWrite, + ManagementTeam, + ProgramManagement, +} from "@domain/program/program-management.model"; + +@Injectable() +export class ProgramManagementHttpAdapter implements ProgramManagementRepositoryPort { + private readonly api = inject(ApiService); + private root(id: number): string { + return `/programs/${id}/management`; + } + get(id: number) { + return this.api.get(`${this.root(id)}/`); + } + participants(id: number, q: ManagementQuery) { + return this.api.get>( + `${this.root(id)}/participants/`, + this.params(q), + ); + } + projects(id: number, q: ManagementQuery) { + let params = this.params(q).set("submission", q.submission).set("case_scope", q.caseScope); + if (q.caseScope === "selected" && q.caseName) params = params.set("case_name", q.caseName); + return this.api.get(`${this.root(id)}/projects/`, params); + } + team(id: number, linkId: number) { + return this.api.get(`${this.root(id)}/projects/${linkId}/team/`); + } + evaluation(id: number, linkId: number) { + return this.api.get(`${this.root(id)}/projects/${linkId}/evaluation/`); + } + save(id: number, section: "basic" | "dates", body: ManagementSettingsWrite) { + return this.api.patch(`${this.root(id)}/settings/${section}/`, body); + } + saveMaterial(id: number, body: ManagementMaterialWrite, materialId?: number) { + return materialId + ? this.api.patch(`${this.root(id)}/materials/${materialId}/`, body) + : this.api.post(`${this.root(id)}/materials/`, body); + } + deleteMaterial(id: number, material: ManagementMaterial) { + return this.api.delete( + `${this.root(id)}/materials/${material.id}/`, + new HttpParams().set("expected_updated_at", material.updatedAt), + ); + } + private params(q: ManagementQuery): HttpParams { + return new HttpParams().set("search", q.search).set("limit", q.limit).set("offset", q.offset); + } +} diff --git a/projects/social_platform/src/app/infrastructure/repository/program/program-management.repository.ts b/projects/social_platform/src/app/infrastructure/repository/program/program-management.repository.ts new file mode 100644 index 000000000..09d130f96 --- /dev/null +++ b/projects/social_platform/src/app/infrastructure/repository/program/program-management.repository.ts @@ -0,0 +1,51 @@ +/** @format */ + +import { inject, Injectable } from "@angular/core"; +import { tap } from "rxjs"; +import { EventBus } from "@domain/shared/event-bus"; +import { ProgramManagementRepositoryPort } from "@domain/program/ports/program-management.repository.port"; +import { ProgramManagementHttpAdapter } from "@infrastructure/adapters/program/program-management-http.adapter"; +import { + ManagementMaterial, + ManagementMaterialWrite, + ManagementQuery, + ManagementSettingsWrite, +} from "@domain/program/program-management.model"; + +/** Приватные manager-данные не попадают в общий EntityCache программы. */ +@Injectable() +export class ProgramManagementRepository implements ProgramManagementRepositoryPort { + private readonly adapter = inject(ProgramManagementHttpAdapter); + private readonly events = inject(EventBus); + get(id: number) { + return this.adapter.get(id); + } + participants(id: number, q: ManagementQuery) { + return this.adapter.participants(id, q); + } + projects(id: number, q: ManagementQuery) { + return this.adapter.projects(id, q); + } + team(id: number, linkId: number) { + return this.adapter.team(id, linkId); + } + evaluation(id: number, linkId: number) { + return this.adapter.evaluation(id, linkId); + } + save(id: number, section: "basic" | "dates", body: ManagementSettingsWrite) { + return this.adapter.save(id, section, body).pipe(tap(() => this.changed(id))); + } + saveMaterial(id: number, body: ManagementMaterialWrite, materialId?: number) { + return this.adapter.saveMaterial(id, body, materialId).pipe(tap(() => this.changed(id))); + } + deleteMaterial(id: number, material: ManagementMaterial) { + return this.adapter.deleteMaterial(id, material).pipe(tap(() => this.changed(id))); + } + private changed(id: number): void { + this.events.emit({ + type: "ProgramUpdated", + payload: { programId: id }, + occurredAt: new Date(), + }); + } +} diff --git a/projects/social_platform/src/app/infrastructure/repository/program/program.repository.ts b/projects/social_platform/src/app/infrastructure/repository/program/program.repository.ts index 301c2292e..1e6a364e8 100644 --- a/projects/social_platform/src/app/infrastructure/repository/program/program.repository.ts +++ b/projects/social_platform/src/app/infrastructure/repository/program/program.repository.ts @@ -24,6 +24,7 @@ import { ApplyToProgramResponse } from "@domain/program/results/apply-to-program import { userFromRaw } from "@utils/userRaw"; import { EventBus } from "@domain/shared/event-bus"; import { LoggedOut } from "@domain/auth/events/logged-out.event"; +import { ProgramUpdated } from "@domain/program/program-updated.event"; import { ProgramAnalyticsAttentionPage, ProgramAnalyticsAttentionParticipant, @@ -65,6 +66,9 @@ export class ProgramRepository implements ProgramRepositoryPort { } private initializeEvents(): void { + this.eventBus + .on("ProgramUpdated") + .subscribe(event => this.entityCache.invalidate(event.payload.programId)); this.eventBus.on("LoggedOut").subscribe({ next: () => { this.entityCache.clear(); diff --git a/projects/social_platform/src/app/ui/pages/program/detail/main/role-widget/program-role-widget.component.html b/projects/social_platform/src/app/ui/pages/program/detail/main/role-widget/program-role-widget.component.html index d6d0d5e90..92603454a 100644 --- a/projects/social_platform/src/app/ui/pages/program/detail/main/role-widget/program-role-widget.component.html +++ b/projects/social_platform/src/app/ui/pages/program/detail/main/role-widget/program-role-widget.component.html @@ -160,7 +160,7 @@

аналитика